KR20040061049A - 동영상 디코딩 방법 - Google Patents

동영상 디코딩 방법 Download PDF

Info

Publication number
KR20040061049A
KR20040061049A KR1020020086550A KR20020086550A KR20040061049A KR 20040061049 A KR20040061049 A KR 20040061049A KR 1020020086550 A KR1020020086550 A KR 1020020086550A KR 20020086550 A KR20020086550 A KR 20020086550A KR 20040061049 A KR20040061049 A KR 20040061049A
Authority
KR
South Korea
Prior art keywords
level
value
decoding
vlc
inverse quantization
Prior art date
Application number
KR1020020086550A
Other languages
English (en)
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 KR1020020086550A priority Critical patent/KR20040061049A/ko
Publication of KR20040061049A publication Critical patent/KR20040061049A/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/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/124Quantisation
    • 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/169Methods 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/17Methods 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 an image region, e.g. an object
    • H04N19/176Methods 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 an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 동영상을 부호화 하는 코덱의 디코더에서 VLC 디코딩과 역양자화를 함께 진행함으로써 디코딩 연산량을 줄일 수 있는 동영상 디코딩 방법을 개시한다. 개시된 본 발명은 인코더에서 부호화된 비트스트림(VLC) 신호를 수신하여 런, 레벨, 사인, 길이 값을 구하는 단계; 상기 런, 레벨, 사인, 길이 값들에 대하여 ESCAPE 코드를 사용하여 디코딩하였는가를 판단하는 단계; 상기 런, 레벨, 사인, 길이 값들에 대하여 ESCAPE 코드를 사용하여 디코딩하였는 경우에는 고정장 부호화를 진행하는 단계; 및 상기 고정장 부호화를 진행한 다음, 사인 값과 레벨 값에 의하여 역양자화를 진행하고 클립핑 과정을 진행하여 디코딩하는 단계;를 포함하는 것을 특징으로 한다.
여기서, 상기 런, 레벨, 사인, 길이 값들에 대하여 VLC 테이블에 존재하여 ESCAPE 코드를 사용하지 않는 경우에는 클립핑 과정 없이 역양자화를 진행하여 역양자화 테이블에 따라 디코딩을 진행하고, 상기 역양자화 테이블은 QP 값에 대하여 제한된 레벨 값에 따라 미리 계산된 테이블에 의하여 저장된 것을 특징으로 한다.

Description

동영상 디코딩 방법{METHOD FOR MOVING PICTURE DECODING}
본 발명은 동영상 디코딩 방법에 관한 것으로, 보다 구체적으로는 디코더에서 VLC를 디코딩할 때, 역양자화와 함께 진행함으로써 계산량을 크게 줄일 수 있는 동영상 디코딩 방법에 관한 것이다.
현재, 그리고 미래의 통신 환경은 유선과 무선의 영역 구분이나, 지역 국가의 구분을 초월할 만큼 급변하고 있으며, 특히 IMT-2000 등으로 대별되는 미래 통신 환경은 영상과 음성은 물론 사용자가 필요로 하는 다양한 정보를 실시간으로, 또는 종합적으로 제공하는 환경으로 구축되어 가는 추세이다.
또한, 개인 휴대 통신 시스템의 발달은 현재 셀룰러폰이나 PCS등에서도 단순히 음성 통신만을 수행하던 차원에서 벗어나서 문자 정보의 전송은 물론, 개인 휴대 통신 단말기를 이용해서 무선으로 인터넷에 접속하거나, TV에서나 보던 동영상들을 송신할 수 있도록 개발되어지고 있다.
특히, 동영상을 디지털 데이터로 가공하여 실시간으로 전송하고 또 이 것을 수신하여 디스플레이 하는 디지털 텔레비전 시스템과, 실시간으로 전송되는 동영상을 IMT-2000을 이용한 개인 휴대 단말기 등에서는 필수적인 요소로 자리 잡아 가고 있는 실정이다.
이것은 종래에는 휴대 단말기가 사람의 음성만을 송수신하도록 되어 있었으나, 멀티 미디어의 개발과 디지털 정보처리 기술의 발달로 인하여 음성, 영상등 다양한 정보들을 송신할 수 있게 되었다.
이와 같은 기술이 상용화될 수 있었던 것은 무엇보다도 아날로그 영상 신호를 양자화, 가변장부호화등 특수한 디지털 처리를 한 다음, 이를 디지털 정보에 포함시켜 송신하고, 수신되는 단말기에서는 이를 반대로 디코딩함으로써 빠른 전송 속도와 보다 풍부한 정보량을 송수신하도록 한 동영상 압축 기술의 발달이 크게 기여하였다.
엠펙(MPEG) 또는 H.263의 압축 방식에서는 이전 부호화 영상으로부터 움직임을 판단하고 이를 보상하여 부호화를 진행하는데, 이와 같이 움직임 추정을 하는데 많은 계산량을 가지며 화질과 비트(bit)량에 직접적인 영향을 미치므로 매우 중요하다고 할 수 있다.
따라서 움직임 판단(motion estimation) 과 움직임 보상(motion compensation) 값에 관한 많은 연구가 끊임없이 이루어 졌으며, 최근에는 모션 판단 값을 다이아몬드 서치 패턴(diamond search pattern)을 이용하여 풀 서치(full search)와 거의 비슷한 화질과 비트 량을 가지며 가장 범용 적으로 쓰이는 트리 스텝 서치(three step search) 방식이 사용되고 있다.
특히, IMT-2000과 같은 음성과 영상을 송수신하는 영상 전화 시스템에서는 휴대 단말기에 장착된 카메라가 영상을 촬영한 뒤 이를 부호화하여 곧바로 다른 휴대 단말기에 송신하여 디스플레이 하도록 되어 있으므로 상기의 동영상 압축 및 움직임 추정을 위한 부호화 방식이 중요한 신호처리 방식이 된다.
비디오 인코더는 입력 영상 신호를 I 프레임, P 프레임, B 프레임으로 구분하여 부호화를 진행하는데, 상기 I 프레임은 시간 예측 방법을 사용하지 않고, 자체내의 영상 프레임의 데이터 만을 가지고 영상을 예측한다. 독립적으로 부호화와복호화를 할 수 있는 장점이 있지만 하나의 영상 프레임을 부호화하는 비트 량이 매우 크다.
상기 P 프레임은 시간적으로 이전에 부호화된 영상 프레임으로부터 현재 부호화 되는 영상 프레임을 예측할 수 있도록, 즉 부호화될 매크로 블록과 이전 영상 프레임 내의 매크로 블록과의 차이 값만을 부호화하여 보낸다.
따라서, 상기 P 프레임은 I 프레임과 같이 독립적으로 부호화를 진행할 수 없고, 이전 영상 프레임이 반드시 부호화 또는 복호화가 진행되어야만 정상적으로 복원이 가능하다.
하지만, P 프레임은 I 프레임에 비하여 부호화 비트 량이 매우 적다.
상기 B 프레임은 시간적으로 이전에 위치한 영상 프레임과 다음에 위치한 영상 프레임으로부터 예측을 진행한다. 상기 B 프레임이 상기 I 프레임이나 P 프레임에 비해서 더 효율적으로 영상을 압축할 수 있는 경우가 많지만, 일반적으로 휴대용 단말기나 실시간 영상 통화에서는 복잡성과 시간적 잠재성 때문에 사용하지 않는다.
따라서, 일반적으로는 영상 통화를 위해서는 인코더에서는 I 프레임으로 시작하여 P 프레임 순으로 부호화를 진행하여 압축을 하고, 이를 디코딩하여 디스플레이한다.
도 1은 종래 기술에 따른 비디오 디코더에서의 신호처리 과정을 나타낸 블록도이다.
도 1에 도시된 바와 같이, 인코더에서 부호화된 영상 비트스트림이 수신되면디코더에서는 인코더에서 진행하는 방법과 동일하게 부호화 데이터를 복호화 한다.
부호화된 영상 비트스트림(bitstream)이 입력되면, 텍스쳐 파일(texture file)에 대하여 디코딩을 실시하고, 텍스쳐에 따라 디스플레이되는 영상 프레임에 대하여 매크로 블록 단위로 움직임 보상(Motion Compensation)을 진행한다(Reconstructed Macroblock).
이렇게 디코딩된 영상 프레임은 디코더 메모리에 저장되면서, 디스플레이 영역에 전송되어 화면을 디스플레이한다.
그리고 디스플레이되는 화면의 크기는 인코더에서 코딩되는 QCIF의 크기로 영상을 디스플레이하는데, 상기 먼저 디코딩되어 메모리에 저장되어 있는 영상 프레임을 기준으로 움직임 보상을 진행하여 영상 프레임을 복원한다.
상기 인코더에서와 마찬가지로 최초 수신되어 디코딩되는 영상 프레임은 인트라 영상 프레임으로 보고 매크로 블록 단위로 예측을 진행하여 디코딩을 실시한 다음, 이후 디코딩되는 영상 프레임을 P 픽쳐로 보아 디코딩할 때 매크로 블록 단위로 디코딩을 실시한다.
즉, 인코더에서 부호화된 매크로 블록 단위의 움직임 판단(Motion Compensation) 값을 기준으로 이전에 디코딩된 영상 프레임의 매크로 블록(Reconstructed frame previous)으로부터 현재 영상 프레임의 매크로 블록을 추정하여 움직임 보상을 실시한다(Reconstructed frame current).
이때에도 휴대 단말기에서 디스플레이되는 QCIF 크기의 화면을 기준으로 움직임 보상을 실시하는데, 특히 화면의 가장자리 영역과 화면 바깥 영역에서 움직임보상을 할 때에는 화면 가장자리의 화소들을 일괄적으로 움직임 보상 값으로 설정하여 화면을 재현한다.
도 2는 종래 기술에 따른 동영상 디코더의 구조를 도시한 블록도 이다.
도 2에 도시된 바와 같이, 부호화된 영상 데이터가 비트스트림(bit stream) 형태로 디코더 부에 들어오면 이를 원래의 영상으로 복원하기 위하여 인코더에서 행해지는 부호화와 반대로 복호화가 이루어진다.
따라서, 압축된 비트스트림을 복호화 하는 디코더는 일정한 비트스트림의 데이터 양을 임시적으로 저장하는 버퍼부(1)와, 상기 버퍼부(1)에 저장되어 있는 비트스트림을 영상으로 재현하기 위하여 디코딩 작업을 하는 가변장복호화기(Variable Length Decoding :VLD 3)와, 상기 가변장복호화기(3)로부터 디코딩된 비트스트림에서 에러 검출, 움직임 벡터 복원 및 영상 재현을 위한 에러 감지/복원부(5)와, 상기 에러 감지/복원부(5)에서 영상 재현을 위한 영상 데이터는 인코더에서 실시한 압축 방식의 반대로 진행하기 위하여 역양자화와 역이산여현변환을 실시하는 역양자화부(Inverse Quantization:7)와 역DCT(Inverse Discrete Cosine Transform: 9), 상기 에러 감지/복원부(5)에서 복원한 움직임 벡터를 보상하기 위한 움직임 보상기(Motion Compensation: MC 12)와, 동영상을 디스플레이하는 디스플레이부(10)로부터 이전 영상들을 저장하는 영상 프레임 메모리(15)로 구성되어 있다.
상기와 같은 구조를 갖는 디코더에 의하여 압축된 동영상이 재현되는 과정을 다음과 같다.
상기 도 1에서 비트스트림 정보가 디코더로 전송되어 오면, 먼저 텍스쳐 정보에 대하여 디코딩을 실시하여 부호화된 타입을 판단하여 디코딩을 실시한다.
먼저 상기 버퍼부에서 부호화된 비트스트림을 수신하고, 수신된 비트스트림에 대하여 VLC된 영상 신호를 VLD 과정을 거친다. 상기 VLD 과정은 DCT 부호화를 진행할 때 나타난 계수 값에 대하여 복원 과정을 거친다.
상기의 부호화된 DCT 값에 대하여 디코딩을 한 다음 역양자화를 진행한다.
영상 프레임의 매크로 블록 단위로 이루어지는데, 역양자화를 위하여 각각의 블록들에 대한 화소 값에 대하여 역양자화가 이루어진다.
그리고 역양자화에 의하여 구해진 각각의 화소 값들에 대하여 블록 단위로 지그재그 스캔 방식으로 화소들에 역양자화된 값을 위치시킨다. 지그재그 스캔에 의하여 화소들에 역양자화된 값이 위치가게 되면, 이에 대하여 역DCT 과정을 진행하여 원래의 영상 신호를 얻게된다.
MPEG4의 인터 매크로 블록이나 H.263 인트라/인터 매크로 블록의 경우 AC/DC 예측을 수행하지 않으므로, 각각의 블록들에 대한 계수 값이 VLD에서 디코딩된 값 밖에 존재하지 않고, 전체 8*8블록에 대한 64개의 화소 값은 대부분 0의 값을 갖는다.
또한, VLD에서 출력된 런(run), 레벨(level), 라스트(last), 사인(sign)에서 레벨, 사인 값을 역양자화하고, 지그재그 스캔된 위치에 저장한다.
하나의 계수 값에 대하여 역양자화하는 과정은 다음과 같다.
(1) sign=-1, for negative value, +1 for positive value
(2) level= absolute value of level
(3) if(QP is odd value) than q =QP else than q = QP-1// QP is even value
(4) level = 2*QP*level +q
(5) level = sign*level
(6) clipping between -2048 and +2047
의 과정에서 VLD에서 나온 런, 레벨, 라스트, 사인 값을 사용한다면 상기 (1), (2)의 과정은 필요하지 않고, (3)의 과정은 각 블록의 시작시 혹은 매크로 블록 단위로 한번만 계산하면 된다.
따라서 실제 역양자화되는 과정은 (4), (5), (6)의 과정을 진행함으로써 이루어진다.
(4), (5)의 곱셈 과정엣 QP의 범위는 1~31이고, 원래의 DCT 계수의 범위는 양자화 여부에 상관없이 -2048~+2047의 범위가 되어서 16bit short int의 범위 안에 두 변수가 다 들어오기 때문에, level 값이 16bit로 처리가 가능하다. 하지만, H.263 baseline의 경우에는 코딩된 DCT 계수의 범위가 -127 ~ +127이지만, 엠펙4와 H.263의 경우에는 -2048 ~ +2048의 범위가 된다.
따라서, 정상적으로 구현된 디코더라면 최고의 비트 수를 필요로할 때 QP 31, Level 2048까지 고려해야 하고, 이러한 경우라면 2*QP*2048은 16bit short int의 최대 값을 벗어나게 된다. 그러므로 레벨은 32bit long type variable로 처리하지 않는다면 overflow가 발생해서 잘못된 결과가 나올 수 있다.
만약, 타겟 프로세서(target processor)의 데이터 패스(path)가 오토매틱 saturation을 지원해서 이러한 경우의 곱셈에서 오버플로우(overflow) 발생하지 않지만 오토매틱 saturation이 대부분 구현되어 있지 않다.
(6)의 클립핑 과정에서 비트스트림 신덱스(syntax) 상에서, QP와 레벨의 조합에 따라서 역양자화된 레벨 값이 -2048 ~ +2047의 범위 안으로 클립핑이 되어야 한다.
그러나, 상기와 같이 인코더에서 VLC로 부호화가 이루어진 DCT 값에 대하여 디코딩을 진행하고, 매크로 블록 단위의 8*8 블록들에 대한 각각의 화소 값들에 대하여 역양자화를 진행한 다음, 지그재그 스캔 방식과 역 DCT를 진행하는 것을 화소 계수 값이 "0"이든 "1"이든 관계없이 모두 진행하므로 계산량이 많고 복잡도가 증가하는 단점이 있다.
또한, 역양자화 과정에서 클립핑할 때 계수 값에 대하여 if then else 명령에 의하여 이루어지므로 속도 저하가 매우 크게 발생하는 문제가 있다.
그리고 역양자화 과정에서 (4) level = 2*QP*level +q, (5) level = sign*level 곱셈 과정에서 32비트 variable을 사용하고, 모든 계수에 클립핑을 수행하는 과정이 표준에 부합되는 정상적인 디코더를 구현하기 위해서는 반드시 구현해야 하지만, 실제로는 인코더가 정상적으로 부호화를 한다면, 변수의 범위가 벗어나는 경우는 거의 발생하지 않는데도 불구하고, 역양자화 과정을 완료하는데 많은 손실을 보게되는 문제가 있다.
본 발명은, 디코더에서 VLC 디코딩과 역양자화를 함께 진행함으로써 디코딩 연산량을 줄일 수 있는 동영상 디코딩 방법을 제공함에 그 목적이 있다.
은도 1은 종래 기술에 따른 비디오 디코더에서의 신호처리 과정을 나타낸 블록도.
도 2는 종래 기술에 따른 동영상 디코더의 구조를 도시한 블록도.
도 3은 본 발명에 따라 H.263 또는 MPEG4 RVLC 표준에서의 디코딩 과정을 설명하기 위한 플로챠트.
도 4는 본 발명에 따라 RVLC를 사용하지 않는 MPEG4 표준에서의 디코딩 과정을 설명하기 위한 플로챠트.
도 5는 본 발명에 따라 QP 값이 1~31에서 역양자화 될 때, 2048이 되는 양자화 계수값 레벨을 도시한 도면.
*도면의 주요 부분에 대한 부호의 설명*
1: 버퍼부 3:VLD
5: 에러 감지/복원부 7: 역양자화부
9: 역DCT 10: 디스플레이부
15: 영상 프레임 메모리
상기한 목적을 달성하기 위한, 본 발명에 따른 동영상 디코딩 방법은,
인코더에서 부호화된 비트스트림(VLC) 신호를 수신하여 런, 레벨, 사인, 길이 값을 구하는 단계;
상기 런, 레벨, 사인, 길이 값들에 대하여 ESCAPE 코드를 사용하여 디코딩하였는가를 판단하는 단계;
상기 런, 레벨, 사인, 길이 값들에 대하여 ESCAPE 코드를 사용하여 디코딩하였을 경우에는 고정장 부호화를 진행하는 단계; 및
상기 고정장 부호화를 진행한 다음, 사인 값과 레벨 값에 의하여 역양자화를 진행하고 클립핑 과정을 진행하여 디코딩하는 단계;를 포함하는 것을 특징으로 한다.
여기서, 상기 런, 레벨, 사인, 길이 값들에 대하여 VLC 테이블에 존재하여 ESCAPE 코드를 사용하지 않는 경우에는 클립핑 과정 없이 역양자화를 진행하여 역양자화 테이블에 따라 디코딩을 진행하고, 상기 역양자화 테이블은 QP 값에 대하여 제한된 레벨 값에 따라 미리 계산된 테이블에 의하여 저장된 것을 특징으로 한다.
그리고 상기 역양자화를 진행하는 과정에서 제한된 레벨 값에 따라 16bit를 사용하여 디코딩하는 것을 특징으로 한다.
본 발명에 의하면, 디코더에서 수신된 VLC 비트스트림을 디코딩할 때, DCT계수와 역양자화를 동시에 디코딩함으로써, 디코더의 계산량을 줄일 수 있는 이점이 있다.
이하, 첨부한 도면에 의거하여 본 발명의 바람직한 실시 예를 자세히 설명하도록 한다.
디코더에서 수신된 VLC를 디코딩할 때, ESCAPE 코드 등을 사용하여 경우에 따라 다르게 처리되는 것을 고려하면 다음과 같다.
(1)H.263 표준에서는
normal_VLC..............(a)
ESC +H263_FLC............(b)
(2)MPEG 표준에서는
normal_VLC................(c)
ESC+'0'+normal_VLC.........(d)
ESC+'10'+normal_VLC.........(e)
ESC+'11'+MPEG4_FLC..........(f)
(3) MPEG4_RVLC 표준에서는
normal_RVLC.................(g)
ESC+FLC+ESC..................(h)
8가지 방법에 의하여 VLC가 이루어진다.
도 3은 본 발명에 따라 H.263 또는 MPEG4 RVLC 표준에서의 디코딩 과정을 설명하기 위한 플로챠트이다.
도 3에 도시된 바와 같이, 인코더에서 부호화된 비트스트림을 디코더에서 수신한 후에 VLC에 대하여 VLD 과정을 거치는 경우에는 런, 레벨, 라스트, 사인 값이 구해진다(S301).
이와 같이 디코딩된 신호를 VLC 테이블을 사용하여 디코딩할 수 있거나, VLC 테이블에 존재하지 않는 경우에는 ESCAPE 코드를 사용하여 디코딩을 실시한다.
상기 인코더에서는 매크로 블록들의 화소들에 대한 양자화 계수를 가장 부호화될 확률이 높은 경우를 VLC 테이블을 사용하여 부호화를 하게 되고(a, c, g), 부호화하려는 양자화 계수 값이 존재하지 않는 경우에는 ESCAPE 코드를 이용하여(S302) 런(run)이나 레벨(level) 값을 수정하여 부호화를 진행하거나(d, e), FLC 부호화를 이용하여 부호화를 하게 된다(S303: b, f, h).
그런 다음 고정장 부호화된 신호를 클립핑 과정에 의하여 표준 역양자화를 진행한다.(S304)
하지만, 인코더에서의 VLC 코딩을할 때에는 대부분이 정상적인 VLC 과정인 (a), (c), (g)에 의하여 코딩이 이루어지고(S305), ESC 코드를 사용하여 코딩이 이루어지지 않는다.
즉, 클립핑 과정 없이 역양자화를 진행하고, 미리 계산된 역양자화 테이블(table look up)에 따라 디코딩을 진행한다.(S305)
도 4는 본 발명에 따라 RVLC를 사용하지 않는 MPEG4 표준에서의 디코딩 과정을 설명하기 위한 플로챠트이다.
도 4에 도시된 바와 같이, 인코더에서 부호화를 진행한 비트스트림 신호가디코더에 수신되면, VLC를 VLD로 디코딩하여 런, 레벨, 사인, 길이를 구한다.(S401)
이렇게 구해진 디코딩 값에 따라, VLC 테이블에 상응하는 값이 존재하는 가를 판단하는데, VLC 테이블에 해당하는 값이 없는 경우에는 ESC 코드를 사용한다.
VLC 테이블 값이 존재하지 않아 상기 ESC 코드를 사용하는 경우(S402)에는 다음에 오는 비트 값이 "0" 또는 "1"인가의 여부를 판단하여(S403) 표준화된 디코딩 과정을 진행한다.
상기 다음에 오는 비트 값이 "1"인 경우(S403)에는 다음 비트 값에 대하여 "0" 또는 "1"인가의 여부를 판단하고(S404), 다음 비트 값이 또 "1"의 값을 갖는 경우에는 고정장 부호화(FLC)를 진행하게 된다(S405).
상기 고정장 부호화 과정을 진행한 다음, 클립핑 과정에 의하여 표준 역양자화를 진행하게 된다(S406).
상기 ESC 코드를 사용하지 않는 경우에는 클립핑 과정 없이 역양자화를 진행하고, 미리 계산된 역양자화 테이블(table look-up)에 따라 디코딩을 진행한다(S407).
상기 ESC 코드를 사용하여(S402), 다음에 오는 비트 값이 "0"인 경우에는 VLC를 디코딩하여 런, 레벨, 사인, 길이를 구하고(S408), 클립링 과정 없이 역양자화를 진행하거나 역양자화 테이블 레벨에 (2*QP*최대 레벨)을 가산하거나, 역양자화 테이블 레벨+최대 레벨을 이용하여 역양자화를 진행하게 된다(S409).
상기 ESC 코드를 사용하고(S402), 다음에 오는 비트 값이 "1"이고(S403), 그다음에 오는 비트 값이 "0"인 경우에는(S404) 마찬가지로 VLC에 대하여 디코딩을 진행하여 런, 레벨, 사인, 길이를 구한 다음(S410), 클립핑 과정 없이 역양자화를 진행하거나 역양자화 테이블 레벨을 이용하여 역양자화를 진행하게 된다(S411).
상기 (d), (e)에 의한 부호화는 normal_VLC를 사용하여 디코딩된 레벨, 런 값에 (d)의 경우에는 미리 결정된 최대 레벨(predetermined max_level) 값을 더하여 부호화가 되고, (e)의 경우에는 미리 결정된 최대 런(predetermined max_run) 값을 더하여 부호화가 된다.
따라서, 상기 (a), (c), (e), (g)에 의하여 부호화가 될 때에는 레벨 값은 항상 VLC 테이블에 있는 경우에만 디코딩이 되고, (d)의 경우에 디코딩되는 레벨 값은 최대 레벨과 디코딩된 레벨의 합이 된다.
FLC 코딩을 하게되는 경우에는 -2048~+2047의 가능한 모든 범위의 숫자가 나올 수 있지만, VLC 코딩을하거나 (d), (e)와 같이 코딩이 되는 경우에는 계수 레벨은 VLC 테이블에 존재하는 경우로 한정되게 된다.
따라서, 역양자화에서의 클립핑(Clipping)은 VLC 디코딩 중에 FLC로 인코딩된 경우에만 수행하면 되고, 실제로 거의 모든 DCT 계수는 FLC를 사용하지 않으므로, VLC 디코딩 과정 중에 ESC나 FLC의 사용 여부에 따라서 적절하게 역양자화를 수행한다면 거의 대부분의 경우에 클립핑이 필요하지 않고, 또한 이렇게 구성한 경우의 가능한 레벨 값이 제한된다는 특성을 이용하여 역양자화 부분을 테이블을 참조하는 방식으로 구현한다.
역양자화 중간의 intermediate variable을 32bit로 사용해야 할 필요도 없어지고, 전체적으로 디코더의 연산량을 크게 줄일 수 있게 된다.
따라서, 하나의 0아닌 계수 값에 대해서 VLC 디코딩과 역양자화를 합쳐서 구현(VLDnDequantize)한다.
도 5는 본 발명에 따라 QP 값이 1~31에서 역양자화될 때, 2048이 되는 양자화 계수 값 레벨을 도시한 도면이다.
도 5에 도시된 바와 같이, QP 값이 1~31 사이에서 레벨 보다 작은 값을 역양자화했을 때, 레벨이 2048 보다 작게되고, 이러한 조건에서는 역양자화할 때 클립핑 과정이 필요 없게 된다. 즉, 2048이네로 모두 제한되어 있으므로 별도의 클립핑 과정을 진행할 필요가 없다.
MPEG4 인터 매크로 블록, H.263의 인트라/인터 매크로 블록에서 사용되는 VLC 테이블에서 나타나는 레벨 값은 아주 제한된 값만 나타나는데, normal_VLC 테이블(a, c)에서는 1~12 사이의 값, 그리고 MPEG4의 RVLC 테이블(g)에서는 1~19 사이의 값이 된다.
그리고 (d)의 경우에는 VLC 디코딩된 레벨 값에 미리 결정된 최대 레벨 값을 더하게되는 데 최대 레벨 값 역시 1~12 사이의 값이므로, 이 경우 가능한 최대 레벨 값은 24 까지가 된다. (e)의 경우에서는 레벨은 그대로 두고, 런 값만을 조정하므로, 레벨 값의 범위는 1~12 사이의 값이 된다.
따라서, VLC 디코딩 중에서 FLC가 사용되지 않는 경우에는 (a, c, d, e, g) VLC 디코딩에서 생성되는 최대 레벨이 24가 되므로, QP 값에 상관없이 역양자화 시에 클립핑 과정을 생략할 수 있다.
또한, 구현 시에 메모리에 여유가 있다면, 이러한 모든 경우의 레벨과 QP 값에 대한 역양자화 레벨을 미리 계산하여 테이블로 저장하여 둔다면, 그다지 크지 않은 메모리 오버헤드로 테이블화 할 수 있다.
그리고, 최종의 역양자화 계수 값은 VLC 디코딩에 의해서 디코딩된 level_decoded를 이용해서 테이블 룩 업(table look up)하여 얻은 역양자화 값에 2*QP*MAX_LEVEL을 더하여 얻을 수 있다. 이 경우 MAX_LEVEL+level_decoded의 최대 값은 24가 된다.
이상에서 자세히 설명된 바와 같이, 본 발명은 디코더에서 VLC 부호화 비트스트림을 디코딩할 때, DCT 계수 디코딩과 역양자화를 함께 하도록 하여 불필요한 계산량을 줄이면서 부호화를 할 수 있는 효과가 있다.
또한, 역양자화 시에 입력되는 레벨 값이 제한되므로, 역양자화 과정을 실제로 수행하지 않고, 적은 메모리 오버헤드를 이용하여 역양자화 계산량을 줄일 수 있는 이점이 있다.
본 발명은 상기한 실시 예에 한정되지 않고, 이하 청구 범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능할 것이다.

Claims (4)

  1. 인코더에서 부호화된 비트스트림(VLC) 신호를 수신하여 런, 레벨, 사인, 길이 값을 구하는 단계;
    상기 런, 레벨, 사인, 길이 값들에 대하여 ESCAPE 코드를 사용하여 디코딩하였는가를 판단하는 단계;
    상기 런, 레벨, 사인, 길이 값들에 대하여 ESCAPE 코드를 사용하여 디코딩하였을 경우에는 고정장 부호화를 진행하는 단계; 및
    상기 고정장 부호화를 진행한 다음, 사인 값과 레벨 값에 의하여 역양자화를 진행하고 클립핑 과정을 진행하여 디코딩하는 단계;를 포함하는 것을 특징으로 하는 동영상 디코딩 방법.
  2. 제 1 항에 있어서,
    상기 런, 레벨, 사인, 길이 값들에 대하여 VLC 테이블에 존재하여 ESCAPE 코드를 사용하지 않는 경우에는 클립핑 과정 없이 역양자화를 진행하여 역양자화 테이블에 따라 디코딩을 진행하는 것을 특징으로 하는 동영상 디코딩 방법.
  3. 제 2 항에 있어서,
    상기 역양자화 테이블은 QP 값에 대하여 제한된 레벨 값에 따라 미리 계산된 테이블에 의하여 저장된 것을 특징으로 하는 동영상 디코딩 방법.
  4. 제 1 항에 있어서,
    상기 역양자화를 진행하는 과정에서 제한된 레벨 값에 따라 16bit를 사용하여 디코딩하는 것을 특징으로 하는 동영상 디코딩 방법.
KR1020020086550A 2002-12-30 2002-12-30 동영상 디코딩 방법 KR20040061049A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020086550A KR20040061049A (ko) 2002-12-30 2002-12-30 동영상 디코딩 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020086550A KR20040061049A (ko) 2002-12-30 2002-12-30 동영상 디코딩 방법

Publications (1)

Publication Number Publication Date
KR20040061049A true KR20040061049A (ko) 2004-07-07

Family

ID=37352637

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020086550A KR20040061049A (ko) 2002-12-30 2002-12-30 동영상 디코딩 방법

Country Status (1)

Country Link
KR (1) KR20040061049A (ko)

Similar Documents

Publication Publication Date Title
RU2322770C2 (ru) Способ и устройство для указания параметров квантователя в системе видеокодирования
US20040158719A1 (en) Video encoder capable of differentially encoding image of speaker during visual call and method for compressing video signal using the same
US9414086B2 (en) Partial frame utilization in video codecs
US8064516B2 (en) Text recognition during video compression
US20080008250A1 (en) Video encoder
JP2005260936A (ja) 映像データ符号化及び復号化方法及び装置
US20060120449A1 (en) Method of coding and decoding moving picture
US20060133490A1 (en) Apparatus and method of encoding moving picture
KR100414339B1 (ko) 부호화 장치, 복호화 장치, 기지국 장치 및 통신 단말 장치와 동화상 신호의 부호화 방법 및 복호화 방법
KR20040061049A (ko) 동영상 디코딩 방법
KR20040046320A (ko) 동영상 부호화 방법
JPH07336684A (ja) 画像信号復号化装置
JP2820636B2 (ja) 動画像圧縮装置
US7813569B2 (en) MPEG video decoding method and MPEG video decoder using results from analysis of motion-vector data and DCT coefficients
KR20040031870A (ko) 동영상 부호화기 및 이를 이용한 부호화 방법
JP2004222262A (ja) 動画圧縮のための内蔵型メモリ装置
KR100330566B1 (ko) 비디오폰에서 움직임 예측과 움직임 보상을 이용한 흔들림보상장치
KR20040039809A (ko) 동영상 부호화기 및 이를 이용한 부호화 방법
EP1589761A1 (en) A codec adapted to operate in rgb color space
JP2003087797A (ja) 画像情報変換装置及び方法、画像情報変換プログラム、並びに記録媒体
KR100627493B1 (ko) 동영상 부호화기 및 이를 이용한 부호화 방법
KR100521026B1 (ko) 단말기에 있어서 시각 특수 효과를 이용한 개인 정보 보호방법
KR20040063599A (ko) 동영상 코딩방법
KR20040039806A (ko) 동영상 디코딩 방법
JPH05111009A (ja) 動画像の高能率符号化方式

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination