KR101256893B1 - 데이터 부호화/복호화 장치 및 방법 - Google Patents

데이터 부호화/복호화 장치 및 방법 Download PDF

Info

Publication number
KR101256893B1
KR101256893B1 KR1020110078032A KR20110078032A KR101256893B1 KR 101256893 B1 KR101256893 B1 KR 101256893B1 KR 1020110078032 A KR1020110078032 A KR 1020110078032A KR 20110078032 A KR20110078032 A KR 20110078032A KR 101256893 B1 KR101256893 B1 KR 101256893B1
Authority
KR
South Korea
Prior art keywords
symbol
substrings
compressed
binary
string
Prior art date
Application number
KR1020110078032A
Other languages
English (en)
Other versions
KR20130015798A (ko
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 고려대학교 산학협력단
Priority to KR1020110078032A priority Critical patent/KR101256893B1/ko
Publication of KR20130015798A publication Critical patent/KR20130015798A/ko
Application granted granted Critical
Publication of KR101256893B1 publication Critical patent/KR101256893B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 무 손실 압축을 위해 이진 심볼 열을 복수의 이진 심볼 열로 분할하여 압축하는 데이터 압축장치 및 방법에 관한 것이다.
이를 위해 이진 심볼열의 특성 별로 심볼 변환 패턴 맵을 구비하고, 압축하고자 하는 이진 심볼열의 특성에 상응하는 심볼 변환 패턴 맵을 사용하여 상기 압축하고자 하는 이진 문자열을 복수의 부분 문자열로 분할한다. 그리고 상기 분할에 의한 복수의 부분 문자열 각각을 가변 길이 부호화 기법을 사용하여 압축한 후 연접하여 하나의 압축 심볼열을 출력한다.

Description

데이터 부호화/복호화 장치 및 방법{APPARATUS AND METHOD FOR ENCODING/CODING DATA}
본 발명은 데이터 부호화/복호화 장치 및 방법에 관한 것으로, 특히 무 손실 압축을 위해 이진 심볼 열을 복수의 이진 심볼 열로 분할하여 부호화하거나 복호화하는 장치 및 방법에 관한 것이다.
최근에는 통신과 방송의 융합에 의한 영상 통신 시대가 도래하고 있으며, 이로 인해 빠른 속도와 많은 정보의 전송을 위한 광대역 시대로 급속히 발전하고 있다. 이러한 기술 발전의 흐름에 부합하여 주목되고 있는 기술중의 하나가 음성 및 영상을 포함하는 미디어 정보의 압축 기술이라 할 수 있다. 상기 압축 기술은 정보의 량이 많은 동영상을 압축하기 위한 동영상 압축 부호화 기술에 주로 사용된다.
상기 동영상 압축 부호화 기술의 대표적인 예로써 국제전기통신연합-전기통신표준화 부문 (ITU-T: International Telecommunication Union-Telecommunication Standardization Sector)에서 동영상 압축 부호화를 위한 만들어진 표준인 H.264/AVC가 존재한다.
일반적으로 정보를 처리하는 대부분의 전자 장치에서는 정보의 량을 줄이기 위해 다양한 압축 기술 및 압축 해제 (이하 “복원”이라 칭함) 기술이 사용되고 있다. 이와 같이 정보의 량을 줄이기 위한 시도는 정보를 기록하기 위한 기록 매체의 용량을 효율적으로 사용하기 위한 측면과, 전달의 용이성을 제공하기 위한 측면 등을 기반으로 한다.
통상적으로 최고 수준, 즉 높은 압축 효율로 데이터를 압축하는 기법은 압축을 위한 절차가 복잡할 뿐만 아니라 처리 속도가 느리다. 이에 반하여 낮은 수준으로 데이터를 압축하는 기법의 경우에는 빠른 처리 속도를 얻을 수 있을 뿐만 아니라 상대적으로 압축을 위한 처리 절차가 간단하다.
예컨대 가변 길이 부호화 기법은 부호화를 위한 이진 문자열에서 출현 빈도에 따라 할당하는 부호의 길이를 달리하여 상기 이진 문자열에 대한 압축을 수행하는 기법이다. 즉 이진 문자열에서 출현 빈도가 높은 심볼 패턴에 대해서는 짧은 부호를 할당하고, 출현 빈도가 상대적으로 낮은 심볼 패턴에 대해서는 긴 부호를 할당한다. 상기 가변 길이 부호화 기법의 일 예로 엔트로피 부호화 기법이 존재한다.
하지만 가변 길이 부호화 기법에 의한 이진 문자열 압축 시, 많은 처리 시간뿐만 아니라 출력되는 문자열의 길이가 길어지는 점에 대해서는 개선이 필요하다.
따라서 일반적으로는 하드웨어의 복잡성이나 처리 시간을 고려하여 원하는 수준의 품질을 얻기 위한 데이터 압축 기법을 선택하여 사용하였다. 하지만 향후에는 하드웨어의 복잡도와 처리 시간을 줄이면서도 높은 수준의 품질을 얻을 수 있는 압축 부호화 기법 및 이에 대응한 복호화 기법의 마련이 시급하다 할 것이다.
본 발명의 바람직한 실시 예는 이진 문자열을 압축이 용이한 형태로 전 처리한 후 가변 길이 부호화에 의한 무 손실 압축하는 데이터 부호화 장치 및 방법을 제안한다.
또한 본 발명의 바람직한 실시 예는 하나의 압축 문자 열로부터 분할된 복수의 압축 부분 문자 열 각각에 대한 압축을 해제하는 데이터 복호화 장치 및 방법을 제안한다.
또한 본 발명의 바람직한 실시 예는 이진 문자열로부터 분할된 복수의 문자 열 각각을 가변 길이 부호화에 의해 부호화한 후 연접하여 압축하는 데이터 부호화 장치 및 방법을 제안한다.
또한 본 발명의 바람직한 실시 예는 하나의 압축 문자 열로부터 분할된 복수의 압축 부분 문자 열 각각을 복호하여 하나의 이진 문자 열로 결합할 시에 소정의 심볼 변환 패턴 맵을 사용하는 데이터 복호화 장치 및 방법을 제안한다.
또한 본 발명의 바람직한 실시 예는 이진 문자열로부터 분할된 복수의 문자 열이 가지는 패턴을 기반으로 최적의 가변 길이 부호화를 위한 압축 함수를 선택적으로 적용하는 데이터 부호화 장치 및 방법을 제안한다.
또한 본 발명의 바람직한 실시 예는 복원할 이진 문자열의 특성에 상응하는 심볼 변환 패턴 맵을 사용하여 복호된 두 개의 부분 문자 열을 하나의 이진 문자열로 결합하여 출력하는 복호화 장치 및 방법을 제안한다.
또한 본 발명의 바람직한 실시 예는 이진 문자열의 심볼 패턴을 기반으로 다양한 심볼 변환 패턴 맵 중 하나를 선택하고, 상기 선택한 심볼 변환 패턴 맵을 사용하여 이진 문자열을 복수의 문자 열로 분할하여 압축하는 데이터 부호화 장치 및 방법을 제안한다.
또한 본 발명의 바람직한 실시 예는 이진 문자열을 복수의 문자 열로 분할하기 위해 확률 값과 발생 확률이 높은 심볼을 고려하여 다양한 심볼 변환 패턴 맵 중 하나를 선택하는 데이터 부호화 장치 및 방법을 제안한다.
또한 본 발명의 바람직한 실시 예에 따라 압축된 데이터를 복원하기 위해 요구되는 압축 복원 정보를 상기 압축된 데이터와 함께 제공하는 데이터 부호화 장치 및 방법을 제안한다.
본 발명의 실시 예에 따른 데이터 부호화 장치에서의 부호화 방법은, 이진 문자열의 특성 별로의 심볼 변환 패턴 맵을 저장하고, 상기 저장된 심볼 변환 패턴 맵 중 부호화를 위해 입력되는 이진 문자열의 특성에 상응하는 심볼 변환 패턴 맵을 선택하는 과정과, 상기 선택한 심볼 변환 패턴 맵을 사용하여 상기 부호화를 위해 입력되는 이진 문자열을 적어도 두 개의 부분 문자열들로 분할하는 과정과, 상기 적어도 두 개의 부분 문자열들 각각을 가변 길이 부호화 기법에 의해 압축하는 과정과, 상기 압축에 의해 출력되는 적어도 두 개의 압축 부분 문자열들을 연접하여 하나의 압축 문자열을 출력하는 과정을 포함한다.
또한 본 발명의 실시 예에 따른 데이터 압축을 위한 부호화 장치는, 이진 문자열의 특성 별로의 심볼 변환 패턴 맵을 저장하고, 상기 저장된 심볼 변환 패턴 맵 중 부호화를 위해 입력되는 이진 문자열의 특성에 상응하는 심볼 변환 패턴 맵을 선택하고, 상기 선택한 심볼 변환 패턴 맵을 사용하여 상기 부호화를 위해 입력되는 이진 문자열을 적어도 두 개의 부분 문자열들로 분할하는 이진 심볼 변환기와, 상기 적어도 두 개의 부분 문자열들 각각을 가변 길이 부호화 기법에 의해 압축하는 이진 심볼 압축기와, 상기 압축에 의해 출력되는 적어도 두 개의 압축 부분 문자열들을 연접하여 하나의 압축 문자열을 출력하는 연접기를 포함한다.
또한 본 발명의 실시 예에 따른 데이터 복호화 방법은, 압축 문자 열을 적어도 두 개의 압축 부분 문자 열로 분할하는 과정과, 상기 압축 문자 열을 부호화하기 위해 사용된 가변 길이 부호화 기법에 상응하는 복호화 기법에 의해 상기 분할된 적어도 두 개의 압축 부분 문자 열 각각에 대한 복호를 수행하여 적어도 두 개의 부분 문자열을 출력하는 과정과, 미리 설정된 복수의 심볼 변환 패턴 맵 중 이진 문자열의 특성에 상응하는 심볼 변환 패턴 맵을 선택하고, 상기 선택한 심볼 변환 패턴 맵을 사용하여 상기 적어도 두 개의 부분 문자열을 하나의 이진 문자열로 결합하는 과정을 포함한다.
또한 본 발명의 실시 예에 따른 데이터 복호화 장치는, 압축 문자 열을 적어도 두 개의 압축 부분 문자 열로 분할하는 압축 문자 열 분할부와, 상기 압축 문자 열을 부호화하기 위해 사용된 가변 길이 부호화 기법에 상응하는 복호화 기법에 의해 상기 분할된 적어도 두 개의 압축 부분 문자 열 각각에 대한 복호를 수행하여 적어도 두 개의 부분 문자열을 출력하는 엔트로피 복호화부와, 미리 설정된 복수의 심볼 변환 패턴 맵 중 이진 문자열의 특성에 상응하는 심볼 변환 패턴 맵을 선택하고, 상기 선택한 심볼 변환 패턴 맵을 사용하여 상기 적어도 두 개의 부분 문자열을 하나의 이진 문자열로 결합하는 부분 문자열 결합부를 포함한다.
본 발명은 압축 대상인 이진 심볼 열을 길이가 짧은 복수의 이진 심볼 열로 분할하여 압축한 후 이를 연접하여 하나의 압축된 심볼 열을 출력함으로써, 압축을 위해 소요되는 시간을 줄일 수 있을 뿐만 아니라 출력되는 압축된 심볼 열의 길이를 줄일 수 있는 효과를 가진다.
또한 본 발명은 압축된 문자 열로부터 분할된 복수의 압축 부분 문자 열 각각을 복호화 하고, 상기 복호화가 이루어진 복수의 부분 문자열을 하나의 이진 문자열로 출력함으로써, 압축 해제를 위한 연산을 최소화할 수 있을 뿐만 아니라 압축 효율을 증가시킬 수 있다.
도 1은 본 발명의 실시 예를 적용할 압축 및 복원을 위한 개략적인 시스템 구조를 보이고 있는 도면;
도 2는 본 발명의 실시 예에 따른 부호화기의 구조에 대한 일 예를 보이고 있는 도면;
도 3은 도 2에서의 부호화기를 구성하는 이진 산술 부호화부의 구성에 대한 일 예를 보이고 있는 도면;
도 4는 본 발명의 실시 예에 따라 데이터를 부호화하기 위해 수행하는 제어 흐름을 보이고 있는 도면;
도 5는 본 발명의 실시 예에 따른 부분 문자열을 생성하기 위한 제어 흐름을 보이고 있는 도면;
도 6은 본 발명의 실시 예에 따라 이진 문자열을 압축하는 경우에 복원을 위해 생성되는 압축 복원 정보의 일 예를 보이고 있는 도면;
도 7은 본 발명의 실시 에에 따른 복호화기의 구조에 대한 일 예를 보이고 있는 도면;
도 8은 도 7에서의 복호화기를 구성하는 복호화부의 구성에 대한 일 예를 보이고 있는 도면;
도 9는 본 발명의 실시 예에 따라 데이터를 복호화하기 위해 수행하는 제어 흐름을 보이고 있는 도면;
도 10은 본 발명의 실시 예에 따른 압축 부분 문자열을 생성하기 위한 제어 흐름을 보이고 있는 도면.
하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술 되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
후술될 본 발명의 실시 예에서는 발생확률이 높은 심볼 (Most Probable Symbol, 이하 “MPS”라 칭함)이 ‘0’인 경우를 가정하여 설명할 것이다. 하지만 MPS가 ‘1’인 경우에도 후술될 본 발명의 실시 예가 동일하게 적용될 수 있음은 당업자에게 자명할 것이다.
이하 본 발명의 실시 예를 첨부된 도면을 참조하여 구체적으로 설명한다.
A. 부호화 및 복호화 시스템
도 1은 본 발명의 실시 예를 적용할 압축 및 복원을 위한 개략적인 시스템 구조를 보이고 있다.
도 1을 참조하면, 부호화기(110)는 압축을 위한 아날로그 신호를 입력으로 하고, 상기 아날로그 신호를 무 손실 압축 기법을 사용하여 디지털 압축 신호로 압축한다. 예컨대 상기 부호화기(110)에 의해 사용되는 무 손실 압축 기법은 엔트로피 압축 방법 등의 가변 길이 부호화 기법이 될 수 있다. 여기서 상기 아날로그 신호는 동영상, 음악 등의 미디어 데이터가 될 수 있다.
상기 부호화기(110)는 디지털 압축을 위해 우선적으로 입력되는 아날로그 신호를 디지털 신호로 변환하고, 상기 변환에 의해 획득한 디지털 신호, 즉 이진 심볼 열 (이하 “이진 문자열”이라 칭함)을 무 손실 압축 기법을 사용하여 압축할 수 있다. 하지만 상기 부호화기(110)로 아날로그 신호가 아닌 디지털 신호가 입력되는 경우, 상기 부호화기(110)는 아날로그 신호를 디지털 신호로 변환하기 위한 동작을 생략할 수 있다.
특히 상기 부호화기(110)는 하나의 이진 문자열을 분할하여 복수의 이진 심볼 열 (이하 “부분 문자열”이라 칭함)을 획득한다.
이를 위해 상기 부호화기(110)는 복수의 부분 문자열을 획득하기 위한 다양한 심볼 변환 패턴 맵들을 가지며, 입력되는 이진 문자열의 특성을 고려하여 상기 다양한 심볼 변환 패턴 맵들로부터 선택된 하나의 심볼 변환 패턴 맵을 사용하여 복수의 부분 문자열을 출력한다. 여기서 상기 이진 문자열의 특성은 이진 문자열을 구성하는 심볼들의 확률 값을 산출하기 위한 기준이 될 수 있다. 예컨대 상기 이진 문자열의 특성은 심볼 별 확률 값과 MPS의 확률 값 중 적어도 하나가 될 수 있다. 추가로 복수의 부분 문자열을 획득하기 위해 획득할 부분 문자열의 개수, 부분 문자열로 분할할 입력 심볼의 단위 등을 추가로 고려할 수 있다. 상기 부분 문자열로 분할할 입력 심볼의 단위는 입력되는 이진 문자열을 구성하는 심볼들 중 한번의 분할을 위해 사용할 심볼의 개수를 의미한다.
한편 상기 부호화기(110)는 이진 문자열을 복수의 부분 문자열로 분할할 때, 최종적으로 1 심볼이 남을 경우에 상기 남은 1 심볼을 부분 문자열로 분할하지 않고, 상기 남은 심볼 값을 식별하기 위한 정보를 사용하여 구분할 수 있다. 이 경우 상기 남은 심볼 값을 식별하기 위한 정보는 압축 복원 정보에 포함될 수 있다.
상술한 바와 같이 상기 부호화기(110)는 긴 이진 문자열을 상대적으로 짧은 부분 문자열로 분할하여 압축을 수행함으로써, 압축 시간과 복잡도를 줄일 수 있는 장점을 가진다.
상기 부호화기(110)는 앞서 획득한 복수의 부분 문자열 각각을 소정의 무 손실 압축 기법을 사용하여 별도로 압축한 후 상기 복수의 압축된 부분 문자열을 연접 (concatenation)하여 하나의 압축 문자 열 (이하 “디지털 압축 신호”라 칭함)로 출력한다.
상기 부호화기(110)는 상술한 바에 의해 이진 문자열을 디지털 압축 신호로 압축함에 있어 고려한 정보 (이하 “압축 복원 정보”라 칭함)를 생성한다. 그리고 상기 부호화기(110)는 상기 압축 복원 정보를 상기 디지털 압축 신호를 복원하기 위해 함께 저장한다. 예컨대 상기 압축 복원 정보는 이진 문자열을 구성하는 마지막 심볼의 압축 여부를 나타내는 식별 정보, 복수의 부분 문자열 중 적어도 하나의 부분 문자열의 길이에 관한 정보, 부분 문자열을 획득하기 위해 사용된 심볼 변환 패턴 맵을 나타내는 식별 정보, 압축을 위해 사용된 압축 기법을 나타내는 식별 정보 등이 될 수 있다.
복호화기(120)는 디지털 압축 신호와 압축 복원 정보를 입력으로 하고, 상기 압축 복원 정보를 기반으로 상기 디지털 압축 신호에 대한 복원을 수행하여 아날로그 복원 신호를 출력한다. 하지만 디지털 신호의 처리가 가능한 재생 장치의 경우를 가정할 시, 상기 복호화기(120)는 디지털 압축 신호에 대한 복원을 통해 획득한 디지털 신호를 그대로 재생장치에 출력할 수 있다. 즉 재상장치가 디지털 신호 처리가 가능한 경우, 상기 복호화기(120)에 의한 디지털 신호를 아날로그 신호로 변환하기 위한 동작은 생략될 수 있다.
한편 상기 복호화기(120)에 의한 복원 동작은 상기 부호화기(110)에 의해 수행된 압축 동작의 역순에 의해 이루어진다. 즉 상기 복호화기(120)는 연접에 의해 생성된 디지털 압출 신호를 복수의 압축된 부분 문자열로 분할하고, 상기 복수의 압축된 부분 문자열 각각을 압축을 위해 사용된 무 손실 압축 기법에 대응한 복원 기법을 사용하여 복원한다. 상기 복호화기(120)는 상기 복원된 복수의 부분 문자열을 압축 시에 사용된 심볼 변환 패턴 맵을 사용하여 하나의 이진 문자열로 생성한다. 그 후 상기 복호화기(120)는 필요에 따라 상기 생성한 하나의 이진 문자열을 아날로그 신호로 변환하여 출력한다.
상기 복호화기(120)는 상기 복수의 압축된 부분 문자열을 복원함에 있어 디지털 압축 신호로 함께 제공되는 압축 복원 정보를 기반으로 한다. 또한 상기 복호화기(120)는 상기 복원된 복수의 부분 문자열을 하나의 이진 문자열로 생성하기 위해서도 상기 압축 복원 정보를 사용할 수 있다.
예컨대 상기 부호화기(110)와 상기 복호화기(120)는 압축 및 복원을 위해 다양한 심볼 변환 패턴 맵을 저장하는 기록 매체를 내부에 구비하거나 외부의 기록 매체를 활용할 수 있다. 뿐만 아니라 압축 복원 정보가 부호기(110)에서 사용된 심볼 변환 패턴 맵에 관한 정보를 포함하는 경우, 상기 복호화기(120)는 심볼 변환 패턴 맵을 저장하기 위한 별도의 기록 매체를 구비하거나 외부의 기록 매체에 접근할 필요가 없다.
B. 부호화 장치 및 방법
도 2는 본 발명의 실시 예에 따른 부호화기의 구조에 대한 일 예를 보이고 있다. 도 2에서 보이고 있는 부호화기의 일 예는 문맥기반 적응적 이진 산술 부호화 방식 (COBAC: Context-Adaptive Binary Arithmetic Coding)의 원리를 사용하는 부호화기의 구조를 보이고 있다.
그리고 도 2에서는 입력 신호로 다치 신호 (multi-level signal)의 경우를 가정하고 있다. 여기서 다치 신호는 보통의 펄스 전송에서는 하나의 펄스 신호에 대하여 기준 진폭 레벨을 정해 놓고 이 기준 레벨을 바탕으로 0 또는 1이라는 2개의 값으로 구분하는 신호를 의미한다. 이때 레벨을 좀 더 작게 정하여 하나의 펄스에서 표현할 수 있는 값의 종류를 3개 이상으로 확장하여 사용할 수도 있다. 또한 도 2에서는 압축을 위해 입력되는 신호가 디지털 신호임을 가정하고 있다.
도 2를 참조하면, 이진화부(210)는 다치 신호를 입력으로 하고, 상기 다치 신호를 이진신호로 변환한다. 이를 위한 이진 부호화 방식으로는 단항 이진 부호화 (Unary Binarization) 방식, 절삭형 단항 이진부호화 (Truncated Unary Binarization) 방식, 단항/k차 지수 골롬 결합형 이진부호화 (Concatenated Unary/k-th Order Exponential Golomb Binarization) 방식, 고정길이 이진부호화 (Fixed Length Binarization) 방식, 표 참조 (Table Look-up) 방식 중 어느 하나가 사용될 수 있다.
상기 이진화부(210)에 의해 출력되는 이진신호는 이진 산술 부호화부(230)로 입력된다.
문맥 (Context) 계산부(220)는 압축하기 위해 상기 이진화부(210)에 의해 제공되는 이진 신호의 발생 확률 등의 특성 정보를 압축을 위한 상황을 고려하여 생성한다. 여기서 상기 특성 정보는 이진 신호를 구성하는 심볼들의 확률 값을 산출하기 위한 기준이 될 수 있다. 예컨대 상기 특성 정보는 심볼 별 확률 값과 MPS의 확률 값 중 적어도 하나가 될 수 있다. 상기 특성 정보는 이진 신호에 대한 분할에 의해 획득할 부분 문자열의 개수, 부분 문자열로 분할할 심볼 단위 등을 추가로 포함할 수 있다. 상기 부분 문자열로 분할할 심볼 단위는 상기 이진화부(210)로부터 입력되는 이진 신호를 구성하는 심볼들 중 한번의 분할을 위해 사용할 심볼의 개수를 의미한다.
상기 이진 산술 부호화부(230)는 상기 이진화부(210)로부터 입력되는 이진 신호, 즉 이진 문자열을 무 손실 압축 기법을 사용하여 디지털 압축 신호로 압축한다. 예컨대 상기 부호화기(110)에 의해 사용되는 무 손실 압축 기법은 엔트로피 압축 방법 등의 가변 길이 부호화 기법이 될 수 있다. 상기 이진 산술 부호화부(230)는 이진 문자열의 압축을 위해 상기 문맥 계산부(220)로부터 제공되는 발생 확률 정보 등을 포함하는 특성 정보를 고려한다.
보다 구체적으로, 상기 이진 산술 부호화부(230)는 상기 이진화부(210)로부터 입력되는 이진 신호, 즉 하나의 이진 문자열을 복수의 부분 문자열로 분할한다. 이를 위해 상기 이진 산술 부호화부(230)는 다양한 심볼 변환 패턴 맵들을 가지거나 입수할 수 있으며, 상기 문맥 계산부(220)로부터 제공되는 발생 확률 등의 특성 정보를 활용하여 상기 다양한 심볼 변환 패턴 맵 중 하나의 심볼 변환 패턴 맵을 선택한다. 상기 선택한 심볼 변환 패턴 맵은 상기 이진화부(210)로부터 입력되는 이진 신호, 즉 하나의 이진 문자열을 복수의 부분 문자열로 분할하기 위해 사용된다. 상기 심볼 변환 맵을 사용하여 복수의 부분 문자열을 획득하기 위한 다양한 예들에 대해서는 후술될 것이다.
한편 상기 이진 산술 부호화부(230)는 이진 문자열을 복수의 부분 문자열로 분할할 때, 최종적으로 1 심볼이 남을 경우에 남은 1 심볼을 부분 문자열로 분할하지 않고, 남은 심볼 값을 식별하기 위한 정보를 사용하여 구분할 수 있다. 이 경우 상기 남은 심볼 값을 식별하기 위한 정보는 압축 복원 정보에 포함될 수 있다.
상기 이진 산술 부호화부(230)는 앞서 획득한 복수의 부분 문자열 각각을 소정의 무 손실 압축 기법을 사용하여 별도로 압축한 후 상기 복수의 압축된 부분 문자열을 연접 (concatenation)하여 하나의 디지털 압축 신호로 출력한다.
또한 상기 이진 산술 부호화부(230)는 이진 신호를 디지털 압축 신호로 압축함에 있어 고려할 압축 복원 정보를 생성한다. 그리고 상기 부호화기(110)는 상기 압축 복원 정보를 상기 디지털 압축 신호를 복원하기 위해 함께 저장한다. 예컨대 상기 압축 복원 정보는 이진 문자열을 구성하는 마지막 심볼의 압축 여부를 나타내는 식별 정보, 복수의 부분 문자열 중 적어도 하나의 부분 문자열의 길이에 관한 정보, 부분 문자열을 획득하기 위해 사용된 심볼 변환 패턴 맵을 나타내는 식별 정보, 압축을 위해 사용된 압축 기법을 나타내는 식별 정보 등이 될 수 있다.
도 3은 본 발명의 실시 예에 따른 이진 산술 부호화부 구성의 일 예를 보이고 있다. 도 3에서는 하나의 이진 문자열을 두 개의 부분 문자열로 분할하여 압축하는 것을 가정하고 있다. 하지만 하나의 이진 문자열이 두 개보다 많은 개수의 부분 문자열로 분할될 수 있다는 것은 하기에서 추가로 설명될 예시들에 의해 당연할 것이다.
도 3을 참조하면, 이진 심볼 변환기(310)는 이진 신호, 즉 이진 문자열 B와 상기 이진 문자열 B의 특성 정보를 입력으로 한다. 상기 이진 심볼 변환기 (310)는 상기 특성 정보를 기반으로 입력되는 이진 문자열 B를 두 개의 부분 문자열 T1과 T2로 분할한다. 예컨대 상기 특성 정보는 심볼 별 확률 값과 MPS의 확률 값 중 적어도 하나가 될 수 있다. 상기 특성 정보는 이진 문자열 B의 분할에 의해 획득할 부분 문자열의 개수, 부분 문자열로 분할할 심볼 단위 등을 추가로 포함할 수 있다. 상기 부분 문자열로 분할할 심볼 단위는 이진 문자열 B를 구성하는 심볼들 중 한번의 분할을 위해 사용할 심볼의 개수를 의미한다.
상기 이진 심볼 변환기(310)는 부분 문자열을 획득하기 위해 상기 특정 정보에 의해 선택된 심볼 변환 패턴 맵을 사용한다. 따라서 상기 이진 심볼 변환기(310)는 입력되는 특정 정보에 상응하는 최적의 심볼 변환 패턴 맵을 선택하기 위해 다양한 심볼 변환 패턴 맵을 가지거나 외부로부터 제공받을 수 있어야 한다.
예컨대 도 3에서는 다양한 심볼 변환 패턴 맵을 저장하는 기록 매체(312)를 상기 이진 심볼 변환기(310) 내에 구비한 경우를 가정하고 있다. 하지만 상기 이진 심볼 변환기(310)가 다양한 심볼 변환 패턴 맵을 가지고 있는 것이 아니라 외부의 기록 매체에 기록된 다양한 심볼 변환 패턴 맵으로부터 원하는 심볼 변환 패턴을 제공받을 수도 있음은 자명하다.
한편 상기 이진 심볼 변환기(310)는 이진 문자열 B를 두 개의 부분 문자열 T1과 T2로 분할할 때, 최종적으로 1 심볼이 남을 경우에 남은 1 심볼을 식별하기 위한 정보를 사용하여 구분할 수 있다. 이 경우 상기 이진 심볼 변환기(310)는 상기 남은 심볼 값을 식별하기 위한 정보를 포함하는 압축 복원 정보를 생성할 수 있다.
상기 분할된 두 개의 부분 문자열 중 첫 번째 부분 문자열 T1은 이진 심볼 압축기 #1(320)로 입력되며, 상기 분할된 두 개의 부분 문자열 중 두 번째 부분 문자열 T2는 이진 심볼 압축기 #2(330)로 입력된다.
상기 이진 심볼 압축기 #1(320)은 상기 이진 심볼 변환기(310)로부터 입력되는 첫 번째 부분 문자열 T1을 소정의 무 손실 압축 기법을 사용하여 압축하며, 상기 이진 심볼 압축기 #2(330)은 상기 이진 심볼 변환기(310)로부터 입력되는 두 번째 부분 문자열 T2를 소정의 무 손실 압축 기법을 사용하여 압축한다.
상기 이진 심볼 압축기 #1(320)와 상기 이진 심볼 압축기 #2(330)에서는 서로 동일한 무 손실 압축 기법을 사용하는 것이 바람직하다. 예컨대 상기 이진 심볼 압축기 #1(320)와 상기 이진 심볼 압축기 #2(330)에서 사용할 무 손실 압축 기법은 가변 길이 부호화의 일 예인 엔트로피 압축 기법이 될 수 있다.
한편 상기 이진 심볼 압축기 #1(320)와 상기 이진 심볼 압축기 #2(330)는 입력되는 부분 문자열에 대한 압축을 수행하지 않을 수도 있다. 예컨대 압축을 위해 입력되는 이진 문자열 내에서 0과 1의 배열을 예측할 수 없거나 0과 1이 랜덤하게 배열되어 있어 0과 1의 비율이 비슷할 경우에는 압축으로 인한 정보 량의 축소 효과가 낮을 수 있다. 이 경우 부분 문자열에 대한 압축을 수행하지 않는 것이 유리할 수 있기 때문이다.
상기 이진 심볼 압축기 #1(320)와 상기 이진 심볼 압축기 #2(330)는 압축의 선별적 적용을 위해 상황 별로 압축 여부를 결정하거나 사용할 압축기를 선택하기 위한 판단을 수행할 수 있다. 예컨대 상기 이진 심볼 압축기 #1(320)와 상기 이진 심볼 압축기 #2(330)에서 사용할 압축기로 BAC를 전제로 하고 있으나 허프만 코더를 사용하는 것도 가능하다.
상기 이진 심볼 압축기 #1(320)은 상기 첫 번째 부분 문자열 T1을 압축하여 첫 번째 디지털 압축 신호인 E(T1)을 출력하며, 상기 이진 심볼 압축기 #2(330)은 상기 두 번째 부분 문자열 T2를 압축하여 두 번째 디지털 압축 신호인 E(T2)을 출력한다.
상기 이진 심볼 압축기 #1(320)에 의해 출력되는 첫 번째 디지털 압축 신호 E(T1)와, 상기 이진 심볼 압축기 #2(330)에 의해 출력되는 두 번째 디지털 압축 신호 E(T2)는 연접기(340)로 입력된다.
상기 연접기(340)는 상기 첫 번째 디지털 압축 신호 E(T1)와 상기 두 번째 디지털 압축 신호 E(T2)를 연접하여 하나의 디지털 압출 신호
Figure 112011060571386-pat00001
를 출력한다. 여기서 E는 엔트로피 압축 함수를 의미하고,
Figure 112011060571386-pat00002
은 연접을 의미한다.
도 4는 본 발명의 실시 예에 따라 데이터를 압축하기 위해 수행하는 제어 흐름을 보이고 있다. 도 4에서는 압축을 위한 데이터로 다치 신호가 입력되는 것을 전제로 하고 있으나 압축을 위한 데이터가 이진 데이터인 경우에는 이진화를 수행하는 단계를 생략하는 것으로 수정하여 적용될 수 있다.
도 4를 참조하면, 부호화 장치는 압축을 위한 데이터가 입력되면, 410단계에서 상기 입력된 데이터에 대한 이진화를 수행하여 이진 문자열을 생성한다. 상기 부호화 장치는 이진화를 통해 이진 문자열을 생성하면, 412단계에서 상기 이진 문자열을 분할하여 복수의 부분 문자열을 생성한다. 이때 복수의 부분 문자열의 생성을 위해 상기 부호화 장치는 심볼 변환 패턴 맵을 사용한다. 상기 부호화 장치는 복수의 부분 문자열의 생성을 위해 다양한 심볼 변환 패턴 맵에서 최적의 심볼 변환 패턴 맵을 선택하여 사용할 수 있다.
예컨대 상기 부호화 장치는 최적의 심볼 변환 패턴 맵을 선택하기 위해 이진 문자열이 가지는 특성 정보를 고려할 수 있다. 여기서 특성 정보의 대표적인 예로는 심볼 확률 값이 될 수 있다. 한편 상기 복수의 부분 문자열의 생성에 대한 구체적인 동작에 대해서는 도 5를 참조하여 구체적으로 설명될 것이다.
상기 부호화 장치는 복수의 부분 문자열의 생성이 완료되면, 414단계에서 상기 생성된 부분 문자열 별로 부호화를 수행한다. 상기 부호화를 위해 상기 부호화 장치는 무 소실 압축 기법을 사용할 수 있으며, 이때 사용되는 무 손실 압축 기법은 엔트로피 압축 기법으로 대표되는 가변 길이 부호화 기법이 될 수 있다.
상기 부분 문자열 별로의 부호화에 의해 압축된 부분 문자열을 획득하면, 상기 부호화 장치는 416단계에서 상기 복수의 압축된 부분 문자열을 연접하여 하나의 디지털 압축 신호를 생성한다.
상기 부호화 장치는 418단계에서 앞서 생성한 디지털 압축 신호를 출력한다. 상기 부호화 장치는 상기 디지털 압축 신호와 함께 상기 디지털 압축 신호를 복원하기 위해 요구되는 압축 복원 정보를 함께 출력할 수 있다.
또한 상기 부호화 장치에 의해 출력되는 디지털 압축 신호 또는 상기 디지털 압축 신호와 압축 복원 정보는 통신 망을 통해 전송되거나 직접 연결된 미디어 재생 장치로 제공되거나 DVD, 블루레이, 하드디스크 등의 정보 기록이 가능한 기록매체에 기록될 수 있다.
도 5는 본 발명의 실시 예에 따른 부분 문자열을 생성하기 위한 제어 흐름을 보이고 있다. 도 5에서 보이고 있는 제어 흐름은 도 4에서의 412단계에 대응한 구체적인 동작의 일 예에 해당한다.
도 5를 참조하면, 부호화 장치는 510단계에서 이진 문자열의 특성 정보를 생성한다. 여기서 특성 정보는 이진 신호를 구성하는 심볼들의 확률 값을 산출하기 위한 기준이 될 수 있다. 예컨대 상기 특성 정보는 심볼 별 확률 값과 MPS의 확률 값 중 적어도 하나가 될 수 있다. 상기 특성 정보는 이진 신호에 대한 분할에 의해 획득할 부분 문자열의 개수, 부분 문자열로 분할할 심볼 단위 등을 추가로 포함할 수 있다. 상기 부분 문자열로 분할할 심볼 단위는 입력되는 이진 문자열을 구성하는 심볼들 중 한번의 분할을 위해 사용할 심볼의 개수를 의미한다.
상기 부호화 장치는 512단계에서 자신이 가지고 있거나 접근이 가능한 이진 문자열의 특성 별 심볼 변환 패턴 맵들 중에서 상기 생성한 특성 정보에 대응한 심볼 변환 패턴 맵을 선택한다. 예컨대 이진 문자열에서의 MPS가 0인지 1인지에 따라 상응하는 심볼 변환 패턴 맵의 그룹을 선택하고, 생성할 부분 문자열의 수를 고려하여 상기 선택한 그룹 내의 심볼 변환 패턴 맵들 중 하나의 심볼 변환 패턴 맵을 선택한다.
상기 부호화 장치는 상기 심볼 변환 패턴 맵을 선택하면, 514단계에서 상기 선택한 심볼 변환 패턴 맵을 사용하여 상기 이진 문자열을 분할하여 복수의 부분 문자열을 생성한다. 상기 선택한 심볼 변환 패턴 맵을 사용하여 복수의 부분 문자열을 생성하는 구체적인 동작은 후술될 설명에서 예시에 의해 설명될 것이다.
상기 부호화 장치는 516단계에서 상기 생성된 복수의 부분 문자열을 출력한다. 상기 출력되는 복수의 부분 문자열 각각은 소정의 무 손실 압축 기법에 의해 압축된 후 연접되어 하나의 디지털 압축 신호로 출력될 것이다.
이하 본 발명의 실시 예에서 이진 문자열을 복수의 부분 문자열로 분할하기 위해 사용할 심볼 변환 패턴 맵에 대해 살펴보고, 대표적인 심볼 변환 패턴 맵에 의해 부분 문자열을 생성하는 예들에 대해 구체적으로 설명한다.
하기 <표 1>은 MPS가 0이고, 분할을 위한 단위가 n 심볼인 경우에 두 개의 부분 문자열을 생성하기 위해 사용할 수 있는 심볼 변환 패턴 맵의 일 예를 보이고 있다.
입력심볼 출력심볼 T1 T2
1X1X2X3...Xn 1X1X2X3...Xn 1 X1X2X3...Xn
0 0 0 -
상기 <표 1>에 의하면, 분할을 위한 단위인 n 개의 심볼에서 첫 번째 심볼이 1인 경우에는 상기 첫 번째 심볼을 첫 번째 부분 문자열 T1로 분할하고, 나머지 n-1 개의 심볼을 두 번째 부분 문자열 T2로 분할한다. 그리고 분할할 이진 문자열의 심볼 값이 0인 경우에는 해당 심볼을 첫 번째 부분 문자열 T1로 분할한다.
하기 <표 2>는 분할을 위한 단위가 2 (<표 1>에서의 n이 1인 경우)이고, 두 개의 부분 문자열을 생성하고자 하는 경우에 상기 <표 1>의 룰에 의해 마련될 수 있는 심볼 변환 패턴 맵의 일 예를 보이고 있다.
입력심볼 출력심볼 T1 T2
10 10 1 0
11 11 1 1
0 0 0 -
상기 <표 2>에 의하면, 이진 문자열에서 선택된 두 심볼이 “10”인 경우, 상기 두 심볼 중 첫 번째 심볼인 “1”을 T1로 분할하고, 두 번째 심볼인 “0”을 T2로 분할한다. 그리고 이진 문자열에서 선택된 두 심볼이 “11”인 경우, 상기 두 심볼 중 첫 번째 심볼인 “1”을 T1로 분할하고, 두 번째 심볼인 “1”을 T2로 분할한다. 하지만 분할할 이진 문자열의 첫 번째 심볼의 값이 “0”인 경우에는 해당 심볼 “0”을 T1로 분할한 후 그 다음 심볼을 상술한 룰에 의해 분할한다.
예컨대 이진 문자열 B가 “10101100101000001100”인 경우를 가정한다. 이 경우 심볼 0이 MPS이고, 이진 문자열 B는 20개의 이진 심볼을 포함한다.
이때 처음 두 심볼과 그 다음 두 심볼이 모두 “10”이므로 각각에서의 첫 번째 심볼인 “1”은 T1로 분배하고, 각각에서의 두 번째 심볼인 “0”은 T2로 분배한다. 그리고 그 다음 두 심볼이 “11”이므로 첫 번째 심볼인 “1”은 T1로 분배하고, 두 번째 심볼인 “1”은 T2로 분배한다. 하지만 그 다음에 연속하는 두 심볼이 모두 “0”이므로 T1로 두 개의“0”을 분배하며, 그 다음 두 심볼이 “10”이므로 첫 번째 심볼인 “1”은 T1로 분배하고, 두 번째 심볼인 “0”은 T2로 분배한다.
상술한 바에 의해 이진 문자열을 분배할 경우, 최종적으로 분배된 결과로써 T1은 “11100110000100”이 되며, T2는 “001001”이 된다. 따라서 T1과 T2의 이진 심볼 개수는 각각 14개와 6개가 된다. 또한 T1과 T2의 이진 심볼 수를 합치면, 이진 문자열 B의 심볼 개수와 같이 20개이다. 그런데 T1과 T2에서 이진 심볼 0의 빈도가 1의 빈도보다 높음을 확인할 수 있다. 따라서 빈도가 더 높을 경우 필요하면, 엔트로피 압축기를 써서 T1과 T2을 각각 압축할 수 있다.
하기 <표 3>은 분할을 위한 단위가 3 (<표 1>에서의 n이 2인 경우)이고, 두 개의 부분 문자열을 생성하고자 하는 경우에 상기 <표 1>의 룰에 의해 마련될 수 있는 심볼 변환 패턴 맵의 일 예를 보이고 있다.
입력심볼 출력심볼 T1 T2
100 100 1 00
101 101 1 10
110 110 1 10
111 111 1 11
0 0 0 -
상기 <표 3>에 의하면, 이진 문자열에서 선택된 세 심볼이 “100”인 경우, 상기 세 심볼 중 첫 번째 심볼인 “1”을 T1로 분할하고, 두 번째와 세 번째 심볼인 “00”을 T2로 분할한다. 그리고 이진 문자열에서 선택된 두 심볼이 “101”인 경우, 상기 세 심볼 중 첫 번째 심볼인 “1”을 T1로 분할하고, 두 번째와 세 번째 심볼인 “01”을 T2로 분할한다. 이진 문자열에서 선택된 두 심볼이 “110”인 경우, 상기 세 심볼 중 첫 번째 심볼인 “1”을 T1로 분할하고, 두 번째와 세 번째 심볼인 “10”을 T2로 분할한다. 그리고 이진 문자열에서 선택된 두 심볼이 “111”인 경우, 상기 세 심볼 중 첫 번째 심볼인 “1”을 T1로 분할하고, 두 번째와 세 번째 심볼인 “11”을 T2로 분할한다. 하지만 분할할 이진 문자열의 첫 번째 심볼의 값이 “0”인 경우에는 해당 심볼인 “0”을 첫 번째 부분 문자열 T1로 분할한 후 그 다음 심볼을 상술한 룰에 의해 분할한다.
예컨대 이진 문자열 B가 “10101100101000001100”인 경우를 가정한다. 이 경우 심볼 0이 MPS이고, 이진 문자열 B는 20개의 이진 심볼을 포함한다.
이때 처음 연속하는 세 심볼이 “101”이므로 첫 번째 심볼인 “1”은 T1로 분배하고, 두 번째와 세 번째 심볼인 “01”은 T2로 분배한다. 그리고 그 다음 연속하는 심볼이 “0”이므로 해당 심볼인 “0”은 T1로 분배하며, 그 다음 연속하는 세 심볼이 세 심볼이 “110”이므로 첫 번째 심볼인 “1”은 T1로 분배하고, 두 번째와 세 번째 심볼인 “10”은 T2로 분배한다.
상술한 방식에 의해 모든 이진 문자열에 대한 분할을 수행하면, 최종적으로 분배된 결과로써 T1은 “101010000010”이 되며, T2는 “01100110”이 된다. 그 결과에 의하면, T1과 T2의 이진 심볼 개수는 각각 12개와 8개가 되어 T1과 T2의 이진 심볼 수 합이 이진 문자열 B의 심볼 개수와 같이 20개이다. 또한 T1에서 이진 심볼 0의 빈도가 1의 빈도보다 높으나 T2에서 이진 심볼 0의 빈도가 1의 빈도와 동일하므로, 해당 이진 문자열 B에 대해서는 상기 <표 3>의 심볼 변환 패턴 맵을 선택하는 것은 가능할 수 있다.
하기 <표 4>는 분할을 위한 단위가 3 (<표 1>에서의 n이 2인 경우)이고, 세 개의 부분 문자열을 생성하고자 하는 경우에 상기 <표 1>의 룰에 의해 마련될 수 있는 심볼 변환 패턴 맵의 일 예를 보이고 있다.
입력심볼 출력심볼 T1 T2 T3
100 100 1 0 0
101 101 1 0 1
110 110 1 1 0
111 111 1 1 1
0 0 0 - -
상기 <표 4>에 의하면, 이진 문자열에서 선택된 세 심볼이 “100”인 경우, 상기 세 심볼 중 첫 번째 심볼인 “1”을 T1로 분할하고, 두 번째 심볼인 “0”을 T2로 분할하며, 세 번째 심볼인 “0”을 T3으로 분할한다. 그리고 이진 문자열에서 선택된 세 심볼이 “101”인 경우, 상기 세 심볼 중 첫 번째 심볼인 “1”을 T1로 분할하고, 두 번째 심볼인 “0”을 T2로 분할하며, 세 번째 심볼인 “1”을 T3으로 분할한다. 이진 문자열에서 선택된 세 심볼이 “110”인 경우, 상기 세 심볼 중 첫 번째 심볼인 “1”을 T1로 분할하고, 두 번째 심볼인 “1”을 T2로 분할하며, 세 번째 심볼인 “0”을 T3으로 분할한다. 그리고 이진 문자열에서 선택된 세 심볼이 “111”인 경우, 상기 세 심볼 중 첫 번째 심볼인 “1”을 T1로 분할하고, 두 번째 심볼인 “1”을 T2로 분할하며, 세 번째 심볼인 “1”을 T3으로 분할한다. 하지만 분할할 이진 문자열의 첫 번째 심볼의 값이 “0”인 경우에는 해당 심볼을 첫 번째 부분 문자열 T1로 분할한 후 그 다음 심볼을 상술한 룰에 의해 분할한다.
예컨대 이진 문자열 B가 “10101100101000001100”인 경우를 가정한다. 이 경우 심볼 0이 MPS이고, 이진 문자열 B는 20개의 이진 심볼을 포함한다.
이때 처음 연속하는 세 심볼이 “101”이므로 첫 번째 심볼인 “1”은 T1로 분배하고, 두 번째 심볼인 “0”은 T2로 분배하며, 세 번째 심볼인 “1”은 T3으로 분배한다. 그리고 그 다음 연속하는 심볼이 “0”이므로 해당 심볼인 “0”은 T1로 분배하며, 그 다음 연속하는 세 심볼이 세 심볼이 “110”이므로 첫 번째 심볼인 “1”은 T1로 분배하고, 두 번째 심볼인 “1”은 T2로 분배하며, 세 번째 심볼인 “0”은 T3으로 분배한다.
상술한 방식에 의해 모든 이진 문자열에 대한 분할을 수행하면, 최종적으로 분배된 결과로써 최종적으로 T1은 “101010000010”이 되며, T2는 “0101”이 되며, T3은 “1010”이 된다. 그 결과에 의하면, T1과 T2의 이진 심볼 개수는 각각 12개와 4개가 되어 T1과 T2의 이진 심볼 수 합이 이진 문자열 B의 심볼 개수보다 작은 18개이다. 또한 T1에서 이진 심볼 0의 빈도가 1의 빈도보다 높으나 T2에서 이진 심볼 0의 빈도가 1의 빈도와 동일하므로, 해당 이진 문자열 B에 대해서는 상기 <표 4>의 심볼 변환 패턴 맵을 선택하는 것은 가능할 수 있다.
하기 <표 5>는 상기 <표 1>의 심볼 변환 패턴 맵을 응용하여 새로운 심볼 변환 패턴 맵의 예를 보이고 있다.
입력심볼 출력심볼 T1 T2
0X1X2X3...Xn 0X1X2X3...Xn 0 X1X2X3...Xn
1 1 1 -
상기 <표 5>에 의하면, 분할을 위한 단위인 n 개의 심볼에서 첫 번째 심볼이 0인 경우에는 상기 첫 번째 심볼을 첫 번째 부분 문자열 T1로 분할하고, 나머지 n-1 개의 심볼을 두 번째 부분 문자열 T2로 분할한다. 그리고 분할할 이진 문자열의 심볼 값이 1인 경우에는 해당 심볼을 첫 번째 부분 문자열 T1로 분할한다.
하기 <표 6>은 분할을 위한 단위가 2 (<표 5>에서의 n이 1인 경우)이고, 두 개의 부분 문자열을 생성하고자 하는 경우에 상기 <표 5>의 룰에 의해 마련될 수 있는 심볼 변환 패턴 맵의 일 예를 보이고 있다.
입력심볼 출력심볼 T1 T2
00 0 0 -
01 11 1 1
1 10 1 0
상기 <표 6>에 의하면, 이진 문자열에서 선택된 두 심볼이 “00”인 경우, 상기 두 심볼을 대신하여 “0”을 T1로 분할한다. 그리고 이진 문자열에서 선택된 두 심볼이 “01”인 경우, 상기 두 심볼 중 첫 번째 심볼인 “0”을 대신하여 “1”을 T1로 분할하고, 두 번째 심볼인 “1”을 T2로 분할한다. 또한 분할할 이진 문자열의 첫 번째 심볼의 값이 “1”인 경우에는 상기 해당 심볼 “1”을 대신하여 “1”을 T1로 분할하고, “0”을 T2로 분할한다.
예컨대 이진 문자열 B가 “10101100101000001100”인 경우를 가정한다. 이 경우 심볼 0이 MPS이고, 이진 문자열 B는 20개의 이진 심볼을 포함한다.
이때 처음 심볼이 “1”이므로 “1”을 T1로 분배하고, “0”을 T2로 분배하고, 다음 두 심볼과 그 다음 두 심볼이 모두 “01”이므로 각각에서 첫 번째 심볼인 “0”을 대신하여 “1”을 T1로 분배하고, 각각에서 두 번째 심볼인 “1”을 T2로 분배한다. 그리고 그 다음 심볼이 “1”이므로“1”을 T1로 분배하고, “0”을 T2로 분배한다.
상술한 방식에 의해 모든 이진 문자열에 대한 분할을 수행하면, 최종적으로 분배된 결과로써 T1은 “111101100110”이 되며, T2는 “01100110”이 된다.
그 결과에 의하면, T1과 T2의 이진 심볼 개수는 각각 12개와 8개가 되어 T1과 T2의 이진 심볼 수 합이 이진 문자열 B의 심볼 개수와 같이 20개이다. 그런데 T2에서 이진 심볼 0의 빈도가 1의 빈도보다 높으나 T1에서 이진 심볼 0의 빈도가 1의 빈도보다 낮으므로, 해당 이진 문자열 B에 대해서는 상기 <표 6>의 심볼 변환 패턴 맵을 선택하는 것은 바람직하지 않을 수 있다.
하기 <표 7>은 분할을 위한 단위가 2 (<표 5>에서의 n이 1인 경우)이고, 두 개의 부분 문자열을 생성하고자 하는 경우에 상기 <표 5>의 룰에 의해 마련될 수 있는 심볼 변환 패턴 맵의 다른 예를 보이고 있다.
입력심볼 출력심볼 T1 T2
00 00 0 0
01 01 0 1
1 1 1 -
상기 <표 7>에 의하면, 이진 문자열에서 선택된 두 심볼이 “00”인 경우, 상기 두 심볼 중 첫 번째 심볼인 “0”을 T1로 분할하고, 두 번째 심볼인 “0”을 T2로 분할한다. 그리고 이진 문자열에서 선택된 두 심볼이 “01”인 경우, 상기 두 심볼 중 첫 번째 심볼인 “0”을 T1로 분할하고, 두 번째 심볼인 “1”을 T2로 분할한다. 또한 분할할 이진 문자열의 첫 번째 심볼의 값이 “1”인 경우에는 상기 해당 심볼 “1”을 T1로 분할한다.
예컨대 이진 문자열 B가 “10101100101000001100”인 경우를 가정한다. 이 경우 심볼 0이 MPS이고, 이진 문자열 B는 20개의 이진 심볼을 포함한다.
이때 처음 심볼이 “1”이므로 “1”을 T1로 분배하고, 다음 두 심볼과 그 다음 두 심볼이 모두 “01”이므로 각각에서 첫 번째 심볼인 “0”을 T1로 분배하고, 각각에서 두 번째 심볼인 “1”을 T2로 분배한다. 그리고 그 다음 심볼이 “1”이므로“1”을 T1로 분배한다. T1은 “100101000010”이 되며, T2는 “11010010”이 된다.
그 결과에 의하면, T1과 T2의 이진 심볼 개수는 각각 12개와 8개가 되어 T1과 T2의 이진 심볼 수 합이 이진 문자열 B의 심볼 개수와 같이 20개이다. 한편 T1과 T2에서 이진 심볼 0의 빈도가 1의 빈도보다 높으므로, 해당 이진 문자열 B에 대해서는 상기 <표 7>의 심볼 변환 패턴 맵을 선택하는 것이 가능할 수 있다.
한편 상술한 심볼 변환 패턴 맵은 대표적인 예들을 나열한 것일 뿐 그 외의 다양한 변형 및 변경이 가능함을 물론이다.
도 6은 본 발명의 실시 예에 따라 이진 문자열을 압축하는 경우에 복원을 위해 생성되는 압축 복원 정보의 일 예를 보이고 있다.
도 6을 참조하면, 압축 복원 정보는 마지막 심볼에 대한 압축 여부를 나타내는 식별 정보, 첫 번째 부분 문자열 T1에 대한 압축 후의 길이를 나타내는 정보, 압축된 첫 번째 부분 문자열 E(T1) 및 압축된 두 번째 부분 문자열 E(T2)를 포함한다. 하지만 상기 압축된 첫 번째 부분 문자열 E(T1) 및 상기 압축된 두 번째 부분 문자열 E(T2)은 압축 복원 정보에 포함되지 않고, 별도의 정보로 존재할 수 있다.
한편 마지막 심볼에 대한 압축 여부를 나타내는 식별 정보의 길이는 1 비트이고, 첫 번째 부분 문자열 T1에 대한 압축 후의 길이를 나타내는 정보의 길이는 가변적이다. 또한 압축된 첫 번째 부분 문자열 E(T1) 및 압축된 두 번째 부분 문자열 E(T2)의 길이는 첫 번째 부분 문자열 T1 및 두 번째 부분 문자열 T2의 길이 및 압축 율에 따라 가변적으로 정의될 것이다.
여기서 마지막 심볼에 대한 압축 여부를 나타내는 식별 정보는 이진 문자열을 복수의 부분 문자열로 분할하고, 마지막으로 하나의 심볼이 남을 시에 이를 압축하였는지 압축하지 않았는지를 나타내는 정보이다. 예컨대 상기 <표 2>의 경우, “1”의 심볼이 단독으로 존재하는 경우에 대해서는 정의하고 있지 않으므로, 해당 심볼을 분배할 수 없어 압축이 이루어지지 않을 것이다. 이 경우 복원 시에 해당 심볼에 대한 압축이 이루어지지 않았음을 인지할 수 있도록 하기 위해 마지막 심볼 압축 여부에 관한 정보가 압축 복원 정보에 포함될 필요가 있다.
한편 도 6에서 정의하고 있지는 않으나 필요 시에 압축 복원 정보는 압축을 위해 사용된 심볼 변환 패턴 맵을 식별하는 정보 및 압축을 위해 사용한 부호화 기법 또는 부호화기의 종류에 관한 정보 등을 추가로 포함할 수 있다.
C. 복호화 장치 및 방법
도 7은 본 발명의 실시 예에 따른 복호화기의 구조에 대한 일 예를 보이고 있다. 도 7에서 보이고 있는 복호화기의 일 예는 COBAC의 원리를 사용하는 부호화기에 대응한 복호화기의 구조를 보이고 있다. 그리고 도 7에서는 출력 신호로 다치 신호 (multi-level signal)의 경우를 가정하고 있다. 여기서 다치 신호는 부호화기에서의 입력 신호와 동일한 신호로 정의될 수 있다.
도 7을 참조하면, 문맥 (Context) 계산부(710)는 복호화를 통해 획득될 이진 신호의 발생 확률 등의 특성 정보를 압축 해제를 위한 상황을 고려하여 생성한다. 여기서 상기 특성 정보는 이진 신호를 구성하는 심볼들의 확률 값을 산출하기 위한 기준이 될 수 있다. 예컨대 상기 특성 정보는 심볼 별 확률 값과 MPS의 확률 값 중 적어도 하나가 될 수 있다. 상기 특성 정보는 이진 신호에 대한 분할에 의해 획득할 부분 문자열의 개수, 부분 문자열로 분할할 심볼 단위 등을 추가로 포함할 수 있다. 상기 부분 문자열로 분할할 심볼 단위는 입력되는 압축 문자 열을 구성하는 심볼들 중 한번의 분할을 위해 사용할 심볼의 개수를 의미한다.
한편 부호화기에 의해 압축 복원 정보가 제공되는 경우, 상기 문맥 계산부(710)는 필수 구성으로 요구되지 않을 수 있다. 즉 특성 정보를 대신하여 압축 복원 정보를 사용하여 압축 문자열을 분할하기 위한 필요한 정보를 획득할 수 있다.
상기 복호화부(720)는 입력되는 디지털 압축신호, 즉 무 손실 압축 기법을 사용하여 디지털 압축된 압축 문자 열을 압축 해제하여 이진 문자열을 출력한다. 상기 복호화부(720)는 디지털 압축신호의 복원을 위해 상기 문맥 계산부(710)로부터 제공되는 발생 확률 정보 등을 포함하는 특성 정보 또는 부호화 시에 생성된 압축 복원 정보를 고려한다.
보다 구체적으로, 상기 복호화부(720)는 입력되는 디지털 압축신호, 즉 압축 문자 열을 복수의 부분 압축 문자열로 분할한다. 이를 위해 상기 복호화부(720)는 다양한 심볼 변환 패턴 맵들을 가지거나 입수할 수 있으며, 상기 문맥 계산부(710)로부터 제공되는 발생 확률 등의 특성 정보 또는 부호화시 생성된 압축 복원 정보를 활용하여 상기 다양한 심볼 변환 패턴 맵 중 하나의 심볼 변환 패턴 맵을 선택한다. 상기 선택한 심볼 변환 패턴 맵은 상기 디지털 압축신호, 즉 압축 문저 열을 복수의 압축 부분 문자열로 분할하기 위해 사용된다.
한편 상기 복호화부(720)는 별도의 정보를 사용하여 압축 시에 남은 1 심볼 값을 식별할 수 있다. 예컨대 상기 남은 심볼 값을 식별하기 위한 정보는 압축 복원 정보에 포함될 수 있다.
상기 복호화부(720)는 앞서 획득한 복수의 압축 부분 문자열 각각을 소정의 무 손실 압축 기법에 상응한 무 손실 복원 기법을 사용하여 복원한 후 상기 복원된 복수의 부분 문자열을 연접 (concatenation)하여 하나의 이진 문자열로 출력한다.
또한 상기 복호화부(720)는 디지털 압축신호를 이진 신호로 복원함에 있어 압축 시에 생성된 압축 복원 정보를 고려할 수 있다. 그리고 상기 압축 복원 정보는 상기 디지털 압축 신호와 함께 저장될 수 있다. 예컨대 상기 압축 복원 정보는 이진 문자열을 구성하는 마지막 심볼의 압축 여부를 나타내는 식별 정보, 복수의 부분 문자열 중 적어도 하나의 부분 문자열의 길이에 관한 정보, 부분 문자열을 획득하기 위해 사용된 심볼 변환 패턴 맵을 나타내는 식별 정보, 압축을 위해 사용된 압축 기법을 나타내는 식별 정보 등이 될 수 있다.
다치화부(730)는 이진 신호를 입력으로 하고, 상기 이진 신호를 다치 신호로 변환한다. 상기 다치화부(2730에 의해 출력되는 다치 신호는 최종 복원된 신호로 출력된다.
도 8은 도 7에서의 복호화기(120)를 구성하는 복호화부(720)에 대한 구성의 일 예를 보이고 있다. 도 8에서는 하나의 압축 문자 열을 두 개의 압축 부분 문자 열로 분할하여 복원하는 것을 가정하고 있다. 하지만 하나의 압축 문자 열이 두 개보다 많은 개수의 압축 부분 문자열로 분할될 수 있다는 것은 당연할 것이다.
도 8을 참조하면, 압축 문자열 분할부(810)는 하나의 디지털 압출 신호
Figure 112011060571386-pat00003
와 이진 문자 열의 특성 정보 또는 압축 복원 정보를 입력으로 한다. 여기서 E는 엔트로피 압축 함수를 의미하고,
Figure 112011060571386-pat00004
은 연접을 의미한다.
상기 압축 문자열 분할부(810)는 상기 특성 정보 또는 압축 복원 정보를 기반으로 입력되는 디지털 압축 신호
Figure 112011060571386-pat00005
을 두 개의 압축 부분 문자열
Figure 112011060571386-pat00006
Figure 112011060571386-pat00007
로 분할한다.
예컨대 상기 특성 정보는 심볼 별 확률 값과 MPS의 확률 값 중 적어도 하나가 될 수 있다. 상기 특성 정보는 이진 문자열 B의 분할에 의해 획득할 부분 문자열의 개수, 부분 문자열로 분할할 심볼 단위 등을 추가로 포함할 수 있다. 상기 부분 문자열로 분할할 심볼 단위는 이진 문자열 B를 구성하는 심볼들 중 한번의 분할을 위해 사용할 심볼의 개수를 의미한다. 한편 상기 압축 복원 정보는 적어도 상기 특성 정보를 포함할 수 있다.
상기 압축 문자열 분할부(810)는 압축 부분 문자열을 획득하기 위해 상기 특정 정보 또는 압축 복원 정보에 의해 선택된 심볼 변환 패턴 맵을 사용한다. 따라서 상기 압축 문자열 분할부(810)는 입력되는 특정 정보 또는 압축 복원 정보에 상응하는 최적의 심볼 변환 패턴 맵을 선택하기 위해 다양한 심볼 변환 패턴 맵을 가지거나 외부로부터 제공받을 수 있어야 한다.
예컨대 도 8에서는 다양한 심볼 변환 패턴 맵을 저장하는 기록 매체(812)를 상기 압축 문자 분할부(810) 내에 구비한 경우를 가정하고 있다. 하지만 상기 압축 문자열 분할부(810)가 다양한 심볼 변환 패턴 맵을 가지고 있는 것이 아니라 외부의 기록 매체에 기록된 다양한 심볼 변환 패턴 맵으로부터 원하는 심볼 변환 패턴을 제공받을 수도 있음은 자명하다.
한편 상기 압축 문자열 분할부(810)는 디지털 압축 신호
Figure 112011060571386-pat00008
을 두 개의 압축 부분 문자열
Figure 112011060571386-pat00009
Figure 112011060571386-pat00010
로 분할할 때, 최종적으로 1 심볼이 남을 경우에 남은 1 심볼을 식별하기 위한 정보를 사용하여 구분할 수 있다. 이 경우 상기 압축 문자열 분할부(810)는 상기 남은 심볼 값을 식별하기 위해 상기 압축 복원 정보를 사용할 수 있다.
상기 분할된 두 개의 압축 부분 문자열 중 첫 번째 압축 부분 문자열
Figure 112011060571386-pat00011
은 엔트로피 복호화부 #1(820)로 입력되며, 상기 분할된 두 개의 압축 부분 문자열 중 두 번째 압축 부분 문자열
Figure 112011060571386-pat00012
은 엔트로피 복호화부 #2(830)로 입력된다.
상기 엔트로피 복호화부 #1(820)은 상기 압축 문자열 분할부(810)로부터 입력되는 첫 번째 압축 부분 문자열
Figure 112011060571386-pat00013
을 소정의 무 손실 압축 기법에 상응한 복호화 기법을 사용하여 해제하며, 상기 엔트로피 복호화부 #2(830)은 상기 압축 문자열 분할부(810)로부터 입력되는 두 번째 압축 부분 문자열
Figure 112011060571386-pat00014
을 소정의 무 손실 압축 기법에 상응한 복호화 기법을 사용하여 해제한다.
상기 엔트로피 복호화부 #1(820)와 상기 엔트로피 복호화부 #2(830)에서는 서로 동일한 무 손실 압축 기법에 상응한 복호화 기법을 사용하는 것이 바람직하다. 예컨대 상기 엔트로피 복호화부 #1(820)와 상기 엔트로피 복호화부 #2(830)에서 사용할 무 손실 압축 기법에 상응한 복호화 기법은 가변 길이 부호화의 일 예인 엔트로피 복호화 기법이 될 수 있다.
한편 상기 엔트로피 복호화부 #1(820)와 상기 엔트로피 복호화부 #2(830)는 입력되는 압축 부분 문자열에 대한 압축 해제를 수행하지 않을 수도 있다. 예컨대 압축을 위해 입력되는 이진 문자열 내에서 0과 1의 배열을 예측할 수 없거나 0과 1이 랜덤하게 배열되어 있어 0과 1의 비율이 비슷할 경우에는 압축으로 인한 정보 량의 축소 효과가 낮을 수 있다. 이 경우 부분 문자열에 대한 압축을 수행하지 않는 것이 유리할 수 있기 때문에 해당 압축 부분 문자열에 대해서는 복호화를 수행하지 않을 수 있다.
상기 엔트로피 복호화부 #1(820)와 상기 엔트로피 복호화부 #2(830)는 압축 해제의 선별적 적용을 위해 상황 별로 압축 여부를 결정하거나 사용할 복호화기를 선택하기 위한 판단을 수행할 수 있다. 예컨대 상기 엔트로피 복호화부 #1(820)와 상기 엔트로피 복호화부 #2(830)에서 사용할 복호화기로 BAC를 전제로 하고 있으나 허프만 코더를 사용하는 것도 가능하다.
상기 엔트로피 복호화부 #1(820)은 상기 첫 번째 압축 부분 문자열
Figure 112011060571386-pat00015
을 복호화하여 첫 번째 부분 문자열 T1을 출력하며, 상기 엔트로피 복호화부 #2(830)은 상기 두 번째 압축 부분 문자열
Figure 112011060571386-pat00016
을 복호화하여 두 번째 부분 문자열 T2를 출력한다.
상기 엔트로피 복호화부 #1(820)에 의해 출력되는 첫 번째 부분 문자열 T1과, 상기 엔트로피 부호화부 #2(830)에 의해 출력되는 두 번째 부분 문자열 T2는 부분 문자열 결합부(840)로 입력된다.
상기 부분 문자열 결합부(840)는 상기 첫 번째 부분 문자열 T1과 상기 두 번째 부분 문자열 T2를 연접하여 하나의 이진 문자열 B를 출력한다.
도 9는 본 발명의 실시 예에 따라 데이터를 복호화하기 위해 수행하는 제어 흐름을 보이고 있다. 도 9에서는 복호화를 통해 출력되는 데이터로 이진 데이터를 전제로 하고 있으나 복호화에 의해 최종적으로 얻고자 하는 신호가 다치 신호인 경우에는 다치 신호로 변환하는 단계를 추가로 구비할 필요가 있다.
도 9를 참조하면, 복호화 장치는 910단계에서 복원을 위한 압축 데이터 (디지털 압축 신호)를 입력으로 제공받는다. 이때 제공되는 디지털 압축 신호 또는 상기 디지털 압축 신호와 압축 복원 정보는 통신 망을 통해 전송되거나 직접 연결된 미디어 재생 장치로부터 제공되거나 DVD, 블루레이, 하드디스크 등의 정보 기록이 가능한 기록매체로부터 제공될 수 있다.
상기 복호화 장치는 912단계에서 상기 디지털 압축 신호를 분할하여 복수의 압축 부분 문자열을 생성한다. 이때 복수의 압축 부분 문자열의 생성을 위해 상기 복호화 장치는 심볼 변환 패턴 맵을 사용한다. 상기 복호화 장치는 복수의 압축 부분 문자열의 생성을 위해 다양한 심볼 변환 패턴 맵에서 최적의 심볼 변환 패턴 맵을 선택하여 사용할 수 있다.
예컨대 상기 복호화 장치는 최적의 심볼 변환 패턴 맵을 선택하기 위해 이진 문자열이 가지는 특성 정보를 고려할 수 있다. 여기서 특성 정보의 대표적인 예로는 심볼 확률 값이 될 수 있다. 상기 특성 정보는 상기 복호화 장치에 의해 획득되거나 부호화 장치로부터 압축 복원 정보로 제공받을 수 있다.
상기 복호화 장치는 복수의 압축 부분 문자열의 생성이 완료되면, 914단계에서 상기 생성된 압축 부분 문자열 별로 복호화를 수행한다. 상기 복호화를 위해 상기 복호화 장치는 무 소실 압축 기법에 상응한 복호화 기법을 사용할 수 있다. 이때 사용되는 무 손실 압축 기법에 상응한 복호화 기법은 엔트로피 복호화 기법으로 대표되는 가변 길이 복호화 기법이 될 수 있다.
상기 압축 부분 문자열 별로의 복호화에 의해 압축이 해제된 부분 문자열을 획득하면, 상기 복호화 장치는 916단계에서 상기 복수의 부분 문자열을 연접하여 하나의 이진 문자열을 생성한다. 그리고 상기 복호화 장치는 918단계에서 앞서 생성한 하나의 이진 문자열을 출력한다.
도 10은 본 발명의 실시 예에 따른 압축 부분 문자열을 생성하기 위한 제어 흐름을 보이고 있다. 도 10에서 보이고 있는 제어 흐름은 도 9에서의 912단계에 대응한 구체적인 동작의 일 예에 해당한다.
도 10을 참조하면, 복호화 장치는 1010단계에서 이진 문자열의 특성 정보를 생성한다. 여기서 특성 정보는 이진 신호를 구성하는 심볼들의 확률 값을 산출하기 위한 기준이 될 수 있다. 예컨대 상기 특성 정보는 심볼 별 확률 값과 MPS의 확률 값 중 적어도 하나가 될 수 있다. 상기 특성 정보는 이진 신호에 대한 분할에 의해 획득할 부분 문자열의 개수, 부분 문자열로 분할할 심볼 단위 등을 추가로 포함할 수 있다. 상기 부분 문자열로 분할할 심볼 단위는 입력되는 이진 문자열을 구성하는 심볼들 중 한번의 분할을 위해 사용할 심볼의 개수를 의미한다.
한편 복호화 장치는 상기 특성 정보를 부호화 장치에 의해 제공되거나 디지털 압축 신호와 함께 제공되는 압축 복원 정보로부터 획득할 수 있다.
상기 복호화 장치는 1012단계에서 자신이 가지고 있거나 접근이 가능한 이진 문자열의 특성 별 심볼 변환 패턴 맵들 중에서 상기 생성한 특성 정보에 대응한 심볼 변환 패턴 맵을 선택한다. 예컨대 이진 문자열에서의 MPS가 0인지 1인지에 따라 상응하는 심볼 변환 패턴 맵의 그룹을 선택하고, 생성할 부분 문자열의 수를 고려하여 상기 선택한 그룹 내의 심볼 변환 패턴 맵들 중 하나의 심볼 변환 패턴 맵을 선택한다.
상기 복호화 장치는 상기 심볼 변환 패턴 맵을 선택하면, 1014단계에서 상기 선택한 심볼 변환 패턴 맵을 사용하여 디지털 압축 신호를 분할하여 복수의 압축 부분 문자열을 생성한다. 상기 선택한 심볼 변환 패턴 맵을 사용하여 복수의 압축 부분 문자열을 생성하는 구체적인 동작은 앞서 이진 문자열을 복수의 부분 문자열로 분할하는 동작으로부터 용이하게 구현할 수 있다.
상기 복호화 장치는 1016단계에서 상기 생성된 복수의 압축 부분 문자열을 출력한다. 상기 출력되는 복수의 압축 부분 문자열 각각은 소정의 무 손실 압축 기법에 상응한 복호화 기법에 의해 압축이 해제된 후 연접되어 하나의 이진 문자열로 출력될 것이다.
한편 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형이 가능한 것은 물론이고, 이러한 변형 실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어 져서는 안 될 것이다.

Claims (17)

  1. 압축 문자 열에 대한 복호화 방법에 있어서,
    상기 압축 문자 열을 적어도 두 개의 압축 부분 문자 열로 분할하는 과정과,
    상기 압축 문자 열을 부호화하기 위해 사용된 가변 길이 부호화 기법에 상응하는 복호화 기법에 의해 상기 분할된 적어도 두 개의 압축 부분 문자 열 각각에 대한 복호를 수행하여 적어도 두 개의 부분 문자열을 출력하는 과정과,
    미리 설정된 복수의 심볼 변환 패턴 맵 중 이진 문자열의 특성에 상응하는 심볼 변환 패턴 맵을 선택하고, 상기 선택한 심볼 변환 패턴 맵을 사용하여 상기 적어도 두 개의 부분 문자열을 하나의 이진 문자열로 결합하는 과정을 포함하는 복호화 방법.
  2. 제1항에 있어서,
    상기 이진 문자열의 특성은 상기 압축 문자 열의 생성 시에 만들어진 압축 복원 정보에 의해 결정되며,
    상기 압축 복원 정보는 마지막 심볼 압축 여부를 나타내는 정보, 상기 적어도 두 개의 부분 문자열 중 첫 번째 부분 문자열을 압축한 길이, 상기 선택한 심볼 변환 패턴 맵의 종류를 나타내는 정보 및 상기 적어도 두 개의 부분 문자열들 각각을 압축하기 위해 사용한 가변 길이 부호화 기법의 종류를 나타내는 정보 중 적어도 하나를 포함하는 복호화 방법.
  3. 제1항에 있어서, 상기 결합하는 과정은,
    상기 적어도 두 개의 부분 문자열 중 첫 번째 부분 문자열을 구성하는 심볼들에서 복호 대상인 첫 번째 심볼 값이 1인 경우, 상기 적어도 두 개의 부분 문자열 중 나머지 부분 문자 열을 구성하는 심볼들에서 소정 개수의 복호 대상에 해당하는 심볼 값을 상기 1의 값을 가지는 첫 번째 심볼 값과 결합하여 출력하고,
    상기 적어도 두 개의 부분 문자열 중 첫 번째 부분 문자열을 구성하는 심볼들에서 복호 대상인 첫 번째 심볼 값이 0인 경우, 상기 0의 값을 가지는 첫 번째 심볼 값만을 출력함을 특징으로 하는 복호화 방법.
  4. 제1항에 있어서, 상기 결합하는 과정은,
    상기 적어도 두 개의 부분 문자열 중 첫 번째 부분 문자열을 구성하는 심볼들에서 복호 대상인 첫 번째 심볼 값이 0인 경우, 상기 적어도 두 개의 부분 문자열 중 나머지 부분 문자 열을 구성하는 심볼들에서 소정 개수의 복호 대상에 해당하는 심볼 값을 상기 0의 값을 가지는 첫 번째 심볼 값과 결합하여 출력하고,
    상기 적어도 두 개의 부분 문자열 중 첫 번째 부분 문자열을 구성하는 심볼들에서 복호 대상인 첫 번째 심볼 값이 1인 경우, 상기 1의 값을 가지는 첫 번째 심볼 값만을 출력함을 특징으로 하는 복호화 방법.
  5. 제1항에 있어서,
    상기 가변 길이 부호화 기법은 엔트로피 압축 기법임을 특징으로 하는 복호화 방법.
  6. 압축 문자 열에 대한 복호화 장치에 있어서,
    상기 압축 문자 열을 적어도 두 개의 압축 부분 문자 열로 분할하는 압축 문자 열 분할부와,
    상기 압축 문자 열을 부호화하기 위해 사용된 가변 길이 부호화 기법에 상응하는 복호화 기법에 의해 상기 분할된 적어도 두 개의 압축 부분 문자 열 각각에 대한 복호를 수행하여 적어도 두 개의 부분 문자열을 출력하는 엔트로피 복호화부와,
    미리 설정된 복수의 심볼 변환 패턴 맵 중 이진 문자열의 특성에 상응하는 심볼 변환 패턴 맵을 선택하고, 상기 선택한 심볼 변환 패턴 맵을 사용하여 상기 적어도 두 개의 부분 문자열을 하나의 이진 문자열로 결합하는 부분 문자열 결합부를 포함하는 복호화 장치.
  7. 제6항에 있어서,
    상기 이진 문자열의 특성은 상기 압축 문자 열의 생성 시에 만들어진 압축 복원 정보에 의해 결정되며,
    상기 압축 복원 정보는 마지막 심볼 압축 여부를 나타내는 정보, 상기 적어도 두 개의 부분 문자열 중 첫 번째 부분 문자열을 압축한 길이, 상기 선택한 심볼 변환 패턴 맵의 종류를 나타내는 정보 및 상기 적어도 두 개의 부분 문자열들 각각을 압축하기 위해 사용한 가변 길이 부호화 기법의 종류를 나타내는 정보 중 적어도 하나를 포함하는 복호화 장치.
  8. 제6항에 있어서, 상기 부분 문자열 결합부는,
    상기 적어도 두 개의 부분 문자열 중 첫 번째 부분 문자열을 구성하는 심볼들에서 복호 대상인 첫 번째 심볼 값이 1인 경우, 상기 적어도 두 개의 부분 문자열 중 나머지 부분 문자 열을 구성하는 심볼들에서 소정 개수의 복호 대상에 해당하는 심볼 값을 상기 1의 값을 가지는 첫 번째 심볼 값과 결합하여 출력하고,
    상기 적어도 두 개의 부분 문자열 중 첫 번째 부분 문자열을 구성하는 심볼들에서 복호 대상인 첫 번째 심볼 값이 0인 경우, 상기 0의 값을 가지는 첫 번째 심볼 값만을 출력함을 특징으로 하는 복호화 장치.
  9. 제6항에 있어서, 상기 부분 문자열 결합부는,
    상기 적어도 두 개의 부분 문자열 중 첫 번째 부분 문자열을 구성하는 심볼들에서 복호 대상인 첫 번째 심볼 값이 0인 경우, 상기 적어도 두 개의 부분 문자열 중 나머지 부분 문자 열을 구성하는 심볼들에서 소정 개수의 복호 대상에 해당하는 심볼 값을 상기 0의 값을 가지는 첫 번째 심볼 값과 결합하여 출력하고,
    상기 적어도 두 개의 부분 문자열 중 첫 번째 부분 문자열을 구성하는 심볼들에서 복호 대상인 첫 번째 심볼 값이 1인 경우, 상기 1의 값을 가지는 첫 번째 심볼 값만을 출력함을 특징으로 하는 복호화 장치.
  10. 데이터 압축장치에서의 부호화 방법에 있어서,
    이진 문자열의 특성 별로의 심볼 변환 패턴 맵을 저장하고, 상기 저장된 심볼 변환 패턴 맵 중 부호화를 위해 입력되는 이진 문자열의 특성에 상응하는 심볼 변환 패턴 맵을 선택하는 과정과,
    상기 선택한 심볼 변환 패턴 맵을 사용하여 상기 부호화를 위해 입력되는 이진 문자열을 적어도 두 개의 부분 문자열들로 분할하는 과정과,
    상기 적어도 두 개의 부분 문자열들 각각을 가변 길이 부호화 기법에 의해 압축하는 과정과,
    상기 압축에 의해 출력되는 적어도 두 개의 압축 부분 문자열들을 연접하여 하나의 압축 문자열을 출력하는 과정을 포함하는 부호화 방법.
  11. 제10항에 있어서,
    상기 부호화를 위해 입력되는 이진 문자열의 특성은 상기 입력되는 이진 문자열을 구성하는 심볼(MPS: Most Probable Symbol)의 확률값, 상기 부분 문자열들의 수, 상기 입력되는 이진 문자열을 구성하는 심볼의 수 중 적어도 하나를 고려하여 결정하는 부호화 방법.
  12. 제10항에 있어서, 상기 분할하는 과정은,
    상기 이진 문자열을 구성하는 심볼들로부터 미리 설정된 개수 단위로 순차적으로 선택하고, 상기 선택한 미리 설정된 개수의 심볼을 상기 선택한 심볼 변환 패턴 맵에 정의된 룰에 따라 상기 적어도 두 개의 부분 문자열들의 구성을 위해 분배하는 부호화 방법.
  13. 제10항에 있어서,
    상기 가변 길이 부호화 기법은 엔트로피 압축 기법이며, 마지막 심볼 압축 여부를 나타내는 정보, 상기 적어도 두 개의 부분 문자열들 중 첫 번째 부분 문자 열을 압축한 길이를 포함하는 압축 복원 정보를 생성하는 과정을 더 포함하며,
    여기서 상기 압축 복원 정보는 상기 선택한 심볼 변환 패턴 맵의 종류를 나타내는 정보와 상기 적어도 두 개의 부분 문자열들 각각을 압축하기 위해 사용한 가변 길이 부호화 기법의 종류를 나타내는 정보를 추가로 포함할 수 있음을 특징으로 하는 부호화 방법.
  14. 데이터 압축을 위한 부호화 장치에 있어서,
    이진 문자열의 특성 별로의 심볼 변환 패턴 맵을 저장하고, 상기 저장된 심볼 변환 패턴 맵 중 부호화를 위해 입력되는 이진 문자열의 특성에 상응하는 심볼 변환 패턴 맵을 선택하고, 상기 선택한 심볼 변환 패턴 맵을 사용하여 상기 부호화를 위해 입력되는 이진 문자열을 적어도 두 개의 부분 문자열들로 분할하는 이진 심볼 변환기와,
    상기 적어도 두 개의 부분 문자열들 각각을 가변 길이 부호화 기법에 의해 압축하는 이진 심볼 압축기와
    상기 압축에 의해 출력되는 적어도 두 개의 압축 부분 문자열들을 연접하여 하나의 압축 문자열을 출력하는 연접기를 포함하는 부호화 장치.
  15. 제14항에 있어서,
    상기 입력되는 이진 문자열을 구성하는 심볼(MPS: Most Probable Symbol)의 확률값, 상기 부분 문자열들의 수, 상기 입력되는 이진 문자열을 구성하는 심볼의 수 중 적어도 하나를 고려하여 상기 부호화를 위해 입력되는 이진 문자열의 특성 결정하는 문맥 계산부를 더 포함하는 부호화 장치.
  16. 제14항에 있어서, 상기 이진 심볼 변환기는,
    상기 이진 문자열을 구성하는 심볼들로부터 미리 설정된 개수 단위로 순차적으로 선택하고, 상기 선택한 미리 설정된 개수의 심볼을 상기 선택한 심볼 변환 패턴 맵에 정의된 룰에 따라 상기 적어도 두 개의 부분 문자열들의 구성을 위해 분배함을 특징으로 하는 부호화 장치.
  17. 제14항에 있어서,
    상기 가변 길이 부호화 기법은 엔트로피 압축 기법이고, 상기 이진 심볼 변환기는 마지막 심볼 압축 여부를 나타내는 정보, 상기 적어도 두 개의 부분 문자열들 중 첫 번째 부분 문자 열을 압축한 길이를 포함하는 압축 복원 정보를 생성하며,
    여기서 상기 압축 복원 정보는 상기 선택한 심볼 변환 패턴 맵의 종류를 나타내는 정보와 상기 적어도 두 개의 부분 문자열들 각각을 압축하기 위해 사용한 가변 길이 부호화 기법의 종류를 나타내는 정보를 추가로 포함할 수 있음을 특징으로 하는 부호화 장치.
KR1020110078032A 2011-08-05 2011-08-05 데이터 부호화/복호화 장치 및 방법 KR101256893B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110078032A KR101256893B1 (ko) 2011-08-05 2011-08-05 데이터 부호화/복호화 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110078032A KR101256893B1 (ko) 2011-08-05 2011-08-05 데이터 부호화/복호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20130015798A KR20130015798A (ko) 2013-02-14
KR101256893B1 true KR101256893B1 (ko) 2013-04-23

Family

ID=47895536

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110078032A KR101256893B1 (ko) 2011-08-05 2011-08-05 데이터 부호화/복호화 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101256893B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116723337B (zh) * 2023-08-10 2023-11-24 深圳市君兰电子有限公司 一种hdmi高清数据优化传输方法及系统
CN118079765B (zh) * 2024-04-25 2024-07-19 湘潭新云科技有限责任公司 多功能立式搅拌机智能操作控制系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030062341A (ko) * 2001-09-14 2003-07-23 가부시키가이샤 엔티티 도코모 부호화 방법, 복호 방법, 부호화 장치, 복호 장치, 화상처리 시스템, 부호화 프로그램 및 복호 프로그램
KR20040097518A (ko) * 2003-05-12 2004-11-18 엘지전자 주식회사 영상 데이터의 압축 방법 및 장치
US20090019071A1 (en) 2007-07-12 2009-01-15 Donald Martin Monro Blocking for combinatorial coding/decoding for electrical computers and digital data processing systems
KR20100067580A (ko) * 2008-12-11 2010-06-21 한국전자통신연구원 H.264 코덱의 무손실 영상 압축 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030062341A (ko) * 2001-09-14 2003-07-23 가부시키가이샤 엔티티 도코모 부호화 방법, 복호 방법, 부호화 장치, 복호 장치, 화상처리 시스템, 부호화 프로그램 및 복호 프로그램
KR20040097518A (ko) * 2003-05-12 2004-11-18 엘지전자 주식회사 영상 데이터의 압축 방법 및 장치
US20090019071A1 (en) 2007-07-12 2009-01-15 Donald Martin Monro Blocking for combinatorial coding/decoding for electrical computers and digital data processing systems
KR20100067580A (ko) * 2008-12-11 2010-06-21 한국전자통신연구원 H.264 코덱의 무손실 영상 압축 방법

Also Published As

Publication number Publication date
KR20130015798A (ko) 2013-02-14

Similar Documents

Publication Publication Date Title
KR101737294B1 (ko) 심볼 압축을 수반하는 데이터의 소스 코딩 및 디코딩을 위한 방법들 및 디바이스들
RU2637879C2 (ru) Кодирование и декодирование значащих коэффициентов в зависимости от параметра указанных значащих коэффициентов
JP5602440B2 (ja) ビットシーケンスを符号化するための方法及び装置
RU2417518C2 (ru) Эффективное кодирование и декодирование блоков преобразования
JP5027799B2 (ja) 符号化効率向上のためのパラメータの適応グループ化
KR100869657B1 (ko) 신호를 압축하는 장치 및 방법
Mahdi et al. Implementing a novel approach an convert audio compression to text coding via hybrid technique
JP2017507590A5 (ko)
US8237594B2 (en) Encoding apparatus, decoding apparatus, information processing system, and computer-readable storage medium
JP5006990B2 (ja) 符号化方法、符号化装置、復号方法、復号装置、プログラム及び記録媒体
EP1258996A1 (en) Lossless encoding and decoding system
US9036711B1 (en) Visual data compression algorithm with parallel processing capability
WO2010144491A2 (en) Embedded graphics coding for images with sparse histograms
JP2013138422A (ja) 整数値データのストリームを圧縮するシステム及び方法
Rahmani et al. An efficient histogram-based index mapping mechanism for reversible data hiding in VQ-compressed images
JP3990464B2 (ja) ディジタルビデオ信号プロセッサのためのデータ効率のよい量子化テーブル
KR101256893B1 (ko) 데이터 부호화/복호화 장치 및 방법
CN101980464B (zh) 数据编码方法、解码方法、编码器和解码器
Ravi et al. A study of various Data Compression Techniques
Than et al. Secure Data Transmission in MP3 file using LSB and Echo Hiding
KR101268934B1 (ko) 데이터 압축/해제장치 및 방법
KR100686354B1 (ko) 가변 트리를 이용한 허프만 복호화 방법 및 장치
Mohamed Wireless Communication Systems: Compression and Decompression Algorithms
Manz Well Packed-Not a Bit Too Much
Kamatar et al. Two Phase Image Compression Algorithm Using Diagonal Pixels of Image Blocks

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160225

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170328

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180406

Year of fee payment: 6