KR101108661B1 - 비디오 시퀀스에서의 움직임 부호화 방법 - Google Patents

비디오 시퀀스에서의 움직임 부호화 방법 Download PDF

Info

Publication number
KR101108661B1
KR101108661B1 KR1020087026261A KR20087026261A KR101108661B1 KR 101108661 B1 KR101108661 B1 KR 101108661B1 KR 1020087026261 A KR1020087026261 A KR 1020087026261A KR 20087026261 A KR20087026261 A KR 20087026261A KR 101108661 B1 KR101108661 B1 KR 101108661B1
Authority
KR
South Korea
Prior art keywords
segment
motion
motion vector
encoded
macroblock
Prior art date
Application number
KR1020087026261A
Other languages
English (en)
Other versions
KR20080104385A (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=28042010&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR101108661(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 노키아 코포레이션 filed Critical 노키아 코포레이션
Publication of KR20080104385A publication Critical patent/KR20080104385A/ko
Application granted granted Critical
Publication of KR101108661B1 publication Critical patent/KR101108661B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/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
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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

Abstract

글로벌 움직임 성분을 지닌 비디오 시퀀스가 효율적인 방법으로 부호화될 수 있게 하는 움직임 보상 비디오 부호화 방법이 개시되어 있다. 비디오 부호기(600)는, 2가지의 예상가능한 매크로블록 움직임 유형들 중 하나, 즉 (a) 제로(0) 움직임, 또는 (b) 글로벌 또는 지역 움직임을 나타내는 데 사용되는 스킵 모드를 포함하는 특정 부호화 모드들로 부호화될 매크로블록들을 할당하도록 구성된다. 각각의 매크로블록이 부호화됨에 따라, 매크로블록을 에워싸는 이전에 부호화된 영역이 조사되고 그러한 영역에서의 움직임 특성이 결정된다. 스킵 모드의 경우, 부호화될 매크로블록 및 글로벌 움직임 또는 지역 움직임을 기술하는 움직임 벡터는 영역 내의 움직임이 글로벌 움직임인 지 아니면 지역 움직임인 지 매크로블록과 연관된다. 영역이 무의미한 움직임 레벨을 나타내는 경우, 제로 값의 움직임 벡터가 매크로블록과 연관된다.

Description

비디오 시퀀스에서의 움직임 부호화 방법{Method for coding motion in a video sequence}
본 발명은 일반적으로 통신 시스템에 관한 것으로, 보다 상세하게는 비디오 부호화에서의 움직임 보상에 관한 것이다.
필름에 기록된 보통의 영화와 같은 디지털 비디오 시퀀스는 정지 비디오의 시퀀스, 비교적 고속으로, 전형적으로 초당 15 내지 30 프레임의 속도로 시퀀스의 연속 이미지를 차례로 표시함으로써 생성되는 동비디오을 포함한다. 비교적 빠른 프레임 표시율 때문에, 연속적인 프레임의 이미지는 매우 유사한 경향이 있고 상당한 양의 중복 정보를 포함한다. 예를 들어, 일반적인 장면은 배경과 같은 어떤 정적인 요소, 및 예를 들어 뉴스 해설자의 얼굴, 이동중인 차량 등과 같은 많은 상이한 형태를 가질 수 있는 어떤 움직이는 영역을 포함할 수 있다. 대안으로, 또는 추가로, 소위 "글로벌 움직임(global motion)"은 예를 들어 장면을 기록하는 카메라의 이동, 패닝(panning) 또는 줌(zoom)으로 인하여, 비디오 시퀀스에 나타날 수 있다. 하지만, 많은 경우에 있어서, 하나의 비디오 프레임과 다음 비디오 프레임간의 전체적인 변화는 상당히 작다.
압축되지 않은 디지털 비디오 시퀀스의 각 프레임은 이미지 픽셀들의 배열을 포함한다. 예를 들어, 4분의 1 공통 교환 포맷(QCIF; Quarter Common Interchange Format)으로 알려진, 일반적으로 사용되는 디지털 비디오 포맷에 있어서, 하나의 프레임은 176 x 144 픽셀의 배열을 포함하고, 이 경우에 있어서 각 프레임은 25,344 픽셀을 갖는다. 또한, 각 픽셀은 각 픽셀에 대응하는 이미지의 영역의 휘도 및/또는 컬러 컨텐트(content)에 대한 정보를 운반하는 어떤 수의 비트들로 표현된다. 일반적으로, 소위 YUV 컬러 모델이 이미지의 휘도 및 크로미넌스(chrominance) 컨텐트를 나타내는데 사용된다. 휘도, 또는 Y 성분은 이미지의 세기(밝기)를 나타내고, 이미지의 컬러 컨텐트는 U 및 V로 표기되는 2개의 크로미넌스 또는 컬러의 상이한 성분으로 표현된다.
이미지 컨텐트의 휘도/크로미넌스 표현에 근거한 컬러 모델들은 주요 컬러들(레드, 그린, 및 블루; RGB)을 포함하는 표현에 근거하는 컬러 모델들에 비해 어떤 장점들을 제공한다. 인간의 시각 시스템은 컬러 변화보다 세기 변화에 더 민감하고, YUV 컬러 모델은 이러한 특성을 이용하여 휘도 성분(Y)에 대한 공간 해상도보다 더 낮은 크로미넌스 성분(U,V)에 대한 공간 해상도를 이용한다. 이런 식으로, 이미지에서의 컬러 정보를 부호화하는데 필요한 정보의 양은 화질에 있어서 수용할 수 있을 만큼 감소될 수 있다.
크로미넌스 성분의 더 낮은 공간 해상도는 보통 공간 서브 샘플링에 의해 얻어진다. 전형적으로, 비디오 시퀀스의 각 프레임은 소위 "매크로블록(macroblock)"으로 분할된다. 매크로블록은 휘도(Y) 정보 및 연관된 (공간적으로 서브 샘플링된) 크로미넌스(U,V) 정보를 포함한다. 도 3은 매크로블록이 형성될 수 있는 하나의 방식을 도시한다. 도 3a는 각 성분이 동일한 공간 해상도를 갖는 YUV 컬러 모델을 이용하여 표현된 비디오 시퀀스의 프레임을 도시한다. 매크로블록은 휘도 정보의 4개의 블록인 원래 이미지의 16 x 16 이미지 픽셀의 영역(도 3b) 및 2개의 공간적으로 대응하는 크로미넌스 성분들(U,V)을 나타내는 것으로 형성된다. 각 휘도 블록은 휘도(Y)값의 8 x 8 배열을 포함하고, 크로미넌스 성분들(U,V)은 수평 및 수직 방향으로 2의 인자로 서브 샘플링되어 8 x 8의 크로미넌스(U,V) 값의 대응하는 배열을 생성한다(도 3c 참조).
QCIF 이미지는 11 x 9 매크로블록을 포함한다. 휘도 블록들 및 크로미넌스 블록들이 8비트 해상도(즉, 범위 0 내지 255인 수)로 표현되는 경우, 매크로블록 당 요구되는 비트의 총수는 (16 x 16 x 8) + 2 x (8 x 8 x 8) = 3072 비트이다. 따라서, QCIF 포맷의 비디오 프레임을 나타내는데 필요한 비트의 수는 99 x 3072 = 304,128 비트이다. 이것은 초당 30 프레임의 속도로 YUV 컬러 모델을 이용하여 표현된 QCIF 포맷을 갖는 압축되지 않은 비디오 시퀀스를 전송/기록/표시하는데 요구되는 데이터의 양이 9Mbps(초당 백만 비트)보다 더 많다는 것을 의미한다. 이것은 매우 높은 데이터율이고 비디오 기록, 전송 및 표시 용도에서 사용하는 데 실용적이지 않다. 왜냐하면 매우 큰 저장 용량, 전송 채널 용량 및 하드웨어 성능이 요구되기 때문이다.
비디오 데이터가 종합 정보 통신망(ISDN; Integrated Services Digital Network) 또는 종래의 일반 전화 교환망(PSTN; Public Switched Telephone Network)과 같은 고정 라인 네트워크를 통해 실시간으로 전송되는 경우, 이용가능한 데이터 전송 대역폭은 전형적으로 대략 64kbits/s이다. 적어도 부분적으로 무선 통신 링크를 통해 전송이 수행되는 이동 비디오 전화인 경우, 이용가능한 대역폭은 20kbits/s만큼 낮을 수 있다. 이것은 낮은 대역폭 통신 네트워크를 통해 디지털 비디오 시퀀스의 전송을 가능하게 하기 위하여 비디오 데이터를 나타내는 데 사용되는 정보의 양은 상당한 감소가 수행되어야 한다는 것을 의미한다. 이러한 이유로, 허용할만한 화질을 유지하면서 전송되는 정보의 양을 감소시키는 비디오 압축 기술이 개발되었다.
비디오 압축 방법은 비디오 시퀀스의 중복되고 인식에 무의미한 부분을 감소시키는 것에 근거한다. 비디오 시퀀스에 있어서의 여유도(redundancy)는 공간, 시간 및 스펙트럼 여유도로 분류될 수 있다. "공간 여유도"는 하나의 프레임 내에서의 이웃 픽셀들간의 상관(유사성)을 기술하는데 사용되는 용어이다. "시간 여유도"라는 용어는 하나의 시퀀스의 하나의 프레임에서 나타나는 객체들은 다음의 프레임들에서 나타날 수 있다는 사실을 표현한다. "스펙트럼 여유도"는 동일한 이미지의 상이한 컬러 성분들간의 상관을 지칭한다.
주어진 이미지들의 시퀀스에서 다양한 형태의 여유도를 간단히 감소시킴으로써 충분히 효율적인 압축이 보통 달성될 수는 없다. 따라서, 대부분의 현재 비디오 부호기들은 또한 주관적으로 가장 덜 중요한 비디오 시퀀스의 부분들의 품질을 감소시킨다. 더욱이, 압축된 비디오 비트 스트림 자신의 여유도가 효율적인 손실없는 부호화에 의하여 감소된다. 일반적으로, 이것은 엔트로피 부호화(entropy coding) 로 알려진 기술을 이용하여 달성된다.
종종 디지털 비디오 시퀀스의 각 프레임을 구성하는 픽셀들간에 상당량의 공간 여유도가 있다. 다시 말하면, 시퀀스의 하나의 프레임내의 어떤 픽셀의 값은 바로 근처에 있는 다른 픽셀들의 값과 실질적으로 동일하다. 전형적으로, 비디오 부호화 시스템은 2차원 이산 코사인 변환(DCT; Discrete Cosine Transform)과 같은 수학적인 변환이 이미지 픽셀들의 블록들에 적용되는 "블록 기반 변환 부호화(block-based transform coding)"로 알려진 기술을 이용하여 공간 여유도를 감소시킨다. 이것은 이미지 데이터를 픽셀 값을 포함하는 표현에서 공간 주파수 성분을 나타내는 한 세트의 계수 값들을 포함하는 형태로 변환하여 공간 여유도를 상당히 감소시키고 이미지 데이터의 더 축소된 표현을 생성한다.
시퀀스 내의 어떤 다른 프레임을 참조하지 않고, 블록 기반 변환 부호화를 이용하여 압축된 비디오 시퀀스의 프레임들은 인트라 부호화된(INTRA-coded) 또는 I-프레임으로 지칭된다. 추가로, 가능한 경우에 인트라 부호화된 프레임들의 블록들은 동일한 프레임내의 이전 부호화된 블록들로부터 예측된다. 인트라 예측(INTRA-prediction)으로 알려진 이러한 기술은 인트라 부호화된 프레임을 나타내는데 요구되는 데이터의 양을 더 감소시키는 효과를 갖는다.
일반적으로, 비디오 부호화 시스템은 비디오 시퀀스의 각각의 프레임들내의 공간 여유도를 감소시킬 뿐 아니라, "움직임 보상 예측(motion compensated prediction)"으로 알려진 기술을 이용하여, 시퀀스에서의 시간 여유도를 감소시킨다. 움직임 보상 예측을 이용하여, 디지털 비디오 시퀀스에서의 몇몇 (종종 많은) 프레임들의 이미지 내용이 "참조(reference)" 프레임들로 알려진 시퀀스의 하나 이상의 다른 프레임들로부터 "예측"된다. 이미지 내용의 예측은 "움직임 벡터(motion vector)"를 이용하여 부호화될 (압축될) 프레임과 참조 프레임(들)간의 이미지의 영역 또는 객체의 움직임을 추적함으로써 달성된다. 일반적으로, 참조 프레임(들)은 비디오 시퀀스에서 부호화될 프레임을 앞서거나 뒤따를 수 있다. 인트라 부호화의 경우에서와 같이 비디오 프레임의 움직임 보상 예측은 전형적으로 매크로블록 별로 수행된다.
움직임 보상 예측을 이용하여 압축되는 비디오 시퀀스의 프레임들은 일반적으로 인터 부호화된(INTER-coded) 또는 P-프레임들로 지칭된다. 드물게 움직임 보상 예측만으로 비디오 프레임의 이미지 내용의 충분히 정밀한 표현을 제공하고 따라서 전형적으로 소위 "예측 오차(PE; prediction error)" 프레임에 각 인터 부호화된 프레임을 제공하는 것이 필요하다. 예측 오차 프레임은 부호화될 프레임의 이미지 내용 및 인터-부호화된 프레임의 복호화 버전간의 차이를 나타낸다. 보다 상세하게는, 예측 오차 프레임은 부호화될 프레임의 픽셀 값들 및 당해 프레임의 예측 버전에 근거하여 형성된 대응하는 재구성된 픽셀 값들간의 차이를 나타내는 값들을 포함한다. 따라서, 예측 오차 프레임은 정지 이미지에 유사한 특성을 가지며 공간 여유도 및 그것을 표현하는데 요구되는 데이터의 양(비트의 수)를 감소시키기 위하여 블록 기반 변환 부호화가 적용될 수 있다.
일반 비디오 부호화 시스템의 동작을 더 상세하게 나타내기 위하여, 이제 첨부한 도면들 중 도 1 및 도 2에 도시된 예시적인 비디오 부호기 및 비디오 복호기 를 참조할 것이다.
도 1의 비디오 부호기(100)는 압축된 (부호화된) 비디오 비트 스트림을 생성하기 위하여 인트라 및 인터 부호화의 조합을 이용하고, 도 2의 복호기(200)는 부호기(100)에 의해 생성된 비디오 비트 스트림을 수신하고 복호화하여 재구성된 비디오 시퀀스를 생성하도록 구성된다. 이하 설명에 있어서, 도 3에 도시된 바와 같이 매크로블록의 휘도 성분은 4개의 8 x 8 블록의 배열로서 배열된 16 x 16 픽셀들을 포함하고 관련된 크로미넌스 성분들은 공간적으로 수평 및 수직 방향으로 2의 인자로 서브 샘플링되어 8x8 블록을 형성하는 것으로 가정할 것이다. 다른 블록 크기들 및 다른 서브 샘플링 스킴으로의 설명의 확장이 당업자에게 명백할 것이다.
비디오 부호기(100)는 카메라 또는 다른 비디오 소스(미도시)로부터 디지털 비디오 신호를 수신하는 입력(101)을 포함한다. 비디오 부호기(100)는 또한 블록 기반 이산 코사인 변환(DCT)을 수행하도록 구성된 변환 유닛(104), 양자화기(106), 역 양자화기(108), 역 블록 기반 이산 코사인 변환(IDCT)을 수행하도록 구성된 역 변환 유닛(110), 결합부(112,116), 및 프레임 저장부(120)를 포함한다. 상기 부호기는 또한 움직임 추정기(130), 움직임 필드 부호기(140) 및 움직임 보상 예측기(150)를 포함한다. 스위치들(102,114)은 협동으로 비디오 부호화의 인트라 모드 및 비디오 부호화의 인터 모드 사이에서 부호기를 스위칭하도록 제어 관리자(160)에 의해 동작된다. 비디오 부호기(100)는 또한 비디오 다중화 부호기(170)를 포함한다. 비디오 다중화 부호기(170)는 추가로 원격 수신 단말기로의 전송을 위해 또는 예를 들어 컴퓨터 하드 드라이브(미도시)와 같은 대용량 저장 매체에 저장하기 위해 부호기(100)에 의해 생성된 다양한 유형의 정보로부터 단일 비트 스트림을 형성한다.
부호기(100)는 다음과 같이 동작한다. 비디오 소스로부터 입력(101)으로 제공된 압축되지 않은 비디오의 각 프레임이 수신되어 매크로블록 별로 바람직하기로는 래스터 스캔(raster-scan) 순서로 처리된다. 새로운 비디오 시퀀스의 부호화가 시작되는 경우, 부호화될 처음 프레임은 인트라 부호화된 프레임으로서 부호화된다. 그 다음, 부호기는 다음 조건들 중 하나가 충족되지 않는 경우, 인터 부호화된 포맷으로 각 프레임을 부호화하도록 프로그램된다. 1) 부호화될 프레임의 현재 매크로블록이 예측에 사용되는 참조 프레임의 픽셀 값들과 너무 상이해서 과도한 예측 오차 정보가 생성되는 것으로 판단되는 경우, 이러한 경우 현재 매크로블록은 인트라 부호화 포맷으로 부호화된다; 2) 미리 정의된 인트라 프레임 반복 간격이 만료된 경우; 또는 3) 수신 단말기로부터 프레임이 인트라 부호화 포맷으로 제공되도록 하는 요청을 나타내는 피드백이 수신되는 경우.
조건 1)의 발생은 결합부(116)의 출력을 모니터링함으로써 검출된다. 결합부(116)는 부호화될 프레임의 현재 매크로블록 및 움직임 보상 예측 블록(150)에서 생성된 예측간의 차이를 형성한다. 이러한 차이(예를 들어 픽셀 값들의 절대 값들의 합)의 측정값이 소정 임계값을 초과하는 경우, 결합부(116)는 제어 라인(119)을 통해 제어 관리자(160)에 통보하고 제어 관리자(160)는 제어 라인(113)을 통해 부호기(100)가 인트라 부호화 모드로 스위칭하도록 스위치들(102,114)을 동작시킨다. 이런 식으로, 인터 부호화 포맷으로 부호화된 프레임이 인트라 부호화된 매크로블 록을 포함할 수 있다. 조건 2)의 발생은 제어 관리부(160)에서 구현되는 프레임 카운터 또는 타이머에 의하여 모니터링된다. 타이머가 만료하는 경우, 또는 프레임 카운터가 소정 수의 프레임에 도달하는 경우, 제어 관리자(160)는 부호기를 인트라 부호화 모드로 스위칭하도록 제어 라인(113)을 통해 스위치들(102,114)을 동작시킨다. 조건 3)은 제어 관리자(160)가 예를 들어 수신 단말기로부터 제어 라인(121)을 통해 인트라 프레임 여유도가 수신 단말기에 의해 요구되는 것을 나타내는 피드백 신호를 수신하는 경우 트리거된다. 이러한 조건은 예를 들어 이전에 전송된 프레임이 전송동안 간섭에 의해 심하게 손상되어 수신기에서 복호화할 수 없는 경우에 발생할 수 있다. 이러한 상황에 있어서, 수신 복호기는 다음 프레임이 인트라 부호화 포맷으로 부호화되도록 하는 요청을 전송하고 따라서 부호화 시퀀스를 다시 초기화한다.
인트라 부호화 모드에서의 부호기(100)의 동작이 이제 기술될 것이다. 인트라 부호화 모드에 있어서, 제어 관리자(160)는 스위치(102)를 동작시켜 입력 라인(118)으로부터 비디오 입력을 받아들인다. 비디오 신호 입력은 매크로블록 별로 입력(101)으로부터 입력 라인(118)을 통해 수신된다. 매크로블록을 형성하는 휘도 및 크로미넌스 값들의 블록들이 수신되는 경우, 상기 블록들은 DCT 변환 블록(104)에 전달되고, DCT 변환 블록(104)은 값들의 각 블록에 대해 2차원 이산 코사인 변환을 수행하여 각 블록에 대한 2차원 배열의 DCT 계수들을 생성한다. DCT 변환 블록(104)은 각 블록에 대한 계수 값들의 배열을 생성하고, 매크로블록(이 경우에 있어서 8 x 8)을 형성하는 블록들의 차원들에 대응하는 계수 값들의 수를 생성한다. 각 블록에 대한 DCT 계수들은 양자화기(106)에 전달되고, 양자화기(106)에서 상기 DCT 계수들은 양자화 매개변수(QP; quantization parameter)를 이용하여 양자화된다. 양자화 매개변수(QP)의 선택은 제어 라인(115)을 통해 제어 관리자(160)에 의해 제어된다.
각 블록에 대한 양자화된 DCT 계수들의 배열은 양자화기(106)로부터 도 1에서 라인(125)에 의해 표시된 바와 같이 비디오 다중화 부호기(170)로 전달된다. 비디오 다중화 부호기(170)는 지그재그(zigzag) 스캐닝 절차를 이용하여 각 블록에 대한 양자화된 변환 계수들의 순서를 정한다. 상기 절차에 의해 2차원 배열인 양자화된 변환 계수들을 1차원 배열로 변환한다. 1차원 배열에서의 각 제로가 아닌 값의 양자화된 계수들은 레벨(level) 및 런(run)으로 지칭되는 한 쌍의 값으로 표현된다. 상기 레벨은 양자화된 계수의 값이고 런은 당해 계수를 앞서는 연속적인 제로 값의 계수들의 수이다. 상기 런 및 레벨 값들은 추가로 예를 들어 산술 부호화 또는 가변 길이 부호화(VLC)와 같은 엔트로피 부호화를 이용하여 비디오 다중화 부호기(170)에서 압축된다.
일단 런 및 레벨 값들이 적합한 방법을 이용하여 엔트로피 부호화된 경우, 비디오 다중화 부호기(170)는 또한 상기 런 및 레벨 값들을 또한 당해 정보의 종류에 대해 적합한 방법을 이용하여 엔트로피 부호화된 제어 정보와 결합하여 부호화된 이미지 정보의 단일 압축된 비트 스트림(135)을 형성한다. 비디오 다중화 부호기(170)에 의해 수행되는 동작과 관련하여 엔트로피 부호화가 기술되었지만 대안적인 구현에 있어서 별개의 엔트로피 부호화 유닛이 제공될 수 있다는 것을 유념해야 한다.
매크로블록의 국부적으로 복호된 버전이 또한 부호기(100)에서 형성된다. 이것은 양자화기(106)에 의해 출력된 각 블록에 대한 양자화된 변환 계수들을 역 양자화기(108)를 통해 전달하고 역 변환 블록(110)에서 역 DCT 변환을 적용함으로써 수행된다. 이런 식으로 매크로블록의 각 블록에 대한 픽셀 값들의 재구성된 배열이 형성된다. 결과적인 복호된 이미지 데이터가 결합기(112)에 입력된다. 인트라 부호화 모드에서, 스위치(114)를 통해 결합기(112)로의 입력이 제로가 되도록 스위치(114)가 세팅된다. 이런 식으로, 결합기(112)에 의해 수행되는 동작은 변경되지 않은 복호화된 이미지 데이터를 전달하는 것에 대응한다.
현재의 프레임의 다음 매크로블록들이 수신되고 블록들(104,106,108,110, 112)에서 상술된 부호화 및 국부적 복호화 단계들을 수행하는 경우, 인트라 부호화된 프레임의 복호화된 버전은 프레임 저장부(120)에 저장된다. 현재 프레임의 최종 매크로블록이 인트라 부호화되고 그 다음 복호화되는 경우, 프레임 저장부(120)는 완전히 복호화된 프레임을 포함하고, 상기 프레임은 인터 부호화 포맷을 갖는 다음에 수신되는 비디오 프레임을 부호화하는데 움직임 예측 참조 프레임으로서 사용될 수 있다.
인터 부호화 모드에서의 부호기(100)의 동작이 이제 기술될 것이다. 인터 부호화 모드에 있어서, 제어 관리자(160)는 스위치(102)를 동작시켜 라인(117)으로부터 입력을 수신한다. 상기 입력은 결합기(116)의 출력을 포함한다. 결합기(116)는 입력(101)로부터 비디오 입력 신호를 매크로블록 별로 수신한다. 결합기(116)가 매 크로블록을 형성하는 휘도 및 크로미넌스 값들의 블록들을 수신하는 경우, 상기 결합기(116)는 대응하는 예측 오차 정보 블록들을 형성한다. 상기 예측 오차 정보는 당해 블록 및 움직임 보상 예측 블록(150)에서 생성된 예측간의 차이를 나타낸다. 보다 상세하게는, 매크로블록의 각 블록에 대한 예측 오차 정보는 값들의 2차원 배열을 포함하고, 각 값은 부호화될 휘도 또는 크로미넌스 정보의 블록에서의 픽셀 값 및 후술되는 절차에 따라 블록에 대한 움직임 보상된 예측을 형성함으로써 획득된 복호화된 픽셀 값간의 차이를 나타낸다. 따라서, 각 매크로블록이 예를 들어 휘도 및 크로미넌스 값들을 포함하는 8 x 8 블록들의 조합을 포함하는 본 명세서에서 고려되는 예시적인 비디오 부호화 시스템에 있어서, 매크로블록의 각 블록에 대한 예측 오차 정보는 유사하게 예측 오차 값들의 8 x 8 배열을 포함한다.
매크로블록의 각 블록에 대한 예측 오차 정보는 DCT 변환 블록(104)에 전달되고, DCT 변환 블록(104)은 예측 오차 값들의 각 블록에 대해 2차원 이산 코사인 변환을 수행하여 각 블록에 대한 DCT 변환 계수들의 2차원 배열을 생성한다. DCT 변환 블록(104)은 각 예측 오차 블록에 대한 계수 값들의 배열을 생성하고, 매크로블록(이 경우에 있어서 8 x 8)을 형성하는 블록들의 차원들에 대응하는 계수 값들의 수를 생성한다. 각 예측 오차 블록으로부터 유도된 변환 계수들은 양자화기(106)에 전달되고 인트라 부호화 모드에서의 부호기의 동작과 관련하여 상술된 것과 유사한 방식으로 양자화기(106)에서 상기 변환 계수들은 양자화 매개변수(QP)를 이용하여 양자화된다. 상술된 바와 같이, 양자화 매개변수(QP)의 선택은 제어 라인(115)을 통해 제어 관리자(160)에 의해 제어된다.
매크로블록의 각 블록에 대한 예측 오차 정보를 나타내는 양자화된 DCT 계수들은 양자화기(106)로부터 도 1에서 라인(125)으로 표시된 바와 같이 비디오 다중화 부호기(170)로 전달된다.
인트라 부호화 모드에서와 같이, 비디오 다중화 부호기(170)는 지그재그 스캐닝 절차를 이용하여 각 예측 오차 블록에 대한 변환 계수들의 순서를 정하고 각 제로가 아닌 값의 양자화된 계수들을 런-레벨 쌍으로 나타낸다. 인트라 부호화 모드와 관련하여 상술된 것과 유사한 방식으로 비디오 다중화 부호기(170)는 엔트로피 부호화를 이용하여 런-레벨 쌍을 압축한다. 비디오 다중화 부호기(170)는 또한 움직임 필드 부호화 블록(140)으로부터 라인(126)을 통해 (후술되는) 움직임 벡터 정보 및 제어 관리자(160)로부터 제어 정보를 수신한다. 비디오 다중화 부호기(170)는 움직임 벡터 정보 및 제어 정보를 엔트로피 부호화하여 엔트로피 부호화된 움직임 벡터, 예측 오차 및 제어 정보를 포함하는 부호화된 이미지 정보의 단일 비트 스트림(135)을 형성한다.
매크로블록의 각 블록에 대한 예측 오차 정보를 나타내는 양자화된 DCT 계수들이 또한 양자화기(106)로부터 역 양자화기(108)에 전달된다. 여기서 상기 계수들은 역 양자화되고 역 양자화된 DCT 계수들의 결과적인 블록들은 역 DCT 변환 블록(110)에 인가된다. 역 DCT 변환 블록(110)에서 상기 블록들은 역 DCT 변환이 수행되어 예측 오차 값들의 국부적으로 복호화된 블록들을 생성한다. 상기 예측 오차 값들의 국부적으로 복호화된 블록들은 결합기(112)에 입력된다. 인터 부호화 모드에 있어서, 결합기(112)가 또한 움직임 보상 예측 블록(150)에 의해 생성된 매크로 블록의 각 블록에 대한 예측된 픽셀 값들을 수신하도록 스위치(114)가 세팅된다. 결합기(112)는 예측 오차 값들의 국부적으로 복호화된 블록들 각각을 예측된 픽셀의 대응하는 블록과 결합하여 재구성된 이미지 블록들을 생성하고 프레임 저장부(120)에 저장한다.
비디오 신호의 다음의 매크로블록들이 비디오 소스로부터 수신되고 블록들(104,106,108,110,112)에서 상술된 부호화 및 국부적 복호화 단계들을 수행하는 경우, 상기 프레임의 복호화된 버전은 프레임 저장부(120)에 저장된다. 상기 프레임의 최종 매크로블록이 처리된 경우, 프레임 저장부(120)는 완전히 복호화된 프레임을 포함하고, 상기 프레임은 인터 부호화 포맷을 갖는 다음에 수신되는 비디오 프레임을 부호화하는 데 움직임 예측 참조 프레임으로서 사용될 수 있다.
비디오 부호기(100)에 의해 수행되는 움직임 보상 예측의 상세한 설명이 이하 고려될 것이다.
인터 부호화 포맷으로 부호화된 어떤 프레임은 움직임 보상 예측을 위해 참조 프레임을 필요로 한다. 이것은 반드시 비디오 시퀀스를 부호화하는 경우 부호화될 제1 프레임은 시퀀스에서 제1 프레임 또는 어떤 다른 프레임이 인트라 부호화 포맷으로 부호화되어야 한다는 것을 의미한다. 이것은 또한 비디오 부호기(100)가 제어 관리자(160)에 의해 인터 부호화 모드로 스위칭되는 경우 이전 부호화된 프레임을 국부적으로 복호화함으로써 형성되는 완전한 참조 프레임이 이미 상기 부호기의 프레임 저장부(120)에서 입수가능하다는 것을 의미한다. 일반적으로, 참조 프레임은 인트라 부호화된 프레임 또는 인터 부호화된 프레임을 국부적으로 복호화함으 로써 형성된다.
이하 설명에 있어서, 부호기는 매크로블록 기반으로 움직임 보상 예측을 수행하는 것으로 가정할 것이다. 즉 매크로블록은 움직임 정보와 결합될 수 있는 비디오 프레임의 최소 요소이다. 또한 주어진 매크로블록에 대한 예측이 당해 매크로블록의 16 x 16 휘도 값과 가장 잘 대응하는 것을 나타내는 참조 프레임의 휘도 성분에서의 16 x 16 값들의 영역을 식별함으로써 형성되는 것으로 가정할 것이다. 움직임 정보가 매크로블록보다 더 작은 요소들과 관련될 수 있는 비디오 부호화 시스템에서의 움직임 보상 예측이 이하 고려될 것이다.
현재 프레임의 매크로블록에 대한 예측을 형성하는 제1 단계는 움직임 추정 블록(130)에 의해 수행된다. 움직임 추정 블록(130)은 부호화될 프레임의 현재 매크로블록을 형성하는 휘도 및 크로미넌스 값들의 블록들을 라인(128)을 통해 수신한다. 그 다음 현재 매크로블록과 가장 잘 대응하는 참조 프레임에서의 영역을 식별하기 위하여 블록 매칭 동작을 수행한다. 블록 매칭 동작을 수행하기 위하여, 움직임 추정 블록(130)은 프레임 저장부(120)에 저장된 참조 프레임 데이터를 라인(127)을 통해 액세스한다. 보다 상세하게는, 움직임 추정 블록(130)은 조사 중인 매크로블록 및 프레임 저장부(120)에 저장된 참조 프레임으로부터의 픽셀들의 후보 최선 매칭 영역들간의 픽셀 값들간의 차이를 나타내는 차이 값들(예를 들어 절대 차이의 합들)을 계산함으로써 블록-매칭을 수행한다. 참조 프레임의 미리 정해진 검색 영역내에서 모든 가능한 오프셋으로 후보 영역들에 대한 상이한 값이 생성되고 움직임 추정 블록(130)은 가장 작은 계산된 차이 값을 결정한다. 가장 작은 차 이 값을 나타내는 후보 영역이 최선 매칭 영역으로 선택된다. 현재 매크로블록 및 참조 프레임에서 식별된 최선 매칭 영역간의 오프셋은 당해 매크로블록에 대한 "움직임 벡터"를 정의한다. 움직임 벡터는 전형적으로 한쌍의 수들을 포함한다. 하나의 수는 현재 매크로블록 및 참조 프레임의 최선 매칭 영역간의 수평(Δx)을 기술하고 다른 하나의 수는 수직 변위(Δy)를 나타낸다.
일단 움직임 예측 블록(130)이 매크로블록에 대한 움직임 벡터를 생성하면, 그것은 움직임 벡터를 움직임 필드 부호화 블록(140)으로 출력한다. 움직임 필드 부호화 블록(140)은 한 세트의 기본 함수들 및 움직임 계수들을 포함하는 움직임 모델을 사용해서 움직임 예측 블록(130)으로부터 수신된 움직임 벡터를 근사화한다. 더욱 상세하게는 움직임 필드 부호화 블록(140)은 기본 함수들에 의해 승산될 때 상기 움직임 벡터의 근사치를 형성하는 한 세트의 움직임 계수값들로서 움직임 벡터를 표현한다. 전형적으로, 단지 2개의 움직임 계수들 및 기본 함수들을 가지는 번역 움직임 모델(translational motion model)이 사용되지만, 더욱 복합한 모델들도 또한 사용될 수 있다.
상기 움직임 계수들은 움직임 필드 부호화 블록(140)으로부터 움직임 보상 예측 블록(150)으로 전달된다. 또한, 움직임 보상 예측 블록(150)은 프레임 저장부(120)로부터 움직임 예측 블록(130)에 의해 식별된 픽셀값들의 최적-매칭 영역을 수신한다. 기준 프레임으로부터의 픽셀들의 최적-매칭 영역의 픽셀값들 및 움직임 필드 부호화 블록(140)에 의해 생성된 움직임 벡터의 근사화 표현을 사용해서, 움직임 보상 예측 블록(150)은 현재 매크로블록의 각 블록에 대한 예측된 픽셀값들의 집합을 생성한다. 예측된 픽셀값의 각 블록은 결합기(116)로 전달되며, 여기서 예측된 픽셀값들은 현재 매크로블록의 대응하는 블록에서의 실제(입력) 픽셀값들로부터 감산된다. 이러한 방식으로, 매크로블록에 대한 한 세트의 예측 오차 블록들이 얻어진다.
도 2에서 도시된 비디오 복호기(200)의 동작이 이제부터 기술될 것이다. 상기 복호기(200)는 부호기(100)로부터 부호화된 비디오 비트 스트림(135)을 수신하고 대응하는 부분들로 역다중화하는 비디오 다중화 복호기(270), 역양자화기(210), 역DCT변환기(220), 움직임 보상 예측 블록(240), 프레임 저장부(250), 결합기(230 ), 제어 관리자(260), 및 출력부(280)를 포함한다.
제어 관리자(260)는 INTRA 또는 INTER 부호화 프레임(INTRA 또는 INTER-coded frame)이 복호화되고 있는지에 응답하여 복호기(200)의 동작을 제어한다. 복호기로 하여금 복호화 모드들간에 스위칭되도록 하는 INTRA/INTER 트리거 제어 신호는 예를 들면 부호기로부터 수신된 각각의 압축된 비디오 프레임과 관련된 픽처 형태 정보로부터 유도된다. INTRA/INTER 트리거 제어 신호는 비디오 다중화 복호기(270)에 의해 부호화된 비디오 비트 스트림으로부터 추출되며, 제어 라인(215)을 통해 제어 관리자(260)로 전달된다.
INTRA 부호화 프레임의 복호화는 매크로블록 기반으로 수행되며, 실질적으로 각 매크로블록은 이와 관련된 부호화된 정보가 비디오 비트스트림(135)내에서 수신되자마자 복호화된다. 비디오 멀티플렉스 복호기(270)는 문제된 매크로블록에 관한 가능한 제어 정보로부터 상기 매크로블록의 블록들에 대한 부호화된 정보를 분리한 다. INTRA 부호화 매크로블록의 각 블록에 대한 부호화된 정보는 상기 블록에 대하여 영이 아닌 양자화된 DCT 계수들에 대한 엔트로피 부호화된 레벨 및 런(level and run)값들을 나타내는 가변 길이 코드워드들을 포함한다. 비디오 다중화 복호기(270)는 부호기(100)에서 사용된 부호화 방법에 대응하는 가변 길이 복호화 방법을 사용해서 가변 길이 코드워드들을 복호화하며, 이에 의해 상기 레벨 및 런값들을 회복한다. 다음에, 비디오 다중화 복호기(270)는 매크로블록의 각 블록에 대한 양자화된 변환 계수값들의 집합을 구성하여 역양자화기(210)로 전달한다. 상기 매크로블록에 관한 어떠한 제어 정보도 적절한 복호화 방법을 사용해서 비디오 멀티플렉스 복호기(270)에서 복호화되고 제어 관리자(260)로 전달된다. 특히, 변환 계수들에 적용되는 양자화 레벨에 관한 정보는 비디오 다중화 복호기(270)에 의해 부호화된 비트 스트림으로부터 추출되며, 제어 라인(217)을 통해 제어 관리자(260)로 제공된다. 다음에, 제어 관리자는 이러한 정보를 제어 라인(217)을 통해 역양자화기(210)로 전달한다. 역양자화기(210)는 제어 정보에 따라 매크로블록의 각 블록에 대한 양자화된 DCT 계수들을 역양자화하고 역양자화된 DCT 계수들을 역DCT변환기(220)로 제공한다.
역DCT변환기(220)는 재구성된 픽셀값들을 포함하는 이미지 정보의 복호화된 블록을 형성하기 위해 매클로블록의 각 블록에 대해 역양자화된 DCT 계수들을 기초로 역DCT변환을 수행한다. 매크로블록의 각 블록에 대한 재구성된 픽셀값들은 결합기(230)를 통해 복호기의 비디오 출력부(280)로 전달되며, 여기서 상기 재구성된 픽셀값들은 디스플레이 장치(미도시)로 제공될 수 있다. 또한, 각 블록에 재구성된 픽셀값들은 프레임 저장부(250)에 저장된다. 움직임 보상 예측은 INTRA 부호화된 매크로블록들의 부호화/복호화에서 사용되지 않기 때문에, 제어 관리자(260)는 픽셀값들의 각 블록을 비디오 출력부(280) 또는 프레임 저장부(250)로 전달하도록 결합자(230)를 제어한다. INTRA 부호화 프레임의 이후의 매크로블록들이 복호화되고 저장됨에 따라, 복호화된 프레임은 점진적으로 프레임 저장부(250)에 집합되고, 따라서 이후에 수신된 INTER 부호화 프레임들의 복호화된 관련하여 움직임 보상 예측을 위한 기준 프레임으로서의 용도로 사용가능하게 된다.
또한, INTER 부호화 프레임들은 매크로블록별로 복호화되며, INTER 부호화 프레임과 관련된 부호화된 정보가 비트스트림(135)에서 수신되면 각 INTER 부호화 매크로블록은 실질적으로 복호화된다. 비디오 다중화 복호기(270)는 문제된 매크로블록에 관한 가능한 제어 정보 및 부호화된 움직임 벡터 정보로부터 INTER 부호화 매크로블록의 각 블록에 대한 부호화된 예측 오차 정보를 분리한다. 이후에 기술되는 바와 같이, 매크로블록의 각 블록에 대한 부호화된 예측 오차 정보는 문제된 예측 오차 블록의 영이 아닌 양자화된 변환 계수들에 대한 인트로피 부호화된 레벨 및 런값들을 나타내는 가변 길이 코드워드들을 포함한다. 비디오 다중화 복호기(270)는 부호기(100)에서 사용된 부호화 방법에 대응하는 가변 길이 복호화 방법을 사용해서 가변 길이 코드워드들을 복호화하며, 이로써 레벨 및 런값들을 회복한다. 다음에, 비디오 다중화 복호기(270)는 각 예측 오차 블록에 대한 양자화된 변한 계수값들의 집합을 재구성하고, 그것들을 역양자화기(210)로 전달한다. 또한, INTER 부호화 매크로블록에 관한 제어 정보는 적절한 복호화 방법을 사용해서 비디 오 다중화 복호기(270)에서 복호화된다. 예측 오차 블록들의 변환 계수들에 적용되는 양자화 레벨에 관한 정보는 부호화된 비트 스트림으로부터 추출되며, 제어 라인(217)을 통해 제어 관리자(260)로 제공된다. 다음에, 제어 관리자는 이러한 정보를 제어 라인(218)을 통해 역양자화기(210)로 전달한다. 역양자화기(210)는 제어 정보에 따라 매크로블록의 각 블록에 대한 예측 오차 정보를 나타내는 양자화된 DCT 계수들을 역양자화하고, 방금 역양자화된 DCT 계수들을 역DCT변환기(220)로 제공한다. 각 블록에 대한 예측 오차 정보를 나타내는 역양자화된 DCT 계수들은 다음에 역DCT변환기(220)에서 역변환되어 매크로블록의 각 블록에 대한 재구성된 예측 오차 정보값들의 집합을 생성한다.
매크로블록과 관련된 부호화된 움직임 벡터 정보는 비디오 다중화 복호기(270)에 의해 부호화된 비디오 비트 스트림으로부터 추출되어 복호화된다. 그렇게 얻어진 복호화된 움직임 벡터 정보는 제어 라인(225)을 통해 움직임 보상 예측 블록(240)으로 전달되며, 움직임 보상 예측 블록(240)은 부호기(100)에서 INTER 부호화 매크로블록을 부호화하기 위해 사용되는 것과 같은 움직임 모델을 사용해서 상기 매크로블록에 대한 움직임 벡터를 재구성한다. 상기 재구성된 움직임 벡터는 부호기의 움직임 예측 블록(130)에 의해 원시적으로 결정된 움직임 벡터를 근사화한다. 복호기의 움직임 보상 예측 블록(240)은 프레임 저장부(250)에 저장된 예측 기준 프레임내의 재구성된 픽셀들의 영역의 위치를 식별하기 위해 상기 재구성된 움직임 벡터를 사용한다. 상기 기준 프레임은 예를 들면, 이전에 복호화된 INTRA 부호화 프레임이거나 또는 이전에 복호화된 INTER 부호화 프레임일 수 있다. 양자 의 경우에, 재구성된 움직임 벡터에 의해 나타난 픽셀들의 영역은 문제된 매크로블록의 예측을 형성하기 위해 사용된다. 더욱 상세하게는, 움직임 보상 예측 블록(240)은 움직임 벡터에 의해 식별된 픽셀들의 영역으로부터 대응하는 픽셀값들을 카피함으로써, 상기 매크로블록의 각 블록에 대한 픽셀값들의 집합을 형성한다. 상기 예측, 즉 상기 기준 프레임으로부터 유도된 픽셀값들의 블록들은 움직임 보상 예측 블록(240)으로부터 결합기(230)로 전달되며, 결합기(230)에서 복호화된 예측 오차 정보와 결합된다. 실제적으로, 각 예측 블록의 픽셀값들은 역DCT변환기(220)에 의해 출력된 대응하는 재구성된 예측 오차값들에 가산된다. 이러한 방식으로, 매크로블록의 각 블록에 대한 재구성된 픽셀값들의 집합이 얻어진다. 재구성된 픽셀값들은 복호기의 비디오 출력부(280)로 출력되며, 또한 프레임 저장부(250)에 저장된다. INTER 부호화 프레임의 이후의 매크로블록들은 복호화되고 저장되며, 복호화된 프레임은 점진적으로 프레임 저장부(250)에 집합되고 따라서 다른 INTER 부호화 프레임들의 움직임 보상 예측을 위한 기준 프레임으로서의 용도를 위해 이용가능하게 된다.
위에서 설명된 바와 같이, 전형적인 비디오 부호화 시스템에서, 움직임 보상 예측은 매크로블록 기반으로 수행되며, 따라서 매크로블록은 움직임 정보와 결합될 수 있는 비디오 프레임 중 가장 작은 요소이다. 그러나, ISO/IEC MPEG(Motion Pictures Expert Group) 및 ITU-T VCEG(Video Coding Experts Group)의 JVT(Joint Video Team)에 의해 현재 개발되고 있는 비디오 부호화 권고는 움직임 정보가 매크로블록보다 작은 요소들과 결합되도록 한다. 다음의 기술에서, 그리고 텍스트의 나 머지 부분을 통해서, T.Weigland에 의한 문서 "Joint Model Number 1", Doc.JVT-A003, ISO/IEC MPEG 및 ITU-T VCEG의 JVT-A003, Jan. 2002에서 기술된 이러한 비디오 부호화 표준의 버전을 참조하며, 상기 문서는 그 전체로서 여기에 통합되어 있다. 간략화를 위해서, 상기 권고의 이러한 버전은 "JVT 코덱의 JM1(JM1 of the JVT codec)"으로 명명될 것이다.
JVT 코덱의 JM1에 따르면, 비디오 픽처들은 16 x 16 픽셀들의 매크로블록들로 나뉘어지며, 매크로블록 기반으로 부호화된다. 수행된 부호화는 도 1 및 2의 일반적인 비디오 부호기 및 복호기와 관련하여 위에서 기술된 기본적인 원리들을 따른다. 그러나, JM1에 따르면, INTER 부호화 매크로블록들의 움직임 보상 예측은 이전에 언급된 것과 다른 방식으로 수행된다. 더욱 상세하게는 매크로블록들 각각에는 비디오 시퀀스에서의 움직임 및 상기 매크로블록의 특징들에 의존하는 "부호화 모드"가 할당된다. 부호화 모드들 중 7개는 INTER 부호화될 매크로블록을 각각이 N x M 픽셀들을 포함하는 다수의 서브 블록들로 분할하고, 움직임 정보를, 전체로서 매크로블록과 결합시키지 않고, NxM 서브 블록들 각각에 결합시키는 것에 기반을 두고 있다. JVT 비디오 코덱의 JM1에 의해 제공된, 매크로블록을 N x M 서브 블록들로 분할하기 위한 가능한 스킴들 각각은 첨부된 도면들중 도 4에서 기술된다. 도면으로부터 알 수 있는 바와 같이, 가능한 분할은 16 x 16, 8 x 16, 16 x 8, 8 x 8, 4 x 8, 8 x 4, 및 4 x 4이다. 따라서, 만약 특정 매크로블록에 할당된 부호화 모드가 예를 들어 16 x 8이라면, 매크로블록은 각각의 크기가 16 x 8 픽셀들인 2개의 서브 블록들로 분할되고, 2개의 서브 블록들 모두에는 자신의 고유한 움직임 정 보가 제공된다. 부가하여, SKIP(또는 skip) 모드로 알려진 8번째 부호화 모드가 제공된다. 만약 이러한 모드가 매크로블록에 할당된다면, 이것은 상기 매크로블록이 움직임 보상 예측을 사용하지 않고 상기 기준 비디오 프레임으로부터 카피될 것이라는 것을 나타낸다.
주어진 매크로블록에 대한 부호화 모드의 선택에 관한 결정은 전형적으로 움직임 예측 과정의 부분으로서 만들어진다. 더욱 상세하게는, 도 1에서 기술되었지만, JVT 코덱의 JM1에 따른 다른 부호화 모드들의 사용을 허가하도록 구현되는 것과 같은 비디오 부호기에서, 움직임 예측 블록(130)에서 수행된 움직임 예측 과정은 매크로블록의 각각의 가능한 분할로부터 N x M 서브 블록들 그리고 스킵 모드에 대해서 반복된다. 아무런 움직임 검색이 요구되지 않기 때문에, 스킵 모드에 대한 움직임 예측은 매우 간단한 것이지만, 일정한 제로값 벡터가 이러한 모드에 대해 할당된다. 나머지 INTER 모드들에 대해서 상기 움직임은 전형적으로 상기 매크로블록의 내부에 있는 각 움직임 블록에 대한 블록 매칭 동작을 수행함으로써 예측된다. 이러한 동작들 이후에, 어떠한 코스트 함수를 최소화하는 모드가 상기 매크로블록에 대해서 선택된다. 전형적으로 상기 코스트 함수는 예측 오차를 매크로블록을 부호화하기 위해 필요한 다수의 예측된 비트들과 결합시키고, 따라서 각 부호화 모드의 상대적 효율을 측정한다.
JVT 코덱의 JM1에 따라 작동하는 비디오 부호기는 특정 부호화 모드를 INTER 부호화되는 각 매크로블록에 할당하기 때문에, 문제된 매크로블록에 관한 수신된 정보를 올바로 복호화하기 위해서 대응하는 비디오 복호기는 그러한 부호화 모드를 잘 알고 있어야 할 필요가 있다. 따라서, 각 매크로블록에 할당된 부호화 모드의 표시가 비디오 부호기로부터 비디오 복호기로 전송되는 비디오 비트 스트림내에 제공된다. 상기 부호화 모드들을 나타내기 위해 필요한 데이터 양을 최소화하기 위해서, 각 매크로블록에 대한 부호화 모드는 가변 길이 부호화를 사용해서 나타난다. 상기 부호화 모드들을 나타내는 코드워드들에는 통계적으로 가장 잘 일어날 것 같은 부호화 모드를 나타내기 위해 가장 짧은 코드워드가 사용되도록 할당된다. JVT 코덱의 JM1은 비디오 비트스트림의 모든 신택스 (데이터) 요소들을 나타내기 위해 소위 "만능 가변 길이 코드들(UVLC: Universal Variable Length Codes)"의 단일한 세트를 사용하고, 따라서 코드워드들의 이러한 세트는 INTER 부호화 매크로블록들에 대한 부호화 모드 정보를 나타내는 데 또한 사용된다. JM1에서 사용된 UVLC 코드워드들은 이하의 표 1에서 도시된 바와 같은 다음의 압축된 형태로 쓰여질 수 있으며, 여기서 Xn 항은 0 또는 1 값중 하나를 가진다.
Figure 112008074424643-pat00001
표 1 : JVT 코덱의 JM1에 따른 UVLC 코드워드들의 생성을 위한 스킴.
표 2는 표 1에서 제공된 스킴에 따라 생성된, 첫번째 16 UVLC 코드워드들을 제공한다.
Figure 112008074424643-pat00002
표 2 : 표 1에서 제공된 스킴에 따라 생성된 JM1의 첫번째 16 UVLC 코드워드들.
JVT 코덱의 JM1은 스킵 모드가 매크로블록에 대해 통계적으로 가장 유사한 부호화 모드라고 가정한다. 넌 스킵 모드(non-SKIP mode)를 가진 다음 매크로블록전의 스킵 모드 매크로블록들의 수는 위의 표 2를 사용하는 하나의 UVLC 코드워드에 의해 나타난다. 나머지 부호화 모드들은 이하의 표 3에서 도시된 바와 같은 UVLC 코드워드들에 의해 표현된다.
Figure 112008074424643-pat00003
표 3 : JM1의 매크로블록 부호화 모드들.
이전에 언급된 바와 같이, 위의 표내에 있는 N x M 모드들은 움직임 블록들의 크기를 나타낸다.
JVT 코덱의 JM1에서 채용된 접근 방법이 가지는 문제점은 스킵 모드가 항상 가장 있음직한 것이라는 가정이 유효하지 않다라는 것이다. 만약 비디오 시퀀스가 글로벌 움직임(패닝(panning), 주밍(zooming) 등)을 포함한다면, 스킵 모드는 사실상 결코 사용되지 않는다. 이러한 경우들에서, 압축 효율은 특히 낮은 비트율에서 심각하게 손상되는데, 왜냐하면 코덱은 높은 오버헤드 M매크로블록 부호화 모드들을 사용하지 않으면 안되기 때문이다.
글로벌 움직임이 존재하는 경우에 움직임 보상 예측의 부호화 효율을 개선하기 위한 2개의 종래 기술 해결책이 알려져 있다. 해결책중 첫번째는 "글로벌 움직임 보상"으로 알려진 것이며, 예를 들면 ISO MPEG-4 및 ITU-T H.263+ 비디오 부호화 표준들에서 사용된다. 두번째 방법은 "글로벌 움직임 벡터 부호화"이라는 제목으로 Shijun Sn 및 Shawmin Lei, Doc. VCEG-020, ITU-T Video Coding Experts Group(VCEG) Meeting, Pattaya, Thailand 4-7 December 2001에 기술되어 있으며, 여기에 참조로서 포함되어 있다. 이러한 2개의 방법들의 기본적 개념들이 이제 간략하게 기술될 것이다.
1998년 2월, 국제 통신 연합 ITU-T 권고 H.263 "낮은 비트율 통신을 위한 비디오 부호화"의 "픽처 리샘플링 기준(Reference Picture Resampling)" 부록 P에서 기술된 바와 같이, 글로벌 움직임 보상하의 개념은 글로벌 움직임의 효과들을 소거하는 움직임 보상을 위한 기준 프레임을 생성하는 것이다. 이것을 하기 위해, 기준 프레임을 더욱 유용한 형태로 왜곡되도록, 복잡한 동작들이 복호기에서 요구된다. 더욱이, 글로벌 움직임 보상을 위한 새로운 기준 프레임들의 설립을 유도하기 위해 부가적인 정보가 복호기로 전송되어야 한다. 더욱 상세하게는, H.263 비디오 부호화 표준에서 채용되는 글로벌 움직임 보상 스킴은 현재 픽처의 움직임 보상 예측에서의 사용을 위한 왜곡된 버전의 기준 프레임(warped version of the reference frame)을 생성하기 위해 리샘플링 과정을 사용한다. 기준 프레임의 이러한 왜곡된 버전은 현재 픽처에 관하여 모양, 크기 및 위치에서 대안들을 포함할 수 있다. 리샘플링 과정은 현재 픽처의 4개의 코너들(corners) 및 기준 프레임의 대응하는 4개의 코너들간의 맵핑의 관점에서 정의된다. 현재 픽처의 휘도 성분이 수평 크기(H) 및 수직 크기(V)를 가진다고 가정하면, 상기 맵핑은 4개의 개념적인 움직임 벡터들
Figure 112008074424643-pat00004
을 정의함으로써 수행되며, 각각의 개념적인 움직임 벡터는 기준 프레임의 대응하는 코너상으로 맵핑시키는 것과 같은 방식으로 현재 픽처의 4개의 코너들중 하나를 이동시키는 방법을 기술한다. 이러한 동작은 도 5에서 기술된다. 다음에 현재 픽처의 매크로블록에 대한 움직임 보상 예측은 왜곡된 기준 프레임에 관하여 블록 매칭을 사용하여 수행된다. 이것은 블록 매칭 과정을 복잡하게 하는데, 왜냐하면 블록 매칭 과정에서 사용된 왜곡된 기준 프레임의 각 픽셀값은 원시(왜곡되지 않은(non-warped)) 기준 프레임을 왜곡된 기준 프레임의 좌표축들로 맵핑시킴으로써 생성되어야 하기 때문이다. 이것은 연산 집적 동작(computationally intensive operation)인 쌍선형 보간(bilinear interplolation)을 사용해서 수행된다. 왜곡된 기준 프레임의 픽셀값들을 생성하기 위해 사용된 쌍선형 보간 과정의 더욱 상세한 점들에 대해서 H.263 비디오 부호화 표준의 부록 P를 참조하여야 한다.
위에서 언급된 문서 VCEG-020에서 기술된 글로벌 움직임 벡터 부호화은 글로벌 움직임 보상의 간략화된 버전이다. 기준 프레임은 있는 그대로 사용되지만, 부가 정보는 글로벌 움직임을 기술하기 위해 전송되며, 글로벌 움직임 벡터들이 사용될 때, 부가적인 매크로블록 모드들이 사용된다. 이러한 접근 방법은 방금 기술된 글로벌 움직임 보상 기술보다 덜 복잡하지만, 그와 관련된 부가적인 부호기 복잡성이 있다. 즉, 부호기는 글로벌 움직임 변수들을 찾아내기 위해서 여분의 움직임 보상 동작들을 수행해야 하며, 또한 최적의 것을 찾아내기 위해 더욱 많은 매크로블록 모드들을 평가할 필요가 있다. 더욱이, 전송되어야 할 여분의 글로벌 움직임 정보의 양은 작은 해상도의 비디오에 비해서 커진다.
이전 논의의 관점에서, 글로벌 움직임이 존재하는 경우에 디지털 비디오 시퀀스의 부호화에 관한 중요하고 해결되지 않은 번역(translation), 카메라의 패닝(panning)이나 주밍(zooming)과 같은 기술적 문제점이 존재한다는 점이 평가되어야 한다. 특히, 3개의 이전에 언급된 종래 기술 비디오 부호화 해결책들 각각은 어느 정도의 기술적 단점들을 가지고 있다. 예를 들면, JVT 코덱의 JM1은 비디오 시퀀스들에서의 글로벌 움직임을 고려하기 위한 특별한 준비를 하고 있지 않다. 따라서, 그러한 움직임이 제공되면, 그것은 비디오 부호기로 하여금 명시적으로 상기 움직임을 모델링하는 매크로블록 부호화 모드들을 선택하도록 한다. 글로벌 움직임 성분이 모든 INTER 부호화 매크로블록(또는 서브 블록)에서 부호화될 때, 이것은 부호화 효율에 있어서 상당한 감쇠를 야기한다. (H.263 비디오 부호화 표준의 부록 P에 의해 제공된) 글로벌 움직임 보상 기술은 움직임 보상 예측에서 사용된 기준 프레임들을 굽힘으로써 글로벌 움직임을 고려하고, 따라서 글로벌 움직임을 부호화하기 위해 특별한 조치들이 취해지지 않는 시스템과 비교할 때 개선된 부호화 효율을 제공한다. 그러나, 왜곡 과정은 계산적으로 복잡하며, 비디오 시퀀스의 올바른 복호화를 위해 부가 정보가 부호화된 비디오 비트 스트림내에서 전송되어야 한다. 비록 글로벌 움직임 벡터 부호화의 관련된 기술이 글로벌 움직임 보상에 비해 계산이 덜 요구되지만, 그것은 부호기 복잡성에서의 어떠한 증가를 포함하며, 비디오 데이터의 올바른 복호화를 가능하게 하기 위해 부가 정보는 여전히 비디오 비트 스트림내에서 전송되어야 한다.
따라서, 본 발명의 한가지 목적은 로컬 움직임 보상의 단순함과 글로벌 움직임 보상의 부호화 효율을 조합함으로써, 상당히 개선된 압축 성능 및 복잡성에서 사소한 증가를 가진 비디오 부호화 시스템을 만드는 것이다.
본 발명의 목적은 종래 기술에 의한 비디오 부호화 시스템의 글로벌 움직임의 부호화에 관련된 문제점들을 극복하거나, 적어도 상당 부분 약화시키기 위한 것이다.
종래 기술에 의한 비디오 부호화 시스템의 글로벌 움직임의 부호화에 관련된 문제점들을 극복하거나, 적어도 상당 부분 약화시키기 위하여, 본 발명은 JVT 코덱의 JM1에서 사용되는 스킵 모드(skip mode) 개념을 재정의하는데 기반한다. 본 발명에 따른 방법은 글로벌 움직임(즉, 비디오 프레임의 전 영역에 영향을 미치는 움직임)이 존재할 경우에 부호화 효율을 향상시키는 것은 물론, 효율적인 방법으로 지역 움직임(regional motion)도 허용한다.
본 발명에 따르면, 스킵 모드 개념은, 스킵 모드에 할당된 매크로블록(macroblock)이 영 움직임 벡터(zero motion vector)(비활성 움직임 벡터)에 관련되거나, 영이 아닌 움직임 벡터(활성 움직임 벡터)에 관련되도록 하는 방법으로 재정의된다. 여기서, 스킵 모드가 영 움직임 벡터에 관련될 경우, 종래 기술에 의한 스킵 모드 매크로블록이 처리되는 방법과 동일한 방법으로 처리되고 기준 프레임으로부터 직접적으로 카피(copy)된다. 매크로블록이 영 움직임 벡터에 관련되어야 하는지 또는 영이 아닌 움직임 벡터에 관련되어야 하는지에 대한 결정은 부호화되어야 할 매크로블록 주변 영역(surrounding region) 내의 다른 매크로블록들 또 는 하부-블록들의 움직임을 분석함으로써 이루어진다. 만일 주변 영역에 특정한 움직임이 나타난다면, 그 움직임을 표시하는 영이 아닌 움직임 벡터가 발생되어 현재 매크로블록과 관련된다. 특히, 주변 매크로블록들 또는 하부-블록들 내의 움직임의 연속성, 속도 및 편차(deviation)가 연구될 수 있다. 예를 들어, 만일 주변 영역 내의 움직임에 특정 레벨의 연속성, 특정 공통 속도(common velocity) 또는 특정 형태의 발산성(divergence)이 나타난다면, 그 움직임을 표시하는 움직임 벡터가 부호화되어야 할 현 매크로블록에 할당될 수 있다. 반면에, 만일 현 매크로블록을 에워싸는 지역이 이러한 연속성, 공통 속도 또는 발산성을 나타내지 않고 거의 의미 없는 움직임만을 포함하고 있다면, 부호화되어야 할 매크로블록은 영 움직임 벡터에 할당되어, 이것이 종래 기술에 의한 스킵 모드 매크로블록인 것처럼, 기준 프레임으로부터 직접적으로 카피되도록 야기한다. 본 발명에서는, 이러한 방법으로 스킵 모드 매크로블록들이 자신을 에워싸는 영역 내의 움직임에 적응할 수 있으므로, 글로벌 또는 지역 움직임이 효율적인 방법으로 고려될 수 있도록 허용한다.
본 발명의 바람직한 일 실시예에서, 움직임이 분석되는 주변 매크로블록 또는 하부-블록들은, 부호화되어야 할 매크로블록에 인접하여 사전에 부호화된 매크로블록들이다. 이것은, 매크로블록을 에워싸는 영역에 관련된 움직임 정보가 현 매크로블록이 부호화(복호화)되는 동안 부호기(복호기) 내에서 사용가능하다는 것 및 현 매크로블록에 할당되어야 할 움직임 벡터를 결정하는데 직접 사용될 수 있다는 것을 보장한다. 이러한 접근법은, 그 인코너 내에서 수행된 주위 영역의 움직임 분석 동작이 복호기에서도 정확히 중복되도록 허용한다. 또한, 이러한 특징은 본 발 명에 따르면, 글로벌 또는 지역 움직임을 모델링하기 위하여 추가적인 정보를 복호기에 전송해야할 필요가 없다는 것을 의미한다.
후술되는 바와 같은 본 발명의 상세한 설명으로부터 명백히 이해되는 바와 같이, 본 발명에서 제안한 바와 같이 스킵 모드 개념의 재정의는 전술된 바와 같은 종래 기술의 비디오 부호화 방법과 비교할 때 매우 큰 기술적 이점을 가진다. 특히, 본 발명에 따른 방법은, 고려되어야 할 비디오 시퀀스 내의 글로벌 움직임 및 지역 움직임을 허용하는데, 기준 프레임을 복잡하게 왜곡하거나 다른 어떤 계산을 많이 요구하는 동작을 이용할 필요가 없는 효율적인 방법으로 허용한다. 더 나아가, 전술된 바와 같은 글로벌 움직임 보상 및 글로벌 움직임 벡터 부호화 방법에서와는 달리, 비디오 데이터를 정확히 복호화하도록 허용하기 위하여 비디오 비트 스트림 형태로 송신되어야 하는 추가적인 정보가 없다. 또한, 본 발명에 따른 방법을 스킵 모드 매크로블록의 개념을 채택하는 현존하는 비디오 부호화 시스템에 내장하는데 요구되는 최소한의 수정이 요구된다.
본 발명의 이러한 바와 같은 특징 및 다른 특징들, 측면들, 및 장점 및 실시예는 첨부된 도면과 관련된 후속하는 상세한 설명을 참조하면 명백해 질 것이다. 그러나, 이러한 도면들은 예시적인 의미로 작성된 것일 뿐이며, 본 발명의 기술적 사상의 정의를 한정하고 있지 않는 점을 분명히 이해해야 한다.
본 발명은 JVT 코덱의 JM1에서 사용되는 스킵 모드(skip mode) 개념을 재정의하는데 기초하여 종래 기술에 의한 비디오 부호화 시스템의 글로벌 움직임의 부 호화에 관련된 문제점들을 극복하거나, 적어도 상당 부분 약화시킨다.
본 발명은 또한 SKIP 모드에 추가해서 또는 SKIP 모드 대신에 다른 매크로블록 모드들에 대한 움직임 보상 예측을 생성하는 데 사용될 수 있다. 이는 또한 매크로 블록 구조로 국한되는 것이 아니라 임의의 세그먼트화 기반 비디오 부호화 시스템에서도 사용될 수 있다.
본 발명의 예시적인 실시예들이 도 6 내지 도 10을 참조하여 상세히 설명될 것이다.
본 발명에 따르면, 스킵 (skip 또는 SKIP) 모드 매크로블록들은 비디오 부호화 시스템 내에서 이미지 세그먼트를 에워싸는 움직임에 적응한다. 만일 부호화/복호화될 매크로블록 주변에서 활성 움직임이 검출되면, 그 움직임에 따르는 움직임 매개변수들이 발생되고 그 매크로블록의 움직임은 보상된다. 이러한 방법으로, 부호기로부터 복호기로 부가적인 정보가 전송되어야 할 필요가 없다.
도 6은 본 발명의 일 실시예에 따른 비디오 부호기(600)의 개념적인 블록도이다. 디지털 비디오 시퀀스의 프레임들을 부호화할 때, 부호기(600)는 도 1에 도시된 종래 기술에 의한 비디오 부호기와 관련하여 사전에 묘사된 방법과 유사한 방식으로 동작하여 인트라-부호화(INTRA-coded)되고 인터-부호화(INTER-coded)된 압축 비디오 프레임들을 발생한다. 도 6에 도시된 바와 같은 비디오 부호기의 구조는 도 1에 도시된 바와 같은 종래 기술에 의한 비디오 부호기와 실질적으로 동일한 데, 본 발명에 따른 비디오 부호화 방법을 구현하기 적합한 움직임 예측부(motion estimation part)에 적합한 수정이 가해졌다. 비디오 부호기 중에서 전술된 바와 같은 종래 기술에 의한 비디오 부호기에서 설명된 구성 요소와 동일한 구성 성분은 동일한 참조부호로 식별될 것이다.
본 발명은 인터-부호화된 포맷의 비디오 프레임들을 부호화하는데 관련되고, 특히 인터 부호화 프로세스의 일부분으로서 실행되는 움직임 보상 예측의 자세한 사항에 관련되기 때문에, 인트라-부호화 모드에의 부호기(600)의 설명은 생략될 것이며, 이에 상응하는 섹션들은 인터-부호화 모드에서의 부호기에 의하여 수행되는 다양한 동작에 집중할 것이다.
인터-부호화 모드에서, 비디오 부호기의 제어 관리부(160)는 스위치(102)를 동작시켜 라인(117)으로부터 그 입력을 수신하는데, 이 입력은 결합기(116)의 출력을 포함한다. 결합기(116)는 입력(101)으로부터 매크로블록 단위로 비디오 입력 신호를 수신한다. 결합기(116)가 매크로블록을 구성하는 휘도 및 크로미넌스 값의 블록을 수신하면, 이것은 문제가 되는 블록 및 그 예측치 간의 차분치를 나타내며 움직임 보상된 예측 블록(650) 내에서 생성되는 예측 오차 정보의 상응하는 블록을 형성한다.
매크로블록의 각 블록의 예측 오차 정보는 DCT 변환 블록(104)으로 전달되고, 이것은 2차원 이산 코사인 변환을 예측 오차 값의 각 블록에 수행하여 각 블록을 위한 DCT 변환 계수들의 2차원 어레이를 생성한다. 이 결과가 양자화기(106)로 전달되고, 그것들은 양자화 매개변수(QP)를 이용하여 양자화된다. 양자화 매개변수(QP)를 선택하는 동작은 제어 라인(115)을 통하여 제어 관리부(160)에 의하여 제 어된다.
그러면, 매크로블록의 각 블록의 예측 오차 정보를 나타내는 양자화된 DCT 계수들은 양자화기(106)로부터 비디오 다중화 부호기(170)에 전달되는 데, 이때 라인(125)을 통해 전달된다. 비디오 다중화 부호기(170)는 각 예측 오차 블록을 위한 변환 계수들을 지그재그 스캐닝 절차를 이용하여 정렬하고, 0이 아닌 값을 가지는 각 양자화된 계수들을 런-레벨(run-level) 쌍으로 표시하고, 이러한 런-레벨(run-level) 쌍을 엔트로피 부호화를 이용하여 압축한다. 비디오 다중화 부호기(170)는 또한 라인(126)을 통하여 움직임 필드 부호화 블록(640)으로부터 움직임 벡터 정보를 수신하고, 제어 관리부(160)로부터 제어 정보를 수신한다. 이것은 움직임 벡터 정보 및 제어 정보를 엔트로피 부호화하고 부호화된 이미지 정보(135)의 단일 비트 스트림을 형성하는데, 이것은 엔트로피 부호화된 움직임 벡터, 예측 오차 정보 및 제어 정보를 포함한다.
매크로블록의 각 블록을 위한 예측 오차 정보를 표시하는 양자화된 DCT 계수는 또한 양자화기(106)로부터 역양자화기(108)로 전달된다. 여기서 계수들은 역 양자화되고 그 결과 얻어지는 역양자화된 DCT 계수들의 블록들은 역 DCT 변환 블록(110)으로 적용되는데, 여기서 그들은 역 DCT 변환을 거쳐 예측 오차값들의 국부적으로 복호화된 블록을 생성한다. 그러면, 예측 오차 값들의 국부적으로 복호화된 블록들은 결합기(112)에 입력된다. 인터-부호화 모드에서, 스위치(114)는 결합기(112) 역시 매크로블록의 각 블록을 위한 예측된 픽셀 값으로서, 움직임-보상 예측 블록(650)에 의하여 발생되는 픽셀 값들을 수신할 수 있도록 설정된다. 결합 기(112)는 예측 오차 값들의 국부적으로 복호화된 블록들 각각을, 예측된 픽셀 값들의 상응하는 블록들과 결합시켜 복원된 이미지 블록들을 생성하고, 그것들을 프레임 저장부(120)에 저장한다.
비디오 신호의 후속 매크로블록들이 비디오원으로부터 수신되며 블록들(104, 106,108,110,112)내에서 전술된 바와 같은 부호화 및 복호화 단계를 거치게 되기 때문에, 프레임의 복호화된 버전이 프레임 저장부(120) 내에 축적된다. 프레임의 최후 매크로블록이 처리되면, 프레임 저장부(120)는 완전히 복호화된 프레임을 포함하며, 이 프레임은 인터-부호화된 포맷으로 추후 수신되는 비디오 프레임을 부호화하는 데에서 사용되는 움직임 예측 기준 프레임으로서 사용될 수 있다.
비디오 부호기(600)에 의하여 수행되는 움직임 보상된 예상 동작이 자세히 서술된다.
부호기(600)는 전술된 바와 같은 JVT 비디오 코덱에서와 유사한 방식으로 움직임-보상 예측을 수행한다. 다시 말하면, 부호기(600)는 매크로블록의 특성 및 부호화되는 비디오 시퀀스에서의 움직임의 특징에 따라서 각 인터-부호화된 매크로블록에 부호화 모드를 할당하도록 적응된다. 어떤 부호화 모드를 특정 매크로블록에 할당해야 하는지 검사할 때, 움직임 예측 블록(630)은 각 부호화 모드마다 순서대로 움직임 예측 동작을 수행한다. 움직임 예측 블록(630)은 부호화될 매크로블록을 구성하는 휘도 및 크로미넌스 값들의 블록을 수신하고 이들을 라인(128)을 통하여 움직임 예측에 사용한다(도 6 참조). 그러면, 이것은 가능한 부호화 모드들 중에서 한 개씩을 순서대로 선택하고, 기준 프레임에 있는 매크로블록에게 최적 정합되는 모드를 식별하기 위하여 움직임 예측을 수행하는데 이 경우 부호화될 매크로블록의 선택된 부호화 모드 및 픽셀 값들에 기반하여 수행한다. (최고로 정합되는 방법은, 부호화 모드에 따라 하나 또는 그 이상의 최적 정합되는 영역을 포함할 것이다). 최적 정합의 각각은 전체 비용 값에 관련되는데, 예를 들면, 관찰 대상인 매크로블록 내의 픽셀 값들 및 기준 프레임 내부의 최적 정합 지역 간의 절대 차분치의 합의 선형 조합 및 그 모드를 부호화하고 움직임 벡터를 나타내는데 요구되는 비트수의 숫자에 관련될 수 있다. 각 부호화 모드를 위한 최적 정합 성분이 결정되면, 움직임 예측 블록(630)은 그 부호화 모드를 현재의 매크로블록을 위한 부호화 모드로서, 최소 전 비용 값을 제공하는 부호화 모드로 선택한다.
본 발명에 따르면, 부호기(600)에 의하여 사용되는 부호화 모드들은 JVT 비디오 코덱의 JM1에 의하여 제공되는 부호화 모드에 상응하는 데(표 3 참조), 다만 스킵 모드가 재정의되어 글로벌 및 지역 움직임을 표시하도록 하는 것만이 상이하다. 특히, 문제가 되는 그 매크로블록 주위의 이미지 세그먼트들 내의 움직임의 특징에 좌우되어 0의 움직임 벡터(비활성 움직임 벡터) 또는 0이 아닌 움직임 벡터(활성)가 각 스킵 모드 매크로블록과 관련되도록 하는 방법으로 스킵 모드는 수정된다. 이제부터, 이러한 유형의 움직임 벡터는 '스킵 모드 움직임 벡터'라고 불린다.
각 부호화 모드를 위해서 순차적으로 수행되는 전술된 바와 같은 움직임 예측 프로세스의 일부로서 스킵 모드를 검사할 때, 우선 부호기는 0의 스킵 모드 움직임 벡터가 사용되어야 하는지, 또는 0이 아닌 스킵 모드 움직임 벡터가 사용되어 야 하는지를 결정한다. 이 동작을 수행하기 위하여, 부호기는 부호화될 매크로블록을 에워싸는 이미지 세그먼트들(예를 들어 매크로블록 및/또는 하부-블록들)의 움직임을 분석하도록 구현된다. 만일, 주위 지역에 특정 종류의 움직임이 있는 것으로 결정되면, 즉 예를 들어, 글로벌 움직임 또는 지역 움직임을 나타내는 특징을 가진다면, 부호기는 그 움직임을 표시하기 위해 0이 아닌 값을 가지는 스킵 모드 움직임 벡터를 발생한다. 반면에, 현 매크로블록을 에워싸는 지역에 글로벌 또는 지역적 움직임이 존재하지 않는 것으로 결정되면, 그렇지만, 중요하지 않은 미세한 레벨의 움직임이 존재한다면, 이것은 0값을 가지는 스킵 모드 움직임 벡터를 발생한다. 다시 말하면, 현 매크로블록 주위의 지역 내의 움직임이 글로벌 특성을 가지는 것으로 부호기가 결정하면, 스킵 모드 부호화은 이것을 고려하도록 적응된다(그 움직임을 나타내는 0이 아닌 값을 가지는 관련된 스킵 모드 움직임 벡터를 발생시킴으로써). 또는, 만일 이러한 움직임이 존재하지 않는다면, 0의 값을 가지는 움직임 벡터가 발생되어 본 발명에 의하여 수정된 스킵 모드가 종래 기술에 의한 방식과 같은 방식으로 동작하도록 야기하는데, 즉, 0의 값을 가지는 스킵 모드 움직임 벡터는 매크로블록이 기준 프레임으로부터 직접 카피되도록 야기한다.
가능한 부호화 모드들 각각에서 움직임 예측 동작을 수행한 후(이러한 모드에는 본 발명에 따라 수정된 바와 같은 스킵 모드를 포함한다), 부호기(600)는 어떤 부호화 모드가 최소의 전체 비용 값을 제시하는지 결정하고 그 모드를 문제가 되는 매크로블록을 위한 부호화 모드로서 선택한다. 최종적으로 선택된 부호화 모드의 표시자(indication), 예를 들면 표 3에 나타난 코드워드들의 집합 중에서 선 택된 가변장 코드워드(variable length codeword)와 같은 것들은 매크로블록에 관련되고 비디오 비트 스트림(635) 내에 포함된다. 이것은, 상응하는 복호기가 그 매크로블록을 위한 부호화 모드를 식별하고, 움직임-보상 예측의 정확한 형태를 이용하여 그 매크로블록을 정확하게 복원하도록 허용한다.
부호화될 매크로블록을 에워싸는 영역에서 움직임을 분석하여 0의 값을 가지는 스킵 모드 움직임 벡터나 0이 아닌 값을 가지는 스킵 모드 움직임 벡터 중 어느 것이 사용되어야 하는지 결정하는 것은 첨부된 도면들 중 도 8을 참조하여 더욱 상세히 설명될 것이다. 도 8은 스킵 모드 움직임 벡터의 발생에 관련된 움직임 예측 블록(630)의 기능적 구성 요소들을 예시한다. 이러한 구성 요소들은 움직임 정보 메모리(801), 에워싸는 움직임 분석 블록(802), 활성 움직임 매개변수 생성 블록(803) 및 0 움직임 매개변수 생성 블록(804)을 포함한다.
0의 값을 가지는 스킵 모드 움직임 벡터를 발생시켜야 할지, 0이 아닌 값을 가지는 스킵 모드 움직임 벡터를 발생시켜야 할 지에 대한 결정은 에워싸는 움직임 분석 블록(802)에 의하여 수행된다. 이러한 결정은 부호화될 매크로블록 주변의 소정 영역 내의 매크로블록들 또는 하부-블록들의 움직임을 소정의 분석 기법을 이용하여 분석 및 구분함으로써 이루어진다. 이러한 분석을 수행하기 위하여, 에워싸는 움직임 분석 블록(802)은 주변 영역 내의 매크로블록들 및/또는 하부-블록들에 관련된 움직임 정보를 움직임 정보 메모리(801)로부터 검색한다. 구현 실시예의 미세한 차이점 때문에, 에워싸는 움직임 분석 블록(802)은 주변 매크로블록들 또는 하부-블록들 내의 움직임의 연속성, 속도 또는 편차를 분석하도록 구현될 수 있다. 예를 들어, 만일 주변 지역 내의 움직임이 특정 레벨의 연속성, 특정 공통 속도(예를 들어 도 9에 도시된 바와 같이), 또는 특정 형태의 발산성(divergence)을 보인다면, 이것은 어떠한 형태의 글로벌 움직임 또는 지역 움직임이 존재한다는 것을 암시하는 것일 수 있다. 그 결과로서, 에워싸는 움직임 분석 블록(802)은 "활성 움직임(active motion)"이 주변 영역 내에 존재하고, 0이 아닌 값을 가지는 스킵 모드 움직임 벡터가 사용되어야 한다고 결정한다. 반면에, 만일 현 매크로블록 주변 영역에 이러한 연속성, 공통 속도, 또는 발산성이 보이지 않는다면, 또한 이 지역이 일반적으로 매우 적은 레벨의 움직임만을 보인다면, 에워싸는 움직임 분석 블록(802)은 "비활성화 움직임(non-active motion)"이 그 주변 지역에 존재하며, 그 결과로서 0의 값을 가지는 스킵 모드 움직임 벡터가 사용되어야 한다고 결정한다.
도 8에 도시된 바와 같이, 에워싸는 움직임 분석 블록이 "활성 움직임"이 주변 영역에 존재한다고 결정하면, 이것은 그 취지의 표시시자(indication)를 활성 움직임 매개변수 생성 블록(803)으로 전송하고, 이것은 그 주변 지역 내의 움직임을 나타내는 0이 아닌 값을 가지는 스킵 모드 움직임 벡터를 형성한다. 이러한 동작을 수행하기 위하여, 활성 움직임 매개변수 생성 블록(803)은 그 주변 매크로블록 및/또는 하부-블록들에 관련된 움직임 정보를 움직임 정보 메모리(801)로부터 검색한다. 또는, 이 정보는 에워싸는 움직임 분석 블록(802)에 의하여 활성 움직임 매개변수 발생 블록으로 전달될 수도 있다. 만일 에워싸는 움직임 분석 블록이 "비활성 움직임"이 주변 지역에 존재한다고 결정하면, 이것은 상응하는 표시자를 0 움직임 매개변수 생성 블록(804)으로 전달하고, 이 블록(804)이 0의 값을 가지는 스 킵 모드 움직임 벡터를 발생한다.
본 발명의 특히 바람직한 실시예에서, 에워싸는 움직임 분석 블록에 의하여 분석되는 매크로블록들 또는 하부-블록들의 주변 지역들은 이전에 부호화된 매크로블록들로서, 부호화될 매크로블록에 인접하는 매크로블록들을 포함한다(도 9 참조). 이러한 경우에, 부호기 내에서 수행되는, 주변 영역 내의 움직임의 분석 및 분류는 복호기에서 완벽하게 중복될 수 있다. 그러면, 이것은 본 발명에 따르면, 글로벌 움직임 또는 지역 움직임을 모델링하기 위하여 복호기로 추가적인 정보를 전송할 필요가 없다는 것을 의미한다.
본 발명의 다른 실시예에서, 이전에 부호화된 매크로블록들의 부호화 모드들은, 0의 값을 가지는 스킵 모드 움직임 벡터가 사용될지 0이 아닌 값을 가지는 스킵 모드 움직임 벡터가 사용될지 결정하는 과정에서 고려된다. 예를 들어, 만일 주변 움직임 분석 블록이 주변에 이웃하는 하나 또는 그 이상의 정적 매크로블록이 존재한다고 결정하면, 0의 값을 가지는 스킵 모드 움직임 벡터가 사용된다.
본 발명의 바람직한 제1 실시예에서, 에워싸는 움직임 분석 블록(802)은 다음과 같은 3가지 절차에 따라서, 매크로블록 주변 영역에 존재하는 움직임을 분류한다. 우선, 에워싸는 움직임 분석 블록은 부호화될 매크로블록 주위의 매크로블록들 또는 하부-블록들(즉, 부호화될 매크로블록 주위의 이전에 부호화된 매크로블록들로서, 도 9를 참조한다)을 위한 움직임 정보를 검색하고, 그 매크로블록을 위한 중간 움직임 벡터 예측을 생성한다. 예를 들어, 이러한 중간 움직임 벡터 예측은 JVT 비디오 코덱의 JM1에 따른 움직임 벡터 예측 방법에서 사용된 방법과 유사하게 형성된다(참고 문헌으로서, T. Weigland: "Joint Model Number 1", Doc. JVT-A003, Joint Video Team of ISO/IEC MPEG and ITU-T VCEG, Jan 2002를 참조한다). 그러면, 에워싸는 움직임 분석 블록은 결과로 얻어지는 움직임 벡터 성분들 중 어떤 것이 특정 문턱치(예를 들어 픽셀의 절반값)에 비해 큰 절대값을 가지는지를 결정한다. 만일 이러한 조건이 달성되면, 그 움직임은 "활성 움직임"으로 분류되며, 그렇지 않다면, 그 움직임은 "비활성 움직임"으로 분류된다. 최종적으로, 분류 결과에 따라서, 에워싸는 움직임 분석 블록(802)은 활성 움직임 매개변수 생성 블록(803) 또는 0 움직임 매개변수 생성 블록(804)으로 표시자를 전송하여, 적합한 스킵 모드 움직임 매개변수들을 생성하도록 한다.
본 발명의 바람직한 제1 실시예에 따라 에워싸는 움직임 분석 블록을 구현하면 특히 두 가지 이유에 의하여 장점을 가진다. 우선, JVT 코덱과 같은 전형적인 비디오 코덱에서는, 중간 예측기가 사각형 이미지 블록들의 움직임 블록을 예측하기 위하여 사용된다. 본 발명의 바람직한 제1 실시예에 따르면, 이러한 동일한 예측기가 에워싸는 움직임 분석 블록 및 활성 움직임 매개변수 발생 블록에서 사용됨으로써, 부호화될 매크로블록 주변의 지역 내의 움직임을 분석하고, 스킵 모드 매크로블록들을 위한 움직임 매개변수들을 생성한다. 이러한 방법으로, 본 발명은 비디오 코덱의 복잡성에 전체적으로 최소한의 영향만을 끼치면서 구현될 수 있다. 두 번째로, 에워싸는 움직임 분석 블록(802)이 중간 움직임 벡터를 생성 및 분석함으로써 주변 지역 내의 움직임을 분류하기 때문에, 활성 움직임 매개변수 생성 블록(803)은 단순히 에워싸는 움직임 분석 블록에서 생성된 그러한 중간 움직임 매개 변수들을 움직임 보상 블록으로 전달하기만 하면 된다. 이러한 이유로 인하여, 전체 장치의 복잡도가 감소되는 데, 그 이유는 추가적인 움직임 매개변수를 생성시킬 필요가 없기 때문이다.
본 발명의 바람직한 제2 실시예에서, 에워싸는 움직임 분석 블록은 부호화될 매크로블록 인근에 존재하는 움직임을 분석하고, 이 움직임을 "활성 움직임" 또는 "비활성 움직임"이라고 분류한다. "활성 움직임"일 경우에, 활성 움직임 매개변수 발생 블록이 활성화되고, "비활성 움직임"일 경우에는, 0 움직임 매개변수 생성 블록이 활성화된다. 이러한 실시예에서, "비활성 움직임" 범주로 분류하는 동작은 다음과 같은 두 가지 조건들 중 하나 또는 두 가지 모두가 참일 경우에 발생하며, 그렇지 않으면 그 움직임은 "활성 움직임"이라고 분류된다.
조건 1: 고려되는 매크로블록의 바로 상부의 매크로블록 또는 고려되는 매크로블록의 바로 좌측의 매크로블록을 사용할 수 없다(즉, 이것들은 픽처를 벗어난 것이며, 상이한 슬라이스(slice)에 속하는 것이다).
조건 2: 고려되는 매크로블록의 바로 상부의 매크로블록 또는 블록, 또는 고려되는 매크로블록의 바로 좌측의 매크로블록 또는 블록으로서 16 x 16 인터-부호화 모드를 위한 움직임 벡터 예측 동작에 사용된 매크로블록 또는 블록이 0의 움직임 벡터를 가지며 움직임 보상 동작에서 최후 픽쳐를 기준으로 사용한다.
본 발명의 일 실시예에 따른 비디오 복호기(700)의 동작이 도 7을 참조하여 설명될 것이다. 도 7에 예시된 비디오 복호기의 구조는 실질적으로 도 2에 도시된 바와 같은 종래 기술에 의한 비디오 복호기의 구조와 동일하며, 단지 움직임 예측 동작을 수행하는 구성 요소들에만 적합한 수정이 이루어졌을 뿐이다. 종래 기술에 의한 비디오 복호기의 기능 및 동작과 동일한 방식으로 동작하는 비디오 복호기의 모든 구성 성분들은 동일한 부재 번호로 식별된다. 또한, 도 7에 도시된 비디오 복호기는 도 6에 도시된 부호기에 상응하는 것이며, 따라서 부호기(600)에 의하여 송신된 비트 스트림(635)을 수신 및 복호화할 수 있음에 주의하여야 한다. 더 나아가, 본 발명이 인터-부호화 포맷의 비디오 프레임들의 복호화에 영향을 미치기 때문에, 인트라-부호화된 프레임의 복호화에 관련되어 복호기(700)에 의하여 수행되는 동작에 대해서는 설명이 생략된다.
인터-부호화된 프레임들은 매크로블록 단위로 복호화되는데, 인터-부호화된 매크로블록 각각은 실질적으로 자신에 관련되는 부호화된 정보가 비트 스트림(635) 내에서 수신되자 마자 실질적으로 복호화된다. 부호화 모드에 따라서, 인터-부호화된 매크로블록을 위한 비트 스트림에 포함된 압축된 비디오 데이터는 각 블록을 위한 가변 길이(VLC) 부호화 방식으로 부호화된 예측 오차 정보, 매크로블록(또는 하부-블록들)을 위한 움직임 벡터 정보, 및 문제가 되는 매크로블록을 부호화하는 데 사용된 부호화 모드의 표시자를 포함하는 부호화된 제어 정보의 조합을 포함할 수 있다. 만일 매크로블록이 스킵 모드에서 부호화된다면, 그 매크로블록에 관련된 예측 오차 정보 또는 움직임 벡터 정보는 그 비트 스트림에는 포함되지 않는다.
비디오 다중화 복호기(270)는 비디오 비트 스트림(635)을 수신하고, 그 매크로블록의 부호화 모드의 표시자를 포함하는 제어 정보를 현존하는 모든 부호화된 예측 오차 및/또는 움직임 벡터 정보로부터 분리한다.
전술된 바와 같이, 예측 오차 정보는 엔트로피 부호화된 레벨(level) 및 런(run) 값을 나타내는 가변 길이 코드워드로서 부호화된다. 만일 예측 오차 정보가 현재 매크로블록을 위하여 제공된다면, 비디오 다중화 부호기(270)는 부호기(600)에서 사용된 부호화 방법에 상응하는 복호화 방법을 이용하여, 가변 길이를 이용하는 가변 길이 코드워드를 복호화함으로써 레벨 및 런을 복구한다. 그러면, 이것은 각 예측 오차 블록을 위한 양자화된 DCT 계수값들의 어레이를 복원하고 복원된 값들을 그들이 양자화될 역양자화부(210)로 전달한다. 그러면, 역양자화된 DCT 계수들은 역 DCT 변환기(220)에서 역변환되어, 매크로블록의 각 블록을 위한 복원된 예측 오차 값들의 어레이를 제공한다.
매크로블록에 관련된 부호화 모드 표시자 및 부호화된 움직임 벡터 정보(존재한다면) 모두가 비디오 다중 복호기에서 복호화되고, 제어 라인(225)을 통하여 동작 보상된 예측 블록(740)으로 전달된다. 동작 보상된 예측 블록(740)은 부호화 모드 표시자 및 움직임 벡터 정보(존재한다면)를 이용하여 문제가 되는 매크로블록의 예측치를 형성한다. 특히, 동작 보상된 예측 블록(740)은, 상응하는 픽셀 값들을 기준 프레임 내의 영역(또는 영역들)의 픽셀들로부터 카피함으로써 매크로블록의 각 블록을 위한 픽셀 값들의 배열을 형성한다. 이러한 예측, 즉, 기준 프레임으로부터 유도되는 픽셀 값들의 블록은 동작 보상된 예측 블록(740)으로부터 결합기(230)로 전달되며, 결합기에서 이들은 복호화된 예측 오차 정보(존재한다면)와 결합된다. 이러한 방법으로 매크로블록의 각 블록을 위한 복원된 픽셀 값들의 어레이가 획득된다.
복원된 픽셀 값들은 복호기의 비디오 출력(280)으로 전달되고, 또한 프레임 저장부(250) 내에 저장된다. 결과적으로, 인터-부호화된 프레임의 후속 매크로블록들이 복호화되고 저장되는 것과 같이, 복호화된 프레임은 순차적으로 프레임 저장부(250)에 집합하고, 그러므로 다른 인터-부호화된 프레임들의 동작 보상된 예측을 위한 기준 프레임으로서 사용될 수 있게 된다.
본 발명에 따르면, 복호기(700)의 동작 보상된 예측 블록(740)은 동작 정보 메모리 블록(801), 에워싸는 움직임 분석 블록(802), 활성 움직임 매개변수 생성 블록(803) 및 0 움직임 매개변수 생성 블록(804)을 포함하는 데, 이것은 부호기(600)에 제공된 것들과 유사하다. 이러한 기능 블록들은 스킵 모드에서 부호화된 매크로블록이 0의 값을 가지는 스킵 모드 움직임 벡터와 관련되어야 할 지, 0이 아닌 값을 가지는 스킵 모드 움직임 벡터와 관련되어야 할 지를 결정하는 데 사용된다. 특히, 복호화될 매크로블록이 스킵 모드에서 부호화되었다면, 에워싸는 움직임 분석 블록(802)은 복호화되어야 할 매크로블록 주위의 소정 영역 내의 이전에 복호화된 매크로블록들 및/또는 하부-블록들의 움직임을 분석 및 분류하는데, 이 경우 부호기(600)에서 사용된 방법과 완전히 상응하는 방식으로 수행한다. 이러한 분석의 결과로서, 문제가 되는 매크로블록은 0의 값을 가지는 스킵 모드 움직임 벡터와 관련되거나 0이 아닌 값을 가지는 스킵 모드 움직임 벡터와 관련된다. 그러면, 이러한 움직임 벡터는 매크로블록의 예측치를 생성하는데 사용된다. 만일 그 매크로블록이 0의 값을 가지는 스킵 모드 움직임 벡터와 관련된다면, 이것은 기준 프레임의 상응하는 지역으로부터 픽셀 값들을 직접 카피함으로써 간단히 복구될 수 있다. 만일, 반대의 경우로서, 그 매크로블록이 0이 아닌 값을 가지는 스킵 모드 움직임 벡터와 관련된다면, 0이 아닌 값을 가지는 움직임 벡터에 의하여 표시된 영역의 픽셀 값들이 그 매크로블록의 픽셀 값들을 생성하는 데 사용된다.
여기서 이해하여야 할 점은 본 발명에 의해 제안된 방식으로 스킵 모드 개념을 수정하고 복호기에서 에워싸는 움직임 분석을 수행함으로써, 이같은 움직임에 관한 명시된 정보가 비디오 비트 스트림에서 제공될 필요 없이 비디오 시퀀스에서 글로벌 움직임을 고려할 수가 있다는 것이다.
지금부터 본 발명에 따라 동작하기에 적합할 수 있는 비디오 부호화 및 복호화 장치를 포함하는 단말기 장치가 설명될 것이다. 첨부 도면들 중 도 10에는 ITU-T 권고 H.324에 따라 구현되는 멀티미디어 단말기(80)가 예시되어 있다. 상기 단말기는 멀티미디어 송수신기 장치로서 간주될 수 있다. 이는 통신 네트워크를 통한 전송을 위해 멀티미디어 데이터 스트림들을 포획, 부호화 및 다중화시키는 요소들과 아울러, 수신된 멀티미디어 컨텐트를 수신, 역다중화, 복호화 및 표시하는 요소들을 포함한다. ITU-T 권고 H.324는 상기 단말기의 전체 동작을 정의하며 여러 구성 부품들의 동작을 제어하는 다른 권고들을 언급한다. 이같은 종류의 멀티미디어 단말기는 대화식 비디오 전화통신과 같은 실시간 용도들, 또는 예를 들면, 인터넷에서의 멀티미디어 컨텐트 서버로부터의 비디오 클립들의 검색 및/또는 스트리밍과 같은 비-실시간 용도들에 사용될 수 있다.
본 발명의 문맥에서 이해하여야 할 점은 도 10에 도시된 H.324 단말기가 본 발명의 방법을 적용하기에 적합한 다수의 변형적인 멀티미디어 단말기 구현예들 중 단지 하나일 뿐이라는 것이다. 또한 여기서 유념하여야 할 점은 단말기 장치의 위치 및 구현에 관한 다수의 변형예들이 존재한다는 것이다. 도 10에 예시된 바와 같이, 멀티미디어 단말기는 유사한 공중 전화 교환망(Public Switched Telephone Network; PSTN)과 같은 고정 회선 전화 네트워크에 접속된 통신 장치에 배치될 수 있다. 이 경우, 멀티미디어 단말기에는 ITU-T 권고 V.8, V.34 그리고 선택적으로는 V.8bis에 따른 모뎀(91)이 장착된다. 변형적으로는, 상기 멀티미디어 단말기가 외부 모뎀에 접속될 수 있다. 이러한 모뎀은 상기 PSTN을 통한 전송에 적합한 아날로그 형태로 상기 멀티미디어 단말기에 의해 생성되는 다중화된 디지털 데이터 및 제어 신호들을 변환시킬 수 있다. 이는 또한 상기 멀티미디어 단말기가 상기 PSTN으로부터 아날로그 형태로 데이터 및 제어 신호들을 수신할 수 있게 하며 상기 데이터 및 제어 신호들을 상기 단말기에 의해 적합한 방식으로 역다중화 및 처리될 수 있는 디지털 데이터 스트림으로 변환시킬 수 있게 한다.
H.324 멀티미디어 단말기는 또한 종합 정보 통신망(Integrated Services Digital Network; ISDN)과 같은 디지털 고정 회선 네트워크에 직접 접속될 수 있는 방식으로 구현될 수 있다. 이러한 경우에, 상기 모뎀(91)은 ISDN 사용자-네트워크 인터페이스로 교체된다. 도 10에서, 이러한 ISDN 사용자-네트워크 인터페이스는 선택 블록(92)으로 표현되어 있다.
H.324 멀티미디어 단말기들은 또한 이동 통신 용도들에 사용하기에 적합할 수 있다. 무선 통신 링크와 함께 사용될 경우, 상기 모뎀(91)은, 도 10에서 선택 블록(93)으로 표현되는 바와 같이, 임의의 적합한 무선 인터페이스로 교체될 수 있 다. 예를 들면, H.324/M 멀티미디어 단말기는 현재 2세대 GSM 이동 전화 네트워크, 또는 제안된 3세대 범용 이동 전화 시스템(Universal Mobile Telephone system; UMTS)과의 접속을 가능하게 하는 무선 송수신기를 포함할 수 있다.
여기서 유념해야 할 점은 양방향 통신, 즉 비디오 데이터의 전송 및 수신을 위해 설계된 멀티미디어 단말기들에 있어서, 본 발명에 따라 구현된 비디오 부호기 및 비디오 복호기 모두를 제공하는 것이 유리하다는 것이다. 이같은 부호기 및 복호기 쌍은 종종 "코덱(codec)"으로서 언급되는 단일 조합 기능 유닛으로서 구현된다.
지금부터 전형적인 H.324 멀티미디어 단말기가 도 10을 참조하여 보다 상세하게 설명될 것이다.
멀티미디어 단말기(80)는 "단말기 장치"로서 언급되는 다양한 요소들을 포함한다. 이는 대체로 참조부호들(81,82,83)로 각각 표시된 비디오, 오디오 및 텔레마틱 장치들을 포함한다. 상기 비디오 장치(81)는 예를 들면, 비디오 이미지들을 포획하기 위한 비디오 카메라, 수신된 비디오 컨텐트를 표시하기 위한 모니터 및 선택적 비디오 처리 장치를 포함할 수 있다. 상기 오디오 장치(82)는 예를 들면 구두 메시지(spoken message)들을 포획하기 위한 마이크로폰, 및 수신된 오디오 컨텐트를 재생하기 위한 라우드스피커를 포함하는 것이 전형적이다. 상기 오디오 장치는 또한 추가의 오디오 처리 유닛들을 또 포함할 수 있다. 상기 텔레마틱 장치(83)는 데이터 단말기, 키보드, 전자 화이트보드 또는 팩스 유닛과 같은 정지 이미지 송수신기를 포함할 수 있다.
상기 비디오 장치(81)는 비디오 코덱(85)에 연결되어 있다. 상기 비디오 코덱(85)은 비디오 부호기 및 대응하는 비디오 복호기를 포함하며, 이들 모두는 본 발명에 따라 구현된다. 이하에서는 이같은 부호기 및 복호기가 설명될 것이다. 상기 비디오 코덱(85)은 통신 링크를 통한 부가적인 전송을 위해 적합한 형태로 포획된 비디오 데이터를 부호화하고 통신 네트워크로부터 수신된 압축된 비디오 컨텐트를 복호하기 위한 의무 이행 능력을 지닌다. 도 10에 예시된 예에 있어서, 비디오 코덱은 JVT 코덱의 JM1에 따라 구현되고, 적합한 변형예들이 비디오 코덱의 부호기 및 복호기 모두에서 본 발명에 따른 변형된 스킵(SKIP) 모드를 구현한다.
상기 단말기의 오디오 장치는 도 10에서 참조부호(86)로 표시된 오디오 코덱에 연결되어 있다. 비디오 코덱과 같이, 오디오 코덱은 부호기/복호기 쌍을 포함한다. 이는 상기 단말기의 오디오 장치에 의해 포획된 오디오 데이터를 통신 링크를 통한 전송에 적합한 형태로 변환하고 네트워크로부터 수신된 부호화된 오디오 데이터를 다시 예를 들면 상기 단말기의 라우드스피커 상에서의 재생에 적합한 형태로 변환시킨다. 상기 오디오 코덱의 출력은 지연 블록(87)에 전달된다. 이는 비디오 부호화 프로세스에 의해 도입된 지연들을 보상함으로써 오디오 및 비디오 컨텐트의 동기화를 보장한다.
상기 멀티미디어 단말기의 시스템 제어 블록(84)은 전송 단말기 및 수신 단말기 간의 일반 동작 모드를 확립하도록 적합한 제어 프로토콜(신호 블록(88))를 사용하여 엔드-투-네트워크(end-to-network) 신호 방식을 제어한다. 상기 신호 블록(88)은 전송 및 수신 단말기들의 부호화 및 복화화 능력들에 관한 정보를 교환하 고 비디오 부호기의 여러 부호화 모드들을 이네이블하는 데 사용될 수 있다. 시스템 제어 블록(84)은 또한 데이터 암호화의 사용을 제어한다. 데이터 전송에 사용될 암호화 유형에 관한 정보는 암호화 블록(89)으로부터 다중화기/역다중화기(MUX/ DMUX 유닛; 90)로 전달된다.
상기 멀티미디어 단말기로부터의 데이터 전송 동안, MUX/DMUX 유닛(90)은 단일 비트 스트림을 형성하도록 텔레마틱 장치(83)로부터 입력된 데이터 및 예상가능한 제어 데이터와 부호화되고 동기화된 비디오 및 오디오 스트림들을 결합시킨다. 암호화 블록(89)에 의해 제공되는, 상기 비트 스트림에 적용될 (존재할 경우) 데이터 암호화 형태에 관한 정보는 암호화 모드를 선택하는 데 사용된다. 그러므로, 다중화되고 아마도 암호화된 멀티미디어 비트 스트림이 수신되고 있을 때, MUX/DMUX 유닛(90)은 비트 스트림을 복호하고, 이를 그의 구성 멀티미디어 성분들로 분할하며, 복호화 및 재생을 위해 그러한 성분들을 적합한 코덱(들) 및/또는 단말기 장치에 전달할 의무 이행 능력을 지닌다.
상기 멀티미디어 단말기(80)가 이동 단말기인 경우, 즉, 상기 멀티미디어 단말기(80)에 무선 송수신기(93)가 장착되어 있는 경우, 당업자가 이해할 수 있는 점은 상기 멀티미디어 단말기(80)가 추가의 요소들을 또 포함할 수 있다는 것이다. 한 실시예에 있어서, 상기 멀티미디어 단말기(80)는 사용자에 의한 상기 멀티미디어 단말기(80)의 동작을 가능하게 하는 키보드 및 디스플레이를 지니는 사용자 인터페이스, 상기 멀티미디어 단말기의 서로 다른 기능들에 대한 의무 이행 능력을 갖는 블록들을 제어하는 마이크로프로세서와 같은 중앙 처리 유닛, 랜덤 액세스 메 모리(RAM), 판독 전용 메모리(ROM) 및 디지털 카메라를 포함한다. 마이크로프로세서의 동작 명령어들, 즉, 상기 멀티미디어 단말기(80)의 기본 기능들에 대응하는 프로그램 코드는 판독 전용 메모리(ROM)에 저장되고 예를 들면 사용자의 제어 하에서 필요에 따라 상기 마이크로프로세서에 의해 실행될 수 있다. 프로그램 코드에 의하면, 상기 마이크로프로세서가 무선 송수신기(93)를 사용하여 이동 통신 네트워크와의 접속을 형성함으로써, 상기 멀티미티어 단말기(80)가 무선 경로를 통해 상기 이동 통신 네트워크로 정보를 전송하고 상기 이동 통신 네트워크로부터 정보를 수신할 수 있게 한다.
마이크로프로세서는 사용자 인터페이스의 상태를 모니터링하고 디지털 카메라를 제어한다. 사용자 명령에 응답하여, 상기 마이크로프로세서는 RAM 내에 디지털 이미지들을 기록하도록 상기 카메라에 명령을 내린다. 일단 이미지 또는 디지털 비디오 시퀀스가 포획되면, 또는 변형적으로는 포획 프로세스 동안, 상기 마이크로프로세서는 이미지를 이미지 세그먼트들(예컨대 매크로블록들)로 분할하고 상기 부호기를 사용하여 상기 세그먼트들의 움직임 보상 부호화를 수행함으로써 위에서 언급된 설명 부분에서 언급된 바와 같이, 압축된 이미지 시퀀스를 생성한다. 사용자는 포획된 이미지들을 디스플레이 상에 표시하거나 또는 무선 송수신기(93)를 사용하여 압축된 비디오 시퀀스를 다른 멀티미디어 단말기, 고정 회선 네트워크(PSTN)에 접속된 비디오 전화 또는 다른 어떤 통신 장치에 전달하도록 상기 멀티미디어 단말기(80)에 명령을 내린다. 바람직한 실시예에 있어서, 이미지 데이터의 전송은 제1 세그먼트가 부호화되자 마자 개시됨으로써 수신자는 최소의 지연으로 대응하는 복호화 프로세스를 개시할 수 있다.
비록 특정 실시예들의 문맥에서 언급되었지만, 당업자라면 분명히 알 수 있는 점은 이들 교시에 대한 다수의 변형예들 및 여러 수정예들이 이루어질 수 있다는 것이다. 따라서, 지금까지 본 발명이 특히 본 발명의 하나 또는 그 이상의 바람직한 실시예에 대해 도시되고 설명되었지만, 당업자가 이해할 수 있는 점은 특정의 변형예들 또는 수정예들이 위에서 언급된 바와 같은 본 발명의 범위 및 사상으로부터 이탈하지 않고서도 이루어질 수 있다는 것이다.
특히, 본 발명의 변형 실시예에 의하면, 에워싸는 움직임 분석 블록(802)은 에워싸는 영역의 움직임을 2개 이상의 움직임 부류들로 분류하는 데 적합하다. 예를 들면, 3가지의 움직임 분류들을 포함하는 하나의 의미있는 부류는 "연속 움직임", "활성 움직임" 및 "비활성 움직임"일 것이다. 이러한 방식으로, 연속 움직임의 전형적인 경우에 대한 특정의 움직임 매개변수들이 생성될 수 있다.
본 발명의 다른 한 변형 실시예에 있어서, 에워싸는 움직임 분석 블록은 제거되고 활성 움직임 매개변수 생성 블록이 모든 스킵 모드 매크로블록들에 대해 활성화된다.
또 다른 한 변형 실시예에 의하면, 부류 정보를 나타내도록 에워싸는 움직임 분석 블록을 사용하는 대신에, (예를 들면, 매크로블록, 슬라이스, 픽쳐 또는 시퀀스 레벨들의 보조 정보와 같은) 표시자가 다른 수단에 의해 제공된다.
여전히 다른 한 변형 실시예에 있어서, 에워싸는 움직임 분석 블록은 일시적으로 그러한 수단에 의해 디스에이블 또는 인에이블될 수 있다.
또 다른 한 변형 실시예에 있어서, 매크로블록 모드 테이블은 보다 확률이 높은 모드에 보다 높은 우선순위를 제공하도록 에워싸는 움직임 분석 블록의 출력에 의존하여 리해시(rehash)된다. 관련 실시예에 있어서, 매크로블록 모드 데이블은 예를 들면 스킵을 제거함으로써 에워싸는 움직임 분석 블록의 출력에 의존하여 완전히 재생된다.
또한, 여기서 이해하여야 할 점은 활성 움직임 매개변수 생성 블록(803)이 여러 방식으로 구현될 수 있다는 것이다. 본 발명의 특정 실시예들에 있어서, 이는 예를 들면 에워싸는 움직임의 연속, 속도 또는 편차에 기초하여 움직임 매개변수들을 생성하는 데 적합하다. 추가의 보조 정보는 또한 움직임 매개변수들의 생성을 유도하도록 전송될 수 있다. 변형 실시예에 있어서, 활성 움직임 매개변수 생성 블록은 매크로블록의 서로 다른 부분들에서 사용될 다수의 움직임 벡터들을 출력하는 데 적합하다.
본 발명은 또한 SKIP 모드에 추가해서 또는 SKIP 모드 대신에 다른 매크로블록 모드들에 대한 움직임 보상 예측을 생성하는 데 사용될 수 있다. 이는 또한 매크로 블록 구조로 국한되는 것이 아니라 임의의 세그먼트화 기반 비디오 부호화 시스템에서도 사용될 수 있다.
도 1은 종래 기술에 의한 총칭적인 비디오 부호기의 개념적인 블록도이다.
도 2는 종래 기술에 따르며 도 1에 도시된 부호기에 상응하는 총칭적인 비디오 부호기의 개념적인 블록도이다.
도 3은 종래 기술에 따른 매크로블록의 형성을 예시하는 도면이다.
도 4는 JVT 비디오 코덱의 JM1에 따라서, 매크로블록들을 블록으로 나누기 위한 가능한 7가지 분할 방법을 도시하는 도면이다.
도 5는 현재 픽쳐(current picture)의 모서리를, H.263 부록 P에 따라서 글로벌 움직임 보상 기법 내의 기준 픽쳐의 모서리들로 매핑하기 위한 개념적인 움직임 벡터를 생성하는 것을 예시하는 도면이다.
도 6은 본 발명의 일 실시예에 따른 비디오 부호기의 개념적인 블록도이다.
도 7은 본 발명의 일 실시예에 따르며 도 6에 도시된 부호기에 상응하는 비디오 부호기의 개념적 블록도이다.
도 8은 본 발명의 일 실시예에 따른 부호기 또는 복호기 내에서 스킵 모드 매크로블록을 위한 블록들을 부호화 및 복호화하는 과정을 예시하는 도면이다.
도 9는 매크로블록 구획(partitioning)의 일 예시, 부호화 또는 복호화될 매크로블록을 에워싸는 매크로블록들 내의 움직임, 및 매크로블록(도면에서 어둡게 표시된 부분)을 위하여 발생된 본 발명의 일 실시예에 따른 스킵 모드 움직임 벡터의 예시를 도시하는 도면이다.
도 10은 본 발명에 따른 방법이 구현될 수 있는 멀티미디어 통신 단말기의 개념적인 블록도이다.

Claims (22)

  1. 이미지를 부호화하는 방법에 있어서,
    상기 이미지의 부호화 방법은,
    이미지의 제1 세그먼트에 스킵 부호화 모드를 할당하는 단계;
    상기 제1 세그먼트에 이웃하는 제2 세그먼트의 움직임 벡터에 적어도 부분적으로 기초하여 상기 제1 세그먼트의 움직임 벡터를 예측하는 단계;
    상기 예측된 움직임 벡터에 기초하여 기준 프레임에 대한 상기 제1 세그먼트의 예측을 형성하는 단계; 및
    상기 스킵 부호화 모드의 표시를 부호화 비트스트림 내에 제공하는 단계를 포함하며, 상기 제1 세그먼트에 대한 어떠한 추가 움직임 벡터 정보도 상기 부호화 비트스트림 내에서 부호화되지 않는 것을 특징으로 하는 이미지의 부호화 방법.
  2. 제1항에 있어서, 상기 제2 세그먼트는 상기 제1 세그먼트에 이웃하는 이전에 부호화된 세그먼트인 것을 특징으로 하는 이미지의 부호화 방법.
  3. 제1항에 있어서, 상기 이미지의 글로벌 또는 지역 움직임을 모델링하기 위해 추가되는 정보가 상기 부호화 비트스트림 내에 제공되지 않는 것을 특징으로 하는 이미지의 부호화 방법.
  4. 제1항에 있어서, 상기 제1 세그먼트와 관련된 예측 오차가 상기 부호화 비트스트림 내에 제공되지 않는 것을 특징으로 하는 이미지의 부호화 방법.
  5. 부호화된 이미지를 복호화하는 방법에 있어서,
    상기 부호화된 이미지의 복호화 방법은,
    이미지의 제1 세그먼트에 대한 스킵 부호화 모드의 표시를 수신하는 단계;
    상기 제1 세그먼트에 이웃하는 제2 세그먼트의 움직임 벡터에 기초하여 상기 제1 세그먼트의 움직임 벡터를 예측하는 단계; 및
    상기 예측된 움직임 벡터에 기초하여 기준 프레임에 대한 상기 제1 세그먼트의 예측을 형성하는 단계를 포함하는 것을 특징으로 하는 부호화된 이미지의 복호화 방법.
  6. 제5항에 있어서, 상기 제2 세그먼트는 상기 제1 세그먼트에 이웃하는 이전에 복호화된 세그먼트인 것을 특징으로 하는 부호화된 이미지의 복호화 방법.
  7. 제5항에 있어서, 상기 이미지의 글로벌 또는 지역 움직임을 모델링하기 위해 추가되는 정보가 부호화 비트스트림 내에 수신되지 않는 것을 특징으로 하는 부호화된 이미지의 복호화 방법.
  8. 제5항에 있어서, 상기 제1 세그먼트와 관련된 예측 오차가 부호화 비트스트 림 내에 수신되지 않는 것을 특징으로 하는 부호화된 이미지의 복호화 방법.
  9. 이미지를 부호화하는 장치에 있어서,
    상기 이미지의 부호화 장치는,
    이미지의 제1 세그먼트에 스킵 부호화 모드를 할당하는 부호화 제어기;
    상기 제1 세그먼트에 이웃하는 제2 세그먼트의 움직임 벡터에 적어도 부분적으로 기초하여 상기 제1 세그먼트의 움직임 벡터를 예측하는 움직임 벡터 부호화 블록;
    상기 예측된 움직임 벡터에 기초하여 기준 프레임에 대한 상기 제1 세그먼트의 예측을 형성하는 움직임 보상 예측 블록; 및
    상기 스킵 부호화 모드의 표시를 부호화 비트스트림 내에 제공하는 다중화기를 포함하며, 상기 제1 세그먼트에 대한 어떠한 추가 움직임 벡터 정보도 상기 부호화 비트스트림 내에서 부호화되지 않는 것을 특징으로 하는 이미지의 부호화 장치.
  10. 제9항에 있어서, 상기 제2 세그먼트는 상기 제1 세그먼트에 이웃하는 이전에 부호화된 세그먼트인 것을 특징으로 하는 이미지의 부호화 장치.
  11. 제9항에 있어서, 상기 이미지의 글로벌 또는 지역 움직임을 모델링하기 위해 추가되는 정보가 상기 부호화 비트스트림 내에 수신되지 않는 것을 특징으로 하는 이미지의 부호화 장치.
  12. 제9항에 있어서, 상기 제1 세그먼트와 관련된 예측 오차가 상기 부호화 비트스트림 내에 수신되지 않는 것을 특징으로 하는 이미지의 부호화 장치.
  13. 부호화된 이미지를 복호화하는 장치에 있어서,
    상기 부호화된 이미지의 복호화 장치는,
    이미지의 제1 세그먼트에 대한 스킵 부호화 모드의 표시를 수신하는 역다중화기; 및
    상기 제1 세그먼트에 이웃하는 제2 세그먼트의 움직임 벡터에 기초하여 상기 제1 세그먼트의 움직임 벡터를 예측하며, 그리고
    상기 예측된 움직임 벡터에 기초하여 기준 프레임에 대한 상기 제1 세그먼트의 예측을 형성하는 움직임 보상 예측 블록을 포함하는 것을 특징으로 하는 부호화된 이미지의 복호화 장치.
  14. 제13항에 있어서, 상기 제2 세그먼트는 상기 제1 세그먼트에 이웃하는 이전에 복호화된 세그먼트인 것을 특징으로 하는 부호화된 이미지의 복호화 장치.
  15. 제13항에 있어서, 상기 이미지의 글로벌 또는 지역 움직임을 모델링하기 위해 추가되는 정보가 부호화 비트스트림 내에 수신되지 않는 것을 특징으로 하는 부 호화된 이미지의 복호화 장치.
  16. 제13항에 있어서, 상기 제1 세그먼트와 관련된 예측 오차가 부호화 비트스트림 내에 수신되지 않는 것을 특징으로 하는 부호화된 이미지의 복호화 장치.
  17. 제9항에 따른 부호화 장치 및 카메라를 포함하는 멀티미디어 단말기.
  18. 제13항에 따른 복호화 장치 및 디스플레이를 포함하는 멀티미디어 단말기.
  19. 비디오 부호기에 있어서,
    상기 비디오 부호기는,
    이미지의 제1 세그먼트에 스킵 부호화 모드를 할당하는 수단;
    상기 제1 세그먼트에 이웃하는 제2 세그먼트의 움직임 벡터에 적어도 부분적으로 기초하여 상기 제1 세그먼트의 움직임 벡터를 예측하는 수단;
    상기 예측된 움직임 벡터에 기초하여 기준 프레임에 대한 상기 제1 세그먼트의 예측을 형성하는 수단; 및
    상기 스킵 부호화 모드의 표시를 부호화 비트스트림 내에 제공하는 수단을 포함하며, 상기 제1 세그먼트에 대한 예측 오차 또는 추가 움직임 벡터 정보가 상기 부호화 비트스트림 내에서 부호화되지 않는 것을 특징으로 하는 비디오 부호화기.
  20. 비디오 복호기에 있어서,
    상기 비디오 복호기는,
    부호화 비트스트림 내에 이미지의 제1 세그먼트에 대한 스킵 부호화 모드의 표시를 수신하는 수단;
    상기 제1 세그먼트에 이웃하는 제2 세그먼트의 움직임 벡터에 기초하여 상기 제1 세그먼트의 움직임 벡터를 예측하는 수단; 및
    상기 예측된 움직임 벡터에 기초하여 기준 프레임에 대한 상기 제1 세그먼트의 예측을 형성하는 수단을 포함하고, 상기 제1 세그먼트에 대한 예측 오차 또는 추가 움직임 벡터 정보가 상기 부호화 비트스트림 내에 수신되지 않는 것을 특징으로 하는 비디오 복호기.
  21. 이미지를 부호화하기 위한 프로그램 코드들을 지니는 컴퓨터 프로그램이 내장되어 있는 컴퓨터 판독가능 저장 매체에 있어서,
    상기 컴퓨터 프로그램은,
    이미지의 제1 세그먼트에 스킵 부호화 모드를 할당하는 프로그램 코드;
    상기 제1 세그먼트에 이웃하는 제2 세그먼트의 움직임 벡터에 적어도 부분적으로 기초하여 상기 제1 세그먼트의 움직임 벡터를 예측하는 프로그램 코드;
    상기 예측된 움직임 벡터에 기초하여 기준 프레임에 대한 상기 제1 세그먼트의 예측을 형성하는 프로그램 코드; 및
    상기 스킵 부호화 모드의 표시를 부호화 비트스트림 내에 제공하는 프로그램 코드를 포함하며, 상기 제1 세그먼트에 대한 예측 오차 또는 추가 움직임 벡터 정보가 상기 부호화 비트스트림 내에서 부호화되지 않는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  22. 부호화된 이미지를 복호화하기 위한 프로그램 코드들을 지니는 컴퓨터 프로그램이 내장되어 있는 컴퓨터 판독가능 저장 매체에 있어서,
    상기 컴퓨터 프로그램은,
    부호화 비트스트림 내에 이미지의 제1 세그먼트에 대한 스킵 부호화 모드의 표시를 수신하는 프로그램 코드;
    상기 제1 세그먼트에 이웃하는 제2 세그먼트의 움직임 벡터에 기초하여 상기 제1 세그먼트의 움직임 벡터를 예측하는 프로그램 코드; 및
    상기 예측된 움직임 벡터에 기초하여 기준 프레임에 대한 상기 제1 세그먼트의 예측을 형성하는 프로그램 코드를 포함하고, 상기 제1 세그먼트에 대한 예측 오차 또는 추가 움직임 벡터 정보가 상기 부호화 비트스트림 내에 수신되지 않는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
KR1020087026261A 2002-03-15 2003-03-14 비디오 시퀀스에서의 움직임 부호화 방법 KR101108661B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US36507202P 2002-03-15 2002-03-15
US60/365,072 2002-03-15
PCT/IB2003/000944 WO2003079681A1 (en) 2002-03-15 2003-03-14 Method for coding motion in a video sequence

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020047014524A Division KR101108501B1 (ko) 2002-03-15 2003-03-14 비디오 시퀀스에서의 움직임 부호화 방법

Publications (2)

Publication Number Publication Date
KR20080104385A KR20080104385A (ko) 2008-12-02
KR101108661B1 true KR101108661B1 (ko) 2012-01-25

Family

ID=28042010

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020087026261A KR101108661B1 (ko) 2002-03-15 2003-03-14 비디오 시퀀스에서의 움직임 부호화 방법
KR1020047014524A KR101108501B1 (ko) 2002-03-15 2003-03-14 비디오 시퀀스에서의 움직임 부호화 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020047014524A KR101108501B1 (ko) 2002-03-15 2003-03-14 비디오 시퀀스에서의 움직임 부호화 방법

Country Status (16)

Country Link
US (1) US7532808B2 (ko)
EP (2) EP3029938A1 (ko)
JP (1) JP4611640B2 (ko)
KR (2) KR101108661B1 (ko)
CN (1) CN100581232C (ko)
AU (1) AU2003209566A1 (ko)
BR (2) BRPI0304565B1 (ko)
CA (1) CA2478691C (ko)
DK (1) DK1486065T3 (ko)
ES (1) ES2562932T3 (ko)
HK (1) HK1079645A1 (ko)
HU (1) HUE026930T2 (ko)
MX (1) MXPA04008889A (ko)
PT (1) PT1486065E (ko)
SI (1) SI1486065T1 (ko)
WO (1) WO2003079681A1 (ko)

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030123738A1 (en) * 2001-11-30 2003-07-03 Per Frojdh Global motion compensation for video pictures
JP3923898B2 (ja) * 2002-01-18 2007-06-06 株式会社東芝 画像符号化方法及び装置
US7742525B1 (en) * 2002-07-14 2010-06-22 Apple Inc. Adaptive motion estimation
US7523482B2 (en) * 2002-08-13 2009-04-21 Microsoft Corporation Seamless digital channel changing
US8397269B2 (en) 2002-08-13 2013-03-12 Microsoft Corporation Fast digital channel changing
US7321623B2 (en) * 2002-10-01 2008-01-22 Avocent Corporation Video compression system
US20060126718A1 (en) * 2002-10-01 2006-06-15 Avocent Corporation Video compression encoder
US8824553B2 (en) 2003-05-12 2014-09-02 Google Inc. Video compression method
US7603689B2 (en) * 2003-06-13 2009-10-13 Microsoft Corporation Fast start-up for digital video streams
NO318318B1 (no) * 2003-06-27 2005-02-28 Tandberg Telecom As Fremgangsmate for forbedret koding av video
US9560371B2 (en) 2003-07-30 2017-01-31 Avocent Corporation Video compression system
US7444419B2 (en) * 2003-10-10 2008-10-28 Microsoft Corporation Media stream scheduling for hiccup-free fast-channel-change in the presence of network chokepoints
US7562375B2 (en) 2003-10-10 2009-07-14 Microsoft Corporation Fast channel change
US20050105621A1 (en) * 2003-11-04 2005-05-19 Ju Chi-Cheng Apparatus capable of performing both block-matching motion compensation and global motion compensation and method thereof
KR20050053297A (ko) * 2003-12-02 2005-06-08 학교법인 성균관대학 동영상 부호화 방법 및 장치
US7430222B2 (en) * 2004-02-27 2008-09-30 Microsoft Corporation Media stream splicer
US7720148B2 (en) * 2004-03-26 2010-05-18 The Hong Kong University Of Science And Technology Efficient multi-frame motion estimation for video compression
KR100713400B1 (ko) * 2004-04-30 2007-05-04 삼성전자주식회사 평균 히스토그램 오차 방식을 이용한 h.263/mpeg비디오 인코더 및 그 제어 방법
US7457461B2 (en) 2004-06-25 2008-11-25 Avocent Corporation Video compression noise immunity
US8111752B2 (en) * 2004-06-27 2012-02-07 Apple Inc. Encoding mode pruning during video encoding
US20050286777A1 (en) * 2004-06-27 2005-12-29 Roger Kumar Encoding and decoding images
US7792188B2 (en) 2004-06-27 2010-09-07 Apple Inc. Selecting encoding types and predictive modes for encoding video data
DE102004038110B3 (de) * 2004-08-05 2005-12-29 Siemens Ag Verfahren zum Codieren und Decodieren, sowie Codier- und Decodiervorrichtung zur Videocodierung
US8861601B2 (en) * 2004-08-18 2014-10-14 Qualcomm Incorporated Encoder-assisted adaptive video frame interpolation
US7640352B2 (en) * 2004-09-24 2009-12-29 Microsoft Corporation Methods and systems for presentation of media obtained from a media stream
DE102004049156B4 (de) * 2004-10-08 2006-07-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codierschema für einen ein zeitlich veränderliches Graphikmodell darstellenden Datenstrom
FR2878383A1 (fr) * 2004-11-19 2006-05-26 France Telecom Procede de codage predictif d'une sequence d'images, dispositif de codage, procede et dispositif de decodage et programme correspondants
US7477653B2 (en) * 2004-12-10 2009-01-13 Microsoft Corporation Accelerated channel change in rate-limited environments
KR100681242B1 (ko) * 2004-12-16 2007-02-09 삼성전자주식회사 동영상 복호화 방법, 동영상 복호화 장치 및 이를 가지는시스템 온 칩 시스템
US8548055B2 (en) * 2005-03-10 2013-10-01 Qualcomm Incorporated Encoding of multimedia data
EP2720466A1 (en) * 2005-09-26 2014-04-16 Mitsubishi Electric Corporation Moving image coding method
US20070110503A1 (en) * 2005-10-31 2007-05-17 Glover J S Dispensing brush with replaceable cartridge/handle part
US8135040B2 (en) * 2005-11-30 2012-03-13 Microsoft Corporation Accelerated channel change
US8718147B2 (en) * 2006-02-17 2014-05-06 Avocent Huntsville Corporation Video compression algorithm
US7555570B2 (en) 2006-02-17 2009-06-30 Avocent Huntsville Corporation Device and method for configuring a target device
WO2007105590A1 (ja) * 2006-03-09 2007-09-20 Nec Corporation 動画像符号化方法、およびこれを用いた装置とプログラム
US20100091845A1 (en) * 2006-03-30 2010-04-15 Byeong Moon Jeon Method and apparatus for decoding/encoding a video signal
KR100959538B1 (ko) * 2006-03-30 2010-05-27 엘지전자 주식회사 비디오 신호를 디코딩/인코딩하기 위한 방법 및 장치
US7782961B2 (en) * 2006-04-28 2010-08-24 Avocent Corporation DVC delta commands
NO325859B1 (no) 2006-05-31 2008-08-04 Tandberg Telecom As Kodek-preprosessering
WO2007148906A1 (en) * 2006-06-19 2007-12-27 Lg Electronics, Inc. Method and apparatus for processing a vedeo signal
US8532178B2 (en) * 2006-08-25 2013-09-10 Lg Electronics Inc. Method and apparatus for decoding/encoding a video signal with inter-view reference picture list construction
JP4181592B2 (ja) * 2006-09-20 2008-11-19 シャープ株式会社 画像表示装置及び方法、画像処理装置及び方法
US8804829B2 (en) * 2006-12-20 2014-08-12 Microsoft Corporation Offline motion description for video generation
KR101136771B1 (ko) * 2006-12-22 2012-04-20 퀄컴 인코포레이티드 다른 코딩 모드의 정보를 이용한 코딩 모드 선택
US8311120B2 (en) * 2006-12-22 2012-11-13 Qualcomm Incorporated Coding mode selection using information of other coding modes
JP5212742B2 (ja) * 2007-02-20 2013-06-19 ソニー株式会社 画像表示装置、映像信号処理装置および映像信号処理方法
JP5040393B2 (ja) * 2007-03-23 2012-10-03 ソニー株式会社 画像処理装置および画像処理方法、プログラム、並びに画像表示装置
KR101366241B1 (ko) 2007-03-28 2014-02-21 삼성전자주식회사 영상 부호화, 복호화 방법 및 장치
US20080240239A1 (en) * 2007-04-02 2008-10-02 Stuart David A Methods and apparatus to selectively reduce streaming bandwidth consumption
JP4842899B2 (ja) * 2007-08-15 2011-12-21 Kddi株式会社 動画像符号化装置、動画像符号化方法およびプログラム
JP2009055519A (ja) * 2007-08-29 2009-03-12 Sony Corp 符号化処理装置、符号化処理方法、復号処理装置、及び、復号処理方法
US8938009B2 (en) * 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
BRPI0818444A2 (pt) * 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
WO2009095962A1 (ja) * 2008-01-29 2009-08-06 Panasonic Corporation 画像符号化装置、画像符号化方法、画像符号化集積回路および画像符号化プログラム
US8385404B2 (en) * 2008-09-11 2013-02-26 Google Inc. System and method for video encoding using constructed reference frame
US8325796B2 (en) 2008-09-11 2012-12-04 Google Inc. System and method for video coding using adaptive segmentation
CN102210152A (zh) * 2008-10-06 2011-10-05 Lg电子株式会社 用于处理视频信号的方法和设备
US9078592B2 (en) * 2008-10-27 2015-07-14 Wisconsin Alumni Research Foundation Ultrasonic strain imaging device with selectable cost-function
KR101054644B1 (ko) * 2008-11-25 2011-08-08 에스케이 텔레콤주식회사 동작 추정 기반 영상 부호화/복호화 장치 및 방법
JP5325638B2 (ja) 2008-11-26 2013-10-23 日立コンシューマエレクトロニクス株式会社 画像復号化方法
US9124874B2 (en) * 2009-06-05 2015-09-01 Qualcomm Incorporated Encoding of three-dimensional conversion information with two-dimensional video sequence
US9635368B2 (en) * 2009-06-07 2017-04-25 Lg Electronics Inc. Method and apparatus for decoding a video signal
EP2446630B1 (fr) * 2009-06-23 2020-02-26 Orange Codage et décodage d'une séquence d'images vidéo par zones d'image
US8526500B2 (en) * 2009-08-11 2013-09-03 Seiko Epson Corporation System and method for global inter-frame motion detection in video sequences
KR101624649B1 (ko) * 2009-08-14 2016-05-26 삼성전자주식회사 계층적인 부호화 블록 패턴 정보를 이용한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR101356613B1 (ko) * 2009-08-21 2014-02-06 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
WO2011021914A2 (ko) 2009-08-21 2011-02-24 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
WO2011074919A2 (ko) * 2009-12-17 2011-06-23 에스케이텔레콤 주식회사 영상 부호화/복호화 방법 및 장치
KR20110069740A (ko) 2009-12-17 2011-06-23 에스케이 텔레콤주식회사 영상 부호화/복호화 방법 및 장치
US8879632B2 (en) * 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
KR20110123651A (ko) * 2010-05-07 2011-11-15 한국전자통신연구원 생략 부호화를 이용한 영상 부호화 및 복호화 장치 및 그 방법
JP5805991B2 (ja) * 2010-05-07 2015-11-10 トムソン ライセンシングThomson Licensing ピクチャ・シーケンスを符号化する方法、それに対応する再構築方法、および当該シーケンスを表す符号化データのストリーム
JP2013533469A (ja) 2010-05-25 2013-08-22 アリックス インク 免疫診断における生物学的および化学的分析および用途における粒子の位置的自由度の検出のための方法および装置
US20120057629A1 (en) 2010-09-02 2012-03-08 Fang Shi Rho-domain Metrics
WO2012027893A1 (en) * 2010-09-02 2012-03-08 Intersil Americas Inc. Systems and methods for video content analysis
US8503528B2 (en) 2010-09-15 2013-08-06 Google Inc. System and method for encoding video using temporal filter
CN102447895B (zh) * 2010-09-30 2013-10-02 华为技术有限公司 扫描方法及装置、反扫描方法及装置
US9106916B1 (en) 2010-10-29 2015-08-11 Qualcomm Technologies, Inc. Saturation insensitive H.264 weighted prediction coefficients estimation
US9172963B2 (en) * 2010-11-01 2015-10-27 Qualcomm Incorporated Joint coding of syntax elements for video coding
US8638854B1 (en) 2011-04-07 2014-01-28 Google Inc. Apparatus and method for creating an alternate reference frame for video compression using maximal differences
US9154799B2 (en) 2011-04-07 2015-10-06 Google Inc. Encoding and decoding motion via image segmentation
US9509972B2 (en) * 2011-06-24 2016-11-29 Lg Electronics Inc. Encoding/decoding method and apparatus using a skip mode
US20130083840A1 (en) * 2011-09-30 2013-04-04 Broadcom Corporation Advance encode processing based on raw video data
US9432704B2 (en) * 2011-11-06 2016-08-30 Akamai Technologies Inc. Segmented parallel encoding with frame-aware, variable-size chunking
US9262670B2 (en) 2012-02-10 2016-02-16 Google Inc. Adaptive region of interest
WO2013162980A2 (en) 2012-04-23 2013-10-31 Google Inc. Managing multi-reference picture buffers for video data coding
US9609341B1 (en) 2012-04-23 2017-03-28 Google Inc. Video data encoding and decoding using reference picture lists
CN102740073B (zh) * 2012-05-30 2015-06-17 华为技术有限公司 一种编码方法及装置
US9014266B1 (en) 2012-06-05 2015-04-21 Google Inc. Decimated sliding windows for multi-reference prediction in video coding
US11317101B2 (en) * 2012-06-12 2022-04-26 Google Inc. Inter frame candidate selection for a video encoder
CN104104964B (zh) * 2013-04-09 2019-03-12 乐金电子(中国)研究开发中心有限公司 一种深度图像帧间编码、解码方法、编码器及解码器
US9756331B1 (en) 2013-06-17 2017-09-05 Google Inc. Advance coded reference prediction
FR3011429A1 (fr) * 2013-09-27 2015-04-03 Orange Codage et decodage video par heritage d'un champ de vecteurs de mouvement
US9485456B2 (en) 2013-12-30 2016-11-01 Akamai Technologies, Inc. Frame-rate conversion in a distributed computing system
US9392272B1 (en) 2014-06-02 2016-07-12 Google Inc. Video coding using adaptive source variance based partitioning
US9578324B1 (en) 2014-06-27 2017-02-21 Google Inc. Video coding using statistical-based spatially differentiated partitioning
WO2017087751A1 (en) * 2015-11-20 2017-05-26 Mediatek Inc. Method and apparatus for global motion compensation in video coding system
US10387099B2 (en) * 2016-07-28 2019-08-20 Intelligent Waves Llc System, method and computer program product for generating remote views in a virtual mobile device platform using efficient color space conversion and frame encoding
CN112087626A (zh) * 2020-08-21 2020-12-15 西安万像电子科技有限公司 图像处理方法、装置及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2969782B2 (ja) 1990-05-09 1999-11-02 ソニー株式会社 符号化データ編集方法及び符号化データ編集装置
US5148272A (en) 1991-02-27 1992-09-15 Rca Thomson Licensing Corporation Apparatus for recombining prioritized video data
PT1098529E (pt) * 1993-03-24 2013-11-25 Sony Corp Método para codificar e descodificar vetores de movimento e respetivo dispositivo e método para codificar e descodificar sinais de imagem e respetivo dispositivo
US5442400A (en) * 1993-04-29 1995-08-15 Rca Thomson Licensing Corporation Error concealment apparatus for MPEG-like video data
DE19541457C1 (de) * 1995-11-07 1997-07-03 Siemens Ag Verfahren zur Codierung eines Videodatenstroms einer aus Bildblöcken bestehenden Videosequenz
JP3344577B2 (ja) * 1996-09-09 2002-11-11 ソニー株式会社 画像符号化装置および画像符号化方法、画像復号化装置および画像復号化方法、並びに記録方法
JP2000278692A (ja) * 1999-03-25 2000-10-06 Victor Co Of Japan Ltd 圧縮データ処理方法及び処理装置並びに記録再生システム
CN100452883C (zh) * 2001-12-17 2009-01-14 微软公司 处理视频图像的方法

Also Published As

Publication number Publication date
US7532808B2 (en) 2009-05-12
EP1486065A1 (en) 2004-12-15
MXPA04008889A (es) 2004-11-26
KR20040091746A (ko) 2004-10-28
EP3029938A1 (en) 2016-06-08
CN1643912A (zh) 2005-07-20
DK1486065T3 (en) 2016-02-29
EP1486065B1 (en) 2016-01-06
BR0304565A (pt) 2004-12-07
CA2478691C (en) 2012-11-27
BRPI0304565B1 (pt) 2018-07-24
JP2006500796A (ja) 2006-01-05
EP1486065A4 (en) 2006-01-04
CA2478691A1 (en) 2003-09-25
KR20080104385A (ko) 2008-12-02
KR101108501B1 (ko) 2012-03-13
WO2003079681A1 (en) 2003-09-25
PT1486065E (pt) 2016-03-30
JP4611640B2 (ja) 2011-01-12
CN100581232C (zh) 2010-01-13
HUE026930T2 (en) 2016-08-29
US20030202594A1 (en) 2003-10-30
SI1486065T1 (sl) 2016-05-31
HK1079645A1 (en) 2006-04-07
ES2562932T3 (es) 2016-03-09
AU2003209566A1 (en) 2003-09-29

Similar Documents

Publication Publication Date Title
KR101108661B1 (ko) 비디오 시퀀스에서의 움직임 부호화 방법
KR100973216B1 (ko) 비디오 부호화 시스템에서 양자화 변수들을 표시하는 방법 및 장치
KR100953677B1 (ko) 이미지/비디오 부호기들 및/또는 복호기들에서 변환계수들의 부호화
US6690307B2 (en) Adaptive variable length coding of digital video
JP4234607B2 (ja) 画像/ビデオエンコーダおよび/またはデコーダにおける符号化変換係数

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
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: 20141231

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161220

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171219

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 8