KR20120018360A - 가변 길이 코딩을 위한 방법 및 장치 - Google Patents

가변 길이 코딩을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20120018360A
KR20120018360A KR1020117030180A KR20117030180A KR20120018360A KR 20120018360 A KR20120018360 A KR 20120018360A KR 1020117030180 A KR1020117030180 A KR 1020117030180A KR 20117030180 A KR20117030180 A KR 20117030180A KR 20120018360 A KR20120018360 A KR 20120018360A
Authority
KR
South Korea
Prior art keywords
variable
code word
symbol
value
variable length
Prior art date
Application number
KR1020117030180A
Other languages
English (en)
Inventor
안띠 할라푸로
케말 우구르
Original Assignee
노키아 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 노키아 코포레이션 filed Critical 노키아 코포레이션
Publication of KR20120018360A publication Critical patent/KR20120018360A/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
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 개시는 가변 길이 인코딩 그리고 디코딩에 관한 것이다. 변수의 값을 기반으로 하여, 가변 길이 코드 워드 테이블의 세트로부터 가변 길이 코드 워드 테이블을 선택하고; 심볼을 기초로 하여, 상기 선택된 가변 길이 코드 워드 테이블로부터 코드 워드를 선택하고; 그리고 상기 심볼과 상기 변수 사이의 대응 관계를 비교함으로써 상기 변수의 값을 업데이트하여, 심볼이 가변 길이 인코딩된다. 변수의 값이 심볼보다 더 작다고 상기 비교의 결과가 표시하면, 상기 변수의 값이 증가되며; 그렇지 않고 변수의 값이 심볼보다 더 크다고 상기 비교의 결과가 표시하면, 상기 변수의 값이 감소되고; 그렇지 않다면 상기 변수의 값은 수정되지 않는다.

Description

가변 길이 코딩을 위한 방법 및 장치{Method for variable length coding and apparatus}
가변 길이 인코딩을 위한 테이블을 선택하는 방법, 가변 길이 디코딩을 위한 테이블을 선택하는 방법, 장치, 인코더 및 디코더가 제공된다.
소스 심볼들이 상이한 길이들을 구비한 코드 워드 (code word)들을 이용하여 코딩될 때에, 상기 소스 심볼들은 유일 코드 워드들로 변환된다. 이런 종류의 코딩은 가변 길이 코딩 (variable length coding (VLC))으로서 불릴 수 있다. 상기 코딩은 더욱 가능성 있는 심볼들은 더 짧은 코드 워드들을 구비하여 표현되고 그리고 덜 가능성 있는 심볼들은 더 긴 코드 워드들을 구비하여 표현된다. 상기 코드 워드들이 전송될 때에 더 짧은 코드 워드들은 더 긴 코드 워드들에 비교하여 더 작은 비트들을 구비하여 표현될 수 있다. 가변 길이 코딩의 하나의 목표는 상기 심볼들을 나타내기 위해서 필요한 정보의 양을 그처럼 상기 심볼들이 인코딩되었던 상황에 비교하여 줄이는 것이다. 다른 말로 하면, 심볼들의 세트가 코드 워드들로 변환될 때에, 그 결과인 코딩된 표현은 소스보다 더 적은 비트들을 포함해야만 한다. 심볼들의 세트는 많은 종류들의 정보를 포함할 수 있을 것이다. 예를 들면, 심볼들의 세트는 바이트들, 비디오 스트림이나 오디오 스트림과 같은 정보 스트림, 이미지 등으로 구성된 파일일 수 있다.
가변 길이 코드 워드들을 설계하는 것은 상기 소스 심볼들이 나타내는 소스의 확률 통계들에 종속될 수 있다. 가변 길이 코딩을 위한 코드 워드들의 세트를 획득하기 위해서 확률 통계는 몇몇의 대표적인 소스 재료로부터 수집될 수 있으며 그리고 상기 코드 워드들은 그 통계 주변에서 설계된다. 이는 아주 잘 동작할 수 있을 것이지만, 그러나 많은 경우들에서 통계는 고정된 것이 아니며 시간이 지나면서 변할 수 있을 것이며 그리고 코드 워드들의 고정된 세트들을 가지는 것은 양호한 압축을 산출하지 않을 수 있다. 더 나은 압축을 달성하기 위해서, 가변 길이 코드 워드들의 세트는 소스의 관찰된 통계에 국부적으로 계속해서 적응될 수 있을 것이다.
적응을 수행하는 한 가지 방법은 심볼 주파수들을 계속 확인하고 그리고 그 주파수들을 이용하여, 상기 심볼이 코딩될 때에 가변 길이 코드 워드들의 세트를 즉석에서 (on-the-fly) 정의하는 것이다. 특히 소스 심볼들의 범위가 크다면, 이런 종류의 완전한 적응은 아주 복잡한 동작이다. 예를 들면, 인코더는 가변 길이 코드 워드들의 여러 미리 정의된 세트들을 이용할 수 있을 것이며 그리고 국부적인 통계를 추정한 것을 기반으로 하여 그것들 중의 하나를 선택할 수 있을 것이다. 다른 구현에서, 코더는 상기 세트의 코드 워드들을 점차로 적응시킬 수 있을 것이며, 그래서 상기 세트의 개별 코드 워드들 중의 아주 약간만이 한 번에 변경되도록 하여 코딩된 코드 워드 당 복잡도는 낮도록 한다.
가변 길이 코드 워드들의 생성에 대해서, 그것을 하기 위한 몇 가지 방식들이 존재한다. 예시의 방식은 허프만 (Huffman) 방법 또는 그 방법의 적응적인 버전을 사용하는 것이다. 다른 방법은 가변 길이 코드 워드들의 세트를 형성하기 위해서 소위 유니버셜 코드들 (예를 들면, exp-colomb 코드들)을 사용하는 것이다. 유니버셜 코드 워드들을 생성하는 것은 일상적인 것이며 그래서 상기 코드들은 오히려 디코딩하기에 편하다. 그러나, 최적의 인코딩은 많은 경우들에 있어서 달성될 수 없을 수 있으며 그리고 심볼들은 심볼 주파수에 따라서 순서가 정해져서 유지될 필요가 있다.
본 발명의 목적은 상기의 문제점의 적어도 일부를 해결할 수 있는 가변 길이 인코딩과 디코딩을 위한 방법 및 장치를 제공하는 것이다.
본 발명은 둘 또는 그 이상의 가변 길이 코드 워드 테이블들 중 하나의 테이블이 하나의 심볼을 코딩하기 위해서 선택되는 그런 가변 길이 코드 워드 테이블들을 제공함으로써 가변 길이 코딩을 위한 방법을 도입한다. 가변 길이 코드 워드 테이블을 선택하는 것은, 예를 들면, 변수를 이용하여 심볼의 확률 분포를 추정하고 그리고 이 변수를 기반으로 하여 상기 가변 길이 코드 워드 테이블을 선택하고 그리고 심볼이 코딩된 이후에 상기 변수를 업데이트 함으로써 실현된다.
본 발명의 예시적인 일 실시예에 따르면, 심볼들을 위해서 가변 길이 코드 워드들을 선택하기 위한 방법이 제공된다.
본 발명의 첫 번째 모습에 따르면, 심볼을 가변 길이 인코딩 (variable length encoding)하는 방법이 제공되며, 상기 방법은,
변수의 값을 기반으로 하여, 가변 길이 코드 워드 테이블의 세트로부터 가변 길이 코드 워드 테이블을 선택하는 단계;
심볼을 기초로 하여, 상기 선택된 가변 길이 코드 워드 테이블로부터 코드 워드를 선택하는 단계;
상기 심볼과 상기 변수 사이의 대응 관계를 비교함으로써 상기 변수의 값을 업데이트하는 단계를 포함하며, 이 경우에,
변수의 값이 심볼보다 더 작다고 상기 비교의 결과가 표시하면, 상기 변수의 값을 증가시키며; 그렇지 않고
변수의 값이 심볼보다 더 크다고 상기 비교의 결과가 표시하면, 상기 변수의 값을 감소시키고; 그렇지 않다면 변수의 값은 수정되지 않는다.
본 발명의 두 번째 모습에 따르면, 코드 워드를 가변 길이 디코딩 (variable length encoding)하는 방법이 제공되며, 상기 방법은,
변수의 값을 기반으로 하여, 가변 길이 코드 워드 테이블의 세트로부터 가변 길이 코드 워드 테이블을 선택하는 단계;
상기 코드 워드를 이용하여, 상기 선택된 가변 길이 코드 워드 테이블로부터 상기 코드 워드에 대응하는 심볼을 찾는 단계;
상기 심볼과 상기 변수 사이의 대응 관계를 비교함으로써 상기 변수의 값을 업데이트하는 단계를 포함하며, 이 경우에,
변수의 값이 심볼보다 더 작다고 상기 비교의 결과가 표시하면, 상기 변수의 값을 증가시키며; 그렇지 않고
변수의 값이 심볼보다 더 크다고 상기 비교의 결과가 표시하면, 상기 변수의 값을 감소시키고; 그렇지 않다면 변수의 값은 수정되지 않는다.
본 발명의 세 번째 모습에 따른 장치가 제공되며, 상기 장치는,
변수의 값을 기반으로 하여, 가변 길이 코드 워드 테이블의 세트로부터 가변 길이 코드 워드 테이블을 선택하도록 구성된 코드 워드 테이블 선택기;
심볼을 기초로 하여, 상기 선택된 가변 길이 코드 워드 테이블로부터 코드 워드를 선택하도록 구성된 코드 워드 선택기;
상기 심볼과 상기 변수 사이의 대응 관계를 비교함으로써 상기 변수의 값을 업데이트하도록 구성된 업데이터 엘리먼트를 포함하며, 이 경우에,
변수의 값이 심볼보다 더 작다고 상기 비교의 결과가 표시하면, 상기 업데이트 엘리먼트는 상기 변수의 값을 증가시키도록 구성되며; 그렇지 않고
변수의 값이 심볼보다 더 크다고 상기 비교의 결과가 표시하면, 상기 업데이트 엘리먼트는 상기 변수의 값을 감소시키도록 구성된다.
본 발명의 네 번째 모습에 따른 장치가 제공되며, 상기 장치는,
변수의 값을 기반으로 하여, 가변 길이 코드 워드 테이블의 세트로부터 가변 길이 코드 워드 테이블을 선택하기 위한 코드 워드 테이블 선택기;
상기 선택된 가변 길이 코드 워드 테이블로부터 상기 코드 워드에 대응하는 심볼을 찾도록 구성된 심볼 판별기;
상기 심볼과 상기 변수 사이의 대응 관계를 비교함으로써 상기 변수의 값을 업데이트하기 위한 업데이트 엘리먼트를 포함하며, 이 경우에,
변수의 값이 심볼보다 더 작다고 상기 비교의 결과가 표시하면, 상기 업데이트 엘리먼트는 상기 변수의 값을 증가시키도록 구성되고; 그렇지 않고
변수의 값이 심볼보다 더 크다고 상기 비교의 결과가 표시하면, 상기 업데이트 엘리먼트는 상기 변수의 값을 감소시키도록 구성된다.
본 발명의 다섯 번째 모습에 따르면, 인코더에 의해서 사용하기 위한 컴퓨터-실행가능 프로그램 코드를 저장하는 저장 매체가 제공되며, 상기 프로그램 코드들은,
변수의 값을 기반으로 하여, 가변 길이 코드 워드 테이블의 세트로부터 가변 길이 코드 워드 테이블을 선택하고;
상기 심볼을 기초로 하여, 상기 선택된 가변 길이 코드 워드 테이블로부터 코드 워드를 선택하고;
상기 심볼과 상기 변수 사이의 대응 관계를 비교함으로써 상기 변수의 값을 업데이트하기 위한, 명령어들을 포함하며, 이 경우에,
변수의 값이 심볼보다 더 작다고 상기 비교의 결과가 표시하면, 상기 변수의 값이 증가되며; 그렇지 않고
변수의 값이 심볼보다 더 크다고 상기 비교의 결과가 표시하면, 상기 변수의 값이 감소되고; 그렇지 않다면
변수의 값은 수정되지 않는다.
본 발명의 여섯 번째 모습에 따르면, 인코더에 의해서 사용하기 위한 컴퓨터-실행가능 프로그램 코드를 저장하는 저장 매체가 제공되며, 상기 프로그램 코드들은,
변수의 값을 기반으로 하여, 가변 길이 코드 워드 테이블의 세트로부터 가변 길이 코드 워드 테이블을 선택하고;
상기 코드 워드를 이용하여, 상기 선택된 가변 길이 코드 워드 테이블로부터 상기 코드 워드에 대응하는 심볼을 찾고;
상기 심볼과 상기 변수 사이의 대응 관계를 비교함으로써 상기 변수의 값을 업데이트, 하기 위한 명령어들을 포함하며, 이 경우에,
변수의 값이 심볼보다 더 작다고 상기 비교의 결과가 표시하면, 상기 변수의 값이 증가되며; 그렇지 않고
변수의 값이 심볼보다 더 크다고 상기 비교의 결과가 표시하면, 상기 변수의 값을 감소되고; 그렇지 않다면
변수의 값은 수정되지 않는다.
본 발명의 효과는 본 명세서의 해당되는 부분들에 개별적으로 명시되어 있다.
도 1은 정보가 인코더로부터 디코더로 전송되는 시스템의 예시의 실시예를 간략화된 블록도로서 도시한다.
도 2는 본 발명의 예시의 실시예에 따른 인코더를 간략화된 블록도로서 도시한다.
도 3은 본 발명의 예시의 실시예에 따른 디코더를 간략화된 블록도로서 도시한다.
도 4는 본 발명의 예시의 실시예에 따른 인코딩 방법을 흐름도로서 도시한 것이다.
도 5는 본 발명의 예시의 실시예에 따른 디코딩 방법을 흐름도로서 도시한 것이다.
다음에 도 1의 시스템이 더욱 상세하게 설명될 것이다. 인코딩되고 그리고 전송될 정보는 인코더 (1)에 의해서 소스 (2)로부터 수신된다. 상기 정보는 예를 들면, 비디오 정보, 오디오 정보, 정지 (still) 이미지들, 텍스트 등일 수 있다. 상기 정보는 또한 둘 또는 그 이상의 상이한 종류의 정보의 결합일 수 있다. 그러면, 각 유형의 정보를 위한 상이한 인코더들과 디코더들이 제공될 수 있을 것이며 또는 동일한 인코더 및/또는 디코더가 상이한 종류의 정보를 프로세싱할 수 있을 것이다. 상기 소스 (2)는, 예를 들면, 비디오 카메라 (2.1), 스틸 카메라 (2.2), 마이크로폰 (2.3), 예를 들면 DVD (digital versatile disks)를 재생할 수 있는 기기 (2.4), 저장 매체 (2.5) 등일 수 있다. 상기 정보의 상기 예들 그리고 상기 소스 (2)는 본 발명의 예시를 위한 것일 뿐이며, 본 발명의 범위를 제한하려는 것이 아니다. 상기 소스 (2)로부터의 정보는 첫 번째 기기 (8)의 인코더 (1)에 의해서 인코딩된다. 인코딩된 정보는 메모리 (4)에 저장될 수 있으며 그리고/또는 전송기 (9)에 의해서 전송 채널 (15)로 전송될 수 있다. 상기 전송된 정보는 제2 기기 (10)의 수신기 (14)에 의해서 수신될 수 있다. 상기 제2 기기 (10)는 상기 수신한 정보를 디코딩하는 디코더 (11)를 포함한다. 디코딩된 정보는, 예를 들면, 상기 디코딩된 정보를 상기 제2 기기의 메모리 (12)에 저장함으로써 선-처리 (post-process) 될 수 있으며, 그 정보가 시각적인 정보를 포함한다면 디스플레이에 의해서 디스플레이될 수 있으며, 그 정보가 오디오 정보 등을 포함한다면 오디오 정보로 변환될 수 있다.
상기 인코더 (1)의 예시의 실시예가 도 2에 도시된다. 상기 인코더 (1)는 전송될 정보를 수신하기 위한 입력부 (1.1)를 구비한다. 상기 정보가 아날로그 형상이면, 그 정보는 예를 들면 아날로그-디지털 컨버터 (3)에 의해서 디지털 형상으로 변환된다. 상기 아날로그-디지털 컨버터 (3)는 상기 아날로그 정보를 기초로 하여 샘플들을 생성한다. 상기 샘플들은 동일한 시간 구간들에서 아날로그 신호를 나타낸다. 그러나, 이미 상기 정보는 상기 인코더 (1)가 그 정보를 프로세싱할 수 있는 모습일 수 있다. 그래서, 상기 아날로그-디지털 컨버터 (3)는 필요하지 않을 수 있을 것이다.
상기 인코더의 입력부 (1.1)에서 상기 정보는 샘플들의 프레임들로 배치될 수 있다. 각 프레임은 상기 아날로그 신호의 몇몇의 시간 구간들을 나타낸다. 예시의 실시예에서, 하나의 프레임은 20 ms 구간의 입력 신호를 나타내는 샘플들을 포함할 수 있다. 다른 실시예에서, 상기 프레임은 10 ms 구간의 입력 신호를 나타내는 샘플들로 구성된다. 또한 여기에서 다른 값들이 가능하다. 상기 샘플들은 상기 인코더 (1)의 내부에 있을 수도 있고 또는 외부에 있을 수도 있는 샘플 버퍼 (4.1)에 저장될 수 있다.
상기에서, 상기 소스 (2)로부터의 정보는 스트리밍 정보의 비디오, 오디오 등의 시퀀스이지만, 상기 소스 (2)로부터의 정보는 비-대체 정보, 예를 들면 정지 이미지 또는 데이터 파일을 또한 나타낼 수 있다고 가정한다. 그런 종류의 상황들에서, 상기 정보는 인코딩용의 더 작은 부분들로 나누어질 수 있으며 또는 상기 정보는 심볼 단위로 인코딩될 수 있다.
상기 정보가 스트리밍 정보 소스로부터인가 또는 고정된 정보 소스로부터인가에 관계없이, 상기 샘플들은 상기 인코더 (1)에 의해서 인코딩되어 코드 워드들을 형성한다. 상기 인코딩된 프로세스는 도 4의 흐름도 그리고 도 2의 인코더 (1)를 참조하여 다음에 더욱 상세하게 설명된다. 여기에서 몇몇의 통계 파라미터들이 인코딩될 정보로부터 추정될 수 있다고 가정한다. 예를 들면, 상기 정보를 나타내는 심볼들의 확률 분포는 몇몇의 기준을 이용함으로써 알려지거나 또는 추정될 수 있을 것이다. 본 발명에서, 가변 길이 코드 워드들의 둘 또는 그 이상의 상이한 세트들이 제공되며, 인코딩될 심볼들을 위해서 그 세트들로부터 가변 코드 워드들이 선택된다. 코드 워드들의 세트들은 상이한 가변 길이 코드 워드 테이블들 (5.1 - 5.M) (VLC 테이블들)을 형성하는 것으로 생각될 수 있으며, 그 테이블들 내에서 행 (row)들은 코드 워드 매핑들로의 심볼을 나타낸다. 상기 가변 길이 코드 워드 테이블들은 또한 본 명세서에서 코드 워드 테이블들로서 불린다. 실제의 애플리케이션들에서 상기 코드 워드 테이블들을 구현하기 위한 많은 가능성들이 존재한다. 이는 본 명세서에서 나중에 더욱 상세하게 설명될 것이다.
본 발명의 예시의 실시예에 따른 인코더 (1)는 다음과 같이 인코딩을 수행한다. 상기 인코딩의 시작에서, 몇몇의 변수들이 자신들의 초기값들로 초기화된다. 이는 예를 들면 상기 인코더의 제어기 (1.4)에 의해서 수행되어 몇몇의 메모리 위치들을 선택된 상태로 설정한다. 이런 메모리 위치들은 상기 메모리 (4) 내에 위치할 수 있으며 또는 그 위치들은 예를 들면 상기 제어기 (1.4)의 내부에 있을 수 있다. 도 2의 예시의 실시예에서, 상기 변수들은 상기 제어기 (1.4)의 내부 레지스터들 (1.4.1)에 저장된다. 초기화 단계는 도 4의 흐름도 내의 블록 (401)과 함께 그리고 도 2의 초기화 블록 (1.3)과 함께 도시된다.
상기 초기화 단계 이후에, 상기 심볼들을 인코딩하는 것이 시작될 수 있다. 상기 제어기 (1.4)는 상기 샘플 버퍼 (4.1)로부터 하나 또는 그 이상의 샘플들을 심볼 형성 블록 (1.2)으로 읽어드리도록 상기 입력부 (1.1)에게 명령한다 (도 4의 블록 402). 하나의 심볼은 상기 정보의 하나의 샘플 또는 하나보다 많은 샘플을 나타낼 수 있을 것이다. 예를 들면, 세 개의 샘플들이 하나의 심볼을 형성할 수 있으며 이 경우 상기 심볼 형성 블록 (1.2)은 하나의 심볼을 구성하기 위해서 상기 샘플 버퍼 (4.1)로부터의 세 개의 연속하는 샘플들을 이용한다.
다음에, 하나의 심볼이 하나의 샘플을 나타내며 그리고 상기 심볼들은 극히 소수의 가능한 값들만을 가진다고 가정한다. 그러나, 실제의 애플리케이션들에서, 상기 심볼들은 아래에서 개시된 것보다 더 넓은 범위의 가능한 값들을 가질 수 있다.
상기 인코더 (1)로의 입력인 상기 정보가 이미 심볼 형상이면 상기 심볼 형성 블록 (1.2)은 필요하지 않다.
상기 인코딩은 인코딩의 프로세스 동안에 적응되는 변수 k를 활용한다. 상기 초기화 단계에서, 상기 변수 k는 다음과 같은 초기 값으로 세팅된다.
k = K
상기 초기화 상수 K는 예상되는 확률 분포를 반영하는 값을 가질 수 있을 것이다.
심볼을 인코딩하기 위해서 코드 워드 테이블 선택기 (1.5)는 코드 워드 테이블들의 세트로부터 코드 워드 테이블을 선택하는 것을 수행한다 (도 4의 블록 403). 상기 가변 길이 코드 워드 테이블을 선택하는 것은, 변수를 이용하고 이 변수를 기반으로 하여 코드 워드 테이블을 선택하고 그리고 상기 변수 k를 업데이트하여, 예를 들면, 상기 심볼의 확률 분포를 추정함으로써 실현된다. 비록 상기 심볼이 인코딩된 이후에 상기 변수 k가 업데이트된다고 도 4의 흐름도가 도시하지만, 그 순서는 그것과는 다를 수 있다. 예를 들면, 상기 변수는 상기 심볼을 인코딩하는 동안에 또는 그 이전에 업데이트될 수 있다.
코딩될 심볼을 s 라고 한다. 심볼들은 알파벳과 같은 어떤 것일 수 있지만, 본 발명을 예시하기 위해서 그 심볼들은 여기에서 숫자들 0, 1,..., N-1 로서 표시되며, N은 유일 심볼들의 개수이다. 상기 심볼은 심볼들의 세트로부터 선택될 수 있을 것이며, 상기 심볼들은 상호 순서를 가지며 그리고 하나의 심볼은 심볼들의 상기 세트에서 가장 큰 심볼 값을 나타내며 그리고 다른 심볼은 심볼들의 상기 세트에서 가장 낮은 심볼 값을 나타낸다. 상기 코드 워드 테이블 선택기 (1.5)는 코드 워드 테이블들 (5.1 - 5.M)의 세트 중에서 하나의 코드 워드 테이블을 선택하기 위해서 상기 변수 k 그리고 상호-참조 테이블 (6)을 이용하며, 그래서 상기 심볼 s 는 코드 워드로 매핑될 수 있다. 상기 상호-참조 테이블 (6)은 상기 변수 k 의 값을 코드 워드 테이블 번호 t 로 매핑하며, 이는 인코딩을 위해서 선택될 코드 워드 테이블을 나타낸다. 상기 상호-참조 테이블 (6)은 상기 변수 k 의 상이한 가능한 값들의 개수만큼 많은 행들을 가진다. 상기 행들은 상기 변수 k 의 값 그리고 코드 워드 테이블 (5.1 - 5.M) 사이의 대응 관계를 표시한다. 예를 들면, k 가 0의 값을 가지면, 상기 크로스-참조 테이블 (6)의 첫 번째 행에 의해 표시된 코드 워드 테이블이 선택되며, k 가 1의 값을 가지면, 상기 상호-참조 테이블 (6)의 두 번째 행에 의해 표시된 코드 워드 테이블이 선택되며, 이하 마찬가지이다. 상기 상호-참조 테이블 (table_num) (6)의 비-한정적인 예는 아래의 표 1에서 도시된다.
Figure pct00001
이 예에서, k 는 0 내지 7의 값들을 가지며, 그리고 상이한 코드 워드 테이블들의 개수는 3이며, 즉 이 비-한정적인 예에서는 M 은 3 이다. 그러나, 다른 예시의 실시예에서 상기 변수는 심볼들의 상기 세트 내에서 가장 큰 심볼 값보다 더 작은 상한 (upper limit)을 가질 수 있다. 또 다른 실시예에서, 상기 변수는 심볼들의 세트 내의 가장 작은 심볼 값보다 더 큰 하한 (lower limit)을 가질 수 있다. 상기 하한 및 상한 두 가지 모두가 상기 변수 k 에 대해서 정의되는 실시예들이 또한 존재할 수 있다.
상호-참조 테이블 (6)의 열 (column) t 는 선택될 코드 워드 테이블을 나타낸다. 상기 코드 워드 테이블 선택기 (1.5)는 상기 상호-참조 테이블 (6)의 테이블 번호 열 t 의 k-번째 행에서의 값을 상기 코드 워드 테이블로의 인덱스로서 사용한다. 예를 들면, 상기 k-번째 행에서 상기 값이 0이면, 첫 번째 코드 워드 테이블 (5.1)이 선택되며, 상기 값이 1 이면, 두 번째 코드 워드 테이블 (5.2)이 선택되며, 이하 마찬가지이다. 표 1의 예에서, 상기 변수 k 가 0일 때에 상기 첫 번째 코드 워드 테이블 (5.1)이 선택되며, 상기 변수 k 가 1, 2, 3 또는 4일 때에 두 번째 코드 워드 테이블 (5.2)이 선택되고, 그리고 변수 k 가 5, 6 또는 7일 때에 세 번째 코드 워드 테이블 (5.M)이 선택된다.
상기 코드 워드 테이블 선택기 (1.5)는 상기 코드 워드 선택기 (1.6)에게 상기 선택된 코드 워드 테이블을 알린다. 이는, 예를 들면, 상기 코드 워드 테이블 선택기 (1.5)가 파라미터 t 의 값을 참조번호 4의 메모리에 또는 상기 제어기 (1.4)의 레지스터(들)에 저장하는 방식으로 수행될 수 있다. 상기 코드 워드 선택기 (1.6)는, 심볼 s 를 표현하기 위해서 코드 워드를 선택 (도 4의 블록 404)할 때에 상기 선택된 코드 워드 테이블을 사용하기 위해서, 파라미터 t 의 값을 이용한다. 상기 코드 워드 선택기 (1.6)는 상기 코드 워드를 판별하기 위해서 상기 심볼 s 그리고 상기 선택된 코드 워드 테이블을 이용한다. 다른 말로 하면, 상기 심볼 s 의 값은 상기 선택된 코드 워드 테이블 내의 상기 코드 워드를 나타낸다. 아래의 표 2는 세 개의 상이한 코드 워드 테이블들이 제공되는 코드 워드 테이블들의 세트의 일 예 (code_word (이진 포맷))를 도시한다 (t=0, t=l, t=2).
Figure pct00002
각 코드 워드 테이블 (6)에 대해 코드 워드 길이 테이블 (7)이 또한 존재할 수 있으며, 이는 각 코드 워드의 길이를 표시한다. 코드 워드 길이 표시기 (1.7)는 상기 선택된 코드 워드의 길이를 나타내는 값을 획득하기 위해서 (도 4의 블록 405) 상기 심볼 s 그리고 파라미터 t를 이용할 수 있다. 아래의 표 3은 세 개의 상이한 코드 워드 길이 테이블들 (7.1 - 7.M)이 제공되는 코드 워드 길이 테이블들의 세트의 일 예 (cw_length)를 도시한다 (t=0, t=l, t=2).
Figure pct00003
상기에서 설명된 코드 워드 테이블 선택, 코드 워드 선택 그리고 상기 코드 워드 길이를 판별하는 것은 다음의 방식으로 정의될 수 있다.
t = table_num[k]
cw = code_word[t ,s]
len = cw_length[t,s]
이 경우 table_num 은 어느 가변 길이 코드 테이블이 사용될 것인가를 선택하는 어레이 (상기 상호-참조 테이블 (6))이며, code_word 는 심볼들 s를 코드 워드들 (상기 코드 워드 테이블들 (5.1 - 5.M))로 매핑하는 어레이이며, 그리고 cw_length는 대응하는 코드 워드 길이 값들 (상기 코드 워드 길이 테이블들 (7.1 - 7.M))의 어레이이다. 그 결과인 코드 워드 (cw)는 길이 (len)와 함께 예를 들면 저장을 위해서 또는 전송을 위해서 자신의 목적지로 송신된다
심볼이 인코딩된 이후에, 상기 변수 k 는 다음의 식에 따라서 상기 제어기 (1.4)에 의해서 업데이트된다 (도 4의 블록 406).
Figure pct00004
이 경우, L 은 양의 정수이다. 이는, 상기 변수 k 가 상기 심볼 s 와 동일하다면 상기 k 는 변경되지 않으며, 그렇지 않고 상기 변수 k 가 심볼 s 보다 더 작으면 상기 변수 k 는 양의 정수 L만큼 증가되며, 또는 변수 k 가 심볼 s 보다 더 크면 변수 k 는 상기 양의 정수 L 만큼 감소된다는 것을 의미한다. 파라미터 L 은 오프셋을 정의하며, 상기 변수가 수정되어야만 한다고 결정되면 상기 변수는 그 오프셋만큼 변경된다. 상기에서 상기 수정의 양은 일정하지만, 본 발명의 다른 실시예에서 상기 오프셋은 상기 심볼 s 그리고 상기 변수 k 사이의, 예를 들면, 차이에 따라서 바뀔 수 있을 것이라고 가정한다. 예를 들면, 상기 차이가 크면 상기 오프셋은 더 클 수 있으며 그리고 상기 차이가 더 작으면 오프셋은 더 작을 수 있을 것이다.
도 4의 블록 407에서 인코딩될 심볼들이 더 있는가의 여부가 판별된다. 인코딩할 심볼들이 더 있으면, 인코딩될 모든 심볼들로 코드 워드들이 선택될 때까지 다음 심볼을 입력함으로써 블록 402부터 계속된다.
상기에서 제시된 예시적인 실시예를 더 예시하기 위해서, 다음에서 숫자의 예가 제공된다. 3과 동일한 초기화 상수의 값, 2와 같은 정수 L 의 값, 그리고 심볼 시퀀스 3, 1, 5, 4, 2의 예를 선택한다. 그러므로, 종료하는 프로세스의 시작 부분에서 상기 변수 k 는 K = 3의 값을 얻는다. 상기 상호-참조 테이블 (6) (k=3)은 선택될 코드 워드 테이블이 두 번째 (t=l) 코드 워드 테이블이라는 것을 표시한다. 인코딩될 첫 번째 심볼은 3 이다. 두 번째 코드 워드 테이블 (5.2)에서 심볼 3 은 코드 워드 011 로 매핑된다. k=s 이기 때문에, k 의 값은 그 단계에서 수정되지 않는다. 그러면, 다음의 심볼 (1)은 인코딩을 위한 입력이다. 상기 심볼 1 이 상기 코드 워드 11 로 매핑되는데 있어서 동일한 코드 워드 테이블이 사용된다. 상기 심볼의 값은 상기 변수 k 보다 더 작으며, 이 경우 상기 변수 k 는 정수 L 의 값만큼 감소된다. 즉, k에 대한 새로운 값은 1 (= 3-2) 이다. 두 번째 코드 워드 테이블 (5.2)을 이용하여 인코딩될 다음의 심볼은 5이다. 상기 심볼 5 는 코드 워드 0011 로 매핑된다. 상기 심볼의 값은 변수 k 의 현재 값보다 더 크며, 이 경우 상기 변수 k 의 값은 L, 즉 k=3 만큼 증가될 것이다. 다음의 심볼은 4 이다. 두 번째 코드 워드 테이블이 선택되며, 그래서 심볼 4 는 코드 워드 0010으로 매핑된다. k < s 이기 때문에, 변수 k 의 값은 다시 2만큼 증가되어 상기 변수 k는 5의 값으로 된다. 이는 다음 심볼이 세 번째 코드 워드 테이블을 이용하여 인코딩될 것이라는 것을 의미한다. 상기 심볼은 2 이며, 이는 코드 워드 010으로 매핑된다. 이 예의 시퀀스의 마지막 심볼 (2)을 인코딩한 이후에, 상기 변수 k 의 값은 다시 L, 즉, k=3 만큼 감소된다. 상기 인코딩 결과 즉, 가변 길이 코드 워드들의 비트 스트림은 0111100110010010 이다. 이 비트 스트림은 저장 매체에 저장될 수 있고 또는 다른 기기로, 예를 들면, 도 1의 두 번째 기기 (10)로 전송되기 위해서 전송기 (9)로 보내질 수 있다. 상기 전송기 (9)는 전송 블록 (9.2)에 의해서, 예를 들면, 라디오 주파수 신호들로 변환되는 비트 스트림으로의 채널 인코딩을 수행하기 위해서, 예를 들면, 채널 인코더 (9.1)를 포함할 수 있다.
상기 상호-참조 테이블 (6), 코드 워드 테이블들 (5.1 - 5.M) 그리고 코드 워드 길이 테이블들 (7.1 - 7.M)을 설계하는 것은 애플리케이션 특정일 수 있다, 예를 들면, 모든 사용의 경우를 위해서 동작하는 단일 세트의 테이블들이 반드시 존재하는 것은 아니다. 그러나, 상기의 표 1, 표 2 및 표 3은 사용될 수도 있을 한 가지 가능한 테이블 설계를 예시한다.
더 일반적인 경우에서, 심볼들을 코드 워드들로 매핑하는 것은 고정되지 않는다. 예를 들면, 심볼 s 가 0 의 값을 가진다고 해서, 심볼 s 에 대한 코드 워드가 반드시 상기 테이블 내의 첫 번째 엔트리일 필요는 없다. 이런 경우에 심볼 값은 코드 워드 값을 얻기 위해서 직접적으로 사용될 수 없으며 그리고 이 매핑을 표현하기 위해서 여분의 테이블이 필요하다. 심볼 s 를 코딩하는 것은 다음과 같이 진행될 수 있을 것이다.
n = cw_num[s]
t = table_num[k]
cw = code_word[t,n]
len = cw_length[t,n]
이 경우 cw_num 은 심볼 값들을 코드 워드 번호들로 매핑하는 테이블이다. 코드 워드 번호는 그러면 실제의 코드 워드를 얻기 위해서 사용된다.
심볼이 코딩된 이후에, 상기 변수 k 가 다음과 같이 업데이트된다.
Figure pct00005
인코더 (1.4)는 변수 k 의 값 그리고 아마도 몇몇의 다른 변수들을 업데이트하기 위해서 업데이트 엘리먼트 (1.8)를 포함할 수 있다.
이전의 예들에서, 모든 변수들은 정수들이었다. 대안의 실시예에서, k 그리고 L 은 부동 소수점 값 또는 고정 소수점 값이며 그리고 테이블 번호를 얻기 위해서 사용되기 전에 k 는 가장 가까운 정수 값으로 올림되거나 또는 그 정수로 내림된다. 소스의 정보를 나타내기 위해서 사용되는 심볼들은 숫자들일 필요는 없으며 알파벳 문자들과 같은 다른 종류의 엘리먼트들을 또한 포함할 수 있다. 심볼들의 상기 세트 내의 이용 가능한 심볼들은 상호 순서를 가진다. 예를 들면, 0 부터 N-1 까지의 숫자들은 증가하는 또는 감소하는 순서로 순서가 정해질 수 있다. 상기 변수 k 의 값들 그리고 상기 심볼들 사이에는 1-대-1 대응 관계가 존재한다는 것이 상기에서 또한 가정되었다. 다른 말로 하면, 상기 변수 k 는 가능한 심볼에 대응하는 그런 값을 가질 수 있다. 상기의 예에서, k 는 0, 1, ..., N-1의 값을 가질 수 있다 (k ∈ 0, 1, ..., N-1). 그래서, 상기 변수 k 의 값이 상기 심볼 s 보다 더 작은가, 더 큰가 또는 동일한가의 여부를 판별하기 위해서, 상기 변수 k 의 값은 상기 심볼 s 와 비교될 수 있다. 그러므로, 모든 심볼들이 숫자 엘리먼트라고 해도, 상기 변수 k 의 값이 상기 심볼 s 보다 더 작은가, 더 큰가 또는 동일한가의 여부를 판별하기 위해서 상기 상호 순서가 사용될 수 있다. 예를 들면, 심볼들의 세트가 A부터 F 까지의 문자들을 포함하면, 상기 변수 k 는 문자 A, B, C, D, E 또는 F와 대응하는 값으로 또한 세팅될 수 있을 것이다. 가능한 심볼 값들과 상기 변수 k 의 값들 사이의 대응 관계를 위해서 상호-참조 테이블 (도시되지 않음)을 정의하는 것이 또한 가능할 수 있을 것이다. 예를 들면, 상기 상호-참조 테이블은 심볼들 A 내지 F가 각각 변수 k 의 10 내지 15의 값들에 대응한다는 것을 표시할 수 있다.
또한, 이전의 예들에서, 상기 코드 워드는, 예를 들면, 상기 메모리 (4)에 존재하는 미리-정의된 테이블로부터 로딩되었다. 그러나, 몇몇의 경우들에서, 상기 코드 워드를 즉석에서 생성하는 것이 가능하여, 코드 워드들이 상기 메모리에 저장되는 것이 필요하지 않도록 한다. 상기 인코더가 코드 워드를 얻을 필요가 있을 때에, 그것은 미리 정의된 알고리즘을 이용하여 코드 워드를 생성하기 위해서 테이블 번호 및 코드 워드 번호를 이용한다. 상기 변수 k 를 기초로 하여 상기 상호-참조 테이블 (6)이 상기 코드 워드 테이블의 인덱스를 생성하는 알고리즘과 교체되는 것이 또한 가능하다
상기 코드 워드 테이블들 (5.1 - 5.M), 상기 상호-참조 테이블 (6), 그리고 상기 코드 워드 길이 테이블들 (7.1 - 7.M)을 저장하는 것은 많은 방식들로 구현될 수 있다. 그것들은, 예를 들면, 첫 번째 기기 (8)의 메모리 (4)에 저장될 수 있다. 각 행은 연속적인 메모리 위치들에 저장될 수 있으며, 그래서 각 값이 특정 길이의 비트들을 구비하도록 하거나 또는 각 값 이후에 각각으로부터 상이한 열들을 분리시키기 위한 필드 분리자가 존재할 수 있다. 상기 테이블들의 값들을 열 단위로 저장하는 것이 또한 가능하다.
상기에서 본 발명의 몇몇의 원칙들이 인코더의 관점으로부터 설명되었지만, 상기 코드 워드 프로세싱이 역전되는 것, 즉, 대응하는 심볼을 판별하기 위해서 상기 수신한 코드 워드가 사용된다는 것을 제외하면 디코더 구현은 아주 유사하다. 이는 도 3의 디코더 그리고 도 5의 흐름도를 참조하여 이제 더욱 상세하게 설명된다. 두 번째 기기 (10) (도 1)는 상기 전송된 정보를 수신하고 그리고 수신기 (14)에서, 예를 들면, 라디오 주파수 신호를 더 낮은 주파수 신호로 (예를 들면 기본 대역 신호로)의 변환 (14.1), 저주파수 신호의 채널 디코딩 (14.2) 그리고/또는 상기 수신한 신호로부터 코드 워드들을 획득하기 위해서 몇몇의 다른 동작들을 수행한다. 상기 수신한 코드 워드들은 추가의 프로세싱을 위해서 상기 두 번째 기기의 메모리 (12)에 저장될 수 있다. 이 예에서, 동일한 비트 스트림이 사용되며, 이는 상기에서 인코딩 프로세스와 결합하여, 즉, 0111100110010010 로 제시되었다,
디코더 (11)의 초기화 블록 (11.3)은 상기 변수 k를 초기화한다 (k = K) (도 5의 블록 501). 상기 디코더 (11)는 상기 인코더의 테이블들에 대응하는 테이블들에 액세스한다. 예를 들면, 상기 디코더 (11)는 상기 인코더 (1)의 코드 워드 테이블들 (5.1 - 5.M)과 비교하여 유사한 세트의 코드 워드 테이블들 (17.1 - 17.M)을 가진다. 상기 디코더 (11)는 상기 인코더의 상호-참조 테이블 (6)에 대응하는 상호-참조 테이블 (13)을 또한 가진다. 상기 테이블들은, 예를 들면, 상기 디코더의 메모리 (12)에서 형성될 수 있으며 또는 상기 디코더 (11)는 상기 테이블들 대신에 사용하기 위한 몇몇의 알고리즘들을 포함할 수 있다.
심볼 판별 블록 (11.2)은 코드 워드 테이블을 선택하기 위해서 상기 변수 k 의 현재 값 그리고 상호-참조 테이블 (13)을 이용한다 (도 5의 블록 502). 이 동작은 도 3에서 테이블 선택기 (11.4)로서 도시된다. 이 예에서, 상기 k 는 초기에 3 (=K)으로 설정되며, 이 경우 상기 상호-참조 테이블 (13)은 상기 두 번째 코드 워드 테이블 (17.2)이 코드 워드를 심볼로 매핑하는데 사용된다는 것을 표시한다.
수신된 비트들은 상기 비트들이 상기 심볼 판별 블록 (11.2)으로 배송되는 상기 디코더 (11)의 입력부 (11.1)로, 예를 들면, 하나씩 또는 더 큰 부분들이 입력된다 (도 5의 블록 503). 상기 수신된 비트 스트림의 첫 번째 비트 (즉, 이 예시의 실시예에서 제일 왼쪽 최상위 비트)는 0 이다. 상기 심볼 판별 블록 (11.2)은 그런 코드 워드가 상기 두 번째 코드 워드 테이블 내에 존재하는가의 여부를 판별하기 위해서 상기 두 번째 코드 워드 테이블 (17.2)의 코드 워드들을 검사한다 (도 5의 블록 504 및 블록 505). 코드 워드가 존재한다고 상기 검사 결과가 표시하면, 그러면 얻어진 상기 코드 워드는 상기 심볼을 판별하기 위해서 사용될 수 있다. 그러나, 이 예시의 실시예에서, 비트 패턴 0 은 상기 두 번째 코드 워드 테이블 (17.2) 내의 코드 워드가 아니다. 그러므로, 다음의 비트가 또한 입력되며 그리고 상기 첫 번째 비트와 결합된다. 그 결합은 01 이며 그리고 상기 심볼 판별 블록 (11.2)은 이것이 유효한 코드 워드인가의 여부를 판별한다. 이 예에서, 또한 이 비트 패턴은 상기 두 번째 코드 워드 테이블 (17.2)에서의 코드 워드가 아니며, 그래서 다음의 비트가 상기 심볼 판별 블록 (11.2)으로 입력된다. 이제, 이런 비트들의결합은 011이다. 이 코드 워드는 상기 두 번째 코드 워드 테이블 (17.2) 내에 존재한다. 그러므로, 대응하는 심볼이 상기 두 번째 코드 워드 테이블을 기초로 하여 판별될 수 있다 (도 5의 블록 506). 첫 번째 열은 상기 대응 심볼이 3 이라는 것을 나타내며, 이것을 상기 심볼 판별 블록 (11.2)가 디코더의 출력부 (11.5)에서 출력한다.
상기 심볼은 심볼 버퍼에 또한 저장될 수 있으며, 이 심볼 버퍼는, 예를 들면, 상기 두 번째 기기 910)의 메모리 (12)에서 구현될 수 있다. 상기 심볼은 예를 들면 참조번호 12의 메모리에 저장될 수 있다. 상기 심볼 판별 블록 (11.2)은 상기 코드 워드 테이블 (17) 내의 코드 워드들 그리고 대응하는 심볼들을 검사하는 것을 수행하기 위한 심볼 선택기 (11.5)를 포함할 수 있다.
상기 입력 비트 스트림으로부터 코드 워드를 찾은 이후에, 상기 변수 k 의 값은 업데이트될 수 있다 (도 5의 블록 507). 변수 k를 업데이트하기 위한 규칙들은 상기 인코더에서 사용된 것과 동일하다. 즉,
Figure pct00006
이다.
상기 심볼 판별 블록 (11.2)은 상기 변수 k 의 값 그리고 아마도 몇몇의 다른 변수들의 값을 업데이트하기 위해서 업데이트 엘리먼트 (11.5)를 포함할 수 있다.
상기 판별된 심볼은 3 이었으며, 이는 상기 변수 k 의 현재 값과 동일하다. 그래서, 변수 k 는 수정되지 않으며 그리고 동일한 코드 워드 테이블들이 다음의 코드 워드를 디코딩하는데 있어서 사용될 것이다.
비록 상기 심볼이 디코딩된 후에 상기 변수 k 가 업데이트된 것으로 도 5의 흐름도가 도시하지만, 또한 그 순서는 그것과는 다를 수 있다. 예를 들면, 상기 변수는 심볼을 디코딩하는 동안에 또는 그 이전에 업데이트될 수 있다.
상기 절차는, 예를 들면, 검사되어야 할 비트들이 더 있는가의 여부를 검사 (도 5의 블록 508)함으로써 계속된다. 검사할 비트들이 더 있다면, 상기 동작은 (블록 502에서) 상기 변수 k 그리고 상호 참조 테이블 (13)을 기초로 하여 코드 워드 테이블을 선택함으로써 계속된다. 이 예에서, 다음 비트는 1 이다. 이는 상기 두 번째 코드 워드 테이블에서는 유효한 코드가 아니며, 그래서 다음 비트가 입력된다. 상기 심볼 판별 블록 (11.2)에 의해서 검사될 상기 비트들의 결합은 이제 11이며, 이는 상기 두 번째 코드 워드 테이블에서 유효한 코드 워드이다. 대응하는 심볼은 1이다.
상기 코드 워드로부터 심볼을 디코딩하기 위한 다른 가능성들 역시 존재한다는 것에 유의해야만 한다. 그것이 비트 단위로 일어날 필요는 없지만, 매칭 (matching) 코드 워드를 발견하는 어떤 종류의 방법도 이런 환경에서 활용될 수 있다. 예를 들면, 비트 스트림의 일부는 상기 디코더 (11)의 입력부 (11.1)로 입력되고, 상기 비트들은 그로부터 상기 심볼 판별 블록 (11.2)으로 배송된다. 상기 심볼 판별 블록 (11.2)은 선택된 가변 길이 코드 워드 테이블로부터, 상기 비트 스트림의 상기 일부가 상기 선택된 가변 길이 코드 워드 테이블 내에 코드 워드를 포함하는가를 검사하고, 비트 스트림의 상기 일부가 상기 선택된 가변 길이 코드 워드 테이블 내에 코드 워드를 포함한다고 상기 검사 결과가 표시하면, 상기 심볼 판별 블록 (11.2)은 상기 선택된 가변 길이 코드 워드 테이블 내의 어느 심볼이 상기 코드 워드에 대응하는가를 판별하고, 그리고 그 심볼을 출력한다. 비트 스트림의 상기 일부가 상기 선택된 가변 길이 코드 워드 테이블 내에 어떤 코드 워드도 포함하지 않는다고 상기 검사 결과가 표시하면, 비트 스트림의 다음 부분이 디코더 (11)의 입력부 (11.1)로 입력되고 그리고 추가의 검사를 위해서 상기 심볼 판별 블록 (11.2)으로 배송된다. 상기의 단계들은, 상기 선택된 가변 길이 코드 워드 테이블로부터 유효한 코드 워드가 발견될 때까지 반복된다.
룩-업 테이블들을 이용하고 또는 이진 트리를 이용하는 것과 같이, 디코딩 프로세스에서 매칭 코드 워드들을 발견할 다른 가능성들 역시 존재한다.
상기 프로세스를 반복함으로써, 비트 스트림은 올바르게 디코딩되어, 그 결과는 전송되었던 것과 동일한 심볼 스트림이며, 즉, 이 경우에는 그 결과인 심볼 스트림은 3, 1, 5, 4, 2 이다.
상기의 예들에서, 상기 인코더 (1) 그리고 디코더 (11)의 기능적인 엘리먼트들은 분리된 블록들로서 도시되었다. 그러나, 실제의 구현들에서, 상기 기능적인 엘리먼트들 또는 그것들 중의 몇몇은 하드웨어로 또는 인코더 (1)의 제어기 (1.4) 그리고/또는 디코더 (11)의 제어기 (11.4)의 프로그램 코드로서 구현될 수 있다. 상기 제어기들 (1.4, 11.4)은 디지털 시그날 프로세서들이거나 또는 프로그램 코드를 실행하기 위한 다른 수단의 프로그램 코드 인터프리터를 포함하는 다른 프로세서들일 수 있다. 상기 프로그램 코드는 메모리 (4, 12)와 같은 저장 매체로 저장될 수 있고 또는 디스크, 예를 들면, CDROM으로, 또는 다른 유형의 캐리어에 저장될 수 있다.
상기 코드 워드 값들이 어떻게 생성되는가에 관계없이, 본 발명은 방법으로서 그리고 상기 가변 길이 코드 워드 테이블 번호를 판별하기 위한 수단 그리고 변수 k를 업데이트하기 위한 수단을 적어도 포함하는 장치에서 구현될 수 있다. 상기 판별된 가변 길이 코드 워드 테이블 번호 그리고 인코딩될 심볼은 심볼을 표현하기 위해서 코드 워드에 의해서 사용될 수 있다. 각각, 디코딩 과정에서, 상기 코드 워드 그리고 상기 판별된 가변 길이 코드 워드 테이블 번호를 이용함으로써 심볼을 찾아낼 수 있다.
본 발명은 데이터 압축을 사용하는 애플리케이션에서, 예를 들면, 비디오 신호들을 압축하기 위해서 사용될 수 있다. 비디오 코딩에 있어서, 본 발명의 방법은 적어도 매크로블록 모드, 코딩된 블록 패턴 (cbp) 그리고 이산 코사인 변환 (DCT) 변환된 블록의 위치를 코딩하기 위해서 유익하다는 것이 관찰된다.
예시의 실시예에서, 코드 워드 길이는 테이블의 시작 부분부터 끝 부분까지 단조롭게 증가하지만 (즉, 코드 워드의 길이는 상기 테이블 내에서 그 코드 워드 이전에 있는 어떤 코드 워드의 길이보다 더 크거나 동일하다), 그러나 다른 종류의 코드 워드 테이블 설계 원칙들 역시 본 발명의 범위 내에서 사용될 수 있다.
다음에서, 상호-참조 테이블 (6)의 다른 예 (table_num)가 개시된다.
Figure pct00007
이 예에서, 4개의 코드 워드 테이블들이 존재하며, 그 중에서 하나의 예 (code_word (이진 포맷))가 다음의 표에서 개시된다.
Figure pct00008
표 5의 코드 워드 테이블에 대응하는 길이 테이블은 다음의 값들을 포함할 수 있을 것이다 (cw_length).
Figure pct00009
인코더 (1)를 포함하는 상기 첫 번째 기기 (8)는, 예를 들면, 무선 통신 기기, 컴퓨터, 서버, CDROM 플레이어, DVD 플레이어 등일 수 있다. 디코더 (11)를 포함하는 상기 두 번째 기기 (10)는, 예를 들면, 무선통신 기기, 컴퓨터, 서버, CDROM 플레이어, DVD 플레이어 등일 수 있다. 상기 전송 채널 (15)은 무선 통신 네트워크, 로컬 영역 네트워크, 상기 첫 번째 기기 (9)와 두 번째 기기 (10) 사이의 유선 또는 무선 접속 등과 같은 통신 네트워크를 포함할 수 있다.
본 발명은 상기에서 언급된 예들을 한정하는 것이 아니며, 청구항들의 범위 내에서 변경될 수 있다.

Claims (27)

  1. 심볼을 가변 길이 인코딩 (variable length encoding)하는 방법으로서,
    변수의 값을 기반으로 하여, 가변 길이 코드 워드 테이블의 세트로부터 가변 길이 코드 워드 테이블을 선택하는 단계;
    심볼을 기초로 하여, 상기 선택된 가변 길이 코드 워드 테이블로부터 코드 워드를 선택하는 단계;
    상기 심볼과 상기 변수 사이의 대응 관계를 비교함으로써 상기 변수의 값을 업데이트하는 단계를 포함하며, 이 경우에,
    변수의 값이 심볼보다 더 작다고 상기 비교의 결과가 표시하면, 상기 변수의 값을 증가시키며; 그렇지 않고
    변수의 값이 심볼보다 더 크다고 상기 비교의 결과가 표시하면, 상기 변수의 값을 감소시키고; 그렇지 않다면
    변수의 값은 수정되지 않는,
    가변 길이 인코딩 방법.
  2. 제1항에 있어서,
    다른 심볼을 인코딩하기 위해서 상기 단계들을 반복하는 것을 더 포함하는, 가변 길이 인코딩 방법.
  3. 제1항에 있어서,
    상기 변수 수정을 위한 오프셋을 정의하는 단계를 더 포함하며,
    이 경우 변수가 수정될 것이라고 상기 비교의 결과가 표시하면, 변수 수정의 크기는 상기 오프셋에 의해서 정의되는, 가변 길이 인코딩 방법.
  4. 제3항에 있어서,
    심볼과 상기 변수 사이의 차이를 판별하는 단계를 더 포함하며,
    이 경우 상기 오프셋은 판별된 차이에 종속하는, 가변 길이 인코딩 방법.
  5. 제1항에 있어서,
    인코딩될 정보로부터 통계적인 파라미터를 추정하는 단계;
    추정된 통계적인 파라미터를 기초로 하여 상기 가변 길이 코드 워드 테이블들에서 상기 코드 워드들을 정의하는 단계;를 더 포함하는, 가변 길이 인코딩 방법.
  6. 제5항에 있어서,
    상기 추정하는 것은 상기 정보를 나타내는 심볼들의 확률 분포를 판별하는 것을 포함하는, 가변 길이 인코딩 방법.
  7. 제1항에 있어서,
    심볼들의 세트로부터 상기 심볼을 선택하는 단계를 더 포함하는, 가변 길이 인코딩 방법.
  8. 제1항에 있어서,
    심볼들이 상호 순서를 가지며 그리고 심볼들의 세트 내에서 하나의 심볼이 가장 큰 심볼 값을 나타내며 그리고 다른 심볼이 심볼들의 세트 내에서 가장 낮은 심볼 값을 나타내는 심볼들의 세트로부터 선택된 심볼들의 세트를 정의하는 단계를 더 포함하는, 가변 길이 인코딩 방법.
  9. 제8항에 있어서,
    심볼들의 상기 세트 내에서 가장 큰 심볼 값보다 더 작은 변수 k에 대한 상한 (upper limit)을 선택하는 단계; 또는
    심볼들의 상기 세트 내에서 가장 작은 심볼 값보다 더 큰 하한 (lower limit)을 선택하는 단계; 또는
    심볼들의 상기 세트 내에서 가장 큰 심볼 값보다 더 작은 변수 k에 대한 상한 그리고 심볼들의 상기 세트 내에서 가장 작은 심볼 값보다 더 큰 하한, 두 가지 모두를 선택하는 단계;
    중에서 적어도 하나를 더 포함하는, 가변 길이 인코딩 방법.
  10. 코드 워드를 가변 길이 디코딩 (variable length encoding)하는 방법으로서,
    변수의 값을 기반으로 하여, 가변 길이 코드 워드 테이블의 세트로부터 가변 길이 코드 워드 테이블을 선택하는 단계;
    상기 코드 워드를 이용하여, 상기 선택된 가변 길이 코드 워드 테이블로부터 상기 코드 워드에 대응하는 심볼을 찾는 단계;
    상기 심볼과 상기 변수 사이의 대응 관계를 비교함으로써 상기 변수의 값을 업데이트하는 단계를 포함하며, 이 경우에,
    변수의 값이 심볼보다 더 작다고 상기 비교의 결과가 표시하면, 상기 변수의 값을 증가시키며; 그렇지 않고
    변수의 값이 심볼보다 더 크다고 상기 비교의 결과가 표시하면, 상기 변수의 값을 감소시키고; 그렇지 않다면
    변수의 값은 수정되지 않는,
    가변 길이 디코딩 방법.
  11. 제10항에 있어서,
    다른 심볼을 디코딩하기 위해서 상기 단계들을 반복하는 것을 더 포함하는, 가변 길이 디코딩 방법.
  12. 제10항에 있어서,
    상기 변수 수정을 위한 오프셋을 정의하는 단계를 더 포함하며,
    이 경우 변수가 수정될 것이라고 상기 비교의 결과가 표시하면, 변수 수정의 크기는 상기 오프셋에 의해서 정의되는, 가변 길이 디코딩 방법.
  13. 제12항에 있어서,
    심볼과 상기 변수 사이의 차이를 판별하는 단계를 더 포함하며,
    이 경우 상기 오프셋은 판별된 차이에 종속하는, 가변 길이 디코딩 방법.
  14. 제10항에 있어서,
    비트 스트림으로부터의 비트를 입력하는 단계;
    상기 비트가 상기 선택된 가변 길이 코드 워드 테이블 내의 코드 워드에 대응하는가의 여부를 상기 선택된 가변 길이 코드 워드 테이블로부터 검사하는 단계;
    상기 비트가 상기 선택된 가변 길이 코드 워드 테이블 내의 코드 워드에 대응한다고 상기 검사의 결과가 표시하면, 상기 선택된 가변 길이 코드 워드 테이블 내의 어느 심볼이 상기 코드 워드에 대응하는가를 판별하며 그리고 그 심볼을 출력하는 단계; 그렇지 않고
    상기 비트가 상기 선택된 가변 길이 코드 워드 테이블 내의 어떤 코드 워드에도 대응하지 않는다고 상기 검사의 결과가 표시하면, 비트 스트림으로부터의 다음 비트를 입력으로 하고, 그리고 상기 검사하는 단계에서 상기 입력 비트들을 결합한 것을 사용하는 단계; 그리고
    상기 선택된 가변 길이 코드 워드 테이블로부터 유효한 코드 워드가 발견될 때까지 상기 단계들을 반복하는 단계를 더 포함하는, 가변 길이 디코딩 방법.
  15. 제10항에 있어서,
    비트 스트림의 적어도 일부를 입력하는 단계;
    비트 스트림의 상기 일부가 상기 선택된 가변 길이 코드 워드 테이블 내의 코드 워드를 포함하는가의 여부를 상기 선택된 가변 길이 코드 워드 테이블로부터 검사하는 단계;
    비트 스트림의 상기 일부가 상기 선택된 가변 길이 코드 워드 테이블을 포함한다고 상기 검사의 결과가 표시하면, 상기 선택된 가변 길이 코드 워드 테이블 내의 어느 심볼이 상기 코드 워드에 대응하는가를 판별하고, 그 심볼을 출력하는 단계; 그렇지 않으면
    비트 스트림의 상기 일부가 상기 선택된 가변 길이 코드 워드 테이블 내의 어떤 코드 워드도 포함하지 않는다고 상기 검사의 결과가 표시하면, 상기 비트 스트림의 다음 일부를 입력하는 단계; 그리고
    상기 선택된 가변 길이 코드 워드 테이블로부터 유효한 코드 워드가 발견될 때까지 상기 단계들을 반복하는 단계를 더 포함하는, 가변 길이 디코딩 방법.
  16. 변수의 값을 기반으로 하여, 가변 길이 코드 워드 테이블의 세트로부터 가변 길이 코드 워드 테이블을 선택하도록 구성된 코드 워드 테이블 선택기;
    심볼을 기초로 하여, 상기 선택된 가변 길이 코드 워드 테이블로부터 코드 워드를 선택하도록 구성된 코드 워드 선택기;
    상기 심볼과 상기 변수 사이의 대응 관계를 비교함으로써 상기 변수의 값을 업데이트하도록 구성된 업데이터 엘리먼트를 포함하는 장치로서, 이 경우에,
    변수의 값이 심볼보다 더 작다고 상기 비교의 결과가 표시하면, 상기 업데이트 엘리먼트는 상기 변수의 값을 증가시키도록 구성되며; 그렇지 않고
    변수의 값이 심볼보다 더 크다고 상기 비교의 결과가 표시하면, 상기 업데이트 엘리먼트는 상기 변수의 값을 감소시키도록 구성된, 장치.
  17. 제16항에 있어서,
    상기 변수 수정을 위한 오프셋을 포함하며,
    이 경우 상기 업데이트 엘리먼트는 상기 변수 수정에 있어서 상기 오프셋을 사용하도록 구성된, 장치.
  18. 제17항에 있어서,
    상기 업데이트 엘리먼트는 심볼과 상기 변수 사이의 차이를 판별하도록 구성되며, 그리고
    상기 판별된 차이를 기초로 하여 상기 수정의 크기를 판별하도록 더 구성된, 장치.
  19. 제16항에 있어서,
    소스로부터의 정보를 나타내기 위해서 심볼들의 세트로부터 심볼을 선택하기 위한 선택기를 포함하는, 장치.
  20. 제19항에 있어서,
    심볼들의 세트 내의 심볼들은 상호 순서를 가지며 그리고
    하나의 심볼은 가장 큰 심볼 값을 나타내며 그리고 다른 심볼은 가장 낮은 심볼 값을 나타내는, 장치.
  21. 제20항에 있어서,
    심볼들의 상기 세트 내에서 가장 큰 심볼 값보다 더 작은 변수 k에 대한 상한 (upper limit); 또는
    심볼들의 상기 세트 내에서 가장 작은 심볼 값보다 더 큰 하한 (lower limit); 또는
    심볼들의 상기 세트 내에서 가장 큰 심볼 값보다 더 작은 변수 k에 대한 상한 그리고 심볼들의 상기 세트 내에서 가장 작은 심볼 값보다 더 큰 하한, 두 가지 모두;
    중에서 적어도 하나를 더 포함하는, 장치.
  22. 변수의 값을 기반으로 하여, 가변 길이 코드 워드 테이블의 세트로부터 가변 길이 코드 워드 테이블을 선택하기 위한 코드 워드 테이블 선택기;
    상기 선택된 가변 길이 코드 워드 테이블로부터 상기 코드 워드에 대응하는 심볼을 찾도록 구성된 심볼 판별기;
    상기 심볼과 상기 변수 사이의 대응 관계를 비교함으로써 상기 변수의 값을 업데이트하기 위한 업데이트 엘리먼트를 포함하는 장치로서, 이 경우에,
    변수의 값이 심볼보다 더 작다고 상기 비교의 결과가 표시하면, 상기 업데이트 엘리먼트는 상기 변수의 값을 증가시키도록 구성되고; 그렇지 않고
    변수의 값이 심볼보다 더 크다고 상기 비교의 결과가 표시하면, 상기 업데이트 엘리먼트는 상기 변수의 값을 감소시키도록 구성된, 장치.
  23. 제22항에 있어서,
    상기 변수 수정을 위한 오프셋을 포함하며,
    이 경우 상기 업데이트 엘리먼트는 상기 변수 수정에 있어서 상기 오프셋을 사용하도록 구성된, 장치.
  24. 제23항에 있어서,
    상기 업데이트 엘리먼트는 심볼과 상기 변수 사이의 차이를 판별하도록 구성되며, 그리고
    상기 판별된 차이를 기초로 하여 상기 수정의 크기를 판별하도록 더 구성된, 장치.
  25. 제22항에 있어서,
    비트 스트림으로부터의 비트를 입력하도록 구성된 입력부;를 포함하며
    상기 심볼 판별기는,
    상기 비트가 상기 선택된 가변 길이 코드 워드 테이블 내의 코드 워드에 대응하는가의 여부를 상기 선택된 가변 길이 코드 워드 테이블로부터 검사하고;
    상기 비트가 상기 선택된 가변 길이 코드 워드 테이블 내의 코드 워드에 대응한다고 상기 검사의 결과가 표시하면, 상기 선택된 가변 길이 코드 워드 테이블 내의 어느 심볼이 상기 코드 워드에 대응하는가를 판별하며 그리고 그 심볼을 출력하고;
    상기 비트가 상기 선택된 가변 길이 코드 워드 테이블 내의 어떤 코드 워드와도 대응하지 않는다고 상기 검사의 결과가 표시하면, 비트 스트림으로부터의 다음 비트를 검사하고 그리고 상기 검사 과정에서 상기 입력 비트들을 결합한 것을 사용하고; 그리고
    상기 선택된 가변 길이 코드 워드 테이블로부터 유효한 코드 워드가 발견될 때까지 상기 단계들을 반복하도록 구성된, 장치.
  26. 인코더에 의해서 사용하기 위한 컴퓨터-실행가능 프로그램 코드를 저장하는 저장 매체로서,
    상기 프로그램 코드들은,
    변수의 값을 기반으로 하여, 가변 길이 코드 워드 테이블의 세트로부터 가변 길이 코드 워드 테이블을 선택하고;
    상기 심볼을 기초로 하여, 상기 선택된 가변 길이 코드 워드 테이블로부터 코드 워드를 선택하고;
    상기 심볼과 상기 변수 사이의 대응 관계를 비교함으로써 상기 변수의 값을 업데이트하기 위한, 명령어들을 포함하며, 이 경우에,
    변수의 값이 심볼보다 더 작다고 상기 비교의 결과가 표시하면, 상기 변수의 값이 증가되며; 그렇지 않고
    변수의 값이 심볼보다 더 크다고 상기 비교의 결과가 표시하면, 상기 변수의 값이 감소되고; 그렇지 않다면
    변수의 값은 수정되지 않는, 저장 매체.
  27. 인코더에 의해서 사용하기 위한 컴퓨터-실행가능 프로그램 코드를 저장하는 저장 매체로서,
    상기 프로그램 코드들은,
    변수의 값을 기반으로 하여, 가변 길이 코드 워드 테이블의 세트로부터 가변 길이 코드 워드 테이블을 선택하고;
    상기 코드 워드를 이용하여, 상기 선택된 가변 길이 코드 워드 테이블로부터 상기 코드 워드에 대응하는 심볼을 찾고;
    상기 심볼과 상기 변수 사이의 대응 관계를 비교함으로써 상기 변수의 값을 업데이트 하기 위한 명령어들을 포함하며, 이 경우에,
    변수의 값이 심볼보다 더 작다고 상기 비교의 결과가 표시하면, 상기 변수의 값이 증가되며; 그렇지 않고
    변수의 값이 심볼보다 더 크다고 상기 비교의 결과가 표시하면, 상기 변수의 값을 감소되고; 그렇지 않다면
    변수의 값은 수정되지 않는, 저장 매체.
KR1020117030180A 2009-05-19 2010-05-18 가변 길이 코딩을 위한 방법 및 장치 KR20120018360A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17948409P 2009-05-19 2009-05-19
US61/179,484 2009-05-19

Publications (1)

Publication Number Publication Date
KR20120018360A true KR20120018360A (ko) 2012-03-02

Family

ID=43124231

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117030180A KR20120018360A (ko) 2009-05-19 2010-05-18 가변 길이 코딩을 위한 방법 및 장치

Country Status (10)

Country Link
US (1) US8350735B2 (ko)
EP (1) EP2433367B1 (ko)
KR (1) KR20120018360A (ko)
CN (1) CN102460976B (ko)
CA (1) CA2762782C (ko)
MX (1) MX2011012250A (ko)
RU (1) RU2011150914A (ko)
TW (1) TW201128965A (ko)
WO (1) WO2010133763A1 (ko)
ZA (1) ZA201109232B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101477621B1 (ko) * 2012-04-15 2015-01-02 삼성전자주식회사 변환 계수 레벨의 엔트로피 부호화 및 복호화를 위한 파라메터 업데이트 방법 및 이를 이용한 비디오 부호화 및 복호화 방법 및 장치

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9490839B2 (en) 2011-01-03 2016-11-08 Qualcomm Incorporated Variable length coding of video block coefficients
CN102122960B (zh) * 2011-01-18 2013-11-06 西安理工大学 一种针对二进制数据的多字符组合无损数据压缩方法
TWI524681B (zh) * 2011-04-26 2016-03-01 晨星半導體股份有限公司 霍夫曼解碼器及其解碼方法
US9516316B2 (en) 2011-06-29 2016-12-06 Qualcomm Incorporated VLC coefficient coding for large chroma block
US9338456B2 (en) * 2011-07-11 2016-05-10 Qualcomm Incorporated Coding syntax elements using VLC codewords
US20130099946A1 (en) 2011-10-21 2013-04-25 International Business Machines Corporation Data Compression Utilizing Variable and Limited Length Codes
CN102664636B (zh) * 2012-05-16 2016-03-23 苏州大学 一种变长编码、解码方法及装置
US9626184B2 (en) 2013-06-28 2017-04-18 Intel Corporation Processors, methods, systems, and instructions to transcode variable length code points of unicode characters
RU2639687C1 (ru) * 2015-10-13 2017-12-21 Хуавэй Текнолоджиз Ко., Лтд Устройство и способ декодирования и система передачи сигналов
CN111200733B (zh) * 2018-11-20 2021-10-26 福州依影健康科技有限公司 一种远程眼底筛查和健康大数据系统中的隐私保护方法
CN112699639B (zh) * 2021-02-09 2022-03-04 北京微步在线科技有限公司 整数数据的存储方法、装置及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4862167A (en) * 1987-02-24 1989-08-29 Hayes Microcomputer Products, Inc. Adaptive data compression method and apparatus
US5400075A (en) * 1993-01-13 1995-03-21 Thomson Consumer Electronics, Inc. Adaptive variable length encoder/decoder
KR100209877B1 (ko) * 1994-11-26 1999-07-15 윤종용 복수개의 허프만부호테이블을 이용한 가변장부호화장치 및 복호화장치
CN1126268C (zh) * 1996-03-15 2003-10-29 皇家菲利浦电子有限公司 编码数字信息信号的方法和装置
US5995148A (en) * 1997-02-14 1999-11-30 At&T Corp Video coder having scalar dependent variable length coder
WO1999003208A2 (en) * 1997-07-11 1999-01-21 Koninklijke Philips Electronics N.V. Transmission system using a variable length encoder
KR100993443B1 (ko) * 2001-11-22 2010-11-09 파나소닉 주식회사 복호화 방법
JP4130780B2 (ja) * 2002-04-15 2008-08-06 松下電器産業株式会社 画像符号化方法および画像復号化方法
JP4442891B2 (ja) * 2004-11-30 2010-03-31 キヤノン株式会社 可変長符号化装置及び可変長符号化方法
JP2010045598A (ja) * 2008-08-12 2010-02-25 Fujitsu Ltd 可変長復号装置、及び、符号化装置
US7965207B2 (en) * 2008-10-03 2011-06-21 Seomoz, Inc. Variable length integer encoding system and method

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101477621B1 (ko) * 2012-04-15 2015-01-02 삼성전자주식회사 변환 계수 레벨의 엔트로피 부호화 및 복호화를 위한 파라메터 업데이트 방법 및 이를 이용한 비디오 부호화 및 복호화 방법 및 장치
KR20150037782A (ko) * 2012-04-15 2015-04-08 삼성전자주식회사 변환 계수 레벨의 엔트로피 복호화를 위한 파라메터 업데이트 방법 및 이를 이용한 비디오 복호화 방법 및 장치
US9277233B1 (en) 2012-04-15 2016-03-01 Samsung Electronics Co., Ltd. Parameter update method for entropy coding and decoding of conversion coefficient level, and entropy coding device and entropy decoding device of conversion coefficient level using same
US9277242B2 (en) 2012-04-15 2016-03-01 Samsung Electronics Co., Ltd. Parameter update method for entropy coding and decoding of conversion coefficient level, and entropy coding device and entropy decoding device of conversion coefficient level using same
US9386323B2 (en) 2012-04-15 2016-07-05 Samsung Electronics Co., Ltd. Parameter update method for entropy coding and decoding of conversion coefficient level, and entropy coding device and entropy decoding device of conversion coefficient level using same
US9426492B2 (en) 2012-04-15 2016-08-23 Samsung Electronics Co., Ltd. Parameter update method for entropy coding and decoding of conversion coefficient level, and entropy coding device and entropy decoding device of conversion coefficient level using same
US9554155B2 (en) 2012-04-15 2017-01-24 Samsung Electronics Co., Ltd. Parameter update method for entropy coding and decoding of conversion coefficient level, and entropy coding device and entropy decoding device of conversion coefficient level using same
US9942567B2 (en) 2012-04-15 2018-04-10 Samsung Electronics Co., Ltd. Parameter update method for entropy coding and decoding of conversion coefficient level, and entropy coding device and entropy decoding device of conversion coefficient level using same
KR20190012247A (ko) * 2012-04-15 2019-02-08 삼성전자주식회사 변환 계수 레벨의 엔트로피 부호화를 위한 파라메터 업데이트 방법 및 이를 이용한 비디오 부호화 방법 및 장치
US10306230B2 (en) 2012-04-15 2019-05-28 Samsung Electronics Co., Ltd. Parameter update method for entropy coding and decoding of conversion coefficient level, and entropy coding device and entropy decoding device of conversion coefficient level using same

Also Published As

Publication number Publication date
US8350735B2 (en) 2013-01-08
EP2433367A4 (en) 2013-11-20
EP2433367B1 (en) 2019-02-20
WO2010133763A1 (en) 2010-11-25
CN102460976B (zh) 2016-02-10
TW201128965A (en) 2011-08-16
ZA201109232B (en) 2013-05-29
US20100295712A1 (en) 2010-11-25
RU2011150914A (ru) 2013-06-27
MX2011012250A (es) 2012-03-07
EP2433367A1 (en) 2012-03-28
CN102460976A (zh) 2012-05-16
CA2762782C (en) 2015-09-29
CA2762782A1 (en) 2010-11-25

Similar Documents

Publication Publication Date Title
KR20120018360A (ko) 가변 길이 코딩을 위한 방법 및 장치
US10979071B2 (en) Systems and methods for variable length codeword based, hybrid data encoding and decoding using dynamic memory allocation
US11044495B1 (en) Systems and methods for variable length codeword based data encoding and decoding using dynamic memory allocation
US5818877A (en) Method for reducing storage requirements for grouped data values
RU2682009C2 (ru) Способ и устройство для кодирования и декодирования исходных данных с использованием сжатия символов
US8038074B2 (en) Data compression
US7817864B2 (en) Coding apparatus and decoding apparatus
EP2030325A2 (en) Data coding
EP1832000A1 (en) Device and data method for selective compression and decompression and data format for compressed data
KR102400514B1 (ko) 디지털 데이터 압축을 위한 방법 및 디바이스
EP0885429A1 (en) System and method for the fractal encoding of datastreams
CN110602498B (zh) 一种自适应有限状态熵编码的方法
RU2611249C1 (ru) Модификатор энтропии и способ его использования
RU2709656C2 (ru) Кодер, декодер и способ, использующие модовые символы
CN116582689A (zh) 用于资源受限编码环境中的低延迟视频传输的无损压缩
WO2020186535A1 (zh) 点云属性编码方法和装置以及点云属性解码方法和装置
KR101541869B1 (ko) 가변길이코딩을 이용한 인코딩 방법, 디코딩 방법, 및 그 시스템
KR102109768B1 (ko) Uhd 영상의 고속 처리를 위한 cabac 이진 산술 부호화기
JP5200854B2 (ja) 符号化装置、復号装置、及び画像処理システム
JP2934603B2 (ja) 可変長さコードの復号化方法及びその装置
CN117595884A (zh) 用于熵编码的压缩概率表
US20120016918A1 (en) Method for Compressing Information
JP6509916B2 (ja) 連結されたrom−ramテーブルに基づいて算術コーディングを遂行する方法及び装置
TW202218431A (zh) 對一序列資訊值進行算術編碼之算術編碼器與進行算數解碼之算數解碼器及用以算術編碼與解碼一序列資訊值之方法及實行該等方法之電腦程式

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application