KR101791880B1 - 유티에프-8 코드 문자의 압축 방법 및 장치 - Google Patents

유티에프-8 코드 문자의 압축 방법 및 장치 Download PDF

Info

Publication number
KR101791880B1
KR101791880B1 KR1020160094418A KR20160094418A KR101791880B1 KR 101791880 B1 KR101791880 B1 KR 101791880B1 KR 1020160094418 A KR1020160094418 A KR 1020160094418A KR 20160094418 A KR20160094418 A KR 20160094418A KR 101791880 B1 KR101791880 B1 KR 101791880B1
Authority
KR
South Korea
Prior art keywords
byte
characters
code
significant bit
utf
Prior art date
Application number
KR1020160094418A
Other languages
English (en)
Inventor
김정훈
Original Assignee
김정훈
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김정훈 filed Critical 김정훈
Application granted granted Critical
Publication of KR101791880B1 publication Critical patent/KR101791880B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • H03M7/48Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind alternating with other codes during the code conversion process, e.g. run-length coding being performed only as long as sufficientlylong runs of digits of the same kind are present
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/55Compression Theory, e.g. compression of random number, repeated compression
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/70Type of the data to be coded, other than image and sound
    • H03M7/705Unicode

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 압축부가 유티에프-8(UTF-8) 코드 문자를 입력받는 입력단계; 및 상기 압축부가 UTF-8 코드 문자를 압축하는 압축단계를 포함하되, 상기 UTF-8 코드 문자 중 3바이트 코드군에 포함된 문자는 최상위비트쪽에 1110을 포함하는 문자로서, 1110으로 시작하는 제 1바이트, 상기 제 1바이트 다음에 위치하고 10으로 시작하는 제 2바이트, 및 상기 제 2바이트 다음에 위치하고 10으로 시작하는 제 3바이트를 포함하고, 상기 압축단계에서 상기 압축부는, 상기 3바이트 코드군에 포함된 문자 중 상기 제 1바이트의 최상위비트에서 "11101"로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11101은 10으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행하는 것을 특징으로 하는, 유티에프-8 코드 문자의 압축 방법에 관한 것이다.

Description

유티에프-8 코드 문자의 압축 방법 및 장치{METHOD AND APPARATUS FOR COMPRESSING UTF-8 CODE CHARACTER}
본 발명은 유티에프-8 코드 문자의 압축 방법 및 장치에 관한 것으로서, 보다 구체적으로는 간단한 연산을 통해 유티에프-8 코드(UTF-8 CODE) 방식의 문자를 효과적이고 효율적으로 압축할 수 있도록 하는, 유티에프-8 코드 문자의 압축 방법 및 장치에 관한 것이다.
일반적으로, 통상의 전송 채널에서 이용 가능한 주파수 대역폭은 제한되어 있으므로, 많은 양의 데이터를 전송하기 위해서 모뎀과 같은 다양한 전송 시스템은 전송 데이터의 양을 압축하거나 줄일 수 있는 효과적인 데이터 압축 기법을 이용해 왔다.
다양한 압축기법 중의 하나로서, 국제 전기 통신 동맹(ITU : International Telecommunication Union)에 의해 표준화된 부호화 알고리즘으로, 모뎀과 같은 데이터 전송 시스템에서 채용하고 있는 CCITT V.42 bis 가 있다. 이 부호화 표준안에 적용된 기초는 Ziv-Lempel code(ZLC)이며, 이 방식은 입력 데이터로부터 적응적으로 사전을 형성해 가면서 앞의 입력 데이터와 동일한 구문(phrase)이 저장되어 있는 사전의 주소값을 부호어로 전송하는 방법이다. 사전화(dictionary) 작업은 입력 데이터와 계속적인 스트링 매칭(string matching)을 수행하여 최대 길이의 매칭 스트링에 매칭안된 문자를 결합하여 사전에 추가하는 과정으로 사전을 업데이트한다.
그러나, 이러한 종래의 압축 방식은 데이터의 압축 및 압축 해제에 대한 처리 연산이 복잡하고 비교적 고사양의 하드웨어적 장치를 필요로 하며, 처리 속도의 향상에 제한이 따르고 압축 결과값에 대한 신뢰성을 높이기 힘든 문제점이 있었다.
한편, 유티에프-8 코드(UTF-8 code)는 유니코드를 위한 가변 길이 문자 인코딩 방식 중 하나로, 켄 톰프슨과 롭 파이크에 의해 만들어졌다. UTF-8 코드는 Universal Coded Character Set + Transformation Format-8bit의 약자이다. 본래는 FSS-UTF(File System Safe UCS/Unicode Transformation Format)라는 이름으로 제안되었다. UTF-8 코드는 아스키코드 체계와 다국어코드를 모두 포함하기 위한 전세계적 표준코드이며, 우리나라에서는 한글을 표현하기 위한 한글 표준 엔코딩 방법이며, 각종 검색엔진에서도 기준코딩으로 쓸만큼 매우 범용적으로 활용되고 있는 코드이다.
도 3은 UTF-8 코드를 포함한 각 문자코드의 웹에서의 활용빈도를 나타낸 것이다. 도 3에 도시된 바와 같이 UTF-8코드는 그 중요도와 활용도가 갈수록 증가하고 있으며, 이러한 UTF-8코드를 보다 효율적이고 최적화된 방법으로 압축하는 기술에 대한 필요성이 갈수록 증가하고 있다.
본 발명의 배경기술은 대한민국 공개특허공보 제 2003-0022630호(2003. 3. 17 공개)에 개시되어 있다.
본 발명이 이루고자 하는 기술적 과제는, 간단한 연산을 통해 유티에프-8 코드(UTF-8 CODE) 방식의 문자를 효과적이고 효율적으로 압축할 수 있도록 하는, 유티에프-8 코드 문자의 압축 방법 및 장치를 제공하는 데에 있다.
본 발명의 일 측면에 따르면, 본 발명은 압축부가 유티에프-8(UTF-8) 코드 문자를 입력받는 입력단계; 및 상기 압축부가 UTF-8 코드 문자를 압축하는 압축단계를 포함하되, 상기 UTF-8 코드 문자 중 3바이트 코드군에 포함된 문자는 최상위비트쪽에 1110을 포함하는 문자로서, 1110으로 시작하는 제 1바이트, 상기 제 1바이트 다음에 위치하고 10으로 시작하는 제 2바이트, 및 상기 제 2바이트 다음에 위치하고 10으로 시작하는 제 3바이트를 포함하고, 상기 압축단계에서 상기 압축부는, 상기 3바이트 코드군에 포함된 문자 중 상기 제 1바이트의 최상위비트에서 "11101"로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11101은 10으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행하는 것을 특징으로 하는, 유티에프-8 코드 문자의 압축 방법을 제공한다.
본 발명에서, 상기 압축단계에서 상기 압축부는, 상기 3바이트 코드군에 포함된 문자 중 상기 제 1바이트의 최상위비트에서 "11100"으로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11100은 1110으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행하는 것을 특징으로 한다.
본 발명에서, 상기 압축단계에서 압축부는, 상기 UTF-8 코드 문자 중, 2바이트로 구성된 2바이트 코드군의 문자, 4바이트로 구성된 4바이트 코드군의 문자, 5바이트로 구성된 5바이트 코드군의 문자, 및 6바이트로 구성된 6바이트 코드군의 문자에 대해서는, 첫번째 바이트를 제외한 각각의 나머지 바이트는 최상위비트쪽에 있는 10을 삭제하여 압축을 수행하는 것을 특징으로 한다.
본 발명의 다른 측면에 따르면, 본 발명은 UTF-8 코드 문자를 압축하는 압축부를 포함하되, 상기 압축부는 상기 UTF-8 코드 문자 중, 최상위비트쪽에 1110을 포함하는 3바이트 코드군에 포함된 문자를 압축하고, 상기 3바이트 코드군의 문자는 1110으로 시작하는 제 1바이트, 상기 제 1바이트 다음에 위치하고 10으로 시작하는 제 2바이트, 및 상기 제 2바이트 다음에 위치하고 10으로 시작하는 제 3바이트를 포함하고, 상기 압축부는, 상기 3바이트 코드군에 포함된 문자 중 상기 제 1바이트의 최상위비트쪽에서 "11101"로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11101은 10으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 상위비트쪽에 있는 10은 삭제하여 압축을 수행하는 것을 특징으로 하는, 유티에프-8 코드 문자의 압축 장치를 제공한다.
본 발명에서, 상기 압축부는, 상기 3바이트 코드군에 포함된 문자 중 상기 제 1바이트의 최상위비트쪽에서 "11100"으로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11100은 1110으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행하는 것을 특징으로 한다.
본 발명에서, 상기 압축부는, 상기 UTF-8 코드 문자 중, 2바이트로 구성된 2바이트 코드군의 문자, 4바이트로 구성된 4바이트 코드군의 문자, 5바이트로 구성된 5바이트 코드군의 문자, 및 6바이트로 구성된 6바이트 코드군의 문자에 대해서는, 첫번째 바이트를 제외한 각각의 나머지 바이트는 최상위비트쪽에 있는 10을 삭제하여 압축을 수행하는 것을 특징으로 한다.
본 발명의 또 다른 측면에 따르면, 본 발명은 압축부가 UTF-8 코드 문자를 입력받는 입력단계; 및 상기 압축부가 UTF-8 코드 문자를 압축하는 압축단계를 포함하되, 상기 UTF-8 코드 문자 중 3바이트 코드군에 포함된 문자는 최상위비트쪽에 1110을 포함하는 문자로서, 1110으로 시작하는 제 1바이트, 상기 제 1바이트 다음에 위치하고 10으로 시작하는 제 2바이트, 및 상기 제 2바이트 다음에 위치하고 10으로 시작하는 제 3바이트를 포함하고, 상기 압축단계에서 상기 압축부는, 상기 3바이트 코드군에 포함된 문자 중 상기 제 1바이트의 최상위비트쪽에서 "11101"로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11101은 1110으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행하는, 유티에프-8 코드 문자의 압축 방법을 제공한다.
본 발명에서, 상기 압축단계에서 상기 압축부는, 상기 3바이트 코드군에 포함된 문자 중 상기 제 1바이트의 최상위비트쪽에서 "11100"으로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11100은 10으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행하는 것을 특징으로 한다.
본 발명에서, 상기 압축단계에서 압축부는, 상기 UTF-8 코드 문자 중, 2바이트로 구성된 2바이트 코드군의 문자, 4바이트로 구성된 4바이트 코드군의 문자, 5바이트로 구성된 5바이트 코드군의 문자, 및 6바이트로 구성된 6바이트 코드군의 문자에 대해서는, 첫번째 바이트를 제외한 각각의 나머지 바이트는 최상위비트쪽에 있는 10을 삭제하여 압축을 수행하는 것을 특징으로 한다.
본 발명의 또 다른 측면에 따르면, 본 발명은 UTF-8 코드 문자를 압축하는 압축부를 포함하되, 상기 압축부는 상기 UTF-8 코드 문자 중, 최상위비트쪽에 1110을 포함하는 3바이트 코드군에 포함된 문자를 압축하고, 상기 3바이트 코드군의 문자는 1110으로 시작하는 제 1바이트, 상기 제 1바이트 다음에 위치하고 10으로 시작하는 제 2바이트, 및 상기 제 2바이트 다음에 위치하고 10으로 시작하는 제 3바이트를 포함하고, 상기 압축부는, 상기 3바이트 코드군에 포함된 문자 중 상기 제 1바이트의 최상위비트쪽에서 "11101"로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11101은 1110으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행하는 것을 특징으로 하는, 유티에프-8 코드 문자의 압축 장치를 제공한다.
본 발명에서, 상기 압축부는, 상기 3바이트 코드군에 포함된 문자 중 상기 제 1바이트의 상위비트에서 "11100"으로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11100은 10으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행하는 것을 특징으로 한다.
본 발명에서, 상기 압축부는, 상기 UTF-8 코드 문자 중, 2바이트로 구성된 2바이트 코드군의 문자, 4바이트로 구성된 4바이트 코드군의 문자, 5바이트로 구성된 5바이트 코드군의 문자, 및 6바이트로 구성된 6바이트 코드군의 문자에 대해서는, 첫번째 바이트를 제외한 각각의 나머지 바이트는 최상위비트쪽에 있는 10을 삭제하여 압축을 수행하는 것을 특징으로 한다.
본 발명의 일측면에 따른 유티에프-8 코드 문자의 압축 방법 및 장치는 간단한 연산을 통해 유티에프-8 코드(UTF-8 CODE) 방식의 문자를 효과적이고 효율적으로 압축할 수 있도록 함으로써, UTF-8코드 문자들의 데이터량을 줄일 수 있고 또한 이를 처리해야 하는 프로세서의 부담도 덜 수 있을 뿐만 아니라, 대용량의 데이터를 전송함에 있어서도 매우 효과적이다.
도 1은 본 발명에 의한 일 실시예에 따른 유티에프-8 코드 문자의 압축 장치 및 복원 장치의 구성을 도시한 것이다.
도 2는 본 발명에 의한 일 실시예에 따른 유티에프-8 코드 문자의 압축 방법을 설명하기 위한 흐름도이다.
도 3은 UTF-8 코드를 포함한 각 문자코드의 웹에서의 활용빈도를 나타낸 것이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고, 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명에 의한 일 실시예에 따른 유티에프-8 코드 문자의 압축 장치 및 복원장치의 구성을 도시한 것이고, 도 2는 본 발명에 의한 일 실시예에 따른 유티에프-8 코드 문자의 압축 방법을 설명하기 위한 흐름도로서, 이를 참조하여 본 발명의 실시예를 설명하면 다음과 같다.
도 1에 도시된 바와 같이, 본 실시예에 따른 유티에프-8 코드 문자의 압축 장치(100, 이하 "압축 장치"라 함)는 압축부(110) 및 출력부(120)를 포함한다.
압축부(110)는 유티에프-8(UTF-8) 코드 문자를 압축한다. 압축부(110)는 상기 UTF-8 코드 문자 중, 최상위비트쪽에 1110을 포함하는 3바이트 코드군에 포함된 문자를 압축할 수 있다. 여기서, 3바이트 코드군 문자란 1110으로 시작하는 제 1바이트, 상기 제 1바이트 다음에 위치하고 10으로 시작하는 제 2바이트, 및 상기 제 2바이트 다음에 위치하고 10으로 시작하는 제 3바이트를 포함하는 문자를 의미한다.
압축부(110)는, 상기 3바이트 코드군에 포함된 문자 중 상기 제 1바이트의 최상위비트쪽에서 "11101"로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11101은 1110으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 상위비트쪽에 있는 10은 삭제하여 압축을 수행할 수 있다. 그리고, 압축부(110)는, 상기 3바이트 코드군에 포함된 문자 중 상기 1바이트의 최상위비트쪽에서 "11100"으로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11100은 1110으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행할 수 있다.
또한, 이와는 다른 방식으로, 압축부(110)는 상기 3바이트 코드군에 포함된 문자 중 상기 1바이트의 최상위비트쪽에서 "11101"로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11101은 1110으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행할 수 있다. 그리고, 압축부(110)는 상기 3바이트 코드군에 포함된 문자 중 상기 1바이트의 상위비트에서 "11100"으로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11100은 10으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행할 수 있다.
압축부(110)는, 상기 UTF-8 코드 문자 중, 2바이트로 구성된 2바이트 코드군의 문자, 4바이트로 구성된 4바이트 코드군의 문자, 5바이트로 구성된 5바이트 코드군의 문자, 및 6바이트로 구성된 6바이트 코드군의 문자에 대해서는, 첫번째 바이트를 제외한 각각의 나머지 바이트는 최상위비트쪽에 있는 10을 삭제하여 압축을 수행할 수 있다.
이와 같이 구성된 본 실시예의 동작 및 작용을 도 1 및 도 2를 참조하여 구체적으로 설명한다.
먼저, 압축부(110)는 입력부(미도시)를 통해 UTF-8 코드 문자를 입력받는다(S201).
이어서, 압축부(110)는 상기 UTF-8 코드 문자의 헤더에 근거하여 해당 UTF-8코드 문자의 유형을 확인(식별)한다(S202).
bits of First Last 바이트 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6
code point code point code point 코드군
7 U+0000 U+007F 1 0xxxxxxx
11 U+0080 U+07FF 2 110xxxxx 10xxxxxx
16 U+0800 U+FFFF 3 1110xxxx 10xxxxxx 10xxxxxx
21 U+10000 U+1FFFFF 4 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
26 U+200000 U+3FFFFFF 5 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
31 U+4000000 U+7FFFFFFF 6 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
표 1은 UTF-8 코드 체계를 나타낸 것이다. UTF-8 코드 체계는 표 1에서와 같이 유니코드의 값의 범위에 따라, 맨 앞에 있는 제 1바이트(byte 1)의 헤더비트(표 1에서 이진수로 표시된 부분)를 달리하면서, 제 1바이트의 헤더비트의 유형에 대응하여 그 이후 제 2바이트에서 제 6바이트(byte 2~byte 6)를 가변적으로 읽어 들일 수 있게 되어 있다. 제 1바이트 후인 제 2바이트 내지 제 6바이트에는 최상위 비트앞에 “10”이 규칙적으로 부가되어 있다.
표 1에서 볼 수 있는 바와 같이 각 UTF-8코드 문자는 맨 앞에 있는 제 1바이트의 헤더비트가 어떤값인가에 따라 그 유형을 식별할 수 있다. 구체적으로, 제 1바이트가 "0"으로 시작하면 1바이트 코드군으로서 1바이트로 구성되고; 제 1바이트가 "110"으로 시작하면 2바이트 코드군으로서 2바이트로 구성되고; 제 1바이트가 "1110"으로 시작하면 3바이트 코드군으로서 3바이트로 구성되고; 제 1바이트가 "11110"으로 시작하면 4바이트 코드군으로서 4바이트로 구성되고, 제 1바이트가 "111110"으로 시작하면 5바이트 코드군으로서 5바이트로 구성되고, 제 1바이트가 "1111110"으로 시작하면 6바이트 코드군으로서 6바이트로 구성된다.
상기 표 1의 x로 표기한 부분은 유니코드 포인터인 First code point ~ Last code point의 이진화된 비트가 순서대로 표기된 내용을 나타낸다. 예를 들어, U+07FF는 이진수로 111 1111 1111 으로서 전체 11비트이며, 표 1에서처럼 110 xxxxx 10 xxxxxx 안에 110 11111 10 111111 형태로 포함되어 2바이트의 UTF-8 코드로 치환되며, 이러한 원리에 따라 각각의 UTF-8 코드가 구성된다.
UTF-8 코드는 바이트 코드군의 특정 영역 또는 대응하는 유니코드 영역에 각 국가의 문자코드가 할당되어 있는데, 특히 한글이 포함되어 있는 유니코드의 범위는 (U+AC00~U+D7AF)으로서 표 1에서 3바이트 코드군에 포함되어 있다. 3바이트 코드군의 UTF-8 코드의 제 1바이트의 헤더는 "1110"이다. 구체적으로, 상기 3바이트 코드군의 문자는 1110으로 시작하는 제 1바이트, 상기 제 1바이트 다음에 위치하고 10으로 시작하는 제 2바이트, 및 상기 제 2바이트 다음에 위치하고 10으로 시작하는 제 3바이트를 포함한다. 본 실시예는 UTF-8 코드 문자들을 압축하되, 특히 한글이 포함되어 있는 영역인 3바이트 코드군에 대해서는 압축률을 보다 최적화하는 데에 중점을 두고 있다.
한글이 포함되어 있는 유니코드의 범위는 (U+AC00~U+D7AF)로서 이진수로는 1010 1100 00000000 ~ 1101 0111 10101111 범위이며, 이를 UTF-8 코드로 나타내면,
1110 1010 10 110000 10 000000 ~ 1110 1101 10 011110 10 101111
와 같은 범위가 된다. 그런데, 여기서 주의해서 볼 부분은 한글이 포함되어 있는 유니코드의 범위(U+AC00~U+D7AF)에서는, 상기 UTF-8 코드의 제 1바이트의 헤더비트인 1110 다음에는 "1"로 시작한다는 것이다. 이러한 특징은 U+8000~U+FFFF 영역에서는 모두 해당된다. 본 실시예에서는 이러한 점에 착안하여 상기 영역에 대한 압축률을 상대적으로 더 높이기 위해, UTF-8코드 문자의 유형에 따라 다음과 같이 압축을 수행한다(S203).
제 1실시예
3바이트 코드군에서 한글이 포함되어 있는 U+8000~U+FFFF에서의 압축방법은 다음과 같다. 먼저 원본 UTF-8 코드 영역은 아래와 같으며, 참고로 아래에서 상기에서 "/"는 제 1 내지 제 3바이트를 개념적으로 구분하기 위하여 표시한 것으로 실제로 이러한 식별자가 적용되는 것은 아니다.
1110 1000/10 0000 00/10 00 0000 ~ 1110 1111/10 1111 11/10 11 1111
에서, 제 1바이트의 최상위비트쪽의 헤더비트인 "1110"을 "10"으로 치환하고 제 2 바이트 및 제 3바이트의 최상위비트쪽의 "10"은 모두 삭제하면 다음과 같이 된다.
10 1000 / 0000 00 / 00 0000 ~ 10 1111 / 1111 11 / 11 1111
그리고, 여기서 다시 제 1바이트의 최상위비트쪽의 "101"을 "10"으로 치환하면,
10000 / 0000 00 / 00 0000 ~ 10111 / 1111 11 / 11 1111
이러한 과정을 거쳐서 압축을 하게 되면, 3바이트 코드군에서 한글이 포함되어 있는 U+8000~U+FFFF 영역은 총 7 비트의 압축효과를 얻을 수 있다.
또한, 3바이트 코드군에서 한자, 일본어 등이 포함되어 있는 U+0800~U+7FFF에서의 압축방법은 다음과 같다. 먼저 원본 UTF-8 코드 영역은 아래와 같다.
1110 0 000/ 10 1000 00/ 10 00 0000 ~ 1110 0 111/ 10 1111 11/ 10 11 1111
에서, 제 1바이트의 최상위비트쪽의 헤더비트인 "11100"을 "1110"으로 치환하고 제 2 바이트 및 제 3바이트의 최상위비트쪽의 "10"은 모두 삭제하면 다음과 같이 된다.
1110 000 / 1000 00 / 00 0000 ~ 1110 111 / 1111 11 / 11 1111
이러한 과정을 거쳐서 압축을 하게 되면, 3바이트 코드군에서 한글이 포함되어 있지 않은 U+0800~U+7FFF에서는 총 5 비트의 압축효과를 얻을 수 있다.
상기 실시예의 설명에서는 3바이트 코드군에서 한글이 포함되어 있는 U+8000~U+FFFF영역의 문자 즉 제 1바이트의 최상위비트쪽에서 "11101"로 시작하는 UTF-8코드 문자를 압축할 때, 제 1바이트의 최상위비트쪽의 1110을 10으로 치환하여 11101xxx → 101xxx로 치환하고, 또한 여기서 추가적으로 최상위비트쪽의 101을 10으로 치환하여 최종적으로는 제 1바이트를 "10xxx"의 형태로 압축하는 것으로 설명하였다.
하지만 본 발명은 이러한 방법에만 한정되지 않으며, 결과적으로 3바이트 코드군에 포함된 문자 중 제 1바이트의 최상위비트에서 "11101"로 시작하는 문자(한글문자가 속해 영역의 UTF-8코드 문자)에 대해서, 상기 제 1바이트의 최상위비트쪽의 11101은 10으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행하는 것이면 모두 포함한다.
한편, 압축부(110)는, 상기 UTF-8 코드 문자 중, 2바이트로 구성된 2바이트 코드군의 문자, 4바이트로 구성된 4바이트 코드군의 문자, 5바이트로 구성된 5바이트 코드군의 문자, 및 6바이트로 구성된 6바이트 코드군의 문자에 대해서는, 첫번째 바이트인 제 1바이트는 아무런 압축을 수행하지 않으며, 이를 제외한 각각의 나머지 바이트는 각 바이트의 최상위비트쪽에 있는 10을 삭제하여 압축을 수행한다. 그리고, 1바이트로만 구성되어 있는 1바이트 코드군의 UTF-8 코드 문자(U+0000~U+007F)에 대해서는 아무런 압축도 수행하지 않는다.
상술한 바와 같이 압축을 수행하게 되면,
1바이트 코드군의 UTF-8 코드 문자를 압축한 것은 0으로 시작하고,
2바이트 코드군의 UTF-8 코드 문자를 압축한 것은 110으로 시작하고,
3바이트 코드군 중 "11100"로 시작하는 UTF-8코드 문자를 압축한 것은 1110으로 시작하고,
3바이트 코드군 중 "11101"로 시작하는 UTF-8코드 문자를 압축한 것은 10으로 시작하고,
4바이트 코드군의 UTF-8 코드 문자를 압축한 것은 11110으로 시작하고,
5바이트 코드군의 UTF-8 코드 문자를 압축한 것은 111110으로 시작하고,
6바이트 코드군의 UTF-8 코드 문자를 압축한 것은 1111110으로 시작하게 된다.
따라서 각 압축 코드 문자의 최상위비트의 값을 확인하면 이 압축 코드문자가 어느 바이트 코드군의 문자인지를 식별할 수 있다. 가령, 어떤 압축 UTF-8코드 문자가 10으로 시작하는 "10111 111111 110011"라면, 원본 UTF-8코드 문자는 3바이트 코드군 중 한글이 속해 있는 코드군 즉 최상위비트쪽에서 "11101"로 시작하는 코드군에 속한 것이라는 것을 알 수 있고 3바이트로 구성된 코드라는 것도 알 수 있다. 따라서, 이를 복원하게 되면 "10111"은 " 11101 111"로, "111111"은 " 10 111111"로, "110011"은 " 10 110011"로 되므로, 최종적으로는 11101111/10111111/10110011"이라는 UTF-8코드 문자를 복원해 낼 수 있다.
또한, 가령 어떤 압축 UTF-8코드 문자가 11110으로 시작한다면, 원본 UTF-8코드 문자는 4바이트로 구성된 코드문자라는 것을 알 수 있으므로, 압축 UTF-8코드 문자의 맨앞 8비트 이후에 있는 각 6비트마다 그 앞에 10을 추가하여 제 2 내지 제 4바이트를 복원함으로써 원본 UTF-8 코드 문자를 복원할 수 있다.
제 1실시예에 따른 압축방법은 한글이 존재하는 UTF-8 코드영역의 제 1바이트(byte 1)에서 3비트 압축, 제 2바이트(byte 2) 및 제 3바이트(byte 3)에서 각 2비트씩 압축하여, 전체적으로는 7비트 압축효과를 얻을 수 있으며, 한글을 다빈도로 사용하는 한국의 경우 더 높고 최적화된 압축효과를 얻을 수 있다.
또한, 한자, 일본어가 배치된 U+0800~U+7FFF 영역에 있어서도 제 1바이트(byte 1)에서 1비트의 압축효과가 있고, 이후 2바이트의 각각 최상위비트쪽의 "10"이 압축되어 사라지므로, 전체적으로는 5비트의 압축효과가 생긴다.
특히 기준 산술부호화, 허프만 부호화, deflate, 7zip 등 다양한 전통적인 압축알고리즘에서도 짧은 단문의 경우 압축효과가 없이 오히려 데이터가 커지는 문제점이 있었으나, 본 알고리즘을 통해 빠르고 간편하게 한글 한글자마다 7비트의 압축이득을 얻게 된다. 또한 한자와 일본어에 대해서도 5비트의 압축효과를 얻을 수 있다. 특히 일부 한자의 경우 한글처럼 7비트의 압축효과를 얻을 수도 있다.
특히 사전식이 아니므로, 상호 사전에 대한 정의가 불필요하며, 문장에 따라 압축률이 달라지는 점이 크게 극복되었다.
표 2는 제 1실시예에 따라 UTF-8코드 문자를 압축하는 방법을 정리한 것이다.
UTF-8 의 byte 1 의 헤더비트 code point code point Byte 1(첫번째 바이트)의 압축 Byte 2
이후~
Byte 6 까지
byte 1 의 압축 헤더비트 Byte 1 의 헤더비트
이후
Byte 1의 최종압축결과 비고
0 U+0000 U+007F 0 xxxxxxx 0xxxxxxx 변동없음 해당없음
110 U+0080 U+07FF 110 xxxxx 110xxxxx 변동없음 1바이트 읽어서 최상위 2비트 “10”제거하여 6비트로 함
1110 U+0800 U+7FFF 1110 0xxx 1110xxx BYTE 1 의 헤더비트 다음에 오는 4비트의 최상위가 항상 "0"이므로, 이를 제거하여 결합 2바이트 읽어서 각 8비트 마다 최상위 2비트씩 “10”제거하여 결합하여 12비트로 함
U+8000 U+FFFF 10 1xxx 10xxx 압축헤더를 10으로 하여 2비트 압축한뒤, byte 1의 나머지 4비트와 결합한뒤 최상위 3비트인 101을 10으로 바꾸어 1비트 추가압축 2바이트 읽어서 각 8비트 마다 최상위 2비트씩 “10”제거하여 결합하여 12비트로 함
11110 U+10000 U+1FFFFF 11110 xxx 11110xxx 변동없음 3바이트 읽어서 각 8비트 마다 최상위 2비트씩 “10”제거하여 결합하여 18비트로 함
111110 U+200000 U+3FFFFFF 111110 xx 111110xx 변동없음 4바이트 읽어서 각 8비트 마다 최상위 2비트씩 “10”제거하여 결합하여 24비트로 함
1111110 U+4000000 U+7FFFFFFF 1111110 x 1111110x 변동없음 5바이트 읽어서 각 8비트 마다 최상위 2비트씩 “10”제거하여 결합하여 30비트로 함
제 2실시예
먼저, 3바이트 코드군에서 한글이 포함되어 있지 않은 U+0800~U+7FFF에서의 압축방법은 다음과 같다. 참고로 아래에서 "/"는 제 1 내지 제 3바이트를 개념적으로 구분하기 위하여 표시한 것으로 실제로 이러한 식별자가 적용되는 것은 아니다.
원본 UTF-8 코드 영역,
1110 0 000/ 10 1000 00/ 10 00 0000 ~ 1110 0 111/ 10 1111 11/ 10 11 1111
에서, 제 1바이트의 최상위비트쪽의 "11100"에서 마지막 비트를 "1"로 바꿔서 "11101"로 치환하면,
1110 1 000/10 1000 00/10 00 0000 ~ 1110 1 111/10 1111 11/10 11 1111
와 같이된다. 이어서 최상위비트쪽의 "11101"을 "10"으로 압축하고, 제 2 바이트 및 제 3바이트의 최상위비트쪽의 "10"은 모두 삭제하면 다음과 같이 된다.
1 0 000 / 1000 00 / 00 0000 ~ 1 0 111 / 1111 11 / 11 1111
이러한 과정을 거쳐서 압축을 하게 되면, 3바이트 코드군에서 한자, 일본어 등이 포함되어 있는 U+0800~U+7FFF 영역에서는 총 7 비트의 압축효과를 얻을 수 있다.
한편, 3바이트 코드군에서 한글이 포함되어 있는 U+8000~U+FFFF에서의 압축방법은 다음과 같다. 먼저 원본 UTF-8 코드 영역은 아래와 같다.
1110 1000/10 0000 00/10 00 0000 ~ 1110 1111/10 1111 11/10 11 1111
에서, 제 1바이트의 최상위비트쪽의 "11101"의 마지막 비트 "1"을 "0"으로 치환하면 제 1바이트의 최상위비트쪽의 "11101"은 "11100"으로 치환된다.
1110 0000/10 0000 00/10 00 0000 ~ 1110 0111/10 1111 11/10 11 1111
그리고 제 1바이트의 최상위 비트쪽 "11100"에서 헤더비트인 "1110"의 다음에는 "0"이 반드시 존재하므로 이를 삭제하고, 제 2 바이트 및 제 3바이트의 최상위비트쪽의 "10"도 모두 삭제하면 다음과 같이 최종 압축된다.
1110 000/0000 00/00 0000 1110 111/1111 11/11 1111
이러한 과정을 거쳐서 압축을 하게 되면, 3바이트 코드군에서 한자, 일본어 등이 포함되어 있는 U+8000~U+FFFF 영역은 총 5 비트의 압축효과를 얻을 수 있다.
상기 실시예의 설명에서는 3바이트 코드군에서 한글이 포함되어 있는 U+8000~U+FFFF영역의 문자, 및 한자나 일본어 등이 포함되어 있는 U+0800~U+7FFF영역의 문자에 대하여 여러 단계를 거쳐서 압축을 수행하는 것으로 설명하였다. 하지만 본 발명은 이러한 방법에만 한정되지 않는다. 즉, 3바이트 코드군에 포함된 문자 중 제 1바이트의 최상위비트쪽에서 "11101"로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11101은 1110으로 변환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행하는 것이라면 모두 본 발명의 범위에 포함된다. 또한, 3바이트 코드군에 포함된 문자 중 상기 제 1바이트의 최상위비트쪽에서 "11100"으로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11100은 10으로 변환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행하는 것이라면 모두 본 발명의 범위에 포함된다.
한편, 압축부(110)는, 상기 UTF-8 코드 문자 중, 2바이트로 구성된 2바이트 코드군의 문자, 4바이트로 구성된 4바이트 코드군의 문자, 5바이트로 구성된 5바이트 코드군의 문자, 및 6바이트로 구성된 6바이트 코드군의 문자에 대해서는, 첫번째 바이트인 제 1바이트는 아무런 압축을 수행하지 않으며, 이를 제외한 각각의 나머지 바이트는 각 바이트의 최상위비트쪽에 있는 10을 삭제하여 압축을 수행한다. 그리고, 1바이트로만 구성되어 있는 1바이트 코드군의 UTF-8 코드 문자(U+0000~U+007F)에 대해서는 아무런 압축도 수행하지 않는다.
상술한 바와 같이 압축을 수행하게 되면,
1바이트 코드군의 UTF-8 코드 문자를 압축한 것은 0으로 시작하고,
2바이트 코드군의 UTF-8 코드 문자를 압축한 것은 110으로 시작하고,
3바이트 코드군 중 "11100"로 시작하는 UTF-8코드 문자를 압축한 것은 10으로 시작하고,
3바이트 코드군 중 "11101"로 시작하는 UTF-8코드 문자를 압축한 것은 1110으로 시작하고,
4바이트 코드군의 UTF-8 코드 문자를 압축한 것은 11110으로 시작하고,
5바이트 코드군의 UTF-8 코드 문자를 압축한 것은 111110으로 시작하고,
6바이트 코드군의 UTF-8 코드 문자를 압축한 것은 1111110으로 시작하게 된다.
따라서 각 압축 코드의 최상위비트쪽 부분을 확인하면 이 압축문자가 어느 바이트 코드군의 문자인지를 식별할 수 있게 된다. 가령, 어떤 압축 UTF-8 코드 문자가 10으로 시작하는 "10111 111111 110011"라면, 원본 UTF-8 코드 문자는 3바이트 코드군 중 한자나 일본어 등이 속해 있는 코드군 즉 최상위비트쪽에서 "11100"으로 시작하는 코드군에 속한 것이라는 것을 알 수 있고 3바이트로 구성된 코드라는 것도 알 수 있다. 따라서, 이를 복원하게 되면 "10111"은 " 11100 111"로, "111111"은 " 10 111111"로, "110011"은 " 10 110011"으로 되므로, 최종적으로는 11100111/10111111/10110011"이라는 UTF-8코드 문자를 복원해 낼 수 있다.
또한, 가령 어떤 압축 UTF-8코드 문자가 11110으로 시작하는 문자라면, 원본 UTF-8코드 문자는 4바이트로 구성된 코드문자라는 것을 알 수 있으므로, 압축 UTF-8코드 문자의 맨앞 8비트 이후에 있는 각 6비트마다 그 앞에 10을 추가하여 제 2 내지 제 4바이트를 복원함으로써 원본 UTF-8 코드 문자를 복원할 수 있다.
제 2실시예에 따른 압축방법은 3바이트 코드군 중 한자, 일본어가 배치된 U+0800~U+7FFF 영역의 경우 제 1바이트(byte 1)에서 3비트 압축, 제 2바이트(byte 2) 및 제 3바이트(byte 3)에서 각 2비트씩 압축하여, 전체적으로는 7비트 압축효과를 얻을 수 있으므로, 일본어, 한자 등을 다빈도로 사용하는 경우 더 높고 최적화된 압축효과를 얻을 수 있다.
또한, 3바이트 코드군 중 한글이 포함된 UTF-8코드 영역의 경우 제 1바이트(byte 1)에서 1비트의 압축효과가 있고, 이후 2바이트의 각각 최상위 "10"이 압축되어 사라지므로, 전체적으로는 5비트의 압축효과가 생긴다.
특히 기준 산술부호화, 허프만 부호화, deflate, 7zip 등 다양한 전통적인 압축알고리즘에서도 짧은 단문의 경우 압축효과가 없이 오히려 데이터가 커지는 문제점이 있었으나, 본 알고리즘을 통해 빠르고 간편하게 한글 한글자마다 7비트의 압축이득을 얻게 될 수 있다. 또한 한자와 일본어에 대해서도 5비트의 압축효과를 얻을 수 있다. 특히 일부 한자의 경우 한글처럼 7비트의 압축효과를 얻을 수 있다.
특히 사전식이 아니므로, 상호 사전에 대한 정의가 불필요하며, 문장에 따라 압축률이 달라지는 점이 크게 극복되었다.
마지막으로, 출력부(120)는 상기와 같이 압축된 문자를 유티에프-8 코드 문자의 복원장치(200) 등의 목적장치로 출력한다(S204).
이후, 유티에프-8 코드 문자의 복원장치(200)에서 복원부(220)는 입력부(210)를 통해 상기 압축된 UTF-8코드 문자를 입력받아 이를 복원한다. 복원부(220)는 상기 압축부(210)에서 적용된 압축규칙을 역으로 적용하여 원본 UTF-8 코드문자를 복원한다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고, 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
100 : 유티에프-8 코드 문자의 압축 장치
110 : 압축부 120 : 출력부
200 : 유티에프-8 코드 문자의 복원장치
210 : 입력부 220 : 복원부

Claims (12)

  1. 압축부가 유티에프-8(UTF-8) 코드 문자를 입력받는 입력단계; 및
    상기 압축부가 UTF-8 코드 문자를 압축하는 압축단계를 포함하되,
    상기 UTF-8 코드 문자 중 3바이트 코드군에 포함된 문자는 최상위비트쪽에 1110을 포함하는 문자로서, 1110으로 시작하는 제 1바이트, 상기 제 1바이트 다음에 위치하고 10으로 시작하는 제 2바이트, 및 상기 제 2바이트 다음에 위치하고 10으로 시작하는 제 3바이트를 포함하고,
    상기 압축단계에서 상기 압축부는,
    상기 3바이트 코드군에 포함된 문자 중 상기 제 1바이트의 최상위비트에서 "11101"로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11101은 10으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행하는 것을 특징으로 하는, 유티에프-8 코드 문자의 압축 방법.
  2. 제 1항에 있어서,
    상기 압축단계에서 상기 압축부는,
    상기 3바이트 코드군에 포함된 문자 중 상기 제 1바이트의 최상위비트에서 "11100"으로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11100은 1110으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행하는 것을 특징으로 하는, 유티에프-8 코드 문자의 압축 방법.
  3. 제 2항에 있어서,
    상기 압축단계에서 압축부는,
    상기 UTF-8 코드 문자 중, 2바이트로 구성된 2바이트 코드군의 문자, 4바이트로 구성된 4바이트 코드군의 문자, 5바이트로 구성된 5바이트 코드군의 문자, 및 6바이트로 구성된 6바이트 코드군의 문자에 대해서는, 첫번째 바이트를 제외한 각각의 나머지 바이트는 최상위비트쪽에 있는 10을 삭제하여 압축을 수행하는 것을 특징으로 하는, 유티에프-8 코드 문자의 압축 방법.
  4. UTF-8 코드 문자를 압축하는 압축부를 포함하되,
    상기 압축부는 상기 UTF-8 코드 문자 중, 최상위비트쪽에 1110을 포함하는 3바이트 코드군에 포함된 문자를 압축하고,
    상기 3바이트 코드군의 문자는 1110으로 시작하는 제 1바이트, 상기 제 1바이트 다음에 위치하고 10으로 시작하는 제 2바이트, 및 상기 제 2바이트 다음에 위치하고 10으로 시작하는 제 3바이트를 포함하고,
    상기 압축부는, 상기 3바이트 코드군에 포함된 문자 중 상기 제 1바이트의 최상위비트쪽에서 "11101"로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11101은 10으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 상위비트쪽에 있는 10은 삭제하여 압축을 수행하는 것을 특징으로 하는, 유티에프-8 코드 문자의 압축 장치.
  5. 제 4항에 있어서,
    상기 압축부는,
    상기 3바이트 코드군에 포함된 문자 중 상기 제 1바이트의 최상위비트쪽에서 "11100"으로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11100은 1110으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행하는 것을 특징으로 하는, 유티에프-8 코드 문자의 압축 장치.
  6. 제 5항에 있어서,
    상기 압축부는,
    상기 UTF-8 코드 문자 중, 2바이트로 구성된 2바이트 코드군의 문자, 4바이트로 구성된 4바이트 코드군의 문자, 5바이트로 구성된 5바이트 코드군의 문자, 및 6바이트로 구성된 6바이트 코드군의 문자에 대해서는, 첫번째 바이트를 제외한 각각의 나머지 바이트는 최상위비트쪽에 있는 10을 삭제하여 압축을 수행하는 것을 특징으로 하는, 유티에프-8 코드 문자의 압축 장치.
  7. 압축부가 UTF-8 코드 문자를 입력받는 입력단계; 및
    상기 압축부가 UTF-8 코드 문자를 압축하는 압축단계를 포함하되,
    상기 UTF-8 코드 문자 중 3바이트 코드군에 포함된 문자는 최상위비트쪽에 1110을 포함하는 문자로서, 1110으로 시작하는 제 1바이트, 상기 제 1바이트 다음에 위치하고 10으로 시작하는 제 2바이트, 및 상기 제 2바이트 다음에 위치하고 10으로 시작하는 제 3바이트를 포함하고,
    상기 압축단계에서 상기 압축부는,
    상기 3바이트 코드군에 포함된 문자 중 상기 제 1바이트의 최상위비트쪽에서 "11101"로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11101은 1110으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행하는 것을 특징으로 하는, 유티에프-8 코드 문자의 압축 방법.
  8. 제 7항에 있어서,
    상기 압축단계에서 상기 압축부는,
    상기 3바이트 코드군에 포함된 문자 중 상기 제 1바이트의 최상위비트쪽에서 "11100"으로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11100은 10으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행하는 것을 특징으로 하는, 유티에프-8 코드 문자의 압축 방법.
  9. 제 8항에 있어서,
    상기 압축단계에서 압축부는,
    상기 UTF-8 코드 문자 중, 2바이트로 구성된 2바이트 코드군의 문자, 4바이트로 구성된 4바이트 코드군의 문자, 5바이트로 구성된 5바이트 코드군의 문자, 및 6바이트로 구성된 6바이트 코드군의 문자에 대해서는, 첫번째 바이트를 제외한 각각의 나머지 바이트는 최상위비트쪽에 있는 10을 삭제하여 압축을 수행하는 것을 특징으로 하는, 유티에프-8 코드 문자의 압축 방법.
  10. UTF-8 코드 문자를 압축하는 압축부를 포함하되,
    상기 압축부는 상기 UTF-8 코드 문자 중, 최상위비트쪽에 1110을 포함하는 3바이트 코드군에 포함된 문자를 압축하고,
    상기 3바이트 코드군의 문자는 1110으로 시작하는 제 1바이트, 상기 제 1바이트 다음에 위치하고 10으로 시작하는 제 2바이트, 및 상기 제 2바이트 다음에 위치하고 10으로 시작하는 제 3바이트를 포함하고,
    상기 압축부는, 상기 3바이트 코드군에 포함된 문자 중 상기 제 1바이트의 최상위비트쪽에서 "11101"로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11101은 1110으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행하는 것을 특징으로 하는, 유티에프-8 코드 문자의 압축 장치.
  11. 제 10항에 있어서,
    상기 압축부는,
    상기 3바이트 코드군에 포함된 문자 중 상기 제 1바이트의 상위비트에서 "11100"으로 시작하는 문자에 대해서는, 상기 제 1바이트의 최상위비트쪽의 11100은 10으로 치환하고, 상기 제 2바이트의 최상위비트쪽에 있는 10은 삭제하며, 상기 제 3바이트의 최상위비트쪽에 있는 10은 삭제하여 압축을 수행하는 것을 특징으로 하는, 유티에프-8 코드 문자의 압축 장치.
  12. 제 11항에 있어서,
    상기 압축부는,
    상기 UTF-8 코드 문자 중, 2바이트로 구성된 2바이트 코드군의 문자, 4바이트로 구성된 4바이트 코드군의 문자, 5바이트로 구성된 5바이트 코드군의 문자, 및 6바이트로 구성된 6바이트 코드군의 문자에 대해서는, 첫번째 바이트를 제외한 각각의 나머지 바이트는 최상위비트쪽에 있는 10을 삭제하여 압축을 수행하는 것을 특징으로 하는, 유티에프-8 코드 문자의 압축 장치.


KR1020160094418A 2016-07-07 2016-07-25 유티에프-8 코드 문자의 압축 방법 및 장치 KR101791880B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20160086450 2016-07-07
KR1020160086450 2016-07-07

Publications (1)

Publication Number Publication Date
KR101791880B1 true KR101791880B1 (ko) 2017-11-01

Family

ID=60382959

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160094418A KR101791880B1 (ko) 2016-07-07 2016-07-25 유티에프-8 코드 문자의 압축 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101791880B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111147083A (zh) * 2019-12-10 2020-05-12 中国航空工业集团公司成都飞机设计研究所 一种时间信息压缩传输的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111147083A (zh) * 2019-12-10 2020-05-12 中国航空工业集团公司成都飞机设计研究所 一种时间信息压缩传输的方法
CN111147083B (zh) * 2019-12-10 2023-06-27 中国航空工业集团公司成都飞机设计研究所 一种时间信息压缩传输的方法

Similar Documents

Publication Publication Date Title
JP3541930B2 (ja) 符号化装置及び復号化装置
US6100824A (en) System and method for data compression
JP3258552B2 (ja) データ圧縮装置及びデータ復元装置
KR101610609B1 (ko) 데이터 인코더, 데이터 디코더 및 방법
US20100127902A1 (en) Lossless data compression with separated index values and literal values in output stream
KR102393743B1 (ko) 모드 심볼들을 사용하는 인코더, 디코더 및 방법
KR101791880B1 (ko) 유티에프-8 코드 문자의 압축 방법 및 장치
KR101791877B1 (ko) 유티에프-8 코드 문자의 압축 방법 및 장치
KR101752281B1 (ko) 유티에프-8 코드 문자의 압축 방법 및 장치
Shanmugasundaram et al. IIDBE: A lossless text transform for better compression
KR102098644B1 (ko) 유티에프-8 코드 문자의 압축 방법 및 장치
KR20180006011A (ko) Utf-8 코드 문자체계에 있어서, byte 1 에 대한 3비트 압축을 통한 한글메시지의 집중적 압축방법 및 그 장치
Shanmugasundaram et al. Text preprocessing using enhanced intelligent dictionary based encoding (EIDBE)
Tsai et al. An improved LZW algorithm for large data size and low bitwidth per code
KR20180006605A (ko) Utf-8 코드 문자체계에 있어서, byte 1 에 대한 3~5비트 압축을 통한 한글메시지의 집중적 압축방법 및 그 장치
KR101682829B1 (ko) 메시지 압축 방법 및 장치
KR20180047738A (ko) Utf-8 문자코드의 압축방법
KR20180004409A (ko) 일반적인 utf-8 형태로 엔코딩된 이진데이터의 실시간 무손실 압축방법
KR101682828B1 (ko) 메시지 압축 방법 및 장치
JPH03209923A (ja) データ圧縮方式
KR20180005386A (ko) Utf-8코드로 구성된 데이터의 유니버설 코드를 이용한 실시간 무손실 무사전 압축방법
KR101760070B1 (ko) 데이터 부호화 및 복호화 방법과 장치
KR20180008034A (ko) Utf-8 코드 문자체계에 있어서, byte 1 에 대한 3~6비트 압축을 통한 한글메시지의 집중적 압축방법 및 byte2 에 대한 2~4비트등 집중 압축 방법 또는 사전형압축기술을 조합한 단문 압축 및 그 장치
Senthil et al. Lossless preprocessing algorithms for better compression
KR101632115B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치

Legal Events

Date Code Title Description
GRNT Written decision to grant