KR100195722B1 - 가변 길이 복호기 - Google Patents

가변 길이 복호기 Download PDF

Info

Publication number
KR100195722B1
KR100195722B1 KR1019950061389A KR19950061389A KR100195722B1 KR 100195722 B1 KR100195722 B1 KR 100195722B1 KR 1019950061389 A KR1019950061389 A KR 1019950061389A KR 19950061389 A KR19950061389 A KR 19950061389A KR 100195722 B1 KR100195722 B1 KR 100195722B1
Authority
KR
South Korea
Prior art keywords
variable length
code
output
outputting
bits
Prior art date
Application number
KR1019950061389A
Other languages
English (en)
Other versions
KR970057901A (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 전주범
Priority to KR1019950061389A priority Critical patent/KR100195722B1/ko
Publication of KR970057901A publication Critical patent/KR970057901A/ko
Application granted granted Critical
Publication of KR100195722B1 publication Critical patent/KR100195722B1/ko

Links

Classifications

    • 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
    • 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

Landscapes

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

Abstract

본 발명은 가변 길이 복호기에 관한 것으로, 가변 길이 부호화된 비트열을 가변 길이 코드의 길이 만큼 배럴 시프트시켜 가변 길이 코드의 최대 길이로 잘라서 출력하는 가변 길이 복호기 코아(20)와; 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드의 상위 일정 비트가 0인지 1인지를 검사하여 그 결과에 따라 제어신호를 출력하는 제로검출부(23); 상기 제로검출부(23)의 제어 신호에 따라 상기 가변 길이 복호기 코아(20)에서 출력된 가변길이 코드의 일부만을 출력하는 코드 다중화기(24); 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드 및 헤더 정보를 입력받아 테이블 선택 신호를 출력하는 제어부(25); 상기 제로검출부(23)에서 출력된 제어 신호에 따라 상기 코드 다중화기(24)에서 입력된 가변 길이 코드를 각 PLA 테이블을 통해 복호화함과 더불어 상기 제어부(25)에서 입력된 테이블 선택신호에 따라 각 PLA 테이블을 통해 복호화된 값중 어느 한 값을 선택하여 가변 길이 코드의 길이 정보와 헤더 정보 및 (런, 레벨)값을 각각 출력하는 테이블부(30); 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드를 지연시켜 출력하는 지연부(40) 및; 상기 테이블부(30)에서 출력된 길이 정보를 입력받아 상기 지연부(40)를 통해 입력된 가변길이 코드의 부호 비트를 검출하여 출력하는 부호 비트 검출부(42)를 포함하여 구성되어, 가변 길이 복호기 코아의 출력단의 팬아웃을 현저하게 줄일 수 있을 뿐만 아니라 가변 길이 복호화 속도를 향상시킴과 더불어 DCT 계수의 부호 비트를 손쉽게 처리할 수 있는 것이다.

Description

가변 길이 복호기
제1도는 영상부호화기의 개략적인 블록도.
제2도는 영상복호화기의 개략적인 블록도.
제3도는 종래의 가변 길이 복호기의 개략적인 블록도.
제4도는 본 발명에 따른 가변 길이 복호기의 개략적인 블록도.
* 도면의 주요부분에 대한 부호의 설명
20 : 가변 길이 복호기 코아 23 : 제로검출부
24 : 코드 다중화기 25 : 제어부
30 : 테이블부 40 : 지연부
42 : 부호 비트 검출부
본 발명은 영상 부호화기의 가변 길이 부호화기에 의해 가변 길이 부호화되어 전송된 비트 스트림을 가변 길이 복호화하는 가변 길이 복호기에 관한 것으로, 특히 가변 길이 복호화 속도를 향상시킨 가변 길이 복호기에 관한 것이다.
현대 사회를 일컬어 정보화 사회라고 하는 바, 처리해야 하는 정보의 양이 나날이 늘어나는 추세이므로, 기존의 전송대역을 효과적으로 이용하기 위해서는 데이터를 압축하여야 한다.
특히, 디지털 영상신호의 경우에는 정보량이 매우 방대하기 때문에 정보의 저장과 검색, 전송 등을 보다 효율적으로 하기 위해서는 영상 데이터를 압축하는 것이 필수적이다.
이러한 이유에서 영상 데이터에 대한 압축 기법들이 많이 개발되어 왔으며, 이러한 영상 데이터 압축을 한마디로 요약하면 영상이 갖는 공간적, 시간적 중복성, 통계적 중복성을 제거함으로써 영상을 표시하는데 필요한 데이터량을 줄이는 것이다.
상기와 같은 영상 데이터 압축기법은 정보의 손실 여부에 따라 손실 부호화와 무손실 부호화 기법으로 나눌 수 있으며, 정지 영상에 존재하는 공간적 중복성을 제거하기 위한 프레임내(intraframe) 부호화와 동영상에 존재하는 시간적 중복성을 제거하기 위한 프레임간(interframe) 부호화로 나눌 수 있다.
상기 공간적 중복성을 제거하기 위한 프레임내 부호화는 변환부호화의 일종인 이산여현변환부호화(DCT) 및 양자화를 예로 들 수 있으며, 상기 시간적 중복성을 제거하기 위한 프레임간 부호화의 일예로는 시간적으로 인접한 두 화면간의 움직임을 추정하여 보상함으로써 시간적인 증폭성을 제거하는 움직임 추정 보상 부호화(motion estimation/compensation coding)를 들 수 있다.
그리고, 상기 이산여현부호화(DCT)와 양자화 과정을 거친 계수값들을 엔트로피 부호화하여 통계적 중복성(statistical redundancy)을 제거하는 것이다.
즉, 상기 엔트로피 부호화는 양자화된 화소의 발생빈도가 다르게 분포되어 있으며 그들의 엔트로피가 B 보다 작다면 Bbpp 보다 작은 코드가 존재한다는 통계적 특성을 이용하여 비트 발생율을 최소로 감축시키기 위한 무손실 부호화 알고리즘을 말한다.
이러한 엔트로피 부호화 기법에는 허프만 부호화 기법을 이용한 가변 길이 부호화(Variable Length Coding : VLC)기법, 줄길이 부호화(Run Length Coding : RLC)기법 및, 비트 프레인 부호화(Bit Plane Coding : BPC)기법 등 여러 가지가 있으나 가변길이 부호화 및 줄길이 부호화 기법이 가장 널리 이용되고 있다.
상기 가변 길이 부호화는 부호화되는 심볼의 확률적 분포에 따라 자주 발생되는 심볼에는 작은 비트를 할당하고, 발생빈도가 낮은 심볼에 대해서는 많은 비트를 할당함으로써, 전체적으로 비트 발생율을 최소화하는 기법이다.
이러한 가변길이 부호화에는 여러 가지 종류가 있으나 구현이 용이한 허프만 부호화가 가장 널리 사용되고 있다.
또한, 상기 줄길이 부호화는 주로 이산여현부호화(DCT)와 같은 변환 부호화의 압축 효율을 증가시키기 위해 사용되는 것으로 변환된 DCT 계수들은 일반적으로 대부분의 에너지가 낮은 주파수에 집중되고 높은 주파수 성분들은 거의 0에 가까운 값을 갖게 됨에 따라 지그-재그 주사(zig-zag scan)를 하여 가능한 한 긴 0의 1차원 데이터 열로 만든 다음 계속되는 0의 개수와 바로 연속되는 0이 아닌 계수값으로 구성된 2차원 심볼을 만드는 것이다.
한편, 제1도는 일반적인 영상 부호화기의 구성을 개략적으로 나타낸 블록도로서, H,261, MPEG-1,MPEG-2 등의 많은 표준화된 부호기에서 사용되는 것이다.
즉, 이산여현변환부(DCT)(1)에서는 픽셀간의 상관성을 제거하기 위하여 프레임간 차 영상을 예를 들면, 8×8 픽셀의 블록으로 이산여현변환하여 이산여현변환계수를 출력하고, 양자화기(2)에서는 상기 이산여현변환부(1)에서 출력되는 프레임간 차 영상의 이산여현변환 계수를 소정의 양자화간격으로 양자화하여 출력한다.
상기 양자화기(2)에서 양자화된 DCT 계수는 지그-재그 스캐닝 과정을 거쳐 1차원 데이터 열로 변환되어 줄길이 부호기(3)로 입력되고, 상기 줄길이 부호기(3)는 지그-재그 스캐닝 과정을 통해 출력된 데이터열을 계속되는 0의 개수와 바로 연속되는 0이 아닌 계수값으로 구성된 (런, 레벨)의 2차원으로 만든다.
그리고, 상기 줄길이 부호기(3)에서 줄길이 부호화된 데이터는 가변 길이 부호기(4)에서 허프만 테이블에 의해 가변길이 부호화된 다음 비디오 버퍼(도시하지 않음)로 출력되는 것이다.
이때, DCT 계수중 DC 계수와 AC 계수를 구분하여 다른 방법으로 부호화 한다. 보통 각 블록의 DC 값은 주변 블록의 DC 값과 많은 상관성이 있으므로 이전 블록의 DC 값과 차이를 구하여 그 차이값을 부호화하고, 첫 번째 블록의 DC 값은 DC 값의 가변범위의 중간값인 128과의 차이를 구하여 부호화 한다. 이렇게 구해진 DC 의 차이값들은 일차원 가변길이 부호화를 통하여 부호화하게 되는 것이다.
즉, 상기 DC 계수는 DC 크기(dct-dc-size)와 DC 차이(dct-dc-differential)로 나누어져 가변길이 부호화 되는데, DC 크기(dct-dc-size)가 0 이면 그냥 DC 크기(dct-dc-size)의 코드만 전송되고, 0 이 아니면 그 뒤에 DC 크기(dct-dc-size)의 비트 수 만큼 DC 차이(dct-dc-differential)값을 전송하는 것이다.
또한, AC는 DCT 영역에서 DC 계수 부근의 AC 계수값이 0 이 아닐 확률이 높고, DC에서 멀어질수록 0이 발생할 확률이 높다는 점을 이용하여 보다 더 효과적인 데이터 압축을 위해 계수들을 재정렬하는데, 주로 지그-재그 주사를 통하여 1차원으로 정렬한다. 여기서 0이 연속적으로 나타나는 개수(zero-run)와 0 이 아닌 계수들의 값(level)을 (런, 레벨)의 2차원으로 표현한다.
예를 들어, 지그-재그 스캔이 되어, 30,2,0,0,-8,0,0,0,9...와 같이 정열된 DCT 계수는 줄길이 부호기(6)를 통하여 (0,30),(0,2),(2,-8),(3,9)... 와 같이 표현된다.
그리고, 지그-재그 주사된 계수들이 어떤 위치 이후에 계속해서 끝까지 발생할 경우는 블록의 끝을 나타내는 EOB(end of block) 부호를 추가한다.
이와 같이, 줄길이 부호화된 데이터는 허프만 테이블에 의해 가변 길이 부호화되는 것이다.
또한, 인터코딩(intering)에서 전송해야할 계수가 없는 경우 이를 skipped amcroblock 이라 하는데 이러한 skipped amcroblock 블록이 몇 개나 계속되는지를 나타내는 정보 데이터와, 각 매크로 블록에 속해있는 블록들이 코딩이 됐는가를 나타내는 정보 데이터들도 상기 비디오 버퍼(도시하지 않음)를 통해 복호기로 전송되는 것이다.
한편, 상기와 같은 압축과정을 통해 전송된 영상데이타는 영상 복호기에서 원래의 데이터로 복원되며, 이러한 영상 복호기는 상기 영상 부호화를 역으로 구현하면 되는 것이다.
즉, 제2도는 일반적인 영상 복호기의 개략적인 블록도로서, 부호화된 데이터상 데이터에 대해 가변길이 복호화를 수행하여 출력하는 가변 길이 복호기(5)와, 상기 가변 길이 복호기(5)에서 출력된 영상 데이터에 대해 줄 길이 복호기를 수행하는 줄길이 복호기(6); 상기 줄길이 복호기(6)에서 출력된 데이터를 역으로 스캔하여 8×8 주파수 계수 블록을 출력하는 역스캐닝부(7); 상기 역스캐닝부(7)에서 출력된 8×8 주파수 계수 블록에 대해 역 양자화를 수행하여 출력하는 역 양자화기(8); 상기 역 양자화기(8)에서 출력된 8×8 주파수 계수 블록에 대해 DCT를 역으로 수행하여 8×8 최소 블록을 출력하는 역이산여현변환부(9)를 포함하여 구성되어 있다.
상기와 같은 영상복호기에 있어서, 가변 길이 복호기(5)는 부호화된 비트 스트림으로부터 가변 길이 부호화된 DCT 계수를 뽑아서 가변 길이 부호화를 역으로 수행한 다음 줄길이 복호기(6)로 출력하고, 상기 줄길이 복호기(6)는 상기 가변 길이 복호기(5)에서 출력된 데이터에 대해 줄길이 복호화를 수행하여 역 스캐닝부(7)로 출력하는 것이다.
즉, 상기 줄길이 복호기(6)로 입력되는 데이터 기본적으로 런(run)과 레벨(level)을 갖게 되며, 런(run)은 0의 길이를 나타내고 레벨(level)은 런 길이 만큼의 0 후에 이어지는 값이다.
그리고, 역 스캐닝부(7)는 상기 줄길이 복호기(6)에서 출력된 일차원 DCT 계수를 스캐닝 방법에 따라 다시 2차원으로 바꿔주는 작업을 하는 것이다.
상기와 같이 2차원으로 출력된 DCT 계수는 역 양자화기(8)에서 역 양자화 되어 실제의 DCT 계수값으로 복원된 다음, 역 이산여현변환부(9)에서 역 이산여현변환되어 8×8 화소 블록으로 출력되는 것이다.
이때, 제1도에 도시된 가변 길이 부호기(4)는 코드 테이블에서 소스 심볼(sorce symbol)을 찾아서 여기에 해당하는 비트열을 생성함에 따라 간단하게 수행할 수 있는 반면에, 상기 제2도의 가변길이 복호기(5)에 의해 수행되는 가변 길이 복호화 과정은 매우 어렵다.
즉, 가변 길이 부호화된 비트열은 순차적이므로 하나의 가변 길이 코드가 복호화된 다음에야 다음 가변 길이 코드를 복호화 할 수 있으므로 파이프 라인이나 병열 처리가 곤란하다.
또한, 가변 길이 부호화된 비트열은 각 가변길이 워드의 길이가 다르므로 비트열의 입력속도를 일정하게 하면 출력 속도가 가변적이 되고, 출력속도를 일정하게 하면 비트열의 입력 속도가 가변적이 된다. 따라서, 처리 속도의 차이에 따른 버퍼 제어나 스톨(stall) 처리가 필요하다.
한편, 가변 길이 코드의 스트림을 복호화 하는 장치는 크게 순차적으로 복호화와 병열 복호화로 나눌 수 있는데, 특히 순차적 복호화는 비트열을 앞에서부터 차례대로 복호화하는 방법으로서, 정속 입력 구조, 정속 출력 구조, 가변 입/출력 구조로 나눌 수 있다.
그중 정속 출력 구조의 가변 길이 복호기는, Bell Core의 M.T Sum이 제안한 구조로 입력 비트열을 가변 길이 코드의 최대 길이(17비트)만큼 잘라서 ROM/PLA(Read Only Memory/ Programmable Logic Array)테이블에 입력하여 가변 길이 코드를 찾은 후, 찾은 가변 길이 코드의 길이 만큼 배럴 시프터(barrel shifter)로 시프트 시킨 후 다음 코드 워드를 찾는 방식이다. (Bell Core, U.S.A Patent no. 5173695, 5245338)
상기와 같은 방식의 가변 길이 복호기는 제3도에 도시된 바와 같이, 가변 길이 부호화된 비트열을 가변 길이 코드의 길이 만큼 배러 시프트 시켜 가변 길이 코드의 최대 길이(17비트)로 잘라서 출력하는 가변 길이 복호기 코아(20)와; 상기 가변길이 복호기 코아(20)에서 출력된 가변 길이 코드 및 헤더 정보를 입력받아 테이블 선택신호를 출력하는 상태 제어부(25) 및; 상기 가변 길이 복호기 코아(20)에서 입력된 가변 길이 코드를 각 PLA 테이블을 통해 복호화함과 더불어 상기 제어부(25)에서 입력된 테이블 선택신호에 따라 각 PLA 테이블을 통해 복호화된 값 중 어느 한 값을 선택하여 가변 길이 코드의 길이 정보는 상기 가변 길이 복호기 코아(20)로 입력하고, 헤더 정보는 상기 상태 제어기(25)로 입력하는 한편, (런, 레벨)값은 버퍼(27)를 통해 줄-길이 복호기(29)로 출력하는 테이블부(30)를 포함하여 구성되어 있다.
즉, 상기 가변길이 복호기 코아(20)는 시스템 복호기 (도시하지 않음)을 통해 출력된 비트열을 가변 길이 코드의 최대길이(17 비트)만큼 잘라서 출력하며, 이때 상기 테이블부(30)로부터 입력된 가변 길이 코드의 길이만큼 배럴 시프트 시킨 다음 다시 가변 길이 코드의 최대 길이(17비트)만큼 잘라서 출력하는 것을 반복한다.
그리고, 상기 제어부(25)는 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드 및 테이블부(30)에서 출력된 6 비트의 헤더 정보를 입력받아 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드가 상기 테이블부(30)의 각 PLA 테이블 중 어느 PLA 테이블에 해당하는 지를 알아내어 해당하는 PLA 테이블을 선택하도록 3비트의 테이블 선택신호를 상기 테이블부(30)로 출력하는 것이다.
그리고, 테이블부(30)는 상기 가변 길이 복호기 코아(20)에서 입력된 17 비트의 가변 길이 코드를 각 PLA 테이블을 통해 동시에 복호화하고, 상기 상태 제어기(25)에서 입력된 테이블 선택신호에 따라 각 PLA 테이블을 통해 복호화된 값 중 어느 한 값을 선택하여 출력한다.
이때, 상기 테이블(30)의 각 PLA 테이블을 통해 복호화된 값이 가변 길이 코드의 길이 정보(5비트)이면 상기 가변 길이 복호기 코아(20)로 입력하고, 헤더 정보(6비트)이면 상기 제어부(25)로 입력하는 한편 (런, 레벨)값이면 버퍼(27)를 통해 줄-길이 복호기(29)로 출력하는 것이다.
이때, 상기 테이블부(30)는, MBA, MTYPE, DC, MVD, CBP, TCOEFF 등 크게 6개의 테이블로 이루어지며, 각 테이블마다 2비트에서 최대 17 비트를 받아서 길이 정보를 출력한다.
그리고, 헤더 정보는 MBA, MTYPE, DC, MVD, CBP 등의 테이블에서 출력되며, 매크로 블록의 헤더를 디코딩한 값이다.
그리고, TCOEFF 테이블에서는 길이와 함께 (런, 레벨)값을 출력하는데 입력 비트 수도 크지만 출력 시키는 비트 수도 크고 테이블이 가지고 있는 코드들의 수도 227개나 되므로 가장 큰 크기를 갖는다.
이와 같은 종래의 가변 길이 복호기에 있어서, 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드가 상기 테이블부(30)의 각 PLA 테이블을 통과할 때 발생되는 지연 시간과 상기 각 PLA 테이블을 통해 출력된 값을 다중화(mutiplexing)할 때 발생되는 지연 시간이 큰 뿐만 아니라, 가변 길이 코드가 모든 PLA 테이블에 입력이 되기 때문에 각 PLA 테이블로 입력되는 가변 길이 코드가 너무나 많은 팬아웃(FANOUT)이 걸리게 된다.
따라서, 각 PLA 테이블을 구동하는 출력 게이트들이 상당히 큰 지연시간을 갖는 문제점이 있었다.
특히, 가변 길이 코드의 상위 8비트는 거의 모든 테이블에 입력되므로, 이 부분에서 팬아웃(fanout)이 큰 문제점이 있었다.
또한, DCT 계수 코드의 부호 비트 (sign bit)를 PLA 테이블 만으로 처리하기 어려운 문제점이 있었다.
따라서, 본 발명은 상기와 같은 종래의 제 문제점을 해소하여, 가변 길이 복호기 코아의 출력단의 팬아웃을 현저하게 줄일 수 있을 뿐만 아니라 가변 길이 복호화 속도를 향상시킴과 더불어 DCT 계수의 부호 비트를 손쉽게 처리할 수 있는 가변 길이 복호기를 제공하는 데 그 목적이 있다.
이러한 목적을 달성하기 위한 본 발명에 따른 가변 길이 부호화는, 가별길이 부호화된 비트열을 가변 길이 코드의 길이 만큼 배럴 시프트시켜 가변 길이 코드의 최대 길이로 잘라서 출력하는 가변 길이 복호기 코아와;
상기 가변 길이 복호기 코아에서 출력된 가변 길이 코드의 상위 일정 비트가 0인지 1인지를 검사하여 그 결과에 따라 제어신호를 출력하는 제로검출부;
상기 제로검출부의 제어 신호에 따라 상기 가변 길이 복호기 코아에서 출력된 가변길이 코드의 일부만을 출력하는 코드 다중화기;
상기 가변 길이 복호기 코아에서 출력된 가변 길이 코드 및 헤더 정보를 입력받아 테이블 선택 신호를 출력하는 제어부;
상기 제로검출부에서 출력된 제어 신호에 따라 상기 코드 다중화기에서 입력된 가변 길이 코드를 각 PLA 테이블을 통해 복호화함과 더불어 상기 제어부에서 입력된 테이블 선택신호에 따라 PLA 테이블을 통해 복호화된 값중 어느 한 값을 선택하여 가변 길이 코드의 길이 정보와 헤더 정보 및 (런, 레벨)값을 각각 출력하는 테이블부;
상기 가변 길이 복호기 코아에서 출력된 가변 길이 코드를 지연시켜 출력하는 지연부 및;
상기 테이블에서 출력된 길이 정보를 입력받아 상기 지연부를 통해 입력된 가변길이 코드의 부호 비트를 검출하여 출력하는 부호 비트 검출부를 포함하여 구성된 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명한다.
제4도는 본 발명에 따른 가변 길이 복호기의 개략적인 구성도로서, 본 발명에 따른 가변 길이 복호기는, 가변 길이 부호화된 비트열을 가변 길이 코드의 길이 만큼 배럴 시프트시켜 가변 길이 코드의 최대 길이(17비트)로 잘라서 출력하는 가변 길이 복호기 코아(20)와; 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드의 상위 일정 비트가 0인지 1인지를 검사하여 그 결과에 따라 제어신호를 출력하는 제로검출부(23); 상기 제로검출부(23)의 제어 신호에 따라 상기 가변 길이 복호기 코아(20)에서 출력된 가변길이 코드의 일부만을 출력하는 코드 다중화기(24); 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드 및 헤더 정보를 입력받아 테이블 선택 신호를 출력하는 제어부(25) 상기 제로검출부(23)에서 출력된 제어 신호에 따라 상기 코드 다중화기(24)에서 입력된 가변 길이 코드를 각 PLA 테이블을 통해 복호화함과 더불어 상기 제어부(25)에서 입력된 테이블 선택신호에 따라 PLA 테이블을 통해 복호화된 값중 어느 한 값을 선택하여 가변 길이 코드의 길이 정보와 헤더 정보 및 (런, 레벨)값을 각각 출력하는 테이블부(30); 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드를 지연시켜 출력하는 지연부(40) 및; 상기 테이블(30)에서 출력된 길이 정보를 입력받아 상기 지연부(40)를 통해 입력된 가변길이 코드의 부호 비트(sign bit)를 검출하여 출력하는 부호 비트 검출부(42)를 포함하여 구성되어 있다.
이때, 상기 제로검출부(23)는, 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드 중 상위 8비트를 검사하여 상위 4비트가 모두 0 인 경우에는 1의 제어신호를 출력하고, 상위 8비트가 모두 0인 경우에는 10의 제어신호를 출력하며, 상위 4 비트가 모두 1인 경우에는 11의 제어신호를 출력하고, 이상을 제외한 나머지 경우에는 0의 제어신호를 출력하도록 되어 있다.
그리고, 상기 코드 다중화기(24)는 상기 제로검출부(23)로 부터의 1또는 11의 제어신호가 입력되면 상기 가변 길이 복호기 코아(20)에서 출력된 17 비트의 가변 길이 코드 중에서 [12 : 4]의 9 비트를 출력하고, 상기 제로검출부(23)로부터 10의 제어신호가 입력되면 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드중에서 하위 9비트를 출력하며, 상기 제로검출부(23)로부터 0의 제어 신호가 입력되면 상기 가변 길이 복호기 코아(20)에서 출력된 17 비트의 가변 길이 코드 중 상위 9비트를 출력하도록 되어 있다.
그리고, 테이블부(30)는 5비트의 런(run)값과 6비트의 레벨(level)값을 출력하도록 되어 있는 한편, 헤더 정보를 레벨 경로를 통해 상기 제어부(25)로 입력하도록 되어 있다.
그리고 상기 지연부(40)는 상기 테이블부(30)에 의해 지연되는 시간만큼 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드를 지연시켜 출력하도록 되어 있다.
상기와 같이 구성된 본 발명에 따른 가변 길이 복호화기의 작용 및 효과를 상세히 설명하면 다음과 같다.
가변 길이 복호기 코아(20)는 시스템 복호기(도시하지 않음)을 통해 시스템 복호화된 비트 스트림을 가변 길이 코드의 최대길이(17 비트)만큼 잘라서 출력한다.
그리고, 테이블부(30)로부터 입력된 가변 길이 코드의 길이만큼 배럴 시프트 시킨 다음 다시 가변 길이 코드의 최대 길이 (17 비트)만큼 잘라서 출력하는 것을 반복한다.
그리고, 제어부(25)는 상기 가변 길이 복호기 코아(20)에서 출력된 17 비트의 가변 길이 코드 및 테이블부(30)에서 출력된 헤더 정보를 입력받아 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드가 테이블부(30)의 각 PLA 테이블 중 어느 PLA 테이블에 해당하는 지를 알아내어 해당하는 PLA 테이블을 선택하도록 3비트의 테이블 선택신호를 데이블부(30)로 출력한다.
한편, 제로검출부(23)는, 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드 중 상위 8비트를 검사하여 상위 4비트가 모두 0 인 경우에는 1의 제어신호를 출력하고, 상위 8비트가 모두 0인 경우에는 10의 제어신호를 출력하며, 상위 4 비트가 모두 1인 경우에는 11의 제어신호를 출력하고, 이상을 제외한 나머지 경우에는 0의 제어신호를 출력한다.
그리고, 상기 코드 다중화기(24)는 상기 제로검출부(23)로 부터의 1 또는 11의 제어신호가 입력되면 상기 가변 길이 복호기 코아(20)에서 출력된 17 비트의 가변 길이 코드 중에서 [12 : 4]의 9 비트를 출력하고, 상기 제로검출부(23)로부터 10의 제어신호가 입력되면 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드중에서 하위 9비트를 출력하며, 상기 제로검출부(23)로부터 0의 제어 신호가 입력되면 상기 가변 길이 복호기 코아(20)에서 출력된 17 비트의 가변 길이 코드 중 상위 9비트를 출력한다.
그리고, 테이블부(30)는 상기 제로검출부(23)에서 출력된 제어신호에 따라 상기 코드 다중화기(24)에서 입력된 9비트의 가변 길이 코드를 각 PLA 테이블을 통해 복호화함과 더불어 상기 제어부(25)에서 입력된 테이블 선택신호에 따라 각 PLA 테이블을 통해 복호화된 값중 어느 한 값을 선택하여 헤더정보(6비트)와 가변 길이 코드의 길이 정보 (5비트), 런(run : 5비트), 레벨(level : 6비트)값을 각각 출력한다.
그리고, 부호 비트 검출부(42)는 상기 테이블부(30)에서 출력된 길이 정보를 입력받아 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드의 부호 비트(sign bit)를 검출하여 출력하며, 이때 상기 부호 비트 검출부(42)에서 출력된 부호 비트는 상기 테이블부(30)에서 출력된 레벨값과 묶여져 출력된다.
이때, 상기 테이블부(30)의 PLA 테이블은 MBA, MTYPE, DC, MVD, CBP, TCOEFF 등 크게 6개의 테이블로 이루어지며, 각 테이블마다 2비트에서 최대 17 비트를 받아서 길이 정보를 출력한다.
그리고, 헤더 정보는 MBA, MTYPE, DC, MVD, CBP 등의 테이블에서 출력되며, 매크로 블록의 헤더를 디코딩한 값이다.
그리고, TCOEFF 테이블에서는 길이와 함께 런, 레벨값을 출력한다.
이때, 상기 테이블부(30)는 부호 비트를 따로 처리함에 따라 5비트의 런(run)값과 6 비트의 레벨(level) 값을 출력하도록 되어 있는 한편, 상기 MBA 등의 각 PLA 테이블에서 출력되는 매크로 블록의 헤더를 디코딩한 값은 상기 레벨의 경로를 통해 상기 제어부(25)로 입력한다.
이상에서 살펴본 바와 같이 본 발명에 따르면, 가변 길이 복호기 코아의 출력단의 팬 아웃을 현저하게 줄일 수 있을 뿐만 아니라 가변 길이 부호화 속도를 향상시킴과 더불어 DCT 계수의 부호 비트를 손쉽게 처리할 수 있는 것이다.

Claims (8)

  1. 가변 길이 부호화된 비트열을 가변 길이 코드의 길이 만큼 배럴 시프트시켜 가변 길이 코드의 최대 길이로 잘라서 출력하는 가변 길이 복호기 코아(20)의; 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드의 상위 일정 비트가 0인지 1인지를 검사하여 그 결과에 따라 제어신호를 출력하는 제로검출부(23); 상기 제로검출부(23)의 제어 신호에 따라 상기 가변 길이 복호기 코아(20)에서 출력된 가변길이 코드의 일부만을 출력하는 코드 다중화기(24); 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드 및 헤더 정보를 입력받아 테이블 선택 신호를 출력하는 제어부(25); 상기 제로검출부(23)에서 출력된 제어 신호에 따라 상기 코드 다중화기(24)에서 입력된 가변 길이 코드를 각 PLA 테이블을 통해 복호화함과 더불어 상기 제어부(25)에서 입력된 테이블 선택신호에 따라 PLA 테이블을 통해 복호화된 값중 어느 한 값을 선택하여 가변 길이 코드의 길이 정보와 헤더 정보 및 (런, 레벨)값을 각각 출력하는 테이블부(30); 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드를 지연시켜 출력하는 지연부(40) 및; 상기 테이블(30)에서 출력된 길이 정보를 입력받아 상기 지연부(40)를 통해 입력된 가변길이 코드의 부호 비트를 검출하여 출력하는 부호 비트 검출부(42)를 포함하여 구성된 가변 길이 복호기.
  2. 제1항에 있어서, 한편, 제로검출부(23)는, 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드 중 상위 8비트를 검사하여 상위 4비트가 모두 0 인 경우에는 1의 제어신호를 출력하고, 상위 8비트가 모두 0인 경우에는 10의 제어신호를 출력하며, 상위 4 비트가 모두 1인 경우에는 11의 제어신호를 출력하고, 이상을 제외한 나머지 경우에는 0의 제어신호를 출력하도록 된 것을 특징으로 하는 가변 길이 복호기.
  3. 제1항에 있어서, 상기 코드 다중화기(24)는 상기 제로검출부(23)로 부터의 1 또는 11의 제어신호가 입력되면 상기 가변 길이 복호기 코아(20)에서 출력된 17 비트의 가변 길이 코드 중에서 [12 : 4]의 9 비트를 출력하도록 한 것을 특징으로 하는 가변 길이 복호기.
  4. 제1항에 있어서, 상기 코드 다중화기(24)는, 상기 제로검출부(23)로부터 10의 제어신호가 입력되면 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드중에서 하위 9비트를 출력하도록 된 것을 특징으로 하는 가변 길이 복호기.
  5. 제1항에서 있어서, 상기 코드 다중화기(24)는, 상기 제로검출부(23)로부터 0의 제어 신호가 입력되면 상기 가변 길이 복호기 코아(20)에서 출력된 17 비트의 가변 길이 코드 중 상위 9비트를 출력하도록 된 것을 특징으로 하는 가변 길이 복호기.
  6. 제1항에 있어서, 상기 테이블부(30)는 5비트의 런값과 6비트의 레벨값을 출력하도록 된 것을 특징으로 하는 가변 길이 복호기.
  7. 제1항에 있어서, 상기 테이블부(30)는 헤더 정보를 레벨의 경로를 통해 상기 제어부(25)로 입력하도록 된 것을 특징으로 하는 가변 길이 복호기.
  8. 제1항에 있어서, 상기 지연부(40)는 상기 테이블부(30)에 의해 지연되는 시간만큼 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드를 지연시켜 출력하도록 된 것을 특징으로 하는 가변 길이 복호기.
KR1019950061389A 1995-12-28 1995-12-28 가변 길이 복호기 KR100195722B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950061389A KR100195722B1 (ko) 1995-12-28 1995-12-28 가변 길이 복호기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950061389A KR100195722B1 (ko) 1995-12-28 1995-12-28 가변 길이 복호기

Publications (2)

Publication Number Publication Date
KR970057901A KR970057901A (ko) 1997-07-31
KR100195722B1 true KR100195722B1 (ko) 1999-06-15

Family

ID=19445896

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950061389A KR100195722B1 (ko) 1995-12-28 1995-12-28 가변 길이 복호기

Country Status (1)

Country Link
KR (1) KR100195722B1 (ko)

Also Published As

Publication number Publication date
KR970057901A (ko) 1997-07-31

Similar Documents

Publication Publication Date Title
US7215707B2 (en) Optimal scanning method for transform coefficients in coding/decoding of image and video
KR0129558B1 (ko) 적응적 가변길이 부호화 방법 및 장치
KR100718134B1 (ko) 비트율에 적응적인 영상 데이터 이진 산술 부호화/복호화장치 및 방법
EP0850540B1 (en) Transmission and reception of encoded video pictures
KR960006762B1 (ko) 화상부호화를 위한 효율적인 2차원 데이타의 주사선택회로
US6055272A (en) Run length encoder
US7212681B1 (en) Extension of two-dimensional variable length coding for image compression
KR20010110629A (ko) 동화상 정보의 압축 방법 및 그 시스템
US20060233447A1 (en) Image data decoding apparatus and method
JP2000506715A (ja) Mpeg―2ビデオデータ用二重速度可変長デコーダおよび復号化アーキテクチャ
KR101710619B1 (ko) 단계적인 영상 부호화, 복호화 방법 및 장치
KR100195717B1 (ko) 가변 길이 복호기
KR100195715B1 (ko) 가변 길이 복호기
KR100195722B1 (ko) 가변 길이 복호기
KR0154011B1 (ko) 가변길이 복호화 장치
KR100195716B1 (ko) 가변 길이 복호기
KR100195720B1 (ko) 가변 길이 복호기용 상태 제어기
KR100210389B1 (ko) 줄길이 부호기
JPH09154133A (ja) 画像エンコーダおよび可変長符号化方法
KR100195726B1 (ko) 줄길이 복호기 초기 구동회로
KR100204482B1 (ko) 줄길이 부호기의 레벨값 생성장치
KR100204483B1 (ko) 줄길이 부호기의 레벨값 생성장치
KR100221310B1 (ko) 줄길이 부호기의 전송신호 생성장치
KR100251312B1 (ko) 줄길이 부호기의 런값 발생장치
KR100251310B1 (ko) 줄길이 부호기의 전송신호 발생장치

Legal Events

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

Payment date: 20110201

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee