KR20110005846A - 서브-픽셀 해상도에서의 오프셋 - Google Patents

서브-픽셀 해상도에서의 오프셋 Download PDF

Info

Publication number
KR20110005846A
KR20110005846A KR1020107025197A KR20107025197A KR20110005846A KR 20110005846 A KR20110005846 A KR 20110005846A KR 1020107025197 A KR1020107025197 A KR 1020107025197A KR 20107025197 A KR20107025197 A KR 20107025197A KR 20110005846 A KR20110005846 A KR 20110005846A
Authority
KR
South Korea
Prior art keywords
offset
video
integer pixel
offset values
sub
Prior art date
Application number
KR1020107025197A
Other languages
English (en)
Other versions
KR101242853B1 (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 KR20110005846A publication Critical patent/KR20110005846A/ko
Application granted granted Critical
Publication of KR101242853B1 publication Critical patent/KR101242853B1/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/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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/182Methods 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 a pixel
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 개시물은 비디오 인코딩 및 디코딩 프로세스 동안 적용된 기술을 설명한다. 일 예에서, 비디오 데이터를 인코딩하는 방법은 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값을 계산하는 단계, 오프셋 값을 예측 비디오 블록에 적용하여 오프셋 예측 비디오 블록을 생성하는 단계, 및 오프셋 예측 비디오 블록에 기초하여 코딩된 단위의 비디오 블록을 인코딩하는 단계를 포함하며, 오프셋 값은 복수의 상이한 정수 및 서브-정수 픽셀 위치와 관련된다. 다른 예에서, 비디오 데이터를 디코딩하는 방법은, 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값을 수신하는 단계, 오프셋 값을 예측 비디오 블록에 적용하여 오프셋 예측 비디오 블록을 생성하는 단계, 및 오프셋 예측 비디오 블록에 기초하여 코딩된 단위의 비디오 블록을 디코딩하는 단계를 포함하며, 오프셋 값은 복수의 상이한 정수 및 서브-정수 픽셀 위치와 관련된다.

Description

서브-픽셀 해상도에서의 오프셋{OFFSETS AT SUB-PIXEL RESOLUTION}
본 출원은 그 전체 내용이 참조로 여기에 모두 통합되는, 2008년 4월 11일 출원된 미국 가출원 제 61/044,240 호, 2008년 4월 10일 출원된 미국 가출원 제 61/044,023 호, 및 2008년 4월 10일 출원된 미국 가출원 제 61/044,020 호의 이익을 주장한다.
본 개시물은 디지털 비디오 코딩에 관한 것으로, 더욱 구체적으로는, 오프셋이 비디오 코딩에서 사용된 예측 데이터에 적용되는 기술에 관한 것이다.
디지털 텔레비전, 디지털 직접 브로드캐스트 시스템, 무선 브로드캐스트 시스템, 개인 휴대 정보 단말기 (PDA), 랩탑 또는 데스크탑 컴퓨터, 디지털 카메라, 디지털 기록 디바이스, 비디오 게임 디바이스, 비디오 게임 콘솔, 셀룰러 또는 위성 무선 전화 등을 포함하는 광범위한 디바이스에 디지털 비디오 능력이 통합될 수 있다. 디지털 비디오 디바이스는 디지털 비디오 정보를 더욱 효율적으로 송수신하기 위해 MPEG-2, MPEG-4, 또는 ITU-T H.264/MPEG-4, Part 10, 어드밴스드 비디오 코딩 (AVC) 에 의해 정의된 표준에 설명된 바와 같은 비디오 압축 기술을 구현한다. 비디오 압축 기술은 비디오 시퀀스에서 고유한 리던던시를 감소시키거나 제거하기 위해 공간 예측 및/또는 시간 예측을 수행할 수도 있다.
블록 기반 인터-코딩이, 비디오 시퀀스의 연속 코딩된 단위의 비디오 블록 사이의 시간적 리던던시를 감소시키거나 제거하기 위해 시간적 예측에 의존하는 매우 유용한 코딩 기술이다. 코딩된 단위는 비디오 프레임, 비디오 프레임의 슬라이스, 픽처의 그룹, 또는 비디오 블록의 다른 정의된 단위를 포함할 수도 있다. 인터-코딩에 있어서, 비디오 인코더는 2개 이상의 인접하는 코딩된 단위의 대응하는 비디오 블록의 움직임을 트랙킹하기 위해 모션 추정 및 모션 보상을 수행한다. 모션 추정은 하나 이상의 레퍼런스 프레임 또는 다른 코딩된 단위에서의 대응하는 예측 비디오 블록에 대한 비디오 블록의 변위를 나타내는 모션 벡터를 생성한다. 모션 보상은 모션 벡터를 사용하여 레퍼런스 프레임 또는 다른 코딩된 단위로부터 예측 비디오 블록을 생성한다. 모션 보상 이후에, 코딩된 원래의 비디오 블록으로부터 예측 비디오 블록을 감산함으로써 잔류 비디오 블록이 형성된다.
비디오 인코더는 또한 잔류 블록의 통신과 관련된 비트 레이트를 더 감소시키기 위해 변환, 양자화 및 엔트로피 코딩 프로세스를 적용할 수도 있다. 변환 기술은 이산 코사인 변환 (DCT) 또는 개념적으로 유사한 프로세스를 포함할 수도 있다. 대안으로는, 웨이브릿 변환, 정수 변환, 또는 다른 타입의 변환이 사용될 수도 있다. DCT 프로세스에서, 일 예로서, 일 세트의 픽셀 값이 주파수 도메인에서 픽셀 값의 에너지를 나타낼 수도 있는 변환 계수로 컨버팅된다. 양자화는 변환 계수에 적용되며, 일반적으로, 임의의 소정의 변환 계수와 관련된 비트의 수를 제한하는 프로세스를 수반한다. 엔트로피 코딩은 양자화된 변환 계수의 시퀀스를 일괄적으로 압축하는 하나 이상의 프로세스를 포함한다. 엔트로피 코딩의 예가 컨텐츠 적응형 가변 길이 코딩 (CAVLC) 및 컨텍스트 적응형 이진 산술 코딩 (CABAC) 를 포함하지만 이에 한정되지 않는다.
코딩된 비디오 블록은, 코딩된 블록과 예측 블록 사이의 차이를 나타내는 데이터의 잔류 블록, 및 예측 블록을 생성하거나 식별하기 위해 사용될 수 있는 예측 정보에 의해 표현될 수도 있다. 예측 정보는 데이터의 예측 블록을 식별하기 위해 사용되는 하나 이상의 모션 벡터를 포함할 수도 있다. 모션 벡터가 제공되면, 디코더는 잔류 블록을 코딩하기 위해 사용된 예측 블록을 재구성할 수 있다. 따라서, 일 세트의 잔류 블록 및 일 세트의 모션 벡터 (및 가능하면 일부 추가 신택스) 가 제공되면, 디코더는 원래 인코딩된 비디오 프레임을 재구성할 수도 있다. 모션 추정 및 모션 보상에 기초하는 인터-코딩은, 연속 비디오 프레임 또는 다른 타입의 코딩된 단위가 종종 매우 유사하기 때문에 매우 양호한 압축을 달성할 수 있다. 인코딩된 비디오 시퀀스는 잔류 데이터의 블록, 모션 벡터, 및 가능하면 다른 타입의 신택스를 포함할 수도 있다.
인터-코딩에서 달성될 수 있는 압축의 레벨을 개선하기 위해 보간 및 외삽 기술이 개발되었다. 이러한 경우에서, 비디오 블록을 코딩하기 위해 사용된 모션 보상 동안 생성된 예측 데이터는 모션 추정에서 사용된 비디오 프레임의 비디오 블록의 픽셀 또는 다른 코딩된 단위로부터 보간 또는 외삽될 수도 있다. 보간 또는 외삽은 종종, 예측 하프-픽셀 값 (half-pel) 및 예측 쿼터-픽셀 값 (quarter-pel) 을 생성하기 위해 수행된다. 이러한 보간 또는 외삽은 종종, 비디오 코딩에서 사용된 예측 프레임의 실제 비디오 블록 또는 다른 코딩된 단위 보다 코딩된 비디오 블록에 더욱 더 유사한 예측 블록을 생성한다.
일반적으로, 본 개시물은 비디오 인코딩 및 디코딩 프로세스 동안 인코더 및 디코더에 의해 적용된 기술을 설명한다. 이 기술에 따르면, 인코더는 각 코딩된 단위에 대한 복수의 오프셋 값을 생성하며, 그 오프셋 값은 코딩된 단위의 비디오 블록을 코딩하기 위해 사용되는 예측 데이터에 적용된다. 특히, 상이한 오프셋 값이 코딩된 단위와 관련된 각 정수 및 서브-정수 픽셀 위치에 대해 정의될 수도 있다. 서브-정수 픽셀 위치는 정수 픽셀 위치에서의 데이터에 기초하여 보간되거나 외삽되는 보간 또는 외삽 데이터에 대응할 수도 있다. 상이한 픽셀 위치 (정수 픽셀 위치 및 서브-정수 픽셀 위치) 에서의 상이한 오프셋을 어카운팅함으로써, 결과적인 오프셋 예측 데이터가 원래의 예측 데이터 보다 양호한 압축을 제공할 수도 있다. 이러한 방식으로, 본 개시물의 기술은 비디오 코딩을 개선시킬 수도 있다.
인코더는 인코딩된 비트스트림의 일부로서 디코더로 통신될 수도 있는 각 코딩된 단위에 대한 상이한 오프셋을 인코딩할 수도 있다. 이러한 방식으로, 디코더는 각 코딩된 단위에 대해 인코더에서 정의된 상이한 오프셋 값을 수신할 수도 있다. 따라서, 디코더는 예측 데이터를 생성할 수 있고, 그 후, 예측 데이터 및 오프셋 값에 기초하여 오프셋 예측 데이터를 재구성할 수 있다. 그 후, 코딩된 단위, 예를 들어, 비디오 블록의 비디오 데이터가 오프셋 예측 데이터에 기초하여 디코딩될 수 있다. 코딩된 단위와 관련된 상이한 정수 및 서브-정수 픽셀 위치에 대한 개별 오프셋 값을 제공함으로써, 코딩은 코딩된 단위에 단일 오프셋 값을 적용하는 기수에 비해 개선될 수도 있다.
일 예에서, 본 개시물은 비디오 데이터를 인코딩하는 방법을 제공한다. 이 방법은, 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값을 계산하는 단계로서, 상기 오프셋 값은 복수의 상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련되는, 상기 복수의 오프셋 값을 계산하는 단계, 그 오프셋 값을 예측 비디오 블록에 적용하여 오프셋 예측 비디오 블록을 생성하는 단계, 및 오프셋 예측 비디오 블록에 기초하여 코딩된 단위의 비디오 블록을 인코딩하는 단계를 포함한다.
다른 예에서, 본 개시물은 비디오 데이터를 디코딩하는 방법을 제공한다. 이 방법은 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값을 수신하는 단계로서, 상기 오프셋 값은 복수의 상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련되는, 상기 복수의 오프셋 값을 수신하는 단계, 그 오프셋 값을 예측 비디오 블록에 적용하여 오프셋 예측 비디오 블록을 생성하는 단계, 및 그 오프셋 예측 비디오 블록에 기초하여 코딩된 단위의 비디오 블록을 디코딩하는 단계를 포함한다.
다른 예에서, 본 개시물은 비디오 데이터를 인코딩하는 장치를 제공한다. 이 장치는, 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값을 계산하고, 그 오프셋 값을 예측 비디오 블록에 적용하여 오프셋 예측 비디오 블록을 생성하며, 그 오프셋 예측 비디오 블록에 기초하여 코딩된 단위의 비디오 블록을 인코딩하며, 상기 오프셋 값은 복수의 상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련되는 비디오 인코더를 포함한다.
다른 예에서, 본 개시물은 비디오 데이터를 디코딩하는 장치를 제공한다. 이 장치는 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값을 수신하고, 그 오프셋 값을 예측 비디오 블록에 적용하여 오프셋 예측 비디오 블록을 생성하며, 그 오프셋 예측 비디오 블록에 기초하여 코딩된 단위의 비디오 블록을 디코딩하며, 상기 오프셋 값은 복수의 상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련되는 비디오 디코더를 포함한다.
다른 예에서, 본 개시물은 비디오 데이터를 인코딩하는 디바이스를 제공하고, 이 디바이스는 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값을 계산하는 수단으로서, 그 오프셋 값은 복수의 상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련되는, 상기 복수의 오프셋 값을 계산하는 수단, 그 오프셋 값을 예측 비디오 블록에 적용하여 오프셋 예측 비디오 블록을 생성하는 수단, 및 그 오프셋 예측 비디오 블록에 기초하여 코딩된 단위의 비디오 블록을 인코딩하는 수단을 포함한다.
다른 예에서, 본 개시물은 비디오 데이터를 디코딩하는 디바이스를 제공하고, 이 디바이스는 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값을 수신하는 수단으로서, 그 오프셋 값은 복수의 상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련되는, 상기 복수의 오프셋 값을 수신하는 수단, 그 오프셋 값을 예측 비디오 블록에 적용하여 오프셋 예측 비디오 블록을 생성하는 수단, 및 그 오프셋 예측 비디오 블록에 기초하여 코딩된 단위의 비디오 블록을 디코딩하는 수단을 포함한다.
다른 예에서, 본 개시물은 비디오 인코더 및 무선 송신기를 포함하는 디바이스를 제공한다. 비디오 인코더는 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값으로서, 복수의 상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련되는 복수의 오프셋 값을 계산하고, 그 오프셋 값을 예측 비디오 블록에 적용하여 오프셋 예측 비디오 블록을 생성하며, 그 오프셋 예측 비디오 블록에 기초하여 코딩된 단위의 비디오 블록을 인코딩한다. 무선 송신기는 인코딩된 데이터를 다른 디바이스로 송신한다.
다른 예에서, 본 개시물은 무선 수신기 및 비디오 디코더를 포함하는 디바이스를 제공한다. 무선 수신기는 다른 디바이스로부터 인코딩된 비디오 데이터를 수신한다. 비디오 디코더는 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값으로서, 복수의 상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련되는 상기 복수의 오프셋 값을 수신하고, 그 오프셋 값을 예측 비디오 블록에 적용하여 오프셋 예측 비디오 블록을 생성하며, 그 오프셋 예측 비디오 블록에 기초하여 코딩된 단위의 비디오 블록을 디코딩한다.
본 개시물에 설명된 기술은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어에서 구현되면, 소프트웨어는 마이크로프로세서, 응용 주문형 집적 회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA), 또는 디지털 신호 프로세서 (DSP) 와 같은 하나 이상의 프로세서에서 실행될 수도 있다. 이 기술을 실행하는 소프트웨어는 처음에는 컴퓨터-판독가능한 매체에 저장될 수도 있으며 프로세서에서 로딩 및 실행될 수도 있다.
따라서, 본 개시물은 또한, 실행시에 디바이스로 하여금 비디오 데이터를 인코딩하게 하는 명령들을 포함하는 컴퓨터-판독가능한 매체를 의도한다. 특히, 이 명령들은 디바이스로 하여금 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값으로서, 복수의 상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련되는 상기 복수의 오프셋 값을 계산하게 하고, 그 오프셋 값을 예측 비디오 블록에 적용하여 오프셋 예측 비디오 블록을 생성하게 하며, 그 오프셋 예측 비디오 블록에 기초하여 코딩된 단위의 비디오 블록을 인코딩하게 한다.
또한, 본 개시물은 실행시에 디바이스로 하여금 비디오 데이터를 디코딩하게 하는 명령들을 포함하는 컴퓨터-판독가능한 매체를 또한 의도한다. 이러한 경우에, 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값으로서, 복수의 상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련되는 상기 복수의 오프셋 값의 수신시에, 상기 명령들은 디바이스로 하여금 그 오프셋 값을 예측 비디오 블록에 적용하여 오프셋 예측 비디오 블록을 생성하게 하며, 그 오프셋 예측 비디오 블록에 기초하여 코딩된 단위의 비디오 블록을 디코딩하게 한다.
본 개시물의 하나 이상의 양태의 상세가 이하의 첨부한 도면과 상세한 설명에 설명된다. 본 개시물에 설명된 기술의 다른 특징들, 목적들, 및 이점들이 상세한 설명과 도면, 및 청구범위로부터 명백할 것이다.
도 1 은 비디오 인코딩 및 디코딩 시스템을 예시하는 예시적인 블록도이다.
도 2 는 본 개시물과 일치하는 비디오 인코더의 예를 예시하는 블록도이다.
도 3 은 본 개시물과 일치하는 비디오 디코더의 예를 예시하는 블록도이다.
도 4 는 예측 비디오 블록의 픽셀을 포함할 수도 있는 정수 픽셀 및 다양한 서브-정수 픽셀을 예시하는 개념도이다.
도 5 내지 도 7 은 본 개시물과 일치하는 기술을 예시하는 흐름도이다.
본 개시물은 비디오 코딩의 모션 보상 프로세스 동안 예측 비디오 블록에 오프셋을 가산하기 위해 인코더 및 디코더에 의해 수행된 기술을 설명한다. 본 개시물의 일 양태에 따르면, 인코더는 각 코딩된 단위에 대한 복수의 오프셋 값을 생성할 수도 있으며, 그 오프셋 값을 코딩된 단위의 비디오 블록을 코딩하기 위해 사용되는 예측 데이터에 적용할 수도 있다. 특히, 인코더는 정수 픽셀 위치 및 상이한 서브-정수 픽셀 위치에 대한 상이한 오프셋 값을 정의할 수도 있다. 적절한 오프셋 값은 그 예측 데이터와 관련된 픽셀 위치에 기초하여 대응하는 예측 데이터에 적용될 수도 있다. 서브-정수 픽셀 위치는 정수 픽셀 위치에서의 데이터에 기초하여 보간되거나 외삽되는 보간 또는 외삽된 데이터에 대응할 수도 있다. 상이한 픽셀 위치 (정수 픽셀 위치 및 서브-정수 픽셀 위치) 에서의 상이한 오프셋을 어카운팅함으로써, 결과적인 오프셋 예측 데이터가 원래의 예측 데이터 보다 양호한 압축을 제공할 수도 있다. 이러한 방식으로, 본 개시물의 기술은 비디오 품질을 개선시킬 수도 있다. 예를 들어, 예측 데이터에 대한 오프셋의 가산은 예를 들어, 플래시, 어두운 하늘과 같은 비디오 시퀀스의 프레임 사이의 조명 변화, 또는 프레임 사이의 다른 타입의 조명 변화 동안 코딩을 개선시킬 수도 있다.
ITU-T H.264 표준은 쿼터-픽셀 해상도에 대한 서브-정수 픽셀의 분수 (fractional) 보간을 지원한다. 이러한 경우에서, 15개의 가능한 서브-정수 픽셀 위치가 모든 정수 픽셀 위치에 대해 존재한다. 따라서, 이러한 경우에, 본 개시물에 따르면, 16개의 상이한 오프셋 값이 코딩된 단위의 각 가능한 정수 픽셀 위치 및 서브-정수 픽셀 위치에 대해 생성될 수도 있다. 대응하는 오프셋 값은 그 예측 데이터와 관련된 픽셀 위치에 기초하여 임의의 예측 데이터에 적용될 수도 있다. 특히, 오프셋 값은 예측 비디오 블록의 픽셀 값을 조정하기 위해 적용될 수도 있으며, 이러한 픽셀 값 조정을 행하기 위해 사용되는 오프셋 값은 예측 비디오 블록과 관련된 위치 (예를 들어, 정수 위치 또는 수 개의 가능한 서브-픽셀 위치 중 하나) 에 의존할 수도 있다.
상이한 오프셋 값은 각 코딩된 단위에 대한 비트스트림의 일부로서 인코딩될 수도 있다. 디코더는 각 코딩된 단위에 대해 인코더에 의해 정의되는 상이한 오프셋 값을 수신할 수도 있다. 따라서, 디코더는 예측 데이터를 생성할 수 있고, 그 후, 예측 데이터 및 오프셋 값에 기초하여 오프셋 예측 데이터를 재구성할 수 있다. 디코더는 예측 데이터 및 오프셋 값에 기초하여 생성된 오프셋 예측 데이터에 기초하여 코딩된 단위, 예를 들어, 비디오 블록의 비디오 데이터를 디코딩할 수 있다. 인코딩과 마찬가지로, 예측 데이터에 대한 오프셋의 가산은 조명 변화 또는 다른 비디오 효과 동안 비디오 품질을 개선시킴으로써 비디오 디코딩을 개선시킬 수도 있다.
도 1 은 본 개시물의 기술을 구현할 수도 있는 하나의 예시적인 인코딩 및 디코딩 시스템 (10) 을 예시하는 블록도이다. 도 1 에 도시되어 있는 바와 같이, 시스템 (10) 은 인코딩된 비디오를 통신 채널 (15) 을 통해 수신 디바이스 (16) 로 송신하는 소스 디바이스 (12) 를 포함한다. 소스 디바이스 (12) 및 수신 디바이스 (16) 는 임의의 광범위한 디바이스를 포함할 수도 있다. 일부 경우에서, 소스 디바이스 (12) 및 수신 디바이스 (16) 는 무선 핸드셋, 소위 셀룰러 또는 위성 무선전화와 같은 무선 통신 디바이스, 또는 통신 채널 (15) 을 통해 비디오 정보를 통신할 수 있는 임의의 무선 디바이스를 포함하고, 이 경우에서, 통신 채널 (15) 은 무선이다. 그러나, 모션 보상 동안 예측 데이터에 대한 오프셋의 가산에 관한 본 개시물의 기술은 무선 애플리케이션 또는 세팅에 반드시 제한되지 않는다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (20), 비디오 인코더 (22), 변조기/복조기 (modem) (23) 및 송신기 (24) 를 포함할 수도 있다. 수신 디바이스 (16) 는 수신기 (26), 모뎀 (27), 비디오 디코더 (28), 및 디스플레이 디바이스 (30) 를 포함할 수도 있다. 본 개시물에 따르면, 소스 디바이스 (12) 의 비디오 인코더 (22) 는 비디오 인코딩 프로세스의 일부로서 본 개시물의 오프셋 기술 중 하나 이상을 적용하도록 구성될 수도 있다. 유사하게는, 수신 디바이스 (16) 의 비디오 디코더 (28) 는 비디오 디코딩 프로세스의 일부로서 본 개시물의 오프셋 기술 중 하나 이상을 적용하도록 구성될 수도 있다.
도 1 의 예시된 시스템 (10) 은 단지 예이다. 본 개시물의 오프셋 기술은 서브-픽셀 해상도에 대한 모션 보상된 보간을 지원하는 임의의 인코딩 디바이스에 의해 수행될 수도 있다. 소스 디바이스 (12) 및 수신 디바이스 (16) 는 단지 이러한 코딩 디바이스의 예이고, 여기서, 소스 디바이스 (12) 는 수신 디바이스 (16) 로의 송신용의 코딩된 비디오 데이터를 생성한다. 디바이스들 (12, 16) 은, 디바이스들 (12, 16) 각각이 비디오 인코딩 및 디코딩 컴포넌트를 포함하도록 실질적으로 대칭 방식으로 동작할 수도 있다. 따라서, 시스템 (10) 은 예를 들어, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 또는 비디오 전화를 위해 비디오 디바이스들 (12, 16) 사이의 1-방향 또는 2-방향 비디오 송신을 지원할 수도 있다.
소스 디바이스 (12) 의 비디오 소스 (20) 는 비디오 카메라와 같은 비디오 캡처 디바이스, 이전에 캡처된 비디오를 포함하는 비디오 아카이브, 또는 비디오 컨텐츠 제공자로부터의 비디오 피드를 포함할 수도 있다. 다른 대안으로서, 비디오 소스 (20) 는 소스 비디오, 또는 라이브 비디오, 보관된 비디오, 및 컴퓨터-생성 비디오의 조합으로서 컴퓨터 그래픽스-기반 데이터를 생성할 수도 있다. 일부 경우에서, 비디오 소스 (20) 가 비디오 카메라이면, 소스 디바이스 (12) 및 수신 디바이스 (16) 는 소위 카메라 폰 또는 비디오 폰을 형성할 수도 있다. 각 경우에서, 캡처되고, 사전 캡처되거나 컴퓨터 생성된 비디오가 비디오 인코더 (22) 에 의해 인코딩될 수도 있다. 그 후, 인코딩된 비디오 정보가 예를 들어, 코드 분할 다중 액세스 (CDMA) 와 같은 통신 표준 또는 다른 통신 표준에 따라 모뎀 (23) 에 의해 변조될 수도 있고, 송신기 (24) 를 통해 수신 디바이스 (16) 로 송신될 수도 있다. 모뎀 (23) 은 다양한 믹서, 필터, 증폭기 또는 신호 변조를 위해 설계된 다른 컴포넌트를 포함할 수도 있다. 송신기 (24) 는 데이터를 송신하기 위해 설계되고, 증폭기, 필터, 및 하나 이상의 안테나를 포함하는 회로를 포함할 수도 있다.
수신 디바이스 (16) 의 수신기 (26) 는 채널 (15) 을 통해 정보를 수신하며, 모뎀 (27) 은 정보를 복조한다. 다시, 비디오 인코딩 프로세스는 모션 보상 동안 예측 데이터에 오프셋을 가산하기 위해 여기에 설명된 기술 중 하나 이상을 구현할 수도 있다. 비디오 디코더 (28) 에 의해 수행된 비디오 디코딩 프로세스는 또한, 디코딩 프로세스의 모션 보상 스테이지 동안 이러한 기술을 수행할 수도 있다. 채널 (15) 을 통해 통신된 정보는 비디오 디코더 (28) 에 의해 또한 사용되는 비디오 인코더 (22) 에 의해 정의된 오프셋 정보를 포함할 수도 있다. 디스플레이 디바이스 (30) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하며, 음극선 튜브, 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 타입의 디스플레이 디바이스와 같은 임의의 다양한 디스플레이 디바이스를 포함할 수도 있다.
도 1 의 예에서, 통신 채널 (15) 은 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인과 같은 임의의 무선 또는 유선 통신 매체, 또는 무선 및 유선 매체의 임의의 조합을 포함할 수도 있다. 통신 채널 (15) 은 로컬 영역 네트워크와 같은 패킷 기반 네트워크, 광 영역 네트워크, 또는 인터넷과 같은 글로벌 네트워크의 일부를 형성할 수도 있다. 일반적으로, 통신 채널 (15) 은 소스 디바이스 (12) 로부터 수신 디바이스 (16) 로 비디오 데이터를 송신하기 위한 임의의 적합한 통신 매체, 또는 상이한 통신 매체의 집합을 나타낸다. 통신 채널 (15) 은 소스 디바이스 (12) 로부터 수신 디바이스 (16) 로의 통신을 용이하게 하는데 유용할 수도 있는 라우터, 스위치, 기지국, 또는 다른 임의의 장비를 포함할 수도 있다.
비디오 인코더 (22) 및 비디오 디코더 (28) 는 다르게는 MPEG-4, Part 10, 어드밴스드 비디오 코딩 (AVC) 으로서 기재되는 ITU-T H.264 표준과 같은 비디오 압축 표준에 따라 동작할 수도 있다. 그러나, 본 개시물의 기술은 임의의 특정한 코딩 표준에 제한되지 않는다. 도 1 에는 도시하지 않았지만, 일부 양태에서, 비디오 인코더 (22) 및 비디오 디코더 (28) 는 각각 오디오 인코더 및 디코더와 통합될 수도 있으며, 공통 데이터 스트림 또는 개별 데이터 스트림에서 오디오와 비디오 양자의 인코딩을 처리하기 위한 적절한 MUX-DEMUX 유닛, 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 적용가능하면, MUX-DEMUX 유닛은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜 (UDP) 과 같은 다른 프로토콜에 따를 수도 있다.
ITU-T H.264/MPEG-4 (AVC) 표준은, Joint Video Team (JVT) 로서 알려진 컬렉티브 파트너쉽의 제품으로서 ISO/IEC 동영상 전문가 그룹 (MPEG) 과 함께 ITU-T 비디오 코딩 전문가 그룹 (VCEG) 에 의해 공식화되었다. 일부 양태에서, 본 개시물에 설명한 기술은 H.264 표준에 일반적으로 따르는 디바이스에 적용될 수도 있다. H.264 표준은 2005년 3월에 ITU-T 연구 그룹에 의한 ITU-T Recommendation H.264, Advanced Video Coding for generic audiovisual services 에 기재되어 있으며, 이것은 여기에서 H.264 표준 또는 H.264 사양, 또는 H.264/AVC 표준 또는 사양으로서 칭할 수도 있다. Joint Video Team (JVT) 은 H.264/MPEG-4 AVC 에 대한 확장을 계속 작업한다.
비디오 인코더 (22) 및 비디오 디코더 (28) 는 각각 하나 이상의 마이크로프로세서, 디지털 신호 프로세서 (DSP), 응용 주문형 집적 회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA), 개별 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 조합으로서 구현될 수도 있다. 비디오 인코더 (22) 와 비디오 디코더 (28) 각각은 각각의 이동 디바이스, 가입자 디바이스, 브로드캐스트 디바이스, 서버 등에서 결합된 인코더/디코더 (CODEC) 의 일부로서 통합될 수도 있는 하나 이상의 인코더 또는 디코더에 포함될 수도 있다.
통상적으로, 비디오 시퀀스는 일련의 비디오 프레임을 포함한다. 비디오 인코더 (22) 는 비디오 데이터를 인코딩하기 위해 개별 비디오 프레임내의 비디오 블록에 대해 동작한다. 비디오 블록은 고정되거나 변화하는 사이즈를 가질 수도 있으며, 특정 코딩 표준에 따라 사이즈가 다를 수도 있다. 각 비디오 프레임은 일련의 슬라이스를 포함한다. 각 슬라이스는 서브-블록으로 배열될 수도 있는 일련의 매크로블록을 포함한다. 일 예로서, ITU-T H.264 표준은 루마 컴포넌트에 대해 16×16, 8×8 또는 4×4, 및 크로마 컴포넌트에 대해 8×8 과 같은 다양한 블록 사이즈에서의 인트라 예측 뿐만 아니라 루마 컴포넌트에 대해 16×16, 16×8, 8×16, 8×8, 8×4, 4×8, 및 4×4 및 크로마 컴포넌트에 대해 대응하게 스케일링된 사이즈와 같은 다양한 블록 사이즈에서의 인터 예측을 지원한다. 비디오 블록은 예를 들어, 이산 코사인 변환과 같은 변환 프로세스 또는 개념적으로 유사한 변환 프로세스에 후속하는 픽셀 데이터의 블록, 또는 변환 계수의 블록을 포함할 수도 있다.
더 작은 비디오 블록이 더 양호한 해상도를 제공할 수 있으며, 높은 레벨의 디테일을 포함하는 비디오 프레임의 위치에 대해 사용될 수도 있다. 일반적으로, 매크로블록 및 다양한 서브-블록이 비디오 블록으로 고려될 수도 있다. 또한, 슬라이스가 매크로블록 및/또는 서브-블록과 같은 일련의 비디오 블록으로 고려될 수도 있다. 각 슬라이스는 비디오 프레임의 독립적으로 디코딩가능한 단위일 수도 있다. 다르게는, 프레임 자체가 디코딩가능한 단위일 수도 있으나 프레임의 다른 부분이 디코딩가능한 단위로서 정의될 수도 있다. 용어 "코딩된 단위" 는 전체 프레임, 프레임의 슬라이스와 같은 비디오 프레임의 독립적으로 디코딩가능한 단위, 또는 사용된 코딩 기술에 따라 정의된 다른 독립적으로 디코딩가능한 단위를 칭한다.
(상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치에 대한 오프셋 값을 정의하기 위해 본 개시물의 보간 기술을 포함하는) 인터-기반 예측 코딩에 후속하고, (H.264/AVC 에 사용된 4×4 또는 8×8 정수 변환 또는 이산 코사인 변환 DCT 와 같은) 임의의 변환에 후속하여, 양자화가 수행될 수도 있다. 일반적으로, 양자화는 계수를 표현하기 위해 사용된 데이터량을 가능하게 감소시키기 위해 계수가 감소되는 프로세스를 칭한다. 양자화 프로세스는 계수 중 일부 또는 전부와 관련된 비트 깊이를 감소시킬 수도 있다. 예를 들어, 16-비트 값이 양자화 동안 15-비트 값으로 내림 (rounded down) 될 수도 있다. 양자화에 후속하여, 엔트로피 코딩이 예를 들어, 컨텐츠 적응형 가변 길이 코딩 (CAVLC), 컨텍스트 적응형 이진 산술 코딩 (CABAC), 또는 다른 엔트로피 코딩 방법에 따라 수행될 수도 있다.
본 개시물의 기술에 따르면, 비디오 인코더 (22) 는 프레임 또는 슬라이스와 같은 프레임의 독립적으로 디코딩가능한 부분과 같은 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값을 계산할 수도 있다. 상이한 오프셋 값은 비디오 블록과 관련된 복수의 상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련된다. 서브-정수 픽셀 위치는 정수 픽셀 위치에서의 데이터에 기초하여 통상적으로 보간되거나 외삽되는 보간 또는 외삽된 데이터의 위치를 정의할 수도 있다. 비디오 인코더 (22) 는 오프셋 값을 예측 비디오 블록에 적용하여 오프셋 예측 비디오 블록을 생성할 수도 있으며, 오프셋 예측 비디오 블록에 기초하여 코딩된 단위의 비디오 블록을 인코딩할 수도 있다. 비디오 인코더 (22) 는 또한, 코딩된 단위의 코딩된 비디오 블록을 포함하는 코딩된 비트스트림의 일부로서 오프셋 값을 인코딩할 수도 있으며, 소스 디바이스 (12) 의 송신기 (24) 는 코딩된 비트스트림을 수신 디바이스 (16) 의 수신기 (26) 로 송신할 수도 있다. 특히, 비디오 인코더는 예측 비디오 블록의 픽셀을 조정함으로써 오프셋 값을 적용할 수도 있으며, 오프셋 예측 비디오 블록에 기초하여 나머지를 생성함으로써 오프셋 예측 비디오 블록에 기초하여 비디오 블록을 인코딩할 수도 있다. 예를 들어, 나머지는 코딩될 블록을 적절한 오프셋 예측 비디오 블록으로부터 감산함으로써 생성될 수도 있다. 오프셋이 예측 비디오 블록의 위치에 기초하여 오프셋 예측 비디오 블록의 픽셀 값에 가산되기 때문에, 코딩 효율은 특히 플래시 또는 배경 조명 변화 동안 개선될 수도 있다.
수신 디바이스 (16) 에서, 비디오 디코더 (28) 는 비디오 데이터의 각 코딩된 단위에 대한 복수의 오프셋 값을 수신한다. 비디오 디코더 (28) 는 오프셋 값을 예측 비디오 블록에 적용하여 오프셋 예측 비디오 블록을 생성할 수도 있으며, 그 오프셋 예측 비디오 블록에 기초하여 코딩된 단위의 비디오 블록을 디코딩할 수도 있다. 이러한 방식으로, 오프셋 값은 인코딩 프로세스의 일부로서 비디오 인코더 (22) 에서 정의되고 적용되며, 인코딩된 비트스트림의 일부로서 소스 디바이스 (12) 로부터 수신 디바이스 (16) 로 통신된다. 그 후, 오프셋 값은 비디오 시퀀스를 재구성하기 위해 디코딩 프로세스의 일부로서 비디오 디코더 (28) 에서 예측 데이터에 적용된다. 이러한 경우에, 예측 데이터에 대한 오프셋은 비디오 재구성 동안 생성되어 사용된다.
도 2 는 본 개시물과 일치하는 오프셋 기술을 수행할 수도 있는 비디오 인코더 (50) 의 일 예를 예시하는 블록도이다. 비디오 인코더 (50) 는 디바이스 (20) 의 비디오 인코더 (22), 또는 다른 디바이스의 비디오 인코더에 대응한다. 비디오 인코더 (50) 는, 인트라-코딩 컴포넌트가 예시의 용이함을 위해 도 2 에 예시되지는 않았지만, 비디오 프레임내에서 블록의 인트라-코딩 및 인터-코딩을 수행할 수도 있다. 인트라-코딩은 소정의 비디오 프레임내에서 비디오의 공간적 리던던시를 감소시키거나 제거하기 위해 공간적 예측에 의존한다. 인터-코딩은 비디오 시퀀스의 인접하는 프레임내에서 비디오의 시간적 리던던시를 감소시키거나 제거하기 위해 시간적 예측에 의존한다. 인트라-모드 (I-모드) 는 공간 기반 압축 모드를 칭할 수도 있고, 예측 (P-모드) 또는 양방향 (B-모드) 와 같은 인터-모드는 시간적 기반 압축 모드를 칭할 수도 있다. 본 개시물의 기술은 일반적으로, 인터-코딩 동안 적용하고, 따라서, 공간적 예측 유닛과 같은 인트라-코딩 유닛이 단순화와 예시의 용이성을 위해 도 2 에 예시되지 않는다.
도 2 에 도시되어 있는 바와 같이, 비디오 인코더 (50) 는 인코딩될 비디오 프레임내의 현재의 비디오 블록을 수신한다. 도 2 의 예에서, 비디오 인코더 (50) 는 모션 추정 유닛 (32), 모션 보상 유닛 (35), 레퍼런스 프레임 저장부 (34), 가산기 (48), 변환 유닛 (38), 양자화 유닛 (40), 및 엔트로피 코딩 유닛 (46) 을 포함한다. 비디오 블록 재구성을 위해, 비디오 인코더 (50) 는 또한, 인버스 양자화 유닛 (42), 인버스 변환 유닛 (44), 및 가산기 (51) 를 포함한다. 디블록킹 필터 (미도시) 가 블록 경계를 필터링하여 재구성된 비디오로부터 블록화 인공물을 제거하도록 또한 포함될 수도 있다. 원하면, 디블록킹 필터는 통상적으로 가산기 (51) 의 출력을 필터링한다.
인코딩 프로세스 동안, 비디오 인코더 (50) 는 코딩될 비디오 블록을 수신하며, 모션 추정 유닛 (32) 및 모션 보상 유닛 (35) 은 인터-예측 코딩을 수행한다. 모션 추정 유닛 (32) 및 모션 보상 유닛 (35) 은 고도로 통합될 수도 있지만, 개념을 위해 개별적으로 예시되어 있다. 모션 추정은 통상적으로, 비디오 블록에 대한 모션을 추정하는 모션 벡터를 생성하는 프로세스로 고려된다. 예를 들어, 모션 벡터는 현재의 프레임 (또는 다른 코딩된 단위) 내의 코딩된 현재의 블록에 대한 예측 프레임 (또는 다른 코딩된 단위) 내의 예측 블록의 변위를 나타낼 수도 있다. 모션 보상은 통상적으로, 모션 추정에 의해 결정된 모션 벡터에 기초하여 예측 블록을 페치하거나 생성하는 프로세스로 고려된다. 다시, 모션 추정 유닛 (32) 및 모션 보상 유닛 (35) 은 기능적으로 통합될 수도 있다. 설명을 위해, 본 개시물에 설명된 오프셋 기술은 모션 보상 유닛 (35) 에 의해 수행되는 것으로 설명된다.
모션 추정 유닛 (32) 은 예측 코딩된 단위 (예를 들어, 이전의 프레임) 의 비디오 블록에 대해 비디오 블록을 비교함으로써 코딩될 비디오 블록에 대한 적절한 모션 벡터를 선택한다. 이 때, 모션 보상 유닛 (35) 은 서브-픽셀 해상도에서 예측 데이터를 생성하기 위해 보간을 수행할 수도 있다. 특히, 모션 추정 유닛 (32) 이 코딩될 비디오 블록에 대한 모션 벡터를 선택하였으면, 모션 보상 유닛 (35) 은 그 모션 벡터와 관련된 예측 비디오 블록을 생성한다. 모션 보상 유닛 (35) 은 예를 들어, 보간된 데이터를 상이한 세트를 생성하기 위해 가능하게는 수 개의 상이한 보간 필터를 적용함으로써 서브-픽셀 해상도를 갖는 임의의 예측 비디오 블록의 하나 이상의 버전을 생성할 수도 있다. 예를 들어, 모션 보상 유닛 (35) 은 코딩될 비디오 블록에 대한 복수의 상이한 보간된 예측 데이터를 생성하기 위해 복수의 사전 정의된 보간 필터를 적용할 수도 있다. 그 후, 모션 보상 유닛 (35) 은 가장 높은 레벨의 압축을 달성하는 보간된 예측 데이터 (예를 들어, 보간 필터 중 하나와 관련된 보간된 비디오 블록) 을 선택한다. 일부 경우에서, 예측 데이터를 생성하기 위해 사용되었던 보간 필터는 하나 이상의 보간 신택스 엘리먼트로서 코딩된 데이터에 의해 표시될 수도 있으며, 코딩된 비트스트림에 포함을 위해 엔트로피 코딩 유닛 (46) 으로 통신될 수도 있다.
본 개시물에 따르면, 모션 보상 유닛 (35) 은 예측 데이터에 오프셋을 가산하기 위해 코딩된 단위에 관한 제 2 코딩 패스를 수행할 수도 있어서, 달성될 수도 있는 압축의 레벨을 개선시킬 수도 있다. 특히, 예측 비디오 블록의 픽셀 값은 예측 비디오 블록의 정수 또는 비정수 픽셀 위치와 관련된 오프셋에 따라 상향 또는 하향 오프셋될 수도 있다. 모션 보상 유닛 (35) 에 의해 수행된 보간은 상이한 비디오 블록에 대한 수 개의 가능한 서브-정수 픽셀 위치에서 보간된 데이터를 정의할 수도 있다. 소정의 코딩된 단위에 대해 단일 오프셋 값을 정의하기 보다는, 모션 보상 유닛은 각 가능한 정수 및 서브-정수 픽셀 위치에 대해 상이한 오프셋 값을 정의할 수도 있다. 그 후, 예측 데이터가 그 예측 데이터와 관련된 픽셀 위치에 기초하여 위치-특정 오프셋을 적용할 수 있다.
일 예에서, 모션 보상 유닛 (35) 은 각 정수 및 서브-정수 픽셀 위치에서 예측 비디오 블록에 기초하여 인코딩되는 코딩된 단위의 비디오 블록과 각각 관련된 제 1 세트의 메트릭 (예를 들어, 평균값) 을 계산할 수도 있다. 또한, 모션 보상 유닛 (35) 은 예측 비디오 블록, 예를 들어, 코딩된 단위의 비디오 블록을 인코딩하기 위해 실제로 사용되는 예측 블록에 대한 각 정수 및 서브-정수 픽셀 위치와 각각 관련된 제 2 세트의 메트릭 (예를 들어, 평균값) 을 계산할 수도 있다. 즉, 제 1 세트의 메트릭은 코딩된 데이터에 의해 정의되며, 제 2 세트의 메트릭은 예측 코딩을 위해 사용된 예측 데이터에 의해 정의된다. 그 후, 모션 보상 유닛 (35) 은 제 1 및 제 2 세트의 메트릭에 기초하여 복수의 오프셋 값을 계산한다. 오프셋 값은, 비디오 인코딩에서 인카운터된 신 변화 또는 플래시에 매우 유용할 수도 있는 대응하는 비디오 블록의 모든 픽셀 값을 상향 또는 하향으로 바이어스하기 위해 사용되는 절대값 또는 부호값을 포함할 수도 있다.
제 1 세트의 메트릭은 각 정수 및 서브-정수 픽셀 위치에서 예측 비디오 블록에 기초하여 코딩되는 코딩된 단위의 각각의 비디오 블록과 관련된 제 1 세트의 평균값을 포함할 수 있으며, 제 2 세트의 메트릭은 코딩된 단위의 각각의 비디오 블록을 인코딩하기 위해 사용된 각각의 비디오 블록에 대한 각 정수 및 서브-정수 픽셀 위치와 각각 관련된 제 2 세트의 평균값을 포함할 수도 있다. 이러한 경우에서, 복수의 오프셋 값은 제 1 세트의 평균값과 제 2 세트의 평균값 사이의 차이를 포함할 수도 있다. 이러한 방식으로, 수 개의 상이한 오프셋이 제 1 코딩 패스에서 코딩된 실제 데이터에 기초하여 수 개의 상이한 정수 및 서브-정수 픽셀 위치에 대해 정의될 수도 있다.
다시 말해, 제 1 세트의 메트릭은 각각의 정수 및 서브-정수 픽셀 위치에 각각 기초하여 코딩되는 소정의 코딩된 단위의 각각의 비디오 블록의 픽셀 값의 평균에 대응하는 평균값의 세트를 포함할 수도 있다. 제 2 세트의 메트릭은 그 코딩된 단위에서 코딩되는 현재의 블록을 예측하기 위해 실제로 사용된 예측 블록의 각 정수 및 서브-정수 픽셀 위치에서의 픽셀 값의 평균에 대응하는 평균값의 세트를 포함할 수도 있다. 코딩된 비디오 블록의 예측용으로 고려되지만 실제로는 사용되지 않는 임의의 예측 블록의 픽셀 값은 제 2 세트의 메트릭을 정의하는데 포함되지 않는다. 복수의 오프셋 값은 제 1 세트의 평균값과 제 2 세트의 평균값 사이의 차이를 포함할 수도 있다. 각 매크로블록 위치는 단일 픽셀, 예를 들어, 각각의 매크로블록의 상부 좌측 코너에서의 각각의 픽셀에 의해 정의될 수도 있다. 그러나, 각 매크로블록은 제 1 세트의 평균값에서의 특정한 평균값에 기여하는 16개의 픽셀 값을 정의할 수도 있다. 물론, 본 개시물의 기술은 다른 사이즈의 비디오 블록을 적용할 수도 있다. 일반적으로, 임의의 소정의 위치에 대한 오프셋은 픽셀 위치 또는 서브-픽셀 위치에 대응하는 모션 벡터 정밀도를 갖는 현재의 프레임 (또는 다른 코딩된 단위) 에서의 모든 픽셀의 평균과, 그 픽셀 위치 또는 서브-픽셀 위치에 대응하고 현재의 프레임의 비디오 블록의 예측을 위해 사용된 예측 데이터의 보간된 값의 평균 사이의 차이로서 계산될 수 있다. 따라서, 각각의 오프셋은 코딩 방식에서 정의되는 각각의 정수, 보간되거나 외삽된 포지션에 대해 코딩된 단위를 코딩하는데 사용된 예측 데이터에 대한 코딩된 단위의 픽셀의 평균 차이로서 보여질 수도 있다.
본 개시물의 오프셋 기술은 루마 블록, 크로마 블록 또는 양자에 적용할 수도 있다. 상이한 오프셋이 비디오 블록의 각 타입 (예를 들어, 루마 및 크로마 블록) 과 관련된 각 정수 및 서브-정수 픽셀 위치에 대해 정의될 수도 있다. 또한, 상이한 오프셋이 각 블록의 각 특정한 사이즈, 파티션 또는 서브-파티션에서 각 블록에 할당될 수 있다.
오프셋 값이 정의되면, 모션 보상 유닛 (35) 은 예측 데이터 및 오프셋에 기초하여 비디오 데이터를 코딩하기 위해 제 2 코딩 패스를 수행할 수도 있다. 특히, 모션 보상 유닛 (35) 은 오프셋 예측 비디오 블록을 생성하기 위해 원래의 예측 비디오 블록에 오프셋 값을 적용할 수도 있으며, 오프셋 예측 비디오 블록에 기초하여 코딩된 단위의 비디오 블록을 인코딩할 수도 있다. 예측 블록의 픽셀 위치 (정수 위치 또는 복수의 가능한 서브-정수 픽셀 위치 중 하나) 에 따라 위치 기반 방식에서 예측 블록의 픽셀 값에 오프셋을 가산함으로써, 예측 블록은 코딩된 블록과 더욱 유사할 수도 있고, 이것은 코딩 효율성을 개선시킬 수 있다. 또한, 오프셋 값이 상이한 픽셀 위치에 대해 상이하게 정의되기 때문에, 본 개시물의 기술은 상이한 타입의 보간과 관련된 데이터의 코딩 중에서 세그멘테이션을 달성하는 능력을 제공할 수도 있다.
모션 보상 유닛 (35) 이 오프셋 예측 데이터 (예를 들어, 보간된 데이터 또는 정수 기반 데이터일 수도 있는 오프셋 예측 비디오 블록) 를 생성하면, 비디오 인코더 (50) 는 코딩된 원래의 비디오 블록으로부터 오프셋 예측 데이터를 감산함으로써 잔류 비디오 블록을 형성한다. 가산기 (48) 는 이러한 감산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 변환 유닛 (38) 은 이산 코사인 변환 (DCT) 과 같은 변환 또는 개념적으로 유사한 변환을 잔류 블록에 적용하여, 잔류 변환 블록 계수를 포함하는 비디오 블록을 생성한다. 예를 들어, 변환 유닛 (38) 은 DCT 와 개념적으로 유사한 H.264 표준에 정의된 바와 같은 다른 변환을 수행할 수도 있다. 웨이브렛 변환, 정수 변환, 서브-대역 변환 또는 다른 타입의 변환이 또한 사용될 수 있다. 어느 경우에서나, 변환 유닛 (38) 은 변환을 잔류 블록에 적용하여, 잔류 변환 계수의 블록을 생성한다. 변환은 잔류 정보를 픽셀 도메인으로부터 주파수 도메인으로 컨버팅할 수도 있다.
양자화 유닛 (40) 은 비트 레이트를 더 감소시키기 위해 잔류 변환 계수를 양자화한다. 양자화 프로세스는 계수 중 일부 또는 전부와 관련된 비트 깊이를 감소시킬 수도 있다. 예를 들어, 16 비트 값이 양자화 동안 15 비트 값으로 내림될 수도 있다. 또한, 양자화 유닛 (40) 은 본 개시물의 기술을 사용하여 상이한 오프셋을 또한 양자화하여, 원하는 수의 비트를 상이한 오프셋의 각각의 정수 및 분수부에 할당할 수도 있다. 특히, 양자화 유닛 (40) 은 오프셋 값 각각에 대해, 제 1 수의 비트를 소정의 오프셋 값의 정수부에 할당할 수도 있으며, 제 2 수의 비트를 소정의 오프셋 값의 분수부에 할당할 수도 있고, 여기서, 제 1 및 제 2 수의 비트는 정수부의 크기에 기초하여 결정된다. 엔트로피 코딩 유닛 (46) 은 제 2 수의 비트와는 상이하게 제 1 수의 비트를 인코딩할 수도 있다.
양자화에 후속하여, 엔트로피 코딩 유닛 (46) 이 양자화된 변환 계수를 엔트로피 코딩한다. 예를 들어, 엔트로피 코딩 유닛 (46) 은 컨텐츠 적응형 가변 길이 코딩 (CAVLC), 컨텍스트 적응형 이진 산술 코딩 (CABAC), 또는 다른 엔트로피 코딩 방법을 수행할 수도 있다. 엔트로피 코딩 유닛 (46) 에 의한 엔트로피 코딩에 후속하여, 인코딩된 비디오가 다른 디바이스로 송신될 수도 있거나 나중의 송신 또는 검색을 위해 보관될 수도 있다. 코딩된 비트스트림은 엔트로피 코딩된 잔류 블록, 이러한 블록에 대한 모션 벡터, 및 코딩된 단위내의 상이한 정수 및 서브-정수 픽셀 위치에서 복수의 상이한 오프셋을 식별하는 오프셋 값을 포함하는 다른 신택스를 포함할 수도 있다.
인버스 양자화 유닛 (42) 및 인버스 변환 유닛 (44) 은, 예를 들어, 레퍼런스 블록을 나중에 사용하기 위해 픽셀 도메인에서 잔류 블록을 재구성하도록 인버스 양자화 및 인버스 변환을 각각 적용한다. 합산기 (51) 는 재구성된 잔류 블록을 모션 보상 유닛 (35) 에 의해 생성된 모션 보상된 예측 블록에 가산하여 레퍼런스 프레임 저장부 (34) 에서의 저장을 위해 재구성된 비디오 블록을 생성한다. 재구성된 비디오 블록은 후속 비디오 프레임에서 블록을 인터-인코딩하기 위해 레퍼런스 블록으로서 모션 추정 유닛 (32) 및 모션 보상 유닛 (35) 에 의해 사용될 수도 있다.
도 3 은 여기에 설명한 방식으로 인코딩되는 비디오 시퀀스를 디코딩하는 비디오 디코더 (60) 의 예를 예시하는 블록도이다. 비디오 디코더 (60) 는 디코딩 동안 본 개시물의 오프셋 기술을 수행하는 모션 보상 유닛 (55) 을 포함한다. 특히, 디코딩측에서, 모션 보상 유닛 (55) 은 코딩된 단위에 대한 복수의 오프셋 값을 식별하는, 예를 들어, 정수 픽셀 위치 및 하나 이상의 비정수 픽셀 위치에 대한 상이한 오프셋을 정의하는 엔트로피 디코딩 유닛 (52) 으로부터 신택스 엘리먼트를 수신할 수도 있다. 모션 보상 유닛 (55) 은 엔트로피 디코딩 유닛 (52) 으로부터 수신된 모션 벡터에 기초하여 예측 데이터를 생성할 수도 있고, (예측 데이터의 픽셀 위치에 기초하여) 이러한 예측 데이터에 적절한 오프셋을 가산하여 오프셋 예측 데이터를 생성할 수도 있다. 예측 데이터는 보간된 데이터일 수도 있고, 어느 경우에서는, 비정수 위치에 대한 오프셋 값 중 대응하는 하나가 오프셋 예측 데이터를 생성하기 위해 예측 데이터에 적용될 수도 있다. 이러한 오프셋 예측 데이터에 기초하여, 비디오 데이터 (예를 들어, 재구성된 잔류 비디오 블록) 가 디코딩될 수 있다. 특히, 디코더는 오프셋 예측 데이터를 잔류 비디오 블록과 결합하여 인코딩되는 원래의 비디오 블록을 생성할 수도 있다.
엔트로피 디코딩 유닛 (52) 은 수신된 비트스트림을 엔트로피 디코딩하여 양자화된 계수 및 신택스 (예를 들어, 코딩된 단위에 대한 복수의 오프셋 값 및 모션 벡터) 를 생성한다. 신택스는 엔트로피 코딩 유닛 (52) 으로부터 모션 보상 유닛 (55) 으로 포워딩된다. 인버스 양자화 유닛 (56) 은 양자화된 블록 계수를 인버스 양자화, 즉, 역-양자화한다. 인버스 양자화 프로세스는 H.264 디코딩함으로써 정의된 바와 같은 종래의 프로세스일 수도 있다. 인버스 변환 유닛 (58) 은 픽셀 도메인에서 잔류 블록을 생성하기 위해 인버스 변환, 예를 들어, 인버스 DCT 또는 개념적으로 유사한 인버스 변환 프로세스를 변환 계수에 적용한다. 모션 보상 유닛 (55) 은 가능하게는, 신택스에 포함될 수도 있는 보간 필터 계수의 하나 이상의 세트에 기초하여 보간을 수행하는 모션 보상된 블록을 생성한다. 모션 보상 유닛 (55) 이 모션 벡터에 기초하여 예측 블록을 생성하면, 각 예측 블록에 대한 적절한 오프셋이 예측 블록에 가산되어, 인코더에 의해 수행된 원래의 인코딩에서 사용되는 오프셋 예측 블록을 생성할 수 있다.
합산기 (64) 는 잔류 블록을 모션 보상 유닛 (55) 에 의해 생성된 대응하는 오프셋 예측 블록과 합산함으로써 잔류 블록을 디코딩하여 디코딩된 블록을 형성한다. 원하면, 디블록킹 필터가 블록화 인공물을 제거하기 위해 디코딩된 블록을 필터링하도록 또한 적용될 수도 있다. 그 후, 디코딩된 비디오 블록은 후속 모션 보상에 대한 레퍼런스 블록을 제공하고 (도 1 의 디바이스 (28) 와 같은) 구동 디스플레이 디바이스에 대한 디코딩된 비디오를 또한 생성하는 레퍼런스 프레임 저장부 (62) 에 저장된다.
다시, 본 개시물의 기술은, 상이한 오프셋이 보간에 의해 정의된 정수 및 상이한 서브-정수 픽셀 위치에 대해 사용되는 모션 보상된 예측 데이터에 대한 오프셋의 적용에 관한 것이다. 인코더는 상이한 오프셋 값을 정의하고 적용하기 위해 본 개시물의 기술을 사용하며, 디코더는 인코더에 의해 정의되고 사용된 동일한 오프셋 값을 식별하기 위해 인코더로부터 전송된 신택스 엘리먼트를 해석한다. 적절한 오프셋이 예측 데이터의 픽셀 값에 적용되며, 적절한 오프셋은 이러한 예측 데이터에 대한 정의된 픽셀 위치, 예를 들어, 정수 픽셀 위치 또는 수 개의 가능한 비정수 픽셀 위치 중 하나에 기초하여 선택된다.
도 4 는 예측 데이터와 관련된 정수 픽셀 위치, 및 보간된 예측 데이터와 관련된 서브-정수 픽셀 위치를 예시하는 개념도이다. 도 4 의 개념적인 예시에서, 상이한 박스가 픽셀을 표현한다. (실선을 갖는 박스에서의) 대문자는 정수 픽셀 위치를 나타내고, (점선을 갖는 박스에서의) 소문자는 서브-정수 보간된 픽셀 위치를 나타낸다. 픽셀 위치 "aa", "bb", "cc", "dd", "ee", "ff", "gg", "hh", "ii", 및 "jj" 는 픽셀 위치 "C3" 과 관련된 다양한 분수 위치의 분수 보간에서 사용된 하프-픽셀 위치이다. 각 픽셀은 비디오 블록의 상부 우측 픽셀에 대응할 수도 있어서, 그 픽셀은 비디오 블록을 정의한다. 보간 또는 외삽을 위해, 비디오 블록의 픽셀 각각은 각각의 서브-정수 픽셀로부터 동일한 공간적 거리를 갖는 상이한 정수 픽셀에 관하여 동일한 방식으로 보간 또는 외삽된다.
모든 픽셀 위치는 관련된 15개의 상이한 분수 ("서브-정수") 위치를 갖는다. 도 4 의 예에서, 픽셀 "C3" 과 관련된 이들 15개의 상이한 분수 위치가 서브-정수 픽셀 위치 "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n" 및 "o" 로서 예시된다. 유사하게는, 픽셀 "E5" 와 관련된 15개의 상이한 분수 위치가 서브-정수 픽셀 위치 "a'", "b'", "c'", "d'", "e'", "f'", "g'", "h'", "i'", "j'", "k'", "l'", "m'", "n'" 및 "o'" 으로서 예시된다. 대부분의 다른 분수 위치는 (픽셀 "C3" 과 관련된 15개의 상이한 분수 위치 중 하나 이상의 생성하기 위해 사용되는 상기 언급한 것을 제외하고는) 단순화를 위해 도시하지 않았다.
ITU H.264/AVC 표준에서, 예를 들어, 하프-픽셀 포지션에서 루마 신호를 획득하기 위해, 계수 [1, -5, 20, 20, -5, 1] 을 갖는 6-탭 위너 (Wiener) 필터가 통상적으로 사용된다. 그 후, 쿼터-픽셀 위치에서 루마 신호를 획득하기 위해, 쌍일차 (bilinear) 필터가 사용된다. 쌍일차 필터는 또한 H.264/AVC 에서 1/8-픽셀 정밀도까지 가질 수도 있는 크로마 컴포넌트에 대한 분수 픽셀 보간에서 사용될 수도 있다.
모션 추정 이후에, 소정의 비디오 블록에 대한 최상의 모션 벡터가 예를 들어, 가능하게는, 코딩 레이트 및 품질을 밸런싱하기 위해 레이트-왜곡 모델을 사용하여 식별될 수도 있다. 그 후, 예측 비디오 블록은 최상의 모션 벡터를 사용하여 모션 보상 동안 형성된다. 상기 약술한 바와 같이, 잔류 비디오 블록은 원래의 비디오 블록으로부터 예측 비디오 블록을 감산함으로써 형성된다. 그 후, 변환이 잔류 블록에 대해 적용되며, 변환 계수가 양자화되고 엔트로피 코딩되어 비트 레이트를 더 감소시킨다.
그러나, 잔류 블록을 생성하기 위해 예측 비디오 블록을 사용하기 보다는, 본 개시물의 기술은 예측 비디오 블록에 오프셋을 가산한다. 또한, 이 오프셋은 상이한 오프셋이 상이한 정수 및 서브-정수 픽셀 위치에 대해 정의된다는 점에서 위치 특정일 수도 있다. 픽셀 "b" 및 "b'" 에 의해 식별된 비디오 블록과 관련된 오프셋은, 이들 2개의 픽셀이 정수 픽셀 C3 및 E5 에 관하여 동일한 서브-정수 픽셀 위치를 정의하기 때문에 동일할 수도 있다. 그러나, 픽셀 "c" 및 "d'" 에 의해 식별된 비디오 블록과 관련된 오프셋은, 픽셀 "c" 및 "d'" 가 정수 픽셀 C3 및 E5 에 관하여 상이한 서브-정수 픽셀을 정의하기 때문에 상이할 수도 있다. 16개의 상이한 픽셀 위치 "C3", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n" 및 "o" 각각은 상이한 오프셋을 정의할 수도 있다. 또한, 이들 상이한 오프셋은 16개의 상이한 픽셀 위치 "E5", "a", "b'", "c'", "d'", "e'", "f'", "g'", "h'", "i'", "j'", "k'", "l'", "m'", "n'" 및 "o'" 각각에 또한 적용할 수도 있다. 오프셋은 예측 블록의 모든 픽셀 값을 상향 또는 하향으로 본질적으로 바이어스하여 오프셋 예측 블록을 생성하는 부호값을 정의할 수도 있다. 오프셋 값은, 이들이 각각의 샘플 위치에서 예측 코딩을 위해 사용된 모든 대응하는 예측 픽셀의 평균에 대한 특정한 샘플 위치 (정수 또는 특정한 서브-정수 위치) 에 기초하여 예측된 코딩된 단위의 모든 픽셀의 평균에 대한 특정한 샘플 위치 (정수 또는 특정한 서브-정수 위치) 에 기초하여 예측된 코딩된 단위의 모든 픽셀의 평균 차이를 포함하기 때문에 DC 오프셋으로 칭할 수도 있다.
다시, 도 4 는 대문자를 갖는 솔리드 박스에서 정수-픽셀 샘플 (또한 풀-픽셀이라 칭함) 을 도시한다. 임의의 소정의 정수-픽셀 샘플에 대해, 도 4 에서 정수-픽셀 샘플 "C3" 에 대해 도시되며 "a" 내지 "o" 로 라벨링된 15개의 서브-픽셀 포지션이 존재한다. H.264/AVC 에 따르면, 모션 보상 유닛 (35) 은 1-차원 6-탭 위너 필터를 먼저 사용하여 하프-픽셀 위치 "b", "h", 및 "j" 를 계산할 수도 있다. 보간 필터는 수평 방향에 먼저 적용되고, 그 후, 수직 방향에 적용될 수도 있으며, 그 반대도 가능하다. 그 후, 모션 보상 유닛 (35) 은 쌍일차 필터 및 이미 계산된 하프-픽셀 샘플을 사용하여 나머지 쿼터 픽셀 포지션을 필터링할 수도 있다.
보간된 데이터를 생성하기 위해 적용된 실제 필터는 광범위한 구현에 종속될 수도 있다. 일 예로서, 모션 보상 유닛 (35) 은 보간된 값을 정의하기 위해 적응형 보간 필터링을 사용할 수도 있다. 다른 예에서, 보간 필터의 수 개의 세트가 적용될 수도 있으며, 최상을 예측 데이터를 산출하는 세트가 선택될 수도 있다. 본 개시물에 따른 오프셋의 가산은, 코딩에서 사용된 임의의 보간된 예측 데이터를 생성한 이후에 발생한다.
ITU-T SG16/Q.6/VCEG (Video Coding Expert Group) 위원회는 H.264/AVC 보다 높은 코딩 효율을 제공하는 코딩 기술을 연구하였다. 이러한 연구는 Key Technology Areas (KTA) 포럼에서 행해진 작업을 포함한다. KTA 에 채용된 코딩 툴 중 하나를 적용형 보간 필터 (AIF) 라 칭한다. AIF 는 특히, 높은 해상도 (예를 들어, 720p) 를 갖는 비디오 시퀀스에 대해 H.264/AVC 보다 많은 코딩 이득을 제공한다. AIF 에서, 각 서브-픽셀 포지션에 대한 보간 필터는 예측 에러 에너지를 최소화함으로써 각 비디오 프레임에 대해 분석적으로 계산된다. 그 후, 각 프레임에 대한 분석적으로 유도된 적응형 필터 계수가 예측되고, 양자화되고, 코딩되며, 비디오스트림에서 전송된다. 본 개시물의 오프셋 기술은 다수의 다른 보간 방식 뿐만 아니라 AIF 방식내에서 작용할 수 있다.
개의 상이한 타입의 AIF 방식이 KTA 에 채용되었다. 제 1 방식은 2 차원 분리불가능 AIF (NS-AIF) 이고, 제 2 방식은 분리가능 AIF (S-AIF) 이며, 제 3 방식은 방향성 필터를 갖는 AIF (DAIF) 이다. 그러나, 3개의 AIF 방식 모두는 일 예로서 분리불가능한 AIF 를 사용하여 후술되는 필터 계수를 유도하기 위해 동일한 분석적 프로세스를 사용한다.
6×6 2차원 분리불가능 필터가 계수
Figure pct00001
를 갖는다고 가정하고, 여기서, i,j = 0...5 이며, SP 는 도 4 에 도시된 15개의 서브-픽셀 포지션 (a 내지 o) 중 하나를 나타낸다. 15개의 서브-픽셀 포지션 중 6개 ("a", "b", "c", "d", "h", 및 "l") 는 1 차원 서브-픽셀 포지션이고, 모션 보상 유닛 (35) 은 이러한 데이터를 보간하기 위해 6-탭 필터를 사용할 수도 있다. 또한, 레퍼런스 프레임에서 정수-픽셀 포지션 (도 4 에서 A1 내지 F6) 에서의 예측 픽셀은
Figure pct00002
의 값을 취하고, 여기서, i,j = 0...5 이다. 즉, A1 은
Figure pct00003
의 값을 취하고, ..., A6 은
Figure pct00004
의 값을 취하고, ..., F1 은
Figure pct00005
의 값을 취하고, ..., 그리고 F6 은
Figure pct00006
의 값을 취한다. 그 후, 서브-픽셀 포지션 SP (
Figure pct00007
) 에서의 보간된 값 는 아래의 식을 사용하여 모션 보상 유닛 (35) 에 의해 계산될 수도 있다.
Figure pct00009
Figure pct00010
를 포지션 (x,y) 에서의 현재의 비디오 프레임의 픽셀 값으로 한다.
Figure pct00011
여기서,
Figure pct00012
는 모션 벡터이고,
Figure pct00013
는 모션 벡터의 정수 컴포넌트이며, FO 는 필터 오프셋이다. 예를 들어, 6-탭 필터의 경우에서, FO = 6/2 -1 = 2 이다. 각 서브-픽셀 포지션 SP 에 대해, 현재의 프레임에서의 실제 픽셀 값과 보간된 값 사이의 예측 에러 에너지
Figure pct00014
는 서브-픽셀 포지션 SP 에 대응하는 모션 벡터 정밀도를 갖는 모든 픽셀에 대해 모션 보상 유닛 (35) 에 의해 누산될 수 있다. 예측 에러 에너지
Figure pct00015
는 아래의 식을 사용하여 모션 보상 유닛 (35) 에 의해 계산될 수도 있다.
Figure pct00016
서브-픽셀 포지션 ("a" ... "o") 각각에 대해, 모션 보상 유닛 (35) 은 필터 계수
Figure pct00017
에 대하여
Figure pct00018
의 도함수를 계산함으로써 식들의 개별 세트를 설정할 수도 있다. 이러한 경우에서, 식의 수는 현재의 서브-픽셀 포지션 (SP) 에 대해 사용된 필터 계수의 수와 동일하다. 6×6 - 탭 2 차원 필터를 사용하는 각 2 차원 서브-픽셀 포지션 "e", "f", "g", "i", "j", "k", "m", "n", 및 "o" 에 대해, 36개의 미지수를 갖는 36개 식의 시스템이 모션 보상 유닛 (35) 에 의해 해결될 수 있다. 오직 1 차원 필터만을 요구할 수도 있는 나머지 서브-픽셀 포지션 "a", "b", "c", "d", "h", 및 "l" 에 대해, 6개 식의 시스템이 모션 보상 유닛 (35) 에 의해 해결될 수 있다.
Figure pct00019
요약하면, AIF 필터를 유도하고 적용하는 하나의 예시적인 프로세스는 모션 보상 유닛 (35) 에 의해 수행될 수 있는 다음의 단계를 가질 수도 있다.
1. 모션 벡터
Figure pct00020
가 코딩될 모든 비디오 프레임에 대해 추정될 수도 있다. 모션 추정 동안, 고정된 보간 필터 (예를 들어, H.264/AVC 의 보간 프로세스) 가 적용될 수 있다.
2. 이들 모션 벡터를 사용하여, 각 서브-픽셀 포지션 (SP) 에 대한 예측 에러 에너지가 현재의 비디오 프레임에 걸쳐 누산될 수도 있다. 그 후, 적응형 필터 계수
Figure pct00021
가 상기 2개의 예측 에너지 식에서와 같이 예측 에러 에너지를 최소화함으로써 각 서브-픽셀 포지션 (SP) 에 대해 독립적으로 계산될 수 있다.
3. 그 후, 새로운 모션 벡터가 추정될 수 있다. 이러한 모션 추정 프로세스 동안, 단계 2 에서 계산된 적응형 보간 필터가 적용될 수도 있다. 이 적응형 보간 필터를 사용하여, 얼라이어싱, 카메라 잡음 등에 의해 야기된 모션 추정 에러가 감소되고 더 양호한 모션 예측이 달성된다.
모든 3개의 기존의 AIF 방식은 상기 제공된 바와 동일한 분석적 프로세스를 사용한다. 이들 방식들 간의 차이는 대부분, 사용된 고유 필터 계수의 수, 보간 필터가 분리가능한지 여부, 및 어떤 필터 지원 (즉, 보간하기 위해 사용된 정수 픽셀 포지션) 이 사용되는지에 있다. 이들 방식 각각에서, AIF 필터에 대한 특정한 대칭 제약이 비디오 비트스트림에서 전송될 필요가 있는 필터 계수의 수를 감소시키기 위해 부과된다.
H.264/AVC 에 따르면, 모션 보상 유닛 (35) 은 중간 반올림 연산으로 보간을 수행한다. 이러한 경우에서, 하프-픽셀 포지션 ("b", "h", 및 "j") 은 이들이 쿼터-픽셀 포지션을 획득하기 위해 사용되기 이전에 필터링되고 반올림된다. 또한, 쿼터-픽셀 값을 획득하기 위해 사용되는 쌍일차 필터링 동안, 상향 반올림이 모션 보간 유닛 (35) 에 의해 사용될 수도 있다 (즉, (a+b+1)>>1 이 종래의 쌍일차 필터에서 사용될 수도 있다). 보간 동안의 모션 보상 유닛 (35) 에 의한 이러한 빈번하고 편중된 반올림 연산은 보간 필터의 정밀도를 감소시킬 수도 있다. 특히, 시뮬레이션은, H.264/AVC 에서 사용된 쌍일차 필터 및 6-탭 위너 필터로부터 직접 유도된 더 높은 정밀도의 보간 필터가, 특히 720p 시퀀스와 같은 고화질 비디오 시퀀스에 대해 H.264/AVC 이상의 상당한 이득을 제공한다는 것을 나타내었다. AIF 방식 (NS-AIF, S-AIF, 및 DAIF) 에 의해 달성된 이득의 상당한 부분은, 이들 AIF 방식이 H.264/AVC 보다 높은 정밀도 필터를 사용한다는 사실로부터 온다.
일부 경우에서, 적응형 보간 필터링을 사용하기 보다는, 모션 보상 유닛 (35) 은 오프셋을 가진 상대적으로 단순한 스위칭된 보간 필터 (SIFO) 를 사용할 수도 있다. 이러한 경우에서, 인코더측에서 매우 고가의 프로세스인 각 프레임에 대한 필터 계수를 적응적으로 유도하는 대신에, 모션 보상 유닛 (35) 은 예를 들어, 보간 필터 계수의 복수의 상이한 사전 정의된 세트에 의해 각각 정의될 수도 있는 복수의 고정 필터 사이에서 선택할 수도 있다. 보간 필터의 선택은, 각 코딩된 단위 레벨 (예를 들어, 프레임 레벨 또는 슬라이스 레벨) 또는 각 서브-픽셀 위치 (샘플 레벨) 에 대해 행해질 수도 있다. 또한, 본 개시물에 따르면, DC 오프셋이 또한 예측 이후에 가산될 수도 있으며, DC 오프셋은 또한 여기에 설명한 바와 같은 각 가능한 정수 또는 분수 픽셀 위치에 대해 정의될 수도 있다.
따라서, 모션 보상 유닛 (35) 은 보간 데이터의 수 개의 가능한 대안을 정의하기 위해 고정 필터의 상이한 세트를 사용할 수도 있다. 예로서, 모션 보상 유닛 (35) 은 표준 ITU-T H.264 필터 세트, H.264/AVC 에 기초하지만 더 높은 정밀도를 갖는 (1/2 픽셀 포지션에 대해 중간 반올림 및 1/4 픽셀 포지션에 대한 편중된 반올림이 없는) 필터 세트, 또는 커스터마이징된 보간 필터의 세트를 사용할 수도 있다. 커스터마이징된 보간 필터의 세트는 트레이닝 비디오 시퀀스의 세트를 사용함으로써 사전 정의될 수도 있다. 예를 들어, 예측 에러 에너지를 최소화하는 적응형 필터는 트레이닝 비디오 세트에 AIF 방식에서 사용된 분석 프로세스를 적용하는 모션 보상 유닛 (35) 에 의해 유도될 수도 있다. 그 후, 각 서브-픽셀 포지션에 대한 평균 필터는 커스터마이징된 보간 필터로서 계산되고 사용될 수도 있다. 그 후, 특정한 서브-픽셀 포지션에 대한 평균 필터가 정상화될 수도 있어서, 모든 필터 계수가 1.0 까지 가산된다. 그 후, 평균 필터는 또한 특정한 고정-포인트 정밀도 (예를 들어, 13-비트 정밀도) 로 양자화될 수도 있다.
필터 계수에서 고정-포인트 정밀도를 가짐으로써, 상이한 플랫폼에 걸친 편차가 제거되거나 회피될 수 있다. 이러한 경우에서, 실제의 고정-포인트 구현은 여기에 설명한 임의의 방식에서 획득된 필터 계수로부터 유도될 수도 있다. 커스터마이징된 필터는 상이한 특징을 가질 수도 있다. 구체적으로는, 커스터마이징된 필터는 분리불가능한 필터 또는 분리가능한 필터일 수도 있으며, 이들은 상이한 필터 사이즈 (예를 들어, 6×6, 4×4 또는 다른 사이즈) 를 가질 수도 있다.
최상의 예측 (예를 들어, 가장 작은 예측 에러 에너지) 을 오프셋하는 필터 세트가 모션 보상 유닛 (35) 에 의해 선택될 수 있으며, 보간된 데이터를 생성하기 위해 적용될 수도 있다. 다중 레퍼런스 프레임이 사용될 때, 상이한 필터 세트가 상이한 레퍼런스 프레임에 대해 선택될 수도 있다. 일 예에서, 모션 보상 유닛 (35) 은 1/2-픽셀 포지션 (포지션 b, h 및 l) 에 대해 표준 필터를 적용할 수도 있으며, 모션 보상 유닛 (35) 은 다른 1/4-픽셀 포지션에 대해 커스터마이징된 필터 세트를 적용할 수도 있다.
수행된 보간의 타입 또는 사용된 보간 필터에 관계없이, 예측 데이터가 모션 보상 유닛 (35) 에 의해 생성되거나 보간되면, DC 오프셋은 보간된 (또는 비보간된) 데이터와 관련된 샘플 위치에 기초하여 예측 데이터에 적용될 수 있다. 특히, 본 개시물은 상이한 정수 또는 서브-정수 픽셀 위치에 대한 상이한 DC 오프셋의 사용을 제공한다. 다시, 도 4 에 도시된 예시적인 데이터에서, 이것은, 16개의 상이한 픽셀 위치 "C3", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n" 및 "o" 각각이 자체적으로 상이한 오프셋을 정의할 수도 있다는 것을 의미한다. 여기서, 16개의 가능한 정수 및 서브-정수 위치에 대해, 16개의 상이한 오프셋이 존재할 수도 있다. 또한, 이들 상이한 오프셋은 16개의 상이한 픽셀 위치 "E5", "a", "b'", "c'", "d'", "e'", "f'", "g'", "h'", "i'", "j'", "k'", "l'", "m'", "n'" 및 "o'" 각각에 또한 적용할 수도 있다.
예측 데이터의 픽셀에 DC 오프셋을 가산하는 것은, 상이한 비디오 프레임 사이에서 조명 변화의 효과를 캡처하는 것을 도울 수 있다. 조명 변화는 비디오 시퀀스에서 플래시 또는 어두운 하늘과 같은 것에 의해 야기될 수도 있다. H.264/AVC 는 오프셋이 예측 픽셀 값에 가산되는 것을 허용할 수도 있는 가중 예측을 사용한다. 그러나, H.264/AVC 가중 예측에 의해 정의된 DC 오프셋은 프레임 레벨에 대해서만 허용될 수도 있고, 이것은 오직 하나의 오프셋 값이 비디오 블록의 예측 데이터가 보간되는지 여부에 관계없이 소정의 프레임에 대해 정의된다는 것을 의미한다.
이러한 개시물에 따르면, DC 오프셋은 보간 및 비보간 데이터와 관련된 상이한 샘플 포지션에 대해 상이하게 정의될 수도 있다. 따라서, 상이한 DC 오프셋은 도 4 에 도시된 15개의 서브-픽셀 포지션 ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n" 및 "o") 각각에 대해 정의될 수도 있으며, 다른 DC 오프셋인 정수-픽셀 위치에 대해 정의될 수도 있다. 샘플-기반 DC 오프셋이 사용될 때, 총 16개의 오프셋은 비디오스트림에서 코딩되고 전송될 수도 있다. 샘플-기반 DC 오프셋을 적용함으로써, 모션 보상 유닛 (35) 은 단순하지만 효과적인 모션 세그먼테이션 툴을 제공할 수도 있다. 예를 들어, 정지 배경으로서 어두운 하늘 및 전경으로서 움직이는 물체를 포함하는 비디오 프레임을 취한다. 이러한 경우에서, 배경 및 전경은 상이한 정도의 조명 변화를 가질 수도 있으며, 소정의 비디오 블록을 식별하는 픽셀의 위치에 의해 식별된 위치-특정 DC 오프셋 값을 사용함으로써, 모션 보상 유닛 (35) 은 이러한 위치-특정 DC 오프셋 값을 사용하지 않고 달성될 수 있는 것 보다 더욱 효율적인 방식으로 전경 및 배경에서 상이한 조명 변화의 정도를 캡처할 수도 있다.
또한, 코딩된 단위의 비디오 블록이 예를 들어, 양방향 예측을 위해 다중의 상이한 레퍼런스 프레임을 사용할 때, 상이한 DC 오프셋이 상이한 레퍼런스 프레임과 관련된 각 정수 및 서브-정수 위치에 대해 계산되고 전송될 수도 있다. 일부 경우에서, 일부 레퍼런스 프레임은 단일 프레임 기반 DC 오프셋을 포함할 수도 있지만, 다른 레퍼런스 프레임은 수 개의 위치-특정 DC 오프셋을 가질 수도 있다. 일부 방식은 코딩되는 현재의 프레임에 대한 시간적 거리가 가장 근접한 레퍼런스 프레임에 대해서만 위치-측정 DC 오프셋을 사용할 수도 있으며, 모든 다른 레퍼런스 프레임은 단일 프레임-기반 DC 오프셋을 사용할 수도 있다.
DC 오프셋을 코딩하기 위해, 프레임 당 1 비트가, 단일 프레임-기반 DC 오프셋이 사용되었는지 또는 수 개의 위치-특정 DC 오프셋이 사용되었는지를 나타내기 위해 사용될 수도 있다. DC 오프셋이 오직 정수 정밀도만을 가지면, 이들 오프셋의 값은 부호 지수-골롬 (exponential-Golomb) 코드를 사용하여 코딩될 수도 있다. DC 오프셋이 분수 정밀도를 가지면, 정수 오프셋의 값은 부호 지수-골롬 코드를 사용하여 코딩될 수도 있으며, 비정수 오프셋의 값은 부호 지수-골롬 코드에 의해 정의된 정수 오프셋에 대한 잔류 차이를 사용하여 코딩될 수도 있다.
예를 들어, 오프셋의 코딩은 정수 오프셋을 먼저 코딩한 후 각 분수 오프셋을 코딩함으로써 행해질 수도 있다. 이러한 경우에서, 정수 오프셋 및 분수 오프셋은 상이하게 코딩된다. 정수 오프셋은 부호 지수-골롬 코드를 사용하여 코딩될 수도 있다. 정수 오프셋의 크기에 의존하여, 분수 오프셋은 정수 오프셋과 상이하게 양자화될 수도 있다. 예를 들어, 양자화의 더 코오스한 (coarser) 레벨이 정수 오프셋이 큰 크기를 가질 때 분수 오프셋에 적용될 수도 있다. 양자화 이후에, 분수 오프셋은 고정된 길이 코드를 사용하여 코딩될 수도 있다. 예로서, 다음의 의사-코드는, 소정의 분수 오프셋이 정수 오프셋 값에 기초하여 정의된 상이한 고정된 길이 코드를 사용하여 어떻게 코딩될 수도 있는지를 예시할 수도 있다.
Figure pct00022
을 정수 오프셋으로 하고,
Figure pct00023
을 분수 오프셋으로 하고,
Figure pct00024
Figure pct00025
을 양자화하는데 사용된 비트들의 수로 하며,
Figure pct00026
을 a 의 절대값으로 한다.
Figure pct00027
이러한 경우에서, 비디오 인코더는 오프셋 값 각각에 대해, 정수 부분의 소정의 오프셋 값에 제 1 수의 비트를 할당하고, 소정의 오프셋 값의 분수 부분에 제 2 수의 비트를 할당하는 양자화 유닛 (예를 들어, 비디오 인코더 (50) 의 유닛 (40)) 을 포함할 수도 있고, 여기서, 제 1 및 제 2 수의 비트는 정수 부분의 크기에 기초하여 결정된다. 이러한 경우에서, 오프셋 값은 모션 보상 유닛 (35) 으로부터 양자화 유닛 (40) 으로 포워딩될 수도 있으며, 양자화 유닛 (40) 은 상기 의사-코드에 일치하는 양자화를 적용할 수도 있다. 어느 경우에서나, 비디오 인코더 (50) 는 제 2 수의 비트와는 상이하게 제 1 수의 비트를 인코딩할 수도 있다.
일반적으로, 수 개의 위치-특정 DC 오프셋이 다음과 같이 계산될 수도 있다.
1. 모션 벡터가 코딩될 비디오 프레임의 모든 비디오 블록에 대해 추정된다.
2. 각 픽셀 및 서브-픽셀 포지션에 대해, 그 포지션에 대한 DC 오프셋은 그 픽셀 포지션 또는 서브-픽셀 포지션에 대응하는 모션 벡터 정밀도를 갖는 현재의 프레임에서의 모든 픽셀의 평균과, 각각의 픽셀 포지션 또는 서브-픽셀 포지션에 대한 현재의 프레임에서의 픽셀을 코딩하기 위해 사용된 보간 값의 평균 사이의 차이로서 계산될 수 있다.
단일 프레임-기반 DC 오프셋이 일부 프레임에 대해 사용되면, 프레임 레벨 DC 오프셋의 계산은 유사할 수도 있다. 이러한 경우에서, 프레임-레벨 DC 오프셋은 인터-예측되는 현재의 프레임에서의 모든 픽셀의 평균과 이들 픽셀을 예측하기 위해 사용된 보간 값의 평균 사이의 차이로서 정의될 수도 있다.
상기한 바와 같이, DC 오프셋 값은 각 코딩된 단위에 대한 비트스트림의 일부로서 코딩될 수도 있다. 따라서, 디코더 측에서, 디코더는 적절한 DC 오프셋 값을 임의의 생성된 예측 비디오 블록의 픽셀에 단순히 적용한다. 디코더에 의해 사용된 DC 오프셋 값은 각 예측 비디오 블록과 관련된 특정 정수 또는 서브-정수 픽셀 위치에 대한 신택스에서 정의될 수도 있다. 예를 들어, 코딩된 단위의 헤더 파일과 같은 신택스 엘리먼트는 그 코딩된 단위에 대한 복수의 오프셋 값 각각을 특정하기 위해 플래그 또는 값을 포함할 수도 있다. 용어 "오프셋" 및 "DC 오프셋" 은 본 개시물에서 상호교환가능하게 사용된다. 오프셋은 전체 오프셋이 각 동일한 각각의 픽셀 위치에 대해 정의되는 한은 DC 오프셋을 칭하고, 예를 들어, 정수 위치에 대해 1 오프셋이고 각 가능한 서브-픽셀 위치에 대해 수 개의 상이한 오프셋이다.
도 5 는 인코딩 디바이스에 의해 실행될 수도 있는 인코딩 기술을 예시하는 흐름도이다. 도 5 의 기술은 비디오 인코더 (50) (도 2) 및 소스 디바이스 (12) (도 1) 의 관점으로부터 설명될 것이다. 도 2 의 비디오 인코더 (50) 는 도 1 의 비디오 인코더 (22) 에 대응할 수도 있다.
도 5 에 도시된 바와 같이, 비디오 인코더 (50) 의 모션 보상 유닛 (35) 은 정수 및 서브-정수 픽셀 위치에 대한 비디오 데이터의 코딩된 단위에 대해 복수의 오프셋 값을 계산한다 (101). 그 후, 모션 보상 유닛 (35) 은 오프셋 값을 예측 비디오 블록에 적용하여 오프셋 예측 비디오 블록을 생성하고 (102), 비디오 인코더는 예를 들어, 코딩된 비디오 블록으로부터 오프셋 예측 비디오 블록을 감산하여 잔류 비디오 블록을 생성하기 위해 가산기 (48) 를 인보크함으로써 오프셋 예측 비디오 블록에 기초하여 코딩된 단위의 비디오 블록을 인코딩한다 (103). 모션 보상 유닛 (35) 은 오프셋 값을 인코딩하는 엔트로피 코딩 유닛 (46) 에 오프셋 값을 포워딩할 수도 있다 (104). 특히, 엔트로피 코딩 유닛 (46) 은 코딩된 단위의 코딩된 비디오 블록을 포함하는 코딩된 비트스트림의 일부로서 오프셋 값을 엔트로피 인코딩할 수도 있다. 그 후, 인코딩된 비트스트림은 다른 디바이스로 송신될 수도 있다 (105). 특히, 비트스트림은 모뎀 (23) (도 1) 에 의해 변조될 수도 있으며 송신기 (24) 를 통해 수신 디바이스 (16) 로 송신될 수도 있다 (105).
상기한 바와 같이, 코딩된 단위는 비디오 프레임, 비디오 프레임의 슬라이스, 또는 비디오 블록의 다른 독립적으로 디코딩가능한 단위를 포함할 수도 있다. 오프셋 값은 정수 픽셀 위치에 대해 하나의 오프셋 값을 포함하고 상이한 서브-정수 픽셀 위치에 대해 수 개의 오프셋 값을 포함할 수도 있다. 예를 들어, 보간된 데이터에 대해 15개의 상이한 서브-정수 위치를 허용하는 ITU-T H.264 표준에 따라서, 오프셋 값은 15개의 상이한 서브-정수 픽셀 위치에 대해 15개의 상이한 오프셋 값을 유사하게 포함할 수도 있다.
상술한 바와 같이, 복수의 오프셋 값을 계산하는 것은, 각 정수 픽셀 위치 및 각 서브-픽셀 위치에서 예측 비디오 블록들에 기초하여 인코딩되는 코딩된 단위의 각각의 비디오 블록들과 관련된 제 1 세트의 메트릭들을 계산하고, 예측 비디오 블록들에 대한 각 정수 픽셀 위치 및 각 서브-정수 픽셀 위치와 관련된 제 2 세트의 메트릭들을 계산하며, 제 1 세트의 메트릭들 및 제 2 세트의 메트릭들에 기초하여 복수의 오프셋 값들을 계산하는 것을 포함한다. 제 1 세트의 메트릭은 코딩된 단위에의 비디오 블록에 대한 각 정수 및 서브-정수 위치에 대해 모션 벡터 정밀도를 갖는 픽셀과 관련된 제 1 세트의 평균값을 포함할 수도 있다. 제 2 세트의 메트릭은 각 정수 및 서브-정수 픽셀 위치에서 인코딩하는데 사용된 예측 픽셀과 관련된 제 2 세트의 평균값을 포함할 수도 있다. 복수의 오프셋 값은 제 1 세트의 평균값과 제 2 세트의 평균값 사이의 차이를 포함할 수도 있다. 도 5 의 방법은 비디오 데이터의 각 코딩된 단위에 대해 반복될 수도 있고, 어느 경우에서나, 모션 보상 유닛 (35) 은 비디오 데이터의 상이한 코딩된 단위에 대한 복수의 오프셋 값을 재계산할 수도 있다.
도 6 은 디코딩 디바이스에 의해 실행될 수도 있는 디코딩 기술을 예시하는 흐름도이다. 도 6 의 기술은 비디오 디코더 (60) (도 3) 의 관점으로부터 설명될 것이다. 도 3 의 비디오 디코더 (60) 는 도 1 의 비디오 디코더 (28) 에 대응할 수도 있다.
도 6 에 도시된 바와 같이, 모션 보상 유닛 (55) 은 상이한 정수 및 서브-정수 픽셀 위치에 대한 복수의 오프셋 값을 포함하는 코딩된 단위의 인코딩된 비디오 데이터를 수신한다 (111). 엔트로피 디코딩 유닛 (52) 은 인코딩된 비트스트림을 수신할 수도 있고 잔류 비디오 블록, 모션 벡터, 및 복수의 오프셋 값을 생성하기 위해 비트스트림을 엔트로피 디코딩할 수도 있다. 모션 보상 유닛 (55) 은 오프셋 값을 예측 비디오 블록에 적용하여 오프셋 예측 비디오 블록을 생성한다 (112). 특히, 모션 보상 유닛 (55) 은 예측 비디오 블록을 먼저 생성하기 위해 모션 벡터를 사용할 수도 있으며, 그 후 오프셋 값을 예측 비디오 블록에 적용하여 오프셋 예측 비디오 블록을 생성할 수도 있다 (112). 그 후, 비디오 디코더 (60) 는 예를 들어, 이러한 잔류 블록을 코딩하기 위해 사용된 오프셋 예측 비디오 블록에 잔류 블록을 가산하기 위해 가산기 (64) 를 인보크함으로써 오프셋 예측 비디오 블록에 기초하여 코딩된 단위의 비디오 블록을 디코딩할 수 있다 (113).
다시, 코딩된 단위는 비디오 프레임, 비디오 프레임의 슬라이스, 또는 비디오 블록의 다른 독립적으로 디코딩가능한 단위일 수도 있다. 오프셋 값은 정수 픽셀 위치에 대해 하나의 오프셋 값 및 상이한 서브-정수 픽셀 위치에 대해는 수 개의 오프셋 값을 포함할 수도 있고, 예를 들어, 정수 픽셀 위치에 대해 하나의 오프셋 값 및 15개의 상이한 서브-정수 픽셀 위치에 대해 15개의 상이한 서브-정수 픽셀 위치이다. 오프셋 값은 각각의 정수 및 서브-정수 픽셀 해상도에서 예측 비디오 블록들에 기초하여 인코딩되는 코딩된 단위의 각각의 비디오 블록들과 관련된 제 1 세트의 평균값들과 인코딩하는데 실제로 사용되는 예측 비디오 블록들에 대한 각 정수 픽셀 위치와 서브-정수 픽셀 위치와 관련된 제 2 세트의 평균값들 사이의 차이들을 포함할 수도 있다. 도 6 은 비디오 데이터의 상이한 코딩된 단위에 대해 반복될 수도 있다.
도 7 은 인코딩 디바이스에 의해 실행될 수도 있는 인코딩 기술을 예시하는 다른 흐름도이다. 도 7 의 기술은 비디오 인코더 (50) 및 소스 디바이스 (12) (도 1) 의 관점으로부터 설명될 것이다. 도 2 의 비디오 인코더 (50) 는 도 1 의 비디오 인코더 (22) 에 대응할 수도 있다. 도 7 에 도시된 바와 같이, 모션 보상 유닛 (35) 은 서브-정수 해상도에 대한 예측 블록의 보간을 포함하는 제 1 예측 코딩 패스에서의 코딩된 단위의 비디오 블록에 대한 모션 벡터를 생성한다 (121). 모션 보상 유닛 (35) 은 각 정수 및 서브-정수 픽셀 위치에 각각 기초하여 예측되는 코딩된 단위의 각각의 비디오 블록과 관련된 제 1 세트의 메트릭을 계산하고 (122), 코딩에 사용된 예측 비디오 블록의 각 정수 및 서브-정수 위치와 관련된 제 2 세트의 메트릭을 계산한다 (123).
모션 보상 유닛 (35) 은 제 1 및 제 2 세트의 메트릭에 기초하여 복수의 오프셋 값을 계산한다 (124). 제 1 및 제 2 세트의 메트릭은 평균값을 포함할 수도 있으며, 이러한 평균값 사이의 차이를 포함할 수도 있다. 어느 경우에서나, 모션 보상 유닛 (35) 은 오프셋 값을 예측 비디오 블록에 적용하여 오프셋 예측 비디오 블록을 생성한다 (125). 그 후, 비디오 인코더 (60) 가 예를 들어, 코딩되는 코딩된 단위의 비디오 블록으로부터 오프셋 예측 비디오 블록을 감산하기 위해 가산기 (48) 를 인보크함으로써 오프셋 예측 비디오 블록에 기초하여 제 2 코딩 패스에서 코딩된 단위 비디오 블록을 인코딩한다 (126). 또한, 엔트로피 코딩 유닛 (46) 이 오프셋 값을 인코딩한다 (127). 특히, 엔트로피 인코딩 유닛 (46) 은 코딩된 단위의 코딩된 비디오 블록을 포함하는 코딩된 비트스트림의 일부로서 오프셋 값을 엔트로피 인코딩할 수도 있다. 그 후, 인코딩된 비트스트림은 다른 디바이스로 송신된다 (128). 특히, 비트스트림은 모뎀 (23) (도 1) 에 의해 변조될 수도 있고 송신기 (24) 를 통해 수신 디바이스 (16) 로 송신될 수도 있다 (105).
본 개시물의 기술은 무선 핸드헬드, 및 집적 회로 (IC) 또는 IC 의 세트 (즉, 칩 세트) 를 포함하는 광범위한 디바이스 또는 장치에 포함될 수도 있다. 기능적 양태들을 강조하기 위해 제공된 임의의 컴포넌트, 모듈 또는 유닛이 설명되며, 상이한 하드웨어 유닛 등에 의한 실현을 반드시 요구하지는 않는다.
따라서, 여기에 설명하는 기술은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수도 있다. 모듈 또는 컴포넌트로서 설명된 임의의 특징들이 통합된 로직 디바이스에서 함께 또는 개별이지만 통합가능한 로직 디바이스에서 개별적으로 구현될 수도 있다. 소프트웨어에서 구현되면, 이 기술은 실행될 때 상술한 방법들 중 하나 이상을 수행하는 명령들을 포함하는 컴퓨터 판독가능한 매체에 의해 적어도 부분적으로 실현될 수도 있다. 컴퓨터 판독가능한 매체는 패키징 머터리얼을 포함할 수도 있는 컴퓨터 프로그램 제품의 일부를 형성할 수도 있다. 컴퓨터 판독가능한 매체는 동기 동적 랜덤 액세스 메모리 (SDRAM) 와 같은 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 비휘발성 랜덤 액세스 메모리 (NVRAM), 전기적으로 소거가능한 프로그램가능한 판독 전용 메모리 (EEPROM), FLASH 메모리, 자기 또는 광 데이터 저장 매체 등을 포함할 수도 있다. 추가적으로 또는 다르게는, 이 기술들은 명령들 또는 데이터 구조들의 형태로 코드를 반송하거나 통신하며, 컴퓨터에 의해 액세스될 수 있고, 판독될 수 있고/있거나 실행될 수 있는 컴퓨터 판독가능한 통신 매체에 의해 적어도 부분적으로 실현될 수도 있다.
이 코드는 하나 이상의 디지털 신호 프로세서 (DSP), 범용 마이크로프로세서, 응용 주문형 집적 회로 (ASIC), 필드 프로그램가능한 로직 어레이 (FPGA), 또는 등가의 집적 또는 개별 로직 회로와 같은 하나 이상의 프로세서에 의해 실행될 수도 있다. 따라서, 여기에서 사용되는 바와 같은 용어 "프로세서" 는 여기에 설명한 기술의 구현에 적합한 임의의 상술한 구조 또는 임의의 다른 구조를 칭할 수도 있다. 또한, 일부 양태에서, 여기에 설명한 기능은 인코딩 및 디코딩을 위해 구성된 전용 소프트웨어 모듈 또는 하드웨어 모듈내에 제공될 수도 있거나, 결합된 비디오 인코더-디코더 (CODEC) 에 통합될 수도 있다. 또한, 이 기능들은 하나 이상의 회로 또는 로직 엘리먼트에서 완전하게 구현될 수 있다.
본 개시물의 다양한 양태들을 설명하였다. 이들 및 다른 양태들은 아래의 청구범위의 범주내에 있다.

Claims (43)

  1. 비디오 데이터를 인코딩하는 방법으로서,
    상기 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값들을 계산하는 단계로서, 상기 오프셋 값들은 복수의 상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련되는, 상기 복수의 오프셋 값들을 계산하는 단계;
    상기 오프셋 값들을 예측 비디오 블록들에 적용하여 오프셋 예측 비디오 블록들을 생성하는 단계; 및
    상기 오프셋 예측 비디오 블록들에 기초하여 상기 코딩된 단위의 비디오 블록들을 인코딩하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 코딩된 단위의 상기 코딩된 비디오 블록들을 포함하는 코딩된 비트스트림의 일부로서 상기 오프셋 값들을 인코딩하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  3. 제 2 항에 있어서,
    상기 오프셋 값들을 인코딩하는 단계는, 상기 오프셋 값들 각각에 대해, 소정의 오프셋 값의 정수 부분에 제 1 수의 비트들을 할당하는 단계, 및 상기 소정의 오프셋 값의 분수 부분에 제 2 수의 비트들을 할당하는 단계를 포함하며, 상기 제 1 수의 비트들 및 상기 제 2 수의 비트들은 상기 정수 부분의 크기에 기초하여 결정되는, 비디오 데이터를 인코딩하는 방법.
  4. 제 3 항에 있어서,
    상기 제 2 수의 비트들과는 상이하게 상기 제 1 수의 비트들을 인코딩하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  5. 제 2 항에 있어서,
    상기 코딩된 비트스트림을 소스 디바이스로부터 수신 디바이스로 송신하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  6. 제 1 항에 있어서,
    상기 코딩된 단위는 비디오 프레임 및 비디오 프레임의 슬라이스 중 하나를 포함하는, 비디오 데이터를 인코딩하는 방법.
  7. 제 1 항에 있어서,
    상기 오프셋 값들은, 정수 픽셀 위치들에 대해 하나의 오프셋 값을 포함하고, 상이한 서브-정수 픽셀 위치들에 대해서는 수 개의 오프셋 값들을 포함하는, 비디오 데이터를 인코딩하는 방법.
  8. 제 7 항에 있어서,
    상기 오프셋 값들은, 15개의 상이한 서브-정수 픽셀 위치들에 대해 15개의 상이한 오프셋 값들을 포함하는, 비디오 데이터를 인코딩하는 방법.
  9. 제 1 항에 있어서,
    상기 복수의 오프셋 값들을 계산하는 단계는,
    각 정수 픽셀 위치 및 서브-픽셀 위치에서 상기 예측 비디오 블록들에 기초하여 인코딩되는 상기 코딩된 단위의 각각의 비디오 블록들과 관련된 제 1 세트의 메트릭들을 계산하는 단계;
    상기 예측 비디오 블록들에 대한 각 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련된 제 2 세트의 메트릭들을 계산하는 단계; 및
    상기 제 1 세트의 메트릭들 및 상기 제 2 세트의 메트릭들에 기초하여 상기 복수의 오프셋 값들을 계산하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  10. 제 9 항에 있어서,
    상기 제 1 세트의 메트릭들은, 각 정수 픽셀 위치 및 서브-정수 픽셀 위치에서 상기 예측 비디오 블록들에 기초하여 코딩되는 상기 코딩된 단위의 상기 각각의 비디오 블록들과 관련되는 제 1 세트의 평균값들을 포함하고,
    상기 제 2 세트의 메트릭들은, 상기 예측 비디오 블록들에 대한 각 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련된 제 2 세트의 평균값들을 포함하며,
    상기 복수의 오프셋 값들은, 상기 제 1 세트의 평균값들과 상기 제 2 세트의 평균값들 사이의 차이들을 포함하는, 비디오 데이터를 인코딩하는 방법.
  11. 제 1 항에 있어서,
    상기 비디오 데이터의 상이한 코딩된 단위들에 대한 상기 복수의 오프셋 값들을 재계산하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  12. 비디오 데이터를 디코딩하는 방법으로서,
    상기 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값들을 수신하는 단계로서, 상기 오프셋 값들은 복수의 상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련되는, 상기 복수의 오프셋 값들을 수신하는 단계;
    상기 오프셋 값들을 예측 비디오 블록들에 적용하여 오프셋 예측 비디오 블록들을 생성하는 단계; 및
    상기 오프셋 예측 비디오 블록들에 기초하여 상기 코딩된 단위의 비디오 블록들을 디코딩하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  13. 제 12 항에 있어서,
    상기 코딩된 단위는 비디오 프레임 및 비디오 프레임의 슬라이스 중 하나를 포함하는, 비디오 데이터를 디코딩하는 방법.
  14. 제 12 항에 있어서,
    상기 오프셋 값들은, 정수 픽셀 위치들에 대해 하나의 오프셋 값을 포함하고, 상이한 서브-정수 픽셀 위치들에 대해서는 수 개의 오프셋 값들을 포함하는, 비디오 데이터를 디코딩하는 방법.
  15. 제 14 항에 있어서,
    상기 오프셋 값들은, 15개의 상이한 서브-정수 픽셀 위치들에 대해 15개의 상이한 오프셋 값들을 포함하는, 비디오 데이터를 디코딩하는 방법.
  16. 제 12 항에 있어서,
    상기 오프셋 값들은, 각 정수 픽셀 위치와 서브-정수 픽셀 위치에서 상기 예측 비디오 블록들에 기초하여 인코딩된 상기 코딩된 단위의 각각의 비디오 블록들과 관련된 제 1 세트의 평균값들과 상기 예측 비디오 블록들에 대한 각 정수 픽셀 위치와 서브-정수 픽셀 위치와 관련된 제 2 세트의 평균값들 사이의 차이들을 포함하는, 비디오 데이터를 디코딩하는 방법.
  17. 제 12 항에 있어서,
    상기 방법은 상기 비디오 데이터의 상이한 코딩된 단위들에 대해 반복되는, 비디오 데이터를 디코딩하는 방법.
  18. 비디오 데이터를 인코딩하는 장치로서,
    상기 장치는 비디오 인코더를 포함하며,
    상기 비디오 인코더는,
    상기 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값들을 계산하고,
    상기 오프셋 값들을 예측 비디오 블록들에 적용하여 오프셋 예측 비디오 블록들을 생성하며,
    상기 오프셋 예측 비디오 블록에 기초하여 상기 코딩된 단위의 비디오 블록들을 인코딩하며,
    상기 오프셋 값들은 복수의 상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련되는, 비디오 데이터를 인코딩하는 장치.
  19. 제 18 항에 있어서,
    상기 비디오 인코더는, 상기 오프셋 값들을, 상기 코딩된 단위의 상기 코딩된 비디오 블록들을 포함하는 코딩된 비디오스트림의 일부로서 인코딩하는 엔트로피 코딩 유닛을 포함하는, 비디오 데이터를 인코딩하는 장치.
  20. 제 18 항에 있어서,
    상기 비디오 인코더는, 상기 오프셋 값들 각각에 대해, 소정의 오프셋 값의 정수 부분에 제 1 수의 비트들을 할당하며, 상기 소정의 오프셋 값의 분수 부분에 제 2 수의 비트들을 할당하는 양자화 유닛을 포함하며, 상기 제 1 수의 비트들 및 상기 제 2 수의 비트들은 상기 정수 부분의 크기에 기초하여 결정되는, 비디오 데이터를 인코딩하는 장치.
  21. 제 20 항에 있어서,
    상기 비디오 인코더는, 상기 제 2 수의 비트들과는 상이하게 상기 제 1 수의 비트들을 인코딩하는, 비디오 데이터를 인코딩하는 장치.
  22. 제 18 항에 있어서,
    상기 코딩된 단위는 비디오 프레임 및 비디오 프레임의 슬라이스 중 하나를 포함하는, 비디오 데이터를 인코딩하는 장치.
  23. 제 18 항에 있어서,
    상기 오프셋 값들은, 정수 픽셀 위치들에 대해 하나의 오프셋 값을 포함하고, 상이한 서브-정수 픽셀 위치들에 대해서는 수 개의 오프셋 값들을 포함하는, 비디오 데이터를 인코딩하는 장치.
  24. 제 23 항에 있어서,
    상기 오프셋 값들은 15개의 상이한 서브-정수 픽셀 위치들에 대해 15개의 상이한 오프셋 값들을 포함하는, 비디오 데이터를 인코딩하는 장치.
  25. 제 18 항에 있어서,
    상기 비디오 인코더는,
    각 정수 픽셀 위치 및 서브-픽셀 위치에서 상기 예측 비디오 블록들에 기초하여 인코딩되는 상기 코딩된 단위의 각각의 비디오 블록들과 관련된 제 1 세트의 메트릭들을 계산하고;
    상기 예측 비디오 블록들에 대한 각 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련된 제 2 세트의 메트릭들을 계산하며;
    상기 제 1 세트의 메트릭들 및 상기 제 2 세트의 메트릭들에 기초하여 상기 복수의 오프셋 값들을 계산하는, 비디오 데이터를 인코딩하는 장치.
  26. 제 25 항에 있어서,
    상기 제 1 세트의 메트릭들은, 각 정수 픽셀 위치 및 서브-정수 픽셀 위치에서 상기 예측 비디오 블록들에 기초하여 코딩되는 상기 코딩된 단위의 상기 각각의 비디오 블록들과 관련되는 제 1 세트의 평균값들을 포함하고,
    상기 제 2 세트의 메트릭들은, 상기 예측 비디오 블록들에 대한 각 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련된 제 2 세트의 평균값들을 포함하며,
    상기 복수의 오프셋 값들은, 상기 제 1 세트의 평균값들과 상기 제 2 세트의 평균값들 사이의 차이들을 포함하는, 비디오 데이터를 인코딩하는 장치.
  27. 제 18 항에 있어서,
    상기 비디오 인코더는, 상기 비디오 데이터의 상이한 코딩된 단위들에 대해 상기 오프셋 값들을 재계산하는, 비디오 데이터를 인코딩하는 장치.
  28. 제 18 항에 있어서,
    상기 장치는 집적 회로를 포함하는, 비디오 데이터를 인코딩하는 장치.
  29. 제 18 항에 있어서,
    상기 장치는 마이크로프로세서를 포함하는, 비디오 데이터를 인코딩하는 장치.
  30. 제 18 항에 있어서,
    코딩된 비트스트림을 다른 디바이스로 전송하는 무선 송신기를 더 포함하며,
    상기 코딩된 비트스트림은 상기 복수의 오프셋 값들을 포함하며,
    상기 장치는 무선 통신 핸드셋을 포함하는, 비디오 데이터를 인코딩하는 장치.
  31. 비디오 데이터를 디코딩하는 장치로서,
    상기 장치는 비디오 디코더를 포함하며,
    상기 비디오 디코더는,
    상기 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값들을 수신하며,
    상기 오프셋 값들을 예측 비디오 블록들에 적용하여 오프셋 예측 비디오 블록들을 생성하며,
    상기 오프셋 예측 비디오 블록들에 기초하여 상기 코딩된 단위의 비디오 블록들을 디코딩하며,
    상기 오프셋 값들은 복수의 상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련되는, 비디오 데이터를 디코딩하는 장치.
  32. 제 31 항에 있어서,
    상기 코딩된 단위는 비디오 프레임 및 비디오 프레임의 슬라이스 중 하나를 포함하는, 비디오 데이터를 디코딩하는 장치.
  33. 제 31 항에 있어서,
    상기 오프셋 값들은 정수 픽셀 위치들에 대해 하나의 오프셋 값을 포함하고, 상이한 서브-정수 픽셀 위치들에 대해서는 수 개의 오프셋 값들을 포함하는, 비디오 데이터를 디코딩하는 장치.
  34. 제 33 항에 있어서,
    상기 오프셋 값들은, 15개의 상이한 서브-정수 픽셀 위치들에 대해 15개의 상이한 오프셋 값들을 포함하는, 비디오 데이터를 디코딩하는 장치.
  35. 제 31 항에 있어서,
    상기 오프셋 값들은, 각 정수 픽셀 위치와 서브-정수 픽셀 위치에서 상기 예측 비디오 블록들에 기초하여 인코딩된 상기 코딩된 단위의 각각의 비디오 블록들과 관련된 제 1 세트의 평균값들과 상기 예측 비디오 블록들에 대한 각 정수 픽셀 위치와 서브-정수 픽셀 위치와 관련된 제 2 세트의 평균값들 사이의 차이들을 포함하는, 비디오 데이터를 디코딩하는 장치.
  36. 제 31 항에 있어서,
    상기 비디오 디코더는, 상기 비디오 데이터의 상이한 코딩된 단위들에 대한 상이한 복수의 오프셋 값들을 수신하여 적용하는, 비디오 데이터를 디코딩하는 장치.
  37. 제 31 항에 있어서,
    상기 장치는 집적 회로를 포함하는, 비디오 데이터를 디코딩하는 장치.
  38. 제 31 항에 있어서,
    상기 장치는 마이크로프로세서를 포함하는, 비디오 데이터를 디코딩하는 장치.
  39. 제 31 항에 있어서,
    코딩된 비트스트림을 다른 디바이스로부터 수신하는 무선 수신기를 더 포함하며,
    상기 코딩된 비트스트림은 상기 복수의 오프셋 값들을 포함하며,
    상기 장치는 무선 통신 핸드셋을 포함하는, 비디오 데이터를 디코딩하는 장치.
  40. 실행시에, 디바이스로 하여금 비디오 데이터를 인코딩하게 하는 명령들을 포함하는 컴퓨터-판독가능한 매체로서,
    상기 명령들은, 상기 디바이스로 하여금,
    상기 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값들을 계산하게 하고,
    상기 오프셋 값들을 예측 비디오 블록들에 적용하여 오프셋 예측 비디오 블록들을 생성하게 하며,
    상기 오프셋 예측 비디오 블록들에 기초하여 상기 코딩된 단위의 비디오 블록들을 인코딩하게 하며,
    상기 오프셋 값들은 복수의 상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련되는, 컴퓨터-판독가능한 매체.
  41. 실행시에, 디바이스로 하여금 비디오 데이터를 디코딩하게 하는 명령들을 포함하는 컴퓨터-판독가능한 매체로서,
    상기 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값들을 수신할 시에,
    상기 명령들은 상기 디바이스로 하여금,
    상기 오프셋 값들을 예측 비디오 블록들에 적용하여 오프셋 예측 비디오 블록들을 생성하게 하며,
    상기 오프셋 예측 비디오 블록들에 기초하여 상기 코딩된 단위의 비디오 블록들을 디코딩하게 하며,
    상기 오프셋 값들은 복수의 상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련되는, 컴퓨터-판독가능한 매체.
  42. 비디오 데이터를 인코딩하는 디바이스로서,
    상기 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값을 계산하는 수단으로서, 상기 오프셋 값들은 복수의 상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련되는, 상기 복수의 오프셋 값들을 계산하는 수단;
    상기 오프셋 값들을 예측 비디오 블록들에 적용하여 오프셋 예측 비디오 블록들을 생성하는 수단; 및
    상기 오프셋 예측 비디오 블록들에 기초하여 상기 코딩된 단위의 비디오 블록들을 인코딩하는 수단을 포함하는, 비디오 데이터를 인코딩하는 디바이스.
  43. 비디오 데이터를 디코딩하는 디바이스로서,
    상기 비디오 데이터의 코딩된 단위에 대한 복수의 오프셋 값들을 수신하는 수단으로서, 상기 오프셋 값들은 복수의 상이한 정수 픽셀 위치 및 서브-정수 픽셀 위치와 관련되는, 복수의 오프셋 값들을 수신하는 수단;
    상기 오프셋 값들을 예측 비디오 블록들에 적용하여 오프셋 예측 비디오 블록들을 생성하는 수단; 및
    상기 오프셋 예측 비디오 블록들에 기초하여 상기 코딩된 단위의 비디오 블록들을 디코딩하는 수단을 포함하는, 비디오 데이터를 디코딩하는 디바이스.
KR1020107025197A 2008-04-10 2009-04-10 서브-픽셀 해상도에서의 오프셋 KR101242853B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US4402308P 2008-04-10 2008-04-10
US4402008P 2008-04-10 2008-04-10
US61/044,023 2008-04-10
US61/044,020 2008-04-10
US4424008P 2008-04-11 2008-04-11
US61/044,240 2008-04-11
US12/420,280 US8804831B2 (en) 2008-04-10 2009-04-08 Offsets at sub-pixel resolution
US12/420,280 2009-04-08
PCT/US2009/040279 WO2009126937A1 (en) 2008-04-10 2009-04-10 Offsets at sub-pixel resolution

Publications (2)

Publication Number Publication Date
KR20110005846A true KR20110005846A (ko) 2011-01-19
KR101242853B1 KR101242853B1 (ko) 2013-03-12

Family

ID=40810532

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107025197A KR101242853B1 (ko) 2008-04-10 2009-04-10 서브-픽셀 해상도에서의 오프셋

Country Status (8)

Country Link
US (1) US8804831B2 (ko)
EP (1) EP2304959B1 (ko)
JP (1) JP5166601B2 (ko)
KR (1) KR101242853B1 (ko)
CN (1) CN101999230B (ko)
CA (1) CA2720129A1 (ko)
TW (1) TW201010442A (ko)
WO (1) WO2009126937A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210078351A (ko) 2019-12-18 2021-06-28 김학진 스마트폰 화면보호필름 장착 보조장치

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101456279B1 (ko) 2008-01-03 2014-11-04 한국전자통신연구원 참조 블록 파형 정보에 기반하여 인트라 영상을 부호화하는 장치 및 복호화 하는 장치
US9967590B2 (en) 2008-04-10 2018-05-08 Qualcomm Incorporated Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter
EP2136565A1 (en) * 2008-06-19 2009-12-23 Thomson Licensing Method for determining a filter for interpolating one or more pixels of a frame, method for encoding or reconstructing a frame and method for transmitting a frame
US8306122B2 (en) * 2008-06-23 2012-11-06 Broadcom Corporation Method and apparatus for processing image data
KR101441903B1 (ko) * 2008-10-16 2014-09-24 에스케이텔레콤 주식회사 참조 프레임 생성 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
NO330275B1 (no) * 2008-12-19 2011-03-21 Tandberg Telecom As Fremgangsmate i en videokodings-/-dekodingsprosess
CN104506877B (zh) * 2009-06-19 2018-01-19 三菱电机株式会社 图像解码装置以及图像解码方法
US20110142135A1 (en) * 2009-12-14 2011-06-16 Madhukar Budagavi Adaptive Use of Quarter-Pel Motion Compensation
US9237178B2 (en) * 2010-02-03 2016-01-12 Futurewei Technologies, Inc. Combined binary string for signaling byte range of media fragments in adaptive streaming
US20110200108A1 (en) * 2010-02-18 2011-08-18 Qualcomm Incorporated Chrominance high precision motion filtering for motion interpolation
FR2956552B1 (fr) * 2010-02-18 2012-12-28 Canon Kk Procede de codage ou de decodage d'une sequence video, dispositifs associes
FR2957744B1 (fr) * 2010-03-19 2012-05-25 Canon Kk Procede de traitement d'une sequence video et dispositif associe
US9219921B2 (en) 2010-04-12 2015-12-22 Qualcomm Incorporated Mixed tap filters
US20120008686A1 (en) * 2010-07-06 2012-01-12 Apple Inc. Motion compensation using vector quantized interpolation filters
US20120063515A1 (en) * 2010-09-09 2012-03-15 Qualcomm Incorporated Efficient Coding of Video Parameters for Weighted Motion Compensated Prediction in Video Coding
US9628821B2 (en) 2010-10-01 2017-04-18 Apple Inc. Motion compensation using decoder-defined vector quantized interpolation filters
US10045046B2 (en) 2010-12-10 2018-08-07 Qualcomm Incorporated Adaptive support for interpolating values of sub-pixels for video coding
US9172972B2 (en) 2011-01-05 2015-10-27 Qualcomm Incorporated Low complexity interpolation filtering with adaptive tap size
KR20120095611A (ko) * 2011-02-21 2012-08-29 삼성전자주식회사 다시점 비디오 부호화/복호화 방법 및 장치
JP5786478B2 (ja) 2011-06-15 2015-09-30 富士通株式会社 動画像復号装置、動画像復号方法、及び動画像復号プログラム
CN103069805B (zh) 2011-06-27 2017-05-31 太阳专利托管公司 图像编码方法、图像解码方法、图像编码装置、图像解码装置及图像编码解码装置
KR101956284B1 (ko) * 2011-06-30 2019-03-08 엘지전자 주식회사 보간 방법 및 이를 이용한 예측 방법
US9641866B2 (en) 2011-08-18 2017-05-02 Qualcomm Incorporated Applying partition-based filters
JP5882450B2 (ja) * 2011-08-31 2016-03-09 メディアテック インコーポレイテッド 制約付きフィルタ係数を有する適応ループフィルタの方法及び装置
KR20130034566A (ko) * 2011-09-28 2013-04-05 한국전자통신연구원 제한된 오프셋 보상 및 루프 필터를 기반으로 하는 영상 부호화 및 복호화 방법 및 그 장치
GB2501535A (en) * 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
US20140301719A1 (en) * 2013-04-08 2014-10-09 Broadcom Corporation Processing cache for multiple bit precisions
KR20150045819A (ko) * 2013-10-21 2015-04-29 삼성전자주식회사 움직임 보상을 수행하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
KR101479525B1 (ko) 2014-03-31 2015-01-09 에스케이텔레콤 주식회사 참조 프레임 생성 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
US10785475B2 (en) * 2014-11-05 2020-09-22 Mediatek Singapore Pte. Ltd. Method and apparatus of video coding with prediction offset
US10575007B2 (en) 2016-04-12 2020-02-25 Microsoft Technology Licensing, Llc Efficient decoding and rendering of blocks in a graphics pipeline
US10157480B2 (en) 2016-06-24 2018-12-18 Microsoft Technology Licensing, Llc Efficient decoding and rendering of inter-coded blocks in a graphics pipeline
US11197010B2 (en) 2016-10-07 2021-12-07 Microsoft Technology Licensing, Llc Browser-based video decoder using multiple CPU threads
US10249049B1 (en) * 2017-04-28 2019-04-02 Ambarella, Inc. Local maxima sub-integer position estimation in video processing
US10672164B2 (en) * 2017-10-16 2020-06-02 Adobe Inc. Predicting patch displacement maps using a neural network
KR102357142B1 (ko) 2017-11-07 2022-02-08 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩을 위한 인터 예측 장치 및 방법을 위한 보간 필터
CN117692632A (zh) * 2018-07-31 2024-03-12 寰发股份有限公司 用于视频编解码的利用运动向量差的合并方法和装置

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2938412B2 (ja) 1996-09-03 1999-08-23 日本電信電話株式会社 動画像の輝度変化補償方法、動画像符号化装置、動画像復号装置、動画像符号化もしくは復号プログラムを記録した記録媒体および動画像の符号化データを記録した記録媒体
US6539058B1 (en) 1998-04-13 2003-03-25 Hitachi America, Ltd. Methods and apparatus for reducing drift due to averaging in reduced resolution video decoders
JP2000106675A (ja) 1998-07-29 2000-04-11 Matsushita Electric Ind Co Ltd 映像符号化方法、映像符号化装置及び動きベクトル検出装置
US6529638B1 (en) 1999-02-01 2003-03-04 Sharp Laboratories Of America, Inc. Block boundary artifact reduction for block-based image compression
DE10120395A1 (de) 2001-04-25 2002-10-31 Bosch Gmbh Robert Einrichtung zur Interpolation von Abtastwerten sowie Bildencoder und Bilddecoder
US6950469B2 (en) 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
KR100557911B1 (ko) 2001-09-18 2006-03-10 마쯔시다덴기산교 가부시키가이샤 화상 부호화 방법 및 화상 복호화 방법
EP2373035B1 (en) 2001-11-30 2015-11-25 NTT DoCoMo, Inc. Moving picture encoding device, moving picture decoding device, moving picture encoding method, moving picture decoding method, program, and computer readable recording medium storing program
SG149694A1 (en) 2002-01-14 2009-02-27 Nokia Corp Coding dynamic filters
JP2004007379A (ja) 2002-04-10 2004-01-08 Toshiba Corp 動画像符号化方法及び動画像復号化方法
JP4015934B2 (ja) 2002-04-18 2007-11-28 株式会社東芝 動画像符号化方法及び装置
US7129962B1 (en) 2002-03-25 2006-10-31 Matrox Graphics Inc. Efficient video processing method and system
US7620109B2 (en) 2002-04-10 2009-11-17 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
US7305034B2 (en) 2002-04-10 2007-12-04 Microsoft Corporation Rounding control for multi-stage interpolation
US8406301B2 (en) 2002-07-15 2013-03-26 Thomson Licensing Adaptive weighting of reference pictures in video encoding
KR20050018948A (ko) 2002-07-09 2005-02-28 노키아 코포레이션 비디오 부호화에서 보간 필터 유형을 선택하기 위한 방법및 장치
US7903742B2 (en) 2002-07-15 2011-03-08 Thomson Licensing Adaptive weighting of reference pictures in video decoding
AU2002364104A1 (en) 2002-08-15 2004-03-03 On2.Com Imprroved video compression system
DE10240404A1 (de) 2002-09-02 2004-03-18 Austriamicrosystems Ag Hall-Sensor und Verfahren zu dessen Betrieb
US20040076333A1 (en) 2002-10-22 2004-04-22 Huipin Zhang Adaptive interpolation filter system for motion compensated predictive video coding
KR100534207B1 (ko) 2002-12-09 2005-12-08 삼성전자주식회사 비디오 부호화기의 움직임 추정기 및 그 방법
RU2305377C2 (ru) 2003-05-20 2007-08-27 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ уменьшения искажения сжатого видеоизображения и устройство для его реализации
WO2005004492A2 (en) 2003-06-25 2005-01-13 Thomson Licensing S.A. Method and apparatus for weighted prediction estimation using a displaced frame differential
US7599438B2 (en) * 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
NO319629B1 (no) 2003-11-28 2005-09-05 Tandberg Telecom As Fremgangsmate for korrigering av interpolerte pikselverdier
EP1578137A2 (en) 2004-03-17 2005-09-21 Matsushita Electric Industrial Co., Ltd. Moving picture coding apparatus with multistep interpolation process
JP4709143B2 (ja) 2004-04-21 2011-06-22 パナソニック株式会社 動き補償装置、画面間予測符号化装置、画面間予測復号化装置、動き補償方法、および集積回路
CN1717056A (zh) 2004-07-02 2006-01-04 三菱电机株式会社 用于小波视频编码中的高通时间滤波帧的帧内预测
EP1617672A1 (en) 2004-07-13 2006-01-18 Matsushita Electric Industrial Co., Ltd. Motion estimator/compensator including a 16-bit 1/8 pel interpolation filter
US8374238B2 (en) 2004-07-13 2013-02-12 Microsoft Corporation Spatial scalability in 3D sub-band decoding of SDMCTF-encoded video
US8284837B2 (en) 2004-09-16 2012-10-09 Thomson Licensing Video codec with weighted prediction utilizing local brightness variation
US7653132B2 (en) 2004-12-21 2010-01-26 Stmicroelectronics, Inc. Method and system for fast implementation of subpixel interpolation
US8218634B2 (en) 2005-01-13 2012-07-10 Ntt Docomo, Inc. Nonlinear, in-the-loop, denoising filter for quantization noise removal for hybrid video compression
JP2008536414A (ja) 2005-04-13 2008-09-04 ゴットフリート・ヴィルヘルム・ライプニッツ・ウニヴェルジテート・ハノーヴァー ビデオの拡張された符号化方法及び装置
EP1746839A1 (en) 2005-07-22 2007-01-24 Thomson Licensing Method and apparatus for encoding video data
KR100754841B1 (ko) 2005-10-28 2007-09-04 경희대학교 산학협력단 비트율 왜곡 비용에 기초하여 선택된 보간 필터를 이용하여공간 계층간 예측을 수행하는 스케일러블 h.264부호화/복호화 방법
KR101293086B1 (ko) 2006-02-17 2013-08-06 톰슨 라이센싱 비디오 데이터 밝기 변화를 다루는 지역화된 가중 예측
US8582663B2 (en) 2006-08-08 2013-11-12 Core Wireless Licensing S.A.R.L. Method, device, and system for multiplexing of video streams
WO2008084378A2 (en) 2007-01-09 2008-07-17 Nokia Corporation Adaptive interpolation filters for video coding
MX2009010527A (es) 2007-04-09 2009-10-26 Nokia Corp Vectores de movimiento de alta precision para codificacion de video con baja complejidad de codificacion y decodificacion.
US20090257499A1 (en) 2008-04-10 2009-10-15 Qualcomm Incorporated Advanced interpolation techniques for motion compensation in video coding

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210078351A (ko) 2019-12-18 2021-06-28 김학진 스마트폰 화면보호필름 장착 보조장치

Also Published As

Publication number Publication date
JP5166601B2 (ja) 2013-03-21
JP2011517242A (ja) 2011-05-26
CN101999230A (zh) 2011-03-30
EP2304959A1 (en) 2011-04-06
US20090257500A1 (en) 2009-10-15
CN101999230B (zh) 2014-12-17
US8804831B2 (en) 2014-08-12
CA2720129A1 (en) 2009-10-15
TW201010442A (en) 2010-03-01
KR101242853B1 (ko) 2013-03-12
WO2009126937A1 (en) 2009-10-15
EP2304959B1 (en) 2015-05-20

Similar Documents

Publication Publication Date Title
KR101242853B1 (ko) 서브-픽셀 해상도에서의 오프셋
KR101208384B1 (ko) 비디오 코딩에서 모션 보상을 위한 어드밴스드 보간 기술
KR101208383B1 (ko) 비디오 코딩에서 모션 보상을 위한 어드밴스드 보간 기술
KR101313956B1 (ko) 스위칭된 보간 필터들에서의 오프셋 계산
KR101202632B1 (ko) 비디오 코딩에서의 보간을 위한 예측 기술
KR101202633B1 (ko) 고정된 필터 또는 적응형 필터에 기초한 비디오 코딩을 위한 레이트 왜곡 정의된 보간
KR101242958B1 (ko) 비디오 코딩에서의 서브-픽셀 해상도를 위한 보간 필터 서포트
KR101250115B1 (ko) 비디오 코딩에서의 서브-픽셀 포지션들의 보간 필터링을 위한 대칭
KR101214021B1 (ko) 비디오 코딩에서의 정수-픽셀 포지션들의 보간형 필터링
US20100086027A1 (en) Efficient prediction mode selection
JP2013520875A (ja) ビデオコーディングのための適応動き解像度
US9219921B2 (en) Mixed tap filters
JP2013529875A (ja) 圧縮ビットストリームへの交換補間フィルタ係数の組み込み

Legal Events

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

Payment date: 20151230

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee