본 논문에서는 개방형 OS인 안드로이드에서 힌디어 텍스트 처리방법을 제안한다. 텍스트 처리의 핵심은 알파벳을 문자로 조합하는 규칙을 정의하는 오토마타와 폰트 파일에서 문자에 대응하는 이미지를 검색하고 이를 화면에 표시하는 폰트 렌더링이다. 오토마타는 입력 문자의 종류와 개수에 좌우되는데 유니코드를 기반으로 자음 14자와 모음 34자를 알파벳으로 사용하는 오토마타를 제안한다. 조합된 음절은 테이블 매핑 방식을 사용하여 그립 인덱스로 변환하고 해당하는 폰트를 로드하기 위한 핸들로 사용한다. 프리 타입 폰트엔진의 다국어 지원 프레임워크에 따라 제안방법을 별도의 모듈로 추가함으로서 시스템 수준에서 힌디어를 지원할 수 있다. 메시지 어플리케이션을 통해 제안방법의 타당성을 보인다.
본 논문에서는 개방형 OS인 안드로이드에서 힌디어 텍스트 처리방법을 제안한다. 텍스트 처리의 핵심은 알파벳을 문자로 조합하는 규칙을 정의하는 오토마타와 폰트 파일에서 문자에 대응하는 이미지를 검색하고 이를 화면에 표시하는 폰트 렌더링이다. 오토마타는 입력 문자의 종류와 개수에 좌우되는데 유니코드를 기반으로 자음 14자와 모음 34자를 알파벳으로 사용하는 오토마타를 제안한다. 조합된 음절은 테이블 매핑 방식을 사용하여 그립 인덱스로 변환하고 해당하는 폰트를 로드하기 위한 핸들로 사용한다. 프리 타입 폰트엔진의 다국어 지원 프레임워크에 따라 제안방법을 별도의 모듈로 추가함으로서 시스템 수준에서 힌디어를 지원할 수 있다. 메시지 어플리케이션을 통해 제안방법의 타당성을 보인다.
In this paper, we propose a text processing method for Hindi characters, Devanagari scripts, in the Android. The key points of the text processing are to device automata, which define the combining rules of alphabets into a set of syllables, and to implement a font rendering engine, which retrieves ...
In this paper, we propose a text processing method for Hindi characters, Devanagari scripts, in the Android. The key points of the text processing are to device automata, which define the combining rules of alphabets into a set of syllables, and to implement a font rendering engine, which retrieves and displays the glyph images corresponding to specific characters. In general, an automaton depends on the type and the number of characters. For the soft-keyboard, we designed the automata with 14 consonants and 34 vowels based on Unicode. Finally, a combined syllable is converted into a glyph index using the mapping table, used as a handle to load its glyph image. According to the multi-lingual framework of Freetype font engine, Dvanagari scripts can be supported in the system level by appending the implementation of our method to the font engine as the Hindi module. The proposed method is verified through a simple message system.
In this paper, we propose a text processing method for Hindi characters, Devanagari scripts, in the Android. The key points of the text processing are to device automata, which define the combining rules of alphabets into a set of syllables, and to implement a font rendering engine, which retrieves and displays the glyph images corresponding to specific characters. In general, an automaton depends on the type and the number of characters. For the soft-keyboard, we designed the automata with 14 consonants and 34 vowels based on Unicode. Finally, a combined syllable is converted into a glyph index using the mapping table, used as a handle to load its glyph image. According to the multi-lingual framework of Freetype font engine, Dvanagari scripts can be supported in the system level by appending the implementation of our method to the font engine as the Hindi module. The proposed method is verified through a simple message system.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 안드로이드에서 힌디어를 지원하기 위한 방법을 제시한다. 59개의 기본자소를 사용하여 음절을 조합하는 오토마타를 설계하고, 조합된 음절의 그립을 렌더링하는 방법을 제안한다.
본 논문에서는 힌디어를 시스템 수준에서 처리하기 위한 방법을 제안한다. 힌디어는 조합형 구조를 가지는 문자로 음절 인식을 위한 오토마타가 필요하며, 이를 안드로이드에서 구현하기 위해서는 문자-그립 매핑방법이 필요하다.
본 절에서는 힌디어의 자소가 부호화 문자열로 입력될 때, 이들을 구문분석(lexical analysis)하여 음절로 조합하기 위한 조합 오토마타를 정의한다.
제안 방법
본 논문에서는 안드로이드에서 힌디어를 지원하기 위한 방법을 제시한다. 59개의 기본자소를 사용하여 음절을 조합하는 오토마타를 설계하고, 조합된 음절의 그립을 렌더링하는 방법을 제안한다. 시스템 수준에서 힌디어를 처리하기 위해 Freetype[13] 폰트 렌더링 라이브러리의 구조를 분석하고 방향을 제시한다.
메세지 전송 어플리케이션에서 문자를 화면에 표시하는 작업은 어플리케이션에서 담당하는데 기본적으로 Freetype 폰트 엔진을 사용한다. 그러나 Freetype 폰트 렌더러를 직접 수정하여 사용자화 하는 것은 시스템 접근의 위험 내포와 오랜 개발 시간을 필요로 하기 때문에 어플리케이션 수준에서 자체 키보드와 폰트 렌더러를 개발하는 방법으로 본 논문에서 제안한 시스템 수준의 힌디어 지원 방법을 검증하였다.
59개의 기본자소를 사용하여 음절을 조합하는 오토마타를 설계하고, 조합된 음절의 그립을 렌더링하는 방법을 제안한다. 시스템 수준에서 힌디어를 처리하기 위해 Freetype[13] 폰트 렌더링 라이브러리의 구조를 분석하고 방향을 제시한다.
힌디어 폰트는 자음과 모음 각각에 대한 그립 이미지를 디자인하고 음절은 조합하는 방법을 사용한다. 자음과 모음에 대해 문자-그립 매핑은 매핑 테이블을 사용하고, 오토마타 상에서 매핑 시점을 제시하였다.
}에서 인식된다. 제안하는 오토마타에서 사용하는 알파벳은 UTF-8에 등록된 힌디어 자음과 모음 중에서 총 59자를 사용하고 기능에 따라 [표 4]과 같이 분류한다. 모음은 기본 모음은 11자, 유성모음 2자과 비음모음 2자를 사용하고, 자음은 기본자음은 33자, 반자음 기호 1자를 사용한다.
MS Window에서 OpenGL이 텍스트처리를 위해 Window GDI를 사용하듯이 안드로이드 2D 그래픽 라이브러리 SGL도 텍스트 처리를 위해 Freetype을 사용한다. 텍스트 출력이나 텍스트 레이아웃과 같이 고급기능을 지원하지 않지만 필요에 따라 고수준 함수를 만들 수 있는 환경을 제공하기 때문에, Skia 사는 Freetype 라이브러리를 기반으로 자신의 고수준 텍스트 출력 라이브러리를 개발하여 제공한다.
대상 데이터
어플리케이션 상에서 구현은 Freetype 라이브러리를 이용하여 외부 폰트를 불러오는 방법도 가능하나, 본 실험에서는 Windows Truetype[14] 힌디어 폰트를 사용하였다. 한편, Skia 라이브러리를 참조하면 Freetype 라이브러리의 기능들을 사용할 수 있는데, Freetype 라이브러리는 C/C++ 동적 라이브러리로 되어있기 때문에 Java 언어를 사용하는 안드로이드 SDK가 아닌 C언어를 사용하는 안드로이드 NDK를 사용하여 개발해야 한다.
이론/모형
MS Window에서 OpenGL이 텍스트처리를 위해 Window GDI를 사용하듯이 안드로이드 2D 그래픽 라이브러리 SGL도 텍스트 처리를 위해 Freetype을 사용한다. 텍스트 출력이나 텍스트 레이아웃과 같이 고급기능을 지원하지 않지만 필요에 따라 고수준 함수를 만들 수 있는 환경을 제공하기 때문에, Skia 사는 Freetype 라이브러리를 기반으로 자신의 고수준 텍스트 출력 라이브러리를 개발하여 제공한다.
본 논문에서는 힌디어 조합에 과정에서 생성되는 문자의 그립에 대해 테이블 기반 그립 인덱스 매핑방법을 사용한다. 그립 인덱스의 매핑은 폰트 파일의 구현방법에 종속적이므로, 먼저 힌디어 폰트의 구성에 대해 살펴본다.
성능/효과
산스크리트어를 어원으로 하는 힌디어는 한글과 마찬가지로 조합형 구조를 가진다[7]. 가장 큰 특징은 자음과 모음이 중첩될 수 있고, 모음과 결합되는 과정에서 자모음 모양이 바뀔 수 있다는 점이다. 한글 조합형 문자처리에서도 경험한 바와 같이 완전 조합형은 코드화된 자소의 개수가 적어 스마트폰의 자판 설계에 적당한 반면 음절이 완성되어 가는 과정에서 자소의 모양이 달라지므로 복잡한 처리과정이 필요하다.
후속연구
xml 파일을 코딩하면 원하는 언어를 사용할 수 있다. 여기서 안드로이드가 다국어를 지원한다는 것은 Freetype 폰트 엔진에서 해당 언어를 지원한다는 의미이나, 한글이나 힌디어와 같은 일부 언어는 직접 지원하지 않기 때문에 다국어 처리를 위한 추가적인 모듈이 필요하고 이에 대한 연구가 필요하다.
질의응답
핵심어
질문
논문에서 추출한 답변
스마트폰이 많은 수의 문자를 배열할 수 없고 컴퓨터용 문자 입력방법을 그대로 사용할 수 없는 이유는?
이런 점에서 스마트폰의 환경에 적합한 다국어 문자입력 방법이 필요하고 스마트폰의 다양한 응용 프로그램을 활용할 수 있다. 그러나 스마트폰은 별도의 키보드를 갖는 대신 터치스크린에 문자 키보드를 표시하고 이를 접촉하여 문자를 입력하는 소프트 키보드 방법을 사용하기 때문에 많은 수의 문자를 배열할 수 없고 컴퓨터용 문자 입력방법을 그대로 사용할 수 없다. 예를 들면, 한글은자소단위의 조합방식을 사용하여 키의 숫자를 최소한으로 줄여서 사용하는데, 힌디어도 조합구조를 갖기 때문에 동일한 문제가 발생한다.
iPhone의 OS는 무엇인가?
스마트폰은 애플이 주도하는 iOS 기반의 iPhone과 안드로이드 기반의 안드로이드 폰으로 나눌 수 있는데 모두 소프트 키보드를 개발할 수 있는 환경을 제공한다. iOS는 공급자 중심의 운영체제로서 다양한 응용 프로그램을 개발할 수 있도록 안정된 개발환경을 제공하기 때문에 다양한 문자입력기를 쉽게 개발할 수 있고, 현재 50여개 문자입력기가 탑재되어 시판되고 있다.
안드로이드 폰의 OS의 특징은?
iOS는 공급자 중심의 운영체제로서 다양한 응용 프로그램을 개발할 수 있도록 안정된 개발환경을 제공하기 때문에 다양한 문자입력기를 쉽게 개발할 수 있고, 현재 50여개 문자입력기가 탑재되어 시판되고 있다. 반면 개방형 운영체제인 안드로이드는 커널과 프로그램 실행환경만 제공하고 제품의 구현은 개발자에게 맡겨져 있다[4]. 기본적으로 다국어 문자를 지원하도록 설계 되어 있지만 언어의 특성에 기인된 문제는 별도로 개발하여야 하기 때문에 스마트폰 제조사별로 문자입력기가 다를 수 있다. 스마트폰 시장은 애플이 주도하고 있으나 삼성, LG 등 국내 업체도 안드로이드 기반의 스마트폰을 개발하여 세계 시장에 진입하고 있다[2].
※ AI-Helper는 부적절한 답변을 할 수 있습니다.