KR20170066457A - 시간적 블록 벡터 예측을 갖는 인트라 블록 카피 코딩 - Google Patents

시간적 블록 벡터 예측을 갖는 인트라 블록 카피 코딩 Download PDF

Info

Publication number
KR20170066457A
KR20170066457A KR1020177011096A KR20177011096A KR20170066457A KR 20170066457 A KR20170066457 A KR 20170066457A KR 1020177011096 A KR1020177011096 A KR 1020177011096A KR 20177011096 A KR20177011096 A KR 20177011096A KR 20170066457 A KR20170066457 A KR 20170066457A
Authority
KR
South Korea
Prior art keywords
block
list
prediction
vector
video
Prior art date
Application number
KR1020177011096A
Other languages
English (en)
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 KR20170066457A publication Critical patent/KR20170066457A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

본원에서 개시되는 실시형태는, 병합 모드의 예측 유닛 레벨에서 IntraBC 플래그를 명시적으로 통합하는 것에 의해 종래의 비디오 코딩 기술을 향상시키도록 동작한다. 이 플래그는 블록 벡터(block vector; BV) 후보 및 모션 벡터(motion vector; MV) 후보의 별개의 선택을 허용한다. 구체적으로는, IntraBC 플래그의 명시적 시그널링은, 특정한 예측 유닛이 BV를 사용할 것인지 또는 MV를 사용할 것인지의 여부에 대한 정보를 제공한다. IntraBC 플래그가 설정되면, 후보 리스트는 공간적 및 시간적 이웃 BV만을 사용하여 구성된다. IntraBC 플래그가 설정되지 않으면, 후보 리스트는 공간적 및 시간적 이웃 MV만을 사용하여 구성된다. 그 다음, 후보 BV 또는 MV의 리스트를 가리키는 인덱스가 코딩된다. 본원에서 개시되는 추가 실시형태는, 통합된 IntraBC 및 인터 프레임워크에서 BV-MV 양예측을 사용한다.

Description

시간적 블록 벡터 예측을 갖는 인트라 블록 카피 코딩{INTRA BLOCK COPY CODING WITH TEMPORAL BLOCK VECTOR PREDICTION}
관련 출원에 대한 교차 참조
본 출원은, 2014년 9월 26일자로 출원된 미국 특허 가출원 제62/056,352호; 2014년 10월 16일자로 출원된 미국 특허 가출원 제62/064,930호; 2015년 1월 22일자로 출원된 미국 특허 가출원 제62/106,615호; 및 2015년 2월 5일자로 출원된 제62/112,619호의 정식 출원이며, 이들 가출원으로부터 35. U.S.C. § 119(e) 하에서의 이점을 주장한다. 상기 가출원 모두는 참조에 의해 그 전체가 본원에 통합된다.
스크린 컨텐츠 공유 애플리케이션은, 원격 데스크탑, 화상 회의, 및 모바일 미디어 프리젠테이션 애플리케이션(mobile media presentation application)의 바람직성(desirability)과 함께, 최근 점점 더 인기를 끌고 있다.
자연 비디오 컨텐츠(natural video content)와 비교하여, 스크린 컨텐츠는 여려 가지의 주 컬러를 갖는 다수의 블록 및 선예한 에지를 포함하는데, 그 이유는 스크린 컨텐츠에 많은 선예한 곡선 및 텍스트가 존재하기 때문이다. 스크린 컨텐츠를 압축하고 그 다음 그것을 수신기측으로 송신하기 위해 현존하는 비디오 압축 방법이 사용될 수 있지만, 대부분의 현존하는 방법은 스크린 컨텐츠의 피쳐의 특성을 완전히 묘사하지 못하고 따라서 낮은 압축 성능으로 이어진다. 따라서, 재구성된 픽쳐는 심각한 품질 이슈를 가질 수 있다. 예를 들면, 곡선 및 텍스트가 블러링되어 인식하기 어려울 수도 있다. 따라서, 스크린 컨텐츠를 효율적으로 재구성하기 위해서는 잘 설계된 스크린 압축 방법이 유용할 것이다.
스크린 컨텐츠 압축 기술은, 점점 더 많은 사람들이 미디어 표시 또는 원격 데스크탑 목적을 위해 그들의 디바이스 컨텐츠를 공유하고 있기 때문에, 점점 더 중요해지고 있다. 모바일 디바이스의 스크린 디스플레이는 고선명 또는 초고선명 해상도로 크게 증가되었다. 현존하는 비디오 코딩 툴, 예컨대 블록 코딩 모드 및 변환은 자연 비디오 인코딩에 대해 최적화되어 있고 스크린 컨텐츠 인코딩에 대해 특별히 최적화되어 있지 않다. 전통적인 비디오 코딩 방법은, 몇몇 품질 요건 설정을 갖는 이들 공유 애플리케이션에서 스크린 컨텐츠를 공유하기 위한 대역폭 요건을 증가시킨다.
본원에서 개시되는 실시형태는, 병합 모드의 예측 유닛 레벨(prediction unit level)에서 IntraBC 플래그를 명시적으로(explicitly) 통합하는 것에 의해 종래의 비디오 코딩 기술을 향상시키도록 동작한다. 이 플래그는 블록 벡터(block vector; BV) 후보 및 모션 벡터(motion vector; MV) 후보의 별개의 선택을 허용한다. 구체적으로는, IntraBC 플래그의 명시적 시그널링은, 특정한 예측에 의해 사용되는 예측 벡터가 BV인지 또는 MV인지의 여부에 관한 정보를 제공한다. IntraBC 플래그가 설정되면, 후보 리스트는 이웃하는 BV만을 사용하여 재구성된다. IntraBC 플래그가 설정되지 않으면, 후보 리스트는 이웃하는 MV만을 사용하여 재구성된다. 그 다음, 후보 예측 벡터(BV 또는 MV)의 리스트를 가리키는 인덱스가 코딩된다.
IntraBC 병합 후보의 생성은 시간적 참조 픽쳐로부터의 후보를 포함한다. 결과적으로, 시간적 거리에 걸쳐 BV를 예측하는 것이 가능하게 된다. 따라서, 본 개시의 실시형태에 따른 디코더는 참조 픽쳐에 대한 BV를 저장하도록 동작한다. BV는 압축된 형태로 저장될 수도 있다. 유효하고 고유한(unique) BV만이 후보 리스트에 삽입된다.
통합된 IntraBC 및 인터 프레임워크에서, 시간적 참조 픽쳐의 병치된(collocated) 블록으로부터의 BV는 인터 병합 후보(inter merge candidate)의 리스트에 포함된다. 리스트가 가득 찬 상태가 아니면, 디폴트 BV가 또한 추가된다. 유효한 BV 및 고유한 BV/MV만이 리스트에 삽입된다.
예시적인 비디오 코딩 방법에서, 제1 비디오 블록의 예측을 위한 후보 블록 벡터가 식별되는데, 여기서 제1 비디오 블록은 현재 픽쳐이고, 후보 블록 벡터는 시간적 참조 픽쳐의 제2 비디오 블록의 예측을 위해 사용되는 제2 블록 벡터이다. 제1 비디오 블록은, 후보 블록 벡터를 제1 비디오 블록의 예측자(predictor)로서 사용하여 인트라 블록 카피 코딩을 사용하여 코딩된다. 몇몇 이러한 실시형태에서, 제1 비디오 블록의 코딩은, 현재 픽쳐를 픽셀의 복수의 블록으로서 인코딩하는 비트스트림을 생성하는 것을 포함하고, 여기서 비트스트림은 제2 블록 벡터를 식별하는 인덱스를 포함한다. 몇몇 실시형태는, 병합 후보 리스트를 생성하는 것을 더 포함하는데, 여기서 병합 후보 리스트는 제2 블록 벡터를 포함하고, 제1 비디오 블록을 코딩하는 것은, 제2 블록 벡터를 식별하는 인덱스를 병합 후보 리스트에서 제공하는 것을 포함한다. 병합 후보 리스트는 적어도 하나의 디폴트 블록 벡터를 더 포함할 수도 있다. 몇몇 실시형태에서, 병합 후보 리스트가 생성되는데, 여기서 병합 후보 리스트는 모션 벡터 병합 후보의 세트 및 블록 벡터 병합 후보의 세트를 포함한다. 이러한 실시형태에서, 제1 비디오 블록의 코딩은, 제1 비디오 블록에게, (i) 예측자가 블록 벡터 병합 후보의 세트에 있다는 것을 나타내는 플래그 및 (ii) 블록 벡터 병합 후보의 세트 내에서 제2 블록 벡터를 식별하는 인덱스를 제공하는 것을 포함할 수도 있다.
다른 예시적인 방법에서, 비디오의 슬라이스가 복수의 코딩 단위(coding unit)로서 코딩되는데, 여기서 각각의 코딩 단위는 하나 이상의 예측 유닛을 포함하고 각각의 코딩 단위는 비디오 슬라이스의 일부에 대응한다. 예측 유닛 중 적어도 일부에 대해, 코딩은 모션 벡터 병합 후보의 리스트 및 블록 벡터 병합 후보의 리스트를 형성하는 것을 포함할 수도 있다. 병합 후보 및 예측 유닛에 기초하여, 병합 후보 중 하나는 예측자로서 선택된다. 예측 유닛은, (i) 예측자가 모션 벡터 병합 후보의 리스트에 있는지 또는 블록 벡터 병합 후보의 리스트에 있는지의 여부를 식별하는 플래그 및 (ii) 병합 후보의 식별된 리스트 내에서부터 예측자를 식별하는 인덱스를 제공받는다. 블록 벡터 병합 후보 중 적어도 하나는 시간적 블록 벡터 예측을 사용하여 생성될 수도 있다.
다른 예시적인 방법에서, 비디오의 슬라이스가 복수의 코딩 단위로서 존재하는데, 여기서 각각의 코딩 단위는 하나 이상의 예측 유닛을 포함하고, 각각의 코딩 단위는 비디오 슬라이스의 일부에 대응한다. 예측 유닛 중 적어도 일부에 대해, 코딩은 병합 후보의 리스트를 형성하는 것을 포함할 수도 있는데, 여기서 각각의 병합 후보는 예측 벡터이고, 예측 벡터 중 적어도 하나는 시간적 참조 픽쳐로부터의 제1 블록 벡터이다.
병합 후보 및 비디오 슬라이스의 대응하는 부분에 기초하여, 병합 후보 중 하나는 예측자로서 선택된다. 예측 유닛은, 병합 후보의 식별된 세트 내에서부터 예측자를 식별하는 인덱스를 제공받는다. 몇몇 이러한 실시형태에서, 예측 벡터는, 예측 벡터가 유효하고 고유하다는 결정이 이루어진 이후에만 병합 후보의 리스트에 추가된다. 몇몇 실시형태에서, 병합 후보의 리스트는 적어도 하나의 유도된 블록 벡터를 더 포함한다. 선택된 예측자는 제1 블록 벡터일 수도 있는데, 제1 블록 벡터는, 몇몇 실시형태에서, 병치된 예측 유닛과 관련되는 블록 벡터일 수도 있다. 병치된 예측 유닛은 슬라이스 헤더에서 명시되는 병치된 참조 픽쳐에 있을 수도 있다.
다른 예시적인 방법에서, 비디오의 슬라이스가 복수의 코딩 단위로서 코딩되는데, 여기서 각각의 코딩 단위는 하나 이상의 예측 유닛을 포함하고, 각각의 코딩 단위는 비디오 슬라이스의 일부에 대응한다. 예시적인 방법에서의 코딩은, 예측 유닛 중 적어도 일부에 대해, 병합 후보의 세트를 식별하는 것을 포함하는데, 여기서 병합 후보의 세트의 식별은 디폴트 블록 벡터를 갖는 적어도 하나의 후보를 추가하는 것을 포함한다. 병합 후보 및 비디오 슬라이스의 대응하는 부분에 기초하여, 후보 중 하나는 예측자로서 선택된다. 예측 유닛은, 병합 후보의 식별된 세트 내에서부터 병합 후보를 식별하는 인덱스를 제공받는다. 몇몇 이러한 방법에서, 디폴트 블록 벡터는 디폴트 블록 벡터의 리스트로부터 선택된다.
예시적인 비디오 코딩 방법에서, 제1 비디오 블록의 예측을 위한 후보 블록 벡터가 식별되는데, 여기서 제1 비디오 블록은 현재 픽쳐이고, 후보 블록 벡터는 시간적 참조 픽쳐의 제2 비디오 블록의 예측을 위해 사용되는 제2 블록 벡터이다. 제1 비디오 블록은, 후보 블록 벡터를 제1 비디오 블록의 예측자로서 사용하여 인트라 블록 카피 코딩을 통해 코딩된다. 예시적인 방법에서, 제1 비디오 블록의 코딩은, 제1 비디오 블록과 관련되는 플래그를 수신하는 것을 포함하는데, 여기서 플래그는, 예측자가 블록 벡터이다는 것을 식별한다. 예측자가 블록 벡터이다는 것을 식별하는 플래그의 수신에 기초하여, 병합 후보 리스트가 생성되는데, 병합 후보 리스트는 블록 벡터 병합 후보의 세트를 포함한다. 블록 벡터 병합 후보의 세트 내에서 제2 블록 벡터를 식별하는 인덱스가 또한 수신된다. 대안적으로, 후보 모션 벡터가 예측을 위해 사용되는 비디오 블록에 대해, 플래그가 수신되는데, 플래그는 예측자가 모션 벡터이다는 것을 식별한다. 예측자가 모션 벡터이다는 것을 식별하는 플래그의 수신에 기초하여, 병합 후보 리스트가 생성되는데, 병합 후보 리스트는 모션 벡터 병합 후보의 세트를 포함한다. 모션 벡터 병합 후보의 세트 내에서 모션 벡터 예측자를 식별하는 인덱스가 또한 수신된다.
몇몇 실시형태에서, 본원에서 설명되는 방법을 수행하기 위해 인코더 및/또는 디코더 모듈이 활용된다. 이러한 모듈은, 본원에서 설명되는 방법을 수행하도록 동작하는 명령어를 저장하는 비일시적 컴퓨터 저장 매체 및 프로세서를 사용하여 구현될 수도 있다.
하기에서 먼저 간략히 설명되는 첨부의 도면과 연계하여 예로서 제시되는 하기의 설명으로부터, 더 상세한 이해가 얻어질 수도 있다.
도 1은 블록 기반의 비디오 인코더의 예를 예시하는 블록도이다.
도 2는 블록 기반의 비디오 디코더의 예를 예시하는 블록도이다.
도 3은 여덟 개의 방향성 예측 모드의 예의 도면이다.
도 4는, 33개의 방향성 예측 모드 및 두 개의 비방향성 예측 모드의 예를 예시하는 도면이다.
도 5는 수평 예측의 예의 도면이다.
도 6은 평면 모드(planar mode)의 예의 도면이다.
도 7은 모션 예측의 예를 예시하는 도면이다.
도 8은 픽쳐 내에서의 블록 레벨 움직임의 예를 예시하는 도면이다.
도 9는 코딩된 비트스트림 구조의 예를 예시하는 도면이다.
도 10은 예시적인 통신 시스템을 예시하는 도면이다.
도 11은 예시적인 무선 송수신 유닛(wireless transmit/receive unit; WTRU)을 예시하는 도면이다.
도 12는 스크린 컨텐츠 공유 시스템을 예시하는 개략적인 블록도이다.
도 13은, 블록 x가 현재 코딩 블록인 풀 프레임 인트라 블록 카피 모드를 예시한다.
도 14는, 좌측 CTU 및 현재 CTU만이 허용되는 로컬 영역 인트라 블록 카피 모드를 예시한다.
도 15는 인터 MV 예측을 위한 공간적 및 시간적 MV 예측자를 예시한다.
도 16은 시간적 모션 벡터 예측을 예시하는 흐름도이다.
도 17은, 병치된 블록의 참조 리스트 선택을 예시하는 흐름도이다.
도 18은, IntraBC 모드가 인터 모드로서 시그널링되는 구현예를 예시한다. 현재 픽쳐 Pic(t)를 코딩하기 위해, 디블록화(deblocking) 및 샘플 적응 오프셋(sample adaptive offset; SAO) 이전에, Pic'(t)로서 표기되는 현재 픽쳐의 이미 코딩된 부분이 참조 list_0에 장기간 참조 픽쳐로서 추가된다. 모든 다른 참조 픽쳐 Pic(t-1), Pic(t-3), Pic(t+1), Pic(t+5)는, 디블록화 및 SAO를 통해 프로세싱된 통상적인 시간적 참조 픽쳐이다.
도 19는 BV 예측을 위해 사용되는 공간적 BV 예측자를 예시한다.
도 20a 및 도 20b는, 시간적 BV 예측자 유도(temporal BV predictor derivation; TBVD) 프로세스의 플로우차트인데, 여기서 cBlock은 체크될 블록이고 rBV는 리턴된 블록 벡터이다. (0,0)의 BV는 무효하다. 도 20a는 하나의 참조 픽쳐를 사용하는 TBVD를 예시하고, 도 20b는 네 개의 참조 픽쳐를 사용하는 TBVD를 예시한다.
도 21은, BV 예측을 위한 시간적 BV 예측자 생성의 방법을 예시하는 플로우차트이다.
도 22는 IntraBC 병합을 위한 공간적 후보를 예시한다.
도 23a 및 도 23b는 IntraBC 병합 후보 유도를 예시한다. 블록 C0 및 C2는 IntraBC 블록이고, 블록 C1 및 C3는 인터 블록이고, 블록 C4는 인트라/팔레트 블록이다. 도 23a는 시간적 블록 벡터 예측(temporal block vector prediction; TBVP)을 위해 하나의 병치된 참조 픽쳐를 사용하는 IBC 병합 후보 유도를 예시한다. 도 23b는, TBVP를 위해 네 개의 시간적 참조 픽쳐를 사용하는 IBC 병합 후보 유도를 예시한다.
도 24a 및 도 24b는, 몇몇 실시형태에 따른, IntraBC 병합 BV 후보 생성 프로세스를 예시하는 흐름도를 함께 형성한다.
도 25는 IntraBC 병합 모드에 대한 시간적 BV 후보 유도를 예시하는 흐름도이다.
도 26은 HEVC 병합 프로세스에서 공간적 병합 후보를 유도함에 있어서 사용되는 공간적 이웃의 개략적인 예시이다.
도 27은 블록 벡터 유도의 예를 예시하는 도면이다.
도 28은 모션 벡터 유도의 예를 예시하는 도면이다.
도 29a 및 도 29b는, BV-MV 양예측(bi-prediction) 모드에 대한 양예측 검색을 예시하는 플로우차트를 함께 제공한다.
도 30은, 양예측 검색에서 BV/MV 개선(refinement)을 위한 타겟 블록의 업데이트를 예시하는 플로우차트이다.
도 31a 및 도 31b는 BV_refinement(31A) 및 MV_refinement(31B)에 대한 검색 윈도우를 예시한다.
I. 비디오 코딩.
이제, 예시적인 실시형태의 상세한 설명이 다양한 도면을 참조로 제공될 것이다. 본 설명이 가능한 구현예의 상세한 예를 제공하지만, 제공된 상세는 예로서 의도된 것이며 본 출원의 범위를 어떤 식으로든 제한하도록 의도된 것이 아니다는 것을 유의해야 한다.
도 1은 블록 기반의 비디오 인코더의 예, 예를 들면, 하이브리드 비디오 인코딩 시스템을 예시하는 블록도이다. 비디오 인코더(100)는 입력 비디오 신호(102)를 수신할 수도 있다. 입력 비디오 신호(102)는 블록 단위로 프로세싱될 수도 있다. 비디오 블록은 임의의 사이즈를 가질 수도 있다. 예를 들면, 비디오 블록 단위는 16×16 픽셀을 포함할 수도 있다. 16×16 픽셀의 비디오 블록 단위는 매크로블록(macroblock; MB)으로 칭해질 수도 있다. 고효율 비디오 코딩(HEVC)에서는, 고해상도(예를 들면, 1080p 및 그 이상) 비디오 신호를 효율적으로 압축하기 위해, 확장된 블록 사이즈(예를 들면, 확장된 블록 사이즈는 코딩 트리 단위(coding tree unit; CTU) 또는 코딩 단위(coding unit; CU)로 칭해질 수도 있는데, 두 용어는 본 개시의 목적을 위해 동등하다)가 사용될 수도 있다. HEVC에서, CU는 64×64 픽셀까지일 수도 있다. CU는 예측 유닛(prediction unit; PU)으로 구획될 수도 있는데, 예측 유닛(PU)에 대해 별개의 예측 방법이 적용될 수도 있다.
입력 비디오 블록(예를 들면, MB 또는 CU)의 경우, 공간적 예측(160) 및/또는 시간적 예측(162)이 수행될 수도 있다. 공간적 예측(예를 들면, "인트라 예측")은 현재 비디오 블록을 예측하기 위해 동일한 비디오 픽쳐/슬라이스의 이미 코딩된 이웃 블록으로부터의 픽셀을 사용할 수도 있다. 공간적 예측은 비디오 신호에서는 본질적인 공간적 중복성을 감소시킬 수도 있다. 시간적 예측(예를 들면, "인터 예측" 또는"모션 보상 예측")은 현재 비디오 블록을 예측하기 위해 이미 코딩된 비디오 픽쳐(예를 들면, 이미 코딩된 비디오 픽쳐는 "참조 픽쳐"로 칭해질 수도 있다)로부터의 픽셀을 사용할 수도 있다. 시간적 예측은 비디오 신호에서는 본질적인 시간적 중복성을 감소시킬 수도 있다. 비디오 블록에 대한 시간적 예측 신호는 하나 이상의 모션 벡터에 의해 시그널링될 수도 있는데, 모션 벡터는, 현재 블록과 참조 픽쳐에서의 그것의 예측 블록 사이의 모션의 양 및/또는 방향을 나타낼 수도 있다. 다수의 참조 픽쳐가 지원되면(예를 들면, H.264/AVC 및/또는 HEVC의 경우에 다수의 참조 픽쳐가 지원될 수도 있다), 비디오 블록에 대해, 비디오 블록의 참조 픽쳐 인덱스가 전송될 수도 있다. 참조 픽쳐 인덱스는, 시간적 예측 신호가 참조 픽쳐 저장소(164)의 어떤 참조 픽쳐로부터 유래하는지를 식별하기 위해 사용될 수도 있다.
인코더의 모드 결정 블록(180)은, 예를 들면, 공간적 및/또는 시간적 예측 이후의 예측 모드를 선택할 수도 있다. 예측 블록은 116에서 현재 비디오 블록으로부터 감산될 수도 있다. 예측 잔차는 변환(104) 및/또는 양자화(106)될 수도 있다. 양자화된 잔차 계수는 재구성된 잔차를 형성하기 위해 역양자화될 수도 있고(110) 및/또는 역변환될 수도 있는데(112), 재구성된 잔차는, 재구성된 비디오 블록을 형성하기 위해, 예측 블록(126)에 다시 가산될 수도 있다.
재구성된 비디오 블록이 참조 픽쳐 저장소(164)에 놓여지고 및/또는 미래의 비디오 블록을 코딩하기 위해 사용되기 이전에, 재구성된 비디오 블록에 대해, 루프 내 필터링(in-loop filtering)(예를 들면, 디블록화(deblocking) 필터, 샘플 적응 오프셋, 적응 루프 필터, 및/또는 등등)이 적용될 수도 있다(166). 비디오 인코더(100)는 출력 비디오 스트림(120)을 출력할 수도 있다. 출력 비디오 비트스트림(120)을 형성하기 위해, 코딩 모드(예를 들면, 인터 예측 모드 또는 인트라 예측 모드), 예측 모드 정보, 모션 정보, 및/또는 양자화된 잔차 계수가 엔트로피 코딩 유닛(108)으로 전송되어 압축 및/또는 패킹되어(packed) 비트스트림을 형성할 수도 있다. 참조 픽쳐 저장소(164)는 디코딩된 픽쳐 버퍼(decoded picture buffer; DPB)로 칭해질 수도 있다.
도 2는 블록 기반의 비디오 디코더의 예를 예시하는 블록도이다. 비디오 디코더(200)는 비디오 비트스트림(202)을 수신할 수도 있다. 비디오 비트스트림(202)은 엔트로피 디코딩 유닛(208)에서 언패킹 및/또는 엔트로피 디코딩될 수도 있다. 비디오 비트스트림을 인코딩하기 위해 사용되는 코딩 모드 및/또는 예측 정보는, 예측 블록을 형성하기 위해, 공간적 예측 유닛(260)(예를 들면, 인트라 코딩된 경우) 및/또는 시간적 예측 유닛(262)(예를 들면, 인터 코딩된 경우)으로 전송될 수도 있다. 인터 코딩된 경우, 예측 정보는 예측 블록 사이즈, 하나 이상의 모션 벡터(예를 들면, 이것은 모션의 방향 및 양을 나타낼 수도 있다), 및/또는 하나 이상의 참조 인덱스(예를 들면, 이것은 어떤 참조 픽쳐로부터 예측 신호를 획득하는지를 나타낼 수도 있다)를 포함할 수도 있다. 시간적 예측 블록을 형성하기 위해, 시간적 예측 유닛(262)에 의해 모션 보상 예측이 적용될 수도 있다.
잔차 변환 계수는 잔차 블록을 재구성하기 위해 역양자화 유닛(210) 및 역변환 유닛(212)으로 전송될 수도 있다. 예측 블록 및 잔차 블록은 226에서 함께 가산될 수도 있다. 재구성된 블록은, 재구성된 블록이 참조 픽쳐 저장소(264)에 저장되기 이전에, 루프 내 필터링(266)을 통과할 수도 있다. 참조 픽쳐 저장소(264)의 재구성된 비디오는 디스플레이 디바이스를 구동하기 위해 사용될 수도 있고/있거나 미래의 비디오 블록을 예측하기 위해 사용될 수도 있다. 비디오 디코더(200)는 재구성된 비디오 신호(220)를 출력할 수도 있다. 참조 픽쳐 저장소(264)도 또한 디코딩된 화상 버퍼(DPB)로 칭해질 수도 있다.
비디오 인코더 및/또는 디코더(예를 들면, 비디오 인코더(100) 또는 비디오 디코더(200))는 공간적 예측(예를 들면, 이것은 인트라 예측으로 칭해질 수도 있다)을 수행할 수도 있다. 공간적 예측은, 복수의 예측 방향 중 하나를 따르는 이미 코딩된 이웃하는 픽셀로부터 예측하는 것(예를 들면, 이것은 방향성 인트라 예측으로 칭해질 수도 있다)에 의해 수행될 수도 있다.
도 3은 여덟 개의 방향성 예측 모드의 예의 도면이다. 도 3의 여덟 개의 방향성 예측 모드는 H.264/AVC에서 지원될 수도 있다. 도 3의 300에서 일반적으로 도시되는 바와 같이, 아홉 개의 모드(DC 모드 2를 포함함)는 다음의 것이다:
● 모드 0: 수직 예측
● 모드 1: 수평 예측
● 모드 2: DC 예측
● 모드 3: 좌하 방향 대각선(diagonal down-left) 예측
● 모드 4: 우하 방향 대각선(diagonal down-right) 예측
● 모드 5: 수직 우측(vertical-right) 예측
● 모드 6: 수평 다운(horizontal-down) 예측
● 모드 7: 수직 좌측(vertical-left) 예측
● 모드 8: 수평 업(horizontal-up) 예측
공간적 예측은 다양한 사이즈 및/또는 형상의 비디오 블록에 대해 수행될 수도 있다. 비디오 신호의 루마 성분(luma component)의 공간적 예측은, 예를 들면, (예를 들면, H.264/AVC에서) 4×4, 8×8, 및 16×16 픽셀의 블록 사이즈에 대해 수행될 수도 있다. 비디오 신호의 크로마 성분(chroma component)의 공간적 예측은, 예를 들면, (예를 들면, H.264/AVC에서) 8×8의 블록 사이즈에 대해 수행될 수도 있다. 4×4 또는 8×8의 루마 블록에 대해, 예를 들면, (예를 들면, H.264/AVC에서의) 여덟 개의 방향성 예측 모드와 DC 모드인 총 아홉 개의 예측 모드가 지원될 수도 있다. 예를 들면, 사이즈 16×16의 루마 블록에 대해, 네 개의 예측 모드: 수평, 수직, DC, 및 평면 예측이 지원될 수도 있다.
또한, 방향성 인트라 예측 모드 및 비방향성 예측 모드가 지원될 수도 있다.
도 4는, 33개의 방향성 예측 모드 및 두 개의 비방향성 예측 모드의 예를 예시하는 도면이다. 도 4의 400에서 일반적으로 도시되는 33개의 방향성 예측 모드 및 두 개의 비방향성 예측 모드는 HEVC에 의해 지원될 수도 있다. 더 큰 블록 사이즈를 사용하는 공간적 예측이 지원될 수도 있다. 임의의 사이즈의, 예를 들면, 4×4, 8×8, 16×16, 32×32, 또는 64×64의 정사각형 블록 사이즈의 블록에 대해, 예를 들면, 공간적 예측이 수행될 수도 있다. (예를 들면, HEVC에서의) 방향성 인트라 예측이 1/32 픽셀 정밀도를 가지고 수행될 수도 있다.
예를 들면, 방향성 인트라 예측 외에, (예를 들면, H.264/AVC, HEVC, 또는 등등에서) 비방향성 인트라 예측 모드가 지원될 수도 있다. 비방향성 인트라 예측 모드는 DC 모드 및/또는 평면 모드를 포함할 수도 있다. DC 모드의 경우, 이용가능한 이웃 픽셀의 평균을 구하는 것에 의해 예측 값이 획득될 수도 있고 예측 값은 전체 블록에 균일하게 적용될 수도 있다. 평면 모드의 경우, 느린 전이를 갖는 부드러운 영역(smooth region)을 예측하기 위해 선형 보간이 사용될 수도 있다. H.264/AVC는 16×16 루마 블록 및 크로마 블록에 대해 평면 모드의 사용을 허용할 수도 있다.
인코더(예를 들면, 인코더(100))는 비디오 블록에 대한 최상의 코딩 모드를 결정하기 위한 모드 결정을 (예를 들면, 도 1의 블록 180에서) 수행할 수도 있다. 인코더가 (예를 들면, 인터 예측 대신) 인트라 예측을 적용할 것을 결정하는 경우, 인코더는 이용가능한 모드의 세트로부터 최적의 인트라 예측 모드를 결정할 수도 있다. 선택된 방향성 인트라 예측 모드는, 입력 비디오 블록에서의 임의의 텍스쳐, 에지, 및/또는 구조에 관한 강한 힌트를 제공할 수도 있다.
도 5는, 도 5의 500에서 일반적으로 도시되는 바와 같이, (예를 들면, 4×4 블록에 대한) 수평 예측의 예의 도면이다. 이미 재구성된 픽셀 P0, P1, P2 및 P3(즉, 음영이 있는 박스)는, 현재의 4×4 비디오 블록의 픽셀을 예측하기 위해 사용될 수도 있다. 수평 예측에서, 재구성된 픽셀, 예를 들면, 픽셀 P0, P1, P2 및/또는 P3는 4×4 블록을 예측하기 위해 대응하는 행(row)의 방향을 따라 수평으로 전파될 수도 있다. 예를 들면, 예측은 하기의 식 (1)에 따라 수행될 수도 있는데, 여기서 L(x,y)는 (x,y)에서 예측될 픽셀일 수도 있고, x,y = 0...3이다.
Figure pct00001
도 6은 도 6의 600에서 일반적으로 도시되는 바와 같이, 평면 모드의 예의 도면이다. 평면 모드는 상응하게 수행될 수도 있다: 최상부 행의 최우측 픽셀(T로 마킹됨)은 최우측 열(column)의 픽셀을 예측하기 위해 복제될 수도 있다. 좌측 열의 최하단 픽셀(L로 마킹됨)은 최하단 행의 픽셀을 예측하기 위해 복제될 수도 있다. 중앙 픽셀의 제1 예측 H(x,y)를 생성하기 위해, (좌측 블록에서 도시되는 바와 같은) 수평 방향에서의 양선형(bilinear) 보간이 수행될 수도 있다. 중앙 픽셀의 제2 예측 V(x,y)를 생성하기 위해, (우측 블록에서 도시되는 바와 같은) 수직 방향에서의 양선형 보간이 수행될 수도 있다. L(x,y) = ((H(x,y)+V(x,y))>>l)를 사용하여, 최종 예측 L(x,y)를 획득하기 위해, 수평 예측과 수직 예측 사이의 평균화가 수행될 수도 있다.
도 7 및 도 8은, 700 및 800에서 일반적으로 도시되는 바와 같이, (예를 들면, 도 1의 시간적 예측 유닛(162)을 사용한) 비디오 블록의 모션 예측의 예를 시하는 도면이다. 픽쳐 내에서의 블록 레벨 움직임의 예를 예시하는 도 8은, 예를 들면, 참조 픽쳐 "참조 픽쳐 0", "참조 픽쳐 1", 및 "참조 픽쳐 2"를 포함하는 예시적인 디코딩된 픽쳐 버퍼를 예시하는 도면이다. 현재 픽쳐에서의 블록 B0, B1, 및 B2는, 각각 참조 픽쳐 "참조 픽쳐 0", "참조 픽쳐 1", 및 "참조 픽쳐 2에서의 블록으로부터 예측될 수도 있다. 모션 예측은 현재 비디오 블록을 예측하기 위해 이웃하는 비디오 프레임으로부터의 비디오 블록을 사용할 수도 있다. 모션 예측은 시간적 상관(correlation)을 활용할 수도 있고 및/또는 비디오 신호에 내재하는 시간적 중복성을 제거할 수도 있다. 예를 들면, H.264/AVC 및 HEVC에서, 시간적 예측은 다양한 사이즈의 비디오 블록에 대해 수행될 수도 있다(예를 들면, 루마 성분의 경우, 시간적 예측 블록 사이즈는 H.264/AVC에서는 16×16으로부터 4×4로, 그리고 HEVC에서는 64×64로부터 4×4로 변할 수도 있다). (mvx, mvy)의 모션 벡터에서, 시간적 예측은 식 (2)에 의해 제공되는 바와 같이 수행될 수도 있는데:
Figure pct00002
여기서 ref(x,y)는 참조 픽쳐의 위치 (x, y)에서의 픽셀 값일 수도 있고, P(x,y)는 예측된 블록일 수도 있다. 비디오 코딩 시스템은 분수적 픽셀 정밀도(fractional pixel precision)를 갖는 인터 예측을 지원할 수도 있다. 모션 벡터 (mvx, mvy)가 분수적 픽셀 값을 갖는 경우, 분수적 픽셀 포지션에서 픽셀 값을 획득하기 위해, 하나 이상의 보간 필터가 적용될 수도 있다. 블록 기반의 비디오 코딩 시스템은, 시간적 예측을 향상시키기 위해, 다중 가설 예측을 사용할 수도 있는데, 예를 들면, 이 경우 예측 신호는 상이한 참조 픽쳐로부터의 다수의 예측 신호를 결합하는 것에 의해 형성될 수도 있다. 예를 들면, H.264/AVC 및/또는 HEVC는, 두 개의 예측 신호를 결합할 수도 있는 양예측을 사용할 수도 있다. 양예측은, 다음의 식 (3)과 같은 예측을 형성하기 위해, 참조 픽쳐로부터 각각 유래하는 두 개의 예측 신호를 결합할 수도 있는데:
Figure pct00003
여기서 P0(x,y) 및 P1(x,y)는, 각각, 제1 및 제2 예측 블록일 수도 있다. 식 (3)에서 예시되는 바와 같이, 두 개의 예측 블록은, 두 개의 모션 벡터 (mvx0,mvy0) 및 (mvx1,mvy1)을 각각 사용하여, 두 개의 참조 픽쳐 ref0(x,y) 및 ref1(x,y)로부터 모션 보상된 예측을 수행하는 것에 의해 획득될 수도 있다. 예측 블록 P(x,y)는 (예를 들면, 116에서) 소스 비디오 블록으로부터 감산되어 예측 잔차 블록을 형성할 수도 있다. 예측 잔차 블록은 (예를 들면, 변환 유닛(104)에서) 변환될 수도 있고 및/또는 (예를 들면, 양자화 유닛(106)에서) 양자화될 수도 있다. 양자화된 잔차 변환 계수 블록은, 비트 레이트를 감소시키기 위해, 엔트로피 코딩 유닛(예를 들면, 엔트로피 코딩 유닛(108))으로 전송되어 엔트로피 코딩될 수도 있다. 엔트로피 코딩된 잔차 계수는, 출력 비디오 비트스트림(예를 들면, 비트스트림(120))의 일부를 형성하도록 패킹될 수도 있다.
단일 레이어 비디오 인코더는 단일의 비디오 시퀀스 입력을 취할 수도 있고 단일 레이어 디코더로 송신되는 단일의 압축된 비트스트림을 생성할 수도 있다. 디지털 비디오 서비스(예를 들면, 위성, 케이블 및 지상 송신 채널을 통해 TV 신호를 전송하는 것과 같은 그러나 이것으로 제한되지는 않음)에 대해, 비디오 코덱이 설계될 수도 있다. 비디오 중심 애플리케이션이 이질적인 환경에서 전개되는 것과 더불어, 다양한 애플리케이션을 가능하게 하는 비디오 코딩 표준의 확장 규격으로서 다중 레이어 비디오 코딩 기술이 개발될 수도 있다. 예를 들면, 하나보다 많은 비디오 레이어를 핸들링하기 위해, 다중 레이어 비디오 코딩 기술, 예컨대 스케일러블 비디오 코딩 및/또는 멀티 뷰 비디오 코딩이 설계될 수도 있는데, 하나보다 많은 비디오 레이어에서, 각각의 레이어는 특정한 공간적 해상도, 시간적 해상도, 충실도, 및/또는 뷰의 비디오 신호를 재구성하도록 디코딩될 수도 있다. 단일 레이어 인코더 및 디코더가 도 1 및 도 2를 참조로 설명되지만, 본원에서 설명되는 개념은, 예를 들면, 멀티 뷰 및/또는 스케일러블 코딩 기술을 위해 다중 레이어 인코더 및/또는 디코더를 활용할 수도 있다.
도 9는 코딩된 비트스트림 구조의 예를 예시하는 도면이다. 코딩된 비트스트림(900)은 다수의 NAL(Network Abstraction layer; 네트워크 추상화 레이어) 단위(901)로 구성된다. NAL 단위는 코딩된 슬라이스(906)와 같은 코딩된 샘플 데이터, 또는 파라미터 세트 데이터, 슬라이스 헤더 데이터(905) 또는 보충 향상 정보 데이터(supplemental enhancement information data; 907)(보충 향상 정보 데이터는 SEI 메시지로 칭해질 수도 있다)와 같은 하이 레벨 신택스 메타데이터를 포함할 수도 있다. 파라미터 세트는, 다수의 비트스트림 레이어에 적용될 수도 있는 필수 신택스 엘리먼트(예를 들면, 비디오 파라미터 세트(902)(video parameter set; VPS)), 또는 하나의 레이어 내의 코딩된 비디오 시퀀스에 적용될 수도 있는 필수 신택스 엘리먼트(예를 들면, 시퀀스 파라미터 세트(903)(sequence parameter set; SPS)), 또는 하나의 코딩된 비디오 시퀀스 내의 다수의 코딩된 픽쳐에 적용될 수도 있는 필수 신택스 엘리먼트(예를 들면, 픽쳐 파라미터 세트(904)(picture parameter set; PPS))를 포함하는 하이 레벨 신택스 구조이다. 파라미터 세트는 비디오 비트스트림의 코딩된 픽쳐와 함께 전송되거나, (신뢰 가능한 채널, 하드 코딩, 등등을 포함한 대역외 송신을 포함하는) 다른 수단을 통해 송신될 수 있다. 슬라이스 헤더(905)도 또한, 소정의 슬라이스 또는 픽쳐 타입에만 관련되거나 상대적으로 작은 몇몇 픽쳐 관련 정보를 포함할 수도 있는 하이 레벨 신택스 구조이다. SEI 메시지(907)는, 디코딩 프로세스에 의해 필요로 되지 않을 수도 있지만 그러나 픽쳐 출력 타이밍 또는 디스플레이뿐만 아니라 손실 검출 및 은닉(concealment)과 같은 다양한 다른 목적을 위해 사용될 수 있는 정보를 반송한다(carry).
도 10은 통신 시스템의 예를 예시하는 도면이다. 통신 시스템(1000)은 인코더(1002), 통신 네트워크(1004), 및 디코더(1006)를 포함할 수도 있다. 인코더(1002)는, 유선 연결 또는 무선 연결일 수도 있는 연결(1008)을 통해 네트워크(1004)와 통신할 수도 있다. 인코더(1002)는 도 1의 블록 기반의 비디오 인코더와 유사할 수도 있다. 인코더(1402)는 단일 레이어 코덱(예를 들면, 도 1) 또는 다중레이어 코덱을 포함할 수도 있다. 디코더(1006)는, 유선 연결 또는 무선 연결일 수도 있는 연결(1010)을 통해 네트워크(1004)와 통신할 수도 있다. 디코더(1006)는 도 2의 블록 기반의 비디오 디코더와 유사할 수도 있다. 디코더(1006)는 단일 레이어 코덱(예를 들면, 도 2) 또는 다중레이어 코덱을 포함할 수도 있다.
인코더(1002) 및/또는 디코더(1006)는, 디지털 텔레비전, 무선 브로드캐스트 시스템, 네트워크 엘리먼트/단말, 서버, 예컨대 컨텐츠 또는 웹 서버(예를 들면, 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol; HTTP) 서버 등등), 개인 휴대형 정보 단말(personal digital assistant; PDA), 랩탑 컴퓨터 또는 데스크탑 컴퓨터, 태블릿 컴퓨터, 디지털 카메라, 디지털 레코딩 디바이스, 비디오 게임용 디바이스, 비디오 게임 콘솔, 셀룰러 또는 위성 무선 전화, 디지털 미디어 플레이어, 및/또는 등등과 같은 그러나 이들로 제한되지는 않는 아주 다양한 유선 통신 디바이스 및/또는 무선 송수신 유닛(WTRU)으로 통합될 수도 있다.
통신 네트워크(1004)는 적절한 타입의 통신 네트워크일 수도 있다. 예를 들면, 통신 네트워크(1004)는 보이스, 데이터, 비디오, 메시징, 브로드캐스트, 등등과 같은 컨텐츠를 다수의 무선 유저에게 제공하는 다중 액세스 시스템일 수도 있다. 통신 네트워크(1004)는, 무선 대역폭을 비롯한 시스템 리소스의 공유를 통해 다수의 무선 유저가 이러한 컨텐츠에 액세스하는 것을 가능하게 할 수도 있다. 예를 들면, 통신 네트워크(1004)는, 코드 분할 다중 액세스(code division multiple access; CDMA), 시분할 다중 액세스(time division multiple access; TDMA), 주파수 분할 다중 액세스(frequency division multiple access; FDMA), 직교 FDMA(orthogonal FDMA; OFDMA), 싱글 캐리어 FDMA(single-carrier FDMA; SC-FDMA), 및/또는 등등과 같은 하나 이상의 채널 액세스 방법을 활용할 수도 있다. 통신 네트워크(1004)는 다수의 연결된 통신 네트워크를 포함할 수도 있다. 통신 네트워크(1004)는, 셀룰러 네트워크, 와이파이 핫스팟, 인터넷 서비스 공급자(Internet Service Provider; ISP) 네트워크, 및/또는 등등과 같은 하나 이상의 사설 상업 네트워크 및/또는 인터넷을 포함할 수도 있다.
도 11은 예시적인 WTRU의 시스템 도면이다. 도시되는 바와 같이, 예시적인 WTRU(1100)는 프로세서(1118), 트랜스시버(1120), 송신/수신 엘리먼트(1122), 스피커/마이크(1124), 키패드 또는 키보드(1126), 디스플레이/터치패드(1128), 비착탈식 메모리(1130), 착탈식 메모리(1132), 전원(1134), 글로벌 포지셔닝 시스템(global positioning system; GPS) 칩셋(1136), 및/또는 다른 주변장치(1138)를 포함할 수도 있다. WTRU(1100)는 한 실시형태와 여전히 부합하면서 상기 엘리먼트의 임의의 부조합을 포함할 수도 있다는 것을 알 수 있을 것이다. 또한, 인코더(예를 들면 인코더(100)) 및/또는 디코더(예를 들면, 디코더(200))가 통합되는 단말은, 도 11의 WTRU(1100)를 참조로 본원에서 묘사되고 설명되는 엘리먼트 중 일부 또는 전체를 포함할 수도 있다.
프로세서(1118)는 범용 프로세서, 특수 목적의 프로세서, 종래의 프로세서, 디지털 신호 프로세서(digital signal processor; DSP), 그래픽 프로세싱 유닛(graphics processing unit; GPU), 복수의 마이크로프로세서, DSP 코어와 관련하는 하나 이상의 마이크로프로세서, 컨트롤러, 마이크로컨트롤러, 주문형 반도체(Application Specific Integrated Circuit; ASIC), 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array; FPGA) 회로, 임의의 다른 타입의 집적 회로(integrated circuit; IC), 상태 머신, 및 등등일 수도 있다. 프로세서(1118)는 신호 코딩, 데이터 프로세싱, 전력 제어, 입/출력 프로세싱, 및/또는 WTRU(1100)가 유선 및/또는 무선 환경에서 동작하는 것을 가능하게 하는 임의의 다른 기능성(functionality)을 수행할 수도 있다. 프로세서(1118)는, 송신/수신 엘리먼트(1122)에 커플링될 수도 있는 트랜스시버(1120)에 커플링될 수도 있다. 도 11이 프로세서(1118)와 트랜스시버(1120)를 별개의 컴포넌트로서 묘사하지만, 프로세서(1118)와 트랜스시버(1120)는 전자적 패키지 또는 칩에서 함께 집적될 수도 있다는 것을 알 수 있을 것이다.
송신/수신 엘리먼트(1122)는 무선 인터페이스(1115)를 통해 다른 단말로 신호를 송신하고, 및/또는 그 다른 단말로부터 신호를 수신하도록 구성될 수도 있다. 예를 들면, 하나 이상의 실시형태에서, 송신/수신 엘리먼트(1122)는 RF 신호를 송신 및/또는 수신하도록 구성되는 안테나일 수도 있다. 하나 이상의 실시형태에서, 송신/수신 엘리먼트(1122)는, 예를 들면, IR, UV, 또는 가시광 신호를 송신 및/또는 수신하도록 구성되는 방출기(emitter)/검출기일 수도 있다. 하나 이상의 실시형태에서, 송신/수신 엘리먼트(1122)는 RF 및 광 신호 둘 다를 송신 및 수신하도록 구성될 수도 있다. 송신/수신 엘리먼트(1122)는 무선 신호의 임의의 조합을 송신 및/또는 수신하도록 구성될 수도 있다는 것을 알 수 있을 것이다.
또한, 송신/수신 엘리먼트(1122)가 도 11에서 단일의 엘리먼트로서 묘사되지만, WTRU(1100)는 임의의 수의 송신/수신 엘리먼트(1122)를 포함할 수도 있다. 더 구체적으로는, WTRU(1100)는 MIMO 기술을 활용할 수도 있다. 따라서, 하나의 실시형태에서, WTRU(1100)는, 무선 인터페이스(1115)를 통해 무선 신호를 송신 및 수신하기 위한 2개 이상의 송신/수신 엘리먼트(11522)(예를 들면, 다수의 안테나)를 포함할 수도 있다.
트랜스시버(1120)는, 송신/수신 엘리먼트(1122)에 의해 송신될 신호를 변조하도록 그리고 송신/수신 엘리먼트(1122)에 의해 수신되는 신호를 복조하도록 구성될 수도 있다. 상기에서 언급된 바와 같이, WTRU(1100)는 다중 모드 성능을 가질 수도 있다. 따라서, 트랜스시버(1120)는, WTRU(1100)가, 예를 들면, UTRA 및 IEEE 802.11과 같은 다수의 RAT를 통해 통신하는 것을 가능하게 하기 위한 다수의 트랜스시버를 포함할 수도 있다.
WTRU(1100)의 프로세서(1118)는, 스피커/마이크(1124), 키패드(1126), 및/또는 디스플레이/터치패드(1128)(예를 들면, 액정 디스플레이(liquid crystal display; LCD) 디스플레이 유닛 또는 유기 발광 다이오드(organic light- emitting diode; OLED) 디스플레이 유닛)에 커플링될 수도 있고, 그리고 이들로부터 유저 입력 데이터를 수신할 수도 있다. 프로세서(1118)는 유저 데이터를 스피커/마이크(1124), 키패드(1126), 및/또는 디스플레이/터치패드(1128)로 또한 출력할 수도 있다. 또한, 프로세서(1118)는, 비착탈식 메모리(1130) 및/또는 착탈식 메모리(1132)와 같은 임의의 타입의 적절한 메모리의 정보에 액세스할 수도 있고, 그리고 그 임의의 타입의 적절한 메모리에 데이터를 저장할 수도 있다. 비착탈식 메모리(1130)는 랜덤 액세스 메모리(random-access memory; RAM), 리드 온리 메모리(read-only memory; ROM), 하드디스크, 또는 임의의 다른 타입의 메모리 스토리지 디바이스를 포함할 수도 있다. 착탈식 메모리(1132)는 가입자 식별 모듈(subscriber identity module; SIM) 카드, 메모리 스틱, 시큐어 디지털(secure digital; SD) 메모리 카드 등등을 포함할 수도 있다. 하나 이상의 실시형태에서, 프로세서(1118)는, WTRU(1100) 상에, 예컨대 서버 또는 가정용 컴퓨터(도시되지 않음) 상에 물리적으로 위치되지 않는 메모리의 정보에 액세스할 수도 있고, 그리고 그 메모리에 데이터를 저장할 수도 있다.
프로세서(1118)는 전원(1134)으로부터 전력을 수신할 수도 있고, WTRU(1100)의 다른 컴포넌트로 전력을 분배하도록 및/또는 그 전력을 제어하도록 구성될 수도 있다. 전원(1134)은 WTRU(1100)에 전력을 공급하기 위한 임의의 적절한 디바이스일 수도 있다. 예를 들면, 전원(1134)은 하나 이상의 드라이 셀 배터리(예를 들면, 니켈 카드뮴(NiCd), 니켈 아연(NiZn), 니켈 금속 수소(NiMH), 리튬 이온(Li ion) 등등), 솔라 셀, 연료 전지 등등을 포함할 수도 있다.
프로세서(1118)는, WTRU(1100)의 현재 위치에 관한 위치 정보(예를 들면, 경도 및 위도)를 제공하도록 구성될 수도 있는 GPS 칩셋(1136)에 커플링될 수도 있다. GPS 칩셋(1136)으로부터의 정보 외에, 또는 그 정보 대신, WTRU(1100)는 무선 인터페이스(1115)를 통해 단말(예를 들면, 기지국)로부터 위치 정보를 수신할 수도 있고 및/또는 두 개 이상의 가까운 기지국으로부터 수신되고 있는 신호의 타이밍에 기초하여 자신의 위치를 결정할 수도 있다. WTRU(1100)는 한 실시형태와 여전히 부합하면서 임의의 적절한 위치 결정 방법을 통해 위치 정보를 획득할 수도 있다는 것을 알 수 있을 것이다.
프로세서(1118)는, 추가적인 피쳐, 기능성, 및/또는 유선 또는 무선 연결성을 제공하는 하나 이상의 소프트웨어 및/또는 하드웨어 모듈을 포함할 수도 있는 다른 주변장치(1138)에 추가로 커플링될 수도 있다. 예를 들면, 주변장치(1138)는 가속도계, 방위 센서, 모션 센서, 근접 센서, 전자 콤파스, 위성 트랜스시버, (예를 들면, 사진 및 비디오용의) 디지털 카메라 및/또는 비디오 레코더, 범용 직렬 버스(universal serial bus; USB) 포트, 진동 디바이스, 텔레비전 트랜스시버, 핸즈프리 헤드셋, Bluetooth® 모듈, 주파수 변조(frequency modulated; FM) 라디오 유닛, 및 소프트웨어 모듈 예컨대 디지털 뮤직 플레이어, 미디어 플레이어, 비디오 게임 플레이어 모듈, 인터넷 브라우저, 및 등등을 포함할 수도 있다.
예로서, WTRU(1100)는 무선 신호를 송신 및/또는 수신하도록 구성될 수도 있고 유저 기기(user equipment; UE), 이동국, 고정식 또는 이동식 가입자 유닛, 페이저, 셀룰러 전화, 개인 휴대형 정보 단말기(PDA), 스마트폰, 랩탑, 넷북, 태블릿 컴퓨터, 퍼스널 컴퓨터, 무선 센서, 가전기기(consumer electronics), 또는 압축된 비디오 통신을 수신 및 프로세싱할 수 있는 임의의 다른 단말을 포함할 수도 있다.
WTRU(1100) 및/또는 통신 네트워크(예를 들면, 통신 네트워크(1004))는, 광대역 CDMA(wideband CDMA; WCDMA)를 사용하여 무선 인터페이스(1115)를 확립할 수도 있는 무선 기술 예컨대 범용 이동 통신 시스템(Universal Mobile Telecommunications System; UMTS) 지상 무선 액세스(Terrestrial Radio Access)(UTRA)를 구현할 수도 있다. WCDMA는 고속 패킷 액세스(High-Speed Packet Access; HSPA) 및/또는 진화된 HSPA(Evolved HSPA; HSPA + )와 같은 통신 프로토콜을 포함할 수도 있다. HSPA는 고속 다운링크 패킷 액세스(High-Speed Downlink Packet Access; HSDPA) 및/또는 고속 업링크 패킷 액세스(High-Speed Uplink Packet Access; HSUPA)를 포함할 수도 있다. WTRU(1100) 및/또는 통신 네트워크(예를 들면, 통신 네트워크(1004))는, 롱 텀 에볼루션(LTE) 및/또는 LTE-어드밴스드(LTE-Advanced; LTE-A)를 사용하여 무선 인터페이스(1115)를 확립할 수도 있는 무선 기술 예컨대 진화형 UMTS 지상 무선 액세스(Evolved UMTS Terrestrial Radio Access; E-UTRA)를 구현할 수도 있다.
WTRU(1100) 및/또는 통신 네트워크(예를 들면, 통신 네트워크(1004))는, IEEE 802.16(즉, 와이맥스(Worldwide Interoperability for Microwave Access; WiMAX)), CDMA2000, CDMA2000 1X, CDMA2000 EV-DO, IS-2000(Interim Standard 2000), IS-95(Interim Standard 95), IS-856(Interim Standard 856), 이동 통신용 글로벌 시스템(Global System for Mobile communications; GSM), 에지(EDGE: Enhanced Data rates for GSM Evolution), GSM EDGE(GERAN), 및 등등과 같은 무선 기술을 구현할 수도 있다. WTRU(1100) 및/또는 통신 네트워크(예를 들면, 통신 네트워크(1004))는 IEEE 802.11, IEEE 802.15, 또는 등등과 같은 무선 기술을 구현할 수도 있다.
II. 시간적 블록 벡터 예측
도 12는 예시적인 양방향 스크린 컨텐츠 공유 시스템(1200)을 예시하는 기능적 블록도이다. 도면은, 캡쳐기(capturer)(1202), 인코더(1204), 및 송신기(1206)를 포함하는 호스트 서브시스템을 예시한다. 도 12는 또한, 수신기(1208)(이것은 수신된 입력 비트스트림(1210)을 출력한다), 디코더(1212), 및 디스플레이(렌더러(renderer))(1218)를 포함하는 클라이언트 서브시스템을 예시한다. 디코더(1212)는 디스플레이 픽쳐 버퍼(1214)로 출력하고, 디스플레이 픽쳐 버퍼(1214)는 결국에는 디코딩된 픽쳐(1216)를 디스플레이(1218)로 송신한다. 예를 들면, 『T. Vermeir, "Use cases and requirements for lossless and screen content coding", JCTVC-M0172, Apr. 2013, Incheon, KR』 및 『J. Sole, R. Joshi, M. Karczewicz, "AhG8: Requirements for wireless display applications", JCTVC-M0315, Apr. 2013, Incheon, KR』에서 설명되는 바와 같이, 스크린 컨텐츠 코딩(screen content coding; SCC)에 대한 업계 애플리케이션 요건이 존재한다.
송신 대역폭 및 스토리지를 절약하기 위해, MPEG는 수 년 동안 비디오 코딩 표준에 대해 연구해오고 있다. 고효율 비디오 코딩(High Efficiency Video Coding; HEVC)은, 『B. Bross, W-J. Han, G. J. Sullivan, J-R. Ohm, T. Wiegand, "High Efficiency Video Coding (HEVC) Text Specification Draft 10", JCTVC-L1003. Jan 2013』에서 설명되는 바와 같이, 신흥의 비디오 압축 표준이다. HEVC는, ITU-T 비디오 코딩 전문가 그룹(Video Coding Experts Group; VCEG) 및 ISO/IEC 동화상 전문가 그룹(Moving Picture Experts Group; MPEG)이 함께 연합하여 현재 개발 중에 있다. HEVC는 동일한 품질에서 H.264에 비해 50% 대역폭을 절약할 수 있다. HEVC는, 자신의 인코더 및 디코더가 도 1 및 도 2에 따라 동작할 수도 있다는 점에서, 여전히 블록 기반의 하이브리드 비디오 코딩 표준이다.
HEVC는 더 큰 비디오 블록의 사용을 허용하고, 블록 코딩 정보를 시그널링하기 위해 쿼드트리 구획(quadtree partition)을 사용한다. 픽쳐 또는 슬라이스는 동일한 사이즈(예를 들면, 64×64)를 갖는 코딩 트리 블록(coding tree block; CTB)으로 먼저 구획된다. 각각의 CTB는 쿼드트리를 갖는 코딩 단위(coding unit; CU)로 구획되고, 각각의 CU는, 또한 쿼드트리를 사용하여, 예측 유닛(prediction unit; PU), 및 변환 단위(transform unit; TU)로 더 구획된다. 각각의 인터 코딩된 CU의 경우, 그것의 PU는, 도 13에서 도시되는 바와 같이, 8 개의 구획 모드 중 하나일 수 있다. 모션 보상 예측으로도 또한 칭해지는 시간적 예측은 인터 코딩된 PU를 재구성하기 위해 적용된다. 모션 벡터의 정밀도(이것은 HEVC에서 1/4 픽셀까지일 수 있다)에 따라, 분수적 포지션에서 픽셀 값을 획득하기 위해 선형 필터가 적용된다. HEVC에서, 보간 필터는 루마에 대해 7 또는 8개의 탭(tap)을 그리고 크로마에 대해 4개의 탭을 구비한다. HEVC의 디블록화 필터는 컨텐츠 기반이고; 코딩 모드 차이, 모션 차이, 참조 픽쳐 차이, 픽셀 값 차이, 및 등등과 같은 다수의 인자에 따라, TU 및 PU 경계에서 상이한 디블록화 필터 동작이 적용된다. 엔트로피 코딩의 경우, HEVC는, 하이 레벨 파라미터를 제외한 대부분의 블록 레벨 신택스 엘리먼트에 대해 콘텍스트 기반 적응 산술 이진 코딩(context-based adaptive arithmetic binary coding; CABAC)을 채택한다. CABAC 코딩에서는 두 종류의 빈이 존재한다: 하나는 컨텍스트 기반으로 코딩된 통상적인 빈(context-based coded regular bin)이고, 나머지 하나는 컨텍스트가 없는 바이패스 코딩된 빈(by-pass coded bin)이다.
현재 HEVC 설계가 다양한 블록 코딩 모드를 포함하지만, 그것은 스크린 컨텐츠 코딩을 위해 공간적 중복성을 완전히 활용하지 않는다. 이것은 HEVC가 연속적인 톤의 비디오 컨텐츠에 초점을 맞추기 때문이며, 모드 결정 및 변환 코딩 툴은 4:4:4 비디오의 포맷으로 종종 캡쳐되는 이산적인 톤의 컨텐츠에 대해 최적화되지 않는다. HEVC 표준이 2013년에 최종적으로 승인되 이후, 표준화 단체 VCEG 및 MPEG은 스크린 컨텐츠 코딩(SCC)을 위한 HEVC의 미래의 확장에 대해 연구하기 시작했다. 2014년 1월에, 스크린 컨텐츠 코딩의 제안 요청이 ITU-T VCEG 및 ISO/IEC MPEG에 의해 공동으로 발표되었다. 『ITU-T Q6/16 and ISO/IEC JCT1/SC29/WG11, "Joint Call for Proposals for Coding of Screen Content", MPEG2014/N14175, Jan. 2014, San Jose, USA ("N14175 2014")』를 참조하라. CfP는 여러 가지 효율적인 SCC 솔루션을 제공하는 상이한 회사로부터 7개의 응답을 수신했다. 텍스트 및 그래픽과 같은 스크린 컨텐츠는, 라인 세그먼트 또는 블록의 관점에서 고도로 반복적인 패턴을 가지며 많은 동질성의 작은 영역(예를 들면, 단색 컬러 영역)을 갖는다. 일반적으로, 작은 블록 내에 단지 몇 개의 컬러만 존재한다. 대조적으로, 자연 비디오의 경우 작은 블록에서 조차도 많은 컬러가 존재한다. 각각의 포지션에서의 컬러 값은, 일반적으로, 그것의 위쪽 또는 좌측 픽셀로부터 반복된다. 자연 비디오 컨텐츠와 비교한 스크린 컨텐츠의 상이한 특성을 고려하여, 스크린 컨텐츠 코딩의 코딩 효율성을 향상시키는 몇몇 신규의 코딩 툴이 제안되었다. 예는 다음을 포함한다:
● 1 D 스트링 카피: T. Lin, S. Wang, P. Zhang, and K. Zhou, "AHG8: P2M based dual- coder extension of HEVC", Document no JCTVC-L0303, Jan. 2013.
● 팔레트 코딩: X. Guo, B. Li, J.-Z. Xu, Y. Lu, S. Li, and F. Wu, "AHG8: Major- color-based screen content coding", Document no JCTVC-O0182, Oct. 2013; L. Guo, M. Karczewicz, J. Sole, and R. Joshi, "Evaluation of Palette Mode Coding on HM- 12.0+RExt-4.1", JCTVC-O0218, Oct. 2013.
● 인트라 블록 카피(IntraBC): C. Pang, J. Sole, L. Guo, M. Karczewicz, and R. Joshi, "Non-RCE3: Intra Motion Compensation with 2-D MVs", JCTVC-N0256, July 2013; D. Flynn, M. Naccari, K.Sharman, C. Rosewarne, J. Sole, G. J. Sullivan, T. Suzuki, "HEVC Range Extension Draft 6", JCTVC-P1005, Jan. 2014, San Jose.
이들 스크린 컨텐츠 코딩 관련 툴 모두는 실험에서 조사되었다:
● J. Sole, S. Liu, "HEVC Screen Content Coding Core Experiment 1 (SCCE1): Intra Block Copying Extensions", JCTVC-Q1121, Mar. 2014, Valencia.
● C.-C. Chen, X. Xu, L. Zhang, "HEVC Screen Content Coding Core Experiment 2 (SCCE2): Line-based Intra Copy", JCTVC-Q1122, Mar. 2014, Valencia.
● Y.-W. Huang, P. Onno, R. Joshi, R. Cohen, X. Xiu, Z. Ma, "HEVC Screen Content Coding Core Experiment 3 (SCCE3): Palette mode", JCTVC-Q1123, Mar. 2014, Valencia.
● Y. Chen, J. Xu, "HEVC Screen Content Coding Core Experiment 4 (SCCE4): String matching for sample coding", JCTVC-Q1124, Mar. 2014, Valencia.
● X. Xiu, J. Chen, "HEVC Screen Content Coding Core Experiment 5 (SCCE5): Inter-component prediction and adaptive color transforms", JCTVC-Q1125, Mar. 2014, Valencia.
1D 스트링 카피는, 이전의 재구성된 픽셀 버퍼로부터 가변 길이를 갖는 스트링을 예측한다. 포지션 및 스트링 길이는 시그널링될 것이다. 팔레트 코딩에서는, 픽셀 값을 직접적으로 코딩하는 대신, 이들 유의한 컬러를 기록하기 위해, 팔레트 테이블이 딕셔너리로서 사용된다. 그리고 대응하는 팔레트 인덱스 맵은 코딩 블록 내에서 각각의 픽셀의 컬러 값을 나타내기 위해 사용된다. 또한, "런(run)" 값은, 공간적 중복성을 감소시키기 위해 동일한 유의한 컬러(즉, 팔레트 인덱스)를 갖는 연속하는 픽셀의 길이를 나타내도록 사용된다. 팔레트 코딩은 일반적으로, 성긴 컬러를 포함하는 큰 블록에 대해 선택된다. 인트라 블록 카피는 현재 픽쳐에서의 이미 재구성된 픽셀을 사용하여 동일한 픽쳐 내의 현재 코딩 블록을 예측하고, 블록 벡터(BV)로 칭해지는 변위 정보는 코딩된다.
도 19는 인트라 블록 카피의 예를 도시한다. 복잡성 및 대역폭 액세스 요건을 고려하면, HEVC SCC 기준 소프트웨어(SCM-1.0)는 인트라 블록 카피 모드에 대해 두 개의 구성을 갖는다. 『R. Joshi, J. Xu, R. Cohen, S. Liu, Z. Ma, Y. Ye, "Screen content coding test model 1 (SCM 1)", JCTVC-Q1014, Mar. 2014, Valencia』을 참조하라.
제1 구성은 풀 프레임 인트라 블록 카피인데, 여기서는 도 13에서 도시되는 바와 같이 모든 재구성된 픽셀이 예측을 위해 사용될 수 있다. 블록 벡터 검색 복잡성을 감소시키기 위해, 해시 기반의 인트라 블록 카피 검색이 제안되어 있다. 『B. Li, J. Xu, "Hash-based intraBC search", JCTVC-Q0252, Mar. 2014, Valencia』; 『C. Pang, J.Sole, T. Hsieh, M. Karczewicz, "Intra block copy with larger search region", JCTVC-Q0139, Mar. 2014, Valencia』를 참조하라.
제2 구성은 도 14에서 도시되는 바와 같이 로컬 영역 인트라 블록 카피인데, 여기서는, 좌측 및 현재 코딩 트리 단위(coding tree units; CTU)의 오직 재구성된 픽셀만이 참조로서 사용되도록 허용될 수 있다.
SCC와 자연 비디오 코딩 사이에 다른 차이가 존재한다. 자연 비디오 코딩의 경우, 코딩 왜곡은 일반적으로 전체 픽쳐에 걸쳐 분산된다. 그러나, 스크린 컨텐츠의 경우, 코딩 왜곡 또는 에러는 일반적으로 강한 에지 주변에 집중된다. 이 에러 집중은, 전체 픽쳐에 대해 PSNR(peak signal to noise ratio; 최대 신호 대 잡음비)이 꽤 높은 경우에도, 아티팩트(artifact)를 더욱 가시적으로 만들 수 있다. 따라서, 스크린 컨텐츠는 주관적인 품질 관점에서 인코딩하기가 더욱 어렵다.
현재의 HEVC 표준에서는, 병합 모드를 갖는 인터 PU는, 모션 벡터(MV) 코딩을 위해 사용되는 비트를 감소시키기 위해 공간적 및 시간적 이웃 예측 유닛으로부터의 모션 정보를 재사용할 수 있다. 인터 코딩된 2N×2N CU가 병합 모드를 사용하고 그것의 모든 변환 단위의 양자화된 계수가 제로이면, TU의 루트에서 구획 사이즈의 코딩된 블록 플래그의 코딩을 스킵하는 것에 의해 비트를 더 절약하기 위해 인터 코딩된 2N×2N CU는 스킵 모드로서 코딩된다. 병합 모드에서의 가능한 후보의 세트는, 다수의 공간적 이웃 후보, 하나의 시간적 이웃 후보, 및 하나 이상의 생성된 후보로 구성된다. HEVC는 5개가지의 병합 후보를 허용한다.
도 15는 다섯 개의 공간적 후보의 포지션을 도시한다. 병합 후보의 리스트를 구성하기 위해, 다섯 개의 공간적 후보는 먼저 체크되고 A1, B1, B0, A0 및 B2의 순서에 따라 리스트에 추가된다. 하나의 공간적 포지션에 위치되는 블록이 인트라 코딩되거나 또는 현재 슬라이스의 경계 밖에 있으면, 그것의 모션은 이용불가능한 것으로 간주되고 그것은 후보 리스트에 추가되지 않을 것이다. 또한, 공간적 후보의 중복성을 제거하기 위해, 후보가 정확히 동일한 모션 정보를 갖는 임의의 중복하는 엔트리도 또한 리스트로부터 배제된다. 모든 유효한 공간적 후보를 병합 후보 리스트에 삽입한 이후, 시간적 후보는 시간적 모션 벡터 예측(temporal motion vector prediction; TMVP) 기술에 의해 병치된 참조 픽쳐의 병치된 블록의 모션 정보로부터 생성된다. HEVC는, 자신의 참조 픽쳐 리스트 및 리스트의 자신의 참조 픽쳐 인덱스를 전송하는 것에 의해, 비트 스트림에서의 (슬라이스 헤더에서의) TMVP를 위해 사용되는 병치된 참조 픽쳐의 명시적 시그널링을 허용한다. 병합 후보의 실제 수 N(디폴트로 N=5)은 슬라이스 헤더에서 시그널링된다. 병합 후보(공간적 및 시간적 후보를 포함함)의 수가 N보다 더 크면, 처음 N-1개의 공간적 후보 및 시간적 후보만이 리스트에서 유지된다. 그렇지 않고, 병합 후보의 수가 N보다 더 작으면, 그 수가 N에 도달할 때까지 여러 개의 결합된 후보 및 제로 모션 후보가 후보 리스트에 추가될 수 있다. 『B. Bross, W-J. Han, G. J. Sullivan, J-R. Ohm, T. Wiegand, "High Efficiency Video Coding (HEVC) Text Specification Draft 10", JCTVC-L1003. Jan. 2013』를 참조하라.
도 15를 예로서 취하면, 인터 병합 후보 리스트를 구성하는 체킹 순서는 다음과 같이 요약된다,
(병합 단계 1) 좌측 이웃 PU A1을 체크한다. A1이 인터 PU이면, 그것의 MV를 후보 리스트에 추가한다.
(병합 단계 2) 상부 이웃 PU B1을 체크한다. B1이 인터 PU이고 그것의 MV가 리스트에서 유일하면, 그것의 MV를 후보 리스트에 추가한다.
(병합 단계 3) 우상(top right) 이웃 PU B0을 체크한다. B0가 인터 PU이고 그것의 MV가, B1이 인터 PU인 경우의 B1의 MV와 상이하면, B0의 MV를 후보 리스트에 추가한다.
(병합 단계 4) 좌하(bottom left) 이웃 PU A0을 체크한다. A0가 인터 PU이고 그것의 MV가, A1이 인터 PU인 경우의 A1의 MV와 상이하면, A0의 MV를 후보 리스트에 추가한다.
(병합 단계 5) 후보의 수가 4 미만이면, 좌상(top left) 이웃 PU B2를 체크한다. B2가 인터 PU이고 그것의 MV가, B1이 인터 PU인 경우의 B1의 MV와 상이하고 A1이 인터 PU인 경우의 A1의 MV와 상이하면, B2의 MV를 후보 리스트에 추가한다.
(병합 단계 6) 병치된 픽쳐에서의 병치된 PU C를, 하기에 설명되는 TMVP 방법을 사용하여 체크한다.
(병합 단계 7) 인터 병합 후보 리스트가 가득 찬 상태가 아니면, 그리고 현재 슬라이스가 B 슬라이스이면, 단계 (병합 단계 1) 내지 (병합 단계 6) 동안 현재 병합 리스트에 추가된 다양한 병합 후보의 조합이 체크되고 병합 후보 리스트에 추가된다.
(병합 단계 8) 인터 병합 후보 리스트가 가득 찬 상태가 아니면, 리스트가 가득 찰 때까지, 참조 픽쳐 리스트의 제1 참조 픽쳐로부터 시작하는 상이한 참조 픽쳐 조합을 갖는 제로 모션 벡터가 리스트에 추가된다.
코딩된 슬라이스가 B 슬라이스이면, 프로세스 "병합 단계 8"은, 양 리스트(예를 들면, 리스트 0(list-0) 및 리스트 1(list-1))에 의해 공유되는 모든 참조 픽쳐 인덱스를 가로지르는(traversing) 것에 의해 제로 모션 벡터를 갖는 이들 양예측 후보를 추가한다. 한 실시형태에서, MV는 네 개의 성분 변수(list_idx, ref_idx, MV_x, MV_y)로서 표현될 수 있다. 값 list_idx는 리스트 인덱스이고 0(예를 들면, 리스트 0) 또는 1(예를 들면 리스트 1) 중 어느 하나일 수 있고; ref_idx는 list_idx에 의해 명시되는 리스트에서의 참조 픽쳐 인덱스이고; MV_x 및 MV_y는 수평 및 수직 방향에서의 모션 벡터의 두 성분이다. 그 다음, "병합 단계 8" 프로세스는 다음의 식을 사용하여 양 리스트에서의 공유된 인덱스의 수를 유도하는데:
Figure pct00004
여기서 num_ref_idx_l0 및 num_ref_idx_l1는, 각각, 리스트 0 및 리스트 1에서의 참조 픽쳐의 수이다. 그 다음, 병합 후보 리스트가 가득 찰 때까지, 양예측 모드를 갖는 병합 후보에 대한 MV 쌍은 순서대로 추가되는데:
Figure pct00005
여기서 ref_idx는 다음과 같이 정의된다:
Figure pct00006
비병합 모드의 경우, HEVC는 현재 PU가 공간적 및 시간적 후보로부터 자신의 MV 예측자를 선택하는 것을 허용한다. 이것은 본원에서 AMVP 또는 향상된 모션 벡터 예측(advanced motion vector prediction)으로서 칭해진다. AMVP의 경우, 최대로 단지 두 개의 공간적 모션 예측자 후보만이, 자신의 이용가능성에 따라, 도 15의 다섯 개의 공간적 후보 중에서 선택될 수 있다. 제1 공간적 후보는 좌측 포지션 A1 및 A0의 세트로부터 선택되고, 제2 공간적 후보는 상부 포지션 B1, B0 및 B2의 세트로부터 선택되지만, 검색은 두 세트에서 나타내어지는 것과 동일한 순서로 행해진다. 이용가능하고 고유한 공간적 후보만이 예측자 후보 리스트에 추가된다. 이용가능하고 고유한 공간적 후보의 수가 2 미만이면, TMVP 프로세스로부터 생성되는 시간적 MV 예측자 후보는 리스트에 추가된다. 최종적으로, 리스트가 여전히 2 미만의 후보를 포함하면, MV 예측자 후보의 수가 2와 동일할 때까지 제로 MV 예측자가 또한 반복적으로 추가될 수 있다.
도 16은, 병합 모드 및 비병합 모드 둘 다에 대한, mvLX로서 표기되는 시간적 후보를 생성하기 위해, HEVC에서 사용되는 TMVP 프로세스의 플로우차트이다. 현재 PU currPU의 참조 인덱스 refIdxLX(X는 0 또는 1) 및 입력 참조 리스트 LX가 단계 1602에서 입력된다. 단계 1604에서, 병치된 참조 픽쳐의 currPU의 영역 바로 밖의 우하(right-bottom) 블록의 이용가능성을 체크하는 것에 의해, 병치된 블록 colPU가 식별된다. 이것은 도 15에서 "병치된 PU"(1502)로서 도시된다. 우하 블록이 이용가능하지 않으면, 도 15에서 "대안적인 병치된 PU"(1504)로서 도시되는, 병치된 참조 픽쳐의 currPU의 중앙 포지션에 있는 블록이 대신 사용된다. 그 다음, 다음 문단에서 설명되는 바와 같이, 병치된 참조 픽쳐를 위치 결정하기 위해 사용되는 현재 픽쳐의 참조 리스트 및 현재 픽쳐의 참조 픽쳐의 픽쳐 순서 카운트(picture order count; POC)에 기초하여, colPU의 참조 리스트 listCol이 단계 1606에서 결정된다. 그 다음, colPU의 참조 인덱스 refldxCol 및 대응하는 MV mvCol를 검색하기(retrieve) 위해, 참조 리스트 listCol이 단계 1608에서 사용된다. 단계 1610-1612에서, currPU의 참조 픽쳐(refIdxLX에 의해 나타내어짐)의 장기간/단기간 특성은 colPU의 참조 픽쳐(refIdxCol에 의해 나타내어짐)의 것에 비교된다. 두 개의 참조 픽쳐 중 하나가 장기간 픽쳐이고 한편 나머지 하나가 단기간 픽쳐이면, 시간적 후보 mvLX는 이용불가능한 것으로 간주된다. 그렇지 않고, 두 개의 참조 픽쳐 모두가 장기간 픽쳐이면, mvLX는 단계 1616에서 mvCol이 되도록 바로 동일하게 설정된다. 그렇지 않다면(두 개의 참조 픽쳐 모두가 단기간 참조 픽쳐이면), mvLX는, 단계 1617-1618에서, mvCol의 스케일링된 버전이 되도록 설정된다.
도 16에서, currPU의 참조 픽쳐와 현재 픽쳐 사이의 POC 차이를 나타내기 위해 currPocDiff가 사용되고, colPocDiff는 colPU의 참조 픽쳐와 병치된 참조 픽쳐 사이의 POC 차이를 나타낸다. 이들 두 개의 POC 차이 값은 도 15에서 또한 예시된다. currPocDiff 및 colPocDiff 둘 다가 주어지면, currPU의 예측된 MV mvLX는
Figure pct00007
에 의해 주어지는 바와 같이 mvCol로부터 계산된다.
또한, HEVC 표준의 병합 모드에서, 시간적 후보에 대한 참조 인덱스는 항상 0으로 설정된다, 즉 refIdxLX는 항상 0과 동일한데, 시간적 병합 후보가 리스트 LX의 제1 참조 픽쳐로부터 항상 유래한다는 것을 의미한다.
colPU의 참조 리스트 listCol은, 현재 픽쳐 currPic의 참조 픽쳐의 POC뿐만 아니라 병치된 참조 픽쳐를 포함하는 currPic의 참조 리스트 refPicListCol에 기초하여 선택되는데; refPicListCol는 신택스 엘리먼트 collocated_from_10_flag를 사용하여 슬라이스 헤더에서 시그널링된다. 도 17은 HEVC에서 listCol를 선택하는 프로세스를 도시한다. 『B. Bross, W-J. Han, G. J. Sullivan, J-R. Ohm, T. Wiegand, "High Efficiency Video Coding (HEVC) Text Specification Draft 10", JCTVC-L1003, Jan. 2013』를 참조하라. 단계 1704에서, currPic의 참조 픽쳐 리스트의 모든 픽쳐 pic의 POC는 currPic의 POC 이하이고, listCol은 단계 1712에서 입력 참조 리스트 LX(X는 0 또는 1)와 동일하게 설정된다. 그렇지 않다면(currPic의 적어도 하나의 참조 픽쳐 리스트의 적어도 하나의 참조 픽쳐 pic가 currPic의 POC보다 더 큰 POC를 가지면), listCol는, 단계 1706, 1708, 1710에서, refPicListCol의 반대와 동일하게 설정된다.
현재 PU에 대한 모션 벡터 MV의 참조 픽쳐 인덱스 cldx(cMV) 및 리스트 cList(cMV)가 주어지면, MV 예측자 리스트 구성 프로세스는 다음과 같이 요약된다,
(1) 좌하 이웃 PU A0을 체크한다. A0이 인터 PU이고 리스트 cList(cMV)에서의 A0의 MV가 cMV와 동일한 참조 픽쳐를 가리키면, 그것을 예측자 리스트에 추가한다; 그렇지 않다면, 다른 리스트 oppositeList(cList(cMV))에서 A0의 MV를 체크한다. 이 MV가 cMV와 동일한 참조 픽쳐를 가리키면, 그것을 리스트에 추가하고, 그렇지 않으면 A0는 실패한다. 함수 oppositeList(ListX)는 ListX의 반대 리스트를 정의하는데, 여기서:
Figure pct00008
(2) A0가 실패하면, (1)과 동일한 방식으로 A1을 체크한다.
(3) 양 단계 (1) 및 (2)가 실패하는 경우, A0가 인터 PU이고 리스트 cList(cMV)에서의 그것의 모션 벡터 MV_A0가 단기간 MV이고, cMV도 또한 단기간 모션 벡터이면, POC 거리에 따라 MV A0을 스케일링한다:
Figure pct00009
스케일링된 모션 벡터 MV_Scaled를 리스트에 추가한다. MV_A0 및 cMV 둘 다가 장기간 MV이면, 스케일링 없이 MV_A0을 리스트에 추가하고; 그렇지 않으면 A0의 반대 리스트 oppositeList(cList(cMV))에서의 모션 벡터를 동일한 방식으로 체크한다.
(4) 단계 (3)이 실패하면, 단계 (3)에서 설명되는 바와 같이 A1을 체크하고; 그렇지 않으면 단계 (5)로 진행한다.
(5) 지금까지, A0 또는 A1으로부터 유래하는 최대 하나의 MV 예측자가 존재한다. A0 및 A1 둘 다가 인터 PU가 아니면, 다른 MV 예측자를 찾기 위해 (B0, B1)의 순서로 (1)(2)(3)(4)에서와 동일한 방식으로 B0 및 B1을 체크하고; 그렇지 않으면, (1)(2)에서와 동일한 방식으로 B0 및 B1을 체크한다.
(6) 만약 있다면, 리스트로부터 중복된 MV 예측자를 제거한다.
(7) 리스트가 가득 찬 상태가 아니면, 리스트를 채우기 위해, 상기에서 설명되는 TMVP에 의해 생성되는 mvLX를 사용한다.
(8) 리스트가 가득 찰 때까지, 리스트에 제로 모션 벡터를 채운다.
SCM 초안 명세(draft specification)에서, IntraBC는 추가적인 CU 코딩 모드(인트라 블록 카피 모드)로서 시그널링되고, 그것은 디코딩 및 디블록화를 위한 인트라 모드로서 프로세싱된다. 『R. Joshi, J. Xu, "HEVC Screen Content Coding Draft Text 1", JCTVC-R1005, Jul. 2014, Sapporo, JP; R. Joshi, J. Xu, "HEVC Screen Content Coding Draft Text 2", JCTVC-S1005, Oct. 2014, Strasbourg, FR ("Joshi 2014")』를 참조하라. IntraBC 병합 모드 및 IntraBC 스킵 모드가 존재하지 않는다. 코딩 효율성을 향상시키기 위해, 인트라 블록 카피 모드를 인터 모드와 결합하는 것이 제안되어 있다. 『B. Li, J. Xu, "Non-SCCEl: Unification of intra BC and inter modes", JCTVC-ROIOO, Jul. 2014, Sapporo, JP』(이하, "Li 2014"); 『X. Xu, S. Liu, S. Lei, "SCCE1 Test2.1: IntraBC coded as Inter PU", JCTVC-R0190, Jul. 2014, Sapporo, JP』(이하, "Xu 2014")를 참조하라.
도 18은 계층적 코딩 구조를 사용하는 방법을 예시한다. 현재 픽쳐는 Pic(t)로 표기된다. 디블록화 및 SAO가 적용되기 이전에 현재 픽쳐의 이미 디코딩된 부분은 Pic'(t)로 표기된다. 일반적인 시간적 예측에서, 참조 픽쳐 list_0는 시간적 참조 픽쳐 Pic(t-1) 및 Pic(t-3)의 순으로 구성되고, 참조 픽쳐 list_1은 Pic(t+1) 및 Pic(t+5)의 순으로 구성된다. Pic'(t)는 추가적으로 하나의 참조 리스트(list_0)의 끝에 배치되고 장기간 픽쳐로서 마킹되고 인트라 블록 카피 모드에 대한 "의사 참조 픽쳐"로서 사용된다. 이 의사 참조 픽쳐 Pic'(t)는 IntraBC 카피 예측에 대해서만 사용되고, 모션 보상에 대해서는 사용되지 않을 것이다. 블록 벡터 및 모션 벡터는 각각의 참조 픽쳐에 대한 list_0 모션 필드에 저장된다. 인트라 블록 카피 모드는, 예측 유닛 레벨에서 참조 인덱스를 사용하는 인터 모드와는 구별되는데: IntraBC 예측 유닛의 경우, 참조 픽쳐는 list_0에서의 최종 참조 픽쳐, 즉, 가장 큰 ref_idx 값을 갖는 참조 픽쳐이고; 이 최종 참조 픽쳐는 장기간 참조 픽쳐로서 마킹된다. 이 특수한 참조 픽쳐는, 현재 픽쳐의 POC와 동일한 픽쳐 순서 카운트(POC)를 가지지만; 반면, 인터 예측을 위한 임의의 다른 통상적인 시간적 참조 픽쳐의 POC는 현재 픽쳐의 POC와는 상이하다.
(Li 2014) 및 (Xu 2014)의 방법에서, IntraBC 모드 및 인터 모드는 동일한 병합 프로세스를 공유하는데, 그 동일한 병합 프로세스는, 상기에서 설명되는 바와 같이, 인터 병합 모드를 위해 HEVC에서 원래 명시되는 병합 프로세스와 동일하다. 이들 방법을 사용하여, IntraBC PU 및 인터 PU는 하나의 CU 내에서 혼합될 수 있고, SCC에 대한 코딩 효율성을 향상시킨다. 대조적으로, 현재 SCC 테스트 모델은 CU 레벨 IntraBC 시그널링을 사용하고, 따라서 CU가 IntraBC PU 및 인터 PU 둘 다를 동시에 포함하는 것을 허용하지 않는다.
IntraBC를 위한 다른 프레임워크 설계는, (Li 2014), (N14175 2014) 및 『C. Pang, K. Rapaka, Y.-K. Wang, V. Seregin, M. Karczewicz, "Non-CE2: Intra block copy with Inter signaling", JCTVC-S0113, Oct. 2014』(이하, "Pang Oct. 2014")에서 설명된다. 이 프레임워크에서, IntraBC 모드는 인터 모드 시그널링과 통합된다. 구체적으로는, 루프 필터링(디블록화 및 SAO)이 적용되기 이전에, 현재 픽쳐(현재 코딩되고 있는 픽쳐)의 재구성된 부분을 저장하기 위해, 의사 참조 픽쳐가 생성된다. 그 다음, 이 의사 참조 픽쳐는 현재 픽쳐의 참조 픽쳐 리스트에 삽입된다. 이 의사 참조 픽쳐가 PU에 의해 참조되는 경우(즉, PU의 참조 인덱스가 의사 참조 픽쳐의 것과 동일한 경우), IntraBC 모드는, 현재 예측 유닛의 예측을 형성하기 위해 의사 참조 픽쳐로부터의 블록을 카피하는 것에 의해, 인에이블된다. 더 많은 CU가 현재 픽쳐에서 코딩됨에 따라, 루프 필터링 이전의 이들 CU의 재구성된 샘플 값은, 의사 참조 픽쳐의 대응하는 영역 안으로 업데이트된다. 의사 참조 픽쳐는, 임의의 통상적인 시간적 참조 픽쳐와 거의 동일하게 취급되지만, 다음의 차이점을 갖는다:
1. 의사 참조 픽쳐는 "장기간" 참조 픽쳐로서 마킹되고, 반면 대부분의 통상적인 경우, 시간적 참조 픽쳐는 "단기간" 참조 픽쳐일 가능성이 아주 높다.
2. 디폴트 참조 픽쳐 리스트 구성에서, 의사 참조 픽쳐는, P 슬라이스이면 L0에 추가되고 B 슬라이스이면 L0 및 L1 둘 다에 추가된다. 디폴트 L0는 다음의 순서를 따라 구성된다: 증가하는 POC 차이의 순서에서 (디스플레이 순서에서) 시간적으로 현재 픽쳐 이전의 참조 픽쳐, 현재 픽쳐의 재구성된 부분을 나타내는 의사 참조 픽쳐, 증가하는 POC 차이의 순서에서 (디스플레이 순서에서) 시간적으로 현재 픽쳐 이후의 참조 픽쳐. 디폴트 L1은 다음의 순서를 따라 구성된다: 증가하는 POC 차이의 순서에서 (디스플레이 순서에서) 시간적으로 현재 픽쳐 이후의 참조 픽쳐, 현재 픽쳐의 재구성된 부분을 나타내는 의사 참조 픽쳐, 증가하는 POC 차이의 순서에서 (디스플레이 순서에서) 시간적으로 현재 픽쳐 이전의 참조 픽쳐.
3. (Pang Oct. 2014)의 설계에서, 의사 참조 픽쳐는, 시간적 모션 벡터 예측(TMVP)에 대한 병치된 픽쳐로서 사용되는 것이 방지된다.
4. 임의의 랜덤한 액세스 포인트(random access point; RAP)에서, 모든 시간적 참조 픽쳐는 디코딩된 픽쳐 버퍼(DPB)로부터 제거될 것이다. 그러나, 의사 참조 픽쳐는 여전히 존재할 것이다.
5. 의사 참조 픽쳐를 참조하는 모든 블록 벡터는, 강제적으로 정수 값만 가지게 되지만, 이들은 비트스트림 순응 요건(bitstream conformance requirement)에 따라 (Pang Oct. 2014)에서 1/4 픽셀 정밀도로 저장된다.
예시적인 통합된 IntraBC 및 인터 프레임워크에서, 디폴트 블록 벡터를 고려하는 것에 의해, 수정된 디폴트 제로 MV 유도가 제안되어 있다. 먼저, dBVList로 표기되며 다음과같이 정의되는 다섯 개의 디폴트 BV가 존재하는데:
Figure pct00010
여기서 CUw 및 CUh는 CU의 폭과 높이이다. "병합 단계 8"에서, 양예측 모드를 갖는 병합 후보에 대한 MV 쌍은 다음의 방식으로 유도되는데:
Figure pct00011
여기서 ref_idx(i)는 "병합 단계 8"과 관련하여 상기에서 설명되는 바와 같이 구현될 수도 있다. 리스트 0의 ref_idx(i)와 동일한 인덱스를 갖는 참조 픽쳐가 현재 픽쳐이면, mv0_x 및 mv0_y는 디폴트 BV 중 하나로서 설정되고:
Figure pct00012
dBVIdx는 1만큼 증가된다. 그렇지 않다면, mv0_x 및 mv0_y 둘 다는 제로로 설정된다. 리스트 1의 ref_idx(i)와 동일한 인덱스를 갖는 참조 픽쳐가 현재 픽쳐이면, mv1_x 및 mv1_y는 디폴트 BV 중 하나로서 설정되고:
Figure pct00013
dBVIdx는 1만큼 증가된다. 그렇지 않다면, mv1_x 및 mv1_y 둘 다는 제로로 설정된다.
이러한 실시형태에서, IntraBC 예측을 나타내기 위해 비트스트림에서 어떤 특수한 플래그(intra_bc_flag)도 시그널링되지 않으며; 대신, IntraBC는 다른 인터 코딩된 PU와 동일한 방식으로, 투명한 방식으로, 시그널링된다. 추가적으로, (Pang Oct. 2014)의 설계에서, 모든 I 슬라이스는, 의사 참조 픽쳐만을 각각 포함하는 하나 또는 두 개의 참조 픽쳐 리스트를 갖는 P 또는 B 슬라이스가 될 것이다.
(Li 2014) 및 (Pang Oct. 2014)에서의 IntraBC 설계는, 다음의 이유 때문에, SCM-2.0과 비교하여 스크린 컨텐츠 코딩 효율성을 향상시킨다:
1. 이들은 인터 병합 프로세스가 투명한 방식으로 적용되는 것을 허용한다. 모든 블록 벡터가 모션 벡터(이들의 참조 픽쳐는 의사 참조 픽쳐이다)처럼 취급되기 때문에, 상기에서 논의되는 인터 병합 프로세스는 직접적으로 적용될 수 있다.
2. 블록 벡터를 정수 픽셀 정밀도로 저장하는 (Li 2014)와는 달리, (Pang Oct. 2014)에서의 설계는 블록 벡터를, 통상적인 모션 벡터와 동일한 1/4 픽셀 정밀도로 저장한다. 이것은, 블록화에서의 두 개의 이웃 블록 중 적어도 하나가 IntraBC 예측 모드를 사용할 수 있을 때 디블록화 필터 파라미터가 정확하게 계산되는 것을 허용한다.
3. 이 신규의 IntraBC 프레임워크는, IntraBC 예측이, 양예측 방법을 사용하여, 다른 IntraBC 예측 또는 통상적인 모션 보상된 예측 중 어느 하나와 결합되는 것을 허용한다.
공간적 변위는, 스크린, 컨텐츠 예컨대 텍스트 및 그래픽에 대한 전픽셀 정밀도(full pixel precision)를 갖는다. 『B. Li, J. Xu, G. Sullivan, Y. Zhou, B. Lin, "Adaptive motion vector resolution for screen content", JCTVC-S0085, Oct. 2014, Strasbourg, FR』에는, 하나의 슬라이스에서의 모션 벡터의 해상도가 정수 정밀도를 갖는지 또는 분수적 픽셀(예를 들면, 1/4 픽셀) 정밀도를 갖는지의 여부를 나타내는 신호를 추가하는 제안이 있다. 이것은 모션 벡터 코딩 효율성을 향상시킬 수 있는데, 그 이유는, 정수 모션을 표현하기 위해 사용되는 값이, 1/4 픽셀 모션을 표현하기 위해 사용되는 값과 비교하여 더 작을 수도 있기 때문이다. HEVC SCC 확장안(Joshi 2014)의 설계에서는, 적응적 모션 벡터 해상도 방법이 채택되었다. 현재 슬라이스/픽쳐에 대해 정수 모션 해상도를 사용할지 또는 1/4 픽셀 해상도를 사용할지의 여부를 선택하기 위해, 다중 패스(multi-pass) 인코딩이 사용될 수 있지만, 그러나 복잡성은 상당히 증가할 것이다. 따라서, 인코더측에서, SCC 참조 인코더(Joshi 2014)는, 해시 기반의 정수 모션 검색을 사용하여 모션 벡터 해상도를 결정한다. 픽쳐에서의 모든 비중첩 8×8 블록에 대해, 인코더는, 리스트 0의 제1 참조 픽쳐에서 해시 기반의 검색을 사용하여 매칭 블록을 찾을 수 있는지의 여부를 체크한다. 인코더는 비중첩 블록(예를 들면, 8×8)을 네 개의 카테고리: 완전히 매치된 블록, 해시 매치된 블록(hash matched block), 스무스 블록(smooth block), 매치되지 않는 블록으로 분류한다. 현재 블록과 참조 픽쳐에서의 그것의 병치된 블록 사이의 모든 픽셀(세 개의 컴포넌트)이 정확히 동일하면, 블록은 완전히 매치된 블록으로서 분류될 것이다. 그렇지 않다면, 인코더는, 현재 블록의 해시 값과 동일한 해시 값을 갖는 참조 블록이 존재하는지를, 해시 기반의 검색을 통해 체크할 것이다. 해시 값 매치 블록이 발견되면, 블록은 해시 매치된 블록으로서 분류될 것이다. 모든 픽셀이 수평 방향 또는 수직 방향 중 어느 하나에서 동일한 값을 가지면, 블록은 스무스 블록으로서 분류될 것이다. 완전히 매치된 블록, 해시 매치된 블록, 및 스무스 블록의 전체 비율이 제1 임계치(예를 들면, 0.8)보다 더 크고, 다수의 이전에 코딩된 픽쳐(예를 들면, 32개의 이전 픽쳐)의 매치된 블록과 스무스 블록의 비율의 평균이 제2 임계치(예를 들면, 0.95)보다 더 크고, 해시 매치된 블록의 비율이 제3 임계치보다 더 크면, 정수 모션 해상도가 선택되고, 그렇지 않다면, 1/4 픽셀 모션 해상도가 선택된다. 정수 모션 해상도를 갖는다는 것은, 현재 픽쳐에 완전히 매치된 또는 해시 매치된 블록이 아주 많이 존재한다는 것을 의미한다. 이것은, 모션 보상된 예측이 꽤 양호하다는 것을 나타낸다. 이 정보는, 하기의 "BV 및 MV를 갖는 양예측 모드에 대한 양예측 검색"이라는 제목의 섹션에서 논의되는 제안된 양예측 검색에서 사용될 것이다.
(Li 2014) 및 (Xu 2014)에서 제안되는 IntraBC 및 인터 모드 통합 방법의 경우에는 여러가지 단점이 존재한다. SCC의 초안 명세, 『R. Joshi, J. Xu, "HEVC Screen Content Coding Draft Text 1", JCTVC-R1005, Jul. 2014, Sapporo, JP』의 현존하는 병합 프로세스를 사용하여, 병치된 참조 픽쳐의 시간적 병치된 블록 colPU가 IntraBC 코딩되면, 그것의 블록 벡터는, 주로 두 가지 이유 때문에, 병합 모드의 유효한 병합 후보로서 사용되지 않을 가능성이 아주 높다.
먼저, 블록 벡터는, 장기간 참조 픽쳐로서 마킹되는 특수한 참조 픽쳐를 사용한다. 대조적으로, 대부분의 시간적 모션 벡터는, 보통은, 단기간 참조 픽쳐인 통상적인 시간적 참조 픽쳐를 참조한다. 블록 벡터(장기간)가 통상적인 모션 벡터(단기간)와는 상이하게 분류되기 때문에, 현존하는 병합 프로세스는, 장기간 참조 픽쳐로부터의 모션을 사용하여 단기간 참조 픽쳐로부터 모션을 예측하는 것을 방지한다.
둘째, 현존하는 인터 병합 프로세스는, 병치된 리스트(list_0 또는 list_1)의 제1 참조 픽쳐의 것과 동일한 모션 타입을 갖는 MV/BV 후보만을 허용한다. 일반적으로, list_0 또는 list_1의 제1 참조 픽쳐가 단기간의 시간적 참조 픽쳐이기 때문에, 블록 벡터가 장기간 모션 정보로서 분류되는 동안, IntraBC 블록 벡터는 일반적으로 사용될 수 없다. 이 공유된 병합 프로세스에 대한 다른 결점은, 이 공유된 병합 프로세스가 종종 혼합된 병합 후보의 리스트를 생성한다는 것인데, 여기서 병합 후보 중 일부는 블록 벡터일 수도 있고 다른 것은 모션 벡터일 수도 있다. 도 23a 및 23b는, IntraBC 및 인터 후보가 함께 혼합될 예를 도시한다. 공간적 이웃 블록(C0 및 C2)은 블록 벡터를 갖는 IntraBC PU이다. 블록 C1 및 C3는 모션 벡터를 갖는 인터 PU이다. PU C4는 인트라 또는 팔레트 블록이다. 일반성의 손실 없이, 시간적 병치된 블록 C5가 인터 PU인 것으로 가정한다. 현존하는 병합 프로세스를 사용하여 생성되는 병합 후보 리스트는 C0(BV), C1(MV), C2(BV), C3(MV) 및 C5(MV)이다. 리스트는, 병합 후보 총 수에 대한 제한으로 인해, 5개까지의 후보만을 포함할 것이다. 이 경우, 현재 블록이 인터 블록으로서 코딩되면, 단지 3개의 인터 후보(C1, C3 및 C5)가 인터 이미지에 대해 사용될 가능성이 높을 것인데, 그 이유는, C0 및 C2로부터의 2개의 후보가 블록 벡터를 나타내며 모션 벡터에 대한 의미 있는 예측을 제공하지 않기 때문이다. 이것은 5개의 병합 후보 중 2개가 실제로 "낭비된다"는 것을 의미한다. 현재 PU가 IntraBC PU이면, (병합 후보 리스트 상의 몇몇 엔트리를 낭비하는) 동일한 문제점이 또한 존재하는데, 현재 PU의 블록 벡터를 예측하는 데, C1, C3 및 C5로부터의 모션 벡터가 유용하지 않을 가능성이 있기 때문이다.
제3 문제점은 비병합 모드에 대한 블록 벡터 예측에 대해 존재한다. (Li 2014) 및 (Xu 2014)에서 제안되는 방법의 경우, 현존하는 AMVP 설계는 BV 예측을 위해 사용된다. IntraBC가 하나의 참조 픽쳐만을 사용하여 단예측을 적용하기 때문에, 현재 PU가 IntraBC로 코딩되면, 그것의 블록 벡터는 항상 list_0로부터만 유래한다. 따라서, 현재 AMVP 설계를 사용하여 블록 벡터 예측자를 유도하는 데, 기껏해야 단지 하나의 리스트(list_0)가 이용가능하다. 이에 비해, B 슬라이스의 인터 PU의 대부분은, 두 개의 리스트(list_0 및 list_1)로부터 유래하는 모션 벡터를 사용하여, 양예측된다. 따라서, 이들 통상적인 모션 벡터는 그들의 모션 벡터 예측자를 유도하기 위해 두 개의 리스트(list_0 및 list_1)를 사용할 수 있다. 일반적으로, (예를 들면, SCC 공통 테스트 조건의 랜덤 액세스 및 낮은 지연 설정에서) 각각의 리스트에 다수의 참조 픽쳐가 존재한다. 블록 벡터 예측자를 유도할 때 양 리스트로부터 더 많은 참조 픽쳐를 포함시키는 것에 의해, BV 예측은 향상될 수 있다.
(Li 2014), (Pang Oct. 2014)에서 제공되는 IntraBC에 대한 프레임워크의 경우, 인터 병합 프로세스는 수정 없이 적용된다. 그러나, 인터 병합을 직접적으로 적용하는 것은, 코딩 효율성을 감소시킬 수도 있는 다음의 문제점을 갖는다.
먼저, 공간적 병합 후보를 형성할 때, 도 26에서 A0, A1, B0, B1, B2로 라벨링되는 이웃 블록이 사용된다. 그러나, 이들 공간적 이웃의 블록 벡터 중 일부는 현재 PU에 대한 유효한 블록 벡터 후보가 아닐 수도 있다. 이것은, 의사 참조 픽쳐가, 코딩되고 구성된 CU의 유효한 샘플만을 포함하기 때문이며, 이웃 블록 벡터 중 일부는, 아직 재구성되지 않은 의사 참조 픽쳐의 일부에 대한 참조를 필요로 할 수도 있다. 현재의 인터 병합 설계에서, 이들 무효한 블록 벡터는 여전히 병합 후보 리스트에 삽입될 수도 있고, 병합 후보 리스트 상의 낭비되는(무효한) 엔트리로 이어지게 된다.
둘째, HEVC 코덱에서의 모션 벡터는, 이들이 단기간 참조 픽쳐를 가리키는지 또는 장기간 참조 픽쳐를 가리키는지의 여부에 따라, 단기간 MV 및 장기간 MV로 분류된다. HEVC 설계의 일반적인 TMVP 프로세스에서, 단기간 MV는 장기간 MV를 예측하는 데 사용될 수 없거나, 또는 장기간 MV는 단기간 MV를 예측하는 데 사용될 수 없다. IntraBC 예측에서 사용되는 블록 벡터의 경우, 이들이, 장기간으로 마킹되는 의사 참조 픽쳐를 가리키기 때문에, 이들은 장기간 MV로 간주된다. 여전히, 현존하는 병합 프로세스를 위해 TMVP 프로세스를 호출할 때, L0 또는 L1 중 어느 하나의 참조 인덱스는 항상 0(즉, L0 또는 L1 상의 제1 엔트리)으로 설정된다. 보통은, 이 제1 엔트리가, 통상적으로 단기간 참조 픽쳐인 시간적 참조 픽쳐에 주어지기 때문에, 병합 프로세스는 (장기간 대 단기간 불일치 때문에) 병치된 PU로부터의 블록 벡터가 유효한 시간적 병합 후보로 간주되는 것을 방지한다. 따라서, 병합 프로세스 동안 TMVP 프로세스를 "있는 그대로" 호출할 때, 병치된 픽쳐의 병치된 블록이 IntraBC 예측되고 BV를 포함하면, 병합 프로세스는 이 시간적 예측자를 무효한 것으로 간주할 것이고, 그것을 유효한 병합 후보로서 추가하지 않을 것이다. 다시 말하면, TBVP는, 많은 통상적인 구성 설정의 경우에, (Li 2014), (Pang Oct. 2014)의 설계에서 디스에이블될 것이다.
본 개시에서는, 다양한 실시형태가 개시되는데, 그 중 일부는 상기에서 식별되는 문제점 중 하나 이상을 해결하며, 통합된 IntraBC 및 인터 프레임워크의 코딩 효율성을 향상시킨다.
본 개시의 실시형태는 IntraBC 모드를 인터 모드와 결합하고 또한 병합 및 비병합 모드 둘 다에 대한 PU 레벨에서 플래그(intra_bc_flag)를 시그널링하고, 그 결과 IntraBC 병합 및 인터 병합이 PU 레벨에서 구별될 수 있다.
본 개시의 실시형태는, 두 개의 별개의 프로세스: 인터 병합 프로세스 및 IntraBC 병합 프로세스를 각각 최적화하는 데 사용될 수 있다. 인터 병합 프로세스 및 IntraBC 병합 프로세스를 서로로부터 분리하는 것에 의해, 인터 병합 및 IntraBC 병합 둘 다에 대한 아주 많은 수의 유의미한 후보를 유지하는 것이 가능하다. 몇몇 실시형태에서, 시간적 BV 예측은 BV 코딩을 향상시키기 위해 사용된다. 몇몇 실시형태에서, 시간적 BV는, IntraBC 병합 모드를 더 향상시키기 위한 IntraBC 병합 후보 중 하나로서 사용된다. 본 개시의 다양한 실시형태는 (1) IntraBC BV 예측을 위한 시간적 블록 벡터 예측(TBVP) 및/또는 (2) 시간적 블록 벡터 유도를 갖는 인트라 블록 카피 병합 모드를 포함한다.
시간적 블록 벡터 예측(TBVP).
현재의 SCC 설계에서는, 최대 2개의 BV 예측자가 존재한다. BV 예측자의 리스트는, 공간적 예측자, 최종 예측자, 및 디폴트 예측자의 리스트로부터, 다음과 같이 선택된다. 6개의 BV 후보 예측자를 포함하는 순서가 있는 리스트(ordered list)가 다음과 같이 형성된다. 리스트는 2개의 공간적 예측자, 2개의 최종 예측자, 및 2개의 디폴트 예측자로 이루어진다. 6개의 BV 모두가 이용가능하거나 유효한 것은 아니다는 것을 유의한다. 예를 들면, 공간적 이웃 PU가 IntraBC 코딩되지 않으면, 대응하는 공간적 예측자는 이용불가능한 것으로 또는 무효한 것으로 간주된다. 현재 CTU의 2개 미만의 PU가 IntraBC 모드에서 코딩되었다면, 마지막 예측자 중 하나 또는 양자는 이용불가능할 수도 있거나 또는 무효할 수도 있다. 순서가 있는 리스트는 다음과 같다: (1) 공간적 예측자 SPa. 이것은, 도 19에서 도시되는 바와 같이, 좌하 이웃 PU A1로부터의 제1 공간적 예측자이다. (2) 공간적 예측자 SPb. 이것은, 도 19에서 도시되는 바와 같이, 우상 이웃 PU B1으로부터의 제2 공간적 예측자이다. (3) 최종 예측자 LPa. 이것은 현재 CTU에서의 최종 IntraBC 코딩된 PU로부터의 예측자이다. (4) 최종 예측자 LPb. 이것은 현재 CTU에서의 더 앞서 IntraBC 코딩된 PU로부터의 제2 최종 예측자이다. 이용가능하고 유효한 경우, LPb는 LPa와는 상이하다(이것은, 신규로 코딩된 BV가 현존하는 2개의 최종 예측자와는 상이하다는 것을 체크하고 만약 그렇다면 그것을 최종 예측자로서 추가하는 것에 의해 보장된다). (5) 디폴트 예측자 DPa. 이 예측자는 (-2*widthPU, 0)로 설정되는데, 여기서 widthPU는 현재 PU의 폭이다. (6) 디폴트 예측자 DPb. 이 예측자는 (-widthPU, 0)로 설정되는데, 여기서 widthPU는 현재 PU의 폭이다. 단계 1로부터의 순서가 있는 후보 리스트는, 제1 후보 예측자로부터 최종 후보 예측자까지 스캔된다. 유효한 그리고 고유한 BV 예측자가 최대 2개의 BV 예측자의 최종 리스트에 추가된다.
본원에서 개시되는 예시적인 실시형태에서, 시간적 참조 픽쳐로부터의 추가적인 BV 예측자가, 공간적 예측자 SPa 및 SPb 뒤에서, 그러나 최종 예측자 LPa 및 LPb 앞에서, 상기의 리스트에 추가된다. 도 20a 및 도 20b는 주어진 블록 cBlock에 대한 시간적 BV 예측자 유도의 사용을 예시하는 두 개의 플로우차트인데, 여기서 cBlock은 체크될 블록이고 rBV은 리턴된 블록 벡터이다. (0,0)의 BV는 무효하다. 도 20a의 실시형태는 단지 하나의 병치된 참조 픽쳐만을 사용하고, 반면, 도 20b는 최대 네 개의 참조 픽쳐를 사용한다. 도 20a의 설계는 HEVC에서의 TMVP 유도를 위한 현재의 요건을 준수하는데, 역시 단지 하나의 병치된 참조 픽쳐만을 사용한다. TMVP를 위한 병치된 픽쳐는, 하나는 참조 픽쳐 리스트를 나타내고 두 번째 것은 병치된 픽쳐의 참조 인덱스를 나타내는 두 개의 신택스 엘리먼트를 사용하여 슬라이스 헤더에서 시그널링된다(단계 2002). 참조 픽쳐의 cBlock(collocated_pic_list, collocated_pic_idx)이 IntraBC이면(단계 2004), 리턴된 블록 벡터 rBV는 체크된 블록 cBlock의 블록 벡터이고(단계 2006), 그렇지 않으면, 유효한 블록 벡터는 리턴되지 않는다(단계 2008). TBVP의 경우, 병치된 픽쳐는 TMVP에 대한 것과 동일할 수 있다. 이 경우, TBVP를 위해 사용되는 병치된 픽쳐를 나타내는 데 어떠한 추가적인 시그널링도 필요로 되지 않는다. TBVP를 위한 병치된 픽쳐는 또한 TMVP에 대한 것과 상이할 수 있다. 이것은 더 많은 유연성을 허용하는데, BV 예측을 위한 병치된 픽쳐가, BV 예측 효율성을 고려하는 것에 의해 선택될 수 있기 때문이다. 이 경우, TBVP 및 TMVP를 위한 병치된 픽쳐는, TBVP에 대해 고유한 신택스 엘리먼트를 슬라이스 헤더에 추가하는 것에 의해 별개로 시그널링될 것이다.
도 20b의 실시형태는 향상된 성능을 제공할 수 있다. 도 20b 설계에서, 각각의 리스트에서의 처음 두 개의 참조 픽쳐(총 네 개)는 다음과 같이 체크될 것이다. 단계 2020에서, 슬라이스 헤더에서 시그널링되는 병치된 픽쳐가 체크된다(그것의 리스트를 colPicList로서 그리고 그것의 인덱스를 colPicIdx로서 표기함). 단계 2022에서, 리스트 oppositeList(colPicList)의 제1 참조 픽쳐가 체크된다. 단계 2024에서, 병치된 픽쳐가 리스트 colPicList의 제1 참조 픽쳐이면, 리스트 colPicList의 제2 참조 픽쳐가 체크되고; 그렇지 않으면, 리스트 colPicList의 제1 참조 픽쳐가 체크된다. 단계 2026에서, 리스트 oppositeList(colPicList)의 제2 참조 픽쳐가 체크된다.
도 21은, BV 예측을 위한 시간적 BV 예측자 생성의 예시적인 방법을 예시한다. 참조 픽쳐에서의 두 개의 블록 포지션이 다음과 같이 체크될 것이다. 병치된 블록(참조 픽쳐의 대응하는 블록의 우하)이 단계 2102에서 체크된다. 대안적인 병치된 블록(참조 픽쳐의 대응하는 PU의 중앙 블록)은, 중앙 블록에 대해 단계 2104, 2106을 수행하고 그 다음 단계 2102를 반복하는 것에 의해, 체크된다. 고유한 BV만이 BV 예측자 리스트에 추가될 것이다. 현존하는 AMVP 설계에서, 병치된 픽쳐의 두 개의 리스트(list_0 및 list_1)에 저장되는 모션 벡터의 두 세트가 MV 예측자를 유도하기 위해 체크될 것이고, 병치된 블록(또는 대안적인 병치된 블록)의 모션 벡터는 식 (1)을 사용하여 스케일링될 수도 있고 그 다음 MV 예측자로서 사용될 수도 있다. 이 현존하는 AMVP 방법이, (Li 2014) (Xu 2014)에서와 같이 BV 예측을 위해 직접적으로 사용되면, 시간적 BV 예측자가 발견될 수 없는 가능성은 높은데, 그 이유는, BV가 항상 단예측되고 그러므로 병치된 픽쳐의 단지 하나의 리스트(list_0)가 BV 예측자 유도를 위해 사용될 수 있기 때문이다. 도 20b의 더 복잡한 설계는, TBVP 유도를 위해 다수의 참조 픽쳐를 체크하는 것에 의해 이 문제점을 해결하며; TBVP를 위해 단지 하나의 참조 픽쳐를 사용하는 것과 비교하여, 도 20b의 설계는 더 나은 코딩 효율성을 달성한다.
단일 레이어 HEVC 및 현재의 SCC 확장 설계에서, 코딩된 모션 필드는, 모션 벡터가 각각의 4×4 블록에 대해 상이할 수 있다는 점에서, 아주 미세한 세분화(granularity)를 가질 수 있다. 스토리지를 절약하기 위해, TMVP에서 사용되는 모든 참조 픽쳐의 모션 필드는 압축된다. 모션 압축 이후, 더 대략적인 세분화(coarser granularity)의 모션 정보가 보존된다: 각각의 16×16 블록의 경우, 모션 정보의 단지 하나의 세트(단예측 또는 양예측과 같은 예측 모드, 각각의 리스트의 하나 또는 양자의 참조 인덱스, 각각의 참조를 위한 하나 또는 두 개의 MV를 포함함)가 저장된다. 제안된 TBVP의 경우, 모든 블록 벡터는, (BV가 list_0와 같은 단지 하나의 리스트만을 사용하여 항상 단예측이다는 것을 제외하면) 모션 필드의 일부로서 모션 벡터와 함께 저장될 수도 있다. 이러한 배치는, TBVP를 위해 사용되는 블록 벡터가 통상적인 모션 벡터와 함께 자연스럽게 압축되는 것을 허용한다. 이 배치가, 모션 벡터 압축을 위한 것과 동일한 압축 방법을 적용하기 때문에, BV 압축은 MV 압축 동안 투명한 방식으로 실행될 수 있다. BV 압축을 위한 다른 방법이 존재한다. 예를 들면, 모션 압축 동안 16×16 블록 내의 BV 또는 MV는 구별될 수 있다. 그리고 16×16 블록에 대해 BV가 저장되는지 또는 MV가 저장되는지의 여부는 다음과 같이 결정될 수도 있다. 먼저, 현재 16×16 블록에서 BV가 지배적인지 또는 MV가 지배적인지의 여부가 결정된다. BV의 수가 MV의 수보다 더 많으면, BV가 지배적이다. 그렇지 않다면, MV가 지배적이다. BV가 지배적이면, 16×16 블록 내의 모든 BV의 중간값 또는 평균을, 그 전체의 16×16 블록에 대한 압축된 BV로서 사용할 수 있다. 그렇지 않고, MV가 지배적이면, 현존하는 모션 압축 방법이 적용된다.
TBVP 시스템의 예시적인 실시형태에서의 BV 예측자의 리스트는, 공간적 예측자, 시간적 예측자, 최종 예측자, 및 디폴트 예측자의리스트로부터, 다음과 같이 선택된다. 먼저, 7개의 BV 후보 예측자를 포함하는 순서가 있는 리스트가 다음과 같이 형성된다. 리스트는 2개의 공간적 예측자, 1개의 시간적 예측자, 2개의 최종 예측자, 및 2개의 디폴트 예측자로 구성된다. (1) 공간적 예측자 Spa. 이것은, 도 19에서 도시되는 바와 같이, 좌하 이웃 PU A1로부터의 제1 공간적 예측자이다. (2) 공간적 예측자 SPb. 이것은, 도 19에서 도시되는 바와 같이, 우상 이웃 PU B1으로부터의 제2 공간적 예측자이다. (3) 시간적 예측자 TSa. 이것은 TBVP로부터 유도되는 시간적 예측자이다. (4) 최종 예측자 LPa. 이것은 현재 CTU에서의 최종 IntraBC 코딩된 PU로부터의 예측자이다. (5) 최종 예측자 LPb. 이것은 현재 CTU에서의 더 앞서 IntraBC 코딩된 PU로부터의 제2 최종 예측자이다. 이용가능하고 유효한 경우, LPb는 LPa와는 상이하다(이것은, 신규로 코딩된 BV가 현존하는 2개의 최종 예측자와는 상이하다는 것을 체크하고 만약 그렇다면 그것을 최종 예측자로서 추가하는 것에 의해 보장된다). (6) 디폴트 예측자 DPa. 이 예측자는 (-2*widthPU, 0)로 설정되는데, 여기서 widthPU는 현재 PU의 폭이다. (7) 디폴트 예측자 DPb. 이 예측자는 (-widthPU, 0)로 설정되는데, 여기서 widthPU는 현재 PU의 폭이다. 7개의 BV 후보 예측자의 순서가 있는 리스트는, 제1 후보 예측자로부터 최종 후보 예측자까지 스캔된다. 유효한 그리고 고유한 BV 예측자가 최대 2개의 BV 예측자의 최종 리스트에 추가된다.
TBVP를 갖는 인트라 블록 카피 병합 모드
IntraBC 및 인터 모드가 PU 레벨에서 intra_bc_flag에 의해 구별되는 실시형태에서, 인터 병합 및 IntraBC 병합을 개별적으로 최적화하는 것이 가능하다. 인터 병합 프로세스의 경우, IntraBC, 인트라, 또는 팔레트 모드를 사용하여 코딩되는 모든 공간적 이웃 블록 및 시간적 병치된 블록이 배제될 것이다; 시간적 모션 벡터를 갖는 인터 모드를 사용하여 코딩되는 블록만이 후보로서 간주될 것이다. 이것은 인터 병합에 대한 유용한 후보의 수를 증가시킨다. (Li 2014) (Xu 2014)에서 제안되는 방법에서, 시간적 병치된 블록이 IntraBC를 사용하여 코딩되면, 그것의 블록 벡터는 일반적으로 배제되는데, 그 이유는, 블록 벡터가 장기간 모션으로 분류되고, colPicList의 제1 참조 픽쳐가 일반적으로는 통상적인 단기간 참조 픽쳐이기 때문이다. 이 방법이 시간적 병치된 블록으로부터의 블록 벡터가 포함되는 것을 일반적으로 방지하지만, 이 방법은, 제1 참조 픽쳐도 또한 우연히 장기간 참조 픽쳐인 경우에, 실패할 수 있다. 따라서, 본 개시에서는, 이 문제점을 해결하기 위해, 적어도 세 개의 대안예가 제안된다.
제1 대안예는, 장기간 특성을 체크하는 대신, intra_bc_flag의 값을 체크하는 것이다. 그러나, 이 제1 대안예는, (이미 저장되어 있는 모션 정보 외에) 모든 참조 픽쳐에 대한 intra_bc_flag의 값이 저장되는 것을 필요로 한다. 추가적인 스토리지 요건을 감소시키는 하나의 방식은, intra_bc_flag의 값을, HEVC에서 사용되는 모션 압축과 동일한 방식으로 압축하는 것이다. 즉, 모든 PU의 intra_bc_flag를 저장하는 대신, 16×16 블록과 같은 더 큰 블록 단위에 대해 intra_bc_flag가 저장될 수 있다.
제2 대안예에서는, 참조 인덱스가 체크된다. IntraBC PU의 참조 인덱스는 list_0의 사이즈와 동일하고(그 이유는 IntraBC PU가 list_0의 끝에 배치되는 의사 참조 픽쳐이기 때문이다), 반면 list_0에서의 인터 PU의 참조 인덱스는 list_0의 사이즈보다 더 작다.
제3 대안예에서는, BV에 의해 참조되는 참조 픽쳐의 POC 값이 체크된다. BV의 경우, 참조 픽쳐의 POC는 병치된 픽쳐, 즉, BV가 속하는 픽쳐의 POC와 동일하다. BV 필드가 MV 필드와 동일한 방식으로 압축되면, 즉, 모든 참조 픽쳐의 BV가 16×16 블록 단위에 대해 저장되면, 제2 및 제3 대안예는 추가적인 스토리지 요건을 초래하지 않는다. 세 개의 제안된 대안예 중 임의의 것을 사용하여, BV가 인터 병합 후보 리스트로부터 배제되는 것을 보장하는 것이 가능하다.
IntraBC 병합의 경우, 이들 IntraBC 블록만이 IntraBC 병합 모드에 대한 후보로서 고려될 것이다. 시간적 병치된 블록의 경우, list_0와 같은 하나의 리스트의 모션 필드만이 그것이 장기간인지 단기간인지가 체크될 것인데, 그 이유는 BV가 단예측을 사용하기 때문이다. 도 24a-도 24b는, 몇몇 실시형태에 따른 제안된 IntraBC 병합 프로세스를 예시하는 플로우차트를 제공한다. 단계 2410 및 2412는, 시간적 병치된 블록을 고려하도록 동작한다. 이 실시형태에서, 세 종류의 IntraBC 병합 후보가 존재하고 이들은 다음의 순서로 생성된다: (1) 공간적 이웃 블록으로부터의 BV(단계 2402-2408); (2) "시간적 블록 벡터 예측(TBVP)"이라는 제목의 섹션에서 논의되는 바와 같은, 시간적 참조 픽쳐로부터의 BV(단계 2410-2412); (3) 이들 공간적 및 시간적 BV 후보를 사용한 블록 벡터 유도 프로세스로부터의 유도된 BV(단계 2414-2420). 도 23a 및 도 23b는, IntraBC 병합 후보의 생성에서 사용되는, 공간적 블록(C0 내지 C4), 및 TBVP가 하나의 참조 픽쳐만을 사용하는 경우의 하나의 시간적 블록(C5)(도 23a), 또는 TBVP가 네 개의 참조 픽쳐를 사용하는 경우의 네 개의 시간적 블록(C5-C8)(도 23b)을 도시한다. 모션 보상에서 사용되는 참조 픽쳐와는 달리, 인트라 블록 카피 예측을 위한 참조 픽쳐는 도 18에서 도시되는 바와 같은 부분 재구성 픽쳐(partial reconstructed picture)이다. 따라서, 예시적인 실시형태에서, BV 병합 후보가 유효한지 또는 그렇지 않은지의 여부를 결정할 때 신규의 조건이 추가된다; 구체적으로는, BV 후보가 현재 슬라이스 밖의 임의의 참조 픽셀 또는 아직 디코딩되지 않은 임의의 참조 픽셀을 사용할 것이면, 이 BV 후보는 현재 PU에 대해 무효한 것으로 간주된다. 요약하면, IntraBC 병합 후보 리스트는 다음과 같이(도 24a 및 도 24b에서 도시되는 바와 같이) 생성된다.
단계 2402-2404에서, 이웃 블록을 체크한다. 구체적으로는, 좌측 이웃 블록 C0을 체크한다. C0이 IntraBC 모드이고 그것의 BV가 현재 PU에 대해 유효하면, C0을 리스트에 추가한다. 상부 이웃 블록 C1을 체크한다. C1이 IntraBC 모드이고 그것의 BV가 현재 PU에 대해 유효하며 리스트의 현존하는 후보와 비교하여 고유하면, C1을 리스트에 추가한다. 우상 이웃 블록 C2를 체크한다. C2가 IntraBC 모드이고 그것의 BV가 유효하고 고유하면, C2를 리스트에 추가한다. 좌하 이웃 블록 C3을 체크한다. C3이 IntraBC 모드이고 그것의 BV가 유효하고 고유하면, C3을 리스트에 추가한다.
리스트에 적어도 두 개의 빈 엔트리가 존재한다는 것이 단계 2406에서 결정되면, 단계 2408에서 좌상 이웃 블록 C4를 체크한다. C4가 IntraBC 모드이고 그것의 BV가 유효하고 고유하면, C4를 리스트에 추가한다. 리스트가 가득 찬 상태가 아니고 현재 슬라이스가 인터 슬라이스이다는 것이 단계 2410에서 결정되면, 단계 2412에서, 상기에서 설명되는 TBVP 방법을 사용하여 BV 예측자를 체크한다. 프로세스의 예가 도 25에서 도시된다. 리스트가 가득 찬 상태가 아니다는 것이 단계 2414에서 결정되면, 리스트는, 이전 단계로부터의 공간적 및 시간적 BV 후보를 사용하는 블록 벡터 유도 방법을 사용하여, 단계 2416-1420에서 채워진다.
단계 2416의 플로우차트가 도 25에서 도시된다. 단계 2502-2504에서, (도 23a의 간단한 설계가 사용되는 경우) 병치된 참조 픽쳐의 병치된 블록이 체크되거나 또는 (도 23b의 더 복잡한 설계가 사용되는 경우) 4개의 참조 픽쳐(각각의 리스트의 2개)의 병치된 블록이 순서대로 체크된다. 프로세스가 하나의 유효한 BV 후보를 얻고, 이 후보가 리스트의 모든 현존하는 병합 후보와 상이하면(단계 2504), 후보는 단계 2510에서 리스트에 추가되고 프로세스는 중지한다. 그렇지 않다면, 프로세스는, 단계 2506, 2508, 및 2504를 사용하여 동일한 방식으로 대안적인 병치된 블록(시간적 참조 픽쳐의 대응하는 PU의 중앙 블록 포지션)을 계속 체크한다.
IntraBC 스킵 모드.
인터 모드로서의 IntraBC CU가 스킵 모드에서 코딩될 수 있다. IntraBC 스킵 모드를 사용하여 코딩되는 CU의 경우, CU의 구획 사이즈(partition size)는 2N×2N이고 모든 양자화된 계수는 제로이다. 따라서, IntraBC 스킵의 CU 레벨 표시 이후, CU에 대해 어떤 다른 정보(예컨대 변환 단위의 루트에서의 이들 코딩된 블록 플래그 및 구획 사이즈)도 코딩될 필요가 없다. 이것은 시그널링의 관점에서 아주 효율적일 수 있다. 시뮬레이션은, 제안된 IntraBC 스킵 모드가 인트라 슬라이스 코딩 효율성을 향상시킨다는 것을 나타낸다. 그러나, 인터 슬라이스(P_SLICE 또는 B SLICE)의 경우, 현존하는 인터 스킵 모드와 구별하기 위해, 추가적인 intra_bc_skip_flag가 추가된다. 이 추가적인 플래그는 현존하는 인터 스킵 모드에 대해 오버헤드를 초래한다. 인터 슬라이스에서는, 현존하는 인터 스킵 모드가, 많은 CU에 대한 빈번하게 사용되는 모드이기 때문에, 특히 양자화 파라미터가 클 때, 인터 스킵 모드 시그널링에 대한 오버헤드 증가를 야기하는 것은, 그것이 인터 스킵 모드의 효율성에 부정적인 영향을 끼칠 수도 있기 때문에, 바람직하지 않다. 따라서, 몇몇 실시형태에서, IntraBC 스킵 모드는 인트라 슬라이스에서만 인에이블되고, IntraBC 스킵 모드는 인터 슬라이스에서는 허용되지 않는다.
코딩 신택스 및 시맨틱스.
본 개시에서 제안되는 IntraBC 시그널링 스킴의 예시적인 신택스 변경은, SCC 초안 명세인 『R. Joshi, J. Xu, "HEVC Screen Content Coding Draft Text 1", JCTVC-R1005, Jul. 2014, Sapporo, JP』에 대한 제안된 변경을 참조로 예시될 수 있다. 본 개시에서 제안되는 IntraBC 시그널링 스킴의 신택스 변경은 부록 A에서 나열된다. 본 개시의 실시형태에서 활용되는 변경은, 생략에 대해 이중 취소선(double-strikethrough)을 그리고 추가에 대해 밑줄(underline)을 사용하여 예시된다. (Li 2014) 및 (Xu 2014)에서의 방법과 비교하여, 신택스 엘리먼트 intra_bc_flag는, PU 레벨에서 신택 엘리먼트 merge_flag 앞에 배치된다는 것을 유의한다. 이것은, 앞서 논의된 바와 같이, IntraBC 병합 프로세스와 인터 병합 프로세스의 분리를 허용한다.
예시적인 실시형태에서, 1과 동일한 intra_bc_flag[x0][y0]는, 현재 예측 유닛이 인트라 블록 카피 모드에서 코딩된다는 것을 규정한다. 0과 동일한 intra_bc_flag[x0][y0]는, 현재 예측 유닛이 인터 모드에서 코딩된다는 것을 규정한다. 존재하지 않는 경우, intra_bc_flag의 값은 다음과 같이 추론된다. 현재 슬라이스가 인트라 슬라이스이고, 현재 코딩 단위가 스킵 모드에서 코딩되면, intra_bc_flag의 값은 1과 동일한 것으로 추론된다. 그렇지 않다면, intra_bc_flag[x0][y0]는 0과 동일한 것으로 추론된다. 어레이 인덱스 x0 및 y0는, 픽쳐의 좌상 루마 샘플에 대한 고려되는 코딩 블록의 좌상 루마 샘플의 위치 (x0, y0)를 명시한다.
통합된 IntraBC 및 인터 프레임워크에 대한 병합 프로세스.
앞서 논의된 바와 같은 현존하는 HEVC 인터 병합 프로세스를 사용하는 것의 문제점을 해결하기 위해, 현존하는 병합 프로세스에 대한 다음의 변경이 몇몇 실시형태에서에 활용된다.
먼저, 공간적 이웃이 블록 벡터를 포함하면, 공간적 이웃이 공간적 병합 후보 리스트에 추가되기 이전에 블록 벡터 검증 단계가 적용된다. 블록 벡터 검증 단계는, 블록 벡터가 현재 PU를 예측하기 위해 적용되는 경우, 인코딩 순서로 인해 의사 참조 픽쳐에서 아직 재구성되지 않은(따라서 아직 이용가능하지 않은) 임의의 참조 샘플을 블록 벡터가 필요로 할 것인지의 여부를 체크할 것이다. 추가적으로, 블록 벡터 검증 단계는 또한, 현재 슬라이스 경계 밖의 임의의 참조 픽셀을 블록 벡터가 필요로 하는지를 또한 체크할 것이다. 두 경우 중 어느 하나에 대해 예(yes)라면, 블록 벡터는 무효한 것으로 결정될 것이고 병합 후보 리스트에 추가되지 않을 것이다.
두 번째 문제점은 TBVP 프로세스가 현재 설계에서 "파괴되는" 것에 관련되는데, 이 경우, 병치된 픽쳐의 병치된 블록이 블록 벡터를 포함하면, 그 블록 벡터는, 앞서 논의된 "장기간" 대 "단기간" 불일치로 인해, 통상적으로는, 유효한 시간적 병합 후보로서 간주되지 않을 것이다. 이 문제점을 해결하기 위해, 본 개시의 실시형태에서는, (병합 단계 1) 내지 (병합 단계 8)에서 설명되는 인터 병합 프로세스에 추가적인 단계가 추가된다. 구체적으로는, 추가적인 단계는, 0(각각의 참조 픽쳐 리스트 상의 제1 엔트리)의 고정된 값을 갖는 고정된 참조 인덱스를 사용하는 대신, 의사 참조 픽쳐의 L0 또는 L1의 참조 인덱스를 사용하여 TMVP 프로세스를 호출한다. 이 추가적인 단계가 장기간 참조 픽쳐(즉, 의사 참조 픽쳐)를 TMVP 프로세스로 제공하기 때문에, 장기간 MV로 간주되는 블록 벡터를 병치된 PU가 포함하면, 불일치는 발생하지 않을 것이고, 병치된 PU로부터의 블록 벡터는 이제 유효한 시간적 병합 후보로서 간주될 것이다. 이 추가적인 단계는 (병합 단계 6) 바로 앞 또는 뒤에 배치될 수도 있거나, 또는 그것은 병합 단계의 임의의 다른 포지션에 배치될 수도 있다. 병합 단계에서 이 추가적인 단계가 배치되는 곳은, 현재 코딩되고 있는 픽쳐의 슬라이스 타입에 의존할 수도 있다. 본 개시의 다른 실시형태에서, 의사 참조 픽쳐의 참조 인덱스를 사용하여 TMVP 프로세스를 호출하는 이 신규 단계는, 고정된 값 0의 참조 인덱스를 사용하는 현존하는 TMVP 단계를 대신할 수도 있다, 즉, 그것은 현재의 (병합 단계 6)을 대신할 수도 있다.
유도된 블록 벡터.
현재 개시되는 시스템 및 방법의 실시형태는, 인트라 블록 카피 코딩 효율성을 향상시키기 위해 블록 벡터 유도를 사용한다. 블록 벡터 유도는, 2014년 6월 19일자로 출원된 미국 특허 가출원 제62/014,664호 및 2015년 6월 18일자로 출원된 미국 특허 출원 제14/743,657호에서 더 상세히 설명된다. 이들 출원의 전체는 참조에 의해 본원에 통합된다.
변화 중, (i) 인트라 블록 카피 병합 모드에서의 블록 벡터 유도 및 (ii) 두 개의 블록 벡터 모드를 갖는 인트라 블록 카피에서의 블록 벡터 유도가 본 개시에서 논의되고 설명된다.
참조 블록의 코딩 타입에 따라, 유도된 블록 벡터 또는 모션 벡터는 상이한 방식으로 사용될 수 있다. 하나의 방식은 유도된 BV를 IntraBC 병합 모드에서 병합 후보로서 사용하는 것이다. 다른 방식은 일반적인 IntraBC 예측을 위해 유도된 BV/MV를 사용하는 것이다.
도 27은 블록 벡터 유도의 예를 예시하는 도면이다. 블록 벡터가 주어지면, 제2 블록 벡터는, 주어진 BV가 가리키는 참조 블록이 IntraBC 코딩된 블록인 경우 유도될 수 있다. 유도된 블록 벡터는 식 (5)를 사용하여 계산된다. 도 27은 이 종류의 블록 벡터 유도를 2700에서 일반적으로 도시한다.
Figure pct00014
도 28은 예시적인 모션 벡터 유도를 예시하는 도면이다. 주어진 BV가 가리키는 블록이 인터 코딩된 블록이면, MV가 유도될 수 있다. 도 28은 MV 유도 사례를 2800에서 일반적으로 도시한다. 도 28의 블록 B1이 단예측 모드이면, 블록 B0에 대한 정수 픽셀의 유도된 모션 MVd는
Figure pct00015
이고 참조 픽쳐는 B1의 것과 동일하다. HEVC에서, 일반적인 모션 벡터는 1/4 픽셀 정밀도이고, 블록 벡터는 정수 정밀도이다. 여기서는, 유도된 모션 벡터에 대한 정수 픽셀 모션이 예로서 사용된다. 블록 B1이 양예측 모드이면, 모션 벡터 유도를 수행하는 적어도 두 개의 방식이 존재한다. 하나는, 단예측 모드에 대한 상기의 것과 동일한 방식으로 두 개의 모션 벡터 및 참조 인덱스를 유도하는 것이다. 다른 것은, 더 적은 양자화 파라미터(고품질)를 갖는 참조 픽쳐로부터 모션 벡터를 선택하는 것이다. 양자의 참조 픽쳐가 동일한 양자화 파라미터를 가지면, 모션 벡터는, 픽쳐 순서 카운트(POC) 거리에서 더 가까운 참조 픽쳐로부터 선택될 수도 있다.
병합 후보 리스트에서의 유도된 블록 벡터의 통합
유도된 블록 벡터를 인터 병합 프로세스에서 병합 후보 리스트에 포함시키기 위해, 적어도 두 개의 방법이 활용될 수도 있다. 제1 방법에서, 인터 병합 프로세스 (병합 단계 1) 내지 (병합 단계 8)에 추가적인 단계가 추가된다. 공간적 후보 및 시간적 후보가 유도된 이후, 즉 (병합 단계 6) 이후, 병합 후보 리스트의 후보의 각각에 대해, 후보 벡터가 블록 벡터인지 또는 모션 벡터인지의 여부가 결정된다. 이 결정은, 이 후보 벡터에 의해 참조되는 참조 픽쳐가 의사 참조 픽쳐인지를 확인하도록 체크하는 것에 의해 이루어질 수도 있다. 후보 벡터가 블록 벡터이면, 유도된 블록 벡터를 획득하도록 블록 벡터 유도 프로세스가 호출될 수도 있다. 그 다음, 유도된 블록 벡터는, 고유하고 유효하면, 다른 병합 후보로서 병합 후보 리스트에 추가될 수도 있다.
제2 실시형태에서, 유도된 블록 벡터는, 현존하는 TMVP 프로세스를 사용하는 것에 의해 추가될 수도 있다. 현존하는 TMVP 프로세스에서, 병치된 픽쳐의 병치된 PU는, 도 15에서 묘사되는 바와 같이, 코딩되고 있는 현재 픽쳐의 현재 PU의 동일한 포지션에 공간적으로 위치되고, 병치된 픽쳐는 슬라이스 헤더 신택스 엘리먼트에 의해 식별된다. 유도된 블록 벡터를 얻기 위해, 병치된 픽쳐는 의사 참조 픽쳐로 설정될 수도 있고(이것은 (Pang Oct. 2014)의 설계에서 현재 금지되고 있다), 병치된 PU는, 현존하는 후보 벡터가 가리키는 PU로 설정될 수도 있고, 참조 인덱스는 의사 참조 픽쳐의 것으로 설정될 수도 있다. 현존하는 후보 벡터를 (BVCx, BVCy)(이것은 공간적 후보 또는 시간적 후보 중 하나일 수 있다)로 표기하고, 현재 PU의 블록 포지션을 (PUx, PUy)인 것으로 표기하면, 병치된 PU는 (PUx+BVCx, PUy+BVCy)에서 설정될 것이다. 그 다음, 이들 설정을 가지고 TMVP 프로세스를 호출하는 것에 의해, TMVP 프로세스는 (만약 있다면) 병치된 PU의 블록 벡터를 리턴할 것이다. 이 리턴된 블록 벡터를 (BVcolPUx, BVcolPUy)로 표기한다. 유도된 블록 벡터는 (BVDx, BVDy) = (BVCx + BVcolPUx, BVCy + BVcolPUy)로서 계산된다. 이 유도된 블록 벡터는, 고유하고 유효하면, 신규 병합 후보로서 리스트에 추가될 수도 있다. 유도된 블록 벡터는 현존하는 후보 벡터의 각각을 사용하여 계산될 수도 있고, 모든 고유하고 유효한 유도된 블록 벡터는, 병합 후보 리스트가 가득 찬 상태가 아닌 한, 병합 후보 리스트에 추가될 수도 있다.
추가적인 병합 후보.
코딩 효율성을 더 향상시키기 위해, 병합 후보 리스트가 가득 찬 상태가 아닌 경우, 더 많은 블록 벡터 병합 후보가 추가될 수도 있다. 『X. Xu, T.-D. Chuang, S. Liu, S. Lei, "Non-CE2: Intra BC merge mode with default candidates', JCTVC-S0123, Oct. 2014』에서, CU 블록 사이즈에 기초하여 계산되는 디폴트 블록 벡터는 병합 후보 리스트에 추가된다. 본 개시에서, 유사한 디폴트 블록 벡터가 추가된다. 이들 디폴트 블록 벡터는, CU 블록 사이즈 대신, PU 블록 사이즈에 기초하여 계산될 수도 있다. 또한, 이들 디폴트 블록 벡터는, PU 블록 사이즈뿐만 아니라, CU에서의 PU 위치의 함수로서 계산될 수도 있다. 예를 들면, 현재 코딩 단위의 좌상 포지션에 대한 현재 PU의 블록 포지션을 (PUx, PUy)로서 표기한다. 현재 PU의 폭 및 높이를 (PUw, PUh)로서 표기한다. 디폴트 블록 벡터는, 순서대로, 다음과 같이 계산될 수도 있다: (-PUx - PUw, 0), (-PUx - 2*PUw, 0), (-PUy - PUh, 0), (-PUy - 2*PUh, 0), (-PUx - PUw, -PUy - PUh). 이들 디폴트 블록 벡터는 (병합 단계 8)에서 제로 모션 벡터의 바로 앞에 또는 뒤에 추가될 수도 있거나, 또는 이들은 제로 모션 벡터와 함께 인터리빙될 수도 있다. 또한, 이들 디폴트 블록 벡터는, 현재 픽쳐의 슬라이스 타입에 따라, 병합 후보 리스트의 상이한 포지션에 배치될 수도 있다.
하나의 실시형태에서, 보다 완전하고 효율적인 병합 후보 리스트를 유도하기 위해, (신규 병합 단계)로 마킹되는 다음의 단계가 사용될 수도 있다. 하기에서는 "인터 PU"만이 언급되지만, "인터 PU"는, (Li 2014), (Pang Oct. 2014)의 통합된 프레임워크 아래에 "IntraBC PU"를 포함한다는 것을 유의한다.
(신규 병합 단계 1) 좌측 이웃 PU A1을 체크한다. A1이 인터 PU이면, 그리고 그것의 MV/BV가 유효하면, 그것의 MV/BV를 후보 리스트에 추가한다.
(신규 병합 단계 2) 상부 이웃 PU B1을 체크한다. B1이 인터 PU이고 그것의 MV/BV가 고유하고 유효하면, 그것의 MV/BV를 후보 리스트에 추가한다.
(신규 병합 단계 3) 우상 이웃 PU B0을 체크한다. B0이 인터 PU이고 그것의 MV/BV가 고유하고 유효하면, 그것의 MV/BV를 후보 리스트에 추가한다.
(신규 병합 단계 4) 좌하 이웃 PU A0을 체크한다. A0이 인터 PU이고 그것의 MV/BV가 고유하고 유효하면, 그것의 MV/BV를 후보 리스트에 추가한다.
(신규 병합 단계 5) 후보의 수가 4 미만이면, 좌상 이웃 PU B2를 체크한다. B2가 인터 PU이고 그것의 MV/BV가 고유하고 유효하면, 그것의 MV/BV를 후보 리스트에 추가한다.
(신규 병합 단계 6) 시간적 MV 예측자를 획득하기 위해, 0으로 설정된 참조 인덱스, 슬라이스 헤더에서 명시되는 바와 같은 병치된 픽쳐, 및 도 15에서 묘사되는 바와 같은 병치된 PU를 가지고 TMVP 프로세스를 호출한다. 시간적 MV 예측자가 고유하면, 그것을 후보 리스트에 추가한다.
(신규 병합 단계 7) 시간적 BV 예측자를 획득하기 위해, 의사 참조 픽쳐의 것으로 설정된 참조 인덱스, 슬라이스 헤더에서 명시되는 바와 같은 병치된 픽쳐, 및 도 15에서 묘사되는 바와 같은 병치된 PU를 가지고 TMVP 프로세스를 호출한다. 시간적 BV 예측자가 고유하고 유효한 경우, 후보 리스트가 가득 찬 상태가 아니면, 그것을 후보 리스트에 추가한다.
(신규 병합 단계 8) 병합 후보 리스트가 가득 찬 상태가 아니면, 블록 벡터인 (신규 병합 단계 1) 내지 (신규 병합 단계 7)로부터 획득되는 후보 벡터의 각각에 대해, 상기에서 설명되는 두 개의 방법 중 어느 하나를 사용하여 블록 벡터 유도 프로세스를 적용한다. 유도된 블록 벡터가 유효하고 고유하면, 그것을 후보 리스트에 추가한다.
(신규 병합 단계 9) 병합 후보 리스트가 가득 찬 상태가 아니면, 그리고 현재 슬라이스가 B 슬라이스이면, 단계 (신규 병합 단계 1) 내지 (신규 병합 단계 8) 동안 현재 병합 리스트에 추가된 다양한 병합 후보의 조합이 체크되고 병합 후보 리스트에 추가된다.
(신규 병합 단계 10) 병합 후보 리스트가 가득 찬 상태가 아니면, 상이한 참조 픽쳐 조합을 갖는 제로 모션 벡터 및 디폴트 블록 벡터는, 리스트가 가득 찰 때까지, 인터리빙된 방식으로 후보 리스트에 추가될 것이다.
몇몇 실시형태에서, B 슬라이스에 대한 단계 "신규 병합 단계 10"은 다음의 방식으로 구현될 수 있다. 먼저, 이전에 정의된 다섯 개의 디폴트 블록 벡터의 유효성이 체크된다. BV가 재구성되지 않은 샘플, 또는 슬라이스 경계 밖의 샘플, 또는 현재 CU의 샘플에 대한 임의의 참조를 행하면, 그것은 무효한 BV로서 취급될 것이다. BV가 유효하면, 그것은 리스트 validDBVList에 추가될 것인데, validDBVList의 사이즈는 validDBVListSize로서 표기된다. 둘째, 병합 후보 리스트가 가득 찰 때까지, 양예측 모드를 갖는 병합 후보의 다음의 MV 쌍이 순서대로 추가된다:
Figure pct00016
리스트 0의 i 번째 참조 픽쳐가 현재 픽쳐이면, mv0_x 및 mv0_y는 디폴트 BV 중 하나로서 설정되고:
Figure pct00017
dBVIdx는 "신규 병합 단계 10"의 시작에서 제로로 설정된다. 그렇지 않다면, mv0_x 및 mv0_y 둘 다는 제로로 설정된다. 리스트 1의 i 번째 참조 픽쳐가 현재 픽쳐이면, mv1_x 및 mv1_y는 디폴트 BV 중 하나로서 설정된다:
Figure pct00018
그렇지 않다면, mv1_x 및 mv1_y 둘 다는 제로로 설정된다.
병합 후보 리스트가 여전히 가득 찬 상태가 아니면, 더 큰 사이즈를 갖는 리스트의 남아 있는 참조 픽쳐에 현재 픽쳐가 존재하는지의 여부에 대한 결정이 이루어진다. 현재 픽쳐가 발견되면, 병합 후보 리스트가 가득 찰 때까지, 다음의 디폴트 BV가 단예측 모드를 갖는 병합 후보로서 순서대로 추가된다:
Figure pct00019
현재 픽쳐가 발견되지 않으면, 병합 후보 리스트가 가득 찰 때까지, 다음의 MV가 반복적으로 추가된다.
Figure pct00020
여기서 mv0_x, mv0_y, mv1_x 및 mv1_y는 상기에서 설명되는 방식으로 유도된다.
본원에서 설명되는 몇몇 실시형태는, 섹션 8.5.3.2.5((Joshi 2014)의 초안 명세의 "Derivation process for zero motion vector merging candidates")에 대한 개정판을 사용하여 구현될 수 있다. 초안 명세에 대한 제안된 개정판은 본 개시의 부록 B에서 기재되는데, 특정한 개정 내용은 굵은 글씨체로 나타내어져 있고 삭제 부분은 이중 취소선으로 나타내어져 있다.
통합된 IBC 및 인터 프레임워크의 현재 설계에서, 현재 픽쳐는 일반적인 장기간 참조 픽쳐로서 취급된다. 현재 픽쳐가 list_0 또는 list_1에 배치될 수 있는 곳에 대한 또는 현재 픽쳐가 양예측(BV 및 MV의 양예측 및 BV 및 BV의 양예측을 포함함)에서 사용될 수 있는지의 여부에 대한 어떠한 추가적인 제약도 부과되지 않는다. 현재 픽쳐를 나타내는 참조 픽쳐 리스트 및 참조 인덱스를 상기에서 설명되는 병합 프로세스가 검색해야 할 것이기 때문에, 이 유연성은 바람직할 수도 있는데, 현재 픽쳐를 나타내는 참조 픽쳐 리스트 및 참조 인덱스를 상기에서 설명되는 병합 프로세스가 검색해야 하는 것은 병합 프로세스를 복잡하게 한다. 추가적으로, 현재의 설계에서와 같이 현재 픽쳐가 list_0 및 list_1 둘 다에서 나타나도록 허용되면, BV 및 BV를 사용하는 양예측 조합이 허용될 것이다. 이것은 모션 보상 프로세스의 복잡성을 증가시킬 수도 있지만, 그러나 제한된 성능 이익을 갖는다. 따라서, 참조 픽쳐 리스트의 현재 픽쳐의 배치에 소정의 제약을 부과하는 것이 바람직할 수도 있다. 다양한 실시형태에서, 다음의 제약 중 하나 이상 및 그들의 조합이 부과될 수도 있다. 제1 제약에서, 현재 픽쳐는, 참조 픽쳐 둘 다가 아니라, 단지 하나의 참조 픽쳐 리스트(예를 들면, list_0)에만 배치되도록 허용된다. 이 제약은 BV 및 BV의 양예측을 허용하지 않는다. 제2 제약에서, 현재 픽쳐는 참조 픽쳐 리스트의 끝에만 배치되도록 허용된다. 이 방식에서, 상기에서 설명되는 병합 프로세스는, 현재 픽쳐의 배치가 알려지기 때문에, 단순화될 수 있다.
참조 픽쳐 리스트 구성을 위한 디코딩 프로세스.
현재 설계에서, 참조 픽쳐 리스트를 구성하는 프로세스는, 각각의 P 또는 B 슬라이스에 대한 디코딩 프로세스의 시작에서 호출된다. 참조 픽쳐는, 조항 8.5.3.3.2에서 명시되는 바와 같은 참조 인덱스를 통해 주소 지정된다. 참조 인덱스는 참조 픽쳐 리스트로의 인덱스이다. P 슬라이스를 디코딩할 때, 단일의 참조 픽쳐 리스트 RefPicList0가 존재한다. B 슬라이스를 디코딩할 때, RefPicList0 외에, 제2의 독립적인 참조 픽쳐 리스트 RefPicList1이 존재한다.
각각의 슬라이스에 대한 디코딩 프로세스의 시작에서, 참조 픽쳐 리스트 RefPicList0 및, B 슬라이스의 경우, RefPicList1은 다음과 같이 유도된다. 변수 NumRpsCurrTempList0가 Max(num_ref_idx_l0_active_minus 1 + 1, NumPicTotalCurr)로 설정되고 리스트 RefPicListTemp0가 테이블 1에서 도시되는 바와 같이 구성된다.
Figure pct00021
리스트 RefPicList0는 테이블 2에서 도시되는 바와 같이 구성된다.
Figure pct00022
슬라이스가 B 슬라이스인 경우, 변수 NumRpsCurrTempList1는 Max(num_ref_idx_l1_active_minusl + 1, NumPicTotalCurr)로 설정되고 리스트 RefPicListTemp1은 테이블 3에서 도시되는 바와 같이 구성된다.
Figure pct00023
슬라이스가 B 슬라이스인 경우, 리스트 RefPicList1은 테이블 4에서 도시되는 바와 같이 구성된다.
Figure pct00024
단도 표시(dagger)(†)로 오른쪽 칼럼에서 마킹되는 현재 설계의 라인에 의해 나타내어지는 바와 같이, 현재 픽쳐는 하나 이상의 시간적 참조 픽쳐 리스트에 배치되는데, 하나 이상의 시간적 참조 픽쳐 리스트는 최종 리스트가 구성되기 이전에 (ref_pic_list_modification_10/11의 값에 따라) 참조 픽쳐 리스트 수정 프로세스를 겪을 수도 있다. 현재 픽쳐가 항상 참조 픽쳐 리스트의 끝에 배치되는 것을 가능하게 하기 위해, 현재 설계는, 현재 픽쳐가 최종 참조 픽쳐 리스트(들)의 끝에 바로 추가되고 시간적 참조 픽쳐 리스트(들)에 삽입되지 않도록 수정된다.
또한, 현재 설계에서, 플래그 curr_pic_as_ref_enabled_flag는 시퀀스 파라미터 세트(Sequence Parameter Set) 레벨에서 시그널링된다. 이것은, 플래그가 1로 설정되면, 현재 픽쳐가 비디오 시퀀스의 픽쳐 전체의 시간적 참조 픽쳐 리스트(들) 안으로 삽입될 것이다는 것을 의미한다. 이것은, 현재 픽쳐를 참조 픽쳐로서 사용할지의 여부를 각기 개별 픽쳐가 선택하는 충분한 유연성을 제공하지 않을 수도 있다. 따라서, 본 개시의 하나의 실시형태에서는, 현재 픽쳐가 현재 슬라이스를 코딩하도록 사용되는지의 여부를 나타내기 위해, 슬라이스 레벨 시그널링(예를 들면, 슬라이스 레벨 플래그)이 추가된다. 그 다음, 단도 표시(†)로 마킹된 라인의 조건을 설정하기 위해, SPS 레벨 플래그(curr_pic_as_ref_enabled_flag) 대신, 이 슬라이스 레벨 플래그가 사용된다. 픽쳐가 다수의 슬라이스에서 코딩되는 경우, 제안된 슬라이스 레벨 플래그의 값은, 동일한 픽쳐에 대응하는 모든 슬라이스에 대해 동일하도록 강제된다.
통합된 IntraBC 및 인터 프레임워크에 대한 복잡성 제약.
앞서 논의된 바와 같이, 통합된 IntraBC 및 인터 프레임워크에서, 블록 벡터에 기초하는 적어도 하나의 예측을 사용하여 양예측 모드를 적용하는 것이 허용된다. 즉, 모션 벡터에만 기초한 종래의 양예측 외에, 통합된 프레임워크는 또한, 블록 벡터에 기초한 하나의 예측 및 모션 벡터에 기초한 다른 예측을 사용하는 양예측뿐만 아니라, 두 개의 블록 벡터를 사용하는 양예측도 허용한다. 이 확장된 양예측 모드는 인코더 복잡성 및 디코더 복잡성을 증가시킬 수도 있다. 여전히, 코딩 효율성 향상은 제한될 수도 있다. 따라서, 두 개의 모션 벡터를 사용하는 종래의 양예측으로 양예측을 제약하지만, 그러나 (하나 또는 두 개의) 블록 벡터를 사용하는 양예측을 허용하지 않는 것이 유익할 수도 있다. 제1 방법에서, 이러한 제약을 부과하기 위해, MV 시그널링은 PU 레벨에서 변경될 수도 있다. 예를 들면, PU에 대해 시그널링되는 예측 방향이 양예측을 나타내면, 의사 참조 픽쳐는 참조 픽쳐 리스트로부터 배제되고, 코딩될 참조 인덱스는 상응하게 수정된다. 이 양예측 제약을 부과하는 제2 방법에서는, 의사 참조 프레임을 참조하는 블록 벡터가 양예측에서 사용될 수 없도록 임의의 양예측 모드를 제약하기 위해, 비트스트림 순응 요건이 부과된다. 상기에서 논의되는 병합 프로세스의 경우, 제안된 제약된 양예측에서, (신규 병합 단계 9)는 블록 벡터 후보의 어떠한 조합도 고려하지 않을 것이다.
의사 참조 픽쳐를 다른 시간적 참조 픽쳐와 추가로 통합하기 위해 구현될 수 있는 추가적인 피쳐는 패딩 프로세스(padding process)이다. 통상적인 시간적 참조 픽쳐의 경우, 모션 벡터가 픽쳐 경계 밖의 샘플을 사용할 때, 픽쳐는 패딩된다. 그러나, (Li 2014), (Pang Oct. 2014)의 설계에서는, 블록 벡터는 의사 참조 픽쳐의 경계 이내에 있는 것으로 제약되고, 픽쳐는 절대 패딩되지 않는다. 의사 참조 픽쳐를 다른 시간적 참조 픽쳐와 동일한 방식으로 패딩하는 것은, 추가적인 통합을 제공할 수도 있다.
BV 및 MV를 갖는 양예측 모드에 대한 양예측 검색.
몇몇 실시형태에서, 블록 벡터 및 모션 벡터는, 통합된 IntraBC 및 인터 프레임워크의 예측 유닛에 대한 양예측 모드를 형성하게끔 결합되도록 허용된다. 이 피쳐는 이 통합된 프레임워크에서 코딩 효율성의 추가적인 향상을 허용한다. 다음의 논의에서, 이 양예측 모드는 BV-MV 양예측으로 칭해진다. 인코딩 프로세스 동안 이 특정한 BV-MV 양예측 모드를 활용하는 상이한 방식이 존재한다.
하나의 방법은, 인터 병합 후보 유도 프로세스로부터의 이들 BV-MV 양예측 후보를 체크하는 것이다. 공간적 또는 시간적 이웃 예측 유닛이 BV-MV 양예측 모드이면, 그것은 현재 예측 유닛에 대한 하나의 병합 후보로서 사용될 것이다. "병합 단계 7"과 관련하여 상기에서 논의되는 바와 같이, 병합 후보 리스트가 가득 찬 상태가 아니고, 현재 슬라이스가 B 슬라이스(양예측을 허용함)이면, 하나의 현존하는 병합 후보의 참조 픽쳐 리스트 list_0로부터의 모션 벡터 및 다른 현존하는 병합 후보의 참조 픽쳐 리스트 list_1로부터의 모션 벡터는 신규의 양예측 병합 후보를 형성하도록 결합된다. 통합된 프레임워크에서, 이 신규로 생성된 양예측 병합 후보는 BV-MV 양예측일 수 있다. BV-MV 양예측 후보가 최상의 병합 후보로서 선택되고 병합 모드가 하나의 예측 유닛에 대한 최상의 코딩 모드로서 선택되면, 이 BV-MV 양예측 후보와 관련되는 단지 병합 플래그 및 병합 인덱스만이 시그널링될 것이다. BV 및 MV는 명시적으로 시그널링되지 않을 것이고, 디코더는 이들을 병합 후보 유도 프로세스로부터 추론할 것인데, 병합 후보 유도 프로세스는 인코더에서 수행되는 프로세스와 병행한다.
다른 실시형태에서, 인코더에서 하나의 예측 유닛에 대한 BV-MV 양예측 모드에 대해 양예측 검색이 적용되고, BV 및 MV는, 이 모드가 그 PU에 대한 최상의 코딩 모드로서 선택되면, 각각 시그널링된다.
SCC 참조 소프트웨어의 모션 추정 프로세스에서 두 개의 MV를 갖는 종래의 양예측 검색은 반복적 프로세스이다. 먼저, list_0 및 list_1 둘 다에서 단예측 검색이 수행된다. 그 다음, list_0 및 list_1의 이들 두 개의 단예측 MV에 기초하여 양예측이 수행된다. 방법은 하나의 MV(예를 들면, list_0 MV)를 고정하고, 개선될 MV(예를 들면, list_1 MV) 주위의 작은 검색 윈도우 내에서 다른 MV(예를 들면, list_1 MV)를 개선한다. 그 다음 방법은 반대 리스트(예를 들면, list_0 MV)의 MV를 동일한 방식으로 개선한다. 양예측 검색은, 검색의 수가 미리 정의된 임계치를 충족하면, 또는 양예측의 왜곡이 미리 정의된 임계치 미만이면 중지한다.
본원에서 개시되는 제안된 BV-MV 양예측 검색의 경우, IntraBC 모드의 최상의 BV 및 일반적인 인터 모드의 최상의 MV가 저장된다. 그 다음, 저장된 BV 및 MV는 BV-MV 양예측 검색에서 사용된다. BV-MV 양예측 검색의 플로우차트가 도 29a 및 도 29b에서 묘사된다.
MV-MV 양예측 검색과의 하나의 차이는, BV 검색이 블록 벡터 개선을 위해 수행된다는 것인데, 블록 벡터 개선은, BV 검색 알고리즘이 MV 검색 알고리즘과는 상이하게 설계될 수도 있기 때문에, MV 개선과는 상이할 수도 있다. 도 29a 및 도 29b의 예에서는, 일반성의 손실 없이, BV는 list_0로부터 유래하고 MV는 list_1로부터 유래한다는 것을 가정한다. 초기 검색 리스트는, BV에 대한 그리고 MV에 대한 개별 레이트 왜곡 비용(rate distortion cost)을 비교하는 것에 의해, 그리고 더 큰 비용을 갖는 것을 선택하는 것에 의해 선택된다. 예를 들면, BV의 비용이 더 크면, list_0가 초기 검색 리스트로서 선택되고, 그 결과 BV는 더 나은 예측을 제공하도록 더 개선될 수도 있다. BV 개선 및 MV 개선이 반복적으로 수행된다.
도 29a 및 도 29b의 방법에서, 검색 리스트 및 검색 시간은 단계 2902에서 초기화된다. 그 다음, 초기 검색 리스트 선택 프로세스(2904)가 수행된다. L1_MVD_Zero_Flag가 거짓이면(단계 2906), BV의 레이트 왜곡 비용은 단계 2908에서 결정되고 MV의 레이트 왜곡 비용은 단계 2910에서 결정된다. 이들 비용은 비교되고(단계 2912), MV가 더 높은 비용을 가지면, 검색 리스트는 list_1로 스위칭된다. 타겟 블록 업데이트 방법(하기에서 더 상세히 설명됨)이 단계 2916에서 수행되고, BV 또는 MV의 개선이 단계 2918-2922에서 적절히 수행된다. 카운터 search_times가 단계 2924에서 증분되고, 프로세스는, Max_Time이 도달될 때까지(단계 2928), 업데이트된 search_list를 가지고 반복된다(단계 2926).
BV 또는 MV 개선의 각각의 라운드 이전에 수행되는 타겟 블록 업데이트 프로세스는 도 30의 플로우차트에서 예시된다. 개선의 목표를 위한 타겟 블록은, 원래의 블록으로부터 고정된 방향(BV 또는 MV)의 예측 블록을 감산하는 것에 의해 계산된다. 단계 3002에서, BV가 개선될 것인지 또는 MV가 개선될 것인지의 여부가 search_list에 기초하여 결정된다. BV가 개선되어야 하면(단계 3004, 3008), 타겟 블록은, 검색의 최종 라운드로부터의 MV로 획득되는 예측 블록을 뺀 원래의 블록과 동일하게 설정될 것이다. 역으로, MV가 개선되어야 하면(단계 3006, 3008), 타겟 블록은, 검색의 최종 라운드로부터의 BV로 획득되는 예측 블록을 뺀 원래의 블록과 동일하게 설정될 것이다. 그 다음, BV 또는 MV 검색 개선의 다음 번 라운드는, 타겟 블록 매치를 시도할 BV/MV 검색을 수행하는 것을 포함한다. BV 개선을 위한 검색 윈도우는 도 31a에서 도시되고, MV를 위한 검색 윈도우는 도 31b에서 도시된다. BV 개선을 위한 검색 윈도우는 MV 개선의 것과는 상이할 수 있다.
제안된 BV-MV 양예측 검색의 하나의 실시형태에서, 이 명시적인 양예측 검색은, 모션 벡터 해상도가 그 슬라이스에 대해 분수적인 경우에만 수행된다. 상기에서 논의되는 바와 같이, 정수 모션 벡터 해상도는, 모션 보상된 예측이 꽤 양호하다는 것을 나타내고, 따라서 BV-MV 양예측 검색이 예측을 더 향상시키는 것은 어려울 것이다. 모션 벡터 해상도가 정수인 경우 BV-MV 양예측 검색을 디스에이블하는 것에 의해, 다른 이점은, BV-MV 양예측이 항상 수행되는 경우와 비교하여 인코딩 복잡성이 감소될 수 있다는 것이다. BV-MV 양예측 검색은, 인코딩 복잡성을 추가로 제어하기 위해 구획 사이즈에 기초하여 선택적으로 수행될 수 있다. 예를 들면, BV-MV 양예측 검색은, 모션 벡터 해상도가 정수가 아니고 구획 사이즈가 2N×2N인 경우에만 수행될 수도 있다.
피쳐 및 엘리먼트가 특정 조합으로 상기에서 설명되었지만, 기술분야에서 통상의 지식을 가진 자라면, 각각의 피쳐 또는 엘리먼트는 단독으로 사용될 수 있거나 또는 다른 피쳐 및 엘리먼트와의 임의의 조합으로 사용될 수 있다는 것을 알 수 있을 것이다. 또한, 본원에서 설명되는 방법은, 컴퓨터 또는 프로세서에 의한 실행을 위해 컴퓨터 판독가능 매체에 통합되는 컴퓨터 프로그램, 소프트웨어, 또는 펌웨어로 구현될 수도 있다. 컴퓨터 판독가능 매체의 예는 전자 신호(유선 또는 무선 연결을 통해 송신됨) 및 컴퓨터 판독가능 저장 매체를 포함한다. 컴퓨터 판독가능 저장 매체의 예는, 리드 온리 메모리(ROM), 랜덤 액세스 메모리(RAM), 레지스터, 캐시 메모리, 반도체 메모리 디바이스, 내장 하드 디스크 및 착탈식 디스크와 같은 자기 매체, 광자기 매체, 및 CD-ROM 디스크 및 디지털 다기능 디스크(digital versatile disk; DVD)와 같은 광학 매체를 포함하지만, 그러나 이들로 한정되는 것은 아니다. 소프트웨어와 관련하는 프로세서는, WTRU, UE, 단말, 기지국, RNC, 또는 임의의 호스트 컴퓨터에서 사용하기 위한 무선 주파수 트랜스시버를 구현하기 위해 사용될 수도 있다.
Figure pct00025
Figure pct00026
Figure pct00027
Figure pct00028
Figure pct00029
Figure pct00030
Figure pct00031
Figure pct00032

Claims (20)

  1. 비디오 코딩 방법으로서,
    제1 비디오 블록의 예측을 위한 후보 블록 벡터 - 상기 제1 비디오 블록은 현재 픽쳐이고, 상기 후보 블록 벡터는 시간적 참조 픽쳐의 제2 비디오 블록의 예측을 위해 사용되는 제2 블록 벡터임 - 를 식별하는 단계; 및
    상기 후보 블록 벡터를 상기 제1 비디오 블록의 예측자(predictor)로서 사용하여 상기 제1 비디오 블록을 인트라 블록 카피 코딩을 사용하여 코딩하는 단계
    를 포함하는, 비디오 코딩 방법.
  2. 제1항에 있어서,
    상기 제1 비디오 블록을 코딩하는 단계는, 상기 현재 픽쳐를, 픽셀의 복수의 블록으로서 코딩하는 비트스트림을 생성하는 단계를 포함하고, 상기 비트스트림은 상기 제2 블록 벡터를 식별하는 인덱스를 포함하는 것인, 비디오 코딩 방법.
  3. 제1항에 있어서,
    상기 제1 비디오 블록을 코딩하는 단계는, 상기 현재 픽쳐를, 픽셀의 복수의 블록으로서 코딩하는 비트스트림을 수신하는 단계를 포함하고, 상기 비트스트림은 상기 제2 블록 벡터를 식별하는 인덱스를 포함하는 것인, 비디오 코딩 방법.
  4. 제1항에 있어서,
    병합 후보 리스트를 생성하는 단계를 더 포함하고, 상기 병합 후보 리스트는 상기 제2 블록 벡터를 포함하고, 상기 제1 비디오 블록을 코딩하는 단계는, 상기 제2 블록 벡터를 식별하는 인덱스를 상기 병합 후보 리스트에서 제공하는 단계를 포함하는 것인, 비디오 코딩 방법.
  5. 제4항에 있어서,
    상기 병합 후보 리스트는 적어도 하나의 디폴트 블록 벡터를 더 포함하는 것인, 비디오 코딩 방법.
  6. 제1항에 있어서,
    병합 후보 리스트 - 상기 병합 후보 리스트는 모션 벡터 병합 후보의 세트 및 블록 벡터 병합 후보의 세트를 포함함 - 를 생성하는 단계를 더 포함하고,
    상기 제1 비디오 블록을 코딩하는 단계는,
    상기 예측자가 블록 벡터 병합 후보의 상기 세트에 있다는 것을 식별하는 플래그를 상기 제1 비디오 블록에게 제공하는 단계; 및
    블록 벡터 병합 후보의 상기 세트 내에서 상기 제2 블록 벡터를 식별하는 인덱스를 상기 제1 비디오 블록에게 제공하는 단계
    를 포함하는 것인, 비디오 코딩 방법.
  7. 제1항에 있어서,
    상기 제1 비디오 블록을 코딩하는 단계는,
    상기 예측자가 블록 벡터라는 것을 식별하는 플래그를 수신하는 단계;
    병합 후보 리스트 - 상기 병합 후보 리스트는 블록 벡터 병합 후보의 세트를 포함함 - 를 생성하는 단계; 및
    블록 벡터 병합 후보의 상기 세트 내에서 상기 제2 블록 벡터를 식별하는 인덱스를 수신하는 단계
    를 포함하는 것인, 비디오 코딩 방법.
  8. 비디오 코딩 방법으로서,
    예측 유닛에 대한 모션 벡터 병합 후보의 리스트 및 블록 벡터 병합 후보의 리스트를 형성하는 단계;
    상기 병합 후보 중 하나를 예측자로서 선택하는 단계;
    상기 예측자가 모션 벡터 병합 후보의 상기 리스트에 있는지 또는 블록 벡터 병합 후보의 상기 리스트에 있는지를 식별하는 플래그를 상기 예측 유닛에게 제공하는 단계; 및
    병합 후보의 상기 식별된 리스트 내에서부터 상기 예측자를 식별하는 인덱스를 상기 예측 유닛에게 제공하는 단계
    를 포함하는, 비디오 코딩 방법.
  9. 제8항에 있어서,
    상기 블록 벡터 병합 후보 중 적어도 하나는 시간적 블록 벡터 예측을 사용하여 생성되는 것인, 비디오 코딩 방법.
  10. 비디오 코딩 방법으로서,
    예측 유닛에 대한 병합 후보 - 각각의 병합 후보는 예측 벡터이고, 상기 예측 벡터 중 적어도 하나는 시간적 참조 픽쳐로부터의 제1 블록 벡터임 - 의 리스트를 형성하는 단계;
    상기 병합 후보 중 하나를 예측자로서 선택하는 단계; 및
    병합 후보의 식별된 세트 내에서부터 상기 예측자를 식별하는 인덱스를 상기 예측 유닛에게 제공하는 단계
    를 포함하는, 비디오 코딩 방법.
  11. 제10항에 있어서,
    상기 예측 벡터가 유효하고 고유하다는 것을 결정한 이후에만 병합 후보의 상기 리스트에 예측 벡터를 추가하는 단계를 더 포함하는, 비디오 코딩 방법.
  12. 제10항에 있어서,
    병합 후보의 상기 리스트는 적어도 하나의 유도된 블록 벡터를 더 포함하는 것인, 비디오 코딩 방법.
  13. 제10항에 있어서,
    상기 선택된 예측자는 상기 제1 블록 벡터인 것인, 비디오 코딩 방법.
  14. 제10항에 있어서,
    상기 제1 블록 벡터는 병치된(collocated) 예측 유닛과 관련되는 블록 벡터인 것인, 비디오 코딩 방법.
  15. 제10항에 있어서,
    상기 병치된 예측 유닛은 슬라이스 헤더에서 명시되는 병치된 참조 픽쳐에 있는 것인, 비디오 코딩 방법.
  16. 비디오 코딩 방법으로서,
    예측 유닛에 대한 병합 후보의 세트를 식별하는 단계 - 병합 후보의 상기 세트의 상기 식별은 디폴트 블록 벡터를 갖는 적어도 하나의 후보를 추가하는 단계를 포함함 - ;
    상기 후보 중 하나를 예측자로서 선택하는 단계; 및
    병합 후보의 상기 식별된 세트 내에서부터 상기 병합 후보를 식별하는 인덱스를 상기 예측 유닛에게 제공하는 단계
    를 포함하는, 비디오 코딩 방법.
  17. 제16항에 있어서,
    상기 디폴트 블록 벡터는 디폴트 블록 벡터의 리스트로부터 선택되는 것인, 비디오 코딩 방법.
  18. 제16항에 있어서,
    병합 후보의 상기 세트는 적어도 하나의 제로 모션 벡터를 추가적으로 포함하는 것인, 비디오 코딩 방법.
  19. 제18항에 있어서,
    상기 적어도 하나의 디폴트 블록 벡터 및 상기 적어도 하나의 제로 모션 벡터는 병합 후보의 상기 세트에서 인터리빙된 방식(interleaved manner)으로 정렬되는 것인, 비디오 코딩 방법.
  20. 제18항에 있어서,
    상기 디폴트 블록 벡터는,
    (-PUx - PUw, 0), (-PUx - 2*PUw, 0), (-PUy - PUh, 0), (-PUy - 2*PUh, 0), 및
    (-PUx - PUw, -PUy - PUh)
    로 구성되는 디폴트 블록 벡터의 리스트로부터 선택되고,
    PUw 및 PUh는, 각각, 상기 예측 유닛의 폭 및 높이이고, PUx 및 PUy는, 상기 코딩 단위의 좌상(top left) 포지션에 대한 PU의 블록 포지션인 것인, 비디오 코딩 방법.
KR1020177011096A 2014-09-26 2015-09-18 시간적 블록 벡터 예측을 갖는 인트라 블록 카피 코딩 KR20170066457A (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201462056352P 2014-09-26 2014-09-26
US62/056,352 2014-09-26
US201462064930P 2014-10-16 2014-10-16
US62/064,930 2014-10-16
US201562106615P 2015-01-22 2015-01-22
US62/106,615 2015-01-22
US201562112619P 2015-02-05 2015-02-05
US62/112,619 2015-02-05
PCT/US2015/051001 WO2016048834A1 (en) 2014-09-26 2015-09-18 Intra block copy coding with temporal block vector prediction

Publications (1)

Publication Number Publication Date
KR20170066457A true KR20170066457A (ko) 2017-06-14

Family

ID=54292911

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177011096A KR20170066457A (ko) 2014-09-26 2015-09-18 시간적 블록 벡터 예측을 갖는 인트라 블록 카피 코딩

Country Status (6)

Country Link
US (1) US20170289566A1 (ko)
EP (1) EP3198872A1 (ko)
JP (1) JP2017532885A (ko)
KR (1) KR20170066457A (ko)
CN (1) CN107005708A (ko)
WO (1) WO2016048834A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020130678A1 (ko) * 2018-12-21 2020-06-25 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020141954A1 (ko) * 2019-01-05 2020-07-09 엘지전자 주식회사 비디오 데이터를 처리하기 위한 방법 및 장치
WO2020141886A1 (ko) * 2019-01-02 2020-07-09 엘지전자 주식회사 Sbtmvp 기반 인터 예측 방법 및 장치
KR20200139215A (ko) * 2018-06-04 2020-12-11 텐센트 아메리카 엘엘씨 서브-블록 기반 시간 움직임 벡터 예측을 위한 방법 및 장치

Families Citing this family (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5705833B2 (ja) * 2010-04-13 2015-04-22 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 画像符号化方法および画像復号化方法
KR102034938B1 (ko) * 2014-09-01 2019-10-21 에이치에프아이 이노베이션 인크. 스크린 콘텐츠 및 비디오 코딩을 위한 인트라 픽처 블록 카피의 방법
KR102115715B1 (ko) * 2014-09-30 2020-05-27 에이치에프아이 이노베이션 인크. 비디오 코딩을 위한 적응적 모션 벡터 레졸루션 방법
GB2531005A (en) * 2014-10-06 2016-04-13 Canon Kk Improved encoding process using a palette mode
WO2016104179A1 (ja) * 2014-12-26 2016-06-30 ソニー株式会社 画像処理装置および画像処理方法
US10148981B2 (en) * 2015-03-20 2018-12-04 Mediatek Singapore Pte. Ltd. Methods of palette coding with inter-prediction in video coding
CA2983881C (en) * 2015-04-29 2019-11-19 Hfi Innovation Inc. Method and apparatus for intra block copy reference list construction
US11140400B2 (en) * 2015-06-05 2021-10-05 Sony Corporation Image processing apparatus and image processing method for intra BC prediction
EP3654646A1 (en) * 2015-06-05 2020-05-20 Intellectual Discovery Co., Ltd. Methods for encoding and decoding intra-frame prediction based on block shape
US10178403B2 (en) * 2015-06-23 2019-01-08 Qualcomm Incorporated Reference picture list construction in intra block copy mode
CN108141593B (zh) * 2015-07-31 2022-05-03 港大科桥有限公司 用于针对深度视频的高效帧内编码的基于深度不连续的方法
US10812822B2 (en) * 2015-10-02 2020-10-20 Qualcomm Incorporated Intra block copy merge mode and padding of unavailable IBC reference region
CN116546207A (zh) * 2016-04-08 2023-08-04 韩国电子通信研究院 用于导出运动预测信息的方法和装置
CN107770543B (zh) * 2016-08-21 2023-11-10 上海天荷电子信息有限公司 多类匹配参数中按顺序递增截断值的数据压缩方法和装置
US10827186B2 (en) * 2016-08-25 2020-11-03 Intel Corporation Method and system of video coding with context decoding and reconstruction bypass
CN109089119B (zh) * 2017-06-13 2021-08-13 浙江大学 一种运动矢量预测的方法及设备
WO2019001741A1 (en) * 2017-06-30 2019-01-03 Huawei Technologies Co., Ltd. MOTION VECTOR REFINEMENT FOR MULTI-REFERENCE PREDICTION
JP2019129371A (ja) * 2018-01-23 2019-08-01 富士通株式会社 動画像符号化装置、動画像符号化方法、動画像復号装置、動画像復号方法、及び動画像符号化用コンピュータプログラムならびに動画像復号用コンピュータプログラム
US11012715B2 (en) * 2018-02-08 2021-05-18 Qualcomm Incorporated Intra block copy for video coding
US10638137B2 (en) * 2018-03-07 2020-04-28 Tencent America LLC Method and apparatus for video coding
US10771781B2 (en) 2018-03-12 2020-09-08 Electronics And Telecommunications Research Institute Method and apparatus for deriving intra prediction mode
WO2019190199A1 (ko) * 2018-03-27 2019-10-03 주식회사 케이티 비디오 신호 처리 방법 및 장치
CN117135346A (zh) 2018-04-02 2023-11-28 深圳市大疆创新科技有限公司 用于图像处理的方法和图像处理装置
US11457233B2 (en) * 2018-04-12 2022-09-27 Arris Enterprises Llc Motion information storage for video coding and signaling
US10462483B1 (en) * 2018-04-26 2019-10-29 Tencent America LLC Method and apparatus for video coding
WO2019216325A1 (en) 2018-05-09 2019-11-14 Sharp Kabushiki Kaisha Systems and methods for performing motion vector prediction using a derived set of motion vectors
US10448025B1 (en) 2018-05-11 2019-10-15 Tencent America LLC Method and apparatus for video coding
JP7104186B2 (ja) * 2018-06-05 2022-07-20 北京字節跳動網絡技術有限公司 Ibcとatmvpとの間でのインタラクション
CN110636297B (zh) 2018-06-21 2021-05-14 北京字节跳动网络技术有限公司 分量相关的子块分割
CN110636298B (zh) 2018-06-21 2022-09-13 北京字节跳动网络技术有限公司 对于Merge仿射模式和非Merge仿射模式的统一约束
KR102600670B1 (ko) * 2018-07-02 2023-11-08 후아웨이 테크놀러지 컴퍼니 리미티드 움직임 벡터 예측 방법 및 장치, 인코더, 그리고 디코더
JP2021516006A (ja) * 2018-07-02 2021-06-24 エルジー エレクトロニクス インコーポレイティド インター予測モードに基づいた映像処理方法及びそのための装置
US10448026B1 (en) * 2018-07-09 2019-10-15 Tencent America LLC Method and apparatus for block vector signaling and derivation in intra picture block compensation
US10904559B2 (en) * 2018-07-13 2021-01-26 Tencent America LLC Block vector prediction in intra block copy mode
WO2020017861A1 (ko) * 2018-07-16 2020-01-23 엘지전자 주식회사 서브블록 단위의 시간적 움직임 정보 예측을 위한 인터 예측 방법 및 그 장치
EP3831064B1 (en) * 2018-08-17 2024-02-07 Huawei Technologies Co., Ltd. Reference picture management in video coding
RU2757209C1 (ru) 2018-08-29 2021-10-12 Бейджинг Дацзя Интернет Информейшн Текнолоджи Ко., Лтд. Способы и устройства для кодирования видео с использованием вектора движения временного предсказания на основе субблоков
WO2020060177A1 (ko) * 2018-09-18 2020-03-26 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020060316A1 (ko) * 2018-09-20 2020-03-26 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020065518A1 (en) 2018-09-24 2020-04-02 Beijing Bytedance Network Technology Co., Ltd. Bi-prediction with weights in video coding and decoding
WO2020075053A1 (en) 2018-10-08 2020-04-16 Beijing Bytedance Network Technology Co., Ltd. Generation and usage of combined affine merge candidate
EP3788779A4 (en) * 2018-10-23 2022-03-02 Tencent America LLC VIDEO CODING METHOD AND APPARATUS
WO2020084553A1 (en) 2018-10-24 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Motion candidate derivation based on multiple information in sub-block motion vector prediction
CN112997480B (zh) 2018-11-10 2023-08-22 北京字节跳动网络技术有限公司 成对平均候选计算中的取整
CN117880493A (zh) 2018-11-13 2024-04-12 北京字节跳动网络技术有限公司 用于空域运动候选列表的构建方法
EP3884674A4 (en) * 2018-11-21 2022-02-23 Telefonaktiebolaget Lm Ericsson (Publ) VIDEO IMAGE CODING METHODS WITH SUB-BLOCK MERGER SIMPLIFICATION AND ASSOCIATED APPARATUS
WO2020103936A1 (en) 2018-11-22 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Pruning method for inter prediction with geometry partition
WO2020108574A1 (en) * 2018-11-28 2020-06-04 Beijing Bytedance Network Technology Co., Ltd. Improving method for transform or quantization bypass mode
WO2020108650A1 (en) 2018-11-29 2020-06-04 Beijing Bytedance Network Technology Co., Ltd. Flag indication method in intra block copy mode
WO2020125798A1 (en) 2018-12-22 2020-06-25 Beijing Bytedance Network Technology Co., Ltd. Intra block copy mode with dual tree partition
MX2021003506A (es) * 2018-12-13 2021-05-27 Jvckenwood Corp Dispositivo de decodificacion de imagenes, metodo de decodificacion de imagenes y programa de decodificacion de imagenes.
CN111343461B (zh) * 2018-12-18 2022-03-25 北京达佳互联信息技术有限公司 视频解码方法、视频编码方法及装置
CN113196773B (zh) * 2018-12-21 2024-03-08 北京字节跳动网络技术有限公司 具有运动矢量差的Merge模式中的运动矢量精度
CN113261290B (zh) * 2018-12-28 2024-03-12 北京字节跳动网络技术有限公司 基于修改历史的运动预测
US10951895B2 (en) 2018-12-31 2021-03-16 Alibaba Group Holding Limited Context model selection based on coding unit characteristics
WO2020140953A1 (en) 2019-01-02 2020-07-09 Beijing Bytedance Network Technology Co., Ltd Early determination of hash-based motion searching
EP3937488A3 (en) * 2019-01-09 2022-04-13 Beijing Dajia Internet Information Technology Co., Ltd. System and method for improving combined inter and intra prediction
US10904557B2 (en) * 2019-01-22 2021-01-26 Tencent America LLC Method and apparatus for video coding
KR20210123300A (ko) 2019-02-02 2021-10-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 복사를 위한 버퍼 관리
AU2020214083B2 (en) 2019-02-02 2023-06-01 Beijing Bytedance Network Technology Co., Ltd. Buffer management for intra block copy in video coding
WO2020164627A1 (en) 2019-02-17 2020-08-20 Beijing Bytedance Network Technology Co., Ltd. Motion candidate list construction for intra block copy mode
CN117395439A (zh) 2019-03-01 2024-01-12 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的基于方向的预测
CN117640927A (zh) 2019-03-04 2024-03-01 北京字节跳动网络技术有限公司 视频编解码中的帧内块复制中的实施方式方面
WO2020177505A1 (en) 2019-03-04 2020-09-10 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods using ibc merge list
US11012686B2 (en) * 2019-03-08 2021-05-18 Tencent America LLC Unified block vector prediction for intra picture block compensation
WO2020182148A1 (en) * 2019-03-11 2020-09-17 Beijing Bytedance Network Technology Co., Ltd. Pair-wise motion candidate construction based on designated candidates
CN113615195A (zh) 2019-03-11 2021-11-05 北京达佳互联信息技术有限公司 用于屏幕内容编解码的帧内块复制
CN111567044A (zh) * 2019-03-13 2020-08-21 北京大学 一种视频处理方法、装置、编码设备及解码设备
US10869041B2 (en) * 2019-03-29 2020-12-15 Intel Corporation Video cluster encoding for multiple resolutions and bitrates with performance and quality enhancements
CN113647102A (zh) * 2019-04-09 2021-11-12 北京达佳互联信息技术有限公司 用于在视频编解码中用信号发送合并模式的方法和装置
US11394990B2 (en) 2019-05-09 2022-07-19 Tencent America LLC Method and apparatus for signaling predictor candidate list size
CN117714682A (zh) 2019-05-21 2024-03-15 北京字节跳动网络技术有限公司 子块Merge模式中的语法信令
CN114097228B (zh) * 2019-06-04 2023-12-15 北京字节跳动网络技术有限公司 具有几何分割模式编解码的运动候选列表
EP3963890A4 (en) 2019-06-04 2022-11-02 Beijing Bytedance Network Technology Co., Ltd. BUILDING A LIST OF MOVEMENT CANDIDATES USING NEIGHBOR BLOCK INFORMATION
CN113994699B (zh) 2019-06-06 2024-01-12 北京字节跳动网络技术有限公司 视频编解码的运动候选列表构建
KR20220024773A (ko) * 2019-06-24 2022-03-03 알리바바 그룹 홀딩 리미티드 동영상 코딩시 모션 필드 저장 방법 및 장치
WO2020263472A1 (en) * 2019-06-24 2020-12-30 Alibaba Group Holding Limited Method and apparatus for motion vector refinement
US11601666B2 (en) * 2019-06-25 2023-03-07 Qualcomm Incorporated Derivation of temporal motion vector prediction candidates in video coding
CN114175645B (zh) 2019-07-06 2024-04-12 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的虚拟预测缓冲
CA3146391A1 (en) 2019-07-10 2021-01-14 Beijing Bytedance Network Technology Co., Ltd. Sample identification for intra block copy in video coding
EP3981146A4 (en) 2019-07-11 2022-08-03 Beijing Bytedance Network Technology Co., Ltd. BITSTREAM CONFORMITY RESTRICTIONS FOR INTRA-BLOCK COPY IN VIDEO ENCODING
EP3984215A4 (en) 2019-07-14 2022-08-24 Beijing Bytedance Network Technology Co., Ltd. TRANSFORM BLOCK SIZE RESTRICTION IN VIDEO CODING
KR20220032520A (ko) 2019-07-20 2022-03-15 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 팔레트 모드 사용 지시의 조건 종속적인 코딩
CN117221536A (zh) * 2019-07-23 2023-12-12 北京字节跳动网络技术有限公司 调色板模式编解码的模式确定
AU2020316548A1 (en) 2019-07-25 2022-02-24 Beijing Bytedance Network Technology Co., Ltd. Mapping restriction for intra-block copy virtual buffer
CN117499659A (zh) 2019-07-25 2024-02-02 北京字节跳动网络技术有限公司 帧内块复制虚拟缓冲区的尺寸限制
KR20220042125A (ko) * 2019-08-10 2022-04-04 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 서브픽처 디코딩에서의 버퍼 관리
CN114342410A (zh) 2019-09-05 2022-04-12 北京字节跳动网络技术有限公司 帧内块复制模式下块矢量的范围约束
WO2021057751A1 (en) 2019-09-23 2021-04-01 Beijing Bytedance Network Technology Co., Ltd. Setting intra-block copy virtual buffer based on virtual pipeline data unit
CN114402616A (zh) * 2019-09-27 2022-04-26 Oppo广东移动通信有限公司 当前块的预测方法及装置、设备、存储介质
WO2021057996A1 (en) 2019-09-28 2021-04-01 Beijing Bytedance Network Technology Co., Ltd. Geometric partitioning mode in video coding
JP7322290B2 (ja) 2019-10-02 2023-08-07 北京字節跳動網絡技術有限公司 ビデオビットストリームにおけるサブピクチャシグナリングのための構文
CN117676135A (zh) 2019-10-18 2024-03-08 北京字节跳动网络技术有限公司 子图片与环路滤波之间的相互影响
US11240524B2 (en) * 2019-11-27 2022-02-01 Mediatek Inc. Selective switch for parallel processing
US11375231B2 (en) 2020-01-14 2022-06-28 Tencent America LLC Method and apparatus for video coding
US11057637B1 (en) * 2020-01-29 2021-07-06 Mellanox Technologies, Ltd. Efficient video motion estimation by reusing a reference search region
KR20220152299A (ko) * 2020-03-12 2022-11-15 인터디지털 브이씨 홀딩스 프랑스 비디오 인코딩 및 디코딩을 위한 방법 및 장치
WO2021185306A1 (en) 2020-03-18 2021-09-23 Beijing Bytedance Network Technology Co., Ltd. Intra block copy buffer and palette predictor update
CN112004099B (zh) * 2020-07-30 2021-08-03 浙江大华技术股份有限公司 一种帧内块复制预测方法、装置及计算机可读存储介质
US11496729B2 (en) 2020-10-19 2022-11-08 Tencent America LLC Method and apparatus for video coding
US20220295075A1 (en) * 2021-03-10 2022-09-15 Lemon Inc. Resource constrained video encoding
WO2023025114A1 (en) * 2021-08-24 2023-03-02 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
CN115905791B (zh) * 2022-11-25 2023-08-04 湖南胜云光电科技有限公司 一种数字信号的处理系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3247110B1 (en) * 2005-07-18 2018-05-16 Thomson Licensing Method and device for handling multiple video streams using metadata
US8990101B2 (en) * 2006-11-06 2015-03-24 The Boeing Company Customizable situational awareness dashboard and alerts, and associated systems and methods
WO2009115901A2 (en) * 2008-03-19 2009-09-24 Nokia Corporation Combined motion vector and reference index prediction for video coding
US8784457B2 (en) * 2010-10-14 2014-07-22 Michael E Graham Implant for correcting skeletal mechanics
JPWO2012120840A1 (ja) * 2011-03-07 2014-07-17 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置および画像符号化装置
US9247249B2 (en) * 2011-04-20 2016-01-26 Qualcomm Incorporated Motion vector prediction in video coding
WO2013051209A1 (ja) * 2011-10-05 2013-04-11 パナソニック株式会社 画像符号化方法、画像符号化装置、画像復号方法、画像復号装置、および、画像符号化復号装置
GB2519514A (en) * 2013-10-11 2015-04-29 Canon Kk Method and apparatus for displacement vector component prediction in video coding and decoding
BR112016010796B1 (pt) * 2013-11-14 2023-11-28 Hfi Innovation Inc. Método de sinalização de modo de codificação referência a pedidos de patente correlatos
US9661776B2 (en) * 2014-01-03 2017-05-23 Te Connectivity Corporation Mounting assembly and backplane communication system
US10555001B2 (en) * 2014-02-21 2020-02-04 Mediatek Singapore Pte. Ltd. Method of video coding using prediction based on intra picture block copy
US9756354B2 (en) * 2014-03-17 2017-09-05 Qualcomm Incorporated Block vector predictor for intra block copying
US10666968B2 (en) * 2014-05-06 2020-05-26 Hfi Innovation Inc. Method of block vector prediction for intra block copy mode coding
US9824356B2 (en) * 2014-08-12 2017-11-21 Bank Of America Corporation Tool for creating a system hardware signature for payment authentication
KR102034938B1 (ko) * 2014-09-01 2019-10-21 에이치에프아이 이노베이션 인크. 스크린 콘텐츠 및 비디오 코딩을 위한 인트라 픽처 블록 카피의 방법

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200139215A (ko) * 2018-06-04 2020-12-11 텐센트 아메리카 엘엘씨 서브-블록 기반 시간 움직임 벡터 예측을 위한 방법 및 장치
KR20230051641A (ko) * 2018-06-04 2023-04-18 텐센트 아메리카 엘엘씨 서브-블록 기반 시간 움직임 벡터 예측을 위한 방법 및 장치
US11800100B2 (en) 2018-06-04 2023-10-24 Tencent America LLC Method and apparatus for sub-block based temporal motion vector prediction
WO2020130678A1 (ko) * 2018-12-21 2020-06-25 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020141886A1 (ko) * 2019-01-02 2020-07-09 엘지전자 주식회사 Sbtmvp 기반 인터 예측 방법 및 장치
US11800089B2 (en) 2019-01-02 2023-10-24 Lg Electronics Inc. SbTMVP-based inter prediction method and apparatus
WO2020141954A1 (ko) * 2019-01-05 2020-07-09 엘지전자 주식회사 비디오 데이터를 처리하기 위한 방법 및 장치
CN113273206A (zh) * 2019-01-05 2021-08-17 Lg 电子株式会社 用于处理视频数据的方法和设备
US11962756B2 (en) 2019-01-05 2024-04-16 Lg Electronics Inc. Method and apparatus for processing video data

Also Published As

Publication number Publication date
CN107005708A (zh) 2017-08-01
EP3198872A1 (en) 2017-08-02
US20170289566A1 (en) 2017-10-05
WO2016048834A1 (en) 2016-03-31
JP2017532885A (ja) 2017-11-02

Similar Documents

Publication Publication Date Title
US20200404321A1 (en) Methods and systems for intra block copy coding with block vector derivation
KR20170066457A (ko) 시간적 블록 벡터 예측을 갖는 인트라 블록 카피 코딩
US9800857B2 (en) Inter-view residual prediction in multi-view or 3-dimensional video coding
US10897629B2 (en) Methods and systems for intra block copy search enhancement
US9350970B2 (en) Disparity vector derivation
CN115118971A (zh) 用于视频编码的通用式多假设预测的系统及方法
US9277200B2 (en) Disabling inter-view prediction for reference picture list in video coding
KR20150105372A (ko) 향상 계층에서의 모션 예측을 위한 적응된 모션 벡터 후보 리스트들을 발생시키는 스케일러블 hevc 디바이스 및 방법
JP2017513358A (ja) ビデオのエンコーディングおよびデコーディングのための方法およびテクノロジー機器
US10009621B2 (en) Advanced depth inter coding based on disparity of depth blocks