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

정보 처리 방법 및 장치 Download PDF

Info

Publication number
KR100375278B1
KR100375278B1 KR10-1999-7006002A KR19997006002A KR100375278B1 KR 100375278 B1 KR100375278 B1 KR 100375278B1 KR 19997006002 A KR19997006002 A KR 19997006002A KR 100375278 B1 KR100375278 B1 KR 100375278B1
Authority
KR
South Korea
Prior art keywords
value
numbers
binary
message
bits
Prior art date
Application number
KR10-1999-7006002A
Other languages
English (en)
Other versions
KR20000069834A (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)
  • Analogue/Digital Conversion (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (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}
정보 처리시에, 메시지의 기호가 특정 목적에 적합하게 되도록, 정보를 반송하는 메시지를 변환하는 것이 종종 바람직하다. 메시지 변환의 개념은 종종 인코딩 또는 디코딩이라고 칭해진다. 정보를 처리하는 전자 장치는 일반적으로 정보를 저장하는 기억 장치(memory unit) 및 상기 정보를 기억 장치로부터 검색한 후에 디스플레이하는 디스플레이 유닛을 포함한다. 기억 장치에 저장 가능한 정보의 양을 최대화하기 위해 및/또는 기억 장치의 크기를 감소시키기 위해, 정보는 기억 장치에 압축 상태로 저장될 수 있다.
미국 특허 제 5,062,152 호는 불균일한 확률 밀도의 진폭 범위를 갖는 아날로그 신호를 처리하는 방법을 개시하고 있다. 이 방법은 다수의 신호 레벨중 하나의 범위 내에 있도록 아날로그 신호를 양자화하는 단계, 및 상기 양자화 레벨의 발생 확률에 따라 이진 코드워드를 상기 양자화 레벨에 할당하는 단계를 포함한다. 미국 특허 제 5,062,152 호에 개시되어 있는 방법에 따르면, 각 코드워드는 8개의 이진값 숫자를 포함하도록 미리 결정된다.
미국 특허 제 5,488,616 호는 인코딩 방법을 개시하고 있다. 미국 특허 제 5,488,616 호에 따르면, 발생 확률을 갖는 각 기호가 제공된다. 이 방법의 첫번째 단계는 각 기호의 발생 확률에 따라 가변-길이-코드워드를 각 기호에 할당하는 단계이다. 이 단계는 허프만 코딩 방법을 사용한다. 그에 따라, 가변 길이 코드워드는 2개의 상이한 방식으로 코딩되어, 제 1 코드(C32) 및 제 2 코드(C34)가 제공된다. 최종 단계에서, 이러한 코드(C32,C34)중 하나 또는 모두가 선택되어, 가역 가변 길이 코드가 제공된다.
본 발명은 정보를 인코딩하는 방법 및 정보를 디코딩하는 방법에 관한 것이다. 본 발명은 또한 정보를 인코딩하는 장치 및 정보를 디코딩하는 장치에 관한 것이다.
도 1A는 인간 언어 메시지의 문자와 코드 기호 사이의 대응표(table of correspondence)를 생성하는 방법을 나타내는 순서도.
도 1B는 변환표를 나타내는 도면.
도 2는 본 발명의 일 실시예에 따른 데이터 압축 방법을 나타내는 순서도.
도 3A는 본 발명의 일 실시예에 따른 유한 상태 머신(finite state machine) 세트를 나타내는 도면.
도 3B 및 도 3C는 도 2에 따른 순서도의 단계 중 하나를 상세하게 나타내는 순서도.
도 3D는 도 3A에 따른 유한 상태 머신과 함께 작용하는 변환표의 예를 나타내는 도면.
도 3E는 비트 스트림의 예를 나타내는 도면.
도 4는 본 발명의 일 실시예에 따른 데이터 압축 장치의 제 1 실시예의 개략적인 블록도.
도 5는 도 4에 따른 데이터 압축 장치에 사용하기 위한 추정기(estimator)의 개략적인 블록도.
도 6은 도 2와 관련하여 설명된 방법에 따라 압축 및 저장되는 정보를 복원하는(restore) 수단을 포함하는 휴대용 전자 장치의 개략적인 블록도.
도 7은 본 발명의 일 실시예에 따른 데이터 복원 장치를 나타내는 도면.
도 8은 본 발명의 일 실시예에 따른 디코딩 방법을 나타내는 순서도.
도 9A 및 도 9B는 도 8에 따른 순서도의 단계 중 하나를 상세히 나타내는 순서도.
도 10은 아날로그 신호를 코딩 및 디코딩하는 유닛을 포함하는 통신 시스템의 개략적인 블록도.
부록 1은 제 1 비트 세트(Y)를 제 2 비트 세트(E)로 변환하는 컴퓨터 프로그램 의사 코드를 도시한다.
부록 2는 비트 스트림(E)을 비트 세트(Y)로 변환하는 컴퓨터 프로그램 의사 코드를 도시한다.
본 발명이 역점을 두고 다루는 한가지 과제는 어떤 양의 정보를 저장하는데 필요한 기억 공간(memory space)의 크기를 감소시키는 것이다. 특히, 본 발명의 일 실시예는 본질적으로 최소의 기억 공간이 필요한 정보 복구(retrieve) 프로그램에 의해 정보의 복구를 가능하게 하는 방식으로 정보의 압축을 달성하는 과제에 관한 것이다.
전술한 과제는 메시지의 비트의 수를 감소시키는 방법에 의해 해결되는데, 상기 방법은 다수의 문자를 포함하는 하나 이상의 메시지를 수신하는 단계; 및 압축된 수의 비트를 갖는 압축된 메시지가 생성되도록 미리 정해진 허프만 코딩 방법에 따라 메시지를 인코딩하는 단계를 포함한다. 압축 효과를 향상시키기 위해, 허프만 코딩 방법은, 하나 이상의 메시지의 문자의 상대 빈도(relative frequency)를 나타내는 값을 각 문자에 대해 계산하는 단계; 및 다수의 이진 숫자를 포함하는 제 1 이진 코딩된 코드워드를 최고 상대 빈도를 갖는 문자에 할당하는 단계 이후에 이루어진다. 예를 들면, 수신된 문자가 8 비트 워드로서 코딩된 경우, 및 수신된 메시지에 단지 64개의 상이한 문자가 존재하는 경우, 기호에 6 비트의 워드 길이를 사용하면 충분하다.
제 1 이진 코딩된 코드 기호의 모든 또는 실질적으로 모든 이진 숫자는 제 1 이진값으로 선택되는데, 예를 들면, 모든 비트가 0으로 설정될 수 있다. 유일한 (unique) 기호가 제 1 인코딩된 메시지를 생성하기 위해 각 유일한 나머지 문자에 할당된다. 각 기호의 이진 숫자는, 제 1 이진값을 갖는 숫자의 수가 제 1 인코딩된 메시지에서 최대화되도록 선택된다.
제 1 인코딩된 메시지는 제 2 이진 숫자 세트가 생성되도록 더 처리되는데, 상기 추가 처리는, 제 2 세트에서 제 1 이진값을 갖는 숫자의 수가 제 1 세트에서 제 1 이진값을 갖는 숫자의 수보다 크게 되도록, 제 2 숫자 세트의 숫자를 선택하는 단계를 포함한다.
바람직한 실시예에 따르면, 상기 추가 처리는, 제 2 숫자 세트의 비트의 시퀀스가 메모리 없는 베르누이 소스(memoryless Bernoulli source)의 출력과 유사하게 되도록, 제 2 숫자 세트를 연속적으로 생성하는데 적합하다. 또 다른 실시예에 따르면, 상기 추가 처리는, 제 2 숫자 세트의 비트의 시퀀스의 엔트로피가 메모리 없는 베르누이 소스의 엔트로피에 근사하게 되고; 제 2 숫자 세트의 비트의 시퀀스의 분포가 제 1 인코딩된 메시지의 비트의 분포와 실질적으로 무관하게 되도록, 제 2 숫자 세트를 생성하는데 적합하다.
본 발명에 교시되는 과제는 변환된 메시지가 효율적인 압축에 적합하게 되는 방식으로 메시지를 변환하는 방법을 제공하는 것이다. 이러한 과제는 청구항 5에 따른 방법, 청구항 35에 따른 장치, 및 청구항 48에 따른 기록 매체에 의해 해결된다.
본 발명에는, 또한, 예를 들면, 무선 링크를 통해 메시지를 송신하는 경우, 최소의 대역폭 또는 최소의 전력이 필요하게 되도록 메시지를 인코딩하는 과제가 교시된다. 이 과제는 청구항 1, 청구항 17 및 청구항 39에 의해 해결된다.
본 발명의 실시예에는 인코딩된 메시지로부터 ASCII 코딩된 텍스트와 같은 정보를 복구하는 과제가 교시된다. 이 과제는 청구항 24, 청구항 31, 청구항 43 및 청구항 51에 따른 방법 및 장치에 의해 해결된다.
본 발명의 실시예에는, 예를 들면, 무선 링크를 통해 아날로그 신호를 송신하기 위해 최소의 대역폭 또는 최소의 전력이 필요하게 되도록 아날로그 신호를 인코딩하는 과제가 교시된다. 이 과제는 청구항 15에 따른 방법에 의해 해결된다.
본 발명의 실시예에는 필요한 기억 공간을 최소로 유지하면서 텍스트 메시지를 다수의 언어로 디스플레이할 수 있는 장치를 제공하는 과제가 교시된다. 이 과제는 청구항 43에 따른 장치에 의해 해결된다.
본 발명에는 또한 변환된 정보가 효율적인 압축에 적합하도록 정보를 변환하는 장치를 제공하는 과제가 교시된다. 이 과제는 청구항 35에 따른 장치에 의해 해결된다.
본 발명에는 또한 본질적으로 최소의 기억 공간이 필요한 정보 복구 프로그램을 제공하는 과제가 교시된다. 정보 복구 프로그램의 용도는 압축된 메시지로부터 ASCII 코딩된 텍스트와 같은 정보를 복구하는 것이다. 이 과제는 청구항 51에 따른 기록 매체에 의해 해결된다.
본 발명의 바람직한 실시예는 정보 내용이 최소 수의 이진 숫자(비트)로 표시되도록 메시지를 코딩하는 방법에 관한 것이다. 바람직한 코딩 방법은 이하의 3개의 주요 단계에 의해 달성된다.
제 1 단계에서, 수신된 메시지의 각 문자가 해밍 기호로 변환된다. 이 단계의 결과로, 메시지에서 "1" 값을 갖는 비트의 수가 감소된다. 또한, 정보를 나타내는데 필요한 비트의 수가 감소된다.
제 2 단계에서, 해밍 기호가 제 1 비트 스트림(Y)으로 해석되어, 상기 해밍 기호가 추정(estimation) 처리됨으로써, 제 2 비트 스트림(E)이 생성된다. 추정 처리의 결과로, 제 1 비트 스트림(Y)에서 보다 제 2 비트 스트림(E)에서 0 값을 갖는 비트의 비율이 높아진다. 또한, 제 2 비트 스트림(E)의 비트의 시퀀스는 메모리 없는 베르누이 소스의 출력과 유사하다. "1" 값을 갖는 비트의 수가 매우 작기 때문에, 또한, 제 2 비트 스트림(E)의 비트의 시퀀스가 메모리 없는 베르누이 소스의 출력과 유사하기 때문에, 성공적인 허프만 코딩을 위한 조건은 제 2 비트 스트림 (E)에서 최적화된다.
제 3 단계에서, 제 2 비트 스트림(E)은, 압축된 비트 세트(C)가 생성되도록, 허프만 코딩 방법에 의해 압축된다. 이 단계의 결과로, 제 2 비트 스트림(E)이 허프만 코딩을 위한 최적 조건을 제공하기 때문에, 정보를 나타내는데 필요한 비트의 수가 현저히 감소된다.
본 발명을 잘 이해하기 위해, 본 발명은 첨부된 도면을 참고하여 실시예에 의해 설명된다.
인간 언어는 어떤 수의 단어를 포함하고, 이들 단어 중 일부는 다른 단어보다 더 자주 사용된다. 각 단어는 특정 문자의 조합으로, 또는 종종 하나의 문자만으로 표시될 수 있다. 이는, 어떤 하나의 특정 언어에서, 일부 문자가 다른 문자보다 더 자주 사용됨을 의미한다. 이동 전화기와 같은 전자 장치에서, 어떤 수의 미리 정해진 메시지가 저장되는데, 각 메시지는 어떤 이벤트에 응답하여 이동 전화기의 디스플레이 유닛상에 디스플레이된다. 일반적으로, 이 메시지는 읽기-전용 메모리에 저장된다. 메시지를 디스플레이하기 위해, 대응하는 데이터는 메모리로부터 판독(read)되어 각 문자에 대해 대응하는 ASCII 코드가 디스플레이 유닛에 전송되는데, 이에 응답하여 상기 디스플레이 유닛은 선택된 메시지를 구성하는 ASCII 코드의 조합을 디스플레이한다.
전술한 바와 같이, 하나의 특정 인간 언어에서 또는 미리 정해진 하나의 특정 메시지 세트에서, 일부 문자는 다른 문자보다 높은 상대 빈도를 갖는다. 본 발명은 미리 정해진 언어에서 정보를 나타내는데 필요한 비트의 수를 감소시키는 방법 및/또는 임의의 언어에서 미리 정해진 메시지 세트를 나타내는데 필요한 비트의 수를 감소시키는 방법에 관한 것이다.
변환표를 생성하는 방법
도 1A는 선택된 유형의 메시지의 총 해밍 가중치(weight)가 최소화되도록, 선택된 메시지 세트의 문자 또는 선택된 언어의 문자가 코드 기호로 변환될 수 있게 하기 위해 변환표를 획득하는 방법을 도시하는 순서도이다.
기호는 하나 또는 다수의 성분을 포함할 수 있다. 바람직한 실시예에 따르면, 각 코드 기호는 이진 숫자의 조합이다.
"1" 값을 갖는 숫자의 수가 최소화되면, 해밍 가중치는 최소화된다. 모든 문자를 대응하는 해밍 기호로 변환함으로써, 2개의 중요한 목적이 달성된다. 제 1 목적은 각 문자에 가중치를 할당하는 것이다. 후술되는 바와 같이, 해밍 가중치가 낮을 수록 기호의 압축성이 커지므로, 기호를 저장하는데 필요한 기억 공간과 해밍 가중치 사이에 링크가 제공된다. 둘째로, 후술되는 방식의 해밍 기호로의 변환은 메시지의 2개의 연속적인 문자 사이의 가중치 차이를 감소시킨다. 즉, 제 1 기호와 비교하여 제 2 기호에서 상이한 숫자 위치의 수가 감소된다.
도 1A를 참조하면, 첫번째 단계 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에서, 대응표가 생성되고, 이 표는, 후술되는 바와 같이, 저장을 위해 기억 장치로 전송된다. 해밍 기호는 실제로 저장될 필요가 없기 때문에, 대응 목록은 목록의 명칭을 나타내는 변수, 목록의 문자의 수를 나타내는 숫자 및 상대 빈도가 감소되는 순서의 문자를 포함하는 것만이 필요하다. 이런 최소량의 정보를 사용하여, 각 문자에 할당되는 각 헤밍 기호의 값을 계산할 수 있는데, 이는 대응표를 생성하는데 필요한 최적의 정보이다. 따라서, 문자의 목록 및 제어 워드(문자의 수를 나타내는 숫자)를 저장하는 것만 필요하기 때문에, 대응표에 대해 매우 소량의 기억 공간이 필요하다.
메시지를 변환하는 방법
도 2는, 비트 스트림이 최소 수의 숫자를 갖도록, 메시지를 비트 스트림으로 변환하는 방법을 도시하는 순서도이다.
상기 방법의 일 실시예의 첫번째 단계 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의 "최소 용장 코드의 구성 방법" 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으로 선택된다. 바람직한 실시예에 따라 코딩되는 메시지에 일반적으로 사용되는 알파벳는 26개의 문자보다 크기 않기 때문에, 파라미터 k는 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개의 상이한 카운트값을 갖는데, 그 각각은 후술되는 방법에 따라 개별적으로 제어된다.
이하의 예에서, 메시지의 세트는, 도 3D에 따른 문자(X)와 기호(H) 사이의 대응표가 확립되어 있도록, 도 1A와 관련하여 설명된 방법에 따라 분석되었다고 가정한다. 실제 경우에, 문자(X)는, 예를 들면, ASCII 코드로 도시될 수 있고, 문자의 목록은 목록의 문자의 수를 나타내는 수 다음에 도시되지만, 이런 설명을 간략하게 하기 위해, 대응표는 알파벳 문자와 3개의 숫자의 해밍 코드 사이의 직접적인 대응표로서 도시된다. 도 3D의 목록은 8개의 문자를 상대 빈도가 감소하는 순서로, 또한, 대응하는 해밍 기호를 해밍 가중치가 증가하는 순서로 도시한다.
도 3B를 참조하면, 단계 S200에서, 도 3E에 도시된 비트 스트림과 같은 연속적인 비트 스트림 Y = y1, y2, y3, …,yn의 형태로 메시지가 수신된다. 다음 단계 S210에서, 추정기는 출력 숫자 ei를 생성하는데, 이는 처음 m개의 숫자에 대해 입력 숫자 yi와 같다.
다음 단계 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)은 1씩 증가되는데, 즉, 도 3C에서 박스 S320에 도시된 바와 같이, V:=V+1이다. yi+1=0인 경우, 상기 선택된 유한 상태 머신의 선택된 상태의 카운트값(V)은 1씩 감소되는데, 즉, 도 3C에서 박스 S330에 도시된 바와 같이, 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"로 전이(transition)된다. 현재의 유한 상태 머신이 최종(k번째) 유한 상태 머신이면, 동일한 방식으로 제 1 유한 상태 머신의 상태로 전이된다.
그 다음, 인덱스값 i는, 박스 S360으로 표시된 바와 같이, 1씩 증가된다. 그 다음, 도 3C의 단계 S370으로 표시된 바와 같이, 수신된 비트 스트림(Y)에 어떤 추가 비트가 있는지를 제어하여, 응답이 "Yes"인 경우, 다시 단계 S250으로 진행하여 상기 선택된 유한 상태 머신의 선택된 상태의 카운트값(V)이 판독된다. 반면에, 이것이 메시지의 최종 비트였던 경우, 상기 절차는 종료된다.
데이터 압축 장치
도 4를 참조하면, 데이터 압축 장치(200)의 제 1 실시예의 블록도가 도시된다. 데이터 압축 장치는 변환될 메시지의 문자를 수신하는 문자 입력(210)을 포함한다. 문자 입력(210)은 데이터 버스(230)에 의해 변환 유닛(220)에 결합된다. 본 발명의 일 실시예에 따르면, 데이터 버스는 8개의 숫자 문자를 병렬로 전송할 수 있다. 본 발명의 다른 실시예에 따르면, 수신된 문자의 숫자는 변환 유닛(220)에 직렬로 전송된다. 또한, 문자 입력(210)에서 수신될 문자는 다른 수의 숫자를 포함할 수 있다. 변환 유닛은, 도 2의 단계 S110 및 S120을 참조하여 전술한 방식으로, 수신된 문자를 낮은 해밍 가중치를 갖는 기호로 변환하도록 설정된다. 대응하는 문자보다 적은 수의 숫자를 포함할 수 있는 결과(resulting) 기호는 출력(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는 스위치 유닛(310)으로 전송되는데, 이는 처음 m개의 숫자를 직접 출력(320)으로 스위칭하도록 설정된다. 비트 스트림 입력(300)은 또한 모듈로 2 가산기(350)의 제 1 입력(340)에 결합되고, 또한, 지연 유닛(355)을 통해 예측기 유닛(predictor unit)(330)에 결합된다. 지연 유닛(355)은, 비트 yi+1이 수신되면 비트 yi를 전송하도록, 1 비트를 기억한다. 예측기 유닛(330)은 가산기(350)의 제 2 입력 (360)에 결합되는 출력을 갖는다. 가산기(350)는 추정기 유닛 출력(320)에 결합되는 출력을 갖는다. 따라서, 추정기(260)는 도 3B 및 도 3C를 참조하여 전술된 방법을 수행하도록 설정된다.
전술한 방식으로, 예측기 유닛(330)은 다음 비트 yi+1의 값의 예측값 Pi+1을 생성하도록 설정된다. 즉, 예측기 유닛(330)은 h<i+1에 대해 히스토리값 yh에 대한 "추정값(guess)" 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를 참조하면, 디코딩 방법은, 다음 해밍 거리 ei+1의 예측을 나타내는 값 pi+1을 획득하기 위해, 미리 디코딩된 비트값 yi를 "히스토리"로서 사용하여, 동일 유형의 예측을 행하는 것에 기초한다. 예측 디코딩 방법이 예측 코딩에서와 동일 유형의 예측을 사용하기 때문에, 디코딩의 결과는 정확한 비트 스트림(Y)이다.
전자 데이터 처리 장치
도 6을 참조하면, 텍스트 메시지와 같은 정보를 디스플레이하는 디스플레이 유닛(410)을 포함하는 데이터 처리 장치(400)가 도시된다. 데이터 처리 장치(400)는 비휘발성 메모리(420), 마이크로프로세서(430) 및 읽기/쓰기 메모리(440)를 포함한다. 메모리(420)는 제 1 기억부(450)를 갖는데, 여기에 데이터 처리 장치(400)의 통상의 기능을 제어하기 위한 컴퓨터 프로그램이 저장된다. 데이터 처리 장치는, 예를 들면, 이동 전화기와 같은 휴대용 전자 장치일 수 있다. 메모리(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를 참조하여 설명된 방법은, 마이크로프로세서(430)가 기억부(460)에 저장된 프로그램을 실행함으로써, 상기 마이크로프로세서에 의해 실행될 수 있다. 대응표를 생성하기 위한 명령에 응답하여, 도 1A를 참조하여 설명된 방법에 따라 마이크로프로세서는 데이터 포트(500)에서 메시지의 수신을 대기하도록 설정되고, 메시지가 데이터 포트(500)에서 수신되면, 문자는 읽기/쓰기 메모리(440)에 일시적으로 저장된다. 수신된 메시지 또는 수신된 메시지 세트의 모든 문자가 일시적으로 저장되었으면, 마이크로프로세서는 상이한 문자의 수를 카운트하여 각 문자에 대한 상대 빈도를 계산하도록 설정된다. 그 다음, 마이크로프로세서(430)는 전술한 방식으로 코드 기호를 상이한 문자에 할당하도록 설정되어, 대응표가 생성된다.
다른 방법으로, 마이크로프로세서는 데이터 포트(500)를 통해 미리 만들어진 대응표를 수신하여 읽기/쓰기 메모리(440)에 상기 대응표를 저장하도록 설정된다. 도 1B를 참조하여 설명된 바와 같이, 대응표는 어떤 수에서 시작하여 동일 수의 문자가 이어지는 목록으로 제한될 수 있다.
그 다음, 마이크로프로세서는, 도 3B를 참조하여 전술한 방법에 따라, 수신된 메시지 또는 수신된 메시지 세트를 감소된 숫자 비트 스트림(E)으로 변환하기 위한 명령에 응답할 수 있다. 메시지 또는 메시지 세트가 비트 스트림으로 변환되면, 이런 비트 스트림은 메모리(440)에 저장된다. 물론, 마이크로프로세서는, 사용되는 메모리를 동작시키기 위한 가장 효율적인 방법에 따라, 또는, 다른 하드웨어를 고려하여, 한 비트씩 또는 예를 들면, 8비트 워드로 소트(sort)된 비트 스트림 (E)을 저장하도록 설정될 수 있다.
부록 1은 메시지 세트(Y)를 비트 스트림(E)으로 변환하기 위한 컴퓨터 프로그램 의사 코드를 도시한다. 상기 의사 코드는 도 2의 단계 S140 및, 도 3B 및 도 3C에 설명된 방법에 대응한다.
데이터 복원 장치
도 7을 참조하면, 데이터 복원 장치(600)의 제 1 실시예의 블록도가 도시된다. 데이터 복원 장치는 다수의 숫자 ci로 구성된 압축된 비트 스트림(C)을 수신하는 입력(610)을 포함한다. 입력(610)은 압축해제(decompression) 모듈(620)에 결합되는데, 이는 정보 내용을 유지하면서 비트 스트림(C)을 더 긴 비트 스트림(E)으로 확장하도록 구성된다. 압축해제 모듈(620)은 정적 허프만 코드에 따라 디코딩을 수행하도록 설정될 수 있다.
압축해제 모듈(620)은 확장된 비트 스트림(E)을 변환 유닛(630)의 입력(622)으로 전송하는데, 상기 변환 유닛은 전술한 추정기(260)의 실질적으로 반대 기능을 수행하도록 설정된다. 즉, 변환 유닛(630)은 다수의 기호(H)를 포함하는 비트 스트림(Y)을 직렬로 전송한다. 이를 위해, 추정기(260)는 도 5의 스위치(310)와 같이 기능하는 스위치(632)를 포함한다. 지연 유닛(634)은 도 5의 유닛(355)과 유사하게 비트 yi+1을 수신하면 비트 yi를 전송하고, 예측기 유닛(635)은 "히스토리" 값 yi을 수신함에 응답하여 예측값 pi+1을 생성한다. 반면에, 인코더(260)의 예측기 유닛 (330)이 피드-포워드(feed-forward) 방식으로 결합되는 반면, 디코더(630)의 추정기(635)는, 출력(Y)이 입력 비트 스트림(E)을 디코딩하기 위한 "히스토리" 데이터로서 사용되도록, 피드-백(feed-back) 방식으로 결합된다.
변환 유닛(630)은 비트 스트림(Y)을 출력(638)으로 전송하도록 설정된다. 비트 스트림을 기호로 변환하는 변환기(640)는 출력(638)에 결합된다. 기호(H)는 데이터 버스를 통해 변환 유닛(650)의 입력(642)으로 전송된다. 변환 유닛(650)은 기호(H)를 문자(X)로 변환하도록 동작하여, 원래 메시지가 복원된다. 문자(X)는 변환 유닛(650)으로부터 출력(660)으로 전송된다. 포트(660)상에서 전송되는 문자는, 예를 들면, 8 비트 ASCII 코드일 수 있다.
메시지를 복원하는 방법
도 8은 본 발명의 일 실시예에 따라, 압축된 비트 스트림(C)으로부터 메시지 (M)를 복원하는 방법을 도시하는 순서도이다. 첫번째 단계 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)을 판독한 다음, 압축된 비트 스트림(C)이 메시지(M)를 구성하는 문자(X)의 스트림으로 변환되도록, 단계 S610, S620, S640 및 S650을 실행하는 단계를 포함한다. 메시지(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)의 데이터 복원 프로그램은 인코딩 방법과 디코딩 방법 사이의 차이점을 정의하는 프로그램 루틴(routine)으로 한정될 수 있다. 따라서, 메모리에 디코딩 프로그램만을 저장하는 한쪽에서 사용하는 기억 공간과 디코딩 프로그램뿐만 아니라 인코딩 프로그램을 저장하는 다른쪽에서 사용하는 기억 공간 사이의 차이는 매우 작다. 또한, 당업자는, 전술한 코딩 방법 및 디코딩 방법은 매우 유리하게도 수가 적어 수학적으로 복잡하지 않는 단계가 필요하므로, 프로그램 자체는 유리하게도 작은 크기의 기억 공간이 필요함을 인식할 것이다. 이 때문에, 본 발명에 따른 메시지를 디코딩 및/또는 인코딩하기 위한 컴퓨터 프로그램은, 프로그램 코드를 위한 기억 공간의 사용이 장치의 크기로 직접 해석되는 휴대용 전자 장치에서 특히 유리하다. 이동 전화기에서, 예를 들면, 대량의 메시지가 메모리에 저장될 필요가 있고, 각 전화기는 바람직하게는 사용자에 의해 선택된 인간 언어로 메시지를 생성하도록 설정 가능해야 한다. 따라서, 본 발명의 목적은 이동 전화기의 비휘발성 메모리의 작은 크기의 기억 공간에 대량의 이와 같은 메시지 세트를 제공하는 것이다. 본 발명에 따른 디코딩 프로그램은 이와 같은 작은 크기의 기억 공간이 필요하기 때문에, 모든 상이한 언어 메시지는 코딩된 상태로 저장될 수 있고, 사용자가 메시지를 보기 원하는 언어를 선택했으면, 선택된 메시지 세트는 전술한 방법에 따라 디코딩된다. 예측 인코딩 및/또는 예측 디코딩 프로그램을 실행하는 동안, 다수의 카운트값(V)이 일시적으로 기억될 필요가 있기 때문에, 최대 크기의 기억 공간이 사용된다. 각 카운트값에 대한 비트의 수를 c로 나타내면, 카운트값을 저장하는데 필요한 비트의 수는 k·2m·c이다. 바람직한 실시예에 따르면, 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)는 메모리(830)의 변환표와 함께 작용하여, 코드워드(H)에 의해 정의되는 신호 레벨을 생성한다. 원래 신호가 샘플링되었던 주파수와 동일한 주파수로 코드워드(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)에 의해 사용된다.
필요한 양자화 신호의 수의 범위는 아날로그 신호의 최대 진폭 및 진폭 분해능(resolution)에 따라 결정된다. 아날로그 신호의 고성능 재생을 위해, 레벨 범위는 높은 진폭 분해능을 달성하도록 작아야하기 때문에, 대량의 양자화 신호 레벨이 사용되어야 한다.
아날로그 신호의 최대 진폭을 확립하기 위해, 상기 신호는 어떤 지속 시간 동안 측정된다. 진폭 분해능은 수동으로 또는 자동으로 설정될 수 있다. 코드워드의 워드 길이를 히스토리 최대 진폭 및 선택된 진폭 분해능에 적합하게 함으로써, 비트의 수는 디지털 신호(Y)에서 최소화된다.
변환 유닛(770)은 양자화 신호 범위와 코드워드 사이의 색인(concordance), 즉, 변환표를 생성한다. 목록은 변환 유닛(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)은 대응하는 데이터 버스(884)를 포함하는데, 이는 압축해제 모듈(620)과 변환 유닛(820) 사이에 직접 접속을 제공한다. 데이터 버스(884)에 의한 직접 접속은 변환 유닛(770)에 의해 전송되는 인코딩된 메시지의 비트의 수를 감소시킬 수 있다.
또 다른 실시예에 따르면, 추정기 유닛(260)과 송수신기(780) 사이에 직접 접속(890)이 존재하므로, 비트 스트림(Y)보다 더 적은 0을 유지하는 비트 스트림 (E)의 송신을 가능하게 한다. 이 때문에, 이 실시예는 불균일한 확률 밀도를 갖는 음성 또는 음악과 같은 신호를 송신하는데 필요한 전력을 더욱 감소시키는 이점을 갖는다. 상기 유닛(750)은 송수신기(810)와 디코더(630) 사이에 대응하는 직접 접속(900)을 포함한다.
물론, 유닛(740)은 코딩된 신호를 수신하고 그러한 신호를 디코딩하는데 적합할 수도 있다. 이 때문에, 유닛(740)은 전술한 부분(620,630,820,825,830,840, 850)과 같은 부분을 포함할 수 있다. 유사하게, 유닛(750)은 전술한 방식으로 아날로그 신호를 인코딩하는데 적합할 수 있다.
부록 1 페이지 1/2
부록 1 페이지 2/2
부록 2 페이지 1/2
부록 2 페이지 2/2

Claims (54)

  1. 메시지의 비트의 수를 감소시키는 방법으로서,
    압축된 메시지가 생성되도록 미리 정해진 허프만 코딩 방법에 따라 메시지를 인코딩하는 단계로서, 상기 압축된 메시지가 감소된 수의 비트를 갖는 메시지 인코딩 단계를 포함하는데,
    상기 허프만 코딩은,
    다수의 문자(A,B,C)를 포함하는 하나 이상의 메시지를 수신하는 단계(도 1A의 S20);
    각 문자에 대해, 상기 하나 이상의 메시지의 상기 문자의 상대 빈도를 나타내는 값(p)을 계산하는 단계(S40);
    다수의 이진 숫자를 포함하는 제 1 이진 코딩된 코드 기호(H1)를 최고 상대 빈도(p1)를 갖는 문자에 할당하는 단계(S60);
    상기 제 1 이진 코딩된 코드 기호(H1)의 모든 또는 실질적으로 모든 상기 이진 숫자를 제 1 이진값(0)으로 선택하는 단계;
    제 1 인코딩된 메시지를 생성하도록 유일한 기호(H2,H3)를 각 유일한 나머지 문자에 할당하는 단계로서, 상기 제 1 인코딩된 메시지가 제 1 숫자 세트(Y)로 구성되고, 각 기호(H2,H3)의 상기 이진 숫자는, 상기 제 1 이진값(0)을 갖는 숫자의 수가 상기 제 1 숫자 세트(Y)에서 최대화되도록, 선택되는 기호 할당 단계;
    제 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 항 또는 제 2 항에 있어서,
    상기 제 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 항 또는 제 6 항에 있어서,
    상기 비트값은, 상기 제 2 숫자 세트의 비트의 시퀀스의 엔트로피가 메모리 없는 베르누이 소스의 엔트로피에 근사하도록, 선택되는 것을 특징으로 하는 인코딩 방법.
  9. 제 5 항 또는 제 6 항에 있어서,
    상기 인코딩은, 상기 제 2 숫자 세트의 비트의 시퀀스가 메모리 없는 베르누이 소스의 출력과 유사하게 하는 것을 특징으로 하는 인코딩 방법.
  10. 제 5 항 또는 제 6 항에 있어서,
    상기 제 2 이진 숫자 세트(E)의 숫자(ei)를 생성하는 단계는,
    상기 제 2 세트(E)의 m개의 제 1 숫자값(ei)을 상기 제 1 세트(Y)의 m개의 제 1 숫자값(yi)과 동일하게 설정하는 단계를 포함하는데, 여기에서, m은 양의 정수인 것을 특징으로 하는 인코딩 방법.
  11. 제 5 항 또는 제 6 항에 있어서,
    상기 제 2 숫자 세트의 다음 숫자(ei+1)를 생성하는 단계는,
    상기 제 1 숫자 세트(Y)의 이전 숫자(yi)에 응답하여 예측값(pi+1)을 생성하는 단계;
    상기 제 1 숫자 세트(Y)의 실제 숫자값(yi+1)을 판독하는 단계;
    상기 예측값(pi+1)과 상기 실제 숫자값(yi+1) 사이의 해밍 거리를 계산하는 단계(S300); 및
    상기 제 2 숫자 세트(E)의 상기 숫자값(ei+1)을 상기 계산된 해밍 거리값과 동일하게 설정하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  12. 제 5 항 또는 제 6 항에 있어서,
    상기 제 2 이진 숫자 세트(E)의 숫자(ei)를 생성하는 단계는,
    상기 제 2 세트(E)의 m개의 제 1 숫자값(ei)을 상기 제 1 세트(Y)의 m개의 숫자값(yi)과 동일하게 설정하는 단계로서, 여기에서, m은 양의 정수인 설정 단계;
    상기 제 1 숫자 세트(Y)의 이전 숫자(yi)의 미리 정해진 수에 응답하여 예측값(pi+1)을 생성하는 단계로서, 여기에서, 상기 미리 정해진 수는 m 이하의 양의 정수인 생성 단계;
    상기 제 1 숫자 세트(Y)의 실제 숫자값(yi+1)을 판독하는 단계;
    상기 예측값(pi+1)과 상기 실제 숫자값(yi+1) 사이의 해밍 거리를 계산하는 단계(S300); 및
    상기 제 2 숫자 세트(E)의 상기 숫자값(ei+1)을 상기 계산된 해밍 거리값과 동일하게 설정하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  13. 제 11 항에 있어서,
    상기 예측값(pi+1) 생성 단계는,
    다수의 예측기 카운트값(V)을 확립하는 단계(S230)로서, 상기 각 예측기 카운트값(V)이 상기 제 1 숫자 세트(Y)의 숫자에 따라 선택 가능한(S240,S350) 확립 단계;
    상기 예측기 카운트값(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 항에 있어서,
    상기 예측값(pi+1)과 상기 실제 숫자값(yi+1) 사이의 해밍 거리를 계산하는 단계(S300)는,
    상기 예측값(pi+1)과 상기 실제 숫자값(yi+1)을 가산하여 모듈로 2 연산하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  15. 불균일한 확률 밀도의 진폭을 갖는 아날로그 신호를 인코딩하는 방법으로서,
    상기 신호가 다수의 신호 레벨 범위 중 하나의 범위 내에 있도록 상기 신호를 양자화하는 단계;
    코드워드(H)를 상기 양자화 레벨에 할당하여 상기 양자화된 신호를 코딩하는 단계로서, 상기 각 코드워드가 제 1 값("0") 또는 제 2 값("1")을 갖는 다수의 이진값의 숫자를 갖고, 높은 발생 확률의 양자화 레벨에는 낮은 발생 확률의 양자화 레벨에 할당되는 코드워드보다 제 2 값("1")을 갖는 작은 비트의 수의 코드워드가 할당되도록, 상기 코드워드가 상기 양자화 레벨의 발생 확률 및 상기 코드워드의 상기 제 2 값("1")을 갖는 비트의 수에 따라 할당되는 코딩 단계;
    상기 코드워드의 시퀀스를 제 1 이진 숫자 세트(Y)로서 전송하는 단계; 및
    제 5 항에 한정된 방식으로 상기 제 1 이진 숫자 세트(Y)를 인코딩하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  16. 제 15 항에 있어서,
    상기 코딩 단계가 신호 레벨 범위와 코드워드 사이의 색인를 정의하는 목록을 사용하여 실행되는 것을 특징으로 하는 인코딩 방법.
  17. 정보 처리 장치에서, 다수의 문자를 포함하는 메시지를 인코딩하는 방법으로서,
    메시지를 수신하는 단계;
    상기 수신된 메시지가 제 1 코딩된 메시지(Y)로 변환되도록 이진 코딩된 코드 기호를 상기 메시지의 각 문자에 할당하는 단계로서, 상기 각 코드 기호가 다수의 이진 숫자를 포함하고, 상기 각 이진 숫자가 제 1 값 또는 제 2 값을 갖는 코드 기호 할당 단계;
    상기 제 1 코딩된 메시지를 제 1 숫자 세트(Y)로서 해석하는 단계; 및
    제 5 항에 의해 한정된 방식으로 상기 제 1 숫자 세트(Y)를 인코딩하는 단계를 포함하는, 인코딩 방법.
  18. 제 17 항에 있어서,
    상기 변환 단계가, 실질적으로 상대 빈도(p1,p2,p3)가 감소하거나 증가하는 순서로 복구 가능한 문자를 포함하는 목록을 사용하여, 실행되는 것을 특징으로 하는 인코딩 방법.
  19. 제 17 항에 있어서,
    상기 변환 단계는,
    다수의 문자(A,B,C)를 포함하는 하나 이상의 메시지를 수신하는 단계(도 1A의 S20);
    각 문자에 대해, 상기 하나 이상의 메시지의 상기 문자의 상대 빈도를 나타내는 값(p)을 계산하는 단계(S40); 및
    제 1 이진 코딩된 코드 기호(H1)를 최고 상대 빈도(p1)를 갖는 문자에 할당하는 단계(S60)로서, 상기 제 1 이진 코딩된 코드 기호(H1)의 모든 또는 실질적으로 모든 상기 이진 숫자가 제 1 이진값으로 되도록, 상기 코드 기호(H1)가 다수의 이진 숫자를 포함하는 할당 단계를 포함하는 방법에 따라 실행되는 것을 특징으로 하는 인코딩 방법.
  20. 제 19 항에 있어서,
    상기 각 기호(H)는, 상기 인코딩된 메시지의 모든 기호에 대한 해밍 가중치의 합이 최소화 또는 최대화되도록, 생성되는 것을 특징으로 하는 인코딩 방법.
  21. 제 19 항에 있어서,
    문자의 목록을 생성하는 단계; 및
    상기 문자가 실질적으로 발생 확률(p1,p2,p3)이 감소하거나 증가하는 순서로 복구 가능하도록 상기 목록을 저장하는 단계(S70)를 포함하는 것을 특징으로 하는 인코딩 방법.
  22. 제 5항, 제 6 항 또는 제 15 항 내지 제 21 항 중 어느 한 항에 있어서,
    상기 인코딩된 메시지를 압축하는 단계를 더 포함하는 것을 특징으로 하는 인코딩 방법.
  23. 제 5항, 제 6 항 또는 제 15 항 내지 제 21 항 중 어느 한 항에 있어서,
    상기 제 2 숫자 세트(E)를 허프만 코딩 방법에 따라 인코딩하는 단계를 더 포함하는 것을 특징으로 하는 인코딩 방법.
  24. 제 1 비트 수를 갖는 제 1 비트 세트를 포함하는 압축된 메시지로부터 메시지를 복구하는 방법으로서,
    제 1 디코딩된 메시지(E)가 달성되도록 미리 정해진 허프만 디코딩 방법에 따라 압축 메시지(C)를 디코딩하는 단계로서, 상기 제 1 디코딩된 메시지가 제 2 이진 숫자 세트(E)를 포함하고, 상기 제 2 세트(E)가 제 2 비트 수를 가지며, 상기 제 2 비트 수가 상기 제 1 비트 수보다 큰 디코딩 단계를 포함하는데,
    상기 허프만 디코딩은, 상기 제 1 디코딩된 메시지(E)에 따라 제 3 이진 숫자 세트(Y)를 포함하는 제 2 디코딩된 메시지를 복구하는 단계 이전에 실행되고,
    상기 제 2 디코딩된 메시지(Y) 복구 단계는,
    상기 제 3 이진 숫자(yi,yi+1) 세트(Y)가 생성되도록 상기 제 2 코딩된 메시지(E)를 디코딩하는 단계(도 9A 및 도 9B의 S720-870)로서, 상기 각 이진 숫자 (yi,yi+1)가 제 1 값("0") 또는 제 2 값("1")을 가지고, 상기 제 3 세트(Y)의 상기 제 1 이진값("0")을 갖는 숫자의 수가 상기 제 2 세트(E)의 상기 제 1 이진값을 갖는 숫자의 수보다 작게 되도록, 상기 제 3 숫자 세트(Y)의 상기 이진 숫자(yi,yi+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)의 상기 제 1 이진값을 갖는 숫자의 수가 상기 제 2 세트(E)의 상기 제 1 이진값을 갖는 숫자의 수보다 적게 되도록, 상기 제 1 숫자 세트(Y)의 이진 숫자(yi,yi+1)가 선택되는 제 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)을 생성 단계는,
    다수의 예측기 카운트값(V)을 확립하는 단계(S230)로서, 상기 각 예측기 카운트값(V)이 상기 제 1 숫자 세트(Y)의 숫자에 따라 선택 가능한(S240,S350) 확립 단계;
    상기 예측기 카운트값(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 항 또는 제 26 항에 있어서,
    상기 제 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) 세트(E)를 생성하도록 설정되고, 상기 제 2 세트(E)의 상기 제 1 이진값을 갖는 비트의 수가 상기 제 1 세트(Y)의 상기 제 1 이진값을 갖는 비트의 수보다 크게 되도록, 상기 인코딩 수단(260)이 제 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 세트(E)의 이진 숫자(ei,ei+1)를 수신하는 제 1 입력(622); 및
    상기 제 1 입력 및 상기 제 1 출력에 결합되는 디코딩 수단(630)으로서, 상기 디코딩 수단(630)이 상기 제 2 이진 숫자 세트(E)에 따라 제 1 이진 숫자 세트를 생성하도록 설정되고, 제 1 이진값을 갖는 비트의 수가 인코딩된 메시지(E)에서 보다 낮게 되도록 상기 디코딩 수단(630)이 제 1 세트(Y)의 비트값(yi,yi+1)을 선택하도록 설정되는 디코딩 수단을 포함하는 것을 특징으로 하는 메시지 디코딩 장치.
  41. 제 40 항에 있어서,
    상기 디코딩 수단(630)은, 상기 제 1 비트 세트(Y)가 상기 제 2 세트(E)와 동일한 수의 비트를 포함하도록 동작하는 것을 특징으로 하는 메시지 디코딩 장치.
  42. 제 40 항에 있어서,
    상기 제 2 세트(E)를 수신하는 상기 제 1 입력(622)이 데이터 세트(e)를 압축된 데이터 세트(C)로부터 복구하는 장치의 출력에 결합되는 것을 특징으로 하는 메시지 디코딩 장치.
  43. 제 40 항 또는 제 42 항에 있어서,
    상기 제 1 이진 숫자 세트(Y)를 수신하는 제 2 입력;
    상기 제 1 이진 숫자 세트(Y)로부터 다수의 기호(H)를 추출하는 수단;
    다수의 메시지 문자를 포함하는 디코딩된 메시지를 전송하는 출력;
    상기 입력 및 상기 출력에 결합되는 디코딩 수단(650); 및
    개별 문자와 기호 사이의 색인을 나타내는 데이터를 포함하는 기억 장치 (420)을 더 포함하는데,
    상기 디코딩 수단이, 수신된 기호에 응답하여, 상기 기억 장치(420)의 데이터에 의해 표시되는 색인에 따라 메시지 문자를 선택하는 것을 특징으로 하는 메시지 디코딩 장치.
  44. 제 43 항에 있어서,
    상기 기억 장치 데이터는,
    상기 기억 장치에 기록되고, 상기 기호와 상기 문자 사이의 색인을 제공하 문자의 목록을 포함하는 것을 특징으로 하는 메시지 디코딩 장치.
  45. 제 35 항에 따른 인코더; 및
    제 40 항에 따른 디코더를 포함하는 것을 특징으로 하는 정보 처리 시스템.
  46. 제 35 항에 따른 장치를 포함하는 것을 특징으로 하는 전자 장치.
  47. 삭제
  48. 정보 인코딩 장치에 사용하는 컴퓨터 프로그램이 기록된 기록 매체로서, 상기 정보 인코딩 장치가 휘발성 기억 장치(440), 프로세서(430), 및 제한된 기록 용량을 갖는 비휘발성 기억 장치(420)를 포함하고, 상기 프로세서가 상기 휘발성 기억 장치 및 상기 비휘발성 기억 장치에 결합되는 기록 매체에 있어서,
    상기 컴퓨터 프로그램은,
    각 제 1 값 또는 제 2 값을 갖는 제 1 이진 숫자 세트(Y)를 수신하는 단계;
    이진 숫자(ei,ei+1)의 제 2 세트(E)를 생성하는 단계; 및
    상기 제 2 세트(E)의 상기 제 1 이진값을 갖는 비트의 수가 제 1 세트(Y)의 상기 제 1 이진값을 갖는 비트의 수보다 크게 되도록, 상기 제 2 세트(E)의 비트값 (ei,ei+1)을 선택하기 위해 프로세서에 지시하는 단계를 포함하여 정보를 인코딩하는 것을 특징으로 하는 기록 매체.
  49. 제 48 항에 있어서,
    상기 컴퓨터 프로그램은,
    상기 제 2 세트(E)가 상기 제 1 비트 세트(Y)와 동일한 수의 비트를 포함하도록 상기 제 2 비트 세트(E)를 생성하는 단계를 더 포함하는 것을 특징으로 하는 기록 매체.
  50. 제 48 항에 있어서,
    상기 컴퓨터 프로그램은,
    상기 제 2 세트(E)의 m개의 제 1 숫자값(ei)을 상기 제 1 세트(Y)의 m개의 제 1 숫자값(yi)과 동일하게 설정하는 단계로서, 여기에서, m은 양의 정수인 설정 단계;
    상기 제 1 숫자 세트(Y)의 숫자(yi)의 수에 응답하여 예측값(pi+1)을 생성하는 단계;
    상기 제 1 숫자 세트(Y)의 실제 숫자값(yi+1)을 판독하는 단계;
    상기 예측값(pi+1)과 상기 실제 숫자값(yi+1) 사이의 해밍 거리를 계산하는 단계; 및
    상기 제 2 숫자 세트(E)의 숫자값(ei+1)을 상기 계산된 해밍 거리값과 동일하게 설정하는 단계를 더 포함하는 것을 특징으로 하는 기록 매체.
  51. 압축된 데이터를 복구할 수 있는 휴대용 텍스트 처리 시스템에 사용되는 컴퓨터 프로그램이 기록된 기록 매체로서, 상기 텍스트 처리 시스템이 휘발성 기억 장치(440), 프로세서(430), 제한된 기록 용량을 갖는 비휘발성 기억 장치 (420), 및 디스플레이 유닛(410)을 포함하고, 상기 프로세서가 상기 휘발성 기억 장치, 상기 비휘발성 기억 장치 및 상기 디스플레이 유닛(410)에 결합되는 기록 매체에 있어서,
    상기 컴퓨터 프로그램은,
    상기 비휘발성 기억 장치(420)로부터 제 1 이진 숫자 세트(C)를 판독하는 단계;
    상기 제 1 이진 숫자 세트(C)에 응답하여, 제 2 이진 숫자(ei,ei+1) 세트(E)를 생성하는 단계로서, 상기 각 이진 숫자(ei,ei+1)가 제 1 이진값 또는 제 2 이진값을 가지고, 상기 제 2 세트(E)가 상기 제 1 세트(C)보다 큰 수의 숫자를 갖는 생성 단계;
    상기 제 2 이진 숫자 세트(E)에 응답하여, 제 1 이진값을 갖는 숫자의 수와 제 2 이진값을 갖는 숫자의 수 사이의 비율이 상기 제 2 세트(E)에서 보다 제 3 세트(Y)에서 더 작게 되도록, 제 3 이진 숫자 세트(Y)를 생성하는 단계;
    상기 제 3 세트(Y)의 미리 정해진 숫자의 그룹을 제 1 코딩된 메시지로 해석하는 단계;
    디코딩된 메시지가 복구되도록 상기 제 1 코딩된 메시지의 각 코드 기호를 대응하는 이진 코딩된 문자로 변환하는 단계; 및
    상기 제 1 이진값을 갖는 숫자의 수와 상기 제 2 이진값을 갖는 숫자의 수 사이의 비율이 상기 제 1 코딩된 메시지에서 보다 상기 디코딩된 메시지에서 더 작게 되도록, 코드 기호(H)를 이진 코딩된 문자(X)로 변환하는 단계를 포함하는 것을 특징으로 하는 기록 매체.
  52. 제 51 항에 있어서,
    상기 컴퓨터 프로그램은,
    상기 디코딩된 메시지의 문자 중 적어도 일부를 상기 디스플레이 유닛(410)으로 전송하는 단계를 더 포함하는 것을 특징으로 하는 기록 매체.
  53. 정보 디코딩 장치와 함께 사용되는 컴퓨터 프로그램이 기록된 기록 매체로서, 상기 장치가 휘발성 기억 장치(440), 프로세서(430), 제한된 기록 용량을 갖는 비휘발성 기억 장치(420), 제 1 값 또는 제 2 값을 갖는 각 제 1 비트 세트(Y)를 전송하는 제 1 출력(638), 및 제 2 비트(ei,ei+1) 세트(E)를 수신하는 제 1 입력 (622)을 포함하고, 상기 프로세서가 상기 휘발성 기억 장치 및 상기 비휘발성 기억 장치에 결합되는 기록 매체에 있어서,
    상기 컴퓨터 프로그램은,
    제 2 비트 세트(E)를 판독하는 단계;
    상기 제 2 비트 세트(E)에 따라 제 1 비트 세트(Y)를 생성하는 단계; 및
    상기 제 1 이진값을 갖는 비트의 수가 상기 제 2 비트 세트(E)에서 보다 작게 되도록 상기 제 1 세트(Y)의 비트값(yi,yi+1)을 선택하는 단계를 포함하는 것을 특징으로 하는 기록 매체.
  54. 제 53 항에 있어서,
    상기 컴퓨터 프로그램은,
    상기 제 1 비트 세트(Y)가 상기 제 2 세트(E)와 동일 수의 비트를 포함하도록 제 1 비트 세트(Y)를 생성하는 단계를 더 포함하는 것을 특징으로 하는 기록 매체.
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 KR20000069834A (ko) 2000-11-25
KR100375278B1 true 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) EP0948845A1 (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) TR199901505T2 (ko)
WO (2) WO1998029954A1 (ko)

Families Citing this family (41)

* 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 삼성전자주식회사 허프만 코드를 효율적으로 복호화하는 방법 및 장치
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
US7454076B2 (en) * 2004-06-15 2008-11-18 Cisco Technology, Inc. Hybrid variable length coding method for low bit rate video coding
US7499596B2 (en) 2004-08-18 2009-03-03 Cisco Technology, Inc. Amplitude coding for clustered transform coefficients
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
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
US7499595B2 (en) * 2004-08-18 2009-03-03 Cisco Technology, Inc. Joint amplitude and position coding for photographic image and video coding
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
DE602005018736D1 (de) * 2004-12-22 2010-02-25 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 中国电子科技集团公司第二十八研究所 一种字符型报文压缩方法
US9575683B2 (en) 2012-11-30 2017-02-21 Sandisk Technologies Llc Processing shaped data
US9135155B2 (en) 2012-11-30 2015-09-15 Sandisk Technologies Inc. Storage and retrieval of 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
GB2593691B (en) * 2020-03-30 2022-08-24 Imagination Tech Ltd Efficient encoding methods
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
WO1998029954A1 (en) 1998-07-09
KR100378319B1 (ko) 2003-03-29
CN1249083A (zh) 2000-03-29
WO1998029955A1 (en) 1998-07-09
SE512613C2 (sv) 2000-04-10
EP0948845A1 (en) 1999-10-13
EE9900324A (et) 2000-02-15
US6218968B1 (en) 2001-04-17
TR199901513T2 (xx) 1999-09-21
EP0948846A1 (en) 1999-10-13
CN1108015C (zh) 2003-05-07
AU739418B2 (en) 2001-10-11
CO4771137A1 (es) 1999-04-30
AU5581198A (en) 1998-07-31
MY121639A (en) 2006-02-28
EE04409B1 (et) 2004-12-15
AR014862A1 (es) 2001-04-11
HK1027228A1 (en) 2001-01-05
TR199901505T2 (xx) 1999-09-21
CN1100390C (zh) 2003-01-29
HK1027227A1 (en) 2001-01-05
AU5581098A (en) 1998-07-31
BR9713795A (pt) 2000-02-01
JP3960627B2 (ja) 2007-08-15
AR008949A1 (es) 2000-02-23
BR9713639A (pt) 2000-04-11
CN1249084A (zh) 2000-03-29
JP2001507542A (ja) 2001-06-05
JP2001507543A (ja) 2001-06-05
MY118092A (en) 2004-08-30
EE9900325A (et) 2000-02-15
SE9604834L (sv) 1998-07-01
KR20000069833A (ko) 2000-11-25
JP3995106B2 (ja) 2007-10-24
KR20000069834A (ko) 2000-11-25
SE9604834D0 (sv) 1996-12-30
AU730951B2 (en) 2001-03-22
CO4771136A1 (es) 1999-04-30
US6556151B1 (en) 2003-04-29

Similar Documents

Publication Publication Date Title
KR100375278B1 (ko) 정보 처리 방법 및 장치
US4633490A (en) Symmetrical optimized adaptive data compression/transfer/decompression system
JPH0136750B2 (ko)
KR20070086661A (ko) 선택적 압축과 복원 및 압축 데이터에 대한 데이터 포맷을위한 장치 및 방법
JP2000115781A (ja) 符号化装置
US5509088A (en) Method for converting CCITT compressed data using a balanced tree
US5594435A (en) Permutation-based data compression
US6188793B1 (en) Encoding apparatus, decoding apparatus, encoding method and decoding method
JP3990464B2 (ja) ディジタルビデオ信号プロセッサのためのデータ効率のよい量子化テーブル
US6055273A (en) Data encoding and decoding method and device of a multiple-valued information source
US20020037111A1 (en) Encoding apparatus, decoding apparatus, encoding method, and decoding method
SE516595C2 (sv) Kommunikationsanordning och arbetssätt för behandling av röstmeddelanden
US6636641B1 (en) Encoding apparatus, decoding apparatus, encoding method and decoding method
KR100462789B1 (ko) 이진 산술 부호화를 이용한 다중 부호 데이터 압축 방법및 장치
JP3130834B2 (ja) 移動電話機
JPH05119800A (ja) デジタル音声データの高能率圧縮方法
KR19980017375A (ko) 적응차분 펄스부호변조 복원회로
JPH0856164A (ja) データ符号化復号化装置及び方法
JPH0828668B2 (ja) 音声信号の符号化方法
Liang ENSC 861–Source Coding in Digital Communications Arithmetic Coding 2
Seena et al. Implementation of Data Compression using Huffman Coding
JP2000224423A (ja) 画像圧縮装置および画像圧縮方法ならびに符号木生成方法ならびに情報記録媒体
JP2000299640A (ja) 適応確率推定方法、適応符号化方法、適応復号方法、適応確率推定装置、適応符号化装置及び適応復号装置
KR20010055465A (ko) 스위칭 시스템에서 음성 데이터 이득 제어 장치 및 방법
JP2002297194A (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