KR0166720B1 - 가변장 부호화기 - Google Patents
가변장 부호화기 Download PDFInfo
- Publication number
- KR0166720B1 KR0166720B1 KR1019920020264A KR920020264A KR0166720B1 KR 0166720 B1 KR0166720 B1 KR 0166720B1 KR 1019920020264 A KR1019920020264 A KR 1019920020264A KR 920020264 A KR920020264 A KR 920020264A KR 0166720 B1 KR0166720 B1 KR 0166720B1
- Authority
- KR
- South Korea
- Prior art keywords
- code
- length
- codeword
- register
- symbol
- Prior art date
Links
Classifications
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/1887—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a variable length codeword
-
- 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/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 가변장부호화기에 관한 것으로서, JPEG 및 MPEG 의 일부에 채용되는 엔트로피부호화에 있어서, 각 심볼에 코드워드 및 여분비트를 할당하는 방식으로 부호화하는 가변장부호화기에 관한 것이다. 이 가변장부호화기의 룩업테이블(10)은 입력되는 심볼데이타가 DC성분 및 AC성분인지에 따라 허프만코드표들을 다리 참조하며, 각 심볼에 대응하는 코드워드와 이 코드워드길이 및 여분비트와 이 여분비트의 길이를 발생한다. 서로 다른 4개의 래치들(W1, L1, W0, L0)은 상기 룩업테이블(10)로부터의 각 데이터 들을 클럭이 뜰때마다 각각 래칭한다. 제 1배럴시프터(BSH1)는 상기 해당 래치들(W1,W0)로부터의 코드워드가 여분비트에 앞서도록 결합하여 하나의 심볼에 대응하는 코드로서 출력하고, 가산기(70)는 상기 해당래치들(L1,L0)로부터의 코드워드길이 및 여분비트길이를 가산하여 상기 코드에 대응하는 코드길이로서 출력한다. 코드레지스터(W2) 및 코드길이레지스터(L2)는 상기 제 1배럴시프터로부터의 코드, 및 가산기(70)로부터의 코드길이를 클럭이 뜰때마다 각각 래칭한다. 누적길이연산수단(MOD-N,L3)는 코드길이레지스터로부터의 코드길이를 클럭이 누적하여 모듈러-N연산하며, 연산결과에 따른 출력가능신호 및 누적잔여코드길이를 발생한다. 코드결합수단(BSH2,W3)은 코드레지스터(W2)로부터의 코드들을 결합하며, 이전클럭의 결합코드들이 현재클럭의 코드보다 앞서도록 결합하여 출력한다. 코드출력수단(BSH3,W4)은 상기 누적길이연산수단으로부터의 누적코드잔여길이 및 출력가능신호에 따라, 결합코드들을 N비트단위로 구획하여 수신측으로 전송한다. 이로써, 본 발명에 따른 가변장부호화기는 입력되는 각 심볼에 코드워드 및 여분비트를 할당하여 효율적으로 부호화하며, 실시간 처리가 가능하게 하는 효과를 제공한다.
Description
제1는 발명의 실시예에 따른, 하나의 심보를 코드워드와 여분비트 를 갖는 코드로 부호화하기 위한 가변장부호화기의 블럭도.
* 도면의 주요부분에 대한 부호의 설명
10 : 록업테이블
20, 30, 40, 50, 80, 90, 130, 140, 150 : 서로 다른 래치들
60, 100, 110 : 서로 다른 배럴 시프터들
70 : 가산기 120 : 모듈러-N
본 발명은 가변장부호화기에 관한 것으로서, 특히 하나의 심보를 코드워드(code word) 및 여분비트(extra bit)를 갖는 코드로 가변장부호화하는 경우, 배럴시프터(barrel shifter)와 가산기(adder)를 이용하여 한 클럭에 상기 코드워드 및 여분비틀 하나의 코드로 결합하므로써 실시간처리가 가능하고 효율적으로 부호화 할 수 있는 가변장부보화하기에 관한 것이다.
일반적으로, 오디오신호나 영상신호를 디지탈방식으로 재생처리하는 것이 아날로그방식에 비해 재생의 질이 높고 충실하기 때문에 디지탈방식이 점차로 선호되고 있는 추세이다. 하지만, 이러한 디지탈방식은 아날로그방식에 비해 전송해야 할 데이터의 양이 많아지는 문제점이 있다. 예를 들어, 고화질텔레비젼(High Definition Television;HDTV)의 경우에 표본화율(sample rate)은 약 52MHZ이고, 휘도(lunminance)성분과 색차(chrominance)성분의 비가 4:2:2 방식일 경우 전체표본화율은 104MHz 가 된다. 한편, 디지탈비디오 카세트레코더(Digital Video Casstte Recorder;DVCR)의 경우에 표본화율은 13.5MHz이고, 휘도성분과 색차성분의 비가 4:2:0 또는 4:1:1 방식일 때 전체표본화율은 27MHz가 된다. 이와 같이 처리해야 할 데이터의 양이 매우 많은 디지탈방식의 시스템에 있어서는 부호화기 및 복호화기의 실시간처리를 구현하기가 기술적으로 매우 힘든 일이다.
이와 같은 문제점을 해결하기 위해서, 전송데이타를 압축하여 부호화함으로써 전송해야 할 데이터의 양을 줄이는 방법에 대한 연구가 이루어져 왔다. 국제표준화기구(ISO) 및 국제전기표준회의(IEC)의 산하에 있는 영상신호부호화방식의 국제표준화전문기관인 JPEG(Joint photographic Expert Group)과 MPEG(Moving Picture Expert Group)에서는 영상신호의 압축부호화방법으로서 이산여현변환(Discrete Cosign Transform;DCT)운동 변상실(Motion Compensation;MC), 양자화(quantization), 연속영의길이부호화(Run Length Coding;RLC), 가변장부호화(Variable Length Coding;VLC) 등을 이용한 영상신호부호화방식의 표준화방안을 진행하여 왔다.
상기 연속영의길이 부호화(Run Length Coding;RLC)방법은, 데이터를 압축하느 과정에서 이산여현변환과 양자화기 등의 손실부호화기를 거치는 동안 영(zero)의 값이 많이 나타나게 되는데, 이와 같이 계속되는 영의 길이(zero run length)를 '런(run) 으로 정의하고 이 연속된 영의 뒤에 최초로 나타나는 영이 아닌 계수를 '레벨(level)'로 정의하며, 상기 손실부호화기의 출력을 이 (런, 레벨)의 쌍으로 표현함으로써 데아타의 양을 줄이는 방법이다.
또한 상기 가변장부호화(다른 말로 허프만코딩이라 한다)방법은, 출현빈도 수가 많은 부호에 상대적으로 짧은 비트수의 코드워드(code word)를 할당하고 출현빈도수가 적은 부호에 상대적으로 긴 비트수의 부호어를 할당함으로 써 압축부호화를 수행한다. 이러한 연속영의길이부호화방법과 가변장부호화방법과 같은 무손실부호화방식을 사용하여 데이터의 평균전송율을 크게 줄일 수가 있다. 최근에 이와 같은 연속영의길이계산과 가변장부호화를 포함하는 엔트로피부호화시스템의 실시간처리구현에 관한 논문 및 자료가 발표되면서 이러한 시스템의 실시간구현이 가능하게 되었다.
현재 발표된 부호화기는 각각의 가변장부호화된 코드워드들을 연결하며, 에러전파를 방지하기 위한 목적으로 이러한 일련의 코드워드들을 일정한 길이로 잘라서 송신 및 저장하며, 복호화기는 상기 부호화기로부터의 일정길이의 가변장부호화된 코드워드를 메모리로부터 읽어내어 최대길이보다 작을 때까지 복호화과정을 수행하게 된다. 이러한 과정에 따른 종래의 가변장부호기는 하나의 심볼에 하나의 가변장 허프만코드가 대응되도록 부호화하며, 종래의 가변장복호기는 이 부호화된 하나의 가변장코드로부터 하나의 고정길이 심볼을 복호한다. 이러한 종래의 가변장부호기 및 가변장복호기의 실시간신호처리방법은 상기한 바와 같이 이미 논물을 통하여 발표된 바 있다.
한편, 전술한 JPEG이나 MPEG의 일부에 채용된 가변장부호화방식은 부호화할 하나의 심볼에 코드워드(code word) 및 여분비트(extra bit)가 대응되도록 부호화하는 방식을 사용한다. 예를 들면, JPEG부호화방식의 경우, 8X8화소로 블록화되어 DCT 및 양자화된 계수는 하나의 DC성분과 63개의 AC 성분으로 나타나는데, DC성분은 인접한 이전블럭과의 차분신호를 1차원허프만부호로 가변장부호화하고, AC성분은 지그재그스캔을 수행한 비트스트림을 런길이부호화(RLC)하며, 이 (런,레벨)쌍에 2차원허프만코드표를 참조하여 하나의 가변장부호어를 할당하여 복호기측으로 전송한다. 이때, DC성분은 DC계수의 차분치그룹에 의해 그룹화되며, 이 그룹정보는 1차원허프만코드표의 참조에 의해 가변장부호화되고, 그룹내에서 DC차분치는 여분비트(extra bit)로서 전송한다. 또한, AC성분은 제로런길이가 카운트되며, 0이 아닌 유효계수는 AC계수의 그룹에 의해 그룹화되고 DC계수의 차분치처럼 그룹번호와 여분비트로 구분된다. 이어서, 상기 런길이와 유효계수의 그룹번호로 이루어진 쌍은 2차원호프만코드로 가변장부호화하고, 이데 대응하는 코드워드 및 여분비트를 복호기측으로 전송함으로써 데이터를 더욱 압축할 수 있다.
상기 종래의 가변장부호화기는 하나의 심볼에 하나의 가변장부호어가 대응되도록 설계되어있으므로, 전술한 바와 같이 하나의 심볼을 코드워드 및 여분비트로 구분하는 부호화방식은 종래의 가변장부호화기를 그대로 사용할 수 없다는 문제점을 갖는다.
이러한 종래의 문제점을 해결하기 위한 본 발명의 목적은, 하나의 심볼을 코드워드 및 여분비트를 갖는 코드로 부호화하는 경우, 종래의 가변장부화기에 배럴시프터 및 가산기를 더 구비한 가변장부화하기를 제안함으로써 상기 코드워드와 여분비트를 한 클럭에 하나의 코드로 연결하고, 이에 따라 실시간처리가 가능하며 동시에 효율적으로 부호화할 수 있는 가변장부호화기를 제공함에 있다.
전술한 목적을 달성하기 위한 본 발명의 수단은 입력되는 각 심볼을 코드워드 및 여분비트를 포함하는 코드로 부호화하기 위한 가변장부호화기에 있어서, 상기 심볼에 대응하는 코드워드 및 이 코드워드의 길이와, 여분 비트 및 이 여분비트의 길이를 각각 발생하는 룩업테이블; 상기 룩업테이블로부터의 코드워드, 코드워드길이, 여분비트, 여분비트의 길이를 클럭이 뜰때마다 각각 래칭(latching)하는 서로 구분되는 래치들(latchs)을 구비한 제1저장수단; 상기 제 1저장수단으로부터 인가되는 코드워드길이에 따라, 상기 제 1저장수단로부터의 코드워드가 여분비트에 앞서도록 결합하며, 이를 하나의 심볼에 대응하는 코드로서 출력하는 배럴시프터; 상기 제 1저장수단으로부터 각각 공급되는 코드워드길이와 여분비트길이를 합산하여 상기 코드에 대응하는 코드길이로서 출력하는 가산수단; 상기 배럴시프터로부터의 코드, 및 상기 가산수단으로부터의 코드길이를 클럭이 뜰때마다 각각 래칭하는 서로 다른 래치들을 구비한 제 2저장수단; 상기 제 2저장수단으로부터의 각 코드길이를 지속적으로 누적하여 모듈러-N연산하며, 이 연산결과를 누적된 코드길이가 N을 초과하는지에 따른 출력가능신호 및 나머지를 출력하는 누적길이연산수단; 상기 제 2저장수단의 해당래치로부터 인가되는 코드길이에 따라, 상기 제 2저장수단의 다른 래치로부터 공급되는 각 코드들을 결합하며, 이전클럭의 결합된 코드들이 현재클럭의 코드보다 앞서도록 결합하는 코드결합수단 및; 상기 누적길이연산수단으로부터의 누적잔여길이에 따라 상기 코드결합수단으로부터의 결합된 코드들이 사기 제 2저장수단으로부터의 코드보다 앞서도록 결합하여 N비트단위로 구획하며, 상기 누적길이연산 수단으로부터의 출력가능신호의 상태에 따라 상기 N비트단위로 구획된 결합코드들을 출력하는 출력수단을 포함한다.
이하, 첨부하 제1도를 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명한다.
제1도를 참조하면, 본 발명에 따른 가변장부호화기는 입력되는 심볼데이타에 대응하는 코드워드(code word)와 이 코드워드의 길이(code word length), 및 여분비트(extra bit)와 이 여분비트의 길이(extra bit lenght)를 발생하는 룩업테이블(look-up table;10)을 구비한다. 이 룩업테이블(10)은 JPEG방식 및 MPEG방식의 일부에 채용되는 엔트로피부호화방식중 부호화할 하나의 심볼에 코드워드 및 여분비트가 대응되도록 코드를 할당하는 부호화방식을 위한 것이다.
룩업테이블(10)의 출력단에 각각 연결된 코드워드레지스터(W1;20)와 코드워드길이레지스터(L1;30), 및 여분비트레지스터(W0;40)와 여분비트길이 레지스터(L0;50)는 각각 클럭(CLK)이 뜰 때마다 상기 룩업테이블(10)로부터 공급되는 코드워드, 코드워드길이, 여분비트, 여분비트길이를 각각 래칭(latching)하는 서로 구분되는 래치들(latchs)이다. 즉, 상기한 래치들은 클럭이 뜰(인가될) 입력대기중인 각각의 데이타를 입력받아 출력하며, 다음 클럭이 뜰 때까지 이전클럭이 뜨는 시점에서 래칭한 데이터를 보유하고 있게 된다.
제 1배럴시프터는(BSH1;60)는, 코드워드길이레지스터(L1;30)로부터 인가되는 코드워드길이에 따라 코드워드레지스터(W1;20)로부터 공급되는 코드워드와 여분비트레지스터(W0;40)로부터 공급되는 여분비트를 결합하며, 이때 코드워드가 여분비트에 앞서도록 결합하여 하나의 코드로서 출력한다. 가산기(70)는 코드워드길이 레지스터(L1;30)로부터 공급되는 코드워드길이와 여분비트길이레지스터(L0;50)로부터 공급되는 여분비트길이를 가산하여 하나의 코드길이로서 출력한다. 여기서, 이 코드길이는 상기 제 1배럴시프터(BSH1;60)에서 코드워드 와 여분비트가 결합된 코드의 길이에 대응한다.
코드레지스터(W2;80)는 상기 제 1 배시프터(BSH1;60)로부터 공급되는 하나의 코드를 클럭이 뜰 때마다 래칭하며, 코드길이레지스터(L2;90)는 상기 가산기(70)로부터 공급되는 코드길이를 클럭이 뜰 때마다 래칭한다. 따라서, 암의의 클럭이 뜰 때 상기 코드워드레지스터(W1) 및 여분비트레지스터(WO)에서 각각 래칭된 코드워드 및 여분비트는, 코드워드 및 여분비트가 결합된 하나의 코드로서 다음 클럭이 뜰 때 코드레지스터(W2;80)에서 래칭된다. 마찬가지로, 임의의 클럭이 뜰때 상기 코드워드길이레지스터(L1) 및 여분비트길이레지스터(L0)에서 각각 래칭된 코드워드 길이 및 여분비트길이는, 각 길이정보가 서로 가산되어 전체의 코드길이정보로서 다음 클럭이 뜰 때 코드길이레지스터(L2)에서 래칭된다. 이로써 한 클럭 사이에, 상기 룩업테이블(10)로부터 출력된 각각의 코드워드, 코드워드길이, 여분비트, 여분비트길이는 코드워드 및 여분비트가 결합된 하나의 코드로서 상기 코드레지스터(W2)에서 래칭되고, 코드워드길이 및 여분비트 길이가 가산된 하나의 코드길이정보로서 상기 코드길이레지스터(L2)에서 래칭된다.
제 2배럴시프터(BSH2;100)는, 상기 코드길이레지스터(L2;90)로부터 인가되는 코드길이에 따라, 결합코드레지스터(W3;130)로부터 궤환되는 이전클럭의 결합코드들이 상기 코드레지스터(W2;80)로부터 공급되는 코드에 앞서도록 결합하며, 결합된 코드들을 출력한다. 결합코드레지스터(W3;130)는 클럭이 뜰 때마다 제 2배럴시프터(BSH2;100)로부터 공급되는 결합코드들을 래칭하며, 이를 제 2배럴시프터(BSH2;100) 및 제 3배럴시프터(BSH3;110)로 공급한다.
모듈러-N(120)은 리셋신호선으로부터 인가되는 리셋(reset)신호에 의하여 재설정되며 누적코드길이레지스터(L3;150)로부터 궤환되는 누적잔여코드 길이와 상기 코드길이레지스터(L2;90)로부터 공급되는 코드길이를 가산하여 모듈러-N연산하며, 이 연산결과 가산된 코드길이가 N 을 초과하는지의 여부에 따른 출력가능신호 및 그 나머지를 출력한다. 여기서, 모듈러-N(120)은 가산된 값이 N을 초과하면 출력가능을 나타내는 인에이블(enable)신호와 그 나머지인 누적잔여코드길이를 출력하고, 가산된 값이 N을 초과하지 않으면 출력가능하지 않다는 디스에이블(disable)신호와 그 나머지인 누적잔여코드 길이를 출력한다. 누적코드길이레지스터(L3;150)는 상기 모듈러-N(120)으로부터 공급되는 출력가능신호(VCLA) 및 그 누적잔여코드길이를 클럭이 뜰때마다 래칭하며, 출력가능신호는 미도시한 출력단위 버퍼로 공급하며 누적잔여코드길이는 상기 모듈러-N(120) 및 제 3배럴시프터(BSH3;110)으로 공급한다.
제 3 배럴시프터(BSH3;110)는, 누적코드길이레지스터(L3;150)로부터 인가되는 누적잔여코드길이에 따라, 결합코드레지스터(W3;130)로부터 공급되는 결합된 코드들이 코드레지스터(W2;280)로부터 공급되는 코드에 앞서도록 이 결합된 코드들을 N비트단위로 구획(또는 절단)하여 출력한다.
구획크드레지스터(W4;140)는 클럭이 뜰 때마다 상기 제3배럴시프터(BSH3;110)로부터 공급되는, N비트의 구획된 코드들을 래칭한다. 이 N비트단위로 구획된 코드들은 가변길로 부호화된 코드데이타로서 미도시한 출력버퍼로 공급되며, 이 출력버터는 상기 누적코드길이레지스터(L3;150)로 부터 인가되는 출력가능신호(VCLA)가 인에이블(enable)될 때마다 N비트단위로 구획도니 가변길이코드들을 복호기축 또는 저장매체로 전송한다.
이러한 구성들을 갖는 본 발명의 바람직한 일 실시예에 따른 제 1도의 가변장부호화기의 동작을 상세히 설명하면 다음과 같다.
일반적으로, 샘플링주파수로 표본화된 뒤에 아날로그신호로부터 디지탈신호로 변환된 디지탈영상신호는 이산여현변환(DCT)에 의해 주파수영역으로 변환되며, 이와 같이 변환된 신호는 인간의 시각 특성에 따른 양자화 테이블을 이용하여 야자화된다. 양자화과정을 거친 블록다누이의 입력데이타 신호는, 예를 들어 8X8화소들로 구획된 블록에서 하나의 직류(DC)성분과 63개의 교류(AC)성분으로 분리된다.
상기한 직류(DC)성분은, 시간적으로 이웃하는 데이터블럭의 직류값과 서로 상관성이 존재하므로 현재의 데이터블럭(8X8)의 직류값과 이전 데이터블럭의 직류값의 차이를 구하는 차분펄스부호변조(Differential Pulse Code Modulation;DPCM)가 수행된다. 다음에, DPCM데이타는 가변장부 호화할 심볼데이타로서 제1도의 룩업테이블(10)로 공급된다.
루업테이블(10)은, DC성분을 위한 참조테이블을 사용하여 공급된 각 심볼데이타에 대응하는 코드워드 및 코드워드길이와, 여분비트 및 여분비트 길이를 대응하는 코드워드레지스터(20) 및 코드워드길이레지스터(30)와 여분비트레지스터(40) 및 여분비트길이레지스터(50)로 각각 출력한다.
예를 들어, 첫 번째 심볼에 대응하는 코드워드가 비트값 0이며 여분비트가 비트값111이고, 두 번째 심볼에 대응하는 코드워드가 비트값100이며 여분비트가 비트값11인 경우,
첫 번째 클럭(CLK1)이 뜨면, 코드워드레지스터(20)는 룩업테이블(10)로 부터 공급되는 첫 번째 심볼의 코드워드인 비트값 0을, 코드워드길이레지스터(30)는 상기 코드워드길이값 '2'를, 여분비트레지스터(40)는 상기 첫 번째 심볼의 여분비트인 비트값111을, 여분비트길이레지스터(50)는 상기 여분비트의 길이값 '3'을 각각 래칭한다. 제 1배럴시프터(BSH1;60)는 코드워드길이레지스터(L1;30)로부터 인가되는 코드워드길이 '2'에 따라, 코드워드레지스터(W1;20)로부터 공급되는 코드워드의 비트값 0가 여분비트레지스터(W0;40)로부터 공급되는 여분비트의 비트값 111보다 앞서도록 결합하며, 병렬시스템의 경우, 좌측에 밀착배열한(leftmost adjust)형태의 결합된 비트 값111을 첫 번째 심볼에 대응하는 코드로서 코드레지스터(W2;80)로 출력 한다. 한편, 가산기(70)는 코드워드길이레지스터(L1)로부터의 코드워드의 길이값 '2'와 여분비트길이레지스터(LO)로부터의 여분비트의 길이값 '3'을 각각 공급받아 이들을 서로 가산한 '5'를 첫 번째 심볼에 대응하는 코드길이로서 출력한다.
두 번째 클릭(CLK2)이 뜨면, 코드워드레지스터(20)는 룩업테이블(10)로 부터 공급되는 두 번째 심볼의 코드워드인 비트값 100을, 코드워드길이레지스터(30)는 상기 코드워드길이값 '3'을, 여분비트레지스터(40)는 상기 두 번째 심볼의 여분비트인 비트값 11을, 여분비트길이레지스터(50)는 상기 여분비트의 길이값 '2'를 각각 래칭한다. 제 1배랠시프터(BSH1;60)는 코드워드길이레지스터(L1;30)로부터 인가되는 코드워드길이 '3'에 따라, 코드워드레지스터(W1;20)로부터 공급되는 코드워드의 비트값 100이 여분비트레지스터(W0;40)로부터 공급되는 여분비트의 비트값 11보다 앞서도록 결합하며, 좌측에 밀착배열한(leftmost adjust)형태의 결합된 비트값10011을 두 번째 심볼에 대응하는 코드로서 코드레지스터(W2;80)로 출력한다. 한편, 가산기(70)는 코드워드길이레지스터(L1)로부터의 코드워드의 길이값 '3'과 여분비트 길이레지스터(LO)로부터의 여분비트의 길이값 '2'를 각각 공급받아 이들을 서로 가산한 '5'를 두 번째 심볼에 대응하는 코드길이로서 출력한다.
코드레지스터(W2)는, 제1배럴시프터(BSH1)로부터 공급되며 두 번째 클럭이 뜨기 직전 입력대기중인 첫 번째 클릭(CLK1)에 의한 첫 번째 심볼에 대응하는 코드의 비트값111을 래칭한다. 마찬가지로, 코드길이레지스터(L2)는 가산기(70)로부터 공급되며 두 번째 클럭이 뜨기직전 입력대기중인 첫 번째 클릭(CLK1)에 의한 첫 번째 심볼에 대응하는 코드길이 값 '5'를 래칭한다.
제 2배럴시프터(BSH2;100)는 코드길이레지스터(L2;90)로부터 인가되는 첫 번째 심볼에 대응하는 코드길이 값 '5'에 따라, 결합코드레지스터(W3;130)로부터 궤환되는 이전클럭의 결합코드들이 없으므로 코드레지스터(W2;80)로 부터 공급되는 첫 번째 심볼에 대응하는 코드의 비트값111을 좌측에 밀착배열하여 출력한다.
모듈러-N(120)은 누적코드길이레지스터(L3;150)로부터 궤환되는 누적잔여코드길이가 없으므로 코드길이레지스터(L2;90)로부터 공급되는 코드길이값 '5'를 모듈러-N연산하며, N이 28인 경우, 몫은 '0'이고 그 나머지는 '5'이므로 출력가능신호는 디스에이블되고 누적잔여코드길이 '5'를 누적코드길이레지스터(L3;150)로 출력된다.
제 3배럴시프터(BSH3;110)는, 누적코드길이레지스터(L3;150)로부터 인가되는 누적잔여코드길이가 없고 결합코드레지스터(W3;130)로부터 공급되는 결합된 코드들이 없으므로 코드레지스터(W2;80)로부터 공급되는 첫 번째 심볼에 대응하는 코드의 비특값111을 좌측에 밀착배열한후, N비트단위로 절단(구획)하여 출력한다.
세 번째 클럭(CLK3)이 뜨면, 코드워드레지스터(20), 코드워드길이레지스터(30), 여분비트레지스터(40), 여분비트길이레지스터(50)는 룩업테이블(10)로 부터 공급되는 세 번째 심볼에 대응하는 코드워드, 코드워드길이, 여분비트, 여분비트길이를 각각 래칭한다. 제 1배럴시프터(BSH1;60)는 코드워드길이 레지스터(L1;30)로부터 인가되는 코드워드길이에 따라, 코드워드레지스터(W1;20)로부터 공급되는 코드워드가 여분비트레지스터(W0;40)로부터 공급되는여분비트보다 앞서도록 결합하며, 좌측에 밀착배열한(leftmost adjust)형태의 결합된 비트값을 세 번째 심볼에 대응하는 코드로서 코드레지스터(W2;80)로 출력한다. 한편, 가산기(70)는 코드워드길이레지스터(L1)로부터의 코드워드의 길이와 여분비트길이레지스터(L0)로부터의 여분비트의 길이를 각각 공급받아 이들을 서로 가산한후, 세 번째 심볼에 대응하는 코드길이로서 출력한다.
코드레지스터(W2)는, 제1배럴시프터(BSH1)로부터 공급되며 세 번째 클럭이 뜨기 직전 입력대기중인 두 번째 클럭(CLK1)에 의한 두 번째 심볼에 대응하는 코드의 비트값10011을 래칭한다. 마찬가지로, 코드길이레지스터(L2)는 가산기(70)로부터 공급되며, 세 번째 클럭이 뜨기 직전 입력대기중인 두 번째 클럭(CLK1)에 의한 두 번째 심볼에 대응하는 코드길이값 '5'를 래칭한다.
결합코드레지스터(W3;130)는 제 2배럴시프터(BSH2)로부터 공급되며 세 번째 클럭이 뜨기직전 입력대기중인 두 번째 클럭에 의한 결합코드의 비트값 111을 래칭한다. 이 래칭된 데이터는 제 2배럴시프터(BSH2)로 궤환(feed-back)되고, 동시에 제 3배럴시프터(BSH3)로 공급된다. 제 2배럴시프터(BSH2;100)는 코드길이레지스터(L2;90)로부터 인가되는 두 번째 심볼에 대응하는 코드길이 값 '5'에 따라, 결합코드레지스터(W3;130)로부터 궤환되는 이전클럭의 결합코드의 비트값111이 코드레지스터(W2)로부터의 두 번째 심볼에 대응하는 비트값10011보다 앞서도록 결합하며, 이 결합된 코드들의 비트값 0011110011을 좌측으로 밀착한 형태로 결합코드레지스터(W3)로 출력한다.
제 3배럴시프터(BSH3;110)는, 누적코드길이레지스터(L3;150)로부터 인가되는 누적잔여코드길이가 '5'이고 결합코드레지스터(W3;30)로부터 공급되는 결합코드들의 비트값111이 코드레지스터(W2)로부터 공급되는 결합코드들의 비트값111이 코드레지스터(W2)로부터 공급되는 두 번째 클럭에 의한 두 번째 심볼에 대응하는 코드의 비트값10011보다 앞서도록 결합하며, 이 결합된 코드들의 비트값0011110011을 좌측에 밀착배열한 후 N비트단위로 구획한후 출력한다. 구획코드레지스터(W4)는 두 번째 클럭에 의해 제 3배럴시프터로부터 공급되며 세 번째 클럭이 뜨기직전 입력대기 중인 N비트단위로 구획된 비트값00111....을 래칭한다.
이 데이터는 미도시한 출력버퍼 또는 수신측의 장치가, 누적코드길이레지스터로부터 인가되는 출력가능신호가 디스에이블신호이므로 실제로 기록되거나 억세스되지 않는다. 즉, 모듈러-N연산결과, 누적코드길이가 N비트가 될 때 인에이블되므로 구획된 N비트의 데이터가 유의미한 코드데이타들로 모두 채워질때만 가변장부호화된 데이터는 수신측으로 전송된다.
본 발명의 바람직한 일실시예에 따른 제 1도 가변장부호화기의 네 번째 클럭이후의 동작은, 이 분야에 통상의 지식을 가진 자라면 전술의 설명으로 부터 용이하게 유추할 수 있으므로 상세한 설명은 생략한다.
한편, 전술한 양자화과정을 거친 8X8블럭내 63개의 교류(AC)성분은 이산여현변환계수매트릭스를 지그-재그(zig-zag)식으로 스캐닝함으로써 발생되는 영(zero)의 연속을 부호화하는 연속영의길이부호화가 수행된다. 이와같이 교류성분에 대해 연속영의길이부호화(Run Length Coding; RLC)가 사용되는 것은,이산여현변환이 직류를 포함한 낮은 주파수의 계수에 에너지를 집주시키기 때문인데, 즉 교류신호성분중에서 저주파에 해당하는 계수들은 비교적 비영(non-zero)값을 갖는데 비해서 고주파에 해당하는 계수들은 영의 값을 가질 확률이 높기 때문이다. 따라서 이산여현변환계수를 허프만코드로 부호화하기 전에 가능한 영이 연속되게 발생할 수 있도록 해줄 경우, 부호화의 압축효율을 증대시켜 줄 수가 있다.
다음에 연속영의길이부호화과정을 거친 교류(AC)성분은 룩업테이블(10)로 출력된다. 이 룩업테이블(10)은, 1차원허프만코드로 부호화하기 위한 DC성분의 룩업테이블과 다르며, (런,레벨)쌍에 대해 2차원허프만부호화를 위한 룩업테이블이다.
이 룩업테이블(10)은 입력되는 교류성분의(런,레벨)쌍에 대응하는 코드워드 및 코드워드길이와 여분비트 및 여분비트길이를 각각 출력한다. 이후에 수행되는 제 1도의 부호화기의 작용은 직류성분의 제 1도의 동작설명과 동일하므로 중복을 피하기 위하여 생략한다.
상술한 바와 같이 하나의 심볼에 코드워드 및 여분비트를 할당하는 방식으로 부호화하는 본 발명의 가변장부호화기는, 룩업테이블로부터 발생되는 하나의 심볼에 대응하는 코드워드 및 여분비트를 한 클럭내에 하나의 코드로 결합하며, 동시에 상기 심볼에 대응하는 코드워드길이 및 코드워드길이를 가산하여 상기 코드의 길이로 출력한다. 이상의 구성들이 제 1도의 점선으로 구획된, 본 발명에 따라 새로이 추가된 구성들이며, 이 구성들이 한 심볼에 하나의 가변장부호어만을 할당하는 방식으로 부호화하기 위한 종래의 가변장부호화기와 유기적으로 결합되어 동작함으로써 하나의 심볼에 코드워드 및 여분비트를 할당하는 방식의 엔트로피부호화를 실시간으로 처리하며 동시에 효율적으로 수행하는 효과를 제공한다.
Claims (1)
- 입력되는 각 심볼을 코드워드 및; 여부비트를 포함하는 코드로 부호화하기 위한 가변장부호화기에 있어서, 상기 심볼에 대응하는 코드워드 및 이 코드워드의 길이와, 여분비트 및 이 여분비트의 길이를 각가 발생하는 룩업테이블; 상기 룩업테이블로부터의 코드워드, 코드워드길이, 여분비트, 여분비트의 길이를 클럭이 뜰때마다 각각 래칭(latching)하는 서로 구분되는 래치들(latchs)을 구비한 제 1저장수단; 상기 제 1저장수단으로부터 인가되는 코드워드길이에 따라, 상기 제1저장수단로부터의 코드워드가 여분비트에 앞서도록 결합하며, 이를 하나의 심볼에 대응하는 코드로서 출력하는 배럴시프터; 상기 제 1저장수단으로부터 각각 공급되는 코드워드길이와 여분비트길이를 합산하여 상기 코드에 대응하는 코드길이로서 출력하는 가산수단; 상기 배럴시프터로부터의 코드, 및 상기 가산수단으로부터의 코드길이 를 클럭이 뜰때마다 각각 래칭하는 서로 다른 래치들을 구비하 제 2저장수단; 상기 제 2저장수단으로부터의 각 코드길이를 지속적으로 누적하여 모듈러-N연산하며, 이 연산결과, 누적된 코드길이가 N을 초과하는지에 따른 출려가능신호 및 나머지를 출력하는 누적길이연산수단; 상기 제 2저장수단의 해당래치로부터 인가되는 코드길이에 따라, 상기제 2저장수단의 다른 래치로부터 공급되는 각 코드들을 결합하며, 이전클럭의 결합된 코드들이 현재클럭의 코드보다 앞서도록 결합하는 코드결합수단; 및 상기 누적길이 연산수단으로 부터의 누적잔여길이에 따라 상기 코드결합 수단으로부터의 결합된 코드들이 상기 제 2 저장수단으로부터의 코드보다 앞서도록 결합하여 N비트단위로 구획하며, 상기 누적길이연산수단으로부터의 출력가능신호의 상태에 따라 상기 N비트단위로 구획된 결합코드들을 출력하는 출력수단을 포함하는 것을 특징으로 하는 가변장부호화기.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019920020264A KR0166720B1 (ko) | 1992-10-30 | 1992-10-30 | 가변장 부호화기 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019920020264A KR0166720B1 (ko) | 1992-10-30 | 1992-10-30 | 가변장 부호화기 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR940010799A KR940010799A (ko) | 1994-05-26 |
KR0166720B1 true KR0166720B1 (ko) | 1999-03-20 |
Family
ID=19342193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019920020264A KR0166720B1 (ko) | 1992-10-30 | 1992-10-30 | 가변장 부호화기 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR0166720B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100667595B1 (ko) * | 2005-12-29 | 2007-01-11 | 삼성전자주식회사 | 가변 길이 디코더 |
-
1992
- 1992-10-30 KR KR1019920020264A patent/KR0166720B1/ko not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100667595B1 (ko) * | 2005-12-29 | 2007-01-11 | 삼성전자주식회사 | 가변 길이 디코더 |
Also Published As
Publication number | Publication date |
---|---|
KR940010799A (ko) | 1994-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10045034B2 (en) | System and method for using pattern vectors for video and image coding and decoding | |
KR0155784B1 (ko) | 영상데이타의 적응형 가변장 부호화/복호화방법 | |
JP2511788B2 (ja) | デジタル通信システム用の可変長符号語復号器 | |
KR0180169B1 (ko) | 가변길이 부호기 | |
EP0519962B1 (en) | Digital image coding using a random scanning of image frames | |
US6219457B1 (en) | Method and system for decoding data encoded in a variable length code word | |
TWI431948B (zh) | 轉換區塊之效率編碼和解碼 | |
US5640420A (en) | Variable length coder using two VLC tables | |
US6285796B1 (en) | Pseudo-fixed length image compression scheme | |
JP3992303B2 (ja) | 信号圧縮装置と信号伸長装置および信号圧縮方法と信号伸長方法 | |
US7630563B2 (en) | System and method for decoding digital image and audio data in a lossless manner | |
JPH08280032A (ja) | 適応的なスキャニング技法を用いたディジタルビデオ信号符号化装置 | |
JP2004531995A5 (ko) | ||
US6055272A (en) | Run length encoder | |
JPH0686262A (ja) | 画像符号化装置 | |
EP0692913B1 (en) | Digital coding/decoding apparatus using variable length codes | |
EP0519995B1 (en) | Digital image processing including block edges filtering | |
US5742342A (en) | Apparatus for encoding an image signal using vector quantization technique | |
JP3016456B2 (ja) | 適応的可変長符号化方法 | |
US20100002946A1 (en) | Method and apparatus for compressing for data relating to an image or video frame | |
JPH06350854A (ja) | 画像圧縮符号化装置 | |
KR0166720B1 (ko) | 가변장 부호화기 | |
KR0166721B1 (ko) | 가변장 복호화기 | |
JPH0549021A (ja) | 高能率符号化装置 | |
Nasiopoulos et al. | A high-quality fixed-length compression scheme for color images |
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: 20060830 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |