KR100953677B1 - 이미지/비디오 부호기들 및/또는 복호기들에서 변환계수들의 부호화 - Google Patents

이미지/비디오 부호기들 및/또는 복호기들에서 변환계수들의 부호화 Download PDF

Info

Publication number
KR100953677B1
KR100953677B1 KR1020047011252A KR20047011252A KR100953677B1 KR 100953677 B1 KR100953677 B1 KR 100953677B1 KR 1020047011252 A KR1020047011252 A KR 1020047011252A KR 20047011252 A KR20047011252 A KR 20047011252A KR 100953677 B1 KR100953677 B1 KR 100953677B1
Authority
KR
South Korea
Prior art keywords
variable length
symbols
coded
data symbols
data
Prior art date
Application number
KR1020047011252A
Other languages
English (en)
Other versions
KR20040077754A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=27615952&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR100953677(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from US10/054,610 external-priority patent/US6690307B2/en
Application filed by 노키아 코포레이션 filed Critical 노키아 코포레이션
Publication of KR20040077754A publication Critical patent/KR20040077754A/ko
Application granted granted Critical
Publication of KR100953677B1 publication Critical patent/KR100953677B1/ko

Links

Images

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
    • 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
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference

Landscapes

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

Abstract

본 발명은 가변장 부호화 방법에 관한 것으로, 상기 방법에서 제1 값을 갖는 어떤 제1 수의 데이터 심볼들 및 상기 제1 값과는 다른 값들을 갖는 어떤 제2 수의 심볼들을 포함하는 일 집합의 데이터 심볼들이 부호화되고, 가변장 부호화될 일 집합의 심볼들은 상기 데이터 심볼들의 집합으로부터 형성되며, 가변장 부호화가 가변장 부호화될 상기 심볼들의 집합에 적용된다. 상기 방법에 의하면, 가변장 부호화될 상기 심볼들의 집합에 적용되는 상기 가변장 부호화의 적어도 하나의 특성이 가변장 부호화될 상기 심볼들의 수에 따라 적합화되고, 가변장 부호화된 심볼들의 수에 관한 표시가 제공된다. 본 발명에 의하면, 상기 표시는 가변장 부호화될 상기 심볼들의 수에 따라 가변장 코드워드들의 적어도 두개의 택일적인 집합들 중 하나로부터 선택된 가변장 부호화될 상기 심볼들의 수를 나타내는 가변장 코드워드이다. 본 발명은 또한 본 발명에 의한 상기 가변장 부호화 방법 및 복호화 방법을 구현하는 부호기 및 복호기 뿐만 아니라, 대응하는 가변장 복호화 방법에 관한 것이다.
Figure R1020047011252
가변장, 부호화, 복호화, 변환, 복호기, 부호기

Description

이미지/비디오 부호기들 및/또는 복호기들에서 변환 계수들의 부호화{Coding transform coefficients in image/video encoders and/or decoders}
본 발명은 디지털 비디오의 부호화를 위한 방법, 시스템 및 장치에 관한 것으로, 보다 상세하게는 가변장 부호화(VLC: Variable Length Coding)를 사용해서 비디오/이미지 부호기/복호기에서의 블록 기반의 변환 부호화의 결과로써 생성된 양자화 변환 계수들의 부호화에 관한 것이다.
필름에 녹화되는 통상적인 움직임 사진들과 같은 디지털 비디오 시퀀스들은 전형적으로 초당 15에서 30 프레임들의 상대적으로 빠른 속도에서 하나씩 이미지들을 디스플레이함으로써 생성되는 움직임 착각(motion illusion)인 스틸 이미지들의 시퀀스를 포함한다. 상대적으로 빠른 디스플레이 속도 때문에, 연속하는 프레임들의 이미지들은 꽤 유사한 경향이 있으며, 따라서 상당한 양의 중복된 정보를 포함하고 있다. 예를 들면, 전형적인 장면은 배경 장면과 같은 어떤 정적인 요소들 및 예컨대 방송 해설자의 얼굴, 움직이는 교통(moving traffic) 등과 같은 많은 다른 형식들을 취할 수 있는 어떤 움직이는 영역들을 포함할 수 있다. 대안적으로, 상기 장면을 녹화하는 카메라는 자체적으로 이동할 수 있으며, 이러한 경우에 이미지의 모든 요소들은 같은 종류의 움직임을 가진다. 많은 경우들에서, 이것은 하나의 비 디오 프레임 및 다음 프레임간의 총체적인 변화가 다소 작다는 것을 의미한다.
압축되지 않은 디지털 비디오 시퀀스의 각각의 프레임은 이미지 화소들의 집합을 포함한다. 예컨대, QCIF(Quarter Common Interchange Format)으로 알려진 보편적으로 사용되는 디지털 비디오 형식에서, 한 프레임은 176×144 화소들의 집합을 포함하며, 이러한 경우에 각 프레임은 25,344 화소들을 가진다. 한편, 각 화소는 상기 화소에 대응하는 이미지 영역의 휘도 및/또는 컬러 콘텐트에 대한 정보를 가지는 어떤 수의 비트들에 의해 표현된다. 보편적으로, 소위 YUV 컬러 모델은 이미지의 휘도 및 크로미넌스 콘텐트를 표현하는데 사용된다. 휘도, 즉 Y는 이미지의 (밝기(brightness)) 강도를 나타내는 반면에, 이미지의 컬러 콘텐트는 U 및 V로 라벨링된 2개의 크로미넌스 또는 컬러 차이 성분들에 의해 나타난다.
이미지 콘텐트의 휘도/크로미넌스 표현에 기초한 컬러 모델은 주된 컬러들(즉, 레드, 그린 및 블루의 RGB)을 포함하는 표현에 기초한 컬러 모델들에 비해 어떤 장점들을 제공한다. 인간의 시각 시스템(human visual system)은 컬러 변화들보다는 세기(intensity)의 변화들에 더욱 민감하며, YUV 컬러 모델들은 휘도 성분(Y)보다는 크로미넌스 성분들(U,V)에 대해 더욱 낮은 공간 해상도(spatial resolution)를 사용함으로써 이러한 특성을 이용한다. 이러한 방식으로, 이미지에서 컬러 정보를 부호화하기 위해 필요한 정보의 양은 이미지 품질에서의 수용 가능한 저하를 가지고 감소될 수 있다.
크로미넌스 성분들의 더욱 낮은 공간 해상도는 대부분 서브-샘플링(sub-samplng)에 의해 얻어진다. 전형적으로, 비디오 시퀀스의 각각의 프레임은 공간적 으로 서브 샘플링된 휘도(Y) 정보 및 관련된 크로미넌스(U, V) 정보를 포함하는 소위 '매크로블록들(macroblocks)'로 나뉘어진다. 도 3은 매크로블록들이 형성될 수 있는 한가지 방법을 기술한다. 도 3a는 YUV 컬러 모델을 사용해서 표현된 비디오 시퀀스의 프레임을 도시하며, 각각의 성분은 동일한 공간 해상도(spatial resolution)를 가지고 있다. 매크로블록들은 원시 이미지(도 3b)의 16×16 이미지 화소들의 영역을 각각이 휘도(Y) 값들의 8×8 집합을 포함하는 4개의 휘도 정보 블록들 및 대응하는 8×8 크로미넌스(U, V) 값들(도 3c 참조)을 생성하기 위해 x 및 y 방향들에서 2의 인자에 의해 서브-샘플링되는 2개의 공간적으로 대응하는 크로미넌스 성분들(U 및 V)로 표현함으로써 형성된다. 국제 통신 연합(ITU-T: International Telecommunication Unions) 권고 H.26L과 같은 어떤 비디오 부호화 권고들에 따르면, 매크로블록들내에서 사용되는 기본적인 블록 크기는 예를 들면, 4×8 또는 4×4와 같이 8×8 이외의 것일 수 있다(2001년 6월자, Bjontegaard저, VCEG-N10 섹션 2.3 "H.26L Test Model Long Term Number 8(TML-8) draft 0" 참조).
QCIF 이미지는 11×9 매크로블록들을 포함한다. 만약 휘도 블록들및 크로미넌스 블록들이 8비트 해상도로 표현된다면(즉, 0에서 255사이의 범위의 숫자들에 의해 표현된다면), 매크로블록당 필요한 전체 비트들의 수는 (16×16×8)+2×(8×8×8)=3072 비트이다. 따라서 QCIF 형식의 비디오 프레임을 표혐하기 위해 필요한 비트들의 수는 99×3072=304,128 비트들이다. 이것은 초당 30 프레임의 속도에서 YUV 컬러 모델을 사용해서 표현되는, QCIF 형식의 압축되지 않은 비디오 시퀀스를 전송/기록/디스플레이하기 위해 필요한 데이터의 양이 9Mbps(million bits per second)이상이라는 것을 의미한다. 이것은 매우 높은 데이터 속도이며, 비디오 기록, 전송 및 디스플레이에서의 사용을 위해서는 비실용적인데, 왜냐하면 매우 큰 저장 용량, 전송 채널 용량 및 하드웨어 성능이 요구되기 때문이다.
만약 비디오 데이터가 ISDN(Integrated Services Digital Network) 또는 기존의 PSTN(Pubilc Switched Telephone Network)과 같은 고정 라인 네트워크를 통해 실시간으로 전송되어야 한다면, 전형적으로 이용 가능한 데이터 전송 대역폭은 64kbits/s이다. 적어도 부분적으로는 무선 통신 링크를 통해 전송이 일어나는 이동 비디오 텔레포니에서, 이용 가능한 대역폭은 20kbits/s 정도로 낮을 수 있다. 이것은 낮은 대역폭 통신 네트워크들을 통해 디지털 비디오 시퀀스들의 전송을 가능하게 하기 위해 비디오 데이터를 표현하기 위해 사용되는 정보량의 상당한 감소가 이루어져야 한다는 것을 의미한다. 이러한 이유로, 수용할 만한 이미지 품질을 유지하는 반면에 전송되는 정보량을 감소시키는 비디오 압축 기술들이 개발되어 왔다.
비디오 압축 방법들은 비디오 시퀀스들중 중복적이며 지각적으로 부적절한 부분들을 감소시키는 점에 기초한다. 비디오 시퀀스들에서의 중복(redundancy)은 공간적(spatial), 시간적(temporal), 및 스펙트럼(spectral) 중복으로 분류될 수 있다. '공간적 중복(temporal redundancy)'은 프레임내에서 이웃하는 화소들간의 상관(correlation)(유사성)을 기술하는데 사용되는 용어이다. 용어 '시간적 중복(temporal redundancy)은 하나의 시퀀스 프레임에서 나타나는 개체들(objects)은 이후의 프레임들에서도 나타나는 경향이 있다는 점을 나타내며, 반면에 '스펙트럼 중복(spectral redundancy)'은 같은 이미지의 다른 컬러 성분들간의 관계에 관한 것이다.
충분히 효율적인 압축은 대개 주어진 시퀀스의 이미지들에서 다양한 형태의 중복을 단순히 감소시킴으로써 얻어질 수 없다. 따라서, 최근의 비디오 부호기들은 본질적으로 덜 중요한 비디오 시퀀스의 이러한 부분들의 품질을 또한 감소시킨다. 더욱이, 압축된 비디오 비트-스트림 자체의 중복은 효율적인 손실이 적은 부호화(efficient loss less encoding)에 의해 감소된다. 일반적으로, 이것은 엔트로피 부호화(entrophy coding)이라고 알려진 기술을 사용함으로써 얻어진다.
간혹 디지털 비디오 시퀀스의 각 프레임을 구성하는 화소들간에 상당한 양의 공간적 중복(spatial redundancy)이 존재한다. 바꾸어 말하면, 시퀀스 프레임내의 어떤 화소의 값은 본질적으로 그의 바로 인접한 다른 화소들의 값과 같다. 전형적으로, 비디오 부호화 시스템들은 '블록 기반 변환 부호화(block-based trandform coding)'으로 알려진 기술을 사용해서 공간적 중복을 감소시키는데, 이러한 블록 기반 변환 부호화에서는 매크로블록별(macroblock-by-macroblock)로 기초하여 수학적인 변환이 이미지의 화소들에 적용된다. 변환 부호화(transform coding)는 이미지 데이터를 화소 값들을 포함하는 표현으로부터 계수값들의 집합을 포함하는 형식으로 변환하는데, 상기 각각의 계수값은 문제된 변환의 기초함수에 대한 가중인자(weightinh factor)(승수(multiplier))이다. 2차원 이산 코사인 변환(DCT: Discrete Cosine Transform)과 같은 어떤 수학적인 변환들을 사용함으로써, 디지털 비디오 시퀀스의 프레임내의 공간적 중복은 상당한 감소될 수 있고, 따라서 이미지 데이터의 더욱 간결한 표현을 낳을 수 있다.
시퀀스내의 어떤 다른 프레임을 참고함이 없이, 블록 기반의 변환 부호화를 사용해서 압축되는 비디오 시퀀스의 프레임들은 인트라 부호화(INTRA-coded) 또는 I 프레임들(I-frames)로 지칭된다. 또한, 가능한 경우에는 인트라 부호화된 프레임들의 블록들은 같은 프레임내에서는 이전에 부호화된 블록들로부터 예측된다. 인트라 예측(INTRA prediction)으로 알려진 이러한 기술은 인트라 부호화 프레임(INTRA-coded frame)을 나타내는데 필요한 데이터의 양을 더욱 감소시키는 효과를 가진다.
일반적으로, 비디오 부호화 시스템들은 시퀀스에서의 시간적 중복(temporal redundancy)을 감소시키기 위해 비디오 시퀀스의 개개의 프레임들내에서 공간적 중복을 감소시킬 뿐 아니라, '움직임 보상 예측(motion-compensated prediction"'으로 알려진 기술을 이용한다. 움직임 보상 예측을 사용해서, 디지털 비디오 시퀀스의 어떤(간혹 많은) 프레임들의 이미지 콘텐트는, '참조(reference)' 또는 '앵커(anchor)' 프레임들로 알려진, 시퀀스에서의 하나 이상의 다른 프레임들로부터 '예측(predicted)'된다. 이미지 콘텐트의 예측은 '움직임 벡터들(motion vectors)'을 사용해서 부호화될(압축될) 프레임 및 참조 프레임(들)간에 이미지 영역들 또는 객체들(objects)의 움직임을 추적함으로써 얻어진다. 일반적으로, 참조 프레임(들)은 부호화될 프레임에 선행하할 수 있거나 또는 부호화될 프레임을 추종한다. 인트라 부호화의 경우에서와 같이, 비디오 프레임의 움직임 보상 예측은 전형적으로 매크로블록별로 수행된다.
일반적으로 움직임 보상 예측을 사용해서 압축되는 비디오 시퀀스의 프레임 들은 인터 부호화(INTER-coded) 또는 P-프레임들(P-frames)로 지칭된다. 움직임 보상 예측은 그 자체로는 비디오 프레임의 이미지 콘텐트의 충분히 정확한 표현을 거의 제공하지 않으며, 따라서 전형적으로 소위 '예측 오차(PE: Prediction Error)' 프레임에 각각의 인터 부호화 프레임(INTER-coded frame)을 제공하는 것이 필요하다. 예측 오차프레임은 인터 부호화 프레임의 복호화된 버전과 부호화될 프레임의 이미지 콘텐트간의 차이를 나타낸다. 더욱 상세하게는, 예측 오차 프레임은 부호화될 프레임의 화소값들과 문제된 프레임의 예측된 버전에 기초하여 형성된 대응하는 재구성된 화소값들간의 차이를 나타내는 값들을 포함한다. 결과적으로, 예측 오차 프레임은 스틸 이미지에 유사한 특징들을 가지며, 그의 공간적 중복을 감소시키기 위해, 그 결과 그것을 표현하는데 필요한 데이터의 양(비트들의 수)을 감소시키기 위하여 블록 기반의 변환 부호화가 적용될 수 있다.
비디오 부호화 시스템의 작동을 더욱 상세하게 기술하기 위해, 이제 도 1 및 도 2가 참조될 것이다. 도 1은 압축된(부호화된) 비디오 비트-스트림을 생성하기 위해 인트라 및 인터 부호화의 조합을 사용하는 일반적인 비디오 부호기의 개략도이다. 대응하는 복호기가 도 2에서 기술되며, 이후에 문장으로 기술될 것이다.
비디오 부호기(100)는 카메라 또는 다른 비디오 소스(미도시)로부터 디지털 비디오 신호를 수신하기 위한 입력(101)을 포함한다. 또한, 비디오 부호기(100)는 블록 기반의 이산 코사인 변환(DCT: Discrete Cosine Transform)을 수행하는 변환 유닛(104), 양자화기(106), 역양자화기(108), 역 블록 기반의 이산 코사인 변환(IDCT)을 수행하는 역변환유닛(110), 결합기들(112 및 116), 및 프레임 저장부 (120)를 포함한다. 또한 상기 부호기(100)는 움직임 추정기(130), 움직임 필드 부호기(140) 및 움직임 보상 예측기(150)를 포함한다. 비디오 부호화의 인트라 모드 및 비디오 부호화의 인터 모드간에 상기 부호기를 스위칭하기 위해 스위치들(102 및 114)은 제어 관리자(160)에 의해 상호 협조적으로 작동된다. 또한, 부호기(100)는 원격 수신 단말기로의 향후 전송을 위해 또는 컴퓨터 하드 드라이브(미도시)와 같은 대량 저장 매체상의 저장을 위해 부호기(100)에 의해 생성되는 다양한 타입들의 정보로부터 하나의 비트 스트림을 생성하는 비디오 멀티플렉서 부호기(170)를 포함한다.
부호기(100)는 다음과 같이 작동한다. 비디오 소스로부터 입력(101)으로 제공되는 압축되지 않은 비디오의 각각의 프레임은 매크로블록별로 수신되고 처리되는데, 바람직하게는 래스터 스캔 순서(raster scan order)로 처리된다. 새로운 비디오 시퀀스의 부호화가 개시되면, 부호화될 제1 프레임은 인트라 부호화 프레임으로서 부호화된다. 그후에, 상기 부호기는 다음 조건들중 하나가 만족되지 않으면, 각 프레임을 인터 부호화 형식으로 부호화하도록 프로그래밍된다: 1) 부호화되고 있는 프레임의 현재 매크로블록이 그의 예측에 사용된 참조 프레임에서의 화소값과 너무 다르기 때문에, 과도한 예측 오류 정보가 생성되는 경우로, 이러한 경우에 현재의 매크로블록이 인트라 부호화 형식으로 부호화되는 경우라고 판단되는 경우 2) 미리 정의된 인트라 프레임 반복 기간(repetition interval)이 만료되었거나, 또는 3) 인트라 부호화 형식으로 제공될 프레임에 대한 요청을 나타내는 피드백이 수신 단말기(receiving terminal)로부터 수신되는 경우이다.
조건 1)의 발생은 결합기(116)의 출력을 감지함으로써 검출된다. 결합기(116)는 움직임 보상 예측 블록(150)에서 생성된 그의 예측 및 부호화되고 있는 프레임의 현재 매크로블록간의 차이를 형성한다. 만약 이러한 차이의 측정치(measure)(예를 들면, 화소값들의 절대 차이들의 합)가 소정의 문턱값을 초과한다면, 결합기(116)는 제어 라인(119)를 통해서 제어 관리자(160)에게 알리며, 제어 관리자(160)는 부호기(100)를 인트라 부호화 모드로 스위칭하기 위해 제어 라인(113)을 통해 스위치들(102 및 114)를 작동시킨다. 이러한 방식으로, 그렇지 않으면 인터 부호화 형식으로 부호화되는 프레임은 인트라 부호화 매크로블록들을 포함할 수 있다. 조건 2)의 발생은 타이머가 시간초과하거나 또는 프레임 계수기가 소정의 프레임들의 수에 도달하는 것과 같은 방식으로 제어 관리자(160)에 의해 구현되는 타이머 또는 프레임 계수기에 의해 감시되는데, 제어 관리자(160)는 부호기를 인트라 부호화 모드로 스위칭하기 위해 제어 라인(113)을 통해 스위치들(102 및 114)를 작동시킨다. 제어 관리자(160)가 수신 단말기에 의해 인트라 프레임 리플래시(reflesh)가 요구된다는 것을 나타내는 피드백 신호를 제어 라인(121)을 통해, 예컨대 수신 단말기로부터 수신한다면 조건 3)이 트리거된다. 예를 들면, 그러한 조건은 이전에 전송된 프레임이 그 전송중에 간섭에 의해 심하게 손상되고, 수신기에서 복호화하기가 불가능하게 된 경우에 발생할 수 있다. 이러한 경우에, 수신 복호기(receiving decoder)는 인트라 부호화 형식으로 부호화될 다음 프레임에 대한 요청을 발하고, 따라서 부호화 시퀀스를 다시 초기화한다.
인트라 부호화 모드의 부호기(100)의 작동이 이제 기술될 것이다. 인트라 부 호화 모드에서, 제어 관리자(160)는 입력 라인(118)으로부터 비디오 입력을 받아들이기 위해 스위치(102)를 작동시킨다. 비디오 신호 입력은 입력 라인(118)을 통해 입력(101)로부터 매크로블록별로 수신된다. 비디오 신호 입력이 수신될 때, 상기 매크로블록을 구성하는 휘도 및 크로미넌스 값들의 블록들은 DCT 변환 블록(104)으로 전달되고, DCT 변환 블록(104)은 값들의 각 블록에 대해 2차원 이산 코사인 변환을 수행함으로써, 각 블록에 대해 DCT 계수들의 2차원 어레이를 생성한다. DCT 변환 블록(104)은 각 블록에 대해 계수값들의 어레이를 생성하며, 상기 계수값들의 수는 상기 매크로블록을 구성하는 블록들의 특징에 의존한다. 예컨대, 만약 매크로블록에서 사용된 기본적인 블록 크기가 4×4라면, DCT 변환 블록(104)은 각 블록에 대해 4×4의 DCT 계수 어레이를 생성한다. 만약 블록 크기가 8×8이라면, 8×8의 DCT 계수의 어레이가 생성된다.
각 블록에 대한 DCT 계수들은 양자화기(106)로 전달되며, 양자화기(106)에서 DCT 계수들은 양자화 파라미터 QP를 사용해서 양자화된다. 양자화 파라미터 QP의 선택은 제어 라인(115)을 통해 제어 관리자(160)에 의해 제어된다. 양자화된 계수들은 DCT 변환 블록(104)에 의해 최초에 생성된 계수들에 비해 더욱 낮은 수학적 정확도를 가지고 있기 때문에, 양자화는 정보의 손실을 가져온다. 또한, 이것은 비디오 시퀀스의 각각의 이미지를 표현하기 위해 필요한 데이터의 양이 감소될 수 있는 구조를 또한 제공한다. 그러나, 근본적으로 손실이 없는 DCT 변환과 달리, 양자화에 의해 도입되는 정보의 손실은 이미지 품질에 있어 회복 불가능한 열화(degradation)를 야기한다. DCT 계수들에 적용되는 양자화의 차수가 높을 수록, 이 미지 품질의 손실은 더욱 커진다.
각 블록에 대한 양자화된 DCT 계수들은, 도 1의 라인(125)에서 나타난 바와 같이, 양자화기(106)로부터 비디오 멀티플렉스 부호기(107)로 전달된다. 비디오 멀티플렉스 부호기(170)는 지그재그 스캐닝 절차(zigzag scanning procedure)를 사용해서 각각의 블록에 대한 양자화된 변환 계수들의 순서를 매긴다. 이러한 작동은 양자화된 변환 계수들의 2차 어레이를 1차 어레이로 변환한다. 도 4에서 도시된 4×4 어레이에 대한 스캐닝 순서와 같은 전형적인 지그재그 스캐닝 순서들은 계수들을 대략 공간 주파수의 오름차순으로 순서를 매긴다. 1차원 어레이에서 초기에 위치한 계수들이 어레이에서 나중에 위치한 계수들에 비해 더욱 큰 절대값들을 가지도록, 이것은 또한 그들의 값들에 따라 계수들의 순서를 매기려고 한다. 왜냐하면, 더 낮은 공간 주파수들은 이미지 블록들내에서 더욱 높은 진폭들을 가지려는 경향이 있기 때문이다. 결과적으로, 양자화된 변환 계수들의 1차원 어레이의 마지막의 값들은 0이 되는 경향이 있다.
전형적으로, 비디오 멀티플렉스 부호기(170)는 1차원 어레이의 각각의 영이 아닌 양자화된 계수를 레벨 및 런(level and run)으로 지칭되는 2개의 값들로 표현한다. 레벨(level)은 양자화된 계수의 값이며, 런(run)은 문제된 계수에 앞서는 연속하는 영 값의 계수의 수이다. 주어진 계수에 대한 런 및 레벨 값들은 레벨 값이 관련된 런 값에 앞서도록 순서가 매겨진다. 0인 레벨값은 블록내에 0이 아닌 계수값들이 더 이상 존재하지 않는다는 것을 나타내는데 사용된다. 이러한 0 레벨 값은 EOB(End-Of-Block) 심볼로서 지칭된다.
대안적으로, 1차원 어레이의 각각의 0이 아닌 값의 양자화된 계수는 3개의 값들(런(run), 레벨(level), 최종(last))로 표현될 수 있다. 레벨(level) 및 런(run)의 의미는 이전의 개요와 같은 반면에, 최종(last)은 현재 계수 이후에 오는 1차원 어레이의 어떤 다른 0이 아닌 값의 계수들이 존재하는지를 의미한다. 결과적으로, 별도의 EOB 심볼에 대한 필요성이 없다.
또한, 런(run) 및 레벨(level) 값들(적용 가능하다면 최종(last))은 엔트로피 부호화(entropy coding)을 사용해서 압축된다. 엔트로피 부호화는 부호화될 데이터 집합내의 심볼들은 일반적으로 다른 발생 가능성(probabilities of occurrence)을 가진다는 점을 사용하는 손실없는 작동이다. 따라서, 각 심볼을 표현하기 위한 고정된 수의 비트들을 사용하는 대신에, 더욱 발생하기 쉬운 심볼들이 더욱 적은 비트들을 가지는 코드워드들에 의해 표현되도록 가변적인 수의 비트들이 할당된다. 이러한 이유로, 엔트로피 부호화는 간혹 가변장 부호화(VLC: Variable Length Coding)으로 지칭된다. 레벨들(levels) 및 런들(runs)의 어떤 값들은 다른 값들에 비해 더욱 발생하는 경향이 있기 때문에, 엔트로피 부호화 기술들은 런 및 레벨 값들을 표현하기 위해 필요한 비트들의 수를 효율적으로 줄이는데 사용될 수 있다.
일단 런 및 레벨 값들이 엔트로피 부호화되면, 비디오 멀티플렉스 부호기(170)는 또한 그것들을 제어 정보와 결합시키고, 부호화된 이미지 정보(135)의 단일한 압축된 비트 스트림을 형성하기 위해 문제된 종류의 정보에 대해 적절한 가변장 부호화 방법을 사용해서 또한 엔트로피 부호화한다. 부호기로부터 전송되는 것 은 이러한 비트 스트림이며, 상기 비트 스트림은 (런, 레벨) 쌍들을 나타내는 가변장 코드워드들을 포함한다.
비록 엔트로피 부호화는 비디오 멀티플렉스 부호기(170)에 의해 수행되는 작동들과 관련하여 기술되었지만, 대안적인 실시예들에서는 별개의 엔트로피 부호화 유닛이 제공될 수 있다는 점에 유의해야 한다.
매크로블록의 국부적으로 복호화된 버전이 또한 부호화(100)에서 형성된다. 이것은 양자화기(106)에 의해 출력된 각 블록에 대한 양자화된 변환 계수들을 역양자화기(108)를 통해 전달하고 역변환블록(110)에서 역 DCT 변환을 적용함으로써 수행된다. 이러한 방식으로, 화소값들의 재구성된 어레이가 매크로블록의 각각의 블록에 대해 구성된다. 결과적인 복호화된 이미지 데이터는 결합기(112)로 입력된다. 인트라 부호화 모드에서는, 스위치(114)를 통한 결합기(112)로의 입력이 0이 되도록 스위치(114)가 설정된다. 이러한 방식으로, 결합기(112)에 의해 수행되는 작동은 복호화된 이미지 데이터를 변경되지 않은 채로 전달시키는 것과 같다.
현재 프레임의 후속 매크로블록들이 수신되고, 블록들(104, 106, 108, 110 및 112)에서 이전에 기술된 부호화 및 로컬 복호화 단계들이 수행되면, 인트라 부호화된 프레임의 복호화된 버전이 프레임 저장부(120)에 만들어진다. 현재 프레임의 최종 매크로블록이 인트라 부호화되고 연속적으로 복호화될 때, 프레임 저장부(120)는 완전히 복호화된 프레임을 포함하며, 차후에 수신된 비디오 프레임을 인터 부호화 형식으로 부호화함에 있어 예측 참조 프레임으로서의 사용을 위해 이용 가능하다.
인터 부호화 모드에서의 부호기(100)의 작동이 이제 기술될 것이다. 인터 부호화 모드에서, 제어 관리자(160)는 결합기(116)의 출력을 포함하는 라인(117)으로부터 그 입력을 수신하기 위해 스위치(102)를 작동시킨다. 결합기(116)는 매크로블록별로 입력(101)으로부터 비디오 입력 신호 매크로블록을 수신한다. 결합기(116)가 매크로블록을 구성하는 휘도 및 크로미넌스 값들의 블록들을 수신하면, 그것은 예측 오류 정보의 대응하는 블록들을 형성한다. 예측 오류 정보는 문제된 블록과 움직임 보상 예측 블록(150)에서 생성된 그의 예측간의 차이를 나타낸다. 더욱 상세하게는, 매크로블록의 각각의 블록에 대한 예측 오류 정보는 값들의 2차원의 어레이를 포함하며, 상기 값들 각각은 부호화되고 있는 휘도 또는 크로미넌스 정보의 블록의 화소값 및 이하에서 기술될 절차들에 따라 블록에 대해 움직임 보상 예측을 형성함으로써 얻어지는 복호화된 화소값간의 차이를 나타낸다. 따라서, 예를 들면 각각의 매크로블록이 휘도 및 크로미넌스 값들을 포함하는 4×4 블록들의 어셈블리(assembly)를 포함하는 경우에, 유사하게 매크로블록의 각각의 블록에 대한 예측 오류 정보는 예측 오류 값들의 4×4 어레이를 포함한다.
매크로블록의 각각의 블록에 대한 예측 오류 정보는 DCT 변환 블록(104)으로 전달되며, DCT 변환 블록(104)은 각각의 블록에 대해 DCT 변환 계수들의 2차원 어레이를 생성하기 위해 예측 오류 값들의 각 블록에 대해 2차원 이산 코사인 변환(DCT)을 수행한다. DCT 변환 블록(104)은 각각의 예측 오류 블록에 대한 계수값들의 어레이를 생성하며, 계수값들의 수는 상기 매크로블록을 구성하는 블록들의 특성에 의존한다. 예를 들어, 만약 매크로블록에서 사용된 기본적인 매크로블록 크기 가 4×4라면, DCT 변환 블록(104)은 각각의 예측 오류 블록에 대해 DCT 계수들의 4×4 어레이를 생성한다. 만약 블록 크기가 8×8이라면, DCT 계수들의 8×8 어레이가 생성된다.
각각의 예측 오류 블록에 대한 변환 계수들은 양자화기(106)로 전달되고, 여기서 상기 변환 계수들은 인트라 부호화 모드의 부호기의 작동과 관련하여 위에서 기술된 것과 유사한 방식으로 양자화 파라미터 QP를 사용해서 양자화된다. 역시, 양자화 파라미터 QP의 선택은 제어 라인(115)를 통해 제어 관리자(160)에 의해 제어된다.
매크로블록의 각각의 블록에 대한 예측 오류 정보를 나타내는 양자화된 DCT 계수들은, 도 1의 라인(125)에 의해 나타난 바와 같이, 양자화기(106)로부터 비디오 멀티플렉스 부호기(170)로 전달된다. 인트라 부호화 모드에서와 같이, 비디오 멀티플렉스 부호기(170)는 이전에 언급된 지그재그 스캐닝 절차(zigzag scanning procedure)(도 4 참조)를 사용해서 각각의 예측 오류 블록에 대한 변환 계수들의 순서를 매기고, 다음에는 각각의 0이 아닌 양자화된 계수들을 레벨 및 런 값으로 나타낸다. 또한, 인트라 부호화 모드와 관련하여 위에서 기술된 방식과 유사한 방식으로, 비디오 멀티플렉스 부호기(170)는 엔트로피 부호화를 사용해서 런 및 레벨 값들을 압축한다. 또한, 비디오 멀티플렉스 부호기(170)는 움직임 필드 부호화 블록(140)으로부터 라인(126)을 통해 (이하에서 기술될) 움직임 벡터 정보를, 그리고 제어 관리자(160)로부터 제어 정보를 받는다. 비디오 멀티플렉스 부호기(170)는 움직임 벡터 정보 및 제어 정보를 엔트로피 부호화하고, 엔트로피 부호화된 움직임 벡터, 예측 오류 및 제어 정보를 포함하는 부호화된 이미지 정보의 단일한 비트 스트림(135)을 형성한다.
또한, 상기 매크로블록들의 각각의 블록에 대한 예측 오류 정보를 나타내는 양자화된 DCT 계수들은 양자화기(106)으로부터 역 양자화기(108)로 전달된다. 역 양자화기(108)에서, 상기 양자화된 DCT 계수들은 역 양자화되고, 역 양자화된 DCT 계수들의 결과적인 블록들은 역 DCT 변환 블록(110)으로 인가되고, 역 DCT 변환 블록(110)에서 예측 오류 값들의 국부적으로 복호화된 블록들을 생성하기 위해 상기 블록들은 역 DCT 변환을 겪는다. 예측 오류 값들의 국부적으로 복호화된 블록들은 다음에 결합기(112)로 입력된다. 인터 부호화 모드에서, 결합기(112)가 움직임 예측 블록(150)에 의해 생성된, 매크로블록의 각각의 블록에 대한 예측된 화소값들을 수신하도록, 스위치(114)가 설정된다. 재구성된 이미지 블록들을 생성하기 위해 결합기(112)는 예측 오류 값들의 국부적으로 복호화된 블록들 각각과 예측된 화소값의 대응하는 블록을 결합시키고, 그것들을 프레임 저장부(120)에 저장한다.
비디오 신호의 후속 매크로블록들이 비디오 소스로부터 수신되고, 블록들(104, 106, 108, 110, 112)에서 이전에 기술된 부호화 및 복호화 단계들을 겪을 때, 프레임의 복호화된 버전이 프레임 저장부(120)에 만들어진다. 프레임의 최종 매크로블록이 처리 종료되면, 프레임 저장부(120)는 완전히 복호화된 프레임을 포함하며, 차후에 수신된 비디오 프레임을 인터 부호화 형식으로 부호화함에 있어 예측참조 프레임으로서의 사용을 위해 이용 가능하다.
현재 프레임의 매크로블록에 대한 예측 형태(formation)가 이제 기술될 것이 다. 인터 부호화 형식으로 부호화된 모든 프레임은 움직임 보상 예측을 위한 참조 프레임을 필요로 한다. 이것은, 비디오 시퀀스를 부호화할 때에 부호화될 제1 프레임은, 시퀀스에서 제1 프레임이건 또는 다른 프레임인지에 관계없이 반드시 인트라 부호화 형식으로 부호화되어야 한다는 것을 의미한다. 이것은, 비디오 부호기(100)가 제어 관리자(160)에 의해 인터 부호화 모드로 스위칭될 때, 이전에 부호화된 프레임을 국부적으로 복호화함으로써 형성된 완전한 참조 프레임이 부호기의 프레임 저장부(120)에서 이미 이용 가능하다는 것을 의미한다. 일반적으로, 참조 프레임은 인트라 부호화 프레임(INTRA-coded frame) 또는 인터 부호화 프레임(INTER-coded frame)중 어느 하나를 국부적으로 복호화함으로써 형성된다.
현재 프레임의 매크로블록에 대한 예측을 형성함에 있어서 제1 단계는 움직임 예측 블록(130)에 의해 수행된다. 움직임 예측 블록(130)은 부호화될 프레임의 현재 매크로블록을 구성하는 휘도 및 크로미넌스 값들의 블록들을 라인(128)을 통해 수신한다. 다음에, 움직임 예측 블록(130)은 현재 매크로블록과 실질적으로 대응하는 참조 프레임의 영역을 식별하기 위해 블록 매칭 동작(block matching operation)을 수행한다. 블록 매칭 동작을 수행하기 위해, 움직임 예측 블록은 라인(127)을 통해 프레임 저장부(120)에 저장된 참조 프레임 데이터를 엑세스한다. 더욱 상세하게는, 움직임 예측 블록(130)은 프레임 저장부(120)에 저장된 참조 프레임으로부터 화소들의 후보 최적 매칭 영역들 및 검사중인 매크로블록간의 화소값들의 차이를 나타내는 차이값들(즉, 절대 차이들의 합)을 계산함으로써 블록 매칭을 수행한다. 차이값은 참조 프레임의 미리 정의된 영역내에서 모든 가능한 오프셋 들에서 후보 영역들에 대해 생성되며, 움직임 예측 블록(130)은 가장 작은 계산된 차이값을 결정한다. 가장 작은 차이값을 생성하는 참조 프레임에서의 화소값들의 후보 블록 및 현재 프레임에서의 매크로블록간의 오프셋은 문제된 매크로블록에 대한 움직임 벡터를 정의한다.
일단 움직임 예측 블록(130)이 매크로블록에 대한 움직임 벡터를 생성하면, 움직임 필드 부호화 블록(140)으로 상기 움직임 벡터를 출력한다. 움직임 필드 부호화 블록(140)은 한 집합의 기본 함수들 및 움직임 계수들을 포함하는 움직임 모델을 사용해서 움직임 예측 블록(130)으로부터 수신된 움직임 벡터를 근사화한다. 더욱 상세하게는, 상기 움직임 필드 부호화 블록(140)은, 기본 함수들(basis function)에 의해 곱해질 때, 움직임 벡터의 근사치(approximation)를 형성하는 한 집합의 움직임 계수값들로서 움직임 벡터를 나타낸다. 전형적으로, 단지 2개의 움직임 계수들 및 기본 함수들을 가지는 번역 움직임 모델(translational motion model)이 사용되지만, 더욱 복잡한 움직임 모델들이 또한 사용될 수 있다.
움직임 계수들은 움직임 필드 부호화 블록(140)으로부터 움직임 보상 예측 블록(150)으로 전달된다. 또한, 움직임 보상 예측 블록(150)은 프레임 저장부(120)로부터 움직임 예측 블록(130)에 의해 식별된 화소값들의 최적 매칭 후보 영역을 수신한다. 움직임 필드 부호화 블록(140)에 의해 생성된 움직임 벡터 및 참조 프레임으로부터 화소들의 최적 매칭 후보영역의 화소값들의 대략적인 표현을 사용해서, 움직임 보상 예측 블록(150)은 매크로블록의 각각의 블록에 대하여 예측된 화소값들의 어레이를 생성한다. 예측된 화소값들이 현재 매크로블록의 대응하는 블록에서 의 실제 (입력) 화소값들로부터 감산되는 경우에, 예측된 화소값들의 각각의 블록은 결합기(116)로 전달된다.
도 2에서 도시된 비디오 부호기(200)의 동작이 이제 기술될 것이다. 복호기(200)는 비디오 멀티플렉스 복호기(270)를 포함하며, 상기 비디오 멀티플렉스 복호기(270)는 부호기(100)로부터 부호화된 비디오 비트 스트림(135)을 수신하고, 그것을 그의 구성부분들, 역양자화기(210), 역 DCT 변환기(220), 움직임 보상 예측 블록(240), 프레임 저장부(250), 결합기(230), 제어 관리자(260), 및 출력(280)으로 디멀티플렉싱한다.
제어 관리자(260)는 인트라 또는 인터 부호화된 프레임이 복호화되고 있는지에 응답하여 복호기(200)의 작동을 제어한다. 복호기로 하여금 복호화 모드들간에 스위칭하도록 하는 인트라/인터 트리거 제어 신호는 예를 들면 부호기로부터 수신된 각각의 압축된 비디오 프레임의 헤더부분에서 제공되는 픽처 타입(picture type)으로부터 유도된다. 인트라/인터 트리거 제어 신호는 비디오 멀티플렉스 복호기(270)에 의해 부호화된 비디오 비트 스트림으로부터 추출되며, 제어 라인(215)을 통해 제어 관리자(260)로 전달된다.
인트라 부호화 프레임(INTRA-coded frame)의 복호화는 매크로블록 기반으로 수행되며, 그것과 관련된 부호화된 정보가 비디오 비트 스트림(135)에서 수신되자마자 각각의 매크로블록은 실질적으로 복호화된다. 비디오 멀티플렉스 복호기(270)는 문제된 매크로블록에 관한 가능한 제어 정보로부터 매크로블록의 블록들에 대한 부호화된 정보를 분리한다. 인트라 부호화된 매크로블록의 각 블록에 대한 부호화 된 정보는 블록의 영이 아닌 양자화된 DCT 계수들에 대한 엔트로피 부호화된 레벨(level) 및 런(run) 값들을 나타내는 가변장 코드워드들을 포함한다. 비디오 멀티플렉스 복호기(270)는 부호기(100)에서 사용된 부호화 방법에 대응하는 가변장 복호화 방법을 사용해서 가변장 코드워드들(variable length codewords)을 복호화하고, 이에 의해 레벨(level) 및 런(run) 값들을 회복한다. 다음에, 비디오 멀티플렉스 복호기(270)는 매크로블록의 각 블록에 대한 양자화 변환 계수값들의 어레이를 재구성하고, 그것들을 역양자화기(210)로 전달한다. 또한, 매크로블록에 관한 어떠한 제어 정보도 적절한 복호화 방법을 사용해서 비디오 멀티플렉스 복호기에서 복호화되며, 제어 관리자(260)로 전달된다. 특히, 변환 계수들에 적용되는 양자화 레벨에 관한 정보가 비디오 멀티플렉스 복호기(270)에 의해 부호화된 비트 스트림으로부터 추출되며, 제어 라인(217)을 통해 제어 관리자(260)로 제공된다. 제어 관리자는 제어 라인(218)을 통해 이러한 정보를 역양자화기(210)로 전달한다. 역양자화기(210)는 제어정보에 따라 매크로블록의 각 블록에 대한 양자화된 DCT 계수값들을 역 양자화하고, 역 양자화된 DCT 계수들을 역 DCT 변환기(220)로 제공한다.
재구성된 화소값들을 포함하는 이미지 정보의 복호화된 블록을 형성하기 위해, 역 DCT 변환기(220)는 매크로블록의 각 블록에 대한 역 양자화 DCT 계수들에 대해 역 DCT 변환을 수행한다. 움직임 보상 예측이 인트라 부호화된 매크로블록들의 부호화/복호화에서 사용되지 않기 때문에, 제어 관리자(260)는 어떠한 참조 프레임이 인트라 부호화된 매크로블록의 복호화에서 사용되는 것을 방지하는 것과 같은 방식으로 결합기(230)를 제어한다. 매크로블록의 각 블록에 대한 재구성된 화소 값들은 복호기의 비디오 출력(280)으로 전달되며, 상기 출력(280)에서 상기 재구성된 화소값들은 예컨대 디스플레이 장치(미도시)로 제공될 수 있다. 매크로블록의 각 블록에 대한 재구성된 화소값들은 또한, 프레임 저장부(250)에 저장된다. 인트라 부호화된 프레임의 후속 매크로블록들은 복호화되고 저장되며, 복호화된 프레임은 프레임 저장부(250)에 점진적으로 집합되고(progressively assembled), 따라서 연속적으로 수신된 인터 부호화된 프레임들의 복호화와 관련하여 움직임 보상 예측을 위한 참조 프레임으로서의 사용을 위해 이용 가능하게 된다.
또한, 인터 부호화된 프레임들은 매크로블록별로 복호화되며, 각각의 인터 부호화된 매크로블록은 그것과 관련된 부호화된 정보가 비트 스트림(135)에서 수신되자마자 실질적으로 부호화된다. 비디오 멀티플렉스 복호기(270)는 문제된 매크로블록에 관한 가능한 제어 정보 및 부호화된 움직임 벡터 정보로부터 인터 부호화된 매크로블록의 각 블록에 대한 부호화된 예측 오류 정보를 분리한다. 이전에 기술된 바와 같이, 매크로블록의 각 블록에 대한 부호화된 예측 오류 정보는 문제된 예측 오류 정보 블록의 영이 아닌 양자화된 변환 계수들에 대한 엔트로피 부호화 레벨 및 런 값들을 나타내는 가변장 코드워드들을 포함한다. 비디오 멀티플렉스 복호기(270)는 부호기(100)에서 사용된 부호화 방법에 대응하는 가변장 복호화 방법을 사용해서 가변장 코드워드들을 복호화하며, 이에 의해 레벨 및 런 값들을 회복한다. 다음에, 비디오 멀티플렉스 복호기(270)는 각 예측 오류 블록에 대한 양자화된 변환 계수값의 어레이를 재구성하고, 그것들을 역양자화기(210)로 전달한다. 또한, 인터 부호화된 매크로블록에 관한 제어 정보는 적절한 복호화 방법을 사용해서 비 디오 멀티플렉스 복호기(270)에서 복호화되며, 제어 관리자(260)로 전달된다. 예측 오류 블록들의 변환 계수들에 적용되는 양자화 레벨에 관한 정보는 부호화된 비트 스트림으로부터 추출되며, 제어 라인(217)을 통해 제어 관리자(260)로 제공된다. 제어 관리자는 이러한 정보를 제어 라인(218)을 통해 역양자화기(210)로 전달한다. 역양자화기(210)는 제어 정보에 따라 매크로블록의 각 블록에 대한 예측 오류 정보를 나타내는 양자화된 DCT 계수들을 역 양자화하고, 역 양자화된 DCT 계수들을 역 DCT 변환기(220)로 제공한다. 각 블록에 대한 예측 오류를 나타내는 역 양자화된 DCT 계수들은 역 DCT 변환기(220)에서 역으로 변환되어 매크로블록의 각 블록에 대한 재구성된 예측 오류값들의 어레이를 생산한다.
매크로블록과 관련된 부호화된 움직임 벡터 정보는 비디오 멀티플렉스 복호기(270)에 의해 부호화된 비디오 스트림(135)으로부터 추출되어 복호화된다. 따라서, 얻어진 복호화된 움직임 벡터 정보는 제어 라인(225)을 통해 움직임 보상 예측 블록(240)으로 전달되며, 상기 움직임 보상 예측 블록(240)은 부호기(100)에서 인터 부호화된 매크로블록을 부호화하는데 사용된 것과 같은 움직임 모델을 사용해서 매크로블록에 대한 움직임 벡터를 재구성한다. 재구성된 움직임 벡터는 부호기의 움직임 예측 블록(130)에 의해 최초에 결정된 움직임 벡터를 근사화한다. 복호기의 움직임 보상 예측 블록(240)은 재구성된 움직임 벡터를 사용해서 프레임 저장부(250)에 저장된 예측 참조 프레임의 재구성된 화소들의 영역의 위치를 식별한다. 상기 참조 프레임은 예를 들면, 이전에 복호화된 인트라 부호화 프레임이거나 또는 이전에 복호화된 인터 부호화 프레임일 수 있다. 어느 경우에나, 재구성된 움직임 벡터에 의해 나타난 화소들의 영역은 문제된 매크로블록에 대한 예측을 형성하기 위해 사용된다. 더욱 상세하게는, 움직임 보상 예측 블록(240)은 참조 프레임에서 식별된 화소들의 영역으로부터 대응하는 화소값들을 복사함으로써 매크로블록의 각 블록에 대한 화소값들의 어레이를 형성한다. 상기 예측, 즉 참조 프레임으로부터 유도된 화소값들의 블록들은 움직임 보상 예측 블록들(240)로부터 결합기(230)로 전달되며, 상기 결합기(230)에서 그것들은 복호화된 예측 오류 정보와 결합된다. 실제적으로, 각각의 예측 블록의 화소값들은 역 DCT 변환기(220)에 의해 출력되는 대응하는 재구성된 예측 오류값들에 가산된다. 이러한 방식으로, 매크로블록의 각 블록에 대한 재구성된 화소값들의 어레이가 얻어진다. 재구성된 화소값들은 복호기의 비디오 출력(280)으로 전달되며, 또한 프레임 저장부(250)에 저장된다. 인터 부호화된 프레임의 후속 매크로블록들은 복호화되고 저장되며, 복호화된 프레임은 프레임 저장부(250)에 점진적으로 집합되고(progressively assembled), 따라서 다른 인터 부호화된 프레임들의 움직임 보상 예측을 위한 참조 프레임으로서의 사용을 위해 이용 가능하게 된다.
가변장 부호화(VLC) 기술을 사용하여 양자화된 변환 계수들과 관련된 런 및 레벨 값들의 엔트로피 부호화가 이제 상세하게 검사될 것이다.
전형적으로, 런-레벨 쌍(run-level pair)은 단일한 심볼(single symbol)로서 부호화된다. 이것은 각각의 가능한 런-레벨 쌍 및 정의된 코드 번호들간의 맵핑을 정의함으로써 얻어진다. 룩업 테이블로서 번호들을 부호화하기 위한 런-레벨 쌍의 맵핑의 예시는 표 3에서 기술된 바와 같다. 룩업 테이블에서의 맵핑들(mappings)을 사용함으로써, 코드 번호(code number)가 블록의 각각의 (런, 레벨) 쌍에 할당되고, 결과적인 코드 번호들은 VLC 부호화에 의해 부호화된다. 예를 들면, Joint Model(JM) 2.0 "Working Draft Number 2, Doc. JVT-B118, Joint Video Team(JVT) of ISO/IEC MPEG and ITU-T VCEG Pattaya, 2nd JVT Meeting, Geneva, CH, Jan. 29 - Feb. 1, 2002"에서, (H.26L 비디오 부호화 표준) (런. 레벨) 쌍들을 코드 번호들위에 맵핑하는 2개의 다른 룩업 테이블들이 정의된다. 어느 테이블이 사용될 것인가의 선택은 QP값 및 블록의 부호화 모드에 기초한다. 더욱 상세하게는, 만약 부호화 모드가 인트라(INTRA)이고, QP가 24보다 작다면, 다른 테이블이 사용된다.
Joint Model(JM) 2.0 of JVT H.26L은 UVLC로 알려진 소위 '범용(universal)' 가변장 부호화 스킴을 사용한다. 따라서, H.26L JM 2.0에 따라 구현된 비디오 부호기는 비트 스트림내에서 부호기로부터 전송될 모든 정보(신택스 요소들(sntax elements))을 엔트로피 부호화하기 위한 가변장 코드워드들의 하나의 집합을 사용한다. 반면에, 사용된 코드워드들은 같으며, 소정 개수의 다른 데이터-심볼-대-코드워드 맵핑들(data-symbol-to-codeword mappings)이 다른 타입들의 정보의 부호화를 위해 정의된다. 예를 들면, 2개의 데이터-심볼-대-코드워드 맵핑들이 휘도 정보를 포함하는 블록들에 대해 제공되며, 맵핑의 선택은 양자화된 DCT 변환 계수들의 순서를 매기는데 사용되는 (심플 또는 더블 스캔) 타입의 지그재그 스캐닝 작동에 의존한다. H.26L에 따라 정의되는 심플 및 더블 스캔 지그재그 스캐닝 스킴들(simple and double zigzag scanning schemes)의 자세한 점들에 대해서는, Working Draft Number 2, Doc. JVT-B118, Joint Vodeo Team(JVT) of ISO/IEC MPEG and ITU-T VCEG Pattaya, 2nd JVT Meeting, Genevam CH, Jan. 29 - Feb. 1, 2002를 참조하라. 또한, 다른 맵핑들이, 다른 것들 가운데에서, 매크로블록 타입(MB-Type) 정보, 움직임 벡터 데이터(MVD: Moving Vector Data) 및 인트라 예측 모드 정보에 대해 제공된다(이하의 표 3 참조).
H.26L JM 2.0에서 정의된 UVLC 코드워드들은, 이하의 표 1 도시된 바와 같이, 다음의 압축된 형식으로 쓰여질 수 있으며, 여기서 Xn항은 0 또는 1중 하나일 수 있다.
[표 1] H.26L에 따른 UVLC 코드워드들의 생성 방식
Figure 112004032226395-pct00001
표 2는 표 1에서 제시된 스킴에 따라 생성된 제1의 16 UVLC 코드워드들을 제시하는 반면에, 표 3은 H.26L에 따라 제공된 다른 데이터-심볼-대-코드워드(data-symbol-to-codeword) 맵핑들중 일부를 도시한다. 맵핑들의 완벽한 설명을 위해서, 독자는 Working Draft Number 2, Doc. JVT-B118, Joint Video Team(JVT) of ISO/IEC MPEG and ITU-T VCEG Pattaya, 2nd JVT Metting, Geneva, CH, Jan. 29 - Feb. 1, 2002.를 참조해야 한다.
[표 2] 표 1에 제공된 방식에 따라 생성된 H.26L의 첫번째 16 UVLC 코드워드들
Figure 112004032226395-pct00002
[표 3] H.26L TML-5에 정의된 데이터-심볼-대-UVLC-코드워드 맵핑들의 예
Figure 112004032226395-pct00003
H.26L에서 채용된 상기 범용 가변장 부호화 방식은 다수의 기술적인 이점들 을 제공한다. 특히, 표 1에 제공된 것과 같이, 단순한 규칙에 따라 구성될 수 있는, 단일 집합의 VLC 코드워드들의 사용은 코드워드들이 비트별로 생성될 수 있도록 한다. 이것은 부호기 및 복호기에서 코드워드 표의 저장에 대한 필요를 제거하여 상기 부호기 및 복호기 양자의 메모리 요건을 감소시킨다. 물론, 대안적인 구현들에서, 코드워드 표들이 상기 부호기 및 복호기에서 생성되고 저장될 수 있다는 것은 주목되어야 한다. 상이한 데이터-심볼-대-코드워드 매핑들은 엔트로피 부호화된 다양한 유형의 이미지 관련 데이터 및 제어 정보의 상이한 통계 특성들에 대한 상기 UVLC 부호화 방식의 적어도 한정된 적합화를 허용한다. 상기 다양한 데이터-심볼-대-코드워드 매핑들은 상기 부호기 및 복호기에 저장될 수 있어서 부호기로부터 복호기로 상기 비트-스트림내에서 매핑 정보를 전송할 필요가 없다. 이것은 오류 허용성을 유지하는데 도움을 준다.
하지만, 상기 UVLC 엔트로피 부호화 방식은 어떤 단점들을 갖는다. 특히, 고정된 코드워드들 및 상이한 데이터-심볼-대-코드워드 매핑들에 의해 제공되는 한정된 적응도는 불가피하게 최적 데이터 압축보다 못한 결과를 초래한다. 이것은 이미지 부호화에 있어서, 상이한 변환 계수들의 발생 빈도(즉 확률)와 상이한 (런(run), 레벨(level)) 쌍들의 확률이 상기 이미지 내용 및 부호화되는 이미지의 유형에 따라 변한다는 사실에 기인한다. 따라서, 단일 집합의 가변장 코드워드들이 사용되고 부호화/복호화될 데이터 심볼들 및 상기 VLC들간의 단일 매핑이 제공되는 경우, 일반적으로 최적 부호화 효율은 달성될 수 없다.
이러한 이유로 기본적인 UVLC 부호화 방식의 변경이 제안되었다. 특히, 한 집합 이상의 VLC 코드워드들을 포함하는 것이 제안되었다. 이러한 하나의 제안은 2000년 8월, 문서 Q15-K-30, Q.15/SG16 "인트라 루마 계수들에 대한 두 VLC들간의 적응 스위칭의 사용"에서 Gisle Bjontegaard에 의해 행해졌다. 상기 제안은 어떤 유형의 정보의 엔트로피 부호화에 대해 제2 집합의 VLC 코드워드들의 사용을 제안하였다. 문서 Q15-K-30에 의하면, VLC2로서 지칭되는, 상기 제안된 제2 집합의 VLC 코드워드들은 하기의 표 4에 도시된 방식에 따라 구성된다. 그것은 특히 H.26L에 따라 정의된 더블 스캔 지그재그 스캐닝 방식을 사용하여 스캔된 4×4 화소 인트라 부호화된 휘도 블록들의 양자화된 변환 계수들과 관련된 런(run) 및 레벨(level) 값들을 부호화하는데 사용된다. 표 5는 명시적인 형태로, VLC2의 첫번째 16 코드워드들을 나타낸 것이다.
[표 4] Q.15/SG16 문서 Q15-K-30에 따른 VLC2 코드워드들의 생성 방식
Figure 112004032226395-pct00004
[표 5] 표 4에 제공된 방식에 따라 생성된, Q.15/SG16 문서 Q15-K-30의 첫번째 16 VLC2 코드워드들
코드워드 인덱스 VLC2 코드워드
0 10
1 110
2 111
3 0100
4 0101
5 0110
6 0111
7 001000
8 001001
9 001010
10 001011
11 001100
12 001101
13 001110
14 001111
15 00010000
표 4 및 표 5를 표 1 및 표 2와 비교함으로써 알 수 있는 바와 같이, VLC2의 최단 코드워드는 UVLC 코드워드들의 원래 집합내의 최단 코드워드에 할당된 단일 비트와 대조적으로 두 비트들을 갖는다. 아무런 VLC 코드워드도 어떤 다른 것의 프리픽스(prefix)일 수 없는 일반적인 복호가능성 요건 때문에, 상기 변화는 다른 VLC2 코드워드들의 구조에 중대한 영향을 끼친다. 특히, 두 비트들을 상기 최단 코드워드에 할당하는 것은 더 높은 인덱스를 갖는 코드워드들이 더 적은 비트들로 표현될 수 있도록 한다. 예를 들어, 표 2를 참조하면, 인덱스 7을 갖는 UVLC 코드워드는 7 비트들을 가지는 반면에, 인덱스 7을 갖는 상기 VLC2 코드워드는 6 비트들만을 갖는다는 것을 알 수 있다.
코드워드들이 한 집합 이상의 코드워드들간에 콘텍스트-기반 스위칭에 의해 선택되는 이전에 설명된 VLC 부호화 방법들은 단일 집합의 VLC 코드워드들이 사용 되는 방법들에 비해 데이터 압축 효율의 개선을 제공한다. 하지만, 많은 데이터 압축 애플리케이션들에서, 그리고 특히 비디오 부호화와 관련된 애플리케이션에서, 데이터 압축 효율을 개선하고자 하는 계속적인 요구가 존재한다. 따라서, 낮은 계산 복잡성, 낮은 메모리 요건 및 양호한 오류 허용성을 유지하면서, 부호화될 데이터 심볼들의 유형 및 통계 특성들에 대한 개선된 적응성을 제공하는 새로운 가변장 부호화 방법들의 개발에 아직도 상당한 관심이 존재한다. 이러한 점에서 본 발명에 의한 방법이 개발되었다.
본 발명에 의한 방법은 낮은 계산 복잡성 및 양호한 오류 허용성을 유지하면서 부호화될 데이터 심볼들의 유형 및 통계 특성에 대한 가변장 부호화 방법들의 적응성을 개선하는 것과 관련한 상기한 문제들을 해결하고자 한다.
일반적으로, 본 발명은 비디오 부호기에서 블록-기반 변환 부호화의 결과로서 생성된 양자화된 변환 계수들의 가변장 부호화에 관한 것이다. 하지만, 본 발명에 의한 상기 가변장 부호화 및 복호화 방법들은 더 일반적으로 부호화될 다른 유형의 데이터에 적용될 수 있다.
특히, 본 발명은 양자화된 변환 계수들의 블록내의 0이 아닌 값을 갖는 계수들의 수(Nc)가 대응하는 복호기로 전송된 비트-스트림에서 명시적으로 식별되고 시그널링되는 VLC 부호화 방법에 관한 것이다. 이전에 설명된 바와 같이, Nc의 명시적인 시그널링은 EOB 심볼을 송신할 필요를 제거하고 이것은 부호화 효율의 개선을 야기할 수 있다. 특히, 본 발명은 블록내의 0이 아닌 값을 갖는 계수들의 수를 나타내는 상기 Nc값이 자체적으로 VLC 부호화되는 방법을 제안한다. 이것은 부호화 효율의 훨씬 큰 개선을 제공한다.
상기 방법은 Nc에 대한 값을 VLC 부호화하기 위하여 적어도 두 집합의 VLC 코드워드들을 사용하는 것을 포함하고 Nc값이 부호화될 블록에 이웃하는 블록 (또는 블록들)내의 0이 아닌 값을 갖는 계수들의 수를 고려하는, 코드워드들의 집합들간의 스위칭에 대한 규칙들을 정의한다. 상기 스위칭 규칙들은, Nc를 나타내고 본 발명에 따라 형성된 VLC 코드워드들을 포함하는 비트-스트림이 상기 비트-스트림에 포함될 코드워드들의 선택과 관련한 어떤 정보도 요구함없이 복호화될 수 있도록 설계된다. 즉, 본 발명에 의하면, Nc값을 나타내는 각 코드워드가 선택된 집합의 명시적인 표시를 제공할 필요가 없다. 이러한 특성은 데이터 압축 효율을 증대시킨다.
본 발명에 의한 방법이 일반적으로 (런, 레벨) 쌍들로서 표현되는 데이터 심볼들의 VLC 부호화 또는 부호화될 데이터 심볼들의 집합의 어떤 동등한 표현에 적용될 수 있다는 것은 당업자가 이해할 것이다.
본 발명의 제1 태양에 의하면, 제1 값을 갖는 어떤 제1 수의 데이터 심볼들 및 상기 제1 값과는 다른 값들을 갖는 어떤 제2 수의 심볼들을 포함하는 일 집합의 데이터 심볼들을 부호화하는 방법으로서, 가변장 부호화될 일 집합의 심볼들은 상 기 데이터 심볼들의 집합으로부터 형성되고, 가변장 부호화가 가변장 부호화될 상기 심볼들의 집합에 적용되는 방법이 제공된다. 상기 방법에 의하면, 가변장 부호화될 상기 심볼들의 집합에 적용되는 상기 가변장 부호화의 적어도 하나의 특성은 가변장 부호화될 상기 심볼들의 수에 따라 적합화되고, 가변장 부호화된 심볼들의 수에 관한 표시가 제공된다. 유리하게는, 상기 표시는 가변장 부호화될 상기 심볼들의 수에 따라 가변장 코드워드들의 적어도 두개의 택일적인 집합들 중 하나로부터 선택된 가변장 부호화될 상기 심볼들의 수를 나타내는 가변장 코드워드이다.
본 발명의 제2 태양에 의하면, 일 집합의 데이터 심볼들을 나타내는 가변장 코드워드들을 복호화하는 방법으로서, 상기 데이터 심볼들의 집합은 제1 값을 갖는 어떤 제1 수의 데이터 심볼들 및 상기 제1 값과는 다른 값들을 갖는 어떤 제2 수의 데이터 심볼들을 포함하고, 상기 데이터 심볼들의 집합은 상기 데이터 심볼들의 집합으로부터 가변장 부호화될 일 집합의 데이터 심볼들을 형성함으로써 부호화된 것이며, 상기 가변장 코드워드들은 가변장 부호화될 상기 심볼들의 집합에 가변장 부호화를 적용함으로써 형성된 것이다. 상기 방법에 의하면, 상기 가변장 코드워드들에 적용되는 상기 복호화의 적어도 하나의 특성은 가변장 부호화된 상기 심볼들의 집합내의 심볼들의 수에 관한 표시에 따라 적합화된다. 유리하게는, 상기 표시는 가변장 부호화된 상기 심볼들의 수에 따라 가변장 코드워드들의 적어도 두개의 택일적인 집합들 중 하나로부터 선택된 가변장 부호화된 상기 심볼들의 수를 나타내는 가변장 코드워드이다.
본 발명의 제3 태양에 의하면, 제1 값을 갖는 어떤 제1 수의 데이터 심볼들 및 상기 제1 값과는 다른 값들을 갖는 어떤 제2 수의 심볼들을 포함하는 일 집합의 데이터 심볼들을 부호화하기 위한 부호기로서, 가변장 부호화될 일 집합의 심볼들은 상기 데이터 심볼들의 집합으로부터 형성되도록 되어 있고, 상기 부호기는 가변장 부호화될 상기 심볼들의 집합을 가변장 부호화하기 위한 부호화 수단을 포함하는 부호기가 제공된다. 본 발명에 의하면, 상기 부호기는 가변장 부호화될 상기 심볼들의 수에 따라 가변장 부호화될 상기 심볼들의 집합에 적용되는 상기 가변장 부호화의 적어도 하나의 특성을 적합화시키도록 되어 있고, 가변장 부호화된 심볼들의 수에 관한 표시를 제공하도록 더 되어 있다. 유리하게는, 상기 표시는 가변장 부호화될 상기 심볼들의 수에 따라 가변장 코드워드들의 적어도 두개의 택일적인 집합들 중 하나로부터 선택된 가변장 부호화될 상기 심볼들의 수를 나타내는 가변장 코드워드이다.
본 발명의 제4 태양에 의하면, 일 집합의 데이터 심볼들을 나타내는 가변장 코드워드들을 복호화하기 위한 복호기로서, 상기 데이터 심볼들의 집합은 제1 값을 갖는 어떤 제1 수의 데이터 심볼들 및 상기 제1 값과는 다른 값들을 갖는 어떤 제2 수의 데이터 심볼들을 포함하고, 상기 데이터 심볼들의 집합은 가변장 부호화될 일 집합의 데이터 심볼들을 형성함으로써 부호화된 것이며, 상기 가변장 코드워드들은 가변장 부호화될 상기 심볼들의 집합에 가변장 부호화를 적용함으로써 형성된 것인 복호기가 제공된다. 본 발명에 의하면, 상기 복호기는 가변장 부호화된 상기 심볼들의 집합내의 심볼들의 수에 관한 표시에 따라 상기 가변장 코드워드들에 적용되는 상기 복호화의 적어도 하나의 특성을 적합화시키도록 되어 있다. 유리하게는, 상기 표시는 가변장 부호화된 상기 심볼들의 수에 따라 가변장 코드워드들의 적어도 두개의 택일적인 집합들 중 하나로부터 선택된 가변장 부호화된 상기 심볼들의 수를 나타내는 가변장 코드워드이다.
본 발명의 제5 태양에 의하면, 상기한 본 발명의 제3 태양에 의한 부호기를 포함하는 멀티미디어 단말기가 제공된다.
본 발명의 제6 태양에 의하면, 상기한 본 발명의 제4 태양에 의한 복호기를 포함하는 멀티미디어 단말기가 제공된다.
바람직하기로는, 상기한 본 발명의 제5 태양 및/또는 제6 태양에 의한 멀티미디어 단말기는 무선 접속에 의해 이동 통신 네트워크와 통신하도록 되어 있는 이동 멀티미디어 단말기이다.
더 정확하게 말하면, 본 발명에 의한 상기 부호화 방법은 가변장 부호화될 심볼들의 집합에 적용되는 상기 가변장 부호화의 적어도 하나의 특성이 가변장 부호화될 상기 심볼들의 수에 따라 적합화되고 가변장 부호화된 심볼들의 수에 관한 표시가 제공되며, 상기 표시는 가변장 부호화될 상기 심볼들의 수에 따라 가변장 코드워드들의 적어도 두개의 택일적인 집합들 중 하나로부터 선택된 가변장 부호화될 상기 심볼들의 수를 나타내는 가변장 코드워드인 것을 주된 특징으로 한다. 본 발명에 의한 상기 복호화 방법은 상기 가변장 코드워드들에 적용되는 상기 복호화의 적어도 하나의 특성이 가변장 부호화된 상기 심볼들의 집합내의 심볼들의 수에 관한 표시에 따라 적합화되며, 상기 표시는 가변장 부호화된 상기 심볼들의 수에 따라 가변장 코드워드들의 적어도 두개의 택일적인 집합들 중 하나로부터 선택된 가변장 부호화된 상기 심볼들의 수를 나타내는 가변장 코드워드인 것을 주된 특징으로 한다. 본 발명에 의한 상기 부호기에서, 상기 부호기는 가변장 부호화될 상기 심볼들의 수에 따라 가변장 부호화될 상기 심볼들의 집합에 적용되는 상기 가변장 부호화의 적어도 하나의 특성을 적합화시키도록 되어 있고, 가변장 부호화된 심볼들의 수에 관한 표시를 제공하도록 더 되어 있으며, 상기 표시는 가변장 부호화될 상기 심볼들의 수에 따라 가변장 코드워드들의 적어도 두개의 택일적인 집합들 중 하나로부터 선택된 가변장 부호화될 상기 심볼들의 수를 나타내는 가변장 코드워드인 것을 주된 특징으로 한다. 본 발명에 의한 상기 복호기에서, 상기 복호기는 가변장 부호화된 상기 심볼들의 집합내의 심볼들의 수에 관한 표시에 따라 상기 가변장 코드워드들에 적용되는 상기 복호화의 적어도 하나의 특성을 적합화시키도록 되어 있고, 상기 표시는 가변장 부호화된 상기 심볼들의 수에 따라 가변장 코드워드들의 적어도 두개의 택일적인 집합들 중 하나로부터 선택된 가변장 부호화된 상기 심볼들의 수를 나타내는 가변장 코드워드인 것을 주된 특징으로 한다.
이제 본 발명의 실시예들이 첨부된 도면들을 참조하여 예로서 설명될 것이다.
도 1은 종래 기술에 의한 일반적인 비디오 부호기의 개략적인 블록도이다.
도 2는 종래 기술에 의한 일반적인 비디오 복호기로서, 도 1에 도시된 부호기에 대응하는 복호기의 개략적인 블록도이다.
도 3은 종래 기술에 의한 매크로블록의 형성을 도시한 것이다.
도 4는 예시적인 지그재그 스캐닝 순서를 도시한 것이다.
도 5는 부호화될 현재의 이미지 블록 및 그것의 바로 이웃하는 이전에 부호화된 이미지 블록들을 도시한 것이다.
도 6은 본 발명의 일 실시예에 의한 비디오 부호기의 개략적인 블록도이다.
도 7은 본 발명의 일 실시예에 의한 비디오 복호기로서, 도 6에 도시된 부호기에 대응하는 복호기의 개략적인 블록도이다.
도 8은 본 발명에 의한 방법이 구현될 수 있는 멀티미디어 통신 단말기의 개략적인 블록도이다.
이하 본 발명의 상세한 설명에서 본 발명에 따른 방법의 예시적인 실시예가 제시된다. 예시적인 실시예는 비디오 부호기의 블록-기반 변환 부호화의 결과로서 생성되는 0이 아닌 값을 갖는(non-zero-valued) 변환 계수를 나타내는 (런, 레벨) 쌍의 가변장 부호화 뿐 아니라 대응하는 비디오 복호기의 복호화에 관한 것이다.
도 6은 본 발명의 실시예에 따른 방법이 적용될 수 있는 비디오 부호기(600)의 개략적인 블록도이다. 도 6에 도시된 비디오 부호기의 구조는 도 1에 도시된 선행기술 비디오 부호기의 구조와 실질적으로 동일하고, 가변장 부호화 동작을 수행하는 부호기의 부분들이 적합하게 수정된다. 상술된 선행기술 비디오 부호기와 동일한 방식으로 동작하고 기능들을 구현하는 비디오 부호기의 모든 부분들은 동일한 참조번호로 식별된다. 본 명세서에서 모든 가변장 부호화 동작은 비디오 다중 부호기(670)에서 수행되는 것으로 가정할 것이다. 하지만, 본 발명의 대안적인 실시예 에 있어서 별개의 가변장 부호화 유닛 또는 유닛들이 제공될 수 있다는 것이 이해되어야 한다. 또한 본 발명에 따른 방법이 비디오 부호기에 의해 생성된 어떤 데이터 심볼(예를 들어 0이 아닌 값을 갖는 변환 계수와 관련된 (런, 레벨) 쌍)에 적용될 수 있고 다른 VLC 부호화 방법들이 다른 데이터 심볼들을 부호화하는데 사용될 수 있다는 것을 유념해야 한다.
이제 비디오 부호기(600)의 동작을 상세하게 고려할 것이다. 디지털 비디오의 프레임을 부호화하는 경우, 부호기(600)는 도 1과 관련하여 상술된 방식과 유사한 방식으로 동작하여 인트라-부호화된 및 인터-부호화된 압축 비디오 프레임들을 생성한다. 본 명세서에서 상술된 바와 같이, 인트라-부호화 모드에서, 변환 계수 값들의 대응하는 2차원 배열을 생성하기 위하여 이산 코사인 변환(DCT)이 이미지 데이터(화소값들)의 각 블록에 적용된다. DCT 연산은 변환 블록(104)에서 수행되고, 이렇게 생성된 계수들은 이어서 양자화기(106)에 전달되어 양자화된다. 인터-부호화 모드에서, 블록(104)에서 수행되는 DCT 변환은 예측 에러 값들의 블록들에 적용된다. 이 연산의 결과로서 생성된 변환 계수들은 또한 양자화기(106)에 전달되어 양자화된다. 인터-부호화된 프레임들은 인트라-부호화된 이미지 블록들을 포함할 수 있다. 어떤 경우에는 변환 부호화가 특정 이미지 블록들에 적용되지 않는다. 예를 들어, 인트라-예측이 인트라-부호화 모드에서 사용되는 경우, 부호기에서 몇몇 이미지 블록들이 하나 이상의 이전 부호화된 이미지 블록으로부터 예측된다. 이러한 경우, 부호기는 예측에 사용될 이전 블록들의 표시를 복호기에 제공하고 어떤 변환 계수 데이터를 출력하지 않는다. 인터-부호화 모드에서, 어떤 블록에 대한 예 측과 블록 자신의 이미지 데이터간의 차이가 너무 작아서 어떤 예측 에러 정보를 전송하지 않는 것이 데이터 압축 비에 있어서 바람직할 수 있다.
이 실시예에 따라, 본 발명에 따른 방법은 변환 부호화 및 다음의 변환 계수 양자화를 수행하는 이미지 블록들에 적용된다.
비디오 다중 부호기(670)가 양자화된 변환 계수들의 블록(2차원 배열)을 수신하는 경우, 비디오 다중 부호기(670)는 상기 배열에서 0이 아닌 값을 갖는 계수들의 수를 결정한다. 본 발명에 따라, Nc로 표시되는 수는 가변장 부호화되고 비트-스트림(635)내에서 복호기에 전송된다. 적어도 2 집합의 가변장 코드워드가 상기 Nc 값의 가변장 부호화에 제공된다. 본 발명의 실시예에 있어서, 예를 들어 본 명세서에서 상술된 표 2 및 표 5에서 각각 정의된 VLC 코드워드가 있다. 보다 상세하게는, Nc는 이전 부호화된 Nc 심볼들의 값에 응답하는 적어도 2 집합의 가변장 코드워드 중 하나로부터 선택된 코드워드를 사용하여 가변장 부호화된다. 바람직하기로는, VLC 코드워드를 할당하는데 사용되는 이전에 부호화된 Nc 심볼은 부호화되는 블록에 가까이 있는 블록들로부터 선택된다.
도 5는 VLC 부호화될 이미지 블록 및 이웃하는 블록들을 나타낸다. 용어 Nc_L, Nc_TL, Nc_T, 및 Nc_TR은 각각 부호화될 현재 이미지 블록의 좌측, 상단-좌측, 상단 및 상단-우측에 있는 블록의 0이 아닌 양자화된 계수들의 수를 나타낸다.
현재 이미지 블록의 Nc 값은 바로 이웃하는 블록(들)의 이미 부호화된 Nc 값 (들)을 고려하여 선택된 이용가능한 집합의 VLC 코드들 중 하나로부터의 코드워드를 사용하여 가변장 부호화된다. 다음 코드는 이미 부호화된 이웃하는 이미지 블록들의 Nc 값들을 고려하여, 가변장 코드를 Nc 값에 할당하는 예시적인 절차를 제시한다.
VLC_N = Nc_map[fn(Nc_L, Nc_TL, Nc_T, Nc_TR)]
수학식 1에 있어서, fn은 함수(함수의 예는 수학식 2에서 이하 정의된다)이고, Nc_map은 정수값들을 상이한 이용가능한 VLC 코드들에 매핑하는 배열이며, VLC_N은 코드워드가 선택되는 표의 수를 나타낸다. fn의 예는 "평균(average)" 및 "중앙값(median)"을 포함한다. 본 발명의 실시예에 있어서, Nc_L 및 Nc_T의 "평균"이 사용된다. 이러한 예시적인 실시예에 따라, 수학식 1의 표현은 다음과 같이 된다.
VLC_N = Nc_map[(Nc_L + Nc_T)/2]
다음 예는 본 발명의 방법에 따라 Nc의 부호화를 나타낸다. 부호화될 현재 Nc 값이 3이고, 이웃하는 Nc_L 및 Nc_T 값이 각각 4 및 2로 주어지며, N c_map이 Nc_map=[1 1 1 1 1 2 2 2 2]으로 주어지고 여기서 VLC1 및 VLC2가 각각 표 2 및 표 5의 코드워드에 대응한다고 가정한다. 수학식 2를 적용하면, VLC_N은 1과 같다. 이 때, Nc = 3은 표 2의 VLC 코드워드를 이용하여 00100과 같이 부호화된다.
비디오 다중 부호기(670)는 0이 아닌 값을 갖는 계수들을 (런, 레벨) 쌍으로 나타낸다. 이것은 선행기술에서 공지된 방식으로 수행될 수 있다. 보다 상세하게는, 양자화된 변환 계수들의 2차원 배열이 우선 도 4에 도시된 바와 같은 미리 정의된 스캐닝 순서를 이용하여 스캐닝되어 정렬된 1차원 배열을 생성한다. 정렬된 1차원 배열의 각각의 0이 아닌 계수 값은 이제 런(run) 값 및 레벨(level) 값으로 표현된다. 여기서 상기 레벨 값은 계수의 값을 나타내고 런 값은 0이 아닌 값을 갖는 계수 이전의 연속적인 0인 값을 갖는 계수들의 수를 나타낸다. 상술된 런-렝스 부호화(run-length coding)의 선행기술 방법과는 달리, 본 발명에 따른 EOB 심볼은 전송될 필요가 없다. EOB 심볼을 전송하지 않는 것이 가능한 것은 본 발명에 따른 방법에 따라 0이 아닌 값을 갖는 양자화된 변환 계수들의 수가 복호기에서 명시되기 때문이다. 따라서, 주어진 이미지 블록에 대해 (런, 레벨) 쌍을 복호화하는 경우, 복호기는 복호화된 쌍의 수를 카운트할 수 있다. (0이 아닌 값을 갖는 계수들의 수에 대응하는) 복호화된 쌍의 수가 복호기에 표시되는 0이 아닌 값을 갖는 계수들의 수에 도달하는 경우, 해당 블록에 대한 복호화가 중단될 수 있다.
비디오 다중 부호기(670)는 단일 VLC 코드워드가 각 (런, 레벨) 쌍에 할당되도록 가변장 부호화를 런 및 레벨 값에 적용한다. 본 발명에 따라, VLC 부호화는 부호기(600)에 저장된 한 집합의 가변장 부호화 (룩업) 표 중의 하나를 선택함으로써 수행된다. 부호화 표 각각은 한 집합의 가변장 코드워드를 정의할 뿐 아니라, 이미지 블록에 대한 양자화된 변환 계수 데이터에서 발생할 수 있는 (런, 레벨) 쌍의 가능한 값들 및 코드워드들간의 매핑을 정의한다. 본 발명에 따라, 비디오 다중 부호기(670)는 부호화될 이미지 블록에 대해 양자화된 변환 계수들의 배열에서 0이 아닌 값을 갖는 계수들의 수에 따라 사용하기 위한 부호화 표를 선택한다. 선택된 룩업 표에서 정의된 매핑을 사용하여, 비디오 다중 부호기는 코드워드를 각 (런, 레벨) 쌍에 할당하고 상기 코드워드를 비트-스트림(635)내에서 복호기에 전송한다.
상이한 VLC 부호화 표의 수는 본 발명의 상이한 실시예에서 변할 수 있다. 본 발명의 일 실시예에 있어서, 별개의 룩업 표에는 0이 아닌 값을 갖는 양자화된 변환 계수들의 각 가능한 수가 제공된다. 지정된 수의 0이 아닌 값을 갖는 계수들을 갖는 양자화된 변환 계수 값들의 배열로부터 유도된 한 집합의 (런, 레벨) 쌍들에 적용되는 경우 상기 표 각각에 대한 코드워드들 및 (런, 레벨) 쌍간의 매핑 및 코드워드가 최적의 데이터 압축을 제공하도록 생성된다. 0이 아닌 값을 갖는 양자화된 변환 계수들의 값과 관련하여 (런, 레벨) 쌍의 통계 특성의 변동에 대한 정보가 예를 들어 미리 다수의 테스트 ('트레이닝') 이미지 또는 비디오 시퀀스를 부호화함으로써 경험적으로 획득될 수 있다. 코드워드들간의 매핑 및 VLC 코드워드들이 설계되어 하나 이상의 룩업 표로서 부호기에 저장될 수 있다.
바람직한 실시예에 있어서, 4x4 이미지 블록들로부터 유도된 (런, 레벨) 쌍을 부호화하는데 사용하기 위하여, 단 2개의 VLC 부호화 표가 제공된다. 하나의 VLC 부호화 표는 0이 아닌 값을 갖는 양자화된 변환 계수들의 수가 8 이하인 경우 사용하기 위한 것이고, 다른 하나의 VLC 부호화 표는 0이 아닌 값을 갖는 양자화된 변환 계수들의 수가 8보다 큰 경우 사용된다. 표 6 및 표 7은 본 발명의 실시예에서 (런, 레벨) 쌍의 상이한 확률 분포를 나타낸다. 통계는 현재의 ITU-T 권고 H.26L의 테스트 모델 8(TML8)에 따라 구현된 비디오 부호기를 사용하여 수집되었고 인터-부호화된 이미지 블록에 관련된다. 상기 표들에서, 가장 가능성 있는 쌍에는 숫자 1이 할당되고, 두 번째로 가장 가능성 있는 쌍에는 숫자 2가 할당된다. 등등. 처음 15개의 가장 가능성 있는 쌍들이 나열되어 있다.
[표 6] 0이 아닌 값을 갖는 양자화된 계수들의 수가 8(4x4 인터-부호화 블록) 이하인 경우 (런, 레벨) 쌍의 확률
0 1 2 3 4 5 6 7 8 9
레벨 크기 1 1 2 3 4 6 7 8 11 12 15
2 5 10 13
3 9
4 14
[표 7] 0이 아닌 값을 갖는 양자화된 계수들의 수가 8(4x4 인터-부호화 블록)보다 큰 경우 (런, 레벨) 쌍의 확률
0 1 2 3
레벨 크기 1 1 3 5 9
2 2 7 12
3 4 10
4 6 14
5 8
6 11
7 13
8 15
본 발명의 대안적인 실시예에 있어서, 부호화 효율은 전송되는 심볼의 유형을 변경함으로써 개선될 수 있다. 양자화된 변환 계수들을 (런, 레벨) 쌍으로서 표현하는 것 대신에, 상기 양자화된 변환 계수들은 (레벨, 라스트) 쌍으로 표현되고 VLC 코드워드는 (레벨, 라스트) 쌍들 각각에 할당된다. (레벨, 라스트) 쌍의 레벨은 계수의 값을 나타내지만, 상술된 (런, 레벨) 쌍과는 달리 (레벨, 라스트) 쌍의 레벨은 값 0을 가질 수 있다. 라스트(last) 매개 변수는 블록내에 더 이상 0이 아닌 값을 갖는 계수들이 없다는 것을 나타내는데 사용된다. 예를 들어, 상기 라스트 매개 변수는 이진 플래그로서 사용될 수 있다. 따라서, 특정 계수의 레벨 값이 0이고 모든 다음 계수 값들이 0인 경우, 라스트는 1과 같이 세팅된다. 이러한 양자화된 변환 계수들의 대안적인 표현은 특히 인트라-부호화된 블록들 및 작은 QP 값이 사용되는 경우에 부호화 효율(데이터 압축)을 개선할 수 있다.
본 발명의 다른 대안적인 실시예에 있어서, 고정 집합의 VLC 코드워드가 사용되고 단지 부호화될 (런, 레벨) 쌍들 및 코드워드들간의 매핑만이 0이 아닌 값을 갖는 계수들의 수에 의존하여 변한다.
본 발명의 또 다른 대안적인 실시예에 있어서, 특정 이미지 블록에 대해 선택된 VLC 부호화 표가 또한 이미지 블록(인트라/인터) 또는 프레임의 유형 또는 이미지 블록의 변환 계수들을 양자화하는데 사용되는 양자화 매개 변수(QP)의 값과 같은 몇몇 다른 매개 변수에 의존할 수 있다. 이러한 경우, 양자화된 변환 계수들의 특정 배열에 대한 VLC 부호화 표의 선택은 0이 아닌 값을 갖는 계수들의 수 및 다른 매개변수의 값에 의존한다.
본 발명의 또 다른 대안적인 실시예에 있어서, 0인 값을 갖는 양자화된 변환 계수 값들의 수가 결정되고 매개변수로서 사용될 수 있다. 상기 매개변수에 따라 코드워드들 및 데이터 심볼들간의 매핑 및 VLC 코드워드가 설계되고 VLC 룩업 표가 선택된다.
이제 본 발명의 실시예에 따른 비디오 복호기(700)의 동작이 도 7을 참조하여 기술될 것이다. 도 7에 도시된 비디오 복호기의 구조는 도 2에 도시된 선행기술 비디오 복호기의 구조와 실질적으로 동일하고, 가변장 복호화 동작을 수행하는 복호기의 부분들이 적합하게 수정된다. 상술된 선행기술 비디오 복호기와 동일한 방식으로 동작하고 기능들을 구현하는 비디오 복호기의 모든 부분들은 동일한 참조번호로 식별된다. 이하 설명에서 모든 가변장 복호화 동작은 비디오 다중 복호기(770)에서 수행되는 것으로 가정할 것이다. 하지만, 본 발명의 대안적인 실시예에 있어서 별개의 가변장 복호화 유닛 또는 유닛들이 제공될 수 있다는 것이 이해되어야 한다.
이제 상기 비디오 복호기의 동작이 상세하게 기술될 것이다. 여기서 도 7의 비디오 복호기는 도 6과 관련하여 설명된 부호기에 대응하고 따라서 부호기(600)에 의해 전송되는 비트-스트림(635)을 수신하여 복호화할 수 있는 것으로 가정한다. 상기 복호기에서, 비트-스트림이 수신되고 비디오 다중 복호기(770)에 의해 구성 부분으로 분리된다. 상기 선행기술의 설명과 관련하여 설명된 바와 같이, 비트-스트림으로부터 추출되는 압축된 비디오 데이터는 매크로블록-대-매크로블록을 기초로 하여 처리된다. 인트라-부호화된 매크로블록에 대한 압축된 비디오 데이터는 부호화된 제어 정보(예를 들어, 양자화 매개 변수(QP)와 관련된)와 함께, 매크로블록의 각 블록에 대한 (런, 레벨) 쌍 및 VLC 부호화된 Nc 값을 나타내는 가변장 코드워 드를 포함한다. 인터-부호화된 매크로블록에 대한 압축된 비디오 데이터는 (VLC 부호화된 Nc 값 및 VLC 부호화된 (런, 레벨) 쌍들을 포함하는) 각 블록에 대한 VLC 부호화된 예측 에러 정보, 매크로블록에 대한 움직임 벡터 정보 및 부호화된 제어 정보를 포함한다.
인트라-부호화된 매크로블록의 각 블록에 대한 그리고 인터-부호화된 매크로블록과 관련된 예측 에러 데이터의 각 블록에 대한 VLC 부호화된 Nc 값 및 VLC 부호화된 (런, 레벨) 쌍은 동일한 방식으로 복호화된다.
보다 상세하게는, 인트라- 또는 인터-부호화된 이미지 블록에 대한 VLC 부호화된 (런, 레벨) 쌍들을 복호화하는 경우, 비디오 다중 복호기(770)는 우선 블록내의 0이 아닌 값을 갖는 양자화된 변환 계수들의 수를 결정한다. 상술된 바와 같이, 0이 아닌 값을 갖는 양자화된 변환 계수들의 수(Nc)에 관한 정보는 부호기(600)에 의해 비트-스트림(635)에 삽입된다. 복호기(700)는 수신된 비트-스트림으로부터 상기 정보를 추출한다. 본 발명에 따라, 상기 Nc 값은 자체적으로 VLC 부호화되어 있고 따라서 비디오 다중 복호기(770)는 Nc에 관련된 정보를 복구하기 위하여 적합한 가변장 복호화 동작을 수행한다. 상술된 바와 같이, 특정 이미지 블록에 대한 Nc 값을 부호화하는데 사용된 VLC 부호화 표는 이미 부호화된 이미지 블록 또는 블록들과 관련된 Nc 값(들)을 기초로 하여 선택된다. 이것은 주어진 블록에 대한 Nc 값을 나타내는 코드워드가 일반적으로 코드워드가 선택되는 VLC 부호화 표를 명시적으로 나타내지 않고 복호화될 수 있다는 것을 의미한다. 따라서, 복호기는 처음 (몇 개의) 부호화된 이미지 블록에 대한 Nc 값이 선택된 VLC 부호화 표, 이미지 블록들의 부호화 순서 및 다음 Nc 값들을 부호화하는데 사용될 VLC 표를 결정하는데 사용되는 규칙을 아는 것만이 필요하다. Nc에 대해 선택된 VLC 부호화 표를 명시적으로 아는 것이 필요한 이미지 블록들의 정확한 수는 블록 스캐닝 순서 및 다음 Nc 값에 대한 VLC 부호화 표를 선택하는데 사용된 규칙의 성질에 의존한다. 예를 들어, 블록들로부터 좌측, 상부-좌측, 상부 및 상부-우측으로의 Nc 값들이 다음 Nc 값들을 부호화하기 위한 VLC 표를 선택하는데 사용되고, 블록 스캐닝 (부호화) 순서가 이미지의 상부-좌측에서부터 로우를 따라(row-by-row) 정해지는 경우, 이미지의 처음 로우에 있는 블록들에 추가하여 소정의 방식에 따라 제2 로우에 있는 처음 블록에 대한 Nc 값을 부호화하는 것이 바람직하다. 그 다음 모든 다음의 이미지 블록들에 대한 Nc 값들은 상기 수학식 1에 의해 설명된 규칙에 따라 부호화될 수 있고 사용된 VLC 부호화 표의 어떤 명시적인 표시 없이 복호기에서 복호화될 수 있다.
일단 이미지 블록의 0이 아닌 값을 갖는 양자화된 변환 계수들의 수가 상술된 절차에 따라 결정된 경우, 비디오 다중 복호기(770)는 가변장 복호화 표를 선택하고 이미지 블록에 대한 VLC 부호화된 (런, 렝스) 쌍을 복호화하기 시작한다. 본 발명에 따라, VLC 복호화 표는 Nc에 의존하여 선택된다. 복호화 표는 부호기에서 사용된 것과 동일한 한 집합의 룩업 표들로부터 선택된다. 복호화 표들은 복호기에 미리 저장되어 있고 비트-스트림(635)에서 수신된 VLC 코드워드들 및 이미지 블록에 대해 양자화된 변환 계수 데이터에서 일어날 수 있는 (런, 레벨) 쌍의 가능한 값들간의 매핑을 정의한다. 0이 아닌 값을 갖는 양자화된 변환 계수들의 수에 따라 표를 선택한 경우, 비디오 다중 복호기(770)는 선택된 룩업 표에서 정의된 매핑을 사용하여 런 및 레벨 값들을 복구한다. 비디오 다중 복호기(770)는 블록에 대한 양자화된 변환 계수 값들을 재구성하여 역양자화기(210)에 전달한다. 재구성된 화소 값들이 각 이미지 블록에 대해 형성되는 비디오 복호화 절차의 나머지는 선행기술 비디오 복호기(200)와 관련하여 상술된 바와 같이 진행한다.
본 발명에 따른 방법은 상술된 선행기술 VLC 부호화 방법에 비해 상당한 장점을 제공한다는 것을 이해해야 한다. 특히 본 발명은 부호화/복호화되는 데이터 심볼의 통계적인 특징에 적합한 가변장 부호화 및 복호화 방법을 제공하면서, 전송 에러에 대한 높은 복원력과 비교적 낮은 계산 복잡도를 유지한다. 상기 방법의 적용가능성은 0이 아닌 값을 갖는 양자화된 변환 계수들의 상이한 수들을 갖는 이미지 블록들에 대해 상이한 가변장 코드워드 및/또는 매핑들의 사용으로부터 기인한다. 부호기 및 복호기의 룩업 표로서 상이한 코드워드 및/또는 매핑을 제공함으로써 계산 복잡도가 낮게 유지된다. 이것은 또한 데이터 전송 에러들에 대한 민감성을 줄이도록 돕는데, 왜냐하면 주어진 이미지 블록에 대해 사용되는 특정 룩업 표가 블록의 0이 아닌 값을 갖는 변환 계수들의 수를 나타내는 값에 의하여 복호기에 시그널링되기 때문이다.
도 8은 본 발명에 따라 동작하도록 적합화될 수 있는 비디오 부호화 및 복호 화 장치를 포함하는 단말기 장치를 나타낸다. 보다 상세하게는, 상기 도면은 ITU-T 권고 H.324에 따라 구현된 멀티미디어 단말기(80)를 나타낸다. 상기 단말기는 멀티미디어 송수신기 장치로 간주될 수 있다. 상기 단말기는 통신 네트워크를 통해 전송하기 위한 멀티미디어 데이터 스트림을 캡쳐하고 부호화하며 다중화하는 요소들 뿐 아니라 멀티미디어 내용을 수신하고 수신된 멀티미디어 내용을 역다중화하고 복호화하며 디스플레이하는 요소들을 포함한다. ITU-T 권고 H.324는 단말기의 전반적인 동작을 정의하고 다양한 구성 부분들의 동작을 제어하는 다른 권고들을 참조한다. 이러한 종류의 멀티미디어 단말기는 대화식 영상 전화와 같은 실시간 애플리케이션에서, 또는 예를 들어 인터넷의 멀티미디어 내용 서버로부터 비디오 클립의 스트리밍 및/또는 검색과 같은 비 실시간 애플리케이션에서 사용될 수 있다.
본 발명의 문맥에 있어서, 도 8에 도시된 H.324 단말기는 본 발명의 방법의 응용에 적합한 다수의 대안적인 멀티미디어 단말기 구현 중 단지 하나인 것이 이해되어야 한다. 또한 단말기 장치의 구현 및 위치에 관한 다수의 대안들이 존재한다는 것을 유념해야 한다. 도 8에 도시된 바와 같이, 멀티미디어 단말기는 아날로그 일반 전화 교환망(PSTN)과 같은 고정 회선 전화 네트워크에 접속된 통신 장치에 위치할 수 있다. 이 경우에 있어서, 상기 멀티미디어 단말기는 ITU-T 권고 V.8, V.34 및 옵션으로 V.8bis에 따르는 모뎀(91)을 구비한다. 대안으로, 멀티미디어 단말기는 외부 모뎀에 접속될 수 있다. 모뎀은 멀티미디어 단말기에 의해 생성된 다중화된 디지털 데이터 및 제어 신호를 PSTN을 통해 전송하는데 적합한 아날로그 형태로 변환할 수 있다. 상기 모뎀은 또한 상기 멀티미디어 단말기로 하여금 PSTN으로부터 아날로그 형태의 데이터 및 제어 신호를 수신하여 디지털 데이터 스트림으로 변환하게 할 수 있고, 상기 디지털 데이터 스트림은 상기 단말기에 의해 적합한 방식으로 역다중화되고 처리될 수 있다.
H.324 멀티미디어 단말기는 또한 종합 정보 통신망(ISDN; Integrated Services Digital Network)과 같은 디지털 고정 회선 네트워크에 직접 접속될 수 있도록 구현될 수 있다. 이 경우, 상기 모뎀(91)은 ISDN 사용자-네트워크 인터페이스로 교체된다. 도 8에 있어서, 상기 ISDN 사용자-네트워크 인터페이스는 대체 블록(92)으로 표현된다.
H.324 멀티미디어 단말기는 또한 이동 통신 애플리케이션에서 사용하는데 적합하게 될 수 있다. 무선 통신 링크에 사용되는 경우, 상기 모뎀(91)은 도 8의 대체 블록(93)에 의해 표현되는 바와 같이 어떤 적합한 무선 인터페이스로 대체될 수 있다. 예를 들어, H.324/M 멀티미디어 단말기는 현재의 제2 세대 GSM 이동 전화 네트워크, 또는 제안된 제3 세대 범용 이동 전화 시스템(UMTS; Universal Mobile Telephone System)에 접속할 수 있는 무선 송수신기를 포함할 수 있다.
양방향 통신, 즉 비디오 데이터의 전송 및 수신을 위해 설계된 멀티미디어 단말기에서 본 발명에 따라 구현된 비디오 부호기 및 비디오 복호기 모두를 제공하는 것이 바람직하다는 것을 유념해야 한다. 이러한 부호기 및 복호기 쌍은 종종 '코덱(codec)'으로 지칭되는 단일 결합된 기능 유닛으로서 구현된다.
이제 전형적인 H.324 멀티미디어 단말기를 도 8을 참조하여 더 상세하게 기술할 것이다.
멀티미디어 단말기(80)는 '단말기 장치'로 지칭되는 다양한 요소들을 포함한다. 상기 단말기 장치는 일반적으로 각각 참조 번호 81, 82 및 83으로 표시되는 비디오, 오디오 및 텔레마틱(telematic) 장치를 포함한다. 상기 비디오 장치(81)는 예를 들어 비디오 이미지를 캡쳐하기 위한 비디오 카메라, 수신된 비디오 내용을 디스플레이하기 위한 모니터 및 옵션으로 비디오 처리 장치를 포함할 수 있다. 상기 오디오 장치(82)는 전형적으로 예를 들어, 말한 메시지를 캡쳐하는 마이크로폰, 및 수신된 오디오 내용을 재생하기 위한 스피커를 포함한다. 상기 오디오 장치는 또한 추가의 오디오 처리 유닛을 포함할 수 있다. 상기 텔레마틱 장치(83)는 데이터 단말기, 키보드, 전자 칠판(electronic whiteboard) 또는 팩스 유닛과 같은 정지 이미지 송수신기를 포함할 수 있다.
상기 비디오 장치(81)는 비디오 코덱(85)에 연결된다. 상기 비디오 코덱(85)은 본 발명에 따라 구현되는 비디오 부호기 및 대응하는 비디오 복호기를 포함한다. 이러한 부호기 및 복호기는 이하 설명될 것이다. 비디오 코덱(85)은 통신 링크를 통해 추가로 전송하기 위해 캡쳐된 비디오 데이터를 적합한 형태로 부호화하고 통신 네트워크로부터 수신된 압축된 비디오 내용을 복호화한다. 도 8에 도시된 예에 있어서, 비디오 코덱은 ITU-T 권고 H.26L에 따라 구현되고, 비디오 코덱의 부호기 및 복호기 모두에서 본 발명에 따른 적응 가변장 부호화 방법을 구현하기 위해 적합하게 수정된다.
단말기의 오디오 장치는 도 8에서 참조 번호(86)로 표시되는 오디오 코덱에 연결된다. 비디오 코덱과 같이, 오디오 코덱도 부호기/복호기 쌍을 포함한다. 오디 오 코덱은 단말기의 오디오 장치에 의해 캡쳐된 오디오 데이터를 통신 링크를 통해 전송하는데 적합한 형태로 변환하고, 네트워크로부터 수신된 부호화된 오디오 데이터를 다시 예를 들어 단말기의 스피커에서 재생하는데 적합한 형태로 변환한다. 오디오 코덱의 출력은 지연 블록(87)에 전달된다. 지연 블록(87)은 비디오 부호화 처리에 의한 지연을 보상하고 따라서 오디오 및 비디오 내용의 동기를 보장한다.
멀티미디어 단말기의 시스템 제어 블록(84)은 송신 및 수신 단말기 사이의 공통 동작 모드를 설정하는 적합한 제어 프로토콜(시그널링 블록(88))을 이용하여 엔드-투-네트워크(end-to-network) 시그널링을 제어한다. 시그널링 블록(88)은 송신 및 수신 단말기의 부호화 및 복호화 능력에 대한 정보를 교환하고 비디오 부호기의 다양한 부호화 모드를 인에이블하는데 사용될 수 있다. 시스템 제어 블록(84)은 또한 데이터 암호화의 사용을 제어한다. 데이터 전송에서 사용되는 암호화의 유형에 관한 정보는 암호화 블록(89)에서 다중화기/역다중화기(MUX/DMUX 유닛)(90)에 전달된다.
멀티미디어 단말기로부터의 데이터 전송 동안, MUX/DMUX 유닛(90)은 부호화되고 동기화된 비디오 및 오디오 스트림을 텔레마틱 장치(83)로부터 입력된 데이터 및 가능한 제어 데이터를 결합하여 단일의 비트-스트림을 형성한다. 암호화 블록(89)에 의해 제공되는, 비트-스트림에 적용되는 (있는 경우) 데이터 암호화의 유형에 관한 정보는 암호화 모드를 선택하는데 사용된다. 따라서, 다중화되고 가능하게는 암호화된 멀티미디어 비트-스트림이 수신되고 있는 경우, MUX/DMUX 유닛(90)은 비트-스트림을 암호해독하고, 비트-스트림을 구성 멀티미디어 성분으로 분할하며 상기 성분들을 적합한 코덱(들) 및/또는 복호화 및 재생을 위한 단말기 장치에 전달하는 것을 책임진다.
본 발명에 따른 멀티미디어 단말기의 기능 요소들, 비디오 부호기, 복호기 및 비디오 코덱은 소프트웨어 또는 전용 하드웨어 또는 이 둘의 조합으로서 구현될 수 있다는 것을 유념해야 한다.
본 발명에 따른 가변장 부호화 및 복호화 방법은 특히 본 발명의 기능 단계들을 수행하는 기계-독출가능한 명령어들을 포함하는 컴퓨터 프로그램의 형태로 구현하는데 적합하다. 이와 같이, 본 발명에 따른 가변장 부호기 및 복호기는 개인용 데스크탑 컴퓨터와 같은 컴퓨터에서 실행되고 저장 매체에 저장된 소프트웨어 코드로서 구현될 수 있다.
멀티미디어 단말기(80)가 이동 단말기인 경우, 즉 멀티미디어 단말기가 무선 송수신기(93)를 구비하는 경우, 상기 멀티미디어 단말기는 또한 추가의 요소들을 포함할 수 있다는 것을 당업자는 이해할 것이다. 일 실시예에 있어서, 멀티미디어 단말기는 사용자에 의해 상기 멀티미디어 단말기(80)의 동작을 가능하게 하는 디스플레이 및 키보드를 구비하는 사용자 인터페이스, 상기 멀티미디어 단말기의 상이한 기능을 책임지는 블록을 제어하는 마이크로프로세서와 같은 중앙 처리 유닛, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 및 디지털 카메라를 포함한다. 상기 멀티미디어 단말기(80)의 기본 기능에 대응하는 프로그램 코드인 마이크로프로세서의 동작 명령어는 읽기 전용 메모리(ROM)에 저장되고 예를 들어 사용자의 제어를 받아 마이크로프로세서에 의해 요구되는 경우 실행될 수 있다. 프로그램 코드에 따라, 마이크로프로세서는 무선 송수신기(93)를 사용하여 이동 통신 네트워크와의 접속을 형성하고, 멀티미디어 단말기(80)로 하여금 무선 경로를 통해 이동 통신 네트워크와 정보를 송수신하게 할 수 있다.
마이크로프로세서는 사용자 인터페이스의 상태를 감시하고 디지털 카메라를 제어한다. 사용자 명령에 응답하여, 마이크로프로세서는 카메라에게 디지털 이미지를 램(RAM)에 기록하도록 지시한다. 일단 이미지가 캡쳐되는 경우, 또는 대안으로 캡쳐링 프로세스 동안, 마이크로프로세서는 이미지를 이미지 세그먼트들(예를 들어 매크로블록들)에 분할하고 부호기를 사용하여 상술된 바와 같이 압축된 이미지 시퀀스를 생성하기 위하여 세그먼트의 움직임 보상된 부호화를 수행한다. 사용자는 멀티미디어 단말기(80)로 하여금 디스플레이 상에 캡쳐된 이미지를 디스플레이하거나 무선 송수신기(93)를 사용하여 상기 압축된 이미지 시퀀스를 다른 멀티미디어 단말기에, 고정 회선 네트워크(PSTN)에 접속된 비디오 전화에 또는 어떤 다른 통신 장치에 전송하도록 명령할 수 있다. 바람직한 실시예에 있어서, 이미지 데이터의 전송은 수신자가 최소의 지연으로 대응하는 복호화 프로세스를 시작할 수 있도록 제1 세그먼트가 부호화되자마자 시작된다.

Claims (53)

  1. 제1 값을 갖는 제1 수의 데이터 심볼들 및 상기 제1 값과는 다른 값들을 갖는 제2 수의 심볼들을 포함하는 일 집합의 데이터 심볼들을 부호화하는 방법으로서, 가변장 부호화될 일 집합의 심볼들은 상기 데이터 심볼들의 집합으로부터 형성되고, 가변장 부호화가 가변장 부호화될 상기 심볼들의 집합에 적용되며, 가변장 부호화될 상기 심볼들의 집합에 적용되는 상기 가변장 부호화의 적어도 하나의 특성은 가변장 부호화될 상기 심볼들의 수에 따라 적합화되고, 가변장 부호화된 심볼들의 수에 관한 표시가 제공되며, 상기 표시는 가변장 부호화될 심볼들의 수를 나타내는 가변장 코드워드인 방법에 있어서,
    상기 표시는, 가변장 부호화될 상기 심볼들의 수에 따라 가변장 코드워드들의 적어도 두개의 택일적인 집합들 중 하나로부터 선택되고,
    상기 방법은, 적어도 하나의 이전에 부호화된 데이터 심볼들의 집합내의 상기 가변장 부호화된 심볼들의 수에 기초하여 가변장 부호화될 상기 심볼들의 수를 나타내기 위하여 가변장 코드워드를 선택하는 것을 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 복호화 장치에 비트-스트림으로 전송되는 것을 특징으로 하는 방법.
  3. 삭제
  4. 제1항에 있어서, 하나 이상의 이전에 부호화된 데이터 심볼들의 집합내의 상기 가변장 부호화된 심볼들의 수의 평균에 기초하여 가변장 부호화될 상기 심볼들의 수를 나타내기 위하여 가변장 코드워드를 선택하는 것을 포함하는 것을 특징으로 하는 방법.
  5. 제1항 또는 제2항에 있어서, 코드워드들로의 값들의 할당을 정의하는 매핑 동작을 수행함으로써 가변장 부호화될 상기 심볼들의 수를 나타내기 위하여 가변장 코드워드를 선택하는 것을 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서, 상기 매핑 동작은 일 집합의 매핑 표들 중 하나인 매핑 표에 의해 수행되고 상기 매핑 표는 적어도 하나의 이전에 부호화된 데이터 심볼들의 집합에서 가변장 부호화된 상기 심볼들의 수에 기초하여 선택되는 것을 특징으로 하는 방법.
  7. 제1항 또는 제2항에 있어서, 상기 데이터 심볼의 값을 나타내는 제1 값 및 상기 데이터 심볼 이전에 오거나 다음에 오는 다수의 0값을 갖는 데이터 심볼들을 나타내는 제2 값을 포함하는 한 쌍의 값들에 의해 상기 제2 수의 데이터 심볼들 각각을 나타냄으로써 가변장 부호화될 상기 심볼들을 나타내는 일 집합의 제1 값 및 제2 값의 쌍들을 형성하는 것을 특징으로 하는 방법.
  8. 제1항 또는 제2항에 있어서, 가변장 부호화될 상기 심볼들 각각이 코드워드에 할당됨으로써 가변장 부호화될 상기 심볼들을 나타내는 일 집합의 부호화된 값들을 형성하는, 매핑 동작을 수행하는 것을 포함하고, 상기 코드워드는 일 집합의 코드워드들로부터 선택되며, 상기 코드워드들의 집합은 상기 매핑 동작에서 사용될 때 가변장 부호화될 상기 심볼들을 나타내는데 요구되는 정보의 양의 감소를 제공하도록 설계된 것을 특징으로 하는 방법.
  9. 제8항에 있어서, 상기 매핑 동작은 상기 제2 수의 데이터 심볼들에 의존하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서, 상기 매핑 동작은 일 집합의 선택가능한 할당 표들 중 하나를 선택하고, 상기 선택된 할당 표에 의해 정의된 할당에 따라 가변장 부호화될 상기 심볼들 각각을 코드워드에 할당함으로써 수행되며, 상기 선택가능한 할당 표들의 집합의 각 표는 코드워드들로의 가변장 부호화될 심볼들의 할당을 정의하는 것을 특징으로 하는 방법.
  11. 제1항 또는 제2항에 있어서, 상기 제1 수의 데이터 심볼들은 0값을 갖는 데이터 심볼들이고 상기 제2 수의 데이터 심볼들은 0이 아닌 값을 갖는 데이터 심볼들인 것을 특징으로 하는 방법.
  12. 제1항 또는 제2항에 있어서, 상기 데이터 심볼들의 집합은 일 집합의 양자화된 변환 계수값들인 것을 특징으로 하는 방법.
  13. 일 집합의 데이터 심볼들을 나타내는 가변장 코드워드들을 복호화하는 방법으로서, 상기 데이터 심볼들의 집합은 제1 값을 갖는 제1 수의 데이터 심볼들 및 상기 제1 값과는 다른 값들을 갖는 제2 수의 데이터 심볼들을 포함하고, 상기 데이터 심볼들의 집합은 상기 데이터 심볼들의 집합으로부터 가변장 부호화될 일 집합의 데이터 심볼들을 형성함으로써 부호화된 것이며, 상기 가변장 코드워드들은 가변장 부호화될 상기 심볼들의 집합에 가변장 부호화를 적용함으로써 형성된 것이고, 상기 가변장 코드워드들에 적용되는 상기 복호화의 적어도 하나의 특성은 가변장 부호화된 상기 심볼들의 집합내의 심볼들의 수에 관한 표시에 따라 적합화되며, 상기 표시는 가변장 부호화될 상기 심볼들의 수에 따라 가변장 코드워드들의 적어도 두개의 택일적인 집합들 중 하나로부터 선택된 가변장 부호화된 상기 심볼들의 수를 나타내는 가변장 코드워드인 방법에 있어서,
    상기 방법은, 적어도 하나의 이전에 부호화된 데이터 심볼들의 집합내의 가변장 부호화된 심볼들의 수에 기초하여 가변장 부호화된 상기 심볼들의 수를 나타내는 상기 가변장 코드워드를 복호화하는 것을 포함하는 것을 특징으로 하는 방법.
  14. 제13항에 있어서, 가변장 부호화된 상기 심볼들의 집합내의 심볼들의 수에 관한 상기 표시는 부호화 장치로부터 수신되는 것을 특징으로 하는 방법.
  15. 삭제
  16. 제13항에 있어서, 하나 이상의 이전에 부호화된 데이터 심볼들의 집합내의 가변장 부호화된 심볼들의 수의 평균에 기초하여 가변장 부호화된 상기 심볼들의 수를 나타내는 상기 가변장 코드워드를 복호화하는 것을 포함하는 것을 특징으로 하는 방법.
  17. 제13항 또는 제14항에 있어서, 심볼 값들로의 코드워드들의 할당을 정의하는 역 매핑 동작을 수행함으로써 가변장 부호화된 상기 심볼들의 수를 나타내는 상기 가변장 코드워드를 복호화하는 것을 포함하는 것을 특징으로 하는 방법.
  18. 제17항에 있어서, 상기 역 매핑 동작은 일 집합의 매핑 표들 중 하나인 매핑 표에 의해 수행되고 상기 매핑 표는 적어도 하나의 이전에 부호화된 데이터 심볼들의 집합내의 가변장 부호화된 상기 심볼들의 수에 기초하여 선택되는 것을 특징으로 하는 방법.
  19. 제13항 또는 제14항에 있어서, 가변장 부호화된 상기 수의 심볼들 각각은 데이터 심볼의 값을 나타내는 제1 값 및 상기 데이터 심볼 이전에 오거나 다음에 오는 다수의 0값을 갖는 데이터 심볼들을 나타내는 제2 값을 포함하는 한 쌍의 값들에 의해 나타내어지고, 상기 제1 값 및 제2 값의 쌍들은 가변장 부호화된 상기 심볼들을 나타내는 것을 특징으로 하는 방법.
  20. 제13항 또는 제14항에 있어서, 각 가변장 코드워드가 가변장 부호화된 상기 심볼들의 집합중 하나를 식별하는데 사용되는, 역 매핑 동작을 수행하는 것을 포함하는 것을 특징으로 하는 방법.
  21. 제20항에 있어서, 상기 역 매핑 동작은 가변장 부호화된 상기 심볼들의 집합내의 상기 제2 수의 데이터 심볼들에 관한 상기 표시에 의존하는 것을 특징으로 하는 방법.
  22. 제21항에 있어서, 상기 역 매핑 동작은 일 집합의 선택가능한 할당 표들 중 하나를 선택하고, 상기 선택된 할당 표에 의해 정의된 할당에 따라 가변장 부호화된 상기 심볼들 중 하나를 식별함으로써 수행되며, 상기 선택가능한 할당 표들의 집합의 각 표는 코드워드들로의 부호화될 심볼들의 할당을 정의하는 것을 특징으로 하는 방법.
  23. 제13항 또는 제14항에 있어서, 상기 제1 수의 데이터 심볼들은 0값을 갖는 데이터 심볼들이고 상기 제2 수의 데이터 심볼들은 0이 아닌 값을 갖는 데이터 심볼들인 것을 특징으로 하는 방법.
  24. 제1 값을 갖는 제1 수의 데이터 심볼들 및 상기 제1 값과는 다른 값들을 갖는 제2 수의 심볼들을 포함하는 일 집합의 데이터 심볼들을 부호화하기 위한 부호기로서, 가변장 부호화될 일 집합의 심볼들은 상기 데이터 심볼들의 집합으로부터 형성되도록 되어 있고, 상기 부호기는 가변장 부호화될 상기 심볼들의 집합을 가변장 부호화하기 위한 부호화 수단을 포함하며, 상기 부호기는 가변장 부호화될 상기 심볼들의 수에 따라 가변장 부호화될 상기 심볼들의 집합에 적용되는 상기 가변장 부호화의 적어도 하나의 특성을 적합화시키도록 되어 있고, 가변장 부호화된 심볼들의 수에 관한 표시를 제공하도록 되어 있는 부호기에 있어서,
    상기 표시는 가변장 부호화될 상기 심볼들의 수에 따라 가변장 코드워드들의 적어도 두개의 택일적인 집합들 중 하나로부터 선택된 가변장 부호화될 상기 심볼들의 수를 나타내는 가변장 코드워드이고,
    상기 부호기는, 적어도 하나의 이전에 부호화된 데이터 심볼들의 집합내의 상기 가변장 부호화된 심볼들의 수에 기초하여 가변장 부호화될 상기 심볼들의 수를 나타내기 위하여 가변장 코드워드를 선택하도록 되어 있는 것을 특징으로 하는 부호기.
  25. 제24항에 있어서, 가변장 부호화될 상기 심볼들의 수에 관한 상기 표시를 포함하는 비트-스트림을 형성하도록 되어 있는 것을 특징으로 하는 부호기.
  26. 제24항 또는 제25항에 있어서, 복호화 장치로 상기 비트-스트림을 전송하도 록 되어 있는 것을 특징으로 하는 부호기.
  27. 삭제
  28. 제24항에 있어서, 하나 이상의 이전에 부호화된 데이터 심볼들의 집합내의 상기 가변장 부호화된 심볼들의 수의 평균에 기초하여 가변장 부호화될 상기 심볼들의 수를 나타내기 위하여 가변장 코드워드를 선택하도록 되어 있는 것을 특징으로 하는 부호기.
  29. 제24항 또는 제25항에 있어서, 코드워드들로의 값들의 할당을 정의하는 매핑 동작을 수행함으로써 가변장 부호화될 상기 심볼들의 수를 나타내기 위하여 가변장 코드워드를 선택하도록 되어 있는 것을 특징으로 하는 부호기.
  30. 제29항에 있어서, 일 집합의 매핑 표들 중 하나인 매핑 표에 의해 상기 매핑 동작을 수행하도록 되어 있고, 적어도 하나의 이전에 부호화된 데이터 심볼들의 집합내의 가변장 부호화된 상기 심볼들의 수에 기초하여 상기 매핑 표를 선택하도록 되어 있는 것을 특징으로 하는 부호기.
  31. 제24항 또는 제25항에 있어서, 상기 데이터 심볼의 값을 나타내는 제1 값 및 상기 데이터 심볼 이전에 오거나 다음에 오는 다수의 0값을 갖는 데이터 심볼들을 나타내는 제2 값을 포함하는 한 쌍의 값들에 의해 상기 제2 수의 데이터 심볼들 각각을 나타냄으로써 가변장 부호화될 상기 심볼들을 나타내는 일 집합의 제1 값 및 제2 값의 쌍들을 형성하도록 되어 있는 것을 특징으로 하는 부호기.
  32. 제24항 또는 제25항에 있어서, 상기 부호기는, 가변장 부호화될 상기 심볼들 각각이 코드워드에 할당됨으로써 가변장 부호화될 상기 심볼들을 나타내는 일 집합의 부호화된 값들을 형성하는, 매핑 동작을 수행하도록 되어 있고, 상기 코드워드는 일 집합의 코드워드들로부터 선택되며, 상기 코드워드들의 집합은 상기 매핑 동작에서 사용될 때 가변장 부호화될 상기 심볼들을 나타내는데 요구되는 정보의 양의 감소를 제공하도록 설계된 것을 특징으로 하는 부호기.
  33. 제32항에 있어서, 상기 매핑 동작은 상기 제2 수의 데이터 심볼들에 의존하도록 되어 있는 것을 특징으로 하는 부호기.
  34. 제33항에 있어서, 상기 매핑 동작은 일 집합의 선택가능한 할당 표들 중 하나를 선택하고, 상기 선택된 할당 표에 의해 정의된 할당에 따라 가변장 부호화될 상기 제2 수의 데이터 심볼들 각각을 코드워드에 할당함으로써 수행되도록 되어 있으며, 상기 선택가능한 할당 표들의 집합의 각 표는 코드워드들로의 가변장 부호화될 심볼들의 할당을 정의하는 것을 특징으로 하는 부호기.
  35. 제24항 또는 제25항에 있어서, 상기 제1 수의 데이터 심볼들은 0값을 갖는 데이터 심볼들이고 상기 제2 수의 데이터 심볼들은 0이 아닌 값을 갖는 데이터 심볼들인 것을 특징으로 하는 부호기.
  36. 제24항 또는 제25항에 있어서, 비디오 부호기에 제공되는 것을 특징으로 하는 부호기.
  37. 제24항 또는 제25항에 있어서, 컴퓨터 독출가능 저장 매체상에 저장된 기계 실행가능 코드로서 구현되는 것을 특징으로 하는 부호기.
  38. 일 집합의 데이터 심볼들을 나타내는 가변장 코드워드들을 복호화하기 위한 복호기로서, 상기 데이터 심볼들의 집합은 제1 값을 갖는 제1 수의 데이터 심볼들 및 상기 제1 값과는 다른 값들을 갖는 제2 수의 데이터 심볼들을 포함하고, 상기 데이터 심볼들의 집합은 가변장 부호화될 일 집합의 데이터 심볼들을 형성함으로써 부호화된 것이며, 상기 가변장 코드워드들은 가변장 부호화될 상기 심볼들의 집합에 가변장 부호화를 적용함으로써 형성된 것이고, 상기 복호기는 가변장 부호화된 상기 심볼들의 집합내의 심볼들의 수에 관한 표시에 따라 상기 가변장 코드워드들에 적용되는 상기 복호화의 적어도 하나의 특성을 적합화시키도록 되어 있고, 상기 표시는 가변장 부호화될 상기 심볼들의 수에 따라 가변장 코드워드들의 적어도 두개의 택일적인 집합들 중 하나로부터 선택된 가변장 부호화된 상기 심볼들의 수를 나타내는 가변장 코드워드인 복호기에 있어서,
    적어도 하나의 이전에 부호화된 데이터 심볼들의 집합내의 가변장 부호화된 심볼들의 수에 기초하여 가변장 부호화된 상기 심볼들의 수를 나타내는 상기 가변장 코드워드를 복호화하도록 되어 있는 것을 특징으로 하는 복호기.
  39. 제38항에 있어서, 가변장 부호화된 상기 심볼들의 집합내의 상기 심볼들의 수에 관한 상기 표시는 부호화 장치로부터 수신되는 것을 특징으로 하는 복호기.
  40. 삭제
  41. 제38항에 있어서, 하나 이상의 이전에 부호화된 데이터 심볼들의 집합내의 가변장 부호화된 심볼들의 수의 평균에 기초하여 가변장 부호화된 상기 심볼들의 수를 나타내는 상기 가변장 코드워드를 복호화하도록 되어 있는 것을 특징으로 하는 복호기.
  42. 제38항 또는 제39항에 있어서, 심볼 값들로의 코드워드들의 할당을 정의하는 역 매핑 동작을 수행함으로써 가변장 부호화된 상기 심볼들의 수를 나타내는 상기 가변장 코드워드를 복호화하도록 되어 있는 것을 특징으로 하는 복호기.
  43. 제42항에 있어서, 일 집합의 매핑 표들 중 하나인 매핑 표에 의해 상기 역 매핑 동작을 수행하도록 되어 있고 적어도 하나의 이전에 부호화된 데이터 심볼들의 집합내의 가변장 부호화된 상기 심볼들의 수에 기초하여 상기 매핑 표를 선택하도록 되어 있는 것을 특징으로 하는 복호기.
  44. 제38항 또는 제39항에 있어서, 데이터 심볼의 값을 나타내는 제1 값 및 상기 데이터 심볼 이전에 오거나 다음에 오는 다수의 0값을 갖는 데이터 심볼들을 나타내는 제2 값을 포함하는, 한 쌍의 값들을 포함하는 데이터 심볼들을 나타내는 가변장 코드워드들을 복호화하도록 되어 있는 것을 특징으로 하는 복호기.
  45. 제38항 또는 제39항에 있어서, 각 가변장 코드워드가 가변장 부호화된 상기 심볼들의 집합중 하나를 식별하는데 사용되는, 역 매핑 동작을 수행함으로써 상기 가변장 코드워드들을 복호화하도록 되어 있는 것을 특징으로 하는 복호기.
  46. 제45항에 있어서, 상기 데이터 심볼들의 집합내의 상기 제2 수의 데이터 심볼들에 관한 상기 표시에 의존하여 상기 역 매핑 동작을 수행하도록 되어 있는 것을 특징으로 하는 복호기.
  47. 제46항에 있어서, 상기 복호기는 일 집합의 선택가능한 할당 표들 중 하나를 선택하고, 상기 선택된 할당 표에 의해 정의된 할당에 따라 가변장 부호화된 상기 심볼들 중 하나를 식별함으로써 상기 역 매핑 동작을 수행하도록 되어 있으며, 상기 선택가능한 할당 표들의 집합의 각 표는 코드워드들로의 가변장 부호화된 심볼들의 할당을 정의하는 것을 특징으로 하는 복호기.
  48. 제38항 또는 제39항에 있어서, 상기 제1 수의 데이터 심볼들은 0값을 갖는 데이터 심볼들이고 상기 제2 수의 데이터 심볼들은 0이 아닌 값을 갖는 데이터 심볼들인 것을 특징으로 하는 복호기.
  49. 제38항 또는 제39항에 있어서, 비디오 복호기에 제공되는 것을 특징으로 하는 복호기.
  50. 제38항 또는 제39항에 있어서, 컴퓨터 독출가능 저장 매체상에 저장된 기계 실행가능 코드로서 구현되는 것을 특징으로 하는 복호기.
  51. 제24항 또는 제25항에 의한 부호기를 포함하는 것을 특징으로 하는 멀티미디어 단말기.
  52. 제38항 또는 제39항에 의한 복호기를 포함하는 것을 특징으로 하는 멀티미디어 단말기.
  53. 제51항에 있어서, 상기 멀티미디어 단말기는 무선 접속에 의해 이동 통신 네트워크와 통신하도록 되어 있는 이동 멀티미디어 단말기인 것을 특징으로 하는 멀티미디어 단말기.
KR1020047011252A 2002-01-22 2003-01-22 이미지/비디오 부호기들 및/또는 복호기들에서 변환계수들의 부호화 KR100953677B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US10/054,610 US6690307B2 (en) 2002-01-22 2002-01-22 Adaptive variable length coding of digital video
US10/054,610 2002-01-22
US36950002P 2002-04-02 2002-04-02
US60/369,500 2002-04-02
PCT/FI2003/000056 WO2003063501A1 (en) 2002-01-22 2003-01-22 Coding transform coefficients in image/video encoders and/or decoders

Publications (2)

Publication Number Publication Date
KR20040077754A KR20040077754A (ko) 2004-09-06
KR100953677B1 true KR100953677B1 (ko) 2010-04-20

Family

ID=27615952

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047011252A KR100953677B1 (ko) 2002-01-22 2003-01-22 이미지/비디오 부호기들 및/또는 복호기들에서 변환계수들의 부호화

Country Status (10)

Country Link
EP (1) EP1470724B1 (ko)
JP (1) JP4510465B2 (ko)
KR (1) KR100953677B1 (ko)
CN (1) CN1620816A (ko)
DE (1) DE60347000C5 (ko)
ES (1) ES2529344T3 (ko)
MX (1) MXPA04007053A (ko)
RU (1) RU2354073C2 (ko)
WO (1) WO2003063501A1 (ko)
ZA (1) ZA200405535B (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1314271C (zh) * 2003-09-09 2007-05-02 华为技术有限公司 一种视频编解码方法
WO2006073116A1 (ja) * 2005-01-07 2006-07-13 Nippon Telegraph And Telephone Corporation 映像符号化方法及び装置、映像復号方法及び装置、それらのプログラムおよびそれらプログラムを記録した記録媒体
US8275045B2 (en) 2006-07-12 2012-09-25 Qualcomm Incorporated Video compression using adaptive variable length codes
US8325819B2 (en) 2006-10-12 2012-12-04 Qualcomm Incorporated Variable length coding table selection based on video block type for refinement coefficient coding
US8599926B2 (en) 2006-10-12 2013-12-03 Qualcomm Incorporated Combined run-length coding of refinement and significant coefficients in scalable video coding enhancement layers
US8565314B2 (en) 2006-10-12 2013-10-22 Qualcomm Incorporated Variable length coding table selection based on block type statistics for refinement coefficient coding
US9319700B2 (en) 2006-10-12 2016-04-19 Qualcomm Incorporated Refinement coefficient coding based on history of corresponding transform coefficient values
US8335261B2 (en) 2007-01-08 2012-12-18 Qualcomm Incorporated Variable length coding techniques for coded block patterns
US8467449B2 (en) 2007-01-08 2013-06-18 Qualcomm Incorporated CAVLC enhancements for SVC CGS enhancement layer coding
MX2009009489A (es) 2007-03-13 2009-11-05 Nokia Corp Sistema y método para codificación y decodificación de video.
KR101083379B1 (ko) 2007-03-14 2011-11-14 니폰덴신뎅와 가부시키가이샤 움직임 벡터 탐색 방법 및 장치 그리고 프로그램을 기록한 기록매체
WO2008111454A1 (ja) 2007-03-14 2008-09-18 Nippon Telegraph And Telephone Corporation 量子化制御方法及び装置、そのプログラム並びにプログラムを記録した記録媒体
ATE515889T1 (de) 2007-03-14 2011-07-15 Nippon Telegraph & Telephone Vorrichtung und verfahren zur schätzung von codemengen, programm und aufzeichnungsmedium dafür
CN101632308B (zh) 2007-03-14 2011-08-03 日本电信电话株式会社 编码比特率控制方法和装置
US8428133B2 (en) 2007-06-15 2013-04-23 Qualcomm Incorporated Adaptive coding of video block prediction mode
US8571104B2 (en) 2007-06-15 2013-10-29 Qualcomm, Incorporated Adaptive coefficient scanning in video coding
KR100842042B1 (ko) * 2007-07-16 2008-06-30 충남대학교산학협력단 암호화된 실행코드에 대하여 동적으로 복호화할 수 있게 한코드블록 암호화 방법
KR101147943B1 (ko) * 2007-10-15 2012-05-23 퀄컴 인코포레이티드 스케일러블 비디오 코딩을 위한 개선된 향상 계층 코딩
US8848787B2 (en) 2007-10-15 2014-09-30 Qualcomm Incorporated Enhancement layer coding for scalable video coding
US8902972B2 (en) 2008-04-11 2014-12-02 Qualcomm Incorporated Rate-distortion quantization for context-adaptive variable length coding (CAVLC)
BRPI0904324A2 (pt) * 2008-06-27 2015-06-30 Sony Corp Dispositivo de processamento de imagem, e, método de processamento de imagem
CN101785318B (zh) * 2008-06-27 2012-12-12 索尼公司 图像处理装置和图像处理方法
US8457425B2 (en) * 2009-06-09 2013-06-04 Sony Corporation Embedded graphics coding for images with sparse histograms
JP2011024066A (ja) * 2009-07-17 2011-02-03 Sony Corp 画像処理装置および方法
KR101456498B1 (ko) * 2009-08-14 2014-10-31 삼성전자주식회사 계층적 부호화 단위의 스캔 순서를 고려한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR101768207B1 (ko) * 2010-01-19 2017-08-16 삼성전자주식회사 축소된 예측 움직임 벡터의 후보들에 기초해 움직임 벡터를 부호화, 복호화하는 방법 및 장치
US20120082230A1 (en) * 2010-10-01 2012-04-05 Qualcomm Incorporated Variable length coding of video block coefficients
US9490839B2 (en) 2011-01-03 2016-11-08 Qualcomm Incorporated Variable length coding of video block coefficients
US20120230418A1 (en) 2011-03-08 2012-09-13 Qualcomm Incorporated Coding of transform coefficients for video coding
US20120230396A1 (en) * 2011-03-11 2012-09-13 Mitsubishi Electric Research Laboratories, Inc. Method for Embedding Decoding Information in Quantized Transform Coefficients
CN102231832B (zh) * 2011-06-24 2013-04-24 北京瀚景锦河科技有限公司 变长码编解码方法和***
US20130083856A1 (en) * 2011-06-29 2013-04-04 Qualcomm Incorporated Contexts for coefficient level coding in video compression
US9516316B2 (en) 2011-06-29 2016-12-06 Qualcomm Incorporated VLC coefficient coding for large chroma block
US9338456B2 (en) 2011-07-11 2016-05-10 Qualcomm Incorporated Coding syntax elements using VLC codewords
US10306229B2 (en) 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
US10623774B2 (en) 2016-03-22 2020-04-14 Qualcomm Incorporated Constrained block-level optimization and signaling for video coding tools
US11323748B2 (en) 2018-12-19 2022-05-03 Qualcomm Incorporated Tree-based transform unit (TU) partition for video coding
CN111083475B (zh) * 2019-12-31 2022-04-01 上海富瀚微电子股份有限公司 量化变换系数管理装置及适用于hevc标准的编码器
CN115514967B (zh) * 2022-11-07 2023-03-21 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 基于二进制块双向编码的图像压缩方法及图像解压方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0279799A2 (en) 1987-02-20 1988-08-24 Telia Ab Method and means for variable length coding
US5400075A (en) 1993-01-13 1995-03-21 Thomson Consumer Electronics, Inc. Adaptive variable length encoder/decoder
US5640420A (en) 1995-03-28 1997-06-17 Daewoo Electronics Co., Ltd. Variable length coder using two VLC tables

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3016456B2 (ja) * 1992-06-15 2000-03-06 日本電信電話株式会社 適応的可変長符号化方法
JPH06225279A (ja) * 1992-10-26 1994-08-12 Sony Corp 符号化方法、復号化方法、符号化装置及び復号化装置
JPH08316846A (ja) * 1995-05-18 1996-11-29 Matsushita Electric Ind Co Ltd 画像符号化装置、画像復号化装置、画像符号化方法および画像復号化方法
JP3712919B2 (ja) * 2000-06-02 2005-11-02 日本電信電話株式会社 符号化データ再圧縮方法および符号化データ復元方法ならびにコンピュータにそれらの方法を実行させるためのプログラムを記録した記録媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0279799A2 (en) 1987-02-20 1988-08-24 Telia Ab Method and means for variable length coding
US5400075A (en) 1993-01-13 1995-03-21 Thomson Consumer Electronics, Inc. Adaptive variable length encoder/decoder
US5640420A (en) 1995-03-28 1997-06-17 Daewoo Electronics Co., Ltd. Variable length coder using two VLC tables

Also Published As

Publication number Publication date
EP1470724B1 (en) 2014-11-19
ZA200405535B (en) 2005-05-25
WO2003063501A1 (en) 2003-07-31
KR20040077754A (ko) 2004-09-06
DE60347000C5 (de) 2020-08-06
JP4510465B2 (ja) 2010-07-21
RU2004125588A (ru) 2006-01-27
CN1620816A (zh) 2005-05-25
EP1470724A1 (en) 2004-10-27
MXPA04007053A (es) 2004-10-11
RU2354073C2 (ru) 2009-04-27
ES2529344T3 (es) 2015-02-19
JP2005516497A (ja) 2005-06-02

Similar Documents

Publication Publication Date Title
KR100953677B1 (ko) 이미지/비디오 부호기들 및/또는 복호기들에서 변환계수들의 부호화
KR100969645B1 (ko) 적응 가변장 부호화
EP1391121B1 (en) Variable length coding
KR101010722B1 (ko) 영상의 코딩 변환 계수/비디오 인코더 및/또는 디코더
EP1486065B1 (en) Method for coding motion in a video sequence
EP1497990B1 (en) Method and device for indicating quantizer parameters in a video coding system
AU2014202978B2 (en) Method and system for context-based adaptive binary arithmetic coding
AU2008202981A1 (en) Method and system for context-based adaptive binary arithmetic

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: 20130320

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140320

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160318

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170317

Year of fee payment: 8