KR20210129647A - 팔레트 모드 사용 지시의 독립적인 코딩 - Google Patents
팔레트 모드 사용 지시의 독립적인 코딩 Download PDFInfo
- Publication number
- KR20210129647A KR20210129647A KR1020217025264A KR20217025264A KR20210129647A KR 20210129647 A KR20210129647 A KR 20210129647A KR 1020217025264 A KR1020217025264 A KR 1020217025264A KR 20217025264 A KR20217025264 A KR 20217025264A KR 20210129647 A KR20210129647 A KR 20210129647A
- Authority
- KR
- South Korea
- Prior art keywords
- mode
- block
- indication
- palette
- intra
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 236
- 238000003672 processing method Methods 0.000 claims abstract description 42
- 238000012545 processing Methods 0.000 claims description 31
- 238000006243 chemical reaction Methods 0.000 abstract description 18
- 230000008569 process Effects 0.000 description 110
- 241000023320 Luma <angiosperm> Species 0.000 description 106
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 106
- 239000013598 vector Substances 0.000 description 63
- 238000013139 quantization Methods 0.000 description 41
- 230000011664 signaling Effects 0.000 description 41
- 230000009466 transformation Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 29
- 238000010276 construction Methods 0.000 description 27
- 238000009795 derivation Methods 0.000 description 22
- 238000001914 filtration Methods 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 13
- 230000009977 dual effect Effects 0.000 description 10
- 230000001419 dependent effect Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 238000013507 mapping Methods 0.000 description 8
- 230000003044 adaptive effect Effects 0.000 description 7
- 238000003780 insertion Methods 0.000 description 7
- 230000037431 insertion Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000015654 memory Effects 0.000 description 6
- 239000010432 diamond Substances 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 229910003460 diamond Inorganic materials 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 2
- 101100129500 Caenorhabditis elegans max-2 gene Proteins 0.000 description 2
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- FZEIVUHEODGHML-UHFFFAOYSA-N 2-phenyl-3,6-dimethylmorpholine Chemical compound O1C(C)CNC(C)C1C1=CC=CC=C1 FZEIVUHEODGHML-UHFFFAOYSA-N 0.000 description 1
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 229910000831 Steel Inorganic materials 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000010959 steel Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
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/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/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- 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/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- 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/186—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 a colour or a chrominance component
-
- 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/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/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)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
팔레트 모드 코딩을 위한 장치, 시스템 및 방법이 기술된다. 비디오 프로세싱 방법은 비디오의 비디오 영역의 블록 및 상기 비디오의 비트스트림 표현(bitstream representation) 간의 변환을 수행하는 단계를 포함한다. 상기 비트스트림 표현은, 팔레트 모드의 사용의 제1 지시가 상기 블록에 대하여 시그널링되는지를 명시하는 제1 포맷 규칙 및 상기 블록에 대한 예측 모드의 사용의 제2 지시에 대해 상기 제1 지시의 위치를 명시하는 제2 포맷 규칙에 따라 프로세싱된다.
Description
관련 출원의 상호 참조
파리 협약에 따른 적용가능한 특허법 및/또는 규칙에 따라, 본 출원은 2019년 2월 24일에 제출된 국제 특허 출원 번호 PCT/CN2019/075994, 2019년 3월 8일에 제출된 국제 특허 출원 번호 PCT/CN2019/077454, 2019년 4월 9일에 제출된 국제 특허 출원 번호 PCT/CN2019/081863, 2019년 7월 20일에 제출된 국제 특허 출원 번호 PCT/CN2019/096933, 2019년 7월 23일에 제출된 국제 특허 출원 번호 PCT/CN2019/097288, 2019년 7월 29일에 제출된 국제 특허 출원 번호 PCT/CN2019/098204에 대한 우선권과 혜택을 적시에 청구하기 위하여 만들어졌다. 법 하의 모든 목적을 위해, 상술한 출원의 전체 개시물은 본 출원의 개시의 일부로서 참고로 통합된다.
본 문서는 비디오 및 이미지 코딩 및 디코딩 기술에 관한 것이다.
디지털 비디오는 인터넷 및 다른 디지털 통신 네트워크 상에서 가장 큰 대역폭 사용을 차지한다. 비디오를 수신하고 디스플레이할 수 있는 연결된 사용자 장치의 수가 증가함에 따라, 디지털 비디오 사용에 대한 대역폭 요구가 계속 증가할 것으로 기대된다.
개시된 기술은 팔레트 모드 코딩이 사용되는 비디오 또는 이미지 디코더 또는 인코더 실시예에 의해 사용될 수 있다.
하나의 예시적인 형태에 있어서, 비디오 프로세싱 방법이 개시된다. 방법은 비디오의 비디오 영역의 블록 및 상기 비디오의 비트스트림 표현(bitstream representation) 간의 변환을 수행하는 단계를 포함한다. 상기 비트스트림 표현은, 팔레트 모드의 사용의 제1 지시가 상기 블록에 대하여 시그널링되는지를 명시하는 제1 포맷 규칙 및 상기 블록에 대한 예측 모드의 사용의 제2 지시에 대해 상기 제1 지시의 위치를 명시하는 제2 포맷 규칙에 따라 프로세싱된다.
하나의 예시적인 형태에 있어서, 비디오 프로세싱 방법이 개시된다. 방법은, 비디오의 비디오 영역의 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 블록의 적어도 팔레트 모드를 포함하는 하나 이상의 허용된 예측 모드에 기초하여 예측 모드를 결정하는 단계를 포함한다. 상기 팔레트 모드의 사용의 지시는 상기 예측 모드에 따라 결정된다. 방법은 또한 상기 하나 이상의 허용된 예측 모드에 기초하여 상기 변환을 수행하는 단계를 포함한다.
또다른 예시적인 형태에 있어서, 비디오 프로세싱 방법이 개시된다. 방법은 비디오의 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다. 상기 비트스트림 표현은, 서로 의존적으로 시그널링되는 팔레트 모드의 사용의 제1 지시 및 인트라 블록 카피(IBC) 모드의 사용의 제2 지시를 명시하는 포맷 규칙에 따라 프로세싱된다.
또다른 예시적인 형태에 있어서, 비디오 프로세싱 방법이 개시된다. 방법은 비디오의 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 블록의 차원에 기초하여 상기 비트스트림 표현에서의 팔레트 모드의 사용의 지시의 존재를 결정하는 단계 및 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
또다른 예시적인 형태에 있어서, 비디오 프로세싱 방법이 개시된다. 방법은 비디오의 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 블록의 차원에 기초하여 상기 비트스트림 표현에서의 IBC 모드의 사용의 지시의 존재를 결정하는 단계 및 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
또다른 예시적인 형태에 있어서, 비디오 프로세싱 방법이 개시된다. 방법은 비디오의 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 블록을 포함하는 비디오 영역의 제2 지시에 기초하여 팔레트 모드가 상기 블록에 대하여 허용되는지를 결정하는 단계 및 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
또다른 예시적인 형태에 있어서, 비디오 프로세싱 방법이 개시된다. 방법은 비디오의 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 블록을 포함하는 비디오 영역의 제2 지시에 기초하여 IBC 모드가 상기 블록에 대하여 허용되는지를 결정하는 단계 및 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
또다른 예시적인 형태에 있어서, 비디오 프로세싱 방법이 개시된다. 방법은 팔레트 모드가 변환 유닛, 코딩 블록 또는 영역을 프로세싱하는데 사용될 것임을 결정하는 단계 - 팔레트 모드의 사용은 예측 모드와 별도로 코딩됨 - 및 팔레트 모드를 이용하여 변환 유닛, 코딩 블록 또는 영역의 추가의 프로세싱을 수행하는 단계를 포함한다.
또다른 예시적인 형태에 있어서, 비디오 프로세싱 방법이 개시된다. 방법은, 현재 비디오 블록에 대해, 팔레트 모드의 하나의 팔레트 엔트리와 연관된 샘플이 상기 현재 비디오 블록과 연관된 제2 비트 뎁스와 다른 제1 비트 뎁스를 갖는다는 것을 결정하는 단계, 및 적어도 하나의 팔레트 엔트리에 기초하여 상기 현재 비디오 블록의 추가의 프로세싱을 수행하는 단계를 포함한다.
또다른 예시적인 형태에 있어서, 다른 비디오 프로세싱 방법이 개시된다. 방법은, 비디오의 픽처의 현재 비디오 블록, 및 인트라 블록 카피 모드가 변환에 사용되는지에 관한 정보가 비트스트림 표현에서 시그널링되거나 현재 비디오 블록의 코딩 조건에 기초하여 유도되는 비디오의 표현 간의 변환을 수행하는 단계를 포함하고, 인트라 블록 카피 모드는 픽처의 또다른 비디오 블록으로부터 현재 비디오 블록을 코딩하는 것을 포함한다.
또다른 예시적인 형태에 있어서, 다른 비디오 프로세싱 방법이 개시된다. 방법은 디블록킹 필터가 비디오의 픽처의 현재 비디오 블록의 변환 동안 적용되는지를 결정하는 단계를 포함하고, 상기 현재 비디오 블록은 현재 비디오 블록의 전체 픽셀보다 적은 대표적인 샘플 값을 이용하여 표현되는 팔레트 모드 코딩을 이용하여 현재 비디오 블록이 코딩됨 -; 및 디블록킹 필터가 적용되는 것으로 결정되는 경우 디블록킹 필터가 적용되도록 변환을 수행하는 단계를 포함하는 방법을 포함한다.
또다른 예시적인 형태에 있어서, 다른 비디오 프로세싱 방법이 개시된다. 방법은 비디오의 픽처의 현재 비디오 블록과 상기 비디오의 비트스트림 표현 간의 변환 동안 사용될 양자화 또는 역 양자화 프로세스를 결정하는 단계 - 현재 비디오 블록은 현재 비디오 블록의 전체 픽셀보다 적은 대표적인 샘플 값을 이용하여 표현되는 팔레트 모드 코딩을 이용하여 코딩됨 -; 및 양자화 또는 역 양자화 프로세스의 결정에 기초하여 변환을 수행하는 단계를 포함한다.
또다른 예시적인 형태에 있어서, 다른 비디오 프로세싱 방법이 개시된다. 방법은 다수 비디오 블록을 포함하는 비디오의 현재 비디오 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 위해, 현재 비디오 블록이 팔레트 코딩 블록인 것을 결정하는 단계; 상기 결정에 기초하여, 현재 비디오 블록이 인트라 코딩 블록인 것으로 간주함으로써 MPM(most probable mode)의 리스트 구성 프로세스를 수행하는 단계; 및 상기 리스트 구성 프로세스의 결과에 기초하여 상기 변환을 수행하는 단계를 포함하고, 상기 팔레트 코딩 블록은 팔레트 또는 대표 샘플 값을 이용하여 코딩 또는 디코딩된다.
또다른 예시적인 형태에 있어서, 다른 비디오 프로세싱 방법이 개시된다.
또다른 예시적인 형태에 있어서, 다른 비디오 프로세싱 방법이 개시된다. 방법은 다수 비디오 블록을 포함하는 비디오의 현재 비디오 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 위해, 현재 비디오 블록이 팔레트 코딩 블록인 것을 결정하는 단계; 상기 결정에 기초하여 현재 비디오 블록이 넌-인트라 코딩 블록인 것으로 간주함으로써 MPM(most probable mode)의 리스트 구성 프로세스를 수행하는 단계; 및 상기 리스트 구성 프로세스의 결과에 기초하여 상기 변환을 수행하는 단계를 포함하고, 상기 팔레트 코딩 블록은 팔레트 또는 대표 샘플 값을 이용하여 코딩 또는 디코딩된다.
또다른 예시적인 형태에 있어서, 다른 비디오 프로세싱 방법이 개시된다. 방법은 다수 비디오 블록을 포함하는 비디오의 현재 비디오 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 위해, 현재 비디오 블록이 팔레트 코딩 블록인 것을 결정하는 단계; 상기 결정에 기초하여 현재 비디오 블록이 이용불가능한 블록인 것으로 간주함으로써 리스트 구성 프로세스를 수행하는 단계; 및 상기 리스트 구성 프로세스의 결과에 기초하여 상기 변환을 수행하는 단계를 포함하고, 상기 팔레트 코딩 블록은 팔레트 또는 대표 샘플 값을 이용하여 코딩 또는 디코딩된다.
또다른 예시적인 형태에 있어서, 다른 비디오 프로세싱 방법이 개시된다. 방법은 현재 비디오 블록 및 현재 비디오 블록의 비트스트림 표현 간의 변환 동안, 현재 비디오 블록이 팔레트 코딩 블록임을 결정하는 단계; 현재 비디오 블록이 팔레트 코딩 블록인 것에 기초하여, 상기 변환에 사용되는 컨텍스트 코딩 빈의 범위를 결정하는 단계; 및 상기 컨텍스트 코딩 빈의 범위에 기초하여 상기 변환을 수행하는 단계를 포함한다.
또다른 예시적인 형태에 있어서, 상술한 방법은 프로세서를 포함하는 비디오 인코더 장치에 의해 구현될 수 있다.
다른 예시적인 양상에 있어서, 이들 방법은 프로세서 실행가능 명령의 형태로 구현되고 컴퓨터 판독가능 프로그램 매체에 저장될 수 있다.
이 양상 및 다른 양상이 본 문서에 더 기술될 수 있다.
도 1은 인트라 블록 카피의 예를 나타내는 도면이다.
도 2는 팔레트 모드로 코딩된 블록의 예를 나타내는 도면이다.
도 3은 팔레트 예측자를 사용하여 팔레트 엔트리를 시그널링하는 예를 나타내는 도면이다.
도 4는 수평 및 수직 횡단 스캔의 예를 나타내는 도면이다.
도 5는 팔레트 인덱스의 코딩 예를 나타내는 도면이다.
도 6은 비디오 프로세싱 장치의 예를 나타내는 블록도이다.
도 7은 비디오 인코더의 예시적인 구현의 블록도이다.
도 8은 비디오 프로세싱 방법의 예의 플로우차트이다.
도 9는 필터 온/오프 결정 및 강/약 필터 선택에 관련된 픽셀들의 예를 나타내는 도면이다.
도 10은 4개의 모드의 이진화의 예를 나타내는 도면이다.
도 11은 4개의 모드의 이진화의 예를 나타내는 도면이다.
도 12는 67개의 인트라 모드 예측 방향의 예를 나타내는 도면이다.
도 13은 인접 비디오 블록의 예를 나타내는 도면이다.
도 14는 ALF 필터 형상(크로마: 5?5 다이아몬드, 루마: 7?7 다이아몬드)의 예를 나타내는 도면이다.
도 15(a)는 수직 그래디언트에 대한 서브샘플링된 라플라시안 산출의 예를 나타내는 도면이다.
도 15(b)는 수평 그래디언트에 대한 서브샘플링된 라플라시안 산출의 예를 나타내는 도면이다.
도 15(c)는 대각선 그래디언트에 대한 서브샘플링된 라플라시안 산출의 예를 나타내는 도면이다.
도 15(d)는 대각선 그래디언트에 대한 서브샘플링된 라플라시안 산출의 예를 나타내는 도면이다.
도 16은 가상 경계에서의 수정된 블록 분류의 예를 나타내는 도면이다.
도 17은 가상 경계에서의 루마 성분에 대한 수정된 ALF 필터링의 예를 나타내는 도면이다.
도 18은 EO에서의 픽셀 분류를 위한 4개의 1-D 3픽셀 패턴의 예를 나타내는 도면이다.
도 19는 4개의 밴드가 함께 그룹화되고 그 시작 밴드 위치에 의해 표현되는 예를 나타내는 도면이다.
도 20은 CIIP 가중치 유도에 사용되는 상단 및 좌측 인접 블록의 예를 나타내는 도면이다.
도 21은 LMCS(luma mapping with chroma scaling) 아키텍쳐의 예를 나타내는 도면이다.
도 22는 4?4 블록에 대한 스캐닝 순서의 예를 나타내는 도면이다.
도 23는 4?4 블록에 대한 스캐닝 순서의 다른 예를 나타내는 도면이다.
도 24는 개시된 기술이 구현될 수 있는 예시적인 비디오 프로세싱 시스템의 블록도이다.
도 25는 본 기술에 따른 비디오 프로세싱 방법의 플로우차트이다.
도 26은 본 기술에 따른 다른 비디오 프로세싱 방법의 다른 플로우차트이다.
도 27은 본 기술에 따른 다른 비디오 프로세싱 방법의 다른 플로우차트이다.
도 28은 본 기술에 따른 다른 비디오 프로세싱 방법의 다른 플로우차트이다.
도 29은 본 기술에 따른 다른 비디오 프로세싱 방법의 다른 플로우차트이다.
도 30은 본 기술에 따른 다른 비디오 프로세싱 방법의 다른 플로우차트이다.
도 31은 본 기술에 따른 다른 비디오 프로세싱 방법의 다른 플로우차트이다.
도 2는 팔레트 모드로 코딩된 블록의 예를 나타내는 도면이다.
도 3은 팔레트 예측자를 사용하여 팔레트 엔트리를 시그널링하는 예를 나타내는 도면이다.
도 4는 수평 및 수직 횡단 스캔의 예를 나타내는 도면이다.
도 5는 팔레트 인덱스의 코딩 예를 나타내는 도면이다.
도 6은 비디오 프로세싱 장치의 예를 나타내는 블록도이다.
도 7은 비디오 인코더의 예시적인 구현의 블록도이다.
도 8은 비디오 프로세싱 방법의 예의 플로우차트이다.
도 9는 필터 온/오프 결정 및 강/약 필터 선택에 관련된 픽셀들의 예를 나타내는 도면이다.
도 10은 4개의 모드의 이진화의 예를 나타내는 도면이다.
도 11은 4개의 모드의 이진화의 예를 나타내는 도면이다.
도 12는 67개의 인트라 모드 예측 방향의 예를 나타내는 도면이다.
도 13은 인접 비디오 블록의 예를 나타내는 도면이다.
도 14는 ALF 필터 형상(크로마: 5?5 다이아몬드, 루마: 7?7 다이아몬드)의 예를 나타내는 도면이다.
도 15(a)는 수직 그래디언트에 대한 서브샘플링된 라플라시안 산출의 예를 나타내는 도면이다.
도 15(b)는 수평 그래디언트에 대한 서브샘플링된 라플라시안 산출의 예를 나타내는 도면이다.
도 15(c)는 대각선 그래디언트에 대한 서브샘플링된 라플라시안 산출의 예를 나타내는 도면이다.
도 15(d)는 대각선 그래디언트에 대한 서브샘플링된 라플라시안 산출의 예를 나타내는 도면이다.
도 16은 가상 경계에서의 수정된 블록 분류의 예를 나타내는 도면이다.
도 17은 가상 경계에서의 루마 성분에 대한 수정된 ALF 필터링의 예를 나타내는 도면이다.
도 18은 EO에서의 픽셀 분류를 위한 4개의 1-D 3픽셀 패턴의 예를 나타내는 도면이다.
도 19는 4개의 밴드가 함께 그룹화되고 그 시작 밴드 위치에 의해 표현되는 예를 나타내는 도면이다.
도 20은 CIIP 가중치 유도에 사용되는 상단 및 좌측 인접 블록의 예를 나타내는 도면이다.
도 21은 LMCS(luma mapping with chroma scaling) 아키텍쳐의 예를 나타내는 도면이다.
도 22는 4?4 블록에 대한 스캐닝 순서의 예를 나타내는 도면이다.
도 23는 4?4 블록에 대한 스캐닝 순서의 다른 예를 나타내는 도면이다.
도 24는 개시된 기술이 구현될 수 있는 예시적인 비디오 프로세싱 시스템의 블록도이다.
도 25는 본 기술에 따른 비디오 프로세싱 방법의 플로우차트이다.
도 26은 본 기술에 따른 다른 비디오 프로세싱 방법의 다른 플로우차트이다.
도 27은 본 기술에 따른 다른 비디오 프로세싱 방법의 다른 플로우차트이다.
도 28은 본 기술에 따른 다른 비디오 프로세싱 방법의 다른 플로우차트이다.
도 29은 본 기술에 따른 다른 비디오 프로세싱 방법의 다른 플로우차트이다.
도 30은 본 기술에 따른 다른 비디오 프로세싱 방법의 다른 플로우차트이다.
도 31은 본 기술에 따른 다른 비디오 프로세싱 방법의 다른 플로우차트이다.
본 문서는, 압축해제되거나 디코딩된 디지털 비디오 또는 이미지의 품질을 개선하기 위해 이미지 또는 비디오 비트스트림의 디코더에 의해 사용될 수 있는 다양한 기술을 제공한다. 간결함을 위해, 여기에 사용되는“비디오”는 일련의 픽처(전통적으로 비디오라 함) 및 개별 이미지를 모두 포함한다. 게다가, 비디오 인코더는 또한 추가의 인코딩을 위해 사용되는 디코딩된 프레임을 재구성하기 위하여 인코딩 프로세스 동안 이 기술들을 구현할 수 있다.
본 문서에서 이해의 편의를 위해 섹션 표제가 사용되지만 이는 실시예 및 기술을 해당 섹션으로 한정하는 것은 아니다. 따라서, 하나의 섹션의 실시예는 다른 섹션의 실시예와 결합될 수 있다.
1. 요약
본 문서는 비디오 코딩 기술에 관한 것이다. 구체적으로, 비디오 코딩에서의 기본 칼라 기반 표현을 채용하는 팔레트 코딩에 관한 것이다. 이것은 고효율 비디오 코딩(HEVC)과 같은 기존의 비디오 코딩 표준 또는 완결될 표준(Versatile Video coding)에 적용될 수 있다. 이는 또한 미래의 비디오 코딩 표준 또는 비디오 코덱에 적용될 수 있다.
2. 초기 토론
비디오 코딩 표준은 주로 잘 알려진 ITU-T 및 ISO/IEC 표준의 개발을 통해 발전해왔다. ITU-T는 H.261 및 H.263을 제작하였고, ISO/IEC는 MPEG-1 및 MPEG-4 Visual을 제작하였고, 이들 두 조직은 공동으로 H.262/MPEG-2 Video 및 H.264/MPEG-4 Advanced Video Coding (AVC) 및 H.265/HEVC 표준을 제작하였다. H.262 이후, 비디오 코딩 표준은 시간 예측 및 변환 코딩이 이용되는 하이브리드 비디오 코딩 구조에 기초한다. HEVC 이후의 미래의 비디오 코딩 기술을 탐구하기 위하여, 2015년에 VCEG 및 MPEG가 공동으로 JVET(Joint Video Exploration Team)를 설립하였다. 그 후, 많은 새로운 방법이 JVET에 의해 채택되어 왔고, JEM(Joint Exploration Model)이라는 참조 소프트웨어에 적용되었다. 2018년 4월, VCEG (Q6/16) 및 ISO/IEC JTC1 SC29/WG11 (MPEG) 간의 JVET(Joint Video Expert Team)가 HEVC에 비해 50% 비트레이트 감소를 목표로 하는 VVC 표준에 작업하도록 조직되었다.
도 7은 비디오 인코더의 예시적인 구현의 블록도이다. 도 7은 인코더 구현예가 내장 피드백 경로를 갖는 것을 보여주며, 비디오 인코더는 또한 (다음의 비디오 데이터의 인코딩에 사용될 비디오 데이터의 압축된 표현을 재구성하는) 비디오 디코딩 기능을 수행한다.
2.1 인트라 블록 카피
현재 픽처 참조라 불리우는 인트라 블록 카피(IBC)는 HEVC-SCC(HEVC Screen Content Coding extensions) 및 현재 VVC 테스트 모델(VTM-4.0)에 채택되었다. IBC는 움직임 보상의 개념을 인터 프레임 코딩으로부터 인트라 프레임 코딩으로 확장한다. 도 1에 도시된 바와 같이, 현재 블록은, IBC가 적용될 때 동일한 픽처 내의 참조 블록에 의해 예측된다. 참조 블록 내의 샘플들은 현재 블록이 코딩 또는 디코딩되기 전에 이미 재구성되어 있어야 한다. IBC가 대부분의 카메라 캡처 시퀀스에 대해 그렇게 효율적이지 않지만, 화면 콘텐츠에 대해 상당한 코딩 이득을 보여준다. 그 이유는 화면 콘텐츠 픽처에 아이콘 및 텍스트 문자 등의 반복 패턴이 많기 때문이다. IBC는 이들 반복 패턴 간의 중복(redundancy)을 효율적으로 제거할 수 있다. HEVC-SCC에서, 현재 픽처를 그 참조 픽처로서 선택하면, 인터 코딩된 코딩 유닛(CU)이 IBC를 적용할 수 있다. MV는 이 경우 블록 벡터(BV)로 재명명되고, BV는 항상 정수 픽셀 정밀도를 갖는다. 메인 프로파일 HEVC와 호환되도록, 현재 픽처는 DPB(Decoded Picture Buffer)에서 “장기(long-term)” 참조 픽처로서 마킹된다. 유사하게, 다수의 뷰/3D 비디오 코딩 표준에서, 시점간(inter-view) 참조 픽처가 또한 “장기” 참조 픽처로 마킹되는 것에 주의해야 한다.
BV를 추종하여 그 참조 블록을 찾으면, 참조 블록을 카피함으로써 예측이 생성될 수 있다. 잔차(residual)는 원본 신호로부터 참조 픽셀들을 뺌으로써 얻어질 수 있다. 변환(transform) 및 양자화는 다른 코딩 모드에서처럼 적용될 수 있다.
그러나, 참조 블록이 픽처의 밖에 있거나 현재 블록과 중첩되거나 재구성된 영역의 밖에 있거나 일부 제약조건에 의해 제한된 유효 영역 밖에 있으면, 픽셀 값의 일부 또는 전부가 정의되지 않는다. 기본적으로, 이러한 문제를 처리하는 2가지 솔루션이 있다. 하나는, 예를 들어, 비트스트림 적합성(bitstream conformance)에서 이러한 상황을 허용하지 않는 것이고, 다른 하나는 정의되지 않은 픽셀 값들에 패딩을 적용하는 것이다. 다음의 하위 세션은 솔루션들을 상세히 설명한다.
2.2 HEVC 화면 컨텐츠 코딩 확장에서의 IBC
HEVC의 화면 컨텐츠 확장에서, 블록이 현재 픽처를 참조로 사용하면, 다음의 사양 텍스트(볼드체)로 표시된 바와 같이, 전체 참조 블록이 이용가능한 재구성 영역 내에 있음이 보장되어야 한다.
변수(offsetX 및 offsetY)는 다음과 같이 유도된다:
참조 픽처가 현재 픽처일 때, 루마 움직임 벡터(mvLX)가 다음의 제약조건을 따라야 하는 것은 비트스트림 적합성의 요구사항이다:
-
6.4.1 절에 명시된 바와 같이 z-스캔 순서 블록 이용가능성에 대한 유도 프로세스가 입력으로서 ( xCb, yCb )와 동일하게 설정된 ( xCurr, yCurr )과
와 동일하게 설정된 인접 루마 위치( xNbY, yNbY )로 인보크(invoke)되면, 출력은 참(TRUE)과 같아야 한다.
-
6.4.1 절에 명시된 바와 같이 z-스캔 순서 블록 이용가능성에 대한 유도 프로세스가 입력으로서 ( xCb, yCb )와 동일하게 설정된 ( xCurr, yCurr )과 ( xPb + (mvLX[ 0 ] >> 2) + nPbW 1 + offsetX, yPb + (mvLX[ 1 ] >> 2) + nPbH 1 + offsetY)와 동일하게 설정된 인접 루마 위치( xNbY, yNbY )로 인보크되면, 출력은 참(TRUE)과 같아야 한다.
- 다음 조건 중의 하나 또는 둘다가 참이어야 한다:
- ( mvLX[ 0 ] >> 2 ) + nPbW + xB1 + offsetX 의 값은 0보다 작거나 같다.
- ( mvLX[ 1 ] >> 2 ) + nPbH + yB1 + offsetY의 값은 0보다 작거나 같다.
-
다음의 조건이 참이어야 한다:
따라서, 참조 블록이 현재 블록과 중첩되거나 참조 블록이 픽처 밖에 있는 경우는 발생하지 않는다. 참조 또는 예측 블록을 패딩할 필요가 없다.
따라서, 참조 블록이 현재 블록과 중첩되거나 참조 블록이 픽처 밖에 있는 경우는 발생하지 않는다. 참조 또는 예측 블록을 패딩할 필요가 없다.
2.3 VVC 테스트 모델에서의 IBC
현재 VVC 테스트 모델(예를 들어, VTM-4.0 설계)에서, 전체 참조 블록은 현재 코딩 트리 유닛(CTU)과 함께 있어야 하고 현재 블록과 중첩되지 않는다. 따라서, 참조 또는 예측 블록을 패딩할 필요가 없다. IBC 플래그는 현재 CU의 예측 모드로서 코딩된다. 따라서, 각 CU에 대하여 3개의 예측 모드, 즉, MODE_INTRA, MODE_INTER 및 MODE_IBC가 존재한다.
2.3.1 IBC 머지 모드
IBC 머지 모드에서, IBC 머지 후보 리스트 내의 엔트리를 나타내는 인덱스는 비트스트림으로부터 파싱된다. IBC 머지 리스트의 구성은 다음의 단계 순서에 따라 요약될 수 있다:
1 단계: 공간적 후보의 유도
2 단계: HMVP 후보의 삽입
3 단계: 쌍별(pairwise) 평균 후보의 삽입
공간적 머지 후보의 유도에서, 도면에 도시된 위치에 위치한 후보들로부터 최대 4개의 머지 후보가 선택된다. 유도의 순서는 A1, B1, B0, A0 및 B2이다. 위치(B2)는, 위치(A1, B1, B0, A0)의 임의의 PU가 이용가능하지 않거나 (예를 들어, 다른 슬라이스 또는 타일에 속하기 때문) IBC 모드로 코딩되지 않을 때에만 고려된다. 위치(A1)의 후보가 추가된 후, 나머지 후보의 삽입은 중복성 체크를 거치게 되고, 이는 동일한 움직임 정보를 갖는 후보가 리스트로부터 제외되어 코딩 효율이 개선되도록 한다. 계산 복잡성을 줄이기 위해, 언급된 중복성 체크에서 모든 가능한 후보쌍이 고려되는 것은 아니다. 대신, 도면에 도시된 화살표로 링크된 쌍만이 고려되고, 중복성 체크에 사용되는 해당 후보가 동일한 움직임 정보를 갖지 않는 경우에만 후보가 리스트에 추가된다.
공간적 후보의 삽입 후, IBC 머지 리스트 크기가 여전히 최대 IBC 머지 리스트 크기보다 작으면, HMVP 테이블로부터의 IBC 후보들이 삽입된다. HMVP 후보들을 삽입할 때 중복성 체크가 수행된다.
마지막으로, 쌍별(pairwise) 평균 후보들이 IBC 머지 리스트에 삽입된다.
머지 후보에 의해 식별된 참조 블록이 픽처 밖에 있거나 현재 블록과 중첩되거나 재구성된 영역 밖에 있거나 일부 제약 조건에 의해 제한된 유효 영역 밖에 있으면, 머지 후보는 무효 머지 후보라 불리운다.
무효 머지 후보는 IBC 머지 리스트에 삽입될 수 있다.
2.3.2 IBC AMVP 모드
IBC AMVP 모드에서, IBC AMVP 리스트 내의 엔트리를 나타내는 AMVP 인덱스는 비트스트림으로부터 파싱된다. IBC AMVP 리스트의 구성은 다음의 단계 순서에 따라 요약될 수 있다.
1 단계: 공간적 후보의 유도
이용가능한 후보가 발견될 때까지 A0, A1을 체크한다.
이용가능한 후보가 발견될 때까지 B0, B1, B2를 체크한다.
2 단계: HMVP 후보의 삽입
3 단계: 제로 후보의 삽입
공간적 후보의 삽입 후에, IBC AMVP 리스트 크기가 여전히 최대 IBC AMVP 리스트 크기보다 작으면, HMVP 테이블로부터의 IBC 후보들이 삽입될 수 있다.
마지막으로, 제로 후보들이 IBC AMVP 리스트에 삽입된다.
2.4 팔레트 모드
팔레트 모드의 기본 아이디어는 CU의 샘플들이 작은 세트의 대표 칼라 값들에 의해 표현되는 것이다. 이 세트는 팔레트라 한다. 이스케이프(escape) 심볼 뒤에 (어쩌면 양자화된) 성분 값을 시그널링함으로써 팔레트 밖에 있는 샘플을 나타낼 수 있다. 이것은 도 2에 도시된다.
2.5 HEVC 화면 컨텐츠 코딩 연장 (HEVC-SCC)에서의 팔레트 모드
HEVC-SCC에서의 팔레트 모드에서, 팔레트 및 인덱스 맵을 코딩하는데 예측 방식이 사용된다.
2.5.1 팔레트 엔트리의 코딩
팔레트 엔트리의 코딩을 위해, 팔레트 예측자가 유지된다. 팔레트 예측자 뿐만 아니라 팔레트의 최대 크기는 SPS에서 시그널링된다. HEVC-SCC에서, palette_predictor_initializer_present_flag는 PPS에서 도입된다. 이 플래그가 1이면, 팔레트 예측자를 초기화하기 위한 엔트리는 비트스트림에서 시그널링된다. 팔레트 예측자는 각 CTU 행, 각 슬라이스 및 각 타일의 시작 부분에서 초기화된다. palette_predictor_initializer_present_flag의 값에 따라, 팔레트 예측자는 PPS에서 시그널링되는 팔레트 예측자 이니셜라이저 엔트리(palette predictor initializer entiries)를 이용하여 초기화되거나 0으로 리셋된다. HEVC-SCC에서, 크기 0의 팔레트 예측자 이니셜라이저가 활성화되어 PPS 레벨에서의 팔레트 예측자 초기화의 명시적 비활성화를 허용한다.
팔레트 예측자의 각각의 엔트리에 대해, 재사용 플래그가 시그널링되어 현재 팔레트의 일부인지를 나타낸다. 이것은 도 3에 도시된다. 재사용 플래그는 제로의 런-길이(run-length) 코딩을 이용하여 전송된다. 이 후, 새로운 팔레트 엔트리의 수는 차수 0의 지수 골롬(Golomb) 코드를 이용하여 시그널링된다. 마지막으로, 새로운 팔레트 엔트리에 대한 성분 값이 시그널링된다.
2.5.2 팔레트 인덱스의 코딩
팔레트 인덱스는 도 4에 도시된 바와 같이 수평 및 수직 횡단 스캔을 이용하여 코딩된다. 스캔 순서는 palette_transpose_flag를 이용하여 비트스트림에서 명시적으로 시그널링된다. 하위 섹션의 나머지에 대해서는, 스캔이 수평인 것으로 가정한다.
팔레트 인덱스는 2개의 주요 팔레트 샘플 모드, 즉, 'INDEX' 및 'COPY_ABOVE'를 이용하여 코딩된다. 상술한 바와 같이, 이스케이프 심볼은 또한 'INDEX' 모드로서 시그널링되고, 최대 팔레트 크기와 동일한 인덱스가 할당된다. 모드는 이전 모드가 'COPY_ABOVE'일 때 또는 맨 위 행을 제외하고 플래그를 사용하여 시그널링된다. 'COPY_ABOVE' 모드에서, 위의 행에 있는 샘플의 팔레트 인덱스가 카피된다. 'INDEX' 모드에서, 팔레트 인덱스가 명시적으로 시그널링된다. 'INDEX' 및 'COPY_ABOVE' 모드 모두에 대해, 동일한 모드를 이용하여 코딩되는 후속 샘플의 수를 명시하는 런(run) 값이 시그널링된다. 이스케이프 심볼이 'INDEX' 또는 'COPY_ABOVE' 모드에서 런의 일부이면, 이스케이프 성분 값은 각 이스케이프 심볼에 대하여 시그널링된다. 팔레트 인덱스의 코딩은 도 5에 도시된다.
이 신택스 순서는 다음과 같이 달성된다. 먼저, CU에 대한 인덱스 값의 수가 시그널링된다. 이 다음에 절단된(truncated) 바이너리 코딩을 이용하여 전체 CU에 대한 실제 인덱스 값의 시그널링이 뒤따른다. 인덱스 값 뿐만 아니라 인덱스의 수가 바이패스 모드에서 코딩된다. 이것은 인덱스 관련 바이패스 빈(index-related bypass bins)을 함께 그룹화한다. 그 후, 팔레트 샘플 모드(필요하다면) 및 런(run)이 인터리빙 방식으로 시그널링된다. 마지막으로, 전체 CU에 대한 이스케이프 샘플에 대응하는 성분 이스케이프 값은 함께 그룹화되고 바이패스 모드에서 코딩된다.
추가 신택스 요소 last_run_type_flag는 인덱스 값을 시그널링한 후에 시그널링된다. 이 신택스 요소는, 인덱스의 수와 함께, 블록의 마지막 런(run)에 대응하는 런 값을 시그널링할 필요성을 제거한다.
HEVC-SCC에서, 팔레트는 4:2:2, 4:2:0 및 모노크롬 크로마 포맷에 대하여 활성화된다. 팔레트 엔트리 및 팔레트 인덱스의 시그널링은 모든 크로마 포맷에 대해 거의 동일하다. 넌-모노크롬 포맷의 경우, 각각의 팔레트 엔트리는 3개의 성분으로 구성된다. 모노크롬 포맷의 경우, 각각의 팔레트 엔트리는 단일 성분으로 구성된다. 서브샘플링된 크로마 방향에 대해서는, 크로마 샘플이 2로 나누어질 수 있는 루마 샘플 인덱스와 연관된다. CU에 대한 팔레트 인덱스를 재구성한 후에, 샘플이 그와 연관된 단일 성분만을 가지면, 팔레트 엔트리의 제1 성분만이 사용된다. 시그널링에서의 유일한 차이점은 이스케이프 성분 값에 대한 것이다. 각각의 이스케이프 샘플에 대해, 시그널링되는 이스케이프 성분 값의 수는 그 샘플과 연관된 성분의 수에 따라 다를 수 있다.
VVC에서, 듀얼 트리 코딩 구조는 인트라 슬라이스를 코딩하는데 사용되어, 루마 성분 및 2개의 크로마 성분이 상이한 팔레트 및 팔레트 인덱스를 가질 수 있다. 또한, 2개의 크로마 성분은 동일한 팔레트 및 팔레트 인덱스를 공유한다.
2.6 VVC에서의 디블록킹 방식
다음 설명에서, 는 수직 에지에 대하여 M번째 행의 좌측 N번째 샘플 또는 수평 에지에 대하여 M번째 열의 상측 N번째 샘플을 나타내고, 는 수직 에지에 대하여 M번째 행의 우측 N번째 샘플 또는 수평 에지에 대하여 M번째 열의 하측 N번째 샘플을 나타낸다. 및 의 예는 도 9에 도시된다.
다음 설명에서, 는 수직 에지에 대하여 행의 좌측 N번째 샘플 또는 수평 에지에 대하여 열의 상측 N번째 샘플을 나타내고, 는 수직 에지에 대하여 행의 우측 N번째 샘플 또는 수평 에지에 대하여 열의 하측 N번째 샘플을 나타낸다.
필터 온/오프 결정은 유닛으로서 4개의 라인에 대해 수행된다. 도 9는 필터 온/오프 결정에 관련된 픽셀을 나타낸다. 처음 4개의 라인에 대한 2개의 적색 박스 내의 6개의 픽셀은 4개의 라인에 대한 필터 온/오프를 결정하는데 사용된다. 두번째 4개의 라인에 대한 2개의 적색 박스 내의 6개의 픽셀은 두번째 4개의 라인에 대한 필터 온/오프를 결정하는데 사용된다.
일부 실시예에서, 픽처의 수직 에지가 먼저 필터링된다. 그 후, 픽처의 수평 에지가 입력으로서의 수직 에지 필터링 프로세스에 의해 수정된 샘플로 필터링된다. 각 CTU의 CTB의 수직 및 수평 에지는 코딩 유닛 별로 별도로 프로세싱된다. 코딩 유닛 내의 코딩 블록의 수직 에지는, 기하학적 순서로 코딩 블록의 우측을 향해 에지들을 통해 진행하는 코딩 블록의 좌측 상의 에지로 시작하여 필터링된다. 코딩 유닛 내의 코딩 블록의 수평 에지는 기하학적 순서로 코딩 블록의 하부를 향해 에지들을 통해 진행하는 코딩 블록의 상부 상의 에지에서 시작하여 필터링된다.
2.6.1 경계 결정
필터링은 8x8 블록 경계에 적용된다. 또한, 이는 (예를 들어, 어파인(affine) 움직임 예측(ATMVP)의 사용에 의해) 변환 블록 경계 또는 코딩 서브블록 경계이어야 한다. 이러한 경계가 아닌 경우에는, 필터가 비활성화된다.
2.6.2 경계 강도 산출
- 샘플()을 포함하는 코딩 서브블록 및 샘플()을 포함하는 코딩 서브블록은 둘다 IBC 예측 모드에서 코딩되고, 2개의 코딩 서브블록의 예측에 사용되는 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플의 단위로 4보다 크거나 같다.
노트 1 - 2개의 코딩 서브블록에 사용되는 참조 픽처가 동일한지 상이한지를 결정하는 것은, 예측이 참조 픽처 리스트 0으로의 인덱스를 이용하여 형성되는지 및 참조 픽처 리스트 내의 인덱스 위치가 상이한지에 관계없이, 어떤 픽처가 참조되는지에만 의존한다.
노트 2 - ( xSb, ySb )를 커버하는 좌측 상단 샘플을 갖는 코딩 서브블록의 예측에 사용되는 움직임 벡터의 수는 PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ]와 동일하다.
- 하나의 움직임 벡터는 샘플()을 포함하는 코딩 서브블록를 예측하는데 사용되고, 하나의 움직임 벡터는 샘플()을 포함하는 코딩 서브블록을 예측하는데 사용되고, 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플의 단위로 4보다 크거나 같다.
- 2개의 움직임 벡터 및 2개의 상이한 참조 픽처는 샘플()을 포함하는 코딩 서브블록을 예측하는데 사용되고, 동일한 2개의 참조 픽처에 대한 2개의 움직임 벡터는 샘플()을 포함하는 코딩 서브블록를 예측하는데 사용되고, 동일한 참조 픽처에 대한 2개의 코딩 서브블록의 예측에 사용되는 2개의 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플 단위로 4보다 크거나 같다.
- 동일한 참조 픽처에 대한 2개의 움직임 벡터는 샘플()을 포함하는 코딩 서브블록을 예측하는데 사용되고, 동일한 참조 픽처에 대한 2개의 움직임 벡터는 샘플()을 포함하는 코딩 서브블록을 예측하는데 사용되고, 다음의 조건들은 모두 참이다:
- 2개의 코딩 서브블록의 예측에 이용되는 list 0 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플의 단위로 4보다 크거나 같거나, 2개의 코딩 서브블록의 예측에 사용되는 list 1 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플 단위로 4보다 크거나 같다.
- 샘플()을 포함하는 코딩 서브블록의 예측에 사용되는 list 0 움직임 벡터 및 샘플()을 포함하는 코딩 서브블록의 예측에 사용되는 list 1 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플 단위로 4보다 크거나 같거나, 샘플()을 포함하는 코딩 서브블록의 예측에 사용되는 list 1 움직임 벡터 및 샘플()을 포함하는 코딩 서브블록의 예측에 사용되는 list 0 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플의 단위로 4보다 크거나 같다.
표 2-1 및 2-2는 BS 산출 규칙을 요약한다.
표 2-1. 경계 강도 (SPS IBC가 비활성화될 때)
표 2-2. 경계 강도 (SPS IBC가 활성화될 때)
2.6.3 루마 성분에 대한 디블록킹 결정
디블록킹 결정 프로세스는 하위 섹션에서 기술된다.
조건 1, 조건 2 및 조건 3 모두가 참인 경우에만 더 넓고 더 강한 루마 필터 또는 필터들이 사용된다.
조건 1은 “큰 블록 조건”이다. 이 조건은 P측과 Q 측의 샘플이 큰 블록에 속하는지를 검출하며, 이들은 각각 변수 bSidePisLargeBlk 및 bSideQisLargeBlk에 의해 표현된다. bSidePisLargeBlk 및 bSideQisLargeBlk은 다음과 같이 정의된다.
bSidePisLargeBlk = ((에지 타입은 수직이고, p0는 폭 >= 32을 갖는 CU에 속한다) | | (에지 타입은 수평이고 p0는 높이 >= 32를 갖는 CU에 속한다))? TRUE: FALSE
bSideQisLargeBlk = ((에지 타입은 수직이고 p0는 폭 >= 32를 갖는 CU에 속한다) | | (에지 타입은 수평이고 q0는 높이 >= 32를 갖는 CU에 속한다))? TRUE: FALSE
bSidePisLargeBlk 및 bSideQisLargeBlk에 기초하여, 조건 1은 다음과 같이 정의된다.
조건 1 = (bSidePisLargeBlk || bSidePisLargeBlk) ? TRUE: FALSE
다음으로, 조건 1 이 참이면, 조건 2가 추가로 확인될 것이다. 먼저, 다음의 변수가 유도된다:
- HEVC에서처럼, dp0, dp3, dq0, dq3가 먼저 유도된다.
- if (p측이 32보다 크거나 같다)
dp0 = ( dp0 + Abs( p50 2 * p40 + p30 ) + 1 ) >> 1
dp3 = ( dp3 + Abs( p53 2 * p43 + p33 ) + 1 ) >> 1
- if (q측이 32보다 크거나 같다)
dq0 = ( dq0 + Abs( q50 2 * q40 + q30 ) + 1 ) >> 1
dq3 = ( dq3 + Abs( q53 2 * q43 + q33 ) + 1 ) >> 1
조건 2 = (d < β) ? TRUE: FALSE
섹션 2.2.4.에서 나타난 바와 같이 d= dp0 + dq0 + dp3 + dq3이다.
조건 1 및 조건 2가 유효하면, 블록 중의 임의의 것이 서브블록들을 사용하는지를 추가로 체크한다:
If (bSidePisLargeBlk)
If (mode block P == SUBBLOCKMODE)
Sp =5
else
Sp =7
else
Sp = 3
If (bSideQisLargeBlk)
If (mode block Q == SUBBLOCKMODE)
Sq =5
else
Sq =7
else
Sq = 3
마지막으로, 조건 1 및 조건 2 모두가 유효하면, 제안된 디블록킹 방법은 조건 3(큰 블록 강한 필터 조건)을 확인할 것이며, 이는 다음과 같이 정의된다.
조건 3 StrongFilterCondition에서, 다음의 변수가 유도된다:
dpq는 HEVC에서처럼 유도된다.
if (p측이 32보다 크거나 같다)
if(Sp==5)
else
if (q측이 32보다 크거나 같다)
If(Sq==5)
else
HEVC에서처럼, StrongFilterCondition = (dpq 는 ( β >> 2 )보다 작고, sp3 + sq3 는 ( 3*β >> 5 ) 보다 작고, 보다 작다 ? TRUE : FALSE.
2.6.4 (더 큰 블록을 위해 설계된) 더 강한 디블록킹 필터
바이리니어 필터는 경계의 일측에 있는 샘플들이 큰 블록에 속할 때 사용된다. 큰 블록에 속하는 샘플은 수직 에지에 대하여 폭 >= 32일 때 및 수평 에지에 대하여 높이 >= 32일 때로 정의된다.
바이리니어 필터는 아래와 같이 열거된다.
상술한 HEVC 디블록킹의 블록 경계 샘플 pi (i=0 내지 Sp-1) 및 블록 경계 샘플 qi (j=0 내지 Sq-1)(pi 및 qi는 수직 에지를 필터링하는 행 내의 i번째 샘플 또는 수평 에지를 필터링하는 열 내의 i번째 샘플이다)는 다음과 같이 선형 보간으로 대체된다.
표 2-3. 롱 탭 디블록킹 필터
2.6.5 크로마에 대한 디블록킹 제어
크로마 강 필터(chroma strong filters)는 블록 경계의 양쪽에 사용된다. 여기서, 크로마 필터는 크로마 에지의 양쪽이 8(크로마 위치)보다 크거나 같을 때 선택되고, 3개의 조건을 갖는 다음 결정이 만족된다. 첫번째 결정은 큰 블록 뿐만 아니라 경계 강도의 결정에 대한 것이다. 제안된 블록은 블록 에지를 직교하는 블록 폭 또는 높이가 크로마 샘플 도메인에서 8보다 크거나 같을 때 적용될 수 있다. 두번째 및 세번째 결정은 기본적으로 HEVC 루마 디블록킹 결정에 대한 것과 동일하고, 이들은 각각 온/오프 결정 및 강 필터 결정이다.
첫번째 결정에서, 표 2-2에 도시된 바와 같이, 경계 강도(bS)는 크로마 필터링을 위해 수정된다. 표 2-2의 조건들은 순차적으로 확인된다. 조건이 만족되면, 더 낮은 우선순위를 갖는 나머지 조건은 스킵된다.
크로마 디블록킹은 bS가 2와 동일할 때 수행되거나 큰 블록 경계가 검출될 때 bS가 1과 같다.
두번째 및 세번째 조건은 다음과 같이 기본적으로 HEVC 루마 강 필터 결정과 동일하다.
두번째 조건에서,
d는 HEVC 루마 디블록킹에서처럼 유도된다.
두번째 조건은 d가 β보다 작을 때 참이다.
세번째 조건에서, StrongFilterCondition는 다음과 같이 유도된다:
dpq는 HEVC에서처럼 유도된다.
HEVC 설계에서처럼, StrongFilterCondition = (dpq 는 ( β >> 2 )보다 작고, 는 ( β >> 3 )보다 작고, Abs( ) 는 ( 5 * tC + 1 ) >> 1) 보다 작다.
2.6.6 크로마용 강 디블록킹 필터
다음의 크로마용 강 디블록킹 필터가 정의된다:
제안된 크로마 필터는 4x4 크로마 샘플 그리드에 디블록킹을 수행한다.
2.6.7 위치 종속 클리핑
위치 종속 클리핑(tcPD)은 경계에서, 7, 5 및 3개의 샘플을 수정하는 강하고 긴 필터(strong and long filters)를 포함하는 루마 필터링 프로세스의 출력 샘플에 적용된다. 양자화 에러 분포를 가정하면, 더 높은 양자화 노이즈를 가질 것으로 예상되는 샘플에 대한 클리핑 값을 증가시키도록 제안되어, 참(true) 샘플 값으로부터의 재구성된 샘플 값의 편차가 더 높을 것으로 예상된다.
비대칭 필터로 필터링된 각각의 P 또는 Q 경계에 대해, 섹션 2.3.3의 의사 결정 프로세스의 결과에 따라, 위치 종속 임계값 표는 부가 정보(side information)로서 디코더에 제공되는 2개의 표(즉, 아래에 표로 작성된 Tc7 및 Tc3)으로부터 선택된다:
짧은 대칭 필터로 필터링되는 P 또는 Q 경계에 대하여, 더 작은 크기의 위치 종속 임계값이 적용된다:
Tc3 = { 3, 2, 1 };
임계값을 정의한 후, 필터링된 p' i 및 q' i 샘플 값은 tcP 및 tcQ 클리핑 값에 따라 클리핑된다:
여기서, 및 는 필터링된 샘플 값이고, 는 클리핑 후의 출력 샘플 값이고, 는 VVC tc 파라미터 및 tcPD 및 tcQD으로부터 유도된 클리핑 임계값이다. 함수(Clip3)는 VVC에서 명시된 바와 같이 클리핑 함수이다.
2.6.8 서브블록 디블록킹 조정
긴 필터 및 긴 필터를 디블록킹하는 서브블록을 모두 이용하여 병렬 친화 디블록킹을 활성화하는 것은 긴 필터에 대한 루마 제어에서 나타낸 바와 같이 서브블록 디블록킹(AFFINE 또는 ATMVP 또는 DMVR)을 사용하는 측에서 최대 5개의 샘플을 수정하도록 제한된다. 추가적으로, 서브블록 디블록킹이 조정되어, CU 또는 암시적 TU 경계에 근접한 8x8 그리드 상의 서브블록 경계가 각 측 상의 최대 2개의 샘플을 수정하도록 제한된다
CU 경계와 정렬되지 않은 서브블록 경계에 다음이 적용된다.
If (mode block Q == SUBBLOCKMODE && edge !=0) {
if (!(implicitTU && (edge == (64 / 4))))
if (edge == 2 || edge == (orthogonalLength - 2) || edge == (56 / 4) || edge == (72 / 4))
Sp = Sq = 2;
else
Sp = Sq = 3;
else
Sp = Sq = bSideQisLargeBlk ? 5:3
}
0과 같은 에지가 CU 경계에 해당하는 경우, 2와 동일하거나 orthogonalLength-2와 동일한 에지는, TU의 암시적 분할이 사용되는 경우 암시적 TU가 참인 CU 경계 등으로부터의 서브블록 경계 8 샘플에 대응한다.
2.6.9 루마/크로마용 4CTU/2CTU 라인 버퍼에 대한 제한
수평 에지가 CTU 경계와 정렬될 때 수평 에지의 필터링은 루마에 대하여 Sp = 3를 제한하고 크로마에 대하여 Sp=1 및 Sq=1를 제한하는 것이다.
2.7 VVC에서의 인트라 모드 코딩
자연 비디오에서 제시되는 임의의 에지 방향을 캡처하기 위해, VTM5의 방향성 인트라 모드의 수는 HEVC에서 사용된 것처럼 33에서 65로 확장된다. HEVC에 없는 새로운 방향성 모드는 도 12의 적색 점선 화살표로 표시되고, 플래너(planar) 및 DC 모드는 동일하게 유지된다. 밀도가 높은 이들 방향성 인트라 예측 모드는 모든 블록 크기 및 루마 및 크로마 인트라 예측 모두에 적용된다.
VTM5에서, 종래의 몇 개의 앵귤러(angular) 인트라 예측 모드가 정사각형이 아닌 블록에 대한 광각 인트라 예측 모드로 적응적으로 대체된다. 광각 인트라 예측은 섹션 3.3.1.2에 기재된다.
HEVC에서, 모든 인트라 코딩 블록은 정사각형 모양을 갖고, 그의 각 변의 길이는 2의 거듭제곱이다. 따라서, DC 모드를 이용하여 인트라 예측자를 생성하는데 나눗셈 연산이 필요하지 않다. VTM5에서, 블록은 일반적인 경우 블록당 나눗셈 연산의 이용을 필요로 하는 직사각형 형상을 가질 수 있다. DC에 대한 나눗셈 연산을 피하기 위하여, 정사각형이 아닌 블록에 대한 평균을 계산하는데 더 긴 변 만이 사용된다.
MPM(most probable mode) 리스트 생성의 복잡도를 낮게 유지하기 위해, 6개의 MPM를 갖는 인트라 모드 코딩 방법은 2개의 이용가능한 인접 인트라 모드를 고려함으로써 사용된다. MPM 리스트를 구성하기 위하여 다음의 3개의 양태가 고려된다:
i) 디폴트 인트라 모드
ii) 인접 인트라 모드
iii) 유도된 인트라 모드
MRL 및 ISP 코딩 툴의 적용 여부와 무관하게 통합된 6-MPM 리스트가 인트라 블록에 사용된다. MPM 리스트는 좌측 및 상측 인접 블록의 인트라 모드에 기초하여 구성된다. 좌측 블록의 모드는 Left 로 표기되고 상측 블록의 모드는 Above로 표기되는 것으로 가정하면, 통합된 MPM 리스트는 다음과 같이 구성된다(좌측 및 상측 블록은 도 13에 도시된다).
- 인접 블록이 이용가능하지 않으면, 그 인트라 모드는 디폴트로 플래너(planar)로 설정된다.
- 양 모드(Left 및 Above)는 넌-앵귤러(non-angular) 모드이다:
* MPM 리스트 -> {플래너, DC, V, H, V-4, V+4}
- 모드(Left 및 Above ) 중의 하나가 앵귤러 모드이면, 다른 하나는 넌 앵귤러 모드이다:
* Left 및 Above에서, 모드 Max를 더 큰 모드로 설정
* MPM 리스트 -> {플래너, Max, DC, Max -1, Max +1, Max -2}
- Left 및 Above 모두가 앵귤러이고 다르다:
* Left 및 Above에서, 모드 Max를 더 큰 모드로 설정
* 모드(Left 및 Above )의 차가 2 이상 62 이하의 범위 내에 있으면
MPM 리스트 -> {플래너, Left, Above, DC, Max -1, Max +1}
* 그렇지 않으면,
MPM 리스트 -> {플래너, Left, Above, DC, Max -2, Max +2}
- Left 및 Above 모두가 앵귤러이고 동일하면:
* MPM 리스트 -> {플래너, Left, Left -1, Left +1, DC, Left -2}
게다가, mpm 인덱스 코드의 제1 빈(bin)은 CABAC 컨텍스트 코딩된다. 현재 인트라 블록이 MRL 활성화, ISP 활성화 또는 노멀 인트라 블록인지에 대응하여, 통틀어 3개의 컨텍스트가 사용된다.
여섯 MPM 리스트 생성 프로세스 동안, 중복 모드를 제거하기 위해 프루닝(pruning)이 사용되어, 고유 모드만이 MPM 리스트에 포함될 수 있다. 61가지의 넌-MPM 모드의 엔트로피 코딩을 위해 TBC(Truncated Binary Code)가 사용된다.
크로마 인트라 모드 코딩에 대하여 총 8개의 인트라 모드가 허용된다. 이들 모드는 5개의 전통적인 인트라 모드 및 3개의 교차 성분 선형 모델 모드(CCLM, LM_A, 및 LM_L)를 포함한다. 크로마 모드 시그널링 및 유도 프로세스가 표 2-4에 도시된다. 크로마 모드 코딩은 해당 루마 블록의 인트라 예측 모드에 직접적으로 의존한다. 루마 및 크로마 성분에 대한 몇 개의 블록 분할 구조가 I 슬라이스에서 활성화되므로, 하나의 크로마 블록은 다수의 루마 블록에 대응할 수 있다. 그러므로, 크로마 DM 모드의 경우, 현재 크로마 블록의 중심 위치를 커버하는 해당 루마 블록의 인트라 예측 모드가 직접적으로 상속된다.
표 2-4 -cclm_is 이 활성화되는 경우 루마 모드로부터 크로마 예측 모드의 유도
2.8 QR-BDPCM(Quantized residual Block Differential Pulse-code Modulation)
JVET-M0413에서, 화면 컨텐츠를 효율적으로 코딩하기 위해 QR-BDPCM(quantized residual block differential pulse-code modulation)가 제안된다.
QR-BDPCM에서 사용되는 예측 방향은 수직 및 수평 예측 모드일 수 있다. 인트라 예측과 유사한 예측 방향(수평 또는 수직 예측)의 샘플 카피에 의해 전체 블록에 인트라 예측이 수행된다. 잔차는 양자화되고, 양자화된 잔차 및 그 예측자(수평 또는 수직) 양자화된 값 간의 델타가 코딩된다. 이것은 다음에 의해 설명될 수 있다: 크기 M (행) × N (열)의 블록에 대하여, 는 상측 또는 좌측 블록 경계 샘플로부터의 필터링되지 않은 샘플을 이용하여 (예측된 블록을 가로질러 좌측 인접 픽셀 값을 라인별로 카피하는) 수평으로 또는 (예측된 블록에서 각 라인에 상단 인접 라인을 카피하는) 수직으로 인트라 예측을 수행한 후의 예측 잔차인 것으로 한다. 는 잔차()의 양자화된 버전을 나타내고, 잔차는 원본 블록 및 예측된 블록 값 간의 차이다. 그 후, 블록 DPCM이 양자화된 잔차 샘플에 적용되어, 요소()를 갖는 수정된 M × N 어레이()가 생성된다 수직 BDPCM가 시그널링되면:
수평 예측을 위해, 유사한 규칙이 적용되고, 잔차 양자화된 샘플은 다음에 의해 획득된다:
이 방식의 주요 이점은, 계수가 파싱됨에 따라 예측자를 단순히 더하는 계수 파싱 동안 역 DPCM이 즉시 수행되거나 파싱 후에 수행될 수 있다는 것이다.
2.9 적응적 루프 필터
VTM5에서, 블록 기반 필터 적응을 갖는 ALF(Adaptive Loop Filter)가 적용된다. 루마 성분에 대하여, 로컬 그래디언트의 방향 및 액티비티(activity)에 기초하여 각각의 4×4 블록에 대해 25개의 필터 중 하나가 선택된다.
2.9.1 필터 형상
VTM5에서, (도 14에 도시된 바와 같이) 2개의 다이아몬드 필터 형상이 사용된다. 루마 성분에 7×7 다이아몬드 형상이 적용되고 크로마 성분에 5×5 다이아몬드 형상이 적용된다.
2.9.2 블록 분류
블록 분류의 복잡성을 감소시키기 위하여, 서브샘플링된 1-D 라플라시안 산출이 적용된다. 도 15(a) 내지 (d)에 도시된 바와 같이, 모든 방향의 그래디언트 산출에 동일한 서브샘플링된 위치가 사용된다.
2개의 대각선 방향의 그래디언트의 최대 및 최소 값은 다음과 같이 설정된다:
픽처의 크로마 성분의 경우, 분류 방법은 적용되지 않는다, 즉, ALF 계수의 1세트가 각 크로마 성분마다 적용된다.
2.9.3. 필터 계수 및 클리핑 값의 기하학적 변환
각 4×4 루마 블록을 필터링하기 전에, 회전 또는 대각선 및 수직 플리핑(flipping) 등의 기하학적 변환이 그 블록에 대하여 산출된 그래디언트 값에 따라 필터 계수 및 해당 필터 클리핑 값에 적용된다. 이것은 필터 지원 영역에서 이들 변환을 샘플에 적용하는 것과 동등하다. 아이디어는 그 방향성을 정렬함으로써 더 유사하게 ALF가 적용되는 상이한 블록을 만드는 것이다.
대각선, 수직 플립 및 회전을 포함하는 3개의 기하학적 변환이 도입된다:
여기서, 는 필터의 크기이고, 는 계수 좌표이어서, 위치 (0,0) 는 좌측 상단 코너에 있고, 위치 는 우측 하단 코너에 있다. 변환은 그 블록에 대하여 산출된 그래디언트 값에 따라 필터 계수 및 클리핑 값 에 적용된다. 4개의 방향의 4개의 그래디언트 및 변환 간의 관계가 다음 표에 요약된다.
표2-5 - 하나의 블록에 대하여 산출된 그래디언트 및 변환의 맵핑
2.9.4 필터 파라미터 시그널링
VTM5에서, ALF 필터 파라미터는 APS(Adaptation Parameter Set)에서 시그널링된다. 하나의 APS에서, 최대 25 세트의 루마 필터 계수 및 클리핑 값 인덱스 및 최대 1 세트의 크로마 필터 계수 및 클리핑 값 인덱스가 시그널링될 수 있다. 비트 오버헤드를 감소시키기 위해, 상이한 분류의 필터 계수가 머지(merge)될 수 있다. 슬라이스 헤더에서, 현재 슬라이스에 사용되는 APS의 인덱스가 시그널링된다.
APS로부터 디코딩된 클리핑 값 인덱스는 클리핑 값의 루마 표 및 클리핑 값의 크로마 표를 이용한 클리핑 값의 결정을 허용한다. 이들 클리핑 값은 내부 비트뎁스(bitdepth)에 의존한다. 더 정밀하게, 클리핑 값의 루마 표와 클리핑 값의 크로마 표는 다음의 식에 의해 얻어진다:
B는 내부 비트뎁스와 동일하고, N은 VTM5.0에서 허용된 클리핑 값의 수인 4와 동일하다.
필터링 프로세스는 CTB 레벨에서 제어될 수 있다. 플래그는 항상 ALF가 루마 CTB에 적용되는지를 나타내기 위해 시그널링된다. 루마 CTB는 16개의 고정 필터 세트 및 APS로부터의 필터 세트 중에서 필터 세트를 선택할 수 있다. 필터 세트 인덱스는 루마 CTB에 대하여 시그널링되어 어떤 필터 세트가 적용되는지를 나타낸다. 16개의 고정 필터 세트가 인코더 및 디코더 양쪽에서 미리 정의되고 하드 코딩(hard-coded)된다.
필터 계수는 128과 동일한 기준(norm)으로 양자화된다. 승산 복잡성을 제한하기 위하여, 비트스트림 적합성이 적용되어, 비중심(non-central) 위치의 계수 값이 이상이고 이하의 범위에 있어야 한다. 중심 위치 계수는 비트스트림에서 시그널링되지 않고 128과 동일한 것으로 간주된다.
2.9.5 필터링 프로세스
여기서, 는 디코딩된 필터 계수이고, 는 클리핑 함수이고, 는 디코딩된 클리핑 파라미터이다. 변수(k 및 l)는 사이에서 변하고, 여기서, L는 필터 길이이다. 클리핑 함수 는 함수 에 대응한다.
2.9.6 라인 버퍼 감소를 위한 가상 경계 필터링 프로세스
VTM5에서, ALF의 라인 버퍼 요구사항을 줄이기 위해, 수평 CTU 경계 근처의 샘플에 수정된 블록 분류 및 필터링이 채용된다. 이 목적으로, 가상 경계는, 도 16에 도시된 바와 같이 “N”개의 샘플을 갖는 수평 CTU 경계를 시프트함으로써 라인으로서 정의되고, 여기서, N은 루마 성분에 대하여 4와 동일하고 크로마 성분에 대하여 2와 동일하다.
도 2-11에 도시된 바와 같이 루마 성분에 수정된 블록 분류가 적용된다. 가상 경계 위의 4x4 블록의 1D 라플라시안 그래디언트 산출을 위해, 가상 경계 위의 샘플들만이 사용된다. 마찬가지로, 가상 경계 아래의 4x4 블록의 1D 라플라시안 그래디언트 산출을 위해, 가상 경계 아래의 샘플들만이 사용된다. 액티비티 값(A)의 양자화는 1D 라플라시안 그래디언트 산출에 사용되는 감소된 수의 샘플을 고려하여 그에 따라 스케일링된다.
필터링 처리를 위해, 가상 경계에서의 대칭 패딩(padding) 동작은 루마 및 크로마 성분 모두에 사용된다. 도 17에 도시된 바와 같이, 필터링되는 샘플이 가상 경계 아래에 위치하면, 가상 경계 위에 위치하는 인접 샘플이 패딩된다. 한편, 다른 쪽의 해당 샘플이 또한 대칭적으로 패딩된다.
2.10 샘플 적응적 오프셋 (SAO)
샘플 적응적 오프셋(SAO)은 인코더에 의해 각 CTB에 대하여 명시된 오프셋을 이용함으로써 디블록킹 필터 후의 재구성된 신호에 적용된다. HM 인코더는 먼저 SAO 프로세스가 현재 슬라이스에 적용되는지의 여부를 결정한다. SAO가 슬라이스에 적용되면, 각 CTB는 표 2-6에 도시된 바와 같이 5개의 SAO 타입 중의 하나로 분류된다. SAO의 개념은 픽셀을 카테고리로 분류하는 것이고, 각각의 카테고리의 픽셀에 오프셋을 더함으로써 왜곡을 감소시킨다. SAO 동작은 SAO 타입 1-4에서 픽셀 분류를 위해 에지 특성을 이용하는 에지 오프셋(EO) 및 SAO 타입 5에서 픽셀 분류를 위한 픽셀 강도를 사용하는 밴드 오프셋(BO)을 포함한다. 각각의 적용가능한 CTB은 sao_merge_left_flag, sao_merge_up_flag, SAO 타입 및 4개의 오프셋을 포함하는 SAO 파라미터를 갖는다. sao_merge_left_flag가 1과 동일하면, 현재 CTB는 SAO 타입 및 왼쪽으로의 CTB의 오프셋을 재사용할 것이다. sao_merge_up_flag가 1과 동일하면, 현재 CTB는 SAO 타입 및 CTB의 상부로의 오프셋을 재사용할 것이다.
표 2-6 - SAO 타입의 사양
2.10.1. 각 SAO 타입의 동작
에지 오프셋은 도 18에 도시된 바와 같이 에지 방향 정보를 고려하여 현재 픽셀(p)의 분류를 위한 4개의 1-D 3-픽셀 패턴을 사용한다. 왼쪽에서 오른쪽으로, 이들은 0도, 90도, 135도, 45도이다.
각각의 CTB는 표 2-7에 따라 5개의 카테고리 중 하나로 분류된다.
표 2-7 -EO에 대한 픽셀 분류 규칙
밴드 오프셋(BO)은 픽셀 값의 5개의 최상위 비트를 밴드 인덱스로 사용함으로써 하나의 CTB 영역의 모든 픽셀을 32개의 균일한 밴드로 분류한다. 즉, 픽셀 강도 범위는 0에서 최대 강도 값(예를 들어, 8비트 픽셀의 경우 255)까지 32개의 동일한 세그먼트로 분리된다. 4개의 인접 밴드가 함께 그룹화되고, 각각의 그룹은 도 19에 도시된 바와 같이 그 가장 왼쪽 위치로 표시된다. 인코더는 각각의 밴드의 오프셋을 보상함으로써 최대 왜곡 감소를 갖는 그룹을 얻는 모든 위치를 탐색한다.
2.11 CIIP (Combined inter and intra prediction)
VTM5에서, CU가 머지 모드로 코딩되는 경우, CU가 적어도 64개의 루마 샘플을 포함하면(즉, CU 폭 * CU 높이는 64보다 크거나 같고) 양 CU 폭 및 CU 높이가 128개 미만의 루마 샘플이면, 추가의 플래그는 결합된 인터/인트라 예측(CIIP; combined inter/intra prediction) 모드가 현재 CU에 적용되는지를 나타내도록 시그널링된다. 그 이름에서 알 수 있듯이, CIIP 예측은 인터 예측 신호를 인트라 예측 신호와 결합한다. CIIP 모드의 인터 예측 신호()는 레귤러 머지 모드에 적용된 동일한 인터 예측 프로세스를 이용하여 유도되고, 인트라 예측 신호()는 플래너 모드를 갖는 레귤러 인트라 예측 프로세스에 따라 유도된다. 그 후, 인트라 및 인터 예측 신호는 가중 평균을 이용하여 결합되고, 여기서, 가중치는 다음과 같이 상단 및 좌측 인접 블록(도 20에 도시됨)의 코딩 모드에 따라 산출된다:
- 상단 이웃이 이용가능하고 인트라 코딩되면, isIntraTop를 1로 설정하고, 그렇지 않으면, isIntraTop를 0으로 설정한다;
- 좌측 이웃이 이용가능하고 인트라 코딩되면, isIntraLeft를 1로 설정하고, 그렇지 않으면, isIntraLeft를 0으로 설정한다;
- (isIntraLeft + isIntraLeft)가 2와 같으면, wt는 3으로 설정된다;
- 그렇지 않고, (isIntraLeft + isIntraLeft)가 1과 동일하면, wt는 2로 설정된다;
- 그렇지 않으면, wt를 1로 설정한다.
CIIP 예측은 다음과 같이 형성된다:
2.12 LMCS(Luma mapping with chroma scaling)
VTM5에서, LMCS(luma mapping with chroma scaling)라 불리우는 코딩 툴이 루프 필터 전에 새로운 프로세싱 블록으로서 추가된다. LMCS는 2개의 주요 성분을 갖는다: 1) 적응적 조각별(piecewise) 선형 모델에 기초한 루마 성분의 인-루프(in-loop) 맵핑 및 2) 크로마 성분에 대해, 루마 종속 크로마 잔차 스케일링이 적용된다. 도 21은 디코더 관점에서의 LMCS 아키텍처를 나타낸다. 도 21의 연파랑 음영 블록은 맵핑된 도메인에서 프로세싱이 적용되는 곳을 나타내고, 이들은 역 양자화, 역변환, 루마 인트라 예측 및 루마 잔차와 함께 루마 예측의 추가를 포함한다. 도 21의 비음영 블록은 원본 (즉, 맵핑되지 않은) 도메인에서 프로세싱이 적용되는 곳을 나타내고, 이들은 디블록킹 등의 루프 필터, ALF 및 SAO, 움직임 보상 예측, 크로마 인트라 예측, 크로마 잔차와 함께 크로마 예측의 추가 및 참조 픽처로서의 디코딩된 픽처의 저장을 포함한다. 도 21의 연노랑 음영 블록은 루마 신호의 순방향 및 역 맵핑 및 루마 종속 크로마 스케일링 프로세스를 포함하는 새로운 LMCS 기능 블록이다. VVC에서의 대부분의 다른 툴처럼, LMCS는 SPS 플래그를 이용하여 시퀀스 레벨에서 활성화/비활성화될 수 있다.
3. 실시예에 의해 해결되는 문제의 예
하나의 팔레트 플래그는 통상 팔레트 모드가 현재 CU에 채용되는지를 나타내는데 사용되고, 이는 그 엔트로피 코딩에 대해 상이한 제한 및 변동을 가질 수 있다. 그러나, 팔레트 플래그를 더 잘 코딩하는 방법은 이전 비디오 코딩 표준에서 완전히 연구되지 않았다.
팔레트 샘플들은 포스트 루프 필터링 프로세스에 의해 처리되는 경우 시각적 아티팩트(visual artifact)를 가질 수 있다.
팔레트 스캐닝 순서는 정사각형이 아닌 블록에 대하여 개선될 수 있다.
4. 실시예의 예
이하의 상세한 설명은 일반적인 개념을 설명하기 위한 예로서 고려되어야 한다. 본 발명은 좁은 의미로 해석되어서는 안된다. 또한, 이들 발명은 임의의 방식으로 결합될 수 있다.
1. 변환 유닛/예측 유닛/코딩 블록/영역에 대한 팔레트 모드의 사용의 지시는 예측 모드와 별도로 코딩될 수 있다.
a. 일 예에서, 예측 모드는 팔레트의 이용의 지시 전에 코딩될 수 있다.
i. 대안으로, 더욱이, 팔레트의 사용의 지시는 예측 모드에 기초하여 조건적으로 시그널링될 수 있다.
1. 일 예에서, 예측 모드가 인트라 블록 카피 모드(즉, MODE_IBC)이면, 팔레트 모드의 사용의 지시의 시그널링은 스킵된다. 대안으로, 더욱이, 팔레트의 사용의 지시는 현재 예측 모드가 MODE_IBC일 때 거짓으로 추론될 수 있다.
2. 일 예에서, 예측 모드가 인터 모드 (즉, MODE_INTER(MODE_인터))이면, 팔레트 모드의 사용의 지시의 시그널링이 스킵될 수 있다. 대안으로, 더욱이, 팔레트 모드의 사용의 지시는 현재 예측 모드가 MODE_INTER일 때 거짓으로 추론될 수 있다.
3. 일 예에서, 예측 모드가 인트라 모드(즉, MODE_INTRA(MODE_인트라))이면, 팔레트 모드의 사용의 지시의 시그널링은 스킵될 수 있다. 대안으로, 더욱이, 팔레트 모드의 사용의 지시는 현재 예측 모드가 MODE_INTRA일 때 거짓으로 추론될 수 있다.
4. 일 예에서, 예측 모드가 스킵 모드이면 (즉, 스킵 플래그가 1과 동일하다), 팔레트 모드의 사용의 지시의 시그널링은 스킵될 수 있다. 대안으로, 더욱이, 팔레트 모드의 사용의 지시는 스킵 모드가 현재 CU에 채용될 때 거짓으로 추론될 수 있다.
5. 일 예에서, 예측 모드가 인트라 모드(예를 들어, MODE_INTRA(MODE_인트라))이면, 팔레트 모드의 사용의 지시가 시그널링될 수 있다. 대안으로, 더욱이, 예측 모드가 인터 모드 또는 인트라 블록 카피 모드이면, 팔레트 모드의 사용의 지시의 시그널링은 스킵될 수 있다.
a) 대안으로, 더욱이, 예측 모드가 인트라 모드이고 펄스 코드 변조(PCM; Pulse-code modulation) 모드가 아니면, 팔레트 모드의 사용의 지시가 시그널링될 수 있다.
b) 대안으로, 더욱이, 예측 모드가 인트라 모드이면, PCM 모드의 사용의 지시 전에 팔레트 모드의 사용의 지시가 시그널링될 수 있다. 일 예에서, 팔레트 모드가 적용되면, PCM 모드의 사용의 시그널링은 스킵될 수 있다.
c) 대안으로, 더욱이, 예측 모드가 인터 모드 또는 인트라 블록 카피 모드이면, 팔레트 모드의 사용의 지시의 시그널링은 스킵될 수 있다.
6. 일 예에서, 예측 모드가 인터 모드(예를 들어, MODE_INTER)이면, 팔레트 모드의 사용의 지시가 시그널링될 수 있다.
a) 대안으로, 예측 모드가 인트라 모드이면 팔레트 모드의 사용의 지시의 시그널링은 스킵될 수 있다.
7. 일 예에서, 예측 모드가 인트라 블록 카피 모드이면, 팔레트 모드의 사용의 지시가 시그널링될 수 있다. 대안으로, 더욱이, 예측 모드가 인터 모드 또는 인트라 모드이면, 팔레트 모드의 사용의 지시의 시그널링은 스킵될 수 있다.
ii. 대안으로, 더욱이, 팔레트 모드의 사용의 지시는 픽처/슬라이스/타일 그룹 타입에 기초하여 조건적으로 시그널링될 수 있다.
b. 일 예에서, 예측 모드는 팔레트 모드의 사용의 지시 후에 코딩될 수 있다.
c. 일 예에서, 예측 모드가 INTRA 모드 또는INTER_MODE이면, 팔레트 모드의 사용의 지시가 시그널링될 수 있다.
i. 일 예에서, 팔레트 모드의 사용의 지시는 스킵 플래그, 예측 모드 및 PCM 모드의 플래그 후에 코딩될 수 있다.
ii. 일 예에서, 팔레트 모드의 사용의 지시는 스킵 플래그, 예측 모드 후, PCM 모드의 플래그 전에 코딩될 수 있다.
iii. 일 예에서, 현재 블록이 인트라 모드로 코딩되면, 팔레트 및 IBC 모드의 지시가 더 시그널링될 수 있다.
1. 일 예에서, 팔레트 또는 IBC 모드가 시그널링되는지를 나타내기 위해 1비트 플래그가 시그널링될 수 있다.
2. 일 예에서, 비트 플래그의 시그널링은, IBC 또는 팔레트 모드가 하나의 타일/타일 그룹/슬라이스/픽처/시퀀스에 대하여 활성화되든 아니든 블록 차원 등의 어떤 조건 하에서 스킵될 수 있다.
d. 일 예에서, 예측 모드 (인트라 또는 인터 모드이든)가 먼저 코딩된 후에, 팔레트 모드인지 아닌지의 조건적 시그널링이 뒤따를 수 있다.
i. 일 예에서, 예측 모드가 인트라 모드이면, 또다른 플래그(another flag)가 추가로 시그널링되어 팔레트 모드인지를 나타낼 수 있다.
1. 일 예에서, 팔레트 모드가 하나의 비디오 데이터 유닛(예를 들어, 시퀀스/픽처/타일 그룹/타일)에 대하여 활성화되면,'또다른 플래그(another flag)'가 시그널링될 수 있다.
2. 일 예에서, 블록 차원의 조건 하에서 '또다른 플래그'가 시그널링될 수 있다.
3. 대안으로, 더욱이, 팔레트 모드가 아니면, 하나의 플래그가 추가로 시그널링되어 PCM 모드 인지를 지시할 수 있다.
4. 일 예에서, '또다른 플래그'는 인접 블록의 정보에 따라 컨텍스트 코딩될 수 있다. 대안으로, '또다른 플래그'는 단 하나의 컨텍스트로 컨텐스트 코딩될 수 있다. 대안으로, '또다른 플래그'는 바이패스 코딩, 즉, 컨텍스트 없이 코딩될 수 있다.
ii. 대안으로, 예측 모드가 인터 모드이면, 또다른 플래그가 추가로 시그널링되어 IBC 모드인지를 나타낼 수 있다.
1. 일 예에서, IBC 모드가 하나의 비디오 데이터 유닛(예를 들어, 시퀀스/픽처/타일 그룹/타일)에 대하여 활성화되면 '또다른 플래그'가 시그널링될 수 있다
2. 일 예에서, 블록 차원의 조건 하에서 '또다른 플래그'가 시그널링될 수 있다.
2. 예측 모드에 대한 추가적인 후보로서 팔레트 모드를 추가하는 것을 제안한다. 팔레트 모드의 사용의 지시는, 상기 실시예 1에서 논의된 바와 같이, 예를 들어, 예측 모드에 기초하여 결정/시그널링될 수 있다. 일부 실시예에서, 예측 모드와 별도로 팔레트 모드의 사용의 지시를 시그널링할 필요가 없다.
a. 일 예에서, 예측 모드는 인트라 슬라이스/I 픽처/인트라 타일 그룹에 대한 인트라, 인트라 블록 카피 및 팔레트 모드를 포함할 수 있다.
b. 대안으로, 예측 모드는 인트라 슬라이스/I 픽처/인트라 타일 그룹에 대한 인트라 및 팔레트 모드를 포함할 수 있다.
c. 일 예에서, 예측 모드는 4x4 블록에 대한 인트라, 인트라 블록 카피 및 팔레트 모드를 포함할 수 있다.
d. 일 예에서, 예측 모드는 인터 슬라이스/P 및/또는 B 픽처/인터 타일그룹에 대한 인트라, 인트라 블록 카피 및 팔레트 모드를 포함할 수 있다.
e. 일 예에서, 예측 모드는 인터 슬라이스/P 및/또는 B 픽처/인터 타일그룹에 대한 인트라, 인터, 인트라 블록 카피 모드를 포함할 수 있다.
f. 대안으로, 예측 모드는 인트라, 인터, 인트라 블록 카피 및 팔레트 모드 중의 적어도 2개를 포함할 수 있다.
g. 일 예에서, 인터 모드는 4x4 블록에 대한 예측 모드에 포함되지 않을 수 있다.
h. 일 예에서, 블록이 (인터 모드에 대한 특별한 경우인) 스킵 모드로서 코딩되지 않으면, 예측 모드 인덱스는 상이한 빈을 이용하여 컨텍스트적으로 코딩될 수 있다. 일부 실시예에서, 하나 이상의 빈의 시그널링은 블록 차원(예를 들어, 4x4) 등의 조건 때문에 스킵되거나 예측 모드가 비활성화된다(예를 들어, IBC 모드는 비활성화되어 해당 빈은 스킵된다).
i. 일 예에서, 4개의 모드의 이진화는 인트라(1), 인터(00), IBC (010) 및 팔레트(011)로서 정의된다. 여기서, 3개의 빈이 사용되며, 각 빈은 빈 값에 대응한다.
ii. 일 예에서, 4개의 모드의 이진화는, 도 10에 도시된 바와 같이, 인트라(10), 인터(00), IBC (01) 및 팔레트(11)로서 정의된다. 여기서, 2개의 빈이 사용되며, 각 빈은 빈 값에 대응한다.
iii. 일 예에서, 현재 슬라이스가 인트라 슬라이스이고 IBC가 SPS에서 활성화되지 않으면, 팔레트 및 인트라 모드의 이진화는 팔레트(1) 및 인트라(0)로서 정의된다. 여기서, 0개의 빈이 사용된다.
iv. 일 예에서, 현재 슬라이스가 인트라 슬라이스가 아니고 IBC가 SPS에서 활성화되지 않으면, 팔레트, 인터 및 인트라 모드의 이진화는 인트라(1), 인터(00) 및 팔레트(01)로서 정의된다. 여기서, 2개의 빈이 사용되고, 각각의 비트는 빈 값에 대응한다.
v. 일 예에서, 현재 슬라이스가 인트라 슬라이스이고 IBC가 SPS에서 활성화되면, 팔레트 및 인트라 모드의 이진화는 IBC (1), 팔레트(01) 및 인트라(00)로서 정의된다. 여기서, 2개의 빈이 사용되고, 각각의 비트는 빈 값에 대응한다.
vi. 일 예에서, 4개의 모드의 이진화는 인터(1), 인트라(01), IBC (001) 및 팔레트(000)로서 정의된다. 여기서, 3개의 빈이 사용되며, 각 빈은 빈 값에 대응한다.
vii. 일 예에서, 4개의 모드의 이진화는 인터(1), 인트라(01), IBC (001) 및 팔레트(000)로서 정의된다. 여기서, 3개의 빈이 사용되며, 각 빈은 빈 값에 대응한다.
viii. 일 예에서, 4개의 모드의 이진화는, 도 11에 도시된 바와 같이, 인터(0), 인트라(10), IBC (111) 및 팔레트(110)로서 정의된다. 여기서, 3개의 빈이 사용되며, 각 빈은 빈 값에 대응한다.
3. 팔레트/IBC의 사용의 지시의 시그널링이 다른 모드의 정보에 의존할 수 있다.
a. 일 예에서, 현재 예측 모드가 인트라 모드이고 IBC 모드가 아니면, 팔레트 모드의 사용의 지시가 시그널링될 수 있다.
b. 일 예에서, 현재 예측 모드가 인트라 모드이고 팔레트 모드가 아니면, IBC 모드의 사용의 지시가 시그널링될 수 있다.
4. 모드 정보를 시그널링하는 방법은 슬라이스/픽처 타일 그룹 타입에 의존할 수 있다.
a. 일 예에서, I-슬라이스/인트라 타일 그룹인 경우, IBC 모드인지를 나타내기 위해 하나의 플래그가 시그널링될 수 있다. IBC 모드가 아니면, 팔레트 또는 인트라 모드인지를 나타내기 위해 또다른 플래그가 더 시그널링될 수 있다.
b. 일 예에서, I-슬라이스/인트라 타일 그룹인 경우, 인트라 모드인지를 나타내기 위해 하나의 플래그가 시그널링될 수 있다. 인트라 모드가 아니면, 팔레트 또는 IBC 모드인지를 나타내기 위해 또다른 플래그가 더 시그널링될 수 있다.
5. 팔레트 모드의 사용의 지시가 다음의 조건에 기초하여 시그널링 및/또는 유도될 수 있다.
a. 현재 블록의 블록 차원
i. 일 예에서, 64*64 등의 임계값보다 작거나 같은 폭 * 높이를 갖는 블록에 대해서만 팔레트 모드의 사용의 지시가 시그널링될 수 있다.
ii. 일 예에서, 64 등의 임계값보다 크거나 같은 폭 * 높이를 갖는 블록에 대해서만 팔레트 모드의 사용의 지시가 시그널링될 수 있다
iii. 일 예에서, 아래의 모든 조건이 참인 블록에 대해서만 팔레트 모드의 사용의 지시가 시그널링될 수 있다:
1. 폭 및/또는 높이가 16 등의 임계값보다 크거나 같다;
2. 폭 및/또는 높이가 32 또는 64 등의 임계값보다 작거나 같다.
iv. 일 예에서, 폭이 높이와 같은 블록(즉, 정사각형 블록)에 대해서만 팔레트 모드의 사용의 지시가 시그널링될 수 있다.
b. 현재 블록의 예측 모드
c. 현재 블록의 현재 양자화 파라미터
d. 인접 블록의 팔레트 플래그
e. 인접 블록의 인트라 블록 카피 플래그
f. (4:2:0, 4:4:4 등의) 칼라 포맷의 지시
g. 개별/듀얼 코딩 트리 구조
h. 슬라이스/타일 그룹 타입 및/또는 픽처 타입
6. IBC 모드의 사용의 지시가 다음의 조건에 기초하여 시그널링 및/또는 유도될 수 있다.
a. 현재 블록의 블록 차원
i. 일 예에서, 폭 또는 높이가 128보다 작은 블록에 대해서만 IBC 모드의 사용의 지시가 시그널링될 수 있다.
b. 현재 블록의 예측 모드
c. 현재 블록의 현재 양자화 파라미터
d. 인접 블록의 팔레트 플래그
e. 인접 블록의 인트라 블록 카피 플래그
f. (4:2:0, 4:4:4 등의) 칼라 포맷의 지시
g. 개별/듀얼 코딩 트리 구조
h. 슬라이스/타일 그룹 타입 및/또는 픽처 타입
7. 디블록킹 결정 프로세스에서 팔레트 모드가 인트라 모드(예를 들어, MODE_INTRA)로서 처리될 수 있다.
a. 일 예에서, p 측 또는 q 측의 샘플들이 팔레트 모드로 코딩되면, 경계 강도는 2로 설정된다.
b. 일 예에서, p 측 및 q 측의 샘플들이 팔레트 모드로 코딩되면, 팔레트 강도는 2로 설정된다.
c. 대안으로, 디블록킹 결정 프로세스에서 팔레트 모드가 인터 모드(예를 들어, MODE_INTER)로서 처리될 수 있다.
8. 디블록킹 결정 프로세스에서 팔레트 모드가 개별 모드(예를 들어, MODE_PLT)로서 처리될 수 있다.
a. 일 예에서, p 측 및 q 측의 샘플들이 팔레트 모드로 코딩되면, 경계 강도는 0으로 설정된다.
i. 대안으로, 한쪽의 샘플들이 팔레트 모드로 코딩되면, 경계 강도는 0으로 설정된다.
b. 일 예에서, p 측의 샘플들이 IBC 모드로 코딩되고 q 측의 샘플들이 팔레트 모드로 코딩되면, 경계 강도는 1으로 설정되고, 그 역도 같다.
c. 일 예에서, p 측의 샘플들이 인트라 모드로 코딩되고 q 측의 샘플들이 팔레트 모드로 코딩되면, 경계 강도는 2으로 설정되고, 그 역도 같다.
9. 디블록킹 결정 프로세스에서 팔레트 모드가 변환 스킵 블록으로서 처리될 수 있다.
a. 대안으로, 디블록킹 결정 프로세스에서 팔레트 모드가 BDPCM 블록으로서 처리될 수 있다.
10. 블록에 대한 팔레트 모드의 사용의 지시가 슬라이스/타일 그룹/픽처 레벨 플래그에 기초하여 시그널링 및/또는 유도될 수 있다.
a. 일 예에서, 플래그는 분수 움직임 벡터 차(MVD)가 MMVD(merge with motion vector difference; UMVE로도 알려짐) 및/또는 AMVR(adaptive motion vector resolution) (예를 들어, slice_fracmmvd_flag)에서 허용되는지를 나타낸다. 대안으로, 더욱이, slice_fracmmvd_flag가 분수 MVD가 활성화되는 것을 나타내면, 팔레트 모드의 사용의 지시의 시그널링은 스킵되고 팔레트 모드는 비활성화되는 것으로 추론된다.
b. 일 예에서, 플래그는 팔레트 모드가 슬라이스/타일 그룹/픽처에 대하여 활성화되는지를 나타낸다. 대안으로, 더욱이, 이러한 플래그가 팔레트 모드가 비활성화되는 것을 나타내면, 블록에 대한 팔레트 모드의 사용의 시그널링은 스킵되고 팔레트 모드가 비활성화되는 것으로 추론된다.
11. 슬라이스/타일 그룹/픽처 레벨 플래그에 기초하여 블록에 대한 IBC의 사용의 지시가 시그널링 및/또는 유도될 수 있다.
a. 일 예에서, 플래그는 분수 움직임 벡터 차(MVD)가 MMVD(merge with motion vector difference; UMVE로도 알려짐) 및/또는 AMVR(adaptive motion vector resolution) (예를 들어, slice_fracmmvd_flag)에서 허용되는지를 나타낸다. 대안으로, 더욱이, slice_fracmmvd_flag가 분수 MVD가 활성화되는 것을 나타내면, IBC 모드의 사용의 지시의 시그널링은 스킵되고 IBC 모드는 비활성화되는 것으로 추론된다.
b. 일 예에서, 플래그는 슬라이스/타일 그룹/픽처에 대하여 IBC 모드가 활성화되는지를 나타낸다. 대안으로, 더욱이, 이러한 플래그가 IBC 모드가 비활성화되는 것을 지시하면, 블록에 대한 IBC 모드의 사용의 시그널링이 스킵되고, IBC 모드가 비활성화되는 것으로 추론된다.
12. 하나의 팔레트 엔트리와 연관된 샘플은 내부 비트 뎁스 및/또는 원본/재구성 샘플의 비트 뎁스와는 다른 비트 뎁스를 가질 수 있다.
a. 일 예에서, 하나와 연관된 샘플은 N과 동일한 비트 뎁스를 가질 수 있고, 다음이 적용될 수 있다:
i. 일 예에서, N은 정수(예를 들어, 8)일 수 있다.
ii. 일 예에서, N은 내부 비트 뎁스 및/또는 원본 및 재구성 샘플의 비트 뎁스보다 클 수 있다.
iii. 일 예에서, N 은 내부 비트 뎁스 및/또는 원본 및 재구성 샘플의 비트 뎁스보다 작을 수 있다.
iv. 일 예에서, N은 다음에 의존할 수 있다:
1. 현재 블록의 블록 차원
2. 현재 블록의 현재 양자화 파라미터
3. (4:2:0, 4:4:4 등의) 칼라 포맷의 지시
4. 개별/듀얼 코딩 트리 구조
5. 슬라이스/타일 그룹 타입 및/또는 픽처 타입
6. 팔레트 엔트리의 수
7. 예측 팔레트 엔트리의 수
8. 칼라 성분의 인덱스
b. 일 예에서, 다수의 팔레트 엔트리와 연관된 샘플은 상이한 비트 뎁스를 가질 수 있다.
i. 일 예에서, C0, C1는 현재 팔레트의 2개의 팔레트 엔트리라 하고, 이들은 각각 b0 및 b1과 동일한 비트 뎁스를 갖고, b0는 b1과 동일하지 않다.
1. 일 예에서, b0는 내부 비트 뎁스 및/또는 원본/재구성 샘플의 비트 뎁스보다 클/작을 수 있고 및/또는 b1는 내부 비트 뎁스 및/또는 원본/재구성 샘플의 비트 뎁스보다 클/작을 수 있다.
c. 일 예에서, 팔레트 모드에서, 샘플들은 팔레트 엔트리와 연관된 샘플들의 시프트된 값에 따라 재구성될 수 있다.
i. 일 예에서, 샘플들은, 팔레트 엔트리의 샘플들을 M 비트 만큼 좌측으로 시프트함으로써 재구성될 수 있다.
ii. 일 예에서, 재구성된 값은 (C<<M) + (1<<(M-1))일 수 있고, 여기서, C는 팔레트 엔트리이다.
iii. 일 예에서, 샘플들은, 팔레트 엔트리의 샘플들을 M 비트 만큼 우측으로 시프트함으로써 재구성될 수 있다.
iv. 일 예에서, 재구성된 값은 clip((C+(1<<(M-1)))>>M, 0, (1<<N)-1)일 수 있고, 여기서, C는 팔레트 엔트리이고 N은 재구성의 비트 뎁스이다.
v. 대안으로, 더욱이, 일 예에서, M은 팔레트 엔트리와 연관된 샘플들 간의 비트 뎁스 차 및 재구성 샘플/원본 샘플의 내부 비트 뎁스에 의존할 수 있다.
1. 일 예에서, M은 내부 비트 뎁스 - 팔레트 엔트리의 샘플들의 비트 뎁스와 동일할 수 있다.
2. 일 예에서, M은 팔레트 엔트리의 샘플들의 비트 뎁스 - 내부 비트 뎁스와 동일할 수 있다.
3. 일 예에서, M은 원본 샘플들의 비트 뎁스 - 팔레트 엔트리의 샘플들의 비트 뎁스와 동일할 수 있다.
4. 일 예에서, M은 팔레트 인트리의 샘플들의 비트 뎁스 - 원본 샘플들의 비트 뎁스와 동일할 수 있다.
5. 일 예에서, M은 재구성 샘플들의 비트 뎁스 - 팔레트 엔트리의 샘플들의 비트 뎁스와 동일할 수 있다.
6. 일 예에서, M은 팔레트 엔트리의 샘플들의 비트 뎁스 - 재구성 샘플들의 비트 뎁스와 동일하다.
vi. 일 예에서, M은 정수(예를 들어, 2)일 수 있다.
vii. 대안으로, 더욱이, 일 예에서, M은 다음에 의존할 수 있다:
1. 현재 블록의 블록 차원
2. 현재 블록의 현재 양자화 파라미터
3. (4:2:0, 4:4:4 등의) 칼라 포맷의 지시
4. 개별/듀얼 코딩 트리 구조
5. 슬라이스/타일 그룹 타입 및/또는 픽처 타입
6. 팔레트 엔트리의 수
7. 예측 팔레트 엔트리의 수
8. 블록/픽처/슬라이스/타일 내의 샘플 위치
9. 칼라 성분의 인덱스
viii. 일 예에서, 팔레트 엔트리의 샘플들에 기초한 룩업 동작은 샘플의 재구성 동안 사용될 수 있다.
1. 일 예에서, 룩업 테이블의 값들이 SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹에서 시그널링될 수 있다.
2. 일 예에서, 룩업 테이블의 값들은 SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹에서 추론될 수 있다.
13. 팔레트 코딩 블록에 대한 시그널링/유도된 양자화 파라미터(QP)는 클리핑되는 것과 같은 이스케이프 픽셀/샘플들을 유도하는데 사용되기 전에 먼저 수정될 수 있다.
a. 일 예에서, 팔레트 코딩 블록에 대한 적용된 QP 는 변환 스킵 모드 및/또는 BDPCM 모드와 동일한 방식으로 처리될 수 있다.
b. 일 예에서, 팔레트 코딩 블록에 대한 적용된 QP는 max(Qp, 4 + T)로 변경될 수 있고, 여기서, T 는 정수이고, Qp 는 블록에 대한 시그널링 또는 유도된 양자화 파라미터이다.
i. 일 예에서, T 는 미리 정의된 임계값일 수 있다.
ii. 일 예에서, T 는 (4 + min_qp_prime_ts_ minus4)와 동일할 수 있고, 여기서, min_qp_prime_ts_ minus4가 시그널링될 수 있다.
14. 이스케이프 샘플/심볼을 코딩하는 방법은 트랜스퀀트(transquant) 바이패스가 활성화되는지 아닌지에 관계없이 통합될 수 있다.
a. 일 예에서, 이스케이프 샘플이 고정 길이로 시그널링될 수 있다
b. 일 예에서, 이스케이프 샘플은 N 비트를 이용하여 고정 길이로 시그널링될 수 있다.
i. 일 예에서, N 은 정수(예를 들어, 8 또는 10)이고 다음에 의존할 수 있다:
1. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹에서 시그널링된 메시지
2. 내부 비트 뎁스
3. 입력 비트 뎁스
4. 현재 블록의 블록 차원
5. 현재 블록의 현재 양자화 파라미터
6. (4:2:0, 4:4:4 등의) 칼라 포맷의 지시
7. 개별/듀얼 코딩 트리 구조
8. 슬라이스/타일 그룹 타입 및/또는 픽처 타입
c. 일 예에서, 이스케이프 픽셀/샘플을 시그널링하는 코드 길이는 내부 비트 뎁스에 의존할 수 있다.
i. 대안으로, 이스케이프 픽셀/샘플을 시그널링하는 코드 길이는 입력 비트 뎁스에 의존할 수 있다.
d. 일 예에서, 이스케이프 픽셀/샘플을 시그널링하는 코드 길이는 양자화
파라미터에 의존할 수 있다.
i. 일 예에서, 이스케이프 픽셀/샘플을 시그널링하는 코드 길이는 f(Qp)일 수 있다.
1. 일 예에서, 함수(f)는 (내부 비트 뎁스 - (Qp - 4)/6)로 정의될 수 있다.
15. 팔레트 코딩 블록 및 팔레트 코딩되지 않은 블록에 대한 양자화 및/또는 역 양자화 프로세스는 상이한 방식으로 정의될 수 있다.
a. 일 예에서, 우측 비트 시프팅은 변환 계수 또는 잔차에 대한 양자화 프로세스를 이용하는 대신 이스케이프 샘플을 양자화하는데 사용될 수 있다.
b. 일 예에서, 좌측 비트 시프팅은 변환 계수 또는 잔차에 대한 역양자화 프로세스를 이용하는 대신 이스케이프 샘플을 역양자화하는데 사용될 수 있다.
c. 인코더 측에서, 다음을 적용할 수 있다:
i. 일 예에서, 이스케이프 픽셀/샘플 값이 f(p, Qp)로서 시그널링될 수 있다. 여기서, p는 픽셀/샘플 값이다.
ii. 일 예에서, 함수(f)는 p>>((Qp-4)/6)로 정의될 수 있고, 여기서, p는 픽셀/샘플 값이고, Qp 는 양자화 파라미터이다.
iii. 일 예에서, 이스케이프 픽셀/샘플 값이 p>>N 로서 시그널링될 수 있다. 여기서, p는 픽셀/샘플 값이다.
1. 일 예에서, N는 정수(예를 들어, 2)일 수 있고 다음에 의존할 수 있다:
a) SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹에서 시그널링된 메시지
b) 내부 비트 뎁스
c) 입력 비트 뎁스
d) 현재 블록의 블록 차원
e) 현재 블록의 현재 양자화 파라미터
f) (4:2:0, 4:4:4 등의) 칼라 포맷의 지시
g) 개별/듀얼 코딩 트리 구조
h) 슬라이스/타일 그룹 타입 및/또는 픽처 타입
d. 디코더측에서, 다음을 적용할 수 있다:
i. 일 예에서, 이스케이프 픽셀/샘플 값이 f(bd,p,Qp)로서 시그널링될 수 있다.
1. 일 예에서, 함수(f)는 clip(0, (1<<(bd-(Qp-4)/6))-1, (p + (1<<(bd-1)))>>((Qp-4)/6))로서 정의될 수 있다.
ii. 일 예에서, 이스케이프 픽셀/샘플 값이 f(p,Qp)로서 재구성될 수 있다. 여기서, p는 디코딩된 이스케이프 픽셀/샘플 값이다.
1. 일 예에서, f는 p<<((Qp-4)/6)로서 정의될 수 있다.
iii. 일 예에서, 이스케이프 픽셀/샘플 값이 f(bd,p,Qp)로서 재구성될 수 있다. 여기서, p는 디코딩된 이스케이프 픽셀/샘플 값이다.
1. 일 예에서, 함수(clip)는 clip(0, (1<<bd)-1, p<<((Qp-4)/6))로서 정의될 수 있다.
iv. 상기 예에서, 클립 함수(clip(a,i,b))는 (i < a ? a : (i > b ? b : i))로서 정의될 수 있다.
v. 상기 예에서, 클립 함수(clip(a,i,b))는 (i <= a ? a : (i >= b ? b : i))로서 정의될 수 있다.
vi. 상기 예에서, p는 픽셀/샘플 값일 수 있고, bd는 내부 비트 뎁스 또는 입력 비트 뎁스일 수 있고, Qp는 양자화 파라미터이다.
16. MPM (most probable mode)의 리스트 구성 프로세스 동안 팔레트 코딩 블록은 인트라 블록(예를 들어, MODE_INTRA)로서 처리될 수 있다.
a. 일 예에서, MPM 리스트의 구성 동안 인접(인접 또는 비인접) 블록의 인트라 모드를 페치(fetch)하는 경우, 인접 블록(예를 들어, 좌측 및/또는 상단)이 팔레트 모드로 코딩되면, 디폴트 모드로 종래의 인트라 코딩 블록(예를 들어, MODE_INTRA)로 처리될 수 있다.
i. 일 예에서, 디폴트 모드는 DC/PLANAR/VER/HOR 모드일 수 있다.
ii. 일 예에서, 디폴트 모드는 임의의 하나의 인트라 예측 모드일 수 있다.
iii. 일 예에서, 디폴드 모드가 DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU(Largest coding unit)/CU(Coding unit)/LCU 행/ LCU의 그룹/TU/PU 블록/비디오 코딩 유닛으로 시그널링될 수 있다.
17. 팔레트 코딩 블록은 MPM의 리스트 구성 프로세스 동안 넌-인트라 블록으로서 처리될 수 있다(예를 들어, MODE_PLT와 동일한 예측 모드를 갖는 블록으로서 처리된다).
a. 일 예에서, MPM 리스트의 구성 동안 인접 블록의 인트라 모드를 페치하는 경우, 인접 블록(예를 들어, 좌측 및/또는 상단)이 팔레트 모드로 코딩되면, 인터 모드로 코딩된 것과 동일 또는 유사한 방식으로 처리될 수 있다.
b. 일 예에서, MPM 리스트의 구성 동안 인접 블록의 인트라 모드를 페치하는 경우, 인접 블록(예를 들어, 좌측 및/또는 상단)이 팔레트 모드로 코딩되면, IBC 모드로 코딩된 것과 동일 또는 유사한 방식으로 처리될 수 있다.
18. DM 모드로 코딩된 크로마 블록에 대응하는 팔레트 모드로 코딩된 루마 블록은 디폴트 인트라 예측 모드를 갖는 것으로 해석될 수 있다.
a. 일 예에서, 크로마 블록이 DM 모드로 코딩되면, 팔레트 모드로 코딩된 해당 루마 블록은 인트라 블록(예를 들어, MODE_INTRA) 또는 팔레트 블록(예를 들어, MODE_PLT)로 처리될 수 있다.
b. 일 예에서, 디폴트 예측 모드는 DC/PLANAR/VER/HOR 모드일 수 있다.
c. 일 예에서, 디폴트 예측 모드는 임의의 하나의 인트라 예측 모드일 수 있다.
d. 일 예에서, 디폴트 예측 모드가 DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU(Largest coding unit)/CU(Coding unit)/LCU 행/ LCU의 그룹/TU/PU 블록/비디오 코딩 유닛으로 시그널링될 수 있다.
19. 팔레트 코딩 블록은 HMVP(history-based motion vector prediction), 머지(MERGE) 및 AMVP(advanced motion vector prediction) 모드의 리스트 구성 동안 이용불가능한 블록으로서 처리될 수 있다.
a. 일 예에서, 이용불가능한 블록은 임의의 움직임 정보를 갖지 않는 블록을 나타내거나 그 움직임 정보가 다른 블록에 대한 예측으로서 사용될 수 없다.
b. 일 예에서, 팔레트 모드를 갖는 블록은 HMVP, MERGE 및/또는 AMVP 모드로 리스트 구성의 프로세스에서 인트라 블록(예를 들어, MODE_INTRA) 또는 팔레트 블록(예를 들어, MODE_PLT)으로서 처리될 수 있다.
i. 대안으로, 일 예에서, HMVP, MERGE 및/또는 AMVP 리스트의 구성 동안 인접 블록의 움직임 정보를 페치하는 경우, 팔레트 모드로 코딩된 인접 블록은 무효 참조 인덱스를 갖는 블록으로서 처리될 수 있다.
ii. 대안으로, 일 예에서, HMVP, MERGE 및/또는 AMVP 리스트의 구성 동안 인접 블록의 움직임 정보를 페치하는 경우, 팔레트 모드로 코딩된 인접 블록은 0과 동일한 참조 인덱스를 갖는 인터 블록으로서 처리될 수 있다.
iii. 대안으로, 일 예에서, HMVP, MERGE 및/또는 AMVP 리스트의 구성 동안 인접 블록의 움직임 정보를 페치하는 경우, 팔레트 모드로 코딩된 인접 블록은 제로-움직임 벡터를 인터 블록으로서 처리될 수 있다.
20. 팔레트 모드로 코딩된 블록을 처리하는 방법(예를 들어, 상술한 방법을 적용하는지 및/또는 적용하는 방법)은 다음에 기초할 수 있다:
a. 비디오 컨텐츠 (예를 들어, 스크린 컨텐츠 또는 자연 컨텐츠)
b. DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU(Largest coding unit)/CU(Coding unit)/LCU 행/ LCU의 그룹/TU/PU 블록/비디오 코딩 유닛으로 시그널링된 메시지
c. CU/PU/TU/블록/비디오 코딩 유닛의 위치
d. 현재 블록의 블록 차원 및/또는 그 인접 블록
e. 현재 블록의 블록 형상 및/또는 그 인접 블록
f. (4:2:0, 4:4:4, RGB 또는 YUV 등의) 칼라 포맷의 지시
g. (듀얼 트리 또는 싱글 트리 등의) 코딩 트리 구조
h. 슬라이스/타일 그룹 타입 및/또는 픽처 타입
i. 칼라 성분 (예를 들어 루마 성분 및/또는 크로마 성분에만 적용될 수 있다)
j. 일시적 계층 ID
k. 표준의 프로파일/레벨/층(tier)
21. 팔레트 코딩 블록에 대한 컨텍스트 코딩 빈은 어떤 범위 내로 제한될 수 있다.
a. 일 예에서, 얼마나 많은 빈이 컨텍스트 코딩되었는지를 기록하기 위하여 카운터가 블록에 할당된다. 카운터가 임계값을 초과하면, 컨텍스트 코딩을 이용하는 대신 바이패스 코딩이 적용된다.
i. 대안으로, 각 칼라 성분ㅇㅔ 대하여 얼마나 많은 빈이 컨텍스트 코딩되었는지를 기록하기 위하여 NumColorComp 카운터가 할당될 수 있다. NumColorComp는 하나의 블록에서 코딩될 칼라 성분의 수이다(예를 들어, YUV 포맷의 하나의 CU의 경우, NumColorComp가 3으로 설정된다).
ii. 대안으로, 카운터는 0으로 초기화될 수 있고, 하나의 빈을 컨텍스트로 코딩한 후, 카운터는 1씩 증가한다.
b. 대안으로, 카운터는 0보다 큰 임의의 값(예를 들어, W*H*K)으로 초기화될 수 있고, 하나의 빈을 컨텍스트로 코딩한 후, 카운터는 1씩 감소한다. 카운터가 T보다 작거나 같으면, 컨텍스트 코딩을 사용하는 대신 바이패스 코딩이 적용된디.
i. 일 예에서, T는 0 또는 1로 설정된다.
ii. 일 예에서, T는 디코딩된 정보 또는 코딩 패스(passes)의 수 등에 따라 설정된다.
c. 일 예에서, 팔레트 코딩 블록은 컨텍스트 코딩 빈에 있어서 TS 코딩 블록 또는 넌-TS 코딩 블록과 비교하여 동일 또는 다른 임계값을 가질 수 있다.
i. 일 예에서, 팔레트 코딩 블록에 대한 컨텍스트 코딩 빈의 수는 (W*H*T)로 설정될 수 있고, 여기서, W 및 H는 각각 하나의 블록의 폭 및 높이이고, T는 정수이다. 일 예에서, T는 1.75 또는 2 등의 TS 코딩 블록에 사용된 것과 동일하게 설정된다.
ii. 일 예에서, 팔레트 코딩 블록에 대한 컨텍스트 코딩 빈의 수는 (W*H*NumColorComp*T)로 설정될 수 있고, 여기서, W 및 H는 각각 하나의 블록의 폭 및 높이이고, NumColorComp는 하나의 블록에서 코딩될 칼라 성분의 수(예를 들어, YUV 포맷의 하나의 CU의 경우, NumColorComp가 3으로 설정된다)이고, T는 정수이다. 일 예에서, T는 1.75 또는 2 등의 TS 코딩 블록에 사용된 것과 동일하게 설정된다.
d. 일 예에서, 팔레트 코딩 블록의 임계값은 컨텍스트 코딩 빈에 있어서 TS 코딩 블록 또는 넌-TS 코딩 블록보다 작을 수 있다.
e. 일 예에서, 팔레트 코딩 블록의 임계값은 컨텍스트 코딩 빈에 있어서 TS 코딩 블록 또는 넌-TS 코딩 블록보다 클 수 있다.
22. 팔레트 코딩 블록은 CIIP 모드에서 인접 인트라 블록을 카운팅하는 프로세스 동안 넌-인트라 블록으로 처리될 수 있다(예를 들어, MODE_PLT와 동일한 예측 모드를 갖는 블록으로서 처리될 수 있다).
a. 일 예에서, CIIP 모드에서 인접 인트라 블록을 카운팅하는 프로세스 동안 인접 블록의 인트라 모드를 페치하는 경우, 인접 블록(예를 들어, 좌측 및/또는 상단)이 팔레트 모드로 코딩되면, 인터 모드로 코딩된 것과 동일하거나 유사한 방식으로 처리될 수 있다.
b. 일 예에서, CIIP 모드에서 인접 인트라 블록을 카운팅하는 프로세스 동안 인접 블록의 인트라 모드를 페치하는 경우, 인접 블록(예를 들어, 좌측 및/또는 상단)이 팔레트 모드로 코딩되면, IBC 모드로 코딩된 것과 동일하거나 유사한 방식으로 처리될 수 있다.
c. 대안으로, 팔레트 코딩 블록은 CIIP 모드에서 인접 인트라 블록을 카운팅하는 프로세스 동안 인트라 블록으로서 처리될 수 있다.
23. 팔레트 코딩 샘플에 대한 사전 및/또는 사후 필터링 프로세스를 스킵할 것을 제안한다.
a. 일 예에서, 팔레트 코딩 샘플들은 디블록킹될 수 없다.
b. 일 예에서, 팔레트 코딩 샘플들은 SAO 프로세스에서 오프셋이 보상되지 않을 수 있다.
c. 일 예에서, 팔레트 코딩 샘플들은 ALF 프로세스에서 필터링되지 않을 수 있다.
i. 일 예에서, ALF 프로세스의 분류는 팔레트 코딩 샘플들을 스킵할 수 있다.
d. 일 예에서, LMCS는 팔레트 코딩 샘플들에 대하여 비활성화될 수 있다.
24. 팔레트 모드에서 더 많은 스캐닝 순서를 추가할 것을 제안한다.
a. 일 예에서, 다음과 같이 정의된 역 수평 횡단 스캐닝 순서가 사용될 수 있다.
i. 일 예에서, 홀수 행에 대한 스캐닝 방향은 좌측으로부터 우측일 수 있다.
ii. 일 예에서, 짝수 행에 대한 스캐닝 방향은 우측으로부터 좌측일 수 있다.
iii. 일 예에서, 4x4 블록에 대한 스캐닝 순서는 도 22에 도시된 바와 같을 수 있다.
b. 일 예에서, 다음과 같이 정의된 역 수직 횡단 스캐닝 순서가 사용될 수 있다.
i. 일 예에서, 홀수 행에 대한 스캐닝 방향은 상단으로부터 하단일 수 있다.
ii. 일 예에서, 짝수 행에 대한 스캐닝 방향은 하단으로부터 상단일 수 있다.
iii. 일 예에서, 4x4 블록에 대한 스캐닝 순서는 도 23에 도시된 바와 같을 수 있다.
25. 허용된 스캐닝 순서의 조합은 블록 형상에 의존할 수 있다.
a. 일 예에서, 블록의 폭 과 높이 간의 비가 임계값보다 크면, 수평 횡단 및 역 수평 횡단 스캐닝 순서만이 적용될 수 있다.
i. 일 예에서, 임계값은 1과 동일하다.
ii. 일 예에서, 임계값은 4와 동일하다.
b. 일 예에서, 블록의 폭 과 높이 간의 비가 임계값보다 크면, 수직 횡단 및 역 수직 횡단 스캐닝 순서만이 적용될 수 있다.
i. 일 예에서, 임계값은 1과 동일하다.
ii. 일 예에서, 임계값은 4와 동일하다.
26. QR-BDPCM 프로세스에서 하나의 인트라 예측 방향 및/또는 하나의 스캐닝 방향만을 허용하는 것을 제안된다.
a. 일 예에서, 폭이 높이보다 큰 블록에 대하여 수직 방향만이 허용된다.
b. 일 예에서, 폭이 높이보다 작은 블록에 대하여 수평 방향만이 허용된다.
c. 일 예에서, QR-BDPCM의 방향의 지시는 정사각형이 아닌 블록에 대하여 추론될 수 있다.
i. 일 예에서, 더욱이, QR-BDPCM의 방향의 지시는 폭이 높이보다 큰 블록에 대하여 수직 방향으로 추론될 수 있다.
ii. 일 예에서, 더욱이, QR-BDPCM의 방향의 지시는 폭이 높이보다 작은 블록에 대하여 수평 방향으로 추론될 수 있다.
27. 24, 25 및 26항의 방법들은 w*Th >= h 또는 h*Th >= w를 갖는 블록에 대해서만 적용될 수 있고, 여기서, w 및 h는 각각 블록 폭 높이를 나타내고, Th는 임계값이다.
a. 일 예에서, Th는 정수(예를 들어, 4 또는 8)이고 다음에 기초할 수 있다.
i. 비디오 컨텐츠 (예를 들어, 스크린 컨텐츠 또는 자연 컨텐츠)
ii. DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU(Largest coding unit)/CU(Coding unit)/LCU 행/ LCU의 그룹/TU/PU 블록/비디오 코딩 유닛으로 시그널링된 메시지
iii. CU/PU/TU/블록/비디오 코딩 유닛의 위치
iv. 현재 블록의 블록 차원 및/또는 그 인접 블록
v. 현재 블록의 블록 형상 및/또는 그 인접 블록
vi. (4:2:0, 4:4:4, RGB 또는 YUV 등의) 칼라 포맷의 지시
vii. (듀얼 트리 또는 싱글 트리 등의) 코딩 트리 구조
viii. 슬라이스/타일 그룹 타입 및/또는 픽처 타입
ix. 칼라 성분 (예를 들어 루마 성분 및/또는 크로마 성분에만 적용될 수 있다)
x. 일시적 계층 ID
xi. 표준의 프로파일/레벨/층(tier)
5. 추가 실시예
5.1 실시예 1
이 섹션은 비디오의 비트스트림 표현이 베이스라인 비트스트림 신택스와 비교하여 변경되는 예시적인 실시예를 나타낸다. 변화는 굵은 기울임체 텍스트 엔트리를 사용하여 하이라이트된다.
1과 동일한 sps_plt_enabled_flag는 팔레트 모드가 CVS에서 픽처의 디코딩에 사용될 수 있다는 것을 나타낸다. 0과 동일한 sps_plt_enabled_flag는 팔레트 모드가 CVS에서 사용되지 않는다는 것을 나타낸다. sps_plt_enabled_flag가 존재하지 않으면, 0인 것으로 추론된다.
1과 동일한 pred_mode_scc_flag는 현재 코딩 유닛이 스크린 컨텐츠 코딩 모드로 코딩된다는 것을 나타낸다. 0과 동일한 pred_mode_scc_flag는 현재 코딩 유닛이 스크린 컨텐츠 모드에 의해 코딩되지 않는다는 것을 나타낸다.
pred_mode_scc_flag이 존재하지 않으면, 0인 것으로 추론된다.
1과 동일한 pred_mode_plt_flag는 현재 코딩 유닛이 팔레트 모드로 코딩된다는 것을 나타낸다. 0과 동일한 pred_mode_plt_flag는 현재 코딩 유닛이 팔레트 모드로 코딩되지 않는다는 것을 나타낸다.
pred_mode_plt_flag이 존재하지 않으면, I 타일 그룹을 디코딩할 때 sps_plt_enabled_flag의 값과 동일하고 P 또는 B 타일 그룹을 디코딩할 때 0과 동일한 것으로 추론된다.
pred_mode_scc_flag가 1과 동일하고 sps_ibc_enabled_flag가 0과 동일하면, pred_mode_plt_flag는 1과 같은 것으로 추론된다.
pred_mode_ibc_flag가 1과 동일하면, 변수 CuPredMode[ x ][ y ]는 MODE_PLT for x = x0..x0 + cbWidth 1 and y = y0..y0 + cbHeight - 1과 동일한 것으로 설정된다.
1과 동일한 pred_mode_plt_flag는 현재 코딩 유닛이 팔레트 모드로 코딩되는 것을 나타낸다. 0과 동일한 pred_mode_plt_flag는 현재 코딩 유닛이 팔레트 모드로 코딩되지 않는다는 것을 나타낸다.
pred_mode_plt_flag가 존재하지 않으면, I 타일 그룹을 디코딩할 때 sps_plt_enabled_flag 의 값과 동일하고 P 또는 B 타일 그룹을 디코딩할 때 0과 동일한 것으로 추론된다.
pred_mode_ibc_flag가 1과 동일하면, 변수 CuPredMode[ x ][ y ]는 MODE_PLT for x = x0..x0 + cbWidth 1 and y = y0..y0 + cbHeight - 1과 동일한 것으로 설정된다.
1과 동일한 pred_mode_plt_flag는 현재 코딩 유닛이 팔레트 모드로 코딩되는 것을 나타낸다. 0과 동일한 pred_mode_plt_flag는 현재 코딩 유닛이 팔레트 모드로 코딩되지 않는 것을 나타낸다.
pred_mode_plt_flag가 존재하지 않으면, I 타일 그룹을 디코딩할 때 sps_plt_enabled_flag 의 값과 동일하고 P 또는 B 타일 그룹을 디코딩할 때 0과 동일한 것으로 추론된다.
pred_mode_ibc_flag가 1과 동일하면, 변수 CuPredMode[ x ][ y ]는 MODE_PLT for x = x0..x0 + cbWidth 1 and y = y0..y0 + cbHeight - 1과 동일 한 것으로 설정된다.
1과 동일한 plt_mode_flag는 현재 코딩 유닛이 팔레트 모드로 코딩되는 것을 나타낸다. 0과 동일한 intra_mode_plt_flag는 현재 코딩 유닛이 팔레트 모드로 코딩되는 것을 나타낸다.
plt_mode_flag이 존재하지 않으면, 거짓과 동일한 것으로 추론된다.
pred_mode_scc_flag가 1과 동일하면, 변수 CuPredMode[ x ][ y ]는 x = x0..x0 + cbWidth 1 and y = y0..y0 + cbHeight - 1에 대해 MODE_PLT와 동일한 것으로 설정된다.
0과 동일한 pred_mode_flag는 현재 코딩 유닛이 인터 예측 모드 또는 IBC 예측 모드로 코딩되는 것을 나타낸다. 1과 동일한 pred_mode_flag는 현재 코딩 유닛이 인트라 예측 모드 또는 PLT 모드로 코딩되는 것을 나타낸다. 변수 CuPredMode[ x ][ y ]는 x = x0..x0 + cbWidth 1 및 y = y0..y0 + cbHeight - 1에 대해 다음과 같이 유도된다:
- pred_mode_flag가 0과 동일하면, CuPredMode[ x ][ y ]는 MODE_INTER과 동일한 것으로 설정된다.
- 그렇지 않으면 (pred_mode_flag가 1과 동일하면), CuPredMode[ x ][ y ]는 MODE_INTRA과 동일한 것으로 설정된다.
pred_mode_flag가 존재하지 않으면, I 타일 그룹을 디코딩할 때 1과 동일하고 P 또는 B 타일 그룹을 디코딩할 때 0과 동일한 것으로 추론된다.
표 9-4 신택스 요소 및 연관된 이진화.
표 9-10 - 컨텍스트 코딩 빈을 갖는 신택스 요소로의 ctxInc의 할당
5.2 실시예 #2
본 실시예는 modeType을 기술한다. 새롭게 추가된 텍스트는 굵은 기울임체이다.
코딩 트리 노드 내의 코딩 유닛에 대하여 인트라, IBC, 팔레트 및 인터 코딩 모드가 사용되는지(MODE_TYPE_ALL), 인트라, 팔레트 및 IBC 코딩 모드만이 사용될 수 있는지 (MODE_TYPE_INTRA), 또는 인터 코딩 모드만이 사용될 수 있는지 (MODE_TYPE_INTER)를 나타내는 변수 modeType.
5.3 실시예 #3
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, pred_mode_plt_flag는 pred_mode_ibc_flag 후에 시그널링된다. 새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
7.3.7.5
코딩 유닛 신택스
5.4 실시예 #4
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, pred_mode_plt_flag는 pred_mode_ibc_flag 후에 시그널링되고 pred_mode_plt_flag는 현재 예측 모드가 MODE_INTRA일 때만 시그널링된다. 새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
7.3.7.5
코딩 유닛 신택스
5.5 실시예 #5
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, pred_mode_ibc_flag는 pred_mode_plt_flag 후에 시그널링된다. 새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
7.3.7.5
코딩 유닛 신택스
5.6 실시예 #6
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, pred_mode_ibc_flag 는 pred_mode_plt_flag 후에 시그널링되고, pred_mode_plt_flag 는 현재 예측 모드가 MODE_INTRA일 때에만 시그널링된다. 새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
7.3.7.5
코딩 유닛 신택스
5.7 실시예 #7
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, pred_mode_plt_flag 및 pred_mode_ibc_flag는 예측 모드가 MODE_INTRA일 때 시그널링된다. 새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
7.3.7.5
코딩 유닛 신택스
5.8 실시예 #8
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, pred_mode_plt_flag 및 pred_mode_ibc_flag 는 예측 모드가 MODE_INTRA가 아닐 때 시그널링된다. 새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
7.3.7.5
코딩 유닛 신택스
5.9 실시예 #9
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, pred_mode_plt_flag 및 pred_mode_ibc_flag 는 예측 모드가 MODE_INTER 일 때 시그널링된다. 새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
7.3.7.5
코딩 유닛 신택스
5.10 실시예 #10
본 실시예는 pred_mode_plt_flag의 의미를 기술한다. 새롭게 추가된 텍스트는 굵은 기울임체이다.
pred_mode_plt_flag는 현재 코딩 유닛에서의 팔레트 모드의 사용을 나타낸다.
pred_mode_plt_flag = = 1는 현재 코딩 유닛에서 팔레트 모드가 적용되는 것을 나타낸다. pred_mode_plt_flag = = 0는 현재 코딩 유닛에 팔레트 모드가 적용되지 않는다는 것을 나타낸다. pred_mode_plt_flag가 존재하지 않으면, 0과 동일한 것으로 추론된다.
5.11 실시예 #11
본 실시예는 pred_mode_plt_flag 의 의미를 기술한다. 새롭게 추가된 텍스트는 굵은 기울임체이다.
pred_mode_plt_flag는 현재 코딩 유닛에서의 팔레트의 사용을 나타낸다. pred_mode_plt_flag = = 1는 현재 코딩 유닛에서 팔레트 모드가 적용된다는 것을 나타낸다. pred_mode_plt_flag = = 0는 현재 코딩 유닛에 팔레트 모드가 적용되지 않는다는 것을 나타낸다. pred_mode_plt_flag가 존재하지 않으면, 0과 동일한 것으로 추론된다.
pred_mode_plt_flag가 1과 같으면, 변수 CuPredMode[ x ][ y ]가 x = x0..x0 + cbWidth 1 및 y = y0..y0 + cbHeight - 1 에 대해 MODE_PLT 와 같은 것으로 설정된다.
5.12 실시예 #12
본 실시예는 경계 강도 유도를 기술한다. 새롭게 추가된 텍스트는 굵은 기울임체이다.
8.8.3.5 경계 필터링 강도의 유도 프로세스
이 프로세스로의 입력은:
픽처 샘플 어레이(recPicture),
현재 픽처의 좌측 상단 샘플에 대하여 현재 코딩 블록의 좌측 상단 샘플을 나타내는 위치 ( xCb, yCb ),
현재 코딩 블록의 폭을 나타내는 변수(nCbW),
현재 코딩 블록의 높이를 나타내는 변수(nCbH),
수직(EDGE_VER) 또는 수평 (EDGE_HOR) 에지가 필터링되는지를 나타내는 변수(edgeType),
현재 코딩 블록의 칼라 성분을 나타내는 변수(cIdx)
2차원 (nCbW)x(nCbH) 어레이(edgeFlags)이다.
이 프로세스의 출력은 경계 필터링 강도를 나타내는 2차원 (nCbW)x(nCbH) 어레이(bS)이다.
…
cIdx가 0과 동일하고, 양 샘플(p0 및 q0)이 1과 동일한 intra_bdpcm_flag을 갖는 코딩 블록에 있으면, bS[ xDi ][ yDj ]는 0과 동일하게 설정된다.
그렇지 않고, 샘플(p0 또는 q0)이 인트라 예측 모드로 코딩된 코딩 유닛의 코딩 블록에 있으면, bS[ xDi ][ yDj ]는 2와 동일하게 설정된다.
그렇지 않고, 블록 에지가 또한 변환 블록 에지이고 샘플(p0 또는 q0)이 1과 동일한 ciip_flag를 갖는 코딩 블록에 있으면, bS[ xDi ][ yDj ]는 2와 동일하게 설정된다.
그렇지 않고, 블록 에지가 또한 변환 블록 에지이고 샘플(p0 또는 q0)이 하나 이상의 0이 아닌 변환 계수 레벨을 포함하는 변환 블록에 있으면, bS[ xDi ][ yDj ]는 1과 동일하게 설정된다.
그렇지 않고, 블록 에지가 또한 변환 블록 에지이고 샘플(p
0
및 q
0
)이 1과 동일한 pred_mode_plt_flag를 갖는 2개의 코딩 블록에 있으면, bS[ xD
i
][ yD
j
]는 0와 동일하게 설정된다.
그렇지 않고, 샘플(p0)을 포함하는 코딩 서브블록의 예측 모드가 샘플(q0)을 포함하는 코딩 서브블록의 예측 모드와 다르면, bS[ xDi ][ yDj ]는 1과 동일하게 설정된다.
그렇지 않고, cIdx가 0과 동일하고 다음의 조건 중의 하나 이상이 참이면, bS[ xDi ][ yDj ]는 1과 동일하게 설정된다:
샘플(p0)을 포함하는 코딩 서브블록 및 샘플(q0)을 포함하는 코딩 서브블록이 둘다 IBC 예측 모드로 코딩되고, 2개의 코딩 서브블록의 예측에 사용되는 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플 단위로 4보다 크거나 같다.
샘플(p0)을 포함하는 코딩 서브블록의 예측을 위해, 샘플(q0)을 포함하는 코딩 서브블록의 예측을 위한 것과는 다른 참조 픽처 또는 상이한 수의 움직임 벡터가 사용된다.
노트 1 - 2개의 코딩 서브블록에 사용되는 참조 픽쳐가 동일한지 상이한지의 결정은 참조 픽처 리스트 0으로의 인덱스 또는 참조 픽처 리스트 1로의 인덱스를 이용하여 예측이 형성되는지 또는 참조 픽처 리스트 내의 인덱스 위치가 상이한지에 상관없이 어떤 픽처가 참조되는지에만 기초한다.
노트 2 - ( xSb, ySb )를 커버하는 좌측 상단 샘플을 갖는 코딩 서브블록의 예측에 사용되는 움직임 벡터의 수는 PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ]와 동일하다.
하나의 움직임 벡터가 샘플(p0)을 포함하는 코딩 서브블록을 예측하는데 사용되고, 하나의 움직임 벡터가 샘플(q0)을 포함하는 코딩 서브블록을 예측하는데 사용되고, 사용되는 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플 단위로 4보다 크거나 같다.
2개의 움직임 벡터 및 2개의 상이한 참조 픽쳐가 샘플(p0)을 포함하는 코딩 서브블록을 예측하는데 사용되고, 동일한 2개의 참조 픽처에 대한 2개의 움직임 벡터가 샘플(q0)을 포함하는 코딩 서브블록을 예측하는데 사용되고, 동일한 참조 픽처에 대한 2개의 코딩 서브블록의 예측에 사용되는 2개의 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플 단위로 4보다 크거나 같다.
동일한 참조 픽처에 대한 2개의 움직임 벡터는 샘플(p0)을 포함하는 코딩 서브블록을 예측하는데 사용되고, 동일한 참조 픽처에 대한 2개의 움직임 벡터는 샘플(q0)을 포함하는 코딩 서브블록을 예측하는데 사용되고, 다음 조건 둘다가 참이다:
2개의 코딩 서브블록의 예측에 사용되는 list 0 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플 단위로 4보다 크거나 같거나 2개의 코딩 서브블록의 예측에 사용되는 list 1 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플 단위로 4보다 크거나 같다.
샘플(p0)을 포함하는 코딩 서브블록의 예측에 사용되는 list 0 움직임 벡터및 샘플(q0)을 포함하는 코딩 서브블록의 예측에 사용되는 list 1 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플 단위로 4보다 크거나 같거나 샘플(p0)을 포함하는 코딩 서브블록의 예측에 사용되는 list 1 움직임 벡터 및 샘플(q0)을 포함하는 코딩 서브블록의 예측에 사용되는 list 0 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플 단위로 4보다 크거나 같다.
5.13a 실시예 #13a
본 실시예는 경계 강도 유도를 기술한다. 새롭게 추가된 텍스트는 굵은 기울임체이다.
8.8.3.5 경계 필터링 강도의 유도 프로세스
이 프로세스로의 입력은:
픽처 샘플 어레이(recPicture),
현재 픽처의 좌측 상단 샘플에 대하여 현재 코딩 블록의 좌측 상단 샘플을 나타내는 위치 ( xCb, yCb ),
현재 코딩 블록의 폭을 나타내는 변수(nCbW),
현재 코딩 블록의 높이를 나타내는 변수(nCbH),
수직(EDGE_VER) 또는 수평 (EDGE_HOR) 에지가 필터링되는지를 나타내는 변수(edgeType),
현재 코딩 블록의 칼라 성분을 나타내는 변수(cIdx)
2차원 (nCbW)x(nCbH) 어레이(edgeFlags)이다.
이 프로세스의 출력은 경계 필터링 강도를 나타내는 2차원 (nCbW)x(nCbH) 어레이(bS)이다.
…
변수 bS[ xDi ][ yDj ] 는 다음과 같이 유도된다:
cIdx가 0과 동일하고, 양 샘플(p0 및 q0)이 1과 동일한 intra_bdpcm_flag을 갖는 코딩 블록에 있으면, bS[ xDi ][ yDj ]는 0과 동일하게 설정된다.
그렇지 않고, 샘플(p0 또는 q0)이 인트라 예측 모드로 코딩된 코딩 유닛의 코딩 블록에 있으면, bS[ xDi ][ yDj ]는 2와 동일하게 설정된다.
그렇지 않고, 블록 에지가 또한 변환 블록 에지이고 샘플(p0 또는 q0)이 1과 동일한 ciip_flag를 갖는 코딩 블록에 있으면, bS[ xDi ][ yDj ]는 2와 동일하게 설정된다.
그렇지 않고, 블록 에지가 또한 변환 블록 에지이고 샘플(p0 또는 q0)이 하나 이상의 0이 아닌 변환 계수 레벨을 포함하는 변환 블록에 있으면, bS[ xDi ][ yDj ]는 1과 동일하게 설정된다.
그렇지 않고, 샘플(p0)을 포함하는 코딩 서브블록의 예측 모드가 샘플(q0)을 포함하는 코딩 서브블록의 예측 모드와 다르면, bS[ xDi ][ yDj ]는 1과 동일하게 설정된다.
그렇지 않고, cIdx가 0과 동일하고 다음의 조건 중의 하나 이상이 참이면, bS[ xDi ][ yDj ]는 1과 동일하게 설정된다:
샘플(p0)을 포함하는 코딩 서브블록 및 샘플(q0)을 포함하는 코딩 서브블록이 둘다 IBC 예측 모드로 코딩되고, 2개의 코딩 서브블록의 예측에 사용되는 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플 단위로 4보다 크거나 같다.
샘플(p0)을 포함하는 코딩 서브블록의 예측을 위해, 샘플(q0)을 포함하는 코딩 서브블록의 예측을 위한 것과는 다른 참조 픽처 또는 상이한 수의 움직임 벡터가 사용된다.
노트 1 - 2개의 코딩 서브블록에 사용되는 참조 픽쳐가 동일한지 상이한지의 결정은 참조 픽처 리스트 0으로의 인덱스 또는 참조 픽처 리스트 1로의 인덱스를 이용하여 예측이 형성되는지 또는 참조 픽처 리스트 내의 인덱스 위치가 상이한지에 상관없이 어떤 픽처가 참조되는지에만 기초한다.
노트 2 - ( xSb, ySb )를 커버하는 좌측 상단 샘플을 갖는 코딩 서브블록의 예측에 사용되는 움직임 벡터의 수는 PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ]와 동일하다.
하나의 움직임 벡터가 샘플(p0)을 포함하는 코딩 서브블록을 예측하는데 사용되고, 하나의 움직임 벡터가 샘플(q0)을 포함하는 코딩 서브블록을 예측하는데 사용되고, 사용되는 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플 단위로 4보다 크거나 같다.
2개의 움직임 벡터 및 2개의 상이한 참조 픽쳐가 샘플(p0)을 포함하는 코딩 서브블록을 예측하는데 사용되고, 동일한 2개의 참조 픽처에 대한 2개의 움직임 벡터가 샘플(q0)을 포함하는 코딩 서브블록을 예측하는데 사용되고, 동일한 참조 픽처에 대한 2개의 코딩 서브블록의 예측에 사용되는 2개의 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플 단위로 4보다 크거나 같다.
동일한 참조 픽처에 대한 2개의 움직임 벡터는 샘플(p0)을 포함하는 코딩 서브블록을 예측하는데 사용되고, 동일한 참조 픽처에 대한 2개의 움직임 벡터는 샘플(q0)을 포함하는 코딩 서브블록을 예측하는데 사용되고, 다음 조건 둘다가 참이다:
2개의 코딩 서브블록의 예측에 사용되는 list 0 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플 단위로 4보다 크거나 같거나 2개의 코딩 서브블록의 예측에 사용되는 list 1 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플 단위로 4보다 크거나 같다.
샘플(p0)을 포함하는 코딩 서브블록의 예측에 사용되는 list 0 움직임 벡터및 샘플(q0)을 포함하는 코딩 서브블록의 예측에 사용되는 list 1 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플 단위로 4보다 크거나 같거나 샘플(p0)을 포함하는 코딩 서브블록의 예측에 사용되는 list 1 움직임 벡터 및 샘플(q0)을 포함하는 코딩 서브블록의 예측에 사용되는 list 0 움직임 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 루마 샘플 단위로 4보다 크거나 같다.
그렇지 않으면, 변수 bS[ xDi ][ yDj ]는 0와 동일하게 설정된다.
5.13b 실시예 #13b
본 실시예는 이스케이프 샘플 코딩 및 재구성을 기술한다. 새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
팔레트 모드에 대한 디코딩 프로세스
이 프로세스로의 입력은:
현재 픽처의 좌측 상단 루마 샘플에 대하여 현재 블록의 좌측 상단 루마 샘플을 나타내는 위치 ( xCb, yCb ),
팔레트 테이블의 제1 칼라 성분을 나타내는 변수(startComp),
현재 블록의 칼라 성분을 나타내는 변수(cIdx),
현재 블록의 폭 및 높이를 나타내는 2개의 변수(nCbW 및 nCbH)이다.
이 프로세스의 출력은 어레이(recSamples[ x ][ y ])이고, x = 0.. nCbW - 1, y = 0.. nCbH - 1는 블록에 대한 재구성된 샘플 값을 나타낸다.
cIdx의 값에 따라, 변수(nSubWidth 및 nSubHeight)는 다음과 같이 유도된다:
cIdx이 0과 같으면, nSubWidth는 1로 설정되고 nSubHeight는 1로 설정된다.
그렇지 않으면, nSubWidth는 SubWidthC로 설정되고, nSubHeight는 to SubHeightC로 설정된다.
위치( xCb, yCb )의 재구성된 샘플 어레이(recSamples)의 ( nCbW x nCbH ) 블록은 recSamples[ x ][ y ]로 표현되고, 여기서, x = 0..nCTbW - 1 및 y = 0..nCbH - 1이고, recSamples[ x ][ y ]의 값(각 x는 0 이상
이하의 범위 내이고 각 y는 0 이상
이하의 범위 내임)이 다음과 같이 유도된다:
변수(xL 및 yL)는 다음과 같이 유도된다:
변수(bIsEscapeSample)는 다음과 같이 유도된다:
PaletteIndexMap[ xCb + xL ][ yCb + yL ]가 MaxPaletteIndex와 동일하고 palette_escape_val_present_flag가 1과 동일하면, bIsEscapeSample는 1과 동일하게 설정된다.
그렇지 않으면, bIsEscapeSample는 0와 동일하게 설정된다.
bIsEscapeSample가 0과 동일하면, 다음이 적용된다:
그렇지 않고, cu_transquant_bypass_flag가 1과 동일하면, 다음이 적용된다:
그렇지 않으면(bIsEscapeSample가 1과 동일하고 cu_transquant_bypass_flag가 0과 동일하면), 다음 순서의 단계가 적용된다:
8.7.1 절에 명시된 양자화 파라미터에 대한 유도 프로세스는 현재 픽처의 좌측 상단 샘플에 대하여 현재 블록의 좌측 상단 샘플을 나타내는 위치( xCb, yCb )로 인보크(invoke)된다.
양자화 파라미터(qP)는 다음과 같이 유도된다:
cIdx가 0과 동일하면,
qP = Max( 0, Qp′)
(8-73)이다.
그렇지 않고, cIdx가 1과 동일하면,
qP = Max( 0, Qp′)
(8-74)이다.
그렇지 않으면 (cIdx가 2와 동일하면),
qP = Max( 0, Qp′)
(8-75)이다.
변수 bitDepth는 다음과 같이 유도된다:
[[리스트 levelScale[ ]는 levelScale[ k ] = { 40, 45, 51, 57, 64, 72 }로서 명시되고, 여기서, k = 0..5이다]]
다음이 적용된다:
[[tmpVal = ( PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] *
levelScale[ qP%6 ] ) << ( qP / 6 ) + 32 ) >> 6
(8-77)
recSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) 1, tmpVal )
(8-78)]]
cIdx가 0과 동일하고 numComps가 1과 동일하거나
cIdx가 3과 동일하다는 조건 중 하나가 참이면,
변수 PredictorPaletteSize[startComp] 및 어레이 PredictorPaletteEntries는 다음과 같이 유도되고 수정된다:
for( i = 0; i < CurrentPaletteSize[ startComp ]; i++ )
for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++ )
newPredictorPaletteEntries[ cIdx ][ i ] = CurrentPaletteEntries[ cIdx ][ i ]
newPredictorPaletteSize = CurrentPaletteSize[ startComp ]
for( i = 0; i < PredictorPaletteSize && newPredictorPaletteSize < PaletteMaxPredictorSize; i++ )
if( !PalettePredictorEntryReuseFlags[ i ] ) {
for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++ )
(8-79)
newPredictorPaletteEntries[ cIdx ][ newPredictorPaletteSize ] =
PredictorPaletteEntries[ cIdx ][ i ]
newPredictorPaletteSize++
}
for( cIdx = startComp; cIdx < ( startComp + numComps ); cIdx++ )
for( i = 0; i < newPredictorPaletteSize; i++ )
PredictorPaletteEntries[ cIdx ][ i ] = newPredictorPaletteEntries[ cIdx ][ i ]
PredictorPaletteSize[ startComp ] = newPredictorPaletteSize
PredictorPaletteSize[ startComp ]의 값이 0 이상 PaletteMaxPredictorSize 이하의 범위에 있어야 한다는 것이 비트스트림 적합성의 요구사항이다.
5.14 실시예 #14
새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
8.4.5.3 팔레트 모드에 대한 디코딩 프로세스
이 프로세스로의 입력은:
- 현재 픽처의 좌측 상단 루마 샘플에 대하여 현재 블록의 좌측 상단 루마 샘플을 나타내는 위치 ( xCb, yCb ),
- 팔레트 테이블의 제1 칼라 성분을 나타내는 변수(startComp),
- 현재 블록의 칼라 성분을 나타내는 변수(cIdx),
- 현재 블록의 폭 및 높이를 나타내는 2개의 변수(nCbW 및 nCbH)이다.
cIdx의 값에 따라, 변수(nSubWidth 및 nSubHeight)는 다음과 같이 유도된다:
- cIdx이 0과 같으면, nSubWidth는 1로 설정되고 nSubHeight는 1로 설정된다.
- 그렇지 않으면, nSubWidth는 SubWidthC로 설정되고, nSubHeight는 SubHeightC로 설정된다.
위치( xCb, yCb )의 재구성된 샘플 어레이(recSamples)의 ( nCbW x nCbH ) 블록은 recSamples[ x ][ y ]로 표현되고, x = 0..nCTbW - 1 및 y = 0..nCbH 1이고, recSamples[ x ][ y ]의 값(각 x는 0 이상 nCbW - 1 이하의 범위 내이고, 각 y는 0 이상 nCbH - 1 이하의 범위 내임)이 다음과 같이 유도된다:
변수(xL 및 yL)는 다음과 같이 유도된다:
변수(bIsEscapeSample)는 다음과 같이 유도된다:
- PaletteIndexMap[ xCb + xL ][ yCb + yL ]가 MaxPaletteIndex와 동일하고 palette_escape_val_present_flag가 1과 동일하면, bIsEscapeSample는 1과 동일하게 설정된다.
- 그렇지 않고, bIsEscapeSample는 0와 동일하게 설정된다.
- bIsEscapeSample가 0과 동일하면, 다음이 적용된다:
- 그렇지 않고, cu_transquant_bypass_flag가 1과 동일하면, 다음이 적용된다:
- 그렇지 않으면(bIsEscapeSample가 1과 동일하고 cu_transquant_bypass_flag가 0과 동일하면), 다음 순서의 단계가 적용된다:
1. 8.7.1 절에 명시된 양자화 파라미터에 대한 유도 프로세스는 현재 픽처의 좌측 상단 샘플에 대하여 현재 블록의 좌측 상단 샘플을 나타내는 위치( xCb, yCb )로 인보크된다.
[Ed. (BB): QP는 인트라 CU 디코딩 프로세스의 초기에 이미 유도되어, 이 하위절에서 이를 다시 유도할 필요는 없다. HEVC v4 SCC에서와 유사하게, 이 중복은 제거될 수 있을 것으로 생각된다. 확인해주세요]
2. 양자화 파라미터(qP)는 다음과 같이 유도된다:
- cIdx가 0과 동일하면,
qP = Max( QpPrimeTsMin, Qp′)이다.
(8-238)
- 그렇지 않고, cIdx가 1과 동일하면,
qP = Max( QpPrimeTsMin, Qp′)이다.
(8-239)
- 그렇지 않으면(cIdx가 2와 동일하면),
qP = Max( QpPrimeTsMin, Qp′)이다.
(8-240)
min_qp_prime_ts_minus4는 다음과 같이 변환 스킵 모드에 대한 최소 허용 양자화 파라미터를 나타낸다:
QpPrimeTsMin = 4 + min_qp_prime_ts_ minus4
3. 변수 bitDepth는 다음과 같이 유도된다:
bitDepth = ( cIdx = = 0 ) ? BitDepthY : BitDepthC
(8-241)
4. 리스트 levelScale[ ]는 levelScale[ k ] = { 40, 45, 51, 57, 64, 72 }로서 명시되고, 여기서 k = 0..5이다.
[Ed. (BB): 넌-팔레트 CU의 경우, levelScale는 rectNonTsFlag에 의존한다. 이것이 여기에도 적용되어야 하는가?]
5. 다음이 적용된다:
tmpVal = ( PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] * levelScale[ qP%6 ] ) << ( qP / 6 ) + 32 ) >> 6
(8-242)
recSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) 1, tmpVal )
(8-243)
다음의 조건 중의 하나가 참이면:
- cIdx가 0과 동일하고 numComps가 1과 동일하고;
- cIdx가 3과 동일하고;
변수 PredictorPaletteSize[startComp] 및 어레이 PredictorPaletteEntries는 다음과 같이 유도되거나 수정된다:
for( i = 0; i < CurrentPaletteSize[ startComp ]; i++ )
for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++ )
newPredictorPaletteEntries[ cIdx ][ i ] = CurrentPaletteEntries[ cIdx ][ i ]
newPredictorPaletteSize = CurrentPaletteSize[ startComp ]
for( i = 0; i < PredictorPaletteSize && newPredictorPaletteSize < PaletteMaxPredictorSize; i++ )
if( !PalettePredictorEntryReuseFlags[ i ] ) {
for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++ )
(8-244)
newPredictorPaletteEntries[ cIdx ][ newPredictorPaletteSize ] =
PredictorPaletteEntries[ cIdx ][ i ]
newPredictorPaletteSize++
}
for( cIdx = startComp; cIdx < ( startComp + numComps ); cIdx++ )
for( i = 0; i < newPredictorPaletteSize; i++ )
PredictorPaletteEntries[ cIdx ][ i ] = newPredictorPaletteEntries[ cIdx ][ i ]
PredictorPaletteSize[ startComp ] = newPredictorPaletteSize
PredictorPaletteSize[ startComp ]의 값이 0 이상 PaletteMaxPredictorSize 이하의 범위에 있어야 한다는 것이 비트스트림 적합성의 요구사항이다.
5.15 실시예 # 15
새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
8.4.2 루마 인트라 예측 모드에 대한 유도 프로세스
…
- 그렇지 않으면 (skip_intra_flag[ xPb ][ yPb ] 및 DimFlag[ xPb ][ yPb ] 모두가 0과 동일하면), IntraPredModeY[ xPb ][ yPb ]는 다음 순서의 단계에 의해 유도된다:
1. 인접 위치( xNbA, yNbA ) 및 ( xNbB, yNbB )는 각각 ( xPb 1, yPb ) 및 ( xPb, yPb 1 )와 동일하게 설정된다.
2. X가 A 또는 B로 대체되면, 변수(candIntraPredModeX)는 다음과 같이 유도된다:
- 6.4.1절에 명시된 z-스캔 순서의 블록에 대한 이용가능성 유도 프로세스는 입력으로서 ( xPb, yPb )와 동일하게 설정된 위치 ( xCurr, yCurr ) 및 ( xNbX, yNbX )와 동일하게 설정된 인접 위치 ( xNbY, yNbY )로 인보크되고, 출력은 availableX에 할당된다.
- 후보 인트라 예측 모드(candIntraPredModeX)는 다음과 같이 유도된다:
- availableX이 거짓(FALSE)이면, candIntraPredModeX는 INTRA_DC과 동일하게 설정된다.
[[- 그렇지 않고, CuPredMode[ xNbX ][ yNbX ]가 MODE_INTRA와 동일하지 않거나 pcm_flag[ xNbX ][ yNbX ]가 1과 동일하면, candIntraPredModeX가 INTRA_DC과 동일하게 설정되고, ]]
- 그렇지 않고, CuPredMode[ xNbX ][ yNbX ]가 MODE_INTRA과 동일하지 않거나, pcm_flag[ xNbX ][ yNbX ]가 1과 동일하거나 palette_mode_flag가 1과 동일하면, candIntraPredModeX가 INTRA_DC와 동일하게 설정되고,
- 그렇지 않고, X가 B와 동일하고 yPb - 1가 ( ( yPb >> CtbLog2SizeY ) << CtbLog2SizeY )보다 작으면, candIntraPredModeB는 INTRA_DC과 동일하게 설정된다.
- 그렇지 않고, IntraPredModeY[ xNbX ][ yNbX ]가 34보다 크면, candIntraPredModeX는 INTRA_DC과 동일하게 설정된다.
...
5.16 실시예 #16
새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
8.4.2 루마 인트라 예측 모드에 대한 유도 프로세스
이 프로세스로의 입력은:
- 현재 픽처의 좌측 상단 루마 샘플에 대하여 현재 루마 코딩 블록의 좌측 상단 루마 샘플을 나타내는 위치 ( xCb, yCb ),
- 루마 샘플의 현재 코딩 블록의 폭을 나타내는 변수(cbWidth),
- 루마 샘플의 현재 코딩 블록의 높이를 나타내는 변수(cbHeight)이다.
이 프로세스에서, 루마 인트라 예측 모드(IntraPredModeY[ xCb ][ yCb ])가 유도된다.
1. X가 A 또는 B로 대체되면, 변수(candIntraPredModeX)는 다음과 같이 유도된다:
- 6.4.X절 [Ed. (BB): 인접 블록 이용가능성 확인 프로세스 tbd] 에 명시된 블록에 대한 이용가능성 유도 프로세스는 입력으로서 ( xCb, yCb )와 동일하게 설정된 위치( xCurr, yCurr ) 및 ( xNbX, yNbX )와 동일하게 설정된 인접 위치( xNbY, yNbY )로 인보크되고, 출력은 availableX에 할당된다.
- 후보 인트라 예측 모드(candIntraPredModeX)는 다음과 같이 유도된다:
- 다음 조건 중의 하나 이상이 참이면, candIntraPredModeX는 INTRA_PLANAR와 동일하게 설정된다.
- 변수(availableX)는 거짓(FALSE)과 동일하다.
- CuPredMode[ xNbX ][ yNbX ]는 MODE_INTRA와 동일하지 않다.
- pred_mode_plt_flag는 1과 동일하다.
- intra_mip_flag[ xNbX ][ yNbX ]는 1과 동일하다.
- X가 B와 동일하고 yCb - 1는 ( ( yCb >> CtbLog2SizeY ) << CtbLog2SizeY )보다 작다.
- 그렇지 않으면, candIntraPredModeX는 IntraPredModeY[ xNbX ][ yNbX ]와 동일하게 설정된다.
…
변수(IntraPredModeY[ x ][ y ])(여기서, x = xCb..xCb + cbWidth 1 및 y = yCb..yCb + cbHeight - 1)는 IntraPredModeY[ xCb ][ yCb ]와 동일하게 설정된다.
5.17 실시예 #17
새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
8.4.3 루마 인트라 예측 모드에 대한 유도 프로세스
이 프로세스로의 입력은:
- 현재 픽처의 좌측 상단 루마 샘플에 대하여 현재 루마 코딩 블록의 좌측 상단 루마 샘플을 나타내는 위치 ( xCb, yCb ),
- 루마 샘플의 현재 코딩 블록의 폭을 나타내는 변수(cbWidth),
- 루마 샘플의 현재 코딩 블록의 높이를 나타내는 변수(cbHeight)이다.
이 프로세스에서, 루마 인트라 예측 모드(IntraPredModeY[ xCb ][ yCb ])가 유도된다.
2. X가 A 또는 B로 대체되면, 변수(candIntraPredModeX)는 다음과 같이 유도된다:
- 6.4.X절 [Ed. (BB): 인접 블록 이용가능성 확인 프로세스 tbd] 에 명시된 블록에 대한 이용가능성 유도 프로세스는 입력으로서 ( xCb, yCb )와 동일하게 설정된 위치( xCurr, yCurr ) 및 ( xNbX, yNbX )와 동일하게 설정된 인접 위치( xNbY, yNbY )로 인보크되고, 출력은 availableX에 할당된다.
- 후보 인트라 예측 모드(candIntraPredModeX)는 다음과 같이 유도된다:
- 다음 조건 중의 하나 이상이 참이면, candIntraPredModeX는 [[INTRA_PLANAR]] INTRA_DC 와 동일하게 설정된다.
- 변수(availableX)는 거짓(FALSE)과 동일하다.
- CuPredMode[ xNbX ][ yNbX ]는 MODE_INTRA와 동일하지 않다.
- intra_mip_flag[ xNbX ][ yNbX ]가 1과 동일하다 .
- X가 B와 동일하고 yCb - 1는 ( ( yCb >> CtbLog2SizeY ) << CtbLog2SizeY )보다 작다.
- 그렇지 않으면, candIntraPredModeX는 IntraPredModeY[ xNbX ][ yNbX ]와 동일하게 설정된다.
…
변수(IntraPredModeY[ x ][ y ])(여기서, x = xCb..xCb + cbWidth 1 및 y = yCb..yCb + cbHeight - 1)는 IntraPredModeY[ xCb ][ yCb ]와 동일하게 설정된다.
5.18 실시예 #18
새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
8.4.3 루마 인트라 예측 모드에 대한 유도 프로세스
이 프로세스로의 입력은:
- 현재 픽처의 좌측 상단 루마 샘플에 대하여 현재 루마 코딩 블록의 좌측 상단 루마 샘플을 나타내는 위치 ( xCb, yCb ),
- 루마 샘플의 현재 코딩 블록의 폭을 나타내는 변수(cbWidth),
- 루마 샘플의 현재 코딩 블록의 높이를 나타내는 변수(cbHeight)이다.
이 프로세스에서, 루마 인트라 예측 모드(IntraPredModeY[ xCb ][ yCb ])가 유도된다.
3. X가 A 또는 B로 대체되면, 변수(candIntraPredModeX)는 다음과 같이 유도된다:
- 6.4.X절 [Ed. (BB): 인접 블록 이용가능성 확인 프로세스 tbd] 에 명시된 블록에 대한 이용가능성 유도 프로세스는 입력으로서 ( xCb, yCb )와 동일하게 설정된 위치( xCurr, yCurr ) 및 ( xNbX, yNbX )와 동일하게 설정된 인접 위치( xNbY, yNbY )로 인보크되고, 출력은 availableX에 할당된다.
- 후보 인트라 예측 모드(candIntraPredModeX)는 다음과 같이 유도된다:
- 다음 조건 중의 하나 이상이 참이면, candIntraPredModeX는 [[INTRA_PLANAR]] INTRA_DC 와 동일하게 설정된다.
- 변수(availableX)는 거짓(FALSE)과 동일하다.
- CuPredMode[ xNbX ][ yNbX ]는 MODE_INTRA와 동일하지 않다.
- intra_mip_flag[ xNbX ][ yNbX ]는 1과 동일하다.
- pred_mode_plt_flag는 1과 동일하다.
- X가 B와 동일하고 yCb - 1는 ( ( yCb >> CtbLog2SizeY ) << CtbLog2SizeY )보다 작다.
- 그렇지 않으면, candIntraPredModeX는 IntraPredModeY[ xNbX ][ yNbX ]와 동일하게 설정된다.
…
변수(IntraPredModeY[ x ][ y ])(여기서, x = xCb..xCb + cbWidth 1 및 y = yCb..yCb + cbHeight - 1)는 IntraPredModeY[ xCb ][ yCb ]와 동일하게 설정된다.
5.19 실시예 #19
새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
5.20 실시예 #20
새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
5.21 실시예 #21
새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
5.22 실시예 #22
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, pred_mode_plt_flag는 pred_mode_ibc_flag 이후에 시그널링된다. 새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
7.3.7.5
코딩 유닛 신택스
5.23 실시예 #23
새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
5.24 실시예 #24
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, pred_mode_plt_flag는 pred_mode_ibc_flag 후에 시그널링된다. 새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
7.3.7.5
코딩 유닛 신택스
5.25 실시예 #25
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, 팔레트 신택스는 현재 예측 모드가 MODE_PLT이면 시그널링된다. 새롭게 추가된 텍스는 굵은 기울임체이고 삭제된 텍스트는 “[[ ]]”로 마크된다.
7.3.7.5
코딩 유닛 신택스
5.26 실시예 #26
본 실시예는 크로마 인트라 예측 모드의 유도 프로세스를 기술한다. 새롭게 추가된 텍스트는 굵은 기울임체이다.
크로마 인트라 예측 모드에 대한 유도 프로세스
이 프로세스로의 입력은:
현재 픽처의 좌측 상단 샘플에 대하여 현재 크로마 코딩 블록의 좌측 상단 샘플을 나타내는 루마 위치 ( xCb, yCb ),
- 루마 샘플의 현재 코딩 블록의 폭을 나타내는 변수(cbWidth),
- 루마 샘플의 현재 코딩 블록의 높이를 나타내는 변수(cbHeight)이다.
이 프로세스에서, 루마 인트라 예측 모드(IntraPredModeC[ xCb ][ yCb ])가 유도된다.
- 해당 루마 인트라 예측 모드(lumaIntraPredMode)는 다음과 같이 유도된다:
- intra_mip_flag[ xCb ][ yCb ]가 1과 동일하면, lumaIntraPredMode는 INTRA_PLANAR과 동일하게 설정된다.
- 그렇지 않고, CuPredMode[ 0 ][ xCb ][ yCb ]가 MODE_IBC 또는 MODE_PLT 과 동일하면, lumaIntraPredMode는 INTRA_DC과 동일하게 설정된다.
- 그렇지 않으면, lumaIntraPredMode는 IntraPredModeY[ xCb + cbWidth / 2 ][ yCb + cbHeight / 2 ]와 동일하게 설정된다.
…
5.27 실시예 #27
본 실시예는 루마 샘플에 대한 맵핑 프로세스를 갖는 픽처 재구성 프로세스를 기술한다. 새롭게 추가된 텍스트는 굵은 기울임체이다.
루마 샘플에 대한 맵핑 프로세스를 갖는 픽처 재구성. 이 프로세스로의 입력은:
- 현재 픽처의 좌측 상단 샘플에 대하여 현재 블록의 좌측 상단 샘플의 위치 ( xCurr, yCurr ),
- 블록 폭을 나타내는 변수(nCurrSw),
- 블록 높이를 나타내는 변수(nCurrSh),
- 현재 블록의 루마 예측 샘플을 나타내는 (nCurrSw)x(nCurrSh) 어레이(predSamples),
- 현재 블록의 루마 잔차 샘플을 나타내는 (nCurrSw)x(nCurrSh) 어레이 (resSamples)이다.
이 프로세스의 출력은 재구성된 루마 픽처 샘플 어레이 (recSamples)이다.
맵핑된 예측 루마 샘플(predMapSamples)의 (nCurrSw)x(nCurrSh) 어레이는 다음과 같이 유도된다:
- 다음의 조건 중의 하나가 참이면, predMapSamples[ i ][ j ]는 predSamples[ i ][ j ]와 동일하게 설정되고, 여기서, i = 0..nCurrSw 1, j = 0..nCurrSh - 1이다:
- CuPredMode[ 0 ][ xCurr ][ yCurr ]는 MODE_INTRA와 동일하다.
- CuPredMode[ 0 ][ xCurr ][ yCurr ]는 MODE_IBC와 동일하다.
- CuPredMode[ 0 ][ xCurr ][ yCurr ]는 MODE_PLT와 동일하다.
- CuPredMode[ 0 ][ xCurr ][ yCurr ]는 MODE_INTER와 동일하고 ciip_flag[ xCurr ][ yCurr ]는 1과 동일하다.
- 그렇지 않으면(CuPredMode[ 0 ][ xCurr ][ yCurr ]가 MODE_INTER와 동일하고 ciip_flag[ xCurr ][ yCurr ]가 0과 동일하면), 다음이 적용된다:
…
5.28 실시예 #28
본 실시예는 섹션 4의 예 24에 대응하는 예시적인 스캐닝 순서를 기술한다.
이 프로세스로의 입력은 블록 폭(blkWidth) 및 블록 높이(blkHeight)이다.
이 프로세스의 출력은 어레이 (hReverScan[ sPos ][ sComp ] 및 vReverScan[ sPos ][ sComp ])이다. 어레이(hReverScan)는 수평 횡단 스캔 순서를 나타내고, 어레이(vReverScan)는 수직 횡단 스캔 순서를 나타낸다. 어레이 인덱스(sPos)는 0 이상이고 ( blkWidth * blkHeight ) - 1 이하의 스캔 위치 범위를 나타낸다. 0과 동일한 어레이 인덱스(sComp)는 수평 성분을 나타내고, 1과 동일한 어레이 인덱스(sComp)는 수직 성분을 나타낸다. blkWidth 및 blkHeight의 값에 따라, 어레이(hTravScan 및 vTravScan)는 다음과 같이 유도된다:
i = 0
for(y = 0; y < blkHeight; y++ )
{
if( y % 2 != 0 ) {
for( x = 0; x < blkWidth; x++ ) {
hReverScan[ i ][ 0 ] = x
hReverScan [ i ][ 1 ] = y
i++
}
}
else
{
for( x = blkWidth 1; x >= 0; x ) {
hReverScan [ i ][ 0 ] = x
hReverScan [ i ][ 1 ] = y
i++
}
}
}
i = 0
for( x = 0; x < blkWidth; x++ )
{
if( x % 2 != 0 )
{
for( y = 0; y < blkHeight; y++ ) {
vReverScan[ i ][ 0 ] = x
vReverScan [ i ][ 1 ] = y
i++
}
}
else
{
for( y = blkHeight 1; y >= 0; y ) {
vReverScan [ i ][ 0 ] = x
vReverScan [ i ][ 1 ] = y
i++
}
}
}
도 6은 비디오 프로세싱 장치(600)의 예를 나타내는 블록도이다. 장치(600)는 여기에 기재된 방법 중의 하나 이상을 구현하는데 사용될 수 있다. 장치(600)는 스마트폰, 태블릿, 컴퓨터, IoT(Internet of Things) 수신기 등에서 구현될 수 있다. 장치(600)는 하나 이상의 프로세서(602), 하나 이상의 메모리(604) 및 비디오 프로세싱 하드웨어(606)를 포함할 수 있다. 프로세서(들)(602)는 본 문서에 기재된 하나 이상의 방법을 구현하도록 구성될 수 있다. 메모리(메모리들)(604)는 여기에 기재된 방법 및 기술을 구현하는데 사용되는 데이터 및 코드를 저장하는데 사용될 수 있다. 비디오 프로세싱 하드웨어(606)는 하드웨어 회로에서 본 문서에 기술된 일부 기술을 구현하는데 사용될 수 있다.
도 8은 비디오 프로세싱 방법(800)의 예의 플로우챠트이다. 방법(800)은 팔레트 모드가 변환 유닛, 코딩 블록 또는 영역을 프로세싱하는데 사용될 것임을 결정하는 단계(805) - 팔레트 모드의 사용은 예측 모드와 별도로 코딩됨 - 및 팔레트 모드를 이용하여 변환 유닛, 코딩 블록 또는 영역의 추가의 프로세싱을 수행하는 단계(810)를 포함한다.
방법(800)을 참조하여, 팔레트 모드 코딩 및 그 사용의 일부 예가 본 문서의 섹션 4에 기재되어 있다.
방법(800)을 참조하여, 비디오 블록은, 팔레트 모드 코딩과 관련된 비트스트림 생성 규칙을 사용함으로써 비트 효율이 달성될 수 있는 비디오 비트스트림에 인코딩될 수 있다.
방법은, 예측 모드가 팔레트 모드의 사용의 지시 전에 코딩되는 것을 포함할 수 있다.
방법은, 팔레트 모드의 사용이 예측 모드에 기초하여 조건적으로 시그널링되는 것을 포함할 수 있다.
방법은, 예측 모드가 인트라 블록 카피 모드이고 팔레트 모드의 사용의 지시의 시그널링이 스킵되는 것을 포함할 수 있다.
방법은, 현재 예측 모드가 인트라 블록 카피 모드인 것에 기초하여 팔레트 모드의 사용의 지시가 거짓인 것으로 결정되는 것을 포함할 수 있다.
방법은, 예측 모드가 인터 모드이고 팔레트 모드의 사용의 지시의 시그널링이 스킵되는 것을 포함할 수 있다.
방법은, 현재 예측 모드가 인터 모드인 것에 기초하여 팔레트 모드의 사용의 지시가 거짓인 것으로 결정되는 것을 포함할 수 있다.
방법은, 예측 모드가 인트라 모드이고 팔레트 모드의 사용의 지시의 시그널링이 스킵되는 것을 포함할 수 있다.
방법은, 현재 예측 모드가 인트라 모드인 것에 기초하여 팔레트 모드의 사용의 지시가 거짓인 것으로 결정되는 것을 포함할 수 있다.
방법은, 예측 모드가 인트라 모드이고 팔레트 모드의 사용의 지시의 시그널링이 스킵되는 것으로 포함할 수 있다.
방법은, 예측 모드가 인트라 블록 카피 모드이고 팔레트 모드의 사용의 지시의 시그널링이 수행되는 것을 포함할 수 있다.
방법은, 픽처, 슬라이스 또는 타일 그룹 타입에 기초하여 팔레트 모드의 사용의 지시가 시그널링되는 것을 포함할 수 있다.
방법은, 팔레트 모드가 예측 모드에 대한 후보로서 추가되는 것을 포함할 수 있다.
방법은, 인트라 슬라이스, 인터 슬라이스, I 픽처, P 픽처, B 픽처 또는 인트라 타일 그룹에 대하여 예측 모드가 인트라 모드, 인트라 블록 카피 모드 또는 팔레트 모드 중의 하나 이상을 포함하는 것을 포함할 수 있다.
방법은, 예측 모드가 인트라 모드, 인터 모드, 인트라 블록 카피 모드, 또는 팔레트 모드 중의 2 이상을 포함하는 것을 포함할 수 있다.
방법은, 팔레트 모드의 사용이 조건에 기초하여 유도되거나 시그널링을 통해 지시되는 것을 포함할 수 있다.
방법은, 조건이 현재 블록의 블록 차원, 현재 블록의 예측 모드, 현재 블록의 양자화 파라미터(QP), 인접 블록의 팔레트 플래그, 인접 블록의 인트라 블록 카피 플래그, 칼라 포맷의 지시, 개별 또는 듀얼 코딩 트리 구조 또는 슬라이스 타입 또는 그룹 타입 또는 픽처 타입 중의 하나 이상을 포함하는 것을 포함할 수 있다.
방법은, 팔레트 모드의 사용이 슬라이스 레벨 플래그, 타일 그룹 레벨 플래그 또는 픽처 레벨 플래그에 기초하여 시그널링 또는 유도되는 것을 포함할 수 있다.
방법은, 인트라 블록 카피 모드의 사용의 지시가 슬라이스 레벨 플래그, 타일 그룹 레벨 플래그 또는 픽처 레벨 플래그에 기초하여 시그널링 또는 유도되는 것을 포함할 수 있다.
이전 섹션에 개시된 항목 6 내지 9를 참조하여, 일부 실시예는 바람직하게 다음의 솔루션을 사용할 수 있다.
하나의 솔루션은, 비디오의 픽처의 현재 비디오 블록, 및 인트라 블록 카피 모드가 변환에 사용되는지에 관한 정보가 비트스트림 표현에서 시그널링되거나 현재 비디오 블록의 코딩 조건에 기초하여 유도되는 비디오의 표현 간의 변환을 수행하는 단계를 포함하고, 인트라 블록 카피 모드는 픽처의 또다른 비디오 블록으로부터 현재 비디오 블록을 코딩하는 것을 포함한다. 다음의 특징은 다양한 실시예에서 구현될 수 있다.
- 코딩 조건은 현재 비디오 블록의 블록 차원을 포함하고,
- 코딩 조건은 현재 비디오 블록의 예측 모드 또는 현재 비디오 블록에 대한 변환에 사용되는 양자화 파라미터를 포함한다.
이전 섹션에 개시된 항목 13 내지 15를 참조하여, 일부 실시예는 바람직하게 다음의 솔루션을 구현할 수 있다.
솔루션은 디블록킹 필터가 비디오의 픽처의 현재 비디오 블록의 변환 동안 적용되는지를 결정하는 단계 - 현재 비디오 블록이 현재 비디오 블록의 전체 픽셀보다 적은 대표적인 샘플 값을 이용하여 표현되는 팔레트 모드 코딩을 이용하여 현재 비디오 블록이 코딩됨 -; 및 디블록킹 필터가 적용되는 것으로 결정되는 경우 디블록킹 필터가 적용되도록 변환을 수행하는 단계를 포함하는 비디오 프로세싱 방법을 포함할 수 있다.
또 다른 솔루션은 비디오의 픽처의 현재 비디오 블록과 비디오의 비트스트림 표현 간의 변환 동안 사용될 양자화 또는 역 양자화 프로세스를 결정하는 단계 - 현재 비디오 블록은 현재 비디오 블록의 전체 픽셀보다 적은 대표적인 샘플 값을 이용하여 표현되는 팔레트 모드 코딩을 이용하여 코딩됨 -; 및 양자화 또는 역 양자화 프로세스의 결정에 기초하여 변환을 수행하는 단계를 포함하는 비디오 프로세싱 방법을 포함할 수 있다. 추가의 특징은 다음을 포함할 수 있다:
- 현재 비디오블록에 대하여 결정된 양자화 또는 역양자화 프로세스는 팔레트 코딩 모드로부터 상이하게 코딩된 또다른 비디오 블록에 적용된 또다른 양자화 또는 또다른 역양자화 프로세스와는 다르다.
- 변환은 현재 비디오 블록을 비트스트림 표현으로 인코딩하는 것을 포함한다.
- 변환은 비트스트림 표현을 디코딩하여 비디오의 현재 비디오 블록을 생성하는 것을 포함한다.
- 상기 결정은 인트라 코딩된 또다른 비디오 블록의 변환을 위해 사용되는 또다른 결정 프로세스와 동일한 결정 프로세스를 사용한다.
개시된 기술은 비디오 인코더 또는 디코더에서 구현되어 향상된 코딩 트리 구조를 이용하여 압축 효율을 개선할 수 있음을 이해할 것이다.
이전 섹션의 항목 16 내지 21을 참조하여, 일부 솔루션은 다음과 같을 수 있다:
비디오 프로세싱 방법은, 다수 비디오 블록을 포함하는 비디오의 현재 비디오 블록 및 비디오의 비트스트림 표현 간의 변환을 위해, 현재 비디오 블록이 팔레트 코딩 블록인 것을 결정하는 단계; 상기 결정에 기초하여, 현재 비디오 블록이 인트라 코딩 블록인 것으로 간주함으로써 MPM(most probable mode)의 리스트 구성 프로세스를 수행하는 단계; 및 상기 리스트 구성 프로세스의 결과에 기초하여 상기 변환을 수행하는 단계를 포함하고, 상기 팔레트 코딩 블록은 팔레트 또는 대표 샘플 값을 이용하여 코딩 또는 디코딩된다.
상기 방법에서, 리스트 구성 프로세스는 인접 팔레트 코딩 블록을 디폴트 모드를 갖는 인트라 블록으로서 처리한다.
비디오 프로세싱 방법은, 다수 비디오 블록을 포함하는 비디오의 현재 비디오 블록 및 비디오의 비트스트림 표현 간의 변환을 위해, 현재 비디오 블록이 팔레트 코딩 블록인 것을 결정하는 단계; 상기 결정에 기초하여 현재 비디오 블록이 넌-인트라 코딩 블록인 것으로 간주함으로써 MPM(most probable mode)의 리스트 구성 프로세스를 수행하는 단계; 및 상기 리스트 구성 프로세스의 결과에 기초하여 상기 변환을 수행하는 단계를 포함하고, 상기 팔레트 코딩 블록은 팔레트 또는 대표 샘플 값을 이용하여 코딩 또는 디코딩된다.
상기 방법에서, 리스트 구성 프로세스는, 인접 팔레트 코딩 블록의 인트라 모드를 페칭할 때, 인접 팔레트 코딩 블록을 인터 코딩 블록으로서 처리한다.
비디오 프로세싱 방법은, 다수 비디오 블록을 포함하는 비디오의 현재 비디오 블록 및 비디오의 비트스트림 표현 간의 변환을 위해, 현재 비디오 블록이 팔레트 코딩 블록인 것을 결정하는 단계; 상기 결정에 기초하여 현재 비디오 블록이 이용불가능한 블록인 것으로 간주함으로써 리스트 구성 프로세스를 수행하는 단계; 및 상기 리스트 구성 프로세스의 결과에 기초하여 상기 변환을 수행하는 단계를 포함하고, 상기 팔레트 코딩 블록은 팔레트 또는 대표 샘플 값을 이용하여 코딩 또는 디코딩된다.
상기 방법에서, 리스트 구성 프로세스는 히스토리 기반 움직임 벡터 예측을 위한 것이다.
상기 방법에서, 리스트 구성 프로세스는 머지 또는 어드밴스드 움직임 벡터 예측 모드를 위한 것이다.
상기 방법에서, 상기 결정하는 단계는 비디오의 컨텐츠에 기초하여 결정하는 단계를 더 포함한다.
상기 방법에서, 상기 결정하는 단계는 비트스트림 표현의 필드에 대응한다.
비디오 프로세싱 방법은, 현재 비디오 블록 및 현재 비디오 블록의 비트스트림 표현 간의 변환 동안, 현재 비디오 블록이 팔레트 코딩 블록임을 결정하는 단계; 현재 비디오 블록이 팔레트 코딩 블록인 것에 기초하여, 상기 변환에 사용되는 컨텍스트 코딩 빈의 범위를 결정하는 단계; 및 상기 컨텍스트 코딩 빈의 범위에 기초하여 상기 변환을 수행하는 단계를 포함한다.
상기 방법에서, 상기 범위 밖에 있는 현재 비디오 블록의 빈은 바이패스 코딩 기술을 이용하여 코딩되거나 상기 변환 동안 바이패스 디코딩 기술을 이용하여 디코딩된다.
상기 방법에서, 상기 변환은 비디오를 비트스트림 표현으로 인코딩하는 것을 포함한다.
상기 방법에서, 상기 변환은 비트스트림 표현을 디코딩하여 비디오를 생성하는 것을 포함한다.
도 24는 여기에 개시된 다양한 기술이 구현될 수 있는 예시적인 비디오 프로세싱 시스템(2400)을 나타내는 블록도이다. 다양한 구현예는 시스템(2400)의 컴포넌트의 일부 또는 전부를 포함할 수 있다. 시스템(2400)은 비디오 컨텐츠를 수신하는 입력(2402)을 포함할 수 있다. 비디오 컨텐츠는 로우(raw) 또는 압축되지 않은 포맷, 예를 들어 8 또는 10비트 멀티컴포넌트 픽셀 값으로 수신되거나 압축 또는 인코딩된 포맷일 수 있다. 입력(2402)은 네트워크 인터페이스, 주변기기 버스 인터페이스 또는 저장 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예는 이더넷, PON(passive optical network) 등의 유선 인터페이스 및 Wi-Fi 또는 셀룰러 인터페이스 등의 무선 인터페이스를 포함한다.
시스템(2400)은 본 문서에 기술된 다양한 코딩 또는 인코딩 방법을 구현할 수 있는 코딩 컴포넌트(2404)를 포함할 수 있다. 코딩 컴포넌트(2404)는 입력(2402)으로부터의 비디오의 평균 비트레이트를 코딩 컴포넌트(2404)의 출력으로 감소시켜 비디오의 코딩된 표현을 생성한다. 그러므로, 코딩 기술은 때때로 비디오 압축 또는 비디오 트랜스코딩 기술이라 불리운다. 코딩 컴포넌트(2404)의 출력은 2406로 표현된 바와 같이 연결된 통신을 통해 전송되거나 저장된다. 입력(2402)에서 수신된 비디오의 저장 또는 통신된 비트스트림(또는 코딩된) 표현은 디스플레이 인터페이스(2410)로 전송된 디스플레이가능한 비디오 또는 픽셀 값들을 생성하는 컴포넌트(2408)에 의해 사용될 수 있다. 비트스트림 표현으로부터 사용자 시청가능 비디오를 생성하는 프로세스는 때때로 비디오 압축해제라 불리운다. 더욱이, 어떤 비디오 프로세싱 동작은 “코딩” 동작 또는 툴로 지칭되지만, 코딩 툴 또는 동작은 인코더에서 사용되고 코딩의 결과를 반전시키는 대응 디코딩 툴 또는 동작은 디코더에 의해 수행될 것이다.
주변기기 버스 인터페이스 또는 디스플레이 인터페이스의 예는 USB(universal serial bus) 또는 HDMI(high definition multimedia interface) 또는 디스플레이포트(Displayport) 등을 포함할 수 있다. 저장 인터페이스의 예는 SATA(serial advanced technology attachment), PCI, IDE 인터페이스 등을 포함할 수 있다. 본 문서에 기재된 기술들은 모바일 폰, 랩탑, 스마트폰 또는 디지털 데이터 프로세싱 및/또는 비디오 디스플레이를 수행할 수 있는 다른 장치 등의 다양한 전자 장치에서 구현될 수 있다.
도 25는 본 기술에 따른 비디오 프로세싱 방법(2500)을 나타내는 플로우차트이다. 방법(2500)은, 단계(2510)에서, 비디오의 비디오 영역의 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다. 비트스트림 표현은 팔레트 모드의 사용의 제1 지시가 상기 블록에 대하여 시그널링되는지를 명시하는 제1 포맷 규칙 및 상기 블록에 대한 예측 모드의 사용의 제2 지시에 대해 상기 제1 지시의 위치를 명시하는 제2 포맷 규칙에 따라 프로세싱된다.
일부 실시예에서, 상기 비디오 영역은 변환 유닛, 코딩 유닛, 예측 유닛 또는 상기 비디오의 영역을 포함한다. 일부 실시예에서, 상기 예측 모드의 사용의 제2 지시는 상기 비트스트림 표현에서 팔레트 모드의 사용의 제1 지시 전에 위치한다.
일부 실시예에서, 상기 팔레트 모드의 사용의 제1 지시는 상기 예측 모드의 사용의 제2 지시에 기초하여 상기 비트스트림 표현에 조건적으로 코딩된다. 일부 실시예에서, 상기 팔레트 모드의 사용의 제1 지시는, 상기 예측 모드의 사용의 제2 지시가 인트라 블록 카피(IBC) 예측 모드를 나타내는 경우 상기 비트스트림 표현에서 스킵된다. 일부 실시예에서, 상기 팔레트 모드의 사용의 제1 지시는, 상기 예측 모드의 사용의 제2 지시가 인터 예측 모드를 나타내는 경우 비트스트림 표현에서 스킵된다. 일부 실시예에서, 상기 팔레트 모드의 사용의 제1 지시는, 예측 모드의 사용의 제2 지시가 인트라 예측 모드를 나타내는 경우 상기 비트스트림 표현에서 스킵된다. 일부 실시예에서, 상기 팔레트 모드의 사용의 제1 지시는, 예측 모드의 사용의 제2 지시가 스킵 모드를 나타내는 경우 상기 비트스트림 표현에서 스킵된다. 일부 실시예에서, 상기 비트스트림 표현에서 상기 팔레트 모드의 사용의 제1 지시의 스킵은 팔레트 모드가 사용되지 않는다는 것을 나타낸다.
일부 실시예에서, 상기 팔레트 모드의 사용의 제1 지시는, 예측 모드의 사용의 제2 지시가 IBC 예측 모드를 나타내는 경우 비트스트림에 코딩된다. 일부 실시예에서, 상기 팔레트 모드의 사용의 제1 지시는, 예측 모드의 사용의 제2 지시가 인트라 예측 모드를 나타내는 경우 비트스트림에 코딩된다. 일부 실시예에서, 예측 모드는 PCM(Pulse-Code Modulation) 모드가 아니다. 일부 실시예에서, 상기 팔레트 모드의 사용의 제1 지시는 상기 비트스트림 표현에서 PCM 모드의 사용의 지시 이전에 코딩된다. 일부 실시예에서, PCM 모드의 사용의 지시는 상기 비트스트림 표현에서 스킵된다. 일부 실시예에서, IBC 모드의 지시는 상기 비트스트림 표현에서 코딩된다. 일부 실시예에서, 인트라 예측 모드가 이용되는 경우, 상기 비트스트림 표현의 플래그는 팔레트 모드 또는 IBC 모드가 상기 비트스트림 표현에서 시그널링되는지를 나타낸다. 일부 실시예에서, 상기 플래그는 상기 블록의 조건에 기초하여 스킵되고, 상기 조건은 상기 블록의 차원, 상기 IBC 모드가 상기 블록과 연관된 영역에 대하여 활성화되는지 또는 상기 팔레트 모드가 상기 블록과 연관된 영역에 대하여 활성화되는지를 포함한다.
일부 실시예에서, 상기 팔레트 모드의 사용의 제1 지시는, 예측 모드의 사용의 제2 지시가 인터 예측 모드를 지시하는 경우 상기 비트스트림에 코딩된다. 일부 실시예에서, 상기 팔레트 모드의 사용의 제1 지시는 스킵 모드의 지시, 상기 예측 모드 또는 PCM 모드의 사용의 지시 중의 적어도 하나 후에 코딩된다. 일부 실시예에서, 상기 팔레트 모드의 사용의 제1 지시는 스킵 모드의 지시 또는 상기 예측 모드 후에 코딩되거나 PCM 모드의 사용의 지시 전에 코딩된다.
일부 실시예에서, 상기 팔레트 모드의 사용의 제1 지시는 상기 비트스트림 표현에서 상기 예측 모드의 사용의 제2 지시 전에 위치한다. 일부 실시예에서, 상기 팔레트 모드의 사용의 제1 지시는 상기 예측 모드의 사용의 제2 지시 후에 위치하고, 상기 예측 모드의 사용의 제2 지시는 상기 비트스트림 표현에서 인트라 또는 인터 예측 모드를 나타낸다. 일부 실시예에서, 상기 팔레트 모드의 사용의 제1 지시는 픽처, 슬라이스 또는 타일 그룹 타입에 기초하여 시그널링된다. 일부 실시예에서, 상기 팔레트 모드의 사용의 제1 지시는 상기 팔레트 모드가 상기 블록에 대하여 활성화되는 것을 나타내는 제1 플래그를 포함한다. 일부 실시예에서, 상기 팔레트 모드의 사용의 제1 지시는, 상기 팔레트 모드가 시퀀스 레벨, 픽처 레벨, 타일 그룹 레벨 또는 타일 레벨에서 활성화되는 것을 나타내는 제1 플래그에 기초하여 상기 비트스트림 표현에 조건적으로 포함된다. 일부 실시예에서, 상기 팔레트 모드가 상기 블록에 대하여 비활성화되는 경우 상기 블록의 PCM 모드를 나타내는 또다른 플래그가 상기 비트스트림 표현에 포함된다. 일부 실시예에서, 상기 제1 플래그는 상기 현재 블록의 하나 이상의 인접 블록의 정보에 기초하여 컨텍스트 코딩된다. 일부 실시예에서, 상기 제1 플래그는 상기 현재 블록의 하나 이상의 인접 블록으로부터의 컨텍스트 정보 없이 코딩된다.
일부 실시예에서, 예측 모드의 사용의 제2 지시는 상기 예측 모드를 나타내는 제2 플래그를 포함한다. 일부 실시예에서, 상기 비트스트림 표현의 제2 플래그가 상기 예측 모드가 인터 모드인 것을 나타내는 경우, 상기 비트스트림 표현은 인트라 블록 카피 모드가 활성화되는지를 나타내는 제3 플래그를 더 포함한다. 일부 실시예에서, 상기 비트스트림 표현의 제2 플래그가 상기 예측 모드가 인트라 모드인 것을 나타내는 경우, 상기 비트스트림 표현은 인트라 블록 카피 모드가 활성화되는지를 나타내는 제3 플래그를 더 포함한다. 일부 실시예에서, 상기 제3 플래그는 상기 블록의 차원에 기초하여 비트스트림 표현에 조건적으로 포함된다.
일부 실시예에서, 상기 블록은 코딩 유닛이고, 상기 비트스트림 표현의 제2 플래그는 상기 예측 모드가 인트라 모드인 것을 나타낸다. 일부 실시예에서, 상기 제1 플래그는 상기 블록의 차원에 기초하여 상기 비트스트림 표현에 조건적으로 포함된다.
도 26은 본 기술에 따른 비디오 프로세싱 방법(2600)을 나타내는 플로우차트이다. 방법(2600)은, 단계(2610)에서, 비디오의 비디오 영역의 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 블록의 적어도 팔레트 모드를 포함하는 하나 이상의 허용된 예측 모드에 기초하여 예측 모드를 결정하는 단계를 포함한다. 상기 팔레트 모드의 사용의 지시는 상기 예측 모드에 따라 결정된다. 방법(2600)은, 단계(2620)에서, 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 상기 하나 이상의 허용된 예측 모드는 인트라 모드를 포함한다. 일부 실시예에서, 상기 하나 이상의 허용된 예측 모드는 인트라 블록 카피(IBC) 모드를 포함한다. 일부 실시예에서, 상기 하나 이상의 허용된 예측 모드는 인터 모드를 포함한다.
일부 실시예에서, 상기 비디오 영역은 인트라 슬라이스, 인트라 픽처 또는 인트라 타일그룹을 포함한다. 일부 실시예에서, 상기 하나 이상의 허용된 예측 모드는 인트라 모드, 인트라 블록 카피 모드 및 팔레트 모드를 포함한다.
일부 실시예에서, 상기 비디오 영역은 인터 슬라이스, 인터 픽처, 인터 타일 그룹, P 슬라이스, B 슬라이스, P 픽처 또는 B 픽처를 포함한다. 일부 실시예에서, 상기 하나 이상의 허용된 예측 모드는 인트라 모드, 인트라 블록 카피 모드, 팔레트 모드 및 인터 모드를 포함한다.
일부 실시예에서, 상기 블록은 4x4의 차원을 갖는다. 일부 실시예에서, 상기 하나 이상의 허용된 예측 모드는, 상기 블록이 4x4의 차원을 갖는 경우 상기 인터 모드를 배제한다.
일부 실시예에서, 상기 비트스트림 표현은, 상기 블록이 스킵 모드로 코딩되지 않는 경우 상기 하나 이상의 허용된 예측 모드를 나타내는 적어도 예측 모드 인덱스를 포함하고, 상기 예측 모드 인덱스는 하나 이상의 이진 빈(binary bin)을 이용하여 표현된다.
일부 실시예에서, 상기 예측 모드 인덱스는 3개의 이진 빈을 이용하여 표현되고, '1'인 제1 빈 값은 인트라 모드를 나타내고, '0'인 제1 빈 값 및 '0'인 제2 빈 값은 인터 모드를 나타내고, '0'인 제1 빈 값, '1'인 제2 빈 값 및 '0'인 제3 빈 값은 IBC 모드를 나타내고, ‘0’인 제1 빈 값, ‘1’인 제2 값, 및‘1’인 제3 빈 값은 팔레트 모드를 나타낸다.
일부 실시예에서, 상기 예측 모드 인덱스는 2개의 이진 빈을 이용하여 표현되고, ‘1’인 제1 빈 값 및 ‘0’인 제2 빈 값은 인트라 모드를 나타내고, ‘0’인 제1 빈 값 및‘0’인 제2 빈 값은 인터 모드를 나타내고, ‘0’인 제1 빈 값 및 ‘1’인 제2 빈 값은 IBC 모드를 나타내고, ‘1’인 제1 빈 값 및‘1’인 제2 빈 값은 팔레트 모드를 나타낸다.
일부 실시예에서, 상기 예측 모드 인덱스는, 상기 비디오의 현재 슬라이스가 인트라 슬라이스이고 IBC 모드가 비활성화되는 경우 하나의 이진 빈을 이용하여 표현되고, '0'인 제1 빈 값은 인트라 모드를 나타내고, ‘1’인 제2 빈 값은 팔레트 모드를 나타낸다.
일부 실시예에서, 상기 예측 모드 인덱스는, 상기 비디오의 현재 슬라이스가 인트라 슬라이스가 아니고 IBC 모드가 활성화되는 경우 2개의 이진 빈을 이용하여 표현되고, ‘1’인 제1 빈 값은 인트라 모드를 나타내고, ‘0’인 제1 빈 값 및 ‘0’인 제2 빈 값은 인터 모드를 나타내고, ‘0’인 제1 빈 값 및 ‘1’인 제2 빈 값은 팔레트 모드를 나타낸다. 일부 실시예에서, 상기 예측 모드 인덱스는, 상기 비디오의 현재 슬라이스가 인트라 슬라이스이고 IBC 모드가 활성화되는 경우 2개의 이진 빈을 이용하여 표현되고, ‘1’인 제1 빈 값은 IBC 모드를 나타내고, ‘0’인 제1 빈 값 및 ‘1’인 제2 빈 값은 팔레트 모드를 나타내고, '0'인 제1 빈 값 및 ‘0’인 제2 빈 값은 인트라 모드를 나타낸다. 일부 실시예에서, IBC 모드의 사용의 지시는 비트스트림 표현의 SPS(Sequence Parameter Set)에서 시그널링된다.
일부 실시예에서, 상기 예측 모드 인덱스는 3개의 이진 빈을 이용하여 표현되고,
'1’인 제1 빈 값은 인터 모드를 나타내고, ‘0’인 제1 빈 값 및 ‘1’인 제2 빈 값은 인트라 모드를 나타내고, ‘0’인 제1 빈 값, ‘0’인 제2 빈 값, 및 ‘1’인 제3 빈 값은 IBC 모드를 나타내고, ‘0’인 제1 빈 값, ‘0’인 제2 빈 값, 및 ‘0’인 제3 빈 값은 팔레트 모드를 나타낸다.
일부 실시예에서, 상기 예측 모드 인덱스는 3개의 이진 빈을 이용하여 표현되고,
‘1’인 제1 빈 값은 인트라 모드를 나타내고, ‘0’인 제1 빈 값 및‘1’인 제2 빈 값은 인터 모드를 나타내고, ‘0’인 제1 빈 값, ‘0’인 제2 빈 값, 및 ‘1’인 제3 빈 값은 IBC 모드를 나타내고, ‘0’인 제1 빈 값, ‘0’인 제2 빈 값, 및‘0’인 제3 빈 값은 팔레트 모드를 나타낸다.
일부 실시예에서, 상기 예측 모드 인덱스는 3개의 이진 빈을 이용하여 표현되고, '0'인 제1 빈 값은 인터 모드를 나타내고, ‘1’인 제1 빈 값 및 ‘0’인 제2 빈 값은 인트라 모드를 나타내고, ‘1’인 제1 빈 값, ‘1’인 제2 빈 값, 및 ‘1’인 제3 빈 값은 IBC 모드를 나타내고, ‘1’인 제1 빈 값, ‘1’인 제2 빈 값, 및‘0’인 제3 빈 값은 팔레트 모드를 나타낸다.
일부 실시예에서, 하나 이상의 이진 빈 중의 하나의 시그널링은 조건이 만족되는 경우 상기 비스스트림 표현에서 스킵된다. 일부 실시예에서, 상기 조건은 상기 블록의 차원을 포함한다. 일부 실시예에서, 상기 조건은 예측 모드가 비활성화되는 것을 포함하고, 상기 예측 모드에 대응하는 이진 빈은 상기 비트스트림 표현에서 스킵된다.
도 27은 본 기술에 따른 비디오 프로세싱 방법(2700)을 나타내는 플로우차트이다. 방법(2700)은, 단계(2710)에서, 비디오의 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다. 상기 비트스트림 표현은, 서로 의존적으로 시그널링되는 팔레트 모드의 사용의 제1 지시 및 인트라 블록 카피(IBC) 모드의 사용의 제2 지시를 명시하는 포맷 규칙에 따라 프로세싱된다.
일부 실시예에서, 상기 포맷 규칙은, 상기 블록의 예측 모드가 IBC 모드가 아닌 제1 예측 모드와 동일한 경우 상기 제1 지시가 상기 비트스트림 표현에서 시그널링되는 것을 명시한다. 일부 실시예에서, 상기 포맷 규칙은, 상기 블록의 예측 모드가 팔레트 모드가 아닌 제1 예측 모드와 동일한 경우 상기 제2 지시가 상기 비트스트림 표현에서 시그널링되는 것을 명시한다. 일부 실시예에서, 상기 제1 예측 모드는 인트라 모드이다.
도 28은 본 기술에 따른 비디오 프로세싱 방법(2800)을 나타내는 플로우차트이다. 방법(2800)은, 단계(2810)에서, 비디오의 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 블록의 차원에 기초하여 상기 비트스트림 표현에서의 팔레트 모드의 사용의 지시의 존재를 결정하는 단계를 포함한다. 방법(2800)은, 단계(2820)에서, 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
도 29은 본 기술에 따른 비디오 프로세싱 방법(2900)을 나타내는 플로우차트이다. 방법(2900)은, 단계(2910)에서, 비디오의 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 블록의 차원에 기초하여 상기 비트스트림 표현에서의 IBC 모드의 사용의 지시의 존재를 결정하는 단계를 포함한다. 방법(2900)은, 단계(2920)에서, 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다. 일부 실시예에서, 상기 블록의 차원은 상기 블록 내의 샘플의 수, 상기 블록의 폭 또는 상기 블록의 높이 중의 적어도 하나를 포함한다.
일부 실시예에서, 상기 블록의 폭이 임계값 보다 작거나 같은 경우 상기 지시가 상기 비트스트림 표현에서 시그널링된다. 일부 실시예에서, 상기 블록의 높이가 임계값 보다 작거나 같은 경우 상기 지시가 상기 비트스트림 표현에서 시그널링된다. 일부 실시예에서, 상기 임계값은 64이다.
일부 실시예에서, 상기 블록의 폭과 높이가 임계값 보다 큰 경우 상기 지시가 상기 비트스트림 표현에서 시그널링된다. 일부 실시예에서, 임계값은 4이다. 일부 실시예에서, 상기 블록 내의 샘플의 수가 임계값 보다 큰 경우 상기 지시가 상기 비트스트림 표현에서 시그널링된다. 일부 실시예에서, 임계값은 16이다. 일부 실시예에서, 상기 블록의 폭이 상기 블록의 높이와 동일한 경우 상기 지시가 상기 비트스트림 표현에서 시그널링된다.
일부 실시예에서, (1) 상기 블록의 폭이 제1 임계값보다 크거나, (2) 상기 블록의 높이가 제2 임계값 보다 크거나 (3) 상기 블록 내의 샘플의 수가 제3 임계값 보다 작거나 같은 경우 상기 지시가 상기 비트스트림 표현에서 시그널링된다. 일부 실시예에서, 상기 제1 임계값 및 상기 제2 임계값은 64이다. 일부 실시예에서, 제3 임계값은 16이다.
일부 실시예에서, 상기 결정은 또한 상기 블록과 연관된 특성에 기초한다. 일부 실시예에서, 상기 특성은 상기 블록의 예측 모드를 포함한다. 일부 실시예에서, 상기 특성은 상기 블록의 양자화 파라미터를 포함한다. 일부 실시예에서, 상기 특성은 상기 블록의 인접 블록의 팔레트 플래그를 포함한다. 일부 실시예에서, 상기 특성은 상기 블록의 인접 블록의 IBC 플래그를 포함한다. 일부 실시예에서, 상기 특성은 상기 블록의 칼라 포맷의 지시를 포함한다. 일부 실시예에서, 상기 특성은 상기 블록의 코딩 트리 구조를 포함한다. 일부 실시예에서, 상기 특성은 상기 블록의 슬라이스 그룹 타입, 타일 그룹 타입, 또는 픽처 타입을 포함한다.
도 30은 본 기술에 따른 비디오 프로세싱 방법(3000)을 나타내는 플로우차트이다. 방법(3000)은, 단계(3010)에서, 비디오의 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 블록을 포함하는 비디오 영역의 제2 지시에 기초하여 팔레트 모드가 상기 블록에 대하여 허용되는지를 결정하는 단계를 포함한다. 방법(3000)은 또한, 단계(3020)에서, 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 상기 비디오 영역은 슬라이스, 타일 그룹 또는 픽처를 포함한다. 일부 실시예에서, 상기 제2 지시가 분수 움직임 벡터차가 활성화되는 것을 나타내는 경우, 상기 비트스트림 표현은 팔레트 모드가 허용되는지의 명시적인 지시를 제외한다. 일부 실시예에서, 상기 제2 지시는 상기 비트스트림 표현에 존재하는 플래그로서 표현된다. 일부 실시예에서, 제2 지시는 상기 팔레트 모드가 상기 비디오 영역에 대하여 활성화되는지를 나타낸다. 일부 실시예에서, 상기 제2 지시가 팔레트 모드가 상기 비디오 영역에 대하여 비활성화되는 것을 나타내는 경우, 상기 비트스트림 표현은 팔레트 모드가 허용되는지의 명시적인 지시를 제외한다. 일부 실시예에서, 상기 비트스트림 표현이 팔레트 모드가 허용되는지의 명시적 지시를 제외하는 경우, 팔레트 모드는 상기 블록에 대하여 허용되지 않는다.
도 31은 본 기술에 따른 비디오 프로세싱 방법(3100)을 나타내는 플로우차트이다. 방법(3100)은, 단계(3110)에서, 비디오의 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 블록을 포함하는 비디오 영역의 제2 지시에 기초하여 IBC 모드가 상기 블록에 대하여 허용되는지를 결정하는 단계를 포함한다. 방법(3100)은 또한, 단계(3120)에서, 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 상기 비디오 영역은 슬라이스, 타일 그룹 또는 픽처를 포함한다. 일부 실시예에서, 상기 제2 지시가 분수 움직임 벡터차가 활성화되는 것을 나타내는 경우, 상기 비트스트림 표현은 IBC 모드가 허용되는지의 명시적인 지시를 제외한다. 일부 실시예에서, 상기 제2 지시는 상기 비트스트림 표현에 존재하는 플래그로서 표현된다. 일부 실시예에서, 제2 지시는 상기 IBC 모드가 상기 비디오 영역에 대하여 활성화되는지를 나타낸다. 일부 실시예에서, 상기 제2 지시가 IBC 모드가 상기 비디오 영역에 대하여 비활성화되는 것을 나타내는 경우, 상기 비트스트림 표현은 IBC 모드가 허용되는지의 명시적인 지시를 제외한다. 일부 실시예에서, 상기 비트스트림 표현이 IBC 모드가 허용되는지의 명시적 지시를 제외하는 경우, IBC 모드는 상기 블록에 대하여 허용되지 않는다.
일부 실시예에서, 상기 변환은 상기 비트스트림 표현으로부터 상기 현재 블록을 생성한다. 일부 실시예에서, 상기 변환은 상기 현재 블록으로부터 상기 비트스트림 표현을 생성한다.
개시된 기술의 일부 실시예는 비디오 프로세싱 툴 또는 모드를 활성화하는 것에 대한 결정 또는 판단하는 단계를 포함한다. 일 예에서, 비디오 프로세싱 툴 또는 모드가 활성화되면, 인코더는 비디오의 블록의 프로세싱에서 툴 또는 모드를 사용하거나 구현할 것이지만, 툴 또는 모드의 사용에 기초하여 결과적인 비트스트림을 반드시 수정할 필요는 없다. 즉, 비디오의 블록으로부터 비디오의 비트스트림 표현으로의 변환은 상기 결정 또는 판단에 기초하여 활성화될 때 비디오 프로세싱 툴 또는 모드를 사용할 것이다. 또 다른 예에서, 비디오 프로세싱 툴 또는 모드가 활성화되면, 디코더는 비트스트림이 비디오 프로세싱 툴 또는 모드에 기초하여 수정되었다는 지식으로 상기 비트스트림을 프로세싱할 것이다. 즉, 상기 비디오의 비트스트림 표현으로부터 비디오의 블록으로의 변환은 상기 결정 또는 판단에 기초하여 활성화된 비디오 프로세싱 툴 또는 모드를 이용하여 수행될 것이다.
개시된 기술의 일부 실시예는 비디오 프로세싱 툴 또는 모드를 비활성화하는 것에 대한 결정 또는 판단을 포함한다. 일 예에서, 비디오 프로세싱 툴 또는 모드가 비활성화되면, 인코더는 상기 비디오의 비트스트림 표현으로의 비디오의 블록의 변환에 툴 또는 모드를 사용하지 않을 것이다. 또다른 예에서, 비디오 프로세싱 툴 또는 모드가 비활성화되면, 상기 결정 또는 판단에 기초하여 활성화된 비디오 프로세싱 툴 또는 모드를 이용하여 비트스트림이 수정되지 않았다는 지식으로 디코더가 비트스트림을 프로세싱할 것이다.
이 문서에 설명된 개시된 및 다른 솔루션, 예, 실시예, 모듈 및 기능적 동작은 디지털 전자 회로, 본 문서에 개시된 구조, 그들의 구조적 동등물들을 포함하는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어 또는 이들 중의 하나 이상의 조합으로 구현될 수 있다. 개시된 실시예 및 다른 실시예는 하나 이상의 컴퓨터 프로그램 제품, 즉, 데이터 프로세싱 장치에 의한 실행 또는 그의 동작의 제어를 위해 컴퓨터 판독가능 매체 상에 인코딩되는 컴퓨터 프로그램 명령의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독가능 매체는 머신-판독가능 저장 장치, 머신-판독가능 저장 기판, 메모리 장치, 머신-판독가능 전파 신호에 영향을 주는 물질의 구성 또는 그들 중의 하나 이상의 조합일 수 있다. 용어 "데이터 프로세싱 장치"는 데이터 처리를 위한 모든 장치, 디바이스 및 머신을 포함하며, 예를 들어 프로그램 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 포함한다. 장치는 하드웨어에 더하여 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나의 조합을 구성하는 코드를 포함할 수 있다. 전파되는 신호는 인공적으로 생성된 신호, 예를 들어, 머신 생성 전기, 광, 또는 전자기 신호이며, 이는 적절한 수신기 장치로의 전송을 위한 정보를 인코딩하기 위해 생성된다.
컴퓨터 프로그램 (프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은 컴파일된 언어 또는 해석된 언어를 포함하여 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램 또는 컴퓨터 환경에서 사용되기에 적합한 모듈, 컴포넌트, 서브루틴 또는 다른 유닛으로서 임의의 형태로 배치(deploy)될 수 있다. 컴퓨터 시스템은 파일 시스템 내의 파일에 반드시 대응되는 것은 아니다. 프로그램은 다른 프로그램 또는 데이터를 보유하는 파일의 일부(예를 들어 마크업 언어 문서에 저장된 하나 이상의 스크립트) 또는 문제의 프로그램의 전용인 단일 파일 또는 다중 편성(coordinated) 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드의 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은, 하나의 컴퓨터 또는 한 사이트에 위치하거나 다수의 사이트에 걸쳐 분배되고 통신 네트워크에 의해 상호 접속되는 다수의 컴퓨터 상에서 실행되도록 배치될 수 있다.
본 명세서에 설명된 프로세스 및 로직 흐름은 입력 데이터에 대해 작동하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍가능한 프로세서에 의해 수행될 수 있다. 프로세스 및 로직 흐름은 또한 FPGA (필드 프로그래밍 가능 게이트 어레이) 또는 ASIC (애플리케이션 특정 집적 회로)와 같은 특수 목적 로직 회로로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예를 들어 범용 및 특수 목적의 마이크로 프로세서와 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 리드 온리 메모리 또는 랜덤 액세스 메모리 또는 둘 다에서 명령과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령을 수행하기위한 프로세서와 명령과 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치, 예를 들어 자기, 광 자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 데이터를 전송하거나 둘 모두를 수행하도록 동작 가능하게 결합된다. 그러나 컴퓨터가 이러한 장치를 가질 필요는 없다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 비일시적 컴퓨터 판독 가능 매체는 예를 들어 EPROM, EEPROM 및 플래시 메모리 장치와 같은 반도체 메모리 장치; 내부 하드 디스크 또는 제거가능 디스크 등의 자기 디스크; 광자기 디스크 및 CD ROM 및 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함한다. 프로세서와 메모리는 특수 목적 로직 회로에 의해 보완되거나 통합될 수 있다.
이 특허 문서에는 많은 세부 사항이 포함되어 있지만, 이는 임의의 발명의 범위 또는 청구 대상에 대한 제한으로 해석되어서는 안되며, 특정 발명의 특정 실시예에 특정될 수 있는 특징에 대한 설명으로 해석되어야 한다. 개별 실시예의 맥락에서 본 특허 문서에 설명된 특정 특징은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시 예의 맥락에서 설명된 다양한 특징은 또한 다중 실시 예에서 개별적으로 또는 임의의 적절한 하위 조합으로 구현될 수 있다. 더욱이, 특징이 특정 조합으로 작용하는 것으로 위에서 설명될 수 있고 심지어 처음에 그렇게 청구될 수도 있지만, 청구된 조합으로부터 하나 이상의 특징이 어떤 경우에는 조합으로부터 삭제될 수 있고, 청구된 조합은 하위 조합 또는 변형일 수 있다.
유사하게, 동작이 특정 순서로 도면에 도시되어 있지만, 이는 바람직한 결과를 달성하기 위해 그러한 동작이 도시된 특정 순서 또는 순차적인 순서로 수행되거나 모든 예시된 동작이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 더욱이, 이 특허 문헌에 설명된 실시예들에서 다양한 시스템 컴포넌트들의 분리는 모든 실시예들에서 그러한 분리를 요구하는 것으로 이해되어서는 안된다.
단지 몇 가지 구현예 및 예가 설명되고, 다른 구현예, 향상 및 변형이 특허 문서에 설명되고 예시된 것에 기초하여 이루어질 수 있다.
Claims (38)
- 비디오 프로세싱 방법에 있어서,
비디오의 비디오 영역의 블록 및 상기 비디오의 비트스트림 표현(bitstream representation) 간의 변환을 수행하는 단계를 포함하되,
상기 비트스트림 표현은, 팔레트 모드의 사용의 제1 지시가 상기 블록에 대하여 시그널링되는지를 명시하는 제1 포맷 규칙 및 상기 블록에 대한 예측 모드의 사용의 제2 지시에 대해 상기 제1 지시의 위치를 명시하는 제2 포맷 규칙에 따라 프로세싱되는,비디오 프로세싱 방법. - 제1항에 있어서, 상기 비디오 영역은 변환 유닛, 코딩 유닛, 예측 유닛 또는 상기 비디오의 영역을 포함하는, 비디오 프로세싱 방법.
- 제1항 또는 제2항에 있어서, 상기 예측 모드의 사용의 제2 지시는 상기 비트스트림 표현에서 상기 팔레트 모드의 사용의 제1 지시 전에 위치하는, 비디오 프로세싱 방법.
- 제1항 내지 제3항 중 어느 하나에 있어서, 상기 팔레트 모드의 사용의 제1 지시는 상기 예측 모드의 사용의 제2 지시에 기초하여 상기 비트스트림 표현에 조건적으로 코딩되는, 비디오 프로세싱 방법.
- 제4항에 있어서, 상기 팔레트 모드의 사용의 제1 지시는, 상기 예측 모드의 사용의 제2 지시가 인트라 블록 카피(IBC) 예측 모드를 나타내는 경우 상기 비트스트림 표현에서 스킵(skip)되는, 비디오 프로세싱 방법.
- 제4항에 있어서, 상기 팔레트 모드의 사용의 제1 지시는, 상기 예측 모드의 사용의 제2 지시가 인터 예측 모드를 나타내는 경우 상기 비트스트림 표현에서 스킵되는, 비디오 프로세싱 방법.
- 제4항에 있어서, 상기 팔레트 모드의 사용의 제1 지시는, 예측 모드의 사용의 제2 지시가 인트라 예측 모드를 나타내는 경우 상기 비트스트림 표현에서 스킵되는, 비디오 프로세싱 방법.
- 제4항에 있어서, 상기 팔레트 모드의 사용의 제1 지시는, 예측 모드의 사용의 제2 지시가 스킵 모드를 나타내는 경우 상기 비트스트림 표현에서 스킵되는, 비디오 프로세싱 방법.
- 제5항 내지 제8항에 있어서, 상기 비트스트림 표현에서 상기 팔레트 모드의 사용의 제1 지시의 스킵은 상기 팔레트 모드가 사용되지 않는다는 것을 나타내는, 비디오 프로세싱 방법.
- 제4항에 있어서, 상기 팔레트 모드의 사용의 제1 지시는, 예측 모드의 사용의 제2 지시가 IBC 예측 모드를 나타내는 경우 상기 비트스트림에 코딩되는, 비디오 프로세싱 방법.
- 제4항에 있어서, 상기 팔레트 모드의 사용의 제1 지시는, 예측 모드의 사용의 제2 지시가 인트라 예측 모드를 나타내는 경우 상기 비트스트림에 코딩되는, 비디오 프로세싱 방법.
- 제11항에 있어서, 상기 예측 모드는 PCM(Pulse-Code Modulation) 모드가 아닌, 비디오 프로세싱 방법.
- 제11항에 있어서, 상기 팔레트 모드의 사용의 제1 지시는 상기 비트스트림 표현에서 PCM 모드의 사용의 지시 이전에 코딩되는, 비디오 프로세싱 방법.
- 제11항에 있어서, PCM 모드의 사용의 지시는 상기 비트스트림 표현에서 스킵되는, 비디오 프로세싱 방법.
- 제11항에 있어서, 상기 IBC 모드의 지시는 상기 비트스트림 표현에서 코딩되는 비디오 프로세싱 방법.
- 제15항에 있어서, 인트라 예측 모드가 이용되는 경우, 상기 비트스트림 표현의 플래그는, 상기 팔레트 모드 또는 상기 IBC 모드가 상기 비트스트림 표현에서 시그널링되는지를 나타내는, 비디오 프로세싱 방법.
- 제16항에 있어서, 상기 플래그는 상기 블록의 조건에 기초하여 스킵되고, 상기 조건은 상기 블록의 차원, 상기 IBC 모드가 상기 블록과 연관된 영역에 대하여 활성화되는지 또는 상기 팔레트 모드가 상기 블록과 연관된 영역에 대하여 활성화되는지를 포함하는, 비디오 프로세싱 방법.
- 제4항에 있어서, 상기 팔레트 모드의 사용의 제1 지시는, 예측 모드의 사용의 제2 지시가 인터 예측 모드를 지시하는 경우 상기 비트스트림에서 코딩되는, 비디오 프로세싱 방법.
- 제4항 내지 제18항 중 어느 한 항에 있어서, 상기 팔레트 모드의 사용의 제1 지시는 스킵 모드의 지시, 상기 예측 모드 또는 PCM 모드의 사용의 지시 중의 적어도 하나 이후에 코딩되는, 비디오 프로세싱 방법.
- 제4항 내지 제18항 중 어느 한 항에 있어서, 상기 팔레트 모드의 사용의 제1 지시는 스킵 모드 또는 상기 예측 모드의 지시 이후에 코딩되고 PCM 모드의 사용의 지시 전에 코딩되는, 비디오 프로세싱 방법.
- 제1항 또는 제2항에 있어서, 상기 팔레트 모드의 사용의 제1 지시는 상기 비트스트림 표현에서 상기 예측 모드의 사용의 제2 지시 전에 위치하는, 비디오 프로세싱 방법.
- 제1항 또는 제2항에 있어서, 상기 팔레트 모드의 사용의 제1 지시는 상기 예측 모드의 사용의 제2 지시 후에 위치하고, 상기 예측 모드의 사용의 제2 지시는 상기 비트스트림 표현에서 인트라 또는 인터 예측 모드를 나타내는, 비디오 프로세싱 방법.
- 제1항 내지 제22항 중 어느 한 항에 있어서, 상기 팔레트 모드의 사용의 제1 지시는 픽처, 슬라이스 또는 타일 그룹 타입에 기초하여 시그널링되는, 비디오 프로세싱 방법.
- 제1항 내지 제23항 중 어느 한 항에 있어서, 상기 팔레트 모드의 사용의 제1 지시는 상기 팔레트 모드가 상기 블록에 대하여 활성화되는 것을 나타내는 제1 플래그를 포함하는, 비디오 프로세싱 방법.
- 제1항 내지 제24항 중 어느 한 항에 있어서, 상기 팔레트 모드의 사용의 제1 지시는, 상기 팔레트 모드가 시퀀스 레벨, 픽처 레벨, 타일 그룹 레벨 또는 타일 레벨에서 활성화되는 것을 나타내는 제1 플래그에 기초하여 상기 비트스트림 표현에 조건적으로 포함되는, 비디오 프로세싱 방법.
- 제24항 또는 제25항에 있어서, 상기 팔레트 모드가 상기 블록에 대하여 비활성화되는 경우 상기 블록의 PCM 모드를 나타내는 또다른 플래그가 상기 비트스트림 표현에 포함되는, 비디오 프로세싱 방법.
- 제24항 내지 제26항 중 어느 한 항에 있어서, 상기 제1 플래그는 상기 현재 블록의 하나 이상의 인접 블록의 정보에 기초하여 컨텍스트 코딩되는, 비디오 프로세싱 방법.
- 제24항 내지 제27항 중 어느 한 항에 있어서, 상기 제1 플래그는 상기 현재 블록의 하나 이상의 인접 블록으로부터의 컨텍스트 정보 없이 코딩되는, 비디오 프로세싱 방법.
- 제24항 내지 제28항 중 어느 한 항에 있어서, 예측 모드의 사용의 제2 지시는 상기 예측 모드를 나타내는 제2 플래그를 포함하는 비디오 프로세싱 방법.
- 제29항에 있어서, 상기 비트스트림 표현의 제2 플래그가 상기 예측 모드가 인터 모드인 것을 나타내는 경우, 상기 비트스트림 표현은 인트라 블록 카피 모드가 활성화되는지를 나타내는 제3 플래그를 더 포함하는, 비디오 프로세싱 방법.
- 제29항에 있어서, 상기 비트스트림 표현의 제2 플래그가 상기 예측 모드가 인트라 모드인 것을 나타내는 경우, 상기 비트스트림 표현은 인트라 블록 카피 모드가 활성화되는지를 나타내는 제3 플래그를 더 포함하는 비디오 프로세싱 방법.
- 제29항에 있어서, 상기 제3 플래그는 상기 블록의 차원에 기초하여 상기 비트스트림 표현에 조건적으로 포함되는, 비디오 프로세싱 방법.
- 제29항에 있어서, 상기 블록은 코딩 유닛이고, 상기 비트스트림 표현의 제2 플래그는 상기 예측 모드가 인트라 모드인 것을 나타내는, 비디오 프로세싱 방법.
- 제33항에 있어서, 상기 제1 플래그는 상기 블록의 차원에 기초하여 상기 비트스트림 표현에 조건적으로 포함되는, 비디오 프로세싱 방법.
- 제1항 내지 제34항 중 어느 한 항에 있어서, 상기 변환은 상기 비트스트림 표현으로부터 상기 현재 블록을 생성하는, 비디오 프로세싱 방법.
- 제1항 내지 제34항 중 어느 한 항에 있어서, 상기 변환은 현재 블록으로부터 상기 비트스트림 표현을 생성하는, 비디오 프로세싱 방법.
- 제1항 내지 제36항 중 어느 한 항에 기재된 방법을 구현하도록 구성되는 프로세서를 포함하는, 비디오 프로세싱 장치.
- 실행시, 제1항 내지 제36항 중 어느 한 항에 기재된 방법을 프로세서가 구현하도록 하는 코드가 저장된, 컴퓨터 판독가능 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNPCT/CN2019/075994 | 2019-02-24 | ||
CN2019075994 | 2019-02-24 | ||
PCT/CN2020/076367 WO2020169103A1 (en) | 2019-02-24 | 2020-02-24 | Independent coding of palette mode usage indication |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210129647A true KR20210129647A (ko) | 2021-10-28 |
Family
ID=77868499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217025264A KR20210129647A (ko) | 2019-02-24 | 2020-02-24 | 팔레트 모드 사용 지시의 독립적인 코딩 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20240048710A1 (ko) |
EP (1) | EP3912351A4 (ko) |
KR (1) | KR20210129647A (ko) |
CN (2) | CN117336514A (ko) |
BR (1) | BR112021016235A2 (ko) |
MX (1) | MX2021009943A (ko) |
SG (1) | SG11202108938TA (ko) |
ZA (1) | ZA202105840B (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113475062A (zh) | 2019-02-24 | 2021-10-01 | 北京字节跳动网络技术有限公司 | 确定屏幕内容编解码的条件 |
JP7223156B2 (ja) * | 2019-03-08 | 2023-02-15 | 北京字節跳動網絡技術有限公司 | パレットモードの使用の指示の共同符号化 |
JP7359936B2 (ja) | 2019-07-20 | 2023-10-11 | 北京字節跳動網絡技術有限公司 | パレットモードの使用の指示の条件依存符号化 |
CN117221536A (zh) | 2019-07-23 | 2023-12-12 | 北京字节跳动网络技术有限公司 | 调色板模式编解码的模式确定 |
WO2021018167A1 (en) | 2019-07-29 | 2021-02-04 | Beijing Bytedance Network Technology Co., Ltd. | Palette mode coding in prediction process |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4901772B2 (ja) * | 2007-02-09 | 2012-03-21 | パナソニック株式会社 | 動画像符号化方法及び動画像符号化装置 |
US11070810B2 (en) * | 2014-03-14 | 2021-07-20 | Qualcomm Incorporated | Modifying bit depths in color-space transform coding |
US20150373327A1 (en) * | 2014-06-20 | 2015-12-24 | Qualcomm Incorporated | Block adaptive color-space conversion coding |
US9596479B2 (en) * | 2014-10-07 | 2017-03-14 | Hfi Innovation Inc. | Method of pulse-code modulation and palette coding for video coding |
CN107005717B (zh) * | 2014-11-12 | 2020-04-07 | 寰发股份有限公司 | 索引映射编解码中的跳出像素编解码方法 |
TW201637448A (zh) * | 2015-01-14 | 2016-10-16 | Vid衡器股份有限公司 | 非4:4:4螢幕內容視訊調色盤編碼 |
JP2018050091A (ja) * | 2015-02-02 | 2018-03-29 | シャープ株式会社 | 画像復号装置、画像符号化装置および予測ベクトル導出装置 |
US11146788B2 (en) * | 2015-06-12 | 2021-10-12 | Qualcomm Incorporated | Grouping palette bypass bins for video coding |
-
2020
- 2020-02-24 SG SG11202108938TA patent/SG11202108938TA/en unknown
- 2020-02-24 CN CN202311433394.5A patent/CN117336514A/zh active Pending
- 2020-02-24 CN CN202080016456.0A patent/CN113475077B/zh active Active
- 2020-02-24 KR KR1020217025264A patent/KR20210129647A/ko active Search and Examination
- 2020-02-24 EP EP20758451.7A patent/EP3912351A4/en active Pending
- 2020-02-24 BR BR112021016235-6A patent/BR112021016235A2/pt unknown
- 2020-02-24 MX MX2021009943A patent/MX2021009943A/es unknown
-
2021
- 2021-08-16 ZA ZA2021/05840A patent/ZA202105840B/en unknown
-
2023
- 2023-01-03 US US18/149,333 patent/US20240048710A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
ZA202105840B (en) | 2023-05-31 |
US20240048710A1 (en) | 2024-02-08 |
CN113475077A (zh) | 2021-10-01 |
EP3912351A1 (en) | 2021-11-24 |
EP3912351A4 (en) | 2022-07-06 |
SG11202108938TA (en) | 2021-09-29 |
MX2021009943A (es) | 2021-09-21 |
BR112021016235A2 (pt) | 2021-10-13 |
CN113475077B (zh) | 2023-11-17 |
CN117336514A (zh) | 2024-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102624456B1 (ko) | 팔레트 모드의 양자화 프로세스 | |
US11677953B2 (en) | Independent coding of palette mode usage indication | |
US11683503B2 (en) | Mode determining for palette mode in prediction process | |
KR20220039721A (ko) | 색상 포맷에 기초한 크기 제한 | |
WO2021013119A1 (en) | Mode determination for palette mode coding | |
KR20210129647A (ko) | 팔레트 모드 사용 지시의 독립적인 코딩 | |
US12063356B2 (en) | Palette mode coding in prediction process | |
KR20210132662A (ko) | 팔레트 모드 사용 지시의 조인트 코딩 | |
WO2020207421A1 (en) | Entry construction for palette mode coding | |
US12132884B2 (en) | Palette mode coding in prediction process | |
WO2021013210A1 (en) | Mode determining for palette mode in prediction process |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |