KR20090042233A - 데이터 압축 - Google Patents

데이터 압축 Download PDF

Info

Publication number
KR20090042233A
KR20090042233A KR1020097000506A KR20097000506A KR20090042233A KR 20090042233 A KR20090042233 A KR 20090042233A KR 1020097000506 A KR1020097000506 A KR 1020097000506A KR 20097000506 A KR20097000506 A KR 20097000506A KR 20090042233 A KR20090042233 A KR 20090042233A
Authority
KR
South Korea
Prior art keywords
symbol string
code
data
symbol
coding
Prior art date
Application number
KR1020097000506A
Other languages
English (en)
Other versions
KR101092106B1 (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 KR20090042233A publication Critical patent/KR20090042233A/ko
Application granted granted Critical
Publication of KR101092106B1 publication Critical patent/KR101092106B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

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

Abstract

본 발명은 관련 데이터의 그룹핑을 압축하는 방법에 관한 것이다. 이 방법은 (a) 압축 대상 데이터 내에서 발생하는 기호열을 선택하고, 압축 대상 데이터의 그룹핑 내에서 기호열의 하나 이상의 포지션을 표시하는 기호열 코드를 발생하는 단계와; (b) 그룹핑 내에서 발생하는 추가의 기호열에 대하여 상기 (a) 단계를 연속적으로 반복하는 단계와; (c) 각각의 기호열 코드를 압축 데이터 코드에 조합하는 단계를 수행한다.

Description

데이터 압축{DATA COMPRESSION}
이 특허 출원은 데이터 압축에 관한 것이다.
최근, 많은 사람들이 네트워크를 통해 데이터를 공유하는 것이 점점 더 일반화되고 있지만, 데이터의 전송은 대역폭 활용의 면에서 비용이 든다. 그러므로, 대량의 데이터는 종종 압축을 시키고 있다. 압축은 자기(magnetic) 매체 또는 기타의 매체에 데이터를 저장하는 데에도 또한 사용될 수 있다.
본 발명은 관련 데이터의 그룹핑을 압축하는 방법에 관한 것이다. 이 방법은 (a) 압축 대상 데이터 내에서 발생하는 기호열을 선택하고, 압축 대상 데이터의 그룹핑 내에서 기호열의 하나 이상의 포지션을 표시하는 기호열 코드를 발생하는 단계와; (b) 그룹핑 내에서 발생하는 추가의 기호열에 대하여 상기 (a) 단계를 연속적으로 반복하는 단계와; (c) 각각의 기호열 코드를 압축 데이터 코드에 조합하는 단계를 수행한다.
본 발명의 대상은 명세서의 결론 부분에서 특별히 지적되고 명료하게 청구된다. 그러나, 구성 및 동작 방법에 관한 청구된 대상은, 발명의 목적, 구성 및 장점들과 함께, 첨부도면을 참조하면서 이하의 상세한 설명을 읽음으로써 최상으로 이해할 수 있을 것이다.
도 1은 청구된 대상에 따른 일 실시예를 나타내는 개략도이다.
이하의 상세한 설명에서, 많은 특정 세부들은 청구된 대상의 완전한 이해를 제공하도록 설명된다. 그러나, 청구된 대상은 이러한 특정 세부없이도 실시될 수 있다는 것을 당업자라면 이해할 것이다. 다른 예로서, 잘 알려져 있는 방법, 절차, 구성 요소 및/또는 회로들은 청구된 대상을 불명료하게 하지 않도록 그 상세한 설명을 생략할 것이다.
이하의 상세한 설명 중의 일부는 연산 시스템, 예컨대 컴퓨터 및/또는 연산 시스템 메모리 내에 저장된 데이터 비트 및/또는 이진 디지털 신호에 대한 동작의 알고리즘 및/또는 기호 표시의 면에서 제시된다. 이들 알고리즘적 설명 및/또는 표시는 데이터 처리 기술에 숙련된 당업자가 그들 작업의 내용을 다른 당업자에게 전송하기 위해 사용하는 기술이다. 여기에서의 알고리즘은 일반적으로 소망의 결과를 유도하는 동작 및/또는 유사한 처리의 일관성있는 시퀀스로 고려된다. 동작 및/또는 처리는 물리량(physical quantity)의 물리적 조작을 수반할 수 있다. 반드시는 아니지만 전형적으로, 이들 수량은 저장, 전송, 조합, 비교 및/또는 다른 방식으로 조작이 가능한 전기적 및/또는 자기적 신호의 형태를 취할 수 있다. 때때로, 통상 사용의 이유 때문에, 이들 신호들은 비트, 데이터, 값, 요소, 기호, 문자(character), 용어, 번호, 숫자 등으로 인용되는 것이 편리하다. 그러나, 상기 및 유사한 용어들은 모두 적당한 물리량과 관련되고 단지 편리한 라벨이라는 점을 이해하여야 한다. 이하의 설명에서 명백한 바와 같이, 다른 방식으로 특수하게 설명하지 않는 한, 이 명세서 전반에 걸쳐서 "처리", "연산", "계산", "결정" 등과 같은 용어를 사용하는 설명은 연산 플랫폼(computing platform)의 프로세서, 메모리, 레지스터, 및/또는 기타 정보 기억, 전송, 및/또는 디스플레이 장치 내에서 물리적 전자 및/또는 자기량(magnetic quantity) 및/또는 물리량으로서 표시되는 데이터를 조작 및/또는 변환하는, 컴퓨터 또는 유사한 전자식 연산 장치와 같은 연산 플랫폼의 액션 및/또는 처리를 참조한다는 것이 명백하다.
청구된 대상의 범위가 이것으로 제한되는 것은 아니지만, 데이터 압축 방법에 관한 하나의 특수한 실시예에 대하여 이하에서 설명한다. 압축 대상 데이터의 집합 또는 그룹핑 내에서 발생하는 기호열(symbol string)이 선택된다. 기호열 코드는 데이터 내에서 기호열의 하나 이상의 포지션을 표시하도록 발생된다. 마찬가지로, 데이터 내에서의 다른 기호열에 대하여 이 과정이 반복될 수 있다. 그 다음에, 각 기호열 코드를 조합하여 데이터 코드를 형성한다. 결과적인 데이터 코드는 데이터 집합 또는 그룹핑의 압축된 형태를 갖는다. 이 데이터 코드는 필요에 따라 전송되거나 저장될 수 있다.
하나의 특수한 실시예는 선택된 기호열이 발생하는 포지션들을 계속적으로 식별하고, 선택된 기호열의 발생 지점간의 거리를 결정하며, 데이터 내에서 선택된 열의 각 포지션을 표시하는 거리를 포함한 코드를 발생함으로써 실시될 수 있지만, 청구된 대상은 그 범위가 이것으로 제한되는 것이 아니다. 마찬가지로, 여기에서, 기호들은 임의 종류, 형태 또는 포맷의 데이터를 포함할 수 있다. 예를 들면, 기호는 레코드, 파일, 섹터, 클러스터, 그룹핑 및/또는 이들의 일부를 포함할 수 있다. 또한 기호들은 워드, 바이트, 비트, 텍스트, 문자 등을 포함할 수 있다. 기호열은 단일 기호 또는 복수의 기호를 포함할 수 있다. 마찬가지로, 기호열은 길이가 고정된 것일 수도 있고 가변적인 것일 수도 있다.
하나의 특수한 실시예에서, 기호열은 특수한 순서 또는 미리 정해진 순서로 코딩될 수 있지만, 이것은 단지 예일 뿐이고, 청구된 대상이 이것으로 제한되는 것은 아니다. 대안적으로 또는 추가적으로, 하나의 순서로 코딩하는 대신에, 기호열은 임의의 순서로 코딩될 수 있다. 그러한 실시예에서, 기호열 코드는 예컨대 특수 기호열을 표시하는 어떤 다른 코드에 의해 프리픽스(prefixed)될 수 있지만, 청구된 대상은 이 예시적인 실시예로 그 범위가 제한되는 것은 물론 아니다. 마찬가지로, 하나의 특수한 실시예로서, 사용되는 방법은 각 모드, 예를 들면, 기호열 코드가 미리 정해진 순서로 전송되거나 저장되는 모드와 순서가 미리 정해져 있지 않은 모드 사이에서 전환가능하지만, 상기 후자의 모드에서, 대응 기호열을 표시하는 일부 코드가 기호열 코드의 일부로서 미리 전송될 수 있다.
기호열이 하나의 기호열의 반복을 포함하는 경우, 기호열 코드는 기호열의 연속적인 발생의 존재를 표시하는 데이터를 포함할 수 있다. 연속적인 발생을 표시하는 데이터의 저장 또는 전송은 전형적으로 그러한 발생을 개별적으로 전송하는 것보다 압축 관점에서 더 효율적일 수 있다. 하나의 특수한 실시예에서, 각 포지션은 런렝쓰 코딩에 의해 신호될 수 있지만, 뒤에서 자세히 설명하는 바와 같이, 대 안적으로 또는 추가적으로 다른 코딩 방법도 또한 가능하다. 마찬가지로, 코딩은 적어도 부분적으로 콘텍스트 의존형일 수 있다. 예를 들어서 코딩할 데이터의 집합 또는 그룹핑의 길이를 미리 알고 있으면, 그것이 제1 기호열 코드에 프리픽스될 수 있다. 적어도 부분적으로 실시예의 상세(particulars)에 따라서, 그 특수 기호열에 대응하는 추가 정보의 전송 또는 저장없이 최종 기호열의 각 포지션을 결정할 수 있으며 이것에 대해서는 다시 뒤에서 자세히 설명한다.
기호열의 일부 또는 전부에 대한 부차적인 또는 추가적인 정보가 데이터 코드에 또한 포함될 수 있다. 하나의 특수한 실시예에서, 특수 기호열에 대한 추가 정보는 대응하는 기호열 코드의 끝에서 전송되거나 또는 대응 기호열 코드와 결합될 수 있다. 대안적으로, 추가 정보는 기호열 코드를 전송 또는 저장한 후에 전송 또는 저장될 수 있다. 더 일반적으로, 추가 정보는 디코더가 그 정보를 대응 기호열과 결합시킬 수 있도록 임의의 시간에 임의의 방식으로 제공될 수 있다. 사용할 기호열의 목록 또는 표는, 예를 들면, 미리 정해지거나 미리 규정될 수 있다. 대안적으로 또는 추가적으로, 상기 목록 또는 표는, 예를 들면, 적어도 부분적으로, 압축 대상 데이터에서 발생하는 기호열에 따라서 컴파일될 수 있다.
특수 집합 또는 그룹핑의 데이터에 대한 기호열 코드가 저장 또는 전송된 후에 엔드 코드를 사용할 수 있다. 최종 기호열을 제외하고, 데이터의 집합 내에 있는 기호열의 포지션이 저장 또는 전송된 후에, 적어도 일부 실시예에서 최종 기호열의 포지션이 결정될 수 있다. 그러므로, 뒤에서 자세히 설명하는 바와 같이, 인코더는 최종 기호열의 포지션을 저장 또는 전송하는 것을 생략할 수 있다.
마찬가지로, 청구된 대상이 내포하는 실시예들은, 예를 들면, 임의의 상기 방법을 구현할 수 있는 컴퓨터 프로그램, 및/또는 그러한 방법을 구현할 수 있는 컴퓨터 시스템을 포함한다. 실시예들은 또한 데이터의 압축을 나타내는 데이터 코드로부터 원래의 데이터 집합 또는 그룹핑을 재구성할 수 있는 하드웨어 및/또는 소프트웨어 디코더와 함께, 뒤에서 설명하는 방법을 실행할 수 있는 하드웨어 및/또는 소프트웨어 코더를 포함한다. 이러한 실시예뿐만 아니라 많은 다른 실시예들은 청구된 대상의 범위 내에 있는 것으로 의도된다.
여기에서 설명하는 적어도 일부 실시예에서, 압축은 무손실이지만, 청구된 대상의 범위가 이것으로 제한되는 것은 아니다. 예를 들면, 일부 실시예에서, 데이터 코드는 압축 대상 데이터에 내포된 기호열들의 각 포지션에 관한 정보를 포함할 수 있다.
이 특수 상황에서, 압축 대상 관련 데이터의 임의의 그룹핑, 집합 또는 일부는 순서정해진 시퀀스(ordered sequence)의 문자 또는 다른 기호로서 취급된다. 그러한 데이터가 예컨대 텍스트를 나타내면, 개별 기호들은 하나 이상의 텍스트 문자를 포함할 수 있지만, 이것은 물론 본질적인 것은 아니다. 많은 다른 기호들이 또한 표시될 수 있다. 더 일반적으로, 기호들은 바이트 또는 다른 크기의 데이터 그룹핑으로 제공될 수 있다. 예컨대 바이트 즉 디지털 워드 길이 내에서 맞을 수도 있고 맞지 않을 수도 있는 더 길거나 더 짧은 부분의 데이터를 사용하는 것도 또한 가능하다. 만일 데이터가 이진수 형태로 표시되면, 기호는 특수 실시예에 따라서 고정형 또는 가변형 길이의 단일 비트 또는 복수 비트로서 표시될 수 있다.
일 예로서, 파일, 레코드 또는 데이터의 다른 단일 결합으로서 저장된 데이터는 전체로서 취급될 수 있고, 또는 그 대신에, 어느 정도의 압축 효율을 갖고서 코딩될, 여기에서 기호열이라고 부르는 기호 그룹핑에 대해서는 충분히 길지만 편리하게 처리되도록 충분히 짧은 편리한 길이로 구획되거나 분리될 수 있다. 이에 대한 각종 방법은 뒤에서 자세히 설명된다.
예를 들면, 초기에, 하나의 특수한 실시예에서, 데이터 집합 내에서 발생할 수 있는 기호열의 목록 또는 표가 만들어진다. 이 목록에는 데이터에 관한 선험 지식 또는 정보 관련 통계에 적어도 부분적으로 기초하는 기호열의 초기 목록이 추가된다. 예를 들면 텍스트에 있어서, 공통 기호열은 "ee", 또는 "and"나 "or"와 같은 자주 발생하는 워드, 또는 공백(blank)이 뒤따르는 구둣점 기호를 포함하여 몇가지 간단한 예를 제공할 수 있다. 물론, 청구된 대상은 그 범위가 이들 예로 또는 이러한 특수 실시예로 제한되는 것이 아니다. 많은 가능한 변형예도 청구된 대상의 범위 내에 포함된 것으로 또한 의도된다.
다른 예로서, 특수한 데이터 집합은 공통적으로 발생하는 기호열을 식별하기 위하여 코딩을 시작하기 전에 시험될 것이다. 대안적으로 또는 추가적으로, 만일 구획(partitioning)이 적용되면, 이 구획들은 예를 들면 기호열의 초기 목록을 이용해서 별도로 즉 독립적으로 취급될 수 있다. 이 초기 목록은, 적어도 부분적으로, 예를 들면 이전의 데이터 구획에서 나타난 기호열로부터 결정될 수 있다.
대안적으로, 기호열은 일 예로서 렘펠-집-웰시(Lempel-Ziv-Welsh) 코딩에서 발생할 때 코딩을 진행함에 따라 추가될 수 있다. 그러나, 이 실시예에서, 코딩 기 호열은, 뒤에서 설명하는 바와 같이, LZW 코딩에서 사용하는 방법과 완전히 다르다. LZW에서, 기호열은 다른 더 긴 기호 또는 열을 치환함으로써 코딩된다. 이 때문에, LZW는 때때로 데이터 집합을 압축하지 않을 수 있고, 어떤 경우에는 더 긴 데이터 집합을 생성할 수 있다. 이와 대조적으로, 청구된 대상에 따른 실시예는 뒤에서 더 자세히 설명하는 바와 같이 압축을 행한다.
데이터의 그룹핑 또는 집합을 압축하기 위해, 이용가능한 기호열의 목록으로부터 제1 기호열이 선택된다. 데이터에서의 이러한 기호열의 발생 위치를 찾아낸다. 데이터 내에서 제1 기호열의 포지션은 유지된다. 이 처리는 그 다음에 데이터에 대한 추가의 기호열에 대하여 반복되어 집합 또는 그룹핑을 특정한다. 기호열을 포함한 데이터는 임의의 순서로 처리될 수 있다. 그러나, 데이터 집합 또는 그룹핑의 처음부터 끝까지 순차적으로 행하는 처리가 하나의 편리한 방법일 수 있다.
전형적으로, 코딩은 하드웨어 또는 소프트웨어 코더에 의해 실행된다. 하나의 가능한 실시예에서, 코더는 코딩 후의 데이터를, 실시간으로 또는 다른 방식으로, 수신된 코드화 데이터를 이용하여 데이터 집합을 재구성하도록 구성된 디코더에 통신 채널을 통하여 전송하도록 구성될 수 있다.
다시, 청구된 대상은 그 범위가 특정 실시예로 제한되는 것이 아니다. 그러므로, 앞에서 또는 뒤에서 설명하는 실시예는 단순히 설명을 목적으로 한 예로서 의도된다. 많은 다른 방법 및/또는 실시예가 상기 특정 예가 아닌 청구된 대상의 범위 내에 포함되도록 의도된다. 그럼에도 불구하고, 이제 도 1을 참조하여 상기 예들을 가지고 계속하여 설명한다. 도 1은 청구된 대상에 따른 하나의 가능성있는 실시예의 개략도이다.
도 1의 예에서, 한줄의 텍스트가 데이터의 집합 또는 그룹핑을 나타내도록 도시되어 있다. 마찬가지로, 기호열, 여기에서는 글자(letter) "x"가 이 예에서 처리될 것이다. 물론, 청구된 대상은 이 예시적인 실시예 또는 임의의 특정 실시예로 제한되는 것이 아니다. 이 예는 단순히 설명 목적으로 도시한 것이다. 많은 다른 가능성있는 실시예들도 청구된 대상의 범위 내에 포함되는 것으로 의도된다.
하나의 위치, 여기에서는 도 1에 10으로 표시된 "시작부"라고 부르는 위치에서 시작하여, 텍스트 데이터(110)가 이 예에서 순차적으로 검사된다. 물론, 청구된 대상은 앞에서도 언급한 바와 같이 순차적인 검사로 제한되는 것이 아니다. 그럼에도 불구하고, 선택된 기호열, 여기에서는 "x"의 발생이 나타나면, 그 발생에 대한 정보, 예컨대 이 예에서는 그 위치가 유지된다. 도시된 예에서, 기호열 "x"의 최초 발생은 참조 번호 20으로 표시된 바와 같이 시작부(10)로부터 5번째 포지션에서 발생하고 있다. 기호열 "x"는 참조 번호 30으로 표시된 바와 같이 시작부로부터 9번째 포지션, 즉 이전의 "x"로부터 4개의 포지션을 지나서 다시 발생하고 있다.
이어서, "x"는 참조 번호 40으로 표시된 바와 같이, 이전 "x"로부터 5개의 포지션 뒤에 다시 발생한다. 후속되는 포지션 간격은 참조 번호 50, 60, 70으로 각각 표시된 바와 같이 3, 2, 2이다.
텍스트 데이터(110)가 이러한 방법으로 "종단" 포지션(여기에서는 100으로 표시됨)까지 완전하게 분석되고 나면, 데이터 집합의 부분 내에서 각 포지션을 표시하는 코드가 이 코드를 저장 또는 전송함으로써 발생된다. 이 특정 실시예에서 는, 사실상, x가 발생하지 않은 포지션들이 저장 또는 신호된다. 이 상황에서, 이것은 런렝쓰 코딩이라고 부른다. 여기에서는 x를 포함하지 않은 포지션들의 "연속"(run)이 코딩된다.
도 1의 단순한 예에서, 데이터는 한줄의 텍스트로 구성되고 기호열은 하나의 글자로 구성된다. 청구된 대상의 범위 내에 있는 이것의 변형예에 있어서, 더 길고 더 복잡한 기호열의 발생이 추구될 수 있다. 뒤에서 자세히 설명하는 바와 같이, 이러한 예로는 고정된 미리 규정된 형태를 가진 기호열이 있을 수 있고, 또는 대안적으로, 예컨대 형태, 길이 및/또는 구성에 있어서 융통성있는 기호열이 있을 수 있다. 융통성의 정도는 미리 규정되거나 적어도 부분적으로 데이터의 일부 특성에 일부 의존하여 계산될 수 있다. 추가의 예시적인 기호열은 뒤에서 나타내었다.
* "x"와 같은 임의의 글자, 기호 또는 문자 α. 이것은 원칙적으로 단일 기호 포지션을 포함한다.
* "st"와 같은 임의의 바이그래프 α1 α2.
* "str"과 같은 임의의 조합 α1 α2 α3.
* "st _ _ ng"와 같은 임의의 더 긴 조합 α1 α2 α3 ... αn. 여기에서 밑줄은 단일 기호 포지션을 나타낸다.
최초 기호열의 포지션들이 결정된 후, 가능하거나 공지된 기호열의 목록 내에서 두번째 기호열의 포지션이 결정될 수 있다. 이와 같은 방법으로, 점차적으로 데이터의 집합이 코드화된다. 코딩이 진행됨에 따라, 코더는 포지션과 같이 위치가 찾아진 기호열에 대한 정보를 일부 실시예에서 실시간으로 디코더에 전송할 수 있다. 대안적으로 코드화 데이터는 압축된 표시로서 국부적으로 저장될 수 있다.
이 예시적인 실시예는 다음과 같이 의사 코드(pseudo-code)로 표시할 수 있다.
For S = Symbol Strings
Indicate positions of S in a set of data
End
다른 예로서, 8개의 기호열(S1~S8)로 이루어진 짧은 시퀀스 S를 생각하자. 설명의 목적상, 여기에서의 기호열은 텍스트의 단편(fragment)을 포함하지만, 청구된 대상의 범위가 이것으로 제한되는 것은 아니다. 이러한 단편은 짧고, 또한 기호열은 텍스트를 전혀 포함하지 않을 수 있으며, 이것도 역시 청구된 대상의 범위 내에 속한다. 2개의 워드 사이의 공간(space)은 이 예에서 기호열을 또한 포함하며, 다음과 같이 표시된다.
S: 'the test'
S1 S2 S3 S4 S5 S6 S7 S8
t h e '공간' t e s t
이 예에서, 기호열의 포지션은 임의의 편리한 방법으로 표시될 수 있다. 포지션을 통신 또는 전송하기 위한 편리한 방법은 평이한 숫자를 이용하는 것이다. 기호열의 집합은 임의 순서의 데이터 집합과 관련하여 평가된다. 설명의 목적상, 일 예로서, 기호열이 순서 'e' 't' 's' 'h' '공간'을 갖는다고 가정하자. 물론, 청 구된 대상은 이 예로 또는 임의의 특정 예로 그 범위가 제한되는 것이 아니다. 그러나, 이 예에서 하기의 기호열이 다음과 같이 통신 또는 저장될 수 있다.
3 6 1 5 8 7 2 4
e를 스캔함 t를 스캔함 s를 스캔함 h를 스캔함 '공간'을 스캔함
위에서 3과 6은 기호열 'e'의 포지션을 나타내고, 1, 5 및 8은 't'의 포지션을 나타내며, 7은 's'의 포지션을, 2는 'h'의 포지션을, 및 4는 '공간'의 포지션을 나타낸다.
이 특정 실시예에 있어서, 특정 기호열에 대한 추가 정보로서 통신 또는 저장될 것이 없음을 표시하는 기술이 요구된다. 이것을 행하는 한가지 방법은 End Of Group(EOG)에 대한 특수 기호를 정의하는 것일 수 있다. 이것은 이 실시예에서 다음과 같이 주어진다.
3 6 EOG 1 5 8 EOG 7 EOG 2 EOG 4 EOG
e를 스캔함 t를 스캔함 s를 스캔함 h를 스캔함 '공간'을 스캔함
그러나, 더 효율적인 코딩이 요구될 수 있다. 예를 들면, 8개의 포지션이 있을 때 기호열 당 3 비트를 사용하여 EOG를 통신하는 것과는 완전히 다른 편리한 코딩 방법에 의해 이것을 통신할 수 있다.
압축 효율을 개선하기 위해, 우리는 연속적인 기호열의 각 포지션에 대해 런렝쓰 코딩(RLC)을 적용할 수 있다. 연속(run)의 길이를 코드화하기 위해 임의 형태 또는 종류의 코딩을 사용할 수 있고, 청구된 대상은 특정 형태 또는 종류로 제한되지 않는다. 예를 들면, 골롬 코더(Golomb coder) 또는 이진 산술 코더를 사용하여 몇가지 예를 제공할 수 있다. 이 코더들은 예를 들면 데이터의 집합 내에서 기호열이 발생하는 지점과 발생하지 않은 지점(또는 그 반대)인 하나 이상의 포지션을 나타내는 연속적인 0과 1을 코드화하기 위해 사용될 수 있다. 물론, 이것은 간단한 예이고, 청구된 대상의 범위가 이러한 예로 제한되는 것은 아니다. 연속의 길이를 코딩하기 위한 많은 다른 가능한 방법을 생각할 수 있으며, 이 방법들도 청구된 대상의 범위 내에 속한다.
이 예에 이어지는 이러한 실시예에서, 기호열의 포지션이 런렝쓰 코드화될 수 있다. 이 경우, 예를 들면, 기호열 'e'의 포지션을 나타내기 위해 3 다음에 6이 오는 것을 코딩하는 대신에, 'e'가 첫번째 발생하기 전에 2개의 포지션이 스킵되는 것을 표시하기 위해 2를 코딩하고, 포지션 3으로부터 포지션 6까지를 취하기 위하여 2개의 추가적인 포지션이 스킵되는 것을 표시하기 위해 2를 코딩하며, 이하 같은 방법으로 코딩할 수 있다.
2 2 EOG 0 3 2 EOG 6 EOG 1 EOG 3 EOG
e를 스캔함 t를 스캔함 s를 스캔함 h를 스캔함 '공간'을 스캔함
이것은 EOG 외에 0, 1, 2, 3, 4 및 6의 7개의 기호를 수반함으로써 압축을 제공하고, 이것은 1~8 및 EOG의 9개의 기호보다 더 작은 코드화 집합이다.
그러나, 압축은 "가중치 전환"(significance switching)과 유사한 방법에 의해 더욱 개선될 수 있다. 더 구체적으로 말해서, 코딩되는 각각의 연속적인 기호열에 대해서, 코딩되는 포지션은 포지션에 의해 결정되는 기호열이 많으면 많을수록 더 적어진다. 포지션에 관한 이러한 추가 정보는 추가의 압축을 제공하기 위해 사 용될 수 있다.
이 예에서, 예컨대 기호열 'e'의 포지션을 알고 있기 때문에, 이 포지션들은 나중의 기호열에 대한 가능한 포지션으로서 생략될 수 있다. 사실, 코딩의 목적상, 전체 포지션을 스킵하는 대신에 얼마나 많은 미지의 포지션들을 스킵해야 하는지를 코드화함으로써 추가의 압축을 제공한다. 런렝쓰 코딩없이, 이 예에서는 다음과 같다.
0010 0100 10x0 1x01 x0x0 xx1x x1x0 xxxx xxx1 xxxx
e를 스캔함 t를 스캔함 s를 스캔함 h를 스캔함 '공간'을 스캔함
여기에서 기호 x는 이미 알고 있는 포지션을 나타내며, 따라서 신호될 필요가 없다. "0"과 "1"의 총 수는 40에서 20으로 감소되었고, 런렝쓰 코드로서 이것은 다음과 같이 더욱 감소된다.
2 2 EOG 0 2 1 EOG 2 EOG 0 EOG 0 EOG
e를 스캔함 t를 스캔함 s를 스캔함 h를 스캔함 '공간'을 스캔함
이 특정 실시예에서, 사용되는 다른 기호의 수는 0, 1, 2 및 EOG로 더욱 감소되었다. 'e'의 포지션을 특정하기 위해, RLC는 어떠한 포지션도 미리 알려져 있지 않기 때문에 동일하다. 그러나, 't'의 코딩에서는 'e'를 포함하고 있는 포지션들이 이미 점유되어 있기 때문에 'e'를 포함한 포지션들이 생략될 수 있고, 따라서 이 포지션들은 코딩 및/또는 디코딩 목적으로 RLC에서 카운트될 필요가 없다.
또한, 코더가 코드화 대상이 되는 최종 기호열에 도달하면, 그 포지션은 임의의 추가 정보를 통신 또는 코딩하지 않고 결정될 수 있다. 더 구체적으로 말하 면, 이 실시예에서, 이 기호열은 예전에 신호되거나 코딩되지 않은 포지션들을 점유한다. 그러나, 이것은 코드화되는 데이터 집합의 길이를 알고 있다는 것을 가정한다. 만일 그렇다면, 'h'에 대한 EOG와 마주친 후에, 이 예에서의 나머지 기호열이 함축적으로 '공간'으로 되고, 추가의 코딩 또는 통신없이 처리를 종료한다. 그러므로, 이 주어진 예에서, '공간'이 최종 기호열임을 알고 있다고 가정하면, 추가의 압축이 다음과 같이 얻어질 수 있다.
2 2 EOG 0 2 1 EOG 2 EOG 0 EOG
e를 스캔함 t를 스캔함 s를 스캔함 h를 스캔함 '공간'을 스캔함
그러나, 데이터 집합의 길이 및/또는 기호열의 수를 알지 못하면 유사한 방법을 사용하는 것이 일부 상황에서 바람직할 수 있다. 예컨대 코드화 대상 데이터 집합의 길이를 알지 못하는 상황에서 여러가지 방법이 가능하고, 청구된 대상은 특정 방법으로 그 범위가 제한되지 않는다. 예를 들어서, 이것은 표준 길이를 가짐으로써 취급될 수 있다. 대안적으로, 길이 정보가 코드화 정보에 프리픽스될 수 있다. 그러나, 다수의 데이터 집합이 코드화되고 대부분이 동일 길이를 갖고 있다면, 길이를 프리픽스하는 것은 압축 관점에서 볼 때 비효율적일 것이다. 마찬가지로, 이 개념에 이어서, 긴 데이터 통신에 있어서, 표준 길이를 이용하여 데이터를 세부 분할(sub-divide)하는 경우, 표준 길이로부터의 변형체가 표준 길이보다 더 작은 종단에서 데이터 집합을 통신 또는 코딩함으로써 취급될 수 있다.
하나의 방법은 코딩 전에 전체 길이의 데이터 집합을 제공하는 것을 포함한다. 표준 구획 길이가 있으면, 코더와 디코더는 얼마나 많은 구획들이 있는지를 결 정하고 그 수가 표준 길이보다 작으면 최종 구획의 길이를 결정한다. 예를 들면, 102 기호열 길이를 가진 데이터 집합을 코드화하고 구획의 표준 길이가 5인 경우에는 21개의 구획이 존재하고 최종 구획의 길이는 2이다. 다시, 앞에서도 언급한 바와 같이, 전체 길이가 여러가지 방법으로 데이터 코드에 포함될 수 있고, 주어진 예들은 한정하는 것으로 의도되지 않는다. 청구된 대상은 이러한 예시적인 방법들 뿐만 아니라 다른 가능한 방법들도 포함하는 것으로 의도된다.
마찬가지로, 기호열의 취급과 관련하여 몇가지 방법을 또한 사용할 수 있다. 예를 들면, 앞에서도 언급한 바와 같이, 미리 정해진 순서의 기호열을 사용할 수 있다. 그러나, 대안적으로, 기호열은 만일 발생 빈도를 알거나 결정 또는 근사화할 수 있다면 그 발생 빈도에 따라서 순서정해질 수 있다. 예를 들어서, 단순히 영어(English)를 예로서 사용하면, 이것은 'e' 't' 'a' 'o' 'i' 'n' 's' 'h' 등의 순서로 될 것이다. "공간"은 그 통계가 샘플에 표시한 것과 같은 순서로 포함될 수 있다. 또한, 발생하지 않은 기호열이 있을 수 있고, 그 기호열은 신호할 대상의 빈 그룹을 형성할 것이다. 이러한 방법으로, 코더와 디코더는 소정 순서의 기호열을 갖는다. 따라서, 디코더가 예컨대 EOG를 수신하면, 디코더는 다음의 적당한 기호열을 결정할 수 있다.
다른 하나의 방법은 데이터 집합에 예컨대 기호열로 명백하게 프리픽스하는 것이다. 마찬가지로, 기호열은 교대로 뒤에 붙여질 수 있고(post-fixed), 또는 디코더가 코드화 데이터로부터 적당한 결정을 할 수 있도록 다른 방식으로 끼워넣어질 수 있다. 시스템이 2가지 모드, 즉 미리 정해진 순서의 기호열을 통신하는 하나 의 모드와 기호열이 프리픽스되거나 다른 방식으로 끼워넣어지는 다른 하나의 모드를 이용하는 것도 또한 가능하다. 이들 모드는 임의의 순서로 발생할 수 있고, 모드 전환은, 일 예로서, 그 목적으로 사용하는 특수 기호에 의해 표시될 수 있다.
또다른 가능한 실시예에 있어서, 코더와 디코더는 이미 수신한 기호열로부터 새로운 기호열을 구성하는 방법을 채용할 수 있다. 이 융통성의 수준은 인코더가 기호열 및 통신 모드를 선택 또는 변경할 수 있게 하여 압축을 개선한다. 예를 들면, 미리 규정된 기호열을 전혀 사용하지 않는 경우가 좋고, 그 경우 EOG 기호를 반복함으로써 다수의 빈 그룹에 대한 신호보내기를 회피하기 위해 예를 들면 데이터 집합의 종단(End of Data Set) 또는 데이터의 종단(End of Data)을 효과적으로 의미하는 더 이상의 그룹 없음(No More Groups)을 신호하는 새로운 기호열이 있을 수 있다.
많은 상황에서, 부차적 정보는 데이터 집합을 수반한다. 예를 들면, 텍스트의 경우, 폰트, 사이즈, 웨이트, 컬러 및/또는 스타일이 그러한 부차적 정보를 포함할 수 있다. 이것은 몇가지 방법으로 통신 또는 코드화될 수 있다. 예를 들면, 부차적 정보는 런렝쓰가 끼워질 수 있고, 또는 임의 포지션의 코드화 데이터에 삽입되어 디코더가 부차적 정보를 기호열과 적당히 결합시킬 수 있다. 일 실시예에서, 기호열 자체로서 기호열과 조합되어 추가의 그룹을 형성하는 부차적 정보를 취급하는 것이 바람직하다. 예를 들면, 간단한 하나의 예로서 이탤릭체 'e'는 통상의 'e'로부터 별도의 기호열을 형성할 수 있다. 마찬가지로, 일 실시예로서, 특수 기호를 사용하여 다른 끼워넣기 스타일 또는 방법들 간에 필요에 따라 전환을 행할 수 있다.
청구된 대상에 따른 각종 실시예는 코딩의 적용 전에 임의의 편리한 맵핑에 의해 숫자 형태로 변환된, 예컨대 기호 데이터와 같은 비숫자 데이터(non-numeric data)를 포함한 모든 종류의 데이터의 코딩에 적용될 수 있다. 주지된 바와 같이, 각 실시예는 런렝쓰 코딩에 잘 적용되지만, 청구된 대상은 그 응용으로 제한되지 않음을 이해할 것이다. 청구된 대상의 각 실시예는 다수의 다른 종류의 데이터 코딩 중 어느 것에도 적용될 수 있다. 그러므로, 청구된 대상은 적용가능한 데이터의 종류에 제한을 두지 않는 것으로 의도된다.
물론, 지금까지 특정 실시예를 설명하였지만, 청구된 대상은 특정 실시예 또는 구현예로 그 범위가 제한되지 않는다는 것을 이해할 것이다. 예를 들면, 하나의 실시예는 장치 또는 장치의 조합에서 동작하도록 구현되는 하드웨어에 관한 것이고 다른 실시예는 소프트웨어에 관한 것일 수 있다. 마찬가지로, 실시예는 펌웨어로서 구현될 수 있고, 또는 예컨대 하드웨어, 소프트웨어 및/또는 펌웨어의 임의 조합으로서 구현될 수 있다. 마찬가지로, 청구된 대상의 범위는 이러한 것들로 제한되는 것이 아니고, 어떤 실시예는 기억 매체와 같은 하나 이상의 물품(article)을 포함할 수 있다. 하나 이상의 CD-ROM 및/또는 디스크와 같은 기억 매체는 컴퓨터 시스템이나 연산 플랫폼 등의 시스템 또는 기타 시스템에 의해 실행될 때 앞에서 설명한 실시예들 중의 하나와 같은 청구된 대상에 따른 방법의 실시예가 실행되게 하는 명령들을 저장할 수 있다. 하나의 가능한 예로서, 연산 플랫폼은 하나 이상의 처리 유닛 또는 프로세서와, 디스플레이, 키보드 및/또는 마우스와 같은 하나 이상의 입 력/출력 장치, 및/또는 스태틱 랜덤 액세스 메모리, 다이나믹 랜덤 액세스 메모리, 플래시 메모리, 및/또는 하드 드라이브와 같은 하나 이상의 메모리를 포함할 수 있다.
지금까지의 설명에서, 청구된 대상의 각종 태양들을 설명하였다. 설명의 목적상, 청구된 대상의 완전한 이해를 제공하기 위해 특정의 숫자, 시스템 및/또는 구성을 설명하였다. 그러나, 이 설명의 이익을 취하는 당업자에게는 청구된 대상이 특정 세부없이 실시될 수 있다는 것이 명백할 것이다. 다른 예로서, 잘 알려져 있는 특징들은 청구된 대상을 불명료하게 하지 않도록 생략하거나 단순화시켰다. 여기에서 특정의 구성들이 설명되었지만, 당업자라면 많은 수정, 치환, 변경 및/또는 등가화가 가능할 것이다. 그러므로, 첨부된 청구범위는 청구된 대상의 진정한 정신 내에 포함되는 그러한 모든 수정 및/또는 변경을 망라하는 것으로 의도된다는 것을 이해하여야 한다.

Claims (40)

  1. 관련 데이터의 그룹핑을 압축하는 방법에 있어서,
    (a) 압축 대상 데이터 내에서 발생하는 기호열을 선택하고, 압축 대상 데이터의 그룹핑 내에서 기호열의 하나 이상의 포지션을 표시하는 기호열 코드를 발생하는 단계와;
    (b) 그룹핑 내에서 발생하는 추가의 기호열에 대하여 상기 (a) 단계를 연속적으로 반복하는 단계와;
    (c) 각각의 기호열 코드를 압축 데이터 코드에 조합하는 단계를 포함하는 데이터 그룹핑 압축 방법.
  2. 제1항에 있어서, 특정 기호열 코드에 대하여, 특정 기호열의 하나 이상의 포지션이 런렝쓰 코딩되는 데이터 그룹핑 압축 방법.
  3. 제2항에 있어서, 코딩은 골롬 코딩을 포함하는 것인 데이터 그룹핑 압축 방법.
  4. 제2항에 있어서, 코딩은 산술 코딩을 포함하는 것인 데이터 그룹핑 압축 방법.
  5. 제2항에 있어서, 코딩은 적응 코딩을 포함하는 것인 데이터 그룹핑 압축 방법.
  6. 제1항에 있어서, 기호열 코드는 그 기호열 코드가 관계되는 기호열의 표시를 포함하는 것인 데이터 그룹핑 압축 방법.
  7. 제1항에 있어서, 기호열은 미리 정해진 순서로 코드화되는 것인 데이터 그룹핑 압축 방법.
  8. 제1항에 있어서, 기호열 코드는 저장되거나 통신 채널을 통하여 전송되는 것인 데이터 그룹핑 압축 방법.
  9. 제8항에 있어서, 선택가능한 제1 모드에서, 기호열 코드는 그 기호열 코드가 관계되는 기호열의 표시를 포함하고, 선택가능한 제2 모드에서, 기호열은 미리 정해진 순서로 코드화되는 것인 데이터 그룹핑 압축 방법.
  10. 제1항에 있어서, 기호열 코드는 엔드 오브 그룹 기호에 의해 종료되는 것인 데이터 그룹핑 압축 방법.
  11. 제1항에 있어서, 기호 또는 열의 반복을 포함하는 기호열에 대해서, 대응하 는 기호열 코드는 상기 기호 또는 열의 발생의 연속을 표시하는 데이터를 포함한 것인 데이터 그룹핑 압축 방법.
  12. 제1항에 있어서, 포지션 정보에 추가해서, 기호열 코드는 대응 기호열에 대한 추가 정보를 포함한 것인 데이터 그룹핑 압축 방법.
  13. 제1항에 있어서, 데이터 그룹핑의 길이가 데이터 코드와 함께 포함되는 데이터 그룹 압축 방법.
  14. 실행되어지면 관련 데이터의 그룹핑을 압축하는 방법을 수행하는 명령들이 저장되어 있는 기억 매체를 포함한 물품에 있어서,
    상기 관련 데이터의 그룹핑을 압축하는 방법은,
    (a) 압축 대상 데이터 내에서 발생하는 기호열을 선택하고, 압축 대상 데이터의 그룹핑 내에서 기호열의 하나 이상의 포지션을 표시하는 기호열 코드를 발생하는 단계와;
    (b) 그룹핑 내에서 발생하는 추가의 기호열에 대하여 상기 (a) 단계를 연속적으로 반복하는 단계와;
    (c) 각각의 기호열 코드를 압축 데이터 코드에 조합하는 단계를 포함하는 것인 물품.
  15. 제14항에 있어서, 상기 명령들은, 실행되면, 특정 기호열 코드에 대하여, 특정 기호열의 하나 이상의 포지션을 런렝쓰 코드화하게 하는 것인 물품.
  16. 제15항에 있어서, 코딩은 골롬 코딩을 포함하는 것인 물품.
  17. 제15항에 있어서, 코딩은 산술 코딩을 포함하는 것인 물품.
  18. 제15항에 있어서, 코딩은 적응 코딩을 포함하는 것인 물품.
  19. 제14항에 있어서, 상기 명령들은, 실행되면, 기호열 코드가 관계되는 기호열의 표시를 기호열 코드가 포함하게 하는 것인 물품.
  20. 제14항에 있어서, 상기 명령들은, 실행되면, 기호열이 미리 정해진 순서로 코드화되게 하는 것인 물품.
  21. 제14항에 있어서, 상기 명령들은, 실행되면, 기호열 코드가 저장되거나 통신 채널을 통하여 전송되게 하는 것인 물품.
  22. 제21항에 있어서, 상기 명령들은, 실행되면, 선택가능한 제1 모드에서, 기호열 코드가 관계되는 기호열의 표시를 기호열 코드가 포함하게 하고, 선택가능한 제 2 모드에서, 기호열이 미리 정해진 순서로 코드화되게 하는 것인 물품.
  23. 제14항에 있어서, 상기 명령들은, 실행되면, 기호열 코드가 엔드 오브 그룹 기호에 의해 종료되게 하는 것인 물품.
  24. 제14항에 있어서, 상기 명령들은, 실행되면, 기호 또는 열의 반복을 포함하는 기호열에 대해서, 대응하는 기호열 코드가 상기 기호 또는 열의 발생의 연속을 표시하는 데이터를 포함하게 하는 것인 물품.
  25. 제14항에 있어서, 상기 명령들은, 실행되면, 포지션 정보에 추가해서, 기호열 코드가 대응 기호열에 대한 추가 정보를 포함하게 하는 것인 물품.
  26. 제14항에 있어서, 상기 명령들은, 실행되면, 데이터 그룹핑의 길이가 데이터 코드와 함께 포함되게 하는 것인 물품.
  27. (a) 압축 대상 데이터 내에서 발생하는 기호열을 선택하고, 압축 대상 데이터의 그룹핑 내에서 기호열의 하나 이상의 포지션을 표시하는 기호열 코드를 발생하는 수단과;
    (b) 그룹핑 내에서 발생하는 추가의 기호열에 대하여 상기 (a) 단계를 연속적으로 반복하는 수단과;
    (c) 각각의 기호열 코드를 압축 데이터 코드에 조합하는 수단을 포함하는 장치.
  28. 제27항에 있어서, 특정 기호열의 하나 이상의 포지션을 런렝쓰 코딩하는 수단을 더 포함하는 장치.
  29. 제28항에 있어서, 상기 런렝쓰 코딩 수단은 골롬 코딩 수단을 포함하는 것인 장치.
  30. 제28항에 있어서, 상기 런렝쓰 코딩 수단은 산술 코딩 수단을 포함하는 것인 장치.
  31. 제28항에 있어서, 상기 런렝쓰 코딩 수단은 적응 코딩 수단을 포함하는 것인 장치.
  32. 제27항에 있어서, 미리 정해진 순서로 코딩을 행하는 수단을 더 포함하는 장치.
  33. 제27항에 있어서, 하나 이상의 데이터 코드를 저장하거나 통신 채널을 통하여 전송하는 수단을 더 포함하는 장치.
  34. 연산 플랫폼을 포함하고, 상기 연산 플랫폼은, 압축 대상 데이터 내에서 발생하는 기호열을 선택하고, 압축 대상 데이터의 그룹핑 내에서 기호열의 하나 이상의 포지션을 표시하는 기호열 코드를 발생하며; 그룹핑 내에서 발생하는 추가의 기호열에 대하여 상기 선택 및 발생을 연속적으로 반복하고; 각각의 기호열 코드를 압축 데이터 코드에 조합시키도록 적응된 것인 장치.
  35. 제34항에 있어서, 상기 연산 플랫폼은 특정 기호열의 하나 이상의 포지션을 런렝쓰 코딩하도록 또한 적응된 것인 장치.
  36. 제35항에 있어서, 상기 런렝쓰 코드는 골롬 코드를 포함하는 것인 장치.
  37. 제35항에 있어서, 상기 런렝쓰 코드는 산술 코딩을 포함하는 것인 장치.
  38. 제28항에 있어서, 상기 런렝쓰 코드는 적응 코딩을 포함하는 것인 장치.
  39. 제27항에 있어서, 상기 연산 플랫폼은 미리 정해진 순서로 코딩하도록 또한 적응된 것인 장치.
  40. 제27항에 있어서, 상기 연산 플랫폼은 하나 이상의 데이터 코드를 저장하거 나 하나 이상의 데이터 코드를 통신 채널을 통하여 전송하도록 또한 적응된 것인 장치.
KR1020097000506A 2006-06-19 2007-06-18 데이터 압축 KR101092106B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/425,137 2006-06-19
US11/425,137 US7770091B2 (en) 2006-06-19 2006-06-19 Data compression for use in communication systems

Publications (2)

Publication Number Publication Date
KR20090042233A true KR20090042233A (ko) 2009-04-29
KR101092106B1 KR101092106B1 (ko) 2011-12-12

Family

ID=38610564

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097000506A KR101092106B1 (ko) 2006-06-19 2007-06-18 데이터 압축

Country Status (6)

Country Link
US (1) US7770091B2 (ko)
EP (1) EP2047604A1 (ko)
JP (1) JP5498783B2 (ko)
KR (1) KR101092106B1 (ko)
CN (2) CN101496288A (ko)
WO (1) WO2007149358A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070271250A1 (en) * 2005-10-19 2007-11-22 Monro Donald M Basis selection for coding and decoding of data
US8674855B2 (en) * 2006-01-13 2014-03-18 Essex Pa, L.L.C. Identification of text
US7783079B2 (en) * 2006-04-07 2010-08-24 Monro Donald M Motion assisted data enhancement
US7586424B2 (en) * 2006-06-05 2009-09-08 Donald Martin Monro Data coding using an exponent and a residual
US7845571B2 (en) 2006-06-19 2010-12-07 Monro Donald M Data compression
US7770091B2 (en) 2006-06-19 2010-08-03 Monro Donald M Data compression for use in communication systems
US20070290899A1 (en) * 2006-06-19 2007-12-20 Donald Martin Monro Data coding
US7689049B2 (en) * 2006-08-31 2010-03-30 Donald Martin Monro Matching pursuits coding of data
US7508325B2 (en) * 2006-09-06 2009-03-24 Intellectual Ventures Holding 35 Llc Matching pursuits subband coding of data
US7974488B2 (en) * 2006-10-05 2011-07-05 Intellectual Ventures Holding 35 Llc Matching pursuits basis selection
US20080084924A1 (en) * 2006-10-05 2008-04-10 Donald Martin Monro Matching pursuits basis selection design
US7707213B2 (en) * 2007-02-21 2010-04-27 Donald Martin Monro Hierarchical update scheme for extremum location
US7707214B2 (en) * 2007-02-21 2010-04-27 Donald Martin Monro Hierarchical update scheme for extremum location with indirect addressing
US20080205505A1 (en) * 2007-02-22 2008-08-28 Donald Martin Monro Video coding with motion vectors determined by decoder
US10194175B2 (en) 2007-02-23 2019-01-29 Xylon Llc Video coding with embedded motion
US7791513B2 (en) 2008-10-06 2010-09-07 Donald Martin Monro Adaptive combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7786907B2 (en) * 2008-10-06 2010-08-31 Donald Martin Monro Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7786903B2 (en) * 2008-10-06 2010-08-31 Donald Martin Monro Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7864086B2 (en) * 2008-10-06 2011-01-04 Donald Martin Monro Mode switched adaptive combinatorial coding/decoding for electrical computers and digital data processing systems
JP5549402B2 (ja) * 2010-06-15 2014-07-16 富士通株式会社 データ圧縮プログラムおよび方法,ならびにデータ復元プログラムおよび方法
US8456333B1 (en) 2010-10-22 2013-06-04 Smith Micro Software, Inc. Advanced solid block splitting for lossless data compression
US9286643B2 (en) 2011-03-01 2016-03-15 Applaud, Llc Personalized memory compilation for members of a group and collaborative method to build a memory compilation
EP2595076B1 (en) 2011-11-18 2019-05-15 Tata Consultancy Services Limited Compression of genomic data

Family Cites Families (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5411614A (en) * 1977-06-27 1979-01-27 Nec Corp Code conversion unit for digital signal
US4168513A (en) * 1977-09-12 1979-09-18 Xerox Corporation Regenerative decoding of binary data using minimum redundancy codes
US4908873A (en) * 1983-05-13 1990-03-13 Philibert Alex C Document reproduction security system
US4558302A (en) * 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
JPS6097435A (ja) * 1983-11-02 1985-05-31 Hitachi Ltd 演算処理装置
JPH0797752B2 (ja) * 1985-09-13 1995-10-18 日本電信電話株式会社 符号化方法
EP0688104A2 (en) * 1990-08-13 1995-12-20 Fujitsu Limited Data compression method and apparatus
US5218435A (en) * 1991-02-20 1993-06-08 Massachusetts Institute Of Technology Digital advanced television systems
US5315670A (en) * 1991-11-12 1994-05-24 General Electric Company Digital data compression system including zerotree coefficient coding
US5321776A (en) * 1992-02-26 1994-06-14 General Electric Company Data compression system including successive approximation quantizer
GB9204360D0 (en) * 1992-02-28 1992-04-08 Monro Donald M Fractal coding of data
JPH06141301A (ja) 1992-10-27 1994-05-20 Victor Co Of Japan Ltd 画像情報圧縮装置、伸長装置及び圧縮伸長装置
US5412741A (en) * 1993-01-22 1995-05-02 David Sarnoff Research Center, Inc. Apparatus and method for compressing information
US6086706A (en) * 1993-12-20 2000-07-11 Lucent Technologies Inc. Document copying deterrent method
US5564045A (en) * 1994-07-28 1996-10-08 Motorola, Inc. Method and apparatus for string searching in a linked list data structure using a termination node at the end of the linked list
GB2293733B (en) 1994-09-20 1997-10-22 Ricoh Kk Encoder including an embedded coder for performing bit-significance encoding
US5748786A (en) * 1994-09-21 1998-05-05 Ricoh Company, Ltd. Apparatus for compression using reversible embedded wavelets
US5635932A (en) * 1994-10-17 1997-06-03 Fujitsu Limited Lempel-ziv compression with expulsion of dictionary buffer matches
US6208744B1 (en) * 1994-12-14 2001-03-27 Casio Computer Co., Ltd. Document image processor and method for setting a document format conforming to a document image
US5754704A (en) * 1995-03-10 1998-05-19 Interated Systems, Inc. Method and apparatus for compressing and decompressing three-dimensional digital data using fractal transform
US5819017A (en) * 1995-08-22 1998-10-06 Silicon Graphics, Inc. Apparatus and method for selectively storing depth information of a 3-D image
US5873076A (en) * 1995-09-15 1999-02-16 Infonautics Corporation Architecture for processing search queries, retrieving documents identified thereby, and method for using same
US5699121A (en) * 1995-09-21 1997-12-16 Regents Of The University Of California Method and apparatus for compression of low bit rate video signals
US6160846A (en) 1995-10-25 2000-12-12 Sarnoff Corporation Apparatus and method for optimizing the rate control in a coding system
EP0925689B1 (en) 1996-09-12 2002-07-03 University Of Bath Object-oriented video system
US6078619A (en) * 1996-09-12 2000-06-20 University Of Bath Object-oriented video system
JPH10117353A (ja) 1996-10-09 1998-05-06 Nec Corp データ処理装置および受信装置
WO1998034188A1 (en) * 1997-02-04 1998-08-06 British Telecommunications Public Limited Company Processor
JP4412622B2 (ja) * 1997-02-05 2010-02-10 コニカミノルタビジネステクノロジーズ株式会社 カラー複写機
GB9703441D0 (en) * 1997-02-19 1997-04-09 British Tech Group Progressive block-based coding for image compression
EP0976070A1 (en) * 1997-04-17 2000-02-02 Glaxo Group Limited Statistical deconvoluting of mixtures
US6029167A (en) * 1997-07-25 2000-02-22 Claritech Corporation Method and apparatus for retrieving text using document signatures
US5956429A (en) 1997-07-31 1999-09-21 Sony Corporation Image data compression and decompression using both a fixed length code field and a variable length code field to allow partial reconstruction
GB9716579D0 (en) 1997-08-05 1997-10-08 Univ Bath Signal coding and decoding
US5956439A (en) * 1997-09-22 1999-09-21 Lucent Technologies Inc. Optical switching apparatus for use in the construction mode testing of fibers in an optical cable
US6489902B2 (en) * 1997-12-02 2002-12-03 Hughes Electronics Corporation Data compression for use with a communications channel
US6125348A (en) * 1998-03-12 2000-09-26 Liquid Audio Inc. Lossless data compression with low complexity
US6661839B1 (en) * 1998-03-24 2003-12-09 Advantest Corporation Method and device for compressing and expanding data pattern
US6037883A (en) * 1998-05-07 2000-03-14 Microsoft Corporation Efficient memory usage for two-pass compression
JP3541930B2 (ja) * 1998-08-13 2004-07-14 富士通株式会社 符号化装置及び復号化装置
US6408300B1 (en) * 1999-07-23 2002-06-18 International Business Machines Corporation Multidimensional indexing structure for use with linear optimization queries
GB9920256D0 (en) * 1999-08-26 1999-10-27 Wave Limited M Motion estimation and compensation in video compression
US6480547B1 (en) * 1999-10-15 2002-11-12 Koninklijke Philips Electronics N.V. System and method for encoding and decoding the residual signal for fine granular scalable video
WO2001049037A1 (en) * 1999-12-28 2001-07-05 Koninklijke Philips Electronics N.V. Video encoding method based on the matching pursuit algorithm
GB0004423D0 (en) 2000-02-24 2000-04-12 Wave Limited M Video and audio coding
US6654503B1 (en) 2000-04-28 2003-11-25 Sun Microsystems, Inc. Block-based, adaptive, lossless image coder
GB0019121D0 (en) 2000-08-03 2000-09-27 Wave Limited M Signal compression and decompression
GB0021891D0 (en) * 2000-09-06 2000-10-25 Wave Ltd M Adaptive video delivery
US6985965B2 (en) * 2000-11-16 2006-01-10 Telefonaktiebolaget Lm Ericsson (Publ) Static information knowledge used with binary compression methods
GB0108080D0 (en) * 2001-03-30 2001-05-23 Univ Bath Audio compression
US7003039B2 (en) * 2001-07-18 2006-02-21 Avideh Zakhor Dictionary generation method for video and image compression
US6707400B2 (en) * 2001-08-02 2004-03-16 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for fast longest match search
DE10140993A1 (de) * 2001-08-21 2003-03-20 Deutsche Telekom Ag Verfahren zur Kompression von Daten
US7006567B2 (en) * 2001-11-30 2006-02-28 International Business Machines Corporation System and method for encoding three-dimensional signals using a matching pursuit algorithm
FR2833818B1 (fr) * 2001-12-21 2004-11-19 Oreal Dispositif comportant un boitier et un applicateur
US6847966B1 (en) 2002-04-24 2005-01-25 Engenium Corporation Method and system for optimally searching a document database using a representative semantic space
WO2004051863A1 (en) 2002-12-04 2004-06-17 Atop Innovation S.P.A. Automated method for lossless data compression and decompression of a binary string
JP4350414B2 (ja) * 2003-04-30 2009-10-21 キヤノン株式会社 情報処理装置及び情報処理方法ならびに記憶媒体、プログラム
JP4049792B2 (ja) * 2003-06-20 2008-02-20 日本電信電話株式会社 浮動小数点形式ディジタル信号可逆符号化方法、及び復号化方法と、その各装置、その各プログラム
GB0321954D0 (en) 2003-09-18 2003-10-22 Wave Ltd M Data compression
EP1545010A1 (en) 2003-12-18 2005-06-22 Deutsche Thomson-Brandt GmbH Method and device for transcoding N-bit words into M-bit words with M smaller N
US7079986B2 (en) * 2003-12-31 2006-07-18 Sieracki Jeffrey M Greedy adaptive signature discrimination system and method
GB2409943A (en) 2004-01-08 2005-07-13 Wave Ltd M Data compression using matching pursuits algorithms
GB0412175D0 (en) 2004-06-01 2004-06-30 Smart Sensors Ltd Identification of image characteristics
EP1610560A1 (en) 2004-06-24 2005-12-28 Deutsche Thomson-Brandt Gmbh Method and apparatus for generating and for decoding coded picture data
US7562021B2 (en) * 2005-07-15 2009-07-14 Microsoft Corporation Modification of codewords in dictionary used for efficient coding of digital media spectral data
US7848584B2 (en) 2005-09-08 2010-12-07 Monro Donald M Reduced dimension wavelet matching pursuits coding and decoding
US20070065034A1 (en) 2005-09-08 2007-03-22 Monro Donald M Wavelet matching pursuits coding and decoding
US8121848B2 (en) 2005-09-08 2012-02-21 Pan Pacific Plasma Llc Bases dictionary for low complexity matching pursuits data coding and decoding
US20070053603A1 (en) * 2005-09-08 2007-03-08 Monro Donald M Low complexity bases matching pursuits data coding and decoding
US7813573B2 (en) * 2005-09-08 2010-10-12 Monro Donald M Data coding and decoding with replicated matching pursuits
US20070271250A1 (en) * 2005-10-19 2007-11-22 Monro Donald M Basis selection for coding and decoding of data
JP4456554B2 (ja) * 2005-10-31 2010-04-28 富士通株式会社 データ圧縮方法及び圧縮データ送信方法
US8674855B2 (en) * 2006-01-13 2014-03-18 Essex Pa, L.L.C. Identification of text
US7783079B2 (en) * 2006-04-07 2010-08-24 Monro Donald M Motion assisted data enhancement
US7586424B2 (en) 2006-06-05 2009-09-08 Donald Martin Monro Data coding using an exponent and a residual
US7845571B2 (en) 2006-06-19 2010-12-07 Monro Donald M Data compression
US20070290899A1 (en) 2006-06-19 2007-12-20 Donald Martin Monro Data coding
US7770091B2 (en) 2006-06-19 2010-08-03 Monro Donald M Data compression for use in communication systems
US7689049B2 (en) 2006-08-31 2010-03-30 Donald Martin Monro Matching pursuits coding of data
US7508325B2 (en) 2006-09-06 2009-03-24 Intellectual Ventures Holding 35 Llc Matching pursuits subband coding of data
US7974488B2 (en) * 2006-10-05 2011-07-05 Intellectual Ventures Holding 35 Llc Matching pursuits basis selection
US20080084924A1 (en) 2006-10-05 2008-04-10 Donald Martin Monro Matching pursuits basis selection design

Also Published As

Publication number Publication date
CN101496288A (zh) 2009-07-29
JP2009542092A (ja) 2009-11-26
EP2047604A1 (en) 2009-04-15
US7770091B2 (en) 2010-08-03
WO2007149358A1 (en) 2007-12-27
KR101092106B1 (ko) 2011-12-12
JP5498783B2 (ja) 2014-05-21
CN107094021A (zh) 2017-08-25
US20080005648A1 (en) 2008-01-03

Similar Documents

Publication Publication Date Title
KR101092106B1 (ko) 데이터 압축
US7511638B2 (en) Data compression for communication between two or more components in a system
US7737869B2 (en) Symbol based data compression
JP4801776B2 (ja) データ圧縮
US7511639B2 (en) Data compression for communication between two or more components in a system
US10547324B2 (en) Data compression coding method, apparatus therefor, and program therefor
US7872598B2 (en) Accelerated decompression
US20060273933A1 (en) Data compression with selective encoding of short matches
US8407378B2 (en) High-speed inline data compression inline with an eight byte data path
EP2499743A1 (en) Indexing compressed data
CN111294053A (zh) 硬件友好的数据压缩方法、系统及装置
EP0304608B1 (en) Multi-mode dynamic code assignment for data compression
WO2020186535A1 (zh) 点云属性编码方法和装置以及点云属性解码方法和装置
US20090256730A1 (en) Advanced Lossless Bit Coding
US10931303B1 (en) Data processing system
CN113346913A (zh) 使用减量的出现次数的数据压缩
US7612692B2 (en) Bidirectional context model for adaptive compression
CN113315523B (zh) 硬件友好的数据解压缩
CN112738124B (zh) 硬件友好的数据压缩方法、压缩器
JP7305609B2 (ja) 受信したデータを処理する装置
CA2998336A1 (en) Method of data compression
Adjeroh et al. Analysis of the Burrows-Wheeler Transform

Legal Events

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

Payment date: 20141128

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150930

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161125

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 9