KR19980702512A - 가변 길이 디코더 - Google Patents
가변 길이 디코더 Download PDFInfo
- Publication number
- KR19980702512A KR19980702512A KR1019970705912A KR19970705912A KR19980702512A KR 19980702512 A KR19980702512 A KR 19980702512A KR 1019970705912 A KR1019970705912 A KR 1019970705912A KR 19970705912 A KR19970705912 A KR 19970705912A KR 19980702512 A KR19980702512 A KR 19980702512A
- Authority
- KR
- South Korea
- Prior art keywords
- length
- value
- decoding
- codeword
- decoder
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion 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
- H03M7/425—Conversion 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 for the decoding process only
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
인코딩된 입력 비트스트림의 프로세싱에 적응 가속 기능을 갖는 가변길이 디코더로서, 상기 입력 비트스트림을 수신하고, 디코딩할 하나 이상의 코드워드를 갖는 비트 시퀀스를 포함하는 디코딩 윈도우를 출력에 제공하기 위한 입력 회로 ; 제어 신호의 제 1 값에 응답하여 상기 입력 회로로부터 수신된 복수의 코드워드의 결합의 결합 길이를 결정하고, 상기 결정된 결합 길이를 나타내는 결합 길이 신호를 발생시키고, 상기 제어 신호의 제 2 값에 응답하여 상기 입력 회로로부터 수신된 개개의 코드워드의 길이를 결정하며, 그리고 상기 개개의 코드워드의 상기 결정된 길이를 나타내는 개별 워드길이 신호를 발생시키기 위한 코드워드 길이 디코딩 회로 ; 상기 코드워드 길이 디코딩 회로로부터 상기 결합 길이 신호 또는 상기 개별 워드길이 신호를 수신하고, 이에 응답하여 상기 디코딩 윈도우를 시프트하여 하나이상의 디코딩할 코드워드를 추가적으로 포함하는 새로운 비트 시퀀스를 상기 입력 회로의 상기 출력에 제공하기 위한 계산 루프 회로 ; 상기 제어 신호의 상기 제 1 값에 응답하여 상기 입력 회로에 의해 제공되는 복수의 코드워드의 상기 결합의 값을 디코딩하고, 그리고 상기 제어 신호의 상기 제 2 값에 응답하여 상기 개별 코드워드의 값을 디코딩하기 위한 코드워드값 디코딩 회로 ; 및 상기 제어 신호를 발생시키고 디코딩 프로토콜에 따라 상기 가변길이 디코더의 동작을 제어하기 위한 제어 회로를 포함하는 디코더가 개시되어 있다. 개시된 실시예에서, 코드워드 결합의 복수의 코드워드는 허프만 인코딩된 비트스트림에서 그 비트길이가 소정 이하인 선택된 코드워드 그룹의 일부분이다.
Description
디지털 영상 데이터 전송 시스템에서, 영상 데이터는 일단 인코딩한 후에 수신기로 전송되고, 이 수신기는 상기 인코딩된 디지털 영상 데이터를 디코딩한다. 그리고 나서, 상기 디코딩된 디지털 영상 데이터는 이후의 신호 처리단으로 출력된다. 이러한 시스템은 통계적 압축 알고리즘(statistical compression algorithm)을 사용하여 디지털 영상 데이터를 압축 및 인코딩함으로써 데이터 처리량과 메모리 효율을 증가시킨다. 허프만 코딩 알고리즘(Huffman coding algorithm)은 이러한 압축 알고리즘의 한 가지이다. 데이터를 압축하면 일반적으로 고정길이 코드워드(fixed lenghth code word)가 아닌 가변길이 코드워드(variable length code word)의 세그먼트로 구성된 데이터 스트림(data streams)이 생성된다. 가변길이 디코더는 압축된 데이터 스트림을 포함하는 가변길이 코드워드를 디코딩한다.
가변길이 코드워드의 시퀀스를 디코딩하기 위한 방법이 현재 여러 가지가 제안되어 있다. 이 중에서 가장 우세한 방법은 트리 탐색 알고리즘(tree searching algorithm)과 테이블 조사 기법(table look-up technique)이다.
트리 탐색 알고리즘은 코딩 트리(coding tree)를 비트 단위로 탐색하여 입력 비트스트림(bit stream)에서 종단(end)과 각 코드워드를 찾아낸다. 코딩 트리는 알려진 코드워드의 잎(leaves)을 포함한다. 디코딩 프로세스는 코딩 트리의 루트(root)에서 시작하여, 비트스트림에서 연속된 각 비트를 디코딩한 값에 따라 코딩 트리의 상이한 가지(branches)로 비트 단위로 계속된다. 궁극적으로 하나의 잎에 다다르고 코드워드의 종단이 검출된다. 그리고 나서, 비트스트림의 나머지 부분으로부터 코드워드가 세그먼트화되고, 검출된 코드워드의 값은 가변길이 디코더로부터 조사 및 출력된다. 트리 탐색 알고리즘은 기호 단위가 아닌 비트 단위로 디코딩 연산을 수행하므로 이 알고리즘을 사용하여 비트스트림을 디코딩하는 것은 지나치게 느려 고속 응용에 사용하기에는 적합하지 않다. 이런 관점에서, 비트 단위로 비트스트림을 디코딩하면 HDTV 디코더에 요구되는 최대 기호 단위 속도를 만족시키지 못한다.
가변길이 디코더의 데이터 처리량을 증가시키기 위해서 Sun 등의 미합중국 특허 제 5,173,695호에 개시된 것과 같은 테이블 조사 디코더가 개발되었다. 상기 특허에 개시된 테이블 조사 디코더의 입력은 레이트 버퍼(rate buffer)의 출력에 연결되고, 상기 레이트 버퍼는 그 입력단에서 가변 워드길이 인코딩된 비트스트림(variable-word-lenghth encoded bit stream)을 수신하고 비트스트림의 최대 길이코드와 동일한 길이를 갖는 비트 시퀀스를 병렬 출력한다. 이들 시퀀스는 판독되어 직렬 접속된 래치로 들어간다. 상기 양(both) 래치의 직렬 접속된 시퀀스는 원형 시프터(barrel shifter)로 입력되고, 상기 시프터는 그 다중비트 입력으로부터 슬라이딩 디코딩 윈도우(sliding decoding window)를 테이블 조사 디코더에 제공한다. 제어 신호는 각 코드워드가 검출될 때마다 원형 시프트의 디코딩 윈도우의 위치를 직접 시프트한다. 각 코드워드를 검출하기 위해서, 디코딩 윈도우의 초기 비트를 테이블 조사 디코더의 코드워드 엔트리와 비교한다. 코드워드가 검출되면, 대응하는 코드워드 길이가 누산기(accumulator)의 이전에 누산된 코드워드 길이값에 가산되어 디코딩 윈도우를 방금 디코딩된 워드의 비트 개수만큼 직접 시프트하는 제어 신호를 발생시킨다. 제 1 래치의 모든 비트가 디코딩되면, 버퍼의 다음 비트 시퀀스가 제 2 래치로 입력되고 제 2 래치의 이전의 비트 시퀀스는 제 1 래치로 전송된다. 그리고 나서, 디코딩 윈도우는 미-디코딩 시퀀스(undecoded sequence)에서 다음 코드워드의 시작점으로 시프트된다. 디코딩 윈도우의 시프트와 코드워드의 디코딩은 한 클록 사이클 동안에 수행할 수 있다. 결과적으로, 상기 테이블 조사 디코더는 비트길이에 관계없이 매 클록 사이클마다 하나의 코드워드를 디코딩할 수 있고, 이로써 이전의 트리 탐색 알고리즘 디코더에 비해 디코더의 데이터 처리량을 현저히 증가시킨다.
전술한 Sun 등의 특허에 기술된 테이블 조사 디코더가 비트 단위가 아닌 기호 단위로 디코딩할 수 있지만, 그 실제 동작 속도는 원형 시프터, 워드길이 디코더, 가산기-누산기를 포함하는 피이드백 루프를 통한 전파 지연(propagation delay)에 의해 제한된다. 최대 기호 처리속도가 1억 코드워드/초가 넘는 HDTV 응용에서는, 단일의 가변길이 디코더를 사용하여 전체 픽처(picture)를 위의 기호 처리속도로 디코딩하는 것은 비현실적이다. HDTV 시스템에서, 가변길이 디코더(VLD)가 사용되어 픽처 디스플레이 시간내에 레이트 버퍼로부터 전체 픽처를 추출한다. VLD가 상기 최대 기호 처리속도로 동작할 수 없는 경우에는, 한정된 픽처 디스플레이 시간내에 프로세싱할 수 있는 양을 초과하는 데이터를 수반하는 픽처에 대해 VLD가 레이트 버퍼로부터 모든 픽처를 추출할 수 없게되어 디코더가 충돌(crash)을 일으킨다. 이는 픽처 화질을 현저히 저하시킨다. 따라서, 이러한 문제가 발생하지 않고 픽처를 디코딩하기 위해서는 VLD가 최대 기호 처리속도(PSR)로 데이터 스트림의 워드를 디코딩해야 한다.
MPEG(동영상 전문가 그룹) 프로토콜을 사용하는 HDTV 시스템에서는 1억 코드워드/초 이상의 VLD 처리량이 요구된다. 상기 처리량을 갖는 VLD를 구현하는 것에 따른 기술적인 문제 외에도, 대용량 레이트 버퍼와의 고속 VLD 인터페이스는 현재의 메모리 기술에서는 대단히 고가이다. 가격이 중요한 경우에는 문제가 더욱더 심각해지느데, 이는 비동기 DRAM과 같은 저속의 저가 메모리 소자가 아닌, SRAM이나 동기 DRAM과 같은 고속의 고가 메모리 소자를 사용하여야 하기 때문이다. 물론, HDTV 세트와 같은 가전용품에 있어서는 메모리 가격은 특히 중요한 사항이다.
현재의 구현에서는 일반적으로 HDTV 시스템은 픽처의 상이한 부분을 병행적으로 디코딩하는 다중 VLD를 사용하여 다중 프로세싱 경로로 분할된다. 이러한 구현에서는 VLD는 주요 병목지점(bottlenecks)의 하나이다. 픽처의 각 분할부분은 대부분의 픽처 정보를 포함할 수 있으므로, 레이트 버퍼와 모든 VLD의 사이에 전용의 다중 핑퐁 버퍼(multiple dedicated ping-pong buffer)가 요구되고, 이로 인해 시스템에 요구되는 비트스트림 메모리의 양은 상당히 증가하게 된다. 예를 들어, 8개의 병렬 VLD를 갖는ㄴ 분할형 디코딩 시스템은 8개의 핑퐁 버퍼를 요구하고 각 핑퐁 버퍼는 그 크기가 레이트 버퍼의 두 배이므로, 이 시스템에서 요구되는 버퍼 메모리의 양은 단일 VLD를 갖는 시스템에 비해 16배로 증가하게 된다.
HDTV 시스템에서, 디지탈 영상 데이터는 디코딩할 코드워드를 포함하는 허프만 인코딩된 비트스트림(Huffman encoded bit stream)이다. 허프만 인코딩된 비트 스트림에서는, 발생확률이 가장 높은 코드워드는 최소의 비트수를 갖고 발생확률이 가장 낮은 코드워드는 최대의 비트수를 갖는다. 따라서, 허프만 인코딩된 비트스트림에 포함ㅎ되는 코드워드는 그 비트길이가 비트스트림에서 상기 코드워드의 발생 확률의 함수이다. 일반적으로, 픽처 사이즈는 코드워드 단위가 아닌 비트 단위이다. 한 클록 사이클당 하나의 코드워드를 디코딩하면, 전체 픽처가 최소(the smallest) 코드워드로 구성되는 경우에 VLD의 처리량이 최하로 되는데, 이는 클록 사이클당 디코딩되는 비트의 평균치가 이러한 픽처에서 최소로 되기 때문이다. 따라서, 허프만 인코딩된 비트스트림에서의 최소 코드워드(the smallest code word)에 의해 HDTV에서 최대 기호 처리속도가 앞에서와 같이 높게 된다.
전술한 바에 따르면, 종래 기술의 전술한 단점을 극복할 수 있고 분할형 HDTV 디코더가 아닌 단일 VLD HDTV 디코더를 구현하는 데에 사용할 수 있는 가변길이 디코더에 대한 필요성이 현재 존재한다는 것을 알 수 있다. 특히, 보다 낮은 클록 주파수에서 디지털 영상 데이터의 처리에 적합한 데이터 처리량을 제공할 수 있어 보다 저가인 저속 메모리를 사용할 수 있고 현실적으로 가변길이 디코더를 구현할 수 있도록 해주는 가변길이 디코더에 대한 필요성이 현재 존재한다.
전술한 내용으로부터 명확한 바와 같이, 본 발명은 허프만 인코딩된 비트스트림에서 그 비트길이가 소정의 수 이하인 선택된 코드워드 그룹에 대해 상기 선택된 그룹으로부터의 모든 가능한 코드워드 결합을 추가 엔트리로서 포함하는 결합치 조사 테이블을 사용하여 상기 선택된 그룹의 복수의 코드워드의 결합을 단일 클록 사이클동안에 디코딩함으로써 클록 사이클당 데이터 처리량이 적응적으로 증가하는 가변길이 디코더를 제공하여 본 기술분야의 상기 필요성을 충족시킨다. 최소 코드워드는 허프만 인코딩된 비트스트림에서 통계적으로 가장 발생 빈도가 높은 코드워드이므로, 본 발명의 VLD는 현재의 VLD에 비해 그 데이터 처리량은 현저히 높고 그 클록 주파수는 대단히 낮다. 상기 선택된 그룹 내의 코드워드를 디코딩함에 있어서의 적응적 가속능력에 의한 통계적 성능 개선 이외에, 본 발명의 VLD는 코드워드 길이의 평균적인 최소치를 보다 높은 값으로 보상하며, 이로써 데이터 처리량을 저하시키지 않고서도 클록 주파수를 낮출 수 있다.
본 발명은 데이터 전송 시스템에서 사용되는 가변길이 디코더(variable lenghth decoder)에 관한 것으로서, 특히 고품위 텔레비젼(HDTV)에서 디지털 영상데이터를 디코딩하기 위한 가변길이 디코더에 관한 것이다.
도 1은 본 발명의 가변길이 디코더의 특정 실시예의 블록도.
본 발명은 허프만 인코딩된 비트스트림에서 비트길이가 소정 이하인 선택된 워드 그룹에 대하여 클록 사이클당 처리량이 적응적으로 증가하는 가변길이 디코더로서, 상기 선택된 그룹의 모든 가능한 코드워드의 결합을 추가 엔트리로서 포함하는 결합값 조사 테이블을 사용하여 단일 클록 사이클동안 상기 선택된 그룹으로부터 복수의 코드워드의 결합을 디코딩하는 디코더에 관한 것이다.
본 발명의 가변길이 디코더는 인코딩된 비트스트림을 수신하기 위한 입력 회로를 포함한다. 입력 회로는 디코딩할 코드워드를 포함하는 병렬 비트 시퀀스를 출력한다. 코드워드 길이 디코딩 회로는 제어 회로로부터 수신된 제어 신호의 제 1 값에 응답하여 상기 선택된 그룹으로부터의 코드워드의 결합의 길이를 결정(계산)하고, 상기 제어 회로로부터 수신된 상기 제어 신호의 제 2 값에 응답하여 개개의 코드워드의 길이를 디코딩한다.
피이드백 회로는 코드워드 길이 계산 회로로부터의 워드길이 정보를 입력 회로로 통신하여 상기 입력 회로가 디코딩할 코드워드를 포함하는 새로운 비트 시퀀스를 그 출력에 제공할 수 있도록 한다. 가변길이 디코더는 개별 코드워드 및 코드워드의 결합의 값을 디코딩하기 위한 코드워드값 디코딩 회로를 더 포함한다. 값 디코딩 회로는 상기 제어 신호의 제 1 값에 응답하여 선택된 그룹으로부터의 코드워드 결합을 디코딩하고, 상기 제어 회로로부터의 제어 신호의 제 2 값에 응답하여 개별 코드워드를 디코딩한다. 상기 제어 회로는 제어 신호를 발생시키고 현재 및 이전에 디코딩한 코드워드에 기초하여 디코딩 프로토콜에 따라 가변길이 디코더의 동작을 제어한다.
본 발명의 목적, 특징, 및 장점은 다음의 상세한 설명과 첨부 도면에 의해 명확해질 것이다.
본 발명을 첨부하는 도면을 참조하여 이하 설명하고자 한다. 유사한 부분은 유사한 참조 번호를 사용하였다. 본 명세서에서는 특정 응용에 대한 실시예를 참조하여 본 발명을 기술하지만, 본 발명은 이에 한정되는 것은 아니다. 본 기술 분야의 지식을 갖는 자는 본 발명의 범위 내에서 그리고 본 발명이 중요한 기능을 할 수 있는 분야에서 추가적인 변경, 응용, 및 실시예를 생각해 낼 수 있다.
도1은 본 발명의 가변길이 디코더의 특정 실시예의 블록도이다. 입력 비트스트림(20)은 디코딩할 코드워드를 포함한다. 본 실시예에서, 상기 입력 비트스트림(20)은 허프만 인코딩된 비트스트림이다. 전술한 바와 같이, 허프만 인코딩된 비트스트림에서, 발생 확률이 가장 높은 코드워드는 최소의 비트수를 갖고 발생 확률이 가장 낮은 코드워드는 최대의 비트수를 갖는다. 따라서, 허프만 인코딩된 비트스트림에 포함되는 코드워드는 그 비트길이가 비트스트림에서 상기 코드워드의 발생 확률의 함수이다.
제 1 레지스터(22)는 32라인의 병렬 입력 비트라인(24)을 통해 제 1 원형 시프터(30)로 연결되는데, 각 비트라인은 제 1 레지스터(22)의 비트에 대응한다. 제 2 레지스터(26)는 32비트의 병렬 입력 비트라인(28)을 통해 제 1 원형 시프터(30)로 연결되는데, 각 비트라인은 제 2 레지스터(26)의 비트에 대응한다. 따라서, 전체 64비트의 병렬 입력 비트라인(24, 28)이 원형 시프터(30)에 연결되고, 이로써 이에 대응하는 64개의 입력 비트 시퀀스를 원형 시프터에 제공한다. 원형 시프터(30)는 시프트 입력(35)과 32비트의 병렬 출력 비트라인(34)를 갖는다.
본 기술분야에 지식을 갖는 자는 본 발명의 본질과 범위를 벗어나지 않고 병렬 입력 비트라인(24, 28)과 병렬 출력 비트라인(34)에 다른 비트수를 사용할 수 있다는 것을 생각해낼 수 있다. 본 실시예에서는, 병렬 입력 비트라인(24, 28)과 병렬 출력 비트라인(34)의 비트수를 코드워드의 최대 비트 개수(즉, 최대 코드워드 길이)와 동일하게 설정하였다.
초기에, 라인(70)을 통해 인가된 데이터 요구 신호에 대응하여, 디코딩할 코드워드을 나타내는 32비트 시퀀스가 입력 비트스트림(20)으로부터 제 1 레지스터(22)로 로딩된다. 제 1 레지스터(22)에 비트가 로딩되면, 제 1 레지스터(22)의 내용은 32비트의 병렬 비트라인(24)을 통해 제 2 레지스터(26)로 전송되고, 입력 비트스트림(20)으로부터의 다음 32비트 시퀀스가 제 1 레지스터(22)로 로딩된다. 따라서, 64 입력 비트의 시퀀스가 원형 시프터(30)에서 사용가능하다. 32비트의 병렬 출력 비트라인(34)이 후술하는 바와 같이 64비트의 병렬 입력 비트라인(24, 28)으로부터 선택되고, 이로써 디코딩 윈도우(34)를 제공한다. 디코딩 윈도우(34)는 라인(36)을 통해 원형 시프터(30)의 시프트 입력(35)에 인가된 워드 포인터에 대응하여 사용가능한 입력 비트의 시퀀스를 따라 좌에서 우로 시프트된다. 디코딩 윈도우(34)는 이전의 클록 사이클동안 디코딩된 코드워드의 길이(또는 결합 길이)에 따라서 사용가능한 입력 비트의 시퀀스를 따라 워드 포인터에 시프트됨으로써, 현재 클록 사이클동안 프로세싱할 다음 코드워드의 시작점은 디코딩 윈도우(34)의 좌측 에지(left edge)에서 시작된다.
제 1 가산기(58)에 의해 워드 포인터 값은 현재 클록 사이클동안 디코딩한 코드워드의 디코딩된 길이 또는 결합 길이와 합산된다. 가산기(58)의 출력은 레지스터(72)로 로딩되고, 레지스터(72)의 출력은 워드 포인터이다. [물론, 시스템 초기화 시에 레지스터(72)는 0으로 초기화된다.] 워드 포인터의 현재 값에 현재 클록 사이클동안에 디코딩된 코드워드의 길이 또는 결합 길이를 합산한 값[이하, 루프 합(loop sum)]이 디코딩 윈도우(34)의 비트 폭(본 실시예의 경우, 32)을 초과하는 경우에는, 가산기(58)는 오버플로우되고 캐리 출력 C를 발생시켜 데이터 요구 라인(70)으로 인가하여 데이터 재로딩(data reload) 동작을 트리거(trigger)하는데, 여기서 제 1 레지스터(22)의 내용은 제 2 레지스터(26)로 전송되고 입력 비트스트림(20)으로부터 다음의 32 비트 시퀀스가 제 1 레지스터(22)로 로딩된다. 가산기(58)가 오버플로우되면, 가산기(58)의 출력값은 상기 루프합이 32를 초과하는 양(즉, 루프합-32)와 같게 된다. 따라서, 워드 포인트는 디코딩 윈도우(34)의 좌측 에지를 이 차이와 동일한 위치의 입력 비트로 시프트한다. 예를 들어, 루프합이 40이라면 가산기의 출력은 8이고, 따라서 워드 포인터는 디코딩 윈도우(34)의 좌측 에지를 사용가능한 입력비트의 8번째 비트로 시프트할 것이다.
디코딩 윈도우(34)는 길이 디코더(38), 결합 길이 디코더(40), 값 디코더(42), 결합값 디코더(44), 및 제어 회로(46)로 입력된다. 제어 회로(46)는 디코딩 윈도우(34) 내에서 디코딩할 코드워드 또는 코드워드 그룹을 검출하고, 길이 디코더(38, 40)와 값 디코더(42, 44)에 프로세싱하는 코드워드의 유형에 대한 정보를 제공한다. 길이 디코더(38)는 표준형 허프만 조사 테이블을 구비하여 디코딩 윈도우(34) 내의 단일 코드워드의 길이를 결정하고, 결합 길이 디코더(40)는 그 비트길이가 소정 이하인 코드워드들의 모든 가능한 결합에 대응하는 추가 엔트리를 포함하는 조사 테이블ㅇ르 구비하여 그 비트길이가 소정 이하인 선택된 코드워드 그룹 내의 복수의 코드워드들의 결합 길이를 결정한다.
값 디코더(42)는 표준형 허프만 조사 테이블을 구비하여 출력 디코딩 윈도우(34) 내의 단일 코드워드의 값을 결정한다. 결합값 디코더(44)는 그 비트길이가 소정 이하인 코드워드들의 모든 가능한 결합에 대응하는 추가 엔트리를 포함하는 조사 테이블을 구비한다. 그 비트길이가 소정 이하인 선택된 소형 코드워드 그룹내의 복수의 코드워드들의 결합은 함께 디코딩되고, 이로써 상기 Sun 등의 특허에 개시된 종래의 테이블 조사 디코더와 비교하여, 기호 처리속도보다 낮은 클록 주파수에서 가변길이 디코더(10)의 데이터 처리량을 현저히 증가시킬 수 있다.
제어 회로(46)가 발생시키는 제어 신호는 제어 라인(48, 58)을 통해 상기 값 디코더(42, 44)에 인가된다. 제어 신호는 주어진 클록 사이클에서 디코딩할 코드워드의 유형 및 개수에 관한 정보를 가지고 있다. 이러한 제어 신호를 후술하는 바와 같이 사용함으로써, 단일 코드워드를 프로세싱하기 위해 길이 디코더(38) 및 값 디코더(42)를 선택하고 선택된 그룹으로부터의 복수의 코드워드의 결합을 프로세싱하기 위해 결합길이 디코더(40)를 선택하며, 더욱이 프로세싱 중인 코드워드를 디코딩하기 위해 적절한 조사 테이블을 선택한다.
길이 디코더(38)의 출력은 길이 멀티플렉서(50)에 제 1 멀티플렉서 입력(52)을 제공한다. 결합길이 디코더(40)의 출력은 길이 멀티플렉서(50)에서 제 2 멀티플렉서 입력(54)을 제공한다. 길이 멀티플렉서(50)의 출력은 가산기(58)에 제 1 입력(56)을 제공한다. 현재 프로세싱하는 코드워드가 단일 코드워드인지 아니면 선택된 그룹으로부터의 복수의 코드워드인지에 따라서, 제 1 입력(56)은 라인(68)을 통해 수신된 제어 회로(46)으로부터의 제어 신호에 응답하여 길이 멀티플렉서(50)에 의해 제 1 멀티플렉서 입력(52)과 제 2 멀티플렉서 입력(54) 사이에서 스위칭된다.
값 디코더(42)의 출력은 값 멀티플렉서(60)에 제 1 멀티플렉서 입력(62)을 제공한다. 결합값 디코더(44)의 출력은 값 멀티플렉서(60)에 제 2 멀티플렉서 입력(64)을 제공한다. 값 멀티플렉서(60)의 출력은 라인(66)을 통해 가변길이 디코더(10)의 출력으로서 인가된다. 출력(66)은 라인(68)을 통해 수신된 제어 회로(46)로부터의 제어 신호에 응답하여 값 멀티플렉서(60)의 제 1 멀티플렉서 입력(62)과 제 2 멀티플렉서 입력(64) 사이에서 스위칭된다.
전술한 바와 같이, 제어 회로(46)는 디코딩 프로토콜에 따라서 현재 및 이전에 디코딩한 코드워드에 기초하여 주어진 클록 사이클에서 디코딩할 코드워드가 단일 코드워드인지 아니면 복수의 코드워드의 결합인지를 판단한다. 이 점에 있어서, 제어 회로(46)는 허프만 인코딩된 비트스트림에서 현재의 코드워드가 소정 이하인지, 즉 현재의 코드워드가 결합 디코딩하도록 선택된 코드워드 그룹 내에 포함되는지를 판단한다. 주어진 클록 사이클 동안에 단일 코드워드(즉, 상기 선택된 그룹 내에 해당하지 않는 경우)를 디코딩하는 경우에는, 제어 회로(46)는 라인(68)을 통해 인가된 제어 신호를 통해 길이 멀티플렉서(50)의 제 1 멀티플렉서 입력(52) 및 값 멀티플렉서(60)의 제 1 멀티플렉서 입력(62)을 선택한다, 단일 코드워드의 디코딩된 길이는 길이 멀티플렉서(50)로부터 출력되고, 단일 코드워드의 디코딩된 값은 출력 라인(66)을 통해 가변길이 디코더(10)로부터 출력된다. 주어진 클록 사이클 동안에 결합 코드워드를 디코딩하는 경우에는, 제어 회로(46)는 라인(68)을 통해 인가된 제어 신호를 통해 길이 멀티플렉서(50)의 제 2 멀티플렉서 입력(54) 및 값 멀티플렉서(60)의 제 2 멀티플렉서 입력(64)을 선택한다. 결합 코드워드의 결합 길이는 길이 멀티플렉서(50)로부터 출력되고, 코드워드 그룹의 값은 출력(66)에서 가변길이 디코더(10)로부터 출력된다.
가산기(58)의 제 1 입력(56)은 가산기(58)와 레지스터(72)에 의해 사용되어 라인(36)을 통해 원형 시프터(30)의 시프트 입력(35)으로 인가된 워드 포인터를 갱신한다. 워드 포인터는 또한 가산기(58)의 제 2 입력이다. 라인(36)을 통해 인가된 워드 포인터는 디코딩 윈도우(34)의 좌측 에지의 현재 위치를 나타낸다. 가산기(58)는 워드 포인터의 값을 마지막으로 디코딩된 코드워드(또는 코드워드 결합)의 길이(또는 결합 길이)에 가산한다. 라인(74)를 통해 인가되는 루프 합(loop sum) 결과는, 다음 클록 사이클에서 디코딩 윈도우(34)를 사용가능한 입력 비트의 병렬 시퀀스 상에서 시프트하여 디코딩 윈도우(34)의 좌측 에지가 디코딩할 다음 코드워드를 형성하는 비트 시퀀스에서 시작하도록 만드는 데에 사용할 워드 포인터의 갱신된 값을 나타낸다. 라인(74)을 통해 인가된 루프합은 레지스터(72)에 저장된다. 레지스터(72)의 출력은 갱신된(현재의) 워드 포인터로서 라인(36)을 통해 원형 시프터(30)의 시프트 입력(35)에 연결되고, 이로써 디코딩 윈도우(34)를 다음에 디코딩할 코드워드로 시프트한다. 새로운 코드워드가 디코딩됨에 따라, 디코딩 윈도우(34)의 위치는 매 클록 사이클마다 사용가능한 입력 비트 시퀀스에서 시프트된다.
본 실시예에서, 선택된 그룹 내의 코드워드는 쌍(pair)으로 결합된다. 다만, 이는 본 발명을 제한하지는 않는다. 일반적으로, M개의 기호가 비트길이가 소정의 N비트 이하인 선택된 코드워드 그룹에 포함된 경우에는, M개 기호의 모든 가능한 결합에 대하여 결합 조사 테이블에 추가적인 엔트리가 포함된다. 따라서, 허프만 테이블에 M2개의 엔트리가 추가적으로 포함된다. 상기 N이 커질수록, M도 커진다. M이 커짐에 따라서, 결합 길이 디코더(40) 및 결합값 디코더(44)의 조사 테이블에 추가적인 엔트리(디코딩 결합)가 필요하게 된다. 상기 N이 커질수록, M도 커지게 된다. 다만, 가변길이 디코더의 속도는 N이 증가함에 따라 빨라지는데, 이는 클록 사이클당 평균적으로 더 많은 코드워드가 프로세싱되기 때문이다.
허프만 인코딩된 비트스트림에서 선택된 코드워드 그룹을 프로세싱하는 데 있어서 병렬 방식을 적용함으로써, 본 발명의 가변길이 디코더(10)는 허프만 인코딩된 비트스트림의 소형 코드워드의 프로세싱을 가속할 수 있다. 입력 비트스트림(20)에서 소형 코드워드가 많이 발생하게 되면, 특정 픽처에 대해 최대 코드워드(기호) 처리속도가 증가하게 되고, 이로써 가변길이 디코더(10)가 필요로 하는 클록의 주파수가 증가하게 된다. 종래의 허프만 조사 테이블에 엔트리를 추가적으로 더해줌으로써, 복수의 소형 코드워드를 한 클록 사이클 동안에 프로세싱하는 것이 가능해진다. 소형 코드워드를 함께 프로세싱함으로써, 필요한 클록 주파수도 낮아지고 데이터 처리량도 증가하게 된다.
예시적으로, 본 발명을 MPEG-2 메인 프로파일, 고레벨 HDTV 디코더에 적용하였다. 이러한 응용에서, 지원가능한 최대 수평 해상도(H)는 1920 픽셀이고 지원가능한 최대 수직 해상도(V)는 1080 픽셀이다. 비계수 데이터 오버헤드(OVHD)는 0.05이다. 이러한 정보를 사용하여, 픽처당 프로세싱 가능한 기호(즉, 코드워드)의 최대 개수(MNSP)는 다음의 수학식
[수학식 1]
MNSP = 1.5 * H * V / (1-OVHD) = 3,274,105 (기호)
에 따라 계산한다.
상기 수학식 1에서, 기호 개수에 포함된 색채 정보를 고려하여 샘플의 전체개수에 1.5를 곱연산하였다. 오버헤드, 즉 헤더 정보를 고려하여 MNSP를 (1-OVHD)로 나누었다. 입력 비트스트림(20)에서 테이터의 압축률이 낮은 경우에는, 기호의 개수가 샘플의 개수에 근접하거나 오히려 이를 초과할 수도 있다.
극단적인 경우에, 프로세싱할 최대 픽처는 레이트 버퍼(도시되지 않음)의 전체 사이즈를 차지한다. 비트의 최소 평균 기호길이(LMIN)는 레이트 버퍼(도시되지 않음)의 사이즈(B)와 MNSP의 함수이다. MPEG-2 메인 프로파일, 고레벨 HDTV 디코더에 있어서, 레이트 버퍼의 사이즈(B)는 9,781,248 기호이다. 따라서, LMIN은 다음의 수학식
[수학식 2]
LMIN = B/MNSP = (9,781,248)/(3,274,105) = 2.99 (비트/기호)
에 따라 계산할 수 있다.
가변길이 디코더의 최대 기호 처리속도(PSR)는 이 극단적인 경우에 매초당 프로세싱해야 하는 최대 기호 개수에 해당한다. PSR은 NMSP, 및 매초당 처리하는 픽처의 개수를 특정하는 프레임율(F)의 함수이다. MPEG-2 응용에서, F는 30(픽처/초)이다. 따라서, PSR은 다음의 수학식
[수학식 3]
PSR = MNSP * F = (3,274,105) * (30) = 98,223,150 (기호/초)
에 따라 계산할 수 있다.
Sun 등의 미합중국 특허 제 5,173,695호에 개시된 가변길이 디코더는 PSR보다 높은 클록 주파수에서 동작할 수 있어야 한다. 그렇지 않은 경우에는, 가변길이 디코더는 픽처 디스플레이 시간동안에 전체 픽처를 디코딩하지 못할 수도 있다. 현재의 기술 상에서는 98MHz 이상의 클록 주파수를 얻는 것은 어렵다.
본 발명은 비트길이가 가장 짧은 이산 코사인 변환(DCT) 계수의 소그룹에 대하여 병렬 방식을 선택적으로 적용함으로써 MPEG-2 메인 프로파일, 고레벨 HDTV 디코더에서의 높은 PSR로 인한 문제를 해결한다. 본 발명의 디코더(10)는 높은 LMIN을 보장하는데, 이는 PSR을 낮춘다.
DCT 계수용 허프만 조사 테이블은 발생확률이 높은 기호에서 시작한다. 발생 확률이 가장 높은 기호는 그 비트길이가 가장 짧다. 허프만 조사 테이블의 시작 부분에서는, 분기 가능성의 회수가 제한됨에 따라 코드워드의 길이가 급격히 증가한다. 따라서, 소정의 비트길이 N이 작은 경우에는 동일한 길이를 갖는 코드워드의 개수가 대단히 제한되고, 따라서 N을 작게 유지한다면 비트길이가 N이하인 기호의 개수는 많을 수가 없다.
허프만 조사 테이블의 시작 부분에서 M개의 기호로 구성된 기호 그룹 내의 각 코드워드 또는 기호의 길이가 상기 소정의 비트길이 N을 초과하지 않는 경우에는, 사기 M개의 기호는 동일한 클록 사이클에서 같은 그룹내의 다른 기호들과 함께 결합 처리된다. 결합 기호쌍의 전체 개수가 M2으로 제한되어 있으므로, 상기 결합 기호쌍은 허프만 조사 테이블에 신규 엔트리로서 첨가된다. 추가 엔트리의 개수는 N에 따라 스케일링된다. N이 작을 경우에는 M도 상대적으로 작다.
통계적으로, 본 발명에 개시된 바와 같이 허프만 조사 테이블에 추가 엔트리를 첨가함으로써 가변길이 디코더의 성능을 현저히 증가시킬 수 있는데, 이는 모든 고확률 계수(비트길이가 작은 코드워드)에 대한 처리량을 두 배로 만들 수 있기 때문이다.
MPEG-2에서, 최소의 DCT 계수는 그 길이가 2비트이다. 허프만 조사 테이블은 다음과 같이 2비트 이상의 길이를 갖는 코드워드 엔트리를 갖는다 ; 2, 3, 4, 5, ..... , N, N+1, N+2, N+3, ...... 비트 길이가 N이하인 DCT 계수로 구성되는 M개의 기호를 서로 그룹화한다. 상기 그룹에서 어떠한 결합도 98,223,150 (코드워드/초) 만큼 높은 PSR을 만들지는 못한다. 전체 픽처에 대하여 비트길이가 2비트인 코드워드로만 코드워드 결합을 구성하는 것은 최소 평균 비트길이가 2.99 비트 이상인 것을 감안할 때 불가능하다. 비트길이가 3비트인 코드워드로만 이루어진 코드워드 결합에 대하여 PSR이 가장 많이 감소하는데, 이는 비트길이가 3비트인 모든 코드워드들이 쌍으로 결합되어 두 배의 처리량을 나타낼 것이기 때문이다. M개의 기호들의 그룹 내의 모든 다른 결합들은 최소 평균 비트길이(LMIN)를 증가시킬 것이고, 이는 MNSP를 감소시키며, 따라서 PSR은 감소하고 클록 사이클당 데이터 처리량은 증가하게 된다.
이 실시예에서 최소 비트길이를 이루는 결합은 그룹 M의 최단 기호와 다음 그룹의 최단 기호의 결합이다. 상기 다음 그룹은 비트길이가 N+1, N+2,........ 인 기호로 구성된 그룹을 포함한다. 그룹 M의 최단 기호와 다음 그룹의 최단 기호만을 결합함으로써, LMIN의 최소값, 따라서 PSR이 가장 작게 감소하는 결과를 얻을 수 있다. 예를 들어, 입력 비트스트림(20)에서 코드워드의 길이가 시퀀스 2, N+1, 2, N+1, 2, N+1, ......... 와 같이 나타나는 경우에는, 기호당 LMIN은 다음의 수학식
[수학식 4]
LMIN = (2 + N + 1)/2
에 의해 계산할 수 있다.
상기 수학식 4에서, 비트길이가 2와 (N+1)인 기호는 2클록 사이클에 프로세싱된다. 따라서, 1클록 사이클당 LMIN을 얻기 위해서는 합 (2+N+1)을 2로 나누어야 한다.
레이트 버퍼에 맞을 이러한 기호의 최대 개수, 즉 MNSP는 다음의 수학식
[수학식 5]
MNSP = B/LMIN = 2 * B/ (2 + N + 1)
에 의해 계산할 수 있다.
이 픽처를 최대 처리량으로 프로세싱하기 위해 필요한 최소 클록 주파수(즉, PSR)는 다음의 수학식
[수학식 6]
PSR = 클록 주파수 = (2B / (2 + N + 1)) * F
에 의해 계산할 수 있다.
실용적인 관점에서 기술하기 위해, MPEG-2 메인 프로파일, 고레벨 HDTV 디코더에서 N=6, N=5, N=4, F=30(픽처/초), B=9,781,248에 대하여 PSR을 계산한다. 전술한 바와 같이, Sun 등의 특허에 개시된 것과 같은 종래의 가변길이 디코더는 약 98.223MHz의 클록 주파수를 필요로 한다. N=6에 대하여 본 발명의 가변길이 디코더에서 필요한 클록 주파수는 65.208MHz로서 약 33.61%가 감소되었다. N=5에 대하여 본 발명의 가변길이 디코더에서 필요한 클록 주파수는 73.359MHz로서 약 25.31%가 감소되었다. N=4에 대하여 본 발명의 가변길이 디코더에서 필요한 클록 주파수는 83.839MHz로서 약 14.64%가 감소되었다.
앞의 예에서는, 최고확률의 가속 결합(the most probable accelerated combinations)이 발생하지 않았다고 가정하였고, 이는 최악의 픽처인 경우에 해당한다. 통계적으로, 본 발명의 가변길이 디코더(10)를 사용하였을 때의 성능상의 실제 이득은 이보다는 훨씬 높다. 프로세싱 클록 주파수를 이와 같이 현저히 감소시킴으로써 본 발명의 개시된 바에 따라 구성된 가변길이 디코더를 VLSI로 구현하는 것이 실현가능을 현저히 높일 수 있다.
본 명세서의 기재 사항은 특정된 내용을 많이 포함하고 있지만, 이는 본 발명의 범위를 제한하는 것이 아니라 단지 본 발명의 바람직한 실시예를 나타내는 것에 불과하다. 예를 들어, 함께 심사중인 M. Barhmutsky 등의 특허출원 원핫 가변길이 디코더에 개시된 가변길이 디코더도 본 발명의 개시된 내용을 사용함으로써 그 성능을 현저히 향상시킬 수 있다. 또한, DCT 계수만이 아니라 여러 유형의 코드워드를 결합함으로써 훌륭한 결과를 얻을 수 있다. 예를 들어, 움직임 벡터를 나타내는 코드워드를 본 발명의 내용에 맞게 결합할 수 있다.
본 명세서에는 본 발명의 바람직한 실시예를 상세히 기술하였지만, 본 기술분야의 지식을 갖는 자가 본 발명의 기본 개념 내에서 생각해 내는 여러 가지 변경 및 수정은 첨부한 특허 청구의 범위에 의해 정해지는 본 발명의 본질 및 범위 내에 해당된다.
Claims (14)
- 인코딩된 비트스트림을 디코딩하기 위한 가변길이 디코더(variable length decoder)에 있어서,상기 입력 비트스트림을 수신하고, 디코딩할 하나 이상의 코드워드를 갖는 비트 시퀀스를 포함하는 디코딩 윈도우(decoding window)를 출력에 제공하기 위한 입력 수단 ;제어 신호의 제 1 값에 응답하여 상기 입력 수단으로부터 수신된 복수의 코드워드의 결합의 결합 길이를 결정하고, 상기 결정된 결합 길이를 나타내는 결합 길이 신호를 발생시키고, 상기 제어 신호의 제 2 값에 응답하여 상기 입력 수단으로부터 수신된 개개의 코드워드의 길이를 결정하며, 그리고 상기 개개의 코드워드의 상기 결정된 길이를 나타내는 개별 워드길이 신호를 발생시키기 위한 코드워드 길이 디코딩 수단 ;상기 코드워드 길이 디코딩 수단으로부터 상기 결합 길이 신호 또는 상기 개별 워드길이 신호를 수신하고, 이에 응답하여 상기 디코딩 윈도우를 시프트하여 하나이상의 디코딩할 코드워드를 추가적으로 포함하는 새로운 비트 시퀀스를 상기 입력 수단의 상기 출력에 제공하기 위한 계산 루프 수단(computation loop means) ;상기 제어 신호의 상기 제 1 값에 응답하여 상기 입력 수단에 의해 제공되는 복수의 코드워드의 상기 결합의 값을 디코딩하고, 그리고 상기 제어 신호의 상기 제 2 값에 응답하여 상기 개별 코드워드의 값을 디코딩하기 위한 코드워드값 디코딩 수단 ; 및상기 제어 신호를 발생시키고 디코딩 프로토콜에 따라 상기 가변길이 디코더의 동작을 제어하기 위한 제어 수단 ; 을 포함하는 것을 특징으로 하는 디코더.
- 제 1 항에 있어서, 상기 코드워드 길이 계산 수단은 상기 입력 수단에서 수신한 복수의 코드워드의 상기 결합의 결합 길이를 결정하기 위한 결합 코드워드 길이 디코더, 및 상기 입력 수단에서 수신한 상기 개개의 코드워드의 길이를 결정하기 위한 개별 워드길이 디코더를 포함하는 것을 특징으로 하는 디코더.
- 제 2 항에 있어서, 상기 코드워드 결합의 상기 복수의 코드워드는 그 길이가 소정 이하인 상기 입력 비트스트림에서 선택된 코드워드 그룹의 일부분인 것을 특징으로 하는 디코더.
- 제 3 항에 있어서, 상기 선택된 코드워드 그룹에서 모든 가능한 코드워드 결합의 결합 길이가 상기 결합 워드길이 디코더의 조사 테이블에 엔트리(entry)로서 저장되는 것을 특징으로 하는 디코더.
- 제 4 항에 있어서, 상기 코드워드값 디코딩 수단은 상기 개개의 코드워드의 값을 디코딩하기 위한 개별 워드값 디코더, 및 상기 복수의 코드워드의 결합의 값을 디코딩하기 위한 결합값 디코더를 포함하는 것을 특징으로 하는 디코더.
- 제 5 항에 있어서, 상기 선택된 코드워드 그룹에서 모든 가능한 코드워드 결합의 결합값이 상기 결합 워드값 디코더의 조사 테이블에 엔트리로서 저장되는 것을 특징으로 하는 디코더.
- 제 6 항에 있어서, 상기 계산 루프 수단은,제 1 입력이 상기 개별 워드길이 신호에 연결되어 있고 제 2 입력이 상기 결합 워드길이 신호에 연결되어 있는 멀티플렉서로서, 상기 제어 신호의 제 1 값에 응답하여 상기 멀티플렉서의 출력으로서 상기 개별 워드길이 신호가 선택되고 상기 제어 신호의 제 2 값에 응답하여 상기 멀티플렉서의 출력으로서 상기 결합 워드길이 신호가 선택되는 멀티플렉서 및 ;제 1 입력이 상기 멀티플렉서의 출력에 연결된 가산기로서 제 2 입력이 상기 가산기의 출력에 연결되어 있으며 상기 입력 수단의 상기 디코딩 윈도우를 시프트하기 위한 워드 포인터를 포함하는 가산기 ; 를 포함하는 것을 특징으로 하는 디코더.
- 제 7 항에 있어서, 상기 가산기는 오버플로우가 발생하는 경우에 상기 입력 비트스트림으로부터 새로운 비트 시퀀스가 상기 입력 수단으로 로딩되도록 요구하기 위한 캐리 출력(carry output)을 발생시키는 것을 특징으로 하는 디코더.
- 제 8 항에 있어서, 상기 제어 수단이 상기 디코딩 프로토콜에 따라 상기 가변길이 디코더의 동작을 제어하기 위한 상태 머신(state machine) 및 이에 결합된 논리 회로를 포함하는 것을 특징으로 하는 디코더.
- 제 9 항에 있어서, 상기 제어 수단은 상기 디코딩 프로토콜에 따라서 이전과 현재에(previously and currently) 디코딩한 코드워드에 기초하여 상기 코드워드 길이 디코딩 수단과 상기 코드워드값 디코딩 수단에 의해 프로세싱할 다음 코드워드의 유형과 개수를 결정하고, 상기 결정에 응답하여 상기 제어 신호를 발생시키며, 그리고 상기 결정에 응답하여 상기 코드워드 길이 디코딩 수단 및 상기 코드워드값 디코딩 수단에서 적절한 조사 테이블을 선택하기 위한 추가적인 제어 신호를 발생시키는 것을 특징으로 하는 디코더.
- 입력 비트스트림을 적응적으로 가속하면서(with adaptive acceleration) 프로세싱하기 위한 방법에 있어서,상기 입력 비트스트림을 수신하고 디코딩할 하나이상의 코드워드를 갖는 비트 시퀀스를 포함하는 디코딩 윈도우를 제공하는 단계 ;제어 신호의 제 1 값에 응답하여 상기 디코딩 윈도우의 복수의 코드워드의 결합의 결합 길이를 결정하고, 상기 결정된 결합 길이를 나타내는 결합 길이 신호를 발생시키고, 상기 제어 신호의 제 2 값에 응답하여 상기 디코딩 윈도우의 개개의 코드워드의 길이를 결정하며, 그리고 상기 개개의 코드워드의 상기 결정된 길이를 나타내는 개별 워드길이 신호를 발생시키는 단계 ;상기 결합 길이 신호 또는 상기 개별 워드길이 신호에 응답하여 상기 디코딩 윈도우를 시프트하여 하나이상의 디코딩할 코드워드를 추가적으로 포함하는 새로운 비트 시퀀스를 상기 입력 수단의 상기 출력에 제공하는 단계 ; 및상기 제어 신호의 상기 제 1 값에 응답하여 상기 디코딩 윈도우의 복수의 코드워드의 상기 결합의 값을 디코딩하고, 그리고 상기 제어 신호의 상기 제 2 값에 응답하여 상기 개별 코드워드의 값을 디코딩하는 단계 ; 를 포함하는 것을 특징으로 하는 디코더.
- 제 11 항에 있어서, 상기 코드워드 결합의 상기 복수의 코드워드는 그 길이가 소정 이하인 상기 입력 비트스트림에서 선택된 코드워드 그룹의 일부분인 것을 특징으로 하는 방법.
- 제 12 항에 있어서, 상기 선택된 코드워드 그룹에서 모든 가능한 코드워드 결합의 결합 길이가 상기 결정 단계의 수행에 사용되는 결합 워드길이 디코더의 조사 테이블에 엔트리로서 저장되는 것을 특징으로 하는 방법.
- 제 13 항에 있어서, 상기 선택된 코드워드 그룹에서 모든 가능한 코드워드 결합의 결합값이 상기 결정단게의 수행에 사용되는 조사 테이블에 엔트리로서 저장되는 것을 특징으로 하는 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/580,407 US5650905A (en) | 1995-12-28 | 1995-12-28 | Variable length decoder with adaptive acceleration in processing of Huffman encoded bit streams |
US580,407 | 1995-12-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980702512A true KR19980702512A (ko) | 1998-07-15 |
KR100470251B1 KR100470251B1 (ko) | 2005-05-27 |
Family
ID=24320983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970705912A KR100470251B1 (ko) | 1995-12-28 | 1996-12-10 | 가변길이디코더 |
Country Status (6)
Country | Link |
---|---|
US (1) | US5650905A (ko) |
EP (1) | EP0812496B1 (ko) |
JP (1) | JPH11501489A (ko) |
KR (1) | KR100470251B1 (ko) |
DE (1) | DE69616036T2 (ko) |
WO (1) | WO1997024811A1 (ko) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835035A (en) * | 1995-12-28 | 1998-11-10 | Philips Electronics North America Corporation | High performance variable length decoder with two-word bit stream segmentation and related method |
US5808570A (en) * | 1996-06-28 | 1998-09-15 | Philips Electronics North America Corp. | Device and method for pair-match Huffman transcoding and high-performance variable length decoder with two-word bit stream segmentation which utilizes the same |
FR2757288B1 (fr) * | 1996-12-17 | 1999-02-26 | Sgs Thomson Microelectronics | Microprocesseur dedie au traitement de flux de bits dans un systeme de compression/decompression d'images animees |
US6011498A (en) * | 1996-12-20 | 2000-01-04 | Philips Electronics North America Corporation | Dual-speed variable length decoding architecture for MPEG-2 video data |
US5963260A (en) * | 1997-03-18 | 1999-10-05 | U.S. Philips Electronics North America Corporation | Macroblock-level partitioned HDTV video decoder and related method |
US5973627A (en) * | 1997-08-28 | 1999-10-26 | Philips Electronics North America Corporation | Variable length decoder with adaptive acceleration optimized by sub-grouping and cross-grouping the symbols having the highest probability of occurrence |
US6246347B1 (en) | 1997-10-27 | 2001-06-12 | Philips Electronics North America Corporation | Controller for a variable length decoder |
US5990812A (en) * | 1997-10-27 | 1999-11-23 | Philips Electronics North America Corporation | Universally programmable variable length decoder |
US6215424B1 (en) | 1998-12-16 | 2001-04-10 | Thomson Licensing S.A. | System for variable length codeword processing suitable for video and other applications |
AU754877B2 (en) * | 1998-12-28 | 2002-11-28 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Method and devices for coding or decoding an audio signal or bit stream |
US6411226B1 (en) * | 2001-01-16 | 2002-06-25 | Motorola, Inc. | Huffman decoder with reduced memory size |
EP1449116B1 (en) * | 2001-10-29 | 2013-06-05 | Ceva D.S.P. Ltd. | Method and apparatus for decompression of compressed data streams |
US6653955B1 (en) | 2002-05-09 | 2003-11-25 | Lsi Logic Corporation | Multi-symbol variable length code decoder |
KR100975062B1 (ko) * | 2003-12-27 | 2010-08-11 | 삼성전자주식회사 | 가변길이 부호화 장치 및 가변길이 부호화 방법 |
US6956511B2 (en) * | 2004-01-06 | 2005-10-18 | Sharp Laboratories Of America, Inc. | Multi-symbol/coefficient decode operation for Huffman codes |
US7256719B2 (en) * | 2005-03-23 | 2007-08-14 | International Business Machines Corporation | Digital data decompression implemented in a field programmable array device |
KR100667595B1 (ko) * | 2005-12-29 | 2007-01-11 | 삼성전자주식회사 | 가변 길이 디코더 |
CN101043625B (zh) * | 2006-03-23 | 2010-10-20 | 国际商业机器公司 | 用于高速解压缩数字数据的装置和方法 |
CN106533628B (zh) * | 2016-11-30 | 2019-10-18 | 郑州云海信息技术有限公司 | 一种哈夫曼并行解码方法及其装置 |
US9819359B1 (en) * | 2016-12-11 | 2017-11-14 | Microsoft Technology Licensing, Llc | Multi-symbol, multi-format, parallel symbol decoder for hardware decompression engines |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5173695A (en) * | 1990-06-29 | 1992-12-22 | Bell Communications Research, Inc. | High-speed flexible variable-length-code decoder |
US5055841A (en) * | 1991-02-01 | 1991-10-08 | Bell Communications Research, Inc. | High-speed feedforward variable word length decoder |
US5363097A (en) * | 1992-09-14 | 1994-11-08 | Industrial Technology Research Institute | Direct sequential-bit variable length decoder |
AU5632394A (en) * | 1993-03-05 | 1994-09-08 | Sony Corporation | Apparatus and method for reproducing a prediction-encoded video signal |
EP0631440A3 (en) * | 1993-06-23 | 1995-02-22 | Daewoo Electronics Co Ltd | Device for the parallel decoding of image signals encoded with variable length. |
JPH07107303A (ja) * | 1993-09-30 | 1995-04-21 | Nec Corp | ハフマン符号の復号化方法 |
KR970002483B1 (ko) * | 1993-11-29 | 1997-03-05 | 대우전자 주식회사 | 고속의 가변길이 복호화장치 |
KR0124191B1 (ko) * | 1994-01-18 | 1998-10-01 | 배순훈 | 가변길이 코드 디코딩장치 |
-
1995
- 1995-12-28 US US08/580,407 patent/US5650905A/en not_active Expired - Lifetime
-
1996
- 1996-12-10 EP EP96939277A patent/EP0812496B1/en not_active Expired - Lifetime
- 1996-12-10 JP JP9524146A patent/JPH11501489A/ja not_active Ceased
- 1996-12-10 KR KR1019970705912A patent/KR100470251B1/ko not_active IP Right Cessation
- 1996-12-10 DE DE69616036T patent/DE69616036T2/de not_active Expired - Fee Related
- 1996-12-10 WO PCT/IB1996/001404 patent/WO1997024811A1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
EP0812496A1 (en) | 1997-12-17 |
KR100470251B1 (ko) | 2005-05-27 |
US5650905A (en) | 1997-07-22 |
JPH11501489A (ja) | 1999-02-02 |
WO1997024811A1 (en) | 1997-07-10 |
DE69616036T2 (de) | 2002-06-20 |
EP0812496B1 (en) | 2001-10-17 |
DE69616036D1 (de) | 2001-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR19980702512A (ko) | 가변 길이 디코더 | |
US5325092A (en) | Huffman decoder architecture for high speed operation and reduced memory | |
KR100748485B1 (ko) | 가변 길이 코드워드 디코더 및 가변 길이 코드워드 디코딩 방법 | |
US5808570A (en) | Device and method for pair-match Huffman transcoding and high-performance variable length decoder with two-word bit stream segmentation which utilizes the same | |
US6043765A (en) | Method and apparatus for performing a parallel speculative Huffman decoding using both partial and full decoders | |
KR100462421B1 (ko) | 가변길이디코더 | |
US6011498A (en) | Dual-speed variable length decoding architecture for MPEG-2 video data | |
US5973627A (en) | Variable length decoder with adaptive acceleration optimized by sub-grouping and cross-grouping the symbols having the highest probability of occurrence | |
US5757295A (en) | Variable length decoder with enhanced throughput due to parallel processing of contiguous code words of identical type | |
US5835035A (en) | High performance variable length decoder with two-word bit stream segmentation and related method | |
JP3389391B2 (ja) | 可変長コードの符号化及び分割装置 | |
US6501398B2 (en) | Variable-length code decoder using barrel shifters and a look-up table | |
US5657016A (en) | Variable length decoder with one of N length indicator | |
JPH11512271A (ja) | 2語ビット流分節式高性能可変長復号器および関連復号方法 | |
JP2934603B2 (ja) | 可変長さコードの復号化方法及びその装置 | |
Park et al. | Area efficient fast Huffman decoder for multimedia applications | |
KR960011111B1 (ko) | 디지탈 영상신호의 복호화장치에 있어서의 가변길이 복호화기 | |
KR0125126B1 (ko) | 고속 가변길이부호 복호화 장치 | |
Bakhmutsky | Novel architectures for implementing very high throughput variable-length decoders in HDTV systems | |
JP2000209100A (ja) | デコ―ダ及びデコ―ド方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130111 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20140107 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20150105 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20160104 Year of fee payment: 12 |
|
EXPY | Expiration of term |