KR20120126115A - 코딩 유닛의 비디오 코딩 동안 국소적 다중가설 예측을 수행하는 방법, 및 관련 장치 - Google Patents

코딩 유닛의 비디오 코딩 동안 국소적 다중가설 예측을 수행하는 방법, 및 관련 장치 Download PDF

Info

Publication number
KR20120126115A
KR20120126115A KR1020127025321A KR20127025321A KR20120126115A KR 20120126115 A KR20120126115 A KR 20120126115A KR 1020127025321 A KR1020127025321 A KR 1020127025321A KR 20127025321 A KR20127025321 A KR 20127025321A KR 20120126115 A KR20120126115 A KR 20120126115A
Authority
KR
South Korea
Prior art keywords
subcoding
unit
units
pixel values
coding unit
Prior art date
Application number
KR1020127025321A
Other languages
English (en)
Other versions
KR101452921B1 (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
Application filed by 미디어텍 인크. filed Critical 미디어텍 인크.
Publication of KR20120126115A publication Critical patent/KR20120126115A/ko
Application granted granted Critical
Publication of KR101452921B1 publication Critical patent/KR101452921B1/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/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/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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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/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/513Processing of motion vectors
    • 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/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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

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

코딩 유닛의 비디오 코딩 동안 국소적 다중가설 예측(localized multihypothesis prediction)을 수행하는 방법은, 상기 코딩 유닛을 복수의 서브코딩 유닛으로 분할하는 단계; 및 상기 복수의 서브코딩 유닛 각각의 모션 벡터 예측을 수행하는 단계를 포함한다. 상기 복수의 서브코딩 유닛 각각의 모션 벡터 예측을 수행하는 단계는, 복수의 다른 서브코딩 유닛으로부터 상기 복수의 서브코딩 유닛 중 특정한 서브코딩 유닛의 다중가설 움직임 보상을 위해 복수의 모션 벡터를 획득하는 단계를 포함한다. 상기 방법은, 상기 복수의 모션 벡터에 따라 상기 특정한 서브코딩 유닛에 대해 다중가설 움직임 보상을 수행하는 단계를 더 포함하며, 특히, 복수의 다른 서브코딩/코딩 유닛의 복수의 픽셀 값의 선형 조합(linear combination)을 상기 특정한 서브코딩 유닛의 예측된 픽셀 값으로 활용하는 단계를 더 포함한다. 관련 장치도 제공된다.

Description

코딩 유닛의 비디오 코딩 동안 국소적 다중가설 예측을 수행하는 방법, 및 관련 장치{METHOD FOR PERFORMING LOCALIZED MULTIHYPOTHESIS PREDICTION DURING VIDEO CODING OF A CODING UNIT, AND ASSOCIATED APPARATUS}
본 출원은 2010년 4월 14일 출원되고 발명의 명칭이 "MULTIHYPOTHESIS PREDICTION IN VIDEO CODING"인 미국 가특허출원 No. 61/323,948을 우선권으로 주장하는 바이며, 상기 문헌은 본 명세서에 원용되어 포함된다. 본 출원은 또한 2011년 4월 6일 출원되고 발명의 명칭이 "2010년 4월 14일 출원되고 발명의 명칭이 "METHOD FOR PERFORMING LOCALIZED MULTIHYPOTHESIS PREDICTION DURING VIDEO CODING OF A CODING UNIT, AND ASSOCIATED APPARATUS"인 미국 가특허출원 No. 13/080,668을 우선권으로 주장하는 바이며, 상기 문헌은 본 명세서에 원용되어 포함된다.
본 발명은 움직임 보상(motion compensation)에 관한 비디오 프로세싱에 관한 것이며, 특히 코딩 유닛의 비디오 코딩 동안 국소적 다중가설 예측을 수행하는 방법, 및 관련 장치에 관한 것이다.
움직임 보상은 비디오 압축 및 압축해제를 위한 비디오 데이터의 인코딩 및 디코딩에 사용되는 기술이다. 움직임 보상을 사용하면, 현재의 픽처를 하나 이상의 기준 픽처 중 일부와 관련해서 나타낼 수 있으며, 여기서 기준 픽처란 시간상 이전일 수 있거나 미래로부터 이전일 수 있는 픽처를 말한다. 통상적으로, 움직임 보상을 사용하면, 이전에 전송된/저장된 이미지들로부터 이미지들을 정확하게 합성할 수 있고, 보상 효율성이 향상될 수 있다. 코딩 기술이 발전함에 따라, 더 새로운 기준에 관한 설계가 도입되었다. 종래의 움직임 보상 방식이 항상 적절하게 작동하지 않을 수 있는 우려가 있다. 예를 들어, 어떤 상황에서는, 코딩 효율성이 낮은 문제가 있을 수 있다. 그러므로 비디오 인코딩 시에 코딩 효율성을 향상시킬 수 있는 새로운 방법이 필요하다.
그러므로 본 발명의 목적은 코딩 유닛의 비디오 코딩 동안 국소적 다중가설 예측을 수행하는 방법, 및 관련 장치를 제공하여 전술한 문제를 해결하는 것이다.
코딩 유닛의 비디오 코딩 동안 국소적 다중가설 예측(localized multihypothesis prediction)을 수행하는 방법에 대한 예시적 실시예는, 상기 코딩 유닛을 복수의 서브코딩 유닛으로 분할하는 단계; 및 상기 복수의 서브코딩 유닛 각각을 처리하는 단계를 포함한다. 특히, 상기 복수의 서브코딩 유닛 각각을 처리하는 단계는, 상기 복수의 서브코딩 유닛 중 특정한 서브코딩 유닛의 다중가설 움직임 보상을 위해 제1 세트의 코딩된 유닛의 움직임 정보를 획득하는 단계; 상기 제1 세트의 코딩된 유닛의 움직임 정보로부터 도출된 복수의 픽셀 값의 선형 조합(linear combination)을 상기 특정한 서브코딩 유닛의 예측된 픽셀 값으로 활용하는 단계; 및 상기 제1 세트의 코딩 유닛에 있지 않은 적어도 하나의 코딩된 유닛을 포함하는 제2 세트의 코딩된 유닛의 움직임 정보를 활용함으로써 상기 코딩 유닛에서 다른 서브코딩 유닛의 예측된 픽셀 값을 도출하는 단계를 포함한다.
코딩 유닛의 비디오 코딩 동안 국소적 다중가설 예측(localized multihypothesis prediction)을 수행하는 장치에 대한 실시예는, 상기 코딩 유닛에 대한 비디오 코딩을 수행하도록 구성된 처리 회로를 포함하며, 상기 처리 회로는 사전처리 모듈 및 적어도 하나의 코딩 모듈을 포함한다. 상기 사전처리 모듈은 상기 코딩 유닛을 복수의 서브코딩 유닛으로 분할하고 상기 복수의 서브코딩 유닛 각각을 처리하도록 구성되어 있다. 특히, 상기 사전처리 모듈은 상기 복수의 서브코딩 유닛 중 특정한 서브코딩 유닛의 다중가설 움직임 보상을 위해 제1 세트의 코딩된 유닛의 움직임 정보를 획득하고, 상기 움직임 정보에 따라 상기 특정한 서브코딩 유닛에 대해 다중가설 움직임 보상을 수행하며, 상기 제1 세트의 코딩된 유닛의 움직임 정보로부터 도출된 복수의 픽셀 값의 선형 조합(linear combination)을 상기 특정한 서브코딩 유닛의 예측된 픽셀 값으로 활용한다. 또한, 상기 적어도 하나의 코딩 모듈은 상기 사전처리 모듈에 의해 수행된 다중가설 움직임 보상에 기초해서 상기 코딩 유닛에 대해 비디오 코딩을 수행한다. 부가적으로, 상기 사전처리 모듈은, 상기 제1 세트의 코딩 유닛에 있지 않은 적어도 하나의 코딩된 유닛을 포함하는 제2 세트의 코딩된 유닛의 움직임 정보를 활용함으로써 상기 코딩 유닛에서 다른 서브코딩 유닛의 예측된 픽셀 값을 도출한다.
코딩 유닛의 비디오 코딩 동안 국소적 다중가설 예측(localized multihypothesis prediction)을 수행하는 방법에 대한 실시예는, 상기 코딩 유닛을 복수의 서브코딩 유닛으로 분할하는 단계; 및 상기 복수의 서브코딩 유닛 각각을 처리하는 단계를 포함한다. 특히, 상기 복수의 서브코딩 유닛 각각을 처리하는 단계는, 상기 복수의 서브코딩 유닛 중 특정한 서브코딩 유닛의 다중가설 움직임 보상을 위한 복수의 코딩된 유닛의 움직임 정보를 획득하는 단계; 상기 복수의 코딩된 유닛의 움직임 정보로부터 도출된 복수의 픽셀 값의 가중된 합산(weighted summation)을 상기 특정한 서브코딩 유닛의 예측된 픽셀 값으로 활용하는 단계; 및 상기 복수의 코딩된 유닛의 움직임 정보로부터 도출된 복수의 픽셀 값의 다른 가중된 합산을 활용함으로써 상기 코딩 유닛에서 다른 서브코딩 유닛의 예측된 픽셀 값을 도출하는 단계를 포함한다.
본 발명의 이러한 목적 및 다른 목적은 다양한 도면에 도해되어 있는 바람직한 실시예에 대한 이하의 상세할 설명에 따라 의심의 여지없이 당업자에게 자명하게 될 것이다.
도 1a는 본 발명의 제1 실시예에 따라 코딩 유닛의 비디오 코딩 동안 국소적 다중가설 예측(localized multihypothesis prediction)을 수행하는 장치에 대한 개요도이다.
도 1b는 본 발명의 제1 실시예에 따른 도 1a에 도시된 인터/인트라 예측 모듈에 대한 개요도이다.
도 1c는 본 발명의 제1 실시예에 따른 도 1b에 도시된 다중가설 인터 예측 회로의 다중가설 움직임 보상 동작에 대한 예시도이다.
도 2는 본 발명의 실시예에 따라 코딩 유닛의 비디오 코딩 동안 국소적 다중가설 예측을 수행하는 방법에 대한 흐름도이다.
도 3은 본 발명의 실시예에 따라 도 2에 도시된 방법에 포함되는 코딩된 블록들에 대한 예시도이다.
도 4는 본 발명의 실시예에 따라 도 2에 도시된 방법에 포함되는 상세한 구현 일부에 대한 예시도이다.
도 5a 내지 도 5d는 본 발명의 실시예에 따라 도 2에 도시된 방법에 포함되는, 다중가설 예측의 상세한 구현 일부에 대한 예시도이다.
도 6a 내지 도 6b는 본 발명의 다른 실시예들에 따라 도 2에 도시된 방법에 포함되는, 움직임 정보를 획득하는 소스에 대한 예시도이다.
도 7a 내지 도 7b는 본 발명의 다른 실시예들에 따라 도 2에 도시된 방법에 포함되는, 일시적 및 공간 모션 벡터(MV)에 각각에 대한 도면이다.
도 8a 내지 도 8c는 본 발명의 일부의 실시예들에 따라 도 2에 도시된 방법에 포함되는, 모션 벡터를 획득하는 소스에 대한 예시도이다.
도 9는 본 발명의 실시예에 따라 도 2에 도시된 방법에 포함되는 상세한 구현 일부에 대한 예시도이다.
도 10은 본 발명의 다른 실시예에 따라 도 2에 도시된 방법에 포함되는 상세한 구현 일부에 대한 예시도이다.
도 11은 본 발명의 실시예에 따라 도 2에 도시된 방법에 포함되는 상세한 구현 일부에 대한 예시도이다.
이하의 상세한 설명 및 청구의 범위에서는 특정한 구성요소를 나타내는 소정의 용어들이 사용된다. 당업자는 잘 이해하는 바와 같이, 전자장비 제조업자는 하나의 구성요소를 다른 명칭으로 부르기도 있다. 본 명세서에서는 명칭이 다른 구성요소들을 구별하려는 것이 아니라 기능을 구별하려는 것이다. 이하의 상세한 설명 및 청구의 범위에서, "포함하다" 및 "구성하다"와 같은 용어들은 개방형 방식으로 사용되며, 이에 따라 "포함하되, 제한되지 않는다"는 뜻으로 해석되어야 한다. 또한, "결합하다"와 같은 용어는 직접 또는 간접의 전기접속 모두를 나타내는 것이다. 따라서, 하나의 장치가 다른 장치에 결합하고 있다면, 그 접속은 직접적인 전기접속일 수도 있고, 다른 장치들이나 접속을 통한 간접적인 전기접속일 수도 있다.
도 1a를 참조하면, 본 발명의 제1 실시예에 따라 코딩 유닛의 비디오 코딩 동안 국소적 다중가설 예측(localized multihypothesis prediction)을 수행하는 장치(100)가 도시되어 있다. 장치(100)는 인터/인트라 예측 모듈(110)(도 1a에 "인터/인트라 예측"으로 표시되어 있음), 산술 유닛(120), 변환 및 양자화 모듈(130)(도 1a에 "변환 및 양자화"로 표시되어 있음), 엔트로피 코딩 회로(140)(도 1a에 "엔트로피 코딩"으로 표시되어 있음), 역변환 및 역양자화 모듈(150)(도 1a에 "역변환 및 역양자화"로 표시되어 있음), 재구성 회로(160)(도 1a에 "REC"로 표시되어 있음), 디블로킹 필터(deblocking filter)(170), 및 프레임 버퍼(180)를 포함한다. 도 1b를 참조하면, 전술한 인터/인트라 예측 모듈(110)은 다중가설 인터 예측 회로(112)(도 1b에 "다중가설 인터 예측"으로 표시되어 있음), 인터 예측 회로(114)(도 1b에 "인터 예측"으로 표시되어 있음), 인트라 예측 회로(116)(도 1b에 "인트라 예측"으로 표시되어 있음), 및 스위칭 회로(118)를 포함한다.
도 1a에 도시된 실시예에 따르면, 장치(100)는 본래의 신호(109)에 대한 비디오 코딩을 수행하고, 예를 들어 엔트로피 코딩 유닛(140)의 출력과 같이, 코딩 결과를 수반하는 출력 신호를 생성한다. 예를 들어, 본래의 신호(109)는 코딩 유닛의 데이터를 수반하는 입력 비디오를 나타낼 수 있고, 엔트로피 코딩 회로(140)의 출력은 출력 비트스트림(또는 비트 스트림)일 수 있다. 또한, 인터/인트라 예측 모듈(110)은 인터/인트라 예측을 수행하도록 구성되어 있는데, 구체적으로 도 1b에 각각 도시되어 있는 다중가설 인터 예측 회로(112), 인터 예측 회로(114), 및 인트라 예측 회로(116)를 활용함으로써 다중가설 인터 예측, 인터 예측, 및 인트라 예측을 수행하도록 구성되어 있다.
도 1a에 도시된 바와 같이, 산술 유닛(120)은 본래의 신호(109)(이 신호는 예를 들어 코딩 유닛의 데이터를 수반하는 입력 비디오를 나타낼 수 있다) 및 인터/인트라 예측 모듈(110)에 의해 생성된 예측 신호(119)에 대해 감산 연산과 같은 산술 연산을 수행하도록 구성되어 있다. 또한, 변환 및 양자화 모듈(130), 엔트로피 코딩 회로(140), 역변환 및 역양자화 모듈(150), 및 재구성 회로(160)는 변환 및 양자화, 엔트로피 코딩, 역변환 변환 및 역양자화, 재구성 동작을 수행하도록 구되어 있다. 그 결과, 재구성 회로(160)는 재구성 동작의 재구성된 결과를 수반하는 일시적으로 재구성된 신호(169)를 생성한다. 또한, 디블로킹 필터(170)는 재구성된 필터(169)에 대한 디블로킹 필터링을 수행하여, 디블로킹된 데이터를 수반하는 디블로킹된 신호(179)를 생성하며, 상기 디블로킹된 신호는 연속적인 인코딩 픽처의 인터 예측을 위해 프레임 버퍼(180)에 저장되며, 인터/인트라 예측 모듈(110)은 일시적으로 재구성된 신호(169) 및 복원된 신호(189)에 의해 수반된 이전의 디코딩된 픽처의 디블로킹된 데이터에 액세스할 수 있다. 이것은 단지 예시적인 목적에 지나지 않으며, 본 발명의 제한이 되어서는 안 된다. 본 실시예의 일부의 변형 실시예에 따르면, 디블로킹 필터(170) 및 이 디블로킹 필터의 디블로킹 필터링이 생략되는 상황에서, 일시적으로 재구성된 신호(169)에 의해 수반된 재구성된 결과는 프레임 버퍼(180)에 저장될 수 있으며, 인터/인트라 예측 모듈(110)은 현재의 인코딩 픽처의 일시적으로 재구성된 신호(169) 및 복원된 신호(189)를 통해 이전의 디코딩된 픽처의 재구성된 결과에 액세스할 수 있다.
도 1b를 참조하면, 다중가설 인터 예측 회로(112)는 복원된 신호(189)를 통해 이전의 디코딩된 픽처의 재구성된 결과 및 본래의 신호(109)에 따라 다중가설 인터 예측을 수행하여 다중가설 인터 예측 출력(113)을 생성하도록 구성되어 있고, 인터 예측 회로(114)는 복원된 신호(189)를 통해 이전의 디코딩된 픽처의 재구성된 결과 및 본래의 신호(109)에 따라 다중가설 인터 예측을 수행하여 인터 예측 출력(115)을 생성하도록 구성되어 있고, 인트라 예측 회로(116)는 본래의 신호(109) 및 일시적으로 재구성된 신호(169)에 따라 인트라 예측을 수행하여 인트라 예측 출력(117)을 생성하도록 구성되어 있으며, 스위칭 회로(118)는 다중가설 인터 예측 출력(113), 인터 예측 출력(115), 및 인트라 예측 출력(117) 중 하나를 전술한 예측 신호(119)로 동적으로 선택하도록 구성되어 있다.
실제로, 장치(100)의 적어도 일부(예를 들어, 일부 또는 전부)는 하드웨어를 활용하여 구현될 수 있다. 예를 들어, 장치(100)는 코딩 유닛에 대해 비디오 코딩을 수행하도록 구성되어 있는 처리 회로로 구현될 수 있으며, 상기 처리 회로는, 인터/인트라 예측 모듈(110)을 포함하는 사전처리 모듈을 포함할 수 있으며, 산술 유닛(120), 변환 및 양자화 모듈(130), 엔트로피 코딩 회로(140), 역변환 및 역양자화 모듈(150), 재구성 회로(160), 및 디블로킹 필터(170)로 이루어지는 포함하는 적어도 하나의 코딩 모듈을 더 포함할 수 있다. 특히, 장치(100)의 하나 이상의 구성요소는 디지털 신호 처리 기술로 구현될 수 있다. 이것은 단지 예시적인 목적에 지나지 않으며, 본 발명의 제한이 되어서는 안 된다. 본 실시예의 일부 변형 실시예에 따르면, 장치(100)의 적어도 일부는 소프트웨어 및/또는 펌웨어로 구현될 수 있다. 예를 들어, 처리 회로는 복수의 프로그램 코드를 실행하는 프로세서일 수 있는데, 상기 복수의 프로그램 코드의 제1 부분을 실행하는 프로세서는 전술한 사전처리 모듈의 동일한 또는 유사한 동작을 실행할 수 있으며, 상기 복수의 프로그램 코드의 제2 부분을 실행하는 프로세서는 전술한 코딩 모듈의 동일한 또는 유사한 동작을 실행할 수 있다.
장치(100)의 적어도 일부(예를 들어, 일부 또는 전부)가 하드웨어 회로를 활용함으로써 구현되든 또는 소프트웨어 현실화를 활용함으로써 구현되든지 간에, 장치(100)는 코딩 유닛의 유닛에서 비디오 코딩을 수행할 수 있다. 예를 들어, 코딩 유닛은 매크로블록(MB)일 수 있다. 다른 예에서, 코딩 유닛은 미리 정해진 최대의 코딩 유닛(largest coding unit: LCU) 및 미리 정해진 최소의 코딩 유닛(smallest coding unit: SCU) 간의 크기의 코딩 유닛일 수 있다. 픽처는 먼저 복수의 LCU로 분할되고, 각각의 LCU는 더 작은 코딩 유닛으로 적응적으로 분할되어 리프 코딩 유닛(leaf coding unit)으로 된다. 본 실시예에 따르면, 전술한 사전처리 모듈은 전술한 코딩 유닛을 복수의 서브코딩 유닛으로 분할할 수 있고(예를 들어, 스퀘어 파티션 또는 논-스퀘어 파티션과 같은 다양한 종류의 파티션에 의해 분할되고) 각각의 서브코딩 유닛에 대해 예측을 수행할 수 있다. 특히, 사전처리 모듈은 각각의 서브코딩 유닛에 대해 인터 예측, 인트라 예측, 또는 다중가설 움직임 보상을 수행할 수 있다. 다중가설 움직임 보상이 특정한 서브코딩 유닛에 대해 선택되면, 사전처리 모듈은 복수의 다른 코딩된 유닛에 따라 획득된 복수의 픽셀 값의 선형 조합을 계산하고, 그 계산된 결과를 특정한 서브코딩 유닛의 예측된 픽셀 값으로서 활용한다. 복수의 다른 코딩된 유닛은 코딩된 서브코딩 유닛, 코딩된 코딩 유닛, 또는 이것들의 조합일 수 있다. 또한, 전술한 적어도 하나의 코딩 모듈은 사전처리 모듈에 의해 수행되는 다중가설 움직임 보상에 기초해서 코딩 유닛에 대해 비디오 코딩을 수행하도록 구성되어 있다.
도 1c는 본 발명의 제1 실시예에 따라 도 1a에 도시된 인터/인트라 예측 모듈(110)의 다중가설 움직임 보상 동작에 대한 예시도이다. 본 실시예에서는, 복수의 후속 프레임 {F(t)}의 일부를 F(t0-3), F(t0-2), F(t0-1), F(t0)로 표기하여 나타내며, 프레임 F(t0)는 현재 프레임이다. 현재 프레임 F(t0)는 복수의 코딩 유닛{CU(t0)}을 포함할 수 있고, CU(t0)는 복수의 서브코딩 유닛{SubCU(t0)}을 포함할 수 있다. 전술한 사전처리 모듈은 복수의 다른 서브코딩/코딩 유닛으로부터 모션 벡터 {vk}와 같은 움직임 정보를 각각 획득하는데, 이는 사전처리 모듈이 특정한 서브코딩 유닛의 다중가설 움직임 보상을 위해 복수의 다른 서브코딩/코딩 유닛을 모션 벡터 {vk}로서 활용한다는 것을 의미한다. 본 실시예에 따르면, 사전처리 모듈은 도 1c에 도시된 서브코딩 유닛 SubCU(t0)와 같은 특정한 서브코딩 유닛에 대해 복수의 모션 벡터 {vk}에 따라 다중가설 움직임 보상을 수행할 수 있다.
일반적으로, 사전처리 모듈은 복수의 다른 서브코딩/코딩 유닛의 움직임 정보에 의해 획득된 복수의 기준 픽셀 값 {Ψr}의 선형 조합을 계산한다. 선형 조합은 특정한 서브코딩 유닛의 예측된 픽셀 값 Ψp이다. 예를 들어, 제1 세트의 코딩된 유닛의 움직임 정보는 모션 벡터(들), 기준 프레임 인덱스(들), 예측 방향(들), 및 이것들 중 하나 또는 조합을 포함하며, 특히, 싱글 서브코딩 유닛/코딩 유닛으로부터 도출되는 일부의 모션 벡터를 포함한다. 다른 예에서, 움직임 정보는 모션 벡터(들), 기준 프레임 인덱스(들), 예측 방향(들) 및 이것들의 임의의 조합일 수 있다. 모션 벡터는 이하의 실시예에서 움직임 정보의 예로서 사용된다. 선형 조합이란 복수의 기준 픽셀 값의 가중된 합산이 될 수 있고, 이것은 사전처리 모듈이 복수의 기준 픽셀 값의 가중된 합산을 특정한 서브코딩 유닛의 예측된 픽셀 값으로서 활용한다는 것을 의미한다. 예를 들어, 예측된 픽셀 값 Ψp를 가지는 특정한 예측된 픽셀이 i번째 서브코딩 유닛(예를 들어, 도 1c에 도시되어 있는 서브코딩 유닛 SubCU(t0))에 속하고 위치 x(예를 들어, 현재 프레임 F(t0)의 이미지 면 위에서의 2방향 벡터와 같이, 위치를 나타내는 벡터)에 위치하는 상황에서, 예측된 픽셀 값 Ψp은 Ψp(i,x)로 다시 쓸 수 있고, 이 예측된 픽셀 값 Ψp(i,x)는 다음과 같이 표현될 수 있다:
Ψp(i,x)=Σk∈K(hk(i,x)Ψr(x+vk));
여기서, 인덱스 k는 집합 K 내에서 변할 수 있고, 표기 hk(i,x)는 인덱스 k와 관련된 가중된 파라미터를 나타낸다. 예를 들어, 가능성 있는 값 k의 수가 1보다 큰 상황에서, 가중된 파라미터의 합 {hk(i,x)}은 간결하게 하기 위해 1과 같아지게 될 수 있다.
도 1c에 도시된 바와 같이, 모션 벡터 {vk}는 현재 프레임 F(t0) 내에서 다른 코딩 유닛의 서브코딩 유닛 A 및 B의 모션 벡터 vA 및 vB를 포함할 수 있고, 이전 프레임 F(t0-1)과 같은 다른 프레임 내에서 코딩 유닛 CU(t0-1)의 서브코딩 유닛 T의 모션 벡터 vT를 더 포함할 수 있다. 예를 들어, 코딩 유닛이 블록인 상황에서, 코딩 유닛 CU(t0-1)는 코딩 유닛 CU(t0)과 관련해서 나란히 배치된 블록일 수 있다. 결과적으로, 모션 벡터 {vk}에 의해 획득된 기준 픽셀 값 {Ψr}에 상기 가중된 파라미터를 적용함으로써, 사전처리 모듈은 vA, vB, vT와 같은 모션 벡터 {vk}에 의해 표시된 부분 이미지를 블렌딩/혼합하여 가중된 합산 이미지를 생성할 수 있고, 그 가중된 합산 이미지를 도 1c에 도시되어 있는 서브코딩 유닛 SubCU(t0)와 같은 특정한 서브코딩 유닛의 예측된 부분 이미지로서 활용할 수 있다. 도 2를 참조하여 전술한 동작에 대해 상세히 설명한다.
도 2는 본 발명의 실시예에 따라 코딩 유닛의 비디오 코딩 동안 국소적 다중가설 예측을 수행하는 방법(910)에 대한 흐름도이다. 방법(910)은 도 1a에 도시되어 있는 장치(100)에 적용될 수 있으며, 특히 전술한 처리 회로에 적용될 수 있다. 방법에 대해 이하에 설명한다.
단계 912에서, 전술한 사전처리 모듈은 코딩 유닛 CU(t0)(예를 들어, 고려 중인 코딩 유닛)을 복수의 서브코딩 유닛, 예를 들어 서브코딩 유닛 {SubCU(t0)}으로 분할하고, 복수의 서브코딩 유닛 {SubCU(t0)} 각각에 대해 예측을 수행한다. 특히, 사전처리 모듈은, 서브코딩 유닛 {SubCU(t0)}의 특정한 서브코딩 유닛 SubCU(t0)의 다중가설 움직임 보상을 위해, 전술한 복수의 다른 코딩된 유닛(예를 들어, 복수의 다른 서브코딩/코딩 유닛)으로부터 전술한 모션 벡터 {vk}와 같은 움직임 정보를 획득하며, 상기 복수의 다른 서브코딩/코딩 유닛은, 코딩 유닛 CU(t0)의 다른 서브코딩 유닛(들); 적어도 하나의 다른 코딩 유닛의 서브코딩 유닛(들); 및/또는 다른 코딩 유닛(들)을 포함한다. 본 발명의 실시예에 따르면, 도 3에 도시된 것과 같이, 코딩 유닛 CU(t0)는 처리 중인 블록일 수 있고(도 3에 "처리된 블록"으로 표시되어 있음), 특정한 서브코딩 유닛 SubCU(t0)는 서브블록 SB일 수 있으며, 여기서 도 3에 도시된 빗금 부분은 코딩된 유닛/코딩된 블록 {CB}의 적어도 일부를 나타낼 수 있다. 도 3을 참조하면, 코딩된 블록 {CB}는 좌측 코딩된 블록 CBL, 상부 좌측 코딩된 블록 CBUL, 상부 코딩된 블록 CBU, 상부 우측 코딩된 블록 CBUR을 포함할 수 있다. 예를 들어, 모션 벡터 {vk}는 코딩된 블록 {CB}의 적어도 일부(예를 들어, 일부 또는 전부), 예를 들어, 코딩된 블록 CBL, CBUL, CBU, CBUR 중 하나 이상의 모션 벡터를 포함할 수 있다.
단계 914에서, 전술한 사전처리 모듈은 복수의 모션 벡터 {vk}에 따라 특정한 서브코딩 유닛 SubCU(t0)에 대해 다중가설 움직임 보상을 수행한다. 특히, 사전처리 모듈은 단계 912에서 언급된 복수의 다른 코딩된 유닛(예를 들어, 복수의 다른 서브코딩/코딩 유닛)의 복수의 픽셀 값의 선형 조합, 예를 들어 전술한 복수의 다른 코딩된 유닛 내의 기준 픽셀의 기준 픽셀 값 {Ψr}의 선형 조합을, 특정한 서브코딩 유닛의 예측된 픽셀 값 Ψp로서 활용한다. 예를 들어, 각각의 코딩 유닛(예를 들어, 코딩 유닛 CU(t0))은 블록일 수 있는데, 구체적으로, 예를 들어 확장된 매크로블록, 매크로블록, 또는 매크로블록의 일부와 같이, 픽셀로 이루어진 어레이를 포함하는 블록일 수 있다. 그러므로 서브코딩 유닛을 서브블록이라 할 수 있다. 본 발명의 실시예에 따르면, 도 3에 도시된 바와 같이, 사전처리 모듈은 전술한 모션 벡터 {vk}에 따라 처리 중인 블록(도 3에 "처리된 블록"으로 표시되어 있음)에 대해 다중가설 움직임 보상을 수행할 수 있으며, 여기서, 사전처리 모듈은 코딩된 블록 {CB}의 적어도 일부(예를 들어, 일부 또는 전부) 내의, 예를 들어, 코딩된 블록 CBL, CBUL, CBU, CBUR 중 하나 이상 내의 기준 픽셀의 기준 픽셀 값 {Ψr}을 블렌딩/혼합할 수 있다.
본 실시예에 따르면, 사전처리 모듈은 단계 912에서 언급된 서브코딩 유닛 각각을 처리하도록 구성되어 있다. 예를 들어, 사전처리 모듈은 단계 912에서 언급된 서브코딩 유닛의 제1 서브코딩 유닛, 예를 들어 특정한 서브코딩 유닛 SubCU(t0)의 다중가설 움직임 보상을 위해 제1 세트의 코딩된 유닛의 움직임 정보를 획득하고, 이 움직임 정보에 따라 특정한 서브코딩 유닛과 같은 제1 서브코딩 유닛에 대한 다중가설 움직임 보상을 수행한다. 구체적으로, 사전처리 모듈은 제1 세트의 코딩된 유닛의 움직임 정보로부터 도출된 복수의 픽셀 값의 선형 조합을, 특정한 서브코딩 유닛과 같은 제1 서브코딩 유닛의 예측된 픽셀 값으로서 활용한다. 또한, 전술한 적어도 하나의 코딩 모듈은 사전처리 모듈에 의해 수행되는 다중가설 움직임 보상에 기초해서 코딩 유닛에 대해 비디오 코딩을 수행하도록 구성되어 있다. 부가적으로, 사전처리 모듈은 제2 세트의 코딩된 유닛의 움직임 정보를 활용함으로써, 코딩 유닛의 다른 서브코딩 유닛의 예측된 픽셀 값, 예를 들어 단계 912에서 언급된 서브코딩 유닛의 제2 서브코딩 유닛의 예측된 픽셀 값을 도출하며, 여기서 제2 서브코딩 유닛은 제1 서브코딩 유닛과는 다르다.
제1 서브코딩 유닛과 관련해서, 제1 세트의 코딩된 유닛은, 코딩 유닛 CU(t0)의 다른 서브코딩 유닛(들)(즉, 제1 서브코딩 유닛을 제외한 코딩 유닛 CU(t0)의 다른 서브코딩 유닛(들)); 적어도 하나의 다른 코딩 유닛의 서브코딩 유닛(들)(코딩 유닛 CU(t0)와는 다른 적어도 하나의 코딩 유닛의 서브코딩 유닛(들)); 및/또는 다른 코딩 유닛(들), 예를 들어 코딩 유닛 CU(t0)와는 다른 하나 이상의 코딩 유닛을 포함한다. 또한, 제2 서브코딩 유닛과 관련해서, 제2 세트의 코딩된 유닛은, 코딩 유닛 CU(t0)의 다른 서브코딩 유닛(들)(즉, 제2 서브코딩 유닛을 제외한 코딩 유닛 CU(t0)의 다른 서브코딩 유닛(들)); 적어도 하나의 다른 코딩 유닛의 서브코딩 유닛(들)(코딩 유닛 CU(t0)와는 다른 적어도 하나의 코딩 유닛의 서브코딩 유닛(들)); 및/또는 다른 코딩 유닛(들), 예를 들어 코딩 유닛 CU(t0)와는 다른 하나 이상의 코딩 유닛을 포함한다. 제2 세트의 코딩된 유닛은 제1 세트의 코딩된 유닛에 있지 않은 적어도 하나의 코딩된 유닛을 포함한다는 것에 유의하라. 이것은 단지 예시적인 목적에 지나지 않으며, 본 발명의 제한이 되어서는 안 된다. 본 실시예의 일부의 변형 실시예에 따르면, 제1 세트의 코딩된 유닛 및 제2 세트의 코딩된 유닛은 동일한 세트의 코딩된 유닛일 수 있다. 그렇지만, 사전처리 모듈은 이 동일한 세트의 코딩된 유닛의 움직임 정보로부터 도출된 복수의 픽셀 값의 선형 조합을, 제1 세트의 코딩된 유닛 및 제2 세트의 코딩된 유닛의 각각의 예측된 픽셀 값으로서 각각 활용한다. 예를 들어, 사전처리 모듈은 복수의 픽셀 값에 대한 제1 세트의 가중된 파라미터에 대응하는 제1 선형 조합을, 제1 서브코딩 유닛의 예측된 픽셀 값으로서 활용하고, 복수의 픽셀 값에 대한 제2 세트의 가중된 파라미터에 대응하는 제2 선형 조합을, 제2 서브코딩 유닛의 예측된 픽셀 값으로서 활용한다. 다른 예에서, 사전처리 모듈은 제1 세트의 코딩된 유닛의 움직임 정보로부터 도출된 복수의 픽셀 값의 제1 가중된 합산을, 특정한 서브코딩 유닛과 같은 제1 서브코딩 유닛의 예측된 픽셀 값으로서 활용하고, 동일한 세트의 코딩된 유닛(즉, 제1 세트의 코딩된 유닛)의 움직임 정보로부터 도출된 픽셀 값의 제2 가중된 합산을 활용함으로써 제2 서브코딩 유닛의 예측된 픽셀 값을 도출하며, 여기서 제1 가중된 합산은 제2 가중된 합산과는 다르다.
도 3에 도시된 실시예의 변형 실시예와 같은 일부의 실시예에서, 단계 912에서 언급된 다른 코딩된 유닛 각각은 코딩된 서브코딩/코딩 유닛이다. 예를 들어, 이러한 변동예의 일부에서, 단계 912에서 언급된 복수의 다른 코딩된 유닛은 적어도 하나의 부분적으로 코딩된 서브코딩/코딩 유닛(예를 들어, 현재 프레임 F(t0)의 하나 이상의 코딩된 블록 {CB}, 또는 처리 중인 블록 내 또는 코딩된 블록 내의 하나 이상의 코딩된 서브블록) 및/또는 적어도 하나의 일시적으로 코딩된 서브코딩/코딩 유닛(현재 프레임 F(t0)와는 상이한 다른 프레임 내의 하나 이상의 코딩된 서브블록/블록)을 포함한다. 다른 예에서, 이러한 변동예의 일부에서, 단계 912에서 언급된 다른 코딩된 유닛 각각은 전술한 서브코딩/코딩 유닛이다. 이러한 변동예의 일부에 따르면, 모션 벡터 {vk}는 움직임 추정으로부터 획득될 수 있다.
도 4는 본 발명의 실시예에 따라 도 2에 도시된 방법(910)에 포함되는 상세한 구현 일부에 대한 예시도이다. 본 실시예에 따르면, 사전처리 모듈은 본 실시예의 단계 914에서 언급된 복수의 픽셀 값의 가중된 합산(예를 들어, Σk∈K(hk(i,x)Ψr(x+vk)))을, 도 4에 도시된 i번째 서브블록 bi와 같은 특정한 서브코딩 유닛의 예측된 픽셀 값 Ψp로서 사용한다. 보다 나은 이해를 위해, 코딩된 블록 CBL, CBUL, CBU, CBUR는 도 3에 도시된 코딩된 블록과 각각 같을 수 있다. 예를 들어, 예측된 픽셀 값 Ψp를 계산하기 위한 기준 픽셀의 기준 픽셀 값 {Ψr}은 코딩된 블록 CBL, CBUL, CBU, CBUR 중 하나 이상으로부터 획득될 수 있고, 복수의 모션 벡터 {vk}는 코딩된 블록 CBL, CBUL, CBU, CBUR의 각각의 모션 벡터 vL, vUL, vU, vUR 중 하나 이상을 포함할 수 있다.
구체적으로, 도 4에 도시된 i번째 서브블록 bi와 같은 각각의 서브블록에 있어서, 예측된 픽셀 값 Ψp(i,x)와 같은 예측된 픽셀 값은 코딩된 블록 {CB} 내의 일부의 기준 픽셀의 기준 픽셀 값 Ψr을 블렌딩/혼합하여 도출될 수 있고, 이에 따라 다음과 같이 표현될 수 있다:
Ψp(i,x)=Σk∈K(hk(i,x)Ψr(x+vk));
여기서, 인덱스 k는 집합 K 내에서 변할 수 있고, 표기 vk 및 hk(i,x)는 k번째 기준 모션 벡터 및 관련 가중된 파라미터를 각각 나타내는 데 사용될 수 있다. 예를 들어, bi ∈ Bm 및 표기 Bm은 처리 중인 블록(도 4에서 "처리된 블록"으로 표시되어 있음)의 서브블록 세트를 나타낸다. 도 4에 도시된 바와 같이, 모션 벡터 {vk}의 예시적 모션 벡터 vk는 코딩된 블록 CBU 내에 도시되어 있는데, 이는 모션 벡터 {vk}가 이 상황에서 코딩된 블록 CBU의 모션 벡터 vU를 포함한다는 것을 나타낸다.
도 4에 도시된 변형 실시예와 같은 실시예에서, 사전처리 모듈은 기준 픽셀 값 {Ψr}과 같은 복수의 기준 픽셀 값에 대한 각각의 가중된 파라미터 {hk(i,x)}를 조정하고 그 가중된 합산(예를 들어, 본 변형 실시예에서는, Σk∈K(hk(i,x)Ψr(x+vk)))을 생성하기 위해, 고려 중인 현재 픽셀의 실제 픽셀 값 ΨREAL(i,x)와 관련해서 기준 픽셀 값 Ψr과 같은 복수의 픽셀 값에 대해 최적의 위너 필터링(Wiener filtering)을 수행할 수 있다. 예를 들어, 가중된 파라미터 {hk(i,x)}는 사전처리 모듈 내의 최적의 위너 필터링을 활용함으로써 다음과 같이 획득될 수 있다:
(h0 *,...,hk *)=arg min│ΨREAL(i,x)-Σk∈K(hk(i,x)Ψr(x+vk))│
이것은 사전처리 모듈에 의해 수행된 최적의 위너 필터링 동안 가중된 파라미터 {hk(i,x)}가 │ΨREAL(i,x)-Σk∈K(hk(i,x)Ψr(x+vk))│의 최솟값에 대응하는 집합 (h0 *,...,hk *)을 검색함으로써 획득될 수 있다는 것을 의미한다. 이것은 단지 예시적인 목적에 지나지 않으며, 본 발명의 제한이 되어서는 안 된다. 도 4에 도시된 변형 실시예에 따르면, 사전처리 모듈은 적어도 하나의 인접하는 코딩 유닛의 콘텐츠, 예를 들어, 코딩된 블록 CBL, CBUL, CBU, CBUR 중 하나 이상의 콘텐츠에 따라 복수의 픽셀 값에 대해 각각의 가중된 파라미터 {hk(i,x)}를 결정하여, 가중된 합산(즉, 본 실시예에서는 Σk∈K(hk(i,x)Ψr(x+vk)))을 생성할 수 있다. 도 4에 도시된 다른 변형 실시예에 따르면, 사전처리 모듈은 단계 912에서 언급된 복수의 다른 코딩된 유닛(예를 들어, 제1 세트의 코딩된 유닛)의 콘텐츠에 따라 복수의 픽셀 값에 대해 각각의 가중된 파라미터 (hk(i,x)를 결정하여, 가중된 합산(즉, 본 실시예에서는 Σk∈K(hk(i,x)Ψr(x+vk)))을 생성할 수 있다.
도 4에 도시된 변형 실시예와 같은 일부의 다른 변형 실시예에서, 사전처리 모듈은 오프라인 트레이닝 또는 오프라인 트레이닝에 의해 복수의 픽셀 값에 대한 각각의 가중된 파라미터 {hk(i,x)}를 결정하여, 이러한 변형 실시예에서의 가중된 합산(Σk∈K(hk(i,x)Ψr(x+vk)))을 생성할 수 있다. 도 4에 도시된 다른 변형 실시예에 따르면, 사전처리 모듈은 복수의 픽셀 값의 평균을 특정한 서브코딩 유닛의 예측된 픽셀 값으로 사용할 수 있으며, 이는 가중된 파라미터 {hk(i,x)} 중 임의의 두 파라미터가 서로 같다는 것을 의미한다. 구체적으로, 본 변형 실시예에서, 가중된 파라미터 {hk(i,x)} 각각은 1/n(K)와 같고, 여기서 n(K)는 집합 K 내의 k의 가능한 값의 수를 나타낸다.
도 5a 내지 도 5d는 본 발명의 다른 실시예에 따라 도 2에 도시된 방법(910)에 포함되는, 다중가설 예측의 상세한 구현 일부에 대한 예시도이며, 여기서 단계 914에서 언급된 선형 조합은 가중된 합산(즉, 본 실시예에서는 Σk∈K(hk(i,x)Ψr(x+vk)))으로 간주될 수 있다. 이해를 더 쉽게 하기 위해, 코딩된 블록 CBL, CBUL, CBU, CBUR은 도 3에 도시된 것들과 각각 동일할 수 있다. 또한, i번째 서브블록 bi는 특정한 서브코딩 유닛 SubCU(t0)의 예로서 설명된다.
도 5a를 참조하면, 서브코딩 유닛 A, B, C, D는 처리 중인 블록(도 5a에서 "처리된 블록"으로 표시되어 있음) 또는 다른 코딩된 유닛(예를 들어, BL, CBUL, CBU, CBUR)에 속한다. 구체적으로, 도 5a에 도시된 i번째 서브블록 bi와 관련해서, 서브코딩 유닛 A는 좌측 인접 서브코딩 유닛이고, 서브코딩 유닛 B는 상부 인접 서브코딩 유닛이고, 서브코딩 유닛 C는 상부 우측 인접 서브코딩 유닛이고, 서브코딩 유닛 D는 상부 좌측 인접 서브코딩 유닛이다. 본 실시예에서, 모션 벡터 {vk}는 도 5a에 도시되어 있는 서브코딩 유닛 A, B, C, 및/또는 D로부터 획득될 수 있고, 이에 따라, 서브코딩 유닛 A, B, C, 및/또는 D의 각각의 모션 벡터 vA, vB, vC, 및/또는 vD를 포함할 수 있다. 예를 들어, 모션 벡터 {vk}는 서브코딩 유닛 A, B, C, 및 D의 각각의 모션 벡터 vA, vB, vC, 및 vD 모두를 포함할 수 있다. 다른 예에서, i번째 서브블록 bi와 같이 특정한 서브코딩 유닛의 서브코딩 유닛 C가 존재하는 경우, 모션 벡터 {vk}는 모션 벡터 vA, vB, 및 vC를 포함할 수 있다. 다른 예에서, i번째 서브블록 bi와 같이 특정한 서브코딩 유닛의 서브코딩 유닛 C가 존재하지 않는 경우, 모션 벡터 {vk}는 모션 벡터 vA, vB, 및 vD를 포함할 수 있다.
그러므로 단계 914에서 언급된 선형 조합은, 모션 벡터 {vk}가 모션 벡터 vA, vB, vC, 및/또는 vD를 포함하는 상기 가중된 합산 Σk∈K(hk(i,x)Ψr(x+vk))일 수 있다. 간결하게 하기 위해, 예측된 픽셀 값 Ψp을 다음과 같이 표현할 수 있다:
Ψp=Weighted_Sum(Ψr(vA ,),Ψr(vB),Ψr(vC), and/or Ψr(vD));
여기서, Weighted_Sum은 전술한 상황에서의 가중된 합산을 나타낸다.
도 5a에 도시된 변형 실시예에 따르면, 사전처리 모듈은 복수의 픽셀 값의 평균을, 특정한 서브코딩 유닛의 예측된 픽셀 값으로서 활용하며, 이는 단계 914에서 언급된 선형 조합이 평균으로 간주될 수 있다는 것을 의미한다. 이 상황에서, 가중된 파라미터 {hk(i,x)} 중 임의의 두 파라미터는 서로 같다. 간결하게 하기 위해, 예측된 픽셀 값 Ψp는 다음과 같이 표현될 수 있다:
Ψp=Average(Ψr(vA),Ψr(vB),Ψr(vC), and/or Ψr(vD))
여기서 Average는 이 상황에서의 평균을 나타낸다. 이러한 변형예에 대한 유사한 설명에 대해서는 반복설명하지 않는다.
도 5b를 참조하면, 서브코딩 유닛 α1, α2, α3, α4, α5, α6, α7, 및 α8은 좌측 코딩된 블록 CBL에 속하고, 서브코딩 유닛 β1, β2, β3, β4, β5, β6, β7, 및 β8은 상부 코딩된 블록 CBU에 속하며, β9 및 δ은 상부 우측 코딩된 블록 CBUR 및 상부 좌측 코딩된 블록 CBUL에 각각 속한다. 구체적으로, 도 5b에 도시된 i번째 서브블록 bi(예를 들어, 본 실시예에서 처리 중인 블록의 하부 우측 사분면 내의 서브블록)와 관련해서, 모션 벡터 {vk}는 본 실시예의 서브코딩 유닛 A, B, C, 및/또는 D로부터 획득될 수 있고, 여기서 서브코딩 유닛 A는 좌측 코딩된 블록 CBL 내의 가장 근접한 서브코딩 유닛으로 규정할 수 있고, 서브코딩 유닛 B는 상부 코딩된 블록 CBU 내의 가장 근접한 서브코딩 유닛으로 규정할 수 있고, 서브코딩 유닛 C는 서브코딩 유닛 B의 우측 인접 서브코딩 유닛으로 규정할 수 있으며, 서브코딩 유닛 D는 서브코딩 유닛 B의 좌측 인접 서브코딩 유닛으로 규정할 수 있다. 도 5b에 도시된 상황에서, 서브코딩 유닛 A, B, C, 및 D는 각각 α5, β6, β7, 및 β5이다.
본 실시예에서, 모션 벡터 {vk}는 본 실시예의 서브코딩 유닛 A, B, C, 및/또는 D로부터 획득될 수 있고, 이에 따라, 서브코딩 유닛 A, B, C, 및/또는 D의 각각의 모션 벡터 vA, vB, vC, 및/또는 vD를 포함할 수 있다. 예를 들어, 모션 벡터 {vk}는 서브코딩 유닛 A, B, C, 및 D의 각각의 모션 벡터 vA, vB, vC, 및 vD 모두를 포함할 수 있다. 다른 예에서, i번째 서브블록 bi와 같이 특정한 서브코딩 유닛의 서브코딩 유닛 C가 존재하는 경우, 모션 벡터 {vk}는 모션 벡터 vA, vB, 및 vC를 포함할 수 있다. 다른 예에서, i번째 서브블록 bi와 같이 특정한 서브코딩 유닛의 서브코딩 유닛 C가 존재하지 않는 경우, 모션 벡터 {vk}는 모션 벡터 vA, vB, 및 vD를 포함할 수 있다.
그러므로 단계 914에서 언급된 선형 조합은, 모션 벡터 {vk}가 모션 벡터 vA, vB, vC, 및/또는 vD를 포함하는 상기 가중된 합산 Σk∈K(hk(i,x)Ψr(x+vk))일 수 있다. 간결하게 하기 위해, 예측된 픽셀 값 Ψp을 다음과 같이 표현할 수 있다:
Ψp=Weighted_Sum(Ψr(vA ,r(vB),Ψr(vC), and/or Ψr(vD));
여기서, Weighted_Sum은 전술한 상황에서의 가중된 합산을 나타낸다. 예를 들어, 사전처리 모듈은 특정한 서브코딩 유닛의 크기가 코딩 유닛의 비디오 코딩에 관한 변환 크기가 되도록 결정할 수 있고, 도 5b에 도시된 서브블록과 같은 서브코딩 유닛의 크기가 이 변환 크기와 동일하게 될 수 있다(예를 들어, 4×4, 8×8, 16×16 등).
도 5b에 도시된 변형 실시예에 따르면, 사전처리 모듈은 복수의 픽셀 값의 평균을, 특정한 서브코딩 유닛의 예측된 픽셀 값으로서 활용하며, 이는 단계 914에서 언급된 선형 조합을 획득하는 연산이 평균 연산으로 간주될 수 있다는 것을 의미한다. 이 상황에서, 가중된 파라미터 {hk(i,x)} 중 임의의 두 파라미터는 서로 같다. 간결하게 하기 위해, 예측된 픽셀 값 Ψp는 다음과 같이 표현될 수 있다:
Ψp=Average(Ψr(vA),Ψr(vB),Ψr(vC), and/or Ψr(vD))
여기서 Average는 이 상황에서의 평균을 나타낸다. 이러한 변형예에 대한 유사한 설명에 대해서는 반복설명하지 않는다.
도 5c를 참조하면, 서브코딩 유닛 {α1, α2, α3, α4, α5, α6, α7, α8, β1, β2, β3, β4, β5, β6, β7, β8, β9, δ}에 대한 규정은 도 5b에 도시된 실시예에서 규정된 것과 같다. 또한, 도 5c에 도시된 i번째 서브블록 bi(예를 들어, 본 실시예에서 처리 중인 블록의 상부 우측 사분면 내의 서브블록)와 관련해서, 모션 벡터 {vk}는 본 실시예의 서브코딩 유닛 A, B, C, D, E, F 및/또는 Z로부터 획득될 수 있고, 여기서 서브코딩 유닛 A, B, C, 및 D는 도 5b에 도시된 실시예에서 규정된 것과 같고, 서브코딩 유닛 E는 서브코딩 A의 상부 인접 서브코딩 유닛으로 규정할 수 있고, 서브코딩 유닛 F는 서브코딩 A의 하부 인접 서브코딩 유닛으로 규정할 수 있고, 서브코딩 Z는 상부 좌측 코딩된 블록 CBUL 내의 가장 근접한 서브코딩 유닛으로 규정할 수 있다. 도 5c에 도시된 상황에서, 서브코딩 유닛 A, B, C, D, E, F, 및 Z는 각각 α4, β6, β7, β5, α3, α5, 및 δ이다.
본 실시예에서, 모션 벡터 {vk}는 본 실시예의 서브코딩 유닛 A, B, C, D, E, F 및/또는 Z로부터 획득될 수 있고, 이에 따라, 서브코딩 유닛 A, B, C, D, E, F 및/또는 Z의 각각의 모션 벡터 vA, vB, vC, vD, vE, vF, 및/또는 vZ를 포함할 수 있다. 예를 들어, 모션 벡터 {vk}는 서브코딩 유닛 A, B, C, D, E, F 및/또는 Z의 각각의 모션 벡터 vA, vB, vC, vD, vE, vF, 및 vZ 모두를 포함할 수 있다. 다른 예에서, i번째 서브블록 bi와 같이 특정한 서브코딩 유닛의 서브코딩 유닛 E가 존재하는 경우, 모션 벡터 {vk}는 모션 벡터 vA, vB, vC, vD, vE, 및 vF를 포함할 수 있다. 다른 예에서, i번째 서브블록 bi와 같이 특정한 서브코딩 유닛의 서브코딩 유닛 C가 존재하지 않는 경우, 모션 벡터 {vk}는 모션 벡터 vA, vB, vC, vD, vF, 및 vZ를 포함할 수 있다. 다른 예에서, i번째 서브블록 bi와 같이 특정한 서브코딩 유닛의 서브코딩 유닛 C 및 E가 존재하지 않는 경우, 모션 벡터 {vk}는 모션 벡터 vA, vB, vD, vF, 및 vZ를 포함할 수 있다.
그러므로 단계 914에서 언급된 선형 조합은, 모션 벡터 {vk}가 모션 벡터 vA, vB, vC, vD, vE, vF, 및/또는 vZ를 포함하는 상기 가중된 합산 Σk∈K(hk(i,x)Ψr(x+vk))일 수 있다. 간결하게 하기 위해, 예측된 픽셀 값 Ψp을 다음과 같이 표현할 수 있다:
Ψp=Weighted_Sum(Ψr(vA ,r(vB),Ψr(vC),Ψr(vD ,r(vE),Ψr(vF), and/or Ψr(vZ));
여기서, Weighted_Sum은 전술한 상황에서의 가중된 합산을 나타낸다. 예를 들어, 사전처리 모듈은 특정한 서브코딩 유닛의 크기가 코딩 유닛의 비디오 코딩에 관한 변환 크기가 되도록 결정할 수 있고, 도 5c에 도시된 서브블록과 같은 서브코딩 유닛의 크기가 이 변환 크기와 동일하게 될 수 있다(예를 들어, 4×4, 8×8, 16×16 등).
도 5c에 도시된 변형 실시예에 따르면, 사전처리 모듈은 복수의 픽셀 값의 평균을, 특정한 서브코딩 유닛의 예측된 픽셀 값으로서 활용하며, 이는 단계 914에서 언급된 선형 조합을 획득하는 연산이 평균 연산으로 간주될 수 있다는 것을 의미한다. 이 상황에서, 가중된 파라미터 {hk(i,x)} 중 임의의 두 파라미터는 서로 같다. 간결하게 하기 위해, 예측된 픽셀 값 Ψp는 다음과 같이 표현될 수 있다:
Ψp=Average(Ψr(vA ,r(vB),Ψr(vC),Ψr(vD ,r(vE),Ψr(vF), and/or Ψr(vZ))
여기서 Average는 이 상황에서의 평균을 나타낸다. 이러한 변형예에 대한 유사한 설명에 대해서는 반복설명하지 않는다.
도 5d를 참조하면, 서브코딩 유닛 {α1, α2, α3, α4, α5, α6, α7, α8, β1, β2, β3, β4, β5, β6, β7, β8, β9, δ}에 대한 규정은 도 5b에 도시된 실시예에서 규정된 것과 같다. 또한, 도 5d에 도시된 i번째 서브블록 bi(예를 들어, 본 실시예에서 처리 중인 블록의 하부 우측 사분면 내의 서브블록)와 관련해서, 모션 벡터 {vk}는 본 실시예의 서브코딩 유닛 A, B, C, 및 D로부터 획득될 수 있고, 여기서 서브코딩 유닛 A, B, C, 및 D는 도 5b에 도시된 실시예에서 규정된 것과 같다. 도 5c에 도시된 상황에서, 서브코딩 유닛 A, B, C, 및 D는 각각 α5, β6, β7, 및 β5이다.
본 실시예에서, 모션 벡터 {vk}는 본 실시예의 서브코딩 유닛 A, B, C, 및/또는 D로부터 획득될 수 있고, 이에 따라, 서브코딩 유닛 A, B, C, 및/또는 D의 각각의 모션 벡터 vA, vB, vC, 및/또는 vD를 포함할 수 있다. 예를 들어, 모션 벡터 {vk}는 서브코딩 유닛 A, B, C, 및 D의 각각의 모션 벡터 vA, vB, vC, 및 vD 모두를 포함할 수 있다. 다른 예에서, i번째 서브블록 bi와 같이 특정한 서브코딩 유닛의 서브코딩 유닛 C가 존재하는 경우, 모션 벡터 {vk}는 모션 벡터 vA, vB, 및 vC를 포함할 수 있다. 다른 예에서, i번째 서브블록 bi와 같이 특정한 서브코딩 유닛의 서브코딩 유닛 C가 존재하지 않는 경우, 모션 벡터 {vk}는 모션 벡터 vA, vB, 및 vD를 포함할 수 있다.
또한, 본 실시예의 가중된 파라미터 {hk(i,x)}는 특정한 서브코딩 유닛과 단계 912에서 언급된 다른 코딩된 유닛 중 관련된 하나 간의 거리에 반비례할 수 있다. 예를 들어, 가중된 파라미터 {hk(i,x)}는 위치 x의 의존성을 가지지 않는 wK(i)로 다시 쓸 수 있고, 가중된 파라미터 wK(i)는 (dk(i))m(즉, wK(i)∝1/(dk(i))m)에 반비례하며, 여기서 dk(i)는 특정한 서브코딩 유닛(예를 들어, i번째 서브블록 bi)와 k번째 기준 모션 벡터 vk(예를 들어, 서브코딩 유닛 A, B, C, 및 D 내의 k번째 서브코딩 유닛)를 가지는 관련 다른 서브코딩 유닛 간의 거리를 나타내고, m은 양의 상수를 나타낸다. 그러므로 예측된 픽셀 값 는 다음과 같이 표현될 수 있다:
Ψp(i,x)=Σk∈K(wK(i)Ψr(x+vk)), 또는
Ψpk∈K(wkΨr(vk))
여기서 {vk}는 모션 벡터 vA, vB, vC, 및/또는 vD를 포함할 수 있다. 도 5에 도시된 상황에서, 모션 벡터 {vk}는 vA, vB, 및 vC를 포함하고, dist_w, dist_h 및 dist_h'는 거리 dA(i), dB(i), 및 dC(i)를 각각 나타낸다. 결과적으로, 예측된 픽셀 값 Ψp는 다음과 같이 표현될 수 있다:
Ψp=wAΨr(vA ,)+wBΨr(vB ,)+wCΨr(vC);
여기서, wA∝1/(dist_w)m, wB∝1/(dist_h)m, 및 wC∝1/(dist_h')m이다.
도 5a 내지 도 5d에 도시된 일부의 변형예에서, 사전처리 모듈은, 복수의 코딩된 유닛의 움직임 정보에서 적어도 하나의 극한 모션 벡터(extreme motion vector)를 폐기함으로써, 특히, 한 세트의 모션 벡터 중 적어도 하나의 극한 모션 벡터를 폐기함으로써 상기 한 세트의 모션 벡터를 스크리닝(screening)할 수 있으며, 이에 따라 상기 한 세트의 모션 벡터 중 남아 있는 부분을 예측된 픽셀 값을 도출하기 위한 움직임 정보(예를 들어, 제1 세트의 코딩된 유닛의 움직임 정보)로서 선택할 수 있다. 예를 들어, 상기 적어도 하나의 극한 모션 벡터는, 상기 한 세트의 모션 벡터의 다른 모션 벡터와는 길이 및/또는 방향이 훨씬 다른 하나 이상의 모션 벡터를 포함할 수 있다.
도 5a 내지 도 5d에 도시된 일부의 변형 실시예에 따르면, 사전처리 모듈은 모드 1,2,3, 및 4를 포함하는 복수의 모드 중 임의의 모드에서 선택적으로 동작할 수 있으며, 모드 1,2,3 및 4의 각각의 동작은 도 5a 내지 도 5d에 도시된 실시예에 설명된 동작과 각각 동일하거나 유사할 수 있다. 예를 들어, 모드 1에서, 사전처리 모듈은 도 5a에 도시된 동일한 방법 실시예에 따라 동작할 수 있으나, 모드 2,3, 및 4와 같은 다른 모드에서, 사전처리 모듈은 도 5b 내지 도 5d에 도시된 실시예 내에서 대응하는 실시예와 같은 관련 실시예의 동일한 방법에 따라 각각 동작할 수 있다. 또한, 전술한 모드 1,2, 및 3에 의해, 장치(100)는 일부의 다른 모드(들)에 비해 쉽게 처리할 수 있고 장치(100)의 전체적인 처리 속도를 증가시키는 데 도움이 되며, 이에 따라 간략화된 모드라 칭할 수 있다.
도 5a 내지 도 5d에 도시된 임의의 변형 실시예에 따르면, 단계 912에서, 사전처리 모듈은, 코딩된 블록 CBL, CBUL, CBU, CBUR 중 하나 이상의 코딩된 블록의 모드 1,2,3 및/또는 4와 같이, 적어도 하나의 인접하는 코딩 유닛의 적어도 하나의 모드에 기초해서 코딩 유닛을 복수의 서브코딩 유닛으로 분할 수 있다. 도 5a 내지 도 5d에 도시된 임의의 변형 실시예에 따르면, 단계 912에서, 사전처리 모듈은, 코딩된 블록 CBL, CBUL, CBU, CBUR 중 하나 이상의 코딩된 블록과 같이, 적어도 하나의 인접하는 코딩 유닛의 콘텐츠에 기초해서 코딩 유닛을 복수의 서브코딩 유닛으로 분할 수 있다.
도 6a 내지 도 6b는 본 발명의 다른 실시예들에 따라 도 2에 도시된 방법(910)에 포함되는, 움직임 정보를 획득하는 소스에 대한 예시도이다. 보다 나은 이해를 위해, 코딩된 블록 CBL, CBUL, CBU, CBUR는 도 3에 도시된 코딩된 블록과 각각 같을 수 있다.
본 실시예에서, 특정한 서브코딩 유닛 SubCU(t0)의 크기가 코딩 유닛 CU(t0)로 확장되는 상황에서, 코딩 유닛 CU(t0)의 분할/파티셔닝은 단계 912에서 필요하지 않다. 그러므로 단계 912에서, 전술한 사전처리 모듈은 코딩 유닛 CU(t0)의 모션 벡터 예측을 수행할 수 있고, 구체적으로, 코딩 블록 {CB}의 적어도 일부(예를 들어, 코딩된 블록 CBL, CBUL, CBU, CBUR 중 하나 이상)와 같이 복수의 다른 코딩된 유닛으로부터 코딩 유닛 CU(t0)에 대한 다중가설 움직임 보상을 위해, 전술한 모션 벡터 {vk}와 같이, 복수의 모션 벡터를 획득할 수 있다. 또한, 단계 914에서, 사전처리 모듈은 복수의 모션 벡터 {vk}와 같은 움직임 정보에 따라 코딩 유닛 CU(t0)에 대해 다중가설 움직임 보상을 수행할 수 있고, 구체적으로, 복수의 다른 코딩 유닛의 복수의 픽셀 값을, 인덱스 i를 사용할 필요가 없는 예측된 픽셀 값 Ψp(x)와 같이, 코딩 유닛의 예측된 픽셀 값으로서 활용할 수 있다. 마찬가지로, 예측된 픽셀 값 Ψp(x)는 다음과 같이 표현될 수 있다:
Ψp(x)=Σk∈K(hk(x)Ψr(x+vk))
실제로, 복수의 모드는 상이한 모션 블록 크기(예를 들어, 16×16, 32×32 등)에 각각 대응하는 일부의 스킵 모드(skip mode)를 더 포함할 수 있다. 본 실시예에 따르면, 표기 A는 코딩된 블록 CBL의 적어도 일부(예를 들어, 일부 또는 전부)를 포함하는 서브코딩/코딩 유닛을 나타내는 데 사용될 수 있고, 표기 D는 코딩된 블록 CBUL의 적어도 일부(예를 들어, 일부 또는 전부)를 포함하는 서브코딩/코딩 유닛을 나타내는 데 사용될 수 있고, 표기 B는 코딩된 블록 CBU의 적어도 일부(예를 들어, 일부 또는 전부)를 포함하는 서브코딩/코딩 유닛을 나타내는 데 사용될 수 있고, C16, C32와 같은 CSIZE는 코딩된 블록 CBUR의 적어도 일부(예를 들어, 일부 또는 전부)를 포함하는 서브코딩/코딩 유닛을 나타내는 데 사용될 수 있고, 여기서 CSIZE의 첨자 SIZE는 처리 중인 블록(도 6a 및 도 6b에 "처리된 블록"으로 표시되어 있음)과 같이 코딩 유닛 CU(t0)의 크기를 나타낸다. 예를 들어, 처리 중인 블록이 (32*32) 픽셀을 포함하는 상황에서, 서브코딩/코딩 유닛 CSIZE는 도 6a에 도시된 서브코딩/코딩 유닛 C32일 수 있다. 다른 예에서, 처리 중인 블록이 (32*32) 픽셀을 포함하는 상황에서, 서브코딩/코딩 유닛 CSIZE는 도 6a에 도시된 서브코딩/코딩 유닛 C32일 수 있다. 그러므로 서브코딩/코딩 유닛 CSIZE의 위치는 모션 블록 크기에 좌우된다.
본 실시예에 따르면, 모션 벡터 {vk}는 서브코딩/코딩 유닛 A, B, CSIZE 및 D의 모션 벡터 vA, vB, vC, 및 vD를 포함할 수 있다. 그러므로 모션 벡터 {vk}가 모션 벡터 vA, vB, vC, 및 vD를 포함하는 가중된 합산 Σk∈K(hk(i,x)Ψr(x+vk))일 수 있다. 간결하게 하기 위해, 예측된 픽셀 값 Ψp을 다음과 같이 표현할 수 있다:
Ψp=Weighted_Sum(Ψr(vA ,),Ψr(vB),Ψr(vC),Ψr(vD));
여기서, Weighted_Sum은 전술한 상황에서의 가중된 합산을 나타낸다.
도 6a 및 도 6b에 도시된 변형 실시예에 따르면, 사전처리 모듈은 복수의 다른 코딩 유닛의 복수의 픽셀 값의 평균을, 코딩 유닛의 예측된 픽셀 값으로서 활용하며, 이는 전술한 선형 조합이 평균으로 간주될 수 있다는 것을 의미한다. 이 상황에서, 가중된 파라미터 {hk(i,x)} 중 임의의 두 파라미터는 서로 같다. 간결하게 하기 위해, 예측된 픽셀 값 Ψp는 다음과 같이 표현될 수 있다:
Ψp=Average(Ψr(vA),Ψr(vB),Ψr(vC),Ψr(vD))
여기서 Average는 이 상황에서의 평균을 나타낸다. 이러한 변형예에 대한 유사한 설명에 대해서는 반복설명하지 않는다.
도 7a 내지 도 7b는 본 발명의 다른 실시예들에 따라 도 2에 도시된 방법(910)에 포함되는 일시적 및 공간 모션 벡터(MV)를 각각 도시하고 있다. 보다 나은 이해를 위해, 코딩된 블록 CBL, CBUL, CBU, CBUR은 도 3에 도시된 코딩된 블록과 각각 동일할 수 있다. 또한, i번째 서브블록 bi는 특정한 서브코딩 유닛 SubCU(t0)의 예로서 도시되어 있다.
도 7a에 도시된 실시예에서, 단계 912에서 언급된 모션 벡터 {vk}는 도 7a에 도시된 i번째 서브블록 bi와 같이 특정한 서브코딩 유닛 SubCU(t0)을 에워싸는 윈도(window)와 관련해서 하나 이상의 일시적 모션 벡터 {vT ,k}를 포함할 수 있으며, 여기서 윈도는 미리 정해진 크기를 가질 수 있다. 도 7b에 도시된 실시예에서, 단계 912에서 언급된 모션 벡터 {vk}는 도 7b에 도시된 코딩된 블록 CBU의 i번째 서브블록 bi와 같은 하나 이상의 공간 모션 벡터 {vS ,k}를 포함할 수 있다. 도 7a 및 도 7b에 도시된 일부의 변형 실시예에 따르면, 단계 912에서 언급된 모션 벡터 {vk}는 일시적 모션 벡터 {vT ,k} 및 공간 모션 벡터 {vS ,k}를 포함할 수 있다. 이러한 실시예/변형예에 대한 유사한 설명에 대해서는 반복설명하지 않는다.
도 8a 내지 도 8c는 본 발명의 일부의 실시예들에 따라 도 2에 도시된 방법(910)에 포함되는, 모션 벡터를 획득하는 소스에 대한 예시도이다. 보다 나은 이해를 위해, 코딩된 블록 CBL, CBUL, CBU, CBUR은 도 3에 도시된 코딩된 블록과 각각 동일할 수 있다. 또한, i번째 서브블록 bi는 특정한 서브코딩 유닛 SubCU(t0)의 예로서 도시되어 있다.
도 8a를 참조하면, 일시적 모션 벡터 {vT ,k}는 일시적 모션 벡터 vT0를 포함할 수 있으며, 이 일시적 모션 벡터 vT0는 통상적으로, 도 8a에 도시된 i번째 서브블록 bi와 관련해서 동일공간에 위치하는 서브블록 T와 같이, 다른 프레임의 동일공간에 위치하는 서브코딩 유닛으로부터 획득된다. 그러므로 일시적 모션 벡터 vT0는 동일공간에 위치하는 모션 벡터로서 간주될 수 있다. 도 8b를 참조하면, 전술한 공간 모션 벡터 {vS ,k}는 서브코딩 유닛 A, B, C, D, E, F 및 Z의 모션 벡터 vA, vB, vC, vD, vE, vF, 및 vZ의 적어도 일부(예를 들어, 일부 또는 전부)를 포함할 수 있다.
그러므로 단계 914에서 언급된 선형 조합은, 모션 벡터 {vk}가 일시적 모션 벡터 vT0 및 모션 벡터 vA, vB, vC, vD, vE, vF, 및/또는 vZ를 포함하는 가중된 합산 Σk∈K(hk(i,x)Ψr(x+vk))일 수 있다. 예를 들어, 모션 벡터 {vk}가 일시적 모션 벡터 vT0 및 모션 벡터 vA, vB, vC, vD, vE, vF, 및/또는 vZ를 포함하는 상황에서, 예측된 픽셀 값 Ψp을 다음과 같이 표현할 수 있다:
Ψp=Weighted_Sum(Ψr(vA ,r(vB),Ψr(vC),Ψr(vD ,r(vE),Ψr(vF),Ψr(vZ));
여기서, Weighted_Sum은 전술한 상황에서의 가중된 합산을 나타낸다. 이러한 실시예에 대한 유사한 설명에 대해서는 반복설명하지 않는다.
도 8a 및 도 8b에 도시된 변형 실시예에 따르면, 사전처리 모듈은 복수의 픽셀 값의 평균을, 특정한 서브코딩 유닛의 예측된 픽셀 값으로서 활용하며, 이는 단계 914에서 언급된 선형 조합이 평균으로 간주될 수 있다는 것을 의미한다. 이 상황에서, 가중된 파라미터 {hk(i,x)} 중 임의의 두 파라미터는 서로 같다. 간결하게 하기 위해, 예측된 픽셀 값 Ψp는 다음과 같이 표현될 수 있다:
Ψp=Average(Ψr(vA ,r(vB),Ψr(vC),Ψr(vD ,r(vE),Ψr(vF), Ψr(vZ),Ψr(vT0))
여기서 Average는 이 상황에서의 평균을 나타낸다. 이러한 변형예에 대한 유사한 설명에 대해서는 반복설명하지 않는다.
도 8c를 참조하면, 전술한 일시적 모션 벡터 {vT ,k}는 전술한 일시적 모션 벡터 vT0 및 일부의 다른 일시적 모션 벡터 vTUL, vTU, vTUR, vTL, vTR, vDL, vTD, 및 vTDR를 포함하며, 일부의 다른 일시적 모션 벡터 vTUL, vTU, vTUR, vTL, vDL, vTD, 및 vTDR는, 일시적 모션 벡터 vT0를 가지는 서브블록 T에 인접하는 서브블록과 같이, 즉, 도 8c에 도시된 TUL, TU, TUR, TL, TR, TDL, TD, 및 TDR과 같이, 다른 프레임의 동일공간에 위치하는 서브코딩 유닛으로부터 각각 획득된다. 또한, 전술한 공간 모션 벡터 {vS ,k}는 도 8b에 도시된 서브코딩 유닛 A, B, C, D, E, F 및 Z의 각각의 모션 벡터 vA, vB, vC, vD, vE, vF, 및 vZ의 적어도 일부(예를 들어, 일부 또는 전부)를 포함할 수 있다.
그러므로 단계 914에서 언급된 선형 조합은, 모션 벡터 {vk}가 일시적 모션 벡터 vT0, vTUL, vTU, vTUR, vTL, vTR, vDL, vTD, vTDR, 및 모션 벡터 vA, vB, vC, vD, vE, vF, 및/또는 vZ를 포함하는 전술한 가중된 합산 Σk∈K(hk(i,x)Ψr(x+vk))일 수 있다. 예를 들어, 모션 벡터 {vk}가 일시적 모션 벡터 vT0, vTUL, vTU, vTUR, vTL, vTR, vDL, vTD, vTDR, 및 모션 벡터 vA, vB, vC, vD, vE, vF, 및/또는 vZ를 포함하는 상황에서, 간결하게 하기 위해, 예측된 픽셀 값 Ψp을 다음과 같이 표현할 수 있다:
Ψp=Weighted_Sum(Ψr(vA ,r(vB),Ψr(vC),Ψr(vD ,r(vE),Ψr(vF),Ψr(vZ),Ψr(vTO ,r(vTUL),Ψr(vTU),Ψr(vTURr(vTL),Ψr(vTR),Ψr(vTDL),Ψr(vTD),Ψr(vTDR));
여기서, Weighted_Sum은 전술한 상황에서의 가중된 합산을 나타낸다. 이러한 실시예에 대한 유사한 설명에 대해서는 반복설명하지 않는다.
도 8c에 도시된 변형 실시예에 따르면, 사전처리 모듈은 복수의 픽셀 값의 평균을, 특정한 서브코딩 유닛의 예측된 픽셀 값으로서 활용하며, 이는 단계 914에서 언급된 선형 조합이 평균으로 간주될 수 있다는 것을 의미한다. 이 상황에서, 가중된 파라미터 {hk(i,x)} 중 임의의 두 파라미터는 서로 같다. 간결하게 하기 위해, 예측된 픽셀 값 Ψp는 다음과 같이 표현될 수 있다:
Ψp=Average(Ψr(vA ,r(vB),Ψr(vC),Ψr(vD ,r(vE),Ψr(vF),Ψr(vZ),Ψr(vTO ,r(vTUL),Ψr(vTU),Ψr(vTURr(vTL),Ψr(vTR),Ψr(vTDL),Ψr(vTD),Ψr(vTDR))
여기서 Average는 이 상황에서의 평균을 나타낸다. 이러한 변형예에 대한 유사한 설명에 대해서는 반복설명하지 않는다.
전술한 실시예/변형예 중 임의의 변형예와 같은 실시예에 따르면, 사전처리 모듈은 복수 세트의 모션 벡터(이것을 후보 모션 벡터로 간주할 수 있다)로부터 한 세트의 모션 벡터를 동적으로 선택하고, 그 선택한 한 세트의 모션 벡터를 복수의 모션 벡터 {vk}로서 활용한다. 구체적으로, 사전처리 모듈은 복수 세트의 모션 벡터로부터 전술한 한 세트의 모션 벡터를 동적으로 선택하고, 그 선택한 한 세트의 모션 벡터를, 명시적 플래그에 기초해서, 단계 912에서 언급된 복수의 다른 코딩된 유닛(예를 들어, 제1 세트의 코딩된 유닛)의 움직임 정보로서 활용하며, 그 선택한 한 세트의 모션 벡터를 활용하여 특정한 서브코딩 유닛의 예측된 픽셀 값을 도출한다. 예를 들어, 복수 세트의 모션 벡터는 전술한 일시적 모션 벡터 {vT ,k}와 같은 제1 세트의 모션 벡터를 포함하고, 전술한 공간 모션 벡터 {vS ,k}와 같은 제2 세트의 모션 벡터를 더 포함한다. 실제로, 사전처리 모듈은 상기 한 세트의 모션 벡터를 선택하는 것을 동적으로 나타내는 플래그(예를 들어, 명시적 플래그)에 기초해서 다중가설 예측을 수행할 수 있다.
전술한 실시예/변형예 중 임의의 변형예와 같은 실시예에 따르면, 사전처리 모듈은, 상기 특정한 서브코딩 유닛의 예측된 픽셀 값을 획득하기 위해, 레이트 왜곡 최적화(rate-distortion optimization)를 수행하는 데 사용하는 움직임 추정(motion estimation)을 수행함으로써 상기 코딩 유닛 CU(t0)의 적어도 하나의 모션 벡터를 획득할 수 있다. 예를 들어, 단계 912에서, 사전처리 모듈은, 움직임 추정을 수행함으로써 특정한 서브코딩 유닛 SubCU(t0)의 다중가설 움직임 보상을 위해 복수의 모션 벡터 {vk}의 적어도 일부를 획득한다. 또한, 단계 914에서, 사전처리 모듈은, 복수의 모션 벡터 {vk}와 관련된 서브코딩/코딩 유닛의 복수의 픽셀 값 {Ψr}의 선형 조합을, 특정한 서브코딩 유닛 SubCU(t0)의 예측된 픽셀 값 Ψp로서 추가로 활용할 수 있다. 예를 들어, 예측된 픽셀 값 Ψp를 가지는 특정한 예측된 픽셀이 위치 x(예를 들어, 현재 프레임 F(t0)의 이미지 평면상의 2차원 벡터와 같이, 위치를 나타내는 벡터)에 위치하는 상황에서, 예측된 픽셀 값 Ψp은 Ψp(x)로 다시 쓸 수 있고, 이 예측된 픽셀 값 Ψp(x)는 다음과 같이 표현될 수 있다:
Ψp(x)=Σk∈K(hk(x)Ψr(x+vk))+h0(x)Ψr(x+v0));
여기서, 인덱스 k는 집합 K 내에서 변할 수 있고, 표기 hk(x)는 인덱스 k와 관련된 가중된 파라미터를 나타내고, 추정된 모션 벡터 v0는 움직인 추정 동안 추정되는 모션 벡터이고, 표기 h0(x)는 추정된 모션 벡터 v0의 첨자 0과 관련된 가중된 파라미터를 나타낸다.
전술한 레이트 왜곡 최적화 동안, 사전처리 모듈은 왜곡 표시자 IDIST를 계산할 수 있으며, 이 왜곡 표시자는 통상적으로, 추정된 모션 벡터 v0의 가능한 상태(예를 들어, 길이 및 각도)와 관련된 다중가설 예측 후, 특정한 서브코딩 유닛 SubCU(t0)의 본래의 부분 이미지와 특정한 서브코딩 유닛 SubCU(t0)의 재구성된 부분 이미지 간의 차이를 나타낸다. 예를 들어, 왜곡 표시자 IDIST 및 관련 모션 벡터 차이 MVD는 다음과 같이 표현될 수 있다:
IDIST = │ΨREAL(x)-Σk∈K(hk(x)Ψr(x+vk))-h0(x)Ψr(x+v0)│; 및
MVD = v0-MVP;
여기서, 표기 ΨREAL(x)는 고려 중인 현재 픽셀의 실제 픽셀 값이고 표기 MVP는 모션 벡터 표시자이다. 구체적으로, 상기 식에서, 왜곡 표시자 IDIST에 대한 위쪽의 것은 다음과 같이 다시 정리될 수 있다.
IDIST = │ΨREAL(x)-Σk∈K(hk(x)Ψr(x+vk))-h0(x)Ψr(x+v0)│
= │(ΨREAL(x)-Σk∈K(hk(x)Ψr(x+vk)))-h0(x)Ψr(x+v0)│
= h0(x)│(ΨREAL(x)-Σk∈K(hk(x)Ψr(x+vk)))/h0(x)-Ψr(x+v0)│
= h0(x)│ΓREAL(x)-Ψr(x+v0)│;
여기서, ΓREAL(x)=(ΨREAL(x)-Σk∈K(hk(x)Ψr(x+vk)))/h0(x)이다. 상기 식에서, 항 ΓREAL(x) 및 항 (ΨREAL(x)-Σk∈K(hk(x)Ψr(x+vk)))는 추정된 모션 벡터 v0에 독립적이며, 그러므로 이러한 항들 중 적어도 하나는, 예를 들어 항 ΓREAL(x) 및/또는 항 (ΨREAL(x)-Σk∈K(hk(x)Ψr(x+vk)))는 미리 계산될 수 있으며, 액세스를 위해 일시적으로 저장되어 본 실시예에 따른 장치(100)의 처리 속도를 높일 수 있다.
본 실시예에 따르면, 본 실시예의 사전처리 모듈은, 추정된 모션 벡터 v0의 다른 가능한 상태 중에서, 왜곡 표시자 IDIST의 최소 라그랑지 함수(minumum Lagrange function)에 대응하는 최선의 상태 및 모션 벡터 차이 MVD를 인코딩하는 데 사용되는 비트를 찾아냄으로써 그 추정된 모션 벡터 v0를 최적화할 수 있다. 그러므로 본 실시예의 선형 조합은, 상기 추정된 모션 벡터 v0가 획득된 가중된 합산 Σk∈K(hk(x)Ψr(x+vk))+h0(x)Ψr(x+v0)일 수 있으며, 사전처리 모듈은 상기 가중된 합산 Σk∈K(hk(x)Ψr(x+vk))+h0(x)Ψr(x+v0)을, 특정한 서브코딩 유닛 SubCU(t0)의 예측된 픽셀 값 Ψp으로서 활용할 수 있다. 이러한 실시예에 대한 유사한 설명에 대해서는 반복설명하지 않는다.
도 9는 본 발명의 실시예에 따라 도 2에 도시된 방법(910)에 포함되는 상세한 구현 일부에 대한 예시도이며, 사전처리 모듈은 가변 파티션 다중가설 예측을 수행할 수 있으며, 구체적으로, 적어도 하나의 인접하는 코딩 유닛의 파티션에 응답해서 코딩 유닛 CU(t0)의 파티션을 적응적으로 결정할 수 있다. 보다 나은 이해를 위해, 코딩된 블록 CBL, CBUL, CBU, CBUR은 도 3에 도시된 코딩된 블록과 각각 동일할 수 있다.
본 실시예에 따르면, 단계 912에서, 사전처리 모듈은 적어도 하나의 인접하는 코딩 유닛(예를 들어, 코딩된 블록 CBL, CBUL, CBU, CBUR 중 하나 이상)의 파티션에 기초해서, 처리 중인 블록(도 9에 "처리된 블록"으로 표시되어 있음)과 같은 코딩 유닛 CU(t0)를, 복수의 서브코딩 유닛 {SubCU(t0)}으로 분할할 수 있다. 예를 들어, 복수의 서브코딩 유닛 {SubCU(t0)}은 b11, b12, b13, b21, b22, b23, b31, b32, b33, b41, b42, 및 b43을 포함할 수 있고, 이것들의 크기는 코딩된 블록 CBL, 및 CBU와 같이 인접하는 코딩된 블록의 파티션에 대응하며, 구체적으로 이러한 인접하는 코딩된 블록의 일부의 서브블록의 관련 크기에 대응한다. 도 9에 도시된 상황에서, 인접하는 코딩된 블록의 서브블록은 처리 중인 블록에 인접하는 것들이며, 여기서 서브블록은 각각 상이한 패턴으로 빗금이 그어져 있다. 이러한 실시예에 대한 유사한 설명에 대해서는 반복설명하지 않는다.
도 10은 본 발명의 다른 실시예에 따라 도 2에 도시된 방법(910)에 포함되는 상세한 구현 일부에 대한 예시도이며, 여기서 사전처리 모듈은 적어도 하나의 코딩 유닛의 콘텐츠에 따라 블렌딩 가중(예를 들어, 가중된 파라미터 {hk(i,x)}을 적응적으로 결정할 수 있다. 보다 나은 이해를 위해, 코딩된 블록 CBL, CBUL, CBU, CBUR은 도 3에 도시된 코딩된 블록과 각각 동일할 수 있다. 또한, 서브블록 SB는 특정한 서브코딩 유닛 SubCU(t0)의 예로서 도시되어 있다.
예를 들어, 모션 벡터 {vk}는 서브코딩 유닛 A, B, 및 C의 모션 벡터 vA, vB, 및 vC를 포함할 수 있고, 여기서 서브코딩 유닛 A는 좌측 코딩된 블록 CBL에 속하고, 서브코딩 유닛 B 및 C는 상부 코딩된 블록 CBU에 속한다. 가중된 합산 Σk∈K(hk(x)Ψr(x+vk))+h0(x)Ψr(x+v0)(예를 들어, 도 10에 도시된 상황에서의 가중된 합산 Weighted_Sum(Ψr(vA ,),Ψr(vB),Ψr(vC))을 생성하는 처리 동안, 서브코딩 유닛 B 및 C는 텍스처 서브코딩 유닛(예를 들어, 텍스처 서브블록)이고 서브코딩 유닛 A은 비 텍스처 코딩 유닛(예를 들어, 비 텍스처 서브블록)일 때, 사전처리 모듈은, 서브코딩 유닛 B 및 C의 모션 벡터 vB 및 vC와 관련된 가중된 파라미터 hB(i,x) 및 hC(i,x)가 각각 서브코딩 유닛 A의 모션 벡터 vBA와 관련된 가중된 파라미터 hA(i,x)보다 크도록 적응적으로 결정할 수 있다. 이러한 실시예에 대한 유사한 설명에 대해서는 반복설명하지 않는다.
도 11은 본 발명의 실시예에 따라 도 2에 도시된 방법(910)에 포함되는 상세한 구현 일부에 대한 예시도이다. 본 실시예에 따르면, 사전처리 모듈은 단계 912에서 코딩 유닛 CU(t0)(예를 들어 고려 중인 코딩 유닛)를, 서브코딩 유닛 {SubCU(t0)}과 같은 복수의 서브코딩 유닛 {SubCU(t0)}으로 분할하고 복수의 서브코딩 유닛 {SubCU(t0)} 각각에 대해 파티션을 수행한다. 그렇지만, 전술한 모션 벡터 {vk}와 같은 움직임 정보를 획득할 때/획득하기 전에, 사전처리 모듈은 각각의 서브코딩 유닛에 대해 모션 벡터(예를 들어, 기준 모션 벡터)를 지정하여, 나중에 다른 서브코딩 유닛(들)/코딩 유닛(들)이 참조할 수 있도록 한다. 모션 벡터 지정에 대한 규칙은 인코더와 디코더가 동의하고 허용하는 바에 따라 임의대로 될 수 있다. 모션 벡터 지정에 대한 일부 미리 정해진 규칙은 H.264에 규정된 모션 벡터 예측자, H.264에 규정된 모션 예측을 포함하지만, 모션 벡터 스케일링이 좌측 블록으로부터 패딩하고(padding), 상부 블록으로부터 패딩하며, 그리고 좌측 또는 상부 블록으로부터 패딩하는 것을 포함한다. 좌측 또는 상부 블록으로부터 패딩하는 것에 관한 실시예에 따르면, 사전처리 모듈은 코딩 유닛 CU(t0)에 인접하는 인접 코딩 유닛 CUADJ(t0)의 코딩된 서브코딩 유닛과 같이, 다른 코딩 유닛의 서브코딩 유닛의 모션 벡터를 지정한다. 구체적으로, 특정한 서브코딩 유닛 SubCU(t0)과 관련해서, 다른 코딩 유닛(예를 들어, 코딩 유닛 CUADJ(t0))의 서브코딩 유닛은 다른 코딩 유닛 내에서 가장 근접한 서브코딩 유닛이며, 사전처리 모듈은 다른 코딩 유닛(예를 들어, 코딩 유닛 CUADJ(t0)) 내에서의 가장 근접한 서브코딩 유닛의 모션 벡터를, 특정한 서브코딩 유닛 SubCU(t0)에 대해 지정된 모션 벡터로서 활용할 수 있다. 코딩 유닛 또는 서브코딩 유닛에 대해 지정된 모션 벡터는 다른 코딩 유닛 또는 서브코딩 유닛에 대한 기준 모션 벡터로서 주로 사용되지만, 모션 예측을 위해 반드시 사용되어야 하는 것은 아니다.
도 11에 도시된 바와 같이, 처리 중인 블록(도 11에 "처리된 블록"으로 표시되어 있음)과 같은 코딩 유닛 CU(t0)과 관련해서, 본 실시예에 포함되는 인접 코딩 유닛 {CUADJ(t0)}은 좌측 코딩된 블록 CBL, 상부 코딩된 블록 CBU, 상부 우측 코딩된 블록 CBUR, 및 상부 좌측 코딩된 블록 CBUL 중 적어도 일부를 포함할 수 있고, 이러한 코딩된 블록 CBL, CBU, CBUR, 및 CBUL은 서브블록으로 간주될 수 있다. 보다 나은 이해를 위해, 좌측 코딩된 블록 CBL 내의 서브코딩 유닛 중 가장 우측 열의 모션 벡터 y1, y2, y3, y4, y5, y6, y7, 및 y8은 서브코딩 유닛 중 가장 우측 열에 각각 표기되어 있다. 마찬가지로, 상부 코딩된 블록 CBU 내의 서브코딩 유닛 중 최하부 행의 모션 벡터 x1, x2, x3, x4, x5, x6, x7, 및 x8은 서브코딩 유닛 중 최하부 행에 각각 표기되어 있다. 또한, 상부 좌측 코딩된 블록 CBUL 내의 하부 좌측 서브코딩 유닛의 모션 벡터 d 및 상부 우측 코딩된 블록 CBUR 내의 하부 좌측 서브코딩 유닛의 모션 벡터 x9은 그 위에 각각 표기되어 있다.
본 실시예에 따르면, 사전처리 모듈은 복수의 서브코딩 유닛 {SubCU(t0)}를 포함하는 코딩 유닛 CU(t0)를 수신하고, 코딩 유닛 CU(t0)의 데이터를 분석하며, 미리 정해진 규칙에 따라 복수의 서브코딩 유닛 {SubCU(t0)} 중 특정한 서브코딩 유닛 SubCU(t0)의 기준 모션 벡터를 지정하며, 여기서 기준 모션 벡터는 적어도 하나의 다른 서브코딩 유닛이 참조하는 데 활용되지만, 특정한 서브코딩 유닛 SubCU(t0)의 기준 모션 벡터를 위해서는 활용되지 않는다. 참조를 위해 활용되는 기준 모션 벡터에 따라, 사전처리 모듈은, 특정한 서브코딩 유닛 SubCU(t0)의 실제 모션 벡터에 관한 임의의 복잡한 계산이 완료될 때까지 대기할 필요가 없어, 고속으로 동작할 수 있다. 실제로, 사전처리 모듈은 이 모션 벡터(즉, 전술한 기준 모션 벡터)가, 인접하는 코딩 유닛의 적어도 일부의 모션 벡터가 되도록 지정할 수 있다. 구체적으로, 인접하는 코딩 유닛의 적어도 일부가, 인접하는 코딩 유닛 내의 특정한 서브코딩 유닛에 가장 근접하는 부분이 될 수 있다.
예를 들어, 특정한 서브코딩 유닛 SubCU(t0)이 처리 중인 블록(예를 들어, 도 11에 도시된 처리된 블록)의 서브블록 중 소정 행(row)의 j번째 서브블록을 나타낸다고 하자(단, j는 1에서 8까지 변할 수 있다). "수직 지정(vertical designation)"과 같은 제1 지정 규칙에서, 사전처리 모듈은 상부 코딩된 블록 CBU 내의 가장 근접한 서브코딩 유닛의 모션 벡터 xj를, 특정한 서브코딩 유닛 SubCU(t0)의 기준 모션 벡터로서 활용할 수 있다.
다른 예에서, 특정한 서브코딩 유닛 SubCU(t0)이 처리 중인 블록(예를 들어, 도 11에 도시된 처리된 블록)의 서브블록 중 소정 열(column)의 j번째 서브블록을 나타낸다고 하자(단, j는 1에서 8까지 변할 수 있다). "수평 지정(horizontal designation)"과 같은 제2 지정 규칙에서, 사전처리 모듈은 좌측 코딩된 블록 CBL 내의 가장 근접한 서브코딩 유닛의 모션 벡터 yj를, 특정한 서브코딩 유닛 SubCU(t0)의 기준 모션 벡터로서 활용한다.
다른 예에서는, 기준 모션 벡터를 결정하는 데 "하이브리드 지정(hybrid designation)"과 같은 제3 지정 규칙을 선택할 수 있다. 특정한 서브코딩 유닛 SubCU(t0)이 처리 중인 블록(예를 들어, 도 11에 도시된 "처리된 블록"으로 표시되어 있음)의 서브블록 중 제4/제8 행의 j번째 서브블록을 나타낸다고 하자(단, j는 1에서 8까지 변할 수 있다). 도 11을 참조하면, 화살표가 서브블록 중 제4/제8 행의 j번째 서브블록을 가리키는 것으로 나타낸 바와 같이, 사전처리 모듈은 상부 코딩된 블록 CBU 내의 가장 근접한 서브코딩 유닛의 모션 벡터 xj를, 특정한 서브코딩 유닛 SubCU(t0)의 기준 모션 벡터로서 활용한다. 또한, 특정한 서브코딩 유닛 SubCU(t0)이 처리 중인 블록(예를 들어, 도 11에 도시된 "처리된 블록"으로 표시되어 있음)의 서브블록 중 제4/제8 열의 j번째 서브블록을 나타낸다고 하자(단, j는 4를 제외한, 1에서 7까지 변할 수 있다). 도 11을 참조하면, 화살표가 서브블록 중 제4/제8 행의 j번째 서브블록을 가리키는 것으로 나타낸 바와 같이, 사전처리 모듈은 좌측 코딩된 블록 CBL 내의 가장 근접한 서브코딩 유닛의 모션 벡터 yj를, 특정한 서브코딩 유닛 SubCU(t0)의 기준 모션 벡터로서 활용한다. 본 실시예에서, 코딩 유닛 CU(t0) 내에 남아 있는 서브코딩 유닛의 기준 모션 벡터는 전술한 실시예/변형예 중 임의의 동일한 또는 유사한 방법을 활용함으로써 획득될 수 있다. 이러한 실시예에 대한 유사한 설명에 대해서는 반복설명하지 않는다.
전술한 실시예의 일부의 변형예와 같은 일부의 실시예에서, 사전처리 모듈은 플래그를 활용함으로써, 구체적으로 플래그를 명시적으로 송신함으로써 전술한 동작을 제어할 수 있다는 것에 유의해야 한다. 예를 들어, 이러한 실시예 중 하나에 따라 구현되는 인코더는 적용되는 지정 규칙이 "수직 지정"과 "수평 지정" 중 어느 것인지를 나타내는 (또는 "하이브리드 지정"을 나타낼 수도 있는) 플래그를 송신하고, 이에 따라 이 플래그를 수반하는 비트스트림을 수신함으로써, 관련 디코더는 적용되는 지정 규칙에 대해 통지받을 수 있다.
또한, 일부의 실시예에서, 전술한 다양한 모션 벡터 지정 방법(예를 들어, "수직 지정", "수평 지정", 및 "하이브리드 지정")은 국소 모션 벡터 도출을 수행하는 데 활용될 수 있다. 예를 들어, "수직 지정"이 적용되는 상황에서, 서브코딩 유닛의 각각의 행의 모션 벡터는 상부 코딩된 블록 CBU 내의 대응하는 위치(예를 들어, 상부 코딩된 블록 CBU 내의 가장 근접한 서브코딩 유닛)로부터 도출된다.
본 발명의 이점은, 본 발명의 방법 및 장치가, 국소적 다중가설 예측을 적절하게 수행할 수 있고, 구체적으로 고려 중인 코딩 유닛의 서브코딩 유닛에 대해 다중가설 모션 보상을 용이하게 적절히 수행할 수 있다는 점이다. 본 발명의 방법 및 장치를 활용하면, 모션 벡터 예측 동작 및 다중가설 모션 보상 동작 모두를 낮은 코딩 효율성과 같은 종래기술의 문제점 없이 수행할 수 있다.
당업자는 본 발명의 지침을 따르는 동안 장치 및 방법에 대한 다양한 변형 및 수정이 이루어질 수 있다는 것을 쉽게 이해할 수 있을 것이다. 따라서, 전술한 상세한 설명은 첨부된 청구의 범위의 경계에 의해서만 제한되는 것으로 파악되어야 한다.

Claims (37)

  1. 코딩 유닛의 비디오 코딩 동안 국소적 다중가설 예측(localized multihypothesis prediction)을 수행하는 방법에 있어서,
    상기 코딩 유닛을 복수의 서브코딩 유닛으로 분할하는 단계; 및
    상기 복수의 서브코딩 유닛 각각을 처리하는 단계
    를 포함하며,
    상기 복수의 서브코딩 유닛 각각을 처리하는 단계는,
    상기 복수의 서브코딩 유닛 중 특정한 서브코딩 유닛의 다중가설 움직임 보상을 위해 제1 세트의 코딩된 유닛의 움직임 정보를 획득하는 단계;
    상기 제1 세트의 코딩된 유닛의 움직임 정보로부터 도출된 복수의 픽셀 값의 선형 조합(linear combination)을 상기 특정한 서브코딩 유닛의 예측된 픽셀 값으로 활용하는 단계; 및
    상기 제1 세트의 코딩 유닛에 있지 않은 적어도 하나의 코딩된 유닛을 포함하는 제2 세트의 코딩된 유닛의 움직임 정보를 활용함으로써 상기 코딩 유닛에서 다른 서브코딩 유닛의 예측된 픽셀 값을 도출하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 복수의 픽셀 값의 선형 조합을 상기 특정한 서브코딩 유닛의 예측된 픽셀 값으로 활용하는 단계는,
    상기 복수의 픽셀 값의 가중된 합산(weighted summation)을 상기 특정한 서브코딩 유닛의 예측된 픽셀 값으로 활용하는 단계
    를 포함하는, 방법.
  3. 제2항에 있어서,
    상기 복수의 픽셀 값의 선형 조합을 상기 특정한 서브코딩 유닛의 예측된 픽셀 값으로 활용하는 단계는,
    상기 복수의 픽셀 값에 대한 각각의 가중된 파라미터를 조정하고 상기 가중된 합산을 생성하기 위해, 현재 픽셀의 실제 픽셀 값과 관련해서 상기 복수의 픽셀 값에 대해 최적의 위너 필터링(Wiener filtering)을 수행하는 단계
    를 더 포함하는, 방법.
  4. 제2항에 있어서,
    상기 복수의 픽셀 값의 선형 조합을 상기 특정한 서브코딩 유닛의 예측된 픽셀 값으로 활용하는 단계는,
    상기 가중된 합산을 생성하기 위해, 적어도 하나의 인접하는 코딩 유닛의 콘텐츠에 따라 상기 복수의 픽셀 값에 대한 각각의 가중된 파라미터를 결정하는 단계
    를 더 포함하는, 방법.
  5. 제2항에 있어서,
    상기 복수의 픽셀 값의 선형 조합을 상기 특정한 서브코딩 유닛의 예측된 픽셀 값으로 활용하는 단계는,
    상기 가중된 합산을 생성하기 위해, 상기 제1 세트의 코딩된 유닛에 따라 상기 복수의 픽셀 값에 대한 각각의 가중된 파라미터를 결정하는 단계
    를 더 포함하는, 방법.
  6. 제2항에 있어서,
    상기 복수의 픽셀 값의 선형 조합을 상기 특정한 서브코딩 유닛의 예측된 픽셀 값으로 활용하는 단계는,
    상기 가중된 합산을 생성하기 위해, 오프라인 트레이닝(offline training)에 의해 상기 복수의 픽셀 값에 대한 각각의 가중된 파라미터를 결정하는 단계
    를 더 포함하는, 방법.
  7. 제2항에 있어서,
    상기 복수의 픽셀 값의 선형 조합을 상기 특정한 서브코딩 유닛의 예측된 픽셀 값으로 활용하는 단계는,
    상기 가중된 합산을 생성하기 위해, 온라인 트레이닝(online training)에 의해 상기 복수의 픽셀 값에 대한 각각의 가중된 파라미터를 결정하는 단계
    를 더 포함하는, 방법.
  8. 제1항에 있어서,
    상기 제1 세트의 코딩된 유닛의 움직임 정보는, 모션 벡터, 기준 프레임 인덱스, 및 예측 방향 중 적어도 하나 또는 이것들의 조합을 포함하는, 방법.
  9. 제8항에 있어서,
    상기 제1 세트의 코딩된 유닛의 움직임 정보는 복수의 모션 벡터를 포함하며, 상기 복수의 모션 벡터는 싱글 서브코딩 유닛/코딩 유닛으로부터 도출되는, 방법.
  10. 제1항에 있어서,
    상기 복수의 서브코딩 유닛 각각을 처리하는 단계는,
    적어도 하나의 극한 모션 벡터(extreme motion vector)를 폐기함으로써 한 세트의 모션 벡터를 스크리닝(screening)하여, 상기 한 세트의 모션 벡터의 나머지 부분을 상기 제1 세트의 코딩된 유닛의 움직임 정보로서 선택하는 단계
    를 더 포함하는, 방법.
  11. 제1항에 있어서,
    상기 복수의 서브코딩 유닛 각각을 처리하는 단계는,
    복수 세트의 모션 벡터 중 한 세트의 모션 벡터를 상기 제1 세트의 코딩된 유닛의 움직임 정보로서 동적으로 선택하고, 상기 선택된 세트의 모션 벡터를 활용하여 상기 특정한 서브코딩 유닛의 예측된 픽셀 값을 도출하는 단계
    를 더 포함하는, 방법.
  12. 제11항에 있어서,
    상기 복수 세트의 모션 벡터는, 일시적 모션 벡터인 제1 세트의 모션 벡터를 포함하고, 공간 모션 벡터인 제2 세트의 모션 벡터를 더 포함하는, 방법.
  13. 제1항에 있어서,
    상기 복수의 서브코딩 유닛 각각을 처리하는 단계는,
    복수 세트의 모션 벡터 중 한 세트의 모션 벡터를 동적으로 선택하고, 상기 선택된 세트의 모션 벡터를, 명시적 플래그(explicit flag)에 기초해서 상기 제1 세트의 코딩된 유닛의 움직임 정보로서 활용하는 단계
    를 더 포함하는, 방법.
  14. 제1항에 있어서,
    상기 코딩 유닛을 복수의 서브코딩 유닛으로 분할하는 단계는,
    상기 특정한 서브코딩 유닛의 크기를 상기 코딩 유닛의 비디오 코딩에 관한 변환 크기로 결정하는 단계
    를 포함하는, 방법.
  15. 제1항에 있어서,
    상기 코딩 유닛을 복수의 서브코딩 유닛으로 분할하는 단계는,
    적어도 하나의 인접하는 코딩 유닛의 적어도 하나의 모드에 기초해서 상기 코딩 유닛을 복수의 서브코딩 유닛으로 분할하는 단계
    를 더 포함하는, 방법.
  16. 제1항에 있어서,
    상기 코딩 유닛을 복수의 서브코딩 유닛으로 분할하는 단계는,
    적어도 하나의 인접하는 코딩 유닛의 콘텐츠/파티션에 기초해서 상기 코딩 유닛을 복수의 서브코딩 유닛으로 분할하는 단계
    를 더 포함하는, 방법.
  17. 제1항에 있어서,
    상기 코딩된 유닛들은 적어도 하나의 공간적으로 코딩된 서브코딩/코딩 유닛 및/또는 적어도 하나의 일시적으로 코딩된 서브코딩/코딩 유닛을 포함하는, 방법.
  18. 제1항에 있어서,
    상기 복수의 서브코딩 유닛 각각을 처리하는 단계는,
    상기 특정한 서브코딩 유닛의 예측된 픽셀 값을 획득하기 위해, 레이트 왜곡 최적화(rate-distortion optimization)를 수행하는 데 사용하는 움직임 추정(motion estimation)을 수행함으로써 상기 코딩 유닛의 적어도 하나의 모션 벡터를 획득하는 단계
    를 더 포함하는, 방법.
  19. 제1항에 있어서,
    상기 복수의 서브코딩 유닛 각각을 처리하는 단계는,
    상기 움직임 정보를 획득할 때, 각각의 서브코딩 유닛에 대한 기준 모션 벡터를 지정하는 단계
    를 더 포함하는, 방법.
  20. 제19항에 있어서,
    상기 각각의 서브코딩 유닛에 대한 기준 모션 벡터를 지정하는 단계는,
    다른 코딩 유닛의 서브코딩 유닛의 모션 벡터를 활용하여 상기 기준 모션 벡터를 지정하는 단계
    를 포함하는, 방법.
  21. 제20항에 있어서,
    상기 다른 코딩 유닛은 상기 코딩 유닛에 인접하는 인접 코딩 유닛인, 방법.
  22. 제20항에 있어서,
    상기 다른 코딩 유닛 내에서 최근접의 서브 코딩 유닛의 모션 벡터를, 상기 특정한 서브코딩 유닛에 대해 지정된 기준 모션 벡터로서 활용하는 단계를 더 포함하는 방법.
  23. 코딩 유닛의 비디오 코딩 동안 국소적 다중가설 예측(localized multihypothesis prediction)을 수행하는 장치에 있어서,
    상기 코딩 유닛에 대한 비디오 코딩을 수행하도록 구성된 처리 회로
    를 포함하며,
    상기 처리 회로는,
    상기 코딩 유닛을 복수의 서브코딩 유닛으로 분할하고 상기 복수의 서브코딩 유닛 각각을 처리하도록 구성되어 있는 사전처리 모듈로서, 상기 복수의 서브코딩 유닛 중 특정한 서브코딩 유닛의 다중가설 움직임 보상을 위해 제1 세트의 코딩된 유닛의 움직임 정보를 획득하고, 상기 움직임 정보에 따라 상기 특정한 서브코딩 유닛에 대해 다중가설 움직임 보상을 수행하며, 상기 제1 세트의 코딩된 유닛의 움직임 정보로부터 도출된 복수의 픽셀 값의 선형 조합(linear combination)을 상기 특정한 서브코딩 유닛의 예측된 픽셀 값으로 활용하는 상기 사전처리 모듈; 및
    상기 사전처리 모듈에 의해 수행된 다중가설 움직임 보상에 기초해서 상기 코딩 유닛에 대해 비디오 코딩을 수행하도록 구성되어 있는 적어도 하나의 코딩 모듈
    을 포함하며,
    상기 사전처리 모듈은, 상기 제1 세트의 코딩 유닛에 있지 않은 적어도 하나의 코딩된 유닛을 포함하는 제2 세트의 코딩된 유닛의 움직임 정보를 활용함으로써 상기 코딩 유닛에서 다른 서브코딩 유닛의 예측된 픽셀 값을 도출하는, 장치.
  24. 제23항에 있어서,
    상기 사전처리 모듈은, 상기 복수의 픽셀 값의 가중된 합산(weighted summation)을 상기 특정한 서브코딩 유닛의 예측된 픽셀 값으로 활용하는, 장치.
  25. 제24항에 있어서,
    상기 사전처리 모듈은, 상기 복수의 픽셀 값에 대한 각각의 가중된 파라미터를 조정하고 상기 가중된 합산을 생성하기 위해, 현재 픽셀의 실제 픽셀 값과 관련해서 상기 복수의 픽셀 값에 대해 최적의 위너 필터링(Wiener filtering)을 수행하는, 장치.
  26. 제24항에 있어서,
    상기 사전처리 모듈은, 상기 가중된 합산을 생성하기 위해, 적어도 하나의 인접하는 코딩 유닛의 콘텐츠에 따라 상기 복수의 픽셀 값에 대한 각각의 가중된 파라미터를 결정하는, 장치.
  27. 제24항에 있어서,
    상기 사전처리 모듈은, 상기 가중된 합산을 생성하기 위해, 상기 제1 세트의 코딩된 유닛의 콘텐츠에 따라 상기 복수의 픽셀 값에 대한 각각의 가중된 파라미터를 결정하는, 장치.
  28. 제24항에 있어서,
    상기 사전처리 모듈은, 상기 가중된 합산을 생성하기 위해, 오프라인 트레이닝(offline training)에 의해 상기 복수의 픽셀 값에 대한 각각의 가중된 파라미터를 결정하는, 장치.
  29. 제24항에 있어서,
    상기 사전처리 모듈은, 상기 가중된 합산을 생성하기 위해, 온라인 트레이닝(online training)에 의해 상기 복수의 픽셀 값에 대한 각각의 가중된 파라미터를 결정하는, 장치.
  30. 제23항에 있어서,
    상기 사전처리 모듈은, 적어도 하나의 극한 모션 벡터(extreme motion vector)를 폐기함으로써 한 세트의 모션 벡터를 스크리닝(screening)하여, 상기 한 세트의 모션 벡터의 나머지 부분을 상기 제1 세트의 코딩된 유닛의 움직임 정보로서 선택하는, 장치.
  31. 제23항에 있어서,
    상기 사전처리 모듈은, 복수 세트의 모션 벡터 중 한 세트의 모션 벡터를 상기 제1 세트의 코딩된 유닛의 움직임 정보로서 동적으로 선택하고, 상기 선택된 세트의 모션 벡터를 활용하여 상기 특정한 서브코딩 유닛의 예측된 픽셀 값을 도출하는, 장치.
  32. 제31항에 있어서,
    상기 복수 세트의 모션 벡터는, 일시적 모션 벡터인 제1 세트의 모션 벡터를 포함하고, 공간 모션 벡터인 제2 세트의 모션 벡터를 더 포함하는, 장치.
  33. 제23항에 있어서,
    상기 사전처리 모듈은,
    복수 세트의 모션 벡터 중 한 세트의 모션 벡터를 동적으로 선택하고, 상기 선택된 세트의 모션 벡터를, 명시적 플래그(explicit flag)에 기초해서 상기 제1 세트의 코딩된 유닛의 움직임 정보로서 활용하는, 장치.
  34. 제23항에 있어서,
    상기 움직임 정보는 싱글 서브코딩 유닛/코딩 유닛으로부터 도출되는 복수의 모션 벡터를 포함하는, 장치.
  35. 제23항에 있어서,
    상기 사전처리 모듈은, 상기 특정한 서브코딩 유닛의 크기가 상기 코딩 유닛의 비디오 코딩에 관한 변환 크기가 되도록 결정하는, 장치.
  36. 제23항에 있어서,
    상기 사전처리 모듈은, 적어도 하나의 인접하는 코딩 유닛의 적어도 하나의 모드, 콘텐츠 또는 파티션에 기초해서 상기 코딩 유닛을 복수의 서브코딩 유닛으로 분할하는, 장치.
  37. 코딩 유닛의 비디오 코딩 동안 국소적 다중가설 예측(localized multihypothesis prediction)을 수행하는 방법에 있어서,
    상기 코딩 유닛을 복수의 서브코딩 유닛으로 분할하는 단계; 및
    상기 복수의 서브코딩 유닛 각각을 처리하는 단계
    를 포함하며,
    상기 복수의 서브코딩 유닛 각각을 처리하는 단계는,
    상기 복수의 서브코딩 유닛 중 특정한 서브코딩 유닛의 다중가설 움직임 보상을 위해 복수의 코딩된 유닛의 움직임 정보를 획득하는 단계;
    상기 복수의 코딩된 유닛의 움직임 정보로부터 도출된 복수의 픽셀 값의 가중된 합산(weighted summation)을 상기 특정한 서브코딩 유닛의 예측된 픽셀 값으로 활용하는 단계; 및
    상기 복수의 코딩된 유닛의 움직임 정보로부터 도출된 복수의 픽셀 값의 다른 가중된 합산을 활용함으로써 상기 코딩 유닛에서 다른 서브코딩 유닛의 예측된 픽셀 값을 도출하는 단계
    를 포함하는 방법.
KR1020127025321A 2010-04-14 2011-04-14 코딩 유닛의 비디오 코딩 동안 국소적 다중가설 예측을 수행하는 방법, 및 관련 장치 KR101452921B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US32394810P 2010-04-14 2010-04-14
US61/323,948 2010-04-14
US13/080,668 2011-04-06
US13/080,668 US8879620B2 (en) 2010-04-14 2011-04-06 Method for performing localized multihypothesis prediction during video coding of a coding unit, and associated apparatus
PCT/CN2011/072783 WO2011127828A1 (en) 2010-04-14 2011-04-14 Method for performing localized multihypothesis prediction during video coding of a coding unit, and associated apparatus

Publications (2)

Publication Number Publication Date
KR20120126115A true KR20120126115A (ko) 2012-11-20
KR101452921B1 KR101452921B1 (ko) 2014-10-23

Family

ID=44788180

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127025321A KR101452921B1 (ko) 2010-04-14 2011-04-14 코딩 유닛의 비디오 코딩 동안 국소적 다중가설 예측을 수행하는 방법, 및 관련 장치

Country Status (11)

Country Link
US (3) US8837592B2 (ko)
EP (2) EP3220646A1 (ko)
JP (1) JP5211263B2 (ko)
KR (1) KR101452921B1 (ko)
CN (5) CN102223542A (ko)
AU (1) AU2011240486B2 (ko)
BR (1) BR112012025275B8 (ko)
IL (2) IL222337A (ko)
RU (1) RU2530318C2 (ko)
TW (4) TWI520586B (ko)
WO (1) WO2011127828A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150070035A (ko) * 2013-12-16 2015-06-24 삼성전자주식회사 이미지 블록의 포워드 복수-가설 인코딩/디코딩 방법 및 장치
WO2018128345A3 (ko) * 2017-01-04 2018-08-30 삼성전자 주식회사 복호화 방법 및 그 장치

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8971400B2 (en) * 2010-04-14 2015-03-03 Mediatek Inc. Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus
US9118929B2 (en) 2010-04-14 2015-08-25 Mediatek Inc. Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus
US9462272B2 (en) * 2010-12-13 2016-10-04 Electronics And Telecommunications Research Institute Intra prediction method and apparatus
WO2012081895A1 (ko) 2010-12-13 2012-06-21 한국전자통신연구원 인트라 예측 방법 및 그 장치
US9955155B2 (en) * 2010-12-31 2018-04-24 Electronics And Telecommunications Research Institute Method for encoding video information and method for decoding video information, and apparatus using same
CN105959706B (zh) * 2011-01-12 2021-01-08 三菱电机株式会社 图像编码装置和方法、以及图像译码装置和方法
CN103748877B (zh) * 2011-08-17 2017-05-10 联发科技(新加坡)私人有限公司 帧内预测方法和装置
US9736489B2 (en) * 2011-09-17 2017-08-15 Qualcomm Incorporated Motion vector determination for video coding
US9386305B2 (en) 2011-11-28 2016-07-05 Qualcomm Incorporated Largest coding unit (LCU) or partition-based syntax for adaptive loop filter and sample adaptive offset in video coding
WO2013095616A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Apparatus and method for selecting elements of a vector computation
WO2013107028A1 (en) * 2012-01-19 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of amvp simplification
PL2805511T3 (pl) 2012-01-20 2019-09-30 Sun Patent Trust Sposoby i urządzenie do kodowania i dekodowania wideo przy użyciu predykcji wektora ruchu w czasie
MX2013008942A (es) 2012-02-03 2013-09-12 Panasonic Corp Metodo de codificacion de imagenes, metodo de decodificacion de imagenes, aparato de codificacion de imagenes, aparato de decodificacion de imagenes y aparato de codificacion y decodificacion de imagenes.
CA2866121C (en) 2012-03-06 2018-04-24 Panasonic Intellectual Property Corporation Of America Moving picture coding method, moving picture decoding method, moving picture coding apparatus, moving picture decoding apparatus, and moving picture coding and decoding apparatus
US9544612B2 (en) * 2012-10-04 2017-01-10 Intel Corporation Prediction parameter inheritance for 3D video coding
BR112016012009B1 (pt) * 2013-11-27 2023-11-07 Hfi Innovation Inc Método de sinalização de modo de codificação incluindo um modo intrabc para uma imagem
KR101789954B1 (ko) * 2013-12-27 2017-10-25 인텔 코포레이션 차세대 비디오 코딩을 위한 콘텐츠 적응적 이득 보상된 예측
JP6482191B2 (ja) * 2014-06-12 2019-03-13 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
GB2531001B (en) 2014-10-06 2019-06-05 Canon Kk Method and apparatus for vector encoding in video coding and decoding
US11330284B2 (en) * 2015-03-27 2022-05-10 Qualcomm Incorporated Deriving motion information for sub-blocks in video coding
TWI610558B (zh) * 2016-05-26 2018-01-01 晨星半導體股份有限公司 位元分配方法及視訊編碼裝置
CN116866593A (zh) * 2016-11-28 2023-10-10 韩国电子通信研究院 对图像编码/解码的方法和设备及存储比特流的记录介质
WO2019152283A1 (en) 2018-02-02 2019-08-08 Apple Inc. Techniques of multi-hypothesis motion compensation
US11924440B2 (en) 2018-02-05 2024-03-05 Apple Inc. Techniques of multi-hypothesis motion compensation
EP3766247A4 (en) 2018-04-02 2022-01-19 MediaTek Inc. VIDEO PROCESSING METHODS AND APPARATUS FOR SUBBLOCK MOTION COMPENSATION IN VIDEO CODING SYSTEMS
US10986343B2 (en) * 2018-04-15 2021-04-20 Arris Enterprises Llc Reducing overhead for multiple-hypothesis temporal prediction
CN116684594A (zh) * 2018-04-30 2023-09-01 寰发股份有限公司 照度补偿方法及相应的电子装置
WO2019229683A1 (en) * 2018-05-31 2019-12-05 Beijing Bytedance Network Technology Co., Ltd. Concept of interweaved prediction
TW202025776A (zh) 2018-06-19 2020-07-01 北京字節跳動網絡技術有限公司 不具運動向量預測截斷的選擇運動向量差精確度
TWI723446B (zh) * 2018-07-02 2021-04-01 大陸商北京字節跳動網絡技術有限公司 具有lic的lut
CN110602493B (zh) * 2018-09-19 2022-06-10 北京达佳互联信息技术有限公司 一种仿射运动补偿的交织预测的方法及设备
WO2020058886A1 (en) 2018-09-19 2020-03-26 Beijing Bytedance Network Technology Co., Ltd. Fast algorithms for adaptive motion vector resolution in affine mode
CN110944171B (zh) * 2018-09-25 2023-05-09 华为技术有限公司 一种图像预测方法和设备
CN111050164B (zh) * 2018-10-15 2022-05-17 华为技术有限公司 一种编解码的方法和装置
WO2020101559A1 (en) * 2018-11-15 2020-05-22 Telefonaktiebolaget Lm Ericsson (Publ) Deblocking in a video encoder and/or video decoder
WO2020140951A1 (en) 2019-01-02 2020-07-09 Beijing Bytedance Network Technology Co., Ltd. Motion vector derivation between color components
EP3895429A4 (en) 2019-01-31 2022-08-10 Beijing Bytedance Network Technology Co., Ltd. CONTEXT FOR CODE AN ADAPTIVE MOTION VECTOR RESOLUTION IN AFFINE MODE
EP3918804A4 (en) 2019-03-14 2023-02-08 HFI Innovation Inc. METHODS AND APPARATUS FOR VIDEO PROCESSING USING MOTION DECOMPOSITION AND SUB-PARTITION BASE FILLING
CN110852500B (zh) * 2019-11-01 2023-04-07 聊城大学 一种资源受限混合流水车间优化方法

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2231751B (en) 1989-04-27 1993-09-22 Sony Corp Motion dependent video signal processing
DE69027966T2 (de) 1989-10-06 1997-02-06 Philips Electronics Nv Adaptive Schaltung zur Geisterbildauslöschung
US5134475A (en) 1990-12-11 1992-07-28 At&T Bell Laboratories Adaptive leak hdtv encoder
KR970002964B1 (ko) 1993-12-24 1997-03-13 대우전자 주식회사 영상신호의 시간축 내삽필터
EP1274253A3 (en) * 1995-08-29 2005-10-12 Sharp Kabushiki Kaisha Video coding device and video decoding device with a motion compensated interframe prediction
WO1997046020A2 (en) 1996-05-24 1997-12-04 Philips Electronics N.V. Motion vector processing
JP3633159B2 (ja) * 1996-12-18 2005-03-30 ソニー株式会社 動画像信号符号化方法及び装置、並びに動画像信号伝送方法
US6807231B1 (en) * 1997-09-12 2004-10-19 8×8, Inc. Multi-hypothesis motion-compensated video image predictor
US6532265B1 (en) 1999-03-25 2003-03-11 Imec Vzw Method and system for video compression
JP2000299864A (ja) * 1999-04-12 2000-10-24 Canon Inc 動画像処理方法
US6633677B1 (en) 1999-12-30 2003-10-14 Stmicroelectronics, Inc. Method and apparatus for processing an image in an image compression/decompression system that uses hierachical coding
US6438168B2 (en) 2000-06-27 2002-08-20 Bamboo Media Casting, Inc. Bandwidth scaling of a compressed video stream
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
US20040141555A1 (en) * 2003-01-16 2004-07-22 Rault Patrick M. Method of motion vector prediction and system thereof
US7184602B2 (en) * 2003-05-02 2007-02-27 Microsoft Corp. System and method for low bandwidth video streaming for face-to-face teleconferencing
HUP0301368A3 (en) * 2003-05-20 2005-09-28 Amt Advanced Multimedia Techno Method and equipment for compressing motion picture data
CN100594730C (zh) 2003-06-25 2010-03-17 汤姆森许可贸易公司 帧间的快速模式确定编码方法及其装置
MXPA06002210A (es) * 2003-08-26 2006-05-19 Thomson Licensing Metodo y aparato para la decodificacion de bloques intra-inter codificados hibridos.
US7599438B2 (en) * 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
JP3880985B2 (ja) * 2004-08-05 2007-02-14 松下電器産業株式会社 動きベクトル検出装置および動きベクトル検出方法
US7447337B2 (en) * 2004-10-25 2008-11-04 Hewlett-Packard Development Company, L.P. Video content understanding through real time video motion analysis
RU2368095C1 (ru) * 2005-07-22 2009-09-20 Мицубиси Электрик Корпорейшн Кодер изображения и декодер изображения, способ кодирования изображения и способ декодирования изображения, программа кодирования изображения и программа декодирования изображения и компьютерно-считываемый носитель записи, на котором записана программа кодирования изображения, и компьютерно-считываемый носитель записи, на котором записана программа декодирования изображения
JP2007142521A (ja) 2005-11-15 2007-06-07 Sharp Corp 動きベクトル算出装置および動きベクトル算出方法
JP4763549B2 (ja) * 2006-08-18 2011-08-31 富士通セミコンダクター株式会社 フレーム間予測処理装置、画像符号化装置、及び画像復号化装置
CN101222627A (zh) * 2007-01-09 2008-07-16 华为技术有限公司 一种多视点视频编解码***以及预测向量的方法和装置
KR101366241B1 (ko) * 2007-03-28 2014-02-21 삼성전자주식회사 영상 부호화, 복호화 방법 및 장치
JP4325708B2 (ja) * 2007-07-05 2009-09-02 ソニー株式会社 データ処理装置、データ処理方法およびデータ処理プログラム、符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム
JP4786612B2 (ja) * 2007-08-14 2011-10-05 Kddi株式会社 動画像符号化装置の予測動きベクトル生成装置
US8000411B2 (en) * 2008-01-04 2011-08-16 Qualcomm Incorporated Decoding scheme using multiple hypotheses about transmitted messages
JP4990927B2 (ja) 2008-03-28 2012-08-01 三星電子株式会社 動きベクトル情報の符号化/復号化方法及び装置
US8195001B2 (en) 2008-04-09 2012-06-05 Intel Corporation In-loop adaptive wiener filter for video coding and decoding
US20110261882A1 (en) 2008-04-11 2011-10-27 Thomson Licensing Methods and apparatus for template matching prediction (tmp) in video encoding and decoding
US8908763B2 (en) * 2008-06-25 2014-12-09 Qualcomm Incorporated Fragmented reference in temporal compression for video coding
WO2010035733A1 (ja) 2008-09-24 2010-04-01 ソニー株式会社 画像処理装置および方法
US8634457B2 (en) * 2008-09-26 2014-01-21 Qualcomm Incorporated Determining availability of video data units
US8660176B2 (en) * 2008-09-26 2014-02-25 Qualcomm Incorporated Resolving geometric relationships among video data units
US8724697B2 (en) * 2008-09-26 2014-05-13 Qualcomm Incorporated Locating motion vectors for video data units
KR101279573B1 (ko) * 2008-10-31 2013-06-27 에스케이텔레콤 주식회사 움직임 벡터 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
JP4957780B2 (ja) 2009-11-20 2012-06-20 カシオ計算機株式会社 動き補償予測符号化装置、動き補償予測符号化方法及びプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150070035A (ko) * 2013-12-16 2015-06-24 삼성전자주식회사 이미지 블록의 포워드 복수-가설 인코딩/디코딩 방법 및 장치
US10187654B2 (en) 2013-12-16 2019-01-22 Samsung Electronics Co., Ltd. Method and device for forward multiple-hypothesis encoding/decoding of image block
WO2018128345A3 (ko) * 2017-01-04 2018-08-30 삼성전자 주식회사 복호화 방법 및 그 장치

Also Published As

Publication number Publication date
CN105872558B (zh) 2019-06-07
KR101452921B1 (ko) 2014-10-23
EP3220646A1 (en) 2017-09-20
IL222337A0 (en) 2012-12-31
RU2530318C2 (ru) 2014-10-10
US20110255598A1 (en) 2011-10-20
BR112012025275B1 (pt) 2021-08-03
AU2011240486A1 (en) 2012-10-11
US20120027097A1 (en) 2012-02-02
JP5211263B2 (ja) 2013-06-12
WO2011127828A1 (en) 2011-10-20
US8891608B2 (en) 2014-11-18
TW201511524A (zh) 2015-03-16
BR112012025275A2 (pt) 2016-06-21
CN102223542A (zh) 2011-10-19
TW201218776A (en) 2012-05-01
TW201143462A (en) 2011-12-01
CN102907095A (zh) 2013-01-30
TWI514855B (zh) 2015-12-21
TW201511525A (zh) 2015-03-16
TWI445411B (zh) 2014-07-11
CN105872558A (zh) 2016-08-17
EP2559250A1 (en) 2013-02-20
JP2012513179A (ja) 2012-06-07
IL222337A (en) 2016-05-31
US8879620B2 (en) 2014-11-04
CN102907095B (zh) 2016-10-12
TWI520586B (zh) 2016-02-01
US20110255600A1 (en) 2011-10-20
RU2012141233A (ru) 2014-06-10
CN107071472A (zh) 2017-08-18
TWI469645B (zh) 2015-01-11
US8837592B2 (en) 2014-09-16
BR112012025275B8 (pt) 2021-08-24
EP2559250A4 (en) 2016-01-06
AU2011240486B2 (en) 2014-02-13
CN105791858A (zh) 2016-07-20
CN105791858B (zh) 2019-11-15
IL245480B (en) 2018-01-31
IL245480A0 (en) 2016-06-30
EP2559250B1 (en) 2020-07-08

Similar Documents

Publication Publication Date Title
KR20120126115A (ko) 코딩 유닛의 비디오 코딩 동안 국소적 다중가설 예측을 수행하는 방법, 및 관련 장치
US11070834B2 (en) Low-complexity method for generating synthetic reference frames in video coding
US9118929B2 (en) Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus
JP5490823B2 (ja) 画像の系列を表すストリームを復号化する方法、画像の系列を符号化する方法及び符号化データ構造
US9628814B2 (en) Motion vector encoding/decoding method and device and image encoding/decoding method and device using same
US11350129B2 (en) Method and device for encoding and decoding a video bitstream using a selected motion vector
KR20190089836A (ko) 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
WO2011013253A1 (ja) 幾何変換動き補償予測を用いる予測信号生成装置、動画像符号化装置及び動画像復号化装置
CN112997487A (zh) 仿射模式与其他帧间编解码工具之间的协调
Sanchez et al. DPCM-based edge prediction for lossless screen content coding in HEVC
WO2012044118A2 (ko) 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
JP2004165785A (ja) 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置,画像符号化プログラム,画像復号プログラムおよびそのプログラムを記録した記録媒体
KR101601856B1 (ko) 방향적 인트라 예측 장치 및 그 예측 방법
KR20200064920A (ko) 화면간 예측에 기반한 영상 부호화/복호화 방법 및 장치
JP5194039B2 (ja) イントラ予測装置、符号化器、復号器、及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191002

Year of fee payment: 6