KR20180120200A - 비디오 코딩 툴들을 위한 제약된 블록 레벨 최적화 및 시그널링 - Google Patents
비디오 코딩 툴들을 위한 제약된 블록 레벨 최적화 및 시그널링 Download PDFInfo
- Publication number
- KR20180120200A KR20180120200A KR1020187027463A KR20187027463A KR20180120200A KR 20180120200 A KR20180120200 A KR 20180120200A KR 1020187027463 A KR1020187027463 A KR 1020187027463A KR 20187027463 A KR20187027463 A KR 20187027463A KR 20180120200 A KR20180120200 A KR 20180120200A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- encoded
- coding
- video
- level threshold
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/184—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
인코딩된 비디오 데이터를 디코딩하기 위한 일 예의 디바이스는 저장 매체들 및 프로세싱 회로를 포함한다. 저장 매체들은 인코딩된 비디오 데이터의 일부를 구성한다. 프로세싱 회로는 저장 매체들에 저장된 인코딩된 비디오 데이터의 일부에 대해 블록 레벨 임계를 결정하고, 인코딩된 비디오 데이터의 일부의 인코딩된 블록이 임계 이상인 사이즈를 갖는 것을 결정하고, 코딩 툴을 사용하여 인코딩된 블록의 일부가 재구성되는 것을 표시하는 신택스 엘리먼트를 수신하고, 임계 이상인 사이즈를 갖는 인코딩된 블록에 기초하여, 신택스 엘리먼트가 인코딩된 블록에 포함된 복수의 샘플들의 모든 샘플들에 적용되는 것을 결정하며, 그리고 코딩 툴에 기초하여 인코딩된 블록을 재구성하도록 구성된다.
Description
이 출원은 2016 년 3 월 22 일에 출원된 U.S. 가특허출원 제 62/311,877 호의 이익을 주장하며, 그 전체 내용은 본 명세서에 참조로서 통합된다.
이 개시물은 비디오 인코딩 및 비디오 디코딩에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전들, 디지털 직접 방송 시스템들, 무선 방송 시스템들, 개인용 디지털 보조기들 (personal digital assistant; PDA), 랩톱이나 데스크톱 컴퓨터들, 태블릿 컴퓨터들, 전자책 리더들, 디지털 카메라들, 디지털 녹음 디바이스들, 디지털 미디어 재생기들, 비디오 게임 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화들, 이른바 "스마트 폰들", 비디오 원격화상회의 디바이스들, 비디오 스트리밍 디바이스들 등을 포함하는 광범위한 디바이스들에 포함될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, 파트 10, 어드밴스드 비디오 코딩 (Advanced Video Coding; AVC), 고효율 비디오 코딩 (High Efficiency Video Coding; HEVC) 표준에 의해 정의된 표준들, 및 이러한 표준들의 확장들에서 설명된 바와 같은 비디오 코딩 기법들을 구현한다. 비디오 디바이스들은 이러한 비디오 코딩 기법들을 구현함으로써, 디지털 비디오 정보를 보다 효율적으로 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수도 있다. 비디오 코딩 표준들은 그의 스케일러블 비디오 코딩 (Scalable Video Coding; SVC) 및 멀티뷰 비디오 코딩 (Multiview Video Coding; MVC) 확장들을 포함한, ITU-T H.261, ISO/IEC MPEG-1 비주얼, ITU-T H.262 또는 ISO/IEC MPEG-2 비주얼, ITU-T H.263, ISO/IEC MPEG-4 비주얼 및 ITU-T H.264 (또한 ISO/IEC MPEG-4 AVC로 알려짐) 을 포함한다. 또한, ITU-T 비디오 코딩 전문가 그룹 (Video Coding Experts Group; VCEG) 및 ISO/IEC 모션 픽처 전문가 그룹 (MPEG) 의 비디오 코딩에 대한 공동 협력 팀 (Joint Collaboration Team on Video Coding; JCT-VC) 에 의해 새로운 비디오 코딩 표준, 즉 고효율 비디오 코딩 (HEVC) 이 최근에 개발되고 있다. 최신 HEVC 초안, 이하 HEVC WD 로서 지칭되며, http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zip 으로부터 입수가능하다.
비디오 코딩 기법들은 비디오 시퀀스들에 내재하는 리던던시를 감소시키거나 제거하기 위한 공간적 (인트라-픽처) 예측 및/또는 시간적 (인터-픽처) 예측을 수행한다. 블록-기반 비디오 코딩에 대해, 비디오 슬라이스 (예를 들어, 비디오 프레임 또는 비디오 프레임의 일부) 는 비디오 블록들로 파티셔닝될 수도 있으며, 이는 또한 트리블록들, 코딩 유닛 (CU) 들, 및/또는 코딩 노드들로 지칭될 수도 있다. 픽처들은 프레임들로서 지칭될 수도 있고, 참조 픽처들은 참조 프레임들로 지칭될 수도 있다.
공간 예측 또는 시간 예측은 코딩될 블록에 대한 예측 블록을 발생한다. 잔차 데이터는 코딩될 원래의 블록과 예측 블록 간의 픽셀 차이들을 나타낸다. 추가의 압축을 위해, 잔차 데이터는 픽셀 도메인에서 변환 도메인으로 변환되어, 잔차 변환 계수들을 발생하고, 이 변환 계수들은, 그 후 양자화될 수도 있다. 엔트로피 코딩이 적용되어 훨씬 더 많은 압축을 달성할 수도 있다.
일반적으로, 이 개시물은 비디오 인코딩 및 비디오 디코딩에서 하나 이상의 코딩 툴들의 사용을 위한 블록 레벨 임계화 또는 블록 레벨 제약들을 사용하기 위한 기법들을 기재한다.
일 예에서, 인코딩된 비디오 데이터를 디코딩하기 위한 디바이스는, 하나 이상의 저장 매체들, 및 저장 매체들과 통신하는 프로세싱 회로를 포함한다. 저장 매체들은 인코딩된 비디오 데이터의 적어도 일부를 저장하도록 구성된다. 프로세싱 회로는, 저장 매체들에 저장된 인코딩된 비디오 데이터의 일부에 대한 블록 레벨 임계를 결정하고, 저장 매체들에 저장된 인코딩된 비디오 데이터의 일부의 인코딩된 블록이 블록 레벨 임계 이상인 사이즈를 갖는 것을 결정하고, 인코딩된 블록의 일부가 코딩 툴을 사용하여 재구성되는 것을 표시하는 신택스 엘리먼트를 수신하고, 인코딩된 블록이 블록 레벨 임계 이상인 사이즈를 갖는 것에 기초하여, 인코딩된 블록에 포함된 복수의 샘플들의 모든 샘플들에 신택스 엘리먼트가 적용되는 것을 결정하고, 그리고 코딩 툴에 기초하여 인코딩된 블록을 재구성하도록 구성된다.
다른 예에서, 비디오 데이터를 위한 디바이스는 하나 이상의 저장 매체들, 및 저장 매체들과 통신하는 프로세싱 회로를 포함한다. 저장 매체들은 인코딩된 비디오 데이터의 적어도 일부를 저장하도록 구성된다. 프로세싱 회로는, 저장 매체들에 저장된 비디오 데이터의 일부에 대한 블록 레벨 임계를 결정하고, 저장 매체들에 저장된 비디오 데이터의 일부의 블록이 블록 레벨 임계 이상인 사이즈를 갖는 것을 결정하고, 인코딩된 블록을 형성하기 위해 코딩 툴을 사용하여 블록을 인코딩하며, 그리고 인코딩된 블록이 블록 레벨 임계 이상인 사이즈를 갖는 것에 기초하여, 인코딩된 블록의 복수의 샘플들의 모든 샘플들이 코딩 툴을 사용하여 재구성되는 것을 표시하는 신택스 엘리먼트를 인코딩하도록 구성된다.
다른 예에서, 이 개시물은 인코딩된 비디오 데이터를 디코딩하는 방법에 관련된다. 방법은, 인코딩된 비디오 데이터의 일부에 대한 블록 레벨 임계를 결정하는 단계, 인코딩된 비디오 데이터의 일부의 인코딩된 블록이 블록 레벨 임계 이상인 사이즈를 갖는 것을 결정하는 단계, 인코딩된 블록의 일부가 코딩 툴을 사용하여 재구성되는 것을 표시하는 신택스 엘리먼트를 수신하는 단계를 포함한다. 방법은, 인코딩된 블록이 블록 레벨 임계 이상인 사이즈를 갖는 것에 기초하여, 인코딩된 블록에 포함된 복수의 샘플들의 모든 샘플들에 신택스 엘리먼트가 적용되는 것을 결정하는 단계, 및 코딩 툴에 기초하여 인코딩된 블록을 재구성하는 단계를 더 포함한다.
다른 예에서, 이 개시물은 인코딩된 비디오 데이터를 디코딩하기 위한 장치에 관련된다. 장치는, 인코딩된 비디오 데이터의 일부에 대한 블록 레벨 임계를 결정하기 위한 수단, 및 인코딩된 비디오 데이터의 일부의 인코딩된 블록이 블록 레벨 임계 이상인 사이즈를 갖는 것을 결정하기 위한 수단을 포함한다. 장치는 인코딩된 블록의 일부가 코딩 툴을 사용하여 재구성되는 것을 표시하는 신택스 엘리먼트를 수신하기 위한 수단, 및 인코딩된 블록이 블록 레벨 임계 이상인 사이즈를 갖는 것에 기초하여, 인코딩된 블록에 포함된 복수의 샘플들의 모든 샘플들에 신택스 엘리먼트가 적용되는 것을 결정하기 위한 수단을 더 포함한다. 장치는 코딩 툴에 기초하여 인코딩된 블록을 재구성하기 위한 수단을 더 포함한다.
하나 이상의 예들의 상세들은 첨부 도면들 및 하기 설명에서 기술된다. 다른 피처들, 목적들, 및 이점들은 그 기재 및 도면들로부터 그리고 청구항들로부터 명백해질 것이다.
도 1 은 개시물의 기법들을 구현하도록 구성된 일 예의 비디오 인코딩 및 디코딩 시스템을 도시하는 블록 다이어그램이다.
도 2 는 본 개시물의 기법들에 따른, CTU 에 대한 블록 파티셔닝 구조의 일 예를 도시하는 개념적 다이어그램이다.
도 3 은 QTBT 파티셔닝 구조에 따른 블록 파티셔닝의 일 예를 도시하는 개념적 다이어그램이다.
도 4a 및 도 4b 는 본 개시물의 하나 이상의 양태들에 따른, 파티셔닝을 위한 대응 트리 구조, 및 QTBT 파티셔닝 구조의 추가 예들 및 상세들을 도시하는 개념적 다이어그램들이다.
도 5 는 개시물의 기법들을 구현하도록 구성된 비디오 인코더의 일 예를 도시하는 블록 다이어그램이다.
도 6 은 개시물의 기법들을 구현하도록 구성된 비디오 디코더의 일 예를 도시하는 블록 다이어그램이다.
도 7 은 64x64 CTU 에 대한 본 개시물의 예시의 코딩 툴-관련 플래그 시그널링 기법들을 도시하는 개념적 다이어그램이다.
도 8 은 본 개시물의 하나 이상의 기법들을 구현하기 위해 비디오 디코딩 디바이스가 수행할 수도 있는 일 예의 프로세스를 도시하는 플로우챠트이다.
도 9 는 본 개시물의 하나 이상의 기법들을 구현하기 위해 비디오 인코딩 디바이스가 수행할 수도 있는 일 예의 프로세스를 도시하는 플로우챠트이다.
도 2 는 본 개시물의 기법들에 따른, CTU 에 대한 블록 파티셔닝 구조의 일 예를 도시하는 개념적 다이어그램이다.
도 3 은 QTBT 파티셔닝 구조에 따른 블록 파티셔닝의 일 예를 도시하는 개념적 다이어그램이다.
도 4a 및 도 4b 는 본 개시물의 하나 이상의 양태들에 따른, 파티셔닝을 위한 대응 트리 구조, 및 QTBT 파티셔닝 구조의 추가 예들 및 상세들을 도시하는 개념적 다이어그램들이다.
도 5 는 개시물의 기법들을 구현하도록 구성된 비디오 인코더의 일 예를 도시하는 블록 다이어그램이다.
도 6 은 개시물의 기법들을 구현하도록 구성된 비디오 디코더의 일 예를 도시하는 블록 다이어그램이다.
도 7 은 64x64 CTU 에 대한 본 개시물의 예시의 코딩 툴-관련 플래그 시그널링 기법들을 도시하는 개념적 다이어그램이다.
도 8 은 본 개시물의 하나 이상의 기법들을 구현하기 위해 비디오 디코딩 디바이스가 수행할 수도 있는 일 예의 프로세스를 도시하는 플로우챠트이다.
도 9 는 본 개시물의 하나 이상의 기법들을 구현하기 위해 비디오 인코딩 디바이스가 수행할 수도 있는 일 예의 프로세스를 도시하는 플로우챠트이다.
본 개시물은 일반적으로 비디오 코딩 툴들에 대한 제약된 블록 레벨 최적화 및 시그널링을 위한 기법들과 관련된다. 본 개시물의 양태들은 HEVC 또는 차세대 비디오 코딩 표준들의 확장들과 같은 어드밴스드 비디오 코덱의 콘텍스트에서 또한 사용될 수도 있다. 차세대 비디오 코딩 표준들의 양태들은 블록 파티셔닝 스킴에 관한 것이다. 그러한 파티셔닝 스킴의 일 예는 쿼드트리 플러스 이진 트리 (QTBT) 블록 파티셔닝 구조이다. QTBT 구조에 따라, 블록은 하나 이상의 재귀적 사이클들에 대한 쿼드트리 구조에 따라 파티셔닝될 수 있다. 어느 정도의 쿼드트리 기반 부분 파티셔닝 후에, 결과의 서브 블록들 (예를 들어, 리프 노드들) 의 하나 이상은, 서브 블록이 QTBT 파티셔닝 구조 하에서 허용된 최대 이진 트리 루트 노드 사이즈보다 크지 않은 면적을 가지면, 이진 트리 구조에 따라 추가로 파티셔닝될 수 있다.
쿼드트리 블록 파티셔닝 구조는 HEVC 에서 설명되며, 다양한 비디오 코딩 툴들에 대한 기반이다. 즉, 다양한 기존 코딩 툴들의 설계들은 쿼드트리 파티셔닝을 통해 획득된 서브 블록들에 적용되도록 최적화되어 있다. 쿼드트리 파티셔닝은 정의에 의해, 리프 노드들로서 정사각형 서브 블록들을 생성한다. 이와 같이, 다양한 기존 코딩 툴들의 설계들은 정사각형 서브 블록들에 최적화되어 있다. 하지만, QTBT 파티셔닝된 블록의 리프 노드는 정사각형 또는 비정사각형 직사각형일 수도 있다는 점에서, QTBT 파티셔닝 스킴의 이진 트리 양태들은 리프 노드 형상에 유연성을 도입한다. 이와 같이, 다양한 기존의 코딩 툴들의 설계들은 블록들이 QTBT 파티셔닝 구조에 따라 파티셔닝되는 모든 시나리오들에 적용되도록 최적화되지 않는다.
본 개시물은 일반적으로 QTBT 파티셔닝을 통해 획득된 서브 블록들에 기존의 코딩 툴들을 적용하는 것으로부터 발생할 수도 있는 비효율성들을 완화하거나 잠재적으로 제거하는 블록 사이즈 기반 제약들로 지향된다. 일부 예들에서, 본 개시물의 기법들은 다양한 코딩 툴-관련 동작들에 대해 (예를 들어, 최소 블록 사이즈의 형태로) 블록 레벨 임계를 설정한다. 본 개시물의 기술에 따라 블록 레벨 임계들을 설정함으로써, 비디오 인코딩 디바이스들 및 비디오 디코딩 디바이스들은, 여전히 QTBT 파티셔닝 구조를 구현하면서 그리고 QTBT 파티셔닝 구조에 의해 제공된 이점을 원용하면서, 이들 코딩 툴들에 의해 제공된 이익들을 레버리지할 수도 있다.
예를 들어, QTBT 에서의 코딩 툴들은 특정 사이즈의 블록들에 대해 코딩 이득들을 제공할 수도 있지만 다른 사이즈의 블록들에 대해서는, 시그널링 오버헤드가 너무 크고 QTBT 의 이익들을 방해할 수도 있다. 블록 레벨 임계의 사용에 의해, QTBT 에 대해 이용가능한 코딩 이득들은 시그널링 오버헤드가 코딩 이득들을 오버라이드하는 기회들을 감소시키면서 이용될 수도 있다.
도 1 은 본 개시물의 기법들을 활용할 수도 있는 일 예의 비디오 인코딩 및 디코딩 시스템 (10) 을 도시하는 블록 다이어그램이다. 도 1 에 나타낸 바와 같이, 시스템 (10) 은 목적지 디바이스 (14) 에 의해 나중에 디코딩될 인코딩된 비디오 데이터를 제공하는 소스 디바이스 (12) 를 포함한다. 특히, 소스 디바이스 (12) 는 컴퓨터 판독가능 매체 (16) 를 통해 목적지 디바이스 (14) 에 비디오 데이터를 제공한다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는, 데스크톱 컴퓨터들, 노트북 (즉, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋톱 박스들, 이른바 "스마트" 폰들과 같은 전화 핸드셋들, 테블릿 컴퓨터들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 비디오 스트리밍 디바이스 등을 포함하는 다양한 범위의 디바이스들 중 임의의 것을 포함할 수도 있다. 일부 경우들에서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 무선 통신을 위해 구비될 수도 있다. 따라서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 무선 통신 디바이스들일 수도 있다. 소스 디바이스 (12) 는 일 예의 비디오 인코딩 디바이스 (즉, 비디오 데이터를 인코딩하기 위한 디바이스) 이다. 목적지 디바이스 (14) 는 일 예의 비디오 디코딩 디바이스 (즉, 비디오 데이터를 디코딩하기 위한 디바이스) 이다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 데이터를 저장하도록 구성된 저장 매체 (20), 비디오 인코더 (22), 및 출력 인터페이스 (24) 를 포함한다. 목적지 디바이스 (14) 는 입력 인터페이스 (28), 비디오 데이터를 저장하도록 구성된 저장 매체 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 다른 예들에서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 다른 컴포넌트들 또는 어레인지먼트들을 포함할 수도 있다. 예를 들어, 소스 디바이스 (12) 는 외부 비디오 소스, 예컨대 외부 카메라로부터 비디오 데이터를 수신할 수도 있다. 마찬가지로, 목적지 디바이스 (14) 는 통합된 디스플레이 디바이스 (32) 를 포함하기 보다는, 외부 디스플레이 디바이스와 인터페이스할 수도 있다.
도 1 의 도시된 시스템 (10) 은 단지 일 예에 불과하다. 비디오 데이터를 프로세싱 및/또는 코딩하기 위한 기법들은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수도 있다. 일반적으로, 본 개시물의 기법들은 비디오 인코딩 디바이스 또는 비디오 디코딩 디바이스에 의해 수행되지만, 그 기법들은 또한, 통상적으로 "CODEC" 으로서 지칭된 비디오 인코더/디코더에 의해 수행될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 단지, 이러한 코딩 디바이스들의 예들이고, 여기서 소스 디바이스 (12) 는 목적지 디바이스 (14) 로의 송신을 위해 코딩된 비디오 데이터를 생성한다. 일부 예들에서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 실질적으로 대칭 방식으로 동작할 수도 있어서 소스 디바이스 (12) 및 목적지 디바이스 (14) 의 각각은 비디오 인코딩 및 디코딩 컴포넌트들을 포함한다. 따라서, 시스템 (10) 은, 예를 들어 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 또는 비디오 텔레포니를 위해 소스 디바이스 (12) 와 목적지 디바이스 (14) 사이의 일방향 또는 양방향 비디오 송신을 지원할 수도 있다.
소스 디바이스 (12) 의 비디오 소스 (18) 는 비디오 캡처 디바이스, 예컨대 비디오 카메라, 이전에 캡처된 비디오를 포함하는 비디오 아카이브, 및/또는 비디오 콘텐트 제공자로부터 비디오를 수신하기 위한 비디오 피드 인터페이스를 포함할 수도 있다. 추가 대안으로서, 비디오 소스 (18) 는 소스 비디오로서 컴퓨터 그래픽 기반 데이터, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터 생성된 비디오의 조합을 생성할 수도 있다. 소스 디바이스 (12) 는 비디오 데이터를 저장하도록 구성된 하나 이상의 데이터 저장 매체들 (예를 들어, 저장 매체들 (20)) 을 포함할 수도 있다. 본 개시물에 기재된 기법들은 일반적으로 비디오 코딩에 적용가능할 수도 있으며, 무선 및/또는 유선 어플리케이션들에 적용될 수도 있다. 각각의 경우에서, 캡처된, 프리캡처된, 또는 컴퓨터 생성된 비디오는 비디오 인코더 (22) 에 의해 인코딩될 수도 있다. 출력 인터페이스 (24) 는 인코딩된 비디오 정보를 컴퓨터 판독가능 매체 (16) 에 출력할 수도 있다.
목적지 디바이스 (14) 는 컴퓨터 판독가능 매체 (16) 를 통해 디코딩될 인코딩된 비디오 데이터를 수신할 수도 있다. 컴퓨터 판독가능 매체 (16) 는 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 이동시킬 수 있는 임의의 유형의 매체 또는 디바이스를 포함할 수도 있다. 일부 예들에서, 컴퓨터 판독가능 매체 (16) 는 소스 디바이스 (12) 로 하여금 실시간으로 비디오 데이터를 목적지 디바이스 (14) 로 직접적으로 송신하는 것을 가능하게 하는 통신 매체를 포함할 수도 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라 변조되고, 목적지 디바이스 (14) 로 송신될 수도 있다. 통신 매체는 임의의 무선 또는 유선 통신 매체, 예컨대 무선 주파수(RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들을 포함할 수도 있다. 통신 매체는 임의의 무선 또는 유선 통신 매체, 예컨대 무선 주파수(RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들을 포함할 수도 있다. 통신 매체는 패킷 기반 네트워크, 예컨대 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크의 일부를 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다. 목적지 디바이스 (14) 는 인코딩된 비디오 데이터 및 디코딩된 비디오 데이터를 저장하도록 구성된 하나 이상의 데이터 저장 매체들을 포함할 수도 있다.
일부 예들에서, 인코딩된 데이터는 출력 인터페이스 (24) 로부터 저장 디바이스로 출력될 수도 있다. 유사하게, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스로부터 액세스될 수도 있다. 저장 디바이스는 임의의 다양한 분산된 또는 국부적으로 액세스된 데이터 저장 매체들, 예컨대 하드 드라이브, 블루레이 디스크들, DVD들, CD-ROM들, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적절한 디지털 저장 매체들을 포함할 수도 있다. 추가의 예에서, 저장 디바이스는 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오를 저장할 수도 있는 다른 중간 저장 디바이스 또는 파일 서버에 대응할 수도 있다. 목적지 디바이스 (14) 는 스트리밍 또는 다운로드를 통해 저장 디바이스로부터의 저장된 비디오 데이터에 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 송신할 수 있는 임의의 유형의 서버일 수도 있다. 예시의 파일 서버들은 (예를 들면 웹사이트용의) 웹서버, FTP 서버, NAS (network attached storage) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스 (14) 는 인터넷 접속을 포함한, 임의의 표준 데이터 접속을 통해 인코딩된 비디오 데이터에 액세스할 수도 있다. 이것은 파일 서버에 저장된 인코딩된 비디오 데이터에 액세스하는데 적합한 무선 채널 (예를 들어, 와이파이 접속), 유선 접속 (예를 들어, DSL, 케이블 모뎀 등), 또는 이들 양자의 조합을 포함할 수도 있다. 저장 디바이스로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이들의 조합일 수도 있다.
본 개시물에 기재된 기법들은 다양한 멀티미디어 어플리케이션들, 예컨대 지상파 (over-the-air) 텔레비전 방송들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, HTTP 를 통한 동적 적응형 스트리밍 (dynamic adaptive streaming over HTTP; DASH) 과 같은 인터넷 스트리밍 비디오 송신들, 데이터 저장 매체 상에 인코딩되는 디지털 비디오, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 어플리케이션들 중 임의의 것의 지원에서의 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 시스템 (10) 은, 비디오 스트리밍, 비디오 플레이백, 비디오 방송, 및/또는 비디오 텔레포니와 같은 어플리케이션들을 지원하기 위해 일방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.
컴퓨터 판독가능 매체 (16) 는 일시적인 매체들, 예컨대 무선 브로드캐스트 도는 유선 네트워크 송신, 또는 저장 매체들 (즉, 비일시적 저장 매체들), 예컨대 하드 디스크, 플래시 드라이브, 컴팩트 디스크, 디지털 비디오 디스크, 블루-레이 디스크, 또는 다른 컴퓨터 판독가능 매체들을 포함할 수도 있다. 일부 예들에서, 네트워크 서버 (미도시) 는 소스 디바이스 (12) 로부터 인코딩된 비디오 데이터를 수신하고, 예를 들어 네트워크 송신을 통해 인코딩된 비디오 데이터를 목적지 디바이스 (14) 에 제공할 수도 있다. 유사하게, 디스크 스탬핑 설비와 같은 매체 생성 설비의 컴퓨팅 디바이스가 소스 디바이스 (12) 로부터 인코딩된 비디오 데이터를 수신하고, 인코딩된 비디오 데이터를 포함하는 디스크를 생성할 수도 있다. 따라서, 컴퓨터 판독가능 매체 (16) 는, 다양한 예들에서, 다양한 형태들의 하나 이상의 컴퓨터 판독가능 매체들을 포함하는 것으로 이해될 수도 있다.
목적지 디바이스 (14) 의 입력 인터페이스 (26) 는 컴퓨터 판독가능 매체 (16) 로부터 정보를 수신한다. 컴퓨터 판독가능 매체 (16) 의 정보는 비디오 인코더 (22) 에 의해 정의된 신택스 정보를 포함할 수도 있으며, 이는 비디오 디코더 (30) 에 의해 또한 사용되며, 블록들 및 다른 코딩된 유닛들, 예를 들면, 픽처들의 그룹 (GOP) 들의 프로세싱 및/또는 특징들을 설명하는 신택스 엘리먼트들을 포함한다. 저장 매체들 (28) 은 입력 인터페이스 (26) 에 의해 수신된 인코딩된 비디오 데이터를 저장할 수도 있다. 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 캐소드 레이 튜브 (CRT), 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 유형의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중 임의의 것을 포함할 수도 있다.
비디오 인코더 (22) 및 비디오 디코더 (30) 각각은 임의의 다양한 적합한 인코더 회로, 예컨대 하나 이상의 마이크로프로세서들, 프로세싱 회로 (고정 기능 회로 및/또는 프로그램가능 프로세싱 회로), 디지털 신호 프로세서 (DSP) 들, 주문형 집적회로 (ASIC) 들, 필드 프로그램가능 게이트 어레이 (FPGA) 들, 이산 로직, 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 임의의 조합들로서 구현될 수도 있다. 이 기법들이 부분적으로 소프트웨어로 구현되는 경우, 디바이스는 그 소프트웨어에 대한 명령들을 적합한 비일시적 컴퓨터 판독가능 매체에 저장할 수도 있고, 본 개시물의 기법들을 수행하기 위해 하나 이상의 프로세서들을 사용하는 하드웨어에서 그 명령들을 실행할 수도 있다. 비디오 인코더 (22) 및 비디오 디코더 (30) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있고, 이들 중 어느 것도 결합된 인코더/디코더 (CODEC) 의 일부로서 각각의 디바이스에 통합될 수도 있다.
일부 예들에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 비디오 코딩 표준에 따라 동작할 수도 있다. 비디오 코딩 표준들은 그의 스케일러블 비디오 코딩 (SVC) 및 멀티 뷰 비디오 코딩 (MVC) 확장들을 포함한, ITU-T H.261, ISO/IEC MPEG-1 비주얼, ITU-T H.262 또는 ISO/IEC MPEG-2 비주얼, ITU-T H.263, ISO/IEC MPEG-4 비주얼 및 ITU-T H.264 (또한 ISO/IEC MPEG-4 AVC로 알려짐) 을 포함한다. 부가적으로, 그의 범위 및 화면 컨텐츠 코딩 확장들, 3D 비디오 코딩 (3D-HEVC) 및 멀티 뷰 확장들 (MV-HEVC) 그리고 스케일러블 확장 (SHVC) 을 포함한, 새로운 비디오 코딩 표준, 즉 고효율 비디오 코딩 (HEVC) 또는 ITU-T H.265 은, ITU-T 비디오 코딩 전문가 그룹 (VCEG) 및 ISO/IEC 모션 픽처 전문가 그룹 (MPEG) 의 비디오 코딩에 대한 공동 협력 팀 (JCT-VC) 에 의해 최근 개발되었다. 차세대 비디오 코딩 표준은 ITU-H.265 의 완성에 후속하여, 본 개시물의 시점에서 개발되고 있다.
HEVC 및 다른 비디오 코딩 사양들에서, 비디오 시퀀스는 통상적으로 일련의 픽처들을 포함한다. 픽처들은 또한, "프레임들" 로서 지칭될 수도 있다. 픽처는 SL, SCb, 및 SCr 로 표기된 3 개의 샘플 어레이들을 포함할 수도 있다. SL 은 루마 샘플들의 2-차원 어레이 (즉, 블록) 이다. SCb 는 Cb 크로미넌스 샘플들의 2-차원 어레이이다. SCr 은 Cr 크로미넌스 샘플들의 2-차원 어레이이다. 크로미넌스 샘플들은 또한, 본원에서 "크로마" 샘플들로서 지칭될 수도 있다. 다른 경우들에서, 픽처는 모노크롬일 수도 있고 단지 루마 샘플들의 어레이만을 포함할 수도 있다.
픽처의 인코딩된 표현을 생성하기 위해, 비디오 인코더 (22) 는 코딩 트리 유닛 (CTU) 들의 세트를 생성할 수도 있다. CTU들 각각은 루마 샘플들의 코딩 트리 블록, 크로마 샘플들의 2 개의 대응하는 코딩 트리 블록들, 및 코딩 트리 블록들의 샘플들을 코딩하는데 사용된 신택스 구조들을 포함할 수도 있다. 모노크롬 픽처들 또는 3 개의 별도의 컬러 평면들을 갖는 픽처들에서, CTU 는 코딩 트리 블록의 샘플들을 코딩하는데 사용된 신택스 구조들 및 단일 코딩 트리 블록을 포함할 수도 있다. 코딩 트리 블록은 샘플들의 NxN 블록일 수도 있다. CTU 는 또한, "트리 블록" 또는 "최대 코딩 유닛" (LCU) 으로서 지칭될 수도 있다. HEVC 의 CTU들은 H.264/AVC 와 같은 다른 표준들의 매크로블록들과 광범위하게 유사할 수도 있다. 하지만, CTU 는 반드시 특정 사이즈에 제한되지 않고, 하나 이상의 코딩 유닛 (CU) 들을 포함할 수도 있다. 슬라이스는 래스터 스캔 오더로 연속적으로 오더링된 정수의 CTU들을 포함할 수도 있다.
이 개시물은 샘플들 중 하나 이상의 블록들의 샘플들을 코딩하는데 사용된 하나 이상의 샘플 블록들 및 신택스 구조들을 지칭하기 위해 용어 "비디오 유닛" 또는 "비디오 블록" 또는 "블록" 을 사용할 수도 있다. 비디오 유닛들의 예시의 유형들은 CTU들, CU들, PU들, 변환 유닛들 (TU) 들, 매크로블록들 (MB) 들, 매크로블록 파티션들 등을 포함할 수도 있다. 일부 콘텍스트들에서, PU들의 논의는 매크로블록들 또는 매크로블록 파티션들의 논의와 상호교환될 수도 있다. 비디오 블록들의 예시의 유형들은 코딩 트리 블록들, 코딩 블록들, 및 다른 유형의 비디오 데이터의 블록들을 포함할 수도 있다.
코딩된 CTU 를 생성하기 위해, 비디오 인코더 (22) 는 CTU 의 코딩 트리 블록 (CTB)들 상에서 쿼드-트리 파티셔닝을 재귀적으로 수행하여 코딩 트리 블록들을 코딩 블록들, 이로써 명칭 "코딩 트리 유닛들" 로 분할할 수도 있다. 코딩 블록은 샘플들의 NxN (또는 NxM) 블록이다. CU 는 루마 샘플 어레이, Cb 샘플 어레이, 및 Cr 샘플 어레이를 갖는 픽처의 루마 샘플들의 코딩 블록 및 크로마 샘플들의 2 개의 대응하는 코딩 블록들, 및 코딩 블록들의 샘플들을 코딩하는데 사용된 신택스 구조들을 포함할 수도 있다. 모노크롬 픽처들 또는 3 개의 별도의 컬러 평면들을 갖는 픽처들에서, CU 는 코딩 블록의 샘플들을 코딩하는데 사용된 신택스 구조들 및 단일 코딩 블록을 포함할 수도 있다.
비디오 인코더 (22) 는 CU 의 코딩 블록을 하나 이상의 예측 블록들로 파티셔닝할 수도 있다. 예측 블록은, 동일한 예측이 적용되는 샘플들의 직사각형 (즉, 정사각형 또는 비-정사각형) 블록이다. CU 의 예측 유닛 (PU) 은 루마 샘플들의 예측 블록, 크로마 샘플들의 2 개의 대응 예측 블록들, 및 예측 블록들을 예측하는데 사용된 신택스 구조들을 포함할 수도 있다. 모노크롬 픽처들 또는 3 개의 별도의 컬러 평면들을 갖는 픽처들에서, PU 는 단일 예측 블록 및 그 예측 블록을 예측하는데 사용된 신택스 구조들을 포함할 수도 있다. 비디오 인코더 (22) 는 CU 의 각각의 PU 의 예측 블록들 (예를 들어, 루마, Cb 및 Cr 예측 블록들) 에 대한 예측 블록들 (예를 들어, 루마, Cb, 및 Cr 예측 블록들) 을 생성할 수도 있다.
비디오 인코더 (22) 는 인트라 예측 또는 인터 예측을 사용하여 PU 에 대한 예측 블록들을 생성할 수도 있다. 비디오 인코더 (22) 가 인트라 예측을 사용하여 PU 의 예측 블록을 생성하는 경우, 비디오 인코더 (22) 는 PU 를 포함하는 픽처의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다.
비디오 인코더 (22) 가 CU 의 하나 이상의 PU들에 대한 예측 블록들 (예를 들어, 루마, Cb 및 Cr 예측 블록들) 을 생성한 후에, 비디오 인코더 (22) 는 CU 에 대한 하나 이상의 잔차 블록을 생성할 수도 있다. 일 예로서, 비디오 인코더 (22) 는 CU 에 대한 루마 잔차 블록을 생성할 수도 있다. CU 의 루마 잔차 블록에서 각각의 샘플은, CU 의 예측 루마 블록들 중 하나에서의 루마 샘플과 CU 의 원래의 루마 코딩 블록에서의 대응하는 샘플 간의 차이를 나타낸다. 또한, 비디오 인코더 (22) 는 CU 에 대한 Cb 잔차 블록을 생성할 수도 있다. 크로마 예측의 일 예에서, CU 의 Cb 잔차 블록에서 각각의 샘플은, CU 의 예측 Cb 블록들 중 하나에서의 Cb 샘플과 CU 의 원래의 Cb 코딩 블록에서의 대응하는 샘플 간의 차이를 나타낸다. 비디오 인코더 (22) 는 또한, CU 에 대한 Cr 잔차 블록을 생성할 수도 있다. CU 의 Cr 잔차 블록에서 각각의 샘플은, CU 의 예측 Cr 블록들 중 하나에서의 Cr 샘플과 CU 의 원래의 Cr 코딩 블록에서의 대응하는 샘플 간의 차이를 나타낸다. 하지만, 크로마 예측을 위한 다른 기법들이 사용될 수도 있음을 이해해야 한다.
또한, 비디오 인코더 (22) 는 쿼드-트리 파티셔닝을 사용하여, CU 의 잔차 블록들 (예를 들어, 루마, Cb, 및 Cr 잔차 블록들) 을 하나 이상의 변환 블록들 (예를 들어, 루마, Cb, 및 Cr 변환 블록들) 로 분해할 수도 있다. 변환 블록은, 동일한 변환이 적용되는 샘플들의 직사각형 (예를 들어, 정사각형 또는 비정사각형) 블록일 수도 있다. CU 의 변환 유닛 (TU) 은 루마 샘플들의 변환 블록, 크로마 샘플들의 2 개의 대응하는 변환 블록들, 및 변환 블록들을 변환하는데 사용된 신택스 구조들을 포함할 수도 있다. 따라서, CU 의 각각의 TU 는 루마 변환 블록, Cb 변환 블록, 및 Cr 변환 블록을 가질 수도 있다. TU 의 루마 변환 블록은 CU 의 루마 잔차 블록의 서브-블록일 수도 있다. Cb 변환 블록은 CU 의 Cb 잔차 블록의 서브-블록일 수도 있다. Cr 변환 블록은 CU 의 Cr 잔차 블록의 서브-블록일 수도 있다. 모노크롬 픽처들 또는 3 개의 별도의 컬러 평면들을 갖는 픽처들에서, TU 는 변환 블록의 샘플들을 변환하는데 사용된 신택스 구조들 및 단일 변환 블록을 포함할 수도 있다.
비디오 인코더 (22) 는 TU 의 변환 블록에 하나 이상의 변환들을 적용하여 TU 에 대한 계수 블록을 생성할 수도 있다. 가령, 비디오 인코더 (22) 는 TU 의 루마 변환 블록에 하나 이상의 변환들을 적용하여 TU 에 대한 루마 계수 블록을 생성할 수도 있다. 계수 블록은 변환 계수들의 2-차원 어레이일 수도 있다. 변환 계수는 스칼라 양일 수도 있다. 비디오 인코더 (22) 는 TU 에 대한 Cb 계수 블록을 생성하기 위해 TU 의 Cb 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 비디오 인코더 (22) 는 TU 에 대한 Cr 계수 블록을 생성하기 위해 TU 의 Cr 변환 블록에 하나 이상의 변환들을 적용할 수도 있다.
계수 블록 (예를 들어, 루마 계수 블록, Cb 계수 블록 또는 Cr 계수 블록) 을 생성한 후에, 비디오 인코더 (22) 는 계수 블록을 양자화할 수도 있다. 양자화는 일반적으로, 계수들을 표현하기 위해 사용된 데이터의 양을 가능한 감소시키기 위해 변환 계수들이 양자화되어, 추가의 압축을 제공하는 프로세스를 지칭한다. 비디오 인코더 (22) 가 계수 블록을 양자화한 후에, 비디오 인코더 (22) 는 양자화된 변환 계수들을 나타내는 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 예를 들어, 비디오 인코더 (22) 는 양자화된 변환 계수들을 나타내는 신택스 엘리먼트들 상에 콘텍스트-적응 이진 산술 코딩 (CABAC) 을 수행할 수도 있다.
비디오 인코더 (22) 는 코딩된 픽처들 및 연관된 데이터의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 출력할 수도 있다. 따라서, 비트스트림은 비디오 데이터의 인코딩된 표현을 포함한다. 비트스트림은 네트워크 추상 계층 (NAL) 유닛들의 시퀀스를 포함할 수도 있다. NAL 유닛은, NAL 유닛에서의 데이터 유형의 표시를 포함하는 신택스 구조 및 에뮬레이션 방지 비트로 필요에 따라 배치된 로우 바이트 시퀀스 페이로드 (raw byte sequence payload; RBSP) 의 형태로 그 데이터를 포함하는 바이트들이다. NAL 유닛들 각각은 NAL 유닛 헤더를 포함하고, RBSP 를 캡슐화할 수도 있다. NAL 유닛 헤더는 NAL 유닛 유형 코드를 나타내는 신택스 엘리먼트를 포함할 수도 있다. NAL 유닛의 NAL 유닛 헤더에 의해 지정된 NAL 유닛 유형은 NAL 유닛의 유형을 나타낸다. RBSP 는 NAL 유닛 내에 캡슐화되는 정수의 바이트들을 포함하는 신택스 구조일 수도 있다. 일부 경우들에서, RBSP 는 제로 비트들을 포함한다.
비디오 디코더 (30) 는 비디오 인코더 (22) 에 의해 생성된 비트스트림을 수신할 수도 있다. 또한, 비디오 디코더 (30) 는 비트스트림을 파싱 (parse) 하여 비트스트림으로부터 신택스 엘리먼트들을 획득할 수도 있다. 비디오 디코더 (30) 는 비트스트림으로부터 획득된 신택스 엘리먼트들에 적어도 부분적으로 기초하여 비디오 데이터의 픽처들을 재구성할 수도 있다. 비디오 데이터를 재구성하기 위한 프로세스는 일반적으로, 비디오 인코더 (22) 에 의해 수행된 프로세스와 상반될 수도 있다. 예를 들어, 비디오 디코더 (30) 는 PU들의 모션 벡터들을 사용하여, 현재 CU 의 PU들에 대한 예측 블록들을 결정할 수도 있다. 또한, 비디오 디코더 (30) 는 현재 CU 의 TU들의 계수 블록들을 역 양자화할 수도 있다. 비디오 디코더 (30) 는 변환 계수 블록들 상에서 역변환을 수행하여, 현재 CU 의 TU들의 변환 블록들을 재구성할 수도 있다. 비디오 디코더 (30) 는 현재 CU 의 TU들의 변환 블록들의 대응 샘플들에 현재 CU 의 PU들에 대한 예측 블록들의 샘플들을 가산하는 것에 의해 현재 CU 의 코딩 블록들을 재구성할 수도 있다. 픽처의 각각의 CU 에 대해 코딩 블록들을 재구성하는 것에 의해, 비디오 디코더 (30) 는 픽처를 재구성할 수도 있다.
다음은 HEVC 에서의 블록 파티셔닝 구조를 설명한다. HEVC 표준 (ITU-T H.265 및 ISO/IEC 23008-2, 2013년 1월) 에서 뿐만 아니라, "Overview of the High Efficiency Video coding (HEVC) Standard", IEEE Trans. Sullivan 등에 의한 Circuits and Systems for Video Technology, Vol. 22, No. 12, pp. 1649-1668, 2012년 12월에서, 그리고 "Block Partitioning Structure in the HEVC Standard", IEEE Trans. Kim 등에 의한 Circuits and Systems for Video Technology, Vol. 22, No. 12, pp. 1697-1705, 2012년 12월에서, 각각의 픽처는 코딩 트리 유닛 (CTU) 들로 나눠지며, 이들은 특정 타일 또는 슬라이스에 대해 래스터 스캔 순서로 코딩된다. CTU 는 정사각형 블록이며 코딩트리 또는 쿼드트리의 루트를 나타낸다. CTU 사이즈는 8×8 에서 64×64 루마 샘플 범위일 수도 있다. 64×64 사이즈가 많은 경우들에서 사용되며, 통상적인 사용 경우로 간주될 수도 있다. CTU 는 다양한 로컬 특징들에 적응하기 위해 코딩 트리로서 나타낸 쿼드트리 구조를 사용함으로써 코딩 유닛 (CU) 들로 파티셔닝된다. 비디오 인코더 (22) 및/또는 비디오 디코더 (30) 는 CU 레벨에서 인터 픽처 (시간적) 또는 인트라 픽처 (공간적) 예측을 사용하여 픽처 영역을 코딩 (예를 들어, 각각 인코딩 또는 디코딩) 할지 여부를 결정할 수도 있다. 각각의 2Nx2N 사이즈 CU 는 PU 분할 (split) 유형에 따라 하나의 2Nx2N, 2 개의 2NxN 또는 Nx2N, 또는 4 개의 NxN 예측 유닛 (PU) 들로 더 분할될 수 있다. 동일한 예측 프로세스가 하나의 PU 내측의 모든 샘플들에 적용되고, 비디오 인코더 (22) 는 관련 정보를 PU 기반으로 비디오 디코더 (30) 에 시그널링 (예를 들어, 송신) 할 수도 있다. PU 분할 유형에 기초한 예측 프로세스를 적용하는 것에 의해 잔차 블록을 획득한 후, CU 는 다른 쿼드트리 구조에 따라 변환 유닛 (TU) 들로 파티셔닝 수 있다.
다음은 쿼드트리 플러스 이진 트리 (QTBT) 블록 파티셔닝 구조를 설명한다. "Block Partitioning Structure for Next Generation Video Coding", An 등에 의한 ITU-T SG16 Doc. COM16-C966, 2015년 9월에서, 그리고 https://vceg.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/branches/HM-13.0-QTBT/ 로부터 입수가능한 "QTBT Software", 2015년 10월에서, 쿼드트리 플러스 이진 트리 블록 파티셔닝 구조가 제안된다. 제안된 QTBT 구조에 따라, 쿼드트리의 루트 노드인 CTU (또는 I 슬라이스에 대해 "CTB") 는, 쿼드트리에 의해 파티셔닝되며, 여기서 하나의 노드의 쿼드트리 분할은 노드가 최소 허용된 쿼드트리 리프 노드 사이즈 (MinQTSize) 에 도달할 때까지 반복될 수 있다. 쿼드트리 리프 노드 사이즈가 최대 허용된 이진 트리 루트 노드 사이즈 (MaxBTSize) 보다 크지 않으면, 쿼드트리 리프 노드는 이진 트리 파티셔닝 구조에 따라 추가로 파티셔닝될 수 있다. 하나의 노드의 이진 트리 분할은 노드가 최소 허용된 이진 트리 리프 노드 사이즈 (MinBTSize) 에 도달하거나, 또는 반복적인 파티셔닝이 최대 허용된 이진 트리 깊이 (MaxBTDepth) 에 도달할 때까지 반복될 수 있다. 이진 트리 리프 노드는 어떠한 추가 파티셔닝없이 예측 (예를 들어, 인트라 픽처 또는 인터 픽처 예측) 및 변환을 위해 사용되는 CU (또는 I 슬라이스에 대해 "CB") 로 명명되거나 지칭된다.
이진 트리 파티셔닝 또는 분할에 따라, 대칭 수평 분할 및 대칭 수직 분할의 2 가지 유형이 있다. QTBT 파티셔닝 구조의 일 예에서, CTU 사이즈는 128x128 (즉, 4:2:0 크로마 포맷을 가정하면, 128x128 루마 샘플들 및 2 개의 대응 64x64 크로마 샘플들) 로 설정되고, MinQTSize 는 16x16 으로 설정되고, MaxBTSize 는 64x64 로 설정되고, MinBTSize (폭 및 높이 양자 모두에 대해) 가 4 로 설정되며, 그리고 MaxBTDepth 가 4 로 설정된다. 쿼드트리 파티셔닝은 쿼드트리 리프 노드들을 생성하기 위해 CTU 에 먼저 적용된다. 쿼드트리 리프 노드들은 16x16 (즉, MinQTSize) 에서 128x128 (즉, CTU 사이즈) 까지의 사이즈를 가질 수도 있다. 리프 쿼드트리 노드가 128x128 사이즈이면, 사이즈가 MaxBTSize (즉, 64x64) 를 초과하기 때문에, 이진 트리 구조에 따라 추가로 분할되지 않을 것이다. 그렇지 않으면, 리프 쿼드트리 노드는 이진 트리 파티셔닝 구조에 따라 추가로 파티셔닝될 수 있다.
따라서, 쿼드트리 리프 노드는 또한 이진 트리에 대한 루트 노드이고 0 의 이진 트리 깊이를 갖는다. 이진 트리 깊이가 MaxBTDepth (즉, 4) 에 도달할 때, 더 이상 분할이 수행되지 않는 것을 의미한다. 즉, MaxBTDepth 값과 동일한 이진 트리 깊이 값을 갖는 노드는, QTBT 파티셔닝 구조의 이진 트리 파티셔닝 부분 아래에서 허용된 최대 반복 수에 대해 수행된 이진 트리 분할의 프로덕트이다. 이진 트리 노드가 MinBTSize (즉, 4) 와 동일한 폭을 가질 때, 이는 더 이상의 수평 분할이 수행되지 않음을 의미한다. 유사하게, 이진 트리 노드가 MinBTSize와 동일한 높이를 가질 때, 더 이상의 수직 분할이 수행되지 않음을 의미한다. 이진 트리의 리프 노드들은, 즉 어떠한 추가 파티셔닝없이 예측 및 변환에 의해 추가로 프로세싱되는 CU들이다.
도 2 는 HEVC 에 따른 CTU (40) 에 대한 블록 파티셔닝의 일 예를 도시하는 개념적 다이어그램이다. 도 2 의 예에서, CTU (40) 는 64x64 CTU 를 나타낸다. 도 2 의 범례 (42) 에 나타낸 바와 같이, 실선 경계 (border) 는 CU 경계를 나타내고, 쇄선 경계는 TU 경계를 나타내며, 점선 경계는 PU 경계를 나타낸다.
도 3 은 QTBT 파티셔닝 구조에 따른 블록 파티셔닝의 일 예를 도시하는 개념적 다이어그램이다. 예를 들어, 도 3 의 좌측은 블록 (44)(예를 들어, CTU0 일 수도 있음) 에 관한 QTBT 블록 파티셔닝 스킴들을 도시한다. 도 3 의 우측은 (예를 들어, 키 또는 범례 (46) 의 형태로) 대응 트리 구조를 도시한다. 범례 (46) 에 나타낸 바와 같이, 도 3 에서의 실선은 쿼드트리 기반 분할을 나타내는 한편, 점선은 이진 트리 기반 분할을 나타낸다. 이진 트리 기반 분할의 각각의 분할 노드 (즉, 비-리프 노드) 에 대해, 비디오 인코더 (22) 는 어느 분할 유형 (즉, 수평 또는 수직) 이 사용되는지를 나타내기 위해 하나의 플래그를 시그널링할 수도 있다. 플래그와 관련하여, 영 (0) 의 값은 수평 분할을 나타내고, 일 (1) 의 값은 수직 분할을 나타낸다. 쿼드 트리 기반 분할에 대해, 분할 유형을 표시할 필요가 없는데, 이는 이것이 항상 수평 및 수직으로 동일한 사이즈의 4 개의 서브 블록들로 분할하기 때문이다.
I 슬라이스에 대해, 비디오 인코더 (22) 및/또는 비디오 디코더 (30) 는 QTBT 파티셔닝 구조에 따라 루마-크로마 분리 블록 파티셔닝 구조를 사용할 수도 있다. 예를 들어, 비디오 인코더 (22) 및/또는 비디오 디코더 (30) 는 QTBT 구조를 사용하여 하나의 CTU (예를 들어, 루마 CTB) 의 루마 컴포넌트를 루마 CB들로 파티셔닝할 수도 있고, 그 CTU 의 2 개의 대응 크로마 컴포넌트들 (예를 들어, 2 개의 대응 크로마 CTB들) 을 다른 QTBT 구조를 사용하여 크로마 CB들로 파티셔닝할 수도 있다. P 및 B 슬라이스들에 대해, 루마 및 크로마에 대한 블록 파티셔닝 구조가 공유된다. 즉, P 슬라이스 또는 B 슬라이스에 대해, 하나의 CTU (루마 및 크로마 양자 모두를 포함) 가 하나의 QTBT 구조에 의해 CU들로 파티셔닝된다. QTBT 블록 파티셔닝 구조에서, 변환 및 예측 사이즈는 각각의 리프 블록 파티셔닝 노드에서 항상 적용되고, 사이즈는 또한 리프 노드 블록 사이즈와 정렬된다. 이러한 방식으로, QTBT 파티셔닝 구조는 잠재적으로 CU, PU 및 TU 를 분리하는 개념을 없앨 수도 있다. 대신, QTBT 파티셔닝 구조에 따라, CU, PU 및 TU 는 단일 블록을 형성하도록 단일화된다. QTBT 파티셔닝 구조에 따라, 단일화된 블록은 쿼드트리 (QT) 노드 블록 또는 이진 트리 (BT) 노드 블록일 수 있다.
도 4a 및 도 4b는 QTBT 파티셔닝 구조의 추가 예들 및 상세들을 도시하는 개념적 다이어그램이다. 도 4a 는 QTBT 파티셔닝 기법들을 사용하여 파티셔닝된 블록 (50)(예를 들어, CTB) 의 일 예를 도시한다. 도 4a 에 도시된 바와 같이, QTBT 분할 기법들에 따라, 결과의 블록들의 각각은 각각의 블록의 중심을 통해 대칭으로 분할된다. 도 4b 는 도 4a 의 블록 파티셔닝에 대응하는 트리 구조를 도시한다. 도 4b 에서의 실선은, QT 기반 분할을 나타내고, 점선은 BT 기반 분할을 나타낸다. 일 예시에서, 이진 트리의 각각의 분할 노드 (즉, 비-리프 노드) 에서, 비디오 인코더 (22) 는 수행된 분할의 유형을 나타내기 위해 신택스 엘리먼트 (예를 들어, 플래그) 를 시그널링할 수도 있으며, 여기서 0 은 수평 분할을 나타내고 1 은 수직 분할을 나타낸다. 쿼드 트리 분할에 대해, 쿼드 트리 분할은 항상 블록을 수평 및 수직으로 동일한 사이즈 및 정사각형 형상의 네 (4) 개의 서브 블록들로 분할하기 때문에 분할 유형을 표시할 필요가 없다.
도 4b 에 나타낸 바와 같이, 노드 (70) 에서, 블록 (50) 은 QT 파티셔닝을 사용하여, 도 4 에 나타낸 4 개의 블록들 (51, 52, 53 및 54) 로 분할된다. 블록 (54) 은 더 이상 분할되지 않으며, 따라서 리프 노드이다. 노드 (72) 에서, 블록 (51) 은 BT 파티셔닝을 사용하여 2 개의 블록들로 더 분할된다. 도 4b 에 나타낸 바와 같이, 노드 (72) 는 수직 분할을 나타내는 1 로 마킹되어 있다. 즉, 비디오 인코더 (22) 는 수직 BT 기반 분할을 나타내는 노드 (72) 에 대해 1 의 값으로 플래그를 시그널링할 수도 있다. 이와 같이, 노드 (72) 에서의 분할은 블록 (55 및 56) 의 양자 모두를 포함하는 블록 및 블록 (57) 을 초래한다. 블록들 (55 및 56) 은 (노드 (74) 에서 1 로 나타낸 바와 같이) 노드 (74) 에서의 추가적인 수직 분할에 의해 생성된다. 노드 (76) 에서, 블록 (52) 은 BT 파티셔닝을 사용하여 2 개의 블록들 (58, 59) 로 더 분할된다. 도 4b 에 나타낸 바와 같이, 노드 (76) 는 수평 분할을 나타내는 0 으로 마킹되어 있다.
노드 (78) 에서, 블록 (53) 은 QT 기반 파티셔닝을 사용하여 4 개의 동일한 사이즈의 블록들로 분할된다. 블록들 (63, 66) 은 이 QT 기반 파티셔닝에서 생성되며 더 이상 분할되지 않는다. 노드 (80) 에서, 상부 좌측 블록은 먼저 수직 이진 트리 분할을 사용하여 분할되어 블록 (60) 및 우측 수직 블록 (노드 (80)에서 1 로 나타냄) 을 초래한다. 그 후, 우측 수직 블록은 수평 이진 트리 분할을 사용하여 (노드 (82) 에서 0 으로 나타낸 바와 같이) 블록들 (61 및 62) 으로 분할된다. 노드 (78) 에서의 쿼드 트리 분할로부터 생성된 하부 우측 블록은 노드 (84) 에서 수평 BT 기반 분할을 사용하여 (노드 (84) 에서 0 으로 나타낸 바와 같이) 블록들 (64 및 65) 로 분할된다.
HEVC 에 채용된 이산 코사인 변환 (DCT)-II 및 4x4 이산 사인 변환 (DST)-VII 에 부가하여, 강화된 다중 변환 (Enhanced Multiple Transform)("EMT" 또는 적응형 다중 변환 (Adaptive Multiple Transform; AMT) 으로도 또한 알려짐) 스킴은 인터 코딩된 그리고 인트라 코딩된 블록들 양자 모두에 대한 잔차 코딩을 위해 사용된다. AMT 스킴은 HEVC 에 기재된 현재 변환들 이외의 DCT/DST 계열로부터 다수의 선택된 여러 변환들을 활용한다. 새로 도입된 변환 매트릭스들은 DST-VII, DCT-VIII, DST-I 및 DCT-V 이다.
AMT 스킴은 64x64 보다 작은 CU들에 적용된다. 비디오 인코더 (22) 는 AMT 가 CU 에 적용되는지 여부를 표시하기 위해 플래그를 인코딩 및 시그널링할 수도 있다. 비디오 디코더 (30) 에서, AMT 가 적용되는지 여부는 비디오 인코더 (22) 에 의해 시그널링된 CU 레벨 플래그의 값에 의해 제어된다. 즉, 비디오 디코더 (30) 에서, CU 레벨 플래그의 값은 플래그가 수신되는 CU 내의 모든 변환 유닛 (TU) 들에 대한 AMT 적용가능성을 제어한다. 비디오 인코더 (22) 는 CU 레벨 플래그의 값을 0 과 동일하게 설정하여, DCT-II 가 CU 에 적용되어 잔차를 인코딩하는 것을 표시한다. AMT 인에이블된 CU 내의 각각의 TU 에 대해, 비디오 인코더 (22) 는 비디오 디코더 (30) 에서 사용/적용될 수평 및 수직 변환을 식별하기 위해 2 개의 추가 플래그를 인코딩 및 시그널링할 수도 있다. 비디오 인코더 (22) 에 의해 시그널링된 CU 레벨 플래그를 수신하면, 비디오 디코더 (30)는 플래그의 값이 제로 (0) 인 경우, DCT-II 가 적용되어 플래그가 적용되는 CU 의 모든 TU들을 디코딩하는 것을 결정할 수도 있다. 비디오 디코더 (30) 는 CU 를 디코딩하는데 적용하는 수평 및 수직 변환을 식별하기 위해 CU 에 관하여 수신된 2 개의 부가 플래그들을 사용할 수도 있다.
인트라 잔차 코딩에 대하여, 상이한 인트라 예측 모드들의 상이한 잔차 통계에 기인하여, 비디오 인코더 (22) 및/또는 비디오 디코더 (30) 는 모드 의존 변환 후보 선택 프로세스를 사용할 수도 있다. 하기의 표 1에 나타낸 바와 같이 3 개의 변환 서브세트들이 정의되었고, 변환 서브세트는 하기의 표 2 에 특정된 바와 같이 인트라 예측 모드에 기초하여 선택된다.
서브-세트 개념으로, 비디오 디코더 (30) 는 수신된 CU 레벨 플래그의 값이 1 과 동일할 때 각각의 TU 에 대해 인트라 예측 모드를 사용하여 표 2 (하기) 에 기초하여 변환 서브세트를 먼저 식별할 수도 있다. 차례로, 수평 및 수직 변환 각각에 대해, 인트라 예측 모드가 주어지면, 비디오 디코더 (30) 는 하기의 표 2 에 따라 변환 서브세트를 선택할 수도 있다. 차례로, 상기 표 1 에 따라, 비디오 디코더 (30) 는 추가로 비디오 인코더 (22) 로부터 수신된 명시적으로 시그널링된 변환 인덱스를 사용하여 선택된 변환 서브 세트로부터 변환 코어를 식별할 수도 있다.
하지만, 인터 예측 잔차에 대해, 비디오 인코더 (22) 및/또는 비디오 디코더 (30) 는 모든 인터 모드들에 대해 그리고 수평 및 수직 변환들 양자 모두에 대해, DST-VII 및 DCT-VIII 로 구성된, 단 하나의 변환 세트만을 사용할 수도 있다. AMT 의 복잡도는 잠재적으로 인코더 측 (예를 들어, 비디오 인코더 (22)) 에서 상대적으로 높게 되는데, 이는 전적으로 5 개의 (DCT-II 및 4 개의 다중 변환 후보들) 상이한 변환 후보들이 비디오 인코더 (22) 가 소위 "폭력 (brutal-force) 탐색" 을 사용하는 경우 각각의 잔차 블록에 대해 레이트 왜곡 비용으로 평가될 필요가 있을 수도 있다. 비디오 인코더 (22) 서 이러한 복잡도 논쟁을 완화하기 위해, JEM (joint exploration model) 에서의 알고리즘 가속화를 위한 몇 가지 최적화 방법들이 설계된다. JEM 은 차세대 비디오 코딩 기술들의 탐구를 위한 비디오 코덱 플랫폼이다. JEM 의 추가 양태들은 "Algorithm Description of Joint Exploration Test Model 2", ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11 의 공동 비디오 탐구 팀 (JVET), 2 차 미팅: San Diego, USA, 2016 년 2 월 20-26 일, 문서 번호 제 JVET-B1001_v1 에 기재되어 있다.
상술한 기존 기법들은 하나 이상의 잠재적인 문제들을 제기하다. 몇몇 기존 코딩 툴들, 예를 들어 EMT (2016년 1월 25일 출원된 U.S 특허출원 제 15/005,736 호에 기재됨), 분리가능하지 않는 세컨더리 변환 ("NSST", 2015년 9월 29일 출원된 U.S. 가출원 제 62/234,644 호, 2016년 2월 12일에 출원된 제 62/294,897 호, 2016년 4월 15일에 출원된 제 62/323,496 호, 및 2016년 5월 17일에 출원된 제 62/337,736 호, 그리고 2016년 9월 20일에 출원된 U.S. 특허출원 제 15/270,455 호 및 2016년 9월 20일에 출원된 제 15/270,507 호에 기재됨), 및 포지션 의존 예측 조합 (position-dependent prediction combination)("PDPC", 2015년 9월 29일에 출원된 U.S. 가출원 제 62/234,645 호, 및 2016년 9월 21일에 출원된 U.S. 특허출원 제 15/272,034 호에 기재됨), 인트라 또는 인터 예측이 적용되는지 여부의 식별 시 CU 레벨 시그널링이, HEVC-기술된 블록 파티셔닝 기술의 상단에서 개발되고 있으며, 이들 코딩 툴들은 CU 레벨, PU 레벨, 또는 TU 레벨에서 최적화되고 시그널링된다.
하지만, 이러한 코딩 툴들의 최적화는 QTBT 기반 파티셔닝의 모든 경우들에 적합하지 않을 수도 있다. 예를 들어, QTBT 파티셔닝 구조의 상단에 이들 코딩 툴들 중 하나 이상을 적용할 때, 최적화는 각각의 QT 또는 BT 블록 노드 상에서 수행될 수 있으며, 이는 결국 4x4 사이즈 만큼 작을 수 있다. 이로써, 코딩 툴을 적용하는 것은 (반드시 모든 경우들에서는 아니지만), 차선책일 수도 있다. 예를 들어, QTBT 파티셔닝 블록에, HEVC 기반 블록 파티셔닝에 최적화된 바와 같은, 코딩 툴을 적용하는 것이 차선책을 나타낼 수도 있는데, 이는 시그널링이 상당한 오버 헤드를 사용할 수 있기 때문이며, 이는 잠재적으로 작은 블록 사이즈들에 대해 너무 많은 오버헤드이다.
HEVC 기반 블록 파티셔닝에서의 일부 제한들은 QTBT 에서 중지되었다. 예를 들어, HEVC 기반 블록 파티셔닝에 따라, 모든 인트라 블록들 또는 모든 인터 블록들 중 하나를 사용하여 CU 가 코딩 (예를 들어, 비디오 인코더 (22) 에 의해 인코딩 및/또는 비디오 디코더 (30) 에 의해 디코딩) 될 수 있고, CU 는 8x8 보다는 더 작지 않다. 하지만, QTBT 파티셔닝 구조에 따라, 단일 8x8 블록조차도 인트라 코딩된 블록들과 인터 코딩된 블록들의 혼합을 가질 수도 있다. 작은 블록들 (예를 들어, 8x8 보다 작은 치수를 갖는 블록들) 에 대해, QTBT 에서의 이러한 유연성은 비디오 인코더 (22) 가 블록이 인트라 모드 또는 인터 모드에 의해 코딩되는지를 여부를 비디오 디코더 (30) 에 표시하기 위해 상당한 수의 비트들을 시그널링하는 것을 필요로 할 수도 있다. 시그널링된 비트들의 수 (또는 '시그널링 비트들') 은, 일부 경우들에서, 블록 노드의 사이즈를 고려하여 너무 많을 수도 있다. QTBT 에 의해, 코딩 툴들은 이미지들의 다양한 통계에 적응되지 않을 수도 있는, QT 블록 노드 또는 BT 블록 노드 상에서 항상 최적화되고 시그널링될 수도 있다.
본 개시물의 양태들은 위에 논의된 잠재적 문제들 중 하나 이상을 완화 및/또는 해결하도록 지향된다. 본 개시물은 본 개시물의 다양한 부분들에서 "방법들" 로서 또한 지칭될 수도 있는 다음의 기법들을 논의한다. 비디오 인코더 (22), 비디오 디코더 (30), 및 그 다양한 컴포넌트들 (예를 들어, 다양한 첨부 도면들에 나타낸 컴포넌트들) 은 본 명세서에 기재된 방법들을 수행하도록 구성된다는 것을 알 것이다. 다음의 항목화된 방법들은 개별적으로 적용될 수도 있고, 또는 대안으로, 본 개시의 비디오 코딩 디바이스가 다음의 방법들 중 임의의 조합을 수행할 수도 있다.
본 개시물의 일부 기법들에 따라, 비디오 인코더 (22) 및/또는 비디오 디코더 (30) 는 블록 분할 기반 파티셔닝 구조가 블록에 적용되는 시나리오들에 대해, 하나 이상의 코딩 툴들에 관한 블록 레벨 임계를 정의할 수도 있다. 본 명세서에서 사용된 바와 같이, "코딩 툴" 은 소정의 블록 레벨에서 스위치 온 또는 오프될 수 있는 방법, 기법, 또는 모드이다. 예를 들어, 비디오 인코더 (22) 및 비디오 디코더 (30) 는, 코딩 툴이 적용되는 블록이 HEVC 쿼드트리 구조 또는 QTBT 구조에 따라 파티셔닝되는 경우, 인트라 예측, 인터 예측, 인터 스킵, 변환 시그널링, 강화된 다중 변환 (EMT), 분리가능하지 않은 세컨더리 변환 (NSST), 인트라 또는 인터 예측이 적용될지 여부를 식별할 시의 시그널링, 또는 포지션 의존 예측 조합 (PDPC) 중 하나 이상과 같은 코딩 툴들을 적용할 때, 블록 레벨 임계를 구현할 수도 있다. 비디오 인코더 (22) 는 적용가능한 코딩 툴을 최적화할 수도 있고, 적용가능한 코딩 툴에 대해 미리 결정된 블록 레벨 임계를 충족하거나 초과하는 블록에 대한 코딩에 관련된 하나 이상의 신택스 엘리먼트들을 시그널링할 수도 있다. 비디오 인코더 (22) 는 임계가 비디오 인코더 (22) 및/또는 비디오 디코더 (30) 가 예측 및 변환을 적용하는 블록 사이즈와 상이하도록 블록 레벨 임계를 설정할 수도 있다.
본 개시물의 기법들의 일부 구현들에서, 비디오 인코더 (22) 및/또는 비디오 디코더 (30) 는 블록 레벨 임계를 설정하여, 블록 레벨 임계가 개개의 블록의 치수들에 관하여 표현될 수 있다. 예를 들어, 블록 레벨 임계는 블록의 폭 및 높이의 일부 조합, 또는 블록 면적 사이즈의 하나 이상에 관하여 표현될 수도 있다. 예를 들어, 비디오 인코더 (22) 는 EMT 코딩 툴에 대해 256 의 블록 면적 기반 임계를 설정할 수도 있다. 즉, 비디오 인코더 (22) 는 EMT 기반 코딩을 면적에 관하여 적어도 256 픽셀을 커버하는 블록에 적용할 수도 있다. 이 예에서, 비디오 인코더 (22) 는 EMT 플래그 및 EMT 인덱스를 인코딩 및 시그널링하여 EMT 플래그 및 인덱스가 256 면적 임계를 충족하거나 초과하는 블록들에 대해 블록-와이드 (block-wide) 에 기초하여 적용된다. 즉, 256 픽셀 블록이 HEVC 쿼드트리 구조에 따라 또는 QTBT 구조에 따라 추가로 파티셔닝되더라도, EMT 플래그의 값은 256 픽셀 블록의 모든 서브 블록들에 적용된다. QTBT 분할 구조에 따라, 이진 파티셔닝은 256 픽셀이 추가로 파티셔닝된 후에만 적용가능하게 될 수도 있다. 즉, 256 픽셀 블록은 블록이 HEVC 쿼드트리 파티셔닝에 따라 분할되는지 또는 QTBT 파티셔닝 구조에 따라 분할되는지에 관계없이, 정사각형 폼 팩터를 가질 수도 있다.
이러한 구현에서, 비디오 인코더 (22) 는 256 픽셀 블록이 EMT 를 사용하여 인코딩될지 여부를 블록에 걸쳐 비트레이트 최적화를 적용함으로써 결정할 수도 있다. 즉, 비디오 인코더 (22) 는 임계 사이즈의 블록의 모든 서브 블록들에 걸쳐 비트레이트 최적화를 실행함으로써, (EMT 를 구현하거나 구현하지 않는) 2 가지 옵션들 중 하나를 선택할 수도 있다. 비디오 인코더 (22) 가 블록 와이드 비트 레이트 최적화의 결과들에 기초하여 EMT 가 256 픽셀 블록에 걸쳐 적용되는 것을 결정하면, 비디오 인코더 (22) 는 "인에이블된" 상태에서 (예를 들어, 플래그의 값을 1 의 값으로 설정함으로써) EMT 플래그를 인코딩할 수도 있다. 비디오 인코더 (22) 가 EMT 플래그가 비트레이트 최적화 동작(들)에 기초하여 인에이블 상태로 설정 (예를 들어, 1 의 값으로 설정) 되어야 한다고 결정하면, 비디오 인코더 (22) 는 EMT 플래그를 전체 256 픽셀 블록에 대해 1 의 값으로 설정할 수도 있다. 즉, 비디오 인코더 (22) 는 전체 256 픽셀 블록에 대한 단일 EMT 플래그를 인코딩 할 수도 있고, EMT 플래그의 값을 1 로 설정할 수도 있다. 결국, 전체 256 픽셀 블록에 대해 1 의 값을 갖는 EMT 플래그에 기초하여, 비디오 인코더 (22) 는 256 픽셀 블록의 각각의 서브 블록에 대해 개개의 EMT 인덱스 값을 인코딩하고 시그널링할 수도 있다.
코딩 툴들에 관한 블록 레벨 임계화 기법들의 일부 예들에서, 비디오 인코더 (22) 는 블록 사이즈 치수 이외의 기준에 기초하여 블록 레벨 임계를 설정할 수도 있다. 예를 들어, 비디오 인코더 (22) 는 CTU, 슬라이스, 타일, 픽처 또는 픽처들의 그룹 (GOP) 기반 중 하나 이상에 기초하여 블록 레벨 임계를 설정할 수도 있다. 즉, 블록 레벨 임계는 위의 기준 중 하나 이상에 기초하여 달라질 수도 있다.
대안으로, 일부 구현들에서, 비디오 인코더 (22) 는 각각 이전에 인코딩된 CTU, 슬라이스, 타일, 픽처 또는 GOP 의 인코딩된 정보를 사용하여, CTU, 슬라이스, 타일, 화상 또는 GOP 기반으로 블록 레벨 임계를 업데이트할 수도 있다. 비디오 인코더 (22) 가 이전에 인코딩된 정보를 사용하여 블록 레벨 임계를 변경하는 몇몇 경우들에서, 비디오 인코더 (22) 는 블록 레벨을, 예를 들어 각각의 블록 사이즈에 대해 예측 및/또는 변환이 수행되는 횟수에 기초하여 설정된다. 일부 예들에서, 비디오 인코더 (22) 는 블록 레벨 임계 값을 디폴트 값으로 설정할 수도 있다. 디폴트 값의 예는 64 또는 256 의 값을 포함하지만 이에 제한되지 않는다. 일부 예들에서, 비디오 인코더 (22) 는 블록을 포함하는 슬라이스에 대한 슬라이스 유형, 예를 들어 슬라이스가 인트라, P 또는 B 슬라이스인지 여부에 의존하여 블록 레벨 임계를 시그널링할 수도 있다. 블록 레벨 임계는 몇몇 미리 정의된 고정 값들 중 하나일 수도 있지만, 비디오 인코더 (22) 는 상이한 코딩 구성들 또는 이미지 컴포넌트들에 대해 상이한 값을 적용할 수도 있다. 예를 들어, 비디오 인코더 (22) 는 현재 슬라이스가 인트라, P 또는 B 슬라이스인지 및/또는 현재 블록이 루마 또는 크로마 컴포넌트인지 여부와 같은 소정의 팩터에 의존하여 블록 레벨 임계에 대해 다른 값을 적용할 수도 있다.
일부 예들에서, 비디오 인코더 (22) 는 임계 값이 적용되는 블록에 대해 대역 외 블록 레벨 임계를 시그널링할 수도 있다. 예를 들어, 비디오 인코더 (22) 는 슬라이스 헤더, 픽처 파라미터 세트 (PPS), 비디오 파라미터 세트 (VPS) 또는 시퀀스 파라미터 세트 (SPS) 와 같은 하나 이상의 신택스 구조들에서 블록 레벨 임계를 시그널링할 수도 있다. 블록 레벨 임계 (예를 들어, 적용가능한 인코딩된 블록에 대해 대역 내인지 또는 대역 외인지) 를 수신하면, 비디오 인코더 (30) 는 인코딩된 블록에 대해 상반 (reciprocal)(디코더 측) 코딩 툴을 적용하기 위한 조건으로서 블록 레벨 임계를 사용할 수도 있다. EMT 의 적용을 위한 블록 면적 기반 임계와 관련하여 상술한 구현에서, 비디오 디코더 (30) 는 시그널링된 블록 레벨 임계 면적을 충족하거나 초과하는 임의의 수신된 EMT 플래그를 블록에 적용할 수도 있다. 예를 들어, 수신된 블록 레벨 임계 면적 (예를 들어, 슬라이스 헤더, VPS, PPS, 또는 SPS) 이 256 픽셀의 면적을 반영하면, 비디오 디코더 (30) 는 임의의 수신된 EMT 플래그를 영역에 적어도 256 픽셀이 있는 블록에 적용할 수도 있다.
예를 들어, 비디오 디코더 (30) 는 인에이블 상태 (예를 들어, 1 의 값) 로 설정되는 EMT 플래그를 수신할 수도 있다. EMT 플래그의 인에이블된 상태에 기초하여, 비디오 디코더 (30) 는 EMT 플래그가 적용되는 영역에서 적어도 256 픽셀을 커버하는 블록의 디코딩에 대해 EMT 코딩 툴을 활성화할 수도 있다. 즉, 비디오 디코더 (30) 는 영역에 적어도 256 픽셀이 있는 블록의 모든 서브 블록들에 대해 EMT 코딩 툴을 활성화할 수도 있다. 결국, 비디오 디코더 (30) 는 영역에 적어도 256 픽셀이 있는 블록의 각각의 서브 블록에 대해 개별 EMT 인덱스를 수신 할 수도 있다. 각각의 수신된 EMT 인덱스 값에 기초하여, 비디오 디코더 (30) 는 EMT 코딩 툴을 사용하여 EMT 활성화 블록의 각각의 서브 블록을 재구성할 수도 있다. 이러한 방식으로, 비디오 인코더 (22) 및 비디오 디코더 (30) 는, 서브 블록들을 획득하는데 사용된 파티셔닝 스킴에 관계 없이, 각각의 개별 서브 블록에 대해 EMT 플래그를 요구하는 대신, 임계 블록 레벨에서 EMT 플래그를 레버리지함으로써, 본 개시물의 기법에 따라 EMT 플래그 시그널링에 대한 필요성을 완화할 수도 있다.
이러한 방식으로, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 QTBT 파티셔닝을 수용하기 위해 코딩 툴의 최적화에서 어떠한 변경도 요구하지 않으면서, 기존 코딩 툴들을 적용하기 위해 본 개시물의 블록 레벨 임계화 기법들을 구현할 수도 있다. EMT 플래그와 같은 코딩 툴 기반 신택스 엘리먼트는, HEVC 쿼드트리 파티셔닝 구조에 따라 CU 레벨에서 시그널링된다. HEVC 호환 CU 는 사이즈를 변화시킬 수 있지만, 8X8 치수 아래로 떨어지지는 않는다. 하지만, QTBT 파티셔닝 구조는 8X8 블록이 때때로 4 개의 서브 블록들까지 분할되는 정도로 추가로 파티셔닝되도록 한다. 이와 같이, QTBT 파티셔닝 구조에 대해 기존의 코딩 툴들 (예를 들어, EMT, PDPC 등) 의 최적화를 확장하면 플래그 코딩이 4 배 증가할 것이다. 이로써, 비디오 인코더 (22) 가 QTBT 파티셔닝된 블록에 대해 4 개의 플래그를 인코딩 및 시그널링하도록 요구되며, 여기서 비디오 인코더 (22) 는 HEVC 쿼드트리 파티셔닝된 블록에 대한 단일 플래그를 인코딩 및 시그널링하도록 요구될 것이다. 유사하게, 비디오 디코더 (30) 는 QTBT 분할된 블록에 대해 4 개의 플래그들을 수신하고 프로세싱하도록 요구되며, 여기서 비디오 디코더 (30) 는 HEVC 쿼드트리 분할된 블록에 대한 단일 플래그를 수신하고 프로세싱하도록 요구되었을 것이다.
EMT 플래그에 대한 블록 면적 기반 임계화의 예에 의해 예시된 바와 같이, 본 개시물의 기법들은 복잡도 및 대역폭 소비에서의 4 배 증가 없이, 비디오 인코더 (22) 및 비디오 디코더 (30) 가 QTBT 파티셔닝된 블록들에 대해 HEVC 최적화된 코딩 툴 (예컨대 EMT) 을 계속 레버리징하는 것을 가능하게 한다. 즉, 본 개시물의 블록 면적 기반 임계화 기법들은, 블록이 QTBT 파티셔닝 구조에 따라 파티셔닝되더라도, 비디오 인코더 (22) 및 비디오 디코더 (30) 가 정사각형 256 픽셀 블록에 대해 단일 플래그를 프로세싱하는 것을 가능하게 한다. 이러한 방식으로, 본 개시물의 기법들은 비디오 인코더 (22) 및 비디오 디코더 (30) 가 보다 최신의 QTBT 블록 파티셔닝 구조를 레버리징하면서, 기존 HEVC 최적화된 코딩 툴들을 사용하는 것을 가능하게 한다. 즉, 본 개시물의 기법들은 QTBT 파티셔닝 구조에 대한 변경을 필요로 하지 않으면서 기존 (HEVC 최적화된) 코딩 툴들의 계속적인 사용을 가능하게 한다. 예를 들어, 본 개시물에 기재된 바와 같이, 블록 레벨 임계를 사용하면, (코딩 툴들에 대한 변화가 가능하더라도) 코딩 툴들을 변경하는 것을 반드시 요구하지 않으면서 QTBT 파티셔닝 구조와 함께 코딩 툴이 사용되도록 한다.
본 개시물의 일부 양태들에 따르면, 비디오 인코더 (22) 및/또는 비디오 디코더 (30) 는 인트라 코딩만 적용되거나 인터 코딩만 적용되는 최저 블록 레벨을 결정하기 위해 블록 레벨 임계를 적용할 수도 있다. 예를 들어, 비디오 인코더 (22) 는 사이즈 기반 블록 레벨 임계에 기초하여, 인트라 코딩 또는 인터 코딩만이 적용되는 최소 블록 레벨을 특정할 수도 있다. 예를 들어, 비디오 인코더 (22) 는 인트라 코딩 및 인터 코딩의 혼합이 블록 레벨 임계 또는 그 아래에서 허용되지 않음을 표시하거나 특정할 수도 있다. 즉, 비디오 인코더 (22) 는 임계 면적 이하의 면적을 갖는 블록의 모든 서브 블록들에 대해 인터 코딩만 또는 인트라 코딩만 (그러나 양자의 조합은 아님) 을 적용할 수도 있다. 다른 말로 하면, 블록이 면적 임계에 있거나 그 내에 있으면, 비디오 인코더 (22) 는 모든 서브 블록들에 인트라 코딩을 적용할 수도 있고, 또는 서브 블록들을 형성하는데 사용된 파티셔닝 구조(들)에 관계 없이, 블록의 모든 서브 블록들을 인코딩하는데 인터 코딩을 적용할 수도 있다. 블록 면적에 관하여 설명되었지만, 일부 경우들에서, 비디오 인코더 (22) 는 블록 폭 및/또는 블록 높이와 같은 다른 사이즈 치수들에 기초하여 블록 레벨 임계 값을 결정하고 시그널링할 수도 있음을 이해할 것이다. 따라서, 용어 블록 면적은 블록 폭 및/또는 블록 높이를 고려할 때의 사이즈 및 면적에 기초한 사이즈를 포함한다. 용어 블록 면적은 사이즈의 2 차원 척도에 제한되는 것으로 고려되는 것이 아니라, 단일 치수를 또한 포함하여야 한다 (예를 들어, 폭 및/또는 높이).
일부 예들에서, 비디오 인코더 (22) 는 CTU 기반, 슬라이스 기반, 타일 기반, 픽처 기반 또는 픽처 그룹 (GOP) 기반 중 하나 이상에 기초하여 블록 레벨 임계를 변경할 수도 있다. 부가적으로, 인트라 및 인터 코딩의 임의의 혼합을 허용 또는 불허하도록 블록 레벨 임계를 적용하는 비디오 인코더 (22) 의 다양한 예들에서, 비디오 인코더 (22) 는 슬라이스 헤더, 픽처 파라미터 세트 (PPS), 비디오 파라미터 세트 (VPS), 또는 시퀀스 파라미터 세트 (SPS) 와 같은, 대응 QFMFHR에 관하여 대역 외 블록 레벨 임계를 시그널링할 수도 있다.
대안으로, 비디오 인코더 (22) 는 이전에 인코딩된 CTU, 슬라이스, 타일, 픽처 또는 GOP 의 코딩된 정보를 각각 사용하여, CTU 기반, 슬라이스 기반, 타일 기반, 픽처 기반 또는 GOP 기반 중 하나 이상에 대한 블록 레벨 임계를 업데이트할 수도 있다. 예를 들어, 비디오 인코더 (22) 는 각각의 블록 사이즈에 대해 예측 및/또는 변환이 수행되는 횟수에 기초하여 블록 레벨 임계를 업데이트할 수도 있다. 일부 대안들에서, 비디오 인코더 (22) 는 블록 레벨 임계를 디폴트 값, 예컨대 64 또는 256 으로 설정할 수도 있다. 일부 예들에서, 비디오 인코더 (22) 는 슬라이스 유형, 예를 들어 슬라이스가 인트라 슬라이스, P 슬라이스 또는 B 슬라이스인지 여부에 의존하여, 블록 레벨 임계를 시그널링할 수도 있다.
인트라 코딩 또는 인터 코딩 결정들에 대한 블록 레벨 임계의 일부 구현들에서, 블록 레벨 임계 업데이트는 선택적일 수도 있다. 예를 들어, 비디오 인코더 (22) 는 블록 레벨 임계 값과 관련된 정보를 제공하기 위해 (기존 플래그인) "현재" 플래그를 시그널링할 수도 있다. 예를 들어, 비디오 인코더 (22) 는 플래그를 0 값으로 설정하여 블록 레벨 임계가 디폴트 임계 레벨 또는 디폴트 값으로 설정되는 것을 표시할 수도 있다. 블록 레벨 임계가 디폴트 값으로 설정되는 경우, 비디오 인코더 (22) 는 선택적으로 (PPS, SPS 또는 VPS 에서와 같이) 더 높은 구조 레벨에서 블록 레벨 임계 값을 시그널링할 수도 있다. 다른 한편으로, 비디오 인코더 (22) 는 현재 플래그의 값을 1 의 값으로 설정하여, 블록 레벨 임계 값이 직접 시그널링될 것임을 표시할 수도 있다. 일부 경우들에서, 블록 레벨 임계를 직접 시그널링하기 위해, 비디오 인코더 (22) 는 레벨이 디폴트 값과 동일한 임의의 경우를 배제하는 것에 의해 시그널링된 값을 조정할 수도 있다.
일부 예들에서, 비디오 인코더 (22) 는 블록을 포함하는 슬라이스에 대한 슬라이스 유형, 예를 들어 슬라이스가 인트라, P 또는 B 슬라이스인지 여부에 의존하여 블록 레벨 임계 값을 시그널링할 수도 있다. 블록 레벨 임계는 몇몇 미리 정의된 고정 값들 중 하나일 수 있지만, 비디오 인코더 (22) 는 상이한 코딩 구성들 또는 이미지 컴포넌트들에 대해 상이한 값을 적용할 수도 있다. 예를 들어, 비디오 인코더 (22) 는 현재 슬라이스가 인트라 슬라이스, P 슬라이스 또는 B 슬라이스인지 여부 및/또는 현재 블록이 루마 또는 크로마 컴포넌트인지 여부와 같은, 소정의 팩터들에 의존하여 블록 레벨 임계에 대해 상이한 값을 적용할 수도 있다.
일부 예들에서, 비디오 인코더 (22) 는 블록 레벨 임계 또는 그 아래인 블록에 대해 인트라 코딩과 인터 코딩 사이의 선택에 대한 하나 이상의 예외들을 구현할 수도 있다. 즉, (인트라 전용 또는 인터 전용 블록들에 대한 블록 레벨 임계화에 대한 예외들을 형성하는) 일부 시나리오들에서, 비디오 인코더 (22) 는 인트라 및 인터 코딩 양자 모두를 사용하여 블록 레벨 또는 그 아래에 있는 블록의 서브 블록들을 인코딩할 수도 있다. 그러한 일부 시나리오들에서, 비디오 인코더 (22) 가 인터 전용 또는 인트라 전용 선택에 대한 예외들을 만들도록 구성되는 경우, 비디오 인코더 (22) 는 블록 레벨 임계에 또는 그 내에 있는 블록에 대한 플래그를 인코딩 및 시그널링하여, 블록의 개개의 서브 블록들에 대해 인트라 및 인터 코딩의 혼합이 허용되는지 여부를 표시할 수도 있다. 예를 들어, 비디오 인코더 (22) 는 인트라 코딩 및 인터 코딩의 혼합이 특정 대응하는 블록에 허용되지 않음을 표시하기 위해 플래그를 0 의 값으로 설정할 수도 있다. 이 예에서, 비디오 인코더 (22) 는 대응 블록의 서브 블록들의 코딩에 대해 인터 코딩 및 인트라 코딩의 혼합이 허용됨을 표시하기 위해 플래그를 1 의 값으로 설정할 수도 있다. 비디오 인코더 (22) 가 인트라 코딩 및 인터 코딩의 혼합이 블록에 대해 허용되는지 여부를 표시하기 위해 인코딩하고 시그널링하는 플래그는, 그 플래그가 H.264 및/또는 HEVC 와 같은 기존 비디오 코딩 표준들에 특정된 신택스 엘리먼트에 대해 부가 신택스 엘리먼트를 나타낸다는 점에서, 새로운 플래그를 나타낼 수도 있다.
비디오 인코더 (22) 가 인트라 코딩 또는 인터 코딩만이 적용될 수 있는 최저 블록 레벨을 결정하기 위해 블록 레벨 임계화를 사용하는 예들에서, 비디오 디코더 (30) 는 블록의 서브 블록들을 재구성하기 위해 인트라 코딩 또는 인터 코딩만이 적용될 수 있는 최저 블록 레벨을 결정하는데 블록 레벨 임계화를 사용하기 위해 상반 동작들을 구현할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 비디오 인코더 (22) 에 의해 특정된 사이즈 기반 블록 레벨 임계에 기초하여, 인트라 코딩 또는 인터 코딩만이 적용될 수 있는 최소 블록 레벨을 결정할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 블록 레벨 임계에 또는 그 아래에 있는 블록들에 대해 인트라 코딩 및 인터 코딩의 혼합이 허용되지 않는다는 것을, 비디오 인코더 (22) 에 의해 시그널링된 비트스트림에 포함된 데이터에 기초하여 결정할 수도 있다. 즉, 비디오 디코더 (30) 는 임계 면적 이하인 면적을 갖는 인코딩된 블록의 모든 서브 블록들을 재구성하기 위해 인터 코딩만 또는 인트라 코딩만 (그러나 양자의 조합은 아님) 을 적용할 수도 있다. 비디오 인코더 (22) 가 블록 면적에 관하여 블록 레벨 임계를 특정하는 예들에서, 블록이 면적 임계에 또는 그 내에 있으면, 비디오 디코더 (30) 는 서브 블록들을 형성하는데 사용된 파티셔닝 구조(들)에 관계 없이, 블록의 모든 서브 블록들을 재구성하기 위해 인터 코딩을 적용할 수도 있고, 또는 블록의 모든 서브 블록들을 재구성하기 위해 인트라 코딩을 적용할 수도 있다. 블록 면적에 관하여 기재되었지만, 일부 예들에서 비디오 디코더 (30) 는 블록 폭 및/또는 블록 높이와 같은 다른 사이즈 치수들에 기초하여 블록 레벨 임계를 결정할 수도 있음을 이해할 것이다.
일부 예들에서, 비디오 디코더 (30) 는 CTU 기반, 슬라이스 기반, 타일 기반, 픽처 기반, 또는 GOP 기반 중 하나 이상에 기초하여 블록 레벨 임계의 변동들을 검출할 수도 있다. 부가적으로, 다양한 예들에서, 비디오 디코더 (30) 는 블록에 적용가능한 슬라이스 헤더, PPS, VPS, 또는 SPS 에서와 같은, 대응 블록에 관하여 대역 외 수신되는 신택스 구조들로부터 블록 레벨 임계를 획득할 수도 있다. 일부 예들에서, 비디오 디코더 (30) 는 슬라이스 유형, 예를 들어 슬라이스가 인트라 슬라이스, P 슬라이스, 또는 B 슬라이스인지에 의존하는 비트스트림 정보에 기초하여 블록 레벨 임계를 결정할 수도 있다.
인트라 코딩 또는 인터 코딩 결정들에 대한 블록 레벨 임계화의 일부 구현들에서, 블록 레벨 임계 업데이팅은 선택적일 수도 있다. 예를 들어, 비디오 디코더 (30) 는 블록 레벨 임계 레벨에 관련된 정보를 결정하기 위해 (기존 플래그인) "현재" 플래그를 수신하고 프로세싱할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 블록 레벨 임계가 디폴트 임계 레벨 또는 디폴트 값으로 설정되는 것을 결정하기 위해 플래그의 0 값을 복구할 수도 있다. 블록 레벨 임계가 디폴트 값으로 설정되는 경우, 비디오 디코더 (20) 는 일부 시나리오들에서 비트스트림의 (PPS, SPS, 또는 VSP 와 같은) 상위 구조 레벨 내에서 블록 레벨 임계 값을 수신할 수도 있다. 다른 한편으로, 비디오 디코더 (30) 는, 현재 플래그의 값이 1 의 값으로 설정되는 경우, 블록 레벨 임계 값이 직접 수신되고 또는 수신될 것임을 결정할 수도 있다.
비디오 디코더 (30) 가 플래그를 수신하지 않는 경우, 비디오 디코더 (30) 는 플래그의 값이 0 인 것을 추론할 수도 있다. 즉, 플래그가 블록에 관하여 수신되지 않는 경우, 비디오 디코더 (30) 는 블록 레벨 임계가 디폴트 값으로 설정되는 것을 결정할 수도 있고, 이에 따라 블록에 관련 코딩 툴(들)을 적용하는 것에 관하여 임계 블록 레벨로서 디폴트 값을 사용할 수도 있다. 일부 경우들에서, 비디오 디코더 (30) 는 조정된 값을 수신할 수도 있어서, 시그널링된 값이 레벨이 디폴트 값과 동일한 임의의 경우를 배제한다.
일부 예들에서, 비디오 디코더 (30) 는 블록을 포함하는 슬라이스에 대한 슬라이스 유형, 예를 들어 슬라이스가 인트라 슬라이스, P 슬라이스, 또는 B 슬라이스인지 여부에 의존하는 값으로서 블록 레벨 임계를 수신할 수도 있다. 블록 레벨 임계가 몇몇 미리 정의된 고정 값들 중 하나일 수도 있지만, 비디오 디코더 (30) 는 상이한 코딩 구성들 또는 이미지 컴포넌트들에 대해 상이한 값을 적용할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 소정의 팩터들, 예컨대 현재 슬라이스가 인트라 슬라이스, P 슬라이스, 또는 B 슬라이스인지 여부, 및/또는 현재 블록이 루마 또는 크로마 컴포넌트인지 여부에 의존하여 블록 레벨 임계에 대해 상이한 값을 적용할 수도 있다.
일부 경우들에서, 비디오 디코더 (30) 는 블록 레벨 임계에 또는 그 아래에 있는 블록에 대해 인트라 코딩과 인터 코딩 사이의 선택에 대해 하나 이상의 예외들을 구현할 수도 있다. 즉, (인트라 전용 또는 인터 전용 블록들에 대한 블록 레벨 임계화에 대해 예외들을 형성하는) 일부 시나리오들에서, 비디오 디코더 (30) 는 블록 레벨 임계에 또는 그 아래에 있는 블록의 인코딩된 서브 블록들을 재구성하기 위해 인트라 및 인터 코딩 양자 모두를 사용할 수도 있다. 일부 그러한 시나리오들에서, 비디오 디코더 (30) 가 인터 전용 또는 인트라 전용 선택에 대한 예외들을 만들도록 구성되는 경우, 비디오 디코더 (30) 는 블록 레벨에 또는 그 아래에 있는 인코딩된 블록에 대해 (비디오 인코더 (22) 에 의해 시그널링된 비트스트림에 포함되는) 플래그를 수신하고 재구성할 수도 있다. 플래그의 값은 인트라 및 인터 코딩의 혼합이 블록의 개개의 서브 블록들을 재구성하는 것에 대해 허용되는지 여부를 표시할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 플래그가 0 의 값으로 설정되는 경우, 인트라 코딩 및 인터 코딩의 혼합이 특정 대응 블록에 대해 허용되지 않는 것을 결정할 수도 있다. 이러한 예에서, 비디오 디코더 (30) 는 블록의 다양한 서브 블록들을 재구성하기 위해 인트라 코딩만 또는 인터 코딩만 (그러나 그 조합은 아님) 을 사용할 수도 있다. 이러한 구현에 따라, 비디오 디코더 (30) 가 1 의 값으로 플래그가 설정되는 것을 결정하는 경우, 비디오 디코더 (30) 는 인터 코딩 및 인트라 코딩의 혼합이 대응 블록의 서브 블록들의 재구성에 관하여 허용되는 것을 결정할 수도 있다. 비디오 디코더 (30) 가 인트라 코딩 및 인터 코딩의 혼합이 블록을 재구성하는 것에 관하여 허용되는지 여부를 결정하기 위해 수신하고 재구성할 수도 있는 플래그는, H.264 및/또는 HEVC 와 같은 기존 비디오 코딩 표준들에서 특정된 신택스 엘리먼트들에 관하여 플래그가 부가 신택스 엘리먼트를 나타낸다는 점에서, 새로운 플래그를 나타낼 수도 있다.
일부 예들에서, 비디오 인코더 (22) 및/또는 비디오 디코더 (30) 는 하나 이상의 코딩 툴들의 최적화를 위해 블록 레벨 제약을 구현할 수도 있지만, 임계 충족 또는 임계 초과 블록이 인트라 코딩된 및 인터 코딩된 서브 블록들의 혼합을 포함하는 경우들에서 그 제약을 제거할 수도 있다. 예를 들어, 일부 코딩 툴들, 예컨대 PDPC 및 NSST 은 HEVC 에 따라 인트라 코딩에 대해서만 최적화된다. EMT 는 인터 코딩 및 인트라 코딩 양자 모두에 대해 최적화되고, 이로써 EMT 인터 및/또는 EMT 인트라로서 구현될 수도 있다. 일부 코딩 툴들은 HEVC 에 따라 인터 코딩에 대해서만 최적화된다. 이로써, 인트라 코딩된 및 인터 코딩된 서브 블록들 양자 모두를 포함하는 블록들의 경우 코딩 최적화에 대한 블록 레벨 제약의 제거는 임의의 그러한 코딩 툴들에 적용가능하다.
예를 들어, EMT 코딩 툴이 주어진 블록에 대해 EMT 인트라로서 또는 EMT 인터로서 구현되기 때문에, 블록 레벨 임계는 블록이 인트라 코딩된 및 인터 코딩된 서브 블록들 양자 모두를 포함하는 경우에서 EMT 코딩의 사용을 지연시킬 수도 있는데, 이는 EMT 코딩 툴들이 EMT 인트라로서 또는 EMT 인터로서 적용되기 때문이다. 유사하게, 블록 레벨 제약은 블록이 인트라 코딩된 및 인터 코딩된 서브 블록들 양자 모두를 포함하는 경우들에서 PDPC 툴 또는 NSST 툴의 사용을 지연시킬 수도 있는데, 이는 PDPC 툴 및 NSST 툴의 각각이 인트라 코딩된 블록들에 최적화되기 때문이다. 이러한 방식으로, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 QTPB 파티셔닝 구조를 수용하는데 코딩 툴들을 적용하기 위해 블록 레벨 제약들을 구현할 수도 있지만, 인터 코딩된 및 인트라 코딩된 서브 블록들의 혼합을 포함하는 블록들의 경우들에서 그 제약을 제거할 수도 있어서, 코딩 툴들의 인트라 전용 또는 인터 전용 최적화를 레버리지한다.
이 개시물의 일부 기법들에 따라, 비디오 인코더 (22) 는 하나 이상의 코딩 툴들에 대한 시그널링 정보에 관하여 블록 레벨 임계화를 구현할 수도 있다. 일 구현에 있어서, 비디오 인코더 (22) 는 비디오 인코더 (22) 에 이용가능하거나 이에 의해 적용되는 모든 코딩 툴들에 대한 시그널링 정보에 관하여 단일 블록 레벨 임계를 사용할 수도 있다. 예를 들어, 비디오 인코더 (22) 는 적어도 임계 블록 레벨에 있는 블록에 대해서만, 단일 EMT 플래그 또는 단일 PDPC 플래그, 또는 단일 NSST 플래그를 시그널링할 수도 있다. 즉, 이러한 구현에서, 블록 레벨 임계는 블록을 인코딩하기 위해 비디오 인코더 (22) 가 어느 코딩 둘을 사용하는지에 관계 없이 정적 값을 갖는다.
코딩 툴 시그널링에 대한 블록 레벨 임계화의 또 다른 구현에 있어서, 비디오 인코더 (22) 는 코딩 툴 기반으로 코딩 툴 상에서 개별 블록 레벨 임계 값들을 사용할 수도 있다. 예를 들어, 비디오 인코더 (22) 는 제 1 임계 레벨을 충족하는 블록들에 대해서만 EMT 플래그를, 제 2 임계 레벨을 충족하는 블록들에 대해서만 PDPC 플래그를, 그리고 제 3 임계 레벨을 충족하는 블록들에 대해서만 NSST 플래그를 시그널링할 수도 있다.
본 개시물의 일부 예들에 따라, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 임의의 주어진 시간에, 단일 블록에 대한 단일 코딩 툴에 대해 고유 블록 레벨 임계를 적용할 수도 있다. 예를 들어, 블록 레벨 임계 (임계는 신택스 시그널링이 수행될 수도 있는 최소 블록 레벨을 나타냄) 을 충족하거나 초과하는 블록은 오버랩들 없이 픽처 프레임을 구성할 수도 있다. 예를 들어, 이러한 구현에 따라, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 파티셔닝이 블록 레벨 임계보다 작은 적어도 하나의 서브 블록을 초래하는 경우 임의의 블록을 추가로 파티셔닝하지 않을 수도 있다. 즉, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 임계 레벨 사이즈를 갖는 하나 보다 많은 블록에서 더 작은 서브 블록들을 포함하지 않을 수도 있다.
비디오 인코더 (22) 는, 일부 시나리오들에서, 소위 "가상 블록" 을 시그널링할 수도 있다. 보다 구체적으로, 가상 블록을 시그널링할 때, 비디오 인코더 (22) 는 블록을 형성하는 인코딩된 데이터의 서브세트만을 시그널링할 수도 있다. 예를 들어, 가상 블록을 시그널링하는데 있어서, 비디오 인코더 (22) 는 블록의 인코딩된 비디오 데이터에 관하여 소정의 신택스 엘리먼트들만을 그룹화하고 시그널링할 수도 있다. 가상 블록과는 대조적으로, "현실 블록" 은 비디오 인코더 (22) 가 인코딩된 정보의 풀 세트를 시그널링하는 비디오 데이터의 인코딩된 블록을 나타낸다.
본 개시물의 일부 기법들에 따라, 비디오 인코더 (22) 는 가상 블록이 코딩 툴 정보의 시그널링을 위한 임계 사이즈를 충족하는 것을 검출할 수도 있다. 일부 그러한 시나리오들에서, 비디오 인코더 (22) 는 가상 블록이 현실 블록으로서 자격이 있음을 (즉, 가상 블록 및 대응 현실 블록이 동일한 단일 블록인 것을) 결정할 수도 있다. 비디오 인코더 (22) 는 예를 들어, 비디오 인코더 (22) 가 블록이 추가로 분할하지 않는 것을 결정하는 경우, 현실 블록 (임계 사이즈를 충족하거나 초과하는 사이즈) 이 최종 블록인 그러한 시나리오를 검출할 수도 있다. 이 경우, 비디오 인코더 (22) 는 가상 블록에 관하여 통상적으로 수행되는 임의의 시그널링을 컨디셔닝 및/또는 연기할 수도 있다. 대신, 비디오 인코더 (22) 는 현실 블록 대신에 대해 가상 블록 정보를 시그널링할 수도 있다.
소정의 시나리오들에서 현실 블록 대신에 대해 가상 블록 정보를 시그널링하기 위해 본 개시물의 기법들을 구현함으로써, 비디오 인코더 (22) 는 소정의 경우들에서 잠재적 비트레이트 개선을 제공할 수도 있다. 예를 들어, 신택스 시그널링이 소정의 예측 모드들에 대해서만 행해지는 경우들에서, 특정 예측 모드는 가상 블록에 대한 시그널링에 대해 비디오 인코더 (22) 에 이용가능하지 않을 수도 있다. 그러한 시나리오들에서, 비디오 인코더 (22) 는 임계 사이즈와 동일 (또는 그보다 큰) 블록 사이즈 상에서, 그리고 분할 플래그의 값 상에서 가상 블록에 대한 시그널링을 컨디셔닝할 수도 있다. 비디오 인코더 (22) 가 대응 현실 블록이 추가로 분할되지 않는 것 및 블록 사이즈가 임계 사이즈와 적어도 동일한 것을 검출하면, 비디오 인코더 (22) 는 그 현실 블록이 최종인 것을 결정할 수도 있다. 이로써, 비디오 인코더 (22) 는 가상 블록의 부분으로서 통상적으로 시그널링되는 신택스 엘리먼트들의 시그널링이 후속하여 행해질 수 있고 현실 블록에 관하여 완전히 시그널링될 수 있는 것을 결정하기 위해 본 개시물의 기법들을 구현할 수도 있다.
비디오 인코더 (22) 는 시그널링이 (서로 구별되는) 결과의 서브 블록들의 조합이 가상 블록의 사이즈에서 가능한지 여부에 의존하도록 이러한 조건부의 신택스 시그널링을 수행할 수도 있다. 예를 들어, 비디오 인코더 (22) 는 서브 블록들이 인트라 예측 및 인터 예측 모드들을 사용하여 인코딩되는 것에 기초하여 차별화되는 경우, 시그널링이 슬라이스 유형에 의존하도록 조건부의 시그널링을 구현할 수도 있다. 블록이 I 슬라이스에 포함되는 경우, 슬라이스 예측은 블록의 인코딩에 대해 옵션이 아니다. 이로써, 블록이 I 슬라이스에 포함되는 경우, 비디오 인코더 (22) 는 조건부의 시그널링이 필요하지 않음을 결정할 수도 있다.
본 개시물의 조건부의 시그널링 기법들의 일 예가 본 명세서에서는 PDPC 코딩 툴에 관하여 기재된다. 비디오 데이터의 블록을 인코딩하는데 있어서 PDPC 코딩 툴의 적용은 비디오 인코더 (22) 가 비트레이트 개선들을 제공하기 위해 본 개시물의 조건부 시그널링 양태들을 구현할 수도 있는 하나 이상의 예들을 제공한다. 일부 경우들에서, 비디오 디코더 (30) 는 픽처 경계에서 분할 플래그를 추론할 수도 있다. 예를 들어, 비디오 인코더 (22) 가 블록이 픽처 경계를 횡단하기 위해 블록에 대해 충분히 큰 것을 결정하는 경우, 비디오 인코더 (22) 는 분할 플래그를 시그널링하지 않을 수도 있다. 이 예에서, 비디오 디코더 (30) 는 분할되고 있는 것으로 큰 블록을 추론할 수도 있다. 즉, 비디오 인코더 (22) 는 블록이 횡단하는 픽처 경계에서 분할 플래그를 시그널링하는 것을 회피하기 위해 조건부 시그널링을 구현할 수도 있다. 이 경우, 비디오 디코더 (30) 는 픽처 경계에서 블록 분할을 추론하도록 구성될 수도 있다.
본 개시물의 조건부 시그널링 기법들의 일 예는 PDPC 코딩 툴에 관하여 하기에서 기재된다. 본 개시물의 블록 레벨 임계를 충족하거나 초과하는 블록에 대해, 블록이 PDPC 코딩 툴을 사용하여 인코딩되는 경우, 비디오 인코더 (22) 는 인에이블된 상태에서 PDPC 플래그 (또한 "PDPC 사용 플래그" 로서 지칭됨) 를 시그널링할 수도 있고 하나 이상의 PDPC 인덱스들 (또는 "PDPC" 인덱스 값들) 을 선택적으로 시그널링할 수도 있다. 인에이블된 상태로 설정된 PDPC 플래그를 수신하면, 비디오 디코더 (30) 는 (서브 블록들을 획득하는데 사용된 파티셔닝 스킴(들) 에 관계 없이) 임계 사이즈 블록의 각각의 그리고 매 서브 블록이 PDPC 코딩 툴을 사용하여 재구성되는 것을 추론할 수도 있다. 즉, 비디오 디코더 (30) 는 임계 레벨에 또는 그 초과에 있는 더 큰 블록에 대해 수신된 단일 PDPC 플래그 값과 동일한 작은 서브 블록들에 대해 PDPC 플래그 값들을 추론할 수도 있다. 일 예에서, 비디오 인코더 (22) 는 PDPC 코딩 툴을 사용하여 인코딩 및 디코딩될 루마 컴포넌트 블록에 대한 64 개의 샘플들과 동일한 임계 레벨을 사용할 수도 있다.
상술한 바와 같이, 본 개시물에 따른 조건부 시그널링의 일부 경우들에서, 비디오 인코더 (22) 는 컨디셔닝할 수도 있고 이에 의해 임계 블록 사이즈를 충족하거나 초과하는 블록에 대한 인덱스들 및 PDPC 플래그들을 시그널링하는 것을 회피할 수도 있다.
보다 구체적으로, 비디오 인코더 (22) 는 블록이 추가로 분할되는지 여부의 결정 시 PDPC 플래그 및/또는 인덱스들의 시그널링을 컨디셔닝할 수도 있다. 즉, 비디오 인코더 (22) 가 블록이 추가로 분할되는 것을 결정하는 경우, 비디오 인코더 (22) 는 블록에 대해 임의의 PDPC 인덱스들 또는 PDPC 플래그를 시그널링하지 않을 수도 있다. 대신, 블록이 추가로 더 분할되지 않는 경우, 비디오 인코더 (22) 는 기존 PDPC 시그널링 기법들에 의해 제공된 시그널링 배치에 따라 행해지는 PDPC 시그널링을 수행할 수도 있다. 즉, 비디오 인코더 (22) 가 블록이 추가로 더 분할되지 않는 것을 결정하는 경우, 비디오 인코더 (22) 는 예측 모드가 파싱되고 이용가능한 후에 임의의 PDPC 정보를 시그널링할 수도 있다.
상술한 바와 같이, PDPC 는 인트라 예측 모드에 대해 최적화되는 코딩 툴이다. 따라서, 비디오 인코더 (22) 는 임의의 인터 예측된 블록들 또는 서브 블록들을 위한 PDPC 코딩 툴을 적용하지 않을 수도 있다. 비디오 인코더 (22) 가 조건부 시그널링을 구현하지 않는 경우, 블록이 추가로 분할되지 않고 이에 따라 임의의 인터 코딩된 서브 블록들을 포함하지 않는 것이 제공되면, 비디오 인코더 (22) 는 임계 사이즈 이상인 블록에 대해 PDPC 정보를 시그널링할 수도 있다. 다시, PDPC 정보는 블록이 인터 코딩된 서브 블록들을 포함하는 경우 필요하지 않을 수도 있고, 따라서 서브 블록 레벨 PDPC 정보의 시그널링은 불필요한 비트들이 시그널링되는 것에 기인하여 비트레이트 소모를 야기할 수도 있다.
비디오 인코더 (22) 는 또한, 본 개시물의 조건부 시그널링 기법들을 예측 파라미터들을 표시하기 위해 하나보다 많은 플래그를 사용하는 PDPC 의 버전들을 적용하는 경우까지 확장할 수도 있다. 하나의 그러한 예는 블록 형상 마다 그리고 예측 모드마다 4 세트의 파라미터들을 활용하는 PDPC 버전이다. 비디오 인코더 (22) 는 인코딩될 플래그들의 수를 정의하기 위해 블록 사이즈에 대해 상이한 임계들을 구현하거나, 또는 대안으로 승계되고 공유될 수도 있다. 이러한 방식으로, 비디오 인코더 (22) 는 플래그 코딩 오버 헤드가 비교적 작을 수도 있는 상위 트리 레벨들에서 더 많은 수의 PDPC 파라미터 옵션들을 이용할 수도 있다. 다른 한편으로, 비디오 인코더 (22) 는 플래그 마다 상대적 오버 헤드가 더 큰, 하위 트리 레벨들에서 더 적은 수의 PDPC 파라미터 옵션들 (가능하면 단일 옵션만큼 적음) 을 사용할 수도 있다.
본 개시물의 일부 예들에서, 비디오 인코더 (22) 는 비디오 인코더 (22) 가 단일 임계를 사용하는 대신, 신택스 시그널링 판정들을 위한 테이블 기반 룰들을 사용할 수도 있는 또 다른 확장을 구현할 수도 있다. 본 개시물의 테이블 기반 신택스 시그널링 결정 기법들의 일 경우에서, 비디오 인코더 (22) 는 테이블 엔트리들이 블록 파티션의 폭 및/또는 높이를 포함하는 테이블을 사용할 수도 있다. 이 예에서, 테이블 엘리먼트들은 파티션 형상이 쿼드트리 기반 파티셔닝 또는 QTBT 기반 파티셔닝의 결과인지 여부에 관계없이, 관련 파티션 형상에서 유도된 파티션들에 대해 유효한 신택스 시그널링 수정들을 갖는 리스트들을 나타낼 수도 있다.
일부 예들에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 상술한 바와 같은 코딩 툴들에 대한 블록 레벨 임계화에 대한 대안으로서, 대신 블록 분해 프로세스에서 현실 블록에 대응하지 않는 블록 레벨 임계를 구현할 수도 있다. 이들 예에서, 블록을 분할하는 것이 블록 레벨 임계 아래인 2 개의 서브 블록들 (BT 파티셔닝) 또는 4 개의 서브 블록들 (QT 파티셔닝) 의 서브 블록들을 초래하면, 비디오 인코더 (22) 는 결과의 서브 블록 사이즈에서 코딩 툴 관련 신택스 엘리먼트들을 시그널링할 수도 있다. 이러한 서브 블록 기반 블록 레벨 임계의 일 예는 392 또는 2 의 거듭 제곱이 아닌 임의의 임계 사이즈이다. 일부 예들에서, 비디오 인코더 (22) 는 부동 소수점 값인 서브 블록 기반 블록 레벨 임계를 사용할 수도 있다.
본 개시물의 일부 예들에 따르면, 비디오 인코더 (22) 가 블록 사이즈가 블록 레벨과 동일하거나 그 아래인 것을 검출하는 바로 첫번째 경우에서, 비디오 인코더 (22) 는 코딩 툴 관련 신택스 엘리먼트 (예를 들어, EMT 플래그) 를 시그널링할 수도 있다. 일단 코딩 툴 관련 신택스 엘리먼트가 블록에 대해 시그널링되면, 비디오 인코더 (22) 는 블록의 추가 분할로부터 야기되는 임의의 서브 블록들에 대해 대응 코딩 툴 관련 신택스 엘리먼트를 시그널링하지 않을 수도 있다. 즉, 이들 예들에 따르면, 비디오 인코더 (22) 는 블록의 제 1 서브 블록에 대해 코딩 툴 관련 신택스 엘리먼트 (예를 들어, EMT 플래그) 를, 블록이 미리 결정된 블록 레벨 임계에 또는 그 아래에 있는 것을 결정할 시에, 시그널링할 수도 있다.
도 5 는 본 개시물에서 기법들을 구현할 수도 있는 일 예의 비디오 인코더 (22) 를 도시하는 블록 다이어그램이다. 도 5 는 설명의 목적을 위해 제공되고, 본 개시물에 광범위하게 예시되고 설명된 바와 같은 기법들의 제한으로 간주되지 않아야 한다. 본 개시물의 기법들은 다른 코딩 표준들 또는 방법들에 적용 가능할 수도 있다.
도 5 의 예에서, 비디오 인코더 (22) 는 예측 프로세싱 유닛 (100), 비디오 데이터 메모리 (101), 잔차 생성 유닛 (102), 변환 프로세싱 유닛 (104), 양자화 유닛 (106), 역양자화 유닛 (108), 역변환 프로세싱 유닛 (110), 재구성 유닛 (112), 필터 유닛 (114), 디코딩된 픽처 버퍼 (116), 및 엔트로피 인코딩 유닛 (118) 을 포함한다. 예측 프로세싱 유닛 (100) 은 인터 예측 프로세싱 유닛 (120) 및 인트라 예측 프로세싱 유닛 (126) 을 포함한다. 인터-예측 프로세싱 유닛 (120) 은 모션 추정 유닛 및 모션 보상 유닛 (미도시) 을 포함할 수도 있다.
비디오 데이터 메모리 (101) 는 비디오 인코더 (22) 의 컴포넌트들에 의해 인코딩될 비디오 데이터를 저장하도록 구성될 수도 있다. 비디오 데이터 메모리 (101) 에 저장된 비디오 데이터는, 예를 들어 비디오 소스 (18) 로부터 획득될 수도 있다. 디코딩된 픽처 버퍼 (116) 는, 예를 들어 인트라- 또는 인터-코딩 모드들에서 비디오 인코더 (22) 에 의해 비디오 데이터를 인코딩하는데 있어서 사용하기 위해 참조 비디오 데이터를 저장하는 참조 픽처 메모리일 수도 있다. 비디오 데이터 메모리 (101) 및 디코딩된 픽처 버퍼 (116) 는 다양한 메모리 디바이스들 중 임의의 것, 예컨대 동기식 DRAM (SDRAM) 을 포함하는 동적 랜덤 액세스 메모리 (DRAM), 자기저항 RAM (MRAM), 저항성 RAM (RRAM), 또는 다른 유형들의 메모리 디바이스들에 의해 수행될 수도 있다. 비디오 데이터 메모리 (101) 및 디코딩된 픽처 버퍼 (116) 는 동일한 메모리 디바이스 또는 별도의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에서, 비디오 데이터 메모리 (101) 는 비디오 인코더 (22) 의 다른 컴포넌트들과 온-칩, 또는 이들 컴포넌트들에 대한 오프-칩일 수도 있다. 비디오 데이터 메모리 (101) 는 도 1 의 저장 매체들 (20) 과 동일하거나 그의 부분일 수도 있다.
비디오 인코더 (22) 는 비디오 데이터를 수신한다. 비디오 인코더 (22) 는 비디오 데이터의 픽처의 슬라이스에서 각각의 CTU 를 인코딩할 수도 있다. CTU들 각각은 동일한 사이즈의 루마 코딩 트리 블록 (CTB) 들 및 픽처의 대응하는 CTB들과 연관될 수도 있다. CTU 를 인코딩하는 것의 부분으로서, 예측 프로세싱 유닛 (100) 은 CTU 의 CTB들을 점진적으로-더 작은 블록들로 분할하도록 파티셔닝을 수행할 수도 있다. 더 작은 블록들은 CU들의 코딩 블록들일 수도 있다. 예를 들어, 예측 프로세싱 유닛 (100) 은 트리 구조에 따른 CTU 와 연관된 CTB 를 파티셔닝할 수도 있다. 본 개시물의 하나 이상의 기법들에 따라, 트리 구조의 각각의 깊이 레벨에서 트리 구조의 각각의 개개의 비-리프 노드에 대해, 개개의 비-리프 노드에 대해 복수의 허용된 분할 패턴들이 있으며 개개의 비-리프 노드에 대응하는 비디오 블록은 복수의 허용가능한 분할 패턴들 중 하나에 따라 개개의 비-리프 노드의 자식 노드들에 대응하는 비디오 블록들로 파티셔닝된다.
비디오 인코더 (22) 는 CTU 의 CU들을 인코딩하여, CU들의 인코딩된 표현들 (즉, 코딩된 CU들) 을 생성할 수도 있다. CU 를 인코딩하는 것의 부분으로서, 예측 프로세싱 유닛 (100) 은 CU 의 하나 이상의 PU들 중 CU 와 연관된 코딩 블록들을 파티셔닝할 수도 있다. 따라서, 각각의 PU 는 루마 예측 블록 및 대응하는 크로마 예측 블록들과 연관될 수도 있다. 비디오 인코더 (22) 및 비디오 디코더 (30) 는 다양한 사이즈들을 갖는 PU들을 지원할 수도 있다. 위에 표시된 바와 같이, CU 의 사이즈는 CU 의 루마 코딩 블록의 사이즈를 지칭할 수도 있고, PU 의 사이즈는 PU 의 루마 예측 블록의 사이즈를 지칭할 수도 있다. 특정 CU 의 사이즈가 2Nx2N 이라고 가정하면, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 인트라 예측을 위해 2Nx2N 또는 NxN 의 PU 사이즈들, 및 2Nx2N, 2NxN, Nx2N, NxN 또는 인터 예측에 대해 유사한 대칭적인 PU 사이즈들을 지원할 수도 있다. 비디오 인코더 (22) 및 비디오 디코더 (30) 는 또한, 인터 예측을 위해 2NxnU, 2NxnD, nLx2N, 및 nRx2N 의 PU 사이즈들에 대한 비대칭적 파티셔닝을 지원할 수도 있다.
인터-예측 프로세싱 유닛 (120) 은 CU 의 각각의 PU 상에서 인터 예측을 수행함으로써 PU 에 대한 예측 데이터를 생성할 수도 있다. PU 에 대한 예측 데이터는 PU 에 대한 모션 정보 및 PU 의 예측 블록들을 포함할 수도 있다. 인터-예측 프로세싱 유닛 (120) 은, PU 가 I 슬라이스, P 슬라이스, 또는 B 슬라이스인지에 따라 CU 의 PU 에 대한 상이한 동작들을 수행할 수도 있다. I 슬라이스에서, 모든 PU들은 인트라 예측된다. 이로써, PU 가 I 슬라이스 내에 있으면, 인터-예측 프로세싱 유닛 (120) 은 PU 상에서 인터 예측을 수행하지 않는다. 따라서, I-모드에서 인코딩된 블록들에 대해, 예측 블록은 동일한 프레임 내의 이전에-인코딩된 이웃하는 블록들로부터 공간 예측을 사용하여 형성된다. PU 가 P 슬라이스인 경우, 인터 예측 프로세싱 유닛 (120 은 PU 의 예측 블록을 생성하기 위해 일 방향 인터 예측을 사용할 수도 있다. PU 가 B 슬라이스에 있는 경우, 인터 예측 프로세싱 유닛 (120) 은 PU 의 예측 블록을 생성하기 위해 일 방향 또는 양 방향 인터 예측을 사용할 수도 있다.
인트라-예측 프로세싱 유닛 (126) 은 PU 상에서 인트라 예측을 수행함으로써 PU 에 대한 예측 데이터를 생성할 수도 있다. PU 의 예측 데이터는 다양한 신택스 엘리먼트들 및 PU 에 대한 예측 블록들을 포함할 수도 있다. 인트라-예측 프로세싱 유닛 (126) 은 I 슬라이스들, P 슬라이스들, 및 B 슬라이스들에서의 PU들 상에서 인트라 예측을 수행할 수도 있다.
PU 상에서 인트라 예측을 수행하기 위해, 인트라-예측 프로세싱 유닛 (126) 은 다수의 인트라 예측 모드들을 사용하여 PU 에 대한 예측 데이터의 다수의 세트들을 생성할 수도 있다. 인트라-예측 프로세싱 유닛 (126) 은 이웃하는 PU들의 샘플 블록들로부터 샘플들을 사용하여 PU 에 대한 예측 블록을 생성할 수도 있다. PU들, CU들, 및 CTU들에 대한 좌측에서 우측으로, 상부에서 하부로의 인코딩 순서를 가정하면, 이웃하는 PU들은 PU 의 위, 위 및 우측, 위 및 좌측, 또는 좌측에 있을 수도 있다. 인트라-예측 프로세싱 유닛 (126) 은 다양한 수들의 인트라 예측 모드들, 예를 들어 33 개의 방향성 인트라 예측 모드들을 사용할 수도 있다. 일부 예들에서, 인트라 예측 모드들의 수는 PU 와 연관된 면적의 사이즈에 의존할 수도 있다.
예측 프로세싱 유닛 (100) 은 PU들에 대한 인트라-예측 프로세싱 유닛 (126) 에 의해 생성된 예측 데이터 또는 PU들에 대한 인터-예측 프로세싱 유닛 (120) 에 의해 생성된 예측 데이터 중에서부터 CU 의 PU들에 대한 예측 데이터를 선택할 수도 있다. 일부 예들에서, 예측 프로세싱 유닛 (100) 은 예측 데이터의 세트들의 레이트/왜곡 메트릭들에 기초하여 CU 의 PU들에 대한 예측 데이터를 선택한다. 선택된 예측 데이터의 예측 블록들은 본원에서 선택된 예측 블록들로서 지칭될 수도 있다.
잔차 생성 유닛 (102) 은, CU 에 대한 코딩 블록들 (예를 들어, 루마, Cb 및 Cr 코딩 블록들) 및 CU 의 PU들에 대한 선택된 예측 블록들 (예를 들어, 예측 루마, Cb 및 Cr 블록들) 에 기초하여, CU 에 대한 잔차 블록들 (예를 들어, 루마, Cb 및 Cr 잔차 블록들) 을 생성할 수도 있다. 예를 들어, 잔차 생성 유닛 (102) 은, 잔차 블록들 내의 각각의 샘플이 CU 의 코딩 블록에서의 샘플과 CU 의 PU 의 대응하는 선택된 예측 블록 내의 대응하는 샘플 간의 차이와 동일한 값을 갖도록 CU 의 잔차 블록들을 생성할 수도 있다.
변환 프로세싱 유닛 (104) 은 CU 와 연관된 잔차 블록들을 CU 의 TU들과 연관된 변환 블록들로 파티셔닝하도록 쿼드-트리 파티셔닝을 수행할 수도 있다. 따라서, TU 는 루마 변환 블록 및 2 개의 크로마 변환 블록들과 연관될 수도 있다. CU 의 TU들의 루마 및 크로마 변환 블록들의 사이즈들 및 포지션들은 CU 의 PU들의 예측 블록들의 사이즈들 및 포지션들에 기초하거나 기초하지 않을 수도 있다. "잔차 쿼드-트리 (RQT)" 로서 알려진 쿼드-트리 구조는 영역들 각각과 연관된 노드들을 포함할 수도 있다. CU 의 TU들은 RQT 의 리프 노드들에 대응할 수도 있다.
변환 프로세싱 유닛 (104) 은 TU 의 변환 블록들에 하나 이상의 변환들을 적용함으로써 CU 의 각각의 TU 에 대한 변환 계수 블록들을 생성할 수도 있다. 변환 프로세싱 유닛 (104) 은 TU 와 연관된 변환 블록에 다양한 변환들을 적용할 수도 있다. 예를 들어, 변환 프로세싱 유닛 (104) 은 이산 코사인 변환 (DCT), 방향성 변환, 또는 개념적으로 유사한 변환을 변환 블록에 적용할 수도 있다. 일부 예들에서, 변환 프로세싱 유닛 (104) 은 변환 블록에 변환들을 적용하지 않는다. 이러한 예들에서, 변환 블록은 변환 계수 블록으로서 취급될 수도 있다.
양자화 유닛 (106) 은 계수 블록에서 변환 계수들을 양자화할 수도 있다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 심도를 감소시킬 수도 있다. 예를 들어, n-비트 변환 계수는 양자화 동안 m-비트 변환 계수로 내림 (rounded down) 될 수도 있고, 여기서 n 은 m 보다 크다. 양자화 유닛 (106) 은 CU 와 연관된 양자화 파라미터 (QP) 값에 기초하여 CU 의 TU 와 연관된 변환 계수 블록을 양자화할 수도 있다. 비디오 인코더 (22) 는 CU 와 연관된 QP 값을 조정함으로써 CU 와 연관된 변환 계수 블록들에 적용된 양자화 정도를 조정할 수도 있다. 양자화는 정보의 손실을 도입할 수도 있다. 따라서 양자화된 변환 계수들은 원래의 계수들보다 더 낮은 정확도를 가질 수도 있다.
역양자화 유닛 (108) 및 역변환 프로세싱 유닛 (110) 은 변환 계수 블록에 역양자화 및 역변환들을 각각 적용하여, 변환 계수 블록으로부터 잔차 비디오 블록을 재구성할 수도 있다. 재구성 유닛 (112) 은 예측 프로세싱 유닛 (100) 에 의해 생성된 하나 이상의 예측 블록들로부터 대응하는 샘플들에 재구성된 잔차 블록을 추가하여, TU 와 연관된 재구성된 변환 블록을 생성할 수도 있다. 이 방식에서 CU 의 각각의 TU 에 대한 비디오 블록들을 재구성함으로써, 비디오 인코더 (22) 는 CU 의 코딩 블록들을 재구성할 수도 있다.
필터 유닛 (114) 은 CU 와 연관된 코딩 블록들에서 블록킹 아티팩트들을 감소시키도록 하나 이상의 디블록킹 동작들을 수행할 수도 있다. 디코딩된 픽처 버퍼 (116) 는, 필터 유닛 (114) 이 재구성된 코딩 블록들 상에서 하나 이상의 디블록킹 동작들을 수행한 후에 재구성된 코딩 블록들을 저장할 수도 있다. 인터-예측 프로세싱 유닛 (120) 은 재구성된 코딩 블록들을 포함하는 참조 픽처를 사용하여, 다른 픽처들의 PU들 상에서 인터 예측을 수행할 수도 있다. 또한, 인트라-예측 프로세싱 유닛 (126) 은 디코딩된 픽처 버퍼 (116) 에서 재구성된 비디오 블록들을 사용하여 CU 와 동일한 픽처에서의 다른 PU들 상에서 인트라 예측을 수행할 수도 있다.
엔트로피 인코딩 유닛 (118) 은 비디오 인코더 (22) 의 다른 기능적 컴포넌트들로부터 데이터를 수신할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (118) 은 양자화 유닛 (106) 으로부터 변환 계수 블록들을 수신할 수도 있고, 예측 프로세싱 유닛 (100) 으로부터 신택스 엘리먼트들을 수신할 수도 있다. 엔트로피 인코딩 유닛 (118) 은 데이터 상에서 하나 이상의 엔트로피 인코딩 동작들을 수행하여, 엔트로피-인코딩된 데이터를 생성할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (118) 은, CABAC 동작, 콘텍스트-적응 가변 길이 코딩 (CAVLC) 동작, 변수-대-변수 (V2V) 길이 코딩 동작, 신택스 기반 콘텍스트 적응 이진 산술 코딩 (SBAC) 동작, 확률 구간 파티셔닝 엔트로피 (PIPE) 코딩 동작, 지수-골롬 인코딩 동작, 또는 다른 유형의 엔트로피 인코딩 동작을 데이터 상에서 수행할 수도 있다. 비디오 인코더 (22) 는 엔트로피 인코딩 유닛 (118) 에 의해 생성된 엔트로피-인코딩된 데이터를 포함하는 비트스트림을 출력할 수도 있다. 예를 들어, 비트스트림은 CU 에 대한 RQT 를 나타내는 데이터를 포함할 수도 있다.
하기에서는 비디오 인코더 (22)(또는 그의 하나 이상의 컴포넌트들) 가 수행하도록 구성될 수도 있는 본 개시물의 기법들의 다양한 구현들이 열거된다. 다양한 구현들은 하기에 설명된 아라비아 숫자 '1', '2' 등을 사용하여 서브 헤딩들의 다양한 레벨들에서 기재된 다양한 옵션들로 넘버링된다.
1. 블록 분할 기반 블록 파티셔닝 구조가 특정 코딩 툴 (예를 들어, 특정 코딩 툴들의 예들은 인트라 예측, 인터 예측, 인터 스킵, 변환 시그널링, EMT, NSST, PDPC 등을 포함하지만 이에 제한되지 않음) 에 대해, 비디오 코딩 예를 들어, HEVC 또는 QTBT 를 위해 적용될 때, 블록 레벨 임계가 정의된다. 이 특정 코딩 툴은 이러한 블록 레벨 임계와 동일하거나 블록 레벨 임계를 초과하는 블록에 대해 최적화되고 시그널링된다. 블록 레벨 임계는 예측 및 변환이 적용되는 블록 사이즈와 상이할 수 있다. 코딩 툴은 소정의 블록 레벨에서 스위치 온 또는 오프될 수 있는 특정 코딩 방법, 기법, 또는 모드이다.
a)
블록 레벨 임계는 블록 면적 사이즈 또는 블록 폭 및 높이에 관하여 표현될 수 있다.
b)
블록 레벨 임계는 CTU, 슬라이스, 타일, 픽처, 또는 픽처들의 그룹 (GOP) 기반에 대해 변화할 수도 있다.
● 블록 레벨 임계는 슬라이스 헤더, PPS, VPS 또는 SPS 에서 시그널링될 수도 있다.
● 대안으로, 블록 레벨 임계는, 예를 들어 각각의 블록 사이즈에 대해, 예측 및/또는 변환이 얼마나 수행되는지를 카운트함으로써, 이전의 CTU, 슬라이스, 타일, 화상 또는 GOP 의 코딩된 정보를 각각 사용하여 CTU, 슬라이스, 타일, 픽처 또는 GOP 기반으로 업데이트될 수도 있다.
● 대안으로, 블록 레벨 임계는 디폴트 값, 예를 들어 64 또는 256 으로 설정되거나 슬라이스 유형, 예를 들어 슬라이스가 인트라, P 또는 B 슬라이스인지 여부에 의존하여 시그널링될 수도 있다.
c) 블록 레벨 임계는 미리 정의된 고정 값일 수도 있지만, 상이한 값이 상이한 코딩 구성들 또는 이미지 컴포넌트, 예를 들어 현재 블록이 예를 들어 인트라, P 또는 B 슬라이스인지 여부, 현재 블록이 루마 또는 크로마 컴포넌트인지 여부에 대해 적용될 수도 있다.
2. 블록 레벨 임계는 또한 인트라 코딩 또는 인터 코딩만이 적용되는 최소 블록 레벨을 규정할 수도 있다. 인트라 코딩 및 인터 코딩의 혼합은 이러한 주어진 블록 레벨 임계에 또는 그 아래에서 허용되지 않는다.
a)
블록 레벨 임계는 블록 면적 사이즈, 또는 블록 폭 및 높이로서 표현될 수도 있다.
b)
블록 레벨 임계는 CTU, 슬라이스, 타일, 픽처 또는 픽처들의 그룹 (GOP) 기반으로 변화할 수도 있다.
● 블록 레벨 임계는 슬라이스 헤더 픽처 파라미터 세트 (PPS), 비디오 파라미터 세트 (VPS) 또는 시퀀스 파라미터 세트 (SPS) 에서 시그널링될 수도 있다.
● 대안으로, 블록 레벨 임계는 예를 들어, 각각의 블록 사이즈에 대해, 예측 및/또는 변환이 얼마나 수행되는지를 카운팅하는 것에 의해, 슬라이스, 타일, 픽처 또는 GOP 기반으로 이전 CTU, 슬라이스, 타일, 픽처 또는 GOP 의 코딩된 정보를 사용하여 각각 업데이트될 수도 있다.
● 대안으로, 블록 레벨 임계는 디폴트 값, 예를 들어 64 또는 256 으로 설정될 수도 있고, 또는 슬라이스 유형, 예를 들어 슬라이스가 인트라, P 또는 B 슬라이스인지 여부에 의존하여 시그널링될 수도 있다.
● 업데이트하는 것은 선택적일 수도 있다. 예를 들어, 현재 플래그가 시그널링될 수 있고, 그 플래그가 0 값으로 설정되는 경우, 디폴트 임계 레벨이 사용되며, 이는 상위 구조 레벨 (예컨대, PPS, SPS, 펜) 에서 선택적으로 시그널링될 수 있다. 이러한 예에서, 현재 플래그가 1 의 값과 동일하게 설정되면, 임계 레벨은 직접 시그널링된다. 직접 시그널링 동안, 시그널링된 값은 레벨이 디폴트 값과 동일할 때의 경우를 배제함으로써 조정될 수도 있다.
c)
블록 레벨 임계는 미리 정의된 고정 값들을 사용할 수도 있지만, 상이한 값들이 상이한 코딩 구성들 또는 이미지 컴포넌트들, 예를 들어 현재 슬라이스가 인트라, P 또는 B 슬라이스인지 여부, 현재 블록이 루마 또는 크로마 컴포넌트인지 여부에 대해 적용될 수도 있다.
d)
대안으로, 플래그는 인트라 및 인터 코딩의 혼합이 이러한 블록 레벨 임계 아래이고 현재 블록에 포함되는 서브 블록들에 대해 허용되는지 여부를 표시하기 위해 이러한 블록 레벨 임계에서 블록에 대해 추가로 시그널링될 수도 있다.
3. 이러한 구현에 따라, 코딩 툴이 주어진 블록 레벨 임계 이상인 블록 레벨에 대해서만 최적화될 수 있는 특정 코딩 툴에 대한 제한은, 현재 블록에 대해 인트라 및 인터 코딩된 블록들의 혼합이 있을 때 제거된다.
4. 몇몇 툴들은 임계 레벨 블록에서 시그널링을 사용할 수도 있다. 다양한 임계들은 상이하고 툴 특정적일 수도 있다. 또 다른 대안에 따라, 하나의 공통 임계가 모든 툴들에 대해 사용된다.
5. 신택스 시그널링이 수행될 수 있는 임계 레벨에서의 블록들은, 오버랩들 없이 픽처 프레임을 구성할 수도 있다. 예를 들어, 이러한 구현에 따라, 임계 레벨 사이즈를 갖는 하나보다 많은 블록 내에 다른 더 작은 블록들을 포함하는 것이 가능하지 않을 수도 있다.
6. 임계 사이즈를 갖는 블록은 가상 블록, 즉 소정의 신택스 엘리먼트만이 그룹화되고 시그널링되는 블록 또는 현실 블록, 즉 정보의 풀 세트를 포함하는 블록일 수 있다. 그 후, 가상 블록과 현실 블록이 동일한 하나의 블록인 경우를 가지는 것이 가능하다. 이 시나리오는 예를 들어, 더 이상의 블록 분할이 없고 임계와 동일한 사이즈를 갖는 현실 블록이 최종 블록일 때 발생할 수도 있다. 이 경우, 가상 블록에서 행해져야 하는 시그널링은 컨디셔닝되고 연기되며, 대신 현실 블록에서 행해진다. 이러한 구현은 신택스 시그널링이 소정의 예측 모드들에 대해서만 행해지는 경우에 잠재적인 개선을 제공할 수 있지만, 예측 모드는 가상 블록에서 이용가능하지 않을 수도 있다. 이러한 구현의 양태들을 수행하는 점에서, 가상 블록의 시그널링은 분할 플래그 및 임계 사이즈와 동일한 블록 사이즈에 대해 컨디셔닝될 수도 있다. 더 이상의 분할이 없고 블록 사이즈가 임계와 동일하면, 블록은 최종이고 시그널링은 나중에 현실 블록에서만 행해질 수 있다. 이러한 조건부 신택스 시그널링의 적용은 차별화될 필요가 있는 블록들의 조합이 가상 블록 사이즈에서 가능한지 여부에 의존할 수 있다. 예를 들어, 블록들이 인트라 및 인터 예측 모드에 기초하여 차별화되는 경우, 이는 슬라이스 유형에 의존할 수 있다. I 슬라이스의 경우, 인터 예측은 불가능하며 조건부 시그널링은 필요하지 않을 수도 있다. 하기에서 더 상세하게 설명되는 PDPC 는 하나 이상의 예들을 제공한다. 유사한 방식으로, 분할 플래그가 경계에서 추론될 수 있다. 예를 들어, 블록이 그 픽처 경계를 횡단하기에 그 블록이 충분히 클 때, 분할 플래그는 시그널링되지 않을 수도 있고 (큰) 블록이 분할된 것으로 추론된다. 조건부 시그널링은 추론된 분할 경우에도 또한 적용될 수도 있다.
7. 일 예에서, 블록 레벨 임계는 분해에서 실제 블록에 대응하지 않을 수도 있다. 그러한 경우, 블록을 분할하는 것이 블록 레벨 임계 아래로 2 개 (BT) 또는 4 개 (QT) 블록을 야기하면, 비디오 인코더 (22) 는 이 (서브 임계 값) 블록 사이즈에서 수행될 수도 있는 신택스 엘리먼트 시그널링을 수행할 수도 있다. 이러한 블록 레벨 임계의 비제한적인 예는 392 이거나 또는 2 의 거듭 제곱이 아닌 임의의 임계이다.
8. 일 예에서, 비디오 인코더 (22) 는 블록 사이즈가 블록 레벨 임계와 동일하거나 그 아래인 바로 첫 번째에 신택스 엘리먼트를 시그널링할 수도 있다. 신택스 엘리먼트가 블록에 대해 시그널링되면, 그것은 그 블록의 임의의 추가 분할에 대해 시그널링되지 않는다.
이어지는 설명에서, 상기 열거된 기법들의 다양한 예들이 제공된다. 본 개시물에 따라, 설명된 실시형태들의 임의의 부분들의 임의의 조합은 별도의 예로서 구현될 수도 있다.
블록 면적 임계에 기초하여 EMT 를 최적화 및 시그널링하는 예들: EMT 가 QTBT 에 적용될 때, 블록 레벨 임계는 256 으로 미리 정의될 수도 있다. QTBT 리프 노드 면적이 주어진 임계보다 큰 경우, EMT 플래그와 EMT 인덱스가 이 QTBT 리프 노드에 시그널링된다. 현재 QTBT 노드 면적이 주어진 임계와 동일하면 (예를 들어, 리프 노드가 16x16, 32x8, 8x32, 64x4 또는 4x64 인 경우), 더 작은 블록들로 더 분할되는지 여부에 관계없이 하나의 EMT 플래그가 현재 QTBT 노드에 대해 시그널링된다. 이러한 EMT 플래그가 EMT 를 인에이블하는 것을 표시하면, EMT 인덱스는 그 리프 노드들의 각각에 대해 추가로 시그널링된다. 이러한 방식으로, 주어진 임계보다 작은 면적 사이즈를 갖는 리프 노드에 대해, EMT 인덱스 만이 시그널링되고, EMT 플래그는 시그널링되지 않지만, 주어진 임계와 동일한 면적 사이즈를 갖는 그의 가장 근접한 부모 노드로부터 시그널링된 것으로부터 유도된다.
다양한 예들에서, 디폴트 블록 레벨 임계는 상이한 비디오 해상도들에 적용될 수도 있다. 예를 들어, 디폴트 블록 레벨 임계는 단일 비디오 픽처가 100,000 픽셀들, 예를 들어 WQVGA (416x240) 보다 더 작을 때 64 로서 설정될 수 있고, 그렇지 않으면 디폴트 블록 레벨 임계는 256, 예를 들어 WVGA (832x480), 720p, 1080p 또는 4K 으로 설정된다.
포지션 의존 인트라 예측 조합 (Position Dependent Intra Prediction Combination; PDPC) 임계: EMT 의 예에 후속하여, PDPC 는 플래그 및/또는 PDPC 인덱스를 사용할 수도 있다. 플래그 및/또는 PDPC 인덱스들은 임계 사이즈 이상인 블록에 대해 시그널링될 수도 있고, 더 작은 블록들에 대한 값들은 임계 레벨에서 시그널링된 값들과 동일한 것으로 추론된다. 예를 들어, 임계 레벨은 루마 컴포넌트에 대해 64 샘플들과 동일할 수도 있다.
위에 언급된 바와 같이, 임계 사이즈 이상인 사이즈를 갖는 블록에 대한 PDPC 플래그들 및 인덱스들의 시그널링은 컨디셔닝될 수도 있고, 블록이 더 이상 분할되지 않을 때 수행되지 않을 수도 있다. 이러한 경우에 대해, 예측 모드가 파싱되고 이용가능하게 된 후, PDPC 시그널링은 그 원래 장소에서 행해진다. PDPC 는 인트라 예측 관련 툴이기 때문에, 인터 예측 블록들에 대해 적용되지 않는다. 신택스가 이 경우 컨디셔닝되지 않으면, 일단 블록이 임계 사이즈와 동일하면 PDPC 정보가 시그널링된다. 이 경우, 블록은 더 이상 분할될 수 없고 인터 코딩될 수도 있다. 이 경우, PDPC 정보는 필요하지 않지만, 시그널링되고 그와 연관된 비트는 잠재적으로 낭비된다.
이러한 구현은 예측 파라미터들을 시그널링하기 위해 하나보다 많은 플래그를 사용하는 PDPC 버전의 경우들로 확장될 수 있다 (예를 들어, 블록 형상마다, 그리고 예측 모드마다, 4 세트의 파라미터들을 사용하는 PDPC 버전 및 예측 모드에 대해). 블록 사이즈에 대한 상이한 임계들은 추가로 인코딩될 필요가 있는, 또는 대안으로 승계 및 공유될 필요가 있는 플래그들의 수를 정의할 수도 있다. 이러한 방식으로, 더 많은 PDPC 파라미터 옵션들은 상위 트리 레벨들에서 이용가능할 수도 있으며, 여기서 플래그 코딩 오버헤드는 상대적으로 작고, 더 작은 수의 옵션들 (예를 들어, 일부 경우들에서, 단일 옵션) 이 플래그마다 상대적 오버헤드가 증가할 때 이용가능하다.
또 다른 확장은 단일 임계를 사용하는 대신, 시그널링 신택스에 관하여 판정하기 위한 테이블 기반 룰들을 사용하는 것이다. 이 경우, 테이블 엔트리들은 파티션의 폭 및 높이이며, 테이블 엘리먼트들은 그 파티션 형상으로부터 유도된 파티션들에 대해 유효한 시그널링 신택스 수정들을 갖는 리스트들이다.
도 6 은 본 개시물의 기법들을 수행하도록 구성되는 예시의 비디오 디코더 (30) 를 도시하는 블록도이다. 도 6 은 설명의 목적을 위해 제공되고, 본 개시물에 광범위하게 예시 및 설명된 바와 같은 기법들에 대한 제한이 아니다. 설명의 목적을 위해, 본 개시물은 HEVC 코딩의 콘텍스트에서 비디오 디코더 (30) 를 설명한다. 그러나, 본 개시물의 기법들은 다른 코딩 표준들 또는 방법들에 적용 가능할 수도 있다.
도 6 의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (150), 비디오 데이터 메모리 (151), 예측 프로세싱 유닛 (152), 역양자화 유닛 (154), 역변환 프로세싱 유닛 (156), 재구성 유닛 (158), 필터 유닛 (160), 및 디코딩된 픽처 버퍼 (162) 를 포함한다. 예측 프로세싱 유닛 (152) 은 모션 보상 유닛 (164) 및 인트라-예측 프로세싱 유닛 (166) 을 포함한다. 다른 예들에서, 비디오 디코더 (30) 는 더 많은, 더 적은, 또는 상이한 기능적 컴포넌트들을 포함할 수도 있다.
비디오 데이터 메모리 (151) 는 비디오 디코더 (30) 의 컴포넌트들에 의해 디코딩될 인코딩된 비디오 비트스트림과 같은 인코딩된 비디오 데이터를 저장할 수도 있다. 비디오 데이터 메모리 (151) 에 저장된 비디오 데이터는, 예를 들어 컴퓨터 판독가능 매체 (16) 로부터, 예를 들어 카메라와 같은 로컬 비디오 소스로부터, 비디오 데이터의 유선 또는 무선 네트워크 통신을 위해, 또는 물리적 데이터 저장 매체들에 액세스함으로써 획득될 수도 있다. 비디오 데이터 메모리 (151) 는 인코딩된 비디오 비트스트림으로부터 인코딩된 비디오 데이터를 저장하는 코딩된 픽처 버퍼 (CPB) 를 형성할 수도 있다. 디코딩된 픽처 버퍼 (162) 는, 예를 들어 인트라- 또는 인터- 코딩 모드들에서, 또는 출력을 위해, 비디오 디코더 (30) 에 의해 비디오 데이터를 디코딩하는데 있어서 사용하기 위해 참조 비디오 데이터를 저장하는 참조 픽처 메모리일 수도 있다. 비디오 데이터 메모리 (151) 및 디코딩된 픽처 버퍼 (162) 는 다양한 메모리 디바이스들 중 임의의 것, 예컨대 동기식 DRAM (SDRAM) 을 포함하는 동적 랜덤 액세스 메모리 (DRAM), 자기저항 RAM (MRAM), 저항성 RAM (RRAM), 또는 다른 유형들의 메모리 디바이스들에 의해 수행될 수도 있다. 비디오 데이터 메모리 (151) 및 디코딩된 픽처 버퍼 (162) 는 동일한 메모리 디바이스 또는 별도의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에서, 비디오 데이터 메모리 (151) 는 비디오 디코더 (30) 의 다른 컴포넌트들과 온-칩, 또는 이들 컴포넌트들에 대한 오프-칩일 수도 있다. 비디오 데이터 메모리 (151) 는 도 1 의 저장 매체들 (28) 과 동일하거나 그 부분일 수도 있다.
비디오 데이터 메모리 (151) 는 비트스트림의 인코딩된 비디오 데이터 (예를 들어, NAL 유닛들) 를 수신하고 저장할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 비디오 데이터 메모리 (151) 로부터 인코딩된 비디오 데이터 (예를 들어, NAL 유닛들) 를 수신할 수도 있고, NAL 유닛들을 파싱하여 신택스 엘리먼트들을 획득할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 NAL 유닛들에서 엔트로피-인코딩된 신택스 엘리먼트들을 엔트로피 디코딩할 수도 있다. 예측 프로세싱 유닛 (152), 역양자화 유닛 (154), 역변환 유닛 (156), 재구성 유닛 (158), 및 필터 유닛 (160) 은 비트스트림으로부터 추출된 신택스 엘리먼트들에 기초하여 디코딩된 비디오 데이터를 생성할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 엔트로피 인코딩 유닛 (118) 의 프로세스와 일반적으로 상반되는 프로세스를 수행할 수도 있다.
본 개시물의 일부 예들에 따라, 엔트로피 디코딩 유닛 (150) 은 비트스트림으로부터 신택스 엘리먼트들을 획득하는 부분으로서 트리 구조를 결정할 수도 있다. 트리 구조는 CTB 와 같은 초기 비디오 블록이 코딩 유닛과 같은, 더 작은 비디오 블록들로 어떻게 파티셔닝되는지를 특정할 수도 있다. 본 개시물의 하나 이상의 기법들에 따라, 트리 구조의 각각의 깊이 레벨에서 트리 구조의 각각의 개개의 비-리프 노드에 대해, 개개의 비-리프 노드에 대한 복수의 허용된 분할 패턴들이 있으며 개개의 비-리프 노드에 대응하는 비디오 블록이 복수의 허용가능한 분할 패턴들 중 하나에 따라 개개의 비-리프 노드의 자식 노드들에 대응하는 비디오 블록들로 파티셔닝된다.
비트스트림으로부터 신택스 엘리먼트들을 획득하는 것에 부가하여, 비디오 디코더 (30) 는 비-파티셔닝된 CU 상에서 재구성 동작을 수행할 수도 있다. CU 상에서 재구성 동작을 수행하기 위해, 비디오 디코더 (30) 는 CU 의 각각의 TU 상에서 재구성 동작을 수행할 수도 있다. CU 의 각각의 TU 에 대한 재구성 동작을 수행함으로써, 비디오 디코더 (30) 는 CU 의 잔차 블록들을 재구성할 수도 있다.
CU 의 TU 상에서 재구성 동작을 수행하는 것의 부분으로서, 역양자화 유닛 (154) 은 TU 와 연관된 변환 계수 블록들을 역양자화, 즉 양자화 해제할 수도 있다. 역양자화 유닛 (154) 이 계수 블록을 역양자화한 후에, 역변환 프로세싱 유닛 (156) 은 TU 와 연관된 잔차 블록을 생성하기 위해 계수 블록에 하나 이상의 역변환들을 적용할 수도 있다. 예를 들어, 역변환 프로세싱 유닛 (156) 은 역 DCT, 역정수 변환, 역 카루넨-루베 변환 (KLT), 역회전 변환, 역방향 변환, 또는 다른 역변환을 변환 계수 블록에 적용할 수도 있다.
PU 가 인트라 예측을 사용하여 인코딩되면, 인트라 예측 프로세싱 유닛 (166) 은 인트라 예측을 수행하여 PU 의 예측 블록들을 생성할 수도 있다. 인트라-예측 프로세싱 유닛 (166) 은 공간적으로-이웃하는 블록들의 샘플들에 기초하여 PU 의 예측 블록들을 생성하도록 인트라-예측 모드를 사용할 수도 있다. 인트라-예측 프로세싱 유닛 (166) 은 비트스트림으로부터 획득된 하나 이상의 신택스 엘리먼트들에 기초하여 PU 에 대한 인트라 예측 모드를 결정할 수도 있다.
PU 가 인터 예측을 사용하여 인코딩되면, 엔트로피 디코딩 유닛 (150) 은 PU 에 대한 모션 정보를 결정할 수도 있다. 모션 보상 유닛 (164) 은, PU 의 모션 정보에 기초하여 PU 에 대한 하나 이상의 참조 블록들을 결정할 수도 있다. 모션 보상 유닛 (164) 은, 하나 이상의 참조 블록들에 기초하여, PU 에 대한 예측 블록들 (예를 들어, 예측 루마, Cb 및 Cr 블록들) 을 생성할 수도 있다.
재구성 유닛 (158) 은 CU 의 TU들에 대한 변환 블록들 (예를 들어, 루마, Cb 및 Cr 변환 블록들) 및 CU 의 PU들에 대한 예측 블록들 (예를 들어, 루마, Cb 및 Cr 블록들), 즉 적용 가능한 바와 같이 인트라-예측 데이터 또는 인터-예측 데이터를 사용하여, CU 에 대한 코딩 블록들 (예를 들어, 루마, Cb 및 Cr 코딩 블록들) 을 재구성할 수도 있다. 예를 들어, 재구성 유닛 (158) 은 예측 블록들 (예를 들어, 루마, Cb 및 Cr 예측 블록들) 의 대응 샘플들에 변환 블록들 (예를 들어, 루마, Cb 및 Cr 변환 블록들) 의 샘플들을 부가하여, CU 의 코딩 블록들 (예를 들어, 루마, Cb 및 Cr 코딩 블록들) 을 재구성할 수도 있다.
필터 유닛 (160) 은 CU 의 코딩 블록들과 연관된 블록킹 아티팩트들을 감소시키도록 디블록킹 동작을 수행할 수도 있다. 비디오 디코더 (30) 는 CU 의 코딩 블록들을 디코딩된 픽처 버퍼 (162) 에 저장할 수도 있다. 디코딩된 픽처 버퍼 (162) 는 도 1 의 디스플레이 디바이스 (32) 와 같은 디스플레이 디바이스 상의 프리젠테이션, 인트라 예측, 및 후속의 모션 보상을 위해 참조 픽처들을 제공할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 디코딩된 픽처 버퍼 (162) 에서의 블록들에 기초하여 다른 CU들의 PU들에 대한 인트라 예측 또는 인터 예측 동작들을 수행할 수도 있다.
비디오 디코더 (30) 및/또는 그의 하나 이상의 컴포넌트들은 위에 논의된 다양한 문제들, 예컨대 기존 코딩 툴들이 HEVC 쿼드트리 기반 파티셔닝에 대해 최적화되고 QTBT 기반 파티셔닝의 이진 트리 양태들에 대해서는 최적화되지 않는 것으로부터 발생하는 잠재적 문제들을 완화하거나 잠재적으로 해결하기 위해 본 개시물의 다양한 디코더 사이드 기법들을 구현하도록 구성될 수도 있다.
본 개시물의 일부 기법들에 따르면, 비디오 디코더 (30) 는 블록 분할 기반 파티셔닝 구조가 블록에 적용되는 시나리오들에 대해, 하나 이상의 코딩 툴들에 대한 블록 레벨 임계를 정의할 수도 있다. 본 명세서에서 사용된 바와 같이, "코딩 툴" 은 소정의 블록 레벨에서 스위치 온 또는 오프될 수 있는 특정 코딩 방법, 기법 또는 모드이다. 본 개시물은 다양한 경우들에서 그러한 코딩 툴들의 예시적인 예들로서 인트라 예측, 인터 예측, 인터 스킵, 변환 변환, 강화된 다중 변환 (EMT), 분리가능하지 않은 세컨더리 변환 (NSST), 또는 포지션 의존 예측 조합 (PDPC) 을 사용하지만, 비디오 디코더 (30) 가 또한 다른 코딩 툴들의 사용에도 본 개시물의 기법들을 적용할 수도 있음을 이해할 것이다.
예를 들어, 비디오 디코더 (30) 는 코딩 툴이 적용되는 블록이 HEVC 쿼드트리 구조에 따라 파티셔닝될지 또는 QTBT 구조에 따라 파티셔닝될지에 관계없이, 인코딩된 비디오 데이터를 재구성하기 위해 위에 열거된 코딩 툴들 중 하나 이상과 같은 코딩 툴들을 적용할 때, 블록 레벨 임계와 같은 제약을 부과할 수도 있다. 비디오 디코더 (30) 는 미리 결정된 블록 레벨 임계를 충족하거나 초과하는 블록을 재구성하는데 적용될 코딩 툴에 관련된 하나 이상의 신택스 엘리먼트들을 수신할 수도 있다. 일부 예들에서, 임계는 비디오 디코더 (30) 가 예측 및 역변환을 적용하는 블록 사이즈와 상이하다.
본 개시물의 기법들의 일부 구현들에서, 비디오 디코더 (30) 는 개개의 블록의 치수들에 의존하는 블록 레벨 임계를 사용할 수도 있다. 예들로서, 블록 레벨 임계는 블록의 폭 및 높이의 일부 조합, 또는 블록 면적 사이즈의 하나 이상에 관하여 표현될 수도 있다. 예를 들어, 비디오 디코더 (30) 는 EMT 코딩 툴에 대해 256 픽셀들의 블록 면적 기반 임계를 사용할 수도 있다. 즉, 비디오 디코더 (30) 는 EMT 기반 디코딩을 적용하여 면적에 관하여 적어도 256 픽셀들을 커버하고, 비디오 디코더 (30) 가 인코딩된 비디오 비트스트림에서 인에이블된 EMT 플래그를 수신하는 블록들을 재구성할 수도 있다.
이러한 예에서, 비디오 디코더 (30) 는 256 면적 임계를 충족하거나 초과하는 블록들에 대해 블록 와이드 기반으로 EMT 플래그가 적용되도록 EMT 플래그 및 하나 이상의 EMT 인덱스들들 수신할 수도 있다. 즉, 256 픽셀 블록이 HEVC 쿼트트리 구조에 따라 또는 QTBT 구조에 따라 추가로 파티셔닝되더라도, 비디오 디코더 (30) 는 EMT 플래그의 값이 256 픽셀 블록의 모든 서브 블록들에 적용되는 것을 결정할 수도 있다. 예를 들어, QTBT 파티셔닝 구조에 따라, 이진 파티셔닝은 256 픽셀이 추가로 파티셔닝된 후에만 적용가능해질 수도 있다. 즉, 256 픽셀 블록은 블록이 HEVC 쿼드트리 파티셔닝에 따라 또는 QTBT 파티셔닝 구조에 따라 분할되는지에 관계없이 정사각형 폼 팩터를 가질 수도 있다.
도 7 은 CTU (170) 로서 도시된 64x64 CTU 에 대한 본 개시물의 코딩 툴 관련 플래그 시그널링 기법들의 예를 도시하는 개념적 다이어그램이다. 본 개시물의 EMT 플래그 기반 기법들의 일 예는 도 7 의 64x64 CTU 에 대해 도시된다. 도 7 에 도시된 예에 따라, 비디오 디코더 (30) 는 256 이상을 갖는 각각의 블록에 대해 EMT 플래그만을 수신할 수도 있다. 256 의 임계 사이즈를 충족하는 블록은 두꺼운 쇄선 경계들을 사용하여 도시된다. 두꺼운 실선 경계들은 2 개의 두꺼운 파선 경계가 오버랩하는 경계들을 따라 나타나는 것을 알 것이다. 256 보다 작은 면적 사이즈 (얇은 경계들, 실선 또는 점선으로 식별됨) 를 갖는 각각의 서브 블록에 대해, 비디오 디코더 (30) 는 EMT 플래그를 수신하지 않을 수도 있다. 대신, 비디오 디코더 (30) 는 현재 서브 블록을 둘러싸거나 포함하는 최소 두꺼운 선 경계 (임계 면적 충족) 블록의 EMT 플래그로부터 EMT 플래그 값을 추론할 수도 있다. 다양한 예들에서, 비디오 디코더 (30) 는 다른 블록 레벨 임계 면적들, 예컨대 32, 64, 128, 512, 1024 등을 사용할 수도 있지만 이에 제한되지 않는다.
코딩 툴들에 대한 블록 레벨 임계화 기법들의 일부 예들에서, 비디오 디코더 (30) 는 블록 사이즈 치수들 이외의 기준에 기초하는 블록 레벨 임계를 사용할 수도 있다. 예를 들어, 블록 레벨 임계는 CTU, 슬라이스, 타일, 픽처, 또는 픽처들의 그룹 기반 중 하나 이상에 기초할 수도 있다. 즉, 블록 레벨 임계는 위의 기준들 중 하나 이상에 기초하여 변화할 수도 있다.
대안으로, 일부 구현들에서, 블록 레벨 임계는 이전에 코딩된 CTU, 슬라이스, 타일, 픽처 또는 GOP 의 정보를 각각 사용하여, CTU, 슬라이스, 타일, 픽처 또는 GOP 기반에 기초하여 달라질 수도 있다. 블록 레벨 임계가 이전에 코딩된 정보에 기초하여 달라지는 몇몇 경우들에서, 블록 레벨은 예를 들어, 각각의 블록 사이즈에 대해 예측 및/또는 역변환이 얼마나 수행되는지의 카운트에 기초할 수도 있다. 일부 예들에서, 블록 레벨 임계는 디폴트 값으로 설정될 수도 있다. 디폴트 값들의 예는 64 또는 256 값을 포함하지만 이에 제한되지 않는다. 일부 예들에서, 비디오 디코더 (30) 는 블록을 포함하는 슬라이스에 대한 슬라이스 유형, 예를 들어 슬라이스가 인트라 슬라이스, P 슬라이스 또는 B 슬라이스인지 여부에 기초하여 형성되는 블록 레벨 임계 값을 수신할 수도 있다. 블록 레벨 임계는 미리 정의된 고정 값일 수도 있지만, 비디오 디코더 (30) 는 상이한 코딩 구성들 또는 이미지 컴포넌트들에 대해 상이한 값을 적용할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 현재 슬라이스가 인트라 슬라이스, P 슬라이스 또는 B 슬라이스인지 여부 및/또는 현재 블록이 루마 또는 크로마 컴포넌트를 나타내는지 여부와 같은, 소정의 팩터들에 의존하여 블록 레벨 임계에 대해 상이한 값을 적용할 수도 있다.
일부 예들에서, 비디오 디코더 (30) 는 임계 값이 적용되는 블록에 대해 대역 외 블록 레벨 임계를 수신할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 슬라이스 헤더, 픽처 파라미터 세트 (PPS), 비디오 파라미터 세트 (VPS) 또는 시퀀스 파라미터 세트 (SPS) 와 같은 하나 이상의 신택스 구조들에서 블록 레벨 임계를 수신할 수도 있다. 블록 레벨 임계 (예를 들어, 적용 가능한 인코딩된 블록에 대해 대역 내인지 또는 대역 외인지) 를 수신하면, 비디오 디코더 (30) 는 블록 레벨 임계를 인코딩된 블록에 대해 개개의 코딩 툴(들) 의 디코더 측 양태들을 적용하기 위한 조건으로서 사용할 수도 있다.
EMT 의 적용을 위한 블록 면적 기반 임계에 관하여 상술한 구현에서, 비디오 디코더 (30) 는 시그널링된 블록 레벨 임계 면적을 충족하거나 초과하는 블록에 임의의 수신된 EMT 플래그를 적용할 수도 있다. 예를 들어, 수신된 블록 레벨 임계 면적 (예를 들어, 슬라이스 헤더, VPS, PPS, 또는 SPS) 이 256 픽셀의 면적을 반영하면, 비디오 디코더 (30) 는 수신된 EMT 플래그를 적어도 256 픽셀인 블록에 적용할 수도 있다.
예를 들어, 비디오 디코더 (30) 는 인에이블된 상태 (예를 들어, 1 의 값) 로 설정되는 EMT 플래그를 수신할 수도 있다. EMT 플래그의 인에이블된 상태에 기초하여, 비디오 디코더 (30) 는 EMT 플래그가 적용되는 면적에서 적어도 256 픽셀들을 커버하는 블록의 디코딩에 관하여 EMT 코딩 툴을 활성화할 수도 있다. 즉, 비디오 디코더 (30) 는 면적에 적어도 256 픽셀이 있는 블록의 모든 서브 블록들에 대해 EMT 코딩 툴을 활성화할 수도 있다. 결국, 비디오 디코더 (30) 는 면적에 적어도 256 픽셀이 있는 블록의 각각의 서브 블록에 대해 개별 EMT 인덱스를 수신할 수도 있다. 각각의 수신된 EMT 인덱스 값에 기초하여, 비디오 디코더 (30) 는 EMT 코딩 툴을 사용하여 EMT 활성화 블록의 각각의 서브 블록을 재구성할 수도 있다.
이러한 방식으로, 비디오 디코더 (30) 는 QTBT 파티셔닝을 수용하기 위해 코딩 툴의 최적화에서 어떠한 변화도 요구하지 않으면서, 기존 코딩 툴들을 적용하기 위해 본 개시물의 블록 레벨 임계화 기법들을 구현할 수도 있다. EMT 플래그와 같은 코딩 툴 기반 신택스 엘리먼트는 HEVC 쿼드트리 파티셔닝 구조에 따라 CU 레벨에서 시그널링된다. HEVC 호환 CU 는 사이즈가 다를 수도 있지만 8X8 치수 아래로 떨어지지 않는다. 하지만, QTBT 분할 구조는 때때로 4 개의 서브 블록들까지 분할되는 정도로, 8X8 블록이 추가로 파티셔닝되는 것을 허용한다. 이와 같이, QTBT 파티셔닝 구조에 대한 기존 코딩 툴들 (예를 들어, EMT, PDPC 등) 의 최적화를 확장하면, 플래그 코딩이 4 배 증가하게 할 것이다. 이와 같이, 비디오 디코더 (30) 는 ATBT 파티셔닝된 블록에 대한 4 개의 플래그를 수신하고 프로세싱하는 것이 요구되며, 여기서 비디오 디코더 (30) 는 HEVC 쿼드트리 파티셔닝된 블록에 대해 단일 플래그를 수신하고 프로세싱하는 것이 요구되었다.
EMT 플래그에 대한 블록 면적 기반 임계화의 예에 의해 도시된 바와 같이, 본 개시물의 기법들은 복잡도 및 대역폭 소비에서의 4 배 증가없이, 비디오 인코더 (22) 및 비디오 디코더 (30) 가 QTBT 파티셔닝된 블록들에 대해 (EMT 와 같은) HEVC 최적화된 코딩 툴들을 레버리지하는 것을 계속하는 것을 가능하게 한다. 즉, 본 개시물의 블록 면적 기반 임계화 기법들은, 블록이 QTBT 파티셔닝 구조에 따라 파티셔닝되더라도, 비디오 인코더 (22) 및 비디오 디코더 (30) 가 정사각형 256 픽셀 블록에 대해 단일 플래그를 프로세싱하는 것을 가능하게 한다. 이러한 방식으로, 본 개시물의 기법들은 비디오 인코더 (22) 및 비디오 디코더 (30) 가 더 많은 최신 QTBT 블록 파티셔닝 구조를 레버리징하면서, 기존 HEVC 최적화된 코딩 툴들을 사용하는 것을 가능하게 한다. 즉, 본 개시물의 기법들은 QTBT 파티셔닝 구조에 대해 부가적인 최적화 없이 기존 (HEVC 최적화된) 코딩 툴들의 계속적인 사용을 가능하게 한다.
본 개시물의 일부 양태들에 따라, 비디오 디코더 (30) 는 블록 재구성에 대해 인트라 코딩만이 적용되거나, 인터 코딩만이 적용되는 최저 블록 레벨을 결정하기 위해 블록 레벨 임계를 적용할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 인트라 코딩 또는 인터 코딩만이 사이즈 기반 블록 레벨 임계에 기초하여 적용되는 최소 블록 레벨을 결정할 수도 있고, 또는 인트라 코딩 또는 인터 코딩만이 인코딩된 비디오 비트스트림에서 명시적으로 시그널링된 값으로서 적용되는 최소 블록 레벨을 수신할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 인트라 코딩 및 인터 코딩의 혼합이 블록 레벨 임계에 또는 그 아래에서 허용되지 않는 것을 결정할 수도 있다. 즉, 비디오 디코더 (30) 는 인터 코딩만 또는 인트라 코딩만을 (하지만 양자의 조합은 아님), 블록 재구성 동안, 임계 면적 이하를 갖는 블록의 모든 서브 블록들에 적용할 수도 있다. 다른 말로 하면, 블록이 면적 임계에 또는 그 내에 있으면, 비디오 디코더 (30) 는 블록으로부터 서브 블록들을 형성하는데 사용된 파티셔닝 구조(들) 에 관계없이, 인코딩된 블록의 모든 인코딩된 서브 블록들을 재구성하기 위해 인터 코딩을 적용할 수도 있고, 또는 인트라 코딩을 모든 서브 블록들에 적용할 수도 있다. 블록 면적에 관하여 기재되었지만, 일부 예들에서, 블록 레벨 임계는 블록 폭 및/또는 블록 높이와 같은 다른 사이즈 치수들에 기초할 수도 있음을 알 것이다.
일부 예들에서, 블록 레벨 임계는 CTU 기반, 슬라이스 기반, 타일 기반, 픽처 기반, 또는 픽처들의 그룹 (GOP) 기반 중 하나 이상에 따라 달라질 수도 있다. 부가적으로, 인트라 및 인터 코딩의 임의의 혼합을 허용 또는 불허하기 위해 블록 레벨 임계를 적용하는 비디오 디코더 (30) 의 다양한 예들에서, 비디오 디코더 (30) 는 슬라이스 헤더, 픽처 파라미터 세트 (PPS), 비디오 파라미터 세트 (VPS), 또는 시퀀스 파라미터 세트 (SPS) 와 같은 대응 블록에 대해 대역 외의 블록 레벨 임계를 수신할 수도 있다.
대안으로, 블록 레벨 임계는 이전에 재구성된 CTU, 슬라이스, 타일, 픽처, 도는 GOP 의 코딩된 정보를 각각 사용하여 CTU 기반, 슬라이스 기반, 타일 기반, 픽처 기반 또는 GOP 기반 중 하나 이상에 기초하여 업데이트될 수도 있다. 예를 들어, 비디오 디코더 (30) 는 각각의 블록 사이즈에 대해 예측 및/또는 역변환이 얼마나 수행되는지의 카운트에 기초하여 블록 레벨 임계를 업데이트할 수도 있다. 일부 대안들에서, 비디오 디코더 (30) 는 블록 레벨 임계를 디폴트 값, 예컨대 64 또는 256 으로 설정할 수도 있다. 일부 예들에서, 비디오 디코더 (30) 는 슬라이스 유형, 예를 들어 슬라이스가 인트라 슬라이스, P 슬라이스 또는 B 슬라이스인지 여부에 의존하는 값으로서 블록 레벨 임계를 수신할 수도 있다.
인트라 코딩 또는 인터 코딩 결정들에 대한 블록 레벨 임계의 일부 구현들에서, 블록 레벨 임계 업데이팅은 선택적일 수도 있다. 예를 들어, 비디오 디코더 (30) 는 블록 레벨 임계 값과 관련된 정보를 파악하는 (기존 플래그인) "현재" 플래그를 수신할 수도 있다. 예를 들어, 플래그가 0 값으로 설정되는 경우, 비디오 디코더 (30) 는 블록 레벨 임계가 디폴트 임계 레벨 또는 디폴트 값으로 설정되는 것을 결정할 수도 있다. 블록 레벨 임계가 디폴트 값으로 설정되는 경우, 비디오 디코더 (30) 는 선택적으로 (PPS, SPS 또는 VPS 에서와 같이) 상위 구조 레벨에서 블록 레벨 임계 값을 수신할 수도 있다. 다른 한편으로, 현재 플래그의 값이 1 의 값으로 설정되는 경우, 비디오 디코더 (30) 는 블록 레벨 임계 값이 직접 시그널링되거나 시그널링될 것임을 결정할 수도 있다.
비디오 디코더 (30) 가 플래그를 수신하지 않는 경우, 비디오 디코더 (30) 는 플래그의 값을 0 으로 추론할 수도 있다. 즉, 플래그가 블록에 대해 수신되지 않은 경우, 비디오 디코더 (30) 는 블록 레벨 임계가 디폴트 값으로 설정되는 것을 결정할 수도 있고, 따라서 관련 코딩 툴(들) 을 블록에 적용하는 것에 관한 임계 블록 레벨로서 디폴트를 사용할 수도 있다. 일부 경우들에서, 비디오 디코더 (30) 는 조정된 값을 수신하여, 시그널링된 값이 레벨이 디폴트 값과 동일한 임의의 경우를 배제할 수도 있다. 일부 예들에서, 비디오 디코더 (30) 는 시그널링이 레벨이 디폴트 값과 동일한 임의의 경우를 배제하도록 조정된 블록 레벨 임계 값을 수신할 수도 있다.
일부 예들에서, 비디오 디코더 (30) 는 인코딩된 블록을 포함하는 슬라이스에 대한 슬라이스 유형, 예를 들어, 슬라이스가 인트라 슬라이스, P 슬라이스 또는 B 인지 여부에 의존하는 값으로 블록 레벨 임계를 수신할 수도 있다. 블록 레벨 임계는 몇몇 미리 정의된 고정 값들 중 하나일 수도 있지만, 비디오 디코더 (30) 는 상이한 코딩 구성들 또는 이미지 컴포넌트들에 대해 상이한 값을 적용할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 현재 슬라이스가 인트라 슬라이스, P 슬라이스 또는 B 슬라이스인지 여부 및/또는 현재 인코딩된 블록이 루마 컴포넌트 또는 크로마 컴포넌트인지 여부와 같은, 소정의 팩터들에 의존하여 블록 레벨 임계에 대해 상이한 값을 적용할 수도 있다.
일부 예들에서, 비디오 디코더 (30) 는 블록 레벨 임계에 또는 그 아래에 있는 블록에 대해 인트라 코딩과 인터 코딩 사이의 선택에 하나 이상의 예외들을 구현할 수도 있다. 즉, (인트라 전용 또는 인터 전용 블록들에 대한 블록 레벨 임계화에 대한 예외들을 형성하는) 일부 시나리오들에서, 비디오 디코더 (30) 는 인트라 및 인터 코딩의 양자 모두를 사용하여 블록 레벨에 또는 그 아래에 있는 블록의 인코딩된 서브 블록들을 재구성할 수도 있다. 일부 그러한 시나리오들에서, 비디오 디코더 (30) 가 인터 전용 또는 인트라 전용 선택에 예외들을 만들도록 구성되는 경우, 비디오 디코더 (30) 는 블록 레벨 임계에 또는 그 내에 있는 블록에 대해 시그널링된 플래그를 수신할 수도 있다. 비디오 디코더 (30) 는 인트라 및 인터 코딩의 혼합이 블록의 개개의 서브 블록들에 대해 허용되는지 여부를 결정하기 위해 플래그의 값을 복구할 수도 있다. 예를 들어, 플래그가 0 의 값으로 설정되는 경우, 비디오 디코더 (30) 는 인트라 코딩 및 인터 코딩의 혼합이 대응 블록의 재구성에서 허용되지 않는 것을 결정할 수도 있다. 다른 한편으로, 플래그가 1 의 값으로 설정되는 경우, 비디오 디코더 (30) 는 인터 코딩 및 인트라 코딩의 혼합이 대응 블록의 서브 블록들의 코딩에 대해 허용되는 것을 결정할 수도 있다. 비디오 디코더 (30) 가 블록에 대해 인트라 코딩 및 인터 코딩의 혼합이 허가되는지 여부를 결정하기 위해 수신하고 복구하는 플래그는, 그 플래그가 H.264 및/또는 HEVC 와 같은 기존 비디오 코딩 표준들에서 특정된 신택스 엘리먼트들에 대해 부가 신택스 엘리먼트를 나타낸다는 점에서, 새로운 플래그를 나타낼 수도 있다.
일부 예들에서, 비디오 디코더 (30) 는 하나 이상의 코딩 툴들의 최적화를 위해 블록 레벨 제약을 구현할 수도 있지만, 임계 충족 또는 임계 초과 블록이 인트라 코딩된 및 인터 코딩된 서브 블록들의 혼합을 포함하는 경우 그 제약을 제거할 수도 있다. 예를 들어, PDPC 및 NSST 와 같은 일부 코딩 툴들은 HEVC 에 따라 인트라 코딩에 대해서만 최적화된다. EMT 는 인터 코딩 및 인트라 코딩의 양자 모두에 최적화되며, 이로써 EMT-인터 및/또는 EMT-인트라로서 구현될 수도 있다. 일부 코딩 툴들은 HEVC 에 따른 인터 코딩에만 최적화된다. 이와 같이, 인트라 코딩된 및 인터 코딩된 서브 블록들의 양자 모두를 포함하는 블록들의 경우에서 코딩 최적화를 위한 블록 레벨 제약의 제거는 임의의 그러한 코딩 툴들에 적용가능한다.
예를 들어, EMT 코딩 툴은 주어진 블록에 대해 EMT 인트라 또는 EMT 인터로서 구현되기 때문에, 블록 레벨 임계는 블록이 인트라 코딩된 및 인터 코딩된 서브 블록들을 포함하는 경우에서 EMT 코딩 툴의 사용을 지연시킬 수도 있는데, 이는 EMT 코딩 툴들이 EMT 인트라로서 또는 EMT 인터로서 적용되기 때문이다. 유사하게, 블록 레벨 제약은 블록이 인트라 코딩된 및 인터 코딩된 서브 블록들을 포함하는 경우들에서 PDPC 툴 또는 NSST 툴의 사용을 지연시킬 수도 있는데, 이는 PDPC 툴 및 NSST 툴의 각각이 인트라 코딩된 블록들에 대해 최적화되기 때문이다. 이러한 방식으로, 비디오 디코더 (30) 는 QTBT 파티셔닝 구조를 수용하기 위해 코딩 툴들을 적용하기 위한 블록 레벨 제약들을 구현할 수도 있지만, 인터 코딩된 및 인트라 코딩된 서브 블록들의 혼합을 포함하는 블록들의 경우에서 제약을 제거하여, 코딩 툴들의 인터 전용 또는 인트라 전용 최적화를 레버리지할 수도 있다.
본 개시물의 일부 기법들에 따라, 비디오 디코더 (30) 는 하나 이상의 코딩 툴들에 대한 정보를 수신할 수도 있으며, 여기서 정보의 시그널링은 블록 레벨 임계에 의존한다. 일 구현에서, 비디오 디코더 (30) 는 비디오 디코더 (30) 에 의해 적용되거나 비디오 디코더 (30) 에 이용가능한 모든 코딩 툴들에 대한 정보를 수신할 수도 있으며, 여기서 이러한 모든 코딩 툴들에 대한 정보의 시그널링은 단일 블록 레벨 임계에 의존한다. 예를 들어, 비디오 디코더 (30) 는 적어도 임계 블록 레벨에 있는 블록에 대해서만, 단일 EMT 플래그 또는 단일 PDPC 플래그 또는 단일 NSST 플래그를 수신할 수도 있다. 즉, 이러한 구현에서, 블록 레벨 임계는 비디오 디코더 (30) 가 인코딩된 블록을 재구성하는데 어느 코딩 툴을 사용하는지에 관계없이 정적 값을 갖는다.
코딩 툴 시그널링을 위한 블록 레벨 임계의 다른 구현에서, 블록 레벨 임계 값들은 코딩 툴 기반으로 코딩 툴 상에서 달라질 수도 있다. 예를 들어, 비디오 디코더 (30) 는 제 1 임계 레벨을 충족하는 블록들에 대해서만 EMT 플래그를, 제 2 임계 레벨을 충족하는 블록들에 대해서만 PDPC 플래그를, 그리고 제 3 임계 레벨을 충족하는 블록들에 대해서만 NSST 플래그를 수신할 수도 있다.
본 개시물의 일부 예들에 따라, 비디오 디코더 (30) 는 임의의 주어진 시간에 단일 인코딩된 블록을 재구성하기 위한 단일 코딩 툴에 대해 고유 블록 레벨 임계를 적용할 수도 있다. 예를 들어, 블록 레벨 임계 (신택스 시그널링이 수행 될 수 있는 최소 블록 레벨을 나타내는 임계) 를 충족하거나 초과하는 블록은 오버랩들 없이 픽처 프레임을 구성할 수도 있다. 예를 들어, 이러한 구현에 따라, 비디오 디코더 (30) 는 파티셔닝이 블록 레벨 임계보다 작은 적어도 하나의 서브 블록을 초래하게 되는 경우 임의의 블록을 추가로 파티셔닝하지 않을 수도 있다. 즉, 비디오 디코더 (30) 는 임계 레벨 사이즈를 갖는 하나보다 많은 블록에서 더 작은 서브 블록을 포함하지 않을 수도 있다.
일부 시나리오에서, 비디오 디코더 (30) 는 인코딩된 비디오 비트스트림에서 소위 "가상 블록" 을 수신할 수도 있다. 보다 구체적으로, 가상 블록에 관하여, 비디오 디코더 (30) 는 블록을 형성하는 인코딩된 데이터의 서브세트만을 수신할 수도 있다. 예를 들어, 가상 블록에 대해, 비디오 디코더 (30) 는 블록의 인코딩된 비디오 데이터에 대해 소정의 신택스 엘리먼트들의 그룹화를 수신할 수도 있다. 가상 블록과는 대조적으로, "현실 블록" 은 비디오 디코더 (30) 가 인코딩된 정보의 풀 세트를 수신하는 비디오 데이터의 인코딩된 블록을 나타낸다.
본 개시물의 일부 기법들에 따라, 가상 블록이 현실 블록으로서 자격을 취득하는 경우 (즉, 가상 블록 및 대응 현실 블록이 동일한 단일 블록인 경우), 비디오 디코더 (30) 는 가상 블록에 대해 통상적으로 수행되는 정보의 연기된 시그널링을 수신할 수도 있다. 즉, 비디오 디코더 (30) 는 현실 블록에 대해 가상 블록 정보를 대신 수신할 수도 있다.
소정의 시나리오들 대신에 현실 블록에 대한 가상 블록 정보를 수신함으로써, 비디오 디코더 (30) 는 소정의 경우들에서 비디오 인코더 (22) 및 상호접속 데이터 전송 인프라구조에 부과된 비트레이트 요건들을 감소시킬 수도 있다. 예를 들어, 신택스 시그널링이 소정의 예측 모드들에 대해서만 수행되는 경우, 현실 블록이 더 이상 분할되지 않고, 현실 블록의 사이즈가 적어도 임계 사이즈와 동일한 경우, 현실 블록은 최종 블록을 나타낼 수도 있다. 이와 같이, 가상 블록의 부분으로서 통상적으로 시그널링되는 신택스 엘리먼트들의 시그널링이 (예를 들어, 비디오 인코더 (22) 에서) 후속하여 수행될 수도 있고, 비디오 디코더 (30) 는 현실 블록에 대해 이들 신택스 엘리먼트들을 전적으로 수신할 수도 있다.
비디오 디코더 (30) 는 현실 블록에 대해 후속하여 가상 블록 정보를 수신할 수도 있어서, 시그널링된 정보는 (서로 구별되는) 결과의 서브 블록들의 조합이 가상 블록의 사이즈에서 가능한지 여부에 의존한다. 예를 들어, 비디오 디코더 (30) 는 현실 블록에 대한 정보를 수신할 수도 있고 또는 수신하지 않을 수도 있어서, 서브 블록들이 인트라 예측 및 인터 예측 모드들을 사용하여 인코딩된 것에 기초하여 서브 블록들이 차별화되는 경우, 시그널링이 슬라이스 유형에 의존한다. 인코딩된 블록이 I 슬라이스에 포함되는 경우, 인터 예측은 인코딩된 블록의 재구성을 위한 옵션은 아니다. 이로써, 블록이 I 슬라이스에 포함되는 경우, 비디오 인코더 (22) 는 조건부 시그널링이 필요하지 않은 것을 결정할 수도 있다.
본 명세서에서는 본 개시물의 조건부 시그널링의 일 예가 PDPC 코딩 툴에 관하여 설명된다. 일부 경우들에서, 비디오 디코더 (30) 는 경계에서 명시적으로 시그널링된 분할 플래그의 비 수신에 기초하여, 픽처 경계에서 분할 플래그를 추론할 수도 있다. 그러한 경우들에서, 비디오 디코더 (30) 는 블록이 픽처 경계에서 분할되는 것으로 추론할 수도 있다. 즉, 비디오 디코더 (30) 는 블록이 픽처 경계를 횡단하는 것에 기초하여, 픽처 경계에서 블록 분할을 추론하도록 구성될 수도 있다.
인코딩된 블록에 대해 인에이블된 상태로 설정된 PDPC 플래그를 수신할 시, 비디오 디코더 (30) 는 임계 사이즈 블록의 각각의 그리고 매 서브 블록이 (서브 블록들을 획득하는데 사용된 파티셔닝 스킴(들)에 관계없이) PDPC 코딩 툴을 사용하여 재구성되는 것을 추론할 수도 있다. 즉, 비디오 디코더 (30) 는 더 작은 서브 블록들에 대해 PDCP 플래그 값들이 임계 레벨에 또는 임계 레벨 초과에 있는 더 큰 블록에 대해 수신된 단일 PDPC 플래그 값과 동일한 것을 추론할 수도 있다. 일 예에서, 비디오 디코더 (30) 는 PDPC 코딩 툴을 사용하여 인코딩되고 디코딩될 루마 컴포넌트에 대해 64 샘플들과 동일한 임계 레벨을 사용할 수도 있다.
상술한 바와 같이, PDPC 는 인트라 예측 모드에 최적화되는 코딩 툴이다. 따라서, 비디오 디코더 (30) 는 임의의 인터 예측된 인코딩된 블록들 또는 서브 블록들의 재구성을 위해 PDPC 코딩 툴을 적용하지 않을 수도 있다. 비디오 인코더 (22) 가 조건부 시그널링을 구현하지 않는 경우, 인코딩된 블록이 더 이상 분할되지 않고, 이에 따라 임의의 인터 코딩된 서브 블록들을 포함하지 않는다면, 비디오 디코더 (30) 는 임계 사이즈 이상인 인코딩된 블록에 대해 PDPC 정보를 수신할 수도 있다. 다시, PDPC 정보는 블록이 인터 코딩된 서브 블록들을 포함하는 경우 필요하지 않을 수도 있고, 따라서 서브 블록 레벨 PDPC 정보의 시그널링은 불필요한 비트가 시그널링되는 것으로 인해 비트레이트 낭비를 야기할 수도 있다. 이러한 방식으로, PDPC 정보가 명시적으로 시그널링될 필요가 있는 경우들을 감소시킴으로써, 비디오 디코더 (30) 는 PDPC 코딩 툴 어플리케이션에 대한 비트레이트 요건들을 감소시킬 수도 있다.
비디오 디코더 (30) 는 또한, 본 개시물의 조건부 시그널링 기반 재구성 기법들을 예측 파라미터를 결정하기 위해 하나보다 많은 플래그를 사용하는 PDPC 의 복구 버전들의 경우들로 확장할 수도 있다. 하나의 그러한 예는 블록 형상마다, 그리고 예측 모드마다 4 세트의 파라미터들을 활용하는 PDPC 버전이다. 비디오 디코더 (30) 는 블록 사이즈에 대해 상이한 임계들을 구현하여 수신되고 복구되거나 또는 대안으로 승계되고 복구될 플래그의 수를 정의할 수도 있다. 이러한 방식으로, 비디오 디코더 (30) 는 상위 트리 레벨들에서보다 더 많은 수의 PDPC 파라미터 옵션들을 이용할 수 있으며, 여기서 플래그 복구 오버헤드는 비교적 작을 수도 있다. 다른 한편으로, 비디오 디코더 (30) 는 플래그 레벨 마다에서, 상대적 플래그 복구 오버헤드가 더 큰 하위 트리 레벨들에서 더 적은 수의 PDPC 파라미터 옵션들 (가능하면 단일 옵션만큼 적은) 을 사용할 수도 있다.
일부 예들에서, 비디오 디코더 (30) 는 상술한 바와 같은 코딩 툴들에 대해 블록 레벨 임계화에 대한 대안으로서, 블록 분해 프로세스에서 현실 블록에 대응하지 않는 블록 레벨 임계를 대신 구현할 수도 있다. 이러한 예들에서, 블록을 분할하는 것이 블록 레벨 임계 아래에 있는 2 개의 서브 블록들 (BT 파티셔닝) 또는 4 개의 서브 블록들 (QT 파티셔닝) 을 초래하는 경우, 비디오 디코더 (30) 는 결과의 서브 블록 사이즈로 코딩 툴 관련 신택스 엘리먼트들 수신할 수도 있다. 이러한 서브 블록 기반 블록 레벨 임계의 일 예는 392 또는 2 의 거듭 제곱이 아닌 임의의 임계 사이즈이다. 일부 경우들에서, 비디오 디코더 (30) 는 부동 소수점 값인 서브 블록 기반 블록 레벨 임계를 사용할 수도 있다.
본 개시물의 일부 예들에 따라, 비디오 디코더 (30) 는 블록 사이즈가 블록 레벨 임계와 동일하거나 그 아래인 것을 비디오 디코더 (30) 가 검출할 수 있는 바로 첫번째 순간에, 코딩 툴 관련 신택스 엘리먼트 (예를 들어, EMT 플래그) 를 수신할 수도 있다. 일단 코딩 툴 관련 신택스 엘리먼트가 블록에 대해 시그널링되면, 비디오 디코더 (30) 는 블록의 추가 분할들로부터 초래되는 임의의 서브 블록들에 대해 대응 코딩 툴 관련 신택스 엘리먼트를 수신하지 않을 수도 있다. 즉, 이러한 예들에 따라, 비디오 디코더 (30) 는 결과의 블록이 미리 결정된 블록 레벨 임계에 또는 그 아래에 있는 파티셔닝 접합 상에서, 블록의 제 1 서브 블록에 대한 코딩 툴 관련 신택스 엘리먼트 (예를 들어, EMT 플래그) 를 수신할 수도 있다.
도 8 은 비디오 디코더 (30) 및/또는 그의 다양한 컴포넌트들이 본 개시물의 하나 이상의 기법들을 구현하기 위해 수행할 수도 있는 일 예의 프로세스 (180) 를 도시하는 플로우챠트이다. 프로세스 (180) 는 비디오 디코더 (30) 가 인코딩된 비디오 데이터에 대한 블록 레벨 임계를 결정할 때 시작할 수도 있다 (182). 예를 들어, 비디오 디코더 (30) 는 비디오 디코더 (30) 의 하나 이상의 저장 매체들에 저장되거나 그렇지 않으면 비디오 디코더 (30) 에 액세스 가능한 인코딩된 비디오 데이터의 일부에 대해 블록 레벨 임계를 결정할 수도 있다.
차례로, 비디오 디코더 (30) 는 인코딩된 비디오 데이터의 인코딩된 블록이 블록 레벨 임계 이상인 사이즈를 갖는 것을 결정할 수도 있다 (184). 다양한 예들에서, 블록 레벨 임계는 블록 면적과 같은 다양한 사이즈 기반 용어들로 표현된다. 따라서, 비디오 디코더 (30) 는 블록의 면적이 블록 레벨 임계 값에 의해 표현된 면적 이상이다. 비디오 디코더 (30) 는 임계를 충족하는 인코딩된 블록의 일부가 코딩 툴을 사용하여 재구성되어야 하는 것을 표시하는 신택스 엘리먼트를 수신할 수도 있다 (186). 신택스 엘리먼트의 일 예는 EMT 코딩 툴을 사용하여 인코딩된 블록의 적어도 일부가 재구성되어야 하는 것을 나타내는 EMT 플래그이다.
블록 레벨 임계 이상인 사이즈를 갖는 인코딩된 블록에 기초하여, 비디오 디코더 (30) 는 수신된 신택스 엘리먼트가 인코딩된 블록의 모든 샘플들에 적용되는 것을 결정할 수도 있다 (188). 즉, 적어도 임계 사이즈를 갖는 인코딩된 블록에 기초하여, 비디오 디코더 (30) 는 수신된 신택스 엘리먼트가 인코딩된 블록의 전체에 적용되는 것을 결정할 수도 있다. 결국, 비디오 디코더 (30) 는 코딩 툴을 사용하여 인코딩된 블록을 재구성할 수도 있다 (190).
일부 예들에서, 블록 레벨 임계는 최소 면적을 나타내고, 비디오 디코더 (30) 는 인코딩된 블록이 쿼드트리 기반 분할 스킴 또는 쿼드트리 플러스 이진 트리 기반 파티셔닝 스킴 중 하나에 따라 복수의 서브 블록들로 파티셔닝되는 것을 결정할 수도 있다. 일부 예들에서, 최소 면적 이상인 사이즈를 갖는 인코딩된 블록에 기초하여, 비디오 디코더 (30) 는 수신된 신택스 엘리먼트가 인코딩된 블록의 각각의 서브 블록에 적용되는 것을 결정할 수도 있다.
일부 예들에서, 수신된 신택스 엘리먼트가 강화된 다중 변환 (EMT) 플래그를 포함하고, 비디오 디코더 (30) 는 EMT 플래그가 인에이블된 상태로 설정되는 것을 결정할 수도 있다. EMT 플래그가 인에이블된 상태로 설정되는 것에 기초하여, 비디오 디코더 (30) 는 EMT 코딩 툴을 사용하여 인코딩된 블록의 각각의 개개의 서브 블록에 대한 개개의 EMT 인덱스를 디코딩하고 인코딩된 블록을 재구성할 수도 있다.
일부 예들에서, 인코딩된 블록은 쿼드트리 기반 파티셔닝 스킴 또는 쿼드트리 플러스 이진 트리 기반 파티셔닝 스킴 중 하나에 따라 복수의 서브 블록들로 분할될 수도 있고, 블록 레벨 임계는 최대 서브 블록을 나타낼 수도 있으며, 코딩 툴은 인트라 코딩 또는 인터 코딩 중 적어도 하나를 포함할 수도 있다. 비디오 디코더 (30) 는 최대 서브 블록 면적보다 작은 하나 이상의 서브 블록 중 임의의 것에 기초하여, 서브 블록이 인트라 코딩 또는 인터 코딩 중 하나만을 사용하여 재구성되어야 하는 것을 결정할 수도 있다. 일부 예들에서, 비디오 디코더 (30) 는 신택스 엘리먼트가 수신되는 코딩 툴을 포함하는 복수의 코딩 툴들의 각각의 개개의 코딩 툴에 블록 레벨 임계를 적용할 수도 있다. 복수의 코딩 툴은 강화된 다중 변환 (EMT) 코딩 툴, 포지션 의존 예측 조합 (PDPC) 코딩 툴, 분리가능하지 않은 세컨더리 변환 (NSST) 코딩 툴, 인트라 예측 툴, 또는 인터 예측 툴 중 2 이상을 포함할 수도 있다. 다양한 예들에서, 인트라 예측 툴은 인트라 코딩 툴 또는 인트라 예측 코딩 툴로서 지칭될 수도 있다. 다양한 예들에서, 인터 예측 툴은 인터 코딩 툴 또는 인터 예측 코딩 툴로서 지칭될 수도 있다.
일부 예들에서, 블록 레벨 임계는 복수의 블록 레벨 임계들에 포함되며, 비디오 디코더 (30) 는 신택스 엘리먼트가 수신되는 코딩 툴을 포함하는 복수의 코딩 툴들의 각각의 개개의 코딩 툴에 복수의 블록 레벨 임계들의 개개의 블록 레벨 임계를 적용할 수도 있다.
도 9 는 비디오 인코더 (22) 및/또는 그의 다양한 컴포넌트들이 개시물의 하나 이상의 기법들을 구현하기 위해 수행할 수도 있는 일 예의 프로세스 (210) 를 도시하는 플로우챠트이다. 프로세스 (210) 는 비디오 인코더 (22) 가 비디오 데이터에 대한 블록 레벨 임계를 결정할 때 시작할 수도 있다 (212). 예를 들어, 비디오 인코더 (22) 는 비디오 인코더 (22) 의 하나 이상의 저장 매체들에 저장되거나 그렇지 않으면 비디오 인코더 (22) 에 액세스가능한 비디오 데이터의 일부에 대해 블록 레벨 임계를 결정할 수도 있다.
차례로, 비디오 인코더 (22) 는 비디오 데이터의 블록이 블록 레벨 임계 이상인 사이즈를 갖는 것을 결정할 수도 있다 (214). 다양한 예들에서, 블록 레벨 임계는 블록 면적과 같은, 다양한 사이즈 기반 용어들로 표현된다. 따라서, 비디오 인코더 (22) 는 블록의 면적이 블록 레벨 임계 값에 의해 표현된 면적 이상인 것을 결정할 수도 있다.
비디오 인코더 (22) 는 코딩 툴을 사용하여 블록을 인코딩할 수도 있다 (218). 그러한 코딩 툴들의 예들은 EMT 코딩 툴, PDPC 코딩 툴, NSST 코딩 툴, 인터 코딩 또는 인트라 코딩을 포함한다. 블록이 블록 레벨 임계 이상인 사이즈를 갖는 것에 기초하여, 비디오 인코더 (22) 는 인코딩된 블록을 형성하기 위해 코딩 툴을 사용하여 임계 충족 인코딩된 블록의 모든 샘플들이 재구성되어야 하는 것을 표시하는 신택스 엘리먼트를 인코딩할 수도 있다 (220). 즉, 인코딩된 블록이 적어도 임계 사이즈를 갖는 것에 기초하여, 비디오 인코더 (22) 는 인코딩된 블록 전체에 신택스 엘리먼트가 적용되도록 신택스 엘리먼트를 인코딩할 수도 있다. 하나의 그러한 예에서, 비디오 인코더 (22) 는 전체 인코딩된 블록에 대해 인에이블된 상태에서 EMT 플래그를 인코딩할 수도 있다.
일부 예들에서, 블록 레벨 임계는 최소 버스 블록 면적을 나타내고, 비디오 인코더 (22) 는 쿼드트리 기반 파티셔닝 스킴 또는 쿼드트리 플러스 이진 트리 기반 파티셔닝 스킴에 따라 복수의 서브 블록들로 인코딩된 블록을 파티셔닝할 수도 있다. 일부 예들에서, 비디오 인코더 (22) 는 최소 서브 블록 면적 이상인 사이즈를 갖는 인코딩된 블록에 기초하여, 인코딩된 신택스 엘리먼트가 인코딩된 블록의 각각의 서브 블록에 적용되는 것을 결정할 수도 있다. 일부 예들에서, 인코딩된 신택스 엘리먼트는 강화된 다중 변환 (EMT) 플래그를 포함하고, 비디오 인코더 (22) 는 EMT 플래그를 인에이블된 상태로 설정할 수도 있다. 이들 예들의 일부에서, 비디오 인코더 (22) 는 인코딩된 블록의 각각의 개개의 서브 블록에 대해 개개의 EMT 인덱스를 인코딩할 수도 있다.
일부 예들에서, 인코딩된 블록은 쿼드트리 기반 파티셔닝 스킴 또는 쿼드트리 플러스 이진 트리 기반 파티셔닝 스킴에 따라 복수의 서브 블록들로 파티셔닝되며, 블록 레벨 임계는 최대 서브 블록 면적을 나타내며, 코딩 툴은 인트라 코딩 도는 인터 코딩 중 적어도 하나이다. 이들 예들에서, 비디오 인코더 (22) 는, 최대 서브 블록 면적보다 작은 하나 이상의 서브 블록들의 임의의 개개의 서브 블록에 기초하여, 인트라 코딩 또는 인터 코딩 중 하나만을 사용하여 개개의 서브 블록을 인코딩할 수도 있다. 일부 예들에서, 비디오 인코더 (22) 는 신택스 엘리먼트가 인코딩되는 코딩 툴을 포함하는 복수의 코딩 툴들의 각각의 개개의 코딩 툴에 블록 레벨 임계를 적용할 수도 있다.
일부 예들에서, 복수의 코딩 툴들은 강화된 다중 변환 (EMT) 코딩 툴, 포지션 의존 예측 조합 (PDPC) 코딩 툴, 분리가능하지 않은 세컨더리 변환 (NSST) 코딩 툴을 포함하고, 인트라 예측 툴은 인트라 코딩 툴, 또는 인트라 예측 툴, 또는 인터 측 툴로서 지칭될 수도 있다. 일부 예들에서, 블록 레벨 임계는 복수의 블록 레벨 임계들에 포함되고, 비디오 인코더 (22) 는 신택스 엘리먼트가 인코딩되는 코딩 툴을 포함하는 복수의 코딩 툴들의 각각의 개개의 코딩 툴에 복수의 블록 레벨 임계들의 개개의 블록 레벨을 적용할 수도 있다.
일부 예들에서, 인코딩된 블록은 저장 매체들에 저장된 인코딩된 비디오 데이터의 일부의 현실 블록을 포함하고, 비디오 인코더 (22) 는 현실 블록에 대응하는 가상 블록이 블록 레벨 임계를 충족하는 것을 결정할 수도 있다. 이들 예에서, 비디오 인코더 (22) 는, 블록 레벨 임계를 충족하는 가상 블록에 기초하여, 현실 블록에 대응하는 가상 블록에 대해 인코딩된 신택스 엘리먼트를 시그널링하는 대신 현실 블록에 대해 인코딩된 신택스 엘리먼트를 시그널링할 수도 있다.
일부 예들에서, 비디오 인코더 (22) 는 인코딩된 비디오 비트스트림의 비디오 파라미터 세트 (VPS). 시퀀스 파라미터 세트 (SPS), 또는 픽처 파라미터 세트 (PPS) 중 하나에서 인코딩된 신택스 엘리먼트를 시그널링할 수도 있다. 일부 예들에서, 비디오 인코더 (22) 는 인코딩된 블록의 면적, 인코딩된 블록의 폭, 또는 인코딩된 블록의 높이 중 하나 이상에 기초하여 블록 레벨 임계를 결정할 수도 있다. 일부 예들에서, 비디오 인코더 (22) 는 블록의 일부 및 코딩 툴에 대해 적어도 부분적으로 비트레이트 최적화를 수행함으로써 블록을 인코딩하는데 있어서 코딩 툴을 적용할지 여부를 결정할 수도 있다. 일부 예들에서, 비디오 인코더 (22) 는 인코딩된 블록의 개별 샘플들을 재구성하는데 사용된 코딩 툴을 표시하는 신택스 엘리먼트들을 시그널링하는 것을 회피할 수도 있다.
본 개시물의 소정의 양태들은 HEVC 표준, 예시를 위한 HEVC 표준의 확장들 또는 개발 중인 차세대 비디오 코딩 표준들에 관하여 설명되었다. 하지만, 본 개시물에 설명된 기법들은, 다른 아직 개발되지 않은 다른 표준 또는 전매 비디오 코딩 프로세스들을 포함한, 다른 비디오 코딩 프로세스들에 유용할 수도 있다.
본 개시물에서 설명된 바와 같이, 비디오 코더는 비디오 인코더 또는 비디오 디코더를 지칭할 수도 있다. 유사하게, 비디오 코딩 유닛은 비디오 인코더 또는 비디오 디코더를 지칭할 수도 있다. 마찬가지로, 비디오 코딩은 적용 가능한 바와 같이, 비디오 인코딩 또는 비디오 디코딩을 지칭할 수도 있다.
예시에 의존하여, 본 명세서에 설명된 임의의 기법들의 소정의 액트들 또는 이벤트들은 상이한 시퀀스로 수행될 수도 있거나, 부가, 병합될 수도 있거나, 또는 함께 제거될 수도 있다 (예를 들어, 설명된 모든 액트들 또는 이벤트들이 기법들의 실시에 반드시 필요한 것은 아니다) 는 것으로 이해되어야 한다. 또한, 소정 예들에서, 액트들 또는 이벤트들은, 순차적이기보다는 예를 들어 멀티-스레디드 프로세싱, 인터럽트 프로세싱, 또는 다중 프로세서들을 통해 동시에 수행될 수도 있다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 이 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독 가능 매체 상에 저장되거나 송신될 수도 있고, 하드웨어 기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체들은, 데이터 저장 매체와 같은 유형의 매체에 대응하는 컴퓨터 판독가능 매체들, 또는 예를 들어 통신 프로토콜에 따라, 한 곳에서 다른 곳으로 컴퓨터 프로그램의 전송을 가능하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수도 있다. 이 방식으로, 컴퓨터 판독 가능한 매체는 일반적으로 (1) 비일시적인 유형의 컴퓨터 판독가능 저장 매체 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체는 본 개시물에 설명된 기법들의 구현을 위한 명령들, 코드, 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.
한정이 아닌 예시로서, 이러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장 디바이스, 자기 디스크 저장 디바이스 또는 다른 자기 저장 디바이스, 플래시 메모리, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체라고 적절히 칭해진다. 예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선 (DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 명령들이 송신되면, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의 내에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체 및 데이터 저장 매체는 접속들, 반송파들, 신호들, 또는 다른 일시적 매체들을 포함하지 않고, 대신에 비일시적인, 유형의 저장 매체들과 관련됨을 이해해야 한다. 본원에서 사용된 디스크 (disk) 와 디스크 (disc) 는, 컴팩트 디스크(CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크, 및 블루레이 디스크를 포함하며, 여기서 디스크 (disk) 들은 통상 자기적으로 데이터를 재생하는 반면, 디스크(disc) 들은 레이저들을 이용하여 광학적으로 데이터를 재생한다. 상기의 조합들이 또한, 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은, 하나 이상의 디지털 신호 프로세서 (DSP) 들, 범용 마이크로프로세서들, 프로세싱 회로 (예를 들어, 프로그램가능 프로세싱 회로, 고정 기능 회로, 또는 프로그램가능 프로세싱 회로와 고정 기능 회로의 조합), 주문형 집적 회로 (ASIC) 들, 필드 프로그래머블 로직 어레이 (FPGA) 들, 또는 다른 등가의 집적 또는 이산 로직 회로와 같은, 하나 이상의 프로세서들에 의해 실행될 수도 있다. 따라서, 본원에서 사용되는 바와 같은 용어 "프로세서" 는 상기의 구조 또는 본원에 설명된 구현에 적합한 임의의 다른 구조 중 임의의 것을 지칭할 수도 있다. 또한, 일부 양태들에서, 본원에 설명된 기능성은 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수도 있고, 또는 결합형 코덱에 통합될 수도 있다. 또한, 본 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들에서 완전히 구현될 수 있다.
본 개시물의 기법들은 무선 핸드셋, 집적 회로 (IC), 또는 IC 들의 세트 (예를 들어, 칩 세트) 를 포함하는 광범위한 디바이스들 또는 장치들로 구현될 수도 있다. 개시된 기술들을 수행하도록 구성된 디바이스들의 기능적 양태를 강조하기 위해 다양한 소자들, 모듈들, 또는 유닛들이 본 개시물에서 설명되었지만, 반드시 상이한 하드웨어 유닛들에 의해 실현될 필요는 없다. 오히려, 전술한 바와 같이 다양한 유닛들은 적합한 소프트웨어 및/또는 펌웨어와 관련되어, 전술된 하나 이상의 프로세서들을 포함하여 상호 동작적인 하드웨어 유닛들의 집합에 의해 제공되고 또는 코덱 하드웨어 유닛에 결합될 수도 있다.
다양한 예들이 설명되었다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.
Claims (30)
- 인코딩된 비디오 데이터를 디코딩하기 위한 디바이스로서,
상기 인코딩된 비디오 데이터의 적어도 일부를 저장하도록 구성된 저장 매체들; 및
상기 저장 매체들과 통신하는 프로세싱 회로를 포함하고,
상기 프로세싱 회로는,
상기 저장 매체들에 저장된 상기 인코딩된 비디오 데이터의 상기 일부에 대한 블록 레벨 임계를 결정하고;
상기 저장 매체들에 저장된 상기 인코딩된 비디오 데이터의 상기 일부의 인코딩된 블록이 상기 블록 레벨 임계 이상인 사이즈를 갖는 것을 결정하고;
상기 인코딩된 블록의 일부가 코딩 툴을 사용하여 재구성되는 것을 표시하는 신택스 엘리먼트를 수신하고;
상기 인코딩된 블록이 상기 블록 레벨 임계 이상인 사이즈를 갖는 것에 기초하여, 상기 인코딩된 블록에 포함된 복수의 샘플들의 모든 샘플들에 상기 신택스 엘리먼트가 적용되는 것을 결정하며; 그리고
상기 코딩 툴에 기초하여 상기 인코딩된 블록을 재구성하도록 구성되는, 인코딩된 비디오 데이터를 디코딩하기 위한 디바이스. - 제 1 항에 있어서,
상기 블록 레벨 임계는 최소 면적을 나타내고, 상기 프로세싱 회로는 또한,
상기 인코딩된 블록이 쿼드트리 기반 파티셔닝 스킴 또는 쿼드트리 플러스 이진 트리 기반 파티셔닝 스킴 중 하나에 따라 복수의 서브 블록들로 파티셔닝되는 것을 결정하고; 그리고,
상기 인코딩된 블록이 상기 최소 면적 이상인 사이즈를 갖는 것에 기초하여, 수신된 상기 신택스 엘리먼트가 상기 인코딩된 블록의 각각의 서브 블록에 적용되는 것을 결정하도록 구성되는, 인코딩된 비디오 데이터를 디코딩하기 위한 디바이스. - 제 2 항에 있어서,
상기 수신된 신택스 엘리먼트는 강화된 다중 변환 (enhanced multiple transform; EMT) 플래그를 포함하고, 상기 프로세싱 회로는 또한,
상기 EMT 플래그가 인에이블된 상태로 설정되는 것을 결정하고;
상기 EMT 플래그가 상기 인에이블된 상태로 설정되는 것에 기초하여, 상기 인코딩된 블록의 각각의 개개의 서브 블록에 대해 개개의 EMT 인덱스를 디코딩하며; 그리고
EMT 코딩 툴을 사용하여 상기 인코딩된 블록을 재구성하도록 구성되는, 인코딩된 비디오 데이터를 디코딩하기 위한 디바이스. - 제 1 항에 있어서,
상기 인코딩된 블록은 쿼드트리 기반 파티셔닝 스킴 또는 쿼드트리 플러스 이진 트리 기반 파티셔닝 스킴 중 하나에 따라 복수의 서브 블록들로 파티셔닝되고, 상기 블록 레벨 임계는 최대 서브 블록 면적을 나타내며, 상기 코딩 툴은 인트라 코딩 또는 인터 코딩 중 적어도 하나를 포함하며, 그리고 상기 프로세싱 회로는 또한,
하나 이상의 상기 서브 블록들 중 임의의 것이 상기 최대 서브 블록 면적보다 작은 것에 기초하여, 상기 서브 블록이 인트라 예측 또는 인터 예측 중 하나만을 사용하여 재구성되는 것을 결정하도록 구성되는, 인코딩된 비디오 데이터를 디코딩하기 위한 디바이스. - 제 1 항에 있어서,
상기 프로세싱 회로는 또한, 상기 신택스 엘리먼트가 수신되는 상기 코딩 툴을 포함하는 복수의 코딩 툴들 중 각각의 개개의 코딩 툴에 상기 블록 레벨 임계를 적용하도록 구성되는, 인코딩된 비디오 데이터를 디코딩하기 위한 디바이스. - 제 5 항에 있어서,
상기 복수의 코딩 툴들은 강화된 다중 변환 (EMT) 코딩 툴, 포지션 의존 예측 조합 (position-dependent prediction combination; PDPC) 코딩 툴, 분리가능하지 않은 세컨더리 변환 (non-separable secondary transform; NSST) 코딩 툴, 인트라 예측 툴, 또는 인터 예측 툴 중 2 이상을 포함하는, 인코딩된 비디오 데이터를 디코딩하기 위한 디바이스. - 제 1 항에 있어서,
상기 블록 레벨 임계는 복수의 블록 레벨 임계들에 포함되고, 상기 프로세싱 회로는 또한, 상기 신택스 엘리먼트가 수신되는 상기 코딩 툴을 포함하는 복수의 코딩 툴들 중 각각의 개개의 코딩 툴에 상기 복수의 블록 레벨 임계들 중 개개의 블록 레벨 임계를 적용하도록 구성되는, 인코딩된 비디오 데이터를 디코딩하기 위한 디바이스. - 제 1 항에 있어서,
상기 인코딩된 블록은 상기 저장 매체들에 저장된 상기 인코딩된 비디오 데이터의 상기 일부의 현실 블록을 포함하고, 상기 프로세싱 회로는 또한,
상기 현실 블록에 대응하는 가상 블록에 대한 상기 신택스 엘리먼트를 수신하는 대신 상기 현실 블록에 대한 상기 신택스 엘리먼트를 수신하도록 구성되는, 인코딩된 비디오 데이터를 디코딩하기 위한 디바이스. - 제 1 항에 있어서,
상기 신택스 엘리먼트를 수신하기 위해, 상기 프로세싱 회로는 인코딩된 비디오 비트스트림의 비디오 파라미터 세트 (VPS), 시퀀스 파라미터 세트 (SPS), 또는 픽처 파라미터 세트 (PPS) 중 하나에서 상기 신택스 엘리먼트를 수신하도록 구성되는, 인코딩된 비디오 데이터를 디코딩하기 위한 디바이스. - 비디오 데이터를 인코딩하기 위한 디바이스로서,
상기 비디오 데이터의 적어도 일부를 저장하도록 구성된 저장 매체들; 및
상기 저장 매체들과 통신하는 프로세싱 회로를 포함하고,
상기 프로세싱 회로는,
상기 저장 매체들에 저장된 상기 비디오 데이터의 상기 일부에 대한 블록 레벨 임계를 결정하고;
상기 저장 매체들에 저장된 상기 비디오 데이터의 상기 일부의 블록이 상기 블록 레벨 임계 이상인 사이즈를 갖는 것을 결정하고;
인코딩된 블록을 형성하기 위해 코딩 툴을 사용하여 상기 블록을 인코딩하며; 그리고
상기 인코딩된 블록이 상기 블록 레벨 임계 이상인 사이즈를 갖는 것에 기초하여, 상기 인코딩된 블록의 복수의 샘플들의 모든 샘플들이 상기 코딩 툴을 사용하여 재구성되는 것을 표시하는 신택스 엘리먼트를 인코딩하도록 구성되는, 비디오 데이터를 인코딩하기 위한 디바이스. - 제 10 항에 있어서,
상기 블록 레벨 임계는 최소 서브 블록 면적을 나타내고, 상기 프로세싱 회로는 또한,
상기 인코딩된 블록을 쿼드트리 기반 파티셔닝 스킴 또는 쿼드트리 플러스 이진 트리 기반 파티셔닝 스킴 중 하나에 따라 복수의 서브 블록들로 파티셔닝하고; 그리고,
상기 인코딩된 블록이 상기 최소 서브 블록 면적 이상인 사이즈를 갖는 것에 기초하여, 상기 인코딩된 블록의 각각의 서브 블록에 인코딩된 상기 신택스 엘리먼트가 적용되는 것을 결정하도록 구성되는, 비디오 데이터를 인코딩하기 위한 디바이스. - 제 11 항에 있어서,
인코딩된 상기 신택스 엘리먼트는 강화된 다중 변환 (EMT) 플래그를 포함하고, 상기 프로세싱 회로는 또한,
상기 EMT 플래그를 인에이블된 상태로 설정하고; 그리고
상기 인코딩된 블록의 각각의 개개의 서브 블록에 대해 개개의 EMT 인덱스를 인코딩하도록 구성되는, 비디오 데이터를 인코딩하기 위한 디바이스. - 제 10 항에 있어서,
상기 인코딩된 블록은 쿼드트리 기반 파티셔닝 스킴 또는 쿼드트리 플러스 이진 트리 기반 파티셔닝 스킴 중 하나에 따라 복수의 서브 블록들로 파티셔닝되고, 상기 블록 레벨 임계는 최대 서브 블록 면적을 나타내며, 상기 코딩 툴은 인트라 코딩 또는 인터 코딩 중 적어도 하나를 포함하며, 그리고 상기 프로세싱 회로는 또한,
상기 하나 이상의 서브 블록들 중 임의의 개개의 서브 블록이 상기 최대 서브 블록 면적보다 작은 것에 기초하여, 상기 개개의 서브 블록을 인트라 코딩 또는 인터 코딩 중 하나만을 사용하여 인코딩하도록 구성되는, 비디오 데이터를 인코딩하기 위한 디바이스. - 제 10 항에 있어서,
상기 프로세싱 회로는 또한, 상기 신택스 엘리먼트가 인코딩되는 상기 코딩 툴을 포함하는 복수의 코딩 툴들 중 각각의 개개의 코딩 툴에 상기 블록 레벨 임계를 적용하도록 구성되는, 비디오 데이터를 인코딩하기 위한 디바이스. - 제 14 항에 있어서,
상기 복수의 코딩 툴들은 강화된 다중 변환 (EMT) 코딩 툴, 포지션 의존 예측 조합 (PDPC) 코딩 툴, 분리가능하지 않은 세컨더리 변환 (NSST) 코딩 툴, 인트라 예측 툴, 또는 인터 예측 툴 중 2 이상을 포함하는, 비디오 데이터를 인코딩하기 위한 디바이스. - 제 10 항에 있어서,
상기 블록 레벨 임계는 복수의 블록 레벨 임계들에 포함되고, 상기 프로세싱 회로는 또한, 상기 신택스 엘리먼트가 인코딩되는 상기 코딩 툴을 포함하는 복수의 코딩 툴들 중 각각의 개개의 코딩 툴에 상기 복수의 블록 레벨 임계들 중 개개의 블록 레벨 임계를 적용하도록 구성되는, 비디오 데이터를 인코딩하기 위한 디바이스. - 제 10 항에 있어서,
상기 인코딩된 블록은 상기 저장 매체들에 저장된 상기 인코딩된 비디오 데이터의 상기 일부의 현실 블록을 포함하고, 상기 프로세싱 회로는 또한,
상기 현실 블록에 대응하는 가상 블록이 상기 블록 레벨 임계를 충족하는 것을 결정하고; 그리고
상기 가상 블록이 상기 블록 레벨 임계를 충족하는 것에 기초하여, 상기 현실 블록에 대응하는 상기 가상 블록에 대해 인코딩된 상기 신택스 엘리먼트를 시그널링하는 대신 상기 현실 블록에 대해 상기 인코딩된 신택스 엘리먼트를 시그널링하도록 구성되는, 비디오 데이터를 인코딩하기 위한 디바이스. - 제 10 항에 있어서,
상기 프로세싱 회로는 또한, 인코딩된 비디오 비트스트림의 비디오 파라미터 세트 (VPS), 시퀀스 파라미터 세트 (SPS), 또는 픽처 파라미터 세트 (PPS) 중 하나에서 상기 인코딩된 신택스 엘리먼트를 시그널링하도록 구성되는, 비디오 데이터를 인코딩하기 위한 디바이스. - 제 10 항에 있어서,
상기 프로세싱 회로는 또한, 상기 인코딩된 블록의 면적, 상기 인코딩된 블록의 폭, 또는 상기 인코딩된 블록의 높이 중 하나 이상에 기초하여 상기 블록 레벨 임계를 결정하도록 구성되는, 비디오 데이터를 인코딩하기 위한 디바이스. - 제 10 항에 있어서,
상기 프로세싱 회로는 또한, 상기 코딩 툴 및 상기 블록의 일부에 대한 비트레이트 최적화를 적어도 부분적으로 수행하는 것에 의해 상기 블록을 인코딩하는데 상기 코딩 툴을 적용할지 여부를 결정하도록 구성되는, 비디오 데이터를 인코딩하기 위한 디바이스. - 제 10 항에 있어서,
상기 프로세싱 회로는 또한, 상기 인코딩된 블록의 개별 샘플들을 재구성하는데 사용된 상기 코딩 툴을 표시하는 신택스 엘리먼트들을 시그널링하는 것을 회피하도록 구성되는, 비디오 데이터를 인코딩하기 위한 디바이스. - 인코딩된 비디오 데이터를 디코딩하는 방법으로서,
상기 인코딩된 비디오 데이터의 일부에 대한 블록 레벨 임계를 결정하는 단계;
상기 인코딩된 비디오 데이터의 상기 일부의 인코딩된 블록이 상기 블록 레벨 임계 이상인 사이즈를 갖는 것을 결정하는 단계;
상기 인코딩된 블록의 일부가 코딩 툴을 사용하여 재구성되는 것을 표시하는 신택스 엘리먼트를 수신하는 단계;
상기 인코딩된 블록이 상기 블록 레벨 임계 이상인 사이즈를 갖는 것에 기초하여, 상기 인코딩된 블록에 포함된 복수의 샘플들의 모든 샘플들에 상기 신택스 엘리먼트가 적용되는 것을 결정하는 단계; 및
상기 코딩 툴에 기초하여 상기 인코딩된 블록을 재구성하는 단계를 포함하는, 인코딩된 비디오 데이터를 디코딩하는 방법. - 제 22 항에 있어서,
상기 블록 레벨 임계는 최소 면적을 나타내고, 상기 방법은,
상기 인코딩딘 블록이 쿼드트리 기반 파티셔닝 스킴 또는 쿼드트리 플러스 이진 트리 기반 파티셔닝 스킴 중 하나에 따라 복수의 서브 블록들로 파티셔닝되는 것을 결정하는 단계; 및
상기 인코딩된 블록이 상기 최소 면적 이상인 사이즈를 갖는 것에 기초하여, 수신된 상기 신택스 엘리먼트가 상기 인코딩된 블록의 각각의 서브 블록에 적용되는 것을 결정하는 단계를 더 포함하는, 인코딩된 비디오 데이터를 디코딩하는 방법. - 제 23 항에 있어서,
상기 수신된 신택스 엘리먼트는 강화된 다중 변환 (EMT) 플래그를 포함하고, 상기 방법은,
상기 EMT 플래그가 인에이블된 상태로 설정되는 것을 결정하는 단계;
상기 EMT 플래그가 상기 인에이블된 상태로 설정되는 것에 기초하여, 상기 인코딩된 블록의 각각의 개개의 서브 블록에 대해 개개의 EMT 를 디코딩하는 단계; 및
EMT 코딩 툴을 사용하여 상기 인코딩된 블록을 재구성하는 단계를 더 포함하는, 인코딩된 비디오 데이터를 디코딩하는 방법. - 제 22 항에 있어서,
상기 인코딩된 블록은 쿼드트리 기반 파티셔닝 스킴 또는 쿼드트리 플러스 이진 트리 기반 파티셔닝 스킴 중 하나에 따라 복수의 서브 블록들로 파티셔닝되고, 상기 블록 레벨 임계는 최대 서브 블록 면적을 나타내며, 상기 코딩 툴은 인트라 코딩 또는 인터 코딩 중 적어도 하나를 포함하며, 그리고 상기 방법은,
상기 하나 이상의 서브 블록들 중 임의의 것이 상기 최대 서브 블록 면적보다 작은 것에 기초하여, 상기 서브 블록이 인트라 예측 또는 인터 예측 중 하나만을 사용하여 재구성되는 것을 결정하는 단계를 더 포함하는, 인코딩된 비디오 데이터를 디코딩하는 방법. - 제 22 항에 있어서,
상기 신택스 엘리먼트가 수신되는 상기 코딩 툴을 포함하는 복수의 코딩 툴들 중 각각의 개개의 코딩 툴에 상기 블록 레벨 임계를 적용하는 단계를 더 포함하는, 인코딩된 비디오 데이터를 디코딩하는 방법. - 제 26 항에 있어서,
상기 복수의 코딩 툴들은 강화된 다중 변환 (EMT) 코딩 툴, 포지션 의존 예측 조합 (PDPC) 코딩 툴, 분리가능하지 않은 세컨더리 변환 (NSST) 코딩 툴, 인트라 예측 툴, 또는 인터 예측 툴 중 2 이상을 포함하는, 인코딩된 비디오 데이터를 디코딩하는 방법. - 제 22 항에 있어서,
상기 블록 레벨 임계는 복수의 블록 레벨 임계들에 포함되고, 상기 방법은, 상기 신택스 엘리먼트가 수신되는 상기 코딩 툴을 포함하는 복수의 코딩 툴들 중 각각의 개개의 코딩 툴에 상기 복수의 블록 레벨 임계들 중 개개의 블록 레벨 임계를 적용하는 단계를 더 포함하는, 인코딩된 비디오 데이터를 디코딩하는 방법. - 제 22 항에 있어서,
상기 인코딩된 블록은 상기 저장 매체들에 저장된 상기 인코딩된 비디오 데이터의 상기 일부의 현실 블록을 포함하고, 상기 방법은,
상기 현실 블록에 대응하는 가상 블록에 대해 상기 신택스 엘리먼트를 수신하는 대신 상기 현실 블록에 대해 상기 신택스 엘리먼트를 수신하는 단계를 더 포함하는, 인코딩된 비디오 데이터를 디코딩하는 방법. - 인코딩된 비디오 데이터를 디코딩하기 위한 장치로서,
상기 인코딩된 비디오 데이터의 일부에 대한 블록 레벨 임계를 결정하기 위한 수단;
상기 인코딩된 비디오 데이터의 상기 일부의 인코딩된 블록이 상기 블록 레벨 임계 이상인 사이즈를 갖는 것을 결정하기 위한 수단;
상기 인코딩된 블록의 일부가 코딩 툴을 사용하여 재구성되는 것을 표시하는 신택스 엘리먼트를 수신하기 위한 수단;
상기 인코딩된 블록이 상기 블록 레벨 임계 이상인 사이즈를 갖는 것에 기초하여, 상기 인코딩된 블록에 포함된 복수의 샘플들의 모든 샘플들에 상기 신택스 엘리먼트가 적용되는 것을 결정하기 위한 수단; 및
상기 코딩 툴에 기초하여 상기 인코딩된 블록을 재구성하기 위한 수단을 포함하는, 인코딩된 비디오 데이터를 디코딩하기 위한 장치.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662311877P | 2016-03-22 | 2016-03-22 | |
US62/311,877 | 2016-03-22 | ||
US15/465,122 | 2017-03-21 | ||
US15/465,122 US10623774B2 (en) | 2016-03-22 | 2017-03-21 | Constrained block-level optimization and signaling for video coding tools |
PCT/US2017/023577 WO2017165509A1 (en) | 2016-03-22 | 2017-03-22 | Constrained block-level optimization and signaling for video coding tools |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180120200A true KR20180120200A (ko) | 2018-11-05 |
Family
ID=59899041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187027463A KR20180120200A (ko) | 2016-03-22 | 2017-03-22 | 비디오 코딩 툴들을 위한 제약된 블록 레벨 최적화 및 시그널링 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10623774B2 (ko) |
EP (1) | EP3434016A1 (ko) |
JP (1) | JP2019512965A (ko) |
KR (1) | KR20180120200A (ko) |
CN (1) | CN108781289B (ko) |
BR (1) | BR112018069093A2 (ko) |
CA (1) | CA3014790A1 (ko) |
WO (1) | WO2017165509A1 (ko) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210030890A (ko) * | 2019-09-10 | 2021-03-18 | 삼성전자주식회사 | 툴 세트를 이용하는 영상 복호화 장치 및 이에 의한 영상 복호화 방법, 및 영상 부호화 장치 및 이에 의한 영상 부호화 방법 |
KR20210042809A (ko) * | 2019-10-10 | 2021-04-20 | 삼성전자주식회사 | 툴 세트를 이용하는 영상 복호화 장치 및 이에 의한 영상 복호화 방법, 및 영상 부호화 장치 및 이에 의한 영상 부호화 방법 |
WO2021201649A1 (ko) * | 2020-04-02 | 2021-10-07 | 엘지전자 주식회사 | 변환에 기반한 영상 코딩 방법 및 그 장치 |
WO2021230602A1 (ko) * | 2020-05-11 | 2021-11-18 | 엘지전자 주식회사 | 영상 코딩 방법 및 그 장치 |
KR20220155404A (ko) * | 2020-04-08 | 2022-11-22 | 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 | 비디오 코딩에서의 신택스 요소들의 시그널링을 위한 방법 및 장치 |
KR20230019258A (ko) * | 2019-10-10 | 2023-02-07 | 삼성전자주식회사 | 툴 세트를 이용하는 영상 복호화 장치 및 이에 의한 영상 복호화 방법, 및 영상 부호화 장치 및 이에 의한 영상 부호화 방법 |
Families Citing this family (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3025334C (en) * | 2016-05-25 | 2021-07-13 | Arris Enterprises Llc | Binary ternary quad tree partitioning for jvet coding of video data |
EP3306938A1 (en) * | 2016-10-05 | 2018-04-11 | Thomson Licensing | Method and apparatus for binary-tree split mode coding |
US10541894B2 (en) * | 2016-10-20 | 2020-01-21 | Netscout Systems, Inc. | Method for assessing the perceived quality of adaptive video streaming |
KR102601268B1 (ko) * | 2017-02-24 | 2023-11-10 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
EP3606077A4 (en) * | 2017-03-22 | 2021-01-06 | Industry - University Cooperation Foundation Hanyang University | LOOP FILTERING PROCESS ACCORDING TO AN ADAPTIVE PIXEL CLASSIFICATION STANDARD |
US10542264B2 (en) * | 2017-04-04 | 2020-01-21 | Arris Enterprises Llc | Memory reduction implementation for weighted angular prediction |
KR102435881B1 (ko) * | 2017-05-26 | 2022-08-24 | 에스케이텔레콤 주식회사 | 영상 부호화 또는 복호화하기 위한 장치 및 방법 |
CN117201818A (zh) | 2017-05-26 | 2023-12-08 | Sk电信有限公司 | 对视频数据进行编码或解码的方法和发送比特流的方法 |
US11877001B2 (en) * | 2017-10-10 | 2024-01-16 | Qualcomm Incorporated | Affine prediction in video coding |
CN118042129A (zh) * | 2017-11-16 | 2024-05-14 | 松下电器(美国)知识产权公司 | 图像编码装置、编码方法、图像解码装置、解码方法和非暂时性存储介质 |
JP7036123B2 (ja) * | 2017-12-05 | 2022-03-15 | 株式会社ソシオネクスト | 符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム |
WO2019117634A1 (ko) * | 2017-12-15 | 2019-06-20 | 엘지전자 주식회사 | 2차 변환에 기반한 영상 코딩 방법 및 그 장치 |
CN111527751A (zh) * | 2017-12-29 | 2020-08-11 | 夏普株式会社 | 用于在用于视频编码的图片的边界处划分视频块的系统和方法 |
US10841578B2 (en) | 2018-02-12 | 2020-11-17 | Tencent America LLC | Method and apparatus for using an intra prediction coding tool for intra prediction of non-square blocks in video compression |
US10863175B2 (en) * | 2018-03-01 | 2020-12-08 | Panasonic Intellectual Property Corporation Of America | Encoder, and decoder, encoding method, decoding method |
WO2019172202A1 (ja) * | 2018-03-05 | 2019-09-12 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置及び符号化方法 |
WO2019190280A1 (ko) * | 2018-03-29 | 2019-10-03 | 세종대학교산학협력단 | 영상 부호화/복호화 방법 및 장치 |
US11470359B2 (en) * | 2018-03-30 | 2022-10-11 | Sharp Kabushiki Kaisha | Systems and methods for partitioning video blocks at a boundary of a picture for video coding |
CN110324668B (zh) * | 2018-03-31 | 2021-01-05 | 华为技术有限公司 | 图像块编码中的变换方法、解码中的反变换方法及装置 |
KR102571996B1 (ko) * | 2018-04-01 | 2023-08-28 | 엘지전자 주식회사 | 분할된 블록에 2차 변환을 적용하여 비디오 신호를 처리하는 방법 및 장치 |
WO2019199142A1 (ko) * | 2018-04-13 | 2019-10-17 | 엘지전자 주식회사 | 인트라 예측 방법을 결정하기 위한 영상 코딩 방법 및 장치 |
US10798382B2 (en) * | 2018-04-26 | 2020-10-06 | Tencent America LLC | Sub-block transform |
WO2019210829A1 (en) * | 2018-04-30 | 2019-11-07 | Mediatek Inc. | Signaling for illumination compensation |
US10645396B2 (en) * | 2018-06-04 | 2020-05-05 | Tencent America LLC | Method and apparatus for implicit transform splitting |
WO2019244116A1 (en) | 2018-06-21 | 2019-12-26 | Beijing Bytedance Network Technology Co., Ltd. | Border partition in video coding |
US10567752B2 (en) | 2018-07-02 | 2020-02-18 | Tencent America LLC | Method and apparatus for intra prediction for non-square blocks in video compression |
WO2020013583A1 (ko) * | 2018-07-13 | 2020-01-16 | 엘지전자 주식회사 | 영상 코딩 시스템에서 인트라 예측에 따른 영상 디코딩 방법 및 장치 |
US10911765B2 (en) * | 2018-08-01 | 2021-02-02 | Tencent America LLC | Method and apparatus for video coding |
AU2018217336A1 (en) * | 2018-08-17 | 2020-03-05 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding a transformed block of video samples |
HUE064218T2 (hu) | 2018-08-28 | 2024-02-28 | Huawei Tech Co Ltd | Képfelosztási eljárás és eszköz |
WO2020050651A1 (ko) * | 2018-09-05 | 2020-03-12 | 엘지전자 주식회사 | 다중 변환 선택에 기반한 영상 코딩 방법 및 그 장치 |
US11509908B2 (en) * | 2018-09-11 | 2022-11-22 | Panasonic Intellectual Property Corporation Of America | Encoder, decoder, encoding method, and decoding method |
WO2020057530A1 (en) | 2018-09-18 | 2020-03-26 | Huawei Technologies Co., Ltd. | Coding method, device, system |
CN118524231A (zh) | 2018-09-18 | 2024-08-20 | 华为技术有限公司 | 视频编码器、视频解码器及对应方法 |
GB2577337A (en) * | 2018-09-24 | 2020-03-25 | Sony Corp | Image data encoding and decoding |
US11218694B2 (en) | 2018-09-24 | 2022-01-04 | Qualcomm Incorporated | Adaptive multiple transform coding |
WO2020084602A1 (en) * | 2018-10-26 | 2020-04-30 | Beijing Bytedance Network Technology Co., Ltd. | Signaling of partition information |
US11310515B2 (en) * | 2018-11-14 | 2022-04-19 | Tencent America LLC | Methods and apparatus for improvement for intra-inter prediction mode |
BR112021008108A2 (pt) * | 2018-11-21 | 2021-08-03 | Interdigital Vc Holdings, Inc. | método e dispositivo para codificação e decodificação de figuração |
KR102660160B1 (ko) | 2018-11-22 | 2024-04-24 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 서브 블록 기반 인터 예측을 위한 조정 방법 |
WO2020108574A1 (en) * | 2018-11-28 | 2020-06-04 | Beijing Bytedance Network Technology Co., Ltd. | Improving method for transform or quantization bypass mode |
KR20210096116A (ko) | 2018-12-03 | 2021-08-04 | 인터디지털 브이씨 홀딩스 인코포레이티드 | 픽처 인코딩 및 디코딩을 위한 방법 및 디바이스 |
EP3664450A1 (en) * | 2018-12-03 | 2020-06-10 | InterDigital VC Holdings, Inc. | Method and device for picture encoding and decoding |
US11012697B2 (en) | 2018-12-07 | 2021-05-18 | Qualcomm Incorporated | Shared candidate list and parallel candidate list derivation for video coding |
US11553210B2 (en) | 2018-12-07 | 2023-01-10 | Interdigital Vc Holdings, Inc. | Managing coding tools combinations and restrictions |
CN113170098B (zh) * | 2018-12-07 | 2023-02-14 | 华为技术有限公司 | 视频译码的约束预测模式 |
US11470340B2 (en) * | 2018-12-10 | 2022-10-11 | Tencent America LLC | Simplified merge list construction for small coding blocks |
CN111355959B (zh) * | 2018-12-22 | 2024-04-09 | 华为技术有限公司 | 一种图像块划分方法及装置 |
CN111416975B (zh) * | 2019-01-08 | 2022-09-16 | 华为技术有限公司 | 预测模式确定方法和装置 |
KR20240005108A (ko) * | 2019-01-08 | 2024-01-11 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 이미지 예측 방법, 장치 및 시스템, 디바이스 및 저장 매체 |
CN113411612B (zh) * | 2019-01-11 | 2022-06-24 | 华为技术有限公司 | 对图像块进行视频译码的方法、解码设备和编/解码器 |
US11330283B2 (en) * | 2019-02-01 | 2022-05-10 | Tencent America LLC | Method and apparatus for video coding |
JP7100194B2 (ja) * | 2019-03-11 | 2022-07-12 | 日本放送協会 | 画像符号化装置、画像復号装置、及びプログラム |
TWI738248B (zh) | 2019-03-14 | 2021-09-01 | 聯發科技股份有限公司 | 運動細化以及子分區基礎填充的視訊處理的方法以及裝置 |
US11363306B2 (en) * | 2019-04-05 | 2022-06-14 | Comcast Cable Communications, Llc | Methods, systems, and apparatuses for processing video by adaptive rate distortion optimization |
SI3952313T1 (sl) * | 2019-04-16 | 2024-08-30 | Lg Electronics Inc. | Transformacija v kodiranju slik na podlagi notranjega napovedovanja |
CA3132225A1 (en) * | 2019-04-17 | 2020-10-22 | Huawei Technologies Co., Ltd. | An encoder, a decoder and corresponding methods of harmonizing matrix-based intra prediction and secondary transform core selection |
US11445174B2 (en) * | 2019-05-06 | 2022-09-13 | Tencent America LLC | Method and apparatus for video coding |
US11218728B2 (en) | 2019-06-04 | 2022-01-04 | Tencent America LLC | Method and apparatus for video coding |
US11039156B2 (en) | 2019-06-11 | 2021-06-15 | Tencent America LLC | Unified position dependent prediction combination process |
US11252410B2 (en) * | 2019-06-11 | 2022-02-15 | Tencent America LLC | Method and apparatus for video coding |
JP2022537160A (ja) * | 2019-06-19 | 2022-08-24 | エルジー エレクトロニクス インコーポレイティド | 変換に基づく映像コーディング方法及びその装置 |
CN114026862A (zh) * | 2019-06-21 | 2022-02-08 | 松下电器(美国)知识产权公司 | 用于视频译码的系统和方法 |
CN113826403A (zh) * | 2019-06-25 | 2021-12-21 | Oppo广东移动通信有限公司 | 信息处理方法及装置、设备、存储介质 |
EP3997877A4 (en) | 2019-08-13 | 2023-05-24 | Beijing Bytedance Network Technology Co., Ltd. | MOTION ACCURACY IN SUBBLOCK-BASED INTERPREDICTION |
US11323743B2 (en) * | 2019-08-26 | 2022-05-03 | Tencent America LLC | Interaction between CU partitions and sub-block transform |
CN114762330A (zh) | 2019-09-22 | 2022-07-15 | 北京字节跳动网络技术有限公司 | 视频的子图片编码和解码 |
WO2021060829A1 (ko) * | 2019-09-23 | 2021-04-01 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
WO2021066680A1 (en) * | 2019-10-02 | 2021-04-08 | Huawei Technologies Co., Ltd. | Method and apparatus of signaling for partitioning modes |
US11425405B2 (en) * | 2019-11-15 | 2022-08-23 | Qualcomm Incorporated | Cross-component adaptive loop filter in video coding |
JP2023507270A (ja) * | 2019-12-17 | 2023-02-22 | アリババ グループ ホウルディング リミテッド | ピクチャ境界におけるブロック区分のための方法及び装置 |
US12101485B2 (en) | 2019-12-24 | 2024-09-24 | Electronics And Telecommunications Research Institute | Image encoding/decoding method and device |
US20210306653A1 (en) * | 2020-03-31 | 2021-09-30 | Alibaba Group Holding Limited | Methods for signaling residual coding method of transform skip blocks |
CN115462085A (zh) * | 2020-04-05 | 2022-12-09 | 字节跳动有限公司 | 视频编解码中滤波的高级控制 |
US11610340B2 (en) | 2020-04-17 | 2023-03-21 | Tencent America LLC | Edge enhancement filter |
WO2022047144A1 (en) * | 2020-08-28 | 2022-03-03 | Op Solutions, Llc | Methods and systems for combined lossless and lossy coding |
WO2022047117A1 (en) * | 2020-08-28 | 2022-03-03 | Op Solutions, Llc | Methods and systems of adaptive geometric partitioning |
Family Cites Families (143)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BE1000643A5 (fr) | 1987-06-05 | 1989-02-28 | Belge Etat | Procede de codage de signaux d'image. |
JPH01155678A (ja) | 1987-12-11 | 1989-06-19 | Matsushita Electric Ind Co Ltd | 半導体発光装置 |
US5136371A (en) | 1990-03-15 | 1992-08-04 | Thomson Consumer Electronics, Inc. | Digital image coding using random scanning |
EP0586225B1 (en) | 1992-08-31 | 1998-12-23 | Victor Company Of Japan, Ltd. | Orthogonal transform coding apparatus and decoding apparatus |
TW224553B (en) | 1993-03-01 | 1994-06-01 | Sony Co Ltd | Method and apparatus for inverse discrete consine transform and coding/decoding of moving picture |
TW297202B (ko) | 1993-10-13 | 1997-02-01 | Rca Thomson Licensing Corp | |
WO1995014350A1 (en) | 1993-11-15 | 1995-05-26 | National Semiconductor Corporation | Quadtree-structured walsh transform coding |
KR0183688B1 (ko) | 1994-01-12 | 1999-05-01 | 김광호 | 영상부호화방법 및 장치 |
JP3086396B2 (ja) | 1995-03-10 | 2000-09-11 | シャープ株式会社 | 画像符号化装置及び画像復号装置 |
KR0178198B1 (ko) | 1995-03-28 | 1999-05-01 | 배순훈 | 영상 신호 부호화 장치 |
US5721822A (en) | 1995-07-21 | 1998-02-24 | Intel Corporation | Run-length encoding/decoding video signals using scan patterns explicitly encoded into bitstreams |
US5790706A (en) | 1996-07-03 | 1998-08-04 | Motorola, Inc. | Method and apparatus for scanning of transform coefficients |
KR100425615B1 (ko) | 1996-11-07 | 2004-04-01 | 마쯔시다덴기산교 가부시키가이샤 | 부호화 방법 및 장치와 복호화 방법 및 장치 |
JP2002232887A (ja) | 1996-11-07 | 2002-08-16 | Matsushita Electric Ind Co Ltd | 画像符号化方法および画像符号化装置並びに画像復号化方法および画像復号化装置 |
US5974181A (en) | 1997-03-20 | 1999-10-26 | Motorola, Inc. | Data compression system, method, and apparatus |
JPH10271505A (ja) | 1997-03-25 | 1998-10-09 | Oki Electric Ind Co Ltd | 信号処理装置、符号化回路および復号回路 |
US5995055A (en) | 1997-06-30 | 1999-11-30 | Raytheon Company | Planar antenna radiating structure having quasi-scan, frequency-independent driving-point impedance |
EP0895424B1 (en) | 1997-07-31 | 2007-10-31 | Victor Company of Japan, Ltd. | digital video signal inter-block predictive encoding/decoding apparatus and method providing high efficiency of encoding. |
US6917711B1 (en) | 1998-08-10 | 2005-07-12 | Digital Accelerator Corporation | Embedded quadtree wavelets in image compression |
EP0986026A1 (en) | 1998-09-07 | 2000-03-15 | STMicroelectronics S.r.l. | Fractal coding of data in the DCT domain |
JP4226172B2 (ja) | 1998-11-24 | 2009-02-18 | 株式会社ハイニックスセミコンダクター | 適応的変換方法を用いる映像圧縮符号化装置および復号化装置ならびにその方法 |
CA2388095A1 (en) | 1999-10-22 | 2001-05-03 | Activesky, Inc. | An object oriented video system |
US6476805B1 (en) | 1999-12-23 | 2002-11-05 | Microsoft Corporation | Techniques for spatial displacement estimation and multi-resolution operations on light fields |
US6654503B1 (en) | 2000-04-28 | 2003-11-25 | Sun Microsystems, Inc. | Block-based, adaptive, lossless image coder |
US6724818B1 (en) | 2000-07-17 | 2004-04-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Alternative block orders for better prediction |
CN1142683C (zh) | 2000-10-13 | 2004-03-17 | 清华大学 | 无转置行列分离二维离散余弦正反变换电路及其方法 |
JP2002135126A (ja) | 2000-10-26 | 2002-05-10 | Seiko Epson Corp | 半導体装置及びこれを用いた電子機器 |
AU2002236659A1 (en) | 2000-12-19 | 2002-07-01 | Pulsent Corporation | Adaptive transforms |
US6856701B2 (en) | 2001-09-14 | 2005-02-15 | Nokia Corporation | Method and system for context-based adaptive binary arithmetic coding |
CN101448162B (zh) | 2001-12-17 | 2013-01-02 | 微软公司 | 处理视频图像的方法 |
JP4447197B2 (ja) | 2002-01-07 | 2010-04-07 | 三菱電機株式会社 | 動画像符号化装置および動画像復号装置 |
US7190840B2 (en) | 2002-01-07 | 2007-03-13 | Hewlett-Packard Development Company, L.P. | Transform coefficient compression using multiple scans |
KR100468844B1 (ko) | 2002-01-07 | 2005-01-29 | 삼성전자주식회사 | 정지영상 및 동영상을 부호화/복호화하기 위한변환계수들의 최적주사방법 |
BR0304545A (pt) | 2002-01-14 | 2004-11-03 | Nokia Corp | Método de codificação das imagens em uma sequência de vìdeo digital para fornecer os dados de vìdeo codificados, codificador de vìdeo, método de decodificação dos dados indicativos de uma sequência de vìdeo digital, decodificador de vìdeo, e, sistema de decodificação de vìdeo |
JP4510465B2 (ja) | 2002-01-22 | 2010-07-21 | ノキア コーポレイション | イメージ/ビデオ符号器及び/又は復号器における変換係数の符号化 |
US6757576B2 (en) | 2002-02-05 | 2004-06-29 | Gcc, Inc. | System and method for drawing and manufacturing bent pipes |
KR100508798B1 (ko) | 2002-04-09 | 2005-08-19 | 엘지전자 주식회사 | 쌍방향 예측 블록 예측 방법 |
US20060218482A1 (en) | 2002-04-19 | 2006-09-28 | Droplet Technology, Inc. | Mobile imaging application, device architecture, service platform architecture and services |
US7170937B2 (en) | 2002-05-01 | 2007-01-30 | Texas Instruments Incorporated | Complexity-scalable intra-frame prediction technique |
PT1467491E (pt) | 2002-05-02 | 2007-03-30 | Fraunhofer Ges Forschung | Codificação aritmética de coeficientes de transformação |
EP2860979A1 (en) | 2002-05-28 | 2015-04-15 | Sharp Kabushiki Kaisha | Method and systems for image intra-prediction mode estimation, communication, and organization |
US7145948B2 (en) | 2002-05-29 | 2006-12-05 | Koninklijke Philips Electronics N.V. | Entropy constrained scalar quantizer for a Laplace-Markov source |
US20030231795A1 (en) | 2002-06-12 | 2003-12-18 | Nokia Corporation | Spatial prediction based intra-coding |
US7289674B2 (en) | 2002-06-11 | 2007-10-30 | Nokia Corporation | Spatial prediction based intra coding |
RU2314656C2 (ru) | 2002-06-11 | 2008-01-10 | Нокиа Корпорейшн | Внутреннее кодирование, основанное на пространственном прогнозировании |
AU2003281133A1 (en) | 2002-07-15 | 2004-02-02 | Hitachi, Ltd. | Moving picture encoding method and decoding method |
US6795584B2 (en) | 2002-10-03 | 2004-09-21 | Nokia Corporation | Context-based adaptive variable length coding for adaptive block transforms |
US7463782B2 (en) | 2002-11-05 | 2008-12-09 | Canon Kabushiki Kaisha | Data encoding with an amplitude model and path between the data and corresponding decoding |
US20040091047A1 (en) | 2002-11-11 | 2004-05-13 | Sony Corporation | Method and apparatus for nonlinear multiple motion model and moving boundary extraction |
FI116710B (fi) | 2002-12-20 | 2006-01-31 | Oplayo Oy | Kuvien koodausmenetelmä ja -järjestely |
EP1604530A4 (en) | 2003-03-03 | 2010-04-14 | Agency Science Tech & Res | FAST-DECISION ALGORITHM FOR INTRAPRADICTION FOR ADVANCED VIDEO CODING |
KR100750110B1 (ko) | 2003-04-22 | 2007-08-17 | 삼성전자주식회사 | 4×4인트라 휘도 예측 모드 결정방법 및 장치 |
JP3756897B2 (ja) | 2003-07-30 | 2006-03-15 | 株式会社東芝 | 動画像符号化装置及び動画像符号化方法 |
US7289562B2 (en) | 2003-08-01 | 2007-10-30 | Polycom, Inc. | Adaptive filter to improve H-264 video quality |
US20050036549A1 (en) | 2003-08-12 | 2005-02-17 | Yong He | Method and apparatus for selection of scanning mode in dual pass encoding |
US7688894B2 (en) | 2003-09-07 | 2010-03-30 | Microsoft Corporation | Scan patterns for interlaced video content |
US7782954B2 (en) | 2003-09-07 | 2010-08-24 | Microsoft Corporation | Scan patterns for progressive video content |
US7379608B2 (en) | 2003-12-04 | 2008-05-27 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. | Arithmetic coding for transforming video and picture data units |
JP4142563B2 (ja) | 2003-12-12 | 2008-09-03 | 株式会社エヌ・ティ・ティ・ドコモ | 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム |
JP4127818B2 (ja) | 2003-12-24 | 2008-07-30 | 株式会社東芝 | 動画像符号化方法及びその装置 |
US7142231B2 (en) | 2003-12-29 | 2006-11-28 | Nokia Corporation | Method and apparatus for improved handset multi-tasking, including pattern recognition and augmentation of camera images |
EP1558039A1 (en) | 2004-01-21 | 2005-07-27 | Deutsche Thomson-Brandt Gmbh | Method and apparatus for generating/evaluating prediction information in picture signal encoding/decoding |
CN100479527C (zh) | 2004-02-26 | 2009-04-15 | 联合信源数字音视频技术(北京)有限公司 | 一种帧内预测模式选取方法 |
JP5037938B2 (ja) | 2004-04-28 | 2012-10-03 | 日立コンシューマエレクトロニクス株式会社 | 画像の符号化/復号化装置、符号化/復号化プログラム及び符号化/復号化方法 |
JP4542447B2 (ja) | 2005-02-18 | 2010-09-15 | 株式会社日立製作所 | 画像の符号化/復号化装置、符号化/復号化プログラム及び符号化/復号化方法 |
US8731054B2 (en) | 2004-05-04 | 2014-05-20 | Qualcomm Incorporated | Method and apparatus for weighted prediction in predictive frames |
US8369402B2 (en) | 2004-06-17 | 2013-02-05 | Canon Kabushiki Kaisha | Apparatus and method for prediction modes selection based on image formation |
US7664184B2 (en) | 2004-07-21 | 2010-02-16 | Amimon Ltd. | Interpolation image compression |
US7697610B2 (en) * | 2004-09-13 | 2010-04-13 | Microsoft Corporation | Variable block size early termination for video coding |
BRPI0517069A (pt) | 2004-11-04 | 2008-09-30 | Thomson Licensing | previsão rápida intra modo para um codificador de vìdeo |
JP2006140758A (ja) | 2004-11-12 | 2006-06-01 | Toshiba Corp | 動画像符号化方法、動画像符号化装置および動画像符号化プログラム |
JP4763422B2 (ja) | 2004-12-03 | 2011-08-31 | パナソニック株式会社 | イントラ予測装置 |
US8311119B2 (en) | 2004-12-31 | 2012-11-13 | Microsoft Corporation | Adaptive coefficient scan order |
US20060153295A1 (en) | 2005-01-12 | 2006-07-13 | Nokia Corporation | Method and system for inter-layer prediction mode coding in scalable video coding |
US7751478B2 (en) | 2005-01-21 | 2010-07-06 | Seiko Epson Corporation | Prediction intra-mode selection in an encoder |
US7706443B2 (en) | 2005-03-11 | 2010-04-27 | General Instrument Corporation | Method, article of manufacture, and apparatus for high quality, fast intra coding usable for creating digital video content |
JP2006295408A (ja) | 2005-04-07 | 2006-10-26 | Matsushita Electric Ind Co Ltd | 画像符号化装置及び画像符号化プログラム |
EP1711018A1 (en) | 2005-04-08 | 2006-10-11 | Thomson Licensing | Method and apparatus for encoding video pictures, and method and apparatus for decoding video pictures |
TW200704202A (en) | 2005-04-12 | 2007-01-16 | Nokia Corp | Method and system for motion compensated fine granularity scalable video coding with drift control |
EP1768415A1 (en) | 2005-09-27 | 2007-03-28 | Matsushita Electric Industrial Co., Ltd. | Adaptive scan order of DCT coefficients and its signaling |
KR100703200B1 (ko) | 2005-06-29 | 2007-04-06 | 한국산업기술대학교산학협력단 | 인트라 부호화 장치 및 방법 |
KR101088375B1 (ko) | 2005-07-21 | 2011-12-01 | 삼성전자주식회사 | 가변 블록 변환 장치 및 방법 및 이를 이용한 영상부호화/복호화 장치 및 방법 |
US20090123066A1 (en) | 2005-07-22 | 2009-05-14 | Mitsubishi Electric Corporation | Image encoding device, image decoding device, image encoding method, image decoding method, image encoding program, image decoding program, computer readable recording medium having image encoding program recorded therein, |
CN102176754B (zh) | 2005-07-22 | 2013-02-06 | 三菱电机株式会社 | 图像编码装置和方法、以及图像解码装置和方法 |
US7933337B2 (en) | 2005-08-12 | 2011-04-26 | Microsoft Corporation | Prediction of transform coefficients for image compression |
JP2007053561A (ja) | 2005-08-17 | 2007-03-01 | Matsushita Electric Ind Co Ltd | 画像符号化装置および画像符号化方法 |
JP4650173B2 (ja) | 2005-09-05 | 2011-03-16 | ソニー株式会社 | 符号化装置、符号化方法、符号化方法のプログラム及び符号化方法のプログラムを記録した記録媒体 |
US20070070082A1 (en) | 2005-09-27 | 2007-03-29 | Ati Technologies, Inc. | Sample-level screen-door transparency using programmable transparency sample masks |
WO2007046644A1 (en) | 2005-10-21 | 2007-04-26 | Electronics And Telecommunications Research Institute | Apparatus and method for encoding and decoding moving picture using adaptive scanning |
EP1958453B1 (en) | 2005-11-30 | 2017-08-09 | Koninklijke Philips N.V. | Encoding method and apparatus applying coefficient reordering |
US7529484B2 (en) | 2005-12-14 | 2009-05-05 | Nec Laboratories America, Inc. | Triplexer transceiver using parallel signal detection |
CN1801940A (zh) | 2005-12-15 | 2006-07-12 | 清华大学 | 整型变换电路和整型变换方法 |
US7944965B2 (en) | 2005-12-19 | 2011-05-17 | Seiko Epson Corporation | Transform domain based distortion cost estimation |
US8000539B2 (en) | 2005-12-21 | 2011-08-16 | Ntt Docomo, Inc. | Geometrical image representation and compression |
JP2007189276A (ja) | 2006-01-11 | 2007-07-26 | Victor Co Of Japan Ltd | 画像圧縮装置及び画像圧縮プログラム |
KR101246294B1 (ko) | 2006-03-03 | 2013-03-21 | 삼성전자주식회사 | 영상의 인트라 예측 부호화, 복호화 방법 및 장치 |
JP2007267123A (ja) | 2006-03-29 | 2007-10-11 | Victor Co Of Japan Ltd | 動画像符号化装置 |
US8036264B2 (en) | 2006-05-23 | 2011-10-11 | Lsi Corporation | Memory management in video decoding systems |
US20080008246A1 (en) | 2006-07-05 | 2008-01-10 | Debargha Mukherjee | Optimizing video coding |
JP2008022405A (ja) | 2006-07-14 | 2008-01-31 | Sony Corp | 画像処理装置および方法、並びに、プログラム |
KR100882949B1 (ko) | 2006-08-17 | 2009-02-10 | 한국전자통신연구원 | 화소 유사성에 따라 적응적인 이산 코사인 변환 계수스캐닝을 이용한 부호화/복호화 장치 및 그 방법 |
US8228998B2 (en) | 2006-10-10 | 2012-07-24 | Nippon Telegraph And Telephone Corporation | Intra prediction encoding control method and apparatus, program therefor, and storage medium which stores the program |
JP4908180B2 (ja) | 2006-12-20 | 2012-04-04 | 株式会社東芝 | 動画像符号化装置 |
KR101366086B1 (ko) | 2007-01-03 | 2014-02-21 | 삼성전자주식회사 | 잔차 블록의 계수들에 대한 부호화 결정 방법, 장치,인코더 및 디코더 |
EP2136564A1 (en) | 2007-01-09 | 2009-12-23 | Kabushiki Kaisha Toshiba | Image encoding and decoding method and device |
JP2008193627A (ja) | 2007-01-12 | 2008-08-21 | Mitsubishi Electric Corp | 画像符号化装置、画像復号装置、および画像符号化方法、画像復号方法 |
BRPI0720806B1 (pt) | 2007-01-18 | 2023-03-28 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Corrente de dados de vídeo de qualidade escalonável |
KR101365570B1 (ko) | 2007-01-18 | 2014-02-21 | 삼성전자주식회사 | 인트라 예측 부호화, 복호화 방법 및 장치 |
US8238428B2 (en) | 2007-04-17 | 2012-08-07 | Qualcomm Incorporated | Pixel-by-pixel weighting for intra-frame coding |
US8571104B2 (en) | 2007-06-15 | 2013-10-29 | Qualcomm, Incorporated | Adaptive coefficient scanning in video coding |
US8428133B2 (en) | 2007-06-15 | 2013-04-23 | Qualcomm Incorporated | Adaptive coding of video block prediction mode |
CN107105257B (zh) | 2007-06-29 | 2020-08-28 | 威勒斯媒体国际有限公司 | 图像编码装置、图像编码方法、图像译码装置、图像译码方法 |
US8437564B2 (en) | 2007-08-07 | 2013-05-07 | Ntt Docomo, Inc. | Image and video compression using sparse orthonormal transforms |
TW200910971A (en) | 2007-08-22 | 2009-03-01 | Univ Nat Cheng Kung | Direction detection algorithms for H.264 intra prediction |
JP5004180B2 (ja) | 2007-11-07 | 2012-08-22 | Kddi株式会社 | 動画像符号化装置および復号装置 |
US8670488B2 (en) | 2007-12-21 | 2014-03-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Adaptive intra mode selection |
EP2081386A1 (en) | 2008-01-18 | 2009-07-22 | Panasonic Corporation | High precision edge prediction for intracoding |
US8024121B2 (en) | 2008-01-25 | 2011-09-20 | Smith International, Inc. | Data compression method for use in downhole applications |
KR20100027384A (ko) | 2008-09-02 | 2010-03-11 | 삼성전자주식회사 | 예측 모드 결정 방법 및 장치 |
KR101549823B1 (ko) | 2008-09-02 | 2015-09-04 | 삼성전자주식회사 | 적응적 이진화를 이용한 영상 부호화, 복호화 방법 및 장치 |
US20100172409A1 (en) | 2009-01-06 | 2010-07-08 | Qualcom Incorporated | Low-complexity transforms for data compression and decompression |
EP2422520A1 (en) | 2009-04-20 | 2012-02-29 | Dolby Laboratories Licensing Corporation | Adaptive interpolation filters for multi-layered video delivery |
US20120106629A1 (en) * | 2009-07-01 | 2012-05-03 | Thomson Licensing Llc | Methods and apparatus for signaling intra prediction for large blocks for video encoders and decoders |
US20120127003A1 (en) | 2009-08-06 | 2012-05-24 | Youji Shibahara | Coding method, decoding method, coding apparatus, and decoding apparatus |
WO2011031332A1 (en) | 2009-09-14 | 2011-03-17 | Thomson Licensing | Methods and apparatus for efficient video encoding and decoding of intra prediction mode |
US20110116539A1 (en) | 2009-11-13 | 2011-05-19 | Freescale Semiconductor, Inc. | Method and apparatus for video decoding with reduced complexity inverse transform |
US20110249743A1 (en) * | 2010-04-09 | 2011-10-13 | Jie Zhao | Super-block for high performance video coding |
CN106231337B (zh) | 2010-04-13 | 2020-06-19 | Ge视频压缩有限责任公司 | 解码器、解码方法、编码器以及编码方法 |
US20110317757A1 (en) | 2010-06-25 | 2011-12-29 | Qualcomm Incorporated | Intra prediction mode signaling for finer spatial prediction directions |
US9215470B2 (en) | 2010-07-09 | 2015-12-15 | Qualcomm Incorporated | Signaling selected directional transform for video coding |
US9641846B2 (en) | 2010-10-22 | 2017-05-02 | Qualcomm Incorporated | Adaptive scanning of transform coefficients for video coding |
US20120114034A1 (en) | 2010-11-08 | 2012-05-10 | Mediatek Inc. | Method and Apparatus of Delta Quantization Parameter Processing for High Efficiency Video Coding |
US10992958B2 (en) | 2010-12-29 | 2021-04-27 | Qualcomm Incorporated | Video coding using mapped transforms and scanning modes |
US9807424B2 (en) | 2011-01-10 | 2017-10-31 | Qualcomm Incorporated | Adaptive selection of region size for identification of samples in a transition zone for overlapped block motion compensation |
US20120189052A1 (en) * | 2011-01-24 | 2012-07-26 | Qualcomm Incorporated | Signaling quantization parameter changes for coded units in high efficiency video coding (hevc) |
US9930366B2 (en) | 2011-01-28 | 2018-03-27 | Qualcomm Incorporated | Pixel level adaptive intra-smoothing |
US9883203B2 (en) | 2011-11-18 | 2018-01-30 | Qualcomm Incorporated | Adaptive overlapped block motion compensation |
CN106716999B (zh) | 2014-06-20 | 2019-08-09 | 寰发股份有限公司 | 用于视频编码的调色板预测器信令的方法 |
US10230980B2 (en) | 2015-01-26 | 2019-03-12 | Qualcomm Incorporated | Overlapped motion compensation for video coding |
US10306229B2 (en) | 2015-01-26 | 2019-05-28 | Qualcomm Incorporated | Enhanced multiple transforms for prediction residual |
US9998742B2 (en) | 2015-01-27 | 2018-06-12 | Qualcomm Incorporated | Adaptive cross component residual prediction |
US10425648B2 (en) | 2015-09-29 | 2019-09-24 | Qualcomm Incorporated | Video intra-prediction using position-dependent prediction combination for video coding |
US10491922B2 (en) | 2015-09-29 | 2019-11-26 | Qualcomm Incorporated | Non-separable secondary transform for video coding |
-
2017
- 2017-03-21 US US15/465,122 patent/US10623774B2/en active Active
- 2017-03-22 CN CN201780018082.4A patent/CN108781289B/zh active Active
- 2017-03-22 KR KR1020187027463A patent/KR20180120200A/ko not_active Application Discontinuation
- 2017-03-22 CA CA3014790A patent/CA3014790A1/en not_active Abandoned
- 2017-03-22 WO PCT/US2017/023577 patent/WO2017165509A1/en active Application Filing
- 2017-03-22 EP EP17715346.7A patent/EP3434016A1/en not_active Withdrawn
- 2017-03-22 BR BR112018069093A patent/BR112018069093A2/pt not_active IP Right Cessation
- 2017-03-22 JP JP2018549338A patent/JP2019512965A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210030890A (ko) * | 2019-09-10 | 2021-03-18 | 삼성전자주식회사 | 툴 세트를 이용하는 영상 복호화 장치 및 이에 의한 영상 복호화 방법, 및 영상 부호화 장치 및 이에 의한 영상 부호화 방법 |
KR20230018497A (ko) * | 2019-09-10 | 2023-02-07 | 삼성전자주식회사 | 툴 세트를 이용하는 영상 복호화 장치 및 이에 의한 영상 복호화 방법, 및 영상 부호화 장치 및 이에 의한 영상 부호화 방법 |
KR20210042809A (ko) * | 2019-10-10 | 2021-04-20 | 삼성전자주식회사 | 툴 세트를 이용하는 영상 복호화 장치 및 이에 의한 영상 복호화 방법, 및 영상 부호화 장치 및 이에 의한 영상 부호화 방법 |
KR20230019258A (ko) * | 2019-10-10 | 2023-02-07 | 삼성전자주식회사 | 툴 세트를 이용하는 영상 복호화 장치 및 이에 의한 영상 복호화 방법, 및 영상 부호화 장치 및 이에 의한 영상 부호화 방법 |
WO2021201649A1 (ko) * | 2020-04-02 | 2021-10-07 | 엘지전자 주식회사 | 변환에 기반한 영상 코딩 방법 및 그 장치 |
KR20220155404A (ko) * | 2020-04-08 | 2022-11-22 | 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 | 비디오 코딩에서의 신택스 요소들의 시그널링을 위한 방법 및 장치 |
WO2021230602A1 (ko) * | 2020-05-11 | 2021-11-18 | 엘지전자 주식회사 | 영상 코딩 방법 및 그 장치 |
Also Published As
Publication number | Publication date |
---|---|
WO2017165509A1 (en) | 2017-09-28 |
CA3014790A1 (en) | 2017-09-28 |
US10623774B2 (en) | 2020-04-14 |
BR112018069093A2 (pt) | 2019-01-29 |
US20170280162A1 (en) | 2017-09-28 |
JP2019512965A (ja) | 2019-05-16 |
EP3434016A1 (en) | 2019-01-30 |
CN108781289A (zh) | 2018-11-09 |
CN108781289B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108781289B (zh) | 针对视频译码工具的受约束块层级优化和用信号发送 | |
AU2018205779B2 (en) | Modified adaptive loop filter temporal prediction for temporal scalability support | |
KR102338145B1 (ko) | 팔레트 모드 인코딩 및 디코딩 설계 | |
KR102416949B1 (ko) | 팔레트 기반 비디오 코딩에서 팔레트 인덱스에 기초한 런 값들의 코딩 | |
KR102388221B1 (ko) | 팔레트 기반 비디오 코딩에서의 예측자 팔레트 초기화 | |
KR102205328B1 (ko) | 팔레트-기반 비디오 코딩에서 팔레트 인덱스들의 결정 | |
KR102478411B1 (ko) | 서브샘플링 포맷을 위한 팔레트 모드 | |
KR102142181B1 (ko) | 비디오 코딩에서의 팔레트 블록 사이즈에 대한 제한 | |
JP2022050614A (ja) | ビデオコード化のためのマルチタイプツリーフレームワーク | |
KR101651759B1 (ko) | 메모리 효율적인 컨텍스트 모델링 | |
KR20180056687A (ko) | 팔레트 모드 비디오 코딩에서의 이스케이프 픽셀 시그널링된 값들의 제한 | |
EP3146716A1 (en) | Coding runs with escape in palette-based video coding | |
CA2913615A1 (en) | Palette prediction in palette-based video coding | |
KR20160136338A (ko) | 비디오 코딩을 위한 런 길이 코드를 이용한 팔레트 예측자 시그널링 | |
EP3251354A1 (en) | Contexts for large coding tree units | |
KR20150003778A (ko) | 코딩된 블록 플래그 코딩 | |
KR20140130466A (ko) | B 슬라이스에서의 예측 유닛의 단방향성 인터 예측으로의 제한 | |
EP3198873A1 (en) | Parsing dependency reduction for palette index coding | |
WO2016057929A1 (en) | Palette run hiding in palette-based video coding | |
WO2016054254A1 (en) | Explicit signaling of escape sample positions in palette coding mode for video coding | |
EP3205104A2 (en) | Diagonal copy for palette mode coding | |
KR102722484B1 (ko) | 비디오 코딩에서의 계수 레벨 코딩 | |
KR20180048929A (ko) | 비디오 코딩에서의 계수 레벨 코딩 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |