KR102423948B1 - 인트라-블록 복사를 위한 시스템들 및 방법들 - Google Patents

인트라-블록 복사를 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR102423948B1
KR102423948B1 KR1020167035219A KR20167035219A KR102423948B1 KR 102423948 B1 KR102423948 B1 KR 102423948B1 KR 1020167035219 A KR1020167035219 A KR 1020167035219A KR 20167035219 A KR20167035219 A KR 20167035219A KR 102423948 B1 KR102423948 B1 KR 102423948B1
Authority
KR
South Korea
Prior art keywords
prediction
block
encoded
intra
ctu
Prior art date
Application number
KR1020167035219A
Other languages
English (en)
Other versions
KR20170019365A (ko
Inventor
차오 팡
크리쉬나칸트 라파카
샹 리
로할스 호엘 솔레
청-테 시에
마르타 카르체비츠
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20170019365A publication Critical patent/KR20170019365A/ko
Application granted granted Critical
Publication of KR102423948B1 publication Critical patent/KR102423948B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal 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/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/172Methods 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 picture, frame or field
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/184Methods 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 bits, e.g. of the compressed video stream
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Abstract

비디오 데이터를 인코딩 및 디코딩하는 기법들 및 시스템들이 제공된다. 예를 들어, 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 방법이 기재된다. 방법은 예측 유닛을 발생시키기 위해 픽처들 중 하나의 픽처의 블록에 대한 인트라-픽처 예측을 수행하는 것을 포함한다. 인트라-픽처 예측을 수행하는 단계는 코팅 트리 유닛 (CTU) 의 인트라-블록 복사 예측을 위한 참보 블록을 선택하는 단계를 포함한다. 참조 블록은 복수의 인코딩된 블록들로부터 선택되고, 양방향-예측으로 인코딩된 CTU 내의 블록들은 참조 블록으로서 선택으로부터 제외된다. 인트라-픽처 예측을 수행하는 단계는 선택된 참조 블록으로 인트라-블록 복사 예측을 수행하여 예측 유닛을 발생시키는 단계를 더 포함한다. 방법은 또한 수행된 인트라-픽처 예측에 기초하여 예측 유닛을 인코딩하는 신택스 엘리먼트들을 발생시키는 단계를 포함한다.

Description

인트라-블록 복사를 위한 시스템들 및 방법들{SYSTEMS AND METHODS FOR INTRA-BLOCK COPY}
본 개시물은 일반적으로 비디오 코딩에 관한 것으로, 좀더 구체적으로는 인트라-블록 복사를 위한 기법들 및 시스템들에 관한 것이다.
많은 디바이스들 및 시스템들은 비디오 데이터가 소비를 위해 프로세싱 및 출력될 수 있게 한다. 디지털 비디오 데이터는 소비자들 및 비디오 제공자들의 요구들을 만족시키기 위해 대량의 데이터를 포함한다. 예를 들어, 비디오 데이터의 소비자들은 높은 충실도, 해상도들, 프레임 레이트들 등을 가지는, 최고 품질의 비디오를 원한다. 그 결과, 이들 요구들을 만족시키기 위해 요구되는 대량의 비디오 데이터가 통신 네트워크들 및 비디오 데이터를 프로세싱하고 저장하는 디바이스들에 부담을 준다.
여러 비디오 코딩 기법들이 비디오 데이터를 압축하는데 사용될 수도 있다. 비디오 코딩은 하나 이상의 비디오 코딩 표준들에 따라서 수행된다. 예를 들어, 비디오 코딩 표준들은 HEVC (High Efficiency Video Coding), AVC (Advanced Video Coding), 동화상 전문가 그룹 (MPEG) 코딩, 또는 기타 등등을 포함한다. 비디오 코딩은 일반적으로 비디오 이미지들 또는 시퀀스들에 존재하는 리던던시를 이용하는 예측 방법들 (예컨대, 인터-예측, 인트라-예측, 또는 기타 등등) 을 이용한다. 비디오 코딩 기법들의 중요한 목표는 비디오 데이터를 비디오 품질에 대한 열화들을 피하거나 또는 최소화하면서, 더 낮은 비트 레이트를 이용하는 형태로 압축하는 것이다. 계속 진화하는 비디오 서비스들이 이용가능하게 됨에 따라, 더 나은 코딩 효율을 가지는 인코딩 기법들이 요구된다.
일부 실시형태들에서, 인트라-블록 복사을 수행하는 기법들 및 시스템들이 설명된다. 일부 예들에서, 인트라-블록 복사 예측이 인에이블될 때 하나 이상의 예측 기법들에 어떤 제한 사항들이 주어질 수도 있다. 예를 들어, 하나 이상의 예측 기법들은 인트라-블록 복사 예측 기법이 수행될 때 디스에이블될 수도 있다. 다른 예에서, 하나 이상의 예측 기법들은 예측 블록 사이즈가 블록 사이즈보다 작거나 또는 동일할 때 디스에이블될 수도 있다. 예측 기법들의 사용을 제어하는 다른 예들이 본원에서 설명된다.
일부 실시형태들에서, 인트라-블록 복사 예측 기법에 사용할 참조 블록을 선택적으로 결정하는 기법들 및 시스템들이 설명된다. 예를 들어, 인트라-블록 복사 예측을 수행할 때에 사용할 참조 블록을 선택하는 기법들은 인트라-블록 복사 예측에서의 사용을 위해 고려되는 블록들로부터 양방향-예측을 이용하여 인코딩되는 블록들을 제외하도록 결정을 할 수도 있다. 인트라-블록 복사 예측을 수행할 때에 사용할 참조 블록을 선택적으로 결정하는 다른 예들이 본원에서 설명된다.
본원에서 설명되는 여러 양태들 및 특징들에 따른 인트라-블록 복사 기법들을 수행함으로써, 메모리 대역폭 및/또는 사이즈 요구사항들이 감소된다.
하나의 독창적인 양태는 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 방법이다. 방법은 예측 유닛을 발생시키기 위해 픽처들 중 하나의 픽처의 블록에 대한 인트라-픽처 예측을 수행하는 것을 포함한다. 인트라-픽처 예측을 수행하는 단계는 코딩 트리 유닛 (coding tree unit; CTU) 의 인트라-블록 복사 예측의 참조 블록을 선택하는 것을 포함하며, 참조 블록은 복수의 인코딩된 블록들로부터 선택되고, 양방향-예측으로 인코딩된 CTU 내의 블록들은 참조 블록으로서 선택으로부터 제외된다. 인트라-픽처 예측을 수행하는 단계는 또한, 예측 유닛을 발생시키기 위해, 선택된 참조 블록으로 인트라-블록 복사 예측을 수행하는 단계를 포함한다. 방법은 또한 수행된 인트라-픽처 예측에 기초하여 예측 유닛을 인코딩하는 신택스 엘리먼트들을 발생시키는 단계를 포함한다.
다른 독창적인 양태는 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 장치이다. 장치는 비디오 데이터를 저장하도록 구성된 메모리, 및 프로세서를 포함한다. 프로세서는 예측 유닛을 발생시키기 위해 픽처들 중 하나의 픽처의 블록에 대한 인트라-픽처 예측을 수행하도록 구성된다. 인트라-픽처 예측을 수행하는 것은 코딩 트리 유닛 (CTU) 의 인트라-블록 복사 예측의 참조 블록을 선택하는 것을 포함하며, 선택된 참조 블록은 복수의 인코딩된 블록들로부터 선택되고, 양방향-예측으로 인코딩된 CTU 내의 블록들은 참조 블록으로서 선택으로부터 제외된다. 인트라-픽처 예측을 수행하는 것은, 예측 유닛들 중 하나의 예측 유닛을 발생시키기 위해, 참조 블록에 대한 인트라-블록 복사 예측을 수행하는 것을 포함한다. 프로세서는 또한 수행된 인트라-픽처 예측에 기초하여 예측 유닛을 인코딩하는 신택스 엘리먼트들을 발생시키도록 구성된다.
또 다른 독창적인 양태는 명령들을 저장한 인코더의 컴퓨터 판독가능 매체로서, 명령들이 프로세서에 의해 실행되는 경우 프로세서로 하여금 방법을 수행하게 하는 컴퓨터 판독가능 매체이다. 방법은 예측 유닛을 발생시키기 위해 픽처들 중 하나의 픽처의 블록에 대한 인트라-픽처 예측을 수행하는 것을 포함한다. 인트라-픽처 예측을 수행하는 것은 코딩 트리 유닛 (CTU) 의 인트라-블록 복사 예측의 참조 블록을 선택하는 것을 포함하며, 참조 블록은 복수의 인코딩된 블록들로부터 선택되고, 양방향-예측으로 인코딩된 CTU 내의 블록들은 참조 블록으로서 선택으로부터 제외된다. 인트라-픽처 예측을 수행하는 것은, 예측 유닛들 중 하나의 예측 유닛을 발생시키기 위해, 참조 블록에 대한 인트라-블록 복사 예측을 수행하는 것을 포함한다. 방법은 또한 수행된 인트라-픽처 예측에 기초하여 예측 유닛을 인코딩하는 신택스 엘리먼트들을 발생시키는 단계를 포함한다.
이 요약은 청구된 요지의 중요한 또는 필수적인 특징들을 식별하도록 의도되지 않으며, 청구된 요지의 범위를 결정하기 위해 별개로 사용되도록 의도되지도 않는다. 기술요지는 본 특허의 전체 명세서, 임의의 또는 모든 도면들, 및 각각의 청구항의 적합한 부분들을 참조하여 이해되어야 한다.
상술한 것은, 다른 특징들 및 실시형태들과 함께, 다음 명세서, 청구범위, 및 첨부 도면들을 참조할 때 좀더 명확하게 될 것이다.
본 발명의 예시적인 실시형태들은 다음 도면들을 참조하여 아래에서 더욱더 자세하게 설명된다.
도 1 은 일부 실시형태들에 따른, 인코딩 디바이스 및 디코딩 디바이스의 일 예를 예시하는 블록도이다.
도 2 는 인트라-블록 복사 프로세스를 예시하는 블록도이다.
도 3 은 분산된 블록 벡터들에 의한 인트라-블록 복사 프로세스를 예시하는 블록도이다.
도 4 는 다수의 타일들에 걸쳐서 분산된 블록 벡터들에 의한 인트라-블록 복사 프로세스를 예시하는 블록도이다.
도 5 는 비디오 데이터를 인코딩하는 프로세스의 일 실시형태를 예시한다.
도 6 은 비디오 데이터를 디코딩하는 프로세스의 일 실시형태를 예시한다.
도 7 은 비디오 데이터를 인코딩하는 프로세스의 일 실시형태를 예시한다.
도 8 은 일부 실시형태들에 따른, 예시적인 비디오 인코더를 예시하는 블록도이다.
도 9 는 일부 실시형태들에 따른, 예시적인 비디오 디코더를 예시하는 블록도이다.
본 개시물의 어떤 양태들 및 실시형태들이 아래에 제공된다. 이들 양태들 및 실시형태들 중 일부가 독립적으로 적용될 수도 있으며, 이들 중 일부가 당업자에 의해 주지되는 바와 같이 조합하여 적용될 수도 있다. 다음의 설명에서, 설명의 목적을 위해, 구체적인 세부 사항들이 본 발명의 실시형태들의 완전한 이해를 제공하기 위해서 개시된다. 그러나, 여러 실시형태들이 이들 구체적인 세부 사항들 없이도 실시될 수도 있음은 자명할 것이다. 도면들 및 설명은 제한적인 것으로 의도되지 않는다.
다음의 설명은 예시적인 실시형태들을 단지 제공하며, 본 개시물의 범위, 적용가능성, 또는 구성을 한정하려고 의도되지 않는다. 대신, 예시적인 실시형태들의 다음의 설명은 당업자들에게, 예시적인 실시형태를 구현하기 위한 합법적인 (enabling) 설명을 제공할 것이다. 첨부된 청구항들에서 개시된 바와 같은 본 발명의 정신 및 범위로부터 일탈함이 없이, 엘리먼트들의 기능 및 배열에서 여러 변화들이 이루어질 수도 있는 것으로 이해되어야 한다.
다음 설명에서 실시형태들의 완전한 이해를 제공하기 위해 구체적인 세부내용들이 제공된다. 그러나, 실시형태들이 이들 구체적인 세부 사항들 없이도 실시될 수도 있음을 당업자들은 이해할 수 있을 것이다. 예를 들어, 회로들, 시스템들, 네트워크들, 프로세스들, 및 다른 구성요소들은 불필요한 세부사항으로 실시형태들을 흐리지 않도록 하기 위해서 블록도 형태에서의 구성요소들로서 도시될 수도 있다. 다른 경우, 널리 공지된 회로들, 프로세스들, 알고리즘들, 구조들, 및 기법들은 실시형태들을 흐리는 것을 피하기 위해서 불필요한 세부사항 없이 도시될 수도 있다.
또한, 개개의 실시형태들이 플로우차트, 흐름도, 데이터 흐름도, 구조 다이어그램 또는 블록도로 도시된 프로세스로서 설명될 수도 있다는 점에 유의한다. 플로우차트가 동작들을 순차적인 프로세스로서 설명할 수도 있지만, 동작들 중 많은 것들이 병렬로 또는 동시에 수행될 수 있다. 게다가, 동작들의 순서는 재-배열될 수도 있다. 프로세스는 그의 동작들이 완료될 때에 종료되지만, 도면에 포함되지 않은 추가적인 단계들을 가질 수 있다. 프로세스는 메소드 (method), 함수, 프로시저, 서브루틴, 서브프로그램 등에 대응할 수도 있다. 프로세스가 함수에 대응할 때, 프로세스의 종료는 호출 함수 또는 메인 함수로의 함수의 반환에 대응할 수 있다.
용어 "컴퓨터-판독가능 매체" 는 휴대형 또는 비-휴대형 저장 디바이스들, 광학 저장 디바이스들, 및 명령(들) 및/또는 데이터를 저장하거나, 포함하거나, 또는 운반하는 것이 가능한 여러 다른 매체들을 포함하지만, 이에 한정되지 않는다. 컴퓨터-판독가능 매체는 데이터가 저장될 수 있고, 반송파들 및/또는 무선으로 또는 유선 접속들을 통해서 전파하는 일시적인 전자 신호들을 포함하지 않는 비일시적 매체를 포함할 수도 있다. 비일시적 매체의 예들은 자기 디스크 또는 테이프, 광학 저장 매체들, 예컨대 컴팩트 디스크 (CD) 또는 디지털 다기능 디스크 (DVD), 플래시 메모리, 메모리 또는 메모리 디바이스들을 포함할 수도 있지만 이에 한정되지 않는다. 컴퓨터-판독가능 매체는 프로시저, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령들, 데이터 구조들, 또는 프로그램 스테이트먼트들의 임의의 조합을 나타낼 수도 있는 코드 및/또는 머신-실행가능한 명령들을 안에 저장하고 있을 수도 있다. 코드 세그먼트는 정보, 데이터, 인수들, 파라미터들, 또는 메모리 콘텐츠를 전달하거나 및/또는 수신함으로써 다른 코드 세그먼트 또는 하드웨어 회로에 커플링될 수도 있다. 정보, 인수들, 파라미터들, 데이터, 등은 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 송신, 또는 기타 등등을 포함한 임의의 적합한 수단을 통해서 전달되거나, 포워딩되거나, 또는 송신될 수도 있다.
더욱이, 실시형태들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어들, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 필요한 태스크들을 수행하는 펌웨어, 미들웨어 또는 마이크로코드, 프로그램 코드 또는 코드 세그먼트들 (예컨대, 컴퓨터-프로그램 제품) 은 컴퓨터-판독가능 또는 머신-판독가능 매체에 저장될 수도 있다. 프로세서(들) 은 필요한 태스크들을 수행할 수도 있다.
비디오 인코더들 및 디코더들을 이용한 비디오 코딩의 여러 시스템들 및 방법들이 본원에서 설명된다. 예를 들어, 하나 이상의 시스템들 및 방법들은 이용불가능한 계층들, 계층 세트들, 및 동작 지점들의 핸들링 뿐만 아니라, 멀티-계층 비디오 코딩에서의 표현 포맷 파라미터들에 대한 제한 사항들에 관한 것이다.
더 많은 디바이스들 및 시스템들이 소비자들에게 디지털 비디오 데이터를 소비하는 능력을 제공함에 따라, 효율적인 비디오 코딩 기법들에 대한 요구가 더 중요해지고 있다. 비디오 코딩은 디지털 비디오 데이터에 존재하는 대량의 데이터를 처리하는데 필요한 저장 및 송신 요구사항들을 감소시키도록 요구된다. 비디오 데이터를, 높은 비디오 품질을 유지하면서 더 낮은 비트 레이트를 이용하는 형태로 압축하기 위해 여러 비디오 코딩 기법들이 사용될 수도 있다.
도 1 은 인코딩 디바이스 (104) 및 디코딩 디바이스 (112) 를 포함하는 시스템 (100) 의 일 예를 예시하는 블록도이다. 인코딩 디바이스 (104) 는 소스 디바이스의 부분일 수도 있으며, 디코딩 디바이스 (112) 는 수신 디바이스의 부분일 수도 있다. 소스 디바이스 및/또는 수신 디바이스는 모바일 또는 정지된 전화기 핸드셋 (예컨대, 스마트폰, 셀룰러 전화기, 또는 기타 등등), 데스크탑 컴퓨터, 랩탑 또는 노트북 컴퓨터, 태블릿 컴퓨터, 셋-탑 박스, 텔레비전, 카메라, 디스플레이 디바이스, 디지털 미디어 플레이어, 비디오 게이밍 콘솔, 비디오 스트리밍 디바이스, 또는 임의의 다른 적합한 전자 디바이스와 같은, 전자 디바이스를 포함할 수도 있다. 일부 예들에서, 소스 디바이스 및 수신 디바이스는 무선 통신을 위한 하나 이상의 무선 송수신기들을 포함할 수도 있다. 본원에서 설명되는 코딩 기법들은 (예컨대, 인터넷을 통한) 스트리밍 비디오 송신들, 텔레비전 브로드캐스트들 또는 송신들, 데이터 저장 매체 상에의 저장을 위한 디지털 비디오의 인코딩, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션들을 포함한, 여러 멀티미디어 애플리케이션들에서의 비디오 코딩에 적용가능하다. 일부 예들에서, 시스템 (100) 은 비디오 화상회의, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 게이밍, 및/또는 비디오 전화 통신과 같은, 지원 애플리케이션들로의 단방향 또는 양방향 비디오 송신을 지원할 수 있다.
인코딩 디바이스 (104) (또는, 인코더) 는 인코딩된 비디오 비트스트림을 발생시키기 위해 비디오 코딩 표준 또는 프로토콜을 이용하여 비디오 데이터를 인코딩하는데 사용될 수 있다. 비디오 코딩 표준들은 ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 또는 ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual 및 그의 스케일러블 비디오 코딩 (SVC) 및 멀티뷰 비디오 코딩 (MVC) 확장판들을 포함한, (또한, ISO/IEC MPEG-4 AVC 로서 알려진) ITU-T H.264 를 포함한다. 더 최근의 비디오 코딩 표준, 즉 고-효율 비디오 코딩 (HEVC) 이 ITU-T 비디오 코딩 전문가 그룹 (VCEG) 과 ISO/IEC 동화상 전문가 그룹 (MPEG) 의 비디오 코딩에 관한 합동 연구팀 (JCT-VC) 에 의해 완결되었다. MV-HEVC 로 불리는, HEVC 에 대한 멀티뷰 확장판, 및 SHVC 로 불리는, HEVC 에 대한 스케일러블 확장판, 또는 임의의 다른 적합한 코딩 프로토콜을 포함한, HEVC 에 대한 여러 확장판들이 멀티-계층 비디오 코딩을 다루며 또한 JCT-VC 에 의해 개발되고 있다. HEVC 초안 사양은 http://phenix.it-sudparis.eu/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1003-v1.zip 으로부터 입수가능하다. MV-HEVC 의 작업 초안은 http://phenix.it-sudparis.eu/jct2/doc_ end_user/documents/8_Valencia/wg11/ JCT3V-H1002-v5.zip 으로부터 입수가능하다. SHVC 의 작업 초안은 http://phenix.it-sudparis.eu/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1008-v2.zip 으로부터 입수가능하다.
본원에서 설명되는 많은 실시형태들은 HEVC 표준, 또는 그 확장판들을 이용하는 예들을 기술한다. 그러나, 본원에서 설명되는 기법들 및 시스템들은 또한 다른 코딩 표준들, 예컨대 AVC, MPEG, 그 확장판들, 또는 다른 적합한 코딩 표준들에 적용가능할 수도 있다. 따라서, 본원에서 설명되는 기법들 및 시스템들이 특정의 비디오 코딩 표준을 참조하여 설명될 수도 있지만, 당업자는 그 설명이 단지 그 특정의 표준에만 적용되는 것으로 해석되지 않아야 함을 명백히 알 수 있을 것이다.
비디오 소스 (102) 는 비디오 데이터를 인코딩 디바이스 (104) 에 제공할 수도 있다. 비디오 소스 (102) 는 소스 디바이스의 부분일 수도 있거나, 또는 소스 디바이스와는 다른 디바이스의 부분일 수도 있다. 비디오 소스 (102) 는 비디오 캡쳐 디바이스 (예컨대, 비디오 카메라, 카메라 폰, 비디오 폰, 또는 기타 등등), 저장된 비디오를 포함하는 비디오 아카이브, 비디오 데이터를 제공하는 비디오 서버 또는 콘텐츠 제공자, 비디오 서버 또는 콘텐츠 제공자로부터 비디오를 수신하는 비디오 공급 인터페이스, 컴퓨터 그래픽스 비디오 데이터를 발생시키는 컴퓨터 그래픽스 시스템, 이러한 소스들의 조합, 또는 임의의 다른 적합한 비디오 소스를 포함할 수도 있다.
비디오 소스 (102) 로부터의 비디오 데이터는 하나 이상의 입력 픽처들 또는 프레임들을 포함할 수도 있다. 픽처 또는 프레임은 비디오의 부분인 정지 화상이다. 인코딩 디바이스 (104) 의 인코더 엔진 (106) (또는, 인코더) 은 비디오 데이터를 인코딩하여 인코딩된 비디오 비트스트림을 발생시킨다. HEVC 비트스트림은, 예를 들어, 네트워크 추상화 계층 (NAL) 유닛들로 불리는 데이터 유닛들의 시퀀스를 포함할 수도 있다. 비디오 코딩 계층 (VCL) NAL 유닛들 및 비-VCL NAL 유닛들을 포함한, NAL 유닛들의 2개의 클래스들이 HEVC 표준에서 존재한다. VCL NAL 유닛은 코딩된 픽처 데이터의 하나의 슬라이스 또는 슬라이스 세그먼트 (아래에서 설명됨) 를 포함하며, 비-VCL NAL 유닛은 다수의 코딩된 픽처들에 관련되는 제어 정보를 포함한다. 코딩된 픽처 및 코딩된 픽처에 대응하는 비-VCL NAL 유닛들 (있다면) 은 액세스 유닛 (AU) 으로 불린다.
NAL 유닛들은 비디오에서의 픽처들의 코딩된 표현들과 같은, 비디오 데이터의 코딩된 표현을 형성하는 비트들의 시퀀스를 포함할 수도 있다. 인코더 엔진 (106) 은 각각의 픽처를 다수의 슬라이스들로 파티셔닝함으로써 코딩된 표현을 발생시킨다. 슬라이스는 다른 슬라이스들과는 독립적이어서, 슬라이스에서의 정보가 동일한 픽처 내 다른 슬라이스들로부터의 데이터에 대한 의존 없이 코딩된다. 슬라이스는 독립적인 슬라이스 세그먼트 및 존재 한다면, 이전 슬라이스 세그먼트들에 의존하는 하나 이상의 의존적인 슬라이스 세그먼트들을 포함하는 하나 이상의 슬라이스 세그먼트들을 포함한다. 슬라이스들은 그후 루마 샘플들 및 크로마 샘플들의 코딩 트리 블록들 (CTB들) 로 파티셔닝된다. 루마 샘플들의 CTB 및 크로마 샘플들의 하나 이상의 CTB들은, 샘플들에 대한 신택스와 함께, 코딩 트리 유닛 (CTU) 으로서 지칭된다. CTU 는 HEVC 인코딩을 위한 기본적인 프로세싱 유닛이다. CTU 는 가변 사이즈들의 다수의 코딩 유닛들 (CU들) 로 분할될 수 있다. CU 는 코딩 블록들 (CB들) 로서 지칭되는 루마 및 크로마 샘플 어레이들을 포함한다.
루마 및 크로마 CB들은 예측 블록들 (PB들) 로 추가로 분할될 수 있다. PB 는 인터-예측을 위해 동일한 모션 파라미터들을 사용하는 루마 또는 크로마 성분의 샘플들의 블록이다. 루마 PB 및 하나 이상의 크로마 PB들은, 연관된 신택스와 함께, 예측 유닛 (PU) 을 형성한다. 모션 파라미터들의 세트는 각각의 PU 에 대한 비트스트림으로 시그널링되며, 루마 PB 및 하나 이상의 크로마 PB들의 인터-예측에 사용된다. CB 는 또한 하나 이상의 변환 블록들 (TB들) 로 파티셔닝될 수 있다. TB 는 동일한 2차원 변환이 예측 잔차 신호를 코딩하는데 적용되는 칼라 성분의 샘플들의 정사각형 블록을 나타낸다. 변환 유닛 (TU) 은 루마 및 크로마 샘플들, 및 대응하는 신택스 엘리먼트들의 TB들을 나타낸다.
CU 의 사이즈는 코딩 노드의 사이즈에 대응하며, 형태가 정사각형이다. 예를 들어, CU 의 사이즈는 8 x 8 샘플들, 16 x 16 샘플들, 32 x 32 샘플들, 64 x 64 샘플들, 또는 대응하는 CTU 의 사이즈까지의 임의의 다른 적합한 사이즈일 수도 있다. 어구 "NxN" 은 수직 및 수평 치수들의 관점에서 비디오 블록의 픽셀 치수들 (예컨대, 8 픽셀들 x 8 픽셀들) 을 지칭하기 위해 본원에서 사용된다. 블록에서 픽셀들은 로우들 및 칼럼들로 배열될 수도 있다. 일부 실시형태들에서, 블록들은 수직 방향에서와 같이 수평 방향에서 동일한 픽셀들의 개수를 갖지 않을 수도 있다. CU 와 연관되는 신택스 데이터는 예를 들어, 하나 이상의 PU들로의 CU 의 파티셔닝을 기술할 수도 있다. 파티셔닝 모드들은 CU 가 인코딩되지 않거나, 인트라-예측 모드 인코딩되거나, 또는 인터-예측 모드 인코딩되는지의 여부 사이에 상이할 수도 있다. PU들은 비-정사각형의 형태로 파티셔닝될 수도 있다. CU 와 연관되는 신택스 데이터는 또한 예를 들어, CTU 에 따른 하나 이상의 TU들로의 CU 의 파티셔닝을 기술할 수도 있다. TU 는 정사각형 또는 비-정사각형의 형태일 수 있다.
HEVC 표준에 따르면, 변환들이 변환 유닛들 (TU들) 을 이용하여 수행될 수도 있다. TU들은 상이한 CU들에 대해 변할 수도 있다. TU들은 주어진 CU 내 PU들의 사이즈에 기초하여 치수화될 수도 있다. TU들은 PU들과 동일한 사이즈이거나 또는 PU들보다 작을 수도 있다. 일부 예들에서, CU 에 대응하는 잔차 샘플들은 잔차 쿼드 트리 (RQT) 로서 알려진 쿼드트리 구조를 이용하여 더 작은 유닛들로 세분될 수도 있다. RQT 의 리프 노드들은 TU들에 대응할 수도 있다. TU들과 연관되는 픽셀 차이 값들은 변환 계수들을 발생하기 위해 변환될 수도 있다. 변환 계수들은 그후 인코더 엔진 (106) 에 의해 양자화될 수도 있다.
일단 비디오 데이터의 픽처들이 CU들로 파티셔닝되면, 인코더 엔진 (106) 이 예측 모드를 이용하여 각각의 PU 를 예측한다. 예측이 그후 잔차들 (아래에 설명됨) 을 얻기 위해 원래 비디오 데이터로부터 감산된다. 각각의 CU 에 대해, 예측 모드가 신택스 데이터를 이용하여 비트스트림 내에서 시그널링될 수도 있다. 예측 모드는 인트라-예측 (또는, 인트라-픽처 예측) 또는 인터-예측 (또는, 인터-픽처 예측) 을 포함할 수도 있다. 인트라-예측을 이용하여, 각각의 PU 가 동일한 픽처에서의 이웃하는 이미지 데이터로부터, 예를 들어, PU 에 대한 평균 값을 찾는 DC 예측, PU 에 평면 표면을 맞추는 평면 예측, 이웃하는 데이터로부터 추론하는 방향 예측, 또는 임의의 다른 적합한 유형들의 예측을 이용하여, 예측된다. 인터-예측을 이용하여, 각각의 PU 가 (출력 순서에서 현재의 픽처 이전 또는 이후) 하나 이상의 참조 픽처들에서의 이미지 데이터로부터의 모션 보상 예측을 이용하여 예측된다. 인터-픽처 또는 인트라-픽처 예측을 이용하여 픽처 영역을 코딩할지 여부의 결정은 예를 들어, CU 레벨에서 이루어질 수도 있다.
단방향-예측을 이용한 인터-예측에서는, 각각의 예측 블록은 많아 봐야 하나의 모션 보상된 예측 신호를 이용하며, P 예측 유닛들을 발생시킨다. 양방향-예측을 이용한 인터-예측에서는, 각각의 예측 블록 각각의 예측 블록은 많아 봐야 2개의 모션 보상된 예측 신호들을 이용하며, B 예측 유닛들을 발생시킨다.
PU 는 예측 프로세스에 관련된 데이터를 포함할 수도 있다. 예를 들어, PU 가 인트라-예측을 이용하여 인코딩될 때, PU 는 그 PU 에 대한 인트라-예측 모드를 기술하는 데이터를 포함할 수도 있다. 또 다른 예로서, PU 가 인터-예측을 이용하여 인코딩될 때, PU 는 그 PU 에 대한 모션 벡터를 정의하는 데이터를 포함할 수도 있다. PU 에 대한 모션 벡터를 정의하는 데이터는 예를 들어, 모션 벡터의 수평 성분, 모션 벡터의 수직 성분, 모션 벡터에 대한 해상도 (예컨대, 1/4 픽셀 정밀도 또는 1/8 픽셀 정밀도), 모션 벡터가 가리키는 참조 픽처, 및/또는 모션 벡터에 대한 참조 픽처 리스트 (예컨대, List 0, List 1, 또는 List C) 를 기술할 수도 있다.
인코더 (104) 는 그후 변환 및 양자화를 수행할 수도 있다. 예를 들어, 예측 이후, 인코더 엔진 (106) 은 PU 에 대응하는 잔차 값들을 계산할 수도 있다. 잔차 값들은 픽셀 차이 값들을 포함할 수도 있다. 예측이 수행된 후에 남아 있을 수도 있는 임의의 잔차 데이터는 이산 코사인 변환, 이산 사인 변환, 정수 변환, 웨이블릿 변환, 또는 다른 적합한 변환 함수에 기초할 수도 있는, 블록 변환을 이용하여 변환된다. 일부의 경우, 하나 이상의 블록 변환들 (예컨대, 사이즈들 32 x 32, 16 x 16, 8 x 8, 4 x 4, 또는 기타 등등) 이 각각의 CU 에서의 잔차 데이터에 적용될 수도 있다. 일부 실시형태들에서, TU 가 인코더 엔진 (106) 에 의해 구현되는 변환 및 양자화 프로세스들에 사용될 수도 있다. 하나 이상의 PU들을 갖는 주어진 CU 는 또한 하나 이상의 TU들을 포함할 수도 있다. 이하에서 더 자세히 설명하는 바와 같이, 잔차 값들은 블록 변환들을 이용하여 변환 계수들로 변환될 수도 있으며, 그후 엔트로피 코딩을 위한 직렬화된 변환 계수들을 생성하기 위해 TU들을 이용하여 양자화되고 스캐닝될 수도 있다.
일부 실시형태들에서, CU 의 PU들을 이용한 인트라-예측 또는 인터-예측 코딩 이후, 인코더 엔진 (106) 은 CU 의 TU들에 대한 잔차 데이터를 계산할 수도 있다. PU들은 공간 도메인 (또는, 픽셀 도메인) 에서의 픽셀 데이터를 포함할 수도 있다. TU들은 블록 변환의 적용 이후 변환 도메인에서의 계수들을 포함할 수도 있다. 앞에서 언급된 바와 같이, 잔차 데이터는 미인코딩된 픽처의 픽셀들과 PU들에 대응하는 예측 값들 사이의 픽셀 차이 값들에 대응할 수도 있다. 인코더 엔진 (106) 은 CU 에 대한 잔차 데이터를 포함하는 TU들을 형성할 수도 있으며, 그후 그 TU들을 변환하여, 그 CU 에 대한 변환 계수들을 발생할 수도 있다.
인코더 엔진 (106) 은 변환 계수들의 양자화를 수행할 수도 있다. 양자화는 계수들을 나타내는데 사용되는 데이터의 양을 감소시키기 위해 변환 계수들을 양자화함으로써 추가로 압축하는 것을 제공한다. 예를 들어, 양자화는 그 계수들의 일부 또는 모두와 연관되는 비트 심도를 감소시킬 수도 있다. 일 예에서, n-비트 값을 가지는 계수는 양자화 동안 m-비트 값까지 절사될 수도 있으며, 여기서, n 은 m 보다 크다.
일단 양자화가 수행되면, 코딩된 비트스트림은 양자화된 변환 계수들, 예측 정보 (예컨대, 예측 모드들, 모션 벡터들, 또는 기타 등등), 파티셔닝 정보, 및 임의의 다른 적합한 데이터, 예컨대 다른 신택스 데이터를 포함한다. 코딩된 비트스트림의 상이한 엘리먼트들은 그후 인코더 엔진 (106) 에 의해 엔트로피 인코딩될 수도 있다. 일부 예들에서, 인코더 엔진 (106) 은 엔트로피 인코딩될 수 있는 직렬화된 벡터를 발생하기 위해, 미리 정의된 스캐닝 순서를 이용하여, 양자화된 변환 계수들을 스캐닝할 수도 있다. 일부 예들에서, 인코더 엔진 (106) 은 적응적 스캐닝을 수행할 수도 있다. 양자화된 변환 계수들을 스캐닝하여 1차원 벡터를 형성한 후, 인코더 엔진 (106) 은 1차원 벡터를 엔트로피 인코딩할 수도 있다. 예를 들어, 인코더 엔진 (106) 은 컨텍스트 적응 가변 길이 코딩, 컨텍스트 적응 2진 산술 코딩, 신택스-기반 컨텍스트-적응 2진 산술 코딩, 확률 간격 파티셔닝 엔트로피 코딩 또는 다른 적합한 엔트로피 인코딩 기법을 이용할 수도 있다.
앞에서 설명한 바와 같이, HEVC 비트스트림은 NAL 유닛들의 그룹을 포함한다. 코딩된 비디오 비트스트림을 형성하는 비트들의 시퀀스가 VCL NAL 유닛들에 존재한다. 비-VCL NAL 유닛들은 다른 정보에 추가하여, 인코딩된 비디오 비트스트림에 관련된 하이-레벨 정보를 가지는 파라미터 세트들을 포함할 수도 있다. 예를 들어, 파라미터 세트는 비디오 파라미터 세트 (VPS), 시퀀스 파라미터 세트 (SPS), 및 픽처 파라미터 세트 (PPS) 를 포함할 수도 있다. 파라미터 세트들의 목표는 비트 레이트 효율, 에러 복원력, 및 시스템들 계층 인터페이스들을 제공하는 것이다. 각각의 슬라이스는 디코딩 디바이스 (112) 가 슬라이스를 디코딩하는데 사용할 수도 있는 정보에 액세스하기 위해 단일 활성 PPS, SPS, 및 VPS 를 참조한다. VPS ID, SPS ID, 및 PPS ID 를 포함한, 식별자 (ID) 가 각각의 파라미터 세트에 대해 코딩될 수도 있다. SPS 는 SPS ID 및 VPS ID 를 포함한다. PPS 는 PPS ID 및 SPS ID 를 포함한다. 각각의 슬라이스 헤더는 PPS ID 를 포함한다. ID들을 이용하여, 활성 파라미터 세트들이 주어진 슬라이스에 대해 식별될 수 있다.
PPS 는 주어진 픽처에서의 모든 슬라이스들에 적용되는 정보를 포함한다. 이 때문에, 픽처에서의 모든 슬라이스들은 동일한 PPS 를 참조한다. 상이한 픽처들에서의 슬라이스들은 또한 동일한 PPS 를 참조할 수도 있다. SPS 는 동일한 코딩된 비디오 시퀀스 또는 비트스트림에서의 모든 픽처들에 적용하는 정보를 포함한다. 코딩된 비디오 시퀀스는 무작위 액세스 지점 픽처 (예컨대, 순시 디코드 참조 (IDR) 픽처 또는 깨진 링크 액세스 (BLA) 픽처, 또는 다른 적합한 무작위 액세스 지점 픽처) 에서 시작하고 다음 무작위 액세스 지점 픽처 (또는, 비트스트림의 끝) 까지 포함하지만 이를 포함하지 않는 모든 액세스 유닛들을 포함하는 액세스 유닛들의 시리즈이다. SPS 에서의 정보는 일반적으로 코딩된 비디오 시퀀스 내에서 픽처들 간에 변하지 않는다. 코딩된 비디오 시퀀스에서의 모든 픽처들은 동일한 SPS 를 이용한다. VPS 는 코딩된 비디오 시퀀스 또는 비트스트림 내 모든 계층들에 적용하는 정보를 포함한다. VPS 는 전체 코딩된 비디오 시퀀스들에 적용하는 신택스 엘리먼트들을 가지는 신택스 구조를 포함한다. 일부 실시형태들에서, VPS, SPS, 또는 PPS 는 인코딩된 비트스트림으로 대역내 (in-band) 송신될 수도 있다. 일부 실시형태들에서, VPS, SPS, 또는 PPS 는 코딩된 비디오 데이터를 포함하는 NAL 유닛들과는 별개의 송신으로 대역내 송신될 수도 있다.
인코딩 디바이스 (104) 의 출력 (110) 은 인코딩된 비디오 데이터를 구성하는 NAL 유닛들을 통신 링크 (120) 를 통해서 수신 디바이스의 디코딩 디바이스 (112) 로 전송할 수도 있다. 디코딩 디바이스 (112) 의 입력 (114) 은 NAL 유닛들을 수신할 수도 있다. 통신 링크 (120) 는 무선 네트워크, 유선 네트워크, 또는 유선 네트워크와 무선 네트워크의 조합을 이용하여 송신된 신호를 포함할 수도 있다. 무선 네트워크는 임의의 무선 인터페이스 또는 무선 인터페이스들의 조합을 포함할 수도 있으며, 임의의 적합한 무선 네트워크 (예컨대, 인터넷 또는 다른 광역 네트워크, 패킷-기반 네트워크, WiFiTM, 무선 주파수 (RF), UWB, WiFi-직접, 셀룰러, LTE (Long-Term Evolution), WiMaxTM, 또는 기타 등등) 를 포함할 수도 있다. 유선 네트워크는 임의의 유선 인터페이스 (예컨대, 섬유, 이더넷, 전력선 이더넷, 동축 케이블을 통한 이더넷, 디지털 신호 라인 (DSL), 또는 기타 등등) 를 포함할 수도 있다. 유선 및/또는 무선 네트워크들은 기지국들, 라우터들, 액세스 지점들, 브릿지들, 게이트웨이들, 스위치들, 또는 기타 등등과 같은, 여러 장비를 이용하여 구현될 수도 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라서 변조되어 수신 디바이스로 송신될 수도 있다.
일부 예들에서, 인코딩 디바이스 (104) 는 인코딩된 비디오 데이터를 스토리지 (108) 에 저장할 수도 있다. 출력 (110) 은 인코딩된 비디오 데이터를 인코더 엔진 (106) 으로부터 또는 출력 (110) 으로부터 취출할 수도 있다. 스토리지 (108) 는 분산되거나 또는 로컬로 액세스되는 다양한 데이터 저장 매체들 중 임의의 데이터 저장 매체를 포함할 수도 있다. 예를 들어, 스토리지 (108) 는 하드 드라이브, 스토리지 디스크, 플래시 메모리, 휘발성 또는 비-휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체들을 포함할 수도 있다.
입력 (114) 은 인코딩된 비디오 데이터를 수신하고, 비디오 데이터를 디코더 엔진 (116) 에 또는 디코더 엔진 (116) 에 의한 추후 사용을 위해 스토리지 (118) 에 제공할 수도 있다. 디코더 엔진 (116) 은 인코딩된 비디오 데이터를 구성하는 코딩된 비디오 시퀀스의 엘리먼트들을 (예컨대, 엔트로피 디코더를 이용하여) 엔트로피 디코딩하고 추출함으로써, 인코딩된 비디오 데이터를 디코딩할 수도 있다. 디코더 엔진 (116) 은 그후 리스케일링하여 인코딩된 비디오 데이터에 대한 변환을 수행할 수도 있다. 잔차들은 그후 디코더 엔진 (116) 의 예측 스테이지로 전달된다. 디코더 엔진 (116) 은 픽셀들의 블록 (예컨대, PU) 을 예측한다. 일부 예들에서, 예측이 역변환의 출력에 추가된다.
디코딩 디바이스 (112) 는 디코딩된 비디오를, 디코딩된 비디오 데이터를 콘텐츠의 소비자에게 디스플레이하는 디스플레이 또는 다른 출력 디바이스를 포함할 수도 있는 비디오 목적지 디바이스 (112) 로 출력할 수도 있다. 일부 양태들에서, 비디오 목적지 디바이스 (122) 는 디코딩 디바이스 (112) 를 포함하는 수신 디바이스의 부분일 수도 있다. 일부 양태들에서, 비디오 목적지 디바이스 (122) 는 수신 디바이스 이외의 별개의 디바이스의 부분일 수도 있다.
일부 실시형태들에서, 비디오 인코딩 디바이스 (104) 및/또는 비디오 디코딩 디바이스 (112) 는 오디오 인코딩 디바이스 및 오디오 디코딩 디바이스와 각각 통합될 수도 있다. 비디오 인코딩 디바이스 (104) 및/또는 비디오 디코딩 디바이스 (112) 는 또한 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 주문형 집적회로들 (ASIC들), 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 임의의 이들의 조합들과 같은, 위에서 설명된 코딩 기법들을 구현하는데 필요한 다른 하드웨어 또는 소프트웨어를 포함할 수도 있다. 비디오 인코딩 디바이스 (104) 및 비디오 디코딩 디바이스 (112) 는 개개의 디바이스에서 결합된 인코더/디코더 (CODEC) 의 부분으로서 통합될 수도 있다. 인코딩 디바이스 (104) 의 구체적인 세부 사항들을 가지는 예가 도 8 을 참조하여 아래에서 설명된다. 디코딩 디바이스 (112) 의 구체적인 세부 사항들을 가지는 예가 도 9 을 참조하여 아래에서 설명된다.
위에서 언급한 바와 같이, HEVC 표준에 대한 확장판들은 MV-HEVC 로서 지칭되는, 멀티뷰 비디오 코딩 확장판, 및 SHVC 로서 지칭되는, 스케일러블 비디오 코딩 확장판을 포함한다. MV-HEVC 및 SHVC 확장판들은 계층화된 코딩 (layered coding) 의 컨셉을 공유하며, 상이한 계층들이 인코딩된 비디오 비트스트림에 포함된다. 코딩된 비디오 시퀀스에서의 각각의 계층은 고유한 계층 식별자 (ID) 에 의해 어드레스된다. 계층 ID 는 NAL 유닛이 연관되는 계층을 식별하기 위해 NAL 유닛의 헤더에 존재할 수도 있다. MV-HEVC 에서, 상이한 계층들은 대개 비디오 비트스트림에서 동일한 장면의 상이한 뷰들을 나타낸다. SHVC 에서는, 비디오 비트스트림을 상이한 공간 해상도들 (또는, 픽처 해상도) 로 또는 상이한 복원 충실도들로 표시하는 상이한 스케일러블 계층들이 제공된다. 스케일러블 계층들은 (계층 ID = 0 을 가지는) 기초 계층 및 (계층 ID들 = 1, 2, … n 을 가지는) 하나 이상의 향상 계층들을 포함할 수도 있다. 기초 계층은 HEVC 의 제 1 버전의 프로파일을 따를 수도 있으며, 비트스트림에서 최저 가용 계층을 나타낸다. 향상 계층들은 기초 계층에 비해, 증가된 공간 해상도, 시간 해상도 또는 프레임 레이트, 및/또는 복원 충실도 (또는, 품질) 를 갖는다. 향상 계층들은 계층적으로 편성되며, 하부 계층들에 의존할 수도 (또는, 의존하지 않을 수도) 있다. 일부 예들에서, 상이한 계층들은 단일 표준 코덱을 이용하여 코딩될 수도 있다 (예컨대, 모든 계층들이 HEVC, SHVC, 또는 다른 코딩 표준을 이용하여 인코딩된다). 일부 예들에서, 상이한 계층들은 멀티-표준 코덱을 이용하여 코딩될 수도 있다. 예를 들어, 기초 계층은 AVC 를 이용하여 코딩될 수도 있으며, 한편 하나 이상의 향상 계층은 HEVC 에 대한 HEVC 표준에 대한 SHVC 및/또는 MV-HEVC 확장판들을 이용하여 코딩될 수도 있다.
앞에서 설명한 바와 같이, 인트라-예측을 포함한, 여러 예측 모드들이 비디오 코딩 프로세스에서 사용될 수도 있다. 인트라-예측의 하나의 유형은 인트라-블록 복사를 포함한다. 인트라-블록 복사는 HEVC 범위 확장판 작업 초안 텍스트 (JCTVC-P1005) 에 포함되었다. 이미지 프레임 또는 픽처에서의 리던던시를 이용하여, 인트라-블록 복사는 샘플들의 블록 (예컨대, CU, PU, 또는 다른 코딩 블록) 을 이미지 프레임의 이웃하는 영역에서의 샘플들의 복원된 블록으로부터의 변위로서 예측하기 위해 블록 매칭을 수행한다. 콘텐츠의 반복 패턴들로부터 리던던시를 제거함으로써, 인트라-블록 복사 예측은 코딩 효율을 향상시킨다.
본원에서 설명되는 기법들 및 시스템들은 메모리 대역폭 효율을 향상시키는 것, 최악의 경우 메모리 액세스들을 제한하는 것, 및 인트라-블록 복사의 다른 양태들에 관한 것이다. 이 문서에서의 양태들 및 방법들은 HEVC 및 그의 확장판들, 예컨대 스크린 콘텐츠 코딩, 또는 다른 확장판들에 적용가능하다. 예를 들어, 코딩 툴들이 모션에 의한 텍스트 및 그래픽스 (text and graphics with motion) 와 같은, 스크린-콘텐츠 자료를 코딩하기 위해 구현될 수도 있다. 또, 스크린 콘텐츠에 대한 코딩 효율을 향상시키는 기술들이 제공될 수도 있다. 코딩 효율에서의 상당한 향상들이 여러 코딩 툴들과 함께 스크린 콘텐츠의 특성들을 활용함으로써 획득될 수 있다. 예를 들어, 일부 양태들은 (8 비트보다 큰) 가능한 한 높은 비트 심도, (4:4:4 및 4:2:2 를 포함한) 높은 크로마 샘플링 포맷, 및 다른 향상들을 지원한다.
본원에서 설명되는 인트라-블록 복사 툴은 비-이웃하는 샘플들로부터 그러나 현재의 픽처 내에서 공간 예측을 가능하게 한다. 예를 들어, 도 2 는 인트라-블록 복사가 현재의 코딩 유닛 (202) 을 예측하는데 사용되는 코딩된 픽처 (200) 를 예시한다. 현재의 코딩 유닛 (202) 은 코딩된 픽처 (200) 의 (인-루프 필터링 전에) 이미 디코딩된 예측 블록 (204) 을 블록 벡터 (206) 를 이용하여 예측된다. 인-루프 필터링은 인-루프 디블록킹 필터 및 샘플 적응적 오프셋 (SAO) 양쪽을 포함할 수도 있다. 디코더에서, 예측된 값들이 어떤 내삽 없이 잔차들에 가산된다. 예를 들어, 블록 벡터 (206) 는 정수 값으로서 시그널링될 수도 있다. 블록 벡터 예측 이후, 블록 벡터 차이는 HEVC 표준에서 규정된 것과 같은, 모션 벡터 차이 코딩 방법을 이용하여 인코딩된다. 인트라-블록 복사가 CU 및 PU 레벨 양쪽에서 인에이블된다. PU 레벨 인트라-블록 복사를 위해, 2NxN 및 NX2N PU 파티션이 모든 CU 사이즈들에 대해 지원된다. 게다가, CU 가 가장 작은 CU 일 때, NxN PU 파티션이 지원된다.
전통적인 인트라-예측 모드들과는 반대로, 인트라-블록 복사 (IBC) 는 비-이웃하는 샘플들로부터의 공간 예측을 가능하게 한다. 이들 비-이웃하는 샘플들은 동일한 픽처 내 (인-루프 필터링 전에) 이미 디코딩된 샘플들 중 임의의 샘플로부터 유래할 수 있으며 블록 벡터에 의해 시그널링될 수 있다. 이들 비-이웃하는 샘플들의 메모리 액세스들은 IBC 가 사용될 때 전체 메모리 대역폭을 증가시킨다. 예를 들어, 증가된 판독 액세스가 (캐시/로컬 메모리에 있지 않은) 공간 예측 샘플들의 페칭에 의해 적어도 부분적으로 초래된다. 전통적인 인트라 모드에서, 사용되는 이웃하는 샘플들이 단지 상부 샘플들의 1 로우 및 좌측 샘플들의 1 칼럼이고, 캐시에 배치되는 것이 가능하다는 점에 유의해야 할 수도 있다. 이에 반해, IBC 가 사용될 때, 모든 이전에 인코딩된/디코딩된 샘플들이 참조 유닛으로서 사용될 수도 있다. 증가된 개수의 가용 샘플들을 지원하기 위해, 시스템은 추가적인 메모리 사용을 지원한다. 증가된 기록 액세스가 IBC 공간 예측을 위한 비필터링된 샘플들, 및 미래 픽처들에 대한 출력/시간 예측을 위한 필터링된 복원된 샘플들 양쪽의 저장으로 인해, 부분적으로, 초래된다.
HEVC 표준은 최악의 경우 대역폭 요구사항을 정의한다. 위에서 설명된 증가된 대역폭은 일부의 경우, HEVC 최악의 경우 대역폭 요구사항보다 클 수도 있다. 증가된 대역폭은 IBC 기법들의 구현에 부담을 지우며, 스크린 콘텐츠 확장판들 또는 IBC 를 지원하는 HEVC 확장판을 지원하도록 HEVC 코어를 다시 고치는 것을 어렵게 만들 수도 있다.
더욱이, IBC 에서 사용되는 큰 탐색 범위들은 구현하기에 극도로 어렵게 만들 수 있는 대역폭 및 실행 시스템 부하들을 야기하는 블록 벡터 분포들을 분산하도록 초래할 수도 있다. 도 3 에서의 예에 나타낸 바와 같이, CU 를 가지는 IBC 블록 벡터들의 분포가 분산될 수 있는 것이 가능하다. 잠재적으로 이것은 모든 예측 샘플들이 캐시에서 이용가능하지 않기 때문에 외부 메모리 (DDR) 로부터의 샘플들의 페칭의 요구를 초래할 수 있다. 모든 예측 블록들을 캐시 영역 내에 맞추는 것은 시스템이 대단히 큰 캐시를 가지도록 요구하는데, 그런 캐시는 비싸고 낮은 전력 설계들에서는 적합하지 않다. 이것은 시스템 대역폭, 성능 및 비용에 대폭 영향을 미친다. 이러한 블록 벡터 분포들은 탐색 범위가 증가함에 따라서 더 가능성이 있다.
큰 탐색 범위는 타일들에 걸친 블록 벡터들 분포들을 초래하여, 병렬화에 대한 심한 성능 영향을 야기할 수 있다. 도 4 에서의 예에 나타낸 바와 같이, CU 를 가지는 IBC 블록 벡터들의 분포가 다수의 타일들에 걸쳐서 분산될 수 있는 것이 가능하다.
낮은 지연 P 코딩을 위해, 기존 IBC 설계에 따른 블록 및/또는 모션 벡터들의 최악의 경우 개수가 (CU, CTB, 또는 다른 코딩 유닛 또는 블록에 대한) HEVC 의 모션 벡터들의 최악의 경우 개수보다 더 클 수 있다고 가정된다. 이것은 가장 작은 CU 사이즈에 대해 NxN 을 지원하기 때문이다. 많은 개수의 블록 및/또는 모션 벡터들은 가능한 부하들의 개수에 추가적인 부담을 준다.
라인-기반의 IBC 는 라인 만큼 작은 파티션들을 포함한, 전통적인 IBC 보다 더 미세한 그래뉼래러티를 가지는 파티션들을 포함한다. 라인-기반의 IBC 는 모션 벡터들의 개수를 기존 HEVC 설계보다 더 크게 증가시킬 수도 있다. 더 높은 모션 벡터들은 증가된 샘플 페칭을 야기하여 대역폭을 증가시킬 것이다.
슬라이스들을 이용하는 것은 에러 복원력을 상당히 도울 수도 있다. 인트라 슬라이스는 자립적이며 (self-contained) 스탠드얼론에서 디코딩가능할 수도 있다. 그러나, IBC 는 그의 에러 복원력 능력에 영향을 미치는 다른 슬라이스에 대한 I-슬라이스의 의존성을 도입할 수도 있다.
인트라-블록 복사의 여러 양태들이 기타 사항들에 더하여 상기 단점들의 관점에서, 본원에서 설명된다. 설명된 특징들 각각은 별개로 또는 하나 이상의 다른 솔루션들과 공동으로 작용할 수 있다. 설명된 방법들, 시스템들, 및 양태들은 IBC 에 적용되지만, 또한 예를 들어, 높은 대역폭 및 캐시 요구사항들을 가지는 다른 코딩 툴들, 예를 들어, 1-D 사전, 팔레트, 또는 다른 코딩 툴들에도 적용될 수 있다.
IBC 가 인에이블될 때의 양방향-예측 제한 사항
HEVC 에서, 8x8 픽셀 블록 양방향-예측은 최악의 경우 대역폭 요구사항을 나타낸다. 모든 HEVC 확장판들이 또한 동일한 최악의 경우 대역폭 요구사항을 따르면 유익하다. 그러므로, 메모리 판독 액세스들을 감소시키기 위해 그리고 대역폭을 HEVC 최악의 경우 요구사항들의 한계들 내에서 유지하기 위해, IBC 가 인에이블될 때의 양방향-예측에 대한 제한 사항들이 이하에서 설명된다.
일부 실시형태들에서, IBC 가 인에이블되는 결과로서, 인터-프레임 양방향-예측이 디스에이블된다. 예를 들어, IBC 에 의한 인트라-프레임 예측에 대응하는 상태에 응답하여, 인터-프레임 양방향-예측이 디스에이블될 수도 있다. 그 결과, IBC 에 의해, 메모리 대역폭과 같은, 시스템 리소스들에 대한 요구가 인터-프레임 양방향-예측으로부터 인트라-프레임 예측까지 효과적으로 감소된다.
일부 실시형태들에서, 하나 이상의 추가적인 조건들이 인터-프레임 양방향-예측을 디스에이블하도록 요구될 수도 있다. 작은 예측 블록들이 큰 예측 블록들보다 더 많은 시스템 리소스들, 예컨대 메모리 대역폭을 요구하기 때문에, 예측 블록 사이즈는 인터-프레임 양방향-예측을 디스에이블하는데 추가적인 요구사항일 수도 있다. 예를 들어, 일부 실시형태들에서, IBC 가 인에이블되고 또한 예측 블록 사이즈가 미리 정의된 사이즈 미만이거나 또는 동일한 결과로서, 인터-프레임 양방향-예측이 디스에이블된다. 미리 정의된 사이즈는 예를 들어, 4x4 픽셀들, 4x8 픽셀들, 8x4 픽셀들, 8x8 픽셀들, 8x16 픽셀들, 16x16 픽셀들, 32x32 픽셀들, 또는 다른 사이즈일 수도 있다.
일부 실시형태들에서, IBC 가 인에이블되는 결과로서 양방향-예측이 디스에이블되는지 여부를 규정하거나 또는 표시하기 위해 플래그가 사용될 수 있다. 일부 실시형태들에서, 플래그는 양방향-예측에 대한 제한 사항이 예를 들어, 여러 데이터 구성 레벨들 중 임의의 레벨에서 적용되는지 여부를 표시한다. 예를 들어, 플래그는 제한 사항이 하나 이상의 시퀀스들, 픽처들, 슬라이스들, 또는 다른 데이터 유닛들에 적용된다는 것을 표시할 수도 있다. 플래그는 다음 파라미터 세트들 중 하나 이상에서 시그널링될 수도 있다: VPS, SPS, PPS, 비디오 사용성 정보 (VUI), 슬라이스 헤더 또는 그들의 개개의 확장판들.
일부 실시형태들에서, 다음의, 또는 등등한, 시퀀스 파라미터 세트 미가공 바이트 시퀀스 페이로드 (RBSP) 신택스가 사용된다. 이 실시형태에서, (예컨대, JCTVC-P1005_v4 에 기초하여) 예측 블록 사이즈가 8x8 미만이거나 또는 동일한 결과로서 양방향-예측이 디스에이블된다.
Figure 112016123265785-pct00001
Figure 112016123265785-pct00002
일부 실시형태들에서, 다음의 또는 동등한, SPS 의미들이 사용된다:
1 과 동일한 intra_block_copy_restriction_enabled_flag 는 IBC 가 인트라-프레임 예측을 위해 디코딩 프로세스동안 사용될 때 양방향-예측에 관한 제한 사항이 인에이블된다는 것을 규정한다.
0 과 동일한 intra_block_copy_restriction_enabled_flag 는 IBC 의 사용에 기초한 양방향-예측에 대한 제한 사항들이 적용되지 않는다는 것을 규정한다. 존재하지 않을 때, intra_block_copy_enabled_flag 의 값은 0 과 동일한 것으로 추론된다.
디코딩 프로세스
list0, list1, 또는 양방향-예측이 현재의 예측 유닛에 사용되는지 여부를 규정하는 inter_pred_idc[ x0 ][ y0 ] 의 값은 테이블 1 에 따라서 유도된다.
테이블 1 - 인터 예측 모드에 대한 이름 연관
Figure 112016123265785-pct00003
JCTVC-T1005 에서, 적응적 모션 벡터 해상도 (adaptive motion vector resolution; AMVR) 특징은 시그널링된 플래그 "use_integer_mv_flag" 를 이용하여 인에이블된다. 플래그의 의미들은 다음과 같다.
1 과 동일한 use_integer_mv_flag 는 인터 예측을 위한 모션 벡터들의 해상도를 규정한다. 존재하지 않을 때, use_integer_mv_flag 의 값은 motion_vector_resolution_control_idc 와 동일한 것으로 추론된다.
비제로와 동일한 use_integer_mv_flag 는 현재의 슬라이스에서의 루마 모션 벡터들의 해상도가 정수 pel 로서 간주된다는 것을 규정한다. 그 결과, 분수 내삽이 슬라이스에서의 모든 루마 샘플들에 대해 요구되지 않을 수도 있다. 분수 내삽이 요구되지 않을 때, 내삽에 요구되는 추가적인 샘플들이 로드되지 않으며, 따라서, 최악의 경우 메모리 대역폭이 감소되며, HEVC 최악의 경우보다 더 낮을 수도 있다.
일부 실시형태들에서, 단방향-예측 및 양방향-예측 중 적어도 하나가 IBC 사용의 결과로서, 그리고 추가로 use_integer_mv_flag 의 상태의 결과로서, 미리 결정된 블록 사이즈의 인터 픽처들에 대해 디스에이블된다. 이것은 HEVC 최악의 경우 대역폭 요구사항의 한계들 내에서 유지하는 대역폭 사용을 초래한다.
일부 실시형태들에서, 양방향-예측을 디스에이블하는 조건들은 IBC 가 인에이블되는 것, use_integer_mv_flag 가 제로인 것, 및 예측 블록이 미리 정의된 사이즈 미만인 (또는, 미만이거나 또는 동일한) 것을 포함한다. 미리 정의된 사이즈는 예를 들어, 4x4 픽셀들, 4x8 픽셀들, 8x4 픽셀들, 8x8 픽셀들, 8x16 픽셀들, 16x16 픽셀들, 32x32 픽셀들, 또는 다른 사이즈일 수도 있다. 일 예에서, 양방향-예측은 IBC 가 인에이블되는 것 및 use_integer_mv_flag 가 제로인 것에 더하여, 예측 블록 사이즈가 8x8 사이즈, 또는 다른 사이즈 미만이거나 또는 동일한 결과로서, 예측 블록에 대해 디스에이블될 수도 있다.
일부 실시형태들에서, 단방향-예측을 디스에이블하는 조건들은 IBC 가 인에이블되는 것, use_integer_mv_flag 가 제로인 것, 및 예측 블록이 미리 정의된 사이즈 미만인 (또는, 미만이거나 또는 동일한) 것을 포함한다. 미리 정의된 사이즈는 예를 들어, 4x4 픽셀들, 4x8 픽셀들, 8x4 픽셀들, 8x8 픽셀들, 8x16 픽셀들, 16x16 픽셀들, 32x32 픽셀들, 또는 다른 사이즈일 수도 있다. 일 예에서, IBC 가 인에이블되고 use_integer_mv_flag 가 제로인 결과로서, 인터-프레임 단방향-예측이 8x8 사이즈, 또는 다른 사이즈 미만이거나 또는 동일한 사이즈를 가지는 예측 블록에 대해 디스에이블된다.
일부 실시형태들에서, 단방향-예측 및 양방향-예측 양쪽을 디스에이블하는 조건들은 IBC 가 인에이블되는 것, use_integer_mv_flag 가 제로인 것, 및 예측 블록이 미리 정의된 사이즈 미만인 (또는, 미만이거나 또는 동일한) 것을 포함한다. 미리 정의된 사이즈는 예를 들어, 4x4 픽셀들, 4x8 픽셀들, 8x4 픽셀들, 8x8 픽셀들, 8x16 픽셀들, 16x16 픽셀들, 32x32 픽셀들, 또는 다른 사이즈일 수도 있다. 일 예에서, IBC 가 인에이블되고 use_integer_mv_flag 가 제로인 결과로서, 인터-프레임 단방향-예측 및 양방향-예측이 16x16 사이즈, 또는 다른 사이즈 미만이거나 또는 동일한 사이즈를 가지는 예측 블록에 대해 디스에이블된다.
일부 실시형태들에서, 양방향-예측된 블록이 동일한 참조 블록으로부터 양방향-예측되면, 예측의 모션 벡터들이 동일한 참조 블록을 참조하고 동일하도록, 본원에서 설명되는 예측의 디스에이블링이 적용된다. 예를 들어, 단방향-예측 및/또는 양방향-예측의 디스에이블링은 예측의 모션 벡터들이 동일한 참조 블록을 참조하고 동일하도록, 디스에이블링을 트리거하는 양방향-예측된 블록이 동일한 참조 블록으로부터 예측되지 않는다는, 그들의 적용에 대한 또 다른 조건을 가질 수도 있다.
도 5 는 IBC 에 의해 비디오 데이터를 인코딩하고 그리고 양방향-예측 및/또는 단방향-예측이 선택적으로 디스에이블되는 프로세스 (500) 의 일 실시형태를 예시한다. 프로세스 (500) 는 복수의 인코딩된 비디오 픽처들을 발생시키기 위해 구현된다. 일부 양태들에서, 프로세스 (500) 는 도 1 에 나타낸 인코딩 디바이스 (104) 와 같은, 컴퓨팅 디바이스 또는 장치에 의해 수행될 수도 있다. 예를 들어, 컴퓨팅 디바이스 또는 장치는 인코더, 또는 프로세서, 마이크로프로세서, 마이크로컴퓨터, 또는 프로세스 (500) 의 단계들을 수행하도록 구성된 인코더의 다른 구성요소를 포함할 수도 있다.
프로세스 (500) 는 논리적 흐름도로서 예시되며, 그 흐름도의 동작은 하드웨어, 컴퓨터 명령들, 또는 이들의 조합으로 구현될 수 있는 동작들의 시퀀스를 나타낸다. 컴퓨터 명령들의 상황에서, 그 동작들은 하나 이상의 프로세서들에 의해 실행될 때, 인용된 동작들을 수행하는, 하나 이상의 컴퓨터-판독가능 저장 매체들 상에 저장된 컴퓨터-실행가능한 명령들을 나타낸다. 일반적으로, 컴퓨터-실행가능한 명령들은 루틴들, 프로그램들, 오브젝트들, 구성요소들, 데이터 구조들, 및 특정의 기능들을 수행하거나 또는 특정의 데이터 유형들을 구현하는 기타 등등을 포함한다. 동작들이 설명되는 순서는 한정으로서 해석되도록 의도되지 않으며, 임의 개수의 설명된 동작들이 프로세스들을 구현하기 위해 임의의 순서로 및/또는 병렬로 결합될 수 있다.
게다가, 프로세스 (500) 는 실행가능한 명령들로 구성된 하나 이상의 컴퓨터 시스템들의 제어 하에서 수행될 수도 있으며, 하나 이상의 프로세서들 상에서, 하드웨어, 또는 이들의 조합들에 의해 일괄하여 실행하는 코드 (예컨대, 실행가능한 명령들, 하나 이상의 컴퓨터 프로그램들, 또는 하나 이상의 애플리케이션들) 로서 구현될 수도 있다. 위에서 언급한 바와 같이, 코드는 컴퓨터-판독가능 또는 머신-판독가능 저장 매체 상에, 예를 들어, 하나 이상의 프로세서들에 의해 실행가능한 복수의 명령들을 포함하는 컴퓨터 프로그램의 유형으로 저장될 수도 있다. 컴퓨터-판독가능 또는 머신-판독가능 저장 매체는 비일시적일 수도 있다.
502 에서, 비디오 데이터를 인코딩하는 프로세스 (500) 는 인코더에서 비디오 데이터를 획득하는 단계를 포함한다. 일부 실시형태들에서, 인코더는 비디오 데이터에 대해 인터-픽처 단방향-예측을 수행하여 복수의 P 예측 유닛들을 발생시키고, 비디오 데이터에 대해 인터-픽처 양방향-예측을 수행하여 복수의 B 예측 유닛들을 발생시키고, 그리고 인트라-블록 복사 예측을 이용하여, 비디오 데이터에 대해 인트라-픽처 예측을 수행하여 예측 유닛을 인코딩하도록 구성된다. 인터-픽처 단방향-예측이 수행될 때, 인터-픽처 단방향-예측은 예를 들어, 복수의 P 예측 유닛들을 발생시킬 수도 있다. 인터-픽처 양방향-예측이 수행될 때, 인터-픽처 양방향-예측은 예를 들어, 복수의 B 예측 유닛들을 발생시킬 수도 있다. 인트라-픽처 예측이 수행될 때, 인트라-픽처 예측은 인트라-블록 복사 예측을 이용하여 예를 들어, 복수의 I 예측 유닛들을 발생시킨다.
504 에서, 프로세스 (500) 는 복수의 인코딩된 비디오 픽처들을 발생시키기 위해, 인트라-블록 복사 예측을 이용하여, 비디오 데이터에 대해 인트라-픽처 예측을 수행하기로 결정하는 단계를 포함한다. 이 결정하는 것은 예를 들어, 인트라-블록 복사 모드를 표시하는 상태에 응답할 수도 있다. 일부 실시형태들에서, 시그널링 플래그가 디코더에 대해 발생되며, 여기서 시그널링 플래그는 인트라-블록 복사 모드를 표시한다. 예를 들어, 시그널링 플래그에 대한 1 의 값은 인트라-블록 복사 모드가 수행된다는 것을 표시할 수도 있다. 다른 예에서, 시그널링 플래그에 대한 0 의 값은 인트라-블록 복사 모드가 수행되지 않는다는 것을 표시할 수도 있다.
506 에서, 프로세스 (500) 는 인트라-블록 복사 예측을 이용하여 비디오 데이터에 대해 인트라-픽처 예측을 수행하는 단계를 포함한다. 예를 들어, 인트라-픽처 예측은 인코더의 프로그래밍된 상태에 따라서, 인트라-블록 복사 예측을 이용하여 수행될 수도 있다. 인트라-블록 복사 예측 프로세스는 본원에서 다른 어딘가에서 설명되는 인트라-블록 복사 프로세스들의 양태들을 포함할 수도 있다.
508 에서, 프로세스 (500) 는 인트라-블록 복사 예측을 이용하여 비디오 데이터에 대해 인트라-픽처 예측을 수행하기로 결정하는 것에 응답하여, 복수의 인코딩된 비디오 픽처들에 대해 인터-픽처 양방향-예측, 또는 인터-픽처 단방향-예측 중 적어도 하나를 디스에이블하는 단계를 포함한다. 일부 실시형태들에서, 인트라-픽처 예측 및 디스에이블링은 시그널링 플래그에 응답하여 수행된다. 일부 실시형태들에서, 시그널링 플래그에 응답하여, 인터-픽처 양방향-예측 실행 및 인터-픽처 단방향-예측 실행 양쪽이 디스에이블된다. 예측의 디스에이블링은 양태들을 포함할 수도 있거나 또는 본원에서 다른 어딘가에서 설명된 다른 인자들에 응답할 수도 있다.
510 에서, 프로세스 (500) 는 인트라-블록 복사 예측에 따라서, 수신된 비디오에 기초하여, 예를 들어, 본원에서 다른 어딘가에서 설명된 프로세스들의 양태들을 이용하여 복수의 인코딩된 비디오 픽처들을 발생시키는 단계를 포함한다. 예를 들어, 인코딩된 비디오 픽처들은 비디오 데이터에 대한 인트라-블록 복사 예측을 이용하여 발생될 수도 있다.
일부 실시형태들에서, 프로세스 (500) 는 본원에서 설명된 다른 양태들을 포함한다. 예를 들어, 일부 실시형태들에서, 프로세스 (500) 는 복수의 P 예측 유닛들을 발생시키기 위해 비디오 데이터에 대해 인터-픽처 단방향-예측을 수행하는 단계를 포함한다. 일부 실시형태들에서, 프로세스 (500) 는 예측 유닛 사이즈를 결정하는 단계를 포함하며, 여기서, 인터-픽처 양방향-예측 또는 단방향-예측을 수행하는 것이 인트라-블록 복사 예측을 이용하여 비디오 데이터에 대해 인트라-픽처 예측을 수행하기로 결정하는 것, 및 예측 유닛 사이즈가 임계치 미만인 것의 양자의 조합에 응답하여, 복수의 인코딩된 비디오 픽처들에 대해 디스에이블된다. 일부 실시형태들에서, 프로세스 (500) 에서, 인터-픽처 양방향-예측 및 인터-픽처 단방향-예측이 그 조합에 응답하여 복수의 인코딩된 비디오 픽처들에 대해 디스에이블된다.
일부 실시형태들에서, 인코더는 적응적 모션 벡터 해상도 (AMVR) 를 추가로 할 수 있으며, 프로세스 (500) 는 또한 예측 유닛 사이즈를 결정하는 단계를 포함하며, 여기서, 인터-픽처 양방향-예측 또는 인터-픽처 단방향-예측이 인트라-블록 복사 예측을 이용하여 비디오 데이터에 대해 인트라-픽처 예측을 수행하기로 결정하는 것, 예측 유닛 사이즈가 임계치 미만인 것, 및 AMVR 이 디스에이블된다는 표시를 수신하는 것 모두의 조합에 응답하여, 복수의 인코딩된 비디오 픽처들에 대해 디스에이블된다. 조합은 상이한 참조 유닛들 및 상이한 모션 벡터들 중 적어도 하나를 가지는 인터-예측 양방향-예측을 더포함할 수도 있다. 인터-픽처 양방향-예측 및 인터-픽처 단방향-예측은 그 조합에 응답하여 복수의 인코딩된 비디오 픽처들에 대해 디스에이블될 수도 있다. 조합은 상이한 참조 유닛들 및 상이한 모션 벡터들 중 적어도 하나를 가지는 인터-예측 양방향-예측을 더 포함할 수도 있다.
도 6 은 IBC 에 의해 비디오 데이터를 디코딩하고 양방향-예측 및/또는 단방향-예측이 선택적으로 디스에이블되는 프로세스 (600) 의 일 실시형태를 예시한다. 프로세스 (600) 는 복수의 인코딩된 비디오 픽처들을 디코딩하기 위해 구현된다. 일부 양태들에서, 프로세스 (600) 는 도 1 에 나타낸 디코딩 디바이스 (112) 와 같은, 컴퓨팅 디바이스 또는 장치에 의해 수행될 수도 있다. 예를 들어, 컴퓨팅 디바이스 또는 장치는 디코더, 또는 프로세서, 마이크로프로세서, 마이크로컴퓨터, 또는 프로세스 (600) 의 단계들을 실행하도록 구성된 디코더의 다른 구성요소를 포함할 수도 있다.
프로세스 (600) 는 논리적 흐름도로서 예시되며, 그 흐름도의 동작은 하드웨어, 컴퓨터 명령들, 또는 이들의 조합으로 구현될 수 있는 동작들의 시퀀스를 나타낸다. 컴퓨터 명령들의 상황에서, 동작들은 하나 이상의 프로세서들에 의해 실행될 때, 인용된 동작들을 수행하는, 하나 이상의 컴퓨터-판독가능 저장 매체들 상에 저장된 컴퓨터-실행가능한 명령들을 나타낸다. 일반적으로, 컴퓨터-실행가능한 명령들은 루틴들, 프로그램들, 오브젝트들, 구성요소들, 데이터 구조들, 및 특정의 기능들을 수행하거나 또는 특정의 데이터 유형들을 구현하는 기타 등등을 포함한다. 동작들이 설명되는 순서는 한정으로 해석되도록 의도되지 않으며, 임의 개수의 설명된 동작들이 프로세스들을 구현하기 위해 임의의 순서로 및/또는 병렬로 결합될 수 있다.
게다가, 프로세스 (600) 는 실행가능한 명령들로 구성된 하나 이상의 컴퓨터 시스템들의 제어 하에서 수행될 수도 있으며, 하나 이상의 프로세서들 상에서, 하드웨어, 또는 이들의 조합들에 의해 일괄하여 실행하는 코드 (예컨대, 실행가능한 명령들, 하나 이상의 컴퓨터 프로그램들, 또는 하나 이상의 애플리케이션들) 로서 구현될 수도 있다. 위에서 언급한 바와 같이, 코드는 컴퓨터-판독가능 또는 머신-판독가능 저장 매체 상에, 예를 들어, 하나 이상의 프로세서들에 의해 실행가능한 복수의 명령들을 포함하는 컴퓨터 프로그램의 유형으로 저장될 수도 있다. 컴퓨터-판독가능 또는 머신-판독가능 저장 매체는 비일시적일 수도 있다.
602 에서, 비디오 데이터를 디코딩하는 프로세스 (600) 는 비디오 스트림에서, 복수의 예측 모드들을 이용하여 인코딩된 인코딩된 비디오 데이터를 수신하는 단계를 포함한다. 비디오 데이터는 디코더에서 수신될 수도 있다. 복수의 예측 모드들은 인터-픽처 단방향-예측 모드, 인터-픽처 양방향-예측 모드, 및 인트라-픽처 인트라-블록 복사 모드를 포함한다. 인터-픽처 단방향-예측 모드에서, 디코더는 예를 들어, 본원에서 다른 어딘가에서 설명된 바와 같이, 단방향-예측에 따라서 디코딩되도록 구성된다. 인터-픽처 양방향-예측 모드에서, 디코더는 예를 들어, 본원에서 다른 어딘가에서 설명된 바와 같이, 양방향-예측에 따라서 디코딩하도록 구성된다. 인트라-픽처 인트라-블록 복사 모드에서, 디코더는 예를 들어, 본원에서 다른 어딘가에서 설명된 바와 같이, 인트라-블록 복사 예측에 따라서 디코딩하도록 구성된다.
604 에서, 프로세스 (600) 는 비디오 비트스트림에서, 인터-픽처 양방향-예측이 디스에이블된다는 또는 인터-픽처 양방향-예측 제한 사항이 인코딩된 비디오 데이터의 부분에 대해 인에이블된다는 표시를 수신하는 단계를 포함한다. 표시는, 예를 들어, 인터-픽처 양방향-예측이 디스에이블된다는 것 또는 인터-픽처 양방향-예측 제한 사항이 인에이블된다는 것을 표시하는 상태에 있는 시그널링 플래그일 수도 있다. 예를 들어, 시그널링 플래그에 대한 1 의 값은 인터-픽처 양방향-예측 제한 사항이 인에이블된다는 것 또는 인터-픽처 양방향-예측이 디스에이블된다는 것을 표시할 수도 있다. 다른 예에서, 시그널링 플래그에 대한 0 의 값은 인터-픽처 양방향-예측 제한 사항이 인에이블된다는 것 또는 인터-픽처 양방향-예측이 디스에이블된다는 것을 표시할 수도 있다.
606 에서, 프로세스 (600) 는 그 표시에 기초하여, 인코딩된 비디오 데이터의 부분의 예측 유닛을 예측하는 복수의 예측 모드들 중에서 예측 모드를 결정하는 단계를 포함한다. 일부 실시형태들에서, 인코딩된 비디오 데이터의 부분은 픽처들의 시퀀스와 같은, 복수의 픽처들을 포함한다. 더욱이, 608 에서, 프로세스 (600) 는 결정된 예측 모드에 따라서, 예를 들어, 본원에서 다른 어딘가에서 설명된 프로세스들의 양태들을 이용하여, 인코딩된 비디오 데이터의 부분의 예측 유닛을 디코딩하는 단계를 포함한다.
일부 실시형태들에서, 프로세스 (600) 는 본원에서 설명된 다른 양태들을 포함한다. 예를 들어, 프로세스 (600) 는 그 표시에 응답하여, 인코딩된 비디오 데이터의 부분의 예측 유닛을 예측하기 위한 사용으로부터 인터-픽처 양방향-예측 예측 모드를 제외하는 단계를 포함할 수도 있다.
IBC 에 대한 참조 샘플 제한 사항
HEVC 최악의 경우 대역폭 요구사항을 변경없이 유지하기 위해, IBC 가 사용되는 결과로서 참조 샘플들에 제한 사항들이 추가적으로 또는 대안적으로 적용될 수도 있다.
일부 실시형태들에서, 본원에서 설명되는 참조 샘플들에 관한 제한 사항들은 제한된 예측 블록들이 참조 샘플들로서의 사용에 이용불가능하도록 한다. 일부 실시형태들에서, 대응하는 대용 참조 샘플들이 미리 정의된 패딩 방식들에 의해 발생되며, 예측에 사용될 수도 있다.
예를 들어, 대용 참조 샘플들은 이웃하는 샘플들로부터의 수평 또는 수직 패딩을 통해서 발생될 수도 있으며, 이 경우, 하나 이상의 이웃하는 샘플들로부터의 데이터가 대용 참조 샘플들을 발생시키기 위해 복사된다. 대안적으로, 대용 참조 샘플들은 미리 정의된 값과 동일한 데이터로 발생될 수도 있다. 예를 들어, 미리 정의된 값은 2<< (B -1) 과 동일하며, 여기서, B 는 샘플의 비트심도이다.
일부 실시형태들에서, IBC 가 인에이블될 때, 양방향-예측에 의한 예측 블록으로부터의 IBC 를 위한 잠재적인 참조 샘플들은 참조 샘플들로서 사용되는 것으로부터 제외되거나 또는 실격된다. 일부 실시형태들에서, IBC 가 인에이블될 때, 양방향-예측에 의한 예측 블록으로부터의 IBC 를 위한 잠재적인 참조 샘플들은 예측 블록 사이즈가 미리 정의된 사이즈 미만이거나 또는 동일하다는 추가적인 조건의 결과로서, 참조 샘플들로서 사용되는 것으로부터 제외되거나 또는 실격된다. 미리 정의된 사이즈는 예를 들어, 4x4 픽셀들, 4x8 픽셀들, 8x4 픽셀들, 8x8 픽셀들, 8x16 픽셀들, 16x16 픽셀들, 32x32 픽셀들, 또는 다른 사이즈일 수도 있다. 일부 실시형태들에서, IBC 가 인에이블될 때, 인터 모드 예측에 의한 예측 블록들로부터의 IBC 를 위한 잠재적인 참조 샘플들은 참조 샘플들로서 사용되는 것으로부터 제외되거나 또는 실격된다.
일부 실시형태들에서, IBC 가 인에이블될 때, 인터-모드 예측에 의한 예측 블록으로부터의 IBC 를 위한 잠재적인 참조 샘플들은 예측 블록 사이즈가 미리 정의된 사이즈 미만이거나 또는 동일하면 참조 샘플들로서 사용되는 것으로부터 제외되거나 또는 실격된다. 미리 정의된 사이즈는 예를 들어, 4x4 픽셀들, 4x8 픽셀들, 8x4 픽셀들, 8x8 픽셀들, 8x16 픽셀들, 16x16 픽셀들, 32x32 픽셀들, 또는 다른 사이즈일 수도 있다.
일부 실시형태들에서, IBC 가 인에이블될 때, (예컨대, JCTVC-P1005_v4 에 기초하여) 양방향-예측 모드로 예측된 예측 블록으로부터의 IBC 를 위한 잠재적인 참조 샘플들은 참조 샘플들로서 사용되는 것으로부터 제외되거나 또는 실격된다.
일부 실시형태들에서, 본원에서 설명되는 참조 샘플들에 관한 제한 사항들이 CTU 레벨에서, 예를 들어, 그 CTU 에서의 참조 샘플들의 모드 및/또는 블록 사이즈에 기초하여 적용된다. 예를 들어, IBC 가 특정의 CTU 내에서 사용되면, 그리고 블록 사이즈가 8x8 픽셀들 미만이면, 본원에서 설명되는 참조 샘플들에 관한 제한 사항들 중 하나 이상이 전체 특정의 CTU 에 적용될 수도 있다.
일부 실시형태들에서, 본원에서 설명되는 참조들 샘플들에 관한 제한 사항들은 현재의 CTU 외부에 있는 CTU들에 적용되며, 현재의 CTU 에 대해 적용되지 않는다. 일부 실시형태들에서, 본원에서 설명되는 참조들 샘플들에 관한 제한 사항들은 현재 및 다음 좌측 CTU 외부에 있는 CTU들에 대해 적용되며, 현재 및 다음 좌측 CTU 에 대해 적용되지 않는다.
일부 실시형태들에서, 본원에서 설명되는 참조 샘플들에 관한 제한 사항들의 적용은 use_integer_mv_flag 플래그가 제로인 것을 조건으로 한다. 따라서, 제한 사항들은 use_integer_mv_flag 가 제로이면 적용될 수도 있으며, use_integer_mv_flag 가 제로가 아니면 적용되지 않을 수도 있다.
일부 실시형태들에서, IBC 가 인에이블될 때, 양방향-예측에 의한 적어도 하나의 예측 블록을 가지는 CTU 로부터의 IBC 를 위한 잠재적인 참조 샘플들은 참조 샘플들로서 사용되는 것으로부터 제외되거나 또는 실격된다. 다른 예에서, IBC 가 인에이블될 때, 임계치보다 큰 양방향-예측에 의한 예측 샘플들의 개수를 가지는 CTU 로부터의 IBC 를 위한 잠재적인 참조 샘플들은 참조 샘플들로서 사용되는 것으로부터 제외되거나 또는 실격된다. 임계치는 예를 들어, 250, 500, 1000, 5000 샘플들, 또는 임의의 다른 적합한 개수의 예측 샘플들일 수도 있다.
일부 실시형태들에서, IBC 가 인에이블될 때, 양방향-예측에 의한 적어도 하나의 예측 블록을 가지는 CTU 로부터의 IBC 를 위한 잠재적인 참조 샘플들은, 그 예측 블록 사이즈가 미리 정의된 사이즈 미만이거나 또는 동일하면, 참조 샘플들로서 사용되는 것으로부터 제외되거나 또는 실격된다. 미리 정의된 사이즈는 예를 들어, 4x4 픽셀들, 4x8 픽셀들, 8x4 픽셀들, 8x8 픽셀들, 8x16 픽셀들, 16x16 픽셀들, 32x32 픽셀들, 또는 다른 사이즈일 수도 있다.
일부 실시형태들에서, IBC 가 인에이블될 때, 임계치보다 큰 양방향-예측에 의한 예측 샘플들의 개수를 가지는 CTU 로부터의 IBC 를 위한 잠재적인 참조 샘플들은 그들의 사이즈가 미리 정의된 사이즈 미만이거나 또는 동일하면, 참조 샘플들로서 사용되는 것으로부터 제외되거나 또는 실격된다. 임계치 개수는 예를 들어, 250, 500, 1000, 5000 샘플들, 또는 임의의 다른 적합한 개수의 예측 샘플들일 수도 있다. 미리 정의된 사이즈는 예를 들어, 4x4 픽셀들, 4x8 픽셀들, 8x4 픽셀들, 8x8 픽셀들, 8x16 픽셀들, 16x16 픽셀들, 32x32 픽셀들, 또는 다른 사이즈일 수도 있다.
일부 실시형태들에서, IBC 가 인에이블될 때, 내삽에 사용된 적어도 하나의 예측 블록을 가지는 CTU 로부터의 IBC 를 위한 잠재적인 참조 샘플들은 참조 샘플들로서 사용되는 것으로부터 제외되거나 또는 실격된다. 다른 예에서, IBC 가 인에이블될 때, 임계치보다 큰 내삽에 사용된 예측 샘플들의 개수를 가지는 CTU 로부터의 IBC 를 위한 잠재적인 참조 샘플들은 참조 샘플들로서 사용되는 것으로부터 제외되거나 또는 실격된다. 임계치는 예를 들어, 250, 500, 1000, 5000 샘플들, 또는 임의의 다른 적합한 개수의 예측 샘플들일 수도 있다.
일부 실시형태들에서, IBC 가 인에이블될 때, 내삽에 사용된 적어도 하나의 예측 블록을 가지는 CTU 로부터의 IBC 를 위한 잠재적인 참조 샘플들은 그 예측 블록 사이즈가 미리 정의된 사이즈 미만이거나 또는 동일하면, 참조 샘플들로서 사용되는 것으로부터 제외되거나 또는 실격된다. 미리 정의된 사이즈는 예를 들어, 4x4 픽셀들, 4x8 픽셀들, 8x4 픽셀들, 8x8 픽셀들, 8x16 픽셀들, 16x16 픽셀들, 32x32 픽셀들, 또는 다른 사이즈일 수도 있다.
일부 실시형태들에서, IBC 가 인에이블될 때, 임계치보다 큰 내삽에 사용된 예측 샘플들의 개수를 가지는 CTU 로부터의 IBC 를 위한 잠재적인 참조 샘플들은, 그들의 사이즈가 미리 정의된 사이즈 미만이거나 또는 동일하면, 참조 샘플들로서 사용되는 것으로부터 제외되거나 또는 실격된다. 미리 정의된 사이즈는 예를 들어, 4x4 픽셀들, 4x8 픽셀들, 8x4 픽셀들, 8x8 픽셀들, 8x16 픽셀들, 16x16 픽셀들, 32x32 픽셀들일 수도 있거나, 또는 다른 사이즈 임계치는 예를 들어, 250, 500, 1000, 5000 샘플들, 또는 임의의 다른 적합한 개수의 예측 샘플들일 수도 있다.
일부 실시형태들에서, 위에서 설명된 참조들 샘플들에 관한 제한 사항들이 내삽 샘플들인 잠재적인 참조 샘플들에 유사하게 적용된다.
일부 실시형태들에서, 본원에서 설명되는 참조 샘플들에 관한 제한 사항들은, 양방향-예측된 블록이 동일한 참조 블록으로부터 양방향-예측되면, 예측의 모션 벡터들이 동일한 참조 블록을 참조하고 동일하도록, 적용되지 않는다. 예를 들어, 단방향-예측 및/또는 양방향-예측의 디스에이블링은 예측의 모션 벡터들이 동일한 참조 블록을 참조하고 동일하도록, 그 제한 사항의 적용을 트리거하는 양방향-예측된 블록이 동일한 참조 블록으로부터 예측되지 않는다는, 그들의 적용을 위한 또 다른 조건을 가질 수도 있다.
B 슬라이스들에 대한 로컬 탐색 영역과 함께 JCTVC-P1005_v4 에 기초한 예시적인 사양 텍스트가 아래에서 설명된다. 본원에서 설명되는 실시형태들은 예시적인 사양 텍스트를 따른다.
디코딩 프로세스
예측 모드를 인트라-블록 복사할 때 블록 벡터 성분들에 대한 유도 프로세스가 설명된다. 본원에서 설명되는 실시형태들은 유도 프로세스를 따른다.
이 프로세스에의 입력들은 다음과 같다:
현재의 픽처의 좌상부 루마 샘플에 대한, 현재의 루마 코딩 블록의 좌상부 샘플의 루마 로케이션 ( xCb, yCb ), 및
현재의 루마 코딩 블록의 사이즈를 규정하는 변수 log2CbSize.
이 프로세스의 출력은 블록 벡터들 bvIntra 의 (nCbS)x(nCbX) 어레이이다 [단일 벡터로서 지칭될 수도 있다].
변수들 nCbS, nPbSw, 및 nPbSh 는 다음과 같이 유도된다:
Figure 112016123265785-pct00004
변수 BvpIntra[ compIdx ] 는 블록 벡터 예측자를 규정한다. 수평 블록 벡터 성분에는 compIdx = 0 이 할당되고 수직 블록 벡터 성분에는 compIdx = 1 이 할당된다.
PartMode 에 따라서, 변수 numPartitions 는 다음과 같이 유도된다:
PartMode 가 PART_2Nx2N 과 동일하면, numPartitions 는 1 과 동일하게 설정된다.
그렇지 않고, PartMode 가 PART_2NxN 또는 PART_Nx2N 과 동일하면, numPartitions 는 2 와 동일하게 설정된다.
그렇지 않으면 (PartMode 가 PART_NxN 과 동일하면), numPartitions 는 4 와 동일하게 설정된다.
블록 벡터들 bvIntra 의 어레이는 값들 0..( numPartitions - 1 ) 에 걸쳐서 연속하는 변수 blkIdx 에 대해, 다음 순서로된 단계들에 의해 유도된다:
변수 blkInc 는 ( PartMode = = PART_2NxN ? 2 : 1 ) 과 동일하게 설정된다.
변수 xPb 는 xCb + nPbSw * ( blkIdx * blkInc % 2 ) 와 동일하게 설정된다.
변수 yPb 는 yCb + nPbSh * ( blkIdx / 2 ) 와 동일하게 설정된다
다음 순서로된 단계들이 값들 0..1 에 걸쳐서 연속하는 변수 compIdx 에 대해, 적용된다:
이 프로세스가 현재의 코딩 트리 유닛에 대해 호출된 횟수에 따라서, 다음이 적용된다:
이 프로세스가 현재의 코딩 트리 유닛에 대해 처음으로 호출되면, bvIntra[ xPb ][ yPb ][ compIdx ] 는 다음과 같이 유도된다:
Figure 112016123265785-pct00005
BvpIntra[ compIdx ] 의 값은 bvIntra[ xPb ][ yPb ][ compIdx ] 와 동일하게 업데이트된다.
디코딩 프로세스에서 추후 호출되는 변수들의 유도 프로세스들에서의 사용을 위해, 다음 할당들이 x = 0..nPbSw - 1 및 y = 0..nPbSh - 1 에 대해 이루어진다:
bvIntra[ xPb + x ][ yPb + y ][ compIdx ]= bvIntra[ xPb ][ yPb ][ compIdx ] (8-25)
다음 조건들의 모두가 참인 것이 비트스트림 순응성의 요구사항이다:
- bvIntra[ xPb ][ yPb ][ 0 ] 의 값은 - ( xPb % CtbSizeY + 64 ) 보다 크거나 또는 동일하여야 한다.
- bvIntra[ xPb ][ yPb ][ 1 ] 의 값은 - ( yPb % CtbSizeY ) 보다 크거나 또는 동일하여야 한다.
- z-스캔 순서 블록 이용가능성에 대한 유도 프로세스가 입력들로서, ( xCb, yCb ) 와 동일하게 설정된 ( xCurr, yCurr ) 및 ( xPb + bvIntra[ xPb ][ yPb ][ 0 ], yPb + bvIntra[ xPb ][ yPb ][ 1 ] ) 과 동일하게 설정된 이웃하는 루마 로케이션 ( xNbY, yNbY ) 로 호출될 때, 출력은 참 (TRUE) 과 동일해야 한다.
- z-스캔 순서 블록 이용가능성에 대한 유도 프로세스가 입력들로서, ( xCb, yCb ) 와 동일하게 설정된 ( xCurr, yCurr ) 및 ( xPb + bvIntra[ xPb ][ yPb ][ 0 ] + nPbSw - 1, yPb + bvIntra [ xPb ][ yPb ][ 1 ] + nPbSh - 1 ) 과 동일하게 설정된 이웃하는 루마 로케이션 ( xNbY, yNbY ) 로 호출될 때, 출력은 참과 동일해야 한다.
- 다음 조건들 중 하나 또는 양자가 참이어야 한다:
- bvIntra[ xPb ][ yPb ][ 0 ] + nPbSw <= 0
- bvIntra[ xPb ][ yPb ][ 1 ] + nPbSh <= 0
- inter_pred_idc[ x ][ y ] 는 0 또는 1 과 동일하여야 하며, 여기서, x= xPb + BvIntra[ xPb ][ yPb ][ 0 ]. xPb + BvIntra[ xPb ][ yPb ] [ 0 ]+ (1 << log2CbSize) - 1, y= yPb + BvIntra[ xPb ][ yPb ] [ 1 ].. y0+ BvIntra[ xPb ][ yPb ] [ 1 ]+ (1 << log2CbSize) - 1 이다;
픽처 유형/슬라이스 유형/파티션 사이즈에 기초한 적응적 탐색 영역
캐시 사용을 향상시키고 그리고 IBC 블록 벡터들 및 인터 모션 벡터들의 결과로서 그렇지 않다면 발생할 캐시 미스들을 감소시키기 위해, 블록 벡터 범위에 관한 일부 제한들이 적용될 수도 있다.
블록 벡터 범위 제한들은 개별적으로 또는 조합하여 적용될 수도 있다. 블록 벡터 범위 제한들에서, 관심 영역은 제한되지 않으며, 예를 들어, CU, CTB, 최대 코딩 유닛 (LCU), 슬라이스, 타일, 또는 CU들, CTU들, CTB들, LCU들, 슬라이스들, 또는 타일들의 세트일 수도 있다.
일부 실시형태들에서, 탐색 영역은 픽처 유형, 슬라이스 유형, 및 파티션 사이즈 중 하나 이상에 기초하여 결정된다. 게다가, 신택스 엘리먼트가 각각의 대응하는 픽처 유형, 슬라이스 유형, 및 파티션 사이즈에 대한 탐색 영역을 규정하기 위해 사용될 수도 있다.
일 예로서, 현재의 슬라이스가 B-슬라이스이면, IBC 블록들에 대한 탐색 영역은 현재의 CTB 의 로컬 영역으로 제한될 수도 있다. 일부 실시형태들에서, 탐색 영역은 현재의 슬라이스가 B-슬라이스인 결과로서, 현재의 CTB 및 인접한 좌측 CTB 에서의 인과적 이웃 (causal neighborhood) 에 제한된다.
일부 실시형태들에서, 탐색 영역의 사이즈, 형태, 또는 로케이션은 신택스 엘리먼트에 의해 규정된다. 일부 실시형태들에서, 신택스 엘리먼트는 비트스트림에서, 예를 들어, VPS, SPS, PPS, VUI, 슬라이스 헤더, 또는 CU 헤더 중 하나 이상에서 시그널링된다.
일부 실시형태들에서, 비트스트림에서 코딩된 블록 벡터의 범위는 픽처 유형, 슬라이스 유형, 및 파티션 사이즈 중 하나 이상에 기초하여 제한된다. 게다가, 신택스 엘리먼트가 각각의 대응하는 픽처 유형, 슬라이스 유형, 및 파티션 사이즈에 대한 최대 블록 벡터 범위를 규정하기 위해 사용될 수도 있다. 예를 들어, 일부 실시형태들에서, 최대 블록 벡터 범위가 CRA, BLA, 및 IDR 픽처 유형들에 대해 100, 500, 및 1000 픽셀들과 각각 동일하다고 규정하기 위해 하나 이상의 신택스 엘리먼트들이 사용될 수도 있다. 이와 유사하게, 하나 이상의 신택스 엘리먼트들이 I 슬라이스들, B 슬라이스들, P 슬라이스들, 및 GPB 슬라이스들의 각각에 대한 최대 블록 벡터 범위를 규정하기 위해 사용되며, 하나 이상의 신택스 엘리먼트들이 4x4 픽셀들, 8x8 픽셀들, 16x16 픽셀들, 32x32 픽셀들, 및 64x64 픽셀들을 포함하는 파티션 사이즈들의 각각에 대한 최대 블록 벡터 범위를 규정하기 위해 사용된다.
일부 실시형태들에서, 탐색 영역 및 최대 블록 벡터 범위 신택스 엘리먼트들이 다음 파라미터 세트들 중 하나 이상에서 시그널링될 수도 있다: VPS, SPS, PPS, 비디오 사용성 정보 (VUI), 슬라이스 헤더 또는 그들의 개개의 확장판들.
B 슬라이스들에 대한 로컬 탐색 영역과 함께 JCTVC-P1005_v4 에 기초한 예시적인 사양 텍스트가 아래에서 설명된다. 본원에서 설명되는 실시형태들은 예시적인 사양 텍스트를 따른다.
디코딩 프로세스
예측 모드를 인트라-블록 복사할 때 블록 벡터 성분들에 대한 유도 프로세스가 설명된다.
이 프로세스에의 입력들은 다음과 같다:
현재의 픽처의 좌상부 루마 샘플에 대한, 현재의 루마 코딩 블록의 좌상부 샘플의 루마 로케이션 ( xCb, yCb ),
현재의 루마 코딩 블록의 사이즈를 규정하는 변수 log2CbSize.
이 프로세스의 출력은 블록 벡터들 bvIntra 의 (nCbS)x(nCbX) 어레이이다 [단일 벡터로서 지칭될 수도 있다].
변수들 nCbS, nPbSw, 및 nPbSh 는 다음과 같이 유도된다:
Figure 112016123265785-pct00006
Figure 112016123265785-pct00007
변수 BvpIntra[ compIdx ] 는 블록 벡터 예측자를 규정한다. 수평 블록 벡터 성분에는 compIdx = 0 이 할당되고 수직 블록 벡터 성분에는 compIdx = 1 이 할당된다.
PartMode 에 따라서, 변수 numPartitions 는 다음과 같이 유도된다:
- PartMode 가 PART_2Nx2N 과 동일하면, numPartitions 는 1 과 동일하게 설정된다.
- 그렇지 않고, PartMode 가 PART_2NxN 또는 PART_Nx2N 과 동일하면, numPartitions 는 2 와 동일하게 설정된다.
- 그렇지 않으면 (PartMode 가 PART_NxN 과 동일하면), numPartitions 는 4 와 동일하게 설정된다.
블록 벡터들 bvIntra 의 어레이는 값들 0..( numPartitions - 1 ) 에 걸쳐서 연속하는 변수 blkIdx 에 대해, 다음 순서로된 단계들에 의해 유도된다:
변수 blkInc 는 ( PartMode = = PART_2NxN ? 2 : 1 ) 과 동일하게 설정된다.
변수 xPb 는 xCb + nPbSw * ( blkIdx * blkInc % 2 ) 와 동일하게 설정된다.
변수 yPb 는 yCb + nPbSh * ( blkIdx / 2 ) 와 동일하게 설정된다
다음 순서로된 단계들이 값들 0..1 에 걸쳐서 연속하는 변수 compIdx 에 대해, 적용된다:
이 프로세스가 현재의 코딩 트리 유닛에 대해 호출된 횟수에 따라서, 다음이 적용된다:
이 프로세스가 현재의 코딩 트리 유닛에 대해 처음으로 호출되면, bvIntra[ xPb ][ yPb ][ compIdx ] 는 다음과 같이 유도된다:
bvIntra[ xPb ][ yPb ][ 0 ] = BvdIntra[ xPb ][ yPb ][ 0 ] - nCbS (8-25)
bvIntra[ xPb ][ yPb ][ 1 ] = BvdIntra[ xPb ][ yPb ][ 1 ] (8-25)
그렇지 않으면, bvIntra[ xPb ][ yPb ][ compIdx ] 는 다음과 같이 유도된다:
bvIntra[ xPb ][ yPb ][ 0 ]=BvdIntra[ xPb ][ yPb ][ 0 ] + BvpIntra[ 0 ] (8-25)
bvIntra[ xPb ][ yPb ][ 1 ]=BvdIntra[ xPb ][ yPb ][ 1 ] + BvpIntra[ 1 ] (8-25)
BvpIntra[ compIdx ] 의 값은 bvIntra[ xPb ][ yPb ][ compIdx ] 와 동일하게 업데이트된다.
디코딩 프로세스에서 추후 호출되는 변수들의 유도 프로세스들에서의 사용을 위해, 다음 할당들이 x = 0..nPbSw - 1 및 y = 0..nPbSh - 1 에 대해 이루어진다:
bvIntra[ xPb + x ][ yPb + y ][ compIdx ]=bvIntra[ xPb ][ yPb ][ compIdx ] (8-25)
다음 조건들의 모두가 참인 것이 비트스트림 순응성의 요구사항이다:
- B 슬라이스 유형에 대해, bvIntra[ xPb ][ yPb ][ 0 ] 의 값은 - ( xPb % CtbSizeY + 64 ) 보다 크거나 또는 동일하여야 한다.
- B 슬라이스 유형에 대해, bvIntra[ xPb ][ yPb ][ 1 ] 의 값은 - ( yPb % CtbSizeY ) 보다 크거나 또는 동일하여야 한다.
- z-스캔 순서 블록 이용가능성에 대한 유도 프로세스가 입력들로서, ( xCb, yCb ) 와 동일하게 설정된 ( xCurr, yCurr ) 및 ( xPb + bvIntra[ xPb ][ yPb ][ 0 ], yPb + bvIntra[ xPb ][ yPb ] [ 1 ] ) 과 동일하게 설정된 이웃하는 루마 로케이션 ( xNbY, yNbY ) 로 호출될 때, 출력은 참과 동일해야 한다.
- z-스캔 순서 블록 이용가능성에 대한 유도 프로세스가 입력들로서, ( xCb, yCb ) 와 동일하게 설정된 ( xCurr, yCurr ) 및 ( xPb + bvIntra[ xPb ][ yPb ][ 0 ] + nPbSw - 1, yPb + bvIntra [ xPb ][ yPb ][ 1 ] + nPbSh - 1 ) 과 동일하게 설정된 이웃하는 루마 로케이션 ( xNbY, yNbY ) 로 호출될 때, 출력은 참과 동일해야 한다.
- 다음 조건들 중 하나 또는 양자가 참이어야 한다:
- bvIntra[ xPb ][ yPb ][ 0 ] + nPbSw <= 0
- bvIntra[ xPb ][ yPb ][ 1 ] + nPbSh <= 0
도 7 은 비디오 데이터를 인코딩하는 프로세스 (700) 의 일 실시형태를 예시한다. 프로세스 (700) 는 복수의 인코딩된 비디오 픽처들을 발생시키기 위해 구현된다. 일부 양태들에서, 프로세스 (700) 는 도 1 에 나타낸 인코딩 디바이스 (104) 와 같은, 컴퓨팅 디바이스 또는 장치에 의해 수행될 수도 있다. 예를 들어, 컴퓨팅 디바이스 또는 장치는 인코더, 또는 프로세서, 마이크로프로세서, 마이크로컴퓨터, 또는 프로세스 (700) 의 단계들을 수행하도록 구성된 인코더의 다른 구성요소를 포함할 수도 있다.
프로세스 (700) 는 논리적 흐름도로서 예시되며, 이 흐름도의 동작은 하드웨어, 컴퓨터 명령들, 또는 이들의 조합으로 구현될 수 있는 동작들의 시퀀스를 나타낸다. 컴퓨터 명령들의 상황에서, 동작들은 하나 이상의 프로세서들에 의해 실행될 때, 인용된 동작들을 수행하는, 하나 이상의 컴퓨터-판독가능 저장 매체들 상에 저장된 컴퓨터-실행가능한 명령들을 나타낸다. 일반적으로, 컴퓨터-실행가능한 명령들은 루틴들, 프로그램들, 오브젝트들, 구성요소들, 데이터 구조들, 및 특정의 기능들을 수행하거나 또는 특정의 데이터 유형들을 구현하는 기타 등등을 포함한다. 동작들이 설명되는 순서는 한정으로 해석되도록 의도되지 않으며, 임의 개수의 설명된 동작들이 프로세스들을 구현하기 위해 임의의 순서로 및/또는 병렬로 결합될 수 있다.
게다가, 프로세스 (700) 는 실행가능한 명령들로 구성된 하나 이상의 컴퓨터 시스템들의 제어 하에서 수행될 수도 있으며, 하나 이상의 프로세서들 상에서, 하드웨어, 또는 이들의 조합들에 의해 일괄하여 실행하는 코드 (예컨대, 실행가능한 명령들, 하나 이상의 컴퓨터 프로그램들, 또는 하나 이상의 애플리케이션들) 로서 구현될 수도 있다. 위에서 언급한 바와 같이, 코드는 컴퓨터-판독가능 또는 머신-판독가능 저장 매체 상에, 예를 들어, 하나 이상의 프로세서들에 의해 실행가능한 복수의 명령들을 포함하는 컴퓨터 프로그램의 유형으로 저장될 수도 있다. 컴퓨터-판독가능 또는 머신-판독가능 저장 매체는 비일시적일 수도 있다.
702 에서, 프로세스 (700) 는 예측 유닛을 발생시키기 위해 픽처들 중 하나의 블록에 대해 인트라-픽처 예측을 수행하는 단계를 포함한다. 일부 실시형태들에서, 인트라-픽처 예측을 수행하는 단계는 코딩 트리 유닛 (CTU) 의 인트라-블록 복사 예측을 위한 참조 블록을 선택하는 단계를 포함하며, 여기서, 선택된 참조 블록은 복수의 인코딩된 블록들 중에서 선택되며, 양방향-예측으로 인코딩된 CTU 내 블록들은 참조 블록으로서의 선택으로부터 제외된다. 인트라-픽처 예측을 수행하는 단계는 또한 예측 유닛을 발생시키기 위해 참조 블록에 대해 인트라-블록 복사 예측을 수행하는 단계를 포함할 수도 있다.
704 에서, 프로세스 (700) 는 수행된 인트라-픽처 예측에 기초하여 예측 유닛을 인코딩하는 신택스 엘리먼트들을 발생시키는 단계를 포함한다.
일부 실시형태들에서, 프로세스 (700) 는 본원에서 설명된 다른 양태들을 포함한다. 예를 들어, 프로세스 (700) 는 예측 유닛 사이즈를 결정하는 단계를 포함할 수도 있으며, 여기서, 양방향-예측으로 인코딩된 블록들이 예측 유닛 사이즈가 임계치 미만인 것에 응답하여, 선택으로부터 적어도 부분적으로 제외된다. 일부 실시형태들에서, 프로세스 (700) 에서, 인터-예측으로 인코딩된 하나 이상의 블록들이 참조 블록으로서의 선택으로부터 제외된다. 예를 들어, 인터-예측으로 인코딩된 하나 이상의 블록들이 CTU 의 추가적인 블록들을 인코딩하기 위한 참조 블록으로서의 선택으로부터 제외될 수도 있다. 이러한 실시형태들에서, 프로세스는 또한 예측 유닛 사이즈를 결정하는 단계를 포함할 수도 있으며, 여기서, 인터-예측으로 인코딩된 블록들이 예측 유닛 사이즈가 임계치 미만인 것에 응답하여, 선택으로부터 적어도 부분적으로 제외된다.
일부 실시형태들에서, 프로세스 (700) 에서, 대용 참조 블록은 패딩 방식을 이용하여 발생된다. 일부 실시형태들에서, 인트라-블록 복사 예측을 수행하는 단계는 대용 블록을 선택된 참조 블록으로 이용하는 단계를 포함한다.
일부 실시형태들에서, 프로세스 (700) 는 CTU 가 양방향-예측에 의해 발생된 예측 블록을 가지고 있는지 여부를 결정하는 단계를 포함하며, 여기서, 양방향-예측으로 인코딩된 블록들이 CTU 가 양방향-예측에 의해 발생된 예측 블록을 가지는 것에 응답하여, 선택으로부터 적어도 부분적으로 제외된다. 이러한 실시형태들에서, 프로세스 (700) 는 또한 CTU 에 대한 양방향-예측에 의해 발생된 다량의 예측 블록들을 결정하는 단계, 및 예측 유닛 사이즈를 결정하는 단계를 포함할 수도 있다. 양방향-예측으로 인코딩된 블록들은 그후 CTU 가 임계치보다 큰 양방향-예측에 의해 발생된 다량의 예측 블록들을 가지는 것, 예측 유닛 사이즈가 임계치 미만인 것, 및 CTU 가 임계치보다 큰 양방향-예측에 의해 발생된 다량의 예측 블록들을 가지는 것과 예측 유닛 사이즈가 임계치 미만인 것 중 어느 것에 응답하여, 선택으로부터 제외될 수도 있다.
일부 실시형태들에서, 프로세스 (700) 는 적응적 모션 벡터 해상도 (AMVR) 를 수행하고 예측 유닛 사이즈를 결정하는 단계를 포함한다. 이러한 실시형태들에서, 양방향-예측으로 인코딩된 블록들은 예측 유닛 사이즈가 임계치 미만인 것, 및 AMVR 이 디스에이블된다는 표시를 수신하는 것의 양자의 조합에 응답하여, 선택으로부터 적어도 부분적으로 제외될 수도 있다. 일부 실시형태들에서, 조합은 상이한 참조 유닛들 및 상이한 모션 벡터들 중 적어도 하나를 가지는 인터-예측 양방향-예측을 더 포함한다.
일부 실시형태들에서, 프로세스 (700) 는 인코딩된 블록들을 포함하는 탐색 영역을 결정하는 단계를 포함하며, 여기서, 탐색 영역은 픽처 유형, 슬라이스 유형, 및 파티션 사이즈 중 적어도 하나에 적어도 부분적으로 기초하여 결정된다.
관심 영역 내 블록 벡터들의 분포에 관한 제한 사항.
캐시 사용을 향상시키기 위해 그리고 더 큰 탐색 범위들을 이용할 때 캐시 미스들을 감소시키기 위해, 블록 벡터 범위에 관한 일부 제한들이 적용될 수도 있다.
블록 벡터 범위 제한들이 개별적으로 또는 조합하여 적용될 수도 있다. 블록 벡터 범위 제한들에 있어서, 관심 영역은 한정되지 않으며, 예를 들어, CU, CTB, 최대 코딩 유닛 (LCU), 슬라이스, 타일, 또는 CU들, CTU들, CTB들, LCU들, 슬라이스들, 또는 타일들의 세트일 수도 있다.
일부 실시형태들에서, 블록 벡터들의 범위는 관심 영역 이내로 제한된다. 예를 들어, 블록 벡터들의 범위는 현재의 CU 내로 제한될 수도 있다. 일부 실시형태들에서, 상이한 관심 영역들은 상이한 블록 벡터 범위 제한들을 갖는다. 게다가, 신택스 엘리먼트가 각각의 관심 영역에 대한 블록 벡터 범위를 규정하기 위해 사용될 수도 있다.
일 예로서, 블록 벡터들의 범위들은 타일 내로 제한될 수도 있다. 따라서, 현재의 예측 유닛에 대한 예측 샘플들이 동일한 타일 내로부터 유래하도록 제한된다. 다른 이점들 중에서, 이 제한은 효율적인 병렬 프로세싱을 용이하게 한다. 일부 실시형태들에서, 블록 벡터들의 범위들은 슬라이스 내로 제한된다. 따라서, IBC 예측이 슬라이스 경계들을 횡단하지 않도록 제한된다.
일부 실시형태들에서, 관심 영역 내 임의의 2개의 블록 벡터들의 최대 차이가 제한된다. 예를 들어, 슬라이스 관심 영역 내 CU 가 특정의 사이즈의 블록 벡터를 가지면, 슬라이스 내 모든 다른 블록 벡터들은 특정의 사이즈의 미리 정의된 범위 이내로 제한된다. 게다가, 신택스 엘리먼트가 각각의 관심 영역에 대한 임의의 2개의 블록 벡터들의 최대 차이를 규정하기 위해 사용될 수도 있다.
사양 텍스트 및 신택스
일부 실시형태들에서, 블록 벡터 범위 및 최대 블록 벡터 차이 신택스 엘리먼트들이 다음 파라미터 세트들 중 하나 이상으로 시그널링될 수도 있다: VPS, SPS, PPS, 비디오 사용성 정보 (VUI), 슬라이스 헤더 또는 그들의 개개의 확장판들.
B 슬라이스들에 대한 로컬 탐색 영역과 함께 JCTVC-P1005_v4 에 기초한 예시적인 사양 텍스트가 아래에서 설명된다. 본원에서 설명되는 실시형태들은 예시적인 사양 텍스트를 따른다.
디코딩 프로세스
변수 BvIntra[ x0 ][ y0 ][ compIdx ] 는 예측 모드를 인트라-블록 복사하는데 사용될 벡터 성분을 규정한다. 어레이 인덱스들 x0, y0 는 픽처의 좌상부 루마 샘플에 대한 고려된 예측 블록의 좌상부 루마 샘플의 로케이션 (x0, y0 ) 을 규정한다. 변수 BvdispIntra[ x0 ][ y0 ] [ compIdx ] 는 로케이션 ( x0, y0 ) (예컨대, BvIntra[ x0 ][ y0 ][ compIdx ]) 및 로케이션 ( xi, yj ) (예컨대, BvIntra[ xi ][ yj ][ compIdx ]) 에 대한 예측 모드를 인트라-블록 복사하는데 사용될 벡터 성분 사이의 차이를 규정한다. 어레이 인덱스들 xi, yj 는 로케이션 ( xi, yj ) 및 ( x0, y0 ) 이 동일한 CTU 내에 있도록, 임의의 i, j 에 대해, 픽처의 좌상부 루마 샘플에 대한 고려된 예측 블록의 좌상부 루마 샘플의 로케이션 ( xi, yj ) 을 규정한다.
모든 i, j 에 대해, BvdispIntra[ xi ][ yj ][ compIdx ] 는 - 128 내지 128 를 포함한 범위 이내여야 한다. 수평 블록 벡터 성분에는 compIdx = 0 이 할당되고 수직 블록 벡터 성분에는 compIdx = 1 이 할당된다.
상기 사양에서, - 128 내지 128 를 포함한 범위는 예로서 사용되며, 범위의 실제 값은 상이한 값에 고정되거나 또는 시그널링될 수도 있다.
예시적인 시그널링 방법이 아래에 나타내어진다.
Figure 112016123265785-pct00008
log2_max_ctu_deltaBV_length_horizontallog2_max_ctu_deltaBV _length_vertical 은, 동일한 CTU 에 속하고 CVS 에서의 모든 픽처들에, 정수 루마 샘플 유닛들에서, 이용가능한 임의의 예측 유닛의 디코딩된 수평 및 수직 블록 벡터 성분 각각에 대한, 디코딩된 수평 및 수직 블록 벡터 성분의 최대 절대 차이 값을 각각 표시한다. n 의 값은 어떤 블록 벡터 성분의 차이 값도 정수 루마 샘플 변위의 유닛들에서, -2n 내지 2n - 1 을 포함한 범위 밖에 있지 않다고 가정한다. 범위 및 추론 값들은 결정될 수도 있다.
모든 i, j 에 대해, BvdispIntra[ xi ][ yj ][ compIdx ] 는 수평 및 수직 성분들에 대해 log2_max_ctu_deltaBV_length_horizontal 및 log2_max_ctu_deltaBV_length_vertical 로 규정된 바와 같은 범위 이내여야 한다. 수평 블록 벡터 성분에는 compIdx = 0 이 할당되고 수직 블록 벡터 성분에는 compIdx = 1 이 할당된다.
대안적으로, 범위는 각각의 compIdx (수평 및 수직 블록 벡터) 에 대해서 뿐만 아니라 루마 및 크로마 성분에 대해서 상이할 수도 있다. 대안적으로, 범위는 각각의 compIdx (수평 및 수직 블록 벡터) 에 대해서 뿐만 아니라 루마 및 크로마 성분에 대해서 상이할 수도 있다.
대안적으로, 범위는 CTU들, 슬라이스들, 타일들 등의 배수로서 시그널링될 수도 있다.
Figure 112016123265785-pct00009
Figure 112016123265785-pct00010
log2_max_BV_ctu_length_horizontallog2_max_BV_ctu_length _vertical 은, 동일한 CTU 에 속하고 CVS 에서의 모든 픽처들에, CTB 의 유닛들에서, 이용가능한 임의의 예측 유닛의 디코딩된 수평 및 수직 블록 벡터 성분 각각에 대한, 디코딩된 수평 및 수직 블록 벡터 성분의 최대 절대 차이 값을 각각 표시한다. n 의 값은 어떤 블록 벡터 성분의 차이 값도 CTB 변위의 유닛들에서, -N 내지 N 을 포함한 범위 밖에 있지 않다고 가정한다.
관심 영역 내 블록 벡터들의 개수에 관한 제한 사항
위에서 설명한 바와 같이, IBC 는 낮은 지연 P 경우에 대해 블록 벡터들의 최악의 경우 개수를 증가시킬 수도 있다. 적어도 HEVC 와 동일한 최악의 경우 복잡성을 유지하기 위해 또한 시스템 리소스들에 대한 부하를 감소시키기 위해 (예컨대, 다수의 예측 샘플 부하들을 감소시키기 위해), 일부 실시형태들은 추가적인 또는 대안적인 특징들을 포함한다.
예를 들어, 특정의 관심 영역 내 블록 벡터들의 개수는 특정의 관심 영역에 대한 HEVC 의 블록 벡터들의 최악의 경우 개수 미만이거나 또는 동일하게 제한될 수도 있다. 예를 들어, 관심 영역 내 블록 벡터들의 개수는 모든 블록들은 동일한 관심 영역에 대해 Nx2N/2NxN 으로서 코딩되면 존재할 블록 벡터들의 최악의 경우 개수 미만이거나 또는 동일하게 제한될 수도 있다. 일부 실시형태들에서, IBC 모드는 비 I-슬라이스들의 가장 작은 파티션 (NxN) 에 제한될 수도 있다.
IBC 모드의 블록 벡터 개수 제한들 및 제한 사항은 개별적으로 또는 조합하여 적용될 수도 있다. IBC 의 블록 벡터 개수 제한들 및 제한 사항에서, 관심 영역은 한정되지 않으며, 예를 들어, CU, CTB, 최대 코딩 유닛 (LCU), 슬라이스, 타일, 또는 CU들, CTU들, CTB들, LCU들, 슬라이스들, 또는 타일들의 세트일 수도 있다.
제한 (constraint) I-슬라이스
일부 실시형태들에서, 블록 벡터들의 범위들은 슬라이스 내로 제한될 수도 있다. 즉, IBC 예측은 슬라이스 경계들을 횡단하지 않는다.
일부 실시형태들에서, 새로운 슬라이스 유형이 시그널링될 수도 있다. 새로운 슬라이스 유형에 대해, 블록 벡터들의 범위들은 슬라이스 내로 제한된다. 그 결과, IBC 예측이 새로운 슬라이스 유형의 슬라이스들에 대한 슬라이스 경계들을 횡단하지 않는다.
일부 실시형태들에서, 플래그는 블록 벡터들의 범위들이 슬라이스들 내로 제한된다고 규정할 수도 있다. 플래그의 상태의 결과로서, IBC 예측은 슬라이스 경계들을 횡단하지 않는다. 플래그는 예를 들어, 다음 파라미터 세트들 중 하나 이상에서 시그널링될 수도 있다: VPS, SPS, PPS, 비디오 사용성 정보 (VUI), 슬라이스 헤더 또는 그들의 개개의 확장판들.
본원에서 설명되는 기법들 및 시스템들을 이용하여, 인트라-블록 복사 기법들이 감소된 메모리 대역폭 및 사이즈 요구사항들으로 수행된다. 그 결과, 메모리 대역폭 효율이 향상되고, 최악의 경우 메모리 액세스들이 제한되며, 인트라-블록 복사의 다른 양태들이 향상된다.
본원에서 설명되는 코딩 기법들은 예시적인 비디오 인코딩 및 디코딩 시스템 (예컨대, 시스템 (100)) 에서 구현될 수도 있다. 시스템은 목적지 디바이스에 의해 추후에 디코딩될 인코딩된 비디오 데이터를 제공하는 소스 디바이스를 포함한다. 특히, 소스 디바이스는 비디오 데이터를 목적지 디바이스에 컴퓨터-판독가능 매체를 통해서 제공한다. 소스 디바이스 및 목적지 디바이스는 데스크탑 컴퓨터들, 노트북 (즉, 랩탑) 컴퓨터들, 태블릿 컴퓨터들, 셋-탑 박스들, 소위 "스마트" 폰들과 같은 전화기 핸드셋들, 소위 "스마트" 패드들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 비디오 스트리밍 디바이스 등을 포함한, 광범위한 디바이스들 중 임의의 디바이스를 포함할 수도 있다. 일부 경우들에서, 소스 디바이스 및 목적지 디바이스는 무선 통신용으로 탑재될 수도 있다.
목적지 디바이스는 디코딩될 인코딩된 비디오 데이터를 컴퓨터-판독가능 매체를 통해서 수신할 수도 있다. 컴퓨터-판독가능 매체는 인코딩된 비디오 데이터를 소스 디바이스로부터 목적지 디바이스로 이동시킬 수 있는 임의 종류의 매체 또는 디바이스를 포함할 수도 있다. 일 예에서, 컴퓨터-판독가능 매체는 소스 디바이스로 하여금 인코딩된 비디오 데이터를 직접 목적지 디바이스로 실시간으로 송신할 수 있게 하는 통신 매체를 포함할 수도 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라서 변조되어 목적지 디바이스로 송신될 수도 있다. 통신 매체는 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적인 송신 라인들과 같은, 임의의 무선 또는 유선 통신 매체를 포함할 수도 있다. 통신 매체는 근거리 네트워크, 광역 네트워크, 또는 글로벌 네트워크, 예컨대 인터넷과 같은 패킷-기반 네트워크의 일부를 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스로부터 목적지 디바이스로 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
일부 예들에서, 인코딩된 데이터는 출력 인터페이스로부터 저장 디바이스로 출력될 수도 있다. 이와 유사하게, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스로부터 액세스될 수도 있다. 저장 디바이스는 하드 드라이브, Blu-ray 디스크들, DVD들, CD-ROM들, 플래시 메모리, 휘발성 또는 비-휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체들과 같은 다양한 분산된 또는 로컬 액세스되는 데이터 저장 매체들 중 임의의 데이터 저장 매체를 포함할 수도 있다. 추가 예에서, 저장 디바이스는 소스 디바이스에 의해 발생된 인코딩된 비디오를 저장할 수도 있는 파일 서버 또는 또 다른 중간 저장 디바이스에 대응할 수도 있다. 목적지 디바이스는 저장된 비디오 데이터에 저장 디바이스로부터 스트리밍 또는 다운로드를 통해서 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 목적지 디바이스로 송신하는 것이 가능한 임의 종류의 서버일 수도 있다. 예시적인 파일 서버들은 웹 서버 (예컨대, 웹사이트용), FTP 서버, NAS (network attached storage) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스는 인터넷 접속을 포함한, 임의의 표준 데이터 접속을 통해서, 인코딩된 비디오 데이터에 액세스할 수도 있다. 이것은 파일 서버 상에 저장되는 인코딩된 비디오 데이터에 액세스하는데 적합한, 무선 채널 (예컨대, Wi-Fi 접속), 유선 접속 (예컨대, DSL, 케이블 모뎀 등), 또는 양쪽의 조합을 포함할 수도 있다. 저장 디바이스로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이들의 조합일 수도 있다.
본 개시물의 기법들은 무선 애플리케이션들 또는 설정들에 반드시 한정되지는 않는다. 이 기법들은 오버-디-에어 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 인터넷 스트리밍 비디오 송신들, 예컨대 HTTP 를 통한 동적 적응 스트리밍 (DASH), 데이터 저장 매체 상에 인코딩된 디지털 비디오, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션들과 같은, 다양한 멀티미디어 애플리케이션들 중 임의의 애플리케이션의 지원 하에 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 시스템은 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 비디오 전화 통신과 같은, 지원 애플리케이션들로의 단방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.
일 예에서, 소스 디바이스는 비디오 소스, 비디오 인코더, 및 출력 인터페이스를 포함한다. 목적지 디바이스는 입력 인터페이스, 비디오 디코더, 및 디스플레이 디바이스를 포함한다. 소스 디바이스의 비디오 인코더는 본원에서 개시된 기법들을 적용하도록 구성될 수도 있다. 다른 예들에서, 소스 디바이스 및 목적지 디바이스는 다른 구성요소들 또는 배열들을 포함할 수도 있다. 예를 들어, 소스 디바이스는 비디오 데이터를 외부 카메라와 같은 외부 비디오 소스로부터 수신할 수도 있다. 이와 유사하게, 목적지 디바이스는 통합된 디스플레이 디바이스를 포함하는 대신, 외부 디스플레이 디바이스와 인터페이스할 수도 있다.
상기 예시적인 시스템은 단지 일 예이다. 비디오 데이터를 병렬로 프로세싱하는 기법들은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수도 있다. 일반적으로 본 개시물의 기법들은 비디오 인코딩 디바이스에 의해 수행되지만, 그 기법들은 또한 "코덱" 으로서 일반적으로 지칭되는, 비디오 인코더/디코더에 의해 수행될 수도 있다. 더욱이, 본 개시물의 기법들은 또한 비디오 프리프로세서에 의해 수행될 수도 있다. 소스 디바이스 및 목적지 디바이스는 소스 디바이스가 목적지 디바이스로의 송신을 위해 코딩된 비디오 데이터를 발생시키는 단지 그러한 코딩 디바이스들의 예들일 뿐이다. 일부 예들에서, 소스 디바이스 및 목적지 디바이스는 그 디바이스들 각각이 비디오 인코딩 및 디코딩 구성요소들을 포함하도록, 실질적으로 대칭적 방식으로 동작할 수도 있다. 그러므로, 예시적인 시스템들은 비디오 디바이스들 사이에, 예컨대, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 또는 비디오 전화 통신을 위해, 단방향 또는 양방향 비디오 송신을 지원할 수도 있다.
비디오 소스는 비디오 카메라와 같은 비디오 캡쳐 디바이스, 이전에 캡쳐된 비디오를 포함하는 비디오 아카이브, 및/또는 비디오 콘텐츠 제공자로부터 비디오를 수신하는 비디오 공급 인터페이스를 포함할 수도 있다. 추가 대안적인 예로서, 비디오 소스는 컴퓨터 그래픽스-기반의 데이터를 소스 비디오, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터 발생된 비디오의 조합으로서 발생시킬 수도 있다. 어떤 경우, 비디오 소스가 비디오 카메라이면, 소스 디바이스 및 목적지 디바이스는 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 그러나, 위에서 언급한 바와 같이, 본 개시물에서 설명하는 기법들은 비디오 코딩에 일반적으로 적용가능할 수도 있으며, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다. 각 경우, 캡쳐되거나, 사전-캡쳐되거나, 또는 컴퓨터-발생된 비디오는 비디오 인코더에 의해 인코딩될 수도 있다. 인코딩된 비디오 정보는 그후 출력 인터페이스에 의해 컴퓨터-판독가능 매체 상으로 출력될 수도 있다.
언급한 바와 같이, 컴퓨터-판독가능 매체는 무선 브로드캐스트 또는 유선 네트워크 송신과 같은 일시적 매체, 또는 하드 디스크, 플래시 드라이브, 컴팩트 디스크, 디지털 비디오 디스크, Blu-ray 디스크, 또는 다른 컴퓨터-판독가능 매체들과 같은 저장 매체들 (즉, 비일시적 저장 매체들) 을 포함할 수도 있다. 일부 예들에서, 네트워크 서버 (미도시) 는 소스 디바이스로부터, 인코딩된 비디오 데이터를 수신하고, 인코딩된 비디오 데이터를 목적지 디바이스로, 예컨대, 네트워크 송신을 통해서 제공할 수도 있다. 이와 유사하게, 디스크 스탬핑 설비와 같은 매체 생산 설비의 컴퓨팅 디바이스는 인코딩된 비디오 데이터를 소스 디바이스로부터 수신하고 그 인코딩된 비디오 데이터를 포함하는 디스크를 제조할 수도 있다. 따라서, 컴퓨터-판독가능 매체는 여러 예들에서, 여러 형태들의 하나 이상의 컴퓨터-판독가능 매체들을 포함하는 것으로 이해될 수도 있다.
목적지 디바이스의 입력 인터페이스는 컴퓨터-판독가능 매체로부터 정보를 수신한다. 컴퓨터-판독가능 매체의 정보는 블록들 및 다른 코딩된 유닛들, 예컨대, 픽처들의 그룹 (GOP) 의 특성들 및/또는 프로세싱을 기술하는 신택스 엘리먼트들을 포함하는, 비디오 인코더에 의해 정의되고 또한 비디오 디코더에 의해 사용되는 신택스 정보를 포함할 수도 있다. 디스플레이 디바이스는 그 디코딩된 비디오 데이터를 사용자에게 디스플레이하며, 음극선관 (CRT), 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 또 다른 유형의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중 임의의 디바이스를 포함할 수도 있다. 여러 본 발명의 실시형태들이 설명되었다.
인코딩 디바이스 (104) 및 디코딩 디바이스 (112) 의 구체적인 세부내용들이 도 8 및 도 9 에 각각 도시된다. 도 8 은 본 개시물에서 설명하는 기법들 중 하나 이상을 구현할 수도 있는 예시적인 비디오 인코딩 디바이스 (104) 를 예시하는 블록도이다. 인코딩 디바이스 (104) 는 예를 들어, 본원에서 설명되는 신택스 구조들 (예컨대, VPS, SPS, PPS, 또는 다른 신택스 엘리먼트들의 신택스 구조들) 을 발생시킬 수도 있다. 인코딩 디바이스 (104) 는 비디오 슬라이스들 내 비디오 블록들의 인트라-예측 및 인터-예측 코딩을 수행할 수도 있다. 앞에서 설명한 바와 같이, 인트라-코딩은 주어진 비디오 프레임 또는 픽처 내 공간 리던던시를 감소시키거나 또는 제거하기 위해, 공간 예측에 적어도 부분적으로 의존한다. 인터-코딩은 비디오 시퀀스의 인접한 또는 둘러싼 프레임들 또는 픽처들 내 시간 리던던시를 감소시키거나 또는 제거하기 위해, 시간 예측에 적어도 부분적으로 의존한다. 인트라-모드 (I 모드) 는 여러 공간 기반의 압축 모드들 중 임의의 압축 모드를 지칭할 수도 있다. 단방향 예측 (P 모드) 또는 양방향-예측 (B 모드) 과 같은 인터-모드들은 여러 시간-기반의 압축 모드들 중 임의의 모드를 지칭할 수도 있다.
인코딩 디바이스 (104) 는 파티셔닝 유닛 (35), 예측 프로세싱 유닛 (41), 필터 유닛 (63), 픽처 메모리 (64), 합산기 (50), 변환 프로세싱 유닛 (52), 양자화 유닛 (54), 및 엔트로피 인코딩 유닛 (56) 을 포함한다. 예측 프로세싱 유닛 (41) 은 모션 추정 유닛 (42), 모션 보상 유닛 (44), 및 인트라-예측 프로세싱 유닛 (46) 을 포함한다. 비디오 블록 복원을 위해, 인코딩 디바이스 (104) 는 또한 역양자화 유닛 (58), 역변환 프로세싱 유닛 (60), 및 합산기 (62) 를 포함한다. 필터 유닛 (63) 은 디블록킹 필터, 적응 루프 필터 (ALF), 및 샘플 적응 오프셋 (SAO) 필터와 같은, 하나 이상의 루프 필터들을 나타내도록 의도된다. 필터 유닛 (63) 이 도 8 에 루프 필터인 것으로 도시되지만, 다른 구성들에서는, 필터 유닛 (63) 은 사후 루프 필터로서 구현될 수도 있다. 사후 프로세싱 디바이스 (57) 는 인코딩 디바이스 (104) 에 의해 발생된 인코딩된 비디오 데이터에 대해 추가적인 프로세싱을 수행할 수도 있다. 본 개시물의 기법들은 일부 인스턴스들에서, 인코딩 디바이스 (104) 에 의해 구현될 수도 있다. 다른 경우, 그러나, 본 개시물의 기법들 중 하나 이상의 기법들은 사후 프로세싱 디바이스 (57) 에 의해 구현될 수도 있다.
도 8 에 나타낸 바와 같이, 인코딩 디바이스 (104) 는 비디오 데이터를 수신하고, 파티셔닝 유닛 (35) 은 데이터를 비디오 블록들로 파티셔닝한다. 파티셔닝은 또한 슬라이스들, 슬라이스 세그먼트, 타일들, 또는 다른 더 큰 유닛들 뿐만 아니라, 예컨대, LCU들 및 CU들의 쿼드트리 구조에 따라서 파티셔닝하는 비디오 블록으로 파티셔닝하는 것을 포함할 수도 있다. 인코딩 디바이스 (104) 는 일반적으로 인코딩되는 비디오 슬라이스 내 비디오 블록들을 인코딩하는 구성요소들을 예시한다. 슬라이스는 다수의 비디오 블록들로 (그리고, 아마도, 타일들로서 지칭되는 비디오 블록들의 세트들로) 분할될 수도 있다. 예측 프로세싱 유닛 (41) 은 에러 결과들 (예컨대, 코딩 레이트 및 왜곡의 레벨 등) 에 기초하여, 현재의 비디오 블록에 대해, 복수의 인트라-예측 코딩 모드들 중 하나 또는 복수의 인터-예측 코딩 모드들 중 하나와 같은, 복수의 가능한 코딩 모드들 중 하나를 선택할 수도 있다. 예측 프로세싱 유닛 (41) 은 최종 인트라- 또는 인터-코딩된 블록을, 합산기 (50) 에 제공하여 잔차 블록 데이터를 발생하고, 그리고 합산기 (62) 에 제공하여, 참조 픽처로서 사용하기 위한 인코딩된 블록을 복원할 수도 있다.
예측 프로세싱 유닛 (41) 내의 인트라 예측 프로세싱 유닛 (46) 은 코딩되는 현재의 블록과 동일한 프레임 또는 슬라이스에서의 하나 이상의 이웃하는 블록들에 대해, 현재의 비디오 블록의 인트라-예측 코딩을 수행하여, 공간 압축을 제공할 수도 있다. 예측 프로세싱 유닛 (41) 내 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 하나 이상의 참조 픽처들에서의 하나 이상의 예측 블록들에 대해, 현재의 비디오 블록의 인터-예측 코딩을 수행하여, 시간 압축을 제공한다.
모션 추정 유닛 (42) 은 비디오 시퀀스에 대한 미리 결정된 패턴에 따라서 비디오 슬라이스에 대한 인터-예측 모드를 결정하도록 구성될 수도 있다. 미리 결정된 패턴은 시퀀스에서의 비디오 슬라이스들을 P 슬라이스들, B 슬라이스들, 또는 GPB 슬라이스들로서 지정될 수도 있다. 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 고도로 통합될 수도 있지만, 개념적인 목적들을 위해 별개로 예시된다. 모션 추정 유닛 (42) 에 의해 수행되는 모션 추정은 모션 벡터들을 발생하는 프로세스이며, 이 프로세스는 비디오 블록들에 대한 모션을 추정한다. 모션 벡터는, 예를 들어, 참조 픽처 내 예측 블록에 대한, 현재의 비디오 프레임 또는 픽처 내 비디오 블록의 예측 유닛 (PU) 의 변위를 나타낼 수도 있다.
예측 블록은 픽셀 차이의 관점에서 코딩되는 비디오 블록의 PU 에 가깝게 매칭하는 것으로 발견되는 블록이며, SAD, SSD, 또는 다른 차이 메트릭들에 의해 결정될 수도 있다. 일부 예들에서, 인코딩 디바이스 (104) 는 픽처 메모리 (64) 에 저장된 참조 픽처들의 서브-정수 픽셀 위치들에 대한 값들을 계산할 수도 있다. 예를 들어, 인코딩 디바이스 (104) 는 참조 픽처의 1/4 픽셀 위치들, 1/8 픽셀 위치들, 또는 다른 분수 픽셀 위치들의 값들을 내삽할 수도 있다. 따라서, 모션 추정 유닛 (42) 은 풀 픽셀 위치들 및 분수 픽셀 위치들에 대해, 모션 탐색을 수행하고, 분수 픽셀 정밀도를 가진 모션 벡터를 출력할 수도 있다.
모션 추정 유닛 (42) 은 PU 의 위치를 참조 픽처의 예측 블록의 위치와 비교함으로써 인터-코딩된 슬라이스에서의 비디오 블록의 PU 에 대한 모션 벡터를 계산한다. 참조 픽처는 제 1 참조 픽처 리스트 (List 0) 또는 제 2 참조 픽처 리스트 (List 1) 로부터 선택될 수도 있으며, 이 리스트들 각각은 픽처 메모리 (64) 에 저장된 하나 이상의 참조 픽처들을 식별한다. 모션 추정 유닛 (42) 은 그 계산된 모션 벡터를 엔트로피 인코딩 유닛 (56) 및 모션 보상 유닛 (44) 으로 전송한다.
모션 보상 유닛 (44) 에 의해 수행되는 모션 보상은 가능한 한, 서브-픽셀 정밀도까지 내삽들을 수행함으로써, 모션 추정에 의해 결정된 모션 벡터에 기초하여 예측 블록을 페칭하거나 또는 발생시키는 것을 수반할 수도 있다. 현재의 비디오 블록의 PU 에 대한 모션 벡터를 수신하자 마자, 모션 보상 유닛 (44) 은 모션 벡터가 참조 픽처 리스트에서 가리키는 예측 블록을 로케이트할 수도 있다. 인코딩 디바이스 (104) 는 코딩중인 현재의 비디오 블록의 픽셀 값들로부터 예측 블록의 픽셀 값들을 감산하여 픽셀 차이 값들을 형성함으로써 잔차 비디오 블록을 형성한다. 픽셀 차이 값들은 블록에 대한 잔차 데이터를 형성하며, 루마 및 크로마 차이 성분들 양쪽을 포함할 수도 있다. 합산기 (50) 는 이 감산 연산을 수행하는 구성요소 또는 구성요소들을 나타낸다. 모션 보상 유닛 (44) 은 또한 비디오 슬라이스의 비디오 블록들을 디코딩할 때에 디코딩 디바이스 (112) 에 의한 사용을 위해 비디오 블록들 및 비디오 슬라이스와 연관되는 신택스 엘리먼트들을 발생시킬 수도 있다.
인트라-예측 프로세싱 유닛 (46) 은 위에서 설명한 바와 같이, 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 수행되는 인터-예측에 대한 대안으로서, 현재의 블록을 인트라-예측할 수도 있다. 특히, 인트라-예측 프로세싱 유닛 (46) 은 현재의 블록을 인코딩하는데 사용할 인트라-예측 모드를 결정할 수도 있다. 일부 예들에서, 인트라-예측 프로세싱 유닛 (46) 은 예컨대, 별개의 인코딩 과정들 동안 여러 인트라-예측 모드들을 이용하여 현재의 블록을 인코딩할 수도 있으며, 인트라-예측 프로세싱 유닛 (46) 은 테스트된 모드들로부터 사용할 적합한 인트라-예측 모드를 선택할 수도 있다. 예를 들어, 인트라-예측 프로세싱 유닛 (46) 은 여러 테스트된 인트라-예측 모드들에 대한 레이트-왜곡 분석을 이용하여 레이트-왜곡 값들을 계산할 수도 있으며, 그 테스트된 모드들 중에서 최상의 레이트-왜곡 특성들을 갖는 인트라-예측 모드를 선택할 수도 있다. 레이트-왜곡 분석은 일반적으로 인코딩된 블록과 그 인코딩된 블록을 발생하기 위해 인코딩되었던 원래의 미인코딩된 블록 사이의 왜곡의 양 (또는, 에러) 뿐만 아니라, 그 인코딩된 블록을 발생하는데 사용되는 비트 레이트 (즉, 비트수) 를 결정한다. 인트라-예측 프로세싱 유닛 (46) 은 여러 인코딩된 블록들에 대한 왜곡들 및 레이트들로부터 비율들 (ratios) 을 계산하여, 어느 인트라-예측 모드가 그 블록에 대해 최상의 레이트-왜곡 값을 나타내는 지를 결정할 수도 있다.
어쨌든, 블록에 대한 인트라-예측 모드를 선택한 후, 인트라-예측 프로세싱 유닛 (46) 은 그 블록에 대한 선택된 인트라-예측 모드를 나타내는 정보를 엔트로피 인코딩 유닛 (56) 에 제공할 수도 있다. 엔트로피 인코딩 유닛 (56) 은 그 선택된 인트라-예측 모드를 나타내는 정보를 인코딩할 수도 있다. 인코딩 디바이스 (104) 는 송신된 비트스트림 구성 데이터에, 여러 블록들에 대한 컨텍스트를 인코딩하는 정의들 뿐만 아니라, 가장 가능성있는 인트라-예측 모드의 표시들, 인트라-예측 모드 인덱스 테이블, 및 컨텍스트들의 각각에 사용할 수정된 인트라-예측 모드 인덱스 테이블을 포함시킬 수도 있다. 비트스트림 구성 데이터는 복수의 인트라-예측 모드 인덱스 테이블들 및 복수의 수정된 인트라-예측 모드 인덱스 테이블들 (또한, 코드워드 맵핑 테이블들로서 지칭됨) 을 포함할 수도 있다.
예측 프로세싱 유닛 (41) 이 현재의 비디오 블록에 대한 예측 블록을 인터-예측 또는 인트라-예측을 통해서 발생시킨 후, 인코딩 디바이스 (104) 는 현재의 비디오 블록으로부터 예측 블록을 감산함으로써 잔차 비디오 블록을 형성한다. 잔차 블록에서의 잔차 비디오 데이터는 하나 이상의 TU들에 포함되어, 변환 프로세싱 유닛 (52) 에 적용될 수도 있다. 변환 프로세싱 유닛 (52) 은 이산 코사인 변환 (DCT) 또는 개념적으로 유사한 변환과 같은 변환을 이용하여 잔차 비디오 데이터를 잔차 변환 계수들로 변환한다. 변환 프로세싱 유닛 (52) 은 잔차 비디오 데이터를 픽셀 도메인으로부터 주파수 도메인과 같은 변환 도메인으로 변환할 수도 있다.
변환 프로세싱 유닛 (52) 은 최종 변환 계수들을 양자화 유닛 (54) 으로 전송할 수도 있다. 양자화 유닛 (54) 은 비트 레이트를 추가로 감소시키기 위해 변환 계수들을 양자화한다. 양자화 프로세스는 그 계수들의 일부 또는 모두와 연관되는 비트 심도를 감소시킬 수도 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 변경될 수도 있다. 일부 예들에서, 양자화 유닛 (54) 은 그후 양자화된 변환 계수들을 포함하는 매트릭스의 스캐닝을 수행할 수도 있다. 이의 대안으로, 엔트로피 인코딩 유닛 (56) 이 그 스캐닝을 수행할 수도 있다.
양자화 이후, 엔트로피 인코딩 유닛 (56) 은 양자화된 변환 계수들을 엔트로피 인코딩한다. 예를 들어, 엔트로피 인코딩 유닛 (56) 은 컨텍스트 적응 가변 길이 코딩 (CAVLC), 컨텍스트 적응 2진 산술 코딩 (CABAC), 신택스-기반 컨텍스트-적응 2진 산술 코딩 (SBAC), 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩 또는 또 다른 엔트로피 인코딩 기법을 수행할 수도 있다. 엔트로피 인코딩 유닛 (56) 에 의한 엔트로피 인코딩에 뒤이어서, 인코딩된 비트스트림은 디코딩 디바이스 (112) 로 송신되거나, 또는 디코딩 디바이스 (112) 에 의한 추후 송신 또는 취출을 위해 아카이브될 수도 있다. 엔트로피 인코딩 유닛 (56) 은 또한 코딩중인 현재의 비디오 슬라이스에 대한 모션 벡터들 및 다른 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다.
역양자화 유닛 (58) 및 역변환 프로세싱 유닛 (60) 은 역양자화 및 역변환을 각각 적용하여, 참조 픽처의 참조 블록으로 추후 사용을 위해 픽셀 도메인에서 잔차 블록을 복원한다. 모션 보상 유닛 (44) 은 잔차 블록을 참조 픽처 리스트 내 참조 픽처들 중 하나의 예측 블록에 가산함으로써 참조 블록을 계산할 수도 있다. 모션 보상 유닛 (44) 은 또한 하나 이상의 내삽 필터들을 그 복원된 잔차 블록에 적용하여, 모션 추정에 사용하기 위한 서브-정수 픽셀 값들을 계산할 수도 있다. 합산기 (62) 는 복원된 잔차 블록을 모션 보상 유닛 (44) 에 의해 발생되는 모션 보상된 예측 블록에 가산하여, 픽처 메모리 (64) 에의 저장을 위한 참조 블록을 발생한다. 참조 블록은 후속 비디오 프레임 또는 픽처에서 블록을 인터-예측하기 위해 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 참조 블록으로서 사용될 수도 있다.
이와 같이, 도 8 의 인코딩 디바이스 (104) 는 인코딩된 비디오 비트스트림에 대한 신택스를 발생시키도록 구성된 비디오 인코더의 일 예를 나타낸다. 인코딩 디바이스 (104) 는 예를 들어, 위에서 설명한 바와 같이 VPS, SPS, 및 PPS 파라미터 세트들을 발생시킬 수도 있다. 인코딩 디바이스 (104) 는 도 4, 도 6 및 도 8 에 대해 위에서 설명된 프로세스들을 포함한, 본원에서 설명되는 기법들 중 임의의 기법을 수행할 수도 있다. 본 개시물의 기법들은 일반적으로 인코딩 디바이스 (104) 에 대해 설명되었지만, 위에서 언급한 바와 같이, 본 개시물의 기법들의 일부는 또한 사후 프로세싱 디바이스 (57) 에 의해 구현될 수도 있다.
도 9 는 예시적인 디코딩 디바이스 (112) 를 예시하는 블록도이다. 디코딩 디바이스 (112) 는 엔트로피 디코딩 유닛 (80), 예측 프로세싱 유닛 (81), 역양자화 유닛 (86), 역변환 프로세싱 유닛 (88), 합산기 (90), 필터 유닛 (91), 및 픽처 메모리 (92) 를 포함한다. 예측 프로세싱 유닛 (81) 은 모션 보상 유닛 (82) 및 인트라 예측 프로세싱 유닛 (84) 을 포함한다. 디코딩 디바이스 (112) 는 일부 예들에서, 도 8 로부터 인코딩 디바이스 (104) 에 대해 설명된 인코딩 과정과는 일반적으로 반대인 디코딩 과정을 수행할 수도 있다.
디코딩 프로세스 동안, 디코딩 디바이스 (112) 는 인코딩 디바이스 (104) 로부터 전송된, 인코딩된 비디오 슬라이스의 비디오 블록들 및 연관되는 신택스 엘리먼트들을 나타내는 인코딩된 비디오 비트스트림을 수신한다. 일부 실시형태들에서, 디코딩 디바이스 (112) 는 인코딩 디바이스 (104) 로부터, 인코딩된 비디오 비트스트림을 수신할 수도 있다. 일부 실시형태들에서, 디코딩 디바이스 (112) 는 네트워크 엔터티 (79), 예컨대 서버, 미디어-인지 네트워크 엘리먼트 (MANE), 비디오 에디터/스플라이서, 또는 위에서 설명된 기법들 중 하나 이상의 기법들을 구현하도록 구성된 다른 이러한 디바이스로부터, 인코딩된 비디오 비트스트림을 수신할 수도 있다. 네트워크 엔터티 (79) 는 인코딩 디바이스 (104) 를 포함하거나 또는 포함하지 않을 수도 있다. 본 개시물에서 설명하는 기법들 중 일부는 네트워크 엔터티 (79) 가 인코딩된 비디오 비트스트림을 디코딩 디바이스 (112) 로 송신하기 전에 네트워크 엔터티 (79) 에 의해 구현될 수도 있다. 일부 비디오 디코딩 시스템들에서, 네트워크 엔터티 (79) 및 디코딩 디바이스 (112) 는 별개의 디바이스들의 부분들일 수도 있지만, 다른 경우, 네트워크 엔터티 (79) 에 대해 설명된 기능은 디코딩 디바이스 (112) 를 포함하는 동일한 디바이스에 의해 수행될 수도 있다.
디코딩 디바이스 (112) 의 엔트로피 디코딩 유닛 (80) 은 비트스트림을 엔트로피 디코딩하여, 양자화된 계수들, 모션 벡터들, 및 다른 신택스 엘리먼트들을 발생한다. 엔트로피 디코딩 유닛 (80) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 예측 프로세싱 유닛 (81) 으로 포워딩한다. 디코딩 디바이스 (112) 는 신택스 엘리먼트들을 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 수신할 수도 있다. 엔트로피 디코딩 유닛 (80) 은 VPS, SPS, 및 PPS 와 같은, 하나 이상의 파라미터 세트들에서의 고정-길이 신택스 엘리먼트들 및 변수-길이 신택스 엘리먼트들 양쪽을 프로세싱하여 파싱할 수도 있다.
비디오 슬라이스가 인트라-코딩된 (I) 슬라이스로서 코딩될 때, 예측 프로세싱 유닛 (81) 의 인트라 예측 프로세싱 유닛 (84) 은 시그널링된 인트라-예측 모드 및 현재의 프레임 또는 픽처의 이전에 디코딩된 블록들로부터의 데이터에 기초하여, 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 데이터를 발생할 수도 있다. 비디오 프레임이 인터-코딩된 (즉, B, P 또는 GPB) 슬라이스로서 코딩될 때, 예측 프로세싱 유닛 (81) 의 모션 보상 유닛 (82) 은 엔트로피 디코딩 유닛 (80) 으로부터 수신된 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여, 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 블록들을 발생한다. 예측 블록들은 참조 픽처 리스트 내 참조 픽처들 중 하나로부터 발생될 수도 있다. 비디오 디코더 (30) 는 디폴트 구성 기법들을 이용하여, 픽처 메모리 (92) 에 저장된 참조 픽처들에 기초하여, 참조 프레임 리스트들, 즉, List 0 및 List 1 을 구성할 수도 있다.
모션 보상 유닛 (82) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 파싱하여 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 그리고, 그 예측 정보를 이용하여, 디코딩중인 현재의 비디오 블록에 대한 예측 블록들을 발생한다. 예를 들어, 모션 보상 유닛 (82) 은 현재의 비디오 슬라이스에서의 비디오 블록들을 디코딩하기 위해, 파라미터 세트에서의 하나 이상의 신택스 엘리먼트들을 이용하여, 비디오 슬라이스의 비디오 블록들을 코딩하는 사용되는 예측 모드 (예컨대, 인트라- 또는 인터-예측), 인터-예측 슬라이스 유형 (예컨대, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스), 슬라이스에 대한 참조 픽처 리스트들 중 하나 이상에 대한 구성 정보, 슬라이스의 각각의 인터-인코딩된 비디오 블록에 대한 모션 벡터들, 슬라이스의 각각의 인터-코딩된 비디오 블록에 대한 인터-예측 상태, 및 다른 정보를 결정할 수도 있다.
모션 보상 유닛 (82) 은 또한 내삽 필터들에 기초하여 내삽을 수행할 수도 있다. 모션 보상 유닛 (82) 은 비디오 블록들의 인코딩 동안 인코딩 디바이스 (104) 에 의해 사용되는 것과 같은 내삽 필터들을 이용하여, 참조 블록들의 서브-정수 픽셀들에 대해 내삽된 값들을 계산할 수도 있다. 이 경우, 모션 보상 유닛 (82) 은 수신된 신택스 엘리먼트들로부터 비디오 인코더 (20) 에 의해 사용되는 내삽 필터들을 결정할 수도 있으며, 그 내삽 필터들을 이용하여 예측 블록들을 발생할 수도 있다.
역양자화 유닛 (86) 은 비트스트림에서 제공되어 엔트로피 디코딩 유닛 (80) 에 의해 디코딩되는 양자화된 변환 계수들을 역양자화하거나, 또는 양자화 해제한다. 역양자화 프로세스는 양자화의 정도와, 마찬가지로, 적용되어야 하는 역양자화의 정도를 결정하기 위해, 비디오 슬라이스에서의 각각의 비디오 블록에 대해 비디오 인코더 (20) 에 의해 계산된 양자화 파라미터의 사용을 포함할 수도 있다. 역변환 프로세싱 유닛 (88) 은 픽셀 도메인에서 잔차 블록들을 발생하기 위해, 역변환 (예컨대, 역 DCT 또는 다른 적당한 역변환), 역 정수 변환, 또는 개념적으로 유사한 역변환 프로세스를 변환 계수들에 적용한다.
모션 보상 유닛 (82) 이 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재의 비디오 블록에 대한 예측 블록을 발생한 후, 디코딩 디바이스 (112) 는 역변환 프로세싱 유닛 (88) 으로부터의 잔차 블록들을 모션 보상 유닛 (82) 에 의해 발생된 대응하는 예측 블록들과 합산함으로써, 디코딩된 비디오 블록을 형성한다. 합산기 (90) 는 이 합산 동작을 수행하는 구성요소 또는 구성요소들을 나타낸다. 원할 경우, (코딩 루프 중에 또는 코딩 루프 이후에) 루프 필터들이 또한 픽셀 전환들 (pixel transitions) 을 평활화하기 위해 또는 아니면 비디오 품질을 향상시키기 위해 사용될 수도 있다. 필터 유닛 (91) 은 디블록킹 필터, 적응 루프 필터 (ALF), 및 샘플 적응 오프셋 (SAO) 필터와 같은, 하나 이상의 루프 필터들을 나타내도록 의도된다. 필터 유닛 (91) 이 도 9 에 루프 필터인 것으로 도시되지만, 다른 구성들에서는, 필터 유닛 (91) 은 사후 루프 필터로서 구현될 수도 있다. 주어진 프레임 또는 픽처에서의 디코딩된 비디오 블록들은 그후 픽처 메모리 (92) 에 저장되며, 이 메모리는 후속 모션 보상을 위해 사용되는 참조 픽처들을 저장한다. 픽처 메모리 (92) 는 또한 도 1 에 도시된 비디오 목적지 디바이스 (122) 와 같은 디스플레이 디바이스 상에의 추후 프리젠테이션을 위해, 디코딩된 비디오를 저장한다.
상기 설명에서는, 본 출원의 양태들이 이의 특정의 실시형태들을 참조하여 설명되지만, 당업자들은 본 발명이 이에 한정되지 않는다는 것을 알 수 있을 것이다. 따라서, 본 출원의 예시적인 실시형태들이 본원에서 자세히 설명되었지만, 독창적인 컨셉들이 다르게 다양하게 구현되고 채용될 수도 있는 것으로, 그리고 첨부된 청구항들이 선행 기술에 의한 한정되는 것을 제외하고는, 이러한 변형예들을 포함하는 것으로 해석되도록 의도되는 것으로 이해되어야 한다. 위에서 설명된 발명의 여러 특징들 및 양태들은 개별적으로 또는 공동으로 사용될 수도 있다. 또, 실시형태들은 명세서의 더 넓은 정신 및 범위로부터 일탈함이 없이, 본원에서 설명되는 것들을 넘어서 임의 개수의 환경들 및 애플리케이션들에서 이용될 수 있다. 그에 따라서, 명세서 및 도면들은 제한적이기 보다는 예시적인 것으로 간주되어야 한다. 예시의 목적들을 위해, 방법들이 특정의 순서로 설명되었다. 대안적인 실시형태들에서, 본 방법들은 설명된 순서와는 상이한 순서로 수행될 수도 있는 것으로 이해되어야 한다.
구성요소들이 어떤 동작들을 수행하도록 "구성되는" 것으로서 설명되는 경우, 이러한 구성은 예를 들어, 그 동작을 수행하도록 전자 회로들 또는 다른 하드웨어를 설계함으로써, 그 동작을 수행하도록 프로그래밍가능 전자 회로들 (예컨대, 마이크로프로세서들, 또는 다른 적합한 전자 회로들) 을 프로그래밍함으로써, 또는 이들의 임의의 조합에 의해 달성될 수 있다.
본원에서 개시된 실시형태들과 관련하여 설명된 여러가지 예시적인 로직 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자적 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 조합들로서 구현될 수도 있다. 이러한 하드웨어와 소프트웨어의 상호 교환가능성을 명확히 예시하기 위하여, 이상에서는, 여러 예시적인 구성요소들, 블록들, 모듈들, 회로들 및 단계들을 그들의 기능의 관점에서 일반적으로 설명되었다. 이런 기능이 하드웨어 또는 소프트웨어로 구현되는지 여부는 특정의 애플리케이션 및 전체 시스템에 부과되는 설계 제한 사항들에 의존한다. 숙련자들은 각각의 특정의 애플리케이션 마다 설명한 기능을 여러가지 방법으로 구현할 수도 있으며, 그러나 이런 구현 결정들이 본 발명의 범위로부터 일탈을 초래하는 것으로 해석되어서는 안된다.
본원에서 설명된 기법들은 또한 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 이러한 기법들은 범용 컴퓨터들, 무선 통신 디바이스 핸드셋들, 또는 무선 통신 디바이스 핸드셋들 및 다른 디바이스들에서의 애플리케이션을 포함한 다수의 용도들을 가진 집적 회로 디바이스들과 같은 다양한 디바이스들 중 임의의 디바이스에서 구현될 수도 있다. 모듈들 또는 구성요소들로서 설명하는 임의의 특징들은 통합 로직 디바이스 내에 함께, 또는 별개의 공용가능한 로직 디바이스들로서 별개로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 이 기법들은 실행될 때, 위에서 설명된 방법들 중 하나 이상을 수행하는 명령들을 포함하는 프로그램 코드를 포함하는 컴퓨터-판독가능 데이터 저장 매체에 의해 적어도 부분적으로 실현될 수도 있다. 컴퓨터-판독가능 데이터 저장 매체는 패키징 재료들을 포함할 수도 있는 컴퓨터 프로그램 제품의 일부를 형성할 수도 있다. 컴퓨터-판독가능 매체는 메모리 또는 데이터 저장 매체들, 예컨대, 동기식 동적 랜덤 액세스 메모리 (SDRAM) 와 같은 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 비-휘발성 랜덤 액세스 메모리 (NVRAM), 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리 (EEPROM), 플래시 메모리, 자기 또는 광학 데이터 저장 매체들 등을 포함할 수도 있다. 기법들은 추가적으로, 또는 대안적으로, 프로그램 코드를 명령들 또는 데이터 구조들의 유형으로 운반하거나 또는 통신하고 그리고 컴퓨터에 의해 액세스되거나, 판독되거나, 및/또는 실행될 수 있는, 전파 신호들 또는 파들과 같은, 컴퓨터-판독가능 통신 매체에 의해 적어도 부분적으로 실현될 수도 있다.
프로그램 코드는 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 주문형 집적회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 등가의 집적 또는 이산 로직 회로와 같은, 하나 이상의 프로세서들을 포함할 수도 있는 프로세서에 의해 실행될 수도 있다. 이러한 프로세서는 본 개시물에서 설명하는 기법들 중 임의의 기법들을 수행하도록 구성될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있으며; 그러나 대안적으로는, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기 또는 상태 머신일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예컨대, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로서 구현될 수도 있다. 따라서, 용어 "프로세서" 는, 본원에서 사용될 때 전술한 구조 중 임의의 구조, 전술한 구조의 임의의 조합, 또는 본원에서 설명하는 기법들의 구현에 적합한 임의의 다른 구조 또는 장치를 지칭할 수도 있다. 게다가, 일부 양태들에서, 본원에서 설명하는 기능은 인코딩 및 디코딩하도록 구성된 전용 소프트웨어 모듈들 또는 하드웨어 모듈들 내에 제공되거나, 또는 결합된 비디오 인코더-디코더 (코덱) 에 포함될 수도 있다.

Claims (24)

  1. 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 방법으로서,
    예측 유닛을 발생시키기 위해 상기 복수의 픽처들 중 하나의 픽처의 블록에 대한 인트라-픽처 예측을 수행하는 단계로서,
    인트라-블록 복사 예측에 있어서, 코딩 트리 유닛 (coding tree unit; CTU) 으로부터 참조 블록을 선택하는 것으로서, 상기 참조 블록이 인터-예측을 이용하여 인코딩된 복수의 블록들로부터 선택되고, 양방향-예측으로 인코딩된 상기 CTU로부터의 블록들은 상기 참조 블록으로서 선택으로부터 제외되는, 상기 선택하는 것; 및
    상기 예측 유닛을 발생시키기 위해, 선택된 상기 참조 블록으로 인트라-블록 복사 예측을 수행하는 것
    을 포함하는, 상기 인트라-픽처 예측을 수행하는 단계; 및
    수행된 상기 인트라-픽처 예측에 기초하여 상기 예측 유닛을 인코딩하는 신택스 엘리먼트들을 발생시키는 단계를 포함하는, 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 방법.
  2. 제 1 항에 있어서,
    양방향-예측으로 인코딩된 블록은, 양방향-예측으로 인코딩된 상기 블록의 사이즈가 임계치 미만인 경우 상기 참조 블록으로서 선택으로부터 제외되는, 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 방법.
  3. 제 1 항에 있어서,
    인터-예측으로 인코딩된 상기 복수의 블록들은 상기 CTU로부터의 추가 블록들을 인코딩하기 위한 상기 참조 블록으로서 선택으로부터 제외되는, 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 방법.
  4. 제 3 항에 있어서,
    인터-예측으로 인코딩된 블록은, 인터-예측으로 인코딩된 상기 블록의 사이즈가 임계치 미만인 경우 상기 참조 블록으로서 선택으로부터 제외되는, 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 방법.
  5. 제 1 항에 있어서,
    대용 참조 블록이 패딩 방식을 이용하여 발생되며, 그리고 상기 인트라-블록 복사 예측을 수행하는 단계는 상기 대용 참조 블록을 상기 선택된 참조 블록으로서 사용하는 단계를 포함하는, 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 방법.
  6. 제 1 항에 있어서,
    상기 CTU가 양방향-예측으로 발생된 예측 블록을 갖는지 여부를 결정하는 단계를 더 포함하고, 상기 CTU로부터의 특정 블록들은 상기 CTU가 양방향-예측으로 발생된 상기 예측 블록을 갖는다는 것에 응답하여 상기 참조 블록으로서 선택으로부터 제외되는, 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 방법.
  7. 제 1 항에 있어서,
    상기 CTU에 대한 복수의 예측 샘플들을 발생시키는 단계로서, 상기 복수의 예측 샘플들은 양방향-예측으로 발생되는, 상기 발생시키는 단계; 및
    양방향-예측으로 인코딩된 블록의 사이즈를 상기 CTU로부터 결정하는 단계를 더 포함하고,
    양방향-예측으로 인코딩된 상기 블록은:
    상기 CTU가 샘플 임계치 초과의 양방향-예측으로 발생된 복수의 예측 샘플들을 갖는 것;
    양방향-예측으로 인코딩된 상기 블록의 사이즈가 사이즈 임계치 미만인 것; 및
    상기 CTU가 상기 샘플 임계치 초과의 양방향-예측으로 발생된 복수의 예측 샘플들을 갖고, 양방향-예측으로 인코딩된 상기 블록의 사이즈가 상기 사이즈 임계치 미만인 것
    중 적어도 하나 이상에 응답하여 상기 참조 블록으로서 선택으로부터 제외되는, 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 방법.
  8. 제 1 항에 있어서,
    하나 이상의 블록들에 대해 적응적 모션 벡터 해상도 (adaptive motion vector resolution; AMVR) 를 수행하는 단계; 및
    양방향-예측으로 인코딩된 블록의 사이즈를 상기 CTU로부터 결정하는 단계로서, 양방향-예측으로 인코딩된 상기 블록이:
    양방향-예측으로 인코딩된 상기 블록의 사이즈가 사이즈 임계치 미만인 것, 및
    AMVR이 양방향-예측으로 인코딩된 상기 블록에 대해 디스에이블된다는 표시를 수신하는 것
    의 양자의 조합에 응답하여 상기 참조 블록으로서 선택으로부터 제외되는, 상기 결정하는 단계를 더 포함하는, 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 방법.
  9. 제 8 항에 있어서,
    상기 조합은 상기 양방향-예측으로 인코딩된 상기 블록이 상이한 참조 유닛들 및 상이한 모션 벡터들 중 적어도 하나를 갖는 것을 더 포함하는, 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 방법.
  10. 제 1 항에 있어서,
    인터-예측을 이용하여 인코딩된 상기 복수의 블록들을 포함하는 탐색 영역을 결정하는 단계를 더 포함하고,
    상기 탐색 영역은:
    픽처 유형,
    슬라이스 유형, 및
    파티션 사이즈
    중 적어도 하나에 적어도 부분적으로 기초하여 결정되는, 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 방법.
  11. 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 장치로서,
    비디오 데이터를 저장하도록 구성된 메모리; 및
    프로세서를 포함하고,
    상기 프로세서는:
    예측 유닛을 발생시키기 위해 상기 복수의 픽처들 중 하나의 픽처의 블록에 대한 인트라-픽처 예측을 수행하고, 그리고
    수행된 상기 인트라-픽처 예측에 기초하여 상기 예측 유닛을 인코딩하는 신택스 엘리먼트들을 발생시키도록 구성되고,
    상기 인트라-픽처 예측을 수행하는 것은:
    인트라-블록 복사에 있어서, 코딩 트리 유닛 (CTU) 으로부터 참조 블록을 선택하는 것으로서, 상기 참조 블록이 인터-예측을 이용하여 인코딩된 상기 CTU로부터의 복수의 블록들로부터 선택되고, 양방향-예측으로 인코딩된 상기 CTU 내에서의 블록들은 상기 참조 블록으로서 선택으로부터 제외되는, 상기 선택하는 것; 및
    상기 예측 유닛을 발생시키기 위해, 선택된 상기 참조 블록에 대한 인트라-블록 복사 예측을 수행하는 것을 포함하는, 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 장치.
  12. 제 11 항에 있어서,
    양방향-예측으로 인코딩된 블록은, 양방향-예측으로 인코딩된 상기 블록의 사이즈가 임계치 미만인 경우 상기 참조 블록으로서 선택으로부터 제외되는, 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 장치.
  13. 제 11 항에 있어서,
    인터-예측으로 인코딩된 상기 복수의 블록들은 상기 CTU로부터의 추가 블록들을 인코딩하기 위한 상기 참조 블록으로서 선택으로부터 제외되는, 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 장치.
  14. 제 11 항에 있어서,
    상기 인트라-픽처 예측을 수행하는 것은 패딩 방식을 이용하여 대용 참조 블록을 발생시키는 것을 더 포함하고, 상기 인트라-블록 복사 예측을 수행하는 것은 상기 대용 참조 블록을 상기 선택된 참조 블록으로서 사용하는 것을 포함하는, 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 장치.
  15. 제 11 항에 있어서,
    상기 프로세서는 또한:
    상기 CTU가 양방향-예측으로 발생된 예측 블록을 갖는지 여부를 결정하도록 구성되고, 상기 CTU로부터의 특정 블록들은 상기 CTU가 양방향-예측으로 발생된 상기 예측 블록을 갖는다는 것에 응답하여 선택으로부터 제외되는, 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 장치.
  16. 제 11 항에 있어서,
    상기 인트라-픽처 예측을 수행하는 것은:
    하나 이상의 블록들에 대해 적응적 모션 벡터 해상도 (AMVR) 를 수행하는 것; 및
    양방향-예측으로 인코딩된 블록의 사이즈를 결정하는 것으로서, 양방향-예측으로 인코딩된 상기 블록이:
    양방향-예측으로 인코딩된 상기 블록의 사이즈가 사이즈 임계치 미만인 것, 및
    AMVR이 양방향-예측으로 인코딩된 상기 블록에 대해 디스에이블된다는 표시를 수신하는 것
    의 양자의 조합에 응답하여 상기 참조 블록으로서 선택으로부터 제외되는, 상기 결정하는 것을 더 포함하는, 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 장치.
  17. 제 11 항에 있어서,
    상기 인트라-픽처 예측을 수행하는 것은:
    인터-예측을 이용하여 인코딩된 상기 복수의 블록들을 포함하는 탐색 영역을 결정하는 것을 더 포함하고,
    상기 탐색 영역은:
    픽처 유형,
    슬라이스 유형, 및
    파티션 사이즈
    중 적어도 하나에 적어도 부분적으로 기초하여 결정되는, 복수의 픽처들을 포함하는 비디오 데이터를 인코딩하는 장치.
  18. 프로세서에 의해 실행되는 경우 상기 프로세서로 하여금 방법을 수행하게 하는 명령들을 저장한 인코더의 컴퓨터 판독가능 매체로서,
    상기 방법은:
    예측 유닛을 발생시키기 위해 복수의 픽처들 중 하나의 픽처의 블록에 대한 인트라-픽처 예측을 수행하는 단계로서,
    인트라-블록 복사 예측에 있어서, 코딩 트리 유닛 (CTU) 으로부터 참조 블록을 선택하는 것으로서, 상기 참조 블록이 인터-예측을 이용하여 인코딩된 CTU로부터의 복수의 블록들로부터 선택되고, 양방향-예측으로 인코딩된 상기 CTU로부터의 블록들은 상기 참조 블록으로서 선택으로부터 제외되는, 상기 선택하는 것, 및
    상기 예측 유닛을 발생시키기 위해, 선택된 상기 참조 블록에 대한 인트라-블록 복사 예측을 수행하는 것
    을 포함하는, 상기 인트라-픽처 예측을 수행하는 단계; 및
    수행된 상기 인트라-픽처 예측에 기초하여 상기 예측 유닛을 인코딩하는 신택스 엘리먼트들을 발생시키는 단계를 포함하는, 명령들을 저장한 인코더의 컴퓨터 판독가능 매체.
  19. 제 18 항에 있어서,
    상기 방법은, 양방향-예측으로 인코딩된 상기 블록의 사이즈가 임계치 미만인 경우 양방향-예측으로 인코딩된 블록이 상기 참조 블록으로서 선택으로부터 제외되는 것을 더 포함하는, 명령들을 저장한 인코더의 컴퓨터 판독가능 매체.
  20. 제 18 항에 있어서,
    인터-예측으로 인코딩된 상기 복수의 블록들은 상기 CTU의 추가 블록들을 인코딩하기 위한 상기 참조 블록으로서 선택으로부터 제외되는, 명령들을 저장한 인코더의 컴퓨터 판독가능 매체.
  21. 제 18 항에 있어서,
    대용 참조 블록이 패딩 방식을 이용하여 발생되며, 그리고 상기 인트라-블록 복사 예측을 수행하는 단계는 상기 대용 참조 블록을 상기 선택된 참조 블록으로서 사용하는 단계를 포함하는, 명령들을 저장한 인코더의 컴퓨터 판독가능 매체.
  22. 제 18 항에 있어서,
    상기 방법은 상기 CTU가 양방향-예측으로 발생된 예측 블록을 갖는지 여부를 결정하는 단계를 더 포함하고, 상기 CTU로부터의 특정 블록들은 상기 CTU가 양방향-예측으로 발생된 상기 예측 블록을 갖는다는 것에 응답하여 상기 참조 블록으로서 선택으로부터 제외되는, 명령들을 저장한 인코더의 컴퓨터 판독가능 매체.
  23. 제 18 항에 있어서,
    상기 방법은:
    상기 CTU로부터의 하나 이상의 블록들에 대해 적응적 모션 벡터 해상도 (AMVR) 를 수행하는 단계; 및
    양방향-예측으로 인코딩된 상기 CTU로부터의 블록의 사이즈를 결정하는 단계로서, 양방향-예측으로 인코딩된 상기 블록이:
    양방향-예측으로 인코딩된 상기 블록의 사이즈가 사이즈 임계치 미만인 것, 및
    AMVR이 양방향-예측으로 인코딩된 상기 블록에 대해 디스에이블된다는 표시를 수신하는 것
    의 양자의 조합에 응답하여 상기 참조 블록으로서 선택으로부터 제외되는, 상기 결정하는 단계를 더 포함하는, 명령들을 저장한 인코더의 컴퓨터 판독가능 매체.
  24. 제 18 항에 있어서,
    상기 방법은:
    인터-예측을 이용하여 인코딩된 상기 복수의 블록들을 포함하는 탐색 영역을 결정하는 단계를 더 포함하고,
    상기 탐색 영역은:
    픽처 유형,
    슬라이스 유형, 및
    파티션 사이즈
    중 적어도 하나에 적어도 부분적으로 기초하여 결정되는, 명령들을 저장한 인코더의 컴퓨터 판독가능 매체.
KR1020167035219A 2014-06-19 2015-06-19 인트라-블록 복사를 위한 시스템들 및 방법들 KR102423948B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201462014641P 2014-06-19 2014-06-19
US62/014,641 2014-06-19
US201562154399P 2015-04-29 2015-04-29
US62/154,399 2015-04-29
US14/743,253 2015-06-18
US14/743,253 US10327002B2 (en) 2014-06-19 2015-06-18 Systems and methods for intra-block copy
PCT/US2015/036610 WO2015196030A1 (en) 2014-06-19 2015-06-19 Systems and methods for intra-block copy

Publications (2)

Publication Number Publication Date
KR20170019365A KR20170019365A (ko) 2017-02-21
KR102423948B1 true KR102423948B1 (ko) 2022-07-22

Family

ID=54870870

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167035218A KR102423950B1 (ko) 2014-06-19 2015-06-19 인트라-블록 복사를 위한 시스템들 및 방법들
KR1020167035219A KR102423948B1 (ko) 2014-06-19 2015-06-19 인트라-블록 복사를 위한 시스템들 및 방법들

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020167035218A KR102423950B1 (ko) 2014-06-19 2015-06-19 인트라-블록 복사를 위한 시스템들 및 방법들

Country Status (10)

Country Link
US (2) US10327001B2 (ko)
EP (2) EP3158736B1 (ko)
JP (2) JP6704354B2 (ko)
KR (2) KR102423950B1 (ko)
CN (2) CN106416245B (ko)
BR (2) BR112016029387B1 (ko)
CA (2) CA2952279C (ko)
ES (2) ES2807216T3 (ko)
HU (2) HUE050093T2 (ko)
WO (2) WO2015196030A1 (ko)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10327001B2 (en) 2014-06-19 2019-06-18 Qualcomm Incorporated Systems and methods for intra-block copy
CN105392008B (zh) * 2014-08-22 2018-09-25 中兴通讯股份有限公司 一种预测编、解码方法和相应的编、解码器和电子设备
CN105430417B (zh) * 2014-09-22 2020-02-07 中兴通讯股份有限公司 编码方法、解码方法、装置及电子设备
WO2016165623A1 (en) * 2015-04-13 2016-10-20 Mediatek Inc. Methods of constrained intra block copy for reducing worst case bandwidth in video coding
CN106254878B (zh) * 2015-06-14 2020-06-12 同济大学 一种图像编码及解码方法、图像处理设备
US10516891B2 (en) * 2015-11-20 2019-12-24 Intel Corporation Method and system of reference frame caching for video coding
US9959097B2 (en) 2016-03-09 2018-05-01 Bank Of America Corporation SVN interface system for heterogeneous development environments
US10694202B2 (en) * 2016-12-01 2020-06-23 Qualcomm Incorporated Indication of bilateral filter usage in video coding
US10674159B2 (en) 2017-07-28 2020-06-02 Microsoft Technology Licensing, Llc Effective intra encoding for screen data
US10609384B2 (en) * 2017-09-21 2020-03-31 Futurewei Technologies, Inc. Restriction on sub-block size derivation for affine inter prediction
US11070847B2 (en) * 2017-12-05 2021-07-20 Qualcomm Incorporated Intra-prediction with far neighboring pixels
WO2020065520A2 (en) 2018-09-24 2020-04-02 Beijing Bytedance Network Technology Co., Ltd. Extended merge prediction
US10638137B2 (en) 2018-03-07 2020-04-28 Tencent America LLC Method and apparatus for video coding
EP3788787A1 (en) * 2018-06-05 2021-03-10 Beijing Bytedance Network Technology Co. Ltd. Interaction between ibc and atmvp
WO2019234578A1 (en) * 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Asymmetric weighted bi-predictive merges
WO2019244055A1 (en) 2018-06-19 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Mode dependent mvd precision set
TWI739120B (zh) 2018-06-21 2021-09-11 大陸商北京字節跳動網絡技術有限公司 合併仿射模式與非合併仿射模式的統一拘束
WO2019244118A1 (en) 2018-06-21 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Component-dependent sub-block dividing
US10798376B2 (en) * 2018-07-17 2020-10-06 Tencent America LLC Method and apparatus for video coding
US10375416B1 (en) * 2018-09-05 2019-08-06 Tencent America LLC Segment types in video coding
KR102635047B1 (ko) 2018-09-19 2024-02-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 적응적 움직임 벡터 해상도를 가지는 어파인 모드에 대한 구문 재사용
US10848782B2 (en) 2018-09-21 2020-11-24 Tencent America LLC Method and apparatus for video coding
US11172236B2 (en) 2018-09-21 2021-11-09 Tencent America LLC Method and apparatus for video decoding that defines a search range for a reference block indicated by a block vector
US11317099B2 (en) 2018-10-05 2022-04-26 Tencent America LLC Method and apparatus for signaling an offset in video coding for intra block copy and/or inter prediction
KR20200040179A (ko) 2018-10-08 2020-04-17 에스케이텔레콤 주식회사 현재 픽처 참조 모드를 이용한 예측 방법 및 영상 복호화 장치
US11509919B2 (en) * 2018-10-17 2022-11-22 Tencent America Reference sample memory size restrictions for intra block copy
CN111083492B (zh) 2018-10-22 2024-01-12 北京字节跳动网络技术有限公司 双向光流中的梯度计算
WO2020086317A1 (en) 2018-10-23 2020-04-30 Tencent America Llc. Method and apparatus for video coding
CN111418208B (zh) 2018-11-06 2023-12-05 北京字节跳动网络技术有限公司 用于几何分割的权重推导
WO2020094054A1 (en) 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Condition dependent inter prediction with geometric partitioning
WO2020094151A1 (en) 2018-11-10 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Rounding in pairwise average candidate calculations
WO2020098655A1 (en) 2018-11-12 2020-05-22 Beijing Bytedance Network Technology Co., Ltd. Motion vector storage for inter prediction
EP3861742A4 (en) 2018-11-20 2022-04-13 Beijing Bytedance Network Technology Co., Ltd. DIFFERENCE CALCULATION BASED ON SPATIAL POSITION
WO2020103933A1 (en) * 2018-11-22 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Configuration method for default motion candidate
CN113424536B (zh) * 2018-11-30 2024-01-30 腾讯美国有限责任公司 用于视频编解码的方法和装置
CN111010572A (zh) * 2018-12-04 2020-04-14 北京达佳互联信息技术有限公司 一种视频编码方法和装置及设备
CN113261290B (zh) 2018-12-28 2024-03-12 北京字节跳动网络技术有限公司 基于修改历史的运动预测
CN111385570B (zh) * 2018-12-28 2021-11-02 杭州海康威视数字技术股份有限公司 编码方法、解码方法及装置
WO2020140862A1 (en) 2018-12-30 2020-07-09 Beijing Bytedance Network Technology Co., Ltd. Conditional application of inter prediction with geometric partitioning in video processing
WO2020143832A1 (en) * 2019-01-12 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Bi-prediction constraints
US10771799B2 (en) * 2019-01-15 2020-09-08 Tencent America LLC Method and apparatus for video coding
US11202089B2 (en) * 2019-01-28 2021-12-14 Tencent America LLC Method and apparatus for determining an inherited affine parameter from an affine model
CN113412623A (zh) 2019-01-31 2021-09-17 北京字节跳动网络技术有限公司 记录仿射模式自适应运动矢量分辨率的上下文
WO2020156537A1 (en) * 2019-02-01 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Extended application of combined intra-inter prediction
US10958904B2 (en) 2019-02-01 2021-03-23 Tencent America LLC Method and apparatus for video coding
CN113366848A (zh) 2019-02-02 2021-09-07 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的缓冲区重置
CN113424526A (zh) * 2019-02-17 2021-09-21 北京字节跳动网络技术有限公司 帧内块复制模式的应用性的限制
CN117395439A (zh) 2019-03-01 2024-01-12 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的基于方向的预测
CN113545068B (zh) 2019-03-01 2023-09-15 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的基于顺序的更新
JP7284284B2 (ja) 2019-03-04 2023-05-30 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーの実装形態の態様
KR20210131347A (ko) * 2019-03-06 2021-11-02 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 크기에 따른 인터 코딩
KR102635518B1 (ko) 2019-03-06 2024-02-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 변환된 단예측 후보의 사용
SG11202109622QA (en) * 2019-03-09 2021-10-28 Tencent America LLC Method and apparatus for video coding
CN113924784A (zh) * 2019-03-12 2022-01-11 现代自动车株式会社 用于编码和解码影像的方法和装置
WO2020185050A1 (ko) * 2019-03-14 2020-09-17 에스케이텔레콤 주식회사 인트라 블록 복사를 이용하는 영상 부호화 및 복호화
WO2020187199A1 (en) * 2019-03-17 2020-09-24 Beijing Bytedance Network Technology Co., Ltd. Calculation of prediction refinement based on optical flow
US11240516B2 (en) 2019-03-20 2022-02-01 Tencent America LLC Coding mode signaling for small blocks
CN113826390B (zh) * 2019-05-16 2024-03-08 字节跳动有限公司 屏幕内容编解码的帧内块复制
WO2020262960A1 (ko) * 2019-06-24 2020-12-30 엘지전자 주식회사 크로마 성분 부호화 블록의 최대 변환 크기 제한을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
BR112022000187A2 (pt) 2019-07-06 2022-02-22 Beijing Bytedance Network Tech Co Ltd Método de processamento de dados de vídeo, aparelho para processar dados de vídeo, meio de armazenamento não transitório legível por computador, meio de gravação não transitório legível por computador
AU2020312053B2 (en) 2019-07-10 2023-09-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
KR20210107858A (ko) 2019-07-11 2021-09-01 텐센트 아메리카 엘엘씨 비디오 코딩을 위한 방법 및 장치
WO2021008511A1 (en) * 2019-07-14 2021-01-21 Beijing Bytedance Network Technology Co., Ltd. Geometric partition mode candidate list construction in video coding
US11616962B2 (en) 2019-07-15 2023-03-28 Tencent America LLC Method and apparatus for video coding
WO2021015512A1 (ko) 2019-07-19 2021-01-28 엘지전자 주식회사 Ibc를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
CN117241033A (zh) 2019-08-06 2023-12-15 北京字节跳动网络技术有限公司 使用屏幕内容编码工具进行视频编码和解码
BR112022003656A2 (pt) 2019-09-02 2022-05-24 Beijing Bytedance Network Tech Co Ltd Método e aparelho de processamento de dados de vídeo, e, meios de armazenamento e de gravação legíveis por computador não transitórios
BR112022005109A2 (pt) 2019-09-21 2023-03-14 Beijing Bytedance Network Tech Co Ltd Método de processamento de vídeo, aparelho para processamento de dados de vídeo, e, meios de armazenamento e de gravação legíveis por computador não transitórios
US11330305B2 (en) * 2020-02-24 2022-05-10 Qualcomm Incorporated Signaling constraints and sequence parameter set sharing in video coding
US11943429B2 (en) * 2020-03-04 2024-03-26 Qualcomm Incorporated Subpicture signaling in video coding
US20230086077A1 (en) * 2021-09-17 2023-03-23 Tencent America LLC Method and apparatus for intra block copy (intrabc) mode coding with search range restrictions

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101377530B1 (ko) * 2009-08-21 2014-03-27 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
EP2497273A4 (en) 2009-11-05 2016-07-27 Ericsson Telefon Ab L M PREDICTING PIXELS IN PICTURE CODING
TWI601411B (zh) * 2011-09-14 2017-10-01 三星電子股份有限公司 視訊解碼裝置
MY164898A (en) * 2011-09-29 2018-01-30 Sharp Kk Image decoding device, image decoding method, and image encoding device
MX2014008483A (es) 2012-01-19 2014-10-14 Sony Corp Dispositivo y metodo de procesamiento de imagenes.
US9426463B2 (en) * 2012-02-08 2016-08-23 Qualcomm Incorporated Restriction of prediction units in B slices to uni-directional inter prediction
US9906786B2 (en) 2012-09-07 2018-02-27 Qualcomm Incorporated Weighted prediction mode for scalable video coding
CN103747258B (zh) 2014-01-27 2015-02-04 中国科学技术大学 一种高性能视频编码标准的加密处理方法
US10368092B2 (en) * 2014-03-04 2019-07-30 Microsoft Technology Licensing, Llc Encoder-side decisions for block flipping and skip mode in intra block copy prediction
US10327001B2 (en) 2014-06-19 2019-06-18 Qualcomm Incorporated Systems and methods for intra-block copy

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Sharman K et al: "AHG5: Intra-block-copy in Non-4:4:4 Formats", JCTVC-Q0075, 17 March 2014.

Also Published As

Publication number Publication date
JP6527891B2 (ja) 2019-06-05
EP3158736B1 (en) 2019-11-27
JP6704354B2 (ja) 2020-06-03
CN106464874B (zh) 2019-08-02
HUE050093T2 (hu) 2020-11-30
KR20170019364A (ko) 2017-02-21
CN106416245A (zh) 2017-02-15
BR112016029539A2 (pt) 2017-08-22
US20150373358A1 (en) 2015-12-24
EP3158737B1 (en) 2020-04-22
KR102423950B1 (ko) 2022-07-21
US10327001B2 (en) 2019-06-18
HUE047937T2 (hu) 2020-05-28
WO2015196030A1 (en) 2015-12-23
EP3158737A1 (en) 2017-04-26
JP2017522790A (ja) 2017-08-10
WO2015196029A1 (en) 2015-12-23
CN106464874A (zh) 2017-02-22
ES2807216T3 (es) 2021-02-22
CN106416245B (zh) 2019-08-02
KR20170019365A (ko) 2017-02-21
CA2952457C (en) 2022-12-13
EP3158736A1 (en) 2017-04-26
ES2774664T3 (es) 2020-07-22
CA2952457A1 (en) 2015-12-23
US10327002B2 (en) 2019-06-18
CA2952279A1 (en) 2015-12-23
US20150373357A1 (en) 2015-12-24
BR112016029387A2 (pt) 2017-08-22
JP2017522789A (ja) 2017-08-10
BR112016029387B1 (pt) 2024-02-15
CA2952279C (en) 2023-01-03

Similar Documents

Publication Publication Date Title
KR102423948B1 (ko) 인트라-블록 복사를 위한 시스템들 및 방법들
EP3329675B1 (en) Methods and systems of restricting bi-prediction in video coding
CN111201790B (zh) 基于色度量化参数偏移的编解码方法、装置、存储介质
KR102385772B1 (ko) 파라미터 세트에 대한 표현 포맷 파라미터들을 제약하기 위한 시스템들 및 방법들
KR20210119992A (ko) 개선된 서브-파티션 인트라 예측
WO2015196117A1 (en) Deblocking filter design for intra block copy
KR20220020809A (ko) 스케일러빌리티 지원을 위한 동일한 픽처 순서 카운트 (poc) 넘버링
KR102658510B1 (ko) 비디오 코딩에서 양방향-예측을 제한하는 방법들 및 시스템들

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant