KR20220003084A - 점진적 디코딩 리프레시를 위한 가상 참조 디코더 - Google Patents

점진적 디코딩 리프레시를 위한 가상 참조 디코더 Download PDF

Info

Publication number
KR20220003084A
KR20220003084A KR1020217039533A KR20217039533A KR20220003084A KR 20220003084 A KR20220003084 A KR 20220003084A KR 1020217039533 A KR1020217039533 A KR 1020217039533A KR 20217039533 A KR20217039533 A KR 20217039533A KR 20220003084 A KR20220003084 A KR 20220003084A
Authority
KR
South Korea
Prior art keywords
picture
gdr
bitstream
decoder
pictures
Prior art date
Application number
KR1020217039533A
Other languages
English (en)
Inventor
예-쿠이 왕
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20220003084A publication Critical patent/KR20220003084A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/172Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/184Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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

비디오 코딩 메커니즘이 개시된다. 메커니즘은 점진적 디코딩 리프레시(GDR) 액세스 유닛(AU) 및 GDR AU와 연관된 버퍼링 기간(BP) 보충 향상 정보(SEI) 메시지를 비트스트림으로 인코딩하는 것을 포함한다. 가상 참조 디코더(HRD)가 BP SEI 메시지에 기초하여 초기화된다. HRD 적합성 테스트가 HRD를 사용하여 비트스트림에 대해 수행된다. 비트스트림은 디코더를 향한 통신을 위해 저장된다.

Description

점진적 디코딩 리프레시를 위한 가상 참조 디코더
관련 출원들에 대한 교차-참조
본 특허 출원은 Ye-Kui Wang에 의해 2019년 5월 6일자로 출원되고 발명의 명칭이 "Hypothetical Reference Decoder For Gradual Random Access"인 미국 가특허 출원 제62/843,999호의 이익을 주장하며, 이 가특허 출원은 본 명세서에 참고로 포함된다.
기술분야
본 개시내용은 일반적으로 비디오 코딩에 관한 것이며, 구체적으로는 가상 참조 디코더(hypothetical reference decoder)가 비디오 코딩에서 점진적 디코딩 리프레시(gradual decoding refresh)를 지원할 수 있게 하는 개선들에 관한 것이다.
심지어 비교적 짧은 비디오를 묘사하기 위해 필요한 비디오 데이터의 양은 상당할 수 있으며, 이는 데이터가 대역폭 용량이 제한된 통신 네트워크에 걸쳐 스트리밍되거나 또는 달리 통신되어야 할 때 어려움들을 초래할 수 있다. 따라서, 비디오 데이터는 현대의 전기통신 네트워크들에 걸쳐 통신되기 전에 일반적으로 압축된다. 메모리 리소스들이 제한될 수 있기 때문에 비디오가 저장 디바이스 상에 저장될 때 비디오의 크기가 또한 쟁점일 수 있다. 비디오 압축 디바이스들은 소스에서 소프트웨어 및/또는 하드웨어를 종종 사용하여 송신 또는 저장 전에 비디오 데이터를 코딩하고, 그렇게 함으로써 디지털 비디오 이미지들을 표현하기 위해 필요한 데이터의 수량을 감소시킨다. 비디오 데이터를 디코딩하는 비디오 압축해제 디바이스(video decompression device)에 의해 목적지에서 압축된 데이터가 다음으로 수신된다. 네트워크 리소스들이 제한되고 더 높은 비디오 품질에 대한 요구가 계속 증가함에 따라, 이미지 품질에서의 희생이 거의 내지 전혀 없이 압축비를 개선하는 개선된 압축 및 압축해제 기법들이 바람직하다.
일 실시예에서, 본 개시내용은 디코더에서 구현되는 방법을 포함하며, 이 방법은: 상기 디코더의 수신기에 의해, 점진적 디코딩 리프레시(gradual decoding refresh, GDR) 액세스 유닛(access unit, AU) 및 상기 GDR AU와 연관된 버퍼링 기간(buffering period, BP) 보충 향상 정보(supplemental enhancement information, SEI) 메시지를 포함하는 비트스트림을 수신하는 단계; 상기 디코더의 프로세서에 의해, 상기 GDR AU 내의 픽처 및 상기 BP SEI 메시지를 디코딩하는 단계; 및 상기 프로세서에 의해, 디코딩된 비디오 시퀀스의 일부로서 디스플레이를 위해 상기 픽처를 포워딩하는 단계를 포함한다.
가상 참조 디코더(hypothetical reference decoder, HRD)는 인코더 상에서 동작하는 컴포넌트이다. HRD는 인코딩된 비트스트림의 표준들과의 적합성을 체크한다. 예를 들어, HRD는 비트스트림을 체크하여 디코더가 비트스트림을 디코딩할 수 있어야 하는지를 검증할 수 있다. GDR은 비트스트림을 코딩하기 위한 메커니즘이다. GDR 픽처는 인트라-예측 코딩된 비디오 데이터의 수직 영역 및 인터-예측 코딩된 비디오 데이터의 하나 이상의 수직 영역을 포함한다. 인트라-예측 코딩된 영역의 위치는 관련 픽처들의 시리즈(a series of related pictures) 위로 이동하여 클린(clean) 영역을 생성한다. 클린 영역을 포함하는 픽처들은 다른 픽처의 클린 영역을 참조하는 인트라-예측 데이터 또는 인터-예측 데이터만을 사용하여 이러한 클린 영역을 코딩한다. 그 결과, 디코더는 제1 GDR 픽처에서 비트스트림을 디코딩하기 시작하고 각각의 픽처를 순서대로 디코딩할 수 있다. 복구 포인트 이전의 마지막 픽처에 도달하면, 디코더는 동기화되고 클린 사용가능 데이터에 기초한 인터-예측을 사용하여 임의의 추가 픽처들을 디코딩할 수 있다. 인코더들 내의 HRD들은 인트라-예측 데이터만을 포함하는 인트라 랜덤 액세스 포인트(intra random access point, IRAP) 픽처들에 기초하여 비트스트림들의 적합성을 체크하도록 구성될 수 있다. HRD들은 또한 인터-예측 데이터만을 포함하는 인터-예측된 픽처들에 기초하여 비트스트림들의 적합성을 체크하도록 구성될 수 있다. 그러나, HRD들은 GDR에서 발생하는 바와 같이, 인트라-예측과 인터-예측 양자 모두가 동일한 픽처에서 사용될 때 비트스트림들의 적합성을 체크하도록 구성되지 않을 수 있다. 본 예는 비트스트림이 GDR을 포함할 때 그 비트스트림의 적합성을 체크하도록 HRD를 구성하기 위한 메커니즘을 포함한다. GDR 픽처가 비트스트림에 포함될 때, 인코더는 HRD 파라미터들을 포함하는 BP SEI 메시지를 포함할 수 있다. HRD는 이러한 메시지를 사용하여 비트스트림의 적합성을 체크하기 시작할 수 있다. 또한, 디코더는 이러한 메시지를 체크하여 비트스트림이 적합하고, 따라서 디코딩가능한지를 검증할 수 있다. 이와 같이, GDR 픽처에 대한 BP SEI 메시지를 포함하는 것은 인코더와 디코더 양자 모두에서 추가적인 기능성을 지원한다. 또한, GDR은 네트워크 통신 동안 대역폭에서의 감소된 스파이크들을 지원할 수 있다. 이와 같이, 현재 개시된 메커니즘들은 인코더와 디코더 양자 모두에서 프로세서, 메모리, 및/또는 네트워크 리소스 사용을 감소시킬 수 있다.
선택적으로, 선행 양태들 중 어느 하나에서, 양태의 다른 구현이 제공되며, 여기서 상기 BP SEI 메시지는 디코딩 순서에서 상기 GDR AU의 위치에서 HRD의 초기화를 위한 초기 코딩된 픽처 버퍼(coded picture buffer, CPB) 제거 지연을 제공한다.
선택적으로, 선행 양태들 중 어느 하나에서, 양태의 다른 구현이 제공되며, 여기서 픽처가 GDR 픽처일 때 상기 GDR AU 내의 픽처에 대한 헤더에 이전 픽처들의 출력 없음 플래그가 설정된다.
선택적으로, 선행 양태들 중 어느 하나에서, 양태의 다른 구현이 제공되며, 여기서 상기 비트스트림은 상기 픽처와 연관된 헤더를 포함하고, 여기서 상기 헤더는 픽처 순서 카운트 최하위 비트 값 및 복구 픽처 순서 카운트 값을 포함한다.
선택적으로, 선행 양태들 중 어느 하나에서, 양태의 다른 구현이 제공되며, 여기서 상기 픽처 순서 카운트 최하위 비트 값은 상기 픽처와 연관된 상기 헤더에서 상기 복구 픽처 순서 카운트 값 이전에 위치한다.
선택적으로, 선행 양태들 중 어느 하나에서, 양태의 다른 구현이 제공되며, 여기서 상기 BP SEI 메시지는 상기 디코더가 상기 비트스트림을 디코딩할 수 있음을 표시하는 HRD 파라미터들을 포함한다.
선택적으로, 선행 양태들 중 어느 하나에서, 양태의 다른 구현이 제공되며, 여기서 상기 픽처가 인터-예측에 따라 코딩된 영역 및 인트라-예측에 따라 코딩된 영역을 포함할 때 상기 픽처는 GDR 픽처이다.
일 실시예에서, 본 개시내용은 인코더에서 구현되는 방법을 포함하며, 이 방법은: 상기 인코더의 프로세서에 의해, GDR AU 및 상기 GDR AU와 연관된 BP SEI 메시지를 비트스트림으로 인코딩하는 단계; 상기 프로세서에 의해, 상기 BP SEI 메시지에 기초하여 HRD를 초기화하는 단계; 상기 프로세서에 의해, 상기 HRD를 사용하여 상기 비트스트림에 대해 HRD 적합성 테스트를 수행하는 단계; 및 상기 프로세서에 결합된 메모리에 의해, 디코더를 향한 통신을 위해 상기 비트스트림을 저장하는 단계를 포함한다.
가상 참조 디코더(HRD)는 인코더 상에서 동작하는 컴포넌트이다. HRD는 인코딩된 비트스트림의 표준들과의 적합성을 체크한다. 예를 들어, HRD는 비트스트림을 체크하여 디코더가 비트스트림을 디코딩할 수 있어야 하는지를 검증할 수 있다. GDR은 비트스트림을 코딩하기 위한 메커니즘이다. GDR 픽처는 인트라-예측 코딩된 비디오 데이터의 수직 영역 및 인터-예측 코딩된 비디오 데이터의 하나 이상의 수직 영역을 포함한다. 인트라-예측 코딩된 영역의 위치는 관련 픽처들의 시리즈(a series of related pictures) 위로 이동하여 클린(clean) 영역을 생성한다. 클린 영역을 포함하는 픽처들은 다른 픽처의 클린 영역을 참조하는 인트라-예측 데이터 또는 인터-예측 데이터만을 사용하여 이러한 클린 영역을 코딩한다. 그 결과, 디코더는 제1 GDR 픽처에서 비트스트림을 디코딩하기 시작하고 각각의 픽처를 순서대로 디코딩할 수 있다. 복구 포인트 이전의 마지막 픽처에 도달하면, 디코더는 동기화되고 클린 사용가능 데이터에 기초한 인터-예측을 사용하여 임의의 추가 픽처들을 디코딩할 수 있다. 인코더들 내의 HRD들은 인트라-예측 데이터만을 포함하는 IRAP 픽처들에 기초하여 비트스트림들의 적합성을 체크하도록 구성될 수 있다. HRD들은 또한 인터-예측 데이터만을 포함하는 인터-예측된 픽처들에 기초하여 비트스트림들의 적합성을 체크하도록 구성될 수 있다. 그러나, HRD들은 GDR에서 발생하는 바와 같이, 인트라-예측과 인터-예측 양자 모두가 동일한 픽처에서 사용될 때 비트스트림들의 적합성을 체크하도록 구성되지 않을 수 있다. 본 예는 비트스트림이 GDR을 포함할 때 그 비트스트림의 적합성을 체크하도록 HRD를 구성하기 위한 메커니즘을 포함한다. GDR 픽처가 비트스트림에 포함될 때, 인코더는 HRD 파라미터들을 포함하는 BP SEI 메시지를 포함할 수 있다. HRD는 이러한 메시지를 사용하여 비트스트림의 적합성을 체크하기 시작할 수 있다. 또한, 디코더는 이러한 메시지를 체크하여 비트스트림이 적합하고, 따라서 디코딩가능한지를 검증할 수 있다. 이와 같이, GDR 픽처에 대한 BP SEI 메시지를 포함하는 것은 인코더와 디코더 양자 모두에서 추가적인 기능성을 지원한다. 또한, GDR은 네트워크 통신 동안 대역폭에서의 감소된 스파이크들을 지원할 수 있다. 이와 같이, 현재 개시된 메커니즘들은 인코더와 디코더 양자 모두에서 프로세서, 메모리, 및/또는 네트워크 리소스 사용을 감소시킬 수 있다.
선택적으로, 선행 양태들 중 어느 하나에서, 양태의 다른 구현이 제공되며, 여기서 상기 BP SEI 메시지는 디코딩 순서에서 상기 GDR AU의 위치에서 상기 HRD의 초기화를 위한 초기 CPB 제거 지연을 포함한다.
선택적으로, 선행 양태들 중 어느 하나에서, 양태의 다른 구현이 제공되며, 픽처가 GDR 픽처일 때 상기 GDR AU 내의 픽처에 대한 헤더에 이전 픽처들의 출력 없음 플래그를 설정하는 단계를 추가로 포함한다.
선택적으로, 선행 양태들 중 어느 하나에서, 양태의 다른 구현이 제공되며, 상기 픽처와 연관된 헤더를 상기 비트스트림에 인코딩하는 단계를 추가로 포함하고, 여기서 상기 헤더는 픽처 순서 카운트 최하위 비트 값 및 복구 픽처 순서 카운트 값을 포함한다.
선택적으로, 선행 양태들 중 어느 하나에서, 양태의 다른 구현이 제공되며, 여기서 상기 픽처 순서 카운트 최하위 비트 값은 상기 픽처와 연관된 상기 헤더에서 상기 복구 픽처 순서 카운트 값 이전에 위치한다.
선택적으로, 선행 양태들 중 어느 하나에서, 양태의 다른 구현이 제공되며, 여기서 상기 BP SEI 메시지는 상기 디코더가 상기 비트스트림을 디코딩할 수 있음을 표시하는 HRD 파라미터들을 포함한다.
선택적으로, 선행 양태들 중 어느 하나에서, 양태의 다른 구현이 제공되며, 여기서 상기 픽처가 인터-예측에 따라 코딩된 영역 및 인트라-예측에 따라 코딩된 영역을 포함할 때 상기 픽처는 GDR 픽처이다.
일 실시예에서, 본 개시내용은 비디오 코딩 디바이스를 포함하며, 이 비디오 코딩 디바이스는: 프로세서, 상기 프로세서에 결합된 수신기, 상기 프로세서에 결합된 메모리, 및 상기 프로세서에 결합된 송신기를 포함하고, 상기 프로세서, 수신기, 메모리, 및 송신기는 선행 양태들 중 어느 하나의 방법을 수행하도록 구성된다.
일 실시예에서, 본 개시내용은 비디오 코딩 디바이스에 의한 사용을 위한 컴퓨터 프로그램 제품을 포함하는 비일시적 컴퓨터 판독가능 매체를 포함하며, 상기 컴퓨터 프로그램 제품은, 프로세서에 의해 실행될 때 상기 비디오 코딩 디바이스로 하여금 선행 양태들 중 어느 하나의 방법을 수행하게 하는, 비일시적 컴퓨터 판독가능 매체 상에 저장된 컴퓨터 실행가능 명령어들을 포함한다.
일 실시예에서, 본 개시내용은 디코더를 포함하며, 이 디코더는: GDR AU 및 상기 GDR AU와 연관된 BP SEI 메시지를 포함하는 비트스트림을 수신하기 위한 수신 수단; 상기 GDR AU 내의 픽처 및 상기 BP SEI 메시지를 디코딩하기 위한 디코딩 수단; 및 디코딩된 비디오 시퀀스의 일부로서 디스플레이를 위해 상기 픽처를 포워딩하기 위한 포워딩 수단을 포함한다.
선택적으로, 선행 양태들 중 어느 하나에서, 양태의 다른 구현이 제공되며, 여기서 상기 디코더는 선행 양태들 중 어느 하나의 방법을 수행하도록 추가로 구성된다.
일 실시예에서, 본 개시내용은 인코더를 포함하며, 이 인코더는: GDR AU 및 상기 GDR AU와 연관된 BP SEI 메시지를 비트스트림으로 인코딩하기 위한 인코딩 수단; 상기 BP SEI 메시지에 기초하여 HRD를 초기화하기 위한 초기화 수단; 상기 HRD를 사용하여 상기 비트스트림에 대해 HRD 적합성 테스트를 수행하기 위한 HRD 수단; 및 디코더를 향한 통신을 위해 상기 비트스트림을 저장하기 위한 저장 수단을 포함한다.
선택적으로, 선행 양태들 중 어느 하나에서, 양태의 다른 구현이 제공되며, 여기서 상기 인코더는 선행 양태들 중 어느 하나의 방법을 수행하도록 추가로 구성된다.
명료성의 목적을 위해, 전술한 실시예들 중 어느 하나는 본 개시내용의 범위 내에서 새로운 실시예를 창출하기 위해 다른 전술한 실시예들 중 임의의 하나 이상과 조합될 수 있다.
이들 및 다른 특징들은 첨부 도면들 및 청구항들과 함께 취해진 다음의 상세한 설명으로부터 더욱 명확하게 이해될 것이다.
본 개시내용의 더욱 완전한 이해를 위해, 이제 첨부 도면들 및 상세한 설명과 함께 취해진 다음의 간단한 설명이 참조되며, 여기서 유사한 참조 번호들은 유사한 부분들을 나타낸다.
도 1은 비디오 신호를 코딩하는 예시적인 방법의 흐름도이다.
도 2는 비디오 코딩을 위한 예시적인 코딩 및 디코딩(코덱) 시스템의 개략도이다.
도 3은 예시적인 비디오 인코더를 예시하는 개략도이다.
도 4는 예시적인 비디오 디코더를 예시하는 개략도이다.
도 5는 예시적인 가상 참조 디코더(HRD)를 예시하는 개략도이다.
도 6은 비디오 시퀀스에 대해 점진적 디코딩 리프레시(GDR)를 수행하기 위한 예시적인 메커니즘을 예시하는 개략도이다.
도 7은 바람직하지 않은 모션 탐색을 예시하는 개략도이다.
도 8은 GDR이 이용될 때 HRD를 초기화하는 데 사용하기 위한 예시적인 비트스트림을 예시하는 개략도이다.
도 9는 예시적인 비디오 코딩 디바이스의 개략도이다.
도 10은 HRD를 초기화하면서 GDR을 이용하는 비디오 시퀀스를 비트스트림으로 인코딩하는 예시적인 방법의 흐름도이다.
도 11은 비트스트림이 적합한 비트스트림(conforming bitstream)이라고 HRD가 표시할 때 비트스트림으로부터 GDR을 이용하는 비디오 시퀀스를 디코딩하는 예시적인 방법의 흐름도이다.
도 12는 HRD를 이용하면서 GDR을 이용하는 비디오 시퀀스를 비트스트림으로 코딩하기 위한 예시적인 시스템의 개략도이다.
하나 이상의 실시예의 예시적인 구현이 이하에 제공되지만, 개시된 시스템들 및/또는 방법들은, 현재 알려져 있든지 이미 존재하고 있든지 간에, 임의의 수의 기법을 사용하여 구현될 수 있다는 것이 처음부터 이해되어야 한다. 본 개시내용은 본 명세서에 예시되고 설명된 예시적인 설계들 및 구현들을 포함하여, 이하에 예시된 예시적인 구현들, 도면들, 및 기법들로 결코 제한되어서는 안 되며, 등가물들의 전체 범위와 함께 첨부된 청구항들의 범위 내에서 수정될 수 있다.
다음의 용어들은 본 명세서에서 반대 맥락으로 사용되지 않는 한 다음과 같이 정의된다. 구체적으로, 다음의 정의들은 본 개시내용에 추가적인 명료성을 제공하도록 의도된다. 그러나, 용어들은 상이한 맥락들에서 상이하게 설명될 수 있다. 따라서, 다음의 정의들은 보충으로서 간주되어야 하며, 본 명세서에서 이러한 용어들에 대해 제공된 설명들의 임의의 다른 정의들을 제한하는 것으로 간주되어서는 안 된다.
비트스트림은 인코더와 디코더 사이의 송신을 위해 압축되는 비디오 데이터를 포함하는 비트들의 시퀀스이다. 인코더는 인코딩 프로세스들을 이용하여 비디오 데이터를 비트스트림으로 압축하도록 구성되는 디바이스이다. 디코더는 디코딩 프로세스들을 이용하여 디스플레이를 위해 비트스트림으로부터 비디오 데이터를 재구성하도록 구성되는 디바이스이다. 픽처는 비디오 시퀀스 내의 대응하는 순간(instant)에 사용자에게 완전히 또는 부분적으로 디스플레이하도록 의도된 완전한 이미지이다. 픽처는 슬라이스들로 파티셔닝될 수 있고, 슬라이스들은 선택적으로 타일들로 파티셔닝될 수 있고, 슬라이스들 및/또는 타일들은 코딩 트리 유닛(coding tree unit, CTU)들 및/또는 코딩 트리 블록(coding tree block, CTB)들로 파티셔닝될 수 있고, CTU들/CTB들은 코딩 블록들로 파티셔닝될 수 있으며, 이들은 예측 메커니즘들에 따라 코딩될 수 있다. 액세스 유닛(AU)은, 단일의 코딩된 픽처 및 선택적으로 코딩된 픽처를 코딩하는데 이용되는 코딩 메커니즘들을 설명하는 파라미터들을 포함하는 하나 이상의 헤더를 저장하도록 구성되는 코딩 유닛이다. 헤더는 코딩된 비디오 데이터의 대응하는 부분에 적용되는 신택스 요소들을 포함하는 신택스 구조이다. 헤더들은 픽처 헤더들 및 슬라이스 헤더들을 포함할 수 있다. 픽처 헤더는 코딩된 픽처의 모든 슬라이스들에 적용되는 신택스 요소들을 포함하는 신택스 구조이다. 슬라이스 헤더는 슬라이스에 표현된 모든 타일들 또는 타일 내의 CTU 행들에 관한 데이터 요소들을 포함하는 코딩된 슬라이스의 일부이다. 인터-코딩으로도 알려진 인터-예측은 현재 픽처 내의 현재 블록의 샘플들을, 현재 픽처와 상이한 참조 픽처 내의 참조 블록의 대응하는 샘플들을 참조하여 코딩하는 메커니즘이다. 인트라-코딩으로도 알려진 인트라-예측은 현재 픽처 내의 현재 블록의 샘플들을, 현재 픽처 내의 참조 블록의 대응하는 샘플들을 참조하여 코딩하는 메커니즘이다(즉, 현재 블록과 참조 블록은 동일한 픽처 내에 있다). GDR은 완전히 인트라-코딩된 단일 픽처로 코딩된 비디오 시퀀스를 초기화하는 것을 회피하기 위해 인터-코딩된 영역들과 인트라-코딩된 영역들 양자 모두를 각각 포함하는 픽처들의 시리즈를 코딩하는 메커니즘이다. GDR AU는 GDR 관련 픽처들의 시리즈에서 제1 GDR 픽처를 포함하는 AU이다. 복구 포인트 픽처는 GDR 시리즈에 후속하는 픽처이며, 따라서 이 픽처는 시리즈에서 제1 GDR 픽처에 선행하는 픽처들로부터의 데이터를 참조하지 않고서 완전히 디코딩될 수 있다. 픽처 순서 카운트(POC)는 각각의 픽처와 연관되며 코딩된 비디오 시퀀스 내의 모든 픽처들 중에서 연관된 픽처를 고유하게 식별하는 변수/값이다. 또한, 연관된 픽처가 디코딩된 픽처 버퍼(decoded picture buffer, DPB)로부터 출력될 때, POC는 DPB로부터 또한 출력되는 동일한 코딩된 비디오 시퀀스 내의 다른 픽처들의 출력 순서 위치들에 상대적인 출력 순서로 연관된 픽처의 위치를 표시한다. 복구 POC는 복구 포인트 픽처의 POC이다. POC 최하위 비트(LSB)는 POC 값 내의 최저차 비트들 중 하나 이상이다. HRD는 지정된 제약조건들과의 적합성을 검증하기 위해 인코딩 프로세스에 의해 생성된 비트스트림들의 가변성을 체크하는 인코더 상에서 동작하는 디코더 모델이다. HRD 적합성 테스트는 인코딩된 비트스트림이 VVC와 같은 표준을 준수하는지를 결정하는 테스트이다. HRD 파라미터들은 HRD의 동작 조건들을 초기화 및/또는 정의하는 신택스 요소들이다. 보충 향상 정보(SEI) 메시지는 디코딩된 픽처들 내의 샘플들의 값들을 결정하기 위해 디코딩 프로세스에 의해 필요하지 않은 정보를 전달하는 지정된 시맨틱스를 갖는 신택스 구조이다. 버퍼링 기간(BP) SEI 메시지는 코딩된 픽처 버퍼(CPB)를 관리하기 위해 HRD를 초기화하기 위한 HRD 파라미터들을 포함하는 SEI 메시지이다. CPB는 비트스트림 적합성 검증 동안 사용하기 위한 디코딩 순서로 코딩된 픽처들을 포함하는 HRD 내의 선입 선출 버퍼이다. 디코딩 순서는 신택스 요소들이 디코딩 프로세스에 의해 처리되는 순서이다. CPB 제거 지연은 현재 픽처가 제거 이전에 CPB에 남아 있을 수 있는 기간이다. 이전 픽처들의 출력 없음 플래그는 DPB 내의 이전에 디코딩된 픽처들이 출력되지 않아야 한다는 것을 표시하는 데 사용되는 플래그이다.
다음의 두문자어들, 코딩 트리 블록(Coding Tree Block, CTB), 코딩 트리 유닛(Coding Tree Unit, CTU), 코딩 유닛(Coding Unit, CU), 클린 랜덤 액세스(Clean Random Access, 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) 표준화 섹터(ITU-T) H.261, ISO/IEC(International Organization for Standardization/International Electrotechnical Commission) 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, 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), 및 3차원(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는 JVET-N1001-v3을 포함하는 작업 초안(WD)에 포함된다.
인코더들은 HRD와 같은 많은 컴포넌트들을 이용한다. 인코더는 다양한 컴포넌트들을 이용하여 비트스트림을 인코딩한다. 그 후, HRD는 인코딩된 비트스트림을 체크하여 인코딩이 표준들에 적합하도록 보장한다. 예를 들어, HRD는 비트스트림을 체크하여 디코더가 비트스트림을 디코딩할 수 있어야 하는지를 검증할 수 있다. 인코더는 또한 비트스트림을 인코딩하기 위해 많은 메커니즘을 이용한다. GDR은 비트스트림을 코딩하기 위해 인코더에 의해 사용되는 예시적인 코딩 메커니즘이다. GDR 픽처는 인트라-예측 코딩된 비디오 데이터의 수직 영역 및 인터-예측 코딩된 비디오 데이터의 하나 이상의 수직 영역을 포함한다. 인트라-예측 코딩된 영역의 위치는 관련 픽처들의 시리즈(a series of related pictures) 위로 이동하여 클린(clean) 영역을 생성한다. 클린 영역을 포함하는 픽처들은 다른 픽처의 클린 영역을 참조하는 인트라-예측 데이터 또는 인터-예측 데이터만을 사용하여 이러한 클린 영역들을 코딩한다. 그 결과, 디코더는 제1 GDR 픽처에서 비트스트림을 디코딩하기 시작하고 각각의 픽처를 순서대로 디코딩할 수 있다. 복구 포인트 이전의 마지막 픽처에 도달하면, 디코더는 동기화되고 클린 사용가능 데이터에 기초한 인터-예측을 사용하여 임의의 추가 픽처들을 디코딩할 수 있다. 인코더들 내의 HRD들은 인트라-예측 데이터만을 포함하는 인트라 랜덤 액세스 포인트(intra random access point, 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가 결정되면 분석(resolve)되는 메모리에 배치되기보다는 즉시 결정될 수 있다. 이와 같이, 본 개시내용은 인코더와 디코더 양자 모두에서 추가적인 기능성을 지원한다. 또한, 본 개시내용은 인코더 및/또는 디코더에서의 프로세서, 메모리, 및/또는 네트워크 통신 리소스 사용을 감소시킨다.
도 1은 비디오 신호를 코딩하는 예시적인 동작 방법(100)의 흐름도이다. 구체적으로, 비디오 신호는 인코더에서 인코딩된다. 인코딩 프로세스는 비디오 파일 크기를 감소시키기 위해 다양한 메커니즘을 사용하여 비디오 신호를 압축한다. 더 작은 파일 크기는 연관된 대역폭 오버헤드를 감소시키면서 압축된 비디오 파일이 사용자를 향해 송신될 수 있게 한다. 디코더는 그 후 압축된 비디오 파일을 디코딩하여 최종 사용자에게 디스플레이하기 위해 원래의 비디오 신호를 재구성한다. 디코딩 프로세스는 일반적으로 인코딩 프로세스를 미러링하여 디코더가 비디오 신호를 일관되게 재구성할 수 있게 한다.
단계(101)에서, 비디오 신호는 인코더에 입력된다. 예를 들어, 비디오 신호는 메모리에 저장된 압축되지 않은 비디오 파일일 수 있다. 다른 예로서, 비디오 파일은 비디오 카메라와 같은 비디오 캡처 디바이스에 의해 캡처되고, 비디오의 라이브 스트리밍을 지원하도록 인코딩될 수 있다. 비디오 파일은 오디오 컴포넌트와 비디오 컴포넌트 양자 모두를 포함할 수 있다. 비디오 컴포넌트는, 시퀀스로 볼 때, 모션의 시각적 인상을 주는 이미지 프레임들의 시리즈를 포함한다. 프레임들은 본 명세서에서 루마 성분들(또는 루마 샘플들)로 지칭되는 광, 및 크로마 성분들(또는 컬러 샘플들)로 지칭되는 컬러의 관점에서 표현되는 픽셀들을 포함한다. 일부 예들에서, 프레임들은 3차원 보기를 지원하기 위한 깊이 값들을 또한 포함할 수 있다.
단계(103)에서, 비디오는 블록들로 파티셔닝된다. 파티셔닝은 각각의 프레임 내의 픽셀들을 압축을 위해 정사각형 및/또는 직사각형 블록들로 세분하는 것을 포함한다. 예를 들어, HEVC(High Efficiency Video Coding)(H.265 및 MPEG-H Part 2로도 알려짐)에서, 프레임은 미리 정의된 크기(예를 들어, 64 픽셀 x 64 픽셀)의 블록들인 코딩 트리 유닛(CTU)들로 먼저 분할될 수 있다. CTU들은 루마 및 크로마 샘플들 양자 모두를 포함한다. 코딩 트리들을 이용하여 CTU들을 블록들로 분할하고 나서 추가 인코딩을 지원하는 구성들이 달성될 때까지 블록들을 재귀적으로 세분할 수 있다. 예를 들어, 프레임의 루마 성분들은 개별 블록들이 상대적으로 균일한 조명 값들을 포함할 때까지 세분될 수 있다. 또한, 프레임의 크로마 성분들은 개별 블록들이 상대적으로 균일한 컬러 값들을 포함할 때까지 세분될 수 있다. 따라서, 파티셔닝 메커니즘들은 비디오 프레임들의 내용에 따라 달라진다.
단계(105)에서, 다양한 압축 메커니즘들을 이용하여 단계(103)에서 파티셔닝된 이미지 블록들을 압축한다. 예를 들어, 인터-예측 및/또는 인트라-예측이 이용될 수 있다. 인터-예측은 공통 장면 내의 객체들이 연속적인 프레임들에 나타나는 경향이 있다는 사실을 이용하도록 설계된다. 따라서, 참조 프레임 내의 객체를 묘사하는 블록은 인접 프레임들에서 반복적으로 기술될 필요가 없다. 구체적으로, 테이블과 같은 객체는 다수의 프레임들에 걸쳐 일정한 위치에 유지될 수 있다. 따라서, 테이블은 한 번 기술되고 인접 프레임들은 참조 프레임을 다시 참조할 수 있다. 다수의 프레임들에 걸쳐 객체들을 매칭시키기 위해 패턴 매칭 메커니즘들이 이용될 수 있다. 또한, 예를 들어, 객체 움직임 또는 카메라 움직임으로 인해 다수의 프레임들에 걸쳐 움직이는 객체들이 표현될 수 있다. 특정한 예로서, 비디오는 다수의 프레임들에 걸쳐 스크린을 가로질러 움직이는 자동차를 보여줄 수 있다. 모션 벡터들은 이러한 움직임을 기술하는 데 이용될 수 있다. 모션 벡터는 프레임 내의 객체의 좌표들로부터 참조 프레임 내의 객체의 좌표들까지 오프셋을 제공하는 2차원 벡터이다. 이와 같이, 인터-예측은 참조 프레임 내의 대응하는 블록으로부터의 오프셋을 표시하는 모션 벡터들의 세트로서 현재 프레임 내의 이미지 블록을 인코딩할 수 있다.
인트라-예측은 공통 프레임 내의 블록들을 인코딩한다. 인트라-예측은 루마 및 크로마 성분들이 프레임에서 클러스터링하는 경향이 있다는 사실을 이용한다. 예를 들어, 나무의 일부분에서의 녹색의 패치(patch)는 녹색의 유사한 패치들에 인접하여 배치되는 경향이 있다. 인트라-예측은 다수의 방향 예측 모드들(예를 들어, HEVC에서 33), 평면 모드, 및 직류(DC) 모드를 이용한다. 방향 모드들은 현재 블록이 대응하는 방향에서 이웃 블록의 샘플들과 유사/동일하다는 것을 나타낸다. 평면 모드는 행/열(예를 들어, 평면)을 따르는 블록들의 시리즈가 행의 에지들에서의 이웃 블록들에 기초하여 보간될 수 있다는 것을 나타낸다. 평면 모드는, 사실상, 값들을 변경함에 있어서 비교적 일정한 기울기를 이용하여 행/열에 걸쳐 광/컬러의 매끄러운 전이를 나타낸다. DC 모드는 경계 평활화(boundary smoothing)를 위해 이용되고, 블록이 방향 예측 모드들의 각도 방향들과 연관된 모든 이웃 블록들의 샘플들과 연관된 평균 값과 유사/동일하다는 것을 나타낸다. 따라서, 인트라-예측 블록들은 실제 값들 대신에 다양한 관계 예측 모드 값들로서 이미지 블록들을 표현할 수 있다. 또한, 인터-예측 블록들은 실제 값들 대신에 모션 벡터 값들로서 이미지 블록들을 표현할 수 있다. 어느 경우이든, 예측 블록들은 일부 경우에 이미지 블록들을 정확하게 표현하지 않을 수 있다. 임의의 차이들이 잔차 블록들에 저장된다. 파일을 추가로 압축하기 위해 잔차 블록들에 변환들이 적용될 수 있다.
단계(107)에서, 다양한 필터링 기법이 적용될 수 있다. HEVC에서, 필터들은 인-루프 필터링 방식(in-loop filtering scheme)에 따라 적용된다. 위에서 논의된 블록 기반 예측은 디코더에서 블록키 이미지(blocky image)들의 생성을 초래할 수 있다. 또한, 블록 기반 예측 방식은 블록을 인코딩하고 나서 인코딩된 블록을 참조 블록으로서 나중에 사용하기 위해 재구성할 수 있다. 인-루프 필터링 방식은 블록들/프레임들에 잡음 억제 필터들, 디-블로킹 필터(de-blocking filter)들, 적응 루프 필터들, 및 SAO(sample adaptive offset) 필터들을 반복적으로 적용한다. 이들 필터는 이러한 블로킹 아티팩트들을 완화하여 인코딩된 파일이 정확하게 재구성될 수 있게 한다. 또한, 이들 필터는 재구성된 참조 블록들에서 아티팩트들을 완화하여 아티팩트들이 재구성된 참조 블록들에 기초하여 인코딩되는 후속 블록들에서 추가적인 아티팩트들을 생성할 가능성이 적다.
일단 비디오 신호가 파티셔닝되고, 압축되고, 필터링되었다면, 결과적인 데이터는 단계(109)에서 비트스트림으로 인코딩된다. 비트스트림은 위에서 논의된 데이터뿐만 아니라 디코더에서 적절한 비디오 신호 재구성을 지원하기 위해 요구되는 임의의 시그널링 데이터를 포함한다. 예를 들어, 이러한 데이터는 파티션 데이터(partition data), 예측 데이터, 잔차 블록들, 및 디코더에 코딩 명령어들을 제공하는 다양한 플래그들을 포함할 수 있다. 비트스트림은 요청 시에 디코더를 향한 송신을 위해 메모리에 저장될 수 있다. 비트스트림은 또한 복수의 디코더를 향해 브로드캐스트 및/또는 멀티캐스트될 수 있다. 비트스트림의 생성은 반복적 프로세스이다. 따라서, 단계들(101, 103, 105, 107 및 109)은 많은 프레임 및 블록에 걸쳐 연속적으로 및/또는 동시에 발생할 수 있다. 도 1에 도시된 순서는 논의의 명료성 및 용이함을 위해 제시된 것이고, 비디오 코딩 프로세스를 특정한 순서로 제한하도록 의도되지 않는다.
디코더는 단계(111)에서 비트스트림을 수신하고 디코딩 프로세스를 시작한다. 구체적으로, 디코더는 엔트로피 디코딩 방식을 이용하여 비트스트림을 대응하는 신택스 및 비디오 데이터로 전환(convert)한다. 디코더는 단계(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), 및 헤더 포맷팅 및 CABAC(context adaptive binary arithmetic coding) 컴포넌트(231)를 포함한다. 이러한 컴포넌트들은 도시된 바와 같이 결합된다. 도 2에서, 검은 선들은 인코딩/디코딩될 데이터의 이동을 표시하고, 파선들은 다른 컴포넌트들의 동작을 제어하는 제어 데이터의 이동을 표시한다. 코덱 시스템(200)의 컴포넌트들은 모두 인코더에 존재할 수 있다. 디코더는 코덱 시스템(200)의 컴포넌트들의 서브세트를 포함할 수 있다. 예를 들어, 디코더는 인트라-픽처 예측 컴포넌트(217), 모션 보상 컴포넌트(219), 스케일링 및 역 변환 컴포넌트(229), 인-루프 필터 컴포넌트(225), 및 디코딩된 픽처 버퍼 컴포넌트(223)를 포함할 수 있다. 이제 이들 컴포넌트가 설명된다.
파티셔닝된 비디오 신호(201)는 코딩 트리에 의해 픽셀들의 블록들로 파티셔닝된 캡처된 비디오 시퀀스이다. 코딩 트리는 다양한 스플릿(split) 모드를 이용하여 픽셀들의 블록을 더 작은 픽셀들의 블록들로 세분한다. 그 후 이들 블록은 더 작은 블록들로 추가로 세분될 수 있다. 블록들은 코딩 트리 상의 노드들로 지칭될 수 있다. 더 큰 부모 노드들은 더 작은 자식 노드들로 스플릿된다. 노드가 세분되는 횟수는 노드/코딩 트리의 깊이로 지칭된다. 분할된 블록들은 일부 경우에 코딩 유닛(CU)들에 포함될 수 있다. 예를 들어, CU는 CU에 대한 대응하는 신택스 명령어들과 함께 루마 블록, 적색 차이 크로마(Cr) 블록(들), 및 청색 차이 크로마(Cb) 블록(들)을 포함하는 CTU의 하위 부분일 수 있다. 스플릿 모드들은 노드를 이용되는 스플릿 모드들에 따라 달라지는 형상들의 2개, 3개, 또는 4개의 자식 노드로 각각 파티셔닝하기 위해 이용되는 이진 트리(binary tree, BT), 트리플 트리(triple tree, TT), 및 쿼드 트리(quad tree, QT)를 포함할 수 있다. 파티셔닝된 비디오 신호(201)는 압축을 위해 일반 코더 제어 컴포넌트(211), 변환 스케일링 및 양자화 컴포넌트(213), 인트라-픽처 추정 컴포넌트(215), 필터 제어 분석 컴포넌트(227), 및 모션 추정 컴포넌트(221)에 포워딩된다.
일반 코더 제어 컴포넌트(211)는 응용 제약들에 따라 비디오 시퀀스의 이미지들을 비트스트림으로 코딩하는 것에 관련된 결정들을 하도록 구성된다. 예를 들어, 일반 코더 제어 컴포넌트(211)는 비트레이트/비트스트림 크기 대 재구성 품질의 최적화를 관리한다. 이러한 결정들은 저장 공간/대역폭 이용가능성 및 이미지 해상도 요청들에 기초하여 행해질 수 있다. 일반 코더 제어 컴포넌트(211)는 또한 버퍼 언더런(underrun) 및 오버런(overrun) 문제들을 완화하기 위해 송신 속도에 비추어 버퍼 활용을 관리한다. 이들 문제를 관리하기 위해, 일반 코더 제어 컴포넌트(211)는 다른 컴포넌트들에 의한 파티셔닝, 예측, 및 필터링을 관리한다. 예를 들어, 일반 코더 제어 컴포넌트(211)는 동적으로 압축 복잡도를 증가시켜 해상도를 증가시키고 대역폭 사용을 증가시키거나 압축 복잡도를 감소시켜 해상도 및 대역폭 사용을 감소시킬 수 있다. 따라서, 일반 코더 제어 컴포넌트(211)는 코덱 시스템(200)의 다른 컴포넌트들을 제어하여 비디오 신호 재구성 품질과 비트 레이트 관심사들의 균형을 맞춘다. 일반 코더 제어 컴포넌트(211)는 다른 컴포넌트들의 동작을 제어하는 제어 데이터를 생성한다. 제어 데이터는 또한 디코더에서 디코딩하기 위한 파라미터들을 시그널링하기 위해 비트스트림으로 인코딩되도록 헤더 포맷팅 및 CABAC 컴포넌트(231)에 포워딩된다.
파티셔닝된 비디오 신호(201)는 또한 인터-예측을 위해 모션 추정 컴포넌트(221) 및 모션 보상 컴포넌트(219)에 전송된다. 파티셔닝된 비디오 신호(201)의 프레임 또는 슬라이스는 다수의 비디오 블록들로 분할될 수 있다. 모션 추정 컴포넌트(221) 및 모션 보상 컴포넌트(219)는 시간적 예측을 제공하기 위해 하나 이상의 참조 프레임 내의 하나 이상의 블록에 대해 수신된 비디오 블록의 인터-예측 코딩을 수행한다. 코덱 시스템(200)은, 예를 들어, 비디오 데이터의 각각의 블록에 대한 적절한 코딩 모드를 선택하기 위해 다수의 코딩 패스(coding pass)들을 수행할 수 있다.
모션 추정 컴포넌트(221) 및 모션 보상 컴포넌트(219)는 고도로 통합될 수 있지만, 개념적 목적을 위해 개별적으로 예시되어 있다. 모션 추정 컴포넌트(221)에 의해 수행되는 모션 추정은 비디오 블록들에 대한 모션을 추정하는 모션 벡터들을 생성하는 프로세스이다. 모션 벡터는, 예를 들어, 예측 블록에 대한 코딩된 객체의 변위를 표시할 수 있다. 예측 블록은, 픽셀 차이의 관점에서, 코딩될 블록과 가깝게 매칭되는 것으로 발견된 블록이다. 예측 블록은 참조 블록이라고도 지칭될 수 있다. 이러한 픽셀 차이는 SAD(sum of absolute difference), SSD(sum of square difference), 또는 다른 차이 메트릭들에 의해 결정될 수 있다. HEVC는 CTU, 코딩 트리 블록(CTB)들, 및 CU들을 포함하는 여러 코딩된 객체를 이용한다. 예를 들어, CTU는 CTB들로 분할될 수 있고, 이는 그 후 CU들에 포함되기 위해 CB들로 분할될 수 있다. CU는 예측 데이터를 포함하는 예측 유닛(PU) 및/또는 CU에 대한 변환된 잔차 데이터를 포함하는 변환 유닛(TU)으로서 인코딩될 수 있다. 모션 추정 컴포넌트(221)는 레이트 왜곡 최적화 프로세스의 일부로서 레이트-왜곡 분석을 사용하여 모션 벡터들, PU들, 및 TU들을 생성한다. 예를 들어, 모션 추정 컴포넌트(221)는 현재 블록/프레임에 대한 다수의 참조 블록들, 다수의 모션 벡터들 등을 결정할 수 있고, 최상의 레이트-왜곡 특성들을 갖는 참조 블록들, 모션 벡터들 등을 선택할 수 있다. 최상의 레이트-왜곡 특성들은 비디오 재구성의 품질(예를 들어, 압축에 의한 데이터 손실의 양)과 코딩 효율(예를 들어, 최종 인코딩의 크기) 양자 모두의 균형을 맞춘다.
일부 예들에서, 코덱 시스템(200)은 디코딩된 픽처 버퍼 컴포넌트(223)에 저장된 참조 픽처들의 정수-미만 픽셀 위치들(sub-integer pixel positions)에 대한 값들을 계산할 수 있다. 예를 들어, 비디오 코덱 시스템(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)는 레이트-왜곡 최적화(rate-distortion optimization, RDO)에 기초한 깊이 모델링 모드(depth modeling mode, DMM)를 사용하여 깊이 맵의 깊이 블록들을 코딩하도록 구성될 수 있다.
인트라-픽처 예측 컴포넌트(217)는 인코더 상에서 구현될 때 인트라-픽처 추정 컴포넌트(215)에 의해 결정된 선택된 인트라-예측 모드들에 기초하여 예측 블록으로부터 잔차 블록을 생성하거나 디코더 상에서 구현될 때 비트스트림으로부터 잔차 블록을 판독할 수 있다. 잔차 블록은, 행렬로서 표현되는, 예측 블록과 원래의 블록 사이의 값들의 차이를 포함한다. 잔차 블록은 그 후 변환 스케일링 및 양자화 컴포넌트(213)에 포워딩된다. 인트라-픽처 추정 컴포넌트(215) 및 인트라-픽처 예측 컴포넌트(217)는 루마 및 크로마 성분들 양자 모두에 대해 동작할 수 있다.
변환 스케일링 및 양자화 컴포넌트(213)는 잔차 블록을 추가로 압축하도록 구성된다. 변환 스케일링 및 양자화 컴포넌트(213)는 DCT(discrete cosine transform), DST(discrete sine transform), 또는 개념적으로 유사한 변환과 같은 변환을 잔차 블록에 적용하여, 잔차 변환 계수 값들을 포함하는 비디오 블록을 생성한다. 웨이브릿 변환들, 정수 변환들, 서브-밴드(sub-band) 변환들 또는 다른 유형들의 변환들이 역시 사용될 수 있다. 변환은 잔차 정보를 픽셀 값 도메인으로부터 주파수 도메인과 같은 변환 도메인으로 전환할 수 있다. 변환 스케일링 및 양자화 컴포넌트(213)는 또한, 예를 들어, 주파수에 기초하여 변환된 잔차 정보를 스케일링하도록 구성된다. 이러한 스케일링은 상이한 주파수 정보가 상이한 입도(granularity)들로 양자화되도록 잔차 정보에 스케일 인자를 적용하는 것을 수반하고, 이는 재구성된 비디오의 최종 시각적 품질에 영향을 미칠 수 있다. 변환 스케일링 및 양자화 컴포넌트(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)를 재구성하기 위해 디코더에 의해 요구되는 모든 정보를 포함한다. 이러한 정보는 인트라-예측 모드 인덱스 테이블들(코드워드 맵핑 테이블들이라고도 지칭됨), 다양한 블록들에 대한 인코딩 컨텍스트들의 정의들, 최고 확률 인트라-예측 모드들의 표시들(indications of most probable intra-prediction modes), 파티션 정보의 표시 등을 또한 포함할 수 있다. 이러한 데이터는 엔트로피 코딩을 이용하여 인코딩될 수 있다. 예를 들어, 정보는 CAVLC(context adaptive variable length coding), CABAC, SBAC(syntax-based context-adaptive binary arithmetic coding), PIPE(probability interval partitioning entropy) 코딩, 또는 다른 엔트로피 코딩 기법을 이용하여 인코딩될 수 있다. 엔트로피 코딩에 이어서, 코딩된 비트스트림은 다른 디바이스(예를 들어, 비디오 디코더)에 송신되거나 나중의 송신 또는 검색을 위해 보관(archive)될 수 있다.
도 3은 예시적인 비디오 인코더(300)를 예시하는 블록도이다. 비디오 인코더(300)는 코덱 시스템(200)의 인코딩 기능들을 구현하고/하거나 동작 방법(100)의 단계들(101, 103, 105, 107, 및/또는 109)을 구현하기 위해 이용될 수 있다. 인코더(300)는 입력 비디오 신호를 파티셔닝하여, 파티셔닝된 비디오 신호(201)와 실질적으로 유사한 파티셔닝된 비디오 신호(301)를 생성한다. 파티셔닝된 비디오 신호(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)는 예측 모드들을 이용하여 프레임 내의 참조 블록의 위치를 찾고 잔차 블록을 결과에 적용하여 인트라-예측된 이미지 블록들을 재구성한다. 재구성된 인트라-예측된 이미지 블록들 및/또는 잔차 블록들 및 대응하는 인터-예측 데이터는 인-루프 필터 컴포넌트(425)를 통해 디코딩된 픽처 버퍼 컴포넌트(423)에 포워딩되는데, 이들은 각각, 인-루프 필터 컴포넌트(225) 및 디코딩된 픽처 버퍼 컴포넌트(223)와 실질적으로 유사할 수 있다. 인-루프 필터 컴포넌트(425)는 재구성된 이미지 블록들, 잔차 블록들 및/또는 예측 블록들을 필터링하고, 이러한 정보는 디코딩된 픽처 버퍼 컴포넌트(423)에 저장된다. 디코딩된 픽처 버퍼 컴포넌트(423)로부터의 재구성된 이미지 블록들은 인터-예측을 위해 모션 보상 컴포넌트(421)에 포워딩된다. 모션 보상 컴포넌트(421)는 모션 추정 컴포넌트(221) 및/또는 모션 보상 컴포넌트(219)와 실질적으로 유사할 수 있다. 구체적으로, 모션 보상 컴포넌트(421)는 참조 블록으로부터의 모션 벡터들을 이용하여 예측 블록을 생성하고 잔차 블록을 결과에 적용하여 이미지 블록을 재구성한다. 결과적인 재구성된 블록들은 또한 인-루프 필터 컴포넌트(425)를 통해 디코딩된 픽처 버퍼 컴포넌트(423)에 포워딩될 수 있다. 디코딩된 픽처 버퍼 컴포넌트(423)는 계속해서 추가적인 재구성된 이미지 블록들을 저장하고, 이들은 파티션 정보를 통해 프레임들로 재구성될 수 있다. 이러한 프레임들은 또한 시퀀스로 배치될 수 있다. 시퀀스는 재구성된 출력 비디오 신호로서 디스플레이를 향해 출력된다.
도 5는 예시적인 HRD(500)를 예시하는 개략도이다. HRD(500)는 코덱 시스템(200) 및/또는 인코더(300)와 같은 인코더에서 이용될 수 있다. HRD(500)는 비트스트림이 디코더(400)와 같은 디코더에 포워딩되기 전에 방법(100)의 단계(109)에서 생성된 비트스트림을 체크할 수 있다. 일부 예들에서, 비트스트림은 비트스트림이 인코딩됨에 따라 HRD(500)를 통해 연속적으로 포워딩될 수 있다. 비트스트림의 일부분이 연관된 제약들에 적합하지 않은 경우, HRD(500)는 이러한 실패를 인코더에 표시하여, 인코더로 하여금 비트스트림의 대응하는 섹션을 상이한 메커니즘들로 재-인코딩하게 할 수 있다.
HRD(500)는 가상 스트림 스케줄러(hypothetical stream scheduler, 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들(553)을 디코딩하여, 디코딩된 DU들(555)을 생성한다. 디코딩된 DU(555)는 디코딩된 픽처를 포함한다. 디코딩된 DU들(555)은 DPB(547)에 포워딩된다. DPB(547)는 디코딩된 픽처 버퍼 컴포넌트(223, 323, 및/또는 423)와 실질적으로 유사할 수 있다. 인터-예측을 지원하기 위해, 디코딩된 DU들(555)로부터 획득되는 참조 픽처들(556)로서 사용하기 위해 마킹된 픽처들이 추가 디코딩을 지원하기 위해 디코딩 프로세스 컴포넌트(545)에 반환된다. DPB(547)는 디코딩된 비디오 시퀀스를 픽처들(557)의 시리즈로서 출력한다. 픽처들(557)은 인코더에 의해 비트스트림(551)으로 인코딩된 픽처들을 일반적으로 미러링하는 재구성된 픽처들이다.
픽처들(557)은 출력 크로핑 컴포넌트(549)에 포워딩된다. 출력 크로핑 컴포넌트(549)는 적합성 크로핑 윈도우(conformance cropping window)를 픽처들(557)에 적용하도록 구성된다. 이것은 출력 크로핑된 픽처들(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), 하나 이상의 트레일링 픽처(trailing picture)(604), 및 복구 포인트 픽처(606)를 포함한다. 일 실시예에서, GDR 픽처(602)는 CVS 시작(CVS starting, CVSS) 픽처라고 지칭된다. 또한, GDR 픽처(602)는 GDR 관련 픽처들의 시리즈에서 제1 GDR 픽처를 포함하는 AU인 GDR AU에 포함될 수 있다. CVS(608)는 비디오 비트스트림 내의 모든 CLVS(coded layer-wise video sequence)에 대한 코딩된 비디오 시퀀스일 수 있다. 특히, CVS 및 CLVS는 비디오 비트스트림이 단일 계층을 포함할 때 동일하다. CVS 및 CLVS는 비디오 비트스트림이 다수의 계층들을 포함할 때만 상이하다. 일 실시예에서, 트레일링 픽처들(604)은 GDR 픽처의 형태로 간주될 수 있는데, 그 이유는 이들이 GDR 기간에서 복구 포인트 픽처(606)에 선행하기 때문이다.
일 실시예에서, GDR 픽처(602), 트레일링 픽처들(604), 및 복구 포인트 픽처(606)는 CVS(608)에서 GDR 기간을 정의할 수 있다. 일 실시예에서, 디코딩 순서는 GDR 픽처(602)로 시작하고, 트레일링 픽처들(604)로 계속되고, 이후 복구 픽처(606)로 진행한다. CVS(608)는 GDR 픽처(602)로 시작하는 픽처들(또는 그의 부분들)의 시리즈이고, 다음 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)만을 포함하는 복구 포인트 픽처(606)가 코딩 프로세스에 의해 도달된다. 특히, 인터-예측된 블록들로서 코딩되는 리프레시된/클린 영역(610)의 제2 영역(610B)은 참조 픽처에서의 리프레시된 영역/클린 영역(610)만을 참조할 수 있다. 이러한 제한은 더티 데이터가 리프레시된 영역/클린 영역(610)에 도입되지 않는 것을 보장한다.
따라서, 복구 포인트 픽처(606)는 GDR 시리즈에 후속하는 픽처이며, 따라서 복구 포인트 픽처(606)는 시리즈에서 제1 GDR 픽처(602)에 선행하는 픽처들로부터의 데이터를 참조하지 않고서 완전히 디코딩될 수 있다. 예를 들어, 복구 포인트 픽처(606)는 선행 픽처들에서의 임의의 클린 영역(610)을 참조함으로써 인터-예측에 의해 코딩될 수 있다. 도 6으로부터 알 수 있는 바와 같이, 디코더는 어느 픽처가 복구 포인트 픽처(606)인지를 신속하게 결정하기를 원할 수 있는데, 이는 일단 복구 포인트 픽처(606)에 도달하면 디코더가 픽처들의 디스플레이를 시작하기를 원할 수 있기 때문이다. 예를 들어, 이전 픽처들의 출력 없음 플래그는 GDR 픽처(602)와 연관된 픽처 또는 슬라이스 헤더와 같은 헤더에 설정될 수 있다. 이 플래그가 설정되면, 복구 포인트 픽처(606)에 도달할 때까지 사용자에게 어떠한 픽처들도 출력되지 않는다. 이는 디스플레이를 위해 적절히 디코딩될 수 없는 리프레시되지 않은/더티 영역들(612)을 포함하는 GDR 픽처들(602) 및 트레일링 픽처들(604)의 디스플레이를 방지할 수 있다.
이 프로세스는 POC 값들을 이용하여 관리될 수 있다. POC는 각각의 픽처와 연관되며 CVS(608) 내의 모든 픽처들 중에서 연관된 픽처를 고유하게 식별하는 변수/값이다. 또한, 연관된 픽처가 DPB로부터 출력될 때, POC는 DPB로부터 또한 출력되는 동일한 CVS(608) 내의 다른 픽처들의 출력 순서 위치들에 상대적인 출력 순서로 연관된 픽처의 위치를 표시한다. 이와 같이, 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 픽처(602)의 POC LSB를 다른 신택스 요소들과 함께 이용하여 GDR POC(621)를 결정할 수 있다. 이 접근법은 GDR POC(621)를 표현하기 위해 이용되는 비트들의 수를 감소시킬 수 있다. 복구 POC(622)는 GDR POC(621)와 복구 POC(622) 사이의 차이로서 표현될 수 있다. 이와 같이, 디코더는 헤더로부터의 POC LSB 값에 기초하여 GDR 픽처(602)에 대한 POC를 결정할 수 있다. 디코더는 이어서 헤더로부터 복구 POC(622) 값을 획득하고 GDR 픽처(602)에 대한 GDR POC(621)에 기초하여 복구 POC(622) 값을 분석할 수 있다. 복구 POC(622) 값은, 일단 분석/결정되면, 복구 포인트 픽처(606)에 대한 POC를 표시한다. 이어서, 디코더는 복구 포인트 픽처(606)로부터 시작하여 재구성된 픽처들을 디스플레이하기 시작할 수 있다.
도 7은 GDR(600)을 지원하기 위해 인코더 제한을 사용할 때 바람직하지 않은 모션 탐색(700)을 예시하는 개략도이다. 도시된 바와 같이, 모션 탐색(700)은 현재 픽처(702) 및 참조 픽처(704)를 묘사한다. 현재 픽처(702)와 참조 픽처(704) 각각은 인트라-예측으로 코딩된 리프레시된 영역(706), 인터-예측으로 코딩된 리프레시된 영역(705), 및 리프레시되지 않은 영역(708)을 포함한다. 리프레시된 영역(705), 리프레시된 영역(706), 및 리프레시되지 않은 영역(708)은 각각 도 6의 리프레시된/클린 영역(610)의 제1 영역(610A), 리프레시된/클린 영역(610)의 제2 영역(610B), 및 리프레시되지 않은/더티 영역(612)과 유사하다.
모션 탐색 프로세스 동안, 인코더는 리프레시된 영역(705-706) 외부에 위치한 샘플들을 포함하는 참조 블록(712)을 가리키는 임의의 모션 벡터(710)를 선택하는 것이 제한되거나 방지된다. 이것은 현재 픽처(702) 내의 현재 블록(714)을 예측할 때 참조 블록(712)이 최상의 레이트-왜곡 비용 기준을 제공할 때에도 발생한다. 그러나, 이러한 제약을 이용하는 것은 리프레시된 영역(705-706)이 어떠한 더티 데이터도 참조하지 않고, 따라서 연관된 GDR 픽처가 랜덤 액세스 포인트로서 사용될 때 디코딩불가능하게 되지 않는 것을 보장한다.
도 8은 GDR(600)과 같은 GDR이 이용될 때 HRD(500)와 같은 HRD를 초기화하는 데 사용하기 위한 예시적인 비트스트림(800)을 예시하는 개략도이다. 예를 들어, 비트스트림(800)은 방법(100)에 따라 코덱 시스템(200) 및/또는 디코더(400)에 의한 디코딩을 위해 코덱 시스템(200) 및/또는 인코더(300)에 의해 생성될 수 있다.
비트스트림(800)은 SPS(810), 복수의 픽처 파라미터 세트(PPS)(811), 복수의 슬라이스 헤더(815), 및 이미지 데이터(820)를 포함한다. SPS(810)는 비트스트림(800)에 포함된 코딩된 비디오 시퀀스 내의 모든 픽처들에 공통인 시퀀스 데이터를 포함한다. 이러한 데이터는 픽처 크기, 비트 깊이, 코딩 툴 파라미터들, 비트 레이트 제한들 등을 포함할 수 있다. 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) 및 선택적으로 코딩된 픽처(823)를 코딩하는데 이용되는 코딩 메커니즘들을 설명하는 파라미터들을 포함하는 슬라이스 헤더들(815)과 같은 하나 이상의 헤더를 저장하도록 구성되는 코딩 유닛이다. 픽처(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 기간 내의 제1 픽처)를 포함하는 각각의 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를 초기화하기 위해 이용될 수 있고, 따라서 비트스트림이 GDR 픽처들을 포함할 때 비트스트림 적합성 테스트들의 적용을 지원한다. 또한, BP SEI 메시지(817) 내의 HRD 파라미터들(836)은 비트스트림(800)이 적합성 테스트들을 받았다는 것을 디코더에 표시할 수 있다. 따라서, 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(high efficiency video coding)를 구현하는 비디오 코딩 시스템들은 복수의 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 픽처의 존재는 비트-레이트의 급증을 야기한다. 압축 효율에 대한 이러한 불이익은 2가지 원인을 갖는다. 첫째, IRAP 픽처는 인트라-예측된 픽처이다. 따라서, 다른 인터-예측된 픽처들보다 IRAP를 표현하기 위해 더 많은 비트가 이용될 수 있다. 둘째, IRAP 픽처의 존재는 시간적 예측을 중단(break)시킬 수 있다. 이것은 IRAP 픽처가 디코딩 프로세스를 리프레시하고 DPB로부터 이전 참조 픽처들을 제거할 수 있기 때문이다. 이와 같이, 디코딩 순서에서 IRAP 픽처에 후속하는 픽처들의 코딩 효율은 이러한 픽처들이 인터-예측 코딩을 수행할 때 선택할 참조 픽처들이 더 적기 때문에 감소할 수 있다.
IRAP 픽처들로 간주되는 픽처 타입들 중에서, IDR 픽처들은 다른 픽처 타입들과 비교할 때 상이한 시그널링 및 도출을 이용할 수 있다. 차이들 중 일부는 다음과 같다. IDR 픽처의 POC 값의 시그널링 및 도출을 위해, POC의 최상위 비트(MSB) 부분은 이전의 키 픽처로부터 도출되지 않을 수 있지만, 대신에 0과 동일하게 설정될 수 있다. 참조 픽처 관리에 사용되는 시그널링 정보의 경우, IDR 픽처의 슬라이스 헤더는 참조 픽처 관리를 보조하는 정보를 포함하지 않을 수 있다. CRA 및 트레일링 픽처들과 같은 다른 픽처 타입들은 참조 픽처 마킹 프로세스를 지원하기 위해 참조 픽처 세트(RPS) 또는 참조 픽처 리스트 정보와 같은 정보를 포함할 수 있다. 참조 픽처 마킹 프로세스는 DPB 내의 참조 픽처들의 상태를 참조를 위해 사용되거나 참조를 위해 사용되지 않는 것으로서 결정하는 프로세스이다. 그러나, IDR 픽처들에 대해 이러한 정보는 시그널링되지 않을 수 있는데, 이는 IDR의 존재가 디코딩 프로세스가 DPB 내의 모든 참조 픽처들을 참조를 위해 사용되지 않는 것으로서 마킹해야 한다는 것을 표시하기 때문이다.
리딩 픽처(leading picture)들은, 존재할 때, IRAP 픽처와 연관된다. 리딩 픽처들은 디코딩 순서에서 연관된 IRAP 픽처에 후속하지만 제시/출력 순서에서 IRAP 픽처에 선행하는 픽처들이다. 코딩 구성 및 픽처 참조 구조에 따라, 리딩 픽처들은 2가지 타입으로 더 식별된다. 제1 타입은, 디코딩 프로세스가 연관된 IRAP 픽처에서 시작될 때 정확하게 디코딩되지 않을 수 있는 리딩 픽처들이다. 이러한 픽처들은 랜덤 액세스 스킵 리딩(random access skipped leading, RASL) 픽처들로서 알려져 있다. RASL 픽처들은 이 경우에 디코딩가능하지 않을 수 있는데, 이는 RASL 픽처들이 디코딩 순서에서 IRAP 픽처에 선행하는 픽처들을 참조하여 코딩되기 때문이다. 제2 타입은, 디코딩 프로세스가 연관된 IRAP 픽처에서 시작될 때에도 정확하게 디코딩될 수 있는 리딩 픽처이다. 이러한 픽처들은 랜덤 액세스 디코딩가능 리딩(random access decodable leading, RADL) 픽처들로서 알려져 있다. 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(gradual decoding refresh) 및/또는 GRA(gradual random access)라고도 지칭될 수 있다. 도 6은 GDR을 수행하기 위한 예시적인 메커니즘을 예시한다. GDR 기법은 GDR 픽처로부터 시작하는 다수의 픽처들에 대해 동작한다. GDR 픽처는 영역 내의 모든 코딩된 블록들이 인트라-예측된 블록들로서 코딩되는 하나의 영역을 포함한다. 이 영역은 리프레시된 영역/클린 영역으로 지칭될 수 있다. GDR 픽처의 나머지에서의 블록들은 인터-예측된 블록들로서 코딩될 수 있다. 이 영역은 리프레시되지 않은/더티 영역으로 지칭될 수 있다. GDR 픽처에 후속하는 후속 픽처들에서, 인트라-예측된 블록들로 코딩된 영역은 일관된 방향으로(예를 들어, 좌측으로부터 우측으로) 이동한다. 이 메커니즘은 인터-예측된 블록들을 포함하는 더티 영역을 축소시킨다. 각각의 후속 픽처에 대해, 이전 픽처들로부터의 클린 영역들과 동위치된(collocated) 영역은 인터-예측에 따라 코딩될 수 있고, 이는 클린/리프레시된 영역의 크기를 증가시킨다. 현재 픽처의 클린 영역은 참조 픽처에서의 클린 영역으로부터의 블록들을 참조하기 위해 인터-예측만을 사용할 수 있다.
HEVC를 이용하는 비디오 시스템들은 복구 포인트 SEI 메시지 및 영역 리프레시 정보 SEI 메시지를 사용하여 비-규범적으로(non-normatively) GDR을 지원할 수 있다. 이러한 SEI 메시지들은 GDR이 어떻게 수행되는지를 정의하지 않을 수 있지만, (예를 들어, 복구 포인트 SEI 메시지에서) GDR 기간 내의 첫 번째 픽처와 마지막 픽처 그리고 (예를 들어, 영역 리프레시 정보 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 유닛을 포함하는 액세스 유닛은 복구 포인트 시작(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 구현들은 HRD 파라미터들을 지정하는 것 및 GRA 픽처들을 포함하는 비트스트림들에 대한 HRD 적합성 연산들을 정의하는 것을 지원하지 않을 수 있다. 결과적으로, 이러한 비트스트림들에 대한 디코딩 능력 요건들은, 예를 들어, GRA 픽처로 시작하는 비트스트림들에 대해 불명확할 수 있다.
일반적으로, 본 개시내용은 GDR 픽처들을 포함하는 비디오 비트스트림들에 대한 비트스트림 적합성 메커니즘들의 사양을 지원하기 위한 방법들을 설명한다. 예를 들어, 이러한 지원은 이러한 비트스트림들에 대한 HRD를 관리하는 메커니즘들의 정의를 통해 달성될 수 있다. 본 명세서에서 이용되는 기법들의 설명은 VVC 구현들에 기초하지만, 다른 비디오 코덱 사양들에도 적용될 수 있다.
전술한 문제들 중 하나 이상은 다음과 같이 해결될 수 있다. 예를 들어, 본 개시내용은 HRD 파라미터들을 지정하고, GRA 픽처들을 포함하는 비트스트림들에 대해 수행될 수 있는 HRD 적합성 연산들을 정의하는 것을 허용하는 접근법을 포함한다. 예를 들어, CVS에 대해 HRD 파라미터들이 존재할 때를 표시하기 위해 NalHrdBpPresentFlag가 1로 설정될 수 있거나 VclHrdBpPresentFlag가 1로 설정될 수 있다. 이러한 경우에, 버퍼링 기간 SEI 메시지는 각각의 GRA 액세스 유닛과 연관될 수 있다. 또한, 버퍼링 기간 SEI 메시지는 HRD 파라미터들을 포함할 수 있다. 따라서, HRD 파라미터들은 GRA 액세스 유닛들에 이용가능하게 되고, HRD 연산은 임의의 GRA 액세스 유닛에서 초기화될 수 있다. 예를 들어, 복수의 GRA 액세스 유닛들을 포함하는 비디오 비트스트림은 각각 GRA 픽처를 포함할 수 있다. 비트스트림은 디코더에 의해 디코딩될 수 있다. GRA 액세스 유닛들 각각은 버퍼링 기간 SEI 메시지와 연관될 수 있다. 디코더는 GRA 액세스 유닛들 중 하나로부터 시작하는 비디오 비트스트림을 GRA 액세스 유닛과 연관된 버퍼링 기간 SEI 메시지에 적어도 기초하여 디코딩할 수 있다. 다른 예에서, 인코더가 비디오 비트스트림을 인코딩할 수 있다. 예를 들어, 인코더는 각각의 GRA 픽처를 비트스트림 내의 하나의 액세스 유닛으로 인코딩함으로써 복수의 GRA 픽처들을 인코딩할 수 있다. GRA 픽처들 각각에 대해, 인코더는 연관된 버퍼링 기간 SEI 메시지를 인코딩할 수 있다. 하나 이상의 예시적인 구현이 이하에 포함된다.
예시적인 일반 슬라이스 헤더 신택스가 다음과 같다.
Figure pct00001
시퀀스 RBSP 시맨틱스의 예시적인 끝은 다음과 같다. 존재할 때, 시퀀스 RBSP의 끝은 현재 액세스 유닛이 디코딩 순서에서 코딩된 비디오 시퀀스 내의 마지막 액세스 유닛이고 (존재하는 경우) 디코딩 순서에서 비트스트림 내의 다음 후속 액세스 유닛이 IRAP 또는 GRA 액세스 유닛인 것을 지정한다. 시퀀스 RBSP의 끝에 대한 RBSP와 SODB(string of data bits)의 신택스 내용은 비어 있다.
예시적인 일반 슬라이스 헤더 시맨틱스는 다음과 같다. 존재할 때, 슬라이스 헤더 신택스 요소들 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는 비트스트림 내의 첫 번째 픽처가 아닌 코딩된 비디오 시퀀스 시작(CVSS) 픽처의 디코딩 후에 디코딩된 픽처 버퍼 내의 이전에 디코딩된 픽처들의 출력에 영향을 줄 수 있다.
현재 픽처의 디코딩 전에 DPB로부터 픽처들을 제거하기 위한 예시적인 메커니즘은 다음과 같다. 현재 픽처가 픽처 0이 아닌 CVSS 픽처일 때, 다음의 순서화된 단계들이 적용될 수 있다. 변수 NoOutputOfPriorPicsFlag는 다음과 같이 테스트 중인 디코더에 대해 도출될 수 있다. 활성 SPS로부터 도출된 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_buffering_minus1[ HighestTid ]의 값이 선행 픽처에 대해 활성인 SPS로부터 각각 도출된 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_buffering_minus1[ 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로부터의 픽처들의 예시적인 출력 및 제거는 다음과 같다. 현재 픽처가 픽처 0이 아닌 CVSS 픽처이면, 다음의 순서화된 단계들이 적용될 수 있다. 변수 NoOutputOfPriorPicsFlag는 다음과 같이 테스트 중인 디코더에 대해 도출될 수 있다. 활성 SPS로부터 도출된 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_buffering_minus1[ HighestTid ]의 값이 선행 픽처에 대해 활성인 SPS로부터 각각 도출된 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_buffering_minus1[ 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) 프로세스를 반복적으로 호출함으로써 비워질 수 있고 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은 사용되지 않을 수 있다. 위에서 지정된 제약은, 일부 상황들 하에서, 스플라이싱 포인트(splicing point)에서 IRAP 또는 GRA 픽처에 대한 버퍼링 기간 SEI 메시지에서의 concatenation_flag의 값을 0에서 1로 변경함으로써 (참조 구조들을 사용하는) 스플라이싱 비트스트림들을 가능하게 할 수 있다. concatenation_flag가 0일 때, 위에서 지정된 제약은 디코더가 픽처 prevNonDiscardablePic의 손실을 검출하는 방식으로서 제약이 충족되는지를 체크할 수 있게 한다.
예시적인 픽처 타이밍 SEI 메시지 시맨틱스는 다음과 같다. 디코딩 순서에서, 1과 동일한 no_output_of_prior_pics_flag를 갖거나 1과 동일한 것으로 추론되는 CVSS 픽처에 선행하기 때문에 범핑 프로세스에 의해 출력되지 않는 픽처들에 대해, dpb_output_delay로부터 도출된 출력 시간들은 동일한 CVS 내의 모든 픽처들에 비해 PicOrderCntVal의 값이 증가함에 따라 증가할 수 있다.
도 9는 예시적인 비디오 코딩 디바이스(900)의 개략도이다. 비디오 코딩 디바이스(900)는 본 명세서에서 설명된 바와 같은 개시된 예들/실시예들을 구현하기에 적합하다. 비디오 코딩 디바이스(900)는 다운스트림 포트들(920), 업스트림 포트들(950), 및/또는 네트워크를 통해 업스트림 및/또는 다운스트림으로 데이터를 통신하기 위한 송신기들 및/또는 수신기들을 포함하는 송수신기 유닛들(Tx/Rx)(910)을 포함한다. 비디오 코딩 디바이스(900)는 데이터를 처리하기 위한 로직 유닛 및/또는 중앙 처리 유닛(CPU)을 포함하는 프로세서(930) 및 데이터를 저장하기 위한 메모리(932)를 또한 포함한다. 비디오 코딩 디바이스(900)는 전기, 광학, 또는 무선 통신 네트워크들을 통한 데이터의 통신을 위해 업스트림 포트들(950) 및/또는 다운스트림 포트들(920)에 결합되는 전기, OE(optical-to-electrical) 컴포넌트들, EO(electrical-to-optical) 컴포넌트들, 및/또는 무선 통신 컴포넌트들을 또한 포함할 수 있다. 비디오 코딩 디바이스(900)는 사용자에게 그리고 사용자로부터 데이터를 통신하기 위한 입력 및/또는 출력(I/O) 디바이스들(960)을 또한 포함할 수 있다. I/O 디바이스들(960)은 비디오 데이터를 디스플레이하기 위한 디스플레이, 오디오 데이터를 출력하기 위한 스피커들 등과 같은 출력 디바이스들을 포함할 수 있다. I/O 디바이스들(960)은 또한 키보드, 마우스, 트랙볼 등과 같은 입력 디바이스들, 및/또는 이러한 출력 디바이스들과 상호작용하기 위한 대응하는 인터페이스들을 포함할 수 있다.
프로세서(930)는 하드웨어 및 소프트웨어에 의해 구현된다. 프로세서(930)는 하나 이상의 CPU 칩, 코어(예를 들어, 멀티-코어 프로세서로서), FPGA(field-programmable gate array), ASIC(application specific integrated circuit), 및 DSP(digital signal processor)로서 구현될 수 있다. 프로세서(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(read only memory), RAM(random access memory), 플래시 메모리, TCAM(ternary content-addressable memory), SRAM(static random-access memory) 등과 같은 하나 이상의 메모리 타입을 포함한다. 메모리(932)는, 이러한 프로그램들이 실행을 위해 선택될 때 프로그램들을 저장하기 위해, 그리고 프로그램 실행 동안 판독되는 명령어들 및 데이터를 저장하기 위해, 오버-플로우 데이터 저장 디바이스로서 사용될 수 있다.
도 10은 HRD(500)와 같은 HRD를 초기화하면서 GDR(600)과 같은 GDR을 이용하는 비디오 시퀀스를 비트스트림(800)과 같은 비트스트림으로 인코딩하는 예시적인 방법(1000)의 흐름도이다. 방법(1000)은 방법(100)을 수행할 때 코덱 시스템(200), 인코더(300), 및/또는 비디오 코딩 디바이스(900)와 같은 인코더에 의해 이용될 수 있다.
방법(1000)은 인코더가 복수의 픽처들을 포함하는 비디오 시퀀스를 수신하고, 예를 들어, 사용자 입력에 기초하여 그 비디오 시퀀스를 비트스트림으로 인코딩하기로 결정할 때 시작될 수 있다. 단계(1001)에서, 인코더는 픽처를 포함하는 GDR AU 및 GDR AU와 연관된 BP SEI 메시지를 비트스트림으로 인코딩할 수 있다. 예를 들어, GDR AU 내의 픽처는 GDR 픽처일 수 있다. 또한, GDR 픽처는 인터-예측에 따라 코딩된 영역 및 인트라-예측에 따라 코딩된 영역을 포함할 수 있다. 특정 예로서, 인터-예측에 따라 코딩된 영역은 더티 영역일 수 있고, 인트라-예측에 따라 코딩된 영역은 클린 영역일 수 있다. BP SEI 메시지는 HRD 파라미터들을 포함할 수 있다. HRD 파라미터들, 및 따라서 BP SEI 메시지는, 디코딩 순서에서 비트스트림 내의 GDR AU의 위치에서 HRD의 초기화를 위해 이용될 수 있는, 초기 CPB 제거 지연을 포함할 수 있다. HRD 파라미터들은 또한 디코더가 비트스트림을 디코딩할 수 있다는 것을 표시하는 효과를 가질 수 있다.
단계(1003)에서, 인코더는 GDR 픽처와 연관된 헤더를 비트스트림으로 인코딩할 수 있다. 헤더는 슬라이스 헤더, 픽처 헤더, 또는 이들의 조합들을 포함할 수 있다. 인코더는 픽처가 GDR 픽처일 때 GDR AU 내의 픽처에 대한 헤더에 이전 픽처들의 출력 없음 플래그를 설정할 수 있다. 이전 픽처들의 출력 없음 플래그는 복구 포인트 픽처 이전에 있는 GDR 기간 내의 픽처들이 디코더에서 출력되는 것을 방지할 수 있다. 인코더는 또한 POC LSB 값 및 복구 POC 값을 헤더에 설정할 수 있다. POC LSB 값이 디코더에서 복구 POC 값 이전에 파싱될 수 있도록, POC LSB 값은 픽처와 연관된 헤더 내의 복구 POC 값 이전에 위치할 수 있다.
단계(1005)에서, 인코더는 BP SEI 메시지에 기초하여 HRD를 초기화할 수 있다. 예를 들어, HRD는 HRD에서의 동작들을 정의하기 위해 HRD 파라미터들을 이용할 수 있다. 또한, HRD는 GDR 픽처와 BP SEI 메시지 사이의 연관 때문에 GDR 픽처에 도달하면 초기화될 수 있다. 단계(1007)에서, 인코더는 HRD를 사용하여, 예를 들어 HRD 파라미터들에 기초하여, 비트스트림에 대해 하나 이상의 HRD 적합성 테스트를 수행할 수 있다. 인코더는 이후 단계(1009)에서 디코더를 향한 통신을 위해 비트스트림을 저장할 수 있다.
도 11은 비트스트림이 적합한 비트스트림이라고 HRD(500)와 같은 HRD가 표시할 때 비트스트림(800)과 같은 비트스트림으로부터 GDR(600)과 같은 GDR을 이용하는 비디오 시퀀스를 디코딩하는 예시적인 방법(1100)의 흐름도이다. 방법(1100)은 방법(100)을 수행할 때 코덱 시스템(200), 디코더(400), 및/또는 비디오 코딩 디바이스(900)와 같은 디코더에 의해 이용될 수 있다.
방법(1100)은 디코더가 예를 들어, 방법(1000)의 결과로서 비디오 시퀀스를 표현하는 코딩된 데이터의 비트스트림을 수신하기 시작할 때 시작될 수 있다. 단계(1101)에서, 디코더는 비트스트림을 수신할 수 있다. 비트스트림은 GDR AU, GDR AU와 연관된 헤더, 및 GDR AU와 연관된 BP SEI 메시지를 포함할 수 있다. 헤더는 슬라이스 헤더 및/또는 픽처 헤더일 수 있다. 예를 들어, GDR AU 내의 픽처는 GDR 픽처일 수 있다. 또한, GDR 픽처는 인터-예측에 따라 코딩된 영역 및 인트라-예측에 따라 코딩된 영역을 포함할 수 있다. 특정 예로서, 인터-예측에 따라 코딩된 영역은 더티 영역일 수 있고, 인트라-예측에 따라 코딩된 영역은 클린 영역일 수 있다. BP SEI 메시지는 HRD 파라미터들을 포함할 수 있다. HRD 파라미터들, 및 따라서 BP SEI 메시지는, 디코딩 순서에서 비트스트림 내의 GDR AU의 위치에서 인코더에서의 HRD의 초기화를 위해 이용될 수 있는, 초기 CPB 제거 지연을 포함할 수 있다. HRD 파라미터들은 디코더가 비트스트림을 디코딩할 수 있다는 것을 디코더에 표시할 수 있다. 헤더는 이전 픽처들의 출력 없음 플래그를 포함할 수 있다. 이전 픽처들의 출력 없음 플래그는 GDR AU 내의 GDR 픽처에 대한 헤더에 설정될 수 있다. 이전 픽처들의 출력 없음 플래그가 설정되어 있을 때, 디코더는 더티 데이터에 부분적으로 기초하여 재구성되는 불완전한 픽처들을 디스플레이하는 것을 회피하기 위해 디스플레이를 위한 복구 포인트 픽처 이전에 있는 GDR 기간 내의 픽처들을 출력하는 것을 회피한다. 헤더는 또한 GDR 픽처에 대한 POC LSB 값 및 복구 POC 값을 포함할 수 있다. POC LSB 값이 복구 POC 값 이전에 파싱될 수 있도록, POC LSB 값은 픽처와 연관된 헤더 내의 복구 POC 값 이전에 위치할 수 있다. 이와 같이, 디코더는 GDR 픽처에 대한 POC LSB 값과 연관된 복구 포인트 픽처에 대한 복구 POC 값 양자 모두를 파싱하고 분석할 수 있다.
단계(1103)에서, 디코더는 GDR AU 내의 픽처, 복구 포인트 픽처, SEI 메시지, 및/또는 대응하는 비디오 시퀀스를 디코딩할 수 있다. 디코더는 또한 단계(1105)에서 디코딩된 비디오 시퀀스의 일부로서 디스플레이를 위해 픽처(들)를 포워딩할 수 있다.
도 12는 HRD(500)와 같은 HRD를 이용하면서 GDR(600)과 같은 GDR을 이용하는 비디오 시퀀스를 비트스트림(800)과 같은 비트스트림으로 코딩하기 위한 예시적인 시스템(1200)의 개략도이다. 시스템(1200)은 코덱 시스템(200), 인코더(300), 디코더(400), 및/또는 비디오 코딩 디바이스(900)와 같은 인코더 및 디코더에 의해 구현될 수 있다. 또한, 시스템(1200)은 방법(100, 1000, 및/또는 1100)을 구현할 때 이용될 수 있다.
시스템(1200)은 비디오 인코더(1202)를 포함한다. 비디오 인코더(1202)는 GDR AU 및 GDR AU와 연관된 BP SEI 메시지를 비트스트림으로 인코딩하기 위한 인코딩 모듈(1203)을 포함한다. 비디오 인코더(1202)는 BP SEI 메시지에 기초하여 가상 참조 디코더(HRD)를 초기화하기 위한 초기화 모듈(1204)을 추가로 포함한다. 비디오 인코더(1202)는 HRD를 사용하여 비트스트림에 대해 HRD 적합성 테스트를 수행하기 위한 HRD 모듈(1205)을 추가로 포함한다. 비디오 인코더(1202)는 디코더를 향한 통신을 위해 비트스트림을 저장하기 위한 저장 모듈(1206)을 추가로 포함한다. 비디오 인코더(1202)는 비트스트림을 비디오 디코더(1210)를 향해 송신하기 위한 송신 모듈(1207)을 추가로 포함한다. 비디오 인코더(1202)는 방법(1000)의 단계들 중 임의의 것을 수행하도록 추가로 구성될 수 있다.
시스템(1200)은 또한 비디오 디코더(1210)를 포함한다. 비디오 디코더(1210)는 GDR AU 및 GDR AU와 연관된 BP SEI 메시지를 포함하는 비트스트림을 수신하기 위한 수신 모듈(1211)을 포함한다. 비디오 디코더(1210)는 GDR AU 내의 픽처 및 SEI 메시지를 디코딩하기 위한 디코딩 모듈(1213)을 추가로 포함한다. 비디오 디코더(1210)는 디코딩된 비디오 시퀀스의 일부로서 디스플레이를 위해 픽처를 포워딩하기 위한 포워딩 모듈(1215)을 추가로 포함한다. 비디오 디코더(1210)는 방법(1100)의 단계들 중 임의의 것을 수행하도록 추가로 구성될 수 있다.
제1 컴포넌트와 제2 컴포넌트 사이에 라인, 트레이스, 또는 다른 매체를 제외하고는 개재하는 컴포넌트들이 없을 때 제1 컴포넌트는 제2 컴포넌트에 직접적으로 결합된다. 제1 컴포넌트와 제2 컴포넌트 사이에 라인, 트레이스, 또는 다른 매체 이외의 개재하는 컴포넌트들이 있을 때 제1 컴포넌트는 제2 컴포넌트에 간접적으로 결합된다. "결합된(coupled)"이라는 용어 및 그 변형들은 직접적으로 결합되는 것과 간접적으로 결합되는 것 양자 모두를 포함한다. "약(about)"이라는 용어의 사용은 달리 언급되지 않는 한 후속 수의 ±10%를 포함하는 범위를 의미한다.
또한, 본 명세서에 설명된 예시적인 방법들의 단계들은 반드시 설명된 순서로 수행될 필요는 없고, 이러한 방법들의 단계들의 순서는 단지 예시적인 것으로 이해되어야 한다는 것을 이해해야 한다. 마찬가지로, 추가적인 단계들이 이러한 방법들에 포함될 수 있고, 특정 단계들은 본 개시내용의 다양한 실시예들에 따른 방법들에서 생략되거나 조합될 수 있다.
여러 실시예들이 본 개시내용에서 제공되었지만, 개시된 시스템들 및 방법들은 본 개시내용의 사상 또는 범위를 벗어나지 않고서 많은 다른 특정 형태들로 구현될 수 있다는 것을 이해할 수 있다. 본 예시들은 한정이 아닌 예시로서 고려되어야 하며, 여기에 주어진 상세들로 제한할 의도가 아니다. 예를 들어, 다양한 요소들 또는 컴포넌트들이 다른 시스템에 조합되거나 통합될 수 있거나, 특정 특징들이 생략되거나, 구현되지 않을 수 있다.
추가로, 다양한 실시예들에서 별개로 또는 분리되어 설명되고 예시된 기법들, 시스템들, 서브시스템들, 및 방법들은 본 개시내용의 범위로부터 벗어나지 않고서 다른 시스템들, 컴포넌트들, 기법들, 또는 방법들과 조합되거나 통합될 수 있다. 변경들, 치환들, 및 개조들의 다른 예들은 본 기술분야의 통상의 기술자에 의해 확인가능하고, 본 명세서에 개시된 사상 및 범위로부터 벗어나지 않고서 이루어질 수 있다.

Claims (20)

  1. 디코더에서 구현되는 방법으로서,
    상기 디코더의 수신기에 의해, 점진적 디코딩 리프레시(gradual decoding refresh, GDR) 액세스 유닛(access unit, AU) 및 상기 GDR AU와 연관된 버퍼링 기간(buffering period, BP) 보충 향상 정보(supplemental enhancement information, SEI) 메시지를 포함하는 비트스트림을 수신하는 단계; 및
    상기 디코더의 프로세서에 의해, 상기 GDR AU 내의 픽처 및 상기 BP SEI 메시지를 디코딩하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서, 상기 BP SEI 메시지는 디코딩 순서에서 상기 GDR AU의 위치에서 가상 참조 디코더(hypothetical reference decoder, HRD)의 초기화를 위한 초기 코딩된 픽처 버퍼(coded picture buffer, CPB) 제거 지연을 제공하는, 방법.
  3. 제1항 또는 제2항에 있어서, 상기 픽처가 GDR 픽처일 때 상기 GDR AU 내의 픽처에 대한 헤더에 이전 픽처들의 출력 없음 플래그(no output of prior pictures flag)가 설정되는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 비트스트림은 상기 픽처와 연관된 헤더를 포함하고, 상기 헤더는 픽처 순서 카운트 최하위 비트(picture order count least significant bit) 값 및 복구 픽처 순서 카운트(recovery picture order count) 값을 포함하는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 픽처 순서 카운트 최하위 비트 값은 상기 픽처와 연관된 상기 헤더에서 상기 복구 픽처 순서 카운트 값 이전에 위치하는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 BP SEI 메시지는 상기 디코더가 상기 비트스트림을 디코딩할 수 있음을 표시하는 HRD 파라미터들을 포함하는, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 픽처가 인터-예측에 따라 코딩된 영역 및 인트라-예측에 따라 코딩된 영역을 포함할 때 상기 픽처는 GDR 픽처인, 방법.
  8. 인코더에서 구현되는 방법으로서,
    상기 인코더의 프로세서에 의해, 점진적 디코딩 리프레시(GDR) 액세스 유닛(AU) 및 상기 GDR AU와 연관된 버퍼링 기간(BP) 보충 향상 정보(SEI) 메시지를 비트스트림으로 인코딩하는 단계;
    상기 프로세서에 의해, 상기 BP SEI 메시지에 기초하여 가상 참조 디코더(HRD)를 초기화하는 단계; 및
    상기 프로세서에 의해, 상기 HRD를 사용하여 상기 비트스트림에 대해 적합성 테스트(conformance test)를 수행하는 단계
    를 포함하는, 방법.
  9. 제8항에 있어서, 상기 BP SEI 메시지는 디코딩 순서에서 상기 GDR AU의 위치에서 상기 HRD의 초기화를 위한 초기 코딩된 픽처 버퍼(CPB) 제거 지연을 포함하는, 방법.
  10. 제8항 내지 제10항 중 어느 한 항에 있어서, 픽처가 GDR 픽처일 때 상기 GDR AU 내의 픽처에 대한 헤더에 이전 픽처들의 출력 없음 플래그를 설정하는 단계를 추가로 포함하는, 방법.
  11. 제8항 내지 제10항 중 어느 한 항에 있어서, 상기 픽처와 연관된 헤더를 상기 비트스트림에 인코딩하는 단계를 추가로 포함하고, 상기 헤더는 픽처 순서 카운트 최하위 비트 값 및 복구 픽처 순서 카운트 값을 포함하는, 방법.
  12. 제8항 내지 제11항 중 어느 한 항에 있어서, 상기 픽처 순서 카운트 최하위 비트 값은 상기 픽처와 연관된 상기 헤더에서 상기 복구 픽처 순서 카운트 값 이전에 위치하는, 방법.
  13. 제8항 내지 제12항 중 어느 한 항에 있어서, 상기 BP SEI 메시지는 상기 디코더가 상기 비트스트림을 디코딩할 수 있음을 표시하는 HRD 파라미터들을 포함하는, 방법.
  14. 제8항 내지 제13항 중 어느 한 항에 있어서, 상기 픽처가 인터-예측에 따라 코딩된 영역 및 인트라-예측에 따라 코딩된 영역을 포함할 때 상기 픽처는 GDR 픽처인, 방법.
  15. 비디오 코딩 디바이스로서,
    프로세서, 상기 프로세서에 결합된 수신기, 상기 프로세서에 결합된 메모리, 및 상기 프로세서에 결합된 송신기를 포함하고, 상기 프로세서, 수신기, 메모리, 및 송신기는 제1항 내지 제14항 중 어느 한 항의 방법을 수행하도록 구성되는, 비디오 코딩 디바이스.
  16. 비디오 코딩 디바이스에 의한 사용을 위한 컴퓨터 프로그램 제품을 포함하는 비일시적 컴퓨터 판독가능 매체로서, 상기 컴퓨터 프로그램 제품은, 프로세서에 의해 실행될 때 상기 비디오 코딩 디바이스로 하여금 제1항 내지 제14항 중 어느 한 항의 방법을 수행하게 하도록, 상기 비일시적 컴퓨터 판독가능 매체 상에 저장된 컴퓨터 실행가능 명령어들을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  17. 디코더로서,
    점진적 디코딩 리프레시(GDR) 액세스 유닛(AU) 및 상기 GDR AU와 연관된 버퍼링 기간(BP) 보충 향상 정보(SEI) 메시지를 포함하는 비트스트림을 수신하기 위한 수신 수단;
    상기 GDR AU 내의 픽처 및 상기 BP SEI 메시지를 디코딩하기 위한 디코딩 수단; 및
    디코딩된 비디오 시퀀스의 일부로서 디스플레이를 위해 상기 픽처를 포워딩하기 위한 포워딩 수단
    을 포함하는, 디코더.
  18. 제17항에 있어서, 상기 디코더는 제1항 내지 제7항 중 어느 한 항의 방법을 수행하도록 추가로 구성되는, 디코더.
  19. 인코더로서,
    점진적 디코딩 리프레시(GDR) 액세스 유닛(AU) 및 상기 GDR AU와 연관된 버퍼링 기간(BP) 보충 향상 정보(SEI) 메시지를 비트스트림으로 인코딩하기 위한 인코딩 수단;
    상기 BP SEI 메시지에 기초하여 가상 참조 디코더(HRD)를 초기화하기 위한 초기화 수단;
    상기 HRD를 사용하여 상기 비트스트림에 대해 적합성 테스트를 수행하기 위한 HRD 수단; 및
    디코더를 향한 통신을 위해 상기 비트스트림을 저장하기 위한 저장 수단
    을 포함하는, 인코더.
  20. 제19항에 있어서, 상기 인코더는 제8항 내지 제14항 중 어느 한 항의 방법을 수행하도록 추가로 구성되는, 인코더.
KR1020217039533A 2019-05-06 2020-04-30 점진적 디코딩 리프레시를 위한 가상 참조 디코더 KR20220003084A (ko)

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/030639 WO2020226991A1 (en) 2019-05-06 2020-04-30 Hypothetical reference decoder for gradual decoding refresh

Publications (1)

Publication Number Publication Date
KR20220003084A true KR20220003084A (ko) 2022-01-07

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 After (1)

Application Number Title Priority Date Filing Date
KR1020217039848A KR20220003618A (ko) 2019-05-06 2020-04-30 비디오 코딩에서 복구 포인트 시그널링

Country Status (7)

Country Link
US (2) US20220060694A1 (ko)
EP (2) EP3959890A4 (ko)
JP (3) JP7462679B2 (ko)
KR (2) KR20220003084A (ko)
CN (2) CN113796081A (ko)
MX (2) MX2021013536A (ko)
WO (2) WO2020226992A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020032049A1 (ja) * 2018-08-06 2020-02-13 シャープ株式会社 動画像復号装置、および動画像符号化装置
KR20220114557A (ko) 2019-12-26 2022-08-17 바이트댄스 아이엔씨 코딩된 픽처 내에서 디코딩 순서를 구현하기 위한 기술들
EP4062640A4 (en) 2019-12-26 2023-01-11 ByteDance Inc. PROFILE, ROW AND LAYER INDICATION IN VIDEO CODING
WO2021134020A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Constraints on signaling of hypothetical reference decoder parameters in video bitstreams
CN114902566A (zh) 2019-12-27 2022-08-12 字节跳动有限公司 参数集中的子图片信令
CN117395441A (zh) 2020-01-09 2024-01-12 字节跳动有限公司 视频流中的填充数据单元的处理
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)

* Cited by examiner, † Cited by third party
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
US10034018B2 (en) * 2011-09-23 2018-07-24 Velos Media, Llc Decoded picture buffer management
US20140079138A1 (en) * 2012-09-14 2014-03-20 Sony Corporation Simplifiication of pic_order_cnt_lsb calculation in hm8
US9398293B2 (en) * 2013-01-07 2016-07-19 Qualcomm Incorporated Gradual decoding refresh with temporal scalability support in video coding
EP2946558B1 (en) * 2013-01-15 2020-04-29 Huawei Technologies Co., Ltd. Method for decoding an hevc video bitstream
US9854270B2 (en) * 2013-12-19 2017-12-26 Qualcomm Incorporated Device and method for scalable coding of video information

Also Published As

Publication number Publication date
EP3959890A1 (en) 2022-03-02
JP7443398B2 (ja) 2024-03-05
EP3957069A1 (en) 2022-02-23
WO2020226991A1 (en) 2020-11-12
KR20220003618A (ko) 2022-01-10
CN113796085A (zh) 2021-12-14
US12022064B2 (en) 2024-06-25
CN113796081A (zh) 2021-12-14
JP2024028361A (ja) 2024-03-04
JP2022531481A (ja) 2022-07-06
EP3957069A4 (en) 2022-06-22
JP2022531482A (ja) 2022-07-06
US20220060693A1 (en) 2022-02-24
MX2021013535A (es) 2022-01-31
EP3959890A4 (en) 2022-07-06
JP7462679B2 (ja) 2024-04-05
US20220060694A1 (en) 2022-02-24
WO2020226992A1 (en) 2020-11-12
MX2021013536A (es) 2022-01-31

Similar Documents

Publication Publication Date Title
CN115002467B (zh) 用于分辨率改变的解码图像缓冲区操作的方法和设备
US12022064B2 (en) Recovery point signaling in video coding
US20220132148A1 (en) Mixed NAL Unit Picture Constraints In Video Coding
JP2022550713A (ja) レイヤベースの適合性試験のためのhrdパラメータ
US20220217376A1 (en) Picture Timing And Decoding Unit Information For Temporal Scalability
EP3939290B1 (en) Interlaced video coding with leading pictures
US11943431B2 (en) External decoding refresh (EDR) in video coding
JP2022540429A (ja) 映像符号化における参照ピクチャリサンプリング用の複数のピクチャサイズおよびコンフォーマンスウインドウの処理
US20220217375A1 (en) Scalable Nesting SEI Messages For OLSs
KR20220058960A (ko) 다중 레이어 비디오 비트스트림의 액세스 유닛 내 혼합 irap 및 비-irap 픽처 지원
KR20220063278A (ko) 모든 계층에 대한 스케일러블 네스팅 sei 메시지

Legal Events

Date Code Title Description
A201 Request for examination