KR20240135810A - 교차-성분 파라미터 결정을 위한 장치, 방법 및 컴퓨터 프로그램 - Google Patents
교차-성분 파라미터 결정을 위한 장치, 방법 및 컴퓨터 프로그램 Download PDFInfo
- Publication number
- KR20240135810A KR20240135810A KR1020247026982A KR20247026982A KR20240135810A KR 20240135810 A KR20240135810 A KR 20240135810A KR 1020247026982 A KR1020247026982 A KR 1020247026982A KR 20247026982 A KR20247026982 A KR 20247026982A KR 20240135810 A KR20240135810 A KR 20240135810A
- Authority
- KR
- South Korea
- Prior art keywords
- value
- sign
- update
- update term
- determining
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000004590 computer program Methods 0.000 title description 3
- 238000013507 mapping Methods 0.000 claims abstract description 56
- 241000023320 Luma <angiosperm> Species 0.000 claims description 84
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical group COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 claims description 83
- 230000006870 function Effects 0.000 claims description 40
- 238000007670 refining Methods 0.000 claims 1
- 239000010410 layer Substances 0.000 description 79
- 239000000523 sample Substances 0.000 description 52
- 230000008569 process Effects 0.000 description 37
- 230000002123 temporal effect Effects 0.000 description 32
- 239000013598 vector Substances 0.000 description 32
- 238000004891 communication Methods 0.000 description 27
- 230000005540 biological transmission Effects 0.000 description 24
- 238000003860 storage Methods 0.000 description 21
- 238000003491 array Methods 0.000 description 18
- 230000000875 corresponding effect Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 13
- 238000013139 quantization Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 230000011664 signaling Effects 0.000 description 10
- 238000005070 sampling Methods 0.000 description 9
- 230000001419 dependent effect Effects 0.000 description 8
- 238000001914 filtration Methods 0.000 description 8
- 230000003044 adaptive effect Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 7
- 230000003139 buffering effect Effects 0.000 description 6
- 239000011229 interlayer Substances 0.000 description 6
- 230000000750 progressive effect Effects 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 6
- 230000009466 transformation Effects 0.000 description 6
- 239000000872 buffer Substances 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000002265 prevention Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 238000012417 linear regression Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 239000013074 reference sample Substances 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000012546 transfer Methods 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
- 238000013475 authorization Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/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/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/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/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
방법으로서, 제1 색 성분에서 제2 색 성분으로의 매핑 함수에서 파라미터에 대한 기준값을 결정하는 단계; 초기 업데이트 항의 크기를 디코딩하는 단계; 업데이트 항의 부호를 결정하는데 사용되는 구문 요소를 디코딩하는 단계; 기준값에 기초하여 디코딩된 구문 요소를 해석함으로써 업데이트 항의 부호를 결정하는 단계; 및 기준값, 업데이트 항의 디코딩된 크기 및 업데이트 항의 결정된 부호를 사용하여 매핑 함수의 파라미터에 대한 값을 결정하는 단계를 포함하는 방법이 개시된다.
Description
본 발명은 비디오 인코딩 및 디코딩에서 교차-성분 파라미터 결정(cross-component parameter determination)을 위한 장치, 방법 및 컴퓨터 프로그램에 관한 것이다.
비디오 코딩에서, 비디오 및 이미지 샘플들은 통상적으로 하나의 휘도(루마)와 2개의 색차(크로마) 채널들로 구성된 YUV 또는 YCbCr과 같은 색상 표현들을 사용하여 인코딩된다. 이러한 경우, 장면의 조명을 주로 나타내는 휘도 채널은 통상적으로 특정 해상도로 코딩되지만, 통상적으로 특정 색 성분들 사이의 차이들을 나타내는 색차 채널들은 종종 휘도 신호보다 낮은 두 번째 해상도로 코딩된다. 이러한 종류의 차동 표현의 의도는 색 성분들을 장식하고 데이터를 보다 효율적으로 압축할 수 있도록 하는 것이다.
다용도 비디오 코딩(VVC/H.266) 표준에서는 교차-성분 선형 모델(CCLM: Cross-Component Linear Model)이 크로마 채널들(예를 들어, Cb 및 Cr)의 샘플들을 예측하기 위한 선형 모델로 사용된다. 이 프로세스는 루마 샘플 값들을 크로마 샘플 값들에 매핑하는데 사용될 수 있는 선형 모델을 생성한다. 선형 모델의 파라미터들은 예측 블록의 경계들의 외부에 있는 사용 가능한 재구성된 루마 및 크로마 기준 샘플들을 사용하여 구성된다. 파라미터들이 구성되면, 해당 파라미터들에 의해 지정된 선형 모델이 사용되어 예측 블록 내부의 크로마 샘플 값들을 예측한다.
크로마 샘플들을 예측하는데 교차-성분 선형 모델 예측을 적용하면 성분내 공간 예측에 비해 효율적일 수 있는데, 재구성된 루마 블록의 텍스처가 때때로 루마 채널과 크로마 채널 사이에 강한 선형 상관관계가 있는 경우 크로마 텍스처에 대한 매우 양호한 예측자를 생성할 수 있기 때문이다. 그러나, 선형 모델 파라미터들을 생성하는데 사용되는 재구성된 기준 샘플들은 노이즈가 있거나 실제 예측 블록 내부의 컨텐트를 잘 표현하지 못할 수 있다. 이러한 경우, 예측이 실패하고 프로세스는 컨텐트에 대한 차선적인 코딩 효율성을 유발한다.
이제 위의 문제들을 적어도 완화하기 위해, 루마 채널과 크로마 채널 사이의 더 양호한 상관관계를 달성하기 위한 향상된 방법이 도입되었다.
일부 양태들에 따르면, 루마 대 크로마 매핑 모델에 사용되는 파라미터에 대한 기준값이 생성되고, 기준값을 미세조정하기(refine) 위해 적용되는 업데이트 항이 결정되는 방법이 제공된다. 업데이트 항의 값을 결정하는 것은 생성된 기준값의 부호 또는 크기에 따라 표시된 값의 부호를 반전시키는 것을 포함할 수 있다.
양태들 중 일부가 제1 색 성분에서 제2 색 성분으로의 매핑 모델에 적용될 수 있으며, 여기서 예를 들어, 제1 색 성분은 루마 성분일 수 있고 제2 색 성분은 크로마 성분일 수 있거나, 또는 제1 색 성분은 크로마 성분일 수 있고 제2 색 성분은 루마 성분일 수 있다는 점에 유의해야 한다. 일부 양태들은 상이한 유형의 데이터 사이에서 동작하는 매핑 모델들에도 또한 적용될 수 있다. 예를 들어, 일부 양태들은 이미지 샘플 값들을 특정 지점이나 평면으로부터 샘플의 거리를 표시하는 깊이 맵의 값들로 변환하는 매핑에 적용될 수 있다.
제1 양태에 따른 장치는:
제1 색 성분에서 제2 색 성분으로의 매핑 함수에서 파라미터에 대한 기준값을 결정하는 수단;
초기 업데이트 항의 크기를 디코딩하는 수단;
업데이트 항의 부호를 결정하는데 사용되는 구문 요소(syntax element)를 디코딩하는 수단;
기준값에 기초하여 디코딩된 구문 요소를 해석함으로써 업데이트 항의 부호를 결정하는 수단; 및
기준값, 업데이트 항의 디코딩된 크기 및 업데이트 항의 결정된 부호를 사용하여 매핑 함수의 파라미터에 대한 값을 결정하는 수단을 포함한다.
일 실시예에 따르면, 장치는:
기준값을 임계값과 비교하는 수단; 및
기준값이 임계값보다 크고 구문 요소가 제1 표시값을 갖거나 기준값이 임계값보다 이하이고 구문 요소가 제1 표시값과 상이한 제2 표시값을 가지면 업데이트 항의 부호를 양수로 결정하거나, 그렇지 않으면 업데이트 항의 부호를 음수로 결정하는 수단을 더 포함한다.
일 실시예에 따르면, 제1 표시값은 0이고 제2 표시값은 1이거나, 제1 표시값은 1이고 제2 표시값은 0이다.
일 실시예에 따르면 임계값은 0이다.
장치의 일 실시예에 따르면, 상기 부호 결정 수단은, 업데이트 항의 부호를 나타내는 디코딩된 이진 구문 요소가 0이면 업데이트 항이 기준값을 0쪽으로 미세조정하고, 업데이트 항의 부호를 나타내는 디코딩된 이진 구문 요소가 1이면 0에서 멀어지도록 부호를 결정하는 수단을 포함한다.
장치의 일 실시예에 따르면, 부호 결정 수단은, 업데이트 항의 부호를 나타내는 디코딩된 이진 구문 요소가 1이면, 업데이트 항이 기준값을 0쪽으로 미세조정하고 업데이트 항의 부호를 나타내는 디코딩된 이진 구문 요소가 0이면 0에서 멀어지도록 부호를 결정하는 수단을 포함한다.
일 실시예에 따르면, 장치는 기준 파라미터의 값이 0 이상이면, 초기 업데이트 항의 부호를 반전시킴으로써 업데이트 항의 값을 결정하는 수단을 포함한다.
일 실시예에 따르면, 장치는 기준 파라미터의 값이 0 이하이면, 초기 업데이트 항을 수정하지 않은 상태로 유지함으로써 업데이트 항의 값을 결정하는 수단을 포함한다.
장치의 일 실시예에 따르면, 제1 색 성분은 루마 성분이고, 제2 색 성분은 하나의 크로마 성분이다.
제2 양태에 따른 방법은:
제1 색 성분에서 제2 색 성분으로의 매핑 함수에서 파라미터에 대한 기준값을 결정하는 단계;
초기 업데이트 항의 크기를 디코딩하는 단계;
업데이트 항의 부호를 결정하는데 사용되는 구문 요소를 디코딩하는 단계;
기준값에 기초하여 디코딩된 구문 요소를 해석함으로써 업데이트 항의 부호를 결정하는 단계; 및
기준값, 업데이트 항의 디코딩된 크기 및 업데이트 항의 결정된 부호를 사용하여 매핑 함수의 파라미터에 대한 값을 결정하는 단계를 포함한다.
제3 양태에 따른 장치는 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하고, 상기 적어도 하나의 메모리 상에 코드가 저장되고, 상기 적어도 하나의 프로세서에 의해 실행될 때 장치로 하여금 적어도:
제1 색 성분에서 제2 색 성분으로의 매핑 함수에서 파라미터에 대한 기준값을 결정하고;
초기 업데이트 항의 크기를 디코딩하고;
업데이트 항의 부호를 결정하는데 사용되는 구문 요소를 디코딩하고;
기준값에 기초하여 디코딩된 구문 요소를 해석함으로써 업데이트 항의 부호를 결정하고;
기준값, 업데이트 항의 디코딩된 크기 및 업데이트 항의 결정된 부호를 사용하여 매핑 함수의 파라미터에 대한 값을 결정하는 것을 수행하도록 한다.
제4 양태에 따른 장치는:
제1 색 성분에서 제2 색 성분으로의 매핑 함수에서 파라미터에 대한 기준값을 결정하는 수단;
기준값에 대한 초기 업데이트 항의 값을 결정하는 수단;
기준값이 임계값보다 크면, 표시된 값의 부호가 업데이트 항의 결정된 값의 부호와 반대가 되도록 업데이트 항의 표시된 값을 결정하는 수단; 및
업데이트 항의 표시된 값의 부호 및 크기를 비디오 비트스트림으로 인코딩하는 수단을 포함한다.
일 실시예에 따르면 장치는 기준 파라미터의 값이 0 이상이면, 업데이트 항의 부호를 반전시키는 수단을 포함한다.
일 실시예에 따르면 장치는 기준 파라미터의 값이 0 이하이면, 업데이트 항을 수정하지 않은 상태로 유지함으로써 업데이트 항의 표시된 값을 결정하는 수단을 포함한다.
일 실시예에 따르면 장치는:
업데이트 항의 값을 결정하기 위해 레이트-왜곡 결정(rate-distortion decision)을 내리는 수단; 및
업데이트 항의 값에 기초하여 표시된 업데이트 항을 결정하는 수단을 포함한다.
일 실시예에 따르면 장치는:
표시된 업데이트 항의 값을 결정하기 위해 레이트-왜곡 결정을 내리는 수단; 및
표시된 업데이트 항의 값에 기초하여 업데이트 항을 결정하는 수단을 포함을 포함한다.
제5 양태에 따른 방법은:
제1 색 성분에서 제2 색 성분으로의 매핑 함수에서 파라미터에 대한 기준값을 결정하는 단계;
기준값에 대한 초기 업데이트 항의 값을 결정하는 단계;
기준값이 임계값보다 크면, 표시된 값의 부호가 업데이트 항의 결정된 값의 부호와 반대가 되도록 업데이트 항의 표시된 값을 결정하는 단계; 및
업데이트 항의 표시된 값의 부호 및 크기를 비디오 비트스트림으로 인코딩하는 단계를 포함한다.
제6 양태에 따른 장치는 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하고, 상기 적어도 하나의 메모리 상에 코드가 저장되고, 상기 적어도 하나의 프로세서에 의해 실행될 때 장치로 하여금 적어도:
제1 색 성분에서 제2 색 성분으로의 매핑 함수에서 파라미터에 대한 기준값을 결정하고;
기준값에 대한 초기 업데이트 항의 값을 결정하고;
기준값이 임계값보다 크면, 표시된 값의 부호가 업데이트 항의 결정된 값의 부호와 반대가 되도록 업데이트 항에 대한 표시된 값을 결정하고;
업데이트 항의 표시된 값의 부호 및 크기를 비디오 비트스트림으로 인코딩하는 것을 수행하도록 한다.
상술한 바와 같이, 장치들 및 코드가 저장된 컴퓨터 판독 가능한 저장 매체들은 따라서 위의 방법들 및 이와 관련된 하나 이상의 실시예들을 실행하도록 구성된다.
본 발명을 더 잘 이해를 위해, 이제 첨부 도면들을 예를 들어 참조할 것이다:
도 1은 본 발명의 실시예들을 채용하는 전자 디바이스를 개략적으로 도시한 도면.
도 2는 본 발명의 실시예들을 채용하는데 적합한 사용자 장비를 개략적으로 도시한 도면.
도 3은 무선 및 유선 네트워크 연결들을 사용하여 연결된 본 발명의 실시예들을 채용하는 전자 디바이스들을 개략적으로 도시한 도면.
도 4a 및 도 4b는 본 발명의 실시예들을 구현하는데 적합한 인코더 및 디코더를 개략적으로 도시한 도면들.
도 5a는 본 개시내용의 일 실시예에 따른 루마 값들 대 크로마 값들의 선형 모델 매핑을 도시한 도면.
도 5b는 업데이트된 매핑을 도시한 도면.
도 5c는 결정된 초기 매핑 라인 외부의 제어점 pr을 선택하고, 이러한 지점에 대해 기울기 업데이트를 수행하는 것을 도시한 도면.
도 5d는 결정된 초기 매핑 라인 외부에 제어점 pr을 사용하고, 기울기를 변경하지 않은 상태로 유지하면서 오프셋 파라미터 b에 대한 업데이트만 수행하는 것을 도시한 도면.
도 6a 내지 도 도 6c는 본 개시내용의 일 실시예에 따른, 블록 B 위의 기준 샘플들 R에 대한 상이한 선택들을 도시한 도면들.
도 7a는 일 실시예에 따른 방법의 흐름도를 도시한 도면.
도 7b는 다른 실시예에 따른 방법의 흐름도를 도시한 도면.
도 8은 다양한 실시예들이 구현될 수 있는 예시적인 멀티미디어 통신 시스템의 개략도를 도시한 도면.
도 1은 본 발명의 실시예들을 채용하는 전자 디바이스를 개략적으로 도시한 도면.
도 2는 본 발명의 실시예들을 채용하는데 적합한 사용자 장비를 개략적으로 도시한 도면.
도 3은 무선 및 유선 네트워크 연결들을 사용하여 연결된 본 발명의 실시예들을 채용하는 전자 디바이스들을 개략적으로 도시한 도면.
도 4a 및 도 4b는 본 발명의 실시예들을 구현하는데 적합한 인코더 및 디코더를 개략적으로 도시한 도면들.
도 5a는 본 개시내용의 일 실시예에 따른 루마 값들 대 크로마 값들의 선형 모델 매핑을 도시한 도면.
도 5b는 업데이트된 매핑을 도시한 도면.
도 5c는 결정된 초기 매핑 라인 외부의 제어점 pr을 선택하고, 이러한 지점에 대해 기울기 업데이트를 수행하는 것을 도시한 도면.
도 5d는 결정된 초기 매핑 라인 외부에 제어점 pr을 사용하고, 기울기를 변경하지 않은 상태로 유지하면서 오프셋 파라미터 b에 대한 업데이트만 수행하는 것을 도시한 도면.
도 6a 내지 도 도 6c는 본 개시내용의 일 실시예에 따른, 블록 B 위의 기준 샘플들 R에 대한 상이한 선택들을 도시한 도면들.
도 7a는 일 실시예에 따른 방법의 흐름도를 도시한 도면.
도 7b는 다른 실시예에 따른 방법의 흐름도를 도시한 도면.
도 8은 다양한 실시예들이 구현될 수 있는 예시적인 멀티미디어 통신 시스템의 개략도를 도시한 도면.
다음은 시점 전환을 개시하기 위한 적절한 장치 및 가능한 메커니즘들을 더 상세히 기술한다. 이와 관련하여 먼저 도 1 및 도 2를 참조하면, 도 1은 본 발명의 일 실시예에 따른 코덱을 통합할 수 있는 예시적인 장치 또는 전자 디바이스(50)의 개략적인 블록도로서 예시적인 실시예에 따른 비디오 코딩 시스템의 블록도를 도시한다. 도 2는 예시적인 실시예에 따른 장치의 레이아웃을 도시한다. 도 1 및 도 2의 요소들은 다음에 설명하겠다.
전자 디바이스(50)는 예를 들어 무선 통신 시스템의 모바일 단말기 또는 사용자 장비일 수 있다. 그러나, 본 발명의 실시예들은 인코딩 및 디코딩이나 인코딩 또는 디코딩 비디오 이미지들을 요구할 수 있는 임의의 전자 디바이스 또는 장치 내에서 구현될 수 있다는 것을 알 것이다.
장치(50)는 디바이스를 통합하고 보호하기 위한 하우징(30)을 포함할 수 있다. 장치(50)는 액정 디스플레이 형태의 디스플레이(32)를 더 포함할 수 있다. 본 발명의 다른 실시예에서 디스플레이는 이미지 또는 비디오를 디스플레이하는데 적합한 임의의 적합한 디스플레이 기술일 수 있다. 장치(50)는 키패드(34)를 더 포함할 수 있다. 본 발명의 다른 실시예들에서는 임의의 적절한 데이터 또는 사용자 인터페이스 메커니즘이 채용될 수 있다. 예를 들어 사용자 인터페이스는 터치-감지 디스플레이의 일부인 가상 키보드 또는 데이터 입력 시스템으로 구현될 수 있다.
장치는 마이크로폰(36)이나, 디지털 또는 아날로그 신호 입력일 수 있는 임의의 적절한 오디오 입력을 포함할 수 있다. 장치(50)는 본 발명의 실시예들에서: 이어폰(38), 스피커, 또는 아날로그 오디오 또는 디지털 오디오 출력 연결 중 어느 하나일 수 있는 오디오 출력 디바이스를 더 포함할 수 있다. 장치(50)는 또한 배터리를 포함할 수 있다(또는 본 발명의 다른 실시예들에서 장치는 태양 전지, 연료 전지 또는 시계태엽 발전기와 같은 임의의 적절한 모바일 에너지 디바이스에 의해 전력을 공급받을 수 있다). 장치는 이미지들 및/또는 비디오를 기록하거나 캡처할 수 있는 카메라를 더 포함할 수 있다. 장치(50)는 다른 디바이스들의 단거리 가시선 통신을 위한 적외선 포트를 더 포함할 수 있다. 다른 실시예들에서 장치(50)는 예를 들어 블루투스 무선 연결 또는 USB/파이어와이어 유선 연결과 같은 임의의 적절한 단거리 통신 솔루션을 더 포함할 수 있다.
장치(50)는 장치(50)를 제어하기 위한 제어기(56), 프로세서 또는 프로세서 회로를 포함할 수 있다. 제어기(56)는 본 발명의 실시예들에서 이미지 및 오디오 데이터의 형태로 둘다 데이터를 저장할 수 있고 및/또는 제어기(56)에 대한 구현을 위한 명령들을 저장할 수도 있는 메모리(58)에 연결될 수 있다. 제어기(56)는 오디오 및/또는 비디오 데이터의 코딩 및 디코딩을 수행하거나 제어기에 의해 수행되는 코딩 및 디코딩을 지원하는데 적합한 코덱 회로(54)에 추가로 연결될 수 있다.
장치(50)는 카드 판독기(48) 및 스마트 카드(46), 예를 들어 사용자 정보를 제공하고 네트워크에서 사용자의 인증 및 승인을 위한 인증 정보를 제공하는데 적합한 UICC 및 UICC 판독기를 더 포함할 수 있다.
장치(50)는, 제어기에 연결되고 예를 들어 셀룰러 통신 네트워크, 무선 통신 시스템 또는 무선 근거리 네트워크와의 통신을 위한 무선 통신 신호들을 생성하는데 적합한 무선 인터페이스 회로(52)를 포함할 수 있다. 장치(50)는 무선 인터페이스 회로(52)에서 생성된 무선 주파수 신호들을 다른 장치(들)에 전송하고 다른 장치(들)로부터 무선 주파수 신호들을 수신하기 위해 무선 인터페이스 회로(52)에 연결된 안테나(44)를 더 포함할 수 있다.
장치(50)는 처리를 위해 코덱(54) 또는 제어기로 전달되는 개별 프레임들을 기록하거나 검출할 수 있는 카메라를 포함할 수 있다. 장치는 전송 및/또는 저장소에 앞서 다른 디바이스로부터 처리를 위해 비디오 이미지 데이터를 수신할 수 있다. 장치(50)는 또한 코딩/디코딩을 위한 이미지를 무선으로 또는 유선 연결을 통해 수신할 수 있다. 상술한 장치(50)의 구조적 요소들은 대응하는 기능을 수행하는 수단의 예들을 나타낸다.
도 3을 참조하면, 본 발명의 실시예들이 활용될 수 있는 시스템의 예가 도시된다. 시스템(10)은 하나 이상의 네트워크들을 통해 통신할 수 있는 다수의 통신 디바이스들을 포함한다. 시스템(10)은 무선 셀룰러 전화 네트워크(예를 들어, GSM, UMTS, CDMA 네트워크 등), IEEE 802.x 표준들 중 어느 하나에 의해 규정된 무선 근거리 네트워크(WLAN), 블루투스 개인 영역 네트워크, 이더넷 근거리 네트워크, 토큰 링 근거리 네트워크, 광역 네트워크 및 인터넷을 포함하지만 이에 제한되지 않는 유선 또는 무선 네트워크들의 임의의 조합을 포함할 수 있다.
시스템(10)은 본 발명의 실시예들을 구현하는데 적합한 유선 및 무선 통신 디바이스들 및/또는 장치(50)를 모두 포함할 수 있다.
예를 들어, 도 3에 도시된 시스템은 모바일 전화 네트워크(11) 및 인터넷(28)의 표현을 도시한다. 인터넷(28)에 대한 연결은 장거리 무선 연결들, 단거리 무선 연결들과, 및 전화선들, 케이블선들, 전력선들 및 유사한 통신 경로들을 포함하지만 이에 제한되지 않는 다양한 유선 연결들을 포함할 수 있지만, 이에 제한되지는 않는다.
시스템(10)에 도시된 예시적인 통신 디바이스들은 전자 디바이스 또는 장치(50), 개인 휴대 정보 단말기(PDA)와 모바일 전화(14)의 조합, PDA(16), 통합형 메시징 디바이스(IMD: integrated messaging device)(18), 데스크탑 컴퓨터(20), 노트북 컴퓨터(22)를 포함할 수 있지만, 이에 제한되지는 않는다. 장치(50)는 이동 중인 개인이 휴대할 때 고정식일 수도 있고 이동식일 수도 있다. 장치(50)는 또한 자동차, 트럭, 택시, 버스, 기차, 보트, 비행기, 자전거, 오토바이를 포함하지만 이에 제한되지 않는 운송 모드 또는 임의의 유사한 적합한 운송 모드에 위치할 수도 있다.
실시예들은 또한 셋-탑 박스에서; 즉 디스플레이나 무선 기능들이 있을 수도 있고 없을 수도 있는 디지털 TV 수신기에서, 하드웨어 또는 소프트웨어나 인코더/디코더 구현들의 조합을 가진 태블릿들 또는 (랩탑) 개인용 컴퓨터들(PC)에서, 다양한 운영 체제들에서, 그리고 하드웨어/소프트웨어 기반 코딩을 제공하는 칩셋들, 프로세서들, DSP들 및/또는 임베딩된 시스템들에서 구현될 수 있다.
일부 또는 추가 장치는 기지국(24)에 대한 무선 연결(25)을 통해 호출들 및 메시지들을 송수신하고 서비스 제공자들과 통신할 수 있다. 기지국(24)은 모바일 전화 네트워크(11)와 인터넷(28) 사이의 통신을 허용하는 네트워크 서버(26)에 연결될 수 있다. 시스템은 추가적인 통신 디바이스들 및 다양한 유형들의 통신 디바이스들을 포함할 수 있다.
통신 디바이스는 코드 분할 다중 액세스(CDMA), 글로벌 모바일 통신 시스템(GSM), 범용 모바일 원격통신 시스템(UMTS), 시분할 다중 액세스(TDMA), 주파수 분할 다중 액세스(FDMA), 전송 제어 프로토콜-인터넷 프로토콜(TCP-IP), 단문 메시징 서비스(SNS), 멀티미디어 메시징 서비스(MMS), 이메일, 인스턴트 메시징 서비스(IMS), 블루투스, IEEE 802.11 및 임의의 유사한 무선 통신 기술을 포함하지만 이에 제한되지 않는 다양한 전송 기술들을 사용하여 통신할 수 있다. 본 발명의 다양한 실시예들을 구현하는데 관련된 통신 디바이스는 라디오, 적외선, 레이저, 케이블 연결들 및 임의의 적절한 연결을 포함하지만 이에 제한되지 않는 다양한 매체들을 사용하여 통신할 수 있다.
원격통신 및 데이터 네트워크들에서, 채널은 물리적 채널 또는 논리적 채널을 의미할 수 있다. 물리적 채널은 유선과 같은 물리적 전송 매체를 의미할 수 있는 반면, 논리적 채널은 여러 논리적 채널들을 전달할 수 있는 다중화된 매체를 통한 논리적 연결을 의미할 수 있다. 채널은 하나 또는 여러 송신기들(또는 전송기들)에서 하나 또는 여러 수신기들로 정보 신호, 예를 들어 비트스트림을 전달하는데 사용될 수 있다.
ISO/IEC 13818-1 또는 등가적으로 ITU-T 권고안 H.222.0에 명시된 MPEG-2 전송 스트림(TS)은 오디오, 비디오 및 다른 미디어들 뿐만 아니라 프로그램 메타데이터 또는 다른 메타데이터를 멀티플렉싱된 스트림으로 전달하기 위한 포맷이다. 패킷 식별자(PID)는 TS 내의 기본 스트림(즉, 패킷화된 기본 스트림)을 식별하는데 사용된다. 따라서 MPEG-2 TS 내의 논리 채널은 특정 PID 값에 대응하는 것으로 간주될 수 있다.
사용 가능한 미디어 파일 포맷 표준들에는 ISO 기반 미디어 파일 포맷(ISOBMFF로 약칭될 수 있는 ISO/IEC 14496-12)과 ISOBMFF에서 파생된 NAL 단위 구조 비디오용 파일 포맷(ISO/IEC 14496-15)을 포함한다.
비디오 코덱은 입력 비디오를 저장/전송에 적합한 압축된 표현으로 변환하는 인코더와 압축된 비디오 표현을 다시 볼 수 있는 형태로 압축 해제할 수 있는 디코더로 구성된다. 비디오 인코더 및/또는 디코더는 서로 분리될 수 있으며, 즉 코덱을 형성할 필요가 없다. 통상적으로, 인코더는 비디오를 더욱 컴팩트한 형태(즉, 낮은 비트레이트)로 표현하기 위해 원본 비디오 시퀀스의 일부 정보를 폐기한다.
예를 들어 ITU-T H.263 및 H.264의 많은 인코더 구현들과 같은 통상적인 하이브리드 비디오 인코더들은 비디오 정보를 두 단계로 인코딩한다. 먼저, 특정 화상 영역(또는 "블록(block)")의 픽셀 값들은 예를 들어 모션 보상 수단(코딩되는 블록에 밀접하게 대응하는 이전에 코딩된 비디오 프레임들 중 하나에서 한 영역을 찾아 표시함) 또는 공간적 수단(특정 방식으로 코딩될 블록 주변의 픽셀 값들을 사용함)에 의해 예측된다. 두 번째로, 예측 오류, 즉 예측된 픽셀 블록과 원래 픽셀 블록 사이의 차이가 코딩된다. 이것은 통상적으로 지정된 변환(예를 들어, 이산 코사인 변환(DCT) 또는 그 변형)을 사용하여 픽셀 값들의 차이를 변환하고, 계수들을 양자화하고, 양자화된 계수들을 엔트로피 코딩하여 수행된다. 인코더는 양자화 프로세스의 충실도를 변경하여, 픽셀 표현의 정확성(화질)과 결과적으로 코딩된 비디오 표현의 크기(파일 크기 또는 전송 비트레이트) 사이의 균형을 제어할 수 있다.
시간적 예측에서, 예측 소스들은 이전에 디코딩된 화상들(일명, 기준 화상)이다. 블록내 복사(IBC; 일명, 블록내-복사 예측)에서는, 예측이 시간적 예측과 유사하게 적용되지만 기준 화상은 현재 화상이고 이전에 디코딩된 샘플들만 예측 프로세스에서 참조할 수 있다. 계층간 예측이나 뷰간 예측은 시간적 예측과 유사하게 적용될 수 있지만, 기준 화상은 각각 다른 스케일러블 계층 또는 다른 뷰로부터 디코딩된 화상이다. 어떤 경우에는, 인터(간) 예측(inter prediction)이 시간적 예측만을 의미할 수도 있지만, 다른 경우에는 시간적 예측과 동일하거나 유사한 프로세스로 수행되는 경우 블록내 복사, 계층간 예측, 뷰간 예측 중 어느 하나와 시간적 예측을 총칭하여 의미할 수도 있다. 인터 예측 또는 시간적 예측은 때때로 모션 보상 또는 모션-보상 예측으로 지칭될 수 있다.
모션 보상은 전체 샘플 또는 서브-샘플 정확도로 수행될 수 있다. 전체 샘플 정확한 모션 보상에서, 모션은 수평 및 수직 변위에 대한 정수 값들을 갖는 모션 벡터로 표현될 수 있으며 모션 보상 프로세스는 이러한 변위들을 사용하여 기준 화상으로부터 샘플들을 효과적으로 복사한다. 서브-샘플의 정확한 모션 보상에서, 모션 벡터들은 모션 벡터의 수평 및 수직 성분들에 대해 분수 또는 소수 값들로 표시된다. 모션 벡터가 기준 화상에서 정수가 아닌 위치를 참조하는 경우, 기준 샘플들과 선택된 서브-샘플 위치를 기반으로 예측된 샘플 값들을 계산하기 위해 통상적으로 서브-샘플 보간 프로세스가 호출된다. 서브-샘플 보간 프로세스는 통상적으로 전체 샘플 위치들에 대한 수평 오프셋들을 보상하는 수평 필터링과 그에 뒤이어 전체 샘플 위치들에 대한 수직 오프셋들을 보상하는 수직 필터링으로 구성된다. 그러나 일부 환경들에서는 수직 처리가 수평 처리 전에 수행될 수도 있다.
시간적 예측, 모션 보상, 모션-보상 예측이라고도 지칭될 수 있는 인터 예측은 시간적 중복성을 감소시킨다. 인터 예측에서 예측 소스들은 이전에 디코딩된 화상들이다. 인트라(내) 예측은 동일한 화상 내의 인접한 픽셀들이 상관될 가능성이 높다는 사실을 활용한다. 인트라 예측은 공간 또는 변환 도메인에서 수행될 수 있는데, 즉 샘플 값들이나 변환 계수들이 예측될 수 있다. 인트라 예측은 통상적으로 인터 예측이 적용되지 않는 인트라 코딩에서 활용된다.
코딩 절차의 한 가지 결과는 모션 벡터들 및 양자화된 변환 계수들과 같은 코딩 파라미터 세트이다. 많은 파라미터들이 공간적 또는 시간적으로 인접한 파라미터들로부터 먼저 예측되면 보다 효율적으로 엔트로피-코딩될 수 있다. 예를 들어, 모션 벡터는 공간적으로 인접한 모션 벡터들로부터 예측될 수 있으며 모션 벡터 예측자와 관련된 차이만이 코딩될 수 있다. 코딩 파라미터들의 예측과 인트라 예측이 총칭하여 인-화상 예측(in-picture prediction)이라고 칭해질 수 있다.
도 4a 및 도 4b는 본 발명의 실시예들을 채용하는데 적합한 인코더 및 디코더를 도시한다. 비디오 코덱은 입력 비디오를 저장/전송에 적합한 압축된 표현으로 변환하는 인코더와 압축된 비디오 표현을 다시 볼 수 있는 형태로 압축 해제할 수 있는 디코더로 구성된다. 통상적으로, 인코더는 비디오를 더욱 컴팩트한 형태(즉, 낮은 비트레이트)로 표현하기 위해 원본 비디오 시퀀스의 일부 정보를 폐기 및/또는 손실한다. 인코딩 프로세스의 예가 도 4a에 도시된다. 도 4a는 인코딩될 이미지(In); 이미지 블록의 예측된 표현(P'n); 예측 오차 신호(Dn); 재구성된 예측 오차 신호(D'n); 예비 재구성 이미지(I'n); 최종 재구성 이미지(R'n); 변환(T) 및 역변환(T-1); 양자화(Q) 및 역양자화(Q-1); 엔트로피 인코딩(E); 기준 프레임 메모리(RFM: reference frame memory); 인터 예측(Pinter); 인트라 예측(Pintra); 모드 선택(MS) 및 필터링(F)을 도시한다.
디코딩 프로세스의 예가 도 4b에 도시된다. 도 4b는 이미지 블록(P'n)의 예측된 표현; 재구성된 예측 오차 신호(D'n); 예비 재구성 이미지(I'n); 최종 재구성 이미지(R'n); 역변환(T-1); 역양자화(Q-1); 엔트로피 디코딩(E-1); 기준 프레임 메모리(RFM); 예측(인터 또는 인트라)(P); 및 필터링(F)을 도시한다.
많은 하이브리드 비디오 인코더들은 두 단계로 비디오 정보를 인코딩한다. 먼저, 특정 화상 영역(또는 "블록")의 픽셀 값들은 예를 들어 모션 보상 수단(코딩되는 블록에 밀접하게 대응하는 이전에 코딩된 비디오 프레임들 중 하나에서 한 영역을 찾아 표시함) 또는 공간적 수단(특정 방식으로 코딩될 블록 주변의 픽셀 값들을 사용함)에 의해 예측된다. 두 번째로, 예측 오류, 즉 예측된 픽셀 블록과 원래 픽셀 블록 사이의 차이가 코딩된다. 이것은 통상적으로 지정된 변환(예를 들어, 이산 코사인 변환(DCT) 또는 그 변형)을 사용하여 픽셀 값들의 차이를 변환하고, 계수들을 양자화하고, 양자화된 계수들을 엔트로피 코딩하여 수행된다. 인코더는 양자화 프로세스의 충실도를 변경하여, 픽셀 표현의 정확성(화질)과 결과적으로 코딩된 비디오 표현의 크기(파일 크기 또는 전송 비트레이트) 사이의 균형을 제어할 수 있다. 비디오 코덱들은 인코더들이 사용하도록 선택할 수 있는 변환 스킵 모드를 제공할 수도 있다. 변환 스킵 모드에서, 예측 오차는 예를 들어 특정 인접 샘플들에 대한 샘플별 차이 값을 도출하고 엔트로피 코더를 사용하여 샘플별 차이 값을 코딩함으로써 샘플 도메인에서 코딩된다.
엔트로피 코딩/디코딩은 다양한 방식으로 수행될 수 있다. 예를 들어, 인코더와 디코더 모두에서 이전에 코딩/디코딩된 코딩 파라미터들에 기초하여 코딩 파라미터의 컨텍스트 상태를 수정하는 컨텍스트-기반 코딩/디코딩이 적용될 수 있다. 컨텍스트-기반 코딩은 예를 들어 컨텍스트 적응형 이진 산술 코딩(CABAC: context adaptive binary arithmetic coding), 컨텍스트-기반 가변 길이 코딩(CAVLC: context-based variable length coding) 또는 임의의 유사한 엔트로피 코딩일 수 있다. 엔트로피 코딩/디코딩은 대안적으로 또는 추가적으로 허프만 코딩/디코딩 또는 지수-골롬 코딩/디코딩(Exp-Golomb coding/decoding)과 같은 가변 길이 코딩 방식을 사용하여 수행될 수 있다. 엔트로피-코딩된 비트스트림 또는 코드워드들로부터 코딩 파라미터들을 디코딩하는 것이 파싱(parsing)이라고 칭해질 수 있다.
비트스트림을 따른(예를 들어, 비트스트림을 따라 표시하는) 문구는 대역외 데이터가 비트스트림과 연관되는 방식으로의 대역외 전송, 시그널링 또는 저장을 지칭하도록 규정될 수 있다. 비트스트림을 따라 디코딩하는 문구 등은 비트스트림과 연관되는 참조된 대역외 데이터(대역외 전송, 시그널링 또는 저장으로부터 얻어질 수 있음)를 디코딩하는 것을 의미할 수 있다. 예를 들어, 비트스트림을 따른 표시는 비트스트림을 캡슐화하는 컨테이너 파일의 메타데이터를 의미할 수 있다.
다음에서, 하나의 비디오 코딩 배열의 맥락에서 여러 실시예들이 기술될 것이다. 그러나, 본 실시예들은 이러한 특정 배열에 반드시 제한되는 것은 아니라는 점에 유의해야 한다. 이 실시예들은 화상의 깨끗한 영역과 더러운 영역 사이의 CTU-정렬 경계를 사용하여 세밀하고 점진적인 디코딩 새로 고침에 관련된다.
고급 비디오 코딩 표준(AVC 또는 H.264/AVC로 약칭될 수 있음)은 국제 원격통신 연합(ITU-T)의 원격통신 표준화 부문의 비디오 코딩 전문가 그룹(VCEG) 및 국제 표준화 기구(ISO)/국제 전기기술 위원회(IEC)의 동화상 전문가 그룹(MPEG)의 합동 비디오 팀(JVT)에 의해 개발되었다. H.264/AVC 표준은 두 상위 표준화 조직들에서 발행되었으며, 이것은 ITU-T 권고안 H.264, 및 MPEG-4 파트 10 고급 비디오 코딩(AVC)으로도 알려져 있는 ISO/IEC 국제 표준 14496-10이라고 칭해진다. H.264/AVC 표준에는 여러 버전이 있으며 각 버전에는 사양에 새로운 확장들 또는 기능들이 통합되어 있다. 이러한 확장들에는 스케일러블 비디오 코딩(SVC: Scalable Video Coding) 및 멀티뷰 비디오 코딩(MVC: Multiview Video Coding)이 포함된다.
고효율 비디오 코딩 표준(HEVC 또는 H.265/HEVC로 약칭될 수 있음)은 VCEG 및 MPEG의 공동 협력팀 - 비디오 코딩(JCT-VC: Joint Collaborative Team - Video Coding)에 의해 개발되었다. 이 표준은 두 상위 표준화 조직들에서 발행되었으며 이것은 ITU-T 권고안 H.265, 및 MPEG-H 파트 2 고효율 비디오 코딩(HEVC)으로도 알려져 있는 ISO/IEC 국제 표준 23008-2라고 칭해진다. H.265/HEVC에 대한 확장에는 SHVC, MV-HEVC, 3D-HEVC 및 REXT라고 칭해질 수 있는 스케일러블, 멀티뷰, 3차원 및 충실도 범위 확장들이 각각 포함된다. 이러한 표준 사양들의 규정들, 구조들 또는 개념들을 이해하기 위한 목적으로 만들어진 H.265/HEVC, SHVC, MV-HEVC, 3D-HEVC 및 REXT에 대한 이 설명의 참조들은 달리 표시되지 않는 한 본 출원일 이전에 사용 가능했던 이러한 표준들의 최신 버전들에 대한 참조로 이해되어야 한다.
다용도 비디오 코딩(VVC, H.266 또는 H.266/VVC로 약칭될 수 있음)은 HEVC의 후속으로 개발된 비디오 압축 표준이다. VVC는 ITU-T 권고안 H.266, 및 MPEG-I 파트 3으로도 지칭되는 등가적으로 ISO/IEC 23090-3에 명시되어 있다.
AV1 비트스트림 포맷 및 디코딩 프로세스에 대한 사양은 개방 미디어 연합(AOM: Alliance of Open Media)에 의해 개발되었다. AV1 사양은 2018년에 발표되었다. AOM은 AV2 사양에 대해 작업 중인 것으로 알려졌다.
H.264/AVC, HEVC, VVC 및/또는 AV1과 이들 확장들 일부의 일부 주요 규정들, 비트스트림 및 코딩 구조들과 개념들은 실시예들이 구현될 수 있는 비디오 인코더, 디코더, 인코딩 방법, 디코딩 방법, 및 비트스트림 구조의 예로서 이 섹션에 기술된다. 다양한 실시예들의 양태들이 H.264/AVC, HEVC, VVC 및/또는 AV1 또는 이들의 확장들로 제한되지 않기 보다는, 본 실시예들이 부분적으로 또는 완전히 실현될 수 있는 하나의 가능한 기초에 대한 설명이 제공된다.
비디오 코덱은 입력 비디오를 저장/전송에 적합한 압축된 표현으로 변환하는 인코더와 압축된 비디오 표현을 다시 볼 수 있는 형태로 압축 해제할 수 있는 디코더를 포함할 수 있다. 압축된 표현은 비트스트림 또는 비디오 비트스트림으로 칭해질 수 있다. 비디오 인코더 및/또는 비디오 디코더는 서로 분리될 수 있으며, 즉 코덱을 형성할 필요가 없다. 인코더는 비디오를 더욱 컴팩트한 형태(즉, 낮은 비트레이트)로 표현하기 위해 원본 비디오 시퀀스의 일부 정보를 폐기할 수 있다. "(디)코더((de)coder)"라는 표기는 인코더 및/또는 디코더를 의미한다.
예를 들어 ITU-T H.264와 같은 하이브리드 비디오 코덱들은 두 단계로 비디오 정보를 인코딩할 수 있다. 먼저 특정 화상 영역(또는 "블록")의 픽셀 값들은 예를 들어 모션 보상 수단(코딩되는 블록에 밀접하게 대응하는 이전에 코딩된 비디오 프레임들 중 하나에서 한 영역을 찾아 표시함) 또는 공간적 수단(특정 방식으로 코딩될 블록 주변의 픽셀 값들을 사용함)에 의해 예측된다. 그런 다음, 예측 오류, 즉 예측된 픽셀 블록과 원래 픽셀 블록 사이의 차이가 코딩된다. 이것은 지정된 변환(예를 들어, 이산 코사인 변환(DCT) 또는 그 변형)을 사용하여 픽셀 값들의 차이를 변환하고, 계수들을 양자화하고, 양자화된 계수들을 엔트로피 코딩하여 수행될 수 있다. 인코더는 양자화 프로세스의 충실도를 변경하여, 픽셀 표현의 정확성(화질)과 결과적으로 코딩된 비디오 표현의 크기(파일 크기 또는 전송 비트레이트) 사이의 균형을 제어할 수 있다.
시간적 예측에서, 예측 소스들은 이전에 디코딩된 화상들(일명, 기준 화상)이다. 블록내 복사(IBC; 일명, 블록내-복사 예측 또는 현재 화상 기준)에서는, 예측이 시간적 예측과 유사하게 적용되지만, 기준 화상은 현재 화상이고 이전에 디코딩된 샘플들만 예측 프로세스에서 참조할 수 있다. 계층간 또는 뷰간 예측은 시간적 예측과 유사하게 적용될 수 있지만, 기준 화상은 각각 다른 스케일러블 계층 또는 다른 뷰로부터 디코딩된 화상이다. 어떤 경우에는, 인터 예측이 시간적 예측만을 의미할 수도 있지만, 다른 경우에는 인터 예측이 시간적 예측과 동일하거나 유사한 프로세스로 수행되는 경우 블록내 복사, 계층간 예측, 뷰간 예측 중 어느 하나와 시간적 예측을 총칭하여 의미할 수도 있다. 인터 예측 또는 시간적 예측은 때때로 모션 보상 또는 모션-보상 예측으로 지칭될 수 있다.
인트라 예측은 동일한 화상 내의 인접한 픽셀들이 상관될 가능성이 높다는 사실을 활용한다. 인트라 예측은 공간 또는 변환 도메인에서 수행될 수 있는데, 즉 샘플 값들이나 변환 계수들이 예측될 수 있다. 인트라 예측은 통상적으로 인터 예측이 적용되지 않는 인트라 코딩에서 활용될 수 있다.
코딩 절차의 한 가지 결과는 모션 벡터들 및 양자화된 변환 계수들과 같은 코딩 파라미터 세트이다. 많은 파라미터들이 공간적 또는 시간적으로 인접한 파라미터들로부터 먼저 예측되면 보다 효율적으로 엔트로피-코딩될 수 있다. 예를 들어, 모션 벡터는 공간적으로 인접한 모션 벡터들로부터 예측될 수 있으며 모션 벡터 예측자와 관련된 차이만이 코딩될 수 있다. 코딩 파라미터들의 예측과 인트라 예측이 총칭하여 인-화상 예측이라고 칭해질 수 있다.
엔트로피 코딩/디코딩은 다양한 방식으로 수행될 수 있다. 예를 들어, 인코더와 디코더 모두에서 이전에 코딩/디코딩된 코딩 파라미터들에 기초하여 코딩 파라미터의 컨텍스트 상태를 수정하는 컨텍스트-기반 코딩/디코딩이 적용될 수 있다. 컨텍스트-기반 코딩은 예를 들어 컨텍스트 적응형 이진 산술 코딩(CABAC), 컨텍스트-기반 가변 길이 코딩(CAVLC) 또는 임의의 유사한 엔트로피 코딩일 수 있다. 엔트로피 코딩/디코딩은 대안적으로 또는 추가적으로 허프만 코딩/디코딩 또는 지수-골롬 코딩/디코딩과 같은 가변 길이 코딩 방식을 사용하여 수행될 수 있다. 엔트로피-코딩된 비트스트림 또는 코드워드들로부터 코딩 파라미터들을 디코딩하는 것이 파싱이라고 칭해질 수 있다.
비디오 코딩 표준들은 오류 없는 비트스트림들에 대한 디코딩 프로세스뿐만 아니라 비트스트림 구문 및 의미를 지정할 수 있는 반면, 인코딩 프로세스는 지정되지 않을 수 있지만 인코더들은 적합한 비트스트림들을 생성해야 할 수도 있다. 비트스트림 및 디코더 적합성은 가상 기준 디코더(HRD: Hypothetical Reference Decoder)를 사용하여 확인할 수 있다. 표준들에는 전송 오류들 및 손실들을 처리하는데 도움이 되는 코딩 도구들이 포함될 수 있지만, 인코딩에서 도구들의 사용은 선택 사항일 수 있으며 오류 있는 비트스트림들에 대한 디코딩 프로세스가 지정되지 않을 수 있다.
인코더에 대한 입력과 디코더의 출력을 위한 기본 단위는 각각 대부분의 경우 화상이다. 인코더에 대한 입력으로 주어지는 화상은 소스 화상으로 칭해질 수도 있고, 디코더에 의해 디코딩된 화상은 디코딩된 화상 또는 재구성된 화상으로 칭해질 수 있다.
소스 및 디코딩된 화상들은 다음의 샘플 어레이 세트들 중 하나와 같은 하나 이상의 샘플 어레이들로 각각 구성된다:
- 루마(Y)만(단색).
- 루마와 2개의 크로마(YCbCr 또는 YCgCo).
- 녹색, 청색 및 적색(GBR, RGB로도 알려져 있음).
- 다른 지정되지 않은 단색 또는 3자극 색상 샘플링들을 나타내는 어레이들(예를 들어, YZX, XYZ로도 알려져 있음).
이하에서, 이들 어레이들은 루마(또는 L 또는 Y) 및 크로마로 지칭될 수 있으며, 여기서 2개의 크로마 어레이들은 Cb 및 Cr로 지칭될 수 있고; 사용 중인 실제 색상 표현 방법과 상관없다. 사용 중인 실제 색상 표현 방법은 예를 들어 코딩된 비트스트림에서, 예를 들어 비디오 유용성 정보(VUI: Video Usability Information) HEVC 구문 등을 사용하여 표시할 수 있다. 성분은 3개의 샘플 어레이들(루마 및 2개의 크로마) 중 하나로부터의 어레이 또는 단일 샘플, 또는 단색 포맷의 화상을 구성하는 어레이 또는 어레이의 단일 샘플로 규정될 수 있다.
화상은 프레임 또는 필드로 규정될 수 있다. 프레임은 루마 샘플들과 대응하는 크로마 샘플들의 행렬로 구성된다. 필드는 프레임의 대체 샘플 행 세트이며 소스 신호가 인터레이스될 때 인코더 입력으로 사용될 수 있다. 크로마 샘플 어레이들이 없을 수도 있거나(따라서 단색 샘플링이 사용 중일 수 있음), 루마 샘플 어레이들과 비교할 때 크로마 샘플 어레이들이 서브샘플링될 수도 있다.
크로마 포맷들은 다음과 같이 요약될 수 있다:
- 단색 샘플링에는 명목상 루마 어레이로 간주될 수 있는 단 하나의 샘플 어레이만 있다.
- 4:2:0 샘플링에서는 2개의 크로마 어레이들 각각이 루마 어레이의 높이의 절반과 너비의 절반을 갖는다.
- 4:2:2 샘플링에서는 2개의 크로마 어레이들 각각의 높이가 같고 루마 어레이 너비의 절반을 갖는다.
- 별도의 색상 평면들이 사용되지 않는 4:4:4 샘플링에서는 2개의 크로마 어레이들 각각이 루마 어레이과 동일한 높이와 너비를 갖는다.
코딩 포맷들 또는 표준들은 샘플 어레이들을 별도의 색상 평면들로 비트스트림에 코딩하고 비트스트림으로부터 개별적으로 코딩된 색상 평면들을 각각 디코딩하도록 허용할 수 있다. 별도의 색상 평면들이 사용 중일 때, 이들 각각은 단색 샘플링을 사용하는 화상으로 (인코더 및/또는 디코더에 의해) 별도로 처리된다.
크로마 서브샘플링이 사용 중일 때(예를 들어, 4:2:0 또는 4:2:2 크로마 샘플링), 루마 샘플들에 대한 크로마 샘플들의 위치는 인코더 측에서 결정될 수 있다(예를 들어, 전처리 단계 또는 인코딩의 일부로서). 루마 샘플 위치들에 대한 크로마 샘플 위치들은 예를 들어 H.264/AVC 또는 HEVC와 같은 코딩 표준에서 미리-규정될 수 있거나, 예를 들어 H.264/AVC 또는 HEVC의 VUI의 일부로서 비트스트림에 표시될 수 있다.
일반적으로, 인코딩을 위한 입력으로 제공되는 소스 비디오 시퀀스(들)는 인터레이스된 소스 컨텐트 또는 프로그레시브 소스 컨텐트를 나타낼 수 있다. 인터레이스된 소스 컨텐트에 대해 상이한 시간에 대향하는 당사자의 필드들이 캡처되었다. 프로그레시브 소스 컨텐트에는 캡처된 프레임들이 포함되어 있다. 인코더는 인터레이스된 소스 컨텐트의 필드들을 두 가지 방식들로 인코딩할 수 있다: 인터레이스된 필드 쌍은 코딩된 프레임으로 코딩될 수 있고, 필드는 코딩된 필드로 코딩될 수 있다. 마찬가지로, 인코더는 두 가지 방식들로 프로그레시브 소스 컨텐트의 프레임들을 인코딩할 수 있다: 프로그레시브 소스 컨텐트의 프레임은 코딩된 프레임으로 또는 코딩된 필드 쌍으로 코딩될 수 있다. 필드 쌍 또는 상보적 필드 쌍은 디코딩 및/또는 출력 순서에서 서로 옆에 있는 2개의 필드들로 규정될 수 있고, 대향하는 당사자(즉, 하나는 상단 필드이고 다른 하나는 하단 필드)를 가지며 어느 쪽 것도 임의의 다른 상보적 필드 쌍에 속하지 않는다. 일부 비디오 코딩 표준들 또는 방식들에서는 동일한 코딩된 비디오 시퀀스에서 코딩된 프레임들과 코딩된 필드들의 혼합을 허용한다. 더욱이, 코딩된 프레임의 필드로부터 코딩된 필드를 예측하는 것 및/또는 상보적 필드 쌍(필드들로서 코딩됨)에 대한 코딩된 프레임을 예측하는 것이 인코딩 및/또는 디코딩에서 가능할 수 있다.
분할(partitioning)은 세트를 서브세트들로 나누어 세트의 각 요소가 서브세트들 중 하나에 정확히 있도록 규정될 수 있다.
H.264/AVC에서 매크로블록은 루마 샘플들의 16x16 블록과 크로마 샘플들의 대응하는 블록들이다. 예를 들어, 4:2:0 샘플링 패턴에서, 매크로블록은 각 크로마 성분당 하나의 8x8 크로마 샘플 블록을 포함한다. H.264/AVC에서, 화상은 하나 이상의 슬라이스 그룹들로 분할되며, 슬라이스 그룹은 하나 이상의 슬라이스들을 포함한다. H.264/AVC에서, 슬라이스는 특정 슬라이스 그룹 내의 래스터 스캔에서 연속적으로 정렬된 정수 개의 매크로블록들로 구성된다.
HEVC 인코딩 및/또는 디코딩의 동작을 기술할 때, 다음과 같은 용어들이 사용될 수 있다. 코딩 블록은 코딩 트리 블록을 코딩 블록들로 나누는 것이 분할이 되도록 N의 일부 값에 대한 NxN 샘플 블록으로 규정될 수 있다. 코딩 트리 블록(CTB: coding tree block)은 성분을 코딩 트리 블록들로 나누는 것이 분할이 되도록 N의 일부 값에 대한 NxN 샘플 블록으로 규정될 수 있다. 코딩 트리 단위(CTU: coding tree unit)는 루마 샘플들의 코딩 트리 블록, 3개의 샘플 어레이들을 갖는 화상의 크로마 샘플들의 2개의 대응하는 코딩 트리 블록들, 또는 샘플들을 코딩하는데 사용되는 3개의 별개의 색상 평면들과 구문 구조들을 사용하여 코딩되는 화상 또는 단색 화상의 샘플들의 코딩 트리 블록으로 규정될 수 있다. 코딩 단위(CU: coding unit)는 루마 샘플들의 코딩 블록, 3개의 샘플 어레이들을 갖는 화상의 크로마 샘플들의 2개의 대응하는 코딩 블록들, 또는 샘플들을 코딩하기 위해 사용되는 3개의 별개의 색상 평면들과 구문 구조들을 사용하여 코딩되는 화상 또는 단색 화상의 샘플들의 코딩 트리 블록으로 규정될 수 있다. 최대 허용 크기를 갖는 CU는 LCU(Largest Coding Unit; 최대 코딩 단위) 또는 코딩 트리 단위(CTU)로 명명될 수 있으며, 비디오 화상은 겹치지 않는 LCU들로 나누어진다.
고효율 비디오 코딩(HEVC) 코덱과 같은 일부 비디오 코덱들에서는 비디오 화상들이 화상의 영역을 덮는 코딩 단위들(CU)로 나누어질 수 있다. CU는 CU 내의 샘플들에 대한 예측 프로세스를 규정하는 하나 이상의 예측 단위들(PU)과 상기 CU의 샘플들에 대한 예측 오류 코딩 프로세스를 규정하는 하나 이상의 변환 단위들(TU)로 구성된다. CU는 미리 규정된 가능한 CU 크기 세트로부터 선택 가능한 크기를 갖는 샘플들의 정사각형 블록으로 구성될 수 있다. 최대 허용 크기를 갖는 CU는 LCU(Largest Coding Unit) 또는 코딩 트리 단위(CTU)로 명명될 수 있으며, 비디오 화상은 겹치지 않는 LCU들로 나누어진다. LCU는 예를 들어 LCU와 결과 CU들을 재귀적으로 나눔으로써, 더 작은 CU들의 조합으로 추가로 나누어질 수 있다. 각각의 결과 CU는 적어도 하나의 PU 및 이와 연관된 적어도 하나의 TU를 가질 수 있다. 각각의 PU 및 TU는 예측 및 예측 오류 코딩 프로세스들의 세분성을 각각 높이기 위해 더 작은 PU들 및 TU들로 추가로 나누어질 수 있다. 각 PU는 해당 PU 내의 픽셀들에 어떤 종류의 예측이 적용될지를 규정하는 것과 연관된 예측 정보(예를 들어, 인터 예측된 PU들에 대한 모션 벡터 정보 및 인트라 예측된 PU들에 대한 인트라 예측 방향성 정보)를 갖는다.
각 TU는 상기 TU 내의 샘플들에 대한 예측 오류 디코딩 프로세스를 기술하는 정보(예를 들어 DCT 계수 정보를 포함)와 연관될 수 있다. 각 CU에 대해 예측 오류 코딩이 적용되는지의 여부는 통상적으로 CU 레벨에서 시그널링된다. CU와 연관된 예측 오차 잔차가 없는 경우에는, 상기 CU에 대한 TU들이 없는 것으로 간주될 수 있다. 이미지를 CU들로 나누고 CU들을 PU들 및 TU들로 나누는 것은 통상적으로 디코더가 이러한 단위들의 의도된 구조를 재현할 수 있도록 비트스트림에서 시그널링된다.
HEVC에서, 직사각형이고 정수 개의 LCU들을 포함하는 타일들로 화상이 분할될 수 있다. HEVC에서는 타일들로의 분할이 정규 격자를 형성하며, 타일들의 높이들 및 너비들은 최대 1 LCU만큼 서로 다르다. HEVC에서, 슬라이스는 하나의 독립적인 슬라이스 세그먼트와, 동일한 액세스 단위 내에서 다음 독립 슬라이스 세그먼트(있는 경우)에 선행하는 모든 후속하는 종속 슬라이스 세그먼트들(있는 경우)에 포함되는 코딩 트리 단위들의 정수로 규정된다. HEVC에서, 슬라이스 세그먼트는 타일 스캔에서 연속적으로 정렬되고 단일 NAL 단위에 포함되는 정수 개의 코딩 트리 단위들로 규정된다. 각 화상을 슬라이스 세그먼트들로 나누는 것이 분할이다. HEVC에서, 독립 슬라이스 세그먼트는, 슬라이스 세그먼트 헤더의 구문 요소들의 값들이 이전 슬라이스 세그먼트에 대한 값들로부터 추론되지 않은 슬라이스 세그먼트가 되도록 규정되고, 종속 슬라이스 세그먼트는 슬라이스 세그먼트 헤더의 일부 구문 요소들의 값들이 디코딩 순서로 이전의 독립 슬라이스 세그먼트에 대한 값들로부터 추론되는 슬라이스 세그먼트가 되도록 규정된다. HEVC에서, 슬라이스 헤더는 현재 슬라이스 세그먼트인 독립 슬라이스 세그먼트의 슬라이스 세그먼트 헤더가 되도록 규정되거나 현재 종속 슬라이스 세그먼트에 선행하는 독립 슬라이스 세그먼트이고, 슬라이스 세그먼트 헤더는 슬라이스 세그먼트에 표현된 제1 또는 모든 코딩 트리 단위들에 속하는 데이터 요소들을 포함하는 코딩된 슬라이스 세그먼트의 일부가 되도록 규정된다. 타일들이 사용되지 않으면, CU들은 타일들 내에 또는 화상 내에 LCU들의 래스터 스캔 순서로 스캐닝된다. LCU 내에서, CU들은 특정 스캔 순서를 갖는다.
디코더는 (인코더에 의해 생성되고 압축 표현에 저장된 모션 또는 공간 정보를 사용하여) 픽셀 블록들의 예측 표현을 형성하기 위해 인코더와 유사한 예측 수단 및 예측 오류 디코딩(공간 픽셀 도메인에서 양자화된 예측 오류 신호를 복구하는 예측 오류 코딩의 역동작)을 적용하여 출력 비디오를 재구성한다. 예측 및 예측 오류 디코딩 수단을 적용한 후 디코더는 예측 및 예측 오류 신호들(픽셀 값들)을 합산하여 출력 비디오 프레임을 형성한다. 디코더(및 인코더)는 또한, 출력 비디오를 디스플레이하기 위해 통과시키고 및/또는 비디오 시퀀스의 다음 프레임들에 대한 예측 기준으로서 이를 저장하기 전에 출력 비디오의 품질을 향상시키기 위해 추가적인 필터링 수단을 적용할 수 있다.
필터링은 예를 들어, 블록 해제, 샘플 적응형 오프셋(SAO: sample adaptive offset), 및/또는 적응형 루프 필터링(ALF: adaptive loop filtering) 중 하나 이상을 포함할 수 있다. H.264/AVC에는 블록 해제가 포함되는 반면, HEVC에는 블록 해제와 SAO가 모두 포함된다.
모션 정보는 예측 단위와 같이, 각 모션 보상 이미지 블록과 연관된 모션 벡터들로 표시될 수 있다. 이들 모션 벡터들 각각은 코딩될(인코더 측) 또는 디코딩될(디코더 측) 화상의 이미지 블록과 이전에 코딩된 또는 디코딩된 화상들 중 하나의 예측 소스 블록의 변위를 나타낸다. 모션 벡터들을 효율적으로 나타내기 위해서는 통상적으로 블록 특정 예측 모션 벡터들에 대해 차등적으로 코딩된다. 통상적인 비디오 코덱들에서 예측된 모션 벡터들은 미리 규정된 방식으로 생성되는데, 예를 들어 인접한 블록들의 인코딩되거나 디코딩된 모션 벡터들의 중앙값을 계산한다. 모션 벡터 예측들을 생성하는 다른 방법은 인접한 블록들 및/또는 시간 기준 화상들의 공존하는 블록들로부터 후보 예측 목록을 생성하고 선택한 후보를 모션 벡터 예측자로 시그널링하는 것이다. 모션 벡터 값들을 예측하는 것 외에도, 어떤 기준 화상(들)이 모션-보상 예측에 사용되는지가 예측될 수 있으며 이 예측 정보는 예를 들어 이전에 코딩된/디코딩된 화상의 기준 인덱스로 표현될 수 있다. 기준 인덱스는 통상적으로 시간 기준 화상의 인접한 블록들 및/또는 공존하는 블록들로부터 예측된다. 또한, 통상적인 고효율 비디오 코덱들은 종종 병합하는/병합 모드라고 불리는 추가 모션 정보 코딩/디코딩 메커니즘을 채용하며, 여기서는 각 사용 가능한 기준 화상 목록에 대한 모션 벡터 및 대응하는 기준 화상 인덱스를 포함하는 모든 모션 필드 정보가 예측되고 아무런 수정/보정 없이 사용된다. 유사하게, 모션 필드 정보의 예측은 시간적 기준 화상들 내 인접한 블록들 및/또는 공존하는 블록의 모션 필드 정보를 이용하여 수행되며, 사용된 모션 필드 정보는 사용 가능한 인접한/공존하는 블록들의 모션 필드 정보로 채워진 모션 필드 후보 목록 중에서 시그널링된다.
통상적인 비디오 코덱들에서는 모션 보상 후 예측 잔차가 먼저 변환 커널(DCT와 같은)로 변환된 다음 코딩된다. 그 이유는 잔차 중에 일부 상관관계가 여전히 존재하는 경우가 많으며 변환은 많은 경우 이러한 상관관계를 줄이고 보다 효율적인 코딩을 제공하는데 도움이 될 수 있기 때문이다.
비디오 코딩 표준 및 사양들은 인코더들이 코딩된 화상을 코딩된 슬라이스들 등으로 분할하는 것을 허용할 수 있다. 슬라이스 경계들에 걸쳐서는 인-화상 예측이 비활성화될 수 있다. 따라서 슬라이스들은 코딩된 화상을 독립적으로 디코딩 가능한 조각들로 나누는 방식으로 간주될 수 있다. H.264/AVC 및 HEVC에서는 슬라이스 경계들에 걸쳐 인-화상 예측이 비활성화될 수 있다. 따라서 슬라이스들은 코딩된 화상을 독립적으로 디코딩 가능한 조각들로 나누는 방식으로 간주될 수 있으며, 따라서 슬라이스들은 종종 전송을 위한 기본 단위들로 간주된다. 많은 경우, 인코더들은 슬라이스 경계들에 걸쳐 어떤 유형들의 인-화상 예측이 꺼지는지를 비트스트림에 표시할 수 있으며, 디코더 동작은 예를 들어 어떤 예측 소스들이 사용 가능한지 결론을 내릴 때 이 정보를 고려한다. 예를 들어, 이웃 CU가 상이한 슬라이스에 있으면, 이웃 CU로부터의 샘플은 인트라 예측에 사용할 수 없는 것으로 간주될 수 있다.
H.264/AVC 또는 HEVC 인코더의 출력과 H.264/AVC 또는 HEVC 디코더의 입력을 위한 기본 단위는 각각 네트워크 추상화 계층(NAL: Network Abstraction Layer) 단위이다. 패킷-지향 네트워크들을 통한 전송 또는 구조화된 파일들로의 저장을 위해, NAL 단위들은 패킷들 또는 유사한 구조들로 캡슐화될 수 있다. 프레이밍 구조들을 제공하지 않는 전송 또는 저장 환경들을 위해 H.264/AVC 및 HEVC에 바이트스트림 포맷이 지정되었다. 바이트스트림 포맷은 각 NAL 단위 앞에 시작 코드를 첨부하여 NAL 단위들을 서로 분리한다. NAL 단위 경계들의 오검출을 피하기 위해, 인코더들은, 시작 코드가 발생하지 않았으면 NAL 단위 페이로드에 에뮬레이션 방지 바이트를 추가하는 바이트-중심 시작 코드 에뮬레이션 방지 알고리즘(byte-oriented start code emulation prevention algorithm)을 실행한다. 패킷-지향 시스템과 스트림-지향 시스템 사이의 간단한 게이트웨이 동작을 가능하게 하기 위해, 바이트스트림 포맷의 사용 여부에 관계없이 시작 코드 에뮬레이션 방지가 항상 수행될 수 있다. NAL 단위는 뒤따르는 데이터 유형의 표시를 포함하는 구문 구조와 필요에 따라 에뮬레이션 방지 바이트들 산재된 RBSP 형태의 해당 데이터를 포함하는 바이트들로 규정될 수 있다. 원시 바이트 시퀀스 페이로드(RBSP: Raw Byte Sequence Payload)는 NAL 단위에 캡슐화되는 정수 개의 바이트들을 포함하는 구문 구조로 규정될 수 있다. RBSP는 비어 있거나 RBSP 정지 비트와 0과 동일한 0개 이상의 후속 비트들이 뒤따르는 구문 요소들을 포함하는 데이터 비트 문자열 형태를 갖는다.
NAL 단위들은 헤더와 페이로드로 구성된다. H.264/AVC 및 HEVC에서, NAL 단위 헤더는 NAL 단위의 유형을 나타낸다.
HEVC에서, 지정된 모든 NAL 단위 유형들에 대해 2바이트 NAL 단위 헤더가 사용된다. NAL 단위 헤더는 하나의 예약된 비트, 6비트 NAL 단위 유형 표시, 시간 레벨에 대한 3비트 nuh_temporal_id_plus1 표시(1 이상이 되도록 요구할 수 있음) 및 6비트 nuh_layer_id 구문 요소를 포함한다. temporary_id_plus1 구문 요소는 NAL 단위에 대한 시간 식별자로 간주될 수 있으며, 0 기반 TemporalId 변수는 TemporalId = temporary_id_plus1 - 1와 같이 도출될 수 있다. 약어 TID는 TemporalId 변수와 상호 교환적으로 사용될 수 있다. TemporalId가 0이면 가장 낮은 시간 레벨에 대응한다. Temporal_id_plus1의 값은 2개의 NAL 단위 헤더 바이트들과 관련된 시작 코드 에뮬레이션을 피하기 위해 0이 아니도록 요구한다. 선택된 값 이상인 TemporalId를 갖는 모든 VCL NAL 단위들을 제외하고 다른 모든 VCL NAL 단위들을 포함함으로써 생성된 비트스트림은 적합한 상태로 남아있다. 결과적으로, tid_value와 동일한 TemporalId를 갖는 화상은 tid_value보다 큰 TemporalId를 갖는 화상을 인터 예측 기준으로 사용하지 않는다. 서브-계층 또는 시간적 서브-계층은 TemporalId 변수의 특정 값을 갖는 단위들 및 연관된 비-VCL NAL 단위들로 구성되는, 시간적 스케일러블 비트스트림의 시간적 스케일러블 계층(또는 시간적 계층, TL)으로 규정될 수 있다. nuh_layer_id는 확장성 계층 식별자로 이해될 수 있다.
NAL 단위들은 비디오 코딩 계층(VCL) NAL 단위들과 비-VCL NAL 단위들로 분류될 수 있다. VCL NAL 단위들은 통상적으로 코딩된 슬라이스 NAL 단위들이다. HEVC에서, VCL NAL 단위들에는 하나 이상의 CU를 나타내는 구문 요소들이 포함된다.
비-VCL NAL 단위는 예를 들어 다음 유형 중 하나일 수 있다: 시퀀스 파라미터 세트, 화상 파라미터 세트, 보충 강화 정보(SEI: supplemental enhancement information) NAL 단위, 액세스 단위 구분 기호, 시퀀스 NAL 단위의 끝, 비트스트림 NAL 단위의 끝 또는 필러 데이터 NAL 단위. 디코딩된 화상들의 재구성을 위해 파라미터 세트들이 필요할 수 있는 반면, 디코딩된 샘플 값들의 재구성을 위해서 다른 비-VCL의 NAL 단위들 중 다수가 필요하지 않는다.
코딩된 비디오 시퀀스를 통해 변하지 않은 상태로 남아있는 파라미터들은 시퀀스 파라미터 세트에 포함될 수 있다. 디코딩 프로세스에 필요할 수 있는 파라미터들 외에도, 시퀀스 파라미터 세트에는 버퍼링, 화상 출력 타이밍, 렌더링 및 리소스 예약에 중요할 수 있는 파라미터들을 포함하는 비디오 유용성 정보(VUI)가 선택적으로 포함될 수 있다. HEVC에서 시퀀스 파라미터 세트 RBSP는 하나 이상의 화상 파라미터 세트 RBSP들 또는 버퍼링 기간 SEI 메시지를 포함하는 하나 이상의 SEI NAL 단위들에 의해 참조될 수 있는 파라미터들을 포함한다. 화상 파라미터 세트에는 여러 코딩된 화상들에서 변하지 않은 상태일 가능성이 있는 파라미터들이 포함되어 있다. 화상 파라미터 세트 RBSP는 하나 이상의 코딩된 화상들의 코딩된 슬라이스 NAL 단위들에 의해 참조될 수 있는 파라미터들을 포함할 수도 있다.
HEVC에서, 비디오 파라미터 세트(VPS)는, 각 슬라이스 세그먼트 헤더에서 발견된 구문 요소에 의해 참조되는 PPS에서 발견된 구문 요소에 의해 참조되는 SPS에서 발견된 구문 요소의 컨텐트에 의해 결정되는 바와 같이 0개 이상의 전체 코딩된 비디오 시퀀스에 적용되는 구문 요소들을 포함하는 구문 구조로 규정될 수 있다.
비디오 파라미터 세트 RBSP는 하나 이상의 시퀀스 파라미터 세트 RBSP들에 의해 참조될 수 있는 파라미터들을 포함할 수 있다.
비디오 파라미터 세트(VPS), 시퀀스 파라미터 세트(SPS) 및 화상 파라미터 세트(PPS) 사이의 관계 및 계층 구조가 다음과 같이 기술될 수 있다. VPS는 파라미터 세트 계층 구조 및 확장성 및/또는 3D 비디오의 맥락에서 SPS보다 한 레벨 위에 있다. VPS는 전체 코딩된 비디오 시퀀스의 모든(확장성 또는 뷰) 계층들에 걸쳐 모든 슬라이스들에 공통적인 파라미터들을 포함할 수 있다. SPS는 전체 코딩된 비디오 시퀀스의 특정(확장성 또는 뷰) 계층의 모든 슬라이스들에 공통적인 파라미터들을 포함하고, 여러(확장성 또는 뷰) 계층들에서 공유될 수 있다. PPS는 특정 계층 표현(하나의 액세스 단위에서 하나의 확장성 또는 뷰 계층의 표현)의 모든 슬라이스들에 공통적이고 다중 계층 표현들의 모든 슬라이스들에 의해 공유될 가능성이 있는 파라미터들을 포함한다.
VPS는 전체 코딩된 비디오 시퀀스의 모든(확장성 또는 뷰) 계층들에 걸쳐 모든 슬라이스들에 적용 가능한 다른 많은 정보뿐만 아니라, 비트스트림에서 계층들의 종속 관계들에 관한 정보를 제공할 수 있다. VPS는 기본 VPS와 VPS 확장의 두 부분들을 포함하는 것으로 간주될 수 있으며, 여기서 VPS 확장은 선택적으로 존재할 수 있다.
대역외 전송, 시그널링 또는 저장은 액세스 용이성 또는 세션 협상과 같은 전송 오류들에 대한 허용 이외의 목적들로 추가적으로 또는 대안적으로 사용될 수 있다. 예를 들어, ISO 기본 미디어 파일 포맷을 따르는 파일의 트랙의 샘플 엔트리는 파라미터 세트들을 포함할 수 있지만, 비트스트림의 코딩된 데이터는 파일의 다른 위치 또는 다른 파일에 저장된다. 비트스트림을 따른(예를 들어, 비트스트림을 따라 표시) 또는 비트스트림의 코딩된 단위를 따른(예를 들어, 코딩된 타일을 따라 표시) 문구는 대역외 데이터가 각각 비트스트림 또는 코딩된 단위와 연관되는 방식으로 대역외 전송, 시그널링 또는 저장을 지칭하기 위해 청구범위 및 기술된 실시예들에서 사용될 수 있다. 비트스트림을 따라 또는 비트스트림의 코딩된 단위 등을 따라 디코딩하는 문구는 비트스트림 또는 코딩된 단위와 각각 연관되는 참조된 대역외 데이터(대역외 전송, 시그널링 또는 저장으로부터 획득될 수 있음)를 디코딩하는 것을 의미할 수 있다.
SEI NAL 단위는 하나 이상의 SEI 메시지들을 포함할 수 있으며, 이것은 출력 화상들의 디코딩에는 필요하지 않지만 화상 출력 타이밍, 렌더링, 오류 검출, 오류 은폐 및 리소스 예약과 같은 관련 프로세스들을 지원할 수 있다.
코딩된 화상은 화상의 코딩된 표현이다.
HEVC에서, 코딩된 화상은 화상의 모든 코딩 트리 단위들을 포함하는 화상의 코딩된 표현으로 규정될 수 있다. HEVC에서 액세스 단위(AU)는 지정된 분류 규칙에 따라 서로 연관되고, 디코딩 순서가 연속적이며, nuh_layer_id의 임의의 특정 값을 갖는 최대 하나의 화상을 포함하는 NAL 단위 세트로 규정될 수 있다. 코딩된 화상의 VCL NAL 단위들을 포함하는 것 외에도, 액세스 단위는 비-VCL NAL 단위들도 또한 포함할 수 있다. 상기 지정된 분류 규칙은 예를 들어 동일한 출력 시간 또는 화상 출력 카운트 값을 갖는 화상들을 동일한 액세스 단위에 연관시킬 수 있다.
비트스트림은 하나 이상의 코딩된 비디오 시퀀스들을 형성하는 코딩된 화상들 및 연관된 데이터의 표현을 형성하는 NAL 단위 스트림 또는 바이트 스트림 형태의 비트 시퀀스로 규정될 수 있다. 제1 비트스트림에 뒤이어, 동일한 파일 또는 통신 프로토콜의 동일한 연결에서와 같이, 동일한 논리 채널에서 제2 비트스트림이 이어질 수 있다. (비디오 코딩의 맥락에서) 기본 스트림은 하나 이상의 비트스트림들의 시퀀스로 규정될 수 있다. 제1 비트스트림의 끝은 특정 NAL 단위로 표시될 수 있으며, 이것은 비트스트림의 끝(EOB) NAL 단위로 지칭될 수 있고 비트스트림의 최종 NAL 단위이다. HEVC 및 현재 확장 초안에서, EOB NAL 단위는 nuh_layer_id가 0을 가지도록 요구한다.
H.264/AVC에서, 코딩된 비디오 시퀀스는 IDR 액세스 단위(포함)로부터, 다음 IDR 액세스 단위(배제)까지, 또는 어느 쪽이든 먼저 나타나는 비트스트림의 끝까지 디코딩 순서에서 연속적인 액세스 단위들의 시퀀스인 것으로 규정된다.
코딩된 비디오 시퀀스(CVS)는 예를 들어, 독립적으로 디코딩 가능하고 다른 코딩된 비디오 시퀀스 또는 비트스트림의 끝이 뒤따르는 디코딩 순서에서 코딩된 화상들의 시퀀스로 규정될 수 있다.
HEVC에서, 코딩된 비디오 시퀀스는, 시퀀스의 끝(EOS) NAL 단위로 지칭될 수 있는 특정 NAL 단위가 비트스트림에 나타나고 nuh_layer_id가 0일 때, (위의 사양에 대해) 추가적으로 또는 대안적으로 종료되도록 지정될 수 있다.
화상들의 그룹(GOP) 및 그 특징들은 다음과 같이 규정될 수 있다. 임의의 이전 화상들이 디코딩되었는지 여부에 관계없이 GOP가 디코딩될 수 있다. 개방형 GOP는 디코딩이 개방형 GOP의 초기 인트라 화상으로부터 시작될 때 출력 순서에서 초기 인트라 화상보다 앞선 화상들이 올바르게 디코딩되지 않을 수 있는 화상들의 그룹이다. 즉, 개방형 GOP의 화상들은 이전 GOP에 속하는 화상들을 참조(인터 예측)할 수 있다. HEVC 디코더는 특정 NAL 단위 유형, CRA NAL 단위 유형이 코딩된 슬라이스들에 사용될 수 있기 때문에, 개방형 GOP를 시작하는 인트라 화상을 인식할 수 있다. 폐쇄형 GOP는 폐쇄형 GOP의 초기 인트라 화상으로부터 디코딩이 시작될 때 모든 화상들이 올바르게 디코딩될 수 있는 화상들의 그룹이다. 즉, 폐쇄형 GOP의 어떤 화상도 이전 GOP의 화상들을 참조하지 않는다. H.264/AVC 및 HEVC에서는 폐쇄형 GOP가 IDR 화상에서 시작될 수 있다. HEVC에서, 폐쇄형 GOP는 또한 BLA_W_RADL 또는 BLA_N_LP 화상에서 시작할 수도 있다. 개방형 GOP 코딩 구조는 기준 화상들의 선택 시 더 큰 유연성으로 인해, 폐쇄형 GOP 코딩 구조에 비해 잠재적으로 압축에 더 효율적이다.
디코딩된 화상 버퍼(DPB: Decoded Picture Buffer)는 인코더 및/또는 디코더에서 사용될 수 있다. 디코딩된 화상들을 버퍼링하는 이유에는 인터 예측에서의 기준들과 디코딩된 화상들을 출력 순서로 재정렬하기 위한 두 가지 이유가 있다. H.264/AVC 및 HEVC가 기준 화상 표시와 출력 재정렬 모두에 대해 상당한 유연성을 제공하므로, 기준 화상 버퍼링과 출력 화상 버퍼링을 위한 별도의 버퍼들은 메모리 리소스들을 낭비할 수 있다. 그러므로, DPB는 기준 화상들 및 출력 재정렬을 위한 통합 디코딩 화상 버퍼링 프로세스를 포함할 수 있다. 디코딩된 화상이 더 이상 기준으로 사용되지 않고 출력에 필요하지 않을 때에는 DPB에서 제거될 수 있다.
H.264/AVC 및 HEVC의 많은 코딩 모드들에서, 인터 예측을 위한 기준 화상은 기준 화상 목록에 대한 인덱스로 표시된다. 인덱스는 가변 길이 코딩으로 코딩될 수 있으며, 이것은 일반적으로 인덱스가 작을수록 해당 구문 요소에 대해 더 짧은 값을 갖도록 한다. H.264/AVC 및 HEVC에서는 2개의 기준 화상 목록들(기준 화상 목록 0 및 기준 화상 목록 1)이 각각의 이중-예측(B) 슬라이스에 대해 생성되고, 하나의 기준 화상 목록(기준 화상 목록 0)이 각 인터-코딩된(P) 슬라이스에 대해 형성된다.
H.264/AVC 및 HEVC를 포함하는 많은 코딩 표준들은 기준 화상 목록에 대한 기준 화상 인덱스를 도출하기 위한 디코딩 프로세스를 가질 수 있으며, 이것은 다수의 기준 화상들 중 어느 것이 특정 블록에 대한 인터 예측에 사용되는지를 나타내는데 사용될 수 있다. 기준 화상 인덱스는 일부 인터 코딩 모드들에서 인코더에 의해 비트스트림으로 코딩될 수 있거나, 예를 들어 일부 다른 인터 코딩 모드들에서 이웃 블록들을 사용하여 (인코더 및 디코더에 의해) 도출될 수 있다.
모션 파라미터 유형들 또는 모션 정보는 다음 유형들 중 하나 이상을 포함할 수 있지만 이에 제한되지는 않는다:
- 예측 유형(예를 들어, 인트라 예측, 단일-예측, 이중-예측) 및/또는 기준 화상 수의 표시;
- 인터(일명 시간적) 예측, 계층간 예측, 뷰간 예측, 뷰 합성 예측(VSP: view synthesis prediction) 및 성분간 예측(기준 화상별 및/또는 예측 유형별로 표시될 수 있고 일부 실시예들에서는 뷰간 및 뷰-합성 예측이 하나의 예측 방향으로 공동으로 고려될 수 있음)과 같은 예측 방향의 표시 및/또는
- 단기 기준 화상 및/또는 장기 기준 화상 및/또는 계층간 기준 화상(예를 들어 기준 화상별로 표시될 수 있음)과 같은 기준 화상 유형의 표시
- 기준 화상 목록에 대한 기준 인덱스 및/또는 기준 화상의 임의의 다른 식별자(이는 예를 들어 기준 화상별로 표시될 수 있고 그 유형은 예측 방향 및/또는 기준 화상 유형에 따라 달라질 수 있으며 기준 인덱스가 적용되는 기준 화상 목록 등과 같은 다른 관련 정보 조각들이 동반될 수 있음);
- 수평 모션 벡터 성분(예를 들어 예측 블록별 또는 기준 인덱스별 등으로 표시될 수 있음);
- 수직 모션 벡터 성분(예를 들어 예측 블록별 또는 기준 인덱스별 등으로 표시될 수 있음);
- 하나 이상의 모션 벡터 예측 프로세스들에서 수평 모션 벡터 성분 및/또는 수직 모션 벡터 성분의 스케일링에 사용될 수 있는, 모션 파라미터들을 포함하거나 이와 연관된 화상과 그 기준 화상 사이의 화상 순서 카운트 차이 및/또는 상대적인 카메라 분리와 같은 하나 이상의 파라미터(여기서 상기 하나 이상의 파라미터들은 예를 들어 각 기준 화상별 또는 각 기준 인덱스별 등으로 표시될 수 있음);
- 모션 파라미터들 및/또는 모션 정보가 적용되는 블록의 좌표, 예를 들어, 루마 샘플 단위들에서 블록의 최상-좌측 샘플의 좌표;
- 모션 파라미터들 및/또는 모션 정보가 적용되는 블록의 범위들(예를 들어, 너비 및 높이).
이전 비디오 코딩 표준들과 비교하여, 다용도 비디오 코덱(H.266/VVC)은 다음과 같은 복수의 새로운 코딩 도구들을 도입한다:
인트라 예측
- 광각 모드 확장 기능이 있는 67 인트라 모드
- 블록 크기 및 모드 종속 4탭 보간 필터
- 위치 종속 인트라 예측 조합(PDPC)
- 교차 성분 선형 모델 인트라 예측(CCLM)
- 다중-기준 라인 인트라 예측
- 인트라 서브-분할들
- 행렬 곱셈을 통한 가중 인트라 예측
화상간 예측
- 공간적, 시간적, 이력-기반 및 쌍별 평균 병합 후보들이 있는 블록 모션 복사
- 아핀 모션 인터 예측
- 서브-블록 기반 시간적 모션 벡터 예측
- 적응형 모션 벡터 해상도
- 시간적 모션 예측을 위한 8x8 블록-기반 모션 압축
- 루마 성분을 위한 8-탭 보간 필터와 크로마 성분을 위한 4-탭 보간 필터를 사용한 고정밀(1/16 픽셀) 모션 벡터 저장 및 모션 보상
- 삼각형 분할들
- 조합된 인트라 및 인터 예측
- MVD와 병합(MMVD)
- 대칭형 MVD 코딩
- 양방향 광학 흐름
- 디코더 측 모션 벡터 미세조정
- CU-레벨 가중치를 이용한 이중-예측
변환, 양자화 및 계수 코딩
- DCT2, DST7 및 DCT8을 사용한 다중 1차 변환 선택
- 저주파 구역에 대한 2차 변환
- 인터 예측 잔차에 대한 서브-블록 변환
- 51에서 63으로 증가된 최대 QP를 사용한 종속 양자화
- 부호 데이터 은닉으로 계수 코딩 변환
- 변환 스킵 잔차 코딩
엔트로피 코딩
- 적응형 이중 윈도우 확률 업데이트를 이용한 산술 코딩 엔진
인루프 필터
- 인-루프 재구성
- 강력하고 긴 필터를 구비한 디블로킹 필터
- 샘플 적응형 오프셋
- 적응형 루프 필터
스크린 컨텐트 코딩:
- 기준 영역 제한을 통해 기준으로 하는 현재 화상
360도 비디오 코딩
- 수평 랩-어라운드 모션 보상
고급 구문 및 병렬 처리
- 직접 기준 화상 목록 시그널링을 통한 기준 화상 관리
- 직사각형 형상의 타일 그룹들이 있는 타일 그룹들
스케일러블 비디오 코딩은 하나의 비트스트림이 예를 들어 상이한 비트레이트들, 해상도들 또는 프레임 레이트들에서 컨텐트의 여러 표현들을 포함할 수 있는 코딩 구조를 의미할 수 있다. 이러한 경우, 수신기는 특성들(예를 들어, 디스플레이 디바이스에 가장 일치하는 해상도)에 따라 원하는 표현을 추출할 수 있다. 대안적으로, 서버 또는 네트워크 요소는 예를 들어 네트워크 특성들이나 수신기의 처리 능력들에 따라 수신기로 전송될 비트스트림의 부분들을 추출할 수 있다. 스케일러블 비트 스트림의 특정 부분들만 디코딩하여 의미 있는 디코딩된 표현이 생성될 수 있다. 스케일러블 비트스트림은 통상적으로 사용 가능한 가장 낮은 품질의 비디오를 제공하는 "기본 계층(base layer)"과, 하위 계층들과 함께 수신되고 디코딩될 때 비디오 품질을 향상시키는 하나 이상의 향상 계층들로 구성된다. 향상 계층들에 대한 코딩 효율성을 향상시키기 위해, 해당 계층의 코딩된 표현은 통상적으로 하위 계층들에 따라 달라진다. 예를 들어, 향상 계층의 모션 및 모드 정보는 하위 계층들로부터 예측할 수 있다. 유사하게, 하위 계층들의 픽셀 데이터는 향상 계층에 대한 예측을 생성하는데 사용될 수 있다.
일부 스케일러블 비디오 코딩 방식들에서, 비디오 신호는 기본 계층과 하나 이상의 향상 계층들로 인코딩될 수 있다. 향상 계층은 예를 들어 시간 해상도(즉, 프레임 레이트), 공간 해상도, 또는 단순히 다른 계층 또는 그 일부에 의해 표현되는 비디오 컨텐트의 품질을 향상시킬 수 있다. 모든 종속 계층들과 함께 각 계층은 예를 들어 특정 공간 해상도, 시간 해상도 및 품질 레벨에서 비디오 신호의 한 표현이다. 이 문서에서는 스케일러블 계층을 모든 종속 계층들과 함께 "스케일러블 계층 표현(scalable layer representation)"으로 지칭한다. 특정 충실도로 원래 신호의 표현을 생성하기 위해 스케일러블 계층 표현에 대응하는 스케일러블 비트스트림 부분이 추출되고 디코딩될 수 있다.
스케일러블 모드들 또는 스케일러블 차원은 다음을 포함할 수 있지만 이에 제한되지는 않는다:
- 품질 확장성: 기본 계층 화상들은 향상 계층 화상들보다 낮은 품질로 코딩되며, 이것은 예를 들어 향상 계층에서보다 기본 계층에서 더 큰 양자화 파라미터 값(즉, 변환 계수 양자화를 위한 더 큰 양자화 단계 크기)을 사용하여 달성될 수 있다. 품질 확장성은 후술하는 바와 같이, 미립자 또는 미세한-입자 확장성(FGS: fine-granularity scalability), 중립자 또는 중간-입자 확장성(MGS: medium-granularity scalability), 및/또는 거립자 또는 거친-입자 확장성(CGS: coarse-granularity scalability)으로 더 분류될 수 있다.
- 공간 확장성: 기본 계층 화상들은 향상 계층 화상들보다 낮은 해상도(즉, 더 적은 샘플들을 가짐)로 코딩된다. 공간 확장성과 품질 확장성, 특히 거립자 확장성 유형은 때로는 동일한 유형의 확장성으로 간주될 수 있다.
- 비트-깊이 확장성: 기본 계층 화상들은 향상 계층 화상들(예를 들어, 10비트 또는 12비트)보다 낮은 비트-깊이(예를 들어, 8비트)에서 코딩된다.
- 다이내믹 레인지 확장성: 스케일러블 계층들은 상이한 톤 매핑 함수 및/또는 상이한 광학 전달 함수를 사용하여 얻어진 상이한 다이내믹 레인지 및/또는 이미지들을 나타낸다.
- 크로마 포맷 확장성: 기본 계층 화상들은 향상 계층 화상들(예를 들어, 4:4:4 포맷)보다 크로마 샘플 어레이들(예를 들어, 4:2:0 크로마 포맷으로 코딩됨)에서 더 낮은 공간 해상도를 제공한다.
- 색역 확장성: 향상 계층 화상들은 기본 계층 화상들보다 더 풍부한/더 넓은 색상 표현 범위를 갖는데 - 예를 들어 향상 계층은 UHDTV(ITU-R BT.2020) 색역을 가질 수 있고 기본 계층은 ITU-R BT.709 색역을 가질 수 있다.
- 뷰 확장성, 멀티뷰 코딩으로도 지칭될 수 있다. 기본 계층은 제1 뷰를 나타내고 향상 계층은 제2 뷰를 나타낸다. 뷰는 하나의 카메라 또는 시점을 나타내는 화상들의 시퀀스로 규정될 수 있다. 입체 화상 또는 2개-뷰 비디오에서는 하나의 비디오 시퀀스 또는 뷰가 좌안에 나타나고, 평행 뷰가 우안에 나타나는 것이 고려될 수 있다.
- 깊이 확장성, 깊이-강화 코딩으로도 지칭될 수 있다. 비트스트림의 계층 또는 일부 계층들은 텍스처 뷰(들)를 나타낼 수 있지만, 다른 계층 또는 계층들은 깊이 뷰(들)을 나타낼 수 있다.
- 관심-영역 확장성(후술된 바와 같음).
- 인터레이스-프로그레시브 확장성(필드-프레임 확장성으로도 알려짐): 기본 계층의 코딩된 인터레이스 소스 컨텐트 자료는 프로그레시브 소스 컨텐트를 표현하기 위해 향상 계층으로 향상된다. 기본 계층의 코딩된 인터레이스 소스 컨텐트는 코딩된 필드들, 필드 쌍들을 나타내는 코딩된 프레임들, 또는 이들의 혼합을 포함할 수 있다. 인터레이스-프로그레시브 확장성에서, 기본-계층 화상은 하나 이상의 향상-계층 화상들에 적합한 기준 화상이 되도록 리샘플링될 수 있다.
- 하이브리드 코덱 확장성(코딩 표준 확장성으로도 알려져 있음): 하이브리드 코덱 확장성에서, 기본 계층과 향상 계층의 비트스트림 구문, 의미 및 디코딩 프로세스가 상이한 비디오 코딩 표준들에 지정된다. 따라서, 기본 계층 화상들은 향상 계층 화상들과 상이한 코딩 표준 또는 포맷에 따라 코딩된다. 예를 들어, 기본 계층은 H.264/AVC로 코딩될 수 있고 향상 계층은 HEVC 다중-계층 확장으로 코딩될 수 있다.
예를 들어, 위에서 언급한 공간, 비트-깊이 및 크로마 포맷 확장성의 경우들에서, 기본 계층 정보는 추가 비트레이트 오버헤드를 최소화하기 위해 향상 계층을 코딩하는데 사용될 수 있다.
확장성은 적어도 두 가지 기본 방식들로 활성화될 수 있다: 스케일러블 표현의 하위 계층들로부터 픽셀 값들 또는 구문의 예측을 수행하기 위한 새로운 코딩 모드들을 도입하는 방식 또는 하위 계층 화상들을 상위 계층의 기준 화상 버퍼(디코딩된 화상 버퍼, DPB)에 배치하는 방식. 첫 번째 접근 방식은 더 유연할 수 있으므로 대부분의 경우 더 양호한 코딩 효율성을 제공할 수 있다. 그러나 두 번째 기준 프레임 기반 확장성 접근 방식은 단일 계층 코덱들에 대한 최소한의 변경들로 매우 효율적으로 구현되는 동시에 대부분의 이용 가능한 코딩 효율성 이득을 여전히 달성할 수 있다. 한 접근 방식에 따르면, 외부 수단으로 DPB 관리만 처리하면 모든 계층들에 대해 동일한 하드웨어 또는 소프트웨어 구현을 활용하여 기준 프레임 기반 확장성 코덱이 구현될 수 있다.
병렬 처리를 활용할 수 있도록, 이미지들은 독립적으로 코딩 가능하고 디코딩 가능한 이미지 세그먼트들(슬라이스들 또는 타일들)로 나누어질 수 있다. 슬라이스들은 통상적으로 디폴트 코딩 또는 디코딩 순서로 처리되는 특정 수의 기본 코딩 단위들로 구성된 이미지 세그먼트들을 나타내는 반면, 타일들은 통상적으로 적어도 어느 정도 개별 프레임들로 처리되는 직사각형 이미지 영역들로 규정된 이미지 세그먼트들을 나타낸다.
비디오는 인간 시각계의 일부 특성들을 반영하는 것으로 밝혀진 YUV 또는 YCbCr 색 공간으로 인코딩될 수 있으며, 인간의 인식이 해당 채널들이 나타내는 색차 충실도에 덜 민감하므로 Cb 및 Cr 채널들에 대해 낮은 품질 표현을 사용할 수 있다.
교차-성분 선형 모델 예측은 예를 들어 VVC/H.266 비디오 코덱에서 사용된다. 이 변형에는 교차-성분 선형 모델 예측을 사용하는 세 가지 크로마 예측 모드들이 있다. 그 중 하나는 인코더에 의해 크로마 예측 블록들에 대한 예측 모드로 선택될 수 있으며 비트스트림으로 디코더에 시그널링될 수 있다. 세 가지 모드들의 차이점은 선형 모델의 파라미터들을 생성하는데 사용되는 기준 샘플 세트이다. 모드들 중 하나는 예측 블록 위의 샘플들만 사용한다: 모델들 중 하나는 예측 블록의 좌측 샘플들만 사용하고; 모드들 중 하나는 예측 블록의 위쪽과 좌측 모두에서 샘플들을 사용한다. 파라미터들의 생성의 복잡성을 낮게 유지하기 위해, 파라미터들은 블록 경계들에서 사용 가능한 기준 샘플들의 서브세트만을 사용하여 계산된다.
VVC/H.266의 교차-성분 선형 모델 예측은 루마 샘플 값 lumaVal의 예측된 크로마 샘플 값 chromVal에 대한 예측(또는 매핑)을 수행하기 위해 다음 공식을 적용한다:
chromaVal = (( lumaVal * a ) >> k ) + b
여기서 파라미터 a와 k는 선형 모델의 기울기를 결정하고 b는 선형 모델의 오프셋 값을 결정한다. 표기 ">>"는 2의 거듭제곱으로 나누는 것에 해당하는 우측으로의 비트 시프트 동작을 나타내는데 사용된다. 파라미터들 a, k 및 b는 결정된 사용 가능한 기준 샘플 세트를 사용하여 결정된다.
선형 모델 파라미터들을 계산하기 위해 선형 회귀를 사용하는 예는 JVET(Joint Video Experts Team; 합동 비디오 전문가 팀) 기여 JVET-D0110에 제공된다. 해당 구현에는 루마 스펙트럼의 상이한 범위들에서 동작하는 2개의 선형 모델들이 있을 수 있다.
다음에서는 본 개시내용의 일부 예시적인 실시예들이 더 상세히 기술될 것이다.
먼저, 인코더의 몇몇 동작들을 설명한다. 인코더는 인코딩될 이미지 픽셀의 휘도 및 색차 성분들을 수신한다. 이미지는 더 작은 블록들로 나누어졌으며, 여기서 하나의 이미지의 휘도 및 색차 성분들이 블록별로 처리될 수 있다. 이미지의 이전에 인코딩되고 이후에 디코딩된 블록들 또는 그 중 일부의 정보는 인코더에 의해 기준 프레임 메모리(RFM)에 저장되어 예를 들어 후속 이미지들의 예측에 사용될 수 있다.
루마 값들을 크로마 값들로 매핑하기 위한 선형 모델은 디코딩된 루마 값들을 기반으로 예측된 크로마 값들을 생성하는데 사용될 수 있다. 이러한 종류의 모델은 기울기 파라미터 "a"와 오프셋 파라미터 "b"를 사용하여 하기와 같이 주어질 수 있다:
chromaVal = lumaVal * a + b
인코더는 기울기 파라미터 "a"와 오프셋 파라미터 "b"를 비트스트림으로 인코딩할 수 있고 디코더는 비트스트림으로부터 이들 파라미터들을 얻을 수 있거나, 초기에 디코더에 의해 알려질 수 있으며, 그러한 파라미터들에 대한 변화들만 디코더에 시그널링될 수 있다.
도 5a는 본 개시내용의 일 실시예에 따른 매핑을 도시한다. 각각의 유효한 루마 샘플 값은 모델을 사용하여 크로마 샘플 값에 매핑될 수 있다. 이 예에서는 루마 값 y0 및 y1과 크로마 값 c0 및 c1을 갖는 2개의 점 또는 2개의 루마-크로마 쌍들 p0 및 p1이 매핑 함수에 대한 기울기 파라미터 a 및 오프셋 파라미터 b를 규정한다. 정수 산술을 사용하는 실제 구현들에서, 방정식에는 기울기 파라미터 a의 기초 또는 정밀도를 규정하는 스케일링 파라미터 "k"도 포함될 수 있다:
chromaVal = (( lumaVal * a ) >> k ) + b
스케일링 파라미터 k는, 예를 들어 인코더에 의해 모델의 파라미터들을 생성하는 프로세스 동안에 선택될 수 있거나, 상이한 방식들로 디코더에 표시될 수도 있거나, 또는 고정된 k가 인코더가 수행하는 모든 매핑에 사용될 수도 있다. 파라미터 k는 lumaVal과 기울기 파라미터 a 사이의 곱셈 결과가 루마-크로마 값 공간에 도달하기 위해 비트 우측 시프트 동작 >>을 사용하여 아래로 시프트되는 비트들이 얼마나 많은지를 결정한다. 즉, 결과를 2k로 나눈 것이다.
일 실시예에서, 기울기 파라미터 a에 대한 업데이트 항 "u"는 인코더에 의해 규정된다.
업데이트 항 u는 기울기 파라미터 a에 대해 결정된 기초 또는 정밀도 k와 상이한 기초 또는 정밀도 "s"를 가질 수 있다. 예를 들어, 업데이트 항 u는 수신된 업데이트 항 u를 3비트 만큼 아래로 시프트하는 것(또는 이를 23=8로 나누는 것)에 대응하는 3의 기초를 가질 수 있다. 다른 예로서, 업데이트 항 u는 수신된 업데이트 항 u를 4비트 만큼 아래로 시프트하는 것(또는 이를 24=16으로 나누는 것)에 대응하는 4의 기초를 가질 수 있다. 기초는 고정될 수 있거나, 비트스트림으로 시그널링될 수 있거나, 예를 들어 예측되거나 처리될 블록 크기의 함수로서 디코더에 의해 적응적으로 결정될 수 있다. 예로서, 예측 블록 크기가 임계값보다 높으면 기초 s는 더 정밀한 정밀도 업데이트 항에 대응하여 더 커질 수 있고, 예측 블록 크기가 임계값 아래이면 더 작을 수 있다.
업데이트 항 u를 기울기 파라미터 a에 추가하기 위해서는, 이들 파라미터들의 기저들이 동일하게 만들어져야 한다. 이것은 k가 s보다 큰 경우 u의 기저들이 k의 기저들과 일치할 때까지 u를 비트 단위로 위로 시프트하거나, k가 s보다 작은 경우 u의 기저들이 k의 기저들과 일치할 때까지 a를 위로 시프트하여 달성될 수 있다.
이 예에서, 파라미터들 a', k' 및 b'를 사용하여 업데이트된 선형 모델이 다음과 같이 작성할 수 있다:
chromaVal = ( ( lumaVal * a' ) >> k' ) + b'
업데이트된 선형 모델 파라미터들은 예를 들어 하기의 의사 코드를 사용하여 계산될 수 있다:
a, b, k, refLuma = estimateModel(기준 샘플 세트)
u = decodeUpdateTerm(비트스트림)
k' = k
if ( k < s )
{
// 적어도 업데이트 정밀도 크기만큼 최종 시프트를 수행한다
a = a << ( s - k )
k' = s
}
else if ( k > s )
{
// 최종 시프트가 업데이트의 정밀도보다 크다: 업데이트를 최종 정밀도까지 확장한다
u = u << ( k - s )
}
a' = a + u
b' = b - ( ( u * yr ) >> k' )
원래 선형 모델 파라미터들 a, b 및 k는 예를 들어 H.266/VVC 사양에서 결정된 프로세스를 따르는 estimateModel 함수에 의해 또는 선형 회귀를 사용하는 것과 같은 대안적인 방법으로 계산될 수 있다. 원래 파라미터들 a, b 및 k 외에도, 추가 기준 루마 파라미터 yr이 결정되어 업데이트된 오프셋 파라미터 b'를 계산할 때 기준값으로 사용된다. yr 파라미터는 다양한 방식들로 결정될 수 있다. 예를 들어 2개의 루마-크로마 쌍들을 사용하여 선형 모델을 계산하는 경우 yr은 해당 쌍들의 루마 값들의 평균으로 설정될 수 있다. 선형 모델을 계산하기 위해 4개의 루마-크로마 쌍들이 사용되는 경우, yr은 예를 들어 해당 쌍들 중 가장 큰 루마 값과 가장 작은 루마 값의 평균으로 설정될 수 있거나; yr은 해당 쌍들 중 두 번째로 큰 루마 값과 세 번째로 큰 루마 값의 평균으로 설정될 수 있거나; 또는 yr은 이들 4개 쌍들의 루마 값들의 평균으로 설정될 수 있다. 추가 예들로서, yr은 기준 루마-크로마 쌍들 또는 루마 기준값들의 결정된 세트에서 루마 값들의 평균, 해당 값들의 중앙값, 또는 해당 값들의 최대값과 최소값의 평균, 또는 다른 방식들로 계산될 수 있다.
yr이 계산되는 방식은 비트스트림 시그널링을 기반으로 결정될 수도 있다. 예를 들어, 결정된 루마 기준 샘플들의 평균을 yr로 사용하는지, 또는 기준 루마 값 세트의 가중된 평균으로 yr을 계산하는지와 해당 가중치들이 무엇인지 시그널링될 수 있다. 추가적으로 또는 블록 경계 외부에서 얻어진 통상적인 기준값들을 사용하는 대신, yr 파라미터의 결정에는 예측 블록 또는 예측 단위 내부에 재구성된 루마 값들이 포함될 수 있다.
도 5b는 업데이트된 매핑을 도시한다. 업데이트 항 u는 매핑이 회전되는 제어점으로 루마 값 yr과 기준점 pr을 사용하여 매핑의 기울기에 적용된다. 이제 업데이트된 기울기 파라미터 a'와 업데이트된 오프셋 파라미터 b'가 새 매핑을 규정한다. 더 간단한 예시를 위해 스케일 파라미터들 k 및 s는 생략되었다.
업데이트 항 u는 2개의 개별 성분들: 즉 크기와 부호로 시그널링될 수 있다. 크기는 업데이트 항 u의 절대값, |u|을 나타내고, 부호는 실제 값이 양수인지 여부, 즉 절대값 |u|와 같거나 음수, 즉 -1*|u|인지를 나타낸다. 크기는 이진화되어 산술 코딩으로 코딩되거나, 가변 길이 또는 고정 길이 코드워드로 시그널링될 수 있다. 부호는 산술적으로 코딩된 이진 코드워드로 코딩되며 여기서 기호 0 또는 기호 1이 선택되어 업데이트 항이 원래 값 또는 기준값 "a"를 0으로 미세조정하고 있음을 표시하고; 다른 기호는 기준값이 0에서 멀어지게 미세조정되고 있음을 표시하기 위해 선택된다. 두 가지 대안 선택들이 아래 [표 1]과 [표 2]에 요약된다.
"0쪽으로(towards zero)"라는 표현은 업데이트 항이 기준값과 더해질 때, 기준값의 크기(절대값)가 감소되게 기준값의 실제 변화가 일어나도록 업데이트 항이 사용된다는 것을 의미한다. 이에 따라, "0에서 멀어지는(away from zero)"이라는 표현은 업데이트 항이 기준값과 더해질 때, 기준값의 크기(절대값)가 증가되게 기준값의 실제 변화가 일어나도록 업데이트 항이 사용된다는 것을 의미한다.
[표 1]에서, 구문 요소 0이 기준값을 0쪽으로 미세조정하는 부호를 나타내고 구문 요소 1이 기준값을 0에서 멀어지게 미세조정하는 부호를 나타낼 때, 업데이트 항 u의 부호는 부호를 나타내는 구문 요소와 기준값 a의 함수로 표시된다.
부호를 나타내는 구문 요소 | ||
0 | 1 | |
a>0 | - | + |
a<=0 | + | - |
예를 들어, 인코더가 기준값 a가 +4이고 업데이트 항이 -2라고 결정한 경우, 인코더는 부호를 나타내는 구문 요소를 0으로 설정하고 업데이트 항에 대한 크기 2와 구문 요소 0을 인코딩하여 업데이트 항이 음수임을 디코더에 표시할 수 있다. 다른 예로, 인코더가 기준값 a가 -3이고 업데이트 항이 -2라고 결정한 경우, 인코더는 부호를 나타내는 구문 요소를 1로 설정하고 업데이트 항에 대한 크기 2와 구문 요소 1을 인코딩하여 업데이트 항이 음수임을 디코더에 표시할 수 있다.
[표 2]에서, 구문 요소 1이 기준값을 0쪽으로 미세조정하는 부호를 나타내고 구문 요소 0이 기준값을 0에서 멀어지게 미세조정하는 부호를 나타낼 때, 업데이트 항 u의 부호는 부호를 나타내는 구문 요소와 기준값 a의 함수로 표시된다.
부호를 나타내는 구문 요소 | ||
0 | 1 | |
a>0 | + | - |
a<=0 | - | + |
예를 들어, 인코더가 기준값 a가 +4이고 업데이트 항이 -2라고 결정한 경우, 인코더는 부호를 나타내는 구문 요소를 1로 설정할 수 있다. 다른 예로, 인코더가 기준값 a가 -3이고 업데이트 항이 -2라고 결정한 경우, 인코더는 부호를 나타내는 구문 요소를 0으로 설정할 수 있다.
임계값의 예로는 0이 사용되었으나, 0이 아닌 임계값들에 대해서도 동일한 원리가 구현될 수 있다는 점에 유의해야 한다. 예를 들어, 임계값은 2일 수 있으며, 여기서 구문 요소는 기준값이 2쪽으로 또는 2에서 멀어지게 변경되어야 하는지 여부를 표시한다. 따라서 최좌측 열에서 0은 0이 아닌 임계값, 예를 들어 이 예에서는 2로 대체된다. 여전히, (업데이트 항을 더하기 전) 기준값과 함께 부호를 나타내는 구문 요소는 업데이트 항의 부호가 양수인지 음수인지를 나타낸다.
구문 요소의 값 0은 제1 표시값으로 불릴 수도 있고, 구문 요소의 값 1은 제2 표시값으로 불릴 수도 있다. 또한, 제1 표시값이 0일 필요는 없으며, 각각 제1 표시값이 1일 필요는 없고 다른 값들이 대신 사용될 수도 있다는 점에 유의해야 한다.
또한, 업데이트 항 u의 크기는 독립적으로 또는 기준값과 조합하여 상이한 구역들을 결정할 수 있고, 업데이트 항의 부호를 코딩하는 상이한 방법들이 이러한 구역들에 대해 선택될 수 있다. 예를 들어, 업데이트 항의 크기가 임계값 미만이면, 부호는 고정 길이 코딩으로 표시될 수 있고 그렇지 않으면 부호 반전 접근 방식으로 표시될 수 있다.
구문 요소들이 디코딩될 때 디코더는 기준값 a를 인식하지 못할 수 있다. 이 경우, 업데이트 항 u에 대한 초기 부호는, 업데이트 항의 초기 부호를 나타내는 디코딩된 구문 요소가 1이면 음수로 설정하고 디코딩된 구문 요소가 0이면 양수로 설정하거나, 또는 뒤바꾸어, 업데이트 항의 초기 부호를 나타내는 디코딩된 구문 요소가 0이면 음수로 설정하고 디코딩된 구문 요소가 1이면 양수로 설정하여 업데이트 항 u에 대해 디코딩될 수 있다. 그런 다음 기준값 a가 결정되면 업데이트 항 u의 최종 값이 할당될 수 있다. 이 경우, 업데이트 항 u에 대한 최종 값은 기준값 a의 양수 값들에 대해 디코딩된 업데이트 항의 부호를 반전시키거나 기준값 a의 음수 및 0의 값들에 대해 디코딩된 업데이트 항의 부호를 유지하는 다음 의사코드를 사용하여 결정될 수 있다:
uDec = decodeUpdateTerm(비트스트림)
a, b, k, refLuma = estimateModel(기준 샘플 세트)
u = a > 0? -uDec : uDec
이것은 또한 다음의 의사 코드로 표현될 수 있다:
uDec = decodeUpdateTerm(비트스트림)
a, b, k, refLuma = estimateModel(기준 샘플 세트)
if a > 0:
u = -uDec
else:
u = uDec
즉, 비트스트림으로 수신된 인코딩된 업데이트 항이 디코딩되어 uDec(u의 크기)를 얻는다. 값들 a, b, k 및 refLuma는 기준 샘플 세트를 기반으로 얻어진다. 그런 다음 기준값 a가 0보다 크면, 업데이트 항은 디코딩된 업데이트 항의 반전된 값으로 설정된다. 기준값 a가 0보다 크지 않으면(즉, 0 이하이면), 업데이트 항은 이를 반전시키지 않고 디코딩된 업데이트 항의 값으로 설정된다.
일 실시예에서, 기울기 파라미터 a에 대한 업데이트 항 "u"가 규정되어 인코더에 의해 비트스트림으로 인코딩되고 디코더에 의해 비트스트림으로부터 수신되며, 루마-크로마 값 쌍으로 구성된 기준점이 결정되고 파라미터들 a, k 및 b는 업데이트 항 및 기준점에 기초하여 디코더에 의해 업데이트된다.
일 실시예에서, 기울기 파라미터 a에 대한 업데이트 항 u는 인코더에 의해 비트스트림으로 인코딩되고 디코더에 의해 비트스트림으로부터 수신되며, 기준 루마 값이 결정되고 파라미터들 a, k 및 b는 업데이트 항 및 기준 루마 값에 기초하여 디코더에 의해 업데이트된다.
일 실시예에서, 비디오 또는 이미지 디코더는 다음 단계들을 수행한다.
초기 업데이트 항의 부호 및 크기가 디코딩된다. 초기 업데이트 항의 값은 초기 업데이트 항의 디코딩된 부호 및 크기에 기초하여 결정된다. 루마 대 크로마 매핑 함수의 파라미터에 대한 기준값이 결정된다. 기준 파라미터의 값이 0보다 크면 초기 업데이트 항의 부호를 반전시키고, 그렇지 않으면 부호가 반전되지 않게 하여 업데이트 항의 값이 결정된다. 루마 대 크로마 매핑 함수의 파라미터에 대한 값은 기준값과 업데이트 항의 값을 사용하여 결정된다.
일 실시예에서, 기준 파라미터의 값이 0이상이면, 초기 업데이트 항의 부호를 반전시켜 업데이트 항의 값이 결정된다.
일 실시예에서, 기준 파라미터의 값이 0이하이면, 초기 업데이트 항을 수정하지 않은 상태로 유지함으로써 업데이트 항의 값이 결정된다.
일 실시예에서, 기준 파라미터의 값이 0보다 작으면, 초기 업데이트 항을 수정하지 않은 상태로 유지함으로써 업데이트 항의 값이 결정된다.
대안적인 실시예에서, 비디오 또는 이미지 디코더는 다음 단계들을 수행한다.
루마 대 크로마 매핑 함수의 파라미터에 대한 기준값이 계산된다. 루마 대 크로마 매핑 함수의 파라미터에 대한 업데이트 항의 크기가 결정된다. 업데이트 항의 부호를 결정하는데 사용되는 이진 구문 요소도 결정된다. 업데이트 항의 부호는 기준값에 기초하여 이진 구문 요소를 해석하여 결정된다. 루마 대 크로마 매핑 함수의 파라미터에 대한 값은 기준값, 업데이트 항의 디코딩된 크기 및 업데이트 항의 결정된 부호를 사용하여 결정된다.
일 실시예에서, 기준값이 0보다 크고 부호를 나타내는 디코딩된 구문 요소가 1이거나; 또는 기준값이 0이하이고 부호를 나타내는 디코딩된 구문 요소가 0이면, 업데이트 항의 부호는 양수로 결정된다. 마찬가지로, 기준값이 0보다 크고 부호를 나타내는 디코딩된 구문 요소가 0이거나; 또는 기준값이 0이하이고 부호를 나타내는 디코딩된 구문 요소가 1이면, 업데이트 항의 부호는 음수로 결정된다.
일 실시예에서, 기준값이 0보다 크고 부호를 나타내는 디코딩된 구문 요소가 1이거나; 또는 기준값이 0이하이고 부호를 나타내는 디코딩된 구문 요소가 0이면, 업데이트 항의 부호는 음수로 결정된다. 마찬가지로, 기준값이 0보다 크고 부호를 나타내는 디코딩된 구문 요소가 0이거나; 또는 기준값이 0이하이고 부호를 나타내는 디코딩된 구문 요소가 1이면, 업데이트 항의 부호는 양수로 결정된다.
일 실시예에서, 업데이트 항의 부호를 나타내는 디코딩된 이진 구문 요소가 0이면 업데이트 항이 기준값을 0쪽으로 미세조정하고, 업데이트 항의 부호를 나타내는 디코딩된 이진 구문 요소가 1이면 0에서 멀어지도록 부호가 결정된다.
일 실시예에서, 업데이트 항의 부호를 나타내는 디코딩된 이진 구문 요소가 1이면 업데이트 항이 기준값을 0쪽으로 미세조정하고, 업데이트 항의 부호를 나타내는 디코딩된 이진 구문 요소가 0이면 0에서 멀어지도록 부호가 결정된다.
일 실시예에서, 비디오 또는 이미지 인코더는 다음 단계들을 수행한다:
루마 대 크로마 매핑 함수의 파라미터에 대한 기준값이 결정된다. 기준값에 대한 업데이트 항의 값이 결정된다. 기준값이 0보다 크면, 표시된 값의 부호가 업데이트 항의 결정된 값의 부호와 반대가 되도록 업데이트 항에 대한 표시된 값이 결정된다. 업데이트 항의 표시된 값의 부호 및 크기는 비디오 비트스트림으로 인코딩된다.
일 실시예에서, 기준 파라미터의 값이 0이상이면, 업데이트 항의 부호를 반전시킴으로써 업데이트 항의 표시된 값이 결정된다.
일 실시예에서, 기준 파라미터의 값이 0이하이면, 업데이트 항을 수정하지 않은 상태로 유지함으로써 업데이트 항의 표시된 값이 결정된다.
일 실시예에서, 기준 파라미터의 값이 0보다 작으면, 업데이트 항을 수정하지 않은 상태로 유지함으로써 업데이트 항의 표시된 값이 결정된다.
일 실시예에서, 업데이트 항의 값을 결정하기 위해 레이트-왜곡 결정이 이루어지고, 표시된 업데이트 항은 업데이트 항의 값에 기초하여 결정된다.
일 실시예에서, 표시된 업데이트 항의 값을 결정하기 위해 레이트-왜곡 결정이 이루어지고, 업데이트 항은 표시된 업데이트 항의 값에 기초하여 결정된다.
도 5c는 결정된 초기 매핑 라인 외부의 제어점 pr을 선택하고, 해당 지점에 대해 기울기 업데이트를 수행하는 것을 예시한다. 이 경우 오프셋 파라미터 b는 그에 따라 업데이트되어야 한다. 예를 들어, pr이 매핑선 위의 특정 양의 크로마 값들이면, b'도 동일한 양만큼 올려져야 한다. 대안적으로, 업데이트된 기울기 파라미터 a'와 제어점 pr의 좌표를 사용하여 b'가 계산될 수 있다. 예를 들어 제어점 pr의 루마 값 yr과 크로마 값 cr을 사용하여 다음과 같이 수행될 수 있다:
b' = cr - ((a' * yr) >> k')
도 5d는 결정된 초기 매핑 라인 외부의 제어점 pr을 이용하고, 기울기는 변경하지 않은 상태로 유지하면서 오프셋 파라미터 b에 대한 업데이트만 수행하는 것을 예시한다. 이 대안예에서, 기울기 파라미터는 2개 이상의 루마-크로마 값 쌍들 또는 제어점들을 기반으로 계산된다. 또한 추가 제어점 pr은 상이하거나 동일한 기준 루마-크로마 쌍 세트를 사용하여 계산된다. 예를 들어, 세트의 평균 루마 값 또는 기준 루마 값들이 제어점 pr의 루마 값 yr로 사용될 수 있고; 세트의 평균 크로마 값 또는 기준 크로마 값들이 제어점 pr의 크로마 값 cr로 사용될 수 있다. 기준 크로마 값 세트는 예를 들어 블록 바로 위와 블록 바로 좌측에 있는 재구성된 경계 크로마 샘플들의 모든 값들을 포함할 수 있다. 기준 루마 값 세트는, 예를 들어 크로마와 루마 해상도들이 다른 경우 보간법에 의해 얻어질 수 있는 대응하는 루마 샘플 값일 수 있다. 경계 크로마 샘플들에는 블록 바로 위와 좌측에 있는 샘플들이 포함될 수 있지만 이들 어레이들의 확장들도 또한 포함될 수 있다. 예를 들어, 폭이 w인 블록 위의 경계 샘플 세트는 블록에 인접한 w 샘플들을 포함할 수 있거나 블록 바로 위의 제1 w 샘플들의 동일한 행에 w개의 추가 샘플들도 포함하는 2*w개의 샘플들을 포함할 수 있다. 업데이트된 오프셋 값 b'는 기준 루마 값 yr과 기준 크로마 값 cr을 사용하여 다음과 같이 계산될 수 있다:
b' = cr - ((a * yr) >> k)
유리하게는, 기울기 파라미터 a를 계산하기 위한 기준 루마 값 및 크로마 값 세트는 오프셋 파라미터 b'를 생성하기 위해 cr 및 yr 파라미터들을 계산하기 위한 기준 루마 값 및 크로마 값 세트보다 작게 선택된다. 이러한 선택을 통해, 1차 기울기 파라미터 a를 계산하는 계산 복잡도가 낮게 유지될 수 있고, cr 및 yr의 비교적 간단한 계산은 예를 들어 기준 크로마 값들을 평균하여 cr을 생성하고 기준 루마 값들을 평균하여 yr을 생성함으로써 cr 및 cy를 결정하여 보다 정확하게 수행될 수 있다.
선형 모델의 바이어스 항 b'를 계산하기 위한 기준 루마 값 및 크로마 값 세트는 선형 모델의 기울기 파라미터 a를 계산하는데 사용되는 기준 루마 값 및 크로마 값의 상위 세트가 되도록 선택될 수 있는 것이 유리하다. 이것은 이미 생성되었거나 페치된 기준 샘플들이 바이어스 항 b'를 결정하는데 사용할 수 있으므로 선형 모델 결정과 연관된 계산 복잡성을 낮출 수 있으면서, 더 큰 기준 샘플 세트가 이를 계산하는데 이용 가능하게 되므로 오프셋 파라미터 b'의 정확성과 안정성을 향상시킬 수 있다.
도 6a 내지 도 6c는 블록 B 위의 기준 샘플들 R에 대한 다양한 선택들을 예시한다. 도 6a는 블록 바로 위에서 선택된 기준 샘플 세트를 도시한다. 도 6b의 예는 블록의 우상단의 추가 샘플들도 포함하도록 기준 샘플 세트를 확장하는 것을 도시하고, 도 6c는 기준 샘플 어레이를 좌측으로 한 샘플씩 확장하는 것을 도시한다. 당연히, 다른 선택들도 이루어질 수 있으며, 예를 들어, 2*w+1개 샘플들을 세트에 포함한다. 블록 B의 좌측에서도 유사한 선택들이 이루어질 수 있으며 블록 좌측과 위쪽의 샘플들 또는 샘플 어레이들의 조합들도 사용될 수 있다.
일 실시예에서, 비디오 또는 이미지 디코더는 도 7a의 흐름도를 참조하여 다음 단계들을 수행한다:
디코더는 초기 업데이트 항의 부호 및 크기를 디코딩한다(702). 디코더는 초기 업데이트 항의 디코딩된 부호 및 크기에 기초하여 초기 업데이트 항의 값을 결정한다(704). 디코더는 루마 대 크로마 매핑 함수의 파라미터에 대한 기준값을 결정하고(706) 기준 파라미터의 값이 0보다 크면 디코더는 초기 업데이트 항의 부호를 반전시켜 업데이트 항의 값을 결정한다(708). 디코더는 기준값 및 업데이트 항의 값을 사용하여 루마 대 크로마 매핑 함수의 파라미터에 대한 값을 추가로 결정한다(710).
일 실시예에서, 비디오 또는 이미지 디코더는 도 7b의 흐름도를 참조하여 다음 단계들을 수행한다:
디코더는 루마 대 크로마 매핑 함수의 파라미터에 대한 적어도 기준값을 계산한다(722). 그런 다음 디코더는 루마 대 크로마 매핑 함수의 파라미터에 대한 업데이트 항 u의 크기를 디코딩한다(724). 디코더는 또한 업데이트 항의 부호를 결정하는데 사용되는 이진 구문 요소를 디코딩한다(726). 디코더는 기준값에 기초하여 이진 구문 요소를 해석함으로써 업데이트 항의 부호를 결정한다(728). 디코더는 또한 기준값, 업데이트 항의 디코딩된 크기 및 업데이트 항의 결정된 부호를 사용하여 루마 대 크로마 매핑 함수의 파라미터에 대한 값을 결정한다(730).
하나의 색 성분 값들을 다른 색 성분 값들로 매핑하는 것을 규정하는 파라미터들의 계산은 다양한 방식들로 수행될 수 있다. 예를 들어, 선형 회귀 또는 다른 통계 방법들을 사용하여 기준 샘플 세트에 대해 모델이 생성할 수 있는 오류를 최소화할 수 있다. 기준 샘플들은 예측될 블록의 경계들로부터 얻어지거나 다른 데이터 세트를 사용하여 얻어질 수 있다. 또한 인코더가 하나를 선택하고 비트스트림으로 디코더에 선택을 표시하는 여러 후보 기준 세트들이 있을 수 있다. 경계 샘플들의 서브세트나 다른 샘플 세트들도 또한 사용할 수 있다. 이러한 경우에는 예를 들어 이용 가능한 기준 샘플들에서 선택된 4개의 샘플 쌍들이 있을 수 있으며, 각 샘플 쌍은 루마 샘플과 대응하는 크로마 샘플로 구성된다. 4개의 쌍들 중 가장 낮은 루마 값들을 갖는 2개의 쌍들은 제1 세트를 형성할 수 있고, 가장 높은 루마 값들을 갖는 2개의 쌍들은 제2 세트를 형성할 수 있다. 제1 세트의 루마 값들이 평균화되어 제1 평균 루마 값을 형성할 수 있고, 제1 세트의 크로마 값들이 평균화되어 제1 평균 크로마 값을 형성할 수 있다. 유사하게, 제2 세트의 루마 값들이 평균화되어 제2 평균 루마 값을 형성할 수 있고, 제2 세트의 크로마 값들이 평균화되어 제2 평균 크로마 값을 형성할 수 있다. 이제 선형 모델 파라미터들은 H.266/VVC 표준에서와 같이 2개의 평균 루마 값들과 2개의 평균 크로마 값들로부터 계산될 수 있다.
기울기 값에 대한 업데이트 항은 다양한 방식들로 결정될 수 있다. 예를 들어, 비디오 인코더는 레이트-왜곡 최적화 기술들을 사용하여 기울기 값에 대한 적절한 업데이트 항을 결정할 수 있다. 비디오 디코더는 비트스트림으로부터 그것을 파싱하거나, 예측하거나, 예측과 비트스트림 시그널링의 조합에 의해, 또는 다른 수단에 의해 기울기 값에 대한 업데이트 항을 결정할 수 있다.
기울기 값에 대한 업데이트 항은 계산된 기울기 값 a와 동일한 기초로 스케일링될 수 있거나, 계산된 기울기 값 a는 업데이트 항과 동일한 기초로 스케일링될 수 있거나, 두 값들 모두 제3 기초로 스케일링될 수 있거나, 또는 스케일링이 생략될 수 있다. 제3 기초는 예를 들어 업데이트 항과 기울기 파라미터에 사용되는 기초의 허용 최대값들에 의해 결정될 수 있다.
업데이트 항은 특정 범위로 제한될 수 있다. 예를 들어, 업데이트 항은 -3 내지 3, -4 내지 4, -N 내지 N, N 내지 M 범위의 정수 값들을 갖도록 규정될 수 있다. 여기서 N과 M은 상수들이거나 다양한 수단으로 결정될 수 있다. 예를 들어, 이들은 블록 크기와 같이, 예측될, 코딩될 또는 디코딩될 블록의 특성들에 기초하여 결정될 수 있다.
일 실시예에서, 비트스트림으로 시그널링되고 디코더에 의해 디코딩될 수 있는 미리 결정된 업데이트 항 세트가 있다.
일 실시예에서, 비트스트림으로 시그널링되고 디코더에 의해 디코딩될 수 있는 업데이트 항 세트는 블록의 크기와 같은 샘플 블록의 특성들에 따라 달라진다.
일 실시예에서, 선형 모드의 오프셋 항 b'는: b' = cr - ((a * yr) >> k)와 같이 계산되고, 여기서 cr은 블록 위의 경계 크로마 값들의 평균이고, yr은 블록 위의 경계 루마 값들의 평균이고, a는 기울기 파라미터이며 k는 시프팅 파라미터이다.
일 실시예에서, 선형 모드의 오프셋 항 b'는: b' = cr - ((a * yr) >> k)와 같이 계산되고, 여기서 cr은 블록의 좌측 경계 크로마 값들의 평균이고, yr은 블록의 좌측 경계 루마 값들의 평균이고, a는 기울기 파라미터이며, k는 시프팅 파라미터이다.
일 실시예에서, 선형 모드의 오프셋 항 b'는: b' = cr - ((a * yr) >> k)와 같이 계산되고, 여기서 cr은 블록의 좌측과 위쪽 경계 크로마 값들의 평균이고, yr은 블록의 좌측과 위쪽 경계 루마 값들의 평균이고, a는 기울기 파라미터이며, k는 시프팅 파라미터이다.
일 실시예에서, 오프셋 파라미터 b'를 결정하기 위한 cr 및 yr 파라미터들을 계산하기 위한 기준 루마 값 및 크로마 값 세트는 기울기 파라미터 a를 계산하기 위한 기준 루마 값 및 크로마 값 세트보다 크게 선택된다.
일 실시예에서, 오프셋 파라미터 b'를 결정하기 위한 cr 및 yr 파라미터들을 계산하기 위한 기준 루마 값 및 크로마 값 세트는 기울기 파라미터 a를 계산하기 위한 기준 루마 값 및 크로마 값 세트의 상위 세트가 되도록 선택된다.
기준 루마 값 또는 기준점을 결정하는 것은 다양한 방식들로 이루어질 수 있다. 예를 들어, 기준 루마 값은 선형 모델의 기울기 파라미터를 결정하는데 사용되는 2개의 루마 값들의 평균일 수 있거나; 그러한 루마 값의 가중된 평균일 수 있거나; 또는 다른 방식들로 결정될 수 있다.
루마 대 크로마 값들로의 매핑을 형성하는 다수의 선형 모델들이 있을 수 있다. 예를 들어, 루마 값이 임계값보다 낮으면 제1 선형 모델이 사용될 수 있고 루마 값이 임계값보다 이상이면 제2 모델이 사용될 수 있다. 이러한 경우, 각 선형 모델들은 비트스트림 시그널링을 기반으로 독립적인 업데이트 항을 수신할 수 있다. 또한, 선형 모델들의 특정 서브세트만 시그널링된 업데이트 항 또는 업데이트 항들을 사용하여 업데이트된다는 것이 시그널링될 수 있다. 또한, 동일한 업데이트 항이 비트스트림 시그널링 또는 다른 수단을 기반으로 여러 모델들에 사용되도록 결정될 수 있다. 그러한 경우, 시그널링된 업데이트 항을 상이한 모델들에 어떻게 적용할지가 추가로 결정될 수 있다. 예를 들어, 동일한 업데이트 항은 2개의 모델들에 사용할 수 있거나, 업데이트 항의 음수 버전이 한 모델에 사용될 수 있고 업데이트 항의 양수 버전을 다른 모델에 사용될 수 있다.
여기서는 매핑 프로세스와 파라미터 업데이트 프로세스가 루마 값들을 입력으로 크로마 값들을 출력으로 하는 것으로 기술되지만, 입력과 출력이 이러한 색 성분들에 제한되는 것은 아니다. 예를 들어, Cb 채널과 같은 하나의 크로마 채널을 입력으로 사용하고 Cr 채널과 같은 다른 크로마 채널을 출력으로 사용하여, 크로마 채널들 사이에 동일한 프로세스가 적용될 수 있다. 다른 예로서, 입력 채널은 루마 채널일 수 있고 출력 채널은 예를 들어 깊이, 거리, 시차, 투명도 또는 다른 유형의 값들로 구성된 보조 정보 채널일 수 있다.
일 실시예에 따르면, 크로마 블록들은 RGB 색 공간의 적색, 녹색 또는 청색 색 성분들 중 어느 하나에 대응할 수도 있다.
일 양태에 따른 장치는, 제1 색 성분으로부터 제2 색 성분으로의 매핑을 규정하는 적어도 2개의 파라미터들을 계산하는 수단으로서, 적어도 2개의 파라미터들은 적어도 기울기 파라미터 및 오프셋 파라미터를 포함하는 상기 계산 수단; 기울기 파라미터에 대한 업데이트 항을 결정하는 수단; 업데이트된 기울기 파라미터를 생성하기 위해 기울기 파라미터의 값에 업데이트 항을 더함으로써 기울기 파라미터에 업데이트 항을 적용하는 수단; 제1 색 성분의 기준값을 결정하는 수단; 및 제1 색 성분의 기준값과 업데이트된 기울기 파라미터에 기초하여 업데이트된 오프셋 파라미터를 계산하는 수단을 포함한다.
추가 양태로서, 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하는 장치가 제공되며, 상기 적어도 하나의 메모리 상에 코드가 저장되고, 상기 적어도 하나의 프로세서에 의해 실행될 때 장치로 하여금 적어도: 제1 색 성분에서 제2 색 성분으로의 매핑을 규정하는 적어도 2개의 파라미터를 계산하고, 적어도 2개의 파라미터들은 적어도 기울기 파라미터 및 오프셋 파라미터를 포함하며; 기울기 파라미터에 대한 업데이트 항을 결정하고; 업데이트된 기울기 파라미터를 생성하기 위해 기울기 파라미터의 값에 업데이트 항을 더함으로써 기울기 파라미터에 업데이트 항을 적용하고; 제1 색성분의 기준값을 결정하고; 제1 색 성분의 기준값과 업데이트된 기울기 파라미터에 기초하여 업데이트된 오프셋 파라미터를 계산하도록 구성된다.
이러한 장치들은, 예를 들어 실시예들을 구현하기 위해 도 1, 도 2, 도 4a 및 도 4b 중 어느 하나에 개시된 기능 단위들을 포함한다.
이러한 장치는 상기 적어도 하나의 프로세서에 의해 실행될 때 장치가 본 명세서에 개시된 실시예들 중 하나 이상을 수행하게 하는, 상기 적어도 하나의 메모리에 저장된 코드를 더 포함한다.
도 10은 다양한 실시예들이 구현될 수 있는 예시적인 멀티미디어 통신 시스템의 그래픽 표현이다. 데이터 소스(1510)는 아날로그, 비압축 디지털, 압축 디지털 포맷, 또는 이들 포맷들의 조합으로 소스 신호를 제공한다. 인코더(1520)는 소스 신호의 데이터 포맷 변환 및/또는 필터링과 같은 전처리를 포함하거나 이와 연결될 수 있다. 인코더(1520)는 소스 신호를 코딩된 미디어 비트스트림으로 인코딩한다. 디코딩될 비트스트림은 사실상 모든 유형의 네트워크 내에 위치한 원격 디바이스로부터 직접적으로 또는 간접적으로 수신될 수 있다는 점에 유의해야 한다. 추가적으로, 비트스트림은 로컬 하드웨어나 소프트웨어로부터 수신될 수도 있다. 인코더(1520)는 오디오 및 비디오와 같은 둘 이상의 미디어 유형을 인코딩할 수 있거나, 소스 신호의 상이한 미디어 유형들을 코딩하는데 둘 이상의 인코더(1520)가 필요할 수 있다. 인코더(1520)는 또한 그래픽 및 텍스트와 같이 합성적으로 생성된 입력을 얻을 수도 있거나, 합성 미디어의 코딩된 비트스트림들을 생성할 수도 있다. 다음에서는 설명을 단순화하기 위해 하나의 미디어 유형의 하나의 코딩된 미디어 비트스트림의 처리만 고려한다. 그러나 통상적으로 실시간 방송 서비스들은 여러 스트림들(통상적으로 적어도 하나의 오디오, 비디오 및 텍스트 자막 스트림)을 포함한다는 점에 유의해야 한다. 또한, 시스템은 많은 인코더들을 포함할 수 있지만, 도면에서는 일반성의 부족 없이 설명을 단순화하기 위해 하나의 인코더(1520)만 표시된다는 점에 유의해야 한다. 본 명세서에 포함된 텍스트 및 예들은 인코딩 프로세스를 구체적으로 기술할 수 있지만, 당업자는 동일한 개념들 및 원리들이 대응하는 디코딩 프로세스에도 적용되고 그 반대의 경우도 가능하다는 것을 또한 이해할 것이다.
코딩된 미디어 비트스트림은 저장소(1530)에 이송될 수 있다. 저장소(1530)는 코딩된 미디어 비트스트림을 저장하기 위한 임의 유형의 대용량 메모리를 포함할 수 있다. 저장소(1530) 내의 코딩된 미디어 비트스트림의 포맷은 기본적인 자체-포함형 비트스트림 포맷일 수 있거나, 하나 이상의 코딩된 미디어 비트스트림들이 컨테이너 파일로 캡슐화될 수 있거나, 코딩된 미디어 비트스트림이 DASH(또는 유사한 스트리밍 시스템)에 적합한 세그먼트 포맷으로 캡슐화될 수 있으며 세그먼트들의 시퀀스로 저장될 수 있다. 하나 이상의 미디어 비트스트림들이 컨테이너 파일에 캡슐화되면, 파일 생성기(도면에 도시되지 않음)를 사용하여 하나 이상의 미디어 비트스트림들을 파일에 저장하고, 파일 포맷 메타데이터를 생성할 수 있으며, 이 파일 포맷 메타데이터는 또한 파일에도 저장될 수 있다. 인코더(1520) 또는 저장소(1530)는 파일 생성기를 포함할 수 있거나, 파일 생성기는 인코더(1520) 또는 저장소(1530)에 동작 가능하게 부착된다. 일부 시스템들은 "라이브(live)"로 동작하며, 즉 저장을 생략하고 코딩된 미디어 비트스트림을 인코더(1520)에서 직접 송신기(1540)로 이송한다. 그 후, 코딩된 미디어 비트스트림은 필요에 따라 서버로도 지칭되는 송신기(1540)로 이송될 수 있다. 전송에 사용되는 포맷은 기본적인 자체-포함형 비트스트림 포맷, 패킷 스트림 포맷, DASH(또는 유사한 스트리밍 시스템)에 적합한 세그먼트 포맷일 수 있거나 하나 이상의 코딩된 미디어 비트스트림들이 컨테이너 파일로 캡슐화될 수 있다. 인코더(1520), 저장소(1530) 및 서버(1540)는 동일한 물리적 디바이스에 상주할 수도 있고, 별도의 디바이스들에 포함될 수도 있다. 인코더(1520) 및 서버(1540)는 라이브 실시간 컨텐트로 동작할 수 있으며, 이 경우 코딩된 미디어 비트스트림은 통상적으로 영구적으로 저장되지 않고 오히려 컨텐트 인코더(1520) 및/또는 서버(1540)에서 짧은 기간 동안 버퍼링되어 처리 지연, 전송 지연 및 코딩된 미디어 비트레이트의 변동들을 완화한다.
서버(1540)는 통신 프로토콜 스택을 사용하여 코딩된 미디어 비트스트림을 전송한다. 스택은 실시간 전송 프로토콜(RTP), 사용자 데이터그램 프로토콜(UDP), 하이퍼텍스트 전송 프로토콜(HTTP), 전송 제어 프로토콜(TCP) 및 인터넷 프로토콜(IP) 중 하나 이상을 포함할 수 있지만 이에 제한되지는 않는다. 통신 프로토콜 스택이 패킷 지향적일 때, 서버(1540)는 코딩된 미디어 비트스트림을 패킷들로 캡슐화한다. 예를 들어, RTP가 사용될 때, 서버(1540)는 코딩된 미디어 비트스트림을 RTP 페이로드 포맷에 따라 RTP 패킷들로 캡슐화한다. 통상적으로, 각 미디어 유형에는 전용 RTP 페이로드 포맷이 있다. 시스템은 둘 이상의 서버(1540)를 포함할 수 있지만 단순화를 위해 다음 설명에서는 하나의 서버(1540)만 고려한다는 점을 다시 한 번 유념해야 한다.
미디어 컨텐트가 저장소(1530)를 위해 또는 데이터를 송신기(1540)에게 입력하기 위해 컨테이너 파일에 캡슐화되는 경우, 송신기(1540)는 "송신 파일 파서(sending file parser)"(도면에 도시되지 않음)를 포함하거나 이에 동작 가능하게 부착될 수 있다. 특히, 컨테이너 파일이 그와 같이 전송되지 않지만 포함된 코딩된 미디어 비트스트림 중 적어도 하나가 통신 프로토콜을 통한 전송을 위해 캡슐화되는 경우, 송신 파일 파서는 통신 프로토콜을 통해 전달될 코딩된 미디어 비트스트림의 적절한 부분들을 찾는다. 송신 파일 파서는 패킷 헤더들 및 페이로드들과 같은 통신 프로토콜에 대한 올바른 포맷을 생성하는데 도움이 될 수도 있다. 멀티미디어 컨테이너 파일에는 통신 프로토콜 상에 포함된 미디어 비트스트림 중 적어도 하나를 캡슐화하기 위한 ISOBMFF의 힌트 트랙들과 같은 캡슐화 명령들이 포함될 수 있다.
서버(1540)는, 예를 들어 CDN, 인터넷 및/또는 하나 이상의 액세스 네트워크들의 조합일 수 있는 통신 네트워크를 통해 게이트웨이(1550)와 연결될 수도 있고 연결되지 않을 수도 있다. 게이트웨이는 또한 또는 대안적으로 미들-박스(middle-box)로 지칭될 수도 있다. DASH의 경우, 게이트웨이는 (CDN의) 에지 서버 또는 웹 프록시일 수 있다. 시스템은 일반적으로 임의의 수의 게이트웨이들 등을 포함할 수 있지만 단순화를 위해 다음 설명에서는 하나의 게이트웨이(1550)만 고려한다는 것을 유념한다. 게이트웨이(1550)는 하나의 통신 프로토콜 스택에 따른 패킷 스트림의 다른 통신 프로토콜 스택으로의 변환, 데이터 스트림의 병합 및 분기, 그리고 일반적인 다운링크 네트워크 조건들에 따라 순방향 스트림의 비트레이트 제어와 같은 다운링크 및/또는 수신기 성능들에 따른 데이터 스트림 조작과 같은 다양한 유형의 기능들을 수행할 수 있다. 게이트웨이(1550)는 다양한 실시예들에서 서버 엔터티일 수 있다.
시스템은 통상적으로 전송된 신호를 코딩된 미디어 비트스트림으로 수신, 복조 및 디캡슐화할 수 있는 하나 이상의 수신기들(1560)을 포함한다. 코딩된 미디어 비트스트림은 기록 저장소(1570)에 이송될 수 있다. 기록 저장소(1570)는 코딩된 미디어 비트스트림을 저장하기 위한 임의 유형의 대용량 메모리를 포함할 수 있다. 기록 저장소(1570)는 대안적으로 또는 추가적으로 랜덤 액세스 메모리와 같은 계산 메모리를 포함할 수 있다. 기록 저장소(1570) 내의 코딩된 미디어 비트스트림의 포맷은 기본적인 자체-포함형 비트스트림 포맷일 수 있거나, 하나 이상의 코딩된 미디어 비트스트림들이 컨테이너 파일로 캡슐화될 수 있다. 서로 연관된 오디오 스트림 및 비디오 스트림과 같은 다수의 코딩된 미디어 비트스트림들이 있는 경우, 컨테이너 파일이 통상적으로 사용되고 수신기(1560)는 입력 스트림들로부터 컨테이너 파일을 생성하는 컨테이너 파일 생성기를 포함하거나 이에 부착된다. 일부 시스템들은 "라이브"로 동작하며, 즉 기록 저장소(1570)를 생략하고 코딩된 미디어 비트스트림을 수신기(1560)에서 디코더(1580)로 직접 이송한다. 일부 시스템들에서는 기록된 스트림의 가장 최근 부분만, 예를 들어 기록된 스트림의 가장 최근 10분 발췌 부분만 기록 저장소(1570)에 유지되지만, 이전에 기록된 임의의 데이터는 기록 저장소(1570)에서 폐기된다.
코딩된 미디어 비트스트림은 기록 저장소(1570)에서 디코더(1580)로 이송될 수 있다. 오디오 스트림과 비디오 스트림과 같은 많은 코딩된 미디어 비트스트림들이 서로 연관되고 컨테이너 파일로 캡술화되거나, 단일 미디어 비트스트림이 컨테이너 파일로 캡슐화되는 경우, 예를 들어, 더 용이한 액세스를 위해, 파일 파서(도면에 도시되지 않음)가 사용되어, 컨테이너 파일로부터 각각의 코딩된 미디어 비트스트림을 캡슐화 해제한다. 기록 저장소(1570) 또는 디코더(1580)는 파일 파서를 포함할 수 있거나, 파일 파서는 기록 저장소(1570) 또는 디코더(1580)에 부착될 수 있다. 또한 시스템은 많은 디코더들을 포함할 수 있지만, 여기서는 일반성의 부족 없이 설명을 단순화하기 위해 하나의 디코더(1570)만 논의된다는 점에 유의해야 한다.
코딩된 미디어 비트스트림은 디코더(1570)에 의해 추가로 처리될 수 있으며, 디코더의 출력은 하나 이상의 압축되지 않은 미디어 스트림들이다. 최종적으로, 렌더러(1590)는 예를 들어 확성기 또는 디스플레이를 사용하여 압축되지 않은 미디어 스트림들을 재생할 수 있다. 수신기(1560), 기록 저장소(1570), 디코더(1570) 및 렌더러(1590)는 동일한 물리적 디바이스에 상주할 수 있거나 별도의 디바이스들에 포함될 수 있다.
송신기(1540) 및/또는 게이트웨이(1550)는, 예를 들어 360도 비디오 컨텐트의 상이한 뷰포트들 사이를 전환, 뷰 전환, 비트레이트 적응 및/또는 고속 시동을 위해, 상이한 표현들 사이의 전환을 수행하도록 구성될 수 있고, 및/또는 송신기(1540) 및/또는 게이트웨이(1550)가 전송된 표현(들)을 선택하도록 구성될 수 있다. 상이한 표현들 사이의 전환은 수신기(1560)의 요청들 또는 비트스트림이 전달되는 네트워크의 처리량과 같은 우세한 조건들에 응답하는 것과 같은 여러 가지 이유들로 발생할 수 있다. 즉, 수신기(1560)는 표현들 사이의 전환을 개시할 수 있다. 수신기로부터의 요청은 예를 들어 이전과 다른 표현의 세그먼트 또는 서브 세그먼트에 대한 요청, 전송된 확장성 계층들 및/또는 서브-계층들의 변경에 대한 요청, 또는 이전 성능에 비해 상이한 성능들을 갖는 렌더링 디바이스의 변경일 수 있다. 세그먼트에 대한 요청은 HTTP GET 요청일 수 있다. 서브 세그먼트에 대한 요청은 바이트 범위의 HTTP GET 요청일 수 있다. 추가적으로 또는 대안적으로, 비트레이트 조정 또는 비트레이트 적응은 예를 들어 스트리밍 서비스들에서 소위 고속 시동을 제공하기 위해 사용될 수 있으며, 여기서 전송된 스트림의 비트레이트는 재생을 즉시 시작하고 패킷 지연들 및/또는 재전송들을 허용하는 버퍼 점유 레벨을 달성하기 위해 스트리밍을 시작하거나 랜덤 액세스한 후에는 채널 비트레이트보다 낮다. 비트레이트 적응은 다양한 순서들로 발생하는 다중 표현 또는 계층 상향-전환과 표현 또는 계층 하향-전환 동작들을 포함할 수 있다.
디코더(1580)는, 예를 들어 360도 비디오 컨텐트의 상이한 뷰포트들 사이를 전환, 뷰 전환, 비트레이트 적응 및/또는 고속 시동을 위해, 상이한 표현들 사이의 전환을 수행하도록 구성될 수 있고, 및/또는 디코더(1580)가 전송된 표현(들)을 선택하도록 구성될 수 있다. 상이한 표현들 사이의 전환은, 더 빠른 디코딩 동작을 달성하기 위해 또는 예를 들어, 비트 레이트의 관점에서, 비트스트림이 전달되는 네트워크의 처리량과 같은 우세한 조건에 전송된 비트스트림을 적응시키는 것과 같은 여러 가지 이유들로 상이한 표현들 사이의 전환이 발생할 수 있다. 예를 들어, 디코더(1580)를 포함하는 디바이스가 멀티-태스킹이고 비디오 비트스트림을 디코딩하는 것 이외의 다른 목적들로 컴퓨팅 리소스들을 사용하는 경우 더 빠른 디코딩 동작이 필요하다. 또 다른 예에서는, 컨텐트가 일반 재생 속도보다 빠른 속도로, 기존 실시간 재생 속도보다 2배 또는 3배 빠른 속도로 재생될 때 더 빠른 디코딩 동작이 필요할 수 있다.
위에서는 일부 실시예들이 HEVC 및/또는 VVC의 용어를 참조 및/또는 사용하여 기술되었다. 실시예들은 임의의 비디오 인코더 및/또는 비디오 디코더를 사용하여 유사하게 실현될 수 있다는 것을 이해해야 한다.
위에서, 예시적인 실시예들이 인코더를 참조하여 기술된 경우, 결과적인 비트스트림 및 디코더는 그들 내에 대응하는 요소들을 가질 수 있다는 것이 이해해야 한다. 마찬가지로, 예시적인 실시예들이 디코더를 참조하여 기술된 경우, 인코더는 디코더에 의해 디코딩될 비트스트림을 생성하기 위한 구조 및/또는 컴퓨터 프로그램을 가질 수 있다는 것을 이해해야 한다. 예를 들어, 인코딩의 일부로서 예측 블록을 생성하는 것과 관련된 일부 실시예들이 기술되었다. 실시예들은 디코딩의 일부로서 예측 블록을 생성함으로써 유사하게 실현될 수 있지만, 수평 오프셋 및 수직 오프셋과 같은 코딩 파라미터들이 인코더에 의해 결정되는 것보다 비트스트림으로부터 디코딩된다는 차이점이 있다.
상술한 본 발명의 실시예들에서는 관련 프로세스들의 이해를 돕기 위해 별도의 인코더 및 디코더 장치의 관점에서 코덱을 기술하였다. 그러나 장치, 구조들 및 동작들은 단일 인코더-디코더 장치/구조/동작으로 구현될 수 있다는 것을 알 것이다. 또한, 코더와 디코더가 일부 또는 모든 공통 요소들을 공유할 수 있다는 것이 가능하다.
위의 예들이 전자 디바이스 내의 코덱 내에서 동작하는 본 발명의 실시예들을 기술하지만, 청구범위에 규정된 본 발명은 임의의 비디오 코덱의 일부로서 구현될 수 있다는 것을 알 것이다. 따라서, 예를 들어, 본 발명의 실시예들은 고정 또는 유선 통신 경로들을 통해 비디오 코딩을 구현할 수 있는 비디오 코덱으로 구현될 수 있다.
따라서, 사용자 장비는 위의 본 발명의 실시예들에 기술된 것과 같은 비디오 코덱을 포함할 수 있다. 사용자 장비라는 용어는 휴대 전화들, 휴대용 데이터 처리 디바이스들 또는 휴대용 웹 브라우저들과 같은 임의의 적합한 유형의 무선 사용자 장비를 포괄하도록 의도된다는 것을 알 것이다.
또한, 공중 육상 모바일 네트워크(PLMN: public land mobile network)의 요소들은 상술한 비디오 코덱들을 포함할 수도 있다.
일반적으로, 본 발명의 다양한 실시예들은 하드웨어 또는 특수 목적 회로들, 소프트웨어, 논리 또는 이들의 임의의 조합으로 구현될 수 있다. 예를 들어, 일부 양태들이 하드웨어로 구현될 수 있는 반면, 다른 양태들은 제어기, 마이크로프로세서 또는 다른 컴퓨팅 디바이스에 의해 실행될 수 있는 펌웨어 또는 소프트웨어로 구현될 수 있지만, 본 발명은 이에 제한되지 않는다. 본 발명의 다양한 양태들이 블록도들, 흐름도들 또는 일부 다른 화상 표현을 사용하여 예시되고 기술될 수 있지만, 본 명세서에 기술된 이러한 블록들, 장치, 시스템들, 기술들 또는 방법들은 비제한적인 예들로서, 하드웨어, 소프트웨어, 펌웨어, 특수 목적 회로들 또는 논리, 범용 하드웨어 또는 제어기 또는 다른 컴퓨팅 디바이스들 또는 이들의 일부 조합으로 구현될 수 있다는 것이 잘 이해된다.
본 발명의 실시예들은 프로세서 엔터티와 같은 모바일 디바이스의 데이터 프로세서에 의해 실행 가능한 컴퓨터 소프트웨어에 의해, 또는 하드웨어에 의해, 또는 소프트웨어와 하드웨어의 조합에 의해 구현될 수 있다. 또한 이와 관련하여, 도면들에서와 같은 논리 흐름의 임의의 블록들은 프로그램 단계들, 상호 연결된 논리 회로들, 블록들 및 기능들, 또는 프로그램 단계들과 논리 회로들, 블록들 및 기능들의 조합을 나타낼 수 있다는 점에 유의해야 한다. 소프트웨어는 메모리 칩과 같은 물리적 매체, 또는 프로세서 내에 구현된 메모리 블록, 하드 디스크 또는 플로피 디스크들과 같은 자기 매체, 및 예를 들어 DVD 및 그 데이터 변형들, CD와 같은 광학 매체 상에 저장될 수 있다.
메모리는 로컬 기술 환경에 적합한 임의의 유형일 수 있으며 반도체-기반 메모리 디바이스들, 자기 메모리 디바이스들 및 시스템들, 광학 메모리 디바이스들 및 시스템들, 고정 메모리 및 이동식 메모리와 같은 임의의 적합한 데이터 저장 기술을 사용하여 구현될 수 있다. 데이터 프로세서들은 로컬 기술 환경에 적합한 임의의 유형일 수 있으며, 비제한적인 예로서, 범용 컴퓨터들, 특수 목적 컴퓨터들, 마이크로프로세서들, 디지털 신호 프로세서들(DSP들) 및 멀티-코어 프로세서 아키텍처 기반 프로세서들 중 하나 이상을 포함할 수 있다.
본 발명들의 실시예들은 집적 회로 모듈들과 같은 다양한 구성요소들에서 실행될 수 있다. 집적 회로들은 대체로 고도로 자동화된 프로세스에 의해 설계된다. 논리 레벨 설계를 반도체 기판 상에 에칭되고 형성될 준비가 된 반도체 회로 설계로 변환하는데 복잡하고 강력한 소프트웨어 도구들을 사용할 수 있다.
캘리포니아주 마운틴뷰에 위치한 Synopsys, Inc.와 캘리포니아주 산호세에 위치한 Cadence Design이 제공하는 프로그램들과 같은 프로그램들은 잘 확립된 설계 규칙들과 미리 저장된 설계 모듈 라이브러리들을 사용하여 도체들을 자동으로 라우팅하고 반도체 칩 상의 구성요소들을 찾아낸다. 반도체 회로에 대한 설계가 완료되면, 표준화된 전자 포맷(예를 들어, Opus, GDSII 등)의 결과 설계가 제조를 위해 반도체 제조 시설 또는 "팹(fab)"으로 전송될 수 있다.
전술한 설명은 예시적이고 비제한적인 예들을 통해 본 개시내용의 예시적인 실시예에 대한 완전하고 유익한 설명을 제공했다. 그러나, 첨부된 도면들과 첨부된 청구범위와 함께 읽으면, 전술한 설명을 고려하여 관련 기술 분야의 당업자에게는 다양한 수정들 및 적용들이 명백해질 수 있다. 그러나, 본 개시내용의 교시들의 이러한 모든 유사한 수정들은 여전히 본 개시내용의 범위 내에 속할 것이다.
Claims (18)
- 장치로서,
제1 색 성분에서 제2 색 성분으로의 매핑 함수에서 파라미터에 대한 기준값을 결정하는 수단;
초기 업데이트 항의 크기를 디코딩하는 수단;
업데이트 항의 부호를 결정하는데 사용되는 구문 요소(syntax element)를 디코딩하는 수단;
기준값에 기초하여 디코딩된 구문 요소를 해석함으로써 상기 업데이트 항의 부호를 결정하는 수단; 및
기준값, 업데이트 항의 디코딩된 크기 및 업데이트 항의 결정된 부호를 사용하여 매핑 함수의 파라미터에 대한 값을 결정하는 수단을 포함하는, 장치. - 제1항에 있어서, 상기 부호를 결정하는 수단은:
기준값을 임계값과 비교하는 수단; 및
기준값이 임계값보다 크고 구문 요소가 제1 표시값을 갖거나 기준값이 임계값 이하이고 구문 요소가 제1 표시값과 상이한 제2 표시값을 갖는 경우 업데이트 항의 부호를 양수로 결정하고, 그렇지 않은 경우 업데이트 항의 부호를 음수로 결정하는 수단을 포함하는, 장치. - 제2항에 있어서, 상기 제1 표시값은 0이고 상기 제2 표시값은 1이거나, 상기 제1 표시값은 1이고 상기 제2 표시값은 0인, 장치.
- 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 임계값은 0인, 장치.
- 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 부호를 결정하는 수단은:
업데이트 항의 부호를 나타내는 디코딩된 이진 구문 요소가 0인 경우 업데이트 항이 기준값을 0쪽으로 미세조정하고(refines), 업데이트 항의 부호를 나타내는 디코딩된 이진 구문 요소가 1인 경우 0에서 멀어지도록 부호를 결정하는 수단을 포함하는, 장치. - 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 부호를 결정하는 수단은:
업데이트 항의 부호를 나타내는 디코딩된 이진 구문 요소가 1인 경우 업데이트 항이 기준값을 0쪽으로 미세조정하고, 업데이트 항의 부호를 나타내는 디코딩된 이진 구문 요소가 0인 경우 0에서 멀어지도록 부호를 결정하는 수단을 포함하는, 장치. - 제1항 내지 제6항 중 어느 한 항에 있어서, 기준 파라미터의 값이 0 이상인 경우 초기 업데이트 항의 부호를 반전시킴으로써 업데이트 항의 값을 결정하는 수단을 포함하는, 장치.
- 제1항 내지 제6항 중 어느 한 항에 있어서, 기준 파라미터의 값이 0 이하인 경우 초기 업데이트 항을 수정하지 않은 상태로 유지함으로써 업데이트 항의 값을 결정하는 수단을 포함하는, 장치.
- 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 제1 색 성분은 루마 성분이고 상기 제2 색 성분은 하나의 크로마 성분인, 장치.
- 방법으로서,
제1 색 성분에서 제2 색 성분으로의 매핑 함수에서 파라미터에 대한 기준값을 결정하는 단계;
초기 업데이트 항의 크기를 디코딩하는 단계;
업데이트 항의 부호를 결정하는데 사용되는 구문 요소를 디코딩하는 단계;
기준값에 기초하여 디코딩된 구문 요소를 해석함으로써 업데이트 항의 부호를 결정하는 단계; 및
기준값, 업데이트 항의 디코딩된 크기 및 업데이트 항의 결정된 부호를 사용하여 매핑 함수의 파라미터에 대한 값을 결정하는 단계를 포함하는, 방법. - 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하는 장치로서,
상기 적어도 하나의 메모리 상에 코드가 저장되고, 상기 코드는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 적어도:
제1 색 성분에서 제2 색 성분으로의 매핑 함수에서 파라미터에 대한 기준값을 결정하는 것;
초기 업데이트 항의 크기를 디코딩하는 것;
업데이트 항의 부호를 결정하는데 사용되는 구문 요소를 디코딩하는 것;
기준값에 기초하여 디코딩된 구문 요소를 해석함으로써 업데이트 항의 부호를 결정하는 것; 및
기준값, 업데이트 항의 디코딩된 크기 및 업데이트 항의 결정된 부호를 사용하여 매핑 함수의 파라미터에 대한 값을 결정하는 것을 수행하게 하는, 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하는 장치. - 장치로서,
제1 색 성분에서 제2 색 성분으로의 매핑 함수에서 파라미터에 대한 기준값을 결정하는 수단;
기준값에 대한 초기 업데이트 항의 값을 결정하는 수단;
기준값이 임계값보다 큰 경우 표시된 값의 부호가 업데이트 항의 결정된 값의 부호와 반대가 되도록 업데이트 항에 대한 표시된 값을 결정하는 수단; 및
업데이트 항의 표시된 값의 부호 및 크기를 비디오 비트스트림으로 인코딩하는 수단을 포함하는, 장치. - 제12항에 있어서, 기준 파라미터의 값이 0 이상인 경우 업데이트 항의 부호를 반전시키는 수단을 포함하는, 장치.
- 제12항 또는 제13항에 있어서, 기준 파라미터의 값이 0 이하인 경우 업데이트 항을 수정하지 않은 상태로 유지함으로써 업데이트 항의 표시된 값을 결정하는 수단을 포함하는, 장치.
- 제12항 내지 제14항 중 어느 한 항에 있어서,
업데이트 항의 값을 결정하기 위해 레이트-왜곡 결정(rate-distortion decision)을 내리는 수단; 및
업데이트 항의 값에 기초하여 표시된 업데이트 항을 결정하는 수단을 포함하는, 장치. - 제12항 내지 제14항 중 어느 한 항에 있어서,
표시된 업데이트 항의 값을 결정하기 위해 레이트-왜곡 결정을 내리는 수단; 및
표시된 업데이트 항의 값에 기초하여 업데이트 항을 결정하는 수단을 포함하는, 장치. - 방법으로서,
제1 색 성분에서 제2 색 성분으로의 매핑 함수에서 파라미터에 대한 기준값을 결정하는 단계;
기준값에 대한 초기 업데이트 항의 값을 결정하는 단계;
기준값이 임계값보다 큰 경우 표시된 값의 부호가 업데이트 항의 결정된 값의 부호와 반대가 되도록 업데이트 항에 대한 표시된 값을 결정하는 단계; 및
업데이트 항의 표시된 값의 부호 및 크기를 비디오 비트스트림으로 인코딩하는 단계를 포함하는, 방법. - 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하는 장치로서,
상기 적어도 하나의 메모리 상에 코드가 저장되고, 상기 코드는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 적어도:
제1 색 성분에서 제2 색 성분으로의 매핑 함수에서 파라미터에 대한 기준값을 결정하는 것;
기준값에 대한 초기 업데이트 항의 값을 결정하는 것;
기준값이 임계값보다 큰 경우 표시된 값의 부호가 업데이트 항의 결정된 값의 부호와 반대가 되도록 업데이트 항에 대한 표시된 값을 결정하는 것; 및
업데이트 항의 표시된 값의 상기 부호 및 크기를 비디오 비트스트림으로 인코딩하는 것을 수행하게 하는, 장치.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263299186P | 2022-01-13 | 2022-01-13 | |
US63/299,186 | 2022-01-13 | ||
PCT/EP2022/081973 WO2023134903A1 (en) | 2022-01-13 | 2022-11-15 | An apparatus, a method and a computer program for cross-component parameter determination |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240135810A true KR20240135810A (ko) | 2024-09-12 |
Family
ID=84387785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020247026982A KR20240135810A (ko) | 2022-01-13 | 2022-11-15 | 교차-성분 파라미터 결정을 위한 장치, 방법 및 컴퓨터 프로그램 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20240135810A (ko) |
WO (1) | WO2023134903A1 (ko) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11202100B2 (en) * | 2019-03-11 | 2021-12-14 | Qualcomm Incorporated | Coefficient coding for transform skip mode |
-
2022
- 2022-11-15 KR KR1020247026982A patent/KR20240135810A/ko active Search and Examination
- 2022-11-15 WO PCT/EP2022/081973 patent/WO2023134903A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2023134903A1 (en) | 2023-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6768145B2 (ja) | ビデオの符号化および復号 | |
KR102567284B1 (ko) | 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램 | |
US9800893B2 (en) | Apparatus, a method and a computer program for video coding and decoding | |
KR102474636B1 (ko) | 크로스-채널 잔차 인코딩 및 디코딩을 위한 양자화 파라미터 도출 | |
CN111327893B (zh) | 用于视频编码和解码的装置、方法和计算机程序 | |
KR20170101983A (ko) | 스케일러블 비디오 코딩 및 디코딩을 위한 계층 간 예측 | |
JP2018524897A (ja) | ビデオの符号化・復号装置、方法、およびコンピュータプログラム | |
EP3120552A1 (en) | Method and apparatus for video coding and decoding | |
JP7390477B2 (ja) | ビデオコーディングおよびデコーディングのための装置、方法、およびコンピュータプログラム | |
US20240314336A1 (en) | An apparatus, a method and a computer program for cross-component parameter calculation | |
EP4434227A1 (en) | An apparatus, a method and a computer program for video coding and decoding | |
EP4434230A2 (en) | An apparatus, a method and a computer program for video coding and decoding | |
KR20240135810A (ko) | 교차-성분 파라미터 결정을 위한 장치, 방법 및 컴퓨터 프로그램 | |
US20240292005A1 (en) | An apparatus, a method and a computer program for video coding and decoding | |
CN118872271A (zh) | 用于确定跨分量参数的装置、方法和计算机程序 | |
US20220078481A1 (en) | An apparatus, a method and a computer program for video coding and decoding | |
WO2024141695A1 (en) | An apparatus, a method and a computer program for video coding and decoding | |
WO2023187250A1 (en) | An apparatus, a method and a computer program for video coding and decoding | |
WO2024003441A1 (en) | An apparatus, a method and a computer program for video coding and decoding | |
WO2024079381A1 (en) | An apparatus, a method and a computer program for video coding and decoding | |
WO2024074754A1 (en) | An apparatus, a method and a computer program for video coding and decoding | |
WO2023247822A1 (en) | An apparatus, a method and a computer program for video coding and decoding | |
WO2024012761A1 (en) | An apparatus, a method and a computer program for video coding and decoding | |
WO2024008993A1 (en) | An apparatus, a method and a computer program for video coding and decoding | |
WO2019211522A2 (en) | An apparatus, a method and a computer program for video coding and decoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |