KR20180127997A - Hevc 및 l­hevc 파일 포맷들에서의 타일 그룹화에 대한 개선 - Google Patents

Hevc 및 l­hevc 파일 포맷들에서의 타일 그룹화에 대한 개선 Download PDF

Info

Publication number
KR20180127997A
KR20180127997A KR1020187027899A KR20187027899A KR20180127997A KR 20180127997 A KR20180127997 A KR 20180127997A KR 1020187027899 A KR1020187027899 A KR 1020187027899A KR 20187027899 A KR20187027899 A KR 20187027899A KR 20180127997 A KR20180127997 A KR 20180127997A
Authority
KR
South Korea
Prior art keywords
tiles
syntax element
tile
file
nal
Prior art date
Application number
KR1020187027899A
Other languages
English (en)
Other versions
KR102102554B1 (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 KR20180127997A publication Critical patent/KR20180127997A/ko
Application granted granted Critical
Publication of KR102102554B1 publication Critical patent/KR102102554B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding 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/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format

Landscapes

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

Abstract

디바이스는 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 생성한다. NAL 유닛 맵 엔트리 박스는 NAL 유닛들을, 현재의 픽처가 파티셔닝되는 복수의 타일들 중의 2 개 이상의 타일들을 포함하는 타일 세트와 연관시킨다. 타일 세트에 의해 커버된 현재의 픽처의 영역은 비직사각형일 수도 있다. 추가적으로, 디바이스는 파일에서의 타일 세트 그룹 엔트리를 생성한다. 타일 세트 그룹 엔트리는 수평 오프셋, 수직 오프셋, 폭, 및 높이를 포함한다. 수평 오프셋은 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단 좌측 픽셀의 수평 오프셋을 특정한다. 수직 오프셋은 최소 직사각형 영역의 상단 좌측 픽셀의 수직 오프셋을 특정한다. 폭은 최소 직사각형 영역의 폭을 특정한다. 높이는 최소 직사각형 영역의 높이를 특정한다.

Description

HEVC 및 L­HEVC 파일 포맷들에서의 타일 그룹화에 대한 개선
이 출원은 그 전체 내용이 참조로 편입되는, 2016 년 3 월 30 일자로 출원된 미국 특허 가출원 제 62/315,575 호의 이익을 주장한다.
이 개시물은 비디오 코딩 및 코딩된 비디오 데이터를 위한 파일 포맷들에 관한 것이다.
디지털 비디오 기능들은, 디지털 텔레비전들, 디지털 다이렉트 브로드캐스트 시스템 (digital direct broadcast system) 들, 무선 브로드캐스트 시스템들, 개인 정보 단말 (personal digital assistant; PDA) 들, 랩톱 또는 데스크톱 컴퓨터들, 태블릿 컴퓨터들, 전자책 (e-book) 리더들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게임용 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 라디오 전화들, 소위 "스마트폰들", 화상 원격회의 디바이스들, 비디오 스트리밍 디바이스들, 등을 포함하는 광범위한 디바이스들 내로 편입될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, 진보된 비디오 코딩 (Advanced Video Coding; AVC), ITU-T H.265, 고효율 비디오 코딩 (High Efficiency Video Coding; HEVC) 에 의해 정의된 표준들, 및 이러한 표준들의 확장들에서 설명된 것들과 같은 비디오 압축 기법들을 구현한다. 비디오 디바이스들은 이러한 비디오 압축 기법들을 구현함으로써 디지털 비디오 정보를 더 효율적으로 송신하고, 수신하고, 인코딩하고, 디코딩하고, 및/또는 저장할 수도 있다.
비디오 압축 기법들은 비디오 시퀀스 (video sequence) 들에 내재된 중복성을 감소시키거나 제거하기 위하여 공간적 (인트라-픽처 (intra-picture)) 예측 및/또는 시간적 (인터-픽처 inter-picture)) 예측을 수행한다. 블록-기반 비디오 코딩을 위하여, 비디오 슬라이스 (즉, 비디오 프레임 또는 비디오 프레임의 부분) 는 비디오 블록들로 파티셔닝 (partitioning) 될 수도 있으며, 이 비디오 블록들은 트리블록 (treeblock) 들, 코딩 유닛 (coding unit; CU) 들 및/또는 코딩 노드들로서 또한 지칭될 수도 있다. 픽처의 인트라-코딩된 (I) 슬라이스에서의 비디오 블록들은 동일한 픽처에서의 이웃하는 블록들 내의 참조 샘플들에 대한 공간적 예측을 이용하여 인코딩된다. 픽처의 인터-코딩된 (P 또는 B) 슬라이스 내의 비디오 블록들은 동일한 픽처에서의 이웃하는 블록들 내의 참조 샘플들에 대한 공간적 예측, 또는 다른 참조 픽처들에서의 참조 샘플들에 대한 시간적 예측을 이용할 수도 있다. 픽처들은 프레임들로서 지칭될 수도 있고, 참조 픽처들은 참조 프레임들로서 지칭될 수도 있다.
이 개시물의 하나 이상의 양태들은 파일 포맷들에서의 비디오 컨텐츠들의 저장에 관한 것이다. 예를 들어, 이 개시물의 기법들은 HEVC 및 계층화된 HEVC (L-HEVC, 또한 LHEVC 로서 단순화됨) 파일 포맷들에서의 타일 (tile) 들의 그룹화의 핸들링을 개선시킬 수도 있다.
하나의 예에서, 이 개시물은 비디오 데이터의 저장을 위한 방법을 설명하고, 상기 방법은: 파일 생성 디바이스에 의해, 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 수신하는 단계로서, 비디오 데이터의 픽처들은 현재의 픽처를 포함하고, 현재의 픽처는 복수의 타일들로 파티셔닝되고, 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역인, 상기 비트스트림을 수신하는 단계; 파일 생성 디바이스에 의해, 파일에서의 네트워크 추상화 계층 (Network Abstraction Layer; NAL) 유닛 맵 엔트리 박스를 생성하는 단계로서, NAL 유닛 맵 엔트리 박스는 비트스트림의 NAL 유닛들을 타일 세트와 연관시키고, 타일 세트는 현재의 픽처가 파티셔닝되는 복수의 타일들 중의 2 개 이상의 타일들을 포함하고, 타일 세트에서의 타일들에 의해 커버된 현재의 픽처의 영역은 형상에 있어서 직사각형이 아닌, 상기 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 생성하는 단계; 및 파일 생성 디바이스에 의해, 파일에서의 타일 세트 그룹 엔트리를 생성하는 단계로서, 타일 세트 그룹 엔트리는 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함하고, 타일 세트 그룹 엔트리는 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 포함하고, 수평 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정하고, 수직 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수직 오프셋을 특정하고, 폭 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 폭을 특정하고, 높이 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 높이를 특정하는, 상기 파일에서의 타일 세트 그룹 엔트리를 생성하는 단계를 포함한다.
또 다른 예에서, 이 개시물은 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하는 방법을 설명하고, 상기 방법은: 파일 프로세싱 디바이스에 의해, 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 획득하는 단계로서, NAL 유닛 맵 엔트리 박스는 비트스트림의 NAL 유닛들을 타일 세트와 연관시키고, 비트스트림은 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함하고, 비디오 데이터의 픽처들은 현재의 픽처를 포함하고, 현재의 픽처는 복수의 타일들로 파티셔닝되고, 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역이고, 타일 세트는 현재의 픽처가 파티셔닝되는 복수의 타일들 중의 2 개 이상의 타일들을 포함하고, 타일 세트에서의 타일들에 의해 커버된 현재의 픽처의 영역은 형상에 있어서 직사각형이 아닌, 상기 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 획득하는 단계; 파일 프로세싱 디바이스에 의해, 파일에서의 타일 세트 그룹 엔트리를 획득하는 단계로서, 타일 세트 그룹 엔트리는 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함하고, 타일 세트 그룹 엔트리는 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 포함하고, 수평 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정하고, 수직 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수직 오프셋을 특정하고, 폭 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 폭을 특정하고, 높이 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 높이를 특정하는, 상기 파일에서의 타일 세트 그룹 엔트리를 획득하는 단계; 및 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트에 기초하여 타일 세트를 프로세싱하는 단계를 포함한다.
또 다른 예에서, 이 개시물은 비디오 데이터를 저장하기 위한 파일을 생성하기 위한 디바이스를 설명하고, 상기 디바이스는: 비디오 컨텐츠들의 저장을 위한 파일을 저장하도록 구성된 메모리; 및 하나 이상의 프로세서들을 포함하고, 상기 하나 이상의 프로세서들은: 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 수신하는 것으로서, 비디오 데이터의 픽처들은 현재의 픽처를 포함하고, 현재의 픽처는 복수의 타일들로 파티셔닝되고, 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역인, 상기 비트스트림을 수신하고; 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 생성하는 것으로서, NAL 유닛 맵 엔트리 박스는 비트스트림의 NAL 유닛들을 타일 세트와 연관시키고, 타일 세트는 현재의 픽처가 파티셔닝되는 복수의 타일들 중의 2 개 이상의 타일들을 포함하고, 타일 세트에서의 타일들에 의해 커버된 현재의 픽처의 영역은 형상에 있어서 직사각형이 아닌, 상기 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 생성하고; 그리고 파일에서의 타일 세트 그룹 엔트리를 생성하는 것으로서, 타일 세트 그룹 엔트리는 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함하고, 타일 세트 그룹 엔트리는 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 포함하고, 수평 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정하고, 수직 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수직 오프셋을 특정하고, 폭 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 폭을 특정하고, 높이 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 높이를 특정하는, 상기 파일에서의 타일 세트 그룹 엔트리를 생성하도록 구성된다.
또 다른 예에서, 이 개시물은 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하기 위한 디바이스를 설명하고, 상기 디바이스는: 비디오 컨텐츠들의 저장을 위한 파일을 저장하도록 구성된 메모리; 및 하나 이상의 프로세서들을 포함하고, 상기 하나 이상의 프로세서들은: 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 획득하는 것으로서, NAL 유닛 맵 엔트리 박스는 비트스트림의 NAL 유닛들을 타일 세트와 연관시키고, 비트스트림은 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함하고, 비디오 데이터의 픽처들은 현재의 픽처를 포함하고, 현재의 픽처는 복수의 타일들로 파티셔닝되고, 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역이고, 타일 세트는 현재의 픽처가 파티셔닝되는 복수의 타일들 중의 2 개 이상의 타일들을 포함하고, 타일 세트에서의 타일들에 의해 커버된 현재의 픽처의 영역은 형상에 있어서 직사각형이 아닌, 상기 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 획득하고; 파일에서의 타일 세트 그룹 엔트리를 획득하는 것으로서, 타일 세트 그룹 엔트리는 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함하고, 타일 세트 그룹 엔트리는 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 포함하고, 수평 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정하고, 수직 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수직 오프셋을 특정하고, 폭 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 폭을 특정하고, 높이 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 높이를 특정하는, 상기 파일에서의 타일 세트 그룹 엔트리를 획득하고; 그리고 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트에 기초하여 타일 세트를 프로세싱하도록 구성된다.
또 다른 예에서, 이 개시물은 비디오 데이터의 저장을 위한 파일을 생성하기 위한 디바이스를 설명하고, 상기 디바이스는: 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 수신하기 위한 수단으로서, 비디오 데이터의 픽처들은 현재의 픽처를 포함하고, 현재의 픽처는 복수의 타일들로 파티셔닝되고, 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역인, 상기 비트스트림을 수신하기 위한 수단; 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 생성하기 위한 수단으로서, NAL 유닛 맵 엔트리 박스는 비트스트림의 NAL 유닛들을 타일 세트와 연관시키고, 타일 세트는 현재의 픽처가 파티셔닝되는 복수의 타일들 중의 2 개 이상의 타일들을 포함하고, 타일 세트에서의 타일들에 의해 커버된 현재의 픽처의 영역은 형상에 있어서 직사각형이 아닌, 상기 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 생성하기 위한 수단; 및 파일에서의 타일 세트 그룹 엔트리를 생성하기 위한 수단으로서, 타일 세트 그룹 엔트리는 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함하고, 타일 세트 그룹 엔트리는 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 포함하고, 수평 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정하고, 수직 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수직 오프셋을 특정하고, 폭 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 폭을 특정하고, 높이 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 높이를 특정하는, 상기 파일에서의 타일 세트 그룹 엔트리를 생성하기 위한 수단을 포함한다.
또 다른 예에서, 이 개시물은 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하기 위한 디바이스를 설명하고, 상기 디바이스는: 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 획득하기 위한 수단으로서, NAL 유닛 맵 엔트리 박스는 비트스트림의 NAL 유닛들을 타일 세트와 연관시키고, 비트스트림은 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함하고, 비디오 데이터의 픽처들은 현재의 픽처를 포함하고, 현재의 픽처는 복수의 타일들로 파티셔닝되고, 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역이고, 타일 세트는 현재의 픽처가 파티셔닝되는 복수의 타일들 중의 2 개 이상의 타일들을 포함하고, 타일 세트에서의 타일들에 의해 커버된 현재의 픽처의 영역은 형상에 있어서 직사각형이 아닌, 상기 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 획득하기 위한 수단; 파일에서의 타일 세트 그룹 엔트리를 획득하기 위한 수단으로서, 타일 세트 그룹 엔트리는 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함하고, 타일 세트 그룹 엔트리는 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 포함하고, 수평 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정하고, 수직 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수직 오프셋을 특정하고, 폭 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 폭을 특정하고, 높이 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 높이를 특정하는, 상기 파일에서의 타일 세트 그룹 엔트리를 획득하기 위한 수단; 및 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트에 기초하여 타일 세트를 프로세싱하기 위한 수단을 포함한다.
또 다른 예에서, 이 개시물은 명령들을 저장한 컴퓨터-판독가능 데이터 저장 매체를 설명하고, 상기 명령들은, 실행될 경우, 디바이스가: 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 수신하는 것으로서, 비디오 데이터의 픽처들은 현재의 픽처를 포함하고, 현재의 픽처는 복수의 타일들로 파티셔닝되고, 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역인, 상기 비트스트림을 수신하고; 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 생성하는 것으로서, NAL 유닛 맵 엔트리 박스는 비트스트림의 NAL 유닛들을 타일 세트와 연관시키고, 타일 세트는 현재의 픽처가 파티셔닝되는 복수의 타일들 중의 2 개 이상의 타일들을 포함하고, 타일 세트에서의 타일들에 의해 커버된 현재의 픽처의 영역은 형상에 있어서 직사각형이 아닌, 상기 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 생성하고; 그리고 파일에서의 타일 세트 그룹 엔트리를 생성하는 것으로서, 타일 세트 그룹 엔트리는 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함하고, 타일 세트 그룹 엔트리는 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 포함하고, 수평 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정하고, 수직 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수직 오프셋을 특정하고, 폭 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 폭을 특정하고, 높이 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 높이를 특정하는, 상기 파일에서의 타일 세트 그룹 엔트리를 생성하도록 구성한다.
또 다른 예에서, 이 개시물은 명령들을 저장한 컴퓨터-판독가능 데이터 저장 매체를 설명하고, 상기 명령들은, 실행될 경우, 디바이스가: 파일 프로세싱 디바이스에 의해, 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 획득하는 것으로서, NAL 유닛 맵 엔트리 박스는 비트스트림의 NAL 유닛들을 타일 세트와 연관시키고, 비트스트림은 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함하고, 비디오 데이터의 픽처들은 현재의 픽처를 포함하고, 현재의 픽처는 복수의 타일들로 파티셔닝되고, 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역이고, 타일 세트는 현재의 픽처가 파티셔닝되는 복수의 타일들 중의 2 개 이상의 타일들을 포함하고, 타일 세트에서의 타일들에 의해 커버된 현재의 픽처의 영역은 형상에 있어서 직사각형이 아닌, 상기 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 획득하고; 파일 프로세싱 디바이스에 의해, 파일에서의 타일 세트 그룹 엔트리를 획득하는 것으로서, 타일 세트 그룹 엔트리는 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함하고, 타일 세트 그룹 엔트리는 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 포함하고, 수평 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정하고, 수직 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수직 오프셋을 특정하고, 폭 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 폭을 특정하고, 높이 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 높이를 특정하는, 상기 파일에서의 타일 세트 그룹 엔트리를 획득하고; 그리고 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트에 기초하여 타일 세트를 프로세싱하도록 구성한다.
개시물의 하나 이상의 예들의 세부사항들은 동반된 도면들 및 이하의 설명에서 기재된다. 다른 특징들, 목적들, 및 장점들은 설명, 도면들, 및 청구항들로부터 명백할 것이다.
도 1 은 이 개시물에서 설명된 기법들을 이용할 수도 있는 일 예의 비디오 인코딩 및 디코딩 시스템을 예시하는 블록도이다.
도 2 는 일 예의 타일들 및 슬라이스들을 예시하는 개념적인 도면이다.
도 3 은 네트워크 추상화 계층 (NAL) 유닛이 다수의 타일들을 포함하는 예를 예시하는 개념적인 도면이다.
도 4 는 이 개시물의 하나 이상의 기법들에 따라, 타일 세트를 포함하는 최소 직사각형 에어리어 (area) 에 의해 경계가 정해진 타일 세트를 포함하는 일 예의 픽처를 예시하는 개념적인 도면이다.
도 5 는 상이한 계층들에서 동일한 영역을 커버하는 타일 세트들을 예시하는 개념적인 도면이다.
도 6 은 이 개시물에서 설명된 기법들을 구현할 수도 있는 일 예의 비디오 인코더를 예시하는 블록도이다.
도 7 은 이 개시물에서 설명된 기법들을 구현할 수도 있는 일 예의 비디오 디코더를 예시하는 블록도이다.
도 8 은 이 개시물의 하나 이상의 기법들에 따라, 파일의 일 예의 구조를 예시하는 개념적인 도면이다.
도 9 는 이 개시물의 하나 이상의 기법들에 따라, 파일의 일 예의 구조를 예시하는 개념적인 도면이다.
도 10 은 이 개시물의 하나 이상의 기법들에 따라, 타일 세트 엔트리 그룹을 예시하는 개념적인 도면이다.
도 11 은 이 개시물의 기법에 따라, 비디오 데이터의 저장을 위한 파일을 생성하기 위한 프로세스의 예를 예시하는 플로우차트이다.
도 12 는 이 개시물의 기법에 따라, 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하기 위한 프로세스의 예를 예시하는 플로우차트이다.
국제 표준 기구 (International Standards Organization; ISO) 기본 미디어 파일 포맷 (ISO base media file format; ISOBMFF) 및 ISO 기본 미디어 파일 포맷으로부터 파생된 파일 포맷들은 비디오 컨텐츠들의 저장을 위하여 설계된다. ISOBMFF 는 H.265, 고효율 비디오 코딩 (High Efficiency Video Coding; HEVC), H.264/AVC, 및 다른 비디오 인코딩 표준들과 같은 다양한 비디오 인코딩 표준들과 함께 작동하도록 확장되었다.
픽처들은 "타일들" 로 칭해진 직사각형 영역들로 파티셔닝될 수도 있다. 일부 상황들에서는, 일련의 픽처들의 특정한 타일들의 네트워크 추상화 계층 (NAL) 유닛들을 오직 판독하는 것이 바람직할 수도 있다. 예를 들어, 픽처들의 하단 절반들의 인코딩된 블록들을 포함하는 NAL 유닛들을 송신하지 않으면서, 픽처들의 상단 절반들의 인코딩된 블록들을 포함하는 NAL 유닛들을 송신하는 것이 바람직할 수도 있다. 그러나, ISOBMFF 포맷에 대한 확장들에서의 메커니즘들은 파일로부터, 타일들 및 타일들의 세트들에 특정적인 정보를 액세스하는 효율을 감소시킬 수도 있는 몇몇 문제들을 가진다. 이 개시물의 기법들은 이러한 정보를 액세스하는 효율을 개선시킬 수도 있다.
예를 들어, 파일 생성 디바이스는 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 수신할 수도 있다. 이 예에서, 비디오 데이터의 픽처들은 현재의 픽처를 포함하고, 현재의 픽처는 복수의 타일들로 파티셔닝되고, 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역이다. 또한, 이 예에서, 파일 생성 디바이스는 파일에서의 NAL 유닛 맵 엔트리 박스를 생성할 수도 있다. NAL 유닛 맵 엔트리 박스는 비트스트림의 NAL 유닛들을 타일 세트와 연관시킬 수도 있다. 타일 세트는 현재의 픽처가 파티셔닝되는 복수의 타일들 중의 2 개 이상의 타일들을 포함한다. 또한, 일부 사례들에서, 타일 세트에서의 타일들에 의해 커버된 현재의 픽처의 영역은 형상에 있어서 직사각형이 아니다. 추가적으로, 이 예에서, 파일 생성 디바이스는 파일에서의 타일 세트 그룹 엔트리를 생성할 수도 있다. 이 예에서, 타일 세트 그룹 엔트리는 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함한다. 타일 세트 그룹 엔트리는 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 포함할 수도 있다. 수평 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정한다. 수직 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수직 오프셋을 특정한다. 폭 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 폭을 특정한다. 높이 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 높이를 특정한다.
도 1 은 이 개시물에서 설명된 기법들을 이용할 수도 있는 일 예의 비디오 인코딩 및 디코딩 시스템 (10) 을 예시하는 블록도이다. 도 1 에서 도시된 바와 같이, 시스템 (10) 은 목적지 디바이스 (14) 에 의해 더 이후의 시간에 디코딩되어야 할 인코딩된 비디오 데이터를 생성하는 소스 디바이스 (12) 를 포함한다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는, 데스크톱 컴퓨터들, 노트북 (즉, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋톱 (set-top) 박스들, 소위 "스마트" 폰들과 같은 전화 핸드셋들, 소위 "스마트" 패드들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게임용 콘솔들, 비디오 스트리밍 디바이스, 또는 등을 포함하는 광범위한 디바이스들 중의 임의의 것을 포함할 수도 있다. 일부 경우들에는, 소스 디바이스 (12) 및 목적지 디바이스 (14) 가 무선 통신을 위하여 구비될 수도 있다. 이 때문에, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 무선 통신 디바이스들로 고려될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 비디오 디바이스들로 고려될 수도 있다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 및 출력 인터페이스 (22) 를 포함한다. 일부 경우들에는, 출력 인터페이스 (22) 가 변조기/복조기 (모뎀) 및/또는 송신기를 포함할 수도 있다. 소스 디바이스 (12) 에서, 비디오 소스 (18) 는 비디오 캡처 디바이스, 예컨대, 비디오 카메라, 이전에 캡처된 비디오를 포함하는 비디오 아카이브 (video archive), 비디오 컨텐츠 제공자로부터 비디오를 수신하기 위한 비디오 공급 인터페이스, 및/또는 소스 비디오로서 컴퓨터 그래픽 데이터를 생성하기 위한 컴퓨터 그래픽 시스템과 같은 소스, 또는 이러한 소스들의 조합을 포함할 수도 있다. 그러나, 이 개시물에서 설명된 기법들은 일반적으로 비디오 코딩에 적용가능할 수도 있고, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다.
비디오 인코더 (20) 는 캡처되거나, 프리-캡처 (pre-capture) 되거나, 또는 컴퓨터-생성된 비디오를 인코딩할 수도 있다. 소스 디바이스 (12) 는 인코딩된 비디오 데이터를 소스 디바이스 (12) 의 출력 인터페이스 (22) 를 통해 목적지 디바이스 (14) 로 직접적으로 송신할 수도 있다. 인코딩된 비디오 데이터는 또한 (또는 대안적으로), 디코딩 및/또는 재생을 위하여, 목적지 디바이스 (14) 또는 다른 디바이스들에 의한 더 이후의 액세스를 위하여 저장 디바이스 (33) 상으로 저장될 수도 있다.
목적지 디바이스 (14) 는 입력 인터페이스 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 또한, 도 1 의 예에서, 목적지 디바이스 (14) 는 저장 매체 (29) 및 파일 파싱 유닛 (file parsing unit; 31) 을 포함한다. 일부 경우들에는, 입력 인터페이스 (28) 가 수신기 및/또는 모뎀을 포함할 수도 있다. 목적지 디바이스 (14) 의 입력 인터페이스 (28) 는 링크 (16) 를 통해 인코딩된 비디오 데이터를 수신할 수도 있다. 링크 (16) 를 통해 통신되거나 저장 디바이스 (33) 상에서 제공된 인코딩된 비디오 데이터는 비디오 데이터를 디코딩함에 있어서, 비디오 디코더 (30) 와 같은 비디오 디코더에 의한 이용을 위하여 비디오 인코더 (20) 에 의해 생성된 다양한 신택스 엘리먼트들을 포함할 수도 있다. 이러한 신택스 엘리먼트들은 통신 매체 상에서 송신되거나, 저장 매체 상에서 저장되거나, 파일 서버 상에서 저장된 인코딩된 비디오 데이터와 함께 포함될 수도 있다.
파일 파싱 유닛 (31) 은 파일을 획득할 수도 있고, 다양한 방법들로 파일을 프로세싱할 수도 있다. 예를 들어, 파일 파싱 유닛 (331) 은 파일로부터 정보를 획득하기 위하여 파일을 파싱할 수도 있다. 이 때문에, 파일 파싱 유닛 (31) 을 구현하는 디바이스는 파일 프로세싱 디바이스로서 지칭될 수도 있다. 목적지 디바이스 (14) 의 일부로서 도시되지만, 파일 파싱 유닛 (31) 은 목적지 디바이스 (14) 로부터 분리되어 있을 수도 있다. 예를 들어, 파일 파싱 유닛 (31) 은 미디어 인지 네트워크 엘리먼트 (Media Aware Network Element; MANE), 컨텐츠 전달 네트워크 디바이스, 또는 또 다른 타입의 네트워크 엔티티와 같은 네트워크 디바이스에서 구현될 수도 있다.
디스플레이 디바이스 (32) 는 목적지 디바이스 (14) 와 통합될 수도 있거나, 목적지 디바이스 (14) 의 외부에 있을 수도 있다. 일부 예들에서, 목적지 디바이스 (14) 는 통합된 디스플레이 디바이스를 포함할 수도 있고, 또한, 외부 디스플레이 디바이스와 인터페이싱하도록 구성될 수도 있다. 다른 예들에서, 목적지 디바이스 (14) 는 디스플레이 디바이스일 수도 있다. 일반적으로, 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 액정 디스플레이 (liquid crystal display; LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (organic light emitting diode; OLED) 디스플레이, 또는 또 다른 타입의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중의 임의의 것을 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 각각, 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서 (digital signal processor; DSP) 들, 애플리케이션 특정 집적 회로 (application specific integrated circuit; ASIC) 들, 필드 프로그래밍가능 게이트 어레이 (field programmable gate array; FPGA) 들, 개별 로직, 소프트웨어, 하드웨어, 펌웨어, 또는 그 임의의 조합들과 같은 다양한 적당한 인코더 회로부 중의 임의의 것으로서 구현될 수도 있다. 기법들이 소프트웨어로 부분적으로 구현될 때, 디바이스는 소프트웨어를 위한 명령들을 적당한 비-일시적 컴퓨터-판독가능 매체 내에 저장할 수도 있고, 이 개시물의 기법들을 수행하기 위하여 하나 이상의 프로세서들을 이용하여 명령들을 하드웨어로 실행할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 의 각각은 하나 이상의 인코더들 또는 디코더들 내에 포함될 수도 있고, 인코더들 또는 디코더들 중의 어느 하나는 조합된 인코더/디코더 (combined encoder/decoder; CODEC) 의 일부로서 개개의 디바이스 내에 통합될 수도 있다.
이 개시물은 일반적으로, 신택스 엘리먼트들과 같은 어떤 정보를 "시그널링" 하는 것을 지칭할 수도 있다. 용어 "시그널링" 은 일반적으로, 인코딩된 비디오 데이터를 디코딩하기 위하여 이용된 신택스 엘리먼트들 및/또는 다른 데이터의 통신을 지칭할 수도 있다. 이러한 통신은 실시간 또는 실시간에 근접하게 발생할 수도 있다. 대안적으로, 이러한 통신은, 인코딩 시에 비트스트림으로, 신택스 엘리먼트들을 컴퓨터-판독가능 저장 매체에 저장하고, 그 다음으로, 이러한 신택스 엘리먼트들이 이 매체에 저장된 후의 임의의 시간에 디코딩 디바이스에 의해 취출 (retrieve) 될 수도 있을 때에 발생할 수도 있는 것과 같이, 시간의 기간에 걸쳐 발생할 수도 있다.
목적지 디바이스 (14) 는 링크 (16) 를 통해 디코딩되어야 할 인코딩된 비디오 데이터를 수신할 수도 있다. 링크 (16) 는 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 이동시킬 수 있는 임의의 타입의 매체 또는 디바이스를 포함할 수도 있다. 하나의 예에서, 링크 (16) 는 소스 디바이스 (12) 가 인코딩된 비디오 데이터를 실시간으로 목적지 디바이스 (14) 로 직접 송신하는 것을 가능하게 하기 위한 통신 매체를 포함할 수도 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라 변조될 수도 있고, 목적지 디바이스 (14) 로 송신될 수도 있다. 통신 매체는 라디오 주파수 (radio frequency; RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들과 같은 임의의 무선 또는 유선 통신 매체를 포함할 수도 있다. 통신 매체는 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷-기반 네트워크의 일부를 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하기 위하여 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
대안적으로, 출력 인터페이스 (22) 는 인코딩된 데이터를 저장 디바이스 (33) 로 출력할 수도 있다. 유사하게, 입력 인터페이스 (28) 는 저장 디바이스 (33) 의 인코딩된 데이터를 액세스할 수도 있다. 저장 디바이스 (33) 는 하드 드라이브, 블루-레이 (Blu-ray) 디스크들, DVD 들, CD-ROM 들, 플래시 메모리, 휘발성 또는 비-휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적당한 디지털 저장 매체들과 같은, 다양한 분산되거나 국소적으로 액세스된 데이터 저장 매체들 중의 임의의 것을 포함할 수도 있다. 추가의 예에서, 저장 디바이스 (33) 는 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오를 유지할 수도 있는 파일 서버 또는 또 다른 중간 저장 디바이스에 대응할 수도 있다. 목적지 디바이스 (14) 는 스트리밍 또는 다운로드를 통해 저장 디바이스 (33) 로부터의 저장된 비디오 데이터를 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장할 수 있으며 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 송신할 수 있는 임의의 타입의 서버일 수도 있다. 일 예의 파일 서버들은 (예컨대, 웹사이트를 위한) 웹 서버, 파일 전송 프로토콜 (file transfer protocol; FTP) 서버, 네트워크 연결 저장 (network attached storage; NAS) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스 (14) 는 인터넷 접속을 포함하는 임의의 표준 데이터 접속을 통해 인코딩된 비디오 데이터를 액세스할 수도 있다. 이것은 파일 서버 상에서 저장된 인코딩된 비디오 데이터를 액세스하기 위하여 적당한 무선 채널 (예컨대, Wi-Fi 접속), 유선 접속 (예컨대, DSL, 케이블 모뎀 등), 또는 양자의 조합을 포함할 수도 있다. 저장 디바이스 (33) 로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 양자의 조합일 수도 있다.
이 개시물의 기법들은 무선 애플리케이션들 또는 세팅들로 반드시 제한되지는 않는다. 기법들은 오버-디-에어 (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 예컨대, 인터넷을 통한 스트리밍 비디오 송신들, 데이터 저장 매체 상에서의 저장을 위한 디지털 비디오 데이터의 인코딩, 데이터 저장 매체 상에서 저장된 디지털 비디오 데이터의 디코딩, 또는 다른 애플리케이션들과 같은 다양한 멀티미디어 애플리케이션들 중의 임의의 것의 지원 하에서 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 시스템 (10) 은 비디오 스트리밍, 비디오 재생, 비디오 브로드캐스팅, 및/또는 화상 통화 (video telephony) 와 같은 애플리케이션들을 지원하기 위하여 일방향 (one-way) 또는 양방향 (two-way) 비디오 송신을 지원하도록 구성될 수도 있다.
또한, 도 1 의 예에서, 비디오 코딩 시스템 (10) 은 파일 생성 디바이스 (34) 를 포함한다. 파일 생성 디바이스 (34) 는 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오 데이터를 수신할 수도 있다. 파일 생성 디바이스 (34) 는 인코딩된 비디오 데이터를 포함하는 파일을 생성할 수도 있다. 목적지 디바이스 (14) 는 파일 생성 디바이스 (34) 에 의해 생성된 파일을 수신할 수도 있다. 다양한 예들에서, 파일 생성 디바이스 (34) 는 다양한 타입들의 컴퓨팅 디바이스들을 포함할 수도 있다. 예를 들어, 파일 생성 디바이스 (34) 는 비디오 인코딩 디바이스, 미디어 인지 네트워크 엘리먼트 (MANE), 서버 컴퓨팅 디바이스, 개인용 컴퓨팅 디바이스, 특수-목적 컴퓨팅 디바이스, 상업용 컴퓨팅 디바이스, 또는 또 다른 타입의 컴퓨팅 디바이스를 포함할 수도 있다. 일부 예들에서, 파일 생성 디바이스 (34) 는 컨텐츠 전달 네트워크의 일부이다. 일부 예들에서, 파일 생성 디바이스 (34) 는 소스 디바이스 (12) 의 일부로서 구현된다. 파일 생성 디바이스 (34) 는 링크 (16) 와 같은 채널을 통해 소스 디바이스 (12) 로부터 인코딩된 비디오 데이터를 수신할 수도 있다. 또한, 목적지 디바이스 (14) 는 링크 (16) 와 같은 채널을 통해 파일 생성 디바이스 (34) 로부터 파일을 수신할 수도 있다. 파일 생성 디바이스 (34) 는 비디오 디바이스로 고려될 수도 있다. 도 1 의 예에서 도시된 바와 같이, 파일 생성 디바이스 (34) 는 인코딩된 비디오 컨텐츠들을 포함하는 파일을 저장하도록 구성된 메모리 (36) 를 포함할 수도 있다. 일부 예들에서, 파일 생성 디바이스 (34) 는 회로부, 또는 하드웨어 회로부 및 소프트웨어의 조합으로 구현될 수도 있다.
다른 예들에서, 소스 디바이스 (12) 또는 또 다른 컴퓨팅 디바이스는 인코딩된 비디오 데이터를 포함하는 파일을 생성할 수도 있다. 그러나, 설명의 용이함을 위하여, 이 개시물은 파일 생성 디바이스 (34) 를 파일을 생성하는 것으로서 설명한다. 그럼에도 불구하고, 파일을 생성하는 파일 생성 디바이스 (34) 의 설명들은 일반적으로 컴퓨팅 디바이스들에 적용가능하다는 것이 이해되어야 한다.
일부 예들에서, MANE, 서버, 또는 다른 타입의 디바이스는 이 개시물의 기법들에 따라 생성된 파일을 저장하도록 구성된 메모리를 포함할 수도 있다. 이 디바이스는 (예컨대, 파일로부터 신택스 엘리먼트들을 획득함으로써) 파일을 프로세싱할 수도 있고, 파일 내의 특정한 컨텐츠를 목적지 디바이스 (14) 와 같은 또 다른 디바이스로 포워딩하기 위한 것과 같은 다양한 목적들을 위하여 획득된 신택스 엘리먼트들을 이용할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 고효율 비디오 코딩 (HEVC) 표준 또는 그 확장과 같은 비디오 압축 표준에 따라 동작할 수도 있다. HEVC 표준은 또한, ISO/IEC 23008-2 로서 지칭될 수도 있다. HEVC 의 설계는 ITU-T 비디오 코딩 전문가 그룹 (Video Coding Experts Group; VCEG) 및 ISO/IEC 동화상 전문가 그룹 (Motion Picture Experts Group; MPEG) 의 비디오 코딩에 관한 합동 협력 팀 (Joint Collaboration Team on Video Coding; JCT-VC) 에 의해 완결되었다. 비디오 인코더 (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 비주얼, ITU-T H.263, ISO/IEC MPEG-4 비주얼, ITU-T H.264 또는 ISO/IEC MPEG-4 AVC 를 포함한다.
대안적으로, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 MPEG 4, Part 10, 진보된 비디오 코딩 (AVC) 으로서 대안적으로 지칭된 ITU-T H.264 표준과 같은 다른 독점적 또는 산업 표준들, 또는 이러한 표준들의 확장들에 따라 동작할 수도 있다. 그러나, 이 개시물의 기법들은 임의의 특정한 코딩 표준으로 제한되지는 않는다. 비디오 압축 표준들의 다른 예들은 그 스케일러블 비디오 코딩 (SVC) 및 멀티뷰 비디오 코딩 (MVC) 확장들을 포함하는, ITU-T H.261, ISO/IEC MPEG-1 비주얼, ITU-T H.262 또는 ISO/IEC MPEG-2 비주얼, ITU-T H.263, ISO/IEC MPEG-4 비주얼, 및 ITU-T H.264 (또한, ISO/IEC MPEG-4 AVC 로서 알려짐) 를 포함한다.
일반적으로, HEVC 에서, 비디오 프레임 또는 픽처는 루마 및 크로마 샘플들의 양자를 포함하는 트리블록 (treeblock) 들 또는 최대 코딩 유닛 (largest coding unit; LCU) 들의 시퀀스로 분할될 수도 있다. 트리블록들은 또한, 코딩 트리 유닛 (Coding Tree Unit; CTU) 들로서 지칭될 수도 있다. 트리블록은 H.264/AVC 표준의 매크로블록 (macroblock) 과 유사한 목적을 가진다. 슬라이스는 코딩 순서에서의 다수의 연속 트리블록들을 포함한다. 비디오 프레임 또는 픽처는 하나 이상의 슬라이스들로 파티셔닝될 수도 있다. 각각의 트리블록은 쿼드트리 (quadtree) 에 따라 코딩 유닛 (CU) 들로 분할될 수도 있다. 예를 들어, 쿼드트리의 루트 노드 (root node) 로서의 트리블록은 4 개의 자식 노드 (child node) 들로 분할될 수도 있고, 각각의 자식 노드는 궁극적으로 부모 노드 (parent node) 일 수도 있고 또 다른 4 개의 자식 노드들로 분할될 수도 있다. 쿼드트리의 리프 노드 (leaf node) 로서의 최종적인 분할되지 않은 자식 노드는 코딩 노드, 즉, 코딩된 비디오 블록을 포함한다. 코딩된 비트스트림과 연관된 신택스 데이터는 트리블록이 분할될 수도 있는 최대 횟수를 정의할 수도 있고, 또한, 코딩 노드들의 최소 크기 (size) 를 정의할 수도 있다.
CU 는 코딩 노드와, 코딩 노드와 연관된 예측 유닛 (prediction unit; PU) 들 및 변환 유닛 (transform unit; TU) 들을 포함한다. CU 의 크기는 코딩 노드의 크기에 대응하고, 형상에 있어서 정사각형이어야 한다. CU 의 크기는 8x8 픽셀들로부터, 64x64 픽셀들 이상의 최대치를 갖는 CTU 의 크기까지의 범위일 수도 있다. 각각의 CU 는 하나 이상의 PU 들 및 하나 이상의 TU 들을 포함할 수도 있다. CU 와 연관된 신택스 데이터는 예를 들어, 하나 이상의 PU 들로의 CU 의 파티셔닝을 설명할 수도 있다. 파티셔닝 모드들은 CU 가 스킵 (skip) 또는 직접 모드 인코딩되는지, 인트라-예측 모드 인코딩되는지, 또는 인터-예측 모드 인코딩되는지 여부의 사이에서 상이할 수도 있다. PU 들은 형상에 있어서 비-정사각형 (non-square) 이 되도록 파티셔닝될 수도 있다. CU 와 연관된 신택스 데이터는 또한, 예를 들어, 쿼드트리에 따른 하나 이상의 TU 들로의 CU 의 파티셔닝을 설명할 수도 있다. TU 는 형상에 있어서 정사각형 또는 비-정사각형일 수 있다.
HEVC 표준은 상이한 CU 들에 대해 상이할 수도 있는, TU 들에 따른 변환들을 허용한다. TU 들은 전형적으로, 파티셔닝된 LCU 에 대해 정의된 소정의 CU 내에서의 PU 들의 크기에 기초하여 크기가 정해지지만, 이것은 항상 그러하지는 않을 수도 있다. TU 들은 전형적으로 PU 들과 동일한 크기이거나 PU 들보다 더 작다. 일부 예들에서, CU 에 대응하는 잔차 샘플들은 "잔차 쿼드 트리 (residual quad tree)" (RQT) 로서 알려진 쿼드트리 구조를 이용하여 더 작은 유닛들로 재분할될 수도 있다. RQT 의 리프 노드들은 TU 들로서 지칭될 수도 있다. TU 들과 연관된 픽셀 차이 값들은 양자화될 수도 있는 변환 계수들을 생성하기 위하여 변환될 수도 있다.
일반적으로, PU 는 예측 프로세스에 관련된 데이터를 포함한다. 예를 들어, PU 가 인트라-모드 (intra-mode) 인코딩될 때, PU 는 PU 에 대한 인트라-예측 (intra-prediction) 모드를 설명하는 데이터를 포함할 수도 있다. 또 다른 예로서, PU 가 인터-모드 인코딩될 때, PU 는 PU 에 대한 모션 벡터를 정의하는 데이터를 포함할 수도 있다. PU 에 대한 모션 벡터를 정의하는 데이터는 예를 들어, 모션 벡터의 수평 컴포넌트, 모션 벡터의 수직 컴포넌트, 모션 벡터에 대한 해상도 (예컨대, 1/4 픽셀 정밀도 또는 1/8 픽셀 정밀도), 모션 벡터가 지시하는 참조 픽처, 및/또는 모션 벡터에 대한 참조 픽처 리스트 (예컨대, List 0, List 1) 를 설명할 수도 있다.
일반적으로, TU 는 변환 및 양자화 프로세스들을 위하여 이용된다. 하나 이상의 PU 들을 가지는 소정의 CU 는 또한, 하나 이상의 TU 들을 포함할 수도 있다. 예측에 후속하여, 비디오 인코더 (20) 는 PU 에 대응하는 잔차 값들을 계산할 수도 있다. 잔차 값들은, 변환 계수들로 변환되고, 양자화되고, TU 들을 이용하여 스캔 (scan) 되어 엔트로피 코딩을 위한 직렬화된 변환 계수들을 생성할 수도 있는 픽셀 차이 값들을 포함한다. 이 개시물은 전형적으로, CU 의 코딩 노드 (즉, 코딩 블록) 를 지칭하기 위하여 용어 "비디오 블록" 을 이용한다. 일부 특정 경우들에는, 이 개시물은 또한, 트리블록, 즉, 코딩 노드와 PU 들 및 TU 들을 포함하는 LCU 또는 CU 를 지칭하기 위하여 용어 "비디오 블록" 을 이용할 수도 있다.
비디오 시퀀스는 전형적으로 일련의 비디오 프레임들 또는 픽처들을 포함한다. 픽처의 각각의 슬라이스는 개개의 슬라이스에 대한 인코딩 모드를 설명하는 슬라이스 신택스 데이터를 포함할 수도 있다. 비디오 인코더 (20) 는 전형적으로 비디오 데이터를 인코딩하기 위하여 개별적인 비디오 슬라이스들 내에서의 비디오 블록들에 대해 동작한다. 비디오 블록은 CU 내에서의 코딩 노드에 대응할 수도 있다. 비디오 블록들은 고정된 또는 변동되는 크기들을 가질 수도 있고, 특정된 코딩 표준에 따라 크기에 있어서 상이할 수도 있다.
CU 의 PU 들을 이용한 인트라-예측 또는 인터-예측 코딩에 후속하여, 비디오 인코더 (20) 는 CU 의 TU 들에 대한 잔차 데이터를 계산할 수도 있다. PU 들은 공간 도메인 (또한, 픽셀 도메인으로서 지칭됨) 에서 픽셀 데이터를 포함할 수도 있고, TU 들은 잔차 비디오 데이터에 대한 변환, 예컨대, 이산 코사인 변환 (discrete cosine transform; DCT), 정수 변환 (integer transform), 웨이블렛 변환 (wavelet transform), 또는 개념적으로 유사한 변환의 적용에 후속하는 변환 도메인에서 계수들을 포함할 수도 있다. 잔차 데이터는 인코딩되지 않은 픽처의 픽셀들과, PU 들에 대응하는 예측 값들과의 사이의 픽셀 차이들에 대응할 수도 있다. 비디오 인코더 (20) 는 CU 에 대한 잔차 데이터를 포함하는 TU 들을 형성할 수도 있고, 그 다음으로, CU 에 대한 변환 계수들을 생성하기 위하여 TU 들을 변환할 수도 있다.
변환 계수들을 생성하기 위한 임의의 변환들에 후속하여, 비디오 인코더 (20) 는 변환 계수들의 양자화를 수행할 수도 있다. 양자화는 일반적으로, 계수들을 표현하기 위하여 이용된 데이터의 양을 아마도 감소시키기 위하여 변환 계수들이 양자화되어 추가의 압축을 제공하는 프로세스를 지칭한다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 심도 (bit depth) 를 감소시킬 수도 있다.
1 차원 벡터를 형성하기 위하여 양자화된 변환 계수들을 스캔한 후, 비디오 인코더 (20) 는 예를 들어, 컨텍스트 적응 가변 길이 코딩 (context adaptive variable length coding; CAVLC), 컨텍스트 적응 2 진 산술 코딩 (context adaptive binary arithmetic coding; CABAC), 신택스-기반 컨텍스트-적응 2 진 산술 코딩 (syntax-based context-adaptive binary arithmetic coding; SBAC), 확률 간격 파티셔닝 엔트로피 (Probability Interval Partitioning Entropy; PIPE) 코딩 또는 또 다른 엔트로피 인코딩 방법론에 따라 1 차원 벡터를 엔트로피 인코딩할 수도 있다. 비디오 인코더 (20) 는 또한, 비디오 데이터를 디코딩함에 있어서 비디오 디코더 (30) 에 의한 이용을 위한 인코딩된 비디오 데이터와 연관된 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다.
비디오 인코더 (20) 는 코딩된 픽처들 및 연관된 데이터의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 출력할 수도 있다. 용어 "비트스트림" 은 네트워크 추상화 계층 (NAL) 유닛 스트림 (예컨대, NAL 유닛들의 시퀀스) 또는 바이트 스트림 (예컨대, HEVC 표준의 부록 B 에 의해 특정된 바와 같은 시작 코드 프리픽스들 및 NAL 유닛들을 포함하는 NAL 유닛 스트림의 캡슐화) 의 어느 하나를 지칭하기 위하여 이용된 집합적인 용어일 수도 있다. NAL 유닛은 에뮬레이션 방지 비트 (emulation prevention bit) 들이 필요한 바와 같이 산재된 원시 바이트 시퀀스 페이로드 (raw byte sequence payload; RBSP) 의 형태로, NAL 유닛에서의 데이터의 타입의 표시 및 그 데이터를 포함하는 바이트들을 포함하는 신택스 구조이다. NAL 유닛들의 각각은 NAL 유닛 헤더를 포함할 수도 있고, RBSP 를 캡슐화 (encapsulate) 할 수도 있다. NAL 유닛 헤더는 NAL 유닛 타입 코드를 표시하는 신택스 엘리먼트를 포함할 수도 있다. NAL 유닛의 NAL 유닛 헤더에 의해 특정된 NAL 유닛 타입 코드는 NAL 유닛의 타입을 표시한다. RBSP 는 NAL 유닛 내에서 캡슐화되는 정수 개수의 바이트들을 포함하는 신택스 구조일 수도 있다. 일부 사례들에서, RBSP 는 제로 비트들을 포함한다.
상이한 타입들의 NAL 유닛들은 상이한 타입들의 RBSP 들을 캡슐화할 수도 있다. 예를 들어, 제 1 타입의 NAL 유닛은 픽처 파라미터 세트 (picture parameter set; PPS) 에 대한 RBSP 를 캡슐화할 수도 있고, 제 2 타입의 NAL 유닛은 슬라이스 세그먼트에 대한 RBSP 를 캡슐화할 수도 있고, 제 3 타입의 NAL 유닛은 보충 강화 정보 (Supplemental Enhancement Information; SEI) 에 대한 RBSP 를 캡슐화할 수도 있는 등과 같다. (파라미터 세트들 및 SEI 메시지들에 대한 RBSP 들과 대조적으로) 비디오 코딩 데이터에 대한 RBSP 들을 캡슐화하는 NAL 유닛들은 비디오 코딩 계층 (video coding layer; VCL) NAL 유닛들로서 지칭될 수도 있다. VCL NAL 유닛 이외의 임의의 NAL 유닛은 비-VCL (non-VCL) NAL 유닛으로서 지칭될 수도 있다. 파라미터 세트들 (예컨대, 비디오 파라미터 세트 (video parameter set; VPS) 들, 시퀀스 파라미터 세트 (sequence parameter set; SPS) 들, PPS 들, 또는 다른 타입들의 파라미터 세트들) 을 포함하는 NAL 유닛들은 파라미터 세트 NAL 유닛들로서 지칭될 수도 있다.
이 개시물은 코딩된 슬라이스 NAL 유닛으로서 세그먼트 슬라이스에 대한 RBSP 를 캡슐화하는 NAL 유닛을 지칭할 수도 있다. HEVC 에서 정의된 바와 같이, 슬라이스 세그먼트는 타일 스캔에서 연속으로 순서화되고 단일 NAL 유닛 내에 포함된 정수 개수의 CTU 들이다. 대조적으로, HEVC 에서는, 슬라이스가 하나의 독립적인 슬라이스 세그먼트, 및 동일한 액세스 유닛 내에서 (만약 존재한다면) 다음 독립적인 슬라이스 세그먼트를 선행하는 (만약 존재한다면) 모든 후속 종속적인 슬라이스 세그먼트들 내에 포함된 정수 개수의 CTU 들일 수도 있다. 독립적인 슬라이스 세그먼트는 그것에 대한 슬라이스 세그먼트 헤더의 신택스 엘리먼트들의 값들이 선행하는 슬라이스 세그먼트에 대한 값들로부터 추론되지 않는 슬라이스 세그먼트이다. 종속적인 슬라이스 세그먼트는 그것에 대한 슬라이스 세그먼트 헤더의 일부 신택스 엘리먼트들의 값들이 디코딩 순서에서의 선행하는 독립적인 슬라이스 세그먼트에 대한 값들로부터 추론되는 슬라이스 세그먼트이다. 코딩된 슬라이스 NAL 유닛에 대한 RBSP 는 슬라이스 세그먼트 헤더 및 슬라이스 데이터를 포함할 수도 있다. 슬라이스 세그먼트 헤더는 슬라이스 세그먼트에서 표현된 최초 또는 모든 CTU 들에 속하는 데이터 엘리먼트들을 포함하는 코딩된 슬라이스 세그먼트의 일부이다. 슬라이스 헤더는 현재의 슬라이스 세그먼트인 독립적인 슬라이스 세그먼트, 또는 디코딩 순서에서 현재의 종속적인 슬라이스 세그먼트를 선행하는 가장 최근의 독립적인 슬라이스 세그먼트의 슬라이스 세그먼트 헤더이다.
비디오 디코더 (30) 는 비디오 인코더 (20) 에 의해 생성된 비트스트림을 수신할 수도 있다. 게다가, 비디오 디코더 (30) 는 비트스트림으로부터 신택스 엘리먼트들을 획득하기 위하여 비트스트림을 파싱 (parse) 할 수도 있다. 비디오 디코더 (30) 는 비트스트림으로부터 획득된 신택스 엘리먼트들에 적어도 부분적으로 기초하여 비디오 데이터의 픽처들을 복원할 수도 있다. 비디오 데이터를 복원하기 위한 프로세스는 비디오 인코더 (20) 에 의해 수행된 프로세스와 일반적으로 상반적일 수도 있다. 예를 들어, 비디오 디코더 (30) 는 현재의 CU 의 PU 들에 대한 예측 블록들을 결정하기 위하여 PU 들의 모션 벡터들을 이용할 수도 있다. 게다가, 비디오 디코더 (30) 는 현재의 CU 의 TU 들의 계수 블록들을 역양자화할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 TU 들의 변환 블록들을 복원하기 위하여 계수 블록들에 대해 역변환들을 수행할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 PU 들에 대한 예측 블록들의 샘플들을 현재의 CU 의 TU 들의 변환 블록들의 대응하는 샘플들에 추가함으로써, 현재의 CU 의 코딩 블록들을 복원할 수도 있다. 픽처의 각각의 CU 에 대한 코딩 블록들을 복원함으로써, 비디오 디코더 (30) 는 픽처를 복원할 수도 있다.
위에서 논의된 바와 같이, 비디오 인코더 (20) 는 일련의 NAL 유닛들을 포함하는 비트스트림을 생성할 수도 있다. 멀티-계층 비디오 코딩에서, 비트스트림의 상이한 NAL 유닛들은 비트스트림의 상이한 계층들과 연관될 수도 있다. 계층은 동일한 계층 식별자를 가지는 VCL NAL 유닛들 및 연관된 비-VCL NAL 유닛들의 세트로서 정의될 수도 있다. 예를 들어, NAL 유닛들은 헤더들 (즉, NAL 유닛 헤더들) 및 페이로드들 (예컨대, RBSP 들) 을 포함할 수도 있다. NAL 유닛 헤더들은 계층 식별자 신택스 엘리먼트들 (예컨대, HEVC 에서의 nuh_layer_id 신택스 엘리먼트들) 을 포함할 수도 있다. 상이한 값들을 특정하는 계층 식별자 신택스 엘리먼트들을 가지는 NAL 유닛들은 비트스트림의 상이한 "계층들" 에 속한다. 이에 따라, 멀티-계층 코딩 (예컨대, MV-HEVC, SVC, 또는 SHVC) 에서, NAL 유닛의 계층 식별자 신택스 엘리먼트는 NAL 유닛의 계층 식별자 (즉, 계층 ID) 를 특정한다.
계층은 멀티-뷰 비디오 코딩에서의 뷰와 동등할 수도 있다. 멀티-뷰 비디오 코딩에서, 계층은 상이한 시간 인스턴스 (instance) 들 (예컨대, 상이한 출력 시간들) 을 갖는, 동일한 계층의 모든 뷰 컴포넌트들을 포함할 수 있다. 멀티-계층 비디오 코딩에서, 용어 "액세스 유닛" 은 동일한 시간 인스턴스에 대응하는 픽처들의 세트를 지칭할 수도 있다. 예를 들어, 액세스 유닛에서의 모든 픽처들은 동일한 출력 시간을 가질 수도 있다. 이에 따라, "뷰 컴포넌트" 는 단일 액세스 유닛에서의 뷰의 코딩된 표현일 수도 있다.
일부 예들에서, 뷰 컴포넌트는 텍스처 뷰 컴포넌트 (texture view component) (즉, 텍스처 픽처) 또는 심도 뷰 컴포넌트 (depth view component) (즉, 심도 픽처) 를 포함할 수도 있다. 멀티-뷰 비디오 코딩의 일부 예들에서, 계층은 특정 뷰의 코딩된 심도 픽처들, 또는 특정 뷰의 코딩된 텍스처 픽처들의 어느 하나를 포함하지만, 심도 픽처들 및 텍스처 픽처들의 양자를 포함하는 것은 아니다. 멀티-뷰 비디오 코딩의 다른 예들에서, 계층은 특정 뷰의 텍스처 뷰 컴포넌트들 및 심도 뷰 컴포넌트들의 양자를 포함한다.
스케일러블 비디오 코딩의 컨텍스트에서는, 계층이 전형적으로 다른 계층들에서의 코딩된 픽처들과는 상이한 비디오 특성들을 가지는 코딩된 픽처들에 대응한다. 이러한 비디오 특성들은 전형적으로 공간적 해상도 및 품질 레벨 (예컨대, 신호-대-잡음 비율) 을 포함한다.
비트스트림의 각각의 개개의 계층에 대하여, 하위 계층에서의 데이터는 임의의 상위 계층에서의 데이터를 참조하지 않으면서 디코딩될 수도 있다. 스케일러블 비디오 코딩에서는, 예를 들어, 기본 계층에서의 데이터가 강화 계층 (enhancement layer) 에서의 데이터를 참조하지 않으면서 디코딩될 수도 있다. 일반적으로, NAL 유닛들은 단일 계층의 데이터를 오직 캡슐화할 수도 있다. 이에 따라, 비트스트림의 최상위 나머지 계층 (예컨대, 최상위 계층 식별자와 연관된 계층) 의 데이터를 캡슐화하는 NAL 유닛들은 비트스트림의 나머지 계층들에서의 데이터의 디코딩가능성에 영향을 주지 않으면서 비트스트림으로부터 제거될 수도 있다. 멀티-계층 비디오 코딩에서는, 비디오 디코더가 임의의 다른 계층의 데이터를 참조하지 않으면서 계층에서의 픽처들을 디코딩할 수 있을 경우, 계층은 "기본 계층" 으로서 지칭될 수도 있다. HEVC 및 다른 비디오 코딩 사양들에서는, NAL 유닛이 기본 계층 내에 있을 경우, NAL 유닛의 계층 식별자는 0 과 동일하다. NAL 유닛이 멀티-계층 코딩에서의 기본 계층과 관련되지 않을 경우, NAL 유닛의 계층 식별자는 비-제로 (non-zero) 값을 가질 수도 있다.
스케일러블 비디오 코딩에서, 기본 계층 이외의 계층들은 "강화 계층" 으로서 지칭될 수도 있고, 비트스트림으로부터 디코딩된 비디오 데이터의 시각적 품질을 강화시키는 정보를 제공할 수도 있다. 스케일러블 비디오 코딩은 공간적 해상도, 신호-대-잡음 비율 (즉, 품질), 또는 시간적 레이트를 강화시킬 수 있다.
멀티-계층 비디오 코딩은 인터-계층 예측을 지원할 수도 있다. 인터-계층 예측은 HEVC 및 다른 비디오 코딩 사양들에서 이용된 인터 예측과 유사하고, 동일한 신택스 엘리먼트들을 이용할 수도 있다. 그러나, 비디오 코더가 (PU 와 같은) 현재의 비디오 유닛에 대해 인터-계층 예측을 수행할 때, 비디오 코더는 참조 픽처로서, 현재의 비디오 유닛과 동일한 액세스 유닛 내에 있지만 상이한 계층 내에 있는 픽처를 이용할 수도 있다. 대조적으로, 기존의 인터 예측은 참조 픽처들로서, 상이한 액세스 유닛들에서의 픽처들을 오직 이용한다. 비-기본 계층 중의 하나에서의 픽처를 코딩할 때, 픽처가 상이한 계층 내에 있지만 비디오 코더가 현재 코딩하고 있는 픽처와 동일한 시간 인스턴스 (즉, 액세스 유닛) 내에 있을 경우에는, 비디오 코더가 픽처를 참조 픽처 리스트 내로 추가할 수도 있다.
또한, 계층 내의 일부 픽처들은 동일한 계층 내의 다른 픽처들을 참조하지 않으면서 디코딩될 수도 있다. 이에 따라, 계층의 어떤 픽처들의 데이터를 캡슐화하는 NAL 유닛들은 계층에서의 다른 픽처들의 디코딩가능성에 영향을 주지 않으면서 비트스트림으로부터 제거될 수도 있다. 이러한 픽처들의 데이터를 캡슐화하는 NAL 유닛들을 제거하는 것은 비트스트림의 프레임 레이트를 감소시킬 수도 있다. 계층 내의 다른 픽처들을 참조하지 않으면서 디코딩될 수도 있는 계층 내의 픽처들의 서브세트는 "서브-계층 (sub-layer)", "시간적 계층", 또는 "시간적 서브-계층" 으로서 본원에서 지칭될 수도 있다. 이에 따라, 시간적 스케일러빌러티 (temporal scalability) 는 특정한 시간적 레벨을 갖는 픽처들의 그룹을 서브-계층 (sub-layer) (즉, 시간적 계층) 으로서 정의함으로써 하나의 계층 내에서 달성될 수도 있다. NAL 유닛들은 시간적 식별자 (예컨대, HEVC 에서의 temporal_id) 신택스 엘리먼트들을 포함할 수도 있다. NAL 유닛의 시간적 식별자 신택스 엘리먼트는 NAL 유닛의 시간적 식별자를 특정한다. NAL 유닛의 시간적 식별자는 NAL 유닛이 연관되는 시간적 서브-계층을 식별한다. 이에 따라, 비트스트림의 각각의 시간적 서브-계층은 상이한 시간적 식별자와 연관될 수도 있다. 제 1 NAL 유닛의 시간적 식별자가 제 2 NAL 유닛의 시간적 식별자보다 더 작을 경우, 제 1 NAL 유닛에 의해 캡슐화된 데이터는 제 2 NAL 유닛에 의해 캡슐화된 데이터를 참조하지 않으면서 디코딩될 수도 있다.
비트스트림은 복수의 동작 포인트들과 연관될 수도 있다. 일부 예들에서, 비트스트림의 각각의 동작 포인트는 계층 식별자들의 세트 (예컨대, nuh_layer_id 값들의 세트) 및 시간적 식별자와 연관될 수도 있다. 계층 식별자들의 세트는 OpLayerIdSet 로서 나타내어질 수도 있고, 시간적 식별자는 TemporalID 로서 나타내어질 수도 있다. NAL 유닛의 계층 식별자가 계층 식별자들의 동작 포인트의 세트 내에 있고, NAL 유닛의 시간적 식별자가 동작 포인트의 시간적 식별자 이하일 경우, NAL 유닛은 동작 포인트와 연관된다. 이에 따라, 동작 포인트는 서브-비트스트림 추출 프로세스에 대한 입력들로서 또 다른 비트스트림, 타겟 최상위 TemporalId, 및 타겟 계층 식별자 리스트를 갖는 서브-비트스트림 추출 프로세스의 동작에 의해 또 다른 비트스트림으로부터 생성된 비트스트림일 수도 있다. 동작 포인트는 동작 포인트와 연관되는 각각의 NAL 유닛을 포함할 수도 있다. 동작 포인트는 동작 포인트와 연관되지 않는 VCL NAL 유닛들을 포함하지 않는다.
파일 포맷들 및 파일 포맷 표준들은 지금부터 간단하게 논의될 것이다. 파일 포맷 표준들은 ISO 기본 미디어 파일 포맷 ("Information technology (정보 기술) - Coding of audio-visual objects (오디오-비주얼 객체들의 코딩) - Part 12: ISO base media file format (ISO 기본 미디어 파일 포맷)", ISO/IEC 14496-12, fifth edition, February 20, 2015, 이하, "ISO/IEC 14996-12") 과, MPEG-4 파일 포맷 ("Information technology - Coding of audio-visual objects - Part 14: MP4 file format (MP4 파일 포맷)", ISO/IEC 14496-14, First Edition, November 15, 2003, 이하, "ISO/IEC 14496-14"), 3GPP 파일 포맷 (3GPP TS 26.244), 및 네트워크 추상화 계층 (NAL) 유닛들에 기초한 비디오 압축을 위한 파일 포맷 ("Information technology - Coding of audio-visual objects - Part 15: Carriage of network abstraction layer (NAL) unit structure video in the ISO base media file format (ISO 기본 미디어 파일 포맷에서의 네트워크 추상화 계층 (NAL) 유닛 구조 비디오의 캐리지)", ISO/IEC 14496-15:2014(E), 이하, "ISO/IEC 14996-15") 을 포함하는, ISOBMFF 로부터 파생된 다른 파일 포맷 표준들을 포함한다. 이에 따라, ISO/IEC 14496-12 는 ISO 기본 미디어 파일 포맷을 특정한다. 다른 문서들은 특정 애플리케이션들을 위하여 ISO 기본 미디어 파일 포맷을 확장시킨다. 예를 들어, ISO/IEC 14496-15 는 ISO 기본 미디어 파일 포맷에서의 NAL 유닛 구조화된 비디오의 캐리지 (carriage) 를 설명한다. H.264/AVC 및 HEVC 뿐만 아니라 그 확장들은 NAL 유닛 구조화된 비디오의 예들이다. ISO/IEC 14496-15 는 H.264/AVC NAL 유닛들의 캐리지를 설명하는 섹션들을 포함한다. 추가적으로, ISO/IEC 14496-15 의 섹션 8 은 HEVC NAL 유닛들의 캐리지를 설명한다. 이에 따라, ISO/IEC 14496-15 의 섹션 8 은 HEVC 파일 포맷을 설명한다고 말해진다. 114차 MPEG 회의 후에, 몇몇 국가 단체들로부터 수신된 코멘트들에 기초하여, ISO/IEC 14496-15 초안 사양의 새로운 버전에 적용될 ISO/IEC 14496-15 에 대한 일부 변경들을 포함하는 배치 문서가 준비되었다. 이 배치 문서는 "MPEG 출력 문서 N15297" 로서 지칭된다.
ISOBMFF 는 AVC 파일 포맷과 같은 많은 코덱 캡슐화 포맷들 뿐만 아니라, MPEG-4 파일 포맷, 3GPP 파일 포맷 (3GP), 및 DVB 파일 포맷과 같은 많은 멀티미디어 컨테이너 (multimedia container) 포맷들에 대한 기초로서 이용된다. 오디오 및 비디오와 같은 연속적인 미디어에 추가하여, 이미지들과 같은 정적 미디어 뿐만 아니라 메타데이터는 ISOMBFF 를 준수하는 파일에서 저장될 수 있다. ISOBMFF 에 따라 구조화된 파일들은, 로컬 미디어 파일 재생, 원격 파일, 동적 적응 스트리밍 오버 HTTP (Dynamic Adaptive Streaming over HTTP; DASH) 를 위한 세그먼트들, 스트리밍되어야 할 컨텐츠에 대한 컨테이너들, 및 그 패킷화 명령들의 프로그레시브 다운로딩, 및 수신된 실시간 미디어 스트림들의 레코딩을 포함하는 많은 목적들을 위하여 이용될 수도 있다. 이에 따라, 저장을 위하여 원래 설계되지만, ISOBMFF 는 스트리밍을 위하여, 예컨대, 프로그레시브 다운로드 또는 DASH 를 위하여 소중한 것으로 입증하였다. 스트리밍의 목적들을 위하여, ISOBMFF 에서 정의된 영화 프래그먼트 (movie fragment) 들이 이용될 수 있다. 오디오 및 비디오와 같은 연속적인 미디어에 추가하여, 이미지들과 같은 정적 미디어 뿐만 아니라 메타데이터는 ISOMBFF 를 준수하는 파일에서 저장될 수 있다.
HEVC 파일 포맷을 준수하는 파일은 박스 (box) 들로서 칭해진 일련의 객체들을 포함할 수도 있다. 박스는 고유한 타입 식별자 및 길이에 의해 정의된 객체-지향된 구축 블록 (building block) 일 수도 있다. 박스는 ISOBMFF 에서의 기초적인 신택스 구조이고, 4-문자 코딩된 박스 타입, 박스의 바이트 카운트, 및 페이로드를 포함할 수도 있다. 다시 말해서, 박스는 코딩된 박스 타입, 박스의 바이트 카운트, 및 페이로드를 포함하는 신택스 구조일 수도 있다. 일부 사례들에서, HEVC 파일 포맷을 준수하는 파일에서의 모든 데이터는 박스들 내에서 포함될 수도 있고, 박스 내에 있지 않은 파일에서는 데이터가 없을 수도 있다. 이에 따라, ISOBMFF 파일은 박스들의 시퀀스로 구성될 수도 있고, 박스들은 다른 박스들을 포함할 수도 있다. 예를 들어, 박스의 페이로드는 하나 이상의 추가적인 박스들을 포함할 수도 있다. 이 개시물에서의 어딘가에서 상세하게 설명된 도 8 및 도 9 는 이 개시물의 하나 이상의 기법들에 따라, 파일 내에서의 일 예의 박스들을 도시한다.
ISOBMFF 를 준수하는 파일은 다양한 타입들의 박스들을 포함할 수도 있다. 예를 들어, ISOBMFF 를 준수하는 파일은 파일 타입 박스, 미디어 데이터 박스, 영화 박스, 영화 프래그먼트 박스 및 등을 포함할 수도 있다. 이 예에서, 파일 타입 박스는 파일 타입 및 호환성 정보를 포함한다. 미디어 데이터 박스는 샘플들 (예컨대, 코딩된 픽처들) 을 포함할 수도 있다. 영화 박스 ("moov") 는 파일에서 존재하는 연속적인 미디어 스트림들의 메타데이터를 포함한다. 연속적인 미디어 스트림들은 트랙 (track) 으로서 파일에서 표현될 수도 있다. 예를 들어, 영화 박스는 영화에 관한 메타데이터 (예컨대, 샘플들 사이의 논리적 및 타이밍 관계들, 및 또한, 샘플들의 로케이션들로의 포인터들) 를 포함할 수도 있다. 영화 박스들은 몇몇 타입들의 서브-박스 (sub-box) 들을 포함할 수도 있다. 영화 박스에서의 서브-박스들은 하나 이상의 트랙 박스 (track box) 들을 포함할 수도 있다. 트랙 박스는 영화의 개별적인 트랙에 대한 정보를 포함할 수도 있다. 트랙 박스는 단일 트랙의 전체적인 정보를 특정하는 트랙 헤더 박스를 포함할 수도 있다. 게다가, 트랙 박스는 미디어 정보 박스를 포함하는 미디어 박스를 포함할 수도 있다. 미디어 정보 박스는 트랙에서의 미디어 샘플들을 인덱싱하는 데이터를 포함하는 샘플 테이블 박스를 포함할 수도 있다. 샘플 테이블 박스에서의 정보는 시간에서의 샘플들과, 트랙의 샘플들의 각각에 대하여, 타입, 크기, 컨테이너, 및 샘플의 그 컨테이너로의 오프셋을 위치시키기 위하여 이용될 수도 있다. 이에 따라, 트랙에 대한 메타데이터는 트랙 박스 ("trak") 에서 동봉되는 반면, 트랙의 미디어 컨텐츠는 미디어 데이터 박스 ("mdat") 에서, 또는 별도의 파일에서 직접적으로 중의 어느 하나로 동봉된다. 트랙들에 대한 미디어 컨텐츠는 오디오 또는 비디오 액세스 유닛들과 같은 샘플들의 시퀀스를 포함하거나 샘플들의 시퀀스로 구성된다.
ISOBMFF 는 다음 타입들의 트랙들을 특정한다: 기초적인 미디어 스트림을 포함하는 미디어 트랙, 미디어 송신 명령들을 포함하거나 수신된 패킷 스트림을 표현하는 것 중의 어느 하나인 힌트 트랙, 및 시간-동기화된 메타데이터를 포함하는 타이밍 정해진 메타데이터 트랙. 각각의 트랙에 대한 메타데이터는, 각각이 트랙에서 이용된 코딩 또는 캡슐화 포맷 및 그 포맷을 프로세싱하기 위하여 이용된 초기화 데이터를 제공하는 샘플 설명 엔트리들의 리스트를 포함한다. 각각의 샘플은 트랙의 샘플 설명 엔트리들 중의 하나와 연관된다.
ISOBMFF 는 다양한 메커니즘들을 갖는 샘플-특정 메타데이터를 특정하는 것을 가능하게 한다. 샘플 테이블 박스 ("stbl") 내의 특정 박스들은 공통적인 필요성들에 대하여 응답하도록 표준화되었다. 샘플 테이블 박스는 트랙에서의 미디어 샘플들의 모든 시간 및 데이터 인덱싱을 포함하는 샘플 테이블을 포함한다. 샘플 테이블 박스에서의 테이블들을 이용하면, 시간에서의 샘플들을 위치시키고, 그 타입 (예컨대, I-프레임인지 또는 아닌지) 을 결정하고, 그 크기, 컨테이너, 및 그 컨테이너로의 오프셋을 결정하는 것이 가능할 수도 있다.
예를 들어, 동기 샘플 박스 (Sync Sample box) ("stss") 는 샘플 테이블 박스 내의 박스이다. 동기 샘플 박스는 트랙의 랜덤 액세스 샘플들을 열거하기 위하여 이용된다. 이 개시물은 동기 샘플 박스에 의해 열거된 샘플을 동기 샘플로서 지칭할 수도 있다. 또 다른 예에서, 샘플 그룹화 메커니즘은 파일에서의 샘플 그룹 설명 엔트리로서 특정된 동일한 성질을 공유하는 샘플들의 그룹들로의, 4-문자 그룹화 타입에 따른 샘플들의 맵핑을 가능하게 한다. 몇몇 그룹화 타입들은 ISOBMFF 에서 특정되었다.
ISOBMFF 사양은 DASH 와의 이용을 위하여 6 개의 타입들의 스트림 액세스 포인트 (Stream Access Point; SAP) 들을 특정한다. 최초의 2 개의 SAP 타입들 (타입들 1 및 2) 은 H.264/AVC 및 HEVC 에서의 IDR 픽처들에 대응한다. 제 3 SAP 타입 (타입 3) 은 개방-픽처들의 그룹 (Group of Pictures; GOP) 랜덤 액세스 포인트들, 이 때문에, HEVC 에서의 파손된 링크 액세스 (Broken Link Access; BLA) 또는 클린 랜덤 액세스 (Clean Random Access; CRA) 픽처들에 대응한다. 제 4 SAP 타입 (타입 4) 은 점진적 디코딩 리프레시 (gradual decoding refresh; GDR) 랜덤 액세스 포인트들에 대응한다.
영화 프래그먼트 박스는 상단-레벨 박스이다. 각각의 영화 프래그먼트 박스는 영화 박스에서 이전에 있었을 정보를 제공한다. 영화 프래그먼트 박스는 하나 이상의 트랙 프래그먼트 ("traf") 박스들을 포함할 수도 있다. 영화 프래그먼트 내에서는, 트랙 당 제로 이상인 트랙 프래그먼트들의 세트가 있다. 트랙 프래그먼트들은 결국, 제로 이상의 트랙 런 (track run) 들을 포함하고, 그 각각은 그 트랙에 대한 샘플들의 인접한 런을 문서화한다. 예를 들어, 각각의 트랙 런은 디코딩 순서와 같은 어떤 순서에서 인접한 픽처들의 샘플들을 포함할 수도 있다. 트랙 프래그먼트 박스는 14496-12 사양에서 정의되고, 하나 이상의 트랙 프래그먼트들에 대한 메타데이터를 포함한다. 예를 들어, 트랙 프래그먼트 박스는 트랙 ID, 기본 데이터 오프셋, 샘플 설명 인덱스, 디폴트 샘플 기간, 디폴트 샘플 크기, 및 디폴트 샘플 플래그들을 표시하는 트랙 프래그먼트 헤더 박스를 포함할 수도 있다. 트랙 프래그먼트 박스는, 각각이 트랙에 대한 샘플들의 인접한 세트를 문서화하는 하나 이상의 트랙 프래그먼트 런 박스들을 포함할 수도 있다. 예를 들어, 트랙 프래그먼트 박스는 샘플 카운트, 데이터 오프셋, 샘플 플래그들, 샘플 기간, 샘플 크기, 샘플 구성 시간 오프셋, 및 등을 표시하는 신택스 엘리먼트들을 포함할 수도 있다. 이 구조들 내에서는, 많은 필드들이 임의적이고 디폴트화될 수 있다.
샘플 테이블 박스는 하나 이상의 SampleToGroup 박스들 및 하나 이상의 샘플 그룹 설명 박스들 (즉, SampleGroupDescription 박스들) 을 포함할 수도 있다. 이 개시물에서, SampleToGroup 박스들은 "샘플 투 그룹 (Sample to Group) 박스들" 로서 지칭될 수도 있고, SampleGroupDescription 박스들은 "샘플 그룹 설명 (Sample Group Description) 박스들" 로서 지칭될 수도 있다. 일반적인 용어들에서, SampleToGroup 박스는 샘플들의 하나 이상의 그룹들을 정의하는 신택스 엘리먼트들을 포함한다. 이 개시물에서, 샘플들의 그룹들은 또한, "샘플 그룹들" 또는 "샘플 그룹화들" 로서 지칭될 수도 있다. 또한, 일반적인 용어들에서, SampleGroupDescription 박스는 샘플 그룹들의 설명들을 포함한다.
SampleToGroup 박스는 샘플 그룹의 연관된 설명과 함께, 샘플이 속하는 샘플 그룹을 결정하기 위하여 이용될 수도 있다. 다시 말해서, SampleToGroup 박스는 샘플이 속하는 그룹을 표시할 수도 있다. SampleToGroup 박스는 "sbgp" 의 박스 타입을 가질 수도 있다. SampleToGroup 박스는 그룹화 타입 엘리먼트 (예컨대, grouping_type) 를 포함할 수도 있다. 일부 사례들에서는, 이 개시물에서, 박스의 엘리먼트는 또한, 신택스 엘리먼트로서 지칭될 수도 있다. 그룹화 타입 엘리먼트는 샘플 그룹화의 타입 (즉, 샘플 그룹들을 형성하기 위하여 이용된 기준) 을 식별하는 정수일 수도 있다. 또한, SampleToGroup 박스는 하나 이상의 엔트리들 (즉, 샘플 그룹 엔트리들) 을 포함할 수도 있다. SampleToGroup 박스에서의 각각의 샘플 그룹 엔트리는 트랙에서의 상이한 비-중첩하는 일련의 연속 샘플들과 연관될 수도 있다. 각각의 샘플 그룹 엔트리는 샘플 카운트 엘리먼트 (예컨대, sample_count) 및 그룹 설명 인덱스 엘리먼트 (예컨대, group_description_index) 를 표시할 수도 있다. 샘플 그룹 엔트리의 샘플 카운트 엘리먼트는 샘플 그룹 엔트리와 연관된 샘플들의 수를 표시할 수도 있다. 다시 말해서, 샘플 그룹 엔트리의 샘플 카운트 엘리먼트는 동일한 샘플 그룹 디스크립터 (descriptor) 를 갖는 연속 샘플들의 수를 부여하는 정수일 수도 있다. 그룹 설명 인덱스 엘리먼트는 SampleGroupDescription 박스 내에서, 샘플 그룹 엔트리와 연관된 샘플들의 설명을 포함하는 그룹 설명 엔트리를 식별할 수도 있다. 다수의 샘플 그룹 엔트리들의 그룹 설명 인덱스 엘리먼트들은 동일한 SampleGroupDescription 박스를 식별할 수도 있다.
SampleGroupDescription 박스는 또한, 그룹화 타입 신택스 엘리먼트를 포함한다. SampleToGroup 박스 및 SampleGroupDescription 박스의 그룹화 타입 신택스 엘리먼트들이 정합할 때, SampleToGroup 박스 및 SampleGroupDescription 박스는 서로 대응하는 것으로 말해진다. SampleGroupDescription 박스는 하나 이상의 그룹 설명 엔트리들을 포함한다. SampleGroupDescription 박스에서의 각각의 개개의 그룹 설명 엔트리는 개개의 샘플 그룹의 설명을 포함한다. SampleToGroup 박스에서의 그룹 설명 인덱스는 대응하는 SampleGroupDescription 박스에서 대응하는 그룹 설명 엔트리를 식별한다.
예를 들어, SampleToGroup 박스는 5 와 동일한 값을 가지는 샘플 카운트 신택스 엘리먼트 및 3 과 동일한 값을 가지는 그룹 설명 인덱스를 포함하는 제 1 샘플 그룹 엔트리를 가질 수도 있다. 이 때문에, 이 예에서, 5 개의 연속 샘플들은 대응하는 SampleGroupDescription 박스에서 인덱스 3 을 갖는 그룹 설명 엔트리에 의해 설명된 샘플 그룹에 속한다. 이 예에서, SampleToGroup 박스는 4 와 동일한 값을 가지는 샘플 카운트 신택스 엘리먼트 및 2 와 동일한 값을 가지는 그룹 설명 인덱스를 포함하는 제 2 샘플 그룹 엔트리를 가질 수도 있다. 이 때문에, 이 예에서, 다음 4 개의 연속 샘플들은 대응하는 SampleGroupDescription 박스에서 인덱스 2 을 갖는 샘플 그룹 설명 엔트리에 의해 설명된 샘플 그룹에 속한다.
파일 포맷에서의 L-HEVC 계층들의 저장을 위한 ISO/IEC 14496-15 에서, 파일에서의 비트스트림을 위하여 이용가능한 동작 포인트들의 리스트는 비트스트림을 반송하는 트랙들 중의 하나에서 시그널링되는 동작 포인트 ('oinf') 샘플 그룹을 이용하여 설명된다. 동작 포인트 샘플 그룹은 또한, "동작 포인트 정보 샘플 그룹" 으로서 본원에서 지칭될 수도 있다. 애플리케이션은 'oref' 트랙 참조를 후행함으로써 'oinf' 샘플 그룹을 포함하는 트랙을 구할 수 있다. 단순함을 위하여, 'oinf' 샘플 그룹을 포함하는 트랙은 또한, 'oref' 트랙으로서 지칭된다. 'oinf' 샘플 그룹은 하나의 트랙에서 오직 시그널링되지만, L-HEVC 계층들의 저장을 위한 ISO/IEC 14496-15 에서는, 'oinf' 샘플 그룹의 범위는 L-HEVC 코딩된 데이터를 반송하는 모든 트랙들을 커버한다. 샘플 그룹을 이용하여 동작 포인트들의 리스트를 시그널링하는 것은 동작 포인트들의 리스트가 시간적 차원에서 전체의 비트스트름을 커버하지 않을 수도 있도록 하는 결과를 가진다. 하나를 초과하는 'oinf' 샘플 그룹이 존재할 수도 있고, 각각의 샘플 그룹은 샘플들의 상이한 세트를 포함한다.
또 다른 예의 샘플 그룹은 계층 정보 ("linf") 샘플 그룹이다. 계층 정보 샘플 그룹에 대한 샘플 그룹 설명 엔트리는 트랙이 포함하는 계층들 및 서브-계층들의 리스트를 포함한다. 계층의 코딩된 픽처를 포함하는 트랙의 각각의 샘플은 트랙의 'linf' 샘플 그룹의 일부일 수도 있다. 트랙에 대한 샘플 그룹 설명 박스에서는 하나 이상의 'linf' 샘플 그룹 엔트리들이 있을 수도 있다. 그러나, L-HEVC 데이터를 포함하는 각각의 트랙에 대한 하나의 'linf' 샘플 그룹 설명 엔트리가 있다는 것이 요건일 수도 있다. 다음은 'linf' 샘플 그룹에 대한 샘플 그룹 설명 엔트리를 위한 시맨틱 (semantic) 들 및 신택스를 제공한다.
9.8.2.2 신택스
클래스 LayerInfoGroupEntry 는 VisualSampleGroupEntry ('linf') 를 확장시킨다 ) {
무부호 int(2) 예약됨;
무부호 int(6) num_layers_in_track;
for (i=0; i<num_layers_in_track; i++) {
무부호 int(4) 예약됨;
무부호 int(6) layer_id;
무부호 int(3) min_sub_layer_id;
무부호 int(3) max_sub_layer_id;
}
}
9.8.2.3 시맨틱들
num_layers_in_track: 이 샘플 그룹과 연관된 이 트랙의 임의의 샘플에서 반송된 계층들의 수.
layer_id: 연관된 샘플들에서 반송된 계층들에 대한 계층 ID 들. 이 필드의 인스턴스 (instance) 들은 루프에서 오름 차순일 것이다.
min_sub_layer_id: 트랙 내의 계층에서의 서브-계층들에 대한 최소 TemporalId 값.
1. max_sub_layer_id: 트랙 내의 계층에서의 서브-계층들에 대한 최대 TemporalId 값.
2. layerList 는 이 트랙에서 반송되는 계층들의 계층 ID 들과, 다른 트랙들에서 반송되고 이 트랙에서 직접적으로 또는 간접적으로 반송된 계층들에 의해 지칭되는 계층들의 계층 ID 들의 리스트라고 한다. layerList 에서의 계층 ID 들은 계층 ID 값들의 오름차순으로 순서화된다. 예를 들어, 이 트랙은 계층 ID 들 4 및 5 를 갖는 계층들을 반송하고, 그것들이 0 및 1 과 동일한 계층 ID 를 갖는 계층들을 지칭하고, 그 다음으로, 이 트랙과 연관된 layerList 가 {0, 1, 4, 5} 인 것으로 상정한다.
HEVC 의 섹션 3.160 에서 설명된 바와 같이, 타일은 픽처에서의 특정한 타일 열 (tile column) 및 특정한 타일 행 (tile row) 내에서의 코딩 트리 블록들의 직사각형 영역이다. HEVC 타일들은 동일한 코딩된 픽처에서의 다른 HEVC 타일들과의 코딩 종속성들을 가지지 않지만, 이전의 코딩된 픽처들로부터의 다른 HEVC 타일들과의 코딩 종속성들을 가질 수도 있거나 독립적으로 디코딩될 수도 있다. 도 2 는 일 예의 타일들 및 슬라이스들을 예시하는 개념적인 도면이다. 도 2 의 예에서, 픽처 (40) 는 각각이 작은 정사각형으로서 표현된 64 개의 루마 CTB 들을 가진다. 또한, 픽처 (40) 는 수직 타일 경계 (50) 및 수평 타일 경계 (52) 에 의해 분리된 4 개의 타일들 (42, 44, 46, 48) 을 가진다. 타일들 (42 및 44) 은 제 1 타일 행을 형성하고, 타일들 (46 및 48) 은 제 2 의 상이한 타일 행을 형성한다. 또한, 타일들 (42 및 46) 은 제 1 타일 열을 형성하고, 타일들 (48 및 50) 은 제 2 의 상이한 타일 열을 형성한다. 타일 경계들은 도 2 에서의 두꺼운 라인들로서 표현된다.
도 2 의 예에서는, 타일 (42) 에서의 CTB 가 타일 (46) 에서의 CTB 에 인접하더라도, 타일 (46) 에서의 CTB 는 타일 (42) 에서의 CTB 에 종속되지 않을 수도 있다. 타일 열은 픽처의 높이와 동일한 높이 및 (예컨대, 픽처 파라미터 세트에서의) 신택스 엘리먼트들에 의해 특정된 폭을 가지는 코딩 트리 블록들의 직사각형 영역이다. 타일 행은 (예컨대, 픽처 파라미터 세트에서의) 신택스 엘리먼트들에 의해 특정된 높이 및 픽처의 폭과 동일한 폭을 가지는 코딩 트리 블록들의 직사각형 영역이다.
픽처 (40) 는 8 개의 슬라이스 세그먼트들 (54, 56, 58, 60, 62, 64, 66, 및 68) 을 가진다. 도 2 의 예에서, 슬라이스 세그먼트 경계들은 파선 라인들로 표시된다. 또한, 도 2 의 예에서, 공유된 CTB 들을 갖는 슬라이스 세그먼트들은 독립적인 슬라이스 세그먼트들이고, 백색 CTB 들을 갖는 슬라이스 세그먼트들은 종속적인 슬라이스 세그먼트들이다. HEVC 에서, 슬라이스 세그먼트의 각각의 코딩된 블록은 슬라이스 세그먼트에 대한 NAL 유닛 내에 포함된다. 또한, HEVC 에서, NAL 유닛은 다수의 슬라이스 세그먼트들의 코딩된 블록들을 포함하지 않는다.
도 2 의 예에서, CTB 들의 각각에서의 수들은 CTB 들의 코딩 순서를 표시한다. 도 2 에서 도시된 바와 같이, 타일 경계들은 픽처 (40) 에서의 CTB 들의 코딩 순서를 변경시킬 수도 있다. 예를 들어, 타일 경계들 (50 및 52) 의 부재 시에, 비디오 코더는 픽처 (40) 에서의 CTB 들의 다음의 하위 행의 임의의 CTB 를 코딩하기 전에, 픽처 (40) 에서의 CTB 들의 완전한 행에서의 모든 CTB 들을 코딩할 수도 있다.
HEVC 의 섹션 6.3.1 에서 설명된 바와 같이, 슬라이스들과 달리, 타일들은 항상 직사각형이다. 타일은 정수 개수의 코딩 트리 유닛들을 항상 포함하고, 하나를 초과하는 슬라이스 내에 포함된 코딩 트리 유닛들로 구성될 수도 있다. 유사하게, 슬라이스는 하나를 초과하는 타일 내에 포함된 CTU 들을 포함할 수도 있거나 이러한 CTU 들로 구성될 수도 있다. 또한, HEVC 의 섹션 6.3.1 에서 설명된 바와 같이, 다음의 조건들 중의 하나 또는 양자는 각각의 슬라이스 및 타일에 대하여 만족될 것이다: (1) 슬라이스에서의 모든 코딩 트리 유닛들은 동일한 타일에 속한다; 및 (2) 타일에서의 모든 CTU들은 동일한 슬라이스에 속한다. 추가적으로, 다음의 조건들 중의 하나 또는 양자는 각각의 슬라이스 세그먼트 및 타일에 대하여 만족될 것이다: (1) 슬라이스 세그먼트에서의 모든 CTU들은 동일한 타일에 속한다; 및 (2) 타일에서의 모든 CTU들은 동일한 슬라이스 세그먼트에 속한다.
코덱 (예컨대, HEVC) 레벨에서의 타일들에 대한 정보를 결정하는 것과는 대조적으로, 파일 레벨에서의 타일들에 대한 정보를 획득하는 것이 유용한 시나리오들이 존재한다. 예를 들어, 도 2 에서, 타일들 (42 및 44) 이 뉴스 사회자의 이미지들을 포함하는 동안, 타일들 (46 및 48) 은 뉴스캐스트 (newscast) 의 하단에서의 크롤 (crawl) 에 대응하는 것으로 상정한다. 이 예에서, 크롤은 다른 뉴스, 스포츠 스코어들, 학교 폐쇄들, 주식 시세들 등에 대한 텍스트를 포함할 수도 있다. 이 예에서는, 크롤을 스트리밍하지 않으면서, 뉴스 사회자의 이미지들을 포함하는 픽처 (40) 의 오직 일부를 스트리밍하는 것이 바람직할 수도 있다. 이러한 방식으로 비디오의 스트리밍된 컨텐츠를 감소시키는 것은 비디오를 스마트폰 또는 스마트워치 (smartwatch) 와 같은, 작은 스크린을 갖는 디바이스로 스트리밍할 때에 바람직할 수도 있다. 동시에, 타일들 (46 및 48) 을 포함하는 동일한 비디오의 전체 버전은 텔레비전과 같은, 더 큰 스크린 상에서의 제시를 위한 디바이스로 스트리밍될 수도 있다.
따라서, ISO/IEC 14496-15 는 파일 레벨에서 타일들을 설명하고 조작하기 위한 도구들을 설명한다. 특히, ISO/IEC 14496-15 의 섹션 10.1 은 타일 영역 및 타일 세트의 개념들을 정의한다. 타일 영역은 하나 이상의 타일들을 포함하는 직사각형 영역이다. 예를 들어, 도 2 의 예에서, 타일들 (42 및 44) 은 타일 영역을 형성할 수도 있고; 타일들 (42 및 46) 은 타일 영역을 형성할 수도 있고, 타일들 (44 및 48) 은 타일 영역을 형성할 수도 있고, 타일들 (46 및 48) 은 타일 영역을 형성할 수도 있고, 타일들 (42, 44, 46, 및 48) 은 타일 영역을 형성할 수도 있다. 단일 슬라이스에서 코딩된 몇몇 타일들은 타일 세트로 칭해진 타일들의 세트로서 그룹화될 수 있다. 예를 들어, 도 2 의 예에서, 타일 세트는 타일 (42), 타일 (46), 및 타일 (48) 로 구성될 수도 있다. 그러나, 도 2 의 예에서는, 타일들 (42, 46, 및 48) 이 단일 직사각형 영역이 아니므로, 타일 (42), 타일 (46), 및 타일 (48) 은 타일 영역을 형성할 수 없다.
타일 세트들은 몇몇 HEVC 타일들 상에서 걸쳐 이어지는 관심 영역을 표현하기 위하여 이용될 수 있다. 예를 들어, 타일 세트는 타일들 (42, 44, 및 46) 로 구성될 수도 있다. 이 예에서, 타일 (48) 이 많은 픽처들 상에서 정적인 이미지를 포함하는 동안, 타일들 (42, 44, 및 46) 은 라이브 비디오 스트림들에 대응할 수도 있다.
또한, ISO/IEC 14496-15 의 섹션 10.1 에서 설명된 바와 같이, 타일 영역들 및 타일 세트들은 SampleGroupDescription 박스들을 이용하여 설명된다. 다시 말해서, ISO/IEC 14496-15 의 섹션 10.1 에서, SampleGroupDescription 박스들은 타일 영역들 및 타일 세트들을 특정할 수도 있다. 더 구체적으로, 비디오 트랙의 타일 영역은 TileRegionGroupEntry 샘플 설명 그룹을 이용하여 설명된다. 타일 세트는 TileSetGroupEntry 샘플 설명 그룹을 이용하여 설명된다. 타일 영역은 다수의 타일 세트들의 멤버 (member) 일 수도 있다. TileSetGroupEntry 는 코딩 종속성들을 갖거나 갖지 않는 타일 영역들의 세트; 하나 또는 몇몇 NAL 유닛들에 의해 코딩되는 HEVC 타일들의 세트, 예를 들어, 슬라이스에서의 다수의 HEVC 타일들; 및 다수의 타일 영역들 사이의 코딩 종속성들을 정의하기 위하여 이용될 수 있다.
개별적인 NALU 들은:
타일 영역 (즉, HEVC 타일이 슬라이스들의 세트로서 코딩될 때)
타일 세트 (즉, 슬라이스가 몇몇 HEVC 타일들에 대한 코딩 블록들을 포함할 때) 와 연관될 수도 있다.
샘플들, NAL 유닛들 (NALU 들), 타일 영역들, 및 타일 세트들 사이의 연관성은 SampleToGroup 및 NALUMapEntry 박스들을 통해 행해질 수도 있다.
ISO/IEC 14496-15 에서, NALUMapEntry 박스는 다음의 신택스를 가진다:
클래스 NALUMapEntry() 는 VisualSampleGroupEntry ('nalm') 를 확장시킨다 {
무부호 int(6) 예약됨 = 0;
무부호 int(1) large_size;
무부호 int(1) rle;
if (large_size) {
무부호 int(16) entry_count;
} else {
무부호 int(8) entry_count;
}
for (i=1; i<= entry_count; i++) {
if (rle) {
if (large_size) {
무부호 int(16) NALU_start_number;
} else {
무부호 int(8) NALU_start_number;
}
}
무부호 int(16) groupID;
}
}
또한, ISO/IEC 14496-15 는 NALUMapEntry 박스의 시맨틱들을 다음과 같이 정의한다:
large_size 는 트랙 샘플들에서의 NAL 유닛들 엔트리들의 수가 8 또는 16 비트들로 표현되는지 여부를 표시한다.
rle 는 런-길이 인코딩 (run-length encoding) 이 groupID 를 NAL 유닛들에 배정하기 위하여 이용되는지 (1) 또는 아닌지 (0) 여부를 표시한다.
entry_count 는 맵에서의 엔트리들의 수를 특정한다. rle 가 1 과 동일할 때, entry_count 는 연속 NAL 유닛들이 동일한 그룹과 연관되는 런들의 수에 대응한다는 것에 주목한다. rle 가 0 과 동일할 때, entry_count 는 NAL 유닛들의 총 수를 표현한다.
NALU_start_number 는 groupID 와 연관된 현재의 런에서의 최초 NALU 의 샘플에서의 1-기반 NALU 인덱스 (1-based NALU index) 이다.
groupID 는 샘플 그룹 설명들에서 표시된 바와 같이, 대응하는 스케일러블 멀티뷰 타일 영역 또는 타일 세트 그룹 엔트리를 표시한다. groupID 가 0 일 경우, 그룹은 이 식별된 NALU 들에 연관되지 않는다.
각각의 샘플 설명 그룹은 groupID 로 칭해진 고유한 식별자를 배정받는다. 이 식별자는 ScalableNALUMapEntry 또는 NALUMapEntry 샘플 설명 그룹들을 이용하여 NAL 유닛들을 대응하는 타일 영역 또는 타일 세트와 연관시키기 위하여 이용될 수 있다. 타일 영역들 및 타일 세트들은 기본 HEVC 계층에 의해 범위가 정해진, groupID 에 대한 동일한 명칭공간 (namespace) 을 공유한다. 즉, ISO/IEC 14496-15 에서는, 동일한 기본 계층을 가지는 임의의 트랙들에서 동일한 groupID 를 갖는 2 개의 타일 영역들 또는 타일 세트들이 없을 것이다.
위에서 언급된 바와 같이, NALUMapEntry 박스는 rle 신택스 엘리먼트 및 entry_count 신택스 엘리먼트를 포함한다. rle 신택스 엘리먼트는 런-길이 인코딩이 groupID 들을 NAL 유닛들에 배정하기 위하여 이용되는지 아닌지 여부를 표시한다. NALUMapEntry 박스의 컨텍스트에서, 런은 동일한 groupID 를 배정받은 일련의 연속 NAL 유닛들이다. 런-길이 인코딩이 groupID 들을 NAL 유닛들에 배정하기 위하여 이용될 때, NALUMapEntry 박스는 각각의 개개의 런에 대한 개개의 NALU_start_number 신택스 엘리먼트를 포함한다. 예를 들어, 인덱스 2 를 갖는 NAL 유닛으로부터 시작하는 6 개의 연속 NAL 유닛들의 세트는 11 과 동일한 groupID 를 배정받는 것으로 상정한다. 이 예에서, NALUMapEntry 박스는 2 와 동일한 값을 표시하는 제 1 NALU_start_number 신택스 엘리먼트, 그 다음으로, 11 과 동일한 값을 가지는 groupID 신택스 엘리먼트, 그 다음으로, 8 과 동일한 제 2 NALU_start_number 신택스 엘리먼트를 포함할 수도 있다. 이에 따라, 이 예에서, 파일 파싱 유닛 (31) (도 1) 과 같은, NALUMapEntry 박스를 포함하는 파일을 해독하는 디바이스는 인덱스 2 로부터 인덱스 7 까지의 각각의 NAL 유닛이 11 과 동일한 groupID 를 배정받는 것으로 결정할 수도 있다.
ISO/IEC 14496-15 는 TileRegionGroupEntry 박스의 신택스를 다음과 같이 특정한다:
클래스 TileRegionGroupEntry() 는 VisualSampleGroupEntry ('trif') 를 확장시킨다
{
무부호 int(16) groupID;
무부호 int(2) independent_flag;
무부호 int(1) full_picture;
무부호 int(1) filtering_disabled;
무부호 int(4) 예약됨=0;
if (!full_picture) {
무부호 int(16) horizontal_offset;
무부호 int(16) vertical_offset;
}
무부호 int(16) region_width;
무부호 int(16) region_height;
}
ISO/IEC 14496-15 는 TileRegionGroupEntry 박스의 시맨틱들을 다음과 같이 특정한다:
groupID 는 이 그룹에 의해 설명된 타일 영역에 대한 고유한 식별자이다. 값 0 은 'nalm' 박스에서의 특수한 이용을 위하여 예약된다.
independent_flag 는 동일한 계층의 현재의 픽처에서 그리고 참조 픽처들에서의 이 타일 영역과 다른 타일 영역들 사이의 코딩 종속성들을 특정한다. 인터-타일 종속성들은, 만약 존재한다면, TileSetGroupEntry 에서의 dependency_list 에 의하여 표시된다. 이 플래그는 다음의 값들을 취한다:
- independent_flag 가 0 과 동일할 경우, 동일한 픽처 또는 이전의 픽처들에서의 이 타일 영역과 다른 타일들 사이의 코딩 종속성들은 타일 세트 레벨에서 설명되거나 알려지지 않는 것 중의 어느 하나이다.
- independent_flag 가 1 과 동일할 경우, 임의의 참조 픽처들에서의 상이한 groupID 를 갖는 이 타일 영역과 다른 타일 영역들 또는 타일 세트들 사이의 시간적 종속성들이 없지만, 참조 픽처들에서의 동일한 groupID 를 갖는 이 타일과 타일 영역 사이의 코딩 종속성들이 있을 수 있다.
- independent_flag 가 2 와 동일할 경우, 참조 픽처들에서의 이 타일 영역과 임의의 다른 타일들 사이의 코딩 종속성들이 없다.
- 값 3 은 예약된다.
full_picture 는, 설정될 때, 이 타일 영역이 실제적으로 완전한 픽처이고, 이 경우, region_width 및 region_height 는 계층 루마 크기 (layer luma size) 로 설정될 것이고, independent_flag 는 1 로 설정될 것이라는 것을 표시한다. 이것은 1 로 설정된 full_picture 파라미터로 'trif' 샘플 그룹을 참조하는 'tsif' 샘플 그룹을 이용하여 계층의 타일들 내지 비-타일링된 계층 (non-tiled layer) 사이의 종속성들을 표현하는 것을 허용한다.
filtering_disable 은, 설정될 때, 이 타일 영역에 대한 포스트-디코딩 (post-decoding) 필터링 동작이 이 타일 영역에 인접한 픽셀들에 대한 액세스를 요구하지 않고, 즉, 타일 영역의 비트-정확한 복원 (bit-exact reconstruction) 이 인접한 타일들을 디코딩하지 않으면서 가능하다는 것을 표시한다.
horizontal_offset 및 vertical_offset 은 기본 영역의 루마 샘플들에서의, 픽처의 상단-좌측 픽셀에 대한, 타일 영역에 의해 표현된 직사각형 영역의 상단-좌측 픽셀의 수평 및 수직 오프셋들을 각각 부여한다.
region_width 및 region_height 는 기본 영역의 루마 샘플들에서의, 타일 영역에 의해 표현된 직사각형 영역의 폭 및 높이를 각각 부여한다.
또한, ISO/IEC 14496-15 는 TileSetGroupEntry 박스의 신택스를 다음과 같이 특정한다:
클래스 TileSetGroupEntry() 는 VisualSampleGroupEntry ('tsif') 를 확장시킨다 {
무부호 int(16) groupID;
int(1) area_description;
int(2) dependency_list;
int (5) 예약됨;
if (area_description==0) {
무부호 int(16) tile_count;
for (i=1; i<= tile_count; i++){
무부호 int(16) tileGroupID;
}
} else {
무부호 int(16) topLeftTileGroupId;
무부호 int(16) bottomRightTileGroupId;
}
if ((dependency_list==1) || (dependency_list==3)) {
무부호 int(16) dependency_tile_count;
for (i=1; i<= dependency_tile_count; i++){
무부호 int(16) dependencyTileGroupID;
}
if (dependency_list==3) {
무부호 int(16) irap_dependency_tile_count;
for (i=1; i<= irap_dependency_tile_count; i++){
무부호 int(16) irap_dependencyTileGroupID;
}
} else if (dependency_list==2) {
무부호 int(16) topLeftDependencyTileGroupId;
무부호 int(16) bottomRightDependencyTileGroupId;
}
}
ISO/IEC 14496-15 는 TileSetGroupEntry 박스의 시맨틱들을 다음과 같이 특정한다:
groupID 는 이 그룹에 의해 설명된 타일 세트에 대한 고유한 식별자이다. 값 0 은 'nalm' 박스에서의 특수한 이용을 위하여 예약된다.
area_description 은 타일 세트가 상단-좌측 및 하단-우측 코너에 의해 설명된 직사각형 에어리어로서 부여된다는 것을 표시한다.
dependency_list 는 이 타일 세트에 대한 종속적인 타일 영역들 또는 타일 세트들의 리스트가 부여된다는 것을 표시한다. 제로로 설정될 경우, 이것은 이 세트로부터의 타일들과 이 세트의 외부의 타일들 사이의 시간적 코딩 종속성들이 없다는 것을 암시한다. 이것은 세트로부터 그리고 종속성 리스트로부터 타일들을 오직 디코딩하는 것이 다른 타일들을 디코딩하지 않으면서 가능하다는 것을 보장한다. 1 내지 3 으로 설정될 경우, dependency_list 는 종속적인 타일들에 대한 식별자들의 리스트로서 제공된다. 2 로 설정될 경우, dependency_list 는 종속적인 타일들에 의해 형성된 경계설정 박스 (bounding box) 로서 표현된다. 3 으로 설정될 경우, 타일 영역 또는 타일 세트 종속성들의 추가적인 리스트는 샘플이 이 HEVC 계층에 대하여 정의된 바와 같은 랜덤 액세스 샘플인 경우에 대하여 부여된다.
tile_count 는 이 타일 세트에서 정의된 타일들의 수를 부여한다.
tileGroupID 는 이 타일 세트에 속하는 (TileRegionGroupEntry 에 의해 정의된 바와 같은) 타일 영역 groupID 값 또는 (TileSetGroupEntry 에 의해 정의된 바와 같은) 타일 세트 groupID 값을 표시한다.
topLeftTileGroupId 는 이 타일 세트의 상단 좌측 타일 groupID 값을 표시한다.
bottomRightTileGroupId 는 이 타일 세트의 하단 우측 타일 groupID 값을 표시한다.
dependency_tile_count 는 종속성 리스트에서의 타일 영역들 또는 타일 세트들의 수를 표시한다.
dependencyTileGroupID 는 이 타일 세트가 종속되는 (TileRegionGroupEntry 에 의해 정의된 바와 같은) 타일 영역 또는 (TileSetGroupEntry 에 의해 정의된 바와 같은) 타일 세트의 식별자를 부여한다.
irap_dependency_tile_count 및 irap_dependencyTileGroupID 는 이 타일이 속하는 샘플이 이 HEVC 계층에 대하여 정의된 바와 같은 랜덤 액세스 샘플일 때에 이 타일 세트가 종속되는 타일 영역 또는 타일 세트들의 리스트를 특정한다.
topLeftDependencyTileGroupId 는 이 타일 세트가 종속되는 에어리어의 상단 좌측 타일 영역 또는 타일 세트 groupID 값을 표시한다.
bottomRightDependencyTileGroupId 는 이 타일 세트가 종속되는 에어리어의 하단 우측 타일 영역 또는 타일 세트 groupID 값을 표시한다.
타일 영역들은 홀 (hole) 들 없이 직사각형 에어리어를 정의할 수도 있다. 타일들의 비-직사각형 세트가 단일 HEVC 슬라이스에서 코딩될 경우, 타일들의 세트는 상이한 직사각형 타일 영역들로 분해될 수도 있고, 타일 세트를 통해 설명될 수도 있어서, 관련된 타일 영역들에 대한 종속성들을 표시할 수도 있다. 그 다음으로, 이러한 슬라이스의 NAL 유닛들은 타일 세트로 맵핑될 수도 있지만, 타일 영역으로 맵핑되지 않을 것이다.
영화 프래그먼트들과 함께 이용될 때, TileRegionGroupEntry 및 TileSetGroupEntry 는 ISO/IEC 14496-12 의 조항 8.9.4 에서 정의된 바와 같이, 트랙 프래그먼트 박스에서 새로운 SampleGroupDescription 박스를 정의함으로써 영화 프래그먼트들의 기간에 대하여 정의될 수 있다. 그러나, 이미 정의된 TileRegionGroupEntry 또는 TileSetGroupEntry 과 동일한 groupID 를 가지는 트랙 프래그먼트에서는 임의의 TileRegionGroupEntry 또는 TileSetGroupEntry 가 없을 것이다.
어떤 쟁점들은 샘플들과 타일 영역들 사이의 맵핑을 위한 전술된 기법들에서 발생할 수도 있다. 다시 말해서, 파일 레벨에서 타일들을 조작하는 것에 대하여 위에서 설명된 도구들은 몇몇 단점들을 가진다. 예를 들어, 타일 영역은 타일들의 집합으로 고려될 수 있는 반면, 타일 세트는 타일 영역들의 집합 및 또한, 타일들의 집합으로 고려될 수 있다. 특정한 타일 영역을 구성하는 타일들을 결정하기 위하여, 누군가는 NALUMapEntry 를 간단하게 체크할 수 있다. 그러나, 특정한 타일 세트를 구성하는 타일들을 결정하기 위하여, 파일 파싱 유닛 (31) 과 같은 디바이스는 타일 세트의 일부로서 열거되는 타일 영역들의 리스트를 먼저 체크해야 하고, 그 다음으로, 타일 세트의 또한 일부인 추가적인 타일들이 있는지를 알아보기 위하여 NALUMapEntry 를 여전히 체크해야 한다. 이러한 배열은 타일 영역, 타일 세트, 및 NALUMapEntry 사이의 관계를 복잡하게 할 수도 있다. 또한, 현재로는, 타일 영역이 직사각형 형상이어야 하는 반면, 타일 세트는 임의의 형상일 수도 있다는 것을 제외하고는, 타일 영역과 타일 세트 사이의 개념적인 구분이 없는 것으로 보인다. 타일 세트의 tile_reg_count 의 값이 0 과 동일할 때, 타일 세트는 기본적으로 타일 영역이다. 그러므로, NALUMapEntry, 타일 영역, 및 타일 세트의 단순화가 바람직할 수도 있다.
ISO/IEC 14496-15 의 섹션 8.4.8 에서, HEVC 의 컨텍스트에서는, 서브-샘플이 다음으로서 정의된다:
HEVC 스트림에서의 서브-샘플 정보 박스 (ISO/IEC 14496-12 의 8.7.7) 의 이용을 위하여, 서브-샘플은 이하에서 특정된 바와 같은 서브-샘플 정보의 플래그들 필드의 값에 기초하여 정의된다. 이 박스의 존재는 임의적이지만; 그러나, HEVC 데이터를 포함하는 트랙에서 존재할 경우, 박스에서의 'codec_specific_parameters' 필드는 여기에서 정의된 시맨틱들을 가질 것이다.
플래그들은 이 박스에서 부여된 서브-샘플 정보의 타입을 다음과 같이 특정한다:
0: NAL-유닛-기반 서브-샘플들. 서브-샘플은 하나 이상의 인접한 NAL 유닛들을 포함한다.
1: 디코딩-유닛-기반 서브-샘플들. 서브-샘플은 정확하게 하나의 디코딩 유닛을 포함한다.
2: 타일-기반 서브-샘플들. 서브-샘플은 하나의 타일, 및 타일을 포함하는 VCL NAL 유닛 (들) 의, 만약 존재한다면, 연관된 비-VCL NAL 유닛들을 포함하거나, 하나 이상의 비-VCL NAL 유닛들을 포함하는 것 중의 어느 하나이다.
3: CTU-행-기반 서브-샘플들. 서브-샘플은 슬라이스 내에서의 하나의 CTU 행, 및 CTU 행을 포함하는 VCL NAL 유닛 (들) 의, 만약 존재한다면, 연관된 비-VCL NAL 유닛들을 포함하거나, 하나 이상의 비-VCL NAL 유닛들을 포함하는 것 중의 어느 하나이다. 이 타입의 서브-샘플 정보는 entropy_coding_sync_enabled_flag 가 0 과 동일할 때에 이용되지 않을 것이다.
4: 슬라이스-기반 서브-샘플들. 서브-샘플은 하나의 슬라이스 (각각의 슬라이스가 각각이 NAL 유닛인 하나 이상의 슬라이스 세그먼트들을 포함할 수도 있을 경우) 및 만약 존재한다면, 연관된 비-VCL NAL 유닛들을 포함하거나, 하나 이상의 비-VCL NAL 유닛들을 포함하는 것 중의 하나이다.
추가적으로, 타일 영역들로의 서브-샘플에서의 타일들의 맵핑에 관련된 쟁점들은 전술된 기법들에서 발생할 수도 있다. MPEG 출력 문서 N15297 (ISO/IEC 14496-15 에 대한 코멘트들의 배치) 에서는, TileRegionGroupEntry 가 적용되는 타일들의 서브-샘플 기반 식별을 허용하는 것이 합의되었다. 그것을 지원하기 위하여, TileRegionGroupEntry 의 신택스는 이하의 텍스트에서 도시된 바와 같은 MPEG 출력 문서 N15297 에서 수정된다. 이하의 텍스트에서 그리고 이 개시물의 전반에 걸쳐, "<insert>" 및 "</insert> 기호들 사이의 텍스트는 추가들 또는 수정된 현존하는 텍스트들 (예컨대, <insert>추가된 텍스트</insert>) 에 대응하는 반면, 제거된 텍스트는 "<delete>" 및 "</delete> 기호들 사이에 있다 (예컨대, <delete>삭제된 텍스트</delete>).
클래스 TileRegionGroupEntry() 는 VisualSampleGroupEntry ('trif') 를 확장시킨다
{
<delete>무부호 int(16) groupID;</delete>
무부호 int(2) independent_flag; [Ed. (YK): 그것을 independent_idc 로 명명.]
무부호 int(1) full_picture;
무부호 int(1) filtering_disabled;
<insert>무부호 int(1) nalu_flag;</insert>
무부호 int(<insert>
Figure pct00001
</insert>) 예약됨=0;
<insert>if (nalu_flag)
무부호 int(16) groupID;
else
무부호 int(16) subsample_id;</insert>
if (!full_picture) {
무부호 int(16) horizontal_offset;
무부호 int(16) vertical_offset;
}
무부호 int(16) region_width;
무부호 int(16) region_height;
}
groupID 는 이 그룹에 의해 설명된 타일 영역에 대한 고유한 식별자이다. 값 0 은 'nalm' 박스에서의 특수한 이용을 위하여 예약된다.
independent_flag 는 동일한 계층의 현재의 픽처에서 그리고 참조 픽처들에서의 이 타일 영역과 다른 타일 영역들 사이의 코딩 종속성들을 특정한다. 인터-타일 종속성들은, 만약 존재한다면, TileSetGroupEntry 에서의 dependency_list 에 의하여 표시된다. 이 플래그는 다음의 값들을 취한다:
- independent_flag 가 0 과 동일할 경우, 동일한 픽처 또는 이전의 픽처들에서의 이 타일 영역과 다른 타일들 사이의 코딩 종속성들은 타일 세트 레벨에서 설명되거나 알려지지 않는 것 중의 어느 하나이다.
- independent_flag 가 1 과 동일할 경우, 임의의 참조 픽처들에서의 상이한 groupID 를 갖는 이 타일 영역과 다른 타일 영역들 또는 타일 세트들 사이의 시간적 종속성들이 없지만, 참조 픽처들에서의 동일한 groupID 를 갖는 이 타일과 타일 영역 사이의 코딩 종속성들이 있을 수 있다.
- independent_flag 가 2 와 동일할 경우, 참조 픽처들에서의 이 타일 영역과 임의의 다른 타일들 사이의 코딩 종속성들이 없다.
- 값 3 은 예약된다.
full_picture 는, 설정될 때, 이 타일 영역이 실제적으로 완전한 픽처이고, 이 경우, region_width 및 region_height 는 계층 루마 크기로 설정될 것이고, independent_flag 는 1 로 설정될 것이라는 것을 표시한다. 이것은 1 로 설정된 full_picture 파라미터로 'trif' 샘플 그룹을 참조하는 'tsif' 샘플 그룹을 이용하여 계층의 타일들 내지 비-타일링된 계층 (non-tiled layer) 사이의 종속성들을 표현하는 것을 허용한다.
0 과 동일한 nalu_flag 는 타일 영역들이 타일-기반 서브-샘플들에 기초하여 특정된다는 것을 특정한다. 1 과 동일한 nalu_flag 는 타일 영역들이 'nalm' 샘플 그룹화의 groupID 값들에 기초하여 특정된다는 것을 특정한다.
subsample_id 는 2 와 동일한 플래그들을 갖는 SubSampleInformationBox (타일-기반 서브-샘플들) 에서 표시된 바와 같이, 맵핑된 샘플의 서브-샘플 정보에 대한 1-기반 인덱스이다.
MPEG 출력 문서 N15297 에서 채택된 TileRegionGroupEntry 에 대한 변경들은 2 개의 쟁점들을 가진다. 첫 번째로, nalu_flag 가 0 과 동일할 때, 타일 영역 그룹은 NALUMapEntry 를 이용하지 않고, 이것은 TileRegionGroupEntry 가 그 자신의 연관된 SampleToGroup 박스를 가지지 않으므로, 모든 샘플들이 타일 영역 그룹과 연관된다는 것을 의미한다. 결과적으로, 타일들의 이 서브-샘플 기반 식별을 작동하게 하기 위하여, 트랙에서의 모든 샘플들이 동일한 NAL 유닛을 가져야 하고, 또한, 동일한 타일 구조를 가져야 하도록 하는 한정이 암시된다. 다시 말해서, 트랙에서의 모든 샘플들은 동일한 방법으로 슬라이스들 및 타일들로 파티셔닝되어야 한다.
두 번째로, 오직 하나의 신택스 엘리먼트 subsample_id 를 가지는 것은 NAL 유닛 내에서의 오직 정확하게 하나의 타일이 특정한 타일 영역 그룹의 일부일 수 있다는 것을 의미한다. 타일 영역 내에 포함된 NAL 유닛에서 하나를 초과하는 타일을 가지는 것이 바람직할 때, 더 이후에 타일 세트에 의해 그룹화될 더 많은 타일 영역들이 정의되어야 하므로, 이 시그널링은 비효율적일 것이다.
예를 들어, 도 3 은 NAL 유닛이 다수의 타일들을 포함하는 예를 예시하는 개념적인 도면이다. 특히, 픽처 (80) 는 타일 경계들 (90, 92) 에 의해 분리된 4 개의 타일들 (82, 84, 86, 및 88) 을 가진다. 슬라이스 세그먼트 (94) 는 CTU 들 (1 내지 40) 을 포함한다. 슬라이스 세그먼트들 (96, 98, 100) 은 CTU 들 (41 내지 64) 을 포함한다. 슬라이스 세그먼트의 각각의 인코딩된 CTU 는 슬라이스 세그먼트에 대한 NAL 유닛 내에 포함된다. 도 3 의 예에서는, 타일 영역 내에 포함된 타일들 (82 및 84) 을 가지는 것이 바람직할 수도 있다. MPEG 출력 문서 N15297 에서, subsample_id 신택스 엘리먼트는 픽처에서의 서브-샘플들 (예컨대, 타일들) 중의 어느 하나가 타일 영역의 일부인지를 표시한다. 예를 들어, 0 과 동일한 subsample_id 신택스 엘리먼트는 TileRegionGroupEntry 박스와 연관된 타일 영역 그룹에서의 각각의 픽처의 최초 타일을 표시할 수도 있다. TileRegionGroupEntry 박스에서는 오직 하나의 subsample_id 신택스 엘리먼트가 있으므로, 픽처 당 오직 하나의 타일이 TileRegionGroupEntry 박스와 연관된 타일 영역 그룹 내에 포함될 수 있다. 결과적으로, 타일들 (82 및 84) 을 포함하는 샘플 그룹에 도달하기 위하여, 2 개의 TileRegionGroupEntry 박스들이 생성될 수도 있고, 각각은 타일들 (82, 84) 의 상이한 하나를 표시하는 subsample_id 신택스 엘리먼트를 포함할 수도 있다. 추가적으로, 2 개의 TileRegionGroupEntry 박스들을 지칭하는 TileSetGroupEntry 박스가 생성될 필요가 있을 것이다.
또한, 타일 영역 및 타일 세트 인터-계층 종속성에 관련된 쟁점들은 전술된 기법들에서 발생할 수도 있다. 예를 들어, MPEG 출력 문서 N15927 은 타일 영역들 및 타일 세트들에서의 종속성 정보의 시그널링에 관련된 몇몇 변경들을 설명한다. 특히, 다음의 변경들은 MPEG 출력 문서 N15927 에서 합의되었다:
a) 명칭 independent_flag 를 independent_idc 로 변경하는 것이 합의되었다.
b) 그 값이 2 와 동일할 때에 independent_idc 의 시맨틱들을 편집적으로 편집하는 것이 합의되었다.
c) 모든 경우들에 있어서 0 과 동일한 dependency_list 의 시그널링을 이용하고 1 및 2 와 동일한 dependency_list 에 관련된 시맨틱들 및 신택스를 제거하는 것이 합의되었다.
위에서 합의된 포인트들은 타일 영역 및 타일 세트 종속성 시그널링을 개선시킬 수도 있지만, 그 합의된 포인트들을 편입시키는 수정 후에도, 다음의 문제는 여전히 해결되지 않는다. 특히, 타일 영역들 및 타일 세트들에 대한 현재의 타일 종속성 시그널링은 인터-계층 종속성이 있을 때에 작동하지 않는다. 예를 들어, 위에서 언급된 바와 같이, ISO/IEC 14496-15 는 dependency_list 신택스 엘리먼트가 "제로로 설정될 때, 이것은 이 세트로부터의 타일들과 이 세트의 외부의 타일들 사이의 시간적 코딩 종속성들이 없다는 것을 암시한다. 이것은 세트로부터 그리고 종속성 리스트로부터 타일들을 오직 디코딩하는 것이 다른 타일들을 디코딩하지 않으면서 가능하다는 것을 보장한다." 는 것을 특정한다. 그러나, 타일들 사이의 인터-뷰 코딩 종속성들에 대하여 ISO/IEC 14496-15 에서 어느 것도 표시되지 않는다.
또한, 픽처-레벨 및 상부-레벨 비-VCL NAL 유닛들에 관련된 어떤 쟁점들은 전술된 기법들에서 발생할 수도 있다. 예를 들어, 전술된 기법들에서, ISO/IEC 14496-15 에서는, NALUMapEntry 가 NAL 유닛들로부터 타일 영역 그룹들 또는 타일 세트 그룹들의 어느 하나로의 맵핑을 제공한다. NAL 유닛이 0 과 동일한 groupID 를 배정받을 때, 그것은 임의의 타일 영역 또는 타일 세트 그룹과 연관되지 않는다는 것을 의미하도록 하는 하나의 특수한 경우가 있다. 그러나, 어떤 groupID 가 비-VCL NAL 유닛, 특히, 픽처의 모든 VCL NAL 유닛들, 예컨대, 파라미터 세트들에 전체적으로 적용되는 비-VCL NAL 유닛에 대하여 배정되어야 하는지가 명확하지 않다. 이러한 비-VCL NAL 유닛들에 대하여, 그것들이 각각의 타일 영역 또는 타일 세트 그룹의 프로세싱을 위하여 필요하게 될 때에 그것들은 groupID 0 으로 맵핑될 수 없고, 그것들을 다른 타일 영역들 또는 타일 세트들에 의해 이용가능하지 않게 할 때에 그것들은 특정한 타일 영역 또는 타일 세트에 배정될 수 있는 것으로 보인다.
위의 쟁점들 및 단점들을 해결하기 위하여, 다음의 기법들이 설명된다. 이하에서 설명된 기법들은 독립적으로 적용될 수도 있거나 임의의 실현가능한 조합으로 적용될 수도 있다.
위에서 언급된 바와 같이, 타일 영역들과 타일 세트들 사이의 관계들은 과다하게-복잡할 수도 있다. 이 개시물의 기법에 따르면, 이 쟁점을 해결하기 위하여, 타일 영역 개념이 타일 세트 개념으로 병합된다. 다시 말해서, 타일 영역의 개념 및 타일 세트의 개념이 병합된다. 타일 영역들 및 타일 세트들의 개념들이 병합되는 이러한 예들에서, 용어들 타일 영역 및 타일 세트는 상호 교환가능하게 이용될 수도 있다. 또한, 타일 영역들 및 타일들 세트들의 개념들이 병합되는 예들에서, 타일 세트 그룹 엔트리들 (예컨대, TileSetGroupEntry 박스들) 및 타일 영역 그룹 엔트리들 (예컨대, TileRegionGroupEntry 박스들) 의 논의가 상호 교환가능할 수도 있다. 이 때문에, 이러한 예들에서, TileSetGroupEntry 박스 또는 TileRegionGroupEntry 박스의 어느 하나는 파일을 정의하기 위하여 이용된 신택스로부터 제거될 수도 있고, TileRegionGroupEntry 박스의 논의는 TileRegionGroupEntry 박스에 적용될 수도 있거나, 그 반대일 수도 있다.
또한, 신택스 엘리먼트는 타일 세트에서의 타일들에 의해 커버된 영역이 직사각형 형상인지 아닌지 여부를 표시하기 위하여 시그널링될 수도 있다. 이에 따라, 이 예에서, 파일 생성 디바이스 (34) 는 파일에서의 타일 세트 그룹 엔트리 내에, 타일 세트에서의 타일들에 의해 커버된 영역이 직사각형 형상인지 아닌지 여부를 표시하는 신택스 엘리먼트 (예컨대, rectangular_flag) 를 포함할 수도 있다. 유사하게, 파일 파싱 디바이스 (31) 는 파일에서의 타일 세트 그룹 엔트리로부터, 타일 세트에서의 타일들에 의해 커버된 영역이 직사각형 형상인지 아닌지 여부를 표시하는 신택스 엘리먼트 (예컨대, rectangular_flag) 를 획득할 수도 있다. 이 예에서, 파일 파싱 유닛 (31) 은 신택스 엘리먼트에 기초하여 타일 세트를 프로세싱할 수도 있다. 예를 들어, 타일 세트에서의 타일들에 의해 커버된 영역이 직사각형인 것을 표시하는 TileSetGroupEntry 에서의 신택스 엘리먼트에 기초하여, 그리고 잠재적으로, 타일 세트의 로케이션 및 크기를 표시하는 TileSetGroupEntry 에서의 신택스 엘리먼트들에 기초하여, 파일 파싱 유닛 (31) 은 타일 세트가 디스플레이를 위하여 출력되어야 할 희망된 영역에 대응하는 것으로 결정할 수도 있다. 이 때문에, 이 예에서, 파일 파싱 유닛 (31) 은, 타일 세트를 프로세싱하는 것의 일부로서, 파일로부터 타일 세트의 타일들을 추출할 수도 있고, 추출된 타일들을 송신할 수도 있다. 예를 들어, 파일 파싱 유닛 (31) 은 파일로부터 타일 세트의 타일들의 VCL NAL 유닛들을 추출할 수도 있고, 비-추출된 VCL NAL 유닛들을 비디오 디코더로 출력하지 않으면서, 추출된 VCL NAL 유닛들을 디코딩되어야 할 비디오 디코더 (예컨대, 비디오 디코더 (30)) 로 출력할 수도 있다.
위에서 언급된 바와 같이, ISO/IEC 14496-15 에서 정의된 바와 같은 TileRegionGroupEntry 박스는 horizontal_offset 신택스 엘리먼트 및 vertical_offset 신택스 엘리먼트를 포함한다. horizontal_offset 신택스 엘리먼트 및 vertical_offset 신택스 엘리먼트는 TileRegionGroupEntry 박스와 연관된 타일 영역에 의해 표현된 직사각형 영역의 상단-좌측 픽셀의 오프셋을 표시한다. TileRegionGroupEntry 박스는 TileRegionGroupEntry 박스와 연관된 타일 영역이 전체 픽처에 대응하지 않을 경우에 horizontal_offset 신택스 엘리먼트 및 vertical_offset 신택스 엘리먼트를 오직 포함한다. 또한, ISO/IEC 14496-15 에서 정의된 바와 같은 TileRegionGroupEntry 박스는 TileRegionGroupEntry 박스와 연관된 직사각형 영역의 폭 및 높이를 표시하는 region_width 신택스 엘리먼트 및 region_height 신택스 엘리먼트를 포함한다.
이 개시물의 기법에 따르면, 오프셋 정보 (즉, 수평 및 수직 오프셋들) 및 타일 세트에서의 타일들에 의해 커버된 영역의 폭 및 높이 (예컨대, region_width 및 region_height) 의 신택스 및 시맨틱들은 수정될 수도 있다. 예를 들어, 수평 오프셋, 수직 오프셋, 폭, 및 높이의 정보는 항상 시그널링된다. 예를 들어, 수평 오프셋 및 수직 오프셋이 타일 영역이 완전한 픽처가 아닐 때에 오직 시그널링되는 것이 아니라, 수평 오프셋 및 수직 오프셋은 타일 영역이 완전한 픽처인지 또는 완전히 픽처가 아닌지의 여부에 관계 없이 이 예에서 시그널링된다. 이 예에서, 오프셋 신택스 엘리먼트들의 및 높이 및 폭 신택스 엘리먼트들의 시맨틱들은 이 신택스 엘리먼트들의 시맨틱들이 타일 세트에서의 모든 타일들을 커버하는 최소 직사각형 에어리어를 설명하도록 조절될 수도 있다. 최소 직사각형 에어리어는 타일 세트의 모든 타일들을 동봉하는 가장 작은 가능한 직사각형 에어리어이다.
이에 따라, 이 예에서, 파일 생성 디바이스 (34) 는 파일 내에, 타일 영역이 완전한 픽처인지 여부에 관계 없이, 수평 오프셋 신택스 엘리먼트 (예컨대, horizontal_offset) 및 수직 오프셋 신택스 엘리먼트 (예컨대, vertical_offset) 중의 적어도 하나를 포함할 수도 있다. 이 예에서, 수평 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정한다. 이 예에서, 수직 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수직 오프셋을 특정한다. 유사하게, 파일 파싱 유닛 (31) 은 파일로부터, 타일 영역이 완전한 픽처인지 여부에 관계 없이, 수평 오프셋 신택스 엘리먼트 및 수직 오프셋 신택스 엘리먼트 중의 적어도 하나를 획득할 수도 있다. 이 예에서, 수평 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정한다. 수직 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수직 오프셋을 특정한다. 이 예에서, 샘플 그룹 설명 박스는 타일 세트 그룹 엔트리를 포함하는 그룹 설명 엔트리를 포함할 수도 있다.
도 4 는 이 개시물의 하나 이상의 기법들에 따라, 타일 세트 (122) 를 포함하는 최소 직사각형 에어리어 (124) 에 의해 경계가 정해진 타일 세트 (122) 를 포함하는 일 예의 픽처 (120) 를 예시하는 개념적인 도면이다. 도 4 의 예에서 도시된 바와 같이, 타일 세트 (122) 는 4 개의 행들로 배열된 17 개의 타일들을 포함한다. 타일들의 최초의 3 개의 행들은 4 개의 타일들을 가지고, 타일들의 하단 행은 5 개의 타일들을 가진다. 이 때문에, 타일 (122) 은 직사각형이 아니다. 각각의 타일이 10 개의 유닛들 폭 및 10 개의 유닛들 높이인 것을 가정하면, 폭 신택스 엘리먼트는 값 50 을 표시할 수도 있고 높이 신택스 엘리먼트는 값 40 을 표시할 수도 있다.
일부 예들에서, 수평 오프셋, 수직 오프셋, 폭, 및 높이의 정보는 타일 세트에서의 타일들에 의해 커버된 영역이 직사각형 형상일 경우에만 시그널링된다. 이 예에서, 직사각형 형상이 아닌 타일 세트에 대한 위치 및 크기 정보는 이용가능하지 않을 수도 있다.
또 다른 예에서, 파일 생성 디바이스 (34) 는 파일 내에, 타일 세트에서의 타일들에 의해 커버된 영역이 직사각형 형상일 경우에만, 수평 오프셋 신택스 엘리먼트 (예컨대, horizontal_offset) 및 수직 오프셋 신택스 엘리먼트 (예컨대, vertical_offset) 중의 적어도 하나를 포함할 수도 있다. 이 예에서, 수평 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정하고, 수직 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수직 오프셋을 특정한다. 유사하게, 파일 파싱 유닛 (31) 은 파일로부터, 타일 세트에서의 타일들에 의해 커버된 영역이 직사각형 형상일 경우에만, 수평 오프셋 신택스 엘리먼트 (예컨대, horizontal_offset) 및 수직 오프셋 신택스 엘리먼트 (예컨대, vertical_offset) 중의 적어도 하나를 획득할 수도 있다. 이 예에서, 수평 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정한다. 수직 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수직 오프셋을 특정한다. 이 예에서, 샘플 그룹 설명 박스는 타일 세트 그룹 엔트리를 포함하는 그룹 설명 엔트리를 포함할 수도 있다.
위에서 언급된 바와 같이, MPEG 출력 문서 N15297 에서 정의된 바와 같은 TileSetGroupEntry 박스는 independent_idc 신택스 엘리먼트를 포함한다. 그러나, 위에서 설명된 바와 같이, 타일 영역들 및 타일 세트들에 대한 타일 종속성 시그널링은 인터-계층 종속성이 있을 때에 MPEG 출력 문서 N15297 에서 작동하지 않는다. 이 때문에, 이 개시물의 예에 따르면, 타일 영역들 및 타일 세트들의 개념들을 단순화하기 위하여, 신택스 엘리먼트 independent_idc 는 다음의 값들을 갖는 플래그 (예컨대, independent_flag) 로 변경된다: 플래그의 하나의 상태는 "시간적 종속성 없음" 을 표시한다. 플래그의 다른 상태는 "시간적 종속성이 있을 수도 있거나 없을 수도 있다" 는 것을 표시한다.
이에 따라, 이 예에서, 파일 생성 디바이스 (34) 는 파일에서의 플래그 (예컨대, independent_flag) 를 시그널링할 수도 있다. 이 예에서, 제 1 값을 가지는 플래그는 시간적 종속성 없음을 표시하고, 상이한 제 2 값을 가지는 플래그는 시간적 종속성이 허용된다는 것을 표시한다. 또한, 이 예에서, 파일 파싱 유닛 (31) 은 파일로부터 플래그를 획득할 수도 있고, 신택스 엘리먼트에 기초하여 타일 세트를 프로세싱할 수도 있다. 예를 들어, 플래그가 타일 세트에 대한 시간적 종속성이 없다는 것을 표시할 때, 비디오 디코더는 타일 세트의 VCL NAL 유닛들을 디코딩하기 위하여 또 다른 계층의 VCL NAL 유닛들을 필요로 하지 않는다. 이 때문에, 타일 세트에 대한 시간적 종속성이 없다는 것을 표시하는 파일에 기초하여, 파일 파싱 유닛 (31) 은 타일 세트의 VCL NAL 유닛들이 종속되는 계층들 및 VCL NAL 유닛들을 추가로 결정하지 않으면서, 타일 세트의 VCL NAL 유닛들을 추출할 수도 있고 출력할 수도 있다.
이 개시물의 일부 예들에서, 위에서 설명된 타일 영역들로의 서브-샘플들에서의 파일들의 맵핑에 관련된 문제들을 해결하기 위하여, 서브-샘플들에서의 타일들에 대한 맵핑 메커니즘은 TileRegionGroupEntry 박스 대신에, NALUMapEntry 박스로 추가된다. 예를 들어, 루프는 NAL 유닛에서의 각각의 서브-샘플에 대한 groupID 신택스 엘리먼트를 시그널링하기 위하여 NALUMapEntry 박스에 추가될 수도 있다. 이에 따라, 이 예에서는, NAL 유닛에서의 상이한 서브-샘플들이 상이한 groupID 들과 연관되는 것이 가능하고, 또한, NAL 유닛에서의 모든 서브-샘플들이 동일한 groupID 와 연관되는 것이 가능하다.
이에 따라, 이 예에서, 파일 생성 디바이스 (34) 는 파일에서의 NALUMapEntry 내에, NAL 유닛에서의 각각의 개개의 서브-샘플에 대하여, 개개의 그룹 식별자 신택스 엘리먼트 (예컨대, groupID) 를 포함할 수도 있다. 이 예에서, 개개의 그룹 식별자 신택스 엘리먼트는 개개의 서브-샘플에 대응하는 타일 세트 엔트리 (예컨대, TileRegionGroupEntry 박스 또는 TileSetGroupEntry 박스) 를 표시할 수도 있다. 유사하게, 파일 파싱 유닛 (31) 은 파일에서의 NALUMapEntry 로부터, NAL 유닛에서의 각각의 개개의 서브-샘플에 대하여, 개개의 그룹 식별자 신택스 엘리먼트 (예컨대, groupID) 를 획득할 수도 있다. 개개의 그룹 식별자 신택스 엘리먼트는 개개의 서브-샘플에 대응하는 타일 세트 엔트리 (예컨대, TileRegionGroupEntry 박스 또는 TileSetGroupEntry 박스) 를 표시할 수도 있다. 타일 세트 엔트리는 타일 세트에 대응한다. 파일 파싱 유닛 (31) 은 타일 세트를 프로세싱할 수도 있다. 예를 들어, 도 2 에서, 슬라이스 세그먼트 (94) 에 대한 VCL NAL 유닛은 타일 (82), 타일 (84) 의 인코딩된 CTU 들, 및 타일 (86) 의 일부 인코딩된 CTU 들을 포함한다. 이 예에서, 파일에서의 NALUMapEntry 는 VCL NAL 유닛에 대하여, 타일들 (82, 84, 및 86) 의 각각에 대한 개개의 그룹 식별자를 포함할 수도 있다. 이에 따라, 희망된 출력이 타일들 (82 및 84) 일 경우, 파일 파싱 유닛 (31) 은 NALUMapEntry 에서 시그널링된 groupID 신택스 엘리먼트들에 기초하여, VCL NAL 유닛이 타일 (82) 및 타일 (84) 에 대한 인코딩된 CTU 들을 포함하는 것으로 결정할 수도 있다. 따라서, 이 예에서, 파일 파싱 유닛 (31) 은 파일로부터 VCL NAL 유닛을 추출할 수도 있다. 파일 파싱 유닛 (31) 은 추출된 VCL NAL 유닛을 디코딩을 위한, 비디오 디코더 (30) (도 1) 와 같은 비디오 디코더로 출력할 수도 있다.
또한, ISO/IEC 14496-15 에서, NALUMapEntry 박스는 rle 신택스 엘리먼트 및 NALU_start_number 신택스 엘리먼트를 포함한다. 일부 예들에서, 신택스 엘리먼트들 rle 및 NALU_start_number 에 의해 구현된, NALUMapEntry 에서의 런 길이 인코딩 메커니즘은 단순화를 위하여, 그리고 그것을 ScalableNALUMapEntry 및 SubSampleInformationBox 와 일치하게 하기 위하여 제거된다.
타일 영역들로의 서브-샘플들에서의 타일들의 맵핑에 대하여 위에서 설명된 문제들을 해결하기 위한 이 개시물의 예에 따르면, TileRegionGroupEntry 에서, 메커니즘은 NAL 유닛에서의 하나를 초과하는 서브샘플 (즉, 타일) 이 타일 세트로 맵핑될 수도 있다는 것을 표시하기 위하여 특정한다. 일부 예들에서, 이것은 (NALUMapEntry 에 추가된 위에서 언급된 루프와 유사한) subsample_id 신택스 엘리먼트들의 루프를 가지는 것의 어느 하나에 의해 행해질 수 있다. 다른 예들에서, NAL 유닛에서의 하나를 초과하는 서브샘플이 타일 세트로 맵핑된다는 것을 표시하는 것은 각각의 비트가 NAL 유닛 내에서의 하나의 타일을 표현하는, 32 비트들을 가지는 것과 같은 다른 수단에 의해 달성될 수도 있고, 여기서, 1 로 설정된 비트는 대응하는 타일이 타일 세트의 일부인 것을 의미하는 반면, 0 으로 설정된 비트는 대응하는 타일이 타일 세트의 일부가 아닌 것을 의미한다. 예를 들어, 값 0100 0001 0000 0000 0000 0000 0000 0001 은 NAL 유닛에서의 두 번째, 8 번째, 및 32 번째 타일들이 타일 세트 내에 있다는 것을 표시할 수도 있다.
이에 따라, 이 예에서, 파일 생성 디바이스 (34) 는 파일에서의 시각적 샘플 그룹 엔트리 (예컨대, TileRegionGroupEntry 박스 또는 TileSetGroupEntry 박스) 내에, NAL 유닛에서의 각각의 개개의 서브-샘플에 대하여, 복수의 비트들을 가지는 서브-샘플 식별자 신택스 엘리먼트 (예컨대, subsample_id) 를 포함할 수도 있다. 이 예에서, 복수의 비트들은 NAL 유닛 내에서의 상이한 타일들에 대응하는 비트들을 포함한다. 또한, 이 예에서, NAL 유닛에서의 타일에 대응하는 비트는 타일이 타일 세트의 일부인지 여부를 표시한다. 유사하게, 파일 파싱 유닛 (31) 은 파일에서의 시각적 샘플 그룹 엔트리로부터, NAL 유닛에서의 각각의 개개의 서브-샘플에 대하여, 복수의 비트들을 가지는 서브-샘플 식별자 신택스 엘리먼트 (예컨대, subsample_id) 를 획득할 수도 있다. 복수의 비트들은 NAL 유닛 내에서의 상이한 타일들에 대응하는 비트들을 포함하고, NAL 유닛에서의 타일에 대응하는 비트는 타일이 타일 세트의 일부인지 여부를 표시한다. 파일 파싱 유닛 (31) 은 타일 세트를 프로세싱할 수도 있다. 예를 들어, 도 2 에서, 슬라이스 세그먼트 (94) 에 대한 VCL NAL 유닛은 타일 (82), 타일 (84) 의 인코딩된 CTU 들, 및 타일 (86) 의 일부 인코딩된 CTU 들을 포함한다. 이 예에서, 파일에서의 NALUMapEntry 는 VCL NAL 유닛에서의 최초의 2 개의 타일들 (즉, 타일 (82) 및 타일 (84)) 이 타일 세트 내에 포함된다는 것을 표시하기 위하여, VCL NAL 유닛에 대하여, 1100 0000 0000 0000 0000 0000 0000 0000 과 동일한 신택스 엘리먼트를 포함할 수도 있다. 이에 따라, 희망된 출력이 타일들 (82 및 84) 일 경우, 파일 파싱 유닛 (31) 은 NALUMapEntry 에서 시그널링된 groupID 신택스 엘리먼트들에 기초하여, VCL NAL 유닛이 타일 (82) 및 타일 (84) 에 대한 인코딩된 CTU 들을 포함하는 것으로 결정할 수도 있다. 따라서, 이 예에서, 파일 파싱 유닛 (31) 은 파일로부터 VCL NAL 유닛을 추출할 수도 있다. 파일 파싱 유닛 (31) 은 추출된 VCL NAL 유닛을 디코딩을 위한, 비디오 디코더 (30) (도 1) 와 같은 비디오 디코더로 출력할 수도 있다.
이 개시물의 기법들은 타일 영역 및 타일 세트 인터-계층 종속성에 대하여 위에서 설명된 문제들을 해결할 수도 있다. 예를 들어, 하나의 예에서, 타일 세트는 계층-특정 범위를 가지고, 즉, 각각의 계층은 그 자신의 타일 세트 시그널링을 가진다. 다시 말해서, 이 예에서, 타일 세트의 일부인 모든 타일들은 동일한 계층으로부터의 픽처들에 속한다. 이 때문에, 타일 세트의 일부인 각각의 타일은 동일한 계층의 픽처들에 속한다. 예를 들어, 비트스트림은 2 개의 계층들을 가질 수도 있다: 계층 0 및 계층 1. 이 예에서, 제 1 TileSetGroupEntry 는 계층 0 에 대하여 시그널링될 수도 있고, 제 2 TileSetGroupEntry 는 계층 1 에 대하여 시그널링될 수도 있다. 이 예에서, 제 1 TileSetGroupEntry 는 계층 1 에서의 타일들을 지칭하지 않고, 제 2 TileSetGroupEntry 는 계층 0 에서의 타일들을 지칭하지 않는다.
또한, 일부 예들에서, 타일 세트가 속하는 계층의 계층 ID 를 표시하는 새로운 신택스 엘리먼트는 타일 세트 설명 엔트리 (예컨대, TileSetGroupEntry, TileRegionGroupEntry 박스) 에서 추가적으로 시그널링된다. 이에 따라, 이 예에서, 파일 생성 디바이스 (34) 는 파일의 타일 세트 설명 엔트리에서, 타일 세트가 속하는 계층의 계층 식별자를 표시하는 신택스 엘리먼트 (예컨대, layerID) 를 시그널링할 수도 있다. 예를 들어, 비트스트림은 계층 0 및 계층 1 을 포함할 수도 있다. 이 예에서, 신택스 엘리먼트는 타일 세트가 계층 0 에 속한다는 것을 표시하기 위하여 계층 0 의 계층 식별자를 표시할 수도 있다. 유사하게, 파일 파싱 유닛 (31) 은 파일의 타일 세트 설명 엔트리로부터, 타일 세트가 속하는 계층의 계층 식별자를 표시하는 신택스 엘리먼트를 획득할 수도 있다. 이 예에서, 파일 파싱 유닛 (31) 은 신택스 엘리먼트에 기초하여, 타일 세트를 프로세싱할 수도 있다. 예를 들어, 파일 파싱 유닛 (31) 은 어느 VCL NAL 유닛들이 희망된 타일 세트의 인코딩된 블록들 (예컨대, CTU 들) 을 포함하는지를 결정하는 것의 일부로서, 타일 세트 설명 엔트리가 특정한 계층에 대응하는 것으로 결정하기 위하여 신택스 엘리먼트를 이용할 수도 있다. 이 예에서, 신택스 엘리먼트에 의해 표시된 계층 식별자가 특정한 계층을 표시할 경우, 파일 파싱 유닛 (31) 은 타일 세트 설명 엔트리가 희망된 타일 그룹에 대응하는지 여부를 결정하기 위하여 타일 세트 설명 엔트리에서의 정보를 이용할 수도 있다. 또한, 타일 세트 설명 엔트리가 희망된 타일 그룹에 대응할 경우, 파일 파싱 유닛 (31) 은 타일 세트 설명 엔트리에 의해 특정된 groupID 에 배정된 VCL NAL 유닛들을 추출할 수도 있다.
일부 예들에서, 상이한 계층들의 동일한 영역 (즉, 공동위치된 영역들) 을 커버하는 타일 세트들은 동일한 타일 세트 ID 를 가진다. 예를 들어, 도 5 는 상이한 계층들에서 동일한 영역을 커버하는 타일 세트들을 예시하는 개념적인 도면이다. 도 5 의 예에서, 픽처들 (130, 132) 은 제 1 계층 (L0) 내에 있고, 픽처들 (134, 136) 은 제 2 계층 (L1) 내에 있다. 또한, 도 5 의 예에서, 픽처들 (130, 136) 은 제 1 액세스 유닛 (T0) 내에 있고, 픽처들 (132, 134) 은 제 2 액세스 유닛 (T1) 내에 있다. 픽처들 (130, 132, 134, 136) 의 각각은 더 작은 정사각형들에 의해 표시된 9 개의 타일들을 포함한다. 위에서 언급된 바와 같이, 이 개시물의 예에 따르면, 각각의 계층에 대한 TileSetGroupEntry 박스 (예컨대, L0 에 대한 TileSetGroupEntry 박스 및 L1 에 대한 별도의 TileSetGroupEntry 박스) 가 있다. L0 에 대한 타일 세트에서의 타일들 및 L1 에 대한 타일 세트에서의 타일들은 공유된다. 도 5 의 예에서, L0 에 대한 타일 세트에서의 타일들은 L1 에 대한 타일 세트에서의 타일들과 공동위치되므로, L0 에 대한 타일 세트에 대한 타일 세트 ID 는 L1 에 대한 타일 세트에 대한 타일 세트 ID 와 동일하다.
추가적으로, 이 예에서, 파일 생성 디바이스 (34) 는 파일의 타일 세트 그룹 엔트리에서, 타일 세트가 속하는 계층과의 종속성을 설명하는 종속성 정보 (예컨대, dependency_list, dependency_tile_count, dependencyTileGroupID) 를 시그널링할 수도 있거나, 또는 그렇지 않을 경우에 포함할 수도 있다. 추가적으로, 이 예에서, 파일 파싱 유닛 (31) 은 파일의 타일 세트 그룹 엔트리로부터, 타일 세트가 속하는 계층과의 종속성을 설명하는 종속성 정보를 획득할 수도 있다. 이 예에서, 파일 파싱 유닛 (31) 은 신택스 엘리먼트 및 종속성 정보에 기초하여, 타일 세트를 프로세싱할 수도 있다. 예를 들어, 파일 파싱 유닛 (31) 은, 종속적인 계층들 (즉, 타일 세트가 속하는 계층이 종속되는 계층들) 에 대응하는 신택스 엘리먼트들 (예컨대, layerID 신택스 엘리먼트들) 을 가지고, 현재의 타일 세트 그룹 엔트리의 groupID 와 동일한 값을 특정하는 신택스 엘리먼트들 (예컨대, groupID 신택스 엘리먼트들) 을 가지는 타일 세트 그룹 엔트리들을 식별하기 위하여, 현재의 타일 세트 그룹 엔트리에서의 종속성 정보를 이용할 수도 있다. 이 예에서, 그 다음으로, 파일 파싱 유닛 (31) 은 종속적인 계층들의 각각에서의 타일 그룹들의 인코딩된 블록들을 포함하는 VCL NAL 유닛들을 식별할 수도 있다.
또한, MPEG 출력 문서 N15297 에서 정의된 바와 같이, TileRegionGroupEntry 박스에서의 independent_idc 신택스 엘리먼트는 동일한 계층의 현재의 픽처 및 참조 픽처들에서의 타일 영역과 다른 타일 영역들 사이의 코딩 종속성들을 특정한다. 이 개시물의 예에 따르면, TileSetGroupEntry 박스에 대하여, (예컨대, 신택스 엘리먼트 independent_idc 에 기초한) 종속성 정보는 타일 세트가 속하는 계층 내에서의 종속성을 설명한다. 다시 말해서, TileSetGroupEntry 박스는 종속성 정보를 표시하는 하나 이상의 신택스 엘리먼트들을 포함할 수도 있다.
일부 예들에서, 인터-계층 종속성 정보에 대하여, 'oinf' 및 'linf' 샘플 그룹에서 시그널링된 계층 종속성이 이용된다. 예를 들어, 동작 포인트에 대한 'oinf' 샘플 그룹 설명 박스는 동작 포인트의 각각의 개개의 계층에 대하여, 만약 존재한다면, 동작 포인트의 어느 다른 계층들이 개개의 계층의 참조 계층들인지를 표시하는 신택스 엘리먼트들을 포함할 수도 있다. 계층에 대한 'linf' 샘플 그룹 설명 박스는 계층의 참조 계층들을 표시하는 신택스 엘리먼트들을 포함할 수도 있다. 이에 따라, 이 예에서는, (예컨대, 위에서 설명된 바와 같은, dependency_list 신택스 엘리먼트, dependency_tile_count 신택스 엘리먼트, 및 dependencyTileGroupID 신택스 엘리먼트들을 이용하여) 타일 세트 그룹 엔트리에서의 계층 종속성을 표시하는 것이 아니라, 파일 파싱 유닛 (31) 은 계층 종속성들을 결정하기 위하여 'oinf' 및/또는 'linf' 샘플 그룹들을 그 대신에 이용할 수도 있다.
타일 영역 및 타일 세트 인터-계층 종속성에 대하여 위에서 설명된 문제들을 해결하기 위한 이 개시물의 일부 예의 기법들에서, 타일 영역은 타일 세트로 병합되지 않는다. 다시 말해서, 타일 영역들 및 타일 세트들의 별도의 개념들이 유지된다. 이러한 예들에서, 다음이 적용될 수도 있다:
a. 타일 영역은 계층 특정적인 것으로서 특정된다.
b. 타일 영역이 속하는 계층의 계층 ID 를 표시하는 신택스 엘리먼트는 타일 영역 설명 엔트리 (즉, TileRegionGroupEntry) 에서 추가적으로 시그널링된다.
c. 상이한 계층들에서의 동일한 영역을 커버하는 타일 영역들 (즉, 공동위치된 영역) 은 동일한 타일 영역 ID 를 가질 수도 있다.
d. TileRegionGroupEntry 에 대하여, (예컨대, 현재의 신택스 엘리먼트 independent_idc 에 기초한) 종속성 정보는 타일 영역이 속하는 계층 내에서의 종속성을 설명한다.
e. 인터-계층 종속성 정보에 대하여, 'oinf' 및 'linf' 샘플 그룹에서 시그널링된 계층 종속성이 이용된다.
이에 따라, 이 예에서, 파일 생성 디바이스 (34) 는 파일에서의 타일 영역 그룹 엔트리 (예컨대, TileRegionGroupEntry 박스) 에서, 타일 영역이 속하는 계층의 계층 식별자를 표시하는 신택스 엘리먼트 (예컨대, layerID) 를 시그널링할 수도 있다. 추가적으로, 이 예에서, 파일 생성 디바이스 (34) 는 파일의 타일 영역 그룹 엔트리에서, 타일 영역이 속하는 계층과의 종속성을 설명하는 (예컨대, independent_idc 신택스 엘리먼트에 기초한) 종속성 정보를 시그널링할 수도 있다. 마찬가지로, 파일 파싱 유닛 (31) 은 파일에서의 타일 영역 설명 엔트리 (예컨대, TileRegionGroupEntry 박스) 로부터, 타일 영역이 속하는 계층의 계층 식별자를 표시하는 신택스 엘리먼트 (예컨대, 계층 ID) 를 획득할 수도 있다. 추가적으로, 이 예에서, 파일 파싱 유닛 (31) 은 파일의 타일 영역 그룹 엔트리로부터, 타일 영역이 속하는 계층과의 종속성을 설명하는 종속성 정보를 획득할 수도 있다. 파일 파싱 유닛 (31) 은 신택스 엘리먼트 및 종속성 정보에 기초하여, 타일 세트를 프로세싱할 수도 있다. 파일 파싱 유닛 (31) 은 이 개시물에서의 어딘가에서의 대응하는 예들에 따라 타일 세트를 프로세싱할 수도 있다.
이 개시물의 일부 예들에 따르면, "타일 세트" 의 정의는, "타일 세트" 가 세트의 일부가 아닌 다른 타일들의 존재 없이 디코딩가능한 하나 이상의 완전한 HEVC 타일들의 세트를 의미하고, 타일들은 디코딩 순서에서 인접할 수도 있지만 인접할 필요가 없을 수도 있도록 변경된다. 다시 말해서, 타일 세트의 일부인 타일들의 세트는, 타일들이 타일 세트의 일부가 아닌 타일들을 참조하지 않으면서 코딩되도록, (반드시 각각의 타일 자체 내에서가 아닌) 타일 세트 내에서 제약된 모션이다. 예를 들어, 비디오 코더는 모션 예측을 위하여 타일과 시간적으로 공동위치되는 참조 픽처에서의 타일에서의 블록을 오직 이용할 수 있다. 이 정의로, 랜덤 액세스 그룹 박스, 동기 그룹 박스, 또는 NAL 유닛 헤더 정보와 같은 현존하는 정보는 타일 세트에 대한 시간적 종속성을 추론하기 위하여 이용될 수 있다. 이에 따라, 이 예에서, TileSetGroupEntry 에서의 이러한 정보를 시그널링하는 것은 필요하지 않다. 예를 들어, TileSetGroupEntry 에서의 dependency_list 신택스 엘리먼트, dependency_tile_count 신택스 엘리먼트, 또는 dependencyTileGroupID 신택스 엘리먼트들을 시그널링하는 것은 필요하지 않을 수도 있다.
이 개시물의 기법에 따르면, 픽처-레벨 및 상부-레벨 비-VCL NAL 유닛들에 관하여 위에서 설명된 문제들을 해결하기 위하여, 모든 타일 영역들 또는 타일 세트들과 연관되는 NAL 유닛들을 표시하기 위하여 groupID 0 에 추가하여, 특수한 groupID 값을 가지는 것이 제안된다. 예를 들어, NALUMapEntry 박스가 0 과 동일한 groupID 를 NAL 유닛에 배정할 경우, NAL 유닛은 임의의 그룹과 연관되지 않는다. 이 예에서, NALUMapEntry 박스가 1 과 동일한 groupID 를 NAL 유닛에 배정할 경우, NAL 유닛은 비-VCL NAL 유닛이고, NAL 유닛은 1 보다 더 큰 groupID 를 배정받은 임의의 그룹을 프로세싱하기 위하여 필요할 수도 있다. 다른 예들에서, 1 이외의 값들을 갖는 groupID 들을 배정받은 NAL 유닛들은 다른 그룹들을 프로세싱하기 위하여 필요할 수도 있다.
이에 따라, 이 예에서, 파일 생성 디바이스 (34) 는 파일의 NALUMapEntry 내에, 그룹 식별자 신택스 엘리먼트 (예컨대, groupID) 를 포함할 수도 있다. 이 예에서, 0 과 동일한 값을 가지는 그룹 식별자 신택스 엘리먼트는 NAL 유닛 또는 서브-샘플이 임의의 그룹과 연관되지 않는다는 것을 표시하고, 1 과 동일한 값을 가지는 그룹 식별자 신택스 엘리먼트는 NAL 유닛이 1 보다 더 큰 그룹 식별자 신택스 엘리먼트를 갖는 임의의 그룹을 프로세싱하기 위하여 필요할 수도 있는 비-VCL NAL 유닛인 것을 표시하고, 1 보다 더 큰 값을 가지는 그룹 식별자 신택스 엘리먼트는 대응하는 타일 세트 그룹 세트 엔트리를 표시한다. 유사하게, 파일 파싱 유닛 (31) 은 파일의 NALUMapEntry 로부터, 그룹 식별자 신택스 엘리먼트 (예컨대, groupID) 를 획득할 수도 있다. 0 과 동일한 값을 가지는 그룹 식별자 신택스 엘리먼트는 NAL 유닛 또는 서브-샘플이 임의의 그룹과 연관되지 않는다는 것을 표시하고, 1 과 동일한 값을 가지는 그룹 식별자 신택스 엘리먼트는 NAL 유닛이 1 보다 더 큰 그룹 식별자 신택스 엘리먼트를 갖는 임의의 그룹을 프로세싱하기 위하여 필요할 수도 있는 비-VCL NAL 유닛인 것을 표시하고, 1 보다 더 큰 값을 가지는 그룹 식별자 신택스 엘리먼트는 대응하는 타일 세트 그룹 세트 엔트리를 표시한다. 이 예에서, 파일 파싱 유닛 (31) 은 타일 세트를 프로세싱할 수도 있다. 예를 들어, 파일 파싱 유닛 (31) 은 희망된 타일 세트와 연관된 그룹 식별자를 배정받는 NAL 유닛들과 함께, 1 과 동일한 그룹 식별자들을 배정받는 NAL 유닛들을 식별하기 위하여 NALUMapEntry 를 이용할 수도 있다. 또한, 이 예에서, 파일 파싱 유닛 (31) 은 파일로부터 식별된 NAL 유닛들을 추출할 수도 있고, 추출된 NAL 유닛들을 (예컨대, 비디오 디코더 (30) (도 1) 와 같은 비디오 디코더로) 출력할 수도 있다.
다양한 예들에서, MANE 와 같은 디바이스는 타일 세트를 (예컨대, 다양한 신택스 엘리먼트들에 기초하여) 프로세싱할 수도 있다. 이러한 프로세싱은 파일로부터 타일들을 추출하는 것과 같은 다양한 액션들을 포함할 수도 있다. 또한, 이러한 프로세싱은 추출된 타일들을 (예컨대, 비디오 디코더, 목적지 디바이스 (14) 등으로) 송신하는 것을 포함할 수도 있다. 예를 들어, 픽처의 타일 세트를 오직 송신하지만, 픽처의 나머지 타일들을 송신하지 않는 것이 바람직할 수도 있다. 이것은 타일 세트에 대응하는 픽처의 오직 부분이 업데이트된 컨텐츠를 포함하는 경우들에 있어서 또는 다른 상황들에서의 에러 정정을 위하여 바람직할 수도 있다.
도 6 은 이 개시물에서 설명된 기법들을 구현할 수도 있는 일 예의 비디오 인코더 (20) 를 예시하는 블록도이다. 비디오 인코더 (20) 는 이 개시물에서 설명된 파일 포맷 기법들을 이용하여 저장될 수도 있는 비디오 데이터를 생성하도록 구성된 비디오 코더의 예를 표현한다. 비디오 인코더 (20) 는 단일 뷰, 멀티뷰, 스케일러블, 3D, 및 다른 타입들의 비디오 데이터를 출력하도록 구성될 수도 있다. 비디오 인코더 (20) 는 인코딩된 비디오 데이터를 포스트-프로세싱 (post-processing) 엔티티 (200) 로 출력하도록 구성될 수도 있다. 포스트-프로세싱 엔티티 (200) 는, 비디오 인코더 (20) 로부터의 인코딩된 비디오 데이터를 프로세싱할 수도 있는 MANE 또는 스플라이싱/편집 디바이스 (splicing/editing device) 와 같은 비디오 엔티티의 예를 표현하도록 의도된다. 일부 사례들에서, 포스트-프로세싱 엔티티 (200) 는 네트워크 엔티티의 예일 수도 있다. 일부 비디오 인코딩 시스템들에서, 포스트-프로세싱 엔티티 (200) 및 비디오 인코더 (20) 는 별도의 디바이스들의 일부들일 수도 있는 반면, 다른 사례들에서는, 포스트-프로세싱 엔티티 (200) 에 대하여 설명된 기능성이 비디오 인코더 (20) 를 포함하는 동일한 디바이스에 의해 수행될 수도 있다. 포스트-프로세싱 엔티티 (200) 는 비디오 디바이스일 수도 있다. 일부 예들에서, 포스트-프로세싱 엔티티 (200) 는 도 1 의 파일 생성 디바이스 (34) 와 동일할 수도 있다.
이 개시물의 기법에 따르면, 포스트-프로세싱 엔티티 (200) 는 비디오 인코더 (20) 에 의해 생성된 인코딩된 비디오 컨텐츠의 저장을 위한 파일을 생성할 수도 있다. 포스트-프로세싱 엔티티 (200) 는 이 개시물의 기법들 중의 임의의 것에 따라 파일을 생성할 수도 있다.
비디오 인코더 (20) 는 비디오 슬라이스들 내의 비디오 블록들의 인트라-코딩 및 인터-코딩을 수행할 수도 있다. 인트라 코딩은 소정의 비디오 프레임 또는 픽처 내에서의 비디오에 있어서의 공간적 중복성을 감소시키거나 제거하기 위하여 공간적 예측에 의존한다. 인터-코딩은 비디오 시퀀스의 인접한 프레임들 또는 픽처들 내의 비디오에 있어서의 시간적 중복성을 감소시키거나 제거하기 위하여 시간적 예측에 의존한다. 인트라-모드 (I 모드) 는 몇몇 공간 기반 압축 모드들 중의 임의의 것을 지칭할 수도 있다. 단방향 예측 (P 모드) 또는 양방향-예측 (B 모드) 과 같은 인터-모드들은 몇몇 시간 기반 압축 모드들 중의 임의의 것을 지칭할 수도 있다.
도 6 의 예에서, 비디오 인코더 (20) 는 파티셔닝 유닛 (202), 예측 프로세싱 유닛 (204), 필터 유닛 (206), 참조 픽처 메모리 (208), 합산기 (210), 변환 프로세싱 유닛 (212), 양자화 유닛 (214), 및 엔트로피 인코딩 유닛 (216) 을 포함한다. 예측 프로세싱 유닛 (204) 은 모션 추정 유닛 (218), 모션 보상 유닛 (220), 및 인트라 예측 프로세싱 유닛 (222) 을 포함한다. 비디오 블록 복원을 위하여, 비디오 인코더 (20) 는 또한, 역양자화 유닛 (224), 역변환 프로세싱 유닛 (226), 및 합산기 (228) 를 포함한다. 필터 유닛 (206) 은 디블록킹 필터, 적응적 루프 필터 (adaptive loop filter; ALF), 및/또는 샘플 적응적 오프셋 (sample adaptive offset; SAO) 필터와 같은 하나 이상의 루프 필터들을 표현하도록 의도된 것이다. 필터 유닛 (206) 은 인-루프 필터 (in-loop filter) 인 것으로서 도 6 에서 도시되어 있지만, 다른 구성들에서는, 필터 유닛 (206) 이 포스트 루프 필터 (post loop filter) 로서 구현될 수도 있다.
비디오 인코더 (20) 의 비디오 데이터 메모리 (230) 는 비디오 인코더 (20) 의 컴포넌트들에 의해 인코딩되어야 할 비디오 데이터를 저장할 수도 있다. 비디오 데이터 메모리 (230) 내에 저장된 비디오 데이터는 예를 들어, 비디오 소스 (18) 로부터 획득될 수도 있다. 참조 픽처 메모리 (208) 는 예컨대, 인트라- 또는 인터-코딩 모드들에서 비디오 인코더 (20) 에 의해 비디오 데이터를 인코딩함에 있어서의 이용을 위한 참조 비디오 데이터를 저장하는 참조 픽처 메모리일 수도 있다. 비디오 데이터 메모리 (230) 및 참조 픽처 메모리 (208) 는 동기식 DRAM (synchronous DRAM; SDRAM) 을 포함하는 동적 랜덤 액세스 메모리 (dynamic random access memory; DRAM), 자기저항성 RAM (magnetoresistive RAM; MRAM), 저항성 RAM (resistive RAM; RRAM), 또는 다른 타입들의 메모리 디바이스들과 같은 다양한 메모리 디바이스들 중의 임의의 것에 의해 형성될 수도 있다. 비디오 데이터 메모리 (230) 및 참조 픽처 메모리 (208) 는 동일한 메모리 디바이스 또는 별도의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에서, 비디오 데이터 메모리 (230) 는 비디오 인코더 (20) 의 다른 컴포넌트들과 온-칩 (on-chip) 일 수도 있거나, 그 컴포넌트들에 관하여 오프-칩 (off-chip) 일 수도 있다.
도 6 에서 도시된 바와 같이, 비디오 인코더 (20) 는 비디오 데이터를 수신하고, 파티셔닝 유닛 (202) 은 데이터를 비디오 블록들로 파티셔닝한다. 이 파티셔닝은 또한, 슬라이스 (slice) 들, 또는 다른 더 큰 유닛들로의 파티셔닝 뿐만 아니라, 예컨대, LCU 들 및 CU 들의 쿼드트리 구조에 따른 비디오 블록 파티셔닝을 포함할 수도 있다. 비디오 인코더 (20) 는 인코딩되어야 할 비디오 슬라이스 내의 비디오 블록들을 인코딩하는 컴포넌트들을 일반적으로 예시한다. 슬라이스는 다수의 비디오 블록들로 분할될 수도 있다. 예측 프로세싱 유닛 (204) 은 에러 결과들 (예컨대, 코딩 레이트 및 왜곡의 레벨) 에 기초하여 현재의 비디오 블록에 대하여, 복수의 인트라 코딩 모드들 중의 하나 또는 복수의 인터 코딩 모드들 중의 하나와 같은 복수의 가능한 코딩 모드들 중의 하나를 선택할 수도 있다. 예측 프로세싱 유닛 (204) 은 결과적인 인트라- 또는 인터-코딩된 블록을, 잔차 블록 데이터를 생성하기 위하여 합산기 (210) 에, 그리고 참조 픽처로서의 이용을 위한 인코딩된 블록을 복원하기 위하여 합산기 (228) 에 제공할 수도 있다.
예측 프로세싱 유닛 (204) 내의 인트라 예측 프로세싱 유닛 (222) 은 공간적 압축을 제공하기 위하여, 코딩되어야 할 현재의 블록과 동일한 프레임 또는 슬라이스에서의 하나 이상의 이웃하는 블록들에 대하여 현재의 비디오 블록의 인트라-예측 코딩을 수행할 수도 있다. 예측 프로세싱 유닛 (204) 내의 모션 추정 유닛 (218) 및 모션 보상 유닛 (220) 은 시간적 압축을 제공하기 위하여, 하나 이상의 참조 픽처들 내의 하나 이상의 예측 블록들에 관련된 현재의 비디오 블록의 인터-예측 코딩을 수행한다.
모션 추정 유닛 (218) 은 비디오 시퀀스에 대한 미리 결정된 패턴에 따라 비디오 슬라이스에 대한 인터-예측 모드를 결정하도록 구성될 수도 있다. 미리 결정된 패턴은 시퀀스에서의 비디오 슬라이스들을 P 슬라이스들, B 슬라이스들, 또는 GPB 슬라이스들로서 지정할 수도 있다. 모션 추정 유닛 (218) 및 모션 보상 유닛 (220) 은 고도로 통합될 수도 있지만, 개념적인 목적들을 위하여 별도로 예시되어 있다. 모션 추정 유닛 (218) 에 의해 수행된 모션 추정은 비디오 블록들에 대한 모션을 추정하는 모션 벡터들을 생성하는 프로세스이다. 예를 들어, 모션 벡터는 참조 픽처 내에서의 예측 블록에 관한 현재의 비디오 프레임 또는 픽처 내에서의 비디오 블록의 PU 의 변위를 표시할 수도 있다.
예측 블록은, 절대차의 합 (sum of absolute difference; SAD), 제곱차의 합 (sum of square difference; SSD), 또는 다른 차이 메트릭들에 의해 결정될 수도 있는 픽셀 차이의 측면에서, 코딩되어야 할 비디오 블록의 PU 와 근접하게 정합하기 위하여 구해지는 블록이다. 일부 예들에서, 비디오 인코더 (20) 는 참조 픽처 메모리 (208) 내에 저장된 참조 픽처들의 정수-미만 (sub-integer) 픽셀 위치들에 대한 값들을 계산할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 참조 픽처의 1/4 픽셀 위치들, 1/8 픽셀 위치들, 또는 다른 분수 픽셀 위치들의 값들을 보간할 수도 있다. 그러므로, 모션 추정 유닛 (218) 은 전체 픽셀 위치들 및 분수 픽셀 위치들에 관하여 모션 검색을 수행할 수도 있고, 분수 픽셀 정밀도를 갖는 모션 벡터를 출력할 수도 있다.
모션 추정 유닛 (218) 은 PU 의 위치를 참조 픽처의 예측 블록의 위치와 비교함으로써, 인터-코딩된 슬라이스에서의 비디오 블록의 PU 에 대한 모션 벡터를 계산한다. 참조 픽처는 제 1 참조 픽처 리스트 (List 0) 또는 제 2 참조 픽처 리스트 (List 1) 로부터 선택될 수도 있고, 이들의 각각은 참조 픽처 메모리 (208) 내에 저장된 하나 이상의 참조 픽처들을 식별한다. 모션 추정 유닛 (218) 은 계산된 모션 벡터가 그로부터 결정될 수 있는 신택스 엘리먼트들을 엔트로피 인코딩 유닛 (216) 및 모션 보상 유닛 (220) 으로 전송한다.
모션 보상 유닛 (220) 에 의해 수행된 모션 보상은 모션 추정에 의해 결정된 모션 벡터에 기초하여 예측 블록을 페치 (fetch) 하거나 생성하여, 서브-픽셀 정밀도 (sub-pixel precision) 로의 보간들을 아마도 수행하는 것을 수반할 수도 있다. 현재의 비디오 블록의 PU 에 대한 모션 벡터를 수신할 시에, 모션 보상 유닛 (220) 은 모션 벡터가 참조 픽처 리스트들 중의 하나에서 지시하는 예측 블록을 위치시킬 수도 있다. 비디오 인코더 (20) 는 코딩되고 있는 현재의 비디오 블록의 픽셀 값들로부터 예측 블록의 픽셀 값들을 감산하여 픽셀 차이 값들을 형성함으로써 잔차 비디오 블록을 형성할 수도 있다. 픽셀 차이 값들은 블록에 대한 잔차 데이터를 형성하고, 루마 및 크로마 차이 컴포넌트들의 양자를 포함할 수도 있다. 합산기 (210) 는 이 감산 동작을 수행하는 컴포넌트 또는 컴포넌트들을 표현한다. 모션 보상 유닛 (220) 은 또한, 비디오 슬라이스의 비디오 블록들을 디코딩할 시에 비디오 디코더 (30) 에 의한 이용을 위하여 비디오 블록들 및 비디오 슬라이스와 연관된 신택스 엘리먼트들을 생성할 수도 있다.
인트라 예측 프로세싱 유닛 (222) 은 위에서 설명된 바와 같이, 모션 추정 유닛 (218) 및 모션 보상 유닛 (220) 에 의해 수행된 인터-예측에 대한 대안으로서, 현재의 블록을 인트라-예측할 수도 있다. 예를 들어, 인트라 예측 프로세싱 유닛 (222) 은 현재의 블록을 인코딩하기 위하여 이용하기 위한 인트라-예측 모드를 결정할 수도 있다. 일부 예들에서, 인트라 예측 프로세싱 유닛 (222) 은 예컨대, 별도의 인코딩 패스 (encoding pass) 들 동안에 다양한 인트라-예측 모드들을 이용하여 현재의 블록을 인코딩할 수도 있고, 인트라 예측 프로세싱 유닛 (222) 은 테스팅된 모드들로부터 이용하기 위한 적절한 인트라-예측 모드를 선택할 수도 있다. 예를 들어, 인트라 예측 프로세싱 유닛 (222) 은 다양한 테스팅된 인트라-예측 모드들에 대한 레이트-왜곡 분석을 이용하여 레이트-왜곡 값들을 계산할 수도 있고, 테스팅된 모드들 중에서 최상의 레이트-왜곡 특성들을 가지는 인트라-예측 모드를 선택할 수도 있다. 레이트-왜곡 분석은 일반적으로, 인코딩된 블록과, 인코딩된 블록을 생성하기 위하여 인코딩되었던 원래의 인코딩되지 않은 블록과의 사이의 왜곡 (또는 에러) 의 양 뿐만 아니라, 인코딩된 블록을 생성하기 위하여 이용된 비트 레이트 (즉, 비트들의 수) 를 결정한다. 인트라 예측 프로세싱 유닛 (222) 은 어느 인트라-예측 모드가 블록에 대한 최상의 레이트-왜곡 값을 나타내는지를 결정하기 위하여 다양한 인코딩된 블록들에 대한 왜곡들 및 레이트들로부터 비율들을 계산할 수도 있다.
어떤 경우에도, 블록에 대한 인트라-예측 모드를 선택한 후, 인트라 예측 프로세싱 유닛 (222) 은 블록에 대한 선택된 인트라-예측 모드를 표시하는 정보를 엔트로피 인코딩 유닛 (216) 에 제공할 수도 있다. 엔트로피 인코딩 유닛 (216) 은 이 개시물의 기법들에 따라, 선택된 인트라-예측 모드를 표시하는 정보를 인코딩할 수도 있다. 비디오 인코더 (20) 는 복수의 인트라-예측 모드 인덱스 테이블들 및 복수의 수정된 인트라-예측 모드 인덱스 테이블들 (또한 코드워드 맵핑 테이블 (codeword mapping table) 들로서 지칭됨) 을 포함할 수도 있는 송신된 비트스트림 구성 데이터에서, 다양한 블록들에 대한 인코딩 컨텍스트들의 정의들과, 컨텍스트들의 각각에 대해 이용하기 위한 가장 가능성 있는 인트라-예측 모드, 인트라-예측 모드 인덱스 테이블, 및 수정된 인트라-예측 모드 인덱스 테이블의 표시들을 포함할 수도 있다.
예측 프로세싱 유닛 (204) 이 인터-예측 또는 인트라-예측의 어느 하나를 통해 현재의 비디오 블록에 대한 예측 블록을 생성한 후, 비디오 인코더 (20) 는 현재의 비디오 블록으로부터 예측 블록을 감산함으로써 잔차 비디오 블록을 형성할 수도 있다. 잔차 블록에서의 잔차 비디오 데이터는 하나 이상의 TU 들에 포함될 수도 있고 변환 프로세싱 유닛 (212) 에 적용될 수도 있다. 변환 프로세싱 유닛 (212) 은 이산 코사인 변환 (discrete cosine transform; DCT) 또는 개념적으로 유사한 변환과 같은 변환을 이용하여 잔차 비디오 데이터를 잔차 변환 계수들로 변환한다. 변환 프로세싱 유닛 (212) 은 잔차 비디오 데이터를 픽셀 도메인으로부터, 주파수 도메인과 같은 변환 도메인으로 변환할 수도 있다.
변환 프로세싱 유닛 (212) 은 결과적인 변환 계수들을 양자화 유닛 (214) 으로 전송할 수도 있다. 양자화 유닛 (214) 은 비트 레이트를 추가로 감소시키기 위하여 변환 계수들을 양자화한다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 심도를 감소시킬 수도 있다. 양자화도는 양자화 파라미터를 조절함으로써 수정될 수도 있다. 일부 예들에서, 그 다음으로, 양자화 유닛 (214) 은 양자화된 변환 계수들을 포함하는 행렬의 스캔을 수행할 수도 있다. 대안적으로, 엔트로피 인코딩 유닛 (216) 은 스캔을 수행할 수도 있다.
양자화에 후속하여, 엔트로피 인코딩 유닛 (216) 은 양자화된 변환 계수들을 표현하는 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (216) 은 컨텍스트 적응 가변 길이 코딩 (CAVLC), 컨텍스트 적응 2 진 산술 코딩 (CABAC), 신택스-기반 컨텍스트-적응 2 진 산술 코딩 (SBAC), 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩 또는 또 다른 엔트로피 인코딩 방법론 또는 기법을 수행할 수도 있다. 엔트로피 인코딩 유닛 (216) 에 의한 엔트로피 인코딩에 후속하여, 인코딩된 비트스트림은 비디오 디코더 (30) 로 송신될 수도 있거나, 비디오 디코더 (30) 에 의한 더 이후의 송신 또는 취출을 위하여 아카이빙될 수도 있다. 엔트로피 인코딩 유닛 (216) 은 또한, 코딩되고 있는 현재의 비디오 슬라이스에 대한 모션 벡터들 및 다른 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다.
역양자화 유닛 (224) 및 역변환 프로세싱 유닛 (226) 은 참조 픽처의 참조 블록으로서의 더 이후의 이용을 위해 픽셀 도메인에서 잔차 블록을 복원하기 위하여, 역양자화 및 역변환을 각각 적용한다. 모션 보상 유닛 (220) 은 잔차 블록을 참조 픽처 리스트들 중의 하나의 참조 픽처 리스트 내의 참조 픽처들 중의 하나의 참조 픽처의 예측 블록에 가산함으로써 참조 블록을 계산할 수도 있다. 모션 보상 유닛 (220) 은 또한, 모션 추정 시에 이용하기 위한 정수 미만 픽셀 값들을 계산하기 위하여 하나 이상의 보간 필터들을 복원된 잔차 블록에 적용할 수도 있다. 합산기 (228) 는 참조 픽처 메모리 (208) 에서의 저장을 위한 참조 블록을 생성하기 위하여, 복원된 잔차 블록을 모션 보상 유닛 (220) 에 의해 생성된 모션 보상된 예측 블록에 추가할 수도 있다. 참조 블록은 후속 비디오 프레임 또는 픽처에서 블록을 인터-예측하기 위하여, 모션 추정 유닛 (218) 및 모션 보상 유닛 (220) 에 의해 참조 블록으로서 이용될 수도 있다.
일부 예들에서, 포스트-프로세싱 엔티티 (200) 는 비디오 인코더 (20) 에 의해 생성된 비트스트림과 같은 비디오 컨텐츠들의 저장을 위한 파일을 생성한다. 예를 들어, 포스트-프로세싱 엔티티 (200) 는 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 수신할 수도 있다. 이 예에서, 비디오 데이터의 픽처들은 현재의 픽처를 포함하고, 현재의 픽처는 복수의 타일들로 파티셔닝되고, 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역이다. 또한, 이 예에서, 포스트-프로세싱 엔티티 (200) 는 파일에서의 NAL 유닛 맵 엔트리 박스 (예컨대, NALUMapEntry) 를 생성할 수도 있다. NAL 유닛 맵 엔트리 박스는 비트스트림의 NAL 유닛들을 타일 세트와 연관시킨다. 이 예에서, 타일 세트는 현재의 픽처가 파티셔닝되는 복수의 타일들 중의 2 개 이상의 타일들을 포함할 수도 있다. 일부 사례들에서, 타일 세트에서의 타일들에 의해 커버된 현재의 픽처의 영역은 형상에 있어서 직사각형이 아니다. 또한, 이 예에서, 포스트-프로세싱 엔티티 (200) 는 파일에서의 타일 세트 그룹 엔트리를 생성한다. 타일 세트 그룹 엔트리는 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함한다. 추가적으로, 이 예에서, 타일 세트 엔트리 박스는 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 포함한다. 수평 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정한다. 수직 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수직 오프셋을 특정한다. 폭 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 폭을 특정한다. 높이 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 높이를 특정한다.
도 7 은 이 개시물에서 설명된 기법들을 구현할 수도 있는 일 예의 비디오 디코더 (30) 를 예시하는 블록도이다. 도 7 의 비디오 디코더 (30) 는 이 개시물에서 설명된 파일 포맷 기법들을 이용하여 저장될 수도 있는 비디오 데이터를 디코딩하도록 구성된 비디오 디코더의 예를 표현한다.
비디오 디코더 (30) 는 단일 뷰, 멀티뷰, 스케일러블, 3D, 및 다른 타입들의 비디오 데이터를 디코딩하도록 구성될 수도 있다. 도 7 의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (250), 예측 프로세싱 유닛 (252), 역양자화 유닛 (254), 역변환 프로세싱 유닛 (256), 합산기 (258), 필터 유닛 (260), 및 참조 픽처 메모리 (262) 를 포함한다. 예측 프로세싱 유닛 (252) 은 모션 보상 유닛 (264) 및 인트라 예측 프로세싱 유닛 (266) 을 포함한다. 일부 예들에서, 비디오 디코더 (30) 는 도 6 으로부터의 비디오 인코더 (20) 에 대하여 설명된 인코딩 패스와 일반적으로 상반적인 디코딩 패스를 수행할 수도 있다.
코딩된 픽처 버퍼 (coded picture buffer; CPB) (268) 는 비트스트림의 인코딩된 비디오 데이터 (예컨대, NAL 유닛들) 를 수신할 수도 있고 저장할 수도 있다. CPB (268) 내에 저장된 비디오 데이터는 예를 들어, 도 1 의 링크 (16) 로부터, 예컨대, 카메라와 같은 로컬 비디오 소스로부터, 비디오 데이터의 유선 또는 무선 네트워크 통신을 통해, 또는 물리적 데이터 저장 매체들을 액세스함으로써 획득될 수도 있다. CPB (268) 는, 인코딩된 비디오 비트스트림으로부터의 인코딩된 비디오 데이터를 저장하는 비디오 데이터 메모리를 형성할 수도 있다. 참조 픽처 메모리 (262) 는 예컨대, 인트라- 또는 인터-코딩 모드들에서 비디오 디코더 (30) 에 의해 비디오 데이터를 디코딩함에 있어서의 이용을 위한 참조 비디오 데이터를 저장하는 참조 픽처 메모리일 수도 있다. CPB (268) 및 참조 픽처 메모리 (262) 는 동기식 DRAM (SDRAM) 을 포함하는 동적 랜덤 액세스 메모리 (DRAM), 자기저항성 RAM (MRAM), 저항성 RAM (RRAM), 또는 다른 타입들의 메모리 디바이스들과 같은 다양한 메모리 디바이스들 중의 임의의 것에 의해 형성될 수도 있다. CPB (268) 및 참조 픽처 메모리 (262) 는 동일한 메모리 디바이스 또는 별도의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에서, CPB (268) 는 비디오 디코더 (30) 의 다른 컴포넌트들과 온-칩일 수도 있거나, 그 컴포넌트들에 관하여 오프-칩일 수도 있다.
디코딩 프로세스 동안, 비디오 디코더 (30) 는 비디오 인코더 (20) 로부터, 인코딩된 비디오 슬라이스의 비디오 블록들 및 연관된 신택스 엘리먼트들을 표현하는 인코딩된 비디오 비트스트림을 수신한다. 도 7 의 예에서, 비디오 디코더 (30) 는 코딩된 비디오 비트스트림을 추출하기 위하여 파일을 파싱하는 파일 파싱 유닛 (270) 으로부터 인코딩된 비디오 비트스트림을 수신할 수도 있다. 일부 예들에서, 파일 파싱 유닛 (270) 은 네트워크 엔티티 (272) 로부터 파일을 수신할 수도 있다. 네트워크 엔티티 (272) 는 예를 들어, 서버, MANE, 비디오 편집기/스플라이서, 또는 위에서 설명된 기법들 중의 하나 이상을 구현하도록 구성된 이러한 다른 디바이스일 수도 있다. 네트워크 엔티티 (272) 는 비디오 인코더 (20) 와 같은 비디오 인코더를 포함할 수도 있거나 포함하지 않을 수도 있다. 이 개시물에서 설명된 기법들의 일부는 네트워크 엔티티 (272) 가 인코딩된 비디오 비트스트림을 비디오 디코더 (30) 로 송신하기 이전에, 네트워크 엔티티 (272) 에 의해 구현될 수도 있다. 일부 비디오 디코딩 시스템들에서, 네트워크 엔티티 (272) 및 비디오 디코더 (30) 는 별도의 디바이스들의 일부들일 수도 있는 반면, 다른 사례들에서는, 네트워크 엔티티 (272) 에 대하여 설명된 기능성이 비디오 디코더 (30) 를 포함하는 동일한 디바이스에 의해 수행될 수도 있다. 네트워크 엔티티 (272) 는 비디오 디바이스인 것으로 고려될 수도 있다. 또한, 일부 예들에서, 네트워크 엔티티 (272) 는 도 1 의 파일 생성 디바이스 (34) 이다. 파일 파싱 유닛 (270) 은 목적지 디바이스 (14) 또는 목적지 디바이스로부터 분리된 디바이스의 일부로서 구현될 수도 있다. 일부 예들에서, 네트워크 엔티티 (272) 및 파일 파싱 유닛 (270) 은 동일한 디바이스에 의해 구현된다.
도 7 의 예에서, 파일 파싱 유닛 (270) 은 파일에서의 NAL 유닛 맵 엔트리 박스를 획득할 수도 있다. 이 예에서, NAL 유닛 맵 엔트리 박스는 비트스트림의 NAL 유닛들을 타일 세트와 연관시킨다. 비트스트림은 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함한다. 이 예에서, 비디오 데이터의 픽처들은 현재의 픽처를 포함하고, 현재의 픽처는 복수의 타일들로 파티셔닝되고, 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역이다. 또한, 이 예에서, 타일 세트는 현재의 픽처가 파티셔닝되는 복수의 타일들 중의 2 개 이상의 타일들을 포함한다. 일부 사례들에서, 타일 세트에서의 타일들에 의해 커버된 현재의 픽처의 영역은 형상에 있어서 직사각형이 아닐 수도 있다. 이 예에서, 파일 파싱 유닛 (270) 은 파일에서의 타일 세트 그룹 엔트리 (예컨대, TileSetGroupEntry, TileRegionGroupEntry) 를 획득할 수도 있다. 타일 세트 그룹 엔트리는 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함한다. 추가적으로, 타일 세트 그룹 엔트리는 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 포함한다. 수평 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정한다. 수직 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수직 오프셋을 특정한다. 폭 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 폭을 특정한다. 높이 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 높이를 특정한다. 또한, 이 예에서, 파일 파싱 유닛 (270) 은 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트에 기초하여 타일 세트를 프로세싱할 수도 있다. 예를 들어, 파일 파싱 유닛 (270) 은 타일 세트 그룹 엔트리에 대응하는 타일 세트가 희망된 타일 세트인지 여부를 결정하기 위하여 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 이용할 수도 있다. 또한, 이 예에서, 타일 세트 그룹 엔트리에 대응하는 타일 세트가 희망된 타일 세트일 경우, 파일 파싱 유닛 (270) 은 희망된 타일 세트와 연관되는 비트스트림의 NAL 유닛들을 식별하기 위하여 NAL 유닛 맵 엔트리 박스를 이용할 수도 있다. 파일 파싱 유닛 (270) 은 식별된 NAL 유닛들을 디코딩을 위한 비디오 디코더 (30) 로 포워딩할 수도 있다. 희망된 타일 세트는 파일 파싱 유닛 (270) 외부의 소스에 의해 특정될 수도 있고, 파일 파싱 유닛 (270) 은 비디오 데이터를 디코딩하는 디바이스 (예컨대, 목적지 디바이스 (14)) 로부터의 데이터에 기초하여 희망된 타일 세트를 결정할 수도 있고, 파일 파싱 유닛 (270) 은 대역폭과 같은 다른 인자들에 기초하여 희망된 타일 세트를 결정할 수도 있고, 및/또는 파일 파싱 유닛 (270) 은 다른 방법들로 희망된 타일 세트를 결정할 수도 있다.
비디오 디코더 (30) 의 엔트로피 디코딩 유닛 (250) 은 양자화된 계수들, 모션 벡터들, 및 다른 신택스 엘리먼트들을 생성하기 위하여 비트스트림의 특정한 신택스 엘리먼트들을 엔트로피 디코딩한다. 엔트로피 디코딩 유닛 (250) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 예측 프로세싱 유닛 (252) 으로 포워딩한다. 비디오 디코더 (30) 는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 신택스 엘리먼트들을 수신할 수도 있다.
비디오 슬라이스가 인트라-코딩된 (I) 슬라이스로서 코딩될 때, 예측 프로세싱 유닛 (252) 의 인트라 예측 프로세싱 유닛 (266) 은 시그널링된 인트라 예측 모드와, 현재의 프레임 또는 픽처의 이전에 디코딩된 블록들로부터의 데이터에 기초하여, 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 데이터를 생성할 수도 있다. 비디오 프레임이 인터-코딩된 (즉, B 또는 P) 슬라이스로서 코딩될 때, 예측 프로세싱 유닛 (252) 의 모션 보상 유닛 (264) 은 모션 벡터들과, 엔트로피 디코딩 유닛 (250) 으로부터 수신된 다른 신택스 엘리먼트들에 기초하여, 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 블록들을 생성한다. 예측 블록들은 참조 픽처 리스트들 중의 하나 내의 참조 픽처들 중의 하나로부터 생성될 수도 있다. 비디오 디코더 (30) 는 참조 픽처 메모리 (262) 내에 저장된 참조 픽처들에 기초하여, 디폴트 구성 (default construction) 기법들을 이용하여 참조 프레임 리스트들, List 0 및 List 1 을 구성할 수도 있다.
모션 보상 유닛 (264) 은 모션 벡터들을 결정하고 다른 신택스 엘리먼트들을 획득함으로써, 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 디코딩되고 있는 현재의 비디오 블록에 대한 예측 블록들을 생성하기 위하여 예측 정보를 이용한다. 예를 들어, 모션 보상 유닛 (264) 은 비디오 슬라이스의 비디오 블록들을 코딩하기 위해 이용된 예측 모드 (예컨대, 인트라- 또는 인터-예측), 인터 예측의 경우에 인터-예측 슬라이스 타입 (예컨대, B 슬라이스 또는 P 슬라이스), 슬라이스에 대한 참조 픽처 리스트들 중의 하나 이상에 대한 구성 정보, 슬라이스의 각각의 인터-인코딩된 비디오 블록에 대한 모션 벡터들, 슬라이스의 각각의 인터-코딩된 비디오 블록에 대한 인터-예측 스테이터스 (inter-prediction status), 및/또는 현재의 비디오 슬라이스에서의 비디오 블록들을 디코딩하기 위한 다른 정보를 결정하기 위하여, 수신된 신택스 엘리먼트들의 일부를 이용한다.
모션 보상 유닛 (264) 은 또한, 보간 필터들에 기초하여 보간을 수행할 수도 있다. 모션 보상 유닛 (264) 은 참조 블록들의 정수-미만 픽셀들에 대한 보간된 값들을 계산하기 위하여, 비디오 블록들의 인코딩 동안에 비디오 인코더 (20) 에 의해 이용된 바와 같은 보간 필터들을 이용할 수도 있다. 이 경우, 모션 보상 유닛 (264) 은 수신된 신택스 엘리먼트들로부터 비디오 인코더 (20) 에 의해 이용된 보간 필터들을 결정할 수도 있고, 예측 블록들을 생성하기 위하여 보간 필터들을 이용할 수도 있다.
역양자화 유닛 (254) 은, 비트스트림에서 제공되며 엔트로피 디코딩 유닛 (250) 에 의해 디코딩된 양자화된 변환 계수들을 역양자화, 즉, 탈양자화(de-quantize) 한다. 역양자화 프로세스는 적용되어야 할 양자화도 및, 마찬가지로, 역양자화도를 결정하기 위하여, 비디오 슬라이스에서의 각각의 비디오 블록에 대하여 비디오 인코더 (20) 에 의해 계산된 양자화 파라미터의 이용을 포함할 수도 있다. 역변환 프로세싱 유닛 (256) 은 픽셀 도메인에서 잔차 블록들을 생성하기 위하여, 역변환, 예컨대, 역 DCT, 역정수 변환 (inverse integer transform), 또는 개념적으로 유사한 역변환 프로세스를 변환 계수들에 적용한다.
모션 보상 유닛 (264) 이 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재의 비디오 블록에 대한 예측 블록을 생성한 후, 비디오 디코더 (30) 는 역변환 프로세싱 유닛 (256) 으로부터의 잔차 블록들을 모션 보상 유닛 (264) 에 의해 생성된 대응하는 예측 블록들과 합산함으로써 디코딩된 비디오 블록을 형성한다. 합산기 (258) 는 이 합산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 표현한다. 희망하는 경우, (코딩 루프 내 또는 코딩 루프 이후 중의 어느 하나에서의) 루프 필터들은 또한, 픽셀 전이 (pixel transition) 들을 평활화하거나, 또는 이와 다르게 비디오 품질을 개선시키기 위하여 이용될 수도 있다. 필터 유닛 (260) 은 디블록킹 필터, 적응적 루프 필터 (ALF), 및/또는 샘플 적응적 오프셋 (SAO) 필터와 같은 하나 이상의 루프 필터들을 표현하도록 의도된 것이다. 필터 유닛 (260) 은 인-루프 필터인 것으로서 도 7 에서 도시되어 있지만, 다른 구성들에서는, 필터 유닛 (260) 이 포스트 루프 필터 (post loop filter) 로서 구현될 수도 있다. 그 다음으로, 소정의 프레임 또는 픽처에서의 디코딩된 비디오 블록들은, 후속 모션 보상을 위하여 이용된 참조 픽처들을 저장하는 참조 픽처 메모리 (262) 내에 저장된다. 참조 픽처 메모리 (262) 는 또한, 도 1 의 디스플레이 디바이스 (32) 와 같은 디스플레이 디바이스 상에서의 더 이후의 제시를 위한 디코딩된 비디오 데이터를 저장한다. 이에 따라, 참조 픽처 메모리 (262) 는 비디오 데이터를 저장하도록 구성된 하나 이상의 데이터 저장 매체들의 예일 수도 있다.
이 개시물에서의 어딘가에서 설명된 이 개시물의 기법들의 일 예의 세부사항들의 논의는 이 섹션에서 제공된다. 위에서 언급된 바와 같이, "<insert>" 및 "</insert> 기호들 사이의 텍스트는 추가들 또는 수정된 현존하는 텍스트들 (예컨대, <insert>추가된 텍스트</insert>) 에 대응하는 반면, 제거된 텍스트는 "<delete>" 및 "</delete> 기호들 사이에 있다 (예컨대, <delete>삭제된 텍스트</delete>).
위에서 표시된 바와 같이, 이 개시물의 예에 따르면, 타일 영역 개념을 타일 세트 개념으로 병합하는 것이 제안된다. 다음의 텍스트는 이 예의 구현 세부사항들을 설명한다. 특히, TileRegionGroupEntry 박스와 병합한 후의 TileSetGroupEntry 박스의 신택스 및 시맨틱들은 다음과 같이 정의될 수도 있다:
클래스 TileSetGroupEntry() 는 VisualSampleGroupEntry ('tsif') 를 확장시킨다{
무부호 int(16) groupID;
<insert>무부호 int(6) layerID;
int (2) 예약됨;
무부호 int(1) rectangular_flag;
무부호 int(2) independent_idc;
무부호 int(1) filtering_disabled;
int (3) 예약됨;
무부호 int(16) horizontal_offset;
무부호 int(16) vertical_offset;
무부호 int(16) region_width;
무부호 int(16) region_height;</insert>
<delete>int(2) dependency_list;
int (5) 예약됨;
if ((dependency_list==1) || (dependency_list==3)) {
무부호 int(16) dependency_tile_count;
for (i=1; i<= dependency_tile_count; i++){
무부호 int(16) dependencyTileGroupID;
}
if (dependency_list==3) {
무부호 int(16) irap_dependency_tile_count;
for (i=1; i<= irap_dependency_tile_count; i++){
무부호 int(16) irap_dependencyTileGroupID;
}
} else if (dependency_list==2) {
무부호 int(16) topLeftDependencyTileGroupId;
무부호 int(16) bottomRightDependencyTileGroupId;
}</delete>
}
groupID 는 타일 세트에 대한 식별자이다. 값 0 은 'nalm' 박스에서의 특수한 이용을 위하여 예약된다.
<insert>layerID 는 타일 세트 유닛이 속하는 계층의 식별자이다.
rectangular_flag 는 타일 세트에서의 타일들에 의해 커버된 에어리어가 직사각형 형상인지 여부를 표시한다.
independent_idc 는 동일한 계층의 현재의 픽처에서 그리고 참조 픽처들에서의 이 타일 세트와 다른 타일 세트들 사이의 코딩 종속성들을 특정한다. 인터-계층 종속성들은, 만약 존재한다면, 'linf' 및/또는 'oinf' 샘플 그룹에 의해 표시된다. groupID gidA 및 layerID lidA 를 갖는 타일 세트는, gidA 가 gidB 와 동일하고 lidB 가 'linf' 및/또는 'oinf' 샘플 그룹에 의해 표시된 바와 같은 lidA 의 참조 계층일 경우에, groupID gidB 및 layerID lidB 를 갖는 또 다른 타일 세트에 대한 인터-계층 종속성을 가진다.
independent_idc 의 값은 다음과 같다:
- independent_idc 가 0 과 동일할 경우, 동일한 픽처 또는 이전의 픽처들에서의 이 타일 세트와 다른 타일들 사이의 코딩 종속성들은 알려져 있지 않다.
- independent_idc 가 1 과 동일할 경우, 임의의 참조 픽처들에서의 상이한 groupID 를 갖는 이 타일 세트와 다른 타일 세트들 사이의 시간적 종속성이 없지만, 동일한 타일 세트 내에서의 상이한 픽처들로부터의 타일들 사이의 시간적 코딩 종속성이 있을 수 있다.
- independent_idc 가 2 와 동일할 경우, 참조 픽처들에서의 이 타일 세트에서의 타일들과 임의의 다른 타일들 사이의 시간적 종속성이 없다.
- 값 3 은 예약된다.</insert>
filtering_disabled 는, 설정될 때, 이 타일 영역에 대한 포스트-디코딩 필터링 동작이 이 타일 영역에 인접한 픽셀들에 대한 액세스를 요구하지 않고, 즉, 타일 영역의 비트-정확한 복원이 인접한 타일들을 디코딩하지 않으면서 가능하다는 것을 표시한다.
<insert>horizontal_offset 는 (전체의 픽처인) 기본 영역의 루마 샘플들에서, 픽처의 상단-좌측 픽셀에 대한, 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정한다.
vertical_offset 는 기본 영역의 루마 샘플들에서, 픽처의 상단-좌측 픽셀에 대한, 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수직 오프셋을 특정한다.
region_width 는 기본 영역의 루마 샘플들에서, 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 폭을 특정한다.
region_height 는 기본 영역의 루마 샘플들에서, 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 높이를 특정한다.</insert>
이에 따라, 위의 예의 텍스트에서, 타일 세트는 계층-특정 범위를 가진다. 또한, 타일 세트 그룹 엔트리 (예컨대, TileSetGroupEntry) 를 생성하는 것의 일부로서, 파일 생성 디바이스 (34) 는 타일 세트 그룹 엔트리 내에, 타일 세트가 속하는 계층 내에서의 종속성을 설명하는 종속성 정보 (예컨대, independent_idc) 를 포함할 수도 있다. 예를 들어, 파일 생성 디바이스 (34) 는 타일 세트 그룹 엔트리 내에, 타일 세트가 속하는 계층의 현재의 픽처에서 그리고 참조 픽처들에서의 타일 세트와 다른 타일 세트들 사이의 코딩 종속성들을 특정하는 특정한 신택스 엘리먼트 (예컨대, independent_idc) 를 포함할 수도 있다. 이 예에서, 파일 생성 디바이스 (34) 는 파일에서의 계층 정보 샘플 그룹 (예컨대, 'linf' 샘플 그룹) 또는 파일에서의 동작 포인트 정보 샘플 그룹 (예컨대, 'oinf' 샘플 그룹) 에서, 인터-계층 종속성들을 표시할 수도 있다. 일부 예들에서, 특정한 신택스 엘리먼트는 플래그 (예컨대, independent_flag) 이다. 이러한 예들에서, 플래그는 정확하게 2 개의 상태들을 가지고, 플래그의 제 1 상태는 시간적 종속성 없음을 표시하고, 플래그의 제 2 상태는 시간적 종속성이 있을 수도 있거나 없을 수도 있다는 것을 표시한다. 유사하게, 일부 예들에서, 파일 파싱 유닛 (31) 은 타일 세트 그룹 엔트리 내로부터, 타일 세트가 속하는 계층의 현재의 픽처에서 그리고 참조 픽처들에서의 타일 세트와 다른 타일 세트들 사이의 코딩 종속성들을 특정하는 특정한 신택스 엘리먼트를 획득할 수도 있다. 추가적으로, 이 예에서, 파일 파싱 유닛 (31) 은 파일에서의 계층 정보 샘플 그룹 또는 파일에서의 동작 포인트 정보 샘플 그룹에 기초하여, 인터-계층 종속성들을 결정할 수도 있다. 이 예에서, 파일 파싱 유닛 (31) 은 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 높이 신택스 엘리먼트, 및 인터-계층 종속성들에 기초하여 타일 세트를 프로세싱함으로써 타일 세트를 프로세싱할 수도 있다.
타일 세트에서의 타일들에 의해 커버된 영역이 직사각형 형상이 아닐 때, 최소 직사각형 에어리어는 도 4 의 예에서 도시된 바와 같이, horizontal_offset, vertical_offset, region_width, 및 region_height 에 의해 설명된다. 또한, 상이한 계층들에서의 공동위치된 영역들을 커버하는 타일 세트들이 동일한 타일 세트 ID 를 가진다는 것과, 계층 종속성이 'oinf' 및 'linf' 샘플 그룹들에서 시그널링될 수도 있다는 것을 표시하는 위의 예들과 부합하여, 위의 텍스트에서 기재된 바와 같은 independent_idc 신택스 엘리먼트들의 시맨틱들은 다음을 포함한다:
인터-계층 종속성들은, 만약 존재한다면, 'linf' 및/또는 'oinf' 샘플 그룹에 의해 표시된다. groupID gidA 및 layerID lidA 를 갖는 타일 세트는, gidA 가 gidB 와 동일하고 lidB 가 'linf' 및/또는 'oinf' 샘플 그룹에 의해 표시된 바와 같은 lidA 의 참조 계층일 경우에, groupID gidB 및 layerID lidB 를 갖는 또 다른 타일 세트에 대한 인터-계층 종속성을 가진다.
일부 예들에서, 위에서의 제안된 수정 후에, independent_idc 신택스 엘리먼트들의 오직 2 개의 값들은 의미 있는 용도를 가지고; 그것들은 1 또는 2 중의 어느 하나와 동일한 값을 가지는 independent_idc 신택스 엘리먼트이다. 다시 말해서, 0 과 동일한 값을 가지는 independent_idc 신택스 엘리먼트의 값은 임의의 의미 있는 용도를 가지지 않는다. 따라서, independent_idc 신택스 엘리먼트는 표시자 (indicator) 가 아니라, 플래그로서 단순화될 수 있다. 이에 따라, independent_idc 신택스 엘리먼트는 2 비트들과는 대조적으로, 1 비트로 구성될 수도 있다. 플래그의 2 개의 상태들은 "시간적 종속성 없음" 및 "시간적 종속성을 가질 수도 있거나 가지지 않을 수도 있음" 으로서 특정될 수 있다. 파일 구성기 (file composer) (예컨대, 파일 생성 디바이스 (34)) 는 후자를 옵션으로서 항상 이용할 수 있을 수도 있음으로써, 위에서의 시맨틱들에서 정의된 바와 같은 값 0 을 가지는 independent_idc 신택스 엘리먼트에 의해 달성되는 것을 달성할 수도 있다.
또 다른 예에서, TileRegionGroupEntry 박스와 병합한 후의 TileSetGroupEntry 박스의 신택스 및 시맨틱들은 다음과 같이 정의될 수도 있다:
클래스 TileSetGroupEntry() 는 VisualSampleGroupEntry ('tsif') 를 확장시킨다 {
무부호 int(16) groupID;
<insert>무부호 int(6) layerID;
int (2) 예약됨;
int(2) dependency_list;
무부호 int(1) rectangular_flag;
무부호 int(2) independent_idc;
무부호 int(1) filtering_disabled;
int (1) 예약됨;
if (rectangular_flag == 1) {
무부호 int(16) horizontal_offset;
무부호 int(16) vertical_offset;
무부호 int(16) region_width;
무부호 int(16) region_height;
}</insert>
<delete>int(2) dependency_list;
int (5) 예약됨;
if ((dependency_list==1) || (dependency_list==3)) {
무부호 int(16) dependency_tile_count;
for (i=1; i<= dependency_tile_count; i++){
무부호 int(16) dependencyTileGroupID;
}
if (dependency_list==3) {
무부호 int(16) irap_dependency_tile_count;
for (i=1; i<= irap_dependency_tile_count; i++){
무부호 int(16) irap_dependencyTileGroupID;
}
} else if (dependency_list==2) {
무부호 int(16) topLeftDependencyTileGroupId;
무부호 int(16) bottomRightDependencyTileGroupId;
}</delete>
}
위에서 도시된 TileSetGroupEntry 박스의 2 개의 예의 수정된 신택스들은, TileSetGroupEntry 박스의 제 2 수정된 신택스가 "rectangular_flag" 신택스 엘리먼트를 포함하고, "rectangular_flag" 신택스 엘리먼트가 1 과 동일할 경우에만, "horizontal_offset", "vertical_offset", "region_width", 및 "region_height" 신택스 엘리먼트들을 포함한다는 점에서 상이하다. "rectangular_flag" 신택스 엘리먼트는 TileSetGroupEntry 박스에 대응하는 타일 세트가 직사각형인지 여부를 표시한다. 이것은 수평 오프셋, 수직 오프셋, 폭 및 높이의 정보가 타일 세트에서의 타일들에 의해 커버된 영역이 직사각형 형상일 경우에만 시그널링되는 것에 관한 위의 예와 부합한다.
위에서 논의된 바와 같이, 이 개시물의 특정한 예들은 TileRegionGroupEntry 대신에, NALUMapEntry로의 서브-샘플들에서의 타일들에 대한 맵핑 메커니즘을 추가한다. 다음의 텍스트는 이러한 예들에 따라 추가적인 예의 세부사항들을 제공한다.
클래스 NALUMapEntry() 는 VisualSampleGroupEntry ('nalm') 를 확장시킨다 {
무부호 int(6) 예약됨 = 0;
무부호 int(1) large_size;
<insert>무부호 int(1) nalu_flag;</insert>
<delete>무부호 int(1) rle;</delete>
if (large_size) {
무부호 int(16) entry_count;
} else {
무부호 int(8) entry_count;
}
<delete>for (i=1; i<= entry_count; i++) {</delete>
<insert>for (i=0; i < entry_count; i++) {</insert>
<delete>if (rle) {
if (large_size) {
무부호 int(16) NALU_start_number;
} else {
무부호 int(8) NALU_start_number;
}
}</delete>
<insert>for (j=0; j < subsample_count; j++) {</insert>
무부호 int(16) groupID;
<insert>}</insert>
}
}
large_size 는 트랙 샘플들에서의 NAL 유닛들 엔트리들의 수가 8 또는 16 비트들에 대해 표현되는지 여부를 표시한다.
<insert>nalu_flag 는 각각의 NAL 유닛이 최대한으로 하나의 타일 세트로 맵핑되는지 여부를 표시한다. nalu_flag 가 1 과 동일할 때, subsample_count 의 값은 1 로 설정되고, 그렇지 않을 경우, subsample_count 의 값은 2 와 동일한 플래그들을 갖는 SubSampleInformationBox 에서의 대응하는 subsample_count 값과 동일하게 설정된다 (타일-기반 서브-샘플들).</insert>
<delete>rle 는 런-길이 인코딩이 groupID 를 NAL 유닛들에 배정하기 위하여 이용되는지 (1) 또는 아닌지 (0) 여부를 표시한다.</delete>
entry_count 는 맵에서의 엔트리들의 수를 특정한다. <delete>rle 가 1 과 동일할 때, entry_count 는 연속 NAL 유닛들이 동일한 그룹과 연관되는 런들의 수에 대응한다는 것에 주목한다. rle 가 0 과 동일할 때, entry_count 는 NAL 유닛들의 총 수를 표현한다.
NALU_start_number 는 groupID 와 연관된 현재의 런에서의 최초 NALU 의 샘플에서의 1-기반 NALU 인덱스이다.</delete>
groupID 는 샘플 그룹 설명들에서 표시된 바와 같이, 대응하는 <delete>스케일러블, 멀티뷰,</delete> 타일 세트 <delete>그룹</delete> 엔트리를 표시한다. 0 일 경우, 그룹이 그 식별된 NALU 들에 연관된다.
또한, 위에서 언급된 바와 같이, 이 개시물의 일부 예들에서는, NALUMapEntry 박스에서의 런 길이 인코딩 메커니즘이 제거된다. NALUMapEntry 박스로부터의 런 길이 인코딩 메커니즘의 제거는 위에서 도시된 보정된 NALUMapEntry 박스에서의 다음에 대응한다:
<delete>rle 는 런-길이 인코딩이 groupID 를 NAL 유닛들에 배정하기 위하여 이용되는지 (1) 또는 아닌지 (0) 여부를 표시한다.</delete>
entry_count 는 맵에서의 엔트리들의 수를 특정한다. <delete>rle 가 1 과 동일할 때, entry_count 는 연속 NAL 유닛들이 동일한 그룹과 연관되는 런들의 수에 대응한다는 것에 주목한다. rle 가 0 과 동일할 때, entry_count 는 NAL 유닛들의 총 수를 표현한다.
NALU_start_number 는 groupID 와 연관된 현재의 런에서의 최초 NALU 의 샘플에서의 1-기반 NALU 인덱스이다.</delete>
...
<delete>for (i=1; i < entry_count; i++) {</delete>
...
<delete>if (rle) {
if (large_size) {
무부호 int(16) NALU_start_number;
} else {
무부호 int(8) NALU_start_number;
}
}</delete>
NALUMapEntry 의 다음의 신택스 및 시맨틱들은 이 개시물에서의 어딘가에서 설명된 다양한 예들을 구현하기 위한 ISO/IEC 14496-15 에 대한 변경들의 예를 도시한다.
클래스 NALUMapEntry() 는 VisualSampleGroupEntry ('nalm') 를 확장시킨다 {
무부호 int(6) 예약됨 = 0;
무부호 int(1) large_size;
<insert>무부호 int(1) nalu_flag;</insert>
<delete>무부호 int(1) rle;</delete>
if (large_size) {
무부호 int(16) entry_count;
} else {
무부호 int(8) entry_count;
}
<insert>if (nalu_flag = 1) {</insert>
<delete>for (i=1; i < entry_count; i++) {</delete>
<insert>for (i=0; i < entry_count; i++) {</insert>
<delete>if (rle) {
if (large_size) {
무부호 int(16) NALU_start_number;
} else {
무부호 int(8) NALU_start_number;
}
}</delete>
무부호 int(16) groupID;
}
<insert>}
else {
for (i=0; i < entry_count; i++) {
무부호 int(16) subsample_count;
for (j = 0; j < subsample_count; j++) {
무부호 int(16) groupID;
if (groupID > 1) {
무부호 int(16) subsample_idx;
}
}
}
}</insert>
}
large_size 는 트랙 샘플들에서의 NAL 유닛들 엔트리들의 수가 8 또는 16 비트들에 대해 표현되는지 여부를 표시한다.
<insert>nalu_flag 는 각각의 NAL 유닛이 최대한으로 하나의 타일 영역 또는 타일 세트로 맵핑되는지 여부를 표시한다. nalu_flag 가 1 과 동일할 때, 각각의 NAL 유닛은 최대한으로 하나의 타일 영역 또는 타일 세트로 맵핑된다. nalu_flag 가 0 과 동일할 때, 각각의 NAL 유닛은 하나를 초과하는 타일 영역 또는 타일 세트로 맵핑될 수도 있다.</insert>
<delete>rle 는 런-길이 인코딩이 groupID 를 NAL 유닛들에 배정하기 위하여 이용되는지 (1) 또는 아닌지 (0) 여부를 표시한다.</delete>
entry_count 는 맵에서의 엔트리들의 수를 특정한다. <delete>rle 가 1 과 동일할 때, entry_count 는 연속 NAL 유닛들이 동일한 그룹과 연관되는 런들의 수에 대응한다는 것에 주목한다. rle 가 0 과 동일할 때, entry_count 는 NAL 유닛들의 총 수를 표현한다.
NALU_start_number 는 groupID 와 연관된 현재의 런에서의 최초 NALU 의 샘플에서의 1-기반 NALU 인덱스이다.</delete>
<insert>subsample_count 는 NAL 유닛에서 존재하는 서브-샘플들의 수를 특정한다.</insert>
1 보다 더 큰 groupID 는 샘플 그룹 설명들에서 표시된 바와 같이, 대응하는 <delete>스케일러블, 멀티뷰,</delete> 타일 세트 그룹 엔트리를 표시한다. 0 일 경우, <insert>NAL 유닛 또는 서브-샘플은 임의의 그룹과 연관되지 않고</insert> <delete>어떤 그룹도 이 식별된 NALU 들에 연관되지 않고</delete><insert>; 그렇지 않고 1 일 경우, NAL 유닛은 비-VCL NAL 유닛이고, 1 보다 더 큰 groupID 를 갖는 임의의 그룹을 프로세싱하기 위하여 필요할 수도 있다.
subsample_idx 는 SubSampleInformationBox 에서 표시된 바와 같이, 맵핑된 샘플에서의 서브-샘플들에 대한 0-기반 인덱스를 특정한다.</insert>
위에서 언급된 바와 같이, 이 개시물의 일부 예들에서, 루프는 NAL 유닛에서의 각각의 서브-샘플에 대한 groupID 신택스 엘리먼트를 시그널링하기 위하여 NALUMapEntry 박스에 추가될 수도 있다. 이 루프는 위에서 도시된 보정된 NALUMapEntry 박스에서의 다음에 대응한다:
for (j = 0; j < subsample_count; j++) {
무부호 int(16) groupID;
if (groupID > 1) {
무부호 int(16) subsample_idx;
}
}
또한, 위에서 언급된 바와 같이, 이 개시물의 일부 예들에서, 특수한 groupID 값은 모든 타일 영역들 또는 타일 세트들과 연관되는 NAL 유닛들을 표시한다. 즉, nalu_flag 가 1 과 동일할 때, NALUMapEntry 박스는 일련의 groupID 신택스 엘리먼트들을 포함할 수도 있다. 일련의 groupID 신택스 엘리먼트들의 각각의 개개의 groupID 신택스 엘리먼트는 개개의 NAL 유닛에 대응하고, 대응하는 NAL 유닛의 그룹 식별자를 표시한다. 위에서 일 예의 텍스트에서, 1 과 동일한 groupID 신택스 엘리먼트는, 대응하는 NAL 유닛이 비-VCL NAL 유닛이고, 1 보다 더 큰 groupID 를 갖는 임의의 그룹을 프로세싱하기 위하여 필요할 수도 있고, 그러므로, 모든 타일 세트들과 연관된다는 것을 표시한다. 이 특수한 groupID 의 이용은 groupID 값들을 비-VCL NAL 유닛들에 어떻게 배정할 것인지에 관한 ISO/IEC 14496-15 에서의 문제를 해결할 수도 있다. 위에서의 텍스트에서, groupID 신택스 엘리먼트의 시맨틱들은 1 의 groupID 를 배정받은 NAL 유닛들이 비-VCL NAL 유닛들인 것을 특정하도록 보정된다. 다른 예들에서, 1 이외의 값들은 비-VCL NAL 유닛들을 표시하기 위하여 이용될 수도 있다.
도 8 은 이 개시물의 하나 이상의 기법들에 따라, 파일 (300) 의 일 예의 구조를 예시하는 개념적인 도면이다. 도 8 의 예에서, 파일 (300) 은 영화 박스 (302) 및 복수의 미디어 데이터 박스들 (304) 을 포함한다. 동일한 파일 내에 있는 것으로서 도 8 의 예에서 예시되지만, 다른 예들에서는, 영화 박스 (302) 및 미디어 데이터 박스들 (304) 이 별도의 파일들 내에 있을 수도 있다. 위에서 표시된 바와 같이, 박스는 고유한 타입 식별자 및 길이에 의해 정의된 객체-지향된 구축 블록일 수도 있다. 예를 들어, 박스는 4-문자 코딩된 박스 타입, 박스의 바이트 카운트, 및 페이로드를 포함하는, ISOBMFF 에서의 기초적인 신택스 구조일 수도 있다.
영화 박스 (302) 는 파일 (300) 의 트랙들에 대한 메타데이터를 포함할 수도 있다. 파일 (300) 의 각각의 트랙은 미디어 데이터의 연속적인 스트림을 포함할 수도 있다. 미디어 데이터 박스들 (304) 의 각각은 하나 이상의 샘플들 (305) 을 포함할 수도 있다. 샘플들 (305) 의 각각은 오디오 또는 비디오 액세스 유닛을 포함할 수도 있다. 이 개시물에서의 어딘가에서 설명된 바와 같이, 각각의 액세스 유닛은 멀티-뷰 코딩 (예컨대, MV-HEVC 및 3D-HEVC) 및 스케일러블 비디오 코딩 (예컨대, SHVC) 에서의 다수의 코딩된 픽처들을 포함할 수도 있다. 예를 들어, 액세스 유닛은 각각의 계층에 대한 하나 이상의 코딩된 픽처들을 포함할 수도 있다.
또한, 도 8 의 예에서, 영화 박스 (302) 는 트랙 박스 (306) 를 포함한다. 트랙 박스 (306) 는 파일 (300) 의 트랙에 대한 메타데이터를 동봉할 수도 있다. 다른 예들에서, 영화 박스 (302) 는 파일 (300) 의 상이한 트랙들에 대한 다수의 트랙 박스들을 포함할 수도 있다. 트랙 박스 (306) 는 미디어 박스 (307) 를 포함한다. 미디어 박스 (307) 는 트랙 내에서의 미디어 데이터에 대한 정보를 선언하는 모든 객체들을 포함할 수도 있다. 미디어 박스 (307) 는 미디어 정보 박스 (308) 를 포함한다. 미디어 정보 박스 (308) 는 트랙의 미디어의 특성 정보를 선언하는 모든 객체들을 포함할 수도 있다. 미디어 정보 박스 (308) 는 샘플 테이블 박스 (309) 를 포함한다. 샘플 테이블 박스 (309) 는 샘플-특정 메타데이터를 특정할 수도 있다.
도 8 의 예에서, 샘플 테이블 박스 (309) 는 적어도 하나의 SampleToGroup 박스 (310), SampleGroupDescription 박스 (312), 및 SampleGroupDescription 박스 (314) 를 포함한다. 다른 예들에서, 샘플 테이블 박스 (309) 는 SampleToGroup 박스 (310), SampleGroupDescription 박스 (312), 및 SampleGroupDescription 박스 (314) 에 추가하여 다른 박스들을 포함할 수도 있고, 및/또는 다수의 SampleToGroup 박스들 및 SampleGroupDescription 박스들을 포함할 수도 있다. SampleToGroup 박스 (310) 는 샘플들 (예컨대, 샘플들 (305) 의 특정한 것들) 을 샘플들의 그룹으로 맵핑할 수도 있다. SampleGroupDescription 박스 (312) 및 SampleGroupDescription 박스 (314) 는 샘플들의 그룹 (즉, 샘플 그룹) 에서의 샘플들에 의해 공유된 성질을 특정할 수도 있다.
또한, 도 8 의 예에서, SampleToGroup 박스 (310) 는 grouping_type 신택스 엘리먼트 (319) (즉, 그룹화 타입 신택스 엘리먼트), entry_count 신택스 엘리먼트 (315) (즉, 엔트리 카운트 신택스 엘리먼트), 및 하나 이상의 샘플 그룹 엔트리들 (316) 을 포함한다. Entry_count 신택스 엘리먼트 (315) 는 샘플 그룹 엔트리들 (316) 의 수를 표시한다. 샘플 그룹 엔트리들 (316) 의 각각은 sample_count 신택스 엘리먼트 (317) (즉, 샘플 카운트 신택스 엘리먼트) 및 group_description_index 신택스 엘리먼트 (318) (즉, 그룹 설명 인덱스 신택스 엘리먼트) 를 포함한다. Sample_count 신택스 엘리먼트 (317) 는 sample_count 신택스 엘리먼트 (317) 를 포함하는 샘플 그룹 엔트리와 연관된 샘플들의 수를 표시할 수도 있다. Group_description_index 신택스 엘리먼트 (318) 는 SampleGroupDescription 박스 (예컨대, SampleGroupDescription 박스 (312), SampleGroupDescription 박스 (314)) 내에서, group_description_index 신택스 엘리먼트 (318) 를 포함하는 샘플 그룹 엔트리와 연관된 샘플들의 설명을 포함하는 그룹 설명 엔트리를 식별할 수도 있다.
추가적으로, 도 8 의 예에서, SampleGroupDescription 박스 (312) 는 grouping_type 신택스 엘리먼트 (320), entry_count 신택스 엘리먼트 (322), 및 하나 이상의 타일 세트 그룹 엔트리들 (324) 을 포함한다. 타일 세트 그룹 엔트리들 (324) 의 각각은 샘플 그룹 엔트리의 사례이다. SampleToGroup 박스의 그룹화 타입 신택스 엘리먼트 (예컨대, SampleToGroup 박스 (310) 의 grouping_type 신택스 엘리먼트 (319)) 가 grouping_type 신택스 엘리먼트 (320) 의 값과 정합하는 값을 특정할 경우, SampleToGroup 박스는 SampleGroupDescription 박스에 대응한다. Entry_count 신택스 엘리먼트 (322) 는 SampleGroupDescription 박스에서의 타일 세트 그룹 엔트리들 (324) 의 수를 표시한다. 이 개시물에서의 어딘가에서 상세하게 설명된 도 10 은 타일 세트 그룹 엔트리의 일 예의 컨텐츠를 예시한다.
또한, 도 8 의 예에서, SampleGroupDescription 박스 (314) 는 grouping_type 신택스 엘리먼트 (326), entry_count 신택스 엘리먼트 (328), 및 하나 이상의 NAL 유닛 맵 엔트리들 (330) 을 포함한다. NAL 유닛 맵 엔트리들 (330) 의 각각은 샘플 그룹 엔트리의 사례이다. Entry_count 신택스 엘리먼트 (328) 는 SampleGroupDescription 박스 (314) 에서의 NAL 유닛 맵 엔트리들 (330) 의 수를 표시한다. 일부 예들에서, 그룹 식별자 신택스 엘리먼트 (402) 는 NAL 유닛이 모든 타일 세트들 (예컨대, 계층의 모든 타일들 세트들) 과 연관된다는 것을 표시하는 값 (예컨대, 1) 을 가진다.
도 9 는 이 개시물의 하나 이상의 기법들에 따라, 파일 (350) 의 일 예의 구조를 예시하는 개념적인 도면이다. 도 9 의 예에서, 파일 (350) 은 하나 이상의 영화 프래그먼트 박스들 (352) 및 복수의 미디어 데이터 박스들 (354) 을 포함한다. 동일한 파일 내에 있는 것으로서 도 9 의 예에서 예시되지만, 다른 예들에서는, 영화 프래그먼트 박스들 (352) 및 미디어 데이터 박스들 (354) 이 별도의 파일들 내에 있을 수도 있다. 미디어 데이터 박스들 (354) 의 각각은 하나 이상의 샘플들 (356) 을 포함할 수도 있다. 샘플들 (356) 의 일부 또는 전부는 비디오 컨텐츠들의 개개의 픽처를 포함할 수도 있다. 영화 프래그먼트 박스들의 각각은 영화 프래그먼트에 대응한다. 각각의 영화 프래그먼트는 트랙 프래그먼트들의 세트를 포함할 수도 있다. 트랙 당 제로 이상의 트랙 프래그먼트들이 있을 수도 있다.
도 9 의 예에서, 영화 프래그먼트 박스 (352) 는 대응하는 영화 프래그먼트에 관한 정보를 제공한다. 영화 프래그먼트 박스 (352) 는 트랙 프래그먼트 박스 (358) 를 포함할 수도 있다. 트랙 프래그먼트 박스 (358) 는 트랙 프래그먼트에 대응하고 트랙 프래그먼트에 대한 정보를 제공한다.
예를 들어, 도 9 의 예에서, 트랙 프래그먼트 박스 (358) 는 SampleToGroup 박스 (362), SampleGroupDescription 박스 (364), 및 SampleGroupDescription 박스 (366) 를 포함할 수도 있다. SampleToGroup 박스 (362) 및 SampleGroupDescription 박스들 (364, 366) 은 트랙 프래그먼트 박스 (358) 에 대응하는 트랙 프래그먼트에 대한 정보를 포함한다. 트랙 프래그먼트 박스 (358) 는 SampleToGroup 박스 (362) 및 SampleGroupDescription 박스들 (364, 366) 에 추가하여, 하나 이상의 SampleToGroup 박스들 및 하나 이상의 SampleGroupDescription 박스들을 포함할 수도 있다. 또한, 도 9 의 예에서, SampleToGroup 박스 (362) 는 grouping_type 신택스 엘리먼트 (370) (즉, 그룹화 타입 신택스 엘리먼트), entry_count 신택스 엘리먼트 (371) (즉, 엔트리 카운트 신택스 엘리먼트), 및 하나 이상의 샘플 그룹 엔트리들 (372) 을 포함한다. Entry_count 신택스 엘리먼트 (371) 는 샘플 그룹 엔트리들 (372) 의 수를 표시한다. 샘플 그룹 엔트리들 (372) 의 각각은 sample_count 신택스 엘리먼트 (373) (즉, 샘플 카운트 신택스 엘리먼트) 및 group_description_index 신택스 엘리먼트 (374) (즉, 그룹 설명 인덱스 신택스 엘리먼트) 를 포함한다. Sample_count 신택스 엘리먼트 (373) 는 sample_count 신택스 엘리먼트 (373) 를 포함하는 샘플 그룹 엔트리와 연관된 샘플들의 수를 표시할 수도 있다. Group_description_index 신택스 엘리먼트 (374) 는 SampleGroupDescription 박스 (예컨대, SampleGroupDescription 박스 (364)) 내에서, group_description_index 신택스 엘리먼트 (374) 를 포함하는 샘플 그룹 엔트리와 연관된 샘플들의 설명을 포함하는 그룹 설명 엔트리를 식별할 수도 있다.
추가적으로, 도 9 의 예에서, SampleGroupDescription 박스 (364) 는 grouping_type 신택스 엘리먼트 (380), entry_count 신택스 엘리먼트 (382), 및 하나 이상의 타일 세트 그룹 엔트리들 (384) 을 포함한다. 타일 세트 그룹 엔트리들의 각각은 그룹 설명 엔트리의 사례이다. Entry_count 신택스 엘리먼트 (382) 는 SampleGroupDescription 박스 (364) 에서의 타일 세트 그룹 엔트리들 (384) 의 수를 표시한다.
또한, 도 9 의 예에서, SampleGroupDescription 박스 (366) 는 grouping_type 신택스 엘리먼트 (386), entry_count 신택스 엘리먼트 (388), 및 하나 이상의 NAL 유닛 맵 엔트리들 (390) 을 포함한다. NAL 유닛 맵 엔트리들 (390) 의 각각은 샘플 그룹 엔트리의 사례이다. Entry_count 신택스 엘리먼트 (388) 는 SampleGroupDescription 박스 (366) 에서의 NAL 유닛 맵 엔트리들 (390) 의 수를 표시한다.
도 8 또는 도 9 중의 어느 하나에서, TileRegionGroupEntry 는 VisualSampleGroupEntry 를 확장시킨다. 14496-12 의 섹션 8.9.3.2 에서 설명된 바와 같이, VisualSampleGroupEntry 는 SampleGroupDescriptionEntry 클래스 (class) 의 확장이다. 이에 따라, 일부 예들에서, TileSetGroupEntry 클래스의 사례들 (즉, TileSetGroupEntry 박스들) 은 그룹 설명 엔트리들의 그룹의 상이한 것들일 수도 있다.
도 10 은 이 개시물의 하나 이상의 기법들에 따라, 타일 세트 엔트리 그룹 (400) 을 예시하는 개념적인 도면이다. 도 10 의 예에서 예시된 바와 같이, 타일 세트 그룹 엔트리 (400) 는 그룹 식별자 (예컨대, groupID) 신택스 엘리먼트 (402), 수평 오프셋 (예컨대, horizontal_offset) 신택스 엘리먼트 (404), 수직 오프셋 (예컨대, vertical_offset) 신택스 엘리먼트 (406), 폭 (예컨대, region_width) 신택스 엘리먼트 (408), 및 높이 (예컨대, region_height) 신택스 엘리먼트 (410) 를 포함할 수도 있다. 그룹 식별자 신택스 엘리먼트 (402) 는 타일 세트를 식별한다.
수평 오프셋 신택스 엘리먼트 (404) 는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정한다. 수직 오프셋 신택스 엘리먼트 (406) 는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수직 오프셋을 특정한다. 폭 신택스 엘리먼트 (408) 는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 폭을 특정한다. 높이 신택스 엘리먼트 (410) 는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 폭을 특정한다.
일부 예들에서, 타일 세트 그룹 엔트리 (400) 는 또한, 종속성 정보 (412) 를 포함할 수도 있다. 종속성 정보 (412) 는 타일 세트가 속하는 계층 내에서의 종속성을 설명할 수도 있다. 예를 들어, 종속성 정보 (412) 는 타일 세트 그룹 엔트리 (400) 가 적용되는 샘플들의 시간적 서브-계층을 식별하는 시간적 식별자를 설명할 수도 있다. 일부 예들에서, 종속성 정보 (412) 는 타일 세트가 속하는 계층의 현재의 픽처에서 그리고 참조 픽처들에서의 타일 세트와 다른 타일 세트들 사이의 코딩 종속성들을 특정하는 특정한 신택스 엘리먼트 (예컨대, independent_idc, independent_flag) 를 포함한다.
도 11 은 이 개시물의 기법에 따라, 비디오 데이터의 저장을 위한 파일을 생성하기 위한 프로세스의 예를 예시하는 플로우차트이다. 이 개시물의 플로우차트들은 예들로서 제공된다. 다른 프로세스들은 더 많거나, 더 적거나, 또는 상이한 액션들을 포함할 수도 있다. 또한, 일부 사례들에서, 액션들은 상이한 순서들로 또는 병렬로 수행될 수도 있다. 또한, 이 개시물은 파일 생성 디바이스 (34) 를 참조하여 도 11 을 설명한다. 그러나, 다른 디바이스들은 도 11 의 프로세스를 수행할 수 있을 수도 있다.
도 11 의 예에서, 파일 생성 디바이스 (34) 는 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 수신할 수도 있다 (450). 예를 들어, 파일 생성 디바이스 (34) 의 메모리는 네트워크 인터페이스, 디스크, 또는 다른 매체들로부터 비트스트림을 수신할 수도 있다. 비디오 데이터의 픽처들은 현재의 픽처를 포함한다. 현재의 픽처는 복수의 타일들로 파티셔닝된다. 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역이다. 예를 들어, 현재의 픽처는 각각이 도 2 및 도 3 의 예들에서 도시된 바와 같이, 직사각형 영역인 4 개의 동일한 크기의 타일들로 파티셔닝될 수도 있다.
추가적으로, 도 11 의 예에서, 파일 생성 디바이스 (34) 는 파일에서의 NAL 유닛 맵 엔트리 박스 (예컨대, NALUMapEntry) 를 생성한다 (452). 예를 들어, 파일 생성 디바이스 (34) 는 파일에서의 NAL 유닛 맵 엔트리 박스를 표현하는 데이터를 저장할 수도 있다. NAL 유닛 맵 엔트리 박스는 비트스트림의 NAL 유닛들을 타일 세트와 연관시킨다. 타일 세트는 현재의 픽처가 파티셔닝되는 복수의 타일들 중의 하나 이상의 타일들을 포함한다. 예를 들어, 도 4 의 예에서 도시된 바와 같이, 타일 세트는 현재의 픽처가 파티셔닝되는 복수의 타일들 중의 2 개 이상의 타일들을 포함할 수도 있다. 일부 사례들에서, 타일 세트에서의 타일들에 의해 커버된 현재의 픽처의 영역 (예컨대, 도 4 의 에어리어 (124)) 은 형상에 있어서 직사각형이 아니다. 일부 사례들에서, 타일 세트에서의 타일들에 의해 커버된 현재의 픽처의 영역은 형상에 있어서 직사각형이다.
또한, 도 11 의 예에서, 파일 생성 디바이스 (34) 는 파일에서의 타일 세트 그룹 엔트리 (예컨대, TileSetGroupEntry, TileRegionGroupEntry) 를 생성한다 (454). 예를 들어, 파일 생성 디바이스 (34) 는 파일에서의 타일 세트 그룹 엔트리를 표현하는 데이터를 저장할 수도 있다. 타일 세트 그룹 엔트리는 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함할 수도 있다. 추가적으로, 타일 세트 엔트리 박스는 수평 오프셋 신택스 엘리먼트 (예컨대, horizontal_offset), 수직 오프셋 신택스 엘리먼트 (예컨대, vertical_offset), 폭 신택스 엘리먼트 (예컨대, region_width), 및 높이 신택스 엘리먼트 (예컨대, region_height) 를 포함한다. 수평 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정한다. 수직 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수직 오프셋을 특정한다. 폭 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 폭을 특정한다. 높이 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 높이를 특정한다.
또한, 하나의 예에서, 파일 생성 디바이스 (34) 는 파일에서의 제 2 NAL 유닛 맵 엔트리 박스를 생성할 수도 있다. 이 예에서, 제 2 NAL 유닛 맵 엔트리 박스는 그룹 식별자 신택스 엘리먼트를 포함할 수도 있다. 또한, 이 예에서, 제 2 NAL 유닛 맵 엔트리 박스의 그룹 식별자 신택스 엘리먼트는 NAL 유닛이 모든 타일 세트들과 연관된다는 것을 표시하는 값 (예컨대, 1 또는 또 다른 값) 을 가진다. 이 개시물에서의 어딘가에서 설명된 바와 같이, 파일 프로세싱 디바이스 (예컨대, 파일 파싱 유닛 (31) (도 1) 을 구현하는 디바이스) 는 타일 세트를 포함하는 VCL NAL 유닛들을 디코딩하기 위하여 필요한 데이터를 포함할 수도 있는 비-VCL NAL 유닛들을 식별하기 위하여 제 2 NAL 유닛 맵 엔트리를 이용할 수도 있다.
도 12 는 이 개시물의 기법에 따라, 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하기 위한 프로세스의 예를 예시하는 플로우차트이다. 도 12 의 일 예의 프로세스는 파일 파싱 유닛 (31) 을 참조하여 설명된다. 그러나, 다른 디바이스들 또는 유닛들은 도 12 의 일 예의 프로세스를 수행할 수도 있다.
도 12 의 예에서, 파일 파싱 유닛 (31) 은 파일에서의 NAL 유닛 맵 엔트리 박스 (예컨대, NALUMapEntry) 를 획득한다 (500). 예를 들어, 파일 파싱 유닛 (31) 은 파일로부터 NAL 유닛 맵 엔트리 박스를 판독할 수도 있다. NAL 유닛 맵 엔트리 박스는 비트스트림의 NAL 유닛들을 타일 세트와 연관시킨다. 예를 들어, 이 개시물에서의 어딘가에서 설명된 바와 같이, NAL 유닛 맵 엔트리 박스는 NAL 유닛들이 맵핑되는 타일 세트들을 표시하는 신택스 엘리먼트들 (예컨대, groupID) 신택스 엘리먼트들을 포함할 수도 있다. 비트스트림은 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함한다. 비디오 데이터의 픽처들은 현재의 픽처를 포함한다. 현재의 픽처는 복수의 타일들로 파티셔닝된다. 예를 들어, 신택스 엘리먼트들 (예컨대, HEVC 에서의 num_tile_columns_minus1, num_tile_rows_minus1, uniform_spacing_flag 등) 은 현재의 픽처가 어떻게 타일들로 파티셔닝되는지를 특정할 수도 있다. 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역이다. 타일 세트는 현재의 픽처가 파티셔닝되는 복수의 타일들 중의 하나 이상의 타일들을 포함한다. 예를 들어, 도 4 의 예에서 도시된 바와 같이, 타일 세트는 현재의 픽처가 파티셔닝되는 복수의 타일들 중의 2 개 이상의 타일들을 포함할 수도 있다. 일부 사례들에서, 타일 세트에서의 타일들에 의해 커버된 현재의 픽처의 영역 (예컨대, 도 4 의 에어리어 (124)) 은 형상에 있어서 직사각형이 아니다. 일부 사례들에서, 타일 세트에서의 타일들에 의해 커버된 현재의 픽처의 영역은 형상에 있어서 직사각형이다.
또한, 도 12 의 예에서, 파일 파싱 유닛 (31) 은 파일에서의 타일 세트 그룹 엔트리 (예컨대, TileSetGroupEntry, TileRegionGroupEntry) 를 획득한다 (502). 타일 세트 그룹 엔트리는 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함한다. 타일 세트 엔트리 박스는 수평 오프셋 신택스 엘리먼트 (예컨대, horizontal_offset), 수직 오프셋 신택스 엘리먼트 (예컨대, vertical_offset), 폭 신택스 엘리먼트 (예컨대, region_width), 및 높이 신택스 엘리먼트 (예컨대, region_height) 를 포함한다. 수평 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정한다. 수직 오프셋 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수직 오프셋을 특정한다. 폭 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 폭을 특정한다. 높이 신택스 엘리먼트는 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 높이를 특정한다.
추가적으로, 도 12 의 예에서, 파일 파싱 유닛 (31) 은 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트에 기초하여 타일 세트를 프로세싱한다 (504). 파일 파싱 유닛 (31) 은 다양한 방법들로 타일 세트를 프로세싱할 수도 있다. 예를 들어, 파일 파싱 유닛 (31) 은 파일로부터 타일 세트의 타일들을 추출할 수도 있고 추출된 타일들을 송신할 수도 있다. 예를 들어, 파일 파싱 유닛 (31) 은 (예컨대, 타일 세트의 로케이션 및 크기에 기초하여) 타일 세트가 디스플레이되어야 할 희망된 영역에 대응하는지 여부를 결정할 수도 있다. 그러할 경우, 파일 파싱 유닛 (31) 은 타일 세트의 인코딩된 블록들을 포함하는 NAL 유닛들을 결정하기 위하여 NAL 유닛 맵 엔트리 박스를 이용할 수도 있다. 그 다음으로, 파일 파싱 유닛 (31) 은 결정된 NAL 유닛들을 추출할 수도 있다.
또한, 하나의 예에서, 파일 파싱 유닛 (31) 은 파일로부터, 제 2 NAL 유닛 맵 엔트리 박스를 획득할 수도 있다. 제 2 NAL 유닛 맵 엔트리 박스는 그룹 식별자 신택스 엘리먼트를 포함할 수도 있다. 또한, 이 예에서, 특정한 값 (예컨대, 1 또는 또 다른 값) 을 가지는 제 2 NAL 유닛 맵 엔트리 박스의 그룹 식별자 신택스 엘리먼트 (예컨대, groupID) 는 NAL 유닛이 모든 타일 세트들과 연관된다는 것을 표시한다. 이 예에서, 제 2 NAL 유닛 맵 엔트리 박스의 그룹 식별자 신택스 엘리먼트가 NAL 유닛이 모든 타일 세트들과 연관된다는 것을 표시하는 값을 가지는 것에 기초하여, 파일 파싱 유닛 (31) 은 파일로부터 NAL 유닛을 추출할 수도 있다. 또한, 일부 사례들에서, 파일 파싱 유닛 (31) 은 NAL 유닛을 송신할 수도 있다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현될 경우, 기능들은 하나 이상의 명령들 또는 코드로서, 컴퓨터-판독가능 매체 상에 저장되거나 컴퓨터-판독가능 매체를 통해 송신될 수도 있고, 하드웨어-기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터-판독가능 매체들은 데이터 저장 매체들과 같은 유형의 매체에 대응하는 컴퓨터-판독가능 저장 매체들, 또는 예컨대, 통신 프로토콜에 따라 하나의 장소로부터 또 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수도 있다. 이러한 방식으로, 컴퓨터-판독가능 매체들은 일반적으로 (1) 비-일시적 유형의 컴퓨터-판독가능 저장 매체들, 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체들은 이 개시물에서 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터-판독가능 매체를 포함할 수도 있다.
제한이 아닌 예로서, 이러한 컴퓨터-판독가능 저장 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장, 자기 디스크 저장, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 명령들 또는 데이터 구조들의 형태로 희망하는 프로그램 코드를 저장하기 위하여 이용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속은 컴퓨터-판독가능 매체로 적절하게 칭해진다. 예를 들어, 동축 케이블, 광섬유 케이블, 트위스트 페어 (twisted pair), 디지털 가입자 회선 (digital subscriber line; DSL), 또는 적외선, 라디오 (radio), 및 마이크로파 (microwave) 와 같은 무선 기술들을 이용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 명령들이 송신될 경우, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL, 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들은 매체의 정의 내에 포함된다. 그러나, 컴퓨터-판독가능 저장 매체들 및 데이터 저장 매체들은 접속들, 반송파들, 신호들, 또는 다른 일시적 매체 (transient medium) 들을 포함하는 것이 아니라, 그 대신에, 비-일시적인, 유형의 저장 매체들에 관한 것이라는 것이 이해되어야 한다. 본원에서 이용된 바와 같은 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 (compact disc; CD), 레이저 디스크 (laser disc), 광학 디스크 (optical disc), 디지털 다기능 디스크 (digital versatile disc; DVD), 플로피 디스크 (floppy disk) 및 블루레이 디스크 (Blu-ray disc) 를 포함하고, 여기서 디스크 (disk) 들은 통상 데이터를 자기적으로 재생하는 반면, 디스크 (disc) 들은 데이터를 레이저들로 광학적으로 재생한다. 상기의 조합들은 컴퓨터-판독가능 매체들의 범위 내에 또한 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 애플리케이션 특정 집적 회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 등가의 집적된 또는 별도의 로직 회로와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 따라서, 본원에서 이용된 바와 같은 용어 "프로세서" 는 상기한 구조, 또는 본원에서 설명된 기법들의 구현을 위해 적당한 임의의 다른 구조 중의 임의의 것을 지칭할 수도 있다. 게다가, 일부 양태들에서는, 본원에서 설명된 기능성이 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공되거나 조합된 코덱 내에 통합될 수도 있다. 또한, 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들에서 완전히 구현될 수 있다.
이 개시물의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC 들의 세트 (예를 들어, 칩셋) 를 포함하는 광범위한 디바이스들 또는 장치들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위하여 이 개시물에서 설명되어 있지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구하지는 않는다. 오히려, 위에서 설명된 바와 같이, 다양한 유닛들은 코덱 하드웨어 유닛 내에 조합될 수도 있거나, 적당한 소프트웨어 및/또는 펌웨어와 함께, 위에서 설명된 바와 같은 하나 이상의 프로세서들을 포함하는 상호동작하는 하드웨어 유닛들의 집합에 의해 제공될 수도 있다.
다양한 예들이 설명되었다. 이러한 그리고 다른 예들은 다음의 청구항들의 범위 내에 있다.

Claims (30)

  1. 비디오 데이터의 저장을 위한 방법으로서,
    파일 생성 디바이스에 의해, 상기 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 수신하는 단계로서, 상기 비디오 데이터의 상기 픽처들은 현재의 픽처를 포함하고, 상기 현재의 픽처는 복수의 타일들로 파티셔닝되고, 상기 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역인, 상기 비트스트림을 수신하는 단계;
    상기 파일 생성 디바이스에 의해, 파일에서의 네트워크 추상화 계층 (Network Abstraction Layer; NAL) 유닛 맵 엔트리 박스를 생성하는 단계로서, 상기 NAL 유닛 맵 엔트리 박스는 상기 비트스트림의 NAL 유닛들을 타일 세트와 연관시키고, 상기 타일 세트는 상기 현재의 픽처가 파티셔닝되는 상기 복수의 타일들 중의 2 개 이상의 타일들을 포함하고, 상기 타일 세트에서의 상기 타일들에 의해 커버된 상기 현재의 픽처의 영역은 형상에 있어서 직사각형이 아닌, 상기 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 생성하는 단계; 및
    상기 파일 생성 디바이스에 의해, 상기 파일에서의 타일 세트 그룹 엔트리를 생성하는 단계로서,
    상기 타일 세트 그룹 엔트리는 상기 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함하고,
    상기 타일 세트 그룹 엔트리는 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 포함하고,
    상기 수평 오프셋 신택스 엘리먼트는 상기 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정하고,
    상기 수직 오프셋 신택스 엘리먼트는 상기 타일 세트에서의 타일들을 커버하는 상기 최소 직사각형 영역의 상기 상단-좌측 픽셀의 수직 오프셋을 특정하고,
    상기 폭 신택스 엘리먼트는 상기 타일 세트에서의 상기 타일들을 커버하는 상기 최소 직사각형 영역의 폭을 특정하고,
    상기 높이 신택스 엘리먼트는 상기 타일 세트에서의 상기 타일들을 커버하는 상기 최소 직사각형 영역의 높이를 특정하는, 상기 파일에서의 타일 세트 그룹 엔트리를 생성하는 단계를 포함하는, 비디오 데이터의 저장을 위한 방법.
  2. 제 1 항에 있어서,
    상기 타일 세트는 계층-특정 범위를 가지는, 비디오 데이터의 저장을 위한 방법.
  3. 제 2 항에 있어서,
    상기 타일 세트 그룹 엔트리를 생성하는 단계는,
    상기 타일 세트 그룹 엔트리 내에, 상기 타일 세트가 속하는 계층 내에서의 종속성을 설명하는 종속성 정보를 포함하는 단계를 포함하는, 비디오 데이터의 저장을 위한 방법.
  4. 제 3 항에 있어서,
    상기 타일 세트 그룹 엔트리 내에 상기 종속성 정보를 포함하는 단계는 상기 타일 세트 그룹 엔트리 내에, 상기 타일 세트가 속하는 상기 계층의 상기 현재의 픽처에서 그리고 참조 픽처들에서의 상기 타일 세트와 다른 타일 세트들 사이의 코딩 종속성들을 특정하는 특정한 신택스 엘리먼트를 포함하는 단계를 포함하고, 그리고
    상기 방법은 상기 파일에서의 계층 정보 샘플 그룹 또는 상기 파일에서의 동작 포인트 정보 샘플 그룹에서, 인터-계층 종속성들을 표시하는 단계를 더 포함하는, 비디오 데이터의 저장을 위한 방법.
  5. 제 4 항에 있어서,
    상기 특정한 신택스 엘리먼트는 플래그이고, 상기 플래그는 정확하게 2 개의 상태들을 가지고, 상기 플래그의 제 1 상태는 시간적 종속성 없음을 표시하고, 상기 플래그의 제 2 상태는 시간적 종속성이 있을 수 있거나 없을 수 있다는 것을 표시하는, 비디오 데이터의 저장을 위한 방법.
  6. 제 1 항에 있어서,
    상기 NAL 유닛 맵 엔트리 박스는 제 1 NAL 유닛 맵 엔트리 박스이고, 상기 방법은,
    상기 파일에서의 제 2 NAL 유닛 맵 엔트리 박스를 생성하는 단계로서, 상기 제 2 NAL 유닛 맵 엔트리 박스는 그룹 식별자 신택스 엘리먼트를 포함하고, 상기 제 2 NAL 유닛 맵 엔트리 박스의 상기 그룹 식별자 신택스 엘리먼트는 NAL 유닛이 모든 타일 세트들과 연관된다는 것을 표시하는 값을 가지는, 상기 파일에서의 제 2 NAL 유닛 맵 엔트리 박스를 생성하는 단계를 더 포함하는, 비디오 데이터의 저장을 위한 방법.
  7. 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하는 방법으로서,
    파일 프로세싱 디바이스에 의해, 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 획득하는 단계로서, 상기 NAL 유닛 맵 엔트리 박스는 비트스트림의 NAL 유닛들을 타일 세트와 연관시키고, 상기 비트스트림은 상기 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함하고, 상기 비디오 데이터의 상기 픽처들은 현재의 픽처를 포함하고, 상기 현재의 픽처는 복수의 타일들로 파티셔닝되고, 상기 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역이고, 상기 타일 세트는 상기 현재의 픽처가 파티셔닝되는 상기 복수의 타일들 중의 2 개 이상의 타일들을 포함하고, 상기 타일 세트에서의 상기 타일들에 의해 커버된 상기 현재의 픽처의 영역은 형상에 있어서 직사각형이 아닌, 상기 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 획득하는 단계;
    상기 파일 프로세싱 디바이스에 의해, 상기 파일에서의 타일 세트 그룹 엔트리를 획득하는 단계로서,
    상기 타일 세트 그룹 엔트리는 상기 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함하고,
    상기 타일 세트 그룹 엔트리는 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 포함하고,
    상기 수평 오프셋 신택스 엘리먼트는 상기 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정하고,
    상기 수직 오프셋 신택스 엘리먼트는 상기 타일 세트에서의 타일들을 커버하는 상기 최소 직사각형 영역의 상기 상단-좌측 픽셀의 수직 오프셋을 특정하고,
    상기 폭 신택스 엘리먼트는 상기 타일 세트에서의 상기 타일들을 커버하는 상기 최소 직사각형 영역의 폭을 특정하고,
    상기 높이 신택스 엘리먼트는 상기 타일 세트에서의 상기 타일들을 커버하는 상기 최소 직사각형 영역의 높이를 특정하는, 상기 파일에서의 타일 세트 그룹 엔트리를 획득하는 단계; 및
    상기 수평 오프셋 신택스 엘리먼트, 상기 수직 오프셋 신택스 엘리먼트, 상기 폭 신택스 엘리먼트, 및 상기 높이 신택스 엘리먼트에 기초하여 상기 타일 세트를 프로세싱하는 단계를 포함하는, 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하는 방법.
  8. 제 7 항에 있어서,
    상기 타일 세트를 프로세싱하는 단계는,
    상기 파일로부터 상기 타일 세트의 상기 타일들을 추출하는 단계; 및
    추출된 상기 타일들을 송신하는 단계를 포함하는, 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하는 방법.
  9. 제 7 항에 있어서,
    상기 타일 세트는 계층-특정 범위를 가지는, 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하는 방법.
  10. 제 9 항에 있어서,
    상기 타일 세트 그룹 엔트리를 획득하는 단계는 상기 타일 세트 그룹 엔트리 내로부터, 상기 타일 세트가 속하는 계층 내에서의 종속성을 설명하는 종속성 정보를 획득하는 단계를 포함하고, 그리고
    상기 타일 세트를 프로세싱하는 단계는 상기 수평 오프셋 신택스 엘리먼트, 상기 수직 오프셋 신택스 엘리먼트, 상기 폭 신택스 엘리먼트, 상기 높이 신택스 엘리먼트, 및 상기 종속성 정보에 기초하여 상기 타일 세트를 프로세싱하는 단계를 포함하는, 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하는 방법.
  11. 제 10 항에 있어서,
    상기 타일 세트 그룹 엔트리에서 상기 종속성 정보를 획득하는 단계는 상기 타일 세트 그룹 엔트리 내로부터, 상기 타일 세트가 속하는 상기 계층의 상기 현재의 픽처에서 그리고 참조 픽처들에서의 상기 타일 세트와 다른 타일 세트들 사이의 코딩 종속성들을 특정하는 특정한 신택스 엘리먼트를 획득하는 단계를 포함하고,
    상기 방법은 상기 파일에서의 계층 정보 샘플 그룹 또는 상기 파일에서의 동작 포인트 정보 샘플 그룹에 기초하여, 인터-계층 종속성들을 결정하는 단계를 더 포함하고, 그리고
    상기 타일 세트를 프로세싱하는 단계는 상기 수평 오프셋 신택스 엘리먼트, 상기 수직 오프셋 신택스 엘리먼트, 상기 폭 신택스 엘리먼트, 상기 높이 신택스 엘리먼트, 및 상기 인터-계층 종속성들에 기초하여 상기 타일 세트를 프로세싱하는 단계를 포함하는, 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하는 방법.
  12. 제 11 항에 있어서,
    상기 특정한 신택스 엘리먼트는 플래그이고, 상기 플래그는 정확하게 2 개의 상태들을 가지고, 상기 플래그의 제 1 상태는 시간적 종속성 없음을 표시하고, 상기 플래그의 제 2 상태는 시간적 종속성이 있을 수 있거나 없을 수 있다는 것을 표시하는, 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하는 방법.
  13. 제 7 항에 있어서,
    상기 NAL 유닛 맵 엔트리 박스는 제 1 NAL 유닛 맵 엔트리 박스이고, 상기 방법은,
    상기 파일로부터, 제 2 NAL 유닛 맵 엔트리 박스를 획득하는 단계로서, 상기 제 2 NAL 유닛 맵 엔트리 박스는 그룹 식별자 신택스 엘리먼트를 포함하고, 상기 제 2 NAL 유닛 맵 엔트리 박스의 상기 그룹 식별자 신택스 엘리먼트는 NAL 유닛이 모든 타일 세트들과 연관된다는 것을 표시하는 값을 가지는, 상기 제 2 NAL 유닛 맵 엔트리 박스를 획득하는 단계; 및
    상기 제 2 NAL 유닛 맵 엔트리 박스의 상기 그룹 식별자 신택스 엘리먼트가 상기 NAL 유닛이 모든 타일 세트들과 연관된다는 것을 표시하는 상기 값을 가지는 것에 기초하여:
    상기 파일로부터 상기 NAL 유닛을 추출하는 단계; 및
    상기 NAL 유닛을 송신하는 단계를 더 포함하는, 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하는 방법.
  14. 비디오 데이터를 저장하기 위한 파일을 생성하기 위한 디바이스로서,
    비디오 컨텐츠들의 저장을 위한 파일을 저장하도록 구성된 메모리; 및
    하나 이상의 프로세서들을 포함하고,
    상기 하나 이상의 프로세서들은,
    상기 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 수신하는 것으로서, 상기 비디오 데이터의 상기 픽처들은 현재의 픽처를 포함하고, 상기 현재의 픽처는 복수의 타일들로 파티셔닝되고, 상기 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역인, 상기 비트스트림을 수신하고;
    상기 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 생성하는 것으로서, 상기 NAL 유닛 맵 엔트리 박스는 상기 비트스트림의 NAL 유닛들을 타일 세트와 연관시키고, 상기 타일 세트는 상기 현재의 픽처가 파티셔닝되는 상기 복수의 타일들 중의 2 개 이상의 타일들을 포함하고, 상기 타일 세트에서의 상기 타일들에 의해 커버된 상기 현재의 픽처의 영역은 형상에 있어서 직사각형이 아닌, 상기 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 생성하고; 그리고
    상기 파일에서의 타일 세트 그룹 엔트리를 생성하는 것으로서,
    상기 타일 세트 그룹 엔트리는 상기 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함하고,
    상기 타일 세트 그룹 엔트리는 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 포함하고,
    상기 수평 오프셋 신택스 엘리먼트는 상기 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정하고,
    상기 수직 오프셋 신택스 엘리먼트는 상기 타일 세트에서의 타일들을 커버하는 상기 최소 직사각형 영역의 상기 상단-좌측 픽셀의 수직 오프셋을 특정하고,
    상기 폭 신택스 엘리먼트는 상기 타일 세트에서의 상기 타일들을 커버하는 상기 최소 직사각형 영역의 폭을 특정하고,
    상기 높이 신택스 엘리먼트는 상기 타일 세트에서의 상기 타일들을 커버하는 상기 최소 직사각형 영역의 높이를 특정하는, 상기 파일에서의 타일 세트 그룹 엔트리를 생성하도록 구성되는, 비디오 데이터를 저장하기 위한 파일을 생성하기 위한 디바이스.
  15. 제 14 항에 있어서,
    상기 타일 세트는 계층-특정 범위를 가지는, 비디오 데이터를 저장하기 위한 파일을 생성하기 위한 디바이스.
  16. 제 15 항에 있어서,
    상기 하나 이상의 프로세서들은, 상기 타일 세트 그룹 엔트리를 생성하는 것의 일부로서, 상기 하나 이상의 프로세서들이,
    상기 타일 세트 그룹 엔트리 내에, 상기 타일 세트가 속하는 계층 내에서의 종속성을 설명하는 종속성 정보를 포함하도록 구성되는, 비디오 데이터를 저장하기 위한 파일을 생성하기 위한 디바이스.
  17. 제 16 항에 있어서,
    상기 하나 이상의 프로세서들은, 상기 타일 세트 그룹 엔트리 내에 상기 종속성 정보를 포함하는 것의 일부로서, 상기 하나 이상의 프로세서들이 상기 타일 세트 그룹 엔트리 내에, 상기 타일 세트가 속하는 상기 계층의 상기 현재의 픽처에서 그리고 참조 픽처들에서의 상기 타일 세트와 다른 타일 세트들 사이의 코딩 종속성들을 특정하는 특정한 신택스 엘리먼트를 포함하도록 구성되고, 그리고
    상기 하나 이상의 프로세서들은, 상기 파일에서의 계층 정보 샘플 그룹 또는 상기 파일에서의 동작 포인트 정보 샘플 그룹에서, 인터-계층 종속성들을 표시하도록 추가로 구성되는, 비디오 데이터를 저장하기 위한 파일을 생성하기 위한 디바이스.
  18. 제 17 항에 있어서,
    상기 특정한 신택스 엘리먼트는 플래그이고, 상기 플래그는 정확하게 2 개의 상태들을 가지고, 상기 플래그의 제 1 상태는 시간적 종속성 없음을 표시하고, 상기 플래그의 제 2 상태는 시간적 종속성이 있을 수 있거나 없을 수 있다는 것을 표시하는, 비디오 데이터를 저장하기 위한 파일을 생성하기 위한 디바이스.
  19. 제 14 항에 있어서,
    상기 NAL 유닛 맵 엔트리 박스는 제 1 NAL 유닛 맵 엔트리 박스이고, 상기 하나 이상의 프로세서들은,
    상기 파일에서의 제 2 NAL 유닛 맵 엔트리 박스를 생성하는 것으로서, 상기 제 2 NAL 유닛 맵 엔트리 박스는 그룹 식별자 신택스 엘리먼트를 포함하고, 상기 제 2 NAL 유닛 맵 엔트리 박스의 상기 그룹 식별자 신택스 엘리먼트는 NAL 유닛이 모든 타일 세트들과 연관된다는 것을 표시하는 값을 가지는, 상기 파일에서의 제 2 NAL 유닛 맵 엔트리 박스를 생성하도록 추가로 구성되는, 비디오 데이터를 저장하기 위한 파일을 생성하기 위한 디바이스.
  20. 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하기 위한 디바이스로서,
    비디오 컨텐츠들의 저장을 위한 파일을 저장하도록 구성된 메모리; 및
    하나 이상의 프로세서들을 포함하고,
    상기 하나 이상의 프로세서들은,
    파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 획득하는 것으로서, 상기 NAL 유닛 맵 엔트리 박스는 비트스트림의 NAL 유닛들을 타일 세트와 연관시키고, 상기 비트스트림은 상기 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함하고, 상기 비디오 데이터의 상기 픽처들은 현재의 픽처를 포함하고, 상기 현재의 픽처는 복수의 타일들로 파티셔닝되고, 상기 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역이고, 상기 타일 세트는 상기 현재의 픽처가 파티셔닝되는 상기 복수의 타일들 중의 2 개 이상의 타일들을 포함하고, 상기 타일 세트에서의 상기 타일들에 의해 커버된 상기 현재의 픽처의 영역은 형상에 있어서 직사각형이 아닌, 상기 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 획득하고;
    상기 파일에서의 타일 세트 그룹 엔트리를 획득하는 것으로서,
    상기 타일 세트 그룹 엔트리는 상기 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함하고,
    상기 타일 세트 그룹 엔트리는 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 포함하고,
    상기 수평 오프셋 신택스 엘리먼트는 상기 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정하고,
    상기 수직 오프셋 신택스 엘리먼트는 상기 타일 세트에서의 타일들을 커버하는 상기 최소 직사각형 영역의 상기 상단-좌측 픽셀의 수직 오프셋을 특정하고,
    상기 폭 신택스 엘리먼트는 상기 타일 세트에서의 상기 타일들을 커버하는 상기 최소 직사각형 영역의 폭을 특정하고,
    상기 높이 신택스 엘리먼트는 상기 타일 세트에서의 상기 타일들을 커버하는 상기 최소 직사각형 영역의 높이를 특정하는, 상기 파일에서의 타일 세트 그룹 엔트리를 획득하고; 그리고
    상기 수평 오프셋 신택스 엘리먼트, 상기 수직 오프셋 신택스 엘리먼트, 상기 폭 신택스 엘리먼트, 및 상기 높이 신택스 엘리먼트에 기초하여 상기 타일 세트를 프로세싱하도록 구성되는, 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하기 위한 디바이스.
  21. 제 20 항에 있어서,
    상기 하나 이상의 프로세서들은, 상기 타일 세트를 프로세싱하는 것의 일부로서, 상기 하나 이상의 프로세서들이,
    상기 파일로부터 상기 타일 세트의 상기 타일들을 추출하고; 그리고
    추출된 상기 타일들을 송신하도록 구성되는, 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하기 위한 디바이스.
  22. 제 21 항에 있어서,
    상기 타일 세트는 계층-특정 범위를 가지는, 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하기 위한 디바이스.
  23. 제 22 항에 있어서,
    상기 하나 이상의 프로세서들은, 상기 타일 세트 그룹 엔트리를 획득하는 것의 일부로서, 상기 하나 이상의 프로세서들이 상기 타일 세트 그룹 엔트리 내로부터, 상기 타일 세트가 속하는 계층 내에서의 종속성을 설명하는 종속성 정보를 획득하도록 구성되고, 그리고
    상기 하나 이상의 프로세서들은, 상기 타일 세트를 프로세싱하는 것의 일부로서, 상기 하나 이상의 프로세서들이 상기 수평 오프셋 신택스 엘리먼트, 상기 수직 오프셋 신택스 엘리먼트, 상기 폭 신택스 엘리먼트, 상기 높이 신택스 엘리먼트, 및 상기 종속성 정보에 기초하여 상기 타일 세트를 프로세싱하도록 구성되는, 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하기 위한 디바이스.
  24. 제 23 항에 있어서,
    상기 하나 이상의 프로세서들은, 상기 타일 세트 그룹 엔트리에서 상기 종속성 정보를 획득하는 것의 일부로서, 상기 하나 이상의 프로세서들이 상기 타일 세트 그룹 엔트리 내로부터, 상기 타일 세트가 속하는 상기 계층의 상기 현재의 픽처에서 그리고 참조 픽처들에서의 상기 타일 세트와 다른 타일 세트들 사이의 코딩 종속성들을 특정하는 특정한 신택스 엘리먼트를 획득하도록 구성되고,
    상기 하나 이상의 프로세서들은, 상기 파일에서의 계층 정보 샘플 그룹 또는 상기 파일에서의 동작 포인트 정보 샘플 그룹에 기초하여, 인터-계층 종속성들을 결정하도록 추가로 구성되고, 그리고
    상기 하나 이상의 프로세서들은, 상기 타일 세트를 프로세싱하는 것의 일부로서, 상기 하나 이상의 프로세서들이 상기 수평 오프셋 신택스 엘리먼트, 상기 수직 오프셋 신택스 엘리먼트, 상기 폭 신택스 엘리먼트, 상기 높이 신택스 엘리먼트, 및 상기 인터-계층 종속성들에 기초하여 상기 타일 세트를 프로세싱하도록 구성되는, 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하기 위한 디바이스.
  25. 제 24 항에 있어서,
    상기 특정한 신택스 엘리먼트는 플래그이고, 상기 플래그는 정확하게 2 개의 상태들을 가지고, 상기 플래그의 제 1 상태는 시간적 종속성 없음을 표시하고, 상기 플래그의 제 2 상태는 시간적 종속성이 있을 수 있거나 없을 수 있다는 것을 표시하는, 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하기 위한 디바이스.
  26. 제 20 항에 있어서,
    상기 타일 세트 그룹 엔트리는 제 1 타일 세트 그룹 엔트리이고, 상기 하나 이상의 프로세서들은,
    상기 파일로부터, 제 2 NAL 유닛 맵 엔트리 박스를 획득하는 것으로서, 상기 제 2 NAL 유닛 맵 엔트리 박스는 그룹 식별자 신택스 엘리먼트를 포함하고, 상기 제 2 NAL 유닛 맵 엔트리 박스의 상기 그룹 식별자 신택스 엘리먼트는 NAL 유닛이 모든 타일 세트들과 연관된다는 것을 표시하는 값을 가지는, 상기 제 2 NAL 유닛 맵 엔트리 박스를 획득하고; 그리고
    상기 제 2 NAL 유닛 맵 엔트리 박스의 상기 그룹 식별자 신택스 엘리먼트가 상기 NAL 유닛이 모든 타일 세트들과 연관된다는 것을 표시하는 상기 값을 가지는 것에 기초하여:
    상기 파일로부터 상기 NAL 유닛을 추출하고; 그리고
    상기 NAL 유닛을 송신하도록 추가로 구성되는, 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하기 위한 디바이스.
  27. 비디오 데이터의 저장을 위한 파일을 생성하기 위한 디바이스로서,
    상기 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 수신하기 위한 수단으로서, 상기 비디오 데이터의 상기 픽처들은 현재의 픽처를 포함하고, 상기 현재의 픽처는 복수의 타일들로 파티셔닝되고, 상기 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역인, 상기 비트스트림을 수신하기 위한 수단;
    파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 생성하기 위한 수단으로서, 상기 NAL 유닛 맵 엔트리 박스는 상기 비트스트림의 NAL 유닛들을 타일 세트와 연관시키고, 상기 타일 세트는 상기 현재의 픽처가 파티셔닝되는 상기 복수의 타일들 중의 2 개 이상의 타일들을 포함하고, 상기 타일 세트에서의 상기 타일들에 의해 커버된 상기 현재의 픽처의 영역은 형상에 있어서 직사각형이 아닌, 상기 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 생성하기 위한 수단; 및
    상기 파일에서의 타일 세트 그룹 엔트리를 생성하기 위한 수단으로서,
    상기 타일 세트 그룹 엔트리는 상기 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함하고,
    상기 타일 세트 그룹 엔트리는 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 포함하고,
    상기 수평 오프셋 신택스 엘리먼트는 상기 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정하고,
    상기 수직 오프셋 신택스 엘리먼트는 상기 타일 세트에서의 타일들을 커버하는 상기 최소 직사각형 영역의 상기 상단-좌측 픽셀의 수직 오프셋을 특정하고,
    상기 폭 신택스 엘리먼트는 상기 타일 세트에서의 상기 타일들을 커버하는 상기 최소 직사각형 영역의 폭을 특정하고,
    상기 높이 신택스 엘리먼트는 상기 타일 세트에서의 상기 타일들을 커버하는 상기 최소 직사각형 영역의 높이를 특정하는, 상기 파일에서의 타일 세트 그룹 엔트리를 생성하기 위한 수단을 포함하는, 비디오 데이터의 저장을 위한 파일을 생성하기 위한 디바이스.
  28. 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하기 위한 디바이스로서,
    파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 획득하기 위한 수단으로서, 상기 NAL 유닛 맵 엔트리 박스는 비트스트림의 NAL 유닛들을 타일 세트와 연관시키고, 상기 비트스트림은 상기 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함하고, 상기 비디오 데이터의 상기 픽처들은 현재의 픽처를 포함하고, 상기 현재의 픽처는 복수의 타일들로 파티셔닝되고, 상기 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역이고, 상기 타일 세트는 상기 현재의 픽처가 파티셔닝되는 상기 복수의 타일들 중의 2 개 이상의 타일들을 포함하고, 상기 타일 세트에서의 상기 타일들에 의해 커버된 상기 현재의 픽처의 영역은 형상에 있어서 직사각형이 아닌, 상기 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 획득하기 위한 수단;
    상기 파일에서의 타일 세트 그룹 엔트리를 획득하기 위한 수단으로서,
    상기 타일 세트 그룹 엔트리는 상기 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함하고,
    상기 타일 세트 그룹 엔트리는 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 포함하고,
    상기 수평 오프셋 신택스 엘리먼트는 상기 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정하고,
    상기 수직 오프셋 신택스 엘리먼트는 상기 타일 세트에서의 타일들을 커버하는 상기 최소 직사각형 영역의 상기 상단-좌측 픽셀의 수직 오프셋을 특정하고,
    상기 폭 신택스 엘리먼트는 상기 타일 세트에서의 상기 타일들을 커버하는 상기 최소 직사각형 영역의 폭을 특정하고, 그리고
    상기 높이 신택스 엘리먼트는 상기 타일 세트에서의 상기 타일들을 커버하는 상기 최소 직사각형 영역의 높이를 특정하는, 상기 파일에서의 타일 세트 그룹 엔트리를 획득하기 위한 수단; 및
    상기 수평 오프셋 신택스 엘리먼트, 상기 수직 오프셋 신택스 엘리먼트, 상기 폭 신택스 엘리먼트, 및 상기 높이 신택스 엘리먼트에 기초하여 상기 타일 세트를 프로세싱하기 위한 수단을 포함하는, 인코딩된 비디오 데이터를 저장하는 파일을 프로세싱하기 위한 디바이스.
  29. 명령들을 저장한 컴퓨터-판독가능 데이터 저장 매체로서,
    상기 명령들은, 실행될 경우, 디바이스가,
    비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 수신하는 것으로서, 상기 비디오 데이터의 상기 픽처들은 현재의 픽처를 포함하고, 상기 현재의 픽처는 복수의 타일들로 파티셔닝되고, 상기 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역인, 상기 비트스트림을 수신하고;
    파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 생성하는 것으로서, 상기 NAL 유닛 맵 엔트리 박스는 상기 비트스트림의 NAL 유닛들을 타일 세트와 연관시키고, 상기 타일 세트는 상기 현재의 픽처가 파티셔닝되는 상기 복수의 타일들 중의 2 개 이상의 타일들을 포함하고, 상기 타일 세트에서의 상기 타일들에 의해 커버된 상기 현재의 픽처의 영역은 형상에 있어서 직사각형이 아닌, 상기 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 생성하고; 그리고
    상기 파일에서의 타일 세트 그룹 엔트리를 생성하는 것으로서,
    상기 타일 세트 그룹 엔트리는 상기 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함하고,
    상기 타일 세트 그룹 엔트리는 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 포함하고,
    상기 수평 오프셋 신택스 엘리먼트는 상기 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정하고,
    상기 수직 오프셋 신택스 엘리먼트는 상기 타일 세트에서의 타일들을 커버하는 상기 최소 직사각형 영역의 상기 상단-좌측 픽셀의 수직 오프셋을 특정하고,
    상기 폭 신택스 엘리먼트는 상기 타일 세트에서의 상기 타일들을 커버하는 상기 최소 직사각형 영역의 폭을 특정하고, 그리고
    상기 높이 신택스 엘리먼트는 상기 타일 세트에서의 상기 타일들을 커버하는 상기 최소 직사각형 영역의 높이를 특정하는, 상기 파일에서의 타일 세트 그룹 엔트리를 생성하도록 구성하는, 컴퓨터-판독가능 데이터 저장 매체.
  30. 명령들을 저장한 컴퓨터-판독가능 데이터 저장 매체로서,
    상기 명령들은, 실행될 경우, 디바이스가,
    파일 프로세싱 디바이스에 의해, 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 획득하는 것으로서, 상기 NAL 유닛 맵 엔트리 박스는 비트스트림의 NAL 유닛들을 타일 세트와 연관시키고, 상기 비트스트림은 상기 비디오 데이터의 인코딩된 픽처들의 표현을 형성하는 비트들의 시퀀스를 포함하고, 상기 비디오 데이터의 상기 픽처들은 현재의 픽처를 포함하고, 상기 현재의 픽처는 복수의 타일들로 파티셔닝되고, 상기 복수의 타일들의 각각의 개개의 타일은 개개의 직사각형 영역이고, 상기 타일 세트는 상기 현재의 픽처가 파티셔닝되는 상기 복수의 타일들 중의 2 개 이상의 타일들을 포함하고, 상기 타일 세트에서의 상기 타일들에 의해 커버된 상기 현재의 픽처의 영역은 형상에 있어서 직사각형이 아닌, 상기 파일에서의 네트워크 추상화 계층 (NAL) 유닛 맵 엔트리 박스를 획득하고;
    상기 파일 프로세싱 디바이스에 의해, 상기 파일에서의 타일 세트 그룹 엔트리를 획득하는 것으로서,
    상기 타일 세트 그룹 엔트리는 상기 타일 세트를 식별하는 그룹 식별자 신택스 엘리먼트를 포함하고,
    상기 타일 세트 그룹 엔트리는 수평 오프셋 신택스 엘리먼트, 수직 오프셋 신택스 엘리먼트, 폭 신택스 엘리먼트, 및 높이 신택스 엘리먼트를 포함하고,
    상기 수평 오프셋 신택스 엘리먼트는 상기 타일 세트에서의 타일들을 커버하는 최소 직사각형 영역의 상단-좌측 픽셀의 수평 오프셋을 특정하고,
    상기 수직 오프셋 신택스 엘리먼트는 상기 타일 세트에서의 타일들을 커버하는 상기 최소 직사각형 영역의 상기 상단-좌측 픽셀의 수직 오프셋을 특정하고,
    상기 폭 신택스 엘리먼트는 상기 타일 세트에서의 상기 타일들을 커버하는 상기 최소 직사각형 영역의 폭을 특정하고, 그리고
    상기 높이 신택스 엘리먼트는 상기 타일 세트에서의 상기 타일들을 커버하는 상기 최소 직사각형 영역의 높이를 특정하는, 상기 파일에서의 타일 세트 그룹 엔트리를 획득하고; 그리고
    상기 수평 오프셋 신택스 엘리먼트, 상기 수직 오프셋 신택스 엘리먼트, 상기 폭 신택스 엘리먼트, 및 상기 높이 신택스 엘리먼트에 기초하여 상기 타일 세트를 프로세싱하도록 구성하는, 컴퓨터-판독가능 데이터 저장 매체.
KR1020187027899A 2016-03-30 2017-03-28 Hevc 및 l­hevc 파일 포맷들에서의 타일 그룹화에 대한 개선 KR102102554B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662315575P 2016-03-30 2016-03-30
US62/315,575 2016-03-30
US15/470,148 2017-03-27
US15/470,148 US10419768B2 (en) 2016-03-30 2017-03-27 Tile grouping in HEVC and L-HEVC file formats
PCT/US2017/024560 WO2017172783A1 (en) 2016-03-30 2017-03-28 Improvement on tile grouping in hevc and l-hevc file formats

Publications (2)

Publication Number Publication Date
KR20180127997A true KR20180127997A (ko) 2018-11-30
KR102102554B1 KR102102554B1 (ko) 2020-04-20

Family

ID=59961332

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187027899A KR102102554B1 (ko) 2016-03-30 2017-03-28 Hevc 및 l­hevc 파일 포맷들에서의 타일 그룹화에 대한 개선

Country Status (10)

Country Link
US (1) US10419768B2 (ko)
EP (1) EP3437327B1 (ko)
JP (1) JP6690010B2 (ko)
KR (1) KR102102554B1 (ko)
CN (1) CN108886642B (ko)
BR (1) BR112018069708A2 (ko)
CA (1) CA3015942C (ko)
ES (1) ES2781307T3 (ko)
TW (1) TWI699994B (ko)
WO (1) WO2017172783A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210002601A (ko) * 2018-12-20 2021-01-08 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) 비디오 인코딩 및 디코딩에서의 개선된 타일 어드레스 시그널링
WO2022131801A1 (ko) * 2020-12-15 2022-06-23 엘지전자 주식회사 레이어 정보를 포함하는 미디어 파일 생성/수신 방법, 장치 및 미디어 파일 전송 방법
WO2022139331A1 (ko) * 2020-12-21 2022-06-30 엘지전자 주식회사 미디어 파일 처리 방법 및 그 장치

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10148969B2 (en) * 2015-02-11 2018-12-04 Qualcomm Incorporated Of sample entry and operation point signalling in a layered video file format
US10535114B2 (en) * 2015-08-18 2020-01-14 Nvidia Corporation Controlling multi-pass rendering sequences in a cache tiling architecture
GB2550604A (en) * 2016-05-24 2017-11-29 Canon Kk Method, device, and computer program for encapsulating and parsing timed media data
US11166013B2 (en) * 2017-10-09 2021-11-02 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
CN117692661A (zh) 2018-04-03 2024-03-12 华为技术有限公司 基于子图像码流视角相关视频编码中的误差抑制的文件格式指示
US10607375B2 (en) * 2018-06-03 2020-03-31 Apple Inc. Encoding techniques
WO2019243539A1 (en) * 2018-06-21 2019-12-26 Telefonaktiebolaget Lm Ericsson (Publ) Tile partitions with sub-tiles in video coding
WO2019243534A1 (en) 2018-06-21 2019-12-26 Telefonaktiebolaget Lm Ericsson (Publ) Tile shuffling for 360 degree video decoding
GB2575074B (en) 2018-06-27 2022-09-28 Canon Kk Encapsulating video content with an indication of whether a group of tracks collectively represents a full frame or a part of a frame
RU2767601C1 (ru) * 2018-07-02 2022-03-17 Нокиа Текнолоджиз Ой Способ и устройство для связанной с тайлом адресации при кодировании видеосигнала
MX2021002979A (es) * 2018-09-14 2021-05-14 Vid Scale Inc Métodos y aparatos para regiones de cuadrícula flexible.
EP3850852A4 (en) * 2018-09-14 2021-11-17 Huawei Technologies Co., Ltd. TILE-BASED ADDRESSING IN VIDEO ENCODING
CN112823525A (zh) 2018-10-02 2021-05-18 瑞典爱立信有限公司 基于图块组id对图片进行编码和解码
CN113170201B (zh) * 2018-11-30 2024-04-12 夏普株式会社 用于对视频数据进行解码的方法和设备
WO2020117919A1 (en) * 2018-12-04 2020-06-11 Vid Scale, Inc. Tile group partitioning
JP7201820B2 (ja) 2018-12-17 2023-01-10 華為技術有限公司 ビデオコーディング方法及び機器
US11140403B2 (en) 2018-12-20 2021-10-05 Tencent America LLC Identifying tile from network abstraction unit header
US11477445B2 (en) * 2018-12-28 2022-10-18 Hfi Innovation Inc. Methods and apparatuses of video data coding with tile grouping
US20200236377A1 (en) * 2019-01-22 2020-07-23 Tencent America LLC Method for tile group identification
WO2020185145A1 (en) * 2019-03-08 2020-09-17 Telefonaktiebolaget Lm Ericsson (Publ) Methods providing encoding/decoding of dependent/independent partitions and related devices
KR102592924B1 (ko) 2019-03-11 2023-10-24 텐센트 아메리카 엘엘씨 비디오 비트스트림에서의 적응적 픽처 크기의 시그널링
EP3939278A4 (en) * 2019-03-11 2023-03-22 Tencent America LLC TILE AND SUB-DIVISION
US20220239947A1 (en) * 2019-05-23 2022-07-28 Vid Scale, Inc. Video-based point cloud streams
KR20200145742A (ko) 2019-06-20 2020-12-30 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
US20220360787A1 (en) * 2019-06-21 2022-11-10 Telefonaktiebolaget Lm Ericsson (Publ) Video coding layer up-switching indication
WO2021002142A1 (ja) * 2019-07-04 2021-01-07 ソニー株式会社 情報処理装置、情報処理方法、再生処理装置及び再生処理方法
US11363307B2 (en) * 2019-08-08 2022-06-14 Hfi Innovation Inc. Video coding with subpictures
CN114747213A (zh) * 2019-09-27 2022-07-12 Sk电信有限公司 用于获取关于从画面拆分的子单元的信息的方法和装置
AU2021226398A1 (en) * 2020-02-28 2022-09-29 Huawei Technologies Co., Ltd. A decoder and corresponding methods to signal picture partitioning information for slices
EP3972269A1 (en) * 2020-09-17 2022-03-23 Lemon Inc. Subpicture entity groups in video coding
US20220086457A1 (en) 2020-09-17 2022-03-17 Lemon Inc. Subpicture track referencing and processing
US20220086497A1 (en) * 2020-09-17 2022-03-17 Lemon Inc. Subpicture entity group signaling in coded video
US11683529B2 (en) 2020-09-17 2023-06-20 Lemon Inc. Operational point sample group in coded video

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2677933A1 (en) * 2007-02-14 2008-08-21 Photint Venture Group Inc. Fuzzy protection of visual content
US9635369B2 (en) * 2012-07-02 2017-04-25 Qualcomm Incorporated Video parameter set including HRD parameters
JP6214235B2 (ja) * 2012-07-02 2017-10-18 キヤノン株式会社 ファイル生成方法、ファイル生成装置、及びプログラム
GB2509953B (en) * 2013-01-18 2015-05-20 Canon Kk Method of displaying a region of interest in a video stream
US9749627B2 (en) 2013-04-08 2017-08-29 Microsoft Technology Licensing, Llc Control data for motion-constrained tile set
KR102296853B1 (ko) * 2013-07-12 2021-09-01 소니그룹주식회사 화상 복호 장치 및 방법
US20160156915A1 (en) * 2013-07-18 2016-06-02 Samsung Electronics Co., Ltd. Video encoding method and apparatus and video decoding method and apparatus using video format parameter delivery
JP6572222B2 (ja) * 2014-01-07 2019-09-04 キヤノン株式会社 メディアファイルの生成方法、生成装置、及びプログラム
US9998765B2 (en) * 2014-07-16 2018-06-12 Qualcomm Incorporated Transport stream for carriage of video coding extensions

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Study of ISO/IEC DIS 14496-15 4th edition", no. N15640, 7 December 2015. *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210002601A (ko) * 2018-12-20 2021-01-08 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) 비디오 인코딩 및 디코딩에서의 개선된 타일 어드레스 시그널링
WO2022131801A1 (ko) * 2020-12-15 2022-06-23 엘지전자 주식회사 레이어 정보를 포함하는 미디어 파일 생성/수신 방법, 장치 및 미디어 파일 전송 방법
WO2022139331A1 (ko) * 2020-12-21 2022-06-30 엘지전자 주식회사 미디어 파일 처리 방법 및 그 장치

Also Published As

Publication number Publication date
US10419768B2 (en) 2019-09-17
CA3015942A1 (en) 2017-10-05
WO2017172783A1 (en) 2017-10-05
BR112018069708A2 (pt) 2019-02-05
EP3437327A1 (en) 2019-02-06
TWI699994B (zh) 2020-07-21
US20170289556A1 (en) 2017-10-05
TW201737711A (zh) 2017-10-16
EP3437327B1 (en) 2019-12-25
ES2781307T3 (es) 2020-09-01
JP6690010B2 (ja) 2020-04-28
CN108886642B (zh) 2021-05-14
JP2019511173A (ja) 2019-04-18
CA3015942C (en) 2021-06-15
KR102102554B1 (ko) 2020-04-20
CN108886642A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
KR102102554B1 (ko) Hevc 및 l­hevc 파일 포맷들에서의 타일 그룹화에 대한 개선
KR102485792B1 (ko) Hevc 및 l―hevc 파일 포맷들에서의 타일 그룹화 및 샘플들의 맵핑
US11115669B2 (en) End of sequence and end of bitstream NAL units in separate file tracks
AU2014340046B2 (en) Multi-layer video file format designs
CA2973376A1 (en) Design of sample entry and operation point signalling in a layered video file format
KR20170117074A (ko) 파일 포맷들에서의 샘플 그룹핑 시그널링

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant