KR20140093254A - 다수의 인코딩된 화상 구획들을 포함하는 네트워크 추상 계층 유닛들에 의한 비디오 코딩 - Google Patents

다수의 인코딩된 화상 구획들을 포함하는 네트워크 추상 계층 유닛들에 의한 비디오 코딩 Download PDF

Info

Publication number
KR20140093254A
KR20140093254A KR1020147014849A KR20147014849A KR20140093254A KR 20140093254 A KR20140093254 A KR 20140093254A KR 1020147014849 A KR1020147014849 A KR 1020147014849A KR 20147014849 A KR20147014849 A KR 20147014849A KR 20140093254 A KR20140093254 A KR 20140093254A
Authority
KR
South Korea
Prior art keywords
syntax elements
syntax element
encoded
offset
entropy
Prior art date
Application number
KR1020147014849A
Other languages
English (en)
Other versions
KR101654441B1 (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 KR20140093254A publication Critical patent/KR20140093254A/ko
Application granted granted Critical
Publication of KR101654441B1 publication Critical patent/KR101654441B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Landscapes

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

Abstract

비디오 인코더는 비디오 데이터의 복수의 인코딩된 화상 구획들을 포함하는 네트워크 추상 계층 (NAL) 유닛을 발생시킨다. 비디오 인코더는 엔트로피-인코딩된 제 1 신택스 엘리먼트를 나타내는 가변-길이 값, 엔트로피-인코딩된 제 2 신택스 엘리먼트를 나타내는 가변-길이 값, 및 오프셋 신택스 엘리먼트들을 나타내는 고정-길이 값들을 포함하는 비트스트림을 발생시킨다. 오프셋 신택스 엘리먼트들 각각의 길이들은 제 1 신택스 엘리먼트에 기초하여 결정가능하다. 비디오 디코더는 인코딩된 화상 구획들을 디코딩할 때에 제 1 신택스 엘리먼트, 제 2 신택스 엘리먼트, 및 오프셋 신택스 엘리먼트들을 이용한다.

Description

다수의 인코딩된 화상 구획들을 포함하는 네트워크 추상 계층 유닛들에 의한 비디오 코딩{VIDEO CODING WITH NETWORK ABSTRACTION LAYER UNITS THAT INCLUDE MULTIPLE ENCODED PICTURE PARTITIONS}
본 출원은, 전체 내용이 참조를 위해 여기에 통합되는, 2011 년 11 월 4 일자로 출원된 미국 가출원 제 61/555,932 호, 및 2011 년 11 월 8 일자로 출원된 미국 가출원 제 61/557,259 호의 이익을 주장한다.
본 개시물은 비디오 코딩 (즉, 비디오 데이터의 인코딩 및/또는 디코딩) 에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전들, 디지털 직접 방송 시스템들, 무선 방송 시스템들, 개인 정보 단말 (PDA) 들, 랩톱 또는 데스크톱 컴퓨터들, 태블릿 컴퓨터들, 전자책 리더들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위상 무선 전화들, 소위 "스마트 폰들", 비디오 원격회의 디바이스들, 비디오 스트리밍 디바이스들, 등을 포함하는 폭넓은 범위의 디바이스들 내로 통합될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, 파트 10, 어드밴스드 비디오 코딩 (Advanced Video Coding; AVC), 현재 개발 중인 고효율 비디오 코딩 (High Efficiency Video Coding; HEVC) 표준, 및 이러한 표준들의 확장안들에 의해 정의된 표준들에 설명된 것들과 같은 비디오 압축 기술들을 구현한다. 비디오 디바이스들은 이러한 비디오 압축 기술들을 구현함으로써 디지털 비디오 정보를 더욱 효율적으로 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수도 있다.
비디오 압축 기술들은 비디오 시퀀스 (video sequence) 들에 내재하는 중복성을 감소시키거나 제거하기 위하여 공간적 (인트라-화상; intra-picture) 예측 및/또는 시간적 (인터-화상; inter-picture) 예측을 수행한다. 블록-기반의 비디오 코딩을 위하여, 비디오 슬라이스 (즉, 비디오 프레임 또는 비디오 프레임의 일부분) 는 트리블록 (treeblock) 들, 코딩 유닛 (coding unit; CU) 들 및/또는 코딩 노드들로서 또한 지칭될 수도 있는 비디오 블록들로 구획 (partition) 될 수도 있다. 화상 (picture) 의 인트라-코딩된 (I) 슬라이스 내의 비디오 블록들은 동일한 화상에서의 인접한 블록들 내의 참조 샘플들에 대한 공간적 예측을 이용하여 인코딩된다. 화상의 인터-코딩된 (P 또는 B) 슬라이스 내의 비디오 블록들은 동일한 화상에서의 인접한 블록들 내의 참조 샘플들에 대한 공간적 예측, 또는 다른 참조 화상들에서의 참조 샘플들에 대한 시간적 예측을 이용할 수도 있다. 화상들은 프레임들로서 지칭될 수도 있고, 참조 화상들은 참조 프레임들로서 지칭될 수도 있다.
공간적 또는 시간적 예측은 코딩될 블록에 대한 예측 블록으로 귀착된다. 잔차 데이터는 코딩될 원래의 블록과 예측 블록 사이의 화소 차이들을 나타낸다. 인터-코딩된 블록은 예측 블록을 형성하는 참조 샘플들의 블록을 지시하는 움직임 벡터와, 코딩된 블록과 예측 블록 사이의 차이를 표시하는 잔차 데이터에 따라 인코딩된다. 인트라-코딩된 블록은 인트라-코딩 모드 및 잔차 데이터에 따라 인코딩된다. 추가의 압축을 위하여, 잔차 데이터는 화소 도메인으로부터 변환 도메인으로 변환될 수도 있고, 이것은 잔차 계수들로 귀착될 수도 있고, 그 다음에 양자화될 수도 있다. 2 차원 어레이로 초기에 배치된 양자화된 계수들은 계수들의 1차원 벡터를 생성하기 위하여 스캔될 수도 있고, 훨씬 더 많은 압축을 달성하기 위하여 엔트로피 코딩이 적용될 수도 있다.
대체로, 비디오 인코더는 엔트로피-인코딩된 제 1 신택스 엘리먼트를 나타내는 가변-길이 값, 엔트로피-인코딩된 제 2 신택스 엘리먼트를 나타내는 가변-길이 값, 및 오프셋 신택스 엘리먼트들을 나타내는 고정-길이 값들을 포함하는 비트스트림을 발생시킨다. 오프셋 신택스 엘리먼트들 각각의 길이들은 제 1 신택스 엘리먼트에 기초하여 결정가능하다. 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수는 제 2 신택스 엘리먼트에 기초하여 결정가능하다. 네트워크 추상 계층 (NAL) 유닛 내에서의 복수의 인코딩된 화상 구획들의 위치들은 오프셋 신택스 엘리먼트들에 기초하여 결정가능하다. 비디오 디코더는 비트스트림을 수신하고, 제 1 및 제 2 신택스 엘리먼트들을 엔트로피 디코딩하고, 그리고 오프셋 신택스 엘리먼트들을 파싱하기 위해 제 1 및 제 2 신택스 엘리먼트들을 이용한다. 비디오 디코더는 인코딩된 화상 구획들의 NAL 유닛 내에서의 위치들을 결정하기 위하여 오프셋 신택스 엘리먼트들을 이용한다. 비디오 디코더는 인코딩된 화상 구획들을 디코딩한다.
하나의 양태에서, 본 개시물은 제 1 신택스 엘리먼트, 제 2 신택스 엘리먼트, 및 일련의 오프셋 신택스 엘리먼트들을 엔트로피 인코딩하는 단계를 포함하는 방법을 설명한다. 오프셋 신택스 엘리먼트들 각각의 길이들은 제 1 신택스 엘리먼트에 기초하여 결정가능하다. 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수는 제 2 신택스 엘리먼트에 기초하여 결정가능하다. NAL 유닛 내에서의 복수의 인코딩된 화상 구획들의 위치들은 오프셋 신택스 엘리먼트들에 기초하여 결정가능하다. 방법은 또한, 엔트로피-인코딩된 제 1 신택스 엘리먼트를 나타내는 가변-길이 값, 엔트로피-인코딩된 제 2 신택스 엘리먼트를 나타내는 가변-길이 값, 및 오프셋 신택스 엘리먼트들을 나타내는 고정-길이 값들을 포함하는 비트스트림을 발생시키는 단계를 포함한다.
또 다른 양태에서, 본 개시물은 제 1 신택스 엘리먼트, 제 2 신택스 엘리먼트, 및 일련의 오프셋 신택스 엘리먼트들을 엔트로피 인코딩하도록 구성된 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스를 설명한다. 오프셋 신택스 엘리먼트들 각각의 길이들은 제 1 신택스 엘리먼트에 기초하여 결정가능하다. 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수는 제 2 신택스 엘리먼트에 기초하여 결정가능하다. NAL 유닛 내에서의 복수의 인코딩된 화상 구획들의 위치들은 오프셋 신택스 엘리먼트들에 기초하여 결정가능하다. 하나 이상의 프로세서들은 또한, 엔트로피-인코딩된 제 1 신택스 엘리먼트를 나타내는 가변-길이 값, 엔트로피-인코딩된 제 2 신택스 엘리먼트를 나타내는 가변-길이 값, 및 오프셋 신택스 엘리먼트들을 나타내는 고정-길이 값들을 포함하는 비트스트림을 발생시키도록 구성된다.
또 다른 양태에서, 본 개시물은 제 1 신택스 엘리먼트, 제 2 신택스 엘리먼트, 및 일련의 오프셋 신택스 엘리먼트들을 엔트로피 인코딩하기 위한 수단을 포함하는 컴퓨팅 디바이스를 설명한다. 오프셋 신택스 엘리먼트들 각각의 길이들은 제 1 신택스 엘리먼트에 기초하여 결정가능하다. 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수는 제 2 신택스 엘리먼트에 기초하여 결정가능하다. NAL 유닛 내에서의 복수의 인코딩된 화상 구획들의 위치들은 오프셋 신택스 엘리먼트들에 기초하여 결정가능하다. 컴퓨팅 디바이스는 또한, 엔트로피-인코딩된 제 1 신택스 엘리먼트를 나타내는 가변-길이 값, 엔트로피-인코딩된 제 2 신택스 엘리먼트를 나타내는 가변-길이 값, 및 오프셋 신택스 엘리먼트들을 나타내는 고정-길이 값들을 포함하는 비트스트림을 발생시키기 위한 수단을 포함한다.
또 다른 양태에서, 본 개시물은 명령들을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 명령들은, 컴퓨팅 디바이스의 하나 이상의 프로세서들에 의해 실행되는 경우, 제 1 신택스 엘리먼트, 제 2 신택스 엘리먼트, 및 일련의 오프셋 신택스 엘리먼트들을 엔트로피 인코딩하도록 컴퓨팅 디바이스를 구성하는, 상기 컴퓨터 판독가능 저장 매체를 설명한다. 오프셋 신택스 엘리먼트들 각각의 길이들은 제 1 신택스 엘리먼트에 기초하여 결정가능하다. 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수는 제 2 신택스 엘리먼트에 기초하여 결정가능하다. NAL 유닛 내에서의 복수의 인코딩된 화상 구획들의 위치들은 오프셋 신택스 엘리먼트들에 기초하여 결정가능하다. 추가적으로, 명령들은 엔트로피-인코딩된 제 1 신택스 엘리먼트를 나타내는 가변-길이 값, 엔트로피-인코딩된 제 2 신택스 엘리먼트를 나타내는 가변-길이 값, 및 오프셋 신택스 엘리먼트들을 나타내는 고정-길이 값들을 포함하는 비트스트림을 발생시키도록 컴퓨팅 디바이스를 구성한다.
또 다른 양태에서, 본 개시물은 비디오 데이터를 디코딩하는 방법을 설명한다. 방법은 제 1 신택스 엘리먼트를 나타내는 엔트로피-인코딩된 가변-길이 값, 제 2 신택스 엘리먼트를 나타내는 엔트로피-인코딩된 가변-길이 값, 및 일련의 오프셋 신택스 엘리먼트들을 포함하는 비트스트림을 수신하는 단계를 포함한다. 방법은 또한, 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 엔트로피 디코딩하는 단계를 포함한다. 또한, 방법은 제 1 신택스 엘리먼트에 기초하여, 오프셋 신택스 엘리먼트들 각각의 길이들을 결정하는 단계를 포함한다. 방법은 또한, 제 2 신택스 엘리먼트에 기초하여, 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수를 결정하는 단계를 포함한다. 추가적으로, 방법은 오프셋 신택스 엘리먼트들 각각의 길이들과, 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수에 적어도 부분적으로 기초하여, 오프셋 신택스 엘리먼트들을 파싱하는 단계를 포함한다. 또한, 방법은 오프셋 신택스 엘리먼트들에 기초하여, NAL 유닛 내에서의 복수의 인코딩된 화상 구획들의 위치들을 결정하는 단계를 포함한다. 방법은 또한, 인코딩된 화상 구획들을 디코딩하는 단계를 포함한다.
또 다른 양태에서, 본 개시물은 제 1 신택스 엘리먼트를 나타내는 엔트로피-인코딩된 가변-길이 값, 제 2 신택스 엘리먼트를 나타내는 엔트로피-인코딩된 가변-길이 값, 및 일련의 오프셋 신택스 엘리먼트들을 포함하는 비트스트림을 수신하도록 구성된 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스를 설명한다. 하나 이상의 프로세서들은 또한, 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 엔트로피 디코딩하도록 구성된다. 하나 이상의 프로세서들은 또한, 제 1 신택스 엘리먼트에 기초하여, 오프셋 신택스 엘리먼트들 각각의 길이들을 결정하도록 구성된다. 추가적으로, 하나 이상의 프로세서들은 제 2 신택스 엘리먼트에 기초하여, 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수를 결정하도록 구성된다. 하나 이상의 프로세서들은 또한, 오프셋 신택스 엘리먼트들 각각의 길이들과, 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수에 적어도 부분적으로 기초하여, 오프셋 신택스 엘리먼트들을 파싱하도록 구성된다. 또한, 하나 이상의 프로세서들은 오프셋 신택스 엘리먼트들에 기초하여, NAL 유닛 내에서의 복수의 인코딩된 화상 구획들의 위치들을 결정하도록 구성된다. 하나 이상의 프로세서들은 또한, 인코딩된 화상 구획들을 디코딩하도록 구성된다.
또 다른 양태에서, 본 개시물은 제 1 신택스 엘리먼트를 나타내는 엔트로피-인코딩된 가변-길이 값, 제 2 신택스 엘리먼트를 나타내는 엔트로피-인코딩된 가변-길이 값, 및 일련의 오프셋 신택스 엘리먼트들을 포함하는 비트스트림을 수신하기 위한 수단을 포함하는 컴퓨팅 디바이스를 설명한다. 컴퓨팅 디바이스는 또한, 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 엔트로피 디코딩하기 위한 수단을 포함한다. 추가적으로, 컴퓨팅 디바이스는 제 1 신택스 엘리먼트에 기초하여, 오프셋 신택스 엘리먼트들 각각의 길이들을 결정하기 위한 수단을 포함한다. 컴퓨팅 디바이스는 또한, 제 2 신택스 엘리먼트에 기초하여, 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수를 결정하기 위한 수단을 포함한다. 또한, 컴퓨팅 디바이스는 오프셋 신택스 엘리먼트들 각각의 길이들과, 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수에 적어도 부분적으로 기초하여, 오프셋 신택스 엘리먼트들을 파싱하기 위한 수단을 포함한다. 추가적으로, 컴퓨팅 디바이스는 오프셋 신택스 엘리먼트들에 기초하여, NAL 유닛 내에서의 복수의 인코딩된 화상 구획들의 위치들을 결정하기 위한 수단을 포함한다. 컴퓨팅 디바이스는 또한, 인코딩된 화상 구획들을 디코딩하기 위한 수단을 포함한다.
또 다른 양태에서, 본 개시물은 명령들을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 명령들은, 컴퓨팅 디바이스의 하나 이상의 프로세서들에 의해 실행되는 경우, 제 1 신택스 엘리먼트를 나타내는 엔트로피-인코딩된 가변-길이 값, 제 2 신택스 엘리먼트를 나타내는 엔트로피-인코딩된 가변-길이 값, 및 일련의 오프셋 신택스 엘리먼트들을 포함하는 비트스트림을 수신하도록 컴퓨팅 디바이스를 구성하는, 상기 컴퓨터 판독가능 저장 매체를 설명한다. 또한, 명령들은 컴퓨팅 디바이스로 하여금, 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 엔트로피 디코딩하도록 한다. 명령들은 또한, 컴퓨팅 디바이스로 하여금, 제 1 신택스 엘리먼트에 기초하여, 오프셋 신택스 엘리먼트들 각각의 길이들을 결정하도록 한다. 추가적으로, 명령들은 컴퓨팅 디바이스로 하여금, 제 2 신택스 엘리먼트에 기초하여, 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수를 결정하도록 한다. 추가적으로, 명령들은 컴퓨팅 디바이스로 하여금, 오프셋 신택스 엘리먼트들 각각의 길이들과, 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수에 적어도 부분적으로 기초하여, 오프셋 신택스 엘리먼트들을 파싱하도록 한다. 명령들은 또한, 컴퓨팅 디바이스로 하여금, 오프셋 신택스 엘리먼트들에 기초하여, NAL 유닛 내에서의 복수의 인코딩된 화상 구획들의 위치들을 결정하도록 한다. 추가적으로, 명령들은 컴퓨팅 디바이스로 하여금, 인코딩된 화상 구획들을 디코딩하도록 한다.
본 개시물의 하나 이상의 예들의 세부사항들은 이하의 첨부 도면들 및 설명에서 기재되어 있다. 다른 특징들, 목적들, 및 장점들은 설명, 도면들, 및 청구항들로부터 명백할 것이다.
도 1 은 본 개시물에 설명된 기술들을 사용할 수도 있는 일 예의 비디오 코딩 시스템을 예시하는 블록 다이어그램이다.
도 2 는 본 개시물에 설명된 기술들을 구현할 수도 있는 일 예의 비디오 인코더를 예시하는 블록 다이어그램이다.
도 3 은 본 개시물에 설명된 기술들을 구현할 수도 있는 일 예의 비디오 디코더를 예시하는 블록 다이어그램이다.
도 4 는 본 개시물의 하나 이상의 기술들에 따른, 비디오 인코더의 일 예의 동작을 예시하는 순서도이다.
도 5 는 본 개시물의 하나 이상의 기술들에 따른, 비디오 디코더의 일 예의 동작을 예시하는 순서도이다.
도 6 은 본 개시물의 하나 이상의 기술들에 따른, 바이트-정렬된 슬라이스 헤더를 가지는 코딩된 슬라이스 NAL 유닛을 발생시키기 위한 비디오 인코더의 일 예의 동작을 예시하는 순서도이다.
도 7 은 본 개시물의 하나 이상의 기술들에 따른, 바이트-정렬된 슬라이스 헤더를 발생시키기 위한 비디오 인코더의 일 예의 동작을 예시하는 순서도이다.
도 8 은 본 개시물의 하나 이상의 기술들에 따른, 비디오 디코더가 바이트-정렬된 슬라이스 헤더를 가지는 코딩된 슬라이스 NAL 유닛을 수신하는 비디오 디코더의 일 예의 동작을 예시하는 순서도이다.
도 9 는 파면 병렬 프로세싱을 예시하는 개념적인 다이어그램이다.
도 10 은 화상이 복수의 타일들로 구획될 때의 일 예의 코딩 순서를 예시하는 개념적인 다이어그램이다.
도 11 은 본 개시물의 하나 이상의 양태들에 따른, NAL 유닛 내에서의 인코딩된 화상 구획들의 오프셋들과 연관된 신택스 엘리먼트들을 나타내는 가변-길이 값들을 포함하는 비트스트림을 발생시키기 위한 비디오 인코더의 일 예의 동작을 예시하는 순서도이다.
도 12 는 본 개시물의 하나 이상의 양태들에 따른, NAL 유닛 내에서의 인코딩된 화상 구획들의 오프셋들과 연관된 신택스 엘리먼트들을 나타내는 가변-길이 값들을 포함하는 비트스트림에 의해 표현된 비디오 데이터를 디코딩하기 위한 비디오 디코더의 일 예의 동작을 예시하는 순서도이다.
화상은 복수의 트리 블록 (tree block) 들을 포함한다. 트리 블록들은 화상 내에서의 2 차원 화소 블록들과 연관되어 있다. 비디오 인코더는 화상을 복수의 화상 구획들로 분할한다. 예를 들어, 비디오 인코더는 화상을 엔트로피 슬라이스들, 타일들, 또는 파면 병렬 프로세싱 웨이브 (wavefront parallel processing wave; WPP wave) 들로 분할할 수도 있다. 다시 말해서, 본 개시물은 엔트로피 슬라이스들, 타일들, 또는 WPP 웨이브들을 일반적으로 지칭하기 위하여 용어 "화상 구획" 을 이용할 수도 있다. 화상 구획들은 화상의 트리 블록들의 비-중첩 서브세트들과 연관되어 있다. 예를 들어, 화상의 각각의 트리 블록은 화상 구획들 중의 정확히 하나와 연관될 수도 있다. 비디오 인코더는 슬라이스와 연관된 하나 이상의 인코딩된 화상 구획들을 포함하는 코딩된 슬라이스 네트워크 추상 계층 (Network Abstraction Layer; NAL) 유닛을 발생시킬 수도 있다.
일부 예들에서, 비디오 디코더는 슬라이스의 인코딩된 화상 구획들을 병렬로 디코딩할 수도 있다. 슬라이스의 인코딩된 화상 구획들을 병렬로 디코딩하기 위하여, 비디오 인코더는 코딩된 슬라이스 NAL 유닛 내에서, 인코딩된 화상 구획들의 진입 포인트 (entry point) 들을 시그널링할 수도 있다. 인코딩된 화상 구획의 진입 포인트는 인코딩된 화상 구획의 최초 비트의 위치일 수도 있다. 비디오 디코더가 인코딩된 화상 구획들의 진입 포인트들을 결정할 수 있으므로, 비디오 디코더는 병렬 디코딩을 위하여 상이한 인코딩된 화상 구획들을 디코더의 상이한 프로세싱 코어들에 배정할 수 있을 수도 있다.
타일들의 진입 포인트들을 시그널링하기 위하여, 비디오 인코더는 일련의 오프셋 신택스 엘리먼트들을 발생시킬 수도 있다. 오프셋 신택스 엘리먼트들의 각각은 타일 내의 바이트들의 수를 표시할 수도 있다. 추가적으로, 비디오 인코더는 2 개의 추가적인 신택스 엘리먼트들을 발생시킬 수도 있다. 슬라이스 내의 타일들의 수는 제 1 추가적인 신택스 엘리먼트에 기초하여 결정될 수도 있다. 오프셋 신택스 엘리먼트들의 각각에서 이용된 비트들의 수는 제 2 추가적인 신택스 엘리먼트에 기초하여 결정될 수도 있다. 기존의 구현들에서, 추가적인 신택스 엘리먼트들의 각각은 5-비트 부호 없는 정수를 이용하여 비트스트림에서 항상 표현된다.
추가적인 신택스 엘리먼트들을 5-비트 부호 없는 정수들로서 항상 나타내는 것은 비트스트림에서 비트들의 수를 불필요하게 증가시킬 수도 있다. 또한, 추가적인 신택스 엘리먼트들을 5-비트 부호 없는 정수들로서 항상 나타내는 것은 오프셋 신택스 엘리먼트들의 수를 32 로 제한할 수도 있다. 본 개시물의 하나 이상의 기술들에 따르면, 비디오 인코더는 추가적인 신택스 엘리먼트들을 엔트로피 인코딩 (예를 들어, ue(v), 레프트 비트 퍼스트 (left bit first) 인 부호 없는 정수 0-차 지수-골롬-코딩된 (Exp-Golomb-coded) 신택스 엘리먼트를 이용함) 할 수도 있다. 비디오 인코더는 추가적인 신택스 엘리먼트들을 엔트로피 인코딩하므로, 추가적인 신택스 엘리먼트들은 비트들의 가변-길이 시퀀스들을 이용하여 비트스트림에서 표현된다. 많은 경우들에 있어서, 이 비트들의 가변-길이 시퀀스들은 5-비트 부호 없는 정수들보다 더 적은 비트들을 이용하여 추가적인 신택스 엘리먼트들을 나타낼 수 있다. 추가적으로, 이 추가적인 신택스 엘리먼트들의 엔트로피 코딩은 비디오 인코더가 32 개를 초과하는 오프셋 신택스 엘리먼트들을 시그널링하도록 할 수도 있다.
일부 사례들에서, 특정한 비디오 디코더는 인코딩된 화상 구획들을 병렬로 디코딩하도록 구성되지 않을 수도 있다. 즉, 일부 비디오 디코더들은 병렬 프로세싱의 측면에서 상이한 능력들을 가질 수도 있다. 이러한 사례들에서, 인코딩된 화상 구획들의 진입 포인트들을 시그널링하기 위해 이용되는 비트들은 비디오 디코더에 유용하지 않다.
본 개시물의 기술들에 따르면, 비디오 인코더는 비디오 데이터의 복수의 인코딩된 화상 구획들을 포함하는 VCL NAL 유닛을 발생시킬 수도 있다. 추가적으로, 비디오 인코더는 NAL 유닛 내에서 인코딩된 화상 구획들의 진입 포인트들을 표시하는 보충 강화 정보 (Supplemental Enhancement Information; SEI) 메시지를 발생시킬 수도 있다. 설명의 용이함을 위하여, 본 개시물은 코딩된 슬라이스 NAL 유닛에서 인코딩된 화상 구획들의 진입 포인트들을 표시하는 SEI 메시지를 "진입 포인트 SEI 메시지" 로서 지칭할 수도 있다. 진입 포인트 SEI 메시지는 예를 들어, SEI 유형을 가지는 비-VCL NAL 유닛과 같은 비-VCL NAL 유닛에서 제공될 수도 있다.
미디어-인지 네트워크 엘리먼트 (Media-aware network element; MANE) 들은 특정한 비디오 디코더들의 구성들을 표시하는 데이터로 구성될 수도 있다. 이러한 데이터에 기초하여, MANE 는 비디오 디코더가 인코딩된 화상 구획들을 병렬로 디코딩하도록 구성될 경우에만 진입 포인트 SEI 메시지를 비디오 디코더에 송신하도록 구성될 수도 있다. MANE 는 비디오 디코더가 이용하도록 구성되어 있지 않은 데이터를 송신하지 않으므로, 대역폭이 절약될 수도 있다. 또한, 진입 포인트들이 SEI 메시지들로 시그널링되므로, 코딩된 슬라이스 NAL 유닛에서, 코딩된 슬라이스 NAL 유닛이 코딩된 화상 구획들의 위치들을 표시하는 데이터를 포함하는지 여부를 시그널링할 필요가 없을 수도 있다. 이것은 코딩된 슬라이스 NAL 유닛에서 비트들의 수를 감소시키는 것을 돕고, 이에 따라 대역폭을 더 절약한다.
첨부된 도면들은 예들을 예시한다. 첨부된 도면들 내의 참조 번호들에 의해 표시된 엘리먼트들은 다음의 설명에서의 유사한 참조 번호들에 의해 표시된 엘리먼트들에 대응한다. 본 개시물에서, 서수 단어들 (예를 들어, "제 1", "제 2", "제 3", 등등) 로 시작하는 명칭들을 갖는 엘리먼트들은 엘리먼트들이 특정한 순서를 가지는 것이라고 반드시 의미하지는 않는다. 오히려, 이러한 서수 단어들은 동일하거나 유사한 유형의 상이한 엘리먼트들을 지칭하기 위해 단지 이용된다.
도 1 은 본 개시물의 기술들을 사용할 수도 있는 일 예의 비디오 코딩 시스템 (10) 을 예시하는 블록 다이어그램이다. 여기에서 설명되고 이용되는 바와 같이, 용어 "비디오 코더" 는 일반적으로 비디오 인코더들 및 비디오 디코더들 둘 모두를 지칭한다. 본 개시물에서는, 용어들 "비디오 코딩" 또는 "코딩" 은 일반적으로 비디오 인코딩 또는 비디오 디코딩을 지칭할 수도 있다.
도 1 에 도시된 바와 같이, 비디오 코딩 시스템 (10) 은 소스 디바이스 (source device; 12) 및 목적지 디바이스 (destination device; 14) 를 포함한다. 소스 디바이스 (12) 는 인코딩된 비디오 데이터를 발생시킨다. 따라서, 소스 디바이스 (12) 는 비디오 인코딩 디바이스 또는 비디오 인코딩 장치로서 지칭될 수도 있다. 목적지 디바이스 (14) 는 소스 디바이스 (12) 에 의해 발생된 인코딩된 비디오 데이터를 디코딩할 수도 있다. 따라서, 목적지 디바이스 (14) 는 비디오 디코딩 디바이스 또는 비디오 디코딩 장치로서 지칭될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 비디오 코딩 디바이스들 또는 비디오 코딩 장치들의 예들일 수도 있다.
소스 디바이스 (12) 및 목적지 디바이스 (14) 는 데스크톱 컴퓨터들, 이동 컴퓨팅 디바이스들, 노트북 (예를 들어, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋-톱 박스들, 소위 "스마트" 폰들과 같은 전화 핸드셋들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 차량내 컴퓨터들, 등을 포함하는 폭넓은 범위의 디바이스들을 포함할 수도 있다.
목적지 디바이스 (14) 는 채널 (16) 을 통해 소스 디바이스 (12) 로부터 인코딩된 비디오 데이터를 수신할 수도 있다. 채널 (16) 은 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 이동시킬 수 있는 일 유형의 매체 또는 디바이스를 포함할 수도 있다. 하나의 예에서, 채널 (16) 은 소스 디바이스 (12) 가 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 직접 실시간으로 송신하는 것을 가능하게 하는 하나 이상의 통신 매체들을 포함할 수도 있다. 이 예에서, 소스 디바이스 (12) 는 무선 통신 프로토콜과 같은 통신 표준에 따라 인코딩된 비디오 데이터를 변조할 수도 있고, 변조된 비디오 데이터를 목적지 디바이스 (14) 로 송신할 수도 있다. 하나 이상의 통신 매체들은 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 선로들과 같은 무선 및/또는 유선 통신 매체들을 포함할 수도 있다. 하나 이상의 통신 매체들은 로컬 영역 네트워크, 광역 네트워크, 또는 글로벌 네트워크 (예를 들어, 인터넷) 와 같은, 패킷-기반 네트워크의 일부를 형성할 수도 있다. 하나 이상의 통신 매체들은 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는 다른 장비를 포함할 수도 있다.
또 다른 예에서, 채널 (16) 은 소스 디바이스 (12) 에 의해 발생된 인코딩된 비디오 데이터를 저장하는 저장 매체를 포함할 수도 있다. 이 예에서, 목적지 디바이스 (14) 는 디스크 액세스 또는 카드 액세스를 통해 저장 매체를 액세스할 수도 있다. 저장 매체는 블루-레이 (Blu-ray) 디스크들, DVD 들, CD-ROM 들, 플래쉬 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 다른 적당한 디지털 저장 매체들과 같은 다양한 국소적으로 액세스되는 데이터 저장 매체들을 포함할 수도 있다.
추가의 예에서, 채널 (16) 은 소스 디바이스 (12) 에 의해 발생된 인코딩된 비디오를 저장하는 파일 서버 또는 또 다른 중간 저장 디바이스를 포함할 수도 있다. 이 예에서, 목적지 디바이스 (14) 는 파일 서버 또는 다른 중간 저장 디바이스에 저장된 인코딩된 비디오 데이터를 스트리밍 또는 다운로드를 통해 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 송신할 수 있는 일 유형의 서버일 수도 있다. 일 예의 파일 서버들은 (예를 들어, 웹사이트에 대한) 웹 서버들, 파일 전송 프로토콜 (file transfer protocol; FTP) 서버들, 네트워크 부속 저장 (network attached storage; NAS) 디바이스들, 및 로컬 디스크 드라이브들을 포함한다.
목적지 디바이스 (14) 는 인터넷 접속과 같은 표준 데이터 접속을 통해 인코딩된 비디오 데이터를 액세스할 수도 있다. 일 예의 유형들의 데이터 접속들은 무선 채널들 (예를 들어, Wi-Fi 접속들), 유선 접속들 (예를 들어, DSL, 케이블 모뎀, 등), 또는 파일 서버 상에 저장된 인코딩된 비디오 데이터에 액세스하기에 적당한 둘 모두의 조합들을 포함할 수도 있다. 파일 서버로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 둘 모두의 조합일 수도 있다.
본 개시물의 기술들은 무선 애플리케이션들 또는 설정 (setting) 들로 제한되지 않는다. 기술들은, 오버-디-에어 (over-the-air) 텔레비전 방송들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 예를 들어, 인터넷을 통한 스트리밍 비디오 송신들, 데이터 저장 매체 상의 저장을 위한 비디오 데이터의 인코딩, 데이터 저장 매체 상에 저장된 비디오 데이터의 디코딩, 또는 다른 애플리케이션들과 같은 다양한 멀티미디어 애플리케이션들을 지원하는 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 비디오 코딩 시스템 (10) 은 비디오 스트리밍, 비디오 재생, 비디오 방송, 및/또는 영상 통화와 같은 애플리케이션들을 지원하기 위해 단방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 및 출력 인터페이스 (22) 를 포함한다. 일부 예들에서, 출력 인터페이스 (22) 는 변조기/복조기 (모뎀) 및/또는 송신기를 포함할 수도 있다. 비디오 소스 (18) 는 비디오 캡처 디바이스, 예를 들어, 비디오 카메라, 이전에 캡처된 비디오 데이터를 포함하는 비디오 아카이브 (video archive), 비디오 컨텐츠 제공자로부터 비디오 데이터를 수신하기 위한 비디오 피드 인터페이스, 및/또는 비디오 데이터를 발생시키기 위한 컴퓨터 그래픽스 시스템, 또는 비디오 데이터의 이러한 소스들의 조합을 포함할 수도 있다.
비디오 인코더 (20) 는 비디오 소스 (18) 로부터의 비디오 데이터를 인코딩할 수도 있다. 일부 예들에서, 소스 디바이스 (12) 는 인코딩된 비디오 데이터를 출력 인터페이스 (22) 를 통해 목적지 디바이스 (14) 로 직접 송신할 수도 있다. 인코딩된 비디오 데이터는 디코딩 및/또는 재생을 위하여 목적지 디바이스 (14) 에 의한 나중의 액세스를 위해 저장 매체 또는 파일 서버 상에 또한 저장될 수도 있다.
도 1 의 예에서, 목적지 디바이스 (14) 는 입력 인터페이스 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 일부 예들에서, 입력 인터페이스 (28) 는 수신기 및/또는 모뎀을 포함할 수도 있다. 목적지 디바이스 (14) 의 입력 인터페이스 (28) 는 채널 (16) 을 통해 인코딩된 비디오 데이터를 수신할 수도 있다. 디스플레이 디바이스 (32) 는 목적지 디바이스 (14) 와 통합되거나 또는 그 외부에 있을 수도 있다. 일반적으로, 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 디스플레이한다. 디스플레이 디바이스 (32) 는 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 또 다른 유형의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들을 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 현재 개발 중인 고효율 비디오 코딩 (HEVC) 표준과 같은 비디오 압축 표준에 따라 동작할 수도 있고, HEVC 테스트 모델 (HEVC Test Model; HM) 을 준수할 수도 있다. "HEVC Working Draft 4" 또는 "WD4" 로서 지칭되는, 당면한 HEVC 표준안의 최근의 초안은 Bross 등의, "WD4: Working Draft 4 of High-Efficiency Video Coding", ITU-T SG16 WP3 및 ISO/IEC JTC1/SC29/WG11 의 비디오 코딩에 관한 공동 협력 팀 (Joint Collaborative Team on Video Coding; JCT-VC), 6차 회의: Torino, Italy, July, 2011 에 설명되어 있고, 이것은 2012 년 9 월 27일 현재, http://phenix.int-evry.fr/jct/doc_end_user/documents/6_Torino/wg11/JCTVC-F803-v3.zip 으로부터 다운로드가능하고, 그 전체 내용은 참조를 위해 여기에 통합된다.
대안적으로, 비디오 인코더 (20) 및 비디오 디코더 (30) 는, 그 스케일러블 비디오 코딩 (Scalable Video Coding; SVC) 및 멀티뷰 비디오 코딩 (Multiview Video Coding; MVC) 확장안들을 포함하는, 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 및 ITU-T H.264 (또한 ISO/IEC MPEG-4 AVC 라고 알려짐) 을 포함하는 다른 독점 또는 산업 표준들에 따라 동작할 수도 있다. 그러나, 본 개시물의 기술들은 임의의 특정한 코딩 표준 또는 기술로 제한되지 않는다.
다시, 도 1 은 일 예에 불과하고, 본 개시물의 기술들은 인코딩 및 디코딩 디바이스들 사이의 임의의 데이터 통신을 반드시 포함하지는 않는 비디오 코딩 설정들 (예를 들어, 비디오 인코딩 또는 비디오 디코딩) 에 적용될 수도 있다. 다른 예들에서, 데이터는 로컬 메모리로부터 취출될 수 있거나, 네트워크를 통해 스트리밍되는 등등과 같을 수 있다. 인코딩 디바이스는 데이터를 인코딩하여 메모리에 저장할 수도 있고, 및/또는 디코딩 디바이스는 메모리로부터 데이터를 취출하여 디코딩할 수도 있다. 많은 예들에서, 인코딩 및 디코딩은, 서로 통신하지는 않지만 데이터를 메모리에 간단히 인코딩하며 및/또는 메모리로부터 데이터를 취출하여 디코딩하는 디바이스들에 의해 수행된다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 각각 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서 (DSP) 들, 애플리케이션 특정 집적회로 (ASIC) 들, 필드 프로그래밍가능 게이트 어레이 (FPGA) 들, 별개의 로직, 하드웨어, 또는 그 임의의 조합들과 같은 다양한 적당한 회로부 중의 임의의 것으로서 구현될 수도 있다. 기술들이 부분적으로 소프트웨어로 구현될 경우, 디바이스는 적당한 비-일시적인 컴퓨터 판독가능 저장 매체 내에 소프트웨어를 위한 명령들을 저장하고, 본 개시물의 기술들을 수행하기 위하여 하나 이상의 프로세서들을 이용한 하드웨어에서 명령들을 실행할 수도 있다. 상기한 것 (하드웨어, 소프트웨어, 하드웨어 및 소프트웨어의 조합, 등) 중의 임의의 것은 하나 이상의 프로세서들이라고 간주될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 의 각각은 하나 이상의 인코더들 또는 디코더들 내에 포함될 수도 있고, 그 중 어느 하나는 조합된 인코더/디코더 (CODEC) 의 부분으로서 각각의 디바이스 내에 통합될 수도 있다.
본 개시물은 일반적으로 비디오 인코더 (20) 가 어떤 정보를 비디오 디코더 (30) 와 같은 또 다른 디바이스에 "시그널링" 하는 것을 지칭할 수도 있다. 그러나, 비디오 디코더 (20)는 어떤 신택스 엘리먼트들을 비디오 데이터의 다양한 인코딩된 부분들과 연관시킴으로써 정보를 시그널링할 수도 있다는 것이 이해되어야 한다. 즉, 비디오 인코더 (20) 는 어떤 신택스 엘리먼트들을 비디오 데이터의 다양한 인코딩된 부분들에 저장함으로써 데이터를 "시그널링" 할 수도 있다. 일부 경우들에 있어서, 이러한 신택스 엘리먼트들은 비디오 디코더 (30) 에 의해 수신되어 디코딩되기 이전에, 인코딩되어 (예를 들어, 저장 시스템에) 저장될 수도 있다. 따라서, 용어 "시그널링" 은 압축된 비디오 데이터를 디코딩하기 위해 이용되는 신택스 엘리먼트들 및/또는 다른 데이터의 통신을 일반적으로 지칭할 수도 있다. 이러한 통신은 실시간 또는 실시간에 근접하게 일어날 수도 있다. 대안적으로, 신택스 엘리먼트들을 인코딩 시에 인코딩된 비트스트림으로 컴퓨터 판독가능 저장 매체에 저장하고, 그 다음으로, 이 매체에 저장된 후의 임의의 시간에 디코딩 디바이스에 의해 취출될 수도 있을 때에 일어날 수도 있는 바와 같이, 이러한 통신은 어떤 시간 기간을 지나서 일어날 수도 있다.
위에서 간략하게 언급된 바와 같이, 비디오 인코더 (20) 는 비디오 데이터를 인코딩한다. 비디오 데이터는 하나 이상의 화상들을 포함할 수도 있다. 화상들의 각각은 비디오의 일부를 형성하는 스틸 (still) 이미지일 수도 있다. 일부 사례들에서, 화상은 비디오 "프레임" 이라고 지칭될 수도 있다. 비디오 인코더 (20) 는 비디오 데이터의 코딩된 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 발생시킬 수도 있다. 비트스트림은 코딩된 화상들 및 연관된 데이터를 포함할 수도 있다. 코딩된 화상은 화상의 코딩된 표현이다.
비트스트림을 발생시키기 위하여, 비디오 인코더 (20) 는 일련의 코딩된 화상들 및 연관된 데이터를 발생시킬 수도 있다. 코딩된 화상들은 비디오 데이터 내의 화상들의 인코딩된 표현들일 수도 있다. 연관된 데이터는 시퀀스 파라미터 세트 (sequence parameter set; SPS) 들, 화상 파라미터 세트 (picture parameter set; PPS) 들, 적응 파라미터 세트 (adaptation parameter set; APS) 들, 및 다른 신택스 구조들을 포함할 수도 있다. SPS 는 화상들의 0 개 이상의 시퀀스들에 적용가능한 파라미터들을 포함할 수도 있다. PPS 는 0 개 이상의 화상들에 적용가능한 파라미터들을 포함할 수도 있다. APS 는 0 개 이상의 화상들에 적용가능한 파라미터들을 포함할 수도 있다. APS 내의 파라미터들은 PPS 내의 파라미터들보다 변화할 가능성이 더 큰 파라미터들일 수도 있다.
화상의 인코딩된 표현을 발생시키기 위하여, 비디오 인코더 (20) 는 화상을 복수의 트리 블록들로 구획할 수도 있다. 일부 사례들에서, 트리 블록은 최대 코딩 유닛 (largest coding unit; LCU) 또는 "코딩 트리 블록" 이라고 지칭될 수도 있다. HEVC 의 트리 블록들은 H.264/AVC 와 같은 이전의 표준들의 매크로블록들과 대체로 유사할 수도 있다. 그러나, 트리 블록은 특정한 크기로 반드시 제한되는 것은 아니며, 하나 이상의 코딩 유닛 (CU) 들을 포함할 수도 있다.
트리블록들의 각각은 화상 내의 화소들의 상이한 동일-크기 블록과 연관될 수도 있다. 각각의 화소는 휘도 (luminance; Y) 샘플, Cb-채도 (Cb-chrominance) 샘플, 및 Cr-채도 (Cr-chrominance) 샘플을 포함할 수도 있다. 따라서, 각각의 트리 블록은 휘도 (Y) 샘플들의 블록, 화상의 Cb-채도 샘플들의 블록, 및 화상의 Cr-채도 샘플들의 블록과 연관될 수도 있다. 설명의 용이함을 위하여, 본 개시물은 화소들의 2 차원 어레이를 화소 블록이라고 지칭할 수도 있고, 샘플들의 2 차원 어레이를 샘플 블록이라고 지칭할 수도 있다. 비디오 인코더 (20) 는 트리 블록과 연관된 화소 블록들을 CU 들과 연관된 화소 블록들로 구획하기 위하여 쿼드-트리 (quad-tree) 구획을 이용할 수도 있고, 이에 따라 명칭이 "트리 블록들" 이다.
비디오 인코더 (20) 는 화상을 복수의 슬라이스들로 구획할 수도 있다. 슬라이스들의 각각은 정수 개 (integer number) 의 트리 블록들을 포함할 수도 있다. 화상을 인코딩하는 것의 일부로서, 비디오 인코더 (20) 는 화상의 각각의 슬라이스의 인코딩된 표현들, 즉, 코딩된 슬라이스들을 발생시킬 수도 있다. 코딩된 슬라이스를 발생시키기 위하여, 비디오 인코더 (20) 는 슬라이스의 트리 블록들 각각의 인코딩된 표현들 (즉, 코딩된 트리 블록들) 을 발생시키기 위해 슬라이스의 각각의 트리 블록을 인코딩할 수도 있다.
코딩된 트리 블록을 발생시키기 위하여, 비디오 인코더 (20) 는 화소 블록을 점진적으로 더 작은 화소 블록들로 분할하기 위해 트리 블록과 연관된 화소 블록에 대해 쿼드-트리 구획을 재귀적으로 (recursively) 수행할 수도 있다. 더 작은 화소 블록들의 각각은 CU 와 연관될 수도 있다. 구획된 CU 는 CU 의 화소 블록이 다른 CU 들과 연관된 화소 블록들로 구획되어 있는 CU 일 수도 있다. 비-구획된 CU 는 CU 의 화소 블록이 다른 CU 들과 연관된 화소 블록들로 구획되지 않은 CU 일 수도 있다.
비디오 인코더 (20) 는 각각의 비-구획된 CU 에 대한 하나 이상의 예측 유닛 (prediction unit; PU) 들을 발생시킬 수도 있다. CU 의 PU 들의 각각은 CU 의 화소 블록 내의 상이한 화소 블록과 연관될 수도 있다. 비디오 인코더 (20) 는 CU 의 각각의 PU 에 대한 예측 화소 블록들을 발생시킬 수도 있다. PU 의 예측 화소 블록들은 화소들의 블록들일 수도 있다.
비디오 인코더 (20) 는 PU 에 대한 예측 화소 블록을 발생시키기 위하여 인트라 예측 또는 인터 예측을 이용할 수도 있다. 비디오 인코더 (20) 가 PU 의 예측 화소 블록을 발생시키기 위하여 인트라 예측을 이용할 경우, 비디오 인코더 (20) 는 PU 와 연관된 화소의 디코딩된 화소들에 기초하여 PU 의 예측 화소 블록을 발생시킬 수도 있다. 비디오 인코더 (20) 가 PU 의 예측 화소 블록을 발생시키기 위하여 인터 예측을 이용할 경우, 비디오 인코더 (20) 는 PU 와 연관된 화소 이외의 하나 이상의 화소들의 디코딩된 화소들에 기초하여 PU 의 예측 화소 블록을 발생시킬 수도 있다.
비디오 인코더 (20) 는 CU 의 PU 들의 예측 화소 블록들에 기초하여 CU 에 대한 잔차 화소 블록을 발생시킬 수도 있다. CU 에 대한 잔차 화소 블록은 CU 의 PU 들에 대한 예측 화소 블록들 내의 샘플들과, CU 의 원래의 화소 블록들 내의 대응하는 샘플들 사이의 차이들을 표시할 수도 있다.
또한, 비-구획된 CU 를 인코딩하는 것의 일부로서, 비디오 인코더 (20) 는 CU 의 잔차 화소 블록들을 CU 의 변환 유닛 (transform unit; TU) 들과 연관된 하나 이상의 더 작은 잔차 화소 블록들로 구획하기 위하여 CU 의 잔차 화소 블록들에 대해 재귀적 쿼드-트리 구획을 수행할 수도 있다. 이러한 방식으로, CU 의 각각의 TU 는 휘도 (Y) 샘플들의 잔차 샘플 블록, 및 채도 (Cr 및 Cb) 샘플들의 2 개의 잔차 샘플 블록들과 연관될 수도 있다.
비디오 코더 (20) 는 TU 들과 연관된 계수 블록들 (즉, 변수들의 블록들) 을 발생시키기 위하여 하나 이상의 변환들을 TU 들과 연관된 잔차 샘플 블록들에 적용할 수도 있다. 개념적으로, 계수 블록은 계수들의 2 차원 행렬일 수도 있다. 비디오 인코더 (20) 는 계수 블록에 대해 양자화 프로세스를 수행할 수도 있다. 양자화는 일반적으로, 계수들을 나타내기 위해 이용된 데이터의 양을 가능한 대로 감소시키기 위하여 계수들이 양자화되어, 추가의 압축을 제공하는 프로세스를 지칭한다.
비디오 인코더 (20) 는 양자화된 계수 블록 내의 계수들을 나타내는 신택스 엘리먼트들의 세트들을 발생시킬 수도 있다. 비디오 인코더 (20) 는 컨텍스트 적응 2 진 산술 코딩 (Context Adaptive Binary Arithmetic Coding; CABAC) 동작들과 같은 엔트로피 인코딩 동작들을 이 신택스 엘리먼트들 중의 적어도 일부에 적용할 수도 있다. 엔트로피 인코딩 동작을 수행하는 것의 일부로서, 비디오 인코더 (20) 는 코딩 컨텍스트를 선택할 수도 있다. CABAC 의 경우, 코딩 컨텍스트는 0-값 및 1-값의 빈 (bin) 들의 확률들을 표시할 수도 있다. 컨텍스트-적응 가변 길이 코딩 (context-adaptive variable length coding; CAVLC) 의 경우, 코딩 컨텍스트는 가변 길이 코드들의 세트일 수도 있다. 비디오 인코더 (20) 는 하나 이상의 신택스 엘리먼트들을 인코딩하기 위하여 코딩 컨텍스트를 이용할 수도 있다.
비디오 인코더 (20) 에 의해 발생된 비트스트림은 일련의 네트워크 추상 계층 (NAL) 유닛들을 포함할 수도 있다. NAL 유닛들의 각각은 NAL 유닛 내의 데이터의 유형의 표시 및 데이터를 지닌 바이트들을 포함하는 신택스 구조일 수도 있다. 예를 들어, NAL 유닛은 SPS, PPS, 코딩된 슬라이스, 보충 강화 정보 (SEI), 액세스 유닛 구분자 (delimiter), 필러 (filler) 데이터, 또는 또 다른 유형의 데이터를 나타내는 데이터를 포함할 수도 있다. NAL 유닛 내의 데이터는 다양한 신택스 구조들을 포함할 수도 있다. 코딩된 슬라이스 NAL 유닛들은 코딩된 슬라이스들을 포함하는 NAL 유닛들이다. "VCL NAL 유닛" 은 VCL NAL 유닛들로서 분류되는 nal_unit_type 의 예약된 값들을 가지는 NAL 유닛들의 서브세트 및 코딩된 슬라이스 NAL 유닛들에 대한 집합적인 용어이다.
SEI NAL 유닛들은 SEI 메시지들을 포함하는 NAL 유닛들이다. SEI 메시지들은 에러 복원 (error resilience), 타이밍, 출력, 등등에 유용할 수도 있는 정보를 포함한다. 그러나, SEI 메시지들은 디코딩 프로세스에서는 필요하지 않다. 다시 말해서, 비디오 디코더는 SEI 메시지들 내의 정보를 이용하지 않으면서 비디오 데이터를 디코딩할 수 있을 수도 있다. 그러므로, H.264/AVC 또는 HEVC 와 같은 비디오 코딩 표준의 상황에서는, SEI 메시지들이 규범적 (즉, 정보를 제공하는 것이 아님) 이며, 준수하는 비디오 디코더들이 비트스트림 내에 존재하는 임의의 SEI 메시지들을 간단하게 폐기하도록 선택할 수도 있다는 의미에서 임의적이다. 또한, 비디오 디코더가 비디오 데이터를 디코딩할 수 있기 위하여 비디오 데이터와 연관된 SEI 메시지들을 송신하는 것이 필요하지 않을 수도 있다.
비디오 인코더 (20) 는 화상을 복수의 화상 구획들로 분할할 수도 있다. 화상 구획들은 화상의 트리 블록들의 비-중첩 서브세트들과 연관될 수도 있다. 비디오 인코더 (20) 는 화상을 복수의 화상 구획들로 다양한 방식들로 분할할 수도 있다. 이하에서 설명되는 바와 같이, 비디오 인코더 (20) 는 화상을 복수의 엔트로피 슬라이스들, 복수의 타일들, 또는 복수의 파면 병렬 프로세싱 (WPP) 웨이브들로 분할할 수도 있다. 본 개시물은 엔트로피 슬라이스들, 타일들, 및 WPP 웨이브들을 일반적으로 지칭하기 위하여 용어 "화상 구획" 을 이용할 수도 있다.
위에서 언급된 바와 같이, 비디오 인코더 (20) 는 화상을 복수의 엔트로피 슬라이스들로 분할할 수도 있다. 엔트로피 슬라이스들은 경량 슬라이스들, 짧은 슬라이스 헤더를 갖는 슬라이스들, 또는 짧은 슬라이스들이라고 또한 지칭될 수도 있다. 엔트로피 슬라이스는 정상 슬라이스의 CU 들의 서브세트를 포함할 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 엔트로피 슬라이스들의 어느 것도 상한보다 더 많은 빈들 (예를 들어, 엔트로피 코딩된 비트들) 을 포함하지 않도록 엔트로피 슬라이스들 사이의 CU 들을 구획할 수도 있다. 일부 사례들에서, 단일의 코딩된 슬라이스 NAL 유닛은 슬라이스의 다수의 엔트로피 슬라이스들을 포함할 수도 있다. 다른 예들에서, 각각의 엔트로피 슬라이스는 별개의 NAL 유닛 내에 포함될 수도 있다.
엔트로피 슬라이스 경계들을 가로지른 화상내 (In-picture) 예측이 허용된다. 예를 들어, 비디오 코더가 특정한 PU 에 대해 인트라 예측을 수행하고 있는 경우, 인접한 PU 가 특정한 PU 와는 상이한 엔트로피 슬라이스 내에 있더라도, 비디오 코더는 인접한 PU 로부터의 샘플들을 이용할 수도 있다. 이 예에서, 인접한 PU 가 특정한 PU 와는 상이한 슬라이스 내에 있을 경우, 비디오 코더는 인접한 PU 로부터의 샘플들을 이용할 수 없을 수도 있다.
그러나, 비디오 코더가 특정한 PU 와 연관된 데이터에 대해 엔트로피 코딩을 수행하고 있을 때, 비디오 코드는 특정한 PU 및 인접한 PU 가 동일한 엔트로피 슬라이스 내에 있을 경우에 인접한 PU 와 연관된 정보에 기초하여 코딩 컨텍스트들을 선택하는 것만이 허용된다. 이 구속으로 인해, 비디오 코더는 슬라이스의 다수의 엔트로피 슬라이스들에 대해 엔트로피 코딩 (즉, 엔트로피 인코딩 또는 디코딩) 을 병렬로 수행할 수 있을 수도 있다. 그러나, 비디오 디코더 (30) 는 슬라이스의 다수의 엔트로피 슬라이스들의 화소 블록들을 병렬로 재구성할 수는 없다.
일부 예들에서, 비디오 인코더 (20) 는 화상을 하나 이상의 타일들로 분할할 수도 있다. 타일들의 각각은 화상 내에 정수의 트리 블록들을 포함할 수도 있다. 비디오 인코더 (20) 는 2개 이상의 수직 타일 경계들 및 2 개 이상의 수평 타일 경계들을 정의함으로써 화상을 타일들로 분할할 수도 있다. 화상의 각각의 수직 변은 수직 타일 경계인 것으로 간주될 수도 있다. 현재의 화상의 각각의 수평 변은 수평 타일 경계인 것으로 간주될 수도 있다. 예를 들어, 비디오 인코더 (20) 가 화상에 대한 4 개의 수직 타일 경계들 및 3 개의 수평 타일 경계들을 정의하는 경우, 현재의 화상은 6 개의 타일들로 분할된다.
비디오 인코더 (20) 또는 비디오 디코더 (30) 와 같은 비디오 코더는 래스터 스캔 순서에 따라 화상의 타일들을 코딩할 수도 있다. 또한, 비디오 코더는 래스터 스캔 순서에 따라 타일 내의 각각의 트리 블록을 코딩할 수도 있다. 이러한 방식으로, 비디오 코더는 화상의 또 다른 타일의 임의의 트리 블록을 코딩하기 전에 화상의 주어진 타일의 각각의 트리 블록을 코딩할 수도 있다. 결과적으로, 비디오 코더가 화상의 트리 블록들을 코딩하는 순서는, 화상이 다수의 타일들로 구획되지 않는 경우보다는 화상이 다수의 타일들로 구획되는 경우에 상이할 수도 있다.
일부 사례들에서, 특정한 CU 및 공간적으로 인접한 CU 가 동일한 타일에 속하기만 하면, 그리고 특정한 CU 및 공간적으로 인접한 CU 가 동일한 슬라이스에 속하기만 하면, 비디오 코더는 특정한 CU 에 대해 인트라 예측을 수행하기 위하여 공간적으로 인접한 CU 와 연관된 정보를 이용할 수도 있다. 공간적으로 인접한 CU 는 특정한 CU 와 연관된 화소 블록에 인접해 있는 화소 블록과 연관되는 CU 일 수도 있다. 일부 사례들에서, 특정한 CU 및 공간적으로 인접한 CU 가 동일한 타일 내에 있기만 하면, 비디오 코더는 특정한 CU 의 신택스 엘리먼트를 CABAC 인코딩하기 위한 컨텍스트를 선택하기 위하여 공간적으로 인접한 CU 와 연관된 정보를 이용할 수도 있다. 이 구속들로 인해, 비디오 코더는 다수의 타일들의 트리 블록들을 병렬로 코딩할 수 있을 수도 있다.
예를 들어, 화소값 예측, 움직임 예측, 코딩 모드 예측, 및 엔트로피 코딩 컨텍스트 예측을 포함하는, 타일 경계들을 가로지르는 화상내 예측은 플래그 tile_boundary_independence_idc 에 의해 제어될 수도 있다. 플래그가 1 과 동일한 경우, 타일 경계들을 가로지르는 화상내 예측은 허용되지 않는다. 그렇지 않을 경우에는, 화상 경계들 또는 슬라이스 경계들이기도 한 타일 경계들을 제외한, 타일 경계들을 가로지르는 화상내 예측이 허용된다. 화상내 예측이 허용되지 않는 경우, 타일들은 기능성은, 타일들이 전혀 없거나, 동등하게는 화상 내에 오직 하나의 타일이 있는 경우에 비해 트리 블록 스캔 순서를 변화시킬 수 있을 수도 있다. 화상내 예측이 허용되는 경우, 트리 블록 스캔 순서를 변화시키는 것 외에도, 타일들은 병렬 코딩 (인코딩 및/또는 디코딩) 을 위해 이용될 수 있는 독립적인 구획을 또한 제공할 수도 있다.
화상내 예측이 타일 경계들을 가로질러서 허용되는지에 관계없이, 비디오 인코더 (20) 는 단일 NAL 유닛 내의 단일 엔트로피 슬라이스 내에 다수의 인코딩된 타일들을 포함할 수도 있다. 이 경우, 화상내 예측이 타일 경계들을 가로질러서 허용되더라도, 타일 경계들을 가로지르는 엔트로피 코딩 컨텍스트 예측은 허용되지 않는다. 또한, NAL 유닛이 단일의 엔트로피 슬라이스만을 포함할 수 있고 엔트로피 슬라이스만이 단일 타일의 CU 들을 포함하는 예들에서는, 코딩된 타일들이 별개의 NAL 유닛들 내에 있으므로, 엔트로피 슬라이스의 각각의 코딩된 타일의 진입 포인트들을 시그널링할 필요가 없을 수도 있다.
다른 예들에서, 비디오 코더는 파면 병렬 프로세싱 (WPP) 을 이용하여 화상을 코딩할 수도 있다. 비디오 코더가 WPP 를 이용하여 화상을 코딩하는 경우, 비디오 코더는 화상의 트리 블록들을 복수의 "WPP 웨이브들" 로 분할할 수도 있다. WPP 웨이브들의 각각은 화상 내의 트리 블록들의 상이한 행 (row) 에 대응할 수도 있다. 비디오 코더가 WPP 를 이용하여 화상을 코딩하는 경우, 비디오 코더는 트리 블록들의 상부 행을 코딩하기 시작할 수도 있다. 비디오 코더가 상부 행의 2 개 이상의 트리 블록들을 코딩한 후, 비디오 코더는 트리 블록들의 상부 행을 코딩하는 것과 병렬로 트리 블록들의 두 번째 상부 행을 코딩하기 시작할 수도 있다. 비디오 코더가 두 번째 상부 행의 2 개 이상의 트리 블록들을 코딩한 후, 비디오 코더는 트리 블록들의 더 상위 행들을 코딩하는 것과 병렬로 트리 블록의 세 번째 상부 행을 코딩하기 시작할 수도 있다. 이 패턴은 화상 내의 트리 블록들의 행들 아래까지 계속될 수도 있다.
비디오 코더가 WPP 를 이용하여 화상을 코딩하는 경우, 공간적으로 인접한 CU 들이 현재의 트리 블록의 좌측, 좌상측, 상부, 또는 우상측에 있기만 하면, 비디오 코더는 현재의 트리 블록 내의 특정한 CU 에 대해 인트라 예측을 수행하기 위하여 현재의 트리 블록 외부의 공간적으로 인접한 CU 들과 연관된 정보를 이용할 수도 있다. 현재의 트리 블록이 최상부 행 이외의 행 내의 최좌측 트리 블록인 경우, 비디오 코더는 현재의 트리 블록의 신택스 엘리먼트를 CABAC 인코딩하기 위한 컨텍스트를 선택하기 위하여 바로 상위의 행의 제 2 트리 블록과 연관된 정보를 이용할 수도 있다. 이와 다르게, 현재의 트리 블록이 행 내의 최좌측 트리 블록이 아닌 경우, 비디오 코더는 현재의 트리 블록의 신택스 엘리먼트를 CABAC 인코딩하기 위한 컨텍스트를 선택하기 위하여 현재의 트리 블록의 좌측의 트리 블록과 연관된 정보를 이용할 수도 있다. 이러한 방식으로, 비디오 코더는 바로 상위의 행의 2 개 이상의 트리 블록들을 인코딩한 후에 바로 상위의 행의 CABAC 상태들에 기초하여 행의 CABAC 상태들을 초기화할 수도 있다.
일부 예들에서, 비디오 코더가 WPP 를 이용하여 화상을 코딩하는 경우, 화상의 타일 경계들만이 화상의 수평 및 수직 가장자리들이다. 따라서, 화상의 타일만이 화상과 동일한 크기일 수도 있다. 비디오 코더는 화상, 이에 따라, 화상의 단일 타일을 다수의 WPP 웨이브들로 분할할 수도 있다.
위에서 언급된 바와 같이, 비디오 인코더 (20) 는 슬라이스의 인코딩된 표현을 포함하는 코딩된 슬라이스 NAL 유닛을 발생시킬 수도 있다. 슬라이스는 정수의 연속적으로 코딩된 트리 블록들과 연관될 수도 있다. 코딩된 슬라이스 NAL 유닛은 슬라이스 헤더 및 슬라이스 데이터를 포함할 수도 있다. 슬라이스 데이터는 슬라이스와 연관된 각각의 트리 블록의 인코딩된 표현을 포함할 수도 있다.
비디오 디코더 (20) 는 트리 블록들의 인코딩된 표현들이 트리 블록들이 속하는 화상 구획들에 따라 슬라이스 데이터 내에서 그룹화되도록 한 코딩된 슬라이스 NAL 유닛을 발생시킬 수도 있다. 예를 들어, 코딩된 슬라이스 NAL 유닛은 제 1 화상 구획과 연관된 각각의 코딩된 트리 블록, 그 다음으로, 제 2 화상 구획과 연관된 각각의 코딩된 트리 블록, 그 다음으로, 제 3 화상 구획과 연관된 각각의 코딩된 트리 블록, 등등을 포함할 수도 있다.
설명의 용이함을 위하여, 본 개시물은 단일 화상 구획 (예를 들어, 엔트로피 슬라이스, 타일, 또는 WPP 웨이브) 과 연관되는 코딩된 슬라이스 NAL 유닛 내의 코딩된 트리 블록들의 그룹을 지칭하기 위하여 용어들 "인코딩된 화상 구획", "코딩된 서브-슬라이스", "코딩된 서브스트림" 을 이용할 수도 있다. 그럼에도 불구하고, 화상 구획이 다수의 슬라이스들 내의 트리 블록들을 포함할 수도 있는 상황들이 있을 수도 있다는 것이 인식되어야 한다. 이하에 설명된 도 10 은 타일이 다수의 슬라이스들에 속하는 트리 블록들을 포함하고 슬라이스가 다수의 타일들에 속하는 트리 블록들을 포함하는 사례를 예시한다.
비디오 디코더 (30) 는 비디오 인코더 (20) 에 의해 발생된 비트스트림을 수신할 수도 있다. 비트스트림은 비디오 인코더 (20) 에 의해 인코딩된 비디오 데이터의 코딩된 표현을 포함할 수도 있다. 비디오 디코더 (30) 는 비트스트림에 대해 파싱 동작 (parsing operation) 을 수행할 수도 있다. 파싱 동작을 수행하는 것의 일부로서, 비디오 디코더 (30) 는 비트스트림으로부터 신택스 엘리먼트들을 추출할 수도 있다. 비트스트림으로부터 신택스 엘리먼트들을 추출하는 것의 일부로서, 비디오 디코더 (30) 는 비트스트림 내의 데이터에 대해 엔트로피 인코딩 (예를 들어, CABAC 디코딩) 동작들을 수행할 수도 있다. 비디오 디코더 (30) 는 비트스트림으로부터 추출된 신택스 엘리먼트들에 기초하여 비디오 데이터의 화상들을 재구성할 수도 있다. 신택스 엘리먼트들에 기초하여 비디오 데이터를 재구성하기 위한 프로세스는 신택스 엘리먼트들을 발생시키기 위하여 비디오 인코더 (20) 에 의해 수행되는 프로세스와 일반적으로 상반될 수도 있다.
비디오 디코더 (30) 는 CU 와 연관된 신택스 엘리먼트들에 기초하여, CU 의 PU 들에 대한 예측 화소 블록들을 발생시킬 수도 있다. 추가적으로, 비디오 디코더 (30) 는 CU 의 TU 들과 연관된 계수 블록들을 역양자화할 수도 있다. 비디오 디코더 (30) 는 CU 의 TU 들과 연관된 잔차 화소 블록들을 재구성하기 위하여 계수 블록들에 대해 역변환들을 수행할 수도 있다. 비디오 디코더 (30) 는 예측 화소 블록들 및 잔차 화소 블록들에 기초하여 CU 의 화소 블록을 재구성할 수도 있다. 이러한 방식으로, 비디오 디코더 (30) 는 비트스트림 내의 신택스 엘리먼트들에 기초하여 CU 들의 화소 블록들을 재구성할 수도 있다.
위에서 언급된 바와 같이, 비디오 디코더 (30) 의 일부 구현들은 상이한 화상 구획들의 화소 블록들을 병렬로 디코딩할 수 있을 수도 있다. 예를 들어, 코딩된 슬라이스 NAL 유닛이 제 1 인코딩된 화상 구획 및 제 2 인코딩된 화상 구획을 포함하는 경우, 비디오 디코더 (30) 는 제 1 인코딩된 화상 구획의 화소 블록들 및 제 2 인코딩된 화상 구획의 화소 블록들을 병렬로 디코딩할 수 있을 수도 있다.
비디오 디코더 (30) 는 코딩된 슬라이스 NAL 유닛을 메모리에 저장할 수도 있다. 메모리는 바이트 어드레싱가능한 것일 수도 있다. 비디오 디코더 (30) 가 코딩된 슬라이스 NAL 유닛을 바이트-어드레싱가능 메모리에 저장하므로, 인코딩된 화상 구획의 시작이 바이트 내에서 발생시키는 경우, 비디오 디코더 (30) 는 인코딩된 화상 구획의 시작과 연관된 메모리 어드레스를 표시할 수 없을 수도 있다. 이에 따라, 인코딩된 화상 구획들 중의 하나 이상이 바이트 내에서 시작할 경우, 비디오 디코더 (30) 는 인코딩된 화상 구획들을 병렬로 디코딩할 수 없을 수도 있다. 대안적으로, 비디오 디코더 (30) 는 인코딩된 화상 구획들을 병렬로 그러나 증가된 구현 및 연산 복잡도들로 디코딩하는 것을 가능하게 하기 위하여, 비트별 메모리 어드레싱, 또는 바이트별 플러스 (plus) 비트별 어드레싱을 이용할 수도 있다.
이 문제를 다루기 위하여, 비디오 인코더 (20) 는 코딩된 슬라이스 NAL 유닛들 내의 인코딩된 화상 구획들의 각각이 바이트 정렬되도록 코딩된 슬라이스 NAL 유닛들을 발생시킬 수도 있다. 즉, 코딩된 슬라이스 NAL 유닛 내의 인코딩된 화상 구획들의 각각이 바이트 경계에서 시작할 수도 있다. 인코딩된 화상 구획이 바이트 정렬되는 경우, 인코딩된 화상 구획의 최초 비트는 메모리 내의 어드레싱가능한 바이트의 최초 비트이고, 인코딩된 화상 구획의 최종 비트는 메모리 내의 어드레싱가능한 바이트의 최종 비트이다. 이에 따라, 메모리 내의 각각의 바이트-어드레싱된 저장 위치에 대하여, 저장 위치는 다수의 인코딩된 화상 구획들과 연관된 비트들을 저장하지 않는다.
또한, 비디오 디코더 (30) 가 인코딩된 화상 구획들을 병렬로 디코딩하는 경우, 비디오 디코더 (30) 는 상이한 인코딩된 화상 구획들을 상이한 프로세싱 코어들에 배정할 수도 있다. 프로세싱 코어들은 인코딩된 화상 구획들을 병렬로 디코딩할 수도 있다. 추가적으로, 프로세싱 코어들은 메모리로부터 슬라이스 헤더를 요청할 수도 있다. 이에 응답하여, 메모리는 슬라이스 헤더를 프로세싱 코어들에 전송할 수도 있다. 이러한 방식으로, 프로세싱 코어들의 각각은 인코딩된 화상 구획들을 디코딩하면서 슬라이스 헤더를 이용할 수 있을 수도 있다. 그러나, 슬라이스 헤더가 바이트 정렬되어 있지 않은 경우, 메모리는 슬라이스 헤더 내에 있지 않은 일부 정보를 또한 전송하지 않으면서 슬라이스 헤더를 프로세싱 코어들에 전송할 수 없을 수도 있다. 예를 들어, 슬라이스 헤더가 바이트 정렬되어 있지 않은 경우, 비디오 디코더 (30) 는 슬라이스 헤더가 바이트 정렬되도록 슬라이스 헤더를 트랜스코딩할 수도 있다. 슬라이스 헤더들을 트랜스코딩하는 것은 비디오 디코더 (30) 의 복잡도를 증가시킬 수도 있고, 프로세싱 코어들이 트랜스코딩된 슬라이스 헤더들을 프로세싱하도록 구성될 것을 요구할 수도 있다.
인코딩된 화상 구획들의 각각이 바이트 정렬되어 있는 코딩된 슬라이스 NAL 유닛을 발생시키기 위하여, 비디오 인코더 (20) 는 슬라이스 헤더가 바이트 경계에서 종료하도록 코딩된 슬라이스 NAL 유닛의 슬라이스 헤더를 패딩 (padding) 할 수도 있다. 즉, 슬라이스 헤더의 최종 비트는 메모리 내의 어드레싱가능한 바이트의 최종 비트일 수도 있다. 코딩된 슬라이스 NAL 유닛의 헤더를 패딩하는 것은 슬라이스 헤더가 바이트 정렬될 때까지 슬라이스 헤더의 끝에 비트들을 첨부하는 것을 포함할 수도 있다.
이러한 방식으로, 비디오 인코더 (20) 는 복수의 인코딩된 화상 구획들을 발생시킬 수도 있고, 인코딩된 화상 구획들의 각각은 비디오 데이터에서 화상 내의 코딩된 유닛들의 상이한 세트와 연관된다. 추가적으로, 비디오 인코더 (20) 는 슬라이스 헤더 및 복수의 인코딩된 화상 구획들을 포함하는 NAL 유닛을 발생시킬 수도 있고, 슬라이스 헤더는 슬라이스 헤더를 바이트 경계에 정렬하는 하나 이상의 패딩 비트들을 포함한다. 유사하게, 비디오 디코더 (30) 는 NAL 유닛을 수신할 수도 있다. NAL 유닛은 슬라이스 헤더와, 비디오 데이터의 복수의 인코딩된 화상 구획들을 포함할 수도 있다. 슬라이스 헤더는 슬라이스 헤더를 바이트 경계에 정렬하는 하나 이상의 패딩 비트들을 포함할 수도 있다. 비디오 디코더 (30) 는 인코딩된 화상 구획들의 2 개 이상을 병렬로 디코딩할 수도 있다.
인코딩된 화상 구획들을 병렬로 디코딩하기 위하여, 비디오 디코더 (30) 는 인코딩된 화상 구획들을, 병렬로 실행되는 상이한 디코딩 스레드 (thread) 들에 배정할 수도 있다. 디코딩 스레드들은 상이한 프로세싱 코어들 상에서 실행될 수도 있다. 인코딩된 화상 구획들을 상이한 디코딩 스레드들에 배정하기 위하여, 비디오 디코더 (30) 는 인코딩된 화상 구획들의 시작들과 연관된 메모리 어드레스들을 결정할 필요가 있을 수도 있다.
비디오 디코더 (30) 가 인코딩된 화상 구획들의 시작들과 연관된 메모리 어드레스들을 결정하는 것을 가능하게 하기 위하여, 코딩된 슬라이스 NAL 유닛의 슬라이스 헤더는 진입 포인트 오프셋들을 포함할 수도 있다. 일부 예들에서, 진입 포인트 오프셋들은 또 다른 포인트에 관한 인코딩된 화상 구획들의 메모리 어드레스들의 오프셋들을 표시할 수도 있다. 일부 예들에서, 오프셋들은 코딩된 슬라이스 NAL 유닛의 시작에 관한 것일 수도 있다. 예를 들어, 코딩된 슬라이스 NAL 유닛의 슬라이스 헤더 내의 진입 포인트 오프셋은 특정한 인코딩된 화상 구획이 코딩된 슬라이스 NAL 유닛의 312 번째 바이트에서 시작한다는 것으로 표시할 수도 있다. 또 다른 예에서, 코딩된 슬라이스 NAL 유닛에서의 인코딩된 화상 구획에 대한 진입 포인트 오프셋은 코딩된 슬라이스 NAL 유닛 내의 선행하는 인코딩된 화상 구획의 최초 비트에 관한 것일 수도 있다. 예를 들어, 진입 포인트 오프셋은 코딩된 슬라이스 NAL 유닛 내의 특정한 인코딩된 화상 구획이 코딩된 슬라이스 NAL 유닛 내의 이전의 인코딩된 화상 구획 후의 124 바이트들에서 시작할 수도 있다는 것으로 표시할 수도 있다. 또한, 일부 예들에서, 진입 포인트 오프셋들은 인코딩된 화상 구획들의 비트들 또는 바이트들 내의 길이들을 표시할 수도 있다.
진입 포인트 오프셋들을 표시하는 오프셋 신택스 엘리먼트들에 부가하여, 비디오 인코더 (20) 는 본 개시물의 하나 이상의 기술들에 따라, 슬라이스 헤더 내의 2 개의 추가적인 신택스 엘리먼트들을 포함할 수도 있다. 슬라이스 내의 타일들의 수는 추가적인 신택스 엘리먼트들 중의 제 1 추가적인 신택스 엘리먼트에 기초하여 결정될 수도 있다. 오프셋 신택스 엘리먼트들의 각각에서 이용되는 비트들의 수는 추가적인 신택스 엘리먼트들 중의 제 2 추가적인 신택스 엘리먼트에 기초하여 결정될 수도 있다. 본 개시물의 기술들에 따르면, 비디오 인코더 (20) 는 추가적인 신택스 엘리먼트들을 엔트로피 인코딩 (예를 들어, 지수-골롬 인코딩) 할 수도 있다. 비디오 인코더 (20) 는 추가적인 신택스 엘리먼트들을 엔트로피 인코딩하므로, 추가적인 신택스 엘리먼트들은 비트들의 가변-길이 시퀀스들을 이용하여 비트스트림에서 표현된다. 추가적인 신택스 엘리먼트들을 나타내기 위하여 비트들의 가변-길이 시퀀스들을 이용하는 것은 추가적인 신택스 엘리먼트들을 나타내기 위하여 비트들의 고정-길이 시퀀스들이 이용될 때보다 더 적은 비트들을 포함하는 비트스트림으로 귀착될 수도 있고, 비디오 인코더 (20) 가 예를 들어, 5 비트들을 이용하는 고정-길이 코딩에 의해 허용되는 것보다 더 많은 오프셋 신택스 엘리먼트들을 시그널링하는 것을 가능하게 할 수도 있다.
이러한 방식으로, 비디오 인코더 (20) 는 제 1 신택스 엘리먼트, 제 2 신택스 엘리먼트, 및 일련의 오프셋 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 오프셋 신택스 엘리먼트들 각각의 길이들은 제 1 신택스 엘리먼트에 기초하여 결정가능할 수도 있다. 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수는 제 2 신택스 엘리먼트에 기초하여 결정가능할 수도 있다. NAL 유닛 내의 복수의 인코딩된 화상 구획들의 위치들은 오프셋 신택스 엘리먼트들에 기초하여 결정가능할 수도 있다. 또한, 비디오 인코더 (20) 는 엔트로피-인코딩된 제 1 신택스 엘리먼트를 나타내는 가변-길이 값, 엔트로피-인코딩된 제 2 신택스 엘리먼트를 나타내는 가변-길이 값, 및 오프셋 신택스 엘리먼트들을 나타내는 고정-길이 값들을 포함하는 비트스트림을 발생시킬 수도 있다.
비디오 디코더 (30) 는 제 1 추가적인 신택스 엘리먼트를 나타내는 가변-길이 값, 제 2 추가적인 신택스 엘리먼트를 나타내는 엔트로피-인코딩된 가변-길이 값, 및 일련의 오프셋 신택스 엘리먼트들을 포함하는 비트스트림을 수신할 수도 있다. 비디오 디코더 (30) 는 제 1 및 제 2 추가적인 신택스 엘리먼트들을 엔트로피 디코딩할 수도 있다. 또한, 비디오 디코더 (30) 는 제 1 신택스 엘리먼트에 기초하여 오프셋 신택스 엘리먼트들 각각의 길이들을 결정할 수도 있고, 제 2 신택스 엘리먼트에 기초하여 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수를 결정할 수도 있다. 비디오 디코더 (30) 는 오프셋 신택스 엘리먼트들 각각의 길이들과, 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수에 적어도 부분적으로 기초하여, 비트스트림으로부터의 오프셋 신택스 엘리먼트들을 파싱할 수도 있다. 그 다음으로, 비디오 디코더 (30) 는 오프셋 신택스 엘리먼트들에 적어도 부분적으로 기초하여 NAL 유닛 내의 복수의 인코딩된 화상 구획들의 위치들을 결정할 수도 있다.
또한, 코딩된 슬라이스 NAL 유닛의 슬라이스 헤더 내의 진입 포인트 오프셋들을 표시하는 대신에 (또는 이것에 부가하여), 코딩된 슬라이스 NAL 유닛의 슬라이스 데이터는 진입 포인트 마커들을 포함할 수도 있다. 진입 포인트 마커들은 진입 포인트 마커들에 고유한 비트 패턴을 특정할 수도 있다. 진입 포인트 마커들은 슬라이스 데이터의 제 1 인코딩된 화상 구획을 제외하고는, 각각의 인코딩된 화상 구획 직전의 슬라이스 데이터에서 발생시킬 수도 있다. 비디오 인코더 (30) 는 슬라이스 데이터를 통해 스캐닝하고 진입 포인트 마커들을 식별함으로써 인코딩된 화상 구획들의 시작들과 연관된 메모리 어드레스들을 결정할 수도 있다.
슬라이스 헤더 내의 진입 포인트 오프셋들 또는 슬라이스 데이터 내의 진입 포인트 마커들을 포함하는 것은, 비디오 디코더 (30) 가 다수의 인코딩된 화상 구획들을 병렬로 디코딩하도록 구성될 경우에 유용할 수도 있다. 그러나, 일부 비디오 디코더들은 다수의 인코딩된 화상 구획들을 병렬로 디코딩하도록 구성되지 않는다. 다수의 인코딩된 화상 구획들을 병렬로 디코딩하도록 구성되지 않은 비디오 디코더들에 의해 요구되는 하드웨어는 다수의 인코딩된 화상 구획들을 병렬로 디코딩하도록 구성되는 비디오 디코더들에 의해 요구되는 하드웨어보다 더 간단할 수도 있다. 더 간단한 하드웨어는 덜 고가일 수도 있고 더 적은 에너지를 소비할 수도 있다.
비디오 디코더 (30) 가 다수의 인코딩된 화상 구획들을 병렬로 디코딩하도록 구성되지 않은 경우, 비디오 디코더 (30) 는 진입 포인트 오프셋들 또는 진입 포인트 마커들을 이용하지 않는다. 따라서, 비디오 디코더 (30) 가 다수의 인코딩된 화상 구획들을 병렬로 디코딩하도록 구성되지 않은 경우, 비디오 디코더 (30) 에 의해 수신되는 비트스트림 내의 진입 포인트 오프셋들 및/또는 진입 포인트 마커들의 포함은 비트스트림 내의 비트들의 수를 불필요하게 증가시킬 수도 있다.
본 개시물의 하나 이상의 기술들에 따르면, 비디오 인코더 (20) 는, 비디오 인코더 (20) 가 코딩된 슬라이스 NAL 유닛들 내의 진입 포인트 오프셋들 및/또는 진입 포인트 마커들을 포함하지 않도록 구성될 수도 있다. 오히려, 비디오 인코더 (20) 는 코딩된 슬라이스 NAL 유닛에서 인코딩된 화상 구획들의 진입 포인트들을 표시하는 SEI 메시지를 발생시킬 수도 있다. 예를 들어, 비디오 인코더 (20) 는 코딩된 슬라이스 NAL 유닛에서의 인코딩된 화상 구획들에 대한 진입 포인트 오프셋들을 포함하는 SEI 메시지를 발생시킬 수도 있다. 다시 말해서, SEI 메시지는 코딩된 슬라이스 NAL 유닛 내에서 코딩된 화상 구획들의 바이트 오프셋들을 특정함으로써 진입 포인트들을 표시할 수도 있다.
도 2 는 본 개시물의 기술들을 구현하도록 구성되는 일 예의 비디오 인코더 (20) 를 예시하는 블록 다이어그램이다. 도 2 는 설명의 목적들을 위해 제공되며, 본 개시물에서 폭넓게 예시화되고 설명된 것과 같은 기술들의 제한으로 간주되지 않아야 한다. 설명의 목적들을 위하여, 본 개시물은 HEVC 코딩의 상황에서 비디오 인코더 (20) 를 설명한다. 그러나, 본 개시물의 기술들은 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다.
도 2 의 예에서, 비디오 인코더 (20) 는 복수의 기능적 컴포넌트들을 포함한다. 비디오 인코더 (20) 의 기능적 컴포넌트들은 예측 프로세싱 유닛 (100), 잔차 발생 유닛 (102), 변환 프로세싱 유닛 (104), 양자화 유닛 (106), 역양자화 유닛 (108), 역변환 프로세싱 유닛 (110), 재구성 유닛 (112), 필터 유닛 (113), 디코딩된 화상 버퍼 (114), 및 엔트로피 인코딩 유닛 (116) 을 포함한다. 예측 프로세싱 유닛 (100) 은 인터-예측 프로세싱 유닛 (121) 및 인트라-예측 프로세싱 유닛 (126) 을 포함한다. 인터-예측 프로세싱 유닛 (121) 은 움직임 추정 유닛 (122) 및 움직임 보상 유닛 (124) 을 포함한다. 다른 예들에서, 비디오 인코더 (20) 는 더 많거나, 더 적거나, 또는 상이한 기능적 컴포넌트들을 포함할 수도 있다. 또한, 움직임 추정 유닛 (122) 및 움직임 보상 유닛 (124) 은 고도로 통합될 수도 있지만, 도 2 의 예에서는 설명의 목적들을 위하여 별개로 표현되어 있다.
비디오 인코더 (20) 는 비디오 데이터를 수신할 수도 있다. 비디오 인코더 (20) 는 다양한 소스들로부터 비디오 데이터를 수신할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 비디오 소스 (18; 도 1) 또는 또 다른 소스로부터 비디오 데이터를 수신할 수도 있다. 비디오 데이터는 일련의 화상들을 나타낼 수도 있다. 비디오 데이터를 인코딩하기 위하여, 비디오 인코더 (20) 는 각각의 화상들의 각각의 슬라이스를 인코딩할 수도 있다. 슬라이스를 인코딩하는 것의 일부로서, 비디오 인코더 (20) 는 슬라이스 내의 각각의 트리 블록을 인코딩할 수도 있다.
비디오 인코더 (20) 는 래스터 스캔 순서에 따라 슬라이스 내의 트리 블록들을 인코딩할 수도 있다. 다시 말해서, 비디오 인코더 (20) 가 슬라이스 내의 트리 블록들의 각각을 인코딩하였을 때까지, 비디오 인코더 (20) 는, 슬라이스 내의 트리 블록들의 최상부 행을 가로질러 좌측으로부터 우측으로 진행하며, 그 다음으로, 트리 블록들의 다음 하부 행을 가로질러 좌측으로부터 우측으로 진행하는 등등의 순서로 슬라이스의 트리 블록들을 인코딩할 수도 있다.
래스터 스캔 순서에 따라 트리 블록들을 인코딩한 결과로서, 특정한 트리 블록의 상부 및 좌측의 트리 블록들이 인코딩되었을 수도 있지만, 특정한 트리 블록의 하부 및 우측의 트리 블록들은 아직 인코딩되지 않았다. 결과적으로, 비디오 인코더 (20) 는 특정한 트리 블록을 인코딩할 때에 특정한 트리 블록의 상부 및 좌측의 트리 블록들을 인코딩함으로써 발생된 정보를 액세스할 수 있을 수도 있다. 그러나, 비디오 인코더 (20) 는 특정한 트리 블록을 인코딩할 때에 특정한 트리 블록의 하부 및 우측의 트리 블록들을 인코딩함으로써 발생된 정보를 액세스할 수 없을 수도 있다.
트리 블록을 인코딩하는 것의 일부로서, 예측 프로세싱 유닛 (100) 은 화소 블록을 점진적으로 더 작은 화소 블록들로 분할하기 위하여 트리 블록과 연관된 화소 블록에 대해 쿼드-트리 구획을 수행할 수도 있다. 더 작은 화소 블록들은 CU 들과 연관될 수도 있다. 예를 들어, 예측 프로세싱 유닛 (100) 은 트리 블록의 화소 블록들의 각각을 4 개의 동일-크기 서브-블록들로 구획할 수도 있고, 서브-블록들의 하나 이상을 4 개의 동일-크기 서브-서브-블록들로 구획하는 등등과 같을 수도 있다.
CU 들과 연관된 화소 블록들의 크기들은 8×8 화소들로부터, 최대 64×64 이상의 샘플들을 갖는 트리 블록들과 연관된 화소 블록들의 크기까지의 범위일 수도 있다. 본 개시물에서, "N×N" 및 "N 바이 (by) N" 은 수직 및 수평 차원들의 측면에서 화소 블록의 화소 차원들, 예를 들어, 16×16 화소들 또는 16 바이 16 화소들을 지칭하기 위하여 상호 교환가능하게 이용될 수도 있다. 일반적으로, 16×16 화소 블록은 수직 방향에서 16 개의 화소들 (y = 16) 과, 수평 방향에서 16 개의 화소들 (x = 16) 을 가진다. 마찬가지로, N×N 블록은 일반적으로 수직 방향에서 N 개의 화소들 및 수평 방향에서 N 개의 화소들을 가지며, N 은 음이 아닌 정수 값을 나타낸다.
비디오 인코더 (20) 는 CU 들의 인코딩된 표현들 (즉, 코딩된 CU 들) 을 발생시키기 위하여 트리 블록의 CU 들을 인코딩할 수도 있다. 비디오 인코더 (20) 는 z-스캔 순서에 따라 트리 블록의 CU 들을 인코딩할 수도 있다. 다시 말해서, 비디오 인코더 (20) 는 좌상측 CU, 우상측 CU, 좌하측 CU, 및 그 다음으로 우하측 CU 를 그 순서로 인코딩할 수도 있다. 비디오 인코더 (20) 가 구획된 CU 를 인코딩할 때, 비디오 인코더 (20) 는 z-스캔 순서에 따라 구획된 CU 의 화소 블록들의 서브-블록들과 연관된 CU 들을 인코딩할 수도 있다. 다시 말해서, 비디오 인코더 (20) 는 좌상측 서브-블록과 연관된 CU, 우상측 서브-블록과 연관된 CU, 좌하측 서브-블록과 연관된 CU, 및 그 다음으로 우하측 서브-블록과 연관된 CU 를 그 순서로 인코딩할 수도 있다.
z-스캔 순서에 따라 트리 블록의 CU 들을 인코딩한 결과로서, 특정한 CU 의 상부, 좌상측, 우상측, 좌측, 및 좌하측 CU 들은 인코딩되었을 수도 있다. 특정한 CU 의 하부 또는 우측 CU 들은 아직 인코딩되지 않았다. 결과적으로, 비디오 인코더 (20) 는 특정한 CU 를 인코딩할 때에 특정한 CU 와 인접하는 일부 CU 들을 인코딩함으로써 발생된 정보를 액세스할 수 있을 수도 있다. 그러나, 비디오 인코더 (20) 는 특정한 CU 를 인코딩할 때에 특정한 CU 와 인접하는 다른 CU 들을 인코딩함으로써 발생된 정보를 액세스할 수 없을 수도 있다.
CU 를 인코딩하는 것의 일부로서, 예측 프로세싱 유닛 (100) 은 CU 의 하나 이상의 PU 들 사이에서 CU 의 화소 블록들을 구획할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 다양한 PU 크기들을 지원할 수도 있다. 특정한 CU 의 크기가 2N×2N 인 것으로 가정하면, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 인트라 예측에 대해 2N×2N 또는 N×N 의 PU 크기들과, 인터 예측에 대해 2N×2N, 2N×N, N×2N, N×N, 또는 유사한 것의 대칭적인 PU 들을 지원할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 인터 예측에 대해 2N×nU, 2N×nD, nL×2N, 및 nR×2N 의 PU 크기들에 대한 비대칭적인 구획을 또한 지원할 수도 있다.
인터-예측 프로세싱 유닛 (121) 은 CU 의 각각의 PU 에 대해 인터 예측을 수행할 수도 있다. 인터 예측은 시간적인 압축을 제공할 수도 있다. 인터-예측 프로세싱 유닛 (121) 은 PU 에 대한 예측 데이터를 발생시킬 수도 있다. PU 에 대한 예측 데이터는 PU 에 대응하는 예측 샘플 블록들과, PU 에 대한 움직임 정보를 포함할 수도 있다. 움직임 추정 유닛 (122) 은 PU 에 대한 움직임 정보를 발생시킬 수도 있다. 일부 사례들에서, 움직임 추정 유닛 (122) 은 PU 의 움직임 정보를 시그널링하기 위하여 병합 모드 (merge mode) 또는 진보된 움직임 벡터 예측 (advanced motion vector prediction; AMVP) 모드를 이용할 수도 있다. 움직임 보상 유닛 (124) 은 PU 와 연관된 화상 (즉, 참조 화상들) 이외의 하나 이상의 화상들의 화소에 기초하여 PU 의 예측 화소 블록들을 발생시킬 수도 있다.
슬라이스들은 I 슬라이스들, P 슬라이스들, 또는 B 슬라이스들일 수도 있다. 움직임 추정 유닛 (122) 및 움직임 보상 유닛 (124) 은 PU 가 I 슬라이스, P 슬라이스, 또는 B 슬라이스인지에 따라 CU 의 PU 에 대한 상이한 동작들을 수행할 수도 있다. I 슬라이스에서는, 모든 PU 들이 인트라 예측된다. 이에 따라, PU 가 I 슬라이스인 경우, 움직임 추정 유닛 (122) 및 움직임 보상 유닛 (124) 은 PU 에 대해 인터 예측을 수행하지 않는다.
PU 가 P 슬라이스 내에 있는 경우, PU 를 포함하는 화상은 "리스트 0" 이라고 지칭되는 참조 화상들의 리스트와 연관되어 있다. 일부 예들에서, 리스트 0 에서 리스트된 각각의 참조 화상은 화상 이전에 디스플레이 순서로 발생시킨다. 리스트 0 내의 참조 화상들의 각각은 다른 화상들의 인터 예측을 위해 이용될 수도 있다. 움직임 추정 유닛 (122) 은 P 슬라이스 내의 PU 에 대한 참조 블록을 위하여 리스트 0 내의 참조 화상들을 검색할 수도 있다. PU 의 참조 블록은 PU 의 화소 블록에 가장 밀접하게 대응하는 화소 블록일 수도 있다. 움직임 추정 유닛 (122) 은 참조 화상 내의 화소 블록이 PU 의 화소 블록에 얼마나 밀접하게 대응하는지를 결정하기 위하여 다양한 메트릭들을 이용할 수도 있다. 예를 들어, 움직임 추정 유닛 (122) 은 절대 차이의 합 (sum of absolute difference; SAD), 제곱 차이의 합 (sum of square difference; SSD), 또는 다른 차이 메트릭들에 의해 참조 화상 내의 화소 블록이 PU 의 화소 블록에 얼마나 밀접하게 대응하는지를 결정할 수도 있다.
움직임 추정 유닛 (122) 은 P 슬라이스 내의 PU 의 참조 블록을 포함하는 리스트 0 내의 참조 화상을 표시하는 참조 화상 인덱스와, PU 와 참조 블록 사이의 공간적인 변위를 표시하는 움직임 벡터를 발생시킬 수도 있다. 움직임 추정 유닛 (122) 은 변동하는 정밀도들로 움직임 벡터들을 발생시킬 수도 있다. 예를 들어, 움직임 추정 유닛 (122) 은 1/4 화소 정밀도, 1/8 화소 정밀도, 또는 다른 분수 화소 정밀도로 움직임 벡터들을 발생시킬 수도 있다. 분수 화소 정밀도의 경우, 참조 블록 값들은 참조 화상 내의 정수-위치 화소 값들로부터 보간될 수도 있다. 움직임 추정 유닛 (122) 은 참조 화상 인덱스 및 움직임 벡터를 PU 의 움직임 정보로서 출력할 수도 있다. 움직임 보상 유닛 (124) 은 PU 의 움직임 정보와 연관된 참조 블록에 기초하여 PU 의 예측 샘플 블록들을 발생시킬 수도 있다.
PU 가 B 슬라이스 내에 있는 경우, PU 를 포함하는 화상은 "리스트 0" 및 "리스트 1" 이라고 지칭되는, 참조 화상들의 2 개의 리스트들과 연관될 수도 있다. 일부 예들에서, 리스트 1 에서 리스트된 각각의 참조 화상은 현재의 화상 이후에 디스플레이 순서로 발생시킨다. 또한, PU 가 B 슬라이스 내에 있는 경우, 움직임 추정 유닛 (122) 은 PU 에 대한 단방향 인터 예측 또는 양방향 인터 예측을 수행할 수도 있다. PU 에 대한 단방향 인터 예측을 수행하기 위하여, 움직임 추정 유닛 (122) 은 PU 에 대한 참조 블록을 위하여 리스트 0 또는 리스트 1 의 참조 화상들을 검색할 수도 있다. 움직임 추정 유닛 (122) 은 참조 블록을 포함하는 참조 화상의 리스트 0 또는 리스트 1 내의 위치를 표시하는 참조 화상 인덱스와, PU 와 참조 블록 사이의 공간적인 변위를 표시하는 움직임 벡터를 발생시킬 수도 있다.
PU 에 대한 양방향 인터 예측을 수행하기 위하여, 움직임 추정 유닛 (122) 은 PU 에 대한 참조 블록을 위하여 리스트 0 내의 참조 화상들을 검색할 수도 있고, PU 에 대한 또 다른 참조 화상을 위하여 리스트 1 내의 참조 화상들을 또한 검색할 수도 있다. 움직임 추정 유닛 (122) 은 참조 블록들을 포함하는 참조 화상들의 리스트 0 및 리스트 1 내의 위치들을 표시하는 참조 화상 인덱스들을 발생시킬 수도 있다. 추가적으로, 움직임 추정 유닛 (122) 은 참조 블록들과 PU 사이의 공간적인 변위들을 표시하는 움직임 벡터들을 발생시킬 수도 있다. PU 의 움직임 정보는 PU 의 움직임 벡터들 및 참조 화상 인덱스들을 포함할 수도 있다. 움직임 보상 유닛 (124) 은 PU 의 움직임 정보에 의해 표시된 참조 블록들에 기초하여 PU 의 예측 샘플 블록들을 발생시킬 수도 있다.
CU 에 대해 인코딩 동작을 수행하는 것의 일부로서, 인트라-예측 프로세싱 유닛 (126) 은 CU 의 PU 들에 대해 인트라 예측을 수행할 수도 있다. 인트라 예측은 공간적인 압축을 제공할 수도 있다. 인트라-예측 프로세싱 유닛 (126) 은 PU 와 동일한 화상 내의 디코딩된 샘플들에 기초하여 PU 에 대한 예측 데이터를 발생시킬 수도 있다. PU 에 대한 예측 데이터는 PU 에 대한 예측 샘플 블록들과 다양한 신택스 엘리먼트들을 포함할 수도 있다. 인트라-예측 프로세싱 유닛 (126) 은 I 슬라이스들, P 슬라이스들, 및 B 슬라이스들 내의 PU 들에 대해 인트라 예측을 수행할 수도 있다.
PU 에 대해 인트라 예측을 수행하기 위하여, 인트라-예측 프로세싱 유닛 (126) 은 PU 에 대한 예측 데이터의 다수의 세트들을 발생시키기 위하여 다수의 인트라 예측 모드들을 이용할 수도 있다. PU 에 대한 예측 데이터의 세트를 발생시키기 위하여 인트라 예측 모드를 이용하기 위해서는, 인트라-예측 프로세싱 유닛 (126) 이 인트라 예측 모드와 연관된 방향 및/또는 경도에서 PU 의 샘플 블록들을 가로질러 인접한 PU 들의 샘플 블록들로부터 샘플들을 확장할 수도 있다. 인접한 PU 들은 PU 들, CU 들, 및 트리 블록들에 대한 좌측에서 우측, 상부에서 하부 인코딩 순서를 가정하면, PU 의 상부, 우상측, 좌상측, 또는 좌측에 있을 수도 있다. 인트라-예측 프로세싱 유닛 (126) 은 다양한 수들의 인트라 예측 모드들, 예를 들어, 33 방향 인트라 예측 모드들을 이용할 수도 있다. 일부 예들에서, 인트라 예측 모드들의 수는 PU 의 크기에 의존할 수도 있다.
예측 프로세싱 유닛 (100) 은 PU 들에 대한 인터-예측 프로세싱 유닛 (121) 에 의해 발생된 예측 데이터 중으로부터의 CU 의 PU 들에 대한 예측 데이터, 또는 PU 들에 대한 인트라-예측 프로세싱 유닛 (126) 에 의해 발생된 예측 데이터를 선택할 수도 있다. 일부 예들에서, 예측 프로세싱 유닛 (100) 은 예측 데이터의 세트들의 레이트/왜곡 메트릭들에 기초하여 CU 의 PU 들에 대한 예측 데이터를 선택한다.
예측 프로세싱 유닛 (100) 은 CU 의 잔차 화소 블록을 서브-블록들로 구획하기 위하여 쿼드-트리 구획을 수행할 수도 있다. 각각의 분할되지 않은 잔차 화소 블록은 CU 의 상이한 TU 와 연관될 수도 있다. CU 의 TU 들과 연관된 잔차 화소 블록들의 크기들 및 위치들은 CU 의 PU 들의 화소 블록들의 크기들 및 위치들에 기초할 수도 있거나 기초하지 않을 수도 있다. "잔차 쿼드-트리" (residual quad-tree; RQT) 라고 알려진 쿼드-트리 구조는 잔차 화소 블록들의 각각과 연관된 노드들을 포함할 수도 있다. CU 의 TU 들은 RQT 의 리프 노드 (leaf node) 들에 대응할 수도 있다.
TU 들의 잔차 화소 블록들의 화소들이 Y, Cb, 및 Cr 샘플들을 포함하므로, TU 들의 각각은 Y 샘플들의 샘플 블록, Cb 샘플들의 샘플 블록, 및 Cr 샘플들의 샘플 블록과 연관될 수도 있다. 잔차 발생 유닛 (102) 은 CU 의 PU 들의 예측 샘플 블록들을 CU 의 샘플 블록들의 대응하는 샘플들로부터 감산함으로써 CU 에 대한 잔차 샘플 블록들을 발생시킬 수도 있다.
변환 프로세싱 유닛 (104) 은 하나 이상의 변환들을 TU 와 연관된 잔차 샘플 블록들에 적용함으로써 CU 의 각각의 TU 에 대한 계수 블록들을 발생시킬 수도 있다. 계수 블록들의 각각은 계수들의 2D 행렬일 수도 있다. 변환 프로세싱 유닛 (104) 은 다양한 변환들을 TU 와 연관된 잔차 샘플 블록에 적용할 수도 있다. 예를 들어, 변환 프로세싱 유닛 (104) 은 이산 코사인 변환 (discrete cosine transform; DCT), 방향성 변환, 또는 개념적으로 유사한 변환을 TU 와 연관된 잔차 샘플 블록에 적용할 수도 있다.
양자화 유닛 (106) 은 TU 와 연관된 계수 블록 내의 계수들을 양자화할 수도 있다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 깊이를 감소시킬 수도 있다. 예를 들어, n-비트 계수는 양자화 동안에 m-비트 계수로 버림 (rounded down) 될 수도 있고, n 은 m 보다 더 크다. 양자화 유닛 (106) 은 CU 와 연관된 양자화 파라미터 (QP) 값에 기초하여 CU 의 TU 와 연관된 계수 블록을 양자화할 수도 있다. 비디오 인코더 (20) 는 CU 와 연관된 QP 값을 조절함으로써 CU 와 연관된 계수 블록들에 적용되는 양자화도를 조절할 수도 있다.
비디오 인코더 (20) 는 QP 값을 CU 와 다양한 방식들로 연관시킬 수도 있다. 예를 들어, 비디오 인코더 (20) 는 CU 와 연관된 트리 블록에 대해 레이트-왜곡 분석을 수행할 수도 있다. 레이트-왜곡 분석에서, 비디오 인코더 (20) 는 상이한 QP 값들로 트리 블록을 다수 회 인코딩함으로써 트리 블록의 다수의 코딩된 표현들을 발생시킬 수도 있다. 비디오 인코더 (20) 는, 특정한 QP 값이 최저 비트레이트 및 왜곡 메트릭을 가지는 트리 블록의 코딩된 표현으로 CU 와 연관되어 있을 때, 특정한 QP 값이 CU 와 연관되어 있다는 것을 시그널링할 수도 있다.
역양자화 유닛 (108) 및 역변환 프로세싱 유닛 (110) 은 계수 블록으로부터 잔차 샘플 블록을 재구성하기 위하여 역양자화 및 역변환들을 계수 블록에 각각 적용할 수도 있다. 재구성 유닛 (112) 은 TU 와 연관되는 재구성된 샘플 블록을 생성하기 위하여, 재구성된 잔차 샘플 블록을 예측 프로세싱 유닛 (100) 에 의해 발생된 하나 이상의 예측 샘플 블록들로부터의 대응하는 샘플들에 추가할 수도 있다. CU 의 각각의 TU 에 대한 샘플 블록들을 이러한 방식으로 재구성함으로써, 비디오 인코더 (20) 는 CU 의 샘플 블록들을 재구성할 수도 있다.
필터 유닛 (113) 은 CU 와 연관된 샘플 블록들 내의 블록킹 아티팩트 (blocking artifact) 들을 감소시키기 위하여 디블록킹 동작 (deblocking operation) 을 수행할 수도 있다. 필터 유닛 (113) 이 재구성된 샘플 블록들에 대해 하나 이상의 디블록킹 동작들을 수행한 후, 디코딩된 화상 버퍼 (114) 는 재구성된 샘플 블록들을 저장할 수도 있다. 움직임 추정 유닛 (122) 및 움직임 보상 유닛 (124) 은 후속 화상들의 PU 들에 대해 인터 예측을 수행하기 위하여 재구성된 샘플 블록들을 포함하는 참조 화상을 이용할 수도 있다. 추가적으로, 인트라-예측 프로세싱 유닛 (126) 은 CU 와 동일한 화상 내의 다른 PU 들에 대해 인트라 예측을 수행하기 위하여 디코딩된 화상 버퍼 (114) 내의 재구성된 샘플 블록들을 이용할 수도 있다.
엔트로피 인코딩 유닛 (116) 은 비디오 인코더 (20) 의 다른 기능적 컴포넌트들로부터 데이터를 수신할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (116) 은 양자화 유닛 (106) 으로부터 계수 블록들을 수신할 수도 있고, 예측 프로세싱 유닛 (100) 으로부터 신택스 엘리먼트들을 수신할 수도 있다. 엔트로피 인코딩 유닛 (116) 은 엔트로피-인코딩된 데이터를 발생시키기 위한 데이터에 대해 하나 이상의 엔트로피 인코딩 동작들을 수행할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 그 데이터에 대해 컨텍스트 적응 가변 길이 코딩 (CAVLC) 동작, CABAC 동작, 가변-대-가변 (variable-to-variable; V2V) 길이 코딩 동작, 신택스-기반 컨텍스트-적응 2 진 산술 코딩 (syntax-based context-adaptive binary arithmetic coding; SBAC) 동작, 확률 간격 구획 엔트로피 (Probability Interval Partitioning Entropy; PIPE) 코딩 동작, 지수-골롬 코딩, 또는 또 다른 유형의 엔트로피 인코딩 동작을 수행할 수도 있다. 엔트로피 인코딩 유닛 (116) 은 엔트로피-인코딩된 데이터를 포함하는 비트스트림을 출력할 수도 있다.
데이터에 대해 엔트로피 인코딩 동작을 수행하는 것의 일부로서, 엔트로피 인코딩 유닛 (116) 은 컨텍스트 모델을 선택할 수도 있다. 엔트로피 인코딩 유닛 (116) 이 CABAC 동작을 수행하고 있는 경우, 컨텍스트 모델은 특정한 값들을 갖는 특정한 빈들의 확률들의 추정치들을 표시할 수도 있다. CABAC 의 컨텍스트에서, 용어 "빈" 은 신택스 엘리먼트의 2 진화된 버전의 비트를 지칭하기 위해 이용될 수도 있다.
위에서 논의된 바와 같이, 비디오 인코더 (20) 는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 발생시킬 수도 있다. 비디오 데이터의 인코딩된 표현은 복수의 NAL 유닛들을 포함할 수도 있다. NAL 유닛들은 슬라이스들의 코딩된 표현들을 포함하는 코딩된 슬라이스 NAL 유닛들을 포함할 수도 있다. 슬라이스가 다수의 화상 구획들 (예를 들어, 엔트로피 슬라이스들, 타일들, 또는 WPP 웨이브들) 과 연관된 트리 블록들을 포함할 수도 있으므로, 코딩된 슬라이스 NAL 유닛은 다수의 인코딩된 화상 구획들을 포함할 수도 있다. 위에서 표시된 바와 같이, 인코딩된 화상 구획은 단일 화상 구획과 연관되는 코딩된 슬라이스 NAL 유닛 내의 코딩된 트리 블록들의 그룹일 수도 있다.
코딩된 슬라이스 NAL 유닛들의 각각은 슬라이스 헤더 및 슬라이스 데이터를 포함할 수도 있다. 코딩된 슬라이스 NAL 유닛의 슬라이스 데이터는 슬라이스 내의 각각의 트리 블록의 코딩된 표현을 포함할 수도 있다. 일부 사례들에서, 슬라이스의 트리 블록들은 상이한 화상 구획들과 연관될 수도 있다. 따라서, 단일 코딩된 슬라이스 NAL 유닛의 슬라이스 데이터는 다수의 화상 구획들과 연관된 인코딩된 트리 블록들을 포함할 수도 있다. 위에서 표시된 바와 같이, 용어들 "인코딩된 화상 구획" 및 "코딩된 서브-슬라이스" 는 단일 화상 구획과 연관되는 코딩된 슬라이스 NAL 유닛 내의 코딩된 트리 블록들의 그룹을 지칭하기 위해 이용될 수도 있다.
비디오 디코더 (30) 는 다수의 인코딩된 화상 구획들을 병렬로 파싱 또는 디코딩하도록 구성될 수도 있다. 다수의 인코딩된 화상 구획들의 동시 파싱 또는 디코딩을 용이하게 하기 위하여, 인코딩된 화상 구획들의 각각은 바이트-정렬될 수도 있다. 즉, 인코딩된 화상 구획의 최초 비트는 메모리 내의 어드레싱가능한 바이트의 최초 비트이고, 인코딩된 화상 구획의 최종 비트는 메모리 내의 어드레싱가능한 바이트의 최종 비트이다.
코딩된 슬라이스 NAL 유닛의 슬라이스 데이터 내의 인코딩된 화상 구획들이 바이트-정렬되어 있음을 보장하기 위하여, 코딩된 슬라이스 NAL 유닛의 슬라이스 헤더는 본 개시물의 기술들에 따라 바이트 경계에서 종결될 수도 있다. 일부 사례들에서, 슬라이스 헤더의 시작 및 끝의 둘 모두는 바이트 정렬될 수도 있다. 예를 들어, 비디오 인코더 (20) 는 다수의 인코딩된 바이트-정렬된 엔트로피 슬라이스들, 타일들, 또는 WPP 웨이브들 (즉, 인코딩된 화상 구획들) 내의 트리 블록들을 포함하는 슬라이스들에 대한 바이트-정렬된 슬라이스 헤더들을 갖는 코딩된 슬라이스 NAL 유닛들을 발생시킬 수도 있다.
일부 예들에서, 비디오 인코더 (20) 는 SPS, PPS, 또는 APS 와 같은 파라미터 세트 내의 플래그 (예를 들어, slice_header_byte_aligned_flag) 를 포함할 수도 있다. 플래그가 1 과 동일한 경우, 파라미터 세트를 지칭하는 각각의 코딩된 슬라이스 NAL 유닛의 슬라이스 헤더들은 바이트 정렬된다. 이러한 예들에서, 플래그가 0 과 동일한 경우, 파라미터 세트를 지칭하는 각각의 코딩된 슬라이스 NAL 유닛의 슬라이스 헤더들은 바이트 정렬될 수도 있거나 정렬되지 않을 수도 있다. 다른 예들에서, 플래그의 시맨틱 (semantic) 들은 예약될 수도 있다. 다른 예들에서, 코딩된 슬라이스 NAL 유닛들의 슬라이스 헤더들은 항상 바이트-정렬된다. 이것은 상기 언급된 플래그가 존재하지 않으며 플래그의 값이 1 과 동일한 것으로 항상 추론되는 것과 동등할 수도 있다.
이러한 방식으로, 비디오 인코더 (20) 는 파라미터 세트를 포함하는 NAL 유닛을 발생시킬 수도 있고 비디오 디코더 (30) 는 이를 수신할 수도 있다. 상이한 예들에서, 파라미터 세트는 SPS, PPS, 또는 APS 일 수도 있다. 파라미터 세트는 파라미터 세트를 지칭하는 슬라이스 헤더들이 바이트 정렬되어 있는지를 표시하는 신택스 엘리먼트를 포함할 수도 있다.
비디오 인코더 (20) 가 바이트-정렬된 슬라이스 헤더들을 발생시키는 예들에서, 슬라이스 헤더들은 다양한 신택스들을 준수할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 이하의 표 1 에 표시된 일 예의 신택스를 준수하는 슬라이스 헤더들을 발생시킬 수도 있다.
표 1 : 슬라이스 헤더 신택스
Figure pct00001
설명의 용이함을 위하여, 기존의 신택스 엘리먼트들은 표 1 의 일 예의 신택스로부터 생략된다. 표 1 의 일 예의 신택스에서, bit_equal_to_one 신택스 엘리먼트는 1 과 동일한 값을 가지는 비트이다. byte_aligned() 함수는 슬라이스 헤더가 바이트 정렬되어 있는지를 표시하는 값을 반환할 수도 있다.
또한, 본 개시물의 기술들에 따르면, 비트스트림은 코딩된 슬라이스 NAL 유닛들에서 인코딩된 화상 구획들의 진입 포인트들을 표시하는 하나 이상의 SEI 메시지들을 포함할 수도 있다. 설명의 용이함을 위하여, 본 개시물은 코딩된 슬라이스 NAL 유닛에서 인코딩된 화상 구획들의 진입 포인트들을 표시하는 SEI 메시지를 "진입 포인트 SEI 메시지" 라고 지칭할 수도 있다.
일부 예들에서, SEI 메시지들은 SEI 메시지들의 페이로드 유형들을 특정하는 payloadType 신택스 엘리먼트들을 포함한다. 이러한 일부 예들에서, 진입 포인트 SEI 메시지들의 payloadType 신택스 엘리먼트는 임의의 다른 유형의 SEI 메시지들의 payloadType 신택스 엘리먼트들과는 별개일 수도 있다. 따라서, 진입 포인트 SEI 메시지는, 진입 포인트 SEI 메시지가 코딩된 슬라이스 NAL 유닛들에서 인코딩된 화상 구획들의 진입 포인트들을 표시하는 일 유형의 SEI 메시지들에 속하는 것으로 표시하는 신택스 엘리먼트를 포함할 수도 있다.
비트스트림은 진입 포인트 SEI 메시지들을 포함하는 SEI NAL 유닛들을 포함할 수도 있다. 일부 예들에서, SEI NAL 유닛 내의 진입 포인트 SEI 메시지는 SEI NAL 유닛을 바로 뒤따르는 코딩된 슬라이스 NAL 유닛에 적용될 수도 있다. 따라서, 비디오 디코더 (30) 는 복수의 인코딩된 화상 구획들을 포함하는 NAL 유닛을 비트스트림에 있어서 바로 선행하는 SEI NAL 유닛에 적어도 부분적으로 기초하여, SEI 메시지가 복수의 인코딩된 화상 구획들을 포함하는 NAL 유닛에 적용가능하다고 결정할 수도 있다. 설명의 용이함을 위하여, SEI 메시지가 적용되는 코딩된 슬라이스 NAL 유닛은 본 개시물에서 진입 포인트 SEI 메시지의 코딩된 슬라이스 NAL 유닛이라고 지칭될 수도 있다.
일부 예들에서, SEI 메시지들은 SEI 메시지들이 적용가능한 유닛을 표시하는 레벨들과 연관되어 있다. 진입 포인트 SEI 메시지들은 진입 포인트 SEI 메시지들을 포함하는 SEI NAL 유닛들을 뒤따르는 코딩된 슬라이스 NAL 유닛들에 적용가능할 수도 있다. 대안적으로, 진입 포인트 SEI 메시지들은 진입 포인트 SEI 메시지들을 포함하는 SEI NAL 유닛들을 뒤따르는 코딩된 슬라이스 NAL 유닛들 내에 포함된 코딩된 슬라이스들에 적용가능할 수도 있다. 따라서, 진입 포인트 SEI 메시지들은 NAL 유닛-레벨 SEI 메시지들 또는 슬라이스-레벨 SEI 메시지들일 수도 있다.
또한, 일부 예들에서, 코딩된 슬라이스 NAL 유닛이 화상의 제 1 비디오 코딩 계층 (video coding layer; VCL) NAL 유닛인 경우, 코딩된 슬라이스 NAL 유닛에 적용가능한 진입 포인트 SEI 메시지를 포함하는 SEI NAL 유닛은 10 과 동일한 NAL 유닛 유형을 가질 수도 있다. 이와 다르게, 코딩된 슬라이스 NAL 유닛이 화상의 제 1 VCL NAL 유닛이 아닌 경우, 코딩된 슬라이스 NAL 유닛에 적용가능한 진입 포인트 SEI 메시지를 포함하는 SEI NAL 유닛은 11 과 동일한 NAL 유닛 유형을 가질 수도 있다. "VCL NAL 유닛" 은 VCL NAL 유닛들로서 분류되는 nal_unit_type 의 예약된 값들을 가지는 NAL 유닛들의 서브세트 및 코딩된 슬라이스 NAL 유닛들에 대한 집합적 용어이다. VCL NAL 유닛들이 아닌 NAL 유닛들의 유형들은 비-VCL NAL 유닛들이라고 지칭될 수도 있다. 비-VCL NAL 유닛들의 일 예의 유형들은 SPS NAL 유닛들, PPS NAL 유닛들, SEI NAL 유닛들, 등등을 포함한다. nal_unit_type 은 NAL 유닛의 NAL 유닛 유형을 특정하는 NAL 유닛의 헤더 내의 신택스 엘리먼트이다.
비디오 인코더 (20) 는 다양한 신택스들을 가지는 진입 포인트 SEI 메시지들을 발생시킬 수도 있다. 예를 들어, 비디오 인코더 (20) 는 이하의 표 2 에 예시된 신택스를 가지는 진입 포인트 SEI 메시지들을 발생시킬 수도 있다.
표 2 : 진입 포인트 SEI 메시지들의 신택스
Figure pct00002
표 2 의 일 예의 신택스에서, offset_len_minus10 신택스 엘리먼트, 플러스 10 은 substream_offset[i] 신택스 엘리먼트의 비트들에서의 길이를 특정한다. 이러한 방식으로, 오프셋 신택스 엘리먼트들 각각의 길이들은 offset_len_minus10 신택스 엘리먼트 플러스 10 의 값과 동일하다. 또한, 표 2 의 일 예의 신택스에서, num_offsets_minus1 신택스 엘리먼트 플러스 1 은 진입 포인트 SEI 메시지 내의 substream_offset[i] 신택스 엘리먼트들의 수를 특정한다.
표 2 의 일 예의 신택스에서, substream_offset[i] 신택스 엘리먼트는 바이트들에 있어서 i 번째 오프셋을 특정한다. 진입 포인트 SEI 메시지의 코딩된 슬라이스 NAL 유닛은 num_offsets_minus1 플러스 2 의 인코딩된 화상 구획들로 구성될 수도 있고, 인코딩된 화상 구획 인덱스 값들은 0, 1, 2, ..., num_offsets_minus1 + 1 이다. 인코딩된 화상 구획 0 은 진입 포인트 SEI 메시지의 코딩된 슬라이스 NAL 유닛의 바이트들 0 내지 substream_offset[0] - 1 까지로 구성될 수도 있다. k 가 1 내지 num_offsets_minus1 + 1 까지의 범위인 인코딩된 화상 구획 k 는 진입 포인트 SEI 메시지의 코딩된 슬라이스 NAL 유닛의 바이트들 substream_offset[k - 1] 내지 substream_offset[k] - 1 까지로 구성될 수도 있다.
이러한 방식으로, 비디오 인코더 (20) 는 오프셋 신택스 엘리먼트들의 비트들에서의 길이들이 결정가능한 신택스 엘리먼트를 시그널링할 수도 있다. 추가적으로, 비디오 인코더 (20) 는 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수가 결정가능한 신택스 엘리먼트를 시그널링할 수도 있다. 또한, 비디오 인코더 (20) 는 일련의 오프셋 신택스 엘리먼트들을 시그널링할 수도 있고, 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들이 NAL 유닛 내에서의 인코딩된 화상 구획들의 바이트 오프셋들을 표시한다. 마찬가지로, 비디오 디코더 (30) 는 일련의 오프셋 신택스 엘리먼트들의 비트들에서의 길이를 특정하는 신택스 엘리먼트를 비트스트림에서 수신할 수도 있다. 비디오 디코더 (30) 는 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수를 특정하는 신택스 엘리먼트를 비트스트림에서 또한 수신할 수도 있다. 추가적으로, 비디오 디코더 (30) 는 일련의 오프셋 신택스 엘리먼트들을 비트스트림에서 수신할 수도 있고, 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들은 NAL 유닛 내에서 인코딩된 화상 구획들의 바이트 오프셋들을 표시한다.
표 2 의 일 예의 신택스 이외의 일부 예의 신택스들에서, substream_offset[i] 의 길이는 1, 2, 3, 및 4 바이트들 중의 하나이다. substream_offset[i] 의 길이는 1, 2, 3, 및 4 바이트들의 길이들에 각각 대응하는 0, 1, 2, 또는 3 과 동일한 값을 가지는 신택스 엘리먼트에 의해 표시될 수도 있다. 이러한 예들에서, 이 신택스 엘리먼트는 표 2 의 offset_len_minus10 신택스 엘리먼트를 대체할 수도 있다. 또한, 진입 포인트 SEI 메시지들에 대한 다양한 다른 예의 신택스들에서는, 표 2 의 offset_len_minus10 신택스 엘리먼트가 offset_len_minus8 신택스 엘리먼트로 대체되고, substream_offset[i] 신택스 엘리먼트들에 대한 최소 길이는 8 비트들이다.
위에서 설명된 바와 같이, 화상 구획들 (예를 들어, 엔트로피 슬라이스들, 코딩된 타일들 또는 파면 웨이브들) 을 가로지르는 화상내 예측이 허용될 수도 있다. 따라서, 하나의 인코딩된 화상 구획의 디코딩은 또 다른 인코딩된 화상 구획의 디코딩에 종속적일 수도 있다. 일부 예들에서, 인코딩된 화상 구획들은 상이한 NAL 유닛들에서 캡슐화 (encapsulate) 되고, NAL 유닛들은 상이한 패킷들, 예를 들어, 실시간 전송 프로토콜 (Real-time Transport Protocol; RTP) 패킷들에서 캡슐화된다. 상이한 NAL 유닛들이 종속적인 인코딩된 화상 구획들을 포함할 수도 있으므로, 이 NAL 유닛들 중의 하나의 손실은 비디오 디코더 (30) 가 다른 NAL 유닛들 내의 인코딩된 화상 구획들을 디코딩하는 것을 방지할 수도 있다. 따라서, 하나의 패킷 내에 포함하는 다수의 NAL 유닛들을 포함하는 것이 유익할 수도 있다. 일부 기존의 CODEC 들에서는, 패킷화기 (packetizer) 가 코딩된 슬라이스 NAL 유닛의 NAL 유닛 헤더 내의 정보로부터, 코딩된 슬라이스 NAL 유닛이 인코딩된 화상 구획을 포함하는 것으로 결정할 수 없을 수도 있다. 오히려, 이러한 CODEC 들에서는, 코딩된 슬라이스 NAL 유닛이 인코딩된 화상 구획을 포함하는 것으로 표시하는 정보가 코딩된 슬라이스 NAL 유닛의 슬라이스 헤더 내에 존재하기만 할 수도 있다. 코딩된 슬라이스 NAL 유닛의 슬라이스 헤더는 엔트로피 인코딩된다. 따라서, 코딩된 슬라이스 NAL 유닛이 인코딩된 화상 구획을 포함하는 것으로 결정하는 것은 패킷화기가 코딩된 슬라이스 NAL 유닛의 슬라이스 헤더를 엔트로피 디코딩하는 것을 요구할 수도 있고, 이것은 패킷화기에 복잡성을 추가한다.
패킷화기의 복잡성을 감소시키기 위하여, 화상 구획 경계들을 가로지르는 화상내 예측이 허용되는 단일 인코딩된 화상 구획을 포함하는 NAL 유닛들에 별개의 NAL 유닛 유형이 할당될 수도 있다. 또한, 상이한 NAL 유닛 유형들이 상이한 애플리케이션 범위들을 갖는 정보를 포함하는 SEI NAL 유닛들에 할당될 수도 있다.
비디오 인코더 (20) 는 NAL 유닛의 유형을 다양한 방식들로 표시할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 NAL 유닛의 유형을 표시하기 위하여 NAL 유닛의 NAL 유닛 헤더 내에 "nal_unit_type" 신택스 엘리먼트를 포함할 수도 있다. 일부 예들에서, "nal_unit_type" 신택스 엘리먼트는 6 비트들일 수도 있다. 이러한 예들에서, "nal_unit_type" 신택스 엘리먼트에 의해 특정된 값은 0 부터 63 까지의 범위일 수도 있다. 본 개시물에서는, 달리 표시되지 않으면, 범위들이 포함하는 것으로 추정된다. 0 과 동일하거나 48 로부터 63 까지의 범위인 "nal_unit_type" 신택스 엘리먼트들을 갖는 NAL 유닛들은 디코딩 프로세스에 영향을 주지 않을 수도 있다. 오히려, 0 과 동일하거나 48 로부터 63 까지의 범위인 "nal_unit_type" 신택스 엘리먼트들을 갖는 NAL 유닛들은 애플리케이션에 의해 결정되는 바와 같이 이용될 수도 있다. 0 과 동일하거나 48 로부터 63 까지의 범위의 "nal_unit_type" 신택스 엘리먼트들을 갖는 NAL 유닛들에 대해서는 디코딩 프로세스가 특정되지 않는다. 상이한 애플리케이션들은 상이한 목적들을 위하여 0 과 동일하거나 48 로부터 63 까지의 범위의 "nal_unit_type" 신택스 엘리먼트들을 갖는 NAL 유닛들을 이용할 수도 있다. 따라서, 상이한 NAL 유닛 유형들은 상이한 애플리케이션 범위들을 갖는 정보를 포함하는 SEI NAL 유닛들에 배정된다. 다른 예들에서, "nal_unit_type" 신택스 엘리먼트는 HEVC WD4 에서와 같이 5 비트들일 수도 있다. "nal_unit_type" 신택스 엘리먼트가 5 비트들인 예들에서, "nal_unit_type" 신택스 엘리먼트들의 값은 0 으로부터 31 까지의 범위일 수도 있다.
이하에 제시된 표 3 은 "nal_unit_type" 신택스 엘리먼트의 값들, NAL 유닛들의 내용 및 NAL 유닛들의 원시 바이트 시퀀스 페이로드 (Raw Byte Sequence Payload; RBSP) 신택스 구조들, 및 NAL 유닛 유형 클래스들 사이의 일 예의 관계를 예시한다.
표 3
Figure pct00003
표 3 의 예에서, 1 내지 6 까지의 범위인 "nal_unit_type" 신택스 엘리먼트들을 갖는 NAL 유닛들은 코딩된 슬라이스 NAL 유닛들이다. NAL 유닛이 특정한 화상의 슬라이스 또는 서브-슬라이스와 연관된 데이터를 포함하고 NAL 유닛이 5 또는 6 과 동일한 "nal_unit_type" 신택스 엘리먼트를 가지는 경우, 1 내지 4 와 동일한 "nal_unit_type" 신택스 엘리먼트들을 갖는 NAL 유닛들은 특정한 화상과 연관된 데이터를 포함할 수도 있다. NAL 유닛이 특정한 화상의 슬라이스 또는 서브-슬라이스와 연관된 데이터를 포함하고 NAL 유닛이 5 또는 6 과 동일한 "nal_unit_type" 신택스 엘리먼트를 가지는 경우, 화상은 순간 디코더 리프레쉬 (Instantaneous Decoder Refresh; IDR) 화상일 수도 있다. 표 3 에 표시된 바와 같이, 코딩된 서브-슬라이스들을 포함하는 NAL 유닛들과, 코딩된 서브-슬라이스들을 포함하지 않는 코딩된 슬라이스 NAL 유닛들은 동일한 신택스를 준수하는 RBSP 들을 포함할 수도 있다.
NAL 유닛이 2, 4, 또는 6 과 동일한 "nal_unit_type" 신택스 엘리먼트를 가지는 경우, NAL 유닛은 서브-슬라이스를 포함한다. 예를 들어, NAL 유닛이 1 과 동일한 "lightweight_slice_flag" 를 가지는 슬라이스 (즉, 경량 슬라이스) 와 연관된 데이터를 포함하는 경우, NAL 유닛은 2, 4, 또는 6 의 값을 갖는 "nal_unit_type" 신택스 엘리먼트를 가질 수도 있다. 설명의 용이함을 위하여, 2, 4, 또는 6 과 동일한 "nal_unit_type" 신택스 엘리먼트들을 갖는 NAL 유닛들은 여기에서 서브-슬라이스 NAL 유닛들이라고 지칭될 수도 있다. 따라서, 코딩된 서브-슬라이스들을 포함하는 NAL 유닛들은 코딩된 서브-슬라이스들을 포함하지 않는 코딩된 슬라이스 NAL 유닛들과는 상이한 NAL 유닛 유형에 속할 수도 있다. 예를 들어, 코딩된 서브-슬라이스들을 포함하는 NAL 유닛들은 코딩된 서브-슬라이스들을 포함하지 않는 코딩된 슬라이스 NAL 유닛들의 유형 신택스 엘리먼트들에 의해 특정된 수와는 상이한 수를 특정하는 유형 신택스 엘리먼트들을 포함할 수도 있다. 디코딩하는 동안, 비디오 디코더 (30) 는 서브-슬라이스 내에서 화상내 예측을 수행하기 위하여 또 다른 슬라이스 또는 서브-슬라이스로부터의 데이터를 요구할 수도 있다.
NAL 유닛이 10 또는 11 과 동일한 "nal_unit_type" 신택스 엘리먼트를 가지는 경우, NAL 유닛은 SEI NAL 유닛이다. 10 과 동일한 "nal_unit_type" 신택스 엘리먼트를 갖는 SEI NAL 유닛은 하나 이상의 전체 코딩된 화상들에 적용가능한 SEI 메시지를 포함할 수도 있다. 10 과 동일한 "nal_unit_type" 신택스 엘리먼트를 갖는 SEI NAL 유닛은 코딩된 화상의 최초 VCL NAL 유닛에 선행할 수도 있다.
11 과 동일한 "nal_unit_type" 신택스 엘리먼트를 갖는 SEI NAL 유닛은 여기에서 서브-화상 SEI NAL 유닛이라고 지칭될 수도 있다. 서브-화상 SEI NAL 유닛은 코딩된 화상의 하나 이상의 연속 VCL NAL 유닛들의 리스트에 적용가능한 SEI 메시지를 포함할 수도 있다. 리스트는 코딩된 화상의 모든 VCL NAL 유닛들의 진정한 서브세트를 포함할 수도 있고, 코딩된 화상의 최초 VCL NAL 유닛을 포함하지 않는다. 서브-화상 SEI NAL 유닛은 서브-화상 SEI NAL 유닛 내에 포함된 SEI 메시지들이 적용되는 VCL NAL 유닛들의 리스트의 최초 VCL NAL 유닛에 선행할 수도 있다.
다른 예들에서, "nal_unit_type" 신택스 엘리먼트의 값들은 표 3 에 표시된 것들과는 상이한 의미들을 가질 수도 있다. 예를 들어, 다른 예들에서, 인트라 슬라이스들 (즉, I 슬라이스들) 및 인터 슬라이스들 (즉, P 슬라이스들 및 B 슬라이스들) 은 상이한 NAL 유닛 유형들을 가질 수도 있다. 다시 말해서, I 슬라이스들에 대한 "nal_unit_type" 신택스 엘리먼트의 제 1 값과, P 슬라이스들 및 B 슬라이스들에 대한 "nal_unit_type" 신택스 엘리먼트의 제 2 값이 있을 수도 있다. 또 다른 예들에서, I 슬라이스들에 대한 "nal_unit_type" 신택스 엘리먼트의 제 1 값, P 슬라이스들에 대한 "nal_unit_type" 신택스 엘리먼트의 제 2 값, 및 B 슬라이스들에 대한 "nal_unit_type" 신택스 엘리먼트의 제 3 값이 있을 수도 있다. 또 다른 예들에서, 짧은 슬라이스들 (즉, 1 과 동일한 "lightweight_slice_header" 신택스 엘리먼트를 갖는 슬라이스들) 을 나타내는 데이터를 포함하는 NAL 유닛들과, 전체 슬라이스들 (즉, 0 과 동일한 "lightweight_slice_header" 신택스 엘리먼트를 갖는 슬라이스들) 을 나타내는 데이터를 포함하는 NAL 유닛들에 대한 "nal_unit_type" 신택스 엘리먼트의 상이한 값들이 있을 수도 있다.
표 3 에 대안적인 또 다른 예에서, SEI 메시지들은 레벨들로 카테고리화될 수도 있다. 레벨들의 각각은 "nal_unit_type" 신택스 엘리먼트의 상이한 값과 연관될 수도 있다. SEI 메시지들의 레벨들은 다음을 포함할 수도 있다:
1) 시퀀스-레벨: 하나 이상의 전체 코딩된 비디오 시퀀스들에 적용가능함.
2) 서브-시퀀스 레벨: 하나의 코딩된 화상보다 많지만 하나의 코딩된 비디오 시퀀스보다 적은 것에 적용가능함.
3) 화상-레벨: 하나의 액세스 유닛 내의 모든 VCL NAL 유닛들에 적용가능함.
4) 서브-화상-레벨: 액세스 유닛 내의 모든 VCL NAL 유닛들의 진정한 서브세트에 적용가능함. 예를 들어, 서브-화상 레벨에서의 SEI 메시지들은 관심 대상의 어떤 영역을 커버하는 VCL NAL 유닛들, H.264/AVC 표준의 Annex G 에서 정의된 바와 같은 계층 표현의 VCL NAL 유닛, H.264/AVC 표준의 Annex H 에서 정의된 바와 같은 뷰 컴포넌트의 VCL NAL 유닛들, 또는 H.264/AVC 표준에 의해 정의된 바와 같은 중복적인 코딩된 화상의 VCL NAL 유닛들에 적용가능할 수도 있다.
비트스트림은 일련의 액세스 유닛들로 분할될 수도 있다. 액세스 유닛들의 각각은 하나의 코딩된 화상 및 0 이상의 비-VCL NAL 유닛들을 포함할 수도 있다. 비트스트림의 최초 액세스 유닛은 비트스트림의 최초 NAL 유닛과 함께 시작한다. 코딩된 화상의 최종 VCL NAL 유닛 이후의 다음의 NAL 유닛들 중 임의의 것의 최초의 것은 새로운 액세스 유닛의 시작을 특정할 수도 있다.
● 액세스 유닛 구분자 NAL 유닛 (존재할 때).
● 시퀀스 파라미터 세트 NAL 유닛 (존재할 때).
● 화상 파라미터 세트 NAL 유닛 (존재할 때).
● 적응 파라미터 세트 NAL 유닛 (존재할 때).
● 10 과 동일한 "nal_unit_type" 을 갖는 SEI NAL 유닛 (존재할 때).
● 14 내지 29 까지의 범위인 "nal_unit_type" 을 갖는 NAL 유닛들 (존재할 때).
● 코딩된 화상의 최초 VCL NAL 유닛 (항상 존재함).
비디오 인코더 (20) 및 비디오 디코더 (30) 는 액세스 유닛 내에서 코딩된 화상들 및 비-VCL NAL 유닛들의 순서에 대하여 다음의 제약들을 따를 수도 있다:
● 액세스 유닛 구분자 NAL 유닛이 존재할 때, 액세스 유닛 구분자 NAL 은 최초 NAL 유닛이다. 임의의 액세스 유닛에서는 오직 하나의 액세스 유닛 구분자 NAL 유닛이 있을 수도 있다.
● SEI NAL 유닛이 10 과 동일한 "nal_unit_type" 신택스 엘리먼트를 가질 때, SEI NAL 유닛은 코딩된 화상의 최초 VCL NAL 유닛에 선행한다.
● SEI NAL 유닛이 11 과 동일한 "nal_unit_type" 신택스 엘리먼트를 가질 때, SEI NAL 유닛은 코딩된 화상의 최초 VCL NAL 유닛을 뒤따르고, SEI NAL 유닛이 적용되는 최초 VCL NAL 유닛에 선행한다. 따라서, SEI NAL 유닛은 코딩된 화상의 최종 VCL NAL 유닛에 선행한다.
● SEI NAL 유닛이 버퍼링 기간 SEI 메시지를 포함할 때, SEI NAL 유닛은 10 과 동일한 "nal_unit_type" 신택스 엘리먼트를 가질 수도 있고, 버퍼링 기간 SEI 메시지는 액세스 유닛에서 최초 SEI NAL 유닛의 최초 SEI 메시지 페이로드이다.
● 0, 11, 13 과 동일하거나 30 내지 63 까지의 범위인 "nal_unit_type" 신택스 엘리먼트들을 갖는 NAL 유닛들은 코딩된 화상의 최초 VCL NAL 유닛에 선행하지 않는다.
SPS NAL 유닛들, PPS NAL 유닛들, 또는 APS NAL 유닛들은 액세스 유닛에서 존재할 수도 있지만, 액세스 유닛 내에서 1 차 코딩된 화상의 최종 VCL NAL 유닛을 뒤따르지 않을 수도 있다.
이러한 방식으로, 비디오 인코더 (20) 는 비디오 데이터를 인코딩하는 방법을 구현할 수도 있다. 상기 방법은 복수의 NAL 유닛들을 발생시키는 것을 포함할 수도 있다. 상기 방법은 NAL 유닛들의 NAL 유닛 유형들에 기초하여 코딩된 서브-슬라이스들을 포함하는 NAL 유닛들의 서브세트를 식별하는 것을 또한 포함할 수도 있다. 추가적으로, 상기 방법은 NAL 유닛들의 서브세트를 포함하는 패킷을 발생시키는 것을 포함할 수도 있다. 유사하게, 비디오 디코더 (30) 는 다수의 NAL 유닛들을 포함하는 패킷을 수신하는 것을 포함하는 비디오 데이터를 디코딩하는 방법을 구현할 수도 있고, NAL 유닛들의 각각은 코딩된 서브-슬라이스들을 포함하고, NAL 유닛들의 각각은 NAL 유닛들이 코딩된 서브-슬라이스들 (즉, 인코딩된 화상 구획들) 을 포함하는 NAL 유닛들의 유형에 속한다는 것으로 표시하는 유형 표시자를 포함한다. 비디오 데이터를 디코딩하는 방법은 서브-슬라이스들을 디코딩하는 것을 또한 포함할 수도 있다.
다른 예들에서, 비디오 인코더 (20) 는 다수의 서브-슬라이스들과 연관된 데이터를 포함하는 단일 NAL 유닛을 발생시킬 수도 있다. 예를 들어, 비디오 인코더 (20) 는 다수의 경량 슬라이스들과 연관된 데이터를 포함하는 단일 코딩된 슬라이스 NAL 유닛을 발생시킬 수도 있다. 이러한 예들에서, NAL 유닛 내의 경량 슬라이스들은 바이트 정렬될 수도 있고, 비디오 인코더 (20) 는 최초의 서브-슬라이스들과 연관된 데이터를 제외한, 서브-슬라이스들의 각각과 연관된 데이터의 바이트 오프셋들을 시그널링할 수도 있다. 비디오 디코더 (30) 는 서브-슬라이스들의 상이한 것들을 디코딩을 위한 상이한 프로세싱 코어들에 할당하기 위하여 바이트 오프셋들을 이용할 수도 있다. 이러한 방식으로, 비디오 디코더 (30) 는 서브-슬라이스들과 연관된 데이터를 병렬로 디코딩할 수도 있다. 그러나, 비디오 디코더 (30) 가 서브-슬라이스들을 병렬로 디코딩하지 않는 경우, 비디오 디코더 (30) 는 바이트 오프셋들을 무시할 수도 있다. 결과적으로, 비디오 디코더 (30) 가 서브-슬라이스들을 병렬로 디코딩하지 않는 경우, 바이트 오프셋들을 전송하는 것이 비효율적일 수도 있다.
일부 예들에서, 타일들은 점진적 디코딩 리프레쉬 (gradual decoding refresh; GDR) 를 실현하기 위하여 이용될 수도 있다. 예를 들어, 비디오 인코더 (20) 는 화상들의 시퀀스 내의 각각의 화상을 타일들로 동일한 방식으로 구획할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 화상들의 각각을 8 개의 타일들로 구획하기 위하여 동일한 9 개의 수직 타일 경계들을 이용할 수도 있다. 이 예에서, 최좌측 타일은 타일 0 일 수도 있고, 좌측으로부터 두 번째 타일은 타일 1 일 수도 있는 등등과 같다. 화상들의 각각은 적어도 하나의 P 슬라이스를 포함한다. 결과적으로, 시퀀스 내의 각각의 화상의 적어도 부분은 적어도 하나의 다른 화상에 종속적이다. 시퀀스의 제 1 화상 (즉, 화상 0) 에서는, 타일 0 내의 모든 트리 블록들이 인트라-코딩되고, 제 1 화상의 모든 나머지 타일들 내의 트리 블록들은 인터-코딩된다. 시퀀스의 제 2 화상 (즉, 화상 1) 에서는, 타일 1 내의 모든 트리 블록들이 인트라-코딩되고, 제 2 화상의 모든 나머지 타일들 내의 트리 블록들은 인터-코딩된다. 이 패턴은 시퀀스 내의 화상들을 통해 계속될 수도 있다. 다시 말해서, 화상들의 시퀀스의 화상 N 에서, 0 내지 시퀀스 내의 화상들의 수 마이너스 1 까지의 범위인 임의의 값 N 에 대하여, 타일 N/8 내의 모든 트리 블록들은 인트라-코딩되고, 모든 다른 타일들 내의 트리 블록들은 인터 코딩된다. 이전의 문장에서, "/" 는 모듈러 제산 (modular division) (즉, 모듈로 연산자) 을 표시한다. N/8 이 0 과 동일한 인덱스 값 N 을 갖는 각각의 화상은, 디코딩이 화상으로부터 시작할 경우, 다음의 7 개의 화상들을 제외한 모든 화상들이 완전히 디코딩될 수 있다는 의미에서, 랜덤 액세스 포인트 (random access point) 로서 이용될 수 있다. 다른 예들에서, 다른 수들의 타일들이 이용될 수도 있다. 예를 들어, 비디오 인코더 (20) 는 화상당 2 개의 타일들만을 갖는 GDR 을 구현할 수도 있다.
랜덤 액세스는 임의의 코딩된 화상으로부터, 특히 비디오 비트스트림 내의 최초 코딩된 화상이 아닌 코딩된 화상으로부터 시작하는 코딩된 비디오 비트스트림의 디코딩을 지칭한다. 디코딩이 picP 로부터 시작할 때, 디코딩 순서 및 출력 순서 둘 모두에 있어서 코딩된 화상 picQ 를 뒤따르는 모든 코딩된 화상들이 올바르게 디코딩될 수 있을 경우, 코딩된 화상 picP 는 랜덤 액세스 포인트 (RAP) 이다. picQ 는 picP 와 동일할 수도 있고 동일하지 않을 수도 있다. RAP 은 IDR 화상 또는 비-IDR 화상일 수도 있다. 디코딩 순서에 있어서 IDR 화상을 뒤따르는 모든 코딩된 화상들은 디코딩 순서에 있어서 IDR 화상에 선행하는 임의의 화상으로부터의 인터 예측 없이 디코딩될 수 있다. 비-IDR 화상은 IDR 화상이 아닌 임의의 화상이다.
비-IDR 랜덤 액세스 포인트는 다음의 조건들이 참 (true) 인 코딩된 화상이다:
● 비-IDR 랜덤 액세스 포인트 (picR) 는 IDR 화상이 아니다.
● picR 의 화상 순서 카운트 (picture order count; POC) 를 rPoc 라고 하고, picA 를 디코딩 순서 및 출력 순서 둘 모두에 있어서 동일한 코딩된 비디오 시퀀스 내의 picR 을 뒤따르는 화상이라고 하고, picA 의 POC 를 aPoc 라고 한다. 랜덤 액세스가 picR 에서 수행될 때 (즉, 디코딩이 picR 로부터 시작할 때), 동일한 코딩된 비디오 시퀀스 내에 있으며 출력 순서에 있어서 화상 picA 를 뒤따르는 모든 화상들이 올바르게 디코딩될 수 있다.
랜덤 액세스가 비-IDR RAP 에서 수행될 때, 비-IDR RAP 와 동일한 코딩된 비디오 시퀀스 내에 있으며 출력 순서에 있어서 비-IDR RAP 를 뒤따르는 모든 화상들이 올바르게 디코딩될 수 있을 경우, 비-IDR RAP 는 클린 랜덤 액세스 (clean random access; CRA) 화상이다. 이것이 참이 아닐 경우, 비-IDR RAP 는 점진적 디코딩 리프레쉬 (GDR) 화상이라고 지칭될 수도 있다.
GDR 시퀀스 내의 각각의 화상은 그 자신의 PPS 를 가질 수도 있다. PPS 들의 각각은 타일 경계들을 특정한다. 다시 말해서, 타일 경계들을 표시하는 신택스 엘리먼트들은 GDR 시퀀스 상의 각각의 화상에 대한 PPS 들에서 복제될 수도 있다. 이것은 비트들의 낭비일 수도 있고, 대역내 PPS 업데이트들에 대한 필요성을 부과할 수도 있으며, 이것은 에러 복원 문제들을 부과할 수도 있다.
일부 예들에서, 비디오 인코더 (20) 는 화상들이 2 개의 타일들만을 포함할 경우에 변화하는 타일 경계를 가능하게 할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 화상들의 시퀀스 내의 각각의 화상을 한 쌍의 타일들로 구획할 수도 있다. 이 사례에서, 비디오 인코더 (20) 는 화상 경계에 있지 않은 단일의 수직 또는 수평 타일 경계를 갖는 화상들에 대해서만 변화하는 타일 경계를 가능하게 할 수도 있다. 타일 경계는 화상으로부터 화상으로 이동할 수도 있다. 예를 들어, 타일 경계가 수직인 경우, 타일 경계는 좌측으로부터 우측으로, 또는 우측으로부터 좌측으로 이동할 수도 있다. 타일 경계가 수평인 경우, 타일 경계는 상부를 향해 또는 하부를 향해 이동할 수도 있다.
타일 경계의 이동은 다양한 방식들로 시그널링될 수도 있다. 예를 들어, 비디오 인코더 (20) 는 시퀀스 내에서의 화상으로부터 화상으로의 타일 경계의 이동을 표시하는 하나 이상의 신택스 엘리먼트를 발생시킬 수도 있다. 이러한 신택스 엘리먼트들은 다양한 신택스 구조들 내에 위치될 수도 있다. 예를 들어, 비디오 인코더 (20) 는 타일 경계의 이동 및 위치를 표시하는 신택스 엘리먼트들의 적어도 일부를 포함하는 파라미터 세트를 발생시킬 수도 있다. 이 예에서, 파라미터 세트는 SPS, PPS, APS 또는 또 다른 유형의 파라미터 세트일 수도 있다. 이러한 일부 예들에서, 타일 경계의 이동 및 위치는 SPS 및/또는 PPS 내의 신택스 엘리먼트들과 조합하여 표시될 수도 있다. 다른 예들에서, 타일 경계의 이동 및 위치는 APS 또는 슬라이스 헤더 내의 하나 이상의 신택스 엘리먼트들에 의해서만 표시된다. 다른 예들에서, 비디오 인코더 (20) 는 타일 경계의 이동 및 위치를 표시하는 하나 이상의 신택스 엘리먼트들을 포함하는 슬라이스 헤더를 발생시킬 수도 있다.
또 다른 예에서, SPS 및 슬라이스 헤더 내의 신택스 엘리먼트들은 타일 경계의 이동 및 위치를 표시한다. 이 예에서, 표 4 는 SPS RBSP 에 대한 신택스를 제공한다. 표 5 는 슬라이스 헤더에 대한 신택스를 제공한다. 이와 함께, 표 4 의 SPS RBSP 및 표 5 의 슬라이스 헤더 내의 신택스 엘리먼트들은 타일 경계의 이동을 시그널링한다.
표 4
Figure pct00004
표 5
Figure pct00005
표 4 에서, "dynamic_tile_boundary_flag" 신택스 엘리먼트는 타일 경계가 동적으로 변화할 수도 있는지를 표시한다. 예를 들어, "dynamic_tile_boundary_flag" 신택스 엘리먼트가 1 과 동일한 경우, 타일 경계는 동적으로 변화할 수도 있다. "dynamic_tile_boundary_flag" 신택스 엘리먼트가 0 과 동일한 경우, 타일 경계는 동적으로 변화하지 않는다. "num_tile_columns_minus1" 및 "num_tile_rows_minus1" 신택스 엘리먼트들의 합이 1 과 동일하지 않은 경우, "dynamic_tile_boundary_flag" 신택스 엘리먼트는 1 과 동일하지 않을 수도 있다. "dynamic_tile_boundary_flag" 신택스 엘리먼트가 존재하지 않는 경우, 비디오 디코더 (30) 는 "dynamic_tile_boundary_flag" 신택스 엘리먼트가 0 과 동일한 것으로 추론할 수도 있다. 2 개의 수직 타일들 또는 2 개의 수평 타일들만이 있을 경우에만, "dynamic_tile_boundary_flag" 신택스 엘리먼트가 1 과 동일할 수도 있다.
또한, 표 4 의 "tile_boundary_change_direction_flag" 신택스 엘리먼트는 타일 경계의 이동의 방향을 특정할 수도 있다. 예를 들어, "tile_boundary_change_direction_flag" 신택스 엘리먼트가 0 과 동일하고 타일 경계가 수직인 경우, 타일 경계는 하나의 화상으로부터 다음 화상까지 좌측으로부터 우측으로 이동할 수도 있다. "tile_boundary_change_direction_flag" 신택스 엘리먼트가 1 과 동일하고 타일 경계가 수평인 경우, 타일 경계는 하나의 화상으로부터 다음 화상까지 우측으로부터 좌측으로 이동할 수도 있다. "tile_boundary_change_direction_flag" 신택스 엘리먼트가 0 과 동일하고 타일 경계가 수평인 경우, 타일 경계는 상부로부터 하부로 이동할 수도 있다. "tile_boundary_change_direction_flag" 신택스 엘리먼트가 1 과 동일하고 타일 경계가 수평인 경우, 타일 경계는 하부로부터 상부로 이동할 수도 있다.
표 4 의 "tile_boundary_change_rate_minus1" 신택스 엘리먼트는 타일 경계가 하나의 화상으로부터 다음 화상으로 이동하는 트리 블록 행들 또는 열들의 수를 특정할 수도 있다. 예를 들어, 타일 경계가 수직인 경우, "tile_boundary_change_rate_minus1" 신택스 엘리먼트는 타일 경계가 하나의 화상으로부터 다음 화상으로 이동하는 트리 블록 열들의 수를 표시할 수도 있다. 타일 경계가 수평인 경우, "tile_boundary_change_rate_minus1" 신택스 엘리먼트는 타일 경계가 하나의 화상으로부터 다음 화상으로 이동하는 트리 블록 행들의 수를 표시할 수도 있다. 행들 또는 열들의 수는 "tile_boundary_change_rate_minus1" 신택스 엘리먼트 플러스 1 과 동일할 수도 있다. 예를 들어, 변수 "TileBoundaryChangeRate" 의 값은 "tile_boundary_change_rate_minus1" 신택스 엘리먼트에 1 을 추가함으로써 유도될 수도 있다. 설명의 용이함을 위하여, "tile_boundary_change_rate_minus1" 신택스 엘리먼트는 레이트 신택스 엘리먼트라고 지칭될 수도 있다.
비디오 디코더 (30) 는 타일 경계의 위치를 유도하기 위하여 표 5 의 "tile_boundary_change_cycle" 신택스 엘리먼트를 이용할 수도 있다. 설명의 용이함을 위하여, "tile_boundary_change_cycle" 신택스 엘리먼트는 사이클 신택스 엘리먼트라고 지칭될 수도 있다. 사이클 신택스 엘리먼트는 시퀀스 내의 화상과 연관된 사이클을 표시할 수도 있다. 타일 경계가 수직인 경우, "tile_boundary_change_cycle" 신택스 엘리먼트는 다음의 공식에 의해 표시된 비트들의 수에 의해 표현될 수도 있다:
Ceil( Log2( PicWidthInLcus ÷ TileBoundaryChangeRate + 1 ) )
상기 공식에서, Ceil( ... ) 은 천장 함수 (ceiling function) 이고, Log2( ... ) 는 로그 밑 2 인 함수이고, 그리고 "PicWidthInLcus" 는 LCU 들 (즉, 트리 블록들) 내의 화상의 폭이다. 또한, 타일 경계가 수직인 경우, "tile_boundary_change_cycle" 신택스 엘리먼트의 값은 0 으로부터 다음의 공식에 의해 표시된 값까지의 범위일 수도 있다:
Ceil( PicWidthInLcus ÷ TileBoundaryChangeRate ).
타일 경계가 수평인 경우, "tile_boundary_change_cycle" 엘리먼트는 다음의 공식에 의해 표시된 비트들의 수에 의해 표현될 수도 있다:
Ceil( Log2( PicHeightInLcus ÷ TileBoundaryChangeRate + 1 ) )
상기 공식에서, "PicHeightInLcus" 는 LCU 들 (즉, 트리 블록들) 내의 화상의 높이이다. 또한, 타일 경계가 수평인 경우, "tile_boundary_change_cycle" 신택스 엘리먼트의 값은 0 으로부터 다음의 공식에 의해 표시된 값까지의 범위일 수도 있다:
Ceil( PicHeightInLcus ÷ TileBoundaryChangeRate ).
타일 경계가 수직인 경우 (즉, "num_tile_columns_minus1" 신택스 엘리먼트가 1 과 동일함), 비디오 디코더 (30) 는 타일 경계의 위치를 다음과 같이 유도할 수도 있다. "tile_boundary_change_direction_flag" 신택스 엘리먼트가 0 과 동일한 경우, 좌측 타일의 트리 블록들에서의 폭은 "tile_boundary_change_cycle" * "TileBoundaryChangeRate" 와 동일하다. "TileBoundaryChangeRate" 변수는 "tile_boundary_change_rate_minus1" 신택스 엘리먼트 플러스 1 과 동일하다. 이와 다르게, "tile_boundary_change_direction_flag" 신택스 엘리먼트가 1 과 동일한 경우, 우측 타일의 트리 블록들에서의 폭은 "tile_boundary_change_cycle" * "TileBoundaryChangeRate" 와 동일하다.
타일 경계가 수평인 경우 (즉, "num_tile_rows_minus1" 신택스 엘리먼트가 1 과 동일함), 비디오 디코더 (30) 는 타일 경계의 위치를 다음과 같이 유도할 수도 있다. "tile_boundary_change_direction_flag" 신택스 엘리먼트가 0 과 동일한 경우, 상부 타일의 트리 블록들에서의 높이는 "tile_boundary_change_cycle" * "TileBoundaryChangeRate" 와 동일하다. "tile_boundary_change_direction_flag" 신택스 엘리먼트가 1 과 동일한 경우, 더 하부 타일의 트리 블록들에서의 높이는 "tile_boundary_change_cycle" * "TileBoundaryChangeRate" 와 동일하다.
표 5 에서, 변수 "IdrPicFlag" 는 다음과 같이 특정된다
IdrPicFlag = ( ( nal_unit_type == 5 || nal_unit_type == 6 ) ? 1 : 0 ).
다시 말해서, 슬라이스 헤더를 포함하는 NAL 유닛의 "nal_unit_type" 신택스 엘리먼트가 5 또는 6 의 값을 가지는 경우, 변수 "IdrPicFlag" 는 1 의 값을 가진다.
또 다른 예에서, 표 6 은 화상 파라미터 세트 RBSP 의 일 예의 신택스를 예시한다. 이와 함께, PPS RBSP 의 신택스 엘리먼트들 및 표 5 의 슬라이스 헤더는 타일 경계의 이동 및 위치를 시그널링할 수도 있다.
표 6
Figure pct00006
표 6 의 "dynamic_tile_boundary_flag" 신택스 엘리먼트, "tile_boundary_change_direction_flag" 신택스 엘리먼트, 및 "tile_boundary_change_rate_minus1" 신택스 엘리먼트는 표 4 의 대응하는 엘리먼트들과 동일한 시맨틱들을 가질 수도 있다. 표 4, 표 5, 및 표 6 의 다른 신택스 엘리먼트들은 위에서 언급된 JCTVC 문서 JCTVC-F335 또는 HEVC WD4 에서 정의된 시맨틱들을 가질 수도 있다. 일부 예들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 표 4 의 신택스에 부가하여 또는 이의 대안으로서 표 6 의 신택스를 이용할 수도 있다.
이러한 방식으로, 비디오 인코더 (20) 는 비디오 데이터를 인코딩하는 방법을 수행할 수도 있다. 비디오 데이터를 인코딩하는 방법은 화상들의 시퀀스 내의 각각의 화상을 한 쌍의 타일들로 구획하는 것을 포함할 수도 있고, 타일 경계는 한 쌍의 타일들을 분리한다. 인코딩 방법은 시퀀스 내에서의 화상으로부터 화상으로의 타일 경계의 이동을 표시하는 하나 이상의 신택스 엘리먼트들을 발생시키는 것을 또한 포함할 수도 있다. 마찬가지로, 비디오 디코더 (30) 는 비디오 데이터를 디코딩하는 방법을 수행할 수도 있다. 디코딩 방법은 비디오 데이터의 비트스트림에서 하나 이상의 신택스 엘리먼트들을 수신하는 것을 포함할 수도 있고, 하나 이상의 신택스 엘리먼트들은 화상들의 시퀀스 내에서의 화상으로부터 화상으로의 타일 경계의 이동을 표시한다. 디코딩 방법은 화상들의 각각에 대하여, 신택스 엘리먼트들에 기초하여 타일 경계의 위치를 결정하는 것을 또한 포함할 수도 있다.
도 3 은 본 개시물의 기술들을 구현하도록 구성되는 일 예의 비디오 디코더 (30) 를 예시하는 블록 다이어그램이다. 도 3 은 설명의 목적들을 위해 제공되고, 본 개시물에서 폭넓게 예시화되고 설명된 것과 같은 기술들에 대해 제한하는 것은 아니다. 설명의 목적들을 위하여, 본 개시물은 HEVC 코딩의 상황에서 비디오 디코더 (30) 를 설명한다. 그러나, 본 개시물의 기술들은 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다.
도 3 의 예에서, 비디오 디코더 (30) 는 복수의 기능적 컴포넌트들을 포함한다. 비디오 디코더 (30) 의 기능적 컴포넌트들은 엔트로피 디코딩 유닛 (150), 예측 프로세싱 유닛 (152), 역양자화 유닛 (154), 역변환 프로세싱 유닛 (156), 재구성 유닛 (158), 필터 유닛 (159), 및 디코딩된 화상 버퍼 (160) 를 포함한다. 예측 프로세싱 유닛 (152) 은 움직임 보상 유닛 (162) 및 인트라-예측 프로세싱 유닛 (164) 을 포함한다. 다른 예들에서, 비디오 디코더 (30) 는 더 많거나, 더 적거나, 또는 상이한 기능적 컴포넌트들을 포함할 수도 있다.
비디오 인코더 (30) 는 복수의 신택스 엘리먼트들을 포함하는 비트스트림을 수신할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 비트스트림으로부터 신택스 엘리먼트들을 추출하기 위하여 비트스트림을 파싱할 수도 있다. 비트스트림을 파싱하는 것의 일부로서, 엔트로피 디코딩 유닛 (150) 은 비트스트림 내의 엔트로피-인코딩된 신택스 엘리먼트들을 엔트로피 디코딩할 수도 있다. 예측 프로세싱 유닛 (152), 역양자화 유닛 (154), 역변환 프로세싱 유닛 (156), 재구성 유닛 (158), 및 필터 유닛 (159) 은 비트스트림으로부터 추출된 신택스 엘리먼트들에 기초하여 디코딩된 비디오 데이터를 발생시킬 수도 있다.
비트스트림은 일련의 NAL 유닛들을 포함할 수도 있다. 비트스트림의 NAL 유닛들은 SPS NAL 유닛들, PPS NAL 유닛들, SEI NAL 유닛들, 등을 포함할 수도 있다. 비트스트림을 파싱하는 것의 일부로서, 엔트로피 디코딩 유닛 (150) 은 SPS NAL 유닛들로부터 SPS 들, PPS NAL 유닛들로부터 PSS 들, SEI NAL 유닛들로부터 SEI 메시지들, 등등을 추출하여 이를 엔트로피 디코딩할 수도 있다.
추가적으로, 비트스트림의 NAL 유닛들은 코딩된 슬라이스 NAL 유닛들을 포함할 수도 있다. 비트스트림을 파싱하는 것의 일부로서, 엔트로피 디코딩 유닛 (150) 은 코딩된 슬라이스 NAL 유닛들로부터 코딩된 슬라이스들을 추출하여 엔트로피 디코딩할 수도 있다. 코딩된 슬라이스들의 각각은 슬라이스 헤더 및 슬라이스 데이터를 포함할 수도 있다. 슬라이스 헤더는 슬라이스에 속하는 신택스 엘리먼트들을 포함할 수도 있다. 슬라이스 헤더 내의 신택스 엘리먼트들은 슬라이스를 포함하는 화상과 연관된 PPS 를 식별하는 신택스 엘리먼트들을 포함할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 슬라이스 헤더를 복구하기 위하여 코딩된 슬라이스 헤더 내의 신택스 엘리먼트들에 대해 CABAC 디코딩 동작과 같은 엔트로피 디코딩 동작들을 수행할 수도 있다.
코딩된 슬라이스 NAL 유닛들로부터 슬라이스 데이터를 추출하는 것의 일부로서, 엔트로피 디코딩 유닛 (150) 은 슬라이스 데이터 내의 코딩된 CU 들로부터 신택스 엘리먼트들을 추출할 수도 있다. 추출된 신택스 엘리먼트들은 계수 블록들과 연관된 신택스 엘리먼트들을 포함할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 신택스 엘리먼트들 중의 일부에 대해 CABAC 디코딩 동작들을 수행할 수도 있다.
신택스 엘리먼트에 대해 CABAC 디코딩을 수행하는 것의 일부로서, 엔트로피 디코딩 유닛 (150) 은 코딩 컨텍스트를 식별할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 간격을 하부 서브-간격 및 상부 서브-간격으로 분할할 수도 있다. 서브-간격들 중의 하나는 값 0 과 연관될 수도 있고, 다른 서브-간격은 값 1 과 연관될 수도 있다. 서브-간격들의 폭들은 식별된 코딩 컨텍스트에 의해 연관된 값들에 대해 표시된 확률들에 비례할 수도 있다. 인코딩된 값이 하부 서브-간격 내에 있을 경우, 엔트로피 디코딩 유닛 (150) 은 하부 서브-간격과 연관된 값을 갖는 빈을 디코딩할 수도 있다. 인코딩된 값이 상부 서브-간격 내에 있을 경우, 엔트로피 디코딩 유닛 (150) 은 상부 서브-간격과 연관된 값을 갖는 빈을 디코딩할 수도 있다. 신택스 엘리먼트의 다음 빈을 디코딩하기 위하여, 엔트로피 디코딩 유닛 (150) 은 이 단계들을 반복할 수도 있고 간격은 인코딩된 값을 포함하는 서브-간격일 수도 있다. 엔트로피 디코딩 유닛 (150) 이 다음 빈에 대해 이 단계들을 반복할 때, 엔트로피 디코딩 유닛 (150) 은 식별된 코딩 컨텍스트 및 디코딩된 빈들에 의해 표시된 확률들에 기초하여 수정된 확률들을 이용할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 신택스 엘리먼트를 복구하기 위하여 빈들을 비-2 진화 (de-binarize) 할 수도 있다.
추가적으로, 비디오 디코더 (30) 는 비-구획된 CU 에 대해 재구성 동작을 수행할 수도 있다. 비-구획된 CU 에 대해 재구성 동작을 수행하기 위하여, 비디오 디코더 (30) 는 CU 의 각각의 TU 에 대해 재구성 동작을 수행할 수도 있다. CU 의 각각의 TU 에 대한 재구성 동작을 수행함으로써, 비디오 디코더 (30) 는 CU 와 연관된 잔차 화소 블록을 재구성할 수도 있다.
CU 의 TU 에 대해 재구성 동작을 수행하는 것의 일부로서, 역양자화 유닛 (154) 은 TU 와 연관된 계수 블록들을 역양자화, 즉, 탈-양자화 (de-quantize) 할 수도 있다. 역양자화 유닛 (154) 은 양자화도와, 마찬가지로, 역양자화 유닛 (154) 이 적용하기 위한 역양자화도를 결정하기 위하여 TU 의 CU 와 연관된 QP 값을 이용할 수도 있다.
역양자화 유닛 (154) 이 계수 블록을 역양자화한 후, 역변환 프로세싱 유닛 (156) 은 TU 와 연관된 잔차 샘플 블록을 발생시키기 위하여 하나 이상의 역변환들을 계수 블록에 적용할 수도 있다. 예를 들어, 역변환 프로세싱 유닛 (156) 은 역 DCT, 역정수 변환, 역 카루넨루베 변환 (Karhunen-Loeve transform; KLT), 역회전 변환, 역방향성 변환, 또는 또 다른 역변환을 계수 블록에 적용할 수도 있다.
PU 가 스킵 모드 (skip mode) 에서 인코딩되거나 PU 의 움직임 정보가 병합 모드를 이용하여 인코딩되는 경우, 움직임 보상 유닛 (162) 은 PU 에 대한 병합 후보 리스트를 발생시킬 수도 있다. 움직임 보상 유닛 (162) 은 병합 후보 리스트에서 선택된 병합 후보를 식별할 수도 있다. 움직임 보상 유닛 (162) 은 선택된 병합 후보에 의해 표시된 움직임 정보와 연관된 하나 이상의 참조 블록들에 기초하여 PU 에 대한 예측 샘플 블록들을 발생시킬 수도 있다.
PU 의 움직임 정보가 AMVP 모드를 이용하여 인코딩되는 경우, 움직임 보상 유닛 (162) 은 리스트 0 MV 예측자 후보 리스트 및/또는 리스ㅌ 1 MV 예측자 후보 리스트를 발생시킬 수도 있다. 움직임 보상 유닛 (162) 은 선택된 리스트 0 MV 예측자 후보 및/또는 선택된 리스트 1 MV 예측자 후보를 결정할 수도 있다. 다음으로, 움직임 보상 유닛 (162) 은 리스트 0 움직임 벡터 차이 (MVD), 리스트 1 MVD, 선택된 리스트 0 MV 예측자 후보에 의해 특정된 리스트 0 움직임 벡터, 및/또는 선택된 리스트 1 MV 예측자 후보에 의해 특정된 리스트 1 움직임 벡터에 기초하여 PU 에 대한 리스트 0 움직임 벡터 및/또는 PU 에 대한 리스트 1 움직임 벡터를 결정할 수도 있다. 움직임 보상 유닛 (162) 은 리스트 0 움직임 벡터 및 리스트 0 참조 화상 인덱스 및/또는 리스트 1 움직임 벡터 및 리스트 1 참조 화상 인덱스와 연관된 참조 블록들에 기초하여 PU 에 대한 예측 샘플 블록들을 발생시킬 수도 있다.
일부 예들에서, 움직임 보상 유닛 (162) 은 보간 필터들에 기초하여 보간을 수행함으로써 PU 의 예측 샘플 블록들을 세분화 (refine) 할 수도 있다. 서브-화소 정밀도를 갖는 움직임 보상에 대해 이용될 보간 필터들에 대한 식별자들은 신택스 엘리먼트들 내에 포함될 수도 있다. 움직임 보상 유닛 (162) 은 참조 블록의 정수 미만 샘플들에 대한 보간된 값들을 계산하기 위하여 PU 의 예측 샘플 블록들의 발생 동안에 비디오 인코더 (20) 에 의해 이용되는 동일한 보간 필터들을 이용할 수도 있다. 움직임 보상 유닛 (162) 은 수신된 신택스 정보에 따라 비디오 인코더 (20) 에 의해 이용되는 보간 필터들을 결정할 수도 있고, 예측 샘플 블록들을 생성하기 위하여 보간 필터들을 이용할 수도 있다.
PU 가 인트라 예측을 이용하여 코딩되는 경우, 인트라-예측 프로세싱 유닛 (164) 은 PU 에 대한 예측 샘플 블록들을 발생시키기 위하여 인트라 예측을 수행할 수도 있다. 예를 들어, 인트라-예측 프로세싱 유닛 (164) 은 비트스트림 내의 신택스 엘리먼트들에 기초하여 PU 에 대한 인트라 예측 모드를 결정할 수도 있다. 인트라-예측 프로세싱 유닛 (164) 은 공간적으로 인접한 PU 들의 샘플 블록들에 기초하여 PU 에 대한 예측 데이터 (예를 들어, 예측 샘플들) 를 발생시키기 위하여 인트라 예측 모드를 이용할 수도 있다.
재구성 유닛 (158) 은 CU 의 샘플 블록들을 재구성하기 위하여, CU 의 TU 들과 연관된 잔차 샘플 블록들 및 CU 의 PU 들의 예측 샘플 블록들, 즉, 적용가능하다면, 인트라-예측 데이터 또는 인터-예측 데이터 중의 어느 하나를 이용할 수도 있다. 특히, 재구성 유닛 (158) 은 CU 의 샘플 블록들을 재구성하기 위하여 잔차 샘플 블록들의 샘플들을 예측 샘플 블록들의 대응하는 샘플들에 추가할 수도 있다.
필터 유닛 (159) 은 CU 와 연관된 블록킹 아티팩트들을 감소시키기 위하여 디블록킹 동작을 수행할 수도 있다. 비디오 디코더 (30) 는 CU 의 샘플 블록들을 디코딩된 화상 버퍼 (160) 에 저장할 수도 있다. 디코딩된 화상 버퍼 (160) 는 후속 움직임 보상, 인트라 예측, 및 도 1 의 디스플레이 디바이스 (32) 와 같은 디스플레이 디바이스 상에서의 프리젠테이션 (presentation) 을 위하여 참조 화상들을 제공할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 디코딩된 화상 버퍼 (160) 내의 샘플 블록들에 기초하여, 다른 CU 들의 PU 들에 대해 인트라 예측 또는 인터 예측 동작들을 수행할 수도 있다.
도 4 는 본 개시물의 하나 이상의 기술들에 따른, 비디오 디코더 (20) 의 일 예의 동작 (200) 을 예시하는 순서도이다. 도 4 의 예에서, 비디오 인코더 (20) 는 비디오 데이터의 슬라이스의 화상 구획들 (예를 들어, 타일들, 웨이브들, 엔트로피 슬라이스들, 등) 을 인코딩할 수도 있다 (202). 슬라이스는 다수의 코딩 유닛들을 포함할 수도 있다. 화상 구획을 인코딩함으로써, 비디오 인코더 (20) 는 인코딩된 화상 구획을 발생시킨다. 비디오 인코더 (20) 는 슬라이스의 인코딩된 화상 구획들을 포함하는 코딩된 슬라이스 NAL 유닛을 발생시킬 수도 있다 (204).
추가적으로, 비디오 인코더 (20) 는 코딩된 화상 구획들의 진입 포인트들을 표시하는 SEI 메시지를 발생시킬 수도 있다 (206). 즉, SEI 메시지는 코딩된 화상 구획들의 코딩된 슬라이스 NAL 유닛에서의 위치들을 표시할 수도 있다. SEI 메시지는 위에서 설명된 포맷을 가질 수도 있다. 예를 들어, 비디오 인코더 (20) 는 SEI 메시지를 포함하는 SEI NAL 유닛을 발생시킬 수도 있다.
비디오 인코더 (20) 는 코딩된 슬라이스 NAL 유닛 및 SEI 메시지를 포함하는 비트스트림을 출력할 수도 있다 (208). 비트스트림은 비디오 데이터의 인코딩된 표현을 포함한다. 비디오 인코더 (20) 는 비트스트림을 다양한 방식들로 출력할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 인터넷과 같은 통신 네트워크 상에서 비트스트림을 송신할 수도 있다. 또 다른 예에서, 비디오 인코더 (20) 는 비트스트림을 하드 디스크 드라이브 또는 메모리와 같은 컴퓨터 판독가능 저장 매체로 출력할 수도 있다.
도 5 는 본 개시물의 하나 이상의 기술들에 따른, 비디오 디코더 (30) 의 일 예의 동작 (250) 을 예시하는 순서도이다. 도 5 의 예에서, 비디오 디코더 (30) 는 복수의 인코딩된 화상 구획들을 포함하는 코딩된 슬라이스 NAL 유닛을 수신할 수도 있다 (252). 추가적으로, 비디오 디코더 (30) 는 코딩된 슬라이스 NAL 유닛에서 인코딩된 화상 구획들의 진입 포인트들을 표시하는 SEI 메시지를 예를 들어, 비-VCL NAL 유닛에서 수신할 수도 있다 (254). 비디오 디코더 (30) 는 코딩된 슬라이스 NAL 유닛 및 SEI 메시지를 다양한 방식들로 수신할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 인터넷과 같은 통신 네트워크를 통해 원격 서버로부터 코딩된 슬라이스 NAL 유닛 및 SEI 메시지를 수신할 수도 있다. 또 다른 예에서, 비디오 디코더 (30) 는 하드 디스크 드라이브 또는 메모리와 같은 컴퓨터 판독가능 저장 매체로부터 코딩된 슬라이스 NAL 유닛 및 SEI 메시지를 수신할 수도 있다.
비디오 디코더 (30) 는 SEI 메시지에서 표시된 진입 포인트들에 적어도 부분적으로 기초하여, 인코딩된 화상 구획들의 코딩된 슬라이스 NAL 유닛에서의 위치들을 결정할 수도 있다 (256). 예를 들어, SEI 메시지는 특정한 인코딩된 화상 구획들이 코딩된 슬라이스 NAL 유닛의 슬라이스 데이터의 256 번째 바이트에서 시작하는 것으로 표시할 수도 있다. 비디오 디코더 (30) 는 인코딩된 화상 구획들을 디코딩할 수도 있다 (258). 일부 예들에서, 비디오 디코더 (30) 는 인코딩된 화상 구획들의 2 개 이상을 병렬로 디코딩할 수도 있다.
비디오 디코더 (30) 는 인코딩된 화상 구획들의 디코딩된 화소 블록들을 출력할 수도 있다 (260). 일부 예들에서, 비디오 디코더 (30) 는 디스플레이 디바이스 (32) 에서의 디스플레이를 위하여 디코딩된 화소 블록들을 출력한다. 또 다른 예에서, 비디오 디코더 (30) 는 디코딩된 화소 블록들을 비디오 인코더로 출력할 수도 있다. 이 예에서, 비디오 인코더는 비디오 트랜스코딩 동작의 일부로서 디코딩된 화소 블록들을 다시 인코딩할 수도 있다.
도 6 은 본 개시물의 하나 이상의 기술들에 따른, 바이트-정렬된 슬라이스 헤더를 가지는 코딩된 슬라이스 NAL 유닛을 발생시키기 위한 비디오 인코더 (20) 의 일 예의 동작 (280) 을 예시하는 순서도이다. 도 6 의 예에서, 비디오 인코더 (20) 는 복수의 인코딩된 화상 구획들을 발생시킬 수도 있다 (282). 인코딩된 화상 구획들의 각각은 비디오 데이터의 화상 내의 CU 들의 상이한 세트와 연관되어 있다. 또한, 비디오 인코더 (20) 는 슬라이스 헤더 및 복수의 인코딩된 화상 구획들을 포함하는 NAL 유닛을 발생시킬 수도 있다 (284). 슬라이스 헤더는 슬라이스 헤더를 바이트 경계에 정렬하는 하나 이상의 패딩 비트들을 포함할 수도 있다.
도 7 은 본 개시물의 하나 이상의 기술들에 따른, 바이트-정렬된 슬라이스 헤더를 발생시키기 위한 비디오 인코더 (20) 의 일 예의 동작 (300) 을 예시하는 순서도이다. 도 7 의 예에서, 비디오 인코더 (20) 는 슬라이스 헤더를 발생시킬 수도 있다 (302). 추가적으로, 비디오 인코더 (20) 는 파라미터 세트 (예를 들어, 시퀀스 파라미터 세트, 화상 파라미터 세트, 적응 파라미터 세트, 등) 내의 신택스 엘리먼트가 슬라이스 헤더가 바이트 경계와 정렬해야 하는 것으로 표시하는지를 결정할 수도 있다 (304).
신택스 엘리먼트가 슬라이스 헤더가 바이트 경계와 정렬해야 하는 것으로 표시하는 경우 (304 의 "예"), 비디오 인코더 (20) 는 슬라이스 헤더가 바이트 경계와 정렬되어 있는지를 결정할 수도 있다 (306). 슬라이스 헤더가 바이트 경계와 정렬되어 있지 않은 경우 (306 의 "아니오"), 비디오 인코더 (20) 는 슬라이스 헤더에 비트를 첨부할 수도 있다 (308). 슬라이스 헤더에 비트를 첨부한 후, 비디오 인코더 (20) 는 슬라이스 헤더가 바이트 경계와 정렬되어 있는지를 다시 결정할 수도 있다 (306). 이러한 방식으로, 비디오 인코더 (20) 는 슬라이스 헤더가 바이트 정렬될 때까지 슬라이스 헤더에 비트들을 첨부하는 것을 계속할 수도 있다.
슬라이스 헤더가 바이트 경계와 정렬되어 있는 경우 (306 의 "예"), 또는 신택스 엘리먼트가 슬라이스 헤더가 바이트 경계와 정렬할 필요가 없는 것으로 표시하는 경우 (304 의 "아니오"), 동작 (300) 이 완료된다.
도 8 은 본 개시물의 하나 이상의 기술들에 따른, 비디오 디코더 (30) 가 바이트-정렬된 슬라이스 헤더를 가지는 코딩된 슬라이스 NAL 유닛을 수신하는 비디오 디코더 (30) 의 일 예의 동작 (330) 을 예시하는 순서도이다. 도 8 의 예에서, 비디오 디코더 (30) 는 NAL 유닛을 수신할 수도 있다 (332). NAL 유닛은 슬라이스 헤더 및 비디오 데이터의 복수의 인코딩된 화상 구획들을 포함할 수도 있다. 슬라이스 헤더는 슬라이스 헤더를 바이트 경계에 정렬하는 하나 이상의 패딩 비트들을 포함할 수도 있다. 비디오 디코더 (30) 는 인코딩된 화상 구획들의 2 개 이상을 병렬로 디코딩할 수도 있다 (334).
도 9 는 파면 병렬 프로세싱을 예시하는 개념적인 다이어그램이다. 위에서 설명된 바와 같이, 화상은 화소 블록들로 구획될 수도 있고, 화소 블록들의 각각은 트리 블록에 연관된다. 도 9 는 트리 블록들과 연관된 화소 블록들을 백색 정사각형의 격자로서 예시한다. 화상은 트리 블록 행들 (350A - 350E) (집합적으로, "트리 블록 행들 (350)") 을 포함한다.
제 1 스레드는 트리 블록 행 (350A) 내의 코딩 트리 블록들일 수도 있다. 동시에, 다른 스레드들은 트리 블록 행들 (350B, 350C, 및 350D) 내의 코딩 트리 블록들일 수도 있다. 도 9 의 예에서, 제 1 스레드는 트리 블록 (352A) 을 현재 코딩하고 있고, 제 2 스레드는 트리 블록 (352B) 을 현재 코딩하고 있고, 제 3 스레드는 트리 블록 (352C) 을 현재 코딩하고 있고, 제 4 스레드는 트리 블록 (352D) 을 현재 코딩하고 있다. 본 개시물은 트리 블록들 (352A, 352B, 352C, 및 352D) 을 집합적으로 "현재의 트리 블록들 (352)" 이라고 지칭할 수도 있다. 바로 상위의 행의 2 개보다 많은 트리 블록들이 코딩된 후, 비디오 코더가 트리 블록 행의 코딩을 시작할 수도 있으므로, 현재의 트리 블록들 (352) 은 2 개의 트리 블록들의 폭들만큼 서로 수평으로 변위되어 있다.
도 9 의 예에서, 스레드들은 현재의 트리 블록들 (352) 내의 CU 들에 대한 인트라 예측 또는 인터 예측을 수행하기 위하여 두꺼운 회색 화살표들에 의해 표시된 트리 블록들로부터의 데이터를 이용할 수도 있다. 스레드들은 CU 들에 대한 인터 예측을 수행하기 위하여 하나 이상의 참조 프레임들로부터의 데이터를 또한 이용할 수도 있다. 주어진 트리 블록을 코딩하기 위하여, 스레드는 이전에 코딩된 트리 블록들과 연관된 정보에 기초하여 하나 이상의 CABAC 컨텍스트들을 선택할 수도 있다. 스레드는 주어진 트리 블록의 최초 CU 와 연관된 신택스 엘리먼트들에 대해 CABAC 코딩을 수행하기 위하여 하나 이상의 CABAC 컨텍스트들을 이용할 수도 있다. 주어진 트리 블록이 행의 최좌측 트리 블록이 아닌 경우, 스레드는 주어진 트리 블록의 좌측의 트리 블록의 최종 CU 와 연관된 정보에 기초하여 하나 이상의 CABAC 컨텍스트들을 선택할 수도 있다. 주어진 트리 블록이 행의 최좌측 트리 블록인 경우, 스레드는 주어진 트리 블록의 상부 및 2 개의 트리 블록들 우측에 있는 트리 블록의 최종 CU 와 연관된 정보에 기초하여 하나 이상의 CABAC 컨텍스트들을 선택할 수도 있다. 스레드들은 현재의 트리 블록들 (352) 의 최초 CU 들에 대한 CABAC 컨텍스트들을 선택하기 위하여 얇은 흑색 화살표들에 의해 표시된 트리 블록들의 최종 CU 들로부터 데이터를 이용할 수도 있다.
도 10 은 다수의 타일들 (402A, 402B, 402C, 402D, 402E, 및 402F; 집합적으로 "타일들 (402)") 로 구획되는 화상 (400) 에 대한 일 예의 트리 블록 코딩 순서를 예시하는 개념적인 다이어그램이다. 화상 (400) 내의 각각의 정사각형 블록은 트리 블록과 연관된 화소 블록을 나타낸다. 두꺼운 점선들은 일 예의 타일 경계들을 표시한다. 상이한 유형들의 교차-사선들은 상이한 슬라이스들에 대응한다.
화소 블록들 내의 수들은 화상 (400) 에 대한 타일 코딩 순서에 있어서 대응하는 트리 블록들 (LCU 들) 의 위치들을 표시한다. 도 10 의 예에서 예시된 바와 같이, 타일 (402A) 내의 트리 블록들은 먼저 코딩되고, 그 다음으로 타일 (402B) 내의 트리 블록들, 그 다음으로 타일 (402C) 내의 트리 블록들, 그 다음으로 타일 (402D) 내의 트리 블록들, 그 다음으로 타일 (402E) 내의 트리 블록들, 그 다음으로 타일 (402F) 내의 트리 블록들이 코딩된다. 각각의 타일들 (402) 내에서, 트리 블록들은 래스터 스캔 순서에 따라 코딩된다.
비디오 인코더는 화상 (400) 에 대한 4 개의 코딩된 슬라이스 NAL 유닛들을 발생시킬 수도 있다. 제 1 코딩된 슬라이스 NAL 유닛은 트리 블록들 1 - 18 의 인코딩된 표현들을 포함할 수도 있다. 제 1 코딩된 슬라이스 NAL 유닛의 슬라이스 데이터는 2 개의 인코딩된 화상 구획들을 포함할 수도 있다. 제 1 인코딩된 화상 구획은 트리 블록들 1 - 9 의 인코딩된 표현들을 포함할 수도 있다. 제 2 인코딩된 화상 구획은 트리 블록들 10 - 18 의 인코딩된 표현들을 포함할 수도 있다. 따라서, 제 1 코딩된 슬라이스 NAL 유닛은 다수의 타일들을 포함하는 슬라이스의 인코딩된 표현을 포함할 수도 있다.
제 2 코딩된 슬라이스 NAL 유닛은 트리 블록들 19 - 22 의 인코딩된 표현들을 포함할 수도 있다. 제 2 코딩된 슬라이스 NAL 유닛의 슬라이스 데이터는 단일 인코딩된 화상 구획을 포함할 수도 있다. 제 3 코딩된 슬라이스 NAL 유닛은 트리 블록들 23 - 27 의 인코딩된 표현들을 포함할 수도 있다. 제 3 코딩된 슬라이스 NAL 유닛의 슬라이스 데이터는 단일의 인코딩된 화상 구획만을 포함할 수도 있다. 따라서, 타일 (402C) 은 다수의 슬라이스들을 포함할 수도 있다. 제 4 코딩된 슬라이스 NAL 유닛은 트리 블록들 28 - 45 의 인코딩된 표현들을 포함할 수도 있다. 제 4 코딩된 슬라이스 NAL 유닛의 슬라이스 데이터는 3 개의 인코딩된 화상 구획들, 타일들 (402D, 402E, 및 402F) 에 대해 각각 하나를 포함할 수도 있다. 따라서, 제 4 코딩된 슬라이스 NAL 유닛은 다수의 타일들을 포함하는 슬라이스의 인코딩된 표현을 포함할 수도 있다.
도 11 은 본 개시물의 하나 이상의 양태들에 따른, NAL 유닛 내에서의 인코딩된 화상 구획들의 오프셋들과 연관된 신택스 엘리먼트들을 나타내는 가변-길이 값들을 포함하는 비트스트림을 발생시키기 위한 비디오 인코더 (20) 의 일 예의 동작 (430) 을 예시하는 순서도이다. 도 11 의 예에서, 비디오 인코더 (20) 는 제 1 신택스 엘리먼트, 제 2 신택스 엘리먼트, 및 일련의 오프셋 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다 (432). 오프셋 신택스 엘리먼트들 각각의 길이들은 제 1 신택스 엘리먼트에 기초하여 결정가능하다. 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수는 제 2 신택스 엘리먼트에 기초하여 결정가능하다. NAL 유닛 내에서의 복수의 인코딩된 화상 구획들의 위치들은 오프셋 신택스 엘리먼트들에 기초하여 결정가능하다. 비디오 인코더 (20) 는 엔트로피-인코딩된 제 1 신택스 엘리먼트를 나타내는 가변-길이 값, 엔트로피-인코딩된 제 2 신택스 엘리먼트를 나타내는 가변-길이 값, 및 오프셋 신택스 엘리먼트들을 나타내는 고정-길이 값들을 포함하는 비트스트림을 발생시킬 수도 있다 (434).
도 12 는 본 개시물의 하나 이상의 양태들에 따른, NAL 유닛 내의 인코딩된 화상 구획들의 오프셋들과 연관된 신택스 엘리먼트들을 나타내는 가변-길이 값들을 포함하는 비트스트림에 의해 표현된 비디오 데이터를 디코딩하기 위한 비디오 디코더의 일 예의 동작 (450) 을 예시하는 순서도이다. 도 12 의 예에서, 비디오 디코더 (30) 는 제 1 신택스 엘리먼트를 나타내는 엔트로피-인코딩된 가변-길이 값, 제 2 신택스 엘리먼트를 나타내는 엔트로피-인코딩된 가변-길이 값, 및 일련의 오프셋 신택스 엘리먼트들을 포함하는 비트스트림을 수신한다 (452). 추가적으로, 비디오 디코더 (30) 는 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 엔트로피 디코딩할 수도 있다 (454). 비디오 디코더 (30) 는 제 1 신택스 엘리먼트에 기초하여 오프셋 신택스 엘리먼트들 각각의 길이들을 결정할 수도 있다 (456). 비디오 디코더 (30) 는 제 2 신택스 엘리먼트에 기초하여 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수를 결정할 수도 있다 (458).
추가적으로, 비디오 디코더 (30) 는 오프셋 신택스 엘리먼트들 각각의 길이들과, 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수에 적어도 부분적으로 기초하여, 오프셋 신택스 엘리먼트들을 파싱할 수도 있다 (460). 일부 예들에서, 비디오 디코더 (30) 가 오프셋 신택스 엘리먼트들을 파싱할 때, 비디오 디코더 (30) 는 오프셋 신택스 엘리먼트들의 각각에 대한 고정-길이 디코딩을 수행한다. 고정-길이 디코딩은 엔트로피 디코딩의 특수한 모드라고 또한 지칭될 수도 있다. 유사하게, 고정-길이 인코딩은 엔트로피 인코딩의 특수한 모드라고 또한 지칭될 수도 있다.
비디오 디코더 (30) 는 오프셋 신택스 엘리먼트들에 기초하여, NAL 유닛 내에서의 복수의 인코딩된 화상 구획들의 위치들을 결정할 수도 있다 (462). 일부 예들에서, NAL 유닛의 슬라이스 헤더는 제 1 신택스 엘리먼트, 제 2 신택스 엘리먼트, 및 일련의 오프셋 신택스 엘리먼트들을 포함한다. 다른 예들에서, SEI 메시지는 제 1 신택스 엘리먼트, 제 2 신택스 엘리먼트, 및 일련의 오프셋 신택스 엘리먼트들을 포함한다. 또한, 비디오 디코더 (30) 는 인코딩된 화상 구획들을 디코딩할 수도 있다 (464).
하나 이상의 예들에서는, 설명된 기능들이 하드웨어, 소프트웨어, 펌웨어, 또는 그 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현될 경우, 기능들은 하나 이상의 명령들 또는 코드로서, 컴퓨터 판독가능 매체 상에 저장 또는 송신될 수도 있고, 하드웨어-기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체들은 데이터 저장 매체들과 같은 실재적인 매체에 대응하는 컴퓨터 판독가능 저장 매체들, 또는 예를 들어, 통신 프로토콜에 따라 하나의 장소로부터 또 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수도 있다. 이러한 방식으로, 컴퓨터 판독가능 매체들은 (1) 비-일시적인 실재적인 컴퓨터 판독가능 저장 매체들, 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체들은 본 개시물에서 설명된 기술들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.
제한이 아닌 예로서, 이러한 컴퓨터 판독가능 저장 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장, 자기 디스크 저장, 또는 다른 자기 저장 디바이스들, 플래쉬 메모리, 또는 명령들 또는 데이터 구조들의 형태로 희망하는 프로그램 코드를 저장하기 위해 이용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속은 컴퓨터 판독가능 매체라고 적절하게 칭해진다. 예를 들어, 동축 케이블, 광섬유 케이블, 트위스트 페어 (twisted pair), 디지털 가입자 회선 (digital subscriber line; DSL), 또는 적외선, 라디오 (radio), 및 마이크로파 (microwave) 와 같은 무선 기술들을 이용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 명령들이 송신되는 경우, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL, 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들은 매체의 정의 내에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체들 및 데이터 저장 매체들은 접속들, 반송파들, 신호들, 또는 다른 일시적인 매체들을 포함하는 것이 아니라, 그 대신에, 비-일시적인, 실재적인 저장 매체들에 관한 것이라는 것을 이해해야 한다. 여기에서 이용된 바와 같은 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 (compact disc; CD), 레이저 디스크 (laser disc), 광학 디스크 (optical disc), 디지털 다기능 디스크 (digital versatile disc; DVD), 플로피 디스크 (floppy disk) 및 블루레이 디스크 (Blu-ray disc) 를 포함하고, 여기서 디스크 (disk) 들은 통상 데이터를 자기적으로 재생하는 반면, 디스크 (disc) 들은 데이터를 레이저들로 광학적으로 재생한다. 상기의 조합들은 컴퓨터 판독가능 매체들의 범위 내에 또한 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서 (digital signal processor; DSP) 들, 범용 마이크로프로세서들, 애플리케이션 특정 집적 회로 (application specific integrated circuit; ASIC) 들, 필드 프로그래밍가능 로직 어레이 (field programmable logic array; FPGA) 들, 또는 다른 등가의 통합된 또는 별개의 로직 회로부와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 따라서, 여기에서 이용된 바와 같은 용어 "프로세서" 는 상기한 구조 중의 임의의 것 또는 여기에서 설명된 기술들의 구현을 위해 적당한 임의의 다른 구조를 지칭할 수도 있다. 또한, 일부 양태들에서는, 여기에서 설명된 기능성이 인코딩 및 디코딩을 위해 구성되거나 조합된 코덱 (codec) 내에 통합되는 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수도 있다. 또한, 기술들은 하나 이상의 회로들 또는 로직 엘리먼트들 내에서 완전히 구현될 수 있다.
본 개시물의 기술들은 무선 핸드셋 (wireless handset), 집적 회로 (integrated circuit; IC) 또는 IC 의 세트 (예를 들어, 칩셋) 를 포함하는 광범위한 디바이스들 또는 장치들 내에 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기술들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위하여 본 개시물에서 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구하지는 않는다. 오히려, 위에서 설명된 바와 같이, 다양한 유닛들은 코덱 하드웨어 유닛 내에 조합될 수도 있거나, 적당한 소프트웨어 및/또는 펌웨어와 함께, 위에서 설명된 바와 같은 하나 이상의 프로세서들을 포함하는 상호작용 하드웨어 유닛들의 집합에 의해 제공될 수도 있다.
다양한 예들이 설명되었다. 이러한 그리고 다른 예들은 다음의 청구항들에 의해 정의된 발명의 범위 내에 있다.

Claims (38)

  1. 비디오 데이터를 인코딩하는 방법으로서,
    제 1 신택스 엘리먼트, 제 2 신택스 엘리먼트, 및 일련의 오프셋 신택스 엘리먼트들을 엔트로피 인코딩하는 단계로서, 상기 오프셋 신택스 엘리먼트들 각각의 길이들은 상기 제 1 신택스 엘리먼트에 기초하여 결정가능하고, 상기 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수는 상기 제 2 신택스 엘리먼트에 기초하여 결정가능하고, 네트워크 추상 계층 (NAL) 유닛 내에서의 복수의 인코딩된 화상 구획들의 위치들은 상기 오프셋 신택스 엘리먼트들에 기초하여 결정가능한, 상기 엔트로피 인코딩하는 단계; 및
    엔트로피-인코딩된 상기 제 1 신택스 엘리먼트를 나타내는 가변-길이 값, 엔트로피-인코딩된 상기 제 2 신택스 엘리먼트를 나타내는 가변-길이 값, 및 상기 오프셋 신택스 엘리먼트들을 나타내는 고정-길이 값들을 포함하는 비트스트림을 발생시키는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 인코딩된 화상 구획들의 각각은 단일 엔트로피 슬라이스, 타일, 또는 파면 병렬 프로세싱 (WPP) 웨이브와 연관되는 상기 NAL 유닛 내에서의 코딩된 트리 블록들의 그룹을 포함하는, 비디오 데이터를 인코딩하는 방법.
  3. 제 1 항에 있어서,
    상기 일련의 오프셋 신택스 엘리먼트들은 상기 NAL 유닛 내에서의 선행하는 인코딩된 화상 구획들에 대한 상기 인코딩된 화상 구획들의 바이트 오프셋들을 표시하는, 비디오 데이터를 인코딩하는 방법.
  4. 제 1 항에 있어서,
    상기 제 1 신택스 엘리먼트, 상기 제 2 신택스 엘리먼트, 및 상기 일련의 오프셋 신택스 엘리먼트들을 포함하는 보충 강화 정보 (SEI) 메시지를 발생시키는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  5. 제 4 항에 있어서,
    상기 SEI 메시지는, 상기 SEI 메시지가, 코딩된 슬라이스 NAL 유닛들에서의 인코딩된 화상 구획들의 진입 포인트들을 표시하는 일 유형의 SEI 메시지에 속하는 것으로 표시하는 신택스 엘리먼트를 포함하는, 비디오 데이터를 인코딩하는 방법.
  6. 제 5 항에 있어서,
    상기 SEI 메시지를 포함하는 SEI NAL 유닛을 발생시키는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  7. 제 1 항에 있어서,
    상기 오프셋 신택스 엘리먼트들 각각의 길이들은 상기 제 1 신택스 엘리먼트 플러스 10 의 값과 동일한, 비디오 데이터를 인코딩하는 방법.
  8. 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스로서,
    상기 하나 이상의 프로세서들은,
    제 1 신택스 엘리먼트, 제 2 신택스 엘리먼트, 및 일련의 오프셋 신택스 엘리먼트들을 엔트로피 인코딩하는 것으로서, 상기 오프셋 신택스 엘리먼트들 각각의 길이들은 상기 제 1 신택스 엘리먼트에 기초하여 결정가능하고, 상기 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수는 상기 제 2 신택스 엘리먼트에 기초하여 결정가능하고, 네트워크 추상 계층 (NAL) 유닛 내에서의 복수의 인코딩된 화상 구획들의 위치들은 상기 오프셋 신택스 엘리먼트들에 기초하여 결정가능한, 상기 엔트로피 인코딩하는 것; 및
    엔트로피-인코딩된 상기 제 1 신택스 엘리먼트를 나타내는 가변-길이 값, 엔트로피-인코딩된 상기 제 2 신택스 엘리먼트를 나타내는 가변-길이 값, 및 상기 오프셋 신택스 엘리먼트들을 나타내는 고정-길이 값들을 포함하는 비트스트림을 발생시키는 것을 수행하도록 구성되는, 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스.
  9. 제 8 항에 있어서,
    상기 인코딩된 화상 구획들의 각각은 단일 엔트로피 슬라이스, 타일, 또는 파면 병렬 프로세싱 (WPP) 웨이브와 연관되는 상기 NAL 유닛 내에서의 코딩된 트리 블록들의 그룹을 포함하는, 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스.
  10. 제 8 항에 있어서,
    상기 일련의 오프셋 신택스 엘리먼트들은 상기 NAL 유닛 내에서의 선행하는 인코딩된 화상 구획들에 대한 상기 인코딩된 화상 구획들의 바이트 오프셋들을 표시하는, 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스.
  11. 제 8 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 제 1 신택스 엘리먼트, 상기 제 2 신택스 엘리먼트, 및 상기 일련의 오프셋 신택스 엘리먼트들을 포함하는 보충 강화 정보 (SEI) 메시지를 발생시키도록 구성되는, 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스.
  12. 제 11 항에 있어서,
    상기 SEI 메시지는, 상기 SEI 메시지가, 코딩된 슬라이스 NAL 유닛들에서의 인코딩된 화상 구획들의 진입 포인트들을 표시하는 일 유형의 SEI 메시지들에 속하는 것으로 표시하는 신택스 엘리먼트를 포함하는, 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스.
  13. 제 8 항에 있어서,
    상기 SEI 메시지를 포함하는 SEI NAL 유닛을 발생시키는 것을 더 포함하는, 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스.
  14. 제 8 항에 있어서,
    상기 오프셋 신택스 엘리먼트들 각각의 길이들은 상기 제 1 신택스 엘리먼트 플러스 10 의 값과 동일한, 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스.
  15. 제 8 항에 있어서,
    상기 컴퓨팅 디바이스는 비디오 인코더를 포함하는, 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스.
  16. 컴퓨팅 디바이스로서,
    제 1 신택스 엘리먼트, 제 2 신택스 엘리먼트, 및 일련의 오프셋 신택스 엘리먼트들을 엔트로피 인코딩하기 위한 수단으로서, 상기 오프셋 신택스 엘리먼트들 각각의 길이들은 상기 제 1 신택스 엘리먼트에 기초하여 결정가능하고, 상기 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수는 상기 제 2 신택스 엘리먼트에 기초하여 결정가능하고, 네트워크 추상 계층 (NAL) 유닛 내에서의 복수의 인코딩된 화상 구획들의 위치들은 상기 오프셋 신택스 엘리먼트들에 기초하여 결정가능한, 상기 엔트로피 인코딩하기 위한 수단; 및
    엔트로피-인코딩된 상기 제 1 신택스 엘리먼트를 나타내는 가변-길이 값, 엔트로피-인코딩된 상기 제 2 신택스 엘리먼트를 나타내는 가변-길이 값, 및 상기 오프셋 신택스 엘리먼트들을 나타내는 고정-길이 값들을 포함하는 비트스트림을 발생시키기 위한 수단을 포함하는, 컴퓨팅 디바이스.
  17. 명령들을 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 컴퓨팅 디바이스의 하나 이상의 프로세서들에 의해 실행되는 경우, 상기 컴퓨팅 디바이스가,
    제 1 신택스 엘리먼트, 제 2 신택스 엘리먼트, 및 일련의 오프셋 신택스 엘리먼트들을 엔트로피 인코딩하는 것으로서, 상기 오프셋 신택스 엘리먼트들 각각의 길이들은 상기 제 1 신택스 엘리먼트에 기초하여 결정가능하고, 상기 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수는 상기 제 2 신택스 엘리먼트에 기초하여 결정가능하고, 네트워크 추상 계층 (NAL) 유닛 내에서의 복수의 인코딩된 화상 구획들의 위치들은 상기 오프셋 신택스 엘리먼트들에 기초하여 결정가능한, 상기 엔트로피 인코딩하는 것; 및
    엔트로피-인코딩된 상기 제 1 신택스 엘리먼트를 나타내는 가변-길이 값, 엔트로피-인코딩된 상기 제 2 신택스 엘리먼트를 나타내는 가변-길이 값, 및 상기 오프셋 신택스 엘리먼트들을 나타내는 고정-길이 값들을 포함하는 비트스트림을 발생시키는 것을 수행하도록 구성하는, 컴퓨터 판독가능 저장 매체.
  18. 비디오 데이터를 디코딩하는 방법으로서,
    제 1 신택스 엘리먼트를 나타내는 엔트로피-인코딩된 가변-길이 값, 제 2 신택스 엘리먼트를 나타내는 엔트로피-인코딩된 가변-길이 값, 및 일련의 고정-길이 오프셋 신택스 엘리먼트들을 포함하는 비트스트림을 수신하는 단계;
    상기 제 1 신택스 엘리먼트 및 상기 제 2 신택스 엘리먼트를 엔트로피 디코딩하는 단계;
    상기 제 1 신택스 엘리먼트에 기초하여, 상기 오프셋 신택스 엘리먼트들 각각의 길이들을 결정하는 단계;
    상기 제 2 신택스 엘리먼트에 기초하여, 상기 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수를 결정하는 단계;
    상기 오프셋 신택스 엘리먼트들 각각의 길이들과, 상기 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수에 적어도 부분적으로 기초하여, 상기 오프셋 신택스 엘리먼트들을 파싱하는 단계;
    상기 오프셋 신택스 엘리먼트들에 기초하여, 네트워크 추상 계층 (NAL) 유닛 내에서의 복수의 인코딩된 화상 구획들의 위치들을 결정하는 단계; 및
    상기 인코딩된 화상 구획들을 디코딩하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  19. 제 18 항에 있어서,
    상기 인코딩된 화상 구획들의 각각은 단일 엔트로피 슬라이스, 타일, 또는 파면 병렬 프로세싱 (WPP) 웨이브와 연관되는 상기 NAL 유닛 내에서의 코딩된 트리 블록들의 그룹을 포함하는, 비디오 데이터를 디코딩하는 방법.
  20. 제 18 항에 있어서,
    상기 일련의 오프셋 신택스 엘리먼트들은 상기 NAL 유닛 내에서의 선행하는 인코딩된 화상 구획들에 대한 상기 인코딩된 화상 구획들의 바이트 오프셋들을 표시하는, 비디오 데이터를 디코딩하는 방법.
  21. 제 18 항에 있어서,
    상기 비트스트림은 상기 제 1 신택스 엘리먼트, 상기 제 2 신택스 엘리먼트, 및 상기 일련의 오프셋 신택스 엘리먼트들을 포함하는 SEI 메시지를 포함하는, 비디오 데이터를 디코딩하는 방법.
  22. 제 21 항에 있어서,
    상기 SEI 메시지는, 상기 SEI 메시지가 코딩된 슬라이스 NAL 유닛들에서 인코딩된 화상 구획들의 진입 포인트들을 표시하는 일 유형의 SEI 메시지들에 속하는 것으로 표시하는 신택스 엘리먼트를 포함하는, 비디오 데이터를 디코딩하는 방법.
  23. 제 18 항에 있어서,
    상기 비트스트림은 상기 SEI 메시지를 포함하는 SEI NAL 유닛을 포함하는, 비디오 데이터를 디코딩하는 방법.
  24. 제 23 항에 있어서,
    상기 SEI NAL 유닛은 상기 비트스트림에서, 상기 복수의 인코딩된 화상 구획들을 포함하는 상기 NAL 유닛에 바로 선행하고;
    상기 방법은, 상기 비트스트림에서, 상기 복수의 인코딩된 화상 구획들을 포함하는 상기 NAL 유닛에 바로 선행하는 상기 SEI NAL 유닛에 적어도 부분적으로 기초하여, 상기 SEI 메시지가 상기 복수의 인코딩된 화상 구획들을 포함하는 상기 NAL 유닛에 적용가능한 것으로 결정하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  25. 제 18 항에 있어서,
    상기 인코딩된 화상 구획들을, 상기 인코딩된 화상 구획들의 병렬 디코딩을 위한 상이한 프로세싱 코어들에 제공하고, 상기 프로세싱 코어들에서 각각의 인코딩된 화상 구획들을 디코딩하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  26. 제 18 항에 있어서,
    상기 오프셋 신택스 엘리먼트들 각각의 길이들은 상기 제 1 신택스 엘리먼트 플러스 10 의 값과 동일한, 비디오 데이터를 디코딩하는 방법.
  27. 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스로서,
    상기 하나 이상의 프로세서들은,
    제 1 신택스 엘리먼트를 나타내는 엔트로피-인코딩된 가변-길이 값, 제 2 신택스 엘리먼트를 나타내는 엔트로피-인코딩된 가변-길이 값, 및 일련의 오프셋 신택스 엘리먼트들을 포함하는 비트스트림을 수신하고;
    상기 제 1 신택스 엘리먼트 및 상기 제 2 신택스 엘리먼트를 엔트로피 디코딩하고;
    상기 제 1 신택스 엘리먼트에 기초하여, 상기 오프셋 신택스 엘리먼트들 각각의 길이들을 결정하고;
    상기 제 2 신택스 엘리먼트에 기초하여, 상기 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수를 결정하고;
    상기 오프셋 신택스 엘리먼트들 각각의 길이들과, 상기 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수에 적어도 부분적으로 기초하여, 상기 오프셋 신택스 엘리먼트들을 파싱하고;
    상기 오프셋 신택스 엘리먼트들에 기초하여, 네트워크 추상 계층 (NAL) 유닛 내에서의 복수의 인코딩된 화상 구획들의 위치들을 결정하고; 그리고
    상기 인코딩된 화상 구획들을 디코딩하도록 구성되는, 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스.
  28. 제 27 항에 있어서,
    상기 인코딩된 화상 구획들의 각각은 단일 엔트로피 슬라이스, 타일, 또는 파면 병렬 프로세싱 (WPP) 웨이브와 연관되는 상기 NAL 유닛 내에서의 코딩된 트리 블록들의 그룹을 포함하는, 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스.
  29. 제 27 항에 있어서,
    상기 일련의 오프셋 신택스 엘리먼트들은 상기 NAL 유닛 내에서의 선행하는 인코딩된 화상 구획들에 대한 상기 인코딩된 화상 구획들의 바이트 오프셋들을 표시하는, 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스.
  30. 제 27 항에 있어서,
    상기 비트스트림은 상기 제 1 신택스 엘리먼트, 상기 제 2 신택스 엘리먼트, 및 상기 일련의 오프셋 신택스 엘리먼트들을 포함하는 보충 강화 정보 (SEI) 메시지를 포함하는, 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스.
  31. 제 30 항에 있어서,
    상기 SEI 메시지는, 상기 SEI 메시지가, 코딩된 슬라이스 NAL 유닛들에서 인코딩된 화상 구획들의 진입 포인트들을 표시하는 일 유형의 SEI 메시지에 속하는 것으로 표시하는 신택스 엘리먼트를 포함하는, 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스.
  32. 제 27 항에 있어서,
    상기 비트스트림은 상기 SEI 메시지를 포함하는 SEI NAL 유닛을 포함하는, 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스.
  33. 제 32 항에 있어서,
    상기 SEI NAL 유닛은 상기 비트스트림에서, 상기 복수의 인코딩된 화상 구획들을 포함하는 상기 NAL 유닛에 바로 선행하고;
    상기 하나 이상의 프로세서들은, 상기 비트스트림에서, 상기 복수의 인코딩된 화상 구획들을 포함하는 상기 NAL 유닛에 바로 선행하는 상기 SEI NAL 유닛에 적어도 부분적으로 기초하여, 상기 SEI 메시지가 상기 복수의 인코딩된 화상 구획들을 포함하는 상기 NAL 유닛에 적용가능한 것으로 결정하도록 구성되는, 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스.
  34. 제 27 항에 있어서,
    상기 하나 이상의 프로세서들은, 상기 인코딩된 화상 구획들을, 상기 인코딩된 화상 구획들의 병렬 디코딩을 위한 상이한 프로세싱 코어들에 제공하도록 구성되는, 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스.
  35. 제 27 항에 있어서,
    상기 컴퓨팅 디바이스는 비디오 디코더를 포함하는, 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스.
  36. 제 27 항에 있어서,
    상기 제 1 신택스 엘리먼트 플러스 10 의 값은 상기 일련의 오프셋 신택스 엘리먼트들의 비트들에서의 길이와 동일한, 하나 이상의 프로세서들을 포함하는 컴퓨팅 디바이스.
  37. 컴퓨팅 디바이스로서,
    제 1 신택스 엘리먼트를 나타내는 엔트로피-인코딩된 가변-길이 값, 제 2 신택스 엘리먼트를 나타내는 엔트로피-인코딩된 가변-길이 값, 및 일련의 오프셋 신택스 엘리먼트들을 포함하는 비트스트림을 수신하기 위한 수단;
    상기 제 1 신택스 엘리먼트 및 상기 제 2 신택스 엘리먼트를 엔트로피 디코딩하기 위한 수단;
    상기 제 1 신택스 엘리먼트에 기초하여, 상기 오프셋 신택스 엘리먼트들 각각의 길이들을 결정하기 위한 수단;
    상기 제 2 신택스 엘리먼트에 기초하여, 상기 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수를 결정하기 위한 수단;
    상기 오프셋 신택스 엘리먼트들 각각의 길이들과, 상기 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수에 적어도 부분적으로 기초하여, 상기 오프셋 신택스 엘리먼트들을 파싱하기 위한 수단;
    상기 오프셋 신택스 엘리먼트들에 기초하여, 네트워크 추상 계층 (NAL) 유닛 내에서의 복수의 인코딩된 화상 구획들의 위치들을 결정하기 위한 수단; 및
    상기 인코딩된 화상 구획들을 디코딩하기 위한 수단을 포함하는, 컴퓨팅 디바이스.
  38. 명령들을 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 컴퓨팅 디바이스의 하나 이상의 프로세서들에 의해 실행되는 경우, 상기 컴퓨팅 디바이스가,
    제 1 신택스 엘리먼트를 나타내는 엔트로피-인코딩된 가변-길이 값, 제 2 신택스 엘리먼트를 나타내는 엔트로피-인코딩된 가변-길이 값, 및 일련의 오프셋 신택스 엘리먼트들을 포함하는 비트스트림을 수신하고;
    상기 제 1 신택스 엘리먼트 및 상기 제 2 신택스 엘리먼트를 엔트로피 디코딩하고;
    상기 제 1 신택스 엘리먼트에 기초하여, 상기 오프셋 신택스 엘리먼트들 각각의 길이들을 결정하고;
    상기 제 2 신택스 엘리먼트에 기초하여, 상기 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수를 결정하고;
    상기 오프셋 신택스 엘리먼트들 각각의 길이들과, 상기 일련의 오프셋 신택스 엘리먼트들에서의 오프셋 신택스 엘리먼트들의 수에 적어도 부분적으로 기초하여, 상기 오프셋 신택스 엘리먼트들을 파싱하고;
    상기 오프셋 신택스 엘리먼트들에 기초하여, 네트워크 추상 계층 (NAL) 유닛 내에서의 복수의 인코딩된 화상 구획들의 위치들을 결정하고; 그리고
    상기 인코딩된 화상 구획들을 디코딩하도록 구성하는, 컴퓨터 판독가능 저장 매체.
KR1020147014849A 2011-11-04 2012-11-02 다수의 인코딩된 화상 구획들을 포함하는 네트워크 추상 계층 유닛들에 의한 비디오 코딩 KR101654441B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201161555932P 2011-11-04 2011-11-04
US61/555,932 2011-11-04
US201161557259P 2011-11-08 2011-11-08
US61/557,259 2011-11-08
US13/666,442 US9124895B2 (en) 2011-11-04 2012-11-01 Video coding with network abstraction layer units that include multiple encoded picture partitions
US13/666,442 2012-11-01
PCT/US2012/063265 WO2013067311A1 (en) 2011-11-04 2012-11-02 Video coding with network abstraction layer units that include multiple encoded picture partitions

Publications (2)

Publication Number Publication Date
KR20140093254A true KR20140093254A (ko) 2014-07-25
KR101654441B1 KR101654441B1 (ko) 2016-09-09

Family

ID=47190183

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147014849A KR101654441B1 (ko) 2011-11-04 2012-11-02 다수의 인코딩된 화상 구획들을 포함하는 네트워크 추상 계층 유닛들에 의한 비디오 코딩

Country Status (12)

Country Link
US (1) US9124895B2 (ko)
EP (1) EP2774366B1 (ko)
JP (1) JP5837217B2 (ko)
KR (1) KR101654441B1 (ko)
CN (1) CN104160702B (ko)
BR (1) BR112014010330B1 (ko)
DK (1) DK2774366T3 (ko)
ES (1) ES2892341T3 (ko)
HU (1) HUE056412T2 (ko)
IN (1) IN2014CN03343A (ko)
TW (1) TWI511572B (ko)
WO (1) WO2013067311A1 (ko)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9819968B2 (en) * 2011-01-12 2017-11-14 Texas Instruments Incorporated Method and apparatus for error detection in CABAC
US9215473B2 (en) 2011-01-26 2015-12-15 Qualcomm Incorporated Sub-slices in video coding
ES2805313T3 (es) * 2011-08-11 2021-02-11 Sun Patent Trust Procedimiento de codificación de imágenes, procedimiento de descodificación de imágenes, aparato de codificación de imágenes, aparato de descodificación de imágenes y aparato de codificación / descodificación de imágenes
US9077998B2 (en) 2011-11-04 2015-07-07 Qualcomm Incorporated Padding of segments in coded slice NAL units
US20130113882A1 (en) * 2011-11-08 2013-05-09 Sony Corporation Video coding system and method of operation thereof
CN108337512B (zh) 2011-12-29 2020-10-27 Lg 电子株式会社 视频编码和解码方法和使用该方法的装置
CN104365100A (zh) * 2012-04-15 2015-02-18 三星电子株式会社 用于并行处理的视频编码方法和装置以及视频解码方法和装置
WO2013165215A1 (ko) * 2012-05-04 2013-11-07 엘지전자 주식회사 영상 정보 저장 방법 및 영상 정보 파싱 방법 그리고 이를 이용하는 장치
PL2865177T3 (pl) * 2012-06-25 2019-03-29 Huawei Technologies Co., Ltd. Sposób sygnalizowania obrazu stopniowego dostępu do warstwy czasowej
CN108718410B (zh) 2012-06-26 2022-05-24 Lg 电子株式会社 视频编码方法、视频解码方法和使用其的装置
US9621905B2 (en) * 2012-06-29 2017-04-11 Qualcomm Incorporated Tiles and wavefront parallel processing
US8928730B2 (en) * 2012-07-03 2015-01-06 DigitalOptics Corporation Europe Limited Method and system for correcting a distorted input image
KR20180112099A (ko) * 2012-07-09 2018-10-11 브이아이디 스케일, 인크. 멀티 레이어 비디오 코딩용 코덱 아키텍처
MX348737B (es) 2012-08-09 2017-06-27 Panasonic Ip Corp America Metodo decodificador de imagen, metodo codificador de imagen, aparato decodificador de imagen, aparato codificador de imagen, y aparato codificador y decodificador de imagen.
US9242602B2 (en) 2012-08-27 2016-01-26 Fotonation Limited Rearview imaging systems for vehicle
US10230956B2 (en) 2012-09-26 2019-03-12 Integrated Device Technology, Inc. Apparatuses and methods for optimizing rate-distortion of syntax elements
SG11201501400QA (en) 2012-09-26 2015-04-29 Panasonic Ip Corp America Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
CN102883163B (zh) * 2012-10-08 2014-05-28 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
US9788002B2 (en) * 2012-11-29 2017-10-10 Samsung Electronics Co., Ltd. Image processing apparatus and method
US9172923B1 (en) * 2012-12-20 2015-10-27 Elemental Technologies, Inc. Sweep dependency based graphics processing unit block scheduling
TR201906908T4 (tr) * 2013-01-04 2019-05-21 Samsung Electronics Co Ltd Dilim parçaları için entropi kod çözme cihazı.
US20140219331A1 (en) * 2013-02-06 2014-08-07 Magnum Semiconductor, Inc. Apparatuses and methods for performing joint rate-distortion optimization of prediction mode
CA2909601A1 (en) * 2013-07-07 2015-01-15 Wilus Institute Of Standards And Technology Inc. Method and apparatus for processing video signal
KR102416235B1 (ko) * 2013-07-15 2022-07-05 지이 비디오 컴프레션, 엘엘씨 다계층식 비디오 코딩에서의 저지연 개념
US20150049105A1 (en) * 2013-08-13 2015-02-19 Mediatek Inc. Data processing apparatus for transmitting/receiving indication information of pixel data grouping setting via display interface and related data processing method
US9336558B2 (en) 2013-09-27 2016-05-10 Apple Inc. Wavefront encoding with parallel bit stream encoding
US9224187B2 (en) 2013-09-27 2015-12-29 Apple Inc. Wavefront order to scan order synchronization
KR102280170B1 (ko) * 2013-10-04 2021-07-21 삼성전자주식회사 프레임의 특성에 따라 부하를 분배하는 방법 및 장치
KR102290091B1 (ko) * 2013-10-14 2021-08-18 한국전자통신연구원 다계층 기반의 영상 부호화/복호화 방법 및 장치
US9648348B2 (en) * 2013-10-23 2017-05-09 Qualcomm Incorporated Multi-layer video file format designs
JP6493214B2 (ja) * 2013-11-01 2019-04-03 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
US9736488B2 (en) * 2013-11-27 2017-08-15 Nxp Usa, Inc. Decoding for high efficiency video transcoding
EP3107297A4 (en) * 2014-02-10 2017-09-06 Nec Corporation Video encoding device, video encoding method, and program
US20150262404A1 (en) * 2014-03-13 2015-09-17 Huawei Technologies Co., Ltd. Screen Content And Mixed Content Coding
US9894370B2 (en) * 2014-03-24 2018-02-13 Qualcomm Incorporated Generic use of HEVC SEI messages for multi-layer codecs
CN103957471B (zh) * 2014-05-05 2017-07-14 华为技术有限公司 网络视频播放的方法和装置
US10257529B2 (en) 2014-06-30 2019-04-09 Intel Corporation Techniques for generating wave front groups for parallel processing a video frame by a video encoder
US10123028B2 (en) * 2014-09-17 2018-11-06 Mediatek Inc. Syntax parsing apparatus with multiple syntax parsing circuits for processing multiple image regions within same frame or processing multiple frames and related syntax parsing method
TWI511530B (zh) * 2014-12-09 2015-12-01 Univ Nat Kaohsiung 1St Univ Sc Distributed video coding system and decoder for distributed video coding system
US9854261B2 (en) 2015-01-06 2017-12-26 Microsoft Technology Licensing, Llc. Detecting markers in an encoded video signal
GB2534409A (en) * 2015-01-23 2016-07-27 Sony Corp Data encoding and decoding
CN105992018B (zh) * 2015-02-11 2019-03-26 阿里巴巴集团控股有限公司 流媒体转码方法和装置
CN106210728B (zh) * 2015-04-10 2019-08-30 上海澜至半导体有限公司 用于视频解码的电路、方法和视频解码器
WO2016182152A1 (ko) * 2015-05-12 2016-11-17 삼성전자 주식회사 샘플값 보상을 위한 영상 부호화 방법과 그 장치, 및 샘플값 보상을 위한 영상 복호화 방법과 그 장치
US20170134732A1 (en) * 2015-11-05 2017-05-11 Broadcom Corporation Systems and methods for digital media communication using syntax planes in hierarchical trees
JP6906940B2 (ja) 2015-12-28 2021-07-21 株式会社半導体エネルギー研究所 半導体装置
WO2017171438A1 (ko) * 2016-03-30 2017-10-05 한국전자통신연구원 픽쳐 분할 정보를 사용하는 비디오의 부호화 및 복호화를 위한 방법 및 장치
CN116156163A (zh) * 2016-03-30 2023-05-23 韩国电子通信研究院 使用画面划分信息对视频进行编码和解码的方法和设备
KR20230079466A (ko) * 2017-04-11 2023-06-07 브이아이디 스케일, 인크. 면 연속성을 사용하는 360 도 비디오 코딩
US10452552B2 (en) 2017-04-17 2019-10-22 Intel Corporation Memory-based dependency tracking and cache pre-fetch hardware for multi-resolution shading
US10506258B2 (en) * 2017-07-13 2019-12-10 Google Llc Coding video syntax elements using a context tree
CN112602329B (zh) * 2018-06-21 2023-08-11 瑞典爱立信有限公司 用于360度视频解码的块置乱
MX2020013864A (es) 2018-06-21 2021-03-25 Ericsson Telefon Ab L M Particiones de mosaicos con sub-mosaicos en codificacion de video.
CN110868594B (zh) 2018-08-28 2023-04-07 北京字节跳动网络技术有限公司 分割方法的冗余移除
JPWO2020045248A1 (ja) 2018-08-29 2021-08-12 シャープ株式会社 動画像復号装置および動画像符号化装置
CN112703742B (zh) 2018-09-14 2023-03-31 华为技术有限公司 视频译码中的分块指示
EP3707904A1 (en) 2018-10-02 2020-09-16 Telefonaktiebolaget Lm Ericsson (Publ) Encoding and decoding pictures based on tile group id
CN111131826A (zh) * 2018-10-31 2020-05-08 上海天荷电子信息有限公司 定长码单元含多个编码参数变长码的数据压缩方法和装置
US10972755B2 (en) * 2018-12-03 2021-04-06 Mediatek Singapore Pte. Ltd. Method and system of NAL unit header structure for signaling new elements
JP7158497B2 (ja) * 2018-12-20 2022-10-21 テレフオンアクチーボラゲット エルエム エリクソン(パブル) ビデオエンコーディングおよびデコーディングにおける改善されたタイルアドレスシグナリング
SG11202106524PA (en) * 2018-12-20 2021-07-29 Ericsson Telefon Ab L M Normative indication of recovery point
EP3928511A4 (en) * 2019-03-11 2022-06-22 Huawei Technologies Co., Ltd. STEP-BY-STEP DECODE REFRESH IN VIDEO ENCODING
WO2020190715A1 (en) * 2019-03-15 2020-09-24 Beijing Dajia Internet Information Technology Co., Ltd. Signaling of lossless coding in video coding
AU2020270961A1 (en) * 2019-04-10 2021-11-04 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods
CN112118454B (zh) * 2019-06-20 2023-02-24 腾讯美国有限责任公司 视频解码方法、设备和计算机可读存储介质
EP4022914A4 (en) * 2019-09-05 2023-09-06 HFI Innovation Inc. METHOD AND APPARATUS FOR ADAPTIVE LOOP FILTERING AT PICTURE AND SUB-PICTURE BOUNDARY IN VIDEO CODING
US11356685B2 (en) * 2019-09-23 2022-06-07 Qualcomm Incorproated Signaling number of sub-pictures in high-level syntax for video coding
EP4026097A4 (en) * 2019-09-24 2023-01-25 Huawei Technologies Co., Ltd. SIGNALING AN IMAGE HEAD IN VIDEO ENCODING
US20230032673A1 (en) * 2019-11-22 2023-02-02 Lg Electronics Inc. Image coding method based on entry point-related information in video or image coding system
WO2021133055A1 (ko) * 2019-12-24 2021-07-01 한국전자통신연구원 영상 부호화/복호화 방법 및 장치
US11405649B2 (en) * 2020-02-18 2022-08-02 Mediatek Inc. Specifying slice chunks of a slice within a tile
US11792432B2 (en) * 2020-02-24 2023-10-17 Tencent America LLC Techniques for signaling and identifying access unit boundaries
EP4150903A4 (en) 2020-06-09 2023-11-08 ByteDance Inc. HANDLING ADDITIONAL EXTENSION INFORMATION IN A PARTIAL BITSTREAM EXTRACTION PROCEDURE FOR SUB-IMAGES
WO2023244670A1 (en) * 2022-06-15 2023-12-21 Innopeak Technology, Inc. Methods, systems, and apparatuses for point cloud coding

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471248A (en) * 1992-11-13 1995-11-28 National Semiconductor Corporation System for tile coding of moving images
EP0614317A3 (en) 1993-03-05 1995-01-25 Sony Corp Decoding video signals.
US5532744A (en) 1994-08-22 1996-07-02 Philips Electronics North America Corporation Method and apparatus for decoding digital video using parallel processing
JP2003174650A (ja) 2001-09-27 2003-06-20 Canon Inc 画像符号化装置、可変長符号化装置、制御装置およびそれらの方法
US6919826B1 (en) * 2003-12-19 2005-07-19 Sun Microsystems, Inc. Systems and methods for efficient and compact encoding
JP4374548B2 (ja) 2005-04-15 2009-12-02 ソニー株式会社 復号装置および方法、記録媒体、並びに、プログラム
US7595743B1 (en) 2005-10-26 2009-09-29 Lsi Corporation System and method for reducing storage requirements for content adaptive binary arithmetic coding
WO2007081176A1 (en) 2006-01-12 2007-07-19 Lg Electronics Inc. Processing multiview video
CN100471279C (zh) * 2006-02-13 2009-03-18 清华大学 一种基于上下文自适应变长解码的方法
EP2005752A4 (en) 2006-03-30 2010-06-09 Lg Electronics Inc METHOD AND APPARATUS FOR DECODING / ENCODING A VIDEO SIGNAL
US7656326B2 (en) * 2006-06-08 2010-02-02 Via Technologies, Inc. Decoding of context adaptive binary arithmetic codes in computational core of programmable graphics processing unit
US8699583B2 (en) 2006-07-11 2014-04-15 Nokia Corporation Scalable video coding and decoding
JP5484902B2 (ja) 2006-07-13 2014-05-07 クゥアルコム・インコーポレイテッド サイクルを整列したフラグメントを使用する微細粒度スケーラビリティを備えた映像符号化
US8218908B2 (en) 2006-11-02 2012-07-10 Canon Kabushiki Kaisha Mixed content image compression with two edge data representations
KR20100014552A (ko) 2007-03-23 2010-02-10 엘지전자 주식회사 비디오 신호의 인코딩/디코딩 방법 및 장치
AU2008239653C1 (en) 2007-04-12 2015-05-07 Dolby International Ab Tiling in video encoding and decoding
US8619874B2 (en) 2007-04-13 2013-12-31 Apple Inc. Method and system for video encoding and decoding
WO2008133455A1 (en) 2007-04-25 2008-11-06 Lg Electronics Inc. A method and an apparatus for decoding/encoding a video signal
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8542748B2 (en) 2008-03-28 2013-09-24 Sharp Laboratories Of America, Inc. Methods and systems for parallel video encoding and decoding
KR101204134B1 (ko) 2008-04-25 2012-11-23 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 트랜스포트 데이터 스트림내에서 참조하는 유연성 있는 서브스트림
US8311111B2 (en) 2008-09-11 2012-11-13 Google Inc. System and method for decoding using parallel processing
CN102257819A (zh) 2008-10-30 2011-11-23 Gvbb控股股份有限公司 图像编码装置、图像编码方法和图像编码程序
JP2010183305A (ja) 2009-02-05 2010-08-19 Sony Corp 信号処理装置及び信号処理方法
US8949695B2 (en) 2009-08-27 2015-02-03 Cleversafe, Inc. Method and apparatus for nested dispersed storage
FR2951896A1 (fr) 2009-10-23 2011-04-29 France Telecom Procede d'encapsulation de sous-flux de donnees, procede de desencapsulation et programmes d'ordinateur correspondants
US20120075436A1 (en) 2010-09-24 2012-03-29 Qualcomm Incorporated Coding stereo video data
US9313514B2 (en) 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization
IL210169A0 (en) 2010-12-22 2011-03-31 Yehuda Binder System and method for routing-based internet security
US10244239B2 (en) 2010-12-28 2019-03-26 Dolby Laboratories Licensing Corporation Parameter set for picture segmentation
US9215473B2 (en) 2011-01-26 2015-12-15 Qualcomm Incorporated Sub-slices in video coding
US9325999B2 (en) 2011-03-10 2016-04-26 Sharp Kabushiki Kaisha Video decoder for slices
US9077998B2 (en) 2011-11-04 2015-07-07 Qualcomm Incorporated Padding of segments in coded slice NAL units

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BROSS B ET AL: "WD4: Working Draft 4 of High-Efficiency Video Coding", (F803) JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 6th Meeting: TORINO, IT, 14-22 July, 2011* *
Muhammed Coban ET AL: "Unification of picture partitioning schemes",(G315), JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 7th Meeting: Geneva, CH, 21-30 November, 2011 *
Ye-Kui Wang ET AL: "Flexible tile dependency and loop filtering control",(H0521r1), JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 8th Meeting: San Jose, CA, USA, 1-10 February, 2012 *
Ying Chen ET AL: "Unified NAL unit header design for HEVC and its extensions",(G336), JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 7th Meeting: Geneva, CH, 21-30 November, 2011 *

Also Published As

Publication number Publication date
EP2774366B1 (en) 2021-09-08
KR101654441B1 (ko) 2016-09-09
TW201342921A (zh) 2013-10-16
DK2774366T3 (da) 2021-10-04
US9124895B2 (en) 2015-09-01
CN104160702B (zh) 2018-10-26
ES2892341T3 (es) 2022-02-03
WO2013067311A1 (en) 2013-05-10
CN104160702A (zh) 2014-11-19
IN2014CN03343A (ko) 2015-09-04
US20130114735A1 (en) 2013-05-09
EP2774366A1 (en) 2014-09-10
BR112014010330B1 (pt) 2022-05-10
JP5837217B2 (ja) 2015-12-24
TWI511572B (zh) 2015-12-01
JP2014535223A (ja) 2014-12-25
HUE056412T2 (hu) 2022-02-28
BR112014010330A2 (pt) 2017-04-18

Similar Documents

Publication Publication Date Title
KR101654441B1 (ko) 다수의 인코딩된 화상 구획들을 포함하는 네트워크 추상 계층 유닛들에 의한 비디오 코딩
CA2860840C (en) Indication of use of wavefront parallel processing in video coding
KR101589851B1 (ko) 코딩된 슬라이스 nal 유닛들에서의 세그먼트들의 패딩
KR102124225B1 (ko) 타일들 및 파면 병렬 프로세싱
KR101799165B1 (ko) Hevc 및 확장들에 대한 비디오 파라미터 세트
KR20150013547A (ko) 브로큰 링크 픽처들을 갖는 비디오 시퀀스들에서 참조 픽처들의 마킹
WO2014008136A1 (en) Signaling of long-term reference pictures for video coding
KR20160034321A (ko) 인트라 랜덤 액세스 포인트 픽처들의 개선된 교차-계층 정렬

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 4