KR102707777B1 - 양자화된 잔차 차동 펄스 코드 변조 코딩을 사용하는 인트라 코딩된 비디오 - Google Patents
양자화된 잔차 차동 펄스 코드 변조 코딩을 사용하는 인트라 코딩된 비디오 Download PDFInfo
- Publication number
- KR102707777B1 KR102707777B1 KR1020217033193A KR20217033193A KR102707777B1 KR 102707777 B1 KR102707777 B1 KR 102707777B1 KR 1020217033193 A KR1020217033193 A KR 1020217033193A KR 20217033193 A KR20217033193 A KR 20217033193A KR 102707777 B1 KR102707777 B1 KR 102707777B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- mode
- video
- video block
- intra prediction
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 165
- 238000006243 chemical reaction Methods 0.000 claims abstract description 24
- 241000023320 Luma <angiosperm> Species 0.000 claims description 56
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 claims description 53
- 238000012545 processing Methods 0.000 claims description 33
- 238000003672 processing method Methods 0.000 claims description 27
- 230000009466 transformation Effects 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 9
- 230000015654 memory Effects 0.000 claims description 7
- 239000013598 vector Substances 0.000 description 59
- 230000008569 process Effects 0.000 description 27
- 238000013139 quantization Methods 0.000 description 23
- 239000011159 matrix material Substances 0.000 description 22
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 17
- 238000013507 mapping Methods 0.000 description 15
- 230000011664 signaling Effects 0.000 description 14
- 238000009795 derivation Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000009977 dual effect Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 8
- 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 7
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 238000005192 partition Methods 0.000 description 6
- 238000012935 Averaging Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 101100129500 Caenorhabditis elegans max-2 gene Proteins 0.000 description 2
- 241000209094 Oryza Species 0.000 description 2
- 235000007164 Oryza sativa Nutrition 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 235000009566 rice Nutrition 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000002123 temporal 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
- 241000282472 Canis lupus familiaris Species 0.000 description 1
- 241000249931 Doronicum maximum Species 0.000 description 1
- NIPNSKYNPDTRPC-UHFFFAOYSA-N N-[2-oxo-2-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)ethyl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C(CNC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)N1CC2=C(CC1)NN=N2 NIPNSKYNPDTRPC-UHFFFAOYSA-N 0.000 description 1
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 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/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/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/124—Quantisation
-
- 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
-
- 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
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M3/00—Conversion of analogue values to or from differential modulation
- H03M3/04—Differential modulation with several bits, e.g. differential pulse code modulation [DPCM]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
비디오 코딩 및 디코딩 방법이 개시된다. 일 예의 방법은, 차동 코딩 모드를 사용하여, 현재 비디오 블록과 연관되어 저장되는 제1 인트라 코딩 모드를 결정함으로써 비디오의 상기 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하고, 상기 현재 비디오 블록과 연관된 상기 제1 인트라 코딩 모드는 상기 차동 코딩 모드에 의해 사용되는 제2 예측 모드에 따라 결정되며, 상기 차동 코딩 모드에서, 상기 현재 비디오 블록의 인트라 예측의 양자화된 잔차와 상기 양자화된 잔차의 예측 간의 차이는 차동 펄스 코딩 변조(Differential Pulse Coding Modulation; DPCM) 표현을 사용하여 상기 현재 비디오 블록의 비트스트림 표현으로 나타난다.
Description
이 출원은 2019년 5월 1일에 출원된 국제 특허 출원 번호 PCT/CN2019/085398의 우선권과 이익을 주장한, 국제 특허 출원 번호 PCT/US2020/030684의 국내단계 진입이다. 상기 출원의 전체 개시는 본 출원의 개시의 일부로 참조에 의해 통합된다.
이 특허 문서는 비디오 코딩 기술, 장치 및 시스템과 관련이 있다.
비디오 압축의 발전에도 불구하고 디지털 비디오는 여전히 인터넷 및 기타 디지털 통신 네트워크에서 가장 큰 대역폭 사용을 차지한다. 비디오를 수신하고 표시할 수 있는 연결된 사용자 디바이스의 수가 증가함에 따라 디지털 비디오 사용에 대한 대역폭 수요가 계속 증가할 것으로 예상된다.
본 문서는 비디오 또는 이미지의 디코딩 또는 인코딩 중에 보조(secondary) 변환이 사용되는 다양한 구현예 및 기술을 설명한다.
일 예에서, 비디오 프로세싱 방법은, 차동 코딩 모드를 사용하여, 현재 비디오 블록과 연관되어 저장되는 제1 인트라 코딩 모드를 결정함으로써 비디오의 상기 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현(representation) 간의 변환을 수행하는 단계를 포함하고, 상기 현재 비디오 블록과 연관된 상기 제1 인트라 코딩 모드는 상기 차동 코딩 모드에 의해 사용되는 제2 예측 모드에 따라 결정되며, 상기 차동 코딩 모드에서, 상기 현재 비디오 블록의 인트라 예측의 양자화된 잔차와 상기 양자화된 잔차의 예측 간의 차이는 차동 펄스 코딩 변조(Differential Pulse Coding Modulation; DPCM) 표현을 사용하여 상기 현재 비디오 블록의 비트스트림 표현으로 나타난다.
다른 일 예에서, 비디오 프로세싱 방법은, 규칙에 따라, 비디오의 현재 비디오 블록과 상기 현재 비디오 블록의 비트 스트림 표현 간의 변환 중에 차동 코딩 모드에 의해 사용되는 인트라 코딩 모드를 결정하는 단계; 및 상기 결정에 기초하여, 상기 차동 코딩 모드를 사용하여 상기 현재 비디오 블록과 상기 현재 비디오 블록의 상기 비트 스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 상기 차동 코딩 모드에서, 상기 현재 비디오 블록의 인트라 예측의 양자화된 잔차와 상기 양자화된 잔차의 예측 간의 차이는 차동 펄스 코딩 변조(DPCM) 표현을 이용하여 현재 비디오 블록에 대한 비트스트림 표현으로 나타나며, 상기 양자화된 잔차의 상기 예측은 상기 인트라 코딩 모드에 따라 수행된다.
또 다른 예에서, 비디오 처리 방법이 개시된다. 상기 방법은, 차동 코딩 모드 및 선택적으로 공존(coexistence) 규칙에 기반한 인트라 예측 모드를 이용하여 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현(representation) 간의 변환을 수행하는 단계를 포함하고, 상기 인트라 예측 모드는 상기 현재 비디오 블록의 샘플들의 예측들을 생성하는데 이용되고, 상기 차동 코딩 모드는 차동 펄스 코딩 변조 표현을 이용하여 상기 픽셀들의 상기 예측으로부터 양자화된 잔차 블록을 표현하는데 사용된다.
또 다른 예에서, 또 다른 비디오 프로세싱 방법이 개시된다. 상기 방법은, 현재 비디오 블록의 픽셀 예측으로부터 정량화된 잔차 블록이 차동 펄스 코딩 변조 표현을 사용하여 표현되는 차동 코딩 모드를 사용하여 현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 변환을 수행하는 것을 포함하고, 상기 예측의 제1 방향(direction) 또는 상기 차동 코딩 모드의 제2 방향은 상기 비트스트림 표현으로부터 추론된다.
또 다른 예에서, 또 다른 비디오 프로세싱 방법이 개시된다. 상기 방법은, 적용 가능성 규칙에 기초하여, 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환에 차동 코딩 모드가 적용 가능함을 결정하는 단계; 상기 차동 코딩 모드를 사용하여 현재 비디오 블록과 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다. 여기서, 상기 차동 코딩 모드에서, 상기 현재 비디오 블록의 픽셀의 인트라 예측으로부터 양자화된 잔차 블록은 수평 또는 수직 방향과 다른 잔차 예측 방향에서 수행되는 차동 펄스 코딩 변조 표현을 사용하여 표현된다.
또 다른 예에서, 또 다른 비디오 프로세싱 방법이 개시된다. 상기 방법은, 차동 코딩 모드가 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환에 적용 가능한지 결정하는 단계; 및 차동 코딩 모드가 적용 가능함을 결정하는 단계; 상기 차동 코딩 모드의 구현 규칙을 사용하여 상기 현재 비디오 블록과 상기 비트스트림 표현 간의 변환을 수행하는 단계를 포함하고, 상기 차동 코딩 모드에서, 상기 현재 비디오 블록의 픽셀의 인트라 예측으로부터 양자화된 잔차 블록은 수평 또는 수직 방향과 다른 잔차 예측 방향에서 수행되는 차동 펄스 코딩 변조 표현을 사용하여 표현된다.
또 다른 예에서, 또 다른 비디오 프로세싱 방법이 개시된다. 상기 방법은, 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환 중에 사용되는 차동 코딩 모드가 상기 현재 비디오 블록과 연관된 인트라 코딩 모드와 동일한지 결정하는 단계 및 상기 차동 코딩 모드의 구현 규칙을 사용하여 현재 비디오 블록과 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다.
또 다른 예에서, 비디오 프로세싱 장치가 개시된다. 상기 장치는 상기 개시된 방법을 수행하기 위해 구성된 프로세서를 포함한다.
다른 예시적인 측면에서, 컴퓨터 판독 가능 프로그램 매체(computer readable program medium)가 개시된다. 상기 매체에는 위에서 설명한 방법의 프로세서 구현을 위한 코드가 저장되어 있다.
이들 및 기타 측면은 본 문서에 설명되어 있다.
도 1은 인트라 블록 카피를 도시한 도면이다.
도 2는 팔레트 모드에서 코딩된 블록의 예를 도시한다.
도 3은 팔레트 엔트리들을 시그널링하기 위한 팔레트 예측자의 사용 예를 도시한다.
도 4는 수평 및 수직 횡단(traverse) 스캔의 예를 도시한다.
도 5는 팔레트 인덱스의 코딩의 예를 도시한다.
도 6은 아핀 선형 가중 인트라 예측(affine linear weighted intra prediction)(ALWIP) 프로세스의 일 예를 도시한다.
도 7은 아핀 선형 가중 인트라 예측(affine linear weighted intra prediction)(ALWIP) 프로세스의 일 예를 도시한다.
도 8은 아핀 선형 가중 인트라 예측(affine linear weighted intra prediction)(ALWIP) 프로세스의 일 예를 도시한다.
도 9는 아핀 선형 가중 인트라 예측(affine linear weighted intra prediction)(ALWIP) 프로세스의 일 예를 도시한다.
도 10은 본 문서에 설명된 기술을 구현하는 데 사용되는 하드웨어 플랫폼의 예의 블록도이다.
도 11은 비디오 프로세싱 방법의 일 예에 따른 흐름도이다.
도 12는 4개의 병합 후보의 예를 도시한다.
도 13은 비디오 코딩에 사용되는 병합 후보 쌍(pair)들의 예를 도시한다.
도 14는 67개의 인트라 예측 모드의 예를 도시한다.
도 15는 본 개시의 기술을 활용할 수 있는 비디오 코딩 시스템의 일 예를 도시한 블록도이다.
도 16은 비디오 인코더의 일 예를 도시한 블록도이다.
도 17은 비디오 디코더의 일 예를 도시한 블록도이다.
도 18은 여기에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 프로세싱 시스템을 도시한 블록도이다.
도 19 및 도 20은 예시적인 비디오 프로세싱 방법의 흐름도이다.
도 2는 팔레트 모드에서 코딩된 블록의 예를 도시한다.
도 3은 팔레트 엔트리들을 시그널링하기 위한 팔레트 예측자의 사용 예를 도시한다.
도 4는 수평 및 수직 횡단(traverse) 스캔의 예를 도시한다.
도 5는 팔레트 인덱스의 코딩의 예를 도시한다.
도 6은 아핀 선형 가중 인트라 예측(affine linear weighted intra prediction)(ALWIP) 프로세스의 일 예를 도시한다.
도 7은 아핀 선형 가중 인트라 예측(affine linear weighted intra prediction)(ALWIP) 프로세스의 일 예를 도시한다.
도 8은 아핀 선형 가중 인트라 예측(affine linear weighted intra prediction)(ALWIP) 프로세스의 일 예를 도시한다.
도 9는 아핀 선형 가중 인트라 예측(affine linear weighted intra prediction)(ALWIP) 프로세스의 일 예를 도시한다.
도 10은 본 문서에 설명된 기술을 구현하는 데 사용되는 하드웨어 플랫폼의 예의 블록도이다.
도 11은 비디오 프로세싱 방법의 일 예에 따른 흐름도이다.
도 12는 4개의 병합 후보의 예를 도시한다.
도 13은 비디오 코딩에 사용되는 병합 후보 쌍(pair)들의 예를 도시한다.
도 14는 67개의 인트라 예측 모드의 예를 도시한다.
도 15는 본 개시의 기술을 활용할 수 있는 비디오 코딩 시스템의 일 예를 도시한 블록도이다.
도 16은 비디오 인코더의 일 예를 도시한 블록도이다.
도 17은 비디오 디코더의 일 예를 도시한 블록도이다.
도 18은 여기에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 프로세싱 시스템을 도시한 블록도이다.
도 19 및 도 20은 예시적인 비디오 프로세싱 방법의 흐름도이다.
본 문서에서 사용된 섹션 제목은 이해를 쉽게 하기 위한 것으로서, 섹션에 개시된 실시예는 해당 섹션으로만 제한되지 않는다. 더욱이, 특정 실시예는 다목적(Versatile) 비디오 코딩 또는 기타 특정 비디오 코덱에 대한 참조로 설명되지만, 개시된 기술은 다른 비디오 코딩 기술에도 적용 가능하다. 더욱이, 일부 실시예는 비디오 코딩 단계를 자세히 설명하는 반면, 디코더에 의해 코딩을 취소하는 대응하는 단계가 구현될 것으로 이해된다. 또한 비디오 프로세싱이라는 용어에는 비디오 코딩 또는 압축, 비디오 디코딩 또는 압축해제 및 비디오 트랜스코딩을 포함하며, 비디오 픽셀은 하나의 압축된 형식에서 다른 압축된 형식으로 또는 다른 압축된 비트레이트로 표현된다.
요약
이 특허 문서는 비디오 코딩 기술과 관련이 있다. 구체적으로, 이것은 비디오 코딩에서 DPCM 코딩과 관련이 있다. HEVC와 같은 기존 비디오 코딩 표준 또는 마무리될 표준(다목적 비디오 코딩(Versatile Video Coding))에 적용될 수 있다. 미래의 비디오 코딩 표준 또는 비디오 코덱에도 적용될 수 있다.
초기 논의
비디오 코딩 표준은 주로 잘 알려진 ITU-T 및 ISO/IEC 표준의 개발을 통해 발전해 왔다. ITU-T는 H.261및 H.263을 제작했으며, ISO/IEC는 MPEG-1 및 MPEG-4 비주얼을 제작했으며, 두 조직은 H.262/MPEG-2 비디오 및 H.264/MPEG-4 고급 비디오 코딩(AVC) 및 H.265/HEVC[1] 표준을 공동 제작했다. H.262 이후, 비디오 코딩 표준은 시간 예측과 변환 코딩이 사용되는 하이브리드 비디오 코딩 구조에 기초한다. HEVC를 넘어선 미래의 비디오 코딩 기술을 탐구하기 위해, 2015년에 VCEG와 MPEG가 공동으로 조인트 비디오 연구 팀(Joint Video Exploration Team)(JVET)를 설립했다. 그 이후로, JVET에 의해 많은 새로운 방법이 채택되었고, 공동 탐사 모델 (JEM) [3,4]라는 레퍼런스(reference) 소프트웨어에 적용되었다. 2018년 4월, VCEG(Q6/16)와 ISO/IEC JTC1 SC29/WG11(MPEG) 사이의 공동 비디오 전문가 팀(Joint Video Expert Team)(JVET)는 HEVC에 비해 50% 비트 전송률 감소를 목표로 하는 VVC 표준 작업을 위해 만들어졌다.
The latest version of VVC draft, i.e., Versatile Video Coding (Draft 4) could be found at: VVC 드래프트의 최신 버전, 즉 다목적 비디오 코딩(Versatile Video Coding)(드래프트(Draft) 4)은 다음에서 찾을 수 있다.
phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=5755
The latest reference software of VVC, named VTM, could be found at:
vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-4.0
2.1 인트라 블록 카피
일명, 현재 픽처 레퍼런싱(picture referencing)라고 하는 IBC(인트라 블록 카피)는 HEVC 스크린 컨텐츠 코딩 확장(HEVC-SCC) 및 현재 VVC 테스트 모델(VTM-4.0)에 채택되었다. IBC는 모션 보상의 개념을 프레임 간 코딩에서 프레임 내 코딩으로 확장한다. 도 1에 도시된 바와 같이, 현재 블록은 IBC가 적용될 때 동일한 픽처 내의 레퍼런스 블록(reference block)에 의해 예측된다. 레퍼런스 블록의 샘플은 현재 블록이 코딩 되거나 디코딩 되기 전에 이미 재구성되어 있어야 한다. IBC는 대부분의 카메라 캡처 시퀀스에 대해 그다지 효율적이지 않지만 화면 컨텐츠에 대해 상당한 코딩 이득을 보여준다. 그 이유는 화면 컨텐츠 픽처에서 아이콘, 텍스트 문자 등 반복되는 패턴이 많기 때문이다. IBC는 이러한 반복 패턴 사이의 중복성을 효과적으로 제거할 수 있다. HEVC-SCC에서 CU(인터 코딩된 코딩 유닛)는 현재 픽처를 레퍼런스 픽처로 선택하는 경우 IBC를 적용할 수 있다. MV는 블록 벡터(BV)로 이름이 바뀌고, BV는 항상 정수(integer) 픽셀 정밀도(precision)를 갖는다. 메인 프로파일 HEVC와 호환되도록, 현재 픽처는 디코딩 픽처 버퍼(Decoded Picture Buffer; DPB)에서 "장기(long-term)" 레퍼런스 픽처로 표시된다. 유사하게, 다중 시점/3D 비디오 코딩 표준에서 시점내(inter-view) 레퍼런스 픽처는 "장기" 레퍼런스 픽처로도 표시된다는 점에 유의해야 한다.
BV를 따라 그의 레퍼런스 블록을 찾고, 레퍼런스 블록을 카피하여 예측을 생성할 수 있다. 잔차는 원래 시그널링에서 레퍼런스 픽셀을 감산하여 얻을 수 있다. 그 다음, 변환 및 양자화는 다른 코딩 모드에서와 같이 적용될 수 있다.
도 1은 인트라 블록 카피를 도시한다.
그러나, 레퍼런스 블록이 픽처 외부에 있거나 현재 블록과 중첩되거나 재구성(reconstructed) 영역 외부 또는 일부 제약 조건(constrain)에 의해 제한된 유효 영역 외부에 있는 경우에는, 일부 또는 전체 픽셀 값이 정의되지 않는다. 기본적으로 이러한 문제를 처리하는 두 가지 솔루션이 있다. 하나는 예를 들어, 비트스트림 적합성(conformance)에서 그러한 상황을 허용하지 않는 것이다. 다른 하나는 정의되지 않은 픽셀 값에 패딩(padding)을 적용하는 것이다. 다음 서브 세션에서는 솔루션에 대해 자세히 설명한다.
2.2 HEVC 화면 컨텐츠 코딩 확장에서의 IBC
HEVC의 화면 컨텐츠 코딩 확장에서 블록이 현재 픽처를 레퍼런스로 사용할 때 다음 사양 텍스트에 표시된 대로 전체 레퍼런스 블록이 사용 가능한 재구성 영역 내에 있음을 보장해야 한다.
변수 offsetX 및 offsetY는 다음과 같이 유도된다:
offsetX = ( ChromaArrayType = = 0 ) ? 0 : ( mvCLX[ 0 ] & 0x7 ? 2 : 0 ) (8-106)
offsetY = ( ChromaArrayType = = 0 ) ? 0 : ( mvCLX[ 1 ] & 0x7 ? 2 : 0 ) (8-107)
레퍼런스 픽처가 현재 픽처일 때, 루마 모션 벡터 mvLX가 다음 제약 조건을 따라야 하는 것은 비트 스트림 적합성의 요구 사항이다:
- 6.4.1 절에 규정된 z-스캔 차수 블록 가용성을 위한 유도 프로세스가 ( xCurr, yCurr ) 이 ( xCb, yCb )와 동일하고 인접 루마 위치 ( xNbY, yNbY )가 ( xPb + (mvLX[ 0 ] >> 2) - offsetX, yPb + ( mvLX[ 1 ] >> 2 ) - offsetY )와 입력으로서 동일하게 세팅되어 개시되는 경우, 출력은 참이어야 한다.
- 6.4.1 절에 규정된 z-스캔 차수 블록 가용성을 위한 유도 프로세스가 ( xCurr, yCurr ) 이 ( xCb, yCb )와 동일하고 인접 루마 위치 ( xNbY, yNbY )가 ( xPb + (mvLX[ 0 ] >> 2) + nPbW - 1 + offsetX, yPb + (mvLX[ 1 ] >> 2) + nPbH - 1 + offsetY)와 입력으로서 동일하게 세팅되어 개시되는 경우, 출력은 참이어야 한다.
- 다음의 조건 중 하나 또는 둘 모두는 참이어야 한다:
- The value of ( mvLX[ 0 ] >> 2 ) + nPbW + xB1 + offsetX는 0보다 작거나 같다.
-The value of ( mvLX[ 1 ] >> 2 ) + nPbH + yB1 + offsetY는 0보다 작거나 같다.
-다음의 조건들은 참이어야 한다:
( xPb + ( mvLX[ 0 ] >> 2 ) + nPbSw - 1 + offsetX) / CtbSizeY - xCurr / CtbSizeY <= yCurr/CtbSizeY - ( yPb + ( mvLX[ 1 ] >> 2 ) + nPbSh - 1 + offsetY ) / CtbSizeY (8-108)
따라서, 레퍼런스 블록(reference block)이 현재 블록과 겹치거나 레퍼런스 블록이 픽처 외부에 있는 경우는 발생하지 않는다. 레퍼런스 또는 예측 블록(prediction block)을 패딩(padding)할 필요가 없다.
2.3 VVC 테스트 모델의 IBC
현재 VVC 테스트 모델, 즉 VTM-4.0 설계에서 전체 레퍼런스 블록은 현재 CTU(코딩 트리 유닛)와 함께 있어야 하며 현재 블록과 겹치지 않아야 한다. 따라서 레퍼런스 또는 예측 블록을 패딩(padding)할 필요가 없다. IBC 플래그는 현재 CU의 예측 모드로 코딩된다. 따라서, 각 CU에 대해 MODE_INTRA, MODE_INTER 및 MODE_IBC의 세 가지 예측 모드가 있다.
2.3.1 IBC 병합 모드
IBC 병합 모드(merge mode)에서 IBC 병합 후보 목록의 항목을 가리키는 인덱스는 비트스트림에서 파싱된다. IBC 병합 목록의 구성은 다음 단계 순서에 따라 요약할 수 있다:
* 1단계: 공간 후보 유도
* 2단계: HMVP 후보 삽입
* 3단계: 페어관련(pair-wise) 평균 후보 삽입
공간적 병합 후보의 유도에서, 도 12에 도시된 위치에 위치한 후보들 중에서 최대 4 개의 병합 후보가 선택된다. 유도 순서는 A1, B1, B0, A0 및 B2이다. 위치 B2는 위치 A1, B1, B0, A0의 PU를 사용할 수 없는 경우(예를 들어, 다른 슬라이스 또는 타일에 속하기 때문에) 또는 IBC 모드로 코딩 되지 않은 경우에만 고려된다. A1 위치의 후보가 추가된 후 나머지 후보의 삽입은 중복 확인(redundancy check)를 거쳐 동일한 모션 정보를 가진 후보를 목록에서 제외하여 코딩 효율성을 향상시킨다. 계산 복잡성을 줄이기 위해 언급된 중복성 검사(redundancy check)에서 가능한 모든 후보 페어를 고려하는 것은 아니다. 대신 도 13에서 화살표와 연결된 페어만 고려되고, 중복 검사에 사용되는 대응하는 후보가 동일한 모션 정보가 없는 경우에만 후보가 리스트(list)에 추가된다.
공간 후보를 삽입한 후 IBC 병합 목록 크기가 최대 IBC 병합 목록 크기보다 여전히 작은 경우 HMVP 테이블의 IBC 후보를 삽입할 수 있다.
HMVP 후보를 삽입할 때 중복 확인이 수행된다.
마지막으로, 페어관련(pair-wise) 평균 후보가 IBC 병합 목록에 삽입된다.
병합 후보에 의해 식별된 레퍼런스 블록이 픽처 외부에 있거나 현재 블록과 중첩되거나 재구성된 영역 외부 또는 일부 제약 조건에 의해 제한된 유효 영역 외부에 있는 경우 병합 후보를 유효하지 않은 병합 후보(invalid merge candidate)라고 한다.
유효하지 않은 병합 후보가 IBC 병합 목록에 삽입될 수 있음에 주의한다.
2.3.2 IBCAMVP 모드
IBC AMVP 모드에서 IBC AMVP 목록의 항목에 대한 AMVP 인덱스 포인트는 비트스트림에서 파싱(parsing)된다. IBC AMVP 목록의 구성은 다음 단계 순서에 따라 요약될 수 있다.
* 1단계: 공간(spatial) 후보 유도
사용 가능한 후보를 찾을 때까지 A0, A1을 확인.
사용 가능한 후보를 찾을 때까지 B0, B1, B2를 확인.
* 2 단계: HMVP 후보 삽입
* 3 단계: 제로(zero) 후보 삽입
공간 후보를 삽입한 후, IBC AMVP 목록 크기가 최대 IBC AMVP 목록 크기보다 여전히 작은 경우 HMVP 테이블의 IBC 후보가 삽입될 수 있다.
마지막으로 IBC AMVP 목록에 제로(zero) 후보가 삽입된다.
2.4팔레트 모드
팔레트 모드의 기본 아이디어는 CU의 샘플이 대표 컬러 값의 작은 세트로 표현된다는 것이다. 이 세트를 팔레트라고 한다. 이스케이프 기호(escape symbol) 뒤에 (양자화된) 컴포넌트 값이 오는 시그널링 함으로써 팔레트 외부에 있는 샘플을 나타내는 것도 가능하다. 이것은 도 2에 도시되어 있다.
2.5 HEVC 화면 컨텐츠 코딩 확장(HEVC-SCC)의 팔레트 모드
HEVC-SCC의 팔레트 모드에서 예측 방식은 팔레트와 인덱스 맵을 코딩하는 데 사용된다.
2.5.1 팔레트 엔트리(entries)의 코딩
팔레트 엔트리의 코딩을 위해 팔레트 예측자(predictor)가 유지된다. 팔레트 예측자(palette predictor)와 팔레트의 최대 크기는 SPS 내에서 시그널링 된다. HEVC-SCC에서는 PPS에 palette_predictor_initializer_present_flag가 도입된다. 이 플래그가 1이면 팔레트 예측자를 초기화하기 위한 항목이 비트스트림에서 시그널링 된다. 팔레트 예측자는 각 CTU 행, 각 슬라이스 및 각 타일의 시작 부분에서 초기화된다. palette_predictor_initializer_present_flag의 값에 따라, 팔레트 예측자는 0으로 재설정되거나 PPS에서 시그널링 된 팔레트 예측자 초기화 엔트리를 사용하여 초기화된다. HEVC-SCC에서 크기 0의 팔레트 예측자 초기화가 인에이블되어 PPS 레벨에서 팔레트 예측자 초기화를 명시적으로 디스에이블할 수 있다.
팔레트 예측자의 각 엔트리에 대해 재사용 플래그가 시그널링되어 현재 팔레트의 일부인지 여부를 나타낸다. 이것은 도 3에 도시되어 있다. 재사용 플래그는 0의 실행 길이(run-length) 코딩을 사용하여 전송된다. 그 후, 새로운 팔레트 항목의 수는 차수 0의 지수 골롬(Golomb) 코드를 사용하여 시그널링 된다. 마지막으로, 새 팔레트 항목에 대한 컴포넌트 값이 시그널링 된다.
2.5.2 팔레트 지수 코딩
팔레트 인덱스는 도 4에 도시된 바와 같이, 수평 및 수직 횡단 스캔(traverse scan)을 사용하여 코딩 된다. 스캔 순서는 palette_transpose_flag를 사용하여 비트스트림에서 명시적으로 시그널링 된다. 나머지 서브 섹션에서는 스캔이 수평이라고 가정한다.
팔레트 인덱스는 두 가지 주요 팔레트 샘플 모드를 사용하여 코딩된다: 'INDEX' 및 'COPY_ABOVE'. 앞서 설명한 것처럼, 이스케이프 기호도 'INDEX' 모드로 시그널링 되고 최대 팔레트 크기와 동일한 인덱스가 할당된다. 모드는 맨 위쪽 행 또는 이전 모드가 'COPY_ABOVE'인 경우를 제외하고 플래그를 사용하여 시그널링 된다. 'COPY_ABOVE' 모드에서는 위쪽 행에 있는 샘플의 팔레트 인덱스가 카피된다. 'INDEX' 모드에서 팔레트 인덱스는 명시적으로 시그널링 된다. 'INDEX' 및 'COPY_ABOVE' 모드 모두에 대해, 동일한 모드를 사용하여 코딩되는 후속 샘플의 수를 지정(specify)하는 실행 값(run value)이 시그널링 된다. 이스케이프 기호가 'INDEX' 또는 'COPY_ABOVE' 모드에서 실행의 일부인 경우, 이스케이프 컴포넌트 값(escape component value)이 각 이스케이프 기호를 위해 시그널링 된다. 팔레트 인덱스의 코딩은 도 5에 도시되어 있다.
이러한 신택스(syntax) 순서는 다음과 같이 수행된다. 먼저 CU에 대한 인덱스 값의 수가 시그널링 된다. 그 다음에는 절단된(truncated) 이진 코딩을 사용하여 전체 CU에 대한 실제 인덱스 값의 시그널링이 이어진다. 인덱스 수와 인덱스 값 모두 바이패스 모드에서 코딩된다. 인덱스 관련 바이패스(bypass) 빈(bins)을 함께 그룹화한다. 그런 다음, 팔레트 샘플 모드(필요한 경우)와 실행이 보간(interleave) 방식으로 시그널링 된다. 마지막으로, 전체 CU에 대한 이스케이프 샘플에 해당하는 컴포넌트 이스케이프 값이 함께 그룹화되고 바이패스 모드에서 코딩된다.
추가 신택스 요소인 last_run_type_flag는 인덱스 값을 시그널링 한 후 시그널링 된다. 이 신택스 요소는, 인덱스 수와 함께, 블록 내 마지막 실행에 대응하는 실행 값을 시그널링할 필요를 없애 준다.
HEVC-SCC에서 팔레트 모드는 4:2:2, 4:2:0 및 모노크롬 크로마 형식(format)에 대해서도 인에이블된다. 팔레트 항목 및 팔레트 인덱스의 시그널링은 모든 크로마 형식에 대해 거의 동일하다. 비-모노크롬(non-monochrome) 형식인 경우, 각 팔레트 항목은 3개의 컴포넌트로 구성된다. 모노크롬 형식에 대해, 각 팔레트 항목은 단일 컴포넌트로 구성된다. 서브 샘플링된 크로마 방향(directions)의 경우, 크로마 샘플은 2로 나눌 수 있는 루마 샘플 인덱스와 연관된다. CU에 대한 팔레트 인덱스를 재구성한 후, 샘플이 자신과 연관된 단일 컴포넌트만을 가지는 경우, 팔레트 항목의 제1 컴포넌트만 사용된다. 시그널링 상의 유일한 차이점은 이스케이프 컴포넌트 값에 대한 것이다. 각 이스케이프 샘플에 대해, 시그널링 되는 이스케이프 컴포넌트 값의 수는 해당 샘플과 연관된 컴포넌트의 수에 따라 다를 수 있다.
2.6 변환 스킵 모드의 계수 코딩
JVET-M0464 및 JVET-N0280에서, 변환 스킵 레벨의 통계 및 시그널링 특성에 대해 잔차 코딩을 적용하기 위해 변환 스킵(Transform Skip; TS) 모드의 계수 코딩에 대한 몇 가지 수정이 제안된다.
제안된 수정 사항은 다음과 같다.
최종 중요 스캐닝 위치 없음: 잔차 시그널링은 예측 후 공간 잔차를 반영하고 TS에 대해 변환에 의한 에너지 압축이 수행되지 않기 때문에, 변환 블록의 오른쪽 하단 모서리에서 후행(trailing) 0 또는 중요하지 않은 레벨에 대한 더 높은 확률은 더 이상 제공되지 않는다. 따라서, 이 경우 최종 중요 스캐닝 위치 시그널링은 생략된다. 대신, 프로세싱되는 제1 서브 블록은 변환 블록 내에서 가장 아래 오른쪽 서브 블록이다.
서브 블록 CBF: 최종 중요 스캐닝 위치 시그널링의 부재로 인해, TS에 대한 coded_sub_block_flag로 시그널링되는 서브 블록 CBF가 다음과 같이 수정되어야 한다:
* 양자화로 인해, 전술한 중요도가 낮은(insignificance) 시퀀스는 변환 블록 내부에서 여전히 국부적으로 발생할 수 있다. 따라서, 앞서 설명한 바와 같이, 최종 중요 스캐닝 위치가 제거되고 모든 서브 블록에 대해 coded_sub_block_flag가 코딩된다.
* DC 주파수 위치(왼쪽 상단 서브 블록)를 커버하는 서브블록에 대한 coded_sub_block_flag는 특별한 경우를 나타낸다. VVC Draft 3에서, 이 서브 블록에 대한 coded_sub_block_flag는 시그널링 되지 않고, 항상 1과 같도록 추론(infer)된다. 최종 중요 스캐닝 위치가 다른 서브 블록에 위치하는 경우, DC 서브 블록 외부에 적어도 하나의 중요(significant) 레벨이 있음을 의미한다. 결과적으로, DC 서브 블록은 이 서브 블록에 대한 coded_sub_block_flag가 1과 동일한 것으로 추론되더라도, 단지 0/중요도가 없는 레벨만을 포함할 수 있다. TS에 최종 스캐닝 위치 정보가 없으면, 각 서브블록에 대한 coded_sub_block_flag가 시그널링 된다. 이것은 또한 다른 모든 coded_sub_block_flag 신택스 요소가 이미 0과 같은 경우를 제외하고 DC 서브 블록에 대한 coded_sub_block_flag를 포함한다. 이 경우, DC coded_sub_block_flag는 1과 동일한 것으로 추론된다(inferDcSbCbf=1). 이 DC 서브 블록에는 적어도 하나의 유효 레벨이 있어야 하므로, (0,0)에서 첫 번째 위치에 대한 sig_coeff_flag 신택스 요소는 시그널링 되지 않고 이 DC 서브 블록의 다른 모든 sig_coeff_flag 신택스 요소가 0과 동일한 경우 대신 1과 동일하도록 유도(derive)된다(inferSbDcSigCoeffFlag=1).
* coded_sub_block_flag에 대한 컨텍스트 모델링이 변경된다. 컨텍스트 모델 인덱스는 왼쪽에 있는 coded_sub_block_flag와 현재 서브블록 위에 있는 coded_sub_block_flag의 합과 둘 다의 논리적 분리로 계산된다.
sig_coeff_flag 컨텍스트 모델링: sig_coeff_flag 컨텍스트 모델링의 로컬 템플릿은 현재 스캐닝 위치의 왼쪽 인접(NB0)과 위쪽 인접(NB1)만 포함하도록 수정된다. 컨텍스트 모델 오프셋은 중요한 인접 위치 sig_coeff_flag[NB0] + sig_coeff_flag[NB1]의 수이다. 따라서, 현재 변환 블록 내의 대각선을 따른 다른 컨텍스트 세트의 선택이 제거된다. 그 결과로 세 개의 컨텍스트 모델과 sig_coeff_flag 플래그를 코딩하기 위한 단일 컨텍스트 모델 세트가 생성된다.
abs_level_gt1_flag 및 par_level_flag 컨텍스트 모델링: abs_level_gt1_flag 및 par_level_flag에 대해 단일 컨텍스트 모델이 채용(employ)된다.
abs_remainder 코딩: 변환 스킵 잔차 절대 레벨의 경험적 분포는 일반적으로 여전히 라플라시안 또는 기하학적 분포에 적합하지만, 변환 계수 절대 레벨보다 더 큰 비정상성이 존재한다. 특히, 연속 실현(consecutive realization)의 윈도우(window) 내 분산(variance)은 잔차 절대 레벨에 대해 더 높다. 이것은 abs_remainder 신택스 이진화 및 컨텍스트 모델링의 다음 수정을 야기한다:
* 이진화(binarization)에서 더 높은 컷오프 값, 즉 sig_coeff_flag, abs_level_gt1_flag, par_level_flag 및 abs_level_gt3_flag를 사용한 코딩으로부터 abs_remainder를 위한 라이스 코드(Rice code)로의 트랜지션 포인트와 각 빈(bin) 위치에 대한 전용 컨텍스트 모델을 사용하여, 더 높은 압축 효율을 얻을 수 있다. 컷오프를 늘리면 컷오프에 도달할 때까지 abs_level_gt5_flag, abs_level_gt7_flag 등을 도입하는 등 "X보다 큼" 플래그가 생성된다. 컷오프 자체는 5로 고정된다(numGtFlags=5)
* 라이스 파라미터 유도를 위한 템플릿이 수정되고, 즉, 왼쪽에 있는 인접과 현재 스캐닝 위치 위에 있는 인접만이 sig_coeff_flag 컨텍스트 모델링을 위한 로컬 템플릿과 유사한 것으로 간주된다.
coeff_sign_flag 컨텍스트 모델링: 기호(signs)의 시퀀스 내부의 비정상성과 예측 잔차가 종종 바이어스(biased)된다는 사실로 인해, 전역(global) 경험적 분포가 거의 균일하게 분포된 경우에도 컨텍스트 모델을 사용하여 기호를 코딩할 수 있다. 단일 전용 컨텍스트 모델이 기호 코딩에 사용되며 기호는 sig_coeff_flag 다음에 파싱되어 모든 컨텍스트 코딩된 빈(bins)을 함께 유지한다.
2.7 양자화 잔차 블록 차동 펄스 부호 변조(QR-BDPCM)
JVET-M0413에서는 화면 컨텐츠를 효율적으로 코딩 하기 위해 양자화 잔차 블록 차동 펄스 코드 변조(QR-BDPCM)가 제안된다.
QR-BDPCM에서 사용되는 예측 방향은 수직 및 수평 예측 모드일 수 있다. 인트라 예측은 인트라 예측과 유사한 예측 방향(수평 또는 수직 예측)으로 샘플 카피함으로써 전체 블록에 대해 수행된다. 잔차는 양자화되고 양자화된 잔차와 그 예측자(수평 또는 수직) 양자화 값 사이의 델타가 코딩된다. 다음으로 설명될 수 있다: 크기가 M(행) Х N(열)인 블록의 경우, 위쪽 또는 왼쪽 블록 경계 샘플에서 필터링 되지 않은 샘플을 사용하여, 인트라 예측을 수평(예측된 블록을 가로질러 왼쪽 인접 픽셀 값을 라인 단위로 카피) 또는 수직으로(예측된 블록의 각 라인에 상단 인접 라인 카피) 수행한 이후 ri,j, 0≤i≤M-1, 0≤j≤N-1을 예측 잔차로 둔다. Q(ri,j), 0≤i≤M-1, 0≤j≤N-1이 잔차 ri,j의 양자화된 버전을 나타내고, 여기서 잔차는 원래 블록과 예측된 블록 값 간의 차이이다. 그런 다음 블록 DPCM이 양자화된 잔차 샘플에 적용되어 요소 을 갖는 수정된 MxN 어레이 이 생성된다. 수직 BDPCM이 시그널링 될 때:
(2-7-1)
수평 예측의 경우 유사한 규칙이 적용되고 잔차 양자화된 샘플은 다음과 같이 획득된다.
(2-7-2)
잔차 양자화된 샘플은 디코더로 전송된다.
디코더 측에서는, 위의 계산을 반대로 하여 를 생성한다. 수직 예측 케이스의 경우,
(2-7-3)
수평 케이스의 경우,
(2-7-4)
역 양자화된 잔차, 는 재구성된 샘플 값을 생성하기 위해 인트라 블록 예측 값에 추가된다.
이 방식의 주요 이점은, 계수가 파싱되면서 계수의 파싱 과정에서 예측자를 추가하여 역 DPCM이 즉석에서 이루어질 수도 있고, 이것이 파싱 이후에 수행될 수도 있다는 점이다.
QR-BDPCM의 드레프트 텍스트 변경 사항은 다음과 같다.
7.3.6.5
코딩 유닛 신텍스
bdpcm_flag[ x0 ][ y0 ] 이 1과 같다는 것은 위치 ( x0, y0 )에서 루마 코딩 블록을 포함하는 코딩 유닛 내에 specifies that a bdpcm_dir_flag가 있다는 것이다.
bdpcm_dir_flag[ x0 ][ y0 ]이 0과 같다는 것은 bdpcm 블록에서 사용되는 예측 방향이 수직이고, 다른 경우는 수직이라는 것이다.
8.4.2 루마 인트라 예측 모드를 위한 유도 프로세스
이 프로세스의 입력은 다음과 같다:
- 현재 픽처의 왼쪽 상단 루마 샘플에 대한 현재 코딩 블록의 왼쪽 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
- 루마 샘플에서 현재 코딩 블록의 너비를 지정하는 변수 cbWidth,
- 루마 샘플에서 현재 코딩 블록의 높이를 지정하는 변수 cbHeight.
이 프로세스에서, 루마 인트라 예측 모드 IntraPredModeY[ xCb ][ yCb ]가 유도된다.
표 8-1은 인트라 예측 모드 IntraPredModeY[xCb][yCb]의 값 및 연관된 이름을 지정한다.
표 8-1 인트라 예측 모드 및 연관된 이름의 사양
노트 : 인트라 예측 모드 INTRA_LT_CCLM, INTRA_L_CCLM 및 INTRA_T_CCLM는 크로마 컴포넌트들에 대해서만 적용 가능하다.
IntraPredModeY[ xCb ][ yCb ]는 다음 순서의 단계들에 의해 유도된다:
- 인접 위치 ( xNbA, yNbA ) 및 ( xNbB, yNbB )는 각각 ( xCb - 1, yCb + cbHeight - 1 ) 및 ( xCb + cbWidth - 1, yCb -1 )로 설정된다.
- A 또는 B 중의 어느 하나로 대체되는 X에 대해, 변수 candIntraPredModeX는 다음과 같이 유도된다:
...
- 변수 ispDefaultMode1 및 ispDefaultMode2는 아래와 같이 정의된다:
...
- candModeList[ x ] with x = 0..5 는 아래와 같이 유도된다:
...
- IntraPredModeY[ xCb ][ yCb ] 는 다음의 프로시져를 적용하여 유도된다:
- bdpcm_flag[ xCb ][ yCb ]이 1과 같으면, IntraPredModeY[ xCb ][ yCb ]는 candModeList[ 0 ]와 같도록 설정된다.
- 그렇지 않고 intra_luma_mpm_flag[ xCb ][ yCb ]이 1과 같으면, IntraPredModeY[ xCb ][ yCb ]는 candModeList[ intra_luma_mpm_idx[ xCb ][ yCb ] ]와 같도록 설정된다.
- 그렇지 않으면, IntraPredModeY[ xCb ][ yCb ]는 다음 순서의 단계를 적용하여 유도된다.
...
x = xCb..xCb + cbWidth - 1 및 y = yCb..yCb + cbHeight - 1인 변수 IntraPredModeY[ x ][ y ]는 IntraPredModeY[ xCb ][ yCb ]와 같도록 설정된다.
2.8 매트릭스 기반 인트라 예측(MIP)
매트릭스 기반 인트라 예측은 어핀 선행 가중 인트라 예측(affine linear weighted intra prediction; ALWIP)라고도 명명되고, 이것은 인트라 예측 시그널을 유도하는데 가중 메트릭스를 사용한다.
2.8.1 방법에 대한 설명
폭 및 높이 의 직사각형 블록의 샘플을 예측하기 위해, 어핀 선형 가중 인트라 예측(ALWIP)은 블록의 왼쪽에 있는 재구성된 인접 경계 샘플 H의 한 라인과 블록 위에 있는 재구성된 인접 경계 샘플 의 한 라인을 입력으로 취한다. 재구성된 샘플을 사용할 수 없는 경우, 종래의 인트라 예측에서 수행되던 방법으로 재구성된 샘플들이 생성된다.
예측 신호의 생성은 다음 세 단계를 기반으로 한다:
1. 경계 샘플 중에서, 인 경우의 4개의 샘플과, 다른 모든 경우의 8개의 샘플이 평균화(averaging)에 의해 추출된다.
2. 매트릭스 벡터 곱셈, 그 후 오프셋의 덧셈이 입력으로서 평균화된 샘플들에 대해 수행된다. 결과는, 원래 블록 내의 샘플들의 서브 샘플링된 세트 상에 감소된 예측 시그널이다.
3. 나머지 위치에서의 예측 시그널은 선형 보간(linear interpolation)에 의해 설정된 서브 샘플 상의 예측 신호로부터 생성되고, 여기에서 선형 보간은 각 방향에서의 단일 단계 선형 보간이다.
예측 시그널을 생성하는 데 필요한 매트릭스 및 오프셋 벡터는 메트릭스의 세 세트 , 로부터 취한다. 이 세트 은 18개의 매트릭스 로 구성되고, 각각의 매트릭스는 16개의 행과 4개의 열, 및 18개의 각각의 크기 16인 오프셋 벡터 를 포함한다. 이러한 세트의 매트릭스 및 오프셋 벡터는 크기 의 블록에 사용된다. 세트 는 10개의 매트릭스 을 포함하고, 각 매트릭스는 16개의 행과 8개의 열 및 각각의 크기 16인 10개의 오프셋 벡터 을 포함한다. 이러한 세트의 매트릭스 및 오프셋 벡터는 크기 , 및 인 블록에 사용된다. 마지막으로, 세트 는 6개의 매트릭스 를 포함하고, 각 매트릭스는 64개의 행과 8개의 열, 크기 64인 6개의 오프셋 벡터 을 포함한다. 이러한 세트 또는 이러한 매트릭스와 오프셋 벡터들의 일부(part)의 매트릭스들과 오프셋 벡터들은 모든 다른 블록 형상(block-shapes)을 위해 사용된다.
매트릭스 벡터 제품의 계산에 필요한 전체 곱셈 수는 항상 보다 작거나 같다. 즉, ALWIP 모드에는 샘플당 최소 4번의 곱셈이 필요하다.
2.8.2 경계의 평균화
제1 단계에서, 입력 경계 및 는 더 작은 경계 및 로 감소한다. 여기서, 및 모두 4x4-블록의 경우 2개의 샘플을 포함하고, 다른 모든 케이스에서는 둘 모두 4개의 샘플을 포함한다.
4x4-블록의 경우, 에 대해, 하나는 아래를 정의한다
그리고 유사하게 를 정의한다.
그렇지 않으면, 블록-폭 이 as 로 주어지는 경우, 에 대해, 하나는 아래를 정의한다.
그리고 유사하게 를 정의한다.
두 개의 감소된 경계 및 는 감소된 경계 벡터 에 연결되고, 이것은 형상 4x4의 블록에 대해 4의 크기이고, 모든 다른 형상에 대해 크기 8을 갖는다. 모드가 ALWIP 모드를 참조하는 경우, 이 연결(concatenation)은 다음과 같이 정의된다:
마지막으로, 서브 샘플링된 예측 시그널의 보간을 위해, 큰 블록 상 평균 경계의 제2 버전이 요구된다. 즉, 및 인 경우, 하나는 W를 기록하고, 에 대해 아래를 정의한다.
만일 및 이면, 하나는 를 유사하게 정의한다.
2.8.3 매트릭스 벡터 곱셈에 의한 감소된 예측 시그널 생성
감소된 입력 벡터 중 하나는 감소된 예측 시그널 를 생성한다. 후자(latter)의 시그널은 폭 과 높이 의 다운샘플링된 블록 상의 시그널이다. 여기에서, 및 는 다음으로 정의된다:
감소된 예측 시그널 은 매트릭스 벡터 제품을 계산하고 오프셋을 추가하여 연산된다:
.
여기에서, 는 이면, 행 및 4개의 열을 갖는 메트릭스이고, 다른 모든 케이스에서는 8개의 열을 갖는 메트릭스이다. 는 크기 를 갖는 벡터이다.
메트릭스 and 벡터 는 다음의 세트 , , 중 하나로부터 취해진다. 하나는 인덱스 을 다음과 같이 정의한다:
더욱이, 하나는 에 다음을 대입한다:
그 다음, 또는 이고 이면, 하나는 및 로 대입한다. 및 인 경우, 하나는 A를, W=4인 경우 다운샘플링된 블록 내 홀수(odd) x-좌표에 대응하고, 또는 H=4인 경우 다운샘플링된 블록 내 홀수(odd) y-좌표에 대응하는 의 모든 행을 제거하여 생성된 매트릭스가 되도록 한다.
마지막으로, 감소된 예측 신호는 다음과 같은 경우에 전치(transpose)로 대체된다:
* 및
* 및
* 및
인 경우의 의 계산에 필요한 곱셈 수는, 케이스 A가 4개의 열과 16개의 행을 가지므로, 4이다. 다른 모든 케이스에서, A는 8개의 열과 {4} 경우, 8 개의 열과 개의 행을 가지고, 하나는 이와 같이 곱셈이 요구되는 케이스들, 예를 들면 를 계산하는데 샘플 당 최대 4번의 곱셈이 요구되는 케이스들인지를 즉시 확인한다.
2.8.4 전체 ALWIP 프로세스의 도시
평균화, 행렬 벡터 곱셈 및 선형 보간의 전체 프로세스가 서로 다른 형상으로 도 6, 도 7, 도 8, 및 도 9에 도시된다. 나머지 형상들은 도시된 케이스들 중의 어느 하나 내에서 처리된다는 점에 유의하라.
1. 4x4 블록이 주어지면, ALWIP는 경계의 각 축을 따라 2개의 평균을 취한다. 결과인 4개의 입력 샘플은 매트릭스 벡터 곱셈에 들어간다. 매트릭스들은 세트 로부터 취해진다. 선행 보간은 예측 시그널을 생성하는데 필수적인 것은 아니다. 따라서, 샘플 당 총 곱셈이 수행된다.
도 6은 4x4 블록에 대한 ALWIP를 도시한다.
2. 8x8 블록이 주어지면, ALWIP는 경계의 각 축을 따라 4개의 평균을 취한다. 결과인 8개의 입력 샘플은 매트릭스 벡터 곱셈에 들어간다. 매트릭스들은 세트 로부터 취해진다. 이것은 예측 블록의 홀수 위치 상 16개의 샘플들을 제공한다. 따라서, 선행 보간은 예측 시그널을 생성하는데 필수적인 것은 아니다. 따라서, 샘플 당 곱셈이 수행된다. 오프셋을 더한 후, 이러한 샘플들은 감소된 탑(top) 경계를 이용하여 수직으로 보간된다. 원본 좌측(original left) 경계를 사용하여 수평 보간이 뒤이어 수행된다.
도 7은 8x8 블록에 대한 ALWIP를 도시한다.
3. 8x4 블록이 주어지면, ALWIP는 경계의 수평 축을 따라 4개의 평균 및 좌측 경계 상의 4개의 원본 경계 값을 취한다. 결과인 8개의 입력 샘플은 매트릭스 벡터 곱셈에 들어간다. 매트릭스들은 세트 로부터 취해진다. 이것은 홀수 수평 및 예측 블록의 각 수직 위치 상의 16개의 샘플들을 제공한다. 따라서, 선행 보간은 예측 시그널을 생성하는데 필수적인 것은 아니다. 따라서, 샘플 당 곱셈이 수행된다. 오프셋을 더한 후, 이러한 샘플들은 원본 좌측(original left) 경계를 사용하여 수평 보간이 수행된다.
도 8은 8x4 블록에 대한 ALWIP를 도시한다.
이에 따라, 전치된(transposed) 케이스가 처리된다.
4. 16x16 블록이 주어지면, ALWIP는 경계의 각 축을 따라 4개의 평균을 취한다. 결과인 8개의 입력 샘플은 매트릭스 벡터 곱셈에 들어간다. 매트릭스들은 세트 로부터 취해진다. 이것은 예측 블록의 홀수 위치 상 64개의 샘플들을 제공한다. 따라서, 선행 보간은 예측 시그널을 생성하는데 필수적인 것은 아니다. 따라서, 샘플 당 곱셈이 수행된다. 오프셋을 더한 후, 이러한 샘플들은 탑(top) 경계의 8개 평균을 이용하여 수직으로 보간된다. 원본 좌측(original left) 경계를 사용하여 수평 보간이 뒤이어 수행된다.
도 9는 16x16 블록에 대한 ALWIP를 도시한다.
큰 형상에 대해, 프로시저는 기본적으로 동일하고, 샘플 당 곱셈 수가 4 이하라는 점을 점검하기는 쉽다. W>8인 Wx8에서, 샘플들이 홀수 수평 및 각 수직 위치에서 주어질 때 수평 보간만이 필요하다. 마지막으로, W>8인 Wx4에서, 를 다운샘플링된 블록의 수평 축을 따라 홀수 엔트리에 대응하는 모든 행을 제거하여 생성된 매트릭스라고 가정한다. 다라서, 출력 크기는 32이고, 다시 수평 보간만이 수행된다. 감소된 예측의 계산을 위해, 샘플 당 ( 곱셈이 수행된다. W=16의 경우, 추가 곱셈이 요구되지 않는 반면, W>16의 경우 샘플 당 2 보다 작은 곱셈이 선형 보간에서 요구된다. 따라서, 전체 곱셈 수는 4 보다 작거나, 4와 같다.
이에 따라, 전치된(transposed) 케이스가 처리된다.
2.8.5 단일 스텝 선형 보간
를 갖는 블록에 대해, 선형 보간에 의해 상에 감소된 예측 시그널 로부터 예측 시그널이 생성된다. 블록 형상에 의존하여, 수직, 수평 또는 양 방향으로 선형 보간이 행해진다. 선형 보간이 양 방향에 대해 적용되는 경우, W<H이면 수평 방향에서 먼저 적용되고, 아니면 수직 방향에서 먼저 적용된다.
및 를 갖는 WxH 블록의 일반성(generality)을 잃지 않는 것을 고려하라. 그리고 나서, 1차원 선형 보간이 뒤따라 수행된다. 일반성의 손실 없이도, 수직 방향에서의 선형 보간을 설명하기 충분하다. 먼저, 감소된 예측 시그널은 경계 시그널에 의해 탑까지 연장된다. 수직 업샘플링 팩터 를 정의하고, 를 기록하라. 그리고 나서, 확장된 감소된 예측 시그널을 아래로 정의하라.
그리고 나서, 이 확장된 감소된 예측 시그널로부터, 수직으로 선행 보간된 예측 시그널은 아래에 의해 생성된다.
for , and .
비트-시프트-온리(bit-shift-only) 선행 보간 알고리즘은 여하한 곱셈을 요구하지 않는다.
2.8.6 제안된 인트라 예측 모드의 시그널화
각 코딩 장치(CU)에 대해 인트라 모드에서는 해당 예측 단위(PU)에 ALWIP 모드를 적용할지 또는 비트스트림에 전송되지 않는지를 나타내는 플래그가 적용된다. ALWIP 모드를 적용하려면, ALWIP 모드의 인덱스 가 3MPMS를 갖는 MPM-리스트를 사용하여 시그널링 된다.
여기서, MPM의 유도는 다음과 같이 위와 왼쪽 PU의 인트라 모드를 사용하여 수행된다. 3개의 고정된 테이블 , 각 기존의 인트라 예측 모드 에 할당된 , 및 ALWIP 모드
폭 W 및 높이 H의 각 PU에 대해, 하나는 인덱스를 아래로 정의한다.
이것은 3개의 세트로부터 ALWIP 파라미터가 위에서 설명한 섹션 1.3과 같이 취해지는 것을 가리킨다.
만일 위에서 언급한 예측 유닛(PU) 가 이용가능하고, 현재 PU와 동일한 CTU에 속해 있고, 이고, ALWIP가 ALWIP-mode 를 갖는 상에 적용되면, 하나는 아래와 같이 대입한다.
만일 위에서 언급한 PU가 이용가능하고, 현재 PU와 동일한 CTU에 속해 있고, 기존 인트라 예측 모드가 PU 상에 적용되면, 하나는 아래와 같이 대입한다.
다른 모든 케이스에서, 하나는 아래와 같이 대입한다.
이것은 이 모드가 이용가능하지 않음을 의미한다. 이러한 방법으로, 그러나 레프트 PU가 현재 PU와 동일한 CTU에 속할 필요가 있다는 제한 없이, 하나는 모드 를 유도한다.
마지막으로, 3개의 고정된 디폴트 리스트 , 가 제공되고, 이들 각각은 3개의 구별되는 ALWIP 모드를 포함한다. 디폴트 리스트 , 모드 및 중에서, 하나는 -1을 디폴트 값으로 대체함은 물론 반복(repetition)을 제거함으로써 3개의 구별되는 MPM을 구성한다.
2.8.7 기존의 루마 및 크로마 인트라 예측 모드를 위한 적응된 MPM 리스트 유도
제안된 ALWIP-모드는 다음과 같이 기존 인트라 예측 모드들의 MPM-기반 코딩과 조화된다. 기존의 인트라 예측 모드를 위한 루마 및 크로마 MPM-리스트 유도 프로세는, 주어진 PU 상의 ALWIP-모드 를 기존의 인트라 예측 모드들 중 어느 하나로 매핑하는, 고정된 테이블 , 를 사용한다.
.
루마 MPM-리스트 유도를 위해, 인접 루마 블록이 ALWIP 모드 를 사용하게 될 때마다, 이 블록은 기존 인트라 예측 모드 를 사용하고 있는 것처럼 처리된다. 크로마 MPM-리스트 유도를 위해, 현재 루마 블록이 LWIP 모드 를 사용할 때마다, ALWIP-모드에서 기존 인트라 예측 모드로의 변환(translate)을 위해 동일한 매핑이 사용된다.
2.9 67개의 인트라 예측 모드로 코딩하는 인트라 모드
보통의(natural) 비디오에 제공되는 임의의 에지 방향을 캡처하기 위해, VTM4의 디렉셔널(directional) 인트라 모드의 수는 33개에서, HEVC에서 사용되는 것과 같이, 65개로 확장된다. HEVC에 없는 새로운 디렉셔널(directional) 모드는 도 14의 빨간색 점선 화살표로 도시되고, 플래나(planar) 및 DC 모드는 동일하게 유지된다. 이러한 밀도가 높은 디렉셔널 인트라 예측 모드는 모든 블록 크기 및 루마와 크로나 인트라 예측 모드 둘 다에 적용된다.
MRL 및 ISP 코딩 툴이 적용되었는지 여부에 관계없이, 인트라 블록에 대해 통합된 6-MPM 리스트가 제안된다. MPM 리스트는 VTM4.0에서와 같이 왼쪽 및 인접 블록 위의 인트라 모드에 기초하여 구성된다. 왼쪽 모드가 left 로 표시되고, 위의 블록의 모드가 Above와 같이 표시되며, 통합된 MPM 리스트는 다음과 같이 구성된다.
* 인접 블록을 사용할 수 없는 경우, 해당 인트라 모드는 디폴트로 플래나(Planar)로 설정된다.
* Left 및 Above 두 개의 모드 모두가 비-각도(non-angular) 모드인 경우:
MPM 리스트 -> {Planar, DC, V, H, V-4, V+4}
* Left 및 Above 중 어느 하나가 각도(angular) 모드이고, 나머지는 비-각도 모드인 경우:
모드 Max를 Left 및 Above 내의 더 큰 모드로 세팅함
MPM 리스트 -> {Planar, Max, DC, Max -1, Max +1, Max -2}
* Left 및 Above 두 개의 모드 모두가 각도(angular) 모드인 경우:
모드 Left 및 Above의 차이가 2에서 62 사이의 범위에 있을 때, 아래
MPM 리스트 -> {Planar, Left, Above, DC, Max -1, Max +1}를 포함하고,
그렇지 않으면, MPM 리스트 -> {Planar, Left, Above, DC, Max -2, Max +2}
* Left 및 Above 두 개의 모드 모두가 각도(angular) 모드이고, 그들이 동일한 경우:
MPM 리스트 -> {Planar, Left, Left -1, Left +1, DC, Left -2}
7.3.6.5 코딩 유닛 신텍스
신텍스 요소 intra_luma_mpm_flag[ x0 ][ y0 ], intra_luma_not_planar_flag[ x0 ][ y0 ], intra_luma_mpm_idx[ x0 ][ y0 ] 및 intra_luma_mpm_remainder[ x0 ][ y0 ]는 루마 샘플들을 위한 인트라 예측 모드를 지정한다. 어레이 인덱스 x0, y0는 탑-레프트 루마 샘플과 관련하여 고려된 코딩 블록의 탑-레스트 루마 샘플의 위치 ( x0 , y0 )를 지정한다. intra_luma_mpm_flag[ x0 ][ y0 ]가 1과 같은 경우, 8.4.2 절에 따라 인트라 예측 모드는 인접 인트라 예측된 코딩 유닛을부터 추론된다.
intra_luma_mpm_flag[ x0 ][ y0 ]가 존재하지 않는 경우, 1과 같은 것으로 추론된다.
intra_luma_not_planar_flag[ x0 ][ y0 ]가 존재하지 않는 경우, 1과 같은 것으로 추론된다.
2.10 크로마 인트라 모드 코딩
크로마 인트라 모드 코딩의 경우, 크로마 인트라 모드 코딩에 대해 총 8개의 인트라 모드가 허용된다. 이러한 모드에는 5개의 기존 인트라 모드와 3개의 크로스-컴포넌트(cross-component) 선형 모델 모드가 포함된다. 크로마 DM 모드는 대응하는 루마 인트라 예측 모드를 사용한다. 루마 및 크로마 성분에 대한 분리된 블록 파티셔닝 구조가 I 슬라이스에서 인에이블되어 있기 때문에, 하나의 크로마 블록은 복수의 루마 블록에 대응할 수 있다. 따라서, 크로마 DM 모드의 경우, 현재 크로마 블록의 중심 위치를 커버하는 대응 루마 블록의 인트라 예측 모드가 직접 상속(inherit)된다.
3. 개시된 실시예에 의해 해결된 기술적 문제의 예
QR-BDPCM은 화면 컨텐츠 코딩에서 코딩 이점을 얻을 수 있지만, 여전히 몇 가지 단점이 있을 수 있다.
1. QR-BDPCM 모드의 예측은 수평 및 수직 인트라 예측으로만 제한되고, 이는 QR-BDPCM 모드에서 예측 효율성을 제한할 수 있다.
2. 인트라 예측 모드는 QR-BDPCM 코딩 블록에 대해 시그널링 되고, 이는 QR-BDPCM 모드의 속도 비용을 증가시킬 수 있다.
3. 시그널링된 메시지를 QR-BDPCM 모드의 예측 모드로 매핑할 때, 인접 정보는 고려되지 않는다.
4. QR-BDPCM은 복잡한 잔차 블록에서 코딩 성능을 구성할 수 있는 수평 DPCM 및 수직 DPCM만 지원하여 잔차(residue)를 나타낸다.
5. QR-BDPCM의 잔차 범위는 다른 비 QR-BDPCM 모드의 최대 범위를 초과할 수 있다.
6. QR-BDPCM은 블록 형상을 고려하지 않는다.
7. 루마 블록이 QR-BDPCM으로 코딩될 때 크로마를 처리하는 방법은 알 수 없다.
8. QR-BDPCM은 제1 MPM 모드만 저장된 인트라 모드로만 사용하고, 이는 인트라 모드의 코딩 효율을 제한할 수 있다.
4. 실시예 및 기술들
아래 항목 리스트는 일반적인 개념을 설명하는 예로 간주되어야 한다. 이러한 발명은 좁은 방법으로 해석되어서는 안된다. 더욱이, 이들 발명은 어떤 방식으로든 결합될 수 있다.
1. QR-BDPCM 코딩 블록내의 샘플 예측은 매트릭스 기반 인트라 예측(MIP) 방법에 의해 생성될 수 있다.
a. 일 예에서, QR-BDPCM과 MIP가 하나의 블록에 대해 모두 인에이블되면, MIP에서 허용된 모드의 일부만 지원되는 것으로 제한된다.
i. 일 예에서, 허용된 모드의 일부에는 수평 및/또는 수직 노멀(normal) 인트라 모드로 매핑될 수 있는 매트릭스 기반 인트라 예측 방법과 연관된 모드가 포함될 수 있다.
ii. 일 예에서, 허용된 모드의 일부에는 수평 및/또는 수직 노멀 인트라 모드로 매핑될 수 있는 매트릭스 기반 인트라 예측 방법과 연관된 모드만 포함될 수 있다.
b. 일 예에서, QR-BDPCM과 MIP가 모두 한 블록에 대해 인에이블되면 MIP의 허용된 모든 모드가 지원된다.
2. QR-BDPCM 코딩 블록의 샘플 예측은 수직/수평 인트라 예측 이외의 인트라 예측 모드에 의해 생성될 수 있다.
a. 일 예에서, QR-BDPCM 코딩된 블록의 샘플은 인트라 예측 모드 K에 의해 예측될 수 있다.
i. 일 예에서, K는 플래나 모드일 수 있다.
ii. 일 예에서, K는 DC 모드일 수 있다.
iii. 일 예에서, K는 수평 모드일 수 있다.
iv. 일 예에서, K는 수직 모드일 수 있다.
v. 일 예에서, K는 최대 가능(most probable) 모드 목록에서 하나의 후보일 수 있다.
vi. 일 예에서, K는 비트스트림에서 시그널링될 수 있다.
b. QR-BDPCM에 대한 허용된 인트라 예측 모드는 아래에 기초할 수 있다.
i. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹 내 시그널링된 메시지
ii. 현재 블록 및/또는 인접 블록의 블록 디멘전(dimension)
iii. 현재 블록 및/또는 인접 블록의 블록 형상(shape)
iv. 현재 블록의 인접 블록의 예측 모드(인트라/인터)
v. 현재 블록의 인접 블록의 인트라 예측 모드
vi. 현재 블록의 인접 블록의 QR-BDPCM 모드 표시
vii. 현재 블록 및/또는 해당 블록의 현재 양자화 파라미터
viii. 컬러 포멧의 표시(예: 4:2:0, 4:4:4)
ix. 독립(separate)/이중 코딩 트리 구조
x. 슬라이스/타일 그룹 타입 및/또는 픽처 타입
3. QR-BDPCM 코딩 블록 내의 샘플 예측은 인접한 비인접 샘플에 의해 생성될 수 있다.
a. 일 예에서, IBC 병합 모드의 경우 QR-BDPCM도 인에이블될 수 있다.
b. 일 예에서, IBC AMVP 모드의 경우 QR-BDPCM도 인에이블될 수 있다.
c. IBC 및 QR-BDPCM에 사용되는 블록 벡터는 시그널링 또는 유도되거나 미리 정의될 수 있다.
i. 일 예에서, IBC 모드는 모션 벡터(블록 벡터) 및/또는 병합 인덱스로 표시될 수 있다.
ii. 일 예에서, IBC 모드는 디폴트 모션 벡터로 표시될 수 있다.
1. 일 예에서, 디폴트 모션 벡터는 (-w,0)일 수 있고, 여기서 w는 양의 정수이다.
2. 일 예에서, 디폴트 모션 벡터는 (0, -h)일 수 있고, 여기서 h는 양의 정수이다.
3. 일 예에서, 디폴트 모션 벡터는 (-w, -h)일 수 있고, 여기서 w와 h는 양의 정수이다.
iii. 일 예에서, IBC 및 QP-BPDCM 코딩된 블록에 사용되는 모션 벡터의 표시는 다음을 기반으로 할 수 있다:
1. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹 내 시그널링된 메시지
2. 현재 블록 및/또는 인접 블록의 블록 디멘전(dimension)
3. 현재 블록 및/또는 인접 블록의 블록 형상(shape)
4. 현재 블록의 인접 블록의 예측 모드(인트라/인터)
5. 현재 블록의 인접 블록의 모션 벡터
6. 현재 블록의 인접 블록의 QR-BDPCM 모드 표시
7. 현재 블록 및/또는 해당 블록의 현재 양자화 파라미터
8. 컬러 포멧의 표시(예: 4:2:0, 4:4:4)
9. 독립(separate)/이중 코딩 트리 구조
10. 슬라이스/타일 그룹 타입 및/또는 픽처 타입
d. 일 예에서, QR-BDPCM 모드의 샘플 예측은 인터(inter) 예측 툴(예: 아핀(affine) 모드, 병합 모드 및 인터 모드)에 의해 생성될 수 있다.
4. QR-BDPCM 내 양자화된 잔차 예측 방향의 표시는 즉석에서(on the fly) 유도될 수 있다.
a. 일 예에서, QR-BDPCM 내 양자화된 잔차 예측 방향의 표시는 현재 인트라 예측 모드의 표시에 기초하여 추론(infer)될 수 있다
i. 일 예에서, QR-BDPCM 내 양자화된 잔차 예측 방향의 표시는 인트라 예측 모드가 수직인 경우 수직으로 추론될 수 있다.
ii. 일 예에서, QR-BDPCM 내 양자화된 잔차 예측 방향의 표시는 인트라 예측 모드가 수평인 경우 수평으로 추론될 수 있다.
iii. 일 예에서, QR-BDPCM 내 양자화된 잔차 예측 방향의 표시는 인트라 예측 모드가 수평인 경우 수직으로 추론될 수 있다.
iv. 일 예에서, QR-BDPCM 내 양자화된 잔차 예측 방향의 표시는 인트라 예측 모드가 수직인 경우 수평으로 추론될 수 있다.
b. QR-BDPCM 내 양자화된 잔차 예측 방향의 표시는 아래에 기반할 수 있다:
i. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹 내 시그널링된 메시지
ii. 현재 블록 및/또는 인접 블록의 블록 디멘전(dimension)
iii. 현재 블록 및/또는 인접 블록의 블록 형상(shape)
iv. 현재 블록 및/또는 인접 블록의 최대 가능 모드
v. 현재 블록의 인접 블록의 예측 모드(인트라/인터)
vi. 현재 블록의 인접 블록의 인트라 예측 모드
vii. 현재 블록의 인접 블록의 모션 벡터
viii. 현재 블록의 인접 블록의 QR-BDPCM 모드 표시
ix. 현재 블록 및/또는 해당 블록의 현재 양자화 파라미터
x. 컬러 포멧의 표시(예: 4:2:0, 4:4:4)
xi 독립(separate)/이중 코딩 트리 구조
xii. 현재 블록에 적용된 변환 타입
xiii. 슬라이스/타일 그룹 타입 및/또는 픽처 타입
5. 저장되는 QR-BDPCM 코딩 블록의 인트라 모드는 인트라 예측 프로세스에 사용되는 인트라 예측 모드와 정렬될 수 있다.
a. 일 예에서, 저장되는 QR-BDPCM 코딩 블록의 인트라 모드는 QR-BDPCM이 수직 인트라 예측(예를 들어, 현재 블록의 bdpcm_dir_flag가 1)을 채택할 때 수직 모드로 추론될 수 있다.
b. 일 예에서, 저장되는 QR-BDPCM 코딩 블록의 인트라 모드는 QR-BDPCM이 수평 인트라 예측(예를 들어, 현재 블록의 bdpcm_dir_flag가 0)을 채택할 때 수평 모드로 추론될 수 있다.
c. 일 예에서, 저장되는 QR-BDPCM 코딩 블록의 인트라 모드는 QR-BDPCM이 탑-레프트(top-left) 인트라 예측 방향을 채택하는 경우 탑-레프트 모드(예: VVC의 모드 34)로 추론될 수 있다.
d. 일 예에서, 저장되는 QR-BDPCM 코딩 블록의 인트라 모드는 QR-BDPCM 모드에서 인트라 예측 프로세스에 사용될 때 모드로 추론될 수 있다.
e. 일 예에서, 저장되는 QR-BDPCM 코딩 블록의 인트라 모드는 QR-BDPCM 모드에서 잔차 예측 프로세스에 사용될 때 모드로 추론될 수 있다.
f. 일 예에서, QR-BDPCM에 코딩된 블록의 인트라 모드는 MPM(최대 가능 모드) 리스트에서 하나의 모드로 추론될 수 있다.
g. 일 예에서, QR-BDPCM에 코딩된 블록의 인트라 모드는 미리 정의된 모드로 추론될 수 있다.
i. 일 예에서, 미리 정의된 모드는
1. 플래나 모드
2. DC 모드
3. 수직 모드
4. 수평 모드
h. 일 예에서, QR-BDPCM 모드에서 코딩된 블록의 인트라 모드는 다음에 기초하여 결정될 수 있다.
i. 컬러 컴포넌트
ii. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹 내 시그널링된 메시지
iii. bdpcm_dir_flag
iv. bdpcm_flag
ii. 현재 블록 및/또는 인접 블록의 블록 디멘전(dimension)
iii. 현재 블록 및/또는 인접 블록의 블록 형상(shape)
iv. 현재 블록 및/또는 인접 블록의 최대 가능 모드
v. 현재 블록의 인접 블록의 예측 모드(인트라/인터)
vi. 현재 블록의 인접 블록의 인트라 예측 모드
vii. 현재 블록의 인접 블록의 모션 벡터
viii. 현재 블록의 인접 블록의 QR-BDPCM 모드 표시
ix. 현재 블록 및/또는 해당 블록의 현재 양자화 파라미터
x. 컬러 포멧의 표시(예: 4:2:0, 4:4:4)
xi 코딩 트리 구조
xii. 현재 블록에 적용된 변환 타입
xiii. 슬라이스/타일 그룹 타입 및/또는 픽처 타입
i. 일 예에서, 저장된 인트라 예측 모드는 코딩될 이후 블록의 MPM 리스트 구성 등의 이후 블록을 코딩하는 데 사용될 수 있다.
6. QR-BDPCM의 시그널링된 인덱스에서 QR-BDPCM 모드의 인트라 예측 모드로 매핑하는 것은 아래에 기초할 수 있다
a. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹 내 시그널링된 메시지
b. 현재 블록 및/또는 인접 블록의 블록 디멘전(dimension)
c. 현재 블록 및/또는 인접 블록의 블록 형상(shape)
d. 현재 블록 및/또는 인접 블록의 최대 가능 모드
e. 현재 블록의 인접 블록의 예측 모드(인트라/인터)
f. 현재 블록의 인접 블록의 인트라 예측 모드
g. 현재 블록의 인접 블록의 모션 벡터
h. 현재 블록의 인접 블록의 QR-BDPCM 모드 표시
i. 현재 블록 및/또는 해당 블록의 현재 양자화 파라미터
j. 컬러 포멧의 표시(예: 4:2:0, 4:4:4)
k. 독립(separate)/이중 코딩 트리 구조
l. 현재 블록에 적용된 변환 타입
m. 슬라이스/타일 그룹 타입 및/또는 픽처 타입
7. QR-BDPCM에서, 수평 및 수직 방향을 따라 양자화된 잔차가 예측된다. 수직 및 수평 방향 이외의 방향을 따라 양자화된 잔차를 예측하는 것이 제안된다. 는 양자화된 잔차를 나타내고, 잔차 는 잔차 예측 프로세스 이후의 양자화된 잔차를 나타내는 것으로 가정하자.
a. 일 예에서, 45도 QR-BDPCM이 지원될 수 있다.
i. 일 예에서, DPCM은 45도 방향을 따라 수행될 수 있으며, 여기서 는 가 사용가능한 경우 에 의해 유도될 수 있다.
b. 일 예에서, 135도 QR-BDPCM이 지원될 수 있다.
i. 일 예에서, DPCM은 45도 방향으로 수행될 수 있고, 여기서 는 가 사용 가능한 경우 에 의해 유도될 수 있다.
c. 일 예에서, QR-BDPCM에서 모든 방향이 지원될 수 있다.
i. 일 예에서, 는 가 사용 가능한 경우, 에 의해 유도될 수 있다.
1. 일 예에서, m 및/또는 n은 비트스트림 내에서 시그널링될 수 있다.
2. 일 예에서, m 및/또는 n은 정수이고, 아래에 기초할 수 있다.
3. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹 내 시그널링된 메시지
4. i 및/또는 j
5. 현재 블록 및/또는 인접 블록의 블록 디멘전(dimension)
6. 현재 블록 및/또는 인접 블록의 블록 형상(shape)
7. 현재 블록 및/또는 인접 블록의 최대 가능 모드
8. 현재 블록의 인접 블록의 예측 모드(인트라/인터)
9. 현재 블록의 인접 블록의 인트라 예측 모드
10. 현재 블록의 인접 블록의 모션 벡터
11. 현재 블록의 인접 블록의 QR-BDPCM 모드 표시
12. 현재 블록 및/또는 해당 블록의 현재 양자화 파라미터
13. 컬러 포멧의 표시(예: 4:2:0, 4:4:4)
14. 독립(separate)/이중 코딩 트리 구조
15.슬라이스/타일 그룹 타입 및/또는 픽처 타입
8. QR-BDPCM은 크로마 블록(예: Cb/Cr 또는 B/R 컬러 컴포넌트)에 적용될 수 있다.
a. 일 예에서, 루마 및 크로마 QR-BDPCM 코딩된 블록에 대해 허용된 인트라 예측 방향은, 예를 들어 수평 및 수직 뿐일 수 있다.
b. 일 예에서, 루마 및 크로마 QR-BDPCM 코딩된 블록에 대해 허용된 예측 방법은, 예를 들어, IBC/인터/수평 및 수직 인트라 예측 모드와 동일할 수 있다.
c. 일 예에서, 루마 및 크로마 QR-BDPCM 코딩된 블록에 대해 허용된 잔차 예측 방향은 동일할 수 있다.
d. 일 예에서, 크로마 QR-BDPCM에 대한 잔차 예측 방향은 해당 루마 블록에 대한 잔차 예측 방향으로부터 유도될 수 있다.
i. 일 예에서, 대응하는 루마 블록은 함께 배치된(collocated) 루마 블록일 수 있다.
ii. 일 예에서, 대응하는 루마 블록은 크로마 블록의 어퍼-레스트(upper-left) 코너의 함께 배치된 샘플을 포함하는 루마 블록일 수 있다.
iii. 일 예에서, 대응하는 루마 블록은 크로마 블록의 중심 샘플의 함께 배치된 샘플을 포함하는 루마 블록일 수 있다.
e. 일 예에서, CCLM 및 QR-BDPCM은 동일한 크로마 블록에 적용할 수 없었다.
i. 대안적으로, CCLM은 QR-BDPCM 코딩된 블록에도 적용될 수 있다.
f. 일 예에서, 조인트 크로마 잔차 코딩(예를 들어, 조인트 CB 및 cr 코딩) 방법 및 QR-BDPCM은 동일한 크로마 블록에 적용될 수 없었다.
9. QR-BDPCM 내의 재구성되어 양자화된 잔차는 특정 범위 내에 있는 것으로 제한될 수 있다.
a. 일 예에서, 모든 양자화된 잔차 차이(예를 들어, 식 2-7-1 및 2-7-2의 )가 특정 범위 내에 있을 수 있다는 제한이 추가될 수 있다.
b. 일 예에서, 모든 양자화된 잔차 차이(예를 들어, 식 2-7-3 및 2-7-4의 )가 특정 범위 내에 있을 수 있다는 제한이 추가될 수 있다.
c. 일 예에서, 클리핑 동작은 양자화된 잔차 차이(예를 들어, 식 2-7-1 및 2-7-2의 )에 적용될 수 있으므로 재구성되어 양자화된 잔차는 특정 범위 내에 있을 수 있다.
d. 일 예에서, 클리핑 동작은 재구성되어 양자화된 잔차 차이(예를 들어, 식 2-7-3 및 2-7-4의 )에 적용될 수 있으므로 재구성되어 양자화된 잔차는 특정 범위 내에 있을 수 있다.
e. 일 예에서, 클리핑 동작은 (x < min? min: (x > max? max: x))로 정의될 수 있다.
f. 일 예에서, 클리핑 동작은 (x <= min? min: (x >= max? max: x))로 정의될 수 있다.
g. 일 예에서, 클리핑 동작은 (x < min? min: (x >= max? max: x))로 정의될 수 있다.
h. 일 예에서, 클리핑 동작은 (x <= min? min: (x > max? max: x))로 정의될 수 있다.
i. 일 예에서, min 및/또는 max는 음수 또는 양수일 수 있다.
j. 일 예에서, min은 -32768로 설정되고, max는 32767로 설정된다.
i. 대안적으로, min 및/또는 max는 QR-BDPCM으로 코딩되지 않은 블록에 대한 역 양자화 범위에 의존할 수 있다.
ii. 대안적으로, min 및/또는 max는 입력 샘플/재구성된 샘플의 비트 뎁스(depth)에 의존할 수 있다.
iii. 대안적으로, min 및/또는 max는 무손실 코딩이 사용되는지 여부에 의존할 수 있다.
1. 일 예에서, min 및/또는 max는 transquant_bypass_enabled_flag에 의존할 수 있다.
2. 일 예에서, min 및/또는 max는 cu_transquant_bypass_flag에 의존할 수 있다.
k. 일 예에서, min 및/또는 max는 다음에 기초한다
i. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹 내 시그널링된 메시지
ii. 현재 블록 및/또는 인접 블록의 블록 디멘전(dimension)
iii. 현재 블록 및/또는 인접 블록의 블록 형상(shape)
iv. 현재 블록 및/또는 인접 블록의 최대 가능 모드
v. 현재 블록의 인접 블록의 예측 모드(인트라/인터)
vi. 현재 블록의 인접 블록의 인트라 예측 모드
vii. 현재 블록의 인접 블록의 모션 벡터
viii. 현재 블록의 인접 블록의 QR-BDPCM 모드 표시
ix. 현재 블록 및/또는 해당 블록의 현재 양자화 파라미터
x. 컬러 포멧의 표시(예: 4:2:0, 4:4:4)
xi. 독립(separate)/이중 코딩 트리 구조
xii.현재 블록에 적용된 변환 타입
xiii. 슬라이스/타일 그룹 타입 및/또는 픽처 타입
10. QR-DPCM은 마지막 행/열로부터 블록의 첫 행/열까지 적용될 수 있다.
a. 일 예에서, 잔차 예측 방향이 수평인 경우(i+1)-th 열의 잔차를 사용하여 i-th 열의 잔차를 예측할 수 있다.
b. 일 예에서, 잔차 예측 방향이 수직인 경우(i+1)-th 행의 잔차를 사용하여 i-th 행의 잔차를 예측할 수 있다.
11. QR-DPCM은 블록의 서브 세트에 적용될 수 있다.
a. 일 예에서, 잔차 예측 방향이 수평인 경우 QR-DPCM은 잔차의 레프트 모스트(left most) k 열에는 적용되지 않는다.
b. 일 예에서, 잔차 예측 방향이 수직인 경우 QR-DPCM은 잔차의 어퍼 모스트(upper most) k 열에는 적용되지 않는다.
c. 일 예에서, 잔차 예측 방향이 수평인 경우 QR-DPCM은 잔차의 라이트 모스트(right most) k 열에는 적용되지 않는다.
d. 일 예에서, 잔차 예측 방향이 수직인 경우 QR-DPCM은 잔차의 바텀 모스트(bottom most) k 열에는 적용되지 않는다.
e. 상술한 k의 값은 다음에 기반하여 미리 정의된 값일 수 있다.
i. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹 내 시그널링된 메시지
ii. 현재 블록 및/또는 인접 블록의 블록 디멘전(dimension)
iii. 현재 블록 및/또는 인접 블록의 블록 형상(shape)
iv. 현재 블록 및/또는 인접 블록의 최대 가능 모드
v. 현재 블록의 인접 블록의 예측 모드(인트라/인터)
vi. 현재 블록의 인트라 예측 모드
vii. 현재 블록의 인접 블록의 인트라 예측 모드
viii. 현재 블록의 인접 블록의 모션 벡터
ix. 현재 블록의 인접 블록의 QR-BDPCM 모드 표시
x. 현재 블록 및/또는 해당 블록의 현재 양자화 파라미터
xi. 컬러 포멧의 표시(예: 4:2:0, 4:4:4)
xii. 독립(separate)/이중 코딩 트리 구조
xiii. 현재 블록에 적용된 변환 타입
xiv. 슬라이스/타일 그룹 타입 및/또는 픽처 타입
12. QR-DPCM은 블록에 대해 세그먼트 별로 적용될 수 있다.
a. 일 예에서, 잔차 예측 방향이 수직이고 N=nK인 경우, 잔차 예측은 다음과 같이 수행될 수 있다.
.
b. 일 예에서, 잔차 예측 방향이 수평이고 N=mK인 경우, 잔차 예측은 다음과 같이 수행될 수 있다.
.
13. 하나의 컬러 컴포넌트에 대해 QR-DPCM을 인에이블/디스에이블하는 것은 다른 컬러 컴포넌트와 연관된 것으로부터 유도될 수 있다.
a. 일 예에서, 크로마 블록의 경우, QR-DPCM을 인에이블할지 여부는 함께 배치된(collocated) 루마 블록 내에서 하나 또는 여러 대표 블록과 연관된 QR-DPCM의 사용에 의존할 수 있다.
i. 일 예에서, 대표 블록은 DM 유도에서 사용된 것과 동일한 방식으로 정의될 수 있다.
ii. 일 예에서, 함께 배치된(collocated) 루마 블록 내의 대표 블록이 QR-DPCM 코딩되고, 현재 크로마 블록이 DM 모드로 코딩되는 경우, QR-DPCM도 현재 크로마 블록에 대해 인에이블될 수 있다.
b. 대안적으로, QR-DPCM의 사용의 표시는 크로마 성분에 대해 시그널링될 수 있다.
i. 일 예에서, 하나의 플래그는 두 크로마 구성 요소에 대한 사용을 나타내기 위해 시그널링될 수 있다.
ii. 대안적으로, 두 개의 플래그가 각각 두 개의 크로마 성분에 대한 사용을 나타내도록 시그널링될 수 있다.
iii. 일 예에서, 크로마 블록이 특정 모드(예: CCLM)로 코딩되면 QR-DPCM의 사용 표시의 시그널링은 스킵된다.
14. 위의 방법은 DPCM/QR-DPCM의 다른 변형들에도 적용될 수 있다.
5. 실시예
JVET-N0413에서 제공하는 드래프트의 상단(top)에 있는 변경 사항은 굵음 기울임체(bold italic)로 하이라이트되어 제공된다. 삭제된 텍스트는 취소선으로 마크된다 .
5.1 실시예 1
i. 루마 인트라 예측 모드에 대한 유도 프로세스
본 프로세스에 대한 입력은:
- 루마 위치 ( xCb , yCb )는 현재 픽처의 탑-레프트 루마 샘플들과 관련된 현재 루마 코딩 블록의 탑-레프트 샘플을 지정함,
- 변수 cbWidth는 루마 샘플 내 현재 코딩 블록의 폭을 지정함,
- 변수 cbHeight는 루마 샘플 내 현재 코딩 블록의 높이를 지정함.
이 프로세스에서, 루마 인트라 예측 모드 IntraPredModeY[ xCb ][ yCb ] 가 유도된다.
표 8-1은 인트라 예측 모드 IntraPredModeY[ xCb ][ yCb ]의 값과 연관된 이름을 지정한다.
표 8-1 -인트라 예측 모드 및 연관된 이름의 사양
주의 - : 인트라 예측 모드 INTRA_LT_CCLM, INTRA_L_CCLM 및 INTRA_T_CCLM 들은 크로마 컴포넌트에만 적용 가능하다.
IntraPredModeY[ xCb ][ yCb ]는 다음 순서의 단계에 의해 유도된다:
- 인접 위치 ( xNbA, yNbA ) 및 ( xNbB, yNbB )는 각각 ( xCb - 1, yCb + cbHeight - 1 ) 및 ( xCb + cbWidth - 1, yCb - 1 )와 동일하게 설정된다.
- A 또는 B 중 어느 하나에 의해 대체되는 X에 대해, 변수 candIntraPredModeX는 다음과 같이 유도된다:
...
- 변수 ispDefaultMode1 및 ispDefaultMode2는 다음과 같이 유도된다:
...
- x = 0..5를 갖는 candModeList[ x ]는 다음과 같이 유도된다:
...
- IntraPredModeY[ xCb ][ yCb ]는 다음의 프로시저를 적용하여 유도된다:
- bdpcm_flag[ xCb ][ yCb ] 이 1인 경우, IntraPredModeY[ xCb ][ yCb ]는 (bdpcm_dir_flag[ xCb ][ yCb ] == 0? INTRA_ANGULAR18 : INTRA_ANGULAR50)와 동일하게 설정됨.
- 그렇지 않고, intra_luma_mpm_flag[ xCb ][ yCb ]이 1인 경우, IntraPredModeY[ xCb ][ yCb ]는 candModeList[ intra_luma_mpm_idx[ xCb ][ yCb ] ]와 동일하게 설정됨.
- 그렇지 않으면, IntraPredModeY[ xCb ][ yCb ]는 다음 순서의 단계에 의해 유도됨:
...
x = xCb..xCb + cbWidth - 1 및 y = yCb..yCb + cbHeight - 1인 변수 IntraPredModeY[ x ][ y ]는 IntraPredModeY[ xCb ][ yCb ]와 동일하게 설정됨.
5.2 실시예 2
8.4.2 루마 인트라 예측 모드를 위한 유도 프로세스
본 프로세스에 대한 입력은:
- 루마 위치 ( xCb , yCb )는 현재 픽처의 탑-레프트 루마 샘플들과 관련된 현재 루마 코딩 블록의 탑-레프트 샘플을 지정함,
- 변수 cbWidth는 루마 샘플 내 현재 코딩 블록의 폭을 지정함,
- 변수 cbHeight는 루마 샘플 내 현재 코딩 블록의 높이를 지정함.
이 프로세스에서, 루마 인트라 예측 모드 IntraPredModeY[ xCb ][ yCb ] 가 유도된다.
Table 8-1은 인트라 예측 모드 IntraPredModeY[ xCb ][ yCb ]의 값과 연관된 이름을 지정한다.
표 8-1 -인트라 예측 모드 및 연관된 이름의 사양
주의 - : 인트라 예측 INTRA_LT_CCLM, INTRA_L_CCLM 및 INTRA_T_CCLM 들은 크로마 컴포넌트에만 적용 가능하다.
IntraPredModeY[ xCb ][ yCb ]는 다음 순서의 단계에 의해 유도된다:
- bdpcm_flag[ xCb ][ yCb ]가 1인 경우, IntraPredModeY[ xCb ][ yCb ]는 (bdpcm_dir_flag[ xCb ][ yCb ] == 0? INTRA_ANGULAR18: INTRA_ANGULAR50)와 동일하게 설정된다.
- 그렇지 않으면, IntraPredModeY[ xCb ][ yCb ]는 다음 순서의 단계를 적용함으로써 유도된다:
- 인접 위치 ( xNbA, yNbA ) 및 ( xNbB, yNbB )는 각각 ( xCb - 1, yCb + cbHeight - 1 ) 및 ( xCb + cbWidth - 1, yCb - 1 )와 동일하게 설정된다.
- A 또는 B 중 어느 하나에 의해 대체되는 X에 대해, 변수 candIntraPredModeX는 다음과 같이 유도된다:
...
- 변수 ispDefaultMode1 및 ispDefaultMode2는 다음과 같이 유도된다:
...
- x = 0..5인 candModeList[ x ]는 다음과 같이 유도된다:
...
- IntraPredModeY[ xCb ][ yCb ]는 다음의 프로시저를 적용하여 유도된다:
- intra_luma_mpm_flag[ xCb ][ yCb ]가 1인 경우, IntraPredModeY[ xCb ][ yCb ]는 candModeList[ intra_luma_mpm_idx[ xCb ][ yCb ] ]와 동일하게 설정됨.
- 그렇지 않으면, IntraPredModeY[ xCb ][ yCb ]는 다음 순서의 단계를 적용함으로써 유도됨:
...
x = xCb..xCb + cbWidth - 1 및 y = yCb..yCb + cbHeight - 1인 변수 IntraPredModeY[ x ][ y ]는 IntraPredModeY[ xCb ][ yCb ]와 동일하게 설정된다.
6. 참조문헌
ITU-T and ISO/IEC, "High efficiency video coding", Rec. ITU-T H.265 | ISO/IEC 23008-2 (02/2018).
B. Bross, J. Chen, S. Liu, Versatile Video Coding (Draft 4), JVET-M1001, Jan.2019
도 10은 비디오 프로세싱 장치(1000)의 블록도이다. 장치(1000)는 여기에 기재된 하나 이상의 방법을 구현하는 데 사용될 수 있다. 장치(1000)는 스마트폰, 태블릿, 컴퓨터, 사물인터넷(IoT) 수신기 등에서 구현될 수 있다. 장치(1000)는 하나 이상의 프로세서(1002), 하나 이상의 메모리(1004) 및 비디오 프로세싱 하드웨어(1006)를 포함할 수 있다. 프로세서(들)(1002)는 본 문서에 기재된 하나 이상의 방법을 구현하도록 구성될 수 있다. 메모리(들)(1004)는 여기에 기재된 방법 및 기술을 구현하는 데 사용되는 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 프로세싱 하드웨어(1006)는 하드웨어 회로에서 여기에 기재된 일부 기술을 구현하는 데 사용될 수 있다.
도 11은 비디오 프로세싱의 일 예의 방법(1100)에 대한 순서도이다. 방법(1100)은 차동 코딩 모드를 이용하여 현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 변환을 수행하고 공존 규칙에 기초하여 인트라 예측 모드를 선택적으로 사용하는 것을 포함한다. 인트라 예측 모드는 현재 비디오 블록의 샘플에 대한 예측을 생성하는 데 사용된다. 차동 코딩 모드는 차동 펄스 코딩 변조 표현을 사용하여 픽셀의 예측으로부터 양자화된 잔차 블록을 나타내는데 사용된다.
도 15는 본 개시의 기술을 활용할 수 있는 예제 비디오 코딩 시스템(100)을 예시하는 블록도이다. 도 15에 도시된 바와 같이. 비디오 코딩 시스템(100)은 소스 디바이스(110)와 목적 디바이스(120)를 포함할 수 있다. 소스 디바이스(110)는 인코딩된 비디오 데이터를 생성하고, 비디오 인코딩 디바이스로 참조될 수 있다. 목적 디바이스(120)는 소스 디바이스(110)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있고, 비디오 디코딩 장치로 참조될 수 있다. 소스 디바이스(110)는 비디오 소스(112), 비디오 인코더(114) 및 입력/출력(I/O) 인터페이스(116)를 포함할 수 있다.
비디오 소스(112)는 비디오 캡처 장치, 비디오 컨텐츠 공급자로부터 비디오 데이터를 수신하는 인터페이스, 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템 또는 이러한 소스의 조합을 포함할 수 있다. 상기 비디오 데이터는 하나 이상의 픽처를 포함할 수 있다. 비디오 인코더(114)는 비디오 소스(112)의 비디오 데이터를 인코딩하여 비트스트림을 생성한다. 비트스트림에는 비디오 데이터의 코딩된 표현을 형성하는 비트들의 시퀀스가 포함될 수 있다. 비트스트림에는 코딩된 픽처 및 연관 데이터가 포함될 수 있다. 코딩된 픽처는 픽처의 코딩된 표현(representation)이다. 연관(associated) 데이터에는 시퀀스 파라미터 세트, 픽처 파라미터 세트 및 기타 신택스 구조가 포함될 수 있다. I/O 인터페이스(116)는 변조기/복조기(모뎀) 및/또는 송신기를 포함할 수 있다. 인코딩된 비디오 데이터는 네트워크(130a)를 거쳐, I/O 인터페이스(116)를 통해 목적 디바이스(120)로 직접 전송될 수 있다. 인코딩된 비디오 데이터는 목적 디바이스(120)에 의한 액세스를 위해 저장 매체/서버(130b)에 저장될 수도 있다.
목적 디바이스(120)는 I/O 인터페이스(126), 비디오 디코더(124) 및 디스플레이 장치(122)를 포함할 수 있다.
I/O 인터페이스(126)는 수신기 및/또는 모뎀을 포함할 수 있다. I/O 인터페이스(126)는 소스 디바이스(110) 또는 저장 매체/서버(130b)로부터 인코딩된 비디오 데이터를 획득할 수 있다. 비디오 디코더(124)는 인코딩된 비디오 데이터를 디코딩할 수 있다. 디스플레이 디바이스(122)는 디코딩된 비디오 데이터를 사용자에게 표시할 수 있다. 디스플레이 디바이스(122)는 목적 디바이스(120)와 통합될 수 있거나, 외부 디스플레이 디바이스와 인터페이스하도록 구성된 목적 디바이스(120)의 외부에 위치할 수 있다.
비디오 인코더(114) 및 비디오 디코더(124)는 고효율 비디오 코딩(HEVC) 표준, 다목적 비디오 코딩(VVC) 표준 및 기타 현재 및/또는 추가 표준과 같은 비디오 압축 표준에 따라 동작할 수 있다.
도 16은 도 15에 도시된 시스템(100)에서 비디오 인코더(114)일 수 있는 비디오 인코더(200)의 예를 보여주는 블록도이다.
비디오 인코더(200)는 본 개시의 기술 중 어느 또는 전부를 수행하도록 구성될 수 있다. 도 16의 예에서. 비디오 인코더(200)는 복수의 기능 컴포넌트를 포함한다. 본 개시에 기재된 기술은 비디오 인코더(200)의 다양한 컴포넌트들 간에 공유될 수 있다. 일부 예에서, 프로세서는 본 개시에 기재된 임의 또는 전부를 수행하기 위해 구성될 수 있다.
비디오 인코더(200)의 기능 컴포넌트는 파티션 유닛(201)와, 모드 선택 유닛(203), 모션 추정 유닛(204), 모션 보상 유닛(205) 및 인트라 예측 유닛(206)를 포함할 수 있는 예측 유닛(202)과, 잔차 생생 유닛(207), 변환 유닛(208), 양자화 유닛(209), 역양자화 유닛(210), 역변환 유닛(211), 재구성 유닛(212), 버퍼(213), 및 엔트로피 인코딩 유닛(214)를 포함할 수 있다.
다른 예에서, 비디오 인코더(200)에는 더 많거나, 적거나, 다른 기능 컴포넌트가 포함될 수 있다. 예를 들어, 예측 유닛(202)는 인트라 블록 카피(IBC) 유닛을 포함할 수 있다. IBC 유닛은 IBC 모드에서 적어도 하나의 레퍼런스 픽처가 현재 비디오 블록이 있는 픽처인 경우의 예측을 수행할 수 있다.
더욱이, 모션 추정부(204) 및 모션 보정부(205)와 같은 일부 컴포넌트는 고도로(highly) 통합될 수 있으나, 도 16의 예에서는 설명의 목적을 위해 분리된 것으로 표현되었다.
파티션 디바이스(201)는 픽처를 하나 이상의 비디오 블록으로 파티셔닝(partitioning)할 수 있다.
비디오 인코더(200) 및 비디오 디코더(300)는 다양한 비디오 블록 크기를 지원할 수 있다. 모드 선택 유닛(203)는 오류 결과에 기초하여 코딩 모드, 예를 들면, 인트라 또는 인터 등을 선택하고, 결과인 인트라 또는 인터 코딩된 블록을, 잔차 생성 유닛(207)에 제공하여 잔차 블록 데이터를 생성하고, 재구성 유닛(212)으로 제공하여 레퍼런스 픽처로 사용하기 위한 인커딩된 블록을 재구성한다. 일부 예에서, 모드 선택 유닛(203)는 인트라 및 인터 예측(CIIP) 모드의 조합을 선택할 수 있고, 이 모드에서 예측은 인터 예측 시그널 및 인트라 예측 시그널을 기반으로 한다. 모드 선택 유닛(203)는 또한, 인터 예측의 경우 블록에 대한 모션 벡터의 해상도(예: 서브 픽셀 또는 정수 픽셀 정밀도)를 선택할 수 있다.
현재 비디오 블록에서 인터 예측을 수행하기 위해, 모션 추정 유닛(204)는 버퍼(213)에서 현재 비디오 블록에 하나 이상의 레퍼런스 프레임을 비교하여 현재 비디오 블록에 대한 모션 정보를 생성할 수 있다. 모션 보상 유닛(205)는 현재 비디오 블록과 관련된 그림 이외의 버퍼(213)로부터의 모션 정보 및 디코딩된 픽처 샘플을 기반으로 현재 비디오 블록에 대한 예측 비디오 블록을 결정할 수 있다.
모션 추정 유닛(204) 및 모션 보상 유닛(205)는 현재 비디오 블록이 I 슬라이스, P 슬라이스 또는 B 슬라이스에 있는지 여부에 따라 현재 비디오 블록에 대해 서로 다른 작업을 수행할 수 있다.
일부 예에서, 모션 추정 유닛(204)는 현재 비디오 블록에 대한 단-방향(uni-directional) 예측을 수행할 수 있고, 모션 추정 유닛(204)는 현재 비디오 블록에 대한 레퍼런스 비디오 블록에 대한 리스트 0 또는 리스트 1의 레퍼런스 픽처를 검색할 수 있다. 그런 다음, 모션 추정 유닛(204)는 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 공간 변위(spatial displacement)를 나타내는 레퍼런스 비디오 블록 및 모션 벡터를 포함하는 리스트 0 또는 리스트 1에서 레퍼런스 픽처를 나타내는 레퍼런스 인덱스를 생성할 수 있다. 모션 추정 유닛(204)는 레퍼런스 인덱스, 예측 방향 표시자 및 모션 벡터를 현재 비디오 블록의 모션 정보로 출력할 수 있다. 모션 보상 유닛(205)는 현재 비디오 블록의 동작 정보에 의해 표시된 레퍼런스 비디오 블록에 기초하여 현재 블록의 예측된 비디오 블록을 생성할 수 있다.
다른 예에서, 모션 추정 유닛(204)는 현재 비디오 블록에 대한 양-방향(bi-directional) 예측을 수행할 수 있고, 모션 추정 유닛(204)는 현재 비디오 블록에 대한 레퍼런스 비디오 블록에 대한 리스트 0에서 레퍼런스 픽처를 검색할 수 있으며, 또한 현재 비디오 블록에 대한 다른 레퍼런스 비디오 블록에 대한 리스트 1에서 레퍼런스 픽처를 검색할 수 있다. 그런 다음, 모션 추정 유닛(204)는 레퍼런스 비디오 블록과 현재 비디오 블록 사이의 공간 변위를 나타내는 레퍼런스 비디오 블록 및 모션 벡터를 포함하는 리스트 0 및 리스트 1에서 레퍼런스 픽처를 나타내는 레퍼런스 인덱스를 생성할 수 있다. 모션 추정 유닛(204)는 현재 비디오 블록의 모션 정보로서 현재 비디오 블록의 레퍼런스 인덱스 및 모션 벡터를 출력할 수 있다. 모션 보상 유닛(205)는 현재 비디오 블록의 동작 정보에 의해 표시된 레퍼런스 비디오 블록에 기초하여 현재 비디오 블록의 예측 비디오 블록을 생성할 수 있다.
일부 예에서, 모션 추정 유닛(204)는 디코더의 디코딩 처리를 위한 전체 모션 정보 세트를 출력할 수 있다.
일부 예에서, 모션 추정 유닛(204)는 현재 비디오에 대한 전체 모션 정보 세트를 출력하지 않을 수 있다. 오히려, 모션 추정 유닛(204)는 다른 비디오 블록의 동작 정보를 참조하여 현재 비디오 블록의 모션 정보를 시그널링할 수 있다. 예를 들어, 모션 추정 유닛(204)는 현재 비디오 블록의 모션 정보가 인접 비디오 블록의 동작 정보와 충분히 유사하다고 결정할 수 있다.
일 예에서, 모션 추정 유닛(204)는 현재 비디오 블록과 연결된 신텍스 구조에서 현재 비디오 블록이 다른 비디오 블록과 동일한 모션 정보를 가지고 있음을 비디오 디코더(300)에 나타내는 값을 나타낼 수 있다.
또 다른 예에서, 모션 추정 유닛(204)는 현재 비디오 블록과 연관된 신텍스 구조에서, 다른 비디오 블록 및 모션 벡터 차이(MVD)를 식별할 수 있다. 모션 벡터 차이는 현재 비디오 블록의 모션 벡터와 표시된 비디오 블록의 모션 벡터 간의 차이를 나타낸다. 비디오 디코더(300)는 현재 비디오 블록의 모션 벡터를 결정하기 위해 표시된 비디오 블록의 모션 벡터 및 모션 벡터 차이를 사용할 수 있다.
위에서 설명한 바와 같이, 비디오 인코더(200)는 모션 벡터를 예측적으로 시그널링할 수 있다. 비디오 인코더(200)에 의해 구현될 수 있는 예측 시그널링 기술의 두 가지 예는, 어드밴스드 모션 벡터 예측(AMVP) 및 병합 모드 시그널링을 포함한다.
인트라 예측 유닛(206)은 현재 비디오 블록에 대한 인트라 예측을 수행할 수 있다. 인트라 예측 유닛(206)가 현재 비디오 블록에 대한 인트라 예측을 수행하는 경우, 인트라 예측 유닛(206)는 동일 픽처에서 다른 비디오 블록의 디코딩된 샘플을 기반으로 현재 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 현재 비디오 블록에 대한 예측 데이터에는 예측된 비디오 블록 및 다양한 신텍스 요소가 포함될 수 있다.
잔차 생성 유닛(207)는 현재 비디오 블록으로부터 예측된 비디오 블록의 예측 비디오 블록(예를 들어, 마이너스 기호로 표시)을 빼서 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 잔차 데이터는 현재 비디오 블록에서 샘플의 상이한 샘플 컴포넌트에 대응하는 잔차 비디오 블록을 포함할 수 있다.
다른 예에서, 현재 비디오 블록에 대한 현재 비디오 블록에 대한 잔차 데이터가 없을 수 있고, 예를 들어 스킵(skip) 모드에서, 잔차 생성 유닛(207)는 뺄셈 동작을 수행하지 않을 수 있다.
변환 프로세싱 유닛(208)는 현재 비디오 블록과 연결된 잔차 비디오 블록에 하나 이상의 변환을 적용하여 현재 비디오 블록에 대해 하나 이상의 변환 계수 비디오 블록을 생성할 수 있다.
변환 프로세싱 유닛(208)는 현재 비디오 블록과 관련된 변환 계수 비디오 블록을 생성한 후, 양자화 유닛(209)는 현재 비디오 블록과 연관된 하나 이상의 양자화 파라미터(QP) 값을 기반으로 현재 비디오 블록과 관련된 변환 계수 비디오 블록을 양자화할 수 있다.
역양자화 유닛(210)와 역변환부 유닛(211)는 변환 계수 비디오 블록으로부터 잔차 비디오 블록을 재구성하기 위해, 변환 계수 비디오 블록에 역양자화 및 역변환을 각각 적용할 수 있다. 재구성 유닛(212)는 예측 유닛(202)에 의해 생성된 하나 이상의 예측된 비디오 블록으로부터 대응하는 샘플에 재구성된 잔차 비디오 블록을 추가하여 버퍼(213)에 저장하기 위한 현재 블록과 연관된 재구성된 비디오 블록을 생성할 수 있다.
재구성 유닛(212)가 비디오 블록을 재구성한 후, 비디오 블록에서 비디오 차단(blocking) 아티팩트를 줄이기 위해 루프 필터링 동작이 수행된다.
엔트로피 인코딩 유닛(214)은 비디오 인코더(200)의 다른 기능 컴포넌트로부터 데이터를 수신할 수 있다. 엔트로피 인코딩 유닛(214)가 데이터를 수신하는 경우, 엔트로피 인코딩 유닛(214)는 엔트로피 인코딩된 데이터를 생성하고 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력하기 위해 하나 이상의 엔트로피 인코딩 동작을 수행할 수 있다.
도 17은 도 15에 도시된 시스템(100)에서 비디오 디코더(114)일 수 있는 비디오 디코더(300)의 예를 보여주는 블록도이다.
비디오 디코더(300)는 본 개시의 기술 중 어느 또는 전부를 수행하도록 구성될 수 있다. 도 17의 예에서. 비디오 디코더(300)는 복수의 기능 컴포넌트를 포함한다. 본 개시에 기재된 기술은 비디오 디코더(300)의 다양한 컴포넌트들 간에 공유될 수 있다. 몇몇 실시예에서, 본 문서에서 설명된 임의의 또는 모든 기술을 수행하도록 프로세서가 구성될 수 있다.
도 17의 예에서, 비디오 디코더(300)에는 엔트로피 디코딩 유닛(301), 모션 보상 유닛(302), 인트라 예측 유닛(303), 역양자화 유닛(304), 역변환 유닛(305), 및 재구성 유닛(306) 및 버퍼(307)가 포함된다. 비디오 디코더(300)는, 일부 예에서, 비디오 인코더(200)에 대하여 기술된 인코딩 패스(pass)와 일반적으로 서로 주고 받는(reciprocal) 디코딩 패스(pass)를 수행할 수 있다(도 16).
엔트로피 디코딩 유닛(301)는 인코딩된 비트스트림을 검색할 수 있다. 인코딩된 비트스트림에는 엔트로피 코딩된 비디오 데이터(예: 비디오 데이터의 인코딩된 블록)가 포함될 수 있다. 엔트로피 디코딩 유닛(301)는 엔트로피 코딩된 비디오 데이터를 디코딩할 수 있고, 엔트로피 디코딩된 비디오 데이터로부터 모션 보상 유닛(302)는 모션 벡터, 모션 벡터 정밀도, 레퍼런스 픽처 리스트 인덱스 및 기타 모션 정보를 포함하는 모션 정보를 결정할 수 있다. 모션 보상 유닛(302)는, 예를 들어 AMVP 및 병합 모드를 수행하여 이러한 정보를 결정할 수 있다.
모션 보상 유닛(302)는 보간 필터를 기반으로 보간(interpolation)을 수행하여 모션 보정 블록을 생성할 수 있다. 서브 픽셀 정밀도와 함께 사용되는 보간 필터에 대한 식별자가 신텍스 요소에 포함될 수 있다.
모션 보상 유닛(302)는 비디오 블록을 인코딩하는 동안 비디오 인코더(20)에서 사용하는 보간 필터를 사용하여 레퍼런스 블록의 서브 정수 픽셀에 대한 보간 값을 계산할 수 있다. 모션 보상 유닛(302)는 수신된 신텍스 정보에 따라 비디오 인코더(200)에서 사용하는 보간 필터를 결정하고 보간 필터를 사용하여 예측 블록을 생성할 수 있다.
모션 보상 유닛(302)는 인코딩된 비디오 시퀀스의 프레임 및/또는 슬라이스를 인코딩하는 데 사용되는 블록의 크기, 인코딩된 비디오 시퀀스의 각 매크로 블록이 파티셔닝되는 방식을 설명하는 파티션 정보, 각 파티션이 인코딩된 방법, 각 파티션이 인코딩되는 방식을 나타내는 모드, 각 인터-인코딩된 블록에 대한 하나 이상의 레퍼런스 프레임(및 레퍼런스 프레임 목록) 및 인코딩된 비디오 시퀀스를 디코딩하는 다른 정보들을 결정하기 위해 일부 신텍스 정보를 사용할 수 있다.
인트라 예측 유닛(303)는, 예를 들어 비트스트림에서 수신된 인트라 예측 모드를 사용하여 공간적으로 인접한 블록으로부터 예측 블록을 형성할 수 있다. 역양자화 유닛(303)는 비트스트림에서 제공되고 엔트로피 디코딩 유닛(301)에서 디코딩된 양자화된 비디오 블록 계수를 역 양자화(예를 들어, 디-콴타이즈(de-quantize))한다. 역변환 유닛(303)는 역변환을 적용한다.
재구성 유닛(306)는 모션 보상 유닛(202) 또는 인트라 예측 유닛(303)에 의해 생성된 해당 예측 블록과 잔차 블록을 합산하여 디코딩된 블록을 형성할 수 있다. 원하는 경우, 차단 해제(deblocking) 필터를 적용하여 차단 아티팩트를 제거하기 위해 디코딩된 블록을 필터링할 수도 있다. 디코딩된 비디오 블록은 버퍼(307)에 저장되고, 이는 이후의 모션 보상/인트라 예측에 대한 레퍼런스 블록을 제공하고, 디스플레이 디바이스에서 재생하기 위한 디코딩된 비디오를 생성한다.
몇몇 실시예에서, ALWIP 모드 또는 MIP 모드에서, 현재 비디오 블록에 대한 예측 블록은 행 및 열과 관련한 평균, 그 다음에 행렬 곱셈이, 그 다음에 예측 블록을 결정하는 보간에 의해 결정된다.
도 18은 여기에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 프로세싱 시스템(video processing system)(2100)을 도시하는 블록도이다. 다양한 구현에는 시스템(2100)의 컴포넌트의 일부 또는 전부가 포함될 수 있다. 시스템(2100)은 비디오 컨텐츠를 수신하기 위한 입력(1302)을 포함할 수 있다. 비디오 컨텐츠는, 예를 들어, 8 또는 10비트 다중 컴포넌트 픽셀 값과 같이 원시(raw) 또는 압축되지 않은(uncompressed) 포멧으로 수신될 수 있고, 또는 압축 또는 인코딩된 형식으로 수신될 수도 있다. 입력(2102)은 네트워크 인터페이스, 주변 버스 인터페이스 또는 스토리지 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예로는 이더넷, 수동 광 네트워크(PON) 등과 같은 유선 인터페이스와 Wi-Fi 또는 셀룰러 인터페이스와 같은 무선 인터페이스가 있다.
시스템(2100)은 본 문서에 설명된 다양한 코딩 또는 인코딩 방법을 구현할 수 있는 코딩 컴포넌트(2104)를 포함할 수 있다. 코딩 컴포넌트(2104)은 입력(2102)에서 코딩 컴포넌트(2104)의 출력으로 비디오의 평균 비트레이트를 감소시킬 수 있으며, 비디오의 코딩된 표현을 생성할 수 있다. 따라서, 코딩 기법을 비디오 압축 또는 비디오 트랜스코딩 기술이라고도 한다. 코딩 컴포넌트(2104)의 출력은 컴포넌트(2106)에 의해 표현되는 바와 같이, 연결된 통신을 통해 저장되거나 전송될 수 있다. 입력(2102)에서 수신된 비디오의 저장되거나 통신된 비트스트림(또는 코딩된) 표현은 디스플레이 인터페이스(2110)로 전송되는 픽셀 값 또는 디스플레이 가능한 비디오를 생성하기 위해 컴포넌트(2108)에 의해 사용될 수 있다. 비트스트림 표현에서 사용자가 볼 수 있는 비디오를 생성하는 프로세스를 비디오 압축해제(video decompression)라고도 한다. 또한 특정 비디오 처리 작업을 "코딩" 작업 또는 툴로 지칭하지만, 코딩 툴 또는 작업이 인코더에서 사용되고 코딩 결과를 되돌리는 대응하는 디코딩 툴 또는 작업이 디코더에 의해 수행되는 것으로 인식될 것이다.
주변 버스 인터페이스 또는 디스플레이 인터페이스의 예로는 범용 직렬 버스(USB) 또는 고화질 멀티미디어 인터페이스(HDMI) 또는 디스플레이 포트 등이 포함될 수 있다. 스토리지 인터페이스의 예로는 SATA(직렬 첨단 기술 첨부 파일), PCI, IDE 인터페이스 등이 있다. 본 문서에 기재된 기술은 휴대전화, 노트북, 스마트폰 또는 디지털 데이터 처리 및/또는 비디오 디스플레이를 수행할 수 있는 기타 장치와 같은 다양한 전자 기기에 구현될 수 있다.
개시된 기술의 일부 실시예에는 비디오 프로세싱 툴 또는 모드를 가능하게 하기 위한 결정 또는 결정을 내리는 것이 포함된다. 예를 들어 비디오 프로세싱 툴 또는 모드를 사용하도록 설정하면 인코더가 비디오 블록 프로세싱에서 툴 또는 모드를 사용하거나 구현하지만 툴 또는 모드의 사용에 따라 결과 비트스트림을 반드시 수정할 필요는 없다. 즉, 비디오 블록에서 비디오의 비트스트림 표현으로 변환하면 결정 또는 결정에 따라 인에이블될 때 비디오 프로세싱 툴 또는 모드를 사용한다. 또 다른 예에서 비디오 프로세싱 툴 또는 모드를 사용하도록 설정하면 디코더는 비디오 프로세싱 툴 또는 모드에 따라 비트스트림이 수정되었다는 사실을 알고 비트스트림을 프로세싱 한다. 즉, 비디오의 비트스트림 표현에서 비디오 블록으로의 변환은 결정 또는 결정에 따라 인에이블된 비디오 프로세싱 툴 또는 모드를 사용하여 수행된다.
개시된 기술의 일부 실시예에는 비디오 프로세싱 툴 또는 모드를 디스에이블하는 결정 또는 결정을 내리는 것이 포함된다. 예를 들어 비디오 프로세싱 툴 또는 모드를 사용하지 않는 경우 인코더는 비디오 블록을 비디오 블록으로 변환하는 데 툴 또는 모드를 사용하지 않는다. 또 다른 예에서 비디오 프로세싱 툴 또는 모드를 사용하지 않도록 설정하면 디코더는 결정 또는 결정에 따라 디스에이블된 비디오 프로세싱 툴 또는 모드를 사용하여 비트스트림이 수정되지 않았다는 사실을 알고 비트스트림을 프로세싱한다.
도 19는 일 예로서 비디오 프로세싱 방법(1900)에 대한 흐름도를 도시한다. 방법(1900)은, 차동 코딩 모드를 사용하여, 현재 비디오 블록과 연관되어 저장되는 제1 인트라 코딩 모드를 결정함으로써 비디오의 상기 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하고, 상기 현재 비디오 블록과 연관된 상기 제1 인트라 코딩 모드는 상기 차동 코딩 모드에 의해 사용되는 제2 예측 모드에 따라 결정되며, 상기 차동 코딩 모드에서, 상기 현재 비디오 블록의 인트라 예측의 양자화된 잔차와 상기 양자화된 잔차의 예측 간의 차이는 차동 펄스 코딩 변조(Differential Pulse Coding Modulation; DPCM) 표현을 사용하여 상기 현재 비디오 블록의 비트스트림 표현으로 나타난다.
방법(1900)에 대한 일부 실시예에서, 상기 제1 인트라 코딩 모드는, 상기 제2 예측 모드가 수직 예측 모드임에 응답하여 수직 인트라 예측 모드로 추론(inferred)된다. 방법(1900)에 대한 일부 실시예에서, 상기 제1 인트라 코딩 모드는, 상기 제2 예측 모드가 수평 예측 모드임에 응답하여 수평 인트라 예측 모드로 추론된다. 방법(1900)에 대한 일부 실시예에서, 상기 제1 인트라 코딩 모드는, 상기 제2 예측 모드가 탑-레프트(top-left) 대각선(diagonal) 예측 모드임에 응답하여 탑-레프트 대각선 인트라 예측 모드로 추론된다.
방법(1900)에 대한 일부 실시예에서, 상기 제2 예측 모드는 상기 제1 인트라 코딩 모드와 동일한 것으로 추론된다. 방법(1900)에 대한 일부 실시예에서, 상기 제2 예측 모드는 상기 제1 인트라 코딩 모드와 동일한 것으로 추론된다. 방법(1900)에 대한 일부 실시예에서, 상기 제1 인트라 코딩 모드는 최대 가능(most probable) 모드 내의 모드에 기초하여 추론된다. 방법(1900)에 대한 일부 실시예에서, 상기 제1 인트라 코딩 모드는 미리 정의된 인트라 예측 모드이다. 방법(1900)에 대한 일부 실시예에서, 상기 미리 정의된 인트라 예측 모드는 플래나(Planar) 모드를 포함한다. 방법(1900)에 대한 일부 실시예에서, 상기 미리 정의된 인트라 예측 모드는 DC 모드를 포함한다. 방법(1900)에 대한 일부 실시예에서, 미리 정의된 인트라 예측 모드는 수직 모드를 포함한다. 방법(1900)에 대한 일부 실시예에서, 미리 정의된 인트라 예측 모드는 수평 모드를 포함한다. 방법(1900)에 대한 일부 실시예에서, 상기 비디오의 추가 비디오 블록들은 상기 제1 인트라 코딩 모드로 코딩되고, 상기 현재 비디오 블록은 시간 영역에서 상기 추가 비디오 블록들에 선행(precede)한다. 방법(1900)에 대한 일부 실시예에서, 최대 가능 모드(Most Probable Mode; MPM) 리스트는 상기 제1 인트라 코딩 모드를 사용하여 상기 추가 비디오 블록들에 대해 구성된다.
도 20은 일 예로서 비디오 프로세싱 방법(2000)에 대한 흐름도를 도시한다. 방법(2000)은, 규칙에 따라, 비디오의 현재 비디오 블록과 상기 현재 비디오 블록의 비트 스트림 표현 간의 변환 중에 차동 코딩 모드에 의해 사용되는 인트라 코딩 모드를 결정하는 단계(2002)를 포함한다. 동작(2004)는, 상기 결정에 기초하여, 상기 차동 코딩 모드를 사용하여 상기 현재 비디오 블록과 상기 현재 비디오 블록의 상기 비트 스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 상기 차동 코딩 모드에서, 상기 현재 비디오 블록의 인트라 예측의 양자화된 잔차와 상기 양자화된 잔차의 예측 간의 차이는 차동 펄스 코딩 변조(DPCM) 표현을 이용하여 현재 비디오 블록에 대한 비트스트림 표현으로 나타나며, 상기 양자화된 잔차의 상기 예측은 상기 인트라 코딩 모드에 따라 수행된다.
방법(2000)에 대한 몇몇 실시예에서, 상기 규칙은 상기 현재 비디오 블록의 코딩을 위해 사용되는 컬러 포멧에 기초하여 상기 인트라 코딩 모드가 결정되는 것을 지정한다. 방법(2000)에 대한 일부 실시예에서, 상기 규칙은 시퀀스 매개 변수 세트(SPS), 비디오 매개 변수 세트(VPS), 픽처 매개 변수 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU) 행 또는 LCU 그룹 내에서 시그널링된 메시지에 기초하여 상기 인트라 코딩 모드가 결정되는 것을 지정한다. 방법(2000)에 대한 일부 실시예에서, 상기 규칙은 상기 인트라 코딩 모드가 상기 차동 코딩 모드에서 수행되는 방향(direction)을 나타내는 플래그(flag)에 기초하여 결정되는 것을 지정한다. 방법(2000)에 대한 일부 실시예에서, 상기 규칙은 상기 인트라 코딩 모드가 상기 양자화된 잔차의 상기 예측의 방향을 나타내는 플래그에 기초하여 결정되는 것을 지정한다. 방법(2000)에 대한 일부 실시예에서, 상기 규칙은 상기 현재 비디오 블록 또는 상기 비디오 블록의 인접(neighboring) 비디오 블록 중 어느 하나의 블록 디멘전(dimension)에 기초하여 상기 인트라 코딩 모드가 결정되는 것을 지정한다.
방법(2000)에 대한 일부 실시예에서, 규칙은 현재 비디오 블록 또는 현재 비디오 블록의 인접 비디오 블록의 형상에 따라 인트라 코딩 모드가 결정된다는 것을 지정한다. 방법(2000)에 대한 일부 실시예에서, 규칙은 현재 비디오 블록의 가장 가능성 있는 모드(MPM) 또는 현재 비디오 블록의 인접 비디오 블록에 기초하여 인트라 코딩 모드가 결정된다는 것을 지정한다. 방법(2000)에 대한 일부 실시예에서, 규칙은 현재 비디오 블록의 인접 비디오 블록의 인터 예측 모드 또는 인트라 예측 모드에 기초하여 인트라 코딩 모드가 결정된다는 것을 지정한다. 방법(2000)에 대한 일부 실시예에서, 규칙은 현재 비디오 블록의 인접 비디오 블록의 모션 벡터에 기초하여 인트라 코딩 모드가 결정된다는 것을 지정한다. 방법(2000)에 대한 일부 실시예에서, 규칙은 현재 비디오 블록의 인접 비디오 블록이 차동 코딩 모드를 사용하여 코딩되는지 여부를 나타내는 지표에 기초하여 인트라 코딩 모드가 결정된다는 것을 지정한다.
방법(2000)에 대한 몇몇 실시예에서, 규칙은 현재 비디오 블록 또는 현재 비디오 블록의 인접한 비디오 블록의 양자화 파라미터의 값에 기초하여 인트라 코딩 모드가 결정된다는 것을 지정한다. 방법(2000)에 대한 몇몇 실시예에서, 상기 규칙은 상기 현재 비디오 블록의 코딩을 위해 사용되는 컬러 포멧에 기초하여 상기 인트라 코딩 모드가 결정되는 것을 지정한다. 방법(2000)에 대한 일부 실시예에서, 상기 규칙은 독립(separate) 또는 듀얼 코딩 트리 구조가 상기 현재 비디오 블록을 코딩하는데 사용되는지 여부에 기초하여 상기 인트라 코딩 모드가 결정되는 것을 지정한다. 방법(2000)에 대한 몇몇 실시예에서, 상기 규칙은 상기 현재 비디오 블록에 적용된 변환 타입(transform type)에 따라 상기 인트라 코딩 모드가 결정되는 것을 지정한다. 방법(2000)에 대한 일부 실시예에서, 상기 규칙은 상기 현재 비디오 블록과 연관된, 슬라이스(slice), 타일(tile) 그룹 타입, 또는 픽처 타입에 기초하여 상기 인트라 코딩 모드가 결정되는 것을 지정한다.
예제의 다음 목록은 추가 실시예에 대한 설명이다.
1. 비디오 처리 방법에 있어서, 차동 코딩 모드 및 선택적으로 공존 규칙에 기반한 인트라 예측 모드를 이용하여 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현(representation) 간의 변환을 수행하는 단계를 포함하고, 상기 인트라 예측 모드는 상기 현재 비디오 블록의 샘플들의 예측들을 생성하는데 이용되고, 상기 차동 코딩 모드는 차동 펄스 코딩 변조 표현을 이용하여 상기 픽셀들의 상기 예측으로부터 양자화된 잔차 블록을 표현하는데 사용되는, 비디오 처리 방법.
2.예 1의 방법에서, 상기 인트라 예측 모드는 매트릭스 기반 인트라 예측 모드 (MIP)이고, 상기 공존 규칙은 상기 MIP의 허용된 모드의 일부로 상기 MIP를 제한하는, 비디오 처리 방법.
3.예 2의 방법에서, 허용된 모드의 상기 일부는 수평 또는 수직 노말 인트라 모드를 포함하는, 비디오 처리 방법.
예 1-3의 추가 실시예는 섹션 4의 항목 1에 설명된다. 예를 들면, 차동 코딩 모드는 QR-BDPCM코딩 모드의 현재 버전을 나타낼 수 있다.
4.예 1의 방법에서, 상기 인트라 예측 모드는 비-수평 또는 비-수직 방향을 따른 예측을 포함한다.
5. 예 1 또는 4의 방법에서, 인트라 예측 모드는 플래나(planar) 또는 DC 예측 모드이다.
6. 예 1 또는 4의 방법에서, 인트라 예측 모드는 수직 또는 수평 예측 모드이다.
7. 예 1 또는 4의 방법에서, 인트라 예측 모드는 비트스트림 표현의 필드에 의해 식별된다.
8. 예 1 또는 4의 방법에서, 상기 인트라 예측 모드는 현재 비디오 블록 또는 인접 블록의 블록 디멘전에 의존한다.
9. 예 1 또는 4의 방법에서, 상기 인트라 예측 모드는 현재 블록 또는 인접 블록의 형상에 의존한다.
10. 예 1 또는 4의 방법에서, 상기 인트라 예측 모드는 현재 비디오 블록 또는 인접 비디오 블록이 인터 예측 또는 인트라 예측을 사용하여 코딩되는지에 의존한다.
11. 예 1 또는 4의 방법에서, 상기 인트라 예측 모드는 인접 비디오 블록이 차동 코딩 모드를 사용하여 코딩되는지 여부에 의존한다.
12. 예 1 또는 4의 방법에서, 상기 인트라 예측 모드는 현재 비디오 블록 또는 인접 비디오 블록에 사용되는 양자화 파라미터의 값에 의존한다.
13. 예 1 또는 4의 방법에서, 여기서 인트라 예측 모드는 현재 비디오 블록을 코딩하는 데 사용되는 컬러 포멧에 의존한다.
14. 예 1 또는 4의 방법에서, 상기 인트라 예측 모드는 독립(separate) 또는 듀얼 코딩 트리 구조가 상기 현재 비디오 블록을 코딩하는데 사용되는지 여부에 의존한다.
예 4 내지 14의 추가 실시예는 섹션 4의 항목 2에서 제공된다.
15. 예 1의 방법에서, 현재 비디오 블록의 샘플에 대한 생성 예측은 인접한 비디오 영역의 비-주변(non-adjacent) 샘플로부터 수행된다.
16. 예 1의 방법에서, 상기 인트라 예측 모드는 인트라 블록 카피 병합 모드를 포함한다.
17. 예 1의 방법에서, 상기 인트라 예측 모드는 인트라 블록 카피 어디밴스드 모션 벡터 예측 모드를 포함한다.
18. 예 15 내지 17 중 어느 하나의 방법에서, 상기 인트라 예측 모드는 블록 벡터 또는 병합 인덱스로 표시된다.
예 15 내지 18의 추가 실시예는 섹션 4의 항목 3에서 제공된다.
19. 예 1의 방법에서, 상기 공존 규칙은 비트스트림 표현 내의 필드에 기초하여, 차동 코딩 모드 내의 시그널링된 인덱스로부터 인트라 예측 모드로의 매핑을 지정한다.
20. 예 1의 방법에서, 상기 공존 규칙은 현재 비디오 블록 또는 인접한 블록의 디멘전에 기초하여, 차동 코딩 모드 내의 시그널링된 인덱스로부터 인트라 예측 모드로의 매핑을 지정한다.
21. 예 1의 방법에서, 상기 공존 규칙은 현재 비디오 블록 또는 인접한 블록의 형상에 기초하여, 차동 코딩 모드 내의 시그널링된 인덱스로부터 인트라 예측 모드로의 매핑을 지정한다.
22. 예 1의 방법에서, 상기 공존 규칙은 현재 비디오 블록 또는 인접한 블록의 예측 모드에 기초하여, 차동 코딩 모드 내의 시그널링된 인덱스로부터 인트라 예측 모드로의 매핑을 지정한다.
23. 예 1의 방법에서, 상기 공존 규칙은 현재 비디오 블록 또는 인접한 블록의 최대 가능 모드에 기초하여, 차동 코딩 모드 내의 시그널링된 인덱스로부터 인트라 예측 모드로의 매핑을 지정한다.
24. 예 1의 방법에서, 상기 공존 규칙은 현재 비디오 블록 또는 인접한 블록의 모션 벡터에 기초하여, 차동 코딩 모드 내의 시그널링된 인덱스로부터 인트라 예측 모드로의 매핑을 지정한다.
25. 예 1의 방법에서, 상기 공존 규칙은 인접한 블록이 차동 코딩 모드를 사용하여 코딩되었는지 여부에 기초하여, 차동 코딩 모드 내의 시그널링된 인덱스로부터 인트라 예측 모드로의 매핑을 지정한다.
26. 예 1의 방법에서, 상기 공존 규칙은 현재 비디오 블록 또는 인접한 블록에 의해 사용되는 양자화 파라미터에 기초하여, 차동 코딩 모드 내의 시그널링된 인덱스로부터 인트라 예측 모드로의 매핑을 지정한다.
27. 예 1의 방법에서, 상기 공존 규칙은 현재 비디오 블록의 컬러 포멧에 기초하여, 차동 코딩 모드 내의 시그널링된 인덱스로부터 인트라 예측 모드로의 매핑을 지정한다.
28. 예 1의 방법에서, 상기 공존 규칙은 독립(separate) 또는 듀얼 코딩 트리 구조가 상기 현재 비디오 블록을 코딩하는데 사용되는지 여부에 기초하여, 차동 코딩 모드 내의 시그널링된 인텍스로부터 인트라 예측 모드로의 매핑을 지정한다.
29. 예 1의 방법에서, 상기 공존 규칙은 현재 비디오 블록에 적용된 변환에 기초하여, 차동 코딩 모드 내의 시그널링된 인텍스로부터 인트라 예측 모드로의 매핑을 지정한다.
30. 예 1의 방법에서, 상기 공존 규칙은 현재 비디오 블록의 슬라이스 타입 또는 타일 그룹 타입 또는 픽처 타입에 기초하여, 차동 코딩 모드 내의 시그널링된 인텍스로부터 인트라 예측 모드로의 매핑을 지정한다.
예 19-30의 추가 실시예는 섹션 4의 항목 2에서 제공된다.
31. 비디오 프로세싱 방법은, 현재 비디오 블록의 픽셀 예측으로부터 양자화된 잔차 블록이 차동 펄스 코딩 변조 표현을 사용하여 표현되는 차동 코딩 모드를 사용하여 현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 상기 예측의 제1 방향(direction) 또는 상기 차동 코딩 모드의 제2 방향은 상기 비트스트림 표현으로부터 추론될 수 있다.
32. 예 31의 방법에서, 픽셀의 상기 예측의 상기 제1 방향은 상기 예측에 사용되는 인트라 예측 모드로부터 암시적으로(implicitly) 추론할 수 있다.
33. 예 32의 방법에서, 상기 차동 코딩 모드의 상기 제2 방향은 상기 예측의 상기 제1 방향과 동일한 방향으로 추론할 수 있다.
34. 예 31의 방법에서, 상기 제2 방향은 예측에 사용되는 인트라 예측 모드로부터 추론할 수 있다.
35. 예 31의 방법에서, 상기 제2 방향은 현재 비디오 블록 또는 인접 블록의 디멘전 또는 현재 비디오 블록 또는 인접 블록의 형상으로부터 추론할 수 있다.
36. 예 31의 방법에서, 상기 제2 방향은 인접 블록의 모션 벡터로부터 추론할 수 있다.
37. 예 31의 방법에서, 상기 제2 방향은 현재 비디오 블록 또는 인접 블록의 최대 가능 모드로부터 추론할 수 있다.
38. 예 31의 방법에서, 상기 제2 방향은 인접 블록의 예측 모드로부터 추론할 수 있다.
39. 예 31의 방법에서, 상기 제2 방향은 인접 블록의 인트라 예측 모드로부터 추론할 수 있다.
40. 예 31의 방법에서, 상기 제2 방향은 인접 블록이 차동 코딩 모드를 사용하는지 여부로부터 추론할 수 있다.
예 31 내지 40의 추가 실시예는 섹션 4의 항목 3에 제공된다.
41. 비디오 프로세싱 방법은, 적용 가능성 규칙에 기초하여, 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환에 차동 코딩 모드가 적용 가능함을 결정하는 단계; 상기 차동 코딩 모드를 사용하여 현재 비디오 블록과 비트스트림 표현 간의 변환을 수행하는 단계를 포함하고, 상기 차동 코딩 모드에서, 상기 현재 비디오 블록의 픽셀의 인트라 예측으로부터 양자화된 잔차 블록은 수평 또는 수직 방향과 다른 잔차 예측 방향에서 수행되는 차동 펄스 코딩 변조 표현을 사용하여 표현된다.
42. 예 41의 방법에서, 잔차 예측 방향은 45도 방향이다.
43. 예 41의 방법에서, 잔차 예측 방향은 135도 방향이다.
44. 예 41의 방법에서, 잔차 예측 방향은 비트스트림 표현 내의 필드 또는 현재 비디오 블록 또는 인접 블록 또는 현재 비디오 블록 또는 인접 블록의 형상과 관련이 있다.
예 41 내지 44의 추가 실시예는 섹션 4의 항목 7에서 제공된다.
45. 예 41의 방법에서, 상기 적용 가능성 규칙은 크로마 블록인 현재 비디오 블록으로 인한 차동 코딩 모드를 사용하도록 지정한다.
46. 예 41의 방법에서, 상기 적용 가능성 규칙은 현재 비디오 블록에 대한 잔차 예측 방향이 현재 비디오 블록에 대응하는 루마 블록과 동일한 방향임을 더 지정한다.
47. 예 41의 방법에서, 상기 적용 가능성 규칙은 크로스-컴포넌트 선행 모델(Cross-Component Linear Model; CCLM) 코딩 모드를 사용하지 않는 현재 비디오 블록으로 인해 차동 코딩을 사용하도록 지정한다.
예 45 내지 47의 추가 실시예는 섹션 4의 항목 8에서 제공된다.
48. 예 41의 방법에서, 상기 적용 가능성 규칙은 다른 컬러 컴포넌트에 대한 차동 코딩 모드의 적용 가능성으로부터 하나의 컬러 컴포넌트에 대한 차동 코딩 모드의 적용 가능성을 지정한다.
예 48의 추가 실시예는 섹션 4의 항목 12에서 제공된다.
49. 비디오 프로세싱 방법은, 차동 코딩 모드가 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환에 적용 가능한지 결정하는 단계; 및 상기 차동 코딩 모드의 구현 규칙을 사용하여 상기 현재 비디오 블록과 상기 비트스트림 표현 간의 변환을 수행하는 단계를 포함하고, 상기 차동 코딩 모드에서, 상기 현재 비디오 블록의 픽셀의 인트라 예측으로부터 양자화된 잔차 블록은 수평 또는 수직 방향과 다른 잔차 예측 방향에서 수행되는 차동 펄스 코딩 변조 표현을 사용하여 표현된다.
50. 예 49의 방법에서, 상기 구현 규칙은 범위 내에서 양자화 잔차 블록의 값을 제한하도록 지정한다.
51. 예 49의 방법에서, 상기 구현 규칙은 클리핑을 사용하여 양자화된 잔차 블록을 획득하도록 지정한다.
예 49 내지 51의 추가 실시예는 섹션 4의 항목 9에서 제공된다.
52. 예 49의 방법에서, 상기 구현 규칙은 현재 비디오 블록의 마지막 행에서 현재 비디오 블록의 첫 번째 행까지 예측을 수행하도록 지정한다.
53.예 49의 방법에서, 상기 구현 규칙은 현재 비디오 블록의 마지막 열에서 현재 비디오 블록의 첫 번째 열까지 예측을 수행하도록 지정한다.
예 52 내지 53의 추가 실시예는 섹션 4의 항목 10에서 제공된다.
54. 예 49의 방법에서, 상기 구현 규칙은 현재 비디오 블록의 서브 세트에만 차동 코딩 모드를 적용하도록 지정한다.
55. 예 54의 방법에서, 상기 서브 세트는 잔차의 k 왼쪽 열을 배제하는데, 여기에서 k는 블록의 픽셀 폭보다 작은 정수이다.
56. 예 54의 방법에서, 상기 서브 세트는 잔차의 k 탑(top) 열을 배제하는데, 여기에서 k는 블록의 픽셀 높이보다 작은 정수이다.
예 54 내지 56의 추가 실시예는 섹션 4의 항목 10에서 제공된다.
57. 예 49의 방법에서, 상기 구현 규칙은 세그먼트 별 기반으로 차동 코딩 모드를 변환에 적용하도록 지정한다.
예 57의 추가 실시예는 섹션 4의 항목 12에서 제공된다.
58. 비디오 프로세싱 방법은, 차동 코딩 모드가 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환 중에 사용되는 차동 코딩 모드가 상기 현재 비디오 블록과 연관된 인트라 코딩 모드와 동일한지를 결정하는 단계; 및 상기 차동 코딩 모드의 구현 규칙을 사용하여 상기 현재 비디오 블록과 상기 비트스트림 표현 간의 변환을 수행하는 단계를 포함하고, 상기 차동 코딩 모드에서, 상기 현재 비디오 블록의 픽셀의 인트라 예측으로부터 양자화된 잔차 블록은 수평 또는 수직 방향과 다른 잔차 예측 방향에서 수행되는 차동 펄스 코딩 변조 표현을 사용하여 표현된다.
59. 예 58의 방법에서, 상기 차동 코딩 모드는 수직 인트라 예측 모드이다.
60. 예 58의 방법에서, 상기 차동 코딩 모드는 수평 인트라 예측 모드이다.
61. 예 58의 방법에서, 상기 차동 코딩 모드는 미리 정의된 인트라 예측 모드이다.
예 58 내지 61의 추가 실시예는 섹션 4의 항목 5에서 제공된다.
62. 예 1 내지 61 중 하나 이상에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는, 비디오 프로세싱 장치.
63. 프로세서에 의해서 실행될 때, 프로세서로 하여금 예 1 내지 61 중 하나 이상의 방법을 구현하게 하는 코드가 저장된 컴퓨터 판독 가능한 매체.
본 문서의 예제 목록에서 변환이라는 용어는 현재 비디오 블록에 대한 비트스트림 표현의 생성을 참조하거나 비트스트림 표현에서 현재 비디오 블록을 생성할 수 있다. 비트스트림 표현은 연속적인(contiguous) 비트 그룹을 나타낼 필요가 없고, 헤더 필드 또는 코딩된 픽셀 값 정보를 나타내는 코드 워드에 포함된 비트로 나눌 수 있다.
위의 예에서 적용 규칙은 미리 정의되고 인코더 및 디코더에 알려질 수 있다.
본 문서에 설명된 바와 같이 개시된 기술이 비디오 인코더 또는 디코더에 구현되어 압축 효율을 향상시킬 수 있으며, 이는 본 문서에 설명된 바와 같이 인트라 코딩에서 차동 코딩 모드의 사용에 관한 다양한 구현 규칙의 사용을 포함하는 기술을 사용하여 압축 효율을 향상시킬 수 있다는 점을 인식할 수 있을 것이다.
본 문서에 기재된 개시 및 기타 솔루션, 예, 실시예, 모듈 및 기능적 연산은 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있으며, 여기에는 이 문서 및 그 구조적 등가물 또는 그 중 하나 이상의 조합으로 구현될 수 있다. 개시된 및 기타 실시예는 하나 이상의 컴퓨터 프로그램 제품으로 구현될 수 있고, 즉, 컴퓨터 프로그램 지침의 하나 이상의 모듈을 컴퓨터 판독 가능한 매체에 인코딩 하여 실행하거나, 데이터 처리 장치의 작동을 제어할 수 있다. 컴퓨터가 읽을 수 있는 매체는 기계가 읽을 수 있는 저장 장치, 기계가 읽을 수 있는 스토리지 기판, 메모리 장치, 기계가 읽을 수 있는 전파 신호에 영향을 미치는 물질의 조성 또는 하나 이상의 조합일 수 있다. 용어 "데이터 프로세싱 장치"는 예를 들어 프로그래밍 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 프로세싱하기 위한 모든 장치, 장치 및 컴퓨터를 포함한다. 이 장치에는 대응하는 컴퓨터 프로그램에 대한 실행 환경을 만드는 코드(예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 하나 이상의 조합)가 포함될 수 있다. 전파된 시그널은 인위적으로 생성된 시그널, 예를 들어, 기계에서 생성된 전기, 광학 또는 전자기 시그널이며, 이는 적합한 수신기 장치로 전송하기 위한 정보를 인코딩 하기 위해 생성된다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 응용 프로그램, 스크립트 또는 코드라고도 함)은 컴파일 된 언어를 비롯한 모든 형태의 프로그래밍 언어로 작성할 수 있으며 독립 실행형 프로그램 또는 컴퓨팅 환경에서 사용하기에 적합한 모듈, 구성 요소, 서브루틴 또는 기타 단위로 모든 형태로 배포할 수 있다. 컴퓨터 프로그램이 파일 시스템의 파일에 반드시 해당하는 것은 아니다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트), 대응하는 프로그램에 전념하는 단일 파일 또는 여러 조정된 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 한 컴퓨터 또는 한 사이트에 위치하거나 여러 사이트에 분산되고 통신 네트워크에 의해 상호 연결된 여러 컴퓨터에서 실행하도록 배포될 수 있다.
이 문서에 설명된 프로세스 및 논리 흐름은 하나 이상의 프로그래밍 가능한 프로세서가 하나 이상의 프로그래밍 가능한 프로세서에서 수행하여 입력 데이터에서 작동하고 출력을 생성하여 기능을 수행할 수 있다. 프로세스 및 로직 흐름도 수행될 수 있으며, 장치는 특수 목적 논리 회로, 예를 들어, FPGA(필드 프로그래머블 게이트 어레이) 또는 ASIC(어플리케이션 스페시픽 집적 회로)로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서에는 예를 들어, 일반 및 특수 목적 마이크로프로세서와 모든 종류의 디지털 컴퓨터의 하나 이상의 프로세서가 포함된다. 일반적으로 프로세서는 읽기 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다에서 지침과 데이터를 받게 된다. 컴퓨터의 필수 요소는 지침과 데이터를 저장하기 위한 하나 이상의 메모리 장치를 수행하기 위한 프로세서이다. 일반적으로 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대량 저장 장치(예를 들어, 자기, 마그네토 광학 디스크 또는 광학 디스크)에서 데이터를 수신하거나 전송하기 위해 작동적으로 결합되거나 결합된다. 그러나 컴퓨터에 이러한 디바이스들이 필요하지 않다. 컴퓨터 프로그램 지침 및 데이터를 저장하는 데 적합한 컴퓨터 판독 가능한 미디어에는 반도체 메모리 장치, 예를 들어, EPROM, EEPROM 및 플래시 메모리 장치, 자기 디스크, 예를 들어, 내부 하드 디스크 또는 이동식 디스크; 마그네토 광학 디스크; 및 CD ROM 및 DVD-ROM 디스크를 비롯한 모든 형태의 비휘발성 메모리, 미디어 및 메모리 장치가 포함된다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보충되거나 통합될 수 있다.
이 특허 문서에는 많은 세부 사항이 포함되어 있지만, 이는 어떤 주제의 범위나 클레임될 수 있는 것에 대한 제한으로 해석되어서는 안되며, 오히려 특정 기술의 특정 구현예에 특정할 수 있는 특징에 대한 설명으로 해석되어서는 안 된다. 이 특허 문서에 기재된 특정 특징은 별도의 실시예의 맥락에서 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 문맥상에 기재되는 다양한 특징은 또한 다중 실시예에서 개별적으로 또는 임의의 적합한 하위 조합에서 구현될 수 있다. 더욱이, 상기 특징은 특정 조합에서 작용하는 것으로 설명될 수 있고 심지어 초기에 클레임된 것과 같이, 클레임된 조합으로부터의 하나 이상의 특징은 어떤 경우에는 조합 자체에 머물 수도 있고, 클레임된 조합의 서브 조합 또는 변형으로 확장될 수도 있다.
마찬가지로, 동작은 특정 순서로 도면에 도시되어 있지만, 이러한 동작이 도시된 특정 순서 또는 순차적인 순서로 수행되거나, 모든 도시된 동작을 수행하여 바람직한 결과를 달성하도록 요구하는 것으로 이해되어서는 안 된다. 더욱이, 본 특허 문서에 기재된 실시예에서 다양한 시스템 컴포넌트의 분리는 모든 실시예에서 이러한 분리를 요구하는 것으로 이해되어서는 안 된다.
몇 가지 구현 및 예제만 설명되며 이 특허 문서에 설명되고 도시된 내용에 따라 다른 구현, 개선 및 변형을 만들 수 있다.
1002: 프로세서 1004: 메모리
1006: 비디오 프로세싱 회로
1006: 비디오 프로세싱 회로
Claims (32)
- 비디오 프로세싱 방법에 있어서,
비디오의 제1 비디오 블록에 차동 코딩 모드가 적용되는지 결정하는 단계 - 상기 차동 코딩 모드에서 상기 제1 비디오 블록의 제1 인트라 예측 모드에서 유도된 양자화된 잔차(quantized residual)와 상기 양자화된 잔차의 예측 간의 차이는 상기 비디오의 비트스트림에 포함되고, 상기 차동 코딩 모드는 상기 양자화된 잔차에 대한 블록 차동 펄스-코드 변조임 -;
상기 제1 비디오 블록에 대한 상기 차동 코딩 모드에서 사용된 예측 방향에 대해 정렬(aligned)되어, 상기 제1 비디오 블록의 상기 제1 인트라 예측 모드를 저장하는 단계;
상기 제1 비디오 블록의 상기 저장된 제1 인트라 예측 모드에 기초하여, 상기 비디오의 제2 비디오 블록의 모드 후보 리스트를 구성하는 단계 - 상기 제1 비디오 블록은 상기 제2 비디오 블록의 공간적 인접(spatial neighboring) 블록이고, 상기 제2 비디오 블록은 인트라 블록이고, 상기 모드 후보 리스트는 MPM(most probable modes)리스트임 -;
상기 모드 후보 리스트에 기초하여, 상기 제2 비디오 블록의 제2 인트라 예측 모드를 결정하는 단계; 및
상기 제2 인트라 예측 모드에 기초하여, 상기 제2 비디오 블록과 상기 비디오의 상기 비트스트림 간의 변환을 수행하는 단계
를 포함하고,
상기 제1 비디오 블록이 사용 가능하지 않은 경우, 상기 제1 비디오 블록에 대응하는 상기 모드 후보 리스트 내의 후보는 플래나(planar) 인트라 예측 모드로 설정되고,
상기 차동 코딩 모드가 상기 제1 비디오 블록에 적용되는 것에 응답하여, 크로스-컴포넌트 선형 모델 코딩 모드가 상기 제1 비디오 블록에 적용되지 않고, 및
상기 제1 비디오 블록이 루마 블록이고, 제3 신택스 요소(element)가 상기 차동 코딩 모드가 크로마 컴포넌트에 적용되는지 여부를 나타내는데 더 사용되는,
비디오 프로세싱 방법.
- 제1항에 있어서,
상기 제1 인트라 예측 모드는, 상기 제1 비디오 블록의 상기 차동 코딩 모드에서 사용되는 상기 예측 방향이 수직 방향인 것에 응답하여, 수직 인트라 예측 모드로 추론되는(inferred),
비디오 프로세싱 방법.
- 제1항에 있어서,
상기 제1 인트라 예측 모드는, 상기 제1 비디오 블록의 상기 차동 코딩 모드에서 사용되는 상기 예측 방향이 수평 방향인 것에 응답하여, 수평 인트라 예측 모드로 추론되는,
비디오 프로세싱 방법.
- 제1항에 있어서,
상기 제1 비디오 블록의 상기 차동 코딩 모드의 상기 예측 방향은, 상기 예측 방향이 수평 또는 수직 방향인지를 나타내는 상기 비트스트림에 포함된 제1 신택스 요소(element)에 기초하여 결정되는,
비디오 프로세싱 방법.
- 제1항에 있어서,
상기 제1 비디오 블록은, 상기 제2 비디오 블록의 인접 블록의 레프트(left) 또는 위(above)인,
비디오 프로세싱 방법.
- 제1항에 있어서,
상기 제2 인트라 예측 모드는 상기 비트스트림의 제2 신택스 요소에 기초하여 결정되고, 상기 제2 신택스 요소는 상기 제2 비디오 블록의 인트라 예측에 사용되는 상기 모드 후보 리스트 내 후보의 인덱스를 나타내는,
비디오 프로세싱 방법.
- 제1항에 있어서,
상기 차이는 차동 펄스 코딩 변조 표현(representation)을 이용하여 표현되는,
비디오 프로세싱 방법.
- 제1항에 있어서,
상기 변환은 상기 제2 비디오 블록을 상기 비트스트림으로 인코딩하는 것을 포함하는,
비디오 프로세싱 방법.,
- 제1항에 있어서,
상기 변환은 상기 비트스트림으로부터 상기 제2 비디오 블록을 디코딩하는 것을 포함하는,
비디오 프로세싱 방법.
- 비디오 프로세싱 장치에 있어서,
프로세서; 및
명령어를 저장하는 비-일시적(non-transitory) 메모리
를 포함하고, 상기 명령어는 상기 프로세서에 의해 실행되면 상기 프로세서로 하여금,
비디오의 제1 비디오 블록에 차동 코딩 모드가 적용되는지 결정하는 동작 - 상기 차동 코딩 모드에서 상기 제1 비디오 블록의 제1 인트라 예측 모드에서 유도된 양자화된 잔차(quantized residual)와 상기 양자화된 잔차의 예측 간의 차이는 상기 비디오의 비트스트림에 포함되고, 상기 차동 코딩 모드는 상기 양자화된 잔차에 대한 블록 차동 펄스-코드 변조임 -;
상기 제1 비디오 블록에 대한 상기 차동 코딩 모드에서 사용된 예측 방향에 대해 정렬(aligned)되어, 상기 제1 비디오 블록의 상기 제1 인트라 예측 모드를 저장하는 동작;
상기 제1 비디오 블록의 상기 저장된 제1 인트라 예측 모드에 기초하여, 상기 비디오의 제2 비디오 블록의 모드 후보 리스트를 구성하는 동작 - 상기 제1 비디오 블록은 상기 제2 비디오 블록의 공간적 인접(spatial neighboring) 블록이고, 상기 제2 비디오 블록은 인트라 블록이고, 상기 모드 후보 리스트는 MPM(most probable modes)리스트임 -;
상기 모드 후보 리스트에 기초하여, 현재 비디오 블록의 제2 인트라 예측 모드를 결정하는 동작; 및
상기 제2 인트라 예측 모드에 기초하여, 상기 제2 비디오 블록과 상기 비디오의 상기 비트스트림 간의 변환을 수행하는 동작
을 수행하도록 하고,
상기 제1 비디오 블록이 사용 가능하지 않은 경우, 상기 제1 비디오 블록에 대응하는 상기 모드 후보 리스트 내의 후보는 플래나(planar) 인트라 예측 모드로 설정되고,
상기 차동 코딩 모드가 상기 제1 비디오 블록에 적용되는 것에 응답하여, 크로스-컴포넌트 선형 모델 코딩 모드가 상기 제1 비디오 블록에 적용되지 않고, 및
상기 제1 비디오 블록이 루마 블록이고, 제3 신택스 요소(element)가 상기 차동 코딩 모드가 크로마 컴포넌트에 적용되는지 여부를 나타내는데 더 사용되는,
비디오 프로세싱 장치.
- 명령어를 저장하는 비-일시적 컴퓨터 판독 가능 기록 매체에 있어서,
상기 명령어는 프로세서로 하여금,
비디오의 제1 비디오 블록에 차동 코딩 모드가 적용되는지 결정하는 동작 - 상기 차동 코딩 모드에서 상기 제1 비디오 블록의 제1 인트라 예측 모드에서 유도된 양자화된 잔차(quantized residual)와 상기 양자화된 잔차의 예측 간의 차이는 상기 비디오의 비트스트림에 포함되고, 상기 차동 코딩 모드는 상기 양자화된 잔차에 대한 블록 차동 펄스-코드 변조임 -;
상기 제1 비디오 블록에 대한 상기 차동 코딩 모드에서 사용된 예측 방향에 대해 정렬(aligned)되어, 상기 제1 비디오 블록의 상기 제1 인트라 예측 모드를 저장하는 동작;
상기 제1 비디오 블록의 상기 저장된 제1 인트라 예측 모드에 기초하여, 상기 비디오의 제2 비디오 블록의 모드 후보 리스트를 구성하는 동작 - 상기 제1 비디오 블록은 상기 제2 비디오 블록의 공간적 인접(spatial neighboring) 블록이고, 상기 제2 비디오 블록은 인트라 블록이고, 상기 모드 후보 리스트는 MPM(most probable modes)리스트임 -;
상기 모드 후보 리스트에 기초하여, 현재 비디오 블록의 제2 인트라 예측 모드를 결정하는 동작; 및
상기 제2 인트라 예측 모드에 기초하여, 상기 제2 비디오 블록과 상기 비디오의 상기 비트스트림 간의 변환을 수행하는 동작
을 수행하도록 하고,
상기 제1 비디오 블록이 사용 가능하지 않은 경우, 상기 제1 비디오 블록에 대응하는 상기 모드 후보 리스트 내의 후보는 플래나(planar) 인트라 예측 모드로 설정되고,
상기 차동 코딩 모드가 상기 제1 비디오 블록에 적용되는 것에 응답하여, 크로스-컴포넌트 선형 모델 코딩 모드가 상기 제1 비디오 블록에 적용되지 않고, 및
상기 제1 비디오 블록이 루마 블록이고, 제3 신택스 요소(element)가 상기 차동 코딩 모드가 크로마 컴포넌트에 적용되는지 여부를 나타내는데 더 사용되는,
비-일시적 컴퓨터 판독 가능 기록 매체.
- 비디오 프로세싱 장치에 의해 수행되는 방법에 의해 생성되는 비디오의 비트스트림을 저장하는 비-일시적 컴퓨터 판독 가능 기록 매체에 있어서,
상기 방법은,
비디오의 제1 비디오 블록에 차동 코딩 모드가 적용되는지 결정하는 단계 - 상기 차동 코딩 모드에서 상기 제1 비디오 블록의 제1 인트라 예측 모드에서 유도된 양자화된 잔차(quantized residual)와 상기 양자화된 잔차의 예측 간의 차이는 상기 비디오의 비트스트림에 포함되고, 상기 차동 코딩 모드는 상기 양자화된 잔차에 대한 블록 차동 펄스-코드 변조임 -;
상기 제1 비디오 블록에 대한 상기 차동 코딩 모드에서 사용된 예측 방향에 대해 정렬(aligned)되어, 상기 제1 비디오 블록의 상기 제1 인트라 예측 모드를 저장하는 단계;
상기 제1 비디오 블록의 상기 저장된 제1 인트라 예측 모드에 기초하여, 상기 비디오의 제2 비디오 블록의 모드 후보 리스트를 구성하는 단계 - 상기 제1 비디오 블록은 상기 제2 비디오 블록의 공간적 인접(spatial neighboring) 블록이고, 상기 제2 비디오 블록은 인트라 블록이고, 상기 모드 후보 리스트는 MPM(most probable modes)리스트임 -;
상기 모드 후보 리스트에 기초하여, 현재 비디오 블록의 제2 인트라 예측 모드를 결정하는 단계; 및
상기 제2 인트라 예측 모드에 기초하여, 상기 비트스트림을 생성하는 단계
를 포함하고,
상기 제1 비디오 블록이 사용 가능하지 않은 경우, 상기 제1 비디오 블록에 대응하는 상기 모드 후보 리스트 내의 후보는 플래나(planar) 인트라 예측 모드로 설정되고,
상기 차동 코딩 모드가 상기 제1 비디오 블록에 적용되는 것에 응답하여, 크로스-컴포넌트 선형 모델 코딩 모드가 상기 제1 비디오 블록에 적용되지 않고, 및
상기 제1 비디오 블록이 루마 블록이고, 제3 신택스 요소(element)가 상기 차동 코딩 모드가 크로마 컴포넌트에 적용되는지 여부를 나타내는데 더 사용되는,
비-일시적 컴퓨터 판독 가능 기록 매체.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2019085398 | 2019-05-01 | ||
CNPCT/CN2019/085398 | 2019-05-01 | ||
PCT/US2020/030684 WO2020223467A1 (en) | 2019-05-01 | 2020-04-30 | Intra coded video using quantized residual differential pulse code modulation coding |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220002292A KR20220002292A (ko) | 2022-01-06 |
KR102707777B1 true KR102707777B1 (ko) | 2024-09-20 |
Family
ID=73029310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217033193A KR102707777B1 (ko) | 2019-05-01 | 2020-04-30 | 양자화된 잔차 차동 펄스 코드 변조 코딩을 사용하는 인트라 코딩된 비디오 |
Country Status (6)
Country | Link |
---|---|
US (3) | US11431966B2 (ko) |
EP (1) | EP3942799A4 (ko) |
JP (2) | JP7311627B2 (ko) |
KR (1) | KR102707777B1 (ko) |
CN (2) | CN117857783A (ko) |
WO (1) | WO2020223467A1 (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3942811A4 (en) | 2019-04-24 | 2022-06-15 | ByteDance Inc. | CONSTRAINTS ON THE REPRESENTATION OF A DIFFERENTIAL MODULATION BY CODED PULSES OF QUANTIFIED RESIDUE FOR A CODED VIDEO |
CN117615130A (zh) | 2019-05-02 | 2024-02-27 | 字节跳动有限公司 | 基于编解码树结构类型的编解码模式 |
EP3949387A4 (en) | 2019-05-02 | 2022-05-18 | ByteDance Inc. | SIGNALING IN A TRANSFORM JUMP MODE |
WO2020235959A1 (ko) * | 2019-05-22 | 2020-11-26 | 엘지전자 주식회사 | 영상 코딩 시스템에서 bdpcm을 사용하는 영상 디코딩 방법 및 그 장치 |
CN113966610A (zh) | 2019-06-11 | 2022-01-21 | 韦勒斯标准与技术协会公司 | 使用块dpcm预测方法的视频信号处理方法和设备 |
US12034961B2 (en) * | 2019-06-13 | 2024-07-09 | Lg Electronics Inc. | Motion vector prediction-based image/video coding method and device |
Family Cites Families (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11275592A (ja) | 1998-01-22 | 1999-10-08 | Victor Co Of Japan Ltd | 動画像符号列変換装置及びその方法 |
KR100813963B1 (ko) * | 2005-09-16 | 2008-03-14 | 세종대학교산학협력단 | 동영상의 무손실 부호화, 복호화 방법 및 장치 |
US8208545B2 (en) | 2006-06-01 | 2012-06-26 | Electronics And Telecommunications Research Institute | Method and apparatus for video coding on pixel-wise prediction |
TW201028018A (en) | 2009-01-07 | 2010-07-16 | Ind Tech Res Inst | Encoder, decoder, encoding method and decoding method |
KR101379185B1 (ko) | 2009-04-14 | 2014-03-31 | 에스케이 텔레콤주식회사 | 예측 모드 선택 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 |
UA109312C2 (uk) | 2011-03-04 | 2015-08-10 | Імпульсно-кодова модуляція з квантуванням при кодуванні відеоінформації | |
US9253508B2 (en) | 2011-11-04 | 2016-02-02 | Futurewei Technologies, Inc. | Differential pulse code modulation intra prediction for high efficiency video coding |
KR20130049523A (ko) * | 2011-11-04 | 2013-05-14 | 오수미 | 인트라 예측 블록 생성 장치 |
US10390046B2 (en) | 2011-11-07 | 2019-08-20 | Qualcomm Incorporated | Coding significant coefficient information in transform skip mode |
US9332259B2 (en) | 2012-01-18 | 2016-05-03 | Qualcomm Incorporated | Indication of use of wavefront parallel processing in video coding |
US9838684B2 (en) | 2012-04-11 | 2017-12-05 | Qualcomm Incorporated | Wavefront parallel processing for video coding |
US9621921B2 (en) | 2012-04-16 | 2017-04-11 | Qualcomm Incorporated | Coefficient groups and coefficient coding for coefficient scans |
US9426466B2 (en) | 2012-06-22 | 2016-08-23 | Qualcomm Incorporated | Transform skip mode |
EP2869557B1 (en) * | 2012-06-29 | 2023-08-09 | Electronics And Telecommunications Research Institute | Method and device for encoding/decoding images |
US9264713B2 (en) | 2012-07-11 | 2016-02-16 | Qualcomm Incorporated | Rotation of prediction residual blocks in video coding with transform skipping |
US9549182B2 (en) | 2012-07-11 | 2017-01-17 | Qualcomm Incorporated | Repositioning of prediction residual blocks in video coding |
US9407915B2 (en) * | 2012-10-08 | 2016-08-02 | Google Inc. | Lossless video coding with sub-frame level optimal quantization values |
US20140286413A1 (en) | 2013-03-25 | 2014-09-25 | Qualcomm Incorporated | Disabling sign data hiding in video coding |
CN113259683B (zh) | 2013-04-08 | 2024-08-23 | Ge视频压缩有限责任公司 | 分量间预测 |
US9667990B2 (en) | 2013-05-31 | 2017-05-30 | Qualcomm Incorporated | Parallel derived disparity vector for 3D video coding with neighbor-based disparity vector derivation |
US11323747B2 (en) * | 2013-06-05 | 2022-05-03 | Qualcomm Incorporated | Residual differential pulse code modulation (DPCM) extensions and harmonization with transform skip, rotation, and scans |
US9648335B2 (en) | 2013-07-12 | 2017-05-09 | Qualcomm Incorporated | Bitstream restrictions on picture partitions across layers |
US9558567B2 (en) | 2013-07-12 | 2017-01-31 | Qualcomm Incorporated | Palette prediction in palette-based video coding |
WO2015057438A1 (en) * | 2013-10-14 | 2015-04-23 | Mediatek Singapore Pte. Ltd. | Method of residue differential pulse-code modulation for hevc range extension |
KR20150055858A (ko) | 2013-11-14 | 2015-05-22 | 삼성전자주식회사 | 차분 레지듀얼 신호를 이용한 비디오의 부호화 방법 및 장치, 그 복호화 방법 및 장치 |
GB201321851D0 (en) | 2013-12-10 | 2014-01-22 | Canon Kk | Run length parameters coding for palette mode |
TWI536811B (zh) | 2013-12-27 | 2016-06-01 | 財團法人工業技術研究院 | 影像處理方法與系統、解碼方法、編碼器與解碼器 |
US20150189321A1 (en) | 2014-01-02 | 2015-07-02 | Mediatek Inc. | Method of Binarization and Context Adaptive Binary Arithmetic Coding of Depth Coding Syntax |
US9860540B2 (en) | 2014-01-03 | 2018-01-02 | Qualcomm Incorporated | Inference of nooutputofpriorpicsflag in video coding |
CN106105227B (zh) | 2014-03-16 | 2019-12-24 | Vid拓展公司 | 用于无损视频译码的信令的方法和设备 |
US9877035B2 (en) | 2014-03-17 | 2018-01-23 | Qualcomm Incorporated | Quantization processes for residue differential pulse code modulation |
KR102298599B1 (ko) | 2014-04-29 | 2021-09-03 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 샘플 적응 오프셋 필터링에 대한 인코더측 결정 |
EP3917146A1 (en) * | 2014-09-30 | 2021-12-01 | Microsoft Technology Licensing, LLC | Rules for intra-picture prediction modes when wavefront parallel processing is enabled |
GB2531004A (en) | 2014-10-06 | 2016-04-13 | Canon Kk | Residual colour transform signalled at sequence level for specific coding modes |
WO2016074147A1 (en) | 2014-11-11 | 2016-05-19 | Mediatek Singapore Pte. Ltd. | Separated coding tree for luma and chroma |
EP3032830A1 (en) | 2014-12-08 | 2016-06-15 | Thomson Licensing | Differential coding of intra modes |
US10321140B2 (en) | 2015-01-22 | 2019-06-11 | Mediatek Singapore Pte. Ltd. | Method of video coding for chroma components |
US10924743B2 (en) | 2015-02-06 | 2021-02-16 | Microsoft Technology Licensing, Llc | Skipping evaluation stages during media encoding |
US10057574B2 (en) | 2015-02-11 | 2018-08-21 | Qualcomm Incorporated | Coding tree unit (CTU) level adaptive loop filter (ALF) |
US10659783B2 (en) | 2015-06-09 | 2020-05-19 | Microsoft Technology Licensing, Llc | Robust encoding/decoding of escape-coded pixels in palette mode |
WO2017045101A1 (en) | 2015-09-14 | 2017-03-23 | Mediatek Singapore Pte. Ltd. | Advanced deblocking filter in video coding |
CN112565792B (zh) | 2015-10-19 | 2023-07-11 | 寰发股份有限公司 | 管理已解码图像缓存器的方法及装置 |
US10972731B2 (en) | 2015-11-10 | 2021-04-06 | Interdigital Madison Patent Holdings, Sas | Systems and methods for coding in super-block based video coding framework |
WO2017088093A1 (en) | 2015-11-23 | 2017-06-01 | Mediatek Singapore Pte. Ltd. | On the smallest allowed block size in video coding |
WO2017139937A1 (en) | 2016-02-18 | 2017-08-24 | Mediatek Singapore Pte. Ltd. | Advanced linear model prediction for chroma coding |
US11223852B2 (en) | 2016-03-21 | 2022-01-11 | Qualcomm Incorporated | Coding video data using a two-level multi-type-tree framework |
EP3446480A1 (en) | 2016-04-22 | 2019-02-27 | VID SCALE, Inc. | Prediction systems and methods for video coding based on filtering nearest neighboring pixels |
EP3453173B1 (en) * | 2016-05-05 | 2021-08-25 | InterDigital Madison Patent Holdings, SAS | Control-point based intra direction representation for intra coding |
RU2710667C1 (ru) | 2016-05-28 | 2019-12-30 | МедиаТек Инк. | Способ и устройство привязки к текущему изображению для кодирования видео |
CN116708777A (zh) * | 2016-07-18 | 2023-09-05 | 韩国电子通信研究院 | 图像编码/解码方法和装置以及存储比特流的记录介质 |
US10390015B2 (en) | 2016-08-26 | 2019-08-20 | Qualcomm Incorporated | Unification of parameters derivation procedures for local illumination compensation and cross-component linear model prediction |
CN109792516B (zh) | 2016-10-04 | 2021-05-25 | 联发科技股份有限公司 | 图像和视频编解码中用于帧内色度编解码的方法及装置 |
US10194147B2 (en) | 2017-01-19 | 2019-01-29 | Google Llc | DC coefficient sign coding scheme |
EP4415366A2 (en) | 2017-08-03 | 2024-08-14 | Sharp Kabushiki Kaisha | Systems and methods for partitioning video blocks in an inter prediction slice of video data |
WO2019234669A1 (en) * | 2018-06-07 | 2019-12-12 | Beijing Bytedance Network Technology Co., Ltd. | Signaled mv precision |
WO2019244117A1 (en) * | 2018-06-21 | 2019-12-26 | Beijing Bytedance Network Technology Co., Ltd. | Unified constrains for the merge affine mode and the non-merge affine mode |
CN110636299B (zh) | 2018-06-21 | 2022-06-14 | 北京字节跳动网络技术有限公司 | 用于处理视频数据的方法、装置及计算机可读记录介质 |
US11973944B2 (en) | 2018-06-27 | 2024-04-30 | Electronics And Telecommunications Research Institute | Image encoding/decoding method and device, and recording medium in which bitstream is stored for block division at picture boundary |
CN115134599A (zh) * | 2018-06-29 | 2022-09-30 | 抖音视界有限公司 | 更新查找表(lut)的条件 |
WO2020003261A1 (en) * | 2018-06-29 | 2020-01-02 | Beijing Bytedance Network Technology Co., Ltd. | Selection from multiple luts |
JP7181395B2 (ja) * | 2018-07-02 | 2022-11-30 | 北京字節跳動網絡技術有限公司 | イントラ予測モードを有するルックアップテーブルおよび非隣接ブロックからのイントラモード予測 |
CN113316931B (zh) | 2018-11-22 | 2024-04-12 | 北京字节跳动网络技术有限公司 | 视频处理中的脉冲编解码调制技术 |
JP2021513755A (ja) | 2019-01-15 | 2021-05-27 | エルジー エレクトロニクス インコーポレイティド | 変換スキップフラグを利用した映像コーディング方法及び装置 |
US11012701B2 (en) * | 2019-02-22 | 2021-05-18 | Tencent America LLC | Residual coding for transform skip mode and block differential pulse-code modulation |
WO2020172668A1 (en) * | 2019-02-24 | 2020-08-27 | Tencent America LLC | Improved residual coding for transform skip mode and block differential pulse-code modulation |
US11825120B2 (en) | 2019-02-28 | 2023-11-21 | Qualcomm Incorporated | Subblock coding by generalized intra prediction in video coding |
US11202100B2 (en) | 2019-03-11 | 2021-12-14 | Qualcomm Incorporated | Coefficient coding for transform skip mode |
US11070812B2 (en) | 2019-03-12 | 2021-07-20 | Qualcomm Incorporated | Coefficient domain block differential pulse-code modulation in video coding |
US11128876B2 (en) * | 2019-03-12 | 2021-09-21 | Qualcomm Incorporated | Joint coefficient coding of transform skip and BDPCM mode for 4:4:4 color formats |
US11451826B2 (en) | 2019-04-15 | 2022-09-20 | Tencent America LLC | Lossless coding mode and switchable residual coding |
WO2020213931A1 (ko) | 2019-04-16 | 2020-10-22 | 엘지전자 주식회사 | 레지듀얼 계수의 차분 부호화를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 |
WO2020214980A1 (en) | 2019-04-19 | 2020-10-22 | Bytedance Inc. | Context coding for transform skip mode |
KR20210145123A (ko) | 2019-04-23 | 2021-12-01 | 주식회사 윌러스표준기술연구소 | 다중 변환 커널을 사용하는 비디오 신호 처리 방법 및 장치 |
EP3942811A4 (en) | 2019-04-24 | 2022-06-15 | ByteDance Inc. | CONSTRAINTS ON THE REPRESENTATION OF A DIFFERENTIAL MODULATION BY CODED PULSES OF QUANTIFIED RESIDUE FOR A CODED VIDEO |
US11190758B2 (en) * | 2019-04-25 | 2021-11-30 | Qualcomm Incorporated | Block-based quantized residual domain pulse code modulation assignment for intra prediction mode derivation |
US11368721B2 (en) * | 2019-04-30 | 2022-06-21 | Tencent America LLC | Method and apparatus for interaction between intra prediction mode and block differential pulse-code modulation mode |
EP3949387A4 (en) | 2019-05-02 | 2022-05-18 | ByteDance Inc. | SIGNALING IN A TRANSFORM JUMP MODE |
CN117615130A (zh) | 2019-05-02 | 2024-02-27 | 字节跳动有限公司 | 基于编解码树结构类型的编解码模式 |
-
2020
- 2020-04-30 CN CN202311517694.1A patent/CN117857783A/zh active Pending
- 2020-04-30 KR KR1020217033193A patent/KR102707777B1/ko active IP Right Grant
- 2020-04-30 CN CN202080032754.9A patent/CN113796069B/zh active Active
- 2020-04-30 JP JP2021563191A patent/JP7311627B2/ja active Active
- 2020-04-30 EP EP20798668.8A patent/EP3942799A4/en active Pending
- 2020-04-30 WO PCT/US2020/030684 patent/WO2020223467A1/en unknown
-
2021
- 2021-10-15 US US17/502,233 patent/US11431966B2/en active Active
-
2022
- 2022-07-28 US US17/876,000 patent/US20220377321A1/en active Pending
-
2023
- 2023-07-05 JP JP2023111065A patent/JP2023139037A/ja active Pending
- 2023-11-03 US US18/501,497 patent/US20240121381A1/en active Pending
Non-Patent Citations (2)
Title |
---|
Henry (ORANGE) F et al: "CE8: BDPCM with horizontal/vertical predictor and independently decodable areas (test 8.3.1b)", JVET-M0057, 2019.1.10. |
Karczewicz (Qualcomm) M et al: "CE8-related: Quantized residual BDPCM", JVET-N0413, version5, 2019-3-26. |
Also Published As
Publication number | Publication date |
---|---|
JP2022529528A (ja) | 2022-06-22 |
US20220377321A1 (en) | 2022-11-24 |
US11431966B2 (en) | 2022-08-30 |
CN113796069A (zh) | 2021-12-14 |
WO2020223467A1 (en) | 2020-11-05 |
JP2023139037A (ja) | 2023-10-03 |
CN113796069B (zh) | 2024-03-08 |
EP3942799A4 (en) | 2022-06-08 |
JP7311627B2 (ja) | 2023-07-19 |
EP3942799A1 (en) | 2022-01-26 |
US20240121381A1 (en) | 2024-04-11 |
CN117857783A (zh) | 2024-04-09 |
US20220038687A1 (en) | 2022-02-03 |
KR20220002292A (ko) | 2022-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113728642B (zh) | 编解码视频的量化残差差分脉冲编解码调制表示 | |
KR102707777B1 (ko) | 양자화된 잔차 차동 펄스 코드 변조 코딩을 사용하는 인트라 코딩된 비디오 | |
US11870996B2 (en) | Transform bypass coded residual blocks in digital video | |
JP2023120212A (ja) | 変換スキップモードにおける信号通知 | |
JPWO2020211807A5 (ko) | ||
RU2807214C2 (ru) | Ограничение представления дифференциальной импульсно-кодовой модуляции квантового остатка кодированного видео |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AMND | Amendment | ||
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |