KR20220006055A - 다중 인트라 코딩 방법 사이의 상호 작용 - Google Patents
다중 인트라 코딩 방법 사이의 상호 작용 Download PDFInfo
- Publication number
- KR20220006055A KR20220006055A KR1020217035466A KR20217035466A KR20220006055A KR 20220006055 A KR20220006055 A KR 20220006055A KR 1020217035466 A KR1020217035466 A KR 1020217035466A KR 20217035466 A KR20217035466 A KR 20217035466A KR 20220006055 A KR20220006055 A KR 20220006055A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- way
- coding technique
- coding
- intra
- 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- 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
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- 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/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/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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
비디오 처리를 위한 기술, 장치 및 시스템에 대해 설명한다. 하나의 예시적인 예에서, 비디오 처리 방법은 비디오 블록과 비디오의 비트스트림 표현 사이의 변환을 위해, 매트릭스 기반 인트라 예측(MIP) 코딩 기술에 대한 정보가 비트스트림 표현에서 코딩 되는 방식을 결정하는 단계 - 블록의 예측 블록은 비디오의 이전에 코딩 된 샘플에 대한 매트릭스 벡터 곱 작업을 수행하는 단계에 기초하여 MIP 코딩 기술을 사용하여 결정됨 -, 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
Description
이 특허 문서는 비디오 코딩 기술, 장치 및 시스템과 관련이 있다.
파리조약에 따른 대응하는 특허법 및/또는 규칙에 따라, 이 출원은 2019년 5월 11일에 출원된 국제 특허 출원 번호 PCT/CN2019//086489의 우선권과 이익을 적시에 주장하기 위해 이루어진다. 앞서 언급한 출원의 전체 개시는 본 출원 개시의 일부로 참조로 통합된다.
비디오 압축의 발전에도 불구하고 디지털 비디오는 여전히 인터넷 및 기타 디지털 통신 네트워크에서 가장 큰 대역폭 사용을 차지한다. 비디오를 수신하고 표시할 수 있는 연결된 사용자 장치의 수가 증가함에 따라 디지털 비디오 사용에 대한 대역폭 수요가 계속 증가할 것으로 예상된다.
본 문서는 비디오 또는 이미지의 디코딩 또는 인코딩 동안 2차 변환이 사용되는 다양한 실시예 및 기술을 설명한다.
하나의 예에서, 비디오 처리 방법이 개시된다. 방법은 비디오 블록과 비디오의 비트스트림 표현(bitstream representation) 사이의 변환(conversion)을 위해, 매트릭스 기반 인트라 예측(Matrix-based Intra Prediction)(MIP) 코딩 기술에 대한 정보가 비트스트림 표현에서 코딩 되는 방식(manner)을 결정하는 단계를 포함한다. MIP 코딩 기술을 사용하여, 블록의 예측 블록(prediction block)은 비디오의 이전에 코딩 된 샘플에 대한 매트릭스 벡터 곱 작업(matrix vector multiplication operation)을 수행하는 단계에 기초하여 MIP 코딩 기술을 사용하여 결정된다. 방법은 또한 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
다른 예시적인 측면에서, 비디오 처리 방법이 개시된다. 이 방법은 비디오 블록과 비디오의 비트스트림 표현 사이의 변환을 위해, 블록이 특정 코딩 기술(particular coding technique)을 사용하여 코딩 되는 경우 정확히 2개의 인트라 예측 모드(intra-prediction mode)가 허용되는 것을 결정하는 단계를 포함한다. 방법은 또한 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
다른 예시적인 측면에서, 비디오 처리 방법이 개시된다. 방법은 비디오 블록과 비디오의 비트스트림 표현 사이의 변환을 위해, 블록의 샘플 또는 하나 이상의 이전에 코딩 된 블록의 서브파티션(sub-partition)의 샘플을 사용하여 블록의 서브파티션의 예측을 수행하는 것을 결정하는 단계를 포함한다. . 블록은 블록이 다중 서브파티션으로 분할되고 이전에 재구성된 서브파티션에 기초하여 각 서브파티션의 예측이 결정되는 인트라 서브블록 파티셔닝(Intra Subblock Partitioning)(ISP) 코딩 기술을 사용하여 코딩 된다. 다중 서브파티션(multiple sub-partition)은 제1 서브파티션과 하나 이상의 내부 서브파티션을 포함한다. 방법은 또한 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
다른 예시적인 측면에서, 비디오 처리 방법이 개시된다. 방법은 비디오의 현재 블록과 비디오의 비트스트림 표현 사이의 변환을 위해, 가장 가능성이 높은 모드(Most Probable Mode)(MPM) 후보 목록의 구성 프로세스(construction process)에서 검사될 현재 블록의 제1 이웃 블록 세트가 이전에 코딩 된 블록의 제2 이웃 블록 세트와 상이하다는 것을 결정하는 단계를 포함한다. 현재 블록은 여러 자식 블록(child block)으로 분할된 부모 블록(parent blockd)의 자식 블록이다. 방법은 또한 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
다른 예시적인 측면에서, 비디오 처리 방법이 개시된다. 방법은 비디오의 슬라이스의 비디오 블록과 비디오의 비트스트림 표현 사이의 변환을 위해, 인트라 서브블록 파티셔닝 툴(intra-subblock partitioning tool)이 슬라이스에 대해 활성화되는지 여부에 기초하여 비디오 블록에 대해 허용되는 파티션 유형을 결정하는 단계를 포함한다. 방법은 또한 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
하나의 예에서, 비디오 처리 방법이 개시된다. 방법은 비디오 데이터의 블록을 표현하는 비트스트림을 생성하거나 수신하는 단계를 포함한다. 비디오 데이터 블록은 아핀 선형 가중 인트라 예측(Affine Linear Weighted Intra Prediction)(ALWIP)에 기초하여 코딩 된다. ALWIP의 부가 정보(Side information)와 양자화된 잔차 블록 차동 펄스 코드 변조(Quantized Residual Block Differential Pulse Code Modulation)(QR-BDPCM)의 부가 정보는 비트스트림에서 제1 순서로 순차적으로 코딩 된다.
다른 예시적인 측면에서, 비디오 처리 방법이 개시된다. 방법은 비디오 데이터의 블록을 표현하는 비트스트림을 생성하거나 수신하는 단계를 포함하고, 여기서 비디오 데이터의 블록은 2개의 인트라 예측 모드만을 갖는 인트라 예측 방법을 사용하여 코딩 된다.
다른 예시적인 측면에서, 비디오 처리 방법이 개시된다. 이 방법은 현재 블록의 이웃 블록 세트를 검사함으로써 비디오 데이터의 다중 블록에서 현재 블록에 대한 가장 가능성이 높은 모드(Most-Probable-Mode)(MPM) 목록을 구성하는 단계를 포함한다. 파티션 패턴(partition pattern)을 사용하여 비디오 유닛을 분할하여 다중 블록이 생성되고, 파티션 패턴에 따라 이웃 블록 세트가 결정된다. 방법은 또한 MPM 목록으로부터의 후보를 사용하여 비디오 데이터의 현재 블록을 코딩 하는 단계 및 비디오 데이터의 현재 블록을 표현하는 비트스트림을 생성하는 단계를 포함한다.
다른 예시적인 측면에서, 비디오 처리 방법이 개시된다. 방법은 비디오 데이터의 다중 블록을 표현하는 비트스트림을 수신하는 단계를 포함한다. 비디오 데이터의 현재 블록은 가장 가능성이 높은 모드(Most-Probable-Mode)(MPM) 목록의 후보를 사용하여 비트스트림으로 코딩 되고 MPM 목록은 현재 블록의 이웃 블록 세트를 검사하여 구성된다. 다중 블록은 파티션 패턴을 사용하여 비디오 유닛을 분할하여 생성된다. 이웃 블록 세트는 파티션 패턴에 따라 결정된다. 방법은 또한 비트스트림을 사용하여 비디오 데이터의 현재 블록을 재구성하는 단계를 포함한다.
또 다른 예시적인 측면에서, 비디오 인코더(video encoder)가 개시된다. 비디오 인코더는 전술한 방법들 중 하나 이상을 구현하도록 구성된 프로세서를 포함한다.
또 다른 예시적인 측면에서, 비디오 디코더(video decoder)가 개시된다. 비디오 디코더는 전술한 방법들 중 하나 이상을 구현하도록 구성된 프로세서를 포함한다.
또 다른 예에서는 컴퓨터 판독 가능 매체(computer readable medium)가 개시된다. 매체(medium)는 매체에 저장된 전술한 방법 중 하나 이상을 구현하기 위한 코드를 포함한다.
이들 및 기타 측면은 본 문서에 설명되어 있다.
도 1은 VVC의 부호기 블록도의 예를 도시한다.
도 2는 67 개의 인트라 예측 모드의 예를 도시한다.
도 3은 4개의 레퍼런스 라인의 예를 도시한다.
도 4는 4Х8 및 8Х4 블록의 분할 예이다.
도 5는 4Х8, 8Х4, 4Х4를 제외한 모든 블록의 분할 예이다.
도 6은 4x4 블록에 대한 아핀 선형 가중 인트라 예측(Affine Linear Weighted Intra-Prediction)(ALWIP)의 예이다.
도 7은 8x8 블록에 대한 ALWIP의 예이다.
도 8은 8x4 블록에 대한 ALWIP의 예이다.
도 9는 16x16 블록에 대한 ALWIP의 예이다.
도 10은 JEM에서의 2차 변환의 예를 도시한다.
도 11은 제안된 감소된 2차 변환(Reduced Secondary Transform)(RST)의 예를 도시한다.
도 12는 서브블록 변환 모드 SBT-V 및 SBT-H의 예시이다.
도 2는 67 개의 인트라 예측 모드의 예를 도시한다.
도 14는 현재 블록의 왼쪽 및 위쪽 이웃의 예를 도시한다.
도 15는 예시적인 다중 유형 트리 분할 모드를 도시한다.
도 16은 중첩된 다중 유형 트리 코딩 트리 구조를 갖는 쿼드트리에서 시그널링 하는 예시적인 분할 플래그를 도시한다.
도 17은 중첩된 다중 유형 트리 코딩 블록 구조를 갖는 쿼드트리의 예를 도시한다.
도 18은 128x128 코딩 블록에 대한 예시적인 분할을 도시한다.
도 14는 본 문서에 설명된 방법을 구현하는 데 사용되는 하드웨어 플랫폼의 예의 블록도이다.
도 20은 본 기술의 하나 이상의 예에 따른 비디오 처리 방법에 대한 흐름도이다.
도 21은 본 기술의 하나 이상의 예에 따른 비디오 처리 방법에 대한 다른 흐름도이다.
도 22는 블록의 레퍼런스 샘플을 내부 서브파티션의 레퍼런스 샘플에 복사하는 예를 도시한다.
도 23은 블록의 레퍼런스 샘플을 사용하여 내부 서브파티션의 레퍼런스 샘플을 예측하는 예를 도시한다.
도 24는 본 기술의 하나 이상의 예에 따른 비디오 처리 방법에 대한 다른 흐름도이다.
도 25는 본 기술의 하나 이상의 예에 따른 비디오 처리 방법에 대한 다른 흐름도이다.
도 13은 개시된 기술이 구현될 수 있는 예시적인 비디오 처리 시스템의 블록도이다.
도 27은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다.
도 28은 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 29는 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 30은 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 31은 본 기술에 따른 비디오 처리를 위한 또 다른 방법의 흐름도 표현이다.
도 2는 67 개의 인트라 예측 모드의 예를 도시한다.
도 3은 4개의 레퍼런스 라인의 예를 도시한다.
도 4는 4Х8 및 8Х4 블록의 분할 예이다.
도 5는 4Х8, 8Х4, 4Х4를 제외한 모든 블록의 분할 예이다.
도 6은 4x4 블록에 대한 아핀 선형 가중 인트라 예측(Affine Linear Weighted Intra-Prediction)(ALWIP)의 예이다.
도 7은 8x8 블록에 대한 ALWIP의 예이다.
도 8은 8x4 블록에 대한 ALWIP의 예이다.
도 9는 16x16 블록에 대한 ALWIP의 예이다.
도 10은 JEM에서의 2차 변환의 예를 도시한다.
도 11은 제안된 감소된 2차 변환(Reduced Secondary Transform)(RST)의 예를 도시한다.
도 12는 서브블록 변환 모드 SBT-V 및 SBT-H의 예시이다.
도 2는 67 개의 인트라 예측 모드의 예를 도시한다.
도 14는 현재 블록의 왼쪽 및 위쪽 이웃의 예를 도시한다.
도 15는 예시적인 다중 유형 트리 분할 모드를 도시한다.
도 16은 중첩된 다중 유형 트리 코딩 트리 구조를 갖는 쿼드트리에서 시그널링 하는 예시적인 분할 플래그를 도시한다.
도 17은 중첩된 다중 유형 트리 코딩 블록 구조를 갖는 쿼드트리의 예를 도시한다.
도 18은 128x128 코딩 블록에 대한 예시적인 분할을 도시한다.
도 14는 본 문서에 설명된 방법을 구현하는 데 사용되는 하드웨어 플랫폼의 예의 블록도이다.
도 20은 본 기술의 하나 이상의 예에 따른 비디오 처리 방법에 대한 흐름도이다.
도 21은 본 기술의 하나 이상의 예에 따른 비디오 처리 방법에 대한 다른 흐름도이다.
도 22는 블록의 레퍼런스 샘플을 내부 서브파티션의 레퍼런스 샘플에 복사하는 예를 도시한다.
도 23은 블록의 레퍼런스 샘플을 사용하여 내부 서브파티션의 레퍼런스 샘플을 예측하는 예를 도시한다.
도 24는 본 기술의 하나 이상의 예에 따른 비디오 처리 방법에 대한 다른 흐름도이다.
도 25는 본 기술의 하나 이상의 예에 따른 비디오 처리 방법에 대한 다른 흐름도이다.
도 13은 개시된 기술이 구현될 수 있는 예시적인 비디오 처리 시스템의 블록도이다.
도 27은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다.
도 28은 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 29는 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 30은 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 31은 본 기술에 따른 비디오 처리를 위한 또 다른 방법의 흐름도 표현이다.
섹션 제목은 이해의 용이성을 용이하게 하고 섹션에 개시된 실시예를 대응하는 섹션으로 제한하지 않도록 본 문서에서 사용된다. 더욱이, 특정 실시예는 다목적 비디오 코딩 또는 기타 특정 비디오 코덱에 대한 참조로 설명되지만, 개시된 기술은 다른 비디오 코딩 기술에도 적용 가능하다. 더욱이, 일부 실시예는 비디오 코딩 단계를 자세히 설명하는 반면, 디코더에 의해 코딩을 취소하는 대응하는 단계가 구현될 것으로 이해된다. 또한 비디오 처리라는 용어에는 비디오 코딩 또는 압축, 비디오 디코딩 또는 감압 및 비디오 트랜스코딩을 포함하며, 비디오 픽셀은 하나의 압축된 형식에서 다른 압축된 형식으로 또는 다른 압축된 비트 레이트로 표현된다.
1. 요약
이 특허 문서는 비디오 코딩 기술과 관련이 있다. 특히, 이미지/비디오 코딩에서 인트라 및 변환 코딩(transform coding)과 관련이 있다. 여기에 개시된 기술들은 HEVC와 같은 기존의 비디오 코딩 표준 또는 다용도 비디오 코딩(Versatile Video Coding)에 적용될 수 있다. 향후 비디오 코딩 표준 또는 비디오 코덱에도 적용될 수 있다.
2. 초기 토론
비디오 코딩 표준은 주로 잘 알려진 ITU-T 및 ISO/IEC 표준의 개발을 통해 발전해왔다. ITU-T는 H.261및 H.263을 제작했으며, ISO/IEC는 MPEG-1 및 MPEG-4 비주얼을 제작했으며, 두 조직은 H.262/MPEG-2 비디오 및 H.264/MPEG-4 고급 비디오 코딩(AVC) 및 H.265/HEVC[1] 표준을 공동 제작했다. H.262 이후, 비디오 코딩 표준은 시간 예측과 변환 코딩이 사용되는 하이브리드 비디오 코딩 구조에 기초한다. HEVC를 넘어 미래의 비디오 코딩 기술을 연구하기 위해 JVET(공동 비디오 연구 팀)는 2015년에 VCEG와 MPEG가 공동으로 설립했다. 그 이후로 JVET에 의해 많은 새로운 방법을 채택하고 공동 연구 모델 (JEM)이라는 참조 소프트웨어에 적용했다. 2018년 4월, VCEG(Q6/16)와 ISO/IEC JTC1 SC29/WG11(MPEG) 사이의 공동 비디오 전문가 팀(Joint Video Expert Team)(JVET)는 HEVC에 비해 50% 비트 전송률 감소를 목표로 하는 VVC 표준 작업을 위해 만들어졌다.
2.1 일반적인 비디오 코덱의 코딩 흐름
도 1은 3개의 인루프 필터링 블록을 포함하는 VVC의 인코더 블록도의 예를 보여준다: 디블로킹 필터(deblocking filter)(DF), 샘플 적응형 오프셋(sample adaptive offset)(SAO) 및 ALF. 미리 정의된 필터를 사용하는 DF와 달리, SAO 및 ALF는 오프셋을 추가하고 오프셋 및 필터 계수를 시그널링 하는 코딩 된 부가 정보와 함께 유한 임펄스 응답(finite impulse response)(FIR) 필터를 각각 적용하여 원래 샘플과 재구성된 샘플 간의 평균 제곱 오차(mean square errors)를 줄이기 위해 현재 픽처의 원래 샘플을 활용한다. ALF는 각 픽처의 마지막 처리 단계에 위치하며 이전 단계에서 만든 아티팩트를 포착하고 수정하려는 툴(tool)로 간주될 수 있다.
2.2 67 개의 인트라 예측 모드를 사용한 인트라 모드 코딩.
자연스러운 비디오에 제시된 임의의 가장자리 방향을 캡처 하기 위해 방향성 인트라 모드의 수가 HEVC에서 사용되는 33 개에서 65 개로 확장되었다. 추가 방향 모드는 도 2에서 붉은 점으로 표시되고 플라나(planar) 및 DC 모드는 동일하게 유지된다. 이러한 조밀한 방향성 인트라 예측 모드는 모든 블록 크기와 루마 및 크로마 인트라 예측 모두에 적용된다.
종래의 각도 인트라 예측 방향(angular intra prediction direction)은 도 2에 도시된 바와 같이 시계 방향으로 45도에서 -135도까지 정의된다. VTM2에서, 기존의 여러 각도 인트라 예측 모드가 정사각형이 아닌 블록에 대한 광각 인트라 예측 모드(wide-angle intra prediction mode)로 적응적으로 대체된다. 대체된 모드는 원래 방법을 사용하여 시그널링 하고 파싱 후 광각 모드의 인덱스로 다시 매핑 된다. 인트라 예측 모드의 총 수는 변경되지 않고, 예를 들어, 67, 인트라 모드 코딩은 변경되지 않는다.
HEVC에서, 모든 인트라 코딩 된 블록은 정사각형 형상이며 각 변의 길이는 2의 제곱이다. 따라서, DC 모드를 사용하여 내부 예측자를 생성하기 위해 분할 작업이 필요하지 않다. VVV2에서, 블록은 일반적인 경우 블록 당 분할 작업을 사용해야 하는 직사각형 형상을 가질 수 있다. DC 예측을 위한 분할 작업을 방지하려면, 정사각형이 아닌 블록의 평균을 계산하는 데는 긴 변만 사용된다.
2.3
다중 레퍼런스 라인(Multiple reference line)
다중 레퍼런스 라인(Multiple reference line)(MRL) 인트라 예측은 인트라 예측에 더 많은 레퍼런스 라인을 사용한다. 도 3에서, 세그먼트 A 및 F의 샘플이 재구성된 이웃 샘플로부터 페치되지 않고 세그먼트 B 및 E로부터 가장 가까운 샘플로 각각 패딩되는 4개의 레퍼런스 라인의 예가 도시되어 있다. HEVC 인트라 픽처 예측(intra-picture prediction)은 가장 가까운 레퍼런스 라인(reference line)(예를 들어, 레퍼런스 라인 0)을 사용한다. MRL에서는 2개의 추가 라인(레퍼런스 라인 1 및 레퍼런스 라인 3)이 사용된다.
선택된 레퍼런스 라인(mrl_idx)의 인덱스는 시그널링 되고 인트라 예측자(intra predictor)를 생성하는 데 사용된다. 0보다 큰 레퍼런스 라인 인덱스의 경우, MPM 목록에 추가 레퍼런스 라인 모드만 포함하고 잔여 모드(remaining mode) 없이 신호 MPM 인덱스만 포함한다. 레퍼런스 라인 인덱스는 인트라 예측 모드 이전에 시그널링 되고, 플라나(Planar) 및 DC 모드는 0이 아닌 레퍼런스 라인 인덱스가 시그널링 되는 경우 인트라 예측 모드에서 제외된다.
MRL은 현재 CTU 라인 외부에서 확장 레퍼런스 샘플을 사용하는 것을 방지하기 위해 CTU 내부 블록의 첫 번째 라인에 대해 비활성화된다. 또한, 추가 회선을 사용하는 경우 PDPC가 비활성화된다.
2.4 인트라 서브블록 파티셔닝(Intra subblock partitioning)(ISP)
일부 실시예에서, ISP는 루마 인트라 예측 블록을 에 도시된 바와 같이 블록 크기 차원에 따라 수직 또는 수평으로 2 또는 4개의 서브파티션으로 분할하는 데 사용된다. 도 4 및 도 5는 두 가지 가능한 예를 보여준다. 도 4는 4Х8 및 8Х4 블록의 분할의 예를 도시한다. 도 5는 4Х8, 8Х4, 4Х4를 제외한 모든 블록의 분할 예를 나타낸다. 모든 서브파티션은 최소 16개의 샘플을 갖는 조건을 충족한다. 블록 크기의 경우, 4xN 또는 Nx4(N>8), 허용되는 경우, 1xN 또는 Nx1 서브파티션이 존재할 수 있다.
분할 방향(Splitting direction) | 블록 크기(block size) | 서브파티션 수 |
해당 없음 | 최소 변환 크기 | 분할되지 않음 |
4x8: 수평8x4: 수직 | 4x8 및 8x4 | 2 |
신호 | 4x8도 8x4도 아니고, W<= maxTBSize 및 H<= maxTBSize인 경우 | 4 |
수평 | 위의 경우가 아니고 H> maxTBSize인 경우 | 4 |
수직 | 위의 경우가 아니고 H> maxTBSize인 경우 | 4 |
이러한 각 서브파티션에 대해, 인코더에 의해 전송된 계수를 엔트로피 디코딩 한 다음 역 양자화(invert quantizing) 및 역 변환(invert transforming)하여 잔여 신호가 생성된다. 그런 다음, 서브파티션을 인트라 예측하고 최종적으로 예측 신호에 잔차 신호(residual signal)를 더하여 대응하는 재구성된 샘플(reconstructed sample)을 얻는다. 따라서, 각 서브파티션의 재구성된 값은 프로세스 등을 반복할 다음 서브파티션의 예측을 생성하는 데 사용할 수 있다. 모든 서브파티션은 동일한 인트라 모드를 공유한다.
표 2는 인트라 예측 모드(들)에 기반한 예시적인 변환 유형을 보여준다.
predModeIntra | trTypeHor | trTypeVer |
INTRA_PLANAR, INTRA_ANGULAR31, INTRA_ANGULAR32, INTRA_ANGULAR34, INTRA_ANGULAR36, INTRA_ANGULAR37 |
( nTbW >= 4 && nTbW <= 16 ) ? DST-VII: DCT-II |
( nTbH >= 4 && nTbH <= 16 ) ? DST-VII: DCT-II |
INTRA_ANGULAR33, INTRA_ANGULAR35 |
DCT-II | DCT-II |
INTRA_ANGULAR2, INTRA_ANGULAR4,??,INTRA_ANGULAR28, INTRA_ANGULAR30, INTRA_ANGULAR39, INTRA_ANGULAR41,??,INTRA_ANGULAR63, INTRA_ANGULAR65 |
( nTbW >= 4 && nTbW <= 16 ) ? DST-VII: DCT-II |
DCT-II |
INTRA_ANGULAR3, INTRA_ANGULAR5,??, INTRA_ANGULAR27, INTRA_ANGULAR29, INTRA_ANGULAR38, INTRA_ANGULAR40,??,INTRA_ANGULAR64, INTRA_ANGULAR66 |
DCT-II | ( nTbH >= 4 && nTbH <= 16 ) ? DST-VII: DCT-II |
2.4.1 신택스 및 시맨틱의 예
아래에서 굵은 밑줄로 표시된 부분은 표준에 제안된 수정 사항을 나타낸다.
7.3.7.5 코딩 유닛 신택스
7.3.7.10 변환 유닛 신택스
1과 동일한 intra_subpartitions_mode_flag[ x0 ][ y0 ]은 현재 인트라 코딩 유닛이 NumIntraSubPartitions[ x0 ][ y0 ] 직사각형 변환 블록 서브파티션으로 분할되는 것을 지정한다.
0과 동일한 intra_subpartitions_mode_flag[ x0 ][ y0 ]은 현재 인트라 코딩 유닛가 직사각형 변환 블록 서브파티션으로 분할되지 않음을 지정한다.
intra_subpartitions_mode_flag[ x0 ][ y0 ]가 존재하지 않을 때, 0과 같은 것으로 유추된다.
intra_subpartitions_split_flag[ x0 ][ y0 ]은 인트라 서브파티션 분할 유형이 수평인지 수직인지를 지정한다. intra_subpartitions_split_flag[ x0 ][ y0 ]가 없으면 다음과 같이 유추된다:
- cbHeight가 MaxTbSizeY보다 크면, intra_subpartitions_split_flag[ x0 ][ y0 ]는 0과 같은 것으로 유추된다.
- 그렇지 않으면(cbWidth가 MaxTbSizeY보다 큼), intra_subpartitions_split_flag[ x0 ][ y0 ]이 1과 같은 것으로 유추된다.
IntraSubPartitionsSplitType 변수는 현재 루마 코딩 블록에 사용되는 분할 유형을 지정한다. IntraSubPartitionsSplitType은 다음과 같이 유도된다.
- intra_subpartitions_mode_flag[ x0 ][ y0 ]가 0과 같으면 IntraSubPartitionsSplitType은 0으로 설정된다.
- 그렇지 않으면, IntraSubPartitionsSplitType은 1 + intra_subpartitions_split_flag[ x0 ][ y0 ]와 동일하게 설정된다.
표 7-9 IntraSubPartitionsSplitType에 대한 명칭 연관
변수 NumIntraSubPartitions는 인트라 루마 코딩 블록이 분할되는 변환 블록 서브파티션의 수를 지정한다. NumIntraSubPartitions는 다음과 같이 유도된다:
- IntraSubPartitionsSplitType이 ISP_NO_SPLIT와 같으면, NumIntraSubPartitions는 1로 설정된다.
- 그렇지 않고 다음 조건 중 하나가 참이면, NumIntraSubPartitions는 2로 설정된다.
- cbWidth는 4이고 cbHeight는 8이다.
- cbWidth는 4이고 cbHeight는 8이다.
- 그렇지 않으면, NumIntraSubPartitions가 4로 설정된다.
2.5 아핀 선형 가중 인트라 예측(ALWIP, 일명 컨텍스트 기반 인트라 예측)
2.5.1 매트릭스 벡터 곱에 의한 축소 예측 신호의 생성
이웃 레퍼런스 샘플은 먼저 평균화를 통해 다운 샘플링되어 감소된 레퍼런스 신호를 생성한다. 그런 다음, 매트릭스 벡터 곱을 계산하고 오프셋을 추가하여 축소된 예측 신호를 계산한다.
predred=A·bdryred+b.
여기서, A는 WredHred 행과 W = H = 4인 경우 4개의 열, 다른 모든 경우에는 8개의 열을 갖는 매트릭스이다. b는 WredHred 크기의 벡터이다.
2.5.2.
전체 ALWIP 프로세스의 도시
평균화, 매트릭스 벡터 곱 및 선형 보간의 전체 프로세스는 도 6 내지 도 9에 서로 다른 형상에 대해 도시되어 있다. 잔여 형상(remaining shape)은 표시된 경우 중 하나로 처리된다.
4x4 블록이 주어지면, 도 6에 도시된 바와 같이, ALWIP는 경계의 각 축을 따라 2개의 평균을 취한다. 결과로 생성된 4개의 입력 샘플은 매트릭스 벡터 곱에 들어간다. 매트릭스는 세트 S_0에서 가져온다. 오프셋을 추가하면 16개의 최종 예측 샘플이 생성된다. 예측 신호를 생성하기 위해 선형 보간이 필요하지 않는다. 따라서 샘플당 총 (4 16)/(4 4)=4 곱(multiplication)이 수행된다.
8x8 블록이 주어지면, 도 7에 도시된 바와 같이, ALWIP는 경계의 각 축을 따라 4개의 평균을 취한다. 결과로 생성된 8개의 입력 샘플은 매트릭스 벡터 곱에 들어간다. 매트릭스는 세트 S_1에서 가져온다. 이것은 예측 블록의 홀수 위치에서 16개의 샘플을 생성한다. 따라서 샘플당 총 (8 16)/(8 8)=2 곱이 수행된다. 오프셋을 추가한 후 이러한 샘플은 축소된 상단 경계를 사용하여 수직으로 보간된다. 수평 보간은 원래의 왼쪽 경계를 사용하여 따른다.
8x4 블록이 주어지면, 도 8에 도시된 바와 같이, ALWIP는 경계의 수평축을 따라 4개의 평균을 취하고 왼쪽 경계에서 4개의 원래 경계 값을 취한다. 결과로 생성된 8개의 입력 샘플은 매트릭스 벡터 곱에 들어간다. 매트릭스는 세트 S_1에서 가져온다. 이것은 예측 블록의 홀수 수평 및 각 수직 위치에 대해 16개의 샘플을 생성한다. 따라서 샘플당 총 (8 16)/(8 4)=4 곱이 수행된다. 오프셋을 추가한 후 이 샘플은 원래 왼쪽 경계를 사용하여 수평으로 보간된다. 전치된 케이스(transposed case)는 그에 따라 처리된다.
16x16 블록이 주어지면, 도 9에 도시된 바와 같이, ALWIP는 경계의 각 축을 따라 4개의 평균을 취한다. 결과로 생성된 8개의 입력 샘플은 매트릭스 벡터 곱에 들어간다. 매트릭스는 세트 S_2에서 가져온다. 이것은 예측 블록의 홀수 위치에서 64개의 샘플을 생성한다. 따라서, 샘플당 총 (8 64)/(16 16)=2 곱이 수행된다. 오프셋을 추가한 후, 이 샘플은 상단 경계의 평균 8개를 사용하여 수직으로 보간된다. 수평 보간은 원래의 왼쪽 경계를 사용하여 뒤따른다. 이 경우 보간 프로세스는 곱을 추가하지 않는다. 따라서 ALWIP 예측을 계산하려면 샘플당 총 2회의 곱이 필요하다.
더 큰 형상의 경우, 절차는 본질적으로 동일하고 샘플당 곱 수가 4개 미만인지 검사하는 것은 쉽다.
W>8인 Wx8 블록의 경우 샘플이 홀수 수평 및 각 수직 위치에 제공되므로 수평 보간만 필요하다.
마지막으로 W>8인 WХ4 블록의 경우, 다운 샘플링된 블록의 수평 축을 따라 홀수 항목에 해당하는 모든 행을 생략하여 발생하는 행렬을 A_k로 둔다. 따라서, 출력 크기는 32이고, 다시 수평 보간만 수행되도록 남는다.
전치된 케이스는 그에 따라 처리된다.
2.5.3.
기존 루마 및 크로마 인트라 예측 모드에 대한 적응된 MPM 목록 유도
ALWIP-mode 중 일부는 다음과 같이 기존 인트라 예측 모드의 MPM 기반 코딩과 조화를 이룬다. 기존의 인트라 예측 모드에 대한 루마 및 크로마 MPM 목록 유도 프로세스는 고정 테이블 map_alwip_to_angularidx, idx, idx∈ {0,1,2}를 사용하여 주어진 PU에 대한 ALWIP-mode predmode ALWIP를 기존의 인트라 예측 모드 predmode Angular = map_alwip_to_angularidx(PU)[predmodeALWIP] 중 하나로 매핑한다.
루마 MPM 목록 유도의 경우, 이웃 루마 블록은 ALWIP-mode predmodeALWIP 을 사용할 때마다 발생되고, 이 블록은 기존의 인트라 예측 모드 predmodeAngular를 사용하는 것처럼 처리된다. 크로마 MPM 목록 유도의 경우, 현재 루마 블록이 LWIP 모드를 사용할 때마다 동일한 매핑이 ALWIP 모드를 기존의 인트라 예측 모드로 바꾸는 데 사용된다.
2.5.4 신택스 및 시맨틱의 예
아래에서 굵은 밑줄로 표시된 부분은 표준에 제안된 수정 사항을 나타낸다.
7.3.6.5 코딩 유닛 신택스
2.6 양자화된 잔차 블록 차동 펄스 코드 변조(QR-BDPCM)
일부 실시예에서, 양자화된 잔차 블록 차동 펄스 코드 변조(quantized residual block differential pulse-code modulation)(QR-BDPCM)가 스크린 콘텐츠를 효율적으로 코딩 하는데 사용될 수 있다.
QR-BDPCM에서 사용되는 예측 방향은 수직 및 수평 예측 모드가 될 수 있다. 인트라 예측은 인트라 예측과 유사한 예측 방향(수평 또는 수직 예측)으로 샘플 복사하여 전체 블록에 대해 수행된다. 잔차는 양자화되고 양자화된 잔차와 그 예측자(predictor)(수평 또는 수직) 양자화된 값 사이의 델타가 코딩 된다. 이것은 다음과 같이 설명할 수 있다: 크기가 M(행) Х N(열)인 블록에 대해, 0≤i≤M-1,0≤j≤N-1인 ri,j를 수평으로(예측 블록에 걸쳐 왼쪽 이웃 픽셀 값 복사) 또는 수직으로 인트라 예측을 수행한 후 예측 잔차( 위 또는 왼쪽 블록 경계 샘플에서 필터링되지 않은 샘플을 사용하여 예측 블록의 각 라인에 상단 이웃 라인을 복사한다. 0≤i≤M-1, 0≤j≤N-1인, Q(ri,j)는 잔차 ri,j의 양자화된 버전을 나타내고, 여기서 잔차는 원래 블록과 예측된 블록 값 간의 차이이다. 그런 다음 블록 DPCM이 양자화된 잔차 샘플에 적용되어 요소 로 수정된 M Х N 배열 가 생성된다. 수직 BDPCM이 시그널링 될 때:
수평 예측의 경우 유사한 규칙이 적용되고 잔차 양자화된 샘플은 다음과 같이 획득된다.
잔차 양자화된 샘플은 디코더로 전송된다.
디코더 측에서는 위의 계산을 반대로 하여 Q(ri,j), 0≤i≤M-1, 0≤j≤N-1 를 생성한다. 수직 예측의 경우,
수평의 경우,
이 방식의 주요 이점은 역 DPCM이 계수가 파싱 될 때 예측자를 추가하기만 하면 계수 파싱 중에 즉석에서 수행되거나 파싱 후에 수행될 수 있다는 것이다.
QR-BDPCM의 초안 텍스트는 다음과 같다:
7.3.6.5 코딩 유닛 신택스
1과 동일한 bdpcm_flag[ x0 ][ y0 ]은 bdpcm_dir_flag가 위치( x0, y0 )에서 루마 코딩 블록을 포함하는 코딩 유닛에 존재한다는 것을 지정한다.
0과 동일한 bdpcm_dir_flag[ x0 ][ y0 ]은 bdpcm 블록에서 사용될 예측 방향이 수평임을 지정하고, 그렇지 않으면, 수직이다.
2.7 다중 변환 세트(MTS)의 예
2.7.1 명시적 다중 변환 세트(MTS)
일부 실시예에서, 최대 64x64 크기의 큰 블록 크기 변환이 가능하며, 이는 주로 고해상도 비디오, 예를 들어 1080p 및 4K 시퀀스에 유용한다. 64와 같은 크기(너비 또는 높이, 또는 너비와 높이 모두)를 갖는 변환 블록에 대해 고주파수 변환 계수가 0이 되어 저주파 계수만 유지된다. 예를 들어, MХN 변환 블록의 경우 M이 블록 너비이고 N이 블록 높이이며 M이 64와 같을 때 변환 계수의 왼쪽 32개 열만 유지된다. 마찬가지로, N이 64와 같을 때 변환 계수의 상위 32개 행만 유지된다. 변환 스킵 모드가 큰 블록에 사용되면 값을 0으로 만들지 않고 전체 블록이 사용된다.
HEVC에서 사용된 DCT-II에 추가하여, 다중 변환 선택(Multiple Transform Selection)(MTS) 방식은 인터 및 인트라 코딩 된 블록 모두의 잔차 코딩에 사용된다. DCT8/DST7에서 선택된 여러 변환을 사용한다. 새로 도입된 변형 매트릭스는 DST-VII, DCT-VIII, DST-I 및 DCT-V이다. 표 1은 선택된 DST/DCT의 기본 함수를 보여준다.
변형 매트릭스(transform matrix)의 직교성을 유지하기 위해, 변형 매트릭스는 HEVC의 변형 매트릭스보다 더 정확하게 양자화 된다. 변환된 계수의 중간값을 16비트 범위 내로 유지하기 위해서는 수평 변환 후, 수직 변환 후 모든 계수가 10비트가 되어야 한다.
MTS 방식을 제어하기 위해 인트라 및 인터에 대해 SPS 레벨에서 별도의 활성화 플래그가 지정된다. MTS가 SPS에서 활성화되면, CU 레벨 플래그가 MTS가 적용되는지 여부를 나타내기 위해 시그널링 된다. 여기서 MTS는 luma에만 적용된다. MTS CU 레벨 플래그는 다음 조건이 충족될 때 표시된다.
- 너비와 높이가 모두 32보다 작거나 같다.
- CBF 플래그는 1과 같다.
MTS CU 플래그가 0이면 DCT2가 양방향으로 적용된다. 그러나, MTS CU 플래그가 1과 같으면, 수평 및 수직 방향 각각에 대한 변환 유형을 나타내기 위해 두 개의 다른 플래그가 추가로 시그널링 된다. 표 3과 같이 변환 및 시그널링 매핑 테이블. 변환 매트릭스 정밀도와 관련하여, 8비트 1차 변환 코어(primary transform core)가 사용된다. 따라서, 4점 DCT-2 및 DST-7, 8점, 16점 및 32점 DCT-2를 포함하여, HEVC에서 사용되는 모든 변환 코어가 동일하게 유지된다. 또한, 64포인트 DCT-2, 4포인트 DCT-8, 8포인트, 16포인트, 32포인트 DST-7 및 DCT-8을 포함한 다른 변환 코어는 8비트 기본 변환 코어를 사용한다.
MTS_CU_flag | MTS_Hor_flag | MTS_Ver_flag | 인트라/인터 | |
수평 | 수직 | |||
0 | DCT2 | |||
1 |
0 | 0 | DST7 | DST7 |
0 | 1 | DCT8 | DST7 | |
1 | 0 | DST7 | DCT8 | |
1 | 1 | DCT8 | DCT8 |
대형 DST-7 및 DCT-8의 복잡성을 줄이기 위해, 크기(너비 또는 높이 또는 너비와 높이 모두)가 32인 DST-7 및 DCT-8 블록에 대해 고주파수 변환 계수가 0이 된다. 16x16 저주파 영역 내의 계수만 유지된다.
다른 변환이 적용되는 경우 외에도, VVC는 HEVC에서 TS의 개념과 같은 변환 스킵(TS)라는 모드도 지원한다. TS는 MTS의 특수한 경우로 취급된다.
2.7.1.1 신택스 및 시맨틱의 예
MTS 인덱스는 비트스트림에서 시그널링 될 수 있고 이러한 설계를 명시적 MTS(explicit MTS)라고 한다. 또한, 변환 블록 크기에 따라 매트릭스을 직접 유도하는 대체 방법도 암시적 MTS(implicit MTS)로 지원된다.
명시적 MTS의 경우, 모든 코딩 된 모드를 지원한다. 암시적 MTS의 경우, 인트라 모드만 지원된다.
아래에서 굵은 밑줄로 표시된 부분은 표준에 제안된 수정 사항을 나타낸다.
7.3.2.4 픽처 파라미터 세트 RBSP 신택스
7.3.7.10 변환 유닛 신택스
transform_skip_flag[ x0 ][ y0 ]은 변환이 루마 변환 블록에 적용되는지 여부를 지정한다. 어레이 인덱스(array indices) x0, y0은 픽처의 왼쪽 위쪽 루마 샘플에 대한 고려된 코딩 블록의 왼쪽 위쪽 루마 샘플 위치(x0, y0)를 지정한다.1과 동일한 transform_skip_flag[ x0 ][ y0 ]은 루마 변환 블록에 변환이 적용되지 않음을 지정한다. 0과 동일한 transform_skip_flag[ x0 ][ y0 ]은 변환이 루마 변환 블록에 적용되는지 여부가 다른 신택스 요소에 의존하는지 여부를 지정한다. transform_skip_flag[ x0 ][ y0 ]가 없으면 0과 같은 것으로 유추된다.
tu_mts_idx[ x0 ][ y0 ] 연관된 루마 변환 블록의 수평 및 수직 방향을 따라 잔차 샘플에 적용되는 변환 커널을 지정한다. 어레이 인덱스(array indices) x0, y0은 픽처의 왼쪽 위쪽 루마 샘플에 대한 고려된 코딩 블록의 왼쪽 위쪽 루마 샘플 위치(x0, y0)를 지정한다.
pcm_flag [x0] [y0]이 없으면, 0과 같은 것으로 유추된다.
CABAC 디코딩 프로세스에서, 하나의 컨텍스트는 transform_skip_flag를 디코딩 하는 데 사용되고, 잘린 단항(truncated unary)은 tu_mts_idx를 이진화하는 데 사용된다. tu_mts_idx의 각 빈은 컨텍스트 코딩 되고, 제1 빈의 경우 쿼드 트리 깊이( quad-tree depth)(예를 들어, cqtDepth)를 사용하여 하나의 컨텍스트를 선택한다: 잔여 빈(remaining bin)에 대해, 하나의 컨텍스트가 사용된다.
표 9-15 컨텍스트 코딩 된 빈이 있는 신택스 요소에 ctxInc 할당
2.7.2 암시적 다중 변환 세트(MTS)
ISP, SBT 및 MTS가 활성화되었지만 암시적 신호가 있는 경우 모두 암시적 MTS로 처리된다. implicitMtsEnabled는 암시적 MTS가 활성화되었는지 여부를 정의하는 데 사용된다.
8.7.4
스케일링된 변환 계수에 대한 변환 프로세스
8.7.4.1
일반
변수 implicitMtsEnabled는 다음과 같이 유도된다:
- sps_mts_enabled_flag가 1이고 다음 조건 중 하나가 참이면 implicitMtsEnabled가 1로 설정된다:
- IntraSubPartitionsSplitType이 ISP_NO_SPLIT와 동일하지 않다.
- cu_sbt_flag는 1이고 Max(nTbW, nTbH)는 32보다 작거나 같다.
- sps_explicit_mts_intra_enabled_flag 및 sps_explicit_mts_inter_enabled_flag는 둘 다 0이고 CuPredMode[ xTbY ][ yTbY ]는 MODE_INTRA와 같다.
- 그렇지 않으면, implicitMtsEnabled가 0으로 설정된다.
수평 변환 커널을 지정하는 변수 trTypeHor와 수직 변환 커널을 지정하는 변수 trTypeVer는 다음과 같이 유도된다:
- cIdx가 0보다 크면, trTypeHor 및 trTypeVer가 0으로 설정된다.
- 그렇지 않으면, implicitMtsEnabled가 1이면 다음이 적용된다.
- IntraSubPartitionsSplitType이 ISP_NO_SPLIT와 동일하지 않으면, intraPredMode에 따라 trTypeHor와 trTypeVer가 표 8-15와 같이 지정된다.
- 그렇지 않으면, cu_sbt_flag가 1이면, cu_sbt_horizontal_flag 및 cu_sbt_pos_flag에 따라 trTypeHor 및 trTypeVer가 표 8-14와 같이 지정된다.
- 그렇지 않으면, (sps_explicit_mts_intra_enabled_flag 및 sps_explicit_mts_inter_enabled_flag는 0임) trTypeHor 및 trTypeVer는 다음과 같이 유도된다:
trTypeHor = ( nTbW >= 4 && nTbW <= 16 && nTbW <= nTbH ) ? 1 : 0
(8-1030)
trTypeVer = ( nTbH >= 4 && nTbH <= 16 && nTbH <= nTbW ) ? 1 : 0
(8-1031)
- 그렇지 않으면, tu_mts_idx[ xTbY ][ yTbY ]에 따라 trTypeHor 및 trTypeVer가 표 8-13과 같이 지정된다.
표 8-13 tu_mts_idx[ x ][ y ]에 따른 trTypeHor 및 trTypeVer 사양
표 9-14 cu_sbt_horizontal_flag 및 cu_sbt_pos_flag에 따른 trTypeHor 및 trTypeVer 사양
2.8 감소된 2차 변환(RST)
2.8.1 비분리형 2차 변환(Non-Separable Secondary Transform)(NSST)
일부 실시예에서, 2차 변환(secondary transform)은 순방향 1차 변환과 양자화(인코더에서) 및 역양자화와 역 1차 변환(디코더 측에서) 사이에 적용된다. 도 10에 도시된 바와 같이 블록 크기에 따라 4x4(또는 8x8) 2차 변환이 수행된다. 예를 들어, 4x4 2차 변환은 8x8 블록당 작은 블록(예를 들어, min(width, height) < 8)에 적용되고 8x8 2차 변환은 더 큰 블록(예를 들어, min(width, height) > 4)에 적용된다.
비분리 변환(non-separable transform)의 적용은 입력을 예로 들어 설명하면 다음과 같다. 비분리 변환을 적용하기 위해, 4x4 입력 블록 X
비분리 변환(non-separable transform)은 로 계산되고, 여기서 는 변환 계수 벡터를 나타내고 T는 16x16 변환 행렬이다. 16 Υ 1 계수 벡터 는 해당 블록에 대한 스캔 순서(수평, 수직 또는 대각선)를 사용하여 4 Υ 4 블록으로 다시 구성된다. 더 작은 인덱스를 가진 계수는 4 Υ 4 계수 블록에 더 작은 스캐닝 인덱스와 함께 위치된다. 총 35개의 변환 세트가 있고 변환 세트당 3개의 비분리 변환 매트릭스(커널 (kernels))가 사용된다. 인트라 예측 모드에서 변환 세트로의 매핑은 미리 정의된다. 각 변형 세트에 대해, 선택된 비분리 2차 변형 후보는 명시적으로 시그널링 된 CU 레벨 MDNSST 인덱스에 의해 추가로 지정된다. 인덱스는 변환 계수 후 인트라 CU당 한 번 비트스트림에서 시그널링 된다.
2.8.2 감소된 2차 변환(Reduced Secondary Transform)(RST)의 예
일부 실시예에서, RST는 4개의 변환 세트(35개의 변환 세트 대신) 매핑을 사용한다. 일부 실시예에서, 16x64(16x48로 더 감소될 수 있음) 및 16x16 매트릭스가 각각 8x8 및 4x4 블록에 대해 사용될 수 있다. 표기 상의 편의를 위해, 16x64(16x48로 더 축소될 수 있음) 변환은 RST8x8로 표시되고 16x16 변환은 RST4x4로 표시된다. 도 11은 제안된 감소된 2차 변환(Reduced Secondary Transform)(RST)의 예를 나타낸다.
2.9 서브블록 변환(Sub-block transform)
cu_cbf가 1인 인터-예측된 CU에 대해, cu_sbt_flag는 전체 잔차 블록 또는 잔차 블록의 서브 부분(sub-part )이 복호화되는지 여부를 나타내기 위해 시그널링 될 수 있다. 전자의 경우, MTS 간 정보를 더 파싱하여 CU의 변환 유형을 결정한다. 후자의 경우, 잔차 블록( residual block)의 일부는 유추된 적응형 변환으로 부호화되고 잔차 블록의 다른 부분은 0이 된다. SBT는 통합 인터-인트라 모드(combined inter-intra mode)에 적용되지 않는다.
서브블록 변환에서, 위치 의존 변환(position-dependent transform)은 SBT-V 및 SBT-H(크로마 TB는 항상 DCT-2를 사용)의 루마 변환 블록에 적용된다. SBT-H 및 SBT-V의 두 위치는 서로 다른 코어 변환(core transform)과 연관된다. 보다 구체적으로, 각 SBT 위치에 대한 수평 및 수직 변환은 도 12에 명시되어 있다. 예를 들어, SBT-V 위치 0에 대한 수평 및 수직 변환은 각각 DCT-8 및 DST-7이다. 잔차 TU의 한 측이 32보다 큰 경우, 대응하는 변환은 DCT-2로 설정된다. 따라서, 서브블록 변환은 TU 타일링, cbf 및 잔차 블록의 수평 및 수직 변환을 공동으로 명시하고, 이는 블록의 주요 잔차가 블록의 한 측에 있는 경우에 대한 신택스 숏컷(syntax shortcut)로 간주될 수 있다.
2.9.1 신택스 및 시맨틱의 예(Example Syntax and Semantics)
아래에서 굵은 밑줄로 표시된 부분은 표준에 제안된 수정 사항을 나타낸다.
7.3.7.5 코딩 유닛 신택스(Coding unit syntax)
7.3.7.11 잔차 코딩 신택스(Residual coding syntax)
0과 동일한 sps_sbt_max_size_64_flag는 서브블록 변환을 허용하기 위한 최대 CU 너비 및 높이가 32 루마 샘플임을 지정한다. 1과 동일한 sps_sbt_max_size_64_flag는 서브블록 변환을 허용하기 위한 최대 CU 너비 및 높이가 64 루마 샘플임을 지정한다.
MaxSbtSize = sps_sbt_max_size_64_flag ? 64 : 32.
2.10 인트라 모드 코딩을 위한 가장 가능성이 높은 모드(Most-Probable-Mode)(MPM) 목록
자연스러운 비디오에 표시된 임의의 가장자리 방향을 캡처 하기 위해, 방향성 인트라 모드(directional intra mode)의 수가 HEVC에서 사용되는 33 개에서 65 개로 확장되었다. 도 13은 67 개의 인트라 예측 모드의 예를 도시한다. HEVC에 없는 새로운 방향성 모드는 도 13에서 점선 화살표로 도시되고 플라나 및 DC 모드는 동일하게 유지된다. 이러한 조밀한 방향성 인트라 예측 모드는 모든 블록 크기와 루마 및 크로마 인트라 예측 모두에 적용된다.
MRL 및 ISP 코딩 툴 적용 여부에 관계없이 인트라 블록에 대해 통합 6-MPM 목록을 제안한다. 도 14는 현재 블록의 왼쪽 및 위쪽 이웃의 예를 나타낸다. MPM 목록은 도 14에 도시된 바와 같이 VTM4.0과 같이 왼쪽 및 위쪽 이웃 블록(neighboring block)의 인트라 모드에 기초하여 구성된다.
왼쪽의 모드를 Left(왼쪽)라고 하고 위 블록의 모드를 Above(위쪽)라고 하면, 통합 MPM 목록은 다음 단계에 따라 순서대로 구성된다:
- 이웃 블록의 인트라 예측 모드가 유효하지 않은 경우, 기본적으로 인트라 모드는 플라나(Planar)로 설정된다.
- Left(왼쪽)와 Above(위쪽)가 동일하고 둘 다 각도(angular)인 경우:
* MPM 목록 {플라나, Left, Left -1, Left +1, DC, Left -2}
- Left(왼쪽)과 Above(위쪽)이 다르고 모두 각도가 다른 경우:
* Left(왼쪽) 및 Above(위쪽)에서 모드 Max를 더 큰 모드로 설정
* 모드 Left(왼쪽)과 Above(위쪽)의 차이가 2에서 62까지의 범위에 있는 경우: MPM 목록 {플라나, Left, Above, DC, Max -1, Max +1}
그렇지 않으면, MPM 목록 {Planar, Left, Above, DC, Max -2, Max +2}
- Left(왼쪽)과 Above(위쪽)이 다르고 왼쪽과 위 모드 중 하나가 각 모드이고 다른 하나가 비각도(non-angular)인 경우:
* Left(왼쪽) 및 Above(위쪽)에서 모드 Max를 더 큰 모드로 설정
* MPM 목록 { Planar, Max, DC, Max -1, Max +1, Max -2 }
- Left(왼쪽) 및 Above(위쪽) 모드가 모두 비각형 모드인 경우:
* MPM 목록 {Planar, DC, V, H, V-4, V+4}
모드 인덱스(예를 들어, Max+2)가 [0, 66] 범위를 초과하면 다른 유효한 모드 인덱스로 대체될 수 있다.
제1 MPM 후보, 예를 들어 플라나 모드(Planar mode)는 잔여 MPM 후보와 별도로 시그널링 된다.
보다 자세한 신택스, 시맨틱 및 디코딩 프로세스는 다음과 같다. 아래에서 굵은 밑줄로 표시된 부분은 표준에 제안된 수정 사항을 나타낸다.
7.3.6.5 코딩 유닛 신택스
신택스 요소 intra_luma_mpm_flag[ x0 ][ y0 ], intra_luma_not_planar_flag[ x0 ][ y0 ], intra_luma_mpm_idx[ x0 ][ y0 ] 및 intra_luma_mpm_remainder[ x0 ][ y0 ]에 대한 인트라 예측 샘플을 지정한다. 어레이 인덱스(array indices) x0, y0은 픽처의 왼쪽 위쪽 루마 샘플에 대한 고려된 코딩 블록의 왼쪽 위쪽 루마 샘플 위치(x0, y0)를 지정한다. intra_luma_mpm_flag[ x0 ][ y0 ]이 1과 같을 때, 인트라 예측 모드는 섹션 4.1에 설명된 절에 따라 이웃하는 인트라 예측된 코딩 유닛에서 유추된다.
intra_luma_mpm_flag[ x0 ][ y0 ]가 존재하지 않는 경우(예를 들어, ISP 활성화 또는 MRL 활성화(참조 인덱스 > 0)), 1과 동일한 것으로 유추된다.
intra_luma_not_planar_flag[ x0 ][ y0 ]가 존재하지 않는 경우(예를 들어, MRL이 활성화됨), 1과 동일한 것으로 유추된다.
intra_luma_not_planar_flag는 컨텍스트 코딩 되고 컨텍스트 선택은 현재 블록이 ISP 모드로 코딩 되지 않았는지 여부(예를 들어, !intra_subpartitions_mode_flag)에 기초한다.
intra_luma_mpm_idx는 컨텍스트 없이 바이패스 코딩 된다.
8.4.2 루마 인트라 예측 모드에 대한 유도 과정
이 프로세스의 입력은 다음과 같다:
- 현재 픽처의 왼쪽 상단 루마 샘플에 대한 현재 루마 코딩 블록의 왼쪽 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
- 루마 샘플에서 현재 코딩 블록의 너비를 지정하는 변수 cbWidth,
- 루마 샘플에서 현재 코딩 블록의 높이를 지정하는 변수 cbHeight,
이 과정에서 루마 인트라 예측 모드 IntraPredModeY[ xCb ][ yCb ]가 유도된다.
표 8-1 인트라 예측 모드 및 연관 명칭 사양
노트: 인트라 예측 모드 INTRA_LT_CCLM, INTRA_L_CCLM 및 INTRA_T_CCLM은 크로마 컴포넌트에만 적용 가능하다.
IntraPredModeY[ xCb ][ yCb ]는 다음과 같이 유도된다:
- intra_luma_not_planar_flag[ xCb ][ yCb ]가 1과 같으면, 다음 순서로 단계를 수행한다.
1.
이웃 위치( xNbA, yNbA ) 및 ( xNbB, yNbB )는 각각 ( xCb - 1, yCb + cbHeight - 1 ) 및 ( xCb + cbWidth - 1, yCb - 1 )과 동일하게 설정된다.
2.
X가 A 또는 B로 대체되는 경우 변수 candIntraPredModeX는 다음과 같이 유도된다.
- 6.4.X절 [Ed. (BB)에 지정된 블록에 대한 가용성 유도 프로세스: 이웃 블록 가용성 확인 프로세스(Neighbouring blocks availability checking process) tbd]는 위치( xCurr, yCurr )를 ( xCb, yCb )로 설정하고 호출되고, 이웃 위치( xNbY, yNbY )는 입력으로 ( xNbX, yNbX )와 동일하게 설정되고, 출력은 availableX에 할당된다.
- 후보 인트라 예측 모드 candIntraPredModeX는 다음과 같이 유도된다:
- 다음 조건 중 하나 이상이 참이면, candIntraPredModeX는 INTRA_PLANAR와 동일하게 설정된다.
- 변수 availableX는 거짓(FALSE)과 같다.
- CuPredMode[ xNbX ][ yNbX ]는 MODE_INTRA와 같지 않고 ciip_flag[ xNbX ][ yNbX ]는 1이 아니다.
- pcm_flag[ xNbX ][ yNbX ]는 1과 같다.
- X는 B와 같고 yCb - 1은 ( ( yCb >> CtbLog2SizeY ) << CtbLog2SizeY )보다 작다.
- 그렇지 않으면, candIntraPredModeX는 IntraPredModeY[ xNbX ][ yNbX ]와 동일하게 설정된다.
3.
x = 0..4인 candModeList[ x ]는 다음과 같이 유도된다:
- candIntraPredModeB가 candIntraPredModeA와 같고 candIntraPredModeA가 INTRA_DC보다 크면 x = 0..4인 candModeList[ x ]는 다음과 같이 유도된다:
candModeList[ 0 ] = candIntraPredModeA
(8-10)
candModeList[ 1 ] = 2 + ( ( candIntraPredModeA + 61 ) % 64 )
(8-12)
candModeList[ 2] = 2 + ( ( candIntraPredModeA - 1 ) % 64 )
(8-13)
candModeList[ 3 ] = INTRA_DC (8-11)
candModeList[ 4 ] = 2 + ( ( candIntraPredModeA + 60 ) % 64 ) (8-14)
- 그렇지 않으면, candIntraPredModeB가 candIntraPredModeA와 같지 않고 candIntraPredModeA 또는 candIntraPredModeB가 INTRA_DC보다 크면, 다음이 적용된다:
- 변수 minAB 및 maxAB는 다음과 같이 유도된다:
minAB = Min( candIntraPredModeA, candIntraPredModeB )
(8-24)
maxAB = Max( candIntraPredModeA, candIntraPredModeB )
(8-25)
- candIntraPredModeA 및 candIntraPredModeB가 모두 INTRA_DC보다 크면, x = 0..4인 candModeList[ x ]가 다음과 같이 유도된다:
candModeList[ 0 ] = candIntraPredModeA
(8-27)
candModeList[ 1 ] = candIntraPredModeB
(8-29)
candModeList[ 2 ] = INTRA_DC
(8-29)
- maxAB - minAB가 2에서 62(포함) 범위에 있으면 다음이 적용된다:
candModeList[ 3 ] = 2 + ( ( maxAB + 61 ) % 64 )
(8-30)
candModeList[ 4 ] = 2 + ( ( maxAB - 1 ) % 64 )
(8-31)
- 그렇지 않으면, 다음이 적용된다:
candModeList[ 3 ] = 2 + ( ( maxAB + 60 ) % 64 )
(8-32)
candModeList[ 4 ] = 2 + ( ( maxAB ) % 64 )
(8-33)
- 그렇지 않으면(candIntraPredModeA 또는 candIntraPredModeB가 INTRA_DC보다 큼) x = 0..4인 candModeList[ x ]는 다음과 같이 유도된다:
candModeList[ 0 ] = maxAB
(8-65)
candModeList[ 1 ] = INTRA_DC
(8-66)
candModeList[ 2 ] = 2 + ( ( maxAB + 61 ) % 64 )
(8-66)
candModeList[ 3 ] = 2 + ( ( maxAB - 1 ) % 64 )
(8-67)
candModeList[ 4 ] = 2 + ( ( maxAB + 60 ) % 64 )
(8-68)
- 그렇지 않으면, 다음이 적용된다:
candModeList[ 0 ] = INTRA_DC
(8-71)
candModeList[ 1 ] = INTRA_ANGULAR50
(8-72)
candModeList[ 2 ] = INTRA_ANGULAR18
(8-73)
candModeList[ 3 ] = INTRA_ANGULAR46
(8-74)
candModeList[ 4 ] = INTRA_ANGULAR54
(8-75)
4.
IntraPredModeY[ xCb ][ yCb ]는 다음 절차를 적용하여 유도된다:
- intra_luma_mpm_flag[ xCb ][ yCb ]가 1과 같으면, IntraPredModeY[ xCb ][ yCb ]는 candModeList[ intra_luma_mpm_idx[ xCb ][ yCb ]]와 동일하게 설정된다.
- 그렇지 않으면, IntraPredModeY[ xCb ][ yCb ]는 다음과 같은 순서화된 단계를 적용하여 유도된다:
1.
candModeList[ i ]가 i = 0..3이고 각 i에 대해 j = ( i + 1 )..4에 대해 candModeList[ j ]보다 크면, 두 값이 다음과 같이 교환된다:
( candModeList[ i ], candModeList[ j ] ) = Swap( candModeList[ i ], candModeList[ j ] ) (8-94)
2.
IntraPredModeY[ xCb ][ yCb ]는 다음과 같은 순서화된 단계에 의해 유도된다:
i.
IntraPredModeY[ xCb ][ yCb ]는 intra_luma_mpm_remainder[ xCb ][ yCb ]와 동일하게 설정된다.
ii.
IntraPredModeY[ xCb ][ yCb ] 값은 1씩 증가한다.
iii.
0에서 4까지의 i에 대해, IntraPredModeY[ xCb ][ yCb ]가 candModeList[ i ]보다 크거나 같을 때, IntraPredModeY[ xCb ][ yCb ]의 값은 1만큼 증가한다.
- 그렇지 않으면(intra_luma_not_planar_flag[ xCb ][ yCb ]는 0과 동일), IntraPredModeY[ xCb ][ yCb ]는 INTRA_PLANAR와 동일하게 설정된다.
x = xCb..xCb + cbWidth - 1 및 y = yCb..yCb + cbHeight - 1인 변수 IntraPredModeY[ x ][ y ]는 IntraPredModeY[ xCb ][ yCb ]와 동일하게 설정된다.
2.11 파티션 트리(Partition tree)
HEVC에서, CTU는 다양한 로컬 특성에 적응하기 위해 코딩 트리(coding tree)로 표시된 4차 트리 구조( quaternary-tree structure)를 사용하여 CU로 분할된다. 인터 픽처(inter-picture)(시간) 또는 인트라 픽처(intra-picture)(공간) 예측을 사용하여 픽처 영역을 코딩할지 여부는 리프 CU 레벨(leaf CU level)에서 결정된다. 각 리프 CU는 PU 분할 유형에 따라 1개, 2개 또는 4개의 PU로 더 분할될 수 있다. 하나의 PU 내에서도 동일한 예측 과정이 적용되고 해당 정보는 PU 유닛으로 디코더(decoder)로 전송된다. PU 분할 유형에 기반한 예측 프로세스를 적용하여 잔차 블록을 얻은 후, 리프 CU는 CU에 대한 코딩 트리와 유사한 다른 4차 트리 구조(quaternary-tree structure)에 따라 변환 유닛(TU)로 분할될 수 있다. HEVC 구조의 주요 특징 중 하나는 CU, PU 및 TU를 포함하는 다중 파티션 개념을 갖는다는 것이다.
VVC에서, 이진 및 삼진 분할 분할 구조(binary and ternary splits segmentation structure)를 사용하는 중첩된 다중 유형 트리(nested multi-type tree)가 있는 쿼드트리(quadtree)는 다중 파티션 유닛 유형의 개념을 대체하고, 예를 들어 최대 변환 길이에 비해 크기가 너무 큰 CU에 필요한 경우를 제외하고 CU, PU 및 TU 개념의 분리를 제거하고, CU 파티션 형상(partition shape)에 대해 더 많은 유연성을 지원한다. 코딩 트리 구조에서 CU는 정사각형 또는 직사각형 형상을 가질 수 있다. 코딩 트리 유닛(CTU)는 먼저 4차 트리(quaternary tree)(쿼드트리(quadtree)라고도 함) 구조로 분할된다. 그런 다음 4차 트리 리프 노드(quaternary tree leaf node)는 다중 유형 트리 구조(multi-type tree structure)로 더 분할될 수 있다. 도 15에 도시된 바와 같이, 다중형 트리 구조에는 수직 이진 분할(SPLIT_BT_VER), 수평 이진 분할(SPLIT_BT_HOR), 수직 삼진 분할(vertical ternary splitting)(SPLIT_TT_VER) 및 수평 삼진 분할(SPLIT_TT_HOR)의 4가지 분할 유형이 있다. 다중 유형 트리 리프 노드(multi-type tree leaf node)를 CU(코딩 유닛)라고 하며 CU가 최대 변환 길이에 비해 너무 크지 않은 경우 이 분할은 추가 분할 없이 예측 및 변환 처리에 사용된다. 이는 대부분의 경우 CU, PU 및 TU가 중첩된 다중 유형 트리 코딩 블록 구조를 갖는 쿼드 트리에서 동일한 블록 크기를 갖는다는 것을 의미한다. 지원되는 최대 변환 길이가 CU의 컬러 컴포넌트 너비 또는 높이보다 작은 경우 예외가 발생한다.
도 16은 중첩된 다중 유형 트리 코딩 트리 구조를 갖는 쿼드트리에서 파티션 분할 정보의 시그널링 메커니즘을 도시한다. 코딩 트리 유닛(Coding Tree Unit) (CTU)은 4차 트리의 루트로 취급되고 먼저 4차 트리 구조로 분할된다. 각 4차 트리 리프 노드(허용할 만큼 충분히 큰 경우)는 다중 유형 트리 구조에 의해 추가로 분할된다. 다중 유형 트리 구조에서, 노드가 더 분할되었는지 여부를 나타내기 위해 제1 플래그(mtt_split_cu_flag)가 시그널링 되고; 노드가 더 분할되면, 분할 방향을 나타내기 위해 제2 플래그(mtt_split_cu_vertical_flag)가 시그널링 되고, 그 다음 분할이 이진 분할인지 삼진 분할인지를 나타내기 위해 제3 플래그(mtt_split_cu_binary_flag)가 시그널링 된다. mtt_split_cu_vertical_flag 및 mtt_split_cu_binary_flag의 값에 기초하여 CU의 다중 유형 트리 슬리팅 모드(MttSplitMode)는 표 4와 같이 유도된다.
MttSplitMode | mtt_split_cu_vertical_flag | mtt_split_cu_binary_flag |
SPLIT_TT_HOR | 0 | 0 |
SPLIT_BT_HOR | 0 | 1 |
SPLIT_TT_VER | 1 | 0 |
SPLIT_BT_VER | 1 | 1 |
도 17은 쿼드트리 및 중첩된 다중 유형 트리 코딩 블록 구조를 갖는 다중 CU로 분할된 CTU를 도시하고, 여기서 굵은 블록 가장자리는 쿼드트리 분할을 나타내고 나머지 가장자리는 다중 유형 트리 분할을 나타낸다. 중첩된 다중 유형 트리 파티션이 있는 쿼드트리는 CU로 구성된 콘텐츠 적응형 코딩 트리 구조를 제공한다. CU의 크기는 루마 샘플 유닛으로 CTU만큼 클 수도 있고 4x4만큼 작을 수도 있다. 4:2:0 크로마 포맷의 경우, 최대 크로마 CB 사이즈는 64Х64, 최소 크로마 CB 사이즈는 2Х2이다.
VVC에서, 지원되는 최대 루마 변환 크기는 64x64이고 지원되는 최대 크로마 변환 크기는 32x32이다. CB의 너비 또는 높이가 최대 변환 너비 또는 높이보다 크면, CB가 자동으로 수평 및/또는 수직 방향으로 분할되어 해당 방향의 변환 크기 제한을 충족한다.
다음 파라미터는 중첩된 다중 유형 트리 코딩 트리 구성표가 있는 쿼드트리에 대한 SPS 신택스 요소에 의해 정의 및 지정된다.
-
CTU 크기: 4차 트리의 루트 노드 크기
-
- MinQTSize: 허용되는 최소 쿼드트리 리프 노드 크기
-
- MaxBTSize: 허용되는 최대 이진 트리 루트 노드 크기
-
- MaxBTSize: 허용되는 최대 이진 트리 루트 노드 크기
-
MaxMttDepth: 쿼드트리 리프에서 분할되는 다중 유형 트리의 최대 허용 계층 깊이(maximum allowed hierarchy depth)
-
- MinBTSize: 허용되는 최소 이진 트리 리프 노드 크기
-
- MinBTSize: 허용되는 최소 이진 트리 리프 노드 크기
중첩된 다중 유형 트리 코딩 트리 구조를 갖는 쿼드트리의 하나의 예에서, CTU 크기는 4:2:0 크로마 샘플의 2개의 해당 64x64 블록이 있는 128x128 루마 샘플로 설정되고, MinQTSize는 16Х16, MaxBtSize는 128Х128, MaxTtSize는 64Х64, MinBtSize 및 MinTtSize(너비 및 높이 모두)는 4Х4로 설정되고, MaxMttDepth는 4로 설정된다. 4차 트리 분할은 4차 트리 리프 노드를 생성하기 위해 먼저 CTU에 적용된다. 4차 트리 리프 노드는 16x16(예를 들어, MinQTSize) 내지 128x128(예를 들어, CTU 크기)의 크기를 가질 수 있다. 리프 QT 노드가 128x128이면 크기가 MaxBtSize 및 MaxTtSize(예를 들어, 64x64)를 초과하므로 이진 트리에 의해 더 이상 분할되지 않는다. 그렇지 않으면, 리프 qdtree 노드가 다중 유형 트리에 의해 더 분할될 수 있다. 따라서 4차 트리 리프 노드는 다중 유형 트리의 루트 노드이기도 하고 다중 유형 트리 깊이(mttDepth)는 0이다. 다중 유형 트리 깊이가 MaxMttDepth(예를 들어, 4)에 도달하면, 더 이상의 분할이 고려되지 않는다. 다중 유형 트리 노드의 너비가 MinBtSize와 같고 2 * MinTtSize보다 작거나 같으면, 더 이상의 수평 분할이 고려되지 않는다. 유사하게, 다중 유형 트리 노드의 높이가 MinBtSize와 같고 2 * MinTtSize보다 작거나 같을 때, 더 이상의 수직 분할은 고려되지 않는다.
VVC 하드웨어 디코더에서 64Х64 Luma 블록 및 32Х32 Chroma 파이프라이닝 설계를 허용하기 위해, 도 18에 도시된 바와 같이, 루마 코딩 블록의 너비 또는 높이가 64보다 클 때 삼진 트리(TT) 분할이 금지된다. TT 분할은 크로마 코딩 블록의 너비 또는 높이가 32보다 큰 경우에도 금지된다.
VTM3에서, 코딩 트리 방식은 루마와 크로마가 별도의 블록 트리 구조를 가질 수 있는 기능을 지원한다. 현재, P 및 B 슬라이스의 경우 하나의 CTU에 있는 루마 및 크로마 CTB는 동일한 코딩 트리 구조를 공유해야 한다. 그러나, I 슬라이스의 경우, 루마와 크로마는 별도의 블록 트리 구조를 가질 수 있다. 개별 블록 트리 모드가 적용될 때, 루마 CTB는 하나의 코딩 트리 구조에 의해 CU로 분할되고, 크로마 CTB는 다른 코딩 트리 구조에 의해 크로마 CU로 분할된다. 이것은 I 슬라이스의 CU가 루마 성분의 코딩 블록 또는 두 개의 크로마 성분의 코딩 블록으로 구성될 수 있고, P 또는 B 슬라이스의 CU는 비디오가 흑백이 아닌 한 항상 세 가지 색상 구성 요소의 코딩 블록으로 구성될 수 있음을 의미한다.
3. 예제 문제
현재 설계에는 다음과 같은 문제가 있다:
1. ISP 코딩 블록은 하나의 블록을 동일한 인트라 예측 모드로 2개 또는 4개의 서브파티션으로 분할하고, 한편, 하나의 블록은 2개 또는 4개의 파티션으로 분할될 수 있고 각각은 동일한 인트라 예측 모드로 코딩 될 수 있다. 따라서 일부 중복이 존재한다.
2. 또한, MPM 목록 구성 프로세스는 파티션 방향을 고려하지 않은 고정된 이웃 블록(위쪽, 왼쪽)을 사용한다. 예를 들어, 수평 BT의 경우, 위의 파티션이 인트라 모드로 코딩 되면, 맨 아래 파티션은 일반적으로 다른 인트라 예측 모드를 사용하는 것을 선호하는 반면 ,위 블록의 인트라 예측 모드는 MPM 목록에 포함된다.
3. 내부 서브파티션의 일부 이웃 샘플은 항상 사용할 수 없다. 예를 들어, 수직(수평) 방향으로 분할된 ISP 블록의 경우, 왼쪽 아래(오른쪽 위쪽) 이웃 샘플을 사용할 수 없다.
4. ALWIP 코딩 된 블록에 대한 인트라 모드의 시그널링은 기존 방식, MRL 또는 ISP를 사용하는 다른 인트라 코딩 된 블록의 경우와 다르다.
4. 예시적인 실시 예 및 기술.
아래의 실시예 목록은 일반적인 개념을 설명하기 위한 예시로 간주되어야 한다. 이러한 실시예는 좁은 방법으로 해석되어서는 안 된다. 또한, 이들 실시예들은 임의의 방식으로 조합될 수 있다.
하나의 블록 크기를 W*H로 표시하고, 여기서 W는 블록 너비이고 H는 블록 높이이다. MaxTbW * MaxTbH로 표시되는 최대 변환 블록 크기이고, 여기서 MaxTbW 및 MaxTbH는 각각 최대 변환 블록 너비 및 높이이다. MinTbW * MinTbH로 표시되는 최소 변환 블록 크기이고, 여기서 MinTbW 및 MinTbH는 각각 최소 변환 블록의 너비와 높이이다. MRL은 현재 블록을 예측하기 위해 현재 픽처에서 인접하지 않은 레퍼런스 라인을 사용할 수 있는 기술을 나타낼 수 있고, ALWIP는 매트릭스 기반 인트라 예측 방법을 사용할 수 있는 기술을 나타낼 수 있다.
ALWIP 및 QR-BDPCM 관련:
1.
ALWIP의 부가 정보(Side information)(예를 들어, 온/오프 사용 플래그, 인트라 예측 모드 및/또는 루마 샘플에 대한 입력 벡터의 전치 여부와 같은 입력 벡터에 대한 정보)는 QR-BDPCM의 부가 정보 뒤에 코딩 될 수 있다. (예를 들어, 온/오프 사용 플래그 및/또는 예측 방향).
a.
하나의 예에서, ALWIP 및 QR-BDPCM은 한 블록에 적용될 수 없다.
i.
블록에 ALWIP이 적용되면, QR-BDPCM이 적용되지 않고 부가 정보가 코딩 되지 않는다.
ii.
블록에 QR-BDPCM이 적용되면, ALWIP이 적용되지 않고, 부가 정보가 코딩 되지 않는다.
iii.
또는, 인트라 예측 방식이 ALWIP 방식을 사용하는 하나의 블록에 적용될 수 있고, 잔차의 시그널링은 잔차 블록 내의 특정 위치에 대한 잔차 차이를 코딩 하는, 예를 들어 변환 없음과 같은 QR-BDPCM의 방식을 따르고 있다.
b.
또는, 또한 ALWIP의 부가 정보를 시그널링 할지 여부는 QR-BDPCM의 사용에 의존할 수 있다.
i.
하나의 블록에 QR-BDPCM이 적용되면, ALWIP의 부가 정보 시그널링은 스킵 될 수 있다.
ii.
하나의 블록에 QR-BDPCM이 적용되지 않으면, ALWIP의 부가 정보가 시그널링 될 수 있다.
iii.
하나의 블록에 QR-BDPCM이 적용되면, ALWIP 사용 시그널링은 시그널링 되고 ALWIP 모드 시그널링은 스킵 될 수 있다.
iv.
하나의 예에서, QR-BDPCM이 하나의 블록에 적용되면, ALWIP 사용에 대한 시그널링은 여전히 시그널링 될 수 있다. 그러나, ALWIP는 적합성 비트 스트림의 블록에 적용되지 않아야 한다.
c.
또는, QR-BDPCM의 부가 정보가 ALWIP의 부가 정보 뒤에 코딩 될 수도 있다.
i.
QR-BDPCM의 부가 정보 시그널링 여부는 ALWIP 사용 여부에 따라 달라질 수 있다.
ii.
하나의 블록에 ALWIP가 적용되면, QR-BDPCM의 부가 정보 시그널링은 스킵 된다.
iii.
하나의 블록에 ALWIP가 적용되고 연관 ALWIP 모드가 기존의 수평/수직 모드에 해당하는 경우, QR-BDPCM의 사용은 여전히 시그널링 될 수 있지만 예측 방향(예를 들어, bdpcm_dir_flag)의 시그널링은 스킵 된다.
iv.
하나의 예에서, ALWIP가 하나의 블록에 적용되면, QR-BDPCM의 사용은 여전히 시그널링 될 수 있다. 그러나, QR-BDPCM은 적합성 비트스트림의 블록에 적용되지 않아야 한다.
2.
ALWIP 코딩 된 블록에 대한 인트라 예측 모드는 첫 번째 것 대신에 하나 또는 다수의 인트라-관련 코딩 툴과 관련된 정보 이후에 시그널링 될 수 있다.
a.
하나의 예에서, 인트라-관련 코딩 툴은 QR-BDPCM/PCM/MRL/ISP/광각 인트라 예측/종래의 인트라 코딩 방법을 포함할 수 있다.
3.
ALWIP는 MPM 목록의 후보; 또는 MPM 목록에 포함된 후보로부터 매핑 되거나 변환된 하나의 후보로 코딩 된 블록에만 적용될 수 있다.
a.
대안적으로, 또한, MPM 플래그의 시그널링 및/또는 잔차 코딩 모드의 시그널링은 ALWIP 코딩 된 블록에 대해 스킵될 수 있다.
4.
ALWIP 코딩 된 블록에 대한 인트라 예측 모드의 시그널링은 기존의 인트라 예측 방법/광각 인트라 예측/MRL/또는 ISP를 사용하여 다른 인트라 코딩 된 블록을 코딩 하는 것과 정렬되도록 제안된다.
a.
하나의 예에서, ALWIP 코딩 된 블록에 대한 인트라 예측 모드의 시그널링은 다음 부분을 포함할 수 있다:
i.
MPM 후보 중 하나인지 여부가 먼저 코딩 될 수 있다(신택스 요소 A로 표시됨).
ii.
MPM 후보인 경우, 다음을 순서대로 추가 코딩할 수 있다:
1)
MPM 목록의 제1 MPM 후보인지 여부(신택스 요소 B로 표시)
2)
잔여 MPM 목록의 MPM 인덱스(신택스 요소 C로 표시됨)
iii.
MPM 후보가 아닌 경우, 잔여 허용 인트라 모드의 인트라 모드 인덱스(신택스 요소 D로 표시됨)는 추가로 코딩 될 수 있다.
b.
대안적으로, ALWIP 코딩 된 블록에 대한 인트라 예측 모드의 시그널링은 다음 부분을 포함할 수 있다:
i.
MPM 후보 중 하나인지 여부가 먼저 코딩 될 수 있다(신택스 요소 A로 표시됨).
ii.
MPM 후보인 경우, 다음을 순서대로 추가 코딩할 수 있다:
1)
플라나 모드가 아닌지 여부(신택스 요소 B로 표시됨)
2)
잔여 MPM 목록의 MPM 인덱스(신택스 요소 C로 표시됨)
iii.
MPM 후보가 아닌 경우, 잔여 허용 인트라 모드의 인트라 모드 인덱스(신택스 요소 D로 표시됨)는 추가로 코딩 될 수 있다.
c.
특정 신택스 요소, 예를 들어 앞서 언급한 신택스 요소 A/B/C/D에 대해서는 조건부로 시그널링 될 수 있다.
i.
하나의 예에서, ALWIP에 대해 MPM만이 허용되는 경우, ALWIP가 사용될 때 신택스 요소 A의 시그널링은 스킵될 수 있다.
ii.
또는, 또한, 신택스 요소 A(예를 들어, intra_luma_mpm_flag)가 조건부로 시그널링 될 수 있다. 예를 들어, 신택스 요소 A(예를 들어, intra_luma_mpm_flag)의 시그널링은 intra_luma_ref_idx[ x0 ][ y0 ] == 0 && intra_subpartitions_mode_flag[ x0 ][ y0 ] == 0 && intra_lwip_flag[ x0 ] =[ y0 의 조건 하에 있을 수 있다.
d.
위의 신택스 요소의 허용 값 범위는 인트라 코딩 방법 및/또는 블록 차원에 따라 달라질 수 있다.
i.
하나의 예에서, 신택스 요소 C(예를 들어, intra_luma_mpm_idx)는 ALWIP에 대해 [0, 1]이고, 다른 것들에 대해 [0,4]일 수 있다.
ii.
하나의 예에서, 신택스 요소 D(예를 들어, intra_luma_mpm_remainder)는 비-ALWIP에 대해 [0, 60] 범위에 있을 수 있고; 4x4 ALWIP 블록의 경우 [0, 31], W<=8 && H<=8 ALWIP 블록의 경우 [0, 15], 및 [0, 7] 다른 ALWIP 블록의 경우 W 및 H가 각각 블록 너비와 높이를 나타낸다.
e.
신택스 요소 A/B/C/D는 산술 코딩(arithmetic coding)에서 컨텍스트 코딩(context coded) 또는 바이패스 코딩(bypass coded) 될 수 있다.
i.
대안적으로, 또한, ALWIP/MRL/ISP/광각 인트라 예측(wide angle intra-prediction)과 같은 인트라 코딩 방식에 따라 컨텍스트가 선택될 수도 있다.
1)
하나의 예에서, 이진화된 MPM 인덱스의 제1 빈(예를 들어, intra_luma_not_planar_flag)을 코딩할 때, 두 개의 컨텍스트가 활용될 수 있고, 하나는 기존 인트라 및 ALWIP용이고; 다른 하나는 ISP용이고; 및 다른 하나는 잔여 방법용이다.
2)
하나의 예에서, 이진화된 MPM 인덱스의 제1 빈(예를 들어, intra_luma_not_planar_flag)을 코딩할 때, 3개의 컨텍스트가 활용될 수 있고, 하나는 ALWIP용, 하나는 ISP용, 하나는 다른 컨텍스트용이다.
비 ALWIP 방법에 대한 인트라 모드 코딩 관련:
5. 종래의 인트라 예측 방법/광각 인트라 예측/MRL/또는 ISP를 사용하는 것과 같은, ALWIP 코딩 되지 않은 인트라 예측 모드를 코딩 하는 데 사용되는 신택스 요소의 컨텍스트/허용 범위는 인트라 예측 방법에 의존할 수 있다.
a. 하나의 예에서, 상이한 인트라 예측 방법은 상이한 크기의 MPM 목록을 가질 수 있다.
b. 하나의 예에서, 상이한 인트라 예측 방법은 상이한 수의 비-MPM 후보를 가질 수 있다.
ISP 관련
6.
ISP 코딩 된 블록에 대해 두 가지 인트라 예측 모드만 허용되는 것이 제안된다.
a.
하나의 예에서, MPM 목록의 처음 두 모드가 허용된다.
b.
하나의 예에서, 허용된 두 가지 모드 중 하나는 플라나 모드이고, 다른 하나는 MPM 목록으로부터의 하나로, 첫 번째 또는 두 번째 또는 와 같이 MPM 목록에서 플라나 모드가 아닌 제1 번째이다.
c.
대안적으로, 또한, MPM 인덱스(예를 들어, intra_luma_mpm_idx)의 시그널링은 ISP 코딩 된 블록에 대해 스킵 된다.
d.
하나의 예에서, 위의 방법은 다른 인트라 코딩 방법, 예를 들어 MRL, ALWIP에도 적용될 수 있다.
7.
ISP 코딩 된 블록의 레퍼런스 샘플(또는 이웃 샘플) 및/또는 이전에 코딩 된 서브파티션의 이웃 샘플을 사용하여 블록의 현재 서브파티션을 예측할 수 있다는 것이 제안된다.
a.
하나의 예에서, ISP 코딩 된 블록이 수평 방향으로 분할되면, 블록의 오른쪽 위 레퍼런스 샘플이 내부 서브파티션을 예측하는 데 사용될 수 있다.
b.
하나의 예에서, ISP 코딩 된 블록이 수직 방향으로 분할되면, 블록의 왼쪽 아래쪽 레퍼런스 샘플이 내부 서브파티션을 예측하는 데 사용될 수 있다.
c.
하나의 예에서, ISP 코딩 된 블록의 오른쪽 위쪽 또는/및 왼쪽 아래쪽 레퍼런스 샘플은 내부 서브파티션의 오른쪽 위쪽 또는/및 왼쪽 아래쪽 레퍼런스 샘플로 직접 사용될 수 있다. 예는 도 22에 도시되어 있다.
d.
하나의 예에서, 내부 서브파티션의 오른쪽 상단 또는/및 왼쪽 하단 레퍼런스 샘플은 ISP 코딩 된 블록의 오른쪽 상단 또는/및 왼쪽 하단 레퍼런스 샘플을 사용하여 예측될 수 있다. 예는 도 23에 도시되어 있다.
i.
하나의 예에서, 인트라 예측 방법은 내부 서브파티션의 레퍼런스 샘플을 예측하기 위해 사용될 수 있다.
ii.
하나의 예에서, 내부 서브파티션들의 레퍼런스 샘플이 블록의 레퍼런스 샘플의 프렉셔널 위치에 투영될 때, 보간을 위해 이중선형 보간(bilinear interpolation)이 사용될 수 있다.
iii.
하나의 예에서, 내부 서브파티션들의 레퍼런스 샘플이 블록의 레퍼런스 샘플의 프렉셔널 위치(fractional position)로 투영될 때, 프렉셔널 위치는 정수 위치로 반올림될 수 있다. 예를 들어, 클로짓 정수 위치(closet integer position) 또는 가장 가까운 사용 가능한 정수 위치이다.
e.
하나의 예에서, 내부 서브파티션의 오른쪽 위쪽 또는/및 왼쪽 아래쪽 레퍼런스 샘플은 위의 방법으로 생성된 후 내부 서브파티션을 예측하는 데 사용되기 전에 필터링 될 수 있다.
8.
MPM 목록 구성 프로세스에서 어떤 주변 블록을 검사해야 하는지는 비디오 유닛에서 다른 유닛으로 변경될 수 있다. 예를 들어, 비디오 유닛은 CU일 수 있다.
a.
동일한 부모 노드의 자식 노드는 MPM 목록 구성 프로세스에서 액세스가 허용되지 않을 수 있다.
b.
하나의 예에서, 그것은 부모 노드의 분할 방향/파티션 트리 유형에 의존할 수 있다.
i.
하나의 예에서, 현재 블록(예를 들어, 자식 노드(child node)의 맨 아래)이 수평 BT 및/또는 TT에서 분할되고 분할의 제1 자식 노드가 아닌 경우, 검사할 위의 블록은 오른쪽 위쪽 또는 다른 부모 노드의 모든 블록으로 대체될 수 있다.
1)
또는, 상기 블록의 인트라 예측 모드는 변환된 모드로 대체될 수 있다. 예를 들어, X+off 또는 (X+off)%T로 대체될 수 있고, 여기서 X는 위쪽 블록의 인트라 예측 모드이고, off 및 T는 정수이다.
ii.
하나의 예에서, 현재 블록(예: 오른쪽 자식 노드)이 수직 BT 및/또는 TT에서 분할되고 분할의 제1 자식 노드가 아닌 경우, 검사할 왼쪽 블록은 왼쪽 상단 또는 다른 부모 노드의 블록으로 대체될 수 있다.
1)
또는, 왼쪽 블록의 인트라 예측 모드가 변환된 모드로 대체될 수 있다. 예를 들어, X+off 또는 (X+off)%T로 대체될 수 있고, 여기서 X는 위쪽 블록의 인트라 예측 모드이고, off 및 T는 정수이다.
c.
또는, 동일한 방식으로 MPM 목록을 구성할 수 있지만, 동일한 부모 노드에 있는 다른 자식 노드들의 인트라 예측 모드는 MPM 목록에서 제외할 수 있다.
d.
또는, 동일한 부모 노드에 있는 다른 자식 노드의 인트라 예측 모드는 다른 모드로 대체될 수 있다. 인트라 예측 모드를 시그널링 하는 방법은 파티션 유형에 따라 달라질 수 있다.
i.
하나의 예에서, 하나의 부모 노드가 수평/수직 BT 및/또는 TT로 분할된 경우, 제1 자식 노드는 플라나 모드로 코딩 되고 제2 자식 노드는 인트라 코딩 되고, 그러면 제2 자식 노드에 대한 intra_luma_not_planar_flag의 시그널링을 건너뛸 수 있고 1로 유추될 수 있다.
9.
ISP가 슬라이스에 대해 활성화된 경우 특정 블록 차원(예를 들어, 4x8, 8x4)에 대한 수평 및/또는 수직 BT 및/또는 TT가 비활성화될 수 있다고 제안된다.
a.
특정 블록 차원(예를 들어, 4x8, 8x4)에 대한 수평 및/또는 수직 BT 및/또는 TT가 슬라이스에 대해 활성화될 때 ISP가 비활성화될 수 있다고 제안된다.
i.
ISP가 비활성화되면 ISP 부가 정보의 관련 신호를 스킵 된다.
b.
또는, 듀얼 트리가 활성화된 경우에도 위의 방법을 적용할 수 있다.
c.
또는, 단일 트리가 활성화된 경우에도 위의 방법을 적용할 수 있다.
4.1 실시예
변경 예는 아래에 나와 있다. 밑줄과 굵게 표시된 부분은 작업 초안에 추가된 사항을 나타내고, 한편 취소선 섹션(strikethrough section)은 제안된 삭제를 나타낸다.
신택스 요소 intra_luma_mpm_flag[ x0 ][ y0 ], intra_luma_not_planar_flag[ x0 ][ y0 ], intra_luma_mpm_idx[ x0 ][ y0 ] 및 intra_luma_mpm_remainder[ x0 ][ y0 ]에 대한 인트라 예측 샘플을 지정한다. 어레이 인덱스(array indices) x0, y0은 픽처의 왼쪽 위쪽 루마 샘플에 대한 고려된 코딩 블록의 왼쪽 위쪽 루마 샘플 위치(x0, y0)를 지정한다. intra_luma_mpm_flag[ x0 ][ y0 ]가 1과 같을 때, intra_lwip_flag[ x0 ][ y0 ]가 0과 같을 때 8.4.2절에 따라 이웃하는 인트라 예측된 코딩 유닛에서 인트라 예측 모드가 유추되고; 인트라 예측 모드는 intra_lwip_flag[ x0 ][ y0 ]가 1과 같을 때 8.4.2 절에 따라 이웃 인트라 예측된 코딩 유닛에서 유추된다.
pcm_flag [x0] [y0]이 없으면, 0과 같은 것으로 유추된다.
intra_luma_not_planar_flag[ x0 ][ y0 ]가 존재하지 않을 때, 1과 같은 것으로 유추된다.
8.4.2 루마 인트라 예측 모드에 대한 유도 과정
이 프로세스의 입력은 다음과 같다:
현재 픽처의 왼쪽 상단 루마 샘플에 대한 현재 코딩 블록의 왼쪽 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
루마 샘플에서 현재 코딩 블록의 너비를 지정하는 변수 cbWidth,
루마 샘플에서 현재 코딩 블록의 높이를 지정하는 변수 cbHeight.
이 과정에서 루마 인트라 예측 모드 IntraPredModeY[ xCb ][ yCb ]가 유도된다.
표 8-1은 인트라 예측 모드 IntraPredModeY[ xCb ][ yCb ]에 대한 값과 연관 명칭을 지정한다.
표 8-1 - 인트라 예측 모드 및 연관 명칭의 사양
노트 - : 인트라 예측 모드 INTRA_LT_CCLM, INTRA_L_CCLM 및 INTRA_T_CCLM은 크로마 컴포넌트에만 적용 가능하다.
IntraPredModeY[ xCb ][ yCb ]는 다음과 같이 유도된다:
intra_luma_not_planar_flag[ xCb ][ yCb ]가 1과 같으면, 다음 순서로 단계를 수행한다:
1.
이웃 위치( xNbA, yNbA ) 및 ( xNbB, yNbB )는 각각 ( xCb - 1, yCb + cbHeight - 1 ) 및 ( xCb + cbWidth - 1, yCb - 1 )과 동일하게 설정된다.
...
그렇지 않으면(intra_luma_not_planar_flag[ xCb ][ yCb ]는 0과 동일), IntraPredModeY[ xCb ][ yCb ]는 INTRA_PLANAR와 동일하게 설정된다.
x = xCb..xCb + cbWidth - 1 및 y = yCb..yCb + cbHeight - 1인 변수 IntraPredModeY[ x ][ y ]는 IntraPredModeY[ xCb ][ yCb ]와 동일하게 설정된다.
8.4.X
아핀 선형 가중 인트라 예측 모드에 대한 유도 프로세스
이 프로세스의 입력은 다음과 같다:
- 현재 픽처의 왼쪽 상단 루마 샘플에 대한 현재 코딩 블록의 왼쪽 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
- 루마 샘플에서 현재 코딩 블록의 너비를 지정하는 변수 cbWidth,
- 루마 샘플에서 현재 코딩 블록의 높이를 지정하는 변수 cbHeight.
이 과정에서, 아핀 선형 가중 인트라 예측 모드 IntraPredModeY[ xCb ][ yCb ]가 유도된다.
IntraPredModeY[ xCb ][ yCb ]는 다음과 같은 순서화된 단계에 의해 유도된다:
1.
이웃 위치( xNbA, yNbA ) 및 ( xNbB, yNbB )는 각각 ( xCb - 1, yCb ) 및 ( xCb, yCb - 1 )과 동일하게 설정된다.
2.
X가 A 또는 B로 대체되는 경우 변수 candLwipModeX는 다음과 같이 유도된다:
...
3.
x = 0..2인 candLwipModeList[ x ]는 표 8-X2에 지정된 lwipMpmCand[ sizeId ]를 사용하여 다음과 같이 유도된다:
4.
IntraPredModeY[ xCb ][ yCb ]는 다음 절차를 적용하여 유도된다:
intra_lwip_mpm_flag[ xCb ][ yCb ]가 1과 같으면 IntraPredModeY[ xCb ][ yCb ]는 candLwipModeList[ intra_luma_not_planar_flag[ x0 ][ y0 ] == 0 ? 0: (intra_luma_mpm_idx +1) ].
- 그렇지 않으면, IntraPredModeY[ xCb ][ yCb ]는 다음과 같은 순서화된 단계(ordered step)를 적용하여 유도된다:
1.
i = 0..1 및 각 i, j = ( i + 1 )..2에 대해 candLwipModeList[ i ]가 candLwipModeList[ j ]보다 클 때 두 값은 다음과 같이 교환된다:
( candLwipModeList[ i ], candLwipModeList[ j ] ) = Swap( candLwipModeList[ i ], candLwipModeList[ j ] )
(8-X14)
2.
IntraPredModeY[ xCb ][ yCb ]는 다음과 같은 순서화된 단계에 의해 유도된다:
i.
IntraPredModeY[ xCb ][ yCb ]는 intra_lwip_mpm_remainder[ xCb ][ yCb ]와 동일하게 설정된다.
ii.
i가 0 내지 2인 경우, IntraPredModeY[ xCb ][ yCb ]가 candLwipModeList[ i ]보다 크거나 같을 때 IntraPredModeY[ xCb ][ yCb ]의 값은 1만큼 증가한다.
x = xCb..xCb + cbWidth - 1 및 y = yCb..yCb + cbHeight - 1인 변수 IntraPredModeY[ x ][ y ]는 IntraPredModeY[ xCb ][ yCb ]와 동일하게 설정된다.
표 9-9 - 신택스 요소 및 연관 이진화
도 19는 비디오 처리 장치(video processing apparatus)(1400)의 블록도이다. 장치(1900)는 본원에 기재된 하나 이상의 방법을 구현하는 데 사용될 수 있다. 장치(1900)는 스마트폰, 태블릿, 컴퓨터, 사물인터넷(IoT) 수신기 등에서 구현될 수 있다. 장치(1900)는 하나 이상의 프로세서(processor)(1902), 하나 이상의 메모리(memory)(1904) 및 비디오 처리 하드웨어(video processing hardware)(1906)를 포함할 수 있다. 상기 프로세서(들)(1902)는 본 문서에 기재된 하나 이상의 방법을 구현하도록 구성될 수 있다. 메모리(1904)는 본 원에 기재된 방법 및 기술을 구현하는 데 사용되는 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 처리 하드웨어(1906)는 하드웨어 회로에서 본 문서에 기재된 일부 기술을 구현하는 데 사용될 수 있다.
도 20은 본 기술의 하나 이상의 예에 따른 비디오 처리 방법(2000)에 대한 흐름도이다. 방법(2000)은, 작업(2002)에서, 비디오 데이터의 블록을 표현하는 비트스트림을 생성하거나 수신하는 단계를 포함한다. 비디오 데이터 블록은 아핀 선형 가중 인트라 예측(Affine Linear Weighted Intra Prediction)(ALWIP)에 기초하여 코딩 된다. ALWIP의 부가 정보와 양자화된 잔차 블록 차동 펄스 코드 변조(Quantized Residual Block Differential Pulse Code Modulation)(QR-BDPCM)의 부가 정보는 비트스트림에서 제1 순서로 순차적으로 코딩 된다.
도 21은 본 기술의 하나 이상의 예에 따른 비디오 프로세싱 방법(2100)에 대한 흐름도이다. 방법(2100)은, 동작(2102)에서, 비디오 데이터의 블록을 표현하는 비트스트림을 생성하거나 수신하는 단계를 포함하고, 여기서 비디오 데이터의 블록은 2개의 인트라 예측 모드만을 갖는 인트라 예측 방법을 사용하여 코딩 된다.
도 24는 본 기술의 하나 이상의 예들에 따른 비디오 프로세싱 방법(2400)에 대한 흐름도이다. 방법(2400)은, 동작(2402)에서, 현재 블록의 이웃 블록 세트를 검사함으로써 비디오 데이터의 다중 블록에서 현재 블록에 대한 가장 가능성이 높은 모드(Most-Probable-Mode)(MPM) 목록을 구성하는 단계를 포함한다. 다중 블록은 파티션 패턴을 사용하여 비디오 유닛을 분할하여 생성된다. 이웃 블록 세트는 파티션 패턴에 따라 결정된다. 방법(2400)은, 동작(2404)에서, MPM 목록으로부터의 후보를 사용하여 비디오 데이터의 현재 블록을 코딩 하는 단계를 포함한다. 방법(2400)은, 또한 동작(2406)에서, 비디오 데이터의 현재 블록을 표현하는 비트스트림을 생성하거나 수신하는 단계를 포함한다.
도 25는 본 기술의 하나 이상의 예들에 따른 비디오 프로세싱의 방법(2500)에 대한 흐름도이다. 방법(2500)은, 동작(2502)에서, 비디오 데이터의 다중 블록을 표현하는 비트스트림을 수신하는 단계를 포함한다. 비디오 데이터의 현재 블록은 가장 가능성이 높은 모드(Most-Probable-Mode)(MPM) 목록의 후보를 사용하여 비트스트림으로 코딩 되고 MPM 목록은 현재 블록의 이웃 블록 세트를 검사하여 구성된다. 파티션 패턴(partition pattern)을 사용하여 비디오 유닛을 분할하여 다중 블록이 생성되고, 파티션 패턴에 따라 이웃 블록 세트가 결정된다. 방법(2500)은, 또한 동작(2504)에서, 비트스트림을 사용하여 비디오 데이터의 현재 블록을 재구성하는 단계를 포함한다.
추가 실시예 및 기술은 다음 예에서 설명된다.
1.
영상 처리 방법에서, 비디오 데이터의 블록을 나타내는 비트스트림을 생성하거나 수신하는 단계, 비디오 데이터 블록은 아핀 선형 가중 인트라 예측(Affine Linear Weighted Intra Prediction)(ALWIP)에 기초하여 코딩 되고, 및 상기 ALWIP의 부가 정보 및 양자화된 잔차 블록 차동 펄스 코드 변조(Quantized Residual Block Differential Pulse Code Modulation)(QR-BDPCM)의 부가 정보는 비트스트림에서 제1 순서로 순차적으로 코딩 된다.
2.
예 1의 방법에서, 제1 순서는 ALWIP의 부가 정보(side information)가 QR-BDPCM의 부가 정보 다음에 코딩됨을 나타낸다.
3.
예 2의 방법에서, ALWIP의 부가 정보는 비디오 데이터 블록을 처리할 때 QR-BDPCM의 사용에 기초하여 코딩 된다.
4.
예 1의 방법에서, 제1 순서는 QR-BDPCM의 부가 정보가 ALWIP의 부가 정보 다음에 코딩됨을 나타낸다.
5.
예 4의 방법에서, QR-BDPCM의 부가 정보는 비디오 데이터 블록을 처리할 때 ALWIP의 사용에 기초하여 코딩 된다.
6.
예 1 내지 예 5 중 어느 하나의 예의 방법에서, QR-BDPCM은 비디오 데이터의 블록의 잔차 값을 시그널링 하는데 적용된다.
예 36 내지 40의 추가 실시예는 섹션 4 항목 14에 기재된다.
7.
예 1 내지 예 6 중 어느 하나의 예의 방법에서, 비디오 데이터의 블록의 인트라 예측 모드는 비트스트림의 하나 이상의 예측 방법에 관한 정보 이후에 코딩 된다.
8.
예 7의 방법에서, 하나 이상의 코딩 방법은: QR-BDPCM, 다중 레퍼런스 라인(MRL) 인트라 예측, 인트라 서브블록 파티션닝(Intra Subblock Partitioning)(ISP) 또는 광각 인트라 예측 중 적어도 하나를 포함한다.
예 36 내지 40의 추가 실시예는 섹션 4 항목 14에 기재된다.
9.
예 1 내지 예 8 중 어느 하나의 예 의 방법에서, 비디오 데이터의 블록은 가장 가능성이 높은 모드(Most-Probable-Mode)(MPM) 목록으로부터의 후보에 기초하여 코딩 된다.
10. 예 9의 방법에서, 비트스트림은:
MPM 목록으로부터의 후보가 먼저 코딩 되는지 여부를 나타내는 제1 신택스 요소, 후보가 MPM 목록의 제1 후보인지 또는 후보가 플라나 모드에 있는지 여부를 나타내는 제2 신택스 요소, MPM 목록에서 잔여 후보의 MPM 인덱스를 나타내는 제3 신택스 요소, 또는 허용된 인트라 예측 모드의 목록에서 인트라 예측 모드 인덱스를 나타내는 제4 신택스 요소 중 적어도 하나를 포함한다.
11. 예 10의 방법에서, 제1, 제2, 제3, 또는 제4 신택스 요소의 값 범위는 인트라 예측 방법 또는 블록 차원에 기초하여 결정된다.
예 36 내지 40의 추가 실시예는 섹션 4 항목 14에 기재된다.
12. 비디오 처리 방법에서, 비디오 데이터 블록을 표현하는 비트스트림을 생성하거나 수신하는 단계를 포함하고, 비디오 데이터 블록은 2개의 인트라 예측 모드만을 갖는 인트라 예측 방법을 사용하여 코딩 된다.
13.
예 12의 방법에서, 2개의 인트라 예측 모드는 가장 가능성이 높은 모드(Most-Probable-Mode)(MPM) 목록인 처음 2개의 모드에 기초하여 결정된다.
14.
예 12의 방법에서, 인트라 예측 방법은: 다중 레퍼런스 라인(Multiple Reference Line)(MRL) 인트라 예측, 아핀 선형 가중 인트라 예측(Affine Linear Weighted Intra Prediction)(ALWIP), 인트라 서브블록 파티셔닝(Intra Subblock Partitioning)(ISP) 또는 광각 인트라 예측 중 적어도 하나를 포함한다.
예 36 내지 40의 추가 실시예는 섹션 4 항목 14에 기재된다.
15.
예 12의 방법에서, 인트라 예측 방법은 인트라 서브블록 파티셔닝(Intra Subblock Partitioning)(ISP)이고, 비디오 데이터의 블록의 레퍼런스 샘플은 블록의 현재 서브파티션을 예측하는 데 사용된다.
16.
예 15의 방법에서, 현재 서브파티션은 블록을 수평 방향으로 파티셔닝함으로써 획득되고, 레퍼런스 샘플은 블록의 오른쪽 위쪽 레퍼런스 샘플을 포함한다.
17.
예 15의 방법에서, 현재 서브파티션은 블록을 수직 방향으로 파티셔닝함으로써 획득되고, 레퍼런스 샘플은 블록의 왼쪽 아래쪽 레퍼런스 샘플을 포함한다.
18.
예 15 내지 예 17 중 어느 하나의 예의 방법에서, 블록의 레퍼런스 샘플은 현재 서브파티션의 레퍼런스 샘플로서 사용된다.
19.
예 15 내지 예 17 중 어느 한 예의 방법에서, 현재 서브파티션의 레퍼런스 샘플은 블록의 레퍼런스 샘플의 프렉셔널 위치에 기초하여 결정된다.
예 36 내지 40의 추가 실시예는 섹션 4 항목 14에 기재된다.
20. 비디오 처리 방법에서, 현재 블록의 이웃 블록 세트를 검사하여 비디오 데이터의 다중 블록에서 현재 블록에 대한 가장 가능성 높은 모드(Most-Probable-Mode)(MPM) 목록을 구성하는 단계 - 다중 블록은 파티션 패턴을 사용하여 비디오 유닛을 파티션함으로써 생성되고, 이웃 블록 세트는 파티션 패턴에 기초하여 결정됨 -; MPM 목록으로부터의 후보를 사용하여 비디오 데이터의 현재 블록을 코딩 하는 단계; 및 비디오 데이터의 현재 블록을 나타내는 비트스트림을 생성하는 단계를 포함한다.
21.
비디오 처리 방법에서, 비디오 데이터의 다중 블록을 나타내는 비트스트림을 수신하는 단계 - 비디오 데이터의 현재 블록은 가장 가능성 높은 모드(Most-Probable-Mode)(MPM) 목록으로부터의 후보를 사용하여 비트스트림으로 코딩 되고, MPM 목록은 현재 블록의 이웃 블록 세트를 검사함으로써 구성되고, 다중 블록은 파티션 패턴을 사용하여 비디오 유닛을 파티션함으로써 생성되고, 및 이웃 블록 세트는 파티션 패턴에 기초하여 결정됨 -; 및 비트스트림을 사용하여 비디오 데이터의 현재 블록을 재구성하는 단계를 포함한다.
22.
예 20 또는 예 21의 방법에서, 이웃 블록 세트는 현재 블록과 상이한 부모 블록(parent block )을 갖는다.
23.
예 20 또는 예 21의 방법에서, 파티션 패턴은 수직 이진 파티션 패턴, 수평 이진 파티션 패턴, 수직 삼진 파티션 패턴, 또는 수평 삼진 파티션 패턴 중 적어도 하나를 포함한다.
예 36 내지 40의 추가 실시예는 섹션 4 항목 14에 기재된다.
24.
예 1 내지 42 중 어느 하나 이상의 예를 구현하도록 구성된 프로세서를 포함하는 비디오 처리 장치.
25. 프로세서에 의해서 실행될 때, 프로세서로 하여금 예 1 내지 23 중 어느 하나 이상의 방법을 구현하게 하는 코드가 저장된 컴퓨터 판독 가능한 매체.
도 26은 여기에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 처리 시스템(video processing system)(1300)을 도시하는 블록도이다. 다양한 구현에는 시스템(2600)의 구성 요소의 일부 또는 전부가 포함될 수 있다. 시스템(2600)은 비디오 콘텐츠를 수신하기 위한 입력(2602)을 포함할 수 있다. 비디오 콘텐츠는 원시 또는 압축되지 않은 형식으로 수신될 수 있다(예를 들어, 8 또는 10비트 다중 구성 요소 픽셀 값) 또는 압축 또는 인코딩 된 형식으로 수행될 수 있다. 입력(1902)은 네트워크 인터페이스, 주변 버스 인터페이스 또는 스토리지 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예로는 이더넷, 수동 광 네트워크(PON) 등과 같은 유선 인터페이스와 Wi-Fi 또는 셀룰러 인터페이스와 같은 무선 인터페이스가 있다.
상기 시스템(2600)은 본 문서에 기재된 다양한 코딩 또는 인코딩 방법을 구현할 수 있는 코딩 컴포넌트(coding component)(4104)을 포함할 수 있다. 코딩 컴포넌트(4104)는 입력(2602)에서 코딩 컴포넌트(4104)의 출력으로 비디오의 평균 비트레이트를 감소시킬 수 있고, 비디오의 코딩 된 표현을 생성할 수 있다. 따라서 코딩 기술을 비디오 압축 또는 비디오 트랜스코딩 기술(video transcoding technique)이라고도 한다. 코딩 컴포넌트(2604)의 출력은 구성요소(2606)로 표현되는 바와 같이 연결된 통신을 통해 저장되거나 전송될 수 있다. 입력(2602)에서 수신된 비디오의 저장된 또는 통신된 비트스트림(또는 코딩 된) 표현은 디스플레이 인터페이스(2610)로 전송되는 픽셀 값 또는 디스플레이 가능한 비디오를 생성하기 위해 컴포넌트(2608)에 의해 사용될 수 있다. 비트스트림 표현에서 사용자가 볼 수 있는 비디오를 생성하는 프로세스를 비디오 압축해제(video decompression)라고도 한다. 또한, 특정 비디오 처리 작업을 "코딩" 작업 또는 툴로 지칭하지만, 코딩 툴 또는 작업이 인코더에서 사용되고 코딩 결과를 되돌리는 대응하는 디코딩 툴 또는 작업이 디코더에 의해 수행된다는 점을 이해해야 할 것이다.
주변 버스 인터페이스 또는 디스플레이 인터페이스의 예로는 범용 직렬 버스(USB) 또는 고화질 멀티미디어 인터페이스(HDMI) 또는 디스플레이포트 등이 포함될 수 있다. 스토리지 인터페이스의 예로는 SATA(직렬 첨단 기술 첨부 파일), PCI, IDE 인터페이스 등이 있다. 본 문서에 기재된 기술은 휴대전화, 노트북, 스마트폰 또는 디지털 데이터 처리 및/또는 비디오 디스플레이를 수행할 수 있는 기타 장치와 같은 다양한 전자 기기에 구현될 수 있다.
도 27은 본 기술에 따른 비디오 처리를 위한 방법(2700)의 흐름도 표현이다. 방법(2700)은, 작업(2710)에서, 비디오 블록과 비디오의 비트스트림 표현(bitstream representation) 사이의 변환(conversion)을 위해, 매트릭스 기반 인트라 예측(Matrix-based Intra Prediction)(MIP) 코딩 기술에 대한 정보가 비트스트림 표현에서 코딩 되는 방식(manner)을 결정하는 단계를 포함한다. MIP 코딩 기술을 사용하여, 블록의 예측 블록(prediction block)은 비디오의 이전에 코딩 된 샘플에 대한 매트릭스 벡터 곱 작업(matrix vector multiplication operation)을 수행하는 단계에 기초하여 MIP 코딩 기술을 사용하여 결정된다. 방법(2700)은, 또한 동작(2720)에서, 방법은 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 방식은 MIP 코딩 기술에 대한 정보가, 변환이 예측 오차(prediction error)에 대해 적용되지 않고 예측이 블록을 포함하는 픽처 내의 샘플을 사용하여 생성되는, 양자화된 잔차 블록 차동 펄스 코드 변조(Quantized Residual Block Differential Pulse Code Modulation)(QR-BDPCM) 코딩 기술과 관련하여 코딩됨을 지정한다. 일부 실시예에서, MIP 코딩 기술 또는 QR-BDPCM 코딩 기술 중 하나만이 블록에 적용가능하다. 일부 실시예에서, MIP 코딩 기술이 블록에 적용되는 경우, QR-BDPMC 코딩 기술의 부가 정보는 비트스트림 표현에서 생략된다. 일부 실시예에서, QR-BDPCM 코딩 기술이 블록에 적용되는 경우, MIP 코딩 기술의 부가 정보는 비트스트림 표현에서 생략된다.
일부 실시예에서, MIP 코딩 기술 및 QR-BDPCM 코딩 기술 모두가 블록에 적용가능하다. 일부 실시예에서, 변환은 인트라 예측 프로세스(intra prediction process)에서 MIP 코딩 기술을 사용하는 단계를 포함하고, 블록의 잔차 정보(residual information)는 QR-BDPCM 코딩 기술에 따라 비트스트림 표현으로 코딩 된다.
일부 실시예에서, 방식은 MIP 코딩 기술에 대한 부가 정보가 QR-BDPCM 코딩 기술에 대한 부가 정보 다음에 코딩 되는 것을 특정한다. 일부 실시예에서, MIP 코딩 기술에 대한 부가 정보는 QR-BDPCM 코딩 기술의 사용에 기초하여 코딩 된다. 일부 실시예에서, QR-BDPCM 코딩 기술이 블록에 적용되는 경우 MIP 코딩 기술에 대한 부가 정보는 비트스트림 표현에서 생략된다. 일부 실시예에서, MIP 코딩 기술에 대한 부가 정보는 QR-BDPCM 코딩 기술이 블록에 적용되지 않는 경우 비트스트림 표현에 존재한다.
일부 실시예에서, QR-BDPCM 코딩 기술이 블록에 적용되는 경우, MIP 코딩 기술에 대한 부가 정보의 제1 부분은 비트스트림 표현에서 생략되고 MIP 코딩 기술에 대한 부가 정보의 제2 부분은 비트스트림 표현으로 코딩 된다. 일부 실시예에서, 제1 부분은 MIP 코딩 기술의 하나 이상의 예측 모드를 포함한다. 일부 실시예에서, 제2 부분은 MIP 코딩 기술의 사용에 관한 정보를 포함한다. 일부 실시예에서, QR-BDPCM 코딩 기술이 블록에 적용되는 경우, MIP 코딩 기술의 사용에 대한 정보는 비트스트림 표현에 포함되고 MIP 코딩 기술은 블록에 적용되지 않는다.
일부 실시예에서, 방식은 MIP 코딩 기술에 대한 부가 정보가 QR-BDPCM 코딩 기술에 대한 부가 정보보다 먼저 코딩 된다는 것을 지정한다. 일부 실시예에서, 방식은 QR-BDPCM 코딩 기술에 대한 부가 정보가 블록에 대한 MIP 코딩 기술의 사용에 기초하여 코딩 되는 것을 지정한다. 일부 실시예에서, MIP 코딩 기술이 블록에 적용되는 경우 QR-BDPCM에 대한 부가 정보는 비트스트림 표현에서 생략된다. 일부 실시예에서, MIP 코딩 기술이 블록에 적용되고 MIP 코딩 기술의 예측 모드가 수평 또는 수직 모드에 대응하는 경우, QR-BDPCM 코딩 기술에 대한 부가 정보의 제1 부분은 비트스트림 표현에서 생략되고 QR-BDPCM 코딩 기술에 대한 부가 정보의 제2 부분은 비트스트림 표현으로 코딩 된다. 일부 실시예에서, QR-BDPCM 코딩 기술에 대한 부가 정보의 제1 부분은 QR-BDPCM 코딩 기술의 예측 방향을 포함한다. 일부 실시예에서, QR-BDPCM 코딩 기술에 대한 부가 정보의 제2 부분은 QR-BDPCM 코딩 기술의 사용을 포함한다.
일부 실시예에서, QR-BDPCM 코딩 기술의 부가 정보는: QR-BDPCM 코딩 기술의 사용 표시 또는 예측 방향 중 적어도 하나를 포함한다. 일부 실시예에서, MIP 코딩 기술의 부가 정보는: MIP 코딩 기술의 사용 표시, 루마 샘플에 대한 입력 벡터가 MIP 코딩 기술에 대해 전치되었는지 여부의 표시, 또는 예측 모드의 표시 중 적어도 하나를 포함한다. 일부 실시예에서, MIP 코딩 기술이 블록에 적용되는 경우, QR-BDPCM 코딩 기술의 사용에 대한 정보는 비트스트림 표현에 포함되고 QR-BDPCM 코딩 기술은 블록에 적용되지 않는다.
일부 실시예에서, 방식은 MIP 코딩 기술에 대한 정보가 하나 이상의 인트라 코딩 기술에 대해 코딩 된다는 것을 지정한다. 일부 실시예에서, 방식은 블록이 MIP 코딩 기술을 사용하여 코딩 되는 경우, 블록의 인트라 예측 모드가 하나 이상의 인트라 코딩 기술에 관련된 정보 이후에 코딩 되는 것을 지정한다. 일부 실시예에서, 하나 이상의 인트라 코딩 기술은 QR-BDPCM 코딩 기술, 펄스 코드 변조(Pulse-code Modulation)(PCM) 코딩 기술, 다중 레퍼런스 라인(Multiple Reference Line)(MRL) 코딩 기술, 인트라 서브블록 파티셔닝(Intra Subblock Partitioning)(ISP) 코딩 기술, 광각 인트라 예측 코딩 기술(wide angle intra prediction coding technique), 또는 종래의 인트라 코딩 기술 중 적어도 하나를 포함한다. 일부 실시예에서, 방식은 블록에 대한 MIP 코딩 기술의 인트라 예측 모드의 코딩이 하나 이상의 인트라 코딩 기술을 사용하여 코딩 되는 다른 블록에 대한 인트라 예측 모드의 코딩과 일치함을 지정한다.
일부 실시예에서, MIP 코딩 기술의 인트라 예측 모드의 코딩하는 단계는 인트라 예측 모드가 가장 가능성이 높은 모드(Most Probable Mode)(MPM) 후보 목록 중 하나인지 여부를 결정하는 단계를 포함한다. 일부 실시예에서, 인트라 예측 모드가 가장 가능성이 높은 모드(Most Probable Mode)(MPM) 후보들의 목록 중 하나인지 여부는 비트스트림 표현에서 제1 신택스 요소로서 표현된다. 일부 실시예에서, MIP 코딩 기술의 인트라 예측 모드의 코딩은 인트라 예측 모드가 가장 가능성이 높은 모드(Most Probable Mode)(MPM) 후보 목록 중 하나인 경우 인트라 예측 모드가 MPM 후보 목록에서 제1 후보인지를 결정하는 단계를 더 포함한다. 일부 실시예에서, 인트라 예측 모드가 MPM 후보 목록에서 제1 후보인지 여부는 비트스트림 표현에서 제2 신택스 요소로서 표현된다.
일부 실시예에서, MIP 코딩 기술의 인트라 예측 모드의 코딩은 인트라 예측 모드가 MPM 후보 목록의 제1 후보가 아닌 경우 비트스트림 표현의 제3 신택스 요소로서 인트라 예측 모드의 MPM 인덱스를 코딩 하는 단계를 더 포함한다. 일부 실시예에서, MIP 코딩 기술의 인트라 예측 모드의 코딩은 인트라 예측 모드가 가장 가능성이 높은 모드(Most Probable Mode)(MPM) 후보 목록 중 하나인 경우 인트라 예측 모드가 플라나 모드인지를 결정하는 단계를 더 포함한다. 일부 실시예에서, 인트라 예측 모드가 플라나 모드인지 여부는 비트스트림에서 제4 신택스 요소로서 표현된다. 일부 실시예에서, MIP 코딩 기술의 인트라 예측 모드의 코딩은 인트라 예측 모드가 플라나 모드가 아닌 경우 비트스트림 표현에서 제5 신택스 요소로서 인트라 예측 모드의 MPM 인덱스를 코딩 하는 단계를 더 포함한다. 일부 실시예에서, MIP 코딩 기술의 인트라 예측 모드를 코딩하는 단계는 인트라 예측 모드가 가장 가능성이 높은 모드(Most Probable Mode)(MPM) 후보 목록 중 하나가 아닌 경우 비트스트림 표현에서 제6 신택스 요소로서 허용된 인트라 모드의 세트에서 인트라 예측 모드의 인트라 모드 인덱스를 코딩 하는 단계를 더 포함한다
일부 실시예에서, 제1, 제2, 제3, 제4, 제5, 또는 제6 신택스 요소는 비트스트림 표현에서 조건부로 코딩 된다. 일부 실시예에서, 제1 신택스 요소는 MIP 코딩 기술이 블록에 적용되는 경우 비트스트림 표현에서 생략된다. 일부 실시예에서, 제1 신택스 요소는 intra_luma_ref_idx[x0][y0] == 0이고 블록이 ISP 코딩 기술 또는 MIP 코딩 기술을 사용하여 코딩 되지 않은 경우 비트스트림 표현에 포함된다. 일부 실시예에서, 제1, 제2, 제3, 제4, 제5, 또는 제6 요소의 값은 블록의 차원 또는 블록에 적용 가능한 코딩 기술에 기초한다. 일부 실시예에서, 제3 또는 제5 신택스 요소의 값은 MIP 코딩 기술이 블록에 적용되는 경우 0 또는 1이고, 및 다른 코딩 기술이 블록에 적용되는 경우 제3 또는 제5 신택스 요소의 값은 [0, 4]을 포함하는 범위에 있다. 일부 실시예에서, 제6 신택스 요소의 값은 MIP 코딩 기술이 블록에 적용되지 않는 경우 [0, 60]를 포함하는 범위에 있고, 제6 신택스 요소의 값은, 4x4 차원을 갖는 블록에서, 블록에 MIP 코딩 기술이 적용되는 경우 [0, 31]를 포함하는 범위에 있고, 제6 신택스 요소의 값은, 너비가 8 이하이고 높이가 8 이하를 갖는 블록에서, MIP 코딩 기술이 블록에 적용되는 경우 [0, 15]를 포함하는 범위에 있고, 및 제6 신택스 요소의 값은 차원이 상이한 블록에 MIP 코딩 기술이 적용되는 경우 [0, 8]를 포함하는 범위에 있다.
일부 실시예에서, 하나 이상의 인트라 코딩 기술 중 인트라 코딩 기술에서 사용되는 신택스 요소의 값 또는 컨텍스트는 인트라 코딩 기술에 기초한다. 일부 실시예에서, 상이한 인트라 코딩 기술은 상이한 크기의 다중 MPM 목록을 사용한다. 일부 실시예에서, 상이한 인트라 코딩 기술은 상이한 수의 MPM 후보를 사용한다. 일부 실시예에서, 제1, 제2, 제3, 제4, 제5, 또는 제6 요소는 비트스트림 표현에서 컨텍스트 코딩 되거나 바이패스 코딩 된다.
일부 실시예에서, 하나 이상의 인트라 코딩 기술에 기초하여 하나 이상의 컨텍스트가 선택된다. 일부 실시예에서, 2개의 컨텍스트는 비트스트림 표현에서 신택스 요소를 코딩 하기 위해 사용된다. 일부 실시예에서, 제1 컨텍스트는 종래의 인트라 예측 코딩 기술 및 MIP 코딩 기술에 사용되고, 제2 컨텍스트는 ISP 코딩 기술에 사용된다. 일부 실시예에서, 제1 컨텍스트는 ISP 코딩 기술 및 MIP 코딩 기술에 사용되고, 제2 컨텍스트는 하나 이상의 다른 코딩 기술에 사용된다. 일부 실시예에서, 3개의 컨텍스트는 비트스트림 표현에서 신택스 요소를 코딩 하기 위해 사용된다. 일부 실시예에서, 제1 컨텍스트는 MIP 코딩 기술에 사용되고, 제2 컨텍스트는 ISP 코딩 기술에 사용되며, 제3 컨텍스트는 하나 이상의 다른 코딩 기술에 사용된다.
도 28은 본 기술에 따른 비디오 프로세싱을 위한 방법(2800)의 흐름도 표현이다. 방법(2800)은, 작업(2810)에서, 비디오 블록과 비디오의 비트스트림 표현 사이의 변환을 위해, 블록이 특정 코딩 기술(particular coding technique)을 사용하여 코딩 되는 경우 정확히 2개의 인트라 예측 모드(intra-prediction mode)가 허용되는 것을 결정하는 단계를 포함한다. 방법(4000)은, 동작(4020)에서, 결정하는 단계에 기초하여, 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 특정 코딩 기술은 인트라 서브블록 파티셔닝(Intra Subblock Partitioning)(ISP) 코딩 기술, 다중 레퍼런스 라인(Multiple Reference Line)(MRL) 코딩 기술, 또는 매트릭스 기반 인트라 예측(Intra Prediction)(MIP) 코딩 기술을 포함한다. 일부 실시예에서, 정확히 2개의 인트라 예측 모드는 가장 가능성이 높은 모드(Most-Probable-Mode)(MPM) 후보 목록에서 처음 2개의 모드를 포함한다. 일부 실시예에서, 단지 2개의 인트라 예측 모드의 제1 모드는 플라나 모드이고, 단지 2개의 인트라 예측 모드의 제2 모드는 가장 가능성이 높은 모드(Most-Probable-Mode)(MPM) 후보 목록에서 선택된 모드이다. 일부 실시예들에서, 제2 모드는 MPM 후보들의 목록에서 선택된 비플라나 모드(non-planar mode)이다. 일부 실시예에서, 블록이 ISP 코딩 기술을 사용하여 코딩 되는 경우 MPM 후보 목록의 예측 모드를 나타내는 인덱스는 비트스트림 표현에서 생략된다.
도 29는 본 기술에 따른 비디오 처리를 위한 방법(2900)의 흐름도 표현이다. 방법(2900)은, 동작(2910)에서, 비디오 블록과 비디오의 비트스트림 표현 사이의 변환을 위해, 블록의 샘플 또는 하나 이상의 이전에 코딩 된 블록의 서브파티션(sub-partition)의 샘플을 사용하여 블록의 서브파티션의 예측을 수행하는 것을 결정하는 단계를 포함한다. 블록은 블록이 다중 서브파티션으로 분할되고 이전에 재구성된 서브파티션에 기초하여 각 서브파티션의 예측이 결정되는 인트라 서브블록 파티셔닝(Intra Subblock Partitioning)(ISP) 코딩 기술을 사용하여 코딩 된다. 다중 서브파티션(multiple sub-partition)은 제1 서브파티션과 하나 이상의 내부 서브파티션을 포함한다. 방법(2900)은, 또한 작업(2920)에서,
결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 블록은 수평 방향으로 분할되고, 하나 이상의 내부 서브파티션의 내부 서브파티션은 내부 서브파티션의 위쪽 및 오른쪽에 위치된 샘플을 사용하여 예측된다. 일부 실시예에서, 블록은 수직 방향으로 분할되고, 하나 이상의 내부 서브파티션의 내부 서브파티션은 내부 서브파티션의 왼쪽 및 아래쪽에 위치된 샘플을 사용하여 예측된다. 일부 실시예에서, 블록의 샘플은 내부 서브파티션에 대한 샘플로서 사용되도록 복사된다. 일부 실시예들에서, 내부 서브파티션의 샘플은 블록의 샘플에 기초하여 유도된다. 일부 실시예에서, 내부 서브파티션의 샘플은 인트라 예측 코딩 기술을 사용하여 유도된다. 일부 실시예에서, 내부 서브파티션의 샘플이 블록의 샘플의 프렉셔널 위치(fractional position)에 투영되는 경우 이중선형 보간(bilinear interpolation)이 적용된다. 일부 실시예에서, 내부 서브파티션의 샘플이 블록의 샘플의 프렉셔널 위치로 투영되는 경우, 프렉셔널 위치는 프렉셔널 위치에 가장 가까운 사용 가능한 위치인 정수 위치로 반올림된다. 일부 실시예들에서, 내부 서브파티션의 위쪽 및 오른쪽에 또는 내부 서브파티션의 아래쪽 및 왼쪽에 위치된 샘플은 내부 서브파티션을 예측하기 위해 사용되기 전에 필터링 된다.
도 30은 본 기술에 따른 비디오 처리를 위한 방법(3000)의 흐름도 표현이다. 방법(3000)은, 동작(3010)에서, 비디오의 현재 블록과 비디오의 비트스트림 표현 사이의 변환을 위해, 가장 가능성이 높은 모드(Most Probable Mode)(MPM) 후보 목록의 구성 프로세스에서 검사될 현재 블록의 제1 이웃 블록 세트가 이전에 코딩 된 블록의 제2 이웃 블록 세트와 상이하다는 것을 결정하는 단계를 포함한다. 현재 블록은 여러 자식 블록으로 분할된 부모 블록의 자식 블록이다. 방법(3000)은, 작업(3020)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 현재 블록은 코딩 유닛을 포함한다. 일부 실시예에서, 제1 이웃 블록 세트는 부모 블록이 분할되는 방식에 기초하여 결정된다. 일부 실시예에서, 부모 블록은 수평으로 분할되고, 현재 블록이 부모 블록의 제1 자식 블록이 아닌 경우, 다른 부모 블록의 자식 블록이거나 현재 블록의 위쪽 오른쪽에 있는 위치되는 이웃 블록은 구성 프로세스에서 검사된다. 일부 실시예에서, 부모 블록은 수평으로 분할되고, 현재 블록이 부모 블록의 제1 자식 블록이 아닌 경우, 현재 블록 위에 위치된 이웃 블록의 인트라 예측 모드 X는 비트스트림 표현에서 (X+off) 또는 (X+off)%T로 표시되고, off 및 T는 정수이다.
일부 실시예에서, 부모 블록은 수직으로 분할되고, 현재 블록이 부모 유닛의 제1 자식 블록이 아닌 경우, 다른 부모 블록의 자식 블록이거나 현재 블록의 아래쪽 왼쪽에 위치된 이웃 블록은 구성 프로세스에서 검사된다. 일부 실시예에서, 부모 블록은 수직으로 분할되고, 현재 블록이 부모 블록의 제1 자식 블록이 아닌 경우, 현재 블록의 왼쪽에 위치된 이웃 블록의 인트라 예측 모드 X는 비트스트림 표현에서 (X+off) 또는 (X+off)%T로 표현되고, off 및 T는 정수이다.
일부 실시예에서, 부모 블록의 다수의 자식 블록은 MPM 후보 목록의 구성 프로세스에서 액세스할 수 없다. 일부 실시예에서, 부모 유닛의 다수의 자식 블록의 인트라 예측 모드는 MPM 후보 목록에서 제외된다. 일부 실시예에서, 부모 블록의 다수의 자식 블록의 인트라 예측 모드는 다른 모드로 대체된다.
일부 실시예에서, 부모 블록의 다수의 자식 블록의 인트라 예측 모드의 시그널링은 부모 블록이 분할되는 방식에 기초한다. 일부 실시예에서, 인트라 예측 코딩 기술을 사용하여 코딩 된 자식 블록의 인트라 예측 모드는 비트스트림 표현에서 생략되고, 자식 블록의 인트라 예측 모드는 비플라나 모드인 것으로 간주된다.
도 31은 본 기술에 따른 비디오 프로세싱을 위한 방법(3100)의 흐름도 표현이다. 방법(3100)은, 작업(3110)에서, 방법은 비디오의 슬라이스의 비디오 블록과 비디오의 비트스트림 표현 사이의 변환을 위해, 인트라 서브블록 파티셔닝 툴(intra-subblock partitioning tool)이 슬라이스에 대해 활성화되는지 여부에 기초하여 비디오 블록에 대해 허용되는 파티션 유형을 결정하는 단계를 포함한다. 방법(4000)은, 작업(4020)에서, 결정하는 단계에 기초하여, 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 파티션 유형은 블록의 차원에 기초하고, ISP 코딩 기술이 활성화된 경우 파티션 유형은 비활성화된다. 일부 실시예에서, 파티션 유형은 블록의 차원에 기초하고, 파티션 유형이 활성화된 경우 ISP 기술은 비활성화된다.
일부 실시예에서, 블록의 파티션은 블록의 수평 또는 수직 파티션을 포함한다. 일부 실시예에서, 블록의 파티션은 블록의 이진 또는 삼진 파티션을 포함한다. 일부 실시예에서, 블록의 차원은 4x8 또는 8x4이다. 일부 실시예에서, ISP 코딩 기술이 비활성화되는 경우 비트스트림 표현에서 ISP 코딩 기술의 부가 정보가 생략된다. 일부 실시예에서, 이중 트리 파티션(dual tree partition)이 블록에 대해 활성화된다. 일부 실시예에서, 단일 트리 파티션(single tree partition)이 블록에 대해 활성화된다.
일부 실시예에서, 변환을 수행하는 것은 비디오 블록에 기초하여 비트스트림 표현을 생성하는 단계를 포함한다. 일부 실시예에서, 변환을 수행하는 것은 비트스트림 표현에서 비디오 블록을 생성하는 단계를 포함한다.
개시된 기술의 일부 실시예에는 비디오 처리 툴 또는 모드를 가능하게 하기 위한 결정 또는 결정을 내리는 것이 포함된다. 예를 들어 비디오 처리 툴 또는 모드를 사용하도록 설정하면 인코더가 비디오 블록 처리에서 툴 또는 모드를 사용하거나 구현하지만 툴 또는 모드의 사용에 따라 결과 비트스트림을 반드시 수정할 필요는 없다. 즉, 비디오 블록에서 비디오의 비트스트림 표현으로 변환하면 결정 또는 결정에 따라 활성화될 때 비디오 처리 툴 또는 모드를 사용한다. 또 다른 예에서 비디오 처리 툴 또는 모드를 사용하도록 설정하면 디코더는 비디오 처리 툴 또는 모드에 따라 비트스트림이 수정되었다는 사실을 알고 비트스트림을 처리한다. 즉, 비디오의 비트스트림 표현에서 비디오 블록으로의 변환은 결정 또는 결정에 따라 활성화된 비디오 처리 툴 또는 모드를 사용하여 수행된다.
개시된 기술의 일부 실시예에는 비디오 처리 툴 또는 모드를 비활성화하는 결정 또는 결정을 내리는 단계를 포함한다. 예를 들어, 비디오 처리 툴 또는 모드가 비활성화된 경우, 인코더는 비디오 블록을 비디오의 비트스트림 표현으로 변환하는 데 툴 또는 모드를 사용하지 않는다. 다른 예에서, 비디오 처리 툴 또는 모드가 비활성화된 경우, 디코더는 결정(decision) 또는 결정하는 단계에 기초하여 활성화된 비디오 처리 툴 또는 모드를 사용하여 비트스트림이 수정되지 않았다는 지식으로 비트스트림을 처리할 것이다.
본 문서에 기재된 개시 및 기타 솔루션, 예, 실시예, 모듈 및 기능적 작업은 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있고, 여기에는 이 문서 및 그 구조적 등가물 또는 그 중 하나 이상의 조합으로 구현될 수 있다. 개시된 및 기타 실시예는 하나 이상의 컴퓨터 프로그램 제품으로 구현될 수 있고, 예를 들어, 컴퓨터 프로그램 지침의 하나 이상의 모듈을 컴퓨터 판독 가능한 매체에 인코딩 하여 실행하거나, 데이터 처리 장치의 작동을 제어할 수 있다. 컴퓨터가 읽을 수 있는 매체는 기계가 읽을 수 있는 저장 장치, 기계가 읽을 수 있는 스토리지 기판, 메모리 장치, 기계가 읽을 수 있는 전파 신호에 영향을 미치는 물질의 조성 또는 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치"는 예를 들어, 프로그래밍 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 장치, 장치 및 컴퓨터를 포함한다. 이 장치에는 대응하는 컴퓨터 프로그램에 대한 실행 환경을 만드는 코드(예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 하나 이상의 조합)가 포함될 수 있다. 전파된 신호는 인위적으로 생성된 신호, 예를 들어, 기계에서 생성된 전기, 광학 또는 전자기 신호이며, 이는 적합한 수신기 장치로 전송하기 위한 정보를 인코딩 하기 위해 생성된다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 응용 프로그램, 스크립트 또는 코드라고도 함)은 컴파일 된 언어를 비롯한 모든 형태의 프로그래밍 언어로 작성할 수 있으며 독립 실행형 프로그램 또는 컴퓨팅 환경에서 사용하기에 적합한 모듈, 구성 요소, 서브루틴 또는 기타 유닛으로 모든 형태로 배포할 수 있다. 컴퓨터 프로그램이 파일 시스템의 파일에 반드시 해당하는 것은 아니다. 프로그램은 다른 프로그램 이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트), 대응하는 프로그램에 전념하는 단일 파일 또는 여러 조정된 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 일부를 저장하는 파일)에 저장할 수 있다. 컴퓨터 프로그램은 한 컴퓨터 또는 한 사이트에 위치하거나 여러 사이트에 분산되고 통신 네트워크에 의해 상호 연결된 여러 컴퓨터에서 실행하도록 배포할 수 있다.
이 문서에 설명된 프로세스 및 논리 흐름은 하나 이상의 프로그래밍 가능한 프로세서가 하나 이상의 프로그래밍 가능한 프로세서에서 수행하여 입력 데이터에서 작동하고 출력을 생성하여 기능을 수행할 수 있다. 프로세스 및 로직 흐름도 수행될 수 있고, 장치는 특수 목적 논리 회로, 예를 들어, FPGA(필드 프로그래밍 가능한 게이트 어레이) 또는 ASIC(응용 프로그램 별 집적 회로)로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서에는 예를 들어, 일반 및 특수 목적 마이크로프로세서와 모든 종류의 디지털 컴퓨터의 하나 이상의 프로세서가 포함된다. 일반적으로 프로세서는 읽기 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다에서 지침과 데이터를 받게 된다. 컴퓨터의 필수 요소는 지침과 데이터를 저장하기 위한 하나 이상의 메모리 장치를 수행하기 위한 프로세서이다. 일반적으로 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대량 저장 장치(예를 들어, 자기, 마그네토 광학 디스크 또는 광학 디스크)에서 데이터를 수신하거나 전송하기 위해 작동적으로 결합되거나 결합된다. 그러나 컴퓨터에 이러한 장치가 필요하지 않는다. 컴퓨터 프로그램 지침 및 데이터를 저장하는 데 적합한 컴퓨터 판독 가능한 미디어에는 반도체 메모리 장치, 예를 들어, EPROM, EEPROM 및 플래시 메모리 장치, 자기 디스크, 예를 들어, 내부 하드 디스크 또는 이동식 디스크; 마그네토 광학 디스크; 및 CD ROM 및 DVD-ROM 디스크를 비롯한 모든 형태의 비휘발성 메모리, 미디어 및 메모리 장치가 포함된다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보충되거나 통합될 수 있다.
이 특허 문서에는 많은 세부 사항이 포함되어 있지만, 이는 어떤 주제의 범위 나 청구 될 수 있는 것에 대한 제한으로 해석되어서는 안되며, 오히려 특정 기술의 특정 구현예에 특정할 수 있는 특징에 대한 설명으로 해석되어서는 안 된다. 이 특허 문서에 기재된 특정 특징은 별도의 실시예의 맥락에서 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 문맥상에 기재되는 다양한 특징은 또한 다중 실시예에서 개별적으로 또는 임의의 적합한 서브 조합에서 구현될 수 있다. 더욱이, 상기 특징은 특정 조합에서 작용하는 것으로 설명될 수 있고 심지어 처음에는 주장된 바와 같이, 청구된 조합에서 하나 이상의 특징은 어떤 경우에는 조합에서 절제될 수 있고, 주장된 조합의 서브 조합 또는 변형으로 향할 수 있다.
마찬가지로, 작업은 특정 순서로 도면에 묘사되는 동안, 이러한 작업이 표시된 특정 순서 또는 순차순서로 수행되거나, 모든 일러스트레이션 작업을 수행하여 바람직한 결과를 달성하도록 요구하는 것으로 이해되어서는 안 된다. 더욱이, 본 특허 문서에 기재된 실시예에서 다양한 시스템 성분의 분리는 모든 실시예에서 이러한 분리를 요구하는 것으로 이해되어서는 안 된다.
몇 가지 구현 및 예제만 설명되며 이 특허 문서에 설명되고 설명된 내용에 따라 다른 구현, 개선 및 변형을 만들 수 있다.
Claims (93)
- 비디오 처리 방법에 있어서,
비디오 블록과 상기 비디오의 비트스트림 표현 사이의 변환을 위해, 매트릭스 기반 인트라 예측(MIP) 코딩 기술에 대한 정보가 상기 비트스트림 표현에서 코딩 되는 방식을 결정하는 단계 - 상기 블록의 예측 블록은 상기 비디오의 이전에 코딩 된 샘플에 대한 매트릭스 벡터 곱 작업을 수행하는 단계에 기초하여 상기 MIP 코딩 기술을 사용하여 결정됨 -, 및 상기 결정하는 단계에 기초하여 상기 변환을 수행하는 단계를 포함하는
방법.
- 제1항에 있어서,
상기 방식은 상기 MIP 코딩 기술에 대한 상기 정보가, 변환이 예측 오차에 대해 적용되지 않고 예측이 상기 블록을 포함하는 픽처 내의 샘플을 사용하여 생성되는, 양자화된 잔차 블록 차동 펄스 코드 변조(QR-BDPCM) 코딩 기술과 관련하여 코딩 됨을 지정하는
방법.
- 제2항에 있어서,
상기 MIP 코딩 기술 또는 상기 QR-BDPCM 코딩 기술 중 하나만 상기 블록에 적용가능한
방법.
- 제3항에 있어서,
상기 블록에 상기 MIP 코딩 기술을 적용하는 경우, 상기 QR-BDPCM 코딩 기술의 부가 정보가 상기 비트스트림 표현에서 생략되는
방법.
- 제3항에 있어서,
상기 블록에 QR-BDPCM 코딩 기술을 적용한 경우, 상기 MIP 코딩 기술의 부가 정보가 상기 비트스트림 표현에서 생략되는
방법.
- 제2항에 있어서,
상기 MIP 코딩 기술 및 상기 QR-BDPCM 코딩 기술은 모두 상기 블록에 적용 가능한
방법.
- 제6항에 있어서,
상기변환은 인트라 예측 프로세스에서 상기 MIP 코딩 기술을 사용하는 단계를 포함하고, 상기 블록의 잔차 정보는 상기 QR-BDPCM 코딩 기술에 따라 상기 비트스트림 표현에서 코딩 되는
방법.
- 제2항 내지 제7항 중 어느 한 항에 있어서,
상기 방식은 상기 MIP 코딩 기술에 대한 부가 정보가 상기 QR-BDPCM 코딩 기술에 대한 부가 정보 이후에 코딩 되도록 지정하는
방법.
- 제8항에 있어서,
상기 MIP 코딩 기술에 대한 부가 정보는 상기 QR-BDPCM 코딩 기술의 사용에 기초하여 코딩 되는
방법.
- 제9항에 있어서,
상기 블록에 QR-BDPCM 코딩 기술이 적용된 경우, 상기 MIP 코딩 기술에 대한 부가 정보가 상기 비트스트림 표현에서 생략되는
방법.
- 제9항에 있어서,
상기 블록에 QR-BDPCM 코딩 기술이 적용되지 않는 경우, 상기 MIP 코딩 기술에 대한 부가 정보가 상기 비트스트림 표현에 존재하는
방법.
- 제9항에 있어서,
상기 블록에 QR-BDPCM 코딩 기술이 적용되는 경우, 상기 MIP 코딩 기술에 대한 부가 정보의 제1 부분은 상기 비트스트림 표현에서 생략되고, 상기 MIP 코딩 기술에 대한 부가 정보의 제2 부분은 상기 비트스트림 표현에서 코딩 되는
방법.
- 제12항에 있어서,
상기 제1 부분은 상기 MIP 코딩 기술의 하나 이상의 예측 모드를 포함하는
방법.
- 제12항에 있어서,
상기 제2 부분은 상기 MIP 코딩 기술의 사용에 관한 정보를 포함하는
방법.
- 제9항에 있어서,
상기 블록에 상기 QR-BDPCM 코딩 기술이 적용된 경우, 상기 MIP 코딩 기술의 사용에 관한 정보가 상기 비트스트림 표현에 포함되고, 상기 MIP 코딩 기술은 상기 블록에 적용되지 않는
방법.
- 제2항 내지 제7항 중 어느 한 항에 있어서,
상기 방식은 상기 MIP 코딩 기술에 대한 부가 정보가 상기 QR-BDPCM 코딩 기술에 대한 부가 정보 이전에 코딩 되도록 지정하는
방법.
- 제16항에 있어서,
상기 방식은 상기 블록에 대한 상기 MIP 코딩 기술의 사용에 기초하여 상기 QR-BDPCM 코딩 기술에 대한 부가 정보가 코딩 되도록 지정하는
방법.
- 제17항에 있어서,
상기 블록에 상기 MIP 코딩 기술이 적용된 경우, 상기 QR-BDPCM에 대한 부가 정보는 상기 비트스트림 표현에서 생략되는
방법.
- 제17항에 있어서,
상기 블록에 상기 MIP 코딩 기술이 적용되고, 상기 MIP 코딩 기술의 예측 모드가 수평 또는 수직 모드에 대응하는 경우, 상기 QR-BDPCM 코딩에 대한 부가 정보의 제1 부분은 상기 비트스트림 표현에서 생략되고 상기 QR-BDPCM 코딩 기술에 대한 부가 정보의 제2 부분은 상기 비트스트림 표현에서 코딩 되는
방법.
- 제19항에 있어서,
상기 QR-BDPCM 코딩 기술에 대한 부가 정보의 제1 부분은 상기 QR-BDPCM 코딩 기술의 예측 방향을 포함하는
방법.
- 제19항에 있어서,
상기 QR-BDPCM 코딩 기술에 대한 부가 정보의 제2 부분은 상기 QR-BDPCM 코딩 기술의 사용을 포함하는
방법.
- 제2항 내지 제21항 중 어느 한 항에 있어서,
상기 QR-BDPCM 코딩 기술의 부가 정보는: 상기 QR-BDPCM 코딩 기술의 사용의 표시 또는 예측 방향 중 적어도 하나를 포함하는
방법.
- 제2항 내지 제22항 중 어느 한 항에 있어서,
상기 MIP 코딩 기술의 부가 정보는: 상기 MIP 코딩 기술의 사용 표시, 루마 샘플에 대한 입력 벡터가 상기 MIP 코딩 기술에 대해 전치되었는지 여부의 표시, 또는 예측 모드의 표시 중 적어도 하나를 포함하는
방법.
- 제17항에 있어서,
상기 MIP 코딩 기술이 상기 블록에 적용되는 경우, 상기 QR-BDPCM 코딩 기술의 사용에 관한 정보가 상기 비트스트림 표현에 포함되고, 상기 QR-BDPCM 코딩 기술은 상기 블록에 적용되지 않는
방법.
- 제1항에 있어서,
상기 방식은 상기 MIP 코딩 기술에 대한 정보가 하나 이상의 인트라 코딩 기술에 대해 코딩 되는 것을 지정하는
방법.
- 제25항에 있어서,
상기 방식은, 상기 블록이 상기 MIP 코딩 기술을 사용하여 코딩 되는 경우, 상기 블록의 인트라 예측 모드가 상기 하나 이상의 인트라 코딩 기술에 관련된 정보 이후에 코딩 되는 것을 지정하는
방법.
- 제25항 또는 제26항에 있어서,
상기 하나 이상의 인트라 코딩 기술은 적어도 QR-BDPCM 코딩 기술, 펄스 코드 변조(PCM) 코딩 기술, 다중 레퍼런스 라인(MRL) 코딩 기술, 인트라 서브블록 파티셔닝(ISP) 코딩 기술, 광각 인트라 예측 코딩 기술, 또는 기존의 인트라 코딩 기술을 포함하는
방법.
- 제25항 내지 제27항 중 어느 한 항에 있어서,
상기 방식은 상기 블록에 대한 상기 MIP 코딩 기술의 인트라 예측 모드의 코딩이 상기 하나 이상의 인트라 코딩 기술을 사용하여 코딩 되는 다른 블록에 대한 인트라 예측 모드의 코딩과 일치함을 지정하는
방법.
- 제28항에 있어서,
상기 MIP 코딩 기술의 인트라 예측 모드의 코딩은 상기 인트라 예측 모드가 가장 가능성이 높은 모드(MPM) 후보 목록 중 하나인지 여부를 결정하는 단계를 포함하는
방법.
- 제29항에 있어서,
상기 인트라 예측 모드가 가장 가능성이 높은 모드(MPM) 후보 목록 중 하나인지 여부는 상기 비트스트림 표현에서 제1 신택스 요소로 표현되는
방법.
- 제29항 또는 제30항에 있어서,
상기 인트라 예측 모드가 가장 가능성이 높은 모드(MPM) 후보의 목록 중 하나인 경우, 상기 MIP 코딩 기술의 인트라 예측 모드의 코딩은 상기 인트라 예측 모드가 MPM 후보 목록에서 제1 후보인지를 결정하는 단계를 더 포함하는
방법.
- 제31항에 있어서,
상기 인트라 예측 모드가 MPM 후보 목록에서 제1 후보인지 여부는 상기 비트스트림 표현에서 제2 신택스 요소로 표현되는
방법.
- 제31항 또는 제32항에 있어서,
상기 MIP 코딩 기술의 인트라 예측 모드의 코딩은 상기 인트라 예측 모드가 MPM 후보 목록의 상기 제1 후보가 아닌 경우 상기 비트스트림 표현의 제3 신택스 요소로서 상기 인트라 예측 모드의 MPM 인덱스를 코딩 하는 단계를 더 포함하는
방법.
- 제29항 또는 제30항에 있어서,
상기 MIP 코딩 기술의 인트라 예측 모드의 코딩은 상기 인트라 예측 모드가 가장 가능성이 높은 모드(MPM) 후보 목록 중 하나인 경우 상기 인트라 예측 모드가 플라나 모드인지를 결정하는 단계를 더 포함하는
방법.
- 제34항에 있어서,
상기 인트라 예측 모드가 상기 플라나 모드인지 여부는 제4 신택스 요소로서 상기 비트스트림에 표현되는
방법.
- 제34항 또는 제35항에 있어서,
상기 MIP 코딩 기술의 인트라 예측 모드의 코딩은 상기 인트라 예측 모드가 상기 플라나 모드가 아닌 경우 상기 비트스트림 표현에서 제5 신택스 요소로서 상기 인트라 예측 모드의 MPM 인덱스를 코딩 하는 단계를 더 포함하는
방법.
- 제29항 내지 제36항 중 어느 한 항에 있어서,
상기 MIP 코딩 기술의 인트라 예측 모드의 코딩은 상기 인트라 예측 모드가 가장 가능성이 높은 모드 후보 목록 중 하나가 아닌 경우 상기 비트스트림 표현에서 제6 신택스 요소로서 허용된 인트라 모드의 세트에서 상기 인트라 예측 모드의 인트라 모드 인덱스를 코딩 하는 단계를 더 포함하는
방법.
- 제29항 내지 제37항 중 어느 한 항에 있어서,
상기 제1, 상기 제2, 상기 제3, 상기 제4, 상기 제5, 또는 상기 6 신택스 요소는 상기 비트스트림 표현에서 조건부로 코딩 되는
방법.
- 제38항에 있어서,
상기 제1 신택스 요소는 상기 MIP 코딩 기술이 상기 블록에 적용되는 경우 상기 비트스트림 표현에서 생략되는
방법.
- 제38항에 있어서,
상기 제1 신택스 요소는 intra_luma_ref_idx[x0][y0] == 0이고 상기 블록이 ISP 코딩 기술 또는 상기 MIP 코딩 기술을 사용하여 코딩 되지 않은 경우 상기 비트스트림 표현에 포함되는
방법.
- 제29항 내지 제40항 중 어느 한 항에 있어서,
상기 제1, 상기 제2, 상기 제3, 상기 제4, 상기 제5, 또는 상기 6 요소의 값은 상기 블록의 차원 또는 상기 블록에 적용 가능한 코딩 기술에 기초하는
방법.
- 제41항에 있어서,
상기 MIP 코딩 기술이 블록에 적용된 경우 상기 제3 또는 상기 제5 신택스 요소의 값은 0 또는 1이고, 다른 코딩 기술이 적용된 경우 상기 제3 또는 상기 제5 신택스 요소의 값은 [0, 4]을 포함하는 범위에 있는
방법.
- 제41항 또는 제42항에 있어서,
상기 제6 신택스 요소의 값은 상기 MIP 코딩 기술이 상기 블록에 적용되지 않는 경우 [0, 60]를 포함하는 범위에 있고,
상기 제6 신택스 요소의 값은, 4x4 차원을 갖는 상기 블록에서, 상기 MIP 코딩 기술이 상기 블록에 적용되는 경우 [0, 31]를 포함하는 범위에 있고,
상기 제6 신택스 요소의 값은, 너비가 8 이하이고 높이가 8 이하를 갖는 상기 블록에서, 상기 MIP 코딩 기술이 상기 블록에 적용되는 경우 [0, 15]를 포함하는 범위에 있고, 및
상기 제6 신택스 요소의 값은 상기 MIP 코딩 기술이 상이한 차원을 갖는 상기 블록에 적용되는 경우 [0, 8]를 포함하는 범위에 있는
방법.
- 제29항 내지 제43항 중 어느 한 항에 있어서,
상기 하나 이상의 인트라 코딩 기술 중 인트라 코딩 기술에서 사용되는 신택스 요소의 값 또는 컨텍스트는 상기 인트라 코딩 기술에 기초하는
방법.
- 제44항에 있어서,
상이한 인트라 코딩 기술은 상이한 크기의 다중 MPM 목록을 사용하는
방법.
- 제44항에 있어서,
상이한 인트라 코딩 기술은 상이한 수의 MPM 후보를 사용하는
방법.
- 제25항 내지 제46항 중 어느 한 항에 있어서,
상기 제1, 상기 제2, 상기 제3, 상기 제4, 상기 제5, 또는 상기 제6 요소는 상기 비트스트림 표현에서 컨텍스트 코딩 되거나 바이패스 코딩 되는
방법.
- 제47항에 있어서,
하나 이상의 컨텍스트는 상기 하나 이상의 인트라 코딩 기술에 기초하여 선택되는
방법.
- 제48항에 있어서,
2개의 컨텍스트는 상기 비트스트림 표현에서 신택스 요소를 코딩 하기 위해 사용되는 방법.
- 제49항에 있어서,
제1 컨텍스트는 기존의 상기 인트라 예측 코딩 기술 및 상기 MIP 코딩 기술에 사용되고, 제2 컨텍스트는 상기 ISP 코딩 기술에 사용되는
방법.
- 제49항에 있어서,
제1 컨텍스트는 상기 ISP 코딩 기술 및 상기 MIP 코딩 기술에 사용되고, 제2 컨텍스트는 하나 이상의 다른 코딩 기술에 사용되는
방법.
- 제48항에 있어서,
3개의 컨텍스트는 상기 비트스트림 표현에서 신택스 요소를 코딩 하기 위해 사용되는
방법.
- 제52항에 있어서,
제1 컨텍스트는 상기 MIP 코딩 기술에 사용되고, 제2 컨텍스트는 상기 ISP 코딩 기술에 사용되며, 제3 컨텍스트는 하나 이상의 다른 코딩 기술에 사용되는
방법.
- 비디오 처리 방법에 있어서,
비디오 블록과 상기 비디오의 비트스트림 표현 사이의 변환을 위해, 상기 블록이 특정 코딩 기술을 사용하여 코딩 되는 경우 정확히 2개의 인트라 예측 모드가 허용되는 것을 결정하는 단계; 및 상기 결정하는 단계에 기초하여 상기 변환을 수행하는 단계를 포함하는
방법.
- 제54항에 있어서,
상기 특정 코딩 기술은 인트라 서브블록 파티셔닝(ISP) 코딩 기술, 다중 레퍼런스 라인(MRL) 코딩 기술, 또는 매트릭스 기반 인트라 예측(MIP) 코딩 기술을 포함하는
방법.
- 제54항 또는 제55항에 있어서,
상기 정확히 2개의 인트라 예측 모드는 가장 가능성이 높은 모드(MPM) 후보 목록에서 처음 2개의 모드를 포함하는
방법.
- 제54항 또는 제55항에 있어서,
단지 상기 2개의 인트라 예측 모드의 제1 모드는 플라나 모드이고, 단지 상기 2개의 인트라 예측 모드의 제2 모드는 가장 가능성 높은 모드(MPM) 후보의 목록에서 선택된 모드인
방법.
- 제57항에 있어서,
상기 제2 모드는 상기 MPM 후보 목록에서 선택된 비플라나 모드인
방법.
- 제56항 내지 제58항 중 어느 한 항에 있어서,
상기 블록이 상기 ISP 코딩 기술을 사용하여 코딩 되는 경우, 상기 MPM 후보 목록에서 예측 모드를 나타내는 인덱스는 상기 비트스트림 표현에서 생략되는
방법.
- 비디오 처리 방법에 있어서,
비디오 블록과 상기 비디오의 비트스트림 표현 사이의 변환을 위해, 상기 블록의 샘플 또는 블록의 하나 이상의 이전에 코딩 된 서브파티션의 샘플을 사용하여 블록의 서브파티션의 예측을 수행하도록 결정하는 단계 - 상기 블록은 상기 블록이 다중 서브파티션으로 분할되고 이전에 재구성된 서브파티션에 기초하여 각 서브파티션의 예측이 결정되는 인트라 서브블록 파티셔닝(ISP) 코딩 기술을 사용하여 코딩 되고, 상기 다중 서브파티션은 제1 서브파티션과 하나 이상의 내부 서브파티션을 포함함 -; 및 상기 결정하는 단계에 기초하여 상기 변환을 수행하는 단계를 포함하는
방법.
- 제60항에 있어서,
상기 블록은 수평 방향으로 분할되고, 하나 이상의 내부 서브파티션의 상기 내부 서브파티션은 상기 내부 서브파티션의 위쪽 및 오른쪽에 위치된 샘플을 사용하여 예측되는
방법.
- 제60항에 있어서,
상기 블록은 수직 방향으로 분할되고, 상기 하나 이상의 내부 서브파티션의 내부 서브파티션은 상기 내부 서브파티션의 왼쪽 및 아래쪽에 위치된 샘플을 사용하여 예측되는
방법.
- 제60항 내지 제62항 중 어느 한 항에 있어서,
상기 블록의 샘플은 내부 서브파티션에 대한 샘플로서 사용되도록 복사되는
방법.
- 제60항 내지 제63항 중 어느 한 항에 있어서,
내부 서브파티션의 샘플은 상기 블록의 샘플에 기초하여 유도되는
방법.
- 제64항에 있어서,
상기 내부 서브파티션의 샘플은 인트라 예측 코딩 기술을 사용하여 유도되는
방법.
- 제64항에 있어서,
상기 내부 서브파티션의 샘플이 상기 블록의 샘플의 프렉셔널 위치에 투영되는 경우 이중선형 보간이 적용되는
방법.
- 제64항에 있어서,
내부 서브파티션의 샘플이 상기 블록의 샘플의 프렉셔널 위치에 투영되는 경우, 상기 프렉셔널 위치는 상기 프렉셔널 위치에 가장 가까운 사용 가능한 위치인 정수 위치로 반올림되는
방법.
- 제60항 내지 제67항 중 어느 한 항에 있어서,
상기 내부 서브파티션의 위쪽 및 오른쪽 또는 상기 내부 서브파티션의 아래쪽 및 왼쪽에 위치된 상기 샘플은 내부 서브파티션을 예측하기 위해 사용되기 전에 필터링 되는
방법.
- 비디오 처리 방법에 있어서,
비디오의 비디오의 현재 블록과 상기 비디오의 비트스트림 표현 사이의 변환을 위해, 가장 가능성이 높은 모드(MPM) 후보 목록의 구성 프로세스에서 검사될 상기 현재 블록의 제1 이웃 블록 세트가 이전에 코딩 된 블록의 제2 이웃 블록 세트와 상이하다는 것을 결정하는 단계 - 상기 현재 블록은 다수의 자식 블록으로 분할된 부모 블록의 자식 블록임 -; 및 상기 결정하는 단계에 기초하여 상기 변환을 수행하는 단계를 포함하는
방법.
- 제69항에 있어서,
상기 현재 블록은 코딩 유닛을 포함하는
방법.
- 제69항 또는 제70항에 있어서,
상기 제1 이웃 블록 세트는 상기 부모 블록이 분할되는 방식에 기초하여 결정되는 방법.
- 제71항에 있어서,
상기 부모 블록은 수평으로 분할되고, 상기 현재 블록이 상기 부모 블록의 제1 자식 블록이 아닌 경우, 다른 부모 블록의 자식 블록이거나 상기 현재 블록의 위쪽 오른쪽에 있는 위치되는 이웃 블록은 상기 구성 프로세스에서 검사되는
방법.
- 제71항에 있어서,
상기 부모 블록은 수평으로 분할되고, 상기 현재 블록이 상기 부모 블록의 제1 자식 블록이 아닌 경우, 상기 현재 블록 위에 위치된 이웃 블록의 인트라 예측 모드 X는 비트스트림 표현에서 (X+off) 또는 (X+off)%T로 표시되고, off 및 T는 정수인
방법.
- 제71항에 있어서,
상기 부모 블록은 수직으로 분할되고, 상기 현재 블록이 상기 부모 유닛의 제1 자식 블록이 아닌 경우, 다른 부모 블록의 자식 블록이거나 상기 현재 블록의 아래쪽 및 왼쪽에 위치된 이웃 블록은 상기 구성 프로세스에서 검사되는
방법.
- 제71항에 있어서,
상기 부모 블록은 수직으로 분할되고, 상기 현재 블록이 상기 부모 블록의 제1 자식 블록이 아닌 경우, 상기 현재 블록의 왼쪽에 위치된 이웃 블록의 인트라 예측 모드 X는 상기 비트스트림 표현에서 (X+off) 또는 (X+off)%T로 표현되고, off 및 T는 정수인
방법.
- 제69항 내지 제75항 중 어느 한 항에 있어서,
상기 부모 블록의 다수의 자식 블록은 MPM 후보 목록의 구성 프로세스에서 액세스 할 수 없는
방법.
- 제69항 내지 제75항 중 어느 한 항에 있어서,
상기 부모 유닛의 다수의 자식 블록의 인트라 예측 모드는 MPM 후보 목록에서 제외되는
방법.
- 제69항 내지 제75항 중 어느 한 항에 있어서,
상기 부모 블록의 다수의 자식 블록의 인트라 예측 모드는 상이한 모드로 대체되는
방법.
- 제78항에 있어서,
상기 부모 블록의 다수의 자식 블록의 인트라 예측 모드의 시그널링은 상기 부모 블록이 분할되는 방식에 기초하는
방법.
- 제79항에 있어서,
인트라 예측 코딩 기술을 사용하여 코딩 된 자식 블록의 인트라 예측 모드는 상기 비트스트림 표현에서 생략되고, 상기 자식 블록의 인트라 예측 모드는 비플라나 모드인 것으로 간주되는
방법.
- 비디오 처리 방법에 있어서,
비디오의 슬라이스의 비디오 블록과 상기 비디오의 비트스트림 표현 사이의 변환을 위해, 인트라 서브블록 파티셔닝 툴이 상기 슬라이스에 대해 활성화되는지 여부에 기초하여 상기 비디오 블록에 대해 허용되는 파티션 유형을 결정하는 단계; 및 상기 결정하는 단계에 기초하여 상기 변환을 수행하는 단계를 포함하는
방법.
- 제81항에 있어서,
파티션 유형은 상기 블록의 차원에 기초하고, 상기 ISP 코딩 기술이 활성화되는 경우 파티션 유형은 비활성화되는
방법.
- 제81항에 있어서,
파티션 유형은 상기 블록의 차원에 기초하고, 상기 파티션 유형이 활성화된 경우 상기 ISP 기술이 비활성화되는
방법.
- 제81항 내지 제83항 중 어느 한 항에 있어서,
상기 블록의 파티션은 상기 블록의 수평 또는 수직 파티션을 포함하는
방법.
- 제81항 내지 제84항 중 어느 한 항에 있어서,
상기 블록의 파티션은 상기 블록의 이진 또는 삼진 파티션을 포함하는
방법.
- 제81항 내지 제85항 중 어느 한 항에 있어서,
상기 블록의 차원은 4x8 또는 8x4인
방법.
- 제81항 내지 제86항 중 어느 한 항에 있어서,
상기 ISP 코딩 기술이 비활성화되는 경우, 상기 ISP 코딩 기술의 부가 정보가 상기 비트스트림 표현에서 생략되는
방법.
- 제81항 내지 제87항 중 어느 한 항에 있어서,
이중 트리 파티션이 블록에 대해 활성화되는
방법.
- 제81항 내지 제87항 중 어느 한 항에 있어서,
단일 트리 파티션이 블록에 대해 활성화되는
방법.
- 제1항 내지 제89항 중 어느 한 항에 있어서,
상기 변환을 수행하는 단계는 상기 비디오 블록에 기초하여 상기 비트스트림 표현을 생성하는 단계를 포함하는
방법.
- 제1항 내지 제89항 중 어느 한 항에 있어서,
상기 변환을 수행하는 단계는 상기 비트스트림 표현에서 상기 비디오 블록을 생성하는 단계를 포함하는
방법.
- 제1항 내지 제91항 중 어느 한 항 이상을 구현하도록 구성된 프로세서를 포함하는 비디오 처리 장치.
- 프로세서에 의해서 실행될 때, 상기 프로세서로 하여금 제1항 내지 제91항 중 어느 하나 이상의 방법을 구현하게 하는 코드가 저장된 컴퓨터 판독 가능한 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNPCT/CN2019/086489 | 2019-05-11 | ||
CN2019086489 | 2019-05-11 | ||
PCT/CN2020/089559 WO2020228663A1 (en) | 2019-05-11 | 2020-05-11 | Interactions among multiple intra coding methods |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220006055A true KR20220006055A (ko) | 2022-01-14 |
Family
ID=73289833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217035466A KR20220006055A (ko) | 2019-05-11 | 2020-05-11 | 다중 인트라 코딩 방법 사이의 상호 작용 |
Country Status (6)
Country | Link |
---|---|
US (3) | US11509904B2 (ko) |
EP (1) | EP3949403A4 (ko) |
JP (1) | JP7522135B2 (ko) |
KR (1) | KR20220006055A (ko) |
CN (2) | CN117176965A (ko) |
WO (1) | WO2020228663A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024039209A1 (ko) * | 2022-08-17 | 2024-02-22 | 주식회사 윌러스표준기술연구소 | 비디오 신호 처리 방법 및 이를 위한 장치 |
USD1025393S1 (en) * | 2021-08-30 | 2024-04-30 | Bionlifescience Co., Ltd. | Container for specimen storage |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113747157A (zh) * | 2019-03-09 | 2021-12-03 | 杭州海康威视数字技术股份有限公司 | 进行编码和解码的方法、解码端、编码端和*** |
JP2022534999A (ja) * | 2019-05-31 | 2022-08-04 | インターデジタル ヴイシー ホールディングス, インコーポレイテッド | 暗黙的多重変換選択の変換選択 |
CA3240498A1 (en) * | 2019-06-19 | 2020-12-24 | Lg Electronics Inc. | Coding of information about transform kernel set |
CA3121563C (en) | 2019-06-25 | 2024-06-11 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Mapping method, encoder, decoder, and computer storage medium |
US11863752B2 (en) * | 2020-12-28 | 2024-01-02 | Qualcomm Incorporated | Most probable modes for intra prediction for video coding |
US20220337875A1 (en) * | 2021-04-16 | 2022-10-20 | Tencent America LLC | Low memory design for multiple reference line selection scheme |
TW202349956A (zh) * | 2022-04-08 | 2023-12-16 | 聯發科技股份有限公司 | 在視訊編解碼系統中使用解碼器導出的幀內預測的方法和裝置 |
WO2024146432A1 (en) * | 2023-01-03 | 2024-07-11 | Douyin Vision Co., Ltd. | Method, apparatus, and medium for video processing |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1285216C (zh) * | 2001-11-16 | 2006-11-15 | 株式会社Ntt都科摩 | 图像编码方法和装置、图像译码方法和装置 |
US8311095B2 (en) * | 2002-07-17 | 2012-11-13 | Onmobile Global Limited | Method and apparatus for transcoding between hybrid video codec bitstreams |
KR101091792B1 (ko) | 2007-04-17 | 2011-12-08 | 노키아 코포레이션 | 피드백 기반 스케일러블 비디오 코딩 |
KR20120016991A (ko) * | 2010-08-17 | 2012-02-27 | 오수미 | 인터 프리딕션 방법 |
US8693795B2 (en) * | 2010-10-01 | 2014-04-08 | Samsung Electronics Co., Ltd. | Low complexity secondary transform for image and video compression |
CN102075763A (zh) * | 2010-12-31 | 2011-05-25 | 北京大学深圳研究生院 | 用于视频编码器的帧内子块预测电路及其实现方法 |
US9894353B2 (en) * | 2011-06-13 | 2018-02-13 | Sun Patent Trust | Method and apparatus for encoding and decoding video using intra prediction mode dependent adaptive quantization matrix |
JP2014523697A (ja) * | 2011-06-28 | 2014-09-11 | サムスン エレクトロニクス カンパニー リミテッド | イントラ予測を伴うビデオ符号化方法及びその装置、ビデオ復号化方法及びその装置 |
US9525861B2 (en) | 2012-03-14 | 2016-12-20 | Qualcomm Incorporated | Disparity vector prediction in video coding |
US9479778B2 (en) * | 2012-08-13 | 2016-10-25 | Qualcomm Incorporated | Device and method for coding video information using base layer motion vector candidate |
CN104838658B (zh) | 2012-12-14 | 2018-07-20 | 高通股份有限公司 | 具有不对称空间分辨率的纹理和深度视图分量当中的内部视图运动预测 |
US9615090B2 (en) | 2012-12-28 | 2017-04-04 | Qualcomm Incorporated | Parsing syntax elements in three-dimensional video coding |
CN105409215B (zh) * | 2013-01-11 | 2018-10-09 | 华为技术有限公司 | 深度预测模式选择方法及装置 |
US9369708B2 (en) | 2013-03-27 | 2016-06-14 | Qualcomm Incorporated | Depth coding modes signaling of depth data for 3D-HEVC |
US9516306B2 (en) | 2013-03-27 | 2016-12-06 | Qualcomm Incorporated | Depth coding modes signaling of depth data for 3D-HEVC |
US9918105B2 (en) * | 2014-10-07 | 2018-03-13 | Qualcomm Incorporated | Intra BC and inter unification |
US10097839B2 (en) * | 2014-12-19 | 2018-10-09 | Qualcomm Incorporated | Palette mode for subsampling format |
EP3254463A4 (en) | 2015-02-06 | 2018-02-21 | Microsoft Technology Licensing, LLC | Skipping evaluation stages during media encoding |
US10178403B2 (en) * | 2015-06-23 | 2019-01-08 | Qualcomm Incorporated | Reference picture list construction in intra block copy mode |
US11394972B2 (en) * | 2015-08-19 | 2022-07-19 | Lg Electronics Inc. | Method and device for encoding/decoding video signal by using optimized conversion based on multiple graph-based model |
US10999595B2 (en) * | 2015-11-20 | 2021-05-04 | Mediatek Inc. | Method and apparatus of motion vector prediction or merge candidate derivation for video coding |
KR20190015216A (ko) * | 2016-05-05 | 2019-02-13 | 브이아이디 스케일, 인크. | 인트라 코딩을 위한 제어 포인트 기반의 인트라 방향 표현 |
EP3453174A1 (en) | 2016-05-06 | 2019-03-13 | VID SCALE, Inc. | Method and system for decoder-side intra mode derivation for block-based video coding |
US11356693B2 (en) * | 2016-09-29 | 2022-06-07 | Qualcomm Incorporated | Motion vector coding for video coding |
US10462462B2 (en) * | 2016-09-29 | 2019-10-29 | Qualcomm Incorporated | Motion vector difference coding technique for video coding |
US10341659B2 (en) * | 2016-10-05 | 2019-07-02 | Qualcomm Incorporated | Systems and methods of switching interpolation filters |
US10931969B2 (en) * | 2017-01-04 | 2021-02-23 | Qualcomm Incorporated | Motion vector reconstructions for bi-directional optical flow (BIO) |
US10701366B2 (en) * | 2017-02-21 | 2020-06-30 | Qualcomm Incorporated | Deriving motion vector information at a video decoder |
US10805641B2 (en) * | 2017-06-15 | 2020-10-13 | Qualcomm Incorporated | Intra filtering applied together with transform processing in video coding |
KR102653715B1 (ko) * | 2017-07-03 | 2024-04-01 | 브이아이디 스케일, 인크. | 양방향 광학 흐름에 기반한 모션 보상 예측 |
US11297344B2 (en) * | 2017-08-29 | 2022-04-05 | SK Telecom., Ltd. | Motion compensation method and device using bi-directional optical flow |
RU2762873C2 (ru) * | 2017-12-15 | 2021-12-23 | ЭлДжи ЭЛЕКТРОНИКС ИНК. | Способ кодирования изображений на основе преобразования и устройство для этого |
CN112956195A (zh) * | 2018-09-25 | 2021-06-11 | 数字洞察力有限公司 | 用于基于帧间模式对图像进行编码或解码的方法和装置 |
CN112970259B (zh) * | 2018-11-05 | 2024-06-28 | 北京字节跳动网络技术有限公司 | 视频处理中具有细化的帧间预测 |
WO2020207492A1 (en) * | 2019-04-12 | 2020-10-15 | Beijing Bytedance Network Technology Co., Ltd. | Interaction between matrix-based intra prediction and other coding tools |
KR20220013941A (ko) * | 2019-05-10 | 2022-02-04 | 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. | 행렬 기반 인트라 예측 |
KR102655582B1 (ko) * | 2019-05-10 | 2024-04-09 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 비디오 처리를 위한 다중 이차 변환 행렬 |
-
2020
- 2020-05-11 JP JP2021565705A patent/JP7522135B2/ja active Active
- 2020-05-11 CN CN202311244758.5A patent/CN117176965A/zh active Pending
- 2020-05-11 KR KR1020217035466A patent/KR20220006055A/ko unknown
- 2020-05-11 EP EP20806889.0A patent/EP3949403A4/en active Pending
- 2020-05-11 WO PCT/CN2020/089559 patent/WO2020228663A1/en unknown
- 2020-05-11 CN CN202080035376.XA patent/CN113812155B/zh active Active
-
2021
- 2021-10-15 US US17/502,258 patent/US11509904B2/en active Active
-
2022
- 2022-08-25 US US17/895,490 patent/US11876971B2/en active Active
-
2023
- 2023-12-14 US US18/540,215 patent/US20240155129A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USD1025393S1 (en) * | 2021-08-30 | 2024-04-30 | Bionlifescience Co., Ltd. | Container for specimen storage |
WO2024039209A1 (ko) * | 2022-08-17 | 2024-02-22 | 주식회사 윌러스표준기술연구소 | 비디오 신호 처리 방법 및 이를 위한 장치 |
Also Published As
Publication number | Publication date |
---|---|
WO2020228663A1 (en) | 2020-11-19 |
CN113812155A (zh) | 2021-12-17 |
EP3949403A4 (en) | 2022-06-22 |
US11876971B2 (en) | 2024-01-16 |
CN117176965A (zh) | 2023-12-05 |
CN113812155B (zh) | 2023-10-27 |
US11509904B2 (en) | 2022-11-22 |
US20230096273A1 (en) | 2023-03-30 |
EP3949403A1 (en) | 2022-02-09 |
US20240155129A1 (en) | 2024-05-09 |
JP7522135B2 (ja) | 2024-07-24 |
US20220038706A1 (en) | 2022-02-03 |
JP2022531435A (ja) | 2022-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102655582B1 (ko) | 비디오 처리를 위한 다중 이차 변환 행렬 | |
EP4358514A2 (en) | Video signal processing method and device | |
KR20220006055A (ko) | 다중 인트라 코딩 방법 사이의 상호 작용 | |
JP2022526991A (ja) | ビデオ処理方法、装置、記憶媒体、及び記録媒体 | |
JP7403555B2 (ja) | イントラコーディングモードにおけるマトリクスの導出 | |
JP2022533190A (ja) | アップサンプリングを使用した行列ベースのイントラ予測 | |
KR102648569B1 (ko) | 변환 스킵 모드의 블록 치수 설정들 | |
CN113826405B (zh) | 多个颜色分量的变换量化旁路模式的使用 | |
CN113841402A (zh) | 视频编解码中大块的变换设计 |