KR20020014141A - 가변길이 복호화장치 - Google Patents

가변길이 복호화장치 Download PDF

Info

Publication number
KR20020014141A
KR20020014141A KR1020000047251A KR20000047251A KR20020014141A KR 20020014141 A KR20020014141 A KR 20020014141A KR 1020000047251 A KR1020000047251 A KR 1020000047251A KR 20000047251 A KR20000047251 A KR 20000047251A KR 20020014141 A KR20020014141 A KR 20020014141A
Authority
KR
South Korea
Prior art keywords
length
signal
output
decoding
dct
Prior art date
Application number
KR1020000047251A
Other languages
English (en)
Other versions
KR100384884B1 (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 KR10-2000-0047251A priority Critical patent/KR100384884B1/ko
Publication of KR20020014141A publication Critical patent/KR20020014141A/ko
Application granted granted Critical
Publication of KR100384884B1 publication Critical patent/KR100384884B1/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 HDTV의 대용량의 영상정보를 실시간에 처리하는 것이 아니라 전송채널이 허용하는 저 전송선로에 대해서도 처리할 수 있는 비교적 적은 영상정보를 효과적으로 가변길이 복호화할 수 있도록 한 가변길이 복호화장치에 관한 것으로, 이러한 본 발명은, 입력되는 비디오 매크로블록_비트스트림 신호를 일시 저장한후 출력하는 FIFO 및 복수개의 레지스터와, 상기 레지스터로부터 출력되는 비트스트림을 인가받아 제어신호에 따라 비트스트림을 비트단위로 이동시켜 출력하는 배럴 쉬프터와, 상기 배럴 쉬프터에서 출력되는 레지스터 값을 가변길이로 디코드함과 아울러 복호화하는 가변길이 디코드 테이블/복호화 스테이트 제어기와, 상기 가변길이 디코드 테이블/복호화 스테이트 제어기에서 출력되는 가변길이 코드값의 유효 비트 수를 합산한후 그 합산된 신호를 상기 FIFO, 레지스터, 배럴 쉬프터로 출력하는 합산기와, 상기 가변길이 디코드 테이블/복호화 스테이트 제어기에서 출력되는 런, 레벨 및 라스트 값을 이산여현변환하는 RLD와, 상기 가변길이 디코드 테이블/복호화 스테이트 제어기로부터 출력되는 신호 및 상기 RLD로부터 출력되는 신호를 인가받아 일시 저장한후 출력하는 출력버퍼로 구성된다.

Description

가변길이 복호화장치{apparatus for decoding a variety length}
본 발명은 영상을 복호화하는 가변길이 복호화장치에 관한 것으로서, 보다 상세하게는 HDTV의 대용량의 영상정보를 실시간에 처리하는 것이 아니라 전송채널이 허용하는 저 전송선로에 대해서도 처리할 수 있는 비교적 적은 영상정보를 효과적으로 가변길이 복호화할 수 있도록 한 가변길이 복호화장치에 관한 것이다.
일반적으로, 동화상 전문가 그룹(Moving Picture Experts Group : MPEG) 비디오 압축 알고리즘은 두가지 기본 기술을 바탕으로 한다. 즉, 시간의 중복성(Temporal Redundancy)을 줄이기 위해서 블록 단위의 움직임 추정 및 보상을 이용하고, 공간 중복성(Spatial Redundancy)을 줄이기 위하여 변환(예컨대, 이산여현변환) 압축 기법을 이용한다.
이때, 공간적 중복성의 개념은 한 화면에서 서로 인접한 화소끼리는 거의 비슷한 값을 가지고 있다는 사실에서 나온 것이며, 시간적 중복성은 대부분의 동영상이 1초에 수십장의 화면(프레임)을 보내어 움직임을 보여 주고 있으므로 시간적으로 연속적인 두 화면(인터프레임)간은 서로 비슷할 수밖에 없다는 것을 말한다.
여기서, 움직임 정보(Motion Vector)는 16 ×16블록 기본으로 구해지고 변환 계수 정보와 함께 전송된다.
그리고, 상기 움직임 정보는 최대의 부호화 효율을 얻기 위해서 가변길이 부호화(VLD: Variable Length Decoding)된다.
이때, 가변길이 부호화란 정보원에 포함된 각 부호의 발생 빈도에 의해 빈도가 많은 것을 짧은 길이의 부호로, 빈도가 적은 것은 긴 길이의 부호로 표시하는 방법으로, 전체의 평균 부호길이를 억제하여 데이터를 압축한다.
도 1은 일반적인 가변길이 복호화장치를 나타낸 구성블록도이다.
도 1에 도시된 바와 같이, 제1 내지 제5래치(101, 102, 104, 105, 108), 제7래치(112) 및 제9래치(119)는 클럭(Clk)의 하강 엣지에서 데이터를 래치하는 하강 래치이고, 제6래치(109), 제8래치(113), 제10래치(120)는 클럭의 상승 엣지에서 데이터를 래치하는 상승래치이다.
그리고, 제1테이블(107)과 제2테이블(111)은 영상데이타를 부호화한 것에 따른 복호화 테이블로서, PLA로 설계하였다.
즉, 전송된 비트 스트림 데이터는 클럭의 하강시에 32비트씩 제1, 2래치(101, 102)에 래치된 후 제1배럴부(103)로 입력된다.
상기 제1배럴부(130)에서는 제1길이에 따라 쉬프터되고, 그에 해당하는 32비트 코드가 클럭의 하강 엣지에서 제3래치(104)에 래치된다.
한편, 이전 클럭에 의해 제2배럴부(106)에서 출력된 코드가 제4래치(105)에 래치되고, 상기 제3래치(104)에 래치된 32비트 코드와 제4래치(105)에 래치된 32비트 코드가 제2배럴부(106)로 입력된다.
이때, 상기 제2배럴부(106)는 제2길이에 따라 원하는 코드에서부터 32비트의코드 데이터를 제1테이블(107)로 출력한다.
여기서, 상기 제1테이블(107)은 코드 길이와 제2테이블(111)에 구성되어 있는 테이블들을 선택할 수 있는 정보를 가지는 코드헤더로 구성되며, 코드 길이와 제2테이블(111) 선택 신호 비트들이 추가되어 있는 데이터를 출력한다.
즉, 클럭의 하강시 상기 제1테이블(107)에서 출력되는 선택신호 비트들이 추가되어 들어있는 데이터는 제5래치(108)에, 코드길이는 제7래치(112)에 래치되고, 클럭의 상승시 데이터는 제6래치(109)에, 코드길이는 제8래치(113)에 래치된다.
이때, 클럭의 하강시 제5래치(108)에 래치된 데이터는 제1멀티플렉서(110)에 의해 선택되어 제2테이블(111)로 출력되고, 클럭의 상승시 제6래치(109)에 래치된 데이터는 마찬가지로 상기 제1멀티플렉서(110)를 통해 출력되는 제1테이블(107)의 데이터에 의해 최종적으로 런(RUN), 레벨(LEVEL)값을 가지고 있는 18비트의 워드 데이터를 출력한다.
이때, 제2배럴부(106)에서 출력되는 코드값은 코드에 비해 이전 코드에 속하는 값이다. 따라서, 코드 값과 반 클럭후 래치된 제1테이블(107)의 출력은 같은 코드에 속하는 값이므로 제2테이블(111)을 통해 워드 데이터를 출력시킬 수 있게 된다.
한편, 상기 제7래치(112)와 제8래치(113)에 래치된 코드길이는 제1가산부(114)에서 가산된 값은 제7래치(112)에 래치된 코드길이와 각각 제2멀티플렉서(115)는 클럭의 하강시 제7래치(112)의 출력을, 클럭의 상승시 제1가산부(115)를 출력을 선택하여 즉, 제7래치(112)에 래치된 코드길이와제7래치(112)와 제8래치(113)에 래치된 코드길이를 합한 코드길이를 번갈아 선택하여 제2길이로서 제2배럴부(106)로 출력한다.
그리고, 클럭의 하강시 제7래치(112)에 래치된 코드길이는 제2가산부(116)에서 클럭의 하강시 제9래치(119)에서 래치된 코드길이와 가산되어 상기 제3멀티플렉서(118)로 출력된다.
또한, 클럭의 상승시 제8래치(113)에 래치된 코드길이는 제3가산부(117)에서 클럭의 상승시 제10래치(120)에서 래치된 코드길이와 가산되어 상기 제3멀티플렉서(118)로 출력된다.
상기 제3멀티플렉서(118)는 클럭의 하강시 상기 제2가산부(116)의 출력을 선택하여 제9래치(119)와 제1길이로서 제1배럴부(103)로 출력하고, 클럭의 상승시 상기 제3가산부(117)의 출력을 선택하여 제10래치(120)와 제1길이로서 제1배럴부(103)로 출력한다.
그러나, 상기와 같이 구성되는 일반적인 가변길이 복호화장치는 트랜지스터-트랜지스터 로직계의 프로그램가능한 논리회로, 메모리소자 등을 이용할 경우에 전체시간이 HDTV시스템의 병렬처리시간을 초과하게 되어 가변길이 복호화의 실시간처리가 곤란한 문제점이 있었다.
또한, 상기와 같이 구성되는 일반적인 가변길이 복호화장치는 가변길이 복호화시 에러(error) 손실에 대한 복구능력이 떨어지는 문제점이 있었다.
따라서, 본 발명은 상기한 종래 기술에 따른 문제점을 해결하기 위하여 안출한 것으로 본 발명의 목적은, HDTV의 대용량의 영상정보를 실시간에 처리하는 것이 아니라 전송채널이 허용하는 저 전송선로에 대해서도 비교적 적은 영상정보를 효과적으로 가변길이 복호화함과 아울러 기존 엠펙-2에서 중요하게 생각하지 않은 에러 손실에 대한 복구능력을 중요하게 생각하고 무선(wireless)환경에 적합한 엠펙-4와 H.263의 호환성을 기초로 한 가변길이 복호화장치를 제공함에 있다.
상기한 목적을 달성하기 위한 본 발명에 따른 가변길이 복호화장치의 특징은, 입력되는 비디오 매크로블록_비트스트림 신호를 일시 저장한후 출력하는 FIFO 및 복수개의 레지스터와, 상기 레지스터로부터 출력되는 비트스트림을 인가받아 제어신호에 따라 비트스트림을 비트단위로 이동시켜 출력하는 배럴 쉬프터와, 상기 배럴 쉬프터에서 출력되는 레지스터 값을 가변길이로 디코드함과 아울러 복호화하는 가변길이 디코드 테이블/복호화 스테이트 제어기와, 상기 가변길이 디코드 테이블/복호화 스테이트 제어기에서 출력되는 가변길이 코드값의 유효 비트 수를 합산한후 그 합산된 신호를 상기 FIFO, 레지스터, 배럴 쉬프터로 출력하는 합산기와, 상기 가변길이 디코드 테이블/복호화 스테이트 제어기에서 출력되는 런, 레벨 및 라스트 값을 이산여현변환하는 RLD와, 상기 가변길이 디코드 테이블/복호화 스테이트 제어기로부터 출력되는 신호 및 상기 RLD로부터 출력되는 신호를 인가받아 일시 저장한후 출력하는 출력버퍼로 구성된다.
도 1은 일반적인 가변길이 복호화장치를 나타낸 구성블록도,
도 2는 본 발명에 따른 가변길이 복호화장치를 나타낸 구성블록도,
도 3은 도 2의 가변길이 부호화 테이블과 복호화 스테이트 제어기의 상세 구성블록도,
도 4는 도 3의 매크로블록 헤더 테이블의 상세 구성블록도,
도 5는 도 3의 움직임 벡터 테이블의 상세 구성블록도,
도 6는 도 3의 블록 테이블의 상세 구성블록도,
도 7은 도 6의 영상 데이터 계수 가변길이 코드부/역방향 가변길이 코드부의 상세 구성블록도이다.
<도면의 주요 부분에 대한 부호의 설명>
200 : FIFO(First In First Out), 210, 220 : 레지스터(Register),
230 : 배럴 쉬프터(Barrel shifter),
240 : 가변길이 디코드 테이블/복호화 스테이트 제어기,
250 : 합산기, 260 : RLD(Run Length Decoder),
270 : 출력버퍼(Output buffer).
이하, 본 발명에 따른 가변길이 복호화장치의 바람직한 실시예를 첨부한 도면을 참조하여 설명하면 다음과 같다.
도 2는 본 발명에 따른 가변길이 복호화장치를 나타낸 구성블록도이다.
도 2에 도시된 바와 같이, 입력되는 비디오 매크로블록(MB)_비트스트림(MacroBlock_bitstream) 신호를 일시 저장한후 출력하는 FIFO(First In First Out)(200)와, 상기 FIFO(200)로부터 출력되는 비트스트림을 일정단위(예: 8비트∼32비트)로 저장하여 출력하는 레지스터(Register)A(210)와, 상기 레지스터A(210)에서 출력되는 비트스트림을 인가받는 레지스터B(220)와, 상기 레지스터A(210), 레지스터B(220)로부터 출력되는 비트스트림을 인가받아 제어신호에 따라 비트스트림을 비트단위로 이동시켜 출력하는 배럴 쉬프터(Barrel shifter)(230)와, MB_decoding_start, short_video_header, data_partitioned, vop_coding_type, revesible_vlc, use_intra_dc_vlc, reversible_vlc, vop_fcode_forward 신호 및 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값(Register Value)을 가변길이로 디코드함과 아울러 복호화하는 가변길이 디코드 테이블/복호화 스테이트 제어기(Veriable Length Decode table(PLA) and Decoding State Controller)(240)와, 상기 가변길이 디코드 테이블/복호화 스테이트 제어기(240)에서 출력되는 가변길이 코드값의 유효 비트 수(code length)를 합산한후 그 합산된 신호를 상기 FIFO(200), 레지스터 A(210) 및 배럴 쉬프터(230)로 출력하는 합산기(accumulator)(250)와, 상기 가변길이 디코드 테이블/복호화 스테이트 제어기(240)에서 출력되는 런(RUN), 레벨(LEVEL) 및 라스트(LAST) 값을 이산여현변환하는 RLD(Run Length Decoder)(260)와, 상기 가변길이 디코드 테이블/복호화 스테이트 제어기(240)로부터 출력되는 not_coded, mb_type, cbpc, dquant, cbpy, dct_dc_size_lum, dct_dc_size_chro, dct_dc_differential, ac_pred_flag, intra_dc_coeff, hori._mv_data, ver._mv_data, hori._mv_residual, ver._mv_residual 신호 및 상기 RLD(260)로부터 출력되는 신호를 인가받아 일시 저장한후 출력하는 출력버퍼(Output buffer)(270)로 구성된다.
상기 합산기(250)는 레지스터A(210)측으로 캐리어(carry) 신호를 출력한다.
또한, 상기 합산기(250)는 배럴 쉬프터(230)측으로 쉬프팅 어마운트(shifting amount) 신호를 출력한다.
상기 가변길이 부호화 테이블/복호화 스테이트 제어기(240)를 도 3을 참조하여 설명하면, 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, not_coded, mb_type, cbpc, ac_pred_flag, dquant, dc_marcker, cbpy 신호를 출력하는 매크로블록 헤더 테이블(Macroblock Header table)(240-1)과, vop_fcode_forward, MB_decoding_start, use_intra_dc_vlc, reversible_vlc, data_partitioned, vop_coding_type, short_video_header 신호와 상기 매크로블록 헤더 테이블(240-1)로부터 출력되는 not_coded, mb_type, cbpc, cbpy 신호를 인가받아 복호화하고 다시 상기 매크로블록 헤더 테이블(240-1)로 출력하는 복호화 스테이트 제어기(Decoding State Controller)(240-2)와, 레지스터 값, vop_fcode_forward 및 상기 복호화 스테이트 제어기(240-2)로부터 출력되는 신호를 인가받아 length, hori._mv_data, ver._mv_data, hori._mv_residual,ver._mv_residual 신호를 출력함과 아울러 상기 hori._mv_data, ver._mv_data 신호를 복호화 스테이트 제어기(240-2)로 인가시키는 움직임 벡터 테이블(Motion Vector Difference: MVD table)(240-3)과, 레지스터 값과 상기 복호화 스테이트 제어기(240-2)로부터 출력되는 신호를 인가받아 length, intra_dc_coeff, dct_dc_size_lum, dct_dc_size_chro, dct_dc_differential, RUN, LEVEL. LAST 신호를 출력함과 아울러 상기 dct_dc_size_lum, dct_dc_size_chro 신호와 LAST, 디코팅 스테이트 정보신호를 복호화 스테이트 제어기(240-2)로 인가시키는 블록 테이블(Block table)(240-4)과, 상기 매크로블록 헤더 테이블(240-1), 복호화 스테이트 제어기(240-2), 움직임 벡터 테이블(240-3) 및 블록 테이블(240-4)로부터 출력되는 신호를 인가받아 length 신호를 출력하는 length MUX(240-5)로 구성된다.
상기 매크로블록 헤더 테이블(240-1)을 도 4를 참조하여 설명하면, 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, not_coded, mb_type, cbpc 신호를 출력하는 not_coded and mcbpc 테이블(240-6)과, 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, dquant신호를 출력하는 dquant 테이블(240-7)과, 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, ac_pred_flag, cbpy신호를 출력하는 ac_pred_flag and cbpy 테이블(240-8)과, 상기 not_coded and mcbpc 테이블(240-6), dquant 테이블(240-7) 및 ac_pred_flag and cbpy 테이블(240-8)에서 각각 출력되는 length신호와 디코딩 스테이트 제어신호를 인가받아 length 신호를 출력하는 length MUX(240-9)로 구성된다.
상기 움직임 벡터 테이블(240-3)을 도 5를 참조하여 설명하면, 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, hori._mv_data, ver._mv_data 신호를 출력하는 hori./ver._mv_data 테이블(240-10)과, vop_fcode_forward 신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, hori._mv_residual, ver._mv_residual 신호를 출력하는 hori./ver._mv_residual 테이블(240-11)과, 상기 hori./ver._mv_data 테이블(240-10), hori./ver._mv_residual 테이블(240-11)에서 각각 출력되는 length신호와 디코딩 스테이트 제어신호를 인가받아 length 신호를 출력하는 length MUX(240-12)로 구성된다.
상기 블록 테이블(240-4)을 도 6을 참조하여 설명하면, 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, intra_dc_coeff. 신호를 출력하는 intra_dc_coeff. 테이블(240-13)과, 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, dct_dc_size_lum. dct_dc_differential 신호를 출력하는 dct_dc_size_lum. and dct_dc_diff. 테이블(240-14)과, 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터의 값을 입력받아 length, dct_dc_size_chro. dct_dc_differential 신호를 출력하는 dct_dc_size_chro. and dct_dc_diff. 테이블(240-15)과, 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, RUN, LEVEL, LAST, 디코딩 스테이트 정보신호를 출력하는 이산여현변환 계수 가변길이 부호화 테이블(DCT coefficient VLD(RVLD)(240-16)과, 상기 intra_dc_coeff. 테이블(240-13), dct_dc_size_lum. and dct_dc_diff. 테이블(240-14), dct_dc_size_chro. and dct_dc_diff. 테이블(240-15), 이산여현변환 계수 가변길이 부호화 테이블(240-16)에서 각각 출력되는 length 신호와 디코딩 스테이트 제어신호를 인가받아 length신호를 출력하는 length MUX(240-17)로 구성된다.
상기 이산여현변환 계수 가변길이 부호화 테이블(240-16)를 도 7을 참조하여 설명하면, 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터의 값을 입력받아 length, 디코딩 스테이트 정보, RUN, LEVEL, LAST, Escape 신호를 출력하는 TCOEF VLD and RVLD(240-18)와, 디코딩 스테이트 제어신호와 상기 TCOEF VLD and RVLD(240-18)에서 출력되는 RUN, LEVEL, LAST, Escape 신호를 입력받아 length, RUN, LEVELs, LASTs, 출력하는 LMAX, RMX, LEVFLs, RUNs계산기(Calculator)(240-19)와, 디코딩 스테이트 제어신호, 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값과 상기 TCOEF VLD and RVLD(240-18)에서 출력되는 Escape 신호를 입력받아 length, RUN, LEVEL, LAST 및 디코딩 스테이트 정보신호를 출력하는 Escape FLD(VLD, H.263, RVLD)(240-20)와, 상기 TCOEF VLD and RVLD(240-18), LMAX, RMX, LEVFLs, RUNs계산기(240-19) 및 Escape FLD(VLD, H.263, RVLD)(240-20)로부터 출력되는 신호를 인가받아 length, RUN, LEVEL, LAST 및 디코딩 스테이트 정보신호를 출력하는 MUX(240-21)로 구성된다.
상기와 같이 구성된 본 고안에 따른 가변길이 복호화장치의 동작을 설명하면 다음과 같다.
먼저, 영상 MB_비트스트림은 FIFO(200)로 입력된다.
이때, 상기 FIFO(200)는 입력되는 순서대로 레지스터A(210)로 영상 MB_비트스트림을 출력한다.
상기 레지스터A(210)로 입력된 영상 MB_비트스트림은 레지스터B( )로 출력된다.
또한, 상기 레지스터A(210), 레지스터B(220)로 입력된 영상 MB_비트스트림은 배럴 쉬프터(230)로 출력된다.
여기서, 상기 레지스터A(210), 레지스터B(220)는 16비트이다.
상기 배럴 쉬프터(230)에 입력된 영상 MB_비트스트림은 비트단위로 이동됨과 아울러 가변길이 디코드 테이블/복호화 스테이트 제어기(240)에 입력된다.
한편, MB_decoding_start, short_video_header, data_partitioned, vop_coding_type, revesible_vlc, use_intra_dc_vlc, reversible_vlc, vop_fcode_forward 신호와 영상 MB_비트스트림을 입력받은 가변길이 디코드 테이블/복호화 스테이트 제어기(240)는 영상 MB_비트스트림을 가변길이로 디코드하고 복호화하여 그 가변길이 코드 값의 유효 비트 수를 합산기(250)로 전달하고 런(RUN), 레벨(LEVEL), 라스트(LAST) 신호를 RLD(RUN Length Decoder)로 전달한다.
그리고 상기 합산기(250)는 레지스터A( )로 캐리어 신호를 보냄과 아울러 배럴 쉬프터(230)에 쉬프팅 어마운트 신호를 보내고, FIFO(200)로 가변길이 코드 값의 유효 비트 수를 출력한다.
또한, 출력버퍼(270)는 가변길이 디코드 테이블/복호화 스테이트 제어기(240)와 RLD(260)에서 출력되는 신호를 일시 저장한 후 출력한다.
상기 가변길이 부호화 테이블/복호화 스테이트 제어기(240)의 동작을 설명하면, 입력되는 값을 매크로 블록 헤더 테이블(Macroblock Header table)(240-1), 움직임 벡터 테이블(Motion Vector table)(240-3), 블록테이블(block table)(240-4)로 구분하여 복호화 스테이트 제어기에서 해당되는 구문(Syntax)의 순서에 따라 각각의 순서대로 테이터를 구문 분석하고 복호화한다.
그리고 복호화 스테이트 제어기(240-2)에는 data_partitioned, vop_coding_type신호가 입력된다.
여기서, 구문을 구성하는 오더(order)가 크게 3가지로 나누어지는데, I-vop data_partitioned, P-vop data_partitioned I/P-vop macroblock decoding이다.
한편, Length MUX(240-5)은 복호화 스테이트 제어기(240-2)에서 선택된 테이블의 코드 길이 값을 합산기(250)로 전달한다.
상기 매크로블록 헤더 테이블(240-1)의 동작을 설명하면, not_coded and mcbpc 테이블(240-6)은 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, not_coded, mb_type, cbpc 신호를 출력한다.
또한, dquant 테이블(240-7)은 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, dquant신호를 출력한다.
그리고, ac_pred_flag and cbpy 테이블(240-8)은 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, ac_pred_flag, cbpy신호를 출력한다.
한편, length MUX(240-9)는 상기 not_coded and mcbpc 테이블(240-6), dquant 테이블(240-7) 및 ac_pred_flag and cbpy 테이블(240-8)에서 각각 출력되는 length신호와 디코딩 스테이트 제어신호를 인가받아 length 신호를 출력한다.
상기 움직임 벡터 테이블(240-3)의 동작을 설명하면, hori./ver._mv_data 테이블(240-10)은 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, hori._mv_data, ver._mv_data 신호를 출력한다.
또한, hori./ver._mv_residual 테이블(240-11) vop_fcode_forward 신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, hori._mv_residual, ver._mv_residual 신호를 출력한다.
그리고, length MUX(240-12)는 hori./ver._mv_data 테이블(240-10), hori./ver._mv_residual 테이블(240-11)에서 각각 출력되는 length신호와 디코딩 스테이트 제어신호를 인가받아 length 신호를 출력한다.
상기 블록 테이블(240-4)의 동작을 설명하면, intra_dc_coeff. 테이블(240-13)은 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, intra_dc_coeff. 신호를 출력한다.
또한, dct_dc_size_lum. and dct_dc_diff. 테이블(240-14)은 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아length, dct_dc_size_lum. dct_dc_differential 신호를 출력한다.
또한, dct_dc_size_chro. and dct_dc_diff. 테이블(240-15)는 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터의 값을 입력받아 length, dct_dc_size_chro. dct_dc_differential 신호를 출력한다.
또한, 이산여현변환 계수 가변길이 부호화 테이블(DCT coefficient VLD(RVLD)(240-16)은 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, RUN, LEVEL, LAST, 디코딩 스테이트 정보신호를 출력한다.
그리고, length MUX(240-17)는 상기 intra_dc_coeff. 테이블(240-13), dct_dc_size_lum. and dct_dc_diff. 테이블(240-14), dct_dc_size_chro. and dct_dc_diff. 테이블(240-15), 이산여현변환 계수 가변길이 부호화 테이블(240-16)에서 각각 출력되는 length 신호와 디코딩 스테이트 제어신호를 인가받아 length신호를 출력한다.
여기서, 상기 intra_dc_coeff. 테이블(240-13)은 short_video_header(미도시)l가 1일때 구문분석 및 복호화한다.
특히, 한 매크로블록에서 dct_dc_size_lum. and dct_dc_diff. 테이블(240-14)은 4개의 값을 복호화하고 dct_dc_size_chro. and dct_dc_diff. 테이블(240-15)는 2개의 값을 복호화한다.
상기 이산여현변환 계수 가변길이 부호화 테이블(240-16)의 동작을 설명하면, TCOEF VLD and RVLD(240-18)는 디코딩 스테이트 제어신호와 상기 배럴쉬프터(230)에서 출력되는 레지스터의 값을 입력받아 length, 디코딩 스테이트 정보, RUN, LEVEL, LAST, Escape 신호를 출력한다.
상기 TCOEF VLD and RVLD(240-18)의 동작을 설명하면, TCOEF VLD에서 Escape mode가 선택되면 short_video_heder(H.263)나 RVLC가 동작할 때 그에 따른 고정길이 복호화(Fixed Length Decoding: FLD)을 수행한다.
또한, LMAX, RMX, LEVFLs, RUNs계산기(Calculator)(240-19)는 디코딩 스테이트 제어신호와 상기 TCOEF VLD and RVLD(240-18)에서 출력되는 RUN, LEVEL, LAST, Escape 신호를 입력받아 length, RUN, LEVELs, LASTs, 출력한다.
상기 Escape code의 종류를 3가지로 분류하고 그에 따라 다음 가변길이 코드를 기준으로 런(RUN), 레벨(LEVEL), 라스트(LAST)를 구한후, LMAX 또는 RMAX를 구하고 RUN, LEVELs, LASTs를 결정하여 원래의 값으로 이용한다.
나머지 하나는 역시 FLD를 수행하는 경우이다.
LEVELs=sign(LEVEL+)×[abs(LEVEL+)+lmax]이다.
RUNs=RUN++(RMAX+1)이다.
여기서, [수학식 1]은 Escape code 다음에 "0"이 입력되면 LEVEL대신에 LEVELs를 사용하여 TCOEP테이블을 참조한다.
또한, [수학식 2]는 Escape code 다음에 "10"이 입력되면 RUNs를 사용하여 TCOEF테이블을 참조한다.
그리고, Escape code 다음에 "11"이 입력되면 고정길이 복호화를 수행한다.
한편, Escape FLD(VLD, H.263, RVLD)(240-20)는 디코딩 스테이트 제어신호, 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값과 상기 TCOEF VLD and RVLD(240-18)에서 출력되는 Escape 신호를 입력받아 length, RUN, LEVEL, LAST 및 디코딩 스테이트 정보신호를 출력한다.
그리고, MUX(240-21)는 상기 TCOEF VLD and RVLD(240-18), LMAX, RMX, LEVFLs, RUNs계산기(240-19) 및 Escape FLD(VLD, H.263, RVLD)(240-20)로부터 출력되는 신호를 인가받아 length, RUN, LEVEL, LAST 및 디코딩 스테이트 정보신호를 출력한다.
이상에서 상기한 바와 같이 본 발명은 대용량의 영상정보를 실시간에 처리하는 것이 아니라 전송채널이 허용하는 저 전송로에 대해서도 비교적 적은 영상정보를 효과적으로 가변길이 복호화할 수 있는 효과가 있다.
그리고, 본 발명은 현재 화상전화, 화상회의, PCS용 PDA, Mobile용 전화 및 멀티미디어 분야에 적용한 제품, IMT-2000 영상서비스를 위한 광범위한 응용제품에 이용할 수 있다.

Claims (8)

  1. 입력되는 비디오 매크로블록_비트스트림 신호를 일시 저장한후 출력하는 FIFO(200)와;
    상기 FIFO(200)로부터 출력되는 비트스트림을 일정단위(예: 8비트∼32비트)로 저장하여 출력하는 레지스터A(210)와;
    상기 레지스터A(210)에서 출력되는 비트스트림을 인가받는 레지스터B(220)와;
    상기 레지스터A(210), 레지스터B(220)로부터 출력되는 비트스트림을 인가받아 제어신호에 따라 비트스트림을 비트단위로 이동시켜 출력하는 배럴 쉬프터(230)와;
    MB_decoding_start, short_video_header, data_partitioned, vop_coding_type, revesible_vlc, use_intra_dc_vlc, reversible_vlc, vop_fcode_forward 신호 및 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 가변길이로 디코드함과 아울러 복호화하는 가변길이 디코드 테이블/복호화 스테이트 제어기(240)와;
    상기 가변길이 디코드 테이블/복호화 스테이트 제어기(240)에서 출력되는 가변길이 코드값의 유효 비트 수를 합산한후 그 합산된 신호를 상기 FIFO(200), 레지스터A(210) 및 배럴 쉬프터(230)로 출력하는 합산기(250)와;
    상기 가변길이 디코드 테이블/복호화 스테이트 제어기(240)에서 출력되는런, 레벨 및 라스트 값을 이산여현변환하는 RLD(260)와;
    상기 가변길이 디코드 테이블/복호화 스테이트 제어기(240)로부터 출력되는 not_coded, mb_type, cbpc, dquant, cbpy, dct_dc_size_lum, dct_dc_size_chro, dct_dc_differential, ac_pred_flag, intra_dc_coeff, hori._mv_data, ver._mv_data, hori._mv_residual, ver._mv_residual 신호 및 상기 RLD(260)로부터 출력되는 신호를 인가받아 일시 저장한후 출력하는 출력버퍼(270)로 구성된 것을 특징으로 하는 가변길이 복호화장치.
  2. 제 1 항에 있어서,
    상기 합산기(250)는 레지스터A(210)측으로 캐리어(carry) 신호를 출력하는 것을 특징으로 하는 가변길이 복호화장치.
  3. 제 1 항에 있어서,
    상기 합산기(250)는 배럴 쉬프터(230)측으로 쉬프팅 어마운트(shifting amount) 신호를 출력하는 가변길이 복호화장치.
  4. 제 1 항에 있어서,
    상기 가변길이 부호화 테이블/복호화 스테이트 제어기(240)는 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, not_coded, mb_type, cbpc, ac_pred_flag, dquant, dc_marcker, cbpy 신호를 출력하는 매크로블록 헤더 테이블(240-1)과;
    vop_fcode_forward, MB_decoding_start, use_intra_dc_vlc, reversible_vlc, data_partitioned, vop_coding_type, short_video_header 신호와 상기 매크로블록 헤더 테이블(240-1)로부터 출력되는 not_coded, mb_type, cbpc, cbpy 신호를 인가받아 복호화하고 다시 상기 매크로블록 헤더 테이블(240-1)로 출력하는 복호화 스테이트 제어기(240-2)와;
    레지스터 값, vop_fcode_forward 및 상기 복호화 스테이트 제어기(240-2)로부터 출력되는 신호를 인가받아 length, hori._mv_data, ver._mv_data, hori._mv_residual, ver._mv_residual 신호를 출력함과 아울러 상기 hori._mv_data, ver._mv_data 신호를 복호화 스테이트 제어기(240-2)로 인가시키는 움직임 벡터 테이블(240-3)과;
    레지스터 값과 상기 복호화 스테이트 제어기(240-2)로부터 출력되는 신호를 인가받아 length, intra_dc_coeff, dct_dc_size_lum, dct_dc_size_chro, dct_dc_differential, RUN, LEVEL. LAST 신호를 출력함과 아울러 상기 dct_dc_size_lum, dct_dc_size_chro 신호와 LAST, 디코팅 스테이트 정보신호를 복호화 스테이트 제어기(240-2)로 인가시키는 블록 테이블(240-4)과;
    상기 매크로블록 헤더 테이블(240-1), 복호화 스테이트 제어기(240-2), 움직임 벡터 테이블(240-3) 및 블록 테이블(240-4)로부터 출력되는 신호를 인가받아 length 신호를 출력하는 length MUX(240-5)로 구성된 것을 특징으로 가변길이 복호화장치.
  5. 제 4 항에 있어서,
    상기 매크로블록 헤더 테이블(240-1)은 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, not_coded, mb_type, cbpc 신호를 출력하는 not_coded and mcbpc 테이블(240-6)과;
    디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, dquant신호를 출력하는 dquant 테이블(240-7)과;
    디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, ac_pred_flag, cbpy신호를 출력하는 ac_pred_flag and cbpy 테이블(240-8)과;
    상기 not_coded and mcbpc 테이블(240-6), dquant 테이블(240-7) 및 ac_pred_flag and cbpy 테이블(240-8)에서 각각 출력되는 length신호와 디코딩 스테이트 제어신호를 인가받아 length 신호를 출력하는 length MUX(240-9)로 구성된 것을 특징으로 하는 가변길이 복호화장치.
  6. 제 4항에 있어서,
    상기 움직임 벡터 테이블(240-3)은 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, hori._mv_data, ver._mv_data 신호를 출력하는 hori./ver._mv_data 테이블(240-10)과;
    vop_fcode_forward 신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, hori._mv_residual, ver._mv_residual 신호를 출력하는 hori./ver._mv_residual 테이블(240-11)과;
    상기 hori./ver._mv_data 테이블(240-10), hori./ver._mv_residual 테이블(240-11)에서 각각 출력되는 length신호와 디코딩 스테이트 제어신호를 인가받아 length 신호를 출력하는 length MUX(240-12)로 구성된 것을 특징으로 하는 가변길이 복호화장치.
  7. 제 4 항에 있어서,
    상기 블록 테이블(240-4)은 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, intra_dc_coeff. 신호를 출력하는 intra_dc_coeff. 테이블(240-13)과;
    디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, dct_dc_size_lum. dct_dc_differential 신호를 출력하는 dct_dc_size_lum. and dct_dc_diff. 테이블(240-14)과;
    디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터의 값을 입력받아 length, dct_dc_size_chro. dct_dc_differential 신호를 출력하는 dct_dc_size_chro. and dct_dc_diff. 테이블(240-15)과;
    디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값을 입력받아 length, RUN, LEVEL, LAST, 디코딩 스테이트 정보신호를 출력하는 이산여현변환 계수 가변길이 부호화 테이블(240-16)과;
    상기 intra_dc_coeff. 테이블(240-13), dct_dc_size_lum. and dct_dc_diff. 테이블(240-14), dct_dc_size_chro. and dct_dc_diff. 테이블(240-15), 이산여현변환 계수 가변길이 부호화 테이블(240-16)에서 각각 출력되는 length 신호와 디코딩 스테이트 제어신호를 인가받아 length신호를 출력하는 length MUX(240-17)로 구성된 것을 특징으로 하는 가변길이 복호화장치.
  8. 제 6 항에 있어서,
    상기 이산여현변환 계수 가변길이 부호화 테이블(240-16)은 디코딩 스테이트 제어신호와 상기 배럴 쉬프터(230)에서 출력되는 레지스터의 값을 입력받아 length, 디코딩 스테이트 정보, RUN, LEVEL, LAST, Escape 신호를 출력하는 TCOEF VLD and RVLD(240-18)와;
    디코딩 스테이트 제어신호와 상기 TCOEF VLD and RVLD(240-18)에서 출력되는RUN, LEVEL, LAST, Escape 신호를 입력받아 length, RUN, LEVELs, LASTs, 출력하는 LMAX, RMX, LEVFLs, RUNs계산기(Calculator)(240-19)와;
    디코딩 스테이트 제어신호, 상기 배럴 쉬프터(230)에서 출력되는 레지스터 값과 상기 TCOEF VLD and RVLD(240-18)에서 출력되는 Escape 신호를 입력받아 length, RUN, LEVEL, LAST 및 디코딩 스테이트 정보신호를 출력하는 Escape FLD(VLD, H.263, RVLD)(240-20)와;
    상기 TCOEF VLD and RVLD(240-18), LMAX, RMX, LEVFLs, RUNs계산기(240-19) 및 Escape FLD(VLD, H.263, RVLD)(240-20)로부터 출력되는 신호를 인가받아 length, RUN, LEVEL, LAST 및 디코딩 스테이트 정보신호를 출력하는 MUX(240-21)로 구성된 것을 특징으로 하는 가변길이 복호화장치.
KR10-2000-0047251A 2000-08-16 2000-08-16 가변길이 복호화장치 KR100384884B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0047251A KR100384884B1 (ko) 2000-08-16 2000-08-16 가변길이 복호화장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0047251A KR100384884B1 (ko) 2000-08-16 2000-08-16 가변길이 복호화장치

Publications (2)

Publication Number Publication Date
KR20020014141A true KR20020014141A (ko) 2002-02-25
KR100384884B1 KR100384884B1 (ko) 2003-05-22

Family

ID=19683330

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0047251A KR100384884B1 (ko) 2000-08-16 2000-08-16 가변길이 복호화장치

Country Status (1)

Country Link
KR (1) KR100384884B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100480699B1 (ko) * 2002-04-10 2005-04-06 엘지전자 주식회사 디지털 캠코더 포맷 영상의 가변 길이 복호화 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100480699B1 (ko) * 2002-04-10 2005-04-06 엘지전자 주식회사 디지털 캠코더 포맷 영상의 가변 길이 복호화 장치

Also Published As

Publication number Publication date
KR100384884B1 (ko) 2003-05-22

Similar Documents

Publication Publication Date Title
US8711931B2 (en) Picture information coding device and coding method
CN101406056B (zh) 减少数字视频编码器中的内预测和模式判决处理中的计算的方法
US6917310B2 (en) Video decoder and encoder transcoder to and from re-orderable format
KR100928127B1 (ko) 인트라-슬라이스 재동기화 포인트들을 사용하는 에러복원을 위한 방법 및 장치
US8855202B2 (en) Flexible range reduction
US7912122B2 (en) Picture coding method, picture decoding method, picture coding apparatus, picture decoding apparatus
US20060126744A1 (en) Two pass architecture for H.264 CABAC decoding process
KR100694275B1 (ko) 신택스레벨에서 동화상의 압축 부호화된 비트스트림을변환하는 트랜스코더장치 및 동화상 통신시스템
US20060203920A1 (en) Method and device for splicing video data in compressed domain
SG180037A1 (en) Video-information encoding method and video-information decoding method
CN101822057A (zh) 视频块标头信息的自适应译码
US20070086515A1 (en) Spatial and snr scalable video coding
KR20040098631A (ko) 디지털 비디오 컨텐트를 위한 적응적 범용 가변 길이코드워드 코딩
US7158684B2 (en) Entropy coding scheme for video coding
US6999511B1 (en) Dynamically switching quant matrix tables within an MPEG-2 encoder
US10484688B2 (en) Method and apparatus for encoding processing blocks of a frame of a sequence of video frames using skip scheme
KR0154010B1 (ko) 가변길이 복호화 장치
KR100203266B1 (ko) 윤곽선복호화장치
US20060133491A1 (en) Video codec
US7436889B2 (en) Methods and systems for reducing requantization-originated generational error in predictive video streams using motion compensation
US20030138052A1 (en) Video coding and decoding method, and corresponding signal
KR100384884B1 (ko) 가변길이 복호화장치
US8774273B2 (en) Method and system for decoding digital video content involving arbitrarily accessing an encoded bitstream
KR100349649B1 (ko) 동영상압축 부호화장치의 가변 길이 부호화기
EP1982428A2 (en) Macroblock neighborhood address calculation

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
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: 20100423

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee