가공데이터 · 한국어 지식관계

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

분류
의약학
라벨 상태 (label_status)
approved
문맥 (context)
필름에 기록된 보통의 영화와 같은 디지털 비디오 시퀀스는 정지 비디오의 시퀀스, 비교적 고속으로, 전형적으로 초당 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 값중 하나를 가진다. 표 1 : JVT 코덱의 JM1에 따른 UVLC 코드워드들의 생성을 위한 스킴. 표 2는 표 1에서 제공된 스킴에 따라 생성된, 첫번째 16 UVLC 코드워드들을 제공한다. 표 2 : 표 1에서 제공된 스킴에 따라 생성된 JM1의 첫번째 16 UVLC 코드워드들. JVT 코덱의 JM1은 스킵 모드가 매크로블록에 대해 통계적으로 가장 유사한 부호화 모드라고 가정한다. 넌 스킵 모드(non-SKIP mode)를 가진 다음 매크로블록전의 스킵 모드 매크로블록들의 수는 위의 표 2를 사용하는 하나의 UVLC 코드워드에 의해 나타난다. 나머지 부호화 모드들은 이하의 표 3에서 도시된 바와 같은 UVLC 코드워드들에 의해 표현된다. 표 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개의 개념적인 움직임 벡터들 을 정의함으로써 수행되며, 각각의 개념적인 움직임 벡터는 기준 프레임의 대응하는 코너상으로 맵핑시키는 것과 같은 방식으로 현재 픽처의 4개의 코너들중 하나를 이동시키는 방법을 기술한다. 이러한 동작은 도 5에서 기술된다. 다음에 현재 픽처의 매크로블록에 대한 움직임 보상 예측은 왜곡된 기준 프레임에 관하여 블록 매칭을 사용하여 수행된다. 이것은 블록 매칭 과정을 복잡하게 하는데, 왜냐하면 블록 매칭 과정에서 사용된 왜곡된 기준 프레임의 각 픽셀값은 원시(왜곡되지 않은(non-warped)) 기준 프레임을 왜곡된 기준 프레임의 좌표축들로 맵핑시킴으로써 생성되어야 하기 때문이다. 이것은 연산 집적 동작(computationally intensive operation)인 쌍선형 보간(bilinear interplolation)을 사용해서 수행된다. 왜곡된 기준 프레임의 픽셀값들을 생성하기 위해 사용된 쌍선형 보간 과정의 더욱 상세한 점들에 대해서 H.263 비디오 부호화 표준의 부록 P를 참조하여야 한다. 위에서 언급된 문서 VCEG-020에서 기술된 글로벌 움직임 벡터 부호화은 글로벌 움직임 보상의 간략화된 버전이다. 기준 프레임은 있는 그대로 사용되지만, 부가 정보는 글로벌 움직임을 기술하기 위해 전송되며, 글로벌 움직임 벡터들이 사용될 때, 부가적인 매크로블록 모드들이 사용된다. 이러한 접근 방법은 방금 기술된 글로벌 움직임 보상 기술보다 덜 복잡하지만, 그와 관련된 부가적인 부호기 복잡성이 있다. 즉, 부호기는 글로벌 움직임 변수들을 찾아내기 위해서 여분의 움직임 보상 동작들을 수행해야 하며, 또한 최적의 것을 찾아내기 위해 더욱 많은 매크로블록 모드들을 평가할 필요가 있다. 더욱이, 전송되어야 할 여분의 글로벌 움직임 정보의 양은 작은 해상도의 비디오에 비해서 커진다. 이전 논의의 관점에서, 글로벌 움직임이 존재하는 경우에 디지털 비디오 시퀀스의 부호화에 관한 중요하고 해결되지 않은 번역(translation), 카메라의 패닝(panning)이나 주밍(zooming)과 같은 기술적 문제점이 존재한다는 점이 평가되어야 한다. 특히, 3개의 이전에 언급된 종래 기술 비디오 부호화 해결책들 각각은 어느 정도의 기술적 단점들을 가지고 있다. 예를 들면, JVT 코덱의 JM1은 비디오 시퀀스들에서의 글로벌 움직임을 고려하기 위한 특별한 준비를 하고 있지 않다. 따라서, 그러한 움직임이 제공되면, 그것은 비디오 부호기로 하여금 명시적으로 상기 움직임을 모델링하는 매크로블록 부호화 모드들을 선택하도록 한다. 글로벌 움직임 성분이 모든 INTER 부호화 매크로블록(또는 서브 블록)에서 부호화될 때, 이것은 부호화 효율에 있어서 상당한 감쇠를 야기한다. (H.263 비디오 부호화 표준의 부록 P에 의해 제공된) 글로벌 움직임 보상 기술은 움직임 보상 예측에서 사용된 기준 프레임들을 굽힘으로써 글로벌 움직임을 고려하고, 따라서 글로벌 움직임을 부호화하기 위해 특별한 조치들이 취해지지 않는 시스템과 비교할 때 개선된 부호화 효율을 제공한다. 그러나, 왜곡 과정은 계산적으로 복잡하며, 비디오 시퀀스의 올바른 복호화를 위해 부가 정보가 부호화된 비디오 비트 스트림내에서 전송되어야 한다. 비록 글로벌 움직임 벡터 부호화의 관련된 기술이 글로벌 움직임 보상에 비해 계산이 덜 요구되지만, 그것은 부호기 복잡성에서의 어떠한 증가를 포함하며, 비디오 데이터의 올바른 복호화를 가능하게 하기 위해 부가 정보는 여전히 비디오 비트 스트림내에서 전송되어야 한다. 따라서, 본 발명의 한가지 목적은 로컬 움직임 보상의 단순함과 글로벌 움직임 보상의 부호화 효율을 조합함으로써, 상당히 개선된 압축 성능 및 복잡성에서 사소한 증가를 가진 비디오 부호화 시스템을 만드는 것이다.
지시문 (instruction)
주어진 원문을 읽고 필요한 정보를 파악하여, 원문에 근거해 질문에 답하라.
질문 (question)
비디오 부호기(100)를 구성하는 주요 기술적 구성 요소들은 무엇인가?
추론 과정 (compact_reasoning)
  1. 1과제 해석task_interpretation

    비디오 부호기(100)를 구성하는 하드웨어 또는 소프트웨어적 구성 요소들을 모두 찾아 나열해야 한다.

  2. 2정보 추출information_extraction

    본문에서 비디오 부호기(100)의 구성 요소를 명시적으로 설명하는 문장을 탐색한다.

    • 비디오 부호기(100)는 카메라 또는 다른 비디오 소스(미도시)로부터 디지털 비디오 신호를 수신하는 입력(101)을 포함한다.
    • 비디오 부호기(100)는 또한 블록 기반 이산 코사인 변환(DCT)을 수행하도록 구성된 변환 유닛(104), 양자화기(106), 역 양자화기(108), 역 블록 기반 이산 코사인 변환(IDCT)을 수행하도록 구성된 역 변환 유닛(110), 결합부(112,116), 및 프레임 저장부(120)를 포함한다.
    • 상기 부호기는 또한 움직임 추정기(130), 움직임 필드 부호기(140) 및 움직임 보상 예측기(150)를 포함한다.
    • 비디오 부호기(100)는 또한 비디오 다중화 부호기(170)를 포함한다.
  3. 3근거 선택evidence_selection

    부호기(100)에 포함된다고 명시된 모든 구성 요소를 선별한다.

    • 입력(101)
    • 변환 유닛(104)
    • 양자화기(106)
    • 역 양자화기(108)
    • 역 변환 유닛(110)
    • 결합부(112,116)
    • 프레임 저장부(120)
    • 움직임 추정기(130)
    • 움직임 필드 부호기(140)
    • 움직임 보상 예측기(150)
    • 비디오 다중화 부호기(170)
  4. 4논리 통합logical_integration

    추출된 구성 요소들을 누락 없이 정리한다.

  5. 5결론 도출conclusion_formulation

    비디오 부호기(100)의 구성 요소 리스트를 완성한다.

  6. 6답변 생성answer_generation

    질문에 대해 리스트 형식으로 최종 답변을 작성한다.

    • 비디오 부호기(100)는 카메라 또는 다른 비디오 소스(미도시)로부터 디지털 비디오 신호를 수신하는 입력(101)을 포함한다.
    • 비디오 부호기(100)는 또한 블록 기반 이산 코사인 변환(DCT)을 수행하도록 구성된 변환 유닛(104), 양자화기(106), 역 양자화기(108), 역 블록 기반 이산 코사인 변환(IDCT)을 수행하도록 구성된 역 변환 유닛(110), 결합부(112,116), 및 프레임 저장부(120)를 포함한다.
    • 상기 부호기는 또한 움직임 추정기(130), 움직임 필드 부호기(140) 및 움직임 보상 예측기(150)를 포함한다.
    • 비디오 부호기(100)는 또한 비디오 다중화 부호기(170)를 포함한다.
최종 답변 (final_answer)
비디오 부호기(100)는 입력(101), 변환 유닛(104), 양자화기(106), 역 양자화기(108), 역 변환 유닛(110), 결합부(112, 116), 프레임 저장부(120), 움직임 추정기(130), 움직임 필드 부호기(140), 움직임 보상 예측기(150), 그리고 비디오 다중화 부호기(170)를 포함한다.
핵심 해석 (core_interpretation)
비디오 부호기는 입력, 변환 유닛, 양자화기, 역 양자화기, 역 변환 유닛, 결합부, 프레임 저장부, 움직임 추정기, 움직임 필드 부호기, 움직임 보상 예측기, 그리고 비디오 다중화 부호기를 포함한다.