KR20040070176A - 디지털 비디오 콘텐트를 위한 매크로블록 레벨 적응성프레임/필드 코딩 - Google Patents

디지털 비디오 콘텐트를 위한 매크로블록 레벨 적응성프레임/필드 코딩 Download PDF

Info

Publication number
KR20040070176A
KR20040070176A KR10-2004-7007762A KR20047007762A KR20040070176A KR 20040070176 A KR20040070176 A KR 20040070176A KR 20047007762 A KR20047007762 A KR 20047007762A KR 20040070176 A KR20040070176 A KR 20040070176A
Authority
KR
South Korea
Prior art keywords
block
macroblock
mode
field
frame
Prior art date
Application number
KR10-2004-7007762A
Other languages
English (en)
Other versions
KR101033398B1 (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=27540869&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20040070176(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from US10/301,290 external-priority patent/US6980596B2/en
Application filed by 제너럴 인스트루먼트 코포레이션 filed Critical 제너럴 인스트루먼트 코포레이션
Publication of KR20040070176A publication Critical patent/KR20040070176A/ko
Application granted granted Critical
Publication of KR101033398B1 publication Critical patent/KR101033398B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/112Selection of coding mode or of prediction mode according to a given display mode, e.g. for interlaced or progressive display mode
    • 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
    • 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/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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction

Landscapes

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

Abstract

디지털 비디오 콘텐트의 인코딩과 디코딩 방법 및 시스템. 디지털 비디오 콘텐트는 각각 인트라, 예측, 또는 2-예측 영상이 될 수 있는 영상의 스트림을 포함한다. 각각의 영상은 더욱 작은 블록으로 한층 분할될 수 있는 매크로블록을 포함한다. 본 방법은 프레임 모드 또는 필드 모드로의 상기 영상의 스트림 내의 각각의 영상의 더욱 작은 각각의 블록의 인코딩 및 디코딩을 수반한다.

Description

디지털 비디오 콘텐트를 위한 매크로블록 레벨 적응성 프레임/필드 코딩{Macroblock Level Adaptive Frame/Field Coding for Digital Video Content}
비디오 압축은 많은 현재 및 장래의 제품에 사용된다. 그것은 디지털 텔레비전 셋톱 박스(set-top boxes)(STBs), 디지털 위성 시스템(DSSs), 고해상도 텔레비전(HDTV) 디코더, 디지털 다용도 디스크(DVD) 플레이어, 화상회의(video conferrencing), 인터넷 비디오와 멀티미디어 콘텐트, 및 기타 디지털 비디오 애플리케이션의 핵심에 있다. 비디오 압축이 없다면, 디지털 비디오 콘텐트는 극도로 커짐으로써 디지털 비디오 콘텐트가 효율적으로 저장되고 전송되고 시청되도록 하는 것을 곤란하게 하거나 심지어는 불가능하게 할 수도 있다.
디지털 비디오 콘텐트는 텔레비전 수상기, 컴퓨터 모니터 또는 디지털 비디오 콘텐트를 디스플레이할 수 있는 다른 전자 장치 상에서 이미지로서 디스플레이될 수 있는 영상의 스트림(stream)으로 이루어진다. 특정 영상 이전의 적당한 때에 디스플레이되는 영상은 그 특정 영상과의 관계에서 "역방향(backward direction)"에 있다. 마찬가지로, 특정 영상 이후의 적당한 때에 디스플레이되는 영상은 그 특정 영상과의 관계에서 "순방향(forward direction)"에 있다.
비디오 압축은 각 영상이 하나의 프레임으로서 또는 두 개의 필드로서 인코딩되는 비디오 인코딩(encoding), 또는 코딩(coding), 프로세스 내에서 이루어진다. 각각의 프레임은 공간적 정보에 관한 다수의 라인을 포함한다. 예를 들어, 전형적인 프레임은 480개의 수직 라인을 포함한다. 각각의 필드는 그 프레임 내의 라인 개수의 절반을 포함한다. 예를 들어, 만약 프레임이 480개의 수직 라인을 포함한다면, 각각의 필드는 240개의 수직 라인을 포함한다. 전형적인 구성에서, 하나의 필드는 라인 중에서 홀수번째 라인을 포함한다. 홀수번째 라인을 포함하는 필드는 별다른 설명이 없는 한 이후의 설명 및 청구항에서 "상부(top)" 필드로 명명한다. 마찬가지로, 짝수번째 라인을 포함하는 필드는 별다른 설명이 없는 한 이후의 설명 및 청구항에서 "하부(bottom)" 필드로 명명한다. 두 필드는 서로 교차되어 교차 프레임(interlaced frame)을 형성할 수 있다.
비디오 코딩의 배후의 일반적인 아이디어는 디지털 비디오 콘텐트로부터 "필수적이지 않은(non-essential)" 데이터를 제거하는 것이다. 그러면 감소한 양의 데이터는 방송 또는 전송에 더 적은 대역폭(bandwidth)을 필요로 하게 된다. 압축된 비디오 데이터는 전송된 후에 반드시 디코딩, 즉 압축해제되어야 한다. 이 과정에서, 전송된 비디오 데이터는 코딩 과정에서 제거된 "필수적이지 않은" 데이터를 비디오 데이터 내에서 대체하는 근사 데이터(approximation data)를 생성하도록 처리된다.
비디오 코딩은 디지털 비디오 콘텐트를 압축되지 않은 디지털 비디오 콘텐트보다 더욱 적은 공간에 저장되고 더욱 적은 대역폭으로 전송될 수 있는 압축된 형태로 변환한다. 이것은 비디오 콘텐트의 영상 내의 시간적, 공간적 리던던시(redundancy)을 활용함으로써 이루어진다. 디지털 비디오 콘텐트는 하드 드라이브, DVD 또는 기타 비휘발성(non-volatile) 저장 유닛과 같은 저장 매체에 저장될 수 있다.
디지털 비디오 콘텐트를 압축하는 비디오 코딩 방법은 다양하다. 따라서, 비디오 코딩 표준은 다양한 비디오 코딩 방법을 표준화하여 압축된 디지털 비디오 콘텐트를 비디오 인코더 및 디코더의 대부분이 인식할 수 있는 포맷으로 렌더링될 수 있도록 개발되어 왔다. 예를 들어, 동영상 전문가 그룹(Motion Picture Experts Group)(MPEG)과 국제 통신 연합(International Telecommunication Union)(ITU-T)은 널리 사용되는 비디오 코딩 표준을 개발하여 왔다. 이들 표준의 예로서 MPEG-1, MPEG-2, MPEG-4, ITU-T H261 및 ITU-T H263 표준이 포함된다.
대부분의 현대 비디오 코딩 표준, 가령 MPEG과 ITU-T에 의하여 개발된 것은 부분적으로 모션 보상에 의한 시간 예측(temporal prediction with motion compensation)(MC)) 알고리듬에 근거한다. 모션 보상에 의한 시간 예측은 디지털 비디오 방송 내에서 이어지는 영상 간의 시간적 리던던시를 제거하는 데에 사용된다.
모션 보상에 의한 시간 예측 알고리듬은 전형적으로 하나 또는 두 개의 기준 영상(reference picture)을 이용하여 특정 영상을 인코딩한다. 기준 영상은 이미 인코딩된 영상이 된다. 인코딩될 특정 영상을 기준 영상 중 하나와 비교함으로써 모션 보상에 의한 시간 예측 알고리듬이 기준 영상과 인코딩될 그 특정 영상 간에 존재하는 시간적 리던던시의 이점을 활용하여 그 영상이 모션 보상에 의한 시간 예측 알고리듬을 이용하지 않고 인코딩된 경우보다 높은 압축률로 영상을 압축할 수 있게 된다. 기준 영상들 중 하나는 인코딩될 특정 영상과의 관계에서 역방향에 존재할 수 있다. 다른 기준 영상은 인코딩될 특정 영상과의 관계에서 순방향에 존재할 수 있다.
그러나, 고해상도와, 더욱 복잡한 그래피컬 콘텐트와, 더욱 바른 전송 시간에 관한 요구가 증가함에 따라, 더욱 우수한 비디오 압축 방법에 관한 요청도 증가하고 있다. 이러한 목적을 위하여, 새로운 비디오 코딩 표준이 현재 ISO와 ITU-T의 협력으로 개발되고 있다. 이 새로운 비디오 코딩 표준은 MPEG-4 어드밴스드 비디오 코딩(Advanced Video Coding(AVC))/H.264 표준이라 일컬어진다.
본 발명은 디지털 비디오 콘텐트의 인코딩과 디코딩에 관한 것이다. 보다 상세하게는, 본 발명은 디지털 비디오 콘텐트를 MPEG-4 파트 10 AVC/H.264 표준 비디오 코딩 표준(MPEG-4 Part 10 AVC/H.264 standard video coding standard)에서 사용되는 것과 같은 매크로블록 레벨에서의 프레임 모드 및 필드 모드 인코딩에 관한 것이다.
첨부된 도면은 본 발명의 다양한 실시예를 나타내면서 상세한 설명의 일부를 이룬다. 이하의 상세한 설명과 함께, 도면은 본 발명의 원리를 예시 및 설명한다. 도시된 실시예는 본 발명의 예시일 뿐, 본 발명의 범위를 제한하지는 않는다.
도 1은 본 발명을 구현하기 위하여 사용되는, MPEG-4 파트 10 AVC/H.264 표준과 같은 대표적인 비디오 코딩 표준에 의하여 정의되는 바와 같은 세가지 타입의 영상의 대표적인 시퀀스를 나타낸 도면,
도 2는 각각의 영상이 본 발명의 일례에 따라 매크로블록을 포함하는 슬라이스로 바람직하게 분할된 것을 나타낸 도면,
도 3a는 본 발명의 일례에 따라 매크로블록이 16×8 픽셀의 블록크기로 더욱 분할될 수 있음을 나타낸 도면,
도 3b는 본 발명의 일례에 따라 매크로블록이 8×16 픽셀의 블록크기로 더욱 분할될 수 있음을 나타낸 도면,
도 3c는 본 발명의 일례에 따라 매크로블록이 8×8 픽셀의 블록크기로 더욱 분할될 수 있음을 나타낸 도면,
도 3d는 본 발명의 일례에 따라 매크로블록이 8×4 픽셀의 블록크기로 더욱 분할될 수 있음을 나타낸 도면,
도 3e는 본 발명의 일례에 따라 매크로블록이 4×8 픽셀의 블록크기로 더욱분할될 수 있음을 나타낸 도면,
도 3f는 본 발명의 일례에 따라 매크로블록이 4×4 픽셀의 블록크기로 더욱 분할될 수 있음을 나타낸 도면,
도 4는 본 발명의 일례를 나타내는 모션 보상에 의한 시간 예측을 이용한 영상 구성 예시를 나타낸 도면,
도 5는 필드 모드로 인코딩되어야 하는 경우에 매크로블록이 상부 필드와 하부 필드로 나뉘는 것을 나타낸 도면,
도 6a는 본 발명의 일례에 따라 필드 모드로 인코딩되는 매크로블록이 16×8 픽셀 크기의 블록으로 분할될 수 있음을 나타낸 도면,
도 6b는 본 발명의 일례에 따라 필드 모드로 인코딩되는 매크로블록이 8×8 픽셀 크기의 블록으로 분할될 수 있음을 나타낸 도면,
도 6c는 본 발명의 일례에 따라 필드 모드로 인코딩되는 매크로블록이 4×8 픽셀 크기의 블록으로 분할될 수 있음을 나타낸 도면,
도 6d는 본 발명의 일례에 따라 필드 모드로 인코딩되는 매크로블록이 4×4 픽셀 크기의 블록으로 분할될 수 있음을 나타낸 도면,
도 7은 본 발명의 일례에 따라 한 쌍의 매크로블록에 대한 AFF 코딩에서 사용될 수 있는 대표적인 한 쌍의 매크로블록을 나타낸 도면,
도 8은 필드 모드로 인코딩될 한 쌍의 매크로블록이 먼저 하나의 상부 필드 16×16 픽셀 블록과 하나의 하부 필드 16×16 픽셀 블록으로 나뉘는 것을 나타낸 도면,
도 9는 한 쌍의 매크로블록에 대한 AFF 코딩에서의 두가지 가능한 스캐닝 경로(scanning path)를 나타낸 도면,
도 10은 한 쌍의 매크로블록에 대한 AFF 코딩의 개념을 4 또는 그 이상의 인접(neighboring) 매크로블록의 그룹에 대한 AFF 코딩으로 확장하는 본 발명의 다른 실시예를 나타낸 도면,
도 11은 스트림 내의 각각의 매크로블록과 관련된 정보를 포함하는 비트스트림 내에 포함된 정보의 일부를 나타낸 도면,
도 12는 인코딩될 블록과 그 인접 블록을 나타낸 도면으로서, 매크로블록 내의 블록의 PMV를 계산하는 다양한 바람직한 방법을 설명하는 데에 사용될 도면,
도 13은 스캐닝 경로가 수직 수캐닝 경로(vertical scanning path)인 경우에 인접 블록의 다른 정의를 나타낸 도면,
도 14는 본 발명의 일레에 따라 인접 블록의 픽셀 값(pixel value)으로부터 각각의 픽셀 값이 예측되는 것을 나타낸 도면,
도 15는 인트라 4×4 코딩에 관한 상이한 예측 방향(prediction direction)을 나타낸 도면,
도 16a-b는 선택된 4×4 픽셀 블록의 인트라-예측 모드(intra-prediction mode)(intra_pred_mode)가 인접 블록의 예측 모드와 고도로 상호연관되어 있음을 나타낸 도면,
도 17a-d는 인코딩될 현재 매크로블록 쌍과의 관계에서의 인접 블록의 정의를 나타낸 도면이다.
도면 전반에 걸쳐서 동일한 참조부호가 유사하지만 반드시 동일하지는 않은 요소에 할당될 수 있다.
다양한 실시예를 통하여, 본 발명은 디지털 비디오 콘텐트의 인코딩, 디코딩 및 비트스트림 생성(bitstream generation) 방법을 제공한다. 디지털 비디오 콘텐트는 각각 인트라(intra), 예측(predicted), 또는 2-예측(bi-predicted) 영상이 될 수 있는 영상의 스트림을 포함한다. 각각의 영상은 더 작은 블록으로 더욱 분할될 수 있는 매크로블록(macroblock)을 포함한다. 본 방법은 프레임 모드나 필드 모드로 상기 영상의 스트림 내의 각각의 영상의 각각의 매크로블록에 대한 인코딩과 디코딩을 수반한다.
본 발명은 매크로블록 레벨에서의 영상의 스트림이나 영상의 슬라이스를 포함하여 이루어지는 디지털 비디오 콘텐트의 적응성 프레임/필드 코딩(adaptive frame/field(AFF) coding) 방법을 제공한다. 본 발명은 영상 레벨 AFF의 개념을 매크로블록 레벨로 확장한다. 영상 레벨의 AFF 코딩에서, 영상의 스트림 내의 인코딩될 각각의 영상은 코딩될 다른 영상의 프레임이나 필드의 코딩 모드와 무관하게 프레임 모드나 필드 모드로 인코딩된다. 만약 영상이 프레임 모드로 인코딩되면, 교차 프레임(interlaced frame)을 이루는 두 개의 필드가 함께 코딩된다. 역으로, 만약 영상이 필드 모드로 인코딩되면, 교차 프레임을 이루는 두 개의 필드는 개별적으로 코딩된다. 인코더는 프레임 모드 코딩과 필드 모드 코딩 중에서 어떤 타입의 코딩이 각각의 영상에 더욱 유리할 것인지를 판단하여 그 영상에 대한 인코딩 타입을 선택한다. 프레임 모드와 필드 모드 간의 선택의 정확한 방법은 본 발명에서 중요하지 않으므로 여기에서 상세히 서술하지 않기로 한다.
상술한 바와 같이, MPEG-4 파트 10 AVC/H.264 표준은 디지털 비디오 콘텐트를 인코딩하고 압축하는 새로운 표준이다. MPEG-4 파트 10 AVC/H.264 표준을 설명하는 문서가 레퍼런스로서 포함되며, 조인트 비디오 팀(Joint Video Team)(JVT)에 의하여 2002년 8월 10일에 발행된 "Joint Final Committee Draft(JFCD) of Joint Video Specification"이 포함된다. (ITU-T Rec.H.264 & ISO/IEC 14496-10 AVC). 조인트 비디오 팀은 ISO나 MPEG와 ITU-T의 전문가로 이루어진다. MPEG-4 파트 10 AVC/H.264 표준의 공공적 특성으로 인하여, 이 상세한 설명은 MPEG-4 파트 10 AVC/H.264 비디오 코딩의 모든 기존 국면을 서술하는 대신, 그 표준의 관련 부분만을 언급하기로 한다.
비록 본 AFF 인코딩 방법이 MPEG-4 파트 10 AVC/H.264 표준 가이드라인과 호환되고, 이를 이용하여 설명될 수도 있지만, 특정 표준 또는 애플리케이션에 가장 적합한 것으로 변형되어 사용될 수 있다.
도면을 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다.
도 1은 본 발명을 구현하기 위하여 사용되는, MPEG-4 파트 10 AVC/H.264 표준과 같은 대표적인 비디오 코딩 표준에 의하여 정의되는 바와 같은 세가지 타입의 영상의 대표적인 시퀀스를 나타낸 도면이다. 상술한 바와 같이, 인코더는 영상을 인코딩하며 디코더는 영상을 디코딩한다. 인코더나 디코더는 프로세서나, 주문형 집적회로(application specific integrated circuit(ASIC)나, 필드 프로그래머블 게이트 어레이(field programmable gate array)(FPGA)나, 코더/디코더(coder/decoder)(CODEC)나, 디지털 시그널 프로세서(digital signal processor)(DSP), 또는 기타 영상의 스트림을 인코딩할 수 있는 전자 장치가 될 수 있다. 그러나, 이후의 상세한 설명과 청구항에서 사용되는 바와 같이, 별도의 언급이 없는 한, "인코더"라는 용어가 영상의 스트림을 포함하는 디지털 비디오 콘텐트를 인코딩하는 모든 전자 장치를 광범위하게 언급하도록 사용하기로 한다. "디코더"라는 용어는 영상의 스트림을 포함하는 디지털 비디오 콘텐트를 디코딩하는 모든 전자 장치를 광범위하게 언급하도록 사용하기로 한다.
도 1에 나타낸 바와 같이, 비디오 코딩 방법에서 사용될 수 있는 영상에는 바람직하게는 세 가지 타입이 있다. 세 가지 타입의 영상은 동작의 시간적 예측 보상을 사용하여 최대 리던던시 감소를 탐색하는 동안 저장된 디지털 비디오 콘텐트에 대한 임의 액세스를 지원하도록 정의된다. 세 가지 타입의 영상은 인트라(I) 영상(100), 예측(predicted)(P) 영상(102a,b) 및 2-예측(bi-predicted)(B) 영상(101a-d)을 말한다. 인트라 영상(100)은 저장된 디지털 비디오 콘텐트에 대한 임의 액세스를 위한 액세스 지점을 제공하며, 단지 약간의 압축으로만 인코딩될 수 있다. 인트라 영상(100)은 기준 영상을 참조하지 않고 인코딩된다.
예측 영상(102a,b)은 이미 인코딩된 인트라, 예측 또는 2-예측 영상을 기준 영상으로서 이용하여 인코딩된다. 기준 영상은 인코딩되는 예측 영상과의 관계에서 시간적으로 순방향일 수도 있고 역방향일 수도 있다. 예측 영상(102a,b)은 인트라 영상(100)보다 더욱 압축되어 인코딩될 수 있다.
2-예측 영상(101a-d)은 두 개의 시간적 기준 영상, 즉 순방향 기준 영상과 역방향 기준 영상을 이용하여 인코딩된다. 순방향 기준 영상은 때때로 경과 기준 영상(past reference picture)으로 일컬어지며, 역방향 기준 영상은 때때로 장래 기준 영상(future reference picture)으로 일컬어진다. 본 발명의 일례는 순방향 기준 영상과 역방향 기준 영상이 인코딩되는 2-예측 영상과의 관계에서 동일한 시간적 방향일 수 있다는 것이다. 2-예측 영상(101a-d)은 세 가지 영상 타입 중에서 최대로 압축되어 인코딩될 수 있다.
세 가지 영상 타입 간의 기준 관계(103)가 도 1에 나타나 있다. 예를 들어, 예측 영상(102a)이 인코딩된 인트라 영상(100)을 기준 영상으로 이용하여 인코딩될 수 있다. 2-예측 영상(101a-d)은 인코딩된 인트라 영상(100)이나 인코딩된 예측 영상(102a)을 기준 영상으로 이용하여 도 1에 나타난 바와 같이 인코딩될 수 있다. 본 발명의 일례의 원리 하에서, 인코딩된 2-예측 영상(101a-d) 또한 인코딩될 다른 2-예측 영상의 기준 영상으로 사용될 수 있다. 예를 들어, 도 1의 2-예측 영상(101c)은 두 개의 다른 2-예측 영상(101b와 101d)을 그 기준 영상으로 하여 나타내어진다.
도 1에 나타난 인트라(100), 예측(101a-d) 및 2-예측(102a,b) 영상의 개수와 특정 순서는 영상의 대표적인 구성으로 주어졌지만, 본 발명에서 반드시 갖추어져야 하는 것은 아니다. 몇 개의 인트라, 예측 및 2-예측 영상이라도 임의의 순서로서 특정 애플리케이션에서 최상으로 작용하도록 사용될 수 있다. MPEG-4 파트 10 AVC/H.264 표준은 두 개의 기준 영상 간에서 2-예측 영상의 개수에 어떠한 제한도 부과하지 않을 뿐더러, 두 개의 인트라 영상 간에도 영상의 개수에 어떠한 제한도 부과하지 않는다.
도 2는 각각의 영상(200)이 슬라이스(202)로 바람직하게 분할된 것을 나타낸 도면이다. 슬라이스(202)는 매크로블록(201)의 그룹을 포함한다. 매크로블록(201)은 픽셀의 직사각형 그룹이다. 도 2에 나타낸 바와 같이, 바람직한 매크로블록(201)의 크기는 16×16 픽셀이다.
도 3a-f는 매크로블록이 더 작은 블록으로 더욱 분할될 수 있음을 나타낸 도면이다. 예를 들어, 도 3a-f에 나타낸 바와 같이, 매크로블록은 16×8 픽셀(도 3a;300), 8×16 픽셀(도 3b;301), 8×8 픽셀(도 3c;302), 8×4 픽셀(도 3d;303), 4×8 픽셀(도 3e;304) 또는 4×4 픽셀(도 3f;305)의 블록 크기로 더욱 분할될 수 있다. 이렇게 더 작은 블록 크기는 모션 보상에 의한 시간 예측 알고리즘을 사용하는 일부 애플리케이션에서 바람직하다.
도 4는 본 발명의 일례를 나타내는 모션 보상에 의한 시간 예측을 이용한 영상 구축 예시를 나타낸 도면이다.
모션 보상에 의한 시간 예측은 현재 영상인 영상 N(400)이 다른 영상인 영상 N-1(401)을 변환(translation)함으로써 국지적으로 모델링될 수 있다고 가정한다. 영상 N-1(401)은 영상 N(400)의 인코딩을 위한 기준 영상이고, 영상 N(400)과의 관계에서 순방향 또는 역방향이 될 수 있다.
도 4에 나타난 바와 같이, 각각의 영상은 매크로블록(201a,b)을 포함하는 슬라이스로 분할되는 것이 바람직하다. 영상 N-1(401)은 영상 N(400)에서 보여질 이미지(403)를 포함한다. 이미지(403)의 영상 N(402) 내에서의 시간적 위치는 도 4에서 나타낸 바와 같이, 영상 N-1(401) 내에서의 시간적 위치와는 다를 것이다. 영상 N(400)의 각각의 매크로블록(201b)의 이미지 콘텐트는 영상 N-1(401)의 각각의 대응하는 매크로블록(201a)의 이미지 콘텐트로부터 이미지(403)이 영상 N(400) 내에서 새로운 시간적 위치(temporal position)(402)로 이동하기 위하여 영상 N-1(401)의 각각의 매크로블록(201a)의 이미지 콘텐트의 시간적 동작(temporal motion)의 필요량을 추정함으로써 예측된다. 본래 이미지(402)가 인코딩되는 대신에, 이미지(402)와 그 예측(403) 간의 차이(404)가 실제로 인코딩되어 전송된다.
영상 N(400) 내의 각각의 이미지에 대하여, 시간적 예측은 때때로 이미지(403)가 영상 N(402) 내의 새로운 시간적 위치로 이동하는 데에 필요한 시간적 동작의 양을 나타내는 동작 벡터(motion vector)에 의하여 기술될 수 있다. 모션 보상에 의한 시간 예측에 사용되는 동작 벡터(406)는 인코딩되고 전송되어야 한다.
도 4는 영상 N(400) 내에서의 이미지(402)가 이미지와 그 예측 및 관련 동작 벡터(406) 사이의 차이(404)로써 표현될 수 있음을 나타낸 도면이다. 동작 벡터들을 이용한 정확한 인코딩 방법은 특정 애플리케이션에서 최적으로 발휘되도록 변경될 수 있으며, 이는 당업자에 의하여 용이하게 구현될 수 있다.
매크로블록 레벨 AFF 코딩을 이해하기 위하여, 영상의 스트림에 대한 영상 레벨 AFF 코딩에 관한 개관을 하기로 한다. 교차 시퀀스(interlaced sequence)인 프레임은 두 개의 필드, 즉 상부 필드와 하부 필드를 가지는데, 이들은 인터리브(interleave)되어 하나의 필드 주기(field period)만큼 적당히 분리된다. 필드 주기는 프레임 주기(frame period)의 절반 시간이다. 영상 레벨 AFF 코딩에서, 교차 프레임의 두 개의 필드는 함께(jointly) 코딩될 수도, 따로따로 코딩될 수도 있다. 만약 함께 코딩되면, 프레임 모드 코딩이 사용된다. 반대로, 만약 따로따로 코딩되면, 필드 모드 코딩이 사용된다.
한편, 고정 프레임/필드 코딩(fixed frame/field coding)은 하나의 모드로만 영상의 스트림 내의 모든 영상을 코딩한다. 그 모드는 프레임 모드가 될 수도 있고 필드 모드가 될 수도 있다. 영상 레벨 AFF는 많은 애플리케이션에서 고정 프레임/필드 코딩에 바람직한데, 이는 인코더가 프레임 모드나 필드 모드 중에서 모드를 선택하여 디지털 비디오 매체의 콘텐트에 기반한 영상의 스트림 내의 각각의 영상을 인코딩할 수 있도록 해주기 때문이다. AFF 코딩은 많은 애플리케이션에서 고정 프레임/필드 코딩보다 우수한 압축률을 보인다.
본 발명의 일례는 AFF 코딩이 영상의 작은 조각(portion) 상에서 수행될 수 있다는 것이다. 이 작은 조각은 하나의 매크로블록일 수도, 한 쌍의 매크로블록일 수도 있고 매크로블록의 그룹이 될 수도 있다. 매크로블록이나 한 쌍의 매크로블록이나 매크로블록의 그룹 또는 슬라이스는 영상 내의 다른 매크로블록이 어떻게 인코딩되는지와 무관하게 프레임 모드 또는 필드 모드로 인코딩된다. 세가지 경우 각각에서의 AFF 코딩을 이하에서 자세히 설명하기로 한다.
첫번째 경우에서, AFF 코딩은 하나의 매크로블록에 대하여 수행된다. 만약 매크로블록이 프레임 모드로 인코딩된다면, 매크로블록 내의 두 개의 필드가 함께 인코딩된다. 일단 프레임으로서 인코딩되면, 매크로블록은 동작의 시간적 예측 보상 알고리듬에 이용하기 위한 도 3a-f에서와 같은 더 작은 블록으로 더욱 분할될 수 있다.
그러나, 만약 매크로블록이 필드 모드로 인코딩되면, 매크로블록(500)은 상부 필드(501)와 하부 필드(502)로 도 5에서와 같이 나뉜다. 두 개의 필드는 그 후 각각 코딩된다. 도 5에서, 매크로블록은 M개의 픽셀 행(row)과 N개의 픽셀 열(column)을 가진다. N과 M의 바람직한 값은 16으로서, 이는 매크로블록을 16×16 매크로블록으로 만든다. 도 5에 나타낸 바와 같이, 다른 모든 픽셀 행은 음영처리된다. 음영 영역(shaded area)은 매크로블록(500)의 상부 필드 내의 픽셀 열을 나타내며, 비음영 영역(unshaded area)은 매크로블록(500)의 하부 필드 내의 픽셀 열을 나타낸다.
도 6a-d에 나타낸 바와 같이, 필드 모드로 인코딩되는 매크로블록은 4개의 추가적인 블록으로 분할될 수 있다. 블록은 하나의 패리티(parity)를 가져야 한다. 단일 패리티 조건(single parity requirement)은 하나의 블록이 상부 필드와 하부 필드를 모두 포함할 수 없음을 뜻한다. 오히려, 그것은 필드의 하나의 패리티를 반드시 포함하여야 한다. 따라서, 도 6a-d에 나타낸 바와 같이, 필드 모드 매크로블록은 16×8 픽셀(도 6a;600), 8×8 픽셀(도 6b;601), 4×8 픽셀(도 6c;602) 및 4×4 픽셀(도 6d;603)의 블록으로 분할될 수 있다. 도 6a-d는 각각의 블록이 단일 패리티의 필드를 포함함을 나타낸다.
매크로블록 쌍에 대한 AFF 코딩을 설명하기로 한다. 매크로블록 쌍에 대한 AFF 코딩은 쌍 기반 AFF 코딩(pair based AFF coding)으로 종종 일컬어진다. 도 6a-d에서와 도 3a-f에서의 블록 크기를 비교하면, 필드 모드로 인코딩된 매크로블록은 프레임 모드로 인코딩된 매크로블록보다 적은 블록패턴으로 분할될 수 있음을 알 수 있다. 16×16 픽셀, 8×16 픽셀 및 8×4 픽셀의 블록 크기는 단일 패리티 조건때문에 필드 모드로 인코딩된 매크로블록으로는 얻을 수 없다. 이는 단일 매크로블록 기반 AFF의 성능이 필드 모드 코딩을 매우 선호하는 일부 시퀀스 또는 애플리케이션에서는 유용하지 않을 수도 있음을 내포한다. 필드 모드 매크로블록 코딩의 성능을 보장하기 위해서는 일부 애플리케이션에서 필드 모드로 인코딩되는 매크로블록이 프레임 모드로 코딩되는 매크로블록과 동일한 블록 크기를 가지도록 하는 것이 바람직하다. 이것은 단일 매크로블록이 아니라 매크로블록 쌍에 대하여 AFF 코딩을 수행함으로써 달성될 수 있다.
도 7은 본 발명의 일례에 따라 매크로블록 쌍에 대한 AFF 코딩에서 사용될 수 있는 대표적인 매크로블록 쌍(700)을 나타낸다. 만약 매크로블록 쌍(700)이 프레임 모드로 인코딩된다면, 그 쌍은 두 개의 프레임-기반 매크로블록(frame-based macroblock)으로서 코딩된다. 각각의 매크로블록에서, 각 매크로블록 내의 두 개의 필드는 함께 인코딩된다. 일단 프레임으로서 인코딩되면, 매크로블록은 동작의 시간적 예측 보상 알고리듬에 사용하기 위한 도 3a-f와 같은 작은 블록으로 더욱 분할될 수 있다.
그러나, 만약 매크로블록 쌍(700)이 필드 모드로 인코딩된다면, 먼저 하나의 상부 필드 16×16 픽셀 블록(800)과 하나의 하부 필드 16×16 픽셀 블록(801)으로 도 8에 나타낸 바와 같이 나뉜다. 두 개의 필드는 그 후 따로따로 코딩된다. 도 8에서, 매크로블록 쌍(700) 내의 각각의 매크로블록은 N=16 열인 픽셀과 M=16 행인 픽셀을 가진다. 따라서, 매크로블록 쌍(700)의 규격은 16×32 픽셀이 된다.
도 8에 나타낸 바와 같이, 다른 모든 픽셀 행은 음영처리된다. 음영 영역은 매크로블록의 상부 필드 내의 픽셀 행을 나타내며, 비음영 영역은 매크로블록의 하부 필드 내의 픽셀 행을 나타낸다. 상부 필드 블록(800)과 하부 필드 블록(801)은 이제 도 3a-f의 가능한 블록 크기 중 하나로 분할될 수 있다.
본 발명의 일례에 따라, 매크로블록 쌍(700)의 AFF 코딩에는 두 가지 가능한스캐닝 경로(scanning path)가 존재한다. 스캐닝 경로는 영상의 매크로블록 쌍이 인코딩되는 순서를 결정한다. 도 9는 매크로블록 쌍(700)의 AFF 코딩에서의 두 가지 가능한 스캐닝 경로를 나타낸다. 스캐닝 경로 중 하나는 수평 스캐닝 경로(horizontal scanning path)(900)이다. 수평 스캐닝 경로(900)에서, 영상(200)의 매크로블록 쌍(700)은 좌에서 우로, 상부에서 하부로, 도 9에 나타낸 바와 같이 코딩된다. 다른 스캐닝 경로는 수직 스캐닝 경로(vertical scanning path)(901)이다. 수직 스캐닝 경로에서, 영상(200)의 매크로블록 쌍(700)은 상부에서 하부로, 좌에서 우로, 도 9에 나타낸 바와 같이 코딩된다. 프레임 모드 코딩에서, 매크로블록 쌍(700)의 상부 매크로블록(top macroblock)이 먼저 코딩되며, 이어서 하부 매크로블록(bottom macroblock)이 코딩된다. 필드 모드 코딩에서는, 매크로블록 쌍의 상부 필드 매크로블록이 먼저 코딩되며, 이어서 하부 필드 매크로블록의 코딩된다.
도 10에 나타낸 바와 같이, 본 발명의 다른 실시예는 매크로블록 쌍에 대한 AFF 코딩의 개념을 4 또는 그 이상의 인접 매크로블록의 그룹(902)에 대한 AFF 코딩으로 확장한다. 매크로블록 그룹에 대한 AFF 코딩은 종종 그룹 기반 AFF 코딩(group based AFF coding)으로 일컬어진다. 매크로블록 쌍의 스캐닝에서 사용된 것과 동일한 스캐닝 경로, 즉 수평(900) 및 수직(901) 스캐닝 경로가 인접 매크로블록의 그룹(902)을 스캐닝하는 데에 사용된다. 비록 도 10에 나타낸 예는 4개의 매크로블록의 그룹을 나타내고 있지만, 그룹은 4개의 매크로블록보다 많을 수도 있다.
만약 매크로블록 그룹(902)이 프레임 모드로 인코딩되어야 하면, 그룹은 4개의 프레임 기반 매크로블록으로 코딩된다. 각각의 매크로블록에서는 각각의 매크로블록 내의 두 개의 필드가 함께 인코딩된다. 일단 프레임으로서 인코딩되면, 매크로블록은 동작의 시간적 예측 보상 알고리즘에서 사용하기 위한 도 3a-f의 더 작은 블록으로 더욱 분할될 수 있게 된다.
그러나, 만약 4개의 매크로블록 그룹(902)이 예를 들어 필드 모드로 인코딩된다면, 그것은 먼저 하나의 상부 필드 32×16 픽셀 블록과 하나의 하부 필드 32×16 픽셀 블록으로 나뉜다. 두 개의 필드는 그 후 따로따로 코딩된다. 상부 필드 블록과 하부 필드 블록은 매크로블록으로 분할될 수 있게 된다. 각각의 매크로블록은 도 3a-f의 가능한 블록 크기 중 하나로 더욱 분할될 수 있다. 이 과정은 도 8의 경우와 유사하므로, 별도의 도면을 제공하여 이 실시예를 설명하지는 않기로 한다.
매크로블록 레벨의 AFF 코딩에서, 프레임/필드 플래그 비트(frame/field flag bit)가 영상의 비트스트림에 포함되어 프레임 모드와 필드 모드 중 어떤 모드가 각각의 매크로블록의 인코딩에 사용되는지를 지시하도록 하는 것이 바람직하다. 비트스트림은 도 11에 나타낸 바와 같이 스트림 안의 각각의 매크로블록과 관련된 정보를 포함한다. 예를 들어, 비트스트림은 영상 헤더(picture header)(110), 실행 정보(run information)(111) 및 매크로블록 타입(macroblock type)(113) 정보를 포함할 수 있다. 프레임/필드 플래그(112)는 만약 AFF가 각각의 개별적인 매크로블록에 대하여 수행된다면 비트스트림 내의 각각의 매크로블록 이전에 포함되는 것이 바람직하다. 만약 AFF가 매크로블록 쌍에 대하여 수행된다면, 프레임/필드 플래그(112)는 비트스트림 내의 각각의 매크로블록 쌍의 이전에 포함되는 것이 바람직하다. 마지막으로, 만약 AFF가 매크로블록 그룹에 대하여 수행된다면, 프레임/필드 플래그(112)는 비트스트림 내의 각각의 매크로블록 그룹의 이전에 포함되는 것이 바람직하다. 하나의 실시예로서 프레임 모드가 사용되어야 할 때 프레임/필드 플래그(112) 비트가 0이 되고, 필드 코딩이 사용되어야 할 때 1이 되도록 하는 것이 있다. 다른 실시예로서 프레임 모드가 사용되어야 할 때 프레임/필드 플래그(112) 비트가 1이 되고, 필드 코딩이 사용되어야 할 때 0이 되도록 하는 것이 있다.
본 발명의 다른 실시예는 매크로블록 레벨 AFF에서 인코더가 매크로블록을 분할할 때의 블록 크기를 결정하는 방법을 수반한다. 바람직하지만 절대적이지 않은, 이상적인 블록 크기를 결정하는 방법은 바이어스 또는 비율 왜곡(rate distortion)(RD)을 기반으로 하거나 기반으로 하지 않는 절대 편차 합(sum absolute difference)(SAD)이다. 예를 들어, 절대 편차 합은 가능한 블록 크기의 성능을 체크하여 그 결과에 근거한 이상적인 블록 크기를 선택한다. 바이어스 또는 비율 왜곡을 기반으로 하거나 기반으로 하지 않는 절대 편차 합을 이용하는 정확한 방법은 당업자에 의하여 용이하게 수행될 수 있다.
본 발명의 일례에 따라, 매크로블록 레벨 AFF 에서의 각각의 프레임 및 필드 기반 매크로블록은 인트라(intra) 코딩되거나 인터(inter) 코딩될 수 있다. 인트라 코딩에서, 매크로블록은 다른 매크로블록을 시간적으로 참조하지 않고 인코딩된다. 반면, 인터 코딩에서는, 동작의 시간적 예측 보상을 사용하여 매크로블록을 코딩한다.
만약 인터 코딩이 사용되면, 16×16 픽셀, 16×8 픽셀, 8×16 픽셀, 8×8 픽셀의 크기인 블록은 그 자신의 기준 영상을 가질 수 있다. 블록은 프레임 기반 매크로블록이 될 수도 있고 필드 기반 매크로블록이 될 수 있다. MPEG-4 파트 10 AVC/H.264 표준은 두 개의 기준 영상만이 아니라 복수의 기준 영상을 허용한다. 복수의 기준 영상을 사용함으로써 인코더가 인코딩되어야 할 블록에 가장 가깝게 부합하는 기준 영상 내의 블록을 발견할 수 있게 됨으로써 동작의 시간적 예측 보상의 성능이 개선된다. 인코딩되어야 할 블록에 가장 가깝게 부합하는 기준 영상 내의 블록을 사용함으로써, 영상을 인코딩할 때에 가장 많이 압축을 할 수 있게 된다. 기준 영상들은 프레임 및 필드 버퍼 내에 저장되고 참조 프레임 번호(reference frame number) 및 참조 필드 번호(reference field number)가 인코딩될 현재 영상으로부터의 시간적 거리에 근거하여 할당된다. 기준 영상이 저장되어야 할 현재 영상과 가까울수록, 그 기준 영상이 선택될 가능성이 높다. 필드 모드 코딩에서, 블록에 대한 기준 영상은 기준 프레임 또는 필드 버퍼 내의 임의의 기준 영상의 상부 필드나 하부 필드 중 어느 것이라도 될 수 있다.
프레임 또는 필드 기반 매크로블록 내의 각각의 블록은 그 자신의 동작 벡터를 가질 수 있다. 동작 벡터는 공간적으로 예측 코딩된다. 본 발명의 일례에 따라, 인터 코딩에서, 동작 예측 벡터들(prediction motion vector)(PMV)은 각각의 블록에 대해서도 계산될 수 있다. 블록의 동작 예측 벡터와 관련 동작 벡터 간의 대수학적 차이도 그 후 계산되어 인코딩될 수 있다. 이것은 동작 벡터에 대한 압축된 비트를 생성한다.
도 12 또한 매크로블록 내의 블록의 동작 예측 벡터를 계산하는 다양한 바람직한 방법을 설명하는 데에 사용될 수 있다. 도 12의 현재 블록인 E는 인접 블록인 A,B,C 및 D와 마찬가지로 인터 코딩되어야 한다. E는 별도 언급이 없는 한 앞으로 현재 블록(current block)이라 명명하고, A,B,C 및 D는 앞으로 E의 인접 블록(beighboring block)이라 명명하기로 한다. 블록 E의 동작 예측 벡터는 인접 블록의 동작 벡터로부터 도출된다. 이들 인접 블록은 도 12의 예시에서 A,B,C 및 D가 된다. 블록 E에 대한 동작 예측 벡터를 계산하는 하나의 바람직한 방법은 블록 A,B,C 및 D의 동작 벡터의 중점(median)이나, 이들 동작 벡터의 평균이나 이들 동작 벡터의 가중평균(weighted average) 중 하나를 계산하는 것이다. A 내지 E의 각각의 블록은 프레임 모드일 수도 있고 필드 모드일 수도 있다.
블록 E에 대한 동작 예측 벡터를 계산하는 다른 바람직한 방법은 예/아니오 방법(yes/no method)을 사용하는 것이다. 예/아니오 방법의 원리에 따르면, 하나의 블록이 E에 대한 동작 예측 벡터의 계산에 포함된 동작 벡터를 가지기 위해서는 블록 E와 동일한 프레임 또는 필드 코딩 모드이어야 한다. 예를 들어, 만약 도 12의 블록 E가 프레임 모드라면, 블록 A 또한 프레임 모드이어야만 그 동작 벡터가 블록 E에 대한 동작 예측 벡터의 계산에 포함되도록 할 수 있다. 만약 E의 인접 블록 중 하나가 블록 E와 동일한 코딩 모드가 아니라면, 그 동작 벡터는 블록 E의 동작 예측 벡터를 계산하는 데에 사용되지 않는다.
"항상 모드(always mode)" 또한 블록 E에 대한 동작 예측 벡터를 계산하는 데에 사용될 수 있다. 항상 모드로는, 블록 A,B,C 및 D는 프레임 또는 필드 코딩 모드와 상관없이 블록 E의 동작 예측 벡터를 계산하는 데에 항상 사용된다. 만약 E가 프레임 모드이고 인접 블록이 필드 모드라면, 블록 E의 동작 예측 벡터 계산에 포함되기 이전에 인접 블록의 수직 요소(vertical component)에 2가 곱해진다. 만약 E가 필드 모드이고 인접 블록이 프레임 모드라면, 블록 E의 동작 예측 벡터 계산에 포함되기 이전에 인접 블록의 수직 요소가 2로 나누어진다.
만약 매크로블록이 쌍 기반 AFF 인코딩이나 그룹 기반 AFF 인코딩을 이용하여 인코딩되었다면 "선택적 방법(selective method)"이 또한 블록 E에 대한 동작 예측 벡터를 계산하는 데에 사용될 수 있다. 선택적 방법에서, 프레임 기반 블록(frame-based block)이 기준 프레임을 가리키는 프레임 기반 동작 벡터(frame-based motion vector)를 가진다. 블록에는 또한 기준 필드를 가리키는 필드 기반 동작 벡터(field-based motion vector)가 할당될 수도 있다. 필드 기반 동작 벡터는 블록의 프레임 기반 동작 벡터에서 수직 동작 벡터 요소가 2로 나누어진 것이다. 참조 필드 번호는 참조 프레임 번호에 2가 곱해진 것이다. 필드 기반 블록은 기준 필드를 가리키는 필드 기반 동작 벡터를 가진다. 또한 블록에는 기준 프레임을 가리키는 프레임 기반 동작 벡터도 할당된다. 프레임 기반 동작 벡터는 블록의 필드 기반 동작 벡터에서 수직 동작 벡터 요소에 2가 곱해진 것이다. 참조 프레임 번호는 참조 필드 번호가 2로 나누어진 것이다.
선택적 방법(selective method)을 이용하여 블록의 동작 예측 벡터를 유도하는 것을 도 12를 참조하여 이하에서 설명하기로 한다. 매크로블록 쌍 기반 AFF에서, 매크로블록 내의 각각의 블록은 매크로블록 쌍의 제2 매크로블록 내의 동일한 기하학적 위치에 존재하는 컴패니언 블록(companion block)과 관련지어진다. 도 12에서, 각각의 블록 E의 인접 블록(A,B,C 및 D)은 블록 E와 동일한 프레임 또는 필드 코딩 모드일 수도 있고 아닐 수도 있다. 따라서, 아래와 같은 규칙이 적용된다:
만약 E가 프레임 모드이고 인접 블록이 프레임 모드라면, 인접 블록의 진정한(true) 프레임 기반 동작 벡터가 E의 동작 예측 벡터를 위하여 사용된다.
만약 E가 프레임 모드이고 인접 블록이 필드 모드라면, 다음과 같은 규칙이 E의 동작 예측 벡터를 계산하는 데에 적용된다. 만약 인접 블록(예:블록 A)과 그 컴패니언 필드 기반 블록이 동일한 기준 필드를 가진다면, 두 블록의 할당된 필드 기반 동작 벡터의 평균이 E의 동작 예측 벡터를 계산하는 데에 사용된다. 동작 예측 벡터의 참조 프레임 번호는 인접 블록의 참조 필드 번호를 2로 나눈 것이 된다. 그러나, 만약 인접 블록과 그 컴패니언 필드 블록이 서로 다른 기준 필드를 가진다면, 그 인접 블록은 E의 동작 예측 벡터를 계산하는 데에 사용될 수 없다.
만약 E가 필드 모드이고 인접 블록이 프레임 모드이면, 다음과 같은 규칙이 E의 동작 예측 벡터를 계산하는 데에 적용된다. 만약 인접 블록(예: 블록 A)와 그 컴패니언 프레임 기반 블록이 동일한 기준 프레임을 가진다면, 두 블록의 할당된 프레임 기반 동작 벡터의 평균이 E의 동작 예측 벡터를 계산하는 데에 사용된다. 동작 예측 벡터 계산에 사용된 참조 필드 번호는 인접 블록의 참조 프레임 번호에 2를 곱한 것이 된다. 그러나, 만약 인접 블록과 그 컴패니언 필드 블록이 서로 다른 기준 프레임을 가진다면, 그 인접 블록은 E의 동작 예측 벡터를 계산하는 데에 사용될 수 없다.
만약 E가 필드 모드이고 인접 블록이 필드 모드이면, 인접 블록의 진정한 필드 기반 동작 벡터가 E의 동작 예측 벡터를 계산하는 데에 사용된다.
바람직한 대안적인 옵션이 블록의 동작 예측 벡터를 계산하기 위한 선택 방법(selective method)에 사용될 수 있다. 도 12에서, 각각의 E의 인접 블록(A,B,C 및 D)은 블록 E와 동일한 프레임 또는 필드 코딩 모드일 수도 있고 아닐 수도 있다. 따라서, 다음과 같은 규칙이 선택 방법에 대한 이 대안적인 바람직한 옵션에 적용된다:
만약 E가 프레임 모드이고 인접 블록이 프레임 모드이면, 그 인접 블록의 진정한 프레임 기반 동작 벡터가 E의 동작 예측 벡터에 사용된다.
만약 E가 프레임 모드이고 인접 블록이 필드 모드이면, 그 인접 블록과 컴패니언 필드 기반 블록에 할당된 필드 기반 벡터의 가중 평균이 E의 동작 예측 벡터를 계산하는 데에 사용된다. 가중치(weghting factor)는 인접 블록과 그 컴패니언 블록의 참조 필드 번호에 의거한다.
만약 E가 필드모드이고 인접 블록이 프레임 모드이면, 인접 블록과 그 컴패니언 프레임 기반 블록에 할당된 필드 기반 동작 벡터의 가중평균이 E의 동작 예측 벡터를 계산하는 데에 사용된다. 가중치들은 인접블록과 그 컴패니언 블록의 참조 프레임 번호에 의거한다.
만약 E가 필드 모드이고 인접 블록이 필드 모드이면, 그 인접 블록의 진정한 필드 기반 동작 벡터가 E의 동작 예측 벡터를 계산하는 데에 사용된다.
블록의 동작예측 벡터를 계산하는 다른 바람직한 방법은 "대체 선택적 방법(alt selective method)"이다. 이 방법은 단일 매크로블록 AFF 코딩이나 쌍 기반매크로블록 AFF 코딩 또는 그룹 기반 AFF 코딩에서 사용될 수 있다. 이 방법에서, 각각의 블록에는 수평 및 수직 인덱스 번호(index number)가 할당되는데, 이는 그 블록의 수평 및 수직 좌표를 나타낸다. 각각의 블록에는 또한 수평 및 수직 필드 좌표가 할당된다. 블록의 수평 필드 좌표는 그 수평 좌표와 동일하다. 상부 필드 매크로블록 내의 블록에 대하여, 수직 필드 좌표는 그 블록의 수직 좌표의 절반이 되며, 상부 필드 극성(top field polarity)이 할당된다. 하부 필드 매크로블록 내의 블록에 대하여, 그 블록의 수직 필드 좌표는 그 블록의 수직 좌표에서 4를 뺀 결과를 2로 나눔으로써 얻어진다. 그 블록에는 또한 하부 필드 극성이 할당된다. 두 블록에 상이한 필드 극성을 할당하는 것의 결과는 두 블록이 동일한 수평 및 수직 필드 좌표를 가지지만 필드 극성은 다르다는 것이다. 따라서, 블록의 좌표가 주어지면, 필드 좌표 및 그 필드 극성이 계산될 수 있으며, 그 역도 마찬가지이다.
도 12를 참조하여 대체 선택적 방법을 더욱 상세하게 설명하기로 한다. 블록 E의 동작 예측 벡터가 계산될 것이다. bx가 블록 E의 수평 크기를 4로 나눈 값이라고 할 때, 이것은 이 예에서 블록의 크기가 된다. E의 동작 예측 벡터들은 E가 프레임 모드인지 필드 모드인지의 여부에 따라서 다음과 같이 얻어진다.
블록 E가 프레임 모드이고 (x,y)가 각각 E의 수평 및 수직 좌표라고 하자. E의 인접 블록은 다음과 같이 정의된다. A는 좌표가 (x-1,y)인 블록이다. B는 좌표가 (x,y-1)인 블록이다. D는 좌표가 (x-1,y-1)인 블록이다. C는 좌표가 (x+bx+1,y-1)인 블록이다. 만약 A,B,C 및 D 중 하나가 필드 모드라면 그 수직 동작 벡터는 예측에 사용되기 이전에 2로 나누어지며, 그 참조 프레임 번호는 참조 필드 번호를 2로 나눔으로써 계산된다.
이제 블록 E가 상부 또는 하부 필드 모드이고 (xf,yf)가 각각 E의 수평 및 수직 좌표라고 하자. 이 경우에는, E의 인접 블록들이 다음과 같이 정의된다. A는 좌표가 (xf-1,yf)인 블록으로서, E와 동일한 극성을 가진다. B는 좌표가 (xf,yf-1)인 블록으로서 E와 동일한 극성을 가진다. D는 좌표가 (xf-1,yf-1)인 블록으로서 E와 동일한 극성을 가진다. C는 좌표가 (xf+bx+1,yf)인 블록으로서, E와 동일한 극성을 가진다. 만약 A,B,C 및 D 중 하나가 프레임 모드이면 그 수직 동작 벡터는 예측에 사용되기 이전에 2가 곱해지며, 그 참조 필드 번호는 기준 프레임 번호에 2를 곱함으로써 계산된다.
블록의 동작 예측 벡터를 계산하기 위한 이상의 모든 방법에서, 수평 스캐닝 경로가 가정되었다. 그러나, 스캐닝 경로는 수직 스캐닝 경로 또한 가능하다. 이 경우에, 현재 블록 E의 인접 블록은 도 13과 같이 정의된다. 수직 스캐닝 경로가 일부 애플리케이션에서는 바람직한데, 이는 모든 인접 블록 상의 정보가 현재 블록 E의 동작 예측 벡터를 계산하는 데에 사용가능하기 때문이다.
본 발명의 다른 실시예는 방향적 세그멘테이션 예측(directional segmentation prediction)이다. 방향적 세그멘테이션 예측에서, 16×8 픽셀 블록과 8×16 픽셀 블록은 그 동작 예측 벡터의 계산에만 적용되는 규칙을 가진다. 이들 규칙은 이러한 블록 크기에 대한 모든 동작 예측 벡터의 계산 방법에 적용된다. 도 12와 관련하여 규칙을 더욱 상세하게 설명하기로 한다. 이들 규칙의 각각에서, 현재 블록 E는 그 동작 예측 벡터가 계산될 것이다.
먼저, 16×8 픽셀 블록은 상부 블록과 하부 블록으로 이루어진다. 상부 블록은 상부 8행의 픽셀을 포함한다. 하부 블록의 하부 8행의 픽셀을 포함한다. 이어지는 설명에서, 도 12의 블록 A-E는 16×8 픽셀 블록이다. 16×8 픽셀 블록 내의 상부 블록에서, 블록 B는 만약 블록 E와 동일한 기준 영상을 가졌다면 블록 E의 동작 예측 벡터를 예측하는 데에 사용된다. 그렇지 않으면, 중앙값 예측(median prediction)이 블록 E의 동작 예측 벡터를 예측하는 데에 사용된다. 16×8 픽셀 블록 내의 하부 블록에서, 블록 A는 만약 블록 E와 동일한 기준 영상을 가졌다면 블록 E의 동작 예측 벡터를 예측하는 데에 사용된다. 그렇지 않으면, 중앙값 예측이 블록 E의 동작 예측 벡터를 예측하는 데에 사용된다.
8×16 픽셀 블록은 우측과 좌측 블록으로 분할된다. 우측과 좌측 블록 모두 8×16 픽셀이 된다. 이어지는 설명에서, 도 12의 블록 A-E는 8×16 픽셀 블록이다. 좌측 블록에서, 블록 A는 만약 블록 E와 동일한 기준 영상을 가졌다면 블록 E의 동작 예측 벡터를 예측하는 데에 사용된다. 그렇지 않으면, 중앙값 예측이 블록 E의 동작 예측 벡터를 예측하는 데에 사용된다. 우측 블록에서, 블록 C는 만약 블록 E와 동일한 기준 영상을 가졌다면 블록 E의 동작 예측 벡터를 예측하는 데에 사용된다. 그렇지 않으면 중앙값 예측이 블록 E의 동작 예측 벡터를 예측하는 데에 사용된다.
16×8 픽셀 블록과 8×16 픽셀 블록 모두에 대하여, A,B 또는 C는 현재 블록 E와 상이한 인코딩 모드(프레임 또는 필드)가 될 수 있다. 다음의 규칙이 두 블록 크기 모두에 대하여 적용된다. 만약 E가 프레임 모드이고, A,B 또는 C가 필드 모드라면, A,B 또는 C의 참조 프레임 번호는 그 참조 필드 번호를 2로 나눔으로써 계산된다. 만약 E가 필드 모드이고 A,B 또는 C가 프레임 모드라면, A,B 또는 C의 참조 필드 번호는 그 참조 프레임 번호에 2를 곱함으로써 계산된다.
본 발명의 다른 실시예에 따라, P 영상 내의 매크로블록은 AFF 코딩에서 스킵될 수 있다. 만약 매크로블록이 스킵되면, 그 데이터는 영상의 인코딩에서 전송되지 않는다. P 영상 내의 스킵된 매크로블록은 가장 최근에 코딩된 기준 영상 내에 있는 상호 연관된(co-located) 매크로블록을 복사함으로써 복구된다. 상호 연관된 매크로블록은 위에서 정의된 바와 같은 동작 예측 벡터를 사용하는 동작 보상을 가지거나 또는 동작 벡터를 가지지 않는 매크로블록으로서 정의된다. 다음의 규칙이 P 영상 내의 스킵된 매크로블록에 대하여 적용된다. 만약 AFF 코딩이 매크로블록마다 수행되면, 스킵된 매크로블록은 프레임 모드이다. 만약 AFF 코딩이 매크로블록 쌍에 대하여 수행되고 두 매크로블록이 모두 스킵되면, 이들은 프레임 모드이다. 그러나, 만약 매크로블록 쌍 내의 매크로블록 중 하나만이 스킵되면, 그 프레임 또는 필드 코딩 모드는 같은 매크로블록 쌍 내의 스킵되지 않은 매크로블록과 동일하게 된다. 만약 AFF 코딩이 매크로블록 그룹에 대하여 수행되고, 매크로블록 그룹 전체가 스킵되면, 모든 매크로블록이 프레임 모드이다. 만약 적어도 하나의 매크로블록이 스킵되지 않으면, 같은 그룹 내의 스킵된 매크로블록은 스킵되지 않은 매크로블록과 동일한 프레임 또는 필드 코딩 모드가 된다.
스킵된 매크로블록에 대한 다른 방법은 다음과 같다. 만약 매크로블록 쌍이 스킵되면, 그 프레임 및 필드 코딩 모드는 그 인접한 좌측 매크로블록 쌍을 따른다. 만약 인접한 좌측 매크로블록 쌍이 이용할 수 없는 경우라면, 그 코딩 모드는 인접한 상부 매크로블록 쌍을 따른다. 만약 인접한 좌측과 상부 매크로블록 쌍이 모두 이용할 수 없는 경우라면, 스킵된 매크로블록은 프레임 모드로 설정된다.
본 발명의 다른 실시예는 B 영상에 대한 직접 모드 매크로블록 코딩(direct mode macroblock coding)이다. 직접 모드 코딩에서, B 영상은 두 개의 동작 벡터, 즉 순방향(forward)과 역방향(backward) 동작 벡터를 가진다. 각각의 동작벡터는 기준 영상을 가리킨다. 순방향과 역방향 동작 벡터 모두는 동일한 시간적 방향을 가리킨다. B 영상 내의 직접 모드 매크로블록 코딩에서, 블록의 순방향 및 역방향 동작 벡터는 역방향 기준 영상 내의 상호 연관된 블록으로부터 계산된다. 상호 연관된 역방향 기준 영상 내의 블록은 프레임 모드로 코딩될 수도 있고 필드 모드로 코딩될 수도 있다. 다음의 규칙이 B 영상에 대한 직접 모드 매크로블록 코딩에서 적용된다.
만약 상호 연관된 블록이 프레임 모드이고 현재 직접 모드 매크로블록 또한 프레임 모드이면, 직접 모드 매크로블록 내의 블록의 두 개의 관련 동작 벡터는 상호 연관된 블록으로부터 계산된다. 순방향 기준 프레임은 상호 연관된 블록에서 사용되는 것이 된다. 역방향 기준 프레임은 상호 연관된 블록이 존재하는 곳과 동일한 프레임이 된다.
만약 상호 연관된 블록이 프레임 모드이고 현재 직접 모드 매크로블록이 필드 모드이면, 직접 모드 매크로블록 내의 블록의 두 개의 관련 동작 벡터는 상호 연관된 블록의 동작 벡터에서 수직 요소가 2로 나누어진 것으로부터 계산된다. 순방향 기준 필드는 상호 연관된 블록에서 사용되는 기준 프레임과 동일한 패리티 필드가 된다. 역방형 기준 필드는 상호 연관된 블록이 존재하는 역방향 기준 프레임과 동일한 필드가 된다.
만약 상호 연관된 블록이 필드 모드이고 현재 직접 모드 매크로블록 또한 필드 모드이면, 직접 모드 매크로블록 내의 블록의 두 개의 관련 동작 벡터는 동일한 필드 패리티인 상호 연관된 블록으로부터 계산된다. 순방향 기준 필드는 상호 연관된 블록에서 사용되는 필드가 된다. 역방향 기준 필드는 상호 연관된 블록이 존재하는 것과 동일한 필드가 된다.
만약 상호 연관된 블록이 필드 모드이고 현재 직접 모드 매크로블록이 프레임 모드이면, 직접 모드 매크로블록 내의 블록의 두 개의 관련 동작 벡터는 상호 연관된 블록의 동작 벡터에서 수직 요소에 2가 곱해진 것으로부터 계산된다. 순방향 기준 프레임은 필드 중 하나가 상호 연관된 블록에 의하여 사용되는 프레임이 된다. 역방향 기준 필드는 필드 중 하나에 상호 연관된 블록이 존재하는 프레임이 된다.
대체 옵션(alternate option)은 직접 모드 블록이 상호 연관된 블록과 동일한 프레임 또는 필드 코딩 모드가 되도록 강제하는 것이다. 이 경우에, 만약 직접 모드 블록에 대한 상호 연관된 블록이 프레임 모드이면, 직접 모드 블록 또한 프레임 모드가 된다. 직접 모드 블록의 두 개의 프레임 기반 동작 벡터는 상호 연관된 블록의 프레임 기반 순방향 동작 벡터로부터 도출된다. 순방향 기준 프레임은 상호 연관된 블록에 의하여 사용된다. 역방향 기준 프레임은 상호 연관된 블록이 존재하는 곳이 된다.
그러나, 만약 직접 모드 내의 블록에 대하여 상호 연관된 블록이 필드 모드이면, 직접 모드 블록 또한 필드 모드가 된다. 직접 모드 블록의 두 개의 필드 기반 동작 벡터는 상호 연관된 블록의 필드 기반 순방향 동작 벡터로부터 도출된다. 순방향 기준 필드는 상호 연관된 블록에 의하여 사용된다. 역방향 기준 필드는 상호 연관된 블록이 존재하는 곳이 된다.
B 영상 내의 매크로블록 또한 본 발명의 다른 실시예에 따라 AFF 코딩에서 스킵될 수 있다. B 영상 내의 스킵된 매크로블록은 아무런 코딩된 전송 계수 정보(coded transform coefficient information) 없이도 보통의 직접 모드 매크로블록으로 복구된다. B 영상 내의 스킵된 매크로블록에는 다음의 규칙이 적용된다. 만약 AFF 코딩이 매크로블록마다 수행되면, 스킵된 매크로블록은 프레임 모드이거나, 또는 그 역방향 기준 영상 내의 상호 연관된 블록의 프레임이나 필드의 코딩 모드가 된다. 만약 AFF 코딩이 매크로블록 쌍에 대하여 수행되고 두 매크로블록이 모두 스킵되면, 이들은 프레임 모드이거나, 또는 그 역방향 기준 영상 내의 상호 연관된 매크로블록 쌍의 프레임이나 필드의 코딩 모드가 된다. 그러나, 만약 매크로블록 쌍 내의 매크로블록 중 하나만이 스킵되면, 그 프레임 또는 필드 코딩 모드는 같은 매크로블록 쌍의 스킵되지 않은 매크로블록과 같아진다. 만약 AFF 코딩이 매크로블록 그룹에 대하여 수행되고 매크로블록 그룹 전체가 스킵되면, 모든 매크로블록은 프레임 모드이거나 또는 역방향 기준 영상 내의 상호 연관된 매크로블록 그룹의 프레임이나 필드의 코딩 모드가 된다. 만약 적어도 하나의 매크로블록이 스킵되지 않으면, 같은 그룹 내의 스킵된 매크로블록은 스킵되지 않은 매크로블록과 동일한 프레임 또는 필드 코딩 모드가 된다.
상술한 바와 같이, 블록은 인트라 코딩될 수 있다. 인트라 블록(intra block)들은 공간적으로 예측 코딩된다. 매크로블록 레벨 AFF 코딩에는 매크로블록에 대하여 두 개의 인트라 코딩 모드가 가능하다. 첫째는 intra_4×4 모드이고, 둘째는 intra_16×16 모드이다. 두 경우 모두에 있어서, 각각의 픽셀값은 인접 블록의 실제로 복구된 픽셀값을 이용하여 예측된다. 픽셀값을 예측함으로써, 더욱 높은 압축률이 구현될 수 있다. intra_4×4 모드와 intra_16×16 모드는 이하에서 각각 더욱 상세하게 설명하기로 한다.
intra_4×4 모드에 대하여, 도 14에 나타낸 바와 같이 4×4 픽셀 블록 내의 픽셀의 예측이 그 좌측 및 상부 픽셀로부터 도출된다. 도 14에서, 4×4 픽셀 블록 내의 16 픽셀은 a에서 p까지 라벨링된다. 도 14에는 마찬가지로, A에서 P까지의 인접 블록이 존재한다. 인접 픽셀은 대문자이다. 도 15에 나타낸 바와 같이, intra_4×4 코딩에는 9가지의 서로 다른 예측 방향이 존재한다. 이들은 수직(0), 수평(1), DC 예측(DC prediction)(모드 2), 대각선 좌측/하단(3), 대각선 우측/하단(4), 수직-좌측(5), 수평-하단(6), 수직-우측(7) 및 수평-상단(8)이다. DC 예측은 인접한 모든 픽셀의 평균을 내어 특정 픽셀값을 예측한다.
그러나, intra_16×16 모드로는, 4가지의 서로 다른 예측 방향이 존재한다. 예측 방향들(prediction direction)은 예측 모드들(prediction mode)이라고도 일컬어진다. 이들 예측 방향들은 수직 예측(0), 수평 예측(1), DC 예측 및 평면 예측(plane prediction)이다. 평면 예측은 설명하지 않기로 한다.
인트라 블록과 그 인접 블록은 프레임 모드로도 필드 모드로도 코딩될 수 있다. 인트라 예측은 재구성된 블록에 대하여 수행된다. 재구성된 블록은 블록이 실제로는 프레임 코딩 모드이든 필드 코딩 모드이든 관계없이 프레임 모드로도 필드 모드로도 표현될 수 있다. 단지 재구성된 블록들의 픽셀들만이 인트라 예측에 사용되므로, 다음의 규칙이 적용된다.
만약 4×4 픽셀 또는 16×16 픽셀의 블록이 프레임 모드이면, 블록의 픽셀값 예측 계산에 사용되는 인접 픽셀은 프레임 구조가 된다. 만약 4×4 픽셀 또는 16×16 픽셀의 블록이 필드 모드이면, 블록의 픽셀값 예측 계산에 사용되는 인접 픽셀은 동일한 필드 패리티인 필드 모드가 된다.
선택된 4×4 픽셀 블록의 인트라 예측 모드(intra_pred_mode)는 인접 블록의 예측 모드와 밀접하게 상호 연관된다. 이를 도 16a에서 표현하고 있다. 도 16a를 참조하면 A와 B는 C의 인접 블록이다. 블록 C의 예측 모드를 입증해 보기로 한다. 도 16b는 비트스트림 내의 인트라 예측 정보의 순서를 나타낸다. A와 B의 예측 모드가 알려지면(A 또는 B 또는 이들 모두가 슬라이스의 외부에 있는 경우를 포함), C에 대한 가장 개연성 있는 예측 모드(most_probable_mode)가 주어진다. 만약 블록 A와 B 중 하나가 "외부(outside)"에 있으면, 가장 개연성 있는 예측 모드는 DC 예측(모드 2)과 같아진다. 그렇지 않으면 블록 A와 B에 사용되는 예측 모드의 최소값과 같아진다. 인접 블록이 코딩된 16×16 인트라 모드이면, 예측 모드는 DC 예측 모드가 된다. 인접 블록이 코딩된 논-인트라(non-intra) 매크로블록이면, 예측 모드는 보통의 경우에 "모드 2:DC 예측"이 되고, 강제 인트라 업데이트(constrained intra update)인 경우에는 "외부"가 된다.
4×4 블록에 대한 예측 모드 번호를 신호하기 위해서는 먼저 use_most_probable_mode라는 파라미터가 전송된다. 이 파라미터는 1비트의 코드워드로 표현되며 0 또는 1의 값을 가질 수 있다. 만약 use_most_probable_mode가 1이면 가장 개연성 있는 모드가 사용된다. 그렇지 않으면 0 내지 7의 값을 가질 수 있는 추가적인 파라미터인 remaining_mode_selector가 3비트의 코드워드로 전송된다. 코드워드는 remaining_mode_selector 값의 이진 표현이 된다. 예측 모드 번호는 다음과 같이 계산된다:
if(remaining_mode_selector < most_probable_mode)
intra_pred_mode = remaining_mode_selector;
else
intra_pred_mode = remaining_mode_selector + 1;
따라서 블록 C에 할당된 예측 모드들의 순서는 가장 개연성 있는 모드로부터 잔여 모드로의 오름차순이 된다.
본 발명의 실시예는 4×4 픽셀 블록의 인트라 예측 모드나 16×16 픽셀 블록의 인트라 예측 모드에 대한 인트라 모드 예측에 적용되는 다음의 규칙을 포함한다. 블록 C와 그 인접 블록인 A와 B는 프레임 모드일 수도 있고 필드 모드일 수도 있다. 다음 규칙 중 하나는 적용되어야 한다. 도 16a-b가 규칙에 대한 다음의 설명에 사용된다.
규칙 1: A 또는 B는 A 또는 B가 C와 동일한 프레임/필드 모드인 경우에만 C의 인접 블록으로서 사용된다. 그렇지 않으면 A 또는 B는 외부에 있는 것으로 취급된다.
규칙 2: A 및 B는 그 프레임/필드 코딩 모드와 무관하게 C의 인접 블록으로서 사용된다.
규칙 3: 만약 C가 프레임 모드로 코딩되고 (x,y) 좌표를 가지면, A는 (x,y-1)의 좌표를 가지며 B는 (x-1,y)의 좌표를 가진다. 그렇지 않으면, 만약 C가 필드 모드로 코딩되고 (xf,yf)의 좌표를 가지면 A는 필드 좌표가 (xf,yf-1)인 블록으로서 C와 동일한 필드 극성을 가지며, B는 필드 좌표가 (xf-1, yf)인 블록으로서 C와 동일한 필드 극성을 가진다.
규칙 4: 이 규칙은 매크로블록 쌍에만 적용된다. 도 16b의 3,6,7,9,12,13,11,14 및 15번 블록의 예측 모드를 디코딩하는 경우에, 이들 블록과 그 좌측 인접 블록은 현재 블록과 동일한 매크로 블록 내에 있다. 그러나, 1,4 및 5번 블록의 예측 모드를 디코딩하는 경우에는, 상부 블록(블록 A)은 현재 매크로블록 쌍과는 다른 매크로블록 쌍에 존재한다. 2,8 및 10번 블록의 예측 모드를 디코딩하는 경우에는, 좌측 블록(블록 B)은 상이한 매크로블록 쌍에 존재한다. 0번 블록의 예측 모드를 디코딩하는 경우에는, 좌측 및 상부 블록이 모두 상이한 매크로블록 쌍에 존재한다. 필드 디코딩 모드 내의 매크로블록에 대해서는 0,1,4,5,2,8 및 10번 블록의 인접 블록은 다음과 같이 정의될 수 있다:
만약 위 매크로블록 쌍(170)이 필드 모드로 디코딩되면, 상부-필드 매크로블록(top-field macroblock)(173) 내의 0,1,4 및 5번 블록에 대하여, 상부-필드 매크로블록(173) 내의 10,11,14 및 15번 블록은 각각 도 17a에 나타낸 바와 같이 현재 매크로블록 쌍(171)에 대한 상부 인접 블록으로 취급된다. 하부-필드 매크로블록(174) 내의 0,1,4 및 5번 블록에 대하여, 위 매크로블록 쌍(170)의 하부-필드 매크로블록 내의 10,11,14 및 15번 블록은 각각 도 17a에 나타낸 바와 같이 현재 매크로블록 쌍(171)에 대한 상부 인접 블록으로 취급된다.
그러나, 만약 위 매크로블록 쌍(170)이 프레임 모드로 디코딩되면, 상부-필드 매크로블록(173) 내의 0,1,4 및 5번 블록에 대하여 위 매크로블록 쌍(170)의 하부-프레임 매크로블록(176) 내의 10,11,14 및 15번 블록은 도 17b에 나타낸 바와 같이 현재 매크로블록 쌍(171)에 대한 상부 인접 블록으로 취급될 것이다. 하부-필드 매크로블록(174) 내의 0,1,4 및 5번 블록에 대하여, 위 매크로블록 쌍(170)의 하부-프레임 매크로블록(176) 내의 10,11,14 및 15번 블록은 도 17b에 나타낸 바와 같이 현재 매크로블록 쌍(171)에 대한 상부 인접 블록으로 취급될 것이다.
만약 좌측 매크로블록 쌍(172)이 필드 모드로 디코딩되면, 상부-필드 매크로블록(173) 내의 0,2,8 및 10번 블록에 대하여 좌측 매크로블록 쌍(172)의 상부-필드 매크로블록(173) 내의 5,7,13 및 15번 블록은 각각 도 17c에 나타낸 바와 같은 현재 매크로블록 쌍(171)에 대한 좌측 인접 블록으로 취급될 것이다. 하부-필드 매크로블록(174) 내의 0,2,8 및 10번 블록에 대하여, 좌측 매크로블록 쌍(172)의 하부-프레임 매크로블록(174) 내의 5,7,13 및 15번 블록은 각각 도 17c에 나타낸 바와 같은 현재 매크로블록 쌍(171)에 대한 좌측 인접 블록으로 취급될 것이다.
만약 좌측 매크로블록 쌍(172)이 프레임 모드로 디코딩되면, 상부-필드 매크로블록(173) 내의 0,2,8 및 10번 블록에 대하여, 좌측 매크로블록 쌍(172)의 상부-프레임 매크로블록(175) 내의 5,7,13 및 15번 블록은 도 17d에 나타낸 바와 같은 현재 매크로블록 쌍(171)에 대한 좌측 인접 블록으로 취급될 것이다. 하부-필드 매크로블록(174) 내의 0,2,8 및 10번 블록에 대하여, 좌측 매크로블록 쌍(172)의 하부-프레임 매크로블록(176) 내의 5,7,13 및 15번 블록은 도 17d에 나타낸 바와 같은 현재 매크로블록 쌍(171)에 대한 좌측 인접 블록으로 취급될 것이다.
슬라이스의 윗쪽 경계 상의 매크로블록 쌍에 대하여, 만약 좌측 매크로블록 쌍(172)이 프레임 디코딩 모드라면, 필드 매크로블록을 예측하는 데에 사용되는 인트라 모드 예측값이 DC 예측에 설정될 것이다.
인트라 코딩과 인트라 모드 예측에 관한 위와 같은 설명은 적응성 블록 변환(adaptive block transform)에 확장될 수 있다.
본 발명의 다른 실시예는 루프 필터링(loop filtering)이 재구성된 블록에 대하여 수행되는 것이다. 재구성된 블록은 블록이 프레임 코딩 모드였든지 필드 코딩 모드였든지와 무관하게 프레임 구조로도 필드 구조로도 표현될 수 있다. 루프(디블록(deblock)) 필터링은 인접 블록의 픽셀을 가중평균하는 절차이다. 도 12는 루프 필터링을 설명하고 있다. 도 12의 E가 재구성된 블록이고, A,B,C 및 D가 재구성된 인접 블록이라고 할 때, 이들은 모두 프레임 구조로 표현된다. A,B,C,D 및 E는 프레임 코딩될 수도, 필드 코딩될 수도 있으므로, 다음의 규칙이 적용된다:
규칙 1: 만약 E가 프레임 코딩되면, 루프 필터링은 E 및 인접 블록인 A,B,C및 D 상의 픽셀에 대하여 수행된다.
규칙 2: 만약 E가 필드 코딩되면, 루프 필터링은 E 및 인접 블록인 A,B,C 및 D의 상부 필드와 하부 필드에 대하여 따로따로 수행된다.
본 발명의 다른 실시예는 경계 픽셀을 반복함으로써 재구성된 프레임에 대하여 패딩(padding)을 수행하는 것이다. 경계 블록은 프레임 모드로도 필드 모드로도 코딩될 수 있으므로, 다음의 규칙이 적용된다:
규칙 1: 경계 블록의 좌측 또는 우측 수직 라인 상의 픽셀은 필요하다면 반복된다.
규칙 2: 만약 경계 블록이 프레임 코딩이면, 경계 블록의 상부 또는 하부 수평 라인 상의 픽셀은 반복된다.
규칙 3: 만약 경계 블록이 필드 코딩이면, 경계 블록의 두 개의 상부 또는 하부 수평(두 개의 필드) 라인 상의 픽셀은 선택적으로 반복된다.
본 발명의 다른 실시예는 2차원 변환 계수(two-dimensional transform coefficient)가 엔트로피 코딩(entropy coding) 이전에 일련의 일차원 계수로 변환되는 것이다. 스캐닝 경로는 지그재그일 수도 있고 아닐 수도 있다. 지그재그 스캐너는 전진 시퀀스(progressive sequence)에 바람직하지만, 느린 속도로 교차 시퀀스(interlace sequence)에도 사용될 수 있다. 지그재그가 아닌 스캐너는 교차 시퀀스에 바람직하다. 매크로블록 AFF 코딩에 대하여, 다음의 옵션이 사용될 수 있다:
옵션 1: 지그재그가 아닌 스캐너들이 필드 코딩에서의 매크로블록에 사용되는 동안 지그재그 스캔은 프레임 모드로의 매크로블록에 사용된다.
옵션 2: 지그재그 스캔이 프레임 모드와 필드 모드로의 매크로블록에 대하여 모두 사용된다.
옵션 3: 지그재그가 아닌 스캔이 프레임 모드와 필드 모드로의 매크로블록에 대하여 모두 사용된다.
이상의 설명은 본 발명의 실시예를 설명하고 묘사하기 위한 목적으로만 표현되었다. 이는 본 발명을 개시된 특정 형태로 한정하고자 하는 의도가 아니다. 다양한 변형과 변경이 이상에서의 가르침에 따라 가능하다.
상술한 실시예는 본 발명의 원리와 일부 실제적인 응용례를 설명하기 위하여 선택되어 설명되었다. 상술한 상세한 설명에 힘입어 당업자는 본 발명을 다양한 실시예로써 실시할 수 있을 것이며, 특정 용도에 적합하도록 다양한 변경도 기대할 수 있을 것이다. 본 발명의 범위는 다음과 같은 청구항에 의하여 정의된다.

Claims (7)

  1. 디지털 비디오 컨텐트를 인코딩 또는 디코딩하는 방법에 있어서,
    상기 디지털 비디오 컨텐트는 각각 인트라(intra), 예측(predicted), 또는 2-예측(bi-predicted) 영상들일 수 있는 영상들의 스트림을 포함하고, 상기 영상들 각각은 더 작은 블록들로 분할될 수 있는 매크로블록들을 포함하고, 상기 방법은 상기 영상들의 스트림내에 상기 영상들 각각내의 상기 블록들 각각을 프레임 모드 또는 필드 모드로 인코딩하는 단계를 포함하는, 디지털 비디오 컨텐트를 인코딩 또는 디코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 블록 각각은 16×8 픽셀들, 8×16 픽셀들, 8×8 픽셀들, 8×4 픽셀들, 4×8 픽셀들, 및 4×4 픽셀들을 포함하는, 디지털 비디오 컨텐트를 인코딩 또는 디코딩하는 방법.
  3. 제 2 항에 있어서,
    상기 블록들 각각에 대해 동작 예측 벡터(prediction motion vectors)들을 계산하는 단계를 더 포함하는, 디지털 비디오 컨텐트를 인코딩 또는 디코딩하는 방법.
  4. 제 1 항에 있어서,
    예측 영상내에 매크로블록을 스킵하고 스킵된 상기 매크로블록을 위한 데이터를 전송하지 않는 단계를 더 포함하는, 디지털 비디오 컨텐트를 인코딩 또는 디코딩하는 방법.
  5. 제 1 항에 있어서,
    2-예측 영상내에 매크로블록을 스킵하고 스킵된 상기 매크로블록을 위한 데이터를 전송하지 않는 단계를 더 포함하는, 디지털 비디오 컨텐트를 인코딩 또는 디코딩하는 방법.
  6. 제 1 항에 있어서,
    상기 2-예측 영상들을 직접 모드로 인코딩하는 단계를 더 포함하는, 디지털 비디오 컨텐트를 인코딩 또는 디코딩하는 방법.
  7. 제 1 항에 있어서,
    픽셀 값들을 인트라 코딩으로 예측하는 단계를 더 포함하는, 디지털 비디오 컨텐트를 인코딩 또는 디코딩하는 방법.
KR1020047007762A 2001-11-21 2002-11-21 디지털 비디오 콘텐트를 위한 매크로블록 레벨 적응성프레임/필드 코딩 KR101033398B1 (ko)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US33300401P 2001-11-21 2001-11-21
US60/333,004 2001-11-21
US33392101P 2001-11-27 2001-11-27
US60/333,921 2001-11-27
US39573402P 2002-07-12 2002-07-12
US60/395,734 2002-07-12
US39816102P 2002-07-23 2002-07-23
US60/398,161 2002-07-23
US10/301,290 2002-11-20
US10/301,290 US6980596B2 (en) 2001-11-27 2002-11-20 Macroblock level adaptive frame/field coding for digital video content
PCT/US2002/037739 WO2003047272A2 (en) 2001-11-21 2002-11-21 Macroblock level adaptive frame/field coding for digital video content

Publications (2)

Publication Number Publication Date
KR20040070176A true KR20040070176A (ko) 2004-08-06
KR101033398B1 KR101033398B1 (ko) 2011-05-09

Family

ID=27540869

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047007762A KR101033398B1 (ko) 2001-11-21 2002-11-21 디지털 비디오 콘텐트를 위한 매크로블록 레벨 적응성프레임/필드 코딩

Country Status (10)

Country Link
EP (1) EP1449385B1 (ko)
JP (9) JP2005510985A (ko)
KR (1) KR101033398B1 (ko)
AU (1) AU2002365338A1 (ko)
CA (1) CA2468087C (ko)
DK (1) DK1449385T3 (ko)
ES (5) ES2548385T3 (ko)
MX (1) MXPA04004724A (ko)
PT (5) PT2285121E (ko)
WO (1) WO2003047272A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100667806B1 (ko) * 2005-07-07 2007-01-12 삼성전자주식회사 영상 부호화 및 복호화 방법 및 장치
KR100727972B1 (ko) * 2005-09-06 2007-06-14 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치
KR100750128B1 (ko) * 2005-09-06 2007-08-21 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5914671A (en) 1997-02-27 1999-06-22 Micron Communications, Inc. System and method for locating individuals and equipment, airline reservation system, communication system
EP2271111B1 (en) 2001-11-06 2016-08-10 Panasonic Intellectual Property Corporation of America Moving picture coding method and moving picture decoding method
CN100452883C (zh) 2001-12-17 2009-01-14 微软公司 处理视频图像的方法
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
JP2004088722A (ja) * 2002-03-04 2004-03-18 Matsushita Electric Ind Co Ltd 動画像符号化方法および動画像復号化方法
EP3525466B1 (en) 2002-04-19 2022-02-09 Panasonic Intellectual Property Corporation of America Motion vector determining method and apparatus
EP3525465B1 (en) * 2002-04-19 2021-03-17 Panasonic Intellectual Property Corporation of America Picture decoding method and apparatus
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
KR100693669B1 (ko) * 2003-03-03 2007-03-09 엘지전자 주식회사 피일드 매크로 블록의 레퍼런스 픽쳐 결정 방법
EP1639827B1 (en) * 2003-06-25 2010-04-14 Thomson Licensing Fast mode-decision encoding for interframes
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
WO2005011286A1 (ja) * 2003-07-24 2005-02-03 Matsushita Electric Industrial Co., Ltd. 符号化モード決定装置、画像符号化装置、符号化モード決定方法、および符号化モード決定プログラム
BRPI0413988A (pt) 2003-08-26 2006-11-07 Thomson Licensing método e aparelho para decodificar blocos intra-inter codificador hìbridos
US7599438B2 (en) * 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
US7567617B2 (en) * 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US8085846B2 (en) 2004-08-24 2011-12-27 Thomson Licensing Method and apparatus for decoding hybrid intra-inter coded blocks
KR100679031B1 (ko) * 2004-12-03 2007-02-05 삼성전자주식회사 다 계층 기반의 비디오 인코딩 방법, 디코딩 방법 및 상기방법을 이용한 장치
US9077960B2 (en) 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
FR2894423A1 (fr) 2005-12-05 2007-06-08 Thomson Licensing Sas Procede de prediction de donnees mouvement et de texture
FR2897213A1 (fr) * 2006-02-08 2007-08-10 Thomson Licensing Sas Procede de codage par blocs d'images d'une sequence d'images video
JP4789719B2 (ja) * 2006-07-06 2011-10-12 キヤノン株式会社 動きベクトル検出装置、動きベクトル検出方法、コンピュータプログラム及び記憶媒体
JP4763549B2 (ja) 2006-08-18 2011-08-31 富士通セミコンダクター株式会社 フレーム間予測処理装置、画像符号化装置、及び画像復号化装置
KR101365574B1 (ko) * 2007-01-29 2014-02-20 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
JP4786612B2 (ja) * 2007-08-14 2011-10-05 Kddi株式会社 動画像符号化装置の予測動きベクトル生成装置
KR101452859B1 (ko) * 2009-08-13 2014-10-23 삼성전자주식회사 움직임 벡터를 부호화 및 복호화하는 방법 및 장치
KR101522850B1 (ko) * 2010-01-14 2015-05-26 삼성전자주식회사 움직임 벡터를 부호화, 복호화하는 방법 및 장치
JP5341786B2 (ja) * 2010-01-20 2013-11-13 株式会社メガチップス 画像符号化装置及び画像変換装置
KR20110113561A (ko) * 2010-04-09 2011-10-17 한국전자통신연구원 적응적인 필터를 이용한 인트라 예측 부호화/복호화 방법 및 그 장치
US8923395B2 (en) 2010-10-01 2014-12-30 Qualcomm Incorporated Video coding using intra-prediction
JP7145822B2 (ja) * 2019-07-18 2022-10-03 ヤフー株式会社 情報提供装置、情報提供方法、および情報提供プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3125145B2 (ja) * 1990-08-29 2001-01-15 日立電子株式会社 画像データの高能率符号化方法及びその装置
DE4113505A1 (de) 1991-04-25 1992-10-29 Thomson Brandt Gmbh Verfahren zur bildsignalcodierung
US6226327B1 (en) * 1992-06-29 2001-05-01 Sony Corporation Video coding method and apparatus which select between frame-based and field-based predictive modes
ES2431289T3 (es) * 1993-03-24 2013-11-25 Sony Corporation Método de decodificación de señal de imagen y aparato asociado
US5974184A (en) * 1997-03-07 1999-10-26 General Instrument Corporation Intra-macroblock DC and AC coefficient prediction for interlaced digital video
JP3559419B2 (ja) * 1997-03-18 2004-09-02 松下電器産業株式会社 画像圧縮データの伸張方法及び装置
JP2001251627A (ja) * 2000-03-03 2001-09-14 Matsushita Electric Ind Co Ltd 符号化装置、符号化方法及びプログラムを記録した記録媒体
FR2806570B1 (fr) * 2000-03-15 2002-05-17 Thomson Multimedia Sa Procede et dispositif de codage d'images video

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100667806B1 (ko) * 2005-07-07 2007-01-12 삼성전자주식회사 영상 부호화 및 복호화 방법 및 장치
KR100727972B1 (ko) * 2005-09-06 2007-06-14 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치
KR100750128B1 (ko) * 2005-09-06 2007-08-21 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치
US9001890B2 (en) 2005-09-06 2015-04-07 Samsung Electronics Co., Ltd. Method and apparatus for video intraprediction encoding and decoding

Also Published As

Publication number Publication date
KR101033398B1 (ko) 2011-05-09
ES2545213T3 (es) 2015-09-09
PT2285121E (pt) 2015-10-27
PT2271115E (pt) 2015-10-15
ES2548384T3 (es) 2015-10-16
JP6507114B2 (ja) 2019-04-24
JP2005510985A (ja) 2005-04-21
MXPA04004724A (es) 2004-07-30
DK1449385T3 (en) 2015-10-19
JP2015062314A (ja) 2015-04-02
JP2012105348A (ja) 2012-05-31
PT2268040E (pt) 2015-10-15
JP2010022058A (ja) 2010-01-28
JP2016136765A (ja) 2016-07-28
PT2268039E (pt) 2015-10-26
PT1449385E (pt) 2015-10-15
EP1449385A2 (en) 2004-08-25
ES2545177T3 (es) 2015-09-09
WO2003047272A3 (en) 2004-01-08
EP1449385B1 (en) 2015-07-22
JP5320254B2 (ja) 2013-10-23
JP2008295111A (ja) 2008-12-04
JP2016123131A (ja) 2016-07-07
AU2002365338A1 (en) 2003-06-10
CA2468087C (en) 2013-06-25
ES2548385T3 (es) 2015-10-16
ES2545394T3 (es) 2015-09-10
JP6681758B2 (ja) 2020-04-15
JP2016106504A (ja) 2016-06-16
JP5697614B2 (ja) 2015-04-08
JP2018139452A (ja) 2018-09-06
CA2468087A1 (en) 2003-06-05
WO2003047272A2 (en) 2003-06-05

Similar Documents

Publication Publication Date Title
KR101033398B1 (ko) 디지털 비디오 콘텐트를 위한 매크로블록 레벨 적응성프레임/필드 코딩
DK2285121T3 (en) Adaptive frame- / field coding on macroblock level of digital video content
JP2005510985A5 (ko)

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160412

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170414

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180413

Year of fee payment: 8