KR20220003618A - 비디오 코딩에서 복구 포인트 시그널링 - Google Patents
비디오 코딩에서 복구 포인트 시그널링 Download PDFInfo
- Publication number
- KR20220003618A KR20220003618A KR1020217039848A KR20217039848A KR20220003618A KR 20220003618 A KR20220003618 A KR 20220003618A KR 1020217039848 A KR1020217039848 A KR 1020217039848A KR 20217039848 A KR20217039848 A KR 20217039848A KR 20220003618 A KR20220003618 A KR 20220003618A
- Authority
- KR
- South Korea
- Prior art keywords
- picture
- gdr
- poc
- value
- bitstream
- Prior art date
Links
- 238000011084 recovery Methods 0.000 title claims abstract description 164
- 230000011664 signaling Effects 0.000 title description 11
- 238000000034 method Methods 0.000 claims description 129
- 239000000872 buffer Substances 0.000 claims description 32
- 230000003139 buffering effect Effects 0.000 claims description 18
- 238000004891 communication Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 5
- 230000000153 supplemental effect Effects 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 abstract description 39
- 230000033001 locomotion Effects 0.000 description 92
- 230000008569 process Effects 0.000 description 42
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 29
- 238000013139 quantization Methods 0.000 description 26
- 239000013598 vector Substances 0.000 description 25
- 238000010586 diagram Methods 0.000 description 22
- 238000007906 compression Methods 0.000 description 19
- 230000006835 compression Effects 0.000 description 18
- 238000012360 testing method Methods 0.000 description 14
- 241000023320 Luma <angiosperm> Species 0.000 description 11
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 11
- 239000000523 sample Substances 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000000750 progressive effect Effects 0.000 description 8
- 238000000638 solvent extraction Methods 0.000 description 8
- 230000003044 adaptive effect Effects 0.000 description 7
- 238000005192 partition Methods 0.000 description 7
- 230000008439 repair process Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 230000002123 temporal effect Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 239000010410 layer Substances 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 230000001629 suppression Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 239000013074 reference sample Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/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/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/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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
비디오 코딩 메커니즘이 개시된다. 메커니즘은 점진적 디코딩 리프레시(Gradual Decoding Refresh, GDR) 픽처, 디코딩 순서에서 상기 GDR 픽처를 뒤따르는 복구 포인트 픽처, 및 상기 GDR 픽처와 연관된 헤더를 포함하는 비트스트림을 수신하는 것을 포함한다. 헤더는 복구 픽처 순서 카운트 값 이전에 코딩된 픽처 순서 카운트(picture order count, POC) 최하위 비트(least significant bit, LSB) 값을 포함한다. GDR 픽처에 대한 POC는 PLC LSB 값에 기초하여 결정된다. 복구 POC 값은 GDR 픽처에 대한 POC에 기초하여 결정된다. 복구 POC 값은 GDR 픽처 및 복구 포인트 픽처에 기초하여 GDR에 따라 디코딩된다.
Description
본 특허 출원은 2019년 5월 6일에 Ye-Kui Wang에 의해 출원되고 발명의 명칭이 "점진적 랜덤 액세스를 위한 가상 참조 디코더"인 미국 가특허 출원 번호 62/843,999의 이익을 주장하며, 이는 여기에 참조로 포함된다.
본 개시는 일반적으로 비디오 코딩에 관한 것이고, 특히 가상 기준 디코더가 비디오 코딩에서 점진적인 디코딩 리프레시를 지원하도록 하는 개선점과 관련된다.
비교적 짧은 비디오라도 묘사하는 데 필요한 비디오 데이터의 양은 상당할 수 있으며, 이는 데이터가 스트리밍되거나 제한된 대역폭 용량으로 통신 네트워크를 통해 통신될 때 어려움을 초래할 수 있다. 따라서 비디오 데이터는 일반적으로 현대의 통신 네트워크를 통해 통신되기 전에 압축된다. 메모리 리소스가 제한될 수 있기 때문에 비디오가 저장 장치에 저장될 때 비디오의 크기도 문제가 될 수 있다. 비디오 압축 장치는 전송 또는 저장 전에 비디오 데이터를 코딩하기 위해 소스에서 소프트웨어 및/또는 하드웨어를 사용하여 디지털 비디오 이미지를 나타내는 데 필요한 데이터의 양을 줄이는 경우가 많다. 압축된 데이터는 비디오 데이터를 디코딩하는 비디오 압축 해결 장치에 의해 목적지에서 수신된다. 제한된 네트워크 리소스와 더 높은 비디오 품질에 대한 요구가 계속 증가함에 따라 이미지 품질을 거의 또는 전혀 희생하지 않으면서 압축 비율을 개선하는 개선된 압축 및 압축 해결 기술이 바람직하다.
일 실시예에서, 본 개시는 디코더에서 구현되는 방법을 포함하고, 상기 방법은: 디코더의 수신기가 점진적 디코딩 리프레시(Gradual Decoding Refresh, GDR) 픽처, 디코딩 순서에서 상기 GDR 픽처를 뒤따르는 복구 포인트 픽처, 및 상기 GDR 픽처와 연관된 헤더를 포함하는 비트스트림을 수신하는 단계 - 상기 헤더는 복구 픽처 순서 카운트 값 이전에 코딩된 픽처 순서 카운트(picture order count, POC) 최하위 비트(least significant bit, LSB) 값을 포함함 - ; 디코더의 프로세서가 POC LSB 값에 기초하여 GDR 픽처에 대한 POC를 결정하는 단계; 프로세서가 GDR 픽처에 대한 POC 및 복구 픽처 순서 카운트 값에 기초하여 복구 포인트 픽처(POC)를 결정하는 단계; 프로세서가 GDR 픽처 및 복구 포인트 픽처 POC에 기초하여 GDR에 따른 비트스트림을 디코딩하는 단계; 및 프로세서가 디코딩된 비디오 시퀀스의 일부로서 디스플레이를 위해 복구 포인트 픽처에 뒤따르는 하나 이상의 픽처를 포워딩하는 단계를 포함한다.
GDR은 비트스트림을 코딩하기 위한 메커니즘이다. GDR 픽처는 인트라-예측 코딩된 비디오 데이터 상의 수직 영역 및 인터-예측 코딩된 비디오 데이터의 하나 이상의 수직 영역을 포함한다. 인트라-예측 코딩된 영역의 위치는 일련의 관련 픽처 위로 이동하여 클린 영역을 생성한다. 클린 영역을 포함하는 픽처는 다른 픽처의 클린 영역을 참조하는 인트라-예측 데이터 또는 인터-예측 데이터만을 사용하여 클린 영역과 같은 클린 영역을 코딩한다. 그 결과 디코더는 첫 번째 GDR 픽처에서 비트스트림 디코딩을 시작하고 각 픽처를 순서대로 디코딩할 수 있다. 복구 포인트 이전의 마지막 픽처에 도달하면 디코더가 동기화되고 깨끗한 사용 가능한 데이터를 기반으로 하는 상호 예측을 사용하여 추가 픽처를 디코딩할 수 있다. 비디오 코딩 시스템은 픽처/슬라이스 헤더와 같은 헤더에서 관련 픽처의 픽처 순서 카운트를 시그널링할 수 있다. 이러한 시그널링은 GDR 픽처의 POC와 복구 포인트 픽처의 POC의 차이를 나타내는 복구 픽처 순서 카운트 값을 포함할 수 있다. 그러나 디코더는 복구 포인트 픽처의 POC를 결정하기 위해 GDR 픽처의 POC를 결정해야 한다. 본 예는 GDR 픽처에 대한 POC LSB 값을 포함한다. GDR POC LSB 값은 복구 POC 값과 함께 헤더에 포함된다. 또한, GDR POC LSB 값은 복구 POC 값 이전에 헤더에 코딩된다. 이러한 방식으로 디코더는 복구 POC 값을 파싱하기 전에 GDR POC LSB 값을 파싱할 수 있다. 이와 같이, 복구 POC 값은 GDR 픽처에 대한 POC가 결정되면 해결될 메모리에 배치되지 않고 즉시 도출될 수 있다. 이와 같이, 본 개시는 인코더 및/또는 디코더에서 프로세서 및/또는 메모리 리소스 사용을 감소시킨다.
선택적으로, 선행 관점들 중 임의의 관점에서, 관점의 다른 구현이 제공되며, 여기서 GDR 픽처와 연관된 헤더는 픽처 헤더이다.
선택적으로, 선행 관점들 중 임의의 관점에서, 관점의 다른 구현이 제공되며, 여기서 POC LBS 값은 ph_pic_order_cnt_lsb 값으로서 헤더에 포함되고, ph_pic_order_cnt_lsb 값은 현재 픽처에 대한 픽처 순서 카운트 모듈로 최대 픽처 순서 카운트 LSB를 지정하며 GDR 픽처는 현재 픽처이다.
선택적으로, 선행 관점들 중 임의의 관점에서, 관점의 다른 구현이 제공되며, 여기서 복구 픽처 순서 카운트 값이 recovery_poc_cnt 값으로서 헤더에 포함되고, recovery_poc_cnt 값이 출력 순서에서 디코딩된 픽처들의 복구 포인트를 지정한다.
선택적으로, 선행 관점들 중 임의의 관점에서, 관점의 다른 구현이 제공되며, 여기서 현재 픽처가 GDR 픽처일 때 헤더에 이전 픽처의 출력 없음 플래그(no output of prior pictures flag)가 설정된다.
선택적으로, 선행 관점들 중 임의의 관점에서, 관점의 다른 구현이 제공되며, 여기서 GDR 픽처는 인터-예측에 따라 코딩된 영역 및 인트라-예측에 따라 코딩된 영역을 포함한다.
선택적으로, 선행 관점들 중 임의의 관점에서, 관점의 다른 구현이 제공되며, 여기서 GDR 픽처는 GDR 액세스 유닛(AU)에 포함되고, 상기 비트스트림은 상기 GDR AU와 연관된 버퍼링 기간(buffering period, BP) 추가 강화 정보(supplemental enhancement information, SEI) 메시지를 더 포함하고, 상기 BP SEI 메시지는 디코딩 순서의 GDR AU의 위치에서 가상 참조 디코더(hypothetical reference decoder, HRD)의 초기화를 위해 초기 코딩된 픽처 버퍼(coded picture buffer, CPB) 제거 지연을 제공한다.
일 실시예에서, 본 개시는 인코더에서 구현되는 방법을 포함하고, 상기 방법은: 인코더의 프로세서가 디코딩 순서에서 GDR 픽처 및 GDR 픽처를 뒤따르는 복구 포인트 픽처를 비트스트림으로 인코딩하는 단계; 프로세서가, GDR 픽처의 POC LSB 값 및 복구 포인트 픽처의 복구 픽처 순서 카운트 값을 결정하는 단계; 프로세서가 복구 픽처 순서 카운트 값 이전에 코딩된 POC LSB 값을 포함하는 GDR 픽처와 연관된 헤더를 비트스트림으로 인코딩하는 단계; 및 상기 프로세서에 연결된 메모리에 의해, 디코더를 향한 통신을 위한 비트스트림을 저장하는 단계를 포함한다.
GDR은 비트스트림을 코딩하기 위한 메커니즘이다. GDR 픽처는 인트라-예측 코딩된 비디오 데이터 상의 수직 영역 및 인터-예측 코딩된 비디오 데이터의 하나 이상의 수직 영역을 포함한다. 인트라-예측 코딩된 영역의 위치는 일련의 관련 픽처 위로 이동하여 클린 영역을 생성한다. 클린 영역을 포함하는 픽처는 다른 픽처의 클린 영역을 참조하는 인트라-예측 데이터 또는 인터-예측 데이터만을 사용하여 클린 영역과 같은 클린 영역을 코딩한다. 그 결과 디코더는 첫 번째 GDR 픽처에서 비트스트림 디코딩을 시작하고 각 픽처를 순서대로 디코딩할 수 있다. 복구 포인트 이전의 마지막 픽처에 도달하면 디코더가 동기화되고 깨끗한 사용 가능한 데이터를 기반으로 하는 상호 예측을 사용하여 추가 픽처를 디코딩할 수 있다. 비디오 코딩 시스템은 픽처/슬라이스 헤더와 같은 헤더에서 관련 픽처의 픽처 순서 카운트를 시그널링할 수 있다. 이러한 시그널링은 GDR 픽처의 POC와 복구 포인트 픽처의 POC의 차이를 나타내는 복구 픽처 순서 카운트 값을 포함할 수 있다. 그러나 디코더는 복구 포인트 픽처의 POC를 결정하기 위해 GDR 픽처의 POC를 결정해야 한다. 본 예는 GDR 픽처에 대한 POC LSB 값을 포함한다. GDR POC LSB 값은 복구 POC 값과 함께 헤더에 포함된다. 또한, GDR POC LSB 값은 복구 POC 값 이전에 헤더에 코딩된다. 이러한 방식으로 디코더는 복구 POC 값을 파싱하기 전에 GDR POC LSB 값을 파싱할 수 있다. 이와 같이, 복구 POC 값은 GDR 픽처에 대한 POC가 결정되면 해결될 메모리에 배치되지 않고 즉시 도출될 수 있다. 이와 같이, 본 개시는 인코더 및/또는 디코더에서 프로세서 및/또는 메모리 리소스 사용을 감소시킨다.
선택적으로, 선행 관점들 중 임의의 관점에서, 관점의 다른 구현이 제공되며, 여기서 GDR 픽처와 연관된 헤더는 픽처 헤더이다.
선택적으로, 선행 관점들 중 임의의 관점에서, 관점의 다른 구현이 제공되며, 여기서 POC LBS 값은 ph_pic_order_cnt_lsb 값으로서 헤더에 포함되고, ph_pic_order_cnt_lsb 값은 현재 픽처에 대한 픽처 순서 카운트 모듈로 최대 픽처 순서 카운트 LSB를 지정하고 GDR 픽처는 현재 픽처이다.
선택적으로, 선행 관점들 중 임의의 관점에서, 관점의 다른 구현이 제공되며, 여기서 복구 픽처 순서 카운트 값은 복구_poc_cnt 값으로서 헤더에 포함되고, recovery_poc_cnt 값은 출력 순서에서 디코딩된 픽처들의 복구 포인트를 지정한다.
선택적으로, 선행 관점들 중 임의의 관점에서, 관점의 다른 구현이 제공되며, 여기서 현재 픽처가 GDR 픽처일 때 헤더에 이전 픽처의 출력 없음 플래그를 설정하는 단계를 더 포함한다.
선택적으로, 선행 관점들 중 임의의 관점에서, 관점의 다른 구현이 제공되며, 여기서 GDR 픽처는 인터-예측에 따라 코딩된 영역 및 인트라-예측에 따라 코딩된 영역을 포함한다.
선택적으로, 선행 관점들 중 임의의 관점에서, 관점의 다른 구현이 제공되며, 프로세서가 GDR AU에서 GDR 픽처를 인코딩하는 단계; 및 프로세서가 GDR AU와 관련된 BP SE 메시지를 비트스트림으로 인코딩하는 단계를 포함하고, 여기서 BP SEI 메시지는 디코딩 순서의 GDR AU의 위치에서 HRD의 초기화를 위한 초기 CPB 제거 지연을 제공한다.
일 실시예에서, 본 개시는 프로세서, 프로세서에 결합된 수신기, 프로세서에 결합된 메모리, 및 프로세서에 결합된 송신기를 포함하는 비디오 코딩 디바이스를 포함하고, 여기서 프로세서, 수신기, 메모리, 및 송신기는 이전 관점들 중 임의의 것의 방법을 수행하도록 구성된다.
일 실시예에서, 본 개시는 비디오 코딩 디바이스에 의해 사용하기 위한 컴퓨터 프로그램 제품을 포함하는 비일시적 컴퓨터 판독가능 매체를 포함하고, 컴퓨터 프로그램 제품은 비일시적 컴퓨터 판독 가능형 매체 상에 저장된 컴퓨터 실행가능 명령어를 포함하여, 프로세서에 의해 실행되는 것은 비디오 코딩 디바이스로 하여금 이전 관점들 중 임의의 것의 방법을 수행하게 한다.
일 실시예에서, 본 개시는 디코더를 포함하며, 상기 디코더는: 점진적 디코딩 리프레시(Gradual Decoding Refresh, GDR) 픽처, 디코딩 순서에서 상기 GDR 픽처를 뒤따르는 복구 포인트 픽처, 및 상기 GDR 픽처와 연관된 헤더를 포함하는 비트스트림을 수신하기 위한 수신 수단 - 상기 헤더는 복구 픽처 순서 카운트 값 이전에 코딩된 픽처 순서 카운트(picture order count, POC) 최하위 비트(least significant bit, LSB) 값을 포함함 - ; 상기 GDR 픽처에 대한 POC를 결정하고, 상기 GDR 픽처에 대한 POC 및 상기 복구 픽처 순서 카운트 값에 기초하여 복구 포인트 픽처(POC)를 결정하기 위한 결정 수단: 상기 GDR 픽처 및 상기 복구 포인트 픽처(POC)에 기초하여 GDR에 따라 상기 비트스트림을 디코딩하기 위한 디코딩 수단: 및 디코딩된 비디오 시퀀스의 일부로서 디스플레이를 위해 상기 복구 포인트 픽처를 뒤따르는 하나 이상의 픽처를 포워딩하기 위한 포워딩 수단을 포함한다.
선택적으로, 선행 관점들 중 임의의 관점에서, 관점의 다른 구현이 제공되며, 여기서 디코더는 선행 관점들 중 임의의 것의 방법을 수행하도록 추가로 구성된다.
일 실시예에서, 본 개시는 인코더를 포함하며, 상기 인코더는: 점진적 디코딩 리프레시(Gradual Decoding Refresh, GDR) 픽처 및 디코딩 순서에서 상기 GDR 픽처를 뒤따르는 복구 포인트 픽처를 비트스트림으로 인코딩하고, 상기 GDR 픽처와 연관된 헤더를 상기 비트스트림으로 인코딩하기 위한 인코딩 수단 - 상기 헤더는 상기 복구 픽처 순서 카운트 값 이전에 코딩된 POC LSB 값을 포함함 - ; 및 상기 GDR 픽처의 POC LSB 값 및 상기 복구 포인트 픽처의 복구 픽처 순서 카운트 값을 결정하기 위한 결정 수단; 및 디코더를 향한 통신을 위해 상기 비트스트림을 저장하기 위한 저장 수단을 포함한다.
선택적으로, 선행 관점들 중 임의의 관점에서, 관점의 다른 구현이 제공되며, 여기서 인코더는 선행 관점들 중 임의의 것의 방법을 수행하도록 추가로 구성된다.
명료함을 위해, 전술한 실시예 중 임의의 하나는 본 개시의 범위 내에서 새로운 실시예를 생성하기 위해 임의의 하나 이상의 다른 전술한 실시예와 조합될 수 있다.
이들 및 다른 특징은 첨부 도면 및 청구범위와 관련하여 취해진 다음의 상세한 설명으로부터 더 명확하게 이해될 것이다.
본 개시의 보다 완전한 이해를 위해, 유사한 참조 번호가 유사한 부분을 나타내는 첨부 도면 및 상세한 설명과 관련하여 취해진 다음의 간략한 설명을 이제 참조한다.
도 1은 비디오 신호를 코딩하는 예시적인 방법의 흐름도이다.
도 2는 비디오 코딩을 위한 예시적인 코딩 및 디코딩(코덱) 시스템의 개략도이다.
도 3은 예시적인 비디오 인코더를 예시하는 개략도이다.
도 4는 예시적인 비디오 디코더를 예시하는 개략도이다.
도 5는 예시적인 가상 기준 디코더(HRD)를 예시하는 개략도이다.
도 6은 비디오 시퀀스에 대해 점진적 디코딩 리프레시(GDR)를 수행하기 위한 예시적인 메커니즘을 예시하는 개략도이다.
도 7은 바람직하지 않은 모션 검색을 예시하는 개략도이다.
도 8은 GDR이 사용될 때 HRD를 초기화하는데 사용하기 위한 예시적인 비트스트림을 도시하는 개략도이다.
도 9는 예시적인 비디오 코딩 디바이스의 개략도이다.
도 10은 GDR을 사용하는 비디오 시퀀스를 비트스트림으로 인코딩할 때 복구 포인트 픽처 픽처 순서 카운트(POC)를 시그널링하는 예시적인 방법의 흐름도이다.
도 11은 시그널링된 복구 포인트 픽처(POC)에 기초하여 비트스트림으로부터 GDR을 사용하는 비디오 시퀀스를 디코딩하는 예시적인 방법의 흐름도이다.
도 12는 시그널링된 복구 포인트 픽처(POC)에 기초하여 GDR을 사용하는 비디오 시퀀스를 비트스트림으로 코딩하기 위한 예시적인 시스템의 개략도이다.
도 1은 비디오 신호를 코딩하는 예시적인 방법의 흐름도이다.
도 2는 비디오 코딩을 위한 예시적인 코딩 및 디코딩(코덱) 시스템의 개략도이다.
도 3은 예시적인 비디오 인코더를 예시하는 개략도이다.
도 4는 예시적인 비디오 디코더를 예시하는 개략도이다.
도 5는 예시적인 가상 기준 디코더(HRD)를 예시하는 개략도이다.
도 6은 비디오 시퀀스에 대해 점진적 디코딩 리프레시(GDR)를 수행하기 위한 예시적인 메커니즘을 예시하는 개략도이다.
도 7은 바람직하지 않은 모션 검색을 예시하는 개략도이다.
도 8은 GDR이 사용될 때 HRD를 초기화하는데 사용하기 위한 예시적인 비트스트림을 도시하는 개략도이다.
도 9는 예시적인 비디오 코딩 디바이스의 개략도이다.
도 10은 GDR을 사용하는 비디오 시퀀스를 비트스트림으로 인코딩할 때 복구 포인트 픽처 픽처 순서 카운트(POC)를 시그널링하는 예시적인 방법의 흐름도이다.
도 11은 시그널링된 복구 포인트 픽처(POC)에 기초하여 비트스트림으로부터 GDR을 사용하는 비디오 시퀀스를 디코딩하는 예시적인 방법의 흐름도이다.
도 12는 시그널링된 복구 포인트 픽처(POC)에 기초하여 GDR을 사용하는 비디오 시퀀스를 비트스트림으로 코딩하기 위한 예시적인 시스템의 개략도이다.
하나 이상의 실시예의 예시적인 구현이 아래에 제공되지만, 개시된 시스템 및/또는 방법은 현재 알려져 있거나 존재하는 임의의 수의 기술을 사용하여 구현될 수 있다는 것이 처음부터 이해되어야 한다. 본 개시는 여기에 예시되고 설명된 예시적인 설계 및 구현을 포함하여 아래에 예시된 예시적인 구현, 도면 및 기술에 결코 제한되어서는 안 되며, 등가물의 전체 범위와 함께 첨부된 청구의 범위 내에서 수정될 수 있다.
하기 용어들은 본 명세서에서 상반되는 맥락에서 사용되지 않는 한 다음과 같이 정의된다. 구체적으로, 하기 정의는 본 개시내용에 추가적인 명확성을 제공하기 위한 것이다. 그러나 용어는 상황에 따라 다르게 설명될 수 있다. 따라서 다음 정의는 보충으로 간주되어야 하며 여기에서 이러한 용어에 대해 제공된 설명의 다른 정의를 제한하는 것으로 간주되어서는 안 된다.
비트스트림은 인코더와 디코더 사이의 전송을 위해 압축되는 비디오 데이터를 포함하는 비트 시퀀스이다. 인코더는 비디오 데이터를 비트스트림으로 압축하기 위해 인코딩 프로세스를 사용하도록 구성된 장치이다. 디코더는 디스플레이를 위해 비트스트림으로부터 비디오 데이터를 재구성하기 위해 디코딩 프로세스를 사용하도록 구성된 장치이다. 픽처는 비디오 시퀀스의 해당 순간에 사용자에게 전체 또는 부분적으로 표시하기 위한 완전한 이미지이다. 픽처는 슬라이스로 분할될 수 있고, 슬라이스는 선택적으로 타일로 분할될 수 있고, 슬라이스 및/또는 타일은 코딩 트리 단위(CTU) 및/또는 코딩 트리 블록(CTB)으로 분할될 수 있고, CTU/CTB는 예측 메커니즘에 따라 코딩될 수 있는 코딩 블록으로 분할될 수 있다. 액세스 단위(AU)는 단일 코딩된 픽처 및 선택적으로 코딩된 픽처를 코딩하는 데 사용되는 코딩 메커니즘을 설명하는 파라미터를 포함하는 하나 이상의 헤더를 저장하도록 구성된 코딩 단위이다. 헤더는 코딩된 비디오 데이터의 해당 부분에 적용되는 신택스 요소를 포함하는 신택스 구조이다. 헤더에는 픽처 헤더 및 슬라이스 헤더가 포함될 수 있다. 픽처 헤더는 코딩된 픽처의 모든 슬라이스에 적용되는 신택스 요소를 포함하는 신택스 구조이다. 슬라이스 헤더는 슬라이스에 표시된 타일 내의 모든 타일 또는 CTU 행과 관련된 데이터 요소를 포함하는 코딩된 슬라이스의 일부이다. 인터 코딩이라고도 알려진 인터-예측은 현재 픽처와 다른 참조 픽처의 참조 블록에 있는 대응하는 샘플을 참조하여 현재 픽처에 있는 현재 블록의 샘플을 코딩하는 메커니즘이다. 인트라-코딩이라고도 하는 인트라-예측은 현재 픽처의 참조 블록에 있는 해당 샘플을 참조하여 현재 픽처에 있는 현재 블록의 샘플을 코딩하는 메커니즘이다(즉, 현재 블록과 참조 블록이 동일한 픽처에 있다). GDR은 완전히 인트라 코딩된 단일 픽처로 코딩된 비디오 시퀀스를 초기화하는 것을 피하기 위해 각각 인터 코딩된 영역과 인트라 코딩된 영역을 모두 포함하는 일련의 픽처를 코딩하는 메커니즘이다. GDR AU는 일련의 GDR 관련 픽처 중 첫 번째 GDR 픽처를 포함하는 AU이다. 복구 포인트 픽처는 GDR 시리즈 다음의 픽처로, 시리즈의 첫 번째 GDR 픽처보다 앞선 픽처의 데이터를 참조하지 않고 픽처가 완전히 디코딩될 수 있다. 픽처 순서 카운트(POC)는 각 픽처와 연관되고 코딩된 비디오 시퀀스의 모든 픽처 중에서 연관된 픽처를 고유하게 식별하는 변수/값이다. 또한, 연관된 픽처가 디코딩된 픽처 버퍼(DPB)로부터 출력되어야 할 때, POC는 또한 DPB에서 출력되는 동일한 코딩된 비디오 시퀀스에서 다른 픽처의 출력 순서 위치에 상대적인 출력 순서로 연관된 픽처의 위치를 나타낸다. 복구 POC는 복구 포인트 픽처의 POC이다. POC 최하위 비트(LSB)는 POC 값의 최하위 비트 중 하나 이상이다. HRD는 지정된 제약 조건에 대한 적합성을 확인하기 위해 인코딩 프로세스에 의해 생성된 비트스트림의 가변성을 확인하는 인코더에서 작동하는 디코더 모델이다. HRD 적합성 테스트는 인코딩된 비트스트림이 VVC와 같은 표준을 준수하는지를 결정하는 테스트이다. HRD 파라미터는 HRD의 작동 조건을 초기화 및/또는 정의하는 신택스 요소이다. 추가 향상 정보(supplemental enhancement information, SEI) 메시지는 디코딩된 픽처의 샘플 값을 결정하기 위해 디코딩 프로세스에서 필요하지 않은 정보를 포워딩하는 지정된 의미론을 갖는 신택스 구조이다. 버퍼링 주기(BP) SEI 메시지는 코딩된 픽처 버퍼(CPB)를 관리하기 위해 HRD를 초기화하기 위한 HRD 파라미터를 포함하는 SEI 메시지이다. CPB는 비트스트림 적합성 검증 동안 사용하기 위해 디코딩 순서로 코딩된 픽처를 포함하는 HRD의 선입선출 버퍼이다. 디코딩 순서는 신택스 요소가 디코딩 과정에서 처리되는 순서이다. CPB 제거 지연은 현재 픽처가 제거 전에 CPB에 남아 있을 수 있는 기간이다. 이전 픽처의 출력 없음 플래그는 DPB에서 이전에 디코딩된 픽처가 출력되지 않아야 함을 나타내는 데 사용되는 플래그이다.
본 명세서에서는 다음의 두문자어가 사용된다: 코딩 트리 블록(CTB), 코딩 트리 단위(CTU), 코딩 유닛(CU), 클린 랜덤 액세스(CRA), 코딩된 비디오 시퀀스(Coded Video Sequence, CVS), 점진적 디코딩 리프레시(Gradual Decoding Refresh, GDR), 점진적 랜덤 액세스(Gradual Random Access, GRA), 가상 참조 디코더(Hypothetical Reference Decoder, HRD), 즉시 디코딩 리프레시(Instantaneous Decoding Refresh, IDR), 공동 비디오 전문가 팀(Joint Video Experts Team, JVET), 모션 제약 타일 세트(Motion Constrained Tile Set, MCTS), 최대 전송 단위(Maximum Transfer Unit, MTU), 네트워크 추상화 계층(Network Abstraction Layer, NAL), 프로그레시브 인트라 리프레시(Progressive Intra Refresh, PIR), 픽처 순서 카운트(Picture Order Count, POC), 원시 바이트 시퀀스 페이로드(Raw Byte Sequence Payload, RBSP), 추가 향상 정보(Supplemental Enhancement Information, SEI), 시퀀스 파라미터 세트(Sequence Parameter Set, SPS), 버서타일 비디오 코딩(Versatile Video Coding, VVC).
데이터 손실을 최소화하면서 비디오 파일의 크기를 줄이기 위해 많은 비디오 압축 기술이 사용될 수 있다. 예를 들어, 비디오 압축 기술은 비디오 시퀀스에서 데이터 중복성을 감소 또는 제거하기 위해 공간적(예를 들어, 인트라 픽처) 예측 및/또는 시간적(예를 들어, 인터-픽처) 예측을 수행하는 것을 포함할 수 있다. 블록 기반 비디오 코딩의 경우, 비디오 슬라이스(예를 들어, 비디오 픽처 또는 비디오 픽처의 일부)는 트리블록, 코딩 트리 블록(CTB), 코딩 트리 단위(CTU), 코딩 단위(CU), 및/또는 코딩 노드로도 지칭될 수 있는 비디오 블록으로 분할될 수 있다. 픽처의 인트라 코딩된 (I) 슬라이스의 비디오 블록은 동일한 픽처의 이웃 블록에 있는 참조 샘플에 대한 공간 예측을 사용하여 코딩된다. 픽처의 인터 코딩된 단방향 예측 (P) 또는 양방향 예측 (B) 슬라이스의 비디오 블록은 다른 참조 픽처에서 동일한 픽처의 이웃 블록에 있는 참조 샘플에 대한 공간적 예측 또는 참조 샘플에 대한 시간적 예측을 사용하여 코딩될 수 있다. 픽처는 프레임 및/또는 이미지로 지칭될 수 있고, 참조 픽처는 참조 프레임 및/또는 참조 이미지로 지칭될 수 있다. 공간적 또는 시간적 예측은 이미지 블록을 나타내는 예측 블록을 생성한다. 잔차 데이터는 원본 이미지 블록과 예측 블록 간의 픽셀 차이를 나타낸다. 따라서, 인터-코딩된 블록은 예측 블록을 형성하는 참조 샘플들의 블록을 가리키는 모션 벡터 및 코딩된 블록과 예측 블록 간의 차이를 나타내는 잔차 데이터에 따라 인코딩된다. 인트라 코딩된 블록은 인트라 코딩 모드 및 잔차 데이터에 따라 인코딩된다. 추가 압축을 위해, 잔차 데이터는 픽셀 도메인에서 변환 도메인으로 변환될 수 있다. 이는 양자화될 수 있는 잔차 변환 계수를 초래한다. 양자화된 변환 계수는 초기에 2차원 어레이로 배열될 수 있다. 양자화된 변환 계수는 변환 계수의 1차원 벡터를 생성하기 위해 스캔될 수 있다. 더 많은 압축을 달성하기 위해 엔트로피 코딩이 적용될 수 있다. 이러한 비디오 압축 기술은 아래에서 더 자세히 논의된다.
인코딩된 비디오가 정확하게 디코딩될 수 있도록 보장하기 위해, 비디오는 해당 비디오 코딩 표준에 따라 인코딩 및 디코딩된다. 비디오 코딩 표준에는 ITU(International Telecommunication Union) Standardization Sector(ITU-T) H.261, International Organization for Standardization/International Electrotechnical Commission(ISO/IEC) MPEG(Motion Picture Experts Group)-1 Part 2, ITU-T H.262 또는 ISO/IEC MPEG-2 Part 2, ITU-T H.263, ISO/IEC MPEG-4 Part 2, AVC(Advanced Video Coding)(ITU-T H.264 또는 ISO/IEC MPEG-4 파트 10라고도 함) 및 고효율 비디오 코딩(HEVC)(ITU-T H.265 또는 MPEG-H 파트 2라고도 함)가 포함된다. AVC에는 스케일러블 비디오 코딩(Scalable Video Coding, SVC), 멀티뷰 비디오 코딩(Multiview Video Coding, MVC) 및 멀티뷰 비디오 코딩 플러스 깊이(MVC+D) 및 3차원(3D) AVC(3D-AVC)를 포함한다. HEVC는 Scalable HEVC(SHVC), Multiview HEVC(MV-HEVC) 및 3D HEVC(3D-HEVC)와 같은 확장을 포함한다. ITU-T와 ISO/IEC의 공동 비디오 전문가 팀(JVET)은 VVC(Versatile Video Coding)라고 하는 비디오 코딩 표준을 개발하기 시작하였다. VVC는 JVET-N1001-v3을 포함하는 작업 초안(WD)에 포함되어 있다.
인코더는 HRD와 같은 많은 컴포넌트를 사용한다. 인코더는 비트스트림을 인코딩하기 위해 다양한 컴포넌트를 사용한다. 그런 다음 HRD는 인코딩된 비트스트림을 확인하여 인코딩이 표준을 준수하는지 확인한다. 예를 들어, HRD는 디코더가 비트스트림을 디코딩할 수 있어야 하는지 확인하기 위해 비트스트림을 확인할 수 있다. 인코더는 또한 비트스트림을 인코딩하기 위해 많은 메커니즘을 사용한다. GDR은 비트스트림을 코딩하기 위해 인코더에서 사용하는 코딩 메커니즘의 예이다. GDR 픽처는 인트라-예측 코딩된 비디오 데이터 상의 수직 영역 및 인터-예측 코딩된 비디오 데이터의 하나 이상의 수직 영역을 포함한다. 인트라-예측 코딩된 영역의 위치는 일련의 관련 픽처 위로 이동하여 클린 영역을 생성한다. 클린 영역을 포함하는 픽처는 인트라-예측 데이터 또는 다른 픽처의 클린 영역을 참조하는 인터-예측 데이터만을 사용하여 클린 영역을 코딩한다. 이 결과는 디코더가 첫 번째 GDR 픽처에서 비트스트림 디코딩을 시작하고 각 픽처를 순서대로 디코딩할 수 있다는 것이다. 복구 포인트 이전의 마지막 픽처에 도달하면 디코더가 동기화되고 깨끗한 사용 가능한 데이터를 기반으로 하는 상호 예측을 사용하여 추가 픽처를 디코딩할 수 있다. 인코더의 HRD는 인트라-예측 데이터만을 포함하는 인트라 랜덤 액세스 포인트(IRAP) 픽처에 기초하여 적합성을 위해 비트스트림을 검사하도록 구성될 수 있다. 그렇지만 일부 비디오 코딩 시스템은 GDR이 사용될 때 비트스트림의 적합성을 확인하도록 구성되지 않은 HRD를 사용할 수 있다. 예를 들어, 일부 HRD는 IRAP 픽처로부터 시작하는 적합성에 대한 비트스트림 검사를 시작하도록 구성될 수 있고 GDR 기반 랜덤 액세스 포인트를 포함하는 비트스트림 시퀀스를 검사하지 않을 수 있다.
제1 예에서, 비트스트림이 랜덤 액세스 포인트로서 GDR 픽처를 사용할 때 비트스트림 적합성 검사를 수행하도록 HRD를 구성하기 위한 메커니즘이 여기에 개시된다. 인코더는 GDR 픽처가 비트스트림에 포함될 때 HRD 파라미터를 포함하는 BP SEI 메시지를 포함할 수 있다. HRD는 초기화 파라미터를 획득하기 위해 BP SEI 메시지를 읽을 수 있고 BP SEI 메시지와 연관된 GDR 픽처에서 시작하는 적합성에 대한 비트스트림 검사를 시작할 수 있다. 또한, 디코더는 BP SEI 메시지를 확인하여 비트스트림이 일치하는지 확인하고, 따라서 비트스트림이 디코딩 가능하다고 결정할 수 있다. 이와 같이 GDR 픽처에 대한 BP SEI 메시지를 포함하는 것은 인코더와 디코더 모두에서 추가 기능을 지원한다. 또한 GDR은 네트워크 통신 중 대역폭 스파이크 감소를 지원할 수 있다. 이와 같이, 현재 개시된 메커니즘은 인코더 및 디코더 모두에서 프로세서, 메모리, 및/또는 네트워크 리소스 사용을 감소시킬 수 있다.
또한, 비디오 코딩 시스템은 헤더에서 관련 픽처의 픽처 순서 카운트(POC)를 시그널링할 수도 있다. 그러한 헤더는 예에 따라 픽처 및/또는 슬라이스 헤더를 포함할 수 있다. 경우에 따라, 시그널링은 GDR 픽처의 POC와 복구 포인트 픽처의 POC의 차이를 나타내는 복구 POC 차이 값을 포함할 수 있다. 그렇지만 디코더는 복구 포인트 픽처의 실제 POC 값을 결정하기 위해서는 먼저 GDR 픽처의 POC를 결정해야 한다. 따라서 디코더는 복구 POC 차이 값을 메모리에 저장한다. 그런 다음 디코더는 GDR 픽처의 POC가 수신되고 결정되면 복구 포인트 픽처(POC) 값을 결정할 수 있다.
제2 예에서, GRD가 사용될 때 코딩 프로세스의 효율성을 증가시키는 메커니즘이 여기에 개시된다. 예에서, GDR 픽처에 대한 POC LSB 값은 슬라이스/픽처 헤더에서 시그널링된다. POC LSB 값은 복구 픽처 순서 카운트 값과 함께 헤더에 포함된다. 또한, POC LSB 값은 복구 픽처 순서 카운트 이전 위치의 헤더에 코딩된다. 이러한 방식으로, 디코더는 복구 픽처 순서 카운트를 파싱하기 전에 POC LSB 값을 파싱할 수 있다. 이와 같이, 복구 픽처 순서 카운트는 GDR 픽처에 대한 POC가 결정되면 해결될 메모리에 배치되지 않고 즉시 결정될 수 있다. 이와 같이, 본 개시는 인코더 및 디코더 모두에서 추가 기능을 지원한다. 또한, 본 개시는 인코더 및/또는 디코더에서 프로세서, 메모리, 및/또는 네트워크 통신 리소스 사용을 감소시킨다.
도 1은 비디오 신호를 코딩하는 예시적인 동작 방법(100)의 흐름도이다. 구체적으로, 비디오 신호는 인코더에서 인코딩된다. 인코딩 프로세스는 비디오 파일 크기를 줄이기 위해 다양한 메커니즘을 사용하여 비디오 신호를 압축한다. 파일 크기가 작을수록 압축된 비디오 파일이 사용자에게 전송되는 동시에 관련 대역폭 오버헤드가 줄어든다. 그런 다음 디코더는 압축된 비디오 파일을 디코딩하여 최종 사용자에게 표시할 원본 비디오 신호를 재구성한다. 디코딩 프로세스는 일반적으로 디코더가 비디오 신호를 일관되게 재구성할 수 있도록 인코딩 프로세스를 미러링한다.
단계 101에서, 비디오 신호는 인코더에 입력된다. 예를 들어, 비디오 신호는 메모리에 저장된 비압축 비디오 파일일 수 있다. 다른 예로서, 비디오 파일은 비디오 카메라와 같은 비디오 캡처 디바이스에 의해 캡처될 수 있고, 비디오의 라이브 스트리밍을 지원하도록 인코딩될 수 있다. 비디오 파일은 오디오 구성 요소와 비디오 구성 요소를 모두 포함할 수 있다. 비디오 구성 요소에는 일련의 이미지 프레임이 포함되어 있어 시퀀스로 볼 때 움직임에 대한 시각적 인상을 준다. 프레임은 여기에서 루마 성분(또는 루마 샘플)이라고 하는 광과 크로마 성분(또는 컬러 샘플)이라고 하는 색상으로 표현되는 픽셀을 포함한다. 일부 예에서, 프레임은 또한 3차원 보기를 지원하기 위해 깊이 값을 포함할 수 있다.
단계 103에서, 비디오는 블록으로 분할된다. 분할에는 압축을 위해 각 프레임의 픽셀을 정사각형 및/또는 직사각형 블록으로 세분화하는 작업이 포함된다. 예를 들어, 고효율 비디오 코딩(HEVC)(H.265 및 MPEG-H 파트 2라고도 함)에서 프레임은 먼저 미리 정의된 크기(예를 들어, 64픽셀 x 64픽셀)의 블록인 코딩 트리 단위(CTU)로 나눌 수 있다. CTU에는 루마 및 크로마 샘플이 모두 포함되어 있다. 코딩 트리를 사용하여 CTU를 블록으로 분할한 다음 추가 인코딩을 지원하는 구성이 달성될 때까지 블록을 재귀적으로 세분화할 수 있다. 예를 들어, 프레임의 루마 성분은 개별 블록이 상대적으로 균일한 조명 값을 포함할 때까지 세분화될 수 있다. 또한, 프레임의 크로마 성분은 개별 블록이 비교적 균일한 색상 값을 포함할 때까지 세분화될 수 있다. 따라서 비디오 프레임의 내용에 따라 분할 메커니즘이 달라진다.
단계 105에서, 단계 103에서 분할된 이미지 블록을 압축하기 위해 다양한 압축 메커니즘이 사용된다. 예를 들어, 인터-예측 및/또는 인트라-예측이 사용될 수 있다. 상호 예측은 공통 장면의 객체가 연속 프레임에 나타나는 경향이 있다는 사실을 이용하도록 설계되었다. 따라서, 참조 프레임에서 객체를 나타내는 블록은 인접 프레임에서 반복적으로 기술될 필요가 없다. 특히, 테이블과 같은 객체는 여러 프레임에 걸쳐 일정한 위치에 남아 있을 수 있다. 따라서 테이블은 한 번 설명되고 인접 프레임은 참조 프레임을 다시 참조할 수 있다. 패턴 일치 메커니즘을 사용하여 여러 프레임에 걸쳐 개체를 일치시킬 수 있다. 또한, 움직이는 객체는 예를 들어 객체의 움직임이나 카메라의 움직임으로 인해 여러 프레임에 걸쳐 표현될 수 있다. 특정 예로서, 비디오는 여러 프레임에 걸쳐 화면을 가로질러 움직이는 자동차를 보여줄 수 있다. 모션 벡터는 이러한 움직임을 설명하는 데 사용할 수 있다. 모션 벡터는 프레임의 객체 좌표에서 참조 프레임의 객체 좌표까지 오프셋을 제공하는 2차원 벡터이다. 이와 같이 인터-예측은 현재 프레임의 픽처 블록을 참조 프레임의 해당 블록으로부터의 오프셋을 나타내는 모션 벡터의 집합으로 인코딩할 수 있다.
인트라-예측은 공통 프레임의 블록을 인코딩한다. 인트라-예측은 루마와 크로마 성분이 한 프레임에 모여 있는 경향이 있다는 사실을 이용한다. 예를 들어, 나무의 일부에 있는 녹색 패치는 유사한 녹색 패치에 인접하게 배치되는 경향이 있다. 인트라-예측은 다중 방향 예측 모드(예를 들어, HEVC에서 33개), 평면 모드 및 직류(DC) 모드를 사용한다. 방향 모드는 현재 블록이 해당 방향에서 이웃 블록의 샘플과 유사/동일함을 나타낸다. 평면 모드는 행/열(예를 들어, 평면)을 따라 일련의 블록이 행 가장자리에 있는 인접 블록을 기반으로 보간될 수 있음을 나타낸다. 실제로 평면 모드는 값을 변경할 때 상대적으로 일정한 기울기를 사용하여 행/열에 걸쳐 빛/색상의 부드러운 전환을 나타낸다. DC 모드는 경계 평활화를 위해 사용되며 방향 예측 모드의 각도 방향과 관련된 모든 이웃 블록의 샘플과 관련된 평균값과 유사/동일한 블록을 나타낸다. 따라서 인트라-예측 블록은 실제 값이 아닌 다양한 관계형 예측 모드 값으로 픽처 블록을 표현할 수 있다. 또한, 인터-예측 블록은 실제 값이 아닌 모션 벡터 값으로 픽처 블록을 나타낼 수 있다. 어느 경우이든 예측 블록은 어떤 경우에는 이미지 블록을 정확하게 나타내지 않을 수 있다. 모든 차이는 잔차 블록에 저장된다. 파일을 추가로 압축하기 위해 나머지 블록에 변환을 적용할 수 있다.
단계 107에서, 다양한 필터링 기술이 적용될 수 있다. HEVC에서 필터는 인루프 필터링 방식에 따라 적용된다. 위에서 논의된 블록 기반 예측은 디코더에서 블록 이미지의 생성을 초래할 수 있다. 또한, 블록 기반 예측 방식은 블록을 인코딩한 다음 나중에 참조 블록으로 사용하기 위해 인코딩된 블록을 복원할 수 있다. 인루프 필터링 방식은 잡음 억제 필터, 디블로킹 필터, 적응 루프 필터, 샘플 적응 오프셋(SAO) 필터를 블록/프레임에 반복적으로 적용한다. 이러한 필터는 인코딩된 파일이 정확하게 재구성될 수 있도록 이러한 차단 아티팩트를 완화한다. 또한, 이들 필터는 재구성된 참조 블록에서 아티팩트를 완화하여 아티팩트가 재구성된 참조 블록에 기초하여 인코딩된 후속 블록에서 추가 아티팩트를 생성할 가능성이 적다.
비디오 신호가 분할, 압축 및 필터링되면, 결과적인 데이터는 단계 109에서 비트스트림으로 인코딩된다. 디코더. 예를 들어, 그러한 데이터는 파티션 데이터, 예측 데이터, 잔차 블록, 및 디코더에 코딩 명령을 제공하는 다양한 플래그를 포함할 수 있다. 비트스트림은 요청 시 디코더를 향한 전송을 위해 메모리에 저장될 수 있다. 비트스트림은 또한 복수의 디코더를 향해 브로드캐스트 및/또는 멀티캐스트될 수 있다. 비트스트림 생성은 반복적인 프로세스이다. 따라서, 단계 101, 단계 103, 단계 105, 단계 107, 및 단계 109는 많은 프레임 및 블록에 걸쳐 연속적으로 및/또는 동시에 발생할 수 있다. 도 1에 도시된 순서는 논의의 명확성과 용이함을 위해 제시되며, 비디오 코딩 프로세스를 특정 순서로 제한하기 위한 것이 아니다.
디코더는 비트스트림을 수신하고 단계 111에서 디코딩 프로세스를 시작한다. 구체적으로, 디코더는 비트스트림을 대응하는 신택스 및 비디오 데이터로 변환하기 위해 엔트로피 디코딩 방식을 사용한다. 디코더는 단계 111에서 프레임에 대한 파티션을 결정하기 위해 비트스트림으로부터의 신택스 데이터를 사용한다. 파티셔닝은 단계 103에서 블록 파티셔닝의 결과와 일치해야 한다. 단계 111에서 사용된 엔트로피 인코딩/디코딩이 설명된다. 인코더는 입력 이미지에서 값의 공간적 위치를 기반으로 여러 가능한 선택 중에서 블록 분할 방식을 선택하는 것과 같이 압축 프로세스 동안 많은 선택을 한다. 정확한 선택에 대한 신호는 많은 수의 빈(bin)을 사용할 수 있다. 본 명세서에서 사용되는 바와 같이, 빈은 변수로 취급되는 이진 값(예를 들어, 컨텍스트에 따라 변할 수 있는 비트 값)이다. 엔트로피 코딩을 사용하면 인코더가 특정 경우에 분명히 실행 가능하지 않은 옵션을 버리고 허용 가능한 옵션 집합을 남길 수 있다. 그런 다음 각 허용 옵션에 코드 단어가 할당된다. 코드 워드의 길이는 허용되는 옵션의 수를 기반으로 한다(예를 들어, 2개의 옵션에 대한 1개의 빈, 3 내지 4개의 옵션에 대한 2개의 빈 등). 그런 다음 인코더는 선택한 옵션에 대한 코드 워드를 인코딩한다. 이 체계는 코드 워드가 가능한 모든 옵션의 잠재적으로 큰 세트로부터 선택을 고유하게 표시하는 것과는 대조적으로 허용 가능한 옵션의 작은 서브-세트로부터 선택을 고유하게 나타내기 위해 원하는 만큼 크므로 코드 워드의 크기를 줄인다. 그런 다음 디코더는 인코더와 유사한 방식으로 허용 가능한 옵션 세트를 결정하여 선택을 디코딩한다. 허용 가능한 옵션 세트를 결정함으로써 디코더는 코드 워드를 읽고 인코더에 의해 만들어진 선택을 결정할 수 있다.
단계 113에서 디코더는 블록 디코딩을 수행한다. 구체적으로, 디코더는 역변환을 사용하여 잔차 블록을 생성한다. 그런 다음 디코더는 잔차 블록 및 대응하는 예측 블록을 사용하여 분할에 따라 이미지 블록을 재구성한다. 예측 블록은 단계 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), 변환 스케일링 및 양자화 컴포넌트(213), 인트라-픽처 추정 컴포넌트(215), 인트라-픽처 예측 컴포넌트(217), 모션 보상 컴포넌트(219), 모션 추정 컴포넌트(221), 스케일링 및 역변환 컴포넌트(229), 필터 제어 분석 컴포넌트(227), 인루프 필터 컴포넌트(225), 디코딩된 픽처 버퍼 컴포넌트(223), 및 헤더 포맷팅 및 컨텍스트 적응 이진 산술 코딩(header formatting and context adaptive binary arithmetic coding, CABAC) 컴포넌트(231)를 포함한다. 이러한 컴포넌트는 도시된 바와 같이 결합된다. 도 2에서 흑색선은 인코딩/디코딩할 데이터의 이동을 나타내고, 점선은 다른 컴포넌트의 동작을 제어하는 제어 데이터의 이동을 나타낸다. 코덱 시스템(200)의 컴포넌트는 모두 인코더에 존재할 수 있다. 디코더는 코덱 시스템(200)의 컴포넌트들의 서브세트를 포함할 수 있다. 예를 들어, 디코더는 인트라 픽처 예측 컴포넌트(217), 모션 보상 컴포넌트(219), 스케일링 및 역변환 컴포넌트(229), 인루프 필터 컴포넌트(225)를 포함할 수 있다. 및 디코딩된 픽처 버퍼 컴포넌트(223)를 포함한다. 이들 컴포넌트가 이제 설명된다.
분할된 비디오 신호(201)는 코딩 트리에 의해 픽셀 블록으로 분할된 캡처된 비디오 시퀀스이다. 코딩 트리는 픽셀 블록을 더 작은 픽셀 블록으로 세분화하기 위해 다양한 분할 모드를 사용한다. 그런 다음 이러한 블록을 더 작은 블록으로 세분화할 수 있다. 블록은 코딩 트리 상의 노드로 지칭될 수 있다. 더 큰 부모 노드는 더 작은 자식 노드로 분할된다. 노드가 세분화되는 횟수를 노드/코딩 트리의 깊이라고 한다. 분할된 블록은 경우에 따라 CU(Coding Unit)에 포함될 수 있다. 예를 들어, CU는 CU에 대한 해당 신택스 명령과 함께 루마 블록, 적색 차이 크로마(Cr) 블록 및 청색 차이 크로마(Cb) 블록을 포함하는 CTU의 하위 부분일 수 있다. 분할 모드는 적용된 분할 모드에 따라 다양한 모양의 노드를 각각 2, 3 또는 4개의 자식 노드로 분할하는 데 사용되는 이진 트리(BT), 삼중 트리(TT) 및 쿼드 트리(QT)를 포함할 수 있다. 분할된 비디오 신호(201)는 일반 코더 제어 컴포넌트(211), 변환 스케일링 및 양자화 컴포넌트(213), 인트라 픽처 추정 컴포넌트(215), 필터 제어 분석 컴포넌트(227) 및 압축을 위한 모션 추정 컴포넌트(221)로 포워딩된다.
일반 코더 제어 컴포넌트(211)는 애플리케이션 제약에 따라 비디오 시퀀스의 이미지를 비트스트림으로 코딩하는 것과 관련된 결정을 내리도록 구성된다. 예를 들어, 일반 코더 제어 컴포넌트(211)는 비트레이트/비트스트림 크기 대 재구성 품질(bitrate/bitstream size versus reconstruction quality)의 최적화를 관리한다. 이러한 결정은 저장 공간/대역폭 가용성 및 이미지 해상도 요청을 기반으로 할 수 있다. 일반 코더 제어 컴포넌트(211)는 또한 버퍼 언더런 및 오버런 문제를 완화하기 위해 전송 속도에 비추어 버퍼 활용을 관리한다. 이러한 문제를 관리하기 위해 일반 코더 제어 컴포넌트(211)는 다른 컴포넌트에 의한 분할, 예측 및 필터링을 관리한다. 예를 들어, 일반 코더 제어 컴포넌트(211)는 해상도를 증가시키고 대역폭 사용을 증가시키기 위해 압축 복잡도를 동적으로 증가시키거나 해상도 및 대역폭 사용을 감소시키기 위해 압축 복잡도를 감소시킬 수 있다. 따라서, 일반 코더 제어 컴포넌트(211)는 코덱 시스템(200)의 다른 컴포넌트를 제어하여 비디오 신호 재구성 품질과 비트레이트 문제의 균형을 맞춘다. 일반 코더 제어 컴포넌트(211)는 다른 컴포넌트의 동작을 제어하는 제어 데이터를 생성한다. 제어 데이터는 또한 디코더에서 디코딩하기 위한 신호 파라미터로 비트스트림에서 인코딩되도록 헤더 포맷팅 및 CABAC 컴포넌트(231)로 포워딩된다.
분할된 비디오 신호(201)는 또한 인터-예측을 위해 모션 추정 컴포넌트(221) 및 모션 보상 컴포넌트(219)로 전송된다. 분할된 비디오 신호(201)의 프레임 또는 슬라이스는 다수의 비디오 블록으로 분할될 수 있다. 모션 추정 컴포넌트(221) 및 모션 보상 컴포넌트(219)는 시간 예측을 제공하기 위해 하나 이상의 참조 프레임에서 하나 이상의 블록에 대해 수신된 비디오 블록의 인터 예측 코딩을 수행한다. 코덱 시스템(200)은 예를 들어 비디오 데이터의 각 블록에 대해 적절한 코딩 모드를 선택하기 위해 다중 코딩 패스를 수행할 수 있다.
모션 추정 컴포넌트(221) 및 모션 보상 컴포넌트(219)는 고도로 통합될 수 있지만, 개념적 목적을 위해 별도로 예시된다. 모션 추정 컴포넌트(221)에 의해 수행되는 모션 추정은 비디오 블록에 대한 모션을 추정하는 모션 벡터를 생성하는 프로세스이다. 예를 들어, 모션 벡터는 예측 블록에 대한 코딩된 객체의 변위를 나타낼 수 있다. 예측 블록은 픽셀 차이 측면에서 코딩할 블록과 밀접하게 일치하는 것으로 발견된 블록이다. 예측 블록은 참조 블록이라고도 할 수 있다. 이러한 픽셀 차이는 절대 차이의 합(Sum of Absolute Difference, SAD), 제곱 차이의 합(Sum of Square Difference, SSD), 또는 다른 차이 메트릭에 의해 결정될 수 있다. HEVC는 CTU, 코딩 트리 블록(CTB) 및 CU를 비롯한 여러 코딩된 객체를 사용한다. 예를 들어, CTU는 CTB로 분할될 수 있으며, 그런 다음 CTB는 CU에 포함되기 위해 CB로 분할될 수 있다. CU는 예측 데이터를 포함하는 예측 단위(PU) 및/또는 CU에 대한 변환된 잔차 데이터를 포함하는 변환 단위(TU)로서 인코딩될 수 있다. 모션 추정 컴포넌트(221)는 레이트-왜곡 최적화 프로세스의 일부로서 레이트-왜곡 분석을 사용함으로써 모션 벡터, PU, 및 TU를 생성한다. 예를 들어, 모션 추정 컴포넌트(221)는 현재 블록/프레임에 대한 다중 참조 블록, 다중 모션 벡터 등을 결정할 수 있고, 최상의 레이트-왜곡 특성을 갖는 참조 블록, 모션 벡터 등을 선택할 수 있다. 최고의 레이트-왜곡 특성은 비디오 재구성의 품질(예를 들어, 압축에 의한 데이터 손실의 양)과 코딩 효율성(예를 들어, 최종 인코딩의 크기)의 균형을 유지한다.
일부 예에서, 코덱 시스템(200)은 디코딩된 픽처 버퍼 컴포넌트(223)에 저장된 참조 픽처의 서브-정수 픽셀 위치에 대한 값을 계산할 수 있다. 예를 들어, 비디오 코덱 시스템(200)은 1/4 픽셀 위치, 1/8 픽셀 위치, 또는 참조 픽처의 기타 분수 픽셀 위치의 값을 보간할 수 있다. 따라서, 모션 추정 컴포넌트(221)는 전체 픽셀 위치 및 부분 픽셀 위치에 대한 모션 검색을 수행하고 부분 픽셀 정밀도를 갖는 모션 벡터를 출력할 수 있다. 모션 추정 컴포넌트(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)는 레이트-왜곡 최적화(RDO)에 기초한 깊이 모델링 모드(DMM)를 사용하여 깊이 맵의 깊이 블록을 코딩하도록 구성될 수 있다.
인트라 픽처 예측 컴포넌트(217)는 인코더 상에서 구현될 때 인트라 픽처 추정 컴포넌트(215)에 의해 결정된 선택된 인트라-예측 모드에 기초하여 예측 블록으로부터 잔차 블록을 생성하거나 디코더 상에서 구현될 때 비트스트림으로부터 잔차 블록을 판독할 수 있다. 잔차 블록은 예측 블록과 원본 블록 간의 값의 차이를 포함하며 행렬로 표현된다. 그런 다음, 잔차 블록은 변환 스케일링 및 양자화 컴포넌트(213)로 포워딩된다. 인트라 픽처 추정 컴포넌트(215) 및 인트라 픽처 예측 컴포넌트(217)는 루마 및 크로마 성분 모두에 대해 동작할 수 있다.
변환 스케일링 및 양자화 컴포넌트(213)는 잔차 블록을 추가로 압축하도록 구성된다. 변환 스케일링 및 양자화 컴포넌트(213)는 이산 코사인 변환(DCT), 이산 사인 변환(DST), 또는 개념적으로 유사한 변환과 같은 변환을 잔차 블록에 적용하여 잔차 변환 계수 값을 포함하는 비디오 블록을 생성한다. 웨이블릿 변환, 정수 변환, 부분대역 변환 또는 다른 유형의 변환도 사용할 수 있다. 변환은 잔차 정보를 픽셀 값 도메인으로부터 주파수 도메인과 같은 변환 도메인으로 변환할 수 있다. 변환 스케일링 및 양자화 컴포넌트(213)는 또한 예를 들어 주파수에 기초하여 변환된 잔차 정보를 스케일링하도록 구성된다. 그러한 스케일링은 스케일 팩터를 잔차 정보에 적용하여 상이한 주파수 정보가 상이한 입도에서 양자화되도록 하는 것을 포함하며, 이는 재구성된 비디오의 최종 시각적 품질에 영향을 미칠 수 있다. 변환 스케일링 및 양자화 컴포넌트(213)는 또한 비트레이트를 추가로 감소시키기 위해 변환 계수를 양자화하도록 구성된다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 깊이를 감소시킬 수 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 수정될 수 있다. 일부 예에서, 변환 스케일링 및 양자화 컴포넌트(213)는 그런 다음 양자화된 변환 계수들을 포함하는 행렬의 스캔을 수행할 수 있다. 양자화된 변환 계수는 헤더 포맷팅 및 CABAC 컴포넌트(231)로 전송되어 비트스트림에서 인코딩된다.
스케일링 및 역변환 컴포넌트(229)는 모션 추정을 지원하기 위해 변환 스케일링 및 양자화 컴포넌트(213)의 역연산을 적용한다. 스케일링 및 역변환 컴포넌트(229)는 예를 들어, 다른 현재 블록에 대한 예측 블록이 될 수 있는 참조 블록으로서 나중에 사용하기 위해 픽셀 도메인에서 잔차 블록을 재구성하기 위해 역 스케일링, 변환, 및/또는 양자화를 적용한다. 모션 추정 컴포넌트(221) 및/또는 모션 보상 컴포넌트(219)는 나중의 블록/프레임의 모션 추정에 사용하기 위해 대응하는 예측 블록에 잔차 블록을 다시 추가함으로써 참조 블록을 계산할 수도 있다. 스케일링, 양자화 및 변환 중에 생성된 아티팩트를 완화하기 위해 재구성된 참조 블록에 필터가 적용된다. 그렇지 않으면 후속 블록이 예측될 때 이러한 아티팩트가 부정확한 예측을 야기하고 추가 아티팩트를 생성할 수 있다.
필터 제어 분석 컴포넌트(227) 및 인루프 필터 컴포넌트(225)는 필터를 잔차 블록 및/또는 재구성된 이미지 블록에 적용한다. 예를 들어, 스케일링 및 역변환 컴포넌트(229)로부터의 변환된 잔차 블록은 인트라 픽처 예측 컴포넌트(217) 및/또는 모션 보상 컴포넌트(219)로부터의 대응하는 예측 블록과 결합되어 원본 이미지 블록을 재구성할 수 있다. 그런 다음 필터가 재구성된 이미지 블록에 적용될 수 있다. 일부 예에서, 필터들은 그 대신에 잔차 블록들에 적용될 수 있다. 도 2의 다른 컴포넌트와 마찬가지로, 필터 제어 분석 컴포넌트(227) 및 인-루프 필터 컴포넌트(225)는 고도로 통합되어 함께 구현될 수 있지만, 개념적 목적을 위해 별도로 도시된다. 재구성된 참조 블록에 적용된 필터는 특정 공간 영역에 적용되며 이러한 필터가 적용되는 방식을 조정하기 위해 여러 파라미터를 포함한다. 필터 제어 분석 컴포넌트(227)는 재구성된 참조 블록을 분석하여 그러한 필터가 적용되어야 하는 위치를 결정하고 대응하는 파라미터를 설정한다. 이러한 데이터는 인코딩을 위한 필터 제어 데이터로서 헤더 포맷팅 및 CABAC 컴포넌트(231)로 포워딩된다. 인루프 필터 컴포넌트(225)는 필터 제어 데이터에 기초하여 이러한 필터를 적용한다. 필터는 디블로킹 필터, 잡음 억제 필터, SAO 필터 및 적응 루프 필터를 포함할 수 있다. 그러한 필터는 예에 따라 공간/픽셀 도메인(예를 들어, 재구성된 픽셀 블록)에서 또는 주파수 도메인에서 적용될 수 있다.
인코더로서 동작할 때, 필터링된 재구성된 이미지 블록, 잔차 블록, 및/또는 예측 블록은 위에서 논의된 바와 같이 모션 추정에서 나중에 사용하기 위해 디코딩된 픽처 버퍼 컴포넌트(223)에 저장된다. 디코더로서 동작할 때, 디코딩된 픽처 버퍼 컴포넌트(223)는 출력 비디오 신호의 일부로서 디스플레이를 향해 재구성되고 필터링된 블록을 저장하고 포워딩한다. 디코딩된 픽처 버퍼 컴포넌트(223)는 예측 블록, 잔차 블록, 및/또는 재구성된 이미지 블록을 저장할 수 있는 임의의 메모리 장치일 수 있다.
헤더 포맷팅 및 CABAC 컴포넌트(231)는 코덱 시스템(200)의 다양한 컴포넌트들로부터 데이터를 수신하고 디코더를 향한 전송을 위해 이러한 데이터를 코딩된 비트스트림으로 인코딩한다. 구체적으로, 헤더 포맷팅 및 CABAC 컴포넌트(231)는 일반 제어 데이터 및 필터 제어 데이터와 같은 제어 데이터를 인코딩하기 위한 다양한 헤더를 생성한다. 또한, 인트라-예측 및 모션 데이터를 포함한 예측 데이터와 양자화된 변환 계수 데이터 형태의 잔차 데이터는 모두 비트스트림에서 인코딩된다. 최종 비트스트림은 원본 분할된 비디오 신호(201)를 재구성하기 위해 디코더가 원하는 모든 정보를 포함한다. 이러한 정보는 또한 인트라-예측 모드 인덱스 테이블(코드워드 매핑 테이블이라고도 함), 다양한 블록에 대한 인코딩 컨텍스트의 정의, 가장 가능성 있는 인트라-예측 모드, 파티션 정보의 지시 등을 포함할 수 있다. 이러한 데이터는 엔트로피 코딩을 사용하여 인코딩될 수 있다. 예를 들어, 정보는 컨텍스트 적응 가변 길이 코딩(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)와 실질적으로 유사할 수 있다. 모션 보상 컴포넌트(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)는 파티션 정보를 통해 프레임으로 재구성될 수 있는 추가의 재구성된 이미지 블록을 계속해서 저장한다. 이러한 프레임은 시퀀스에 배치될 수도 있다. 시퀀스는 재구성된 출력 비디오 신호로서 디스플레이를 향해 출력된다.
도 5는 예시적인 HRD(500)를 예시하는 개략도이다. HRD(500)는 코덱 시스템(200) 및/또는 인코더(300)와 같은 인코더에서 사용될 수 있다. HRD(500)는 비트스트림이 처리되기 전에 방법(100)의 단계 109에서 생성된 비트스트림을 확인할 수 있다. 일부 예에서, 비트스트림은 비트스트림이 인코딩될 때 HRD(500)를 통해 계속해서 포워딩될 수 있다. 비트스트림의 일부가 연관된 제약에 순응하는 데 실패하는 경우, HRD(500)는 그러한 실패를 인코더에 표시하여 인코더로 하여금 상이한 메커니즘으로 비트스트림의 대응하는 섹션을 다시 인코딩하게 할 수 있다.
HRD(500)는 가상 스트림 스케줄러(HSS)(541)를 포함한다. HSS(541)는 가상 포워딩 메커니즘을 수행하도록 구성된 컴포넌트이다. HRD(500)에 입력되는 비트스트림(551)의 타이밍 및 데이터 흐름과 관련하여 비트스트림 또는 디코더의 적합성을 확인하기 위해 가상의 포워딩 메커니즘이 사용된다. 예를 들어, HSS(541)는 인코더로부터 출력되는 비트스트림(551)을 수신하고, 비트스트림(551)에 대한 적합성 테스트 프로세스를 관리한다. 특정 예에서, HSS(541)는 코딩된 픽처가 HRD(500)를 통해 이동하는 속도를 제어하고 비트스트림(551)이 부적합 데이터를 포함하지 않는다는 것을 검증할 수 있다.
HSS(541)는 비트스트림(551)을 미리 정의된 속도로 CPB(543)에 포워딩할 수 있다. HRD(500)의 목적을 위해, AU 및/또는 NAL 유닛과 같은 비트스트림(551)에서 코딩된 비디오를 포함하는 임의의 유닛은 디코딩 가능 유닛(DU)(553)으로 지칭될 수 있다. CPB(543)는 HRD(500) 내의 선입 선출 버퍼이다. CPB(543)는 디코딩 순서로 코딩된 픽처 또는 그 하위 부분(예를 들어, 슬라이스)을 포함하는 DU(553)를 포함한다. CPB(543)는 비트스트림 적합성 검증 동안 사용하기 위해 그러한 픽처를 저장한다.
CPB(543)는 DU(553)를 디코딩 프로세스 컴포넌트(545)로 포워딩한다. 디코딩 프로세스 컴포넌트(545)는 VVC 표준을 따르는 컴포넌트이다. 예를 들어, 디코딩 프로세스 컴포넌트(545)는 최종 사용자에 의해 채용된 디코더(400)를 에뮬레이트할 수 있다. 디코딩 프로세스 컴포넌트(545)는 예시적인 최종 사용자 디코더에 의해 달성될 수 있는 속도로 DU(553)를 디코딩한다. 디코딩 프로세스 컴포넌트(545)가 CPB(543)의 오버플로를 방지하기에 충분히 빠르게 DU(553)를 디코딩할 수 없는 경우, 비트스트림(551)은 표준을 따르지 않으며 다시 인코딩되어야 한다.
디코딩 프로세스 컴포넌트(545)는 디코딩된 DU(555)를 생성하는 DU(553)를 디코딩한다. 디코딩된 DU(555)는 디코딩된 픽처를 포함한다. 디코딩된 DU(555)는 DPB(547)로 포워딩된다. DPB(547)는 디코딩된 픽처 버퍼 컴포넌트(223, 323, 및/또는 423)와 실질적으로 유사할 수 있다. 디코딩된 DU(555)로부터 획득된 DU(555)는 추가 디코딩을 지원하기 위해 디코딩 프로세스 컴포넌트(545)로 리턴된다. DPB(547)는 디코딩된 비디오 시퀀스를 일련의 픽처(557)로서 출력한다. 픽처(557)는 인코더에 의해 비트스트림(551)으로 인코딩된 픽처를 일반적으로 미러링하는 재구성된 픽처이다.
픽처(557)는 출력 크로핑 컴포넌트(output cropping component)(549)로 포워딩된다. 출력 크로핑 컴포넌트(549)는 픽처(557)에 적합성 크로핑 윈도우를 적용하도록 구성된다. 이것은 출력 크로핑 픽처(output cropped picture)(559)를 초래한다. 출력 크로핑 픽처(559)는 완전히 재구성된 픽처이다. 따라서, 출력 크롭 픽처(559)는 비트스트림(551)을 디코딩할 때 최종 사용자가 보게 될 것을 에뮬레이트한다. 이와 같이, 인코더는 인코딩이 만족스러운지 확인하기 위해 출력 크롭 픽처(559)를 검토할 수 있다.
도 6은 비디오 시퀀스에 대해 GDR(600)을 수행하기 위한 예시적인 메커니즘을 예시하는 개략도이다. GDR(600)은 코덱 시스템(200) 및/또는 인코더(300)와 같은 인코더에 의해 인코딩되고 코덱 시스템(200) 및/또는 디코더(400)와 같은 디코더에 의해 디코딩된 비트스트림에 사용될 수 있다. 또한, 여기에 설명된 기술을 사용함으로써, 인코더의 HRD(500)는 GDR(600)을 사용하는 비트스트림에 대해 비트스트림 적합성 검사를 수행할 수 있다.
일 실시예에서, GDR(600)은 CVS(608)와 같은 CVS에서 랜덤 액세스 포인트를 생성하기 위해 사용될 수 있다. GDR(600)은 각각 인터 코딩된 영역 및 인트라 코딩된 영역 둘 다를 포함하는 일련의 픽처를 코딩하는 메커니즘이다. IRAP 픽처와 같이 완전히 인트라 코딩된 단일 픽처로 코딩된 비디오 시퀀스(608)를 초기화하는 것을 피하기 위해 영역. 특히, 비디오 시퀀스의 대부분의 픽처는 인터-예측에 따라 코딩되므로 다른 픽처를 참조하여 디코딩된다. 디코더는 참조 픽처를 사용할 수 없는 경우 인터 코딩된 픽처를 디코딩하지 못할 수 있다. GDR(600)은 모든 픽처를 올바르게 디코딩할 수 있는 복구 포인트를 만드는 메커니즘을 제공한다.
일 실시예에서, CVS(608)는 GDR 픽처(602), 하나 이상의 트레일링 픽처(604), 및 복구 포인트 픽처(606)를 포함한다. 일 실시예에서, GDR 픽처(602)는 CVS 시작(CVSS) 픽처로 지칭된다. 또한, GDR 픽처(602)는 일련의 GDR 관련 픽처 중 첫 번째 GDR 픽처를 포함하는 AU인 GDR AU에 포함될 수 있다. CVS(608)는 비디오 비트스트림의 모든 코딩된 계층별 비디오 시퀀스(CLVS)에 대한 코딩된 비디오 시퀀스일 수 있다. 특히, 비디오 비트스트림이 단일 레이어를 포함하는 경우 CVS와 CLVS는 동일하다. CVS와 CLVS는 비디오 비트스트림이 다중 레이어를 포함할 때만 다르다. 일 실시예에서, 트레일링 픽처(604)는 GDR 기간에서 복구 포인트 픽처(606)에 선행하기 때문에 GDR 픽처의 형태로 간주될 수 있다.
일 실시예에서, GDR 픽처(602), 트레일링 픽처(604), 및 복구 포인트 픽처(606)는 CVS(608)에서 GDR 기간을 정의할 수 있다. 일 실시예에서, 디코딩 순서는 GDR 픽처(602)로 시작하고 트레일링 픽처(604)로 계속 이어지며, 그런 다음 복구 픽처(606)로 진행한다. CVS(608)는 GDR 픽처(602)로 시작하는 일련의 픽처(또는 그 일부)이며, 다음 GDR 픽처 또는 비트스트림의 끝까지 모든 픽처(또는 그 일부)를 포함하지만, 다음 GDR 픽처 또는 비트스트림의 끝은 포함하지 않는다. GDR 기간은 GDR 픽처(602)로 시작하고 복구 포인트 픽처(606)까지의 모든 픽처를 포함하는 일련의 픽처이다. CVS(608)에 대한 디코딩 프로세스는 GDR 픽처(602)가 비디오에의 랜덤 액세스 포인트로서 사용될 때 GDR 픽처(602)에서 시작된다. 랜덤 액세스 포인트는 디코더가 사용 가능한 비디오 데이터를 얻기 위해 디코딩을 시작할 수 있는 비트스트림의 임의의 위치이다.
도 6에 도시된 바와 같이, GDR(600)은 GDR 픽처(602)로 시작하여 복구 포인트 픽처(606)로 끝나는 일련의 픽처에 걸쳐 동작한다. GDR 픽처(602)는 인트라-예측(즉, 인트라-예측된 블록)을 사용하여 모두 코딩될 블록을 포함하는 리프레시된/클린 영역(610) 및 인터-예측(즉, 인터-예측된 블록)을 포함하는 리프레시되지 않은/더티 영역(612)을 포함한다. 인트라-예측된 블록은 다른 픽처를 참조하지 않고 디코딩될 수 있다. 그렇지만 더티 영역에서 인터-예측된 블록은 GDR 픽처(602)보다 선행하는 픽처를 참조함으로써만 디코딩될 수 있고, 따라서 GDR 픽처(602)가 랜덤 액세스 포인트로 사용되지 않는 경우에만 디코딩될 수 있다.
GDR 픽처(602)에 바로 인접한 트레일링 픽처(604)는 인트라-예측을 사용하여 코딩된 제1 영역(610A) 및 인터-예측을 사용하여 코딩된 제2 영역(610B)을 갖는 리프레시된/클린 영역(610)을 포함한다. 제2 영역(610B)은 예를 들어 CVS(608)의 GDR 기간 내의 선행 픽처의 리프레시/클린 영역(610)을 참조함으로써 코딩된다. 도시된 바와 같이, 트레일링 픽처(604)의 리프레시된/클린 영역(610)은 코딩 프로세스가 일관된 방향(예를 들어, 왼쪽에서 오른쪽으로)으로 이동하거나 진행함에 따라 확장되며, 이에 상응해서 리프레시되지 않은/더티 영역(612)이 축소된다. 주목할 것은, 인터-예측 블록으로 코딩된 리프레시/클린 영역(610)의 제2 영역(610B)은 참조 픽처에서 리프레시된 영역/클린 영역(610)만을 참조할 수 있다는 것이다. 이 제한은 더티 데이터가 리프레시된 영역/클린 영역(610)으로 유입되지 않도록 한다.
따라서, 복구 포인트 픽처(606)는 GDR 시리즈 이후의 픽처이므로, 복구 포인트 픽처(606)는 시리즈의 첫 번째 GDR 픽처(602)보다 선행하는 픽처들로부터의 데이터를 참조하지 않고 완전히 디코딩될 수 있다. 예를 들어, 복구 포인트 픽처(606)는 이전 픽처에서 랜덤 클린 영역(610)을 참조함으로써 인터-예측에 의해 코딩될 수 있다. 도 6에 도시된 바와 같이, 디코더는 복구 포인트 픽처(606)에 도달하면 디코더가 픽처 디스플레이를 시작하기를 원할 수 있기 때문에 어떤 픽처가 복구 포인트 픽처(606)인지 신속하게 결정하기를 원할 수 있다. 예를 들어, 이전 픽처의 출력 없음 플래그는 GDR 픽처(602)와 연관된 픽처 또는 슬라이스 헤더와 같은 헤더에 설정될 수 있다. 이 플래그가 설정되면 복구 포인트 픽처(606)가 도달할 때까지 픽처가 사용자에게 출력되지 않는다. 이것은 디스플레이를 위해 적절하게 디코딩될 수 없는 리프레시되지 않은/더티 영역(612)을 포함하는 GDR 픽처(602) 및 트레일링 픽처(604)의 디스플레이를 방지할 수 있다.
이 프로세스는 POC 값을 사용하여 관리할 수 있다. POC는 각 픽처와 연관되어 있는 변수/값이면서 CVS(608)의 모든 픽처 중에서 연관 픽처를 유일하게 식별하는 변수/값이다. 또한, 연관 픽처가 DPB로부터 출력될 때, POC는 동일한 CVS(608)에서 DPB로부터도 출력될 다른 픽처의 출력 순서 위치와 관련해서 그 출력 순서에서 연관된 픽처의 위치를 지시한다. 이와 같이, GDR 픽처(602)는 GDR POC(621)를 가지고, 트레일링 픽처(604)는 POC(623)를 가지며, 복구 포인트 픽처(606)는 복구 POC(622)를 가진다. 이와 같이, GDR POC(621)는 GDR 픽처(602)의 POC이고 복구 POC(622)는 복구 포인트 픽처(606)의 POC이다. 디코더는 POC 값을 사용하여 GDR 기간과 관련된 디코딩 세부 사항을 결정할 수 있다. 예를 들어, 헤더는 GDR 픽처(602)와 연관된 POC LSB를 나타내기 위해 사용될 수 있다. POC LSB는 POC 값에서 최하위 비트 중 하나 이상이다. 디코더는 GDR POC(621)를 결정하기 위해 다른 신택스 요소와 함께 GDR 픽처(602)의 POC LSB를 사용할 수 있다. 이 접근법은 GDR POC(621)를 표현하기 위해 사용된 비트의 수를 감소시킬 수 있다. 복구 POC(622)는 차이로서 표현될 수 있다. 이와 같이, 디코더는 헤더로부터의 POC LSB 값에 기초하여 GDR 픽처(602)에 대한 POC를 결정할 수 있다. 디코더는 그런 다음 헤더로부터 복구 POC(622) 값을 획득하고 GDR 픽처(602)에 대한 GDR POC(621)에 기초하여 복구 POC(622) 값을 해결할 수 있다. 일단 해결/결정되면, 복구 POC(622) 값은 복구 포인트에 대한 POC를 나타낸다. 그런 다음 디코더는 복구 포인트 픽처(606)로부터 시작하여 재구성된 픽처를 디스플레이하기 시작할 수 있다.
도 7은 GDR(600)을 지원하기 위해 인코더 제한을 사용할 때 바람직하지 않은 모션 검색(700)을 예시하는 개략도이다. 도시된 바와 같이, 모션 검색(700)은 현재 픽처(702) 및 참조 픽처(704)를 묘사한다. 현재 픽처(702) 및 참조 픽처(704)는 각각 인트라-예측으로 코딩된 리프레시된 영역(706), 인터-예측으로 코딩된 리프레시된 영역(705), 및 리프레시되지 않은 영역(708)을 포함한다. 인트라-예측으로 코딩된 리프레시된 영역(706), 인터-예측으로 코딩된 리프레시된 영역(705), 및 리프레시되지 않은 영역(708)은 도 6의 리프레시된/클린 영역(610), 리프레시된/클린 영역(610)의 제2 영역(610B), 및 리프레시되지 않은/더티 영역(612)과 유사하다.
모션 탐색 프로세스 동안, 인코더는 리프레시된 영역(705-706) 외부에 위치된 샘플을 포함하는 참조 블록(712)을 가리키는 임의의 모션 벡터(710)를 선택하는 것이 제한되거나 방지된다. 이것은 참조 블록(712)이 현재 픽처(702)에서 현재 블록(714)을 예측할 때 최상의 비율-왜곡 비용 기준을 제공하는 경우에도 발생한다. 그렇지만 이 제약을 적용하면 리프레시된 영역(705-706)이 어떠한 더티 데이터도 참조하지 않게 되고 따라서 연관된 GDR 픽처가 랜덤 액세스 포인트로 사용될 때 디코딩할 수 없게 되지 않는다.
도 8은 GDR(600)과 같은 GDR이 사용될 때 HRD(500)와 같은 HRD를 초기화하는데 사용하기 위한 예시적인 비트스트림(800)을 도시하는 개략도이다. 예를 들어, 비트스트림(800)은 코덱 시스템(200) 및/또는 코덱 시스템(200)에 의한 디코딩을 위한 인코더(300) 및/또는 방법(100)에 따른 디코더(400)에 의해 생성될 수 있다.
비트스트림(800)은 SPS(810), 복수의 픽처 파라미터 세트(PPS)(811), 복수의 슬라이스 헤더(815), 및 이미지 데이터(820)를 포함한다. SPS(810)는 코딩된 비디오 시퀀스의 모든 픽처에 공통인 시퀀스 데이터를 포함한다. 이러한 데이터는 픽처 사이징, 비트 심도, 코딩 툴 파라미터, 비트레이트 제한 등을 포함할 수 있다. PPS(811)는 전체 픽처에 적용되는 파라미터를 포함한다. 따라서, 비디오 시퀀스의 각 픽처는 PPS(811)를 참조할 수 있다. 각 픽처는 PPS(811)를 참조하지만, 일부 예에서 단일 PPS(811)는 다수의 픽처에 대한 데이터를 포함할 수 있다는 점에 유의해야 한다. 예를 들어, 다수의 유사한 픽처가 유사한 파라미터에 따라 코딩될 수 있다. 이러한 경우, 하나의 PPS(811)에는 이와 같은 유사한 픽처에 대한 데이터가 포함될 수 있다. PPS(811)는 대응하는 픽처의 슬라이스, 양자화 파라미터, 오프셋 등을 위해 이용 가능한 코딩 도구를 나타낼 수 있다. 슬라이스 헤더(815)는 픽처의 각 슬라이스에 특정한 파라미터를 포함한다. 따라서, 비디오 시퀀스의 슬라이스당 하나의 슬라이스 헤더(815)가 있을 수 있다. 슬라이스 헤더(815)는 슬라이스 유형 정보, POC, 참조 픽처 목록, 예측 가중치, 타일 엔트리 포인트, 디블록킹 파라미터 등을 포함할 수 있다. 슬라이스 헤더(815)는 또한 일부 컨텍스트에서 타일 그룹 헤더로 지칭될 수 있음에 유의해야 한다. 일부 예에서, 비트스트림(800)은 또한 단일 픽처의 모든 슬라이스들에 적용되는 파라미터들을 포함하는 신택스 구조인 픽처 헤더를 포함할 수 있다는 점에 유의해야 한다. 이러한 이유로, 픽처 헤더와 슬라이스 헤더(815)는 일부 상황에서 혼용될 수 있다. 예를 들어, 특정 파라미터는 그러한 파라미터가 픽처의 모든 슬라이스에 공통되는지에 따라 슬라이스 헤더(815)와 픽처 헤더 사이에서 이동될 수 있다.
이미지 데이터(820)는 인터-예측 및/또는 인트라-예측에 따라 인코딩된 비디오 데이터와 대응하는 변환 및 양자화된 잔차 데이터를 포함한다. 예를 들어, 비디오 시퀀스는 복수의 픽처(823)를 포함한다. 픽처(823)는 비디오 시퀀스의 대응하는 순간에 사용자에게 완전히 또는 부분적으로 디스플레이하도록 의도된 완전한 이미지이다. 픽처(823)는 단일 AU(821)에 포함될 수 있다. AU(821)는 단일 코딩된 픽처(823) 및 선택적으로 하나 이상의 헤더에 저장되도록 구성된 코딩 단위이며, 이 하나 이상의 헤더는 예를 들어 슬라이스 헤더(815)와 같이, 코딩된 픽처(823)를 코딩하는 데 사용되는 코딩 메커니즘을 설명하는 파라미터를 포함한다. 픽처(823)는 하나 이상의 슬라이스(825)를 포함한다. 슬라이스(825)는 완전한 타일의 정수 또는 단일 NAL 단위에 배타적으로 포함되는 픽처(823)의 연속적인 완전한 CTU 행(예를 들어, 타일 내)의 정수로 정의될 수 있다. 슬라이스(825)는 CTU 및/또는 코딩 트리 블록(CTB)으로 더 분할된다. CTU는 코딩 트리로 분할할 수 있는 미리 정의된 크기의 샘플 그룹이다. CTB는 CTU의 하위 집합이며 CTU의 루마 구성 요소 또는 크로마 구성 요소를 포함한다. CTU/CTB는 코딩 트리를 기반으로 코딩 블록으로 더 분할된다. 그런 다음, 코딩 블록은 예측 메커니즘에 따라 인코딩/디코딩될 수 있다.
위에서 언급한 바와 같이, 일부 비디오 코딩 시스템은 비트스트림(800)이 GDR(600)에 따라 코딩된 픽처(823)를 포함할 때 HRD(500)를 수행하도록 구성되지 않을 수 있다. 이는 HRD(500)가 IRAP 픽처에서 적합성 테스트를 수행하기 시작하도록 구성될 수 있기 때문이다. 이 문제를 해결하기 위해 BP SEI 메시지(817)가 사용될 수 있다. BP SEI 메시지(817)는 GDR AU와 연관될 수 있다. 예를 들어, BP SEI 메시지(817)는 GDR 픽처(예를 들어, GDR 기간의 첫 번째 픽처)를 포함하는 각각의 AU(821)에 대한 비트스트림(800)에 포함될 수 있다. SEI 메시지는 디코딩된 픽처의 샘플 값을 결정하기 위해 디코딩 프로세스에서 필요하지 않은 정보를 포워딩하는 지정된 의미론을 갖는 신택스 구조이다. 따라서, SEI 메시지는 비트스트림(800)을 디코딩하는 것과 직접적으로 관련되지 않은 시그널링 파라미터에 사용된다. BP SEI 메시지(817)는 CPB(543)와 같은 CPB를 관리하기 위해 HRD를 초기화하기 위한 HRD 파라미터(836)를 포함하는 SEI 메시지이다. CPB는 지정된 기간 동안 픽처를 유지/버퍼링할 수 있다. 이와 같이, BP SEI 메시지(817)는 CPB에서 버퍼링 기간을 지정하도록 구성될 수 있다. HRD 파라미터(836)는 HRD의 초기화를 지원하는 임의의 파라미터를 포함한다. 예를 들어, HRD 파라미터들(836)은 초기 CPB 제거 지연을 포함할 수 있다. CPB 제거 지연은 현재 픽처가 제거되기 전에 CPB에 남아 있을 수 있는 기간이다. CPB 제거 지연은 디코딩 순서의 GDR AU의 위치에서 HRD의 초기화를 위해 사용될 수 있다. 이와 같이, BP SEI 메시지(817)는 GDR 픽처에서 HRD를 초기화하기 위해 사용될 수 있고, 따라서 비트스트림(800)이 GDR 픽처를 포함할 때 비트스트림 적합성 테스트의 적용을 지원한다. 또한, BP SEI 메시지(817)의 HRD 파라미터(836)는 비트스트림이 적합성 테스트를 받았다는 것을 디코더에 표시할 수 있다. 따라서, BP SEI 메시지(817)의 HRD 파라미터(836)는 디코더가 비트스트림(800)을 디코딩할 수 있다는 것을 디코더에 나타낼 수 있다.
비트스트림(800)은 또한 GDR의 사용을 지원하는 다른 메커니즘을 포함할 수 있다. 예를 들어, 슬라이스 헤더(815) 또는 해당 픽처 헤더는 이전 픽처의 출력 없음 플래그(831)를 포함할 수 있다. 이전 픽처의 출력 없음 플래그(831)는 GDR AU에 포함된 GDR 픽처에 대한 헤더에 설정될 수 있다. 이전 픽처의 출력 없음 플래그(831)는 GDR 기간의 픽처가 복구 픽처에 도달할 때까지 출력되지 않아야 한다는 것을 디코더에 나타내도록 설정될 수 있다. 그런 다음, 복구 픽처는 더티 데이터에 부분적으로 기초하여 재구성되는 부분적으로 디코딩된 픽처를 디스플레이하지 않고 디스플레이될 수 있다.
또한, 비트스트림(800)은 예를 들어 슬라이스 헤더(815) 또는 대응하는 픽처 헤더에 POC LSB 값(833) 및 복구 POC 값(835)을 포함할 수 있다. POC LSB 값(833)은 POC 값의 최하위 비트 중 하나 이상을 포함한다. POC LSB 값(833)은 GDR 픽처와 연관될 수 있고, 따라서 GDR 픽처에 대한 POC의 LSB를 나타낼 수 있다. 예를 들어, POC LSB 값(833)은 ph_pic_order_cnt_lsb 값으로 헤더에 포함될 수 있다. ph_pic_order_cnt_lsb 값은 현재 픽처가 GDR 픽처인 경우 현재 픽처에 대한 POC 모듈로 최대 POC LSB를 지정할 수 있다. 복구 POC 값(835)은 GDR 픽처와 연관된 복구 포인트 픽처의 POC를 나타낸다. 예를 들어, 복구 POC 값(835)은 POC LSB 값(833)과 동일한 헤더에 포함될 수 있다. 또한, 복구 POC 값(835)은 복구 POC 카운트(recovery_poc_cnt) 값으로 시그널링될 수 있다. Recovery_poc_cnt 값은 GDR POC와 복구 포인트 픽처 POC 간의 POC 카운트의 차이로서 출력 순서대로 디코딩된 픽처들의 복구 포인트를 지정한다. 또한, POC LSB 값(833)은 복구 POC 값(835) 이전에 헤더에 나열될 수 있다. 이러한 방식으로, 디코더는 헤더를 파싱하여 POC LSB 값(833)을 획득하고 GDR POC를 결정할 수 있다. 디코더는 헤더를 파싱하여 복구 POC 값(835)을 얻을 수 있다. GDR POC는 POC LSB 값(833)에 기초하여 이미 결정되었기 때문에, 복구 POC 값(835)은 복구 포인트 픽처(POC)가 결정될 수 있도록 즉시 해결될 수 있다. 이것은 디코더가 GDR 픽처에 대한 POC LSB 값(833)이 파싱되고 해석될 수 있을 때까지 메모리에 해석되지 않은 복구 POC 값(835)을 저장하는 것을 피할 수 있게 한다. 이와 같이, 비트스트림(800)은 예를 들어 HRD와 관련하여 및/또는 디코더와 관련하여 증가된 GDR 기능을 지원하는 다양한 메커니즘을 포함한다. 이와 같이, 비트스트림(800)과 관련하여 설명된 메커니즘은 인코더 및/또는 디코더의 기능을 증가시킬 수 있다. 또한, 비트스트림(800)과 관련하여 설명된 메커니즘은 증가된 코딩 효율성을 지원하고 및/또는 인코더 및/또는 디코더에서 프로세서, 메모리, 및/또는 네트워크 통신 리소스의 감소를 지원할 수 있다.
선행 정보는 이제 아래에서 더 자세히 설명된다. 고효율 비디오 코딩(HEVC)을 구현하는 비디오 코딩 시스템은 복수의 IRAP 픽처를 사용할 수 있다. 구체적으로, HEVC, IDR, BLA(Broken Link Access) 및 CRA 픽처를 함께 IRAP 픽처로 간주한다. VVC를 사용하는 비디오 코딩 시스템은 IDR 및 CRA 픽처를 IRAP 픽처로 사용할 수도 있다. IRAP 픽처는 다음과 같은 기능/이점을 제공할 수 있다. IRAP 픽처의 존재는 디코딩 프로세스가 해당 픽처에서 시작할 수 있음을 나타낸다. 이 기능은 IRAP 픽처가 해당 위치에 존재하는 한 디코딩 프로세스가 반드시 비트스트림의 시작일 필요는 없는 비트스트림의 위치에서 시작할 수 있는 랜덤 액세스 기능을 지원한다. IRAP 픽처의 존재는 또한 RASL(Random Access Skipped Leading) 픽처를 제외하고 디코딩 순서에서 IRAP 픽처 이후에 코딩된 픽처가 IRAP 픽처 이전의 픽처에 대한 참조 없이 코딩되도록 디코딩 프로세스를 리프레시할 수도 있다. 따라서, IRAP 픽처 이전의 픽처를 디코딩할 때 발생할 수 있는 임의의 코딩 오류는 IRAP 픽처를 통해 디코딩 순서에서 IRAP 픽처를 뒤따르는 픽처로 전파되지 않을 수 있다.
IRAP 픽처는 압축 효율에 대한 불이익을 감수하면서 다양한 기능을 제공한다. 예를 들어, IRAP 픽처가 있으면 비트레이트가 급증한다. 압축 효율에 대한 이러한 불이익은 두 가지 원인이 있다. 첫째, IRAP 픽처는 인트라-예측된 픽처이다. 따라서, 인터-예측된 다른 픽처보다 IRAP를 표현하기 위해 더 많은 비트가 사용될 수 있다. 둘째, IRAP 픽처의 존재는 시간적 예측을 깨뜨릴 수 있다. 이는 IRAP 픽처가 디코딩 과정을 리프레시하고 DPB에서 이전 참조 픽처를 제거할 수 있기 때문이다. 이와 같이, 디코딩 순서에서 IRAP 픽처를 뒤따르는 픽처의 코딩 효율은 그러한 픽처가 인터-예측 코딩을 수행할 때 선택할 참조 픽처가 더 적기 때문에 감소될 수 있다.
IRAP 픽처로 간주되는 픽처 유형 중에서, IDR 픽처는 다른 픽처 유형과 비교할 때 상이한 시그널링 및 유도를 사용할 수 있다. 일부 차이점은 다음과 같다. IDR 픽처의 POC 값의 시그널링 및 유도를 위해, POC의 최상위 비트(Most Significant Bit, MSB) 일부는 이전 키 픽처로부터 유도되지 않고, 대신에 0과 동일하게 설정될 수 있다. 참조 픽처 관리에 사용되는 시그널링 정보의 경우, IDR 픽처의 슬라이스 헤더는 참조 픽처 관리에 도움이 되는 정보를 포함하지 않을 수 있다. CRA 및 트레일링 픽처와 같은 다른 픽처 유형은 참조 픽처 마킹 프로세스를 지원하기 위해 참조 픽처 세트(RPS) 또는 참조 픽처 목록 정보와 같은 정보를 포함할 수 있다. 참조 픽처 마킹 프로세스는 참조용으로 사용되거나 참조용으로 사용되지 않는 DPB에서 참조 픽처의 상태를 결정하는 프로세스이다. 그렇지만 IDR 픽처의 경우, IDR의 존재는 디코딩 프로세스가 DPB의 모든 참조 픽처를 참조용으로 사용하지 않은 것으로 표시해야 함을 나타내기 때문에 이러한 정보는 시그널링되지 않을 수 있다.
리딩 픽처가 존재하는 경우, IRAP 픽처와 연관된다. 리딩 픽처는 디코딩 순서에서 연관된 IRAP 픽처를 따르지만 프레젠테이션/출력 순서에서 IRAP 픽처보다 앞선 픽처이다. 코딩 구성 및 픽처 참조 구조에 따라 리딩 픽처는 두 가지 유형으로 더 식별된다. 첫 번째 유형은 디코딩 프로세스가 연관된 IRAP 픽처에서 시작될 때 올바르게 디코딩되지 않을 수 있는 리딩 픽처이다. 이러한 픽처는 RASL(Random Access Skipped Leading) 픽처로 알려져 있다. RASL 픽처는 디코딩 순서에서 IRAP 픽처보다 앞선 픽처를 참조하여 코딩되기 때문에 이 경우 RASL 픽처는 디코딩되지 않을 수 있다. 두 번째 유형은 관련 IRAP 픽처에서 디코딩 프로세스가 시작되는 경우에도 올바르게 디코딩될 수 있는 리딩 픽처이다. 이러한 픽처는 RADL(Random Access Decodable Leading) 픽처로 알려져 있다. RADL 픽처는 디코딩 순서에서 IRAP 픽처에 선행하는 픽처를 직간접적으로 참조하지 않고 코딩되기 때문에 RADL 픽처가 디코딩될 수 있다. 일부 비디오 코딩 시스템은 RASL 및 RADL 픽처가 동일한 IRAP 픽처와 연관될 때 RASL 픽처가 출력 순서에서 RADL 픽처보다 선행해야 하는 제약을 사용한다.
IRAP 픽처 및 리딩 픽처에는 시스템 레벨 애플리케이션에 의한 식별을 지원하기 위해 서로 다른 NAL 유닛 유형이 할당된다. 예를 들어, 비디오 스플라이서(video splicer)는 코딩된 비트스트림의 상세한 신택스 요소를 검토하지 않고 코딩된 픽처 유형을 결정하도록 구성될 수도 있다. 예를 들어, 비디오 스플라이서는 비-IRAP 픽처로부터 IRAP 픽처를 식별하고 트레일링 픽처로부터 RASL 및 RADL 픽처를 결정하는 것을 포함하는 리딩 픽처를 식별할 수도 있다. 트레일링 픽처는 IRAP 픽처와 연관된 픽처이며 출력 순서에서 IRAP 픽처를 따른다. 픽처가 디코딩 순서에서 특정 IRAP 픽처를 따르고 디코딩 순서에서 임의의 다른 IRAP 픽처보다 선행할 때 픽처는 특정 IRAP 픽처와 연관된다. 따라서, IRAP 및 리딩 픽처를 할당하면 별개의 NAL 유닛 유형이 이러한 애플리케이션을 지원한다.
픽처 유형에 대한 일부 예시적인 NAL 유닛 유형은 다음과 같다. 리딩 픽처가 있는 BLA(BLA_W_LP)는 디코딩 순서에서 하나 이상의 리딩 픽처가 뒤따를 수 있는 BLA(Broken Link Access) 픽처의 NAL 단위이다. RADL을 포함하는 BLA(BLA_W_RADL)는 디코딩 순서에서 하나 이상의 RADL 픽처가 뒤따를 수 있지만 RASL 픽처가 없을 수 있는 BLA 픽처의 NAL 단위이다. 리딩 픽처가 없는 BLA(BLA_N_LP)는 디코딩 순서에서 리딩 픽처가 뒤따르지 않는 BLA 픽처의 NAL 단위이다. RADL이 있는 IDR(IDR_W_RADL)은 하나 이상의 RADL 픽처가 뒤따를 수 있지만 디코딩 순서에서 RASL 픽처가 없을 수 있는 IDR 픽처의 NAL 단위이다. 리딩 픽처가 없는 IDR(IDR_N_LP)은 디코딩 순서에서 리딩 픽처가 뒤따르지 않는 IDR 픽처의 NAL 단위이다. CRA는 RASL 픽처, RADL 픽처 또는 둘 다와 같은 리딩 픽처가 뒤따를 수 있는 CRA 픽처의 NAL 단위이다. RADL은 RADL 픽처의 NAL 단위이다. RASL은 RASL 픽처의 NAL 단위이다.
낮은 지연 애플리케이션의 경우, IRAP 픽처를 피하는 것은 비-IRAP 픽처 코딩과 비교하여 IRAP 픽처 코딩의 상대적으로 더 큰 비트레이트 요건으로 인해 유리할 수 있는데, 그와 같은 더 큰 비트레이트 요구사항은 증가된 레이턴시 및/또는 지연을 야기한다. 그러나 모든 낮은 지연 애플리케이션에서 랜덤 액세스 포인트 사용을 완전히 피하는 것은 불가능할 수 있다. 예를 들어, 다자간 원격 회의와 같은 대화형 애플리케이션은 새로운 사용자가 원격 회의에 참여할 수 있는 정기적인 지점을 제공해야 할 수 있다.
프로그레시브 인트라 리프레시(PIR)는 IRAP 픽처를 사용하지 않고 비트스트림에 랜덤 액세스 포인트를 제공하기 위해 채용될 수 있는 예시적인 메커니즘이다. 이 접근 방식을 통해 새로운 사용자는 IRAP와 관련된 비트레이트의 증가된 피크를 피하면서 다자간 원격 회의 애플리케이션에 참여할 수 있다. PIR은 또한 점진적 디코딩 리프레시(GDR) 및/또는 점진적 랜덤 액세스(GRA)로 지칭될 수 있다. 도 6은 GDR을 수행하기 위한 예시적인 메커니즘을 도시한다. GDR 기술은 GDR 픽처에서 시작하는 여러 픽처에 대해 작동한다. GDR 픽처는 영역 내의 모든 코딩된 블록이 인트라-예측된 블록으로 코딩되는 하나의 영역을 포함한다. 이 영역은 리프레시된/클린 영역으로 지칭될 수 있다. 나머지 GDR 픽처의 블록은 인터-예측 블록으로 코딩될 수 있다. 이 영역은 리프레시되지 않은/더티 영역으로 지칭될 수 있다. GDR 픽처를 뒤따르는 픽처에서는 인트라-예측 블록으로 코딩된 영역이 일관된 방향(예를 들어, 왼쪽에서 오른쪽으로)으로 이동한다. 이 메커니즘은 상호 예측된 블록을 포함하는 더티 영역을 축소한다. 각각의 후속 픽처에 대해, 이전 픽처로부터 클린 영역과 함께 배치된 영역은 인터-예측에 따라 코딩될 수 있으며, 이는 클린/리프레시 영역의 크기를 증가시킨다. 현재 픽처의 클린 영역은 참조 픽처의 클린 영역으로부터 블록을 참조하기 위해 인터-예측만을 사용할 수 있다.
HEVC를 적용하는 비디오 시스템은 복구 포인트 SEI 메시지 및 영역 리프레시 정보 SEI 메시지를 사용함으로써 비규범적으로 GDR을 지원할 수 있다. 이러한 SEI 메시지는 GDR이 수행되는 방식을 정의하지 않을 수 있지만 GDR 기간에서(예를 들어, 복구 포인트 SEI 메시지에서) 첫 번째와 마지막 픽처 및 (예를 들어, 영역 리프레시 정보 SEI 메시지에서) 리프레시되는 영역을 나타내기 위한 메커니즘을 제공할 수 있다. GDR은 모션 벡터에 대한 CIP(Constraint Intra-Prediction) 및 인코더 제약을 사용하여 수행될 수 있다. CIP는 인트라 코딩된 영역이 새로 고쳐지지 않은 영역의 샘플을 참조하지 않도록 하기 때문에 CIP를 사용하여 인트라 코딩된 영역을 코딩할 수 있다. CIP는 관련 제약이 리프레시된 영역의 인트라 코딩된 블록과 픽처의 모든 인트라 코딩된 블록 모두에 적용되기 때문에 코딩 성능 저하를 유발할 수 있다. 모션 벡터에 대한 인코더 제약은 인코더가 리프레시된 영역 외부에 위치한 참조 픽처의 샘플을 사용하는 것을 제한함으로써 적용될 수 있다. 이러한 제약은 최적이 아닌 모션 검색을 초래할 수 있다. 도 7은 GDR을 지원하기 위해 인코더 제한을 사용함으로써 초래되는 예시적인 비최적 모션 검색을 도시한다. 모션 검색 프로세스 동안 인코더는 리프레시된 영역 외부에 위치한 참조 블록의 샘플을 참조하는 모션 벡터를 선택하는 것이 방지된다. 이 조건은 해당 참조 블록이 레이트-왜곡 비용 기준에 따라 최상의 참조 블록인 경우에도 유지된다.
CIP 및 인코더 제약 접근법의 사용에 기초한 GDR의 예시적인 구현은 다음과 같이 요약될 수 있다. 인트라-예측 모드는 열 기반의 코딩 단위에 대해 강제된다. 제한된 인트라-예측은 인트라-예측된 코딩 단위의 재구성을 보장하기 위해 활성화된다. 모션 벡터는 필터 오류 확산을 방지하기 위해 6 개의 픽셀과 같은 추가 여백을 고려하면서 리프레시된 영역 내를 가리키도록 제한된다. 인트라-예측된 열을 리루핑(re-looping)할 때 이전 참조 픽처가 제거될 수 있다. GDR의 다른 예시적인 구현은 GDR 기간에서 첫 번째 및 마지막 픽처로서 사용되는 픽처를 나타내기 위해 이용될 수 있다. 이 예는 다음과 같이 요약할 수 있다. NAL 유닛 유형 복구 포인트 지시를 갖는 NAL 유닛은 비-비디오 코딩 계층(VCL) NAL 유닛으로서 채용될 수 있다. NAL 유닛의 페이로드는 GDR 기간에서 마지막 픽처의 POC 값을 유도하는 데 사용할 수 있는 정보를 지정하는 신택스 요소를 포함한다. 유형 복구 포인트 지시를 갖는 비-VCL NAL 유닛을 포함하는 액세스 유닛은 복구 포인트 시작(Recovery Point Begin, RBP) 액세스 유닛으로 지칭될 수 있다. RBP 액세스 단위의 픽처를 RBP 픽처라고 한다. 디코딩 프로세스는 RBP AU에서 시작할 수 있다. RBP AU에서 디코딩이 시작되면 마지막 픽처를 제외하고 GDR 기간의 모든 픽처가 디스플레이를 위해 출력되지 않는다.
예시적인 구현에서, GRA를 구현하기 위해 VVC를 사용하는 비디오 코딩 시스템은 코딩된 비디오 시퀀스(CVS)가 완전히 인트라 코딩되지 않은 GRA 픽처로 시작하는 것을 가능하게 하기 위해 다음 요소를 사용할 수 있다. SPS의 gra_enabled_flag는 GRA 픽처가 존재할 수 있는지를 지정할 수 있다. GRA_NUT는 GRA 픽처를 나타내는 NAL 유닛 유형이다. 슬라이스 헤더의 recovery_poc_cnt는 해당 픽처가 복구 픽처임을 지정할 수 있으며, 이에 따라 픽처가 새로운 CVS를 시작하고 복구 픽처 및 서브시퀀스 픽처가 GRA 기간의 픽처에 기초하여 올바르게 디코딩될 수 있다. CVS는 CRA 픽처 이후에 CVS를 시작하는 것과 유사한 방식으로 GRA 픽처로부터 시작할 수 있다.
앞의 관점은 특정 문제를 포함한다. 예를 들어, GRA 픽처를 사용하는 VVC 구현은 GRA 픽처를 포함하는 비트스트림에 대해 HRD 파라미터를 지정하고 HRD 일치 동작을 정의하는 것을 지원하지 않을 수 있다. 결과적으로, 그러한 비트스트림에 대한 디코딩 능력 요구사항은 예를 들어 GRA 픽처로 시작하는 비트스트림에 대해 불분명할 수 있다.
일반적으로, 본 개시는 GDR 픽처를 포함하는 비디오 비트스트림에 대한 비트스트림 일치 메커니즘의 사양을 지원하기 위한 방법을 설명한다. 예를 들어, 그러한 지원은 그러한 비트스트림에 대한 HRD를 관리하기 위한 메커니즘의 정의를 통해 달성될 수 있다. 여기에 사용된 기술에 대한 설명은 VVC 구현을 기반으로 하지만 다른 비디오 코덱 사양에도 적용될 수 있다.
위에서 언급한 문제 중 하나 이상은 다음과 같이 해결될 수 있다. 예를 들어, 본 개시는 HRD 파라미터를 지정하고 GRA 픽처를 포함하는 비트스트림에 대해 수행될 수 있는 HRD 일치 동작을 정의하는 것을 허용하는 접근 방식을 포함한다. 예를 들어, NalHrdBpPresentFlag가 1과 동일하게 설정될 수 있거나 VclHrdBpPresentFlag가 1과 동일하게 설정되어 CVS에 대해 HRD 파라미터가 존재하는 때를 나타낼 수 있다. 이러한 경우, 버퍼링 주기 SEI 메시지는 각 GRA 액세스 유닛과 연관될 수 있다. 또한, 버퍼링 주기 SEI 메시지는 HRD 파라미터를 포함할 수 있다. 따라서 HRD 파라미터는 GRA 액세스 단위에 대해 사용 가능하게 되며 HRD 작업은 모든 GRA 액세스 단위에서 초기화될 수 있다. 예를 들어, 복수의 GRA 액세스 유닛을 포함하는 비디오 비트스트림은 각각 GRA 픽처를 포함할 수 있다. 비트스트림은 디코더에 의해 디코딩될 수 있다. 각각의 GRA 액세스 유닛은 버퍼링 주기 SEI 메시지와 연관될 수 있다. 디코더는 적어도 GRA 액세스 유닛과 연관된 버퍼링 기간 SEI 메시지에 기초하여 GRA 액세스 유닛 중 하나로부터 시작하는 비디오 비트스트림을 디코딩할 수 있다. 다른 예에서, 인코더는 비디오 비트스트림을 인코딩할 수 있다. 예를 들어, 인코더는 비트스트림에서 각각의 GRA 픽처를 하나의 액세스 유닛으로 인코딩함으로써 복수의 GRA 픽처를 인코딩할 수 있다. 각각의 GRA 픽처에 대해 인코더는 연관된 버퍼링 기간 SEI 메시지를 인코딩할 수 있다. 하나 이상의 구현 예가 아래에 포함되어 있다.
예시적인 일반적인 슬라이스 헤더 신택스는 다음과 같다.
시퀀스 RBSP 의미론의 예시적인 끝은 다음과 같다. 존재하는 경우 시퀀스 RBSP의 끝은 현재 액세스 단위가 디코딩 순서로 코딩된 비디오 시퀀스의 마지막 액세스 단위이고 (있는 경우) 디코딩 순서의 비트스트림에서 다음 후속 액세스 단위가 IRAP 또는 GRA 액세스 단위임을 지정한다. 데이터 비트 문자열(SODB)의 신택스 내용과 시퀀스 RBSP의 끝을 위한 RBSP는 비어 있다.
예시적인 일반적인 슬라이스 헤더 의미론은 다음과 같다. 존재하는 경우, 슬라이스 헤더 신택스 요소인 slice_pic_parameter_set_id, slice_pic_order_cnt_lsb, no_output_of_prior_pics_flag, 및 slice_temporal_mvp_enabled_flag 각각의 값은 코딩된 픽처의 모든 슬라이스 헤더에서 동일할 수 있다. no_output_of_prior_pics_flag는 비트스트림의 첫 번째 픽처가 아닌 코딩된 비디오 시퀀스 시작(coded video sequence start, CVSS) 픽처의 디코딩 후에 디코딩된 픽처 버퍼에서 이전에 디코딩된 픽처의 출력에 영향을 미칠 수 있다.
현재 픽처의 디코딩 전에 DPB로부터 픽처를 제거하기 위한 예시적인 메커니즘은 다음과 같다. 현재 픽처가 픽처 제로가 아닌 CVSS 픽처인 경우, 다음과 같은 순서의 단계가 적용될 수 있다. NoOutputOfPriorPicsFlag 변수는 다음과 같이 테스트 중인 디코더에 대해 도출될 수 있다. 만약 액티브 SVS로부터 도출된 pic_width_in_luma_samples, pic_height_in_luma_samples, chroma_format_idc, separate_colour_plane_flag, bit_depth_luma_minus8, bit_depth_chroma_minus8 또는 sps_max_dec_pic__minus1[ HighestTid ]의 값이 선행 픽처에 대한 SPS 액티브로로터 각각 도출된 pic_width_in_luma_samples, pic_height_in_luma_samples, chroma_format_idc, separate_colour_plane_, bit_depth_luma_minus8, bit_depth_chroma_minus8 또는 sps_max_dec_pic_buffering_[ HighestTid ]의 값과 다르다면, NoOutputOfPriorPicsFlag는 no_output_of_prior_pics_flag의 값에 관계없이 테스트 중인 디코더에 의해 1로 설정될 수 있다(그러나 설정되어서는 안 된다). NoOutputOfPriorPicsFlag를 no_output_of_prior_pics_flag와 동일하게 설정하는 것이 이러한 조건에서 선호될 수 있지만 테스트 중인 디코더는 이 경우 NoOutputOfPriorPicsFlag를 1로 설정할 수 있다. 그렇지 않으면, NoOutputOfPriorPicsFlag는 no_output_of_prior_pics_flag와 동일하게 설정될 수 있다. 테스트 중인 디코더에 대해 도출된 NoOutputOfPriorPicsFlag의 값은 HRD에 적용되어 NoOutputOfPriorPicsFlag의 값이 1과 같을 때 DPB의 모든 픽처 저장 버퍼가 포함된 픽처의 출력 없이 비워지고 DPB 충만(fullness)도 0과 동일하게 설정된다.
예시적인 비트스트림 적합성은 다음과 같다. 비트스트림의 첫 번째 코딩된 픽처는 IRAP 픽처(예를 들어, IDR 픽처 또는 CRA 픽처) 또는 GRA 픽처여야 한다.
DPB로부터의 픽처의 예시적인 출력 및 제거는 다음과 같다. 현재 픽처가 픽처 제로가 아닌 CVSS 픽처라면, 다음과 같은 순서의 단계가 적용될 수 있다. 변수 NoOutputOfPriorPicsFlag는 다음과 같이 테스트 중인 디코더에 대해 도출될 수 있다. 만약 액티브 SVS로부터 도출된 pic_width_in_luma_samples, pic_height_in_luma_samples, chroma_format_idc, separate_colour_plane_flag, bit_depth_luma_minus8, bit_depth_chroma_minus8 또는 sps_max_dec_pic__minus1[ HighestTid ]의 값이 선행 픽처에 대한 SPS 액티브로로터 각각 도출된 pic_width_in_luma_samples, pic_height_in_luma_samples, chroma_format_idc, separate_colour_plane_, bit_depth_luma_minus8, bit_depth_chroma_minus8 또는 sps_max_dec_pic_buffering_[ HighestTid ]의 값과 다르다면, NoOutputOfPriorPicsFlag는 no_output_of_prior_pics_flag의 값과 관계없이 테스트 중인 디코더에 의해 1로 설정될 수 있다(그러나 설정되어서는 안 된다). NoOutputOfPriorPicsFlag를 no_output_of_prior_pics_flag와 동일하게 설정하는 것이 이러한 조건에서 선호되지만 테스트 중인 디코더는 이 경우 NoOutputOfPriorPicsFlag를 1로 설정할 수 있다. 그렇지 않으면, NoOutputOfPriorPicsFlag는 no_output_of_prior_pics_flag와 동일하게 설정될 수 있다.
테스트 중인 디코더에 대해 도출된 NoOutputOfPriorPicsFlag의 값은 다음과 같이 HRD에 적용될 수 있다. NoOutputOfPriorPicsFlag가 1과 같으면, DPB의 모든 픽처 저장 버퍼는 그들이 포함하는 픽처의 출력 없이 비워질 수 있고 DPB 충만도는 0과 동일하게 설정될 수 있다. 그렇지 않으면(NoOutputOfPriorPicsFlag가 0이다), 출력에 필요하지 않고 참조에 사용되지 않는 것으로 표시된 픽처를 포함하는 모든 픽처 저장 버퍼는 (출력 없이) 비워질 수 있고 DPB의 비어 있지 않은 모든 픽처 저장 버퍼는 범핑 프로세스(bumping process)를 반복적으로 호출함으로써 비워질 수 있고 DPB 충만도는 0과 동일하게 설정될 수 있다.
예시적인 버퍼링 주기 SEI 메시지 의미론은 다음과 같다. 버퍼링 주기 SEI 메시지의 존재는 다음과 같이 지정될 수 있다. NalHrdBpPresentFlag가 1과 같거나 VclHrdBpPresentFlag가 1인 경우, CVS의 각 액세스 단위에 대해 다음이 적용될 수 있다. 액세스 유닛이 IRAP 또는 GRA 액세스 유닛인 경우, 오퍼레이션 포인트에 적용 가능한 버퍼링 주기 SEI 메시지는 액세스 유닛과 연관될 수 있다. 그렇지 않고, 액세스 유닛이 notDiscardablePic을 포함하는 경우, 동작 포인트에 적용 가능한 버퍼링 기간 SEI 메시지는 액세스 유닛과 연관되거나 연관되지 않을 수 있다. 그렇지 않으면, 액세스 유닛은 동작 포인트에 적용 가능한 버퍼링 주기 SEI 메시지와 연관되지 않을 수 있다. 그렇지 않으면(NalHrdBpPresentFlag 및 VclHrdBpPresentFlag가 둘 다 0과 동일하다) CVS의 액세스 단위가 버퍼링 기간 SEI 메시지와 연관되지 않을 수 있다. 현재 픽처가 버퍼링 주기 SEI 메시지를 포함하고 concatenation_flag가 1인 경우, 현재 픽처에 대한 cpb_removal_delay_minus1은 사용되지 않을 수 있다. 위에 명시된 제약은 스플라이싱 포인트에서 IRAP 또는 GRA 픽처에 대한 버퍼링 기간 SEI 메시지에서 concatenation_flag의 값을 0에서 1로 변경하여 일부 상황에서 스플라이싱 비트스트림(참조 구조를 사용함)을 인에이블할 수 있다. concatenation_flag가 0일 때, 위에서 지정한 제약은 디코더가 prevNonDiscardablePic 픽처의 손실을 검출하는 방법으로 제약이 만족되는지를 디코더가 확인할 수 있게 한다.
예시적인 픽처 타이밍 SEI 메시지 의미론은 다음과 같다. 디코딩 순서에서 no_output_of_prior_pics_flag가 1이거나 1로 추정되는 CVSS 픽처보다 앞서 있기 때문에 범핑 프로세스에 의해 출력되지 않은 픽처의 경우, 동일한 CVS 내의 모든 픽처와 관련해서 PicOrderCntVal의 값이 증가함에 따라 dpb_output_delay에서 도출된 출력 시간이 증가할 수 있다.
도 9는 예시적인 비디오 코딩 디바이스(900)의 개략도이다. 비디오 코딩 디바이스(900)는 여기에 설명된 바와 같이 개시된 예/실시예를 구현하기에 적합하다. 비디오 코딩 장치(900)는 네트워크를 통해 데이터 업스트림 및/또는 다운스트림을 통신하기 위한 송신기 및/또는 수신기를 포함하는 다운스트림 포트(920), 업스트림 포트(950), 및/또는 송수신기 유닛(Tx/Rx)(910)을 포함한다. 비디오 코딩 디바이스(900)는 또한 데이터를 처리하기 위한 논리 유닛 및/또는 중앙 처리 유닛(CPU) 및 데이터를 저장하기 위한 메모리(932)를 포함하는 프로세서(930)를 포함한다. 비디오 코딩 디바이스(900)는 또한 전기, 광학 또는 무선 통신 네트워크를 통해 데이터를 통신하기 위해 업스트림 포트(950) 및/또는 다운스트림 포트(920)에 결합된 전기, 광-전기(OE) 컴포넌트, 전기-광(EO) 컴포넌트, 및/또는 무선 통신 컴포넌트를 포함할 수 있다. 비디오 코딩 디바이스(900)는 또한 사용자와 데이터를 통신하기 위한 입력 및/또는 출력(I/O) 디바이스들(960)을 포함할 수 있다. I/O 디바이스(960)는 비디오 데이터를 표시하기 위한 디스플레이, 오디오 데이터를 출력하기 위한 스피커 등과 같은 출력 장치를 포함할 수 있다. I/O 디바이스(960)는 또한 키보드, 마우스, 트랙볼 등과 같은 입력 장치 및/또는 그러한 출력 장치와 상호작용하기 위한 대응하는 인터페이스를 포함할 수 있다.
프로세서(930)는 하드웨어 및 소프트웨어에 의해 구현된다. 프로세서(930)는 하나 이상의 CPU 칩, 코어(예를 들어, 멀티 코어 프로세서로서), 필드 프로그래머블 게이트 어레이(field-programmable gate arrays, FPGA), 주문형 집적 회로(application specific integrated circuit, ASIC), 및 디지털 신호 프로세서(digital signal processor, DSP)로서 구현될 수 있다. 프로세서(930)는 다운스트림 포트(920), Tx/Rx(910), 업스트림 포트(950), 및 메모리(932)와 통신한다. 프로세서(930)는 코딩 모듈(914)을 포함한다. 코딩 모듈(914)은 GDR(600) 및/또는 비트스트림(800)을 사용할 수 있는 방법(100, 1000 및 1100)과 같이, 여기서 설명된 개시 실시예를 구현한다. 코딩 모듈(914)은 또한 여기에 설명된 임의의 다른 방법/메커니즘을 구현할 수 있다. 또한, 코딩 모듈(914)은 코덱 시스템(200), 인코더(300), 디코더(400), 및/또는 HRD(500)를 구현할 수 있다. 예를 들어, 코딩 모듈(914)은 GDR 픽처와 함께 BP SEI 메시지와 연관될 수 있다. 또한, 코딩 모듈(914)은 픽처와 연관된 헤더에서 복구 픽처 순서 카운트 값 이전에 POC LSB 값을 포지셔닝할 수 있다. 따라서, 코딩 모듈(914)은 비디오 코딩 디바이스(900)가 비디오 데이터를 코딩할 때 추가적인 기능 및/또는 코딩 효율성을 제공하게 한다. 이와 같이, 코딩 모듈(914)은 비디오 코딩 장치(900)의 기능을 향상시킬 뿐만 아니라 비디오 코딩 기술에 특정한 문제를 해결한다. 또한, 코딩 모듈(914)은 비디오 코딩 디바이스(900)를 상이한 상태로 변환시킨다. 대안적으로, 코딩 모듈(914)은 메모리(932)에 저장되고 프로세서(930)에 의해 실행되는 명령으로서(예를 들어, 비일시적 매체에 저장된 컴퓨터 프로그램 제품으로서) 구현될 수 있다.
메모리(932)는 디스크, 테이프 드라이브, 솔리드 스테이트 드라이브, 읽기 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 플래시 메모리, 삼항 콘텐츠 주소 지정 가능 메모리(ternary content-addressable memory, TCAM), 정적 랜덤-액세스 메모리(static random-access memory, SRAM) 등과 같은 하나 이상의 메모리 유형을 포함한다. 메모리(932)는 오버플로우 데이터 저장 장치로 사용될 수 있고, 그러한 프로그램이 실행을 위해 선택될 때 프로그램을 저장하고, 프로그램 실행 중에 판독되는 명령 및 데이터를 저장하기 위해 사용될 수 있다.
도 10은 GDR(600)과 같은 GDR을 사용하는 비디오 시퀀스를 비트스트림(800)과 같은 비트스트림으로 인코딩할 때 복구 포인트 픽처(POC)를 시그널링하는 예시적인 방법(1000)의 흐름도이다. 방법(1000)은 다음과 같은 인코더에 의해 채용될 수 있다. 코덱 시스템(200), 인코더(300), 및/또는 방법(100)을 수행할 때 비디오 코딩 디바이스(900). 이러한 인코더는 또한 HRD(500)를 사용할 수 있다.
방법(1000)은 인코더가 복수의 픽처를 포함하는 비디오 시퀀스를 수신하고 예를 들어 사용자 입력에 기초하여 그 비디오 시퀀스를 비트스트림으로 인코딩하기로 결정할 때 시작할 수 있다. 단계 1001에서, 인코더는 도 6에 설명된 바와 같이 GDR 픽처(602)와 같은 GDR 픽처, 및 하나 이상의 트레일링 픽처(604)와 같은 트레일링 픽처를 포함하는 GDR 기간을 비트스트림으로 인코딩한다. 구체적으로, GDR 픽처 및 연관된 트레일링 픽처 각각은 제2 영역(610B) 및/또는 리프레시되지 않은/더티 영역(612)과 같은 인터-예측에 따라 코딩된 하나 이상의 영역, 및 제1 영역(610A)과 같이 인트라-예측에 따라 코딩된 영역을 포함한다. 일부 예에서, 인터-예측에 따라 코딩된 영역 및 인트라-예측에 따라 코딩된 영역은 도 6에 도시된 바와 같이 너비보다 각각 더 클 수도 있다. 인코더는 또한 복구 포인트 픽처(606)와 같은 복구 포인트 픽처를 비트스트림으로 인코딩한다. 복구 포인트 픽처는 디코딩 순서에서 GDR 픽처와 GDR 기간의 관련 트레일링 픽처 모두를 따른다. GDR 픽처는 GDR AU로 인코딩될 수 있다. 트레일링 픽처 및 복구 포인트 픽처는 트레일링 AU로 인코딩될 수 있다.
단계 1003에서, 인코더는 GDR AU와 연관된 BP SEI 메시지를 비트스트림으로 인코딩할 수 있다. BP SEI 메시지는 초기 CPB 제거 지연 및/또는 기타 HRD 파라미터를 제공한다. 이들 파라미터는 디코딩 순서에서 비트스트림의 GDR AU의 위치에서 HRD(500)와 같은 HRD의 초기화를 위해 사용될 수 있다.
단계 1005에서, 인코더는 GDR 픽처의 POC LSB 값을 결정한다. POC LSB 값은 비트스트림의 다른 픽처로부터 GDR 픽처를 식별하는 데 사용될 수 있다. 디코더는 또한 복구 포인트 픽처를 식별하는 복구 픽처 순서 카운트 값을 결정한다. 일부 예에서, 복구 픽처 순서 카운트 값은 GDR 픽처에 대한 복구 포인트 픽처의 위치를 나타낸다. 예를 들어, 복구 픽처 순서 카운트 값은 GDR 픽처의 POC와 복구 포인트 픽처의 POC의 차이를 나타낼 수 있다. 복구 픽처 POC와 GDR POC의 차이는 복구 픽처 POC보다 작은 값일 수 있다는 점에 유의해야 한다. 이와 같이, 복구 픽처 POC를 차이 값으로 시그널링하는 것은 시그널링된 데이터를 압축함으로써 코딩 효율을 증가시킨다.
단계 1007에서, 인코더는 GDR 픽처와 연관된 헤더를 비트스트림으로 인코딩한다. 또한, 인코더는 POC LSB 값과 복구 픽처 순서 카운트 값을 헤더에 인코딩한다. 구체적으로, 코딩된 POC LSB 값은 헤더의 복구 픽처 순서 카운트 값 이전에 인코딩된다. 이러한 방식으로, 디코더는 헤더를 파싱하고 복구 픽처 순서 카운트 값을 파싱하기 전에 POC LSB에 기초하여 GDR POC를 해결할 수 있다. 이와 같이 복구 픽처 카운트 값을 파싱하는 즉시 복구 픽처 카운트 값을 확인할 수 있다. 이것은 GDR POC가 결정될 수 있을 때까지 메모리에 복구 픽처 순서 카운트 값을 저장하는 것보다 더 효율적일 수 있다. 다양한 예들에서, GDR 픽처와 연관된 헤더는 픽처 헤더 및/또는 슬라이스 헤더이다. 따라서, POC LSB 값 및 복구 픽처 순서 카운트 값은 픽처 헤더 및/또는 슬라이스 헤더에 포함될 수 있다. 일 예에서, POC LBS 값은 픽처 헤더 픽처 오더 카운트 LSB(ph_pic_order_cnt_lsb) 값으로서 헤더에 포함된다. ph_pic_order_cnt_lsb 값은 GDR 픽처가 현재 픽처인 현재 픽처에 대한 픽처 순서 카운트 모듈로 최대 픽처 순서 카운트 LSB를 지정한다. 일례로, 복구 픽처 순서 카운트 값은 복구 POC 카운트(recovery_poc_cnt) 값으로 헤더에 포함된다. Recovery_poc_cnt 값은 출력 순서대로 디코딩된 픽처의 복구 포인트를 지정한다. 일 예에서, 인코더는 또한 현재 픽처가 GDR 픽처일 때 헤더에 이전 픽처의 출력 없음 플래그를 설정할 수 있다. 이 플래그는 완전히 디코딩되지 않을 수 있는 더티 데이터가 있는 픽처를 출력하는 것을 피하기 위해 복구 포인트 픽처 이전에 GDR 픽처 및 연관된 트레일링 픽처를 출력하지 않도록 디코더에 지시한다.
단계 1009에서, 인코더는 디코더를 향한 통신을 위해 비트스트림을 저장할 수 있다.
도 11은 시그널링된 복구 포인트 픽처(POC)에 기초하여 비트스트림(800)과 같은 비트스트림으로부터 GDR(600)과 같은 GDR을 사용하는 비디오 시퀀스를 디코딩하는 예시적인 방법(1100)의 흐름도이다. 방법(1100)은 방법(100)을 수행할 때 코덱 시스템(200), 디코더(400), 및/또는 비디오 코딩 디바이스(900)와 같은 디코더에 의해 적용될 수 있다.
방법(1100)은 디코더가 비디오 시퀀스를 나타내는 코딩된 데이터의 비트스트림을 수신하기 시작할 때, 예를 들어 HRD(500)를 사용하는 인코더에서 방법(1000)의 결과로서 시작할 수 있다. 단계 1101에서, 디코더는 비트스트림을 수신한다. 비트스트림은 도 6에 설명된 바와 같이 GDR 픽처(602)와 같은 GDR 픽처, 및 트레일링 픽처(604)와 같은 하나 이상의 트레일링 픽처를 포함하는 GDR 기간을 포함한다. 구체적으로, GDR 픽처 및 연관된 트레일링 픽처 각각은 제2 영역(610B) 및/또는 리프레시되지 않은/더티 영역(612)과 같이 인터-예측에 따라 코딩된 하나 이상의 영역, 및 제1 영역(610A)과 같이 인트라-예측에 따라 코딩된 영역을 포함한다. 일부 예에서, 인터-예측에 따라 코딩된 영역 및 인트라-예측에 따라 코딩된 영역은 도 6에 도시된 바와 같이 너비보다 각각 더 클 수도 있다. 비트스트림은 또한 복구 포인트 픽처(606)와 같은 복구 포인트 픽처를 비트스트림으로 포함한다. 복구 포인트 픽처는 디코딩 순서에서 GDR 픽처와 GDR 기간의 관련 트레일링 픽처 모두를 따른다. GDR 픽처는 GDR AU로 인코딩될 수 있다. 트레일링 픽처 및 복구 포인트 픽처는 트레일링 AU로 인코딩될 수 있다.
비트스트림은 또한 GDR 픽처와 연관된 헤더를 포함할 수 있다. 다양한 예들에서, GDR 픽처와 연관된 헤더는 픽처 헤더 및/또는 슬라이스 헤더이다. 헤더는 POC LSB 값과 복구 픽처 순서 카운트 값을 포함한다. 구체적으로, 코딩된 POC LSB 값은 헤더의 복구 픽처 순서 카운트 값보다 먼저 코딩된다. 이러한 방식으로, 디코더는 헤더를 파싱하고 복구 픽처 순서 카운트 값을 파싱하기 전에 POC LSB에 기초하여 GDR POC를 해결할 수 있다. 이와 같이 복구 픽처 카운트 값을 파싱하는 즉시 복구 픽처 카운트 값을 확인할 수 있다. 이것은 GDR POC가 결정될 수 있을 때까지 메모리에 복구 픽처 순서 카운트 값을 저장하는 것보다 더 효율적일 수 있다. 예에서, POC LBS 값은 ph_pic_order_cnt_lsb 값으로 헤더에 포함된다. ph_pic_order_cnt_lsb 값은 GDR 픽처가 현재 픽처인 현재 픽처에 대한 픽처 순서 카운트 모듈로 최대 픽처 순서 카운트 LSB를 지정한다. 일 예에서 복구 픽처 순서 카운트 값은 recovery_poc_cnt 값으로 헤더에 포함된다. Recovery_poc_cnt 값은 출력 순서대로 디코딩된 픽처의 복구 포인트를 지정한다. 일부 예에서, 현재 픽처가 GDR 픽처일 때 이전 픽처들의 출력 없음 플래그가 헤더에 설정된다. 이 플래그는 완전히 디코딩되지 않을 수 있는 더티 데이터가 있는 픽처를 출력하는 것을 피하기 위해 복구 포인트 픽처 이전에 GDR 픽처 및 연관된 트레일링 픽처를 출력하지 않도록 디코더에 지시한다.
일부 예에서, 비트스트림은 GDR AU와 연관된 BP SEI 메시지를 더 포함한다. BP SEI 메시지는 디코딩 순서의 GDR AU의 위치에서 HRD의 초기화를 위한 초기 CPB 제거 지연을 제공한다. 또한, 디코더는 BP SEI 메시지의 존재에 기초하여 비트스트림이 순응하고 따라서 디코딩 가능하다고 결정할 수 있다. 예를 들어, 비트스트림에 BP SEI 메시지가 있다는 것은 HRD가 비트스트림에 대해 적합성 테스트를 수행하였다는 것을 나타낸다.
단계 1103에서, 디코더는 POC LSB 값에 기초하여 GDR 픽처에 대한 POC를 결정한다. 예를 들어, 헤더는 또한 현재 픽처에 대한 POC의 최상위 비트(MSB)를 포함하는 값을 포함할 수 있다. 따라서 디코더는 MSB 및 LSB를 기반으로 GDR에 대한 POC를 결정할 수 있다.
단계 1105에서, 디코더는 GDR 픽처에 대한 POC 및 복구 픽처 순서 카운트 값에 기초하여 복구 포인트 픽처(POC)를 결정한다. 예를 들어, 복구 픽처 순서 카운트 값은 GDR POC와 복구 포인트 픽처 POC의 차이를 포함할 수 있다.
단계 1107에서, 디코더는 GDR 픽처 및 복구 포인트 픽처(POC)에 기초하여 GDR에 따라 비트스트림을 디코딩한다. 예를 들어, 비트스트림은 비트스트림으로부터 대응하는 코딩된 픽처 및 연관된 트레일링 픽처를 획득하기 위해 GDR POC 및 복구 포인트 픽처(POC)를 사용할 수 있다. 그런 다음 디코더는 GDR에 따라 GDR 픽처, 연관된 트레일링 픽처, 및 복구 포인트 픽처를 디코딩할 수 있다. 디코더는 또한 이전 픽처의 출력 없음 플래그에 기초하여 복구 포인트 픽처 이전의 GDR 픽처 및 트레일링 픽처를 억제할 수 있다.
단계 1109에서, 디코더는 디코딩된 비디오 시퀀스의 일부로서 디스플레이를 위해 복구 포인트 픽처를 뒤따르는 하나 이상의 픽처를 포워딩할 수 있다.
도 12는 시그널링된 복구 포인트 픽처(POC)에 기초하여 GDR(600)과 같은 GDR을 사용하는 비디오 시퀀스를 비트스트림(800)과 같은 비트스트림으로 코딩하기 위한 예시적인 시스템(1200)의 개략도이다. 시스템(1200)은 HRD(500)를 채용할 수 있는 코덱 시스템(200), 인코더(300), 디코더(400), 및/또는 비디오 코딩 디바이스(900)와 같은 인코더 및 디코더에 의해 구현될 수 있다. 또한, 시스템(1200)은 방법(100, 1000 및/또는 1100)을 구현할 때 적용될 수 있다.
시스템(1200)은 비디오 인코더(1202)를 포함한다. 비디오 인코더(1202)는 디코딩 순서에서 GDR 픽처 및 GDR 픽처를 뒤따르는 복구 포인트 픽처를 비트스트림으로 인코딩하기 위한 인코딩 모듈(1203)을 포함한다. 인코딩 모듈(1203)은 GDR 픽처와 연관된 헤더를 비트스트림으로 인코딩하기 위한 것이며, 헤더는 복구 픽처 순서 카운트 값 이전에 코딩된 POC LSB 값을 포함한다. 비디오 인코더(1202)는 GDR 픽처의 POC LSB 값 및 복구 포인트 픽처의 복구 픽처 순서 카운트 값을 결정하기 위한 결정 모듈(1205)을 더 포함한다. 비디오 인코더(1202)는 디코더를 향한 통신을 위한 비트스트림을 저장하기 위한 저장 모듈(1206)을 더 포함한다. 비디오 인코더(1202)는 비디오 시퀀스로의 재구성을 위해 디코더를 향해 비트스트림을 전송하기 위한 전송 모듈(1207)을 더 포함한다. 비디오 인코더(1202)는 방법(1000)의 단계들 중 임의의 단계를 수행하도록 추가로 구성될 수 있다.
시스템(1200)은 또한 비디오 디코더(1210)를 포함한다. 비디오 디코더(1210)는 GDR 픽처, 디코딩 순서에서 GDR 픽처를 뒤따르는 복구 포인트 픽처, 및 GDR 픽처와 연관된 헤더를 포함하는 비트스트림을 수신하기 위한 수신 모듈(1211)을 포함하며, 헤더는 복구 픽처 순서 카운트 값 이전에 코딩된 POC LSB 값을 포함한다. 비디오 디코더(1210)는 POC LSB 값에 기초하여 GDR 픽처에 대한 POC를 결정하기 위한 결정 모듈(1213)을 포함한다. 결정 모듈(1213)은 또한 GDR 픽처에 대한 POC 및 복구 픽처 순서 카운트 값에 기초하여 복구 포인트 픽처(POC)를 결정하기 위한 것이다. 비디오 디코더(1210)는 GDR 픽처 및 복구 포인트 픽처에 기초하여 GDR에 따라 비트스트림을 디코딩하기 위한 디코딩 모듈(1215)을 더 포함한다. 비디오 디코더(1210)는 디코딩된 비디오 시퀀스의 일부로서 디스플레이를 위해 복구 포인트 픽처를 뒤따르는 하나 이상의 픽처를 포워딩하기 위한 포워딩 모듈(1217)을 더 포함한다. 비디오 디코더(1210)는 방법(1100)의 단계들 중 임의의 단계를 수행하도록 추가로 구성될 수 있다.
제1 컴포넌트는 제1 컴포넌트와 제2 컴포넌트 사이의 회선, 트레이스, 또는 다른 매체를 제외하고 개입 컴포넌트가 없을 때 제2 컴포넌트에 직접 결합된다. 제1 컴포넌트는 제1 컴포넌트와 제2 컴포넌트 사이에 회선, 트레이스 또는 다른 매체 이외의 개재 컴포넌트가 있는 경우 제2 컴포넌트에 간접적으로 결합된다. "결합된"이라는 용어와 그 변형에는 직접 결합된 것과 간접적으로 결합된 것이 모두 포함된다. "약"이라는 용어의 사용은 달리 명시되지 않는 한 후속 숫자의 ±10%를 포함하는 범위를 의미한다.
또한 여기에 설명된 예시적인 방법의 단계는 설명된 순서대로 수행될 필요가 없으며 이러한 방법의 단계의 순서는 단지 예시적인 것으로 이해되어야 한다. 마찬가지로, 이러한 방법에는 추가적인 단계가 포함될 수 있으며, 본 개시의 다양한 실시예에 따른 방법에서 특정 단계는 생략되거나 결합될 수 있다.
몇몇 실시예가 본 개시에서 제공되었지만, 개시된 시스템 및 방법은 본 개시의 사상 또는 범위를 벗어나지 않고 많은 다른 특정 형태로 구현될 수 있음을 이해할 수 있다. 본 예는 예시적인 것으로 간주되어야 하며 제한적이지 않으며, 그 의도는 여기에 주어진 세부 사항으로 제한되지 않는다. 예를 들어, 다양한 구성 요소 또는 구성 요소가 다른 시스템에 결합 또는 통합되거나 특정 기능이 생략되거나 구현되지 않을 수 있다.
또한, 다양한 실시예에서 개별적 또는 분리된 것으로 설명되고 예시된 기술, 시스템, 서브시스템 및 방법은 본 개시의 범위를 벗어나지 않고 다른 시스템, 컴포넌트, 기술, 또는 방법과 결합되거나 통합될 수 있다. 변경, 대체 및 변경의 다른 예는 당업자에 의해 확인 가능하고 여기에 개시된 정신 및 범위를 벗어나지 않고 이루어질 수 있다.
Claims (20)
- 디코더에서 구현되는 방법으로서,
상기 디코더의 수신기가 점진적 디코딩 리프레시(Gradual Decoding Refresh, GDR) 픽처, 디코딩 순서에서 상기 GDR 픽처를 뒤따르는 복구 포인트 픽처, 및 상기 GDR 픽처와 연관된 헤더를 포함하는 비트스트림을 수신하는 단계 - 상기 헤더는 복구 픽처 순서 카운트 값 이전에 코딩된 픽처 순서 카운트(picture order count, POC) 최하위 비트(least significant bit, LSB) 값을 포함함 - ;
상기 디코더의 프로세서가 상기 GDR 픽처에 대한 POC를 결정하는 단계;
상기 프로세서가 상기 GDR 픽처에 대한 POC 및 상기 복구 픽처 순서 카운트 값에 기초하여 복구 포인트 픽처(POC)를 결정하는 단계; 및
상기 프로세서가 상기 GDR 픽처 및 상기 복구 포인트 픽처(POC)에 기초하여 GDR에 따라 상기 비트스트림을 디코딩하는 단계
를 포함하는 디코더에서 구현되는 방법. - 제1항에 있어서,
상기 GDR 픽처와 연관된 헤더는 픽처 헤더인, 디코더에서 구현되는 방법. - 제1항 내지 제2항 중 어느 한 항에 있어서,
상기 POC LBS 값은 상기 헤더에 ph_pic_order_cnt_lsb 값으로서 포함되고, 여기서 ph_pic_order_cnt_lsb 값은 현재 픽처에 대한 픽처 순서 카운트 모듈로 최대 픽처 순서 카운트(picture order count modulo maximum picture order count) LSB를 지정하며, 상기 GDR 픽처가 현재 픽처인, 디코더에서 구현되는 방법. - 제1항 내지 제3항 중 어느 한 항에 있어서,
상기 복구 픽처 순서 카운트 값은 상기 헤더에 recovery_poc_cnt 값으로서 포함되고, 여기서 recovery_poc_cnt 값은 출력 순서에서 디코딩된 픽처의 복구 포인트를 지정하는, 디코더에서 구현되는 방법. - 제1항 내지 제3항 중 어느 한 항에 있어서,
현재 픽처가 상기 GDR 픽처일 때 상기 헤더에 이전 픽처의 출력 없음(no output of prior pictures) 플래그가 설정되는, 디코더에서 구현되는 방법. - 제1항 내지 제5항 중 어느 한 항에 있어서,
상기 GDR 픽처는 인터-예측에 따라 코딩된 영역 및 인트라-예측에 따라 코딩된 영역을 포함하는, 디코더에서 구현되는 방법. - 제1항 내지 제6항 중 어느 한 항에 있어서,
상기 GDR 픽처는 GDR 액세스 유닛(AU)에 포함되고, 상기 비트스트림은 상기 GDR AU와 연관된 버퍼링 기간(buffering period, BP) 추가 강화 정보(supplemental enhancement information, SEI) 메시지를 더 포함하고, 상기 BP SEI 메시지는 디코딩 순서의 GDR AU의 위치에서 가상 참조 디코더(hypothetical reference decoder, HRD)의 초기화를 위해 초기 코딩된 픽처 버퍼(coded picture buffer, CPB) 제거 지연을 제공하는, 디코더에서 구현되는 방법. - 인코더에서 구현되는 방법으로서,
상기 인코더의 프로세서가 점진적 디코딩 리프레시(Gradual Decoding Refresh, GDR) 픽처 및 디코딩 순서에서 상기 GDR 픽처를 뒤따르는 복구 포인트 픽처를 비트스트림으로 인코딩하는 단계;
상기 프로세서가 상기 GDR 픽처의 픽처 순서 카운트(picture order count, POC) 최하위 비트(least significant bit, LSB) 값 및 상기 복구 포인트 픽처의 복구 픽처 순서 카운트 값을 결정하는 단계;
상기 프로세서가 상기 GDR 픽처와 연관된 헤더를 상기 비트스트림으로 인코딩하는 단계 - 상기 헤더는 상기 복구 픽처 순서 카운트 값 이전에 코딩된 POC LSB 값을 포함함 - ; 및
상기 프로세서에 연결된 메모리가 디코더를 향한 통신을 위해 상기 비트스트림을 저장하는 단계
를 포함하는 인코더에서 구현되는 방법. - 제8항에 있어서,
상기 GDR 픽처와 연관된 헤더는 픽처 헤더인, 인코더에서 구현되는 방법. - 제8항 내지 제9항 중 어느 한 항에 있어서,
상기 POC LBS 값은 상기 헤더에 ph_pic_order_cnt_lsb 값으로서 포함되고, 여기서 ph_pic_order_cnt_lsb 값은 현재 픽처에 대한 픽처 순서 카운트 모듈로 최대 픽처 순서 카운트(picture order count modulo maximum picture order count) LSB를 지정하며, 상기 GDR 픽처가 현재 픽처인, 인코더에서 구현되는 방법. - 제8항 내지 제10항 중 어느 한 항에 있어서,
상기 복구 픽처 순서 카운트 값은 상기 헤더에 recovery_poc_cnt 값으로서 포함되고, 여기서 recovery_poc_cnt 값은 출력 순서에서 디코딩된 픽처의 복구 포인트를 지정하는, 인코더에서 구현되는 방법. - 제8항 내지 제11항 중 어느 한 항에 있어서,
현재 픽처가 상기 GDR 픽처일 때 상기 헤더에 이전 픽처의 출력 없음(no output of prior pictures) 플래그를 설정하는 단계
를 더 포함하는 인코더에서 구현되는 방법. - 제8항 내지 제12항 중 어느 한 항에 있어서,
상기 GDR 픽처는 인터-예측에 따라 코딩된 영역 및 인트라-예측에 따라 코딩된 영역을 포함하는, 인코더에서 구현되는 방법. - 제8항 내지 제13항 중 어느 한 항에 있어서,
상기 프로세서가 GDR 액세스 유닛(AU)에서 GDR 픽처를 인코딩하는 단계; 및
상기 프로세서가 상기 GDR AU와 연관된 버퍼링 기간(buffering period, BP) 추가 강화 정보(supplemental enhancement information, SEI) 메시지를 상기 비트스트림으로 인코딩하는 단계 - 상기 BP SEI 메시지는 디코딩 순서의 GDR AU의 위치에서 가상 참조 디코더(hypothetical reference decoder, HRD)의 초기화를 위해 초기 코딩된 픽처 버퍼(coded picture buffer, CPB) 제거 지연을 제공함 -
를 더 포함하는 인코더에서 구현되는 방법. - 비디오 코딩 장치로서,
프로세서, 상기 프로세서에 결합된 수신기, 상기 프로세서에 결합된 메모리, 및 상기 프로세서에 결합된 송신기를 포함하고, 상기 프로세서, 상기 수신기, 상기 메모리, 및 상기 송신기는 제1항 내지 제14항 중 어느 한 항의 방법을 수행하도록 구성되어 있는, 비디오 코딩 장치. - 비디오 코딩 장치에 의해 사용하기 위한 컴퓨터 프로그램 제품을 포함하는 비일시적 컴퓨터 판독형 가능 매체로서,
프로세서에 의해 실행될 때 비디오 코딩 장치가 제1항 내지 제14항 중 어느 한 항의 방법을 수행하도록 상기 컴퓨터 프로그램 제품은 상기 비일시적 컴퓨터 판독형 가능 매체에 저장된 컴퓨터 실행 가능형 명령을 포함하는, 비일시적 컴퓨터 판독형 가능 매체. - 디코더로서,
점진적 디코딩 리프레시(Gradual Decoding Refresh, GDR) 픽처, 디코딩 순서에서 상기 GDR 픽처를 뒤따르는 복구 포인트 픽처, 및 상기 GDR 픽처와 연관된 헤더를 포함하는 비트스트림을 수신하기 위한 수신 수단 - 상기 헤더는 복구 픽처 순서 카운트 값 이전에 코딩된 픽처 순서 카운트(picture order count, POC) 최하위 비트(least significant bit, LSB) 값을 포함함 - ;
상기 GDR 픽처에 대한 POC를 결정하고, 상기 GDR 픽처에 대한 POC 및 상기 복구 픽처 순서 카운트 값에 기초하여 복구 포인트 픽처(POC)를 결정하기 위한 결정 수단:
상기 GDR 픽처 및 상기 복구 포인트 픽처(POC)에 기초하여 GDR에 따라 상기 비트스트림을 디코딩하기 위한 디코딩 수단: 및
디코딩된 비디오 시퀀스의 일부로서 디스플레이를 위해 상기 복구 포인트 픽처를 뒤따르는 하나 이상의 픽처를 포워딩하기 위한 포워딩 수단
을 포함하는, 디코더. - 제17항에 있어서,
상기 디코더는 제1항 내지 제7항 중 어느 한 항의 방법을 수행하도록 추가로 구성되는, 디코더. - 인코더로서,
점진적 디코딩 리프레시(Gradual Decoding Refresh, GDR) 픽처 및 디코딩 순서에서 상기 GDR 픽처를 뒤따르는 복구 포인트 픽처를 비트스트림으로 인코딩하고, 상기 GDR 픽처와 연관된 헤더를 상기 비트스트림으로 인코딩하기 위한 인코딩 수단 - 상기 헤더는 상기 복구 픽처 순서 카운트 값 이전에 코딩된 POC LSB 값을 포함함 - ; 및
상기 GDR 픽처의 POC LSB 값 및 상기 복구 포인트 픽처의 복구 픽처 순서 카운트 값을 결정하기 위한 결정 수단; 및
디코더를 향한 통신을 위해 상기 비트스트림을 저장하기 위한 저장 수단
을 포함하는 인코더. - 제19항에 있어서,
상기 인코더는 제8항 내지 제14항 중 어느 한 항의 방법을 수행하도록 추가로 구성되는, 인코더.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962843999P | 2019-05-06 | 2019-05-06 | |
US62/843,999 | 2019-05-06 | ||
PCT/US2020/030641 WO2020226992A1 (en) | 2019-05-06 | 2020-04-30 | Recovery point signaling in video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220003618A true KR20220003618A (ko) | 2022-01-10 |
Family
ID=73051697
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217039533A KR20220003084A (ko) | 2019-05-06 | 2020-04-30 | 점진적 디코딩 리프레시를 위한 가상 참조 디코더 |
KR1020217039848A KR20220003618A (ko) | 2019-05-06 | 2020-04-30 | 비디오 코딩에서 복구 포인트 시그널링 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217039533A KR20220003084A (ko) | 2019-05-06 | 2020-04-30 | 점진적 디코딩 리프레시를 위한 가상 참조 디코더 |
Country Status (7)
Country | Link |
---|---|
US (3) | US12022064B2 (ko) |
EP (2) | EP3957069A4 (ko) |
JP (3) | JP7462679B2 (ko) |
KR (2) | KR20220003084A (ko) |
CN (2) | CN113796081A (ko) |
MX (2) | MX2021013536A (ko) |
WO (2) | WO2020226991A1 (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020032049A1 (ja) * | 2018-08-06 | 2020-02-13 | シャープ株式会社 | 動画像復号装置、および動画像符号化装置 |
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 |
WO2021133721A1 (en) | 2019-12-26 | 2021-07-01 | Bytedance Inc. | Techniques for implementing a decoding order within a coded picture |
CN114902567A (zh) | 2019-12-27 | 2022-08-12 | 字节跳动有限公司 | 视频编解码中的子图像信令 |
EP4074052A4 (en) | 2020-01-09 | 2023-05-31 | ByteDance Inc. | PROCESSING OF FILLER DATA UNITS IN VIDEO STREAMS |
EP4300957A1 (en) * | 2022-06-30 | 2024-01-03 | Nokia Technologies Oy | A method, an apparatus and a computer program product for implementing gradual decoding refresh |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266147B2 (en) * | 2003-03-31 | 2007-09-04 | Sharp Laboratories Of America, Inc. | Hypothetical reference decoder |
US20130170561A1 (en) * | 2011-07-05 | 2013-07-04 | Nokia Corporation | Method and apparatus for video coding and decoding |
US9131245B2 (en) * | 2011-09-23 | 2015-09-08 | Qualcomm Incorporated | Reference picture list construction for video coding |
US20140079138A1 (en) * | 2012-09-14 | 2014-03-20 | Sony Corporation | Simplifiication of pic_order_cnt_lsb calculation in hm8 |
US9571847B2 (en) * | 2013-01-07 | 2017-02-14 | Qualcomm Incorporated | Gradual decoding refresh with temporal scalability support in video coding |
JP6209772B2 (ja) * | 2013-01-15 | 2017-10-11 | 華為技術有限公司Huawei Technologies Co.,Ltd. | シグナリングを用いたビデオデコーダ |
US9854270B2 (en) | 2013-12-19 | 2017-12-26 | Qualcomm Incorporated | Device and method for scalable coding of video information |
-
2020
- 2020-04-30 KR KR1020217039533A patent/KR20220003084A/ko not_active Application Discontinuation
- 2020-04-30 CN CN202080033677.9A patent/CN113796081A/zh active Pending
- 2020-04-30 EP EP20802498.4A patent/EP3957069A4/en active Pending
- 2020-04-30 CN CN202080033742.8A patent/CN113796085A/zh active Pending
- 2020-04-30 WO PCT/US2020/030639 patent/WO2020226991A1/en unknown
- 2020-04-30 EP EP20801664.2A patent/EP3959890A4/en active Pending
- 2020-04-30 MX MX2021013536A patent/MX2021013536A/es unknown
- 2020-04-30 MX MX2021013535A patent/MX2021013535A/es unknown
- 2020-04-30 KR KR1020217039848A patent/KR20220003618A/ko not_active Application Discontinuation
- 2020-04-30 JP JP2021566077A patent/JP7462679B2/ja active Active
- 2020-04-30 WO PCT/US2020/030641 patent/WO2020226992A1/en unknown
- 2020-04-30 JP JP2021566076A patent/JP7443398B2/ja active Active
-
2021
- 2021-11-05 US US17/520,348 patent/US12022064B2/en active Active
- 2021-11-05 US US17/520,322 patent/US12088797B2/en active Active
-
2023
- 2023-12-28 JP JP2023222920A patent/JP2024028361A/ja active Pending
-
2024
- 2024-06-19 US US18/747,629 patent/US20240340410A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
JP7443398B2 (ja) | 2024-03-05 |
US12022064B2 (en) | 2024-06-25 |
US20240340410A1 (en) | 2024-10-10 |
US20220060694A1 (en) | 2022-02-24 |
KR20220003084A (ko) | 2022-01-07 |
EP3959890A4 (en) | 2022-07-06 |
WO2020226992A1 (en) | 2020-11-12 |
US20220060693A1 (en) | 2022-02-24 |
US12088797B2 (en) | 2024-09-10 |
MX2021013536A (es) | 2022-01-31 |
CN113796081A (zh) | 2021-12-14 |
EP3957069A1 (en) | 2022-02-23 |
EP3957069A4 (en) | 2022-06-22 |
MX2021013535A (es) | 2022-01-31 |
JP7462679B2 (ja) | 2024-04-05 |
JP2022531481A (ja) | 2022-07-06 |
WO2020226991A1 (en) | 2020-11-12 |
CN113796085A (zh) | 2021-12-14 |
EP3959890A1 (en) | 2022-03-02 |
JP2022531482A (ja) | 2022-07-06 |
JP2024028361A (ja) | 2024-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115002467B (zh) | 用于分辨率改变的解码图像缓冲区操作的方法和设备 | |
KR20220070039A (ko) | Dpb 사이즈 기반의 참조 픽쳐 엔트리 제약 | |
US12088797B2 (en) | Hypothetical reference decoder for gradual decoding refresh | |
JP7436641B2 (ja) | 時間スケーラビリティのためのピクチャタイミング及び復号ユニット情報 | |
JP2022550713A (ja) | レイヤベースの適合性試験のためのhrdパラメータ | |
EP3939290B1 (en) | Interlaced video coding with leading pictures | |
KR20220065046A (ko) | Ols에 대한 스케일러블 네스팅 sei 메시지들 | |
KR20210105980A (ko) | 비디오 인코더, 비디오 디코더 및 상응하는 방법들 | |
KR20220063278A (ko) | 모든 계층에 대한 스케일러블 네스팅 sei 메시지 | |
KR20210104900A (ko) | 비디오 인코더, 비디오 디코더 및 상응하는 방법들 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal |