KR100397806B1 - 정보 단어의 엔트로피 인코딩 디바이스 및 그 방법과엔트로피-인코딩된 정보 단어의 디코딩 디바이스 및 그 방법 - Google Patents

정보 단어의 엔트로피 인코딩 디바이스 및 그 방법과엔트로피-인코딩된 정보 단어의 디코딩 디바이스 및 그 방법 Download PDF

Info

Publication number
KR100397806B1
KR100397806B1 KR10-2001-7002938A KR20017002938A KR100397806B1 KR 100397806 B1 KR100397806 B1 KR 100397806B1 KR 20017002938 A KR20017002938 A KR 20017002938A KR 100397806 B1 KR100397806 B1 KR 100397806B1
Authority
KR
South Korea
Prior art keywords
word
information
words
code
reversible
Prior art date
Application number
KR10-2001-7002938A
Other languages
English (en)
Other versions
KR20010073132A (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 KR20010073132A publication Critical patent/KR20010073132A/ko
Application granted granted Critical
Publication of KR100397806B1 publication Critical patent/KR100397806B1/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

Abstract

엔트로피 인코딩과 그에 연관된 디코딩에 관한 방법 및 디바이스는 한편으로 가역 코드 단어들(12)을 갖는 코드 테이블로 구성되고, 다른 한편으로 코드 테이블에 의하여 정의된 영역(14) 밖에 위치한 코딩될 정보 단어들을 위한 이스케이프 영역을 포함하는 코드를 이용한다. 상기 영역은 정보 단어들의 주요 부분이 코드 테이블에 의해 대칭 코드로 코딩되도록 선택될 수 있다. 한편, 순방향 디코딩에 추가하여, 역방향 디코딩(24)도 수행할 수 있고, 다른 한편으로, 가역 코드 단어들의 사용은 비이상적인 채널로 전송되는 코드 단어 스트림에서 에러를 빠르게 인식할 수 있도록 허락한다.

Description

정보 단어의 엔트로피 인코딩 디바이스 및 그 방법과 엔트로피-인코딩된 정보 단어의 디코딩 디바이스 및 그 방법{DEVICE AND METHOD FOR ENTROPY ENCODING OF INFORMATION WORDS AND DEVICE AND METHOD FOR DECODING ENTROPY-ENCODED INFORMATION WORDS}
예로서, 표준 MPEG 층 3에 따라 동작하는 현대적인 오디오 코딩 및 디코딩 방법은 각각 오디오 신호의 품질을 저하시키지 않으면서 오디오 신호의 데이터 속도를, 예를 들면 12 계수로, 압축할 수 있다. 높은 데이터 축소(data reduction)를 달성하기 위하여, 한 개의 오디오 신호가 샘플링되어 일련의 시간-이산(time-discrete) 샘플링 값들을 얻을 수 있다. 기술분야에서 알려진 것과 같이, 이러한 시간-이산 샘플링 값들은 적합한 윈도우 기능들에 의하여 윈도우화 되어, 시 샘플링된 값들의 윈도우 블록들(windowed blocks)을 얻는다. 그 다음, 시 윈도우화 샘플링 값들의 블록은 주파수 영역으로 변환되는데, 이는 필터 뱅크(filter bank), 수정 이산 코사인 변환(modified discrete cosine transform, MDCT) 또는 다른 적절한 수단에의하여 이루어진다. 상기 변환의 목적은 오디오 신호 즉, 시간-이산 샘플링 값들로 이루어진 블록에 의하여 설정된 상기 시 윈도우를 나타내는 스펙트럼 값을 주파수 영역에서 얻기 위함이다. 종종, 50%의 중첩도를 갖는 시 블록들이 생성되어 MDCT에 의하여 주파수 영역으로 변환되어, MDCT의 특성 때문에, 예를 들면, 1024 시간-이산 샘플링 값들은 항상 1024개의 스펙트럼 값들을 초래한다.
인간 귀의 감수성(receptivity)은 오디오 신호 자체의 순간적인 스펙트럼에 의존한다고 알려져 있다. 이러한 의존성은 소위 심리-음향학 모델에서, 순간적인 스펙트럼에 따른 마스킹 드레숄드(masking thresholds)를 계산하는 것에 의하여 때때로 가능하다는 사실에 의하여 알려져 있다. 마스킹이란 특정 음향 또는 스펙트럼 콤포논트가 상쇄되는 것을 말하며, 예를 들면, 인접 스펙트럼 영역이 상대적으로 높은 에너지를 갖는 경우에 발생한다. 마스킹에 대한 이러한 사실은 가능한 한 개략적(rough)으로 상기의 변환 후 존재하는 스펙트럼 값들을 양자화(quantizing)하기 위해 이용된다. 따라서, 한편으로는 재 디코딩된 오디오 신호의 음향교란을 회피하고, 다른 한편으로는, 가능한 한 적은 비트들을 본 양자화하는 경우에 있어서 오디오 신호들을 코딩하는데 이용하기 위하여 많은 노력들이 행해지고 있다. 양자화 잡음과 같이 양자화에 의하여 나타나는 교란들은 마스킹 드레숄드보다 낮아야 하므로 청취가 불가능하다. 알려진 바에 의하면, 소위 스케일 팩터 밴드들(scale factor bands)이라는 스펙트럼 값들에 대한 분류가 행해지며, 이는 인간 귀의 주파수 그룹에 해당한다고 여겨진다. 스펙트럼 값 그룹 내에 있는 스펙트럼 값들은 스케일 팩터 밴드의 스펙트럼 값들을 전체적으로 스케일링 하기 위하여 스케일 팩터에 의하여 곱해진다. 그러면, 스케일 팩터에 의하여 스케일된 스케일 팩터 밴드들은 양자화되고, 이때 양자화된 스펙트럼 값들이 형성된다. 물론, 스케일 팩터 밴드로 그룹을 짓는 것이 결정적인 것은 아니다. 그러나, 이는 표준 MPEG 층 3과 표준 MPEG-2 AAC(AAC = Advanced Audio Coding)에서 채용되고 있다.
데이터 감축의 필수적인 면은 양자화된 스펙트럼 값들의 엔트로피 인코딩에 있고, 이는 양자화 후에 일어난다. 엔트로피 인코딩에 있어서, 허프만 코딩(Huffman coding)이 종종 채용된다. 허프만 코딩은 가변길이 코딩으로 이해되며, 즉, 코딩될 값에 대한 코드 단어의 길이가 거기에서의 발생확률에 의존한다는 것이다. 논리적으로 가장 개연성을 갖는 심볼은 가장 짧은 코드, 즉, 거기에 할당된 가장 짧은 코드 단어를 가지므로 허프만 코딩에 의하여 아주 우수한 리던던시(중복성) 감축을 달성할 수 있다. 일례로, 일반 길이에 대한 잘 알려진 코딩 기술은 모르스 코드(Morse code)이다.
오디오 코딩에 있어서, 허프만 코드들이 양자화된 스펙트럼 값들을 코딩하기 위하여 사용된다. 예로서, 표준 MPEG-2 AAC에 따라 동작하는 현대의 오디오 코딩기는 양자화된 스펙트럼 값들을 코딩하기 위하여 다양한 허프만 코드 테이블을 사용하며, 이때, 허프만 코드 테이블은 특정 기준에 따른 구분방법으로 스펙트럼에 지정된다. 항상 2 또는 4의 스펙트럼 값이 하나의 코드 단어에 공통적으로 코딩되어 있다.
MPEG-2 AAC에 따른 방법과 MPEG 층 3에 따른 방법의 차이는 다양한 스케일 팩터 밴드들, 즉, 다양한 스펙트럼 값들이 임의의 수의 스펙트럼 구역들로 구분지어지는점에 있다. AAC 경우에 있어서, 한 개의 스펙트럼 구역은 적어도 4개의 스펙트럼 값들로 구성되고, 바람직하게는 4개 이상의 스펙트럼 값들로 이루어진다. 따라서, 4개의 스펙트럼 값들의 전체 주파수 범위는 인접 구역들로 나누어지며, 하나의 구역은 하나의 주파수 밴드를 나타내므로, 전체 구역들은 변환 이후의 스펙트럼 값들에 의하여 커버(cover)되는 전체 주파수 범위로 이루어진다.
최대 리던던시 감축을 달성하기 위하여, MPEG 층 3방법에서와 마찬가지로, 다수개의 그러한 테이블들로 이루어진 소위 허프만 테이블은 하나의 구역으로 배정된다. 보통 1024개의 스펙트럼 값들을 갖는 AAC 방법의 비트 스트림(bit stream)에서는, 주파수 시퀀스를 상승시키는 스펙트럼 값들에 대한 허프만 코드 단어들이 있다. 각각의 주파수 구역에서 사용되는 테이블 정보는 사이드 정보(side information)로 전송된다.
스펙트럼 값들에 추가하여, 표준 MPEG-2 AAC (ISO/IEC JTC1/SC29/WG11 IS 13818.7)에 있어서, 스케일 팩터들 또한 전송될 비트량을 더욱 감축시키기 위하여 허프만 코딩에 속하게 된다. 효율성을 더욱 증가시키기 위하여, 한 개의 프레임 즉, 주파수 영역으로 변환될 샘플링 값들의 연관 윈도우 블록에 있는 스케일 팩터들은 미분 코딩(differential coding)된다. 전형적으로 절대치로 주어진 한 개 프레임의 최초 스케일 팩터인 초기값으로부터 시작하면, 그 차이점은 분명해진다. 이러한 점이 특히 압축에 있어서 매우 효과적인데, 이는 하나의 스케일 팩터로부터 이웃한 팩터로의 작은 변화는 매우 비슷하기 때문이다.
사용된 허프만 코드의 불리한 점은 가상적으로 리던던시를 갖고 있지 않는 점에 있다. 이러한 것이 비트 절약과 데이터 압축면에서 절대적으로 바람직할지라도, 그것은 결코 리던던시가 없음으로 에러에 대한 견고성(error robustness)이 달성될 수 있다는 결과를 가져오지는 않는다.
만약 허프만 코드화된 신호가 에러가 발생된 채널을 통하여 전송된다면, 에러 발생 후 디코더에서 여전히 가능한 유효값을 세이브(save) 하는 것은 거의 가능성이 없는 것이다. 상기한 바는 허프만 코드화 스케일 팩터들에 의하여 간략히 해명될 것이다. 상기에서 언급한 바와 같이, 허프만 코드는 가변길이 코드이다. 이는 허프만 코드의 요체로서, 빈번히 발생하는 값들은 거기에 배정된 아주 짧은 코드 단어들을 갖는 반면 빈번하게 발생하지 않는 값들은 거기에 배정된 길거나 아주 긴 코드 단어들을 갖는 효과를 갖는다. 언급된 상기 오디오 코딩기의 비트 스트림 구문(syntax)에 있어서, 허프만 코드 단어는 한 개의 프레임에 대하여 비트 스트림으로 연속적으로 쓰여진다. 스케일 팩터에 대한 코드 단어의 시작은, 해당 선행 코드 단어가 정확히 인식되었을 경우, 즉 디코딩된 경우에만 확정된다.
상기한 바는, 예를 들면, 한 개의 프레임에 40과 100개 사이의 스케일 팩터들이 있다는 것을 의미하며, 이는 몇 개의 스케일 팩터 밴드들이 생성되었는가에 달려 있다. 또한, 상기한 바는 한 개의 밴드당 약 40개에서 약 100개의 스케일 팩터들이 허프만 코딩되는 것을 의미한다. 개별적인 스케일 팩터들에 대한 코드 단어들은 단지 연속적으로 상승 시퀀스의 비트 스트림 안에 쓰여진다. 만약 에러발생 채널을 통하여 비트 스트림 전송, 예를 들면 라디오 채널을 통한 전송이 바로 그와 같은 제 1 스케일 팩터에 배정된 코드 단어의 길이를 변화시키는 비트 에러를 초래한다면, 에러-프리(error-free)방식으로 전체 프레임의 스케일 팩터들을 디코딩 하기는 불가능하고 이는 디코더가 제 2 스케일 팩터를 위한 코드 단어의 개시를 확신할 가능성을 갖지 못하기 때문이다. 최초 개시시의 스케일 팩터를 제외한 나머지 모든 스케일 팩터들이 올바르게 전송되었다 하여도(예로서 교란을 겪게 되어), 코딩기는 전송된 스케일 팩터들을 정확하게 디코딩할 수 있는 가능성을 갖지 못하게 된다.
미국특허등록번호 5,488,616A는 가역적 가변길이 코드들을 제공하는 시스템을 다루고 있다. 이러한 목적으로, 비대칭 가역 코드(asymmetrical reversible code)가 비가역 가변길이 코드(non-reversible variable length code)로부터 생성되고, 이는 잠정적 방법(provisional method)만으로 생성되는 것이다. 나아가, 상기 비가역 가변길이 코드는 대칭 가역 코드(symmetrical reversible code)로 변환된다. 선택 수단은 비대칭 가역 코드 또는 대칭 가역 코드중 어느 하나만을 출력 신호로 선택한다. 상기 대칭 가역 코드는 완전 코드 트리(complete code tree)에 의하여 표현되고, 이러한 완전 코드 트리에는 모든 가지들이 대칭 코드 단어들 또는 분기점들(branching points)중 어느 하나에 의하여 결론지어지며, 상기 분기점들은 대칭 코드 단어에 의하여 차례로 결론지어지거나 그 이상의 분기점들로 인도된다. 따라서, 상기 코드 트리는 배타적으로 유효한 즉, 대칭 코드 단어들을 포함하게 된다.
G ran Bang과 G ran Roth에 의한 기술서적 A tool for generating bit error resilient VLC tables (Proposal for ISO/IEC JTC 1/SC29/WG11 of July 1996)는 가변길이 코드(VLC)를 이용한 비디오/오디오 정보 코딩 및 디코딩 개념에 관한 것으로 에러가 발생하기 쉬운 채널 관련 사용에 적합한 것이다. 만약 비트 에러가 수신된 비트 스트림의 순방향에서 감지되면, 디코딩이 역방향으로 수행된다. 만약 비트 에러가 반대 방향으로 디코딩 중 역시 감지되면, 상기 반대 방향의 디코딩이 역시 종료된다. 상기 채용된 코드는 비대칭 고정길이 코드(unsymmetrical fixed length code)이며, 그와 함께 대칭 가변길이 코드가 혼합되어 고정길이 코드 단어의 특정 비트 수 다음에 대칭 가변길이 코드 단어의 비트가 뒤따르게 된다. 대칭 가변길이 코드 단어들은 단지 에러 견고성을 제공하기 위한 역할을 할 뿐 유용 정보를 전달하지는 않는다. 수신기 측에서는, 상기 대칭 가변길이 코드 단어들은 일단 추출되어 전송 에러들에 대하여 분석된다.
이러한 혼합 코드에서 불리한 점은 고정길이 코드 단어들에서 발생하는 에러들을 확신하기가 가능하지 않은 것인데, 이는 상기 대칭 가변길이 코드 단어들만이 검사되기 때문이다. 반면에, 연관된 가변길이 코드 단어들이 교란을 내포하면 교란없는(disturbance-free) 고정길이 코드 단어들은 에러-발생으로 식별 가능하다.
유럽 특허 EP 0 732 855 A2에는 가변길이 코드 단어들을 사용하여 비디오 이미지를 코딩 및 디코딩하는 시스템이 개시되어 있다. 코더는 소스 심볼 영역의 소스 심볼들에 대한 코드 단어 테이블을 갖는 제 1 코더로 구성되며, 이러한 코드 테이블은 소스 심볼들에 배정된 가변길이 코드 단어들을 포함하고 있다. 상기 제 1 코드 테이블의 가변길이 코드 단어들에 의하여 코딩될 수 있는 상기 소스 심볼들은 상대적으로 높은 발생 확률(high probability of occurrence)을 가진다. 상기한 제 1 코드 테이블로부터 코드 단어가 없는 소스 심볼은 고정길이 코드 단어들을 갖춘 코드 테이블을 갖는 제 2 코더로 입력되며, 이는 상기 소스 심볼에 고정길이 코드 단어를 배정하기 위함이다. 거기에 덧붙여, 이스케이프 코드(escape code)가 상기 고정길이 코드 단어의 업스트림과 다운스트림에 놓여있으며, 이때, 상기 이스케이프 코드는 가변길이 코드 단어들을 갖는 상기 제 1 코더의 코드 테이블로부터 가져온다. 상기 제 1 코더의 가변길이 코드 단어들은 가역 코드 단어들이지만, 상기 제 2 코더의 코드 단어들은 고정길이를 갖는다. 이러한 사실은 두개의 이스케이프 코드들 사이에 각각 배열된 고정길이 단어 코드에 의하여 가역 가변길이 코드 단어들과 이스케이프 코드들로 구성된 싱글 데이터 스트림을 생성한다. 이러한 데이터 스트림은, 이스케이프 코드를 만났을 때, 고정길이 코드 단어로서의 상기 이스케이프 코드를 뒤따르는 비트 그룹을 인식하는 디코더에 의하여 순방향과 역방향의 양방향으로 디코딩될 수 있는데, 이는 상기 디코더가 그룹의 비트 수, 즉, 상기 고정길이 코드 단어들의 길이에 관한 정보를 갖고 있기 때문이다.
본 발명은 정보 단어의 엔트로피 인코딩에 대한 개념과 엔트로피-인코딩된 정보언어의 디코딩에 대한 상대 개념에 관한 것이다. 특히, 본 발명은 오디오 신호에 대한 에러-세이프(error-safe) 엔트로피 인코딩 및 상대되는 디코딩에 관한 것이다.
본 발명의 목적은, 적합한 가능 코딩 효율을 제공하는 한편, 에러발생 채널을 통하여 엔트로피 인코딩된 정보를 전송하는 경우, 정보 단어들을 엔트로피 인코딩하고, 에러 인식을 개선하도록 하는 엔트로피 인코딩된 정보 단어들을 디코딩하는 개념을 얻을 수 있도록 하는데 있다.
이러한 목적은 청구항 1에 따른 엔트로피 인코딩 디바이스, 청구항 10에 따른 디코딩 디바이스, 청구항 19에 따른 엔트로피 인코딩 방법과 청구항 20에 따른 디코딩방법에 의하여 충족된다.
가역 즉, 대칭 코드 단어들에 의하여 코딩되는 효과적으로 에러-견고성을 갖는 방법에 의해서만 상기한 정보 단어들이 전송될 수 있다는 사실에 본 발명은 기초한다. 가역 코드 단어들만이 일련의 정보 단어들과 명백히 연관된 일련의 코드 단어들의 순방향과 역방향 코딩을 수행할 수 있다. 비대칭 코드 단어들을 갖지만 데이터 압축을 위하여 적절한 이유를 갖는 허프만 코드와는 대조적으로, 대칭 코드는 높은 리던던시를 갖는다. 이러한 리던던시는 에러 인식을 하는데 있어서 아주 유용하게 이용될 수 있다. 그러나, 에러-안전성(error-safeness)을 얻기 위하여 과도한 압축을 다시 희생하지 않기 위하여, 본 발명에 따른 대칭 코드 단어들에 의하여 모든 정보 단어들이 코딩되지 아니하고 단지 정보 단어들의 특정 영역내에 있는 상기 정보 단어들이 코딩된다. 상기 영역 밖에 있는 정보 단어들은 대칭 코드에 의하여 코딩되지 아니하고 본 발명의 바람직한 실시예에 따라 허프만-코딩될 수 있다. 따라서, 한편의 에러-견고성과 다른 편의 데이터 압축 사이의 절충이 이루어진다.
대칭 코드 단어들에 의하여 코딩되는 정보 단어들의 영역 크기에 대한 다른 중요한 점은 짧은 코드(short code) 즉 작은 코드 테이블(small code table)이 에러-국지화에 바람직하다는 것이다. 상기 영역의 크기는 가장 긴 코드 단어의 길이를 암시적으로 결정하는데, 이는 상기 테이블의 코드 단어들 수가 증가함에 따라 유효 코드 단어들의 길이 또한 증가하기 때문이다.
본 발명에 따른 에러-국지화(error-localization)는 디코더가 무효 즉 비가역적인 코드 단어들을 인식하고 그로부터 전송 에러가 여기에 존재한다는 것을 결정하는방법으로 수행되는데, 이는 그러한 정의에 의한 코드 단어가 상기 코더에서 생성되지 않았기 때문이다. 교란(disturbance)이 무효 코드 단어를 초래할 가능성은, 현재의 코드 단어들 수가 작을 때에 최고가 된다. 만약 매우 많은 수의 코드 단어들이 존재하면, 무효 코드 단어를 초래할 교란 확률은 매우 작아지는데, 이는 무효 코드 단어들의 길이가 역시 매우 길어지기 때문이다.
본 발명에 따른 방법은 다음과 같은 점에서 특히 유용하다. 즉, 본 발명은 코딩될 상기 정보 단어들이 실질적으로 하나의 영역내에 있는 경우와 정보 단어들이 단지 작은 확률을 가지며 이러한 영역 밖에 위치하는 경우에 유용한 것이다. 이러한 영역이 작아질수록, 더욱 적은 양의 대칭 코드 단어들이 요구되고 에러 감지가 더욱 우수해진다. 이러한 것은 인공 무효 코드 단어들(artificial invalid code words)을 추가하는 것에 의하여 증가될 수 있다.
따라서, 효과적인 에러-국지화 측면에서 가능한 적은 양의 대칭 코드 단어들에 의하여 코딩되는 정보 단어들의 영역을 선택하도록 시도되지만, 전체적으로 충분한 에러 견고성(total sufficient error sufficient)을 제공하기 위하여, 상기 영역의 크기가 너무 커서 상기 정보 단어들이 상기 영역 내에 큰 확률을 갖고 위치하고 대칭적으로 코딩되지 않도록 상기 영역을 선택한다.
본 발명의 바람직한 사용은 변환-인코딩된 오디오 신호(transformation-encoded audio signal)의 스케일 팩터들을 엔트로피 인코딩하는데 있으며, 이렇게 사용하면, 통계적으로 보아, 발생하는 스케일 팩터 값들의 98%가 아직 과도한 길이를 갖지 않는 대칭 코드 단어들에 의하여 코딩될 수 있다고 이해되는 영역 내에 있게 된다. 만약 이 영역 밖의 정보 단어가 엔트로피-인코딩된다면, "이스케이프(escape)"라는 추가값이 전송된다. 이러한 이스케이프 값은 바람직하게 허프만 코딩되고 오디오 비트 스트림의 대칭적으로 코딩된 스케일 팩터들로부터 독립되어 전송된다.
따라서, 본 발명에 따른 엔트로피 인코딩의 의미는 상대적으로 작은 RVLC 테이블임에도 불구하고, 우수한 에러 인식 특성을 가지고 코드 단어들의 커다란 영역을 카버(cover)할 수 있는데 있다. 이스케이프-인코딩된 값들이 거기서 거의 발생하지 아니하므로 코딩 효율은 언급된 바람직한 적용에 있어서 거의 문제가 되지 않는다.
변환-인코딩된 오디오 신호의 스케일 팩터들에 대한 본 발명의 적용은 특히 다음과 같은 점에서 장점을 갖는다. 즉, 이상적이지 못한 채널(non-ideal channel)에 기인한 스케일 팩터들의 이미 작아진 교란은 강하게 청취될 수 있는 교란으로 초래한다는 것이며, 알려진 바와 같이, 이는 스케일 팩터가 곱해지는 방법으로 스펙트럼 선들을 압박하기(weight) 때문이다.
더욱이, 코딩된 스펙트럼 값들과 비교하였을 때, 상기 스케일 팩터는 전체 비트 양의 상대적으로 적은 부분만을 보상하기 때문에, 여분 코드(redundant code)에 의한 스케일 팩터들에 대한 보호는 상당한 양의 비트에 대한 추가 소비를 필요로 하지 않게 된다. 이러한 약간의 추가 소비는, 비트 양을 비교하였을 때, 오디오 신호에 더 높은 교란을 가져올 수 있는 스케일 팩터들의 에러-안정성에 의하여 정당화되는 것 이상이다.
그러나, 본 발명은 스케일 팩터들에 대한 엔트로피 인코딩 및 디코딩에 한정된 것이 아니고, 높은 확률을 갖는 영역 내에 있는 정보 단어들이 코딩될 모든 상황에서장점을 가지고 있다. 즉, 사용자는 효율성의 큰 손실 없이 상대적으로 짧은 대칭 코드 단어들을 다룰 수 있고, 상기 영역 밖의 값들은 이스케이프 시퀀스로 인코딩 될 수 있는 것이다.
본 발명의 바람직한 실시예들은 첨부된 도면들을 참조하여 이하에서 설명될 것이다.
도 1은 본 발명에 따른 코더의 개략적인 블록 다이아그램을 나타낸다.
도 2는 본 발명에 따른 디코더의 개략적인 블록 다이아그램을 나타낸다.
도 3은 도 2에 나타난 디코더에 의하여 처리되는 코드 단어들의 스트림을 개략적으로 보여준다.
도 4a 내지 도 4c는 선행 기술에 따른 대칭 코드(symmetrical codes)들을 나타낸다.
도 5는 본 발명에 따른 가역 코드(reversible code)를 나타낸다.
그러나, 상기한 도면들을 상세히 설명하기 전에, 엔트로피 인코딩에 관한 일반적인 측면들을 지적하기로 한다. 특히, 미분적으로 인코딩된 값들을 코딩하는데 있어서 특별한 측면을 논의하기로 한다. 즉, 이러한 측면은 대칭 코드 단어들과 이스케이프 값들에 의하여 코딩하는 것과 유용하게 합쳐질 수 있다.
본 발명에 따른 코드는 엔트로피 코드를 말하며, 이는 빈번하게 인용된 허프만 코드와 유사하게 단코드 단어(short code word)들을 빈번하게 발생하는 값들에 배정하고 긴 코드 단어(long code word)들을 거의 발생하지 않는 값들에 배정한다. 그러나, 본 발명에 따른 코드는 다음과 같은 점에서 허프만 코드와 다르다.
허프만 코딩과는 다르게, 채용된 상기 코딩은 양방향(순방향 및 역방향)으로부터 디코딩을 우선적으로 허용한다. 이러한 사실은 또한 "가역 가변길이 코딩(reversible variable length coding, RVLC)"로 기술분야에서 언급된다. 만약 가역 즉, 대칭 코드 단어들이 채용된다면, 다시 말하면, 만약 가역 코드 단어들로 이루어진 코드 블록 또는 코드 테이블이 채용된다면, 역방향 디코딩이 가능하다.
거기에 덧붙여, RVL 코드들을 사용하는 것은 코드 테이블 즉, 이용가능한 코드 단어들의 양이 "완전한 나무(complete tree)"를 형성하지 않는 효과를 가능하게 한다. 따라서, 유효 코드 단어를 생성하지 않는 즉, 대칭이 아닌 코드 단어들을 생성하는 코드 심볼 시퀀스가 있게 된다. 갭들이 수신된 코드 단어가 트랜스미터에서 결코 발생하지 않았다는 것을 지적하므로, 상기 나무에서 발생하는 갭들(gaps)은 전송 에러를 탐지하는데 유용하게 이용될 수 있다.
정보이론의 관점에서 보면 허프만 코딩이 최적이라는 사실 때문에, 유일한 목적이 데이터 압축률을 최대화는 것일 경우, 상이한 코드를 사용하는 것은 의미가 없는 것으로 보인다. 그러나, 가능한 압축 효율의 손실을 최소화하며 에러에 대한 무감각성(error insensitivity)에 있어서의 증가라면, 허프만 코드가 유익한 것은 아니다.
가변길이 코드 단어들로 코딩하는 것에 의하여, 에러는 교란된 코드 단어로부터 모든 다음 순서의 코드 단어들로 퍼져나갈 수 있다. 이와 같이, 비트 에러는 코드 단어의 길이를 왜곡시키고, 따라서, 디코더가 해당 코드 단어들에 대한 개시 여부에관한 정보를 갖지 않으므로 코드 단어 시퀀스의 모든 후속 코드 단어들이 더 이상 디코딩될 수 없는 결과를 가져온다.
만약, 예로서 허프만 코드와 같은 가변길이 코드 대신 가역 가변길이 코드가 채용된다면, 무효 코드 단어들의 존재로 인하여 대체로 코드 단어와 같은 길이를 변화시키는 에러는 신속하게 치유될 수 있다. 만약 무효 코드 단어가 노출되면, 디코딩 작업은 중단된다. 이러한 동작은 허프만 코딩에서는 불가능한데, 이는 모든 코드 단어들이 유효하고 따라서 무효 코드 단어들은 존재하지 않는다. 거기에 덧붙여서, RVLC는 역방향 코딩을 가능하게 하는데, 그 결과 에러 국지화 개선(improved localization of the error)이 가능해진다. 이러한 것들은 다음의 예에 의하여 이하에서 설명된다. 예를 들면, 본 발명에 따른 코드 테이블은 다음과 같이 읽기 동작을 수행한다:
정보 단어 코드 단어
=======================================
3 110011
2 11011
1 111
0 0
-1 101
-2 1001
-3 10001
이와 같이, 대칭 코드 단어들을 이용하는 상기한 코드 테이블에 의하여 홀로 코딩될 수 있는 정보 단어들에 대한 영역은 -2에서 +2이다. 이러한 한계치 밖의 값들은, 즉 2보다 큰 값들은 -3과 +3에 대한 대칭 코드 단어에 각각 추가되어 이스케이프 값으로 제공된다.
보여진 코드 테이블에서 일어날 수 없는 코드 단어들은 다음과 같다:
10000
11000
110010
11010
본 발명에 따른 코드의 상세한 표현에 관하여, 도 5와 해당하는 이하의 논의를 참조한다.
다음에서, 1, -3, 1, 2, -1들로 이루어진 일련의 숫자들은 다음에 있어서 가공의 예로 간주되어지고, 이는 에러-발생 채널(error-inflicted channel)위로 전송된다.
테이블 2
일련의 정보단어: 1, -3, 1, 2, -1
일련의 코드 단어: 111 10001 111 11011 101
채널에 의하여 생성된 에러가 12번째 비트의 교란이 일어나는 경우를 살펴보면 다음의 비트 시퀀스를 가져온다:
코드 단어들의 교란된 시퀀스: 111, 10001, 111, 01011, 101
5개 값들의 순방향 디코딩은 11, 10001, 111, 0, 101, 즉 1, -3, 1, 0, -1과 같은 결과를 갖는다.
그러나, 역방향 디코딩은 다음과 같은 시퀀스 결과를 가져온다:
101, 11010,
즉, 단지 -1과 무효 코드 단어이다. 배면 즉, 역방향 디코딩에 의한 간단한 예로부터 상기 무효 코드 단어 01011이 신속하게 인식된다. 나아가, 상기 무효 코드 단어 후에 상기 디코딩 동작을 정지시키는 것에 의하여 상기 에러는 매우 신속하게 국지화되고(localized) 식별될(identified) 수 있다. 따라서, 역방향 디코딩은 마지막 비트에서 뒤로부터 8번째에 이르는 에러를 보고한다.
숫자들의 상기 2개의 디코딩된 시퀀스들은 다음과 같이 읽기 동작을 한다. 하기 테이블의 볼드체(bold) 프린팅은 상기 값들이 에러들을 포함하고 있는 것을 의미한다:
순방향: 1 -3 10 -1
역방향:x x x x-1
여기서 에러 국지화가 가능한 정도(extent)는 에러 타입과 이행된 테크닉을 숨기고(concealing) 있는 에러에 종속된다. 테크닉을 숨기고 있는 알려진 에러는 이웃한 손상되지 않은 값(neighboring intact value)에 의하여 에러값의 단순한 치환에 있다.
반면에, 만약 에러에 이웃한 두 개의 손상되지 않은 값들이 알려져 있다면, 좌측 또는 우측 끝으로부터의 압박 평균값들(weighted average values)은 상기 에러값을 인공적으로 대체하는 것 즉, 숨기는 것에 사용될 수 있다.
여전히, 다른 에러숨김 테크닉(error concealing techniques)은 사이에 에러가 현존하는 두개의 이웃한 값들을 사용하는 보간법(interpolation)을 채용한다. 또한, "가능한 상대적으로 손상되지 않은(possibly relatively intact)" 값으로 에러값을 대체하기 위하여, 후단 또는 전단으로부터 일방적인 예측을 이용하는 것도 가능하다.
도 1은 본 발명의 바람직한 실시예에 따른 엔트로피 인코더를 도시한다. 코딩될 정보 단어들은 결정 수단(10)으로 입력된다. 이전 테이블들에 있어서, 단지 단순성을 위하여 정보 단어들은 정수(integer)들로 이루어졌다. 오디오 인코더에 있어서, 엔트로피-인코딩될 정보 단어들, 예를 들면 스케일 팩터들과 같은 것들은, 예로서 8-비트-값들의 형태로 존재할 것이다. 따라서, "정보 단어들"이란 코딩될 정보가 표현될 수 있는 어떤 형태의 표현으로도 이루어질 수 있다.
상기 결정 수단(10)에서 정보 단어가 정보 단어들의 영역 내에 있는지 아니면 정보 단어들의 영역 밖에 있는지가 결정된다. 상기 영역은 코더에 공급된 코드 테이블에 의하여 결정된다. 만약 상기 결정 수단에서 코딩될 정보 수단이 그 영역 내에 있는지 여부가 결정되면, 상기 정보 단어는 대칭 코드 단어들의 그룹, 즉 코드 테이블로부터 대칭 단어를 배정하기 위하여 수단(12)로 전송되며, 이때, 대칭 코드 단어는 정보 단어로 배정된다. 그러나, 만약 결정 수단(10)이 정보 단어가 코드 테이블에 의하여 정의된 영역 밖에 있다고 결정하면, 이러한 정보 단어는 결정 수단(10)에 의하여 추가값을 생성하는 수단(14)로 전송된다. 이때, 수단(14)은 본 발명의 바람직한 실시예에서의 이스케이프 값을 확인한다. 원칙적으로 수단(14)은 두개의 출력들 즉, 비트 스트림의 이스케이프 영역으로 이스케이프 값을 쓰기 위한 출력과, 반면에 코드 단어들의 스트림 또는 결정 수단(10)의 입력으로 들어가는 정보 수단들의 시퀀스와 관련된 일련의 코드 단어들을 생산하는 비트 스트림 포맷터(formatter)(16)에 연결된 출력을 갖는다.
추가값 또는 이스케이프 값을 생산하는 수단의 동작 모드에 관한 더욱 자세한 설명을 위하여 도 3을 참조하고, 상기 생산 수단은 도 1의 참조 번호 14를 나타낸다. 도 3은 "잠재적으로" 대칭 코드 단어들의 연속 스트림(30)을 나타내고 있으며, "잠재적으로"라는 용어는 스트림이 이미 예를 들면 라디오 통로와 같은 비이상적인 채널 위로 전송되었다는 것을 지적하기 위한 것이고, 따라서 비트 교란이 이미 발생하였을 수도 있다. 상기 스트림은 개별적인 대칭 코드 단어들(30a,30b,30c)로 구성되고, 이러한 단어들은 모두 대칭 코드 단어들로 이루어진 코드 테이블에 의하여 정의된 영역 내에 있다. 그러나, 잠재적 대칭 코드 단어들의 스트림은 그 영역 끝의 정보 단어들을 나타내는 대칭 코드 단어들(31,32)을 더 포함하여 이루어진다. 코드 단어들(30a 내지 30c)은 지정 수단(12)에 의하여 생성되고 비트 스트림 포맷터(16)로 되먹임(fed)된다. 그 영역의 모서리에 있는 정보 단어들을 위하여 존재하는 본 발명의 바람직한 실시예에서의 코드 단어들은 수단(14)에 의하여 생성되고 그로부터 도 3에 묘사된 스트림(30)을 형성하는 비트 스트림 포맷터(16)로 되먹임된다. 코드 단어들(31 뿐만 아니라 30a 내지 30c)은 -7 부터 +7까지의 정보 단어들 즉, 거기에 배정된 대칭 코드 단어들을 갖는 정보 단어들을 나타낸다. 만약, 인코딩될 정보 단어가 예를 들면 +12 값을 가지면, 대칭 코드 단어(31)와 이스케이프 값의 합은 +12 값을 갖게 된다.
코드 단어(31)와 만나는 디코더는 즉시 이것이 영역 모서리에서의 코드 단어임을 인식할 것이고, 따라서, 이러한 디코더는 정보 단어를 디코딩하기 위하여 현재의 실시예에서 이스케이프 값이 5인 것을 찾아내기 위해 화살표(A)로 표현된 바와 같이 이스케이프 영역으로 "갈(go)"것이다. 본 발명의 바람직한 실시예에 따르면, 생산 수단(14)는 이와 같이 두개의 기능을 수행한다. 한편으로, 생산 수단은 영역 모서리의 코드 단어를 대칭 코드 단어들의 스트림(30)으로 배달한다. 그리고, 다른 한편으로는, 생산 수단은 코딩될 정보 단어와 영역 모서리에서의 코드 단어 사이의 차이를 형성하고 그 차이를 나타내는 이스케이프 값을 생산한다. 당연히 그 이스케이프 값은 본 발명에 따른 코딩 방법에 의하여 다시 엔트로피-인코딩될 수 있다. 그러나, 데이터 압축을 이유로 허프만 코드에 의하여 이스케이프 값을 인코딩하는 것이 바람직하다. 게다가, 도 3으로부터 이스케이프 값은 대칭 코드 단어들의 스트림으로 쓰여지지 않고 비트 스트림의 다른 장소에 쓰여짐을 알 수 있다.
만약 -12 값이 인코딩된다면, 결정 수단(10)은 이 값이 대칭 코드 단어들로 이루어진 코드 테이블에 의하여 정의된 영역 밖에 있음을 결정할 것이다. 따라서, 추가값을 생산하는 수단(14)은 -7값에 대한 코드 단어를 한편으로는 비트 스트림 포맷터(16)로 출력할 것이고 다른 한편으로는 그 차이 즉, 5를 이스케이프 영역에 쓸 것이다. 그러면 -12 값은 도 3에서 예로서 코드 단어(32)인 -7값과 화살표 B에 의하여 나타난 링크를 통하여 이스케이프 값(34)과의 결합으로부터 도출된다.
본 발명의 바람직한 실시예에서의 +7값은 +7에 대한 코드 단어 즉, 코드 단어(31)로 인코딩되며, 이스케이프 영역의 0은 즉, 이스케이프 값(33)으로 인코딩 될 것이다.
상기한 실시예와 다르게, 추가값을 생산하는 수단(14)이 코딩될 정보 단어와 영역 모서리에서의 정보 단어 사이의 차이점을 설정하고 한편으로는 대칭 코드 단어를 대칭 코드 단어들의 스트림(30)으로 쓰며 다른 한편으로는 그 차이를 이스케이프 영역으로 쓴다는 것이 설득력을 갖는 것은 아니다. 대체 방안으로, 비트 스트림의 이러한 영역에 있는 이스케이프 영역으로 스위치(switch)하여야 하는 다운스트림 디코더로 신호를 보내기 위하여, 전체 정보 단어가 이스케이프 영역에 쓰여지고 대칭 코드 단어들의 스트림이 그곳에 삽입된 단지 더미 혹은 특정 비트 콤비네이션 등과 같은 것을 수단(14) 혹은 비트 스트림 포맷터(16)를 이용하여 갖는 것이 또한 가능하다. 그러나, 상기한 방법은 대칭 코드 단어들에 의하여 카버된 영역에 있는 정보 단어의 일부가 적어도 대칭 코드 단어에 의하여 코딩된다는 장점을 제공하므로, 따라서, 예를 들면 허프만 코드에 의하여 코딩된 차이점만이 확보되거나 감소한 정도로 에러-저항성(error-resistant)을 갖는다. 그와는 대조적으로, 대체방법은 차이점을 추가 또는 형성하는 것이 수행되어야 하고 영역 밖의 정보 단어에 감소한 리던던시 코드가 사용된다는 장점을 가질지도 모른다. 그러나, 영역 밖에 위치한 정보 단어가 역방향 인코딩될 수 없다는 단점이 있다. 그러나, 이러한 것은 안전한 조건을 만들어 주기 위하여 이스케이프 영역의 보호에 대한 발명에 따른 방법 또는 선행 기술에서 알려진 방법을 이용하는 것이 가능하다.
도 2는 본 발명에 따른 디코더의 바림직한 실시예를 나타낸다. 코드 단어들의 시퀀스 또는 "잠재적 대칭 코드 단어들"의 스트림(30)이 메모리(20)에 저장된 시퀀스를 분석하기 위한 분석기(21)에 의하여 접근될 수 있는 메모리(20)로 되먹임(fed)된다. 분석기(21)는 한편으로 코드 단어들의 스트림(30)로부터 대칭 코드 단어를 탐지하는 수단과 다른 한편으로 코드 단어들의 스트림(30)에 있는 소정 코드를 탐지하는 수단으로 구성된다. 만약, 분석기(21)가 손상되지 않은 대칭 코드 단어를 탐지하면, 그것은 동일한 것을 수단(22)로 전송할 것이다. 이때, 수단(22)는 코더(도 1)에서 사용된 코드 테이블에 해당하여야 하는 알려진 코드 테이블에 기초하여 특정 정보 단어를 코드 단어로 배정하는 기능을 갖는다. 그러나, 만약 분석기(21)가 현재의 예에서 영역 모서리의 코드 단어인 소정의 코드를 탐지하면, 그것은 이러한 코드 단어를 영역 밖의 추가 정보 단어를 확인하는 수단(23)으로 넘길 것이다. 바람직한 실시예에서, 스트림(30)에서 코드 단어(31)가 발생할 경우, 수단(23)은 이스케이프 영역을 액세스할 것이고 거기에서의 해당 이스케이프 값을 검색하고, 코드 단어(31)에 해당하는 정보 값으로부터 동일한 것을 각각 더하거나 감할 것이다.
모서리에서의 정보 단어에 대한 코드 단어에 대한 실시예에서, 소정 코드의 이스케이프 영역의 코드 단어로의 배정은 다른 방법으로 효과적일 수 있다. 가장 단순한 가능성은 동기화된 이스케이프 영역과 스트림(30)을 동기화하여 연속 포인터(continuous pointer)를 사용하는 것이다. 스케일 팩터들이 엔트로피 인코딩된 본 발명의 실시예에서, 이러한 동기화(synchronization)는 오디오 신호의 블록 혹은 프레임이 항상 처리된다는 점에서 설정된다. 각각의 블록에 대하여, 이스케이프 영역과 대칭 코드 단어들의 스트림(30)은 초기화되어 연속 포인터가 결과를 보정한다.
본 발명에 따른 코더는 분석기(21)에 의하여 활성화되는 디코더 시퀀스를 역전시키는 수단(24)을 더 포함하여 이루어진다. 만약 분석기(21)가 스트림(30)에서 비대칭 코드 단어를 발견한다면, 그것은 시퀀스를 역전시키는 수단(24)을 활성화시킬 것이고, 이는 비대칭 코드 단어가 잠재 대칭 코드 단어들의 스트림(30)에서는 발생할 수 없기 때문이다. 그러면, 지정 수단(22)과 확인 수단(23)은 역방향 디코딩에 의한 에러의 국지화를 위하여 코드 단어들의 시퀀스의 다른 끝으로부터 역전 시퀀스로 동작함으로써, 가능한 적은 값들이 에러 숨김에 의하여 대체되어야 할 것이다.
실제로, 엔트로피 인코더가 에러 코드 단어를 즉시 인식하지 못하는 경우가 있을 수 있는데, 이는 교란이 무효 코드 단어를 초래하지 않았기 때문이다. 따라서, 후속 에러 때문에 디코더가 무효 코드를 만나 코딩을 중단할 때까지 디코딩은 에러와 상관없이(beyond the error) 일어날 것이다. 그 다음, 역방향 디코더는 아마도 에러 코드 단어를 벗어나서 다른 끝으로부터 디코딩을 수행하고 때때로 무효 코드 단어에서 정지할 것이다. 이와 같이, 중첩 영역이 생성되어져, 그 안에서 엔트로피 순방향 및 역방향 디코더는 출력값을 배달하였다. 따라서, 에러는 중첩 영역으로 국지화되고, 그것은 중첩 영역 밖의 디코딩된 값들이 옳다는 사실이 설정되어질 수 있다.
만약 미분 코딩(differential coding)이 그 코더에서 수행되면, 해당 디코더는 코더의 미분 코딩을 취소하는 미분 디코더(25)를 더 포함하여 이루어진다. 본 발명에 따른 미분 디코더(25)는, 수단(22)와 (23)에 의하여 수단(25)로 전송되는 미분-인코딩된 정보 단어들로부터 역방향으로 완전히 디코딩된 정보 단어들을 생산하기 위하여, 역방향 미분 디코딩을 수행하는 시퀀스 역전 수단(24)에 의하여 역시 활성화된다. 역방향 미분 디코더와 순방향 미분 디코더는 독립된 수단들이고, 혹은, 역방향 미분 디코딩에서 일어나는 뺄셈과 순방향 미분 디코딩에 있어서 수행되는 덧셈(addition)에 의하여 그들이 하나의 수단으로 설치된다는 것이다.
본 발명에 따른 코딩 방법과 미분 코딩의 콤비네이션은 특히 유용한데, 이는 차이 형성의 적절히 선택된 시작 값으로 수행되는 미분 코딩은 예를 들면 대칭 영역(region symmetrical)에 의하여 0으로 쉬프트되기 위한 절대 정보 단어들(absolute information words)을 야기시킨다.
그러나, 정보 단어들의 시퀀스의 타단으로부터 역방향으로 미분 디코딩(25)을 허락하기 위하여, 추가값이 코더의 정보 단어들의 시퀀스 끝에 추가되어야 한다. 따라서, 미분 디코더는 어디로부터 역방향 미분 코딩이 시작되어야 하는 것을 알 수 있게 된다. 만약 고정 시작값(fixed starting value)이 미분 코딩에 이용되어 왔으면, 미분-인코딩된 정보 단어들의 시퀀스 끝에서의 추가 미분값에 의하여 만들어지고, 이는 최후 정보 단어로부터 고정 또는 소정의 시작값까지의 차이를 지시한다. 물론 이러한 차이는 역시 엔트로피-인코딩되고, 바람직하게 대칭 정보 단어에 의하여 엔트로피-인코딩되어, 이러한 값이 역방향 디코딩을 가능하게 하기 위하여 잘 보호된다. 만약 정보 단어들의 시퀀스의 최초 정보 단어가 코더의 미분-인코딩에 대한 시작값으로 사용된다면, 추가값으로 최후 정보 단어의 절대값을 시퀀스 끝에 추가하는 것이 유익하다. 이러한 최후값이 대칭 코드 단어들로 코딩되는 정보 단어들의 영역에 확실히 존재하지 않을 것이다.
이미 언급한 바와 같이, 본 발명의 바람직한 적용은 먼저 현재까지 미분 코딩된 후 허프만 코딩되는 스케일 팩터들을 코딩하는데 있다. 선행 기술은 -60에서 +60에 이르는 영역에서 값들을 코딩할 수 있기 위하여 121개의 코드 단어들을 갖는 허프만 테이블을 이용한다. 코딩될 스케일 팩터들의 수가 스펙트럼 값들의 수와 비교하여 아주 작다는 사실에 기인하여, 전형값(typical value)인 40으로 에러들에 대하여 상대적으로 "급격한" 탐지가 절대적으로 요구되어, 디코더는 수 개의 값들만을 디코딩한 후 정지하고 상대적으로 우수한 에러 국지화가 가능해진다. 이러한 것이 왜 "작은" 코드 테이블이 채용되는 이유이고, 이는 대칭 RVLC 코드 단어들의 수가 작아야하는 것을 의미한다.
코드 테이블 또는 코드 북(code book)이 작아질수록 에러들에 대한 조기 인식이 빨리 일어난다. 따라서, 대칭적으로 코딩된 정보 언어들에 대한 영역은 -7부터 +7까지 확장된다. 7부터 60까지의 영역에서 값들에 대해서는 이스케이프 값이 전송된다. 허프만 코딩에 대해서도 동일한 원리가 적용된다. 이와 같이, "이스케이프" 테이블은 0과 53 사이의 값들에 대하여 54개의 엔트리(entry)로 구성된다. 수신기가 -7 혹은 +7을 디코딩할 경우에는 항상 수신기는 연관된 이스케이프 값을 디코딩 하여야 하고 각각 덧셈과 뺄셈 작업을 수행하여야 한다.
통계학에 따라 살펴보면, -7과 +7 사이의 간격은 발생하는 스케일 팩터 값들의 98%를 커버함으로써, 이스케이프 값들이 매우 자주 발생하지 않는다. 만약 이스케이프 값들이 더욱 자주 발생하거나 에러 안전성에 대하여 더 많은 주의가 주어져야 한다면, 본 발명에 따른 방법뿐만 아니라 다양하게 알려진 방법들은 또한 높은 에러 견고성을 갖는 이스케이프 값들을 제공하기 위하여 채용될 수 있다.
본 발명에 따른 가역 가변길이 코드를 설명하기 위하여, 도 4a는 먼저 예를 들면 앞서 언급된 Goran Bang과 Goran Roth에 의하여 출판된 기술서적에서 개시된 알려진 대칭 코드를 다루게 될 것이다. 이러한 코드는 루트(40)와 분기점(42)을 갖는 코드 트리에 의하여 정의된다. 바이너리 코드가 연관되어 있으므로, 루트는 거기에 적용된 두개의 브랜치 (43)과 (44)를 가지며, 브랜치(43)는 루트(40)와 유효 코드 단어 "1"을 정의하는 종료점을 연결한다. 브랜치(44)는 루트(40)와 두개의 브랜치 (45)와 (46)을 갖는 분기점(42)을 연결한다. 이때, 브랜치(45)와 (46)은 분기점(45)와 (46)에서 연장된다. 브랜치(46)는 이러한 코드의 제 2 유효 코드 단어 "00"을 정의하는 종료점에 연결되는 반면에 브랜치(45)는 이러한 코드의 무효 코드 단어, 즉 "01"을 정의한다. 코드 단어 "01"은 비대칭적이므로 무효이다. 다른 표기들을 살펴보면, 도 5 뿐만 아니라 도 4a와 도 4b의 무효 코드 단어들은 프레임들에 의하여 둘러싸여 있다. 따라서, 도 4a에 나타난 코드는 단지 두개의 유효 코드 단어 즉, "01"만으로 구성되며, 이는 제 2 유효 코드 단어 "00"과 동일한 길이를 갖는다.
도 4b에는 다소 길이가 긴 코드가 도시되어 있다. 도 4a에서와는 다르게, 도 4b의 코드는 추가 유효 코드 단어에서와 같이 3 비트의 길이를 갖고 "011" 값을 갖는 무효 코드 단어뿐만 아니라 추가 유효 코드 단어 "010"를 포함한다. 도 4a와는 다르게, 브랜치(45)는 종료점에 연결되어 있지 않고, 거기서 연장된 두개의 브랜치를 갖는 추가 분기점(47)에 연결되어 있으며, 이때 제 1 브랜치는 추가 유효 코드 단어 "010"으로 연장되고 다른 브랜치는 유일한 무효 코드 단어 "011"로 연장된다.
도 4c는 도 4a와 도 4b의 논리적인 계속으로, 이제 분기점(47)이 추가 분기점(48)에 연결되었으므로, 그로부터 다시 두개의 브랜치가 연장되며, 하나의 브랜치는 추가 대칭 코드 단어 "0110"을 정의하는 반면에 다른 브랜치의 종료점은 코드 트리 즉, 코드 테이블의 가장 긴 코드 단어와 같은 길이(4비트)를 갖는 유일한 무효 코드 단어 "0111"을 정의한다.
도 4c는 추가로 동일한 길이를 갖는 유효 코드 단어들이 존재하지 않는다는 것을 보여준다. 이러한 사실은 도 4a와 도 4b의 코드들에 대해서도 유효하다.
Goran Bang과 Goran Roth에 의한 기술서적에서, 도 4a 내지 도 4c에 도시된 코드들은 세이프티 패턴들로 단지 이용되고 코딩 정보로는 사용되지 않았는데, 이는 도면들에서 보여진 코드들의 논리적인 연속성에 의하여 손쉽게 이해할 수 있으므로 그러한 코드는 충분히 높은 코드 단어들의 수를 가지며 길어지게 되기 때문이다.
더욱이, 상응하여 길어진 코드들의 에러 견고성에 대한 특성은 매우 낮은데, 이는 항상 하나의 무효 코드 단어가 존재하고 게다가 이러한 무효 코드 단어는 가장 긴 유효 코드 단어와 동일한 길이를 갖기 때문이다.
이와 같이 알려진 코드들로 정보를 코딩하는 것은 권장되지 않는데, 이는 만약 정보 값들의 적절한 영역이 코딩될 것이면 코드 단어들이 매우 길어지고 또한 추가로 매우 긴 오직 하나의 코드 단어가 항상 존재하기 때문이다.
이와 같이, 디코더는 에러를 즉시 인식하지 못할 것이고 무효 코드 단어를 만나 디코딩을 중지하기 전까지 많은 수의 후속 에러들을 범하게 될 것이다. 따라서, 에러는 열악하게 국지화된다.
도 5의 본 발명에 따른 코드 테이블은 이러한 단점들을 다음과 같은 점에서 극복할 것이다. 즉, 코드 트리는 적어도 하나의 분기점을 가지며, 이러한 분기점으로부터 두 개의 브랜치들이 나와서 한 개의 종료점 대신 하나의 분기점으로 연결된다.
가역 가변길이 코드에 대한 바람직한 실시예에서, 도 5에 도시된 바와 같이, 분기점(50a, 50b, 50c)이 있다. 도 5의 코드 트리는 두개의 브랜치들(53, 54)이 연장되는 루트(52)를 더 포함하여 이루어지고, 브랜치(53)는 가장 짧은 제 1 코드 단어 0을 정의하는 종료점에 연결되며, 바람직한 실시예에서 종료점은 거기에 지정된 정보값 "0"을 갖는다.
코드 단어 0은 가장 짧은 길이를 가지며, 엔트로피 인코딩에 따라, 가장 자주 발생하는 정보 값에 관련된다. 정보 값들이 미분-인코딩되는 본 발명에 따른 바람직한 실시예에서, 스케일 팩터들의 미분 코딩시 가장 큰 확률을 가지며 0 값이 발생하는 것으로 판명되어져 왔다.
본 발명에 따라 루트(52)에서 나오는 다른 브랜치 즉, 브랜치(54)는 2 비트의 길이를 갖는 코드 단어로 종료되지 않고 분기점(50a)으로 연결되고, 분기점(50a)에는 두개의 브랜치들(55)와 (56)을 경유하여 추가 연결 포인트들(57, 58)로 차례로 연결된다. 연결 포인트들(57, 58)은 차례로 해당 브랜치들(59, 60)을 경유하여 유효 코드 단어들 101과 111을 정의하는 종료점들과 연결된다. 선행 기술과 다르게, 2 비트의 길이를 갖는 코드 단어 없이도 동일한 길이 즉, 도 5의 3 비트를 갖는 두개의 코드 단어들을 얻을 수 있음을 여기서 알 수 있다. 이들은 코드 단어 101과 102 이다. 도 5에 보여진 코드 테이블에서, 이러한 코드 단어들은 정보 값 "-1"과 "1"로 지정된다. 엔트로피 인코딩 관점에서 살펴보면, 동일한 빈도로 발생하는 두 개의 정보 값들에 대한 동일한 길이를 갖는 모드 단어들을 제공하는 것이 유리하다.
도 5로부터, 연결 포인트(50c)는 거기서 출발하는 두 개의 브랜치들(62, 63)을 가지며, 브랜치(63)는 브랜치들을 경유하여 유효 코드 단어 110011과 무효 코드 단어 110010에 연결되는 연결 포인트(64)에 연결된다. 만약, 예를 들면, 디코더가 무효 코드 단어 110010을 만나면, 디코더는 코딩 동작을 중지하는데, 이는 그러한 코드 단어가 가역적이 아니고 코더에서 발생한 적이 없기 때문이다.
추가 코드 단어들의 정보 값들에 대한 작성 및 지정은 도 5에서 알 수 있다. 그러나, 특별한 관점에서 참조하여 본다. 도 5에서 보여진 것과 같이 본 발명에 따른 코드의 바람직한 적용은 이스케이프 값들과 관련된 가역 코드의 이용에 있다. 이미 지적한 바와 같이, "-7"과 "+7" 사이의 영역 밖의 정보 값은 영역 모서리의 해당 정보 값에 대한 코드 단어에 의하여 코딩될 것이고, 동일함으로부터 벗어난 차이는 이스케이프 테이블에 코딩될 것이다. 따라서, 코딩된 비트 스트림에 있어서, 영역 모서리에서의 값 즉, "-7"과 "+7"은 각각 코딩되어야 한다는 것은 높은 확률을 갖는다. 더욱이, 그 확률은 "-7" 또는 "+7"이 발생하는 경우와 같이 높다. 본 발명에 따른 바람직한 실시예에 따르면, 정보 값 "-7"과 "+7"은 동일한 길이의 코드 단어들 즉, 1000001과 1100011에 의하여 각각 코딩되고, 이러한 코드 단어들은 발생하는 가장 긴 코드 단어들보다 동시에 짧으며, 당해 예에서 이들은 "-6"과 "+6"에 대한 코드 단어들이며, 그 결과 엔트로피 관점에서 동일한 가능성을 갖는 코드 테이블을 제공한다.
또한, 8개의 무효 코드 단어들(66a) 내지 (66h)이 있음을 도 5에서 알 수 있는 반면에, 선행 기술에 따른 가역 코드는 항상 하나의 코드 단어를 갖거나 가질 수 있음을 알 수 있다. 많은 수의 무효 코드 단어들과 특히 상대적으로 짧은 무효 코드 단어들, 가령 코드 단어들(66e,66f)과 같은 단어들은 높은 에러 견고성(error robustness)을 제공하여, 에러가 발생한 정보 값 후에 가능한 한 빨리 디코더가 디코딩을 중지하도록 함으로써 에러는 가능한 한 좁은 한계에서 국지화 될 수 있다.
마지막으로, 도 5에서의 가역 가변길이 코드가 특별히 정보 단어들에 대한 에러-견고성을 갖는 엔트로피 인코딩에 아주 적합하다는 것이 요약되어져야 한다. 이는, 한편으로 상대적으로 짧은 많은 무효 코드 단어들이 존재하고 다른 한편으로는 한 개의 짧은 코드 단어를 희생하여(예에서 코드 단어 "11") 길지만 동일한 확률을 갖는 두 개의 코드 단어들(예에서 101과 111)을 얻을 수 있기 때문이다.
실제로 유효 단코드 단어(valid short code word)를 폐기하는 것이 엔트로피 인코딩에서는 회피되어야 할지라도, 이러한 것은 에러-견고성을 갖는 엔트로피 인코딩이 수행되고 상대적으로 높은 확률 특히 근사적으로 동일한 확률을 갖는 두 개의 정보 값들이 추가로 발생하는 응용에 있어서 본 발명에 따른 우수한 해법을 제공한다.
트리 형태의 코드 테이블 표현에 있어서, 상기 폐기(dispensing with)는 두 개의 특별한 분기점들이 있고 이러한 분기점들로부터 두 개의 브랜치들이 나와서 하나의 종료점에 연결되는 대신 두 개의 브랜치들은 추가 분기점들에 연결되는 사실에 의하여 달성된다.

Claims (21)

  1. 일련의 가역 코드 단어들로부터 하나의 가역 코드 단어를 정보 단어 영역 내에 위치한 정보 단어로 지정하며, 상기 일련의 가역 코드 단어들은 상기 영역 내의 각각의 정보 단어에 대하여 하나의 특정 가역 코드 단어가 각각 제공되도록 설계된 가역 코드 단어 지정 수단(12)과;
    상기 정보 단어 영역 밖에 위치한 정보 단어에 대해 소정의 추가 코드 단어(31,32)를 발생시키며, 상기 정보 단어 영역 밖에 위치한 상기 정보 단어에 대해 추가 값(33,34)을 발생시키고, 그리고 일련의 비가역 가변 코드 단어들로부터 하나의 비가역 가변길이 코드 단어를 상기 추가 값(33,34)으로 지정하며, 가역 코드 단어들의 데이터 스트림으로부터 분리되고 비가역 가변길이 코드 단어들로 이루어지도록 생성된 이스케이프 영역을 가지며, 각 화살표(A,B)에 의해 표현된 바와 같이, 상기 가역 코드 단어들의 데이터 스트림의 상기 소정 코드 단어들(31,32) 중 어느 하나에 상기 이스케이프 영역의 한 개 코드 단어가 지정되는 추가코드단어 발생 수단(14)과,
    상기 지정 수단(12)과 상기 발생 수단(14)에 연결되고, 상기 영역 내의 정보 단어들에 대해서는 가역 코드 단어들로만 이루어지고 상기 영역 밖의 정보 단어들에 대해서는 소정의 가역 코드 단어들로 이루어진 가역 코드 단어들의 데이터 스트림을 발생시키도록 배열된 데이터 스트림 포맷팅 수단(16)을 포함하는 정보 단어 엔트로피 인코딩 디바이스.
  2. 청구항 1에 있어서, 상기 가역 코드 단어들은 대칭 코드 단어들인 것이 특징인 정보 단어 엔트로피 인코딩 디바이스.
  3. 청구항 1에 있어서,
    상기 발생 수단(14)는 상기 정보 단어 영역의 경계에 위치한 정보 단어에 대해서도 추가 값을 발생시키고 상기 정보 단어 영역 경계에 위치한 상기 정보 단어에 대하여 상기 소정의 코드 단어를 발생시키도록 배치된 것이 특징인 정보 단어 엔트로피 인코딩 디바이스.
  4. 청구항 1에 있어서,
    소정의 한계 확률 이상에서 발생하는 확률로 발생하도록 설계된 정보 단어들은 상기 영역 내에 위치한 것이 특징인 정보 단어 엔트로피 인코딩 디바이스.
  5. 청구항 1에 있어서,
    상기 지정 수단(12)은 상기 일련의 가역 코드 단어들 중 가장 긴 코드 단어의 길이가 에러 인식 관점에서 정의된 소정의 길이보다 작거나 같게 되도록 상기 영역의 크기가 선택되게 배열되는 것이 특징인 정보 단어 엔트로피 인코딩 디바이스.
  6. 청구항 1에 있어서,
    상기 발생 수단(14)은 상기 정보 단어와 상기 영역의 가장 근접한 경계에 위치한 상기 정보 단어 사이의 차이를 추가 값으로 형성하도록 배열되는 것이 특징인 정보 단어 엔트로피 인코딩 디바이스.
  7. 청구항 1에 있어서,
    상기 정보 단어들은 각각 제 1 경계로부터 제 2 경계까지의 수치 값들과 상기 경계들 밖의 수치 값들에 해당하고, 상기 제 1 내지 제 2 경계는 상기 정보 단어 영역을 정의하며;
    상기 지정 수단(12)은 상기 영역의 경계 혹은 상기 영역 밖에 위치한 정보 단어 즉, 상기 소정의 가역 코드 단어를 지정하도록 배열되고, 상기 소정의 가역 코드 단어는 상기 영역의 수치 값을 기초로 하여, 상기 정보 단어의 수치 값에 가장 근사한 상기 영역의 경계에 해당하는 상기 정보 단어에 대한 코드 테이블에 따라 제공되는 가역 코드 단어에 해당하며; 그리고
    상기 발생 수단(14)은 코딩될 상기 정보 단어와 상기 영역의 경계에 있는 상기 정보 단어 사이의 상기 차이를 추가 값으로 발생시키고, 상기 차이의 부호는 상기 영역의 경계에 있는 상기 정보 단어의 부호에 의하여 결정되어, 코딩될 상기 정보 단어가 상기 영역의 경계에 있는 상기 정보 단어에 대한 상기 소정의 가역 코드 단어와 부호가 없는 차이가 추가 값(33, 34)으로 표현되는 것이 특징인 정보 단어 엔트로피 인코딩 디바이스.
  8. 청구항 1에 있어서,
    상기 가역 코드 단어 지정수단(12)으로 들어가는 시작 값을 기초로 미분-인코딩된 정보 단어들을 발생시키고, 연속적인 미분-인코딩된 정보 단어들로 미분 값 시퀀스를 나타내는 정보 미분 인코딩 수단을 더 포함하는 것이 특징인 정보 단어 엔트로피 인코딩 디바이스.
  9. 청구항 8에 있어서,
    상기 미분 인코딩 수단은,
    상기 미분 값 시퀀스의 끝에 추가 요소를 더하고, 상기 추가 요소는 상기 미분 값 시퀀스의 역방향 디코딩이 수행될 수 있도록 정의되는 수단을 더 포함하는 것이 특징인 정보 단어 엔트로피 인코딩 디바이스.
  10. 가역 코드 단어들을 사용하여 엔트로피-인코딩된 정보 단어들을 디코딩하는 디바이스에 있어서, 상기 정보 단어들은 데이터 스트림과 이스케이프 영역의 형태로 존재하고, 상기 데이터 스트림은 정보 단어 영역 내의 정보 단어들에 대한 가역 코드 단어들만 포함하고 상기 이스케이프 영역은 상기 정보 단어 영역 밖의 정보 단어들을 대표하는 추가 값들에 대한 비가역 코드 단어들을 포함하며, 각 화살표(A,B)에 의해 표현된 바와 같이, 항상 상기 데이터 스트림의 하나의 소정의 코드 단어(31,32)에 상기 이스케이프 영역의 하나의 코드 단어가 지정되며, 상기 디바이스는:
    상기 데이터 스트림으로부터 가역 코드 단어 (30a, 30b, 30c)를 탐지해 내는 수단 (21)과:
    코드 테이블을 기초로 하여, 상기 데이터 스트림으로부터 탐지된 상기 코드 단어에 특정 정보 단어를 지정하는 수단(22)과;
    상기 데이터 스트림에서 소정의 가역 코드 단어(31, 32)를 탐지해 내는 수단(21)과;
    상기 데이터 스트림으로부터 탐지된 상기 소정의 가역 코드 단어에 지정되는 비가역 가변길이 코드 단어를 상기 이스케이프 영역에서 확인하고, 상기 비가역 가변길이 코드 단어들에 대한 이스케이프 테이블을 기초로 하여 상기 비가역 가변길이 코드 단어에 추가 값을 지정하며, 상기 추가 값을 기초로 하여 상기 정보 단어 영역 밖에서 정보 단어를 확인하는 수단(23)을 포함하는 엔트로피-인코딩된 정보 단어의 디코딩 디바이스.
  11. 청구항 10에 있어서,
    상기 비가역 가변길이 코드 단어들은 허프만(Huffman) 코드 단어들인 것이 특징인 엔트로피-인코딩된 정보 단어의 디코딩 디바이스.
  12. 청구항 10에 있어서,
    상기 가역 코드 단어 탐지 수단(21)은 상기 제 1 데이터 스트림(30)에 있는 비가역 코드 단어가 확인될 수 있도록 배열되는 것이 특징인 엔트로피-인코딩된 정보 단어의 디코딩 디바이스.
  13. 청구항 12에 있어서,
    상기 디바이스는 상기 탐지 수단(21)이 상기 코드 단어 시퀀스(30)를 처리하는 시퀀스 역전 수단(24)을 더 포함하고, 상기 역전 수단(24)은 확인된 비가역 코드 단어에 응답하는 것이 특징인 엔트로피-인코딩된 정보 단어의 디코딩 디바이스.
  14. 청구항 10에 있어서,
    싱기 정보 단어들은 미분-인코딩되고, 상기 미분-인코딩된 정보 단어들을 미분-디코딩하는 수단(25)을 더 포함하는 것이 특징인 엔트로피-인코딩된 정보 단어의 디코딩 디바이스.
  15. 청구항 13에 있어서,
    시작 값으로부터 출발하여, 상기 정보 단어들의 시퀀스가 미분-인코딩되고, 상기 시퀀스는 타단으로부터의 역방향 미분 디코딩이 수행될 수 있도록 선택된 추가 값을 상기 타단에 가지며, 상기 미분-디코딩 수단(25)은 상기 시퀀스 역전 수단에 응답하여 상기 타단으로부터의 미분 디코딩을 수행하도록 배열되는 것이 특징인 엔트로피-인코딩된 정보 단어의 디코딩 디바이스.
  16. 청구항 10에 있어서,
    상기 소정의 가역 코드 단어(31, 32)가 상기 코드 테이블에 따라 상기 정보 단어 영역의 경계에 있는 정보 단어에 지정되는 것이 특징인 엔트로피-인코딩된 정보 단어의 디코딩 디바이스.
  17. 청구항 에 있어서,
    상기 확인 수단(23)은 상기 영역의 경계에 있는 상기 정보 단어의 합계와 상기 추가 값의 합계를 형성하도록 배열되어 상기 영역 밖에 위치한 정보 단어를 얻는 것이 특징인 엔트로피-인코딩된 정보 단어의 디코딩 디바이스.
  18. 청구항 10에 있어서, 상기 정보 단어들은 변환-인코딩된 오디오 신호의 스케일 팩터들인 것이 특징인 엔트로피-인코딩된 정보 단어의 디코딩 디바이스.
  19. 일련의 가역 코드 단어들로부터의 가역 코드 단어를 정보 단어 영역 내에 위치한 정보 단어에 지정하고, 상기 영역 내의 각각의 정보 단어에 대하여 하나의 특정한 가역 코드 단어가 제공되어 있도록 상기 일련의 가역 코드 단어들이 설계되는 지정 단계 (12)와;
    상기 정보 단어 영역 밖에 위치한 정보 단어에 대하여 소정의 가역 코드 단어를 발생시키는 발생 단계(14)와;
    상기 정보 단어 영역 밖에 위치한 상기 정보 단어에 대하여 추가 값 (33, 34)을 발생시키는 발생 단계(14)와;
    상기 영역 내에 있는 정보 단어들에 대해서는 가역 코드 단어들만 포함하고 상기 영역 밖의 정보 단어들에 대해서는 소정의 가역 코드 단어들을 포함하는 가역 코드 단어들에 대해 데이터 스트림을 발생시키는 단계; 그리고
    일련의 비가역 가변길이 코드 단어들로부터의 비가역 가변길이 코드 단어를 상기 추가 값(33,34)으로 지정함으로써 상기 추가 값(33,34)을 코딩하고, 상기 가역 코드 단어들의 데이터 스트림으로부터 분리되고 비가역 가변길이 코드 단어들로 이루어진 이스케이프 영역을 생성시켜, 각 링크(A,B)에 의해 항상 상기 소정의 코드 단어들(31,32) 중 하나에 상기 이스케이프 영역의 한 개의 코드 단어가 지정되도록 하는 코딩 단계를 포함하는 정보 단어의 엔트로피 인코딩 방법.
  20. 가역 코드 단어들을 사용하여 엔트로피-인코딩된 정보 단어들을 디코딩하는 방법에 있어서, 상기 정보 단어들은 데이터 스트림과 이스케이프 영역의 형태로 존재하고, 상기 데이터 스트림은 정보 단어 영역 내의 정보 단어들에 대한 가역 코드 단어들만 포함하고 상기 이스케이프 영역은 상기 정보 단어 영역 밖의 정보 단어들을 대표하는 추가 값들에 대한 비가역 코드 단어들을 포함하며, 각 화살표(A,B)에 의해 표현되는 바와 같이, 항상 하나의 소정의 코드 단어(31,32)에 상기 이스케이프 영역의 하나의 코드 단어가 지정되며, 상기 방법은:
    가역 코드 단어(30a,30b,30c)를 상기 데이터 스트림으로부터 탐지해 내는 단계 (21)와:
    코드 테이블을 기초로 하여 상기 데이터 스트림으로부터 탐지된 상기 코드 단어에 특정 정보 단어를 지정하는 단계 (22)와;
    상기 데이터 스트림에서 소정의 가역 코드 단어(31, 32)를 탐지해 내는 단계 (21)와;
    상기 데이터 스트림으로부터 탐지된 상기 소정의 가역 코드 단어에 지정되는 비가역 가변길이 코드 단어를 상기 이스케이프 영역에서 확인하는 단계와;
    이스케이프 테이블을 기초로 하여 상기 비가역 가변길이 코드 단어들에 대한 상기 비가역 가변길이 코드 단어에 추가 값을 지정하는 단계와;
    상기 추가 값을 기초로 하여 상기 정보 단어 영역 밖에서 정보 단어를 확인하는 단계(23)를 포함하는 엔트로피-인코딩된 정보 단어의 디코딩 방법.
  21. 청구항 1에 있어서, 상기 정보 단어들은 변환-인코딩된 오디오 신호의 스케일 팩터들인 것이 특징인 엔트로피-인코딩된 정보 단어 엔트로피 인코딩 디바이스.
KR10-2001-7002938A 1998-09-07 1999-08-12 정보 단어의 엔트로피 인코딩 디바이스 및 그 방법과엔트로피-인코딩된 정보 단어의 디코딩 디바이스 및 그 방법 KR100397806B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19840835A DE19840835C2 (de) 1998-09-07 1998-09-07 Vorrichtung und Verfahren zum Entropiecodieren von Informationswörtern und Vorrichtung und Verfahren zum Decodieren von Entropie-codierten Informationswörtern
DE19840835.8 1998-09-07

Publications (2)

Publication Number Publication Date
KR20010073132A KR20010073132A (ko) 2001-07-31
KR100397806B1 true KR100397806B1 (ko) 2003-09-17

Family

ID=7880121

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-7002938A KR100397806B1 (ko) 1998-09-07 1999-08-12 정보 단어의 엔트로피 인코딩 디바이스 및 그 방법과엔트로피-인코딩된 정보 단어의 디코딩 디바이스 및 그 방법

Country Status (11)

Country Link
US (1) US6441755B1 (ko)
EP (1) EP1112621B1 (ko)
JP (1) JP3417479B2 (ko)
KR (1) KR100397806B1 (ko)
CN (1) CN1185795C (ko)
AT (1) ATE214211T1 (ko)
AU (1) AU747694B2 (ko)
CA (1) CA2341864C (ko)
DE (2) DE19840835C2 (ko)
HK (1) HK1040327B (ko)
WO (1) WO2000014886A1 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7133455B2 (en) * 2000-12-29 2006-11-07 Intel Corporation Providing error resilience and concealment for video data
US6934677B2 (en) 2001-12-14 2005-08-23 Microsoft Corporation Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands
US7240001B2 (en) 2001-12-14 2007-07-03 Microsoft Corporation Quality improvement techniques in an audio encoder
JP3778087B2 (ja) * 2002-01-18 2006-05-24 富士ゼロックス株式会社 データ符号化装置及びデータ復号装置
US7428684B2 (en) 2002-04-29 2008-09-23 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Device and method for concealing an error
DE10219133B4 (de) * 2002-04-29 2007-02-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Verschleiern eines Fehlers
JP4728568B2 (ja) * 2002-09-04 2011-07-20 マイクロソフト コーポレーション レベル・モードとラン・レングス/レベル・モードの間での符号化を適応させるエントロピー符号化
US7502743B2 (en) 2002-09-04 2009-03-10 Microsoft Corporation Multi-channel audio encoding and decoding with multi-channel transform selection
JP4676140B2 (ja) 2002-09-04 2011-04-27 マイクロソフト コーポレーション オーディオの量子化および逆量子化
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
EP1734511B1 (en) 2002-09-04 2009-11-18 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
US7657429B2 (en) * 2003-06-16 2010-02-02 Panasonic Corporation Coding apparatus and coding method for coding with reference to a codebook
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7460990B2 (en) 2004-01-23 2008-12-02 Microsoft Corporation Efficient coding of digital media spectral data using wide-sense perceptual similarity
US7161507B2 (en) * 2004-08-20 2007-01-09 1St Works Corporation Fast, practically optimal entropy coding
US7265691B2 (en) * 2005-06-23 2007-09-04 1Stworks Corporation Modeling for enumerative encoding
JP4554451B2 (ja) * 2005-06-29 2010-09-29 京セラ株式会社 通信装置、通信システム、変調方法、及びプログラム
US7684981B2 (en) 2005-07-15 2010-03-23 Microsoft Corporation Prediction of spectral coefficients in waveform coding and decoding
US7693709B2 (en) * 2005-07-15 2010-04-06 Microsoft Corporation Reordering coefficients for waveform coding or decoding
US7599840B2 (en) * 2005-07-15 2009-10-06 Microsoft Corporation Selectively using multiple entropy models in adaptive coding and decoding
KR100803205B1 (ko) 2005-07-15 2008-02-14 삼성전자주식회사 저비트율 오디오 신호 부호화/복호화 방법 및 장치
US8599925B2 (en) * 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
US7565018B2 (en) * 2005-08-12 2009-07-21 Microsoft Corporation Adaptive coding and decoding of wide-range coefficients
US7933337B2 (en) * 2005-08-12 2011-04-26 Microsoft Corporation Prediction of transform coefficients for image compression
US7831434B2 (en) 2006-01-20 2010-11-09 Microsoft Corporation Complex-transform channel coding with extended-band frequency coding
US8184710B2 (en) 2007-02-21 2012-05-22 Microsoft Corporation Adaptive truncation of transform coefficient data in a transform-based digital media codec
US7774205B2 (en) * 2007-06-15 2010-08-10 Microsoft Corporation Coding of sparse digital media spectral data
US7885819B2 (en) 2007-06-29 2011-02-08 Microsoft Corporation Bitstream syntax for multi-process audio decoding
KR101391601B1 (ko) * 2007-10-15 2014-05-07 삼성전자주식회사 최적의 임계치를 이용한 지수 골롬 이진화에 의한 영상부호화 방법 및 그 장치, 및 영상 복호화 방법 및 그 장치
US8179974B2 (en) 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
US8406307B2 (en) 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
US8364471B2 (en) * 2008-11-04 2013-01-29 Lg Electronics Inc. Apparatus and method for processing a time domain audio signal with a noise filling flag
MY160807A (en) 2009-10-20 2017-03-31 Fraunhofer-Gesellschaft Zur Förderung Der Angewandten Audio encoder,audio decoder,method for encoding an audio information,method for decoding an audio information and computer program using a detection of a group of previously-decoded spectral values
TWI476757B (zh) 2010-01-12 2015-03-11 Fraunhofer Ges Forschung 音訊編碼器、音訊解碼器、用以將音訊資訊編碼及解碼之方法、以及基於先前解碼頻譜值之範數來獲取脈絡子區值之電腦程式

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3918027A (en) * 1974-06-24 1975-11-04 Honeywell Inf Systems Scanning and error checking apparatus for address development utilizing symmetric difference encoded data structure
JP2697479B2 (ja) * 1992-04-17 1998-01-14 国際電信電話株式会社 可逆可変長符号化方式
TW241361B (ko) * 1993-05-07 1995-02-21 Philips Electronics Nv
US5581653A (en) * 1993-08-31 1996-12-03 Dolby Laboratories Licensing Corporation Low bit-rate high-resolution spectral envelope coding for audio encoder and decoder
EP1802134A3 (en) * 1995-03-15 2008-12-31 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems
TW362305B (en) * 1996-10-18 1999-06-21 Koninkl Philips Electronics Nv Apparatus and method for converting a sequence of m-bit information words into a modulated signal

Also Published As

Publication number Publication date
CN1322405A (zh) 2001-11-14
EP1112621B1 (de) 2002-03-06
HK1040327A1 (en) 2002-05-31
JP3417479B2 (ja) 2003-06-16
JP2002524960A (ja) 2002-08-06
EP1112621A1 (de) 2001-07-04
DE59900962D1 (de) 2002-04-11
AU747694B2 (en) 2002-05-16
KR20010073132A (ko) 2001-07-31
CA2341864A1 (en) 2000-03-16
DE19840835A1 (de) 2000-03-16
AU5732999A (en) 2000-03-27
HK1040327B (zh) 2005-08-19
WO2000014886A1 (de) 2000-03-16
ATE214211T1 (de) 2002-03-15
US6441755B1 (en) 2002-08-27
CN1185795C (zh) 2005-01-19
CA2341864C (en) 2004-08-03
DE19840835C2 (de) 2003-01-09

Similar Documents

Publication Publication Date Title
KR100397806B1 (ko) 정보 단어의 엔트로피 인코딩 디바이스 및 그 방법과엔트로피-인코딩된 정보 단어의 디코딩 디바이스 및 그 방법
US8620651B2 (en) Bit error concealment methods for speech coding
US5778191A (en) Method and device for error control of a macroblock-based video compression technique
Lam et al. An error concealment algorithm for images subject to channel errors
EP1734511B1 (en) Entropy coding by adapting coding between level and run-length/level modes
EP1008247B1 (en) Error concealment in digital audio receiver
KR100391935B1 (ko) 오디오 신호를 코딩 또는 디코딩하는 방법 및 디바이스
US7003448B1 (en) Method and device for error concealment in an encoded audio-signal and method and device for decoding an encoded audio signal
KR20070094798A (ko) 특정된 엔트리 포인트를 가진 세그먼트로 데이터 스트림을생성하고 해석하는 장치
EP1187338A2 (en) Method and apparatus for performing variable-size vector entropy coding
WO2002091361A1 (en) Adding data to a compressed data frame
US4918729A (en) Voice signal encoding and decoding apparatus and method
US6601032B1 (en) Fast code length search method for MPEG audio encoding
KR100433201B1 (ko) 데이터 스트림을 만드는 장치 및 방법과 데이터 스트림을읽어 내는 장치 및 방법
US7428684B2 (en) Device and method for concealing an error
KR100903109B1 (ko) 오디오 신호의 무손실 부호화/복호화 장치 및 그 방법
KR100407479B1 (ko) 가변 길이의 코드 워드의 데이터 스트림을 만드는 방법 및장치와 가변 길이의 코드 워드의 데이터 스트림을 읽어내는 방법 및 장치
JP3978194B2 (ja) オーディオ信号又はビットストリームの復号化のための装置及び方法
Otu et al. A joint source/channel coder with block constraints
CA2482866C (en) Device and method for concealing an error
Bauer et al. List-Decoding of MPEG coded audio signals

Legal Events

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

Payment date: 20120822

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20130819

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20140825

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20150821

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20160824

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20170821

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20180821

Year of fee payment: 16

EXPY Expiration of term