유니스크라이브
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
유니스크라이브는 텍스트의 입력 열을 표시 열로 변환하고, 문맥에 따라 글리프를 치환하며, 텍스트의 쓰기 방향에 따라 표시되는 텍스트를 정렬하는 기능을 제공하는 구성 요소이다. 주로 `USP10.dll` 파일 형태로 제공되며, 다양한 버전이 존재한다. 윈도우 운영체제에서 복잡한 텍스트 레이아웃을 처리하며, 윈도우 10에서는 범용 쉐이핑 엔진을 구현했다. 유니스크라이브는 윈도우 2000 이상에서 사용 가능하며, 업데이트를 통해 다양한 문자 체계를 지원한다.
더 읽어볼만한 페이지
- 유니코드 - 이모지
이모지는 1999년 NTT 도코모에서 처음 도입된 그림 문자로, 유니코드 표준 제정 후 전 세계적으로 확산되어 다양한 언어적 기능을 수행하며 대중문화에 영향을 미치지만, 플랫폼별 표현 방식 차이와 의미 해석 논란도 존재한다. - 유니코드 - 국제 음성 기호
국제 음성 기호는 국제 음성 협회가 개발한 언어의 음성 표기 문자 기호 체계로, 라틴 문자를 기반으로 자음, 모음, 초분절 기호 등을 포함하여 모든 언어의 음성을 정확하게 표기하는 것을 목표로 한다. - 마이크로소프트 API - 윈도우 API
윈도우 API는 마이크로소프트 윈도우 운영 체제에서 응용 프로그램이 시스템 기능에 접근하도록 돕는 인터페이스 집합이며, 다양한 버전으로 발전해 왔고, 현재 Win32가 널리 사용되며, 유연성을 제공하지만 복잡하다는 단점을 보완하기 위해 다양한 래퍼 라이브러리가 개발되었다. - 마이크로소프트 API - WinFS
WinFS는 마이크로소프트가 개발한 파일 시스템으로, 검색 기능 내장 및 메타데이터 관리를 통해 데이터 관리 효율성을 높이는 것을 목표로 했으나 별도 제품으로 출시되지는 못하고 핵심 기능들이 윈도우 비스타 이후 기술에 통합되었다. - 타이포그래피 - 팬그램
팬그램은 특정 문자 집합의 모든 문자를 최소 한 번 포함하는 문장이나 구절로, 완전 팬그램, 자기 열거 팬그램 등 여러 유형이 있으며, 다양한 언어에서 활용되고 수학적 연구 주제로도 다뤄진다. - 타이포그래피 - ß
ß(에스체트)는 독일어에서 긴 s와 s 또는 z의 합자에서 유래한 문자로, 특정 조건에서 무성음 /s/를 나타내며, 사용 범위가 축소되었으나 대문자 형태(ẞ)가 추가되어 표준 독일어에서 선택적으로 사용될 수 있다.
2. 기능
유니스크라이브는 복잡한 텍스트 레이아웃을 가진 스크립트의 올바른 렌더링을 위해 다음과 같은 기능을 수행한다.
- 글자 결합: 두 개 이상의 문자를 하나의 모양으로 합치는 합자(라틴 문자, 데바나가리 문자 등) 기능을 지원한다.[6]
- 순서 재정렬: 발음 순서와 표기 순서가 다른 경우(벵골어, 싱할라어 등) 글자를 올바른 순서로 표시한다.[6]
- 문맥 형성: 단어 내 위치에 따라 글자 모양이 달라지는 경우(아랍어, 몽골어 등) 해당 문맥에 맞는 글리프를 표시한다.[6]
이를 위해 유니스크라이브는 지원되는 스크립트별 쉐이핑 엔진을 사용하며, 비복잡 스크립트(라틴 문자, 키릴 문자 등)를 위한 일반 엔진도 포함한다.[6] 현재 사용되는 엔진에는 인도어(벵골어, 데바나가리 문자, 구자라트어, 구르무키어, 칸나다어 등), 아랍어, 한글, 히브리어, 크메르어, 미얀마어, 태국어/라오어 변종이 있다.[6]
Windows 10에서는 범용 쉐이핑 엔진(Universal Shaping Engine, USE)을 구현하여, 유니코드 표준에 정의된 글리프 속성을 기반으로 다양한 복잡한 스크립트를 지원한다.[10] USE는 인도 스크립트에 대해 개발된 "범용 클러스터 모델"을 기반으로 하며, 2020년 현재 70개의 복잡한 스크립트를 처리한다.[6][10]
유니스크라이브의 주요 목적은 다음과 같다.
1. 텍스트의 입력 열을 표시 열로 변환한다.
2. 문맥에 따라 글리프를 치환한다 (예: 아랍어의 단어 내 위치에 따른 글자 모양 등).
3. 텍스트의 쓰기 방향 (LTR \[왼쪽에서 오른쪽] 또는 RTL \[오른쪽에서 왼쪽]인지, 가로 쓰기인지 세로 쓰기인지 등)에 따라 표시되는 텍스트를 정렬한다.
3. 구성 요소
유니스크라이브(Uniscribe)는 주로 `USP10.dll` 파일 형태로 제공되며, 이는 Unicode Scripts Processor의 약자이다. `USP10.dll`은 다양한 버전이 존재하며, 각 버전은 지원하는 기능, 운영 체제, 함께 제공되는 소프트웨어 등이 다르다. 초기 버전에서는 아랍 문자, 히브리어를 지원했고, 이후 버전에서는 태국어, 베트남어를 지원하게 되었다. 윈도우 XP부터는 남아시아 및 아시리아 문자를 더 많이 지원하게 되었다.
윈도우 10에서는 유니스크라이브가 범용 쉐이핑 모델인 USE(Universal Shaping Engine)를 구현하기 위해 주요 리팩토링 작업을 수행했다.[10]
3. 1. USP10.dll 버전
USP10.dll영어은 다양한 버전이 존재하며, 각 버전은 특정 운영 체제나 소프트웨어와 함께 제공되어 새로운 기능을 추가하거나 문제를 해결한다. 다음 표는 미국 영어 현지화 플랫폼을 기준으로 USP10.dll영어의 주요 버전, 파일 크기, 파일 날짜, 함께 제공되는 소프트웨어, 그리고 해당 버전의 새로운 기능을 정리한 것이다.
3. 1. 1. 윈도우 10 (유니버설 셰이핑 엔진)
윈도우 10에서는 유니스크라이브가 범용 셰이핑 모델인 USE(Universal Shaping Engine, 유니버설 셰이핑 엔진)를 구현하기 위해 주요 리팩토링 작업을 수행했다.[10] 이 엔진은 유니코드 표준에 정의된 글리프 속성을 직접 기반으로 하여, 적합한 글꼴을 가진 모든 복잡한 스크립트를 지원할 수 있기를 희망한다.[3]USE는 인도 스크립트에 대해 개발된 일반화된 "범용 클러스터 모델"을 기반으로 하며, 이는 인간의 쓰기 시스템의 상위 집합을 모델링한다. 이 엔진은 복잡한 스크립트의 각 문자를 기본 클래스 및 하위 클래스로 여러 범주로 분류한다. 예를 들어, 임시 인도어 분류에는 일반, 음절 및 위치 범주가 포함되며, 기본(숫자, 자음, 음조 문자, 종속 모음 등), 기본 모음(독립 모음), 숫자(Brahmi 결합 숫자), 최종, 중간 및 수정 자음, 중간 자음, 상단, 하단, 왼쪽 및 오른쪽 자음과 모음으로 더 세분된다. 유니코드 기호 문자열은 잘 정의된 규칙을 사용하여 USE 클래스 모음으로 변환되어 글리프 구성이 표준 절차가 되며, OpenType 사양에 정의된 현재 언어 기능으로는 불가능한 문자 간 상호 작용을 허용한다.[6]
범용 셰이핑 엔진은 2014년 OpenType 개발자 회의에서 발표되었으며, 호환 가능한 접근 방식이 오픈 소스 HarfBuzz 텍스트 셰이퍼에 의해 구현되었다. 2020년 현재, Windows 10의 USE는 Adlam, Ahom, Balinese, Batak, Bhaiksuki, Brahmi, Buginese, Buhid, Chakma, Cham, Chorasmian, Dives Akuru, Duployan, Egyptian Hieroglyphs, Elymaic, Grantha, Gunjala Gondi, Hanifi Rohingya, Hanunoo, Javanese, Kaithi, Kayah Li, Kharoshthi, Khitan Small Script, Khojki, Khudawadi, Lepcha, Limbu, Mahajani, Makasar, Mandaic, Manichaean, Marchen, Masaram Gondi, Medefaidrin, Meitei Mayek, Miao, Modi, Mongolian, Multani, Nandinagari, Newa, N’Ko, Nyiakeng Puachue Hmong, Pahawh Hmong, Phags-pa, Psalter Pahlavi, Rejang, Saurashtra, Sharada, Siddham, Sinhala, Sogdian, Old Sogdian, Soyombo, Sundanese, Syloti Nagri, Tagalog, Tagbanwa, Tai Le, Tai Tham (제한적 지원), Tai Viet, Takri, Tibetan, Tifinagh, Tirhuta, Wancho, Yezidi, Zanabazar Square 총 70개의 복잡한 스크립트를 처리한다.[10]
다음은 usp10.dll의 몇 가지 일반적인 버전과 배포 방법을 나열한 표이다.
3. 1. 2. 윈도우 7
3. 1. 3. 윈도우 비스타
3. 1. 4. 윈도우 XP
Uniscribe영어는 윈도우 XP에서 다양한 문자를 지원하기 위해 사용되었다. 다음은 윈도우 XP와 관련된 버전 정보이다.
3. 1. 5. 윈도우 2000
Uniscribe|유니스크라이브영어는 윈도우 2000부터 제공되기 시작했으며, 새로운 버전이 나올 때마다 기능이 추가되고 지원하는 문자가 늘어났다. 초기 업데이트에서는 아랍 문자를 지원했다.[2]다음은 윈도우 2000에 포함되었거나 함께 제공된 유니스크라이브 버전 정보이다.
3. 1. 6. 기타
윈도우 서버 2003, 마이크로소프트 오피스, 인터넷 익스플로러 등 다양한 소프트웨어와 함께 제공되는 유니스크라이브 버전들이 존재한다. 다음은 usp10.dll의 주요 버전과 각 배포 형태를 나타낸 표이다.
3. 2. 유니버설 셰이핑 엔진 (Universal Shaping Engine)
Windows 10에서는 유니스크라이브가 범용 쉐이핑 모델인 USE(Universal Shaping Engine, 범용 쉐이핑 엔진)를 구현하기 위해 주요 리팩토링 작업을 수행했다.[10] 이 엔진은 유니코드 표준에 정의된 글리프 속성을 직접 기반으로 하여, 전용 쉐이핑 엔진을 만드는 데 필요한 시간과 노력을 들이지 않고 적합한 글꼴을 가진 모든 복잡한 스크립트를 지원할 수 있기를 희망한다.[3]USE는 인도 스크립트에 대해 개발된 일반화된 "범용 클러스터 모델"을 기반으로 하며, 이는 인간의 쓰기 시스템의 상위 집합을 모델링한다. 이 엔진은 복잡한 스크립트의 각 문자를 기본 클래스 및 하위 클래스로 여러 범주로 분류한다. 예를 들어, 임시 인도어 분류에는 일반, 음절 및 위치 범주가 포함되며, 기본(숫자, 자음, 음조 문자, 종속 모음 등), 기본 모음(독립 모음), 숫자(Brahmi 결합 숫자), 최종, 중간 및 수정 자음, 중간 자음, 상단, 하단, 왼쪽 및 오른쪽 자음과 모음으로 더 세분된다. 유니코드 기호 문자열은 잘 정의된 규칙을 사용하여 USE 클래스 모음으로 변환되어 글리프 구성이 표준 절차가 되며 OpenType 사양에 정의된 현재 언어 기능으로는 불가능한 문자 간 상호 작용을 허용한다.[6]
범용 쉐이핑 엔진은 2014년 OpenType 개발자 회의에서 발표되었으며, 호환 가능한 접근 방식이 오픈 소스 HarfBuzz 텍스트 쉐이퍼에 의해 구현되었다. 2020년 현재, Windows 10의 USE는 총 70개의 복잡한 스크립트를 처리한다.[10]
4. 업데이트 방법
더 새로운 usp10.dll을 특정 애플리케이션에서만 사용하고자 하는 경우, 더 최신 버전의 파일을 해당 애플리케이션의 디렉터리에 복사하면 된다.
5. 한국어 관련 정보
유니스크라이브는 한글 처리에도 중요한 역할을 한다. 특히, 한글 자모의 조합, 옛한글 처리 등 복잡한 텍스트 레이아웃을 지원한다.[6] Windows 10의 유니버설 셰이핑 엔진(USE)은 한글을 지원하는 70개의 복잡한 스크립트 중 하나로 포함하고 있다.[10]
참조
[1]
웹사이트
Windows 7: Introducing Direct2D and DirectWrite
http://channel9.msdn[...]
Microsoft Corp.
2021-06-01
[2]
웹사이트
Script and Font Support in Windows
https://msdn.microso[...]
[3]
웹사이트
Windows shapes the world's languages
2015-02-23
[4]
웹사이트
RE: Symbola font (was: James Kass and Code2000 font)
https://www.unicode.[...]
2011-01-29
[5]
간행물
Public Review Issue #37
https://www.unicode.[...]
Unicode Consortium
[6]
웹사이트
Making fonts for the Universal Shaping Engine
https://tiro.com/Joh[...]
2020-06-09
[7]
웹사이트
Problems for Indic typography in current OpenType Layout implementations - John Hudson
http://www.tiro.com/[...]
[8]
웹사이트
Fixing Indic2 OpenType Layout - John Hudson
http://www.tiro.com/[...]
[9]
웹사이트
Beyond shaping and towards a general model of OpenType typography - John Hudson
http://www.tiro.com/[...]
[10]
웹사이트
Creating and supporting OpenType fonts for the Universal Shaping Engine - Typography
https://docs.microso[...]
2022-09-30
[11]
웹사이트
RE: Symbola font (was: James Kass and Code2000 font)
http://www.unicode.o[...]
2011-01-29
[12]
웹사이트
Prototyping Tangut IMEs, or Why Windows 7 Sucks
http://babelstone.bl[...]
2011-01-29
[13]
문서
https://unicode.org/[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
