KR20160149217A - 하나 이상의 계층들을 포함하는 파티션에 기초하여 디코더의 프로세싱 코어를 결정하는 것에 의해 멀티-계층 비디오 데이터를 디코딩하기 위한 방법 및 디바이스 - Google Patents

하나 이상의 계층들을 포함하는 파티션에 기초하여 디코더의 프로세싱 코어를 결정하는 것에 의해 멀티-계층 비디오 데이터를 디코딩하기 위한 방법 및 디바이스 Download PDF

Info

Publication number
KR20160149217A
KR20160149217A KR1020167031513A KR20167031513A KR20160149217A KR 20160149217 A KR20160149217 A KR 20160149217A KR 1020167031513 A KR1020167031513 A KR 1020167031513A KR 20167031513 A KR20167031513 A KR 20167031513A KR 20160149217 A KR20160149217 A KR 20160149217A
Authority
KR
South Korea
Prior art keywords
bitstream
layers
partitioning
partition
video
Prior art date
Application number
KR1020167031513A
Other languages
English (en)
Other versions
KR102078896B1 (ko
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 KR20160149217A publication Critical patent/KR20160149217A/ko
Application granted granted Critical
Publication of KR102078896B1 publication Critical patent/KR102078896B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • H04N21/4516Management of client data or end-user data involving client characteristics, e.g. Set-Top-Box type, software version or amount of memory available
    • 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/127Prioritisation of hardware or computational resources
    • 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
    • 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/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/29Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding involving scalability at the object level, e.g. video object layer [VOL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/39Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability involving multiple description coding [MDC], i.e. with separate layers being structured as independently decodable descriptions of input picture data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/423Methods 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
    • H04N19/426Methods 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 using memory downsizing methods
    • H04N19/427Display on the fly, e.g. simultaneous writing to and reading from decoding memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/66Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving data partitioning, i.e. separation of data into packets or partitions according to importance
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

비디오 디코더는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩하도록 구성된다. 비트스트림을 디코딩하는 것의 일부로서, 비디오 디코더는 비트스트림으로부터, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 획득한다. 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해, 개개의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온을 갖는 분리된 파티션들의 개개의 세트를 명시한다. 분리된 파티션들의 개개의 세트의 각각의 개개의 파티션은 계층들 중 하나 이상을 포함한다. 비디오 디코더는 복수의 하드웨어 코어들에서의 상이한 프로세싱 코어들을 이용하여 특정 파티셔닝 방식의 파티션들의 각각을 디코딩하도록 더 구성되며, 특정 파티셔닝 방식은 하나 이상의 파티셔닝 방식들 중 하나이다.

Description

하나 이상의 계층들을 포함하는 파티션에 기초하여 디코더의 프로세싱 코어를 결정하는 것에 의해 멀티-계층 비디오 데이터를 디코딩하기 위한 방법 및 디바이스 {METHOD AND DEVICE FOR DECODING MULTI-LAYER VIDEO DATA BY DETERMINING THE PROCESSING CORE OF THE DECODER BASED ON PARTITION CONTAINING ONE OR MORE LAYERS}
본 출원은 2014년 5월 1일에 출원된 미국 특허 가출원번호 제 61/987,463호, 및 2014년 5월 15일에 출원된 미국 특허 가출원번호 제 61/993,980호의 이익을 주장하며, 이의 각각의 전체 내용이 본원에 참조로 포함된다.
기술 분야
본 개시물은 비디오 인코딩 및 비디오 디코딩에 관한 것이다.
디지털 비디오 능력들은, 디지털 텔레비전들, 디지털 직접 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인 휴대정보 단말기들 (PDA들), 랩탑 또는 데스크탑 컴퓨터들, 태블릿 컴퓨터들, e-북 리더들, 디지털 카메라들, 디지털 리코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화기들, 소위 "스마트폰들", 원격 화상회의 디바이스들, 비디오 스트리밍 디바이스들 등을 포함한, 광범위한 디바이스들에 포함될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, 파트 10, AVC (Advanced Video Coding), 현재 개발중인 HEVC (High Efficiency Video Coding) 표준, 및 이런 표준들의 확장판들에 의해 정의된 표준들에서 설명되는 비디오 코딩 기법들과 같은, 비디오 압축 기법들을 구현한다. 비디오 디바이스들은 이런 비디오 압축 기법들을 구현함으로써, 디지털 비디오 정보를 좀더 효율적으로 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수도 있다.
비디오 압축 기법들은 비디오 시퀀스들에 내재하는 리던던시를 감소시키거나 또는 제거하기 위해 공간 (인트라-픽처) 예측 및/또는 시간 (인터-픽처) 예측을 수행한다. 블록-기반 비디오 코딩에 있어, 비디오 슬라이스 (즉, 비디오 프레임 또는 비디오 프레임의 일부) 는 비디오 블록들로 파티셔닝될 수도 있다. 픽처의 인트라-코딩된 (I) 슬라이스에서의 비디오 블록들은 동일한 픽처의 이웃하는 블록들에서의 참조 샘플들에 대한 공간 예측을 이용하여 인코딩된다. 픽처의 인터-코딩된 (P 또는 B) 슬라이스에서의 비디오 블록들은 동일한 픽처의 이웃하는 블록들에서의 참조 샘플들에 대한 공간 예측, 또는 다른 참조 픽처들에서의 참조 샘플들에 대한 시간 예측을 이용할 수도 있다. 픽처들은 프레임들로 지칭될 수 있으며, 참조 픽처들은 참조 프레임들로서 지칭될 수도 있다.
공간 또는 시간 예측은 코딩되는 블록에 대한 예측 블록을 초래한다. 잔차 데이터는 코딩되는 원래 블록과 예측 블록 사이의 픽셀 차이들을 나타낸다. 인터-코딩된 블록은 예측 블록을 형성하는 참조 샘플들의 블록을 가리키는 모션 벡터에 따라서 인코딩되며, 잔차 데이터는 코딩된 블록과 예측 블록 사이의 차이를 나타낸다. 인트라-코딩된 블록은 인트라-코딩 모드 및 잔차 데이터에 따라서 인코딩된다. 추가적인 압축을 위해, 잔차 데이터는 픽셀 도메인으로부터 변환 도메인으로 변환될 수도 있으며, 그 결과 잔차 계수들이 되고, 그후 양자화될 수도 있다. 처음에 2차원 어레이로 배열된, 양자화된 계수들은 계수들의 1차원 벡터를 발생하기 위해 스캐닝될 수도 있으며, 엔트로피 코딩이 더욱 더 많은 압축을 달성하기 위해 적용될 수도 있다.
멀티-뷰 코딩 비트스트림은 뷰들을, 예컨대, 다수의 관점들로부터 인코딩함으로써 발생될 수도 있다. 멀티-뷰 코딩 양태들을 이용하는 일부 3차원 (3D) 비디오 표준들이 개발되었다. 예를 들어, 상이한 뷰들은 3D 비디오를 지원하기 위해 좌안 및 우안 뷰들을 송신할 수도 있다. 이의 대안으로, 일부 3D 비디오 코딩 프로세스들은 소위 멀티-뷰 플러스 심도 코딩을 적용할 수도 있다. 멀티-뷰 플러스 심도 코딩에서, 3D 비디오 비트스트림은 텍스쳐 뷰 성분들 뿐만 아니라, 심도 뷰 성분들도 포함할 수도 있다. 예를 들어, 각각의 뷰는 하나의 텍스쳐 뷰 성분 및 하나의 심도 뷰 성분을 포함할 수도 있다.
일반적으로, 본 개시물은 비디오 비트스트림 파티션들을 정의하는데 사용되는 비디오 비트스트림 속성들, 및 그렇게 정의된 비디오 비트스트림들을 디코딩하는데 요구되는 비디오 디코더 능력들을 기술하는 기법들을 설명한다.
일 예에서, 본 개시물은 비디오 데이터를 디코딩하는 방법을 설명하며, 본 방법은 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩하는 단계를 포함하며, 상기 비트스트림은 복수의 계층들을 포함하며, 상기 비트스트림을 디코딩하는 단계는, 비트스트림으로부터, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 획득하는 단계로서, 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해: 개개의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온 (union) 을 갖는 분리된 파티션들의 개개의 세트를 명시하고, 분리된 파티션들의 개개의 세트의 각각의 개개의 파티션은 계층들 중 하나 이상을 포함하며, 출력 계층 세트는 복수의 계층들의 모든 계층들 또는 복수의 계층들의 적절한 서브세트로 이루어지는, 상기 하나 이상의 신택스 엘리먼트들을 획득하는 단계; 및 복수의 하드웨어 코어들에서의 상이한 프로세싱 코어들을 이용하여 특정 파티셔닝 방식의 파티션들의 각각을 디코딩하는 단계로서, 특정 파티셔닝 방식은 하나 이상의 파티셔닝 방식들 중 하나인, 상기 특정 파티셔닝 방식의 파티션들의 각각을 디코딩하는 단계를 포함한다.
다른 예에서, 본 개시물은 비디오 데이터를 인코딩하는 방법을 설명하며, 본 방법은 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 발생시키는 단계를 포함하며, 상기 비트스트림은 복수의 계층들을 포함하며, 상기 비트스트림을 발생시키는 단계는, 비트스트림에, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 포함시키는 단계로서, 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해: 개개의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온을 갖는 분리된 파티션들의 개개의 세트를 명시하고, 분리된 파티션들의 개개의 세트의 각각의 개개의 파티션은 하나 이상의 계층들을 포함하며, 출력 계층 세트는 복수의 계층들의 모든 계층들 또는 복수의 계층들의 적절한 서브세트로 이루어지는, 상기 하나 이상의 신택스 엘리먼트들을 포함시키는 단계; 및 비트스트림을 출력하는 단계를 포함한다.
다른 예에서, 본 개시물은 비디오 데이터를 디코딩하기 위한 디바이스를 설명하며, 상기 디바이스는, 비디오 데이터를 저장하도록 구성된 하나 이상의 컴퓨터-판독가능 저장 매체들; 및 하나 이상의 프로세서들을 포함하고, 상기 하나 이상의 프로세서들은 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩하도록 구성되고, 상기 비트스트림은 복수의 계층들을 포함하며, 상기 하나 이상의 프로세서들은 비트스트림을 디코딩하는 것의 일부로서, 하나 이상의 프로세서들이: 비트스트림으로부터, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 획득하는 것으로서, 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해: 개개의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온을 갖는 분리된 파티션들의 개개의 세트를 명시하고, 분리된 파티션들의 개개의 세트의 각각의 개개의 파티션은 계층들 중 하나 이상을 포함하며, 출력 계층 세트는 복수의 계층들의 모든 계층들 또는 복수의 계층들의 적절한 서브세트로 이루어지는, 상기 하나 이상의 신택스 엘리먼트들을 획득하고; 그리고 복수의 하드웨어 코어들에서의 상이한 프로세싱 코어들을 이용하여 특정 파티셔닝 방식의 파티션들의 각각을 디코딩하는 것으로서, 특정 파티셔닝 방식은 하나 이상의 파티셔닝 방식들 중 하나인, 상기 특정 파티셔닝 방식의 파티션들의 각각을 디코딩하도록 구성된다.
다른 예에서, 본 개시물은 비디오 데이터를 인코딩하기 위한 디바이스를 설명하며, 상기 디바이스는, 비디오 데이터를 저장하도록 구성된 하나 이상의 컴퓨터-판독가능 저장 매체들; 및 하나 이상의 프로세서들을 포함하고, 상기 하나 이상의 프로세서들은 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 발생시키도록 구성되고, 상기 비트스트림은 복수의 계층들을 포함하며, 상기 하나 이상의 프로세서들은, 비트스트림을 발생시키는 것의 일부로서, 하나 이상의 프로세서들이: 비트스트림에, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 포함시키는 것으로서, 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해: 개개의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온을 갖는 분리된 파티션들의 개개의 세트를 명시하고, 분리된 파티션들의 개개의 세트의 각각의 개개의 파티션은 하나 이상의 계층들을 포함하며, 출력 계층 세트는 복수의 계층들의 모든 계층들 또는 복수의 계층들의 적절한 서브세트로 이루어지는, 상기 하나 이상의 신택스 엘리먼트들을 포함시키고; 그리고 비트스트림을 출력하도록 구성된다.
다른 예에서, 본 개시물은 비디오 데이터를 디코딩하기 위한 디바이스를 설명하며, 상기 디바이스는, 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩하는 수단을 포함하며, 상기 비트스트림은 복수의 계층들을 포함하며, 상기 비트스트림을 디코딩하는 수단은, 비트스트림으로부터, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 획득하는 수단으로서, 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해: 개개의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온을 갖는 분리된 파티션들의 개개의 세트를 명시하고, 분리된 파티션들의 개개의 세트의 각각의 개개의 파티션은 계층들 중 하나 이상을 포함하며, 출력 계층 세트는 복수의 계층들의 모든 계층들 또는 복수의 계층들의 적절한 서브세트로 이루어지는, 상기 하나 이상의 신택스 엘리먼트들을 획득하는 수단; 및 복수의 하드웨어 코어들에서의 상이한 프로세싱 코어들을 이용하여 특정 파티셔닝 방식의 파티션들의 각각을 디코딩하는 수단으로서, 상기 특정 파티셔닝 방식은 하나 이상의 파티셔닝 방식들 중 하나인, 상기 특정 파티셔닝 방식의 파티션들의 각각을 디코딩하는 수단을 포함한다.
다른 예에서, 본 개시물은 비디오 데이터를 인코딩하기 위한 디바이스를 설명하며, 상기 디바이스는, 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 발생시키는 수단을 포함하며, 상기 비트스트림은 복수의 계층들을 포함하며, 상기 비트스트림을 발생시키는 수단은, 비트스트림에, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 포함시키는 수단으로서, 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해: 개개의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온을 갖는 분리된 파티션들의 개개의 세트를 명시하고, 분리된 파티션들의 개개의 세트의 각각의 개개의 파티션은 하나 이상의 계층들을 포함하며, 출력 계층 세트는 복수의 계층들의 모든 계층들 또는 복수의 계층들의 적절한 서브세트로 이루어지는, 상기 하나 이상의 신택스 엘리먼트들을 포함시키는 수단; 및 비트스트림을 출력하는 수단을 포함한다.
다른 예에서, 본 개시물은 저장된 명령들을 포함하는 컴퓨터-판독가능 데이터 저장 매체를 설명하며, 상기 명령들은, 실행될 때 비디오 데이터를 디코딩하기 위한 디바이스로 하여금, 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩하도록 하며, 상기 비트스트림은 복수의 계층들을 포함하며, 디바이스로 하여금, 비트스트림을 디코딩하도록 하는 것의 일부로서, 상기 명령들은 디바이스로 하여금, 비트스트림으로부터, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 획득하는 것으로서, 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해: 개개의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온을 갖는 분리된 파티션들의 개개의 세트를 명시하고, 분리된 파티션들의 개개의 세트의 각각의 개개의 파티션은 계층들 중 하나 이상을 포함하며, 출력 계층 세트는 복수의 계층들의 모든 계층들 또는 복수의 계층들의 적절한 서브세트로 이루어지는, 상기 하나 이상의 신택스 엘리먼트들을 획득하고; 그리고 복수의 하드웨어 코어들에서의 상이한 프로세싱 코어들을 이용하여 특정 파티셔닝 방식의 파티션들의 각각을 디코딩하는 것으로서, 특정 파티셔닝 방식은 하나 이상의 파티셔닝 방식들 중 하나인, 상기 특정 파티셔닝 방식의 파티션들의 각각을 디코딩하도록 한다.
다른 예에서, 본 개시물은 저장된 명령들을 포함하는 컴퓨터-판독가능 데이터 저장 매체를 설명하며, 상기 명령들은, 실행될 때 비디오 데이터를 인코딩하기 위한 디바이스로 하여금, 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 발생시키도록 하며, 상기 비트스트림은 복수의 계층들을 포함하며, 디바이스로 하여금 비트스트림을 발생시키도록 하는 것의 일부로서, 명령들은 디바이스로 하여금, 비트스트림에, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 포함시키는 것으로서, 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해: 개개의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온을 갖는 분리된 파티션들의 개개의 세트를 명시하고, 분리된 파티션들의 개개의 세트의 각각의 개개의 파티션은 하나 이상의 계층들을 포함하며, 출력 계층 세트는 복수의 계층들의 모든 계층들 또는 복수의 계층들의 적절한 서브세트로 이루어지는, 상기 하나 이상의 신택스 엘리먼트들을 포함시키고; 그리고 비트스트림을 출력하도록 한다.
본 개시물의 하나 이상의 예들의 세부 사항들은 첨부도면 및 아래의 설명에서 개시된다. 다른 특징들, 목적들, 및 이점들은 상세한 설명, 도면들, 및 청구범위로부터 명백할 것이다.
도 1 은 본 개시물에서 설명하는 기법들을 활용할 수도 있는 예시적인 비디오 코딩 시스템을 예시하는 블록도이다.
도 2 는 본 개시물의 기법에 따른, 복수의 단일-계층 디코더들을 포함하는 비디오 디코더의 예시적인 구현예를 예시하는 블록도이다.
도 3 은 본 개시물에서 설명된 기법들을 구현할 수도 있는 예시적인 비디오 인코더를 예시하는 블록도이다.
도 4 는 본 개시물에서 설명된 기법들을 구현할 수도 있는 예시적인 비디오 디코더를 예시하는 블록도이다.
도 5a 는 본 개시물의 기법에 따른, 비디오 인코더의 예시적인 동작을 예시하는 플로우차트이다.
도 5b 는 본 개시물의 기법에 따른, 비디오 디코더의 예시적인 동작을 예시하는 플로우차트이다.
도 6a 는 본 개시물의 기법에 따른, 비디오 인코더의 예시적인 동작을 예시하는 플로우차트이다.
도 6b 는 본 개시물의 기법에 따른, 비디오 디코더의 예시적인 동작을 예시하는 플로우차트이다.
도 7 은 본 개시물의 기법에 따른, 비디오 디코더의 예시적인 동작을 예시하는 플로우차트이다.
비트스트림 (즉, 비디오 비트스트림) 은 비디오 데이터의 인코딩된 표현을 포함할 수도 있다. 좀더 구체적으로, 비트스트림은 일련의 네트워크 추상화 계층 (NAL) 유닛들을 포함할 수도 있다. NAL 유닛들의 각각은 NAL 유닛 헤더 및 RBSP (Raw Byte Sequence Payload) 를 포함할 수도 있다. 멀티-계층 비디오 코딩에서, NAL 유닛들은 비디오 데이터의 여러 계층들에 대응할 수도 있다. 스케일러블 비디오 코딩에서, 계층들은 기초 계층 및 하나 이상의 향상 계층들을 포함할 수도 있다. 멀티-뷰 코딩에서, 계층들의 각각은 비디오 장면의 상이한 뷰들과 같은, 상이한 뷰들에 대응할 수도 있다.
고-효율 비디오 코딩 (HEVC) 과 같은, 어떤 비디오 코딩 표준들은 여러 상이한 프로파일들, 티어들, 및 레벨들을 정의한다. 일반적으로, 비디오 코딩 표준의 "프로파일" 은 비디오 코딩 표준에 존재하는 특징들 및 툴들의 서브세트이다. 다시 말해서, 프로파일은 어떤 코딩 툴들이 사용될 수 있는지를 정의한다. 예를 들어, 비디오 인코더에 대해, 프로파일은 비디오 인코더가 상기 프로파일을 따르는 코딩된 비트스트림들을 발생시키는데 사용될 수도 있는 코딩 툴들의 세트일 수도 있다. 비디오 디코더에 대해, 프로파일은 비디오 디코더가 상기 프로파일을 따르는 것으로 언급한 비트스트림들을 디코딩가능하도록 하기 위해서 가져야 하는 코딩 툴들의 세트를 의미할 수도 있다.
레벨은 비디오 코딩 표준의 신택스 엘리먼트들 및 변수들에 의해 취해질 수도 있는 값들에 대한 정의된 제약들의 세트이다. 티어는 비트스트림에서의 신택스 엘리먼트들의 값들 또는 변수들의 값들에 가해지는 명시된 레벨 제약들의 카테고리이며, 여기서, 레벨 제약들은 티어 내에 네스트되며, 어떤 티어 및 레벨을 따르는 디코더는 그 레벨 또는 그 레벨 아래의 임의의 레벨의 동일한 티어 또는 보다 낮은 티어를 따르는 모든 비트스트림들을 디코딩가능할 것이다. 따라서, 티어의 레벨은 비트스트림에서의 신택스 엘리먼트들 및 그 비트스트림을 디코딩할 때에 사용되는 변수들의 값들에 가해지는 명시된 제약들의 세트이다.
상이한 비디오 디코더들은 상이한 능력들을 가질 수도 있다. 예를 들어, 하나의 비디오 디코더는 제 1 프로파일을 따르는 비트스트림들을 디코딩가능할 수도 있지만 제 2 프로파일을 따르는 비트스트림들을 디코딩가능하지 않을 수도 있다. 이 예에서, 다른 비디오 디코더는 제 1 프로파일 및 제 2 프로파일을 따르는 비트스트림들을 디코딩가능할 수도 있다. 예를 들어, 비디오 코딩의 스케일러블 계층들에 의해, 달성될 수도 있는 비디오 품질의 레벨은, 일부 디바이스들이 단지 비디오 품질의 베이스 레벨만을 디코딩하여 제시가능할 수도 있는 반면 다른 디바이스들이 향상된 비디오 품질을 디코딩하여 제시가능할 수도 있도록, 계층들 전체에 걸쳐서 스케일링될 수 있다. 또한, 스케일러블 계층들은 채널 대역폭이 제한될 때 더 신뢰성있는 비디오 데이터 수신을 허용할 수도 있으며, 예컨대, 제한된 대역폭 채널은 기초 계층의 비디오 데이터 통신에 여전히 충분할 수도 있으며 더 강건한 대역폭 채널들은 베이스 및 향상 계층들의 비디오 데이터 통신을 허용할 수도 있다. 일반적으로, 제 1 프로세서가 제 2 프로세서에 의해 디코딩될 수 있는 프로파일들, 티어들, 및 레벨들의 슈퍼세트인 프로파일들, 티어들, 및 레벨들을 따르는 비트스트림들을 디코딩가능하면, 제 1 프로세서는 더 복잡하며 따라서 더 비싼 경향이 있다.
이와 유사하게, 멀티-뷰 코딩에 의하면, 다수의 뷰들이 일부 디바이스들에 의해 디코딩가능할 수도 있지만, 다른 디바이스들은 단지 제한된 개수의 뷰들을 디코딩하는 능력들만을 가질 수도 있다. 채널 대역폭 제약들은 또한 대역폭이 제한될 때 제한된 개수의 뷰들이 디코딩가능하고, 대역폭이 허용될 때 더 많은 개수의 뷰들이 디코딩가능할 수도 있도록 멀티-뷰 코딩에 의해 더 효과적으로 이용될 수도 있다.
일부의 사례들에서, 비디오 디코더는 다수의 하드웨어 코어들 (예컨대, 프로세싱 유닛들 또는 프로세싱 모듈들) 을 포함한다. 다시 말해서, 비디오 디코더는 복수의 하드웨어 코어들을 이용하여 형성될 수도 있다. 하드웨어 코어들의 각각은 적어도 비트스트림의 낮은-레벨 신택스 엘리먼트들을 독립적으로 디코딩가능할 수도 있다. 상이한 코어들은 그들의 프로세싱 능력들에서 유사하거나 또는 상이할 수도 있지만, 그것과는 관계없이, 다수의 코어들의 존재가 단일 코어 디코더들보다 프로세싱 이점들을 제공할 수도 있다. 일부 예들에서, 다수의 하드웨어 코어들을 포함하는 비디오 디코더는 비트스트림의 다수의 부분들을 병렬로 디코딩가능할 수도 있다. 예를 들어, 일부 프로세싱 코어들은 단일 계층 디코더를 구현할 수도 있다. 단일 계층 디코더는 스케일러블 비디오의 기초 계층 또는 멀티-뷰 비디오에서의 특정 뷰와 같은, 비트스트림의 단일 계층을 디코딩가능할 수도 있다. 이에 반해, 멀티-계층 디코더는 비트스트림의 다수의 계층들을 동시에 (즉, 병렬로) 디코딩가능할 수도 있다. 일 예들에서, 단일 하드웨어 코어는 하나 보다 많은 계층을 디코딩하는 것이 가능하다.
비디오 디코더의 상이한 하드웨어 코어들은 상이한 능력들을 가질 수도 있다. 예를 들어, 비디오 디코더의 하나의 하드웨어 코어는 제 1 프로파일을 따르지만 제 2 프로파일을 따르지 않는 비트스트림들을 디코딩가능할 수도 있지만, 비디오 디코더의 제 2 하드웨어 코어는 제 1 프로파일 및 제 2 프로파일을 따르는 비트스트림들을 디코딩가능할 수도 있다. 비디오 디코더는 비디오 디코더의 의도된 목적을 고려하여, 비디오 디코더의 전체 비용을 가능한 한 낮게, 유지하기 위해서, 상이한 능력들을 가지는 하드웨어 코어들을 가질 수도 있다.
일반적으로, 비디오 디코더가 다수의 하드웨어 코어들을 포함하는 사례들에서, 비디오 디코더는 비트스트림에서 시그널링된 프로파일, 티어, 및 레벨 정보에 기초하여, 비디오 디코더의 가장 가능성있는 (most capable) 하드웨어 코어가 비트스트림을 디코딩가능한지 여부를 결정한다. 그렇다면, 비디오 디코더는 비트스트림을 디코딩가능하다고 결정한다. 이 프로세스는 비디오 디코더로 하여금, 비디오 디코더의 덜-가능성있는 (less-capable) 하드웨어 코어들 중 임의의 하드웨어 코어가 비트스트림을 디코딩하는 프로세스를 돕는 것이 가능한지 여부를 결정하는 것을 가능하게 하지 않는다. 그 결과, 덜-가능성있는 하드웨어 코어들은 휴지 상태일 수도 있지만 가장 가능성있는 하드웨어 코어는 비트스트림의 모두를 디코딩한다. 그러나, 비디오 디코더의 덜-가능성있는 하드웨어 코어들은 실제로 비디오 디코더의 가장-가능성있는 하드웨어 코어와 병렬로 비트스트림의 특정 계층들을 디코딩가능할 수도 있다. 그 결과, 덜-가능성있는 하드웨어 코어들을 이용하지 않는 것은 디코딩 시간들을 불필요하게 연장할 수도 있다.
본 개시물의 일부 기법들은 상이한 능력들을 가지는 하드웨어 코어들을 가지는 비디오 디코더들에서 디코딩 시간들에서의 감소들을 촉진시킬 수도 있다. 예를 들어, 본 개시물의 일부 기법들은 상이한 능력들을 가지는 다수의 단일-계층 디코더들에 기초하여 형성된 비디오 디코더들에서 디코딩 시간들을 감소시킬 수도 있다. 더 종래의 기법들보다 디코딩 시간들에서의 이러한 감소는 하드웨어 코어들 자신을 변경함이 없이 (예컨대, 하드웨어 코어들의 물리적인 구조들을 수정함이 없이) 달성될 수도 있다. 게다가, 하드웨어 코어들이 동일한 능력들을 가질 때, 본 개시물의 일부 기법들은 비디오 디코더들로 하여금 더 많은 계층들을 병렬로 디코딩하도록 할 수도 있다.
본 개시물의 하나의 예시적인 기법에 따르면, 비디오 디코더는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩할 수도 있다. 이 예에서, 비트스트림은 복수의 계층들을 포함한다. 비트스트림을 디코딩하는 것의 일부로서, 비디오 디코더는 비트스트림으로부터, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 획득할 수도 있다. 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해, 개개의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온을 갖는 분리된 파티션들의 개개의 세트를 명시한다. 분리된 파티션들의 개개의 세트의 각각의 개개의 파티션은 계층들 중 하나 이상을 포함한다. 그러므로, 파티션은 비트스트림의 서브-비트스트림의 특정 유형일 수도 있다. 출력 계층 세트는 복수의 계층들의 모든 계층들 또는 복수의 계층들의 적절한 서브세트로 이루어질 수도 있다. 더욱이, 비디오 디코더는 복수의 하드웨어 코어들에서의 상이한 프로세싱 코어들을 이용하여 특정 파티셔닝 방식의 파티션들의 각각을 디코딩할 수도 있으며, 특정 파티셔닝 방식은 하나 이상의 파티셔닝 방식들 중 하나이다.
일부 예들에서, 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, 비디오 디코더는 비트스트림으로부터, 개개의 파티션에 대한 개개의 프로파일, 티어, 및 레벨 (PTL) 정보를 표시하는 개개의 신택스 엘리먼트를 획득한다. 일부의 사례들에서, 비디오 디코더는 파티셔닝 방식들의 파티션들에 대한 PTL 정보에 기초하여, 하나 이상의 파티셔닝 방식들 중에서 파티셔닝 방식을 선택할 수도 있다. 일부의 사례들에서, 비디오 디코더는 가용 네트워크 리소스들에 의해 결정된 바와 같은 특정 파티셔닝 방식에 따라서 비트스트림을 수신할 수도 있다. 비디오 디코더는 하드웨어 코어들 중 개개의 하나를 이용하여 특정 파티셔닝 방식의 각각의 개개의 파티션을 디코딩할 수도 있다. 하드웨어 코어들 중 각각의 개개의 하나는 개개의 단일-계층 디코더를 구현할 수도 있다. 일부의 사례들에서, 비디오 디코더의 하나의 하드웨어 코어는 하나 보다 많은 계층을 디코딩가능할 수도 있다.
본 개시물의 추가적인 기법들은 비트스트림 파티션들을 이용한 비트스트림 적합성 테스팅 (conformance testing) 을 위해 제공할 수 있다. 예를 들어, (비디오 인코더, 비디오 디코더, 또는 다른 디바이스와 같은) 비디오 프로세싱 디바이스는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩할 수도 있다. 비트스트림은 복수의 계층들을 포함할 수도 있다. 비트스트림을 디코딩하는 것의 일부로서, 비디오 디코더는 비트스트림으로부터, 출력 계층 세트에 대한 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 획득할 수도 있다. 이들 예들의 유형들에서, 출력 계층 세트는 복수의 계층들의 모든 계층들 또는 (예컨대, 복수의 계층들의 모든 계층들인 것은 아닌) 복수의 계층들의 적절한 서브세트로 이루어질 수도 있다. 더욱이, 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해, 개개의 파티셔닝 방식은 하나 이상의 파티션들로의 출력 계층 세트의 분할을 명시할 수도 있다. 출력 계층 세트에 있는 각각의 계층은 개개의 파티셔닝 방식에서 정확히 하나의 파티션에 속할 수도 있다. 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해, 비디오 디코더는 비트스트림에서의 보충 향상 정보 (SEI) 메시지 또는 비트스트림에서의 비디오 파라미터 세트 (VPS) 내 비디오 사용성 정보 (VUI) 로부터, 파티셔닝 방식에 대한 가상 참조 디코더 (HRD) 파라미터 세트들을 표시하는 신택스 엘리먼트들의 개개의 세트를 획득할 수도 있다. 게다가, 파티셔닝 방식의 각각의 개개의 파티션에 대해, 비디오 프로세싱 디바이스는 개개의 파티셔닝 방식에 대한 HRD 파라미터 세트들에 기초하여, MV-HEVC 또는 SHVC 와 같은 비디오 코딩 표준에 대한 적합성에 대해, 개개의 파티션을 테스트할 수도 있다.
본 개시물의 일부 기법들에 따르면, 멀티-계층 비디오 디코더는 트리플릿 엔트리들 (triplet entries) 의 리스트에 기초하여, 멀티-계층 비디오 디코더가 멀티-계층 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩가능한지 (즉, 디코딩하도록 구성되는지) 를 결정할 수도 있다. 리스트에서 트리플릿 엔트리들의 개수는 멀티-계층 비디오 디코더에서의 다수의 단일-계층 디코더들보다 적거나 또는 동일할 수도 있다. 트리플릿 엔트리들의 리스트에서의 각각의 개개의 트리플릿 엔트리는 멀티-계층 비디오 디코더에서의 개개의 단일-계층 디코더가 디코딩가능한 (즉, 디코딩하도록 구성된) 프로파일, 티어, 및 레벨을 표시한다. 멀티-계층 비디오 디코더가 비트스트림을 디코딩가능한 것에 기초하여, 멀티-계층 비디오 디코더는 비트스트림을 디코딩가능할 수도 있다. 일부 예들에서, 비디오 프로세싱 디바이스는 파티셔닝 방식의 각각의 파티션의 PTL 정보가 단일-계층 디코더들 중 적어도 하나에 의해 파티션이 디코딩될 수 있다는 것을 표시하는 파티셔닝 방식을 그 비트스트림이 명시하고 있다고 결정함으로써, 멀티-계층 디코더가 비트스트림을 디코딩가능하다고 결정할 수도 있다. 이것은 다수의 단일-계층 디코더들을 가지는 멀티-계층 비디오 디코더로 하여금, 멀티-계층 비디오 디코더가 비트스트림을 디코딩가능한지 여부를 결정하는 것을 가능하게 할 수도 있다.
도 1 은 본 개시물의 기법들을 이용할 수도 있는 예시적인 비디오 코딩 시스템 (10) 을 예시하는 블록도이다. 본원에서 사용될 때, 용어 "비디오 코더" 는 비디오 인코더들 및 비디오 디코더들 양쪽을 포괄적으로 지칭한다. 본 개시물에서, 용어들 "비디오 코딩" 또는 "코딩" 은 비디오 인코딩 또는 비디오 디코딩을 포괄적으로 지칭할 수도 있다.
도 1 에 나타낸 바와 같이, 비디오 코딩 시스템 (10) 은 소스 디바이스 (12), 목적지 디바이스 (14), 및 네트워크 엘리먼트 (15) 를 포함한다. 소스 디바이스 (12) 는 인코딩된 비디오 데이터를 발생한다. 따라서, 소스 디바이스 (12) 는 비디오 인코딩 디바이스 또는 비디오 인코딩 장치로서 지칭될 수도 있다. 목적지 디바이스 (14) 는 소스 디바이스 (12) 에 의해 발생된 인코딩된 비디오 데이터를 디코딩할 수도 있다. 따라서, 목적지 디바이스 (14) 는 비디오 디코딩 디바이스 또는 비디오 디코딩 장치로서 지칭될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 비디오 코딩 디바이스들 또는 비디오 코딩 장치들의 예들일 수도 있다.
소스 디바이스 (12) 및 목적지 디바이스 (14) 는 데스크탑 컴퓨터들, 모바일 컴퓨팅 디바이스들, 노트북 (예컨대, 랩탑) 컴퓨터들, 태블릿 컴퓨터들, 셋-탑 박스들, 소위 "스마트" 폰들과 같은 전화기 핸드셋들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 자동차용 컴퓨터들, 또는 기타 등등을 포함한, 광범위한 디바이스들을 포함할 수도 있다.
네트워크 엘리먼트 (15) 는 인코딩된 비디오 데이터를 수신하고, 프로세싱된 인코딩된 비디오 데이터를 출력할 수도 있다. 네트워크 엘리먼트 (15) 는 미디어 인지 네트워크 엘리먼트 (MANE), 콘텐츠 전달 네트워크 (CDN) 디바이스, 또는 다른 유형의 디바이스 (예컨대, 컴퓨팅 디바이스) 일 수도 있다. 네트워크 디바이스 (15) 는 본 개시물의 하나 이상의 기법들을 수행할 수도 있다. 예를 들어, 네트워크 디바이스 (15) 는 본 개시물의 하나 이상의 기법들에 따른, 하나 이상의 비트스트림 적합성 테스트들을 수행할 수도 있다. 네트워크 엘리먼트 (15), 소스 디바이스 (12), 목적지 디바이스 (14), 및 비디오 데이터를 프로세싱하는 다른 유형들의 디바이스는 비디오 프로세싱 디바이스들로서 간주될 수도 있다.
목적지 디바이스 (14) 는 소스 디바이스 (12) 로부터 채널 (16) 을 통해서 인코딩된 비디오 데이터를 수신할 수도 있다. 채널 (16) 은 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 이동시키는 것이 가능한 하나 이상의 매체들 또는 디바이스들을 포함할 수도 있다. 일 예에서, 채널 (16) 은 소스 디바이스 (12) 로 하여금, 인코딩된 비디오 데이터를 직접 목적지 디바이스 (14) 로 실시간으로 송신가능하게 하는 하나 이상의 통신 매체들을 포함할 수도 있다. 이 예에서, 소스 디바이스 (12) 는 무선 통신 프로토콜과 같은 통신 표준에 따라서, 인코딩된 비디오 데이터를 변조할 수도 있으며, 변조된 비디오 데이터를 목적지 디바이스 (14) 로 송신할 수도 있다. 하나 이상의 통신 매체들은 무선 및/또는 유선 통신 매체들, 예컨대 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적인 송신 라인들을 포함할 수도 있다. 하나 이상의 통신 매체들은 근거리 네트워크, 광역 네트워크, 또는 글로벌 네트워크 (예컨대, 인터넷) 와 같은, 패킷-기반 네트워크의 일부를 형성할 수도 있다. 하나 이상의 통신 매체들은 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는 다른 장비를 포함할 수도 있다.
또 다른 예에서, 채널 (16) 은 소스 디바이스 (12) 에 의해 발생되는 인코딩된 비디오 데이터를 저장하는 저장 매체를 포함할 수도 있다. 이 예에서, 목적지 디바이스 (14) 는 저장 매체에, 예컨대, 디스크 액세스 또는 카드 액세스를 통해서, 액세스할 수도 있다. 저장 매체는 Blu-ray 디스크들, DVD들, CD-ROM들, 플래시 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 다른 알맞은 디지털 저장 매체들과 같은 다양한 로컬-액세스되는 데이터 저장 매체들을 포함할 수도 있다.
추가 예에서, 채널 (16) 은 소스 디바이스 (12) 에 의해 발생된 인코딩된 비디오 데이터를 저장하는 파일 서버 또는 다른 중간 저장 디바이스를 포함할 수도 있다. 이 예에서, 목적지 디바이스 (14) 는 스트리밍 또는 다운로드를 통해서 파일 서버 또는 다른 중간 저장 디바이스에 저장된 인코딩된 비디오 데이터에 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 송신가능한 서버의 형태일 수도 있다. 예시적인 파일 서버들은 (예컨대, 웹사이트용) 웹 서버들, 파일 전송 프로토콜 (FTP) 서버들, NAS (network attached storage) 디바이스들, 및 로컬 디스크 드라이브들을 포함한다.
목적지 디바이스 (14) 는 인코딩된 비디오 데이터에 인터넷 접속과 같은 표준 데이터 접속을 통해서 액세스할 수도 있다. 데이터 접속들의 예시적인 유형들은 무선 채널들 (예컨대, Wi-Fi 접속들), 유선 접속들 (예컨대, 디지털 가입자 회선 (DSL), 케이블 모뎀, 등), 또는 파일 서버 상에 저장된 인코딩된 비디오 데이터에 액세스하는데 알맞은 양자의 조합들을 포함할 수도 있다. 파일 서버로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이 양쪽의 조합일 수도 있다.
본 개시물의 기법들은 무선 애플리케이션들 또는 설정들에 한정되지 않는다. 이 기법들은 OTA (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 예컨대, 인터넷을 통한 스트리밍 비디오 송신들, 데이터 저장 매체 상의 저장을 위한 비디오 데이터의 인코딩, 데이터 저장 매체 상에 저장된 비디오 데이터의 디코딩, 또는 다른 애플리케이션들과 같은, 다양한 멀티미디어 애플리케이션들의 지원 하에서, 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 비디오 코딩 시스템 (10) 은 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 비디오 전화 통신과 같은, 애플리케이션들을 지원하기 위해 일방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.
도 1 은 단지 일 예이며, 본 개시물의 기법들은 인코딩 디바이스와 디코딩 디바이스 사이의 임의의 데이터 통신을 반드시 포함하지는 않는 비디오 코딩 설정들 (예컨대, 비디오 인코딩 또는 비디오 디코딩) 에 적용할 수도 있다. 다른 예들에서, 데이터 (예컨대, 비디오 데이터) 는 로컬 메모리로부터 취출되거나, 네트워크를 통해서 스트리밍되거나, 또는 기타 등등으로 이루어질 수 있다. 비디오 인코딩 디바이스는 데이터 (예컨대, 비디오 데이터) 를 인코딩하여 메모리에 저장할 수도 있거나, 및/또는 비디오 디코딩 디바이스는 메모리로부터 데이터 (예컨대, 비디오 데이터) 를 취출하여 디코딩할 수도 있다. 많은 예들에서, 인코딩 및 디코딩은, 서로 통신하지 않지만, 메모리에 데이터를 단순히 인코딩하거나 및/또는 메모리로부터 데이터 (예컨대, 비디오데이터) 를 취출하여 디코딩하는 디바이스들에 의해 수행된다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 및 출력 인터페이스 (22) 를 포함한다. 일부 예들에서, 출력 인터페이스 (22) 는 변조기/복조기 (모뎀) 및/또는 송신기를 포함할 수도 있다. 비디오 소스 (18) 는 비디오 캡처 디바이스, 예컨대, 비디오 카메라, 이전에-캡처된 비디오 데이터를 포함하는 비디오 아카이브, 비디오 콘텐츠 제공자로부터 비디오 데이터를 수신하기 위한 비디오 공급 인터페이스, 및/또는 비디오 데이터를 발생하기 위한 컴퓨터 그래픽스 시스템, 또는 이런 비디오 데이터의 소스들의 조합을 포함할 수도 있다. 따라서, 일부 예들에서, 소스 디바이스 (12) 는 비디오 데이터를 캡처하도록 구성된 카메라를 포함한다.
비디오 인코더 (20) 는 비디오 소스 (18) 로부터의 비디오 데이터를 인코딩할 수도 있다. 일부 예들에서, 소스 디바이스 (12) 는 인코딩된 비디오 데이터를 출력 인터페이스 (22) 를 통해서 목적지 디바이스 (14) 로 직접 송신한다. 다른 예들에서, 인코딩된 비디오 데이터는 또한 디코딩 및/또는 플레이백을 위해 목적지 디바이스 (14) 에 의한 추후 액세스를 위해 저장 매체 또는 파일 서버 상으로 저장될 수도 있다.
도 1 의 예에서, 목적지 디바이스 (14) 는 입력 인터페이스 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 일부 예들에서, 입력 인터페이스 (28) 는 수신기 및/또는 모뎀을 포함한다. 입력 인터페이스 (28) 는 인코딩된 비디오 데이터를 채널 (16) 을 통해서 수신할 수도 있다. 비디오 디코더 (30) 는 인코딩된 비디오 데이터를 디코딩할 수도 있다. 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 디스플레이할 수도 있다. 디스플레이 디바이스 (32) 는 목적지 디바이스 (14) 와 통합되거나 또는 그 외부에 있을 수도 있다. 디스플레이 디바이스 (32) 는 다양한 디스플레이 디바이스들, 예컨대 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 또 다른 유형의 디스플레이 디바이스를 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 주문형 집적 회로들 (ASIC들), 필드-프로그래밍가능 게이트 어레이들 (FPGA들), 이산 로직, 하드웨어, 또는 임의의 이들의 조합들과 같은, 다양한 알맞은 회로 중 임의의 회로로서 구현될 수도 있다. 기법들이 소프트웨어로 부분적으로 구현되면, 디바이스는 소프트웨어용 명령들을 알맞은 비일시성 컴퓨터-판독가능 저장 매체에 저장할 수도 있으며, 본 개시물의 기법들을 수행하기 위해 그 명령들을 하드웨어에서 하나 이상의 프로세서들을 이용하여 실행할 수도 있다. (하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함한) 전술한 것 중 임의의 것이 하나 이상의 프로세서들로 간주될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 이들 중 어느 쪽이든 각각의 디바이스에서 결합된 인코더/디코더 (CODEC) 의 일부로서 통합될 수도 있다.
본 개시물은 일반적으로 어떤 정보를 비디오 디코더 (30) 와 같은 또 다른 디바이스로 "시그널링하는" 비디오 인코더 (20) 와 관련될 수도 있다. 용어 "시그널링" 은 일반적으로, 압축된 비디오 데이터를 디코딩하는데 사용되는 신택스 엘리먼트들 및/또는 다른 데이터의 통신을 지칭할 수도 있다. 이런 통신은 실시간 또는 근실시간으로 일어날 수도 있다. 대안적으로, 이런 통신은, 인코딩 시에 신택스 엘리먼트들을 컴퓨터-판독가능 저장 매체에 인코딩된 비트스트림으로 저장한 다음, 이 신택스 엘리먼트들이 이 매체에 저장되어진 후 언제라도 디코딩 디바이스에 의해 취출될 수도 있는 때 일어날 수도 있는 바와 같이, 어떤 기간에 걸쳐서 일어날 수도 있다.
일부 예들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 ISO/IEC MPEG-4 Visual 및 ITU-T H.264 (또한, ISO/IEC MPEG-4 AVC 로서 알려짐) 와 같은, 그의 스케일러블 비디오 코딩 (SVC) 확장판, 멀티뷰 비디오 코딩 (MVC) 확장판, 및 MVC-기반의 3DV 확장판을 포함한, 비디오 압축 표준에 따라서 동작한다. 일부의 사례들에서, H.264/AVC 의 MVC-기반 3DV 확장판을 따르는 임의의 비트스트림은 H.264/AVC 의 MVC 확장판을 따르는 서브-비트스트림을 항상 포함한다. MVC 의 최신 합동 초안은 2010 년 3월, ITU-T 권고안 H.264, "Advanced Video Coding for generic audiovisual services" 에 설명되어 있다. 더욱이, H.264/AVC 에 대한 3차원 비디오 (3DV) 코딩 확장판, 즉 AVC-기반의 3DV 를 만들어 내려는 노력이 진행 중에 있다. 다른 예들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 또는 ISO/IEC MPEG-2 Visual, ITU-T H.263, 및 ISO/IEC MPEG-4 Visual 에 따라서 동작할 수도 있다.
다른 예들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 ITU-T 비디오 코딩 전문가 그룹 (VCEG) 및 ISO/IEC 동영상 전문가 그룹 (MPEG) 의 비디오 코딩에 관한 합동 작업팀 (JCT-VC) 에 의해 개발된 HEVC (High Efficiency Video Coding) 표준에 따라서 동작할 수도 있다. "HEVC 초안 사양" 으로서 지칭되는, HEVC 표준의 초안이, ITU-T SG16 WP3 와 ISO/IEC JTC1/SC29/WG11 의 JCT-VC (Joint Collaborative Team on Video Coding), 16차 회의, 2014년 1월, 미국, 산호세, Bross 등, "High Efficiency Video Coding (HEVC) Defect Report 3", 문서 번호 JCTVC-P1003_v1 에 설명되어 있다. HEVC 초안 사양은 http://phenix.it-sudparis.eu/jct/doc_end_user/documents/16_San%20Jose/wg11/JCTVC-P1003-v1.zip 으로부터 입수가능하다.
더욱이, HEVC 에 대한 스케일러블 비디오 코딩 확장판을 만들려는 노력들이 진행중에 있다. HEVC 의 스케일러블 비디오 코딩 확장판은 SHEVC 또는 SHVC 로서 지칭될 수도 있다. 게다가, VCEG 및 MPEG 의 3D 비디오 코딩에 관한 합동 연구팀 (JCT-3C) 이 HEVC 에 기초한 3DV 표준을 개발하고 있다. HEVC 에 기초한 3DV 표준에 대한 표준화 노력들의 일부는 HEVC (즉, MV-HEVC) 에 기초하는 멀티-뷰 비디오 코덱의 표준화를 포함한다. HEVC 에 기초한 3DV 표준에 대한 표준화 노력들의 또다른 일부는 HEVC (즉, 3D-HEVC) 에 기초하는 3D 비디오 코딩의 표준화를 포함한다. 3D-HEVC 에 있어, 텍스쳐 및 심도 뷰들 양쪽에 대해, 코딩 유닛 (CU) 또는 예측 유닛 (PU) 레벨에서의 툴들을 포함한, 새로운 코딩 툴들이 포함되고 지원될 수도 있다.
이하에서 MV-HEVC WD8 로서 지칭되는, MV-HEVC 의 최신 작업 초안 (WD) 은, http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/8_Valencia/wg11/JCT3V-H1002-v1.zip 로부터 입수가능하다. SHVC 로 불리는, HEVC 에 대한 스케일러블 확장판이 또한 JCT-VC 에 의해 개발되고 있다. 이하에서 SHVC WD6 로서 지칭되는, SHVC 의 최신 작업 초안 (WD) 은, http://phenix.it-sudparis.eu/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1008-v1.zip 로부터 입수가능하다.
HEVC 및 다른 비디오 코딩 사양들에서, 비디오 시퀀스는 일반적으로 일련의 픽처들을 포함한다. 픽처들은 또한 "프레임들" 로서 지칭될 수도 있다. 픽처는 SL, SCb, 및 SCr 로 표기되는, 3개의 샘플 어레이들을 포함할 수도 있다. SL 은 루마 샘플들의 2차원 어레이 (즉, 블록) 이다. SCb 는 Cb 색차 샘플들의 2차원 어레이이다. SCr 은 Cr 색차 샘플들의 2차원 어레이이다. 색차 샘플들은 또한 본원에서 "크로마" 샘플들로서 지칭될 수도 있다. 다른 경우, 픽처는 단색일 수도 있으며 단지 루마 샘플들의 어레이를 포함할 수도 있다.
픽처의 인코딩된 표현을 발생시키기 위해, 비디오 인코더 (20) 는 코딩 트리 유닛들 (CTU들) 의 세트를 발생시킬 수도 있다. CTU들의 각각은 루마 샘플들의 코딩 트리 블록, 크로마 샘플들의 2개의 대응하는 코딩 트리 블록들, 및 코딩 트리 블록들의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다. 단색 픽처들 또는 3개의 별개의 칼라 평면들을 가지는 픽처들에서, CTU 는 단일 코딩 트리 블록 및 코딩 트리 블록의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다. 코딩 트리 블록은 샘플들의 NxN 블록일 수도 있다. CTU 는 또한 "트리 블록" 또는 "최대 코딩 유닛" (LCU) 으로서 지칭될 수도 있다. HEVC 의 CTU들은 H.264/AVC 와 같은, 다른 표준들의 매크로블록들과 대략 유사할 수도 있다. 그러나, CTU 는 특정 사이즈에 반드시 제한되지 않으며, 하나 이상의 코딩 유닛들 (CU들) 을 포함할 수도 있다. 슬라이스는 래스터 스캔 순서로 연속적으로 순서화된 정수 개의 CTU들을 포함할 수도 있다.
본 개시물은 하나 이상의 샘플 블록들 및 하나 이상의 샘플들의 블록들의 샘플들을 코딩하는데 사용되는 신택스 구조들을 지칭하기 위해, 용어 "비디오 유닛" 또는 "비디오 블록" 또는 "블록" 을 이용할 수도 있다. 비디오 유닛들의 예시적인 유형들은 CTU들, CU들, PU들, 변환 유닛들 (TU들), 매크로블록들, 매크로블록 파티션들 등을 포함할 수도 있다. 일부 상황들에서, PU들의 설명은 매크로블록들 또는 매크로블록 파티션들의 설명과 상호교환될 수도 있다.
코딩된 CTU 를 발생하기 위해, 비디오 인코더 (20) 는 코딩 트리 블록들을 코딩 블록들, 따라서 이름 "코딩 트리 유닛들" 로 분할하기 위해 CTU 의 코딩 트리 블록들에 관해 쿼드-트리 파티셔닝을 회귀적으로 수행할 수도 있다. 코딩 블록은 샘플들의 NxN 블록이다. CU 는 루마 샘플들의 코딩 블록 및 루마 샘플 어레이, Cb 샘플 어레이, 및 Cr 샘플 어레이를 가지는 픽처의 크로마 샘플들의 2개의 대응하는 코딩 블록들, 및 코딩 블록들의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다. 단색 픽처들 또는 3개의 별개의 칼라 평면들을 가지는 픽처들에서, CU 는 단일 코딩 블록 및 코딩 블록의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (20) 는 CU 의 코딩 블록을 하나 이상의 예측 블록들로 파티셔닝할 수도 있다. 예측 블록은 동일한 예측이 적용되는 샘플들의 직사각형 (즉, 정사각형 또는 비-정사각형) 블록이다. CU 의 예측 유닛 (PU) 는 루마 샘플들의 예측 블록, 크로마 샘플들의 2개의 대응하는 예측 블록들, 및 예측 블록들을 예측하는데 사용되는 신택스 구조들을 포함할 수도 있다. 단색 픽처들 또는 3개의 별개의 칼라 플레인들을 가지는 픽처들에서, PU 는 단일 예측 블록 및 예측 블록을 예측하는데 사용되는 신택스 구조들을 포함할 수도 있다. 비디오 인코더 (20) 는 CU 의 각각의 PU 의 예측 블록들 (예컨대, 루마, Cb, 및 Cr 예측 블록들) 에 대해 예측 블록들 (예컨대, 루마, Cb, 및 Cr 예측 블록들) 을 발생시킬 수도 있다.
비디오 인코더 (20) 는 PU 에 대한 예측 블록들을 발생시키기 위해 인트라 예측 또는 인터 예측을 이용할 수도 있다. 비디오 인코더 (20) 이 PU 의 예측 블록들을 발생시키기 위해 인트라-예측을 이용하면, 비디오 인코더 (20) 는 PU 를 포함하는 픽처의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 발생시킬 수도 있다.
비디오 인코더 (20) 가 CU 의 하나 이상의 PU들에 대한 예측 블록들 (예컨대, 루마, Cb 및 Cr 예측 블록들) 을 발생시킨 후, 비디오 인코더 (20) 는 CU 에 대한 하나 이상의 잔차 블록을 발생시킬 수도 있다. 예를 들어, 비디오 인코더 (20) 는 CU 에 대한 루마 잔차 블록을 발생시킬 수도 있다. CU 의 루마 잔차 블록에서의 각각의 샘플은 CU 의 예측 루마 블록들 중 하나에서의 루마 샘플과 CU 의 원래 루마 코딩 블록에서의 대응하는 샘플 사이의 차이를 나타낸다. 게다가, 비디오 인코더 (20) 는 CU 에 대한 Cb 잔차 블록을 발생시킬 수도 있다. CU 의 Cb 잔차 블록에서의 각각의 샘플은 CU 의 예측 Cb 블록들 중 하나에서의 Cb 샘플과 CU 의 원래 Cb 코딩 블록에서의 대응하는 샘플 사이의 차이를 나타낼 수도 있다. 비디오 인코더 (20) 는 또한 CU 에 대한 Cr 잔차 블록을 발생시킬 수도 있다. CU 의 Cr 잔차 블록에서의 각각의 샘플은 CU 의 예측 Cr 블록들 중 하나에서의 Cr 샘플과 CU 의 원래 Cr 코딩 블록에서의 대응하는 샘플 사이의 차이를 나타낼 수도 있다.
게다가, 비디오 인코더 (20) 는 쿼드-트리 파티셔닝을 이용하여, CU 의 잔차 블록들 (예컨대, 루마, Cb, 및 Cr 잔차 블록들) 을 하나 이상의 변환 블록들 (예컨대, 루마, Cb, 및 Cr 변환 블록들) 로 분해할 수도 있다. 변환 블록은 동일한 변환이 적용되는 샘플들의 직사각형 (예컨대, 정사각형 또는 비-정사각형) 블록이다. CU 의 변환 유닛 (TU) 는 루마 샘플들의 변환 블록, 크로마 샘플들의 2개의 대응하는 변환 블록들, 및 변환 블록 샘플들을 변환하는데 사용되는 신택스 구조들을 포함할 수도 있다. 따라서, CU 의 각각의 TU 는 루마 변환 블록, Cb 변환 블록, 및 Cr 변환 블록을 가질 수도 있다. TU 의 루마 변환 블록은 CU 의 루마 잔차 블록의 서브-블록일 수도 있다. Cb 변환 블록은 CU 의 Cb 잔차 블록의 서브-블록일 수도 있다. Cr 변환 블록은 CU 의 Cr 잔차 블록의 서브-블록일 수도 있다. 단색 픽처들 또는 3개의 별개의 칼라 평면들을 가지는 픽처들에서, TU 는 단일 변환 블록 및 변환 블록의 샘플들을 변환하는데 사용되는 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (20) 는 하나 이상의 변환들을 TU 의 변환 블록에 적용하여, TU 에 대한 계수 블록을 발생시킬 수도 있다. 예를 들어, 비디오 인코더 (20) 는 하나 이상의 변환들을 TU 의 루마 변환 블록에 적용하여, TU 에 대한 루마 계수 블록을 발생시킬 수도 있다. 계수 블록은 변환 계수들의 2차원 어레이일 수도 있다. 변환 계수는 스칼라 양일 수도 있다. 비디오 인코더 (20) 는 하나 이상의 변환들을 TU 의 Cb 변환 블록에 적용하여, TU 에 대한 Cb 계수 블록을 발생시킬 수도 있다. 비디오 인코더 (20) 는 하나 이상의 변환들을 TU 의 Cr 변환 블록에 적용하여, TU 에 대한 Cr 계수 블록을 발생시킬 수도 있다.
계수 블록 (예컨대, 루마 계수 블록, Cb 계수 블록, 또는 Cr 계수 블록) 을 발생시킨 후, 비디오 인코더 (20) 는 계수 블록을 양자화할 수도 있다. 양자화는 일반적으로 변환 계수들이 변환 계수들을 나타내는데 사용되는 데이터의 양을 가능한 한 감소시키도록 양자화되어 추가적인 압축을 제공하는 프로세스를 지칭한다. 비디오 인코더 (20) 가 계수 블록을 양자화한 후, 비디오 인코더 (20) 는 양자화된 변환 계수들을 나타내는 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 양자화된 변환 계수들을 나타내는 신택스 엘리먼트들에 관해 컨텍스트-적응 2진 산술 코딩 (CABAC) 을 수행할 수도 있다.
비디오 인코더 (20) 는 코딩된 픽처들 및 연관되는 데이터의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 출력할 수도 있다. 따라서, 비트스트림은 비디오 데이터의 인코딩된 표현을 포함한다. 비트스트림은 네트워크 추상화 계층 (NAL) 유닛들의 시퀀스를 포함할 수도 있다. NAL 유닛은 NAL 유닛에서의 데이터의 유형 및 그 데이터를 에뮬레이션 방지 비트들의 필요에 따라 산재된 RBSP (raw byte sequence payload) 의 형태로 포함하는 바이트들의 표시를 포함하는 신택스 구조이다. NAL 유닛들의 각각은 NAL 유닛 헤더를 포함하며 RBSP 를 캡슐화한다. NAL 유닛 헤더는 NAL 유닛 유형 코드를 나타내는 신택스 엘리먼트를 포함할 수도 있다. NAL 유닛의 NAL 유닛 헤더에 의해 명시된 NAL 유닛 유형 코드는 NAL 유닛의 유형을 나타낸다. RBSP 는 NAL 유닛 내에 캡슐화된 정수의 바이트들을 포함하는 신택스 구조일 수도 있다. 일부의 사례들에서, RBSP 는 제로 비트들을 포함한다.
상이한 유형들의 NAL 유닛들이 상이한 유형들의 RBSP들을 캡슐화할 수도 있다. 예를 들어, 상이한 유형들의 NAL 유닛은 비디오 파라미터 세트들 (VPS들), 시퀀스 파라미터 세트들 (SPS들), 픽처 파라미터 세트들 (PPS들), 코딩된 슬라이스들, 보충 강화 정보 (SEI) 등에 대해 상이한 RBSP들을 캡슐화할 수도 있다. (파라미터 세트들 및 SEI 메시지들에 대한 RBSP들과는 반대로) 비디오 코딩 데이터에 대한 RBSP들을 캡슐화하는 NAL 유닛들은 비디오 코딩 계층 (VCL) NAL 유닛들로서 지칭될 수도 있다. HEVC (즉, 비-멀티-계층 HEVC) 에서, 액세스 유닛은 디코딩 순서에서 연속하고 정확히 하나의 코딩된 픽처를 포함하는 NAL 유닛들의 세트일 수도 있다. 코딩된 픽처의 코딩된 슬라이스 NAL 유닛들에 더해서, 액세스 유닛은 또한 코딩된 픽처의 슬라이스들을 포함하지 않는 다른 NAL 유닛들을 포함할 수도 있다. 일부 예들에서, 액세스 유닛의 디코딩은 항상 디코딩된 픽처를 초래한다. 보충 향상 정보 (SEI) 는 VCL NAL 유닛들로부터의 코딩된 픽처들의 샘플들을 디코딩하는데 필요하지 않은 정보를 포함한다. SEI RBSP 는 하나 이상의 SEI 메시지들을 포함한다.
비디오 디코더 (30) 는 비디오 인코더 (20) 에 의해 발생되는 비트스트림을 수신할 수도 있다. 게다가, 비디오 디코더 (30) 는 비트스트림을 파싱하여, 비트스트림으로부터 신택스 엘리먼트들을 획득할 수도 있다. 비디오 디코더 (30) 는 비트스트림으로부터 획득된 신택스 엘리먼트들에 적어도 부분적으로 기초하여 비디오 데이터의 픽처들을 복원할 수도 있다. 비디오 데이터를 복원하는 프로세스는 일반적으로 비디오 인코더 (20) 에 의해 수행되는 프로세스와 반대일 수도 있다. 예를 들어, 비디오 디코더 (30) 는 현재의 CU 의 PU들에 대한 예측 블록들을 결정하기 위해 PU들의 모션 벡터들을 이용할 수도 있다. 게다가, 비디오 디코더 (30) 는 현재의 CU 의 TU들의 계수 블록들을 역양자화할 수도 있다. 비디오 디코더 (30) 는 계수 블록들에 관해 역변환들을 수행하여, 현재의 CU 의 TU들의 변환 블록들을 복원할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 PU들에 대한 예측 블록들의 샘플들을 현재의 CU 의 TU들의 변환 블록들의 대응하는 샘플들에 가산함으로써, 현재의 CU 의 코딩 블록들을 복원할 수도 있다. 픽처의 각각의 CU 에 대해 코딩 블록들을 복원함으로써, 비디오 디코더 (30) 는 그 픽처를 복원할 수도 있다.
본 개시물의 기법들은 MV-HEVC 및 3D-HEVC 를 포함한, 멀티-뷰 코딩 및/또는 3DV 표준들 및 사양들에 잠재적으로 적용가능하다. MV-HEVC 및 3D-HEVC 에서 정의된 것과 같은, 멀티-뷰 코딩에서, 상이한 뷰포인트들로부터의 동일한 장면의 다수의 뷰들이 존재할 수도 있다. 멀티-뷰 코딩 및 스케일러블 비디오 코딩의 상황에서, 용어 "액세스 유닛" 은 동일한 시간 인스턴스에 대응하는 픽처들의 세트를 지칭하기 위해 사용될 수도 있다. 일부의 사례들에서, 멀티-뷰 코딩 및 스케일러블 비디오 코딩의 상황에서, 액세스 유닛은 명시된 분류 규칙에 따라서 서로 연관되고 디코딩 순서로 연속되며 그리고 동일한 출력 시간과 연관된 모든 코딩된 픽처들의 VCL NAL 유닛들 및 그들의 연관된 비-VCL NAL 유닛들을 포함하는 NAL 유닛들의 세트를 포함할 수도 있다. 따라서, 비디오 데이터는 시간 경과에 따라 발생하는 액세스 유닛들의 시리즈로서 개념화될 수도 있다.
3D-HEVC 에서 정의된 바와 같은, 3DV 코딩에서, "뷰 성분" 은 단일 액세스 유닛에서의 뷰의 코딩된 표현일 수도 있다. 뷰 성분은 심도 뷰 성분 및 텍스쳐 뷰 성분을 포함할 수도 있다. "심도 뷰 성분은 단일 액세스 유닛에서의 뷰의 심도의 코딩된 표현일 수도 있다. 텍스쳐 뷰 성분은 단일 액세스 유닛에서의 뷰의 텍스쳐의 코딩된 표현일 수도 있다. 본 개시물에서, "뷰" 는 동일한 뷰 식별자와 연관되는 뷰 성분들의 시퀀스를 지칭할 수도 있다.
뷰의 픽처들의 세트 내 텍스쳐 뷰 성분 및 심도 뷰 성분은 서로에 대응하는 것으로 간주될 수도 있다. 예를 들어, 뷰의 픽처들의 세트 내 텍스쳐 뷰 성분은 뷰의 픽처들의 세트 내 심도 뷰 성분에 대응하는 것으로 간주되며, 반대로도 마찬가지이다 (즉, 심도 뷰 성분은 그 세트에서의 그의 텍스쳐 뷰 성분에 대응하며, 반대로도 마찬가지이다). 본 개시물에서 사용될 때, 심도 뷰 성분에 대응하는 텍스쳐 뷰 성분은 단일 액세스 유닛의 동일한 뷰의 부분인, 텍스쳐 뷰 성분 및 심도 뷰 성분으로서 간주될 수도 있다.
텍스쳐 뷰 성분은 디스플레이되는 실제 이미지 콘텐츠를 포함한다. 예를 들어, 텍스쳐 뷰 성분은 루마 (Y) 및 크로마 (Cb 및 Cr) 성분들을 포함할 수도 있다. 심도 뷰 성분은 그의 대응하는 텍스쳐 뷰 성분에서의 픽셀들의 상대적인 심도들을 나타낼 수도 있다. 일 예로서, 심도 뷰 성분은 단지 루마 값들만을 포함하는 그레이 스케일 이미지를 포함할 수도 있지만, 심도 뷰 성분에서의 루마 값들은 텍스쳐 뷰의 루마 성분에 의해 전달되는 픽셀 강도의 레벨과는 대조적으로, 픽셀 또는 픽셀들의 세트의 심도 레벨을 나타낼 수도 있다. 즉, 심도 뷰 성분은 임의의 이미지 콘텐츠를 전달하는 것이 아니라, 오히려 텍스쳐 뷰 성분에서의 픽셀들의 상대적인 심도들의 측정을 제공할 수도 있다. 심도를 식별하는데 오직 루마 값들 (예컨대, 강도 값들) 을 이용하는 심도 뷰 성분은 예시 목적들을 위해 제공되며, 한정하는 것으로 간주되어서는 안된다. 다른 예들에서, 임의의 기법이 텍스쳐 뷰 성분에서의 픽셀들의 상대적인 심도들을 나타내는데 이용될 수도 있다.
멀티-뷰 코딩 및 SVC 코딩에서, 비트스트림은 복수의 계층들을 가질 수도 있다. 멀티-뷰 코딩에서, 계층들 각각은 상이한 뷰에 대응할 수도 있다. 계층은 비디오 디코더 (예컨대, 비디오 디코더 (30)) 가 임의의 다른 계층에서의 픽처들에 대한 참조 없이 계층에서의 픽처들을 디코딩할 수 있으면, "기초 계층" 으로서 지칭될 수도 있다. 계층은 계층의 디코딩이 하나 이상의 다른 계층들에서의 픽처들의 디코딩에 의존하면, "비-기초 계층" 또는 "의존 계층" 으로서 지칭될 수도 있다. 비-베이스 계층들 중 하나에서의 픽처를 코딩할 때, (비디오 인코더 (20) 또는 비디오 디코더 (30) 와 같은) 비디오 코더는 그 픽처가 상이한 뷰에 있지만 비디오 코더가 현재 코딩하고 있는 픽처와 동일한 시간 인스턴스 (즉, 액세스 유닛) 내에 있으면, 픽처를 참조 픽처 리스트에 추가할 수도 있다. 다른 인터 예측 참조 픽처들과 같이, 비디오 코더는 뷰간 예측 참조 픽처를 참조 픽처 리스트의 임의의 위치에 삽입할 수도 있다.
SVC 에서, 기초 계층 이외의 계층들은 "향상 계층들" 로서 지칭될 수도 있으며, 비트스트림으로부터 디코딩되는 비디오 데이터의 시각적 품질을 향상시키는 정보를 제공할 수도 있다. SVC 는 공간 해상도, 신호-대-잡음비 (즉, 품질) 또는 시간 레이트를 향상시킬 수 있다. 스케일러블 비디오 코딩 (예컨대, SHVC) 에서, "계층 표현" 은 단일 액세스 유닛에서 공간 계층의 코딩된 표현일 수도 있다. 설명의 용이성을 위해, 본 개시물은 뷰 성분들 및/또는 계층 표현들을 "뷰 성분들/계층 표현들" 또는 단순히 "픽처들" 로서 지칭할 수도 있다.
계층들을 구현하기 위해, NAL 유닛들의 헤더들은 "nuh_layer_id" 신택스 엘리먼트들로서 또한 지칭될 수도 있는, nuh_reserved_zero_6bits 신택스 엘리먼트들를 포함할 수도 있다. 상이한 값들을 명시하는 nuh_reserved_zero_6bit 신택스 엘리먼트들을 가지는 NAL 유닛들은 비트스트림의 상이한 계층들에 속한다. 따라서, 멀티-뷰 코딩 (즉, MV-HEVC), 3DV (즉, 3D-HEVC), 또는 SVC (즉, SHVC) 에서, NAL 유닛의 nuh_reserved_zero_6bits 신택스 엘리먼트는 NAL 유닛의 계층 식별자 (즉, 계층 ID) 를 명시한다. 일부 예들에서, NAL 유닛의 nuh_reserved_zero_6bits 신택스 엘리먼트는, NAL 유닛이 멀티-뷰 코딩 (예컨대, MV-HEVC), 3DV 코딩 (예컨대, 3D-HEVC), 또는 SVC (예컨대, SHVC) 에서의 기초 계층에 관련되면 0 과 동일하다. 비트스트림의 기초 계층에서의 데이터는 비트스트림의 임의의 다른 계층에서의 데이터에 대한 참조 없이 디코딩될 수도 있다. NAL 유닛이 멀티-뷰 코딩, 3DV, 또는 SVC 에서의 기초 계층에 관련되지 않으면, 그 신택스 엘리먼트의 nuh_reserved_zero_6bits 신택스 엘리먼트는 비-제로 값을 가질 수도 있다. 위에서 나타낸 바와 같이, 멀티-뷰 코딩 및 3DV 코딩에서, 비트스트림의 상이한 계층들은 상이한 뷰들에 대응할 수도 있다.
더욱이, 계층 내 일부 뷰 성분들/계층 표현들은 동일한 계층 내 다른 뷰 성분들/계층 표현들에 대한 참조 없이 디코딩될 수도 있다. 따라서, 계층의 어떤 뷰 성분들/계층 표현들의 데이터를 캡슐화하는 NAL 유닛들은 계층에서의 다른 뷰 성분들/계층 표현들의 디코딩성에 영향을 미치지 않고 비트스트림으로부터 제거될 수도 있다. 이러한 뷰 성분들/계층 표현들의 데이터를 캡슐화하는 NAL 유닛들을 제거하는 것은 비트스트림의 프레임 레이트를 감소시킬 수도 있다. 계층 내 다른 뷰 성분들/계층 표현들에 대한 참조 없이 디코딩될 수도 있는 계층 내 뷰 성분들/계층 표현들의 서브세트는 본원에서 "서브-계층" 또는 "시간 서브-계층" 으로서 지칭될 수도 있다.
NAL 유닛들은 NAL 유닛들의 시간 식별자들 (즉, TemporalIds) 을 명시하는 temporal_id 신택스 엘리먼트들을 포함할 수도 있다. NAL 유닛의 시간 식별자는 NAL 유닛이 속하는 서브-계층을 식별한다. 따라서, 비트스트림의 각각의 서브-계층은 상이한 시간 식별자를 가질 수도 있다. 일반적으로, 제 1 NAL 유닛의 시간 식별자가 제 2 NAL 유닛의 시간 식별자 미만이면, 제 1 NAL 유닛에 의해 캡슐화되는 데이터는 제 2 NAL 유닛에 의해 캡슐화되는 데이터에 대한 참조없이 디코딩될 수도 있다.
위에서 간략히 나타낸 바와 같이, NAL 유닛들은 비디오 파라미터 세트들 (VPS들), 시퀀스 파라미터 세트들 (SPS들), 픽처 파라미터 세트들 (PPS들) 에 대해 RBSP들을 캡슐화할 수도 있다. VPS 는 0개 이상의 전체 코딩된 비디오 시퀀스들 (CVS들) 에 적용하는 신택스 엘리먼트들을 포함하는 신택스 구조이다. SPS 는 또한 0개 이상의 전체 CVS들에 적용하는 신택스 엘리먼트들을 포함하는 신택스 구조이다. SPS 는 SPS 가 활성일 때 활성인 VPS 를 식별하는 신택스 엘리먼트를 포함할 수도 있다. 따라서, VPS 의 신택스 엘리먼트들은 일반적으로 SPS 의 신택스 엘리먼트들보다 더 많이 적용가능할 수도 있다. PPS 는 0개 이상의 코딩된 픽처들에 적용하는 신택스 엘리먼트들을 포함하는 신택스 구조이다. PPS 는 PPS 가 활성일 때 활성인 SPS 를 식별하는 신택스 엘리먼트를 포함할 수도 있다. 슬라이스의 슬라이스 헤더는 슬라이스가 코딩되고 있을 때 활성인 PPS 를 나타내는 신택스 엘리먼트를 포함할 수도 있다.
VPS들, SPS들, 및 PPS들과 같은, 파라미터 세트들은 HEVC 표준에 대한 확장판들에 특유한 확장 신택스 구조들을 포함할 수도 있다. 예를 들어, 파라미터 세트들은 SHVC, MV-HEVC, 3D-HEVC 등에 특유한 확장판들을 포함할 수도 있다. 확장판 신택스 구조들은 HEVC 표준에 대한 확장판들에 적용가능한 신택스 엘리먼트들을 포함할 수도 있다. 아래 테이블 1 은 SHVC WD6 및 MV-HEVC WD8 에서 정의된 VPS 확장판의 일부를 나타낸다.
테이블 1
Figure pct00001
Figure pct00002
상기 테이블 1 의 예, 및 본 개시물의 다른 신택스 테이블들에서, 유형 디스크립터 ue(v) 를 갖는 신택스 엘리먼트들은 좌측 비트 우선 (left bit first) 으로 0차 지수 Golomb (Exp-Golomb) 코딩을 이용하여 인코딩되는 가변-길이 무부호 정수들일 수도 있다. 테이블 1 의 예 및 다음 테이블들에서, 형태 u(n) 의 디스크립터들을 갖는 신택스 엘리먼트들은, 길이 n 의 무부호 (unsigned) 값들이며, 여기서 n 은 비-음의 정수이다.
테이블 1 에 정의된 VPS 확장판의 일부는 하나 이상의 출력 계층 세트들을 정의하는 신택스 엘리먼트들을 포함한다. 출력 계층 세트는 VPS 에 명시된 계층 세트들 중 하나의 계층들로 이루어지는 계층들의 세트이며, 계층들의 세트에서 하나 이상의 계층들은 출력 계층들인 것으로 표시된다. SHVC WD6 에 정의된 바와 같이, 출력 계층은 TargetOptLayerSetIdx 가 출력 계층 세트의 인덱스와 동일할 때 출력되는 출력 계층 세트의 계층이다. TargetOptLayerSetIdx 는 사용중인 동작 지점 및 목표 출력 계층들의 세트의 계층 식별자 리스트를 명시한다. 동작 지점은 비트스트림에서 NAL 유닛들의 서브세트 (예컨대, 적절한 서브세트) 를 지칭할 수도 있다. 더욱이, SHVC WD6 에 정의된 바와 같이, 목표 출력 계층은 출력될 계층이고, TargetOptLayerSetIdx 가 olsIdx 와 동일하도록 인덱스 olsIdx 를 가지는 출력 계층 세트의 출력 계층들 중 하나이다. 따라서, 일반적으로, 목표 출력 계층 세트는 출력 계층 세트들 중 특정 하나일 수도 있다. 목표 출력 계층 세트의 각각의 계층이 출력된다 (예컨대, 비디오 디코더의 출력으로서 제공된다). 일부의 사례들에서, 비디오 디코더 (30) 는 비트스트림의 특정 계층을 디코딩할 수도 있지만, 특정 계층의 디코딩된 비디오 데이터를 출력하지 않는다. 대신, 비디오 디코더 (30) 는 목표 출력 계층 세트 내에 있는 계층들의 비디오 데이터를 디코딩하기 위해 특정 계층의 디코딩된 비디오 데이터를 이용할 수도 있다.
게다가, 테이블 1 에 정의된 VPS 확장판의 일부는 하나 이상의 프로파일, 티어, 및 레벨 (PTL) 신택스 구조들을 정의하는 신택스 엘리먼트들을 포함한다. 각각의 PTL 신택스 구조는 각각의 코딩된 비디오 시퀀스에 대한 프로파일, 티어, 및 레벨을 명시한다. 테이블 1 에 또한 나타낸 바와 같이, VPS 확장판은 개개의 출력 계층 세트들에 적용가능한 PTL 신택스 구조들을 식별하는 profile_level_tier_idx 신택스 엘리먼트들을 포함한다. 이러한 방법으로, VPS 확장판은 출력 계층 세트들의 각각에 대한 PTL 정보를 명시한다.
일반적으로, "프로파일" 은 비디오 코딩 표준 (예컨대, HEVC 또는 그의 확장판) 에 존재하는 특징들 및 툴들의 서브세트이다. 주어진 프로파일에 의해 부과되는 경계 내에서, 디코딩된 픽처들의 명시된 사이즈와 같은, 비트스트림에서의 신택스 엘리먼트들에 의해 취해진 값들에 따라서 인코더들 및 디코더들의 성능의 매우 큰 변동을 요구하는 것이 여전히 가능하다. 많은 애플리케이션들에서, 특정 프로파일 내에서 신택스의 모든 가상적인 사용들을 처리하는 것이 가능한 디코더를 구현하는 것은 실현가능하지도 경제적이지도 않을 수도 있다. 이 문제를 처리하기 위해, "티어들" 및 "레벨들" 이 각각의 프로파일 내에 명시된다.
일부 예들에서, 레벨은 비디오 코딩 표준 (예컨대, HEVC 또는 그의 확장판) 의 신택스 엘리먼트들 및 변수들에 의해 취해질 수도 있는 값들에 대한 정의된 제약들의 세트이다. 더욱이, 일부 예들에서, 티어는 비트스트림에서의 신택스 엘리먼트들의 값들 또는 변수들의 값들에 가해지는 명시된 레벨 제약들의 카테고리이며, 여기서, 레벨 제약들은 티어 내에 네스트되며, 어떤 티어 및 레벨을 따르는 디코더는 그 레벨 또는 그 아래의 임의의 레벨의 동일한 티어 또는 보다 낮은 티어를 따르는 모든 비트스트림들을 디코딩가능할 것이다. 따라서, 티어의 레벨은 비트스트림에서의 신택스 엘리먼트들의 값들 또는 변수들의 값들에 가해지는 명시된 제약들의 세트이다. 이들 제약들은 값들에 대한 단순한 한계들일 수도 있다. 대안적으로, 제약들은 값들의 산술적 조합들 (예컨대, 픽처 폭 곱하기 픽처 높이 곱하기 초 당 디코딩된 픽처들의 개수) 에 관한 제약들의 형태를 취할 수도 있다. 보다 낮은 티어에 대해 명시된 레벨은 보다 높은 티어에 대해 명시된 레벨보다 더 많이 제약된다. 일부 상황들에서, 용어 "레벨" 은 또한 스케일링 전 변환 계수의 값을 지칭하기 위해 사용될 수도 있다.
상기 테이블 1 에 또한 나타낸 바와 같이, VPS 확장판은 vps_vui( ) 신택스 구조를 포함할 수도 있다. vps_vui( ) 신택스 구조는 비디오 사용성 정보 (VUI) 파라미터들을 포함한다. SHVC WD6 의 패러그라프 F.7.3.2.1.4 는 vps_vui( ) 신택스 구조의 신택스를 기술한다. HEVC 초안 사양에 명시된 바와 같이, VUI 파라미터들은 디코딩 프로세스에 의해 루마 또는 크로마 샘플들을 구성하는데 요구되지 않는다. 적합 (Conforming) 디코더들은 이 사양에 대한 출력 순서 적합성 (출력 순서 적합성의 사양에 대해 부속서 C 참조) 을 위해 이 정보를 프로세싱하도록 요구되지 않는다. 일부 VUI 파라미터들은 비트스트림 적합성을 체크하기 위해 그리고 출력 타이밍 디코더 적합성을 위해 요구된다. 일부의 사례들에서, VUI 파라미터들은 또한 SPS들에 명시될 수도 있다.
vps_vui( ) 신택스 구조는 vps_vui_bsp_hrd_parameters( ) 신택스 구조를 포함할 수도 있다. vps_vui_bsp_hrd_parameters( ) 신택스 구조는 비트스트림 파티션들에 대한 가상 참조 디코더 (HRD) 파라미터들을 명시하는 신택스 엘리먼트들을 포함한다. SHVC WD6 에서 정의된 바와 같이, 비트스트림 파티션은 파티셔닝에 따른 비트스트림의 서브세트인, NAL 유닛 스트림 또는 바이트 스트림의 형태인 비트들의 시퀀스이다.
적어도 일부 비디오 코딩 표준들은 비디오 버퍼링 모델들을 명시한다. H.264/AVC 및 HEVC 에서, 버퍼링 모델은 "가상 참조 디코더" 또는 "HRD" 로서 지칭된다. HEVC 초안 사양에서, HRD 는 부속서 C 에 설명된다. HRD 는 데이터가 디코딩을 위해 버퍼링되는 방법 및 디코딩된 데이터가 출력을 위해 버퍼링되는 방법을 기술한다. 예를 들어, HRD 는 코딩된 픽처 버퍼 ("CPB"), 디코딩된 픽처 버퍼 ("DPB"), 및 비디오 디코딩 프로세스의 동작을 기술한다. CPB 는 액세스 유닛들을 HRD 에 의해 명시된 디코딩 순서로 포함하는 선입선출 버퍼이다. DPB 는 디코딩된 픽처들을 HRD 에 의해 명시된 참조, 출력 재순서화, 또는 출력 지연을 위해 보유하는 버퍼이다. CPB 및 DPB 의 거동들은 수학적으로 명시될 수도 있다. HRD 는 타이밍, 버퍼 사이즈들, 및 비트 레이트들에 관한 제약들을 직접 부과할 수도 있다. 더욱이, HRD 는 여러 비트스트림 특성들 및 통계치들에 관한 제약들을 간접적으로 가할 수도 있다.
H.264/AVC 및 HEVC 에서, 비트스트림 적합성 및 디코더 적합성은 HRD 사양의 부분들로서 명시된다. 다시 말해서, HRD 모델은 비트스트림이 표준에 따르는지 여부를 결정하기 위한 테스트들 및 디코더가 표준에 따르는지 여부를 결정하기 위한 테스트들을 명시한다. HRD 가 어떤 종류의 디코더로서 불려지더라도, 비디오 인코더들은 일반적으로 비트스트림 적합성을 보장하기 위해 HRD 를 사용하는 반면, 비디오 디코더들은 일반적으로 HRD 를 필요로 하지 않는다.
H.264/AVC 및 HEVC 양쪽은 비트스트림 또는 HRD 적합성의 2개의 유형들, 즉 유형 I 및 유형 II 를 명시한다. 유형 I 비트스트림은 비트스트림에서의 모든 액세스 유닛들에 대해 단지 VCL NAL 유닛들 및 필러 데이터 NAL 유닛만을 포함하는 NAL 유닛 스트림이다. 적어도 일부 예들에서, NAL 유닛 스트림은 NAL 유닛들의 시퀀스이다. 유형 II 비트스트림은 비트스트림에서의 모든 액세스 유닛들에 대한 VCL NAL 유닛들 및 필러 데이터 NAL 유닛들에 더해서, 다음 중 적어도 하나를 포함하는 NAL 유닛 스트림이다: 필러 데이터 NAL 유닛들 이외의 추가적인 비-VCL NAL 유닛들; 및 NAL 유닛 스트림으로부터 바이트 스트림을 형성하는 모든 leading_zero_8bits, zero_byte, start_coded_prefix_one_3bytes, 및 trailing_zero_8bits 신택스 엘리먼트들.
비트스트림이 비디오 코딩 표준에 따르는지 여부를 결정하는 비트스트림 적합성 테스트를 디바이스가 수행할 때, 디바이스는 비트스트림의 동작 지점을 선택할 수도 있다. 디바이스는 그후 선택된 동작 지점에 적용가능한 HRD 파라미터들의 세트를 결정할 수도 있다. 디바이스는 선택된 동작 지점에 적용가능한 HRD 파라미터들의 세트를 이용하여 HRD 의 거동을 구성할 수도 있다. 좀더 자세하게 설명하면, 디바이스는 적용가능한 HRD 파라미터들의 세트를 이용하여 가상 스트림 스케쥴러 (HSS), CPB, 디코딩 프로세스, DPB 등과 같은, HRD 의 특정 구성요소들의 거동들을 구성할 수도 있다. 그 후에, HSS 는 특정 스케쥴에 따라서 비트스트림의 코딩된 비디오 데이터를 HRD 의 CPB 에 투입할 수도 있다. 더욱이, 디바이스는 CPB 에서의 코딩된 비디오 데이터를 디코딩하는 디코딩 프로세스를 호출할 수도 있다. 디코딩 프로세스는 디코딩된 픽처들을 DPB 로 출력할 수도 있다. 디바이스가 HRD 를 통해서 데이터를 이동시킴에 따라서, 디바이스는 제약들의 특정 세트가 만족된 상태로 유지하는지 여부를 결정할 수도 있다. 예를 들어, 디바이스는 HRD 가 선택된 동작 지점의 동작 지점을 디코딩하고 있는 동안 오버플로우 또는 언더플로우 조건이 CPB 또는 DPB 에서 발생하는지 여부를 결정할 수도 있다. 디바이스는 이와 같이 비트스트림의 각각의 동작 지점을 선택하여 프로세싱할 수도 있다. 비트스트림의 동작 지점이 제약들이 위반되게 하지 않으면, 디바이스는 비트스트림이 비디오 코딩 표준에 따른다고 결정할 수도 있다.
H.264/AVC 및 HEVC 양쪽은 디코더 적합성의 2개의 유형들, 즉 출력 타이밍 디코더 적합성 및 출력 순서 디코더 적합성을 명시한다. 특정 프로파일, 티어 및 레벨에 대한 적합성을 필요로 하는 디코더는 HEVC 와 같은, 비디오 코딩 표준의 비트스트림 적합성 요건들에 따르는 모든 비트스트림들을 성공적으로 디코딩할 수 있다.
테스트 중인 디코더 (DUT) 가 비디오 코딩 표준에 따르는지 여부를 결정하기 위해 디코더 적합성 테스트를 디바이스가 수행할 때, 디바이스는 HRD 및 DUT 양쪽에게, 비디오 코딩 표준에 따르는 비트스트림을 제공할 수도 있다. HRD 는 비트스트림을 비트스트림 적합성 테스트에 관해 위에서 설명된 방법으로 프로세싱할 수도 있다. 디바이스는 DUT 에 의해 출력된 디코딩된 픽처들의 순서가 HRD 에 의해 출력된 디코딩된 픽처들의 순서와 매칭하면 DUT 가 비디오 코딩 표준에 따른다고 결정할 수도 있다. 더욱이, 디바이스는 DUT 가 디코딩된 픽처들을 출력하는 타이밍이 HRD 가 디코딩된 픽처들을 출력하는 타이밍과 매칭하면 DUT 가 비디오 코딩 표준에 따른다고 결정할 수도 있다.
H.264/AVC 및 HEVC HRD 모델들에서, 디코딩 또는 CPB 제거는 액세스 유닛 기반일 수도 있다. 즉, HRD 는 한꺼번에 완전한 액세스 유닛들을 디코딩하고 CPB 로부터 완전한 액세스 유닛들을 제거하는 것으로 가정된다. 더욱이, H.264/AVC 및 HEVC HRD 모델들에서, 픽처 디코딩이 순시적인 (instantaneous) 것으로 가정된다. 비디오 인코더 (20) 는 액세스 유닛들의 디코딩을 시작하기 위해, 픽처 타이밍 SEI 메시지들에서, 디코딩 시간들을 시그널링할 수도 있다. 실제 애플리케이션들에서, 따르는 비디오 디코더가 액세스 유닛들의 디코딩을 시작하기 위해 시그널링되는 디코딩 시간들을 엄격히 따르면, 특정 디코딩된 픽처를 출력하는 가장빠른 가능한 시간은 그 특정 픽처의 디코딩 시간 플러스 그 특정 픽처를 디코딩하는데 요구되는 시간과 동일하다. 그러나, 현실 세계에서, 픽처를 디코딩하는데 요구되는 시간은 제로와 동일할 수 없다.
HRD 파라미터들은 HRD 의 여러 양태들을 제어할 수도 있다. 다시 말해서, HRD 는 HRD 파라미터들에 의존할 수도 있다. HRD 파라미터들은 초기 CPB 제거 지연, CPB 사이즈, 비트 레이트, 초기 DPB 출력 지연, 및 DPB 사이즈를 포함할 수도 있다. 비디오 인코더 (20) 는 이들 HRD 파라미터들을 비디오 파라미터 세트 (VPS) 및/또는 시퀀스 파라미터 세트 (SPS) 에 명시된 hrd_parameters( ) 신택스 구조에서 시그널링할 수도 있다. 개개의 VPS들 및/또는 SPS들은 상이한 HRD 파라미터들의 세트들에 대한 다수의 hrd_parameters( ) 신택스 구조들을 포함할 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 HRD 파라미터들을 버퍼링 기간 SEI 메시지들 또는 픽처 타이밍 SEI 메시지들에서 시그널링할 수도 있다.
비트스트림의 동작 지점은 계층 식별자들의 세트 (즉, nuh_layer_id 값들로서 또한 알려져 있는, nuh_reserved_zero_6bits 값들의 세트) 및 시간 식별자와 연관된다. 동작 지점은 그 동작 지점과 연관되는 각각의 NAL 유닛을 포함할 수도 있다. 동작 지점은 원래 비트스트림과는 상이한 프레임 레이트 및/또는 비트 레이트를 가질 수도 있다. 이것은 동작 지점이 일부 픽처들 및/또는 원래 비트스트림의 데이터 중 일부를 포함하지 않을 수도 있기 때문이다. 그러므로, 비디오 디코더 (30) 가 원래 비트스트림을 프로세싱할 때 CPB 및/또는 DPB 로부터 특정 레이트에서 데이터를 제거한다면 그리고 비디오 디코더 (30) 가 동작 지점을 프로세싱할 때 CPB 및/또는 DPB 로부터 동일한 레이트에서 데이터를 제거한다면, 비디오 디코더 (30) 는 CPB 및/또는 DPB 로부터 너무 많거나 또는 너무 적은 데이터를 제거할 수도 있다. 따라서, 비디오 인코더 (20) 는 상이한 동작 지점들에 대한 상이한 HRD 파라미터들의 세트들을 시그널링할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 VPS 에, 상이한 동작 지점들에 대한 HRD 파라미터들을 포함하는 다수의 hrd_parameters( ) 신택스 구조들을 포함시킬 수도 있다.
아래 테이블 2 는 HEVC 에서의 hrd_parameters( ) 신택스 구조에 대한 예시적인 신택스이다.
테이블 2 - HRD 파라미터들
Figure pct00003
Figure pct00004
일부 예들에서, 비디오 디코더 (30) 는 복수의 프로세싱 코어들을 포함한다. 프로세싱 코어들의 각각은 ASIC 또는 마이크로프로세서와 같은 독립적인 프로세싱 유닛을 포함한다. 프로세싱 코어들의 각각은 단일-계층 디코더를 구현할 수도 있다. 단일-계층 디코더는 비트스트림의 단일 계층에 속하는 NAL 유닛들을 디코딩가능한 비디오 코더이다. 이러한 예들에서, 비디오 디코더 (30) 가 다수의 프로세싱 코어들, 따라서 다수의 단일-계층 디코더들을 포함하기 때문에, 비디오 디코더 (30) 는 다수의 계층들을 병렬로 디코딩가능할 수도 있다. 일부의 사례들에서, 비디오 디코더 (30) 의 개개의 하드웨어 코어는 하나 보다 많은 계층을 디코딩가능할 수도 있다.
상이한 프로세싱 코어들은 상이한 능력들을 가질 수도 있다. 예를 들어, 상이한 프로세싱 코어들은 상이한 프로파일들, 티어들, 또는 레벨들에 속하는 비디오 데이터를 디코딩가능할 수도 있다. 예를 들어, 비디오 디코더 (30) 의 제 1 프로세싱 코어는 제 1 레벨에 속하지만 제 2 레벨에는 속하지 않는 비디오 데이터를 프로세싱가능할 수도 있다. 이 예에서, 비디오 디코더 (30) 의 제 2 프로세싱 코어는 제 1 레벨 및 제 2 레벨에 속하는 비디오 데이터를 프로세싱가능할 수도 있다. 일반적으로, 더 높은 프로파일들, 티어들, 및 레벨들에 속하는 비디오 데이터를 디코딩하는 것이 가능한 프로세싱 코어들은 단지 보다 낮은 프로파일들, 티어들, 및 레벨들에 속하는 비디오 데이터를 디코딩가능한 프로세싱 코어들보다 더 복잡하며 따라서 더 비싸다. 따라서, 비디오 디코더 (30) 의 제조업자는 원하는 태스크를 처리하기에 알맞은 최저 능력들을 가지는 프로세싱 코어들을 비디오 디코더 (30) 에 포함시키기로 선택할 수도 있다.
ITU-T SG 16 WP 3 와 ISO/IEC JTC 1/SC 29/WG 11 의 JCT-VC (Joint Collaborative Team on Video Coding) 17차 회의: 2014년 3월 27일 - 4월 4일, 스페인, 발렌시아, Wang 등, "MV-HEVC/SHVC HLS: On level definition", 문서 번호 JCTVC-Q0145 (이하, "JCTVC-Q0145") 는 SHVC 에서의 레벨들 정의들에 관련된 여러 문제들을 기술한다.
첫번째로, 720p 해상도의 4 개보다 많은 신호-대-잡음비 (SNR) 계층들 (또는, 동등한 개수의 루마 픽셀들, 예컨대, 결합된 공간 및 SNR 계층들을 가지는 더 많은 계층들) 이 요구되면, 레벨 5 이상이 사용되어야 할 것이다. 그 결과, CtbSizeY 의 값은 (일반적인 한계들의 아이템 e 에 대해) 32 또는 64 와 동일해야 한다. 720p 이하와 같은 해상도에 대해, 이 제한 사항은 16x16 과 같은 더 작은 코딩 트리 블록 사이즈들의 사용을 허용하지 않고 따라서 차선의 코딩 효율을 초래할 수 있다.
두번째로, SHVC 디코더가 HEVC 레벨 3.1 디코더들의 4 개의 코어들로 이루어지는 방법으로 구현되고 그리고 720p 의 4 개의 SNR 계층들을 디코딩가능하면, 현재의 레벨 정의에 따라서, 레벨 4 이상을 따른다고 말해야 할 것이다. 그 결과, 디코더는 임의의 레벨 4 비트스트림들을 디코딩가능할 필요가 있을 수도 있다. 그러나, 단지 하이-레벨 신택스 변경들에 의해서는 (즉, 하드웨어 코어들에 대한 변경들 없이), 이러한 디코더는 1080p 해상도의 2 개의 SNR 계층들을 가지는 SHVC 레벨 4 비트스트림을 디코딩할 수 없을 것이다.
세번째로, SHVC 디코더가 다수의 기존 HEVC 디코더 코어들을 재사용함으로써 구현되지 않고 1080p 의 단일-계층 HEVC 비트스트림 및 720p 의 2-계층 SHVC 비트스트림 양쪽을 디코딩할 수 있는 방식으로 구현되면, 현재의 레벨 정의에 따라서 레벨 3.1 로서 라벨링될 것이다. 그러나, 그때는 다른 능력의 표현이 상실된다.
네번째로, SHVC 디코더가 720p 의 4 개의 SNR 계층들을 디코딩가능하도록 HEVC 3.1 디코더들의 4 개의 코어들로 이루어지는 방식으로 구현되면, 현재의 레벨 정의에 따라서, 레벨 4 이상을 따른다고 말해야 할 것이다. 그 결과, 각각의 향상-계층 픽처는 3 개 보다 많은 타일 로우들 및 3 개보다 많은 타일 칼럼들, 예컨대 5 개의 타일 로우들 및 5 개의 타일 칼럼들을 가질 수 있으며, 각각의 타일은 256 개의 루마 샘플들의 폭 및 144 개의 루마 샘플들의 높이를 갖는다. 그러나, 이것은 레벨 3.1 한계들을 넘을 것이며 그 결과 향상 계층들을 디코딩하는 디코더 코어들은 문제점들을 가질 것이다.
다섯번째로, HEVC 초안 사양의 하위 조항 A.4.1 에서의 모든 아이템들은 각각의 계층에 적용되도록 현재 명시되어 있다. 그러나, 이들 아이템들 중 일부는 각각의 계층에 직접 적용불가능하다. DPB 사이즈 상의 아이템 d 에 대해, SPS 신택스 엘리먼트는 향상 계층들에 대해 적용불가능하다. 또한, SHVC WD6 에서의 DPB 는 공유된-서브-DPB 설계이며, 따라서 아이템 d 가 각각의 계층에 직접 적용될 수 없다. CPB 사이즈 상의 아이템들 h 및 i 에 있어, 비트스트림-특정 CPB 동작들에 대해, 파라미터가 각각의 계층에 적용될 수 없다.
여섯번째로, (HEVC 초안 사양의 하위조항 A.4.1 에서의 아이템들 h 및 i 에 의한) CPB 사이즈 상의 비트스트림-특정 제한 사항들이 요구된다. 그러나, HEVC 초안 사양의 하위 조항 A.4.1 에서의 아이템들 h 및 i 는, 직접 적용되면, 단일-계층 비트스트림들에 대한 동일한 CPB 사이즈 한계가 또한 멀티-계층 비트스트림들에 대한 한계가 될 것이기 때문에, 비트스트림 레벨 상에 직접 적용될 수 없다. 이것은 계층들의 수에 대해 스케일링되지 않으며 많은 계층들이 존재할 때 단지 낮은 픽처 품질을 허용할 것이다.
일곱번째로, HEVC 초안 사양의 하위 조항 A.4.2 에서의 아이템들 b, c, d, g, h, i, 및 j 에 의한 제한 사항들은 단지 계층-특정적이도록 현재 명시되어 있다. 그러나, 이들 아이템들에 의한 비트스트림-특정 제한 사항은, 그들의 계층-특정 상대 (counterpart) 들이 명시되는지 여부에 관계없이, 명시되어야 한다.
JVTVC-Q0145 는 상기 이슈들을 해결하기 위해 레벨들 및 디코더 능력들 뿐만 아니라 다른 변경들을 정의하기 위한 접근법을 제안하였다. JCTVC-Q0145 에서의 설계는 적어도 다음 문제들과 연관된다. 첫번째로, 그 설계는 하드웨어 코어들을 변경함이 없이 (예컨대, 하드웨어 코어들의 능력들을 수정함이 없이) 다수의 HEVC 단일-계층 디코더들에 기초하여 각각 구축된 SHVC/MV-HEVC 디코더들에 대해 차선이며, 여기서, 다수의 HEVC 단일-계층 디코더들은 상이한 능력들, 예컨대 상이한 프로파일들, 티어들, 또는 레벨들을 갖는다. 두번째로, 레벨들이 제한 사항들의 측면에서 정의될 수도 있다. MV-HEVC WD8 및 SHVC WD6 은 비트스트림을 디코딩할 때 특정 값들을 갖거나 또는 갖지 않는 신택스 엘리먼트들 또는 변수들의 측면에서 이들 제한 사항들 중 많은 것들을 정의한다. 다시 말해서, 레벨 제한 사항들 중 일부 (예컨대, 비트 레이트 및 샘플 레이트) 가 비트스트림-특정인 것으로 명시된다. 그러나, 하드웨어 코어를 변경함이 없이, 하나의 HEVC 단일-계층 디코더가, SHVC/MV-HEVC 디코더의 부분이 되는 것을 가능하게 하고 계층들 (즉, 출력 계층 세트의 모든 계층들인 것은 아닌, 하나 이상의 계층들) 의 서브세트를 디코딩하는 것을 가능하게 하기 위해, 이러한 레벨 제한 사항들은 계층들의 서브세트에 특정적일 필요가 있을 수도 있다.
본 개시물의 여러 기법들에 따른 여러 피쳐들의 개관이 아래에 제공된다. 본 개시물의 하나 이상의 예들에 따른 일부 상세한 구현예들이 본 개시물의 이후의 섹션들에 제공된다. 아래에서 언급되는 피쳐들 중 일부가 독립적으로 적용될 수도 있으며, 아래에서 언급되는 피쳐들 중 일부가 당업자에 의해 주지되는 바와 같이 조합하여 적용될 수도 있다.
본 개시물의 하나의 예시적인 기법은 각각의 출력 계층 세트에 대한 파티션들로의 계층들의 하나 이상의 파티셔닝 방식들의 시그널링에 대해 제공하며, 여기서, 각각의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온을 갖는 분리된 파티션들의 세트를 포함하며 각각의 파티션은 하나 이상의 계층들을 포함한다. 다시 말해서, 출력 계층의 각각의 파티셔닝 방식은 출력 계층 세트의 계층들을 비-중첩하는 파티션들로 분할하는 상이한 방법을 명시한다. 일부 예들에서, 파티션들은 계층 세트들 대신, 출력 계층 세트들과 연관된다.
일부 예들에서, 파티셔닝 방식 및 파티션 유닛은 다음과 같이 정의된다: 출력 계층 세트는 하나 이상의 파티셔닝 방식들을 가질 수도 있다. 출력 계층 세트의 파티셔닝 방식은 출력 계층 세트에서의 계층들을 하나 이상의 파티션들로 분할한다. 출력 계층 세트에 있는 각각의 계층은 파티셔닝 방식에서 정확히 하나의 파티션에 속해야 한다.
따라서, 일 예에서, 비디오 인코더 (20) 는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 발생시킨다. 비트스트림을 발생하는 것의 일부로서, 비디오 인코더 (20) 는 비트스트림에, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 포함시킨다. 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해, 개개의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온을 갖는 분리된 파티션들의 개개의 세트를 명시한다. 이 예에서, 분리된 파티션들의 개개의 세트의 각각의 개개의 파티션은 하나 이상의 계층들을 포함하며, 출력 계층 세트는 복수의 계층들의 모든 계층들 또는 복수의 계층들의 적절한 서브세트로 이루어진다. 게다가, 비디오 인코더 (20) 는 비트스트림을 출력한다.
유사한 예에서, 비디오 디코더 (30) 는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩한다. 이 예에서, 비트스트림은 복수의 계층들을 포함한다. 이 예에서 비트스트림을 디코딩하는 것의 일부로서, 비디오 디코더 (30) 는 비트스트림으로부터, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 획득한다. 일부 예들에서, 비디오 디코더 (30) 는 복수의 하드웨어 코어들에서의 상이한 프로세싱 코어들을 이용하여 특정 파티셔닝 방식의 파티션들의 각각을 디코딩하며, 특정 파티셔닝 방식은 하나 이상의 파티셔닝 방식들 중 하나이다.
더욱이, 일부 예들에서, 비디오 인코더 (20) 는 비트스트림에, 복수의 출력 계층 세트들을 표시하는 신택스 엘리먼트들을 포함시킬 수도 있다. 복수의 출력 계층 세트들의 각각의 개개의 출력 계층 세트에 대해, 비디오 인코더 (20) 는 비트스트림에, 개개의 출력 계층 세트에 대한 하나 이상의 파티셔닝 방식들을 표시하는 신택스 엘리먼트들을 포함시킬 수도 있다. 유사한 예에서, 비디오 디코더 (30) 는 비트스트림으로부터, 복수의 출력 계층 세트들을 표시하는 신택스 엘리먼트들을 획득할 수도 있으며, 복수의 출력 계층들 세트들은 제 1 출력 계층 세트를 포함한다. 이 예에서, 복수의 출력 계층 세트들의 각각의 개개의 출력 계층 세트에 대해, 비디오 디코더 (30) 는 비트스트림으로부터, 개개의 출력 계층 세트에 대한 하나 이상의 파티셔닝 방식들을 표시하는 신택스 엘리먼트들을 획득할 수도 있다.
본 개시물의 일부 예들에 따르면, 용어들 "파티셔닝 방식" 및 "파티션 유닛" 은 다음 정의들을 갖는다:
파티셔닝 방식: 출력 계층 세트에 있는 각각의 계층이 파티셔닝 방식의 정확히 하나의 파티션에 포함되고 파티셔닝 방식의 각각의 파티션이 하나 이상의 계층들을 포함하도록, 하나 이상의 파티션들로의 출력 계층 세트에서의 계층들의 분할.
파티션 유닛: 파티셔닝 방식에 따른 NAL 유닛들의 세트를 포함하는 액세스 유닛의 서브 세트.
위에서 나타낸 바와 같이, VPS 확장판은 각각의 개개의 출력 계층 세트에 대한 개개의 PTL 정보를 명시할 수도 있다. 예를 들어, VPS 확장판은 각각의 개개의 출력 계층 세트에 대해, 개개의 출력 계층 세트에 대한 PTL 신택스 구조를 식별하는, 개개의 출력 계층 세트에 대한 profile_level_tier_idx 신택스 엘리먼트를 포함할 수도 있다. 개개의 출력 계층 세트에 대한 PTL 신택스 구조는 개개의 출력 계층 세트에 대한 PTL 정보를 명시한다.
비디오 디코더 (30) 가 출력 계층 세트를 디코딩가능한지 여부를 결정하기 위해 비디오 디코더 (30) 가 출력 계층 세트의 PTL 정보를 이용할 수도 있기 때문에, 출력 계층 세트의 PTL 정보는 일반적으로 전체적으로 출력 계층 세트를 디코딩하는데 요구되는 최저 프로파일, 티어, 및 레벨을 명시한다. 그러나, 출력 계층 세트의 일부 파티션들의 프로파일, 티어, 및 레벨은 전체적으로 출력 계층 세트의 프로파일, 티어, 및 레벨보다 낮을 수도 있다. 다시 말해서, 출력 계층 세트의 프로파일, 티어, 및 레벨은 출력 계층 세트의 파티셔닝 방식에서 파티션의 최고 프로파일, 티어, 및 레벨일 수도 있으며, 여기서 출력 계층 세트의 계층들의 각각은 하나의 파티션에 속한다.
그러므로, 출력 계층 세트의 상이한 파티션들이 상이한 PTL 정보를 가질 때, 출력 계층 세트에 대한 PTL 정보가 출력 계층 세트의 파티션들의 PTL 정보의 다이버시티를 표현하기에 충분하지 않을 수도 있다. 본 개시물의 하나 이상의 기법들은 각각의 파티션에 대한 프로파일, 티어, 및 레벨의 시그널링에 대해 제공할 수도 있다. 예를 들어, 비트스트림에서 시그널링된 각각의 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, 비디오 인코더 (20) 는 비트스트림에, 개개의 파티션에 대한 프로파일, 티어, 및 레벨 (PTL) 정보를 포함시킬 수도 있다. 이와 유사하게, 비트스트림에서 시그널링된 각각의 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, 비디오 디코더 (30) 는 비트스트림으로부터, 개개의 파티션에 대한 개개의 PTL 정보를 표시하는 개개의 신택스 엘리먼트 (예컨대, profile_level_tier_partition_idx) 를 획득할 수도 있다.
일부 예들에서, 비디오 디코더 (30) 는 파티셔닝 방식들의 파티션들에 대한 PTL 정보에 기초하여, 하나 이상의 파티셔닝 방식들 중에서 파티셔닝 방식을 결정한다. 더욱이, 일부 예들에서, 파티셔닝 방식은 비트스트림을 디코더로 전송하는데 사용되는 네트워크의 조건들에 기초하여 결정된다. 비디오 디코더 (30) 는 개개의 하드웨어 코어를 이용하여, 그 결정하는 파티셔닝 방식의 각각의 개개의 파티션을 디코딩할 수도 있다. 하드웨어 코어들의 각각은 개개의 단일-계층 디코더를 구현할 수도 있다. 일부 예들에서, 하드웨어 코어들 중 개개의 하드웨어 코어들은 하나 보다 많은 계층을 디코딩한다 (예컨대, 멀티-계층 디코더를 구현한다). 더욱이, 상이한 하드웨어 코어들은 상이한 능력들을 가질 수도 있다. 예를 들어, 적어도 비디오 디코더 (30) 의 복수의 하드웨어 코어들 중 제 1 하드웨어 코어는 비디오 디코더 (30) 의 복수의 하드웨어 코어들 중 제 2 하드웨어 코어와는 상이한 프로파일, 티어, 또는 레벨을 지원할 수도 있다. 따라서, 일 예에서, 비디오 디코더 (30) 는 제 1 하드웨어 코어 및 제 2 하드웨어 코어를 포함할 수도 있다. 이 예에서, 제 1 하드웨어 코어는 레벨 3 디코더 (즉, HEVC 레벨 3 이하를 디코딩가능한 디코더) 를 구현할 수도 있으며 제 2 하드웨어 코어는 레벨 2 디코더 (즉, HEVC 레벨 2 이하를 디코디가능한 디코더) 를 구현할 수도 있다. 이 예에서, 제 1 파티션이 레벨 3 이상의 디코더에 의해 디코딩될 수 있다고 제 1 파티션의 PTL 정보가 표시하면 그리고 제 2 파티션이 레벨 2 이상의 디코더에 의해 디코딩될 수 있다고 PTL 정보가 표시하면, 비디오 디코더 (30) 는 제 1 파티션을 디코딩하기 위해 제 1 하드웨어 코어를 이용할 수도 있으며 제 2 파티션을 디코딩하기 위해 제 2 하드웨어 코어를 이용할 수도 있다. 일부의 사례들에서, 멀티-계층 비디오 디코더가 파티션들을 디코딩하기 위해 하나 이상의 하드웨어 코어들을 포함하고, 그리고 디코더 코어들 중 적어도 하나가 명시된 스케일러블 프로파일들 (예컨대, 스케일러블 메인 또는 스케일러블 메인 10) 중 하나를 따를 때, 픽처들의 리샘플링 또는 업샘플링을 수행하는 능력이 포함될 수도 있다. 이 리샘플링 능력은 스케일러블 프로파일을 디코딩가능한 각각의 코어에서 구현되거나, 또는 멀티-계층 디코더에서 공통 블록으로서 구현될 수도 있다.
위에서 간략히 설명된 바와 같이, 비디오 인코더 (20) 는 VPS 에, 출력 계층 세트들을 식별하는 신택스 엘리먼트들을 포함시킬 수도 있다. 따라서, 출력 계층 세트들은 VPS 에서 시그널링될 수도 있다. 일부 예들에서, 출력 계층 세트들은 또한 외부 수단에 의해 시그널링될 수도 있다. 외부 수단은 비디오 비트스트림이외의 일부 메커니즘일 수도 있다. 따라서, 외부 수단에 의해 시그널링되고 그리고 비트스트림의 출력 계층들을 포함하는 출력 계층 세트는 비트스트림에서 반드시 시그널링되지는 않는다.
본 개시물의 하나 이상의 기법들에 따르면, 각각의 출력 계층 세트의 각각의 개개의 파티셔닝 방식에 대해, 비트스트림의 VPS VUI 또는 SEI 메시지는 개개의 파티셔닝 방식에 대한 HRD 파라미터 세트를 식별할 수도 있다. 따라서, 본 개시물의 일부 예들에서, VPS 에서 또는 외부 수단에 의해 시그널링된 각각의 출력 계층 세트에 대한 각각의 파티셔닝 방식에 대한 HRD 파라미터들은 VPS VUI 에서 또는 SEI 메시지들에서 시그널링된다. HRD 파라미터 세트들이 각각의 파티셔닝 방식에 대해 식별되기 때문에, 비디오 디코더 (30) 또는 다른 디바이스는 파티셔닝 방식에 따라서 파티셔닝될 때 비트스트림이 적합 (conforming) 비트스트림인지 여부를 테스트하기 위해 파티셔닝 방식에 대한 HRD 파라미터들을 이용가능할 수도 있다.
하나의 이러한 예에서, 비디오 인코더 (20) 는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 발생시킨다. 이 예에서, 비트스트림은 복수의 계층들을 포함한다. 이 예에서 비트스트림을 발생시키는 것의 일부로서, 비디오 인코더 (20) 는 비트스트림에, 출력 계층 세트에 대한 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 포함시킨다. 이 예에서, 출력 계층 세트는 복수의 계층들의 모든 계층들 또는 복수의 계층들의 적절한 서브세트로 이루어진다. 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해, 개개의 파티셔닝 방식은 하나 이상의 파티션들로의 출력 계층 세트의 분할을 명시하며, 출력 계층 세트에 있는 각각의 계층은 개개의 파티셔닝 방식에서 정확히 하나의 파티션에 속한다. 더욱이, 이 예에서 비트스트림을 발생시키는 것의 일부로서, 비디오 인코더 (20) 는 각각의 개개의 파티셔닝 방식에 대해, 비트스트림에서의 SEI 메시지 또는 비트스트림에서의 VPS 내 VUI 에, 개개의 파티셔닝 방식에 대한 HRD 파라미터 세트들을 표시하는 신택스 엘리먼트들의 개개의 세트를 포함시킬 수도 있다. 비디오 인코더 (20) 는 비트스트림을 출력할 수도 있다.
유사한 예에서, 비디오 인코더 (20) 또는 비디오 디코더 (30) 와 같은, 비디오 프로세싱 디바이스는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩할 수도 있다. 이 예에서, 비트스트림은 복수의 계층들을 포함한다. 이 예에서 비트스트림을 디코딩하는 것의 일부로서, 비디오 프로세싱 디바이스는 비트스트림으로부터, 출력 계층 세트에 대한 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 획득한다. 게다가, 각각의 개개의 파티셔닝 방식에 대해, 비디오 디코더 (30) 는 비트스트림에서의 SEI 메시지 또는 비트스트림에서의 VPS 내 비디오 사용성 정보 (VUI) 로부터, 개개의 파티셔닝 방식에 대한 HRD 파라미터 세트들의 개개의 세트를 획득할 수도 있다. 개개의 파티셔닝 방식의 각각의 개개의 파티션들에 대해, 비디오 프로세싱 디바이스는 개개의 파티셔닝 방식에 대한 HRD 파라미터들에 기초하여, 비디오 코딩 표준에 대한 적합성에 대해 개개의 파티션을 테스트한다.
SHVC WD6, MV-HEVC WD8, 및 HEVC 초안 사양과 같은, 적어도 일부 표준들 문서들에서, 프로파일들, 티어들, 및 레벨들은 레벨 한계들 및 제한 사항들의 관점에서 정의된다. 레벨 한계는 신택스 엘리먼트 또는 변수의 값에 대한 한계를 명시할 수도 있다. 제한 사항은 요구사항 또는 제약을 명시할 수도 있다. 예를 들어, JCTV3V-H1002 는 "스테레오 메인" 프로파일을 정의하며, 여러 다른 제한 사항들 중에서, ViewScalExtLayerFlag[ i ] 가 1 과 동일한, i 와 동일한 nuh_layer_id 를 가지는 하나의 계층을 비트스트림이 포함하도록 요구하는 제한 사항을 포함한다. SHVC WD6, MV-HEVC WD8, 및 HEVC 초안 사양에 명시된 레벨 한계들 및 제한 사항들 중 다수가 비트스트림들에 적용가능하다. 예를 들어, MV-HEVC WD8 의 패러그라프 G.11.1.2 는 "스테레오 메인" 프로파일을 기술하며, 강조 (emphasis) 하여, "스테레오 메인 프로파일을 따르는 비트스트림들은 다음 제약들… 을 지켜야 한다"는 것을 명시한다.
그러나, 본 개시물의 일부 예들에서, 상이한 비트스트림 파티션들은 상이한 PTL 정보를 가질 수도 있다. 상이한 PTL 정보를 가지는 상이한 비트스트림 파티션들을 지원하기 위해, 레벨 한계들 및 제한 사항들의 정의들은 비트스트림들 대신, 파티션들의 관점에서 표현될 수도 있다. 따라서, 본 개시물의 일부 예시적인 기법들에 따르면, 자연히 계층 특정적인 픽처 폭, 픽처 높이, 및 서브-디코딩된 픽처 버퍼 (DPB) 사이즈에 대한 3개를 제외한, 모든 레벨 한계들 및 제한 사항들은 파티션 특정적인 것으로 명시된다. 예를 들어, 픽처 폭, 픽처 높이, 및 서브-DPB 사이즈에 대한 한계들 및 제한 사항들을 제외한, 모든 레벨 한계들 및 프로파일, 티어, 또는 레벨의 제한 사항들은 파티션 특정적인 것으로 정의된다.
위에서 언급한 바와 같이, 서브-DPB 사이즈 제한 사항들은 자연히 계층 특정적이다. 상술하면, DPB 는 사실상 서브-DPB들로 분할될 수도 있다. 각각의 계층의 픽처들은 별개의 서브-DPB 에 저장되며, 각각의 서브-DPB 는 하나의 계층을 포함한다. 예를 들어, 출력 계층 세트는 2개의 계층들을 포함하며, DPB 는 2개의 서브-DPB들로 분할될 수도 있으며, 여기서, 제 1 서브-DPB 는 제 1 계층을 포함하며 제 2 서브-DPB 는 제 2 계층을 포함한다. 전체적으로 DPB 사이즈를 명시하는 대신, (각각의 계층에 대해 요구되는) 서브-DPB 사이즈가 비트스트림에 명시된다. 이러한 예들에서, 레벨 한계들은 전체 DPB 사이즈에 대해 일부 제한 사항들을 간접적으로 가한다.
본 개시물의 하나 이상의 기법들에 따르면, 하나 이상의 추가적인 제한 사항들이 도입된다. 하나의 가능한 제한 사항은, 예를 들어, 각각의 출력 계층 세트에 대해, 오직 하나의 파티션을 포함하는 오직 하나의 파티셔닝 방식이 존재해야 하며 그 파티션이 출력 계층 세트에서의 모든 계층들을 포함한다는 것이다. 각각의 파티셔닝 방식은 전달 방식, 즉, 어느 계층들이 함께 전달될 수 있는지에 대한 유연성을 부여하고 있다. 모든 계층들이 하나의 파티션 내에 있을 때, 상이한 전달 방식들을 가질 수 있는 유일한 방법은 예를 들어, 상이한 비트 레이트들을 가지는 것에 의한다. 그 결과, 이 제약은 일부 추가적인 신택스를 감소시키는 것을 도울 것이다.
다른 예시적인 제한 사항에서, 파티션의 픽처 사이즈들의 합계는 파티션의 레벨에 대해 명시된 최대 루마 샘플들 미만으로 제한된다. 이 제한 사항은, 다수의 계층들을 가지는 하나의 파티션이 단일 코어에 의해 디코딩되면, 현재의 코어의 전체 DPB 사이즈들이 초과되지 않도록 보장할 수도 있다. 더욱이, 이 제한 사항은 모든 계층들의 픽처들의 전체 사이즈가 단일-계층 디코더에 의해 디코딩가능하였을 수도 있는 하나의 계층의 픽처의 사이즈를 초과하지 않도록 보장할 수도 있다. 이 제한 사항은 (예컨대, 추가적인 메모리를 잠재적으로 추가할 필요없이) 멀티-계층 목적들을 위해 더 쉬운 단일-계층 코어들의 확장을 가능하게 할 수도 있다.
다른 예시적인 제한 사항에서, 출력 계층 세트와 연관된 프로파일, 티어 및 레벨의 시그널링된 트리플릿들은 또한 출력 계층 세트에서의 모든 계층들을 포함하는 파티션과 연관된다.
더욱이, 본 개시물의 예시적인 기법에 따르면, 디코더의 디코딩 능력은 프로파일, 티어 및 레벨의 트리플릿들의 리스트를 따르는 것으로 표현된다. 일부 예들에서, 리스트에서의 엔트리들의 개수는 멀티-계층 디코더를 구축하는데 사용되는 단일-계층 디코더들의 개수를 표시하며, 프로파일, 티어 및 레벨의 각각의 트리플릿은 단일-계층 디코더들 중 하나의 프로파일, 티어 및 레벨을 표시한다.
따라서, 일 예에서, 비디오 디코더 (30) 또는 다른 디바이스와 같은, 비디오 프로세싱 디바이스는 트리플릿 엔트리들의 리스트에 기초하여, 멀티-계층 비디오 디코더 (예컨대, 비디오 디코더 (30)) 가 멀티-계층 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩가능한지 여부를 결정할 수도 있다. 리스트에서 트리플릿 엔트리들의 개수는 멀티-계층 비디오 디코더에서의 다수의 단일-계층 디코더들보다 적거나 또는 동일할 수도 있다. 트리플릿 엔트리들의 리스트에서의 각각의 개개의 트리플릿 엔트리는 멀티-계층 비디오 디코더에서의 개개의 단일-계층 디코더에 대한 프로파일, 티어, 및 레벨을 표시한다. 일부 예들에서, 비디오 프로세싱 디바이스는 파티셔닝 방식의 각각의 파티션의 PTL 정보가 단일-계층 디코더들 중 적어도 하나에 의해 파티션이 디코딩될 수 있다는 것을 표시하는 파티셔닝 방식을 그 비트스트림이 명시하고 있다고 결정함으로써, 멀티-계층 디코더가 비트스트림을 디코딩가능하다고 결정할 수도 있다. 멀티-계층 비디오 디코더가 비트스트림을 디코딩가능한 것에 기초하여, 멀티-계층 비디오 디코더는 비트스트림을 디코딩가능할 수도 있다.
본 개시물의 일부 예들에서, 프로파일, 티어 및 레벨의 트리플릿들의 리스트를 따르는 디코더는, 파티셔닝 방식의 각각의 파티션에 대해, 멀티-계층 디코더의 단일-계층 디코더들 중 하나가 파티션을 디코딩하기 위해 할당될 수 있다는 조건을 만족하는 적어도 하나의 파티셔닝 방식이 존재하는 임의의 적합 출력 계층 세트를 디코딩가능하도록 요구된다. 단일-계층 디코더가 디코딩을 위한 파티션을 할당받을 때, 단일-계층 디코더는 그 파티션을 디코딩할 수도 있다. 일부 예들에서, 파티션들의 각각이 단일-계층 디코더들 중 상이한 단일-계층 디코더에 할당될 수도 있다. 다른 예들에서, 2개 이상의 파티션들이 단일-계층 디코더들 중 하나의 단일-계층 디코더에 할당될 수도 있다. 더욱이, 일부 예들에서, 디코더에 의해 광고되는 PTL 트리플릿들의 수 및 코어에의 각각의 트리플릿의 그들의 연관은 단지 가능성이다. 이러한 예들에서, 디코더는 임의의 내부 구현물 (예컨대, 단지 하나의 슈퍼-코어) 를 가지지만 여전히 다수의 PTL 트리플릿들을 광고할 수도 있다.
따라서, 일부 예들에서, 비디오 디코더 (30) 또는 다른 디바이스와 같은, 비디오 프로세싱 디바이스는 비트스트림으로부터, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 획득할 수도 있다. 비디오 디코더 (30) 와 같은, 멀티-계층 비디오 디코더가 비트스트림을 디코딩하는 것이 가능한지 여부를 결정하기 위해, 비디오 프로세싱 디바이스는 조건이 만족되는 것에 기초하여, 멀티-계층 비디오 디코더가 비트스트림을 디코딩가능하다고 결정할 수도 있다. 이 예에서, 조건은 하나 이상의 파티셔닝 방식들에서의 적합한 파티셔닝 방식이 존재하는 것에 기초하여 만족된다. 적합한 파티셔닝 방식의 각각의 개개의 파티션에 대해, 멀티-계층 비디오 디코더의 단일-계층 디코더들 중 하나가 개개의 파티션을 디코딩하기 위해 할당될 수 있다.
본 개시물의 다른 예시적인 기법들에 따르면, 비트스트림 적합성 테스트들은 파티션에서의 계층들의 모든 직접 또는 간접 참조 계층들에 대한, 디코딩된 픽처들 및 다른 필요한 정보가 외부에 제공될 때 기초 계층에 대한 최신 SHVC/MV-HEVC 사양들에서의 현재의 사양과 유사하게 이용가능한 것으로 가정되는 방식으로, 각각의 파티션의 적합성을 테스트하도록 명시된다.
일부 예들에서, 비트스트림의 파티션에 대한 적합성 테스트들이 정의되며, 비트스트림의 적합성은 비트스트림에 대해 명시된 각각의 파티셔닝 방식의 모든 파티션들의 적합성에 기초하여 정의된다. 일부 예들에서, 하나의 파티션이 테스트를 위해 선택될 때, 개개의 파티셔닝 방식에서 다른 파티션들의 디코딩은 그들 파티션들에 대해 명시된 파라미터들에 따라서 HRD 에 의해 디코딩되는 것으로 간주된다.
도 2 는 본 개시물의 기법에 따른, 복수의 단일-계층 디코더들을 포함하는 비디오 디코더 (30) 의 예시적인 구현예를 예시하는 블록도이다. 도 2 의 예에서, 비디오 디코더 (30) 은 단일-계층 디코더들 (50A-50D) (일괄하여, "단일-계층 디코더들 (50)") 을 포함한다. 단일-계층 디코더들 (50) 의 각각은 개개의 별개의 하드웨어 코어에 의해 구현될 수도 있다. 단일-계층 디코더들 (50) 중 상이한 단일-계층 디코더들은 상이한 능력들을 가질 수도 있다. 예를 들어, 단일-계층 디코더들 (50) 중 상이한 단일-계층 디코더들은 상이한 프로파일들, 티어들, 및 레벨들을 따르는 비트스트림들을 디코딩가능할 수도 있다. 일부 예들에서, 비디오 디코더 (30) 는 파티셔닝 방식들의 파티션들에 대한 PTL 정보에 기초하여, 하나 이상의 파티셔닝 방식들 중에서 특정 파티셔닝 방식을 결정할 수도 있다. 비디오 디코더 (30) 는 단일-계층 디코더들 (50) 의 개개의 하나를 이용하여 특정 파티셔닝 방식의 각각의 개개의 파티션을 디코딩할 수도 있다.
도 3 은 본 개시물의 기법들을 구현할 수도 있는 예시적인 비디오 인코더 (20) 를 예시하는 블록도이다. 도 3 은 설명의 목적들을 위해 제공되며, 본 개시물에서 넓게 예시되고 설명된 바와 같은 기법들의 한정으로 간주되지 않아야 한다. 설명의 목적을 위해, 본 개시물은 HEVC 코딩의 상황에서 비디오 인코더 (20) 를 기술한다. 그러나, 본 개시물의 기법들은 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다.
도 3 의 예에서, 비디오 인코더 (20) 는 예측 프로세싱 유닛 (200), 잔차 발생 유닛 (202), 변환 프로세싱 유닛 (204), 양자화 유닛 (206), 역양자화 유닛 (208), 역변환 프로세싱 유닛 (210), 복원 유닛 (212), 필터 유닛 (214), 디코딩된 픽처 버퍼 (216), 및 엔트로피 인코딩 유닛 (218) 을 포함한다. 예측 프로세싱 유닛 (200) 은 인터-예측 프로세싱 유닛 (220) 및 인트라-예측 프로세싱 유닛 (226) 을 포함한다. 인터-예측 프로세싱 유닛 (220) 은 모션 추정 유닛 (222) 및 모션 보상 유닛 (224) 을 포함한다. 다른 예들에서, 비디오 인코더 (20) 는 더 많거나, 더 적거나, 또는 상이한 기능적 구성요소들을 포함할 수도 있다.
비디오 인코더 (20) 는 비디오 데이터를 수신할 수도 있다. 비디오 데이터 메모리 (201) 는 비디오 인코더 (20) 의 구성요소들에 의해 인코딩될 비디오 데이터를 저장할 수도 있다. 비디오 데이터 메모리 (201) 에 저장된 비디오 데이터는 예를 들어, 비디오 소스 (18) 로부터 획득될 수도 있다. 디코딩된 픽처 버퍼 (216) 는 예컨대, 인트라- 또는 인터-코딩 모드들에서 비디오 인코더 (20) 에 의해 비디오 데이터를 인코딩할 때에 사용하기 위해 참조 비디오 데이터를 저장하는 참조 픽처 메모리일 수도 있다. 비디오 데이터 메모리 (201) 및 디코딩된 픽처 버퍼 (216) 는 동기 DRAM (SDRAM) 을 포함한 동적 랜덤 액세스 메모리 (DRAM), 자기저항 RAM (MRAM), 저항 RAM (RRAM), 또는 다른 유형들의 메모리 디바이스들과 같은, 다양한 메모리 디바이스들 중 임의의 메모리 디바이스에 의해 형성될 수도 있다. 비디오 데이터 메모리 (201) 및 디코딩된 픽처 버퍼 (216) 는 동일한 메모리 디바이스 또는 별개의 메모리 디바이스들에 의해 제공될 수도 있다. 여러 예들에서, 비디오 데이터 메모리 (201) 는 비디오 인코더 (20) 의 다른 구성요소들과의 온칩, 또는 그들 구성요소들에 대한 오프-칩일 수도 있다.
비디오 인코더 (20) 는 비디오 데이터의 픽처의 슬라이스에서의 각각의 CTU 를 인코딩할 수도 있다. CTU들의 각각은 픽처의 동일-사이즈의 루마 코딩 트리 블록들 (CTB들) 및 대응하는 CTB들을 가질 수도 있다. CTU 를 인코딩하는 것의 일부로서, 예측 프로세싱 유닛 (200) 은 쿼드-트리 파티셔닝을 수행하여, CTU 의 CTB들을 계속해서-더 작은 블록들로 분할할 수도 있다. 더 작은 블록들은 CU들의 코딩 블록들일 수도 있다. 예를 들어, 예측 프로세싱 유닛 (200) 은 CTU 의 CTB 를 4개의 동일-사이즈로된 서브-블록들로 파티셔닝하고, 서브-블록들 중 하나 이상을 4개의 동일-사이즈로된 서브-서브-블록들로, 그리고 기타 등등으로 파티셔닝할 수도 있다.
비디오 인코더 (20) 는 CU들의 인코딩된 표현들 (즉, 코딩된 CU들) 을 발생하기 위해 CTU 의 CU들을 인코딩할 수도 있다. CU 를 인코딩하는 것의 일부로서, 예측 프로세싱 유닛 (200) 은 CU 의 하나 이상의 PU들 중에서 CU 의 코딩 블록들을 파티셔닝할 수도 있다. 따라서, 각각의 PU 는 루마 예측 블록 및 대응하는 크로마 예측 블록들을 가질 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 여러 사이즈들을 가지는 PU들을 지원할 수도 있다. 위에서 나타낸 바와 같이, CU 의 사이즈는 CU 의 루마 코딩 블록의 사이즈를 지칭할 수도 있으며, PU 의 사이즈는 PU 의 루마 예측 블록의 사이즈를 나타낼 수도 있다. 특정 CU 의 사이즈가 2Nx2N 이라고 가정하면, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 인트라 예측에 대해서는 2Nx2N 또는 NxN 의 PU 사이즈들을, 그리고 인터 예측에 대해서는 2Nx2N, 2NxN, Nx2N, NxN, 또는 등등의 대칭 PU 사이즈들을 지원할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 또한 인터 예측에 대해서 2NxnU, 2NxnD, nLx2N, 및 nRx2N 의 PU 사이즈들에 대한 비대칭적인 파티셔닝을 지원할 수도 있다.
인터-예측 프로세싱 유닛 (220) 은 CU 의 각각의 PU 에 대해 인터 예측을 수행함으로써, PU 에 대한 예측 데이터를 발생시킬 수도 있다. PU 에 대한 예측 데이터는 PU 의 예측 블록들 및 PU 에 대한 모션 정보를 포함할 수도 있다. 인터-예측 프로세싱 유닛 (220) 은 PU 가 I 슬라이스, P 슬라이스, 또는 B 슬라이스 내에 있는지에 따라서, CU 의 PU 에 대해 상이한 동작들을 수행할 수도 있다. I 슬라이스에서, 모든 PU들은 인트라 예측된다. 그러므로, PU 가 I 슬라이스에 있으면, 인터-예측 프로세싱 유닛 (220) 은 PU 에 관해 인터 예측을 수행하지 않는다.
PU 가 P 슬라이스 내에 있을 때, 모션 추정 유닛 (222) 은 PU 에 대한 참조 영역을 위해 참조 픽처들의 리스트 (예컨대, "RefPicList0") 에서의 참조 픽처들을 탐색할 수도 있다. PU 에 대한 참조 영역은 참조 픽처 내에서, PU 의 예측 블록들에 가장 가깝게 대응하는 샘플들을 포함하는 영역일 수도 있다. 모션 추정 유닛 (222) 은 PU 에 대한 참조 영역을 포함하는 참조 픽처의 RefPicList0 에서의 위치를 나타내는 참조 인덱스를 발생시킬 수도 있다. 게다가, 모션 추정 유닛 (222) 은 PU 의 코딩 블록과, 참조 영역과 연관되는 참조 로케이션 사이의 공간 변위를 나타내는 모션 벡터를 발생시킬 수도 있다. 예를 들어, 모션 벡터는 현재의 픽처에서의 좌표들로부터 참조 픽처에서의 좌표들까지 오프셋을 제공하는 2차원 벡터일 수도 있다. 모션 추정 유닛 (222) 은 참조 인덱스 및 모션 벡터를 PU 의 모션 정보로서 출력할 수도 있다. 모션 보상 유닛 (224) 은 PU 의 모션 벡터에 의해 표시되는 참조 로케이션에서의 실제 또는 내삽된 샘플들에 기초하여, PU 의 예측 블록들을 발생시킬 수도 있다.
PU 가 B 슬라이스 내에 있을 때, 모션 추정 유닛 (222) 은 PU 에 대해 단방향-예측 또는 양방향-예측을 수행할 수도 있다. PU 에 대한 단방향-예측을 수행하기 위해, 모션 추정 유닛 (222) 은 PU 에 대한 참조 영역을 위해 RefPicList0 또는 제 2 참조 픽처 리스트 ("RefPicList1") 의 참조 픽처들을 탐색할 수도 있다. 모션 추정 유닛 (222) 은 PU 의 모션 정보로서, 참조 영역을 포함하는 참조 픽처의 RefPicList0 또는 RefPicList1 에서의 위치를 나타내는 참조 인덱스, PU 의 예측 블록과 참조 영역과 연관되는 참조 로케이션 사이의 공간 변위를 나타내는 모션 벡터, 및 참조 픽처가 RefPicList0 또는 RefPicList1 에 있는지 여부를 나타내는 하나 이상의 예측 방향 표시자들을 출력할 수도 있다. 모션 보상 유닛 (224) 은 PU 의 모션 벡터에 의해 표시되는 참조 로케이션에서의 실제 또는 내삽된 샘플들에 적어도 부분적으로 기초하여, PU 의 예측 블록들을 발생시킬 수도 있다.
PU 에 대한 양방향 인터 예측을 수행하기 위해, 모션 추정 유닛 (222) 은 PU 에 대한 참조 영역을 위해 RefPicList0 에서의 참조 픽처들을 탐색할 수도 있으며, 또한 RefPicList1 에서의 참조 픽처들을 PU 에 대한 또 다른 참조 영역에 대해 탐색할 수도 있다. 모션 추정 유닛 (222) 은 참조 영역들을 포함하는 참조 픽처들의 RefPicList0 및 RefPicList1 에서의 위치들을 나타내는 참조 인덱스들을 발생시킬 수도 있다. 게다가, 모션 추정 유닛 (222) 은 참조 영역들과 연관되는 참조 로케이션들과 PU 의 예측 블록 사이의 공간 변위들을 나타내는 모션 벡터들을 발생시킬 수도 있다. PU 의 모션 정보는 PU 의 참조 인덱스들 및 모션 벡터들을 포함할 수도 있다. 모션 보상 유닛 (224) 은 PU 의 모션 벡터들에 의해 표시되는 참조 로케이션들에서의 실제 또는 내삽된 샘플들에 적어도 부분적으로 기초하여, PU 의 예측 블록들을 발생시킬 수도 있다.
인트라-예측 프로세싱 유닛 (226) 은 PU 에 대해 인트라 예측을 수행함으로써, PU 에 대한 예측 데이터를 발생시킬 수도 있다. PU 에 대한 예측 데이터는 PU 에 대한 예측 블록들 및 여러 신택스 엘리먼트들을 포함할 수도 있다. 인트라-예측 프로세싱 유닛 (226) 은 I 슬라이스들, P 슬라이스들, 및 B 슬라이스들에서의 PU들에 대해 인트라 예측을 수행할 수도 있다.
PU 상에서 인트라 예측을 수행하기 위해, 인트라-예측 프로세싱 유닛 (226) 은 다수의 인트라 예측 모드들을 이용하여 PU 에 대한 예측 블록들의 다수의 세트들을 발생시킬 수도 있다. 특정 인트라 예측 모드를 이용하여 인트라 예측을 수행할 때, 인트라-예측 프로세싱 유닛 (226) 은 이웃하는 블록들로부터의 샘플들의 특정 세트를 이용하여, PU 에 대한 예측 블록들을 발생시킬 수도 있다. 이웃하는 블록들은 PU들, CU들, 및 CTU들에 대해 좌우, 상하 인코딩 순서를 가정하면, PU 의 예측 블록들의 상부, 상부 우측, 상부 좌측, 또는 좌측일 수도 있다. 인트라-예측 프로세싱 유닛 (226) 은 다수의 인트라 예측 모드들, 예컨대, 33개의 방향성 인트라 예측 모드들을 이용할 수도 있다. 일부 예들에서, 인트라 예측 모드들의 개수는 PU 의 예측 블록들의 사이즈에 의존할 수도 있다.
예측 프로세싱 유닛 (200) 은 PU들에 대한 인터-예측 프로세싱 유닛 (220) 에 의해 발생된 예측 데이터, 또는 PU들에 대한 인트라-예측 프로세싱 유닛 (226) 에 의해 발생된 예측 데이터 중에서, CU 의 PU들에 대한 예측 데이터를 선택할 수도 있다. 일부 예들에서, 예측 프로세싱 유닛 (200) 은 예측 데이터의 세트들의 레이트/왜곡 메트릭들에 기초하여, CU 의 PU들에 대한 예측 데이터를 선택한다. 선택된 예측 데이터의 예측 블록들은 본원에서 선택된 예측 블록들로서 지칭될 수도 있다.
잔차 발생 유닛 (202) 은 CU 의 코딩 블록들 및 CU 의 PU들의 선택된 예측 블록들에 기초하여, CU 의 잔차 블록들을 발생시킬 수도 있다. 예를 들어, 잔차 발생 유닛 (202) 은 CU 의 루마, Cb 및 Cr 코딩 블록 및 CU 의 PU들의 선택된 예측 루마, Cb 및 Cr 블록들에 기초하여, CU 의 루마, Cb 및 Cr 잔차 블록들을 발생시킬 수도 있다. 일부 예들에서, 잔차 발생 유닛 (202) 은 잔차 블록들에서의 각각의 샘플이 CU 의 코딩 블록에서의 샘플과 CU 의 PU 의 대응하는 선택된 예측 블록에서의 대응하는 샘플 사이의 차이와 동일한 값을 갖도록, CU 의 잔차 블록들을 발생시킬 수도 있다.
변환 프로세싱 유닛 (204) 은 쿼드-트리 파티셔닝을 수행하여, CU 의 잔차 블록들을 CU 의 TU들의 변환 블록들로 파티셔닝할 수도 있다. 따라서, TU 는 루마 변환 블록 및 2개의 대응하는 크로마 변환 블록들을 가질 수도 있다. CU 의 TU들의 변환 블록들의 사이즈들 및 위치들은 CU 의 PU들의 예측 블록들의 사이즈들 및 위치들에 기초하거나 또는 기초하지 않을 수도 있다.
변환 프로세싱 유닛 (204) 은 하나 이상의 변환들을 TU 의 변환 블록들에 적용함으로써, CU 의 각각의 TU 에 대한 변환 계수 블록들을 발생시킬 수도 있다. 변환 프로세싱 유닛 (204) 은 여러 변환들을 TU 의 변환 블록에 적용할 수도 있다. 예를 들어, 변환 프로세싱 유닛 (204) 은 이산 코사인 변환 (DCT), 방향성 변환, 또는 개념적으로-유사한 변환을 변환 블록에 적용할 수도 있다. 일부 예들에서, 변환 프로세싱 유닛 (204) 은 변환들을 변환 블록에 적용하지 않는다. 이러한 예들에서, 변환 블록은 변환 계수 블록으로서 취급될 수도 있다.
양자화 유닛 (206) 은 계수 블록에서의 변환 계수들을 양자화할 수도 있다. 양자화 프로세스는 그 변환 계수들의 일부 또는 모두의 비트 심도를 감소시킬 수도 있다. 예를 들어, n-비트 변환 계수는 양자화 동안 m-비트 변환 계수로 절사될 수도 있으며, 여기서, n 은 m 보다 더 크다. 양자화 유닛 (206) 은 CU 에 대한 양자화 파라미터 (QP) 값에 기초하여, CU 의 TU 의 계수 블록을 양자화할 수도 있다. 비디오 인코더 (20) 는 CU 에 대한 QP 값을 조정함으로써 CU 의 계수 블록들에 적용되는 양자화의 정도를 조정할 수도 있다. 양자화는 정보의 손실을 도입할 수도 있으며, 따라서 양자화된 변환 계수들은 원래 정밀도들보다 낮은 정밀도를 가질 수도 있다.
역양자화 유닛 (208) 및 역변환 프로세싱 유닛 (210) 은 역양자화 및 역변환들을 계수 블록에 각각 적용하여, 계수 블록으로부터 잔차 블록을 복원할 수도 있다. 복원 유닛 (212) 은 그 복원된 잔차 블록을 예측 프로세싱 유닛 (200) 에 의해 발생되는 하나 이상의 예측 블록들로부터의 대응하는 샘플들에 가산하여, TU 의 복원된 변환 블록을 생성할 수도 있다. 이렇게 CU 의 각각의 TU 에 대한 변환 블록들을 복원함으로써, 비디오 인코더 (20) 는 CU 의 코딩 블록들을 복원할 수도 있다.
필터 유닛 (214) 은 CU 의 코딩 블록들에서 블록킹 아티팩트들을 감소시키기 위해, 하나 이상의 디블록킹 동작들을 수행할 수도 있다. 디코딩된 픽처 버퍼 (216) 는 필터 유닛 (214) 이 복원된 코딩 블록들에 관해 하나 이상의 디블록킹 동작들을 수행한 후 그 복원된 코딩 블록들을 저장할 수도 있다. 인터-예측 프로세싱 유닛 (220) 은 그 복원된 코딩 블록들을 포함하는 참조 픽처를 이용하여, 다른 픽처들의 PU들에 관해 인터 예측을 수행할 수도 있다. 게다가, 인트라-예측 프로세싱 유닛 (226) 은 디코딩된 픽처 버퍼 (216) 에서의 복원된 코딩 블록들을 이용하여, CU 와 동일한 픽처에서의 다른 PU들에 관해 인트라 예측을 수행할 수도 있다.
엔트로피 인코딩 유닛 (218) 은 비디오 인코더 (20) 의 다른 기능적 구성요소들로부터 데이터를 수신할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (218) 은 양자화 유닛 (206) 으로부터 계수 블록들을 수신할 수도 있으며 예측 프로세싱 유닛 (200) 으로부터 신택스 엘리먼트들을 수신할 수도 있다. 엔트로피 인코딩 유닛 (218) 은 데이터에 대해 하나 이상의 엔트로피 인코딩 동작들을 수행하여, 엔트로피-인코딩된 데이터를 발생시킬 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (218) 은 컨텍스트-적응 가변 길이 코딩 (CAVLC) 동작, CABAC 동작, 변수-대-변수 (V2V) 길이 코딩 동작, 신택스-기반 컨텍스트-적응 2진 산술 코딩 (SBAC) 동작, 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩 동작, 지수-Golomb 인코딩 동작, 또는 또다른 유형의 엔트로피 인코딩 동작을 데이터에 대해 수행할 수도 있다. 비디오 인코더 (20) 는 엔트로피 인코딩 유닛 (218) 에 의해 발생된 엔트로피-인코딩된 데이터를 포함하는 비트스트림을 출력할 수도 있다.
본 개시물의 일부 예들에 따르면, 엔트로피 인코딩 유닛 (218) 은 비트스트림에, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 포함시킬 수도 있다. 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해, 개개의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온을 갖는 분리된 파티션들의 개개의 세트를 명시하고, 분리된 파티션들의 개개의 세트의 각각의 개개의 파티션은 하나 이상의 계층들을 포함하며, 출력 계층 세트는 복수의 계층들의 모든 계층들 또는 복수의 계층들의 적절한 서브세트로 이루어질 수도 있다.
도 4 는 본 개시물의 기법들을 구현할 수도 있는 예시적인 비디오 디코더 (30) 를 예시하는 블록도이다. 도 4 는 설명의 목적들을 위해 제공되며 본 개시물에 넓게 예시되고 설명된 것과 같은 기법들에 한정하는 것이 아니다. 설명의 목적을 위해, 본 개시물은 HEVC 코딩의 상황에서의 비디오 디코더 (30) 를 기술한다. 그러나, 본 개시물의 기법들은 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다.
도 4 의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (250), 예측 프로세싱 유닛 (252), 역양자화 유닛 (254), 역변환 프로세싱 유닛 (256), 복원 유닛 (258), 필터 유닛 (260), 및 디코딩된 픽처 버퍼 (262) 를 포함한다. 예측 프로세싱 유닛 (252) 은 모션 보상 유닛 (264) 및 인트라-예측 프로세싱 유닛 (266) 을 포함한다. 다른 예들에서, 비디오 디코더 (30) 는 더 많거나, 더 적거나, 또는 상이한 기능적 구성요소들을 포함할 수도 있다.
코딩된 픽처 버퍼 (CPB) (251) 는 비트스트림의 인코딩된 비디오 데이터 (예컨대, NAL 유닛들) 을 수신하여 저장할 수도 있다. CPB (151) 에 저장된 비디오 데이터는 예를 들어, 컴퓨터-판독가능 매체 (16) 로부터, 예컨대, 카메라와 같은 로컬 비디오 소스로부터, 비디오 데이터의 유선 또는 무선 네트워크 통신을 통해서, 또는 물리적인 데이터 저장 매체들에 액세스함으로써 획득될 수도 있다. CPB (151) 는 인코딩된 비디오 비트스트림으로부터 인코딩된 비디오 데이터를 저장하는 비디오 데이터 메모리를 형성할 수도 있다. 디코딩된 픽처 버퍼 (162) 는 예컨대, 인트라- 또는 인터-코딩 모드들에서 비디오 디코더 (30) 에 의해 비디오 데이터를 디코딩할 때에 사용하기 위해 참조 비디오 데이터를 저장하는 참조 픽처 메모리일 수도 있다. CPB (151) 및 디코딩된 픽처 버퍼 (162) 는 동기 DRAM (SDRAM) 을 포함한 동적 랜덤 액세스 메모리 (DRAM), 자기저항 RAM (MRAM), 저항 RAM (RRAM), 또는 다른 유형들의 메모리 디바이스들과 같은, 다양한 메모리 디바이스들 중 임의의 메모리 디바이스에 의해 형성될 수도 있다. CPB (151) 및 디코딩된 픽처 버퍼 (162) 는 동일한 메모리 디바이스 또는 별개의 메모리 디바이스들에 의해 제공될 수도 있다. 여러 예들에서, CPB (151) 는 비디오 디코더 (30) 의 다른 구성요소들과의 온칩되거나, 또는 그들 구성요소들에 대해 오프-칩될 수도 있다.
엔트로피 디코딩 유닛 (250) 은 CPB (251) 로부터 NAL 유닛들을 수신하여, NAL 유닛들을 파싱하여, 비트스트림으로부터 신택스 엘리먼트들을 획득할 수도 있다. 엔트로피 디코딩 유닛 (250) 은 NAL 유닛들에서의 엔트로피-인코딩된 신택스 엘리먼트들을 엔트로피 디코딩할 수도 있다. 예측 프로세싱 유닛 (252), 역양자화 유닛 (254), 역변환 프로세싱 유닛 (256), 복원 유닛 (258), 및 필터 유닛 (260) 은 비트스트림으로부터 획득된 신택스 엘리먼트들에 기초하여, 디코딩된 비디오 데이터를 발생시킬 수도 있다.
예를 들어, 엔트로피 디코딩 유닛 (250) 은 비트스트림으로부터, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 획득할 수도 있다. 예측 프로세싱 유닛 (252), 역양자화 유닛 (254), 역변환 프로세싱 유닛 (256), 복원 유닛 (258), 및 필터 유닛 (260) 은 특정 파티셔닝 방식의 파티션들을 디코딩할 수도 있다. 일부 예들에서, 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해, 엔트로피 디코딩 유닛 (250) 은 비트스트림에서의 SEI 메시지 또는 비트스트림에서의 VPS 내 VUI 로부터, 개개의 파티셔닝 방식에 대한 HRD 파라미터 세트들의 개개의 세트를 획득한다. 비디오 디코더 (30) 는 하나 이상의 파티셔닝 방식들에 대한 HRD 파라미터들에 기초하여, 비디오 코딩 표준에 대한 적합성에 대해 하나 이상의 파티셔닝 방식들 각각의 각각의 파티션을 테스트할 수도 있다.
비트스트림의 NAL 유닛들은 코딩된 슬라이스 NAL 유닛들을 포함할 수도 있다. 비트스트림을 디코딩하는 것의 일부로서, 엔트로피 디코딩 유닛 (250) 은 코딩된 슬라이스 NAL 유닛들로부터 신택스 엘리먼트들을 엔트로피 디코딩할 수도 있다. 코딩된 슬라이스들 각각은 슬라이스 헤더 및 슬라이스 데이터를 포함할 수도 있다. 슬라이스 헤더는 슬라이스에 관련된 신택스 엘리먼트들을 포함할 수도 있다.
비트스트림으로부터 신택스 엘리먼트들을 획득하는 것에 더해서, 비디오 디코더 (30) 는 CU 에 관해 디코딩 동작을 수행할 수도 있다. CU 에 관해 디코딩 동작을 수행함으로써, 비디오 디코더 (30) 는 CU 의 코딩 블록들을 복원할 수도 있다.
CU 에 관해 디코딩 동작을 수행하는 것의 일부로서, 역양자화 유닛 (254) 은 CU 의 TU들의 계수 블록들을 역양자화할 수도 있다, 즉 탈양자화할 수도 있다. 역양자화 유닛 (254) 은 TU 의 CU 에 대한 QP 값을 이용하여, 적용할 역양자화 유닛 (254) 에 대한 양자화의 정도 및 이와 유사하게, 역양자화의 정도를 결정할 수도 있다. 즉, 압축 비, 즉, 원래 시퀀스 및 압축된 시퀀스를 표현하는데 사용되는 비트수의 비는, 변환 계수들을 양자화할 때 사용되는 QP 의 값을 조정함으로써 제어될 수도 있다. 압축 비는 또한 채용되는 엔트로피 코딩의 방법에 의존할 수도 있다.
역양자화 유닛 (254) 이 계수 블록을 역양자화한 후, 역변환 프로세싱 유닛 (256) 은 TU 에 대한 잔차 블록을 발생하기 위해, 하나 이상의 역변환들을 계수 블록에 적용할 수도 있다. 예를 들어, 역변환 프로세싱 유닛 (256) 은 역 DCT, 역 정수 변환, 역 Karhunen-Loeve 변환 (KLT), 역 회전 변환, 역 방향 변환, 또는 또 다른 역변환을 계수 블록에 적용할 수도 있다.
PU 가 인트라 예측을 이용하여 인코딩되면, 인트라-예측 프로세싱 유닛 (266) 은 인트라 예측을 수행하여, PU 에 대한 예측 블록들을 발생시킬 수도 있다. 예를 들어, 인트라 예측 프로세싱 유닛 (266) 은 PU 에 대해 루마, Cb, 및 Cr 예측 블록들을 발생시키기 위해 인트라 예측을 수행할 수도 있다. 인트라-예측 프로세싱 유닛 (266) 은 인트라 예측 모드를 이용하여, 공간적으로-이웃하는 PU들의 예측 블록들에 기초하여 PU 에 대한 예측 블록들을 발생시킬 수도 있다. 인트라-예측 프로세싱 유닛 (266) 은 비트스트림으로부터 획득된 하나 이상의 신택스 엘리먼트들에 기초하여, PU 에 대한 인트라 예측 모드를 결정할 수도 있다.
예측 프로세싱 유닛 (252) 은 비트스트림으로부터 추출된 신택스 엘리먼트들에 기초하여, 제 1 참조 픽처 리스트 (RefPicList0) 및 제 2 참조 픽처 리스트 (RefPicList1) 를 구성할 수도 있다. 더욱이, PU 가 인터 예측을 이용하여 인코딩되면, 엔트로피 디코딩 유닛 (250) 은 PU 에 대한 모션 정보를 획득할 수도 있다. 모션 보상 유닛 (264) 은 PU 의 모션 정보에 기초하여, PU 에 대한 하나 이상의 참조 영역들을 결정할 수도 있다. 모션 보상 유닛 (264) 은 PU 에 대한 하나 이상의 참조 블록들에서의 샘플들에 기초하여, PU 에 대한 예측 블록들을 발생시킬 수도 있다. 예를 들어, 모션 보상 유닛 (264) 은 PU 에 대한 하나 이상의 참조 블록들의 샘플들에 기초하여, PU 에 대한 루마, Cb, 및 Cr 예측 블록들을 발생시킬 수도 있다.
복원 유닛 (258) 은 CU 의 TU들의 복원된 변환 블록들과 CU 의 PU들의 예측 블록들로부터의 잔차 값들을 이용하여, CU 의 코딩 블록들을 복원할 수도 있다. 예를 들어, 복원 유닛 (258) 은 CU 의 TU들의 루마, Cb 및 Cr 변환 블록들과 CU 의 PU들의 예측 루마, Cb 및 Cr 블록들로부터의 잔차 값들을 이용하여, CU 의 루마, Cb 및 Cr 코딩 블록들을 복원할 수도 있다. 예를 들어, 복원 유닛 (258) 은 변환 블록들의 샘플들을 예측 블록들의 대응하는 샘플들에 가산하여, CU 의 코딩 블록들을 복원할 수도 있다.
필터 유닛 (260) 은 CU 의 코딩 블록들과 연관되는 블록킹 아티팩트들을 감소시키기 위해 디블록킹 동작을 수행할 수도 있다. 비디오 디코더 (30) 는 CU 의 코딩 블록들을 디코딩 픽처 버퍼 (262) 에 저장할 수도 있다. 디코딩된 픽처 버퍼 (262) 는 후속 모션 보상, 인트라 예측, 및 도 1 의 디스플레이 디바이스 (32) 와 같은 디스플레이 디바이스 상에의 프리젠테이션을 위해, 참조 픽처들을 제공할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 디코딩된 픽처 버퍼 (262) 에서의 블록들에 기초하여, 다른 CU들의 PU들에 관해 인트라 예측 또는 인터 예측 동작들을 수행할 수도 있다. 이렇게, 비디오 디코더 (30) 는 비트스트림으로부터, 계수 블록의 변환 계수 레벨들을 획득하고, 변환 계수 레벨들을 역양자화하고, 변환을 변환 계수 레벨들에 적용하여 변환 블록을 발생시키고, 그 변환 블록에 적어도 부분적으로 기초하여, 코딩 블록을 발생시키고, 그리고 디스플레이를 위해 코딩 블록을 출력할 수도 있다.
본 개시물의 다음 섹션들은 위에서 설명된 본 개시물의 예시적인 기법들 중 일부의 일부 구현 세부 사항들을 설명한다. 다음 텍스트는 본 개시물의 하나 이상의 기법들을 구현하기 위한 변경들을 나타낸다. 밑줄친 텍스트는 추가된 텍스트를 표시한다. 꺽쇠 괄호들에 포함된 이탤릭체 텍스트는 삭제된 텍스트이다. 신택스 엘리먼트들의 이름들은 굵은 글씨체로 표시된다.
위에서 나타낸 바와 같이, 본 개시물의 일부 기법들에 따르면, 비디오 인코더 (20) 는 하나 이상의 파티셔닝 방식들을 시그널링할 수도 있다. 파티셔닝 방식들의 각각은 출력 계층 세트에서의 계층들을 하나 이상의 파티션들로 분할한다. 출력 계층 세트에 있는 각각의 계층은 파티셔닝 방식에서 정확히 하나의 파티션에 속해야 한다.
아래 테이블 2 는 SHVC WD6 및 MV-HEVC WD8 에서 정의된 파티셔닝 방식들을 시그널링하기 위한, VPS 확장판 신택스에 대한 변경들을 표시한다.
테이블 2
Figure pct00005
테이블 2 의 예에서, num_partition_schemes[i] 는 i-번째 출력 계층 세트에 대해 명시된 파티셔닝 방식들의 개수를 명시한다. num_partition_schemes[i] 의 값은 0 내지 15 를 포함한 범위 이내여야 한다. 더욱이, num_partitions_in_scheme_minus1[i][j] 플러스 1 은 i-번째 출력 계층 세트의 j-번째 파티셔닝 방식에서 파티션들의 개수를 명시한다. num_partitions_in_scheme_minus1[i][j] 의 값은 0 내지 NumLayersInIdList[ LayerSetIdxForOutputLayerSet[i] ] - 1 를 포함한 범위 이내여야 한다.
더욱이, 테이블 2 의 예에서, 1 과 동일한 layer_included_in_partition_flag[i][j][k][r] 은 VPS 에 명시된 r-번째 계층이 i-번째 출력 계층 세트의 j-번째 파티셔닝 방식의 k-번째 파티션에 포함된다는 것을 명시한다. 0 과 동일한 layer_included_in_partition_flag[i][j][k][r] 은 VPS 에 명시된 r-번째 계층이 i-번째 출력 계층 세트의 j-번째 파티셔닝 방식의 k-번째 파티션에 포함되지 않는다는 것을 명시한다.
따라서, 각각의 개개의 파티셔닝 방식에 대해, 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, 출력 계층 세트의 각각의 개개의 계층에 대해, 비디오 디코더 (30) 는 비트스트림으로부터, 개개의 계층이 개개의 파티션에 포함되는지 여부를 표시하는 신택스 엘리먼트 (즉, layer_included_in_partition_flag) 를 획득할 수도 있다. 유사한 예에서, 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해, 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, 출력 계층 세트의 각각의 개개의 계층에 대해, 비디오 인코더 (20) 는 비트스트림에, 개개의 계층이 개개의 파티션에 포함되는지 여부를 표시하는 신택스 엘리먼트 (즉, layer_included_in_partition_flag) 를 포함시킬 수도 있다.
테이블 2 의 예에서, i-번째 출력 계층 세트에서 currLayerId 와 동일한 nuh_layer_id 를 가지는 각각의 계층에 대해, layer_included_in_partition_flag[ i ][ j ][ k ][ LayerIdxInVps[ currLayerId ] 가 1 과 동일하도록, i-번째 출력 계층 세트의 인덱스 j 를 가지는 각각의 파티셔닝 방식에 대해, 0 내지 num_partitions_in_scheme_minus1[i][j] 를 포함한 범위인 k 의 하나 및 오직 하나의 값이 존재한다는 것이 비트스트림 적합성의 요구사항이다.
위에서 언급한 바와 같이, 본 개시물의 일부 예들에 따르면, 프로파일, 티어, 및 레벨의 시그널링이 각각의 파티션에 대해 제공된다. 테이블 2 의 예에 나타낸 바와 같이, profile_level_tier_partition_idx[i][j][k] 는 i-번째 출력 계층 세트의 j-번째 파티셔닝 방식의 k-번째 파티션에 적용되는 profile_tier_level( ) 신택스 구조의, VPS 에서의 profile_tier_level( ) 신택스 구조들의 리스트내에, 인덱스를 명시한다. profile_level_tier_partition_idx[i] 신택스 엘리먼트의 길이는 Ceil( Log2( vps_num_profile_tier_level_minus1 + 1 ) ) 비트들이다. profile_level_tier_idx[0][0][0] 의 값은 0 과 동일한 것으로 추론된다. profile_level_tier_partition_idx[i] 의 값은 0 내지 vps_num_profile_tier_level_minus1 를 포함한 범위 이내여야 한다.
다른 예에서, 테이블 3 에 나타낸 변경들은 파티셔닝 방식들을 시그널링하기 위해, VPS 확장판 신택스에 대해 이루어질 수도 있다. 테이블 3 에 나타낸 변경들은 상기 테이블 2 에 대한 것이다.
테이블 3
Figure pct00006
테이블 3 의 예에서, 다음 변경들이 테이블 2 를 참조하여 위에서 설명된 VPS 확장판의 특정 신택스 엘리먼트들의 의미들에 대해 이루어질 수도 있다.
num_partition ing _schemes _minus1 [ i ] 플러스 1 은 i-번째 출력 계층 세트에 대해 명시된 파티셔닝 방식들의 개수를 명시한다. num_partitioning_schemes_minus1[ i ] 의 값은 0 내지 15 를 포함한 범위 이내여야 한다.
num_partitions_in_scheme_minus [[1]] 2 [ i ][ j ] 플러스 [[1]] 2 는 i-번째 출력 계층 세트의 j-번째 파티셔닝 방식에서 파티션들의 개수를 명시한다. num_partitions_in_scheme_minus[[1]] 2[ i ][ j ] 의 값은 0 내지 NumLayersInIdList[ LayerSetIdxForOutputLayerSet[i] ] - 1 를 포함한 범위 이내여야 한다.
변수 NumPartitionInScheme[ i ][ j ] 의 값은 다음과 같이 유도된다:
Figure pct00007
[[j 가 0 보다 클 때, num_partitions_in_scheme_minus1[ i ][ j ] 의 값이 0보다 커야 한다는 것이 비트스트림 적합성의 요구사항이다.]]
1 과 동일한 layer_included_in_partition_flag[ i ][ j ][ k ][ r ] 은 VPS 에 명시된 r-번째 계층이 i-번째 출력 계층 세트의 j-번째 파티셔닝 방식의 k-번째 파티션에 포함된다는 것을 명시한다. 0 과 동일한 layer_included_in_partition_flag[ i ][ j ][ k ][ r ] 은 VPS 에 명시된 r-번째 계층이 i-번째 출력 계층 세트의 j-번째 파티셔닝 방식의 k-번째 파티션에 포함되지 않는다는 것을 명시한다. layer_included_in_partition_flag[ i ][ 0 ][ 0 ][ r ] 의 값은 0 내지 vps_max_layers_minus1 를 포함한 범위인 r 에 대해, layer_id_included_flag[ LayerSetIdxForOutputLayerSet[ i ] ][ r ] 의 값과 동일한 것으로 추론된다.
주 5 - i-번째 출력 계층 세트에서 currLayerId 와 동일한 nuh_layer_id 를 가지는 각각의 계층에 대해, layer_included_in_partition_flag[ i ][ j ][ k ][ LayerIdxInVps[ currLayerId ] 가 1 과 동일하도록, i-번째 출력 계층 세트의 인덱스 j 를 가지는 각각의 파티셔닝 방식에 대해, 0 내지 [[n]] Num[[_p]] Partitions[[_i]] In[[_s]] Scheme[[ _minus1]][ i ][ j ] [[,포함한]] 의 범위인 하나 및 오직 하나의 k 의 값이 존재한다 [[는 것이 비트스트림 적합성의 요구사항이다]] .
profile_level_tier_partition_idx[ i ][ j ][ k ] 는 i-번째 출력 계층 세트의 j-번째 파티셔닝 방식의 k-번째 파티션에 적용되는 profile_tier_level( ) 신택스 구조의, VPS 에서의 profile_tier_level( ) 신택스 구조들의 리스트내에, 인덱스를 명시한다. profile_level_tier_partition_idx[ i ][ j ][ k ] 신택스 엘리먼트의 길이는 Ceil( Log2( vps_num_profile_tier_level_minus1 + 1 ) ) 비트들이다. profile_level_tier_partition_idx[ 0 ][ 0 ][ 0 ] 의 값은 0 과 동일한 것으로 추론된다. profile_level_tier_partition_idx[ i ][ 0 ][ 0 ] 의 값은 1 내지 NumOutputLayerSets - 1 를 포함한 범위인 i 에 대해, profile_level_tier_idx[ i ] 와 동일하게 설정된다. profile_level_tier_partition_idx[ i ]-[ j ][ k ] 의 값은 0 내지 vps_num_profile_tier_level_minus1 를 포함한 범위 이내여야 한다.
일부 예들에서, 제약이 각각의 출력 계층 세트에 대한 하나 보다 많은 파티셔닝 방식이 오직 하나의 파티션을 포함하지 않도록 추가된다. 더욱이, 일부 예들에서, 신택스 엘리먼트 profile_tier_level_idx[i] 는 시그널링되지 않으며, profile_tier_tier_partition_idx[i][j][k] 신택스 엘리먼트가 출력 계층 세트의 모든 계층들을 포함하는 하나의 파티션을 포함하는 출력 계층 세트의 파티셔닝 방식의 프로파일, 티어 및 레벨 표시들을 시그널링하는데 사용된다.
더욱이, 본 개시물의 일부 기법들에 따르면, 프로파일들, 티어들, 및 레벨들을 정의하는 레벨 한계들 및 제한 사항들은 파티션-특정적이다. 다음 텍스트는 프로파일들, 티어들, 및 레벨들에 대한 파티션 특정적인 레벨 한계들 및 제한 사항들을 구현하기 위해 MV-HEVC WD8 에 대한 다른 변경들을 표시한다.
G.11 프로파일들, 티어들, 및 레벨들
G.11.1 프로파일들
G.11.1.2 스테레오 메인 프로파일
스테레오 메인 프로파일을 따르는 계층들의 파티션들을 가지는 출력 계층 세트들을 포함하는 비트스트림들은 출력 계층 세트들의 각각에 대한 유도된 서브-비트스트림에 관한 다음 제약들을 따라야 하며, 여기서, layerSetIdx 는 출력 계층 세트에 대한 계층 세트의 인덱스이며, 서브-비트스트림은, 입력들로서 비트스트림, 7 과 동일한 tIdTarget, 및 인덱스 layerSetIdx 를 가지는 계층 세트의 nuh_layer_id 값들을 포함하는 TargetDecLayerIdList 로, 하위 조항 F.10 에 명시된 바와 같은 서브-비트스트림 추출 프로세스를 호출함으로써 유도되며, 여기서, 파티션들은 입력들로서, 그 서브-비트스트림, 파티션 listOfLayersInPartition 에서의 계층들의 리스트, 및 파티션 numLayersInPartition 에서의 계층들의 개수로, 하위 조항 C.6 에 명시된 바와 같은 비트스트림 파티션을 유도하는 디멀티플렉싱 프로세스를 호출함으로써 유도된다.
스테레오 메인 프로파일을 따르는 계층들의 파티션들을 가지는 출력 계층 세트들에 대한 서브-비트스트림들에 대응하는 비트스트림들은 다음 제약들을 따라야 한다:
- 입력들로서, tIdTarget 의 임의의 값 및 layerIdListTarget 에서의 0 의 값으로, 서브-비트스트림 추출 프로세스로부터 비롯되는 서브-비트스트림은 메인 프로파일을 따라야 한다.
- 비트스트림은 ViewScalExtLayerFlag[ i ] 가 1 과 동일한, i 와 동일한 nuh_layer_id 를 가지는 하나의 계층을 포함하여야 한다.
- ViewScalExtLayerFlag[ i ] 가 1 과 동일할 때, inter_view_mv_vert_constraint_flag 는 i 와 동일한 nuh_layer_id 를 가지는 계층에 대한 활성 SPS RBSP 의 sps_multilayer_extension( ) 신택스 구조에서 1 과 동일하여야 한다.
- ViewScalExtLayerFlag[ i ] 가 1 과 동일할 때, ScalabilityId[ LayerIdxInVps[ i ] ][ smIdx ] 는 i 와 동일한 nuh_layer_id 를 가지는 임의의 코딩된 픽처에 있어서, 1 과 동일하지 않은, 0 내지 15 의 임의의 smIdx 값에 대해, 0 과 동일하여야 한다.
- ViewScalExtLayerFlag[ i ] 가 1 과 동일할 때, num_scaled_ref_layer_offsets 는 i 와 동일한 nuh_layer_id 를 가지는 계층에 대한 각각의 활성 SPS 에서 0 과 동일하여야 한다.
- ViewScalExtLayerFlag[ i ] 가 1 과 동일할 때, i 와 동일한 nuh_layer_id 를 가지는 계층에 대한 활성 SPS 에서 pic_width_in_luma_samples 및 pic_height_in_luma_samples 의 값들은 그 계층의 모든 직접 참조 계층들에 대한 활성 SPS들에서, pic_width_in_luma_samples 및 pic_height_in_luma_samples 의 값들과 각각 동일하여야 한다.
- 비트스트림은 ScalabilityId[ LayerIdxInVps[ nuhLayerIdA ] ][ smIdx ] 가 1 과 동일하지 않은, 0 내지 15 를 포함한 임의의 smIdx 에 대해 0 과 동일하여야 하는 nuhLayerIdA, 및 0 과 동일한 nuh_layer_id 를 가지는 2개의 계층들로 이루어지는 서브-비트스트림을 포함하여야 한다.
- VPS들은 단지 0 과 동일한 avc_base_layer_flag 만을 가져야 한다.
- VPS들은 0 내지 15 를 포함한 범위 이내인 vps_num_rep_formats_minus1 을 가져야 한다.
- SPS들은 0 과 동일하고 그리고 2 내지 6 를 포함한 범위 이내인 i 에 대해서만 오직 0 과 동일한 sps_extension_type_flag[ i ] 를 가져야 한다.
- PPS들은 1 내지 6 를 포함한 범위 이내의 i 에 대해서만 오직 0 과 동일한 pps_extension_type_flag[ i ] 를 가져야 한다.
이 하위 조항의 나머지 및 하위 조항 G.11.3 에서, 출력 계층 세트의 서브-비트스트림에 대해, general_profile_idc, general_profile_compatibility_flag[ i ], general_tier_flag, 및 general_level_idc 는, 그 출력 계층 세트에 대한 profile_tier_level( ) 신택스 구조에서, general_profile_idc, general_profile_compatibility_flag[ i ], general_tier_flag, 및 general_level_idc 를 각각 지칭한다. 스테레오 메인 프로파일에 대한 출력 계층 세트의 서브-비트스트림의 적합성은 5 과 동일한 general_profile_idc 또는 1 과 동일한 general_profile_compatibility_flag[ 5 ] 로 표시된다.
- 주 1 - general_profile_compatibility_flag[ 5 ] 가 1 과 동일할 때, 1 과 동일한 i 에 대해, general_profile_compatibility_flag[ i ] 는 또한 1 과 동일해야 한다.
더욱이, 파티션 특정적인 레벨 한계들 및 프로파일들, 티어들, 및 레벨들에 대한 제한 사항들을 구현하기 위해, 그 자신이 ITU-T SG 16 WP 3 와 ISO/IEC JTC 1/SC 29/WG 11 의 JCT-VC (Joint Collaborative Team on Video Coding), 16차 회의: 2014년 1월 9일 내지 17일, 미국, 산호세, Chen 등, "High efficiency video coding (HEVC) scalable extensions Draft 5", 문서 JCTVC-P1008_v4 의 패러그라프 G.11.2 를 수정하는 JCTVC-Q0145 의 패러그라프 G.11.2 에 대해, 다음 변경들이 이루어질 수도 있다.
G.11.2 티어들 및 레벨들
G.11.2.1 일반적인 티어 및 레벨 한계들
티어 능력들의, 비교의 목적들을 위해, 0 과 동일한 general_tier_flag 를 가지는 티어는 1 과 동일한 general_tier_flag 를 가지는 티어보다 더 낮은 티어인 것으로 간주된다.
레벨 능력들의, 비교의 목적들을 위해, 특정 티어의 특정 레벨은, 특정 레벨의 general_level_idc 의 값이 다른 레벨의 general_level_idc 의 값보다 작을 때 동일한 티어의 일부 다른 레벨보다 더 낮은 레벨인 것으로 간주된다.
다음은 이 하위 조항, 즉, 하위 조항 G.11.2.2, 및 하위 조항 G.11.3 에서의 제약들을 표현하기 위해 명시된다:
- 액세스 유닛 n 이 디코딩 순서에서 n-번째 액세스 유닛이고 이때 제 1 액세스 유닛이 액세스 유닛 0 (즉, 0-번째 액세스 유닛) 이라 둔다.
- 변수 fR 가 1÷300 과 동일하게 설정되게 둔다.
- 변수 optLsIdx 가 비트스트림에 포함된 출력 계층 세트의 출력 계층 세트 인덱스라 두고, 그리고 그 출력 계층 세트의 서브-비트스트림이, 입력으로서, 비트스트림 7 과 동일한 tIdTarget 그리고 출력 계층 세트의 nuh_layer_id 값들을 포함하는 TargetDecLayerIdList 으로, 하위 조항 F.10 에 명시된 바와 같은 서브-비트스트림 추출 프로세스를 호출함으로써 유도된다고 둔다.
- 변수 partitionIdx 가 인덱스 optLsIdx 를 가지는 출력 계층 세트의 임의의 특정 파티션에의 인덱스이고, 그리고 그 파티션이 입력들로서, 그 서브-비트스트림, 파티션 listOfLayersInPartition 에서의 계층들의 리스트, 및 파티션 numLayersInPartition 에서의 계층들의 개수와 함께, 하위 조항 C.6 에 명시된 바와 같은 디멀티플렉싱 프로세스를 호출함으로써, 유도된다고 둔다.
- 변수들 numLayersInOptLayerSet 및 numLayersInSubBitstream 이 다음과 같이 유도된다고 둔다:
Figure pct00008
- 변수 partitionSizeInSamplesY 가 다음과 같이 유도된다고 하자:
Figure pct00009
- 변수 scaleFactor 가 Ceil( partitionSizeInSamplesY / MaxLumaPs ) 와 동일하게 설정된다고 두고, 여기서, MaxLumaPs 는 테이블 A-1 에서, 파티션의 레벨에 대해 명시된다.
- 변수 maxPartitionSliceSegs 가 scaleFactor * MaxSliceSegmentsPerPicture 와 동일하게 설정된다고 두고, 여기서, MaxSliceSegmentsPerPicture 는 테이블 A-1 에서, 파티션의 티어 및 레벨에 대해 명시된다.
명시된 티어 및 레벨에서의 프로파일을 따르는 각각의 파티션은 부속서 C 에 명시된 바와 같은 각각의 비트스트림 적합성 테스트에 대한 다음 제약들을 따라야 한다:
a) 파티션에서 각각의 계층에 대해, PicSizeInSamplesY 는 MaxLumaPs 미만이거나 또는 동일하여야 하며, 여기서 MaxLumaPs 는 테이블 A-1 에 파티션의 티어 및 레벨에 대해 명시된다.
b) 파티션에서 각각의 계층에 대해, pic_width_in_luma_samples 의 값은 Sqrt( MaxLumaPs * 8 ) 미만이거나 또는 동일하여야 한다.
c) 파티션에서 각각의 계층에 대해, pic_height_in_luma_samples 의 값은 Sqrt( MaxLumaPs * 8 ) 미만이거나 또는 동일하여야 한다.
d) 파티션에서 currLayerId 와 동일한 nuh_layer_id 를 가지는 각각의 계층에 대해, max_vps_dec_pic_buffering_minus1[ optLsIdx ][ LayerIdxInVps[ currLayerId ] ][ HighestTid ] 의 값은 파티션의 티어 및 레벨에 대해, PicSizeInSamplesY 가 partitionSizeInSamplesY 로 대체됨과 함께, 방정식 A-2 에 의해 유도된 바와 같은 MaxDpbSize 이하이어야 한다.
e) 레벨 5 및 더 높은 레벨들에 대해, 파티션에서 각각의 계층에 대한 CtbSizeY 의 값은 32 또는 64 와 동일하여야 한다.
f) 파티션에서 각각의 픽처에 대한 NumPicTotalCurr 의 값은 8 미만이거나 또는 동일하여야 한다.
g) 파티션에서 각각의 코딩된 픽처를 디코딩할 때, num_tile_columns_minus1 의 값은 MaxTileCols 미만이어야 하며 num_tile_rows_minus1 은 MaxTileRows 미만이어야 하며, 여기서 MaxTileCols 및 MaxTileRows 는 테이블 A-1 에 파티션의 티어 및 레벨에 대해 명시된다.
h) 파티션의 VCL HRD 파라미터들에 대해, CpbSize[ i ] 는 0 내지 cpb_cnt_minus1[ HighestTid ] 를 포함한 범위인 적어도 하나의 i 의 값에 대해 1000 * MaxCPB 이하이어야 하며, 여기서, CpbSize[ i ] 는 하위 조항 C.1 에 명시된 바와 같이 선택된 파라미터들에 기초하여 하위 조항 E.3.3 에 명시되며 MaxCPB 는 테이블 A-1 에 파티션의 티어 및 레벨에 대해 1000 비트의 유닛들에서 명시된다.
i) 파티션의 NAL HRD 파라미터들에 대해, CpbSize[ i ] 는 0 내지 cpb_cnt_minus1[ HighestTid ] 를 포함한 범위인 적어도 하나의 i 의 값에 대해 1100 * MaxCPB 이하이어야 하며, 여기서, CpbSize[ i ] 는 하위 조항 C.1 에 명시된 바와 같이 선택된 파라미터들에 기초하여 하위 조항 E.3.3 에 명시되며 MaxCPB 는 테이블 A-1 에 파티션의 티어 및 레벨에 대해 1100 비트의 유닛들에서 명시된다.
테이블 A-1 은 각각의 티어의 각각의 레벨에 대한 한계들을 명시한다.
파티션이 따르는 티어 및 레벨은 다음과 같이 신택스 엘리먼트들 general_tier_flag 및 general_level_idc 로 표시된다:
- 0 과 동일한 general_tier_flag 는 메인 티어에 대한 적합성을 표시하며, 1 과 동일한 general_tier_flag 는 테이블 A-1 에 명시된 티어 제약들에 따른, 높은 티어 (높은 티어) 에 대한 적합성을 표시한다. general_tier_flag 는 (테이블 A-1 에서 "-" 로 마킹된 엔트리들에 대응하는) 레벨 4 아래의 레벨들에 대해 0 과 동일하여야 한다.
- general_level_idc 는 테이블 A-1 에 명시된 레벨 넘버의 30배의 값과 동일하여야 한다.
JCTVC-Q0145 는 ITU-T SG 16 WP 3 와 ISO/IEC JTC 1/SC 29/WG 11 의 3D 비디오 코딩 확장판 개발에 관한 합동 작업팀, 7차 회의: 2014년 1월 11일 내지 17일, 미국, 산호세, Tech 등, "MV-HEVC Draft Text 7", JCT3V-G1004-v7 에 대한 변경들을 기술하는 부가물 (JCTVC-Q0145_MvHevcText) 을 포함한다. 다음 텍스트는 프로파일들, 티어들, 및 레벨들에 대한 파티션 특정적인 레벨 한계들 및 제한 사항들을 구현하기 위해 JCTVC-Q0145_MvHevcText 에 대한 변경들을 표시한다. 간결성을 위해, JCTVC-Q0145_MvHevcText 로부터 삭제된 텍스트가 아래에서 생략된다.
G.11.2.2 메인, 메인 10, 및 스테레오 메인 프로파일들 에 대한 프로파일-특정 레벨 한계들
명시된 티어 및 레벨에서 스테레오 메인 프로파일을 따르는 각각의 파티션은 부속서 C 에 명시된 바와 같은 각각의 비트스트림 적합성 테스트에 대한 다음 제약들을 따라야 하며, 여기서 "액세스 유닛" 은 파티션에 포함된 픽처들의 세트, 그들의 연관된 비-VCL NAL 유닛들과 함께, 파티션에 포함되며 동일한 출력 시간을 가지는 계층들의 세트를 표시하기 위해 사용되며, CPB 는 BPB 인 것으로 이해된다:
a) 하위 조항 C.2.3 에 명시된 바와 같은, CPB 로부터의 액세스 유닛 n (여기서 n 은 0 보다 크다) 의 공칭 제거 시간은 AuNominalRemovalTime[ n ] - AuCpbRemovalTime[ n - 1 ] 이 Max( partitionSizeInSamplesY ÷ MaxLumaSr, fR ) 이상이라는 제약을 만족해야 하며, 여기서, partitionSizeInSamplesY 는 액세스 유닛 n - 1 에 대한 partitionSizeInSamplesY 의 값이며, MaxLumaSr 은 파티션의 티어 및 레벨에 대해 액세스 유닛 n - 1 에 적용하는 테이블 A-2 에 명시된 값이다.
b) 하위 조항 C.3.3 에 명시된 바와 같은, DPB 로부터의 픽처들의 연속된 출력 시간들 사이의 차이는 DpbOutputInterval[ n ] 이 Max( partitionSizeInSamplesY
Figure pct00010
MaxLumaSr, fR ) 이상이라는 제약을 만족해야 하며, 여기서, 액세스 유닛 n 이 출력되는 픽처를 가지고 이러한 액세스 유닛들의 마지막이 아닌 액세스 유닛이라고 하면, partitionSizeInSamplesY 는 액세스 유닛 n 의 partitionSizeInSamplesY 의 값이며, MaxLumaSr 은 액세스 유닛 n 에 대한 테이블 A-2 에 파티션의 티어 및 레벨에 대해 명시된 값이다.
c) 액세스 유닛 0 의 제거 시간은 액세스 유닛 0 에서의 코딩된 슬라이스 세그먼트들의 개수가 Min( Max( numLayersInPartition, MaxSliceSegmentsPerPicture * MaxLumaSr / MaxLumaPs * ( AuCpbRemovalTime[ 0 ] - AuNominalRemovalTime[ 0 ] ) + MaxSliceSegmentsPerPicture * partitionSizeInSamplesY / MaxLumaPs ), MaxSliceSegmentsPerPicture ) 이하라는 제약을 만족해야 하며, 여기서, MaxSliceSegmentsPerPicture, MaxLumaPs, 및 MaxLumaSr 은 테이블 A-1 및 테이블 A-2 에 파티션의 티어 및 레벨에 대해 명시된 값들이다.
d) 액세스 유닛들 n 및 n - 1 (여기서, n 은 0 보다 크다) 의 연속된 CPB 제거 시간들 사이의 차이는 액세스 유닛 n 에서의 코딩된 슬라이스 세그먼트들의 개수가 Min( (Max( numLayersInPartition, MaxSliceSegmentsPerPicture * MaxLumaSr / MaxLumaPs * ( AuCpbRemovalTime[ n ] - AuCpbRemovalTime[ n - 1 ] ) ), MaxSliceSegmentsPerPicture ) 이하라는 제약을 만족해야 하며, 여기서, numLayersInPartition 은 액세스 유닛 n 에 대한 값들이며, MaxSliceSegmentsPerPicture, MaxLumaPs 및 MaxLumaSr 은 액세스 유닛 n 에 적용하는, 테이블 A-1 및 테이블 A-2 에 파티션의 티어 및 레벨에 대해 각각 명시된 값들이다.
e) 파티션에 대한 VCL HRD 파라미터들에 대해, BitRate[ i ] 는 0 내지 cpb_cnt_minus1[ HighestTid ] 를 포함한 범위인 적어도 하나의 i 의 값에 대해, CpbBrVclFactor * MaxBR 이하이어야 하며, 여기서, BitRate[ i ] 는 하위 조항 C.1 에 명시된 바에 따라 선택된 파라미터들에 기초하여 하위 조항 E.3.3 에 명시되며, MaxBR 는 테이블 A-2 에 CpbBrVclFactor 비트들/s 의 유닛들로 명시되며, 여기서, CpbBrVclFactor 는 테이블 A-3 에 파티션의 티어 및 레벨에 대해 명시된다.
f) 파티션에 대한 NAL HRD 파라미터들에 대해, BitRate[ i ] 는 0 내지 cpb_cnt_minus1[ HighestTid ] 를 포함한 범위인 적어도 하나의 i 의 값에 대해, CpbBrNalFactor * MaxBR 이하이어야 하며, 여기서, BitRate[ i ] 는 하위 조항 C.1 에 명시된 바에 따라 선택된 파라미터들에 기초하여 하위 조항 E.3.3 에 명시되며, MaxBR 는 테이블 A-2 에 CpbBrNalFactor 비트들/s 의 유닛들로 명시되며, 여기서, CpbBrNallFactor 는 테이블 A-3 에 파티션의 티어 및 레벨에 대해 명시된다.
g) 액세스 유닛 0 에 대한 NumBytesInNalUnit 변수들의 합계는 FormatCapabilityFactor * ( Max( partitionSizeInSamplesY, fR * MaxLumaSr ) + MaxLumaSr * ( AuCpbRemovalTime[ 0 ] - AuNominalRemovalTime[ 0 ] ) ) ÷ MinCr 이하이어야 하며, 여기서, MaxLumaSr 및 MinCr 은 테이블 A-2 에 명시된 값이고 FormatCapabilityFactor 는 픽처 0 에 적용하는, 테이블 A-3 에 파티션의 티어 및 레벨에 대해 명시된 값이다.
h) 액세스 유닛 n (여기서, n 은 0 보다 크다) 에 대한 NumBytesInNalUnit 변수들의 총합은 FormatCapabilityFactor * MaxLumaSr * ( AuCpbRemovalTime[ n ] - AuCpbRemovalTime[ n - 1 ] ) ÷ MinCr 이하이어야 하며, 여기서, MaxLumaSr 및 MinCr 은 테이블 A-2 에 명시된 값들이고 FormatCapabilityFactor 는 픽처 n 에 적용하는, 테이블 A-3 에 파티션의 티어 및 레벨에 대해 명시된 값이다.
i) 액세스 유닛 0 의 제거 시간은 액세스 유닛 0 에서 코딩된 픽처들에서의 타일들의 개수가 Min( Max( numLayersInPartition, MaxTileCols * MaxTileRows * 120 * ( AuCpbRemovalTime[ 0 ] - AuNominalRemovalTime[ 0 ] ) + MaxTileCols * MaxTileRows ), MaxTileCols * MaxTileRows ) 이하라는 제약을 만족해야 하며, 여기서, MaxTileCols 및 MaxTileRows 는 테이블 A-1 에 파티션의 티어 및 레벨에 대해 명시된 값들이다.
j) 액세스 유닛들 n 및 n - 1 (여기서, n 은 0 보다 크다) 의 연속된 CPB 제거 시간들 사이의 차이는 액세스 유닛 n 에서의 코딩된 픽처들에서의 타일들의 개수가 Min( Max( numLayersInPartition, MaxTileCols * MaxTileRows * 120 * ( AuCpbRemovalTime[ n ] - AuCpbRemovalTime[ n - 1 ] ) ), MaxTileCols * MaxTileRows ) 이하라는 제약을 만족해야 하며, 여기서, numLayersInPartition 은 액세스 유닛 n 에 대한 값들이며, MaxTileCols 및 MaxTileRows 은 액세스 유닛 n 에 적용하는, 테이블 A-1 에 파티션의 티어 및 레벨에 대해 명시된 값들이다.
더욱이, 본 개시물의 일부 예들에 따르면, 다음 변경들이 MV-HEVC WD8 의 패러그라프 G.11.1.2 스테레오 메인 프로파일에 대해 이루어질 수도 있다. 아래 텍스트에서, 본 개시물에서 위에서 설명된 패러그라프 G.11.1.2 의 예시적인 버전에 대한 변경들이 표시된다.
G.11.1.2 스테레오 메인 프로파일
스테레오 메인 프로파일을 따르는 파티션들을 가지는 출력 계층 세트들을 포함하는 비트스트림에 대해,
- olsIdx 가 출력 계층 세트의 출력 계층 세트 인덱스라 둔다.
- layerSetIdx 가 출력 계층 세트에 대한 계층 세트 인덱스라 둔다.
- 출력 계층 세트의 서브-비트스트림이 다음 입력들: 비트스트림, 6 과 동일한 tIdTarget, 및 인덱스 layerSetIdx 를 가지는 계층 세트에 포함되고 1차 픽처 계층들인 계층들의 nuh_layer_id 값들을 포함하는 layerIdListTarget 로, 하위 조항 F.10 에 명시된 바와 같은 서브-비트스트림 추출 프로세스를 호출함으로써 유도된다고 둔다.
- 기초 계층 비트스트림이 입력들로서, 비트스트림, 6 과 동일한 tIdTarget, 및 0 과 동일한 오직 하나의 nuh_layer_id 값을 포함하는 layerIdListTarget 로, 하위 조항 F.10 에 명시된 바와 같은 서브-비트스트림 추출 프로세스를 호출함으로써 유도된다고 둔다.
[[스테레오 메인 프로파일을 따르는 계층들의 파티션들을 가지는 출력 계층 세트들을 포함하는 비트스트림들은 출력 계층 세트들의 각각에 대한 유도된 서브-비트스트림에 관한 다음 제약들을 따라야 하며, 여기서, layerSetIdx 는 출력 계층 세트에 대한 계층 세트의 인덱스이며, 서브-비트스트림은 입력들로서, 그 비트스트림, 7 과 동일한 tIdTarget, 및 인덱스 layerSetIdx 를 가지는 계층 세트의 nuh_layer_id 값들을 포함하는 TargetDecLayerIdList 로 하위 조항 F.10 에 명시된 바와 같은 서브-비트스트림 추출 프로세스를 호출함으로써 유도되며, 파티션들은 서브-비트스트림, 파티션 listOfLayersInPartition 에서의 계층들의 리스트, 및 파티션 numLayersInPartition 에서의 계층들의 개수로 하위 조항 C.6 에 명시된 바와 같은 비트스트림 파티션을 유도하는 디멀티플렉싱 프로세스를 호출함으로써 유도되며]] 스테레오 메인 프로파일을 따르는 [[계층들의]] 파티션들을 가지는 출력 계층 세트들을 포함하는 [[를 위한 서브-비트스트림들에 대응하는]] 비트스트림[[들]]은 다음 제약들을 따라야 한다:
- 모든 활성 VPS들은 단지 1 과 동일한 vps_base_layer_internal_flag 만을 가져야 한다.
- 모든 활성 VPS들은 0 내지 15 를 포함한 범위 이내인 vps_num_rep_formats_minus1 을 가져야 한다.
- [[스테레오 메인 프로파일을 따르는 출력 계층 세트들을 포함하는 비트스트림들은 출력 계층 세트들의 각각에 대한 유도된 서브-비트스트림에 관한 다음 제약들을 따라야 하며, 여기서, 출력 계층 세트 인덱스 olsIdx 및 layerSetIdx 는 출력 계층 세트에 대한 계층 세트이며, 서브-비트스트림은 다음 입력들: 비트스트림, 6 과 동일한 tIdTarget, 및 인덱스 layerSetIdx 를 가지는 계층 세트에 포함되고 1차 픽처 계층들인 계층들의 nuh_layer_id 값들을 포함하는 layerIdListTarget 로, 하위 조항 F.10 에 명시된 바와 같은 서브-비트스트림 추출 프로세스를 호출함으로써, 유도된다. ]]
[[ 스테레오 메인 프로파일을 따르는 출력 계층 세트들을 포함하는 비트스트림들은 또한 입력들로서, 비트스트림, 6 과 동일한 tIdTarget, 및 0 과 동일한 오직 하나의 nuh_layer_id 값을 포함하는 layerIdListTarget 로, 하위 조항 F.10 에 명시된 바와 같은 서브-비트스트림 추출 프로세스를 호출함으로써 유도되는 기초 계층 비트스트림에 관한 다음 제약들을 따라야 한다. ]]
[[스테레오 메인 프로파일을 따르는 비트스트림들로부터 유도된]] 기초 계층 비트스트림은 다음 제약들을 따라야 한다:
- 기초 계층 비트스트림은 하위 조항 A.3.2 에 명시된 메인 프로파일의 모든 제약들을 따라야 한다.
- 기초 계층 [[비트스트림]][[의]] 에 대한 모든 활성 SPS들은 1 과 동일한 general_profile_idc 또는 1 과 동일한 general_profile_compatibility_flag[ 1 ] 을 가져야 한다.
[[스테레오 메인 프로파일을 따르는]] 각각의 출력 계층 세트[[에 대한]] [[유도된]] 서브-비트스트림은 다음 제약들을 따라야 한다:
- 서브-비트스트림에 대한 모든 활성 SPS들은 오직 1 과 동일한 chroma_format_idc 만을 가져야 한다.
- 서브-비트스트림[[의]] 에 대한 임의의 활성 SPS 로부터 유도된 CtbLog2SizeY 는 4 내지 6 를 포함한 범위 이내여야 한다.
- ScalabilityId[ j ][ smIdx ] 는 1 와 동일하지 않은 임의의 smIdx 값에 대해, 그리고 그 서브-비트스트림에 대한 j 의 임의의 값에 대해, 0 과 동일하여야 한다.
이 하위 조항의 나머지 및 하위 조항 G.11.3 에서, 출력 계층 세트의 서브-비트스트림에 대해, general_profile_idc, general_profile_compatibility_flag[ i ], general_tier_flag, 및 general_level_idc 는, 그 [[출력 계층 세트]] 파티션에 대한 profile_tier_level( ) 신택스 구조에서, general_profile_idc, general_profile_compatibility_flag[ i ], general_tier_flag, 및 general_level_idc 를 각각 지칭한다.
스테레오 메인 프로파일에 대한 [[출력 계층 세트]] 파티션의 서브-비트스트림의 적합성은 6 [[5]] 과 동일한 general_profile_idc 또는 1 과 동일한 general_profile_compatibility_flag[ 6 [[5]] ] 로 표시된다.
- 주 1 - general_profile_compatibility_flag[ 6 [[5]] ] 가 1 과 동일할 때, [[1 과 동일한 i 에 대해,]] general_profile_compatibility_flag[ 1 [[i]] ] 는 또한 1 과 동일해야 한다.
더욱이, 본 개시물의 일부 예들에서, 다음 변경들이 MV-HEVC WD8 의 패러그라프 G.11.2.1 에 대해 이루어져야 할 수도 있다. 아래 텍스트는 본 개시물에서 위에서 설명된 패러그라프 G.11.2.1 의 예시적인 버전의 일부에 대한 변경들을 표시한다.
G.11.2.1 일반적인 티어 및 레벨 한계들
조건 (a) 는 다음과 같이 변경된다:
j) 파티션[[에서 각각의 계층에 대해]][[,]] PicSizeInSamplesY 의 값은 MaxLumaPs 미만이거나 또는 동일하여야 하며, 여기서 MaxLumaPs 는 테이블 A-1 에 파티션의 티어 및 레벨에 대해 명시된다.
게다가, 본 개시물의 일부 예들에서, 다음 변경들이 MV-HEVC WD8 의 패러그라프 G.11.2.2 에 대해 이루어진다. 아래 텍스트는 본 개시물에서 위에서 설명된 패러그라프 G.11.2.1 의 예시적인 버전의 일부에 대한 변경들을 표시한다.
G.11.2.2 메인, 메인 10, 및 스테레오 메인 프로파일들에 대한 프로파일-특정 레벨 한계들
명시된 티어 및 레벨에서의 스테레오 메인 프로파일을 따르는 각각의 파티션은 부속서 C 에 명시된 바와 같은 [[각각의 비트스트림]] 적합성 테스트에 대한 다음 제약들을 따라야 하며, 여기서, "액세스 유닛" 은 파티션에 포함된 픽처들의 세트, 그들의 연관된 비-VCL NAL 유닛들과 함께, 파티션에 포함되고 동일한 출력 시간을 가지는 계층들의 세트를 표시하기 위해 사용되며, CPB 는 BPB 인 것으로 이해된다:
더욱이, 본 개시물의 하나 이상의 기법들에 따라서 다른 곳에서 설명된 바와 같이, 각각의 출력 계층 세트의 각각의 개개의 파티셔닝 방식에 대해, 비트스트림의 VPS VUI 또는 SEI 메시지는 개개의 파티셔닝 방식의 HRD 파라미터 세트를 식별할 수도 있다. 이러한 예들을 구현하기 위해 테이블 4 에 나타낸 변경들이 MV-HEVC WD8 및 SHVC WD6 의 패러그라프 F.7.3.2.1.6 에서 정의된 VPS VUI 비트스트림 파티션 HRD 파라미터들 신택스 구조에 대해 이루어질 수도 있다.
테이블 4
Figure pct00011
Figure pct00012
테이블 4 의 예에 따르면, MV-HEVC WD8 및 SHVC WD6 의 패러그라프들 F.7.4.3.1.6 에 정의된 바와 같은 VPS VUI 비트스트림 파티션 HRD 파라미터들의 의미들에 대해 다음 변경들이 이루어질 수도 있다.
[[ num_bitstream_partitions [ h ] 는 HRD 파라미터들이 인덱스 h 를 가지는 계층 세트에 대해 명시된 비트스트림 파티션들의 수를 명시한다.
layer_in_bsp_flag [ h ][ i ][ j ] 는 인덱스 j 를 가지는 계층이 인덱스 h 를 가지는 계층 세트 내 인덱스 i 를 가지는 비트스트림 파티션의 부분이라는 것을 명시한다.]]
num_bsp_sched_combinations_minus1[ h ][ i ] 플러스 1 은 [[인덱스 h 를 가지는]] h-번째 출력 계층 세트의 i-번째 파티셔닝 방식에 대한 비트스트림 파티션들에 대해 명시된 hrd_parameters( ) 와 전달 스케쥴들의 조합들의 수를 명시한다.
변수 SchedCombCnt[ h ][ i ] 는 num_bsp_sched_combinations_minus1[ h ][ i ] + 1 과 동일하게 설정된다.
bsp_comb_hrd_idx[ h ][ i ][ j ][ k ][[인덱스 h 를 가지는]] h-번째 출력 계층 세트에 대한 i-번째 파티셔닝 방식의 [[인덱스 j 를 가지는 및]] [[비트스트림 ]] k-번째 파티션에 대해 명시된 hrd_parameters( ) 와 전달 스케쥴의 [[i]] j-번째 조합에 사용되는 vps_vui_bsp_hrd_parameters( ) 신택스 구조 내 hrd_parameters( ) 의 인덱스를 명시한다.
bsp_comb_sched_idx[ h ][ i ][ j ][ k ][[인덱스 h 를 가지는]] h-번째 출력 계층 세트에 대한 i-번째 파티셔닝 방식 [[및]] [[인덱스 j 를 가지는]] [[비트스트림]] k-번째 파티션에 대해 명시된 hrd_parameters( ) 와 전달 스케쥴의 [[i]]j-번째 조합에 사용되는, 인덱스 bsp_comb_hrd_idx[ h ][ i ][ j ][ k ] 를 가지는 hrd_parameters( ) 신택스 구조 내 전달 스케쥴의 인덱스를 명시한다.
더욱이, 본 개시물의 하나 이상의 기법들에 따르면, 아래 테이블 5 에 나타낸 변경들이 MV-HEVC WD8 및 SHVC WD6 의 패러그라프 F.14.1.5 에 정의된 바와 같은, 비트스트림 파티션 HRD 파라미터들 SEI 메시지 신택스에 대해 이루어질 수도 있다.
테이블 5
Figure pct00013
Figure pct00014
더욱이, 테이블 5 의 예에서, 비트스트림 파티션 네스팅 SEI 메시지는 SEI 메시지들을 출력 계층 세트의 비트스트림 파티션과 연관시키는 메커니즘을 제공한다. 테이블 5 의 예에서, 비트스트림 파티션 HRD 파라미터들 SEI 메시지 의미들에 대한 다음 변경들이 MV-HEVC WD8 및 SHVC WD6 의 패러그라프 F.14.2.5 에 대해 이루어질 수도 있다.
num_sei_partitioning_schemes_minus1 [ olsIdx ] 플러스 1 은 인덱스 olsIdx 를 가지는 출력 계층 세트에 대해 명시된 파티셔닝 방식들의 수를 명시한다. num_sei_partitioning_schemes_minus1[ olsIdx ] 의 값은 0 내지 15 를 포함한 범위 이내여야 한다.
num_sei_bitstream_partitions_minus 2 [[1]] [ olsIdx ][ i ] 플러스 [[1]] 2 는 HRD 파라미터들이 인덱스 olsIdx 를 가지는 출력 계층 세트의 i-번째 파티셔닝 방식에 대해 명시되는 비트스트림 파티션들의 수를 명시한다. num_sei_bitstream_partitions_minus1[ olsIdx ][ i ] 의 값은 0 내지 NumLayersInIdList[ LayerSetIdxForOutputLayerSet[ olsIdx ] ] - 1 를 포함한 범위 이내여야 한다. num_sei_bitstream_partitions_minus1[ olsIdx ][ 0 ] 의 값은 0 과 동일한 것으로 추론된다.
변수 NumPartitionInScheme[ i ][ j ] 의 값은 다음과 같이 유도된다:
Figure pct00015
sei_layer_in_bsp_flag[ olsIdx ][ i ][ j ][ k ] 는 인덱스 [[j]] k 를 가지는 계층이 인덱스 olsIdx 를 가지는 계층 세트의 인덱스 i 를 가지는 파티셔닝 방식 내에서 인덱스 [[i]] j 를 가지는 비트스트림 파티션의 부분이라는 것을 명시한다. layer_included_in_partition_flag[ olsIdx ][ 0 ][ 0 ][ k ] 의 값은 0 내지 vps_max_layers_minus1 를 포함한 범위인 k 에 대해, layer_id_included_flag[ LayerSetIdxForOutputLayerSet[ olsIdx ] ][ k ] 의 값과 동일한 것으로 추론된다.
[[i]] m[[j]] n 보다 작도록, 0 내지 N [[n]]um[[_s]] Sei[[_b]] Bitstream[[_p]] Partitions [[_minus1]][ olsIdx ][ i ] [[ 를 포함한]] 의 범위에서의 [[i]] m[[j]] n 의 임의의 값들에 대해 인덱스 [[i]] m 을 가지는 비트스트림 파티션에서의 임의의 계층들의 직접 또는 간접 참조 계층들을 인덱스 [[j]] n 을 가지는 비트스트림 파티션이 포함하지 않아야 한다는 것이 비트스트림 적합성의 요구사항이다.
sei_num_bsp_sched_combinations_minus1[ olsIdx ][ i ] 플러스 1 은 인덱스 olsIdx 를 가지는 출력 계층 세트의 인덱스 i 를 가지는 파티셔닝 방식에 대한 비트스트림 파티션들에 대해 명시된 hrd_parameters( ) 와 전달 스케쥴들의 조합들의 수를 명시한다.
변수 SchedCombCnt[ olsIdx ][ i ] 는 sei_num_bsp_sched_combinations_minus1[ olsIdx ][ i ] + 1 과 동일하게 설정된다.
sei_bsp_comb_hrd_idx[ olsIdx ][ i ][ j ][ k ] 는 인덱스 olsIdx 를 가지는 출력 계층 세트에 대한, 인덱스 i [[및]] 를 가지는 파티셔닝 방식의 인덱스 [[j]] k 를 가지는 비트스트림 파티션에 대해 명시된 hrd_parameters( ) 와 전달 스케쥴의 [[i]] j-번째 조합에 사용되는 이 SEI 메시지 내 hrd_parameters( ) 의 인덱스를 명시한다.
sei_bsp_comb_sched_idx[ olsIdx ][ i ][ j ][ k ] 는 인덱스 olsIdx 를 가지는 출력 계층 세트에 대한, 인덱스 i [[및]] 를 가지는 파티셔닝 방식의 인덱스 [[j]] k 를 가지는 비트스트림 파티션에 대해 명시된 hrd_parameters( ) 와 전달 스케쥴의 [[i]] j-번째 조합에 사용되는 인덱스 sei_bsp_comb_hrd_idx[ olsIdx ][ i ][ j ][ k ] 를 가지는 hrd_parameters( ) 신택스 구조 내 전달 스케쥴의 인덱스를 명시한다.
MV-HEVC WD8 및 SHVC WD6 에서의 부속서 C 는 HRD 를 기술한다. 좀더 자세하게 설명하면, MV-HEVC WD8 및 SHVC WD6 의 패러그라프 C.1 은 테스트 중인 비트스트림으로서 지칭되는 비트스트림의 적합성을 체킹하는데 다수의 테스트들이 요구될 수도 있다는 것을 표시한다. 더욱이, MV-HEVC WD8 및 SHVC WD6 의 패러그라프 C.1 은 비트스트림의 적합성을 체크하기 위해 적용할 일련의 단계들을 표시한다.
본 개시물의 일부 예들에서, 본 개시물에서 다른 곳에 설명된 파티셔닝 방식을 지원하기 위해 MV-HEVC WD8 및 SHVC WD6 의 패러그라프 C.1 에 설명된 일련의 단계들이 수정된다. 예를 들어, MV-HEVC WD8 및 SHVC WD6 의 패러그라프 C.1 에 대해 다음 변경들이 이루어질 수도 있다.
각각의 테스트를 위해, 다음 단계들이 열거된 순서로 적용된다:
1. TargetOp 로서 표기되는, 테스트 중인 동작 지점은, 목표 출력 계층 세트를 식별하는 TargetOutputLayerSetIdx 에 대한 값을 선택하고 목표 최고 TemporalId 값 HighestTid 를 선택함으로써 선택된다. TargetOutputLayerSetIdx 의 값은 0 내지 NumOutputLayerSets - 1 를 포함한 범위 이내여야 한다. HighestTid 의 값은 0 내지 MaxSubLayersInLayerSetMinus1[ LayerSetIdxForOutputLayerSet [ TargetOutputLayerSetIdx ] ] 를 포함한 범위 이내여야 한다. 변수들 TargetDecLayerSetIdx, TargetOptLayerIdList, 및 TargetDecLayerIdList 는 그러면 방정식 8-1 에 의해 명시된 바와 같이 유도된다. 테스트 중인 동작 지점은 TargetOptLayerIdList 와 동일한 OptLayerIdList, TargetDecLayerIdList 와 동일한 OpLayerIdList, 및 HighestTid 와 동일한 OpTid 를 갖는다.
2. 조항 10 에서 명시된 바와 같은 서브-비트스트림 추출 프로세스가 입력들로서 테스트 중인 비트스트림, HighestTid, 및 TargetDecLayerIdList 로 호출되며, 그 출력이 BitstreamToDecode 에 할당된다. 파티셔닝 방식은 선택된 출력 계층 세트에 대한 활성 VPS 에서 시그널링되는 파티셔닝 방식들의 리스트로부터 선택된다. 그후, 선택된 파티셔닝 방식에 대해, 파티션은 선택된 출력 계층 세트에 대한 VPS 에서 시그너링되는 파티션들의 리스트로부터 선택된다.
3. 선택된 파티션이 선택된 출력 계층 세트의 모든 계층들을 포함하면, 비트스트림-특정 CPB 동작이 선택된다. 그렇지 않으면, 비트스트림-파티션 특정적인 CPB 동작이 선택된다. 후속 단계들은 하위 조항 C.6 에서 비트스트림 파티션을 유도하는 디멀티플렉싱 프로세스로 유도된, [[vps_vui_bsp_hrd_parameters( ) 신택스 구조 양쪽이 활성 VPS 에 존재할 때, TargetPartitioningScheme 으로서 표시되는, 파티셔닝 방식이, 1 내지 num_partitioning_schemes_minus1[ TargetOutputLayerSetIdx ] 를 포함한 범위인 TargetPartitioningSchemeIdx 에 대한 값을 선택함으로써 선택된다. 및 num_bitstream_partitionsnNum_pPartitions_iIn_sScheme _minus1[ TargetDecOutputLayerSetIdx ][ TargetPartitioningSchemeIdx ] 가 1 01 보다 크고 여기서 TargetPartitioningSchemeIdx 가 1 내지 num_partitioning_schemes_minus1[ TargetOutputLayerSetIdx ] 의 범위인 선택된 TargetPartitioningScheme 의 인덱스일 때, 또는 비트스트림 파티션 HRD 파라미터들 SEI 메시지 양쪽이 존재하고, 그리고 SEI 메시지가 0 보다 큰 신택스 엘리먼트 num_sei_bitstream_partitions_in_scheme bitstream_partitions_minus1[ TargetDecOutputLayerSetIdx ][ TargetPartitioningSchemeIdx ] 를 포함할 때, 비트스트림-특정 CPB 동작 또는 비트스트림-파티션 특정적인 CPB 동작 중 어느 하나가 적합성 테스트를 위해 선택되고 그리고 CPB 동작들 양쪽이 비트스트림의 적합성을 체킹하기 위해 테스트되어야 한다. 비트스트림-특정 CPB 동작이 테스트될 때, 후속 단계들이 테스트 중인 비트스트림에 대해 적용된다. 비트스트림-파티션 특정적인 CPB 동작이 테스트될 때, 후속 단계들이 테스트 중인 비트스트림 파티션으로서 지칭되는, 테스트 중인 비트스트림의 각각의 비트스트림 파티션에 대해 적용된다. 비트스트림-파티션 특정적인 CPB 동작이 테스트되고 HRD 에의 입력이 비트스트림일 때, 비트스트림 파티션들은 이다]] 테스트 중인 비트스트림 파티션으로서 지칭되는 선택된 파티션의 서브-비트스트림에 적용된다. 비트스트림-파티션 특정적인 CPB 동작이 선택될 때, 선택된 출력 계층 세트의 동일한 파티셔닝 방식의 다른 파티션들의 비트스트림 파티션들은 HRD 보다는, 그러나 그러한 파티션들의 HRD 파라미터들에 따라서 스케쥴링되는 바와 같이 HRD 에 이용가능한, 디코딩 능력들에 의해 디코딩되는 것으로 가정된다.
4. TargetOp 에 적용가능한 hrd_parameters( ) 신택스 구조 및 sub_layer_hrd_parameters( ) 신택스 구조가 다음과 같이 선택된다:
- 비트스트림-특정 CPB 동작이 테스트되면, 다음이 적용된다:
- TargetDecLayerIdList 가 테스트 중인 비트스트림에 존재하는 모든 nuh_layer_id 값들을 포함하면, 기초 계층에 대한 활성 SPS 에서의 (또는, 본 사양에서 명시되지 않은 일부 외부 수단을 통해서 제공되는) hrd_parameters( ) 신택스 구조가 선택된다.
- 그렇지 않으면, TargetOp 에 적용되는, 활성 VPS 에서의 (또는, 본 사양에서 명시되지 않은 일부 외부 수단을 통해서 제공되는) hrd_parameters( ) 신택스 구조가 선택된다.
- 그렇지 않으면, hrd_parameters( ) 신택스 구조는 다음과 같이 선택된다:
- 다음 조건들 양쪽다 참이면 다음 조건들에서 hrd_parameters( ) 신택스 구조들 중 하나가 선택될 수 있다:
- vps_vui_bsp_hrd_parameters( ) 신택스 구조는 활성 VPS 에 존재하고 (또는, 본 명세서에서 명시되지 않은 일부 외부 수단을 통해서 이용가능하고), 그리고 TargetOp 에, TargetPartitioningScheme 에, 그리고 테스트 중인 비트스트림 파티션에 적용되는 hrd_parameters( ) 신택스 구조를 포함한다.
- TargetOp 에 적용되며 TargetOp 에, TargetPartitioningScheme 에, 그리고 테스트 중인 비트스트림 파티션에 적용되는 hrd_parameters( ) 신택스 구조를 포함하는 스케일러블 네스팅 SEI 메시지에 포함되는 비트스트림 파티션 HRD 파라미터들 SEI 메시지가 존재한다 (또는, 본 명세서에서 명시되지 않은 일부 외부 수단을 통해서 이용가능하다).
- 그렇지 않고, vps_vui_bsp_hrd_parameters( ) 신택스 구조가 활성 VPS 에 존재하고 (또는, 본 명세서에서 명시되지 않은 일부 외부 수단을 통해서 이용가능하고) 그리고 TargetOp 에, TargetPartitioningScheme 에, 그리고 테스트 중인 비트스트림 파티션에 적용되는 hrd_parameters( ) 신택스 구조를 포함하면, 그 hrd_parameters( ) 신택스 구조가 선택된다.
- 그렇지 않으면, TargetOp 에 그리고 TargetPartitioningScheme 에 적용되는 스케일러블 네스팅 SEI 메시지에 포함되는 비트스트림 파티션 HRD 파라미터들 SEI 메시지에서의 테스트 중인 비트스트림 파티션에 적용되는 hrd_parameters( ) 신택스 구조가 존재하여야 하며 (또는, 본 명세서에서 명시되지 않은 일부 외부 수단을 통해서 이용가능해야 하며) 선택된다.
선택된 hrd_parameters( ) 신택스 구조 내에서, BitstreamToDecode 가 유형 I 비트스트림이면, 조건 "if( vcl_hrd_parameters_present_flag )" 에 바로 뒤따르는 sub_layer_hrd_parameters( HighestTid ) 신택스 구조가 선택되고 변수 NalHrdModeFlag 는 0 과 동일하게 설정되며; 그렇지 않으면 (BitstreamToDecode 가 유형 II 비트스트림이면), 조건 "if( vcl_hrd_parameters_present_flag )" (이 경우 변수 NalHrdModeFlag 가 0 과 동일하게 설정된다) 또는 조건 "if( nal_hrd_parameters_present_flag )" (이 경우 변수 NalHrdModeFlag 가 1 과 동일하게 설정된다) 에 바로 뒤따르는 sub_layer_hrd_parameters( HighestTid ) 신택스 구조가 선택된다. BitstreamToDecode 가 유형 II 비트스트림이고 NalHrdModeFlag 가 0 과 동일할 때, 필러 데이터 NAL 유닛들 이외의 모든 비-VCL NAL 유닛들, 및 (부속서 B 에 명시된 바와 같은) NAL 유닛 스트림으로부터 바이트 스트림을 형성하는 모든 leading_zero_8bits, zero_byte, start_code_prefix_one_3bytes, 및 trailing_zero_8bits 신택스 엘리먼트들은, 존재할 때, BitstreamToDecode 로부터 폐기되며, 나머지 비트스트림은 BitstreamToDecode 에 할당된다.
5. TargetOp 에 적용가능한 (BitstreamToDecode 에 존재하거나 또는 본 사양에서 명시되지 않은 외부 수단을 통해서 이용가능한) 버퍼링 기간 SEI 메시지와 연관되는 액세스 유닛이 HRD 초기화 지점으로서 선택되며 액세스 유닛 0 으로서 지칭된다. 적용가능한 버퍼링 기간 SEI 메시지는 본 명세서에서 명시되지 않은 외부 수단을 통해서 이용가능하거나 또는 다음과 같이 액세스 유닛 0 으로부터 선택된다:
- 비트스트림-특정 CPB 동작이 테스트되면, 다음이 적용된다:
- TargetDecLayerIdList 가 테스트 중인 비트스트림에 존재하는 모든 nuh_layer_id 값들을 포함하면, 비-네스트된 버퍼링 기간 SEI 메시지가 선택된다.
- 그렇지 않으면, TargetOp 에 적용가능하며 1 과 동일한 bitstream_subset_flag 를 가지는 스케일러블 네스팅 SEI 메시지에 포함되는 버퍼링 기간 SEI 메시지가 선택된다.
- 그렇지 않으면, 테스트 중인 비트스트림 파티션에 적용가능한 비트스트림 파티션 네스팅 SEI 메시지에 포함되는 버퍼링 기간 SEI 메시지가 선택된다.
변수 MultiLayerCpbOperationFlag 는 다음과 같이 유도된다:
- 선택된 버퍼링 기간 SEI 메시지가 비-네스트되거나 또는 단지 기초 계층만을 포함하는 단지 서브-비트스트림에만 적용되는 스케일러블 네스팅 SEI 메시지에 포함되면, MultiLayerCpbOperationFlag 는 0 과 동일하게 설정된다.
- 그렇지 않으면, MultiLayerCpbOperationFlag 는 1 과 동일하게 설정된다.
6. 액세스 유닛 0 에서 시작하는 BitstreamToDecode 에서의 각각의 액세스 유닛에 대해, 액세스 유닛과 연관되고 TargetOp 에 적용되는 (BitstreamToDecode 에 존재하거나 또는 본 사양에서 명시되지 않은 외부 수단을 통해서 이용가능한) 버퍼링 기간 SEI 메시지가 선택되며, 액세스 유닛과 연관되고 TargetOp 에 적용되는 (BitstreamToDecode 에 존재하거나 또는 본 사양에서 명시되지 않은 외부 수단을 통해서 이용가능한) 픽처 타이밍 SEI 메시지가 선택되며, SubPicHrdFlag 가 1 과 동일하고 sub_pic_cpb_params_in_pic_timing_sei_flag 가 0 과 동일할 때, 액세스 유닛에서의 디코딩 유닛들과 연관되고 TargetOp 에 적용되는 (BitstreamToDecode 에 존재하거나 또는 본 사양에서 명시되지 않은 외부 수단을 통해서 이용가능한) 디코딩 유닛 정보 SEI 메시지들이 다음과 같이 선택된다:
- 비트스트림-특정 CPB 동작이 테스트되면, 다음이 적용된다:
- TargetDecLayerIdList 가 테스트 중인 비트스트림에 존재하는 모든 nuh_layer_id 값들을 포함하면, 비-네스트된 버퍼링 기간, 픽처 타이밍 및 디코딩 유닛 정보 SEI 메시지들이 선택된다.
- 그렇지 않으면, TargetOp 에 적용가능하고 1 과 동일한 bitstream_subset_flag 를 가지는 스케일러블 네스팅 SEI 메시지에 포함되는 버퍼링 기간, 픽처 타이밍 및 디코딩 유닛 정보 SEI 메시지들이 선택된다.
- 그렇지 않으면, 테스트 중인 비트스트림 파티션에 적용가능하고 비트스트림 파티션 네스팅 SEI 메시지에 포함되는 버퍼링 기간, 픽처 타이밍 및 디코딩 유닛 정보 SEI 메시지들이 선택된다.
7. SchedSelIdx 의 값이 다음과 같이 선택된다.
- 비트스트림-특정 CPB 동작이 테스트되면, 선택된 SchedSelIdx 는 0 내지 cpb_cnt_minus1[ HighestTid ] 를 포함한 범위 이내여야 하며, 여기서 cpb_cnt_minus1[ HighestTid ] 는 위에서 선택된 바와 같은 sub_layer_hrd_parameters( HighestTid ) 신택스 구조에서 발견된다.
- 그렇지 않으면 (비트스트림-파티션 특정적인 CPB 동작이 테스트되면), SchedSelCombIdx 가 테스트 중인 비트스트림에 대해 선택되어 테스트 중인 각각의 비트스트림 파티션에 사용된다. 다음이 적용된다:
- vps_vui_bsp_hrd_parameters( ) 신택스 구조가 활성 VPS 에 존재하고 (또는, 본 명세서에서 명시되지 않은 외부 수단을 통해서 이용가능하고) 그리고 TargetOp 및 테스트 중인 비트스트림 파티션에 적용되는 선택된 hrd_parameters( ) 신택스 구조를 포함하면, 선택된 SchedSelCombIdx 는 0 내지 num_bsp_sched_combinations_minus1[ TargetOutput[[Dec]]LayerSetIdx ][ TargetPartitioningSchemeIdx ] 를 포함한 범위이내여야 하며, 그리고 선택된 SchedSelIdx 는 bsp_comb_sched_idx[ TargetOutput [[Dec]]LayerSetIdx ] [ TargetPartitioningSchemeIdx ][ SchedSelCombIdx ][ j ] 와 동일하여야 하며, 여기서, j 는 테스트 중인 비트스트림 파티션의 인덱스이며, 여기서 TargetPartitioningSchemeIdx 는 1 내지 num_partitioning_schemes_minus1[ TargetOutputLayerSetIdx ] 의 범위인 선택된 TargetPartitioningScheme 의 인덱스이다
- 그렇지 않으면, 선택된 SchedSelCombIdx 는 0 내지 sei_num_bsp_sched_combinations_minus1[ TargetOutput [[Dec]]LayerSetIdx ][ TargetPartitioningSchemeIdx ] 를 포함한 범위 이내여야 하며, 그리고 선택된 SchedSelIdx 는 TargetOp 에 적용가능한 비트스트림 파티션 HRD 파라미터들 SEI 메시지의 sei_bsp_comb_sched_idx[ TargetOutput [[Dec]]LayerSetIdx ][ TargetPartitioningSchemeIdx ][ SchedSelCombIdx ][ j ] 와 동일하여야 하며, 여기서, j 는 테스트 중인 비트스트림 파티션의 인덱스이다.
HRD 는 다음과 같이 동작한다:
- HRD 가 디코딩 유닛 0 에서, CPB 에 의해 초기화되며, DPB 의 각각의 서브-DPB 및 각각의 BPB 는 공백으로 설정된다 (각각의 서브-DPB 에 대한 서브-DPB 충만도가 0 과 동일하게 설정된다).
주 6 - 초기화 이후에, HRD 는 후속 버퍼링 기간 SEI 메시지들에 의해 다시 초기화되지 않는다.
- 비트스트림-특정 CPB 동작에 대해, 명시된 도달 스케쥴에 따라서 CPB 로 유입되는, 디코딩 유닛들과 연관되는 데이터가 HSS 에 의해 전달된다. 비트스트림-파티션 특정적인 CPB 동작에 대해, 명시된 도달 스케쥴에 따라서 BPB 로 유입되는, 디코딩 유닛들과 연관되는 데이터가 HBPS 에 의해 전달된다.
- vps_vui_bsp_hrd_parameters( ) 신택스 구조가 활성 VPS 에 존재하거나 또는 본 명세서에서 명시되지 않은 일부 외부 수단을 통해서 이용가능하거나), 또는 아니면 TargetOp 에 적용가능한 비트스트림 파티션 HRD 파라미터들 SEI 메시지의 sei_bsp_comb_sched_idx[ TargetOutput[[Dec]]LayerSetIdx ][ TargetPartitioningSchemeIdx ][ SchedSelCombIdx ][ j ] 와 동일하면, 비트스트림-파티션 특정적인 CPB 동작이 이용될 때, 인덱스 j 를 가지는 각각의 비트스트림 파티션은, 조항 C.2 에 명시된 바와 같이 프로세싱 되며, HSS 가 HPBS 로 대체되고 SchedSelIdx 는 bsp_comb_sched_idx[ TargetOutput[[Dec]]LayerSetIdx ][ TargetPartitioningSchemeIdx ][ SchedSelCombIdx ][ j ] 와 동일하다.
- 각각의 디코딩 유닛과 연관되는 데이터가 제거되고 디코딩 유닛의 CPB 제거 시간에서의 순시 디코딩 프로세스에 의해 순시적으로 디코딩된다.
- 각각의 디코딩된 픽처가 DPB 에 배치된다.
- 인터 예측 참조에 더이상 요구되지 않고 출력에 더 이상 요구되지 않을 때 디코딩된 픽처가 DPB 로부터 제거된다.
위에 나타낸 바와 같이, HRD 가 각각의 파티셔닝 방식의 각각의 파티션을 테스트할 때, 출력 계층 세트의 모든 계층들을 포함하는 것은 아닌 하나 이상의 파티셔닝 방식들 중 특정 파티셔닝 방식의 선택된 파티션에 기초하여, HRD 는 파티션 특정적인 코딩된 픽처 버퍼 (CPB) 동작을 적용할 수도 있다. 예를 들어, HRD 는 VUI 내 비트스트림 스케쥴링 파라미터들 (BSP) 신택스 구조로부터, 하나 이상의 HRD 파라미터 세트들을 획득할 수도 있다. 유사한 예에서, HRD 는 SEI 메시지 내 BSP 신택스 구조로부터, 하나 이상의 HRD 파라미터 세트들을 획득할 수도 있다. 출력 계층 세트의 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해, 개개의 파티셔닝 방식에 대한 하나 이상의 스케쥴 조합들의 세트에서 각각의 개개의 조합에 대해, 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, HRD 는 BSP 신택스 구조로부터, BSP 신택스 구조에서의 개개의 파티션에 대한 HRD 파라미터 세트를 명시하는 개개의 신택스 엘리먼트 (예컨대, bsp_comb_hrd_idx) 및 전달 스케쥴을 명시하는 개개의 신택스 엘리먼트 (예컨대, sei_bsp_comb_sched_idx) 를 획득할 수도 있다.
대응하는 예들에서, 비디오 인코더 (20) 는 VUI 내 BSP 신택스 구조에, 하나 이상의 HRD 파라미터 세트들을 포함시킨다. 개개의 파티셔닝 방식에 대한 하나 이상의 스케쥴 조합들의 세트에서 각각의 개개의 조합에 대해, 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, 비디오 인코더 (20) 는 BSP 신택스 구조에, BSP 신택스 구조에서의 개개의 파티션에 대한 HRD 파라미터 세트를 명시하는 개개의 신택스 엘리먼트 및 전달 스케쥴을 명시하는 개개의 신택스 엘리먼트에 포함시킬 수도 있다. 다른 예에서, 비디오 인코더 (20) 는 SEI 메시지 내 BSP 신택스 구조에, 하나 이상의 HRD 파라미터 세트들을 포함시킨다. 개개의 파티셔닝 방식에 대한 하나 이상의 스케쥴 조합들의 세트에서 각각의 개개의 조합에 대해, 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, 비디오 인코더 (20) 는 BSP 신택스 구조에, BSP 신택스 구조에서의 개개의 파티션에 대한 HRD 파라미터 세트를 명시하는 개개의 신택스 엘리먼트 및 전달 스케쥴을 명시하는 개개의 신택스 엘리먼트를 포함시킨다.
더욱이, 일부 예들에서, MV-HEVC WD8 및 SHVC WD6 의 패러그라프 C.4 는 다음과 같이 수정된다:
다음 문장이 삭제된다:
비트스트림이 하위 조항 C.1 에 명시된 바와 같은 적합성에 대해 HRD 에 의해 테스트된다.
다음 문장이 추가된다:
각각의 파티셔닝 방식의 각각의 파티션의 서브-비트스트림이 하위 조항 C.1 에 명시된 바와 같은 적합성에 대해 HRD 에 의해 테스트된다.
위에서 나타낸 바와 같이, 비디오 프로세싱 디바이스는 멀티-계층 디코더에 대해 명시된 프로파일, 티어, 및 레벨의 트리플릿들의 리스트에 기초하여 멀티-계층 비디오 디코더가 비트스트림을 디코딩가능한지 여부를 결정가능할 수도 있다. 다음 텍스트는 이것이 구현될 수 있는 방법의 일 예이다.
G.11.3 디코더들 능력들
q 가 양의 정수인, 0 내지 q - 1 인 범위의 i 에 대해, (P i , T i , L i ) 로 표시되는 프로파일, 티어 및 레벨 트리플릿들의 세트를 따르는 디코더들은, 다음 조건들 모두가 적용되는 p 파티션들을 가지는 적어도 하나의 파티셔닝 방식을 가지는 출력 계층 세트들의 모든 서브-비트스트림들을 디코딩가능하여야 한다:
- 0 내지 p - 1 를 포함한 범위인 j 에 대해, 변수 Partition[ j ] 가 파티셔닝 방식에서 j-번째 파티션을 표시한다고 두고, 여기서, p 는 q 미만이거나 또는 동일하다.
- Partition[ 0 ] 내지 Partition[ p- 1 ] 를 포함한 파티션들에 포함된 계층들의 유니온은 출력 계층 세트에서의 모든 계층들을 나타낸다.
- 0 내지 p - 1 를 포함한 범위인 j 에 대해, 변수 PartitionAssignment[ j ] 가 Partition[ j ] 에의 프로파일, 티어 및 레벨 트리플릿들 (P PartitionAssignment[ j ] , T PartitionAssignment[ j ] , L PartitionAssignment[ j ] ) 의 할당을 디코딩하는 것을 표시하는데 사용된다고 둔다. PartitionAssignment[ j ] 의 값은 다음과 같이 유도된다:
- UnassignedProfileTierLevel트리플릿들이 프로파일, 티어 및 레벨 트리플릿들의 어레이라 두고, 여기서, UnassignedProfileTierLevelTriples[i ] 는 0 내지 q - 1 를 포함한 범위인 i 에 대해 (P i , T i , L i ) 와 동일하다.
- 다음이 적용된다:
Figure pct00016
Figure pct00017
- 0 내지 p - 1 를 포함한 범위인 j 에 대해 - 1 과 동일한 PartitionAssignment[ j ] 에서의 엔트리가 존재하지 않아야 한다.
도 5a 는 본 개시물의 기법에 따른, 비디오 인코더 (20) 의 예시적인 동작을 예시하는 플로우차트이다. 도 5a 의 예에서, 비디오 인코더 (20) 는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 발생시킨다 (300). 비트스트림은 복수의 계층들을 포함한다. 비트스트림을 발생하는 것의 일부로서, 비디오 인코더 (20) 는 비트스트림에, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 포함시킨다 (302). 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해, 개개의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온을 갖는 분리된 파티션들의 개개의 세트를 명시하고, 분리된 파티션들의 개개의 세트의 각각의 개개의 파티션은 하나 이상의 계층들을 포함하며, 출력 계층 세트는 복수의 계층들의 모든 계층들 또는 복수의 계층들의 적절한 서브세트로 이루어진다.
일부 예들에서, 비트스트림을 발생시키는 것의 일부로서, 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, 비디오 인코더 (20) 는 비트스트림에, 개개의 파티션에 대한 프로파일, 티어, 및 레벨을 표시하는 개개의 신택스 엘리먼트를 포함시킬 수도 있다.
더욱이, 일부 예들에서, 비디오 인코더 (20) 는 비트스트림에, 복수의 출력 계층 세트들을 표시하는 신택스 엘리먼트들을 포함시킬 수도 있으며, 복수의 출력 계층들 세트들은 제 1 출력 계층 세트를 포함한다. 복수의 출력 계층 세트들의 각각의 개개의 출력 계층 세트에 대해, 비디오 인코더 (20) 는 비트스트림에, 개개의 출력 계층 세트에 대한 하나 이상의 파티셔닝 방식들을 표시하는 신택스 엘리먼트들을 포함시킬 수도 있다.
일부 예들에서, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 시그널링하는 것의 일부로서, 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해, 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, 출력 계층 세트의 각각의 개개의 계층에 대해, 비디오 인코더 (20) 는 비트스트림에, 개개의 계층이 개개의 파티션에 포함되는지 여부를 표시하는 신택스 엘리먼트를 포함시킬 수도 있다.
더욱이, 도 5a 의 예에서, 비디오 인코더 (20) 는 비트스트림을 출력한다 (304). 예를 들어, 비디오 인코더 (20) 는 비트스트림을 출력 인터페이스 (22) 와 같은, 출력 인터페이스로 출력할 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 저장을 위해 비트스트림을 하나 이상의 컴퓨터-판독가능 데이터 저장 매체들로 출력할 수도 있다.
도 5b 는 본 개시물의 기법에 따른, 비디오 디코더 (30) 의 예시적인 동작을 예시하는 플로우차트이다. 도 5b 의 예에서, 비디오 디코더 (30) 는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩하며, 비트스트림은 복수의 계층들을 포함한다 (320). 비트스트림을 디코딩하는 것의 일부로서, 비디오 디코더 (30) 는 비트스트림으로부터, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 획득한다 (322). 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해, 개개의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온을 갖는 분리된 파티션들의 개개의 세트를 명시한다. 분리된 파티션들의 개개의 세트의 각각의 개개의 파티션은 계층들 중 하나 이상을 포함한다. 출력 계층 세트는 복수의 계층들의 모든 계층들 또는 복수의 계층들의 적절한 서브세트로 이루어질 수도 있다. 일부 예들에서, 하나 이상의 신택스 엘리먼트들을 획득하는 것의 일부로서, 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해, 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, 출력 계층 세트의 각각의 개개의 계층에 대해, 비디오 디코더 (30) 는 비트스트림으로부터, 개개의 계층이 개개의 파티션에 포함되는지 여부를 표시하는 신택스 엘리먼트를 획득할 수도 있다.
더욱이, 비트스트림을 디코딩하는 것의 일부로서, 비디오 디코더 (30) 는 복수의 하드웨어 코어들에서의 상이한 프로세싱 코어들을 이용하여 특정 파티셔닝 방식의 파티션들의 각각을 디코딩하며, 특정 파티셔닝 방식은 하나 이상의 파티셔닝 방식들 중 하나이다 (324). 일부 예들에서, 비트스트림을 디코딩하는 것의 일부로서, 비디오 디코더 (30) 는 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, 비트스트림으로부터, 개개의 파티션에 대한 개개의 프로파일, 티어, 및 레벨 (PTL) 정보를 표시하는 개개의 신택스 엘리먼트를 획득할 수도 있다.
일부 예들에서, 비디오 디코더 (30) 는 파티셔닝 방식들의 파티션들에 대한 PTL 정보에 기초하여, 하나 이상의 파티셔닝 방식들로부터 특정 파티셔닝 방식을 결정할 수도 있다. 더욱이, 이러한 예들에서, 비디오 디코더 (30) 는 하드웨어 코어들 중 개개의 하나를 이용하여 특정 파티셔닝 방식의 각각의 개개의 파티션을 디코딩할 수도 있으며, 하드웨어 코어들 중 각각의 개개의 하나는 개개의 단일-계층 디코더를 구현한다. 일부 예들에서, 적어도 복수의 하드웨어 코어들 중 제 1 하드웨어 코어는 복수의 하드웨어 코어들의 제 2 하드웨어 코어와는 상이한 프로파일, 티어, 또는 레벨을 지원한다. 다른 예들에서, 적어도 복수의 하드웨어 코어들 중 제 1 하드웨어 코어 및 복수의 하드웨어 코어들 중 상이한 제 2 하드웨어 코어는 동일한 프로파일들, 티어들, 및 레벨들의 세트를 지원한다.
일부 예들에서, 비디오 디코더 (30) 가 비트스트림을 디코딩할 때, 비디오 디코더 (30) 는 비트스트림으로부터, 복수의 출력 계층 세트들을 표시하는 신택스 엘리먼트들을 획득하고, 복수의 출력 계층들 세트들은 제 1 출력 계층 세트를 포함한다. 이러한 예들에서, 복수의 출력 계층 세트들의 각각의 개개의 출력 계층 세트에 대해, 비디오 디코더 (30) 는 비트스트림으로부터, 개개의 출력 계층 세트에 대한 하나 이상의 파티셔닝 방식들을 표시하는 신택스 엘리먼트들을 획득할 수도 있다.
도 6a 는 본 개시물의 기법에 따른, 비디오 인코더 (20) 의 예시적인 동작을 예시하는 플로우차트이다. 도 6a 의 예에서, 비디오 인코더 (20) 는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 발생시킨다 (350). 비트스트림은 복수의 계층들을 포함한다. 비트스트림을 발생하는 것의 일부로서, 비디오 인코더 (20) 는 비트스트림에, 출력 계층 세트에 대한 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 포함시킨다 (352). 도 6a 의 예에서, 출력 계층 세트는 복수의 계층들의 모든 계층들 또는 복수의 계층들의 적절한 서브세트로 이루어진다. 더욱이, 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해, 개개의 파티셔닝 방식은 하나 이상의 파티션들로의 출력 계층 세트의 분할을 명시하며, 출력 계층 세트에 있는 각각의 계층은 개개의 파티셔닝 방식에서 정확히 하나의 파티션에 속한다. 게다가, 비트스트림을 발생시키는 것의 일부로서, 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해, 비디오 인코더 (20) 는 비트스트림에서의 SEI 메시지 또는 비트스트림에서의 VPS 내 VUI 에, 개개의 파티셔닝 방식에 대한 HRD 파라미터 세트들을 표시하는 신택스 엘리먼트들 (예컨대, bsp_comb_hrd_idx 신택스 엘리먼트들) 의 개개의 세트를 포함시킨다 (354). 비디오 인코더 (20) 는 비트스트림을 출력한다 (356). 예를 들어, 비디오 인코더 (20) 는 비트스트림을 출력 인터페이스 (22) 와 같은, 출력 인터페이스로 출력할 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 비트스트림을 저장을 위해 하나 이상의 컴퓨터-판독가능 데이터 저장 매체들로 출력할 수도 있다.
일부 예들에서, 하나 이상의 파티셔닝 방식들의 각각에 대한 HRD 파라미터 세트들이 포함된다는 것을 표시하는 신택스 엘리먼트들의 개개의 세트를 포함시키는 것의 일부로서, 비디오 인코더 (20) 는 VUI 내 비트스트림 스케쥴링 파라미터들 (BSP) 신택스 구조에, 하나 이상의 HRD 파라미터 세트들을 포함시킬 수도 있다. 더욱이, 이러한 예들에서, 개개의 파티셔닝 방식에 대한 하나 이상의 스케쥴 조합들의 세트에서 각각의 개개의 조합에 대해, 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, 비디오 인코더 (20) 는 BSP 신택스 구조에, BSP 신택스 구조에서의 개개의 파티션에 대한 HRD 파라미터 세트를 명시하는 개개의 신택스 엘리먼트 및 전달 스케쥴을 명시하는 개개의 신택스 엘리먼트에 포함시킬 수도 있다.
일부 예들에서, 하나 이상의 파티셔닝 방식들의 각각에 대한 HRD 파라미터 세트들을 표시하는 신택스 엘리먼트들의 개개의 세트를 포함시키는 것의 일부로서, 비디오 인코더 (20) 는 SEI 메시지 내 비트스트림 스케쥴링 파라미터들 (BSP) 신택스 구조에, 하나 이상의 HRD 파라미터 세트들을 포함시킬 수도 있다. 더욱이, 이러한 예들에서, 개개의 파티셔닝 방식에 대한 하나 이상의 스케쥴 조합들의 세트에서 각각의 개개의 조합에 대해, 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, 비디오 인코더 (20) 는 BSP 신택스 구조에, BSP 신택스 구조에서의 개개의 파티션에 대한 HRD 파라미터 세트를 명시하는 개개의 신택스 엘리먼트 및 전달 스케쥴을 명시하는 개개의 신택스 엘리먼트에 포함시킬 수도 있다.
도 6b 는 본 개시물의 기법에 따른, 비디오 디코더 (30) 의 예시적인 동작을 예시하는 플로우차트이다. 도 6b 의 예에서, 비디오 디코더 (30) 는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림으로부터, 출력 계층 세트에 대한 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 획득한다 (370). 도 6b 의 예에서, 출력 계층 세트는 복수의 계층들의 모든 계층들 또는 복수의 계층들의 적절한 서브세트로 이루어진다. 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해, 개개의 파티셔닝 방식은 하나 이상의 파티션들로의 출력 계층 세트의 분할을 명시하며, 출력 계층 세트에 있는 각각의 계층은 개개의 파티셔닝 방식에서 정확히 하나의 파티션에 속한다.
더욱이, 도 6b 의 예에서, 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해, 비디오 디코더 (30) 는 비트스트림에서의 SEI 메시지 또는 비트스트림에서의 VPS 내 VUI 로부터, 개개의 파티셔닝 방식에 대한 HRD 파라미터 세트들을 표시하는 신택스 엘리먼트들 (예컨대, bsp_comb_hrd_idx 신택스 엘리먼트들) 의 개개의 세트를 획득한다 (372).
일부 예들에서, 개개의 파티셔닝 방식에 대한 HRD 파라미터 세트들을 표시하는 신택스 엘리먼트들의 개개의 세트를 획득하는 것의 일부로서, 비디오 디코더 (30) 는 VUI 내 비트스트림 스케쥴링 파라미터들 (BSP) 신택스 구조로부터, 하나 이상의 HRD 파라미터 세트들을 획득한다. 이러한 예들에서, 개개의 파티셔닝 방식에 대한 하나 이상의 스케쥴 조합들의 세트에서 각각의 개개의 조합에 대해, 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, 비디오 디코더 (30) 는 BSP 신택스 구조로부터, BSP 신택스 구조에서의 개개의 파티션에 대한 HRD 파라미터 세트를 명시하는 개개의 신택스 엘리먼트 및 전달 스케쥴을 명시하는 개개의 신택스 엘리먼트를 획득할 수도 있다.
일부 예들에서, 개개의 파티셔닝 방식에 대한 HRD 파라미터 세트들을 표시하는 신택스 엘리먼트들의 개개의 세트를 획득하는 것의 일부로서, 비디오 디코더 (30) 는 SEI 메시지 내 비트스트림 스케쥴링 파라미터들 (BSP) 신택스 구조로부터, 하나 이상의 HRD 파라미터 세트들을 획득한다. 이러한 예들에서, 개개의 파티셔닝 방식에 대한 하나 이상의 스케쥴 조합들의 세트에서 각각의 개개의 조합에 있어서, 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, 비디오 디코더 (30) 는 BSP 신택스 구조로부터, BSP 신택스 구조에서의 개개의 파티션에 대한 HRD 파라미터 세트를 명시하는 개개의 신택스 엘리먼트 및 전달 스케쥴을 명시하는 개개의 신택스 엘리먼트를 획득할 수도 있다.
개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, 비디오 디코더 (30) 는 개개의 파티셔닝 방식에 대한 HRD 파라미터들에 기초하여, 적합성에 대해 개개의 파티션을 테스트한다 (374). 일부 예들에서, 서브-비트스트림들을 테스트하는 것의 일부로서, 비디오 디코더 (30) 는 출력 계층 세트의 모든 계층들을 포함하는 것은 아닌 하나 이상의 파티셔닝 방식들 중 특정 파티셔닝 방식의 선택된 파티션에 기초하여, 파티션 특정적인 CPB 동작을 적용한다. 일부 예들에서, 특정 파티션의 적합성을 테스트하는 것은, 그 파티션에서, 그리고 특정 파티션에 포함되지 않는, 계층들의 직접 및 간접 참조 계층들로부터의, 디코딩된 픽처들 및 다른 필요한 정보가 특정 파티션에서의 계층들의 픽처들을 디코딩할 때에 이용가능한 것으로 가정한다.
도 7 은 본 개시물의 기법에 따른, 비디오 디코더 (30) 의 예시적인 동작을 예시하는 플로우차트이다. 도 7 의 예에서, 비디오 디코더 (30) 는 트리플릿 엔트리들의 리스트에 기초하여, 비디오 디코더 (30) (즉, 멀티-계층 비디오 디코더) 가 멀티-계층 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩가능한지 여부를 결정한다 (400). 일부 예들에서, 리스트에서의 트리플릿 엔트리들의 개수는 멀티-계층 비디오 데이터에서의 단일-계층 디코더들의 수보다 적거나 또는 동일하다. 일부 예들에서, 비디오 디코더 (30) 의 단일 하드웨어 코어는 다수의 계층들을 디코딩할 수도 있다. 트리플릿 엔트리들의 리스트에서의 각각의 개개의 트리플릿 엔트리는 멀티-계층 비디오 디코더에서의 개개의 단일-계층 디코더에 대한 프로파일, 티어, 및 레벨을 표시한다. 멀티-계층 비디오 디코더가 비트스트림을 디코딩하는 것이 가능한 것에 기초하여, 비디오 디코더 (30) 는 비트스트림을 디코딩한다 (402).
일부 예들에서, 비디오 디코더 (30) 는 비트스트림으로부터, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 획득한다. 하나 이상의 파티셔닝 방식들 중 각각의 개개의 파티셔닝 방식에 대해, 개개의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온을 갖는 분리된 파티션들의 개개의 세트를 명시한다. 분리된 파티션들의 개개의 세트의 각각의 개개의 파티션은 계층들 중 하나 이상을 포함하며, 출력 계층 세트는 복수의 계층들의 모든 계층들 또는 복수의 계층들의 적절한 서브세트로 이루어진다. 멀티-계층 비디오 디코더가 비트스트림을 디코딩하는 것이 가능한지 여부를 결정하는 것의 일부로서, 비디오 디코더 (30) 는 조건이 만족되는 것에 기초하여, 멀티-계층 비디오 디코더가 비트스트림을 디코딩가능하다고 결정할 수도 있다. 이러한 예들에서, 조건은 하나 이상의 파티셔닝 방식들에서 알맞은 파티셔닝 방식이 존재하는 것에 기초하여 만족된다. 더욱이, 이러한 예들에서, 알맞은 파티셔닝 방식의 각각의 개개의 파티션에 대해, 단일-계층 디코더들 중 하나가 개개의 파티션을 디코딩하기 위해 할당될 수 있다. 일부 예들에서, 멀티-계층 비디오 디코더가 비트스트림을 디코딩하는 것이 가능하다고 결정하는 것의 일부로서, 알맞은 파티셔닝 방식의 각각의 개개의 파티션에 대해, 다음 조건들: 단일-계층 디코더와 연관된 레벨이 개개의 파티션에 대해 시그널링된 레벨이상이라는 조건, 단일-계층 디코더와 연관된 티어가 개개의 파티션에 대해 시그널링된 티어이상이라는 조건, 그리고 개개의 파티션과 연관된 프로파일은 단일-계층 디코더가 프로파일의 디코딩을 지원할 정도의 프로파일이다는 조건이 만족되는 것에 기초하여, 멀티-계층 비디오 디코더는 개개의 파티션이 단일-계층 디코더들 중 하나에 할당될 수 있다고 결정할 수도 있다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 그 기능들은 하나 이상의 명령들 또는 코드로서, 컴퓨터-판독가능 매체 상에 저장되거나 또는 컴퓨터-판독가능 매체를 통해서 송신될 수도 있으며, 하드웨어-기반의 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터-판독가능 매체는 데이터 저장 매체들과 같은 유형의 매체에 대응하는 컴퓨터-판독가능 저장 매체들, 또는 예를 들어, 통신 프로토콜에 따라서 한 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수도 있다. 이런 방법으로, 컴퓨터-판독가능 매체들은 일반적으로 (1) 비일시성 유형의 컴퓨터-판독가능 저장 매체, 또는 (2) 신호 또는 캐리어 파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체는 본 개시물에서 설명하는 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 가용 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터-판독가능 매체를 포함할 수도 있다.
일 예로서, 이에 한정하지 않고, 이런 컴퓨터-판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광디스크 스토리지, 자기디스크 스토리지, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터-판독가능 매체로 적절히 지칭된다. 예를 들어, 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선 (DSL), 또는 무선 기술들, 예컨대 적외선, 라디오, 및 마이크로파를 이용하여 명령들이 웹사이트, 서버, 또는 다른 원격 소스로부터 송신되는 경우, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 무선 기술들 예컨대 적외선, 라디오, 및 마이크로파가 그 매체의 정의에 포함된다. 그러나, 컴퓨터-판독가능 저장 매체 및 데이터 저장 매체는 접속부들, 반송파들, 신호들, 또는 다른 일시성 매체를 포함하지 않고, 그 대신, 비-일시성 유형의 저장 매체로 송신되는 것으로 해석되어야 한다. 디스크 (disk) 및 디스크 (disc) 는, 본원에서 사용할 때, 컴팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 Blu-ray 디스크를 포함하며, 디스크들 (disks) 은 데이터를 자기적으로 보통 재생하지만, 디스크들 (discs) 은 레이저로 데이터를 광학적으로 재생한다. 앞에서 언급한 것들의 결합들이 또한 컴퓨터-판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 주문형 집적회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 등가의 집적 또는 이산 로직 회로와 같은, 하나 이상의 프로세서들에 의해 실행될 수도 있다. 따라서, 용어 "프로세서" 는, 본원에서 사용될 때 전술한 구조 중 임의의 구조 또는 본원에서 설명하는 기법들의 구현에 알맞은 임의의 다른 구조를 지칭할 수도 있다. 게다가, 일부 양태들에서, 본원에서 설명하는 기능은 인코딩 및 디코딩을 위해 구성되는 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공되거나, 또는 결합된 코덱에 포함될 수도 있다. 또한, 이 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들로 전적으로 구현될 수 있다.
본 개시물의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC들의 세트 (예컨대, 칩 세트) 를 포함한, 매우 다양한 디바이스들 또는 장치들로 구현될 수도 있다. 개시한 기법들을 수행하도록 구성되는 디바이스들의 기능적 양태들을 강조하기 위해서 여러 구성요소들, 모듈들, 또는 유닛들이 본 개시물에서 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 필요로 하지는 않는다. 대신, 위에서 설명한 바와 같이, 여러 유닛들이 코덱 하드웨어 유닛에 결합되거나 또는 알맞은 소프트웨어 및/또는 펌웨어와 함께, 위에서 설명한 바와 같은 하나 이상의 프로세서들을 포함한, 상호작용하는 하드웨어 유닛들의 컬렉션으로 제공될 수도 있다.
여러 예들이 설명되었다. 이들 및 다른 예들은 다음 청구항들의 범위 이내이다.

Claims (29)

  1. 비디오 데이터를 디코딩하는 방법으로서,
    상기 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩하는 단계를 포함하며, 상기 비트스트림은 복수의 계층들을 포함하며,
    상기 비트스트림을 디코딩하는 단계는,
    상기 비트스트림으로부터, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 획득하는 단계로서,
    상기 하나 이상의 파티셔닝 방식들의 각각의 개개의 파티셔닝 방식에 대해:
    상기 개개의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온을 갖는 분리된 파티션들의 개개의 세트를 명시하고, 상기 분리된 파티션들의 개개의 세트의 각각의 개개의 파티션은 상기 계층들 중 하나 이상을 포함하며, 상기 출력 계층 세트는 상기 복수의 계층들의 모든 계층들 또는 상기 복수의 계층들의 적절한 서브세트로 이루어지는, 상기 하나 이상의 신택스 엘리먼트들을 획득하는 단계; 및
    복수의 하드웨어 코어들에서의 상이한 프로세싱 코어들을 이용하여 특정 파티셔닝 방식의 파티션들의 각각을 디코딩하는 단계로서, 상기 특정 파티셔닝 방식은 상기 하나 이상의 파티셔닝 방식들 중 하나인, 상기 특정 파티셔닝 방식의 파티션들의 각각을 디코딩하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 비트스트림을 디코딩하는 단계는, 상기 하나 이상의 파티셔닝 방식들의 각각의 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, 상기 비트스트림으로부터, 상기 개개의 파티션에 대한 개개의 프로파일, 티어, 및 레벨 (PTL) 정보를 표시하는 개개의 신택스 엘리먼트를 획득하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  3. 제 2 항에 있어서,
    상기 비트스트림을 디코딩하는 단계는,
    상기 파티셔닝 방식들의 파티션들에 대한 상기 PTL 정보에 기초하여, 상기 하나 이상의 파티셔닝 방식들 중에서 상기 특정 파티셔닝 방식을 결정하는 단계; 및
    상기 하드웨어 코어들 중 개개의 하나를 이용하여 상기 특정 파티셔닝 방식의 각각의 개개의 파티션을 디코딩하는 단계를 포함하며, 상기 하드웨어 코어들의 각각의 개개의 하나는 개개의 단일-계층 디코더를 구현하는, 비디오 데이터를 디코딩하는 방법.
  4. 제 3 항에 있어서,
    적어도 상기 복수의 하드웨어 코어들 중 제 1 하드웨어 코어는 상기 복수의 하드웨어 코어들의 제 2 하드웨어 코어와는 상이한 프로파일, 티어, 또는 레벨을 지원하는, 비디오 데이터를 디코딩하는 방법.
  5. 제 3 항에 있어서,
    적어도 상기 복수의 하드웨어 코어들 중 제 1 하드웨어 코어 및 상기 복수의 하드웨어 코어들 중 상이한 제 2 하드웨어 코어는 동일한 프로파일들, 티어들, 및 레벨들의 세트를 지원하는, 비디오 데이터를 디코딩하는 방법.
  6. 제 1 항에 있어서,
    상기 비트스트림은 픽처 폭, 픽처 높이, 및 서브-디코딩된 픽처 버퍼 (DPB) 사이즈에 관한 한계들 및 제한 사항들을 제외한, 프로파일들, 티어들 및 레벨들에 대한 모든 레벨 한계들 및 제한 사항들을 파티션 특정적인 것으로 명시하는 비디오 코딩 표준을 따르는, 비디오 데이터를 디코딩하는 방법.
  7. 제 1 항에 있어서,
    상기 하나 이상의 파티셔닝 방식들의 각각의 개개의 파티셔닝 방식은 하나 이상의 출력 계층 세트들로부터의 출력 계층 세트와 연관되며, 출력 계층 세트와 연관된 파티셔닝 방식은 상기 출력 계층 세트에서의 계층들을 하나 이상의 파티션들로 분할하는, 비디오 데이터를 디코딩하는 방법.
  8. 제 1 항에 있어서,
    상기 출력 계층 세트는 제 1 출력 계층 세트이며,
    상기 비트스트림을 디코딩하는 단계는,
    상기 비트스트림으로부터, 복수의 출력 계층 세트들을 표시하는 신택스 엘리먼트들을 획득하는 단계로서, 상기 복수의 출력 계층들 세트들은 상기 제 1 출력 계층 세트를 포함하는, 상기 신택스 엘리먼트들을 획득하는 단계; 및
    상기 복수의 출력 계층 세트들의 각각의 개개의 출력 계층 세트에 대해, 상기 비트스트림으로부터, 상기 개개의 출력 계층 세트에 대한 하나 이상의 파티셔닝 방식들을 표시하는 신택스 엘리먼트들을 획득하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  9. 제 1 항에 있어서,
    상기 하나 이상의 파티셔닝 방식들의 각각의 개개의 파티셔닝 방식에 대해, 상기 출력 계층 세트에 있는 각각의 계층은 상기 개개의 파티셔닝 방식에서 정확히 하나의 파티션에 속하는, 비디오 데이터를 디코딩하는 방법.
  10. 제 1 항에 있어서,
    상기 하나 이상의 신택스 엘리먼트들을 획득하는 단계는,
    상기 하나 이상의 파티셔닝 방식들의 각각의 개개의 파티셔닝 방식에 대해:
    상기 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해:
    상기 출력 계층 세트의 각각의 개개의 계층에 대해:
    상기 비트스트림으로부터, 상기 개개의 계층이 상기 개개의 파티션에 포함되는지 여부를 표시하는 신택스 엘리먼트를 획득하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  11. 비디오 데이터를 디코딩하기 위한 디바이스로서,
    상기 비디오 데이터를 저장하도록 구성된 하나 이상의 컴퓨터-판독가능 저장 매체들; 및
    하나 이상의 프로세서들을 포함하고,
    상기 하나 이상의 프로세서들은 상기 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩하도록 구성되고, 상기 비트스트림은 복수의 계층들을 포함하며,
    상기 하나 이상의 프로세서들은, 상기 비트스트림을 디코딩하는 것의 일부로서, 상기 하나 이상의 프로세서들이:
    상기 비트스트림으로부터, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 획득하는 것으로서,
    상기 하나 이상의 파티셔닝 방식들의 각각의 개개의 파티셔닝 방식에 대해:
    상기 개개의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온을 갖는 분리된 파티션들의 개개의 세트를 명시하고, 상기 분리된 파티션들의 개개의 세트의 각각의 개개의 파티션은 상기 계층들 중 하나 이상을 포함하며, 상기 출력 계층 세트는 상기 복수의 계층들의 모든 계층들 또는 상기 복수의 계층들의 적절한 서브세트로 이루어지는, 상기 하나 이상의 신택스 엘리먼트들을 획득하고; 그리고
    복수의 하드웨어 코어들에서의 상이한 프로세싱 코어들을 이용하여 특정 파티셔닝 방식의 파티션들의 각각을 디코딩하는 것으로서, 상기 특정 파티셔닝 방식은 상기 하나 이상의 파티셔닝 방식들 중 하나인, 상기 특정 파티셔닝 방식의 파티션들의 각각을 디코딩하도록 구성되는, 비디오 데이터를 디코딩하기 위한 디바이스.
  12. 제 11 항에 있어서,
    상기 하나 이상의 프로세서들은, 상기 하나 이상의 파티셔닝 방식들의 각각의 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, 상기 하나 이상의 프로세서들이 상기 비트스트림으로부터, 상기 개개의 파티션에 대한 개개의 프로파일, 티어, 및 레벨 (PTL) 정보를 표시하는 개개의 신택스 엘리먼트를 획득하도록 구성되는, 비디오 데이터를 디코딩하기 위한 디바이스.
  13. 제 12 항에 있어서,
    상기 하나 이상의 프로세서들은,
    상기 파티셔닝 방식들의 파티션들에 대한 상기 PTL 정보에 기초하여, 상기 하나 이상의 파티셔닝 방식들 중에서 파티셔닝 방식을 선택하고; 그리고
    상기 하드웨어 코어들 중 개개의 하나를 이용하여 상기 특정 파티셔닝 방식의 각각의 개개의 파티션을 디코딩하도록 구성되며, 상기 하드웨어 코어들의 각각의 개개의 하나는 개개의 단일-계층 디코더를 구현하는, 비디오 데이터를 디코딩하기 위한 디바이스.
  14. 제 13 항에 있어서,
    적어도 상기 복수의 하드웨어 코어들 중 제 1 하드웨어 코어는 상기 복수의 하드웨어 코어들의 제 2 하드웨어 코어와는 상이한 프로파일, 티어, 또는 레벨을 지원하는, 비디오 데이터를 디코딩하기 위한 디바이스.
  15. 제 13 항에 있어서,
    적어도 상기 복수의 하드웨어 코어들 중 제 1 하드웨어 코어 및 상기 복수의 하드웨어 코어들 중 상이한 제 2 하드웨어 코어는 동일한 프로파일들, 티어들, 및 레벨들의 세트를 지원하는, 비디오 데이터를 디코딩하기 위한 디바이스.
  16. 제 11 항에 있어서,
    상기 비트스트림은 픽처 폭, 픽처 높이, 및 서브-디코딩된 픽처 버퍼 (DPB) 사이즈에 관한 한계들 및 제한 사항들을 제외한, 프로파일들, 티어들, 및 레벨에 대한 모든 레벨 한계들 및 제한 사항들을 파티션 특정적인 것으로 명시하는 비디오 코딩 표준을 따르는, 비디오 데이터를 디코딩하기 위한 디바이스.
  17. 제 11 항에 있어서,
    상기 하나 이상의 파티셔닝 방식들의 각각의 개개의 파티셔닝 방식은 하나 이상의 출력 계층 세트들로부터의 출력 계층 세트와 연관되며, 출력 계층 세트와 연관된 파티셔닝 방식은 상기 출력 계층 세트에서의 계층들을 하나 이상의 파티션들로 분할하는, 비디오 데이터를 디코딩하기 위한 디바이스.
  18. 제 11 항에 있어서,
    상기 출력 계층 세트는 제 1 출력 계층 세트이며,
    상기 하나 이상의 프로세서들은,
    상기 비트스트림으로부터, 복수의 출력 계층 세트들을 표시하는 신택스 엘리먼트들을 획득하는 것으로서, 상기 복수의 출력 계층들 세트들은 상기 제 1 출력 계층 세트를 포함하는, 상기 신택스 엘리먼트들을 획득하고; 그리고
    상기 복수의 출력 계층 세트들의 각각의 개개의 출력 계층 세트에 대해, 상기 비트스트림으로부터, 상기 개개의 출력 계층 세트에 대한 하나 이상의 파티셔닝 방식들을 표시하는 신택스 엘리먼트들을 획득하도록 구성되는, 비디오 데이터를 디코딩하기 위한 디바이스.
  19. 제 11 항에 있어서,
    상기 하나 이상의 파티셔닝 방식들의 각각의 개개의 파티셔닝 방식에 대해, 상기 출력 계층 세트에 있는 각각의 계층은 상기 개개의 파티셔닝 방식에서 정확히 하나의 파티션에 속하는, 비디오 데이터를 디코딩하기 위한 디바이스.
  20. 제 11 항에 있어서,
    상기 하나 이상의 프로세서들은,
    상기 하나 이상의 파티셔닝 방식들의 각각의 개개의 파티셔닝 방식에 대해:
    상기 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해:
    상기 출력 계층 세트의 각각의 개개의 계층에 대해:
    상기 비트스트림으로부터, 상기 개개의 계층이 상기 개개의 파티션에 포함되는지 여부를 표시하는 신택스 엘리먼트를 획득하도록 구성되는, 비디오 데이터를 디코딩하기 위한 디바이스.
  21. 제 11 항에 있어서,
    상기 디바이스는,
    집적 회로;
    마이크로프로세서; 또는
    무선 통신 디바이스
    중 적어도 하나를 포함하는, 비디오 데이터를 디코딩하기 위한 디바이스.
  22. 제 11 항에 있어서,
    상기 비디오 데이터의 디코딩된 픽처들을 디스플레이하도록 구성된 디스플레이를 더 포함하는, 비디오 데이터를 디코딩하기 위한 디바이스.
  23. 비디오 데이터를 인코딩하기 위한 디바이스로서,
    비디오 데이터를 저장하도록 구성된 하나 이상의 컴퓨터-판독가능 저장 매체들; 및
    하나 이상의 프로세서들을 포함하고,
    상기 하나 이상의 프로세서들은
    상기 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 발생시키도록 구성되며, 상기 비트스트림은 복수의 계층들을 포함하며,
    상기 하나 이상의 프로세서들은,
    상기 비트스트림을 발생시키는 것의 일부로서, 상기 하나 이상의 프로세서들이:
    상기 비트스트림에, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 포함시키는 것으로서,
    상기 하나 이상의 파티셔닝 방식들의 각각의 개개의 파티셔닝 방식에 대해:
    상기 개개의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온을 갖는 분리된 파티션들의 개개의 세트를 명시하고, 상기 분리된 파티션들의 개개의 세트의 각각의 개개의 파티션은 하나 이상의 계층들을 포함하며, 상기 출력 계층 세트는 상기 복수의 계층들의 모든 계층들 또는 상기 복수의 계층들의 적절한 서브세트로 이루어지는, 상기 하나 이상의 신택스 엘리먼트들을 포함시키고; 그리고
    상기 비트스트림을 출력하도록 구성되는, 비디오 데이터를 인코딩하기 위한 디바이스.
  24. 제 23 항에 있어서,
    상기 하나 이상의 프로세서들은,
    상기 비트스트림을 발생시키는 것의 일부로서, 상기 하나 이상의 프로세서들이, 상기 하나 이상의 파티셔닝 방식들의 각각의 개개의 파티셔닝 방식의 각각의 개개의 파티션에 대해, 상기 비트스트림에, 상기 개개의 파티션에 대한 프로파일, 티어, 및 레벨을 표시하는 개개의 신택스 엘리먼트를 포함시키도록, 구성되는, 비디오 데이터를 인코딩하기 위한 디바이스.
  25. 제 23 항에 있어서,
    상기 비트스트림은 픽처 폭, 픽처 높이, 및 서브-디코딩된 픽처 버퍼 (DPB) 사이즈에 관한 한계들 및 제한 사항들을 제외한, 프로파일들, 티어들 및 레벨에 대한 모든 레벨 한계들 및 제한 사항들을 파티션 특정적인 것으로 명시하는 비디오 코딩 표준을 따르는, 비디오 데이터를 인코딩하기 위한 디바이스.
  26. 제 23 항에 있어서,
    상기 하나 이상의 파티셔닝 방식들의 각각의 개개의 파티셔닝 방식은 하나 이상의 출력 계층 세트들로부터의 출력 계층 세트와 연관되며, 출력 계층 세트와 연관된 파티셔닝 방식은 상기 출력 계층 세트에서의 계층들을 하나 이상의 파티션들로 분할하는, 비디오 데이터를 인코딩하기 위한 디바이스.
  27. 제 23 항에 있어서,
    상기 디바이스는,
    집적 회로;
    마이크로프로세서; 또는
    무선 통신 디바이스
    중 적어도 하나를 포함하는, 비디오 데이터를 인코딩하기 위한 디바이스.
  28. 제 23 항에 있어서,
    상기 비디오 데이터를 캡처하도록 구성된 카메라를 더 포함하는, 비디오 데이터를 인코딩하기 위한 디바이스.
  29. 비디오 데이터를 디코딩하기 위한 디바이스로서,
    상기 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩하는 수단을 포함하며, 상기 비트스트림은 복수의 계층들을 포함하며,
    상기 비트스트림을 디코딩하는 수단은,
    상기 비트스트림으로부터, 하나 이상의 파티셔닝 방식들을 표시하는 하나 이상의 신택스 엘리먼트들을 획득하는 수단으로서,
    상기 하나 이상의 파티셔닝 방식들의 각각의 개개의 파티셔닝 방식에 대해:
    상기 개개의 파티셔닝 방식은 출력 계층 세트를 형성하는 유니온을 갖는 분리된 파티션들의 개개의 세트를 명시하고, 상기 분리된 파티션들의 개개의 세트의 각각의 개개의 파티션은 상기 계층들 중 하나 이상을 포함하며, 상기 출력 계층 세트는 상기 복수의 계층들의 모든 계층들 또는 상기 복수의 계층들의 적절한 서브세트로 이루어지는, 상기 하나 이상의 신택스 엘리먼트들을 획득하는 수단; 및
    복수의 하드웨어 코어들에서의 상이한 프로세싱 코어들을 이용하여 특정 파티셔닝 방식의 파티션들의 각각을 디코딩하는 수단으로서, 상기 특정 파티셔닝 방식은 상기 하나 이상의 파티셔닝 방식들 중 하나인, 상기 특정 파티셔닝 방식의 파티션들의 각각을 디코딩하는 수단을 포함하는, 비디오 데이터를 디코딩하기 위한 디바이스.
KR1020167031513A 2014-05-01 2015-05-01 하나 이상의 계층들을 포함하는 파티션에 기초하여 디코더의 프로세싱 코어를 결정하는 것에 의해 멀티-계층 비디오 데이터를 디코딩하기 위한 방법 및 디바이스 KR102078896B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201461987463P 2014-05-01 2014-05-01
US61/987,463 2014-05-01
US201461993980P 2014-05-15 2014-05-15
US61/993,980 2014-05-15
US14/700,982 2015-04-30
US14/700,982 US9794626B2 (en) 2014-05-01 2015-04-30 Partitioning schemes in multi-layer video coding
PCT/US2015/028832 WO2015168585A1 (en) 2014-05-01 2015-05-01 Method and device for decoding multi-layer video data by determining the processing core of the decoder based on partition containing one or more layers

Publications (2)

Publication Number Publication Date
KR20160149217A true KR20160149217A (ko) 2016-12-27
KR102078896B1 KR102078896B1 (ko) 2020-02-19

Family

ID=54356175

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020167032379A KR102384092B1 (ko) 2014-05-01 2015-05-01 비디오 코딩에서 파티셔닝 방식들에 대한 가상 참조 디코더 파라미터들의 적합성을 테스트하기 위한 방법 및 디바이스
KR1020167031513A KR102078896B1 (ko) 2014-05-01 2015-05-01 하나 이상의 계층들을 포함하는 파티션에 기초하여 디코더의 프로세싱 코어를 결정하는 것에 의해 멀티-계층 비디오 데이터를 디코딩하기 위한 방법 및 디바이스
KR1020167032380A KR101984368B1 (ko) 2014-05-01 2015-05-01 하나 이상의 계층들을 포함하는 파티션과 연관된 프로파일, 티어 및 레벨에 기초하여 디코더의 능력을 결정하는 것에 의해 멀티-계층 비디오 데이터를 디코딩하기 위한 방법 및 디바이스

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020167032379A KR102384092B1 (ko) 2014-05-01 2015-05-01 비디오 코딩에서 파티셔닝 방식들에 대한 가상 참조 디코더 파라미터들의 적합성을 테스트하기 위한 방법 및 디바이스

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020167032380A KR101984368B1 (ko) 2014-05-01 2015-05-01 하나 이상의 계층들을 포함하는 파티션과 연관된 프로파일, 티어 및 레벨에 기초하여 디코더의 능력을 결정하는 것에 의해 멀티-계층 비디오 데이터를 디코딩하기 위한 방법 및 디바이스

Country Status (10)

Country Link
US (3) US9794626B2 (ko)
EP (3) EP3138290B1 (ko)
JP (3) JP6530425B2 (ko)
KR (3) KR102384092B1 (ko)
CN (3) CN106464934B (ko)
BR (3) BR112016025107B1 (ko)
ES (2) ES2686699T3 (ko)
HU (2) HUE040132T2 (ko)
MX (2) MX363421B (ko)
WO (3) WO2015168585A1 (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9794626B2 (en) 2014-05-01 2017-10-17 Qualcomm Incorporated Partitioning schemes in multi-layer video coding
US9699480B2 (en) * 2014-06-13 2017-07-04 Sharp Laboratories Of America, Inc. Level limits
US10264286B2 (en) 2014-06-26 2019-04-16 Qualcomm Incorporated Bitstream conformance constraints in scalable video coding
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
CN116156163A (zh) * 2016-03-30 2023-05-23 韩国电子通信研究院 使用画面划分信息对视频进行编码和解码的方法和设备
WO2017204109A1 (en) * 2016-05-24 2017-11-30 Sharp Kabushiki Kaisha Systems and methods for signaling scalable video in a media application format
US11166027B2 (en) * 2016-06-10 2021-11-02 Apple Inc. Content adaptation for streaming
KR102390384B1 (ko) * 2017-03-13 2022-04-22 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법
US11049219B2 (en) 2017-06-06 2021-06-29 Gopro, Inc. Methods and apparatus for multi-encoder processing of high resolution content
CN110868594B (zh) 2018-08-28 2023-04-07 北京字节跳动网络技术有限公司 分割方法的冗余移除
US11758164B2 (en) * 2018-10-23 2023-09-12 Tencent America LLC Method and apparatus for video coding
WO2020190715A1 (en) * 2019-03-15 2020-09-24 Beijing Dajia Internet Information Technology Co., Ltd. Signaling of lossless coding in video coding
CN113940084A (zh) * 2019-06-03 2022-01-14 诺基亚技术有限公司 用于视频编码和解码的装置、方法和计算机程序
US11109067B2 (en) * 2019-06-26 2021-08-31 Gopro, Inc. Methods and apparatus for maximizing codec bandwidth in video applications
US11228781B2 (en) 2019-06-26 2022-01-18 Gopro, Inc. Methods and apparatus for maximizing codec bandwidth in video applications
WO2021061489A1 (en) * 2019-09-24 2021-04-01 Futurewei Technologies, Inc. Signaling of dpb parameters for multi-layer video bitstreams
WO2021061390A1 (en) * 2019-09-24 2021-04-01 Futurewei Technologies, Inc. Sei message for single layer ols
BR112022005394A2 (pt) * 2019-09-24 2022-06-21 Huawei Tech Co Ltd Simplificação de dependência de mensagem sei em codificação de vídeo
EP4022930A4 (en) * 2019-09-24 2022-11-02 Huawei Technologies Co., Ltd. OLS FOR SPATIAL AND SNR Scalability
MX2022003765A (es) * 2019-10-02 2022-04-20 Beijing Bytedance Network Tech Co Ltd Sintaxis para la se?alizacion de subimagen en un flujo de bits de video.
BR112022006453A2 (pt) 2019-10-05 2022-09-27 Beijing Bytedance Network Tech Co Ltd Método de processamento de dados de dados de vídeo, aparelho para processar dados de vídeo, meio de armazenamento não transitório legível por computador e meio de gravação não transitório legível por computador
MX2022004141A (es) * 2019-10-07 2022-04-26 Huawei Tech Co Ltd Evitación de señalización redundante en flujos de bits de video multicapa.
US11265567B2 (en) * 2019-10-08 2022-03-01 Tencent America LLC Method for output layer set signaling in scalable video stream
CN110677699B (zh) * 2019-10-10 2022-03-08 上海依图网络科技有限公司 视频流和/或图片流数据的共享方法、装置及电子设备
US11481863B2 (en) 2019-10-23 2022-10-25 Gopro, Inc. Methods and apparatus for hardware accelerated image processing for spherical projections
WO2021134018A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Signaling of decoded picture buffer parameters in layered video
KR20220113395A (ko) 2019-12-26 2022-08-12 바이트댄스 아이엔씨 비디오 코딩에서의 프로필 티어 레벨 파라미터 세트
KR20220115958A (ko) * 2019-12-26 2022-08-19 바이트댄스 아이엔씨 코딩된 비트스트림들에서의 비디오 계층들의 시그널링에 대한 제약들
JP2023508680A (ja) 2019-12-27 2023-03-03 バイトダンス インコーポレイテッド ビデオコーディングにおけるサブピクチャシグナリング
WO2021142369A1 (en) 2020-01-09 2021-07-15 Bytedance Inc. Signalling of the wavefront parallel processing
WO2021185311A1 (en) * 2020-03-20 2021-09-23 Mediatek Inc. Method and apparatus for signaling tile and slice partition information in image and video coding
US11228776B1 (en) * 2020-03-27 2022-01-18 Tencent America LLC Method for output layer set mode in multilayered video stream
EP4131969A4 (en) * 2020-03-30 2024-03-13 Lg Electronics Inc IMAGE CODING/DECODING METHOD AND APPARATUS FOR SIGNALING PTL RELATED INFORMATION AND COMPUTER READABLE RECORDING MEDIUM HAVING BIT STREAM STORED THEREIN
US11470357B2 (en) * 2020-04-03 2022-10-11 Sharp Kabushiki Kaisha Systems and methods for signaling decoding capability information in video coding
KR20230023708A (ko) 2020-06-03 2023-02-17 엘지전자 주식회사 영상/비디오 코딩 시스템에서 상위 레벨 신택스를 처리하는 방법 및 장치
KR20230023709A (ko) * 2020-06-03 2023-02-17 엘지전자 주식회사 영상/비디오 코딩 시스템에서 일반 제한 정보를 처리하는 방법 및 장치
CN115943627A (zh) * 2020-06-08 2023-04-07 字节跳动有限公司 对编解码视频图片中条带计数的约束
US11962936B2 (en) 2020-09-29 2024-04-16 Lemon Inc. Syntax for dependent random access point indication in video bitstreams
CN118077200A (zh) * 2021-10-08 2024-05-24 字节跳动有限公司 用于视频处理的方法、装置和介质
WO2024049269A1 (ko) * 2022-09-03 2024-03-07 엘지전자 주식회사 Hrd 파라미터를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8615038B2 (en) * 2004-12-06 2013-12-24 Nokia Corporation Video coding, decoding and hypothetical reference decoder
US20070230564A1 (en) * 2006-03-29 2007-10-04 Qualcomm Incorporated Video processing with scalability
SI3264780T1 (sl) 2007-04-18 2020-08-31 Dolby International Ab Kodirni sistemi, pri katerih se uporablja dodatni niz sekvenčnih parametrov za skalabilno kodiranje videa ali večpogledno kodiranje
JP5131101B2 (ja) * 2008-09-09 2013-01-30 富士通株式会社 動画像編集装置および動画像編集プログラム
JP5332773B2 (ja) * 2009-03-18 2013-11-06 ソニー株式会社 画像処理装置および方法
US8341168B1 (en) * 2009-06-04 2012-12-25 Workday, Inc. System for displaying hierarchical data
WO2011084913A2 (en) 2010-01-06 2011-07-14 Dolby Laboratories Licensing Corporation Complexity-adaptive scalable decoding and streaming for multi-layered video systems
CN106101719B (zh) 2010-01-12 2020-06-30 Lg电子株式会社 视频信号的处理方法和设备
CN101795344B (zh) 2010-03-02 2013-03-27 北京大学 数字全息图像压缩、解码方法及系统、传输方法及系统
KR101829515B1 (ko) * 2011-01-13 2018-02-14 닛본 덴끼 가부시끼가이샤 영상 복호 장치, 영상 복호 방법 및 기록 매체
WO2012096146A1 (ja) * 2011-01-13 2012-07-19 日本電気株式会社 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法及びプログラム
EP3021587A3 (en) 2011-04-15 2016-12-28 SK Planet Co., Ltd. High speed scalable video coding device and method using multi-track video
KR20130058584A (ko) * 2011-11-25 2013-06-04 삼성전자주식회사 복호화기의 버퍼 관리를 위한 영상 부호화 방법 및 장치, 그 영상 복호화 방법 및 장치
CN102769747A (zh) 2012-06-29 2012-11-07 中山大学 一种基于并行迭代的分级分布式视频编解码方法及系统
US9351005B2 (en) * 2012-09-24 2016-05-24 Qualcomm Incorporated Bitstream conformance test in video coding
US9161039B2 (en) * 2012-09-24 2015-10-13 Qualcomm Incorporated Bitstream properties in video coding
EP2934011A4 (en) * 2012-12-11 2016-05-11 Sony Corp ENCLOSURE DEVICE AND ENCLOSURE METHOD AND DECOMPOSITION DEVICE AND DECOMPOSITION METHOD
EP2941891B1 (en) * 2013-01-04 2020-09-16 GE Video Compression, LLC Efficient scalable coding concept
JP6360154B2 (ja) 2013-04-05 2018-07-18 ヴィド スケール インコーポレイテッド 多重レイヤビデオコーディングに対するインターレイヤ基準画像エンハンスメント
US20160065980A1 (en) 2013-04-05 2016-03-03 Samsung Electronics Co., Ltd. Video stream encoding method according to a layer identifier expansion and an apparatus thereof, and a video stream decoding method according to a layer identifier expansion and an apparatus thereof
US20140301463A1 (en) 2013-04-05 2014-10-09 Nokia Corporation Method and apparatus for video coding and decoding
US9532067B2 (en) 2013-04-05 2016-12-27 Sharp Kabushiki Kaisha Decoding of inter-layer reference picture set and reference picture list construction
CN117956143A (zh) 2013-04-08 2024-04-30 Ge视频压缩有限责任公司 多视图解码器
CN103338369A (zh) 2013-06-03 2013-10-02 江苏省电力公司信息通信分公司 基于avs和神经网络的立体视频编码方法
WO2015015058A1 (en) * 2013-07-31 2015-02-05 Nokia Corporation Method and apparatus for video coding and decoding
US10554990B2 (en) 2013-10-14 2020-02-04 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
US9712837B2 (en) 2014-03-17 2017-07-18 Qualcomm Incorporated Level definitions for multi-layer video codecs
US9794626B2 (en) 2014-05-01 2017-10-17 Qualcomm Incorporated Partitioning schemes in multi-layer video coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
M. Hannuksela, et al. MV-HEVC/SHVC HLS / JCT-VC AHG20: Multi-layer HRD operation. JCT-VC of ITU-T and ISO/IEC. JCTVC-O0164 Ver.2, Oct. 29, 2013, pp.1-5 *
Y-K. Wang, et al. MV-HEVC/SHVC HLS: On level definitions. JCT-3V of ITU-T and ISO/IEC. JCT3V-H0043 Ver.1, Mar. 18, 2014, pp.1-3 *

Also Published As

Publication number Publication date
BR112016025419A2 (pt) 2017-08-15
CN106464935A (zh) 2017-02-22
JP6858562B2 (ja) 2021-04-14
JP6464193B2 (ja) 2019-02-06
MX364115B (es) 2019-04-12
EP3138291A1 (en) 2017-03-08
BR112016025107A2 (pt) 2017-08-15
MX2016013943A (es) 2017-01-09
ES2686699T3 (es) 2018-10-19
KR102384092B1 (ko) 2022-04-06
MX363421B (es) 2019-03-22
KR102078896B1 (ko) 2020-02-19
ES2711535T3 (es) 2019-05-06
HUE041371T2 (hu) 2019-05-28
CN106464934A (zh) 2017-02-22
BR112016025100B1 (pt) 2022-12-06
EP3138290B1 (en) 2018-06-13
US10390087B2 (en) 2019-08-20
EP3138292A1 (en) 2017-03-08
HUE040132T2 (hu) 2019-02-28
KR20170019344A (ko) 2017-02-21
BR112016025100A2 (pt) 2017-08-15
US9712871B2 (en) 2017-07-18
CN106464935B (zh) 2019-06-21
EP3138290A1 (en) 2017-03-08
JP6530425B2 (ja) 2019-06-12
JP2017517195A (ja) 2017-06-22
WO2015168553A1 (en) 2015-11-05
KR101984368B1 (ko) 2019-05-30
JP2017517194A (ja) 2017-06-22
US20150319449A1 (en) 2015-11-05
MX2016013623A (es) 2017-02-28
CN106464936A (zh) 2017-02-22
US20150319462A1 (en) 2015-11-05
KR20170018819A (ko) 2017-02-20
EP3138291B1 (en) 2018-11-14
BR112016025107B1 (pt) 2022-12-06
JP2017517196A (ja) 2017-06-22
US20150319448A1 (en) 2015-11-05
CN106464934B (zh) 2019-06-14
US9794626B2 (en) 2017-10-17
CN106464936B (zh) 2019-06-14
WO2015168591A1 (en) 2015-11-05
BR112016025419B1 (pt) 2022-12-06
EP3138292B1 (en) 2019-09-18
WO2015168585A1 (en) 2015-11-05

Similar Documents

Publication Publication Date Title
KR101984368B1 (ko) 하나 이상의 계층들을 포함하는 파티션과 연관된 프로파일, 티어 및 레벨에 기초하여 디코더의 능력을 결정하는 것에 의해 멀티-계층 비디오 데이터를 디코딩하기 위한 방법 및 디바이스
KR101776448B1 (ko) 비디오 코딩에 있어서의 비-네스팅된 sei 메시지들
KR102054040B1 (ko) 멀티-계층 비디오 코덱들에 대한 멀티-모드 추출의 지원
KR101677867B1 (ko) 비디오 코딩에서 네스트된 sei 메세지들에 대한 서브-비트스트림 적용가능성
KR101669778B1 (ko) 비디오 코딩에서의 가상 참조 디코더 파라미터들
TW201515440A (zh) 多層內容脈絡中之影像塊及波前處理
KR101968425B1 (ko) 비디오 코딩 확장본들의 캐리지를 위한 전송 스트림

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant