KR20000069834A - 정보 처리 방법 및 장치 - Google Patents

정보 처리 방법 및 장치 Download PDF

Info

Publication number
KR20000069834A
KR20000069834A KR1019997006002A KR19997006002A KR20000069834A KR 20000069834 A KR20000069834 A KR 20000069834A KR 1019997006002 A KR1019997006002 A KR 1019997006002A KR 19997006002 A KR19997006002 A KR 19997006002A KR 20000069834 A KR20000069834 A KR 20000069834A
Authority
KR
South Korea
Prior art keywords
value
numbers
binary
message
bits
Prior art date
Application number
KR1019997006002A
Other languages
English (en)
Other versions
KR100375278B1 (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 클라스 노린, 쿨트 헬스트룀
Publication of KR20000069834A publication Critical patent/KR20000069834A/ko
Application granted granted Critical
Publication of KR100375278B1 publication Critical patent/KR100375278B1/ko

Links

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
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Automatic Analysis And Handling Materials Therefor (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Analogue/Digital Conversion (AREA)

Abstract

본 발명은 정보를 코딩 및 디코딩하는 방법 및 장치에 관한 것이다. 제1값(「0」) 또는 제2값(「1」)을 각각 가지는 제1 이진 숫자의 세트(Y)를 포함하는 메시지를 인코딩하는 방법은: 제1 비트의 세트(Y)를 수신하는 단계(S200)와; 제1 비트의 세트(Y)에 응답하여 제2 비트(ei, ei+1)의 세트(E)를 발생하는 단계(도 3B 및 도 3C의 S220-S370)와; 제2 세트(E)에서 제1 이진값을 가지는 비트의 수가 제1 세트(Y)에서 제1 이진값을 가지는 비트의 수보다 높게 되도록 제2 세트(E)에서 비트의 값(ei, ei+1)을 선택하는 단계를 포함한다.

Description

정보 처리 방법 및 장치{METHOD AND MEANS FOR HANDLING INFORMATION}
정보 처리시에, 메시지내의 기호가 특정 용도에 적합하게 되도록 정보를 반송하는 메시지를 변환하는 것이 바람직한 경우가 종종 있다. 메시지를 변환하는 개념은 종종 인코딩 또는 디코딩이라고 칭해진다. 정보를 처리하는 전자 장치는 공통적으로 정보를 저장하는 기억 유닛과 상기 정보를 기억 유닛으로부터 검색한 후에 디스플레이하는 디스플레이 유닛을 포함한다. 기억 유닛에 저장할 수 있는 정보의 양을 최대화하기 위한 목적으로 및/또는 기억 유닛의 크기를 최소화하기 위한 목적으로, 정보는 기억 유닛에 압축 상태로 저장될 수 있다.
미국 특허 제5,062,152호는 불균일한 확률 밀도의 진폭 범위를 가지는 아날로그 신호를 처리하는 방법을 개시하고 있다. 이 방법은 복수의 신호 레벨중 하나로 강하할 때 아날로그 신호를 양자화하는 단계와, 양자화 레벨의 발생 확률에 따라서 이진 코드 워드를 양자화 레벨에 할당하는 단계를 포함한다. 미국 특허 제5,062,152호에 개시되어 있는 방법에 따르면, 각 코드 워드는 8개의 이진 숫자를 포함하도록 미리 결정된다.
미국 특허 제5,488,616호는 인코딩 방법을 개시하고 있다. 미국 특허 제5,488,616호에 따르면, 기호들이 발생 확률을 각각 가지고 제공된다. 이 방법의 제1 단계는 각 기호의 발생 확률에 따라서 각 기호에 가변 길이 코드 워드를 할당하는 것이다. 이 단계는 허프만 코딩 방법을 사용한다. 그에 따라, 가변 길이 코드 워드가 2개의 다른 방식으로 코딩되어 제1 코드(C32) 및 제2 코드(C34)를 제공한다. 최종 단계에서, 이러한 코드(C32, C34)중 하나 또는 모두가 선택되어 가역 가변 길이 코드를 제공한다.
본 발명은 정보를 인코딩하는 방법 및 정보를 디코딩하는 방법에 관한 것이다. 본 발명은 또한 정보를 인코딩하는 장치 및 정보를 디코딩하는 장치에 관한 것이다.
도 1A는 인간의 언어 메시지내의 문자와 코드 기호 사이의 대응을 나타내는 표를 생성하는 방법을 도시하는 플로우차트.
도 1B는 변환표를 도시한 도면.
도 2는 본 발명의 일 실시예에 따라서 데이터를 압축하는 방법을 도시하는 플로우차트.
도 3A는 본 발명의 일 실시예에 따르는 유한 상태 머신의 세트를 도시하는 도면.
도 3B 및 도 3C는 도 2에 따르는 플로우차트내의 단계들을 상세하게 도시하는 플로우차트.
도 3D는 도 3A에 따르는 유한 상태 머신과 협력하여 작동하는 변환표의 예를 도시하는 도면.
도 3E는 비트 스트림의 예를 도시하는 도면.
도 4는 본 발명의 일 실시예에 따르는 데이터 압축 장치의 제1 실시예의 개략적인 블록도.
도 5는 도 4에 따르는 데이터 압축 장치에 사용하는 평가기의 개략적인 블록도.
도 6은 도 2에 관련하여 기재된 방법에 따라서 압축 및 저장되는 정보를 복구하는 수단을 포함하는 휴대용 전자 장치의 개략적인 블록도.
도 7은 본 발명의 일 실시예에 따르는 데이터 복구 장치를 도시하는 도면.
도 8은 본 발명의 일 실시예에 따르는 디코딩 방법을 도시하는 플로우차트.
도 9A 및 도 9B는 도 8에 따르는 플로우차트내의 단계들을 상세히 도시하는 플로우차트.
도 10은 아날로그 신호를 코딩 및 디코딩하는 유닛을 포함하는 통신 시스템의 개략적인 블록도.
부록 1은 제1 비트의 세트(Y)를 제2 비트의 세트(E)로의 변환용의 컴퓨터 프로그램 의사 코드를 도시한다.
부록 2는 비트 스트림(E)을 비트의 세트(Y)로의 변환용의 컴퓨터 프로그램 의사 코드를 도시한다.
본 발명이 역점을 두고 다루는 한가지 문제는 임의의 양의 정보를 저장하는데 필요한 기억 공간의 크기의 감소를 달성하는 것이다. 특히, 본 발명의 일 실시예는 본질적으로 최소의 기억 공간을 필요로 하는 정보 복구 프로그램에 의해 정보의 복구를 가능하게 하는 방식으로 정보의 압축을 달성하는 문제에 관한 것이다.
전술한 문제는 메시지내의 비트의 수를 감소시키는 방법에 의해 처리되며, 상기 방법은 복수의 문자를 포함하는 적어도 하나의 메시지를 수신하는 단계와; 감소된 비트의 수를 가지는 압축된 메시지가 발생되게 하기 위해 미리 정해진 허프만 코딩 방법에 따라서 메시지를 인코딩하는 단계를 포함한다. 압축 효과를 향상시키기 위해, 허프만 코딩 방법에는 각 문자에 대하여 적어도 하나의 메시지내의 문자의 상대적인 빈도수를 나타내는 값을 계산하는 단계와; 가장 높은 상대적인 빈도수를 가지는 문자에 복수의 이진 숫자를 포함하는 제1 이진 코딩된 코드 워드를 할당하는 단계가 우선한다. 예를 들어, 수신된 문자가 8 비트 워드로서 코딩된 경우, 및 수신된 메시지내에 단지 64개의 다른 문자가 존재하는 경우, 기호로 6 비트의 워드 길이를 사용하는 것으로 충분하다.
제1 이진 코딩된 코드 기호내의 모든 또는 대부분의 이진 숫자는 예컨대, 모든 비트가 0으로 설정될 수 있는 제1 이진값으로 선택된다. 특정 기호가 제1 인코딩된 메시지를 발생하기 위해 각 특정 나머지 문자에 할당된다. 각 기호내의 이진 숫자는 제1 이진값을 가지는 숫자의 수가 제1 인코딩된 메시지내에서 최소화되도록 선택된다.
제1 인코딩된 메시지는 제2 이진 숫자의 세트가 발생되도록 더 처리되고, 더 처리하는 것은 제2 세트내의 제1 이진값을 가지는 숫자의 수가 제1 세트내의 제1 이진값을 가지는 숫자의 수보다 크게 되도록 제2 숫자의 세트에서 숫자를 선택하는 단계를 포함한다.
바람직한 실시예에 따르면, 더 처리하는 것은 제2 숫자의 세트를 연속적으로 발생하는데 적합하므로, 제2 숫자의 세트내의 비트의 열은 무기억 베르누이 소스의 출력과 유사하다. 또 다른 실시예에 따르면, 더 처리하는 것은 제2 숫자의 세트를 발생하는데 적합하므로, 제2 숫자의 세트내의 비트의 열의 엔트로피가 무기억 베르누이 소스의 엔트로피와 근접하게 되고; 제2 숫자의 세트내의 비트의 열의 분포가 제1 인코딩된 메시지내의 비트의 분포와 실질적으로 무관하게 된다.
본 발명이 가리키는 문제는 변환된 메시지가 효율적인 압축에 적합하게 되는 방식으로 메시지를 변환하는 방법을 제공하는 것이다. 이러한 문제는 청구항 5에 따르는 방법에 의해, 청구항 35에 따르는 장치에 의해, 그리고 청구항 48에 따르는 컴퓨터 프로그램 제품에 의해 처리된다.
본 발명은 또한 예컨대, 무선 링크를 통해 메시지를 송신할 때 최소의 대역폭, 또는 최소의 전력이 필요하게 되도록 메시지를 인코딩하는 문제에 관한 것이다. 이 문제는 청구항 1, 청구항 17 및 청구항 39에 의해 처리된다.
본 발명의 일 실시예는 인코딩된 메시지로부터 ASCII 코딩된 텍스트와 같은 정보를 복구하는 문제에 관한 것이다. 이 문제는 청구항 24, 청구항 31, 청구항 43 및 청구항 51에 따르는 방법 및 장치에 의해 처리된다.
본 발명의 일 실시예는 예컨대, 무선 링크를 통해 아날로그 신호를 송신하는데 최소의 대역폭, 또는 최소의 전력이 필요하게 되도록 아날로그 신호를 인코딩하는 문제에 관한 것이다. 이 문제는 청구항 15에 따르는 방법에 의해 처리된다.
본 발명의 일 실시예는 필요한 기억 공간을 최소로 유지하면서 텍스트 메시지를 복수의 언어로 디스플레이할 수 있는 장치를 제공하는 문제에 관한 것이다. 이 문제는 청구항 43에 따르는 장치에 의해 처리된다.
본 발명은 또한 변환된 정보가 효율적인 압축에 적합하도록 정보를 변환하는 장치를 제공하는 문제에 관한 것이다. 이 문제는 청구항 35에 따르는 장치에 의해 처리된다.
본 발명은 또한 본질적으로 최소의 기억 공간을 필요로 하는 정보 복구 프로그램을 제공하는 문제에 관한 것이다. 정보 복구 프로그램의 용도는 압축된 메시지로부터 ASCII 코딩된 텍스트와 같은 정보를 복구하는 것이다. 이 문제는 청구항 51에 따르는 컴퓨터 프로그램 제품에 의해 처리된다.
본 발명의 바람직한 실시예는 정보 내용이 최소수의 이진 숫자(비트)로 표시되도록 메시지를 코딩 방법에 관한 것이다. 바람직한 코딩 방법은 이하의 3개의 주요 단계에 의해 달성된다.
제1 단계에서는, 수신된 메시지의 각 문자가 해밍 기호로 변환된다. 이 단계는 메시지내에 값 1을 갖는 비트의 수의 감소를 초래한다. 또한, 정보를 나타내는데 필요한 비트의 수가 감소된다.
제2 단계에서는, 해밍 기호가 평가 공정에 따르는 제1 비트 스트림(Y)으로 변환됨으로써, 제2 비트 스트림(E)이 발생된다. 평가 공정은 제1 비트 스트림(Y)에서 보다 제1 비트 스트림(E)에서 값 0을 가지는 비트의 비율이 높아지게 한다. 또한, 제2 비트 스트림(E)내의 비트의 열은 무기억 베르누이 소스의 출력과 유사하다. 값 1을 가지는 비트의 수가 매우 낮기 때문에, 그리고 제2 비트 스트림(E)내의 비트의 열이 무기억 베르누이 소스의 출력과 유사하기 때문에, 성공적인 허프만 코딩을 위한 조건은 제2 비트 스트림(E)에서 최적화된다.
제3 단계에서는, 제2 비트 스트림(E)이 허프만 코딩 방법에 의해 압축됨으로써, 압축된 비트의 세트(C)가 발생된다. 이 단계는 제2 비트 스트림(E)이 허프만 코딩을 위한 최적 조건을 제공하기 때문에, 정보를 나타내는데 필요한 비트의 수의 거리 감소를 초래한다.
본 발명을 잘 이해하기 위해, 본 발명은 이제 첨부하는 도면을 참고하여 실시예에 의해 설명된다.
인간의 언어는 임의의 수의 워드를 포함하고, 이들 워드중 일부는 다른 워드보다 더 자주 사용된다. 각 워드는 특정 문자의 조합으로, 또는 종종 하나의 문자만으로 표시될 수 있다. 이것은 일부 문자가 어느 특정 언어에서는 다른 문자보다 더 자주 사용되는 것을 의미한다. 이동 전화와 같은 전자 장치에 있어서, 임의의 수의 소정 메시지가 저장되어 있으며, 각각의 메시지는 임의의 사건에 응답하여 이동 전화의 디스플레이 유닛상에 디스플레이된다. 일반적으로, 이 메시지들은 판독 전용 기억에 저장된다. 메시지를 디스플레이하기 위해, 대응하는 데이터가 기억 유닛으로부터 판독되어 각 문자에 대해 대응하는 ASCII 코드가 디스플레이 유닛에 송달되고, 이에 응답하여 선택된 메시지를 구성하는 ASCII 코드의 조합을 디스플레이한다.
전술한 바와 같이, 일부 문자는 특정 인간의 언어에서 또는 특정 메시지의 소정의 세트에서 다른 문자보다 높은 상대적인 빈도수를 가진다. 본 발명은 소정의 언어에서 정보를 나타내는데 필요한 비트의 수를 감소시키는 방법 및/또는 임의의 언어에서 소정의 메시지 세트를 나타내는데 필요한 비트의 수를 감소시키는 방법에 관한 것이다.
변환표를 생성하는 방법
도 1A는 선택된 유형의 메시지의 총 해밍 웨이트가 최소화되도록 선택된 메시지의 세트내의 문자, 또는 선택된 언어내의 문자가 코드 기호로 변환될 수 있게 하기 위해 변환표를 얻는 방법을 도시하는 플로우차트이다.
기호는 하나 또는 복수의 성분을 포함할 수 있다. 바람직한 실시예에 따르면, 각 코드 기호는 이진 숫자의 조합이다.
해밍 웨이트는 값 「1」을 가지는 숫자의 수가 최소화될 때 최소화된다. 모든 문자들을 대응하는 해밍 기호로 변환함으로써, 2개의 중요한 목적이 달성된다. 제1 목적은 각 문자에 대해 웨이트를 할당하는 것이다. 후술되는 바와 같이, 더 낮은 해밍 웨이트는 기호의 더 큰 압축성을 유도함으로써, 기호를 저장하는데 필요한 기억 공간과 해밍 웨이트간의 링크를 제공한다. 둘째로, 후술되는 방식의 해밍 기호로의 변환은 메시지내의 2개의 연속적인 문자 사이의 웨이트 차이를 감소시킨다. 다른 워드에 있어서는, 제1 기호와 비교하여 제2 기호에서 다른 숫자 위치의 수가 감소된다.
도 1A를 참조하면, 제1 단계(S10)에서는 인간의 언어를 선택한다. 선택된 인간의 언어는 메시지를 구성하기 위해 문자를 사용하는 예컨대, 영어, 불어, 스웨덴어 또는 임의의 다른 인간의 언어일 수 있다. 선택된 언어의 명칭으로 변수가 할당되고, 이 언어 식별 변수는 생성될 표를 식별하기 위해 보존된다.
단계 S20에서는, 전체 메시지 세트가 수신된다. 전체 메시지 세트내의 문자의 수는 예컨대, 2500일 수 있다. 본 발명의 일 실시예에 따르면, 각 문자는 8 비트로 구성된다.
단계 S30에서는, 서로 다른 문자들의 수가 카운트되어, 카운트 값에 변수(r)가 할당된다. 일반적인 알파벳에서는, 서로 다른 문자의 수는 예컨대, 64일 수 있다.
단계 S40에서는, 각 문자에 대한 상대적인 빈도수가 계산되고, 단계 S50에서는, 문자들이 상대적인 빈도수를 감소시키기 위해 저장된다. 다른 워드에 있어서는, 가장 일반적으로 사용되는 문자가 목록내에 먼저 배치되고 가장 드물게 사용되는 문자가 목록내에 최종적으로 배치된다. 그러한 목록의 예가 도 1B에 도시되어 있다. 도 1B에는 복수의 기억 위치(20)를 가지는 기억 유닛(10)이 도시되어 있다. 각 기억 위치는 예컨대, 8 비트를 포함할 수 있다. 제1 기억 위치에는 목록/표가 영어 메시지의 세트에 사용되는 문자를 포함하는지를 식별하는 예컨대, 문자(E)일 수 있는 언어 식별 변수가 제공된다. 목록내의 제2 기억 위치는 이 특정 목록내에 저장되는 문자의 수를 나타낸다. 이 예에서, 다른 문자들의 수는 64이다. 제3 기억 위치는 가장 높은 상대적인 빈도수(p1)를 가지는 문자에 대한 ASCII 코드를 포함한다. 이 예에서, 가장 자주 사용되는 문자는 「H」이다. 제4 기억 위치에는 두번째로 높은 상대적인 빈도수(p2)를 가지는 문자(이 예에서는 「G」)가 저장된다. 이러한 방식으로, 64개의 다른 문자들이 목록내에 배치되므로, 가장 낮은 상대적인 빈도수(p64)를 가지는 문자는 목록내에서 최종 위치에 배치된다.
단계 S60에서는, 영(0)만을 가지는 기호가 가장 높은 상대적인 빈도수(p1)를 가지는 문자에 할당된다. 도 1B에 도시되어 있는 예에서는, 64개의 다른 문자들만 포함하는 선택된 메시지의 세트와 그에 따라 제1 문자에 할당되는 기호는 6개의 숫자를 포함하는 기호이고, 이 모두는 0이다. 본 발명에 따르면, 본 명세서에서 해밍 기호라고 칭해지는 해밍 웨이트가 증가하는 기호의 리스트가 생성된다. 해밍 기호는 목록내의 문자에 할당되므로, 가장 높은 상대적인 빈도수(p1)를 가지는 문자에 가장 낮은 해밍 웨이트를 가지는 해밍 기호가 할당된다. 가장 낮은 상대적인 빈도수(p64)를 가지는 문자에는 어떠한 다른 해밍 기호보다 낮지 않은 해밍 웨이트를 가지는 해밍 기호가 할당된다. 그러나, 제1 해밍 기호가 모두 0인 6개의 숫자를 가지는 기호라는 지식을 이용하여, 많아야 한 단계 높은 웨이트인 웨이트를 가지는 후속 해밍 기호를 계산할 수 있다. 그러므로, 본 발명에 따르면, 실제로 해밍 기호의 전체 목록을 저장할 필요가 없다. 그 대신에, 해밍 기호내에 있게 될 숫자가 얼마나 많은지를 식별하는 것으로 충분하다. 해밍 기호내에 필요한 숫자의 수는 문자의 수의 지식을 가지고 계산될 수 있기 때문에, 0만을 포함하는 제1 해밍 기호로부터 시작하여 후속 해밍 기호를 계산하는 소정의 방식을 가지는 것만이 필요하다.
단계 S70에서는, 대응의 표가 생성되고, 이 표는 후술되는 바와 같이, 저장하기 위한 기억 유닛으로 송달된다. 해밍 기호는 실제로 저장될 필요가 없기 때문에, 대응의 목록은 목록의 명칭을 나타내는 변수, 목록내의 문자의 수를 나타내는 도형(figure) 및 상대적인 빈도수를 감소시키는 순서의 문자를 포함하는 것만이 필요하다. 이러한 최소량의 정보를 사용하면, 대응의 표를 생성하는데만 필요한 정보인 각 문자에 할당되는 각 헤밍 기호의 값을 계산할 수 있다. 따라서, 문자들 및 제어 워드(문자의 수를 나타내는 도형)의 목록을 저장하는 것만 필요하기 때문에, 대응 표에 대해서 매우 소량의 기억 공간이 필요하게 된다.
메시지를 변환하는 방법
도 2는 비트 스트림이 최소수의 숫자를 가지게 하기 위해, 메시지를 비트 스트림으로 변환하는 방법을 도시하는 플로우차트이다.
이 방법의 일 실시예의 제1 단계(S100)에 따르면, 복수의 문자(X)를 포함하는 메시지(ML)가 비트 스트림(Y)으로 변환된다. 이것은 메시지(ML)를 수신하여(단계 S110) 도 1B 및 도 1A와 관련하여 전술한 바와 같은 표를 사용하여 각 문자(X)를 대응하는 기호(H)로 변환함으로써 달성된다. 단계 S120에 따르면, 상기 메시지내의 연속적인 문자들이 기호로 연속적으로 변환되므로, 기호(H)의 스트림이 제공된다. 상기 방법의 후속 단계(S130)에 따르면, 발생된 기호(H)는 비트 스트림으로서 송달된다.
단계 S140에 따르면, 비트 스트림(Y)은 수신된 비트 스트림을 제2 비트 스트림(E)으로 변환하는 평가기에 제공된다. 단계 S140의 목적은 단계 S130에 의해 생성된 비트 스트림에 응답하여 대부분 영(0)으로 이루어진 제2 비트 스트림(E)을 제공하는 것이다. 단계 S140의 다른 목적은 독립적이고 동일하게 분포되는 확률 변수(random variable)에 가능한 한 가까운 숫자를 가지는 제2 비트 스트림(E)을 제공하는 것이다. 단계 S140은 이하 도 3을 참조하여 더욱 상세히 설명된다.
단계 S150에 따르면, 단계 S140에서 생성된 제2 비트 스트림이 압축 알고리즘에 따라서 압축된다. 본 발명의 일 실시예에 따르면, 사용되는 압축 알고리즘은 허프만 코딩 방법이다. 허프만 코딩 방법에 대한 더욱 상세한 정보에 대해서는, 문헌 D.A. Huffman. "A method for the construction of minimum redundancy codes." Proc. IRE, 40:1098-1101, 1952를 참조하라.
압축 단계(S150)는 제2 비트 스트림보다 더 적은 숫자를 가지는 제3 비트 스트림(C)을 발생한다. 실제로, 전술한 바와 같은 방법은 영어에서의 메시지(ME)를 고유 비트수의 대략 57.8%로 감소시킨다. 이러한 도형은 영어에서의 고유 메시지가 2323 바이트의 크기를 요구하는 셀룰러폰에 대한 전체 상태 메시지의 세트에 대해 달성되었다. 0.578의 압축비는 문자들을 대응하는 해밍 기호로 변환하는데 사용되는 변환표를 포함한다. 이것은 메시지가 검색되는 수신단에서 변환표가 유용하다고 가정하면, 메시지의 실제 압축비가 더욱 양호하다는 것을 의미한다.
단계 S160에 따르면, 단계 S150에 의해 발생된 제3 비트 스트림이 기억 장치내에 저장된다. 다른 방법으로는, 단계 S150에 의해 제공된 제3 비트 스트림은 또 다른 전자 장치에 전송하기 위해 출력에 송달된다.
본 발명에 따르면, 이점이 있는 압축비가 상기 방식으로 달성된다. 그러므로, 상기 정보 변환 방법은 변환된 메시지가 고유 메시지보다 작은 기억 공간을 필요로 하기 때문에, 기억 장치내에 메시지를 저장하기 전에 메시지를 압축된 비트 스트림으로 변환하는데 적합하다. 이하의 표에서는, 11개의 다른 언어에서의 텍스트 메시지의 예가 제공되고, 메시지가 압축될 때 대응하는 압축비를 얻었다. 압축비는 압축된 메시지의 크기+변환표의 크기/고유 메시지의 세트의 크기로서 계산된다.
언어 고유 크기 압축비
영어 2323 0.578
독일어 2638 0.571
포르투갈어 2543 0.569
스페인어 2494 0.581
이탈리아어 2620 0.569
노르웨이어 2376 0.576
네덜란드어 2665 0.571
덴마크어 2345 0.577
핀란드어 2497 0.576
프랑스어 2557 0.582
스웨덴어 2471 0.589
상기 예로부터(표 1 참조) 압축비가 고유 메시지에 사용되는 언어에 거의 무관하다는 것은 명백하다.
단계 S140은 도 3A, 도 3B 및 도 3C를 참조하여 더욱 상세하게 설명된다. 도 3B 및 도 3C를 참조하여 설명되는 방법은 유한 상태 머신을 사용하기 때문에, 그러한 유한 상태 머신의 예가 도 3A에 도시된다. 본 발명의 바람직한 실시예에 따라서 단계 S140에 따르는 방법을 실행할 목적으로, k·2m의 다른 상태를 가지는 유한 상태 머신의 세트가 사용된다.
바람직한 실시예에 따르면, 파라미터 k 및 m은 k=6 및 m=10으로 선택된다. 파라미터 k는 일반적으로 바람직한 실시예에 따라 코딩되는 메시지에 사용되는 알파벳에 많아야 26개의 문자가 존재하기 때문에, 6으로 선택된다. 파라미터 m은 충분한 「히스토리(history)」를 제공할 만큼 충분히 크게, 그리고 각 상태에서 불충분한 통계를 가지는 문제를 방지할 만큼 작게 선택된다. 파라미터 m의 선택을 위한 또 다른 고려할 점은 도 5 및 도 3C를 참조하여 후술되는 바와 같이, 카운트값(V)을 산출하는 카운터에 대한 기억 유닛의 유용성에 의존하는 적절한 값으로 파라미터 m을 선택하는 것이다.
상기 방법의 기본 원리를 설명할 목적으로, 3·22개의 상태만을 가지는 유한 상태 머신의 세트는 도 3A에 도시되어 있다. 따라서, 도 3A에 도시되어 있는 유한 상태 머신의 세트는 k=3 및 m=2에 기초한다. m=2라는 사실은 도 3A에 도시되어 있는 바와 같이, 각 상태가 2개의 숫자로 한정되는 것을 의미한다. 도 3A에서 유한 상태 머신의 세트는 k=3이기 때문에, 3개의 다른 유한 상태 머신(110, 120, 130)으로 이루어진다. 도 3A에 도시되어 있는 각 원들은 유한 상태 머신(110, 120, 130)의 세트의 상태를 도시하고, 본 발명에 따르면, 유한 상태 머신의 세트의 각 상태에 제공되는 카운트값(V)이 존재한다. 이 방식으로, 도 3A에 따르는 유한 상태 머신의 세트는 총 12개의 다른 카운트값을 가지고, 그 각각은 후술되는 방법에 따라서 개별적으로 제어된다.
이하의 예에서는, 메시지의 세트가 도 1A와 관련하여 설명되는 방법에 따라서 분석됨으로써, 도 3D에 따라서 문자(X)와 기호(H) 사이의 대응표가 설정된 것으로 가정한다. 실제의 경우에는, 문자(X)는 예컨대, ASCII 코드로 도시되고, 문자의 목록은 목록내의 문자의 수를 나타내는 수에까지 도달하겠지만, 이 설명에서 간략하게 하기 위해 대응표는 알파벳과 3개의 숫자의 해밍 코드 사이의 직접적인 대응표로서 도시되어 있다. 도 3D에서의 목록은 8개의 문자를 상대적인 빈도수가 감소하는 순서로, 그리고 대응하는 해밍 기호를 해밍 웨이트가 증가하는 순서로 도시한다.
도 3B를 참조하면, 단계 S200은 도 3E에 도시되어 있는 비트 스트림과 같은 연속적인 비트 스트림 Y = y1, y2, y3, …,yn의 형태로 메시지를 수신하는 단계를 나타낸다. 후속 단계 S210에서는, 평가기가 입력 숫자 yi와 같은 첫번째 m 숫자에 대해 출력 숫자 ei를 산출한다.
후속 단계 S230에서는, 유한 상태 머신의 수 k가 설정된다. 환언하면, k개의 다른 유한 상태 머신을 포함하는 유한 상태 머신의 세트가 형성된다. 각 유한 상태 머신은 2m의 상태를 포함하고, 각 상태에 카운트값(V)이 존재한다. 단계 S230에서, 유한 상태 머신의 세트내의 모든 카운트값(V)은 0으로 설정된다.
유한 상태 머신은 M1, M2, ‥, Mj, ‥,Mk의 순서로 배열된다. 도 3B의 단계 S240을 참조하면, 후속 절차는 유한 상태 머신 Mj에서 개시하며, 여기에서 j=(m mod k)+1이다. 선택된 유한 상태 머신에서, 상태 S=(y1, y2, …, ym)이 먼저 선택된다.
선택된 상태에서, 값 V가 판독되고(단계 S250), 그 후(단계 S260) V>0인지를 검사한다. V>0인 경우, 예측값 Pi+1은 도 3B에서 박스 S270으로 표시된 바와 같이 1로 설정된다. V<0인 경우, 예측값 Pi+1은 도 3B에서 박스 S280으로 표시된 바와 같이 0으로 설정된다.
도 3B 및 도 3E를 참조하면, 후속 입력 숫자 yi+1이 판독되고(단계 S290), 출력값 ei+1이 yi+1과 pi+1모듈로 2를 가산함으로써 계산된다(단계 S300). 그러므로, 1+1 모듈로 2는 0과 같고, 1+0 모듈로 2는 1과 같으며, 0+1 모듈로 2는 1과 같다.
이어서, 단계 S310에서는, 숫자 yi+1의 값이 검사된다. yi+1=1인 경우, 선택된 유한 상태 머신에서 선택된 상태에서의 카운트값(V)은 도 3C에서 박스 S320내에 도시되어 있는 바와 같이, 1씩 증가된다, 즉 V:=V+1이다. yi+1=0인 경우, 선택된 유한 상태 머신에서 선택된 상태에서의 카운트값(V)은 도 3C에서 박스 S330내에 도시되어 있는 바와 같이, 1씩 감소된다, 즉 V:=V-1이다.
그 후, 단계 S340에서는, 후속 유한 상태 머신 Mj+1이 선택된다.
선택된 유한 상태 머신에서, 숫자값 yi+1로 표시되는 상태 및 이전의 상태(단계 S350)가 선택된다. 이것은 하나의 유한 상태 머신내에서 하나의 상태에서 다른 상태로 변화하는데 통상 사용되는 방식으로 달성된다. 예컨대, 도 3A를 참조하면, 제1 유한 상태 머신(110)에서 상태 「00」에서 개시하고 숫자 yi+1이 「1」일 때, 상태 「01」이 본 발명에 따라서 제2 유한 상태 머신(120)에서 선택된다. 현재 상태가 제2 유한 상태 머신(120)에서 상태 「01」이고 숫자 yi+1이 「1」일 때, 제3 유한 상태 머신(130)에서 상태 「11」로 변환된다. 현재의 유한 상태 머신이 최종(제k) 유한 상태 머신인 경우, 동일한 방식으로 제1 유한 상태 머신에서의 상태로 변환된다.
그 후, 인덱스값 i는 박스 S360으로 표시되어 있는 바와 같이, 1씩 증가된다. 그 후, 도 3C에서 단계 S370으로 표시되어 있는 바와 같이, 수신된 비트 스트림(Y)내에 어떠한 추가의 비트가 남아있는지를 제어하고, 대답이 「Yes」인 경우, 다시 단계 S250으로 진행하여 선택된 유한 상태 머신의 선택된 상태에서 카운트값(V)을 판독한다. 반면에, 이것이 메시지내의 최종 비트였던 경우, 상기 절차는 종료한다.
데이터 압축 장치
도 4를 참조하면, 데이터 압축 장치(200)의 제1 실시예의 블록도가 도시되어 있다. 데이터 압축 장치는 변환될 메시지의 문자를 수신하는 문자 입력(210)을 포함한다. 문자 입력(210)은 데이터 버스(230)에 의해 변환 유닛(220)에 결합된다. 데이터 버스는 본 발명의 일 실시예에 따라서 8개의 숫자 문자를 병렬로 전송할 수 있다. 본 발명의 다른 실시예에 따르면, 수신된 문자내의 숫자는 변환 유닛(220)에 직렬로 송달된다. 또한, 문자 입력(210)에서 수신될 문자는 다른 수의 숫자를 포함할 수 있다. 변환 유닛은 도 2에서 단계 S110 및 S120을 참조하여 전술한 방식으로 수신된 문자를 낮은 해밍 웨이트를 가지는 기호로 변환하도록 설정된다. 대응하는 문자보다 더 낮은 수의 숫자를 포함할 수 있는 결과적인 기호가 출력(234)으로부터 버스(240)를 통해 기호/비트 스트림 변환기(250)에 송달된다. 기호/비트 스트림 변환기(250)는 자체의 출력(252)에서 숫자 yi를 갖는 비트 스트림을 평가 유닛(260)의 입력(254)에 송달한다. 평가 유닛(260)의 용도는 메시지내의 정보 내용을 유지하면서 비트 스트림에서 값 「1」을 가지는 숫자의 수를 더욱 감소시키는 것이다. 평가 유닛(260)은 비트 스트림 Y=y1-yn의 수신에 응답하여 비트 스트림 E=e1-en을 산출하며, 여기에서 n은 평가 유닛(260)에 제공되는 비트 스트림내의 숫자의 수이다. 비트 스트림(E)은 평가 유닛(260)의 출력(262)에 송달된다. 비트 스트림(E)은 메시지내의 정보 내용을 유지하면서 비트 스트림내의 숫자의 수를 감소시키도록 설정된 압축 모듈(270)에 송달된다. 압축 모듈은 예컨대, 허프만 코딩 방법과 같은 압축 알고리즘에 따라서 작동한다. 바람직한 실시예에 따르면, 정적인 허프만 코드가 사용된다. 그러므로, 압축 모듈(270)은 비트 스트림 C=c1-cr을 산출하며, 여기에서 r<n이다. 압축된 비트 스트림(C)은 기억 유닛에 결합될 수 있는 비트 스트림 출력(280)에 송달되므로, 압축된 비트 스트림이 기억 유닛에 저장된다. 다른 방법으로는, 비트 스트림 출력(280)이 송신 유닛에 결합되므로, 압축된 비트 스트림(C)이 다른 전자 유닛에 송달된다. 메시지내의 비트의 수의 감소는 송신 채널에 대해 더 낮은 대역폭의 요구를 유도함으로써, 송신 효율을 증가시킨다.
도 5를 참조하면, 평가 유닛(260)이 더욱 상세히 설명되어 있다. 평가 유닛(260)은 비트 yi를 포함하는 비트 스트림(Y)을 수신하는 직렬 입력(300)을 가진다. 수신된 비트 yi는 제1 m 숫자를 직접 출력(320)에 스위치하도록 설정된 스위치 유닛(310)에 송달된다. 비트 스트림 입력(300)은 또한 모듈로 2 가산기(350)의 제1 입력(340)에 결합되고, 지연 유닛(355)을 통해 예측 유닛(330)에 결합된다. 지연 유닛(355)은 1 비트를 기억하므로, 비트 yi+1을 수신할 때 비트 yi를 송달한다. 예측 유닛(330)은 가산기(350)의 제2 입력(360)에 결합되는 출력을 가진다. 가산기(350)는 평가 유닛 출력(320)에 결합되는 출력을 가진다. 따라서, 평가기(260)는 도 3B 및 도 3C를 참조하여 전술된 방법을 실행하도록 설정된다.
전술한 방식으로, 예측 유닛(330)은 후속 비트 yi+1의 값의 예측 Pi+1을 행하도록 설정된다. 환언하면, 예측 유닛(330)은 h<i+1에 대해 히스토리값 yh에 대한 「추측」 pi+1에 기초하여 후속 비트 yi+1이 가지는 값이 무엇인지를 「추측」하도록 설정된다. 「히스토리」는 유한 상태 머신내의 카운트값에 의해 제공된다(도 3B의 S260-S280 참조). 도 5로부터, 예측이 정확한 경우, 모듈로 2 가산의 결과 ei+1은 0이라는 것을 알 수 있다.
상기 값 ei+1은 예측된 비트 값 pi+1과 실제 비트 값 yi+1사이의 해밍 거리를 나타낸다. 따라서, 2개의 연속적인 비트간의 해밍 거리 ei+1은 예측기가 정확한 예측을 행하는 경우, 0이다. 표 1을 참조하면, 본 발명에 따르는 방법은 유익한 압축비를 얻는다는 것이 상기로부터 명백하다. 이러한 유익한 결과의 원인중 하나는 전술한 예측 방법에 따르는 정확한 예측 pi+1이다.
후술되는 바와 같이, 도 9를 참조하면, 디코딩 방법은 미리 디코딩된 비트값 yi를 사용하여 후속 해밍 거리 ei+1의 예측을 나타내는 값 pi+1을 얻기 위한 「히스토리」와 동일한 형태의 예측을 행하는 것에 기초한다. 예측 디코딩 방법은 예측 코딩이 행하는 것과 동일한 형태의 예측을 사용하기 때문에, 디코딩의 결과는 정확한 비트 스트림(Y)으로 된다.
전자 데이터 처리 장치
도 6을 참조하면, 텍스트 메시지와 같은 정보의 디스플레이를 위한 디스플레이 유닛(410)을 포함하는 데이터 처리 장치(400)가 도시되어 있다. 데이터 처리 장치(400)는 불휘발성 기억 유닛(420), 마이크로프로세서(430) 및 판독/기록 기억 유닛(440)을 포함한다. 기억 유닛(420)은 데이터 처리 장치(400)의 정상 기능을 제어하기 위해 컴퓨터 프로그램이 저장되는 제1 기억부(450)를 가진다. 데이터 처리 장치는 예컨대, 이동 전화와 같은 휴대용 전자 장치일 수 있다. 기억 유닛(420)은 또한 메시지를 코딩 및/또는 디코딩하기 위한 프로그램이 저장되는 제2 기억부(460)를 가진다. 또 다른 실시예에서는, 메시지를 코딩 및/또는 디코딩하기 위한 프로그램이 별개의 불휘발성 기록 매체(462)에 저장된다. 상기 프로그램은 실행 가능한 방식으로 또는 압축된 상태로 저장될 수 있다.
이하에서, 마이크로프로세서(430)가 어떤 기능을 실행하는 것이 설명될 때, 이것은 마이크로프로세서가 기억 유닛(450)에 저장된 프로그램중의 어떤 부분을 실행하거나, 기록 매체(462)에 저장된 프로그램중의 어떤 부분을 실행하는 것으로 이해될 수 있다.
마이크로프로세서(430)는 데이터 버스(470)를 통해 디스플레이 유닛(410)에 결합된다. 데이터 처리 장치의 사용자에게는 디스플레이(410)상에 디스플레이되고 있는 문자에 의해 정보 메시지가 제공된다. 특정 메시지가 예컨대, 전자 장치내의 배터리 전압이 메시지 「배터리를 교체하시오(CHANGE BATTERY)」를 디스플레이하도록 마이크로프로세서에 촉구하는 임의의 전압보다 낮음을 마이크로프로세서가 결정하는 것과 같은 임의의 사건에 응답하여 디스플레이될 수 있다.
마이크로프로세서(430)는 데이터 버스(480)에 의해 기억 유닛(420)에 결합되고, 데이터 버스(490)에 의해 판독/기록 기억 유닛(440)에 결합된다. 마이크로프로세서(430)는 또한 데이터 버스(510)에 의해 데이터 포트(500)와 통신한다.
도 1A, 도 1B, 도 2, 도 3A 내지 도 3D를 참조하여 설명된 방법은 기억부(460)에 저장된 프로그램을 실행하는 마이크로프로세서로 마이크로프로세서(430)에 의해 실행될 수 있다. 도 1A를 참조하여 설명된 방법에 따라서 대응표를 생성하라는 명령에 응답하여, 마이크로프로세서는 데이터 포트(500)에서 메시지의 수신을 대기하도록 설정되고, 메시지가 데이터 포트(500)에서 수신될 때, 문자들은 판독/기록 기억 유닛(440)에 일시적으로 저장된다. 수신된 메시지 또는 수신된 메시지의 세트의 모든 문자들이 일시적으로 저장된 때, 마이크로프로세서는 다른 문자들의 수를 카운트하고 각 문자에 대한 상대적인 빈도수를 계산하도록 설정된다. 그 후, 마이크로프로세서(430)는 전술한 방식으로 다른 문자에 대해 코드 기호를 할당하도록 설정됨으로써, 대응표가 생성된다.
다른 방법으로는, 마이크로프로세서는 데이터 포트(500)를 통해 기존의 대응표를 수신하고 판독/기록 기억 유닛(440)에 그 대응표를 저장하도록 설정된다. 도 1B를 참조하여 설명된 바와 같이, 대응표는 임의의 수에서 시작하여 동일한 수의 문자들이 후속하는 목록으로 제한될 수 있다.
그 후, 마이크로프로세서는 도 3B를 참조하여 전술한 방법에 따라서, 수신된 메시지 또는 수신된 메시지의 세트를 감소된 숫자 비트 스트림(E)으로 변환하라는 명령에 응답할 수 있다. 메시지 또는 메시지의 세트가 비트 스트림으로 변환된 때, 이러한 비트 스트림은 기억 유닛(440)에 저장된다. 마이크로프로세서는 사용되는 기억 유닛을 작동시키는 가장 효율적인 방법에 의존하거나, 다른 하드웨어를 고려하여, 비트 스트림(E)을 한 비트씩 저장하도록 설정 또는 예컨대, 8 비트 워드로 분류될 수 있다.
부록 1은 메시지 세트(Y)를 비트 스트림(E)으로의 변환용의 컴퓨터 프로그램 의사 코드를 도시한다. 그러한 의사 코드는 도 2의 단계 S140 및 도 3B 및 도 3C에 설명되어 있는 방법에 대응한다.
데이터 복구 장치
도 7을 참조하면, 데이터 복구 장치(600)의 제1 실시예의 블록도가 도시되어 있다. 데이터 복구 장치는 다수의 숫자 ci로 이루어진 압축된 비트 스트림(C)을 수신하는 입력(610)을 포함한다. 입력(610)은 정보 내용을 유지하면서 비트 스트림(C)을 더 긴 비트 스트림(E)으로 확장하도록 배치되는 압축 해제 모듈(620)에 결합된다. 압축 해제 모듈(620)은 정적인 허프만 코드에 따라서 디코딩을 실행하도록 설정될 수 있다.
압축 해제 모듈(620)은 확장된 비트 스트림(E)을 전술한 평가기(260)의 역기능을 실행하도록 설정된 변환 유닛(630)의 입력(622)에 송달한다. 그러므로, 변환 유닛(630)은 다수의 기호(H)를 직렬로 포함하는 비트 스트림(Y)을 송달한다. 이러한 목적을 달성하기 위해, 평가기(260)는 도 5의 스위치(310)로서 기능하는 스위치(632)를 포함한다. 지연 유닛(634)은 도 5의 유닛(355)과 유사하게 비트 yi+1의 수신시에 비트 yi를 송달하고, 예측 유닛(635)은 수신한 「히스토리」값 yi에 응답하여 예측값 pi+1을 발생한다. 반면에, 인코더(260)내의 예측 유닛(330)은 피드포워드 방식으로 결합되고, 디코더(630)내의 예측기(635)는 피드백 방식으로 결합되므로, 출력(Y)이 입력 비트 스트림(E)을 디코딩하기 위한 「히스토리」 데이터로서 사용된다.
변환 유닛(630)은 비트 스트림(Y)을 출력(638)에 송달하도록 설정된다. 변환기(640)는 비트 스트림을 기호로 변환하기 위해 출력(638)에 결합된다. 기호(H)는 데이터 버스를 통해 변환 유닛(650)의 입력(642)에 송달된다. 변환 유닛(650)은 기호(H)를 문자(X)로 변환하도록 작동함으로써, 고유 메시지가 복구된다. 문자(X)는 변환 유닛(650)으로부터 출력(660)에 송달된다. 포트(660)에 송달된 문자들은 예컨대, 8 비트 ASCII 코드일 수 있다.
메시지를 복구하는 방법
도 8은 본 발명의 일 실시예에 따라서, 압축된 비트 스트림(C)으로부터 메시지(M)를 복구하는 방법을 도시하는 플로우차트이다. 제1 단계(S600)에 따르면, 압축된 비트 스트림(C)이 수신된다. 비트 스트림(C)은 허프만 디코딩 방법과 같은 공지된 디코딩/확장 방법을 사용하여 비트 스트림(E)으로 확장된다(단계 S610). 그 후, 비트 스트림(E)은 도 3B 및 도 3C를 참조하여 설명된 방법을 역으로 실행함으로써, 비트 스트림(Y)으로 변환된다(S620).
그 후, 비트 스트림(Y)은 문자(X)로 변환됨으로써, 고유 메시지(M)가 복구된다(단계 S630). 이것은 비트 스트림(Y)을 기호(H)로 제산한 후(S640), 각 기호(H)를 대응하는 문자(X)로 변환함으로써(S650) 달성된다. 기호(H)의 문자(X)로의 변환은 압축된 비트 스트림(C)에 또한 포함되는 대응표를 사용하여 실행된다. 다른 방법으로는, 변환표가 미리 제공되고, 압축된 비트 스트림(C)이 메시지로 변환되는 정보만을 포함한다. 기호/문자 변환 단계의 제3 실시예에 따르면, 압축된 비트 스트림은 문자들의 목록 및 메시지내의 다른 문자의 수를 나타내는 수만을 포함한다. 정보표를 얻기 위해, 마이크로프로세서(430)(도 6 참조)와 같은 마이크로프로세서는 기억부(460)(도 6)에 저장되는 프로그램에 제공될 수 있는 소정의 알고리즘에 따라서 각 문자(X)에 대응하는 기호(H)를 계산하도록 설정될 수 있다.
기호(H)가 문자(X)로 변환될 때, 결과적인 메시지가 송달된다.
도 6을 참조하면, 압축된 비트 스트림(C)은 불휘발성 기억 유닛(420)내의 기억부(700)에 제공될 수 있다. 메시지 표시 명령에 응답하여, 마이크로프로세서(430)는 기억부(450)에 저장된 프로그램을 사용하여 기억 유닛(450)의 프로그램부(710)에 저장된 데이터 복구 프로그램을 압축 해제하기 위해 표준 확장 알고리즘을 사용할 수 있다. 따라서, 기억부(710)에 저장된 프로그램 코드가 확장되어 기억 유닛(440)의 기억부(720)에 배치된다. 전술한 바와 같이, 기억 유닛(440)은 랜덤 액세스 기억 유닛(RAM)일 수 있다. 그 후, 마이크로프로세서는 기억부(720)로부터 데이터 복구 프로그램을 실행함으로써 지속한다. 데이터 복구 프로그램의 실행은 불휘발성 기억 유닛(420)내의 기억부(700)로부터 압축된 비트 스트림(C)을 판독하는 단계를 포함하고, 그 후 방법 단계들 S610, S620, S640 및 S650을 실행함으로써, 압축된 비트 스트림(C)이 메시지(M)를 구성하는 문자들(X)의 스트림으로 변환된다. 메시지(M) 또는 메시지의 부분들은 마이크로프로세서(430)에 의해 데이터 버스(470)를 통해 디스플레이 유닛(410)에 송달된다. 다른 방법으로는, 상기 환경에 의존하여, 메시지(M)가 데이터 버스(510)를 통해 데이터 포트(500)에 송달될 수 있다.
도 9A 및 도 9B를 참조하면, 비트 스트림(E)의 비트 스트림(Y)으로의 변환(도 8의 S620)이 실행되는 방법이 상세히 설명되어 있다. 도 9A 및 도 9B를 참조하여 설명된 방법은 본 명세서에서 예측 디코딩 방법이라 칭해지고, 도 3B 및 도 3C를 참조하여 전술된 방법은 본 명세서에서 예측 인코딩 방법이라 칭해진다. 예측 디코딩은 도 9에 따르는 플로우차트를 도 3B 및 도 3C에 따르는 플로우차트를 비교함으로써 명백해지는 바와 같이, 예측 인코딩과 동일한 방식으로 실행된다. 그러므로, 방법 단계 S700 내지 S870은 전술한 방법 단계 S200 내지 S370에 대응한다. 디코딩 및 인코딩의 차이는 인코딩 방법에서는 숫자 yi+1이 입력으로부터 판독되고(S290) 숫자 ei+1이 계산되는 반면에, 디코딩 방법에서는 그 역이 참이라는 것이다. 도 9B를 참조하면, 입력 숫자 ei+1이 판독되고, 출력 숫자 yi+1이 계산된다. 그러므로, 디코딩 방법의 단계 S810에서, 상기 값 yi+1에 대한 질의는 출력 숫자가 1 또는 0과 같은지의 질의에 관한 것인 반면에, 인코딩 방법에서의 단계 S310은 입력값 yi+1의 값의 질의에 관한 것이다.
부록 2는 비트 스트림(E)을 비트의 세트(Y)로의 변환용의 컴퓨터 프로그램 의사 코드를 도시한다. 이러한 의사 코드는 도 8의 단계 S620, 즉, 도 9A 및 도 9B를 참조하여 설명된 방법에 대응한다.
도 6을 참조하면, 기억부(710)내의 데이터 복구 프로그램은 인코딩 및 디코딩 방법간의 차이를 정의하는 프로그램 루틴으로 제한될 수 있다. 따라서, 한편으로 기억내에 디코딩 프로그램만을 저장하는 것과 다른 한편으로 디코딩 프로그램 뿐만 아니라 인코딩 프로그램을 저장하는 것 사이의 기억 공간의 사용에 있어 매우 작은 차이가 존재한다. 더욱이, 당업자라면 전술한 코딩 방법과 디코딩 방법은 프로그램 자체가 유리하게도 작은 크기의 기억 공간을 필요로 하는 매우 유리하게 수가 적고 수학적으로 복잡하지 않는 단계들을 필요로 함을 인식할 것이다. 그러므로, 본 발명에 따르는 디코딩 및/또는 인코딩 메시지용의 컴퓨터 프로그램은 프로그램 코드를 위한 기억 공간의 사용이 장치의 크기로 직접적으로 변환하는 휴대용 전자 장치에 특히 유리하다. 이동 전화에 있어서, 예컨대, 다수의 메시지가 기억에 저장될 필요가 있고, 각 전화는 바람직하게는 사용자에 의해 선택된 인간의 언어로 메시지를 생성하도록 설정 가능해야 한다. 따라서, 본 발명의 목적은 이동 전화내의 불휘발성 기억 유닛의 작은 크기의 기억 공간에 그러한 다수의 메시지 세트를 제공하는 것이다. 본 발명에 따르는 디코딩 프로그램은 그러한 작은 크기의 기억 공간을 필요로 하기 때문에, 모든 다른 언어 메시지가 코딩된 상태로 저장될 수 있고, 사용자가 메시지를 보기 원하는 언어를 선택할 때, 선택된 메시지의 세트는 전술한 방법에 따라서 디코딩된다. 예측 인코딩 및/또는 예측 디코딩 프로그램을 실행하는 동안, 다수의 카운트값 V는 이러한 프로그램의 실행 중에 일시적으로 기억될 필요가 있기 때문에, 최대 크기의 기억 공간이 사용된다. 각 카운트값에 대한 비트의 수를 c로 나타내면, 카운트값을 저장하는데 필요한 비트의 수는 k·2m이다. 바람직한 실시예에 따르면, c의 값은 2 또는 3과 동일하게 선택될 수 있다.
전술한 실시예에서는, 메시지의 해밍 웨이트가 압축하는데 적합한 인코딩 메시지를 제공할 목적으로 감소된다. 적합한 허프만 코드는 압축이 더 효율적일수록 압축될 메시지의 해밍 웨이트를 더 낮게 제공한다. 그러나, 다른 허프만 코드의 선택에 의해, 압축될 메시지의 해밍 웨이트가 더 높을수록 더 효율적인 압축이 달성된다. 따라서, 본 발명에 따르면, 문자의 코드 기호로의 변환은 인코딩 메시지의 해밍 웨이트가 최대로 되는 방식으로 달성될 수 있다. 이 경우에, 예측 인코딩 방법은 입력 비트 스트림(Y)의 해밍 웨이트보다 높은 해밍 웨이트를 가지는 비트 스트림(E)을 발생하도록 변경된다.
통신 네트워크
도 10은 무선 링크를 통해 통신하는 2개의 유닛(740, 750)을 포함하는 통신 네트워크(735)를 도시한다. 상기 유닛(740)은 아날로그 신호를 발생하는 마이크로폰(760) 및 아날로그 신호를 복수의 양자화 범위로 양자화하고 코드워드(H)를 양자화 범위에 할당하는 변환 유닛(770)을 포함한다.
그러므로, 아날로그 신호를 수신할 때, 변환 유닛(770)은 코드워드(H)의 열을 비트 스트림(Y)의 형태로 송달한다. 바람직한 실시예에 따르면, 비트 스트림(Y)은 앞에서 상세히 설명된 형태의 평가 유닛(260)에 송달된다. 평가 유닛의 출력(E)은 또한 전술한 바와 같이 작동하는 압축 모듈(270)에 송달된다. 압축 모듈(270)에 의해 송달되는 압축된 비트 스트림(C)은 송수신기(780)에 송달된다. 송수신기(780)는 상기 유닛(750)과 통신하기 위한 통신부(790) 예컨대, 안테나를 포함한다.
상기 유닛(750)은 신호를 수신 및 송달하기 위해 송수신기(810)에 결합되는 통신부(800) 예컨대, 안테나를 포함한다. 송수신기(810)는 전술한 형태의 압축 해제 모듈(620)에 결합되어 압축된 비트 스트림(C)을 압축 해제된 비트 스트림(E)으로 변환한다. 압축 해제된 비트 스트림(E)은 도 7과 관련하여 전술한 형태의 디코더(630)에 송달된다. 디코더(630)의 출력(Y)은 변환 유닛(820)에 송달된다.
변환 유닛(820)은 수신된 비트 스트림(Y)을 아날로그 신호로 변환하며, 이 신호는 예컨대, 라우드스피커(850)에 송달된다.
변환 유닛(820)은 제어기(825) 및 변환표를 포함하는 변환 정보가 저장되는 기억 유닛(830)을 포함한다. 기억 유닛(830)은 코드워드(H)의 워드 길이에 대한 정보를 유지한다. 그러한 정보를 사용하여, 수신된 비트 스트림(Y)이 제어기(825)에 의해 코드워드(H)로 분리된다.
코드워드(H)는 그 후 디지털 아날로그(D/A) 변환기(840)에 송달된다. D/A 변환기(840)는 코드워드(H)에 의해 한정되는 신호 레벨을 발생하기 위해 기억 유닛(830)내의 변환표와 협력하여 작동한다. 코드워드(H)가 고유 신호가 샘플링되는 주파수와 동일한 주파수로 D/A 변환기(840)에 공급될 때, D/A 변환기의 출력은 고유 아날로그 신호와 유사하다.
변환 유닛(770)의 기능은 이하와 같다. 변환 유닛(770)은 불균일한 확률 밀도로 진폭을 가지는 아날로그 신호를 수신한다. 예컨대, 음성에 대한 진폭 확률은 0 진폭에 대해 최대를 가지고, 진폭이 증가함에 따라 감소한다. 따라서, 음성 신호의 양자화 후에, 가장 가능성이 높은 양자화 레벨 범위는 최저 진폭에 대응한다. A/D 변환된 신호(Y)의 해밍 웨이트를 최소화하기 위하여, 코드워드(H)는 값 「1」을 가지는 비트의 수를 최소화시키도록 선택되어야 한다. 최소수의 0을 가지는 코드워드를 아날로그 신호에 할당하는 코딩 방법은 참고로 본 명세서에 통합되어 있는 미국 특허 제5,062,152호에 개시되어 있다.
유리하게도, 변환 유닛(770)에 의해 송달되는 디지털 신호(Y)는 코드워드(H)의 워드 길이를 필요한 양자화 레벨의 수 r에 적합하게 함으로써 최소화될 수 있다. 예컨대, r=64 양자화 레벨을 가지기에 충분한 경우, 코드 기호는 6 비트만을 포함하는 것이 필요하다. 양자화 레벨의 수가 65와 128 사이인 경우, 7 비트의 워드 길이가 필요하다. d 비트를 가지는 워드에 의해 형성 가능한 양자화 레벨의 수 r은 아래의 수학식 1과 같다.
따라서, 코드워드(H)내의 필요한 비트의 수 d는 아래의 수학식 2를 사용하여 설정될 수 있다.
결과 d1이 정수가 아닌 경우, 비트의 수 d는 d1을 가장 가까운 높은 정수로 반올림함으로써 설정된다. 예컨대, 필요한 양자화 레벨의 수가 r=190인 경우, 결과 d1=ln(170)/ln2=7.409이다. d1을 가장 가까운 높은 정수로 반올림하면 d=8이 된다. 그러므로, 코드워드(H)에서 필요한 비트의 수는 d=8이다. 코드워드(H)의 워드 길이 d는 유닛(750)으로 송신되어 기억 유닛(830)에 저장된다. 변수 d는 코딩된 메시지의 수신시에 비트 스트림(Y)을 정확한 길이의 코드워드로 분리하기 위해 제어기(825)에 의해 사용된다.
필요한 양자화 신호의 수의 범위는 아날로그 신호의 최대 진폭 및 진폭 해상도에 의존한다. 아날로그 신호의 높은 성실도의 생성을 위해, 레벨 범위는 높은 진폭 해상도를 달성하기 위해 작아져야 하며, 그에 따라 다수의 양자화 신호 레벨이 사용되어야 한다.
아날로그 신호의 최대 진폭을 설정하기 위해, 신호가 임의의 지속 시간 동안 측정된다. 진폭 해상도는 수동으로 또는 자동으로 설정될 수 있다. 코드워드의 워드 길이를 히스토리 최대 진폭 및 선택된 진폭 해상도에 적합하게 함으로써, 비트의 수가 디지털 신호(Y)에서 최소화된다.
변환 유닛(770)은 양자화 신호 범위 및 코드워드 사이의 참조 목록, 즉 변환표를 발생한다. 목록은 변환 유닛(770)과 협력하여 작동하는 기억 유닛(860)에 저장된다. 기억 유닛(860)에 저장된 목록은 설정된 참조 목록에 따라서 코드 워드(H)를 양자화 신호 범위에 할당하는데 사용된다.
또한, 참조 목록 및 워드 길이 d는 유닛(750)으로 송신하기 위해 변환 유닛(770)으로부터 송수신기(780)로 송달된다. 송수신기(810)에 의해 참조 목록의 수신시에, 목록은 기억 유닛(830)에 저장하기 위해 변환 유닛(820)에 송달된다. 기억 유닛(830)에 저장된 목록은 그 후 코드워드(H)에 의해 한정되는 신호 레벨을 발생하기 위해 D/A 변환기(840)에 의해 사용된다.
통신 네트워크(735)의 또 다른 실시예에 따르면, 코드워드(H)를 포함하는 코딩된 메시지가 도 10에 파선 870으로 표시되어 있는 바와 같이, 변환 유닛(770)으로부터 송수신기(780)로 직접 송달된다. 그러한 실시예에서, 수신 유닛(750)은 또한 변환 유닛(820)과 송수신기(810) 사이에 직접 접속(880)을 제공한다.
통신 네트워크(735)의 또 다른 실시예에 따르면, 코드워드(H)를 포함하는 코딩된 메시지가 변환 유닛(770)으로부터 압축 모듈(270)로 직접 송달된다. 직접 접속은 도 10에 파선 882로 표시되어 있는 데이터 버스에 의해 얻어진다. 상기 유닛(750)은 압축 해제 모듈(620)과 변환 유닛(820) 사이에 직접 접속을 제공하는 대응하는 데이터 버스(884)를 포함한다. 데이터 버스(884)에 의한 직접 접속은 변환 유닛(770)에 의해 송달되는 인코딩된 메시지내의 비트의 수가 감소되게 할 수 있다.
또 다른 실시예에 따르면, 평가 유닛(260)과 송수신기(780) 사이에 직접 접속(890)이 존재함으로써, 비트 스트림(Y)보다 더 적은 0을 유지하는 비트 스트림(E)의 송신을 가능하게 한다. 그러므로, 이 실시예는 불균일한 확률 밀도를 가지는 음성 또는 음악과 같은 신호를 송신하는데 필요한 전력을 더욱 감소시키는 이점을 가진다. 상기 유닛(750)은 송수신기(810)과 디코더(630) 사이에 대응하는 직접 접속(900)을 포함한다.
상기 유닛(740)은 물론 코딩된 신호를 수신하고 그러한 신호를 디코딩하는데 적합할 수도 있다. 그러므로, 상기 유닛(740)은 전술한 부품들(620, 630, 820, 825, 830, 840, 850)과 같은 부품을 포함할 수 있다. 유사하게, 상기 유닛(750)은 전술한 방식으로 아날로그 신호를 인코딩하는데 적합할 수도 있다.
부록 1
부록 2
부록 1
부록 2

Claims (54)

  1. 감소된 수의 비트를 가지는 압축된 메시지가 발생되도록 미리 정해진 허프만 코딩 방법에 따라서 메시지를 인코딩하는 단계를 포함하는 메시지내의 비트의 수를 감소시키는 방법에 있어서: 상기 허프만 코딩은:
    복수의 문자(A, B, C)를 포함하는 적어도 하나의 메시지를 수신하는 단계(도 1A의 S20)와;
    각 문자에 대하여, 적어도 하나의 메시지내에서 문자의 상대적인 빈도수를 나타내는 값(p)을 계산하는 단계(S40)와;
    복수의 이진 숫자를 포함하는 제1 이진 코딩된 코드 기호(H1)를 가장 높은 상대적인 빈도수(p1)를 가지는 문자에 할당하는 단계(S60)와;
    제1 이진 코딩된 코드 기호(H1)에서 모든 또는 대부분의 이진 숫자를 제1 이진값(0)으로 선택하는 단계와;
    제1 숫자의 세트(Y)로 이루어진 제1 인코딩된 메시지를 발생하기 위해, 제1 이진값(0)을 가지는 숫자의 수가 제1 숫자의 세트(Y)에서 최대화되도록 각 기호(H2, H3)내의 이진 숫자가 선택되는 특정 기호(H2, H3)를 각 특정 나머지 문자에 할당하는 단계와;
    제2 이진 숫자(ei, ei+1)의 세트(E)가 발생되도록 제1 숫자의 세트(Y)를 인코딩하는 단계(도 3B 및 도 3C의 S220-S370)와;
    제2 세트(E)에서 제1 이진값(0)을 가지는 숫자의 수가 제1 세트(Y)에서 제1 이진값(0)을 가지는 숫자의 수보다 더 높게 되도록 제2 숫자의 세트(E)내의 숫자(ei, ei+1)를 선택하는 단계 이후에 실행되는 것을 특징으로 하는 비트수 감소 방법.
  2. 제1항에 있어서, 제2 숫자의 세트(E)내의 비트값(ei, ei+1)은 제1 숫자의 세트(Y)의 연속 처리를 사용하여 연속적으로 발생되는 것을 특징으로 하는 비트수 감소 방법.
  3. 제1항 또는 제2항에 있어서, 제1 숫자의 세트(Y)의 인코딩 단계(도 3B 및 도 3C의 S220-S370)는 제2 숫자의 세트(E)를 발생하기에 적합하므로, 제2 숫자의 세트(E)내의 비트의 열이 무기억 베르누이 소스의 출력과 유사하게 되는 것을 특징으로 하는 비트수 감소 방법.
  4. 제1항 내지 제3항중 어느 한 항에 있어서,
    제1 숫자의 세트(Y)의 인코딩 단계(도 3B 및 도 3C의 S220-S370)는 제2 숫자의 세트(E)를 발생하기에 적합하므로, 제2 숫자의 세트(E)내의 비트의 열의 엔트로피가 제2 세트(E)내의 비트값의 상대적인 빈도수에 대응하는 파라미터를 가지는 무기억 베르누이 소스의 엔트로피에 가깝게 되며;
    제2 숫자의 세트(E)내의 비트의 열의 분포는 제1 인코딩된 메시지(Y)내의 비트의 분포와 실질적으로 무관한 것을 특징으로 하는 비트수 감소 방법.
  5. 정보 처리 장치에서: 제1값(「0」) 또는 제2값(「1」)을 각각 가지는 제1 이진 숫자의 세트(Y)를 포함하는 메시지를 인코딩하는 방법에 있어서:
    제1 비트의 세트(Y)를 수신하는 단계(S200)와;
    제1 비트의 세트(Y)에 응답하여 제2 비트(ei, ei+1)의 세트(E)를 발생하는 단계(도 3B 및 도 3C의 S220-S370)와;
    제2 세트(E)에서 제1 이진값을 가지는 비트의 수가 제1 세트(Y)에서 제1 이진값을 가지는 비트의 수보다 높게 되도록 제2 세트(E)내의 비트의 값(ei, ei+1)을 선택하는 단계를 포함하는 것을 특징으로 하는 메시지 인코딩 방법.
  6. 제5항에 있어서, 상기 인코딩은 제2 비트의 세트(E)가 제1 비트의 세트(Y)와 동일한 비트의 수를 포함하게 하기 위한 것을 특징으로 하는 메시지 인코딩 방법.
  7. 제5항 또는 제6항에 있어서, 상기 비트값은 제2 비트의 세트(E)내의 비트의 열의 분포가 제1 숫자의 세트(Y)내의 비트의 분포와 실질적으로 무관하도록 선택되는 것을 특징으로 하는 메시지 인코딩 방법.
  8. 제5항 내지 제7항중 어느 한 항에 있어서, 상기 비트값은 제2 숫자의 세트내의 비트의 열의 엔트로피가 무기억 베르누이 소스의 엔트로피에 가깝게 되도록 선택되는 것을 특징으로 하는 메시지 인코딩 방법.
  9. 제5항 내지 제8항중 어느 한 항에 있어서, 상기 인코딩은 제2 숫자의 세트내의 비트의 열이 무기억 베르누이 소스의 출력과 유사하게 하기 위한 것을 특징으로 하는 메시지 인코딩 방법.
  10. 제5항 내지 제8항중 어느 한 항에 있어서, 제2 이진 숫자의 세트(E)의 숫자(ei)를 발생하는 공정은:
    제2 세트(E)의 m개의 제1 숫자의 값(ei)을 제1 세트(Y)내의 m개의 제1 숫자의 값(yi)과 동일하게 설정하는 단계를 포함하고, m은 양의 정수인 것을 특징으로 하는 메시지 인코딩 방법.
  11. 제5항 내지 제10항중 어느 한 항에 있어서, 제2 숫자의 세트내에서 후속 숫자(ei+1)를 발생하는 공정은:
    제1 숫자의 세트(Y)내의 선행 숫자(yi)에 응답하여 예측값(pi+1)을 발생하는 단계와;
    제1 숫자의 세트(Y)내의 실제 숫자의 값(yi+1)을 판독하는 단계와;
    예측값(pi+1)과 실제 숫자의 값(yi+1) 사이의 해밍 거리를 계산하는 단계(S300)와;
    제2 숫자의 세트(E)내의 숫자의 값(ei+1)을 계산된 해밍 거리값과 동일하게 설정하는 단계를 포함하는 것을 특징으로 하는 메시지 인코딩 방법.
  12. 제5항 내지 제9항중 어느 한 항에 있어서, 제2 이진 숫자의 세트(E)의 숫자(ei)를 발생하는 공정은:
    제2 세트(E)의 m(m은 양의 정수)개의 제1 숫자의 값(ei)을 제1 세트(Y)내의 m개의 숫자의 값(yi)과 동일하게 설정하는 단계와;
    제1 숫자의 세트(Y)내의 m 이하의 양의 정수인 미리 정해진 수의 선행 숫자(yi)에 응답하여 예측값(pi+1)을 발생하는 단계와;
    제1 숫자의 세트(Y)내의 실제 숫자의 값(yi+1)을 판독하는 단계와;
    예측값(pi+1)과 실제 숫자의 값(yi+1) 사이의 해밍 거리를 계산하는 단계(S300)와;
    제2 숫자의 세트(E)내의 숫자의 값(ei+1)을 계산된 해밍 거리값과 동일하게 설정하는 단계를 포함하는 것을 특징으로 하는 메시지 인코딩 방법.
  13. 제11항 또는 제12항에 있어서, 예측값(pi+1)을 발생하는 공정은:
    제1 숫자의 세트(Y)내의 숫자에 의존하여 각각 선택될 수 있는(S240, S350) 복수의 예측 카운트값(V)을 설정하는 단계(S230)와;
    모든 예측 카운트값(V)을 0으로 설정하는 단계와;
    제1 숫자의 세트에서 숫자의 조합(y1-ym)을 선택하는 단계와;
    f1) 제1 숫자의 세트(Y)내에서 선택된 숫자의 조합에 응답하여 예측 카운트값(V)을 선택하는 단계와;
    f2) 선택된 예측 카운트값(V)을 판독하는 단계와;
    f3) 선택된 예측 카운트값(V)이 소정값보다 높은 경우 예측값(pi+1)을 제1값으로 설정하고(S260, S270), 선택된 예측 카운트값(V)이 소정값보다 낮은 경우 예측값(pi+1)을 제2값으로 설정하는 단계(S260, S280)와;
    f4) 제1 숫자의 세트(Y)내의 실제 숫자의 값(yi+1)이 1과 동일한 경우(S310) 선택된 예측 카운트값(V)을 증가시키고(S320), 제1 숫자의 세트(Y)내의 실제 숫자의 값(yi+1)이 0과 동일한 경우(S310) 선택된 예측 카운트값(V)을 감소시키는 단계(S330)와;
    f5) 제1 숫자의 세트(Y)에서 새로운 숫자의 조합을 선택하는 단계와;
    제1 숫자의 세트(Y)내의 모든 숫자(yi+1)가 판독될 때까지 단계 f1) - f5)를 반복하는 단계를 포함하는 것을 특징으로 하는 메시지 인코딩 방법.
  14. 제11항 내지 제13항중 어느 한 항에 있어서, 상기 예측값(pi+1)과 실제 숫자의 값(yi+1) 사이의 해밍 거리를 계산하는 공정(S300)은:
    상기 예측값(pi+1)과 실제 숫자의 값(yi+1) 모듈로 2를 가산하는 단계를 포함하는 것을 특징으로 하는 메시지 인코딩 방법.
  15. 불균일한 확률 밀도와 진폭을 가지는 아날로그 신호를 인코딩하는 방법에 있어서:
    복수의 신호 레벨 범위중 하나로 강하할 때 상기 신호를 양자화하는 단계와;
    제1값(「1」) 또는 제2값(「0」)을 가지는 복수의 이진값의 숫자를 각각 가지는 코드워드(H)를 양자화 레벨에 할당함으로써 양자화 신호를 코딩하는 단계를 포함하고; 상기 코드워드는 양자화 레벨의 발생 확률 및 코드워드내에 제1값(「1」)을 가지는 비트의 수에 따라서 양자화 레벨에 할당됨으로써 높은 발생 확률의 양자화 레벨에 낮은 발생 확률의 양자화 레벨에 할당되는 코드워드보다 제1값(「1」)을 가지는 비트의 수가 적은 코드워드가 할당되며;
    코드워드의 열을 제1 이진 숫자의 세트(Y)로서 송달하는 단계와;
    제1항 내지 제14항중 어느 항에 한정된 방식으로 제1 이진 숫자의 세트(Y)를 인코딩하는 단계를 포함하는 것을 특징으로 하는 아날로그 신호 인코딩 방법.
  16. 제15항에 있어서, 상기 코딩 단계는 신호 레벨 범위와 코드워드 사이의 참조 목록를 한정하는 목록의 사용에 의해 실행되는 것을 특징으로 하는 아날로그 신호 인코딩 방법.
  17. 정보 처리 장치에서: 복수의 문자를 포함하는 메시지를 인코딩하는 방법에 있어서:
    메시지를 수신하는 단계와;
    수신된 메시지가 제1 코딩된 메시지(Y)로 변환되도록 메시지의 각 문자에 제1값 또는 제2값을 가지는 복수의 이진 숫자를 포함하는 이진 코딩된 코드 기호를 할당하는 단계와;
    제1 코딩된 메시지를 제1 숫자의 세트(Y)로서 변환하는 단계와;
    제1항 내지 제14항중 어느 한 항에 의해 한정된 방식으로 제1 숫자의 세트(Y)를 인코딩하는 단계를 포함하는 것을 특징으로 하는 아날로그 신호 인코딩 방법.
  18. 제17항에 있어서, 상기 변환 단계는 상대적인 빈도수(p1, p2, p3)가 감소하거나 증가하는 순서로 복구될 수 있는 문자를 포함하는 목록의 사용에 의해 실행되는 것을 특징으로 하는 아날로그 신호 인코딩 방법.
  19. 제17항에 있어서, 상기 송신 단계는:
    복수의 문자(A, B, C)를 포함하는 적어도 하나의 메시지를 수신하는 단계(도 1A의 S20)와;
    각 문자에 대하여, 적어도 하나의 메시지내에서 문자의 상대적인 빈도수를 나타내는 값(p)을 계산하는 단계(S40)와;
    제1 이진 코딩된 코드 기호(H1)내의 모든 또는 대부분의 이진 숫자가 제1 이진값으로 되도록, 복수의 이진 숫자를 포함하는 제1 이진 코딩된 코드 기호(H1)를 가장 높은 상대적인 빈도수(p1)를 가지는 문자에 할당하는 단계(S60)를 포함하는 방법에 따라서 실행되는 것을 특징으로 하는 아날로그 신호 인코딩 방법.
  20. 제19항에 있어서, 각 기호(H)는 인코딩된 메시지내의 모든 기호에 대한 해밍 웨이트의 합이 최소화 또는 최대화되도록 발생되는 것을 특징으로 하는 아날로그 신호 인코딩 방법.
  21. 제19항에 있어서,
    문자의 목록을 생성하는 단계와;
    문자가 발생 확률(p1, p2, p3)이 감소하거나 증가하는 순서로 복구될 수 있도록 목록을 저장하는 단계(S70)를 포함하는 것을 특징으로 하는 아날로그 신호 인코딩 방법.
  22. 제5항 내지 제21항중 어느 한 항에 있어서,
    상기 인코딩된 메시지를 압축하는 단계를 더 포함하는 것을 특징으로 하는 아날로그 신호 인코딩 방법.
  23. 제5항 내지 제21항중 어느 한 항에 있어서,
    허프만 코딩 방법에 따라서 제2 숫자의 세트(E)를 인코딩하는 단계를 더 포함하는 것을 특징으로 하는 아날로그 신호 인코딩 방법.
  24. 제1 비트의 수를 가지는 제1 비트의 세트를 포함하는 압축 메시지로부터 메시지를 복구하는 방법으로서,
    제1 비트의 수보다 높은 제2 비트의 수를 가지는 제2 이진 숫자의 세트(E)를 포함하는 제1 디코딩 메시지(E)가 얻어지도록 미리 정해진 허프만 디코딩 방법에 따라서 압축 메시지(C)를 디코딩하는 단계를 포함하는 메시지 복구 방법에 있어서:
    허프만 디코딩은 제1 디코딩 메시지(E)에 의존하는 제3 이진 숫자의 세트(Y)를 포함하는 제2 디코딩 메시지를 복구하는 단계 이전에 실행되고, 제2 디코딩 메시지(Y)를 복구하는 공정은:
    제1값(「0」) 또는 제2값(「1」)을 각각 가지는 제3 이진 숫자(yi, yi+1)의 세트(Y)가 발생되도록 제2 코딩된 메시지(E)를 디코딩하는 단계(도 9A 및 도 9B의 S720-870)를 포함하고;
    제3 숫자의 세트(Y)내의 이진 숫자(yi, yi+1)는 제3 세트(Y)내에서 제1 이진값(「0」)을 가지는 숫자의 수가 제2 세트(E)내에서 제1 이진값을 가지는 숫자의 수보다 낮게 되도록 선택되며;
    제3 숫자의 세트(Y)를 기호의 세트(H)로서 해석하는 단계와;
    제3 디코딩 메시지가 기호와 문자 사이의 대응을 나타내는 목록을 사용하여 복구되도록 각 코드 기호(H)를 대응하는 이진 코딩 문자(X)로 변환하는 단계를 포함하는 것을 특징으로 하는 메시지 복구 방법.
  25. 이진 숫자의 제2 메시지(E)에 응답하여 제1값 또는 제2값을 각각 가지는 이진 숫자의 제1 메시지(Y; H1, H2, H3)를 발생하는 데이터 디코딩 방법에 있어서:
    제2 메시지(E)를 수신 또는 판독하는 단계(S620)와;
    제1 이진 숫자의 세트가 복구되도록 제2 메시지(E)에 응답하여 제1 메시지(Y)를 발생하는 단계를 포함하고;
    제1 숫자의 세트(Y)내의 이진 숫자(yi, yi+1)는 제1 세트(Y)내에서의 제1 이진값을 가지는 숫자의 수가 제2 세트(E)내에서 제1 이진값을 가지는 숫자의 수보다 낮게 되도록 선택되는 것을 특징으로 하는 데이터 디코딩 방법.
  26. 제25항에 있어서, 제1 세트내의 숫자(yi+1)는 연속적으로 발생되는 것을 특징으로 하는 데이터 디코딩 방법.
  27. 제25항 또는 제26항에 있어서, 제1 세트(Y)내에서 이진값의 숫자를 선택하는 공정은:
    제1 숫자의 세트(Y)내의 제1 숫자의 값(yi)을 이진 숫자의 제2 메시지(E)내의 제1 숫자의 값(ei)과 동일하도록 설정하는 단계(도 9A의 S710)를 포함하는 것을 특징으로 하는 데이터 디코딩 방법.
  28. 제25항 또는 제26항에 있어서, 제1 숫자의 세트(Y)내에서 연속적인 숫자(yi+1)를 발생하는 공정은:
    제1 숫자의 세트(Y)내의 다수의 선행 숫자(yi)에 응답하여 예측값(pi+1)을 발생하는 단계와;
    제2 숫자의 세트(E)내의 실제 숫자의 값(ei+1)을 판독하는 단계와;
    예측값(pi+1)과 실제 숫자의 값(ei+1) 사이의 해밍 거리를 계산하는 단계(S800)와;
    제1 숫자의 세트(Y)내의 연속적인 숫자의 값(yi+1)을 계산된 해밍 거리값과 동일하게 설정하는 단계를 포함하는 것을 특징으로 하는 데이터 디코딩 방법.
  29. 제28항에 있어서, 예측값(pi+1)을 발생하는 공정은:
    제1 숫자의 세트(Y)내의 숫자에 의존하여 각각 선택될 수 있는(S740, S850) 복수의 예측 카운트값(V)을 설정하는 단계(S230)와;
    모든 예측 카운트값(V)을 0으로 설정하는 단계와;
    f1) 예측 카운트값(V)을 선택하는 단계와;
    f2) 선택된 예측 카운트값(V)을 판독하는 단계와;
    f3) 선택된 예측 카운트값(V)이 소정값보다 높은 경우 예측값(pi+1)을 제1값으로 설정하고(S260, S270), 선택된 예측 카운트값(V)이 소정값보다 낮은 경우 예측값(pi+1)을 제2값으로 설정하는 단계(S260, S280)와;
    f4) 제1 숫자의 세트(Y)내의 실제 숫자의 값(yi+1)이 1과 동일한 경우(S310) 선택된 예측 카운트값(V)을 증가시키고(S320), 제1 숫자의 세트(Y)내의 실제 숫자의 값(yi+1)이 0과 동일한 경우(S310) 선택된 예측 카운트값(V)을 감소시키는 단계(S330)와;
    제1 숫자의 세트(Y)내의 모든 숫자(yi+1)가 판독될 때까지 단계 f1) 내지 f4)를 반복하는 단계를 포함하는 것을 특징으로 하는 데이터 디코딩 방법.
  30. 제29항에 있어서, 예측 카운트값(V)을 선택하는 상기 단계는:
    제1 숫자의 세트(Y)내의 숫자의 조합에 응답하여 제1 예측 카운트값(V)을 선택하는 단계와;
    현재 선택된 예측 카운트값(V)과 제1 숫자의 세트(Y)내에서 가장 최근에 발생된 숫자(yi+1)에 의존하여 연속적인 예측 카운트값(V)을 선택하는 단계를 포함하는 것을 특징으로 하는 데이터 디코딩 방법.
  31. 제25항 내지 제30항중 어느 한 항에 있어서,
    제1 이진 숫자의 세트(Y)를 복수의 코드 기호로 분할하는 단계를 더 포함하는 것을 특징으로 하는 데이터 디코딩 방법.
  32. 제31항에 있어서,
    복수의 코드 기호에 응답하여 아날로그 신호를 발생하는 단계를 더 포함하는 것을 특징으로 하는 데이터 디코딩 방법.
  33. 제31항에 있어서,
    디코딩된 메시지가 복구되도록 각 코드 기호를 대응하는 이진 코딩된 문자로 변환하는 단계를 더 포함하는 것을 특징으로 하는 데이터 디코딩 방법.
  34. 제33항에 있어서, 상기 변환은:
    소정의 순서로 복구할 수 있는 문자를 포함하는 목록의 사용에 의해 문자(X)가 각 코드 기호(H)에 할당되게 설정하는 단계를 포함하는 것을 특징으로 하는 데이터 디코딩 방법.
  35. 제1값 또는 제2값을 각각 가지는 제1 이진 숫자의 세트(Y)를 수신하는 제1 입력(254)과;
    제1 출력(262)과;
    제1 입력 및 제1 출력에 결합되는 신호 인코딩 수단(260)을 포함하고;
    상기 인코딩 수단(260)은 제1 비트의 세트(Y)에 응답하여 제2 비트(ei, ei+1)의 세트를 발생하도록 설정되며;
    상기 인코딩 수단(260)은 제2 세트(E)내에서 제1 이진값을 가지는 비트의 수가 제1 세트(Y)내에서 제1 이진값을 가지는 비트의 수보다 높게 되도록 제2 세트(E)내의 비트의 값(ei, ei+1)을 선택하도록 설정된 것을 특징으로 하는 메시지 인코딩 장치.
  36. 제35항에 있어서, 상기 인코딩 수단(260)은 제2 세트(E)가 제1 비트의 세트(Y)와 동일한 수의 비트를 포함하도록 작동하는 것을 특징으로 하는 메시지 인코딩 장치.
  37. 제35항에 있어서, 상기 인코딩 수단은:
    제2 세트(E)내의 제1 비트의 값(ei)을 제1 세트(Y)내의 제1 비트의 값(yi)과 동일하게 설정하는 수단을 포함하는 것을 특징으로 하는 메시지 인코딩 장치.
  38. 제35항에 있어서, 상기 인코딩 수단은:
    제1 숫자의 세트(Y)내의 다수의 선행 숫자(yi)에 응답하여 예측값(pi+1)을 발생하는 수단과;
    제1 숫자의 세트(Y)내의 실제 숫자의 값(yi+1)을 판독하는 수단과;
    예측값(pi+1)과 실제 숫자의 값(yi+1) 사이의 해밍 거리를 계산하는(S300) 수단과;
    제2 숫자의 세트(E)내의 연속적인 숫자의 값(ei+1)을 계산된 해밍 거리값과 동일하게 설정하는 수단을 포함하는 것을 특징으로 하는 메시지 인코딩 장치.
  39. 제35항 내지 제38항중 어느 한 항에 있어서,
    복수의 문자를 포함하는 메시지를 수신하는 제2 입력(210)과;
    제1 코딩된 메시지를 송달하는 제2 출력(252)과;
    제2 입력 및 제2 출력에 결합되는 신호 처리 수단(220, 250)을 포함하고;
    상기 신호 처리 수단은 수신된 메시지가 이진 코딩된 기호(H)를 포함하는 제1 코딩된 메시지(Y)로 변환되도록 문자를 변환하기 위해 고안되며;
    상기 신호 처리 수단은 수신된 문자(X)를 대응하는 이진 코딩된 기호(H)로 변환하는 수단(220)을 포함하고; 각 코드 기호는 복수의 이진 숫자를 포함하며, 각 상기 이진 숫자는 제1값 또는 제2값을 가지고;
    상기 제2 출력(252)은 제35항에 따라서 상기 제1 입력(254)에 결합되는 것을 특징으로 메시지 인코딩 장치.
  40. 제1값 또는 제2값을 각각 가지는 제1 이진 숫자의 세트(Y)를 송달하는 제1 출력(638)과;
    제2 이진 숫자(ei, ei+1)의 세트(E)를 수신하는 제1 입력(622)과;
    제1 입력 및 제1 출력에 결합되는 디코딩 수단(630)을 포함하고;
    상기 디코딩 수단(630)은 상기 제2 이진 숫자의 세트(E)에 의존하여 제1 이진 숫자의 세트를 발생하도록 설정되며;
    상기 디코딩 수단(630)은 제1 이진값을 가지는 비트의 수가 인코딩된 메시지(E)내에서 보다 낮게 되도록 제1 세트(Y)내의 비트의 값(yi, yi+1)을 선택하도록 설정된 것을 특징으로 하는 메시지 디코딩 장치.
  41. 제40항에 있어서, 상기 디코딩 수단(630)은 제1 비트의 세트(Y)가 제2 세트(E)와 동일한 수의 비트를 포함하도록 작동하는 것을 특징으로 하는 메시지 디코딩 장치.
  42. 제40항에 있어서, 상기 제2 세트(E)를 수신하는 제1 입력(622)은 압축된 데이터 세트(C)로부터 데이터 세트(e)를 복구하는 장치의 출력에 결합되는 것을 특징으로 하는 메시지 디코딩 장치.
  43. 제40항 또는 제42항에 있어서,
    상기 제1 이진 숫자의 세트(Y)를 수신하는 제2 입력과;
    상기 제1 이진 숫자의 세트(Y)로부터 복수의 기호(H)를 추출하는 수단과;
    복수의 메시지 문자를 포함하는 디코딩된 메시지를 송달하는 출력과;
    상기 입력 및 출력에 결합되는 디코딩 수단(650)과;
    개별 문자 및 기호 사이의 참조 목록을 나타내는 데이터를 포함하는 기억 유닛(420)을 포함하고;
    상기 디코딩 수단은 수신된 기호에 응답하여, 상기 기억 유닛(420)내의 데이터에 의해 표시되는 참조 목록에 따라서 메시지 문자를 선택하도록 고안된 것을 특징으로 하는 메시지 디코딩 장치.
  44. 제43항에 있어서, 상기 기억 데이터는:
    상기 기억 유닛에 기록되어 기호 및 문자 사이의 참조 목록을 제공하는 문자의 목록을 포함하는 것을 특징으로 하는 메시지 디코딩 장치.
  45. 제35항에 따르는 인코더와;
    제40항에 따르는 디코더를 포함하는 것을 특징으로 하는 정보 처리 시스템.
  46. 제35항 내지 제44항중 어느 한 항에 따르는 장치를 포함하는 것을 특징으로 하는 전자 장치.
  47. 제46항에 따르는 장치를 포함하는 것을 특징으로 하는 이동 전화.
  48. 휘발성 기억 유닛(440), 제한된 기록 용량을 가지는 불휘발성 기억 유닛(420) 및 상기 휘발성 기억 유닛 및 불휘발성 기억 유닛에 결합되는 프로세서(430)를 포함하는 정보 인코딩 장치용의 컴퓨터 프로그램 제품에 있어서:
    기록 매체와;
    상기 기록 매체에 기록되어, 제1값 또는 제2값을 각각 가지는 제1 이진 숫자의 세트(Y)를 수신하도록 상기 프로세서(430)에 지시하는 수단과;
    상기 기록 매체에 기록되어, 제2 이진 숫자(ei, ei+1)의 세트(E)를 발생하도록 상기 프로세서(430)에 지시하는 수단과;
    상기 기록 매체에 기록되어, 제2 세트(E)내에서 제1 이진값을 가지는 비트의 수가 제1 세트(Y)내에서 제1 이진값을 가지는 비트의 수보다 높게 되게 하기 위해 제2 세트(E)내의 비트의 값(ei, ei+1)을 선택하도록 상기 프로세서(430)에 지시하는 수단을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  49. 제48항에 있어서,
    상기 기록 매체에 기록되어, 제2 세트(E)가 제1 비트의 세트(Y)와 동일한 수의 비트를 포함하게 하기 위해 제2 비트의 세트(E)를 발생하도록 상기 프로세서(430)에 지시하는 수단을 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  50. 제48항에 있어서,
    상기 기록 매체에 기록되어, 상기 제2 세트(E)의 m(m은 양의 정수)개의 제1 숫자의 값(ei)을 제1 세트(Y)내의 m개의 제1 숫자의 값(yi)과 동일하게 설정하도록 상기 프로세서(430)에 지시하는 수단과;
    상기 기록 매체에 기록되어, 상기 제1 숫자의 세트(Y)내의 다수의 숫자(yi)에 응답하여 예측값(pi+1)을 발생하도록 상기 프로세서(430)에 지시하는 수단과;
    상기 기록 매체에 기록되어, 상기 제1 숫자의 세트(Y)내의 실제 숫자의 값(yi+1)을 판독하도록 상기 프로세서(430)에 지시하는 수단과;
    상기 기록 매체에 기록되어, 예측값(pi+1)과 실제 숫자의 값(yi+1) 사이의 해밍 거리를 계산하도록(S300) 상기 프로세서(430)에 지시하는 수단과;
    상기 기록 매체에 기록되어, 제2 숫자의 세트(E)내의 숫자의 값(ei+1)을 계산된 해밍 거리값과 동일하게 설정하도록 상기 프로세서(430)에 지시하는 수단을 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  51. 압축된 데이터를 복구할 수 있고; 휘발성 기억 유닛(440), 제한된 기록 용량을 갖는 불휘발성 기억 유닛(420), 디스플레이 유닛(410) 및 휘발성 기억 유닛, 불휘발성 기억 유닛 및 디스플레이 유닛(410)에 결합되는 프로세서(430)를 포함하는 휴대용 텍스트 처리 시스템용 컴퓨터 프로그램 제품에 있어서:
    기록 매체와;
    상기 기록 매체에 기록되어, 상기 불휘발성 기억 유닛(420)으로부터 제1 이진 숫자의 세트(C)를 판독하도록 상기 프로세서(430)에 지시하는 수단과;
    상기 기록 매체에 기록되어, 제1 이진 숫자의 세트(C)에 응답하여 제1 이진값 또는 제2 이진값을 각각 가지고 상기 제1 세트(C)보다 다수의 숫자를 가지는 제2 이진 숫자(ei, ei+1)의 세트(E)를 발생하도록 상기 프로세서(430)에 지시하는 수단과;
    상기 기록 매체에 기록되어, 제2 이진 숫자의 세트(E)에 응답하여 제1 이진값을 가지는 숫자의 수와 제2 이진값을 가지는 숫자의 수 사이의 비율이 제2 세트(E)내에서 보다 제3 세트(Y)내에서 낮게 되게 하기 위해 제3 이진 숫자의 세트(Y)를 발생하도록 상기 프로세서(430)에 지시하는 수단과;
    상기 기록 매체에 기록되어, 제3 세트(Y)내의 미리 정해진 숫자의 그룹을 제1 코딩된 메시지로서 해석하도록 상기 프로세서(430)에 지시하는 수단과;
    상기 기록 매체에 기록되어, 디코딩된 메시지가 검색되게 하기 위해 제1 코딩된 메시지의 각 코드 기호를 대응하는 이진 코딩된 문자로 변환하도록 상기 프로세서(430)에 지시하는 수단과;
    상기 기록 매체에 기록되어, 제1 이진값을 가지는 숫자의 수와 제2 이진값을 가지는 숫자의 수 사이의 비율이 제1 코딩된 메시지내에서 보다 디코딩된 메시지내에서 더 낮아지게 하기 위해 코드 기호(H)를 이진 코딩된 문자(X)로 변환하도록 상기 프로세서(430)에 지시하는 수단을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  52. 제51항에 있어서,
    상기 기록 매체에 기록되어, 상기 디코딩된 메시지의 문자의 적어도 일부를 상기 디스플레이 유닛(410)에 송신하도록 상기 프로세서(430)에 지시하는 수단을 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  53. 휘발성 기억 유닛(440), 제한된 기록 용량을 가지는 불휘발성 기억 유닛(420), 및 휘발성 기억 유닛 및 비휘발성 기억 유닛에 결합되는 프로세서(430)와; 제1값 또는 제2값을 각각 가지는 제1 비트의 세트(Y)를 송달하는 제1 출력(638)과; 제2 비트(ei, ei+1)의 세트(E)를 수신하는 제1 입력(622)을 포함하는 정보 디코딩 장치용 컴퓨터 프로그램 제품에 있어서:
    기록 매체(420)와;
    상기 기록 매체에 기록되어, 제2 비트의 세트(E)를 판독하도록 상기 프로세서(430)에 지시하는 수단과;
    상기 기록 매체에 기록되어, 상기 제2 비트의 세트(E)에 의존하는 제1 비트의 세트(Y)를 발생하도록 상기 프로세서(430)에 지시하는 수단과;
    상기 기록 매체에 기록되어, 제1 이진값을 가지는 비트의 수가 제2 비트의 세트(E)에서 보다 낮게 되게 하기 위해 제1 세트(Y)내의 비트의 값(yi, yi+1)을 선택하도록 상기 프로세서(430)에 지시하는 수단을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  54. 제53항에 있어서,
    기록 매체에 기록되어, 제1 비트의 세트(Y)가 제2 세트(E)와 동일한 비트의 수를 포함하게 하기 위해 제1 비트의 세트(Y)를 발생하도록 프로세서(430)에 지시하는 수단을 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
KR10-1999-7006002A 1996-12-30 1997-12-18 정보 처리 방법 및 장치 KR100375278B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE9604834A SE512613C2 (sv) 1996-12-30 1996-12-30 Metod och organ för informationshantering
SE9604834-3 1996-12-30
PCT/SE1997/002159 WO1998029955A1 (en) 1996-12-30 1997-12-18 Method and means for handling information

Publications (2)

Publication Number Publication Date
KR20000069834A true KR20000069834A (ko) 2000-11-25
KR100375278B1 KR100375278B1 (ko) 2003-03-10

Family

ID=20405183

Family Applications (2)

Application Number Title Priority Date Filing Date
KR10-1999-7006002A KR100375278B1 (ko) 1996-12-30 1997-12-18 정보 처리 방법 및 장치
KR10-1999-7006001A KR100378319B1 (ko) 1996-12-30 1997-12-18 정보 처리 방법 및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR10-1999-7006001A KR100378319B1 (ko) 1996-12-30 1997-12-18 정보 처리 방법 및 장치

Country Status (15)

Country Link
US (2) US6218968B1 (ko)
EP (2) EP0948846A1 (ko)
JP (2) JP3995106B2 (ko)
KR (2) KR100375278B1 (ko)
CN (2) CN1100390C (ko)
AR (2) AR008949A1 (ko)
AU (2) AU739418B2 (ko)
BR (2) BR9713639A (ko)
CO (2) CO4771136A1 (ko)
EE (2) EE04409B1 (ko)
HK (2) HK1027227A1 (ko)
MY (2) MY118092A (ko)
SE (1) SE512613C2 (ko)
TR (2) TR199901513T2 (ko)
WO (2) WO1998029954A1 (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100293523B1 (ko) * 1998-02-25 2001-09-17 구본준, 론 위라하디락사 액정표시장치
US7981126B2 (en) * 1999-04-16 2011-07-19 Vital Access Corporation Locking compression plate anastomosis apparatus
KR100359118B1 (ko) * 2001-03-20 2002-11-04 주식회사 아름테크놀로지 균일 엔트로피 데이터에 대한 비손실 압축방법
GB2378361B (en) * 2001-08-01 2004-10-13 Roke Manor Research Method for compression of data
FR2835665B1 (fr) * 2002-02-04 2004-04-02 Canon Kk Codage et decodage de signal numerique
US6941412B2 (en) * 2002-08-29 2005-09-06 Sandisk Corporation Symbol frequency leveling in a storage system
US7212681B1 (en) * 2003-01-15 2007-05-01 Cisco Technology, Inc. Extension of two-dimensional variable length coding for image compression
US6961696B2 (en) * 2003-02-07 2005-11-01 Motorola, Inc. Class quantization for distributed speech recognition
US7194137B2 (en) * 2003-05-16 2007-03-20 Cisco Technology, Inc. Variable length coding method and apparatus for video compression
KR20050053996A (ko) 2003-12-03 2005-06-10 삼성전자주식회사 허프만 코드를 효율적으로 복호화하는 방법 및 장치
US7454073B2 (en) 2004-06-15 2008-11-18 Cisco Technology, Inc. Video compression using multiple variable length coding processes for multiple classes of transform coefficient blocks
US7471840B2 (en) * 2004-08-18 2008-12-30 Cisco Technology, Inc. Two-dimensional variable length coding of runs of zero and non-zero transform coefficients for image compression
US7499595B2 (en) * 2004-08-18 2009-03-03 Cisco Technology, Inc. Joint amplitude and position coding for photographic image and video coding
US7454076B2 (en) * 2004-06-15 2008-11-18 Cisco Technology, Inc. Hybrid variable length coding method for low bit rate video coding
US7492956B2 (en) * 2004-08-18 2009-02-17 Cisco Technology, Inc. Video coding using multi-dimensional amplitude coding and 2-D non-zero/zero cluster position coding
US7471841B2 (en) 2004-06-15 2008-12-30 Cisco Technology, Inc. Adaptive breakpoint for hybrid variable length coding
US7499596B2 (en) 2004-08-18 2009-03-03 Cisco Technology, Inc. Amplitude coding for clustered transform coefficients
US7620258B2 (en) * 2004-08-18 2009-11-17 Cisco Technology, Inc. Extended amplitude coding for clustered transform coefficients
US7680349B2 (en) * 2004-08-18 2010-03-16 Cisco Technology, Inc. Variable length coding for clustered transform coefficients in video compression
ATE454673T1 (de) * 2004-12-22 2010-01-15 Ericsson Telefon Ab L M Wasserzeichenmarkierung eines computerprogrammcodes mittels äquivalenter mathematischer ausdrücke
US7242328B1 (en) * 2006-02-03 2007-07-10 Cisco Technology, Inc. Variable length coding for sparse coefficients
CN100468576C (zh) * 2007-05-30 2009-03-11 忆正存储技术(深圳)有限公司 闪存数据读写处理方法
US20100081284A1 (en) * 2008-09-29 2010-04-01 Applied Materials, Inc. Methods and apparatus for improving flow uniformity in a process chamber
KR101582223B1 (ko) * 2009-02-05 2016-01-04 삼성전자주식회사 미스얼라인 측정용 구조물 및 이를 이용한 패턴의 미스얼라인 측정방법
CN102811113B (zh) * 2012-07-12 2014-12-10 中国电子科技集团公司第二十八研究所 一种字符型报文压缩方法
US9135155B2 (en) 2012-11-30 2015-09-15 Sandisk Technologies Inc. Storage and retrieval of shaped data
US9575683B2 (en) 2012-11-30 2017-02-21 Sandisk Technologies Llc Processing shaped data
RU2510942C1 (ru) * 2012-12-05 2014-04-10 Владимир Петрович Панов Способ передачи и приема информации
RU2510941C1 (ru) * 2012-12-05 2014-04-10 Владимир Петрович Панов Система передачи и приема информации
US9165649B2 (en) 2013-12-20 2015-10-20 Sandisk Technologies Inc. Systems and methods of shaping data
WO2015112167A1 (en) * 2014-01-24 2015-07-30 Hewlett-Packard Development Company, L.P. Bit-flip coding
CN105022674B (zh) * 2014-04-25 2019-02-01 群联电子股份有限公司 解码方法、存储器存储装置、存储器控制电路单元
JP6511752B2 (ja) * 2014-09-19 2019-05-15 カシオ計算機株式会社 符号化装置、符号化方法、復号装置、復号方法、及び、プログラム
US10074427B2 (en) 2014-11-12 2018-09-11 Sandisk Technologies Llc Shaped data associated with an erase operation
US9912352B1 (en) * 2017-06-06 2018-03-06 Western Digital Technologies, Inc. Hamming distance based binary representations of numbers
US10719339B2 (en) * 2017-10-18 2020-07-21 Bank Of America Corporation Computer architecture for emulating a quantizer in a correlithm object processing system
US10727872B2 (en) * 2018-01-10 2020-07-28 Western Digital Technologies, Inc. Encoding and decoding of hamming distance-based binary representations of numbers
CN109979540B (zh) * 2018-11-29 2023-05-05 天津大学 一种dna信息存储编码方法
US10826536B1 (en) * 2019-10-03 2020-11-03 International Business Machines Corporation Inter-chip data transmission system using single-ended transceivers
WO2023236128A1 (en) * 2022-06-09 2023-12-14 Huawei Technologies Co., Ltd. Apparatus and methods for source coding and channel coding of low entropy signals

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3651459A (en) * 1970-05-15 1972-03-21 Philco Ford Corp Character distance coding
US4168513A (en) * 1977-09-12 1979-09-18 Xerox Corporation Regenerative decoding of binary data using minimum redundancy codes
US4396906A (en) * 1980-10-31 1983-08-02 Sri International Method and apparatus for digital Huffman encoding
US4516246A (en) * 1982-02-26 1985-05-07 Prentice Corporation Data compression system
US4546342A (en) * 1983-12-14 1985-10-08 Digital Recording Research Limited Partnership Data compression method and apparatus
US4535320A (en) * 1984-06-22 1985-08-13 Digital Recording Research Limited Partnership Method and apparatus for digital Huffman decoding
US4646061A (en) * 1985-03-13 1987-02-24 Racal Data Communications Inc. Data communication with modified Huffman coding
US4899149A (en) * 1986-02-28 1990-02-06 Gary Kahan Method of and apparatus for decoding Huffman or variable-length coees
GB8717124D0 (en) * 1987-07-20 1987-08-26 British Telecomm P c m signal coding
US4841299A (en) * 1987-08-31 1989-06-20 Digital Recording Research Limited Partnership Method and apparatus for digital encoding and decoding
US4813056A (en) * 1987-12-08 1989-03-14 General Electric Company Modified statistical coding of digital signals
JPH0834432B2 (ja) * 1989-01-31 1996-03-29 三菱電機株式会社 符号化装置及び符号化方法
US5254990A (en) * 1990-02-26 1993-10-19 Fujitsu Limited Method and apparatus for compression and decompression of data
JP2697479B2 (ja) * 1992-04-17 1998-01-14 国際電信電話株式会社 可逆可変長符号化方式
EP0582907A3 (en) * 1992-08-10 1995-05-10 Stac Electronics Inc Device and method for data compression using search by comparison of strings and Huffman coding.
GB9224893D0 (en) * 1992-11-27 1993-01-13 Philips Electronics Nv Encoding and decoding data
KR100186915B1 (ko) * 1994-07-13 1999-05-01 모리시다 요이치 디지털 부호화 장치 및 디지털 부호 복호화 장치
US6373412B1 (en) * 2000-12-15 2002-04-16 International Business Machines Corporation Fast JPEG huffman encoding and decoding

Also Published As

Publication number Publication date
EE9900325A (et) 2000-02-15
MY121639A (en) 2006-02-28
EE9900324A (et) 2000-02-15
CN1249084A (zh) 2000-03-29
AU739418B2 (en) 2001-10-11
EE04409B1 (et) 2004-12-15
SE9604834D0 (sv) 1996-12-30
JP2001507543A (ja) 2001-06-05
EP0948845A1 (en) 1999-10-13
TR199901513T2 (xx) 1999-09-21
JP2001507542A (ja) 2001-06-05
CN1108015C (zh) 2003-05-07
US6218968B1 (en) 2001-04-17
AR014862A1 (es) 2001-04-11
SE512613C2 (sv) 2000-04-10
MY118092A (en) 2004-08-30
KR100375278B1 (ko) 2003-03-10
JP3995106B2 (ja) 2007-10-24
EP0948846A1 (en) 1999-10-13
SE9604834L (sv) 1998-07-01
BR9713639A (pt) 2000-04-11
AR008949A1 (es) 2000-02-23
AU730951B2 (en) 2001-03-22
WO1998029955A1 (en) 1998-07-09
AU5581198A (en) 1998-07-31
AU5581098A (en) 1998-07-31
BR9713795A (pt) 2000-02-01
CO4771137A1 (es) 1999-04-30
CN1249083A (zh) 2000-03-29
HK1027228A1 (en) 2001-01-05
WO1998029954A1 (en) 1998-07-09
KR100378319B1 (ko) 2003-03-29
TR199901505T2 (xx) 1999-09-21
US6556151B1 (en) 2003-04-29
CO4771136A1 (es) 1999-04-30
KR20000069833A (ko) 2000-11-25
CN1100390C (zh) 2003-01-29
HK1027227A1 (en) 2001-01-05
JP3960627B2 (ja) 2007-08-15

Similar Documents

Publication Publication Date Title
KR100375278B1 (ko) 정보 처리 방법 및 장치
CA2466652C (en) Method for compressing dictionary data
JP3459030B2 (ja) 符号化システム
EP0772364A2 (en) Image processing apparatus and method
US6100824A (en) System and method for data compression
EP0381078A2 (en) Coding method of image information
US5673042A (en) Method of and an apparatus for compressing/decompressing data
KR20120018360A (ko) 가변 길이 코딩을 위한 방법 및 장치
US5509088A (en) Method for converting CCITT compressed data using a balanced tree
US5594435A (en) Permutation-based data compression
CN116614139B (zh) 一种售酒小程序内用户交易信息压缩存储方法
Fenwick Improvements to the block sorting text compression algorithm
JP3130834B2 (ja) 移動電話機
EP0599418A2 (en) Encoding and decoding data
JPH0250667B2 (ko)
JP3239664B2 (ja) 可変長符号復号方法
CN116567239A (zh) 编解码方法、装置、编解码器、设备及介质
JPH0856164A (ja) データ符号化復号化装置及び方法
JP2006345374A (ja) データ符号化装置,データ復号装置,データ符号化方法およびデータ復号方法
JPH07147678A (ja) 可変長符号化回路
JPH10308673A (ja) データ符号化方法およびデータ符号化装置ならびにデータ復号化方法およびデータ復号化装置
JP2000224423A (ja) 画像圧縮装置および画像圧縮方法ならびに符号木生成方法ならびに情報記録媒体
JPH0659857A (ja) データ圧縮装置

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
LAPS Lapse due to unpaid annual fee