KR100188427B1 - 디지탈 통신시스템용 가변길이 코드워드디코더 및 그 디코딩 방법 - Google Patents

디지탈 통신시스템용 가변길이 코드워드디코더 및 그 디코딩 방법 Download PDF

Info

Publication number
KR100188427B1
KR100188427B1 KR1019930004646A KR930004646A KR100188427B1 KR 100188427 B1 KR100188427 B1 KR 100188427B1 KR 1019930004646 A KR1019930004646 A KR 1019930004646A KR 930004646 A KR930004646 A KR 930004646A KR 100188427 B1 KR100188427 B1 KR 100188427B1
Authority
KR
South Korea
Prior art keywords
codeword
length
data
bits
category
Prior art date
Application number
KR1019930004646A
Other languages
English (en)
Other versions
KR930020997A (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 KR930020997A publication Critical patent/KR930020997A/ko
Application granted granted Critical
Publication of KR100188427B1 publication Critical patent/KR100188427B1/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
    • 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
    • H03M7/425Conversion 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

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)
  • Image Processing (AREA)

Abstract

고품위 텔레비젼 인코더에 의해 제공된 DCT 변환계수와 같은 변환계수를 복구하기 위해 가변길이 코드워드를 디코딩하기 위한 장치(10)가 제공되고, 코드워드의 제1카테고리는 n비트 보다 더 크지 않은 길이를 갖추며, 제2카테고리는 n비트보다 더 큰 길이를 갖춘다. 그리고, 피드백 ROM(22)이 코드워드를 디코드하는데 이용되고, 제1카테고리로부터의 코드워드가 ROM(22)에서 룩업 테이블(80)을 직접 어드레싱함으로써 처리되며, 제2카테고리로부터의 코드워드가 ROM(22)을 통한 다중 통로를 이용해서 처리된다. 여기서 이전의 패스가 다음의 패스 동안 메모리를 어드레스하도록 피드백(90)되는 동안 데이터의 부분이 출력된다.

Description

디지털 통신시스템용 가변길이 코드워드 디코더 및 그 디코딩방법
제1도는 본 발명에 따른 가변길이(허프만(Huffman) 디코더를 부가한 HDTV 수신기의 블록도.
제2도는 제1도에 도시된 허프만 디코더의 상세한 블록도.
제3도는 제2도에 도시된 입력 배럴시프터와 버퍼 서브시스템의 상세한 블록도.
제4도는 코드워드의 비트길이가 22비트 보다 큰 경우에 사용되는 제1특정 코드워드(에스케이프 코드(escafe code))를 나타낸 도면.
제5도는 연속코드워드간의 실행길이가 제로일 경우에 사용되는 다른 에스케이프 포매트에 대한 도면.
제6도는 제2도의 디코더에 도시된 디코드 ROM의 상세블록도.
제7도는 제2도에 도시된 디코더의 마스터 제어상태 머신 서브시스템의 상세블록도.
제8도는 15의 실행길이와 16의 진폭을 갖춘 코드워드에 대해 비트에서의 각 코드워드의 길이를 설명하기 위한 매트리스.
제9도는 본 발명의 코드워드의 디코딩을 설명하기 위한 플로우챠트이다.
* 도면의 주요부분에 대한 부호의 설명
10 : 허프만 디코더 12 : 비디오 FIFO 레지스터
14 : 클록회로 16 : 동기화회로
18 : 역변환회로 20 : 입력 배럴시프터 및 버퍼
22 : 디코더 ROM 24 : 데이터 멀티플렉서
28 : 역양자화 배럴시프터 30 : 변환회로
31 : 라인 32 : 3대 1출력 멀티플렉서
36 : 마스터 제어상태 머신 38 : 출력논리
40 : 프리-페치회로 42 : 입력 래치
44 : 배럴시프터 46 : 상태머신 처리 및 ROM룩업회로
48 : 입력래치제어 50 : 래치
52 : 4비트 래치 54 : 가산기
56 : 터미널 58 : 입력단
60,70 : 에스케이프 코드 프리픽스 80 : 제1룩업 테이블
82 : 제2룩업 테이블 88 : 멀티플렉서
92 : 입력터미널 100 : 배럴시프터 출력포트
102 : 헤더상태머신 104 : 양자화논리 프로세서
106,108 : 픽셀 및 블록카운터 110 : 마스터 제어모듈
112 : 룩업논리 114 : 시프트 길이 논리
116 : 양자화 레벨지연논리 118 : 멀티플렉서 선택논리
120 : 에러논리 122 : 상태머신 출력제어논리
[산업상의 이용분야]
본 발명은 압축된 디지털 데이터의 복구에 관한 것으로, 특히 가변길이 코드워드를 디코딩하기 위한 장치에 관한 것이다.
[종래의 기술 및 그 문제점]
텔레비전신호는 통상적으로 특정 국가에 의해 채택된 다양한 기준에 따라 전송되는 바, 예컨대 미국은 NTSC 기준을 채택하고 있고, 대부분의 유럽국가는 PAL 이나 SECAM 기준을 채택하고 있다.
텔레비전신호의 디지털전송은 아날로그기술 보다 더욱 고품질의 비디오 및 음성을 전달할 수 있게 된다. 디지털전송 구성은 케이블 텔레비전에 대한 위성에 의한 방송 및/또는 가정 위성 텔레비전 수신기에 직접 전송되는 신호에 대해 특히 유용하다. 디지털 텔레비전 전송기 및 수신기 시스템은 오디오산업에서 아날로그 축음기 기록들을 대부분 대체한 디지털 콤팩트 디스크와 같은 존재하는 아날로그 시스템을 대체할 것으로 기대된다.
디지털 데이터의 실질적인 양은 소정의 디지털 텔레비전 시스템에서 전송되어야만 하는데, 특히 이는 HDTV가 제공되는 곳에서는 절실하다. 디지털 텔레비전 시스템에 있어서, 가입자는 비디오와 오디오 및 데이터를 제공하는 수신기/디스크램블러를 통해 디지털 데이터 스트림을 수신한다. 가장 효과적으로 이용 가능한 라디오주파수 스펙트럼을 이용하기 위해서는 전송되어질 데이터의 양을 최소화하도록 디지털 텔레비전신호를 압축하는 것이 유용하다.
텔레비전신호의 비디오부분은 이동화면과 함께 제공되는 비디오프레임의 연속으로 구성된다. 디지털 텔레비전시스템에 있어서 비디오 프레임의 각 라인은 픽셀로 일컬어지는 디지털 데이터의 연속으로 정의되고, 대부분의 데이터 양은 텔레비전신호의 각 비디오 프레임을 정의하기 위해 요구된다. 예컨대, 7.4메가비트의 데이터가 NTSC의 해상에 있어서 하나의 비디오 프레임을 제공하는데 요구되는 바, 이는 각 기본 색인 적, 녹, 청에 대한 강도값인 8비트와 함께 480라인 디스플레이에 대해 640픽셀이 사용되는 것을 가정한다. 특히, HDTV 적용에 있어서 이와 같은 데이터의 양을 다루기 위해 데이터는 압축되어져야만 한다.
비디오 압축기술은 통상의 통신채널을 통해 디지털 비디오신호를 효과적으로 전송할 수 있게 되고, 이러한 기술은 비디오신호에서의 중요 정보의 더욱 효과적 표현을 추출하기 위해 인접 픽셀간의 상관관계를 이용하는 압축알고리즘을 이용한다. 가장 강력한 압축시스템은 공간 상관관계를 이용할 뿐만 아니라 데이터를 더욱 콤팩트하게 하도록 인접 프레임간의 유사성을 이용한다. 이와 같은 시스템에서는 실제 프레임과 이 실제 프레임의 예측간의 차이만을 전송하기 위해 차동 인코딩이 사용되고, 예측은 동일 비디오 시퀀스의 이전의 프레임으로부터 추출된 정보를 기초로 한다. 이와 같은 시스템의 예는 미합중국 특허 제5,068,724호인 Adaptive Motion Compensation for Digital Television와, 특허 제5,057,916호인 Method and Apparatus for Refreshing Motion Compenasted Sequential Video Images에서 찾을 수 있다.
비디오신호의 모션 추정은 현재의 휘도블록과 특정 트래킹영역내의 이전의 프레임에서의 휘도블록을 비교함으로써 제공된다. 현재의 블록과 비교되는 최소 전체 절대 변화를 갖는 이전의 프레임 휘도블록이 선택되고, 선택된 블록의 위치는 모션벡터로 불리워지는데, 이는 현재 블록의 예측값을 얻기 위해 이용된다. 부가적인 코딩효율을 위해 모션벡터는 디코더에 사이드 정보로서 전송하기 위해 가변길이 인코더에 의해 차동적으로 인코드되어 처리될 수 있게 된다. 필요한 예측값을 유연하게 출력하기 위해 DPCM루프에 저역통과필터가 제공된다. 다양한 종류의 랜덤 노이즈로부터 코드된 비트스트림을 방지하기 위해 포워드 에러 수정구조가 이용될 수 있다.
용장정보를 이동시킴으로써 데이터비를 압축하기 위한 2개의 주 카테고리가 존재하는 바, 이는 소오스코딩과 엔트로피코딩이다. 여기서, 소오스코딩은 소오스재료를 취급하여 손실되는 결과를 산출한다. 따라서, 소오스코딩이 이용될 경우 화면품질이 저하된다. 소오스코딩을 실행함에 있어서, 프레임내 코딩이나 프레임간 코딩이 이용될 수 있는데, 프레임내 코딩은 제1화면과 장면의 변화 후 나중의 화면에 대해 이용된다. 그리고, 프레임간 코딩은 이동 대상을 포함하는 화면의 시퀀스를 위해 이용된다. 한편, 엔트로피 코딩은 신호의 정적특성을 이용함으로써 압축을 달성하는데, 이론적으로 무손실이다.
소오스코딩과 엔트로피코딩의 양쪽에 이용되는 코딩 알고리즘은 CCITT Specialist Group 에 의해 제안되어졌다. 예컨대, Description of Reference Model 8(RM8),Doc.No.525,CCITT SG XV Working Party XV-4, Specialist Group on Coding for Visual Telephony, June,1989를 참조한다. CCITT안에 있어서, 모션 추정을 구비한 하이브리드 변환/차동 펄스 코드 변조(DPCM)가 소오스코딩을 위해 이용되고, DPCM은 프레임내 코딩을 위해 동작되지 않으며, 엔트로피코딩을 위해 1차원 및 2차원 가변길이 코딩이 이용된다.
N. Ahmed, T. Natarajan, 및 K.R.Rao의 Discrete Cosine Transform, IEEE Trans. Computer, Vol. C-23, pp.90-93, Jan. 1974에 의해 설명된 이산 코사인 변환(DCT)이 메크로 블록과 서크 블록으로 분할된 입력데이터를 변환계수로 변환하기 위해 CCITT 시스템에서 사용되는 바, DCT변환은 현재 프레임 데이터의 블록과 예측된 프레임의 대응블록(이전의 프레임 정보로부터 얻어짐)간의 차에 따라 수행된다. 비디오블록이 모션이나 예측값이 정확한 것이 없는 것을 포함하면, DCT에 대한 입력은 널(null) 메트릭스로 된다. 화면을 천천히 움직이기 위해 DCT에 대한 입력매트릭스는 많은 제로를 포함하고, DCT의 출력은 2차원 주파수 영역에서의 에너지를 표현하는 계수의 매트릭스이다. 일반적으로, 대부분의 에너지는 저주파영역인 매트릭스의 상부 왼쪽 구석에 집중된다. 계수가 지그재그방법으로 주사되면, 결과적인 시퀀스는 특히 시퀀스의 종단을 향해 제로의 긴 문자열을 포한한다. 이와 같은 압축알고리즘의 주요한 목적의 하나는 효과적인 코딩을 위해 제로를 발생시킴과 더불어 함께 묶기 위한 것이다.
또한, 효율을 유지하기 위해 양자화 이전에 가변 드레숄드가 계수시퀀스에 인가되는 데, 이는 제로의 열이 검출될 경우 DCT드레숄드를 증가시킴으로써 달성된다. 그리고, DCT계수는 드레숄드 보다 낮거나 동일하면 제로로 세트된다.
동일한 양자화기가 변환 후에 사용되는 바, 양자화기의 스텝 크기는 버퍼의 점유에 따른 지시된 전송율에 의해 조정될 수 있다. 전송율이 한계에 도달할 경우, 스텝 크기가 증가되어 적은 정보가 코드되어지는데 필요로 된다. 이와 같은 경우가 발생할 경우, 저하된 화면이 야기된다. 반대로, 전송율이 한계 이하일 경우 스텝 크기를 감소시킴으로써 화면품질이 개선되게 된다.
코딩효율이 더욱 증가시키기 위해 2차원 가변길이코딩 구조가 양자화된 DCT계수의 시퀀스에 대해 이용된다. 주어진 시퀀스에 있어서, 비제로 계수(진폭)의 값이 1차원으로 정의되고, 비제로계수(실행길이)를 앞서는 제로의 수는 다른 차원으로 정의된다. 여기서, 진폭과 실행길이의 조합은 사건(event)으로 정의한다.
더 짧은 길이 코드는 더욱 자주 발생되는 사건으로 할당하고, EOB(end of block)마커가 시퀀스에 더 이상의 비제로 계수가 없다는 것을 지시하기 위해 제공된다.
코드는 계수값은 블록 정형화와 양자화정보 및 차동 모션벡터등과 같은 다양한 사이드정보와 함께 멀티프렉스되고, 사이드정보의 일부는 가변길이 코드로 되며, 결과적인 비트스트림이 전송을 위해 버퍼에 보내진다.
수신기에서는 인코더의 역동작을 수행함과 더불어 변환계수를 복구하기 위해 가변길이 디코더가 필요로 된다. 디코더의 구조가 일반적으로 인코더의 구조 보다 더 간단함에도 불구하고, 종래의 디코더는 수신된 코드 워드를 전송기에서 추출되는 변환계수로 되돌려 변환시키는데 요구되는 코드북을 저장하기 위한 메모리를 실질적 양을 요구한다.
가변길이 코드는 코드워드가 소정의 다른 코드워드의 프리픽스가 없는 것으로 제안되는데, 이는 도입 데이터 스트림의 일정한 디코드성능을 보증한다. 다른 것 보다 더욱 자주 발생하는 사건이 가장 짧은 코드워드를 할당할 경우 압축이 달성된다. 제안된 CCITT 비디오 코딩 알고리즘에 있어서 사건 진폭의 디멘죤은 256이고, 실행길이는 64의 디멘죤을 갖는다. 이와 같은 시스템의 직통 실장은 16,000 엔트리 이상을 갖춘 가변길이 코드 테이블을 요구한다. 그러나, 엔트리의 99%이상이 만족스럽지 않기 때문에, 이는 14비트 고정 길이 필드에 따른 6비트 에스케이프 코드에 의해 표현될 수 있는데, 여기서 6비트는 실행길이를 위해 제공되고, 8비트는 진폭을 위해 제공된다. 결과적인 가변길이 코드테이블은 처리하기에 더욱 용이한 128엔트리만을 포함한다. 사실상, 이러한 가변길이 코드의 코딩과 디코딩은 ROM에 저장된 룩업 테이블을 이용하여 달성할 수 있다.
이와 같은 구조에서의 디코딩의 디코드될 수 있기 전에 가변길이 코드의 길이가 결정되어야만 한다는 사실로 인해 상당히 복잡하다. 가변길이 코드 디코딩을 위한 다양한 기술이 이전에 제안되어 졌었다. 예컨대, 명칭이 Method and Apparatus for Decoding Variable-Length Codes Having Length-Indicating PrefiXes,인 Cocke 등에 의한 미합중국 특허 제3,701,111호와, High-Speed Programmable ICs for Decoding of Variabld-Length Codes, 및 Applications of Digital Image Processing Ⅶ, Andrew Tescher, Ed, Proc. SPIE Vol. 1153, Aug. 1989를 참고한다. 이후에 배럴시프터 및 프로그래머블 로직 어레이(PLA)나 가변길이 디코더의 VLSI실행을 위한 콘텐트 어드레스 가능 메모리/랜덤 억세스 메모리(CAM/RAM)을 채용하는 병렬 근접을 제안한다.
종래에 제안된 디코더는 소프트웨어 시뮬레이션이나 실시간 디지털 비디오 신장의 고속특성에 기인한 이산적 하드웨어 구성요소의 큰 양을 이용해서만 실현할 수 있게 된다.
[발명의 목적]
본 발명은 상기한 점을 감안해서 발명된 것으로, 실시간 비디오율에서 코드워드를 처리하기 위한 능력을 갖춘 가변길이 디코더를 제공하고, 더욱이 집적회로 형태로 용이하게 실행할 수 있는 디코더를 제공한다. 또, 작은 양의 전력만을 소비하는 디코더를 제공함에 유용하다. 특히, 이와 같은 디코더는 저가이면서 고품위 텔레비전 수신기와 같은 소비자 이용을 위해 유용하다.
[발명의 구성 및 작용]
상기 목적을 달성하기 위한 본 발명은, 변환계수를 복구하기 위해 가변길이 코드워드를 디코딩하기 위한 장치를 제공하는 바, 코드워드가 소정의 다른 코드워드의 프리픽스인 것이 없는 특성을 갖추고, 상기 코드워드의 제1카테고리가 n 비트 보다 더 크지 않은 길이를 갖추면서 상기 코드워드의 제2카테고리가 n 비트 보다 더 큰 길이를 갖추어 처리된다.
상기 장치는 n비트 어드레스포트와, 다수의 제1 및 제2어드레스 가능 메모리 위치를 갖추는데, 상기 제1어드레스 가능 메모리 위치는 진폭과 실행길이 및 다른 코드워드를 위한 제1제어 데이터를 포함하고, 제2어드레스 가능 메모리 위치는 제2카테고리로부터 코드워드의 부분을 위한 피드백 및 제2제어데이터를 포함한다.
또, 진폭과 실행길이 및 제1제어데이터를 출력하도록 상기 메모리를 어드레싱하기 위한 상기 어드레스포트에 코드워드를 입력함으로써 상기 제1카테고리로부터의 코드워드를 디코딩하기 위한 수단이 제공되고, 피드백 및 제2제어데이터를 출력하도록 상기 메모리를 어드레싱하기 위해 상기 어드레스포트에 제2카테고리 코드워드의 제1 n비트 부분을 입력시킴으로써 제2카테고리로부터의 코드워드를 디코딩하기 위한 수단이 제공된다. 또한, 제2카테고리 코드워드의 다음의 부분이 제2제어데이터에 응답하여 어드레스포트에 주기적으로 입력된다. 제2카테고리의 코드워드의 다음의 부분과 피드백 데이터가 함께 메모리를 어드레싱하기 위해 n비트 보다 더 크지 않은 어드레스를 함께 제공한다. 이러한 어드레스에 응답하여 메모리는 적어도 하나의 부가적 부분이 상기 제2카테고리 코드워드에 남아있을 때 다음의 입력 사이클에 사용하기 위한 피드백 및 제2제어데이터를 출력하고, 또한 메모리는 부가적 부분이 남아있지 않을 때 상기 제2카테고리 코드워드를 위한 진폭과 실행길이 및 제1제어데이터를 출력한다. 또한, 진폭과 실행길이 및 제1제어데이터의 출력으로 귀결되지 않는 상기 제2카테고리 코드워드의 각 부분을 위한 실행계수를 출력하기 위해 상기 제2제어데이터에 응답하는 수단이 제공된다.
본 발명에 따른 장치는 (ⅰ) 진폭계수를 발생시키기 위한 진폭과 실행길이 및 제1제어데이터와, (ⅱ)실행계수를 발생시키기 위한 피드백과 제2제어데이터가 상기 메모리수단으로부터 출력되는 것 중 적어도 어느 하나의 동안에 연속적인 클록 사이클을 확립하기 위해 상기 메모리수단과 상기 제1 및 제2카테고리 코드워드 디코딩수단에 클록신호를 제공하도록 결합된 클록수단을 더 갖춘다. 그리고, 실행계수는 예컨대 실행길이에 의해 특정된 길이를 갖춘 제로 계수의 시퀀스에 포함된 제로를 지시하는 데이터를 구비할 수 있다. 클록수단의 준비는 모든 클록 사이클에 대한 가변길이 코드워드로부터 발생되어지는 하나의 계수를 인에이블한다.
상기 실시예에 있어서, 상기 제2카테고리 코드워드 디코딩수단이, 상기 입력에 코드워드 데이터를 입력하는 대신에 소정의 다수의 어드레스포트 입력에 제2카테고리 코드워드에 대한 피드백 데이터를 입력하기 위해 상기 제2제어데이터에 응답하는 멀티플렉서수단으로 이루어지고, 다수의 나머지 어드레스포트 입력이 상기 제2카테고리 코드워드의 대응 부분을 수신한다. 상기 피드백 데이터는, 예컨대 n/2의 비트길이를 갖추고, 상기 제2카테고리 코드워드의 대응 부분이 n/2 보다 크지 않은 비트 길이를 갖춘다.
본 장치는 진폭과 실행길이 데이터가 상기 메모리수단내에 제공되지 않는 특정 경우의 코드워드를 검출하기 위한 수단과, 상기 특정 경우의 코드워드를 디코딩하기 위해 상기 검출수단에 응답하는 수단을 더 구비하는 바, 예컨대 특정 경우 코드워드는 코드워드와 관련된 실행길이가 없음을 지시하는 것을 제공할 수 있다. 또 다른 특정 경우 코드워드는 수신된 데이터가 디코드되지 않은 것을 지시할 수 있고, 직접 복구할 수 있다.
본 발명에 따른 실시예에 있어서, 상기 메모리수단이 실질적으로 2×2n과 동일한 저장 캐패시티를 갖추고 있는 가변길이 디코더를 제공한다. 또한, 상기 제2카테고리 코드워드의 상기 다음의 부분이 코드워드내의 남아 있는 처리되지 않은 비트수나 n/2보다 더 작은 비트길이를 갖추고, 상기 피드백 데이터가 n/2의 비트 길이를 갖춘다.
상기 메모리수단이, 제1룩업 데이블과 제2룩업 테이블로서 구성될 수 있는 바, 상기 제1룩업 테이블은 상기 제1카테고리 코드워드에 대응하는 다수의 제1위치에서의 어드레스 가능 메모리위치와, 상기 제2카테고리 코드워드의 제1n비트 부분에 대응하는 다수의 제2위치에서의 어드레스 가능 메모리 위치를 포함하고, 상기 제2룩업 테이블은 상기 제2카테고리 코드워드에 대응하는 다수의 제1위치에서의 어드레스 가능 메모리위치와, 상기 제2카테고리 코드워드의 다음의 부분에 대응하는 다수의 제2위치에서는 어드레스 가능 메모리 위치를 포함한다. 또한, 메모리수단은 상기 제1룩업 테이블 또는 제2룩업 테이블중 어느 하나를 어드레스하도록 상기 n비트 어드레스포트를 구비한다. 상기 실시예에 있어서, 상기 제1 및 제2룩업 테이블이 각각 실직적으로 2n워드의 저장 캐피시티를 갖춘다.
본 발명에 따른 장치는, 상기 코드워드를 수신하기 위한 입력을 갖춘 배럴시프터를 구비할 수 있고, 상기 배럴시프터는 상기 n비트 어드레스포트에 코드워드와 그 부분을 출력하기 위해 상기 제1 및 제2제어데이터로부터 추출된 시프트 길이 정보에 응답한다. 상기 시프트 길이 정보가 코드워드의 디코딩이 완성되었는가를 지시하고, 수단이 새로운 코드워드의 디코딩을 초기화하기 위한 상기 시프트 길이 정보에 응답한다.
상기 실시예에 있어서, 상기 코드워드가 이산 코사인 변환계수로부터 추출된 허프만 코드워드이다.
그리고, 가변길이 코드워드를 디코딩 하기 위해 이용되는 본 발명에 따른 피드백 메모리가 제공되는 바, 길이가 n비트 보다 더 크지 않은 제1코드워드나 길이가 n비트를 초과하는 제2코드워드의 제1n비트까지에 의해 어드레스 가능한 제1룩업 테이블과, p비트의 피드백 데이터와 m비트 또는 제2코드워드의 더 작은 부분에 의해 어드레스 가능한 제2룩업 테이블로 구성되면서 p+m≤n 과 상기 m비트 또는 더 작은 부분이 상기 제2코드워드의 제1n비트에 따르고, 상기 제1룩업 테이블이 초기 n비트 데이터에 대한 실행길이 데이터나 제2코드워드의 더 작은 부분 뿐만 아니라 상기 제1코드워드에 대응하는 진폭 및 실행길이 데이터를 포함하고, 상기 제2룩업 테이블이 상기 초기 및 마지막 부분 사이 이외의 상기 제2코드워드의 소정의 비트 부분에 대응하는 피드백 데이터 뿐만 아니라 마지막 m비트나 상기 제2코드워드의 더 작은 부분에 대응하는 진폭 및 실행길이 데이터를 포함한다. 상기 메모리는 코드워드 및 피드백 데이터를 수신하기 위한 n비트 어드레스포트를 더 구비하고, 상기 제1룩업 테이블이나 상기 제2룩업 테이블을 어드레스하도록 상기 어드레스포트를 선택적으로 결합하기 위한 수단이 제공된다.
또한, 제로 실행길이(예컨대, 비제로 진폭만)의 사건을 표현하는 코드워드를 포함하는 다수의 가변길이 코드워드를 디코딩하기 위한 방법이 제공되는 바, 단일 클록 사이클에서 길이가 n비트까지의 제1코드워드를 디코딩하고, 클록 사이클의 다수의 p에서 길이가 n비트 보다 더 크면서 적어도 p-1의 실행길이를 갖춘 사건을 표현하는 제2코드워드를 디코딩한다. 여기서, 특정 에스케이프 코드 프리픽스가 실행길이를 갖지 않은 제3코드워드에 포함된다. 제3코드워드가 특정 에스케이프 코드 프리픽스의 검출에 응답하여 디코드된다. 상기 실시예에 있어서, 상기 제1 및 제2코드워드가 대응하는 진폭 및 실행길이 데이터를 제공하도록 룩업 테이블을 이용하여 디코드되고, 상기 제3코드워드가 기준 없이 진폭데이터를 상기 룩업 테이블에 직접 출력함으로써 디코드된다.
[실시예]
이하, 예시도면을 참조하여 본 발명에 따른 1실시예를 상세히 설명한다.
본 발명은 가변길이 코드 워드를 디코딩하기 위한 장치를 제공하는 바, 본 발명이 허프만 코드워드의 디코딩에 관련되어 설명됨에도 불구하고, 이러한 기술은 가변길이 코드워드의 다른 형태를 위한 디코더에 대해 폭 넓게 적용할 수 있다.
양자화 기술은 변환계수의 진폭을 감소시킴으로써 이미지의 압축성을 개선하고, 결과를 이용하기 위해 이러한 계수에 가변 비트수의 할당을 위한 알고리즘이 요구된다. 가변길이 코드워드 알고리즘은 양자화 프로세스가 정보 저장과 이미지를 저하시키지 않는 것과는 달리 정적 코딩기술로 이루어질 수 있다.
허프만 코딩은 이미 알려진 모든 가능한 사건의 확률로 주어진 이론적 엔트로피 한계에 접근할 수 있는 최적 정적 코딩 절차이고, 인코더는 이러한 확률분포를 발생시켜 주어진 프레임의 전송 이전에 디코더에 전송한다. 이때, 테이블은 비교적 짧은 코드워드가 가장 높은 발생확률에 따른 사건으로 할당된 허프만 코드워드를 추출하는데 이용된다. 디코더는 이상적인 코드북을 유지하고 있어 실제적 사건과 각 코드워드를 매치시킬 수 있게 된다. 본 발명에 따른 실시예에 있어서, 고정 허프만 테이블이 하드웨어 실장을 간단화하는데 이용되고, 허프만 테이블이 처리된 비디오정보의 광범위한 다양성을 기초로 발생된다.
본 발명의 실시예는 64계수의 연속으로 직렬화되고, 진폭/실행길이 코드인 DCT계수의 8×8블록을 이용하는 허프만 코딩을 이용한다. 64계수의 연속을 스캐닝함으로써 사건은 계수가 제로와 동일하지 않은 진폭과 직면할 때 마다 발생하는 것으로 정의된다. 이때, 코드워드가 계수의 진폭과 그에 선행하는 제로의 수를 지시하는 사건으로 할당된다. 여기서, 선행 제로의 수는 실행길이로서 언급된다.
제8도는 2차원적인 진폭/실행길이 어레이를 나타낸 것으로, 여기서 주어진 진폭 140(16까지)과 실행길이 130(15까지)을 갖춘 각 코드워드의 비트길이가 확인되어진다. 제8도는 코드워드에서의 비트의 수를 설명하기 위한 것으로, 진폭이 절대값의 항만으로 제공되고, 각 코드워드와 함께 포함된 부호비트는 코드워드 길이에 포함되지 않는다.
계수의 진폭이 16보다 더 크거나 실행길이 제로의 수가 15이상일 경우, 그에 따른 비트를 해석하는데 코드북을 이용하지 않는 디코더를 칭하는 특정 코드워드가 이용된다. 그 대신 실행길이가 코드되지 않고 전송된다. 또한, 계수진폭이 상기한 양자화 프로세스에 의해 결정되어 코드되지 않고서 전송된다. 더욱이, 때때로 제8도에서 설명한 2차원적인 테이블의 이용을 통해 코드할 수 있음에도 불구하고, 진폭이나 실행길이를 직접 코드하는 것이 더욱 효과적이다. 전송될 코드워드의 길이를 짧게할 필요가 있다면, 인코더는 이러한 경우를 검출하여 직접적인 코딩으로 스위치한다. 직접적으로 코드된 코드워드는 에스케이프 코드 프리픽스를 매개로 특별한 경우의 코드워드로서 디코더에 의해 확인된다. 이러한 특별한 경우의 코드워드는 코드북을 참조하지 않고서 직접적으로 디코드된다.
또한 특정 코드워드는 블록의 끝을 지시하도록 예약되는데, 이는 항상 DCT계수의 블록에서 마지막 비제로 계수 후에 삽입된다. 더욱이, DC계수는 슈퍼블록내에서 차동적으로 코드된 후, 허프만 코드된다. 슈퍼블록은 수직적인 2개의 휘도블록에 대해 수평적으로 4개의 휘도블록인 비디오 이미지 영역으로서 정의되고, 이미지 영역으로부터 추출된 각각의 U와 V에 대해 1개의 크로미넌스 블록과 관련된다. 여기서, 각 휘도블록과 크로미넌스 블록은 수직적인 8개의 픽셀에 대해 수평적인 8개의 픽셀을 구비한 이미지영역이다. 여기서, 예컨대 W.Paik, Digiciper-All Digital, Channel Compatible, HDTV Broadcast System, IEEE Transactions of Broadcasting, Vol. 36, No. 4, December 1990을 참고한다. 이러한 구조는 매크로블록내의 DC계수의 높은 상관관계를 이용하여(예컨대, 이미지 영역이 수평적으로 8개의 슈퍼블록으로 이루어진다) 압축 효율을 더욱 개선시킨다.
코딩프로세스의 효율은 DCT계수가 스캐닝되는 순서에 대부분 의존하는 바, 고진폭에서 저진폭으로 스캐닝함으로써 블록의 끝에서 단일의 긴 실행에 대해 전형적으로 제로계수의 실행의 수를 감소시킬 수 있게 된다. 따라서, 계수는 먼저 DC계수로부터 내려가면서 지그재그 스캐닝된다. 상기한 바와 같이 블록의 끝에서 소정의 긴 실행이 블록 끝 코드워드에 의해 효과적으로 표현된다.
본 발명에 따르면, 허프만 코드워드는 4가지 형태로 분할된다. 제1형태는 1∼16으로부터의 DCT계수 진폭과 0∼15로부터의 실행길이를 갖춘 코드워드를 에워싸고, 22이하의 코드워드 길이를 갖춘다. 이는 제8도의 매트릭스 132로 설명되어진다. 코드워드의 제2형태는 1∼64로부터의 실행길이의 세트와 17∼256으로부터의 DCT진폭으로부터 존재한다. 이는 제8도의 매트릭스의 외측이거나 23이상의 코드워드 길이를 갖는 매트릭스내이다. 그리고, 허프만 코드워드의 제3형태는 제로의 실행길이를 제외하고 제2형태와 동일한 카테고리로 된다. 허프만 코드워드의 제4형태는 블록 끝 코드워드이다.
특정 실시예의 설명에 있어서, 허프만 디코더는 하나의 14.6MHz의 68나노세컨드 사이클에서 15비트 코드워드를 처리하도록 설계되어진다. 제로 실행길이를 갖춘 제1형태로부터의 허프만 코드워드 길이는 제8도의 제1행으로부터 알 수 있는 바와 같이 모두 10비트 이하이다. 본 발명은 인터럽션 없이 처리되어지는 이러한 코드워드와 10비트 이하의 다른 코드워드를 처리할 수 있게 된다. 허프만 코드워드가 10비트 보다 더 큰 길이를 갖는 사건에서 본 발명의 장치는 적어도 2개 이상의 코드워드에서 표현되는 이러한 코드워드를 요구함으로써 계수의 일정한 비인터럽트된 흐름을 유지한다. 제로값 계수에 의해 선행되지 않음과 더불어 상기한 바와 같이 정의된 코드워드의 제1형태에 대한 DCT진폭의 범위 바깥으로 되는 DCT계수는 15비트 최대 코드워드 길이를 갖는다. 이는 본 발명에 따른 하나의 68나노세컨드 클록 사이클에서 결정될 수 있는 특정 제로 실행길이 코드워드이다.
제1도는 본 발명에 따른 허프만 디코더의 간단한 블록도로서, 허프만 디코더(10)는 비디오 FIFO 레지스터(12)로부터 코드워드를 수신한다. 비디오 FIFO는 8비트 코드워드 버스상에서 허프만 디코더(10)에 코드워드를 출력하고, 허프만 디코더는 34나노세컨드의 비율로 한번씩 데이터의 8비트내의 클록킹에 의해 68나노세컨드의 주기에서 15비트 코드워드를 처리할 수 있는 능력을 갖춘다. 이러한 2x클록은 처리의 요구된 비율에서 코드워드를 제공하지만, 처리전에 코드워드를 저장하는데 사용되는 코드워드 인터페이스 RAM의 비용을 감소시키도록 허프만 디코더에 8비트 버스 인터페이스를 허락한다. 29.3MHz에서 실행되는 2x클록은 14.6MHz에 동기되고, 약 50%의 코드워드 RAM의 비용을 감소시킨다. 14.6MHz 클록(DATA_CLK)과 29.3MHz 클록(DATA_2xCLK)이 통상적인 클록회로(14)로부터 출력된다.
허프만 디코더에 의해 만들어진 소정 에러가 무한정 전파되지 않는 것을 확보하기 위해 디코더는 각 매크로블록을 위해 동기화 회로(16)에 의해 리세트된다. 허프만 디코더가 인에이블되지 않을 경우, 비디오신호의 수평 브랭킹 간격이 처리되는 동안 매크로블록 리세트신호(MR_RESET)가 동기화회로에 의해 제공된다. 이는 다음 매크로블록의 제1워드에 대해 직렬 억세스 메모리포트를 리세트시키도록 동기화회로를 허용함과 더불어 양자화레벨에 대한 정보와 PCM모드 데이터 블록을 제공한다. 여기서, PCM모드 데이터블록은 차동적으로 인코드되지 않는 데이터 블록이다(예컨대, 모션 보상이 선택되지 않는다). 스태틱 억세스 메모리포트가 준비된 후, MB_RESET신호가 어저트되는데, 이는 비디오 FIFO 레지스터(12)로부터 독출될 데이터가 준비된 허프만 디코더를 경고한다. 동기화회로(16)는 내부 레지스터를 플러시하면서 충만되도록 디코더에 대해 요구된 사간주기를 위해 허프만 디코더의 인에이블링을 지연시켜야만 한다. 이와 같은 시간주기 후, 동기화회로는 허프만 디코더를 인에이블함과 더불어 역변환회로(18)에 의해 역 DCT변환처리(IDCT)를 위해 출력포트에서 정확한 데이터를 기대한다. 슈퍼블록의 정상적인 처리동안, 허프만 디코더(10)는 다음의 슈퍼블록을 위한 양자화정보와 PCM모드정보를 포함하는 헤더를 통해 데이터를 수신한다. 매크로블록의 끝에서 동기화회로(16)는 허프만 디코더를 디스에이블시킴과 더불어 매크로블록 동기화처리를 다시 시작하게 된다. 허프만 디코더로부터의 IDCT 동기화신호가 모든 블록의 제1계수상에서 역변환회로(18)에 제공된다.
허프만 디코더에서 에러가 검출되어야만 하는 바, 허프만 에러검출신호(HUFF_ERR)가 동기화회로(16)로 출력되게 된다. 그리고, 라인 동기화 (LINE_SYNC)가 동기화회로(16)로부터 허프만 디코더에 제공되어 14.6MHz클록인 헤더정보와 동기화되고, 이러한 신호가 헤더의 제1비트가 독출될 준비가 된 허프만 디코더를 알리는데 이용된다.
허프만 디코더(10)의 목적은 인코더로부터 수신된 가변길이 코드워드를 비디오 데이터로 변환시키기 위해 DCT계수로 번역하기 위한 것이다. 제2도는 허프만 디코더의 더욱 상세한 블록도를 나타낸 것으로, 제1도에서와 같이 허프만 디코더는 비디오 FIFO 레지스터(12; 예컨대 VRAM)로부터의 비디오 데이터로 번역되어질 허프만 코드워드를 수신한다. 코드워드가 입력 배럴스프터 및 버퍼(20)(제2도)에 입력되는데, 이는 제3도를 참조하여 상세히 설명한다. 입력 배럴시프터의 기능은 비디오 FIFO로부터 가변길이 데이터를 받아들여 디코더 ROM(22)의 어드레스포트에 공급하고, ROM은 코드워드 변환을 위한 모든 필요한 정보를 포함한다. 주지한 바와 같이 데이터가 ROM을 통해 항상 검색되지는 않는 바, 때때로 데이터흐름으로부터 직접 추출된다.
현재의 상태와 ROM으로부터 독출된 데이터에 따른 데이터의 선택은 마스터 제어상태 머신(36)에 의해 제어된다. 대부분의 코드워드에 대해 데이터가 하나의 클록에서 입력 배럴시프터(20)에 의해 제공된 워드로부터 디코드된 후, 데이터 멀티플렉서(24)로부터 래치된다. 코드워드가 디코드되는 시간 동안, 이전의 클록 사이클에서 래치된 데이터가 역양자화 배럴시프터(28)를 통해 경유되고, 2의 보수 변환에 대한 부호크기가 통상적인 변환회로(30)에 의해 달성된다. 역양자화 배럴시프터(28)는 데이터가 인코드되기전에 동일한 크기에 대해 데이터를 재정규화하는데 이용된다. 역 정규화 후, 데이터가 2의 보수에 대한 부호 크기로부터 변환된다. 회로(30)로부터의 결과적인 2의 보수 데이터가 실행길이 제로 데이터 및 회로(30)로부터 수신된 일정한 허프만 데이터나 역양자화 이전에 버퍼(26)로부터 수신된 PCM 데이터를 출력하도록 상태 머신(36)에 의해 제어되는 3대 1출력멀티플렉서(32)에 입력된다. 적절한 출력 데이터가 버퍼(34)에 버퍼되어 제1도에 도시된 역 DCT회로(18)로 출력된다.
제3도는 제2도에 도시된 허프만 디코더에서 사용된 입력 배럴시프터(20)의 블록도로서, 8비트 코드워드 데이터가 프리-페치회로(40)를 통해 비디오 FIFO(12)로부터 입력되고, 여기서 버퍼 코드워드 데이터가 비교적 천천히 비디오 FIFO로부터 패치되어 즉각적으로 배럴시프터가 코드워드 클록(CW_CLK)을 수령할 수 있게 된다.
입력배럴시프터의 기능은 비디오 FIFO로부터 가변길이 코드워드를 수신하고, 상태 머신으로 처리하기 위해 순서적으로 코드워드 데이터를 출력한다. 최초로, 상태 머신에 의해 처리되기 전에 배럴시프터 파이프라인이 충만되어지는 것이 개시될 수 있게 된다. 배럴시프터는 40비트 입력 래치(40)내에 40비트의 데이터를 취하고, 40×16비트 배럴시프터(44)를 이용해서 16비트의 데이터를 선택한다. 배럴시프터(44)는 상태머신 처리 및 ROM룩업 회로(46)에 한번에 16비트를 출력한다. 배럴시프터는 하나의 소정 클록 사이클에서 하나로부터 40비트 위치로 시프트될 수 있게 된다.
배럴시프터는 기본적으로 2가지 기능을 제공한다. 제1기능은 진폭과 실행길이 및 제1제어데이터나, 피드백과 코드워드를 위한 제2제어 데이터나 코드워드의 몫을 출력하기 위해 ROM(22)에 데이터를 경유시키는 것으로, 상태머신(36; 제3도에서 선택적으로 상태 머신 처리 및 ROM 룩업(46)으로 칭함)과 함께 ROM(22)은 다음의 허프만 디코더기능을 결정하고, 시프트길이를 배럴시프터로 되돌린다.
배럴시프터의 제2기능은 직접처리를 위해 데이터를 경유시키는 것이다. 특정 에스케이프 코드 프리픽스에 의해 확인된 데이터나 PCM 데이터를 위해 배럴시프터로부터의 데이터가 직접적으로 사라져 실질적으로는 아니지만 마치 ROM 으로부터 제공된 것과 같이 처리된다. 제4도에 도시된 이와 같은 하나의 에스케이프 코드 프리픽스(60)는 소정 비트수 보다 더 많이 발생시키는 제8도에 도시된 매트릭스의 모든 사건이나 제8도에 도시된 진폭/실행길이 매트릭스의 경계의 외측에 있는 코드워드를 위해 이용된다. 상기 실시예에 있어서, 본 기술이 22비트 보다 크거나 작은 것을 컷오프하는 특정한 실시예에 적절함에도 불구하고, 에스케이프 코드 프리픽스(60)는 실행길이가 22비트보다 큰 제8도의 모든 엔트리에 대해 이용된다.
제5도에 도시된 에스케이프 코드 프리픽스(70)는 실행길이가 없는 경우, 예컨대 코드워드 데이터가 연속 비제로 진폭을 지시하는 경우에 이용된다. 이러한 경우, ROM(22)은 코드워드에 적절히 데이터를 포함하지 않음으로써 코드워드는 직접적으로 처리된다. 실행길이가 없는 경우에 대한 특정 에스케이프 코드 프리픽스의 사용은 10비트 코드워드 보다 더 큰 것이 존재할 경우에 시스템을 꼼짝 못하게 하는 것 없이 사이클 당 하나의 코드워드의 비율로 처리되는 연속적인 진폭만에 의한 코드워드를 인에이블 한다.
이와 같은 에스케이프 코드 프리픽스 없이 하나의 사이클에서 ROM(22)에 의해 처리될 수 없는 코드워드는 시스템 드로우풋 요구에 집착하여 처리되어질 수 없게 되므로, 여분의 처리사이클 동안 출력되어질 제로와 관련된 실행길이는 존재하지 않게 된다.
상태 머신처리 및 ROM 룩업 회로(46)로부터의 시프트 길이는 입력단(58)을 매개로 배럴시프터에 입력된다. 시프트 길이는 가산기(54)상으로 지나가기 전에 4비트 래치(52)에 래치된다. 가산기(54)에 대한 다른 입력은 가산기(54)의 출력으로부터 다시 공급되는 래치(50)로부터의 6비트 워드로 이루어진다. 터미널(56)에 입력되는 인에이블신호는 래치(50,52)를 인에이블시킨다. 인에이블신호는 허프만 디코더 동작을 위한 타이밍을 제공하는 14.6MHz 데이터 클록으로 간단히 될 수 있다.
하나의 68나노센컨드 클록 사이클과 동일한 16비트 데이터를 처리하기 위해 입력 래치제어(48)를 클록하도록 DATA_2XCLK(29.3MHz)가 터미널(59)에 입력된다. 입력 래치제어(48)는 비디오 FIFO 로부터 코드워드를 페치하는데 이용되는 CW_CLK 신호를 발생시키고, 또한 프리_페치회로(40)로부터 출력된 데이터를 40비트 입력래치(42)로 클록한다. 이를 달성하기 위해 입력 래치제어(48)는 전체 40비트를 갖춘 래치(42)를 충만시키도록 5개의 트리거를 이용하는 프리_페치로부터 한번에 8비트 시프트된다.
상태 머신으로부터 입력 배럴시프트로 보내지는 시프트 길이는 1∼15비트의 범위이다. 16비트의 코드워드 길이(최대 길이가 허용된)는 4비트 워드로 코드될 수 없기 때문에 가산기(54)는 항상 시프트의 하나의 여분 비트를 가산한다. 또한, 정규의 허프만 처리 동안, 코드워드는 항상 부호 비트에 따른다. 따라서, 허프만 코드워드위 길이는 ROM(22)에 저장되고, 배럴시프트는 부호비트를 지나 증가시키는데 이용된다. 부호비트는 부호크기로부터 2의 보수로 래치된 진폭의 변환을 위해 보존된다. 제2도에 나타낸 바와 같이 보존된 부호비트는 라인(31)을 통해 변환기(30)에 입력된다.
본 발명에 따르면, 모든 클록 사이클마다 한번씩 코드워드나 그에 해당하는 부분을 처리하도록 입력 배럴시프터 모듈을 위해 중요하다. 이는 각 연속적인 클록사이클 동안 디코더가 진폭 데이터, 실행길이 데이터, 실행계수(예컨대, 제로)중 적어도 어느 하나를 내놓을 수 있게 되는 것을 확실히 함으로써 모든 클록 사이클 동안 가변길이 코드워드로부터 계수를 제공한다. 클록 사이클 동작에 대한 하나의 계수를 달성하기 위한 정규 동작동안 요구된 논리통로는 프리차지된 ROM을 가정하여 다음과 같이 표현할 수 있다.
Lat6+Adder+Barrel Shifter+Lookup+ROM+Muxselectlogic+Sllogic<68ns
여기서, Muxselectlogic은 출력 멀티플렉서(32)를 제어하는 상태 머신(36)의 부분으로 언급되고, Sllogic은 ROM(22)이나 에스케이프 코드로부터 결정된 시프트 길이를 출력하는 상태 머신 논리의 부분으로 언급된다. Lat6는 래치(50), Adder는 가산기(54), Barrel Shifter는 배럴시프터(44), Lookup + ROM은 ROM(22)으로부터의 데이터 룩업을 처리하는데 걸리는 시간으로 언급된다. 68ns 시간 요구는 14.6MHz 클록의 주기에 의해 설정된다.
본 발명에 의해 제공된 디코더의 중요 구성요소는 룩업 ROM(22)이다. 제6도에 ROM 서브시스템이 상세히 도시되어 있다. ROM의 주기능은 허프만 코드워드 디코딩으로, ROM은 특정 에스케이프 코드 프리픽스를 포함하는 코드워드 외의 코드워드를 디코딩하기 위해 필요한 모든 정보를 포함한다. ROM 저장위치로 진행한 데이터는 제8도에 도시된 실행길이/진폭 매트릭스로부터 추출된다. 상기한 바와 같이 이와 같은 매트릭스는 정적으로 선택된 비디오의 부분으로부터 발생된다. 매트릭스는 코드워드의 실행길이와 진폭에 관련하여 각 허프만 코드워드로 할당된 비트 수와 비디오의 선택된 부분에서의 발생주파수를 나타낸다. ROM(22)은 제8도에 도시된 매트릭스로 특정된 길이를 갖춘 허프만 코드워드를 디코드하도록 설계된다. 특히, 제8도에 도시된 바와 같이 10 이하의 길이를 갖춘 모든 허프만 코드워드는 허프만 디코더를 통해 한번 지나감으로써 디코드된다. 10이상이면서 243비트 이하의 비트 길이를 갖춘 코드워드는 디코더를 통해 여러번 지나감으로써 디코드된다. 이와 같은 경우, ROM(22)으로부터 출력되는 데이터는 전체 코드워드가 디코드될 때까지 다음의 사이클상에서 ROM을 어드레스하도록 피드백된다.
ROM 엔트리의 실제적인 구조는 ROM이 디코드할 수 있는 코드워드의 특정 세트의 선택을 포함하는 직통처리이고, 이때 선택된 코드워드에서의 비트에 대응하는 어드레스를 갖춘 ROM 위치에서 선택된 코드워드에 속하는 데이터를 도입한다. 10비트 이하의 코드워드에 대해 코드워드에 대응하는 ROM 데이터는 진폭, 실행길이, 관련된 제어(예컨대, 시프트 길이) 데이터로 된다. 길이가 10비트를 넘는 코드워드에 대해 ROM 데이터는 피드백과 마지막으로 ROM을 통해 지나가는 모든 관련된 제어 데이터로 구성된다. 코드워드의 다음 부분과 함께 이용될 경우 피드백 데이터는 다음의 피드백 사이클에서 다른 ROM 위치를 지정하는데 이용하기 위한 데이터를 저장하는 ROM 위치를 어드레스하거나 더 이상의 피드백 사이클이 요구되지 않는 경우에 실제적 진폭과 코드워드를 위한 실행길이 데이터를 남겨두는 ROM 위치를 어드레스하게 된다. 이러한 기술은 비교적 간단한 컴퓨터 프로그램을 이용하여 달성할 수 있는 선택된 코드워드를 위한 필요한 진폭, 실행길이, 피드백, 제어데이터를 갖춘 ROM의 실제적 프로그래밍에 적절하다. 10비트 이하의 코드워드에 대해 프로그램은 실제적인 진폭, 실행길이 및 코드워드에 대한 제어 데이터를 간단히 제공한다. 10비트 이상의 코드워드에 대해 프로그램은 코드워드를 분석하고, 10비트 이하의 연속 부분으로 분석하며, 코드워드의 마지막 부분의 모든 피드백 및 제어데이터를 발생시킨다. 코드워드의 마지막 부분에 대해 프로그램은 실제적인 진폭과, 남겨진 실행길이 및 코드워드를 위한 마지막 제어데이터를 제공한다.
10비트 보다 더 긴 코드워드는 1보다 더 긴 실행길이를 갖춘 사건으로부터 시작되어야만 하는 것이 중요하다. 이에 대한 이유는 각 클록 사이클에 대해 하나의 계수가 허프만 디코더의 출력에서 발생되어야만 하기 때문이다. 코드워드가 제로 실행길이를 갖춘 사건과 관련되면, 1클록 사이클에서 디코드되어야만 하고, 코드워드가 1이상의 실행길이와 관련되면, 제로는 제1처리 사이클동안 출력으로 보내질 수 있게 되며, 코드워드의 나머지는 다음 처리 사이클 동안 더욱 처리되어질 수 있게 된다.
1클록 사이클에서 11비트 코드워드를 처리하도록 특별한 하드웨어를 갖춘 허프만 디코더를 갖출 수 있는데, 이를 달성하기 위해 ROM은 11어드레스 비트와 함께 사용되어야만 한다. 이러한 ROM은 2048워드의 크기를 갖춘다. 11비트 보다 더 긴 코드워드가 동일한 ROM에 의해 처리되어진다면, 다른 비트는 어드레스에 부가되어야만 하는데, 이는 4096위치의 ROM을 만든다. 2048워드의 ROM 크기를 유지할 때까지 제로 실행길이를 갖춘 특정 11비트 코드워드를 처리하도록 논리가 부가될 수 있다. 특정 11비트 워드가 11비트 허프만 코드워드의 각 쌍에 대해 10개의 최상위 비트(MSB)에 의해 ROM에서 프래그된다. 11비트 코드워드의 각 싸이클이 동일한 10비트 프리픽스를 갖춤으로써 상태 머신과 제어논리가 상기한 특정 코드워드를 효과적으로 디코드할 수 있다는 것이 중요하다. ROM은 상기한 워드에 대해 11의 시프트 길이를 포함하면서 특정 처리가 상태 머신에 의해 수행된다.
코드워드가 특정 11비트 코드워드중 하나가 아니면서 10비트 보다 더 긴 경우, 코드워드가 16비트 보다 더 짧으면서 그와 관련된 하나 또는 더 큰 실행길이를 갖추면, 2개의 ROM 룩업에서 처리될 수 있게 된다. 또, 제2룩업이 처리되는 동안 제로의 진폭을 래치함으로써 데이터흐름을 인터럽트하는 것 없이 코드워드가 처리될 수 있게 된다. 그리고, 코드워드가 15비트 보다 더 길면, 그와 관련된 적어도 2개의 실행길이를 갖추어야만 한다. 2개의 실행길이는 20비트까지의 코드워드에 대한 동작을 허용한다. 16비트 내지 20비트의 코드워드가 3개의 ROM 테이블 룩업에서 처리될 수 있게 되고, 각각의 제1 및 제1룩업상에서 제로가 래치된다. 이러한 처리는 21과 22비트의 긴 코드워드와 유사하다. 이러한 코드워드는 4개의 룩업을 취하게 되며, 그와 관련된 적어도 3개의 실행길이 제로를 갖추어야만 한다. 모든 다중 룩업 워드에 있어서, ROM 시프트 길이 필드는 오직 시프트정보, 불명확한 코드워드를 지시하는 코드나 코드워드를 결정하는데 필요한 더 많은 룩업을 지시하는 미리 정의된 값(예컨대,15)만을 포함한다. 상기한 실시예에 대해 비트길이가 22비트 보다 더 큰 경우, 제4도에 도시된 에스케이프 코드 프리픽스(60)가 이용되는데, 이는 에스케이프 코드 프리픽스의 최대 길이(예컨대, 추가된 에스케이프 코드 프리픽스)가 23비트이기 때문이다.
제1의 1024 데이터 워드가 제1룩업에 대해 사용되는 것과 같이 ROM(22)이 구분되고, 다음의 1024 데이터 워드가 다음의 룩업을 위해 사용된다. 이는 제6도에 도시되어 있는데, 여기서는 제1룩업테이블(80)과 제2룩업테이블(82)이 도시되어 있다. 제6도의 실시예에 있어서 출력비트 0∼3이 진폭데이터(RAD)를 위해 이용되고, 출력비트 4∼7이이 실행길이 데이터(RRL)를 위해 이용되며, 출력비트 8∼11이 시프트 길이 및 상태머신 데이터(RSL)를 위해 이용된다. 각 코드워드에 대한 제1룩업상에서 데이터버스(86)를 통해 배럴시프터로부터 수신된 코드워드의 10비트가 10비트 어드레스 포트(84)를 통해 ROM(22)을 직접 어드레스하는데 이용된다. 보조 어드레스 포트(84a)가 다음에서 설명하는 바와 같이 부가 비트를 조절하기 위해 제공된다. 코드워드가 10비트 보다 더 길면서 특정 11비트 워드가 아니면, 새로운 어드레스를 터미널(90)에 입력시키기 위해 ROM으로부터 피드백된 5비트와, 터미널(92)에 입력되면서 연속비트로 언급되는 부가적인 6번째 비트에 따라 배럴시프터로부터의 5개 이상의 새로운 비트로 만들어진다. 6개의 비트는 진폭 데이터 필드(데이터 비트 0∼3)와 실행길이 필드(데이터 비트 4∼5)로부터 도래된다. 비트 0∼4가 제1클록상에서 그를 래치함으로써 피드백되고, 다음 클록 동안에 멀티플렉서(88)를 이용해서 ROM의 어드레스에서 멀티플렉싱한다. 비트 제로가 ROM 어드레스 포트의 비트 5에 공급되고, 비트 1이 어드레스 포트의 비트 6에 공급된다. 6번째 비트의 처리가 동일한 방법으로 취급된다.
상기한 바와 같이 피드백 비트가 터미널(90)을 통해 MUX(88)에 입력되는데, MUX(88)의 동작이 각 코드워드에 대한 제1클록 사이클동안이고, 배럴시프터로부터의 코드워드의 실제적인 10비트는 어드레스 포트(84)에 입력된다. 다음의 코드워드처리 사이클에 대해 멀티플렉서(88)는 배럴시프터로부터 어드레스 입력 5∼9로의 코드워드 데이터 대신 터미널(90)로부터의 피드백 데이터를 결합한다. 이와 같은 다음의 처리 사이클 동안 배럴시프터로부터의 새로운 코드워드 데이터가 어드레스 포트 입력 0∼4에만 입력된다.
데이터가 전송됨으로써 모든 PCM 데이터가 먼저 MSB를 송신한다. 코드워드의 여분과 마지막으로 부호 비트와 함께 종결되는 것에 따라 허프만 코드워드가 먼저 MSB를 전송하는 것과 같이 코드워드가 전송되어져야만 한다. ROM을 통해 다수가 지나가는 것이 요구될 경우 10비트 보다 더 긴 ROM(22)에 의해 코드워드가 처리되는 것에 대해 ROM(또는 상태 머신으로부터의 다른 실시예)의 출력으로부터의 연속 비트가 입력 터미널(92)을 통해 MUX(88)에 입력된다. 연속 비트는 ROM의 어드레스포트에 대한 실제적 코드워드 대신 피드백 데이터를 결합하도록 멀티플렉서를 작동시킨다. 또한, 연속 비트가 코드워드를 위한 제1룩업 테이블에 이어지는 모든 룩업을 위한 제1룩업 테이블 대신 제2룩업 테이블로부터의 작업에 대해 ROM을 지시하기 위해 ROM의 어드레스포트(84a)에 입력된다.
ROM에서의 시프트 길이 필드는 관련된 부호 비트 없이 허프만 코드워드의 길이를 포함한다. 처리될 코드워드가 블록 끝(end-of-block) 워드이면, 0의 값이 시프트 길이를 위해 삽입된다. 이는 EBO를 처리하도록 상태머신을 통보한다. 시프트 길이가 EBO 조건의 상태 머신을 통보하는데 이용됨으로써 RBO 코드워드 길이는 시간에 앞서는 것으로 알려져야만 한다. 상기 실시예에서 EBO 코드워드의 길이는 3비트이다.
처리될 코드워드가 제4도에 도시된 에스케이프 코드 프리픽스(60)를 포함한다면, 소정 값(예컨대, 12)이 ROM의 시프트 길이 필드(RSL)로부터 검출된다. 이는 에스케이프 코드 1(ESC-1) 코드워드를 처리하도록 상태 머신을 통보한다. 시프트 길이가 ESC-1 조건의 상태 머신을 통보하는데 이용되기 때문에 ESC-1 코드워드의 에스케이프 코드 프리픽스의 길이는 시간 이전에 알려져야만 한다. 상기 실시예에 있어서 에스케이프 코드 프리픽스의 길이는 8비트이다.
처리될 코드워드가 제5도에 도시된 에스케이프 코드 프리픽스(70)를 포함하면, 소정 값(예컨대, 13)이 ROM의 시프트 길이 필드(RSL)로부터 검출된다. 이는 에스케이프 코드2(ESC-2) 코드워드를 처리하도록 상태 머신을 통보한다. 상기 실시예에 있어서, ESC-2 코드워드에 대한 에스케이프 코드 프리픽스는 6비트이다.
처리될 코드워드가 특정 11비트 코드워드중 하나이면, 소정 값(예컨대, 11)이 ROM의 실행길이 필드로부터 검출된다. 이는 특정 11비트 코드워드를 처리하도록 상태 머신을 통보한다. 특정 11비트 코드워드에 대한 실행길이가 제로로 되는 시간 이전으로 알려지기 때문에 다른 진폭이 실행길이 필드에 삽입될 수 있게 되어 11비트 워드의 최하위비트(LSB)가 무엇인가에 따라 멀티플렉스에 의해 선택된다.
현재의 처리 사이클 동안 결정되지 않는 소정 워드에 대한 시프트 길이가 소정값(예컨대, 15)으로 세트된다. 사고에 의해 처리되어질 수 있는 모든 다른 워드는 ROM으로부터의 시프트 길이 필드가 다른 소정 값(예컨대,14)과 동일하면 검출되게 되는데, 이는 불명확한 코드워드가 억세스된 상태 머신을 알린다.
마스터 제어상태 머신(36)은 허프만 디코더에 의해 야기되는 동작을 제어하는 바, 제7도는 상태 머신을 더욱 상세히 나타낸 것으로, 상태 머신의 주요 구성요소는 마스터 제어모듈(110), 픽셀 및 블록 카운터(106,108), 헤더상태머신(102), 양자화 논리(QLOGIC) 프로세서(104) 및 참조부호 122로 도시된 상태 머신 출력제어논리이다.
마스터 제어모듈(110)의 기능은 상태 머신의 존재 상태 중 현재의 상태를 유지함과 더불어 다음에 어느 상태로 진행할 것인가를 결정하기 위한 것으로, 제어논리는 상태 머신의 현재 상태와, ROM으로부터 독출된 데이터, 동기화회로(16; 제1도 참조) 및, 입력 배럴시프터를 기초로 결정된다. 동기화회로로부터의 모든 입력은 14.6MHz의 하강엣지에서 래치된다.
상태는 마스터 제어모듈(110)로부터 출력되는 제어신호에 의해 트리거된다. ROM(22)의 출력이나 도입 데이터(예컨대, PCM 인지 CPCM 인지의 여부)에 따라 마스터 제어모듈내의 상태 머신이 다음 상태로 진행되는 것이 결정된다. 마스터 제어 상태머신의 다음 상태가 현재의 상태와, ROM(22)으로부터 독출된 데이터 및, 배럴시프터 출력포트(100)로부터 수신된 입력 배럴시프터로부터의 데이터를 기초로 결정된다. 마스터 제어모듈은 매크로블록 리세트까지 모든 카운터를 리세팅시키기 위한 책임이 있다. 또한, 픽셀 카운터(106)를 구동시키기 위한 클록이 제공된다. 또한, 마스터 제어모듈(110)은 허프만 코드워드와 에스케이프 코드 워드와 관련된 실행길이를 처리하고 실행길이 카운터의 6비트 위치를 제공함과 더불어 디코더의 모든 출력 논리부를 제어한다.
ESC-1 코드워드는 처리를 위해 2클록 사이클을 취한다. 제1클록 사이클에서는 상태 머신이 ESC-1 코드워드의 에스케이프 코드 프리픽스를 인식하고, 배럴시프터의 8비트를 배출한다. 또한, 이와 같은 제1클록 사이클 동안에 제로 실행계수가 출력을 위해 파이프라인에서 래치된다. 이는 요구가 항상 인터럽션 없이 매 클록 마다 발생되는 계수로 되어야만 하기 때문이다. 이러한 요구는 제로 진폭계수가 항상 ESC-1 코드워드와 관련된다는 사실에 직면하게 된다. 처리의 제2사이클은 코드워드의 진폭과 실행길이 필드를 수반한다. 이와 같은 기술은 인코더가 실행길이 제로의 수가 1이하이어야만 하는 ESC-1 코드워드의 6비트 필드내에 삽입되는 것으로 이해되어야만 하고, 실제적으로 디코더에 의한 ESC-1 의 처리가 자동으로 하나의 제로 계수(실행계수)를 내보내는 사실에 기인한다.
제7도에 도시된 헤더 상태 머신(102)은 도입 직렬 데이터로부터의 헤더 데이터를 독출하기 위한 상태 머신으로, 블록 개시를 처리하기 이전에 각 슈퍼블록을 위해 헤더 정보를 전송하기 위해 동기화회로(16;제1도참조)가 요구된다. 따라서, 각 슈퍼블록에 대한 직렬 헤더정보가 이전의 슈퍼블록을 처리하는 동안에 전송된다. 이는, 실제적으로 필요할때에 앞서서 헤더 데이터가 수신되는 것을 보증하고, 인에이블될 경우 도입데이터를 연속적으로 처리하도록 허프만 디코더를 허용한다. 디코더는 내부적으로 슈퍼블록 경계를 기억함으로써 헤더정보의 다음 패킷을 언제 이용하는가를 알 수 있게 된다.
양자화 논리프로세서(104)는 디코드된 데이터의 역양자화를 수행하는데, 이는 양자화 레벨 배럴스프터(제2도)에 보내지는 시프트 양을 발생시킨다. 시프트 길이는 헤더상태 머신에 저장되는 양자화 레벨의 함수로서 야기되어 픽셀의 위치가 처리된다. 픽셀위치는 픽셀 카운터(106)에 의해 발생된다. ESC-1 코드워드의 실행길이 필드를 더함으로써 야기된다.
필셀 카운터는 2가지의 중요한 기능을 갖추고 있다. 첫째로, 어떤 픽셀이 8×8 블록에서 처리되는가를 기억한다. 이러한 정보가 역 정규화를 인에이블시키기 위해 양자화 레벨 프로세서(104)에 의해 요구된다. 둘째로, 픽셀카운터가 8×8블록의 제1계수를 구비한 ICDT 회로(18)를 동기화시키는데 이용된다.
블록카운터(108)가 새로운 양자화 레벨(QLEVEL) 정보와 다음의 슈퍼블록을 처리하는데 이용하기 위한 헤더상태 머신에 저장된 PCM 블록 정보를 래치하기 위해 이용된다. 또한, 헤더상태 머신에 저장된 PCM 블록을 위한 현재의 블록과 상태워드에 따라 배럴시프터로부터 PCM 데이터를 선택하는데 이용된다.
상태머신 출력 제어논리(122)는 입력 배럴시프터와 허프만 디코더의 ROM부로부터의 디코드된 계수의 데이터 통로를 제어하고, 또한 마스터 제어모듈에서의 제어상태 결정에 이용된다. 상태머신 출력 제어논리는 룩업 논리(112)와, 시프트 길이 논리(114), 양자화 레벨 지연논리(116), 멀티플렉서 선택논리(118) 및, 에러논리(120)를 포함한다. 이러한 구성요소는 제2도에 도시된 허프만 디코더의 출력논리(38)에서의 대응 구성요소를 제어한다.
에러논리(120)는 야기될 수 있는 다양한 에러를 검출한다. 허프만 디코더는 많은 양의 압축 데이터를 처리하여 압축되지 않은 형태로 되돌려 확장시킨다. 따라서, 시스템의 성질을 유지하기 위해 에러검출을 피할 수 없게 된다. 양자화 레벨 배럴시프터로부터 발생된 에러와 상태머신에서 내부적으로 발생된 항목을 결합시킴으로써 에러검출이 상태머신 출력 제어논리에서 야기된다. 에러를 검출함에 있어서, 에러논리(120)는 에러가 발생된 매크로블록의 완성까지 에러를 포함하는 슈퍼블록에서의 데이터의 비디오 유지의 결과인 HUFF_ERR 신호를 출력한다. 동기화회로(16; 제1도)는 에러가 이러한 경계를 지나서 전파되지 않는 것을 확실히 하기 위해 MB_RESET 신호를 출력함으로써 허프만 디코더를 다시 개시시킨다.
상태머신으로부터 배럴시프터로 보내진 시프트 길이가 QL 프로세서(104)와 ROM 시프터 길이의 함수로서 계산된다. 처리될 현재의 코드워드가 제8도의 매트릭스로부터의 일정한 허프만 코드워드이면, 이때 ROM 시프트 길이는 배럴시프터로 직접 보내진다. 코드워드가 다중 룩업이면(예컨대, 10비트 보다 더 크면서 특정 경우의 11비트 코드워드가 아님), 4의 시프트 길이가 상기한 실시예에서의 배럴시프터에 보내진다. 배럴시프터는 4의 값에 1을 더하여 설계됨에 따라 전체 5비트가 시프트 출력된다. 코드워드는 ROM의 시프트 길이 필드에서 15의 시프트 길이를 포함함으로써 다중 룩업 코드워드로서 확인된다. 코드워드가 부가적인 룩업을 요구하는 한, 15의 값은 ROM 시프트 길이 필드로부터 계속 독출되게 된다. 15와 같지 않은 값이 ROM 시프트 길이 필드로부터 독출될 경우 코드워드는 종결되어지는 것으로 간주된다. 다중룩업 워드가 종료될 경우, 배럴시프터로 보내진 시프트 길이는 5비트가 코드워드를 위한 원래의 10비트 제1룩업으로부터 시프트되지 않은 것을 계수하기 위해 5의 값을 더한 ROM 시프트 길이 필드로부터 독출된 시프트 길이로 된다.
ROM(22)을 위해 발생된 어드레스가 ROM 출력 데이터의 함수 및 배럴시프터의 출력으로 된다. 본 발명에 따르면, ROM(22)은 2*2n워드만의 저장 캐피시터를 필요로 하고, 여기서 n은 ROM을 통한 싱글 패스에서 처리될 수 있는 비트의 최대 수(예컨대,10)이다. 또한, n은 ROM의 어드레스포트(84)에 의해 수용된 비트의 수와 동일하다. 따라서, 상기한 실시예에 있어서, ROM(22)은 2K ROM 이다.
허프만 코드워드가 다중 룩업이 아니면, 이때 ROM(22)에 대해 발생된 어드레스는 배럴시프터로 가지 않게 된다. 허프만 코드워드가 다중 룩업이면, 어드레스는 배럴시프터로부터의 데이터와 ROM의 출력으로부터 래치된 데이터의 조합으로 된다. 제1룩업상에서 10비트가 ROM을 어드레스하고, 어드레스 포트(84a)에 입력되는 연속 비트가 제로로 된다. ROM으로부터 디코드된 워드가 비종료 코드워드를 가르킬 경우, 5비트가 배럴시프터를 시프트 오프시키고, 배럴시프터로부터의 새로운 10비트 어드레스의 5개의 최하위비트(LSB)가 ROM의 출력으로부터의 5개의 LSB와 결합된다. 이와 같은 점에서 이전의 룩업으로부터의 5개의 LSB가 멀티플렉서(88)의 입력으로 되고, 멀티플렉서가 어드레스포트(84)의 5내지 9의 입력을 어드레스하도록 이전의 ROM 룩업 동안의 ROM으로부터 래치된 피드백비트를 인가함으로써 무시된다. 동시에, 어드레스포트(84a; 그리고 멀티플렉서(88))에 입력되는 연속 비트는 1로 세트된다. 이러한 처리가 코드워드 종료까지 반복된다. 코드워드가 종료일 경우, 5를 더한 ROM의 시프트 길이 필드가 배럴시프터에 보내진다. 부가적인 5비트는 포트(84)의 어드레스 입력 5 내지 9에 멀티플렉서가 피드백 비트를 입력할 경우 무시된 멀티플렉서(88)의 입력에서 5비트를 계수한다.
제4도 및 제5도에 도시된 에스케이프 코드 프리픽스(60,70)를 포함하는 코드워드를 위한 진폭 데이터는 직접 배럴시프터로 끌려지게 된다. 진폭 데이터는 먼저 MSB가 전송됨으로써 제2도에 도시된 양자화 레벨 배럴시프터(28)를 통해 지나가는 것 없이 자동적으로 비정규화될 수 있게 된다. 그 대신 비트 마스킹 처리가 이용된다. 진폭 데이터가 양자화 레벨 프로세서(104)에 의해 발생된 현재의 양자화레벨에 따라 7개의 LSB를 마스킹하는 것에 의해 발생된다. PCM 데이터가 배럴시프터로부터의 8비트 버스탭(31)을 매개로 허프만 디코더의 출력 논리부(38)에 공급된다.
본 발명에 따른 새로운 ROM을 이용한 허프만 코드워드의 디코딩의 다양한 예가 제6도를 참조해서 제공된다. 제1예에 있어서, 제8도의 매트릭스로 표현되는 10비트 보다 적은 코드워드가 디코드된다. 이러한 코드워드가 ROM을 통한 싱글 패스와 함께 처리된다. 예컨대, 실행길이 제로와 진폭 12를 갖춘 9비트 코드워드가 처리되는 것으로 가정한다. 먼저, ROM의 터미널(92)에서의 연속 비트가 제로로 세트되고, 제1룩업 테이블(80)이 이용되는 것을 지시한다. 멀티플렉서(88)가 배럴시프터로부터 직접 어드레스포트(84)로 데이터 비트를 결합하기 위해 세트된다. 배럴시프터로부터의 9비트 코드워드가 어드레스포트(84)의 어드레스입력 0내지 8에 입력되어 제1룩업 테이블(80)에서의 위치를 직접 어드레스한다. 룩업 테이블은 4비트 진폭 데이터와, 4비트 실행길이 데이터(모든 제로, 예컨대, 0000) 및, 9비트가 배럴시프터로부터 시프트된 것을 가리키는 4비트 시프트 길이 데이터를 출력한다. ROM(22)으로부터 출력된 진폭과 실행길이 데이터는 허프만 코드워드로 표현되는 변환계수를 얻기 위해 허프만 디코더(제2도)의 출력로직(38)에 의해 처리된다.
다음 예는 14비트 허프만 코드워드의 디코딩을 설명한다. 코드워드의 수령에 있어서 최초 10비트가 어드레스포트(84)의 어드레스 입력 0내지 9에 입력된다. 이러한 10비트는 15의 시프트 길이를 출력하는 제1룩업 테이블(80)의 위치를 어드레스한다. 15의 시프트 길이 값은 다중 룩업이 이러한 코드워드에 필요로 되는 상태머신을 가리킨다. 상태 머신은 제1클록 사이클 동안 시프트 길이 15값을 검출하고, 그에 응답하여 5의 시프트 길이를 배럴시프터에 보낸다. 동일한 시간에서 멀티플렉서가 사이클에 대해 제로 실행 계수(예컨대, 0000)를 출력하도록 마스터 제어 상태 머신(36)이 멀티플렉서(32)에 대해 출력 MUX 제어신호를 가정한다(제2도). 이는 특정 코드워드를 처리하도록 1사이클 이상을 취할 경우에도 불구하고, 데이터 클록의 각 사이클에서 하나의 계수를 발생시키기 위해 디코더를 인에이블시킨다.
상태 머신으로부터 5의 실행길이를 수신함에 있어서, 배럴시프터(20)는 어드레스포트(84)의 어드레스 입력 0 내지 4에 코드워드의 다음의 5비트를 로드한다. 동일한 시간에 코드워드 처리의 제1사이클 동안 제1룩업 테이블(80)로부터 출력된 피드백 데이터(실제적 진폭 및 실행길이 데이터 대신)가 터미널(90)에 피드백되어 어드레스포트(84)의 어드레스 입력 5내지 9에 멀티플렉서(88)를 매개로 입력된다. 멀티플렉서(88)는 배럴시프터로부터 어드레스포트(84)로의 데이터 대신 피드백 데이터를 전송하기 위해 터미널(92)상의 연속 비트의 가정에 대응한다. 연속 비트는 ROM 룩업 테이블(80)로부터의 비트 출력이나 ROM으로부터 출력된 시프트 길이가 15에 응답하는 상태 머신에 의해 발생된 비트중 어느 하나가 될 수 있다.
이와 같은 점에서 배럴시프터로부터의 4개의 새로운 비트(14비트 코드워드에서 나머지 4비트)와 5개의 피드백 비트가 ROM의 제2룩업 테이블(82)을 어드레스하게 되고, 제2룩업 테이블(82)에 대한 억세스가 ROM의 어드레스포트(84a)에 연속 비트의 입력에 의해 제공된다. 배럴시프터로부터의 4개의 새로운 비트와 어드레스포트(84)에 입력되는 5개의 피드백 비트가 14비트 코드워드에 대한 적절한 진폭과 실행길이를 출력하는 룩업 테이블(82)에서의 값을 지정하게 된다. 동시에 ROM은 2와 10사이의 유효한 시프트 길이를 출력하고, 코드워드가 연속적으로 디코드되어 시스템이 다음의 코드워드의 처리를 개시하도록 리세트 될 수 있는 상태 머신을 지시한다.
15비트 보다 더 큰 코드워드가 3개의 사이클에서 처리되는 바, 제1사이클은 제2사이클 동안 이용하기 위한 제1룩업 테이블(80)로부터의 피드백 데이터를 제공하고, 제2사이클은 제3사이클 동안 이용하기 위한 제2룩업 테이블(82)로부터 피드백 데이터를 출력하며, 제3사이클은 룩업 테이블(82)로부터의 코드워드에 대한 실제적 진폭과 실행길이 데이터를 출력에서 결론지어진다. 각각의 첫 번째 2사이클 동안 상태 머신은 멀티플렉서(32)를 통해 제로 실행 계수를 출력함으로써 데이터 클록의 각 사이클에 대한 하나의 계수를 발생시키기 위한 요구가 만족되게 된다.
제9도는 코드워드 디코딩의 동작을 요약한 플로우챠트로서, 박스(150)에서 디코딩 처리가 개시되고, 박스(152)에서 새로운 코드워드의 제1N코드워드 비트가 ROM 어드레스포트에 입력된다. 상기 실시예에 있어서, 특정 디코더 구현에 따라 N을 위해 어떠한 값이 선택되어도 적절하지만, N=10으로 한다.
첫 번째 10코드워드 비트에 응답하여 상기 실시예의 디코더는 제1룩업 테이블(80)로부터 데이터를 출력하고, 시프트 길이 데이터를 포함한다. 코드워드가 10비트 보다 크지 않으면, 제1룩업 테이블로부터 출력되는 시프트 길이(SHIFTLEN)가 2내지 10의 범위로 된다. 결국, 제1룩업 테이블은 박스(156)에서 지시한 바와 같이 코드워드를 위한 실제적인 진폭과 실행길이 데이터를 출력하고, 디코더는 박스(158)에서 지시한 바와 같이 다음의 코드워드를 처리하기 위해 준비된다. 이때 다음의 코드워드를 디코딩하기 위해 제어가 박스(152)로 되돌아온다.
결국, 제1룩업 테이블로부터 출력된 SHIFTLEN은 2내지 10의 범위에 있지 않게 되고, SHIFTLEN 이 15와 같은가의 여부에 따라 박스(160)에서 결정이 이루어진다. 15의 시프트 길이는 코드워드가 길이에 있어 10비트 보다 더 큰 것을 지시하고, ROM을 통한 적어도 하나의 부가적 통로를 요구하게 된다. 이러한 발생은 박스(168)에서 하나에 대해 연속 비트를 세팅하는 것에 귀결되고, 제2룩업 테이블(82)이 이용되어야만 함과 더불어 어드레스포트(84)의 어드레스입력 5내지 9에 피드백 데이터를 입력시키도록 멀티플렉서(88)를 세팅하는 ROM을 지시한다. 이때 박스(170)에서 배럴시프터가 어드레스포트(84)의 어드레스 입력 0내지 4에 새로운 데이터의 다음의 5비트를 입력하기 위해 필요한 양을 시프트시킨다. 이를 달성하기 위해 배럴시프터는 ROM을 통해 제2통로상의 5비트와 제2통로 후의 각각의 다음 통로에 대한 5비트에 의해 시프트된다. 박스(172)에서 마지막으로 지나가는 동안 ROM으로부터 출력된 피드백 데이터는 ROM 어드레스포트에 멀티플랙서(88)를 통해 입력된다. 배럴시프터로부터의 새로운 입력 데이터와 ROM으로부터의 피드백 데이터는 ROM(22)에서의 새로운 위치를 어드레스하고, ROM으로부터의 결과적인 출력 데이터는 새로운 시프트 길이를 포함한다. 동시에 제로 실행 계수는 박스(180)에서 지시한 바와 같이 상태 머신에 응답하여 멀티플렉서(32)로부터 출력되게 된다. 이때 루틴이 박스(160)에서 되돌려 루프된다. 실행길이가 15와 동일하면, 박스(160)가 다시 결정되고, 그와 같이 되면, 시프트 길이가 더 이상 15와 같지 않을때까지 연속적으로 ROM을 통해 이어서 지나간다. 이와 같은 점에 있어서, 박스(162)는 시프트 길이가 11과 같으면 결정되게 된다.
이와 같다면, 코드워드는 ROM의 바깥 측에서 처리되어질 수 있는 특정 11비트 코드워드의 하나이다. 이러한 처리가 박스(174)에서 일어난다.
시프트 길이가 11과 같지 않으면, 시프트 길이가 12와 같은가의 여부에 따라 결정이 박스(164)에서 이루어진다. 이와 같이 되면, 이는 코드워드가 ESC-1 코드워드임을 의미하고, 박스(176)에 따라 처리된다. 만약 시프트 길이가 12와 같지 않으면, 박스(166)는 시프트 길이가 13과 같으면 결정된다. 이와 같으면, 코드워드가 ESC-2 코드워드임을 의미하고, 박스(178)에서 처리된다.
결국 시프트 길이는 11,12,13,15가 아니고, 시프트 길이가 2내지 10의 범위 내에 있는가의 여부에 따라 박스(154)에서 결정이 이루어지며, 코드워드가 연속적으로 디코드되어지는 것을 지시한다. 이와 같이 가정하면, 디코드된 데이터가 박스(156)에서 출력됨과 더불어 박스(158)에서 다음의 코드워드 처리가 개시된다.
이상과 같이 본 발명은 변환계수를 복구하기 위한 가변 길이 코드워드를 디코딩하기 위한 디코더를 제공한다. 작은 ROM 크기가 작은(예컨대,1K)룩업 테이블에 의해 수용되는 다른 것 보다 더 큰 길이의 코드워드를 처리하기 위한 피드백을 이용함으로써 제공된다. 코드워드가 소정 수의 비트 보다 더 적으면, 이는 1클록 사이클내에서 디코드된다. 코드워드가 소정 수의 비트 보다 더 길면, 클록 사이클 이상에서 처리되게 된다. 코드워드를 디코드하기 위해 요구되는 각 여분의 클록 사이클에 대해 제로와 동일한 실행계수가 출력됨으로써 하나의 계수가 각 클록 사이클에 대해 발생된다. 이는 실시간 비디오율에서 코드워드를 처리하기 위해 디코더를 인에이블시틴다.
한편, 본 발명은 특정 예에 대해서만 설명했지만, 이에 한정되지 않고 발명의 요지를 이탈하지 않는 범위내에서 다양하게 변형하여 실시할 수 있다.

Claims (17)

  1. n비트 어드레스포트와, 진폭과 실행길이 및 다른 코드워드를 위한 제1제어데이터를 포함하는 다수의 제1어드레스 가능 메모리 위치 및, 제2카테고리로부터 코드워드의 부분을 위한 피드백 및 제2제어데이터를 포함하는 다수의 제2 어드레스 가능메모리 위치를 갖춘 메모리수단과; 진폭과 실행길이 및 제1제어데이터를 출력하도록 상기 메모리를 어드레싱하기 위한 상기 어드레스포트에 코드워드를 입력함으로써 상기 제1카테고리로부터의 코드워드를 디코딩하기 위한 수단; 피드백 및 제2제어데이터를 출력하도록 상기 메모리를 어드레싱하기 위해 상기 어드레스포트에 제2카테고리 코드워드의 제1n비트 부분을 입력시키고, (ⅰ)적어도 하나의 부가적 부분이 상기 제2카테고리 코드워드에 남아있을 때 다음의 입력 사이클에 사용하기 위한 피드백 및 제2제어데이터를 출력하고, (ⅱ)부가적 부분이 남아있지 않을 때 상기 제2카테고리 코드워드를 위한 진폭과 실행길이 및 제1제어데이터를 출력하도록 상기 메모리를 어드레싱하기 위해 n비트 이하의 어드레스를 함께 제공되면서 상기 제2제어데이터에 응답하여 상기 피드백 데이터와 함께 상기 어드레스포트에 상기 제2카테고리 코드워드의 다음 부분을 주기적으로 입력시킴으로써 상기 제2카테고리로부터 코드워드를 디코딩하기 위한 수단 및; 진폭과 실행길이 및 제1제어데이터의 출력으로 귀결되지 않는 상기 제2카테고리 코드워드의 각 부분을 위한 실행계수를 출력하기 위해 상기 제2제어데이터에 응답하는 수단을 구비하여 구성되어, 코드워드가 소정의 다른 코드워드의 프리픽스인 것이 없는 특성을 갖추고, 상기 코드워드의 제1카테고리가 n비트 보다 더 크지 않은 길이를 갖추면서 상기 코드워드의 제2카테고리가 n비트 보다 더 큰 길이를 갖추고서, 변환계수를 복구하기 위해 가변길이 코드워드를 디코딩하기 위한 것을 특징으로 하는 디지털 통신시스템용 가변길이 코드워드 디코더.
  2. 제1항에 있어서, (ⅰ)진폭계수를 발생시키기 위한 진폭과 실행길이 및 제1제어 데이터와 (ⅱ) 실행계수를 발생시키기 위한 피드백과 제2제어데이터가 상기 메모리수단으로부터 출력되는 것 중 적어도 어느 하나의 동안에 연속적인 클록 사이클을 확립하기 위해 상기 메모리수단과 상기 제1 및 제1카테고리 코드워드 디코딩수단에 클록신호를 제공하도록 결합된 클록수단을 더 갖추고, 계수가 모든 클록 사이클에 대한 가변길이 코드워드로부터 발생되어지는 것을 특징으로 하는 디지털 통신시스템용 가변길이 코드워드 디코더.
  3. 제1항에 있어서, 상기 제2카테고리 코드워드 디코딩수단이, 제2카테고리 코드워드의 대응 부분을 수신하는 다수의 나머지 어드레스포트 입력과 함께 상기 입력에 코드워드 데이터를 입력하는 대신에 소정의 다수의 어드레스포트 입력에 제2카테고리 코드워드에 대한 피드백 데이터를 입력하기 위해 상기 제2제어데이터에 응답하는 멀티플렉서수단으로 이루어진 것을 특징으로 하는 디지털 통신시스템용 가변길이 코드워드 디코더.
  4. 제3항에 있어서, 상기 피드백 데이터가 n/2의 비트길이를 갖추고, 상기 제2카테고리 코드워드의 대응 부분이 n/2보다 크지 않은 비트 길이를 갖추고 있는 것을 특징으로 하는 디지털 통신시스템용 가변길이 코드워드 디코더.
  5. 제1항에 있어서, 진폭과 실행길이 데이터가 상기 메모리수단내에 제공되지 않는 특정 경우의 코드워드를 검출하기 위한 수단과, 상기 특정 경우의 코드워드를 디코딩하기 위해 상기 검출수단에 응답하는 수단을 더 구비하여 구성된 것을 특징으로 하는 디지털 통신시스템용 가변길이 코드워드 디코더.
  6. 제1항에 있어서, 상기 메모리수단이 실질적으로 2×2n과 동일한 저장 캐피시티를 갖추고 있는 것을 특징으로 하는 디지털 통신시스템용 가변길이 코드워드 디코더.
  7. 제1항에 있어서, 상기 제2카테고리 코드워드의 상기 다음의 부분이 코드워드내의 남이 있는 처리되지 않은 비트수나 n/2보다 더 작은 비트길이를 갖추고, 상기 피드백 데이터가 n/2의 비트 길이를 갖추고 있는 것을 특징으로 하는 디지털 통신시스템용 가변길이 코드워드 디코더.
  8. 제1항에 있어서, 상기 메모리수단이, 상기 제1카테고리 코드워드에 대응하는 다수의 제1위치에서의 어드레스 가능 메모리위치와, 상기 제2카테고리 코드워드의 제1n비트 부분에 대응하는 다수의 제2위치에서의 어드레스 가능 메모리 위치를 포함하는 제1룩업 테이블과; 상기 제2카테고리 코드워드에 대응하는 다수의 제1위치에서의 어드레스 가능 메모리위치와, 상기 제2카테고리 코드워드의 다음의 부분에 대응하는 다수의 제2위치에서의 어드레스 가능 메모리 위치를 포함하는 제2룩업 테이블로 이루어진 것을 특징으로 하는 디지털 통신시스템용 가변길이 코드워드 디코더.
  9. 제8항에 있어서, 상기 메모리수단이 상기 제1룩업 테이블 또는 제2룩업 테이블중 어느 하나를 어드레스하도록 상기 n비트 어드레스포트에 선택적으로 데이터를 결합하는 제어데이터를 수신하기 위한 부가적인 어드레스포트를 구비하여 이루어진 것을 특징으로 하는 디지털 통신시스템용 가변길이 코드워드 디코더.
  10. 제9항에 있어서, 상기 제1 및 제2룩업 테이블이 각각 실질적으로 2n워드의 저장 캐패시티를 갖추고 있는 것을 특징으로 하는 디지털 통신시스템용 가변길이 코드워드 디코더.
  11. 제11항의 있어서, 상기 코드워드를 수신하기 위한 입력과, 상기n비트 어드레스포트에 코드워드와 그 부분을 출력하기 위해 상기 제1 및 제2제어데이터로부터 추출된 시프트 길이 정보에 응답하는 수단을 갖춘 배럴시프터를 더 구비하여 구성된 것을 특징으로 하는 디지털 통신시스템용 가변길이 코드워드 디코더.
  12. 제11항에 있어서, 새로운 코드워드의 디코딩을 초기화하기 위한 상기 시프트 길이 정보에 응답하는 수단을 더 구비하여, 상기 시프트 길이 정보가 코드워드의 디코딩이 완성되었는가를 지시하도록 된 것을 특징으로 하는 디지털 통신시스템용 가변길이 코드워드 디코더.
  13. 제1항에 있어서, 상기 코드워드가 이산 코사인 변환계수로부터 추출된 허프만 코드워드인 것을 특징으로 하는 디지털 통신시스템용 가변길이 코드워드 디코더.
  14. 길이가 n비트 보다 더 크지 않은 제1코드워드나 길이가 n비트를 초과하는 제2코드워드의 제1n비트까지에 의해 어드레스 가능한 제1룩업 테이블과, p비트의 피드백 데이터와 m비트 또는 제2코드워드의 더 작은 부분에 의해 어드레스 가능한 제2룩업 테이블로 구성되면서 p+m≤n과 상기 m비트 또는 더 작은 부분이 상기 제2코드워드의 제1n비트에 따르고, 상기 제1룩업 테이블이 상기 제1코드워드에 대응하는 진폭 및 실행길이 데이터와, 초기 n비트나 상기 제2코드워드의 더작은 부분에 대응하는 피드백 데이터를 포함하고, 상기 제2룩업 테이블이 마지막 m비트나 상기 제2코드워드의 더 작은 부분에 대응하는 진폭 및 실행길이 데이터와, 상기 초기 및 마지막 부분 사이 이외의 상기 제2코드워드의 소정의 비트 부분에 대응하는 피드백 데이터를 포함하는 것을 특징으로 하는 가변길이 코드워드 디코딩용 피드백 메모리.
  15. 제14항에 있어서, 코드워드 및 피드백 데이터를 수신하기 위한 n비트 어드레스포트와, 상기 제1룩업 테이블이나 상기 제2룩업 테이블을 어드레스하도록 상기 어드레스포트를 선택적으로 결합하기 위한 수단을 더 구비하여 구성된 것을 특징으로 하는 가변길이 코드워드 디코딩용 피드백 메모리.
  16. 단일 클록 사이클에서 길이가 n비트까지의 제1코드워드를 디코딩하는 단계와, 클록 사이클의 다수의 p에서 길이가 n비트 보다 더 크면서 적어도 p-1의 실행길이를 갖춘 사건을 표현하는 제2코드워드를 디코딩하는 단계와, 특정 에스케이프 코드를 구비한 제로 실행길이의 사건을 표현하는 제3코드워드를 식별하는 단계 및, 상기 특정 에스케이프 코드의 검출에 응답하여 하나의 클록 사이클에서 상기 제3코드워드를 디코딩하는 단계로 이루어진 것을 특징으로 하는 제로 실행길이의 사건을 표현하는 코드워드를 포함하는 다수의 가변길이 코드워드를 디코딩하기 위한 방법.
  17. 제16항에 있어서, 상기 제1 및 제2코드워드가 대응하는 진폭 및 실행길이 데이터를 제공하도록 룩업 테이블을 이용하여 디코드되고, 상기 제3코드워드가 기준 없이 진폭데이터를 상기 룩업 테이블에 직접 출력함으로써 디코드되도록 된 것을 특징으로 하는 제로 실행길이의 사건을 표현하는 코드워드를 포함하는 다수의 가변길이 코드워드를 디코딩하기 위한 방법.
KR1019930004646A 1992-03-26 1993-03-25 디지탈 통신시스템용 가변길이 코드워드디코더 및 그 디코딩 방법 KR100188427B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/858,101 US5233348A (en) 1992-03-26 1992-03-26 Variable length code word decoder for use in digital communication systems
US7/858,101 1992-03-26
US07/858,101 1992-03-26

Publications (2)

Publication Number Publication Date
KR930020997A KR930020997A (ko) 1993-10-20
KR100188427B1 true KR100188427B1 (ko) 1999-06-01

Family

ID=25327482

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930004646A KR100188427B1 (ko) 1992-03-26 1993-03-25 디지탈 통신시스템용 가변길이 코드워드디코더 및 그 디코딩 방법

Country Status (7)

Country Link
US (1) US5233348A (ko)
EP (1) EP0562419B1 (ko)
JP (1) JP2511788B2 (ko)
KR (1) KR100188427B1 (ko)
AU (1) AU654929B2 (ko)
CA (1) CA2091815C (ko)
DE (1) DE69333714T2 (ko)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336180B1 (en) 1997-04-30 2002-01-01 Canon Kabushiki Kaisha Method, apparatus and system for managing virtual memory with virtual-physical mapping
DE69228641T2 (de) * 1991-04-10 1999-10-07 Mitsubishi Electric Corp Kodierer und dekodierer
US6167539A (en) * 1991-11-14 2000-12-26 Canon Kabushiki Kaisha Transmitting apparatus with code formation based on detected transmission channel data
EP0546795B1 (en) * 1991-12-09 1997-03-05 Matsushita Electric Industrial Co., Ltd. Digital modulator or demodulator circuit
US5821885A (en) * 1994-07-29 1998-10-13 Discovision Associates Video decompression
US5339077A (en) * 1992-08-18 1994-08-16 Idaho Research Foundation, Inc. Comma code generator
US5657423A (en) * 1993-02-22 1997-08-12 Texas Instruments Incorporated Hardware filter circuit and address circuitry for MPEG encoded data
US5493689A (en) * 1993-03-01 1996-02-20 International Business Machines Corporation System for configuring an event driven interface including control blocks defining good loop locations in a memory which represent detection of a characteristic pattern
US5446916A (en) * 1993-03-26 1995-08-29 Gi Corporation Variable length codeword packer
KR950010425B1 (ko) * 1993-09-11 1995-09-16 국방과학연구소 코드분류에 의한 병렬처리 가변장 부호 복호기
US5488366A (en) * 1993-10-12 1996-01-30 Industrial Technology Research Institute Segmented variable length decoding apparatus for sequentially decoding single code-word within a fixed number of decoding cycles
JP2902284B2 (ja) * 1993-11-12 1999-06-07 ケイディディ株式会社 動画像の符号化装置
KR0155784B1 (ko) * 1993-12-16 1998-12-15 김광호 영상데이타의 적응형 가변장 부호화/복호화방법
EP0665653B1 (en) * 1994-01-28 2001-12-05 Matsushita Electric Industrial Co., Ltd. Apparatus and method for decoding variable-length code
KR0152032B1 (ko) * 1994-05-06 1998-10-15 김광호 영상신호를 위한 가변장복호기
JP2604546B2 (ja) * 1994-05-19 1997-04-30 日本電気アイシーマイコンシステム株式会社 可変長符号の復号化処理装置
US5502493A (en) * 1994-05-19 1996-03-26 Matsushita Electric Corporation Of America Variable length data decoder for use with MPEG encoded video data
FR2722041B1 (fr) * 1994-06-30 1998-01-02 Samsung Electronics Co Ltd Decodeur de huffman
KR0134299B1 (ko) * 1994-07-11 1998-04-29 김광호 가변장디코딩장치의 동기 복원방법 및 장치
US5719961A (en) * 1994-07-22 1998-02-17 Apple Computer, Inc. Adaptive technique for encoder and decoder signal transformation
US5566089A (en) 1994-10-26 1996-10-15 General Instrument Corporation Of Delaware Syntax parser for a video decompression processor
NL1001171C2 (nl) * 1995-09-11 1997-03-13 United Microelectronics Corp Een codetabelreductie-inrichting voor variabele lengtedecoder.
US5767799A (en) * 1995-12-05 1998-06-16 Mitsubishi Semiconductor America, Inc. Low power high speed MPEG video variable length decoder
US5657016A (en) * 1995-12-28 1997-08-12 Philips Electronics North America Corporation Variable length decoder with one of N length indicator
KR100192269B1 (ko) * 1996-03-25 1999-06-15 구자홍 가변길이 코드 디코더
US6215821B1 (en) * 1996-08-07 2001-04-10 Lucent Technologies, Inc. Communication system using an intersource coding technique
US6011498A (en) * 1996-12-20 2000-01-04 Philips Electronics North America Corporation Dual-speed variable length decoding architecture for MPEG-2 video data
AUPO648397A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Improvements in multiprocessor architecture operation
US6311258B1 (en) 1997-04-03 2001-10-30 Canon Kabushiki Kaisha Data buffer apparatus and method for storing graphical data using data encoders and decoders
US6289138B1 (en) 1997-04-30 2001-09-11 Canon Kabushiki Kaisha General image processor
US6707463B1 (en) 1997-04-30 2004-03-16 Canon Kabushiki Kaisha Data normalization technique
US6674536B2 (en) 1997-04-30 2004-01-06 Canon Kabushiki Kaisha Multi-instruction stream processor
US6349379B2 (en) 1997-04-30 2002-02-19 Canon Kabushiki Kaisha System for executing instructions having flag for indicating direct or indirect specification of a length of operand data
AUPO647997A0 (en) * 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Memory controller architecture
EP0963625A2 (en) * 1997-12-30 1999-12-15 Koninklijke Philips Electronics N.V. Reception of variable and run-length encoded data
WO1999044368A1 (en) 1998-02-27 1999-09-02 Kanebo Limited Image data processing device and processing method
US6298087B1 (en) 1998-08-31 2001-10-02 Sony Corporation System and method for decoding a variable length code digital signal
US6215424B1 (en) * 1998-12-16 2001-04-10 Thomson Licensing S.A. System for variable length codeword processing suitable for video and other applications
KR100565571B1 (ko) * 1999-02-10 2006-03-29 엘지전자 주식회사 디지털 티브이의 캡션 정보 처리 장치
KR20010058369A (ko) * 1999-12-27 2001-07-05 구자홍 코드길이에 따른 허프만 코드 복호장치 및 방법
US7110466B1 (en) * 2000-06-05 2006-09-19 Lucent Technologies Inc. Variable rate message coding
US6731686B1 (en) * 2000-05-31 2004-05-04 Sun Microsystems, Inc. Apparatus and method for pipelining variable length decode and inverse quantization operations in a hybrid motion-compensated and transform coded video decoder
KR100993443B1 (ko) * 2001-11-22 2010-11-09 파나소닉 주식회사 복호화 방법
US6933865B1 (en) * 2004-01-29 2005-08-23 Seagate Technology Llc Method and apparatus for coded symbol stuffing in recording systems
US7415161B2 (en) * 2004-03-25 2008-08-19 Faraday Technology Corp. Method and related processing circuits for reducing memory accessing while performing de/compressing of multimedia files
US8620644B2 (en) * 2005-10-26 2013-12-31 Qualcomm Incorporated Encoder-assisted frame loss concealment techniques for audio coding
FR2895602B1 (fr) * 2005-12-22 2008-03-07 Assistance Tech Et Etude De Ma Dispositif et procede d'encodage de type cabac
US8665967B2 (en) * 2006-02-15 2014-03-04 Samsung Electronics Co., Ltd. Method and system for bit reorganization and packetization of uncompressed video for transmission over wireless communication channels
US20070202843A1 (en) * 2006-02-15 2007-08-30 Samsung Elctronics Co., Ltd. Method and system for data partitioning and encoding for transmission of uncompressed video over wireless communication channels
US20070230461A1 (en) * 2006-03-29 2007-10-04 Samsung Electronics Co., Ltd. Method and system for video data packetization for transmission over wireless channels
US7840726B2 (en) * 2006-04-12 2010-11-23 Dell Products L.P. System and method for identifying and transferring serial data to a programmable logic device
US8175041B2 (en) * 2006-12-14 2012-05-08 Samsung Electronics Co., Ltd. System and method for wireless communication of audiovisual data having data size adaptation
US8176524B2 (en) * 2008-04-22 2012-05-08 Samsung Electronics Co., Ltd. System and method for wireless communication of video data having partial data compression
US8861877B2 (en) 2012-07-19 2014-10-14 Omnivision Technologies, Inc. System and method for improving decoder performance by using multiple decoding channels
GB2507603B (en) * 2013-03-01 2014-10-01 Gurulogic Microsystems Oy Data encoder, data decoder and method
US20160044339A1 (en) * 2014-08-07 2016-02-11 Qualcomm Incorporated System and method for reordering of prefixes and suffixes in variable length coding to increase throughput
US10997112B2 (en) * 2019-10-02 2021-05-04 International Business Machines Corporation Link interface
US11734105B2 (en) 2020-07-06 2023-08-22 International Business Machines Corporation Efficient error reporting in a link interface

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3701111A (en) * 1971-02-08 1972-10-24 Ibm Method of and apparatus for decoding variable-length codes having length-indicating prefixes
US3883847A (en) * 1974-03-28 1975-05-13 Bell Telephone Labor Inc Uniform decoding of minimum-redundancy codes
US4725815A (en) * 1984-01-16 1988-02-16 International Business Machines Corporation Method for encoding and decoding a digital image
JPH03145223A (ja) * 1989-10-30 1991-06-20 Toshiba Corp 可変長符号復調装置
EP0442548B1 (fr) * 1990-01-30 1995-08-02 Laboratoires D'electronique Philips S.A.S. Dispositifs de codage et de décodage à longueur variable de signaux numériques
JPH0437316A (ja) * 1990-06-01 1992-02-07 Matsushita Electric Works Ltd 可変長符号復号化装置
JPH04107013A (ja) * 1990-08-28 1992-04-08 Ricoh Co Ltd 可変長符号の符号化回路

Also Published As

Publication number Publication date
DE69333714T2 (de) 2005-12-01
EP0562419A2 (en) 1993-09-29
JP2511788B2 (ja) 1996-07-03
JPH06104768A (ja) 1994-04-15
EP0562419B1 (en) 2004-12-01
DE69333714D1 (de) 2005-01-05
AU654929B2 (en) 1994-11-24
CA2091815C (en) 2000-05-23
CA2091815A1 (en) 1993-09-27
US5233348A (en) 1993-08-03
AU3403393A (en) 1993-09-30
KR930020997A (ko) 1993-10-20
EP0562419A3 (en) 1994-06-22

Similar Documents

Publication Publication Date Title
KR100188427B1 (ko) 디지탈 통신시스템용 가변길이 코드워드디코더 및 그 디코딩 방법
US6008745A (en) Variable length decoding using lookup tables
US6219457B1 (en) Method and system for decoding data encoded in a variable length code word
US5057917A (en) Real-time data compression of broadcast video signals
JP2945268B2 (ja) デジタルビデオデータの適合圧縮
US5774594A (en) Signal compression device
JP2630809B2 (ja) ビデオ画像伝送システム
EP0562420B1 (en) Method and apparatus for vector coding of video transform coefficients
US5563593A (en) Video coding with optimized low complexity variable length codes
KR0180169B1 (ko) 가변길이 부호기
JPH104550A (ja) Mpeg−2復号方法及びmpeg−2ビデオ復号器
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
WO1996019045A1 (en) Syntax-based arithmetic coding for low bit rate videophone
EP1095459A1 (en) Real time algorithms and architectures for coding images compressed by dwt-based techniques
US5574449A (en) Signal processing with hybrid variable-length and entropy encodidng
US6055272A (en) Run length encoder
US5650823A (en) Half pel motion estimation method for B pictures
EP0925555B1 (en) Dual-speed variable length decoder and decoding architecture for mpeg-2 video data
US5767799A (en) Low power high speed MPEG video variable length decoder
US5657092A (en) HDTV system having picture-in-picture function
EP0782341A2 (en) Image data compression system
JPH10145789A (ja) 動画像符号化方法及び動画像復号方法
KR100396173B1 (ko) 가변길이 복호화 장치
Park et al. Area efficient fast Huffman decoder for multimedia applications
KR100242832B1 (ko) 양자화 스텝값 발생장치

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: 20080103

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee