KR101963486B1 - 인코딩된 비트스트림을 생성하기 위하여 영상 데이터를 인코딩하기 위한 방법 및 인코딩 디바이스 - Google Patents

인코딩된 비트스트림을 생성하기 위하여 영상 데이터를 인코딩하기 위한 방법 및 인코딩 디바이스 Download PDF

Info

Publication number
KR101963486B1
KR101963486B1 KR1020167021990A KR20167021990A KR101963486B1 KR 101963486 B1 KR101963486 B1 KR 101963486B1 KR 1020167021990 A KR1020167021990 A KR 1020167021990A KR 20167021990 A KR20167021990 A KR 20167021990A KR 101963486 B1 KR101963486 B1 KR 101963486B1
Authority
KR
South Korea
Prior art keywords
video
syntax
hrd
flag
bitstream
Prior art date
Application number
KR1020167021990A
Other languages
English (en)
Other versions
KR20160099735A (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 KR20160099735A publication Critical patent/KR20160099735A/ko
Application granted granted Critical
Publication of KR101963486B1 publication Critical patent/KR101963486B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • 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/146Data rate or code amount at the encoder output
    • 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/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/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • 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/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

비디오 코딩 시스템의 동작 방법은 비디오 비트스트림을 직렬 비트스트림으로서 수신하는 단계; 비디오 비트스트림으로부터 비디오 구문(video syntax)을 추출하는 단계; 비디오 구문으로부터 저지연 플래그, 네트워크 추상화 계층(NAL) 가상 참조 디코딩(HRD) 파라미터 존재 플래그, 및 비디오 코딩 계층(VCL) HRD 파라미터 존재 플래그를 추출하는 단계; 저지연 플래그, NAL HRD 파라미터 존재 플래그, 및 VCL HRD 파라미터 존재 플래그에 기초하여 비디오 비트스트림으로부터 HRD 구문을 추출하는 단계; HRD 구문을 가지는 비디오 구문에 기초하여 비디오 비트스트림으로부터 시간 계층을 추출하는 단계; 및 디바이스 상에 디스플레이하기 위해 시간 계층에 기초하여 비디오 스트림을 형성하는 단계를 포함한다.

Description

인코딩된 비트스트림을 생성하기 위하여 영상 데이터를 인코딩하기 위한 방법 및 인코딩 디바이스{A METHOD AND AN ENCODING DEVICE FOR ENCODING IMAGE DATA TO GENERATE AN ENCODED BIT STREAM}
관련 출원의 상호 참조
본 출원은 2013년 2월 1일자로 출원된, 발명의 명칭이 "시간 계층을 갖는 비디오 코딩 시스템 및 그 동작 방법(VIDEO CODING SYSTEM WITH TEMPORAL LAYERS AND METHOD OF OPERATION THEREOF)"인 미국 특허 출원 제13/757,624호에 관련된 발명 요지를 포함한다. 그의 발명 요지는 참조 문헌으로서 그 전체가 본 명세서에 포함된다.
본 출원은 2013년 2월 1일자로 동시 출원된, 발명의 명칭이 "시간 확장성을 갖는 비디오 코딩 시스템 및 그 동작 방법(VIDEO CODING SYSTEM WITH TEMPORAL SCALABILITY AND METHOD OF OPERATION THEREOF)"인 미국 특허 출원 제13/757,679호에 관련된 발명 요지를 포함한다. 그의 발명 요지는 참조 문헌으로서 그 전체가 본 명세서에 포함된다.
본 출원은 2012년 7월 2일자로 출원된 미국 가특허 출원 제61/667,294호, 2012년 7월 30일자로 출원된 미국 가특허 출원 제61/677,349호, 및 2013년 2월 1일자로 출원된 미국 정규 특허 출원 제13/757,685호에 기초하여 우선권을 주장하고, 그들의 발명 요지는 참조 문헌으로서 그 전체가 본 명세서에 포함된다.
본 발명은 일반적으로 비디오 시스템에 관한 것으로서, 보다 상세하게는 저지연을 갖는 비디오 코딩 시스템에 관한 것이다.
고품질 비디오를 스마트폰, 고화질 텔레비전, 자동차 정보 시스템, 및 화면을 갖는 다른 비디오 디바이스로 배포하는 일이 최근에 엄청나게 증가하였다. 비디오 콘텐츠를 지원하는 아주 다양한 정보 디바이스들은 다수의 유형의 비디오 콘텐츠가 상이한 크기, 품질, 및 연결 능력을 갖는 디바이스들에 제공될 것을 필요로 한다.
비디오는 2차원 단일 뷰 비디오로부터 고해상도 3차원 영상을 갖는 멀티뷰 비디오로 진화하였다. 비디오의 전송을 더 효율적이도록 만들기 위해, 상이한 비디오 코딩 및 압축 방식들은 최소량의 데이터로부터 최상의 픽처를 획득하려고 시도해왔다. MPEG(Moving Pictures Experts Group)은 표준화된 데이터 시퀀스 및 알고리즘에 기초하여 양호한 비디오 품질을 가능하게 하는 표준들을 개발하였다. H.264(MPEG4 Part 10)/Advanced Video Coding 설계는 이전의 MPEG-2 형식보다 전형적으로 2배 정도 코딩 효율이 개선되었다. 비디오의 품질은 비디오에서의 데이터의 조작 및 압축에 의존한다. 비디오가 비디오를 상이한 해상도들 및 특징 세트들을 갖는 디스플레이 디바이스들로 송신하는 데 사용되는 다양한 대역폭들을 수용하도록 수정될 수 있다. 그렇지만, 보다 대화면이고 보다 고품질 비디오를 배포하는 것 또는 보다 복잡한 비디오 기능은 부가의 대역폭 및 개선된 비디오 압축을 필요로 한다.
이와 같이, 상이한 크기, 해상도 및 연결을 갖는 넓은 범위의 디바이스에 걸쳐 양호한 픽처 품질 및 특징들을 전달할 수 있는 비디오 코딩 시스템이 여전히 필요하다. 점점 더 많은 범위의 지능적 디바이스들에서 비디오를 제공하라는 요구가 증가하는 것에 따라, 이 문제들에 대한 해답들을 찾아내는 것이 점점 더 중요해지고 있다. 소비자 기대의 증가 및 시장에서의 의미있는 제품 차별화를 위한 기회의 감소와 함께, 상업적 경쟁 압력의 지속적인 증가를 고려하여, 이 문제들에 대한 해답들을 찾아내는 것이 아주 중요하다. 그에 부가하여, 비용을 절감하고 효율 및 성능을 향상시키며 경쟁 압력을 충족시킬 필요성은 이 문제들에 대한 해답을 찾아내야 하는 불가결한 필요성에 훨씬 더 큰 긴급성을 부가한다.
이 문제들에 대한 해결책들이 오랫동안 조사되었지만, 이전의 개발들은 어떤 해결책들도 개시하거나 제안하지 않았으며, 따라서 당업자는 이 문제들에 대한 해결책들을 오랫동안 알지 못하였다.
본 발명은 비디오 코딩 시스템의 동작 방법을 제공하고, 이 방법은 비디오 비트스트림을 직렬 비트스트림(serial bitstream)으로서 수신하는 단계; 비디오 비트스트림으로부터 비디오 구문(video syntax)을 추출하는 단계; 비디오 구문으로부터 저지연 플래그, 네트워크 추상화 계층(NAL) 가상 참조 디코딩(HRD) 파라미터 존재 플래그, 및 비디오 코딩 계층(VCL) HRD 파라미터 존재 플래그를 추출하는 단계; 저지연 플래그, NAL HRD 파라미터 존재 플래그, 및 VCL HRD 파라미터 존재 플래그에 기초하여 비디오 비트스트림으로부터 HRD 구문을 추출하는 단계; HRD 구문을 가지는 비디오 구문에 기초하여 비디오 비트스트림으로부터 시간 계층(temporal layer)을 추출하는 단계; 및 디바이스 상에 디스플레이하기 위해 시간 계층에 기초하여 비디오 스트림을 형성하는 단계를 포함한다.
본 발명은 비디오 코딩 시스템을 제공하고, 이 시스템은 비디오 비트스트림을 직렬 비트스트림으로서 수신하는 수신 모듈(receive module); 수신 모듈에 결합된, 비디오 비트스트림으로부터 비디오 구문을 추출하고, 비디오 구문으로부터 저지연 플래그, 네트워크 추상화 계층(NAL) 가상 참조 디코딩(HRD) 파라미터 존재 플래그, 및 비디오 코딩 계층(VCL) HRD 파라미터 존재 플래그를 추출하며, 저지연 플래그, NAL HRD 파라미터 존재 플래그, 및 VCL HRD 파라미터 존재 플래그에 기초하여 비디오 비트스트림으로부터 HRD 구문을 추출하는 구문 획득 모듈(get syntax module); 구문 획득 모듈에 결합된, HRD 구문을 가지는 비디오 구문에 기초하여 비디오 비트스트림으로부터 시간 계층을 추출하는 디코딩 모듈; 및 디코딩 모듈에 결합된, 디바이스 상에 디스플레이하기 위해 시간 계층에 기초하여 비디오 스트림을 형성하는 디스플레이 모듈을 포함한다.
본 발명의 특정 실시예들은 앞서 언급한 것들에 부가하여 또는 그 대신에 다른 측면들을 가진다. 이 측면들은 첨부 도면들을 참조하여 기술된 이하의 상세한 설명을 읽어보면 당업자에게 명백하게 될 것이다.
도 1은 본 발명의 일 실시예에서의 비디오 코딩 시스템의 블록도.
도 2는 비디오 비트스트림의 한 예를 나타낸 도면.
도 3은 HRD 구문의 한 예를 나타낸 도면.
도 4는 HEVC(High Efficiency Video Coding) VUI(Video Usability Information) 구문의 한 예를 나타낸 도면.
도 5는 HEVC VUI 확장 구문의 한 예를 나타낸 도면.
도 6은 HRD 기본 구문(base syntax)의 한 예를 나타낸 도면.
도 7은 HRD 서브계층 구문의 한 예를 나타낸 도면.
도 8은 HRD VUI 구문의 한 예를 나타낸 도면.
도 9는 비디오 코딩 시스템의 기능 블록도.
도 10은 비디오 코딩 시스템의 제어 흐름을 나타낸 도면.
도 11은 본 발명의 추가의 실시예에서의 비디오 코딩 시스템의 동작 방법의 플로우차트.
이하의 실시예들은 당업자가 본 발명을 제조 및 사용할 수 있게 하도록 충분히 상세히 기술되어 있다. 다른 실시예들이 본 개시 내용에 기초하여 명백하게 될 것이라는 것과 본 발명의 범주를 벗어나지 않으면서 공정 또는 기계적 변경이 행해질 수 있다는 것을 잘 알 것이다.
이하의 설명에서, 본 발명의 완전한 이해를 제공하기 위해 다수의 구체적인 상세가 주어져 있다. 그렇지만, 본 발명이 이들 구체적인 상세 없이 실시될 수 있다는 것이 명백할 것이다. 본 발명을 불명료하게 하는 것을 피하기 위해, 일부 공지된 회로들, 시스템 구성들, 및 공정 단계들이 상세히 개시되지 않는다.
마찬가지로, 시스템의 실시예들을 나타낸 도면들은 준도식적(semi-diagrammatic)이고 축척대로 되어 있지 않으며, 특히, 치수들 중 일부는 표현의 명확함을 위한 것이고, 도면들에서 크게 과장되어 도시되어 있다. 다수의 실시예들이 일부 특징들을 공통으로 가지는 것으로 개시되고 기술되어 있지만, 명확함 및 그의 예시, 설명 및 이해의 편의를 위해, 서로 유사한 그리고 동일한 특징들이 통상적으로 동일한 참조 번호들로 기술될 것이다.
"구문"이라는 용어는 데이터 구조체를 기술하는 요소들의 세트를 의미한다. 본 명세서에서 언급되는 "모듈"이라는 용어는 본 발명에서 사용된 문맥에 따라 소프트웨어, 하드웨어, 또는 이들의 조합을 포함할 수 있다.
이제 도 1을 참조하면, 본 발명의 일 실시예에서의 비디오 코딩 시스템(100)의 블록도가 동 도면에 도시되어 있다. 비디오 인코더(102)는 비디오 콘텐츠(108)를 수신하고, 비디오 비트스트림(110)을 디코딩하여 디스플레이 인터페이스(120) 상에 디스플레이하기 위해 비디오 디코더(104)로 송신할 수 있다.
비디오 인코더(102)는 비디오 콘텐츠(108)를 수신하여 인코딩할 수 있다. 비디오 인코더(102)는 비디오 콘텐츠(108)를 상이한 형태로 인코딩하는 유닛이다. 비디오 콘텐츠(108)는 물체들의 장면의 디지털 표현으로서 정의된다. 예를 들어, 비디오 콘텐츠(108)는 하나 이상의 디지털 비디오 카메라들의 디지털 출력일 수 있다.
인코딩은 비디오 콘텐츠(108)를 상이한 형태로 계산적으로 수정하는 것으로서 정의된다. 예를 들어, 인코딩은 비디오 비트스트림(110)을 전송하는 데 필요한 데이터의 양을 감소시키기 위해 비디오 콘텐츠(108)를 비디오 비트스트림(110)으로 압축할 수 있다.
다른 예에서, 비디오 콘텐츠(108)는 압축되는 것, 시각적으로 향상되는 것, 하나 이상의 뷰들로 분리되는 것, 해상도가 변경되는 것, 종횡비가 변경되는 것, 또는 이들의 조합에 의해 인코딩될 수 있다. 다른 예시적인 예에서, 비디오 콘텐츠(108)는 HEVC(High-Efficiency Video Coding)/H.265 표준에 따라 인코딩될 수 있다.
비디오 인코더(102)는 비디오 콘텐츠(108)를 인코딩하여 비디오 비트스트림(110)을 형성할 수 있다. 비디오 비트스트림(110)은 비디오 콘텐츠(108)와 연관된 정보를 표현하는 비트 시퀀스로서 정의된다. 예를 들어, 비디오 비트스트림(110)은 비디오 콘텐츠(108)의 압축을 표현하는 비트 시퀀스일 수 있다.
다른 예에서, 비디오 비트스트림(110)은 직렬 비트스트림(122)일 수 있다. 직렬 비트스트림(122)은 각각의 비트가 시간에 따라 직렬로 전송되는 비디오 콘텐츠(108)을 표현하는 일련의 비트들이다.
비디오 인코더(102)는 각종의 방식들로 장면에 대한 비디오 콘텐츠(108)를 수신할 수 있다. 예를 들어, 실세계에서의 물체들을 표현하는 비디오 콘텐츠(108)는 비디오 카메라, 다수의 카메라들로 포착되거나, 컴퓨터로 생성되거나, 파일로서 제공되거나, 이들의 조합일 수 있다.
비디오 콘텐츠(108)는 각종의 비디오 특징들을 포함할 수 있다. 예를 들어, 비디오 콘텐츠(108)는 단일 뷰 비디오, 멀티뷰 비디오, 입체 비디오, 또는 이들의 조합을 포함할 수 있다. 추가의 예에서, 비디오 콘텐츠(108)는 3D 안경 없이 3차원(3D) 비디오 보는 것을 지원하기 위한 4개 이상의 카메라들의 멀티뷰 비디오일 수 있다.
비디오 인코더(102)는 비디오 구문(114)을 사용해 비디오 콘텐츠(108)를 인코딩하여 비디오 비트스트림(110)을 생성할 수 있다. 비디오 구문(114)은 비디오 콘텐츠(108)를 인코딩 및 디코딩하는 코딩 시스템을 기술하는 정보 요소들의 세트로서 정의된다. 비디오 비트스트림(110)은 HEVC(High-Efficiency Video Coding)/H.265와 같은 비디오 구문(114)에 부합하고, HEVC 비디오 비트스트림, UHD(Ultra High Definition) 비디오 비트스트림, 또는 이들의 조합을 포함할 수 있다. 비디오 비트스트림(110)은 비디오 구문(114)을 포함할 수 있다.
비디오 비트스트림(110)은 비디오 콘텐츠(108)의 영상을 표현하는 정보 및 비디오 콘텐츠(108)의 인코딩에 연관된 관련 제어 정보를 포함할 수 있다. 예를 들어, 비디오 비트스트림(110)은 비디오 구문(114)의 출현 및 비디오 콘텐츠(108)의 출현을 포함할 수 있다.
비디오 코딩 시스템(100)은 비디오 비트스트림(110)을 디코딩하는 비디오 디코더(104)를 포함할 수 있다. 비디오 디코더(104)는 비디오 비트스트림(110)을 수신하고 비디오 비트스트림(110)을 수정하여 비디오 스트림(112)을 형성하는 유닛으로서 정의된다.
비디오 디코더(104)는 비디오 구문(114)을 사용해 비디오 비트스트림(110)을 디코딩하여 비디오 스트림(112)을 형성할 수 있다. 디코딩은 비디오 비트스트림(110)을 계산적으로 수정하여 비디오 스트림(112)을 형성하는 것으로서 정의된다. 예를 들어, 디코딩은 비디오 비트스트림(110)을 압축 해제하여 디스플레이 인터페이스(120) 상에 디스플레이하기 위한 형식으로 된 비디오 스트림(112)을 형성할 수 있다.
비디오 스트림(112)은 비디오 콘텐츠(108)의 계산적으로 수정된 버전으로서 정의된다. 예를 들어, 비디오 스트림(112)은 상이한 해상도를 갖는 비디오 콘텐츠(108)의 수정된 출현을 포함할 수 있다. 비디오 스트림(112)은 비디오 콘텐츠(108)로부터의 크로핑된 디코딩된 픽처들을 포함할 수 있다.
추가의 예에서, 비디오 스트림(112)은 비디오 콘텐츠(108)와 상이한 종횡비, 상이한 프레임 레이트, 상이한 입체 뷰들, 상이한 보기 순서, 또는 이들의 조합을 가질 수 있다. 비디오 스트림(112)은 상이한 색 파라미터, 색 평면, 콘트라스트, 색상(hue), 또는 이들의 조합을 포함하는 상이한 시각적 특성들을 가질 수 있다.
비디오 코딩 시스템(100)은 디스플레이 프로세서(118)를 포함할 수 있다. 디스플레이 프로세서(118)는 디스플레이 인터페이스(120) 상에 디스플레이하기 위해 비디오 디코더(104)로부터 비디오 스트림(112)을 수신할 수 있다. 디스플레이 인터페이스(120)는 비디오 스트림(112)의 시각적 표현을 제시할 수 있는 유닛이다.
예를 들어, 디스플레이 인터페이스(120)는 스마트폰 디스플레이, 디지털 프로젝터, DVD 플레이어 디스플레이, 또는 이들의 조합을 포함할 수 있다. 비디오 코딩 시스템(100)이 비디오 디코더(104), 디스플레이 프로세서(118), 및 디스플레이 인터페이스(120)를 개별적인 유닛들로서 나타내고 있지만, 비디오 디코더(104)가 디스플레이 프로세서(118) 및 디스플레이 인터페이스(120)를 포함할 수 있다는 것을 잘 알 것이다.
비디오 인코더(102)는 통신 경로(106)를 통해 비디오 비트스트림(110)을 비디오 디코더(104)로 송신할 수 있다. 통신 경로(106)는 데이터 전송에 적당한 각종의 네트워크들일 수 있다.
한 예시적인 예에서, 비디오 코딩 시스템(100)은 코딩된 픽처 버퍼들(도시 생략)을 포함할 수 있다. 코딩된 픽처 버퍼들은 액세스 유닛들을 포함하는 FIFO(first-in first-out) 버퍼들로서 기능할 수 있고, 여기서 각각의 액세스 유닛은 비디오 비트스트림(110)의 하나의 프레임을 포함한다.
다른 예시적인 예에서, 비디오 코딩 시스템(100)은 가상 참조 디코더(도시 생략)를 포함할 수 있다. 가상 참조 디코더는 비디오 비트스트림(110)의 가변성을 제약하는 데 사용되는 디코더 모델일 수 있다.
예를 들어, 통신 경로(106)는 무선 통신, 유선 통신, 광, 초음파, 또는 이들의 조합을 포함할 수 있다. 위성 통신, 셀룰러 통신, 블루투스, IrDA(Infrared Data Association standard), WiFi(wireless fidelity), 및 WiMAX(worldwide interoperability for microwave access)는 통신 경로(106)에 포함될 수 있는 무선 통신의 예들이다. 이더넷, DSL(digital subscriber line), FTTH(fiber to the home), 및 POTS(plain old telephone service)는 통신 경로(106)에 포함될 수 있는 유선 통신의 예들이다.
비디오 코딩 시스템(100)은 각종의 비디오 코딩 구문 구조체들을 이용할 수 있다. 예를 들어, 비디오 코딩 시스템(100)은 HEVC(High Efficiency Video Coding)/H.265를 사용하여 비디오 정보를 인코딩 및 디코딩할 수 있다. 비디오 코딩 구문들은 참조 문헌으로서 그 전체가 포함되어 있는 이하의 문서들에 기술되어 있다:
B. Bross, W. Han, J Ohm, G. Sullivan, T. Wiegand, "High-Efficiency Video Coding (HEVC) text specification draft 8", JCTVC-J1003 d7, July 2012 (Stockholm).
B. Bross, W. Han, J. Ohm, G. Sullivan, T. Wiegand, "High Efficiency Video Coding (HEVC) text specification draft 7" JCTVC-I1003 d4, May 2012 (Geneva).
M. Haque, K. Sato, A. Tabatabai, T. Suzuki, "A simple ordering issue for VUI parameters syntax", JCTVC-J0273, July 2012 (Stockholm).
M. Haque, K. Sato, A. Tabatabai, T. Suzuki, "HEVC VUI Parameters with Extension Hooks", JCTVC-J0270, July 2012 (Stockholm).
M. Haque, A. Tabatabai, "Extension of HEVC VUI Syntax Structure", JCTVC-I0263, May 2012.
M. Haque, "AHG10: VUI and HRD syntax designs agreed by the BoG on VPS and NUH", JCTVC-J0548rl, July 2012.
이제 도 2를 참조하면, 비디오 비트스트림(110)의 한 예가 동 도면에 도시되어 있다. 비디오 비트스트림(110)은 도 1의 비디오 콘텐츠(108)의 인코딩된 출현을 포함하고, 도 1의 디스플레이 인터페이스(120) 상에 디스플레이하기 위한 도 1의 비디오 스트림(112)을 형성하기 위해 비디오 구문(114)을 사용하여 디코딩될 수 있다.
비디오 비트스트림(110)은 구문 유형(syntax type)(202)으로 나타낸 바와 같이 각종의 비디오 유형들을 포함할 수 있다. 구문 유형(202)은 비디오 비트스트림(110)을 인코딩 및 디코딩하는 데 사용되는 비디오 코딩의 유형의 표시자로서 정의된다. 예를 들어, 비디오 콘텐츠(108)는 AVC(advanced video coding)(204), SVC(scalable video coding)(206), MVC(multiview video coding)(208), MVD(multiview video plus depth)(210), 및 SSV(stereoscopic video)(212)에 대한 구문 유형(202)을 포함할 수 있다.
AVC(advanced video coding)(204) 및 SVC(scalable video coding)(206)는 단일 뷰 기반 비디오를 인코딩하여 비디오 비트스트림(110)을 형성하는 데 사용될 수 있다. 단일 뷰 기반 비디오는 단일 카메라로부터 생성된 비디오 콘텐츠(108)를 포함할 수 있다.
MVC(multiview video coding)(208), MVD(multiview video plus depth)(210), 및 SSV(stereoscopic video)(212)는 2개 이상의 뷰들을 가지는 비디오 콘텐츠(108)를 인코딩하는 데 사용될 수 있다. 예를 들어, 멀티뷰 비디오는 다수의 카메라들로부터의 비디오 콘텐츠(108)를 포함할 수 있다.
비디오 구문(114)은 비디오 콘텐츠(108)에서의 각각의 프레임과 연관된 엔트리들의 수를 식별하기 위한 엔트리 카운트(216)를 포함할 수 있다. 엔트리 카운트(216)는 비디오 콘텐츠(108)에 표현되는 엔트리들의 최대 수이다.
비디오 구문(114)은 엔트리 식별자(entry identifier)(214)를 포함할 수 있다. 엔트리 식별자(214)는 다수의 코딩된 비디오 시퀀스들을 구별하기 위한 값이다. 코딩된 비디오 시퀀스들은 단일 뷰 비디오, 멀티뷰 비디오, 또는 입체 비디오에 대한 상이한 비트 레이트, 프레임 레이트, 해상도, 또는 스케일러블 계층들을 가지는 비디오 콘텐츠(108)의 출현들을 포함할 수 있다.
비디오 구문(114)은 반복 식별자(iteration identifier)(218)를 포함할 수 있다. 반복 식별자(218)는 비디오 콘텐츠(108)의 개별적인 반복들을 구별하기 위한 값이다.
비디오 구문(114)은 반복 카운트(iteration count)(220)를 포함할 수 있다. 반복 카운트(220)는 비디오 콘텐츠(108)의 반복들의 최대 횟수를 나타내는 값이다.
스케일러블 비디오 코딩의 경우, 반복 카운트라는 용어는 스케일러블 비디오 코딩의 경우에 상이한 스케일러블 비디오 계층들에 연계된 정보 엔트리들의 수를 나타내는 데 사용될 수 있다. 멀티뷰 비디오 코딩의 경우, 반복 카운트는 비디오 콘텐츠(108)의 뷰들의 수에 연계된 동작점들의 수를 나타내는 데 사용될 수 있다.
예를 들어, 스케일러블 비디오 코딩에서, 비디오 콘텐츠(108)는 비디오 비트스트림(110)의 다중 계층 출현들을 형성하기 위해 부가의 향상 계층들(enhancement layers)을 갖는 기본 계층(base layer)을 포함하도록 인코딩될 수 있다. 기본 계층은 최저 해상도, 프레임 레이트, 또는 품질을 가질 수 있다.
향상 계층들은 비디오의 품질을 향상시키기 위해 사용되는 부가의 잔여 정보에 의한 점진적인 세밀화들을 포함할 수 있다. 스케일러블 비디오 계층 확장은 스케일러블 비디오 코딩을 다루기 위해 확장될 수 있는 HEVC의 새로운 기준 표준을 포함할 수 있다.
비디오 구문(114)은 동작 식별자(operation identifier)(222)를 포함할 수 있다. 동작 식별자(222)는 비디오 콘텐츠(108)의 개별적인 동작점들을 구별하기 위한 값이다. 동작점들은 타이밍 정보, NAL(network abstraction layer) HRD(hypothetical referenced decoder) 파라미터들, VCL(video coding layer) HRD 파라미터들, pic_struct_present_flag 요소, 또는 이들의 조합과 같은, 멀티뷰 비디오 코딩을 위해 존재하는 정보 엔트리들이다.
비디오 구문(114)은 동작 카운트(operation count)(224)를 포함할 수 있다. 동작 카운트(224)는 비디오 콘텐츠(108)의 동작들의 최대 수를 나타내는 값이다.
동작점들은 멀티뷰 및 3D 비디오에 대한 상이한 카메라들에 의해 생성된 뷰들과 같은 다양한 뷰들로부터의 코딩된 비디오 시퀀스들의 생성에 연계되어 있다. 멀티뷰 비디오 코딩의 경우, 동작점은 목표 출력 뷰(target output view) 및 목표 출력 뷰에 의존하는 다른 뷰들을 가지는 비디오 비트스트림(110)의 서브셋과 연관되어 있다.
다른 뷰들은, 서브비트스트림(sub-bitstream) 추출 프로세스를 사용하여 도출되는 경우, 목표 출력 뷰에 의존한다. 2개 이상의 동작점이 비디오 비트스트림(110)의 동일한 서브셋과 연관되어 있을 수 있다. 예를 들어, 동작점을 디코딩하는 것은 동작점에 대응하는 비디오 비트스트림의 서브셋을 디코딩하는 것 그리고 이어서 디바이스 비디오 인코더 상에 디스플레이하기 위해 도 1의 비디오 스트림(112)의 일부분으로서 목표 출력 뷰들을 출력하는 것을 말한다.
비디오 구문(114)은 뷰 식별자(view identifier)(226)를 포함할 수 있다. 뷰 식별자(226)는 비디오 콘텐츠(108)의 개별적인 뷰들을 구별하기 위한 값이다.
비디오 구문(114)은 뷰 카운트(view count)(228)를 포함할 수 있다. 뷰 카운트(228)는 비디오 콘텐츠(108)의 뷰들의 최대 수를 나타내는 값이다.
예를 들어, 단일 뷰는 단일 카메라에 의해 생성된 비디오일 수 있다. 멀티뷰 비디오는 장면에서 보이는 물체들로부터 상이한 위치들 및 거리들에 있는 다수의 카메라들에 의해 생성될 수 있다.
비디오 콘텐츠(108)는 각종의 비디오 특성들을 포함할 수 있다. 예를 들어, 비디오 콘텐츠(108)는 UHD(Ultra High Definition) 비디오와 같은 고해상도 비디오일 수 있다. 비디오 콘텐츠(108)는 7680 x 4320, 8K x 2K, 4K x 2K, 또는 이들의 조합의 해상도들을 포함하는, 3840 픽셀 x 2160 픽셀 또는 그 이상의 픽셀 해상도를 가질 수 있다. 비디오 콘텐츠(108)가 고해상도 비디오를 지원하지만, 비디오 콘텐츠(108)가 또한 HD(high definition) 비디오와 같은 보다 낮은 해상도들을 지원할 수 있다는 것을 잘 알 것이다. 비디오 구문(114)은 비디오 콘텐츠(108)의 해상도를 지원할 수 있다.
비디오 콘텐츠(108)는 15 fps(frames per second), 24 fps, 25 fps, 30 fps, 50 fps, 60 fps, 및 120 fps를 포함하는 각종의 프레임 레이트들을 지원할 수 있다. 개별적인 프레임 레이트들이 기술되어 있지만, 비디오 콘텐츠(108)가 초당 0 프레임 및 그 이상의 고정 및 가변 프레임 레이트를 지원할 수 있다는 것을 잘 알 것이다. 비디오 구문(114)은 비디오 콘텐츠(108)의 프레임 레이트를 지원할 수 있다.
비디오 비트스트림(110)은 하나 이상의 시간 계층들(230)을 포함할 수 있다. 시간 계층들(230)은 명시된 프레임 레이트로 비디오 스트림(112)을 표현하는 비디오 비트스트림(110)의 일부분들로서 정의된다. 시간 계층들(230) 각각은 fps(frames per second)로 표현되는 상이한 프레임 레이트로 비디오 스트림(112)을 표현할 수 있다. 시간 계층들(230)은 하위 계층들을 비롯하여 상위 계층들을 갖는 계층구조를 형성할 수 있다.
예를 들어, 시간 계층들(230)의 제1 출현(232)은 비디오 스트림(112)의 15 fps 출현을 나타낼 수 있고, 시간 계층들(230)의 제2 출현(234)은 비디오 스트림(112)의 30 fps 출현을 나타낼 수 있으며, 시간 계층들(230)의 제3 출현(236)은 비디오 스트림(112)의 60 fps 출현을 나타낼 수 있다. 비디오 비트스트림(110)은 시간 계층 카운트(238)로 나타낸 바와 같이 시간 계층들(230)의 다중 출현들을 가질 수 있다. 추가의 예에서, 시간 계층 카운트(238)는 제1 출현(232), 제2 출현(234), 및 제3 출현(236)에 대해 3의 값을 가질 수 있다.
시간 계층들(230)의 제1 출현(232)은 15 fps로 비디오 스트림(112)을 형성하기 위해 비디오 콘텐츠(108)를 인코딩하는 기본 계층을 나타낼 수 있다. 시간 계층들(230)의 제2 출현(234)은 시간 계층들(230)의 제1 출현(232)과 같은 기본 계층과 비디오 콘텐츠(108)의 비디오 스트림(112) 사이의 차이를 30 fps로 표현할 수 있다.
제2 출현(234)은 기본 계층의 프레임들과 비디오 콘텐츠(108)를 디스플레이하는 데 필요한 새로운 프레임들 사이의 차이를 30 fps로 표현하는 프레임들을 포함할 수 있다. 시간 계층들(230)의 제3 출현(236)은 시간 계층들(230)의 제2 출현(234)과 비디오 콘텐츠 사이의 차이를 60 fps로 표현할 수 있다.
한 예시적인 예에서, 스마트폰에 대한 도 1의 비디오 디코더(102)는 제1 출현(232) 및 제2 출현(234)으로부터의 정보를 포함할 수 있는 비디오 비트스트림(110)으로부터 30 fps로 시간 계층들(230)의 제2 출현(234)을 추출할 수 있다. 비디오 비트스트림(110)의 크기를 감소시키기 위해, 시간 계층들(230)의 제3 출현(236)으로부터의 비디오 비트스트림(110) 내의 정보는 폐기될 수 있다.
이제 도 3을 참조하면, HRD 구문(302)의 한 예가 동 도면에 도시되어 있다. HRD 구문(302)은 가상 참조 디코더와 연관된 파라미터들을 기술한다.
HRD 구문(302)은 도 4의 HRD 기본 구문 테이블에 기술된 바와 같은 요소들을 포함한다. HRD 구문(302)의 요소들은 도 4의 HRD 기본 구문 테이블에 기술된 바와 같이 계층적 구조로 배열되어 있다.
HRD 구문(302)은 도 1의 비디오 비트스트림(110)에 포함될 수 있고, 각각의 요소가 송신된 순서로 수신되는 시간 직렬 방식으로 전달될 수 있다. 예를 들어, HRD 구문(302)은 도 4의 HRD 구문 테이블에 기술된 순서로 전달되는 HRD 구문(302)의 요소들을 가지는 직렬 비트스트림으로서 도 1의 비디오 디코더(104)에 의해 수신될 수 있다.
HRD 구문(302)은 hrd_parameters 요소와 같은 HRD 구문 헤더(304)를 포함할 수 있다. HRD 구문 헤더(304)는 HRD 구문(302)을 식별하기 위한 기술자이다.
HRD 구문(302)은 cpb_cnt_minus1 요소와 같은 코딩된 픽처 버퍼(coded picture buffer)(CPB) 카운트(308)를 포함할 수 있다. CPB 카운트(308)는 제한된 비트 레이트들 및 CPB 크기 값들을 가지는 대안의 배달 스케줄들의 수를 나타낼 수 있다.
HRD 구문(302)은 bit_rate_scale 요소와 같은 비트 레이트 스케일(310)을 포함할 수 있다. 비트 레이트 스케일(310)은 CPB의 최대 입력 비트 레이트를 명시한다.
HRD 구문(302)은 cpb_size_scale 요소와 같은 CPB 크기 스케일(312)을 포함할 수 있다. CPB 크기 스케일(312)은 코딩된 픽처 버퍼의 크기를 결정하기 위한 것이다.
HRD 구문(302)은 코딩된 픽처 버퍼의 각각의 출현에 대한 파라미터들의 세트를 정의하는 루프 구조체를 포함할 수 있다. 루프 구조체는 SchedSelIdx 요소와 같은 스케줄 선택 인덱스(314)에 기초한 크기로 되어 있다. HRD 구문(302) 루프 구조체는 코딩된 픽처 버퍼의 각각의 출현에 대한 비트 레이트 값(316), CPB 크기 값(318), 및 CBR(constant bit rate) 플래그(320)를 포함할 수 있다.
HRD 구문(302)은 bit_rate_value_minus1 요소와 같은 비트 레이트 값(316)을 포함할 수 있다. 비트 레이트 값(316)은 코딩된 픽처 버퍼의 각각의 출현에 대한 최대 입력 비트 레이트를 명시하는 데 사용될 수 있다.
HRD 구문(302)은 cpb_size_value_minus1 요소와 같은 CPB 크기 값(318)을 포함할 수 있다. CPB 크기 값(318)은 코딩된 픽처 버퍼의 각각의 출현에 대한 크기를 결정하는 데 사용될 수 있다.
HRD 구문(302)은 cbr_flag 요소와 같은 CBR 플래그(320)를 포함할 수 있다. CBR 플래그(320)는 코딩된 픽처 버퍼의 각각의 출현에 대한 비디오 비트스트림(110)을 디코딩하는 동작 모드를 나타낸다. CBR 플래그(320)가 1의 값을 가지는 경우, 가상 스트림 배달 스케줄(hypothetical stream delivery schedule)(HSS)은 일정한 비트 레이트 모드(constant bit rate mode)에서 동작한다. 그렇지 않은 경우, 비디오 비트스트림(110)은 간헐적 비트 레이트 모드(intermittent bit rate mode)에서 동작한다.
HRD 구문(302)은 initial_cpb_removal_delay_length_minus1 요소와 같은 초기 CPB 제거 지연 길이(322)를 포함할 수 있다. 초기 CPB 제거 지연 길이(322)는 버퍼링 기간 보조 향상 정보(supplemental enhancement information)(SEI) 메시지의 요소들 initial_cpb_removal_delay 및 initial_cpb_removal_delay_offset의 비트 길이를 나타낸다.
HRD 구문(302)은 cpb_removal_delay_length_minus1 요소와 같은 CPB 제거 지연 길이(324)를 포함할 수 있다. CPB 제거 지연 길이(324)는 픽처 타이밍 SEI 메시지에서의 요소들 cpb_removal_delay의 비트 길이를 명시할 수 있다.
HRD 구문(302)은 dpb_output_delay_length_minus1 요소와 같은 디코딩된 픽처 버퍼(decoded picture buffer)(DPB) 출력 지연 길이(326)를 포함할 수 있다. DPB 출력 지연 길이(326)는 DPB의 크기를 나타낸다.
HRD 구문(302)은 time_offset_length 요소와 같은 시간 오프셋 길이(328)를 포함할 수 있다. 시간 오프셋 길이(328)는 time_offset 요소의 길이(단위: 비트)를 나타낸다.
이제 도 4를 참조하면, HEVC(High Efficiency Video Coding) VUI(Video Usability Information) 구문(402)의 한 예가 동 도면에 도시되어 있다. HEVC VUI 구문(402)은 도 1의 비디오 콘텐츠(108)에 대한 부가의 애플리케이션 사용가능성 특징들을 가능하게 하기 위해 도 1의 비디오 비트스트림(110)에 관한 정보를 포함한다.
HEVC VUI 구문(402)은 도 3의 HEVC VUI 구문 테이블에서의 요소들을 기술하고 있다. HEVC VUI 구문(402)의 요소들은 도 3의 HEVC VUI 구문 테이블에 기술된 바와 같이 계층적 구조로 배열되어 있다.
HEVC VUI 구문(402)은 vui_parameters 요소와 같은 HEVC VUI 구문 헤더(404)를 포함한다. HEVC VUI 구문 헤더(404)는 HEVC VUI 구문(402)을 식별하기 위한 기술자이다. HEVC VUI 구문(402)은 비디오 비트스트림(110)을 인코딩 및 디코딩하는 데 사용된다.
HEVC VUI 구문(402)은 aspect_ratio_info_present_flag 요소와 같은 종횡비 플래그(406)를 포함할 수 있다. 종횡비 플래그(406)는 종횡비 정보가 비디오 비트스트림(110)에 인코딩되어 있는지를 나타낼 수 있다. 종횡비 플래그(406)는 종횡비 정보가 비디오 비트스트림(110)에 있지 않다는 것을 나타내는 0의 값 및 종횡비 정보가 비디오 비트스트림(110)에 포함되어 있다는 것을 나타내는 1의 값을 가질 수 있다.
HEVC VUI 구문(402)은 aspect_ratio_idc 요소와 같은 종횡비 표시자(408)를 포함할 수 있다. 종횡비 표시자(408)는 도 1의 비디오 콘텐츠(108)의 종횡비를 기술하는 값이다. 예를 들어, 종횡비 표시자(408)는 비디오 콘텐츠(108)에 대한 사전 정의된 종횡비들의 열거형 목록(enumerated list)에 대한 인덱스 값을 포함할 수 있다. 추가의 예에서, 종횡비 표시자(408)는 종횡비가 종횡비 폭(410) 및 종횡비 높이(412)에 대한 개개의 값들에 의해 기술될 수 있다는 것을 나타내는 값을 포함할 수 있다.
HEVC VUI 구문(402)은 sar_width 요소와 같은 종횡비 폭(410)을 포함할 수 있다. 종횡비 폭(410)은 비디오 콘텐츠(108)의 폭을 기술할 수 있다. 종횡비 폭(410)은 비, 픽셀, 라인, 인치, 센티미터, 또는 이들의 조합으로 된 비디오 콘텐츠의 치수들을 기술할 수 있다.
HEVC VUI 구문(402)은 sar_height 요소와 같은 종횡비 높이(412)를 포함할 수 있다. 종횡비 높이(412)는 비디오 콘텐츠(108)의 높이를 기술할 수 있다. 종횡비 높이(412)는 비, 픽셀, 라인, 인치, 센티미터, 또는 이들의 조합으로 된 비디오 콘텐츠의 치수들을 기술할 수 있다.
HEVC VUI 구문(402)은 overscan_info_present_flag와 같은 오버스캔 존재 플래그(414)를 포함할 수 있다. 오버스캔 존재 플래그(414)는 오버스캔 정보가 비디오 비트스트림(110)에 포함되어 있는지를 나타낼 수 있다. 오버스캔 존재 플래그(414)는 오버스캔 정보가 비디오 비트스트림에 존재한다는 것을 나타내는 1의 값 또는 오버스캔 정보가 비디오 비트스트림(110)에 존재하지 않는다는 것을 나타내는 0의 값을 가질 수 있다.
오버스캔은 도 1의 비디오 스트림(112)의 크로핑된 디코딩된 픽처들의 경계들 근방에 있는 일부 부분들이 비디오 스트림(112)의 디스플레이 영역에서 보이지 않는 디스플레이 프로세스로서 정의된다. 언더스캔(underscan)은 비디오 스트림(112)의 크로핑된 디코딩된 픽처들 전체가 디스플레이 영역에서 보이지만 디스플레이 영역 전체에 걸쳐 있지 않는 디스플레이 프로세스로서 정의된다.
HEVC VUI 구문(402)은 overscan_appropriate_flag 요소와 같은 오버스캔 적절 플래그(416)를 포함할 수 있다. 오버스캔 적절 플래그(416)는 비디오 비트스트림(110)에 인코딩된 비디오 콘텐츠(108)가 오버스캔을 사용하여 디스플레이될 수 있다는 것을 나타낼 수 있다.
오버스캔 적절 플래그(416)는 비디오 스트림(112)의 크로핑된 디코딩된 픽처들이 오버스캔을 사용하여 디스플레이하기에 적당하다는 것을 나타내는 1의 값을 가질 수 있다. 오버스캔 적절 플래그(416)는 비디오 스트림(112)의 크로핑된 디코딩된 픽처들이 시각적으로 중요한 정보를 포함하고 오버스캔을 사용하여 디스플레이되어서는 안된다는 것을 나타내는 0의 값을 가질 수 있다.
HEVC VUI 구문(402)은 video_signal_type_present_flag 요소와 같은 비디오 신호 존재 플래그(418)를 포함할 수 있다. 비디오 신호 존재 플래그(418)는 비디오 신호 유형 정보가 비디오 비트스트림(110)에 포함되어 있다는 것을 나타낼 수 있다. 비디오 신호 존재 플래그(418)는 부가의 비디오 신호 유형 정보가 비디오 비트스트림(110)에 존재한다는 것을 나타내는 1의 값을 가질 수 있다. 비디오 신호 존재 플래그(418)는 어떤 비디오 신호 유형 정보도 비디오 비트스트림(110)에 존재하지 않는다는 것을 나타내는 0의 값을 가질 수 있다.
HEVC VUI 구문(402)은 video_format 요소와 같은 비디오 형식(420)을 포함할 수 있다. 비디오 형식(420)은 비디오의 형식을 나타낼 수 있다.
HEVC VUI 구문(402)은 video_full_range_flag 요소와 같은 비디오 전체 범위 플래그(422)를 포함할 수 있다. 비디오 전체 범위 플래그(422)는 비디오 비트스트림(110)에 인코딩되어 있는 비디오 콘텐츠(108)에 대한 블랙 레벨과 루마 신호 및 크로마 신호의 범위를 나타낼 수 있다.
HEVC VUI 구문(402)은 colour_description_present_flag 요소와 같은 색 설명 존재 플래그(424)를 포함할 수 있다. 색 설명 존재 플래그(424)는 비디오 비트스트림(110)에서의 색 설명 정보의 존재를 나타낼 수 있다.
색 설명 존재 플래그(424)는 어떤 다른 색 설명 정보도 비디오 비트스트림(110)에 포함되어 있지 않다는 것을 나타내는 0의 값을 가질 수 있다. 색 설명 존재 플래그(424)는 3원색(426), 전달 특성(428), 및 행렬 계수(430)가 비디오 비트스트림(110)에 포함되어 있다는 것을 나타내는 1의 값을 가질 수 있다.
HEVC VUI 구문(402)은 colour_primaries 요소와 같은 3원색(426)을 포함할 수 있다. 3원색(426)은 비디오 콘텐츠(108)에서 사용되는 색 구성표(color scheme)를 나타낼 수 있다. 예를 들어, 3원색(426)은 소스 원색들(source primaries)의 색도 좌표들을 나타낼 수 있다.
HEVC VUI 구문(402)은 transfer_characteristics 요소와 같은 전달 특성(428)을 포함할 수 있다. 전달 특성(428)은 비디오 콘텐츠(108)의 광-전자 전달 특성(opto-electronic transfer characteristics)을 나타낼 수 있다. 예를 들어, 전달 특성(428)은 사전 정의된 디스플레이 특성들의 세트를 기술하는 열거형 값일 수 있다.
HEVC VUI 구문(402)은 matrix_coefficient 요소와 같은 행렬 계수(430)를 포함할 수 있다. 행렬 계수(430)는 3원색(426)으로 표시된 적색, 녹색 및 청색 원색들로부터 루마 신호 및 크로마 신호를 도출하는 데 사용되는 계수를 나타낼 수 있다. 행렬 계수(430)는 적색, 청색 및 녹색 색 좌표들의 세트를 루마 및 크로마 대응물들로 계산적으로 변환하는 데 사용될 수 있다.
HEVC VUI 구문(402)은 chroma_loc_info_present_flag 요소와 같은 크로마 위치 정보 존재 플래그(432)를 포함할 수 있다. 크로마 위치 정보 존재 플래그(432)는 크로마 상부 필드 샘플(434) 및 크로마 하부 필드 샘플(436)이 비디오 비트스트림(110)에 존재한다는 것을 나타내는 1의 값을 가질 수 있다.
HEVC VUI 구문(402)은 chroma_sample_loc_type_top_field 요소와 같은 크로마 상부 필드 샘플(434)을 포함할 수 있다. 크로마 상부 필드 샘플(434)은 비디오 비트스트림(110)에서 상부 필드에 대한 크로마 샘플들의 위치를 명시하는 열거형 값일 수 있다.
HEVC VUI 구문(402)은 chroma_sample_loc_type_bottom_field 요소와 같은 크로마 하부 필드 샘플(436)을 포함할 수 있다. 크로마 하부 필드 샘플(436)은 비디오 비트스트림(110)에서 하부 필드에 대한 크로마 샘플들의 위치를 명시하는 열거형 값일 수 있다.
HEVC VUI 구문(402)은 neutral_chroma_indication_flag 요소와 같은 중성 크로마 플래그(438)를 포함할 수 있다. 중성 크로마 플래그(438)는 디코딩된 크로마 샘플들이 1인지를 나타낼 수 있다. 예를 들어, 중성 크로마 플래그(438)가 1의 값을 가지는 경우, 디코딩된 크로마 샘플들 전부가 1로 설정된다. 중성 크로마 플래그(438)가 0의 값을 가지는 경우, 디코딩된 크로마 샘플들이 1로 제한되지 않는다.
HEVC VUI 구문(402)은 field_seq_flag와 같은 필드 시퀀스 플래그(440)를 포함할 수 있고, 코딩된 비디오 시퀀스 정보가 필드들을 나타내는 비디오를 포함하는지를 나타낼 수 있다. 필드 시퀀스 플래그(440)는 비디오 비트스트림(110)의 코딩된 비디오 시퀀스가 필드 레벨 픽처들을 포함한다는 것을 나타내는 1의 값, 및 프레임 레벨 픽처들을 나타내는 0의 값을 가질 수 있다.
HEVC VUI 구문(402)은 timing_info_present_flag 요소와 같은 타이밍 정보 존재 플래그(442)를 포함할 수 있다. 타이밍 정보 존재 플래그(442)는 타이밍 정보가 비디오 비트스트림(110)에 포함되어 있는지를 나타낼 수 있다. 예를 들어, 타이밍 정보 존재 플래그(442)는 틱 단위(444), 시간 스케일(446), 및 고정 픽처 레이트 플래그(448)가 비디오 비트스트림(110)에 존재한다는 것을 나타내는 1의 값을 가질 수 있다.
HEVC VUI 구문(402)은 num_units_in_tick 요소와 같은 틱 단위(444)를 포함할 수 있다. 틱 단위(444)는 시간 스케일(446)의 주파수로 동작하는 클럭의 시간 단위들의 수를 나타낼 수 있다. 예를 들어, 틱 단위(444)는 비디오 비트스트림(110)에서 표현될 수 있는 최소 시간 간격에 대응할 수 있다.
HEVC VUI 구문(402)은 time_scale 요소와 같은 시간 스케일(446)을 포함할 수 있다. 시간 스케일(446)은 1초 내에 지나가는 시간 단위들의 수이다.
HEVC VUI 구문(402)은 fixed_pic_rate_flag 요소와 같은 고정 픽처 레이트 플래그(448)를 포함할 수 있다. 고정 픽처 레이트 플래그(448)는 비디오 스트림(112)의 출력 순서에서 2개의 연속적인 픽처들 사이의 시간 거리가 제약되는지를 나타낼 수 있다. 고정 픽처 레이트 플래그(448)는 어떤 제약도 적용되지 않는다는 것을 나타내는 0의 값 및 시간 거리가 제약된다는 것을 나타내는 1의 값을 가진다.
HEVC VUI 구문(402)은 nal_hrd_parameters_present_flag 요소와 같은 NAL HRD 파라미터 존재 플래그(452)를 포함할 수 있다. NAL HRD 파라미터 존재 플래그(452)는 NAL HRD 파라미터들이 도 3의 HRD 구문(302)에 포함되어 있다는 것을 나타낼 수 있다. NAL HRD 파라미터 존재 플래그(452)는 HRD 파라미터 구조체(454)가 존재한다는 것을 나타내는 1의 값 및 HRD 파라미터 구조체(454)가 비디오 비트스트림(110)에 존재하지 않는다는 것을 나타내는 0의 값을 가질 수 있다.
HEVC VUI 구문(402)은 HRD 파라미터 구조체(454)를 포함할 수 있다. HRD 파라미터 구조체(454)는 도 3의 HRD 구문(302)의 출현이다. HRD 파라미터 구조체(454)는 HRD 구문 섹션에 상세히 기술되어 있다.
HEVC VUI 구문(402)은 VCL에 대한 HRD 정보의 존재를 나타낼 수 있는 vcl_hrd_parameters_present_flag 요소와 같은 VCL HRD 파라미터 존재 플래그(456)를 포함할 수 있다. VCL HRD 파라미터 존재 플래그(456)는 HRD 파라미터 구조체(454)가 존재한다는 것을 나타내는 1의 값 및 HRD 파라미터 구조체(454)가 비디오 비트스트림(110)에 존재하지 않는다는 것을 나타내는 0의 값을 가질 수 있다.
NAL HRD 파라미터 존재 플래그(452) 또는 VCL HRD 파라미터 존재 플래그(456)가 1의 값을 가지는 경우, HEVC VUI 구문(402)은 저지연 플래그(460) 및 서브픽처 CPB 파라미터 존재 플래그(462)를 비디오 비트스트림(110)에 포함시킬 수 있다. 서브픽처 CPB 파라미터 존재 플래그(462)가 1의 값을 가지는 경우, HEVC VUI 구문(402)은 서브단위 틱(464)을 비디오 비트스트림(110)에 포함시킬 수 있다.
HEVC VUI 구문(402)은 low_delay_hrd_flag 요소와 같은 저지연 플래그(460)를 포함할 수 있다. 저지연 플래그(460)는 HRD 동작 모드를 나타낼 수 있다.
HEVC VUI 구문(402)은 sub_pic_cpb_params_present_flag 요소와 같은 서브픽처 CPB 파라미터 존재 플래그(462)를 포함할 수 있다. 서브픽처 CPB 파라미터 존재 플래그(462)는 서브픽처 CPB 파라미터들이 비디오 비트스트림(110)에 존재하는지를 나타낼 수 있다.
HEVC VUI 구문(402)은 num_of_units_in_sub_tick 요소와 같은 서브단위 틱(464)을 포함할 수 있다. 서브단위 틱(464)은 타이밍 보조 향상 정보(SEI) 메시지들을 제거하기 전에 기다리는 틱들의 수를 나타낼 수 있다.
HEVC VUI 구문(402)은 bitstream_restriction_flag 요소와 같은 비트스트림 제한 플래그(466)를 포함할 수 있다. 비트스트림 제한 플래그(466)는 코딩된 비디오 시퀀스 비트스트림 제한 파라미터들이 비디오 비트스트림(110)에 존재한다는 것을 나타낼 수 있다. 비트스트림 제한 플래그(466)가 1의 값을 가지는 경우, HEVC VUI 구문(402)은 타일 고정 구조체 플래그(tiles fixed structure flag)(468), 움직임 벡터 플래그(motion vector flag)(470), 픽처 디노미네이션별 최대 바이트(max bytes per picture denomination)(472), 최소 cu 디노미네이션별 최대 비트(maximum bits per minimum cu denomination)(474), 최대 움직임 벡터 수평 길이(maximum motion vector horizontal length)(476), 및 최대 움직임 벡터 수직 길이(maximum motion vector vertical length)(478)를 포함할 수 있다.
HEVC VUI 구문(402)은 코딩된 비디오 시퀀스에서의 각각의 픽처가 동일한 타일 수를 가진다는 것을 나타낼 수 있는 tiles_fixed_structure_flag 요소와 같은 타일 고정 구조체 플래그(468)를 포함할 수 있다. 타일 고정 구조체 플래그(468)는 고정된 타일들을 나타내는 1의 값 및 다른 것을 나타내는 0의 값을 가질 수 있다.
HEVC VUI 구문(402)은 픽처 경계 밖의 어떤 샘플도 예측을 위해 사용되지 않는다는 것을 나타낼 수 있는 motion_vector_over_pic_boundaries_flag 요소와 같은 움직임 벡터 플래그(470)를 포함할 수 있다. 움직임 벡터 플래그(470)가 1의 값을 가지는 경우, 픽처 경계 밖의 하나 이상의 샘플들은 예측을 위해 사용될 수 있고, 그렇지 않은 경우, 어떤 샘플들도 예측을 위해 사용되지 않는다.
HEVC VUI 구문(402)은 코딩된 비디오 시퀀스 내의 임의의 코딩된 픽처와 연관된 VCL NAL 유닛들의 크기들의 합에 대한 최대 바이트 수를 나타내는 값인 max_bytes_per_pic_denom 요소와 같은 픽처 디노미네이션별 최대 바이트(472)를 포함할 수 있다. 픽처 디노미네이션별 최대 바이트(472)가 0의 값을 가지는 경우, 어떤 한계들도 나타내지 않는다. 그렇지 않은 경우, 이는 어떤 코딩된 픽처들도 비디오 비트스트림(110)에서 픽처 디노미네이션별 최대 바이트(472) 초과의 바이트로 표현되어서는 안된다는 비트스트림 적합성(bitstream conformance)의 요건이다.
HEVC VUI 구문(402)은 코딩된 비디오 시퀀스의 임의의 픽처에서 임의의 코딩 블록에 대한 코딩 단위 데이터의 코딩된 비트들의 수에 대한 상한을 나타내는 값인 max_bits_per_min_cu_denom 요소와 같은 최소 cu 디노미네이션별 최대 비트(474)를 포함할 수 있다. 최소 cu 디노미네이션별 최대 비트(474)가 0의 값을 가지는 경우, 어떤 한계들도 나타내지 않는다. 그렇지 않은 경우, 이는 어떤 코딩 단위도 비트스트림에서 최소 cu 디노미네이션별 최대 비트(474) 초과로 표현되어서는 안된다는 비트스트림 적합성의 요건이다.
HEVC VUI 구문(402)은 비디오 비트스트림(110) 내의 모든 픽처들에 대한 디코딩된 수평 움직임 벡터 성분의 최대 절대값을 나타내는 log2_max_mv_length_horizontal 요소와 같은 최대 움직임 벡터 수평 길이(476)를 포함할 수 있다. log2_max_mv_length_vertical 요소와 같은 최대 움직임 벡터 수직 길이(478)는 비디오 비트스트림(110) 내의 모든 픽처들에 대한 디코딩된 수직 움직임 벡터 성분의 최대 절대값을 나타낸다.
HRD 구문(302)은 비디오 비트스트림(110)에 대한 규범적 요구사항들의 세트를 나타낼 수 있다. HRD 구문(302)은 비디오 비트스트림(110)의 비트 레이트를 제어하는 데 사용될 수 있다. 예를 들어, HRD 구문(302)은 가변 또는 일정 비트 레이트 동작들, 저지연 거동, 및 지연 허용 거동(delay-tolerant behavior)을 제어하는 파라미터들을 포함할 수 있다.
다른 예에서, HRD 구문(302)은, 도 3의 비트 레이트 스케일(310), 도 3의 CPB 카운트(308), 및 도 3의 CPB 크기 스케일(312)과 같은 파라미터들을 사용하여, 코딩된 픽처 버퍼 성능, 코딩된 픽처 버퍼들의 수, 및 코딩된 픽처 버퍼들의 크기를 제어하는 데 사용될 수 있다. HRD 구문(302)은, 도 3의 DPB 출력 지연 길이(326)와 같은 파라미터들을 사용하여, 디코딩된 픽처 버퍼를 제어하는 데 사용될 수 있다.
HRD 구문(302)을 사용하는 것이 코딩된 픽처 버퍼의 개개의 출현들의 처리에 대해 보다 세밀한 제어를 가능하게 함으로써 개선된 성능을 제공한다는 것을 알았다. HRD 구문(302)의 개개의 출현들을 사용하는 것은 CPB의 상이한 출현들 간의 개개의 차이들을 이용함으로써 개선된 처리 속도를 제공할 수 있다.
HRD 구문(302)을 사용하여 비디오 콘텐츠(108)를 인코딩 및 디코딩하는 것이 비디오 비트스트림(110)의 크기를 감소시킬 수 있고 비디오 스트림(112)을 디스플레이하는 데 필요한 비디오 버퍼링의 양을 감소시킨다는 것을 알았다. 비디오 비트스트림(110)의 크기를 감소시키는 것은 기능을 향상시키고 비디오 스트림(112)의 디스플레이의 성능을 향상시킨다.
이제 도 5를 참조하여, HEVC VUI 확장 구문(502)의 한 예가 동 도면에 도시되어 있다. HEVC VUI 확장 구문(502)은 도 1의 비디오 비트스트림(110)에서의 시간 계층들(230)의 각각의 출현에 대한 정보를 제공한다. HEVC VUI 확장 구문(502)은 도 4의 HEVC VUI 구문(402)의 일 실시예일 수 있다.
HEVC VUI 확장 구문(502)은 도 5의 HEVC VUI 확장 구문 테이블에서의 요소들을 기술하고 있다. HEVC VUI 확장 구문(502)의 요소들은 도 5의 HEVC VUI 확장 구문 테이블에 기술된 바와 같이 계층적 구조로 배열되어 있다.
HEVC VUI 구문(402)은 도 1의 비디오 코딩 시스템(100)의 VUI 파라미터들을 기술할 수 있다. 예를 들어, HEVC VUI 확장 구문(502)은 HEVC VUI 구문(402)의 출현일 수 있다. 제1 또는 제2와 같은 용어들은 식별 목적으로만 사용되고, 임의의 순서, 우선권, 중요성 또는 우선순위를 나타내지 않는다.
HEVC VUI 확장 구문(502)은 vui_parameters 요소와 같은 HEVC VUI 확장 구문 헤더(504)를 포함한다. HEVC VUI 확장 구문 헤더(504)는 HEVC VUI 확장 구문(502)을 식별하기 위한 기술자이다.
HEVC VUI 확장 구문(502)은 nal_hrd_parameters_present_flag 요소와 같은 NAL HRD 파라미터 존재 플래그(452)를 포함할 수 있다. NAL HRD 파라미터 존재 플래그(452)는 NAL HRD 파라미터 정보의 존재를 나타낼 수 있다.
HEVC VUI 확장 구문(502)은 vcl_hrd_parameters_present_flag 요소와 같은 VCL HRD 파라미터 존재 플래그(456)를 포함할 수 있다. VCL HRD 파라미터 존재 플래그(456)는 VCL HRD 파라미터 정보의 존재를 나타낼 수 있다.
NAL HRD 파라미터 존재 플래그(452) 또는 VCL HRD 파라미터 존재 플래그(456)가 1의 값을 가지는 경우, HEVC VUI 확장 구문(502)은 저지연 플래그(460) 및 서브픽처 CPB 파라미터 존재 플래그(462)를 포함할 수 있다.
NAL HRD 파라미터 존재 플래그(452) 및 VCL HRD 파라미터 존재 플래그(456)는 다른 HRD 관련 파라미터들의 포함을 제어할 수 있다. NAL HRD 파라미터 존재 플래그(452) 또는 VCL HRD 파라미터 존재 플래그(456)가 1의 값을 가지는 경우, HEVC VUI 확장 구문(502)은 저지연 플래그(460) 및 서브픽처 CPB 파라미터 존재 플래그(462)를 포함할 수 있다.
HEVC VUI 확장 구문(502)은 low_delay_hrd_flag 요소와 같은 저지연 플래그(460)를 포함할 수 있다. 저지연 플래그(460)는 HRD 동작 모드를 나타낼 수 있다.
HEVC VUI 확장 구문(502)은 sub_pic_cpb_params_present_flag 요소와 같은 서브픽처 CPB 파라미터 존재 플래그(462)를 포함할 수 있다. 서브픽처 CPB 파라미터 존재 플래그(462)는 서브픽처 CPB 파라미터들이 도 1의 비디오 비트스트림(110)에 존재하는지를 나타낼 수 있다.
서브픽처 CPB 파라미터 존재 플래그(462)가 1의 값을 가지는 경우, HEVC VUI 확장 구문(502)은 num_of_units_in_sub_tick 요소와 같은 서브단위 틱(464)을 포함할 수 있다. 서브단위 틱(464)은 타이밍 보조 향상 정보(SEI) 메시지들을 제거하기 전에 기다리는 틱들의 수를 나타낼 수 있다.
HEVC VUI 확장 구문(502)은 도 3의 HRD 구문(302)이 HEVC VUI 확장 구문(502)에 포함되어 있는지를 결정하기 위해 평가될 2개의 조건부 검사를 포함할 수 있다. NAL HRD 파라미터 존재 플래그(452)가 1의 값을 가지는 경우, HEVC VUI 확장 구문(502)은 HRD 구문(302)을 포함할 수 있다.
VCL HRD 파라미터 존재 플래그(456)가 1의 값을 가지는 경우, HEVC VUI 구문(402)은 HRD 구문(302)을 포함할 수 있다. NAL HRD 파라미터 존재 플래그(452) 또는 VCL HRD 파라미터 존재 플래그(456) 어느 것도 1의 값을 갖지 않는 경우, HRD 구문(302)은 HEVC VUI 구문(402)에 포함되지 않는다.
비디오 비트스트림(110)은 HEVC VUI 확장 구문(502)의 출현을 포함할 수 있다. 비디오 비트스트림(110)은 HEVC VUI 확장 구문(502)의 각각의 요소가 비디오 비트스트림(110) 내에 순차적으로 정렬되어 있는 직렬 비트스트림이다. HEVC VUI 확장 구문(502)의 요소들은 도 5의 HEVC VUI 확장 구문 테이블에 정의된 순서로 비디오 비트스트림(110)으로부터 추출될 수 있다.
HEVC VUI 확장 구문(502)의 저지연 플래그(460)의 값은 HRD 구문(302)의 도 3의 CPB 카운트(308)의 사용을 결정할 수 있다. 저지연 플래그(460)가 1의 값을 가지는 경우, CPB 카운트(308)가 0으로 설정된다.
HEVC VUI 확장 구문(502)은 비디오 비트스트림(110)의 직렬 전송에서 HRD 구문(302) 이전에 배치된 저지연 플래그(460)를 포함한다. 저지연 플래그(460)는 HRD 구문(302) 이전에서 추출된다. NAL HRD 파라미터 존재 플래그(452) 및 VCL HRD 파라미터 존재 플래그(456)는 HRD 구문(302) 이전에서 추출된다. HRD 구문(302)의 요소들은 저지연 플래그(460), NAL HRD 파라미터 존재 플래그(452), 및 VCL HRD 파라미터 존재 플래그(456)의 값에 기초하여 추출될 수 있다. 예를 들어, 저지연 플래그(460)가 1의 값을 갖고 NAL HRD 파라미터 존재 플래그(452) 또는 VCL HRD 파라미터 존재 플래그(456)가 1의 값을 가지는 경우, HRD 구문(302)의 CPB 카운트(308)의 값은 명확하게 0으로 설정될 수 있고, 비디오 코딩 시스템(100)은 단일의 코딩된 픽처 버퍼만을 갖는 저지연 모드에서 동작할 수 있다.
도 2의 시간 계층들(230) 전부에 대해 일정한 HRD 파라미터 구조체(454)를 가지는 HEVC VUI 확장 구문(502)을 사용하여 도 1의 비디오 콘텐츠(108)를 인코딩 및 디코딩하는 것이 감소된 복잡도 및 향상된 성능을 제공한다는 것을 알았다. HRD 파라미터 구조체(454)는 디코딩 프로세스의 처리에 대한 일관성있는 제어를 가능하게 함으로써 단순화된 수행 및 감소된 복잡도를 제공한다.
이제 도 6을 참조하면, HRD 기본 구문(602)의 한 예가 동 도면에 도시되어 있다. HRD 기본 구문(602)은 가상 참조 디코더 동작과 연관된 파라미터들을 기술한다.
HRD 기본 구문(602)은 도 6의 HRD 구문 테이블에 기술된 바와 같은 요소들을 포함한다. HRD 기본 구문(602)의 요소들은 도 6의 HRD 구문 테이블에 기술된 바와 같이 계층적 구조로 배열되어 있다.
HRD 기본 구문(602)은 hrd_parameters 요소와 같은 HRD 기본 구문 헤더(604)를 포함할 수 있다. HRD 기본 구문 헤더(604)는 HRD 기본 구문(602)을 식별하기 위한 기술자이다.
HRD 기본 구문(602)은 타이밍 정보가 도 1의 비디오 비트스트림(110)에 포함되어 있는지를 나타내는 timing_info_present_flag 요소와 같은 타이밍 정보 존재 플래그(442)를 포함할 수 있다. 타이밍 정보 존재 플래그(442)는 타이밍 정보가 비디오 비트스트림(110)에 있다는 것을 나타내는 1의 값 및 타이밍 정보가 비디오 비트스트림(110)에 포함되어 있지 않다는 것을 나타내는 0의 값을 가질 수 있다.
HRD 기본 구문(602)은 시간 스케일(446)의 주파수로 동작하는 클럭의 시간 단위들의 수를 나타내는 num_units_in_tick 요소와 같은 틱 단위(444)를 포함할 수 있다. 예를 들어, 틱 단위(444)는 비디오 비트스트림(110)에서 표현될 수 있는 최소 시간 간격에 대응할 수 있다. time_scale 요소와 같은 시간 스케일(446)은 1초 내에 지나가는 시간 단위들의 수이다.
HRD 기본 구문(602)은 NAL HRD 파라미터 정보의 존재를 나타내는 nal_hrd_parameters_present_flag 요소와 같은 NAL HRD 파라미터 존재 플래그(452)를 포함할 수 있다. HRD 기본 구문(602)은 VCL에 대한 HRD 정보의 존재를 나타내는 vcl_hrd_parameters_present_flag 요소와 같은 VCL HRD 파라미터 존재 플래그(456)를 포함할 수 있다.
NAL HRD 파라미터 존재 플래그(452) 또는 VCL HRD 파라미터 존재 플래그(456)가 1의 값을 가지는 경우, HRD 기본 구문(602)은 부가의 CPB 관련 요소들을 포함할 수 있다. 예를 들어, HRD 기본 구문(602)은 서브픽처 CPB 파라미터 존재 플래그(462), 비트 레이트 스케일(310), CPB 크기 스케일(312), 초기 CPB 제거 지연 길이(322), CPB 제거 지연 길이(324), 및 DPB 출력 지연 길이(326)를 포함할 수 있다.
HRD 기본 구문(602)은 서브픽처 CPB 파라미터들이 비디오 비트스트림(110)에 존재하는지를 나타내는 sub_pic_cpb_params_present_flag 요소와 같은 서브픽처 CPB 파라미터 존재 플래그(462)를 포함할 수 있다. 서브픽처 CPB 파라미터 존재 플래그(462)가 1의 값을 가지는 경우, HRD 기본 구문(602)은 비디오 비트스트림(110)에서 표현될 수 있는 최소 시간 간격을 명시하는 tick_divisor_minus2 요소와 같은 틱 제수(tick divisor)(606)를 포함할 수 있다.
HRD 기본 구문(602)은 코딩된 픽처 버퍼(CPB)의 최대 입력 비트 레이트를 나타내는 bit_rate_scale 요소와 같은 비트 레이트 스케일(310)을 포함할 수 있다. HRD 기본 구문(602)은 CPB의 크기를 결정하는 cpb_size_scale 요소와 같은 CPB 크기 스케일(312)을 포함할 수 있다.
HRD 기본 구문(602)은 버퍼링 기간 SEI 메시지의 요소들의 비트 길이를 나타내는 initial_cpb_removal_delay_length_minus1 요소와 같은 초기 CPB 제거 지연 길이(322)를 포함할 수 있다. HRD 기본 구문(602)은 픽처 타이밍 SEI 메시지에서의 요소들 cpb_removal_delay의 길이를 나타내는 cpb_removal_delay_length_minus1 요소와 같은 CPB 제거 지연 길이(324)를 포함할 수 있다.
HRD 기본 구문(602)은 dpb_output_delay_length_minus1 요소와 같은 DPB 출력 지연 길이(326)를 포함할 수 있다. DPB 출력 지연 길이(326)는 디코딩된 픽처 버퍼(DPB)의 크기를 나타낸다.
HRD 기본 구문(602)은 서브계층들의 각각의 출현에 대한 파라미터들의 세트를 포함할 수 있다. HRD 기본 구문(602)은 서브 계층의 각각의 출현에 대한 파라미터들을 기술하는, [i]와 같은 반복자를 사용하는 루프 구조체를 포함할 수 있다.
HRD 기본 구문(602)은 비디오 비트스트림(110)에서의 서브계층들의 최대 수를 나타내는 MaxNumSubLayersMinus1 요소와 같은 서브계층 카운트(306)를 포함할 수 있다. HRD 기본 구문(602)은 비디오 비트스트림(110)에서의 임의의 2개의 연속적인 픽처들의 HRD 출력 시간들 사이의 시간 거리가 제약되는지를 나타내는 fixed_pic_rate_flag 요소와 같은 고정 픽처 레이트 플래그(448)를 포함할 수 있다.
고정 픽처 레이트 플래그(448)가 1의 값을 가지는 경우, HRD 기본 구문(602)은 pic_duration_in_tc_minus1 요소와 같은 픽처 지속기간(608)을 포함할 수 있다. 픽처 지속기간(608)은 코딩된 비디오 시퀀스에서의 출력 순서에서 임의의 2개의 연속적인 픽처들의 HRD 출력 시간들 사이의 시간 거리를 나타낼 수 있다.
HRD 기본 구문(602)은 low_delay_hrd_flag 요소와 같은 저지연 플래그(460)를 포함할 수 있다. 저지연 플래그(460)는 HRD 동작 모드를 나타낼 수 있다.
HRD 기본 구문(602)은 cpb_cnt_minus1 요소와 같은 CPB 카운트(308)를 포함할 수 있다. CPB 카운트(308)는 비디오 비트스트림(110)에서의 대안의 CPB 규격의 수를 나타낼 수 있다.
NAL HRD 파라미터 존재 플래그(452)가 1의 값을 가지는 경우, HRD 기본 구문(602)은 서브계층들의 각각의 출현에 대한 hrd_parameters_sub_layer 요소와 같은 HRD 서브계층 파라미터 구조체(610)를 포함할 수 있다. HRD 서브계층 파라미터 구조체(610)는 각각의 서브계층에 관련된 파라미터들을 기술할 수 있다.
VCL HRD 파라미터 존재 플래그(456)가 1의 값을 가지는 경우, HRD 기본 구문(602)은 도 2의 시간 계층들(230)의 각각의 출현에 대한 hrd_parameters_sub_layer 요소와 같은 HRD 서브계층 파라미터 구조체(610)를 포함할 수 있다. HRD 서브계층 파라미터 구조체(610)는 각각의 서브계층에 관련된 파라미터들을 기술할 수 있다.
HRD 기본 구문(602)은 비디오 비트스트림(110)의 직렬 전송에서 HRD 서브계층 파라미터 구조체(610) 이전에 배치된 저지연 플래그(460)를 포함한다. 저지연 플래그(460)는 HRD 서브계층 파라미터 구조체(610) 이전에서 추출된다. NAL HRD 파라미터 존재 플래그(452) 및 VCL HRD 파라미터 존재 플래그(456)는 HRD 서브계층 파라미터 구조체(610) 이전에서 추출된다.
HRD 서브계층 파라미터 구조체(610)의 요소들은 저지연 플래그(460), NAL HRD 파라미터 존재 플래그(452), 및 VCL HRD 파라미터 존재 플래그(456)의 값에 기초하여 추출될 수 있다. 예를 들어, 저지연 플래그(460)가 1의 값을 갖고 NAL HRD 파라미터 존재 플래그(452) 또는 VCL HRD 파라미터 존재 플래그(456)가 1의 값을 가지는 경우, HRD 서브계층 파라미터 구조체(610)의 CPB 카운트(308)의 값은 명확하게 0으로 설정될 수 있고, 비디오 코딩 시스템(100)은 단일의 코딩된 픽처 버퍼만을 갖는 저지연 모드에서 동작할 수 있다.
HRD 기본 구문(602)을 사용하여 도 1의 비디오 콘텐츠(108)를 인코딩 및 디코딩하는 것이 비디오 비트스트림(110)의 크기를 감소시킬 수 있고 도 1의 비디오 스트림(112)을 디스플레이하는 데 필요한 비디오 버퍼링의 양을 감소시킨다는 것을 알았다. 비디오 비트스트림(110)의 크기를 감소시키는 것은 기능을 향상시키고 비디오 스트림(112)의 디스플레이의 성능을 향상시킨다.
이제 도 7을 참조하면, HRD 서브계층 구문(702)의 한 예가 동 도면에 도시되어 있다. HRD 서브계층 구문(702)은 가상 참조 디코더에 대한 시간 계층들의 서브계층들과 연관된 파라미터들을 기술한다.
HRD 서브계층 구문(702)은 도 7의 HRD 서브계층 구문 테이블에 기술된 바와 같은 요소들을 포함한다. HRD 서브계층 구문(702)의 요소들은 도 7의 HRD 서브계층 구문 테이블에 기술된 바와 같이 계층적 구조로 배열되어 있다.
HRD 서브계층 구문(702)은 HRD_parameters_sub_layer 요소와 같은 HRD 서브계층 구문 헤더(704)를 포함할 수 있다. HRD 서브계층 구문 헤더(704)는 HRD 서브계층 구문(702)을 식별하기 위한 기술자이다.
HRD 서브계층 구문(702)은 코딩된 픽처 버퍼의 각각의 출현에 대한 파라미터들의 세트를 정의하는 루프 구조체를 포함할 수 있다. 루프 구조체는 SchedSelIdx 요소와 같은 스케줄 선택 인덱스(314)에 기초한 크기로 되어 있다.
HRD 서브계층 구문(702)은 bit_rate_value_minus1 요소와 같은 비트 레이트 값(316)을 포함할 수 있다. 비트 레이트 값(316)은 코딩된 픽처 버퍼의 각각의 출현에 대한 최대 입력 비트 레이트를 명시하는 데 사용될 수 있다.
HRD 서브계층 구문(702)은 cpb_size_value_minus1 요소와 같은 CPB 크기 값(318)을 포함할 수 있다. CPB 크기 값(318)은 코딩된 픽처 버퍼의 각각의 출현에 대한 크기를 결정하는 데 사용될 수 있다.
HRD 서브계층 구문(702)은 cbr_flag 요소와 같은 CBR 플래그(320)를 포함할 수 있다. CBR 플래그(320)는 코딩된 픽처 버퍼의 각각의 출현에 대한 도 1의 비디오 비트스트림(110)을 디코딩하는 동작 모드를 나타낸다. CBR 플래그(320)가 1의 값을 가지는 경우, 가상 스트림 배달 스케줄은 일정한 비트 레이트 모드에서 동작한다. 그렇지 않은 경우, 비디오 비트스트림(110)은 간헐적 비트 레이트 모드를 포함한다.
HRD 서브계층 구문(702)은 도 2의 시간 계층들(230)의 특성들을 기술할 수 있다. 시간 계층들(230)은 또한 도 1의 비디오 비트스트림(110)의 서브계층들로서 지정될 수 있다.
HRD 서브계층 구문(702)은 비디오 비트스트림(110)의 시간 계층들(230)의 서브계층들을 나타낼 수 있다. HRD 서브계층 구문(702)은 서브계층들 중 하나 또는 시간 계층들(230) 중 하나를 선택하는 데 그리고 비디오 비트스트림(110)으로부터 다른 서브계층들의 출현들의 제거를 가능하게 하는 데 사용될 수 있다.
서브계층들 또는 시간 계층들(230)의 출현들을 제거하는 것은 비디오 비트스트림(110) 내의 데이터의 전체 볼륨을 감소시킬 수 있고, 더 나은 전송, 개선된 저장 대역폭 제어 및 조절을 위한 도 1의 비디오 콘텐츠(108)의 비트 레이트 감소 또는 크기 조정을 가능하게 할 수 있다. 서브계층 또는 시간 계층 관련 HRD 파라미터들을 제공하는 것은 도 1의 비디오 스트림(112)을 생성하기 위해 보다 양호하고 보다 매끄러운 비트스트림 디코딩을 가능하게 한다.
HRD 서브계층 구문(702)을 사용하는 것이 도 2의 시간 계층들(230)과 연관된 개개의 서브계층들의 처리에 대해 보다 세밀한 제어를 가능하게 함으로써 개선된 성능을 제공한다는 것을 알았다. HRD 서브계층 구문(702)의 개개의 출현들을 사용하는 것은 상이한 서브계층들 간의 개개의 차이들을 이용함으로써 개선된 처리 속도를 제공할 수 있다.
이제 도 8을 참조하면, HRD VUI 구문(802)의 한 예가 동 도면에 도시되어 있다. HRD VUI 구문(802)은 가상 참조 디코더와 연관된 파라미터들을 기술한다.
HRD VUI 구문(802)은 도 8의 HRD VUI 구문 테이블에 기술된 바와 같은 요소들을 포함한다. HRD VUI 구문(802)의 요소들은 도 8의 HRD VUI 구문 테이블에 기술된 바와 같이 계층적 구조로 배열되어 있다.
HRD VUI 구문(802)은 vui_parameters 요소와 같은 HRD VUI 구문 헤더(804)를 포함할 수 있다. HRD VUI 구문 헤더(804)는 HRD VUI 구문(802)을 식별하기 위한 기술자이다.
HRD VUI 구문(802)은 부가의 종횡비 정보가 도 1의 비디오 비트스트림(110)에 인코딩되어 있다는 것을 나타내는 aspect_ratio_info_present_flag 요소와 같은 종횡비 플래그(406)를 포함할 수 있다. HRD VUI 구문(802)은 도 1의 비디오 콘텐츠(108)의 종횡비를 기술하는 aspect_ratio_idc 요소와 같은 종횡비 표시자(408)를 포함할 수 있다.
종횡비 표시자(408)는 종횡비가 종횡비 폭(410) 및 종횡비 높이(412)에 대한 개개의 값들에 의해 기술될 수 있다는 것을 나타내는 값을 포함할 수 있다. sar_width 요소와 같은 종횡비 폭(410)은 비디오 콘텐츠(108)의 폭을 기술할 수 있다. sar_height 요소와 같은 종횡비 높이(412)는 비디오 콘텐츠(108)의 높이를 기술할 수 있다.
HRD VUI 구문(802)은 오버스캔 정보가 비디오 비트스트림(110)에 포함되어 있는지를 나타내는 overscan_info_present_flag 요소와 같은 오버스캔 존재 플래그(414)를 포함할 수 있다. 오버스캔 존재 플래그(414)가 1의 값을 가지는 경우, HRD VUI 구문(802)은 비디오 비트스트림(110)에 인코딩된 비디오 콘텐츠(108)가 오버스캔을 사용하여 디스플레이될 수 있다는 것을 나타내는 overscan_appropriate_flag 요소와 같은 오버스캔 적절 플래그(416)를 포함할 수 있다.
HRD VUI 구문(802)은 비디오 신호 유형 정보가 비디오 비트스트림(110)에 포함되어 있다는 것을 나타내는 video_signal_type_present_flag 요소와 같은 비디오 신호 존재 플래그(418)를 포함할 수 있다. 비디오 신호 존재 플래그(418)가 1의 값을 가지는 경우, HRD VUI 구문(802)은 비디오 형식(420), 비디오 전체 범위 플래그(422), 및 색 설명 존재 플래그(424)를 포함할 수 있다.
video_format 요소와 같은 비디오 형식(420)은 비디오의 형식을 나타낼 수 있다. video_full_range_flag 요소와 같은 비디오 전체 범위 플래그(422)는 비디오 비트스트림(110)에 인코딩되어 있는 비디오 콘텐츠(108)에 대한 블랙 레벨과 루마 신호 및 크로마 신호의 범위를 나타낼 수 있다.
colour_description_present_flag 요소와 같은 색 설명 존재 플래그(424)는 비디오 비트스트림(110)에서의 색 설명 정보의 존재를 나타낼 수 있다. 색 설명 정보는 3원색(426), 전달 특성(428) 및 행렬 계수(430)를 포함할 수 있다.
colour_primaries 요소와 같은 3원색(426)은 비디오 콘텐츠(108)에서 사용되는 색 구성표(color scheme)를 나타낼 수 있다. 전달 특성(428)은 비디오 콘텐츠(108)의 광-전자 전달 특성(opto-electronic transfer characteristics)을 나타낼 수 있다. matrix_coefficient 요소와 같은 행렬 계수(430)는 3원색(426)으로 표시된 적색, 녹색 및 청색 원색들로부터 루마 신호 및 크로마 신호를 도출하는 데 사용되는 계수를 나타낼 수 있다.
HRD VUI 구문(802)은 부가의 크로마 정보가 비디오 비트스트림(110)에 존재하는지를 나타내는 chroma_loc_info_present_flag 요소와 같은 크로마 위치 정보 존재 플래그(432)를 포함할 수 있다. 크로마 위치 정보 존재 플래그(432)가 1의 값을 가질 수 있는 경우, HRD VUI 구문(802)은 크로마 상부 필드 샘플(434) 및 크로마 하부 필드 샘플(436)을 포함할 수 있다.
chroma_sample_loc_type_top_field 요소와 같은 크로마 상부 필드 샘플(434)은 비디오 비트스트림(110)에서 상부 필드에 대한 크로마 샘플들의 위치를 명시하는 열거형 값일 수 있다. chroma_sample_loc_type_bottom_field 요소와 같은 크로마 하부 필드 샘플(436)은 비디오 비트스트림(110)에서 하부 필드에 대한 크로마 샘플들의 위치를 명시하는 열거형 값일 수 있다.
HRD VUI 구문(802)은 디코딩된 크로마 샘플들이 1인지를 나타낼 수 있는 neutral_chroma_indication_flag 요소와 같은 중성 크로마 플래그(438)를 포함할 수 있다. HRD VUI 구문(802)은 코딩된 비디오 시퀀스 정보가 필드들을 나타내는 비디오를 포함하는지를 나타내는 field_seq_flag와 같은 필드 시퀀스 플래그(440)를 포함할 수 있다.
HRD VUI 구문(802)은 hrd_parameters 요소와 같은 HRD 파라미터 구조체(454)를 포함할 수 있다. HRD 파라미터 구조체(454)는 각각의 서브계층에 대한 가상 참조 디코더 파라미터들을 포함할 수 있다.
HRD VUI 구문(802)은 코딩된 비디오 시퀀스 비트스트림 제한 파라미터들이 비디오 비트스트림(110)에 존재한다는 것을 나타내는 bitstream_restriction_flag 요소와 같은 비트스트림 제한 플래그(466)를 포함할 수 있다. 비트스트림 제한 플래그(466)가 1의 값을 가지는 경우, HRD VUI 구문(802)은 타일 고정 구조체 플래그(468), 움직임 벡터 플래그(470), 픽처 디노미네이션별 최대 바이트(472), 최소 cu 디노미네이션별 최대 비트(474), 최대 움직임 벡터 수평 길이(476), 및 최대 움직임 벡터 수직 길이(478)를 포함할 수 있다.
HRD VUI 구문(802)은 코딩된 비디오 시퀀스에서의 각각의 픽처가 동일한 수의 타일들을 가진다는 것을 나타내는 tiles_fixed_structure_flag 요소와 같은 타일 고정 구조체 플래그(468)를 포함할 수 있다. HRD VUI 구문(802)은 픽처 경계 밖의 어떤 샘플도 예측을 위해 사용되지 않는다는 것을 나타내는 motion_vector_over_pic_boundaries_flag 요소와 같은 움직임 벡터 플래그(470)를 포함할 수 있다.
HRD VUI 구문(802)은 코딩된 비디오 시퀀스 내의 임의의 코딩된 픽처와 연관된 VCL NAL 단위들의 크기들의 합에 대한 최대 바이트 수를 나타내는 max_bytes_per_pic_denom 요소와 같은 픽처 디노미네이션별 최대 바이트(472)를 포함할 수 있다. HEVC VUI 구문(802)은 코딩된 비디오 시퀀스의 임의의 픽처에서 임의의 코딩 블록에 대한 코딩 단위 데이터의 코딩된 비트들의 수에 대한 상한을 나타내는 max_bits_per_min_cu_denom 요소와 같은 최소 cu 디노미네이션별 최대 비트(474)를 포함할 수 있다.
HRD VUI 구문(802)은 비디오 비트스트림(110) 내의 모든 픽처들에 대한 디코딩된 수평 움직임 벡터 성분의 최대 절대값을 나타내는 log2_max_mv_length_horizontal 요소와 같은 최대 움직임 벡터 수평 길이(476)를 포함할 수 있다. HRD VUI 구문(802)은 비디오 비트스트림(110) 내의 모든 픽처들에 대한 디코딩된 수직 움직임 벡터 성분의 최대 절대값을 나타내는 log2_max_mv_length_vertical 요소와 같은 최대 움직임 벡터 수직 길이(478)를 포함할 수 있다.
HRD VUI 구문(802)에서 HRD 파라미터 구조체(454)를 사용하는 것이 개개의 서브계층들의 처리에 대해 보다 세밀한 제어를 가능하게 함으로써 개선된 성능을 제공한다는 것을 알았다. HRD 파라미터 구조체(454)의 개개의 출현들을 사용하는 것은 상이한 서브계층들 간의 개개의 차이들을 이용함으로써 개선된 처리 속도를 제공할 수 있다.
이제 도 9를 참조하면, 비디오 코딩 시스템(100)의 기능 블록도가 동 도면에 도시되어 있다. 비디오 코딩 시스템(100)은 제1 디바이스(102), 제2 디바이스(104), 및 통신 경로(106)를 포함할 수 있다.
제1 디바이스(102)는 통신 경로(106)를 통해 제2 디바이스(104)와 통신할 수 있다. 제1 디바이스(102)는 제1 디바이스 전송(932)에서 통신 경로(106)를 통해 제2 디바이스(104)로 정보를 송신할 수 있다. 제2 디바이스(104)는 제2 디바이스 전송(934)에서 통신 경로(106)를 통해 제1 디바이스(102)로 정보를 송신할 수 있다.
예시를 위해, 비디오 코딩 시스템(100)은 클라이언트 디바이스로서 제1 디바이스(102)를 갖는 것으로 도시되어 있지만, 비디오 코딩 시스템(100)이 상이한 유형의 디바이스로서의 제1 디바이스(102)를 가질 수 있다는 것을 잘 알 것이다. 예를 들어, 제1 디바이스는 서버일 수 있다. 추가의 예에서, 제1 디바이스(102)는 비디오 인코더(102), 비디오 디코더(104), 또는 이들의 조합일 수 있다.
또한 예시를 위해, 비디오 코딩 시스템(100)은 서버로서 제2 디바이스(104)를 갖는 것으로 도시되어 있지만, 비디오 코딩 시스템(100)이 상이한 유형의 디바이스로서의 제2 디바이스(104)를 가질 수 있다는 것을 잘 알 것이다. 예를 들어, 제2 디바이스(104)는 클라이언트 디바이스일 수 있다. 추가의 예에서, 제2 디바이스(104)는 비디오 인코더(102), 비디오 디코더(104), 또는 이들의 조합일 수 있다.
본 발명의 이 실시예에서 설명의 간략함을 위해, 제1 디바이스(102)는 비디오 카메라, 스마트폰, 또는 이들의 조합과 같은 클라이언트 디바이스로서 기술될 것이다. 본 발명은 디바이스들의 유형에 대한 이 선택으로 제한되지 않는다. 이 선택은 본 발명의 한 예이다.
제1 디바이스(102)는 제1 제어 유닛(908)을 포함할 수 있다. 제1 제어 유닛(908)은 제1 제어 인터페이스(914)를 포함할 수 있다. 제1 제어 유닛(908)은 비디오 코딩 시스템(100)의 지능을 제공하기 위해 제1 소프트웨어(912)를 실행할 수 있다.
제1 제어 유닛(908)은 다수의 상이한 방식들로 구현될 수 있다. 예를 들어, 제1 제어 유닛(908)은 프로세서, 임베디드 프로세서, 마이크로프로세서, 하드웨어 제어 로직, 하드웨어 유한 상태 기계(finite state machine)(FSM), 디지털 신호 처리기(DSP), 또는 이들의 조합일 수 있다.
제1 제어 인터페이스(914)는 제1 제어 유닛(908)과 제1 디바이스(102) 내의 다른 기능 유닛들 간의 통신을 위해 사용될 수 있다. 제1 제어 인터페이스(914)는 또한 제1 디바이스(102)의 외부와의 통신을 위해 사용될 수 있다.
제1 제어 인터페이스(914)는 다른 기능 유닛들로부터 또는 외부 소스들로부터 정보를 수신할 수 있거나, 정보를 다른 기능 유닛들로 또는 다른 목적지들로 전송할 수 있다. 외부 소스들 및 외부 목적지들은 제1 디바이스(102) 외부에 있는 소스들 및 목적지들을 말한다.
어느 기능 유닛들 또는 외부 유닛들이 제1 제어 인터페이스(914)와 인터페이스되어 있는지에 따라, 제1 제어 인터페이스(914)는 상이한 방식들로 구현될 수 있고 상이한 구현들을 포함할 수 있다. 예를 들어, 제1 제어 인터페이스(914)는 전기 회로, MEMS(microelectromechanical system), 광 회로, 무선 회로, 유선 회로, 또는 이들의 조합으로 구현될 수 있다.
제1 디바이스(102)는 제1 저장 유닛(904)을 포함할 수 있다. 제1 저장 유닛(904)은 제1 소프트웨어(912)를 저장할 수 있다. 제1 저장 유닛(904)은 또한 영상, 구문 정보, 비디오, 지도, 프로파일, 디스플레이 기본 설정, 센서 데이터, 또는 이들의 임의의 조합과 같은 관련 정보를 저장할 수 있다.
제1 저장 유닛(904)은 휘발성 메모리, 비휘발성 메모리, 내부 메모리, 외부 메모리, 또는 이들의 조합일 수 있다. 예를 들어, 제1 저장 유닛(904)은 비휘발성 랜덤 액세스 메모리(NVRAM), 플래시 메모리, 디스크 저장 장치와 같은 비휘발성 저장 장치, 또는 정적 랜덤 액세스 메모리(SRAM)와 같은 휘발성 저장 장치일 수 있다.
제1 저장 유닛(904)은 제1 저장 인터페이스(918)를 포함할 수 있다. 제1 저장 인터페이스(918)는 제1 저장 유닛(904)과 제1 디바이스(102) 내의 다른 기능 유닛들 간의 통신을 위해 사용될 수 있다. 제1 저장 인터페이스(918)는 또한 제1 디바이스(102)의 외부와의 통신을 위해 사용될 수 있다.
제1 디바이스(102)는 제1 영상 유닛(906)을 포함할 수 있다. 제1 영상 유닛(906)은 현실 세계로부터 도 1의 비디오 콘텐츠(108)를 포착할 수 있다. 제1 영상 유닛(906)은 디지털 카메라, 비디오 카메라, 광 센서, 또는 이들의 임의의 조합을 포함할 수 있다.
제1 영상 유닛(906)은 제1 영상 인터페이스(916)를 포함할 수 있다. 제1 영상 인터페이스(916)는 제1 영상 유닛(906)과 제1 디바이스(102) 내의 다른 기능 유닛들 간의 통신을 위해 사용될 수 있다.
제1 영상 인터페이스(916)는 다른 기능 유닛들로부터 또는 외부 소스들로부터 정보를 수신할 수 있거나, 정보를 다른 기능 유닛들로 또는 다른 목적지들로 전송할 수 있다. 외부 소스들 및 외부 목적지들은 제1 디바이스(102) 외부에 있는 소스들 및 목적지들을 말한다.
어느 기능 유닛들 또는 외부 유닛들이 제1 영상 유닛(906)과 인터페이스되어 있는지에 따라, 제1 영상 인터페이스(916)는 상이한 구현들을 포함할 수 있다. 제1 영상 인터페이스(916)는 제1 제어 인터페이스(914)의 구현과 유사한 기술들 및 기법들로 구현될 수 있다.
제1 저장 인터페이스(918)는 다른 기능 유닛들로부터 또는 외부 소스들로부터 정보를 수신할 수 있거나, 정보를 다른 기능 유닛들로 또는 다른 목적지들로 전송할 수 있다. 외부 소스들 및 외부 목적지들은 제1 디바이스(102) 외부에 있는 소스들 및 목적지들을 말한다.
어느 기능 유닛들 또는 외부 유닛들이 제1 저장 유닛(904)과 인터페이스되어 있는지에 따라, 제1 저장 인터페이스(918)는 상이한 구현들을 포함할 수 있다. 제1 저장 인터페이스(918)는 제1 제어 인터페이스(914)의 구현과 유사한 기술들 및 기법들로 구현될 수 있다.
제1 디바이스(102)는 제1 통신 유닛(910)을 포함할 수 있다. 제1 통신 유닛(910)은 제1 디바이스(102)로 그리고 그로부터의 외부 통신을 가능하게 하기 위한 것일 수 있다. 예를 들어, 제1 통신 유닛(910)은 제1 디바이스(102)가 제2 디바이스(104), 주변 장치 또는 컴퓨터 데스크톱과 같은 부속물, 및 통신 경로(106)와 통신할 수 있게 할 수 있다.
제1 통신 유닛(910)은 또한 제1 디바이스(102)가 통신 경로(106)의 일부로서 기능할 수 있게 하는 통신 허브로서 기능할 수 있고, 통신 경로(106)에 대한 종단점 또는 단말 유닛으로 제한되지 않는다. 제1 통신 유닛(910)은 통신 경로(106)와 상호작용하기 위한 마이크로전자회로 또는 안테나와 같은 능동 및 수동 구성요소들을 포함할 수 있다.
제1 통신 유닛(910)은 제1 통신 인터페이스(920)를 포함할 수 있다. 제1 통신 인터페이스(920)는 제1 통신 유닛(910)과 제1 디바이스(102) 내의 다른 기능 유닛들 간의 통신을 위해 사용될 수 있다. 제1 통신 인터페이스(920)는 다른 기능 유닛들로부터 정보를 수신할 수 있거나, 정보를 다른 기능 유닛들로 전송할 수 있다.
어느 기능 유닛들이 제1 통신 유닛(910)과 인터페이스되어 있는지에 따라, 제1 통신 인터페이스(920)는 상이한 구현들을 포함할 수 있다. 제1 통신 인터페이스(920)는 제1 제어 인터페이스(914)의 구현과 유사한 기술들 및 기법들로 구현될 수 있다.
제1 디바이스(102)는 제1 사용자 인터페이스(902)를 포함할 수 있다. 제1 사용자 인터페이스(902)는 사용자(도시 생략)가 제1 디바이스(102)와 인터페이스하고 상호작용할 수 있게 한다. 제1 사용자 인터페이스(902)는 제1 사용자 입력(도시 생략)을 포함할 수 있다. 제1 사용자 입력은 터치 스크린, 제스처, 움직임 검출, 버튼, 슬라이더, 노브, 가상 버튼, 음성 인식 제어, 또는 이들의 임의의 조합을 포함할 수 있다.
제1 사용자 인터페이스(902)는 제1 디스플레이 인터페이스(120)를 포함할 수 있다. 제1 디스플레이 인터페이스(120)는 사용자가 제1 사용자 인터페이스(902)와 상호작용할 수 있게 할 수 있다. 제1 디스플레이 인터페이스(120)는 디스플레이, 비디오 화면, 스피커, 또는 이들의 임의의 조합을 포함할 수 있다.
제1 제어 유닛(908)은 비디오 코딩 시스템(100)에 의해 생성된 비디오 정보를 제1 디스플레이 인터페이스(120) 상에 디스플레이하기 위해 제1 사용자 인터페이스(902)와 함께 동작할 수 있다. 제1 제어 유닛(908)은 또한 제1 디스플레이 인터페이스(120) 상에 디스플레이하기 위해 제1 저장 유닛(904)으로부터 비디오 정보를 수신하는 것을 비롯한 비디오 코딩 시스템(100)의 다른 기능들을 위해 제1 소프트웨어(912)를 실행할 수 있다. 제1 제어 유닛(908)은 제1 통신 유닛(910)을 통해 통신 경로(106)와 상호작용하기 위해 제1 소프트웨어(912)를 추가로 실행할 수 있다.
예시를 위해, 제1 디바이스(102)는 제1 사용자 인터페이스(902), 제1 저장 유닛(904), 제1 제어 유닛(908), 및 제1 통신 유닛(910)을 가지는 것으로 분할되어 있을 수 있지만, 제1 디바이스(102)가 상이한 분할을 가질 수 있다는 것을 잘 알 것이다. 예를 들어, 제1 소프트웨어(912)는 그의 기능의 일부 또는 전부가 제1 제어 유닛(908) 및 제1 통신 유닛(910)에 있을 수 있도록 상이하게 분할될 수 있다. 또한, 제1 디바이스(102)는 명확함을 위해 도 1에 도시되지 않은 다른 기능 유닛들을 포함할 수 있다.
비디오 코딩 시스템(100)은 제2 디바이스(104)를 포함할 수 있다. 제2 디바이스(104)는 다중 디바이스 환경에서 제1 디바이스(102)와 본 발명을 구현하도록 최적화될 수 있다. 제2 디바이스(104)는 제1 디바이스(102)에 비해 부가의 또는 더 높은 성능 처리 능력을 제공할 수 있다.
제2 디바이스(104)는 제2 제어 유닛(948)을 포함할 수 있다. 제2 제어 유닛(948)은 제2 제어 인터페이스(954)를 포함할 수 있다. 제2 제어 유닛(948)은 비디오 코딩 시스템(100)의 지능을 제공하기 위해 제2 소프트웨어(952)를 실행할 수 있다.
제2 제어 유닛(948)은 다수의 상이한 방식들로 구현될 수 있다. 예를 들어, 제2 제어 유닛(948)은 프로세서, 임베디드 프로세서, 마이크로프로세서, 하드웨어 제어 로직, 하드웨어 유한 상태 기계(FSM), 디지털 신호 처리기(DSP), 또는 이들의 조합일 수 있다.
제2 제어 인터페이스(954)는 제2 제어 유닛(948)과 제2 디바이스(104) 내의 다른 기능 유닛들 간의 통신을 위해 사용될 수 있다. 제2 제어 인터페이스(954)는 또한 제2 디바이스(104)의 외부와의 통신을 위해 사용될 수 있다.
제2 제어 인터페이스(954)는 다른 기능 유닛들로부터 또는 외부 소스들로부터 정보를 수신할 수 있거나, 정보를 다른 기능 유닛들로 또는 다른 목적지들로 전송할 수 있다. 외부 소스들 및 외부 목적지들은 제2 디바이스(104) 외부에 있는 소스들 및 목적지들을 말한다.
어느 기능 유닛들 또는 외부 유닛들이 제2 제어 인터페이스(954)와 인터페이스되어 있는지에 따라, 제2 제어 인터페이스(954)는 상이한 방식들로 구현될 수 있고 상이한 구현들을 포함할 수 있다. 예를 들어, 제2 제어 인터페이스(954)는 전기 회로, MEMS(microelectromechanical system), 광 회로, 무선 회로, 유선 회로, 또는 이들의 조합으로 구현될 수 있다.
제2 디바이스(104)는 제2 저장 유닛(944)을 포함할 수 있다. 제2 저장 유닛(944)은 제2 소프트웨어(952)를 저장할 수 있다. 제2 저장 유닛(944)은 또한 영상, 구문 정보, 비디오, 지도, 프로파일, 디스플레이 기본 설정, 센서 데이터, 또는 이들의 임의의 조합과 같은 관련 정보를 저장할 수 있다.
제2 저장 유닛(944)은 휘발성 메모리, 비휘발성 메모리, 내부 메모리, 외부 메모리, 또는 이들의 조합일 수 있다. 예를 들어, 제2 저장 유닛(944)은 비휘발성 랜덤 액세스 메모리(NVRAM), 플래시 메모리, 디스크 저장 장치와 같은 비휘발성 저장 장치, 또는 정적 랜덤 액세스 메모리(SRAM)와 같은 휘발성 저장 장치일 수 있다.
제2 저장 유닛(944)은 제2 저장 인터페이스(958)를 포함할 수 있다. 제2 저장 인터페이스(958)는 제2 저장 유닛(944)과 제2 디바이스(104) 내의 다른 기능 유닛들 간의 통신을 위해 사용될 수 있다. 제2 저장 인터페이스(958)는 또한 제2 디바이스(104)의 외부와의 통신을 위해 사용될 수 있다.
제2 저장 인터페이스(958)는 다른 기능 유닛들로부터 또는 외부 소스들로부터 정보를 수신할 수 있거나, 정보를 다른 기능 유닛들로 또는 다른 목적지들로 전송할 수 있다. 외부 소스들 및 외부 목적지들은 제2 디바이스(104) 외부에 있는 소스들 및 목적지들을 말한다.
어느 기능 유닛들 또는 외부 유닛들이 제2 저장 유닛(944)과 인터페이스되어 있는지에 따라, 제2 저장 인터페이스(958)는 상이한 구현들을 포함할 수 있다. 제2 저장 인터페이스(958)는 제2 제어 인터페이스(954)의 구현과 유사한 기술들 및 기법들로 구현될 수 있다.
제2 디바이스(104)는 제2 영상 유닛(946)을 포함할 수 있다. 제2 영상 유닛(946)은 현실 세계로부터 비디오 콘텐츠(108)를 포착할 수 있다. 제1 영상 유닛(906)은 디지털 카메라, 비디오 카메라, 광 센서, 또는 이들의 임의의 조합을 포함할 수 있다.
제2 영상 유닛(946)은 제2 영상 인터페이스(956)를 포함할 수 있다. 제2 영상 인터페이스(956)는 제2 영상 유닛(946)과 제2 디바이스(104) 내의 다른 기능 유닛들 간의 통신을 위해 사용될 수 있다.
제2 영상 인터페이스(956)는 다른 기능 유닛들로부터 또는 외부 소스들로부터 정보를 수신할 수 있거나, 정보를 다른 기능 유닛들로 또는 다른 목적지들로 전송할 수 있다. 외부 소스들 및 외부 목적지들은 제2 디바이스(104) 외부에 있는 소스들 및 목적지들을 말한다.
어느 기능 유닛들 또는 외부 유닛들이 제2 영상 유닛(946)과 인터페이스되어 있는지에 따라, 제2 영상 인터페이스(956)는 상이한 구현들을 포함할 수 있다. 제2 영상 인터페이스(956)는 제1 제어 인터페이스(914)의 구현과 유사한 기술들 및 기법들로 구현될 수 있다.
제2 디바이스(104)는 제2 통신 유닛(950)을 포함할 수 있다. 제2 통신 유닛(950)은 제2 디바이스(104)로 그리고 그로부터의 외부 통신을 가능하게 할 수 있다. 예를 들어, 제2 통신 유닛(950)은 제2 디바이스(104)가 제1 디바이스(102), 주변 장치 또는 컴퓨터 데스크톱과 같은 부속물, 및 통신 경로(106)와 통신할 수 있게 할 수 있다.
제2 통신 유닛(950)은 또한 제2 디바이스(104)가 통신 경로(106)의 일부로서 기능할 수 있게 하는 통신 허브로서 기능할 수 있고, 통신 경로(106)에 대한 종단점 또는 단말 유닛으로 제한되지 않는다. 제2 통신 유닛(950)은 통신 경로(106)와 상호작용하기 위한 마이크로전자회로 또는 안테나와 같은 능동 및 수동 구성요소들을 포함할 수 있다.
제2 통신 유닛(950)은 제2 통신 인터페이스(960)를 포함할 수 있다. 제2 통신 인터페이스(960)는 제2 통신 유닛(950)과 제2 디바이스(104) 내의 다른 기능 유닛들 간의 통신을 위해 사용될 수 있다. 제2 통신 인터페이스(960)는 다른 기능 유닛들로부터 정보를 수신할 수 있거나, 정보를 다른 기능 유닛들로 전송할 수 있다.
어느 기능 유닛들이 제2 통신 유닛(950)과 인터페이스되어 있는지에 따라, 제2 통신 인터페이스(960)는 상이한 구현들을 포함할 수 있다. 제2 통신 인터페이스(960)는 제2 제어 인터페이스(954)의 구현과 유사한 기술들 및 기법들로 구현될 수 있다.
제2 디바이스(104)는 제2 사용자 인터페이스(942)를 포함할 수 있다. 제2 사용자 인터페이스(942)는 사용자(도시 생략)가 제2 디바이스(104)와 인터페이스하고 상호작용할 수 있게 한다. 제2 사용자 인터페이스(942)는 제2 사용자 입력(도시 생략)을 포함할 수 있다. 제2 사용자 입력은 터치 스크린, 제스처, 움직임 검출, 버튼, 슬라이더, 노브, 가상 버튼, 음성 인식 제어, 또는 이들의 임의의 조합을 포함할 수 있다.
제2 사용자 인터페이스(942)는 제2 디스플레이 인터페이스(943)를 포함할 수 있다. 제2 디스플레이 인터페이스(943)는 사용자가 제2 사용자 인터페이스(942)와 상호작용할 수 있게 할 수 있다. 제2 디스플레이 인터페이스(943)는 디스플레이, 비디오 화면, 스피커, 또는 이들의 임의의 조합을 포함할 수 있다.
제2 제어 유닛(948)은 비디오 코딩 시스템(100)에 의해 생성된 정보를 제2 디스플레이 인터페이스(943) 상에 디스플레이하기 위해 제2 사용자 인터페이스(942)와 함께 동작할 수 있다. 제2 제어 유닛(948)은 또한 제2 디스플레이 인터페이스(943) 상에 디스플레이하기 위해 제2 저장 유닛(944)으로부터 비디오 정보를 수신하는 것을 비롯한 비디오 코딩 시스템(100)의 다른 기능들을 위해 제2 소프트웨어(952)를 실행할 수 있다. 제2 제어 유닛(948)은 제2 통신 유닛(950)을 통해 통신 경로(106)와 상호작용하기 위해 제2 소프트웨어(952)를 추가로 실행할 수 있다.
예시를 위해, 제2 디바이스(104)는 제2 사용자 인터페이스(942), 제2 저장 유닛(944), 제2 제어 유닛(948), 및 제2 통신 유닛(950)을 가지는 것으로 분할되어 있을 수 있지만, 제2 디바이스(104)가 상이한 분할을 가질 수 있다는 것을 잘 알 것이다. 예를 들어, 제2 소프트웨어(952)는 그의 기능의 일부 또는 전부가 제2 제어 유닛(948) 및 제2 통신 유닛(950)에 있을 수 있도록 상이하게 분할될 수 있다. 또한, 제2 디바이스(104)는 명확함을 위해 도 1에 도시되지 않은 다른 기능 유닛들을 포함할 수 있다.
제1 통신 유닛(910)은 제1 디바이스 전송(932)에서 정보를 제2 디바이스(104)로 송신하기 위해 통신 경로(106)와 결합될 수 있다. 제2 디바이스(104)는 통신 경로(106)의 제1 디바이스 전송(932)으로부터 제2 통신 유닛(950)에서 정보를 수신할 수 있다.
제2 통신 유닛(950)은 제2 디바이스 전송(934)에서 정보를 제1 디바이스(102)로 송신하기 위해 통신 경로(106)와 결합될 수 있다. 제1 디바이스(102)는 통신 경로(106)의 제2 디바이스 전송(934)으로부터 제1 통신 유닛(910)에서 비디오 정보를 수신할 수 있다. 비디오 코딩 시스템(100)은 제1 제어 유닛(908), 제2 제어 유닛(948), 또는 이들의 조합에 의해 실행될 수 있다.
제1 디바이스(102) 내의 기능 유닛들은 개별적으로 그리고 다른 기능 유닛들과 독립적으로 동작할 수 있다. 예시를 위해, 비디오 코딩 시스템(100)은 제1 디바이스(102)의 동작에 의해 기술되어 있다. 제1 디바이스(102)가 비디오 코딩 시스템(100)의 모듈들 및 기능들 중 임의의 것을 동작시킬 수 있다는 것을 잘 알 것이다. 예를 들어, 제1 디바이스(102)는 제1 제어 유닛(908)을 동작시키는 것으로 기술될 수 있다.
제2 디바이스(104) 내의 기능 유닛들은 개별적으로 그리고 다른 기능 유닛들과 독립적으로 동작할 수 있다. 예시를 위해, 비디오 코딩 시스템(100)은 제2 디바이스(104)의 동작에 의해 기술되어 있다. 제2 디바이스(104)가 비디오 코딩 시스템(100)의 모듈들 및 기능들 중 임의의 것을 동작시킬 수 있다는 것을 잘 알 것이다. 예를 들어, 제2 디바이스(104)는 제2 제어 유닛(948)을 동작시키는 것으로 기술되어 있다.
예시를 위해, 비디오 코딩 시스템(100)은 제1 디바이스(102) 및 제2 디바이스(104)의 동작에 의해 기술되어 있다. 제1 디바이스(102) 및 제2 디바이스(104)가 비디오 코딩 시스템(100)의 모듈들 및 기능들 중 임의의 것을 동작시킬 수 있다는 것을 잘 알 것이다. 예를 들어, 제1 디바이스(102)는 제1 제어 유닛(908)을 동작시키는 것으로 기술되어 있지만, 제2 디바이스(104)가 또한 제1 제어 유닛(908)을 동작시킬 수 있다는 것을 잘 알 것이다.
이제 도 10을 참조하면, 도 1의 비디오 코딩 시스템(100)의 제어 흐름(1000)이 동 도면에 도시되어 있다. 제어 흐름(1000)은 비디오 스트림(110)을 수신하는 것, 도 1의 비디오 구문(114)을 추출하는 것, 비디오 비트스트림(110)을 디코딩하는 것, 및 도 1의 비디오 스트림(112)을 디스플레이하는 것에 의해 도 1의 비디오 비트스트림(110)을 디코딩하는 것을 기술하고 있다.
비디오 코딩 시스템(100)은 수신 모듈(1002)을 포함할 수 있다. 수신 모듈(1002)은 도 1의 비디오 인코더(102)에 의해 인코딩된 비디오 비트스트림(110)을 수신할 수 있다.
비디오 비트스트림(110)은 각종의 방식들로 수신될 수 있다. 예를 들어, 비디오 비트스트림(110)은 도 1의 비디오 인코더(102)로부터 스트리밍 직렬 비트스트림, 사전 인코딩된 비디오 파일(도시 생략)로서, 도 1의 통신 경로(106)를 통해 디지털 메시지(도시 생략)로, 또는 이들의 조합으로 수신될 수 있다.
한 예시적인 예에서, 비디오 비트스트림(110)은 비디오 구문(114)의 각각의 요소가 순차적으로 수신되는 시간별로(in a timewise manner) 직렬 비트스트림으로서 수신될 수 있다. 비디오 비트스트림(110)은 도 4의 HEVC VUI 구문(402), 도 5의 HEVC VUI 확장 구문(502), 도 8의 HRD VUI 구문(802), 도 3의 HRD 구문(302), 도 6의 HRD 기본 구문(602), 도 7의 HRD 서브계층 구문(702), 또는 이들의 조합과 같은 비디오 구문(114)을 포함할 수 있다.
예를 들어, 수신 모듈(1002)은 도 4의 HRD 파라미터 구조체(454)가 도 4의 저지연 플래그(460) 이전에 수신되는 HEVC VUI 구문(402)을 수신할 수 있다. 이와 유사하게, 도 4의 NAL HRD 파라미터 존재 플래그(452)는 HRD 파라미터 구조체(454) 이전에 수신될 수 있다. NAL HRD 파라미터 존재 플래그(452)가 0의 값을 가지는 경우, 도 4의 VCL HRD 파라미터 존재 플래그(456)는 HRD 파라미터 구조체(454) 이전에 수신될 수 있다.
비디오 비트스트림(110)은 도 1의 비디오 콘텐츠(108)를 상이한 프레임 레이트들로 표현하기 위해 도 2의 시간 계층들(230) 중 하나 이상을 포함할 수 있다. 수신 모듈(1002)은 비디오 비트스트림(110)의 크기를 감소시키기 위해 시간 계층들(230)을 선택적으로 필터링할 수 있다.
예를 들어, 수신 모듈(1002)은 60 fps, 30 fps, 및 15 fps와 같은 3개의 상이한 프레임 레이트들에 대한 시간 계층들(230)을 가지는 비디오 비트스트림(110)을 수신할 수 있다. 수신 모듈(1002)은 시간 계층들(230)의 60 fps 및 30 fps 출현들을 제거하기 위해 비디오 비트스트림(110)을 필터링하고, 시간 계층들(230)의 15 fps 출현만을 처리할 수 있다.
비디오 코딩 시스템(100)은 구문 획득 모듈(1004)을 포함할 수 있다. 구문 획득 모듈(1004)은 비디오 비트스트림(110)의 비디오 구문(114)을 식별하고 추출할 수 있다. 구문 획득 모듈(1004)은 시간 계층 획득 모듈(1008) 및 시간 계층 디코딩 모듈(1010)을 포함할 수 있다.
구문 획득 모듈(1004)은 비디오 비트스트림(110)에 대한 비디오 구문(114)을 각종의 방식들로 추출할 수 있다. 예를 들어, 구문 획득 모듈(1004)은 비디오 구문(114)의 존재를 나타내는 헤더들이 있는지 비디오 비트스트림(110)을 검색함으로써 비디오 구문(114)을 추출할 수 있다. 다른 예에서, 비디오 구문(114)은 비디오 구문(114)을 비디오 비트스트림(110)의 비디오 영상 데이터로부터 분리시키기 위해 디멀티플렉서(도시 생략)를 사용하여 비디오 비트스트림(110)으로부터 추출될 수 있다.
또 다른 예에서, 비디오 구문(114)은 시퀀스 파라미터 세트 RBSP(Raw Byte Sequence Payload) 구문을 추출함으로써 비디오 비트스트림(110)으로부터 추출될 수 있다. 시퀀스 파라미터 세트 RBSP는 네트워크 추상화 계층 단위에 캡슐화되어 있는 정수개의 바이트들을 포함하는 구문 구조체이다. RBSP는 비어 있을 수 있거나 구문 요소들 및 그에 뒤이은 RBSP 정지 비트 그리고 그에 뒤이은 0개 이상의 부가 비트들(0으로 되어 있음)를 포함하는 데이터 비트 열의 형태를 가질 수 있다.
비디오 구문(114)은 개개의 요소들을 추출함으로써 직렬 비트스트림으로부터 시간별로 추출될 수 있는데, 그 이유는 요소들이 비디오 비트스트림(110)에서 시간 순서로 이용가능하기 때문이다. 비디오 코딩 시스템(100)은 이전의 추출된 요소들의 값들에 기초하여 나중의 요소들을 선택적으로 추출 및 처리할 수 있다.
예를 들어, 구문 획득 모듈(1004)은 저지연 플래그(460)의 이전에 수신된 값에 기초하여 HRD 구문(302)을 처리할 수 있다. HEVC VUI 확장 구문(502)은 비디오 비트스트림(110)의 직렬 전송에서 HRD 구문(302) 이전에 배치된 저지연 플래그(460)를 포함한다. 저지연 플래그(460)는 HRD 구문(302) 이전에서 추출된다. NAL HRD 파라미터 존재 플래그(452) 및 VCL HRD 파라미터 존재 플래그(456)는 HRD 구문(302) 이전에서 추출된다.
HRD 구문(302)의 요소들은 저지연 플래그(460), NAL HRD 파라미터 존재 플래그(452), 및 VCL HRD 파라미터 존재 플래그(456)의 값에 기초하여 추출될 수 있다. 예를 들어, 저지연 플래그(460)가 1의 값을 갖고 NAL HRD 파라미터 존재 플래그(452) 또는 VCL HRD 파라미터 존재 플래그(456)가 1의 값을 가지는 경우, HRD 구문(302)의 CPB 카운트(308)의 값은 구문 획득 모듈(1004)에 의해 추출되고 명확하게 0으로 설정될 수 있으며, 비디오 코딩 시스템(100)은 단일의 코딩된 픽처 버퍼를 갖는 저지연 모드에서 동작할 수 있다.
다른 예에서, 비디오 비트스트림(110)이 파일 형태로 수신되는 경우, 비디오 구문(114)은 비디오 비트스트림(110)을 포함하는 파일의 파일 확장자를 검사하는 것에 의해 검출될 수 있다. 또 다른 예에서, 비디오 비트스트림(110)이 도 1의 통신 경로(106)를 거쳐 디지털 메시지로서 수신되는 경우, 비디오 구문(114)은 디지털 메시지의 구조체의 일부분으로서 제공될 수 있다.
구문 획득 모듈(1004)이 저지연 플래그(460)의 이전에 추출된 출현들에 기초하여 HRD 파라미터 구조체(454)를 처리해 비디오 비트스트림(110)을 동적으로 디코딩하는 것에 의해 성능을 향상시킬 수 있다는 것을 알았다. 예를 들어, 저지연 플래그(460)를 수신하는 것은 HRD 파라미터 구조체(454)를 적용할 때 코딩된 픽처 버퍼에서 허용되는 지연의 레벨을 변경하는 것에 의해 디코딩 성능을 향상시킨다.
구문 획득 모듈(1004)은 도 2의 구문 유형(202)에 기초하여 비디오 구문(114)의 개개의 요소들을 추출할 수 있다. 구문 유형(202)은 AVC 비디오, SVC 비디오, MVC 비디오, MVD 비디오, SSV 비디오, 또는 이들의 조합을 포함할 수 있다.
구문 획득 모듈(1004)은 비디오 사용가능성 정보를 가지는 비디오 구문(114)을 추출할 수 있다. 비디오 구문(114)은 HEVC VUI 구문(402), HEVC VUI 확장 구문(502), HRD VUI 구문(802), 또는 이들의 조합을 포함할 수 있다.
구문 획득 모듈(1004)은 가상 참조 디코더 정보를 가지는 비디오 구문(114)을 추출할 수 있다. 비디오 구문(114)은 HRD 구문(302), HRD 기본 구문(602), HRD 서브계층 구문(702), 또는 이들의 조합을 포함할 수 있다.
비디오 구문(114)은 각종의 구성들을 가질 수 있다. 예를 들어, HEVC VUI 구문(402)은 시간 계층들(230)의 모든 출현들에 대해 HRD 구문(302)의 하나의 출현을 포함할 수 있다. 다른 예에서, 구문 획득 모듈(1004)은 시간 계층들(230)의 각각의 출현에 대해 HRD 구문(302)의 하나의 출현을 포함할 수 있다.
한 예시적인 예에서, HRD 구문(302)은 CPB 카운트(308), 도 3의 비트 레이트 스케일(310), 도 3의 CPB 크기 스케일(312), 도 3의 초기 CPB 제거 지연 길이(322), 도 3의 CPB 제거 지연 길이(324), 도 3의 DPB 출력 지연 길이(326), 및 도 3의 시간 오프셋 길이(328)의 단일 출현들을 포함할 수 있다. HRD 구문(302)은 CPB 카운트(308)로 나타낸 바와 같이 코딩된 픽처 버퍼들 각각에 대해 도 3의 비트 레이트 값(316), 도 3의 CPB 크기 값(318), 및 도 3의 CBR 플래그(320) 각각에 대한 출현들을 갖는 루프 구조체를 포함할 수 있다.
비디오 코딩 시스템(100)은 디코딩 모듈(1006)을 포함할 수 있다. 디코딩 모듈(1006)은 비디오 구문(114)을 사용해 비디오 비트스트림(110)을 디코딩하여 비디오 스트림(112)을 형성할 수 있다. 디코딩 모듈(1006)은 시간 계층 획득 모듈(1008) 및 시간 계층 디코딩 모듈(1010)을 포함할 수 있다.
디코딩 모듈(1006)은 HEVC VUI 구문(402), HEVC VUI 구문, HRD VUI 구문(802), 또는 이들의 조합과 같은 비디오 구문(114)을 사용해 비디오 비트스트림(110)을 디코딩할 수 있다. 디코딩 모듈(1006)은 HRD 구문(302), HRD 기본 구문(602), HRD 서브계층 구문(702), 또는 이들의 조합을 사용해 시간 계층들(230)을 식별하고 추출할 수 있다.
시간 계층 획득 모듈(1008)은 비디오 비트스트림(110)으로부터 추출할 시간 계층들(230)을 식별하여 비디오 스트림(112)을 형성할 수 있다. 시간 계층 획득 모듈(1008)은 시간 계층들(230)을 각종의 방식들로 식별할 수 있다.
예를 들어, 시간 계층 획득 모듈(1008)은 HEVC VUI 확장 구문과 같은 비디오 구문(114)으로부터 도 2의 시간 계층 카운트(238)를 추출하는 것에 의해 시간 계층들(230)을 식별할 수 있다. 시간 계층 카운트(238)는 비디오 비트스트림(110)에서의 시간 계층들(230)의 총수를 나타낸다.
시간 계층 획득 모듈(1008)은 비디오 구문(114)의 요소들의 데이터 유형 및 크기를 기술하는 비디오 구문(114)을 사용해 비디오 비트스트림(110)으로부터 시간 계층들(230)을 추출할 수 있다. 비디오 구문(114)은 HRD 구문(302), HRD 기본 구문(602), HRD 서브계층 구문(702), 또는 이들의 조합과 같은 가상 참조 디코더 파라미터 구문들을 포함할 수 있다.
예를 들어, 시간 계층 획득 모듈(1008)은 도 4의 종횡비 플래그(406)를 비디오 비트스트림(110)에서 부호없는 1 비트 값으로서 추출할 수 있다. 유사하게, 도 4의 종횡비 높이(412) 및 도 4의 종횡비 폭(410)은 HEVC VUI 구문(402)에 기술된 바와 같이 부호없는 16 비트 값으로서 비디오 비트스트림(110)으로부터 추출될 수 있다.
시간 계층 획득 모듈(1008)은 비디오 구문(114)에 기초하여 비디오 비트스트림(110)에서의 데이터를 파싱하는 것에 의해 시간 계층들(230)을 추출할 수 있다. 비디오 구문(114)은 시간 계층들(230)의 수 및 구성을 정의할 수 있다.
예를 들어, 시간 계층 획득 모듈(1008)은 비디오 비트스트림(110)으로부터 추출할 시간 계층들(230)의 총수를 결정하기 위해 시간 계층 카운트(238)를 사용할 수 있다. 도 4의 비디오 형식(420)은 비디오 콘텐츠(108)의 비디오 시스템의 유형을 결정하기 위해 비디오 비트스트림(110)으로부터 추출될 수 있다.
다른 예에서, CPB 카운트(308)는 시간 계층들(230)을 추출하기 위해 사용될 코딩된 픽처 버퍼들의 수를 결정하는 데 사용될 수 있다. 비트 레이트 스케일(310)은 코딩된 픽처 버퍼들에 대한 최대 입력 비트 레이트를 결정하는 데 사용될 수 있다. CPB 크기 스케일(312)은 코딩된 픽처 버퍼들의 크기를 결정하는 데 사용될 수 있다.
한 예시적인 예에서, 시간 계층 획득 모듈(1008)은 HRD 구문(302)에 기초하여 비디오 비트스트림(110)으로부터 시간 계층들(230)의 도 2의 제1 출현(232) 및 도 2의 제2 출현(234)을 추출할 수 있다. HRD 구문(302)은 비디오 비트스트림(110)에서의 시간 계층들(230) 모두에 대해 공통일 수 있다.
시간 계층 디코딩 모듈(1010)은 시간 계층 획득 모듈(1008)로부터 시간 계층들(230)을 수신하고 시간 계층들(230)을 디코딩하여 비디오 스트림(112)을 형성할 수 있다. 시간 계층 디코딩 모듈(1010)은 시간 계층들(230)을 각종의 방식들로 디코딩할 수 있다.
예를 들어, 시간 계층 디코딩 모듈(1010)은 비디오 비트스트림(110)으로부터 비디오 코딩 계층 정보를 추출하기 위해 HRD 기본 구문(602)을 사용해 시간 계층들(230)을 디코딩할 수 있다. 다른 예에서, 시간 계층 디코딩 모듈(1010)은 HRD 서브계층 구문(702)을 사용하여 시간 계층들(230)을 디코딩할 수 있다. 시간 계층 디코딩 모듈(1010)은 시간 계층들(230)을 디코딩하고 시간 계층들(230) 중 하나를 선택하여 비디오 스트림(112)을 형성할 수 있다.
비디오 코딩 시스템(100)은 디스플레이 모듈(1012)을 포함할 수 있다. 디스플레이 모듈(1012)은 디코딩 모듈(1006)로부터 비디오 스트림(112)을 수신하고 비디오 스트림(112)을 도 1의 디스플레이 인터페이스(120) 상에 디스플레이할 수 있다. 비디오 비트스트림(112)은 시간 계층들(230)의 하나 이상의 출현들을 포함할 수 있다.
비디오 콘텐츠(108)의 물리적 객체들의 광학 영상들로부터 도 1의 디스플레이 인터페이스(120)의 픽셀 요소들 상에 비디오 스트림(112)을 디스플레이하는 것으로의 물리적 변환의 결과, 실제 세계에서 디스플레이 인터페이스(120)의 픽셀 요소들에 대한 물리적 변화들이 일어나고, 픽셀 요소의 이러한 전기 상태의 변화는 비디오 코딩 시스템(100)의 동작에 기초한다. 비디오 콘텐츠(108)에 포착된 물체들의 움직임과 같은 실제 세계에서의 변화들이 일어날 때, 움직임 자체는 비디오 콘텐츠(108)에 대한 업데이트들 - 이는 비디오 코딩 시스템(100)의 계속된 동작을 위해 디스플레이 인터페이스(120)의 픽셀 요소들에서의 변화들로 다시 변환됨 - 과 같은 부가의 정보를 생성한다.
제1 디바이스(102)의 도 9의 제1 소프트웨어(912)는 비디오 코딩 시스템(100)을 포함할 수 있다. 예를 들어, 제1 소프트웨어(912)는 수신 모듈(1002), 구문 획득 모듈(1004), 디코딩 모듈(1006), 및 디스플레이 모듈(1012)을 포함할 수 있다.
도 9의 제1 제어 유닛(908)은 수신 모듈(1002)이 비디오 비트스트림(110)을 수신하도록 제1 소프트웨어(912)를 실행할 수 있다. 제1 제어 유닛(908)은 구문 획득 모듈(1004)이 비디오 비트스트림(110)으로부터 비디오 구문(114)을 식별하고 추출하도록 제1 소프트웨어(912)를 실행할 수 있다. 제1 제어 유닛(908)은 디코딩 모듈(1006)이 비디오 스트림(112)을 형성하도록 제1 소프트웨어(912)를 실행할 수 있다. 제1 제어 유닛(908)은 디스플레이 모듈(1012)이 비디오 스트림(112)을 디스플레이하도록 제1 소프트웨어(912)를 실행할 수 있다.
도 1의 제2 디바이스(104)의 도 9의 제2 소프트웨어(952)는 비디오 코딩 시스템(100)을 포함할 수 있다. 예를 들어, 제2 소프트웨어(952)는 수신 모듈(1002), 구문 획득 모듈(1004), 및 디코딩 모듈(1006)을 포함할 수 있다.
도 9의 제2 제어 유닛(948)은 수신 모듈(1002)이 비디오 비트스트림(110)을 수신하도록 제2 소프트웨어(952)를 실행할 수 있다. 제2 제어 유닛(948)은 구문 획득 모듈(1004)이 비디오 비트스트림(110)으로부터 비디오 구문(114)을 식별하고 추출하도록 제2 소프트웨어(952)를 실행할 수 있다. 제2 제어 유닛(948)은 디코딩 모듈(1006)이 도 1의 비디오 스트림(112)을 형성하도록 제2 소프트웨어(952)를 실행할 수 있다. 제2 제어 유닛(948)은 디스플레이 모듈(1012)이 비디오 스트림(112)을 디스플레이하도록 제2 소프트웨어를 실행할 수 있다.
비디오 코딩 시스템(100)은 제1 소프트웨어(912)와 제2 소프트웨어(952) 간에 분할되어 있을 수 있다. 예를 들어, 제2 소프트웨어(952)는 디코딩 모듈(1006) 및 디스플레이 모듈(1012)을 포함할 수 있다. 제2 제어 유닛(948)은 이전에 기술된 바와 같이 제2 소프트웨어(952) 상에 분할된 모듈들을 실행할 수 있다.
한 예시적인 예에서, 비디오 코딩 시스템(100)은 제1 디바이스(102) 상의 비디오 인코더(102) 및 제2 디바이스(104) 상의 비디오 디코더(104)를 포함할 수 있다. 비디오 디코더(104)는 도 1의 디스플레이 프로세서(118) 및 디스플레이 인터페이스(120)를 포함할 수 있다.
제1 소프트웨어(912)는 수신 모듈(1002) 및 구문 획득 모듈(1004)을 포함할 수 있다. 도 9의 제1 저장 유닛(904)의 크기에 따라, 제1 소프트웨어(912)는 비디오 코딩 시스템(100)의 부가의 모듈들을 포함할 수 있다. 제1 제어 유닛(908)은 이전에 기술된 바와 같이 제1 소프트웨어(912) 상에 분할된 모듈들을 실행할 수 있다.
제1 제어 유닛(908)은 비디오 비트스트림(110)을 제2 디바이스(104)로 송신하기 위해 도 9의 제1 통신 유닛(910)을 동작시킬 수 있다. 제1 제어 유닛(908)은 도 9의 제1 영상 유닛(906)을 동작시키기 위해 제1 소프트웨어(912)를 동작시킬 수 있다. 도 9의 제2 통신 유닛(950)은 비디오 스트림(112)을 통신 경로(106)를 거쳐 제1 디바이스(102)로 송신할 수 있다.
비디오 코딩 시스템(100)은 모듈 기능들 또는 순서를 한 예로서 기술하고 있다. 모듈들이 상이하게 분할될 수 있다. 예를 들어, 구문 획득 모듈(1004) 및 디코딩 모듈(1006)이 결합될 수 있다. 모듈들 각각은 개별적으로 그리고 다른 모듈들과 독립적으로 동작할 수 있다.
게다가, 하나의 모듈에서 생성된 데이터가 서로 직접 결합되는 일 없이 다른 모듈에 의해 사용될 수 있다. 예를 들어, 디코딩 모듈(1006)은 비디오 비트스트림(110)을 수신 모듈(1002)로부터 수신할 수 있다.
모듈들은 다양한 방식들로 구현될 수 있다. 수신 모듈(1002), 구문 획득 모듈(1004), 디코딩 모듈(1006), 및 디스플레이 모듈(1012)은 제1 제어 유닛(908) 또는 제2 제어 유닛(948) 내의 하드웨어 가속기(도시 생략)로서 구현될 수 있거나, 제1 디바이스(102) 또는 제2 디바이스(104)에서 제1 제어 유닛(908) 또는 제2 제어 유닛(948) 외부에서 하드웨어 가속기(도시 생략)로서 구현될 수 있다.
이제 도 11을 참조하면, 본 발명의 추가의 실시예에서의 비디오 코딩 시스템의 동작 방법(1100)의 플로우차트가 동 도면에 도시되어 있다. 방법(1100)은 블록(1102)에서 비디오 비트스트림을 직렬 비트스트림을서 수신하는 단계; 블록(1104)에서 비디오 비트스트림으로부터 비디오 구문(video syntax)을 추출하고, 비디오 구문으로부터 저지연 플래그, 네트워크 추상화 계층(NAL) 가상 참조 디코딩(HRD) 파라미터 존재 플래그, 및 비디오 코딩 계층(VCL) HRD 파라미터 존재 플래그를 추출하며, 저지연 플래그, NAL HRD 파라미터 존재 플래그, 및 VCL HRD 파라미터 존재 플래그에 기초하여 비디오 비트스트림으로부터 HRD 구문을 추출하는 단계; 블록(1106)에서 HRD 구문을 가지는 비디오 구문에 기초하여 비디오 비트스트림으로부터 시간 계층을 추출하는 단계; 및 블록(1108)에서 디바이스 상에 디스플레이하기 위해 시간 계층에 기초하여 비디오 스트림을 형성하는 단계를 포함한다.
본 발명이 따라서 수많은 측면들을 가진다는 것을 알았다. 본 발명은 귀중하게도 비용을 감소시키고, 시스템을 단순화시키며, 성능을 향상시키는 과거의 경향을 지원하고 충족시킨다. 본 발명의 이들 및 기타 귀중한 측면들은 결과적으로 기술의 상태를 적어도 그 다음 레벨로 발전시킨다.
이와 같이, 본 발명의 비디오 코딩 시스템이 HD(high definition) 응용들에 대한 비디오 콘텐츠를 효율적으로 코딩 및 디코딩하기 위한 중요하고 지금까지 알려지지 않았으며 이용가능하지 않았던 해결책들, 능력들, 및 기능 측면들을 제공한다는 것을 알았다. 얻어진 프로세스들 및 구성들은 간단하고, 비용 효과적이며, 복잡하지 않고, 아주 다목적이고 효과적이며, 놀랍게도 그리고 명백하게도 공지의 기술들을 적응시킴으로써 구현될 수 있으며, 따라서 종래의 제조 공정들 및 기술들과 완전히 호환되게 비디오 코딩 디바이스들을 효율적으로 그리고 경제적으로 제조하는 데 아주 적합하다. 얻어진 프로세스들 및 구성들은 간단하고, 비용 효과적이며, 복잡하지 않고, 아주 다목적이며, 정확하고, 민감하며, 효과적이고, 즉각적인, 효율적인 그리고 경제적인 제조, 응용 및 이용을 위해 공지된 구성요소들을 적응시킴으로써 구현될 수 있다.
본 발명이 구체적인 최적의 실시 형태와 관련하여 기술되어 있지만, 이상의 설명을 바탕으로 많은 대안들, 수정들, 및 변형들이 당업자에게는 자명하게 될 것임을 잘 알 것이다. 그에 따라, 본 발명은 포함된 청구항들의 범주 내에 속하는 이러한 대안들, 수정들, 및 변형들 전부를 포괄하는 것으로 보아야 한다. 본 명세서에 지금까지 기재되거나 첨부 도면들에 도시되어 있는 모든 내용들은 예시적이고 비제한적인 의미로 해석되어야만 한다.
100: 비디오 코딩 시스템
102: 비디오 인코더
104: 비디오 디코더
106: 통신 경로
108: 비디오 콘텐츠
110: 비디오 비트스트림
112: 비디오 스트림
114: 비디오 구문
118: 디스플레이 프로세서
120: 디스플레이 인터페이스

Claims (8)

  1. 인코딩된 비트스트림을 생성하기 위하여 영상 데이터를 인코딩하기 위한 방법으로서,
    상기 인코딩된 비트스트림의 비디오 시퀀스에서의 출력 순서에서 임의의 2개의 연속적인 픽처들의 가상 참조 디코딩(HRD) 출력 시간들 사이의 시간 거리를 나타내는 지속기간 요소를 포함하는 HRD 구문을 설정하는 단계; 및
    상기 HRD 구문을 포함하는 상기 인코딩된 비트스트림을 생성하기 위하여 상기 영상 데이터를 인코딩하는 단계를 포함하는, 인코딩 방법.
  2. 제1항에 있어서,
    상기 지속기간 요소는 pic_duration_in_tc_minus1인, 인코딩 방법.
  3. 제1항에 있어서,
    상기 HRD 구문은, 고정 픽처 레이트 플래그가 1의 값을 가지는 경우, 상기 지속기간 요소를 포함하는, 인코딩 방법.
  4. 제3항에 있어서,
    상기 고정 픽처 레이트 플래그는 상기 인코딩된 비트스트림에서의 임의의 2개의 연속적인 픽처들의 HRD 출력 시간들 사이의 시간 거리가 제약되는지 여부를 나타내는, 인코딩 방법.
  5. 인코딩된 비트스트림을 생성하기 위하여 영상 데이터를 인코딩하기 위한 인코딩 디바이스로서,
    상기 인코딩된 비트스트림의 비디오 시퀀스에서의 출력 순서에서 임의의 2개의 연속적인 픽처들의 가상 참조 디코딩(HRD) 출력 시간들 사이의 시간 거리를 나타내는 지속기간 요소를 포함하는 HRD 구문을 설정하는 구문 설정 모듈(set syntax module); 및
    상기 구문 설정 모듈에 결합되어, 상기 HRD 구문을 포함하는 상기 인코딩된 비트스트림을 생성하기 위하여 상기 영상 데이터를 인코딩하는 인코딩 모듈을 포함하는, 인코딩 디바이스.
  6. 제5항에 있어서,
    상기 지속기간 요소는 pic_duration_in_tc_minus1인, 인코딩 디바이스.
  7. 제5항에 있어서,
    상기 HRD 구문은, 고정 픽처 레이트 플래그가 1의 값을 가지는 경우, 상기 지속기간 요소를 포함하는, 인코딩 디바이스.
  8. 제7항에 있어서,
    상기 고정 픽처 레이트 플래그는 상기 인코딩된 비트스트림에서의 임의의 2개의 연속적인 픽처들의 HRD 출력 시간들 사이의 시간 거리가 제약되는지 여부를 나타내는, 인코딩 디바이스.
KR1020167021990A 2012-07-02 2013-07-01 인코딩된 비트스트림을 생성하기 위하여 영상 데이터를 인코딩하기 위한 방법 및 인코딩 디바이스 KR101963486B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201261667294P 2012-07-02 2012-07-02
US61/667,294 2012-07-02
US201261677349P 2012-07-30 2012-07-30
US61/677,349 2012-07-30
US13/757,685 US10110890B2 (en) 2012-07-02 2013-02-01 Video coding system with low delay and method of operation thereof
US13/757,685 2013-02-01
PCT/US2013/048925 WO2014008188A1 (en) 2012-07-02 2013-07-01 Video coding system with low delay and method of operation thereof

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020147036698A Division KR101651769B1 (ko) 2012-07-02 2013-07-01 비디오 구문을 사용하여 인코딩된 비트스트림을 디코딩하기 위한 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20160099735A KR20160099735A (ko) 2016-08-22
KR101963486B1 true KR101963486B1 (ko) 2019-03-28

Family

ID=49778155

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020147036698A KR101651769B1 (ko) 2012-07-02 2013-07-01 비디오 구문을 사용하여 인코딩된 비트스트림을 디코딩하기 위한 방법 및 시스템
KR1020167021990A KR101963486B1 (ko) 2012-07-02 2013-07-01 인코딩된 비트스트림을 생성하기 위하여 영상 데이터를 인코딩하기 위한 방법 및 인코딩 디바이스

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020147036698A KR101651769B1 (ko) 2012-07-02 2013-07-01 비디오 구문을 사용하여 인코딩된 비트스트림을 디코딩하기 위한 방법 및 시스템

Country Status (6)

Country Link
US (3) US10110890B2 (ko)
EP (1) EP2850824B1 (ko)
JP (2) JP6037006B2 (ko)
KR (2) KR101651769B1 (ko)
CN (2) CN104396255B (ko)
WO (1) WO2014008188A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9912941B2 (en) 2012-07-02 2018-03-06 Sony Corporation Video coding system with temporal layers and method of operation thereof
US9967583B2 (en) * 2012-07-10 2018-05-08 Qualcomm Incorporated Coding timing information for video coding
US20170171563A1 (en) * 2014-02-24 2017-06-15 Sharp Kabushiki Kaisha Restrictions on signaling
CN105308972B (zh) * 2014-05-23 2020-03-27 松下电器(美国)知识产权公司 图像编码方法及装置、记录介质、图像解码方法及装置
JP6531759B2 (ja) 2014-06-13 2019-06-19 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
US20160234522A1 (en) * 2015-02-05 2016-08-11 Microsoft Technology Licensing, Llc Video Decoding
US10148969B2 (en) * 2015-02-11 2018-12-04 Qualcomm Incorporated Of sample entry and operation point signalling in a layered video file format
CN112690002B (zh) * 2018-09-14 2023-06-02 华为技术有限公司 点云译码中属性层和指示的改进
KR102311046B1 (ko) 2019-03-11 2021-10-12 돌비 레버러토리즈 라이쎈싱 코오포레이션 프레임 레이트 스케일러블 비디오 코딩
US11533474B2 (en) 2019-03-11 2022-12-20 Dolby Laboratories Licensing Corporation Video coding using reference picture resampling supporting region of interest
CN115866259A (zh) * 2019-07-05 2023-03-28 华为技术有限公司 使用标识符指示的视频译码码流提取
EP4011079A1 (en) 2019-08-06 2022-06-15 Dolby Laboratories Licensing Corporation Canvas size scalable video coding
KR20220042125A (ko) * 2019-08-10 2022-04-04 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 서브픽처 디코딩에서의 버퍼 관리
CN114845112B (zh) 2019-09-24 2023-04-04 华为技术有限公司 后缀sei消息的可伸缩嵌套的方法、设备、介质、解码器和编码器
WO2021061391A1 (en) * 2019-09-24 2021-04-01 Futurewei Technologies, Inc. Hrd parameters for layer based conformance testing
CN117676135A (zh) 2019-10-18 2024-03-08 北京字节跳动网络技术有限公司 子图片与环路滤波之间的相互影响
US11509920B2 (en) 2020-03-27 2022-11-22 Tencent America LLC Indication of max sublayer numbers in multilayered video stream
CN115668924A (zh) 2020-05-21 2023-01-31 字节跳动有限公司 参考图片信息的约束
CN115668949A (zh) * 2020-05-26 2023-01-31 字节跳动有限公司 编解码视频中的帧间层参考图片的标识
KR20230027180A (ko) * 2020-06-18 2023-02-27 엘지전자 주식회사 픽처 출력 타이밍 정보를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 컴퓨터 판독가능한 기록매체

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060120463A1 (en) 2004-12-06 2006-06-08 Nokia Corporation Video coding, decoding and hypothetical reference decoder
US20090066858A1 (en) * 2007-09-10 2009-03-12 L-3 Communications Corporation Display system for high-definition projectors
US20100195738A1 (en) 2007-04-18 2010-08-05 Lihua Zhu Coding systems
WO2012010928A1 (en) 2010-07-20 2012-01-26 Nokia Corporation A media streaming apparatus

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100943445B1 (ko) * 2001-10-16 2010-02-22 코닌클리케 필립스 일렉트로닉스 엔.브이. 비디오 코딩 방법 및 해당 전송가능 비디오 신호
US7532670B2 (en) * 2002-07-02 2009-05-12 Conexant Systems, Inc. Hypothetical reference decoder with low start-up delays for compressed image and video
EP1518403A4 (en) 2002-07-02 2009-03-18 Conexant Systems Inc HYPOTHETIC REFERENCE DECODER FOR COMPRESSED PICTURES AND VIDEO
US7266147B2 (en) 2003-03-31 2007-09-04 Sharp Laboratories Of America, Inc. Hypothetical reference decoder
US8582659B2 (en) * 2003-09-07 2013-11-12 Microsoft Corporation Determining a decoding time stamp from buffer fullness
US20050254575A1 (en) * 2004-05-12 2005-11-17 Nokia Corporation Multiple interoperability points for scalable media coding and transmission
US9179157B2 (en) 2007-01-05 2015-11-03 Thomson Licensing Hypothetical reference decoder for scalable video coding
EP2137973B1 (en) 2007-04-12 2019-05-01 InterDigital VC Holdings, Inc. Methods and apparatus for video usability information (vui) for scalable video coding (svc)
KR101741050B1 (ko) * 2007-04-17 2017-05-29 톰슨 라이센싱 멀티뷰 비디오 코딩을 위한 가설의 참조 디코더
US20100142613A1 (en) 2007-04-18 2010-06-10 Lihua Zhu Method for encoding video data in a scalable manner
BR122012021796A2 (pt) 2007-10-05 2015-08-04 Thomson Licensing Método para incorporar informação de usabilidade de vídeo (vui) em um sistema de codificação de vídeo de múltiplas visualizações (mvc)
US20100232520A1 (en) 2007-11-05 2010-09-16 Zhenyu Wu Scalable video coding method for fast channel change and increased error relilience
WO2010041858A2 (en) 2008-10-06 2010-04-15 Lg Electronics Inc. A method and an apparatus for decoding a video signal
JP5163415B2 (ja) * 2008-10-07 2013-03-13 富士通株式会社 階層型変調方法、階層型復調方法、階層型変調を行う送信装置、階層型復調を行う受信装置
US20100091841A1 (en) 2008-10-07 2010-04-15 Motorola, Inc. System and method of optimized bit extraction for scalable video coding
JP5553553B2 (ja) 2009-08-20 2014-07-16 キヤノン株式会社 映像処理装置及び映像処理装置の制御方法
KR101712098B1 (ko) 2009-09-04 2017-03-03 삼성전자 주식회사 구문 요소에 기초한 비트스트림 생성 방법 및 장치
EP2346261A1 (en) * 2009-11-18 2011-07-20 Tektronix International Sales GmbH Method and apparatus for multiplexing H.264 elementary streams without timing information coded
US8724710B2 (en) * 2010-02-24 2014-05-13 Thomson Licensing Method and apparatus for video encoding with hypothetical reference decoder compliant bit allocation
JP2011176635A (ja) * 2010-02-24 2011-09-08 Sony Corp 送信装置、送信方法、受信装置、受信方法及び信号伝送システム
JP2011239061A (ja) 2010-05-07 2011-11-24 Sony Corp 信号送信装置及び信号送信方法
US20110280311A1 (en) 2010-05-13 2011-11-17 Qualcomm Incorporated One-stream coding for asymmetric stereo video
JP5340425B2 (ja) 2010-08-09 2013-11-13 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置
JP2012065177A (ja) * 2010-09-16 2012-03-29 Jvc Kenwood Corp 画像符号化装置、画像符号化方法、画像復号装置、及び画像復号方法
US9532059B2 (en) 2010-10-05 2016-12-27 Google Technology Holdings LLC Method and apparatus for spatial scalability for video coding
EP2664075A4 (en) 2011-01-14 2015-08-19 Vidyo Inc ENHANCED NAL UNIT HEADER
CN103314591B (zh) 2011-01-14 2017-02-08 维德约股份有限公司 时间可缩放性的高层句法
CN102055983B (zh) * 2011-01-26 2013-01-23 北京世纪鼎点软件有限公司 基于标准的h.264解码器的mvc-3d立体视频的解码方法
GB2488830B (en) 2011-03-10 2015-07-29 Canon Kk Method and device for encoding image data and method and device for decoding image data
CA2829493A1 (en) 2011-03-10 2012-09-13 Vidyo, Inc. Dependency parameter set for scalable video coding
US9565449B2 (en) 2011-03-10 2017-02-07 Qualcomm Incorporated Coding multiview video plus depth content
US20130113882A1 (en) 2011-11-08 2013-05-09 Sony Corporation Video coding system and method of operation thereof
CN102497552B (zh) * 2011-12-07 2014-07-02 北京大学 一种包含构造图像的视频位流的解码缓冲区管理控制方法
US9578326B2 (en) * 2012-04-04 2017-02-21 Qualcomm Incorporated Low-delay video buffering in video coding
JP6151067B2 (ja) 2012-06-28 2017-06-21 日本特殊陶業株式会社 圧力センサ付きグロープラグ
US9912941B2 (en) 2012-07-02 2018-03-06 Sony Corporation Video coding system with temporal layers and method of operation thereof
US9967583B2 (en) * 2012-07-10 2018-05-08 Qualcomm Incorporated Coding timing information for video coding
US9380289B2 (en) * 2012-07-20 2016-06-28 Qualcomm Incorporated Parameter sets in video coding
US9154785B2 (en) * 2012-10-08 2015-10-06 Qualcomm Incorporated Sub-bitstream applicability to nested SEI messages in video coding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060120463A1 (en) 2004-12-06 2006-06-08 Nokia Corporation Video coding, decoding and hypothetical reference decoder
US20100195738A1 (en) 2007-04-18 2010-08-05 Lihua Zhu Coding systems
US20090066858A1 (en) * 2007-09-10 2009-03-12 L-3 Communications Corporation Display system for high-definition projectors
WO2012010928A1 (en) 2010-07-20 2012-01-26 Nokia Corporation A media streaming apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
High Efficiency Video Coding text specification draft 7, Joint collaborative team on viedo coding of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, JCTVC-I1003 (2012.05.10.)*

Also Published As

Publication number Publication date
US10805604B2 (en) 2020-10-13
JP6037006B2 (ja) 2016-11-30
CN104396255B (zh) 2018-01-12
US20140003535A1 (en) 2014-01-02
JP2015526970A (ja) 2015-09-10
EP2850824A1 (en) 2015-03-25
KR101651769B1 (ko) 2016-08-26
KR20160099735A (ko) 2016-08-22
EP2850824A4 (en) 2016-01-20
KR20150016376A (ko) 2015-02-11
JP2017073783A (ja) 2017-04-13
EP2850824B1 (en) 2021-02-17
CN108111864B (zh) 2020-02-28
US20200077082A1 (en) 2020-03-05
US10110890B2 (en) 2018-10-23
JP6606048B2 (ja) 2019-11-13
CN104396255A (zh) 2015-03-04
CN108111864A (zh) 2018-06-01
WO2014008188A1 (en) 2014-01-09
US20190014314A1 (en) 2019-01-10
US10542251B2 (en) 2020-01-21

Similar Documents

Publication Publication Date Title
US10805604B2 (en) Video coding system with low delay and method of operation thereof
US20200366912A1 (en) Video coding system with temporal scalability and method of operation thereof
US10327005B2 (en) Video coding system with temporal layers and method of operation thereof

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right