KR20220073746A - 비디오 처리에서 크로마 양자화 파라미터 사용 - Google Patents
비디오 처리에서 크로마 양자화 파라미터 사용 Download PDFInfo
- Publication number
- KR20220073746A KR20220073746A KR1020227010299A KR20227010299A KR20220073746A KR 20220073746 A KR20220073746 A KR 20220073746A KR 1020227010299 A KR1020227010299 A KR 1020227010299A KR 20227010299 A KR20227010299 A KR 20227010299A KR 20220073746 A KR20220073746 A KR 20220073746A
- Authority
- KR
- South Korea
- Prior art keywords
- chroma
- video
- block
- coding
- sample
- Prior art date
Links
- 238000013139 quantization Methods 0.000 title claims abstract description 116
- 238000012545 processing Methods 0.000 title abstract description 48
- 238000000034 method Methods 0.000 claims abstract description 302
- 238000003672 processing method Methods 0.000 claims description 19
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 230000001131 transforming effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 178
- 241000023320 Luma <angiosperm> Species 0.000 description 173
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 173
- 238000001914 filtration Methods 0.000 description 88
- 239000013598 vector Substances 0.000 description 74
- 238000005516 engineering process Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 27
- 238000009795 derivation Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 230000011664 signaling Effects 0.000 description 14
- 230000000903 blocking effect Effects 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 11
- 239000011449 brick Substances 0.000 description 10
- 238000004590 computer program Methods 0.000 description 10
- 230000015654 memory Effects 0.000 description 9
- 238000013461 design Methods 0.000 description 8
- 230000002123 temporal effect Effects 0.000 description 8
- 230000009466 transformation Effects 0.000 description 7
- 101150039623 Clip1 gene Proteins 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000005192 partition Methods 0.000 description 6
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 5
- 230000004913 activation Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 101100277553 Caenorhabditis elegans dep-1 gene Proteins 0.000 description 3
- 229910052799 carbon Inorganic materials 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 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 1
- 238000012935 Averaging Methods 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007727 signaling mechanism Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
-
- 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/117—Filters, e.g. for pre-processing or post-processing
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- 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/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
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/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/167—Position within a video image, e.g. region of interest [ROI]
-
- 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/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
비디오 처리의 예시적인 방법은 하나 이상의 코딩 유닛을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비트스트림 표현은 크로마 양자화 파라미터가 포맷 규칙에 따라 코딩 유닛 레벨 또는 트랜스폼 유닛 레벨에서 비트스트림 표현에 포함된다는 것을 지정하는 포맷 규칙을 따른다.
Description
이 특허 문서는 비디오 코딩 기술, 장치 및 시스템과 관련이 있다.
파리협약에 따른 대응하는 특허법 및/또는 규칙에 따라, 이 출원은 2019년 10월 14일에 출원된 국제 특허 출원 번호 PCT/CN2019/111115의 우선권과 이익을 적시에 주장하기 위해 이루어진다. 법에 따른 모든 목적을 위해, 상기 출원의 전체 개시는 본 출원의 개시의 일부로 참조에 의해 통합된다.
현재, 더 나은 압축 비율을 제공하거나 더 낮은 복잡성 또는 병렬 구현을 허용하는 비디오 코딩 및 디코딩 방식을 제공하기 위해 현재 비디오 코덱 기술의 성능을 개선하려는 노력이 진행 중이다. 업계 전문가들은 최근 몇 가지 새로운 비디오 코딩 툴(video coding tool)을 제안했고, 효과를 확인하기 위한 테스트가 현재 진행 중이다.
디지털 비디오 코딩, 특히 모션 벡터의 관리와 관련된 장치, 시스템 및 방법이 설명된다. 설명된 방법은 기존 비디오 코딩 표준(예를 들어, 고효율 비디오 코딩(High Efficiency Video Coding)(HEVC) 또는 범용 비디오 코딩(Versatile Video Coding)) 및 향후 비디오 코딩 표준 또는 비디오 코덱에 적용될 수 있다.
하나의 대표적인 측면에서, 개시된 기술은 비디오 처리(video processing) 방법을 제공하는 데 사용될 수 있다. 이 방법은, 비디오의 크로마 블록과 비디오의 비트스트림 표현 사이의 변환을 위해 , 크로마 블록에 대한 크로마 잔차의 공동 코딩(joint coding ) 모드에 기초하여 크로마 블록의 가장자리에서 적어도 일부 샘플에 대한 디블로킹 필터 프로세스의 적용 가능성을 결정하는 단계를 포함한다. 방법은 또한 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은, 비디오의 현재 블록과 비디오의 비트스트림 표현 사이의 변환을 위해, 현재 블록의 대응하는 트랜스폼 블록의 정보에 기초하여 현재 블록의 가장자리에서 적어도 일부 샘플에 적용되는 디블로킹 필터링 프로세스에 사용되는 크로마 양자화 파라미터를 결정하는 단계를 포함한다. 방법은 또한 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 비디오의 현재 블록과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 변환 동안, 현재 블록의 가장자리를 따라 적어도 일부 샘플에 적용되는 디블로킹 필터링 프로세스에서 사용되는 제1 크로마 양자화 파라미터는 스케일링 프로세스에서 사용되는 제2 크로마 양자화 파라미터 및 비트 심도(bit depth)와 연관된 양자화 파라미터 오프셋에 기초한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 하나 이상의 코딩 유닛을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비트스트림 표현은 크로마 양자화 파라미터가 포맷 규칙에 따라 코딩 유닛 레벨 또는 트랜스폼 유닛 레벨에서 비트스트림 표현에 포함된다는 것을 지정하는 포맷 규칙을 따른다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 비디오의 블록과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비트스트림 표현은 크로마 잔차 모드의 공동 코딩이 블록에 적용 가능한지 여부가 비트스트림 표현의 코딩 유닛 레벨에서 표시된다는 것을 지정하는 포맷 규칙을 따른다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 비디오 유닛과 비디오 유닛의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 크로마 양자화 파라미터(QP) 테이블이 디블로킹 필터의 파라미터를 유도하기 위해 사용될 때 크로마 QP 테이블에 의한 처리가 개별 크로마 QP 값에 대해 수행되도록 디블로킹 필터가 비디오 유닛의 경계에 사용된다.
또 다른 대표적인 측면에서, 개시된 기술은 다른 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은, 비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되고, 크로마 QP 오프셋은 픽처/슬라이스/타일/브릭/서브 픽처 레벨에 있다.
또 다른 대표적인 측면에서, 개시된 기술은 다른 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되고, 여기서 동일한 루마 코딩 유닛에 관한 정보가 디블로킹 필터에서 사용되며 크로마 QP 오프셋을 유도하기 위해 사용된다.
또 다른 대표적인 측면에서, 개시된 기술은 다른 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되고, 크로마 QP 오프셋의 사용을 가능하게 하는 표시는 비트스트림 표현에서 시그널링된다.
또 다른 대표적인 측면에서, 개시된 기술은 다른 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되고, 디블로킹 필터에 사용되는 크로마 QP 오프셋은 비디오 유닛의 경계에 JCCR 코딩 방법이 적용되는지 또는 비디오 유닛의 경계에 JCCR 코딩 방법과 다른 방법이 적용되는지 여부와 동일하다.
또 다른 대표적인 측면에서, 개시된 기술은 다른 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되며, 여기서 디블로킹 필터의 경계 강도(BS)는 P 측 경계에서 비디오 유닛과 연관된 레퍼런스 픽처 및/또는 다수의 모션 벡터(MV)를 Q 측 경계에서 비디오 유닛의 레퍼런스 픽처와 비교하지 않고 계산된다.
또한, 대표적인 측면에서, 프로세서 및 명령이 있는 비일시적 메모리를 포함하는 비디오 시스템의 장치가 개시된다. 프로세서에 의한 실행 시 명령은 프로세서가 개시된 방법 중 임의의 하나 이상을 구현하도록 한다.
추가적으로, 대표적인 측면에서, 개시된 방법들 중 임의의 하나 이상을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
다른 대표적인 측면에서, 개시된 방법들 중 임의의 하나 이상을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램에 있어서, 솔루션 F1 내지 F15의 방법 중 어느 하나의 방법을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램.
개시된 기술의 상기 및 기타 측면 및 특징은 도면, 설명 및 청구범위에서 보다 상세하게 설명된다.
도 1은 블로킹 디블로킹 필터 과정의 전체적인 처리 흐름의 일 예를 나타낸다.
도 2는 Bs 계산의 흐름도의 예를 나타낸다.
도 3은 CTU 경계에서 Bs 계산을 위한 레퍼런스 정보의 예를 나타낸다.
도 4는 필터 켜기/끄기 판정 및 강/약 필터 선택을 포함하는 픽셀의 예를 나타낸다.
도 5는 VVC에서 디블로킹 필터 처리의 전체 처리 흐름의 예를 나타낸다.
도 6은 VVC에서의 루마 디블로킹 필터 프로세스의 예를 나타낸다.
도 7은 VVC에서 크로마 디블로킹 필터 프로세스의 예를 나타낸다.
도 8은 서브 PU 경계에 대한 필터 길이 결정의 예를 나타낸다.
도 9a는 크로마 블록의 중심 위치의 예를 나타낸다.
도 9b는 크로마 블록의 중심 위치의 다른 예를 나타낸다.
도 10은 P측 및 Q측 블록의 예를 도시한다.
도 11은 루마 블록의 복호화된 정보의 사용 예를 나타낸다.
도 5는 본 문서에서 설명하는 비주얼 매체 디코딩 또는 비주얼 매체 인코딩 기술을 구현하기 위한 하드웨어 플랫폼의 일 예의 블록도이다.
도 13은 비디오 코딩을 위한 예시적인 방법의 흐름도를 나타낸다.
도 14a는 다른 루프 필터(b) 다이아몬드형 필터에 대한 CC-ALF의 배치의 예를 나타낸다.
도 14b는 다이아몬드형 필터에 대한 CC-ALF의 배치의 예를 나타낸다.
도 15는 예시적인 비디오 코딩 시스템을 예시하는 블록도이다.
도 16은 본 개시내용의 일부 실시예에 따른 인코더를 예시하는 블록도이다.
도 17은 본 개시의 일부 실시예들에 따른 디코더를 예시하는 블록도이다.
도 18은 개시된 기술이 구현될 수 있는 예시적인 비디오 처리 시스템의 블록도이다.
도 19는 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다.
도 20은 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 21은 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 22는 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 23은 본 기술에 따른 비디오 처리를 위한 또 다른 방법의 흐름도 표현이다.
도 2는 Bs 계산의 흐름도의 예를 나타낸다.
도 3은 CTU 경계에서 Bs 계산을 위한 레퍼런스 정보의 예를 나타낸다.
도 4는 필터 켜기/끄기 판정 및 강/약 필터 선택을 포함하는 픽셀의 예를 나타낸다.
도 5는 VVC에서 디블로킹 필터 처리의 전체 처리 흐름의 예를 나타낸다.
도 6은 VVC에서의 루마 디블로킹 필터 프로세스의 예를 나타낸다.
도 7은 VVC에서 크로마 디블로킹 필터 프로세스의 예를 나타낸다.
도 8은 서브 PU 경계에 대한 필터 길이 결정의 예를 나타낸다.
도 9a는 크로마 블록의 중심 위치의 예를 나타낸다.
도 9b는 크로마 블록의 중심 위치의 다른 예를 나타낸다.
도 10은 P측 및 Q측 블록의 예를 도시한다.
도 11은 루마 블록의 복호화된 정보의 사용 예를 나타낸다.
도 5는 본 문서에서 설명하는 비주얼 매체 디코딩 또는 비주얼 매체 인코딩 기술을 구현하기 위한 하드웨어 플랫폼의 일 예의 블록도이다.
도 13은 비디오 코딩을 위한 예시적인 방법의 흐름도를 나타낸다.
도 14a는 다른 루프 필터(b) 다이아몬드형 필터에 대한 CC-ALF의 배치의 예를 나타낸다.
도 14b는 다이아몬드형 필터에 대한 CC-ALF의 배치의 예를 나타낸다.
도 15는 예시적인 비디오 코딩 시스템을 예시하는 블록도이다.
도 16은 본 개시내용의 일부 실시예에 따른 인코더를 예시하는 블록도이다.
도 17은 본 개시의 일부 실시예들에 따른 디코더를 예시하는 블록도이다.
도 18은 개시된 기술이 구현될 수 있는 예시적인 비디오 처리 시스템의 블록도이다.
도 19는 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다.
도 20은 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 21은 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 22는 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 23은 본 기술에 따른 비디오 처리를 위한 또 다른 방법의 흐름도 표현이다.
1.
HEVC/H.265의 비디오 코딩
비디오 코딩 표준은 주로 잘 알려진 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 표준을 공동 제작했다. H.262 이후, 비디오 코딩 표준은 시간적 예측(temporal prediction)과 트랜스폼 코딩(transform coding)이 활용되는 하이브리드 비디오 코딩 구조에 기초한다. HEVC를 넘어 미래의 비디오 코딩 기술을 연구하기 위해, 공동 비디오 연구팀(JVET: Joint Video Exploration Team)이 2015년에 VCEG와 MPEG의 공동으로 설립되었다. 그 이후로, JVET에 의해 많은 새로운 방법들이 채택되었고, 공동 연구 모델 (JEM: Joint Exploration Model)이라고 명명된 레퍼런스 픽처소프트웨어(reference software)에 적용되었다. 2018년 4월, VCEG(Q6/16)와 ISO/IEC JTC1 SC29/WG11(MPEG) 사이의 공동 비디오 전문가 팀(Joint Video Expert Team)(JVET)는 HEVC에 비해 50% 비트 전송률 감소를 목표로 하는 VVC 표준 작업을 위해 만들어졌다.
2.1.
HEVC의 디블로킹 방식(Deblocking scheme in HEVC)
디코딩 프로세스(decoding process)와 동일한 순서로 각 CU에 대해 디블로킹 필터 프로세스가 수행된다. 먼저 수직 가장자리(vertical edge)를 필터링(수평 필터링(horizontal filtering))한 다음 수평 가장자리(horizontal edge)를 필터링(수직 필터링(vertical filtering))한다. 필터링은 루마 및 크로마 컴포넌트 모두에 대해 필터링된 것으로 결정된 8x8 블록 경계에 적용된다. 복잡성을 줄이기 위해 4x4 블록 경계는 처리되지 않는다.
도 1은 디블로킹 필터링 프로세스의 전체적인 처리 흐름을 도시한 것이다. 경계는 필터링 없음, 약한 필터링 및 강력한 필터링의 세 가지 필터링 상태를 가질 수 있다. 각 필터링 판정(filtering decision)은 경계 강도 Bs와 임계값 β 및 tC에 기초하여 한다.
필터링 프로세스에는 세 가지 종류의 경계가 포함될 수 있다: CU 경계, TU 경계 및 PU 경계. CU 경계는 항상 TU 경계 또는 PU 경계이기 때문에 CU의 외부 가장자리인 CU 경계는 항상 필터링에 포함된다. PU 모양이 2NxN(N > 4)이고 RQT 심도가 1인 경우, 8x8 블록 그리드에서 TU 경계와 CU 내부의 각 PU 사이의 PU 경계가 필터링에 포함된다. 한 가지 예외는 PU 경계가 TU 내부에 있을 때 경계가 필터링되지 않는다는 것이다.
2.1.1.
경계 강도 계산(Boundary strength calculation)
일반적으로 경계 강도(B)는 경계에 대해 얼마나 강력한 필터링이 필요한지를 반영한다. B가 크면, 강력한 필터링을 고려해야 한다.
P와 Q를 필터링에 관여하는 블록으로 정의할 수 있도록 하고, 여기서 P는 경계의 왼측(수직 가장자리 케이스) 또는 위(수평 가장자리 케이스) 측에 있는 블록을 나타내고 Q는 경계의 오른측(수직 가장자리 케이스) 또는 위(수평 가장자리 케이스) 측에 있는 블록을 나타낸다. 도 2는 BS 값이 인트라 코딩 모드, 비-제로 트랜스폼 계수 및 모션 정보, 레퍼런스 픽처, 모션 벡터 수 및 모션 벡터 차이의 존재에 기초하여 계산되는 방법을 도시한다.
Bs는 4x4 블록 기반으로 계산되지만 8x8 그리드에 다시 매핑된다. 4x4 그리드의 라인으로 구성된 8픽셀에 대응하는 Bs의 두 값 중 최대값은 8x8 그리드의 경계에 대한 B로 선택된다.
라인 버퍼 메모리 요구량을 줄이기 위해, CTU 경계에 대해서만 왼측 또는 위측의 모든 제2 블록(4x4 그리드)의 정보를 도 3과 같이 재사용된다.
2.1.2.
β 및 tC 판정
필터 켜짐/꺼짐 판정(decision), 강한 필터와 약한 필터 선택 및 약한 필터링 프로세스를 포함하는 임계값 β 및 tC는 각각 P 및 Q 블록, QPP 및 QPQ의 루마 양자화 파라미터에 기초하여 유도된다. β와 tC를 유도하는데 사용되는 Q는 다음과 같이 계산된다:
Q = ( ( QPP + QPQ + 1 ) >> 1 ).
변수 β는 Q에 기초하여 표 1과 같이 유도된다. Bs가 1보다 크면 변수 tC는 Clip3(0, 55, Q + 2)을 입력으로 하여 표 1과 같이 지정된다. 그렇지 않으면(BS가 1보다 작거나 같으면), 변수 tC는 Q를 입력으로 사용하여 표 1과 같이 지정된다.
Q | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
β | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6 | 7 | 8 |
t C | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
Q | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 |
β | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 20 | 22 | 24 | 26 | 28 | 30 | 32 | 34 | 36 |
t C | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 3 | 3 | 3 | 3 | 4 | 4 | 4 |
Q | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | |
β | 38 | 40 | 42 | 44 | 46 | 48 | 50 | 52 | 54 | 56 | 58 | 60 | 62 | 64 | 64 | 64 | 64 | 64 | |
t C | 5 | 5 | 6 | 6 | 7 | 8 | 9 | 9 | 10 | 10 | 11 | 11 | 12 | 12 | 13 | 13 | 14 | 14 |
2.1.3.
네 개 라인에 대한 필터 켜기/끄기 판정
필터 켜짐/꺼짐 판정은 네 개 라인 유닛으로 수행된다. 도 4는 필터 껴기/끄기 판정에 관련된 픽셀을 도시한다. 첫 번째 네 개 라인에 대한 두 개의 빨간색 상자에 있는 6개 픽셀은 네 개 라인에 대한 필터 켜기/끄기를 결정하는 데 사용된다. 두 번째 네 개 라인에 대한 두 개의 빨간색 상자에 있는 6픽셀은 두 번째 네 개 라인에 대한 필터 켜기/끄기를 결정하는 데 사용된다.
dp0+dq0+dp3+dq3 < β이면, 처음 네 개 라인에 대한 필터링을 켜고 강/약 필터 선택 프로세스를 적용한다. 각 변수는 다음과 같이 유도된다:
dp0 = | p2,0 - 2*p1,0 + p0,0 |, dp3 = | p2,3 - 2*p1,3 + p0,3 |, dp4 = | p2,4 - 2*p1,4 + p0,4 |, dp7 = | p2,7 - 2*p1,7 + p0,7 |
dq0 = | q2,0 - 2*q1,0 + q0,0 |, dq3 = | q2,3 - 2*q1,3 + q0,3 |, dq4 = | q2,4 - 2*q1,4 + q0,4 |, dq7 = | q2,7 - 2*q1,7 + q0,7 |
조건이 충족되지 않으면, 처음 네 개 라인에 대해 필터링이 수행되지 않는다. 또한, 조건이 충족되면, 약한 필터링 프로세스에 대해 dE, dEp1 및 dEp2가 유도된다. 변수 dE는 1로 설정된다. dp0 + dp3 < (β + ( β >> 1 )) >> 3이면, 변수 dEp1은 1로 설정된다. dq0 + dq3 < (β + ( β >> 1 )) >> 3이면, 변수 dEq1은 1로 설정된다.
두 번째 네 개 라인에 대해서, 위와 같은 방식으로 판정한다.
2.1.4.
네 개 라인에 대한 강/약 필터 선택(Strong/weak filter selection for 4 lines)
필터 켜짐/꺼짐 판정에서 처음 네 개 라인이 필터링 켜기로 결정된 후, 다음 두 가지 조건이 충족되면, 처음 네 개 라인의 필터링에 강력한 필터가 사용된다. 그렇지 않으면, 약한 필터가 필터링에 사용된다. 관련 픽셀은 도 4에 묘사된 대로 필터 켜기/끄기 판정(decision)을 데 사용되는 픽셀과 동일하다.
1) 2*(dp0+dq0) < ( β >> 2 ), | p30 - p00 | + | q00 - q30 | < ( β >> 3 ) and | p00 - q00 | < ( 5* tC + 1 ) >> 1
2) 2*(dp3+dq3) < ( β >> 2 ), | p33 - p03 | + | q03 - q33 | < ( β >> 3 ) and | p03 - q03 | < ( 5* tC + 1 ) >> 1
같은 방식으로, 다음 두 가지 조건이 충족되면, 두 번째 네 개 라인의 필터링에 강력한 필터를 사용한다. 그렇지 않으면, 약한 필터가 필터링에 사용된다.
1) 2*(dp4+dq4) < ( β >> 2 ), | p34 - p04 | + | q04 - q34 | < ( β >> 3 ) and | p04 - q04 | < ( 5* tC + 1 ) >> 1
2) 2*(dp7+dq7) < ( β >> 2 ), | p37 - p07 | + | q07 - q37 | < ( β >> 3 ) and | p07 - q07 | < ( 5* tC + 1 ) >> 1
2.1.4.1.
강력한 필터링(Strong filtering)
강력한 필터링을 위해, 필터링된 픽셀 값은 다음 방정식에 의해 획득된다. 각 P 및 Q 블록에 대한 입력으로 각각 네 개의 픽셀을 사용하여 세 개의 픽셀이 수정된다는 점에 유의할 가치가 있다.
p0' = ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3
q0' = ( p1 + 2*p0 + 2*q0 + 2*q1 + q2 + 4 ) >> 3
p1' = ( p2 + p1 + p0 + q0 + 2 ) >> 2
q1' = ( p0 + q0 + q1 + q2 + 2 ) >> 2
p2' = ( 2*p3 + 3*p2 + p1 + p0 + q0 + 4 ) >> 3
q2' = ( p0 + q0 + q1 + 3*q2 + 2*q3 + 4 ) >> 3
2.1.4.2.
약한 필터링(Weak filtering)
다음과 같이 정의한다.
Δ = ( 9 * ( q0 - p0 ) - 3 * ( q1 - p1 ) + 8 ) >> 4
abs(Δ)이 tC*10 미만인 경우,
Δ = Clip3( - tC , tC , Δ )
p0' = Clip1Y( p0 + Δ )
q0' = Clip1Y( q0 - Δ )
dEp1이 1과 동일하면,
Δp = Clip3( -( tC >> 1), tC >> 1, ( ( ( p2 + p0 + 1 ) >> 1 ) - p1 + Δ ) >>1 )
p1' = Clip1Y( p1 + Δp )
dEq1이 1과 같으면,
Δ= Clip3 (-(tC >> 1), tC >> 1, (((q2 + q0 + 1) >> 1) - q1 - ) Δ >>1)
q1' = Clip1Y( q1 + Δq )
각 P 및 Q 블록에 대해 각각 세 개의 픽셀을 입력으로 사용하여 최대 두 개의 픽셀이 수정된다는 점에 유의할 가치가 있다.
2.1.4.3.
크로마 필터링
크로마 필터링의 B는 루마에서 상속된다. Bs > 1이거나 코딩된 크로마 계수가 있는 경우, 크로마 필터링이 수행된다. 다른 필터링 판정이 없다. 그리고 크로마에는 하나의 필터만 적용된다. 크로마에 대한 필터 선택 프로세스가 사용되지 않는다. 필터링된 샘플 값 p0' 및 q0'은 다음과 같이 유도된다:
Δ = Clip3( -tC, tC, ( ( ( ( q0 - p0 ) << 2 ) + p1 - q1 + 4 ) >> 3 ) )
p0' = Clip1C( p0 + Δ )
q0' = Clip1C( q0 - Δ )
2.2
VVC의 디블로킹 방식
VTM6에서 디블로킹 필터링 프로세스는 HEVC와 거의 동일하다. 그러나, 다음 수정 사항이 추가된다.
A) 재구성된 샘플의 평균 루마 레벨에 의존하는 디블로킹 필터의 필터 강도.
B) 디블로킹 tC 테이블 확장 및 10비트 비디오에 대한 적응.
C) 루마에 대한 4x4 그리드 디블로킹.
D) 루마에 대한 더 강력한 디블로킹 필터.
E) 크로마에 대한 더 강력한 디블로킹 필터.
F) 서브블록 경계를 위한 디블로킹 필터.
G) 모션의 더 작은 차이에 적응된 디블로킹 판정.
도 5는 코딩 유닛에 대한 VVC에서의 디블로킹 필터 프로세스의 흐름도를 도시한다.
2.2.1.
재구성된 평균 루마에 따른 필터 강도
HEVC에서 디블로킹 필터의 필터 강도는 평균 양자화 파라미터 qPL에서 유도된 변수 β 및 tC에 의해 제어된다. VTM6에서, 디블로킹 필터는 이 방법의 SPS 플래그가 참인 경우 재구성된 샘플의 루마 레벨에 따라 qPL에 오프셋을 추가하여 디블로킹 필터의 강도를 제어한다. 재구성된 루마 레벨 LL은 다음과 같이 유도된다:
LL= ( ( p0,0 + p0,3 + q0,0 + q0,3 ) >> 2 ) / ( 1 << bitDepth )
(3-1)
여기서, i = 0..3 및 k = 0 및 3인 샘플 값 pi,k 및 qi,k가 유도될 수 있다. 그런 다음 LL은 SPS에서 시그널링된 임계값을 기반으로 오프셋 qpOffset을 결정하는 데 사용된다. 그 후, 다음과 같이 유도되는 qPL을 사용하여 β 및 tC를 유도한다.
qPL = ( ( QpQ + QpP +1 ) >> 1 ) + qpOffset
(3-2)
여기서 QpQ 및 QpP는 각각 샘플 q0,0 및 p0,0을 포함하는 코딩 유닛의 양자화 파라미터를 나타낸다. 현재 VVC에서, 이 방법은 루마 디블로킹(루마 디블로킹) 프로세스에만 적용된다.
2.2.2.
루마(luma)용 4x4 디블로킹 그리드
HEVC는 루마와 크로마 모두에 대해 8x8 디블로킹 그리드를 사용한다. VTM6에서는 직사각형 트랜스폼 모양의 블로킹 아티팩트를 처리하기 위해 루마 경계에 대한 4x4 그리드의 디블로킹이 도입되었다. 4x4 그리드에서 병렬 친화적인 루마 디블로킹은 디블로킹할 샘플의 수를 일측의 너비가 4 이하인 수직 루마 경계의 각 면에서 1개의 샘플로 또는 일측의 높이가 4 이하인 수평 루마 경계의 각 변에 1개의 샘플로 제한함으로써 달성된다.
2.2.3.
루마에 대한 경계 강도 유도
자세한 경계 강도 유도는 표 2에서 찾을 수 있다. 표 2의 조건은 순차적으로 확인된다.
조건 | Y | U | V | ||
P와 Q는 BDPCM이다. | 0 | 해당 없음 |
해당 없음 |
||
P 또는 Q는 인트라이다. | 2 | 2 | 2 | ||
트랜스폼 블록 가장자리이고, P 또는 Q는 CIIP이다. | 2 | 2 | 2 | ||
트랜스폼 블록 가장자리이고, P 또는 Q가 0이 아닌 트랜스폼 계수를 가진다. | 1 | 1 | 1 | ||
트랜스폼 블록 가장자리이고, P 또는 Q는 JCCR이다. | 해당 없음 |
1 | 1 | ||
P와 Q는 서로 다른 코딩 모드에 있다. | 1 | 1 | 1 | ||
다음 조건 중 하나 이상이 참이다: 1. P와 Q는 모두 IBC이고, x- 또는 y-di에서 BV 거리 >= 반-펠(half-pel)이다. 2. P와 Q는 상이한 레퍼런스 픽처*를 가지거나 상이한 MV 수를 갖는다. 3. P와 Q는 모두 하나의 mv를 가지고, x 또는 y-dir에서 MV 거리 >= 반-펠(half -pel)이다. 4. P는 두 개의 서로 다른 레퍼런스 픽처를 가리키는 두 개의 MV를 가지고, P와 Q는 list 0에서 동일한 레퍼런스 픽처를 가지고, list 0 또는 list 1의 MV 쌍은 x 또는 y-dir에서 거리 >=반-펠(half-pel)을 가진다. 5. P는 두 개의 서로 다른 레퍼런스 픽처를 가리키는 두 개의 MV를 갖고, P와 Q는 list 0에서 서로 다른 레퍼런스 픽처를 가지고, list 0에서 P의 MV와 list 1에서 Q의 MV는 x- 또는 y-dir에서 거리 >=반-펠(half-pel)이고 , 또는 list 1에서 P의 MV와 list 0에서 Q의 MV는 x- 또는 y-dir에서 거리 >= 반-펠(half-pel)을 가진다. 6. P와 Q 모두 동일한 레퍼런스 픽처를 가리키는 두 개의 MV를 가지고 다음 두 가지 조건이 모두 충족된다. o list 0에서 P의 MV와 list 0에서 Q의 MV는 x- 또는 y-dir에서 거리 >=반-펠(half-pel) 또는 list 1에서 P의 MV와 list 1에서 Q의 MV x- 또는 y-dir에서 거리가 >=반-펠(half-pel)이다. o list 0에서 P의 MV와 list 1에서 Q의 MV는 x- 또는 y-dir에서 거리 >=반-펠(half-pel) 또는 list 1에서 P의 MV와 list 0에서 Q의 MV x- 또는 y-dir에서 거리가 >=반-펠(half-pel)이다. *참고: 두 개의 코딩 서브록에 사용된 레퍼런스 픽처가 동일하거나 다른지 여부의 결정은 레퍼런스 픽처 list 0에 대한 인덱스 또는 레퍼런스 픽처 목록에 대한 인덱스를 사용하여 예측이 형성되는지 여부와 관계없이, 및 또한 레퍼런스 픽처 목록 내의 인덱스 위치가 다른지 여부와 관계 없이 어떤 픽처가 참조되는 지에만 기초한다. |
1 |
해당 없음 |
해당 없음 |
||
그렇지 않으면 | 0 | 0 | 0 |
2.2.4.
루마에 대한 더 강력한 디블로킹 필터
제안은 경계의 일측에 있는 샘플이 큰 블록에 속할 때 이중선형 필터(bilinear filter)를 사용한다. 큰 블록에 속하는 샘플은 수직 모서리의 경우 너비 >= 32, 수평 모서리의 경우 높이>=32일 때로 정의된다.
이중 선형 필터는 다음과 같다.
i=0 ~ Sp-1에 대한 pi 및 j=0 ~ Sq-1에 대한 qi 블록 경계 샘플(pi 및 qi는 위에서 설명한 HEVC 디블로킹의 정의를 따름)은 다음과 같이 선형 보간으로 대체된다:
여기서 용어 tcPDi 및 tcPDj은 섹션 2.2.5에 기술된 위치 종속 클리핑이고, 용어 gj, fi, Middles,t, Ps 및 Qs는 아래와 같이 주어진다:
2.2.5.
루마에 대한 디블로킹 제어
디블로킹 판정 프로세스(deblocking decision process)는 이 서브 섹션에 설명되어 있다.
Condition1, Condition2 및 Condition 3이 모두 참(TRUE)인 경우에만 더 강력한 루마 필터가 사용된다.
Condition 1은 "큰 블록 조건"이다. 이 조건은 P 측 및 Q 측 샘플이 각각 bSidePisLargeBlk 및 bSideQisLargeBlk 변수로 표시되는 큰 블록에 속하는지 여부를 검출한다. bSidePisLargeBlk 및 bSideQisLargeBlk는 다음과 같이 정의된다.
bSidePisLargeBlk = ((edge type is vertical and p0 belongs to CU with width >= 32) | | (edge type is horizontal and p0 belongs to CU with height >= 32))? TRUE: FALSE
bSideQisLargeBlk = ((edge type is vertical and q0 belongs to CU with width >= 32) | | (edge type is horizontal and q0 belongs to CU with height >= 32))? TRUE: FALSE
bSidePisLargeBlk 및 bSideQisLargeBlk에 기초하여, Condition 1은 다음과 같이 정의된다.
Condition1 = (bSidePisLargeBlk || bSidePisLargeBlk) ? TRUE: FALSE
다음으로, Condition 1이 참이면, Condition 2를 더 확인한다. 먼저 다음 변수가 유도된다:
dp0, dp3, dq0, dq3은 먼저 HEVC에서와 같이 유도된다.
(p측이 32보다 크거나 같으면)
dp0 = ( dp0 + Abs( p5,0 - 2 * p4,0 + p3,0 ) + 1 ) >> 1
dp3 = ( dp3 + Abs( p5,3 - 2 * p4,3 + p3,3 ) + 1 ) >> 1
(q측이 32보다 크거나 같으면)
dq0 = ( dq0 + Abs( q5,0 - 2 * q4,0 + q3,0 ) + 1 ) >> 1
dq3 = ( dq3 + Abs( q5,3 - 2 * q4,3 + q3,3 ) + 1 ) >> 1
dpq0, dpq3, dp, dq, d는 HEVC에서와 같이 유도된다.
그러면 Condition 2는 다음과 같이 정의된다.
Condition2 = (d < β) ? TRUE: FALSE
여기서, 섹션 2.1.4에 나타낸 것 처럼, d=dp0+dq0+dp3+dq3이다.
Condition1 및 Condition2가 유효한 경우 블록 중 서브블록을 사용하는 블록이 있는지 확인한다:
If(bSidePisLargeBlk)
If(mode block P == SUBBLOCKMODE)
Sp = 5
else
Sp =7
else
Sp = 3
If(bSideQisLargeBlk)
If(mode block Q == SUBBLOCKMODE)
Sq =5
else
Sq =7
else
Sq = 3
마지막으로, Condition 1 및 Condition 2가 모두 유효하면, 제안하는 디블로킹 방법은 Condition 3(큰 블록 강력한 필터 조건)을 확인하며, 이는 다음과 같이 정의된다.
Condition3 StrongFilterCondition에서, 다음 변수가 유도된다:
dpq는 HEVC에서와 같이 유도된다.
HEVC에서 유도된 SP3 = Abs(p3-p0),
(p측이 32보다 크거나 같으면)
if(Sp==5)
sp3 = ( sp3 + Abs( p5 - p3 ) + 1) >> 1
else
sp3 = ( sp3 + Abs( p7 - p3 ) + 1) >> 1
sq3 = Abs( q0 - q3 ), HEVC에서와 같이 유도됨
(q측이 32보다 크거나 같으면)
If(Sq==5)
sq3 = ( sq3 + Abs( q5 - q3 ) + 1) >> 1
else
sq3 = ( sq3 + Abs( q7 - q3 ) + 1) >> 1
HEVC 유도에서와 같이, StrongFilterCondition = (dpq는 ( β >> 2 )보다 작고, sp3 + sq3은 ( 3*β >> 5 )보다 작고, Abs( p0 - q0 )는 ( 5 * tC + 1 )>> 1) 보다 작다. ) 참(TRUE): 거짓(FALSE)
도 6은 루마 디블로킹 필터링 프로세스의 흐름도를 도시한다.
2.2.6.
크로마를 위한 강력한 디블로킹 필터
크로마에 대해 다음과 같은 강력한 디블로킹 필터가 정의된다:
p2' = (3*p3+2*p2+p1+p0+q0+4) >> 3
p1' = (2*p3+p2+2*p1+p0+q0+q1+4) >> 3
p0'= (p3+p2+p1+2*p0+q0+q1+q2+4) >> 3
제안하는 크로마 필터는 4x4 크로마 샘플 그리드에서 디블로킹을 수행한다.
2.2.7.
크로마에 대한 디블로킹 제어
위의 크로마 필터는 8x8 크로마 샘플 그리드에서 디블로킹을 수행한다. 크로마 강력 필터(chroma strong filter)는 블록 경계의 양측에 사용된다. 여기서, 크로마 필터는 크로마 가장자리의 양측이 8(크로마 샘플 유닛) 이상일 때 선택되고, 다음 세 가지 조건으로 판정이 충족된다. 첫 번째는 큰 블록뿐만 아니라 경계 강도를 판정하기 위한 것이다. 두 번째와 세 번째는 기본적으로 HEVC 루마 판정과 동일하고, 각각 껴기/끄기(on/off) 판정과 강력 필터(strong filter) 판정이다.
도 7은 크로마 디블로킹 필터링 프로세스의 흐름도를 도시한다.
2.2.8.
위치 종속 클리핑
제안은 또한 경계에서 7, 5 및 3 샘플을 수정하는 강력하고 긴 필터를 포함하는 루마 필터링 프로세스의 출력 샘플에 적용되는 위치 종속 클리핑 tcPD를 도입한다. 양자화 오차 분포(quantization error distribution)를 가정하면, 양자화 잡음이 높을 것으로 예상되므로 실제 샘플 값에서 재구성된 샘플 값의 편차가 더 클 것으로 예상되는 샘플에 대해 클리핑 값을 증가시키는 것을 제안한다.
제안된 비대칭 필터로 필터링된 각 P 또는 Q 경계에 대해, 섹션 2.2에 설명된 의사 판정 프로세스의 결과에 따라 디코더에 부가 정보로 제공되는 Tc7 및 Tc3 테이블에서 위치 종속 임계값 테이블이 선택된다.
Tc7 = { 6, 5, 4, 3, 2, 1, 1};
Tc3 = { 6, 4, 2 };
tcPD = (SP == 3) ? Tc3 : Tc7;
tcQD = (SQ == 3) ? Tc3 : Tc7;
짧은 대칭 필터로 필터링되는 P 또는 Q 경계의 경우 더 낮은 크기의 위치 종속 임계값이 적용된다:
Tc3 = { 3, 2, 1 };
임계값을 정의한 후, 필터링된 p'i 및 q'i 샘플 값은 tcP 및 tcQ 클리핑 값에 따라 클리핑된다:
p''
i
= clip3(p'
i
+ tcP
i
, p'
i
- tcP
i
, p'
i
);
q''
j
= clip3(q'
j
+ tcQ
j
, q'
j
- tcQ
j
, q'
j
);
여기서 p'i 및 q'i는 필터링된 샘플 값이고, p''i 및 q''j는 클리핑 후 출력 샘플 값이고 tcPi tcPi는 VVC tc 파라미터 및 tcPD 및 tcQD에서 유도된 클리핑 임계값이다. 용어 clip3은 VVC에 지정된 대로 클리핑 함수이다.
2.2.9.
서브블록 디블로킹 조정(Sub-block deblocking adjustment)
긴 필터와 서브블록 디블로킹을 모두 사용하여 병렬 친화적인 디블로킹을 활성화하기 위해 긴 필터(long filter)는 긴 필터에 대한 루마 제어에 표시된 대로 서브블록 디블로킹 (아핀 또는 ATMVP)을 사용하는 측면 상의 많아야 5 개의 샘플을 수정하도록 제한된다. 또한, CU 또는 암시적 TU 경계에 가까운 8x8 그리드의 서브블록 경계가 각 측면에서 최대 두 개의 샘플을 수정하도록 제한되도록 서브블록 디블로킹이 조정된다.
다음은 CU 경계와 정렬되지 않은 서브블록 경계에 적용된다.
If(mode block Q == SUBBLOCKMODE && edge!=0){
if (!(implicitTU && (edge == (64 / 4))))
if (edge == 2 || edge == (orthogonalLength - 2) || edge == (56 / 4) || edge == (72 / 4))
Sp = Sq = 2;
else
Sp = Sq = 3;
else
Sp = Sq = bSideQisLargeBlk? 5:3
}
0과 같은 가장자리가 CU 경계에 대응하는 경우, 2와 같거나 orthogonalLength-2와 같은 가장자리는 CU 경계 등의 서브블록 경계 8개 샘플에 대응한다. TU의 암시적 분할이 사용되는 경우 암시적 TU는 참이다. 도 8은 TU 경계 및 서브 PU 경계에 대한 결정 프로세스의 흐름도를 나타낸다.
수평 경계의 필터링은 수평 경계가 CTU 경계와 정렬될 때, 루마의 경우 Sp=3, 크로마의 경우 Sp=1 및 Sq=1로 제한된다.
2.2.10.
모션의 더 작은 차이에 적응된 디블로킹 판정(Deblocking decision adapted to smaller difference in motion)
HEVC는 경계의 각 측면에 있는 블록 사이의 적어도 하나의 모션 벡터 컴포넌트의 차이가 1 샘플의 임계값 이상인 경우 예측 유닛 경계의 디블로킹을 가능하게 한다. VTM6에서, 모션 벡터의 차이가 작은 예측 유닛 간 경계에서 발생하는 블로킹 아티팩트도 제거할 수 있도록 1/2 루마 샘플의 임계값이 도입되었다.
2.3.
결합된 인터 및 인트라 예측(Combined inter and intra prediction)(CIIP)
VTM6에서, CU가 병합 모드로 코딩될 때, CU에 6네 개 이상의 루마 샘플이 포함되어 있고(즉, CU 너비 곱하기 CU 높이가 64보다 크거나 같은 경우), CU 너비와 CU 높이가 모두 128 루마 샘플보다 작은 경우, 결합된 인터/인트라 예측(CIIP) 모드가 현재 CU에 적용되는지 여부를 나타내기 위해 추가 플래그가 시그널링된다. 이름에서 알 수 있듯이, CIIP 예측은 인터 예측 신호와 인트라 예측 신호를 결합한다. CIIP 모드 Pinter의 인터 예측 신호는 일반 병합 모드에 적용된 동일한 인터 예측 프로세스를 사용하여 유도되고; 인트라 예측 신호 Pintra는 플라나 모드를 사용한 정규 인트라 예측 프로세스에 따라 유도된다. 그 다음, 가중 평균을 사용하여 인트라 및 인터 예측 신호를 결합하며, 여기서 가중치 값은 상단 및 왼측 주변 블록의 코딩 모드에 따라 다음과 같이 계산된다:
상단 이웃이 사용 가능하고 인트라 코딩된 경우, isIntraTop을 1로 설정하고, 그렇지 않으면, isIntraTop을 0으로 설정한다;
왼측 이웃이 사용 가능하고 인트라 코딩된 경우, isIntraLeft를 1로 설정하고 그렇지 않으면, isIntraLeft를 0으로 설정한다;
(isIntraLeft + isIntraLeft)가 2와 같으면 wt는 3과 동일하게 설정된다;
그렇지 않고, (isIntraLeft + isIntraLeft)가 1과 같으면, wt는 2로 설정된다;
그렇지 않으면, wt를 1로 설정한다.
CIIP 예측은 다음과 같이 구성된다:
2.4.
VTM-6.0의 크로마 QP 테이블 디자인
일부 실시예에서, 크로마 QP 테이블이 사용된다. 일부 실시예에서, 신호 메커니즘은 크로마 QP 테이블에 사용되고, 이는 인코더에 SDR 및 HDR 콘텐츠에 대한 테이블을 최적화할 기회를 유연하게 제공할 수 있게 한다. Cb 및 Cr 컴포넌트에 대해 별도로 테이블 시그널링을 지원한다. 제안된 메커니즘은 크로마 QP 테이블을 조각별 선형 함수로 시그널링 한다.
2.5.
트랜스폼 스킵(Transform Skip)(TS)
HEVC에서와 같이, 블록의 잔차(residual)는 변형 스킵 모드로 코딩 될 수 있다. 신택스 코딩(syntax coding)의 중복을 방지하려면, 변현 스킵 플래그(transform skip flag)는 CU 레벨 AMT 플래그가 0이 아닐 때 시그널링 하지 않는다. 트랜스폼 스킵(transform skip)에 대한 블록 크기 제한은 JEM4의 MTS와 동일하고, 이는 블록 너비와 높이가 32미만일 때 트랜스폼 스킵이 CU에 적용가능하다는 것을 나타낸다. 현재 CU에 대해 LFNST 또는 MIP가 활성화되면 암시적 MTS 트랜스폼이 DCT2로 설정된다. 또한, MTS가 인터 코딩된 블록에 대해 활성화된 경우에도 암시적 MTS가 활성화될 수 있다.
또한, 트랜스폼 스킵 블록의 경우 최소 허용 양자화 파라미터(QP)는 6*(internalBitDepth - inputBitDepth) + 4로 정의된다.
2.6.
크로마 잔차의 공동 코딩(Joint coding of chroma residuals)(JCCR)
일부 실시예에서, 크로마 잔차는 공동으로 코딩된다. 공동 크로마(joint chroma) 코딩 모드의 사용(활성화)은 TU 레벨 플래그 tu_joint_cbcr_residual_flag에 의해 표시되고 선택된 모드는 크로마 CBF에 의해 암시적으로 표시된다. 플래그 tu_joint_cbcr_residual_flag는 TU에 대한 크로마 CBF 중 하나 또는 둘 모두가 1인 경우 존재한다. PPS 및 슬라이스 헤더에서, 크로마 QP 오프셋 값은 일반 크로마 잔차 코딩 모드에 대해 시그널링된 일반적인 크로마 QP 오프셋 값과 구별하기 위해 공동 크로마 잔차 코딩 모드에 대해 시그널링된다. 이러한 크로마 QP 오프셋 값은 공동 크로마 잔차 코딩 모드를 사용하여 코딩된 블록에 대한 크로마 QP 값을 유도하는 데 사용된다. 대응하는 공동 크로마 코딩 모드(표 3의 모드 2)가 TU에서 활성화되면, 이 크로마 QP 오프셋은 대응하는 TU의 양자화 및 디코딩 동안 적용된 루마 유도 크로마 QP에 추가된다. 다른 모드(표 3의 모드 1 및 3)의 경우, 크로마 QP는 기존 Cb 또는 Cr 블록과 동일한 방식으로 유도된다. 전송된 트랜스폼 블록에서 크로마 잔차(resCb 및 resCr)의 재구성 프로세스가 표 3에 나와 있다. 이 모드가 활성화되면, 하나의 단일 공동 크로마 잔차 블록(표 3의 resJointC[x][y])이 시그널링되고, 및 Cb에 대한 잔차 블록(resCb) 및 Cr에 대한 잔차 블록(resCr)은 슬라이스 헤더에 지정된 부호 값인 tu_cbf_cb, tu_cbf_cr, CSign의 정보를 고려하여 유도된다.
인코더 측에서, 공동 크로마 컴포넌트는 다음과 같이 유도된다. 모드(위의 표에 나열됨)에 따라, resJointC{1,2}는 인코더에 의해 다음과 같이 생성된다.
resJointC[ x ][ y ] = ( resCb[ x ][ y ] + CSign * resCr[ x ][ y ] ) / 2.
resJointC[ x ][ y ] = ( 4 * resCb[ x ][ y ] + 2 * CSign * resCr[ x ][ y ] ) / 5.
resJointC[ x ][ y ] = ( 4 * resCr[ x ][ y ] + 2 * CSign * resCb[ x ][ y ] ) / 5.
tu_cbf_cb | tu_cbf_cr | Cb 및 Cr 잔차의 재구성 | 모드 |
1 | 0 | resCb[ x ][ y ] = resJointC[ x ][ y ] resCr[ x ][ y ] = ( CSign * resJointC[ x ][ y ] ) >> 1 |
1 |
1 | 1 | resCb[ x ][ y ] = resJointC[ x ][ y ] resCr[ x ][ y ] = CSign * resJointC[ x ][ y ] |
2 |
0 | 1 | resCb[ x ][ y ] = ( CSign * resJointC[ x ][ y ] ) >> 1 resCr[ x ][ y ] = resJointC[ x ][ y ] |
3 |
다른 QP가 위의 세 가지 모드에서 활용된다. 모드 2의 경우, JCCR 코딩된 블록용 PPS에서 시그널링된 QP 오프셋이 적용되는 반면, 다른 두 모드의 경우 적용되지 않고 대신 JCCR 코딩되지 않은 블록용 PPS에서 시그널링된 QP 오프셋이 적용된다.
대응하는 사양은 다음과 같다:
8.7.1
양자화 파라미터에 대한 유도 프로세스
변수 QpY는 다음과 같이 유도된다:
QpY=( ( qPY_PRED + CuQpDeltaVal + 64 + 2 * QpBdOffsetY )%( 64 + QpBdOffsetY ) ) - QpBdOffsetY (8-933)
루마 양자화 파라미터 Qp'Y는 다음과 같이 유도된다:
Qp'Y = QpY + QpBdOffsetY
(8-934)
ChromaArrayType이 0이 아니고 treeType이 SINGLE_TREE 또는 DUAL_TREE_CHROMA와 같으면 다음이 적용된다:
-
treeType이 DUAL_TREE_CHROMA와 같을 때, 변수 QpY는 루마 위치( xCb + cbWidth / 2, yCb + cbHeight / 2 )를 커버하는 루마 코딩 유닛의 루마 양자화 파라미터 QpY와 동일하게 설정된다.
-
변수 qPCb, qPCr 및 qPCbCr은 다음과 같이 유도된다:
qPiChroma = Clip3( -QpBdOffsetC, 63, QpY )
(8-935)
qPiCb = ChromaQpTable[ 0 ][ qPiChroma ]
(8-936)
qPiCr = ChromaQpTable[ 1 ][ qPiChroma ]
(8-937)
qPiCbCr = ChromaQpTable[ 2 ][ qPiChroma ]
(8-938)
-
Cb 및 Cr 컴포넌트, Qp'Cb 및 Qp'Cr, 공동 Cb-Cr 코딩 Qp'CbCr에 대한 크로마 양자화 파라미터는 다음과 같이 유도된다:
Qp'Cb=Clip3( -QpBdOffsetC, 63, qPCb + pps_cb_qp_offset + slice_cb_qp_offset +CuQpOffsetCb )
+ QpBdOffsetC
(8-939)
Qp'Cr = Clip3( -QpBdOffsetC, 63, qPCr + pps_cr_qp_offset + slice_cr_qp_offset +CuQpOffsetCr )
+ QpBdOffsetC
(8-940)
Qp'CbCr = Clip3( -QpBdOffsetC, 63, qPCbCr + pps_cbcr_qp_offset + slice_cbcr_qp_offset +CuQpOffsetCbCr ) + QpBdOffsetC
(8-941)
8.7.3
트랜스폼 계수를 위한 스케일링 프로세스
이 프로세스에 대한 입력은 다음과 같다:
-
현재 픽처의 왼쪽 상단 루마 샘플에 상대적인 현재 루마 변환 블록의 왼쪽 상단 샘플을 지정하는 루마 위치( xTbY, yTbY ),
-
트랜스폼 블록 폭(width)을 지정하는 변수 nTbW,
-
트랜스폼 블록 높이를 지정하는 변수 nTbH,
-
현재 블록의 컬러 컴포넌트를 지정하는 변수 cIdx,
-
현재 컬러 컴포넌트의 비트 심도를 지정하는 변수 bitDepth.
이 프로세스의 출력은 요소 d[ x ][ y ]를 갖는 스케일 된 트랜스폼 계수의 (nTbW) x(nTbH) 어레이 d이다.
양자화 파라미터 qP는 다음과 같이 유도된다:
-
cIdx가 0이고 transform_skip_flag[ xTbY ][ yTbY ]가 0이면 다음이 적용된다:
qP = Qp'Y
(8-950)
-
그렇지 않고, cIdx가 0이면(그리고 transform_skip_flag[ xTbY ][ yTbY ]가 1이면), 다음이 적용된다:
qP = Max( QpPrimeTsMin, Qp'Y )
(8-951)
-
그렇지 않으면, TucresMode [xTBy] [YTBy] 가 2와 같으면 다음이 적용된다:
qP = Qp'CbCr
(8-952)
-
그렇지 않으면, cnt가 4이면, 다음이 적용된다:
qP = Qp'Cb
(8-953)
-
그렇지 않으면(cIdx가 0이 아님), 다음이 적용된다:
qP = Qp'Cr
(8-954)
2.7.
크로스 컴포넌트 적응형 루프 필터(CC-ALF)
도 14a는 다른 루프 필터에 대한 CC-ALF의 배치를 도시한다. CC-ALF는 다음과 같이 표현되는, 각 크로마 컴포넌트에 대한 루마 채널에 선형 다이아몬드 모양 필터(도 14b)를 적용하여 동작한다
여기서,
(x,y)는 정제되는 크로마 컴포넌트 i 위치이다.
(xC,yC)는 (x,y)에 기초하는 루마 위치이다.
Si는 크로마 컴포넌트 i에 대한 루마의 필터 지원이다.
ci(x0,y0)는 필터 계수를 나타낸다.
ci(x0,y0)는 필터 계수를 나타낸다.CC-ALF 프로세스의 주요 특징은 다음을 포함한다:
- 지지 영역이 중심이 되는, 루마 위치 (xc,yc)는 루마 평면과 크로마 평면 사이의 공간 스케일링 계수에 기초하여 계산된다.
- 모든 필터 계수는 APS에서 전송되고 8비트 동적 범위(dynamic range)를 갖는다.
- APS는 슬라이스 헤더에서 참조될 수 있다.
- 슬라이스의 각 크로마 컴포넌트에 사용되는 CC-ALF 계수도 시간적 서브계층(temporal sublayer)에 대응하는 버퍼에 저장된다. 이러한 시간적 서브계층 필터 계수 세트의 재사용은 슬라이스 레벨 플래그를 사용하여 촉진된다.
- CC-ALF 필터의 적용은 가변 블록 크기에서 제어되고 샘플의 각 블록에 대해 수신된 컨텍스트 코딩 플래그에 의해 시그널링 된다. CC-ALF 활성화 플래그와 함께 블록 크기는 각 크로마 컴포넌트에 대한 슬라이스 레벨에서 수신된다.
- 수평 가상 경계에 대한 경계 패딩은 반복을 사용한다. 나머지 경계에는 일반 ALF와 동일한 유형의 패딩이 사용된다.
3.
기존 구현의 단점
DMVR 및 BIO는 모션 벡터를 정제하는 동안 원래 신호를 포함하지 않으므로 부정확한 모션 정보로 블록을 코딩할 수 있다. 또한, DMVR과 BIO는 모션 정제 후에 분수 모션 벡터를 사용하는 경우가 있지만 화면 비디오는 일반적으로 정수 모션 벡터를 사용하므로 현재 모션 정보가 더 정확하지 않고 코딩 성능이 저하된다.
1.
크로마 QP 테이블과 크로마 디블로킹 사이의 상호작용에 문제가 있을 수 있고, 예를 들어 크로마 QP 테이블은 개별 QP에 적용되어야 하지만 QP의 가중치 합은 적용되지 않는다.
2.
루마 디블로킹 필터링 프로세스의 논리는 하드웨어 설계에 복잡하다.
3.
경계 강도 유도의 논리는 소프트웨어와 하드웨어 설계 모두에 너무 복잡하다.
4.
BS 판정 프로세스에서, JCCR은 JCCT가 적용되지 않고 코딩된 블록과 별도로 처리된다. 그러나, JCCR은 잔차를 코딩하는 특별한 방법일 뿐이다. 따라서, 이러한 설계는 명확한 이점 없이 추가 복잡성을 가져올 수 있다.
5.
크로마 가장자리 판정에서, QpQ 및 QpP는 각각 샘플 q0,0 및 p0,0을 포함하는 코딩 블록을 포함하는 코딩 유닛의 QpY 값과 동일하게 설정된다. 그러나, 양자화/역양자화 프로세스에서, 크로마 샘플에 대한 QP는 현재 크로마 CU의 중심 위치의 대응하는 루마 샘플을 커버하는 루마 블록의 QP로부터 유도된다. 이중 트리(dual tree)가 활성화되면 루마 블록의 다른 위치로 인해 QP가 달라질 수 있다. 따라서, 크로마 디블로킹 프로세스에서, 잘못된 QP가 필터 판정에 사용될 수 있다. 이러한 정렬 불량으로 인해 시각적 아티팩트가 발생할 수 있다. 예는 도 9a-b에 나타낸다. 도 9a는 루마 블록에 대한 대응하는 CTB 파티셔닝을 나타내고, 도 9b는 이중 트리 하에서의 크로마 CTB 파티셔닝을 나타낸다. CUc1로 표시된 크로마 블록에 대한 QP를 결정할 때 CUc1의 중심 위치가 먼저 유도된다. 그런 다음 CUc1의 중심 위치의 대응하는 루마 샘플이 식별되고 대응하는 루마 샘플, 즉 CUY3를 커버하는 루마 CU와 연관된 루마 QP가 CUc1에 대한 QP를 유도하기 위해 그때 사용된다. 그러나, 묘사된 세 개의 샘플(실선 원 포함)에 대한 필터 판정을 내릴 때, 대응하는 세 개의 샘플을 포함하는 CU의 QP가 선택된다. 따라서,제1, 제2 및 제3 크로마 샘플(도 9(b) 참조)에 대해, 각각 CUY2, CUY3, CUY4의 QP가 활용된다. 즉, 동일한 CU의 크로마 샘플은 잘못된 판정을 초래할 수 있는 필터 판정을 위해 서로 다른 QP를 사용할 수 있다.
6.
다른 픽처 레벨 QP 오프셋(즉, pps_joint_cbcr_qp_offset)이 JCCR 코딩된 블록에 적용되며, 이는 비-JCCR 코딩된 블록에 적용된 Cb/Cr(예를 들어, pps_cb_qp_offset 및 pps_cr_qp_offset)에 대한 픽처 레벨 오프셋과 상이하다. 그러나, 크로마 디블로킹 필터링 판정 프로세스에서, JCCR이 아닌 코딩된 블록에 대한 오프셋만 활용된다. 코딩된 모드를 고려하지 않으면 잘못된 필터 판정이 발생할 수 있다.
7.
TS 및 비-TS 코딩된 블록은 역양자화 프로세스에서 서로 다른 QP를 사용하며, 이는 디블로킹 프로세스에서도 고려될 수 있다.
8.
상이한 모드를 갖는 JCCR 코딩된 블록에 대한 스케일링 프로세스(양자화/역양자화)에서 상이한 QP가 사용된다. 그러한 디자인은 일관성이 없다.
9.
Cb/Cr에 대한 크로마 디블로킹은 병렬 설계를 위해 해결되지 않을 수 있다.
4.
예시적인 기술 및 실시예
아래 나열된 세부 기술은 일반적인 개념을 설명하기 위한 예로 고려되어야 한다. 이러한 실시예는 좁은 방법으로 해석되어서는 안 된다. 또한, 이들 실시예는 임의의 방식으로 조합될 수 있다.
후술하는 방법들은 후술하는 DMVR 및 BIO 외에도 다른 디코더 모션 정보 유도 기술(decoder motion information derivation technology)에도 적용될 수 있다.
다음 예에서, MVM [i].x 및 MVM [i].y는 M(M은 P 또는 Q) 측 블록의 레퍼런스 픽처 목록 i(i는 0 또는 1임)에서 모션 벡터의 수평 및 수직 컴포넌트를 나타낸다. Abs는 입력의 절대값을 구하는 연산을 의미하며, "&&"와 "||" 논리 연산 AND 및 OR을 나타낸다. 도 10을 참조하면, P는 P 측의 샘플을 의미할 수 있고, Q는 Q 측의 샘플을 의미할 수 있다. P측 및 Q측 블록은 점선으로 표시된 블록을 의미할 수 있다.
디블로킹의 크로마 QP 관련
1.
크로마 QP 테이블이 (예를 들어, 크로마 블록 가장자리에 대한 판정 프로세스에서) 크로마 디블로킹을 제어하기 위한 파라미터를 유도하는 데 사용되는 경우, 크로마 QP 오프셋은 크로마 QP 테이블을 적용한 후에 적용될 수 있다.
a.
하나의 예에서, 크로마 QP 오프셋은 크로마 QP 테이블에 의해 출력된 값에 추가될 수 있다.
b.
대안적으로, 크로마 QP 오프셋은 크로마 QP 테이블에 대한 입력으로 고려되지 않을 수 있다.
c.
하나의 예에서, 크로마 QP 오프셋은 픽처 레벨 또는 다른 비디오 유닛 레벨(슬라이스/타일/브릭/서브픽처) 크로마 양자화 파라미터 오프셋(예를 들어, 사양에서 pps_cb_qp_offset, pps_cr_qp_offset)일 수 있다.
2.
크로마 QP 테이블의 입력에는 QP 클리핑이 적용되지 않을 수 있다.
3.
크로마 컴포넌트에 대한 디블로킹 프로세스는 각 측에 매핑된 크로마 QP(크로마 QP 테이블에 의한)에 기초될 수 있다고 제안된다.
a.
하나의 예에서, 크로마에 대한 디블로킹 파라미터(예를 들어, β 및 tC)는 각 측의 루마 QP로부터 유도된 QP에 기초될 수 있다고 제안된다.
b.
하나의 예에서, 크로마 디블로킹 파라미터는 테이블 인덱스로서 QpP를 갖는 크로마 QP 테이블 값에 의존할 수 있으며, 여기서 QpP는 P측의 루마 QP 값이다.
c.
하나의 예에서, 크로마 디블로킹 파라미터는 테이블 인덱스로서 QpQ를 갖는 크로마 QP 테이블 값에 의존할 수 있으며, 여기서 QpQ는 Q측에서의 루마 QP 값이다.
4.
크로마 컴포넌트에 대한 디블로킹 프로세스는 크로마 블록에 대한 양자화/역양자화에 적용된 QP에 기초할 수 있음을 제안한다.
a.
하나의 예에서, 디블로킹 프로세스를 위한 QP는 역양자화에서 QP와 동일할 수 있다.
5.
디블로킹 필터 판정 프로세스에서 서로 다른 코딩 방법에 사용되는 픽처/슬라이스/타일/브릭/서브픽처 레벨 양자화 파라미터 오프셋을 고려하는 것이 제안된다.
a.
하나의 예에서, 필터 판정(예를 들어, 디블로킹 필터링 프로세스에서 크로마 가장자리 판정)을 위한 픽처/슬라이스/타일/브릭/서브픽처 레벨 양자화 파라미터 오프셋의 선택은 각각의 측에 대한 코딩된 방법에 의존할 수 있다.
b.
하나의 예에서, 크로마 블록에 대한 양자화 파라미터를 사용할 것을 요구하는 필터링 프로세스(예를 들어, 크로마 가장자리 판정 프로세스)는 블록이 JCCR을 사용하는지 여부에 따라 달라질 수 있다.
i.
대안적으로, 또한, JCCR 코딩된 블록에 적용된 픽처/슬라이스-레벨 QP 오프셋(예를 들어, pps_joint_cbcr_qp_offset)은 디블로킹 필터링 프로세스에서 더 고려될 수 있다.
ii.
하나의 예에서, Tc 및 β 설정을 결정하는 데 사용되는 cQpPicOffset은 특정 조건에서 pps_cb_qp_offset 또는 pps_cr_qp_offset 대신 pps_joint_cbcr_qp_offset으로 설정될 수 있다.
1.
하나의 예에서, P 또는 Q 측의 블록 중 하나가 JCCR을 사용하는 경우이다.
2.
하나의 예에서, P 또는 Q 측의 두 블록이 모두 JCCR을 사용하는 경우이다.
iii.
대안적으로, 또한, 필터링 프로세스는 JCCR의 모드(예를 들어, 모드가 2와 같은지 여부)에 의존할 수 있다.
6.
루마 블록의 디코딩된 정보에 액세스해야 하는 크로마 필터링 프로세스(예를 들어, 크로마 가장자리 판정 프로세스)는 역양자화/양자화 프로세스에서 크로마 QP를 유도하는 데 활용되는 동일한 루마 코딩 블록과 연관된 정보를 활용할 수 있다.
a.
하나의 예에서, 루마 블록에 대한 양자화 파라미터를 활용할 필요가 있는 크로마 필터링 프로세스(예를 들어, 크로마 가장자리 판정 프로세스)는 현재 크로마 CU의 중심 위치의 대응하는 루마 샘플을 커버하는 루마 코딩 유닛을 활용할 수 있다.
b.
예는 도 9a 내지 9b에 도시되어 있고 여기서, CUY3의 디코딩된 정보는 도 9b의 세 개의 크로마 샘플(1차, 2차 및 3차)의 필터링 판정에 사용될 수 있다.
7.
크로마 필터링 프로세스(예를 들어, 크로마 가장자리 판정 프로세스)는 크로마 블록의 스케일링 프로세스(예를 들어, 양자화/역양자화)에 적용된 양자화 파라미터에 의존할 수 있다.
a.
하나의 예에서, β 및 Tc를 유도하기 위해 사용되는 QP는 크로마 블록의 스케일링 프로세스에 적용된 QP에 의존할 수 있다.
b.
대안적으로, 또한, 크로마 블록의 스케일링 프로세스에 사용된 QP는 크로마 CU 레벨 QP 오프셋을 고려했을 수 있다.
8.
위의 글머리 기호(bullet)를 호출하는 것이 필터링될 샘플에 의존할지 여부는 P 또는 Q 측 블록에 있다.
a.
예를 들어, 현재 크로마 샘플의 대응하는 루마 샘플을 포함하는 루마 코딩 블록의 정보를 사용할지 아니면 현재 크로마 샘플을 포함하는 크로마 코딩 블록의 중심 위치의 대응하는 루마 샘플을 포함하는 루마 코딩 블록의 정보를 사용할지 여부는 블록 위치에 따라 달라질 수 있다.
i.
하나의 예에서, 현재 크로마 샘플이 Q 측의 블록에 있는 경우, 현재 크로마 샘플을 커버하는 크로마 코딩 블록의 중심 위치의 대응하는 루마 샘플을 커버하는 루마 코딩 블록의 QP 정보가 사용될 수 있다.
ii.
하나의 예에서, 현재 크로마 샘플이 P 측의 블록에 있는 경우, 크로마 샘플의 대응하는 루마 샘플을 커버하는 루마 코딩 블록의 QP 정보가 사용될 수 있다.
9.
디블로킹에 사용되는 크로마 QP는 대응하는 트랜스폼 블록의 정보에 의존할 수 있다.
a.
하나의 예에서, P 측에서 디블로킹을 위한 크로마 QP는 P 측에서 트랜스폼 블록의 모드에 의존할 수 있다.
i.
하나의 예에서, P 측에서의 디블로킹을 위한 크로마 QP는 P 측에서의 트랜스폼 블록이 적용된 JCCR로 코딩되는지 여부에 의존할 수 있다.
ii.
하나의 예에서, P 측에서 디블로킹을 위한 크로마 QP는 P 측에서 트랜스폼 블록이 joint_cb_cr 모드로 코딩되고 JCCR의 모드가 2와 동일한지에 의존할 수 있다.
b.
하나의 예에서, Q 측에서 디블로킹을 위한 크로마 QP는 Q 측에서 트랜스폼 블록의 모드에 의존할 수 있다.
i.
하나의 예에서, Q-측에서의 디블로킹을 위한 크로마 QP는 Q-측의 트랜스폼 블록이 적용된 JCCR로 코딩되는지 여부에 의존할 수 있다.
ii.
하나의 예에서, Q 측에서의 디블로킹을 위한 크로마 QP는 Q 측에서의 트랜스폼 블록이 적용된 JCCR로 코딩되고 JCCR의 모드가 2와 동일한지에 의존할 수 있다.
10.
크로마 QP의 시그널링은 코딩 유닛일 수 있다.
a.
하나의 예에서, 코딩 유닛 크기가 최대 트랜스폼 블록 크기, 즉 maxTB보다 큰 경우, 크로마 QP는 CU 레벨로 시그널링될 수 있다. 대안적으로, TU 레벨로 시그널링될 수 있다.
b.
하나의 예에서, 코딩 유닛 크기가 VPDU의 크기보다 큰 경우, 크로마 QP는 CU 레벨에서 시그널링될 수 있다. 대안적으로, TU 레벨로 시그널링될 수 있다.
11.
블록이 joint_cb_cr 모드인지 여부는 코딩 유닛 레벨에서 지시될 수 있다.
a.
하나의 예에서, 트랜스폼 블록이 joint_cb_cr 모드인지 여부는 트랜스폼 블록을 포함하는 코딩 유닛의 정보를 상속할 수 있다.
12.
디블로킹에 사용되는 크로마 QP는 스케일링 프로세스에 사용되는 크로마 QP에서 비트 심도로 인한 QP 오프셋을 뺀 값에 따라 달라질 수 있다.
a.
하나의 예에서, P 측에서 디블로킹에 사용되는 크로마 QP는 스케일링 프로세스에 사용되는 JCCR 크로마 QP, 즉 Qp'CbCr에서 TuCResMode[ xTb ][ yTb ]가 2와 같을 때 QpBdOffsetC를 뺀 값으로 설정되고, 여기서 (xTb, yTb) P 측의 첫 번째 샘플, 즉 p0,0을 포함하는 트랜스폼 블로킹을 나타낸다.
b.
하나의 예에서, P 측에서 디블로킹에 사용되는 크로마 QP는 스케일링 프로세스에 사용되는 Cb 크로마 QP, 즉 Qp'Cb에서 TuCResMode[ xTb ][ yTb ]가 2와 같을 때 QpBdOffsetC를 뺀 값으로 설정되고, 여기서 (xTb, yTb) P 측의 첫 번째 샘플, 즉 p0,0을 포함하는 트랜스폼 블로킹을 나타낸다.
c.
하나의 예에서, P 측에서 디블로킹에 사용되는 크로마 QP는 스케일링 프로세스에 사용되는 Cr 크로마 QP, 즉 Qp'Cr에서 TuCResMode[ xTb ][ yTb ]가 2와 같을 때 QpBdOffsetC를 뺀 값으로 설정되고, 여기서 (xTb, yTb) P 측의 첫 번째 샘플, 즉 p0,0을 포함하는 트랜스폼 블로킹을 나타낸다.
d.
하나의 예에서, Q 측에서 디블로킹에 사용되는 크로마 QP는 스케일링 프로세스에 사용되는 JCCR 크로마 QP, 즉 Qp'CbCr에서 TuCResMode[ xTb ][ yTb ]가 2와 같을 때 QpBdOffsetC를 뺀 값으로 설정되고, 여기서 (xTb, yTb) Q 측의 마지막 샘플, 즉 p0,0을 포함하는 트랜스폼 블로킹을 나타낸다.
e.
하나의 예에서, Q 측에서 디블로킹에 사용되는 크로마 QP는 스케일링 프로세스에 사용되는 Cb 크로마 QP, 즉 Qp'Cb에서 TuCResMode[ xTb ][ yTb ]가 2와 같을 때 QpBdOffsetC를 뺀 값과 동일하게 설정되고, 여기서 (xTb, yTb) Q 측의 마지막 샘플, 즉 q0,0을 포함하는 트랜스폼 블로킹을 나타낸다.
13.
하나의 예에서, Q 측에서 디블로킹에 사용되는 크로마 QP는 스케일링 프로세스에 사용되는 Cr 크로마 QP, 즉 Qp'Cr에서 TuCResMode[ xTb ][ yTb ]가 2와 같을 때 QpBdOffsetC를 뺀 값과 동일하게 설정되고, 여기서 (xTb, yTb) Q 측의 마지막 샘플, 즉 q0,0을 포함하는 트랜스폼 블로킹을 나타낸다.
QP 설정에 관하여
14.
슬라이스/타일/브릭/서브픽처 레벨에서 블록 레벨 크로마 QP 오프셋(예를 들어, slice_cu_chroma_qp_offset_enabled_flag)을 활성화하는 표시를 시그널링하는 것이 제안된다.
a.
대안적으로, 그러한 표시의 시그널링은 조건부로 시그널링될 수 있다.
i.
하나의 예에서, JCCR 활성화 플래그의 조건하에 시그널링될 수 있다.
ii.
하나의 예에서, 픽처 레벨에서 블록 레벨 크로마 QP 오프셋 활성화 플래그의 조건 하에서 시그널링될 수 있다.
iii.
대안적으로, 그러한 표시가 대신 유도될 수 있다.
b.
하나의 예에서, slice_cu_chroma_qp_offset_enabled_flag는 크로마 QP의 PPS 플래그가 오프셋(예를 들어, slice_cu_chroma_qp_offset_enabled_flag)은 참이다.
c.
하나의 예에서, slice_cu_chroma_qp_offset_enabled_flag는 크로마 QP의 PPS 플래그가 오프셋(예를 들어, slice_cu_chroma_qp_offset_enabled_flag)은 거짓이다.
d.
하나의 예에서, 블록에 대한 크로마 QP 오프셋을 사용할지 여부는 PPS 레벨 및/또는 슬라이스 레벨에서 크로마 QP 오프셋의 플래그에 기초할 수 있다.
15.
상이한 모드의 JCCR 코딩 블록에 대한 스케일링 프로세스(양자화/역양자화)에서 동일한 QP 유도 방법이 사용된다.
a.
하나의 예에서, 모드 1 및 3을 갖는 JCCR의 경우, QP는 픽처/슬라이스 레벨(예를 들어, pps_cbcr_qp_offset, slice_cbcr_qp_offset)에서 시그널링된 QP 오프셋에 의존한다.
필터링 절차
16.
제1 컬러 컴포넌트를 제외한 모든 컬러 컴포넌트에 대한 디블로킹은 제1 컬러 컴포넌트에 대한 디블로킹 프로세스를 따를 수 있다.
a.
하나의 예에서, 컬러 포맷이 4:4:4인 경우, 제2 및 제3 컴포넌트에 대한 디블로킹 프로세스는 제1 컴포넌트에 대한 디블로킹 프로세스를 따를 수 있다.
b.
하나의 예에서, RGB 컬러 공간에서 컬러 포맷이 4:4:4인 경우, 제2 및 제3 컴포넌트에 대한 디블로킹 프로세스는 제1 컴포넌트에 대한 디블로킹 프로세스를 따를 수 있다.
c.
하나의 예에서, 컬러 포맷이 4:2:2인 경우, 제2 및 제3 컴포넌트에 대한 수직 디블로킹 프로세스는 제1 컴포넌트에 대한 수직 디블로킹 프로세스를 따를 수 있다.
d.
위의 예에서, 디블로킹 프로세스는 디블로킹 판정 프로세스 및/또는 디블로킹 필터링 프로세스를 참조할 수 있다.
17.
디블로킹 필터 프로세스에서 사용되는 그레디언트를 계산하는 방법은 코딩된 모드 정보 및/또는 양자화 파라미터에 따라 달라질 수 있다.
a.
하나의 예에서, 그레디언트 계산은 그 측에서의 샘플들이 무손실 코딩되지 않은 측의 그레디언트만을 고려할 수 있다.
b.
하나의 예에서, 양측이 무손실 코딩되거나 거의 무손실 코딩된 경우(예를 들어, 4와 동일한 양자화 파라미터), 그레디언트는 직접 0으로 설정될 수 있다.
i.
대안적으로, 양측이 무손실 코딩되거나 거의 무손실 코딩되는 경우(예를 들어, 4와 동일한 양자화 파라미터), 경계 강도(예를 들어, BS)는 0으로 설정될 수 있다.
c.
하나의 예에서, P 측의 샘플이 무손실 코딩되고 Q 측의 샘플이 손실 코딩된 경우, 디블로킹 켜기/끄기 판정 및/또는 강력한 필터 켜기/끄기 판정에 사용되는 그레디언트는 Q 측에서 샘플의 그레디언트만 포함할 수 있으며 그 반대의 경우도 마찬가지이다.
i.
대안적으로, 또한, 한 변의 그레디언트는 N으로 스케일링될 수 있다.
1.
N은 정수(예를 들어, 2)이며 다음에 따라 달라질 수 있다.
a.
동영상 콘텐츠(예를 들어, 화면 콘텐츠 또는 자연 콘텐츠)
b.
DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU(최대 코딩 유닛)/CU(코딩 유닛)/LCU 행/LCU의 그룹/TU/PU 블록/비디오 코딩 유닛에서 시그널링되는 메시지
c.
CU/PU/TU/블록/비디오 코딩 유닛의 위치
d.
가장자리를 따라 샘플을 포함하는 블록의 코딩된 모드
e.
가장자리를 따라 샘플을 포함하는 블록에 적용된 트랜스폼 행렬
f.
현재 블록 및/또는 이웃 블록의 블록 차원/블록 형태
g.
컬러 포맷 표시(예를 들어, 4:2:0, 4:4:4, RGB 또는 YUV)
h.
코딩 트리 구조(예를 들어, 이중 트리 또는 단일 트리)
i.
viii. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
j.
컬러 컴포넌트(예를 들어, Cb 또는 Cr에만 적용될 수 있음)
k.시간적 계층 ID
l.
표준의 프로파일/레벨/계층
m.
대안적으로, N은 디코더에 시그널링될 수 있다
경계 강도 유도에 관하여
18.
경계 강도 판정 프로세스에서 JCCR 코딩된 블록을 비JCCR 코딩된 블록으로 처리하는 것이 제안된다.
a.
하나의 예에서, 경계 강도(BS)의 결정은 P 및 Q 측에서 두 개의 블록에 대한 JCCR의 사용 확인과 독립적일 수 있다.
b.
하나의 예에서, 블록에 대한 경계 강도(BS)는 블록이 JCCR로 코딩되는지 여부에 관계없이 결정될 수 있다.
19.
P 측의 블록과 연관된 레퍼런스 픽처 및/또는 MV의 수를 Q 측의 블록의 레퍼런스 픽처와 비교하지 않고 경계 강도(BS)를 유도하는 것이 제안된다.
a.
하나의 예에서, 두 블록이 서로 다른 레퍼런스 픽처를 갖는 경우에도 디블로킹 필터가 비활성화될 수 있다.
b.
하나의 예에서, 디블로킹 필터는 두 개의 블록이 상이한 수의 MV를 갖는 경우에도 비활성화될 수 있다(예를 들어, 하나는 단일 예측되고 다른 하나는 이중 예측됨).
c.
하나의 예에서, P 측과 Q 측의 블록 사이의 하나 또는 모든 레퍼런스 픽처 목록에 대한 모션 벡터 차이가 임계값 Th보다 크거나 같을 때 BS의 값은 1로 설정될 수 있다.
i.
대안적으로, 또한, BS의 값은 P 측과 Q 측의 블록 사이의 하나 또는 모든 레퍼런스 픽처 목록에 대한 모션 벡터 차이가 임계값 Th보다 작거나 같을 때 0으로 설정될 수 있다.
d.
하나의 예에서, 임계값 Th보다 큰 두 블록의 모션 벡터의 차이는 (Abs(MVP[0].x - MVQ[0].x) > Th || Abs(MVP[0].y - MVQ[0].y) > Th || Abs(MVP[1].x - MVQ[1].x) > Th) || Abs(MVP[1].y - MVQ[1].y) > Th)으로 정의될 수 있다.
ii.
대안적으로, 임계값 Th보다 큰 두 블록의 모션 벡터의 차이는 (Abs(MVP[0].x - MVQ[0].x) > Th && Abs(MVP[0].y - MVQ[0].y) > Th && Abs(MVP[1].x - MVQ[1].x) > Th) && Abs(MVP[1].y - MVQ[1].y) > Th)으로 정의될 수 있다.
iii.
대안적으로, 임계값 Th보다 큰 두 블록의 모션 벡터의 차이는 (Abs(MVP[0].x - MVQ[0].x) > Th || Abs(MVP[0].y - MVQ[0].y) > Th || Abs(MVP[1].x - MVQ[1].x) > Th) || Abs(MVP[1].y - MVQ[1].y) > Th)으로 정의될 수 있다.
iv.
대안적으로, 임계값 Th보다 큰 두 블록의 모션 벡터의 차이는 (Abs(MVP[0].x - MVQ[0].x) > Th || Abs(MVP[0].y - MVQ[0].y) > Th || Abs(MVP[1].x - MVQ[1].x) > Th) || Abs(MVP[1].y - MVQ[1].y) > Th)으로 정의될 수 있다.
e.
하나의 예에서, 주어진 목록에 모션 벡터가 없는 블록은 그 목록에서 제로 모션 벡터를 갖는 것으로 취급될 수 있다.
f.
위의 예에서, Th는 정수(예를 들어, 4, 8 또는 16)이다.
g.
위의 예에서, Th는 다음에 따라 달라질 수 있다.
v.
동영상 콘텐츠(예를 들어, 화면 콘텐츠 또는 자연 콘텐츠)
vi.
DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU(최대 코딩 유닛)/CU(코딩 유닛)/LCU 행/LCU의 그룹/TU/PU 블록/비디오 코딩 유닛에서 시그널링되는 메시지
vii.
CU/PU/TU/블록/비디오 코딩 유닛의 위치
viii.
가장자리를 따라 샘플을 포함하는 블록의 코딩된 모드
ix.
가장자리를 따라 샘플을 포함하는 블록에 적용된 트랜스폼 행렬
x.
현재 블록 및/또는 이웃 블록의 블록 차원
xi.
컬러 포맷 표시(예를 들어, 4:2:0, 4:4:4, RGB 또는 YUV)
xii.
코딩 트리 구조(예를 들어, 이중 트리 또는 단일 트리)
xiii.
슬라이스/타일 그룹 유형 및/또는 픽처 유형
xiv.
컬러 컴포넌트(예를 들어, Cb 또는 Cr에만 적용될 수 있음)
xv. 시간적 계층 ID
xvi.
표준의 프로파일/레벨/계층
xvii.
대안적으로, Th는 디코더에 시그널링될 수 있다.
h.
위의 예는 특정 조건에서 적용될 수 있다.
xviii.
하나의 예에서, 조건은 blkP 및 blkQ가 인트라 모드로 코딩되지 않는다는 것이다.
xix.
하나의 예에서, 조건은 blkP이고 blkQ는 루마 컴포넌트에 대한 계수가 0이다.
xx.
하나의 예에서, 조건은 blkP 및 blkQ가 CIIP 모드로 코딩되지 않은 것이다.
xxi.
하나의 예에서, 조건은 blkP 및 blkQ가 동일한 예측 모드(예를 들어, IBC 또는 Inter)로 코딩되는 것이다.
루마 디블로킹 필터링 프로세스에 관하여
20.
디블로킹은 TS 코딩된 블록 및 비-TS 코딩된 블록에 대해 상이한 QP를 사용할 수 있다.
a.
하나의 예에서, TS에 대한 QP는 TS 코딩된 블록에 사용될 수 있는 반면 비-TS에 대한 QP는 비-TS 코딩된 블록에 사용될 수 있다.
21.
루마 필터링 프로세스(예를 들어, 루마 가장자리 판정 프로세스)는 루마 블록의 스케일링 프로세스에 적용되는 양자화 파라미터에 의존할 수 있다.
a.
하나의 예에서, beta 및 Tc를 유도하는 데 사용되는 QP는, 예를 들어 QpPrimeTsMin에 의해 표시된 바와 같이 트랜스폼 스킵의 클리핑 범위에 의존될 수 있다.
22.
큰 블록 경계와 작은 블록 경계에 대해 동일한 그레디언트 계산을 사용하는 것이 제안된다.
a.
하나의 예에서, 섹션 2.1.4에 설명된 디블로킹 필터 켜기/끄기 판정은 큰 블록 경계에도 적용될 수 있다.
i.
하나의 예에서, 판정의 임계값 beta는 큰 블록 경계에 대해 수정될 수 있다.
1.
하나의 예에서, beta는 양자화 파라미터에 의존할 수 있다.
2.
하나의 예에서, 큰 블록 경계에 대한 디블로킹 필터 켜기/끄기 판정에 사용되는 beta는 더 작은 블록 경계에 대한 beta보다 작을 수 있다.
a.
대안적으로, 하나의 예에서, 큰 블록 경계에 대한 디블로킹 필터 켜기/끄기 판정에 사용되는 beta는 작은 블록 경계에 대한 beta보다 클 수 있다.
b.
대안적으로, 하나의 예에서, 큰 블록 경계에 대한 디블로킹 필터 켜기/끄기 판정에 사용되는 beta는 더 작은 블록 경계에 대한 beta와 동일할 수 있다.
3.
하나의 예에서, beta는 정수이고 다음에 기초될 수 있다
a.
동영상 콘텐츠(예를 들어, 화면 콘텐츠 또는 자연 콘텐츠)
b.
DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU(최대 코딩 유닛)/CU(코딩 유닛)/LCU 행/LCU의 그룹/TU/PU 블록/비디오 코딩 유닛에서 시그널링되는 메시지
c.
CU/PU/TU/블록/비디오 코딩 유닛의 위치
d.
가장자리를 따라 샘플을 포함하는 블록의 코딩된 모드
e.
가장자리를 따라 샘플을 포함하는 블록에 적용된 트랜스폼 행렬
f.
현재 블록 및/또는 이웃 블록의 블록 차원
g.
iii. 현재 블록 및/또는 인접 블록들의 블록 형태
h.
컬러 포맷 표시(예를 들어, 4:2:0, 4:4:4, RGB 또는 YUV)
i.
코딩 트리 구조(예를 들어, 이중 트리 또는 단일 트리)
j.
viii. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
k.
컬러 컴포넌트(예를 들어, Cb 또는 Cr에만 적용될 수 있음)
l.
시간적 계층 ID
m.
표준의 프로파일/레벨/계층
n.
대안적으로, beta는 디코더에 시그널링될 수 있다.
스케일링 행렬(역양자화 행렬)에 관하여
23.
양자화 행렬의 특정 위치에 대한 값은 일정하게 설정될 수 있다.
a.
하나의 예에서, 위치는 (x, y)의 위치일 수 있으며, 여기서 x 및 y는 두 개의 정수 변수(예를 들어, x= y=0)이고 (x, y)는 TU/TB/PU/PB/CU/CB에 대한 좌표이다.
i.
하나의 예에서, 위치는 DC의 위치일 수 있다.
b.
하나의 예에서, 상수 값은 16일 수 있다.
c.
하나의 예에서, 이러한 위치에 대해 매트릭스 값의 시그널링이 활용되지 않을 수 있다.
24.
양자화 행렬의 일부 위치의 평균/가중 평균이 일정할 수 있다는 제약이 설정될 수 있다.
a.
하나의 예에서, 디블로킹 프로세스는 상수 값에 의존할 수 있다.
b.
하나의 예에서, 상수 값은 DPS/VPS/SPS/PPS/Slice/Picture/Tile/Brick 헤더에 표시될 수 있다.
25.
하나 또는 다수의 표시는 픽처 헤더와 연관된 픽처에서 선택될 스케일링 매트릭스를 알리기 위해 픽처 헤더에서 시그널링될 수 있다.
크로스 컴포넌트 적응형 루프 필터(CCALF) 관련
26.
CCLF는 디코더에서 일부 루프 필터링 프로세스 전에 적용될 수 있다.
a.
하나의 예에서, CCLF는 디코더에서 디블로킹 프로세스 전에 적용될 수 있다.
b.
하나의 예에서, CCLF는 디코더에서 SAO 전에 적용될 수 있다.
c.
하나의 예에서, CCLF는 디코더에서 ALF보다 먼저 적용될 수 있다.
d.
대안적으로, 상이한 필터(예를 들어, CCLF, ALF, SAO, 디블로킹 필터)의 순서는 고정되지 않을 수 있다.
i.
하나의 예에서, CCLAF의 호출은 하나의 비디오 유닛에 대한 필터링 프로세스 이전 또는 다른 비디오 유닛에 대한 필터링 프로세스 이후에 있을 수 있다.
ii.
하나의 예에서, 비디오 유닛은 CTU/CTB/슬라이스/타일/브릭/픽처/시퀀스일 수 있다.
e.
대안적으로, 상이한 필터(예를 들어, CCALF, ALF, SAO, 디블로킹 필터)의 순서의 표시는 즉석에서 시그널링되거나 유도될 수 있다.
i.
대안으로, CCLF 호출의 표시는 즉석에서 시그널링 되거나 유도될 수 있다.
f.
CCALF를 제어하는 방법에 대한 명시적(예를 들어, 인코더에서 디코더로의 시그널링) 또는 암시적(예를 들어, 인코더 및 디코더 모두에서 유도됨) 표시는 다른 컬러 컴포넌트(예를 들어, Cb 및 Cr)에 대해 분리될 수 있다.
g.
CCALF 적용 여부 및/또는 방법은 컬러 포맷(예를 들어, RGB 및 YCbCr) 및/또는 컬러 샘플링 포맷(예를 들어, 4:2:0, 4:2:2 및 4:4:4) 및/또는 또는 컬러 다운 샘플링 위치 또는 위상)
크로마 QP 오프셋 목록에 관하여
27.
크로마 QP 오프셋 목록의 시그널링 및/또는 선택은 코딩된 예측 모드/픽처 유형/슬라이스 또는 타일 또는 브릭 유형에 따라 달라질 수 있다.
h.
크로마 QP 오프셋 목록, 예를 들어 cb_qp_offset_list[ i ], cr_qp_offset_list[ i ] 및 joint_cbcr_qp_offset_list[ i ]는 코딩 모드에 따라 달라질 수 있다.
i.
하나의 예에서, 크로마 QP 오프셋 목록을 적용할지 여부 및 적용 방법은 현재 블록이 인트라 모드에서 코딩되는지 여부에 따라 달라질 수 있다.
j.
하나의 예에서, 크로마 QP 오프셋 목록을 적용할지 여부 및 적용 방법은 현재 블록이 인터 모드에서 코딩되는지 여부에 따라 달라질 수 있다.
k.
하나의 예에서, 크로마 QP 오프셋 목록을 적용할지 여부 및 적용 방법은 현재 블록이 팔레트 모드에서 코딩되는지 여부에 따라 달라질 수 있다.
l.
하나의 예에서, 크로마 QP 오프셋 목록을 적용할지 여부 및 적용 방법은 현재 블록이 IBC 모드로 코딩되었는지 여부에 따라 달라질 수 있다.
m.
하나의 예에서, 크로마 QP 오프셋 목록을 적용할지 여부 및 적용 방법은 현재 블록이 트랜스폼 스킵 모드에서 코딩되는지 여부에 따라 달라질 수 있다.
n.
하나의 예에서, 크로마 QP 오프셋 목록을 적용할지 여부 및 적용 방법은 현재 블록이 BDPCM 모드에서 코딩되는지 여부에 따라 달라질 수 있다.
o.
하나의 예에서, 크로마 QP 오프셋 목록을 적용할지 여부 및 적용 방법은 현재 블록이 transform_quant_skip 또는 무손실 모드로 코딩되는지 여부에 따라 달라질 수 있다.
CTU 경계에서 크로마 디블로킹에 관하여
28.
디블로킹 필터 프로세스에서 활용되는 QP(예를 들어, 대응하는 루마 또는 크로마 역양자화 QP를 활용)를 선택하는 방법은 CTU/CTB/VPDU 경계에 대한 샘플의 위치에 따라 달라질 수 있다.
29.
디블로킹 필터 프로세스에서 활용되는 QP를 선택하는 방법(예를 들어, 대응하는 루마 또는 크로마 역양자화 QP 활용)은 컬러 포맷(예를 들어, RGB 및 YCbCr) 및/또는 컬러 샘플링 포맷(예를 들어, 4:2:0, 4:2:2 및 4:4:4) 및/또는 컬러 다운샘플링 위치 또는 위상)에 따라 달라질 수 있다.
30.
CTU 경계의 가장자리에 대해 디블로킹은 대응하는 블록의 루마 QP에 기초할 수 있다.
p.
하나의 예에서, CTU 경계에서의 수평 가장자리에 대해, 디블로킹은 대응하는 블록의 루마 QP에 기초할 수 있다.
i.
하나의 예에서, 디블로킹은 P측에서 대응하는 블록의 루마 QP에 기초할 수 있다.
ii.
하나의 예에서, 디블로킹은 Q 측에서 대응하는 블록의 루마 QP에 기초할 수 있다.
q.
하나의 예에서, CTU 경계에서의 수직 가장자리에 대해, 디블로킹은 대응하는 블록의 루마 QP에 기초할 수 있다.
i.
하나의 예에서, 디블로킹은 P측에서 대응하는 블록의 루마 QP에 기초할 수 있다.
ii.
하나의 예에서, 디블로킹은 Q 측에서 대응하는 블록의 루마 QP에 기초할 수 있다.
r.
하나의 예에서, CTU 경계에서의 가장자리들에 대해, 디블로킹은 P 측에서의 루마 QP 및 Q 측에서의 크로마 QP에 기초할 수 있다.
s.
하나의 예에서, CTU 경계에서의 가장자리에 대해, 디블로킹은 Q 측에서의 루마 QP 및 P 측에서의 크로마 QP에 기초할 수 있다.
t.
이 글머리 기호에서 "CTU 경계"는 상위 CTU 경계 또는 하위 CTU 경계와 같은 특정 CTU 경계를 나타낼 수 있다.
31.
CTU 경계에서의 수평 가장자리에 대해, 디블로킹은 P측에서 크로마 QP의 함수에 기초할 수 있다.
u.
하나의 예에서, 디블로킹은 P측에서 크로마 QP의 평균화 함수에 기초할 수 있다.
i.
하나의 예에서, 함수는 각각의 8 루마 샘플에 대한 크로마 QP의 평균에 기초할 수 있다.
ii.
하나의 예에서, 함수는 각각의 16 루마 샘플에 대한 크로마 QP의 평균에 기초할 수 있다.
iii.
하나의 예에서, 함수는 3두 개의 루마 샘플 각각에 대한 크로마 QP의 평균에 기초할 수 있다.
iv.
하나의 예에서, 함수는 각각의 64 루마 샘플에 대한 크로마 QP의 평균에 기초할 수 있다.
v.
하나의 예에서, 함수는 각각의 CTU에 대한 크로마 QP의 평균에 기초할 수 있다.
v.
하나의 예에서, 디블로킹은 P측에서 크로마 QP의 최대 함수에 기초할 수 있다.
i.
하나의 예에서, 함수는 각각의 8 루마 샘플에 대한 크로마 QP의 최대값에 기초할 수 있다.
ii.
하나의 예에서, 함수는 각각의 16 루마 샘플에 대한 크로마 QP의 최대값에 기초할 수 있다.
iii.
하나의 예에서, 함수는 3두 개의 루마 샘플 각각에 대한 크로마 QP의 최대값에 기초할 수 있다.
iv.
하나의 예에서, 함수는 각각의 64 루마 샘플에 대한 크로마 QP의 최대값에 기초할 수 있다.
v.
하나의 예에서, 함수는 각각의 CTU에 대한 크로마 QP의 최대값에 기초할 수 있다.
w.
하나의 예에서, 디블로킹은 P측에서 크로마 QP의 최소 함수에 기초할 수 있다.
i.
하나의 예에서, 함수는 각각의 8 루마 샘플에 대한 크로마 QP의 최소값에 기초할 수 있다.
ii.
하나의 예에서, 함수는 각각의 16 루마 샘플에 대한 크로마 QP의 최소값에 기초할 수 있다.
iii.
하나의 예에서, 함수는 각각의 3두 개의 루마 샘플에 대한 크로마 QP의 최소값에 기초할 수 있다.
iv.
하나의 예에서, 함수는 각각의 64 루마 샘플에 대한 크로마 QP의 최소값에 기초할 수 있다.
v.
하나의 예에서, 함수는 각각의 CTU에 대한 크로마 QP의 최소값에 기초할 수 있다.
x.
하나의 예에서, 디블로킹은 P측에서 크로마 QP의 서브샘플링 함수에 기초할 수 있다.
i.
하나의 예에서, 함수는 각각의 8 루마 샘플에 대한 k 번째 크로마 샘플의 크로마 QP에 기초할 수 있다.
1.
하나의 예에서, k번째 샘플은 첫 번째 샘플일 수 있다.
2.
하나의 예에서, k번째 샘플은 마지막 샘플일 수 있다.
3.
하나의 예에서, k번째 샘플은 세 번째 샘플일 수 있다.
4.
하나의 예에서, k 번째 샘플은 네 번째 샘플일 수 있다.
ii.
하나의 예에서, 함수는 각각의 16 루마 샘플에 대한 k 번째 크로마 샘플의 크로마 QP에 기초할 수 있다.
1.
하나의 예에서, k번째 샘플은 첫 번째 샘플일 수 있다.
2.
하나의 예에서, k번째 샘플은 마지막 샘플일 수 있다.
3.
하나의 예에서, k번째 샘플은 7번째 샘플일 수 있다.
4.
하나의 예에서, k번째 샘플은 8번째 샘플일 수 있다.
iii.
하나의 예에서, 함수는 각각의 3두 개의 루마 샘플에 대한 k번째 크로마 샘플의 크로마 QP에 기초할 수 있다.
1.
하나의 예에서, k번째 샘플은 첫 번째 샘플일 수 있다.
2.
하나의 예에서, k번째 샘플은 마지막 샘플일 수 있다.
3.
하나의 예에서, k번째 샘플은 15번째 샘플일 수 있다.
4.
하나의 예에서, k번째 샘플은 16번째 샘플일 수 있다.
iv.
하나의 예에서, 함수는 각각의 64 루마 샘플에 대한 k 번째 크로마 샘플의 크로마 QP에 기초할 수 있다.
1.
하나의 예에서, k번째 샘플은 첫 번째 샘플일 수 있다.
2.
하나의 예에서, k번째 샘플은 마지막 샘플일 수 있다.
3.
하나의 예에서, k번째 샘플은 31번째 샘플일 수 있다.
4.
하나의 예에서, k번째 샘플은 32번째 샘플일 수 있다.
v.
하나의 예에서, 함수는 각각의 CTU에 대한 k번째 크로마 샘플의 크로마 QP에 기초할 수 있다.
y.
대안적으로, 위의 항목들은 디블로킹 프로세스를 위해 Q-사이드에서 크로마 QP에 적용될 수 있다.
32.
크로마 컴포넌트에 대한 QP는 픽처의 왼쪽 상단에 대해 (4*m*x, 2y)에서 시작하는 길이 4*m을 갖는 크로마 행 세그먼트에 대해 동일할 수 있다는 제약이 있을 수 있고, 여기서 x 및 y는 음이 아닌 정수이고; m은 양의 정수이다.
z.
하나의 예에서, m은 1과 동일할 수 있다.
aa.
하나의 예에서, 크로마 컴포넌트에 대한 양자화 그룹의 너비는 4*m보다 작아서는 안 된다.
33.
크로마 컴포넌트에 대한 QP는 픽처의 왼쪽 상단에 대해 (2*x, 4*n*y)에서 시작하는 길이 4*n을 갖는 크로마 열 세그먼트에 대해 동일할 수 있다는 제약이 있을 수 있고, 여기서 x 및 y는 음이 아닌 정수이고; n은 양의 정수이다.
bb.
하나의 예에서, n은 1과 동일할 수 있다.
cc.
하나의 예에서, 크로마 컴포넌트에 대한 양자화 그룹의 높이는 4*n보다 작아서는 안 된다.
루마 디블로킹 필터링 프로세스에 관하여
34.
코딩 툴 X의 사용을 제어하는 제1 신택스 요소는 제2 비디오 유닛(예를 들어, SPS 또는 PPS, 또는 VPS)에서 시그널링되는 제2 신택스 요소에 따라 제1 비디오 유닛(예를 들어, 픽처 헤더)에서 시그널링될 수 있다.
a.
하나의 예에서, 제1 신택스 요소는 제2 신택스 요소가 코딩 툴 X가 활성화됨을 나타내는 경우에만 시그널링된다.
b.
하나의 예에서, X는 양방향 광학 흐름(Bi-Direction Optical Flow)(BDOF)이다.
c.
하나의 예에서, X는 예측 정제 광학 흐름(Prediction Refinement Optical Flow)(PROF)이다.
d.
하나의 예에서, X는 디코더 측 모션 벡터 정제(decoder-side Motion Vector Refinement )(DMVR)이다.
e.
하나의 예에서, 코딩 툴 X의 사용의 시그널링은 슬라이스 유형(예를 들어, P 또는 B 슬라이스; 비-I 슬라이스)의 조건 확인 하에 있을 수 있다.
루마 디블로킹 필터링 프로세스에 관하여
35.
두 개의 크로마 블록에 대한 디블로킹 필터 판정 프로세스는 1회만 호출되도록 통합될 수 있고 판정은 두 개의 크로마 블록에 적용된다.
b.
하나의 예에서, 디블로킹 필터를 수행할지 여부에 대한 판정은 Cb 및 Cr 컴포넌트에 대해 동일할 수 있다.
c.
하나의 예에서, 디블로킹 필터가 적용되는 것으로 판정되면, 더 강력한 디블로킹 필터를 수행할지 여부에 대한 판정은 Cb 및 Cr 컴포넌트에 대해 동일할 수 있다.
d.
하나의 예에서, 섹션 2.2.7에 설명된 바와 같이 디블로킹 조건 및 강력한 필터 켜짐/꺼짐 조건은 한 번만 확인될 수 있다. 다만, 양 크로마 컴포넌트의 정보를 확인하기 위해 수정될 수 있다.
i.
하나의 예에서, Cb 및 Cr 컴포넌트의 그레디언트의 평균은 Cb 및 Cr 컴포넌트 모두에 대한 상기 판정에서 사용될 수 있다.
ii.
하나의 예에서, 크로마 더 강한 필터는 Cb 및 Cr 컴포넌트 모두에 대해 강한 필터 조건이 만족되는 경우에만 수행될 수 있다.
1.
대안적으로, 하나의 예에서, 강한 필터 조건이 적어도 하나의 크로마 컴포넌트를 만족하지 않는 경우에만 크로마 약한 필터가 수행될 수 있다.
8.5.6.3.1 일반
36.
위에서 제안한 방법은 특정 조건에서 적용될 수 있다.
a.
하나의 예에서, 조건은 컬러 포맷이 4:2:0 및/또는 4:2:2이다.
i.
대안적으로, 4:4:4 컬러 포맷의 경우 두 컬러 크로마 구성 요소에 디블로킹 필터를 적용하는 방법은 현재 디자인을 따를 수 있다.
b.
DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU(최대 코딩 유닛)/CU(코딩 유닛)/LCU 행/LCU의 그룹/TU/PU 블록/비디오 코딩 유닛에서 시그널링되는 메시지
c.
한 가지 예에서 위 방법의 사용법은 다음에 따라 달라질 수 있다.
ii.
동영상 콘텐츠(예를 들어, 화면 콘텐츠 또는 자연 콘텐츠)
iii.
DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU(최대 코딩 유닛)/CU(코딩 유닛)/LCU 행/LCU의 그룹/TU/PU 블록/비디오 코딩 유닛에서 시그널링되는 메시지
iv.
CU/PU/TU/블록/비디오 코딩 유닛의 위치
a.
하나의 예에서, CTU/CTB 경계를 따라 샘플을 필터링하기 위해(예를 들어, 첫 번째 K(예를 들어, K=4/8)에서 상단/왼쪽/오른쪽/하단 경계까지), 기존 설계가 적용될 수 있다. 다른 샘플의 경우 제안된 방법(예를 들어, 항목 3/4)이 대신 적용될 수 있다.
v.
가장자리를 따라 샘플을 포함하는 블록의 코딩된 모드
vi.
가장자리를 따라 샘플을 포함하는 블록에 적용된 트랜스폼 행렬
vii.
현재 블록 및/또는 이웃 블록의 블록 차원
viii.
현재 블록 및/또는 인접 블록들의 블록 형태
ix.
컬러 포맷 표시(예를 들어, 4:2:0, 4:4:4, RGB 또는 YUV)
x.
코딩 트리 구조(예를 들어, 이중 트리 또는 단일 트리)
xi.
슬라이스/타일 그룹 유형 및/또는 픽처 유형
xii.
컬러 컴포넌트(예를 들어, Cb 또는 Cr에만 적용될 수 있음)
xiii.
시간적 계층 ID
xiv.
표준의 프로파일/레벨/계층
xv.
대안적으로, m 및/또는 n은 디코더에 시그널링될 수 있다.
5.
추가 실시예
새로 추가된 텍스트는 밑줄이 그어진 굵은 이탤릭체로 표시된다. 삭제된 텍스트는 [[]]로 표시된다.
5.1.
디블로킹에서 크로마 QP에 대한 실시예 #1
5.1.
디블로킹에서 크로마 QP에 대한 실시예 #1
8.8.3.6 한 방향에 대한 가장자리 필터링 프로세스
...
그렇지 않은 경우(cIdx가 0이 아님), cIdx에 의해 지정된 현재 코딩 유닛의 크로마 코딩 블록에 있는 가장자리에 대한 필터링 프로세스는 다음과 같은 순서화된 단계로 구성된다:
1. 변수 cQpPicOffset은 다음과 같이 유도된다:
cQpPicOffset = cIdx = = 1 ? pps_cb_qp_offset : pps_cr_qp_offset
(8-1065)
8.8.3.6.3 크로마 블록 가장자리에 대한 판정 프로세스
...
[[변수 QpQ 및 QpP는 각각 샘플 q0,0 및 p0,0을 포함하는 코딩 블록을 포함하는 코딩 유닛의 QpY 값과 동일하게 설정된다.
변수 QpC는 다음과 같이 유도된다:
[[qPi = Clip3( 0, 63, ( ( QpQ + QpP + 1 ) >> 1 ) + cQpPicOffset )
(8-1132)
QpC = ChromaQpTable[ cIdx - 1 ][ qPi ]
(8-1133)]]
qPi = ( QpQ + QpP + 1 ) >> 1
(8-1132)
QpC = ChromaQpTable[ cIdx - 1 ][ qPi ] + cQpPicOffset
(8-1133)
참고 - 변수 cQpPicOffset은 필터링된 크로마 컴포넌트가 Cb 컴포넌트인지 Cr 컴포넌트인지에 따라 pps_cb_qp_offset 또는 pps_cr_qp_offset 값에 대한 조정을 제공한다. 그러나, 픽처 내 조정의 양을 변경할 필요를 피하기 위해, 필터링 프로세스는 slice_cb_qp_offset 또는 slice_cr_qp_offset의 값에 대한 및 (cu_chroma_qp_offset_enabled_flag가 1인 경우) CuQpOffsetCb, CuQpOffsetCr, 또는 CuQpOffsetCbCr의 값에 대한 조정을 포함하지 않는다.
변수 β'의 값은 다음과 같이 유도된 양자화 파라미터 Q에 기초하여 표 818에 지정된 대로 결정된다:
Q = Clip3( 0, 63, QpC + ( slice_beta_offset_div2 << 1 ) )
(8-1134)
여기서 slice_beta_offset_div2는 샘플 q0,0을 포함하는 슬라이스에 대한 신택스 요소 slice_beta_offset_div2의 값이다.
변수 β는 다음과 같이 유도된다:
β = β' * ( 1 << ( BitDepthC - 8 ) )
(8-1135)
변수 tC'의 값은 다음과 같이 유도된 크로마 양자화 파라미터 Q에 기초하여 표 818에 지정된 대로 결정된다:
Q = Clip3( 0, 65, QpC + 2 * ( bS - 1 ) + ( slice_tc_offset_div2 << 1 ) )
(8-1136)
여기서 slice_tc_offset_div2는 샘플 q0,0을 포함하는 슬라이스에 대한 신택스 요소 slice_tc_offset_div2의 값이다.
변수 tC는 다음과 같이 유도된다:
tC = ( BitDepthC < 10 ) ? ( tC' + 2 ) >> ( 10 - BitDepthC ) : tC' * ( 1 << ( BitDepthC - 8 ) )
(8-1137)
5.2.
경계 강도 유도에 대한 실시예 #2
8.8.3.5 경계 필터링 강도의 유도 과정
이 프로세스에 대한 입력은 다음과 같다:
-
픽처 샘플 어레이 recPicture,
-
현재 픽처의 왼측 상단 루마 샘플에 대한 현재 코딩 블록의 왼측 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
-
현재 코딩 서브블록의 너비를 지정하는 변수 sbWidth,
-
현재 코딩 서브블록의 높이를 지정하는 변수 sbHeight,
-
수직(EDGE_VER) 또는 수평(EDGE_HOR) 가장자리가 필터링되는지 여부를 지정하는 변수 edgeType,
-
현재 블록의 컬러 컴포넌트를 지정하는 변수 cIdx.
-
2차원 (nCbW)x(nCbH) 어레이 edgeFlags.
이 프로세스의 출력은 경계 필터링 강도를 지정하는 2차원 (nCbW)x(nCbH) 어레이 bS이다.
...
i = 0..xN인 xDi 및 j = 0..yN인 yDj의 경우 다음이 적용된다:
-
edgeFlags[ xDi ][ yDj ]가 0과 동일하면, 변수 bS[ xDi ][ yDj ]는 0과 동일하게 설정된다.
-
그렇지 않으면, 다음이 적용된다:
...
- 변수 bS[ xDi ][ yDj ]는 다음과 같이 유도된다:
- cIdx가 0이고 샘플 p0 및 q0이 모두 intra_bdpcm_flag가 1인 코딩 블록에 있는 경우, bS[ xDi ][ yDj ]는 0으로 동일하게 설정된다.
- 그렇지 않고, 샘플 p0 또는 q0이 인트라 예측 모드로 코딩된 코딩 유닛의 코딩 블록에 있으면, bS[ xDi ][ yDj ]는 2와 동일하게 설정된다.
- 그렇지 않고, 블록 가장자리가 트랜스폼 블록 가장자리이기도 하고 샘플 p0 또는 q0이 ciip_flag가 1인 코딩 블록에 있는 경우, bS[ xDi ][ yDj ]는 2와 동일하게 설정된다.
- 그렇지 않고, 블록 가장자리가 트랜스폼 블록 가장자리이고 샘플 p0 또는 q0이 하나 이상의 0이 아닌 트랜스폼 계수 레벨을 포함하는 트랜스폼 블록에 있는 경우, bS[ xDi ][ yDj ]는 1과 동일하게 설정된다.
- [[그렇지 않으면, 블록 가장자리가 트랜스폼 블록 가장자리이기도 하고 cIdx가 0보다 크고 샘플 p0 또는 q0이 tu_joint_cbcr_residual_flag가 1인 트랜스폼 유닛에 있으면, bS[ xDi ][ yDj ]가 1로 설정된다.
- 그렇지 않으면, 샘플 p0을 포함하는 코딩 서브블록의 예측 모드가 샘플 q0을 포함하는 코딩 서브블록의 예측 모드와 다른 경우(즉, 코딩 서브블록 중 하나는 IBC 예측 모드로 코딩되고 다른 하나는 인터 예측 모드로 코딩됨) ), bS[ xDi ][ yDj ]는 1로 설정된다.
- 그렇지 않고, cIdx가 0이고 다음 조건 중 하나 이상이 참이면 bS[ xDi ][ yDj ]는 1과 동일하게 설정된다:
- 두 개의 코딩 서브블록의 예측에 사용된 list 0 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/16 루마 샘플에서 8 이상이거나 목록의 수평 또는 수직 컴포넌트 사이의 절대 차이 두 개의 부호화 서브블록의 예측에 사용되는 1개의 모션 벡터는 1/16 루마 샘플 유닛으로 8 이상이다.
- [[샘플 p0를 포함하는 코딩 서브블록과 샘플 q0을 포함하는 코딩 서브블록이 모두 IBC 예측 모드에서 코딩되고, 두 코딩 서브블록의 예측에 사용된 블록 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이가 1/16 루마 샘플 유닛에서 8 이상이다.
- 샘플 p0을 포함하는 코딩 서브블록의 예측을 위해 샘플 q0을 포함하는 코딩 서브블록의 예측을 위한 것과 다른 레퍼런스 픽처 또는 다른 수의 모션 벡터가 사용된다.
참고 1 - 두 개의 코딩 서브록에 사용된 레퍼런스 픽처가 동일하거나 다른지 여부의 결정은 레퍼런스 픽처 list 0에 대한 인덱스 또는 레퍼런스 픽처 목록에 대한 인덱스를 사용하여 예측이 형성되는지 여부와 관계없이, 및 또한 레퍼런스 픽처 목록 내의 인덱스 위치가 다른지 여부와 관계 없이 어떤 픽처가 참조되는 지에만 기초한다.
참고 2 - 왼측 상단 샘플을 커버하는( xSb, ySb ) 코딩 서브블록의 예측에 사용되는 모션 벡터의 수는 PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ]와 같다.
- 하나의 모션 벡터는 샘플 p0를 포함하는 코딩 서브블록을 예측하는 데 사용되고 하나의 모션 벡터는 샘플 q0을 포함하는 코딩 서브블록을 예측하는 데 사용되고, 사용된 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/16 루마 샘플 유닛으로 8 이상이다.
- 두 개의 모션 벡터와 두 개의 다른 레퍼런스 픽처는 샘플 p0를 포함하는 코딩 서브블록을 예측하는 데 사용되고, 동일한 두 개의 레퍼런스 픽처에 대한 두 개의 모션 벡터는 샘플 q0및 수평 또는 수직 컴포넌트 사이의 절대 차이를 포함하는 코딩 서브블록을 예측하는 데 사용되고, 동일한 레퍼런스 픽처에 대한 두 개의 코딩 서브블록의 예측에 사용된 두 개의 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/16 루마 샘플 유닛으로 8 이상이다
- 동일한 레퍼런스 픽처에 대한 두 개의 모션 벡터는 샘플 p0을 포함하는 코딩 서브블록을 예측하는 데 사용되고, 동일한 레퍼런스 픽처에 대한 두 개의 모션 벡터는 샘플 q0을 포함하는 코딩 서브블록을 예측하는 데 사용되고 다음 조건 모두가 참이다:
- 두 개의 코딩 서브블록의 예측에 사용된 list 0 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/16 루마 샘플에서 8 이상이거나 목록의 수평 또는 수직 컴포넌트 사이의 절대 차이 두 개의 부호화 서브블록의 예측에 사용되는 1개의 모션 벡터는 1/16 루마 샘플 유닛으로 8 이상이다.
- 샘플 p0포함하는 코딩 서브블록의 예측에 사용된 list 0 모션 벡터의 수평 또는 수직 컴포넌트와 샘플 q0된 list 1 모션 벡터 사이의 절대 차이는 1/16 루마 샘플 유닛에서 8이상 이거나, 또는 샘플 p0를 포함하는 코딩 서브블록의 예측에 사용된 list 1 모션 벡터의 수평 또는 수직 컴포넌트와 샘플 q0을 포함하는 코딩 서브블록의 예측에 사용된 list 0 모션 벡터 사이의 절대 차이는 1/16 루마 샘플 유닛에서 8 이상이다.
- 그렇지 않으면, 변수 bS[ xDi ][ yDj ]가 0과 동일하게 설정된다.
5.3.
경계 강도 유도에 대한 실시예 #3
8.8.3.5 경계 필터링 강도의 유도 프로세스
이 프로세스에 대한 입력은 다음과 같다:
-
픽처 샘플 어레이 recPicture,
-
현재 픽처의 왼측 상단 루마 샘플에 대한 현재 코딩 블록의 왼측 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
-
현재 코딩 서브블록의 너비를 지정하는 변수 sbWidth,
-
현재 코딩 서브블록의 높이를 지정하는 변수 sbHeight,
-
수직(EDGE_VER) 또는 수평(EDGE_HOR) 가장자리가 필터링되는지 여부를 지정하는 변수 edgeType,
-
현재 블록의 컬러 컴포넌트를 지정하는 변수 cIdx.
-
2차원 (nCbW)x(nCbH) 어레이 edgeFlags.
이 프로세스의 출력은 경계 필터링 강도를 지정하는 2차원 (nCbW)x(nCbH) 어레이 bS이다.
...
i = 0..xN인 xDi 및 j = 0..yN인 yDj의 경우 다음이 적용된다:
- edgeFlags[ xDi ][ yDj ]가 0과 같으면, 변수 bS[ xDi ][ yDj ]는 0과 동일하게 설정된다.
- 그렇지 않으면, 다음이 적용된다:
...
- 변수 bS[ xDi ][ yDj ]는 다음과 같이 유도된다:
- cIdx가 0이고 샘플 p0 및 q0이 모두 intra_bdpcm_flag가 1인 코딩 블록에 있는 경우, bS[ xDi ][ yDj ]는 0으로 동일하게 설정된다.
- 그렇지 않고, 샘플 p0 또는 q0이 인트라 예측 모드로 코딩된 코딩 유닛의 코딩 블록에 있으면, bS[ xDi ][ yDj ]는 2와 동일하게 설정된다.
- 그렇지 않고, 블록 가장자리가 트랜스폼 블록 가장자리이기도 하고 샘플 p0 또는 q0이 ciip_flag가 1인 코딩 블록에 있는 경우, bS[ xDi ][ yDj ]는 2와 동일하게 설정된다.
- 그렇지 않고, 블록 가장자리가 트랜스폼 블록 가장자리이고 샘플 p0 또는 q0이 하나 이상의 0이 아닌 트랜스폼 계수 레벨을 포함하는 트랜스폼 블록에 있는 경우, bS[ xDi ][ yDj ]는 1과 동일하게 설정된다.
- [[그렇지 않으면, 블록 가장자리가 트랜스폼 블록 가장자리이기도 하고 cIdx가 0보다 크고 샘플 p0 또는 q0이 tu_joint_cbcr_residual_flag가 1인 트랜스폼 유닛에 있으면, bS[ xDi ][ yDj ]가 1로 설정된다.]]
- 그렇지 않으면, 샘플 p0을 포함하는 코딩 서브블록의 예측 모드가 샘플 q0을 포함하는 코딩 서브블록의 예측 모드와 다른 경우(즉, 코딩 서브블록 중 하나는 IBC 예측 모드로 코딩되고 다른 하나는 인터 예측 모드로 코딩됨) ), bS[ xDi ][ yDj ]는 1로 설정된다.
- 그렇지 않고, cIdx가 0이고 다음 조건 중 하나 이상이 참이면 bS[ xDi ][ yDj ]는 1과 동일하게 설정된다:
- 샘플 p0를 포함하는 코딩 서브블록과 샘플 q0을 포함하는 코딩 서브블록이 모두 IBC 예측 모드에서 코딩되고, 두 코딩 서브블록의 예측에 사용된 블록 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이가 1/16 루마 샘플 유닛에서 8 이상이다.
- 샘플 p0을 포함하는 코딩 서브블록의 예측을 위해 샘플 q0을 포함하는 코딩 서브블록의 예측을 위한 것과 다른 레퍼런스 픽처 또는 다른 수의 모션 벡터가 사용된다.
참고 1 - 두 개의 코딩 서브록에 사용된 레퍼런스 픽처가 동일하거나 다른지 여부의 결정은 레퍼런스 픽처 list 0에 대한 인덱스 또는 레퍼런스 픽처 목록에 대한 인덱스를 사용하여 예측이 형성되는지 여부와 관계없이, 및 또한 레퍼런스 픽처 목록 내의 인덱스 위치가 다른지 여부와 관계 없이 어떤 픽처가 참조되는 지에만 기초한다.
참고 2 - 왼측 상단 샘플을 커버하는( xSb, ySb ) 코딩 서브블록의 예측에 사용되는 모션 벡터의 수는 PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ]와 같다.
- 하나의 모션 벡터는 샘플 p0를 포함하는 코딩 서브블록을 예측하는 데 사용되고 하나의 모션 벡터는 샘플 q0을 포함하는 코딩 서브블록을 예측하는 데 사용되고, 사용된 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/16 루마 샘플 유닛으로 8 이상이다.
- 두 개의 모션 벡터와 두 개의 다른 레퍼런스 픽처는 샘플 p0를 포함하는 코딩 서브블록을 예측하는 데 사용되고, 동일한 두 개의 레퍼런스 픽처에 대한 두 개의 모션 벡터는 샘플 q0및 수평 또는 수직 컴포넌트 사이의 절대 차이를 포함하는 코딩 서브블록을 예측하는 데 사용되고, 동일한 레퍼런스 픽처에 대한 두 개의 코딩 서브블록의 예측에 사용된 두 개의 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/16 루마 샘플 유닛으로 8 이상이다
- 동일한 레퍼런스 픽처에 대한 두 개의 모션 벡터는 샘플 p0을 포함하는 코딩 서브블록을 예측하는 데 사용되고, 동일한 레퍼런스 픽처에 대한 두 개의 모션 벡터는 샘플 q0을 포함하는 코딩 서브블록을 예측하는 데 사용되고 다음 조건 모두가 참이다:
- 두 개의 코딩 서브블록의 예측에 사용된 list 0 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/16 루마 샘플에서 8 이상이거나 목록의 수평 또는 수직 컴포넌트 사이의 절대 차이 두 개의 부호화 서브블록의 예측에 사용되는 1개의 모션 벡터는 1/16 루마 샘플 유닛으로 8 이상이다.
- 샘플 p0포함하는 코딩 서브블록의 예측에 사용된 list 0 모션 벡터의 수평 또는 수직 컴포넌트와 샘플 q0를 포함하는 list 1 모션 벡터 사이의 절대 차이는 1/16 루마 샘플 유닛에서 8이상 이거나, 또는 샘플 p0를 포함하는 코딩 서브블록의 예측에 사용된 list 1 모션 벡터의 수평 또는 수직 컴포넌트와 샘플 q0을 포함하는 코딩 서브블록의 예측에 사용된 list 0 모션 벡터 사이의 절대 차이는 1/16 루마 샘플 유닛에서 8 이상이다.
- 그렇지 않으면, 변수 bS[ xDi ][ yDj ]가 0과 동일하게 설정된다.
5.4.
루마 디블로킹 필터링 프로세스에 대한 실시예 #4
8.8.3.6.1 루마 블록 가장자리에 대한 판정 프로세스
이 프로세스에 대한 입력은 다음과 같다:
- 픽처 샘플 어레이 recPicture,
- 현재 픽처의 왼측 상단 루마 샘플에 대한 현재 코딩 블록의 왼측 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
- 현재 코딩 블록의 왼쪽 상단 샘플에 대한 현재 블록의 왼쪽 상단 샘플을 지정하는 위치( xBl, yBl ),
- 수직(EDGE_VER) 또는 수평(EDGE_HOR) 가장자리가 필터링되는지 여부를 지정하는 변수 edgeType,
- 경계 필터링 강도를 지정하는 변수 bS,
- 최대 필터 길이를 지정하는 변수 maxFilterLengthP,
- 최대 필터 길이를 지정하는 변수 maxFilterLengthQ.
이 프로세스의 출력은 다음과 같다:
- 판정을 포함하는 변수 dE, dEp 및 dEq,
- 수정된 필터 길이 변수 maxFilterLengthP 및 maxFilterLengthQ,
- 변수 tC.
...
다음 순서 단계가 적용된다:
...
1.
sidePisLargeBlk 또는 sideQisLargeBlk가 0보다 크면 다음이 적용된다:
a.
변수 dp0L, dp3L이 유도되고 maxFilterLengthP가 다음과 같이 수정된다:
- [[sidePisLargeBlk가 1이면, 다음이 적용된다:
dp0L = ( dp0 + Abs( p5,0 - 2 * p4,0 + p3,0 ) + 1 ) >> 1 (8-1087)
dp3L = ( dp3 + Abs( p5,3 - 2 * p4,3 + p3,3 ) + 1 ) >> 1(8-1088)
- 그렇지 않으면, 다음이 적용된다:]]
dp0L = dp0
(8-1089)
dp3L = dp3
(8-1090)
[[maxFilterLengthP = 3
(8-1091)]]
maxFilterLengthP = sidePisLargeBlk ? maxFilterLengthP : 3
b.
변수 dq0L 및 dq3L은 다음과 같이 유도된다:
- [[sideQisLargeBlk가 1이면 다음이 적용된다:
dq0L = ( dq0 + Abs( q5,0 - 2 * q4,0 + q3,0 ) + 1 ) >> 1 (8-1092)
dq3L = ( dq3 + Abs( q5,3 - 2 * q4,3 + q3,3 ) + 1 ) >> 1 (8-1093)
- 그렇지 않으면, 다음이 적용된다:]]
dq0L = dq0
(8-1094)
dq3L = dq3
(8-1095)
maxFilterLengthQ = sidePisLargeBlk ? maxFilterLengthQ : 3
...
2.
변수 dE, dEp 및 dEq는 다음과 같이 유도된다:
...
5.5.
크로마 디블로킹 필터링 프로세스에 대한 실시예 #5
8.8.3.6.3 크로마 블록 가장자리에 대한 판정 프로세스
이 프로세스는 ChromaArrayType이 0이 아닐 때만 호출된다.
이 프로세스에 대한 입력은 다음과 같다:
- 크로마 픽처 샘플 어레이 recPicture,
- 현재 픽처의 왼측 상단 루마 샘플에 대한 현재 코딩 블록의 왼측 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
- 현재 크로마 코딩 블록의 왼쪽 상단 샘플에 대한 현재 크로마 블록의 왼쪽 상단 샘플을 지정하는 크로마 위치( xBl, yBl ),
- 수직(EDGE_VER) 또는 수평(EDGE_HOR) 가장자리가 필터링되는지 여부를 지정하는 변수 edgeType,
- 컬러 컴포넌트 인덱스를 지정하는 변수 cIdx,
- 픽처 레벨 크로마 양자화 파라미터 오프셋을 지정하는 변수 cQpPicOffset,
- 경계 필터링 강도를 지정하는 변수 bS,
- 변수 maxFilterLengthCbCr.
이 프로세스의 출력은 다음과 같다:
- 수정된 변수 maxFilterLengthCbCr,
- 변수 tC.
변수 maxK는 다음과 같이 유도된다:
- edgeType이 EDGE_VER와 같으면 다음이 적용된다:
maxK = ( SubHeightC = = 1 ) ? 3 : 1 (8-1124)
- 그렇지 않으면(edgeType이 EDGE_HOR와 동일함) 다음이 적용된다:
maxK = ( SubWidthC = = 1 ) ? 3 : 1 (8-1125)
i = 0.. maxFilterLengthCbCr 및 k = 0..maxK인 값 pi 및 qi는 다음과 같이 유도된다:
- edgeType이 EDGE_VER와 같으면 다음이 적용된다:
qi,k = recPicture[ xCb + xBl + i ][ yCb + yBl + k ]
(8-1126)
pi,k = recPicture[ xCb + xBl - i -1 ][ yCb + yBl + k ]
(8-1127)
subSampleC = SubHeightC
(8-1128)
- 그렇지 않으면(edgeType이 EDGE_HOR와 동일함) 다음이 적용된다:
qi,k = recPicture[ xCb + xBl + k ][ yCb + yBl + i ]
(8-1129)
pi,k = recPicture[ xCb + xBl + k ][ yCb + yBl - i -1 ]
(8-1130)
subSampleC = SubWidthC
(8-1131)
ChromaArrayType이 0이 아니고 treeType이 SINGLE_TREE 또는 DUAL_TREE_CHROMA와 같으면 다음이 적용된다:
-
treeType이 DUAL_TREE_CHROMA와 같을 때, 변수 QpY는 루마 위치( xCb + cbWidth / 2, yCb + cbHeight / 2 )를 커버하는 루마 코딩 유닛의 루마 양자화 파라미터 QpY와 동일하게 설정된다.
-
변수 qPCb, qPCr 및 qPCbCr은 다음과 같이 유도된다:
qPi
Chroma
= Clip3( -QpBdOffset
C
, 63, Qp
Y
) (8-935)
qPi
Cb
= ChromaQpTable[ 0 ][ qPi
Chroma
] (8-936)
qPi
Cr
= ChromaQpTable[ 1 ][ qPi
Chroma
] (8-937)
qPi
CbCr
= ChromaQpTable[ 2 ][ qPi
Chroma
] (8-938)
-
Cb 및 Cr 컴포넌트, Qp'
Cb
및 Qp'
Cr
, 공동 Cb-Cr 코딩 Qp'
CbCr
에 대한 크로마 양자화 파라미터는 다음과 같이 유도된다:
Qp'
Cb
= Clip3( -QpBdOffset
C
, 63, qP
Cb
+ pps_cb_qp_offset + slice_cb_qp_offset +CuQpOffset
Cb
) (8-939)
Qp'
Cr
= Clip3( -QpBdOffset
C
, 63, qP
Cr
+ pps_cr_qp_offset + slice_cr_qp_offset +CuQpOffset
Cr
) (8-940)
Qp'
CbCr
= Clip3( -QpBdOffset
C
, 63, qP
CbCr
+ pps_cbcr_qp_offset + slice_cbcr_qp_offset +CuQpOffset
CbCr
) (8-941)
변수 Qp Q 및 Qp P 는 각각 샘플 q 0,0 및 p 0,0 을 포함하는 코딩 블록을 포함하는 코딩 유닛의 대응하는 Qp' Cb 또는 Qp' Cr 또는 Qp' CbCr 값과 동일하게 설정된다.
변수 QpC는 다음과 같이 유도된다:
Qp
C
= ( Qp
Q
+ Qp
P
+ 1 ) >> 1
(8-1133)
변수 β'의 값은 다음과 같이 유도된 양자화 파라미터 Q에 기초하여 표 818 에 지정된 대로 결정된다:
Q = Clip3( 0, 63, QpC + ( slice_beta_offset_div2 << 1 ) )
(8-1134)
여기서 slice_beta_offset_div2는 샘플 q0,0을 포함하는 슬라이스에 대한 신택스 요소 slice_beta_offset_div2의 값이다.
변수 β는 다음과 같이 유도된다:
β = β' * ( 1 << ( BitDepthC - 8 ) )
(8-1135)
변수 tC'의 값은 다음과 같이 유도된 크로마 양자화 파라미터 Q를 기반으로 표 818에 지정된 대로 결정된다:
Q = Clip3( 0, 65, QpC + 2 * ( bS - 1 ) + ( slice_tc_offset_div2 << 1 ) )
(8-1136)
여기서 slice_tc_offset_div2는 샘플 q0,0을 포함하는 슬라이스에 대한 신택스 요소 slice_tc_offset_div2의 값이다.
변수 tC는 다음과 같이 유도된다:
tC = ( BitDepthC < 10 ) ? ( tC' + 2 ) >> ( 10 - BitDepthC ) : tC' * ( 1 << ( BitDepthC - 8 ) )
(8-1137)
maxFilterLengthCbCr이 1이고 bS가 2가 아닌 경우, maxFilterLengthCbCr은 0과 동일하게 설정된다.
5.6.
디블로킹에서 크로마 QP에 대한 실시예 #6
8.8.3.6.3 크로마 블록 가장자리에 대한 판정 프로세스
이 프로세스는 ChromaArrayType이 0이 아닐 때만 호출된다.
이 프로세스에 대한 입력은 다음과 같다:
- 크로마 픽처 샘플 어레이 recPicture,
- 현재 픽처의 왼측 상단 루마 샘플에 대한 현재 코딩 블록의 왼측 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
- 현재 크로마 코딩 블록의 왼쪽 상단 샘플에 대한 현재 크로마 블록의 왼쪽 상단 샘플을 지정하는 크로마 위치( xBl, yBl ),
- 수직(EDGE_VER) 또는 수평(EDGE_HOR) 가장자리가 필터링되는지 여부를 지정하는 변수 edgeType,
- 컬러 컴포넌트 인덱스를 지정하는 변수 cIdx,
- 픽처 레벨 크로마 양자화 파라미터 오프셋을 지정하는 변수 cQpPicOffset,
- 경계 필터링 강도를 지정하는 변수 bS,
- 변수 maxFilterLengthCbCr.
이 프로세스의 출력은 다음과 같다:
- 수정된 변수 maxFilterLengthCbCr,
- 변수 tC.
변수 maxK는 다음과 같이 유도된다:
- edgeType이 EDGE_VER와 같으면 다음이 적용된다:
maxK = ( SubHeightC = = 1 ) ? 3 : 1
(8-1124)
- 그렇지 않으면(edgeType이 EDGE_HOR와 동일함) 다음이 적용된다:
maxK = ( SubWidthC = = 1 ) ? 3 : 1
(8-1125)
i = 0.. maxFilterLengthCbCr 및 k = 0..maxK인 값 pi 및 qi는 다음과 같이 유도된다:
- edgeType이 EDGE_VER와 같으면 다음이 적용된다:
qi,k = recPicture[ xCb + xBl + i ][ yCb + yBl + k ]
(8-1126)
pi,k = recPicture[ xCb + xBl - i -1 ][ yCb + yBl + k ]
(8-1127)
subSampleC = SubHeightC
(8-1128)
- 그렇지 않으면(edgeType이 EDGE_HOR와 동일함) 다음이 적용된다:
qi,k = recPicture[ xCb + xBl + k ][ yCb + yBl + i ]
(8-1129)
pi,k = recPicture[ xCb + xBl + k ][ yCb + yBl - i -1 ]
(8-1130)
subSampleC = SubWidthC
(8-1131)
[[변수 QpQ 및 QpP는 각각 샘플 q0,0 및 p0,0을 포함하는 코딩 블록을 포함하는 코딩 유닛의 QpY 값과 동일하게 설정된다.
변수 jccr_flag
P
및 jccr_flag
Q
는 각각 샘플 q
0,0
및 p
0,0
을 포함하는 코딩 블록을 포함하는 코딩 유닛의 tu_joint_cbcr_residual_flag 값과 동일하게 설정된다.
변수 QpC는 다음과 같이 유도된다:
[[qPi = Clip3( 0, 63, ( ( QpQ + QpP + 1 ) >> 1 ) + cQpPicOffset )
(8-1132)]]
qPi = Clip3( 0, 63, ( ( Qp
Q
+ (jccr_flag
P
? pps_joint_cbcr_qp_offset : cQpPicOffset) + Qp
P
+ (jccr_flag
Q
? pps_joint_cbcr_qp_offset : cQpPicOffset) + 1 ) >> 1 ) )
QpC = ChromaQpTable[ cIdx - 1 ][ qPi ]
(8-1133)
참고 - 변수 cQpPicOffset은 필터링된 크로마 컴포넌트가 Cb 컴포넌트인지 Cr 컴포넌트인지에 따라 pps_cb_qp_offset 또는 pps_cr_qp_offset 값에 대한 조정을 제공한다. 그러나, 픽처 내 조정의 양을 변경할 필요를 피하기 위해, 필터링 프로세스는 slice_cb_qp_offset 또는 slice_cr_qp_offset의 값에 대한 및 (cu_chroma_qp_offset_enabled_flag가 1인 경우) CuQpOffsetCb, CuQpOffsetCr, 또는 CuQpOffsetCbCr의 값에 대한 조정을 포함하지 않는다.
...
5.7.
디블로킹에서 크로마 QP에 대한 실시예 #7
8.8.3.6.3
8.8.3.6.3 크로마 블록 가장자리에 대한 판정 프로세스
이 프로세스는 ChromaArrayType이 0이 아닐 때만 호출된다.
이 프로세스에 대한 입력은 다음과 같다:
- 크로마 픽처 샘플 어레이 recPicture,
- 현재 픽처의 왼측 상단 루마 샘플에 대한 현재 코딩 블록의 왼측 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
- ...
이 프로세스의 출력은 다음과 같다:
- 수정된 변수 maxFilterLengthCbCr,
- 변수 tC.
변수 maxK는 다음과 같이 유도된다:
- edgeType이 EDGE_VER와 같으면 다음이 적용된다:
maxK = ( SubHeightC = = 1 ) ? 3 : 1
(8-1124)
- 그렇지 않으면(edgeType이 EDGE_HOR와 동일함) 다음이 적용된다:
maxK = ( SubWidthC = = 1 ) ? 3 : 1
(8-1125)
i = 0.. maxFilterLengthCbCr 및 k = 0..maxK인 값 pi 및 qi는 다음과 같이 유도된다:
- edgeType이 EDGE_VER와 같으면 다음이 적용된다:
qi,k = recPicture[ xCb + xBl + i ][ yCb + yBl + k ]
(8-1126)
pi,k = recPicture[ xCb + xBl - i -1 ][ yCb + yBl + k ]
(8-1127)
subSampleC = SubHeightC
(8-1128)
- 그렇지 않으면(edgeType이 EDGE_HOR와 동일함) 다음이 적용된다:
qi,k = recPicture[ xCb + xBl + k ][ yCb + yBl + i ]
(8-1129)
pi,k = recPicture[ xCb + xBl + k ][ yCb + yBl - i -1 ]
(8-1130)
subSampleC = SubWidthC
(8-1131)
변수 QpQ 및 QpP는 각각 샘플 q0,0 및 p0,0을 포함하는 코딩 블록을 포함하는 코딩 유닛의 QpY 값과 동일하게 설정된다.
변수 Qp
Q
는 루마 위치(xCb + cbWidth/2, yCb + cbHeight/2)를 커버하는 루마 코딩 유닛의 루마 양자화 파라미터 QpY와 동일하게 설정되고,
여기서 cbWidth는 루마 샘플에서 현재 크로마 코딩 블록의 너비를 지정하고 cbHeight는 루마 샘플에서 현재 크로마 코딩 블록의 높이를 지정한다.
변수 Qp
P
는 루마 위치( xCb' + cbWidth' / 2, yCb' + cbHeight' / 2 )를 커버하는 루마 코딩 유닛의 루마 양자화 파라미터 QpY와 동일하게 설정되고,
여기서 (xCb ', yCb') 현재 픽처의 왼측 상단 크로마 샘플에 대해 q0,0을 커버하는 크로마 코딩 블록의 왼측 상단 샘플, cbWidth '는 루마 샘플에서 현재 크로마 코딩 블록의 너비를 지정하고, cbHeight는 루마 샘플에서 현재 크로마 코딩 블록의 높이를 지정한다.
변수 QpC는 다음과 같이 유도된다:
qPi = Clip3( 0, 63, ( ( QpQ + QpP + 1 ) >> 1 ) + cQpPicOffset )
(8-1132)
QpC = ChromaQpTable[ cIdx - 1 ][ qPi ] (8-1133)
참고 - 변수 cQpPicOffset은 필터링된 크로마 컴포넌트가 Cb 컴포넌트인지 Cr 컴포넌트인지에 따라 pps_cb_qp_offset 또는 pps_cr_qp_offset 값에 대한 조정을 제공한다. 그러나, 픽처 내 조정의 양을 변경할 필요를 피하기 위해, 필터링 프로세스는 slice_cb_qp_offset 또는 slice_cr_qp_offset의 값에 대한 및 (cu_chroma_qp_offset_enabled_flag가 1인 경우) CuQpOffsetCb, CuQpOffsetCr, 또는 CuQpOffsetCbCr의 값에 대한 조정을 포함하지 않는다.
변수 β'의 값은 다음과 같이 유도된 양자화 파라미터 Q에 기초하여 표 8-18에 지정된 대로 결정된다:
Q = Clip3( 0, 63, QpC + ( slice_beta_offset_div2 << 1 ) ) (8-1134)
여기서 slice_beta_offset_div2는 샘플 q0,0을 포함하는 슬라이스에 대한 신택스 요소 slice_beta_offset_div2의 값이다.
변수 β는 다음과 같이 유도된다:
β = β' * ( 1 << ( BitDepthC - 8 ) )
(8-1135)
변수 tC'의 값은 다음과 같이 유도된 크로마 양자화 파라미터 Q를 기반으로 표 8-18에 지정된 대로 결정된다:
Q = Clip3( 0, 65, QpC + 2 * ( bS - 1 ) + ( slice_tc_offset_div2 << 1 ) )
(8-1136)
여기서 slice_tc_offset_div2는 샘플 q0,0을 포함하는 슬라이스에 대한 신택스 요소 slice_tc_offset_div2의 값이다.
5.8.
디블로킹에서 크로마 QP에 대한 실시예 #8
묘사된 세 개의 샘플(실선 원 포함)에 대한 필터 판정을 내릴 때, 세 개의 샘플을 포함하는 크로마 CU의 중심 위치를 커버하는 루마 CU의 QP가 선택된다. 따라서제1, 제2 및 제3 크로마 샘플(도 11에 표시됨)에 대해 각각 CUY3의 QP만 활용된다.
이러한 방식으로, 크로마 양자화/역양자화 프로세스를 위한 루마 CU를 선택하는 방법은 크로마 필터 판정 프로세스를 위한 것과 일치한다.
5.9.
JCCR 코딩된 블록에 사용되는 QP에 대한 실시예 #9
8.7.3
트랜스폼 계수를 위한 스케일링 프로세스
이 프로세스에 대한 입력은 다음과 같다:
- 현재 픽처의 왼쪽 상단 루마 샘플에 상대적인 현재 루마 변환 블록의 왼쪽 상단 샘플을 지정하는 루마 위치( xTbY, yTbY ),
- 트랜스폼 블록 폭(width)을 지정하는 변수 nTbW,
- 트랜스폼 블록 높이를 지정하는 변수 nTbH,
- 현재 블록의 컬러 컴포넌트를 지정하는 변수 cIdx,
- 현재 컬러 컴포넌트의 비트 심도를 지정하는 변수 bitDepth.
이 프로세스의 출력은 요소 d[ x ][ y ]를 갖는 스케일 된 트랜스폼 계수의 (nTbW) x(nTbH) 어레이 d이다.
양자화 파라미터 qP는 다음과 같이 유도된다:
-
cIdx가 0이고 transform_skip_flag[ xTbY ][ yTbY ]가 0이면 다음이 적용된다:
qP = Qp'Y
(8-950)
-
그렇지 않고, cIdx가 0이면(그리고 transform_skip_flag[ xTbY ][ yTbY ]가 1이면), 다음이 적용된다:
qP = Max( QpPrimeTsMin, Qp'Y )
(8-951)
-
그렇지 않고, TuCResMode[ xTbY ][ yTbY ]가 0[[2와 동일함]]과 동일하지 않으면, 다음이 적용된다:
qP = Qp'CbCr
(8-952)
-
그렇지 않고 cIdx가 1이면, 다음이 적용된다:
qP = Qp'Cb
(8-953)
-
그렇지 않으면(cIdx가 2와 동일함), 다음이 적용된다:
qP = Qp'Cr
(8-954)
5.10
JCCR 코딩된 블록에 사용되는 QP에 대한 실시예 #10
8.8.3.2 한 방향에 대한 디블로킹 필터 프로세스
이 프로세스에 대한 입력은 다음과 같다:
- 루마(DUAL_TREE_LUMA) 또는 크로마 컴포넌트(DUAL_TREE_CHROMA)이 현재 처리되는지 여부를 지정하는 변수 treeType,
- treeType이 DUAL_TREE_LUMA와 동일할 때, 디블로킹 이전의 재구성된 픽처, 즉 어레이 recPictureL,
- ChromaArrayType이 0과 동일하지 않고 treeType이 DUAL_TREE_CHROMA와 동일할 때, 어레이 recPictureCb 및 recPictureCr,
- 수직(EDGE_VER) 또는 수평(EDGE_HOR) 가장자리가 필터링되는지 여부를 지정하는 변수 edgeType,
이 프로세스의 출력은 디블로킹 후 수정된 재구성된 픽처고, 즉:
- treeType이 DUAL_TREE_LUMA와 같을 때 recPictureL 어레이,
- ChromaArrayType이 0이 아니고 treeType이 DUAL_TREE_CHROMA와 동일할 때, 어레이 recPictureCb 및 recPictureCr.
변수 firstCompIdx 및 lastCompIdx는 다음과 같이 유도된다:
firstCompIdx = ( treeType = = DUAL_TREE_CHROMA ) ? 1 : 0
(8-1022)
lastCompIdx = ( treeType = = DUAL_TREE_LUMA | | ChromaArrayType = = 0 ) ? 0 : 2
(8-1023)
코딩 블록 너비 nCbW, 코딩 블록 높이 nCbH 및 코딩 블록(xCb, yCb)의 왼쪽 상단 샘플 위치와 함께 firstCompIdx에서 lastCompIdx까지의 컬러 컴포넌트 인덱스 cIdx로 표시되는 각 코딩 유닛 및 코딩 유닛의 컬러 컴포넌트별 각 코딩 블록에 대해, cIdx가 0과 동일하거나, 또는 cIdx가 0이 아니고 edgeType이 EDGE_VER와 동일고 xCb % 8이 0이거나, 또는 cIdx가 0이 아니고 edgeType이 EDGE_HOR이고 yCb % 8가 0과 동일할 때, 가장자리는 다음과 같은 순서로 필터링된다:
...
[[5. 픽처 샘플 어레이 recPicture는 다음과 같이 유도된다:
- cIdx가 0과 동일하면, recPicture는 recPictureL을 디블로킹하기 전에 재구성된 루마 픽처 샘플 어레이와 동일하게 설정된다.
- 그렇지 않고, cIdx가 1과 동일하면, recPicture는 recPictureCb를 디블로킹하기 전에 재구성된 크로마 픽처 샘플 어레이와 동일하게 설정된다.
- 그렇지 않은 경우(cIdx는 2와 동일함), recPicture는 recPictureCr을 디블로킹하기 전에 재구성된 크로마 픽처 샘플 어레이와 동일하게 설정된다.]]
5. i = 0,1,2인 픽처 샘플 어레이 recPicture[i]는 다음과 같이 유도된다:
recPicture[0]은 recPictureL을 디블로킹하기 전에 재구성된 픽처 샘플 어레이와 동일하게 설정된다.
recPicture[1]은 recPictureCb를 디블로킹하기 전에 재구성된 픽처 샘플 어레이와 동일하게 설정된다.
recPicture[2]는 recPictureCr을 디블로킹하기 전에 재구성된 픽처 샘플 어레이와 동일하게 설정된다.
...
cIdx가 1이면, 다음 프로세스가 적용된다:
한 방향에 대한 가장자리 필터링 프로세스는 변수 edgeType, 변수 cIdx, 디블로킹하기 전 재구성된 픽처 recPicture, 위치(xCb, yCb), 코딩 블록 너비 nCbW, 코딩 블록 높이 nCbH 및 어레이 bS, maxFilterLengthPs 및 maxFilterLengthQs를 입력으로 하고, 수정된 재구성된 픽처 recPicture을 출력으로 하여 8.8.3.6 절에 지정된 코딩 블록에 대해 호출된다.
8.8.3.5 경계 필터링 강도의 유도 프로세스
이 프로세스에 대한 입력은 다음과 같다:
- 픽처 샘플 어레이 recPicture,
- 현재 픽처의 왼측 상단 루마 샘플에 대한 현재 코딩 블록의 왼측 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
- 현재 코딩 서브블록의 너비를 지정하는 변수 sbWidth,
- 현재 코딩 서브블록의 높이를 지정하는 변수 sbHeight,
- 수직(EDGE_VER) 또는 수평(EDGE_HOR) 가장자리가 필터링되는지 여부를 지정하는 변수 edgeType,
- 현재 블록의 컬러 컴포넌트를 지정하는 변수 cIdx.
- 2차원 (nCbW)x(nCbH) 어레이 edgeFlags.
이 프로세스의 출력은 경계 필터링 강도를 지정하는 2차원 (nCbW)x(nCbH) 어레이 bS이다.
변수 xDi, yDj, xN 및 yN은 다음과 같이 유도된다:
...
i = 0..xN인 xDi 및 j = 0..yN인 yDj의 경우 다음이 적용된다:
- edgeFlags[ xDi ][ yDj ]가 0과 같으면, 변수 bS[ xDi ][ yDj ]는 0과 동일하게 설정된다.
- 그렇지 않으면, 다음이 적용된다:
- 샘플 값 p0 및 q0은 다음과 같이 유도된다:
- edgeType이 EDGE_VER와 동일하면, p0는 recPicture [cIdx][ xCb + xDi - 1 ][ yCb + yDj ]와 동일하게 설정되고 q0은 recPicture [cIdx] [ xCb + xDi ][ yCb + yDj ]와 동일하게 설정된다.
- 그렇지 않으면(edgeType이 EDGE_HOR과 같음), p0은 recPicture[cIdx] [ xCb + xDi ][ yCb + yDj - 1 ]와 동일하게 설정되고 q0은 recPicture[cIdx] [ xCb + xDi ][ yCb + yDj ]와 동일하게 설정된다. .
..
8.8.3.6 한 방향에 대한 가장자리 필터링 프로세스
이 프로세스에 대한 입력은 다음과 같다:
-
수직 가장자리(EDGE_VER) 또는 수평 가장자리(EDGE_HOR)가 현재 처리되는지 여부를 지정하는 가변 edgeType,
-
현재 컬러 컴포넌트를 지정하는 변수 cIdx,
-
recPicture를 디블로킹하기 전에 재구성된 픽처,
-
현재 픽처의 왼측 상단 루마 샘플에 대한 현재 코딩 블록의 왼측 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
-
현재 코딩 서브블록의 너비를 지정하는 변수 sbWidth,
-
현재 코딩 서브블록의 높이를 지정하는 변수 sbHeight,
-
경계 강도를 지정하는 어레이 bS,
-
어레이 maxFilterLengthPs 및 maxFilterLengthQs.
이 프로세스의 출력은 recPicturei를 디블로킹한 후 수정된 재구성된 픽처다.
...
- 그렇지 않은 경우(cIdx가 0이 아님), cIdx에 의해 지정된 현재 코딩 유닛의 크로마 코딩 블록에 있는 가장자리에 대한 필터링 프로세스는 다음과 같은 순서화된 단계로 구성된다:
1. 변수 cQpPicOffset은 다음과 같이 유도된다:
cQpPicOffset = cIdx = = 1 ? pps_cb_qp_offset : pps_cr_qp_offset
(8-1065)
cQpPicOffset = ( pps_cb_qp_offset + pps_cr_qp_offset + 1 ) >> 1
(8-1065)
2.
cIdx = 1에 대한 bS[ xDk ][ yDm ]이 1과 동일하거나 cIdx = 2에 대한 bS[ xDk ][ yDm ]이 1과 동일한 경우 cIdx = 1 및 2에 대한 bS[ xDk ][ yDm ]이 1로 수정된다.
3. 8.8.3.6 절에 지정된 크로마 블록 가장자리에 대한 판정 프로세스는 크로마 픽처 샘플 어레이 recPicture, 크로마 코딩 블록의 위치( xCb, yCb ), ( xDk, yDm )과 동일하게 설정된 크로마 블록의 위치( xBl, yBl ), 가장자리 방향 edgeType, 변수 cIdx, 변수 cQpPicOffset, 경계 필터링 강도 bS[ xDk ][ yDm ] 및 maxFilterLengthPs[ xDk ][ yDm ]와 동일하게 설정되는 변수 maxFilterLengthCbCr을 입력으로 하고, 및 수정된 변수 maxFilterLengthCbCr 및 변수 tC를 출력으로 하여 호출된다.
4.maxFilterLengthCbCr이 0보다 클 때, 8.8.3.6.4 절에 지정된 크로마 블록 가장자리에 대한 필터링 프로세스는 크로마 픽처 샘플 어레이 recPicture, 크로마 코딩 블록의 위치 ( xCb, yCb ), ( xDk, yDm )와 동일하게 설정된 블록의 크로마 위치 ( xBl, yBl ), 가장자리 방향 edgeType, 변수 maxFilterLengthCbCr, 및 1과 동일한 cIdx을 입력으로 하고, 및 수정된 크로마 픽처 샘플 어레이 recPicture를 출력으로 하여 호출된다.
maxFilterLengthCbCr이 0보다 클 때, 8.8.3.6.4 절에 지정된 크로마 블록 가장자리에 대한 필터링 프로세스는 크로마 픽처 샘플 어레이 recPicture, 크로마 코딩 블록의 위치 ( xCb, yCb ), ( xD
k
, yD
m
)와 동일하게 설정된 블록의 크로마 위치 ( xBl, yBl ), 가장자리 방향 edgeType, 변수 maxFilterLengthCbCr, 및 2와 동일한 cIdx을 입력으로 하고, 및 수정된 크로마 픽처 샘플 어레이 recPicture를 출력으로 하여 호출된다.
8.8.3.6.3 크로마 블록 가장자리에 대한 판정 프로세스
이 프로세스는 ChromaArrayType이 0이 아닐 때만 호출된다.
이 프로세스에 대한 입력은 다음과 같다:
- 크로마 픽처 샘플 어레이 recPicture,
- 현재 픽처의 왼측 상단 루마 샘플에 대한 현재 코딩 블록의 왼측 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
- 현재 크로마 코딩 블록의 왼쪽 상단 샘플에 대한 현재 크로마 블록의 왼쪽 상단 샘플을 지정하는 크로마 위치( xBl, yBl ),
- 수직(EDGE_VER) 또는 수평(EDGE_HOR) 가장자리가 필터링되는지 여부를 지정하는 변수 edgeType,
- [[컬러 컴포넌트 인덱스를 지정하는 변수 cIdx,]]
- 픽처 레벨 크로마 양자화 파라미터 오프셋을 지정하는 변수 cQpPicOffset,
- 경계 필터링 강도를 지정하는 변수 bS,
- 변수 maxFilterLengthCbCr.
이 프로세스의 출력은 다음과 같다:
- 수정된 변수 maxFilterLengthCbCr,
- 변수 tC.
변수 maxK는 다음과 같이 유도된다:
- edgeType이 EDGE_VER와 같으면 다음이 적용된다:
maxK = ( SubHeightC = = 1 ) ? 3 : 1
(8-1124)
- 그렇지 않으면(edgeType이 EDGE_HOR와 동일함) 다음이 적용된다:
maxK = ( SubWidthC = = 1 ) ? 3 : 1
(8-1125)
c = 0..1, i = 0.. maxFilterLengthCbCr and k = 0..maxK인 값 pi 및 qi는 다음과 같이 유도된다:
- edgeType이 EDGE_VER와 같으면 다음이 적용된다:
q c, i,k = recPicture [ c ][ xCb + xBl + i ][ yCb + yBl + k ]
(8-1126)
p c, i,k = recPicture [ c ] [ xCb + xBl - i -1 ][ yCb + yBl + k ] (8-1127)
subSampleC = SubHeightC
(8-1128)
- 그렇지 않으면(edgeType이 EDGE_HOR와 동일함) 다음이 적용된다:
q c ,i,k = recPicture [ c ] [ xCb + xBl + k ][ yCb + yBl + i ]
(8-1129)
p c, i,k = recPicture [ c ] [ xCb + xBl + k ][ yCb + yBl - i -1 ] (8-1130)
subSampleC = SubWidthC
(8-1131)
[[변수 QpQ 및 QpP는 각각 샘플 q0,0 및 p0,0을 포함하는 코딩 블록을 포함하는 코딩 유닛의 QpY 값과 동일하게 설정된다.
변수 QpC는 다음과 같이 유도된다:
qPi = Clip3( 0, 63, ( ( QpQ + QpP + 1 ) >> 1 ) + cQpPicOffset )
(8-1132)
QpC = ChromaQpTable[ cIdx - 1 ][ qPi ] + cQpPicOffset
(8-1133)
QpC = (( ChromaQpTable[ 0 ][ qPi ] + ChromaQpTable[ 1 ][ qPi ] + 1 ) >>1 ) + cQpPicOffset
(8-1133)
참고 - 변수 cQpPicOffset은 필터링된 크로마 컴포넌트가 Cb 컴포넌트인지 Cr 컴포넌트인지에 따라 pps_cb_qp_offset 또는 pps_cr_qp_offset 값에 대한 조정을 제공한다. 그러나, 픽처 내 조정의 양을 변경할 필요를 피하기 위해, 필터링 프로세스는 slice_cb_qp_offset 또는 slice_cr_qp_offset의 값에 대한 및 (cu_chroma_qp_offset_enabled_flag가 1인 경우) CuQpOffsetCb, CuQpOffsetCr, 또는 CuQpOffsetCbCr의 값에 대한 조정을 포함하지 않는다.
변수 β'의 값은 다음과 같이 유도된 양자화 파라미터 Q에 기초하여 표 8-18에 지정된 대로 결정된다:
Q = Clip3( 0, 63, QpC + ( slice_beta_offset_div2 << 1 ) )
(8-1134)
여기서 slice_beta_offset_div2는 샘플 q0,0을 포함하는 슬라이스에 대한 신택스 요소 slice_beta_offset_div2의 값이다.
변수 β는 다음과 같이 유도된다:
β = β' * ( 1 << ( BitDepthC - 8 ) )
(8-1135)
변수 tC'의 값은 다음과 같이 유도된 크로마 양자화 파라미터 Q를 기반으로 표 8-18에 지정된 대로 결정된다:
Q = Clip3( 0, 65, QpC + 2 * ( bS - 1 ) + ( slice_tc_offset_div2 << 1 ) )
(8-1136)
여기서 slice_tc_offset_div2는 샘플 q0,0을 포함하는 슬라이스에 대한 신택스 요소 slice_tc_offset_div2의 값이다.
변수 tC는 다음과 같이 유도된다:
tC = ( BitDepthC < 10 ) ? ( tC' + 2 ) >> ( 10 - BitDepthC ) :
tC' * ( 1 << ( BitDepthC - 8 ) )
(8-1137)
maxFilterLengthCbCr이 1이고 bS가 2가 아닌 경우, maxFilterLengthCbCr은 0과 동일하게 설정된다.
maxFilterLengthCbCr이 3인 경우, 다음 순서 단계가 적용된다:
1.
c = 0..1인 변수 n1, dpq0c, dpq1c, dpc, dqc 및 dc는 다음과 같이 유도된다:
n1 = ( subSampleC = = 2 ) ? 1 : 3
(8-1138)
dp0 c = Abs( p c ,2,0 - 2 * p c ,1,0 + p c ,0,0 )
(8-1139)
dp1c = Abs( pc,2,n1 - 2 * pc,1,n1 + pc,0,n1 )
(8-1140)
dq0 c = Abs( q c ,2,0 - 2 * q c ,1,0 + q c ,0,0 )
(8-1141)
dq1 c = Abs( q c ,2,n1 - 2 * q c ,1,n1 + q c ,0,n1 )
(8-1142)
dpq0 c = dp0 c + dq0 c
(8-1143)
dpq1 c = dp1 c + dq1 c
(8-1144)
dp c = dp0 c + dp1 c
(8-1145)
dq c = dq0 c + dq1 c
(8-1146)
d c = dpq0 c + dpq1 c
(8-1147)
2.
변수 d는 (d0 + d1 + 1) >> 1과 동일하게 설정된다.
3. 변수 dSam0 및 dSam1은 모두 0과 동일하게 설정된다.
4. d가 β보다 작을 때, 다음 순서 단계가 적용된다:
a. 변수 dpq는 2 * dpq0과 동일하게 설정된다.
b. 변수 dSam0은 샘플 위치(xCb + xBl, yCb + yBl)에 대해 샘플 값 p0.0, p3.0, q0.0 및 q3.0, 변수 dpq, β 및 tC를 입력으로 하여 8.8.3.6.8절에 지정된 대로 크로마 샘플에 대한 결정 프로세스를 호출하여 유도되고, 출력은 판정 dSam0에 할당된다.
c. 변수 dpq는 2 * dpq1과 동일하게 설정된다.
d. 변수 dSam1은 다음과 같이 수정된다:
- edgeType이 EDGE_VER와 동일하면, 샘플 위치( xCb + xBl, yCb + yBl + n1 )에 대해, 8.8.3.6.8절에 지정된 크로마 샘플에 대한 결정 프로세스는 샘플 값 p0,n1, p3,n1, q0,n1 및 q3,n1, 변수 dpq, β 및 tC를 입력으로 하여 호출되고, 출력은 판정 dSam1에 할당된다.
- 그렇지 않으면(edgeType이 EDGE_HOR와 동일함), 샘플 위치( xCb + xBl + n1, yCb + yBl )에 대해, 8.8.3.6.8절에 지정된 크로마 샘플에 대한 판정 프로세스는 샘플 값 p0,n1, p3,n1, q0,n1 및 q3,n1, 변수 dpq, β 및 tC를 입력으로 하여 호출되고, 출력은 판정 dSam1에 할당된다.
5. 변수 maxFilterLengthCbCr는 다음과 같이 수정된다:
- dSam0이 1이고 dSam1이 1이면, maxFilterLengthCbCr은 3과 동일하게 설정된다.
- 그렇지 않으면, maxFilterLengthCbCr이 1과 동일하게 설정된다.
8.8.3.6.3 크로마 블록 가장자리에 대한 필터링 프로세스
이 프로세스는 ChromaArrayType이 0이 아닐 때만 호출된다.
이 프로세스에 대한 입력은 다음과 같다:
크로마 픽처 샘플 어레이 recPicture,
현재 픽처의 왼측 상단 루마 샘플에 대한 현재 코딩 블록의 왼측 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
현재 크로마 코딩 블록의 왼쪽 상단 샘플에 대한 현재 크로마 블록의 왼쪽 상단 샘플을 지정하는 크로마 위치( xBl, yBl ),
수직(EDGE_VER) 또는 수평(EDGE_HOR) 가장자리가 필터링되는지 여부를 지정하는 변수 edgeType,
최대 크로마 필터 길이를 포함하는 변수 maxFilterLengthCbCr,
6.
컬러 컴포넌트 인덱스를 지정하는 변수 cIdx,
- 변수 tC.
이 프로세스의 출력은 수정된 크로마 픽처 샘플 어레이 recPicture이다.
...
i = 0..maxFilterLengthCbCr 및 k = 0..maxK인 값 pi 및 qi는 다음과 같이 유도된다:
- edgeType이 EDGE_VER와 동일하면, 다음이 적용된다:
qi,k = recPicture [cIdx] [ xCb + xBl + i ][ yCb + yBl + k ]
(8-1150)
pi,k = recPicture [cIdx] [xCb + xBl - i -1 ][ yCb + yBl + k ]
(8-1151)
- 그렇지 않으면(edgeType이 EDGE_HOR와 동일함), 다음이 적용된다:
qi,k = recPicture [cIdx] [ xCb + xBl + k ][ yCb + yBl + i ]
(8-1152)
pi,k = recPicture [cIdx] [ xCb + xBl + k ][ yCb + yBl - i -1 ]
(8-1153)
edgeType의 값에 따라, 다음이 적용된다:
- edgeType이 EDGE_VER와 같으면, 각 샘플 위치( xCb + xBl, yCb + yBl + k ), k = 0..maxK에 대해, 다음 순서 단계가 적용된다:
1. 8.8.3.6.9절에 지정된 크로마 샘플에 대한 필터링 프로세스는 변수 maxFilterLengthCbCr, i = 0..maxFilterLengthCbCr인 샘플 값 pi,k, qi,k, i = 0..maxFilterLengthCbCr - 1인 위치 (xCb + xBl - i - 1, yCb + yBl + k) 및 ( xCb + xBl + i, yCb + yBl + k), 및 변수 tC를 입력으로 하고, 및 i = 0..maxFilterLengthCbCr - 1인 필터링된 샘플 값 pi' 및 qi'를 출력으로하여 호출된다.
2. i = 0..maxFilterLengthCbCr - 1인 필터링된 샘플 값 pi' 및 qi'는 샘플 어레이 recPicture 내부의 대응하는 샘플을 다음과 같이 대체한다:
recPicture [cIdx] [ xCb + xBl + i ][ yCb + yBl + k ] = qi'
(8-1154)
recPicture [cIdx] [ xCb + xBl - i -1 ][ yCb + yBl + k ] = pi'
(8-1155)
- 그렇지 않으면(edgeType이 EDGE_HOR와 같음), 각 샘플 위치( xCb + xBl + k, yCb + yBl ), k = 0..maxK에 대해, 다음 순서 단계가 적용된다:
1. 8.8.3.6.9절에 지정된 크로마 샘플에 대한 필터링 프로세스는 변수 maxFilterLengthCbCr, i = 0..maxFilterLengthCbCr인 샘플 값 pi,k, qi,k, 위치 ( xCb + xBl + k, yCb + yBl - i -1 ) 및 ( xCb + xBl + k, yCb + yBl + i ), 및 변수 tC를 입력으로 하고, 및 필터링된 샘플 값 pi' 및 qi'를 출력으로하여 호출된다.
2. 필터링된 샘플 값 pi' 및 qi'는 샘플 어레이 recPicture 내부의 대응하는 샘플을 다음과 같이 대체한다:
recPicture [cIdx] [ xCb + xBl + k ][ yCb + yBl + i ] = qi'
(8-1156)
recPicture [cIdx] [ xCb + xBl + k ][ yCb + yBl - i -1 ] = pi'
5.11
실시예 #11
8.8.3.6.3 크로마 블록 가장자리에 대한 판정 프로세스
...
[[변수 QpQ 및 QpP는 각각 샘플 q0,0 및 p0,0을 포함하는 코딩 블록을 포함하는 코딩 유닛의 QpY 값과 동일하게 설정된다.
변수 QpC는 다음과 같이 유도된다:
qPi=Clip3( 0, 63, ( ( QpQ + QpP + 1 ) >> 1 ) + cQpPicOffset )(8-1132)
QpC=ChromaQpTable[ cIdx - 1 ][ qPi ] (8-1133)]]
ChromaArrayType이 0이 아니고 treeType이 SINGLE_TREE 또는 DUAL_TREE_CHROMA와 같으면 다음이 적용된다:
-
treeType이 DUAL_TREE_CHROMA와 같을 때, 변수 QpY는 루마 위치( xCb + cbWidth / 2, yCb + cbHeight / 2 )를 커버하는 루마 코딩 유닛의 루마 양자화 파라미터 QpY와 동일하게 설정된다.
-
변수 qPCb, qPCr 및 qPCbCr은 다음과 같이 유도된다:
qPiChroma = Clip3( -QpBdOffsetC, 63, QpY ) (8-935)
qPiCb = ChromaQpTable[ 0 ][ qPiChroma ] (8-936)
qPiCr = ChromaQpTable[ 1 ][ qPiChroma ] (8-937)
qPiCbCr = ChromaQpTable[ 2 ][ qPiChroma ] (8-938)
-
Cb 및 Cr 컴포넌트, Qp'Cb 및 Qp'Cr, 및 공동 Cb-Cr 코딩 Qp'CbCr에 대한 크로마 양자화 파라미터는 다음과 같이 유도된다:
Qp'Cb = Clip3( -QpBdOffsetC, 63, qPCb + pps_cb_qp_offset + slice_cb_qp_offset +CuQpOffsetCb ) + QpBdOffsetC (8-939)
Qp'Cr = Clip3( -QpBdOffsetC, 63, qPCr + pps_cr_qp_offset + slice_cr_qp_offset +CuQpOffsetCr ) + QpBdOffsetC (8-940)
Qp'CbCr = Clip3( -QpBdOffsetC, 63, qPCbCr + pps_cbcr_qp_offset + slice_cbcr_qp_offset +CuQpOffsetCbCr ) + QpBdOffsetC (8-941)
변수 QpQ 및 QpP는, 샘플 q0,0 및 p0,0을 각각 포함하는 코딩 블록을 포함하는 코딩 유닛의, cIdx가 1일 때 Qp'Cb 값, 또는 cIdx가 2일 때 Qp'Cr 값, 또는 tu_joint_cbcr_residual_flag가 1일 때 Qp'CbCr 값과 동일하게 설정된다.
변수 QpC는 다음과 같이 유도된다:
QpC = ( QpQ + QpP + 1 ) >> 1
5.12
실시예 #12
8.8.3.6.3 크로마 블록 가장자리에 대한 판정 프로세스
...
[[변수 QpQ 및 QpP는 각각 샘플 q0,0 및 p0,0을 포함하는 코딩 블록을 포함하는 코딩 유닛의 QpY 값과 동일하게 설정된다.
변수 QpC는 다음과 같이 유도된다:
qPi = Clip3( 0, 63, ( ( QpQ + QpP + 1 ) >> 1 ) + cQpPicOffset ) (8-1132)
QpC = ChromaQpTable[ cIdx - 1 ][ qPi ] (8-1133)
참고 - 변수 cQpPicOffset은 필터링된 크로마 컴포넌트가 Cb 컴포넌트인지 Cr 컴포넌트인지에 따라 pps_cb_qp_offset 또는 pps_cr_qp_offset 값에 대한 조정을 제공한다. 그러나, 픽처 내 조정의 양을 변경할 필요를 피하기 위해, 필터링 프로세스는 slice_cb_qp_offset 또는 slice_cr_qp_offset의 값에 대한 및 (cu_chroma_qp_offset_enabled_flag가 1인 경우) CuQpOffsetCb, CuQpOffsetCr, 또는 CuQpOffsetCbCr의 값에 대한 조정을 포함하지 않는다.
변수 Qp
Q
및 Qp
P
는, 샘플 q
0,0
및 p
0,0
을 각각 포함하는 트랜스폼 블록(xTb, yTb)의, TuCResMode[ xTb ][ yTb ]가 2일 때 Qp'
CbCr
- QpBdOffset
C
, cIdx가 1일 때 Qp'
Cb
- QpBdOffsetC; 및 Qp'Cr - cIdx가 2일 때 QpBdOffsetC와 동일하게 설정된다.
변수 QpC는 다음과 같이 유도된다:
Qp
C
= ( Qp
Q
+ Qp
P
+ 1 ) >> 1
6.
개시된 기술의 예 구현
도 12는 비디오 처리 장치(video processing apparatus)(1200)의 블록도이다. 장치(1200)는 여기에 설명된 방법들 중 하나 이상을 구현하는 데 사용될 수 있다. 장치(1200)는 스마트폰, 태블릿, 컴퓨터, 사물인터넷(IoT) 수신기 등으로 구현될 수 있다. 장치(1200)는 하나 이상의 프로세서(1202), 하나 이상의 메모리(1204) 및 비디오 처리 하드웨어(1206)를 포함할 수 있다. 프로세서(들)(1202)는 본 문서에 설명된 하나 이상의 방법을 구현하도록 구성될 수 있다. 메모리(메모리)(1204)은 여기에 설명된 방법 및 기술을 구현하는 데 사용되는 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 처리 하드웨어(1206)는 하드웨어 회로에서 본 문서에 설명된 일부 기술을 구현하는 데 사용될 수 있으며 프로세서(1202)의 일부 또는 전체 일 수 있다(예를 들어, 그래픽 프로세서 코어 GPU 또는 기타 신호 처리 회로).
본 문서에서 "비디오 처리(video processing)"라는 용어는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축 해제(decompression)를 의미할 수 있다. 예를 들어, 비디오 압축 알고리즘은 비디오의 픽셀 표현에서 대응하는 비트스트림 표현으로 또는 그 반대로 변환 동안 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스에 의해 정의된 바와 같이 비트스트림 내의 다른 위치들에 함께 배치(병치)(co-located)되거나 확산되는 비트들에 대응할 수 있다. 예를 들어, 매크로블록(macroblock)은 트랜스폼되고 코딩된 오류 잔차 값의 관점에서 그리고 또한 헤더의 비트 및 비트스트림의 다른 필드를 사용하여 인코딩될 수 있다.
개시된 방법 및 기술은 본 문서에 개시된 기술의 사용을 허용함으로써 스마트폰, 랩탑, 데스크탑, 및 유사한 장치와 같은 비디오 프로세싱 장치 내에 통합된 비디오 인코더 및/또는 디코더 실시예에 도움이 될 것이라는 것이 이해될 것이다.
도 13은 비디오 처리의 하나의 예의 방법(1300)에 대한 순서도이다 방법(1300)은, 1310에서, 비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 크로마 양자화 파라미터(QP) 테이블이 디블로킹 필터의 파라미터를 유도하기 위해 사용될 때 크로마 QP 테이블에 의한 처리가 개별 크로마 QP 값에 대해 수행되도록 디블로킹 필터가 비디오 유닛의 경계에 사용된다.
다양한 기술 및 실시예는 다음 절-기반의 포맷을 사용하여 설명될 수 있다.
1.
비디오 처리 방법에 있어서,
비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 크로마 양자화 파라미터(QP) 테이블이 디블로킹 필터의 파라미터를 유도하기 위해 사용될 때 크로마 QP 테이블에 의한 처리가 개별 크로마 QP 값에 대해 수행되도록 디블로킹 필터가 비디오 유닛의 경계에 사용된다.
2.
1절의 방법에서, 크로마 QP 오프셋은 크로마 QP 테이블에 의한 처리에 후속하여 개별 크로마 QP 값에 추가된다.
3. 1절 또는 2절 중 어느 하나의 방법에서, 크로마 QP 오프셋은 크로마 QP 테이블에 의해 출력된 값에 추가된다.
4.
1절 또는 2절 중 어느 하나의 방법에서, 크로마 QP 오프셋은 크로마 QP 테이블에 대한 입력으로서 고려되지 않는다.
5. 2절의 방법에서, 크로마 QP 오프셋은 픽처 레벨 또는 비디오 유닛 레벨에 있다.
6. 비디오 처리 방법에 있어서,
비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되고, 크로마 QP 오프셋은 픽처/슬라이스/타일/브릭/서브 픽처 레벨에 있다.
7.
6절의 방법에서, 디블로킹 필터에서 사용된 크로마 QP 오프셋은 비디오 유닛의 경계에 적용된 코딩 방법과 연관된다.
8. 7절의 방법에서, 코딩 방법은 색차 잔차(chrominance residual)의공동 코딩(JCCR) 방법이다.
9. 비디오 처리 방법에 있어서,
비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되고, 여기서 동일한 루마 코딩 유닛에 관한 정보가 디블로킹 필터에서 사용되며 크로마 QP 오프셋을 유도하기 위해 사용된다.
10. 9절의 방법에서, 동일한 루마 코딩 유닛은 비디오 유닛의 중심 위치의 대응하는 루마 샘플을 커버하고, 비디오 유닛은 크로마 코딩 유닛이다.
11.
9절의 방법에서, 스케일링 프로세스는 비디오 유닛에 적용되고, 디블로킹 필터의 하나 이상의 파라미터는 스케일링 프로세스의 양자화/역양자화 파라미터에 적어도 부분적으로 의존한다.
12.
11절의 방법에서, 스케일링 프로세스의 양자화/역양자화 파라미터는 크로마 QP 오프셋을 포함한다.
13. 9항 내지 12항 중 어느 하나의 방법에서, 비디오 유닛의 루마 샘플은 P 측 또는 Q 측이다.
14. 13절의 방법에서, 동일한 루마 코딩 유닛에 관한 정보는 동일한 루마 코딩 유닛에 대한 코딩 유닛의 상대 위치에 의존한다.
15. 비디오 처리 방법에 있어서,
비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되고, 크로마 QP 오프셋의 사용을 가능하게 하는 표시는 비트스트림 표현에서 시그널링된다.
16. 15절의 방법에서, 표시는 하나 이상의 플래그를 검출하는 것에 응답하여 조건부로 시그널링된다.
17. 16절의 방법에서, 하나 이상의 플래그는 JCCR 활성화 플래그 또는 크로마 QP 오프셋 활성화 플래그와 관련된다.
18. 15절의 방법에서, 표시는 유도에 기초하여 시그널링된다.
19. 비디오 처리 방법에 있어서,
비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되고, 디블로킹 필터에 사용되는 크로마 QP 오프셋은 비디오 유닛의 경계에 JCCR 코딩 방법이 적용되는지 또는 비디오 유닛의 경계에 JCCR 코딩 방법과 다른 방법이 적용되는지 여부와 동일하다.
20. 비디오 처리 방법에 있어서,
비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되며, 여기서 디블로킹 필터의 경계 강도(BS)는 P 측 경계에서 비디오 유닛과 연관된 다수의 모션 벡터를 레퍼런스 픽처 및/또는 Q 측에서 비디오 유닛과 연관된 다수의 모션 벡터(MV)와 비교하지 않고 계산된다.
21. 20절의 방법에서, 디블로킹 필터는 하나 이상의 조건 하에서 비활성화된다.
22. 21절의 방법에서, 하나 이상의 조건은 모션 벡터(MV)의 크기 또는 임계값과 연관된다.
23. 22절의 방법에서, 임계값은: i. 비디오 유닛의 콘텐츠,
ii. DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/최대 코딩 유닛(LCU)/코딩 유닛(CU)/LCU 행/LCU의 그룹/TU/PU 블록/비디오에서 시그널링되는 메시지 코딩 유닛, iii. CU/PU/TU/블록/비디오 코딩 유닛의 위치, iv. 경계를 따라 샘플이 있는 코딩된 블록 모드, V. 경계를 따라 샘플이 있는 비디오 유닛에 적용된 트랜스폼 매트릭스, vi. 비디오 장치의 모양 또는 치수, vii. 컬러 포맷 표시, viii. 코딩 트리 구조, ix. 슬라이스/타일 그룹 유형 및/또는 픽처 유형, x. 컬러 컴포넌트, xi. 시간적 계층 ID, 또는 xii. 프로필/레벨/계층 중 하나 이상과 연관된다.
24. 20절의 방법에서, TS 코딩된 비디오 유닛 및 비-TS 코딩된 비디오 유닛에 대해 상이한 QP 오프셋이 사용된다.
25. 20절의 방법에서, 루마 필터링 단계에서 사용되는 QP는 루마 블록의 스케일링 프로세스에서 사용되는 QP와 관련된다.
26. 1절 내지 25절 중 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
27. 1절 내지 25절 중 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
28. 컴퓨터 코드가 저장되어 있는 컴퓨터 프로그램에 있어서, 상기 코드는, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 1절 내지 25절 중 어느 한 항에서 인용된 방법을 구현하게 하는 컴퓨터프로그램.
29.
본 문서에 기술된 방법, 장치 및 시스템.
도 15는 본 개시의 기술을 활용할 수 있는 예제 비디오 코딩 시스템(100)을 예시하는 블록도이다.
도 15에 도시된 바와 같이, 비디오 코딩 시스템(100)은 소스 장치(110)와 목적 장치(120)를 포함할 수 있다. 소스 장치(110)는 인코딩된 비디오 데이터를 생성하고, 비디오 인코딩 장치로 참조될 수 있다. 목적 장치(120)는 소스 장치(110)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있고, 비디오 디코딩 장치로 참조될 수 있다.
소스 장치(110)에는 비디오 소스(112), 비디오 인코더(114) 및 입력/출력(I/O) 인터페이스(116)가 포함될 수 있다.
비디오 소스(112)에는 비디오 캡처 장치, 비디오 컴텐츠 공급자로부터 비디오 데이터를 수신하는 인터페이스, 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템 또는 이러한 소스의 조합을 포함할 수 있다. 상기 비디오 데이터는 하나 이상의 픽처를 포함할 수 있다. 비디오 인코더(114)는 비디오 소스(112)의 비디오 데이터를 인코딩하여 비트스트림을 생성한다. 비트스트림에는 비디오 데이터의 코딩된 표현을 형성하는 비트들의 시퀀스가 포함될 수 있다. 비트스트림에는 코딩된 픽처 및 관련 데이터가 포함될 수 있다. 코딩된 픽처는 픽처의 코딩된 표현(representation)이다. 관련 데이터에는 시퀀스 파라미터 세트, 픽처 파라미터 세트 및 기타 신택스 구조가 포함될 수 있다. 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)의 다양한 컴포넌트들 간에 공유될 수 있다. 일부 예에서, 프로세서는 본 개시에 기재된 임의 또는 전부를 수행하기 위해 구성될 수 있다.
비디오 인코더(video encoder)(200)의 기능적 컴포넌트는 파티션 유닛(partition unit)(201)와, 모드 선택 유닛(mode select unit)(203), 모션 추정 유닛(motion estimation unit)(204), 모션 보상 유닛(motion compensation unit)(205) 및 인트라 예측 유닛(intra prediction unit)(206)을 포함할 수 있는 예측 유닛(predication unit)(202)과, 잔차 생생 유닛(residual generation unit)(207), 트랜스폼 유닛(transform unit)(208), 양자화 유닛(quantization unit)(209), 역양자화 유닛(inverse quantization unit)(210), 역트랜스폼 유닛(inverse transform unit)(211), 재구성 유닛(reconstruction unit)(212), 버퍼(buffer)(213), 및 엔트로피 인코딩 유닛(entropy encoding unit)(214)를 포함할 수 있다.
다른 예에서, 비디오 인코더(200)에는 더 많거나, 적거나, 다른 기능적 컴포넌트가 포함될 수 있다. 예를 들어, 예측 유닛(202)는 인트라 블록 카피(IBC) 유닛을 포함할 수 있다. IBC 유닛은 IBC 모드에서 적어도 하나의 레퍼런스 픽처가 현재 비디오 블록이 있는 픽처인 경우 의 예측을 수행할 수 있다.
또한, 모션 추정 유닛(204) 및 모션 보정 유닛(205)과 같은 일부 컴포넌트는 고집적될 수 있으나, 도 5의 예에서는 설명의 목적을 위해 분리된 것으로 표현되었다.
파티션 장치(201)는 픽처를 하나 이상의 비디오 블록으로 파티셔닝할 수 있다. 비디오 인코더(200) 및 비디오 디코더(300)는 다양한 비디오 블록 크기를 지원할 수 있다.
모드 선택 유닛(203)는 오류 결과에 기초하여 코딩 모드, 예를 들면, 인트라 또는 인터 등을 선택하고, 결과인 인트라 또는 인터 코딩된 블록을, 잔차 생성 유닛(207)에 제공하여 잔차 블록 데이터를 생성하고, 재구성 유닛(212)으로 제공하여 레퍼런스 픽처로 사용하기 위한 인커딩된 블록을 재구성한다. 일부 예에서, 모드 선택 유닛(203)는 인트라 및 인터 예측(CIIP) 모드의 조합을 선택할 수 있고, 이 모드에서 예측은 인터 예측 시그널 및 인트라 예측 시그널에 기초한다. 모드 선택 유닛(203)은 또한, 인터 예측의 경우 블록에 대한 모션 벡터의 해상도(예를 들어, 서브 픽셀 또는 정수 픽셀 정밀도)를 선택할 수 있다.
현재 비디오 블록에서 인터 예측을 수행하기 위해, 모션 추정 유닛(204)은 버퍼(213)에서 현재 비디오 블록에 하나 이상의 레퍼런스 프레임을 비교하여 현재 비디오 블록에 대한 모션 정보를 생성할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록과 관련된 픽처 이외의 버퍼(213)로부터의 모션 정보 및 디코딩된 픽처 샘플에 기초하여 현재 비디오 블록에 대한 예측 비디오 블록을 결정할 수 있다.
모션 추정 유닛(204) 및 모션 보상 유닛(205)은 현재 비디오 블록이 I 슬라이스, P 슬라이스 또는 B 슬라이스에 있는지 여부에 따라 현재 비디오 블록에 대해 서로 다른 작업을 수행할 수 있다.
일부 예에서, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 유니-디렉셔널(uni-directional) 예측을 수행할 수 있고, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 레퍼런스 비디오 블록에 대한 list 0 또는 list 1의 레퍼런스 픽처를 검색할 수 있다. 그런 다음, 모션 추정 유닛(204)은 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 공간 변위(spatial displacement)를 나타내는 레퍼런스 비디오 블록 및 모션 벡터를 포함하는 list 0 또는 list 1에서 레퍼런스 픽처를 나타내는 레퍼런스 인덱스를 생성할 수 있다. 모션 추정 유닛(204)은 레퍼런스 인덱스, 예측 디렉션 표시기 및 모션 벡터를 현재 비디오 블록의 모션 정보로 출력할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록의 동작 정보에 의해 표시된 레퍼런스 비디오 블록에 기초하여 현재 블록의 예측된 비디오 블록을 생성할 수 있다.
다른 예에서, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 바이-디렉셔널(bi-directional) 예측을 수행할 수 있고, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 레퍼런스 비디오 블록에 대한 list 0에서 레퍼런스 픽처를 검색할 수 있으며, 또한 현재 비디오 블록에 대한 다른 레퍼런스 비디오 블록에 대한 list 1에서 레퍼런스 픽처를 검색할 수 있다. 그런 다음, 모션 추정 유닛(204)은 레퍼런스 비디오 블록과 현재 비디오 블록 사이의 공간 변위를 나타내는 레퍼런스 비디오 블록 및 모션 벡터를 포함하는 list 0 및 list 1에서 레퍼런스 픽처를 나타내는 레퍼런스 인덱스를 생성할 수 있다. 모션 추정 유닛(204)은 현재 비디오 블록의 모션 정보로서 현재 비디오 블록의 레퍼런스 인덱스 및 모션 벡터를 출력할 수 있다. 모션 보정 유닛(205)은 현재 비디오 블록의 동작 정보에 의해 표시된 레퍼런스 비디오 블록에 기초하여 현재 비디오 블록의 예측 비디오 블록을 생성할 수 있다.
일부 예에서, 모션 추정 유닛(204)은 디코더의 디코딩 처리를 위한 전체 모션 정보 세트를 출력할 수 있다.
일부 예에서, 모션 추정 유닛(204)은 현재 비디오에 대한 전체 모션 정보 세트를 출력하지 않을 수 있다. 오히려, 모션 추정 유닛(204)은 다른 비디오 블록의 동작 정보를 참조하여 현재 비디오 블록의 모션 정보를 시그널링할 수 있다. 예를 들어, 모션 추정 유닛(motion estimation unit)(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)이 비디오 블록을 재구성한 후, 비디오 블록에서 비디오 차단 아티팩트를 줄이기 위해 루프 필터링 동작이 수행된다.
엔트로피 인코딩 유닛(214)은 비디오 인코더(200)의 다른 함수 컴포넌트로부터 데이터를 수신할 수 있다. 엔트로피 인코딩 유닛(214)이 데이터를 수신하는 경우, 엔트로피 인코딩 유닛(214)은 엔트로피 인코딩된 데이터를 생성하고 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력하기 위해 하나 이상의 엔트로피 인코딩 동작을 수행할 수 있다.
도 17은 도 15에 도시된 시스템(100)에서 비디오 디코더(114)일 수 있는 비디오 디코더(300)의 예를 보여주는 블록 다이어그램이다.
비디오 디코더(300)는 본 개시의 기술 중 어느 또는 전부를 수행하도록 구성될 수 있다. 도 17의 예에서, 비디오 디코더(300)는 복수의 기능성 컴포넌트를 포함한다. 본 개시에 기재된 기술은 비디오 디코더(300)의 다양한 컴포넌트들 간에 공유될 수 있다. 일부 예에서, 프로세서는 본 개시에 기재된 임의 또는 전부를 수행하기 위해 구성될 수 있다.
도 17의 예에서, 비디오 디코더(300)는 엔트로피 디코딩 유닛(entropy decoding unit)(301), 모션 보정 유닛(motion compensation unit)(302), 인트라 예측 유닛(intra prediction unit)(303), 역 양자화 유닛(inverse quantization unit)(304), 역 변환 유닛(inverse transformation unit)(305) 및 재구성 유닛(reconstruction unit)(306) 및 버퍼(307)를 포함한다. 비디오 디코더(300)는, 일부 예에서, 비디오 인코더(200)에 대하여 기술된 인코딩 패스(pass)와 일반적으로 서로 주고 받는(reciprocal) 디코딩 패스를 수행할 수 있다(도 16).
엔트로피 디코딩 유닛(301)은 인코딩된 비트스트림을 검색할 수 있다. 인코딩된 비트스트림에는 엔트로피 코딩된 비디오 데이터(예를 들어, 비디오 데이터의 인코딩된 블록)가 포함될 수 있다. 엔트로피 디코딩 유닛(301)은 엔트로피 코딩된 비디오 데이터를 디코딩할 수 있고, 엔트로피 디코딩된 비디오 데이터로부터 모션 보상 유닛(302)은 모션 벡터, 모션 벡터 정밀도, 레퍼런스 픽처 목록 인덱스 및 기타 모션 정보를 포함하는 모션 정보를 결정할 수 있다. 모션 보상 유닛(302)는, 예를 들어 AMVP 및 병합 모드를 수행하여 이러한 정보를 결정할 수 있다.
모션 보상 유닛(302)는 보간 필터에 기초하여 보간(interpolation)을 수행하여 모션 보정 블록을 생성할 수 있다. 서브 픽셀 정밀도와 함께 사용되는 보간 필터에 대한 식별자가 신텍스 요소에 포함될 수 있다.
모션 보상 유닛(302)는 비디오 블록을 인코딩하는 동안 비디오 인코더(20)에서 사용하는 보간 필터를 사용하여 레퍼런스 블록의 서브 정수 픽셀에 대한 보간 값을 계산할 수 있다. 모션 보상 유닛(302)는 수신된 신텍스 정보에 따라 비디오 인코더(200)에서 사용하는 보간 필터를 결정하고 보간 필터를 사용하여 예측 블록을 생성할 수 있다.
모션 보상 유닛(302)는 인코딩된 비디오 시퀀스의 프레임 및/또는 슬라이스를 인코딩하는 데 사용되는 블록의 크기, 인코딩된 비디오 시퀀스의 각 매크로 블록이 파티셔닝되는 방식을 설명하는 파티션 정보, 각 파티션이 인코딩된 방법, 각 파티션이 인코딩되는 방식을 나타내는 모드, 각 인터-인코딩된 블록에 대한 하나 이상의 레퍼런스 프레임(및 레퍼런스 프레임 목록) 및 인코딩된 비디오 시퀀스를 디코딩하는 다른 정보들을 결정하기 위해 일부 신텍스 정보를 사용할 수 있다.
인트라 예측 유닛(303)는, 예를 들어 비트스트림에서 수신된 인트라 예측 모드를 사용하여 공간적으로 인접한 블록으로부터 예측 블록을 형성할 수 있다. 역양자화 유닛(303)는 비트스트림에서 제공되고 엔트로피 디코딩 유닛(301)에서 디코딩된 양자화된 비디오 블록 계수를 역양자화(예를 들어, 비양자화(de-quantize))한다. 역트랜스폼 유닛(Inverse transform unit)(303)은 역트랜스폼을 적용한다.
재구성 유닛(Reconstruction unit)(306)은 모션 보상 유닛(202) 또는 인트라 예측 유닛(303)에 의해 생성된 대응하는 예측 블록과 잔차 블록을 합산하여 디코딩된 블록을 형성할 수 있다. 원하는 경우, 디블로킹 필터(deblocking filter)를 적용하여 차단 아티팩트를 제거하기 위해 디코딩된 블록을 필터링할 수도 있다. 그 후, 디코딩된 비디오 블록은 버퍼(buffer)(307) 에 저장되고, 버퍼(307)는 후속 모션 보상을 위한 레퍼런스 블록을 제공한다.
도 18은 여기에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 처리 시스템(1800)을 도시하는 블록도이다. 다양한 구현은 시스템(1800)의 컴포넌트 중 일부 또는 전부를 포함할 수 있다. 시스템(1800)은 비디오 콘텐츠를 수신하기 위한 입력(1802)을 포함할 수 있다. 비디오 콘텐츠는 원시 또는 압축되지 않은 포맷, 예를 들어, 8 또는 10비트 다중 컴포넌트 픽셀 값으로 수신될 수 있거나 압축 또는 인코딩된 포맷일 수 있다. 입력(1802)은 네트워크 인터페이스, 주변 버스 인터페이스, 또는 저장 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예로는 이더넷, 수동 광 네트워크(PON) 등과 같은 유선 인터페이스와 Wi-Fi 또는 셀룰러 인터페이스와 같은 무선 인터페이스가 있다.
시스템(1800)은 본 문서에 설명된 다양한 코딩 또는 인코딩 방법을 구현할 수 있는 코딩 컴포넌트(1804)를 포함할 수 있다. 코딩 컴포넌트(1804)는 비디오의 코딩된 표현을 생성하기 위해 입력(1802)으로부터 코딩 컴포넌트(1804)의 출력으로 비디오의 평균 비트레이트를 줄일 수 있다. 따라서 코딩 기술은 비디오 압축 또는 비디오 트랜스코딩 기술이라고도 한다. 코딩 컴포넌트(1804)의 출력은 컴포넌트(1806)에 의해 표현되는 바와 같이, 연결된 통신을 통해 저장되거나 전송될 수 있다. 입력(1802)에서 수신된 비디오의 저장 또는 통신된 비트스트림(또는 코딩된) 표현은 디스플레이 인터페이스(1810)로 전송되는 픽셀 값 또는 디스플레이 가능한 비디오를 생성하기 위해 컴포넌트(1808)에 의해 사용될 수 있다. 비트스트림 표현에서 사용자가 볼 수 있는 비디오를 생성하는 프로세스를 비디오 압축 해제(decompression)라고도 한다. 또한, 특정 비디오 처리 작업을 "코딩" 작업(coding operation) 또는 툴(tools)로 지칭하지만, 코딩 툴 또는 작업이 인코더에서 사용되고 코딩 결과를 되돌리는 대응하는 디코딩 툴 또는 작업이 디코더에 의해 수행된다는 점을 이해할 것이다.
주변 버스 인터페이스 또는 디스플레이 인터페이스의 예로는 범용 직렬 버스(USB) 또는 고화질 멀티미디어 인터페이스(HDMI) 또는 디스플레이포트 등이 포함될 수 있다. 스토리지 인터페이스의 예로는 SATA(직렬 첨단 기술 첨부 파일), PCI, IDE 인터페이스 등이 있다. 본 문서에 기재된 기술은 휴대전화, 노트북, 스마트폰 또는 디지털 데이터 처리 및/또는 비디오 디스플레이를 수행할 수 있는 기타 장치와 같은 다양한 전자 기기에 구현될 수 있다.
도 19는 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(1900)은, 동작(1910)에서, 비디오의 크로마 블록과 비디오의 비트스트림 표현 사이의 변환을 위해 , 크로마 블록에 대한 크로마 잔차의 공동 코딩 모드에 기초하여 크로마 블록의 가장자리에서 적어도 일부 샘플에 대한 디블로킹 필터 프로세스의 적용 가능성을 결정하는 단계를 포함한다. 방법(1900)은, 동작(1920)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 크로마 잔차의 공동 코딩의 모드를 나타내는 값은 2와 동일하다. 일부 실시예에서, 디블로킹 필터 프로세스는 비디오 유닛 레벨에서 하나 이상의 양자화 파라미터 오프셋을 더 사용하고, 비디오 유닛은 픽처, 슬라이스, 타일, 브릭, 또는 서브픽처를 포함한다.
도 20은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 이 방법(2000)은, 동작(2010)에서, 비디오의 현재 블록과 비디오의 비트스트림 표현 사이의 변환을 위해, 현재 블록의 대응하는 트랜스폼 블록의 정보에 기초하여 현재 블록의 가장자리에서 적어도 일부 샘플에 적용되는 디블로킹 필터링 프로세스에 사용되는 크로마 양자화 파라미터를 결정하는 단계를 포함한다. 방법(2000)은, 동작(2020)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 크로마 양자화 파라미터는 현재 블록의 가장자리의 제1 측을 따라 샘플을 디블로킹하기 위해 사용되고, 크로마 양자화 파라미터는 제1 측 상에 있는 트랜스폼 블록의 모드에 기초한다. 일부 실시예에서, 제1 측은 P 측으로 지칭되고, P 측은 가장자리가 수평 경계인 경우 가장자리 위에 위치하거나, 가장자리가 수직 경계인 경우 가장자리의 왼쪽에 위치된 샘플을 포함한다. 일부 실시예에서, 크로마 양자화 파라미터는 현재 블록의 가장자리의 제2 측을 따라 샘플을 디블로킹하기 위해 사용되고, 크로마 양자화 파라미터는 제2 측 상에 있는 트랜스폼 블록의 모드에 기초한다. 일부 실시예에서, 제2 측면은 Q 측으로 지칭되며, Q 측은 가장자리가 수평 경계인 경우 가장자리 아래에 또는 가장자리가 수직 경계인 경우 가장자리의 오른쪽에 위치된 샘플을 포함한다.
일부 실시예에서, 크로마 양자화 파라미터는 크로마 잔차의 공동 코딩 모드가 적용되는지 여부에 기초하여 결정된다. 일부 실시예에서, 크로마 양자화 파라미터는 크로마 잔차의 공동 코딩 모드가 2와 동일한지 여부에 기초하여 결정된다.
도 21은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(2100)은, 동작(2110)에서, 비디오의 현재 블록과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 변환 동안, 현재 블록의 가장자리를 따라 적어도 일부 샘플에 적용되는 디블로킹 필터링 프로세스에서 사용되는 제1 크로마 양자화 파라미터는 스케일링 프로세스에서 사용되는 제2 크로마 양자화 파라미터 및 비트 심도와 연관된 양자화 파라미터 오프셋에 기초한다.
일부 실시예에서, 제1 크로마 양자화 파라미터는 스케일링 프로세스에서 사용된 제2 양자화 파라미터에서 비트 심도와 연관된 양자화 파라미터 오프셋을 뺀 것과 동일하다. 일부 실시예에서, 제1 크로마 양자화 파라미터는 현재 블록의 가장자리의 제1 측을 따라 샘플을 디블로킹하기 위해 사용된다. 일부 실시예에서, 제1 측은 P 측으로 지칭되고, P 측은 가장자리가 수평 경계인 경우 가장자리 위에 위치되거나 또는 경계가 수직 경계인 경우 가장자리의 왼쪽에 위치되는 샘플을 포함한다. 일부 실시예에서, 제1 크로마 양자화 파라미터는 현재 블록의 가장자리의 제2 측을 따라 샘플을 디블로킹하기 위해 사용된다. 일부 실시예에서, 제2 측면은 Q 측으로 지칭되며, Q 측은 가장자리가 수평 경계인 경우 가장자리 아래에 또는 가장자리가 수직 경계인 경우 가장자리의 오른쪽에 위치된 샘플을 포함한다.
일부 실시예에서, 제1 크로마 양자화 파라미터는 비트 심도와 연관된 양자화 파라미터 오프셋을 뺀 스케일링 프로세스에서 사용되는 크로마 잔차의 공동 코딩에 대한 제2 양자화 파라미터와 동일하다. 일부 실시예에서, 제1 크로마 양자화 파라미터는 비트 심도와 연관된 양자화 파라미터 오프셋을 뺀 스케일링 프로세스에서 사용되는 크로마 Cb 컴포넌트에 대한 제2 양자화 파라미터와 동일하다. 일부 실시예에서, 제1 크로마 양자화 파라미터는 비트 심도와 연관된 양자화 파라미터 오프셋을 뺀 스케일링 프로세스에서 사용된 크로마 Cr 컴포넌트에 대한 제2 양자화 파라미터와 동일하다.
도 22는 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(2200)은, 동작(2210)에서, 하나 이상의 코딩 유닛을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비트스트림 표현은 크로마 양자화 파라미터가 포맷 규칙에 따라 코딩 유닛 레벨 또는 트랜스폼 유닛 레벨에서 비트스트림 표현에 포함된다는 것을 지정하는 포맷 규칙을 따른다.
일부 실시예에서, 포맷 규칙은 코딩 유닛의 크기가 가상 파이프라인 데이터 유닛보다 큰 경우에 크로마 양자화 파라미터가 코딩 유닛 레벨에 포함되는 것을 특정한다. 일부 실시예에서, 포맷 규칙은 코딩 유닛의 크기가 가상 파이프라인 데이터 유닛보다 크거나 같은 경우에 크로마 양자화 파라미터가 트랜스폼 유닛 레벨에 포함되는 것을 특정한다. 일부 실시예에서, 포맷 규칙은 코딩 유닛의 크기가 최대 트랜스폼 블록 크기보다 큰 경우에 크로마 양자화 파라미터가 코딩 유닛 레벨에 포함되는 것을 특정한다. 일부 실시예에서, 포맷 규칙은 코딩 유닛의 크기가 최대 트랜스폼 블록 크기보다 크거나 같은 경우에 크로마 양자화 파라미터가 트랜스폼 유닛 레벨에 포함되는 것을 특정한다. 일부 실시예에서, 포맷 규칙은 크로마 잔차 모드의 공동 코딩이 하나 이상의 코딩 유닛 중 제1 코딩 유닛에 적용가능한지 여부가 코딩 유닛 레벨에서 표시된다는 것을 추가로 지정한다. 일부 실시예에서, 제1 코딩 유닛 내의 트랜스폼 블록은 크로마 잔차 모드의 공동 코딩이 제1 코딩 유닛 레벨에서 적용가능한지 여부에 대한 정보를 상속한다.
도 23은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(2300)은, 동작(2310)에서, 비디오의 제1 블록과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비트스트림 표현은 크로마 잔차 모드의 공동 코딩이 블록에 적용 가능한지 여부가 비트스트림 표현의 코딩 유닛 레벨에서 표시된다는 것을 지정하는 포맷 규칙을 따른다.
일부 실시예에서, 변환 동안, 코딩 유닛 내의 변환 블록은 크로마 잔차 모드의 공동 코딩이 코딩 유닛 레벨에서 적용가능한지에 대한 정보를 상속한다.
일부 실시예에서, 변환은 비디오를 비트스트림 표현으로 인코딩하는 단계를 포함한다. 일부 실시예에서, 변환은 비트스트림 표현을 비디오로 디코딩하는 단계를 포함한다.
개시된 기술의 일부 실시예는 비디오 프로세싱 툴 또는 모드를 활성화하기 위한 판정(decision) 또는 결정(determination)을 내리는 것을 포함한다. 예들 들어, 비디오 프로세싱 툴 또는 모드가 활성화되면 인코더가 비디오 블록 프로세싱에서 툴 또는 모드를 사용하거나 구현하지만, 툴 또는 모드의 사용에 따라 결과 비트스트림을 반드시 수정할 필요는 없다. 즉, 비디오 블록에서 비디오의 비트스트림 표현으로 변환하면 판정 또는 결정에 따라 활성화될 때 비디오 프로세싱 툴 또는 모드를 사용한다. 또 다른 예에서, 비디오 프로세싱 툴 또는 모드가 활성화되면 디코더는 비디오 프로세싱 툴 또는 모드에 따라 비트스트림이 수정되었다는 것을 알고 비트스트림을 프로세싱 한다. 즉, 비디오의 비트스트림 표현에서 비디오 블록으로의 변환은 판정 또는 결정에 기초하여 활성화된 비디오 프로세싱 툴 또는 모드를 사용하여 수행된다.
개시된 기술의 일부 실시예에는 비디오 프로세싱 툴 또는 모드를 비활성화하는 판정(decision) 또는 결정(determination)을 내리는 것이 포함된다. 예들 들어, 비디오 프로세싱 툴 또는 모드가 비활성화되면, 인코더는 비디오 블록을 비디오 블록으로 변환하는 데 툴 또는 모드를 사용하지 않는다. 다른 예에서, 비디오 처리 툴 또는 모드가 비활성화될 때, 디코더는 판정 또는 판정에 기초하여 활성화된 비디오 처리 툴 또는 모드를 사용하여 비트스트림이 수정되지 않았다는 지식으로 비트스트림을 처리할 것이다.
본 문서에 기재된 개시 및 기타 솔루션, 예, 실시예, 모듈 및 기능적 작업은 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있으며, 여기에는 이 문서 및 그 구조적 등가물 또는 그 중 하나 이상의 조합으로 구현될 수 있다. 개시된 및 기타 실시예는 하나 이상의 컴퓨터 프로그램 제품으로 구현될 수 있고, 즉, 컴퓨터 프로그램 지침의 하나 이상의 모듈을 컴퓨터 판독 가능한 매체에 인코딩 하여 실행하거나, 데이터 처리 장치의 작동을 제어할 수 있다. 컴퓨터가 읽을 수 있는 매체는 기계가 읽을 수 있는 저장 장치, 기계가 읽을 수 있는 스토리지 기판, 메모리 장치, 기계가 읽을 수 있는 전파 신호에 영향을 미치는 물질의 조성 또는 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치"는 예를 들어, 프로그래밍 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 장치, 장치 및 컴퓨터를 포함한다. 이 장치에는 대응하는 컴퓨터 프로그램에 대한 실행 환경을 만드는 코드(예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 하나 이상의 조합)가 포함될 수 있다. 전파된 신호는 인위적으로 생성된 신호, 예를 들어, 기계에서 생성된 전기, 광학 또는 전자기 신호이고, 이는 적합한 수신기 장치로 전송하기 위한 정보를 인코딩 하기 위해 생성된다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은 컴파일 된 언어를 비롯한 모든 형태의 프로그래밍 언어로 작성할 수 있으며 독립 실행형 프로그램 또는 컴퓨팅 환경에서 사용하기에 적합한 모듈, 컴포넌트, 서브루틴 또는 기타 유닛으로 모든 형태로 배포할 수 있다. 컴퓨터 프로그램이 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트), 대응하는 프로그램에 전용되는 단일 파일 또는 여러 조정된 파일들(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 일부를 저장하는 파일)에 저장할 수 있다. 컴퓨터 프로그램은 한 컴퓨터 또는 한 사이트에 위치하거나 여러 사이트에 분산되고 통신 네트워크에 의해 상호 연결된 여러 컴퓨터에서 실행하도록 배포할 수 있다.
이 문서에 설명된 프로세스 및 논리 흐름은 하나 이상의 프로그래밍 가능한 프로세서가 하나 이상의 프로그래밍 가능한 프로세서에서 수행하여 입력 데이터에서 작동하고 출력을 생성하여 기능을 수행할 수 있다. 프로세스 및 로직 흐름도 수행될 수 있으며, 장치는 특수 목적 논리 회로, 예를 들어, FPGA(필드 프로그래밍 가능한 게이트 어레이) 또는 ASIC(애플리케이션 별 집적 회로)로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서에는 예를 들어, 일반 및 특수 목적 마이크로프로세서와 모든 종류의 디지털 컴퓨터의 하나 이상의 프로세서가 포함된다. 일반적으로 프로세서는 읽기 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다에서 지침과 데이터를 받게 된다. 컴퓨터의 필수 요소는 지침과 데이터를 저장하기 위한 하나 이상의 메모리 장치를 수행하기 위한 프로세서이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치, 예를 들어, 자기, 광자기 디스크, 또는 광 디스크로부터 데이터를 수신하거나 이들로 데이터를 전송하거나 둘 전체를 포함하거나 작동 가능하게 연결된다. 그러나, 컴퓨터에 이러한 장치가 필요하지 않는다. 컴퓨터 프로그램 지침 및 데이터를 저장하는 데 적합한 컴퓨터 판독 가능한 미디어에는 반도체 메모리 장치, 예를 들어, EPROM, EEPROM 및 플래시 메모리 장치, 자기 디스크, 예를 들어, 내부 하드 디스크 또는 이동식 디스크; 마그네토 광학 디스크; 및 CD ROM 및 DVD-ROM 디스크를 비롯한 모든 형태의 비휘발성 메모리, 미디어 및 메모리 장치가 포함된다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보충되거나 통합될 수 있다.
이 특허 문서에는 많은 세부 사항이 포함되어 있지만, 이는 어떤 주제의 범위 나 청구 될 수 있는 것에 대한 제한으로 해석되어서는 안되며, 오히려 특정 기술의 특정 구현예에 특정할 수 있는 특징에 대한 설명으로 해석되어서는 안 된다. 이 특허 문서에 기재된 특정 특징은 별도의 실시예의 맥락에서 또한 단일 실시예에서 조합하여 구현될 수 있다. 역으로, 단일 실시예의 맥락에서 설명된 다양한 특징은 또한 개별적으로 또는 임의의 적절한 서브 조합으로 다중 실시예들에서도 구현될 수 있다. 더욱이, 앞서와 같이 특징들은 특정 조합으로 작용하는 것으로 설명될 수 있고 심지어 처음에 그렇게 주장될 수도 있지만, 청구된 조합으로부터 하나 이상의 특징은 어떤 경우에는 조합으로부터 제외될 수 있고, 주장된 조합은 서브 조합 또는 서브 조합의 변형에 관한 것일 수 있다.
마찬가지로, 동작은 특정 순서로 도면에 묘사되어 있지만, 바람직한 결과를 달성하기 위하여, 이러한 동작이 표시된 특정 순서 또는 순차적인 순서로 수행되거나, 모든 예시된 동작들이 수행되는 것을 요구하는 것으로 이해되어서는 안 된다. 더욱이, 본 특허 문서에 기재된 실시예들에서, 다양한 시스템 컴포넌트들의 분리가 모든 실시예들에서 이러한 분리를 요구하는 것으로 이해되어서는 안 된다.
몇 가지 구현 및 예제만 설명되며 이 특허 문서에 설명되고 도시된 내용에 따라 다른 구현, 개선 및 변형을 만들 수 있다.
Claims (14)
- 비디오 처리 방법에 있어서,
하나 이상의 코딩 유닛을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고,
상기 비트스트림 표현은 크로마 양자화 파라미터가 포맷 규칙에 따른 코딩 유닛 레벨 또는 트랜스폼 유닛 레벨에서 비트스트림 표현에 포함된다는 것을 지정하는 포맷 규칙을 따르는
방법.
- 제1항에 있어서,
상기 포맷 규칙은 상기 코딩 유닛의 크기가 가상 파이프라인 데이터 유닛 보다 큰 경우 상기 크로마 양자화 파라미터가 코딩 유닛 레벨에 포함되는 것을 지정하는
방법.
- 제1항에 있어서,
상기 포맷 규칙은 상기 코딩 유닛의 크기가 가상 파이프라인 데이터 유닛보다 크거나 같은 경우 상기 크로마 양자화 파라미터가 트랜스폼 유닛 레벨에 포함되는 것을 지정하는
방법.
- 제1항에 있어서,
상기 포맷 규칙은 상기 코딩 유닛의 크기가 최대 트랜스폼 블록 크기보다 큰 경우 상기 크로마 양자화 파라미터가 코딩 유닛 레벨에 포함되는 것을 지정하는
방법.
- 제1항에 있어서,
상기 포맷 규칙은 상기 코딩 유닛의 크기가 최대 트랜스폼 블록 크기보다 크거나 같은 경우 상기 크로마 양자화 파라미터가 트랜스폼 유닛 레벨에 포함되는 것을 지정하는
방법.
- 제1항에 있어서,
상기 포맷 규칙은 크로마 잔차 모드의 공동 코딩이 상기 하나 이상의 코딩 유닛 중 제1 코딩 유닛에 적용 가능한지 여부가 코딩 유닛 레벨에서 표시된다는 것을 추가로 지정하는
방법.
- 제6항에 있어서,
상기 제1 코딩 유닛 내의 트랜스폼 블록은 상기 크로마 잔차 모드의 공동 코딩이 상기 제1 코딩 유닛 레벨에서 적용가능한지 여부에 대한 정보를 상속하는
방법.
- 비디오 처리 방법에 있어서,
비디오의 블록과 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고,
상기 비트스트림 표현은 크로마 잔차 모드의 공동 코딩이 상기 블록에 적용 가능한지 여부가 상기 비트스트림 표현의 코딩 유닛 레벨에서 표시된다는 것을 지정하는 포맷 규칙을 따르는
방법.
- 제8항에 있어서,
상기 변환 동안, 코딩 유닛 내의 트랜스폼 블록은 크로마 잔차 모드의 공동 코딩이 상기 코딩 유닛 레벨에서 적용가능한지에 대한 정보를 상속하는
방법.
- 제1항 내지 제9항 중 어느 한 항에 있어서,
상기 변환은 상기 비디오를 상기 비트스트림으로 인코딩하는 단계를 포함하는
방법.
- 제1항 내지 제9항 중 어느 한 항에 있어서,
상기 변환은 상기 비트스트림 표현을 상기 비디오로 디코딩하는 단계를 포함하는
방법.
- 제1항 내지 제11항 중 어느 한 항에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코더 장치.
- 코드가 저장된 컴퓨터 판독 가능 매체에 있어서,
상기 코드는, 프로세서에 의해서 실행될 때, 상기 프로세서로 하여금 제1항 내지 제11항 중 어느 하나 이상의 방법을 구현하게 하는 코드가 저장된 컴퓨터 판독 가능 매체.
- 제1항 내지 제11항 중 어느 한 항에 따른 생성된 비트스트림 표현을 저장하는 컴퓨터 판독가능 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2019111115 | 2019-10-14 | ||
CNPCT/CN2019/111115 | 2019-10-14 | ||
PCT/US2020/055332 WO2021076478A1 (en) | 2019-10-14 | 2020-10-13 | Using chroma quantization parameter in video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220073746A true KR20220073746A (ko) | 2022-06-03 |
Family
ID=75538852
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227010299A KR20220073746A (ko) | 2019-10-14 | 2020-10-13 | 비디오 처리에서 크로마 양자화 파라미터 사용 |
KR1020227010294A KR20220073745A (ko) | 2019-10-14 | 2020-10-13 | 비디오 처리에서 크로마 잔차 및 필터링의 공동 코딩 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227010294A KR20220073745A (ko) | 2019-10-14 | 2020-10-13 | 비디오 처리에서 크로마 잔차 및 필터링의 공동 코딩 |
Country Status (6)
Country | Link |
---|---|
US (3) | US20220272347A1 (ko) |
EP (2) | EP4029273A4 (ko) |
JP (3) | JP2022552338A (ko) |
KR (2) | KR20220073746A (ko) |
CN (3) | CN114586370B (ko) |
WO (2) | WO2021076478A1 (ko) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019188944A1 (en) * | 2018-03-30 | 2019-10-03 | Sharp Kabushiki Kaisha | Systems and methods for applying deblocking filters to reconstructed video data |
CN118764635A (zh) * | 2019-03-12 | 2024-10-11 | 现代自动车株式会社 | 用于有效地对残差块解码的方法和装置 |
CN113711603A (zh) | 2019-08-23 | 2021-11-26 | 华为技术有限公司 | 对使用联合色度译码的块执行色度去块效应滤波的编码器、解码器及对应方法 |
WO2021051044A1 (en) | 2019-09-14 | 2021-03-18 | Bytedance Inc. | Quantization parameter offset for chroma deblocking filtering |
WO2021072177A1 (en) | 2019-10-09 | 2021-04-15 | Bytedance Inc. | Cross-component adaptive loop filtering in video coding |
JP2022552338A (ja) * | 2019-10-14 | 2022-12-15 | バイトダンス インコーポレイテッド | クロマ残差の共同コーディング及びビデオ処理におけるフィルタリング |
US20220408093A1 (en) * | 2019-11-05 | 2022-12-22 | Lg Electronics Inc. | Video decoding method and device for coding chroma quantization parameter offset-related information |
KR20220106116A (ko) | 2019-12-09 | 2022-07-28 | 바이트댄스 아이엔씨 | 비디오 코딩에서 양자화 그룹 사용 |
CN114902657A (zh) | 2019-12-31 | 2022-08-12 | 字节跳动有限公司 | 视频编解码中的自适应颜色变换 |
US11595676B2 (en) * | 2020-09-16 | 2023-02-28 | Tencent America LLC | Method and apparatus for video coding |
US11722675B2 (en) * | 2020-12-29 | 2023-08-08 | Qualcomm Incorporated | Sign prediction for multiple color components in video coding |
US11683530B2 (en) * | 2021-03-19 | 2023-06-20 | Tencent America LLC | Adaptive non-linear mapping for sample offset |
WO2023171940A1 (ko) * | 2022-03-08 | 2023-09-14 | 현대자동차주식회사 | 적응적 크로마컨버전을 이용하는 비디오 코딩을 위한 방법과 장치 |
US20240348836A1 (en) * | 2023-04-12 | 2024-10-17 | Sharp Kabushiki Kaisha | Systems and methods for performing motion compensation in video coding |
Family Cites Families (109)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5512953A (en) * | 1994-08-09 | 1996-04-30 | At&T Corp. | Method and apparatus for conversion of compressed bit stream representation of video signal |
US7123655B2 (en) | 2001-08-09 | 2006-10-17 | Sharp Laboratories Of America, Inc. | Method for reduced bit-depth quantization |
US7190723B2 (en) | 2002-03-27 | 2007-03-13 | Scientific-Atlanta, Inc. | Digital stream transcoder with a hybrid-rate controller |
US7227901B2 (en) | 2002-11-21 | 2007-06-05 | Ub Video Inc. | Low-complexity deblocking filter |
US20040146108A1 (en) | 2003-01-23 | 2004-07-29 | Shih-Chang Hsia | MPEG-II video encoder chip design |
US7227585B1 (en) | 2003-12-30 | 2007-06-05 | Conexant Systems, Inc. | Luminance and chrominance separation system |
US8953673B2 (en) * | 2008-02-29 | 2015-02-10 | Microsoft Corporation | Scalable video coding and decoding with sample bit depth and chroma high-pass residual layers |
US9185426B2 (en) | 2008-08-19 | 2015-11-10 | Broadcom Corporation | Method and system for motion-compensated frame-rate up-conversion for both compressed and decompressed video bitstreams |
JP2011259362A (ja) | 2010-06-11 | 2011-12-22 | Sony Corp | 画像処理装置および方法 |
KR20120035096A (ko) * | 2010-10-04 | 2012-04-13 | 한국전자통신연구원 | 쿼드 트리 변환 구조에서 부가 정보의 시그널링 방법 및 장치 |
US8891617B2 (en) | 2011-01-18 | 2014-11-18 | Google Inc. | Method and system for processing video data |
US10409892B2 (en) * | 2011-01-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Formatting data by example |
US9363509B2 (en) | 2011-03-03 | 2016-06-07 | Electronics And Telecommunications Research Institute | Method for determining color difference component quantization parameter and device using the method |
JP5936939B2 (ja) | 2011-07-14 | 2016-06-22 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 画像符号化方法および画像復号化方法 |
US8964833B2 (en) | 2011-07-19 | 2015-02-24 | Qualcomm Incorporated | Deblocking of non-square blocks for video coding |
US9510020B2 (en) * | 2011-10-20 | 2016-11-29 | Qualcomm Incorporated | Intra pulse code modulation (IPCM) and lossless coding mode deblocking for video coding |
US9807403B2 (en) | 2011-10-21 | 2017-10-31 | Qualcomm Incorporated | Adaptive loop filtering for chroma components |
US9161046B2 (en) | 2011-10-25 | 2015-10-13 | Qualcomm Incorporated | Determining quantization parameters for deblocking filtering for video coding |
US20130107973A1 (en) | 2011-10-28 | 2013-05-02 | Qualcomm Incorporated | Loop filtering control over tile boundaries |
US9807401B2 (en) * | 2011-11-01 | 2017-10-31 | Qualcomm Incorporated | Transform unit partitioning for chroma components in video coding |
WO2013074365A1 (en) | 2011-11-18 | 2013-05-23 | Dolby Laboratories Licensing Corporation | Subjective based post-filter optimization |
US9538200B2 (en) | 2012-01-19 | 2017-01-03 | Qualcomm Incorporated | Signaling of deblocking filter parameters in video coding |
CN104137545B (zh) * | 2012-01-19 | 2018-06-05 | 寰发股份有限公司 | 编码块旗标的编码及视频比特流的解码方法与装置 |
US9451258B2 (en) * | 2012-04-03 | 2016-09-20 | Qualcomm Incorporated | Chroma slice-level QP offset and deblocking |
EP2837186B1 (en) * | 2012-04-12 | 2018-08-22 | HFI Innovation Inc. | Method and apparatus for block partition of chroma subsampling formats |
GB2501535A (en) | 2012-04-26 | 2013-10-30 | Sony Corp | Chrominance Processing in High Efficiency Video Codecs |
US9414054B2 (en) * | 2012-07-02 | 2016-08-09 | Microsoft Technology Licensing, Llc | Control and use of chroma quantization parameter values |
US9591302B2 (en) | 2012-07-02 | 2017-03-07 | Microsoft Technology Licensing, Llc | Use of chroma quantization parameter offsets in deblocking |
US10448032B2 (en) | 2012-09-04 | 2019-10-15 | Qualcomm Incorporated | Signaling of down-sampling location information in scalable video coding |
GB2506852B (en) * | 2012-09-28 | 2015-09-30 | Canon Kk | Method and device for determining the value of a quantization parameter |
TWI610574B (zh) | 2012-09-29 | 2018-01-01 | 微軟技術授權有限責任公司 | 於解塊中色度量化參數偏移之使用 |
JP2014116733A (ja) | 2012-12-07 | 2014-06-26 | Canon Inc | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
AU2013200051B2 (en) * | 2013-01-04 | 2016-02-11 | Canon Kabushiki Kaisha | Method, apparatus and system for de-blocking video data |
EP2941871A2 (en) | 2013-01-07 | 2015-11-11 | VID SCALE, Inc. | Enhanced deblocking filters for video coding |
US9225991B2 (en) | 2013-05-30 | 2015-12-29 | Apple Inc. | Adaptive color space transform coding |
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 |
US20140376611A1 (en) | 2013-06-21 | 2014-12-25 | Qualcomm Incorporated | Adaptive color transforms for video coding |
US9294766B2 (en) * | 2013-09-09 | 2016-03-22 | Apple Inc. | Chroma quantization in video coding |
EP3058739B1 (en) | 2013-10-14 | 2019-08-07 | Microsoft Technology Licensing, LLC | Features of intra block copy prediction mode for video and image coding and decoding |
CN105659602B (zh) | 2013-10-14 | 2019-10-08 | 微软技术许可有限责任公司 | 用于视频和图像编码的帧内块复制预测模式的编码器侧选项 |
EP3114843B1 (en) | 2014-03-04 | 2019-08-07 | Microsoft Technology Licensing, LLC | Adaptive switching of color spaces |
US9948933B2 (en) * | 2014-03-14 | 2018-04-17 | Qualcomm Incorporated | Block adaptive color-space conversion coding |
JP6368795B2 (ja) | 2014-03-14 | 2018-08-01 | ヴィド スケール インコーポレイテッド | Rgbビデオコーディングエンハンスメントのためのシステムおよび方法 |
AU2014202921B2 (en) | 2014-05-29 | 2017-02-02 | Canon Kabushiki Kaisha | Method, apparatus and system for de-blocking a block of video samples |
US10142642B2 (en) * | 2014-06-04 | 2018-11-27 | Qualcomm Incorporated | Block adaptive color-space conversion coding |
US9924175B2 (en) * | 2014-06-11 | 2018-03-20 | Qualcomm Incorporated | Determining application of deblocking filtering to palette coded blocks in video coding |
US10136141B2 (en) * | 2014-06-11 | 2018-11-20 | Qualcomm Incorporated | Determining quantization parameter (QP) values and delta QP values for palette coded blocks in video coding |
US20150373327A1 (en) | 2014-06-20 | 2015-12-24 | Qualcomm Incorporated | Block adaptive color-space conversion coding |
BR112017004886A2 (pt) * | 2014-09-12 | 2017-12-05 | Vid Scale Inc | dispositivo de codificação de vídeo e método de codificação de vídeo |
EP3205098B1 (en) | 2014-10-06 | 2020-01-08 | Telefonaktiebolaget LM Ericsson (publ) | Coding and deriving quantization parameters |
US10057578B2 (en) | 2014-10-07 | 2018-08-21 | Qualcomm Incorporated | QP derivation and offset for adaptive color transform in video coding |
US9854201B2 (en) | 2015-01-16 | 2017-12-26 | Microsoft Technology Licensing, Llc | Dynamically updating quality to higher chroma sampling rate |
US10057574B2 (en) | 2015-02-11 | 2018-08-21 | Qualcomm Incorporated | Coding tree unit (CTU) level adaptive loop filter (ALF) |
US10205968B2 (en) | 2015-02-13 | 2019-02-12 | Mediatek Inc. | Method and apparatus for palette index coding in video and image compression |
US20160286226A1 (en) | 2015-03-24 | 2016-09-29 | Nokia Technologies Oy | Apparatus, a method and a computer program for video coding and decoding |
JP6651005B2 (ja) | 2015-09-23 | 2020-02-19 | テレフオンアクチーボラゲット エルエム エリクソン(パブル) | Qp値の決定 |
US20170105014A1 (en) * | 2015-10-08 | 2017-04-13 | Qualcomm Incorporated | Luma-driven chroma scaling for high dynamic range and wide color gamut contents |
WO2017093189A1 (en) * | 2015-11-30 | 2017-06-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Encoding of pictures in a video |
US11563938B2 (en) | 2016-02-15 | 2023-01-24 | Qualcomm Incorporated | Geometric transforms for filters for video coding |
US10419755B2 (en) | 2016-05-16 | 2019-09-17 | Qualcomm Incorporated | Confusion of multiple filters in adaptive loop filtering in video coding |
US20200322599A1 (en) * | 2016-05-28 | 2020-10-08 | Mediatek Inc. | Method and apparatus of current picture referencing for video coding using affine motion compensation |
EP3453172B1 (en) * | 2016-05-28 | 2023-08-09 | HFI Innovation Inc. | Methods and apparatuses of video data processing with conditionally quantization parameter information signaling |
WO2018018486A1 (en) | 2016-07-28 | 2018-02-01 | Mediatek Inc. | Methods of reference quantization parameter derivation for signaling of quantization parameter in quad-tree plus binary tree structure |
US20180041778A1 (en) | 2016-08-02 | 2018-02-08 | Qualcomm Incorporated | Geometry transformation-based adaptive loop filtering |
US10419757B2 (en) | 2016-08-31 | 2019-09-17 | Qualcomm Incorporated | Cross-component filter |
US20180091812A1 (en) * | 2016-09-23 | 2018-03-29 | Apple Inc. | Video compression system providing selection of deblocking filters parameters based on bit-depth of video data |
US10506230B2 (en) | 2017-01-04 | 2019-12-10 | Qualcomm Incorporated | Modified adaptive loop filter temporal prediction for temporal scalability support |
US20180199057A1 (en) | 2017-01-12 | 2018-07-12 | Mediatek Inc. | Method and Apparatus of Candidate Skipping for Predictor Refinement in Video Coding |
US10554974B2 (en) * | 2017-01-13 | 2020-02-04 | Mediatek Inc. | Method and apparatus enabling adaptive multiple transform for chroma transport blocks using control flags |
US10708591B2 (en) | 2017-03-20 | 2020-07-07 | Qualcomm Incorporated | Enhanced deblocking filtering design in video coding |
CN110249630B (zh) * | 2017-03-23 | 2020-11-27 | 华为技术有限公司 | 去块效应滤波装置、方法和存储介质 |
US10212456B2 (en) | 2017-06-02 | 2019-02-19 | Apple Inc. | Deblocking filter for high dynamic range (HDR) video |
RU2759218C2 (ru) | 2017-06-21 | 2021-11-11 | Вид Скейл, Инк. | Адаптивное квантование для кодирования 360-градусного видео |
US10778974B2 (en) | 2017-07-05 | 2020-09-15 | Qualcomm Incorporated | Adaptive loop filter with enhanced classification methods |
WO2019009776A1 (en) * | 2017-07-05 | 2019-01-10 | Telefonaktiebolaget Lm Ericsson (Publ) | DECODING VIDEO SAMPLE BLOCK |
US11019339B2 (en) | 2017-07-12 | 2021-05-25 | Futurewei Technologies, Inc. | Fractional quantization parameter offset in video compression |
GB2575090A (en) * | 2018-06-28 | 2020-01-01 | Canon Kk | Method and apparatus for deblocking filtering a block of pixels |
US10616577B2 (en) * | 2017-10-16 | 2020-04-07 | Intel Corporation | Adaptive video deblocking |
US10812798B2 (en) * | 2017-10-19 | 2020-10-20 | Qualcomm Incorporated | Chroma quantization parameter (QP) offset |
CN111512632B (zh) | 2017-11-01 | 2023-07-14 | Vid拓展公司 | 用于简化视频译码中的自适应环路滤波器的方法 |
US10972729B2 (en) | 2018-01-20 | 2021-04-06 | Qualcomm Incorporated | Deblocking filter selection and application in video coding |
MX2020007868A (es) * | 2018-01-26 | 2020-09-07 | Interdigital Vc Holdings Inc | Metodo y aparato para codificacion y decodificacion de video basado en un modelo lineal receptivo a muestras vecinas. |
US20190238845A1 (en) | 2018-01-26 | 2019-08-01 | Qualcomm Incorporated | Adaptive loop filtering on deblocking filter results in video coding |
WO2019188944A1 (en) | 2018-03-30 | 2019-10-03 | Sharp Kabushiki Kaisha | Systems and methods for applying deblocking filters to reconstructed video data |
US10708592B2 (en) | 2018-04-02 | 2020-07-07 | Qualcomm Incorporated | Deblocking filter for video coding and processing |
US20190306502A1 (en) | 2018-04-02 | 2019-10-03 | Qualcomm Incorporated | System and method for improved adaptive loop filtering |
EP3554074A1 (en) | 2018-04-13 | 2019-10-16 | Thomson Licensing | Methods and apparatus for depth encoding and decoding |
KR101997681B1 (ko) | 2018-06-11 | 2019-07-08 | 광운대학교 산학협력단 | 양자화 파라미터 기반의 잔차 블록 부호화/복호화 방법 및 장치 |
US20200213570A1 (en) | 2019-01-02 | 2020-07-02 | Mediatek Inc. | Method for processing projection-based frame that includes at least one projection face and at least one padding region packed in 360-degree virtual reality projection layout |
CN113383554B (zh) | 2019-01-13 | 2022-12-16 | 北京字节跳动网络技术有限公司 | LUT和共享Merge列表之间的交互 |
EP3931745A4 (en) | 2019-02-27 | 2022-04-27 | Huawei Technologies Co., Ltd. | TYPES OF ADAPTATION PARAMETER SETS IN VIDEO CODING |
WO2020177663A1 (en) | 2019-03-02 | 2020-09-10 | Beijing Bytedance Network Technology Co., Ltd. | Restrictions on partition structures |
CN113574889B (zh) | 2019-03-14 | 2024-01-12 | 北京字节跳动网络技术有限公司 | 环路整形信息的信令和语法 |
KR102606010B1 (ko) | 2019-03-24 | 2023-11-24 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 비디오 처리에서 비-선형 적응형 루프 필터링 |
WO2020192726A1 (en) | 2019-03-27 | 2020-10-01 | Beijing Bytedance Network Technology Co., Ltd. | History-based motion vector prediction |
US11546587B2 (en) | 2019-04-11 | 2023-01-03 | Mediatek Inc. | Adaptive loop filter with adaptive parameter set |
JP7405865B2 (ja) | 2019-04-15 | 2023-12-26 | 北京字節跳動網絡技術有限公司 | 非線形適応ループフィルタにおけるパラメータの時間的予測 |
WO2020211810A1 (en) | 2019-04-16 | 2020-10-22 | Beijing Bytedance Network Technology Co., Ltd. | On adaptive loop filtering for video coding |
JP7448975B2 (ja) | 2019-04-25 | 2024-03-13 | オーピー ソリューションズ, エルエルシー | インタ予測における大域的運動制約運動ベクトル |
US11381819B2 (en) * | 2019-07-05 | 2022-07-05 | Qualcomm Incorporated | Chroma delta quantization parameter (QP) in video coding |
US11265581B2 (en) * | 2019-08-23 | 2022-03-01 | Tencent America LLC | Method and apparatus for video coding |
CN113711603A (zh) | 2019-08-23 | 2021-11-26 | 华为技术有限公司 | 对使用联合色度译码的块执行色度去块效应滤波的编码器、解码器及对应方法 |
WO2021040481A1 (ko) | 2019-08-29 | 2021-03-04 | 엘지전자 주식회사 | 크로스 컴포넌트 필터링 기반 영상 코딩 장치 및 방법 |
US20210076032A1 (en) * | 2019-09-09 | 2021-03-11 | Qualcomm Incorporated | Filter shapes for cross-component adaptive loop filter with different chroma formats in video coding |
WO2021051044A1 (en) * | 2019-09-14 | 2021-03-18 | Bytedance Inc. | Quantization parameter offset for chroma deblocking filtering |
EP4022777A4 (en) | 2019-09-24 | 2022-11-23 | Huawei Technologies Co., Ltd. | DECODED PICTURE BUFFER OPERATION FOR RESOLUTION CHANGES |
JP2022552338A (ja) | 2019-10-14 | 2022-12-15 | バイトダンス インコーポレイテッド | クロマ残差の共同コーディング及びビデオ処理におけるフィルタリング |
AU2020414917A1 (en) | 2019-12-23 | 2022-07-21 | Huawei Technologies Co., Ltd. | Cross-component adaptive loop filtering for video coding |
US11375200B2 (en) | 2019-12-24 | 2022-06-28 | Tencent America LLC | Video coding method and device for controlling color component processing |
-
2020
- 2020-10-13 JP JP2022522384A patent/JP2022552338A/ja active Pending
- 2020-10-13 KR KR1020227010299A patent/KR20220073746A/ko active Search and Examination
- 2020-10-13 JP JP2022522385A patent/JP7443509B2/ja active Active
- 2020-10-13 EP EP20877874.6A patent/EP4029273A4/en active Pending
- 2020-10-13 WO PCT/US2020/055332 patent/WO2021076478A1/en unknown
- 2020-10-13 WO PCT/US2020/055329 patent/WO2021076475A1/en unknown
- 2020-10-13 KR KR1020227010294A patent/KR20220073745A/ko active Search and Examination
- 2020-10-13 CN CN202080072432.7A patent/CN114586370B/zh active Active
- 2020-10-13 CN CN202080072268.XA patent/CN114556924B/zh active Active
- 2020-10-13 CN CN202311473550.0A patent/CN117528080A/zh active Pending
- 2020-10-13 EP EP20876422.5A patent/EP4029264A4/en active Pending
-
2022
- 2022-04-14 US US17/720,582 patent/US20220272347A1/en active Pending
- 2022-04-14 US US17/720,634 patent/US11622120B2/en active Active
-
2023
- 2023-11-27 US US18/519,994 patent/US20240107038A1/en active Pending
- 2023-12-01 JP JP2023203628A patent/JP2024015130A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240107038A1 (en) | 2024-03-28 |
US11622120B2 (en) | 2023-04-04 |
EP4029264A4 (en) | 2022-11-23 |
CN114586370B (zh) | 2024-01-23 |
EP4029273A1 (en) | 2022-07-20 |
KR20220073745A (ko) | 2022-06-03 |
CN117528080A (zh) | 2024-02-06 |
EP4029273A4 (en) | 2023-03-15 |
CN114556924B (zh) | 2024-01-26 |
CN114586370A (zh) | 2022-06-03 |
JP2022552338A (ja) | 2022-12-15 |
EP4029264A1 (en) | 2022-07-20 |
WO2021076475A1 (en) | 2021-04-22 |
WO2021076478A1 (en) | 2021-04-22 |
CN114556924A (zh) | 2022-05-27 |
JP2022552339A (ja) | 2022-12-15 |
US20220264122A1 (en) | 2022-08-18 |
US20220272347A1 (en) | 2022-08-25 |
JP7443509B2 (ja) | 2024-03-05 |
JP2024015130A (ja) | 2024-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20220073746A (ko) | 비디오 처리에서 크로마 양자화 파라미터 사용 | |
JP7321365B2 (ja) | クロマデブロックフィルタリングの量子化パラメータ | |
JP7508558B2 (ja) | ビデオコーディングにおける量子化グループの使用 | |
WO2021138293A1 (en) | Adaptive color transform in video coding | |
US11785260B2 (en) | Cross-component adaptive loop filtering in video coding | |
KR20220115951A (ko) | 비디오 코딩을 위한 크로스 컴포넌트 적응형 루프 필터링 | |
WO2021055896A1 (en) | Chroma deblocking in video coding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |