KR20220071275A - 다중 계층 비디오 스트림에서의 중복 시그널링 방지 - Google Patents
다중 계층 비디오 스트림에서의 중복 시그널링 방지 Download PDFInfo
- Publication number
- KR20220071275A KR20220071275A KR1020227015129A KR20227015129A KR20220071275A KR 20220071275 A KR20220071275 A KR 20220071275A KR 1020227015129 A KR1020227015129 A KR 1020227015129A KR 20227015129 A KR20227015129 A KR 20227015129A KR 20220071275 A KR20220071275 A KR 20220071275A
- Authority
- KR
- South Korea
- Prior art keywords
- layer
- ols
- vps
- picture
- bitstream
- Prior art date
Links
- 230000011664 signaling Effects 0.000 title description 5
- 238000000034 method Methods 0.000 claims abstract description 156
- 239000010410 layer Substances 0.000 claims description 357
- 239000002356 single layer Substances 0.000 claims description 43
- 238000004891 communication Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 9
- 230000033001 locomotion Effects 0.000 description 90
- 230000008569 process Effects 0.000 description 67
- 239000000872 buffer Substances 0.000 description 41
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 30
- 239000011229 interlayer Substances 0.000 description 29
- 238000013139 quantization Methods 0.000 description 25
- 238000012360 testing method Methods 0.000 description 24
- 230000002123 temporal effect Effects 0.000 description 23
- 239000013598 vector Substances 0.000 description 22
- 241000023320 Luma <angiosperm> Species 0.000 description 17
- 238000007906 compression Methods 0.000 description 17
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 17
- 238000013488 ordinary least square regression Methods 0.000 description 17
- 230000006835 compression Effects 0.000 description 16
- 239000000523 sample Substances 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 238000000638 solvent extraction Methods 0.000 description 13
- 238000000605 extraction Methods 0.000 description 12
- 230000003139 buffering effect Effects 0.000 description 11
- 230000006872 improvement Effects 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 11
- 238000004458 analytical method Methods 0.000 description 10
- 238000005192 partition Methods 0.000 description 8
- 239000012536 storage buffer Substances 0.000 description 8
- 230000003044 adaptive effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012952 Resampling Methods 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- FMYKJLXRRQTBOR-UBFHEZILSA-N (2s)-2-acetamido-4-methyl-n-[4-methyl-1-oxo-1-[[(2s)-1-oxohexan-2-yl]amino]pentan-2-yl]pentanamide Chemical group CCCC[C@@H](C=O)NC(=O)C(CC(C)C)NC(=O)[C@H](CC(C)C)NC(C)=O FMYKJLXRRQTBOR-UBFHEZILSA-N 0.000 description 3
- 241001482237 Pica Species 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 101150103552 cagE gene Proteins 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000001629 suppression Effects 0.000 description 3
- 108091000069 Cystinyl Aminopeptidase Proteins 0.000 description 2
- 102100020872 Leucyl-cystinyl aminopeptidase Human genes 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 208000034188 Stiff person spectrum disease Diseases 0.000 description 1
- 229920010524 Syndiotactic polystyrene Polymers 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 208000012112 ischiocoxopodopatellar syndrome Diseases 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 239000013074 reference sample Substances 0.000 description 1
- 238000002490 spark plasma sintering Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 235000019587 texture Nutrition 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012795 verification 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/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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/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/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/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/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/188—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 video data packet, e.g. a network abstraction layer [NAL] unit
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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/46—Embedding additional information in the video signal during the compression process
-
- 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/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive 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
-
- 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/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- 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/172—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 picture, frame or field
-
- 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/174—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 slice, e.g. a line of blocks or a group of 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/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/187—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 scalable video layer
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
디코딩 방법이 제공된다. 상기 방법은 단 하나의 계층을 갖는 출력 계층 세트(OLS)에 대한 프로필 티어 레벨(PTL) 신택스 구조를 갖는 시퀀스 파라미터 세트(SPS)를 갖는 서브 비트스트림을 수신하는 단계; 단 하나의 계층을 갖는 OLS에 기반하여 OLS의 계층의 수를 1과 같게 설정하는 단계; OLS의 계층 수가 1과 같게 설정되었을 때 SPS로부터 하나의 계층을 갖는 OLS에 대한 PTL 신택스 구조를 획득하는 단계; 및 PTL 신택스 구조를 사용하여 단 하나의 계층으로부터로부터의 픽처를 디코딩하여 디코딩된 픽처를 획득하는 단계를 포함한다. 대응하는 인코딩 방법도 제공된다.
Description
본 특허 출원은 왕 예-쿠이에 의해 2019년 10월 7일에 출원되고 발명의 명칭이 "비디오 코딩에서의 확장성"인 미국 가출원 번호 제62/911,808호에 대한 우선권을 주장하는 바이며, 이는 그 전체로서 원용에 의해 본 명세서에 포함된다.
일반적으로, 본 개시는 비디오 코딩에서 다중 계층 비디오 비트스트림(multi-layer bitstream)에 대한 기술을 설명한다. 보다 구체적으로, 본 개시는 비디오 코딩에서 다중 계층 비스트림의 계층에 대응하는 파라미터를 시그널링할 때 중복을 제거하는 기술을 설명한다.
상대적으로 짧은 비디오라도 묘사하는 데 필요한 비디오 데이터의 양은 상당할 수 있으며, 이는 데이터가 스트리밍되거나 제한된 대역폭 용량을 가진 통신 네트워크를 통해 통신될 때 어려움을 초래할 수 있다. 따라서, 비디오 데이터는 일반적으로 현대의 통신 네트워크를 통해 통신되기 전에 압축된다. 메모리 리소스가 제한될 수 있기 때문에 비디오가 저장 디바이스에 저장될 때 비디오의 크기도 문제가 될 수 있다. 비디오 압축 디바이스는 전송 또는 저장 전에 비디오 데이터를 코딩하기 위해 소스에서 소프트웨어 및/또는 하드웨어를 사용하여, 디지털 비디오 이미지를 나타내는 데 필요한 데이터의 양을 줄이는 경우가 많다. 압축된 데이터는 비디오 데이터를 디코딩하는 비디오 압축 해제 디바이스에 의해 목적지에서 수신된다. 제한된 네트워크 리소스와 더 높은 비디오 품질에 대한 요구가 계속 증가함에 따라 화질을 거의 또는 전혀 희생하지 않으면서 압축 비율을 향상시키는(improve) 향상된 압축 및 압축 해제 기술이 바람직하다.
제1 측면은 비디오 디코더에 의해 구현되는 방법에 관한 것으로, 상기 방법은, 상기 비디오 디코더가, 단 하나의 계층(only one layer)을 갖는 출력 계층 세트(output layer set, OLS)에 대한 프로필 티어 레벨(profile tier level, PTL) 신택스 구조를 갖는 시퀀스 파라미터 세트(sequence parameter set, SPS)를 갖는 서브 비트스트림(sub-bitstream)을 수신하는 단계; 상기 비디오 디코더가, 상기 단 하나의 계층을 갖는 OLS에 기반하여 상기 OLS에서의 계층의 수를 1과 같게 설정하는 단계; 상기 비디오 디코더가, 상기 OLS의 계층 수가 1과 같게 설정되었을 때, 상기 SPS로부터 상기 하나의 계층을 갖는 OLS에 대한 상기 PTL 신택스 구조를 획득하는 단계; 및 상기 비디오 디코더가, 상기 PTL 신택스 구조를 사용하여 상기 단 하나의 계층으로부터의 픽처를 디코딩하여 디코딩된 픽처를 획득하는 단계를 포함한다.
상기 방법은 출력 계층 세트(OLS)가 단일(single) 계층만 포함할 때, 프로필, 티어 및 레벨(PTL) 파라미터가 시퀀스 파라미터 세트(SPS)에 포함되도록 하는 기술을 제공한다. SPS가 단일 계층을 가지는 OLS에 대한 PTL 파라미터를 포함하기 때문에, 비디오 파라미터 세트(VPS)는 비트스트림으로부터 제거될 수 있으며, 이는 중복성을 감소시키고 코딩 효율성을 증가시킨다. 따라서, 비디오 코딩의 코더/디코더(일명 "코덱")는 현재 코덱에 비해 향상된다. 실질적으로, 개선된 비디오 코딩 프로세스는 비디오가 송신, 수신 및/또는 시청될 때 사용자에게 더 나은 사용자 경험을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 상기 PTL 신택스 구조가 profile_tier_level( )로 지정되는(designated) 것을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 상기 단 하나의 계층이 i번째 계층이고, 상기 OLS는 i번째 OLS인 것을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 상기 PTL 신택스 구조가 상기 SPS에서 i번째 profile_tier_level( ) 신택스 구조에 존재하는 것을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 상기 서브 비트스트림이 비디오 파라미터 세트(video parameter set, VPS)를 포함하지 않는 것을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 상기 OLS에서의 계층의 수가 NumLayersInOls[i]로 지정된 변수인 것을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 상기 SPS가 상기 OLS에서 상기 단 하나의 계층에 의해 참조되는 것을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 상기 디코딩된 픽처를 전자 디바이스의 디스플레이 상에 디스플레이하는 단계를 제공한다.
제2 측면은 비디오 인코더에 의해 구현되는 방법에 관한 것으로, 상기 방법은, 상기 비디오 인코더가, 비디오 파라미터 세트(video parameter set, VPS) 및 시퀀스 파라미터 세트(sequence parameter set, SPS)를 생성하는 단계 - 상기 VPS는 모든 출력 계층 세트(output layer set, OLS)에 대한 프로필 티어 레벨(profile tier level, PTL) 신택스 구조의 리스트를 포함하고, 상기 SPS는 단 하나의 계층을 갖는 각 OLS에 대한 PTL 신택스 구조를 포함함 -; 상기 비디오 인코더가, 상기 VPS 및 상기 SPS를 비디오 비트스트림으로 인코딩하는 단계; 및 상기 비디오 인코더가, 비디오 디코더를 향한 통신을 위해 상기 비디오 비트스트림을 저장하는 단계를 포함한다.
상기 방법은 출력 계층 세트(OLS)가 단일 계층만 포함할 때, 프로필, 티어 및 레벨(PTL) 파라미터가 시퀀스 파라미터 세트(SPS)에 포함되도록 하는 기술을 제공한다. SPS가 단일 계층을 가지는 OLS에 대한 PTL 파라미터를 포함하기 때문에, 비디오 파라미터 세트(VPS)는 비트스트림으로부터 제거될 수 있으며, 이는 중복성을 감소시키고 코딩 효율성을 증가시킨다. 따라서, 비디오 코딩의 코더/디코더(일명 "코덱")는 현재 코덱에 비해 향상된다. 실질적으로, 개선된 비디오 코딩 프로세스는 비디오가 송신, 수신 및/또는 시청될 때 사용자에게 더 나은 사용자 경험을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 상기 VPS가 상기 PTL 신택스 구조의 리스트에 대한 인덱스를 포함하고, 상기 인덱스는 vps_ols_ptl_idx[i]로 지정되는 것을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 vps_ols_ptl_idx[i]의 값이 0 내지 상기 VPS에서의 상기 PTL 신택스 구조의 총 수의 범위에 있는 것을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 상기 VPS가 vps_num_ptls_minus1을 포함하고, vps_num_ptls_minus1에 1을 더한 것은 상기 VPS에서의 상기 PTL 신택스 구조의 총 수를 명시하는(specify) 것을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 상기 비트스트림으로부터 서브 비트스트림을 추출하는 단계 - 상기 서브 비트스트림은 상기 비트스트림으로부터의 상기 SPS를 포함하지만 상기 비트스트림으로부터의 상기 VPS는 포함하지 않음 - 를 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 상기 서브 비트스트림을 비디오 디코더를 향해 전송하는 단계를 제공한다.
제3 측면은 디코딩 디바이스에 관한 것으로, 상기 디코딩 디바이스는, 단 하나의 계층을 갖는 출력 계층 세트(output layer set, OLS)에 대한 프로필 티어 레벨(profile tier level, PTL) 신택스 구조를 갖는 시퀀스 파라미터 세트(sequence parameter set, SPS)를 갖는 서브 비트스트림을 수신하도록 구성된 수신기; 및 메모리에 결합된 프로세서를 포함하고, 상기 프로세서는 명령을 실행하여 상기 디코딩 디바이스가, 상기 단 하나의 계층을 갖는 OLS에 기반하여 상기 OLS에서의 계층의 수를 1과 같게 설정하고; 상기 OLS의 계층 수가 1과 같게 설정되었을 때, 상기 SPS로부터 상기 하나의 계층을 갖는 OLS에 대한 상기 PTL 신택스 구조를 획득하며; 그리고 상기 PTL 신택스 구조를 사용하여 상기 단 하나의 계층으로부터의 픽처를 디코딩하여 디코딩된 픽처를 획득하게 하도록 구성된다.
상기 디코딩 디바이스는 출력 계층 세트(OLS)가 단일 계층만 포함할 때, 프로필, 티어 및 레벨(PTL) 파라미터가 시퀀스 파라미터 세트(SPS)에 포함되도록 하는 기술을 제공한다. SPS가 단일 계층을 가지는 OLS에 대한 PTL 파라미터를 포함하기 때문에, 비디오 파라미터 세트(VPS)는 비트스트림으로부터 제거될 수 있으며, 이는 중복성을 감소시키고 코딩 효율성을 증가시킨다. 따라서 비디오 코딩의 코더/디코더(일명 "코덱")는 현재 코덱에 비해 향상된다. 실질적으로, 개선된 비디오 코딩 프로세스는 비디오가 송신, 수신 및/또는 시청될 때 사용자에게 더 나은 사용자 경험을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은, 상기 PTL 신택스 구조가 profile_tier_level( )로 지정되고, 상기 단 하나의 계층은 i번째 계층이고, 상기 OLS는 i번째 OLS인 것을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 상기 PTL 신택스 구조가 상기 SPS에서 i번째 profile_tier_level( ) 신택스 구조에 존재하는 것을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 상기 서브 비트스트림이 비디오 파라미터 세트(video parameter set, VPS)를 포함하지 않는 것을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 상기 OLS에서의 계층의 수가 NumLayersInOls[i]로 지정된 변수이고, 상기 SPS는 상기 OLS에서 상기 단 하나의 계층에 의해 참조되는 것을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 상기 디코딩된 픽처를 디스플레이하도록 구성된 디스플레이를 제공한다.
제4 측면은 인코딩 디바이스에 관한 것으로, 상기 인코딩 디바이스는 명령을 포함하는 메모리; 상기 메모리에 결합된 프로세서 - 상기 프로세서는 상기 명령을 실행하여 상기 인코딩 디바이스가, 비디오 파라미터 세트(video parameter set, VPS) 및 시퀀스 파라미터 세트(sequence parameter set, SPS)를 생성하고 - 상기 VPS는 모든 출력 계층 세트(output layer set, OLS)에 대한 프로필 티어 레벨(profile tier level, PTL) 신택스 구조의 리스트를 포함하고, 상기 SPS는 단 하나의 계층을 갖는 각 OLS에 대한 PTL 신택스 구조를 포함함 -; 그리고 상기 VPS 및 상기 SPS를 비디오 비트스트림으로 인코딩하게 하도록 구성됨 -; 및 상기 프로세서에 결합되고, 상기 비디오 비트스트림을 비디오 디코더를 향해 전송하도록 구성된 송신기를 포함한다.
상기 인코딩 디바이스는 출력 계층 세트(OLS)가 단일 계층만 포함할 때, 프로필, 티어 및 레벨(PTL) 파라미터가 시퀀스 파라미터 세트(SPS)에 포함되도록 하는 기술을 제공한다. SPS가 단일 계층을 가지는 OLS에 대한 PTL 파라미터를 포함하기 때문에, 비디오 파라미터 세트(VPS)는 비트스트림으로부터 제거될 수 있으며, 이는 중복성을 감소시키고 코딩 효율성을 증가시킨다. 따라서, 비디오 코딩의 코더/디코더(일명 "코덱")는 현재 코덱에 비해 향상된다. 실질적으로, 개선된 비디오 코딩 프로세스는 비디오가 송신, 수신 및/또는 시청될 때 사용자에게 더 나은 사용자 경험을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 상기 VPS가 상기 PTL 신택스 구조의 리스트에 대한 인덱스를 포함하고, 상기 인덱스는 vps_ols_ptl_idx[i]로 지정되는 것을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 vps_ols_ptl_idx[i]의 값이 0 내지 상기 VPS에서의 상기 PTL 신택스 구조의 총 수의 범위에 있는 것을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 상기 VPS가 vps_num_ptls_minus1을 포함하고, vps_num_ptls_minus1에 1을 더한 것은 상기 VPS에서의 상기 PTL 신택스 구조의 총 수를 명시하는 것을 제공한다.
제5 측면은 코딩 장치에 관한 것으로, 상기 코딩 장치는, 인코딩할 픽처를 수신하거나 디코딩할 비트스트림을 수신하도록 구성된 수신기; 상기 수신기에 결합된 송신기 - 상기 송신기는 상기 비트스트림을 디코더로 전송하거나 디코딩된 이미지를 디스플레이로 전송하도록 구성됨 -; 상기 수신기 또는 상기 송신기 중 적어도 하나에 결합된 메모리 - 상기 메모리는 명령을 저장하도록 구성됨 -; 및 상기 메모리에 결합된 프로세서를 포함하고, 상기 프로세서는 상기 메모리에 저장된 명령을 실행하여, 여기에 개시된 방법 중 어느 하나를 수행하도록 구성된다.
상기 코딩 장치는 출력 계층 세트(OLS)가 단일 계층만 포함할 때, 프로필, 티어 및 레벨(PTL) 파라미터가 시퀀스 파라미터 세트(SPS)에 포함되도록 하는 기술을 제공한다. SPS가 단일 계층을 가지는 OLS에 대한 PTL 파라미터를 포함하기 때문에, 비디오 파라미터 세트(VPS)는 비트스트림으로부터 제거될 수 있으며, 이는 중복성을 감소시키고 코딩 효율성을 증가시킨다. 따라서, 비디오 코딩의 코더/디코더(일명 "코덱")는 현재 코덱에 비해 향상된다. 실질적으로, 개선된 비디오 코딩 프로세스는 비디오가 송신, 수신 및/또는 시청될 때 사용자에게 더 나은 사용자 경험을 제공한다.
선택적으로, 선행 측면들 중 임의의 것에서, 상기 측면의 다른 구현은 디코딩된 픽처를 디스플레이하도록 구성된 디스플레이를 제공한다.
제6 측면은 시스템에 관한 것이다. 상기 시스템은 인코더 및 상기 인코더와 통신하는 디코더를 포함하고, 상기 인코더 또는 상기 디코더는 여기에 개시된 디코딩 디바이스, 인코딩 디바이스, 또는 코딩 장치를 포함한다.
상기 시스템은 출력 계층 세트(OLS)가 단일 계층만 포함할 때, 프로필, 티어 및 레벨(PTL) 파라미터가 시퀀스 파라미터 세트(SPS)에 포함되도록 하는 기술을 제공한다. SPS가 단일 계층을 가지는 OLS에 대한 PTL 파라미터를 포함하기 때문에, 비디오 파라미터 세트(VPS)는 비트스트림으로부터 제거될 수 있으며, 이는 중복성을 감소시키고 코딩 효율성을 증가시킨다. 따라서, 비디오 코딩의 코더/디코더(일명 "코덱")는 현재 코덱에 비해 향상된다. 실질적으로, 개선된 비디오 코딩 프로세스는 비디오가 송신, 수신 및/또는 시청될 때 사용자에게 더 나은 사용자 경험을 제공한다.
제7 측면은 코딩을 위한 수단에 관한 것이다. 상기 코딩을 위한 수단은, 인코딩할 픽처를 수신하거나 디코딩할 비트스트림을 수신하도록 구성된 수신 수단; 상기 수신 수단에 결합된 송신 수단 - 상기 송신 수단은 상기 비트스트림을 디코더로 전송하거나 디코딩된 이미지를 디스플레이로 전송하도록 구성됨 -; 상기 수신 수단 또는 상기 송신 수단 중 적어도 하나에 결합된 저장 수단 - 상기 저장 수단은 명령을 저장하도록 구성됨 -; 및 상기 저장 수단에 결합된 처리 수단을 포함하고, 상기 처리 수단은 상기 저장 수단에 저장된 명령을 실행하여, 여기에 개시된 방법 중 어느 하나를 수행하도록 구성된다.
상기 코딩을 위한 수단은 출력 계층 세트(OLS)가 단일 계층만 포함할 때, 프로필, 티어 및 레벨(PTL) 파라미터가 시퀀스 파라미터 세트(SPS)에 포함되도록 하는 기술을 제공한다. SPS가 단일 계층을 가지는 OLS에 대한 PTL 파라미터를 포함하기 때문에, 비디오 파라미터 세트(VPS)는 비트스트림으로부터 제거될 수 있으며, 이는 중복성을 감소시키고 코딩 효율성을 증가시킨다. 따라서, 비디오 코딩의 코더/디코더(일명 "코덱")는 현재 코덱에 비해 향상된다. 실질적으로 개선된 비디오 코딩 프로세스는 비디오가 송신, 수신 및/또는 시청될 때 사용자에게 더 나은 사용자 경험을 제공한다.
명료함을 위해, 전술한 실시예 중 임의의 하나는 본 개시의 범위 내에서 새로운 실시예를 생성하기 위해 임의의 하나 이상의 다른 전술한 실시예와 조합될 수 있다.
이들 및 다른 특징은 첨부된 도면 및 청구범위와 관련하여 취해진 다음의 상세한 설명으로부터 더 명확하게 이해될 것이다.
본 개시의 보다 완전한 이해를 위해, 유사한 참조 번호가 유사한 부분을 나타내는 첨부 도면 및 상세한 설명과 관련하여 취해진 다음의 간략한 설명을 이제 참조한다.
도 1은 비디오 신호를 코딩하는 예시적인 방법의 흐름도이다.
도 2는 비디오 코딩을 위한 예시적인 코딩 및 디코딩(코덱) 시스템의 개략도이다.
도 3은 예시적인 비디오 인코더를 예시하는 개략도이다.
도 4는 예시적인 비디오 디코더를 예시하는 개략도이다.
도 5는 공간적 확장성을 위한 다중 계층 코딩의 예를 예시한다.
도 6은 출력 계층 세트(OLS)를 사용한 다중 계층 코딩의 예를 예시한다.
도 7은 비디오 비트스트림의 실시예를 예시한다.
도 8은 코딩된 비디오 비트스트림을 디코딩하는 방법의 실시예이다.
도 9는 코딩된 비디오 비트스트림을 인코딩하는 방법의 실시예이다.
도 10은 비디오 코딩 디바이스의 개략도이다.
도 11은 코딩을 위한 수단의 실시예의 개략도이다.
도 1은 비디오 신호를 코딩하는 예시적인 방법의 흐름도이다.
도 2는 비디오 코딩을 위한 예시적인 코딩 및 디코딩(코덱) 시스템의 개략도이다.
도 3은 예시적인 비디오 인코더를 예시하는 개략도이다.
도 4는 예시적인 비디오 디코더를 예시하는 개략도이다.
도 5는 공간적 확장성을 위한 다중 계층 코딩의 예를 예시한다.
도 6은 출력 계층 세트(OLS)를 사용한 다중 계층 코딩의 예를 예시한다.
도 7은 비디오 비트스트림의 실시예를 예시한다.
도 8은 코딩된 비디오 비트스트림을 디코딩하는 방법의 실시예이다.
도 9는 코딩된 비디오 비트스트림을 인코딩하는 방법의 실시예이다.
도 10은 비디오 코딩 디바이스의 개략도이다.
도 11은 코딩을 위한 수단의 실시예의 개략도이다.
하나 이상의 실시예의 예시적인 구현이 아래에 제공되지만, 개시된 시스템 및/또는 방법은 현재 알려져 있거나 존재하는 임의의 수의 기술을 사용하여 구현될 수 있다는 것이 처음부터 이해되어야 한다. 본 개시는 여기에서 예시되고 설명된 예시적인 설계 및 구현을 포함하여 아래에 예시된 예시적인 구현, 도면 및 기술에 결코 제한되어서는 안 되며, 등가물의 전체 범위와 함께 첨부된 청구범위의 범위 내에서 수정될 수 있다.
용어는 여기에서 반대되는 맥락에서 사용되지 않는 한 다음과 같이 정의된다. 구체적으로, 다음 정의는 본 개시에 추가적인 명확성을 제공하기 위한 것이다. 그러나, 용어는 상황에 따라 다르게 설명될 수 있다. 따라서, 다음 정의는 보충으로 간주되어야 하며 여기에서 이러한 용어에 대해 제공된 설명의 다른 정의를 제한하는 것으로 간주되어서는 안 된다.
비트스트림은 인코더와 디코더 사이의 전송을 위해 압축된 비디오 데이터를 포함하는 비트의 시퀀스이다. 인코더는 비디오 데이터를 비트스트림으로 압축하기 위해 인코딩 프로세스를 이용하도록(employ) 구성된 디바이스이다. 디코더는 디스플레이를 위해 비트스트림으로부터 비디오 데이터를 재구성하기 위해 디코딩 프로세스를 이용하도록 구성된 디바이스이다. 픽처(picture)는 프레임 또는 그 필드를 생성하는 루마(luma) 샘플의 어레이 및/또는 크로마(chroma) 샘플의 어레이이다. 인코딩 또는 디코딩되는 픽처는 논의의 명확성을 위해 현재 픽처로 지칭될 수 있다. 참조 픽처(reference picture)는 인터 예측 및/또는 인터 계층 예측(inter-layer prediction)에 따라 다른 픽처를 코딩할 때 참조로 사용할 수 있는 참조 샘플을 포함하는 픽처이다. 참조 픽처 리스트는 인터 예측 및/또는 인터 계층 예측에 사용되는 참조 픽처의 리스트이다. 일부 비디오 코딩 시스템은 참조 픽처 리스트 1 및 참조 픽처 리스트 0으로 표시될 수 있는 2개의 참조 픽처 리스트를 활용한다(utilize). 참조 픽처 리스트 구조는 다수의(multiple) 참조 픽처 리스트를 포함하는 주소 지정 가능한 신택스 구조이다.
인터 예측은 현재 픽처와 상이한 참조 픽처의 지시된(indicated) 샘플을 참조하여 현재 픽처의 샘플을 코딩하는 메커니즘이며, 참조 픽처와 현재 픽처가 동일한 계층에 있다. 참조 픽처 리스트 구조 엔트리는 참조 픽처 리스트와 연관된 참조 픽처를 지시하는 참조 픽처 리스트 구조의 주소 지정 가능한 위치이다.
슬라이스 헤더(slice header)는 슬라이스에 표현된 타일(tile) 내의 모든 비디오 데이터와 관련된 데이터 엘리먼트를 포함하는 코딩된 슬라이스의 일부이다. 픽처 파라미터 세트(picture parameter set, PPS)는 전체 픽처와 관련된 데이터를 포함하는 파라미터 세트이다. 보다 구체적으로, PPS는 각 픽처 헤더에서 발견되는 신택스 엘리먼트(syntax element)에 의해 결정되는 바와 같은 0개 이상의 전체 코딩된 픽처에 적용되는 신택스 엘리먼트를 포함하는 신택스 구조(syntax structure)이다. 시퀀스 파라미터 세트(sequence parameter set, SPS)는 픽처의 시퀀스(sequence)와 관련된 데이터를 포함하는 파라미터 세트이다. 액세스 유닛(access unit, AU)은 (예: 사용자에게 디스플레이하기 위해) 디코딩된 픽처 버퍼(decoded picture buffer, DPB)로부터의 출력을 위한 동일한 디스플레이 시간(예: 동일한 픽처 순서 카운트)과 연관된 하나 이상의 코딩된 픽처의 세트이다. 액세스 유닛 구획문자(access unit delimiter, AUD)는 AU의 시작 또는 AU 간의 경계를 지시하는(indicate) 데 사용되는 지시자(indicator) 또는 데이터 구조이다. 디코딩된 비디오 시퀀스는 사용자에게 디스플레이하기 위한 준비로 디코더에 의해 재구성된 픽처 시퀀스이다.
네트워크 추상화 계층(network abstraction layer, NAL) 유닛은 RBSP(Raw Byte Sequence Payload) 형태의 데이터를 포함하는 신택스 구조로, 데이터 유형을 지시하며, 에뮬레이션 방지 바이트(emulation prevention byte)로 원하는 대로 산재되어(interspersed) 있다. 비디오 코딩 계층(video coding layer, VCL) NAL 유닛은 픽처의 코딩된 슬라이스와 같은 비디오 데이터를 포함하도록 코딩된 NAL 유닛이다. 비(non)-VCL NAL 유닛은 비디오 데이터를 디코딩하는 것, 적합성 검사의 수행, 또는 기타 작동을 지원하는 신택스 및/또는 파라미터와 같은 비-비디오(non-video) 데이터를 포함하는 NAL 유닛이다. 계층(layer)은 명시된 특성(예: 공통 해상도, 프레임 레이트, 이미지 크기 등) 및 연관된 비-VCL NAL 유닛을 공유하는 VCL NAL 유닛 세트이다. 계층의 VCL NAL 유닛은 NAL 유닛 헤더 계층 식별자(nuh_layer_id)의 특정 값을 공유할 수 있다. 코딩된 픽처는 액세스 유닛(access unit, AU) 내의 NAL 유닛 헤더 계층 식별자(nuh_layer_id)의 특정 값을 갖는 VCL NAL 유닛을 포함하고, 픽처의 모든 코딩 트리 유닛(coding tree unit, CTU)을 포함하는 픽처의 코딩된 표현(representation)이다. 디코딩된 픽처는 디코딩 프로세스를 코딩된 픽처에 적용하여 생성된 픽처이다.
출력 계층 세트(output layer set, OLS)는 하나 이상의 계층이 출력 계층으로 명시된 계층 세트이다. 출력 계층은 (예: 디스플레이로) 출력을 위해 지정된 계층이다. 0번째(0-th) OLS는 최하위 계층(lowest layer)(최하위 계층 식별자를 가지는 계층)만 포함하고, 따라서 출력 계층만 포함하는 OLS이다. OLS에서의 계층 수는 NumLayerInOLS로 지정된 신택스 엘리먼트에 의해 지정될 수 있다. 비디오 파라미터 세트(video parameter set, VPS)는 전체 비디오와 관련된 파라미터를 포함하는 데이터 유닛이다. 인터 계층 예측(Inter-layer prediction)은 참조 계층의 참조 픽처를 참조하여 현재 계층의 현재 픽처를 코딩하는 메커니즘이며, 여기서 현재 픽처와 참조 픽처가 동일한 AU에 포함되고, 참조 계층이 현재 계층보다 낮은 nuh_layer_id를 포함한다.
프로필(profile)은 호환 또는 준수하는(conforming) 비트스트림을 만드는 데 사용되는 정의된 코딩 도구 세트이다. 각 프로필은 대응하는 프로필을 준수하는 모든 디코더에 의해 지원되어야 하는 알고리즘 특징(feature) 및 제한(limit)의 서브세트를 명시한다. 티어(tier) 및 레벨은 최대 비트 레이트(rate), 최대 루마(luma) 샘플 레이트, 최대 루마 픽처(picture) 크기, 최소 압축 비율, 허용되는 최대 슬라이스 수 및 허용되는 최대 타일 수와 관련하여 비트스트림을 정의하는 제약(constraint)이다. 하위 티어(lower tier)는 상위(higher) 티어보다 더 제한되고, 하위 레벨은 상위 레벨보다 더 제한된다. 프로필, 티어 및 레벨(profile, tier, and level, PTL) 파라미터는 프로필, 티어 및/또는 레벨 정보를 제공하는 신택스 구조이다.
시간적 확장 가능한 비트스트림(temporal scalable bitstream)은 다양한 시간 해상도/프레임 레이트를 제공하는 다중 계층에서 코딩된 비트스트림이다(예: 각 계층은 서로 다른 프레임 레이트를 지원하도록 코딩됨). 서브계층(sublayer)은 특정 시간 식별자 값을 갖는 VCL NAL 유닛 및 연관된 비-VCL NAL 유닛을 포함하는 시간적 확장 가능한 비트스트림의 시간적 확장 가능한 계층이다. 예를 들어, 시간적 서브계층은 명시된 프레임 레이트와 연관된 비디오 데이터를 포함하는 계층이다. 서브계층 표현은 특정 서브계층 및 하위 서브계층의 NAL 유닛을 포함하는 비트스트림의 서브세트이다. 따라서, 하나 이상의 시간적 서브계층이 조합되어, 명시된 프레임 레이트를 갖는 비디오 시퀀스를 생성하도록 디코딩될 수 있는 서브계층 표현을 달성할 수 있다. OLS 인덱스는 대응하는 OLS를 고유하게 식별하는 인덱스이다. 시간 식별자(identifier, ID)는 데이터가 비디오 시퀀스의 시간적 위치에 대응함을 지시하는 데이터 엘리먼트이다. 서브 비트스트림(sub-bitstream) 추출 프로세스는 타깃 OLS 인덱스 및 타깃 최고 시간 ID에 의해 결정된 타깃 세트에 속하지 않는 비트스트림에서 NAL 유닛을 제거하는 프로세스이다. 서브 비트스트림 추출 프로세스는 타깃 세트의 일부인 비트스트림으로부터 NAL 유닛을 포함하는 출력 서브 비트스트림을 생성한다.
HRD는 명시된 제약에 대한 적합성(conformance)을 검증하기 위해, 인코딩 프로세스에 의해 생산된(produced) 비트스트림의 가변성을 확인하는(check) 인코더에서 작동하는 디코더 모델이다. 비트스트림 적합성 테스트는 인코딩된 비트스트림이 VVC(Versatile Video Coding)와 같은 표준을 준수하는지를 판정하는 테스트이다. HRD 파라미터는 HRD의 작동 조건을 초기화하거나 및/또는 정의하는 신택스 엘리먼트이다. 시퀀스 레벨 HRD(sequence-level HRD) 파라미터는 전체 코딩된 비디오 시퀀스에 적용되는 HRD 파라미터이다. 최대 HRD 시간 ID(hrd_max_tid[i])는 HRD 파라미터가 OLS HRD 파라미터의 i번째 세트에 포함되는 최상위 서브계층(highest sublayer) 표현의 시간 ID를 명시한다. 일반 HRD 파라미터(general_hrd_parameters) 신택스 구조는 시퀀스 레벨 HRD 파라미터를 포함하는 신택스 구조이다. OP(Operation Point)는 OLS 인덱스와 최상위 시간 ID로 식별되는 OLS의 시간적 서브세트이다. 테스트 중 OP(OP under test, targetOp)는 HRD에서 적합성 테스트를 위해 선택된 OP이다. 타깃 OLS는 비트스트림으로부터의 추출을 위해 선택된 OLS이다. 디코딩 유닛 HRD 파라미터 존재 플래그(decoding_unit_hrd_params_present_flag)는 대응하는 HRD 파라미터가 디코딩 유닛(decoding unit, DU) 레벨 또는 AU 레벨에서 작동하는지를 지시하는 플래그이다. 코딩된 픽처 버퍼(coded picture buffer, CPB)는 비트스트림 적합성 검증 동안 사용하기 위해 디코딩 순서로 코딩된 픽처를 포함하는 HRD의 선입선출 버퍼(first-in first-out buffer)이다. 디코딩된 픽처 버퍼(decoded picture buffer, DPB)는 참조, 출력 재정렬(reordering) 및/또는 출력 지연(delay)을 위해 디코딩된 픽처를 유지하기 위한 버퍼이다.
디코딩된 픽처 버퍼(decoded picture buffer, DPB) 파라미터는 DPB 크기 및 선택적으로 최대 픽처 재정렬 수 및 최대 레이턴시(latency) 정보를 제공하는 신택스 구조이다. 최대 픽처 재정렬 수 및 최대 레이턴시 정보는 MRML이라는 약어로 통칭될 수 있다.
여기에서 사용되는 두문자어는 CTB(coding tree block), CTU(Coding Tree Unit), CU(Coding Unit), CVS(Coded Video Sequence), JVET(Joint Video Experts Team), MCTS(Motion-Constrained Tile Set), MTU(Maximum Transfer Unit), NAL(Network Abstraction Layer), POC(Picture Order Count), PPS(Picture Parameter Set), RBSP(Raw Byte Sequence Payload), SPS(Sequence Parameter Set), VVC(Versatile Video Coding) 및 WD(Working Draft)이다.
도 1은 비디오 신호를 코딩하는 예시적인 작동 방법(100)의 흐름도이다. 구체적으로, 비디오 신호는 인코더에서 인코딩된다. 인코딩 프로세스는 다양한 메커니즘을 이용하여 비디오 신호를 압축하여 비디오 파일 크기를 줄인다. 파일 크기가 작을수록 압축된 비디오 파일이 사용자에게 전송되는 동시에 관련 대역폭 오버헤드가 줄어든다. 그런 다음 디코더는 압축된 비디오 파일을 디코딩하여 최종 사용자에게 디스플레이할 원래의 비디오 신호를 재구성한다. 디코딩 프로세스는 일반적으로 디코더가 비디오 신호를 일관되게 재구성할 수 있도록 인코딩 프로세스를 미러링한다.
단계(101)에서, 비디오 신호가 인코더에 입력된다. 예를 들어, 비디오 신호는 메모리에 저장된 비압축 비디오 파일일 수 있다. 다른 예로서, 비디오 파일은 비디오 카메라와 같은 비디오 캡처 다바이스에 의해 캡처될 수 있고, 비디오의 라이브 스트리밍을 지원하도록 인코딩될 수 있다. 비디오 파일은 오디오 컴포넌트와 비디오 컴포넌트를 모두 포함할 수 있다. 비디오 컴포넌트는 일련의 이미지 프레임을 포함하며, 시퀀스로 볼 때 모션에 대한 시각적 인상을 준다. 프레임은 여기에서 루마 컴포넌트(또는 루마 샘플)이라고 하는 빛(light)과 크로마 컴포넌트(또는 컬러 샘플)라고 하는 색상으로 표현되는 픽셀을 포함한다. 일부 예에서, 프레임은 또한 3차원 보기를 지원하기 위해 깊이 값을 포함할 수 있다.
단계(103)에서, 비디오는 블록으로 파티셔닝된다. 파티셔닝은 압축을 위해 각 프레임의 픽셀을 정사각형 및/또는 직사각형 블록으로 세분화하는(subdividing) 것을 포함한다. 예를 들어, 고효율 비디오 코딩(High Efficiency Video Coding, HEVC)(H.265 및 MPEG-H Part 2라고도 함)에서, 프레임은 먼저 미리 정의된 크기(예: 64 픽셀×64 픽셀)의 블록인 코딩 트리 유닛(coding tree unit, CTU)으로 나뉠(divided) 수 있다. CTU는 루마 샘플 및 크로마 샘플을 모두 포함한다. 코딩 트리를 이용하여 CTU를 블록으로 나눈 다음, 추가 인코딩을 지원하는 구성이 달성될 때까지 블록을 재귀적으로 세분화할 수 있다. 예를 들어, 프레임의 루마 컴포넌트는 개별 블록이 상대적으로 균일한 조명 값(homogenous lighting value)을 포함할 때까지 세분화될 수 있다. 또한, 프레임의 크로마 컴포넌트는 개별 블록이 비교적 균일한 색상 값을 포함할 때까지 세분화될 수 있다. 따라서, 비디오 프레임의 내용(content)에 따라 파티셔닝 메커니즘이 달라진다.
단계(105)에서, 단계(103)에서 파티셔닝된 이미지 블록을 압축하기 위해 다양한 압축 메커니즘이 이용된다. 예를 들어, 인터 예측(inter-prediction) 및/또는 인트라 예측(intra-prediction)이 이용될 수 있다. 인터 예측은 공통 장면의 객체가 연속 프레임에 나타나는 경향이 있다는 사실을 사용하도록 설계되었다. 따라서, 참조 프레임에서 객체를 묘사하는 블록은 인접 프레임에서 반복적으로 기술될 필요가 없다. 구체적으로, 테이블과 같은 객체는 다수의 프레임에 걸쳐 일정한 위치에 남아 있을 수 있다. 따라서, 테이블은 한 번 기술되고 인접 프레임은 참조 프레임을 다시 참조할 수 있다. 패턴 매칭(pattern matching) 메커니즘을 이용하여 다수의 프레임에 걸쳐 객체를 매칭시킬 수 있다. 또한, 움직이는 객체는 예를 들어 객체의 모션이나 카메라의 모션으로 인해 다수의 프레임에 걸쳐 표현될 수 있다. 특정 예로서, 비디오는 다수의 프레임에 걸쳐 화면을 가로질러 움직이는 자동차를 보여줄 수 있다. 모션 벡터는 이러한 움직임(movement)을 설명하는 데 이용될 수 있다. 모션 벡터는 프레임에 있는 객체의 좌표에서 참조 프레임에 있는 객체의 좌표까지 오프셋(offset)을 제공하는 2차원 벡터이다. 이와 같이, 인터 예측은 현재 프레임의 이미지 블록을 참조 프레임의 대응하는 블록으로부터의 오프셋을 지시하는 모션 벡터의 세트로서 인코딩할 수 있다.
인트라 예측은 공통 프레임의 블록을 인코딩한다. 인트라 예측은 루마 컴포넌트 및 크로마 컴포넌트가 프레임에서 클러스터링되는 경향이 있다는 사실을 사용한다. 예를 들어, 나무의 한 부분에 있는 녹색 패치(patch)는 유사한 녹색 패치에 인접하게 배치되는 경향이 있다. 인트라 예측은 다수의 지향성 예측 모드(예: HEVC에서 33개), 평면 모드(planar mode) 및 DC(direct current) 모드를 이용한다. 지향성 모드는 현재 블록이 대응하는 방향에서 이웃 블록의 샘플과 유사/동일함을 지시한다. 평면 모드는 행/열(예: 평면)을 따라 일련의 블록이 행의 에지(edge)에 있는 이웃 블록을 기반으로 보간될 수 있음을 지시한다. 실제로 평면 모드는 값을 변경할 때 상대적으로 일정한 기울기(slope)를 이용하여 행/열에 걸쳐 조명/색상의 부드러운 전환을 지시한다. DC 모드는 경계 평활화(boundary smoothing)에 이용되며, 지향성 예측 모드의 각도 방향(angular direction)과 관련된 모든 이웃 블록의 샘플과 관련된 평균값과 유사/동일한 블록을 지시한다. 따라서, 인트라 예측 블록은 실제 값 대신에 다양한 관계형 예측 모드 값으로 이미지 블록을 나타낼 수 있다. 또한, 인터 예측 블록은 실제 값 대신에 모션 벡터 값으로 이미지 블록을 나타낼 수 있다. 어느 경우든 예측 블록은 경우에 따라 이미지 블록을 정확하게 나타내지 않을 수 있다. 모든 차이는 잔차 블록에 저장된다. 파일을 추가로 압축하기 위해 변환을 잔차 블록에 적용할 수 있다.
단계(107)에서, 다양한 필터링 기술이 적용될 수 있다. HEVC에서, 필터는 인루프(in-loop) 필터링 방식에 따라 적용된다. 위에서 논의된 블록 기반 예측은 디코더에서 블록 이미지의 생성을 초래할 수 있다. 또한, 블록 기반 예측 방식은 블록을 인코딩한 다음 나중에 참조 블록으로 사용하기 위해 인코딩된 블록을 재구성할 수 있다. 인루프 필터링 방식은 노이즈 억제(noise suppression) 필터, 디블로킹(de-blocking) 필터, 적응 루프(adaptive loop) 필터, 샘플 적응 오프셋(sample adaptive offset, SAO) 필터를 블록/프레임에 반복적으로 적용한다. 이러한 필터는 인코딩된 파일이 정확하게 재구성될 수 있도록 이러한 차단 아티팩트(blocking artifact)를 완화한다. 또한, 이러한 필터는 재구성된 참조 블록에서 아티팩트를 완화하므로, 아티팩트가 재구성된 참조 블록에 기반하여 인코딩되는 후속 블록(subsequent block)에서 추가 아티팩트를 생성할 가능성이 적다.
비디오 신호가 파티셔닝, 압축 및 필터링되면 결과적으로 데이터는 단계(109)에서 비트스트림으로 인코딩된다. 비트스트림은 디코더에서 적절한 비디오 신호 재구성을 지원하기 위해 원하는 시그널링 데이터뿐만 아니라 위에서 논의된 데이터를 포함한다. 예를 들어, 그러한 데이터는 파티션(partition) 데이터, 예측 데이터, 잔차 블록, 및 디코더에 코딩 명령을 제공하는 다양한 플래그(flag)를 포함할 수 있다. 비트스트림은 요청시 디코더를 향한 전송을 위해 메모리에 저장될 수 있다. 비트스트림은 또한 복수의 디코더를 향해 브로드캐스트 및/또는 멀티캐스트될 수 있다. 비트스트림 생성은 반복적인 프로세스이다. 따라서, 단계(101, 103, 105, 107, 및 109)는 많은 프레임 및 블록에 걸쳐 연속적으로 및/또는 동시에 발생할 수 있다. 도 1에 도시된 순서는 논의의 명료함과 용이함을 위해 제시되며, 비디오 코딩 프로세스를 특정 순서로 제한하려는 의도가 아니다.
디코더는 단계(111)에서 비트스트림을 수신하고 디코딩 프로세스를 시작한다. 구체적으로, 디코더는 엔트로피 디코딩 방식을 이용하여, 비트스트림을 대응하는 신택스 및 비디오 데이터로 변환한다. 디코더는 단계(111)에서 비트스트림으로부터의 신택스 데이터를 이용하여 프레임에 대한 파티션을 결정한다. 파티셔닝은 단계(103)의 블록 파티셔닝 결과와 매칭되어야 한다. 이제 단계(111)에서 이용된 엔트로피 인코딩/디코딩이 설명된다. 인코더는 입력 이미지(들)에서 값의 공간적 위치를 기반으로 여러 가능한 선택 중에서 블록 파티셔닝 방식을 선택하는 것과 같이 압축 프로세스 동안 많은 선택을 한다. 정확한 선택을 시그널링하는 것은, 많은 수의 빈(bin)을 사용할 수 있다. 여기에서 사용된 바와 같이, 빈은 변수(variable)로 취급되는 이진 값(예: 콘텍스트에 따라 변할 수 있는 비트 값)이다. 엔트로피 코딩을 사용하면 인코더가 특정 경우에 명확하게 실행 가능하지 않은 옵션을 버리고 허용 가능한 옵션 세트를 남길 수 있다. 그런 다음 각 허용 가능한 옵션에 코드 워드(code word)가 할당된다. 코드 워드의 길이는 허용 가능한 옵션의 수를 기반으로 한다(예: 2개 옵션의 경우 1개의 빈, 3~4개의 옵션에 대한 2개의 빈 등). 그런 다음 인코더는 선택된 옵션에 대한 코드 워드를 인코딩한다. 이 방식은 가능한 모든 옵션의 잠재적으로 큰 세트로부터의 선택을 고유하게 지시하는 것과 대조적으로 허용 가능한 옵션의 작은 서브 세트로부터의 선택을 고유하게 지시하기 위해, 코드 워드가 원하는 만큼 크므로 코드 워드의 크기를 줄인다. 그런 다음 디코더는 인코더와 유사한 방식으로 허용 가능한 옵션 세트를 결정하여 선택을 디코딩한다. 허용 가능한 옵션 세트를 결정함으로써, 디코더는 코드 워드를 읽고 인코더에 의해 만들어진 선택을 결정할 수 있다.
단계(113)에서, 디코더는 블록 디코딩을 수행한다. 구체적으로, 디코더는 역 변환(reverse transform)을 이용하여 잔차 블록을 생성한다. 그런 다음 디코더는 잔차 블록 및 대응하는 예측 블록을 이용하여 파티셔닝에 따라 이미지 블록을 재구성한다. 예측 블록은 단계(105)에서 인코더에서 생성된 바와 같은 인트라 예측 블록 및 인터 예측 블록 모두를 포함할 수 있다. 그런 다음 재구성된 이미지 블록은 단계(111)에서 결정된 파티셔닝 데이터에 따라 재구성된 비디오 신호의 프레임에 위치된다. 단계(113)에 대한 신택스는 또한 위에서 논의된 바와 같이 엔트로피 코딩을 통해 비트스트림에서 시그널링될 수 있다.
단계(115)에서, 인코더에서의 단계(107)와 유사한 방식으로, 재구성된 비디오 신호의 프레임에 대해 필터링이 수행된다. 예를 들어, 노이즈 억제 필터, 디블로킹 필터, 적응 루프 필터 및 SAO 필터를 프레임에 적용하여 차단 아티팩트를 제거할 수 있다. 프레임이 필터링되면, 비디오 신호는 최종 사용자가 보기 위해 단계(117)에서 디스플레이로 출력될 수 있다.
도 2는 비디오 코딩을 위한 예시적인 코딩 및 디코딩(코덱) 시스템(200)의 개략도이다. 구체적으로, 코덱 시스템(200)은 작동 방법(100)의 구현을 지원하는 기능을 제공한다. 코덱 시스템(200)은 인코더 및 디코더 모두에 사용되는 컴포넌트를 묘사하도록 일반화된다. 코덱 시스템(200)은 작동 방법(100)의 단계(101 및 103)와 관련하여 논의된 바와 같이, 비디오 신호를 수신하고 파티셔닝하여 파티셔닝된 비디오 신호(201)를 생성한다. 코덱 시스템(200)은 방법(100)의 단계(105, 107, 및 109)와 관련하여 논의된 인코더로서 작용할 때 파티셔닝된 비디오 신호(201)를 코딩된 비트스트림으로 압축한다. 디코더로서 작용할 때, 코덱 시스템(200)은 작동 방법(100)에서 단계(111, 113, 115, 및 117)와 관련하여 논의된 바와 같이 비트스트림으로부터 출력 비디오 신호를 생성한다. 코덱 시스템(200)은 일반 코더 제어 컴포넌트(211), 변환 스케일링(scaling) 및 양자화 컴포넌트(213), 인트라 픽처(intra-picture) 추정 컴포넌트(215), 인트라 픽처 예측 컴포넌트(217), 모션 보상 컴포넌트(219), 모션 추정 컴포넌트(221), 스케일링 및 역 변환(inverse transform) 컴포넌트(229), 필터 제어 분석 컴포넌트(227), 인루프 필터 컴포넌트(225), 디코딩된 픽처 버퍼 컴포넌트(223), 및 헤더 포맷팅(header formatting) 및 콘텍스트 적응 이진 산술 코딩(context adaptive binary arithmetic coding, CABAC) 컴포넌트(231)를 포함한다. 이러한 컴포넌트는 도시된 바와 같이 결합된다. 도 2에서, 흑색선은 인코딩될/디코딩될 데이터의 움직임을 지시하고, 점선은 다른 컴포넌트의 작동을 제어하는 제어 데이터의 움직임을 나타낸다. 코덱 시스템(200)의 컴포넌트는 모두 인코더에 존재할 수 있다. 디코더는 코덱 시스템(200)의 컴포넌트의 서브 세트를 포함할 수 있다. 예를 들어, 디코더는 인트라 픽처 예측 컴포넌트(217), 모션 보상 컴포넌트(219), 스케일링 및 역 변환 컴포넌트(229), 인루프 필터 컴포넌트(225), 및 디코딩된 픽처 버퍼 컴포넌트(223)를 포함할 수 있다. 이제 이러한 컴포넌트에 대해 설명한다.
파티셔닝된 비디오 신호(201)는 코딩 트리에 의해 픽셀 블록으로 파티셔닝된, 캡처된 비디오 시퀀스이다. 코딩 트리는 다양한 분할(split) 모드를 이용하여 픽셀 블록을 더 작은 픽셀 블록으로 세분화한다. 그런 다음 이러한 블록을 더 작은 블록으로 세분화할 수 있다. 블록은 코딩 트리에서 노드라고 지칭될 수 있다. 더 큰 부모(parent) 노드는 더 작은 자식(child) 노드로 분할된다. 노드가 세분화되는 횟수를 노드/코딩 트리의 깊이라고 한다. 나눠진 블록은 경우에 따라 코딩 유닛(Coding Unit, CU)에 포함될 수 있다. 예를 들어, CU는 CU에 대한 대응하는 신택스 명령과 함께, 루마 블록, 적색 차이 크로마(Cr) 블록 및 청색 차이 크로마(Cb) 블록을 포함하는 CTU의 서브 부분(sub-portion)일 수 있다. 분할 모드는 이용되는 분할 모드에 따라 노드를 각각 다양한 모양의 2개의 자식 노드, 3개의 자식 노드 또는 4개의 자식 노드로 파티셔닝하는 데 이용되는, 이진 트리(binary tree, BT), 삼중 트리(triple tree, TT) 및 쿼드 트리(quad tree, QT)를 포함할 수 있다. 파티셔닝된 비디오 신호(201)는 압축을 위해 일반 코더 제어 컴포넌트(211), 변환 스케일링 및 양자화 컴포넌트(213), 인트라 픽처 추정 컴포넌트(215), 필터 제어 분석 컴포넌트(227), 및 모션 추정 컴포넌트(221)로 전달된다.
일반 코더 제어 컴포넌트(211)는 애플리케이션 제약에 따라 비디오 시퀀스의 이미지를 비트스트림으로 코딩하는 것과 관련된 결정을 내리도록 구성된다. 예를 들어, 일반 코더 제어 컴포넌트(211)는 비트레이트(bitrate)/비트스트림 크기 대 재구성 품질의 최적화를 관리한다. 이러한 결정은 저장 공간/대역폭 가용성 및 이미지 해상도 요청을 기반으로 할 수 있다. 일반 코더 제어 컴포넌트(211)는 또한 버퍼 언더런(underrun) 및 오버런(overrun) 문제를 완화하기 위해 전송 속도에 비추어 버퍼 활용을 관리한다. 이러한 문제를 관리하기 위해 일반 코더 제어 컴포넌트(211)는 다른 컴포넌트에 의한 파티셔닝, 예측 및 필터링을 관리한다. 예를 들어, 일반 코더 제어 컴포넌트(211)는 해상도를 증가시키고 대역폭 사용을 증가시키기 위해 압축 복잡도를 동적으로 증가시키거나 또는 해상도 및 대역폭 사용을 감소시키기 위해 압축 복잡도를 감소시킬 수 있다. 따라서, 일반 코더 제어 컴포넌트(211)는 코덱 시스템(200)의 다른 컴포넌트를 제어하여 비디오 신호 재구성 품질과 비트 레이트 문제의 균형을 맞춘다. 일반 코더 제어 컴포넌트(211)는 다른 컴포넌트의 작동을 제어하는 제어 데이터를 생성한다. 제어 데이터는 또한 디코더에서 디코딩하기 위한 신호 파라미터로 비트스트림에서 인코딩되도록 헤더 포맷팅 및 CABAC 컴포넌트(231)로 전달된다.
파티셔닝된 비디오 신호(201)는 또한 인터 예측을 위해 모션 추정 컴포넌트(221) 및 모션 보상 컴포넌트(219)로 송신된다. 파티셔닝된 비디오 신호(201)의 프레임 또는 슬라이스는 다수의 비디오 블록으로 나눠질 수 있다. 모션 추정 컴포넌트(221) 및 모션 보상 컴포넌트(219)는 시간 예측을 제공하기 위해 하나 이상의 참조 프레임에서 하나 이상의 블록에 대해 수신된 비디오 블록의 인터 예측 코딩(inter-predictive coding)을 수행한다. 코덱 시스템(200)은 예를 들어 비디오 데이터의 각 블록에 대한 적절한 코딩 모드를 선택하기 위해 다수의 코딩 패스(pass)를 수행할 수 있다.
모션 추정 컴포넌트(221) 및 모션 보상 컴포넌트(219)는 고도로 통합될 수 있지만, 개념적 목적을 위해 별도로 예시된다. 모션 추정 컴포넌트(221)에 의해 수행되는 모션 추정은 비디오 블록에 대한 모션을 추정하는 모션 벡터를 생성하는 프로세스이다. 예를 들어, 모션 벡터는 예측 블록에 대한 코딩된 객체의 변위(displacement)를 지시할 수 있다. 예측 블록은 픽셀 차이 측면에서 코딩될 블록과 밀접하게 매칭하는 것으로 발견된 블록이다. 예측 블록은 참조 블록이라고도 할 수 있다. 그러한 픽셀 차이는 절대 차이의 합(sum of absolute difference, SAD), 차이의 제곱합(sum of square difference, SSD), 또는 다른 차이 메트릭에 의해 결정될 수 있다. HEVC는 CTU, 코딩 트리 블록(coding tree block, CTB) 및 CU를 포함하는, 여러 코딩된 객체를 이용한다. 예를 들어, CTU는 CTB로 나눠질 수 있으며, 그런 다음 CU에 포함하기 위해 CB로 나눠질 수 있다. CU는 예측 데이터를 포함하는 예측 유닛(prediction unit, PU) 및/또는 CU에 대한 변환된 잔차 데이터를 포함하는 변환 유닛(transform unit, TU)으로서 인코딩될 수 있다. 모션 추정 컴포넌트(221)는 레이트 왜곡(rate distortion) 최적화 프로세스의 일부로서 레이트 왜곡 분석을 사용함으로써 모션 벡터, PU, 및 TU를 생성한다. 예를 들어, 모션 추정 컴포넌트(221)는 현재 블록/프레임에 대한 다수의 참조 블록, 다수의 모션 벡터 등을 결정할 수 있고, 최상의 레이트 왜곡 특성을 갖는 참조 블록, 모션 벡터 등을 선택할 수 있다. 최상의 레이트 왜곡 특성은 비디오 재구성의 품질(예: 압축에 의한 데이터 손실의 양)과 코딩 효율성(예: 최종 인코딩의 크기)의 균형을 유지한다.
일부 예에서, 코덱 시스템(200)은 디코딩된 픽처 버퍼 컴포넌트(223)에 저장된 참조 픽처의 서브 정수 픽셀 위치에 대한 값을 계산할 수도 있다. 예를 들어, 비디오 코덱 시스템(200)은 참조 픽처의 1/4 픽셀 위치, 1/8 픽셀 위치, 또는 다른 분수(fractional) 픽셀 위치의 값을 보간할 수 있다. 따라서, 모션 추정 컴포넌트(221)는 전체 픽셀 위치(full pixel position) 및 분수 픽셀 위치(fractional pixel position)에 대한 모션 검색을 수행하고, 분수 픽셀 정밀도(fractional pixel precision)를 갖는 모션 벡터를 출력할 수 있다. 모션 추정 컴포넌트(221)는 PU의 위치를 참조 픽처의 예측 블록의 위치와 비교하는 것에 의해, 인터 코딩된 슬라이스에서 비디오 블록의 PU에 대한 모션 벡터를 계산한다. 모션 추정 컴포넌트(221)는 인코딩을 위해, 계산된 모션 벡터를 모션 데이터로서 헤더 포맷팅 및 CABAC 컴포넌트(231)에 출력하고, 모션을 모션 보상 컴포넌트(219)에 출력한다.
모션 보상 컴포넌트(219)에 의해 수행되는 모션 보상은 모션 추정 컴포넌트(221)에 의해 결정된 모션 벡터에 기반하여 예측 블록을 페치하거나 생성하는 것을 수반할 수 있다. 다시, 모션 추정 컴포넌트(221) 및 모션 보상 컴포넌트(219)는 일부 예에서 기능적으로 통합될 수 있다. 현재 비디오 블록의 PU에 대한 모션 벡터를 수신하면, 모션 보상 컴포넌트(219)는 모션 벡터가 가리키는 예측 블록을 찾을 수도 있다. 그런 다음, 코딩되는 현재 비디오 블록의 픽셀 값에서 예측 블록의 픽셀 값을 감산하여 픽셀 차이 값을 형성함으로써 잔차 비디오 블록이 형성된다. 일반적으로, 모션 추정 컴포넌트(221)는 루마 컴포넌트에 대해 모션 추정을 수행하고, 모션 보상 컴포넌트(219)는 루마 컴포넌트에 기반하여 계산된 모션 벡터를 크로마 컴포넌트 및 루마 컴포넌트 모두에 대해 사용한다. 예측 블록 및 잔차 블록은 변환 스케일링 및 양자화 컴포넌트(213)로 전달된다.
파티셔닝된 비디오 신호(201)는 또한 인트라 픽처 추정 컴포넌트(215) 및 인트라 픽처 예측 컴포넌트(217)로 송신된다. 모션 추정 컴포넌트(221) 및 모션 보상 컴포넌트(219)와 같이, 인트라 픽처 추정 컴포넌트(215) 및 인트라 픽처 예측 컴포넌트(217)는 고도로 통합될 수 있지만, 개념적 목적을 위해 별도로 예시된다. 인트라 픽처 추정 컴포넌트(215) 및 인트라 픽처 예측 컴포넌트(217)는 위에서 설명한 바와 같이, 프레임 사이에서 모션 추정 컴포넌트(221) 및 모션 보상 컴포넌트(219)에 의해 수행되는 인터 예측에 대한 대안으로서, 현재 프레임에서 블록에 대한 현재 블록을 인트라 예측한다. 특히, 인트라 픽처 추정 컴포넌트(215)는 현재 블록을 인코딩하기 위해 사용할 인트라 예측 모드를 결정한다. 일부 예에서, 인트라 픽처 추정 컴포넌트(215)는 다수의 테스트된 인트라 예측 모드로부터 현재 블록을 인코딩하기 위해 적절한 인트라 예측 모드를 선택한다. 선택된 인트라 예측 모드는 인코딩을 위해 헤더 포맷팅 및 CABAC 컴포넌트(231)로 전달된다.
예를 들어, 인트라 픽처 추정 컴포넌트(215)는 다양한 테스트된 인트라 예측 모드에 대한 레이트 왜곡 분석을 사용하여 레이트 왜곡 값을 계산하고, 테스트된 모드 중에서 가장 좋은 레이트 왜곡 특성을 갖는 인트라 예측 모드를 선택한다. 레이트 왜곡 분석은 일반적으로 인코딩된 블록과 인코딩된 블록을 생성하기 위해 인코딩되는 원래의 인코딩되지 않은 블록 사이의 왜곡(또는 에러)의 양과 인코딩된 블록을 생성하는 데 사용된 비트레이트(예: 비트 수)를 결정한다. 인트라 픽처 추정 컴포넌트(215)는 블록에 대한 최상의 레이트 왜곡 값을 나타내는 인트라 예측 모드를 결정하기 위해 다양한 인코딩된 블록에 대한 왜곡 및 레이트로부터 비율을 계산한다. 또한, 인트라 픽처 추정 컴포넌트(215)는 레이트 왜곡 최적화(rate-distortion optimization, RDO)에 기반한 깊이 모델링 모드(depth modeling mode, DMM)를 사용하여 깊이 맵의 깊이 블록을 코딩하도록 구성될 수 있다.
인트라 픽처 예측 컴포넌트(217)는 인코더 상에서 구현될 때 인트라 픽처 추정 컴포넌트(215)에 의해 결정된 선택된 인트라 예측 모드에 기반하여 예측 블록으로부터 잔차 블록을 생성하거나 또는 디코더 상에서 구현될 때 비트스트림으로부터 잔차 블록을 판독할 수 있다. 잔차 블록은 예측 블록과 원래의 블록 간의 값의 차이를 포함하며 행렬로 표현된다. 그런 다음, 잔차 블록은 변환 스케일링 및 양자화 컴포넌트(213)로 전달된다. 인트라 픽처 추정 컴포넌트(215) 및 인트라 픽처 예측 컴포넌트(217)는 루마 컴포넌트 및 크로마 컴포넌트 모두에 대해 작동할 수 있다.
변환 스케일링 및 양자화 컴포넌트(213)는 추가로, 잔차 블록을 압축하도록 구성된다. 변환 스케일링 및 양자화 컴포넌트(213)는 이산 코사인 변환(discrete cosine transform, DCT), 이산 사인 변환(discrete sine transform, DST) 또는 개념적으로 유사한 변환과 같은 변환을 잔차 블록에 적용하여 잔차 변환 계수 값을 포함하는 비디오 블록을 생성한다. 웨이블릿 변환(Wavelet transform), 정수 변환, 서브 대역 변환 또는 다른 유형의 변환도 사용할 수 있다. 변환은 잔차 정보를 픽셀 값 도메인으로부터 주파수 도메인과 같은 변환 도메인으로 변환할 수 있다. 변환 스케일링 및 양자화 컴포넌트(213)는 또한 예를 들어 주파수에 기반하여, 변환된 잔차 정보를 스케일링하도록 구성된다. 그러한 스케일링은 상이한 주파수 정보가 상이한 그래뉼래러티에서 양자화되도록 스케일 팩터를 잔차 정보에 적용하는 것을 포함하며, 이는 재구성된 비디오의 최종 시각적 품질에 영향을 미칠 수 있다. 변환 스케일링 및 양자화 컴포넌트(213)는 또한 비트 레이트를 추가로 감소시키기 위해 변환 계수를 양자화하도록 구성된다. 양자화 프로세스는 계수의 일부 또는 전부와 관련된 비트 깊이를 감소시킬 수 있다. 양자화의 정도는 양자화 파라미터를 조정하는 것에 의해 수정될 수 있다. 일부 예에서, 변환 스케일링 및 양자화 컴포넌트(213)는 그런 다음 양자화된 변환 계수들을 포함하는 행렬의 스캔을 수행할 수 있다. 양자화된 변환 계수는 헤더 포맷팅 및 CABAC 컴포넌트(231)로 전달되어 비트스트림에서 인코딩된다.
스케일링 및 역 변환 컴포넌트(229)는 모션 추정을 지원하기 위해 변환 스케일링 및 양자화 컴포넌트(213)의 역 작동(reverse operation)을 적용한다. 스케일링 및 역 변환 컴포넌트(229)는 예를 들어 다른 현재 블록에 대한 예측 블록이 될 수 있는 참조 블록으로서 나중에 사용하기 위해, 역 스케일링, 변환, 및/또는 양자화를 적용하여 픽셀 도메인에서 잔차 블록을 재구성한다. 모션 추정 컴포넌트(221) 및/또는 모션 보상 컴포넌트(219)는 나중(later) 블록/프레임의 모션 추정에 사용하기 위해 대응하는 예측 블록에 잔차 블록을 다시 추가하여, 참조 블록을 계산할 수도 있다. 필터는 스케일링, 양자화 및 변환 중에 생성된 아티팩트를 완화하기 위해 재구성된 참조 블록에 적용된다. 그렇지 않으면 후속 블록이 예측될 때 이러한 아티팩트가 부정확한 예측을 야기하고 추가 아티팩트를 생성할 수 있다.
필터 제어 분석 컴포넌트(227) 및 인루프 필터 컴포넌트(225)는 필터를 잔차 블록 및/또는 재구성된 이미지 블록에 적용한다. 예를 들어, 스케일링 및 역 변환 컴포넌트(229)로부터의 변환된 잔차 블록은 인트라 픽처 예측 컴포넌트(217) 및/또는 모션 보상 컴포넌트(219)로부터의 대응하는 예측 블록과 조합되어, 원래의 이미지 블록을 재구성할 수 있다. 그런 다음 필터가 재구성된 이미지 블록에 적용될 수 있다. 일부 예에서, 필터가 그 대신에 잔차 블록에 적용될 수 있다. 도 2의 다른 컴포넌트와 마찬가지로, 필터 제어 분석 컴포넌트(227) 및 인루프 필터 컴포넌트(225)는 고도로 통합되어 함께 구현될 수 있지만, 개념적 목적을 위해 별도로 도시된다. 재구성된 참조 블록에 적용된 필터는 특정 공간 영역에 적용되며 이러한 필터가 적용되는 방식을 조정하기 위해 다수의 파라미터를 포함한다. 필터 제어 분석 컴포넌트(227)는 재구성된 참조 블록을 분석하여 그러한 필터가 적용되어야 하는 위치를 결정하고 대응하는 파라미터를 설정한다. 그러한 데이터는 인코딩을 위한 필터 제어 데이터로서, 헤더 포맷팅 및 CABAC 컴포넌트(231)로 전달된다. 인루프 필터 컴포넌트(225)는 필터 제어 데이터에 기반하여 이러한 필터를 적용한다. 필터는 디블로킹 필터, 노이즈 억제 필터, SAO 필터 및 적응 루프 필터를 포함할 수 있다. 그러한 필터는 예에 따라 공간/픽셀 도메인(예: 재구성된 픽셀 블록에서) 또는 주파수 도메인에서 적용될 수 있다.
인코더로서 작동할 때, 필터링된 재구성된 이미지 블록, 잔차 블록, 및/또는 예측 블록은 위에서 논의된 바와 같이 모션 추정에서 나중에 사용하기 위해 디코딩된 픽처 버퍼 컴포넌트(223)에 저장된다. 디코더로서 작동할 때, 디코딩된 픽처 버퍼 컴포넌트(223)는 재구성되고 필터링된 블록을 저장하고 이를 출력 비디오 신호의 일부로서 디스플레이를 향해 전달한다. 디코딩된 픽처 버퍼 컴포넌트(223)는 예측 블록, 잔차 블록, 및/또는 재구성된 이미지 블록을 저장할 수 있는 임의의 메모리 디바이스일 수 있다.
헤더 포맷팅 및 CABAC 컴포넌트(231)는 코덱 시스템(200)의 다양한 컴포넌트로부터 데이터를 수신하고, 디코더를 향한 전송을 위해 이러한 데이터를 코딩된 비트스트림으로 인코딩한다. 구체적으로, 헤더 포맷팅 및 CABAC 컴포넌트(231)는 일반 제어 데이터 및 필터 제어 데이터와 같은 제어 데이터를 인코딩하기 위한 다양한 헤더를 생성한다. 또한, 인트라 예측 및 모션 데이터를 포함하는 예측 데이터와 양자화된 변환 계수 데이터 형태의 잔차 데이터가 모두 비트스트림에 인코딩된다. 최종 비트스트림은 원래의 파티셔닝된 비디오 신호(201)를 재구성하기 위해 디코더가 원하는 모든 정보를 포함한다. 이러한 정보는 또한 인트라 예측 모드 인덱스 테이블(코드워드 매핑 테이블이라고도 함), 다양한 블록에 대한 인코딩 콘텍스트의 정의, 가장 가능성 있는 인트라 예측 모드의 지시(indication), 파티션 정보의 지시 등을 포함할 수 있다. 이러한 데이터는 엔트로피 코딩을 이용하여 인코딩될 수 있다. 예를 들어, 정보는 콘텍스트 적응 가변 길이 코딩(context adaptive variable length coding, CAVLC), CABAC, 신택스 기반 콘텍스트 적응 이진 산술 코딩(syntax-based context-adaptive binary arithmetic coding, SBAC), 확률 간격 파티셔닝 엔트로피(probability interval partitioning entropy, PIPE) 코딩, 또는 다른 엔트로피 코딩 기술을 이용하여 인코딩될 수 있다. 엔트로피 코딩에 이어, 코딩된 비트스트림은 다른 디바이스(예: 비디오 디코더)로 전송되거나 나중의 전송 또는 검색을 위해 보관될 수 있다.
도 3은 예시적인 비디오 인코더(300)를 예시하는 블록도이다. 비디오 인코더(300)는 코덱 시스템(200)의 인코딩 기능을 구현하거나 및/또는 작동 방법(100)의 단계(101, 103, 105, 107, 및/또는 109)를 구현하기 위해 사용될 수 있다. 인코더(300)는 입력 비디오 신호를 파티셔닝하여 파티셔닝된 비디오 신호(301)를 생성하며, 이는 파티셔닝된 비디오 신호(201)와 실질적으로 유사하다. 파티셔닝된 비디오 신호(301)는 그다음 인코더(300)의 컴포넌트에 의해 압축되고 비트스트림으로 인코딩된다.
구체적으로, 파티셔닝된 비디오 신호(301)는 인트라 예측을 위해 인트라 픽처 예측 컴포넌트(317)로 전달된다. 인트라 픽처 예측 컴포넌트(317)는 인트라 픽처 추정 컴포넌트(215) 및 인트라 픽처 예측 컴포넌트(217)와 실질적으로 유사할 수 있다. 파티셔닝된 비디오 신호(301)는 또한 디코딩된 픽처 버퍼 컴포넌트(323)의 참조 블록에 기반한 인터 예측을 위해 모션 보상 컴포넌트(321)로 전달된다. 모션 보상 컴포넌트(321)는 모션 추정 컴포넌트(221) 및 모션 보상 컴포넌트(219)와 실질적으로 유사할 수 있다. 인트라 픽처 예측 컴포넌트(317) 및 모션 보상 컴포넌트(321)로부터의 예측 블록 및 잔차 블록은 잔차 블록의 변환 및 양자화를 위해 변환 및 양자화 컴포넌트(313)로 전달된다. 변환 및 양자화 컴포넌트(313)는 변환 스케일링 및 양자화 컴포넌트(213)와 실질적으로 유사할 수 있다. 변환 및 양자화된 잔차 블록 및 대응하는 예측 블록(관련 제어 데이터와 함께)은 비트스트림으로의 코딩을 위해 엔트로피 코딩 컴포넌트(331)로 전달된다. 엔트로피 코딩 컴포넌트(331)는 헤더 포맷팅 및 CABAC 컴포넌트(231)와 실질적으로 유사할 수 있다.
변환 및 양자화된 잔차 블록 및/또는 대응하는 예측 블록은 또한 모션 보상 컴포넌트(321)에 의해 사용하기 위한 참조 블록으로의 재구성을 위해, 변환 및 양자화 컴포넌트(313)로부터 역 변환 및 양자화 컴포넌트(329)로 전달된다. 역 변환 및 양자화 컴포넌트(329)는 스케일링 및 역 변환 컴포넌트(229)와 실질적으로 유사할 수 있다. 인루프 필터 컴포넌트(325)의 인루프 필터는 예에 따라 잔차 블록 및/또는 재구성된 참조 블록에도 적용된다. 인루프 필터 컴포넌트(325)는 필터 제어 분석 컴포넌트(227) 및 인루프 필터 컴포넌트(225)와 실질적으로 유사할 수 있다. 인루프 필터 컴포넌트(325)는 인루프 필터 컴포넌트(225)와 관련하여 논의된 바와 같이 다수의 필터를 포함할 수 있다. 필터링된 블록은 그다음 모션 보상 컴포넌트(321)에 의한 참조 블록으로서 사용하기 위해, 디코딩된 픽처 버퍼 컴포넌트(323)에 저장된다. 디코딩된 픽처 버퍼 컴포넌트(323)는 디코딩된 픽처 버퍼 컴포넌트(223)와 실질적으로 유사할 수 있다.
도 4는 예시적인 비디오 디코더(400)를 예시하는 블록도이다. 비디오 디코더(400)는 코덱 시스템(200)의 디코딩 기능을 구현하거나 및/또는 작동 방법(100)의 단계(111, 113, 115, 및/또는 117)를 구현하기 위해 이용될 수 있다. 디코더(400)는 예를 들어 인코더(300)로부터 비트스트림을 수신하고, 최종 사용자에게 디스플레이하기 위해 비트스트림에 기반하여, 재구성된 출력 비디오 신호를 생성한다.
비트스트림은 엔트로피 디코딩 컴포넌트(433)에 의해 수신된다. 엔트로피 디코딩 컴포넌트(433)는 CAVLC, CABAC, SBAC, PIPE 코딩, 또는 다른 엔트로피 코딩 기술과 같은 엔트로피 디코딩 방식을 구현하도록 구성된다. 예를 들어, 엔트로피 디코딩 컴포넌트(433)는 헤더 정보를 이용하여, 비트스트림에서 코드워드로서 인코딩된 추가 데이터를 해석하기 위한 콘텍스트를 제공할 수 있다. 디코딩된 정보는 일반 제어 데이터, 필터 제어 데이터, 파티션 정보, 모션 데이터, 예측 데이터 및 잔차 블록으로부터의 양자화된 변환 계수와 같은 비디오 신호를 디코딩하기 위해 임의의 원하는 정보를 포함한다. 양자화된 변환 계수는 잔차 블록으로의 재구성을 위해 역 변환 및 양자화 컴포넌트(429)로 전달된다. 역 변환 및 양자화 컴포넌트(429)는 역 변환 및 양자화 컴포넌트(329)와 유사할 수 있다. 재구성된 잔차 블록 및/또는 예측 블록은 인트라 예측 작동에 기반한 이미지 블록으로의 재구성을 위해 인트라 픽처 예측 컴포넌트(417)로 전달된다. 인트라 픽처 예측 컴포넌트(417)는 인트라 픽처 추정 컴포넌트(215) 및 인트라 픽처 예측 컴포넌트(217)와 유사할 수 있다. 구체적으로, 인트라 픽처 예측 컴포넌트(417)는 예측 모드를 이용하여 프레임에서 참조 블록을 찾으며, 잔차 블록을 결과에 적용하여 인트라 예측된 이미지 블록을 재구성한다. 재구성된 인트라 예측된 이미지 블록 및/또는 잔차 블록 그리고 대응하는 인터 예측 데이터는, 디코딩된 픽처 버퍼 컴포넌트(223) 및 루프 필터 컴포넌트(225)와 각각 실질적으로 유사할 수 있는, 인루프 필터 컴포넌트(425)를 통해 디코딩된 픽처 버퍼 컴포넌트(423)로 전달된다. 인루프 필터 컴포넌트(425)는 재구성된 이미지 블록, 잔차 블록 및/또는 예측 블록을 필터링하고, 이러한 정보는 디코딩된 픽처 버퍼 컴포넌트(423)에 저장된다. 디코딩된 픽처 버퍼 컴포넌트(423)로부터의 재구성된 이미지 블록은 인터 예측을 위해 모션 보상 컴포넌트(421)로 전달된다. 모션 보상 컴포넌트(421)는 모션 추정 컴포넌트(221) 및/또는 모션 보상 컴포넌트(219)와 실질적으로 유사할 수 있다. 구체적으로, 모션 보상 컴포넌트(421)는 참조 블록으로부터 모션 벡터를 이용하여 예측 블록을 생성하고, 잔차 블록을 결과에 적용하여 이미지 블록을 재구성한다. 결과적인 재구성된 블록은 또한 인루프 필터 컴포넌트(425)를 통해 디코딩된 픽처 버퍼 컴포넌트(423)로 전달될 수 있다. 디코딩된 픽처 버퍼 컴포넌트(423)는 파티션 정보를 통해 프레임으로 재구성될 수 있는 추가적인 재구성된 이미지 블록을 계속해서 저장한다. 이러한 프레임은 시퀀스에 배치될 수도 있다. 시퀀스는 재구성된 출력 비디오 신호로 디스플레이를 향해 출력된다.
위의 사항을 염두에 두고, 비디오 압축 기술은 비디오 시퀀스에 내재된 중복성을 줄이거나 제거하기 위해 공간적(인트라 픽처(inter-picture)) 예측 및/또는 시간적(인터 픽처(inter-picture)) 예측을 수행한다. 블록 기반 비디오 코딩의 경우, 비디오 슬라이스(즉, 비디오 픽처 또는 비디오 픽처의 일부)는 비디오 블록으로 파티셔닝될 수 있으며, 이는 트리블록, 코딩 트리 블록(coding tree block, CTB), 코딩 트리 유닛(coding tree unit, CTU), 코딩 유닛(coding unit, CU), 및/또는 코딩 노드로도 지칭될 수 있다. 픽처의 인트라 코딩된(I) 슬라이스의 비디오 블록은 동일한 픽처의 이웃 블록에 있는 참조 샘플에 대한 공간적 예측을 사용하여 인코딩된다. 픽처의 인터 코딩된(P 또는 B) 슬라이스의 비디오 블록은 동일한 픽처의 이웃 블록에 있는 참조 샘플에 대한 공간적 예측 또는 다른 참조 픽처의 참조 샘플에 대한 시간적 예측을 사용할 수 있다. 픽처를 프레임이라 지칭할 수 있고, 참조 픽처를 참조 프레임이라고 지칭할 수 있다. POC는 코딩된 계층 비디오 시퀀스(coded layer video sequence, CLVS)의 모든 픽처 중에서 연관된 픽처를 고유하게 식별하는 각 픽처와 연관된 변수이며, 연관된 픽처가 DPB에서 출력되어야 하는 시기를 지시하고, DPB에서 출력될 동일한 CLVS의 다른 픽처의 출력 순서 위치에 대한 출력 순서에서 연관된 픽처의 위치를 지시한다. 플래그는 0과 1의 두 가지 가능한 값 중 하나를 사용할 수 있는 변수 또는 단일 비트(single-bit) 신택스 엘리먼트이다.
공간적 또는 시간적 예측은 코딩될 블록에 대한 예측 블록을 생성한다. 잔차 데이터는 코딩될 원래 블록과 예측 블록 간의 픽셀 차이를 나타낸다(represent). 인터 코딩된(inter-coded) 블록은 예측 블록(predictive block)을 형성하는 참조 샘플의 블록을 가리키는 모션(motion) 벡터, 및 코딩된 블록과 예측 블록 간의 차이를 나타내는 잔차(residual) 데이터에 따라 인코딩된다. 인트라 코딩된(intra-coded) 블록은 인트라 코딩 모드 및 잔차 데이터에 따라 인코딩된다. 추가 압축을 위해, 잔차 데이터는 픽셀 도메인에서 변환 도메인으로 변환될 수 있고, 그 결과 잔차 변환 계수(transform coefficient)가 생성되고, 이는 양자화될 수 있다. 초기에 2차원 어레이로 정렬된 양자화된 변환 계수는 변환 계수의 1차원 벡터를 생산하기 위해 스캔될 수 있고, 엔트로피 코딩(entropy coding)이 훨씬 더 압축을 달성하기 위해 적용될 수 있다.
이미지 및 비디오 압축은 급속한 성장을 경험하여 다양한 코딩 표준으로 이어졌다. 이러한 비디오 코딩 표준은 ITU-T H.261, ISO/IEC(International Organization for Standardization/International Electrotechnical Commission) MPEG-1 Part 2, ITU-T H.262 또는 ISO/IEC MPEG-2 Part 2, ITU-T H.263, ISO/IEC MPEG-4 Part 2, ITU-T H.264 또는 ISO/IEC MPEG-4 Part 10이라고도 하는 AVC(Advanced Video Coding), ITU-T H.265 또는 MPEG-H Part 2라고도 하는 HEVC(High Efficiency Video Coding)를 포함한다. AVC는 SVC(Scalable Video Coding), MVC(Multiview Video Coding) 및 MVC+D(Multiview Video Coding plus Depth), 3D AVC(3D-AVC)와 같은 확장을 포함한다. HEVC는 SHVC(Scalable HEVC), MV-HEVC(Multiview HEVC) 및 3D HEVC(3D-HEVC)와 같은 확장을 포함한다.
ITU-T와 ISO/IEC의 JVET(Joint Video Experts Team)에서 개발 중인 VVC(Versatile Video Coding)라는 새로운 비디오 코딩 표준도 있다. VVC 표준에는 여러 작업 초안이 있지만 특히 VVC의 WD(Working Draft), 즉 B. Bross, J.Chen 및 S. Liu의, 2019년 3월 27일 13회 JVET 미팅의 JVET-N1001-v3에서의 "Versatile Video Coding(Draft 5)" 가 여기에서 참조된다.
비디오 코딩의 확장성(scalability)은 일반적으로 다중 계층 코딩 기술을 사용하여 지원된다. 다중 계층 비트스트림은 기본 계층(base layer, BL) 및 하나 이상의 향상 계층(enhancement layer, EL)을 포함한다. 확장성의 예로는 공간적 확장성, 품질/SNR(signal-to-noise) 확장성, 다시점 확장성(multi-view scalability) 등이 있다. 다중 계층 코딩 기술이 사용될 때, 픽처 또는 그 일부가 (1) 참조 픽처를 사용하지 않고, 즉 인트라 예측을 사용하여; 또는 (2) 동일한 계층에 있는 참조 픽처를 참조하여 즉 인터 예측을 사용하여; 또는 (3) 다른 계층(들)에 있는 참조 픽처를 참조하여 즉, 인터 계층 예측을 사용하여 코딩될 수 있다. 현재 픽처의 인터 계층 예측에 사용되는 참조 픽처를 ILRP(Inter Layer Reference Picture)라고 한다.
도 5는 예를 들어 블록 압축 단계(105), 블록 디코딩 단계(113), 모션 추정 컴포넌트(221), 모션 보상 컴포넌트(219), 모션 보상 컴포넌트(321), 및/또는 모션 보상 컴포넌트(421)에서 모션 벡터(MV)를 결정하기 위해 수행되는 바와 같은 계층 기반 예측(500)의 예를 예시하는 개략도이다. 계층 기반 예측(500)은 단방향(unidirectional) 인터 예측 및/또는 양방향(bidirectional) 인터 예측과 호환되지만 상이한 계층의 픽처 간에도 수행된다.
계층 기반 예측(500)은 서로 다른 계층의 픽처(511, 512, 513, 514)와 픽처(515, 516, 517, 518) 사이에 적용된다. 도시된 예에서, 픽처(511, 512, 513 및 514)는 계층 N+1(532)의 일부이고, 픽처(515, 516, 517 및 518)는 계층 N(531)의 일부이다. 계층 N(531) 및/또는 계층 N+1(532)과 같은 계층은, 유사한 크기, 품질, 해상도, 신호 대 잡음비, 능력(capability) 등과 같은 특성의 유사한 값과 모두 연관된 픽처 그룹이다. 도시된 예에서, 계층 N+1(532)은 계층 N(531)보다 더 큰 이미지 크기와 연관된다. 따라서, 계층 N+1(532)의 픽처(511, 512, 513, 514)는 이 예에서 계층 N(531)의 픽처(515, 516, 517, 518)보다 더 큰 픽처 크기(예: 더 큰 높이와 너비, 따라서 더 많은 샘플)를 갖는다. 그러나, 이러한 픽처는 다른 특성에 의해 계층 N+1(532)과 계층 N(531) 사이에서 분리될 수 있다. 단지 두 개의 계층인, 계층 N+1(532)과 계층 N(531)만 도시되지만, 픽처 세트는 연관된 특성에 기반하여 임의의 수의 계층으로 분리될 수 있다. 계층 N+1(532) 및 계층 N(531)은 또한 계층 ID로 표시될 수 있다. 계층 ID는 픽처와 연관되면서 또한 픽처가 지시된 계층의 일부임을 표시하는(denote) 데이터 항목(item)이다. 따라서, 각각의 픽처(511-518)는 대응하는 픽처를 포함하는 계층 N+1(532) 또는 계층 N(531)을 지시하기 위해 대응하는 계층 ID와 연관될 수 있다.
상이한 계층(531-532)의 픽처(511-518)는 대안으로 디스플레이되도록 구성된다. 이와 같이, 상이한 계층(531-532)의 픽처(511-518)는 동일한 시간 식별자(ID)를 공유할 수 있고 동일한 AU에 포함될 수 있다. 여기에서 사용되는 바와 같이, AU는 DPB로부터의 출력을 위한 동일한 디스플레이 시간과 연관된 하나 이상의 코딩된 픽처의 세트이다. 예를 들어, 디코더는 더 작은 픽처가 요구되면 현재 디스플레이 시간에 픽처(511)를 디코딩 및 디스플레이할 수 있으며, 또는 디코더는 더 큰 픽처가 요구되면 현재 디스플레이 시간에 픽처(515)를 디코딩 및 디스플레이할 수 있다. 이와 같이, 상위 계층 N+1(532)의 픽처(511-514)는 하위 계층 N(531)의 대응하는 픽처(515-518)와 실질적으로 동일한 이미지 데이터를 포함한다(픽처 크기의 차이에도 불구하고). 구체적으로, 픽처(511)는 픽처(515)와 실질적으로 동일한 이미지 데이터를 포함하고, 픽처(512)는 픽처(516)와 실질적으로 동일한 이미지 데이터 등을 포함한다.
픽처(511-518)는 동일한 계층 N(531) 또는 N+1(532)의 다른 픽처(511-518)를 참조하여 코딩될 수 있다. 동일한 계층의 다른 픽처를 참조하여 픽처를 코딩하는 것은, 단방향 인터 예측 및/또는 양방향 인터 예측과 호환되는 인터 예측(523)을 초래한다. 인터 예측(523)은 실선 화살표로 표시된다. 예를 들어, 픽처(513)는 참조로서 계층 N+1(532)의 픽처(511, 512, 및/또는 514) 중 하나 또는 2개를 사용하는 인터 예측(523)을 이용하는(employ) 것에 의해 코딩될 수 있으며, 여기서 하나의 픽처가 단방향 인터 예측을 위해 참조되거나 및/또는 2개의 픽처가 양방향 인터 예측을 위해 참조된다. 또한, 픽처(517)는 참조로서 계층 N(531)의 픽처(515, 516 및/또는 518) 중 하나 또는 2개를 사용하여 인터 예측(523)을 이용하는 것에 의해 코딩될 수 있으며, 여기서 하나의 픽처가 단방향 인터 예측을 위해 참조되거나 및/또는 2개의 픽처가 양방향 인터 예측을 위해 참조된다. 인터 예측(523)을 수행할 때 픽처가 동일한 계층의 다른 픽처에 대한 참조로 사용될 때, 픽처는 참조 픽처로 지칭될 수 있다. 예를 들어, 픽처(512)는 인터 예측(523)에 따라 픽처(513)를 코딩하는데 사용되는 참조 픽처일 수 있다. 인터 예측(523)은 또한 다중 계층 콘텍스트에서 인트라 계층 예측으로 지칭될 수 있다. 이와 같이, 인터 예측(523)은 현재 픽처와 상이한 참조 픽처 내의 지시된 샘플을 참조하여 현재 픽처의 샘플을 코딩하는 메커니즘이며, 여기서 참조 픽처와 현재 픽처가 동일한 계층에 있다.
픽처(511-518)는 또한 상이한 계층의 다른 픽처(511-518)를 참조하여 코딩될 수 있다. 이 프로세스는 인터 계층 예측(521)으로 알려져 있으며, 점선 화살표로 표시된다. 인터 계층 예측(521)은 참조 픽처에서 지시된 샘플을 참조하여 현재 픽처의 샘플을 코딩하는 메커니즘이며, 여기서 현재 픽처와 참조 픽처가 서로 다른 계층에 있으며 따라서 서로 다른 계층 ID를 갖는다. 예를 들어, 하위 계층 N(531)의 픽처는 상위 계층 N+1(532)의 대응하는 픽처를 코딩하기 위한 참조 픽처로 사용될 수 있다. 구체적인 예로서, 픽처(511)는 인터 계층 예측(521)에 따라 픽처(515)를 참조하여 코딩될 수 있다. 이러한 경우, 픽처(515)는 인터 계층 참조 픽처로 사용된다. 인터 계층 참조 픽처는 인터 계층 예측(521)에 사용되는 참조 픽처이다. 대부분의 경우, 인터 계층 예측(521)은 픽처(511)와 같은 현재 픽처가, 픽처(515)와 같이, 동일한 AU에 포함되면서 또한 하위 계층에 있는 인터 계층 참조 픽처(들)만을 사용할 수 있도록 제한된다. 다수의 계층(예: 2개 이상)이 사용 가능할 때, 인터 계층 예측(521)은 현재 픽처보다 낮은 레벨에서 다수의 인터 계층 참조 픽처(들)에 기반하여 현재 픽처를 인코딩/디코딩할 수 있다.
비디오 인코더는 계층 기반 예측(500)을 이용하여, 인터 예측(523) 및 인터 계층 예측(521)의 많은 상이한 조합 및/또는 순열(permutation)을 통해 픽처(511-518)를 인코딩할 수 있다. 예를 들어, 픽처(515)는 인트라 예측에 따라 코딩될 수 있다. 그런 다음, 픽처(516-518)는 픽처(515)를 참조 픽처로 사용하는 것에 의해 인터 예측(523)에 따라 코딩될 수 있다. 또한, 픽처(511)는 픽처(515)를 인터 계층 참조 픽처로 사용하는 것에 의해 인터 계층 예측(521)에 따라 코딩될 수 있다. 그런 다음, 픽처(512-514)는 픽처(511)를 참조 픽처로 사용하는 것에 의해 인터 예측(523)에 따라 코딩될 수 있다. 이와 같이, 참조 픽처는 상이한 코딩 메커니즘을 위한 단일 계층 참조 픽처 및 인터 계층 참조 픽처 모두의 역할을 할 수 있다. 하위 계층 N(531) 픽처에 기반하여 상위 계층 N+1(532) 픽처를 코딩하는 것에 의해, 상위 계층 N+1(532)은 인터 예측(523) 및 인터 계층 예측(521)보다 훨씬 낮은 코딩 효율을 갖는 인트라 예측을 이용하는 것을 피할 수 있다. 이와 같이, 인트라 예측의 열악한 코딩 효율은 최소/최저(smallest/lowest) 품질 픽처로 제한될 수 있고, 따라서 최소량의 비디오 데이터를 코딩하는 것으로 제한될 수 있다. 참조 픽처 및/또는 인터 계층 참조 픽처로 사용되는 픽처는, 참조 픽처 리스트 구조에 포함된 참조 픽처 리스트(들)의 엔트리에서 지시될 수 있다.
도 5의 각 AU(506)는 여러 픽처를 포함할 수 있다. 예를 들어, 하나의 AU(506)는 픽처(511, 515)를 포함할 수 있다. 다른 AU(506)는 픽처(512, 516)를 포함할 수 있다. 실제로, 각각의 AU(506)는 디코딩된 픽처 버퍼(decoded picture buffer, DPB)로부터의 출력(예: 사용자에게 디스플레이하기 위해)을 위한 동일한 디스플레이 시간(예: 동일한 시간 ID)과 연관된 하나 이상의 코딩된 픽처의 세트이다. 각각의 AUD(508)는 AU(예: AU(508))의 시작 또는 AU 사이의 경계를 지시하기 위해 사용되는 지시자 또는 데이터 구조이다.
이전 H.26x 비디오 코딩 제품군은 단일 계층 코딩을 위한 프로필(들)과 별도의 프로필(들)에서 확장성을 지원했다. 확장 가능한 비디오 코딩(scalable video coding, SVC)은 공간, 시간 및 품질 확장성을 지원하는 AVC/H.264의 확장 가능한 확장이다. SVC의 경우, 플래그는 EL 픽처의 각 매크로블록(macroblock, MB)에서 시그널링되어, EL MB가 하위 계층으로부터 병치된 블록(collocated block)을 사용하여 예측되는지를 지시한다. 병치된 블록으로부터의 예측은 텍스처, 모션 벡터, 및/또는 코딩 모드를 포함할 수 있다. SVC 구현은 설계에서 수정되지 않은 H.264/AVC 구현을 직접 재사용할 수 없다. SVC EL 매크로블록 신택스 및 디코딩 프로세스는 H.264/AVC 신택스 및 디코딩 프로세스와 상이하다.
확장 가능한 HEVC(scalable HEVC, SHVC)는 공간 및 품질 확장성을 지원하는 HEVC/H.265 표준의 확장이고, MV-HEVC(multiview HEV)는 다중 보기 확장성(multi-view scalability)을 지원하는 HEVC/H.265의 확장이며, 3D HEVC(3D-HEVC)는 MV-HEVC보다 더 발전되고 효율적인 3차원(3D) 비디오 코딩에 대한 지원을 제공하는 HEVC/H.264의 확장이다. 시간적 확장성은 단일 계층 HEVC 코덱의 필수 부분으로 포함한다. HEVC의 다중 계층 확장 설계는, 인터 계층 예측에 사용되는 디코딩된 픽처가 동일한 액세스 유닛(access unit)으로부터만 제공되고 LTRP(long-term reference picture)로 처리되고, 현재 계층의 다른 시간적 참조 픽처와 함께 참조 픽처 리스트(들)의 참조 인덱스가 할당된다는 아이디어를 사용한다. 인터 계층 예측(inter-layer prediction, ILP)은 참조 픽처 리스트(들)의 인터 계층 참조 픽처(들)를 참조하도록 참조 인덱스의 값을 설정하는 것에 의해 예측 유닛(prediction unit, PU) 레벨에서 달성된다.
특히, 참조 픽처 리샘플링(resampling) 및 공간적 확장성 특징 모두는 참조 픽처 또는 그 일부의 리샘플링을 요구한다. 참조 픽처 리샘플링(reference picture resampling, RPR)은 픽처 레벨 또는 코딩 블록 레벨에서 실현될 수 있다. 그러나, RPR을 코딩 특징이라고 할 때, 이는 단일 계층 코딩을 위한 특징이다. 그렇더라도, 단일 계층 코딩의 RPR 특징과 다중 계층 코딩을 위한 공간적 확장성 특징 모두에 대해 동일한 리샘플링 필터를 사용하는 것이 코덱 설계 관점에서 가능하거나 더 바람직하다.
도 6은 예를 들어 블록 압축 단계(105), 블록 디코딩 단계(113), 모션 추정 컴포넌트(221), 모션 보상 컴포넌트(219), 모션 보상 컴포넌트(321), 및/또는 모션 보상 컴포넌트(421)에서 MV를 결정하기 위해 수행되는 바와 같이, 출력 계층 세트(output layer se, OLS)를 활용하는 계층 기반 예측의 예(600)를 도시한다. 계층 기반 예측(600)은 단방향 인터 예측 및/또는 양방향 인터 예측과 호환되지만, 상이한 계층의 픽처 간에도 수행된다. 도 6의 계층 기반 예측은 도 5와 유사하다. 따라서, 간결함을 위해 계층 기반 예측에 대한 전체 설명은 반복하지 않는다.
도 6의 코딩된 비디오 시퀀스(coded video sequence, CVS)(690)의 일부 계층은 OLS에 포함된다. OLS는 하나 이상의 계층이 출력 계층으로 명시된 계층 세트이다. 출력 계층은 출력되는 OLS의 계층이다. 도 6은 3개의 상이한 OLS, 즉 OLS 1, OLS 2 및 OLS 3을 도시한다. 도시된 바와 같이, OLS 1은 계층 N(631) 및 계층 N+1(632)을 포함한다. OLS 2는 계층 N 631, 계층 N+1(632), 계층 N+2(633) 및 계층 N+3(634)를 포함한다. OLS 3은 계층 N(631)을 포함한다. 즉, OLS 3는 단일 계층만 포함한다. 실제 애플리케이션에서, 다른 OLS도 단일 계층만 포함할 수 있다. 3개의 OLS가 도시되지만 실제 애플리케이션에서는 상이한 수의 OLS가 사용될 수 있다. 계층 N+4(635)와 같은 다른 계층이 예시된 OLS(예: OLS 1, OLS 2 및 OLS 3)에 포함되지 않지만 다른 OLS에 포함할 수 있다.
상이한 OLS 각각은 임의의 수의 계층을 포함할 수 있다. 다양한 코딩 능력을 갖는 다양한 상이한 디바이스의 코딩 능력을 수용하기 위한 노력으로 상이한 OLS가 생성된다. 예를 들어, 단 하나의 계층을 포함하는 OLS 3는 상대적으로 제한된 코딩 능력을 가진 모바일 폰을 수용하기 위해 생성될 수 있다. 반면에, 4개의 계층을 포함하는 OLS 2는 모바일폰보다 높은 계층을 디코딩할 수 있는 대화면 텔레비전을 수용하기 위해 생성될 수 있다. 2개의 계층을 포함하는 OLS 1은 개인용 컴퓨터, 랩톱 컴퓨터 또는 태블릿 컴퓨터를 수용하도록 생성될 수 있으며, 이는 모바일 폰보다 상위 계층을 디코딩할 수 있지만 대화면 텔레비전과 같은 최상위 계층은 디코딩할 수 없다.
도 6의 계층들은 모두 서로 독립적일 수 있다. 즉, ILP(Inter Layer Prediction)를 사용하지 않고 각 계층이 코딩될 수 있다. 이 경우, 계층들을 동시 송출 계층(simulcast layer)이라고 한다. 도 6의 계층 중 하나 이상은 또한 ILP를 사용하여 코딩될 수 있다. 계층이 동시 송출 계층인지 또는 계층 중 일부가 ILP를 사용하여 코딩되었는지 여부는 비디오 파라미터 세트(video parameter set, VPS)의 플래그에 의해 시그널링되며, 이는 아래에서 더 자세히 설명된다. 일부 계층이 ILP를 사용할 때, 계층 간의 계층 종속 관계도 VPS에서 시그널링된다.
일 실시예에서, 계층이 동시 송출 계층일 때, 디코딩 및 출력을 위해 하나의 계층만이 선택된다. 일 실시예에서, 일부 계층이 ILP를 사용할 때, 모든 계층(예: 전체 비트스트림)은 디코딩되도록 명시되고, 계층들 중 특정 계층은 출력 계층으로 지정된다. 출력 계층 또는 계층들은 예를 들어 1) 최상위 계층만, 또는 2) 모든 계층, 또는 3) 최상위 계층 + 지시된 하위 계층 세트(the highest layer plus a set of indicated lower layers)일 수 있다. 예를 들어, 최상위 계층 + 지시된 하위 계층 세트가 VPS에서 플래그에 의해 출력을 위해 지정될 때, OLS 2로부터 계층 N+3(634)(이는 최상위 계층임) 및 계층 N(631) 및 N+1(632)(이들은 하위 계층임)이 출력된다.
도 6에 도시된 바와 같이, 각 계층은 임의의 수의 픽처로 구성된다. 예를 들어, 계층 N(631)은 픽처(615-618)를 포함하고, 계층 N+1(632)은 픽처(611-614)를 포함하며, 계층 N+2(633)는 픽처(641-644)를 포함하고, 계층 N+3(634)는 픽처(651-654)를 포함하며, 계층 N+4(635)는 픽처(661 -664)를 포함한다.
HEVC, SHVC, MV-HEVC 및 VVC와 같은 비디오 코딩 표준은 프로필, 티어 및 레벨을 명시하고 시그널링한다. 프로필, 티어 및 레벨은 비트스트림에 대한 제한 사항(restriction) 그리고 따라서 비트스트림을 디코딩하는 데 필요한 능력에 대한 제한을 명시한다. 프로필, 티어 및 레벨은 개별 디코더 구현 간의 상호 운용성 지점을 지시하는 데도 사용될 수 있다. 프로필은 순응하거나 준수하는 비트스트림을 만드는 데 사용되는 정의된 코딩 도구 세트이다. 각 프로필은 대응하는 프로필을 준수하는 모든 디코더에서 지원해야 하는 알고리즘 기능 및 제한의 서브세트를 명시한다.
레벨은 비트스트림에 대한 제약 세트(예: 최대 루마 샘플 레이트, 해상도에 대한 최대 비트 레이트 등)이다. 즉, 레벨은 명시된 프로필의 비트스트림을 재생하는 데 필요한 디코더 성능을 지시하는 제약의 세트이다.
레벨은 Main과 High의 두 티어로 분할된다. Main 티어는 High 티어보다 낮은 티어이다. 티어는 최대 비트 레이트의 측면에서 서로 다른 애플리케이션을 처리하도록 만들어졌다. Main 티어는 대부분의 애플리케이션을 위해 설계되었으며 High 티어는 매우 까다로운 애플리케이션(demanding application)을 위해 설계되었다. 레벨에 대응하는 제약 및/또는 티어의 세트는 여기에서 레벨 정보로 지칭될 수 있다.
티어의 각 레벨은 특정 표준(예: HEVC, VVC)의 신택스 엘리먼트가 취할 수 있는 값에 대한 제한 세트를 명시한다. 동일한 티어 및 레벨 정의 세트가 모든 프로필에 사용되지만, 개별 구현은 각 지원되는 프로필에 대해 상이한 티어 그리고 티어 내 상이한 레벨을 지원할 수 있다. 임의의 주어진 프로필에 대해, 티어의 레벨은 일반적으로 특정 디코더 처리 부하 및 메모리 능력에 대응한다.
HEVC 표준을 사용하여 상이한 프로필에 대한 레벨 및 티어의 대표적인 예가 아래 표 1에 제공된다.
레벨 | Main에 대한 최대 비트 레이트 4:4:4 12 프로필 (1000 bits/sec) |
High 처리량에 대한 최대 비트 레이트 4:4:4 16 인트라 프로필 (1000 bits/sec) |
최고 프레임 레이트에서의 예시적인 픽처 해상도 (MaxDPBsize) |
||
Main 티어 | High 티어 | Main 티어 | High 티어 | ||
5.2 | 180,000 | 720,000 | 5,760,000 | 23,040,000 | 4,096×2,160@120.0 |
6 | 180,000 | 720,000 | 5,760,000 | 23,040,000 | 8,192×4,320@30.0 |
6.1 | 180,000 | 720,000 | 11,520,000 | 46,080,000 | 8,192×4,320@60.0 |
6.2 | 720,000 | 2,400,000 | 23,040,000 | 76,800,000 | 8,192×4,320@120.0 |
프로필, 티어 및 레벨(profile, tier, and level, PTL) 파라미터는 위의 표에 언급된 프로필, 티어 및/또는 레벨을 제공하는 신택스 구조(예: i번째 profile_tier_level( ) 신택스 구조)이다. 디코딩된 픽처 버퍼(decoded picture buffer, DPB) 파라미터는 DPB 크기 및 선택적으로 최대 픽처 재정렬 수(reorder number) 및 최대 레이턴시 정보를 제공하는 신택스 구조(예: i번째 dpb_parameters( ) 신택스 구조)이다. 최대 픽처 재정렬 수 및 최대 레이턴시 정보는 MRML이라는 약어로 통칭될 수 있다. HRD 파라미터는 HRD의 작동 조건을 초기화 및/또는 정의하는 신택스 구조(예: i번째 ols_timing_hrd_parameters( ) 신택스 구조)이다. PTL 파라미터, DPB 파라미터 및 HRD 파라미터 중 하나 이상에 관한 추가 세부사항 및 구체적인 사항은 아래에 제공된다.
일 실시예에서, 최대 픽처 재정렬 수는 dpb_max_num_reorder_pics[i]로 지정되며, 이는 Htid가 i와 같을 때 디코딩 순서에서 OLS의 임의의 픽처에 선행할 수 있고 출력 순서에서 그 픽처를 뒤따르는 OLS의 최대 허용된 픽처 수를 명시한다. dpb_max_num_reorder_pics[i]의 값은 0에서 dpb_max_dec_pic_buffering_minus1[i]까지의 범위(포함)에 있어야 한다. i가 0보다 클 때, dpb_max_num_reorder_pics[i]는 dpb_max_num_reorder_pics[i-1]보다 크거나 같아야 한다. dpb_max_num_reorder_pics[i]가 0에서 MaxSubLayersMinus1 - 1까지의 범위(포함)의 i에 대해 존재하지 않을 때, subLayerInfoFlag가 0과 같기 때문에 dpb_max_num_reorder_pics[ MaxSubLayersMinus1 ]와 같은 것으로 추론된다. Htid는 디코딩될 최상위 시간 서브계층을 식별하는 변수이다.
dpb_max_dec_pic_buffering_minus1[i] 더하기 1(plus 1)은 Htid가 i와 같을 때 픽처 저장 버퍼 단위로 DPB의 최대 요구 크기를 명시한다. dpb_max_dec_pic_buffering_minus1[i]의 값은 0에서 MaxDpbSize - 1까지의 범위(포함)에 있어야 하며, 여기서 MaxDpbSize는 VVC 표준의 하위 조항 A.4.2에 명시된 것과 같다. i가 0보다 클 때, dpb_max_dec_pic_buffering_minus1[i]는 dpb_max_dec_pic_buffering_minus1[i-1]보다 크거나 같아야 한다. dpb_max_dec_pic_buffering_minus1[i]이 0에서 MaxSubLayersMinus1 - 1까지의 범위(포함)의 i에 대해 존재하지 않을 때, subLayerInfoFlag가 0과 같기 때문에 dpb_max_dec_pic_buffering_minus1[ MaxSubLayers1[ MaxSubLayers1]과 같은 것으로 추론된다.
일 실시예에서, 최대 레이턴시 정보는 dpb_max_latency_increase_plus1[i]로 지정된다. 0과 같지 않은 dpb_max_latency_increase_plus1[i]는 MaxLatencyPictures[i]의 값을 계산하는 데 사용되며, 이는 Htid가 i와 같을 때 출력 순서에서 OLS의 임의의 픽처보다 선행할 수 있고 디코딩 순서에서 그 픽처를 뒤따를 수 있는 OLS의 픽처의 최대 수를 명시한다.
MaxLatencyPictures[i] = dpb_max_num_reorder_pics[i] + dpb_max_latency_increment_plus1[i] - 1.
위에서 설명한 OLS에 대한 PTL 신택스 구조(일명 PTL 파라미터)는 비트스트림의 VPS에 포함한다. 불행히도, VPS에서 이러한 모든 PTL 신택스 구조를 시그널링하는 것은 OLS가 단일 계층(예: 도 6의 OLS 3)만을 포함할 때 비효율적이다.
출력 계층 세트(output layer set, OLS)가 단일 계층만을 포함할 때 프로필, 티어 및 레벨(profile, tier, and level, PTL) 파라미터가 시퀀스 파라미터 세트(sequence parameter set, SPS)에 포함되는 것을 보장하는 기술이 여기에 개시된다. SPS는 단일 계층을 가지는 OLS에 대한 PTL 파라미터를 포함하기 때문에, 비디오 파라미터 세트(video parameter set, VPS)가 비트스트림으로부터 제거될 수 있으며, 이는 중복성을 감소시키고 코딩 효율을 증가시킨다. 따라서, 비디오 코딩의 코더/디코더(일명 "코덱")는 현재 코덱에 비해 향상된다. 실질적으로, 개선된 비디오 코딩 프로세스는 비디오가 송신, 수신 및/또는 시청될 때 사용자에게 더 나은 사용자 경험을 제공한다.
도 7은 비디오 비트스트림(700)의 실시예를 예시한다. 여기에서 사용되는 바와 같이, 비디오 비트스트림(700)은 또한 코딩된 비디오 비트스트림, 비트스트림, 또는 이들의 변형으로 지칭될 수도 있다. 도 7에 도시된 바와 같이, 비트스트림(700)은 비디오 파라미터 세트(video parameter set, VPS)(704), 시퀀스 파라미터 세트(sequence parameter set, SPS)(706), 픽처 파라미터 세트(picture parameter set, PPS)(708), 슬라이스 헤더(712), 및 이미지 데이터(720)를 포함한다. VPS(704), SPS(706), 및 PPS(708) 각각은 일반적으로 파라미터 세트로 지칭될 수 있다. 일 실시예에서, 도 7에 도시되지 않은 다른 파라미터 세트 및/또는 헤더가 비트스트림(700)에 포함될 수도 있다.
VPS(704)는 향상 계층의 참조 픽처 세트 구성을 위한 디코딩 의존성 또는 정보를 포함한다. VPS(704)는 어떤 유형의 작동 포인트(operation point)가 제공되는지, 작동 포인트의 프로필, 티어 및 레벨, 그리고 세션 협상 및 콘텐츠 선택 등을 위한 베이스(base)로 사용될 수 있는 비트스트림(700)의 일부 다른 고레벨 속성을 포함하여, 확장 가능한 시퀀스의 전체 관점 또는 보기를 제공한다.
일 실시예에서, VPS(704)는 모든 OLS에 대한 PTL 신택스 구조(780)의 리스트를 포함한다. 일 실시예에서, PTL 신택스 구조(780)의 리스트에서 PTL 신택스 구조 각각은 profile_tier_level( )로 지정된다. VPS(704)는 또한 신택스 구조 vps_ols_ptl_idx[i](782)를 포함한다. 신택스 구조 vps_ols_ptl_idx[i](782)는 i번째 OLS에 적용되는 PTL 신택스 구조의 인덱스를 명시한다. 즉, 각 인덱스 값은 리스트의 PTL 신택스 구조 중 하나에 대응한다. 예를 들어, 리스트의 인덱스 값 1은 OLS 1에 대한 profile_tier_level( )에 대응하고, 인덱스 값 2는 OLS 2에 대한 profile_tier_level( )에 대응하며, 인덱스 값 3은 OLS 3에 대한 profile_tier_level( )에 대응한다.
존재할 때, vps_ols_ptl_idx[i]의 값은 0에서 vps_num_ptls_minus1까지의 범위(포함)에 있다. 신택스 구조 vps_num_ptls_minus1(781)은 VPS(704)에 포함한다. 신택스 구조 vps_num_ptls_minus1 더하기 1은 VPS(704)에서 PTL 신택스 구조의 수를 명시한다. 예를 들어, vps_num_ptls_minus1(781)의 값이 2일 때, VPS(704)에서 PTL 신택스 구조의 수는 3(2+1=3)이다. vps_num_ptls_minus1(781)의 값은 TotalNumOlss로 지정될 수 있는 총 OLS 수보다 작다. 비트스트림(700)에 존재하지 않을 때, vps_num_ptls_minus1(781)의 값은 0과 같은 것으로 추론된다.
일 실시예에서, VPS(704)는 vps_pt_present_flag[i]로 지정될 수 있는 프로필 티어(profile tier, PT) 존재 플래그(783)를 포함한다. 1과 같은 신택스 구조 vps_pt_present_flag[i]는 프로필, 티어 및 일반 제약 정보가 VPS(704)의 i번째 profile_tier_level( ) 신택스 구조에 존재함을 명시한다. 0과 같은 신택스 구조 vps_pt_present_flag[i]는 프로필, 티어 및 일반 제약 정보가 VPS(783)의 i번째 profile_tier_level( ) 신택스 구조에 존재하지 않음을 명시한다. vps_pt_present_flag[0]의 값은 1과 같은 것으로 추론된다. vps_pt_present_flag[i]가 0과 같을 때, VPS에서 i번째 profile_tier_level( ) 신택스 구조에 대한 프로필, 티어 및 일반 제약 정보는 VPS에서 (i - 1)번째 profile_tier_level 신택스 구조에 대한 것과 같은 것으로 추론된다.
SPS(706)는 픽처 시퀀스(sequence of pictures, SOP)의 모든 픽처에 공통인 데이터를 포함한다. SPS(706)는 각 픽처 헤더에서 발견된 신택스 엘리먼트에 의해 참조되는 PPS에서 발견된 신택스 엘리먼트의 콘텐츠(content)에 의해 결정되는 0개 이상의 전체 CLVS에 적용되는 신택스 엘리먼트를 포함하는 신택스 구조이다.
일 실시예에서, i번째 OLS(784)에 적용되는 profile_tier_level( )은 변수 NumLayersInOls[i]가 1과 같을 때 i번째 OLS의 계층에 의해 참조되는 SPS(706)에 존재한다. 변수 NumLayersInOls[i]는 i번째 OLS의 계층 수를 명시한다. 예를 들어, 변수 NumLayersInOls[i]가 1의 값을 가질 때, i번째 OLS는 단일 계층(예: 도 6의 OLS 3)만을 포함한다. 반면, 변수 NumLayersInOls[i]의 값이 4일 때, i번째 OLS는 4개의 계층(예: 도 6의 OLS 2)를 포함한다. 변수 NumLayersInOls[i]는 인코더에 의해 시그널링되지 않는다. 오히려, 변수 NumLayersInOls[i]는 디코더에 의해 도출된다.
일 실시예에서, 변수 NumLayersInOls[i]는 다음과 같이 도출된다.
전술한 내용에 기반하여, 변수 NumLayersInOls[i]가 1과 같을 때, i번째 OLS(784)에 적용되는 profile_tier_level( )이 SPS(706)와 VPS(704)(즉, i번째 OLS에 적용되는 PTL 신택스 구조는 PTL 구조(780)에 포함된 PTL 신택스 구조 중 하나임)에 모두 존재한다. 또한, SPS(706)에서 i번째 OLS(784)에 적용되는 profile_tier_level( )은 VPS(704)에서 i번째 OLS(784)에 적용되는 profile_tier_level( )과 동일하다.
SPS(706)와 달리, PPS(708)는 전체 픽처에 공통적인 데이터를 포함한다. PPS(708)는 0개 이상의 전체 코딩된 픽처에 적용되는 신택스 엘리먼트를 포함하는 신택스 구조이다. 슬라이스 헤더(712)는 슬라이스로 표현된 타일 내의 모든 비디오 데이터에 속하는 데이터 엘리먼트를 포함하는 코딩된 슬라이스의 일부이다. 슬라이스 헤더(712)는 픽처의 각 슬라이스에 특정한 파라미터를 포함한다. 따라서, 비디오 시퀀스의 슬라이스당 하나의 슬라이스 헤더(712)가 있을 수 있다. 슬라이스 헤더(712)는 슬라이스 유형 정보, 픽처 순서 카운트(picture order count, POC), 참조 픽처 리스트(reference picture list, RPL), 예측 가중치(prediction weight), 타일 진입점(tile entry point), 또는 디블로킹(deblocking) 파라미터를 포함할 수 있다. 슬라이스 헤더(712)는 또한 타일 그룹 헤더 및/또는 픽처 헤더(picture header, PH)로 지칭될 수 있다.
일 실시예에서, VPS(704) 및/또는 SPS(706)는 여기에서 개시된 실시예들 중 하나 이상을 구현하기 위해 다음 SPS 신택스 및 시맨틱스(semantic)를 포함한다.
VPS 신택스는 다음을 포함한다.
SPS 원시 바이트 시퀀스 페이로드(raw byte sequence payload, RBSP) 신택스는 다음을 포함한다.
DPB 신택스는 다음을 포함한다.
HRD 파라미터 신택스는 일반 HRD 파라미터 신택스, OLS HRD 파라미터 신택스 및 서브계층 HRD 파라미터 신택스를 포함한다.
일반 HRD 파라미터 신택스는 다음을 포함한다.
OLS HRD 파라미터 신택스는 다음을 포함한다.
서브계층 HRD 파라미터 신택스는 다음을 포함한다.
VPS 시멘틱스는 다음과 같다.
vps_max_layers_minus1 더하기 1은 VPS를 참조하는 각 CVS에서 허용되는 최대 계층 수를 명시한다.
vps_max_sub_layers_minus1 더하기 1은 VPS를 참조하는 각 CVS에 존재할 수 있는 시간 서브계층의 최대 수를 명시한다. vps_max_sub_layers_minus1의 값은 0에서 6까지의 범위(포함)에 있어야 한다.
1과 같은 vps_all_layers_same_num_sub_layers_flag는 시간 서브계층의 수가 VPS를 참조하는 각 CVS의 모든 계층에 대해 동일함을 명시한다. 0과 같은 vps_all_layers_same_num_sub_layers_flag는 VPS를 참조하는 각 CVS의 계층이 동일한 수의 시간 서브계층을 가질 수도 있고 갖지 않을 수도 있음을 명시한다. 존재하지 않을 때, vps_all_layers_same_num_sub_layers_flag의 값은 1과 같은 것으로 추론된다.
1과 같은 vps_all_independent_layers_flag는 CVS의 모든 계층이 인터 계층 예측을 사용하지 않고 독립적으로 코딩됨을 명시한다. 0과 같은 vps_all_independent_layers_flag는 CVS의 하나 이상의 계층이 인터 계층 예측을 사용할 수 있음을 명시한다. 존재하지 않을 때, vps_all_independent_layers_flag의 값은 1과 같은 것으로 추론된다. vps_all_independent_layers_flag가 1과 같을 때, vps_independent_layer_flag[i]의 값은 1과 같은 것으로 추론된다. vps_all_independent_layers_flag가 0과 같을 때, vps_independent_layer_flag[0]의 값은 1과 같은 것으로 추론된다.
0과 같은 vps_direct_dependency_flag[i][j]는 인덱스 j를 갖는 계층이 인덱스 i를 갖는 계층에 대한 직접 참조 계층이 아님을 명시한다. 1과 같은 vps_direct_dependency_flag [i][j]는 인덱스 j를 갖는 계층이 인덱스 i를 갖는 계층에 대한 직접 참조 계층임을 명시한다. vps_direct_dependency_flag[i][j]가 0에서 vps_max_layers_minus1까지의 범위(포함)에서 i 및 j에 대해 존재하지 않을 때, 0과 같은 것으로 추론된다.
변수 DirectDependentLayerIdx[i][j]는 i번째 계층의 j번째 직접 종속 계층(direct dependent)을 명시하고, 변수 LayerUsedAsRefLayerFlag[j]는 계층 인덱스 j를 갖는 계층이 다른 계층에 의한 참조 계층으로 사용되는지를 명시하며, 이들 변수는 다음과 같이 도출된다:
vps_layer_id[i]와 같은 nuh_layer_id를 갖는 계층의 계층 인덱스를 명시하는 변수 GeneralLayerIdx[i]는 다음과 같이 도출된다:
1과 같은 each_layer_is_an_ols_flag는 각 출력 계층 세트가 단 하나의 계층만 포함하고, 비트스트림의 각 계층 자체가 단일 포함 계층(single included layer)이 유일한 출력 계층인 출력 계층 세트임을 명시한다. 0과 같은 each_layer_is_an_ols_flag는 출력 계층 세트가 하나 이상의 계층을 포함할 수 있음을 명시한다. vps_max_layers_minus1이 0과 같으면, each_layer_is_an_ols_flag의 값은 1과 같은 것으로 추론된다. 그렇지 않고, vps_all_independent_layers_flag가 0과 같을 때, each_layer_is_an_ols_flag의 값은 0과 같은 것으로 추론된다.
0과 같은 ols_mode_idc는 VPS에 의해 명시된 OLS의 총 수가 vps_max_layers_minus1 + 1과 같고, i번째 OLS는 0에서 i까지의 계층 인덱스(포함)를 갖는 계층을 포함하며, 각 OLS에 대해 OLS에서의 최상위 계층만 출력됨을 명시한다. 1과 같은 ols_mode_idc는 VPS에 의해 명시된 OLS의 총 수가 vps_max_layers_minus1 + 1과 같고, i번째 OLS는 0에서 i까지의 계층 인덱스(포함)를 포함하는 계층을 포함하며, 각 OLS에 대해 OLS의 모든 계층이 출력됨을 명시한다. 2와 같은 ols_mode_idc는 VPS에 의해 명시된 OLS의 총 수가 명시적으로 시그널링되고 각 OLS에 대해 OLS에서 최상위 계층 및 명시적으로 시그널링된 하위 계층 세트가 출력됨을 명시한다. ols_mode_idc의 값은 0에서 2까지의 범위(포함)에 있어야 한다. ols_mode_idc의 값 3은 ITU-T|ISO/IEC에서 향후 사용을 위해 예약되어 있다. vps_all_independent_layers_flag가 1과 같고 each_layer_is_an_ols_flag가 0과 같을 때, ols_mode_idc의 값은 2와 같은 것으로 추론된다.
num_output_layer_sets_minus1 더하기 1은 ols_mode_idc가 2일 때 VPS에 의해 명시된 OLS의 총 수를 명시한다.
VPS에 의해 명시된 총 OLS 수를 명시하는 변수 TotalNumOlss는 다음과 같이 도출된다:
layer_included_flag[i][j]는 ols_mode_idc가 2와 같을 때 j번째 계층(즉, nuh_layer_id가 vps_layer_id[j]와 같은 계층)이 i번째 OLS에 포함되는지를 명시한다. 1과 같은 layer_included_flag[i][j]는 j번째 계층이 i번째 OLS에 포함됨을 명시한다. 0과 같은 layer_included_flag[i][j]는 j번째 계층이 i번째 OLS에 포함되지 않음을 명시한다.
i번째 OLS의 계층 수를 명시하는 변수 NumLayersInOls[i] 및 i번째 OLS에서 j번째 계층의 nuh_layer_id 값을 명시하는 변수 LayerIdInOls[i][j]는 다음과 같이 도출된다:
nuh_layer_id가 LayerIdInOls[i][j]와 같은 계층의 OLS 계층 인덱스를 명시하는 변수 OlsLayeIdx[i][j]는 다음과 같이 도출된다:
각 OLS의 최하위 계층은 독립 계층이어야 한다. 다시 말해서, 0에서 TotalNumOlss - 1까지의 범위(포함)의 각 i에 대해, vps_independent_layer_flag[ GeneralLayerIdx[ LayerIdInOls[i][0] ] ]의 값은 1과 같아야 한다.
각 계층은 VPS에 의해 명시된 적어도 하나의 OLS에 포함되어야 한다. 다시 말해서, 0에서 vps_max_layers_minus1까지의 범위(포함)에 있는 k에 대한 vps_layer_id[k] 중 하나와 같은 nuh_layer_id nuhLayerId의 특정 값을 갖는 각 계층에 대해, i 및 j 값의 적어도 한 쌍이 있어야 하며, i는 0에서 TotalNumOlss - 1까지의 범위(포함)에 있고, NumLayerInOls[i] - 1까지의 범위(포함)에 있으므로, LayerIdInOls[i][j]의 값은 nuhLayerId와 같다.
OLS의 임의의 계층은 OLS의 출력 계층이거나 또는 OLS의 출력 계층의 (직접 또는 간접) 참조 계층이어야 한다.
vps_output_layer_flag[i][j]는 ols_mode_idc가 2와 같을 때 i번째 OLS의 j번째 계층이 출력되는지를 명시한다. 1과 같은 vps_output_layer_flag[i]는 i번째 OLS의 j번째 계층이 출력됨을 명시한다. 0과 같은 vps_output_layer_flag[i]는 i번째 OLS의 j번째 계층이 출력되지 않음을 명시한다. vps_all_independent_layers_flag가 1과 같고 each_layer_is_an_ols_flag가 0과 같을 때, vps_output_layer_flag[i]의 값은 1과 같은 것으로 추론된다.
변수 OutputLayerFlag[i][j]의 경우, 값 1은 i번째 OLS의 j번째 계층이 출력됨을 명시하고, 값 0은 i번째 OLS의 j번째 계층이 출력되지 않음을 명시하며, 이는 다음과 같이 도출된다:
참고(NOTE) - 0번째 OLS는 최하위 계층(즉, nuh_layer_id가 vps_layer_id[0]과 같은 계층)만 포함하고, 0번째 OLS에 대해 단지 포함 계층이 출력된다.
vps_num_ptls는 VPS에서 profile_tier_level( ) 신택스 구조의 수를 명시한다.
1과 같은 pt_present_flag[i]는 프로필, 티어 및 일반 제약 정보가 VPS의 i번째 profile_tier_level( ) 신택스 구조에 존재함을 명시한다. 0과 같은 pt_present_flag[i]는 프로필, 티어 및 일반 제약 정보가 VPS의 i번째 profile_tier_level( ) 신택스 구조에 존재하지 않음을 명시한다. pt_present_flag[0]의 값은 0과 같은 것으로 추론된다. pt_present_flag[i]가 0과 같을 때, VPS의 i번째 profile_tier_level( ) 신택스 구조에 대한 프로필, 티어 및 일반 제약 정보는, VPS의 (i - 1) 번째 profile_tier_level VPS 신택스 구조에 대한 것과 같은 것으로 추론된다.
ptl_max_temporal_id[i]는 레벨 정보가 VPS의 i번째 profile_tier_level( ) 신택스 구조에 존재하는 최상위 서브 계층 표현의 TemporalId를 명시한다. ptl_max_temporal_id[i]의 값은 0에서 vps_max_sub_layers_minus1까지의 범위(포함)에 있어야 한다. vps_max_sub_layers_minus1이 0과 같을 때, ptl_max_temporal_id[i]의 값은 0과 같은 것으로 추론된다. vps_max_sub_layers_minus1이 0보다 크고 vps_all_layers_same_num_sub_layers_flag가 1과 같을 때, ptl_max_temporal_id[i]의 값은 vps_max_sub_layers_minus1과 같은 것으로 추론된다.
vps_ptl_byte_alignment_zero_bit는 0과 같아야 한다.
ols_ptl_idx[i]는 VPS에 있는 profile_tier_level( ) 신택스 구조 리스트에 대한, i번째 OLS에 적용되는 profile_tier_level( ) 신택스 구조의 인덱스를 명시한다. 존재할 때, ols_ptl_idx[i]의 값은 0에서 vps_num_ptls - 1까지의 범위(포함)에 있어야 한다.
NumLayersInOls[i]가 1과 같을 때, i번째 OLS에 적용되는 profile_tier_level( ) 신택스 구조는 i번째 OLS의 계층에 의해 참조되는 SPS에 존재한다.
vps_num_dpb_params는 VPS에서 dpb_parameters( ) 신택스 구조의 수를 명시한다. vps_num_dpb_params의 값은 0에서 16까지의 범위(포함)에 있어야 한다. 존재하지 않을 때, vps_num_dpb_params의 값은 0과 같은 것으로 추론된다.
1과 같은 same_dpb_size_output_or_nonoutput_flag는 VPS에 존재하는 layer_nonoutput_dpb_params_idx[i] 신택스 엘리먼트가 없음을 명시한다. 0과 같은 same_dpb_size_output_or_nonoutput_flag는 VPS에 존재하는 layer_nonoutput_dpb_params_idx[i] 신택스 엘리먼트가 있거나 없을 수 있음을 명시한다.
vps_sub_layer_dpb_params_present_flag는 VPS의 dpb_parameters( ) 신택스 구조에서 max_dec_pic_buffering_minus1[ ], max_num_reorder_pics[ ] 및 max_latency_increase_plus1[ ] 신택스 엘리먼트의 존재를 제어하는 데 사용된다. 존재하지 않을 때, vps_sub_dpb_params_info_present_flag는 0과 같은 것으로 추론된다.
1과 같은 dpb_size_only_flag[i]는 max_num_reorder_pics[ ] 및 max_latency_increase_plus1[ ] 신택스 엘리먼트가 VPS의 i번째 dpb_parameters( ) 신택스 구조에 존재하지 않음을 명시한다. 1과 같은 dpb_size_only_flag[i]는 max_num_reorder_pics[ ] 및 max_latency_increase_plus1[ ] 신택스 엘리먼트가 VPS의 i번째 dpb_parameters( ) 신택스에 존재할 수 있음을 명시한다.
dpb_max_temporal_id[i]는 DPB 파라미터가 VPS에서 i번째 dpb_parameters( ) 신택스 구조에 존재할 수 있는 최상위 서브계층 표현의 TemporalId를 명시한다. dpb_max_temporal_id[i]의 값은 0에서 vps_max_sub_layers_minus1까지의 범위(포함)에 있어야 한다. vps_max_sub_layers_minus1이 0과 같을 때, dpb_max_temporal_id[i]의 값은 0과 같은 것으로 추론된다. vps_max_sub_layers_minus1이 0보다 크고 vps_all_layers_same_num_sub_layers_flag가 1과 같을 때, dpb_max_temporal_id[i]의 값은 vps_max_sub_layers_minus1과 같은 것으로 추론된다.
layer_output_dpb_params_idx[i]는 OLS에서 출력 계층일 때 i번째 계층에 적용되는 dpb_parameters( ) 신택스 구조의 VPS에 있는 dpb_parameters( ) 신택스 구조 리스트에 대한 인덱스를 명시한다. 존재할 때, layer_output_dpb_params_idx[i]의 값은 0에서 vps_num_dpb_params - 1까지의 범위(포함)에 있어야 한다.
vps_independent_layer_flag[i]가 1과 같으면, 출력 계층일 때 i번째 계층에 적용되는 dpb_parameters( ) 신택스 구조는 상기 계층에 의해 참조되는 SPS에 존재하는 dpb_parameters( ) 신택스 구조이다.
그렇지 않으면, (vps_independent_layer_flag[i]가 0과 같음) 다음이 적용된다:
vps_num_dpb_params가 1과 같을 때, layer_output_dpb_params_idx[i]의 값은 0과 같은 것으로 추론된다.
layer_output_dpb_params_idx[i]의 값은 dpb_size_only_flag[ layer_output_dpb_params_idx[i] ]이 0과 같게 되도록 하는 것이 비트스트림 적합성의 요건이다.
layer_nonoutput_dpb_params_idx[i]는 OLS에서 비출력 계층일 때 i번째 계층에 적용되는 dpb_parameters( ) 신택스 구조의 VPS에 있는 dpb_parameters( ) 신택스 구조 리스트에 대한 인덱스를 명시한다. 존재할 때, layer_nonoutput_dpb_params_idx[i]의 값은 0에서 vps_num_dpb_params - 1까지의 범위(포함)에 있어야 한다.
same_dpb_size_output_or_nonoutput_flag가 1이면, 다음이 적용된다:
vps_independent_layer_flag[i]가 1과 같으면, 비출력 계층(non-output layer)일 때 i번째 계층에 적용되는 dpb_parameters( ) 신택스 구조는, 상기 계층에 의해 참조되는 SPS에 존재하는 dpb_parameters( ) 신택스 구조이다.
그렇지 않으면(vps_independent_layer_flag[i]는 0과 같음), layer_nonoutput_dpb_params_idx[i]의 값은 layer_output_dpb_params_idx[i]와 같은 것으로 추론된다.
그렇지 않으면(same_dpb_size_output_or_nonoutput_flag가 0과 같음), vps_num_dpb_params가 1과 같을 때, layer_output_dpb_params_idx[i]의 값은 0과 같은 것으로 추론된다.
0과 같은 vps_extension_flag는 vps_extension_data_flag 신택스 엘리먼트가 VPS RBSP 신택스 구조에 존재하지 않음을 명시한다. 1과 같은 vps_extension_flag는 VPS RBSP 신택스 구조에 존재하는 vps_extension_data_flag 신택스 엘리먼트가 있음을 명시한다.
vps_extension_data_flag는 임의의 값을 가질 수 있다. 그것의 존재와 가치는 이 사양의 이 버전에 명시된 프로필에 대한 디코더 적합성에 영향을 미치지 않는다. 이 사양의 이 버전을 따르는 디코더는 모든 vps_extension_data_flag 신택스 엘리먼트를 무시해야 한다.
SPS RBSP 시멘틱스는 다음과 같다.
SPS RBSP는 참조되기 이전에 디코딩 프로세스에서 사용할 수 있어야 하며, TemporalId가 0과 같은 적어도 하나의 액세스 유닛에 포함되거나 또는 외부 수단을 통해 제공되어야 하며, SPS RBSP를 포함하는 SPS NAL 유닛은 그것을 참조하는 PPS NAL 유닛의 최하위 nuh_layer_id 값과 같아야 한다.
CVS에서 sps_seq_parameter_set_id의 특정 값을 가진 모든 SPS NAL 유닛은 동일한 콘텐츠를 가져야 한다.
sps_decoding_parameter_set_id는 0보다 클 때, SPS에 의해 참조되는 DPS에 대한 dps_decoding_parameter_set_id의 값을 명시한다. sps_decoding_parameter_set_id가 0과 같을 때, SPS는 DPS를 참조하지 않고, SPS를 참조하는 각 CLVS를 디코딩할 때 DPS는 참조되지 않는다. sps_decoding_parameter_set_id의 값은 비트스트림에서 코딩된 픽처에 의해 참조되는 모든 SPS에서 동일해야 한다.
sps_video_parameter_set_id는 0보다 클 때 SPS에 의해 참조되는 VPS에 대한 vps_video_parameter_set_id의 값을 명시한다. sps_video_parameter_set_id가 0과 같을 때, SPS는 VPS를 참조하지 않고, SPS를 참조하는 각 CLVS를 디코딩할 때 VPS는 참조되지 않으며, GeneralLayerIdx[ nuh_layer_id ]의 값은 0과 같은 것으로 추론되고, vps_independent_layer_flag[ GeneralLayerIdx[ nuh_layer_id ] ]의 값은 1과 같은 것으로 추론된다.
vps_independent_layer_flag[ GeneralLayerIdx[ nuh_layer_id ] ]가 1과 같을 때, 특정 nuh_layer_id 값 nuhLayerId를 갖는 CLVS에 의해 참조되는 SPS는 nuhLayerId와 같은 nuh_layer_id를 가져야 한다.
sps_max_sub_layers_minus1 더하기 1은 SPS를 참조하는 각 CLVS에 존재할 수 있는 시간 서브계층의 최대 수를 명시한다. sps_max_sub_layers_minus1의 값은 0에서 vps_max_sub_layers_minus1까지의 범위(포함)에 있어야 한다.
sps_reserved_zero_4bits는 이 사양의 이 버전을 준수하는 비트스트림에서 0과 같아야 한다. sps_reserved_zero_4bits에 대한 다른 값은 ITU-T|ISO/IEC에서 향후 사용을 위해 예약되어 있다.
1과 같은 sps_ptl_dpb_present_flag는 profile_tier_level( ) 신택스 구조 및 dpb_parameters( ) 신택스 구조가 SPS에 존재함을 명시한다. 0과 같은 sps_ptl_dpb_present_flag는 profile_tier_level( ) 신택스 구조 및 dpb_parameters( ) 신택스 구조가 SPS에 존재하지 않음을 명시한다. sps_ptl_dpb_present_flag의 값은 vps_independent_layer_flag[ nuh_layer_id ]와 같아야 한다.
vps_independent_layer_flag[ GeneralLayerIdx[ nuh_layer_id ] ]가 1과 같으면, 변수 MaxDecPicBuffMinus1은 SPS에서 dpb_parameters( ) 신택스 구조의 max_dec_pic_buffering_minus1[ sps_max_sub_layers_minus1 ]와 같도록 설정된다. 그렇지 않으면, MaxDecPicBuffMinus1은 VPS에서 layer_nonoutput_dpb_params_idx[ GeneralLayerIdx[ nuh_layer_id ]]번째 dpb_parameters( ) 신택스 구조의 max_dec_pic_buffering_minus1[ sps_max_sub_layers_minus1 ]와 같아야 한다.
1과 같은 gdr_enabled_flag는 점진적 디코딩 리프레시(gradual decoding refresh, GDR) 픽처가 SPS를 참조하는 CLVS에 존재할 수 있음을 명시한다. 0과 같은 gdr_enabled_flag는 GDR 픽처가 SPS를 참조하는 CLVS에 존재하지 않음을 명시한다.
sps_sub_layer_dpb_params_flag는 SPS의 dpb_parameters( ) 신택스 구조에서 max_dec_pic_buffering_minus1[i], max_num_reorder_pics[i] 및 max_latency_increase_plus1[i] 신택스 엘리먼트의 존재를 제어하는 데 사용된다. 존재하지 않을 때, sps_sub_dpb_params_info_present_flag는 0과 같은 것으로 추론된다.
0과 같은 long_term_ref_pics_flag는 CLVS에서 임의의 코딩된 픽처의 인터 예측에 LTRP가 사용되지 않음을 명시한다. 1과 같은 long_term_ref_pics_flag는 LTRP가 CLVS에서 하나 이상의 코딩된 픽처의 인터 예측에 사용될 수 있음을 명시한다.
일반적인 프로필, 티어 및 레벨 시멘틱스는 다음과 같다.
profile_tier_level( ) 신택스 구조는 레벨 정보를 제공하고, 선택적으로 프로필, 티어, 서브 프로필(sub-profile) 및 일반 제약 정보(PT 정보로 표시됨)를 제공한다.
profile_tier_level( ) 신택스 구조가 DPS에 포함될 때, OlsInScope는 DPS를 참조하는 전체 비트스트림에서의 모든 계층을 포함하는 OLS이다. profile_tier_level( ) 신택스 구조가 VPS에 포함될 때, OlsInScope는 VPS에 의해 명시된 하나 이상의 OLS이다. profile_tier_level( ) 신택스 구조가 SPS에 포함될 때, OlsInScope는 SPS를 참조하는 계층 중 최하위 계층인 계층만을 포함하는 OLS이며, 독립 계층이어야 한다.
general_profile_idc는 VVC 표준의 부록(Annex) A에 명시된 바와 같이 OlsInScope가 준수하는 프로필을 나타낸다. 비트스트림은 부록 A에 명시된 값 이외의 general_profile_idc 값을 포함하지 않아야 한다. general_profile_idc의 다른 값은 ITU-T|ISO/IEC에 의해 향후 사용을 위해 예약된다.
general_tier_flag는 부록 A에 명시된 바와 같이 general_level_idc의 해석(interpretation)을 위한 티어 콘텍스트를 명시한다.
num_sub_profiles는 general_sub_profile_idc[i] 신택스 엘리먼트의 수를 명시한다.
general_sub_profile_idc[i]는 Recommendation ITU-T T.35에 명시된 바와 같이 등록된 i번째 상호 운용성 메타데이터(interoperability metadata)를 지시하며, 그 콘텐츠는 VVC 표준에 명시되어 있지 않다.
general_level_idc는 OlsInScope가 부록 A에 명시된 바와 같이 준수하는 레벨을 지시한다. 비트스트림은 부록 A에 명시된 값 이외의 general_level_idc 값을 포함하지 않아야 한다. general_level_idc의 다른 값은 ITU-T|ISO/IEC에서 향후 사용을 위해 예약되어 있다.
참고 1 - general_level_idc의 값이 클수록 더 높은 레벨을 지시한다. OlsInScope를 위해 DPS에서 시그널링된 최대 레벨은 OlsInScope 내에 포함된 CVS를 위해 SPS에서 시그널링된 레벨보다 높을 수 있다.
참고 2 - OlsInScope가 다수의 프로필을 준수할 때, general_profile_idc는 인코더에 의해 결정된 선호하는 디코딩된 결과 또는 선호하는 비트스트림 식별을 제공하는 프로필을 지시해야 한다(이 사양에 명시되지 않은 방식으로).
참고 3 - OlsInScope의 DPS와 CVS에 포함된 profile_tier_level( ) 신택스 구조가 서로 다른 프로필을 준수할 때, general_profile_idc와 level_idc는 OlsInScope를 디코딩할 수 있는 디코더에 대한 프로필과 레벨을 지시해야 한다.
1과 같은 sub_layer_level_present_flag[i]는 레벨 정보가 i과 같은 TemporalId를 갖는 서브 계층 표현을 위한 profile_tier_level( ) 신택스 구조에 존재함을 명시한다. 0과 같은 sub_layer_level_present_flag[i]는 레벨 정보가 i와 같은 TemporalId를 갖는 서브 계층 표현에 대한 profile_tier_level( ) 신택스 구조에 존재하지 않음을 명시한다.
ptl_alignment_zero_bits는 0과 같아야 한다.
신택스 엘리먼트 sub_layer_level_idc[i]의 시멘틱스는 존재하지 않는 값의 추론의 사양을 제외하고, 신택스 엘리먼트 general_level_idc와 동일하지만, TemporalId가 i와 같은 서브 계층 표현에 적용된다.
DPB 시멘틱스는 다음과 같다.
dpb_parameters(maxSubLayersMinus1, subLayerInfoFlag) 신택스 구조는 CVS의 각 CLVS에 대한 DPB 크기, 최대 픽처 재정렬 수, 및 최대 레이턴시에 대한 정보를 제공한다.
dpb_parameters( ) 신택스 구조가 VPS에 포함될 때, dpb_parameters( ) 신택스 구조가 적용되는 OLS는 VPS에 의해 명시된다. dpb_parameters( ) 신택스 구조가 SPS에 포함될 때, SPS를 참조하는 계층 중 최하위 계층인 계층만을 포함하는 OLS에 적용되며, 이는 독립 계층이어야 한다.
max_dec_pic_buffering_minus1[i] 더하기 1은 CVS의 각 CLVS에 대해, Htid가 i와 같을 때 픽처 저장 버퍼 단위로 디코딩된 픽처 버퍼의 최대 요구 크기를 명시한다. max_dec_pic_buffering_minus1[i]의 값은 0에서 MaxDpbSize - 1까지의 범위(포함)에 있어야 하며, 여기서 MaxDpbSize는 다른 곳에서 명시된 것과 같다. i가 0보다 클 때, max_dec_pic_buffering_minus1[i]는 max_dec_pic_buffering_minus1[ i - 1 ]보다 크거나 같아야 한다. max_dec_pic_buffering_minus1[i]이 0에서 maxSubLayersMinus1 - 1까지의 범위(포함)의 i에 대해 존재하지 않을 때, subLayerInfoFlag가 0과 같기 때문에 max_dec_pic_buffering_minus1[ maxSubLayersMinus1 ]과 같은 것으로 추론된다.
max_num_reorder_pics[i]는 CVS의 각 CLVS에 대해, Htid가 i와 같을 때 디코딩 순서에서 CLVS의 임의의 픽처에 선행하고 출력 순서에서 대응하는 픽처를 따를 수 있는 CLVS의 최대 허용 픽처 수를 명시한다. max_num_reorder_pics[i]의 값은 0에서 max_dec_pic_buffering_minus1[i]까지의 범위(포함)에 있어야 한다. i가 0보다 클 때, max_num_reorder_pics[i]는 max_num_reorder_pics[ i - 1 ]보다 크거나 같아야 한다. max_num_reorder_pics[i]가 0에서 maxSubLayersMinus1 - 1까지의 범위(포함)의 i에 대해 존재하지 않을 때, subLayerInfoFlag가 0과 같기 때문에 max_num_reorder_pics[ maxSubLayersMinus1 ]와 같은 것으로 추론된다.
0과 같지 않은 max_latency_increase_plus1[i]는 MaxLatencyPictures[i]의 값을 계산하는 데 사용되며, 이는 CVS의 각 CLVS에 대해, Htid가 i와 같을 때 CLVS의 임의의 픽처에 선행하고 출력 순서에서 대응하는 픽처를 따를 수 있는 CLVS의 최대 픽처 수를 명시한다.
max_latency_increase_plus1[i]이 0과 같지 않을 때, MaxLatencyPictures[i]의 값은 다음과 같이 명시된다:
MaxLatencyPictures[i] = max_num_reorder_pics[i] + max_latency_increase_ 플러스1[i] - 1
max_latency_increase_plus1[i]이 0과 같을 때, 대응하는 제한이 표시되지 않는다.
max_latency_increase_plus1[i]의 값은 0에서 232 - 2까지의 범위(포함)에 있어야 한다. max_latency_increase_plus1[i]이 0에서 maxSubLayersMinus1 - 1까지의 범위(포함)의 i에 대해 존재하지 않을 때, subLayerInfoFlag가 0과 같기 때문에 max_latency_increase_plus1[ maxSubLayersMinus1 ]과 같은 것으로 추론된다.
HRD 파라미터 시맨틱스는 일반적인 HRD 파라미터 시맨틱스를 포함한다.
일반적인 HRD 파라미터 시멘틱스는 다음과 같다.
general_hrd_parameters( ) 신택스 구조는 HRD 작동에 사용되는 HRD 파라미터를 제공한다.
num_ols_hrd_params_minus1 더하기 1은 general_hrd_parameters( ) 신택스 구조에 존재하는 ols_hrd_parameters( ) 신택스 구조의 수를 명시한다. num_ols_hrd_params_minus1의 값은 0에서 63까지의 범위(포함)에 있어야 한다. TotalNumOlss가 1보다 클 때, num_ols_hrd_params_minus1의 값이 0과 같은 것으로 추론된다.
hrd_cpb_cnt_minus1 더하기 1은 CVS의 비트스트림에서 대체 CPB 사양(alternative CPB specification)의 수를 명시한다. hrd_cpb_cnt_minus1의 값은 0에서 31까지의 범위(포함)에 있어야 한다.
hrd_max_temporal_id[i]는 HRD 파라미터가 i번째 layer_level_hrd_parameters( ) 신택스 구조에 포함되는 최상위 서브계층 표현의 TemporalId를 명시한다. hrd_max_temporal_id[i]의 값은 0에서 vps_max_sub_layers_minus1까지의 범위(포함)에 있어야 한다. vps_max_sub_layers_minus1이 0과 같을 때, hrd_max_temporal_id[i]의 값은 0과 같은 것으로 추론된다.
ols_hrd_idx[i]는 i번째 OLS에 적용되는 ols_hrd_parameters( ) 신택스 구조의 인덱스를 명시한다. ols_hrd_idx[[i]의 값은 0에서 num_ols_hrd_params_minus1까지의 범위(포함)에 있어야 한다. 존재하지 않을 때, ols_hrd_idx[[i]의 값은 0과 같은 것으로 추론된다.
참조 픽처 리스트 구조의 시멘틱스는 다음과 같다.
ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조는 SPS 또는 슬라이스 헤더에 존재할 수 있다. 신택스 구조가 슬라이스 헤더 또는 SPS에 포함되는지에 따라 다음이 적용된다:
- 슬라이스 헤더에 존재하면, ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조는 현재 픽처(슬라이스를 포함하는 픽처)의 참조 픽처 리스트 listIdx를 명시한다.
- 그렇지 않으면(SPS에 존재함), ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조는 참조 픽처 리스트 listIdx의 후보를 명시하고, 이 절의 나머지 부분에 명시된 시멘트틱스에서 "현재 픽처"라는 용어는, 1) SPS에 포함된 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조의 리스트에 대한 인덱스와 같은 ref_pic_list_idx[ listIdx ]를 포함하는 하나 이상의 슬라이스를 갖고, 2) SPS를 참조하는 CVS에 있는 각 픽처를 참조한다.
num_ref_entries[ listIdx ][ rplsIdx ]는 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조의 엔트리의 수를 명시한다. num_ref_entries[ listIdx ][ rplsIdx ]의 값은 0에서 MaxDecPicBuffMinus1 + 14까지의 범위(포함)에 있어야 한다.
VPS(704), SPS(706) 및 PPS(708)는 서로 다른 유형의 NAL(Network Abstraction Layer) 유닛에 포함된다. NAL 유닛은 뒤따를 데이터(예: 코딩된 비디오 데이터)의 유형의 지시(indication)를 포함하는 신택스 구조이다. NAL 유닛은 비디오 코딩 계층(video coding layer, VCL)과 비-VCL NAL 유닛으로 분류된다. VCL NAL 유닛은 비디오 픽처의 샘플 값을 나타내는 데이터를 포함하고, 비-VCL NAL 유닛은 파라미터 세트(여러 VCL NAL 유닛에 적용할 수 있는 중요한 데이터)와 같은 관련 추가 정보 및 보충(supplemental) 향상 정보(디코딩된 비디오 신호의 사용성을 향상시킬 수 있지만 비디오 픽처의 샘플 값을 디코딩하는 데 필요하지 않은 타이밍 정보 및 기타 추가 데이터)를 포함한다.
일 실시예에서, VPS(704)는 VPS NAL 유닛으로 명시된 비-VCL NAL 유닛에 포함한다. 따라서, VPS NAL 유닛은 VPS NUT를 가진다. 일 실시예에서, SPS(706)는 SPS NAL 유닛으로 명시된 비-VCL NAL 유닛이다. 따라서 SPS NAL 유닛은 SPS NUT를 가진다. 일 실시예에서, PPS(708)는 PPS NAL 유닛으로 명시된 비-VCL NAL 유닛에 포함한다. 따라서, PPS NAL 유닛은 PPS NUT를 가진다.
슬라이스 헤더(712)는 코딩된 픽처(예: 픽처(725))의 모든 슬라이스에 적용되는 신택스 엘리먼트를 포함하는 신택스 구조이다. 일 실시예에서, 슬라이스 헤더(712)는 VCL NAL에 있다.
이미지 데이터(720)는 인터 예측, 인트라 예측, 또는 인터 계층 예측에 따라 인코딩된 비디오 데이터 뿐만 아니라 대응하는 변환 및 양자화된 잔차 데이터를 포함한다. 도 7에 도시된 바와 같이, 이미지 데이터(720)는 하나 이상의 OLS(721)를 포함한다. 하나 이상의 OLS(721)는 도 6의 OLS 1, OLS 2 및 OLS 3과 유사하다. 각각의 OLS(721)는 하나 이상의 계층(723)을 포함한다. 계층(723)은 도 6의 계층(631-635)과 유사하다. 계층(723) 각각은 하나 이상의 픽처(725)를 포함한다. 픽처(725)는 도 6의 픽처(615-618, 611-614, 641-644, 651-654, 661-664)와 유사하다.
각각의 픽처(725)는 모노크롬 포맷의 루마 샘플 어레이 또는 4:2:0, 4:2:2 및 4:4:4 컬러 포맷의 루마 샘플의 어레이 및 2개의 대응하는 크로마 샘플 어레이이다. 픽처(725)는 프레임 또는 필드일 수 있다. 그러나, 하나의 CVS(예: CVS(690))에서, 모든 픽처(725)는 프레임이거나 모든 픽처(725)는 필드이다. CVS(690)는 비디오 비트스트림(600)의 모든 코딩된 계층 비디오 시퀀스(coded layer video sequence, CLVS)에 대한 코딩된 비디오 시퀀스이다. 특히, CVS(690) 및 CLVS는 비디오 비트스트림(600)이 단일 계층을 포함할 때 동일하다. CVS(690) 및 CLVS는 비디오 비트스트림(600)이 (예: 도 5 및 6에 도시된 바와 같이) 다수의 계층을 포함할 때만 상이하다.
각 픽처(725)는 하나 이상의 슬라이스(727)를 포함한다. 슬라이스(727)는 픽처(예: 픽처 725)의 타일 내 완전한 타일의 정수 또는 연속적인 완전한 CTU 행의 정수이다. 각 슬라이스(727)는 단일 NAL 유닛(예: VCL NAL 유닛)에 배타적으로 포함한다. 타일(도시되지 않음)은 픽처(예: 픽처 725)의 특정 타일 열 및 특정 타일 행 내의 CTU의 직사각형 영역이다. CTU(도시되지 않음)는 루마 샘플의 CTB, 또는 3개의 샘플 어레이를 갖는 픽처의 크로마 샘플의 2개의 대응하는 CTB, 또는 3개의 개별 컬러 평면 및 샘플을 코딩하는 데 사용되는 신택스 구조를 사용하여 코딩된 픽처 또는 모노크롬 픽처의 샘플의 CTB이다. CTB(도시되지 않음)는 컴포넌트를 CTB로 분할하는 것이 파티셔닝(partitioning)이 되도록 N의 일부 값에 대한 샘플의 N×N 블록이다. 블록(도시되지 않음)은 샘플(예: 픽셀)의 M×N(M-열 × N-행) 어레이 또는 변환 계수의 M×N 어레이이다.
픽처(725) 및 그의 슬라이스(727)는 인코딩 또는 디코딩되는 이미지 또는 비디오와 연관된 데이터를 포함한다. 따라서, 픽처(725) 및 그의 슬라이스(727)는 비트스트림(700)에서 운반되는 페이로드(payload) 또는 데이터로 간단히 지칭될 수 있다.
당업자는 비트스트림(700)이 실제 애플리케이션에서 다른 파라미터 및 정보를 포함할 수 있음을 이해할 것이다.
서브 비트스트림(sub-bitstream)(701)은 서브 비트스트림 추출 프로세스(703)에 따라 비트스트림(700)으로부터 추출될 수 있다. 서브 비트스트림 추출 프로세스(703)는 타깃 세트에 포함된 NAL 유닛을 포함하는 출력 서브 비트스트림(701)을 생성하는 타깃 세트의 일부가 아닌 비트스트림(700)으로부터 NAL 유닛을 제거하는 특정 메커니즘이다. 서브 비트스트림 추출 프로세스(703)는 사용자 행동/요청(behavior/request)에 기반하여, 인코더 또는 비트스트림(700)을 동적으로 변경하도록 구성된 연관된 슬라이서(slicer)에 의해 수행될 수 있다.
SPS(706)는 i번째 OLS가 단일 계층(예: 도 6의 OLS 3)만을 포함할 때 i번째 OLS(784)에 대한 profile_tier_level( )을 포함하기 때문에, VPS(704)는 추출 프로세스(703) 동안 제거될 수 있다. 즉, i번째 OLS(784)에 대한 동일한 profile_tier_level( )이 SPS(706)에도 존재하기 때문에 서브 비트스트림(701)은 서브 비트스트림(701)에서 VPS(704)를 포함할 필요가 없다. 따라서, 디코더는 i번째 OLS가 단일 계층만을 포함할 때 SPS(706)로부터 i번째 OLS(784)에 대한 profile_tier_level( )을 획득할 수 있다.
도 8은 비디오 디코더(예: 비디오 디코더(400))에 의해 구현된 디코딩 방법(1000)의 실시예이다. 방법(1000)은 비트스트림이 비디오 인코더(예: 비디오 인코더(300))로부터 직접적으로 또는 간접적으로 수신된 후에 수행될 수도 있다. 방법(1000)은 출력 계층 세트(output layer set, OLS)가 단일 계층만을 포함할 때 프로필, 티어 및 레벨(profile, tier, and level, PTL) 파라미터가 시퀀스 파라미터 세트(sequence parameter set, SPS)에 포함되는 것을 보장함으로써 디코딩 프로세스를 개선한다. SPS는 단일 계층을 가지는 OLS에 대한 PTL 파라미터를 포함하기 때문에, 비디오 파라미터 세트(video parameter set, VPS)가 비트스트림으로부터 제거될 수 있으며, 이는 중복성을 감소시키고 코딩 효율을 증가시킨다. 따라서, 비디오 코딩의 코더/디코더(일명 "코덱")는 현재 코덱에 비해 향상된다. 실질적으로, 개선된 비디오 코딩 프로세스는 비디오가 송신, 수신 및/또는 시청될 때 사용자에게 더 나은 사용자 경험을 제공한다.
블록(802)에서, 비디오 디코더는 단 하나의 계층(예: OLS 3)을 갖는 출력 계층 세트(output layer set, OLS)에 대해 프로필 티어 레벨(profile tier level, PTL) 신택스 구조(예: i-번째 OLS 3에 대한 profile_tier_level( ))를 갖는 시퀀스 파라미터 세트(예: SPS(706))를 갖는 서브 비트스트림(예: 서브 비트스트림(701))을 수신한다.
일 실시예에서, PTL 신택스 구조는 profile_tier_level( )로 지정된다. 일 실시예에서, 단 하나의 계층은 i번째 계층이고, 여기서 OLS는 i번째 OLS이다. 일 실시예에서, PTL 신택스 구조는 SPS에서 i번째 profile_tier_level( ) 신택스 구조에 존재한다. 일 실시예에서, 서브 비트스트림은 비디오 파라미터 세트(VPS(704))를 포함하지 않는다. 즉, VPS는 추출 프로세스(703)의 일부로서 제거되었다.
블록(804)에서, 비디오 디코더는 단 하나의 계층을 갖는 OLS에 기반하여 OLS의 계층의 수를 1과 같게 설정한다. 일 실시예에서, OLS의 계층의 수는 NumLayersInOls[i]로 지정된 변수이다. 일 실시예에서, NumLayersInOls[i]로 지정된 변수는 비디오 디코더에 의해 도출된다. 즉, NumLayersInOls[i]로 지정된 변수는 서브 비트스트림(701)에서 시그널링되지 않는다.
블록(806)에서, 비디오 디코더는 OLS의 계층의 수가 1과 같게 설정되었을 때 SPS로부터 하나의 계층을 갖는 OLS에 대한 PTL 신택스 구조를 획득한다. 일 실시예에서, SPS는 OLS의 단 하나의 계층에 의해 참조된다.
블록(808)에서, 비디오 디코더는 PTL 신택스 구조를 사용하여 단 하나의 계층으로부터 픽처(예: 픽처(725))를 디코딩하여, 디코딩된 픽처를 획득한다.
픽처가 디코딩되면, 전자 디바이스(예: 스마트폰, 태블릿, 랩톱, 개인용 컴퓨터 등)의 디스플레이 또는 화면에서 사용자에게 디스플레이할 이미지 또는 비디오 시퀀스를 생성하거나 생성하는 데 픽처가 사용될 수 있다.
도 9는 비디오 인코더(예: 비디오 인코더(300))에 의해 구현된 비디오 비트스트림을 인코딩하는 방법(900)의 실시예이다. 방법(900)은 (예: 비디오로부터의) 픽처가 비디오 비트스트림으로 인코딩된 다음 비디오 디코더(예: 비디오 디코더(400))를 향해 전송되어야 할 때 수행될 수도 있다. 방법(900)은 출력 계층 세트(output layer set, OLS)가 단일 계층만을 포함할 때 프로필, 티어 및 레벨(profile, tier, and level, PTL) 파라미터가 시퀀스 파라미터 세트(sequence parameter set, SPS)에 포함되는 것을 보장함으로써 인코딩 프로세스를 개선한다. SPS는 단일 계층을갖는 OLS에 대한 PTL 파라미터를 포함하기 때문에, 비디오 파라미터 세트(video parameter set, VPS)가 비트스트림으로부터 제거될 수 있으며, 이는 중복성을 감소시키고 코딩 효율을 증가시킨다. 따라서, 비디오 코딩의 코더/디코더(일명 "코덱")는 현재 코덱에 비해 향상된다. 실질적으로, 개선된 비디오 코딩 프로세스는 비디오가 송신, 수신 및/또는 시청될 때 사용자에게 더 나은 사용자 경험을 제공한다.
블록(902)에서, 비디오 인코더는 비디오 파라미터 세트(예: VPS(704)) 및 시퀀스 파라미터 세트(예: SPS(706))를 생성한다. VPS는 모든 출력 계층 세트(예: PTL 신택스 구조(780))에 대한 프로필 계층 레벨(profile tier level, PTL) 신택스 구조의 리스트를 포함한다. SPS는 단 하나의 계층을 갖는 각 OLS에 대한 PTL 신택스 구조(예: i번째 OLS(784)에 대한 profile_tier_level)를 포함한다. 예를 들어, SPS는 도 6의 OLS 3에 대한 PTL 신택스 구조를 포함하며, 도 7에서 OLS 3에 대한 profile_tier_level( )로 지정된다. SPS는 2개 이상의 계층을 갖는 임의의 OLS에 대한 PTL 신택스 구조를 포함하지 않는다. 예를 들어, SPS는 도 6의 OLS 1 및 OLS 2에 대한 PTL 신택스 구조를 포함하지 않으며, 이는 도 7에서, OLS 2에 대한 profile_tier_level( ) 및 OLS 3에 대한 profile_tier_level( )으로 지정된다.
일 실시예에서, VPS는 PTL 신택스 구조의 리스트에 대한 인덱스를 포함하고, 여기서 인덱스는 vps_ols_ptl_idx[i]로 지정된다. 일 실시예에서, vps_ols_ptl_idx[i]의 값은 0에서 VPS의 PTL 신택스 구조의 총 수까지의 범위(포함)에 있다. 일 실시예에서, VPS는 vps_num_ptls_minus1을 포함하고, 여기서 vps_num_ptls_minus1 더하기 1은 PTL 신택스 구조의 총 수를 명시한다.
블록(904)에서, 비디오 인코더는 VPS 및 SPS를 비디오 비트스트림으로 인코딩한다. 블록(906)에서, 비디오 인코더는 비디오 디코더를 향한 통신을 위해 비디오 비트스트림을 저장한다. 일 실시예에서, 방법(900)은 비트스트림(예: 비트스트림(700))으로부터 서브 비트스트림(예: 서브 비트스트림(701))을 추출하는 단계를 더 포함한다. 위에서 설명한 바와 같이, 추출 프로세스(703)는 SPS를 유지하지만 VPS를 제거한다. 즉, 서브 비트스트림은 비트스트림으로부터의 SPS를 포함하지만 비트스트림으로부터의 VPS는 포함하지 않는다.
비디오 비트스트림과 같이, 서브 비트스트림은 비디오 디코더를 향한 통신을 위해 메모리에 저장될 수 있다. 일 실시예에서, 비디오 비트스트림 및/또는 서브 비트스트림은 비디오 디코더를 향해 전송된다. 비디오 디코더에 의해 수신되면, 인코딩된 비디오 비트스트림 및/또는 인코딩된 서브 비트스트림은 (예: 위에서 설명된 바와 같이) 디코딩되어, 전자 디바이스(예: 스마트폰, 태블릿, 노트북, 개인용 컴퓨터 등)의 디스플레이 또는 화면 상의 사용자에게 디스플레이하기 위한 이미지 또는 비디오 시퀀스를 생성하거나 생산할 수 있다.
추가 및/또는 보충 세부 사항은 아래에 제공된다.
일반적인 디코딩 프로세스는 다음과 같다.
이 프로세스에 대한 입력은 비트스트림 BitstreamToDecode이다. 이 프로세스의 출력은 디코딩된 픽처 리스트이다.
디코딩 프로세스는 명시된 프로필 및 레벨을 준수하는 모든 디코더가 대응하는 프로필 및 레벨을 준수하는 비트스트림에 대해 대응하는 프로필과 연관된 디코딩 프로세스를 호출할 때 수치적으로 동일한 잘린(identical cropped) 디코딩된 출력 픽처를 생성하도록 명시된다. 여기에 설명된 프로세스에 의해 생성된 것과 동일한 잘린 디코딩된 출력 픽처를 생성하는 모든 디코딩 프로세스(명시된 바와 같이 올바른 출력 순서 또는 출력 타이밍으로)는 VVC 표준의 디코딩 프로세스 요건을 준수한다.
비트스트림의 각 IRAP AU에 대해 다음이 적용된다.
- AU가 디코딩 순서에서 비트스트림의 제1 AU이고, 각 픽처가 IDR(Instantaneous Decoding Refresh) 픽처이거나 또는 각 픽처가 디코딩 순서에서 시퀀스 NAL 유닛의 끝을 뒤따르는 계층의 제1 픽처이면, 변수 NoIncorrectPicOutputFlag는 1과 같게 설정된다.
- 그렇지 않고, 이 사양에 명시되지 않은 일부 외부 수단이 변수 HandleCraAsCvsStartFlag를 AU에 대한 값으로 설정하는 데 사용할 수 있으면, HandleCraAsCvsStartFlag는 외부 수단에 의해 제공된 값과 같게 설정되고 NoIncorrectPicOutputFlag는 HandleCraAsCvsStartFlag와 같게 설정된다.
- 그렇지 않으면, HandleCraAsCvsStartFlag 및 NoIncorrectPicOutputFlag가 모두 0과 같게 설정된다.
비트스트림의 각 GDR AU에 대해 다음이 적용된다.
- AU가 디코딩 순서에서 비트스트림의 제1 AU이거나 각 픽처가 디코딩 순서에서 시퀀스 NAL 유닛의 끝을 뒤따르는 계층의 제1 픽처이면, 변수 NoIncorrectPicOutputFlag는 1과 같게 설정된다.
- 그렇지 않고, 이 사양에 명시되지 않은 일부 외부 수단이 변수 HandleGdrAsCvsStartFlag를 AU에 대한 값으로 설정하는 데 사용할 수 있으면, HandleGdrAsCvsStartFlag는 외부 수단에 의해 제공된 값과 같게 설정되고 NoIncorrectPicOutputFlag는 HandleGdrAsCvsStartFlag와 같게 설정된다.
- 그렇지 않으면 HandleGdrAsCvsStartFlag 및 NoIncorrectPicOutputFlag가 모두 0과 같게 설정된다.
참고 - IRAP 픽처와 GDR 픽처 모두에 대해 위의 작동은 비트스트림에서 CVS를 식별하는 데 필요하다.
8.1.2 절은 BitstreamToDecode의 각 코딩된 픽처에 대해 디코딩 순서로 반복적으로 호출된다.
참조 픽처 리스트 구성을 위한 디코딩 프로세스는 다음과 같다.
이 프로세스는 비-IDR 픽처의 각 슬라이스에 대한 디코딩 프로세스의 시작 부분에서 호출된다.
참조 픽처는 참조 인덱스를 통해 주소가 지정된다(addressed). 참조 인덱스는 참조 픽처 리스트에 대한 인덱스이다. I 슬라이스를 디코딩할 때, 슬라이스 데이터의 디코딩에 참조 픽처 리스트가 사용되지 않는다. P 슬라이스를 디코딩할 때, 참조 픽처 리스트 0(즉, RefPicList[0])만이 슬라이스 데이터의 디코딩에 사용된다. B 슬라이스를 디코딩할 때, 참조 픽처 리스트 0과 참조 픽처 리스트 1(즉, RefPicList[1])이 슬라이스 데이터의 디코딩에 사용된다.
다음 제약이 적용되는 것이 비트스트림 적합성의 요건이다.
- 0 또는 1과 같은 각 i에 대해, num_ref_entries[i][ RplsIdx[i] ]는 NumRefIdxActive[i]보다 작지 않아야 한다.
- RefPicList[0] 또는 RefPicList[1]의 각 활성 엔트리에 의해 참조되는 픽처는 DPB에 있어야 하며, 현재 픽처의 TemporalId보다 작거나 같아야 한다.
- RefPicList[0] 또는 RefPicList[1]의 각 엔트리에 의해 참조되는 픽처는 현재 픽처가 아니어야 하며, 0과 같은 non_reference_picture_flag를 가져야 한다.
- 픽처의 슬라이스의 RefPicList[0] 또는 RefPicList[1]에 있는 단기 참조 픽처(short-term reference picture. STRP) 엔트리 및 동일한 픽처의 동일한 슬라이스 또는 상이한 슬라이스의 RefPicList[0] 또는 RefPicList[1]에 있는 LTRP 엔트리는 동일한 픽처를 참조해서는 안 된다.
- 현재 픽처의 PicOrderCntVal과 엔트리에 의해 참조되는 픽처의 PicOrderCntVal 사이의 차이가 224보다 크거나 같은 RefPicList[0] 또는 RefPicList[1]에는 LTRP 엔트리가 없어야 한다.
- setOfRefPics를 현재 픽처와 동일한 nuh_layer_id를 갖는 RefPicList[0]의 모든 엔트리와 현재 픽처와 동일한 nuh_layer_id를 갖는 RefPicList[1]의 모든 엔트리가 참조하는 고유한 픽처의 세트라고 한다. setOfRefPics에 있는 픽처의 수는 MaxDecPicBuffMinus1보다 작거나 같아야 하고, setOfRefPics는 픽처의 모든 슬라이스에 대해 동일해야 한다.
- 현재 픽처가 STSA(Step-wise Temporal Sub-layer Access) 픽처일 때, 현재 픽처와 동일한 TemporalId를 갖는 RefPicList[0] 또는 RefPicList[1]에 활성 엔트리가 없어야 한다.
현재 픽처가 디코딩 순서에서, 현재 픽처와 동일한 TemporalId를 갖는 STSA 픽처를 뒤따르는 픽처일 때, 디코딩 순서에서 STSA 픽처에 선행하는 RefPicList[0] 또는 RefPicList[1]에 활성 엔트리로서 포함된 현재 픽처와 동일한 TemporalId를 갖는 픽처는 존재하지 않아야 한다.
- 현재 픽처의 슬라이스의 RefPicList[0] 또는 RefPicList[1]에 있는 각 ILRP 엔트리에 의해 참조되는 픽처는 현재 픽처와 동일한 액세스 유닛에 있어야 한다.
- 현재 픽처 슬라이스의 RefPicList[0] 또는 RefPicList[1]에 있는 각 ILRP 엔트리에 의해 참조되는 픽처는 DPB에 있어야 하며, 현재 픽처의 것보다 작은 nuh_layer_id를 가져야 한다.
- 슬라이스의 RefPicList[0] 또는 RefPicList[1]에 있는 각 ILRP 엔트리는 활성 엔트리이어야 한다.
VVC 표준의 C.1 절에 있는 HRD 일반 측면은 다음을 포함한다.
이 부록은 가상 참조 디코더(hypothetical reference decoder, HRD)와 비트스트림 및 디코더 적합성을 확인하기 위한 HRD 사용을 명시한다.
holeBitstream으로 마킹된(marked), 전체 비트스트림이라고 하는 비트스트림의 적합성을 확인하려면 비트스트림 적합성 테스트 세트가 필요하다. 비트스트림 적합성 테스트 세트는 VPS에 의해 명시된 각 OLS의 각 OP의 적합성을 테스트하기 위한 것이다.
각 테스트에 대해 다음 순서화된 단계가 나열된 순서대로 적용되고 이 절에서 이러한 단계 다음에 설명된 프로세스가 적용된다.
1. targetOp로 표시된 테스트 중인 작동 포인트는 OLS 인덱스 opOlsIdx와 최상위 TemporalId 값 opTid를 가진 타깃 OLS를 선택하는 것에 의해 선택된다. opOlsIdx의 값은 0에서 TotalNumOlss - 1까지의 범위(포함)에 있다. opTid의 값은 0에서 vps_max_sub_layers_minus1까지의 범위(포함)에 있다. opOlsIdx 및 opTid의 선택된 값의 각 쌍은 wentireBitstream, opOlsIdx 및 opTid를 입력으로 사용하는 C.6절에 명시된 서브 비트스트림 추출 프로세스를 호출하는 것에 의해 출력인 서브 비트스트림이 다음 조건을 충족하도록 해야 한다.
- BitstreamToDecode의 LayerIdInOls[ opOlsIdx ]에 있는 각각의 nuh_layer_id 값과 같은 nuh_layer_id를 갖는 VCL NAL 유닛이 하나 이상 있다.
- BitstreamToDecode에서 TemporalId가 opTid와 같은 VCL NAL 유닛이 하나 이상 있다.
2. targetOp의 계층이 entireBitstream의 모든 계층을 포함하고 opTid가 entireBitstream의 모든 NAL 유닛 중 최상위 TemporalId 값보다 크면, BitstreamToDecode는 entireBitstream과 같게 설정된다. 그렇지 않으면, BitstreamToDecode는 입력으로 entireBitstream, opOlsIdx 및 opTid를 사용하여 C.6 절에 명시된 서브 비트스트림 추출 프로세스를 호출하는 것에 의해 출력으로 설정된다.
3. TargetOlsIdx 및 Htid의 값은 각각 targetOp의 opOlsIdx 및 opTid와 같게 설정된다.
4. ScIdx 값이 선택된다. 선택된 ScIdx는 0에서 hrd_cpb_cnt_minus1까지의 범위(포함)에 있어야 한다.
5. TargetOlsIdx에 적용 가능한 버퍼링 주기(buffering period) SEI 메시지(TargetLayerBitstream에 있거나 이 사양에 명시되지 않은 외부 수단을 통해 사용 가능)와 관련된 BitstreamToDecode의 액세스 유닛은 HRD 초기화 포인트(initialization point)로 선택되고, 타깃 OLS에서 각 계층의 액세스 유닛 0이라고 지칭된다.
6. BitstreamToDecode에 적용할 수 있는 ols_hrd_parameters( ) 신택스 구조와 sub_layer_hrd_parameters( ) 신택스 구조는 다음과 같이 선택된다:
- VPS의 ols_hrd_idx[ TargetOlsIdx ]번째 ols_hrd_parameters( ) 신택스 구조(또는 이 사양에 명시되지 않은 외부 수단을 통해 제공됨)가 선택된다.
- 선택된 ols_hrd_parameters( ) 신택스 구조 내에서, BitstreamToDecode가 Type I 비트스트림이면, 조건 "if(general_vcl_hrd_params_present_flag)" 바로 다음에 오는 sub_layer_hrd_parameters( Htid ) 신택스 구조가 선택되고, 변수 NalHrdModeFlag는 0과 같게 설정되며; 그렇지 않으면(BitstreamToDecode가 Type II 비트스트림임), 조건 "if(general_vcl_hrd_params_present_flag)" (이 경우 변수 NalHrdModeFlag가 0과 같게 설정됨) 또는 조건 "if(general_nal_present_hrd_params)"(이 경우 변수 NalHrdModeFlag가 1과 같게 설정됨) 바로 다음에 오는 sub_layer_hrd_parameters( Htid ) 신택스 구조가 선택된다. BitstreamToDecode가 Type II 비트스트림이고 NalHrdModeFlag가 0과 같을 때, 필러(filler) 데이터 NAL 유닛을 제외한 모든 비-VCL NAL 유닛 및 NAL 유닛 스트림(부록 B에 명시된 바와 같이)으로부터 바이트 스트림을 형성하는 모든 leading_zero_8bits, zero_byte, start_code_prefix_one_3bytes 및 trailing_zero_8bits syntax 엘리먼트는 존재할때, BitstreamToDecode으로부터 폐기되고, 나머지 비트스트림은 BitstreamToDecode에 할당된다.
7. Decoding_unit_hrd_params_present_flag가 1과 같을 때, CPB는 액세스 유닛 레벨(변수 DecodingUnitHrdFlag가 0과 같게 설정된 경우) 또는 디코딩 유닛 레벨(변수 DecodingUnitHrdFlag가 1과 같게 설정된 경우)에서 작동하도록 스케줄링된다. 그렇지 않으면, DecodingUnitHrdFlag는 0과 같게 설정되고 CPB는 액세스 유닛 레벨에서 작동하도록 스케줄링된다.
8. 액세스 유닛 0부터 시작하는 BitstreamToDecode의 각 액세스 유닛에 대해, 액세스 유닛과 연관되고 TargetOlsIdx에 적용되는 버퍼링 주기 SEI 메시지(BitstreamToDecode에 존재하거나 이 사양에 명시되지 않은 외부 수단을 통해 사용 가능함)가 선택되고, 액세스 유닛과 연관되고 TargetOlsIdx에 적용되는 픽처 타이밍 SEI 메시지(BitstreamToDecode에 존재하거나 이 사양에서 명시되지 않은 외부 수단을 통해 사용 가능함)가 선택되며, DecodingUnitHrdFlag가 1과 같고 decoding_unit_cpb_params_in_pic_timing_sei_flag가 0과 같을 때, 액세스 유닛의 디코딩 유닛과 연관되고 TargetOlsIdx에 적용되는 디코딩 유닛 정보 SEI 메시지(BitstreamToDecode에 존재하거나 이 사양에 명시되지 않은 외부 수단을 통해 사용 가능함)가 선택된다.
각 적합성 테스트는 위의 각 단계에서 하나의 옵션 조합으로 구성된다. 단계에 대해 둘 이상의 옵션이 있을 때, 특정 적합성 테스트에 대해 단 하나의 옵션이 선택된다. 모든 단계의 가능한 모든 조합은 전체 적합성 테스트 세트를 형성한다. 테스트 중인 각 작동 포인트에 대해, 수행될 비트스트림 적합성 테스트의 수는 n0 * n1 * n2 * n3과 같으며, 여기서 n0, n1, n2 및 n3의 값은 다음과 같이 명시된다:
- n1은 hrd_cpb_cnt_minus1 + 1과 같다.
- n1은 버퍼링 주기 SEI 메시지와 연관된 BitstreamToDecode의 액세스 유닛의 수이다.
- n2는 다음과 같이 도출된다:
-
BitstreamToDecode가 Type I bitstream이면, n0는 1과 같다.
-
그렇지 않으면(BitstreamToDecode가 Type II bitstream임), n0는 2와 같다.
- n3는 다음과 같이 도출된다:
-
decoding_unit_hrd_params_present_flag가 0과 같으면, n3는 1과 같다.
-
그렇지 않으면, n3는 2와 같다.
HRD는 비트스트림 추출기(선택적으로 존재), 코딩된 픽처 버퍼(coded picture buffer, CPB), 즉시(instantaneous) 디코딩 프로세스, 개념적으로 각 계층에 대한 서브 DPB를 포함하는 디코딩된 픽처 버퍼(decoded picture buffer, DPB) 및 출력 크롭핑(output cropping)을 포함한다.
각 비트스트림 적합성 테스트에 대해, CPB 크기(비트 수)는 7.4.5.2절에 명시된 바와 같이 CpbSize[ Htid ][ ScIdx ]이며, 여기서 ScIdx 및 HRD 파라미터는 이 절에서 위에서 명시되며, 각 계층에 대한 DPB 파라미터 max_dec_pic_buffering_minus1[ Htid ], max_num_reorder_pics[ Htid ], 및 MaxLatencyPictures[ Htid ]는, 계층이 독립 계층인지 여부와 계층이 타깃 OLS의 출력 계층인지 여부에 따라 계층에 적용되는 dpb_parameters( ) 신택스 구조에서 발견되거나 그로부터 도출된다.
HRD는 다음과 같이 작동된다.
- HRD는 디코딩 유닛 0에서 초기화되며, CPB와 DPB의 각 서브 DPB가 모두 비어 있도록 설정된다(각 서브 DPB에 대한 서브 DPB 충만도(fullness)는 0과 같게 설정됨).
참고 - 초기화 후, HRD는 후속 버퍼링 주기 SEI 메시지에 의해 다시 초기화되지 않는다.
- 명시된 도착 스케줄(arrival schedule)에 따라 각 CPB로 유입되는(flow) 디코딩 유닛과 연관된 데이터는 가상 스트림 스케줄러(hypothetical stream scheduler, HSS)에 의해 전달된다.
- 각 디코딩 유닛과 연관된 데이터는 디코딩 유닛의 CPB 제거 시점에서 즉시 디코딩 프로세스에 의해 즉시에 제거 및 디코딩된다.
- 각 디코딩된 픽처는 DPB에 배치된다.
- 디코딩된 픽처는 인터 예측 참조에 더 이상 필요하지 않고 출력에 더 이상 필요하지 않을 때, DPB로부터 제거된다.
디코딩된 픽처 버퍼의 작동이 제공된다.
이 절의 사양은 C.1 절에 명시된 바와 같이 선택된 각 디코딩 픽처 버퍼(decoded picture buffer, DPB) 파라미터 세트에 독립적으로 적용된다.
디코딩된 픽처 버퍼는 개념적으로 서브 DPB로 구성되며, 각 서브 DPB는 한 계층의 디코딩된 픽처를 저장하기 위한 픽처 저장 버퍼를 포함한다. 각각의 픽처 저장 버퍼는 "참조용으로 사용됨"으로 마킹되거나 향후 출력을 위해 보유되는 디코딩된 픽처를 포함할 수 있다. C3.2, C3.3 및 C3.4 절에 명시된 프로세스는 아래 명시된 바와 같이 순차적으로 적용되며, OLS의 최하위 계층부터 시작하여 OLS에서 계층의 nuh_layer_id 값이 증가하는 순서로 각 계층에 대해 독립적으로 적용된다. 이러한 프로세스가 특정 계층에 적용될 때, 특정 계층의 서브 DPB만 영향을 받는다. 이러한 프로세스의 설명에서, DPB는 특정 계층에 대한 서브 DPB를 의미하고 특정 계층은 현재 계층이라고 지칭된다.
참고 - 출력 타이밍 DPB의 작동에서, 동일한 액세스 유닛에서 PicOutputFlag가 1인 디코딩된 픽처는 디코딩된 픽처의 nuh_layer_id 값의 오름차순으로 연속적으로 출력된다.
픽처 n 및 현재 픽처가 nuh_layer_id의 특정 값에 대한 액세스 유닛 n의 코딩된 픽처 또는 디코딩된 픽처라고 하며, 여기서 n은 음이 아닌 정수이다.
현재 픽처를 디코딩하기 전에 DPB로부터 픽처를 제거하는 방법이 설명된다.
현재 픽처의 디코딩 전(그러나 현재 픽처의 제1 슬라이스의 슬라이스 헤더를 파싱한(parsing) 후) DPB로부터 픽처를 제거하는 것은 액세스 유닛 n(현재 픽처를 포함)의 제1 디코딩 유닛의 CPB 제거 시간에 즉시 발생하며, 다음과 같이 진행된다:
- 8.3.2절에 명시된 참조 픽처 리스트 구성을 위한 디코딩 프로세스가 호출되고, 8.3.3절에 명시된 참조 픽처 마킹을 위한 디코딩 프로세스가 호출된다.
- 현재 AU가 AU 0이 아닌 CVSS AU일 때, 다음과 같은 순서화된 단계가 적용된다:
1. 변수 NoOutputOfPriorPicsFlag는 다음과 같이 테스트 중인 디코더에 대해 도출된다:
- 현재 AU에서 임의의 픽처에 대해 도출된, pic_width_max_in_luma_samples, pic_height_max_in_luma_samples, chroma_format_idc, separate_colour_plane_flag, bit_depth_luma_minus8, bit_depth_chroma_minus8 또는 max_dec_pic_buffering_minus1 [Htid]의 값은, 각각 동일한 CLVS의 이전 픽처에 대해 도출된 pic_width_in_luma_samples, pic_height_in_luma_samples, chroma_format_idc, separate_colour_plane_, bit_depth_luma_minus8, bit_depth_chroma_minus8 또는 max_dec_pic_buffering_[ Htid ]의 값과 상이하며, NoOutputOfPriorPicsFlag는 no_output_of_prior_pics_flag의 값에 관계없이 테스트 중인 디코더에 의해 1로 설정될 수 있다(그러나 설정되서는 안됨).
참고 - NoOutputOfPriorPicsFlag를 no_output_of_prior_pics_flag와 같게 설정하는 것이 이러한 조건에서 선호됨에도 불구하고, 테스트 중인 디코더는 이 경우 NoOutputOfPriorPicsFlag를 1로 설정하도록 허용된다.
- 그렇지 않으면, NoOutputOfPriorPicsFlag가 no_output_of_prior_pics_flag와 같게 설정된다.
2. NoOutputOfPriorPicsFlag의 값이 1과 같을 때, DPB의 모든 픽처 저장 버퍼가 포함하고 있는 픽처의 출력 없이 비워지고, DPB가 충만도는 0과 같게 설정되도록, 테스트 중인 디코더에 대해 도출된 NoOutputOfPriorPicsFlag의 값이 HRD에 적용된다.
- DPB의 임의의 픽처 k에 대해 다음 조건이 모두 참(true)일 때, DPB의 이러한 픽처 k는 모두 DPB로부터 제거된다.
- 픽처 k는 "참조용으로 사용되지 않음"으로 마킹된다.
- 픽처 k가 0과 같은 PictureOutputFlag를 가지거나 그것의 DPB 출력 시간이 현재 픽처 n의 제1 디코딩 유닛(디코딩 유닛 m으로 표시됨)의 CPB 제거 시간보다 작거나 같으며; 즉, DpbOutputTime[k]는 DuCpbRemovalTime[ m ]보다 작거나 같다.
- DPB로부터 제거된 각 픽처에 대해, DPB 충만도가 1씩 감소한다.
출력 순서 DPB의 작동이 설명된다.
이 절의 사양은 C.1 절에 명시된 바와 같이 선택된 각 디코딩 픽처 버퍼(decoded picture buffer, DPB)파라미터 세트에 독립적으로 적용된다.
디코딩된 픽처 버퍼는 개념적으로 서브 DPB로 구성되며, 각 서브 DPB는 한 계층의 디코딩된 픽처를 저장하기 위한 픽처 저장 버퍼를 포함한다. 각 픽처 저장 버퍼는 "참조용으로 사용됨"으로 마킹되거나 향후 출력을 위해 보유되는 디코딩된 픽처를 포함한다.
C.5.2.2절에 명시된 바와 같이 현재 픽처의 디코딩 전에 DPB로부터 픽처를 출력 및 제거하는 프로세스가 호출되고, 이어서 C.3.4절에 명시된 바와 같이 현재 디코딩된 픽처 마킹 및 저장 프로세스가 호출되고, 그리고 마지막으로 C.5.2.3절에 명시된 추가 범핑(bumping)을 위한 프로세스의 호출이 뒤따른다. "범핑" 프로세스는 C.5.2.4 절에 명시되어 있으며, C.5.2.2 및 C.5.2.3 절에 명시된 바와 같이 호출된다.
이러한 프로세스는 OLS의 최하위 계층부터 시작하여 OLS에 있는 계층의 nuh_layer_id 값이 증가하는 순서로 각 계층에 대해 독립적으로 적용된다. 이러한 프로세스가 특정 계층에 적용될 때, 특정 계층의 서브 DPB만 영향을 받는다.
참고 - 출력 타이밍 DPB의 작동과 동일한, 출력 순서 DPB의 작동에서, 동일한 액세스 유닛에서 PicOutputFlag가 1인 디코딩된 픽처는 또한 디코딩된 픽처의 nuh_layer_id 값의 오름차순으로 연속적으로 출력된다.
픽처 n 및 현재 픽처가 nuh_layer_id의 특정 값에 대한 액세스 유닛 n의 코딩된 픽처 또는 디코딩된 픽처라고 하며, 여기서 n은 음이 아닌 정수이다.
DPB로부터의 픽처의 출력 및 제거에 대해 설명한다.
현재 픽처의 디코딩 전(그러나 현재 픽처의 제1 슬라이스의 슬라이스 헤더를 신택스 분석한 후) DPB로부터 픽처의 출력 및 제거는, 현재 픽처를 포함하는 액세스 유닛의 제1 디코딩 유닛이 CPB로부터 제거될 때 즉시 발생하며, 다음과 같이 진행한다:
- 8.3.2절에 명시된 참조 픽처 리스트 구성을 위한 디코딩 프로세스와 8.3.3절에 명시된 참조 픽처 마킹을 위한 디코딩 프로세스가 호출된다.
- 현재 AU가 AU0이 아닌 CVSS AU이면, 다음 순서화된 단계가 적용된다.
1. 변수 NoOutputOfPriorPicsFlag는 다음과 같이 테스트 중인 디코더에 대해 도출된다:
-
현재의 AU의 임의의 픽처에 대해 도출된, pic_width_max_in_luma_samples, pic_height_max_in_luma_samples, chroma_format_idc, separate_colour_plane_flag, bit_depth_luma_minus8, bit_depth_chroma_minus8 또는 max_dec_pic__minus1[ Htid ]의 값이, 각각 동일한 CLVS의 이전 픽처에 대해 도출된, pic_width_in_luma_samples, pic_height_in_luma_samples, chroma_format_idc, separate_colour_plane_, bit_depth_luma_minus8, bit_depth_chroma_minus8 또는 max_dec_pic_buffering_[ Htid ]의 값이 상이하며, NoOutputOfPriorPicsFlag는 no_output_of_prior_pics_flag의 값에 관계없이 테스트 중인 디코더에 의해 1로 설정될 수 있다(그러나 설정되어서는 안 됨).
참고 - NoOutputOfPriorPicsFlag를 no_output_of_prior_pics_flag와 같게 설정하는 것이 이러한 조건에서 선호되지만, 테스트 중인 디코더는 이 경우 NoOutputOfPriorPicsFlag를 1로 설정하도록 허용된다.
- 그렇지 않으면, NoOutputOfPriorPicsFlag가 no_output_of_prior_pics_flag와 같게 설정된다.
2. 테스트 중인 디코더에 대해 도출된 NoOutputOfPriorPicsFlag의 값은 다음과 같이 HRD에 적용된다:
- NoOutputOfPriorPicsFlag가 1과 같으면, DPB의 모든 픽처 저장 버퍼가 포함하고 있는 픽처의 출력 없이 비워지고, DPB 충만도는 0과 같게 설정된다.
- 그렇지 않으면(NoOutputOfPriorPicsFlag가 0과 같음) "출력에 필요하지 않음" 및 "참조에 사용되지 않음"으로 마킹된 픽처를 포함하는 모든 픽처 저장 버퍼는 비워지고(출력 없이), DPB의 비어 있지 않은 모든 픽처 저장 버퍼는 C.5.2.4절에 명시된 "범핑" 프로세스를 반복적으로 호출하는 것에 의해 비워지며, DPB 충만도는 0과 같게 설정된다.
- 그렇지 않고(현재 픽처가 CLVSS 픽처가 아님), "출력에 필요하지 않음" 및 "참조에 사용되지 않음"으로 마킹된 픽처를 포함하는 모든 픽처 저장 버퍼가 비워진다(출력 없이). 비워진 각 픽처 저장 퍼버의 경우, DPB 충만도가 1씩 감소된다. 다음의 하나 이상의 조건이 참일때, C.5.2.4절에 명시된 "범핑" 프로세스가 반복적으로 호출되면서, 추가로 다음의 조건 중 어느 것도 참이 아닐때까지 비워진 각각의 픽처 저장 버퍼에 대해 DPB 충만도를 1씩 감소시킨다.
"출력에 필요함"으로 마킹된 DPB의 픽처 수가 max_num_reorder_pics[Htid]보다 크다.
max_latency_increase_plus1[ Htid ]는 0과 같지 않으며, 연관된 변수 PicLatencyCount가 MaxLatencyPictures[ Htid ]보다 크거나 같은 "출력에 필요함"으로 마킹된 DPB에 하나 이상의 픽처가 있다.
DPB의 픽처 수는 max_dec_pic_buffering_minus1[ Htid ] + 1보다 크거나 같다.
추가 범핑에 대해 설명한다.
이 절에 명시된 프로세스는 현재 픽처를 포함하는 액세스 유닛 n의 마지막 디코딩 유닛이 CPB로부터 제거될 때 즉시 발생한다.
현재 픽처가 1과 같은 PictureOutputFlag를 가질 때, "출력에 필요함"으로 마킹되고 출력 순서에서 현재 픽처를 뒤따르는 DPB의 각 픽처에 대해, 연관된 변수 PicLatencyCount는 PicLatencyCount + 1과 같게 설정된다.
다음이 적용된다:
- 현재 디코딩된 픽처가 1과 같은 PictureOutputFlag를 가지면, "출력에 필요함"으로 마킹되고 연관된 변수 PicLatencyCount가 0과 같게 설정된다.
- 그렇지 않으면(현재 디코딩된 픽처의 PictureOutputFlag가 0과 같음), "출력에 필요하지 않음"으로 마킹된다.
다음 조건 중 하나 이상이 참일 때, C.5.2.4 절에 명시된 "범핑" 프로세스가 다음 조건 중 어느 것도 참이 아닐 때까지 반복적으로 호출된다.
- "출력에 필요함"으로 마킹된 DPB의 픽처 수가 max_num_reorder_pics[Htid]보다 크다.
- max_latency_increase_plus1[ Htid ]는 0과 같지 않으며, MaxLatencyPictures[ Htid ]보다 크거나 같은 연관된 변수 PicLatencyCount에 대해 "출력에 필요함"으로 마킹된 DPB에 하나 이상의 픽처가 있다.
범핑 프로세스가 설명된다.
"범핑" 프로세스는 다음과 같은 순서화된 단계로 구성된다:
먼저 출력되는 픽처 또는 픽처들이 "출력에 필요함"으로 마킹된 DPB에 있는 모든 픽처 중 PicOrderCntVal 값이 가장 작은 것으로 선택된다.
nuh_layer_id 오름차순으로 이러한 픽처 각각은 픽처에 대한 적합성 크롭핑 윈도우(conformance cropping window)를 사용하여 크롭되며, 크롭된 픽처가 출력되고, 픽처가 "출력에 필요하지 않음"으로 마킹된다.
"참조용으로 사용되지 않음"으로 마킹된 픽처를 포함하면서 또한 크롭되고 출력된 픽처 중 하나였던 각 픽처 저장 버퍼는 비워지고, 연관된 서브 DPB의 충만도는 1만큼 감소한다.
참고 - 동일한 CVS에 속하고 "범핑 프로세스"에 의해 출력되는 임의의 2개의 픽처 picA 및 picB의 경우, picA가 picB보다 먼저 출력될 때, picA의 PicOrderCntVal 값은 picB의 PicOrderCntVal 값보다 작다.
서브 비트스트림 추출 프로세스가 설명된다.
이 프로세스에 대한 입력은, 비트스트림 inBitstream, 타깃 OLS 인덱스 targetOlsIdx 및 타깃 최상위 TemporalId 값 tIdTarget이다.
이 프로세스의 출력은 서브 비트스트림 outBitstream이다.
입력 비트스트림에 대한 비트스트림 적합성의 요건은, 비트스트림, VPS에 의해 명시된 OLS 리스트에 대한 인덱스와 같은 targetOlsIdx, 및 0에서 6까지의 범위(포함)의 임의의 값과 같은 tIdTarget을 입력으로서 가지면서 이 절에 명시된 프로세스의 출력이고, 다음 조건을 충족하는 임의의 출력 서브 비트스트림이 준수하는 비트스트림(conforming bitstream)이어야 한다는 것이다.
- 출력 서브 비트스트림은 LayerIdInOls[ targetOlsIdx ]의 nuh_layer_id 값 각각과 같은 nuh_layer_id를 갖는 적어도 하나의 VCL NAL 유닛을 포함한다.
- 출력 서브 비트스트림은 tIdTarget과 같은 TemporalId를 가진 VCL NAL 유닛을 하나 이상 포함한다.
참고 - 준수하는 비트스트림은 TemporalId가 0과 같은 코딩된 슬라이스 NAL 유닛을 하나 이상 포함하지만, nuh_layer_id가 0과 같은 코딩된 슬라이스 NAL 유닛을 포함할 필요는 없다.
출력 서브 비트스트림 OutBitstream은 다음과 같이 도출된다:
- 비트스트림 outBitstream은 비트스트림 inBitstream과 같게 설정된다.
- tIdTarget보다 큰 TemporalId를 가진 모든 NAL 유닛을 outBitstream으로부터 제거한다.
- LayerIdInOls[ targetOlsIdx ] 리스트에 포함되지 않은 nuh_layer_id를 가진 모든 NAL 유닛을 outBitstream으로부터 제거한다.
- NestingOlsIdx[i]가 targetOlsIdx와 같도록, nesting_ols_flag가 1과 같고0에서 nesting_num_olss_minus1까지의 범위(포함)의 i 값이 없는 확장 가능한 네스팅(scalable nesting) SEI 메시지를 포함하는 모든 SEI NAL 유닛을 outBitstream으로부터 제거한다.
- targetOlsIdx가 0보다 클 때, payloadType이 0(버퍼링 주기), 1(픽처 타이밍) 또는 130(디코딩 유닛 정보)과 같은 확장 불가능한 네스팅된(non-scalable-nested) SEI 메시지를 포함하는 모든 SEI NAL 유닛을 outBitstream으로부터 제거한다.
확장 가능한 네스팅 SEI 메시지 신택스가 제공된다.
일반 SEI 페이로드 시멘틱스가 제공된다.
다음은 확장 불가능한 네스팅된 SEI 메시지의 적용 가능한 계층 또는 OLS에 적용된다.
- 확장 불가능한 네스팅된 SEI 메시지의 경우, payloadType이 0(버퍼링 주기), 1(픽처 타이밍), 130(디코딩 유닛 정보)과 같을 때, 확장 불가능한 네스팅된 SEI 메시지는 0번째 OLS에만 적용된다.
- 확장 불가능한 네스팅된 SEI 메시지의 경우, payloadType이 VclAssociatedSeiList 중 임의의 값과 같을 때, 확장 불가능한 네스팅된 SEI 메시지는 VCL NAL 유닛이 SEI 메시지를 포함하는 SEI NAL의 nuh_layer_id와 같은 nuh_layer_id를 갖는 계층에만 적용된다.
SEI NAL 유닛의 nuh_layer_id 값에 다음 제한 사항이 적용되는 것이 비트스트림 적합성의 요건이다.
- 확장 불가능한 네스팅된 SEI 메시지의 payloadType이 0(버퍼링 주기), 1(픽처 타이밍) 또는 130(디코딩 유닛 정보)과 같을 때, 확장 불가능한 네스팅된 SEI 메시지를 포함하는 SEI NAL 유닛은 vps_layer_id[0]와 같은 nuh_layer_id를 가져야 한다.
- 확장 불가능한 네스팅된 SEI 메시지가 VclAssociatedSeiList 중 임의의 값과 같은 payloadType을 가질 때, 확장 불가능한 네스팅된 SEI 메시지를 포함하는 SEI NAL 유닛은 SEI NAL 유닛과 연관된 VCL NAL 유닛의 nuh_layer_id 값과 같은 nuh_layer_id를 가져야 한다.
- 확장 가능한 네스팅 SEI 메시지를 포함하는 SEI NAL 유닛은, 확장 가능한 네스팅된(scalable-nested) SEI 메시지가 적용되는 모든 계층의 nuh_layer_id의 가장 낮은 값(확장 가능한 네스팅 SEI 메시지의 nesting_ols_flag가 0과 같을 때) 또는 확장 가능한 네스팅 SEI 메시지가 적용되는 OLS의 모든 계층의 nuh_layer_id의 가장 낮은 값(확장 가능한 네스팅 SEI 메시지의 nesting_ols_flag가 1과 같을 때)과 같은 nuh_layer_id를 가져야 한다.
확장 가능한 네스팅 SEI 메시지 시멘틱스가 제공된다.
확장 가능한 네스팅 SEI 메시지는 SEI 메시지를 특정 OLS 또는 특정 계층과 연관시키는 메커니즘을 제공한다.
확장 가능한 네스팅 SEI 메시지는 하나 이상의 SEI 메시지를 포함한다. 확장 가능한 네스팅 SEI 메시지에 포함된 SEI 메시지는 확장 가능한 네스팅된 SEI 메시지라고도 한다.
확장 가능한 네스팅 SEI 메시지에 SEI 메시지를 포함할 때 다음 제한 사항이 적용되는 것이 비트스트림 적합성의 요건이다.
- payloadType이 132(디코딩된 픽처 해시) 또는 133(확장 가능한 네스팅)과 같은 SEI 메시지는 확장 가능한 네스팅 SEI 메시지에 포함되지 않는다.
- 확장 가능한 네스팅 SEI 메시지가 버퍼링 주기, 픽처 타이밍 또는 디코딩 유닛 정보 SEI 메시지를 포함할 때, 확장 가능한 네스팅 SEI 메시지는 payloadType이 0(버퍼링 주기), 1(픽처 타이밍), 또는 130(디코딩 유닛 정보)과 같지 않은 임의의 다른 SEI 메시지를 포함하지 않아야 한다.
확장 가능한 네스팅 SEI 메시지를 포함하는 SEI NAL 유닛의 nal_unit_type 값에 다음 제한 사항이 적용되는 것이 비트스트림 적합성의 요건이다.
- 확장 가능한 네스팅 SEI 메시지가 0(버퍼링 주기), 1(픽처 타이밍), 130(디코딩 유닛 정보), 145(종속 RAP 지시) 또는 168(프레임 필드 정보)과 같은 payloadType을 갖는 SEI 메시지를 포함할 때, 확장 가능한 네스팅 SEI 메시지를 포함하는 SEI NAL 유닛은 PREFIX_SEI_NUT와 같은 nal_unit_type을 가져야 한다.
1과 같은 nesting_ols_flag는 확장 가능한 네스팅된 SEI 메시지가 특정 OLS에 적용되는 것을 명시한다. 0과 같은 nesting_ols_flag는 확장 가능한 네스팅 SEI 메시지가 특정 계층에 적용되는 것을 명시한다.
nesting_ols_flag 값에 다음 제한 사항이 적용되는 것이 비트스트림 적합성의 요건이다.
- 확장 가능한 네스팅 SEI 메시지가 0(버퍼링 주기), 1(픽처 타이밍) 또는 130(디코딩 유닛 정보)과 같은 payloadType을 갖는 SEI 메시지를 포함할 때, nesting_ols_flag의 값은 1과 같아야 한다.
- 확장 가능한 네스팅 SEI 메시지가 VclAssociatedSeiList의 값과 같은 payloadType을 갖는 SEI 메시지를 포함할 때, nesting_ols_flag의 값은 0과 같아야 한다.
nesting_num_olss_minus1 더하기 1은 확장 가능한 네스팅된 SEI 메시지가 적용되는 OLS의 수를 명시한다. nesting_num_olss_minus1의 값은 0에서 TotalNumOlss - 1까지의 범위(포함)에 있어야 한다.
nesting_ols_idx_delta_minus1[i]은 nesting_ols_flag가 1과 같을 때, 확장 가능한 네스팅된 SEI 메시지가 적용되는 i번째 OLS의 OLS 인덱스를 명시하는 변수 NestingOlsIdx[i]를 도출하는 데 사용된다. nesting_ols_idx_delta_minus1[i]의 값은 0에서 TotalNumOlss - 2까지의 범위(포함)에 있어야 한다.
변수 NestingOlsIdx[i]는 다음과 같이 도출된다.
1과 같은 nesting_all_layers_flag는 현재 SEI NAL 유닛의 nuh_layer_id보다 크거나 같은 nuh_layer_id를 갖는 모든 계층에 확장 가능한 네스팅된 SEI 메시지가 적용되도록 명시한다. 0과 같은 nesting_all_layers_flag는 현재 SEI NAL 유닛의 nuh_layer_id보다 크거나 같은 nuh_layer_id를 갖는 모든 계층에 확장 가능한 네스팅된 SEI 메시지가 적용되거나 적용되지 않을 수 있음을 명시한다.
nesting_num_layers_minus1 더하기 1은 확장 가능한 네스팅된 SEI 메시지가 적용되는 계층의 수를 명시한다. nesting_num_layers_minus1의 값은 0에서 vps_max_layers_minus1 - GeneralLayerIdx[ nuh_layer_id ]까지의 범위(포함)에 있어야 하며, 여기서 nuh_layer_id는 현재 SEI NAL 유닛의 nuh_layer_id이다.
nesting_layer_id[i]는 nesting_all_layers_flag가 0과 같을 때, 확장 가능한 네스팅된 SEI 메시지가 적용되는 i번째 계층의 nuh_layer_id 값을 명시한다. nesting_layer_id[i]의 값은 nuh_layer_id보다 커야 하며, 여기서 nuh_layer_id는 현재 SEI NAL 유닛의 nuh_layer_id이다.
nesting_ols_flag가 0과 같을 때, 확장 가능한 네스팅된 SEI 메시지가 적용되는 계층의 수를 명시하는 변수 NestingNumLayers, 확장 가능한 네스팅된 SEI 메시지가 적용되는 계층의 nuh_layer_id 값의 리스트를 명시하는 0에서 NestingNumLayers - 1까지의 범위(포함)의 i에 대한 리스트 NestingLayerId[i]는, 다음과 같이 도출되며, 여기서, nuh_layer_id는 현재 SEI NAL 유닛의 nuh_layer_id이다.
nesting_num_seis_minus1 더하기 1은 확장 가능한 네스팅된 SEI 메시지의 수를 명시한다. nesting_num_seis_minus1의 값은 0에서 63까지의 범위(포함)에 있어야 한다.
nesting_zero_bit는 0과 같아야 한다.
도 10은 본 개시의 실시예에 따른 비디오 코딩 디바이스(1000)(예: 비디오 인코더(300) 또는 비디오 디코더(400))의 개략도이다. 비디오 코딩 디바이스(1000)는 여기에 설명된 바와 같이 개시된 실시예를 구현하는데 적합하다. 비디오 코딩 디바이스(1000)는 데이터를 수신하기 위한 입구(ingress) 포트(1010) 및 수신기 유닛(Rx)(1020); 데이터를 처리하기 위한 프로세서, 로직 유닛, 또는 중앙 처리 유닛(central processing unit, CPU)(1030); 데이터를 전송하기 위한 송신기 유닛(Tx)(1040) 및 출구(egress) 포트(1050); 및 데이터를 저장하기 위한 메모리(1060)를 포함한다. 비디오 코딩 디바이스(1000)는 또한 광학 신호 또는 전기 신호의 유출 또는 유입을 위해, 입구 포트(1010), 수신기 유닛(1020), 송신기 유닛(1040), 및 출구 포트(1050)에 결합된 광학-전기(electrical-to-optical, OE) 컴포넌트 및 전기-광(electrical-to-optical, EO) 컴포넌트를 포함할 수 있다.
프로세서(1030)는 하드웨어 및 소프트웨어로 구현된다. 프로세서(1030)는 하나 이상의 CPU 칩, 코어(예: 멀티 코어 프로세서로서), FPGA(field-programmable gate arrays), ASIC(application specific integrated circuit), 및 DSP(digital signal processor)로서 구현될 수 있다. 프로세서(1030)는 입구 포트(1010), 수신기 유닛(1020), 송신기 유닛(1040), 출구 포트(1050), 및 메모리(1060)와 통신한다. 프로세서(1030)는 코딩 모듈(1070)을 포함한다. 코딩 모듈(1070)은 위에서 설명된 개시된 실시예를 구현한다. 예를 들면, 코딩 모듈(1070)은 다양한 코덱 기능을 구현, 처리, 준비 또는 제공할 수 있다. 따라서, 코딩 모듈(1070)의 포함은 비디오 코딩 디바이스(1000)의 기능에 대한 실질적인 개선을 제공하고, 비디오 코딩 디바이스(1000)를 상이한 상태로 변환하는 효과가 있다. 다르게는, 코딩 모듈(1070)은 메모리(1060)에 저장되고 프로세서(1030)에 의해 실행되는 명령으로서 구현된다.
비디오 코딩 디바이스(1000)는 또한 사용자와 데이터를 통신하기 위한 입력 및/또는 출력(input and/or output, I/O) 디바이스(1080)를 포함할 수 있다. I/O 디바이스(1080)는 비디오 데이터를 디스플레이하기 위한 디스플레이, 오디오 데이터를 출력하기 위한 스피커 등과 같은 출력 디바이스를 포함할 수 있다. I/O 디바이스(1080)는 또한 키보드, 마우스, 트랙볼 등과 같은 입력 디바이스, 및/또는 이러한 출력 디바이스와 상호작용하기 위한 대응하는 인터페이스를 포함할 수 있다.
메모리(1060)는 하나 이상의 디스크, 테이프 드라이브 및 솔리드 스테이트 드라이브를 포함하고 오버플로 데이터 저장 디바이스로 사용될 수 있으며, 이러한 프로그램이 실행을 위해 선택될 때 프로그램을 저장하고, 프로그램 실행 중 판독된 명령 및 데이터를 저장한다. 메모리(1060)는 휘발성 및/또는 비휘발성일 수 있고 ROM(Read-Only Memory), RAM(Random Access Memory), TCAM(Ternary Content-Addressable Memory) 및/또는 SRAM(Static Random-Access Memory)일 수 있다.
도 11은 코딩을 위한 수단(1100)의 실시예의 개략도이다. 일 실시예에서, 코딩을 위한 수단(1100)은 비디오 코딩 디바이스(1102)(예: 비디오 인코더(300) 또는 비디오 디코더(400))에서 구현된다. 비디오 코딩 디바이스(1102)는 수신 수단(1101)을 포함한다. 수신 수단(1101)은 인코딩할 픽처를 수신하거나 디코딩할 비트스트림을 수신하도록 구성된다. 비디오 코딩 디바이스(1102)는 수신 수단(1101)에 결합된 송신 수단(1107)을 포함한다. 송신 수단(1107)은 비트스트림을 디코더로 전송하거나 디코딩된 이미지를 디스플레이 수단(예: I/O 디바이스(1080) 중 하나)으로 전송하도록 구성된다.
비디오 코딩 디바이스(1102)는 저장 수단(1103)을 포함한다. 저장 수단(1103)은 수신 수단(1101) 또는 송신 수단(1107) 중 적어도 하나에 결합된다. 저장 수단(1103)은 명령을 저장하도록 구성된다. 비디오 코딩 디바이스(1102)는 또한 처리 수단(1105)을 포함한다. 처리 수단(1105)은 저장 수단(1103)에 결합된다. 처리 수단(1105)은 여기에 개시된 방법을 수행하기 위해 저장 수단(1103)에 저장된 명령을 실행하도록 구성된다.
또한, 여기에 설명된 예시적인 방법의 단계는 설명된 순서대로 수행될 필요가 없으며 이러한 방법의 단계의 순서는 단지 예시적인 것으로 이해되어야 한다. 마찬가지로, 이러한 방법에 추가적인 단계가 포함될 수 있으며, 본 개시의 다양한 실시예에 따른 방법에서 특정 단계는 생략되거나 조합될 수 있다.
몇몇 실시예가 본 개시에서 제공되었지만, 개시된 시스템 및 방법은 본 개시의 사상 또는 범위를 벗어나지 않고 많은 다른 특정 형태로 구현될 수 있음을 이해해야 한다. 본 예는 예시적인 것으로 간주되어야 하며 제한적이지 않으며, 의도는 여기에 제공된 세부 사항으로 제한되지 않는다. 예를 들어, 다양한 컴포넌트 또는 컴포넌트들이 다른 시스템에 조합 또는 통합되거나 특정 기능이 생략되거나 구현되지 않을 수 있다.
또한, 별개의 또는 별개의 것으로 다양한 실시예에서 설명되고 예시된 기술, 시스템, 서브시스템 및 방법은 본 개시의 범위를 벗어나지 않고 다른 시스템, 모듈, 기술, 또는 방법과 조합되거나 통합될 수 있다. 서로 결합되거나 직접 결합되거나 통신하는 것으로 도시되거나 논의된 다른 항목은, 전기적으로든 기계적으로든 간에 일부 인터페이스, 디바이스 또는 중간 컴포넌트를 통해 간접적으로 결합되거나 통신할 수 있다. 변경, 대체 및 변경의 다른 예는 당업자에 의해 확인 가능하며 여기에 개시된 정신 및 범위를 벗어나지 않고 이루어질 수 있다.
Claims (28)
- 비디오 디코더에 의해 구현되는 디코딩 방법으로서,
상기 비디오 디코더가, 단 하나의 계층을 갖는 출력 계층 세트(output layer set, OLS)에 대한 프로필 티어 레벨(profile tier level, PTL) 신택스 구조를 갖는 시퀀스 파라미터 세트(sequence parameter set, SPS)를 갖는 서브 비트스트림을 수신하는 단계;
상기 비디오 디코더가, 상기 단 하나의 계층을 갖는 OLS에 기반하여 상기 OLS에서의 계층의 수를 1과 같게 설정하는 단계;
상기 비디오 디코더가, 상기 OLS의 계층 수가 1과 같게 설정되었을 때, 상기 SPS로부터 상기 하나의 계층을 갖는 OLS에 대한 상기 PTL 신택스 구조를 획득하는 단계; 및
상기 비디오 디코더가, 상기 PTL 신택스 구조를 사용하여 상기 단 하나의 계층으로부터의 픽처를 디코딩하여 디코딩된 픽처를 획득하는 단계
를 포함하는 디코딩 방법. - 제1항에 있어서,
상기 PTL 신택스 구조는 profile_tier_level()로 지정되는, 디코딩 방법. - 제1항 내지 제2항 중 어느 한 항에 있어서,
상기 단 하나의 계층은 i번째 계층이고, 상기 OLS는 i번째 OLS인, 디코딩 방법. - 제1항 내지 제3항 중 어느 한 항에 있어서,
상기 PTL 신택스 구조는 상기 SPS에서 i번째 profile_tier_level() 신택스 구조에 존재하는, 디코딩 방법. - 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 서브 비트스트림은 비디오 파라미터 세트(video parameter set, VPS)를 포함하지 않는, 디코딩 방법. - 제1항 내지 제5항 중 어느 한 항에 있어서,
상기 OLS에서의 계층의 수는 NumLayersInOls[i]로 지정된 변수인, 디코딩 방법. - 제1항 내지 제6항 중 어느 한 항에 있어서,
상기 SPS는 상기 OLS에서 상기 단 하나의 계층에 의해 참조되는, 디코딩 방법. - 제1항 내지 제7항 중 어느 한 항에 있어서,
상기 디코딩된 픽처를 전자 디바이스의 디스플레이 상에 디스플레이하는 단계
를 더 포함하는 디코딩 방법. - 비디오 인코더에 의해 구현되는 인코딩 방법으로서,
상기 비디오 인코더가, 비디오 파라미터 세트(video parameter set, VPS) 및 시퀀스 파라미터 세트(sequence parameter set, SPS)를 생성하는 단계 - 상기 VPS는 모든 출력 계층 세트(output layer set, OLS)에 대한 프로필 티어 레벨(profile tier level, PTL) 신택스 구조의 리스트를 포함하고, 상기 SPS는 단 하나의 계층을 갖는 각 OLS에 대한 PTL 신택스 구조를 포함함 -;
상기 비디오 인코더가, 상기 VPS 및 상기 SPS를 비디오 비트스트림으로 인코딩하는 단계; 및
상기 비디오 인코더가, 비디오 디코더를 향한 통신을 위해 상기 비디오 비트스트림을 저장하는 단계
를 포함하는 인코딩 방법. - 제9항에 있어서,
상기 VPS는 상기 PTL 신택스 구조의 리스트에 대한 인덱스를 포함하고, 상기 인덱스는 vps_ols_ptl_idx[i]로 지정되는, 인코딩 방법. - 제9항 내지 제10항 중 어느 한 항에 있어서,
vps_ols_ptl_idx[i]의 값은 0 내지 상기 VPS에서의 상기 PTL 신택스 구조의 총 수의 범위에 있는, 인코딩 방법. - 제10항 내지 제11항 중 어느 한 항에 있어서,
상기 VPS는 vps_num_ptls_minus1을 포함하고, vps_num_ptls_minus1 더하기 1은 상기 VPS에서의 상기 PTL 신택스 구조의 총 수를 명시하는, 인코딩 방법. - 제10항 내지 제12항 중 어느 한 항에 있어서,
상기 비트스트림으로부터 서브 비트스트림을 추출하는 단계
를 더 포함하고,
상기 서브 비트스트림은 상기 비트스트림으로부터의 상기 SPS를 포함하지만 상기 비트스트림으로부터의 상기 VPS는 포함하지 않는, 인코딩 방법. - 제10항 내지 제13항 중 어느 한 항에 있어서,
상기 서브 비트스트림을 비디오 디코더를 향해 전송하는 단계
를 더 포함하는 인코딩 방법. - 디코딩 디바이스로서,
단 하나의 계층을 갖는 출력 계층 세트(output layer set, OLS)에 대한 프로필 티어 레벨(profile tier level, PTL) 신택스 구조를 갖는 시퀀스 파라미터 세트(sequence parameter set, SPS)를 갖는 서브 비트스트림을 수신하도록 구성된 수신기; 및
메모리에 결합된 프로세서
를 포함하고,
상기 프로세서는 명령을 실행하여 상기 디코딩 디바이스가,
상기 단 하나의 계층을 갖는 OLS에 기반하여 상기 OLS에서의 계층의 수를 1과 같게 설정하고;
상기 OLS의 계층 수가 1과 같게 설정되었을 때, 상기 SPS로부터 상기 하나의 계층을 갖는 OLS에 대한 상기 PTL 신택스 구조를 획득하며; 그리고
상기 PTL 신택스 구조를 사용하여 상기 단 하나의 계층으로부터의 픽처를 디코딩하여 디코딩된 픽처를 획득하게 하도록 구성되는, 디코딩 디바이스. - 제15항에 있어서,
상기 PTL 신택스 구조는 profile_tier_level()로 지정되고, 상기 단 하나의 계층은 i번째 계층이고, 상기 OLS는 i번째 OLS인, 디코딩 디바이스. - 제15항 내지 제16항 중 어느 한 항에 있어서,
상기 PTL 신택스 구조는 상기 SPS에서 i번째 profile_tier_level() 신택스 구조에 존재하는, 디코딩 디바이스. - 제15항 내지 제17항 중 어느 한 항에 있어서,
상기 서브 비트스트림은 비디오 파라미터 세트(video parameter set, VPS)를 포함하지 않는, 디코딩 디바이스. - 제15항 내지 제18항 중 어느 한 항에 있어서,
상기 OLS에서의 계층의 수는 NumLayersInOls[i]로 지정된 변수이고, 상기 SPS는 상기 OLS에서 상기 단 하나의 계층에 의해 참조되는, 디코딩 디바이스. - 제15항 내지 제19항 중 어느 한 항에 있어서,
상기 디코딩된 픽처를 디스플레이하도록 구성된 디스플레이
를 더 포함하는 디코딩 디바이스. - 인코딩 디바이스로서,
명령을 포함하는 메모리;
상기 메모리에 결합된 프로세서 - 상기 프로세서는 상기 명령을 실행하여 상기 인코딩 디바이스가,
비디오 파라미터 세트(video parameter set, VPS) 및 시퀀스 파라미터 세트(sequence parameter set, SPS)를 생성하고 - 상기 VPS는 모든 출력 계층 세트(output layer set, OLS)에 대한 프로필 티어 레벨(profile tier level, PTL) 신택스 구조의 리스트를 포함하고, 상기 SPS는 단 하나의 계층을 갖는 각 OLS에 대한 PTL 신택스 구조를 포함함 -, 그리고
상기 VPS 및 상기 SPS를 비디오 비트스트림으로 인코딩하게 하도록 구성됨 -; 및
상기 프로세서에 결합되고, 상기 비디오 비트스트림을 비디오 디코더를 향해 전송하도록 구성된 송신기
를 포함하는 인코딩 디바이스. - 제21항에 있어서,
상기 VPS는 상기 PTL 신택스 구조의 리스트에 대한 인덱스를 포함하고, 상기 인덱스는 vps_ols_ptl_idx[i]로 지정되는, 인코딩 디바이스. - 제21항 내지 제22항 중 어느 한 항에 있어서,
vps_ols_ptl_idx[i]의 값은 0 내지 상기 VPS에서의 상기 PTL 신택스 구조의 총 수의 범위에 있는, 인코딩 디바이스. - 제23항 내지 제25항 중 어느 한 항에 있어서,
상기 VPS는 vps_num_ptls_minus1을 포함하고, vps_num_ptls_minus1 더하기 1은 상기 VPS에서의 상기 PTL 신택스 구조의 총 수를 명시하는, 인코딩 디바이스. - 코딩 장치로서,
인코딩할 픽처를 수신하거나 디코딩할 비트스트림을 수신하도록 구성된 수신기;
상기 수신기에 결합되고, 비트스트림을 디코더로 전송하거나 디코딩된 이미지를 디스플레이로 전송하도록 구성된 송신기;
상기 수신기 또는 상기 송신기 중 적어도 하나에 연결되고 명령을 저장하도록 구성된 메모리; 및
상기 메모리에 저장된 명령을 실행하여, 제1항 내지 제8항 중 어느 한 항 및 제9항 내지 제14항 중 어느 한 항의 방법을 수행하도록 구성된 프로세서
를 포함하는 코딩 장치. - 제25항에 있어서,
디코딩된 픽처를 디스플레이하도록 구성된 디스플레이
를 더 포함하는 코딩 장치. - 시스템으로서,
인코더; 및
상기 인코더와 통신하는 디코더
를 포함하고,
상기 인코더 또는 상기 디코더는 제15항 내지 제26항 중 어느 한 항의 디코딩 디바이스, 인코딩 디바이스, 또는 코딩 장치를 포함하는, 시스템. - 코딩을 위한 수단으로서,
인코딩할 픽처를 수신하거나 디코딩할 비트스트림을 수신하도록 구성된 수신 수단;
상기 수신 수단에 결합되고, 상기 비트스트림을 디코딩을 위한 수단으로 전송하거나 디코딩된 이미지를 디스플레이 수단으로 전송하도록 구성된 송신 수단;
상기 수신 수단 또는 상기 송신 수단 중 적어도 하나에 결합되고, 명령을 저장하도록 구성된 저장 수단; 및
상기 저장 수단에 저장된 명령을 실행하여, 제1항 내지 제8항 중 어느 한 항 및 제9항 내지 제14항 중 어느 한 항의 방법을 수행하도록 구성된 처리 수단
을 포함하는 코딩을 위한 수단.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962911808P | 2019-10-07 | 2019-10-07 | |
US62/911,808 | 2019-10-07 | ||
PCT/US2020/054449 WO2021022268A2 (en) | 2019-10-07 | 2020-10-06 | Avoidance of redundant signaling in multi-layer video bitstreams |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220071275A true KR20220071275A (ko) | 2022-05-31 |
Family
ID=74228311
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227015181A KR20220070039A (ko) | 2019-10-07 | 2020-10-06 | Dpb 사이즈 기반의 참조 픽쳐 엔트리 제약 |
KR1020227015232A KR20220071277A (ko) | 2019-10-07 | 2020-10-06 | 서브 비트스트림 추출의 오류 방지 |
KR1020227015319A KR20220069114A (ko) | 2019-10-07 | 2020-10-06 | 다중 계층 비디오 스트림에서 중복 시그널링의 방지 |
KR1020227015129A KR20220071275A (ko) | 2019-10-07 | 2020-10-06 | 다중 계층 비디오 스트림에서의 중복 시그널링 방지 |
KR1020227015249A KR20220070325A (ko) | 2019-10-07 | 2020-10-06 | 서브 비트스트림 추출의 sps 오류 방지 |
KR1020227015331A KR20220070040A (ko) | 2019-10-07 | 2020-10-06 | 다중 레이어 비디오 비트스트림에서의 중복 시그널링의 방지 |
KR1020227015375A KR20220070538A (ko) | 2019-10-07 | 2020-10-06 | 다중 레이어 비디오 비트스트림에서의 중복 시그널링의 방지 |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227015181A KR20220070039A (ko) | 2019-10-07 | 2020-10-06 | Dpb 사이즈 기반의 참조 픽쳐 엔트리 제약 |
KR1020227015232A KR20220071277A (ko) | 2019-10-07 | 2020-10-06 | 서브 비트스트림 추출의 오류 방지 |
KR1020227015319A KR20220069114A (ko) | 2019-10-07 | 2020-10-06 | 다중 계층 비디오 스트림에서 중복 시그널링의 방지 |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227015249A KR20220070325A (ko) | 2019-10-07 | 2020-10-06 | 서브 비트스트림 추출의 sps 오류 방지 |
KR1020227015331A KR20220070040A (ko) | 2019-10-07 | 2020-10-06 | 다중 레이어 비디오 비트스트림에서의 중복 시그널링의 방지 |
KR1020227015375A KR20220070538A (ko) | 2019-10-07 | 2020-10-06 | 다중 레이어 비디오 비트스트림에서의 중복 시그널링의 방지 |
Country Status (12)
Country | Link |
---|---|
US (7) | US20220239938A1 (ko) |
EP (7) | EP4032293B1 (ko) |
JP (14) | JP7419513B2 (ko) |
KR (7) | KR20220070039A (ko) |
CN (18) | CN114514751B (ko) |
AU (7) | AU2020319904A1 (ko) |
BR (12) | BR122022009671A2 (ko) |
CA (4) | CA3156989A1 (ko) |
CL (4) | CL2022000859A1 (ko) |
IL (1) | IL292060A (ko) |
MX (4) | MX2022004140A (ko) |
WO (7) | WO2021022269A2 (ko) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BR112022005466A2 (pt) * | 2019-09-24 | 2022-06-14 | Huawei Tech Co Ltd | Dispositivos de codificação, e de decodificação de vídeo, e de produto de computador, e métodos associados |
US20230007291A1 (en) * | 2019-12-06 | 2023-01-05 | Sharp Kabushiki Kaisha | Systems and methods for signaling temporal sublayer information in video coding |
WO2021134015A1 (en) | 2019-12-26 | 2021-07-01 | Bytedance Inc. | Profile, tier and layer indication in video coding |
EP4062634A4 (en) | 2019-12-26 | 2022-12-28 | ByteDance Inc. | LIMITATIONS ON SIGNALING HYPOTHETICAL REFERENCE DECODER PARAMETERS IN VIDEO BITSTREAMS |
EP4066386A4 (en) | 2019-12-27 | 2023-01-25 | ByteDance Inc. | SIGNALING SUBPICTURES IN VIDEO ENCODING |
US11758171B2 (en) * | 2019-12-27 | 2023-09-12 | Alibaba Group Holding Limited | Methods and systems for performing gradual decoding refresh processing on pictures |
WO2021137597A1 (ko) * | 2019-12-30 | 2021-07-08 | 엘지전자 주식회사 | Ols에 대한 dpb 파라미터를 사용하는 영상 디코딩 방법 및 그 장치 |
WO2021137591A1 (ko) * | 2019-12-30 | 2021-07-08 | 엘지전자 주식회사 | Ols dpb 파라미터 인덱스를 포함하는 영상 정보 기반 영상 디코딩 방법 및 그 장치 |
US20220417526A1 (en) * | 2019-12-30 | 2022-12-29 | Lg Electronics Inc. | Image decoding method for coding dpb parameter, and device therefor |
CN117395441A (zh) | 2020-01-09 | 2024-01-12 | 字节跳动有限公司 | 视频流中的填充数据单元的处理 |
EP4107956A4 (en) | 2020-03-21 | 2023-06-21 | Beijing Bytedance Network Technology Co., Ltd. | COMBINATION OF SUBIMAGES AND EXTENSIBILITY |
US11509920B2 (en) * | 2020-03-27 | 2022-11-22 | Tencent America LLC | Indication of max sublayer numbers in multilayered video stream |
US11228776B1 (en) * | 2020-03-27 | 2022-01-18 | Tencent America LLC | Method for output layer set mode in multilayered video stream |
WO2021213307A1 (en) | 2020-04-19 | 2021-10-28 | Beijing Bytedance Network Technology Co., Ltd. | Scaling window for video coding |
US11818398B2 (en) * | 2020-05-06 | 2023-11-14 | Sharp Kabushiki Kaisha | Systems and methods for signaling video parameter information in video coding |
US11477471B2 (en) * | 2020-05-20 | 2022-10-18 | Tencent America LLC | Techniques for signaling combination of reference picture resampling and spatial scalability |
CN116134823A (zh) * | 2020-05-25 | 2023-05-16 | Lg电子株式会社 | 基于多层的图像编码设备和方法 |
WO2021252525A1 (en) | 2020-06-08 | 2021-12-16 | Bytedance Inc. | Constraints of slice count in a coded video picture |
US11503342B2 (en) * | 2020-06-10 | 2022-11-15 | Sharp Kabushiki Kaisha | Systems and methods for signaling sequence parameter information in video coding |
EP4154533A4 (en) | 2020-06-20 | 2023-11-01 | Beijing Bytedance Network Technology Co., Ltd. | CROSS-LAYER PREDICTION WITH DIFFERENT CODING BLOCK SIZE |
US20220109865A1 (en) * | 2020-10-02 | 2022-04-07 | Sharp Kabushiki Kaisha | Systems and methods for signaling picture buffer information for intra random access point picture sub-bitstreams in video coding |
US11765376B2 (en) * | 2020-10-08 | 2023-09-19 | Tencent America LLC | Pruning methods and apparatuses for neural network based video coding |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101352978B1 (ko) | 2006-01-16 | 2014-01-28 | 고려대학교 산학협력단 | 향상된 계층간 참조 영상 지정, 복호 방법 및 그 장치 |
EP1985121A4 (en) * | 2006-11-17 | 2010-01-13 | Lg Electronics Inc | METHOD AND DEVICE FOR DECODING / CODING A VIDEO SIGNAL |
WO2012122246A1 (en) * | 2011-03-10 | 2012-09-13 | Vidyo, Inc. | Dependency parameter set for scalable video coding |
US9131245B2 (en) * | 2011-09-23 | 2015-09-08 | Qualcomm Incorporated | Reference picture list construction for video coding |
WO2013162450A1 (en) * | 2012-04-24 | 2013-10-31 | Telefonaktiebolaget L M Ericsson (Publ) | Encoding and deriving parameters for coded multi-layer video sequences |
US9602827B2 (en) * | 2012-07-02 | 2017-03-21 | Qualcomm Incorporated | Video parameter set including an offset syntax element |
EP2868092A4 (en) | 2012-07-02 | 2016-05-04 | Nokia Technologies Oy | METHOD AND DEVICE FOR VIDEO CODING |
US9161039B2 (en) | 2012-09-24 | 2015-10-13 | Qualcomm Incorporated | Bitstream properties in video coding |
US10021394B2 (en) | 2012-09-24 | 2018-07-10 | Qualcomm Incorporated | Hypothetical reference decoder parameters in video coding |
US9781413B2 (en) | 2012-10-02 | 2017-10-03 | Qualcomm Incorporated | Signaling of layer identifiers for operation points |
US9942545B2 (en) * | 2013-01-03 | 2018-04-10 | Texas Instruments Incorporated | Methods and apparatus for indicating picture buffer size for coded scalable video |
US20140218473A1 (en) * | 2013-01-07 | 2014-08-07 | Nokia Corporation | Method and apparatus for video coding and decoding |
US9998735B2 (en) | 2013-04-01 | 2018-06-12 | Qualcomm Incorporated | Inter-layer reference picture restriction for high level syntax-only scalable video coding |
US20140301477A1 (en) * | 2013-04-07 | 2014-10-09 | Sharp Laboratories Of America, Inc. | Signaling dpb parameters in vps extension and dpb operation |
US9591321B2 (en) * | 2013-04-07 | 2017-03-07 | Dolby International Ab | Signaling change in output layer sets |
SG10201913551WA (en) * | 2013-04-07 | 2020-03-30 | Dolby Int Ab | Signaling change in output layer sets |
US20140307803A1 (en) * | 2013-04-08 | 2014-10-16 | Qualcomm Incorporated | Non-entropy encoded layer dependency information |
EP3020202B1 (en) * | 2013-07-10 | 2019-09-04 | Sharp Kabushiki Kaisha | Scaling list signaling and parameter sets activation |
CN105379273B (zh) * | 2013-07-14 | 2019-03-15 | 夏普株式会社 | 对来自比特流的视频进行解码的方法和设备 |
US9794579B2 (en) * | 2013-07-15 | 2017-10-17 | Qualcomm Incorporated | Decoded picture buffer operations for video coding |
KR20150009424A (ko) * | 2013-07-15 | 2015-01-26 | 한국전자통신연구원 | 시간적 서브 레이어 정보에 기반한 계층간 예측을 이용한 영상 부, 복호화 방법 및 그 장치 |
WO2015053330A1 (ja) | 2013-10-10 | 2015-04-16 | シャープ株式会社 | 画像復号装置 |
US9819941B2 (en) * | 2013-10-10 | 2017-11-14 | Qualcomm Incorporated | Signaling for sub-decoded picture buffer (sub-DPB) based DPB operations in video coding |
EP3056005A4 (en) * | 2013-10-11 | 2017-05-17 | Sharp Kabushiki Kaisha | Signaling information for coding |
MY178305A (en) * | 2013-10-11 | 2020-10-07 | Vid Scale Inc | High level syntax for hevc extensions |
WO2015052943A1 (en) | 2013-10-13 | 2015-04-16 | Sharp Kabushiki Kaisha | Signaling parameters in vps extension and dpb operation |
US10264272B2 (en) * | 2013-10-15 | 2019-04-16 | Qualcomm Incorporated | Device and method for scalable coding of video information |
WO2015102042A1 (en) * | 2014-01-02 | 2015-07-09 | Sharp Kabushiki Kaisha | Parameter set signaling |
CN105874804A (zh) * | 2014-01-02 | 2016-08-17 | Vid拓展公司 | 针对hevc扩展的子比特流提取过程 |
WO2015137237A1 (ja) * | 2014-03-14 | 2015-09-17 | シャープ株式会社 | 画像復号装置 |
JP6465863B2 (ja) * | 2014-03-14 | 2019-02-06 | シャープ株式会社 | 画像復号装置、画像復号方法及び記録媒体 |
US10250895B2 (en) * | 2014-03-14 | 2019-04-02 | Sharp Kabushiki Kaisha | DPB capacity limits |
US20150264404A1 (en) | 2014-03-17 | 2015-09-17 | Nokia Technologies Oy | Method and apparatus for video coding and decoding |
US9866869B2 (en) * | 2014-03-17 | 2018-01-09 | Qualcomm Incorporated | POC value design for multi-layer video coding |
JP2015195543A (ja) | 2014-03-26 | 2015-11-05 | シャープ株式会社 | 画像復号装置、画像符号化装置 |
US9641851B2 (en) * | 2014-04-18 | 2017-05-02 | Qualcomm Incorporated | Conformance window information in multi-layer coding |
US10390087B2 (en) * | 2014-05-01 | 2019-08-20 | Qualcomm Incorporated | Hypothetical reference decoder parameters for partitioning schemes in video coding |
US9699480B2 (en) * | 2014-06-13 | 2017-07-04 | Sharp Laboratories Of America, Inc. | Level limits |
WO2015194183A1 (en) | 2014-06-18 | 2015-12-23 | Sharp Kabushiki Kaisha | Slice Type and Decoder Conformance |
US9819948B2 (en) | 2014-06-18 | 2017-11-14 | Qualcomm Incorporated | Signaling HRD parameters for bitstream partitions |
US9930340B2 (en) * | 2014-06-20 | 2018-03-27 | Qualcomm Incorporated | Systems and methods for selectively performing a bitstream conformance check |
US20150373343A1 (en) * | 2014-06-20 | 2015-12-24 | Qualcomm Incorporated | Representation format update in multi-layer codecs |
US9756355B2 (en) * | 2014-06-20 | 2017-09-05 | Qualcomm Incorporated | Value ranges for syntax elements in video coding |
US10432951B2 (en) * | 2014-06-24 | 2019-10-01 | Qualcomm Incorporated | Conformance and inoperability improvements in multi-layer video coding |
US9538137B2 (en) | 2015-04-09 | 2017-01-03 | Microsoft Technology Licensing, Llc | Mitigating loss in inter-operability scenarios for digital video |
JP6530854B2 (ja) | 2015-07-16 | 2019-06-12 | ドルビー ラボラトリーズ ライセンシング コーポレイション | Hdrおよび広色域の信号のための信号整形および符号化 |
WO2021045128A1 (en) * | 2019-09-06 | 2021-03-11 | Sharp Kabushiki Kaisha | Systems and methods for signaling temporal sub-layer information in video coding |
US11375223B2 (en) * | 2019-09-20 | 2022-06-28 | Tencent America LLC | Method for signaling output layer set with sub-picture |
US11159827B2 (en) * | 2019-09-23 | 2021-10-26 | Tencent America LLC | Method for signaling output layer set with sub picture |
CN114424571A (zh) * | 2019-09-24 | 2022-04-29 | 华为技术有限公司 | 编码器、解码器及对应方法 |
KR20230015373A (ko) | 2020-05-22 | 2023-01-31 | 바이트댄스 아이엔씨 | 비디오 비트스트림들에서 코딩된 픽처 버퍼 정보의 시그널링 |
US20220109865A1 (en) * | 2020-10-02 | 2022-04-07 | Sharp Kabushiki Kaisha | Systems and methods for signaling picture buffer information for intra random access point picture sub-bitstreams in video coding |
-
2020
- 2020-10-06 CN CN202080070375.9A patent/CN114514751B/zh active Active
- 2020-10-06 CN CN202410224772.7A patent/CN118158424A/zh active Pending
- 2020-10-06 CN CN202080070007.4A patent/CN114556946A/zh active Pending
- 2020-10-06 CN CN202311318273.6A patent/CN117528100A/zh active Pending
- 2020-10-06 KR KR1020227015181A patent/KR20220070039A/ko unknown
- 2020-10-06 CN CN202210487438.1A patent/CN114845118B/zh active Active
- 2020-10-06 WO PCT/US2020/054450 patent/WO2021022269A2/en active Application Filing
- 2020-10-06 CN CN202080070174.9A patent/CN114514749B/zh active Active
- 2020-10-06 JP JP2022521178A patent/JP7419513B2/ja active Active
- 2020-10-06 AU AU2020319904A patent/AU2020319904A1/en active Pending
- 2020-10-06 IL IL292060A patent/IL292060A/en unknown
- 2020-10-06 WO PCT/US2020/054449 patent/WO2021022268A2/en active Application Filing
- 2020-10-06 CN CN202311325692.2A patent/CN118381925A/zh active Pending
- 2020-10-06 CA CA3156989A patent/CA3156989A1/en active Pending
- 2020-10-06 BR BR122022009671-9A patent/BR122022009671A2/pt unknown
- 2020-10-06 KR KR1020227015232A patent/KR20220071277A/ko not_active Application Discontinuation
- 2020-10-06 BR BR112022006421A patent/BR112022006421A2/pt unknown
- 2020-10-06 EP EP20847068.2A patent/EP4032293B1/en active Active
- 2020-10-06 AU AU2020321174A patent/AU2020321174A1/en active Pending
- 2020-10-06 AU AU2020319903A patent/AU2020319903A1/en active Pending
- 2020-10-06 MX MX2022004140A patent/MX2022004140A/es unknown
- 2020-10-06 KR KR1020227015319A patent/KR20220069114A/ko not_active Application Discontinuation
- 2020-10-06 AU AU2020322053A patent/AU2020322053A1/en active Pending
- 2020-10-06 EP EP20847756.2A patent/EP4032295A4/en active Pending
- 2020-10-06 CN CN202410228715.6A patent/CN118118681A/zh active Pending
- 2020-10-06 MX MX2022004138A patent/MX2022004138A/es unknown
- 2020-10-06 BR BR122022009683-2A patent/BR122022009683A2/pt unknown
- 2020-10-06 WO PCT/US2020/054453 patent/WO2021022272A2/en unknown
- 2020-10-06 AU AU2020323624A patent/AU2020323624A1/en active Pending
- 2020-10-06 AU AU2020321996A patent/AU2020321996A1/en active Pending
- 2020-10-06 JP JP2022521394A patent/JP7423764B2/ja active Active
- 2020-10-06 CN CN202080070412.6A patent/CN114556948A/zh active Pending
- 2020-10-06 JP JP2022521012A patent/JP7439249B2/ja active Active
- 2020-10-06 JP JP2022521009A patent/JP7427774B2/ja active Active
- 2020-10-06 BR BR122022009673-5A patent/BR122022009673A2/pt unknown
- 2020-10-06 BR BR122022009663-8A patent/BR122022009663A2/pt unknown
- 2020-10-06 CN CN202080070510.XA patent/CN114586365A/zh active Pending
- 2020-10-06 BR BR112022006393A patent/BR112022006393A2/pt unknown
- 2020-10-06 KR KR1020227015129A patent/KR20220071275A/ko active Search and Examination
- 2020-10-06 BR BR112022006429A patent/BR112022006429A2/pt unknown
- 2020-10-06 KR KR1020227015249A patent/KR20220070325A/ko unknown
- 2020-10-06 CA CA3156987A patent/CA3156987A1/en active Pending
- 2020-10-06 CN CN202311321514.2A patent/CN117979011A/zh active Pending
- 2020-10-06 BR BR112022006392A patent/BR112022006392A2/pt unknown
- 2020-10-06 BR BR112022006389A patent/BR112022006389A2/pt unknown
- 2020-10-06 EP EP20847659.8A patent/EP4026335A4/en active Pending
- 2020-10-06 BR BR122022009696-4A patent/BR122022009696A2/pt unknown
- 2020-10-06 CN CN202210537904.2A patent/CN115361558B/zh active Active
- 2020-10-06 WO PCT/US2020/054454 patent/WO2021022273A1/en unknown
- 2020-10-06 MX MX2022004139A patent/MX2022004139A/es unknown
- 2020-10-06 WO PCT/US2020/054448 patent/WO2021022267A2/en active Application Filing
- 2020-10-06 CN CN202080070362.1A patent/CN114556947B/zh active Active
- 2020-10-06 CA CA3156990A patent/CA3156990A1/en active Pending
- 2020-10-06 EP EP20845891.9A patent/EP4032292A4/en active Pending
- 2020-10-06 JP JP2022521011A patent/JP7404522B2/ja active Active
- 2020-10-06 JP JP2022521010A patent/JP7451691B2/ja active Active
- 2020-10-06 CN CN202311326541.9A patent/CN117651135A/zh active Pending
- 2020-10-06 BR BR112022006422A patent/BR112022006422A2/pt unknown
- 2020-10-06 KR KR1020227015331A patent/KR20220070040A/ko not_active Application Discontinuation
- 2020-10-06 WO PCT/US2020/054452 patent/WO2021022271A2/en active Application Filing
- 2020-10-06 AU AU2020320296A patent/AU2020320296A1/en active Pending
- 2020-10-06 EP EP20846894.2A patent/EP4026334A4/en active Pending
- 2020-10-06 JP JP2022521328A patent/JP7413518B2/ja active Active
- 2020-10-06 CN CN202210504805.4A patent/CN115580730B/zh active Active
- 2020-10-06 MX MX2022004141A patent/MX2022004141A/es unknown
- 2020-10-06 CN CN202311326762.6A patent/CN117395428A/zh active Pending
- 2020-10-06 CN CN202080070272.2A patent/CN114514750B/zh active Active
- 2020-10-06 EP EP20848015.2A patent/EP4032296A4/en active Pending
- 2020-10-06 CA CA3156988A patent/CA3156988A1/en active Pending
- 2020-10-06 BR BR112022006419A patent/BR112022006419A2/pt unknown
- 2020-10-06 EP EP20847312.4A patent/EP4032294A4/en active Pending
- 2020-10-06 CN CN202311323100.3A patent/CN117478892A/zh active Pending
- 2020-10-06 WO PCT/US2020/054451 patent/WO2021022270A2/en active Application Filing
- 2020-10-06 KR KR1020227015375A patent/KR20220070538A/ko not_active Application Discontinuation
-
2022
- 2022-04-05 US US17/713,998 patent/US20220239938A1/en active Pending
- 2022-04-05 CL CL2022000859A patent/CL2022000859A1/es unknown
- 2022-04-05 CL CL2022000857A patent/CL2022000857A1/es unknown
- 2022-04-05 US US17/714,001 patent/US12022125B2/en active Active
- 2022-04-05 US US17/714,003 patent/US20220232240A1/en active Pending
- 2022-04-05 US US17/713,974 patent/US20220232257A1/en active Pending
- 2022-04-05 US US17/713,991 patent/US20220232258A1/en active Pending
- 2022-04-05 CL CL2022000858A patent/CL2022000858A1/es unknown
- 2022-04-05 US US17/713,995 patent/US20220232259A1/en active Pending
- 2022-04-05 CL CL2022000860A patent/CL2022000860A1/es unknown
- 2022-04-05 US US17/714,008 patent/US20220239934A1/en active Pending
-
2023
- 2023-12-13 JP JP2023210287A patent/JP2024019538A/ja active Pending
- 2023-12-26 JP JP2023219098A patent/JP2024038112A/ja active Pending
-
2024
- 2024-01-09 JP JP2024001380A patent/JP2024036348A/ja active Pending
- 2024-01-17 JP JP2024005341A patent/JP2024040195A/ja active Pending
- 2024-01-24 JP JP2024008764A patent/JP2024036399A/ja active Pending
- 2024-02-13 JP JP2024019656A patent/JP2024063033A/ja active Pending
- 2024-03-06 JP JP2024034318A patent/JP2024069331A/ja active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7419513B2 (ja) | マルチレイヤビデオビットストリーム内の冗長シグナリングの回避 | |
KR20220063271A (ko) | 다층 비디오 비트스트림에 대한 dpb 파라미터의 시그널링 기법 | |
KR20220065061A (ko) | 다계층 비디오 비트스트림에서 불필요한 계층 금지 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |