KR960005200B1 - 가변장 복호화기(Variable Length Decoder) - Google Patents

가변장 복호화기(Variable Length Decoder) Download PDF

Info

Publication number
KR960005200B1
KR960005200B1 KR1019930019513A KR930019513A KR960005200B1 KR 960005200 B1 KR960005200 B1 KR 960005200B1 KR 1019930019513 A KR1019930019513 A KR 1019930019513A KR 930019513 A KR930019513 A KR 930019513A KR 960005200 B1 KR960005200 B1 KR 960005200B1
Authority
KR
South Korea
Prior art keywords
output
code
length
register
decoder
Prior art date
Application number
KR1019930019513A
Other languages
English (en)
Other versions
KR950010384A (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 KR1019930019513A priority Critical patent/KR960005200B1/ko
Priority to US08/309,192 priority patent/US5557271A/en
Priority to DE69416773T priority patent/DE69416773T2/de
Priority to EP94402089A priority patent/EP0649224B1/en
Publication of KR950010384A publication Critical patent/KR950010384A/ko
Application granted granted Critical
Publication of KR960005200B1 publication Critical patent/KR960005200B1/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

내용 없음.

Description

가변장 복호화기
제 1 도는 종래 가변장 복호화기의 블럭도.
제 2 도는 입력데이타에 따른 워드랭스와 코드워드를 보인 예시도.
제 3 도는 제 1 도에 있어서, 데이타 시프트에 따른 설명도.
제 4 도는 본 발명의 가변장 복호화기의 블럭도.
제 5 도는 제 4 도에 있어서, 입출력의 관계를 보인 예시도.
* 도면의 주요부분에 대한 부호의 설명
11,12,14,16,18,19,23,24,27,29 : 레지스터
13,15,17 : 베렐 시프터 20 : 코드랭스 저장부
21 : 매칭 검출부 22 : 복호워드 저장부
25 : 플립플롭 26 : 인버터
28 : 가산기 100 : 데이타 시프터
200 : 시프터 제어부 300 : 복호부
본 발명은 가변장 부호의 복호 기술에 관한 것으로 특히, 디지탈 비디오 시스템 또는 멀티미디어(Multimedia)등에 있어서 가변장 부호화기(Variable Length Coder)에 의해 엔트로피(entropy) 코딩된 데이타를 실시간에 디코딩하는 가변장 복호화기(Variable Length Decoder)에 관한 것이다.
일반적으로 디지탈 이미지, 비디오, 팩스등과 같은 디지탈 영상 시스템은 무손실 데이타의 압축 및 확장을 위해 가변장 부호화/복호화(Variable Length Encoding/Decoding)기법이 사용되는데 높은 전송률을 위해 부호화기(Encoder)가 소스 코딩(source coding) 후 엔트로피 코딩(entropy coding)을 위하여 평균 비트율을 낮춘 가변장 부호는 소스 디코딩(source decoding)전에 가변장 복호화를 수행하게 된다.
제 1 도는 종래 가변장 복호화기(Variable Length Decoder) 의 블럭도로서 이에 도시된 바와 같이, 압축된 가변장 부호로 된 데이타를 일정 단위씩 받아 들여 배열하고 시프트시키면서 디코딩할 코드워드를 지정해 주는 인터페이스부(9)와, 상기 인터페이스부(9)에 배열된 코드워드와 저장된 코드워드를 비교 색출하여 코드워드 길이에 대한 정보를 상기 인터페이스부(9)에 인가하고, 색출된 코드워드에 해당하는 원래의 정보를 출력하는 복호부(10)로 구성된다.
상기 인터페이스부(9)는 버퍼(B1)를 통한 앱력데이타(Vi)를 래치시키는 래치부(1)와, 이 래치부(1)의 출력(VL0),(VL1)을 입력받아 16비트 윈도우(I0~I15)를 형성하는 배렐 시프터(2)와, 코드워드에 대한 정보를 저장하여 워드랭스 저장부(4)의 출력(L0-L3)을 가산, 축적하는 가산기(6)와, 이 가산기(6)의 출력(S0)을 래치시켜 상기 배렐 시프터(2)에 시프트할 비트 정보로 출력함과 아울러 캐리출력(C0)을 래치시키는 래치부(7)와 클럭(CLK)이 입력함에 따라 상기 래치부(7)의 캐리래치(VL3)와 논리조합하여 리드신호(RD)를 상기 버퍼(B1)에 출력하는 리드신호발생부(8)로 구성된다.
상기 복호부(10)는 코드워드에 대한 정보를 저장하고 상기 배렐 시프터(2)의 출력(I0-I15)을 입력으로 하는 코드워드 저장부(3)와, 이 코드워드 저장부(3)의 출력(CW)에 따라 워드랭스값(L0-L3)을 출력하는 워드랭스 저장부(4)와, 상기 코드워드 저장부(3)의 출력(CW)에 따라 복호워드값(V0-V3)을 래치(L4)를 통해 출력하는 복호워드저장부(5)로 구성된다.
상기 코드워드 저장부(3)와, 워드랭스 저장부(4) 및 복호워드저장부(5)는 각기 앤드(AND), 오아(OR), 오아(OR)플레인인 PLA로 구성된다.
상기 래치부(7)의 출력(VL2)은 배렐 시프터(2)와 가산기(6)에 접속된다.
상기 리드신호발생부(8)는 래치부(7)의 출력(VL3)이 일측에 접속된 앤드게이트(AN1)의 타측에 클럭(CLK)을 접속하여 그 앤드게이트(AN1)의 출력(RD)을 래치부(1)의 래치(L0)에 접속함과 아울러 버퍼(B1)에 접속하여 구성된다.
이와같은 종래 가변장 복호화기(Variable Length Decoder)의 동작과정을 제 2 도 및 제 3 도를 참조하여 설명하면 다음과 같다.
초기에, 채널에서 6비트의 데이타(Vi)가 인터페이스부(9)의 버퍼(B1)를 통해 입력됨에 따라 래치부(1)의 래치(L0)는 다음 클럭에 기존의 데이타를 래치(L1)에 시프트시킴과 아울러 새로운 16비트의 데이타(Vi)를 입력받고 상기 래치부(1)는 16비트의 래치출력(VL1),(VL0)을 배렐 시프터(2)에 출력한다.
이때, 래치부(1)의 래치(L1),(L0)에서 출력된 신호(VL1),(VL0)를 입력받은 배렐 시프터(2)는 32비트 데이타중 디코딩할 첫번째 데이타를 선두 비트로 하여 16비트의 윈도우(I0-I15)를 형성하고 이 윈도우값(I0-I15)은 복호부(10)의 코드워드 저장부(3)에 출력된다.
이에 따라, 코드워드 저장부(3)의 출력(CW)에 따라 워드랭스 저장부(4)는 워드랭스(L0-L3)를 가산기(6)에 출력하고 복호워드 저장부(5)는 복호워드(V0-V3)를 래치(L4)를 통해 출력하게 된다.
그리고, 워드랭스 저장부(4)의 출력(L0-L3)이 인터페이스부(9)에 입력됨에 따라 가산기(6)는 상기 신호(L0-L3)를 가산 축적하여 시프트할 비트정보로 래치부(7)의 래치(L2)에 출력하고, 이 래치((L2)의 출력(VL2)을 입력받은 배렐 시프터(2)는 래치부(1)의 출력(VL1),(VL0)중 다음 디코딩할 첫번째 데이타를 선두 비트로 하여 다시 16비트의 윈도우(I0-I15)를 형성하여 복호부(10)에 출력하며, 상기 윈도우값(I0-I15)을 검출한 코드워드 저장부(3)의 출력(CW)에 따라 워드랭스 저장부(4)는 워드랭스(L0-L3)를 상기 가산기(6)에 출력하고, 복호워드 저장부(5)는 래치(L4)를 통해 복호워드(V0-V3)를 출력하게 된다.
따라서, 디코딩중 가산기(6)에서 캐리(Carry)가 발생하면 래치부(7)의 고전위의 래치(L3) 출력(VL3)를 입력받은 리드신호발생부(8)의 앤드게이트(AN1)는 고전위의 클럭(CLK)이 일측에 입력될 때 논리곱하여 고전위의 리드신호(RD)를 래치부(1)의 래치(L0) 및 버퍼(B1)에 출력하며 이에 따라, 상기 버퍼(B1)가 16비트 데이타(Vi)를 입력시킴으로 상기 래치(L0)는 새로운 16비트 데이타(Vi)를 입력 받는다.
즉, 입력데이타(Vi)가 인터페이스부(9)에 입력되면 래치부(1)가 상기 입력데이타(Vi)를 홀드하고 이 홀드한 신호(VL1),(VL0)를 배렐 시프터(2)에 출력한다.
이때, 가산기(6)의 출력(S0)을 래치한 래치부(7)의 출력(VL2)에 따라 배렐 시프터(2)는 제 3 도에 도시한 바와 같이 상기 입력 신호(VL1)(VL0)를 시프트시켜 16비트 윈도우(I0-I15)를 형성하고, 제 2 도에 도시한 바와같은 입력데이타(Vi)에 따른 코드워드가 구성된 앤드플레인(AND-Plane)인 코드워드 저장부(3)는 상기 16비트 윈도우(I0-I15)에 따른 코드의 출력만을 "1"로 출력시키게 된다.
이에 따라 오아플레인(OR-Plane)인 워드랭스 저장부(4)는 코드워드 저장부(3)의 해당 출력비트에 따른 워드랭스값(L0-L3)을 상기 가산기(6)에 출력하고 오아플레인(OR-Plane)인 복호워드 저장부(5)는 상기 코드워드 저장부(3)의 해당 출력비트에 따른 복호워드(V0-V3)값을 래치(L4)를 통해 출력하여 한 코드워드에 대해 1스텝으로 디코딩을 완료한다.
이때, 가산기(6)는 각 코드워드에 대한 워드랭스(L0-L3)를 합산, 축적하여 합산값이 일정 비트(16)를 넘으면 캐리(Carry)를 발생시키고 이 캐리(Carry)발생시 리드신호(RD)가 리드신호발생부(8)에서 발생하여 래치(L0) 및 버퍼(B1)에 출력함으로써 새로운 데이타(Vi)를 입력시킨다.
그리고, 디코딩의 소모시간은 코드워드(codeword)의 길이가 길거나 작거나 모두 1싸이클(cycle)이 소요되며 1싸이클은 래치(L0)의 지연시간, 배렐 시프터(2)의 시프팅 지연시간, 코드워드의 매칭 지연시간 및 가산기(6)의 합산시간이 모두 합하여진 시간이다.
그러나, 이와 같은 종래 회로는 데이타를 일정량만큼 시프팅시켜 코드테이블을 액세스하고 매칭된 코드의 길이를 누적시켜 다음번의 시프팅량으로 계산함으로써 연산 시간이 지연될 뿐 아니라 코드의 길이에 관계없이 코드의 디코딩 시간이 일정하게 소요되는 문제점이 있었다.
또한, 종래에는 높은 비트 속도르 갖는 데이타일 수록 연산 시간이 지연됨으로 실시간에 디코딩을 수행하지 못하는 문제점이 있다.
본 발명은 이러한 종래의 문제점을 해결하기 위하여 코드 테이블에 데이타가 입력될 때 시프팅될 크기의 비트 수를 동시에 액세스함으로써 지정 비트를 제외한 비트에 대해 매칭을 수행하여 시프팅 지연을 제거하고 워드랭스의 정보를 매칭할 때 데이타에 대한 가산테이블을 작성 저장함으로써 연산 지연을 제거하여 실시간에 고속으로 복호를 수행하도록 창안한 가변장 복호화기(Variable Length Decoder)를 제공함에 목적이 있다.
이하, 본 발명은 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.
제 4 도는 본 발명 가변장 복호화기의 블럭도로서 이에 도시한 바와같이, 입력데이타(Vi)를 저장하여 입력 코드의 첫번째 비트에 정돈되도록 이전에 디코딩되어진 코드 길이(RLN1)만큼을 시프트시키는 데이타 시프터(100)와, 이 데이타 시프터(100)의 출력(RBS3)이 입력됨에 따라 이전의 디코딩된 코드 길이(RLN1)부터 매칭하여 현재 디코딩된 코드 길이와 상기 이전의 디코딩된 코드 길이(RLN1)를 합산한 코드 길이값(LN1), 코드 매칭 여부를 나타내는 코드 매칭 신호(MS1) 및 디코딩된 복호 코드(VCD)를 출력하는 복호부(300)와, 상기 복호부(300)의 출력(LN1)(MS1)을 이용하여 현재 입력 코드가 매칭이 안된 경우 이전의 디코딩된 코드 길이(RLN1)만큼을 상기 데이타 시프터(100)에서 시프터하도록 하고 현재 입력 코드가 매칭이 되면 상기 데이타 시프터(100)의 시프트 동작을 중지시킨 상태에서 상기 복호부(300)의 동작을 계속 수행하도록 제어하는 시프터 제어부(200)로 구성한다.
상기데이타 시프터(100)는 입력데이타(Vi)를 순차 저장하는 레지스터(11)(12)와, 이 레지스터(11)(12)의 출력(VL0)(VL1) 및 입력데이타(Vi)를 입력받아 시프트 제어부(200)의 출력(RS0)만큼 시프트시키는 배렐 시프터(Barrel Shifter)(13)와, 상기 시프트 제어부(200)의 유효 코드 신호(VCF)에 따라 상기 배렐 시프터(13)의 출력(BS1)을 저장하는 레지스터(14)와, 이 레지스터(14)의 출략(RBS1)을 이전 워드랭스(RLN1)만큼 시프트시키는 배렐 시프터(15)와,이 배렐 시프터(15)의 출력(BS2)을 복호부(300)의 매칭 신호(MS1)에 따라 저장, 출력하는 레지스터(16)와, 상기레지스터(16)(18)의 출력(VL3)(VL4)을 입력받아 상기 매칭신호(MS1)에 의해 시프팅하여 상기 레지스터(18)와 레지스터(19)에 출력하는 배렐 시프터(17)로 구성한다.
상기 시프트 제어부(200)는 복호부(300)의 워드랭스(LN1)를 저장하여 출력하는 레지스터(24)와, 상기복호부(300)의 매칭신호(MS1)를 래치시키는 플립플롭(25)과, 이 플립플롭(25)의 출력인 유효코드신호(VCF)를 반전시키는 인버터(26)와, 상기 레지스터(24)의 출력(RLN1)과 이전의 합산신호(RRS)를 누적하여 래디신호(RDY)와 합산신호(S0)를 출력하는 가산기(28)와, 상기 인버터(26)의 출력에 따라 상기 가산기(28)의 출력(S0)을 저장하는 레지스터(29)와, 이 레지스터(29)의 출력(RS0)을 상기 플립플롭(25)의 출력(VCF)에 따라 저장하여 상기 가산기(28)에 출력하는 레지스터(27)로 구성한다.
상기 복호부(300)는 데이타 시프터(100)의 출력(RBS3)과 시프트 제어부(200)의 출력(RLN1)을 합하여 코드 매칭을 수행함에 따라 코드랭스(LN1), 매칭신호(MS1) 및 복호워드(V0)를 각기 출력하는 워드랭스 저장부(20), 매칭 검출부(21), 복호워드 저장부(22)와, 이 복호워드 저장부(22)의 출력(V0)을 일시 저장하는 시프터(23)로 구성한다.
이와같이 구성한 본 발명 가변장 복호화기(Variable Length Decoder)의 동작 및 작용효과를 상세히 설명하면 다음과 같다.
본 발명에서 코드의 최대 길이는 16비트로 가정하여 설명한다.
입력데이타(Vi)가 데이타 시프터(100)에 입력되면 레지스터(11)에 순차적으로 저장된 후 레지스터(12)에 순차적으로 입력되어지면 이 레지스터(11) (12)의 출력(VL0) (VL1)이 입력된 배렐 시프터(13)는 시프트 제어부(200)의 출력(RS0)만큼 좌로 시프트를 수행한 후 레지스터(14)에 출력하고 이 레지스터(14)의 출력(RBS1)은 베럴 시프터(15)에 입력되어 상기 시프터 제어부(200)의 출력인 이전 워드랭스(RLN1)만큼 좌로 시프트된 후 레지스터(16)에 일시 저장되며 이 레지스터(16)의 출력(VL3)을 입력받은 베렐 시프터(17)는 상기 시프트 제어부(200)의 이전 워드랭스(RLN1)만큼 좌로 시프트하게 된다.
이때, 베렐 시프터(17)의 출력은(BS1)은 레지스터(18)를 통해 그 배렐 시프터(17)의 입력단으로 피드 백됨과 아울러 레지스터(19)에 출력되고 상기 레지스터(19)의 저장 내용(RBS3)이 복호부(300)에 입력되어진다.
여기서, 레지스터(19) (29)와 플리플롭(25)은 초기에 리세트 상태에서 동작이 시작되며 배렐 시프터(13)는 가산기(28)의 내용을 저장하고 있는 상기 레지스터(29)의 내용에 따라 시프트되는 량이 조절되는데 초기에는 시프트 량이 "0"이 되고 데이타 시프터(100)의 모든 배렐 시프터(13)(15)(17)는 모두 좌로 시프트 동작을 수행하는 것으로 가정한다.
이에 따라, 복호부(300)는 데이타 시프터(100)의 레지스터(19) 출력(RBS3)을 입력받아 워드랭스 저장부(20)에서 해당 워드랭스(LN1)를 출력하고 매칭 검출부(21)에서 상기 레지스터(19)의 출력(RBS3)이 16비트내에 매칭되었는지 판별하는데, 매칭이 되었으면 복호워드 저장부(22)는 레지스터(23)를 통해 복호워드(VCD)를 출력하게 된다.
이때, 피엘에이(PLA)인 복호부(300)는 코드 길이, 복호워드 및 현재 입력된 레지스터(19)의 출력 데이타(RBS3)가 16비트내에 들어 있는 코드인지 그렇지 않으면 나뉘어서 들어온 코드인지를 알려주는 플래그 정보(MS1)를 갖고 있는 절단(borken) 플래그 데이타로 구성되는데, 좌로 시프트된 상기 레지스터(19)의 출력(RBS3)이 입력됨에 따라 이전의 데이타는 상위 비트쪽에 저장되며 새로 입력된 데이타는 하위 비트 쪽으로 저장되게 된다.
즉, 레지스터(19)의 출력(RBS3)이 시프트 제어부(200)의 5비트 출력인 이전 워드 길이(RLN3)와 함께 복호부(300)에 입력되어질 때 상기 레지스터(19)가 가르키는 크기만큼 상위 비트 쪽의 수 비트를 제외한 나머지 비트를 가지고 가장 높은 쪽의 비트로부터 코드를 매칭하여 코드를 찾는데 코드의 길이와 복호워드는 레지스터(24) (23)에 각기 출력되며 이때, 매칭되어질 경우 매칭신호(MS1)를 "0"로 출력시켜서 매칭이 이루어 졌음을 나타내고 만일, 코드의 매칭이 이루어 지지 않았으면 "1"을 출력시켜서 매칭이 이루어 지지 않았음을 나타내게 된다.
그리고, 복호부(300)에서 출력된 매칭 신호(MS1)는 플립플롭(25)을 통해 래치됨에 따라 유효 코드 신호(VCF)로 출력되어 레지스터(23)에 래치된 데이타가 정상적으로 디코딩된 코드워드인가를 나타내게 되며 상기 플립플롭(25)에서 출력된 유효 코드 신호(VCF)는 인버터(26)를 통해 반전되어 레지스터(29)의 래치 인에이블 신호로 작용하여 가산기(28)의 출력을 래치하도록 제어하게 된다.
한편, 복호부(300)의 코드랭스 저장부(20)에서 출력된 코드 길이(LN1)는 이전의 코드 길이 합(RLN1)에 데이타 시프터(100)의 출력인 입력데이타(RBS3)에 매칭된 현재의 코드 길이의 합으로서, 이 복호된 코드 길이의 값만큼 배렐 시프터(15) (17)의 내용을 좌로 시프트시키게 되다.
여기서, 복호부(300)의 출력이 절단 플래그로 세팅되어 있는 경우 시프터 제어부(200)는 레지스터(16) (18) (14) (19)의 값을 새로운 값으로 업데이트시키고 1클럭 후 레지스터(27)는 업 데이트 동작을 수행하지만 래지스터(29)의 내용은 래치 디스에이블된 후 다음 클럭부터 래치하게 된다.
그리고, 가산기(28)는 레지스터(24) (27)의 출력(RLN1) (RRS)을 합하여 레지스터(29) 및 데이타 시프터(100)의 레지스터(11) (12)에 출력시키며 인버터(26)의 출력에 의해 래치 디스인에이블되지 않은 경우 레지스터(29)에 입력시킨다.
이에 따라, 가산기(28)에서 캐리 신호가 발생되어 래디 신호(RDY)가 발생되면 다음 데이타를 받아 들일 준비가 되어 있음을 알리게 되며 새로운 입력데이타가 데이타 시프터(100)에 입력되어지면 곧이은 클럭에 의하여 레지스터(11) (12)에 직렬 데이타가 래치되어지며, 그리고 상기 데이타 시프터(100)의 레지스터(11) (12) (14) (16) (18) (19), 복호부(300)의 레지스터(24) (23) 및 시프트 제어부(200)의 레지스터(27)(29)와 플립플롭(25)이 모두 같은 클럭에 의해 동작되어 진다.
상기 동작을 수행함에 따라 레지스터(12)(11)의 출력(VL1)(VL0), 입력데이타(Vi), 배렐 시프터(13)의 출력(BS1), 레지스터(14)의 출력(RBS1), 배렐 시프터(15)의 출력(BS2), 레지스터(16)(18)의 출력(VL3)(VL4), 배렐 시프터(17)의 출력(BS3), 레지스터(19)의 출력(RBS3), 워드랭스 저장부(20)의 출력(LN1), 매칭 검출부(21)의 출력(MS1), 복호워드 저장부(22)의 출력(V0), 레지스터(29)(24)의 출력(RS0)(RLN1)들의 변화는 제 5 도에 도시한 각 클럭 t=1에서 t=10까지와 같이 나타나게 된다.
즉, 제 5(g) 도, 제 5(h) 도, 제 5(i) 도를 예를 들어 설명하면, 입력코드(D)(E)(F)의 코드 길이를 모두 합하여도 디코딩 가능 길이인 16비트이므로 입력 코드(D)를 디코딩한 후 시프트 동작없이 입력 코드(E)를 디코딩하고 이 후 시프트 동작없이 입력 코드(F)까지 디코딩하게 된다.
따라서, 상기에서 디코딩 가능한 길이내에서 입력 코드의 매칭이 계속된다면 불필요한 입력 코드의 시프트 동작을 생략할 수 있어 디코딩 시간을 절감할 수 있다.
또한, 제 4 도의 회로는 최대 코드 길이와 같은 레지스터(19)의 출력 신호를 16비트로 설정하였으나 최대 코드의 길이를 n이라고 가정할 때 m≥n이라 하면 레지스터(19)의 출력(RBS3), 복호워드 저장부(22)의 출력(V0), 배렐 시프터(17)의 출력(BS3), 입력 데이타(Vi), 레지스터(11)의 출력(VL0), 레지스터(12)의 출력(VL1), 배렐 시프터(15)의 출력(BS2), 레지스터(16)의 출력(VL3), 레지스터(18)의 출력(VL4)을 m비트로 사용할 수 있으며 배렐 시프터(13)의 출력(BS1), 레지스터(14)의 출력(RBS1)은 2m비트, 레지스터(24)의 출력(RLN1), 워드랭스 저장부(20)의 출력(LN1), 레지스터(29)의 출력(RS0), 가산기(26)의 출력(S0), 레지스터(27)의 출력(RRS)은 1≥log2m인 정수(1+1)비트와 1비트로 각각 사용할 수 있다.
이때, m비트인 레지스터(19)의 출력(RBS3)은 상위 비트부터 디코딩되어 지는데, 상기 레지스터(19)에는 첫번째 코드의 길이가 읽혀지고 다시 레지스터(24)의 출력(RLN1)과 상기 레지스터(19)의 출력(RBS3)을 피드백시키면 복호부(300)로부터 다음번 코드의 길이와 함께 첫번째 코드의 길이가 더해진 값이 레지스터(24)에 읽혀진다.
이에 따라, 레지스터(24)(19)의 출력(RLN1)(RBS3)을 합산한 신호(RLN1)를 복호부(300)에 피드백시켜서 다음의 코드 길이와 합산된 값이 레지스터(24)에 읽혀지면서 상기에서 수행된 피드 백 과정을 반복하는데 이 동작은 절단 플래그가 발생될 때까지 계속된다.
즉, m비트인 레지스터(19)의 출력에 있는 코드가 모두 디코딩되어지고 하위 비트에 잘려진 코드가 나타날 때까지 반복하게 됨으로 계속해서 1개의 코드를 디코딩하는데 코드 테이블 매칭 싸이클만큼의 시간이 소요되어지게 됨으로 고속의 디코딩이 가능해 진다.
그리고, 복호부(300)에서 절단 플래그가 발생되면 디코딩하고 남아있는 데이타와 새로 디코딩해야 할 데이타들을 정돈하여 상기의 피드백 과정을 반복 수행하게 된다.
여기서, 복호부(300)에서 절단 플래그가 발생되면 그 복호부(300)에서 매칭 신호(MS1)를 입력받은 시프터 제어부(200)의 레지스터(24)의 "0"으로 리세트되어지고 그 리세트된 값은 레지스터(19)에 새로 정돈된 데이타(RBS3)와 함께 상기 복호부(300)에 입력되어 진다.
상기에서 상세히 설명한 바와 같이 본 발명 가변장 복호화기(Variable Length Decoder)는 코드 매칭을 수행할 때 지정 비트부터 수행하고 복호된 길이만큼을 제외한 나머지 비트에 대해 코드 매칭을 수행함으로써 복호를 수행함에 따라 나머지 비트를 상위 비트부터 정돈, 매칭하는 지연시간을 제거할 수 있어 빠른 속도로 코드를 복호시킬 수 있는 효과가 있다.

Claims (4)

  1. 입력데이타(Vi)를 저장하여 입력 코드의 첫번째 비트에 정돈되도록 이전에 디코딩되어진 코드 길이(RLN1)만큼을 시프트시키는 데이타 시프터(100)와, 이 데이타 시프터(100)의 출력(RBS3)이 입력됨에 따라 이전의 디코딩된 코드길이(RLN1)로부터 매칭하여 현재 디코딩된 코드 길이와 상기 이전의 디코딩된 코드 길이(RLN1)를 합산한 코드 길이값(LN1), 코드 매칭 여부를 나타내는 코드 매칭 신호(MS!) 및 디코딩된 복호 코드(VCD)를 출력하는 복호부(300)와, 상기 복호부(300)의 출력(LN1)(MS1)을 이용하여 현재 입력 코드가 매칭이 안된 경우 이전의 디코딩된 코드 길이(RLN1)만큼을 상기 데이타 시프터(10)에서 시프터하도록 하고 현재 입력 코드가 매칭이 되면 상기 데이타 시프터(100)의 시프트 동작을 중지시킨 상태에서 상기 복호부(300)의 동작을 계속 수행하도록 제어하는 시프터 제어부(200)로 구성함을 특징으로 하는 가변장 복호화기(Variable Length Decoder).
  2. 제 1 항에 있어서, 데이타 시프터(100)는 래디신호(RDY)에 따라 소정길이의 입력데이타(Vi)를 순차 저장하는 레지스터(11)(12)와, 이 레지스터(11)(12)의 출력VL0)(VL1)를 입력받아 코드 길이의 누적값(RS0)만큼 시프트시키는 배렐 시프터(13)와, 이 배렐 시프터(13)의 출력(BS1)을 유효 코드신호(VCF)에 따라 저장 출력하는 레지스터(14)와, 이 레지스터(14)의 출력(RBS1)을 입력받아 이전에 디코딩된 코드 길이의 값(RLN1)만큼 시프트시키는 배렐 시프터(15)와, 매칭신호(MS1)에 따라 상기 배렐 시프터(15)의 출력(BS2)을 일시 저장하는 레지스터(16)와, 이 레지스터(16)의 출력(VL3)을 입력받아 이전에 디코딩된 코드 길이의 값(RLN1)만큼 시프트시키는 배렐 시프터(17)와, 이 배렐 시프터(17)의 출력(BS3)을 매칭신호(MS1)에 따라 궤환시키는 레지스터(18)와, 상기 배렐 시프터(17)의 출력(BS3)을 매칭신호(MS1)에 따라 저장하여 복호부(300)에 출력하는 레지스터(19)로 구성함을 특징으로 하는 가변장 복호화기(Variable Length Decoder).
  3. 제 1 항에 있어서, 복호부(300)는 데이타 시프터(100)의 출력(RBS3)과 이전에 디코딩된 코드 길이의 값(RLN1)을 합산하여 매칭함에 따라 현재의 코드 길이(LN1)를 출력하는 워드랭스 저장부(20)와, 이 워드랭스 저장부(20)의 매칭 동작에 따라 해당 복호워드(V0)를 출력하는 복호워드 저장부(22)와, 상기 워드랭스 저장부(20)의 매칭 동작 수행시 매칭 여부에 따른 신호(MS1)를 출력하는 매칭 검출부(21)와, 상기 복호워드 저장부(22)의 출력(V0)을 저장하여 복호된 코드워드(VCD)를 출력하는 레지스터(23)로 구성함을 특징으로 하는 가변장 복호화기(Variable Length Decoder).
  4. 제 1 항에 있어서, 시프터 제어부(200)는 복호부(300)의 출력(LN1)을 저장하여 이전에 디코딩된 코드 길이의 누적값(RLN1)을 출력하는 레지스터(24)와, 상기 복호부(300)의 출력(MS1)을 래치시켜 유효코드신호(VCF)를 출력하는 플립플롭(25)과, 이 플립플롭(25)의 출력(VCF)를 반전시키는 인버터(26)와, 상기 레지스터(24)의 출력(RLN1)과 이전의 누적 코드 길이(RRS)를 합산하여 합신호(S0)를 래디신호(RDY)로 출력하는 가산기(28)와, 이 가산기(28)의 출력(S0)을 일시 저장하는 레지스터(29)와, 이 레지스터(29)의 출력(RS0)을 저장하여 이전의 누적코드 길이(RRS)를 출력하는 레지스터(27)로 구성함을 특징으로 하는 가변장복호화기(Variable Length Decoder).
KR1019930019513A 1993-09-23 1993-09-23 가변장 복호화기(Variable Length Decoder) KR960005200B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1019930019513A KR960005200B1 (ko) 1993-09-23 1993-09-23 가변장 복호화기(Variable Length Decoder)
US08/309,192 US5557271A (en) 1993-09-23 1994-09-20 Variable length coder and variable length decoder
DE69416773T DE69416773T2 (de) 1993-09-23 1994-09-20 Variabler Längen-Kodieren und variabler Längen-Dekodierer
EP94402089A EP0649224B1 (en) 1993-09-23 1994-09-20 Variable length coder and variable length decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019930019513A KR960005200B1 (ko) 1993-09-23 1993-09-23 가변장 복호화기(Variable Length Decoder)

Publications (2)

Publication Number Publication Date
KR950010384A KR950010384A (ko) 1995-04-28
KR960005200B1 true KR960005200B1 (ko) 1996-04-22

Family

ID=19364437

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930019513A KR960005200B1 (ko) 1993-09-23 1993-09-23 가변장 복호화기(Variable Length Decoder)

Country Status (1)

Country Link
KR (1) KR960005200B1 (ko)

Also Published As

Publication number Publication date
KR950010384A (ko) 1995-04-28

Similar Documents

Publication Publication Date Title
US4989000A (en) Data string compression using arithmetic encoding with simplified probability subinterval estimation
US6798833B2 (en) Video frame compression/decompression hardware system
US6043765A (en) Method and apparatus for performing a parallel speculative Huffman decoding using both partial and full decoders
EP0384782A1 (en) Non-destructive lossless image coder
KR100748485B1 (ko) 가변 길이 코드워드 디코더 및 가변 길이 코드워드 디코딩 방법
KR890013903A (ko) 디코딩 장치
KR970025145A (ko) 고속의 가변장복호화장치
KR0178201B1 (ko) 가변 길이 복호화 장치
EP0145396A2 (en) Codeword decoding
US5955977A (en) System for avoiding start code emulation and long carry-over propagation
KR0152032B1 (ko) 영상신호를 위한 가변장복호기
JPS5994937A (ja) デジタル通信システム
KR960003452B1 (ko) 가변길이부호 복호장치
KR960005200B1 (ko) 가변장 복호화기(Variable Length Decoder)
Rudberg et al. New approaches to high speed Huffman decoding
US4551706A (en) Apparatus for decoding run-length encoded data
EP0499225B1 (en) Variable-length code decoding device
JP2561854B2 (ja) 符号化装置
KR100250088B1 (ko) 두개의 배럴쉬프터를 이용하는 기변길이 복호기
US6919830B1 (en) Arithmetic decoding of an arithmetically encoded information signal
KR0123275B1 (ko) 가변길이 복호기에서 렝스디코더 및 제로런렝스디코더
KR950008490B1 (ko) 8/11 복호기의 오류플래그 발생장치
KR0159654B1 (ko) 고정길이부호를 디코딩하는 장치
KR960011111B1 (ko) 디지탈 영상신호의 복호화장치에 있어서의 가변길이 복호화기
KR100209881B1 (ko) 고속 가변장 복호기의 메모리제어장치

Legal Events

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

Payment date: 20090331

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee