KR102170550B1 - 미디어 콘텐츠를 인코딩하는 방법, 장치 및 컴퓨터 프로그램 - Google Patents

미디어 콘텐츠를 인코딩하는 방법, 장치 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR102170550B1
KR102170550B1 KR1020187037318A KR20187037318A KR102170550B1 KR 102170550 B1 KR102170550 B1 KR 102170550B1 KR 1020187037318 A KR1020187037318 A KR 1020187037318A KR 20187037318 A KR20187037318 A KR 20187037318A KR 102170550 B1 KR102170550 B1 KR 102170550B1
Authority
KR
South Korea
Prior art keywords
viewport
picture
layer
sample
video
Prior art date
Application number
KR1020187037318A
Other languages
English (en)
Other versions
KR20190009378A (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 KR20190009378A publication Critical patent/KR20190009378A/ko
Application granted granted Critical
Publication of KR102170550B1 publication Critical patent/KR102170550B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • H04L65/4084
    • H04L65/4092
    • H04L65/607
    • H04L65/608
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234318Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into objects, e.g. MPEG-4 objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • 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/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • H04N5/23238
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0127Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level by changing the field or frame frequency of the incoming video signal, e.g. frame rate converter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 출원은 방법 및 방법을 구현하는 기술적 장비에 관한 것이다. 방법은 이용 가능한 미디어 콘텐츠의 정보를 매니페스트에 포함시키는 단계와, 360도 비디오의 일부인 뷰포트 또는 공간 영역 중 하나를 매니페스트에 표시하는 단계와, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값을 매니페스트에 표시하는 단계를 포함한다. 다른 양태에 따르면, 방법은 뷰포트 또는 공간 영역을 매니페스트로부터 파싱하는 단계와, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값을 매니페스트로부터 파싱하는 단계와, 뷰포트 또는 공간 영역이 디스플레이하기에 적합하다고 결정하는 단계와, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값에 기초하여 매니페스트로부터 표현을 선택하는 단계를 포함한다.

Description

미디어 콘텐츠를 인코딩하는 방법, 장치 및 컴퓨터 프로그램
본 솔루션은 일반적으로 미디어 콘텐츠를 인코딩하는 것에 관한 것이다. 특히 본 솔루션은 뷰포트 적응형 스트리밍에 관련된다.
360도 비디오를 위한 종래의 스트리밍 배열에서, 풀 360도 비디오가 전송된다. 예를 들어, 전체 등정방형 파노라마가 전송된다.
그러나, 많은 디스플레이 환경에서, 부분 픽처만이 디스플레이될 필요가 있고, 나머지 픽처는 디코딩될 필요는 있지만 디스플레이되지는 않는다. 이러한 디스플레이 상황은, 예를 들어, 약 100도의 시야를 갖는 전형적인 헤드 장착 디스플레이(head-mounted displays: HMD)에 있어서 HMD가 소비하는 입력 비디오는 전체 360도를 커버하는 경우를 포함한다. 전형적인 평면 패널 시청 환경은 최대 40도의 시야를 디스플레이한다. 그러한 디스플레이 상에 넓은 시야(wide-FOV)의 콘텐츠(예를 들어, 어안)를 디스플레이할 때, 전체 픽처보다는 공간 서브세트를 디스플레이하는 것이 바람직할 수 있다.
통상적으로, 코딩된 픽처는 강한 공간 의존성(예를 들어, 인트라 예측), 엔트로피 코딩 의존성, 인루프 필터링 의존성 및 시공간 의존성(픽처의 상이한 부분을 가리키는 움직임 벡터)을 갖기 때문에 완전히 디코딩될 필요가 있다. 움직임 제약된 타일 세트는 다른 타일 세트와 독립적으로 타일 세트의 디코딩이 가능할 수 있지만, 코딩된 타일 세트가 비트스트림 내의 다른 코딩된 데이터와 인터리빙될 수 있고, 파라미터 세트 및 헤더(예를 들어, 슬라이스 세그먼트 헤더)가 전체 비트스트림에 대한 것이기 때문에, 다른 타일의 디코딩은 생략하고, 특정 움직임 제약된 타일 세트를 디코딩하기 위한 전용 디코딩 프로세스가 필요하다.
VR 비디오의 스트리밍 비트레이트를 줄이기 위해, 현재 뷰 배향을 커버하는 360도 비디오 콘텐츠의 서브세트는 최상의 품질/해상도로 전송하는 반면, 360도 비디오의 나머지는 낮은 품질/해상도로 전송하는 것이 최근의 추세이다.
현재 뷰의 방향(예를 들어, 헤드 장착 디스플레이로 시청할 때의 머리 배향)에 가장 적합한 표현을 자동으로 선택할 수 있도록 하기 위해, 스트리밍 매니페스트는 적절한 시그널링을 포함해야 한다.
현재 그러한 시그널링을 행하는 방법을 구현하는 개선된 방법 및 기술 장비가 발명되어 왔다. 발명의 다양한 양태는 방법, 장치 및 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 매체를 포함한다.
제 1 양태에 따르면, 방법은, 이용 가능한 미디어 콘텐츠의 정보를 매니페스트에 포함시키는 단계와, 뷰포트 또는 공간 영역 중 하나를 매니페스트에 표시하는 단계와, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값을 매니페스트에 표시하는 단계를 포함한다.
일 실시예에서, 뷰포트는 구 좌표계 상의 2개의 각도, 수평 시야 및 수직 시야로 표시된다.
일 실시예에서, 공간 영역은 위치, 폭 및 높이로 표시된다.
일 실시예에서, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값은 픽처 또는 비디오 품질의 순위를 표시하는 품질 순위이다.
제 2 양태에 따르면, 방법은, 뷰포트 또는 공간 영역 중 하나를 매니페스트로부터 파싱하는 단계와, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값을 매니페스트로부터 파싱하는 단계와, 뷰포트 또는 공간 영역이 디스플레이하기에 적합하다고 결정하는 단계와, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값에 기초하여 매니페스트로부터 표현을 선택하는 단계를 포함하는, 이용 가능한 미디어 콘텐츠의 정보를 매니페스트로부터 파싱하는 단계를 포함한다.
일 실시예에서, 뷰포트는 구 좌표계 상의 2개의 각도, 수평 시야 및 수직 시야로 표시된다.
일 실시예에서, 공간 영역은 위치, 폭 및 높이로 표시된다.
일 실시예에서, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값은 픽처 또는 비디오 품질의 순위를 표시하는 품질 순위이다.
일 실시예에서, 방법은, 제 1 표현 및 제 2 표현의 정보를 매니페스트로부터 파싱하는 단계와, 제 1 표현에 대한 뷰포트 또는 공간 영역을 매니페스트로부터 파싱하고 제 2 표현에 대한 뷰포트 또는 공간 영역을 매니페스트로부터 파싱하는 단계와, 제 1 표현의 뷰포트 또는 공간 영역의 품질을 나타내는 제 1 값 및 제 2 표현의 뷰포트 또는 공간 영역의 품질을 나타내는 제 2 값을 매니페스트로부터 파싱하는 단계와, 제 1 값 및 제 2 값에 기초하여 제 1 표현 또는 제 2 표현 중 하나를 선택하는 단계를 더 포함한다.
일 실시예에서, 방법은, 제 1 표현 및 제 2 표현의 정보를 매니페스트로부터 파싱하는 단계와, 제 1 표현에 대한 제 1 뷰포트 또는 제 1 표현에 대한 제 1 공간 영역 중 하나에 관한 제 1 정보를 매니페스트로부터 파싱하는 단계와, 제 2 표현에 대한 제 2 뷰포트 또는 제 2 표현에 대한 제 2 공간 영역 중 하나에 관한 제 2 정보를 매니페스트로부터 파싱하는 단계와, 제 1 정보 및 제 2 정보에 기초하여, 제 1 뷰포트, 제 1 공간 영역, 제 2 뷰포트, 제 2 공간 영역 중 어느 것이 디스플레이하기에 적합한지를 결정하는 단계와, 결정에 기초하여 대응하는 표현을 선택하는 단계를 포함한다.
제 3 양태에 따르면, 장치는 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하고, 적어도 하나의 메모리는, 적어도 하나의 프로세서에 의해 실행될 때, 장치로 하여금 이용 가능한 미디어 콘텐츠의 정보를 매니페스트에 포함시키고, 뷰포트 또는 공간 영역 중 하나를 매니페스트에 표시하고, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값을 매니페스트에 표시하도록 하는 코드를 저장한다.
일 실시예에서, 뷰포트는 구 좌표계 상의 2개의 각도, 수평 시야 및 수직 시야로 표시된다.
일 실시예에서, 공간 영역은 위치, 폭 및 높이로 표시된다.
일 실시예에서, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값은 픽처 또는 비디오 품질의 순위를 표시하는 품질 순위이다.
제 4 양태에 따르면, 장치는 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하고, 적어도 하나의 메모리는, 적어도 하나의 프로세서에 의해 실행될 때, 장치로 하여금 이용 가능한 미디어 콘텐츠의 정보를 매니페스트로부터 파싱하고, 뷰포트 또는 공간 영역 중 하나를 매니페스트로부터 파싱하고, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값을 매니페스트로부터 파싱하고, 뷰포트 또는 공간 영역이 디스플레이하기에 적합하다고 결정하고, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값에 기초하여 매니페스트로부터 표현을 선택하도록 하는 코드를 저장한다.
일 실시예에서, 뷰포트는 구 좌표계 상의 2개의 각도, 수평 시야 및 수직 시야로 표시된다.
일 실시예에서, 공간 영역은 위치, 폭 및 높이로 표시된다.
일 실시예에서, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값은 픽처 또는 비디오 품질의 순위를 표시하는 품질 순위이다.
일 실시예에서, 장치는, 제 1 표현 및 제 2 표현의 정보를 매니페스트로부터 파싱하고, 제 1 표현에 대한 뷰포트 또는 공간 영역을 매니페스트로부터 파싱하고 제 2 표현에 대한 뷰포트 또는 공간 영역을 매니페스트로부터 파싱하고, 제 1 표현의 뷰포트 또는 공간 영역의 품질을 나타내는 제 1 값 및 제 2 표현의 뷰포트 또는 공간 영역의 품질을 나타내는 제 2 값을 매니페스트로부터 파싱하고, 제 1 값 및 제 2 값에 기초하여 제 1 표현 또는 제 2 표현 중 하나를 선택하도록 더 구성된다.
일 실시예에서, 장치는, 제 1 표현 및 제 2 표현의 정보를 매니페스트로부터 파싱하고, 제 1 표현에 대한 제 1 뷰포트 또는 제 1 표현에 대한 제 1 공간 영역 중 하나에 관한 제 1 정보를 매니페스트로부터 파싱하고, 제 2 표현에 대한 제 2 뷰포트 또는 제 2 표현에 대한 제 2 공간 영역 중 하나에 관한 제 2 정보를 매니페스트로부터 파싱하고, 제 1 정보 및 제 2 정보에 기초하여, 제 1 뷰포트, 제 1 공간 영역, 제 2 뷰포트, 제 2 공간 영역 중 어느 것이 디스플레이하기에 적합한지를 결정하고, 결정에 기초하여 대응하는 표현을 선택하도록 더 구성된다.
제 5 양태에 따르면, 컴퓨터 판독가능 저장 매체는, 장치에 이용하기 위하여, 프로세서에 의해 실행될 때, 이용 가능한 미디어 콘텐츠의 정보를 매니페스트에 포함시키고, 뷰포트 또는 공간 영역 중 하나를 매니페스트에 표시하고, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값을 매니페스트에 표시하도록 하는 코드를 저장한다.
제 6 양태에 따르면, 컴퓨터 판독가능 저장 매체는, 장치에 이용하기 위하여, 프로세서에 의해 실행될 때, 이용 가능한 미디어 콘텐츠의 정보를 매니페스트로부터 파싱하고, 뷰포트 또는 공간 영역 중 어느 하나를 매니페스트로부터 파싱하고, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값을 매니페스트로부터 파싱하고, 뷰포트 또는 공간 영역이 디스플레이하기에 적합하다고 결정하고, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값에 기초하여 매니페스트로부터 표현을 선택하도록 하는 코드를 저장한다.
이하에서는, 본 발명의 다양한 실시예를 첨부된 도면을 참조하여 보다 상세하게 설명할 것이다.
도 1은 일 실시예에 따른 장치를 간략화된 블록도로서 도시한다.
도 2는 일 실시예에 따른 장치의 레이아웃을 도시한다.
도 3은 일 실시예에 따른 시스템의 구성을 도시한다.
도 4는 실시예에 따른 비디오 인코더의 블록도를 도시한다.
도 5는 좌표계에 대한 요(Yaw)와 피치(Pitch)의 관계의 예를 도시한다.
도 6은 뷰포트의 하나의 가능한 선택 및 뷰포트에 대한 하나의 가능한 요 및 피치 각도의 정의의 예를 도시한다.
도 7은 뷰포트의 예를 도시한다.
도 8은 뷰포트의 다른 예를 도시한다.
도 9는 일 실시예에 따른 방법을 도시하는 흐름도이다.
도 10은 다른 실시예에 따른 방법을 도시하는 흐름도이다.
이하에서는 비디오 인코딩/디코딩 및 스트리밍을 위해 인코딩된 비디오를 제공하고 및/또는 스트리밍된 인코딩된 비디오를 수신하기에 적합한 장치 및 가능한 메커니즘을 보다 상세하게 설명한다. 이와 관련하여, 먼저 도 1 및 도 2를 참조하면, 도 1은 예시적 실시예에 따른 비디오 코딩 시스템의 블록도를 예시적인 장치 또는 전자 디바이스(50)의 개략적인 블록도로서 도시하며, 본 발명의 일 실시예에 따른 코덱을 포함할 수 있다. 도 2는 예시적 실시예에 따른 장치의 레이아웃을 도시한다. 도 1 및 도 2의 요소에 대해서는 후술한다.
전자 디바이스(50)는, 예를 들어, 이동 단말기, 무선 통신 시스템의 사용자 장비, 스마트폰, 카메라 디바이스, 컴퓨터, 또는 헤드 장착 디스플레이 디바이스일 수 있다. 그러나, 발명의 실시예는 인코딩 및 디코딩 또는 비디오 이미지의 인코딩 및 디코딩을 요구할 수 있는 임의의 전자 디바이스 또는 장치 내에서 구현될 수 있음이 인식될 것이다. 비디오 인코딩은 비디오 디코딩을 수행하는 전자 디바이스와 상이한 타입 및 상이한 전자 디바이스로 수행될 수 있음이 인식될 것이다. 또한, 장치의 컴포넌트가 다를 수 있음, 예를 들어, 비디오 인코딩을 위한 장치는 카메라를 포함할 수 있지만 디스플레이를 포함하지 않을 수 있고, 비디오 디코딩을 위한 장치는 디스플레이를 포함할 수 있지만 카메라를 포함하지 않을 수 있음이 인식될 것이다.
장치(50)는 디바이스를 포함하고 보호하기 위한 하우징(30)을 포함할 수 있다. 장치(50)는 액정 디스플레이의 형태인 디스플레이(32)를 더 포함할 수 있다. 발명의 다른 실시예에서, 디스플레이는 이미지 또는 비디오를 디스플레이하기에 적합한 임의의 적합한 디스플레이 기술일 수 있다. 장치(50)는 키패드(34)를 더 포함할 수 있다. 발명의 다른 실시예에서, 임의의 적합한 데이터 또는 사용자 인터페이스 메커니즘이 이용될 수 있다. 예를 들어, 사용자 인터페이스는 터치 감응 디스플레이의 일부로서 가상 키보드 또는 데이터 입력 시스템으로서 구현될 수 있다.
장치는 마이크(36) 또는 디지털 신호 입력부 또는 아날로그 신호 입력부일 수 있는 임의의 적합한 오디오 입력부를 포함할 수 있다. 장치(50)는 발명의 실시예에서 수화기(earpiece)(38), 스피커, 또는 아날로그 오디오 또는 디지털 오디오 출력 연결부 중 임의의 것일 수 있는 오디오 출력 디바이스를 더 포함할 수 있다. 또한, 장치(50)는 배터리(40)(또는 본 발명의 다른 실시예에서는 태양광 전지, 연료 전지 또는 태엽 발전기와 같은 임의의 적합한 모바일 에너지 디바이스에 의해 동력을 공급 받을 수 있음)를 포함할 수 있다. 장치는 이미지 및/또는 비디오를 기록 또는 캡처할 수 있는 카메라(42)를 더 포함할 수 있다. 일부 실시예에서, 장치(50)는 하나 이상의 카메라를 포함할 수 있거나, 또는 하나의 카메라 센서가 광학 장치와 통합되어 카메라 센서로 하나 이상의 뷰의 캡처할 수 있다. 장치(50)는 다른 디바이스와 근거리 가시선 통신(short range line of sight communication)을 위한 적외선 포트를 더 포함할 수 있다. 다른 실시예에서, 장치(50)는, 예를 들어, 블루투스 무선 접속 또는 USB(범용 직렬 버스)/파이어 와이어 유선 접속과 같은 임의의 적합한 근거리 통신 방안을 더 포함할 수 있다.
장치(50)는 장치(50)를 제어하기 위한 제어기(56) 또는 프로세서를 포함할 수 있다. 제어기(56)는 발명의 실시예에서 이미지 및 오디오 데이터의 형태로 양 데이터를 모두 저장하고 및/또는 제어기(56)에서의 구현을 위한 명령어도 저장할 수 있는 메모리(58)에 접속될 수 있다. 제어기(56)는 오디오 및/또는 비디오 데이터의 코딩 및 디코딩을 수행하거나 또는 제어기에 의해 수행되는 코딩 및 디코딩을 보조하는데 적합한 코덱 회로(54)에 추가로 접속될 수 있다.
장치(50)는 사용자 정보를 제공하고 네트워크에서 사용자의 인증 및 허가를 위한 인증 정보를 제공하기에 적합한, 예를 들어, UICC(Universal Integrated Circuit Card) 및 UICC 판독기와 같은 카드 판독기(48) 및 스마트 카드(46)를 더 포함할 수 있다.
장치(50)는, 제어기에 접속되고, 예를 들어, 셀룰러 통신 네트워크, 무선 통신 시스템 또는 무선 로컬 영역 네트워크와 통신하기 위한 무선 통신 신호를 생성하기에 적합한 무선 인터페이스 회로(52)를 포함할 수 있다. 장치(50)는 무선 인터페이스 회로(52)에서 생성된 무선 주파수 신호를 다른 장치에 송신하고 다른 장치로부터 무선 주파수 신호를 수신하기 위해 무선 인터페이스 회로(52)에 접속된 안테나(44)를 더 포함할 수 있다.
장치(50)는 처리를 위해 코덱(54) 또는 제어기에 이후에 전달되는 개별 프레임을 기록 또는 검출할 수 있는 카메라를 포함할 수 있다. 장치는 전송 및/또는 저장 전에 다른 디바이스로부터 처리를 위해 비디오 이미지 데이터를 수신할 수 있다. 또한, 장치(50)는 코딩/디코딩을 위해 이미지를 무선으로 또는 유선 접속으로 수신할 수 있다.
장치(50)는 하나 이상의 카메라(42) 및/또는 하나 이상의 카메라와 통합된 광학 장치를 이용하여 360도 파노라마 시야와 같은 넓은 시야를 갖는 이미지 및/또는 비디오를 캡처할 수 있다. 360도 파노라마 비디오 콘텐츠는 i) 하나 이상의 카메라 센서의 픽처를 하나의 360도 파노라마 이미지에 접합하는 방법, 및 ii) 반사 굴절(catadioptric) 시스템과 같은 광학 배열을 갖는 단일 이미지 센서를 이용하는 방법을 포함하는 다양한 수단으로 얻을 수 있으나, 이에 한정되는 것은 아니다. 접합은 2개 이상의 픽처 단독의 것보다 더 넓은 시야를 갖는 다른 픽처를 형성하기 위해, 및/또는 2개 이상의 픽처 단독의 것과는 상이한 시야 방향 또는 배향을 갖는 다른 픽처를 형성하기 위해 상이한 카메라 센서의 2개 이상의 픽처를 결합하는 것으로 정의될 수 있다. 하나 이상의 카메라 센서는 어안 렌즈와 같은 넓은 시야(field-of-view) 렌즈와 통합될 수 있다. 일부 경우에, 접합은 인코딩, 즉, 파노라마 이미지 또는 비디오의 인코딩 이전에 수행될 수 있지만, 다른 경우에는 카메라 뷰가 인코딩 및 디코딩될 수 있고, 접합 등은 디코딩 후, 예를 들어, 헤드 장착 디스플레이에 디스플레이를 위해 연결될 때 수행될 수 있다. 어안 렌즈는 매우 넓은 시야(보통 180도 이상)를 커버한다. 반사 굴절 시스템은 기존 렌즈와 거울로 구성될 수 있다. 거울은 상이한 볼록 형상, 예를 들어, 파라볼라형, 판형 또는 구형을 가질 수 있다. 렌즈는 거울을 통해 반사된 광선을 캡처하여 넓은 시야를 갖는 이미지를 제공한다.
장치(50)는 헤드 장착 디스플레이일 수 있거나, 또는 장치의 디스플레이는 헤드 장착 디스플레이용 디스플레이 배열의 일부로 사용되거나(예를 들어, 스마트폰 장치(50)는 소스로서 스마트폰 디스플레이를 이용하는 헤드 장착 광학 배열에 부착될 수 있다), 또는 장치는 헤드 장착 디스플레이에 동작 가능하게 접속될 수 있다(예를 들어, 컴퓨터 장치(50)는 디코딩되고 잠재적으로 후처리된 픽처를 컴퓨터 장치에 접속된 헤드 장착 디스플레이에 출력할 수 있음). 헤드 장착 디스플레이는 사용자의 눈앞에 나란히 2개 시점의 영상 또는 비디오를 디스플레이하는 것에 기초할 수 있다. 헤드 장착 디스플레이는, 예를 들어, 움직임 센서 및/또는 배향 센서를 통해 사용자의 머리 배향을 감지할 수 있다. 헤드 장착 디스플레이는 각 눈에 대해 약 90도 정도의 비교적 넓은 시야를 보여줄 수 있다. 헤드 장착 디스플레이에 넓은 시야(field-of-view, FOV) 또는 파노라마의 픽처 또는 비디오를 디스플레이할 때, 장치(50) 및/또는 헤드 장착 디스플레이는 머리 배향 추적을 이용하여 머리 배향에 매칭하는 디스플레이될 픽처 또는 비디오가 되는 디코딩된 넓은 시야 또는 파노라마의 픽처 또는 비디오의 일부를 선택한다.
일부 경우에, 디스플레이는 오른쪽 눈과 왼쪽 눈에 다른 픽처가 디스플레이되도록 하는 편광 또는 셔터 글래스를 이용하여 3차원(3D) 경험을 제공할 수 있다. 일부 경우에, 디스플레이는 2뷰(two-view) 오토스테레오스코픽(auto-stereoscopic) 디스플레이일 수 있으며, 특히 소형의 핸드헬드 장치에 이용될 수 있다. 이러한 타입의 디스플레이는 스테레오스코픽 콘텐츠를 디스플레이할 수 있지만, 사용자가 시야의 위치를 선택할 수 있다면 보다 몰입된 경험을 제공할 수 있다. 스마트폰, 컴퓨터, 텔레비전 세트 또는 평면 패널 디스플레이와 같은 장치(50)는 사용자 추적, 머리 추적 및/또는 시선 추적 수단을 추가로 포함하거나 동작 가능하게 접속될 수 있다. 사용자, 머리 및/또는 시선 추적 수단은 디스플레이되는 뷰 또는 디스플레이되는 와이드 FOV 또는 파노라마의 사진 또는 비디오의 일부를 쌍방향으로 선택하는데 이용될 수 있다. 따라서, 3D 몰입 경험이 향상된다. 사용자, 머리 및/또는 시선 추적 수단은 스테레오스코픽 디스플레이에 대해 전술한 것과 유사하게 종래의 2차원 모노스코픽(monoscopic) 디스플레이에 추가적으로 또는 대안적으로 이용될 수 있다는 것을 이해해야 한다.
가상 현실(virtual reality: VR) 투영(경우에 따라, 간단히 투영이라고 함)은 하나의 관측점을 나타내는 무지향성 비주얼 데이터의 2차원 표현으로 정의될 수 있다. 관측점은 가상 현실 오디오/비디오 획득 또는 재생을 위한 3차원 공간에서 포인트 또는 볼륨으로 정의될 수 있다. 관측점은 일반적으로 오디오 및 비디오 트랙이 위치하는 3차원 공간에서 관찰자의 머리 위치뿐만 아니라 가상 현실 오디오/비디오 획득에 이용되는 디바이스 또는 장치의 중심점과 동일하다.
수평으로 360도 시야 및 수직으로 180도 시야를 커버하는(따라서 구형을 표현하는) 파노라마 이미지를 직사각형의 2차원 이미지 평면에 매핑하는 특정의 투영을 등정방형 투영이라고 한다. 이 경우, 수평 좌표는 경도와 동등한 것으로 간주 될 수 있고, 수직 좌표는 변환 또는 스케일링이 적용되지 않은 위도와 동등한 것으로 간주될 수 있다. 일부 경우에, 360도 수평 시야와 180도 미만의 수직 시야를 가진 파노라마 콘텐츠는 등정방형 투영의 특수한 경우로 간주될 수 있고, 여기서 구형의 극좌표 영역은 2차원 이미지 평면에 매핑되지 않는다. 등정방형 투영은 수직선의 직진성을 유지하지만 천저 및 천정 영역을 왜곡한다.
의사 원통 투영(pseudo-cylindrical projection) 계통은 평행 평행의 원통형 특성을 유지하면서 등정방형 투영과 같이 경도의 함수로 지도의 중심을 향해 자오선을 절곡하여 원통형 투영의 극좌표 영역의 왜곡을 최소화하려고 한다. 의사 원통 투영은 투영된 구를 직사각형이 아닌 연속된 2D 이미지로 표현한다. 그러나, 적절한 중앙 자오선(central meridian), 횡좌표 가상(false easting) 및 경계 클리핑(clipping boundary)을 사용하여 몇개의 영역을 결합함으로써 중단된 형태로 의사 원통 투영을 제시할 수 있다. 의사 원통 투영은 자오선의 모양에 기초하여 정현파, 타원형, 포물선, 쌍곡선, 직선 및 기타 의사 원통 투영으로 분류될 수 있다. 추가적인 특성은 자오선이 극좌표에서 포인트가 되는지 또는 직선을 따라 종결하는지(이 경우 투영은 수직으로 180도 미만을 나타냄)에 기초한다.
큐브 맵 투영 포맷(큐브 맵이라고도 함)에서, 구형 비디오는 큐브의 6개의 면(측면이라고도 함)에 투영된다. 큐브 맵은, 예를 들어, 처음에는 각 큐브 면을 표현하는 90도 뷰 절두체(frustum)에 의해 정의된 뷰를 사용하여, 시점으로부터 구형 장면을 6번 렌더링함으로써 생성될 수 있다. 큐브 측면은 동일한 프레임에 프레임으로 패킹될 수 있거나, 또는 각 큐브 측면이 개별적으로(예를 들어, 인코딩에서) 처리될 수 있다. 프레임에 큐브 측면을 배치하는 다수의 가능한 순서가 있고, 및/또는 큐브 측면은 회전되거나 미러링될 수 있다. 프레임 패킹을 위한 프레임 너비 및 높이는, 예를 들어, 3x2 큐브 측면 그리드에서 큐브 측면을 "딱" 맞추도록 선택될 수 있거나, 또는, 예를 들어, 4x3 큐브 측면 그리드에서 사용되지 않는 구성 프레임을 포함할 수 있다.
도 3을 참조하면, 본 발명의 실시예가 활용될 수 있는 시스템의 일예가 도시된다. 시스템(10)은 하나 이상의 네트워크를 통해 통신할 수 있는 복수의 통신 디바이스를 포함한다. 시스템(10)은 ((GSM(global systems for mobile communications), UMTS(universal mobile telecommunications system), CDMA(code division multiple access) 네트워크 등과 같은) 무선 셀룰러 텔레폰 네트워크, IEEE 802.x 표준 중 임의의 표준에서 정의된 것과 같은 WLAN(wireless local area network), 블루투스 개인 영역 네트워크, 이더넷 근거리 네트워크, 토큰 링 근거리 네트워크, 광역 네트워크(wide area network) 및 인터넷을 포함하지만 이에 한정되지 않는 유선 또는 무선 네트워크의 임의의 조합을 포함할 수 있다.
시스템(10)은 발명의 실시예를 구현하기에 적합한 유선 및 무선 통신 디바이스 및/또는 장치(50) 모두를 포함할 수 있다.
예를 들어, 도 3에 도시된 시스템은 모바일 텔레폰 네트워크(11) 및 인터넷(28)의 표현을 보여준다. 인터넷(28)과의 접속은 장거리 무선 접속, 근거리 무선 접속 및 전화 회선, 케이블 회선, 전력선 및 이와 유사한 통신 경로를 포함하되 이에 한정되는 것은 아닌 다양한 유선 접속을 포함할 수 있지만, 이에 한정되는 것은 아니다.
시스템(10)에서 도시된 예시적 통신 디바이스는 전자 디바이스 또는 장치(50), PDA(personal digital assistant) 및 모바일 텔레폰(14)의 결합, PDA(16), IMD(integrated messaging device)(18), 데스크톱 컴퓨터(20), 노트북 컴퓨터(22)를 포함할 수 있으나, 이에 한정되는 것은 아니다. 장치(50)는 고정형일 수 있거나, 또는 움직이고 있는 개인이 소지할 때 이동형일 수 있다. 또한, 장치(50)는 자동차, 트럭, 택시, 버스, 열차, 보트, 비행기, 자전거, 모터사이클 또는 임의의 유사하고 적합한 운송 수단을 포함하지만 이에 한정되는 것은 아닌 운송 수단에 배치될 수 있다.
또한, 실시예는, 셋톱 박스, 즉, 디스플레이 또는 무선 기능을 가질 수 있거나 또는 가질 수 없는 디지털 TV 수신기에서, 다양한 운영 시스템에서, 인코더/디코더 구현의 하드웨어 또는 소프트웨어 또는 조합을 가진 태블릿 또는 (랩탑) 개인용 컴퓨터(PC)에서, 및 하드웨어/소프트웨어 기반 코딩을 제공하는 칩셋, 프로세서, DSP(Digital Signal Processor) 및/또는 임베디드 시스템에서 구현될 수 있다.
일부 또는 다른 장치는 기지국(24)과의 무선 접속(25)을 통해 호출 및 메시지를 발신 및 수신하고 서비스 제공자와 통신할 수 있다. 기지국(24)은 모바일 텔레폰 네트워크(11)와 인터넷(28) 사이의 통신을 가능하도록 하는 네트워크 서버(26)에 접속될 수 있다. 시스템은 추가의 통신 디바이스 및 다양한 타입의 통신 디바이스를 포함할 수 있다.
통신 디바이스는 CDMA, GSM, UMTS, TDMA(time divisional multiple access), FDMA(frequency division multiple access), TCP-IP(transmission control protocol-internet protocol), SMS(short messaging service), MMS(multimedia messaging service), 이메일, IMS(instant messaging service), 블루투스, IEEE 802.11 및 임의의 유사한 무선 통신 기술을 포함하지만 이에 한정되는 것은 아닌 다양한 전송 기술을 이용하여 통신할 수 있다. 본 발명의 다양한 실시예를 구현하는 것과 관련된 통신 디바이스는 무선, 적외선, 레이저, 케이블 접속 및 임의의 적합한 접속을 포함하지만 이에 한정되는 것은 아닌 다양한 매체를 이용하여 통신할 수 있다.
전기통신 및 데이터 네트워크에서, 채널은 물리적 채널 또는 논리적 채널을 나타낼 수 있다. 물리적 채널은 유선과 같은 물리적 전송 매체를 나타낼 수 있지만, 논리적 채널은 여러 논리적 채널을 전달할 수 있는 다중화된 매체를 통한 논리적 접속을 나타낼 수 있다. 채널은 하나 이상의 발신기(또는 전송기)로부터 하나 이상의 수신기로 정보 신호, 예를 들어, 비트스트림을 전달하는데 이용될 수 있다.
실시간 전송 프로토콜(Real-time Transport Protocol: RTP)은 오디오 및 비디오와 같이 시간맞춤 미디어의 실시간 전송에 널리 이용된다. RTP는 사용자 데이터그램 프로토콜(User Datagram Protocol: UDP)의 상위에서 동작할 수 있으며, 이는 결국 인터넷 프로토콜(Internet Protocol: IP)의 상위에서 동작할 수 있다. RTP는 IETF(Internet Engineering Task Force) RFC(Request for Comments) 3550에 특정되어 있으며, www.ietf.org/rfc/rfc3550.txt에서 입수가능하다. RTP 전송에서 미디어 데이터는 RTP 패킷으로 캡슐화된다. 전형적으로, 각각의 미디어 타입 또는 미디어 코딩 포맷에는 전용 RTP 페이로드 포맷이 있다.
RTP 세션은 RTP로 통신하는 참여자 그룹 간의 연관(association)이다. 이것은 잠재적으로 다수의 RTP 스트림을 전송할 수 있는 그룹 통신 채널이다. RTP 스트림은 미디어 데이터를 포함하는 RTP 패킷의 스트림이다. RTP 스트림은 특정 RTP 세션에 속하는 SSRC에 의해 식별된다. SSRC는 동기화 소스 또는 RTP 패킷 헤더 내의 32비트 SSRC 필드인 동기화 소스 식별자를 나타낸다. 동기화 소스는 동기화 소스로부터의 모든 패킷이 동일한 타이밍 및 시퀀스 번호 공간의 일부를 형성하므로 수신기는 재생을 위해 동기화 소스 별로 패킷을 그룹화할 수 있는 것을 특징으로 한다. 동기화 소스의 예로는 RTP 믹서, 또는 마이크나 카메라와 같은 신호 소스로부터 도출된 패킷의 스트림의 발신기가 있다. 각각의 RTP 스트림은 RTP 세션 내에서 고유한 SSRC로 식별된다. RTP 스트림은 논리적 채널로 간주될 수 있다.
이용 가능한 미디어 파일 포맷 표준은 ISO 베이스 미디어 파일 포맷(ISO/IEC 14496-12, ISOBMFF로 약칭될 수 있음), MPEG-4 파일 포맷(ISO/IEC 14496-14, MP4 포맷으로 알려짐), NAL(Network Abstraction Layer) 유닛 구조화된 비디오에 대한 파일 포맷(ISO/IEC 14496-15) 및 3GPP 파일 포맷(3GPP TS 26.244, 3GP 포맷으로도 알려짐)을 포함한다. 위에서 언급한 모든 파일 포맷(ISO 베이스 미디어 파일 포맷 자체는 제외)은 ISO 베이스 미디어 파일 포맷을 기반으로 파생된 것이다.
이하에서는 실시예가 구현될 수 있는 기반이 되는 컨테이너 파일 포맷의 예로서 ISOBMFF의 일부 개념, 구조 및 사양을 설명한다. 발명의 양태는 ISOBMFF에 한정되지 않고, 오히려 발명이 부분적으로 또는 완전히 실현될 수 있는 하나의 가능한 기초에 대해 설명한다.
ISOBMFF에서 하나의 빌딩 블록을 박스(box)라고 불린다. 각 박스는 헤더와 페이로드를 포함할 수 있다. 박스 헤더는 박스의 타입과 박스의 크기를 바이트 단위로 표시한다. 박스는 다른 박스를 둘러쌀(enclose) 수 있으며, ISO 파일 포맷은 특정 유형의 박스 내에서 어느 박스 유형이 허용되는지를 특정한다. 나아가, 일부 박스의 존재는 각각의 파일에서 필수적일 수 있지만 다른 박스의 존재는 선택적일 수 있다. 또한, 일부 박스의 타입은 파일에 둘 이상의 박스를 포함하는 것이 허용될 수 있다. 따라서, ISOBMFF는 박스의 계층구조적인 구조를 특정하는 것으로 간주될 수 있다. ISO 베이스 미디어 파일의 각 박스는 4개 문자 코드(4CC, fourCC)로 식별될 수 있다. 4개 문자 코드는 32비트 무부호 정수(문자를 8비트 값, 특정 비트 엔디안 및 특정 바이트 엔디안으로의 특정 변환을 가정함으로써)로 교환가능하게 표현될 수 있다. 헤더는 박스의 타입 및 크기에 대한 정보를 제공할 수 있다.
ISOBMFF에 따르면, 파일은 별도의 박스에 둘러싸일 수 있는 미디어 데이터와 메타데이터를 포함할 수 있다. 예시적 실시예에서, 미디어 데이터는 미디어 데이터(mdat) 박스에 제공될 수 있고, 무비(moov) 박스는 메타 데이터를 둘러싸는데 이용될 수 있다. 일부 경우에, 파일을 실행하려면 mdat 및 moov 박스가 모두 존재하여야 한다. 무비(moov) 박스는 하나 이상의 트랙을 포함할 수 있으며, 각각의 트랙은 하나의 대응 트랙(trak) 박스에 상주할 수 있다. 각각의 트랙은 트랙 타입을 특정하는 4개 문자 코드로 식별되는 핸들러(handler)와 연관된다. 비디오, 오디오 및 이미지 시퀀스 트랙은 집합적으로 미디어 트랙이라고 불릴 수 있으며, 기초 미디어 스트림을 포함한다. 다른 트랙 타입은 힌트 트랙과 시간맞춤 메타데이터 트랙을 포함한다. 트랙은 오디오 또는 비디오 프레임과 같은 샘플을 포함한다. 미디어 트랙은 미디어 압축 포맷(및 ISOBMFF로의 캡슐화)에 따라 포맷된 샘플(미디어 샘플이라고도 함)을 의미한다. 힌트 트랙은 힌트 샘플을 나타내며, 표시된 통신 프로토콜을 통한 전송을 위해 패킷을 구성하기 위한 쿡북(cookbook) 명령어를 포함한다. 쿡북 명령어는 패킷 헤더 구성에 대한 지침을 포함할 수 있으며, 패킷 페이로드 구성을 포함할 수 있다. 패킷 페이로드 구성에서 다른 트랙이나 아이템에 상주하는 데이터를 참조할 수 있다. 이와 같이, 예를 들어, 다른 트랙 또는 아이템에 상주하는 데이터는 특정 트랙 또는 아이템의 어느 조각이 패킷 구성 프로세스 동안 패킷으로 복사되도록 지시되는지에 대한 참조로서 표시될 수 있다. 시간맞춤 메타데이터 트랙은 참조된 미디어 및/또는 힌트 샘플을 설명하는 샘플을 나타낼 수 있다. 하나의 미디어 타입의 프레젠테이션을 위해, 하나의 미디어 트랙이 선택될 수 있다.
'trak' 박스는 샘플 테이블(Sample Table) 박스를 포함한다. 샘플 테이블 박스는, 예를 들어, 트랙에서 미디어 샘플의 모든 시간 및 데이터 인덱싱을 포함한다. 샘플 테이블 박스는 샘플 설명(Sample Description) 박스를 포함할 필요가 있다. 샘플 설명 박스는 박스에 포함된 샘플 엔트리의 수를 지정하는 엔트리 카운트 필드를 포함한다. 샘플 설명 박스는 적어도 하나의 샘플 엔트리를 포함할 필요가 있다. 샘플 엔트리 포맷은 트랙에 대한 핸들러 타입에 따라 다르다. 샘플 엔트리는 이용된 코딩 타입 및 해당 코딩에 필요한 초기화 정보에 대한 자세한 정보를 제공한다.
무비 프래그먼트 기능을 이용하면 무비 박스에 상주할 수도 있는 메타데이터를 여러 조각으로 분할할 수 있다. 각 조각은 트랙의 특정 기간에 대응할 수 있다. 즉, 무비 프래그먼트 기능을 이용하여 파일 메타데이터 및 미디어 데이터를 인터리빙할 수 있다. 결과적으로, 무비 박스의 크기가 제한되고 전술한 이용의 경우(use cases)가 실현될 수 있다.
일부 예에서, 무비 프래그먼트에 대한 미디어 샘플은 mdat 박스에 상주할 수 있다. 그러나, 무비 프래그먼트의 메타데이터에 대해서는 moof 박스가 제공될 수 있다. moof 박스는 이전에 moov 박스에 있던 특정 재생 시간 동안의 정보를 포함할 수 있다. moov 박스는 여전히 유효한 무비를 나타낼 수 있지만, 무비 프래그먼트가 같은 파일에서 이어질 것일지를 표시하는 mvex 박스를 더 포함할 수 있다. 무비 프래그먼트는 moov 박스와 시간적으로 연관된 프레젠테이션을 확장할 수 있다.
무비 프래그먼트에는 트랙 당 0부터 복수까지의 어딘가를 포함하는 트랙 프래그먼트 세트가 있을 수 있다. 트랙 프래그먼트는 차례로 0부터 복수의 트랙 런까지의 어딘가를 포함할 수 있으며, 각각의 문서는 그 트랙에 대한 샘플의 인접한 런이다(따라서, 청크(chunk)와 유사하다). 이러한 구조에서 많은 필드는 선택적이며, 기본값으로 설정될 수 있다. moof 박스에 포함될 수 있는 메타 데이터는 moov 박스에 포함될 수 있는 메타데이터의 서브세트로 제한될 수 있으며, 일부 경우에는 다르게 코딩될 수도 있다. moof 박스에 포함될 수 있는 박스와 관련된 자세한 사항은 ISOBMFF 사양에서 찾을 수 있다. 독립형 무비 프래그먼트는 파일 순서가 연속적인 moof 박스와 mdat 박스로 구성되고, mdat 박스는 (moof 박스가 메타데이터를 제공하는) 무비 프래그먼트의 샘플을 포함하고, 임의의 다른 무비 프래그먼트(즉, 임의의 다른 moof 박스)의 샘플을 포함하지 않도록 정의될 수 있다.
ISOBMFF 및 NAL 단위 구조화 비디오(ISO/IEC 14496-15)에 대한 파일 포맷과 같은 그 파생물에서의 샘플 그룹화는, 그룹화 기준에 따라 트랙 내의 각각의 샘플을 하나의 샘플 그룹의 멤버가 되도록 할당하는 것으로 정의될 수 있다. 샘플 그룹화에서 샘플 그룹은 인접한 샘플로 제한되지 않으며 인접하지 않은 샘플을 포함할 수 있다. 트랙 내의 샘플에 대해 둘 이상의 샘플 그룹화가 있을 수 있으므로, 각 샘플 그룹화에는 그룹화 타입을 표시하는 타입 필드가 있을 수 있다. 샘플 그룹화는 2 개의 링크된 데이터 구조로 나타낼 수 있다. (1) SampleToGroup 박스(sbgp 박스)는 샘플 그룹에 샘플을 할당하는 것을 나타내고, (2) SampleGroupDescription 박스(sgpd 박스)는 그룹의 속성을 설명하는 각 샘플 그룹에 대한 샘플 그룹 엔트리를 포함한다. 상이한 그룹화 기준에 기초하여, SampleToGroup 및 SampleGroupDescription 박스의 복수의 인스턴스가 있을 수 있다. 이들은 그룹화 유형을 표시하는데 이용되는 타입 필드로 구별할 수 있다. 'sbgp' 및 'sgpd' 박스는 grouping_type의 값을 이용하여 링크될 수 있으며, 박스의 일부 버전에서는 또한 grouping_type_parameter의 값을 이용하여 링크될 수 있다. 'sbgp' 박스는 특정 샘플이 속하는 샘플 그룹 설명 엔트리의 인덱스를 표시한다.
마트로스카(Matroska) 파일 포맷은 비디오, 오디오, 픽처 또는 자막 트랙 중 임의의 것을 하나의 파일에 저장할 수 있다(그러나, 이에 한정되는 것은 아님). 마트로스카 파일 확장자는 비디오(자막 및 오디오 포함)용 .mkv, 스테레오스코픽 비디오용 .mk3d, 오디오 전용 파일용 .mka 및 자막 전용 .mks를 포함한다. 마트로스카는 WebM과 같은 파생된 파일 포맷에 대한 기본 포맷으로 이용될 수 있다.
마트로스카는 EBML(Extensible Binary Meta Language)을 기준으로 이용한다. EBML은 XML의 원리에 의해 인도된 바이너리 및 옥텟(바이트) 정렬된 포맷을 특정한다. EBML 그 자체는 바이너리 마크업 기법에 대한 일반적인 설명이다. 마트로스카 파일은 EBML "문서"를 구성하는 요소를 포함한다. 요소는 요소 ID, 요소의 크기에 대한 서술자 및 바이너리 데이터 그 자체를 포함한다. 요소는 중첩(nest)될 수 있다.
마트로스카의 세그먼트 요소(Segment Element)는 다른 최상위 레벨(레벨 1) 요소에 대한 컨테이너이다. 마트로스카 파일은 하나의 세그먼트를 포함할 수 있다(그러나, 하나의 세그먼트 만을 포함하는 것에 한정되는 것은 아니다). 마트로스카 파일의 멀티미디어 멀티미디어 데이터는 클러스터(또는 클러스터 요소) 내에 조직화되고, 각 클러스터는 전형적으로 몇 초의 멀티미디어 데이터를 포함한다. 클러스터는 블록그룹(BlockGroup) 요소를 포함하고, 블록그룹 요소는 블록 요소(Block Element)를 포함한다. 큐 요소(Cues Element)는 랜덤 액세스 또는 탐색을 지원할 수 있고, 조사점(seek point)에 대한 파일 포인터 또는 각각의 타임 스탬프를 포함할 수 있는 메타데이터를 포함한다.
비디오 코덱은 입력 비디오를 저장/전송에 적합한 압축된 표현으로 변환하는 인코더와 압축된 비디오 표현을 다시 볼 수 있는 포맷으로 압축 해제할 수 있는 디코더로 구성된다. 또한, 비디오 인코더 및/또는 비디오 디코더는 서로 분리될 수 있으며, 즉 코덱을 형성할 필요가 없다. 인코더 및 코딩 사양은 무손실 압축 모드를 추가적으로 또는 대안적으로 포함할 수 있지만, 일반적으로 인코더는 비디오를 보다 압축된 포맷으로 표현하기 위해 오리지널 비디오 시퀀스에서 일부 정보를 삭제한다(즉, "손실이 있는" 압축으로서, 결과적으로 더 낮은 비트레이트를 갖는다). 비디오 인코더는, 후속하여 정의되는 것과 같이, 이미지 시퀀스를 인코딩하는데 이용될 수 있고, 비디오 디코더는 코딩된 이미지 시퀀스를 디코딩하는데 이용될 수 있다. 비디오 인코더 또는 비디오 인코더나 이미지 인코더의 인트라 코딩부는 이미지를 인코딩하는데 이용될 수 있고, 비디오 디코더 또는 비디오 디코더나 이미지 디코더의 인터 디코딩부는 코딩된 이미지를 디코딩하는데 이용될 수 있다.
전형적인 하이브리드 비디오 인코더, 예를 들어, ITU-T H.263 및 H.264의 많은 인코더 구현예는 비디오 정보를 두 단계로 인코딩한다. 먼저, 특정 픽처 영역(또는 "블록")에서 픽셀 값은, 예를 들어, 움직임 보상 수단(코딩되고 있는 블록에 가깝게 대응하는, 이전에 코딩된 비디오 프레임 중 하나에서 영역을 발견 및 표시) 또는 공간적 수단(특정 방식으로 코딩될 블록의 주위 픽셀 값을 이용)에 의해 예측된다. 다음으로, 예측 오차, 즉 예측된 픽셀 블록과 오리지널 픽셀 블록 간의 차이가 코딩된다. 이것은 전형적으로 지정된 변환(예를 들어, DCT(Discrete Cosine Transform) 또는 이것의 변형)을 이용하여 픽셀 값의 차이를 변환하고, 계수를 양자화하고, 양자화된 계수를 엔트로피 코딩함으로써 수행된다. 양자화 프로세스의 충실도(fidelity)를 변화시킴으로써, 인코더는 픽셀 표현의 정확성(픽처의 품질)과 결과적인 코딩된 비디오 표현의 크기(파일 크기 또는 송신 비트레이트) 간의 균형을 제어할 수 있다.
시간적 예측, 움직임 보상, 또는 움직임 보상된 예측으로도 불릴 수 있는 인터 예측(inter prediction)은 시간적 중복성(redundancy)을 감소시킨다. 인터 예측에서, 예측 소스는 이전에 디코딩된 픽처이다. 인트라 예측(intra prediction)은 동일한 픽처 내의 인접 픽셀이 상관될 가능성이 높다는 점을 이용한다. 인트라 예측은 공간적 또는 변환 도메인에서 수행될 수 있는데, 즉 샘플 값 또는 변환 계수가 예측될 수 있다. 인트라 예측은 전형적으로 인터 예측이 적용되지 않는 인트라 코딩에서 이용된다.
코딩 절차의 하나의 결과는 움직임 벡터 및 양자화된 변환 계수와 같은 코딩 파라미터 세트이다. 공간적 또는 시간적으로 인접한 파라미터로부터 많은 파라미터가 먼저 예측되는 경우, 엔트로피 코딩이 보다 효율적으로 수행될 수 있다. 예를 들어, 움직임 벡터는 공간적으로 인접한 움직임 벡터로부터 예측될 수 있고, 움직임 벡터 예측기에 대한 차이만이 코딩될 수 있다. 코딩 파라미터의 예측 및 인트라 예측은 픽처내(in-picture) 예측으로 통칭될 수 있다.
도 4는 본 발명의 실시예를 이용하기에 적합한 비디오 인코더의 블록도를 도시한다. 도 4는 2개의 계층에 대한 인코더를 제시하지만, 제시된 인코더는 단지 하나의 계층만을 인코딩하도록 단순화될 수도 있고, 또는 2개 이상의 계층을 인코딩하도록 확장될 수 있음은 인식될 수 있을 것이다. 도 4는 베이스 계층을 위한 제 1 인코더 섹션(520) 및 강화 계층을 위한 제 2 인코더 섹션(522)을 포함하는 비디오 인코더의 일 실시예를 도시한다. 제 1 인코더 섹션(520) 및 제 2 인코더 섹션(522) 각각은 입력 픽처를 인코딩하기 위해 유사한 요소를 포함할 수 있다. 인코더 섹션(500, 502)은 픽셀 예측기(302, 402), 예측 오차 인코더(303, 403) 및 예측 오차 디코더(304, 404)를 포함할 수 있다. 또한, 도 4는 픽셀 예측기(302, 402)의 일 실시예를 인터 예측기(306, 406), 인트라 예측기(308, 408), 모드 선택기(310, 410), 필터(316, 416) 및 참조 프레임 메모리(318, 418)를 포함하는 것으로서 도시한다. 제 1 인코더 섹션(520)의 픽셀 예측기(302)는 (이미지와 움직임 보상된 참조 프레임(318) 간의 차이를 결정하는) 인터-예측기(306) 및 (현재 프레임 또는 픽처의 이미 처리된 부분에만 기초하여 이미지 블록에 대한 예측을 결정하는) 인트라-예측기(308) 모두에서 인코딩될 비디오 스트림의 베이스 계층 이미지를 수신한다(300). 인터 예측기 및 인트라 예측기 모두의 출력은 모드 선택기(310)로 전달된다. 인트라 예측기(308)는 2이상의 인트라 예측 모드를 가질 수 있다. 그러므로, 각각의 모드는 인트라 예측을 수행하고, 예측된 신호를 모드 선택기(310)에 제공할 수 있다. 또한, 모드 선택기(310)는 베이스 계층 픽처(300)의 사본을 수신한다. 이에 대응하여, 제 2 인코더 섹션(522)의 픽셀 예측기(402)는 (이미지와 움직임 보상된 참조 프레임(418) 간의 차이를 결정하는) 인터-예측기(406) 및 (현재 프레임 또는 픽처의 이미 처리된 부분에만 기초하여 이미지 블록에 대한 예측을 결정하는) 인트라-예측기(408) 모두에서 인코딩될 비디오 스트림의 강화 계층 이미지를 수신한다(400). 인터 예측기 및 인트라 예측기 모두의 출력은 모드 선택기(410)로 전달된다. 인트라 예측기(408)는 둘 이상의 인트라 예측 모드를 가질 수 있다. 따라서, 각각의 모드는 인트라 예측을 수행하고, 예측된 신호를 모드 선택기(410)에 제공할 수 있다. 또한, 모드 선택기(410)는 강화 계층 픽처(400)의 사본을 수신한다.
현재의 블록을 인코딩하기 위해 어떤 인코딩 모드가 선택되는지에 따라, 인터-예측기(306, 406)의 출력, 선택적인 인트라-예측기 모드 중 하나의 출력 또는 모드 선택기 내의 표면적 인코더의 출력이 모드 선택기(310, 410)의 출력으로 전달된다. 모드 선택기의 출력은 제 1 가산 디바이스(321, 421)로 전달된다. 제 1 가산 디바이스는 베이스 계층 픽처(300)/강화 계층 픽처(400)로부터 픽셀 예측기(302, 402)의 출력을 감산하여 예측 오차 인코더(303, 403)에 입력되는 제 1 예측 오차 신호(320, 420)를 생성한다.
픽셀 예측기(302, 402)는 추가로 예비적 재구성기(preliminary reconstructor)(339, 439)로부터 이미지 블록의 예측 표현(312, 412)과 예측 오차 디코더(304, 404)의 출력(338, 438)의 조합을 수신한다. 예비적 재구성된 이미지(314, 414)는 인트라-예측기(308, 408)로 그리고 필터(316, 416)로 전달될 수 있다. 예비적 표현을 수신하는 필터(316, 416)는 예비적 표현을 필터링하고 참조 프레임 메모리(318, 418)에 저장될 수 있는 최종의 재구성된 이미지(340, 440)를 출력한다. 참조 프레임 메모리(318)는 인터-예측 동작에서 장래의 베이스 계층 이미지(300)가 비교되는 참조 이미지로서 이용되도록 인터-예측기(306)에 접속될 수 있다. 일부 실시예에 따라, 베이스 계층이 강화 계층의 인터 계층 샘플 예측 및/또는 인터 계층 움직임 정보 예측에 대한 소스인 것으로 선택되고 표시되면, 참조 프레임 메모리(318)는 또한 인터-예측 동작에서 장래의 강화 계층 픽처(400)가 비교되는 참조 이미지로서 이용되도록 인터-예측기(406)에 접속될 수 있다. 또한, 참조 프레임 메모리(418)는 인터-예측 동작에서 장래의 강화 계층 픽처(400)가 비교되는 참조 이미지로서 이용되도록 인터-예측기(406)에 접속될 수 있다.
일부 실시예에 따라, 베이스 계층이 강화 계층의 필터링 파라미터 예측에 대한 소스인 것으로 선택되고 표시되면, 제 1 인코더 섹션(520)의 필터(316)로부터의 필터링 파라미터는 제 2 인코더 섹션(522)에 제공될 수 있다.
예측 오차 인코더(303, 403)는 변환 유닛(342, 442) 및 양자화기(344, 444)를 포함한다. 변환 유닛(342, 442)은 제 1 예측 오차 신호(320, 420)를 변환 도메인으로 변환한다. 변환은, 예를 들어, DCT 변환이다. 양자화기(344, 444)는 변환 도메인 신호, 예를 들어, DCT 계수를 양자화하여, 양자화된 계수를 형성한다.
예측 오차 디코더(304, 404)는 예측 오차 인코더(303, 403)로부터 출력을 수신하고, 예측 오차 인코더(303, 403)의 반대의 프로세스를 수행하여 디코딩된 예측 오차 신호(338, 438)를 생성하며, 이 디코딩된 예측 오차 신호는, 제 2 가산 디바이스(339, 439)에서 이미지 블록의 예측 표현(312, 412)과 조합될 때, 예비적 재구성된 이미지(314, 414)를 생성한다. 예측 오차 디코더는, 양자화된 계수 값, 예를 들어, DCT 계수를 역양자화하여 변환 신호를 재구성하는 역양자화기(361, 461) 및 재구성된 변환 신호에 대한 역변환을 수행하는 역변환 유닛(363, 463)을 포함하는 것으로 간주될 수 있으며, 이때 역변환 유닛(363, 463)의 출력은 재구성된 블록을 포함한다. 또한, 예측 오차 디코더는 추가로 디코딩된 정보 및 필터 파라미터에 따라 재구성된 블록을 필터링할 수 있는 블록 필터를 포함할 수 있다.
엔트로피 인코더(330, 430)는 예측 오차 인코더(303, 403)의 출력을 수신하고, 오차 검출 및 정정 기능을 제공하기 위해 신호에 대해 적합한 엔트로피 인코딩/가변 길이 인코딩을 수행할 수 있다. 엔트로피 인코더(330, 430)의 출력은, 예를 들어, 멀티플렉서(528)에 의해 비트스트림에 삽입될 수 있다.
H.264/AVC 표준은 국제 전기 통신 연합(International Telecommunication Union, ITU-T)의 전기통신 표준화 부분의 비디오 코딩 전문가 그룹(Video Coding Experts Group, VCEG)과 국제 표준화 기구(International Standardisation Organisation: ISO)/국제 전기 기술위원회(International Electrotechnical Commission: IEC)의 동화상 전문가 그룹(Moving Picture Experts Group: MPEG)의 합동 비디오 팀(Joint Video Team: JVT)에 의해 개발되었다. H.264/AVC 표준은 양대 부모 표준화 기구에 의해 공표되었으며, 이것은 ITU-T Recommendation H.264 및 ISO/IEC 국제 표준 14496-10이라고도 불리며, MPEG-4 Part 10 어드밴스드 비디오 코딩(Advanced Video Coding: AVC)으로도 알려져 있다. H.264/AVC 표준에는 새로운 확장 또는 특징을 사양에 통합하는 복수의 버전이 있다. 이러한 확장은 스케일가능 비디오 코딩(Scalable Video Coding: SVC) 및 멀티뷰 비디오 코딩(Multiview Video Coding: MVC)을 포함한다.
고효율 비디오 코딩(High Efficiency Video Coding)(HEVC라고도 알려진H.265/HEVC) 표준의 버전 1은 VCEG 및 MPEG의 비디오 코딩 공동 협력 팀(Joint Collaborative Team - Video Coding: JCT-VC)에 의해 개발되었다. 이 표준은 양대 부모 표준화 기구에 의해 공표되었으며, 이것은 ITU-T Recommendation H.265 및 ISO/IEC 국제 표준 23008-2이라고도 불리며, MPEG-H Part 2 고효율 비디오 코딩(HEVC)으로도 알려져 있다. H.265/HEVC의 버전 2는 각각 SHVC, MV-HEVC 및 REXT로 약칭될 수 있는 스케일가능, 멀티뷰 및 충실도 범위 확장을 포함하였다. H.265/HEVC 버전 2는 ITU-T Recommendation H.265(10/2014)로 공표되었다. 현재 3D-HEVC 및 SCC로 각각 약칭될 수 있는 3차원 및 스크린 콘텐츠 코딩 확장을 포함하여 H.265/HEVC에 대한 추가 확장을 개발하는 표준화 프로젝트가 진행되고 있다.
SHVC, MV-HEVC 및 3D-HEVC는 HEVC 표준 버전 2의 Annex F에 명시된 공통 기준 사양(common basis specification)을 이용한다. 이러한 공통 기준은, 예를 들어, 높은 수준의 구문론(syntax) 및 의미론(semantics), 예를 들어, 다층(multi-layer) 계층 비트스트림을 위한 인터 계층 참조 픽처 및 픽처 순서 카운트 도출(picture order count derivation)을 포함하는 참조 픽처 리스트 구성과 같은 디코딩 프로세스뿐만 아니라, 인터 계층 의존성(inter-layer dependency)과 같은 비트스트림의 계층의 특성 중 일부를 설명하는 것을 포함한다. 또한, Annex F는 HEVC의 잠재적인 차후의 다층 확장에서 이용될 수 있다. 비디오 인코더, 비디오 디코더, 인코딩 방법, 디코딩 방법, 비트스트림 구조 및/또는 실시예가 특정의 확장, 예를 들어, SHVC 및/또는 MV-HEVC를 참조하여 이하에서 설명될 수 있음에도 불구하고, 이들은 일반적으로 HEVC의 임의의 다층 확장에 적용 가능하고, 더욱 일반적으로 임의의 다층 비디오 코딩 방식에 적용 가능함이 이해될 것이다.
일부 중요한 정의, 비트스트림 및 코딩 구조와, H.264/AVC 및 HEVC의 개념이 실시예가 구현될 수 있는 비디오 인코더, 디코더, 인코딩 방법, 디코딩 방법 및 비트스트림 구조의 예로서 이 섹션에서 설명된다. 일부 중요한 정의, 비트스트림 및 코딩 구조와, H.264/AVC의 개념은 HEVC에서와 동일하므로, 그것은 공동으로 이하에서 설명된다. 본 발명의 양태는 H.264/AVC 또는 HEVC에 한정되지 않고, 오히려 발명이 의거해서 부분적으로 또는 완전하게 실현될 수 있는 하나의 가능한 기초에 대해 설명한다.
이전의 많은 비디오 코딩 표준과 유사하게, 에러 없는(error-free) 비트스트림에 대한 디코딩 프로세스뿐만 아니라 비트스트림 구문론 및 의미론이 H.264/AVC 및 HEVC에 특정된다. 인코딩 프로세스는 특정되지 않지만, 인코더는 합치하는 비트스트림을 생성해야 한다. 비트스트림 및 디코더 합치성(conformance)은 가상적 참조 디코더(Hypothetical Reference Decoder: HRD)로써 검증할 수 있다. 이 표준은 송신 에러 및 손실에 대처하는데 도움이 되는 코딩 도구를 포함하지만, 인코딩에 도구를 이용하는 것은 선택적이며 에러가 있는 비트스트림에 대해서는 어떤 디코딩 프로세스도 특정되지 않았다.
예시적 실시예의 설명에서뿐만 아니라 기존 표준의 설명에서, 구문론 요소는 비트스트림에 표현된 데이터의 요소로서 정의될 수 있다. 구문론의 구조는 특정된 순서로 비트스트림에 함께 존재하는 0개 이상의 구문론 요소로 정의될 수 있다. 예시적 실시예의 설명에서뿐만 아니라 기존 표준의 설명에서, "외부 수단에 의해" 또는 "외부 수단을 통해"라는 문구가 사용될 수 있다. 예를 들어, 디코딩 프로세스에서 사용되는 구문론의 구조 또는 변수의 값과 같은 엔티티는 "외부 수단에 의해" 디코딩 프로세스에 제공될 수 있다. "외부 수단에 의해"라는 문구는 엔티티가 인코딩에 의해 생성된 비트스트림에 포함되지 않고, 예를 들어, 제어 프로토콜을 사용하여 비트스트림으로부터 외부로 전달됨을 나타낼 수 있다. 이와 달리 또는 추가적으로, 이것은 엔티티가 인코더에 의해 생성되지는 않지만, 예를 들어, 디코더를 사용하고 있는 플레이어 또는 디코딩 제어 로직 등에 의해 생성될 수 있음을 의미한다. 디코더는 변수 값과 같은 외부 수단을 입력하기 위한 인터페이스를 포함할 수 있다.
H.264/AVC 또는 HEVC 인코더에 대한 입력 및 H.264/AVC 또는 HEVC 디코더의 출력에 대한 기본 단위는 각각 픽처이다. 인코더에 대한 입력으로서 주어진 픽처는 소스 픽처(source picture)로 지칭될 수 있고, 디코더에 의해 디코딩된 픽처는 디코딩된 픽처(decoded picture)로 지칭될 수 있다.
소스 및 디코딩된 픽처는 각각 하나 이상의 샘플 어레이, 예를 들어, 샘플 어레이의 다음 세트 중 하나로 구성된다.
- 오직 루마(Luma)(Y) (모노크롬(monochrome)).
- 루마 및 2개의 크로마(chroma)(YCbCr 또는 YCgCo).
- 녹색(Green), 청색(Blue) 및 적색(Red)(GBR, RGB로도 알려짐)
- 다른 지정되지 않은 모노크롬 또는 3자극(tri-stimulus) 컬러 샘플링(예를 들어, YZX, XYZ로도 알려짐)을 표현하는 어레이.
이하에서, 이들 어레이는 루마(또는 L 또는 Y) 및 크로마로서 불릴 수 있고, 2개의 크로마 어레이는 Cb 및 Cr로 불릴 수 있는데, 이용 중인 실제 컬러 표현과는 무관하다. 이용 중인 실제 컬러 표현 방법은, 예를 들어, H.264/AVC 및/또는 HEVC의 비디오 유용성 정보(Video Usability Information: VUI) 구문론을 이용하여, 예를 들어, 코딩된 비트스트림에 표시될 수 있다. 컴포넌트는 3개의 샘플 어레이 어레이(루마 및 2개의 크로마) 중 하나로부터의 어레이 또는 단일 샘플, 또는 모노크롬 포맷으로 픽처를 작성하는 어레이의 어레이 또는 단일 샘플로서 정의될 수 있다.
H.264/AVC 및 HEVC에서, 픽처는 프레임(frame)이거나 아니면 필드(field)일 수 있다. 프레임은 루마 샘플, 그리고 가능하게는 대응하는 크로마 샘플의 매트릭스(matrix)를 포함한다. 필드는 프레임의 교번(alternate) 샘플 행의 세트이고, 소스 신호가 인터레이싱되는(interlaced) 경우 인코더 입력으로서 이용될 수 있다. 크로마 샘플 어레이가 없거나(따라서 모노크롬 샘플링이 이용 중일 수 있거나), 또는 크로마 샘플 어레이는 루마 샘플 어레이와 비교될 때 서브샘플링될(subsampled) 수 있다. 크로마 포맷은 다음과 같이 요약될 수 있다.
- 모노크롬 샘플링에서 오직 하나의 샘플 어레이가 있는 경우, 이는 루마 어레이로 명목상 간주될 수 있다.
- 4:2:0 샘플링에서, 2개의 크로마 어레이의 각각은 루마 어레이의 절반의 높이 및 절반의 폭을 가진다.
- 4:2:2 샘플링에서, 2개의 크로마 어레이의 각각은 루마 어레이와 동일한 높이 및 절반의 폭을 가진다.
- 4:4:4 샘플링에서 어떤 별개의 컬러 평면도 이용 중이지 않은 경우, 2개의 크로마 어레이의 각각은 루마 어레이와 동일한 높이 및 폭을 가진다.
H.264/AVC 및 HEVC에서, 샘플 어레이를 별개의 컬러 평면으로서 비트스트림에 코딩하고, 비트스트림으로부터 별개의 코딩된 컬러 평면을 각각 디코딩할 수 있다. 별개의 컬러 평면이 이용 중인 경우, 각각의 컬러 평면은 모노크롬 샘플링을 이용하여 픽처로서 (인코더 및/또는 디코더에 의해) 분리하여 처리된다.
파티셔닝(partitioning)은 세트의 각각의 요소가 서브세트 중 정확히 하나에 있도록 세트를 서브세트로 분할하는 것으로 정의될 수 있다.
H.264/AVC에서, 매크로 블록은 루마 샘플의 16x16 블록과 크로마 샘플의 대응하는 블록이다. 예를 들어, 4:2:0 샘플링 패턴에서, 매크로 블록은 각각의 크로마 컴포넌트마다 크로마 샘플의 하나의 8x8 블록을 포함한다. H.264/AVC에서, 픽처는 하나 이상의 슬라이스 그룹으로 파티셔닝되고, 슬라이스 그룹은 하나 이상의 슬라이스를 포함한다. H.264/AVC에서, 슬라이스는 특정한 슬라이스 그룹 내에서 래스터 스캔에서 연속적으로 순서화된 정수 개의 매크로 블록으로 구성된다.
HEVC 인코딩 및/또는 디코딩의 동작을 설명할 때, 다음 용어가 이용될 수 있다. 코딩 블록(coding block)은 어떤 값의 N에 대해 샘플의 NxN 블록으로서 정의될 수 있는데, 코딩 트리 블록(coding tree block: CTB)을 코딩 블록으로 분할하는 것이 파티셔닝이다. 코딩 트리 블록(CTB)은 어떤 값의 N에 대해 샘플의 NxN 블록으로서 정의될 수 있는데, 컴포넌트를 코딩 트리 블록으로 분할하는 것이 파티셔닝이다. 코딩 트리 유닛(Coding Tree Unit: CTU)은 3개의 샘플 어레이를 가진 픽처의 루마 샘플의 코딩 트리 블록, 크로마 샘플의 2개의 대응하는 코딩 트리 블록, 또는 모노크롬 픽처 또는 샘플 코딩에 이용된 3개의 별개의 컬러 평면 및 구문론 구조를 이용하여 코딩된 픽처의 샘플의 코딩 트리 블록으로서 정의될 수 있다. 코딩 유닛(Coding Unit: CU)은 3개의 샘플 어레이를 가진 픽처의 루마 샘플의 코딩 블록과 크로마 샘플의 2개의 대응하는 코딩 블록, 또는 모노크롬 픽처 또는 샘플 코딩에 이용된 3개의 별개의 컬러 평면 및 구문론 구조를 이용하여 코딩된 픽처의 코딩 블록으로서 정의될 수 있다.
고효율 비디오 코딩(High Efficiency Video Coding: HEVC) 코덱과 같은 일부 비디오 코덱에서, 비디오 픽처는 그 픽처의 영역을 커버하는 코딩 유닛(CU)으로 분할된다. CU는 CU 내의 샘플에 대한 예측 프로세스를 정의하는 하나 이상의 예측 유닛(Prediction Unit: PU) 및 그 CU 내의 샘플에 대한 예측 오차 코딩 프로세스를 정의하는 하나 이상의 변환 유닛(Transform Unit: TU)으로 구성된다. 전형적으로, CU는 가능한 CU 크기의 사전 정의된 세트로부터 선택 가능한 크기를 갖는 샘플의 정방형 블록(square block)으로 구성된다. 최대 허용 크기(maximum allowed size)를 갖는 CU는 LCU(최대 코딩 유닛(largest coding unit)) 또는 코딩 트리 유닛(CTU)으로 명명될 수 있고, 비디오 픽처는 비중첩(non-overlapping) LCU로 분할된다. LCU는, 예를 들어, LCU 및 결과적인 CU를 반복적으로 나눔(recursively splitting)으로써, 더 작은 CU의 조합으로 더 나뉠 수 있다. 전형적으로 각각의 결과적인 CU는 그것과 연관된 적어도 하나의 PU 및 적어도 하나의 TU를 포함한다. 각각의 PU 및 TU는 각각 예측 및 예측 오차 코딩 프로세스의 입도(granularity)를 증가시키기 위해서 더 작은 PU와 TU로 더 나뉠 수 있다. 각각의 PU는 어떤 종류의 예측이 그 PU 내의 픽셀에 대해 적용될 것인지를 정의하는 그것과 연관된 예측 정보(예를 들어, 인터 예측된(inter-predicted) PU에 대한 움직임 벡터 정보 및 인트라 예측된(intra predicted) PU에 대한 인트라 예측 방향성 정보)를 포함한다.
디코더는 (인코더에 의해 생성되고, 압축된 표현으로 저장된 움직임 또는 공간 정보를 이용하여) 픽셀 블록의 예측된 표현을 형성하기 위해 인코더와 유사한 예측 수단과, 예측 오차 디코딩(공간 픽셀 도메인(spatial pixel domain)의 양자화된 예측 오차 신호를 복구하는 예측 오차 코딩의 역연산(inverse operation))을 적용함으로써 출력 비디오를 재구성한다. 예측 수단 및 예측 오차 디코딩 수단을 적용한 후 디코더는 출력 비디오 프레임을 형성하기 위해 예측 및 예측 오차 신호(픽셀 값)을 가산한다. 또한, 디코더(및 인코더)는 출력 비디오의 품질을 개선하기 위해, 디스플레이를 위해 출력 비디오를 전달하고/하거나 비디오 시퀀스에서 도래하는(forthcoming) 프레임에 대한 예측 참조(prediction reference)로서 출력 비디오를 저장하기 전에 추가적인 필터링 수단을 적용할 수 있다.
필터링은, 예를 들어, 디블로킹(deblocking), 샘플 적응적 오프셋(sample adaptive offset: SAO) 및/또는 적응적 루프 필터링(adaptive loop filtering: ALF) 중 하나 이상을 포함할 수 있다. H.264/AVC는 디블로킹을 포함하는 반면, HEVC는 디블로킹 및 SAO를 모두 포함한다.
전형적인 비디오 코덱에서, 움직임 정보는 예측 단위와 같은 각각의 움직임 보상된 이미지 블록과 연관된 움직임 벡터로써 표시된다. 이들 움직임 벡터 각각은 (인코더 측에서) 코딩되거나 (디코더 측에서) 디코딩될 픽처의 이미지 블록 및 이전에 코딩된 또는 디코딩된 픽처 중 하나의 예측 소스 블록(prediction source block)의 변위를 나타낸다. 움직임 벡터를 효율적으로 표현하기 위해서, 움직임 벡터는 전형적으로 블록별 예측된 움직임 벡터(block specific predicted motion vector)에 대해서 차분적으로(differentially) 코딩된다. 전형적인 비디오 코덱에서, 예측된 움직임 벡터는 사전 정의된 방식으로, 예를 들어, 인접한 블록의 인코딩된 또는 디코딩된 움직임 벡터의 중간값(median)을 계산함으로써 생성된다. 움직임 벡터 예측을 생성하는 다른 방식은 시간적 참조 픽처(temporal reference picture)에 인접한 블록 및/또는 코로케이팅된(co-located) 블록으로부터 예측 후보의 리스트를 생성하고, 선택된 후보를 움직임 벡터 예측자로서 시그널링하는 것이다. 움직임 벡터 값을 예측하는 것에 더하여, 어느 참조 픽처가 움직임 보상된 예측을 위해 이용되는지 예측될 수 있고, 이 예측 정보는, 예를 들어, 이전에 코딩된/디코딩된 픽처의 참조 인덱스에 의해 표현될 수 있다. 참조 인덱스는 전형적으로 시간적 참조 픽처의 인접한 블록 및/또는 코로케이팅된 블록으로부터 예측된다. 더욱이, 전형적인 고효율 비디오 코덱은 흔히 병합하기/병합 모드(merging/merge mode)로 불리는 추가적 움직임 정보 코딩/디코딩 메커니즘을 이용하는데, 여기서 각각의 이용 가능한 참조 픽처 리스트에 대해 움직임 벡터 및 대응하는 참조 픽처 인덱스를 포함하는 움직임 필드 정보(motion field information) 전부가, 어떤 수정/정정도 없이 예측되고 이용된다. 유사하게, 움직임 필드 정보를 예측하는 것은 시간적 참조 픽처의 인접한 블록 및/또는 코로케이팅된 블록의 움직임 필드 정보를 이용하여 수행되고, 이용된 움직임 필드 정보는 이용 가능한 인접한/코로케이팅된 블록의 움직임 필드 정보로 채워진 움직임 필드 후보 리스트의 리스트 중에 시그널링된다.
전형적인 비디오 코덱은 (디)코딩되는 블록에 대해 단일 예측 블록이 이용되는 단예측(uni-prediction)과, (디)코딩되는 블록에 대한 예측을 형성하기 위해 2개의 예측 블록이 조합되는 쌍예측(bi-prediction)을 이용할 수 있다. 일부 비디오 코덱은 가중화된 예측(weighted prediction)이 가능하며, 여기서 예측 블록의 샘플 값은 잔차 정보를 추가하기 전에 가중화된다. 예를 들어, 승산적 가중 인자(multiplicative weighting factor) 및 가산적 오프셋(additive offset)이 적용될 수 있다. 일부 비디오 코덱에서 가능한 명시적인 가중화된 예측에서, 가중 인자 및 오프셋은, 예를 들어, 각각의 허용 가능한 참조 픽처 인덱스에 대한 슬라이스 헤더에 코딩될 수 있다. 일부 비디오 코덱에서 가능한 묵시적인 가중화된 예측에서, 가중 인자 및/또는 오프셋은 코딩되지 않지만, 예를 들어, 참조 픽처의 상대적인 픽처 순서 카운트(Picture Order Count: POC) 거리에 기초하여 도출된다.
전형적인 비디오 코덱에서, 움직임 보상 후의 예측 잔차는 우선 (DCT 같은) 변환 커널(transform kernel)을 이용하여 변환되고 이후에 코딩된다. 그 이유는 흔히 잔차 간에 어떤 상관(correlation)이 여전히 존재하고, 변환은 많은 경우에 이 상관을 감소시키고 더 효율적인 코딩을 제공하는 데 도움이 될 수 있기 때문이다.
전형적인 비디오 인코더는 최적의 코딩 모드, 예를 들어, 원하는 매크로 블록 모드 및 연관된 움직임 벡터를 찾아내기 위해 라그랑주 비용 함수(Lagrangian cost function)를 활용한다. 이러한 종류의 비용 함수는 손실 코딩(lossy coding) 방법으로 인한 (정확한 또는 추정된) 이미지 왜곡 및 이미지 영역 내의 픽셀 값을 표현하는 데에 요구되는 정보의 (정확한 또는 추정된) 양을 함께 결부시키기 위해 가중 인자 λ를 사용한다.
C = D + λR (1)
여기서 C는 최소화될 라그랑주 비용(Lagrangian cost)이고, D는 모드 및 움직임 벡터가 고려된 이미지 왜곡(예를 들어, 평균 제곱 오차(Mean Squared Error))이며, R은 (후보 움직임 벡터를 표현하기 위한 데이터의 양을 포함하여) 디코더에서 이미지 블록을 재구성하기 위해 요구되는 데이터를 표현하기 위해 필요한 비트(bit)의 수이다.
HEVC 표준에서, 픽처는 직사각형이고 정수 개의 LCU를 포함하는 타일(tile)로 파티셔닝될 수 있다. HEVC 표준에서, 타일로의 파티셔닝은 타일의 높이와 폭이 최대치에서 하나의 LCU만큼 서로 상이한 정규 그리드를 형성하거나, 또는 타일로의 파티셔닝은 표시된 (LCU에서의) 타일 열의 폭과 (LCU에서의) 타일 행의 높이의 리스트를 따를 수 있다. 타일은 픽처 내에서 래스터 스캔에서 연속적으로 비트스트림으로 순서화된다. 타일은 정수 개의 슬라이스를 포함할 수 있다. 타일의 개념은 HEVC를 참조하여 설명되었지만, 동일하거나 유사한 개념이 다른 코딩 및 디코딩 방법에서 이용 가능할 수 있고, 이하에서 구문(phrase) 타일은 HEVC 타일에 한정되지 않는 일반적인 용어로서 이용될 수 있음을 이해할 필요가 있다.
픽처의 시퀀스에서 특정 위치의 타일 세트는 제약된 방식으로 인코딩될 수 있으므로, 픽처의 시퀀스에서 특정 위치의 타일 세트의 디코딩은 타일 세트 외부의 샘플 값을 필요로 하지 않는다. HEVC에서, 이러한 제약은 시간적 움직임 제약된 타일 세트 SEI 메시지로 표시될 수 있다. 시간적 움직임 제약된 타일 세트 SEI 메시지는 인터 예측 프로세스가 (인코딩의 선택에 의해) 제약됨을 표시하여, 각각의 식별된 타일 세트 외부의 어떠한 샘플 값도, 그리고 식별된 타일 세트 외부의 하나 이상의 샘플 값을 이용하여 도출되는 프랙셔널 샘플 위치(fractional sample position)에 있는 어떠한 샘플 값도 식별된 타일 세트 내의 임의의 샘플의 인터 예측에 이용되지 않도록 한다. 따라서, 타일 세트는 독립적으로 디코딩 가능한 영역으로 간주될 수 있다.
비디오 코딩 표준 및 사양은 인코더로 하여금 코딩된 픽처를 코딩된 슬라이스 등으로 분할할 수 있도록 할 수 있다. 픽처내 예측은 전형적으로 슬라이스 경계에 걸쳐 불능화된다(disabled). 그러므로, 슬라이스는 코딩된 픽처를 독립적으로 디코딩 가능한 조각으로 나누는 방식으로 간주될 수 있다. H.264/AVC 및 HEVC에서, 픽처내 예측은 슬라이스 경계에 걸쳐 불능화될 수 있다. 그러므로, 슬라이스는 코딩된 픽처를 독립적으로 디코딩 가능한 조각으로 나누는 방식으로 간주될 수 있고, 따라서 슬라이스는 흔히 송신을 위한 기본 유닛으로 간주된다. 많은 경우에, 인코더는 어느 타입의 픽처내 예측이 슬라이스 경계에 걸쳐 꺼지는지(turned off)를 비트스트림에 표시할 수 있고, 디코더 동작은 이 정보를, 예를 들어, 어느 예측 소스가 이용 가능한지를 판단할 때 고려한다. 예를 들어, 만일 이웃 매크로 블록 또는 CU가 상이한 슬라이스에 존재하는 경우, 이웃 매크로 블록 또는 CU로부터의 샘플은 인트라 예측에 이용할 수 없는 것으로 간주될 수 있다.
HEVC에서, 슬라이스는 정수 개의 LCU로 구성된다. LCU는 타일이 사용되지 않는 경우 타일 내 또는 픽처 내에서 LCU의 래스터 스캔 순서로 스캐닝된다. 슬라이스는 정수 개의 타일을 포함하거나, 또는 슬라이스는 타일에 포함될 수 있다. LCU 내에서, CU는 특정한 스캔 순서를 갖는다.
각각 H.264/AVC 또는 HEVC 인코더의 출력 및 H.264/AVC 또는 HEVC 디코더의 입력을 위한 기본 유닛은, 네트워크 추상화 계층(Network Abstraction Layer: NAL) 유닛이다. 패킷 지향형(packet-oriented) 네트워크에서의 전송 또는 구조화된 파일로의 저장을 위해, NAL 유닛은 패킷 또는 유사한 구조로 캡슐화될 수 있다. H.264/AVC 및 HEVC에는 프레이밍 구조(framing structure)를 제공하지 않는 송신 또는 저장 환경에 대해 바이트스트림(bytestream) 포맷이 특정되었다. 바이트스트림 포맷은 각각의 NAL 유닛 앞에 시작 코드(start code)를 붙임으로써 NAL 유닛을 서로 분리한다. NAL 유닛 경계의 오검출(false detection)을 피하기 위하여, 인코더는 바이트 지향형(byte-oriented) 시작 코드 에뮬레이션(emulation) 방지 알고리즘을 실행하는데, 이는 만일 그렇지 않으면 시작 코드가 나타났을 경우에 에뮬레이션 방지 바이트를 NAL 유닛 페이로드에 추가한다. 패킷 지향형 시스템 및 스트림 지향형 시스템 간의 간단한 게이트웨이(gateway) 동작을 가능하게 하기 위해서, 시작 코드 에뮬레이션 방지는 바이트스트림 포맷이 이용 중인지 여부와 무관하게 항상 수행될 수 있다. NAL 유닛은 후속할 데이터 타입의 표시 및 에뮬레이션 방지 바이트와 함께 필요에 따라 사이 사이에 배치된(interspersed) RBSP의 형태로 그 데이터를 포함하는 바이트를 포함하는 구문론 구조로서 정의될 수 있다. 미가공 바이트 시퀀스 페이로드(Raw Byte Sequence Payload: RBSP)는 NAL 유닛에 캡슐화된 정수 개의 바이트를 포함하는 구문론 구조로서 정의될 수 있다. RBSP는 비어 있거나 또는 RBSP 정지 비트(stop bit)가 후속하고 0개 이상의 0인 후속 비트가 후속하는 구문론 요소를 포함하는 데이터 비트의 스트링(string)의 형태를 갖는다.
NAL 유닛은 헤더와 페이로드로 구성된다. H.264/AVC 및 HEVC에서, NAL 유닛 헤더는 NAL 유닛의 타입을 표시한다.
H.264/AVC NAL 유닛 헤더는 2비트 nal_ref_idc 구문론 요소를 포함하는데, 0이면 NAL 유닛에 포함된 코딩된 슬라이스가 비참조 픽처(non-reference picture)의 일부임을 나타내고, 0보다 크면 NAL 유닛에 포함된 코딩된 슬라이스가 참조 픽처의 일부임을 나타낸다. SVC 및 MVC NAL 유닛에 대한 헤더는 스케일 가능성 및 멀티뷰 계층 구조(hierarchy)에 관련된 다양한 표시를 추가적으로 포함할 수 있다.
HEVC에서, 2바이트 NAL 유닛 헤더는 모든 특정된 NAL 유닛 타입에 대해 이용된다. NAL 유닛 헤더는 보류된(reserved) 1비트, 6비트의 NAL 유닛 타입 표시, 한시적 레벨(temporal level)을 위한 3비트의 nuh_temporal_id_plus1 표시(1 이상일 것이 요구될 수 있음) 및 6비트의 nuh_layer_id 구문론 요소를 포함한다. temporal_id_plus1 구문론 요소는 NAL 유닛에 대한 한시적 식별자(temporal identifier)로 간주될 수 있고, 0에서부터의(zero-based) TemporalId 변수가 TemporalId = temporal_id_plus1 - 1과 같이 도출될 수 있다. TemporalId가 0이면 가장 낮은 한시적 레벨에 대응한다. temporal_id_plus1의 값은 두 NAL 유닛 헤더 바이트를 수반하는 시작 코드 에뮬레이션을 피하기 위해서 0이 아닌 것이 요구된다. 선택된 값보다 더 크거나 동일한 TemporalId를 가진 모든 VCL NAL 유닛을 배제하고, 모든 다른 VCL NAL 유닛을 포함시킴으로써 생성된 비트스트림은 여전히 합치한다. 결과적으로, TID와 동일한 TemporalId를 가진 픽처는 TID보다 더 큰 TemporalId를 가진 어떤 픽처도 인터 예측 참조로서 이용하지 않는다. 서브계층(sub-layer) 또는 시간적 서브계층은 TemporalId 변수의 특정한 값을 갖는 VCL NAL 유닛 및 연관된 비-VCL NAL 유닛(non-VCL NAL unit)으로 구성된 시간적 스케일 가능(temporal scalable) 비트스트림의 시간적 스케일 가능 계층으로 정의될 수 있다. nuh_layer_id는 스케일 가능성 계층 식별자(scalability layer identifier)로서 이해될 수 있다.
NAL 유닛은 비디오 코딩 계층(Video Coding Layer: VCL) NAL 유닛 및 비-VCL NAL 유닛으로 분류될 수 있다. 전형적으로 VCL NAL 유닛은 코딩된 슬라이스 NAL 유닛이다. H.264/AVC에서, 코딩된 슬라이스 NAL 유닛은 압축되지 않은 픽처의 샘플의 블록에 각각 대응하는 하나 이상의 코딩된 매크로 블록을 표현하는 구문론 요소를 포함한다. HEVC에서, VCL NAL 유닛은 하나 이상의 CU를 표현하는 구문론 요소를 포함한다.
H.264/AVC에서, 코딩된 슬라이스 NAL 유닛은 순간적 디코딩 리프레시(Instantaneous Decoding Refresh: IDR) 픽처의 코딩된 슬라이스 또는 비-IDR 픽처의 코딩된 슬라이스임이 표시될 수 있다.
HEVC에서, VCL NAL 유닛의 nal_unit_type은 픽처 타입을 표시하는 것으로 간주될 수 있다. HEVC에서, 픽처 타입에 대한 약칭은, 트레일링(TRAIL) 픽처, 시간적 서브계층 액세스(TSA), 단계식 시간적 서브계층 액세스(STSA), 랜덤 액세스 디코딩 가능 리딩(RADL) 픽처, 랜덤 액세스 생략형 리딩(RASL) 픽처, 절단 링크 액세스(BLA) 픽처, 순간전 디코딩 리프레시(IDR) 픽처, 클린 랜덤 액세스(CRA) 픽처로 정의될 수 있다. 픽처 타입은 인트라 랜덤 액세스 포인트(IRAP) 픽처와 비-IRAP 픽처로 분류할 수 있다.
HEVC에서, 랜덤 액세스 포인트(Random Access Point: RAP) 픽처는, 인트라 랜덤 액세스 포인트(Intra RAP: IRAP) 픽처로도 불릴 수 있고, 각각의 슬라이스 또는 슬라이스 세그먼트가 16에서 23까지(16과 23도 포함함)의 범위 내의 nal_unit_type을 가진 픽처이다. 독립적인 계층 내의 IRAP 픽처는 오직 인트라 코딩된 슬라이스를 포함한다. nuh_layer_id 값 currLayerId를 갖는 예측된 계층에 속하는 IRAP 픽처는 P, B 및 I 슬라이스를 포함할 수 있고, currLayerId와 동일한 nuh_layer_id를 갖는 다른 픽처로부터는 인터 예측을 이용할 수 없으며, 그것의 직접적인 참조 계층으로부터 인터 계층 예측을 사용할 수 있다. HEVC의 현재 버전에서, IRAP 픽처는 BLA 픽처, CRA 픽처 또는 IDR 픽처일 수 있다. 베이스 계층을 포함하는 비트스트림의 첫 번째 픽처는 베이스 계층에서의 IRAP 픽처이다. 필요한 파라미터 세트가 그것이 활성화될 필요가 있을 때 이용 가능하다면, 독립적인 계층에서의 IRAP 픽처 및 디코딩 순서에 있어서 독립적인 계층에서의 모든 차후의 비-RASL 픽처는 디코딩 순서에 있어서 IRAP 픽처를 선행하는 어떤 픽처의 디코딩 프로세스도 수행하지 않고서도 정확히 디코딩될 수 있다. nuh_layer_id 값 currLayerId를 갖는 예측된 계층에 속하는 IRAP 픽처 및 디코딩 순서에 있어서 currLayerId와 동일한 nuh_layer_id를 갖는 모든 차후의 비-RASL 픽처는, 필요한 파라미터 세트가 그것이 활성화될 필요가 있을 때 이용 가능하고, currLayerId와 동일한 nuh_layer_id를 갖는 계층의 각각의 직접적인 참조 계층의 디코딩이 개시된 경우(즉 currLayerId와 동일한 nuh_layer_id를 갖는 계층의 직접적인 참조 계층의 모든 nuh_layer_id 값과 동일한 refLayerId에 대해 LayerInitializedFlag[refLayerId]가 1인 경우), 디코딩 순서에 있어서 IRAP 픽처에 선행하는 currLayerId와 동일한 nuh_layer_id를 갖는 어떤 픽처의 디코딩 프로세스도 수행하지 않고서도 정확히 디코딩될 수 있다. IRAP 픽처가 아닌 인트라 코딩된 슬라이스만을 포함하는 픽처가 비트스트림에 있을 수 있다.
HEVC에서, CRA 픽처는 디코딩 순서에 있어서 비트스트림의 첫 번째 픽처일 수 있거나, 또는 비트스트림에서 나중에 출현할 수 있다. HEVC에서 CRA 픽처는, 디코딩 순서에서 CRA 픽처에 후속하지만, 출력 순서에서 CRA 픽처에 선행하는 소위 리딩 픽처(leading picture)를 허용한다. 리딩 픽처 중 일부, 소위 RASL 픽처는, CRA 픽처 이전에 디코딩된 픽처를 참조로서 이용할 수 있다. CRA 픽처에서 랜덤 액세스가 수행되면, 디코딩 및 출력 순서 모두에서 CRA 픽처에 후속하는 픽처는 디코딩가능하고, 따라서 IDR 픽처의 클린 랜덤 액세스 기능과 유사하게 클린 랜덤 액세스가 달성된다.
CRA 픽처는 연관된 RADL 또는 RASL 픽처를 포함할 수 있다. CRA 픽처가 디코딩 순서에 있어서 비트스트림 내의 첫 번째 픽처인 경우, CRA 픽처는 디코딩 순서에 있어서 코딩된 비디오 시퀀스의 첫 번째 픽처이고, 비트스트림 내에 존재하지 않는 픽처에 대한 참조를 포함할 수 있으므로, 어떤 연관된 RASL 픽처도 디코더에 의해 출력되지 않으며 디코딩이 가능하지 않을 수 있다.
리딩 픽처는 출력 순서에 있어서 연관된 RAP 픽처에 선행하는 픽처이다. 연관된 RAP 픽처는 (만일 존재한다면) 디코딩 순서에서 이전의 RAP 픽처다. 리딩 픽처는 RADL 또는 RASL 픽처 중 하나이다.
모든 RASL 픽처는 연관된 BLA 또는 CRA 픽처의 리딩 픽처이다. 연관된 RAP 픽처가 BLA 픽처이거나 비트스트림의 첫 번째 코딩된 픽처인 경우, RASL 픽처는 비트스트림 내에 존재하지 않는 픽처에 대한 참조를 포함할 수 있으므로, RASL 픽처는 출력되지 않으며 정확히 디코딩 가능하지 않을 수 있다. 그러나, RASL 픽처의 연관된 RAP 픽처 전에 RAP 픽처로부터 디코딩이 시작한 경우 RASL 픽처는 정확히 디코딩될 수 있다. RASL 픽처는 비-RASL 픽처의 디코딩 프로세스에 대한 참조 픽처로서 사용되지 않는다. 존재하는 경우, 모든 RASL 픽처는, 디코딩 순서에 있어서, 동일한 연관된 RAP 픽처의 모든 트레일링 픽처(trailing picture)에 선행한다. HEVC 표준의 일부 드래프트에서, RASL 픽처는 폐기를 위해 태깅된(Tagged for Discard: TFD) 픽처로 참조되었다.
모든 RADL 픽처는 리딩 픽처이다. RADL 픽처는 동일한 연관된 RAP 픽처의 트레일링 픽처의 디코딩 프로세스에 대해 참조 픽처로서 이용되지 않는다. 존재하는 경우, 모든 RADL 픽처는, 디코딩 순서에 있어서, 동일한 연관된 RAP 픽처의 모든 트레일링 픽처에 선행한다. RADL 픽처는 디코딩 순서에 있어서 연관된 RAP 픽처에 선행하는 어떤 픽처도 참조하지 않으며, 따라서 연관된 RAP 픽처로부터 디코딩이 시작하는 경우 정확히 디코딩될 수 있다. HEVC 표준의 일부 드래프트에서, RADL 픽처는 디코딩 가능 리딩 픽처(Decodable Leading Picture: DLP)로 언급되었다.
CRA 픽처로부터 시작하는 비트스트림의 일부가 다른 비트스트림에 포함되는 경우, CRA 픽처와 연관된 RASL 픽처의 참조 픽처 중 일부가 조합된 비트스트림에 존재하지 않을 수 있으므로, 이는 정확히 디코딩 가능하지 않을 수 있다. 그러한 접합(splicing) 동작을 간단하게 하기 위하여, CRA 픽처의 NAL 유닛 타입은 그것이 BLA 픽처임을 표시하도록 변경될 수 있다. BLA 픽처와 연관된 RASL 픽처는 정확히 디코딩이 가능하지 않을 수 있으므로, 출력/디스플레이되지 않는다. 또한, BLA 픽처와 연관된 RASL 픽처는 디코딩으로부터 제외될 수 있다.
BLA 픽처는 디코딩 순서에 있어서 비트스트림의 첫 번째 픽처일 수 있거나, 비트스트림에서 나중에 출현할 수 있다. 각각의 BLA 픽처는 새로운 코딩된 비디오 시퀀스를 시작하고, 디코딩 프로세스에 대해 IDR 픽처와 유사한 효과를 갖는다. 그러나, BLA 픽처는 비어 있지 않은 참조 픽처 세트를 특정하는 구문론 요소를 포함한다. BLA 픽처가 BLA_W_LP와 동일한 nal_unit_type을 갖는 경우, 그것은 연관된 RASL 픽처를 가질 수 있지만, 비트스트림에 존재하지 않는 픽처에 대한 참조를 포함할 수 있으므로, 연관된 RASL 픽처는 디코더에 의해 출력되지 않으며 디코딩이 가능하지 않을 수 있다. BLA 픽처가 BLA_W_LP와 동일한 nal_unit_type을 갖는 경우, 그것은 또한 연관된 RADL 픽처를 가질 수 있고, 연관된 RADL 픽처는 디코딩되는 것으로 특정된다. BLA 픽처가 BLA_W_DLP와 동일한 nal_unit_type을 갖는 경우, 그것은 연관된 RASL 픽처를 갖지 않지만 연관된 RADL 픽처를 가질 수 있고, 연관된 RADL 픽처는 디코딩되는 것으로 특정된다. BLA 픽처가 BLA_N_LP와 동일한 nal_unit_type을 갖는 경우, 그것은 어떤 연관된 리딩 픽처도 갖지 않는다.
IDR_N_LP와 동일한 nal_unit_type을 갖는 IDR 픽처는 비트스트림에 존재하는 연관된 리딩 픽처를 갖지 않는다. IDR_W_LP와 동일한 nal_unit_type을 갖는 IDR 픽처는 비트스트림에 존재하는 연관된 RASL 픽처를 갖지 않지만, 비트스트림에 연관된 RADL 픽처를 가질 수 있다.
nal_unit_type의 값이 TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N, RSV_VCL_N10, RSV_VCL_N12 또는 RSV_VCL_N14와 동일한 경우, 디코딩된 픽처는 동일한 시간적 서브계층의 어떤 다른 픽처에 대해서도 참조로서 이용되지 않는다. 즉, HEVC에서, nal_unit_type의 값이 TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N, RSV_VCL_N10, RSV_VCL_N12 또는 RSV_VCL_N14와 동일한 경우, 디코딩된 픽처는 동일한 값의 TemporalId를 갖는 임의의 픽처의 RefPicSetStCurrBefore, RefPicSetStCurrAfter 및 RefPicSetLtCurr 중 어느 것에도 포함되지 않는다. TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N, RSV_VCL_N10, RSV_VCL_N12 또는 RSV_VCL_N14와 동일한 nal_unit_type을 갖는 코딩된 픽처는 동일한 값의 TemporalId를 갖는 다른 픽처의 디코딩 가능성에 영향을 미치지 않고 폐기될 수 있다.
트레일링 픽처는 출력 순서에 있어서 연관된 RAP 픽처에 후속하는 픽처로 정의될 수 있다. 트레일링 픽처인 어떤 픽처도 RADL_N, RADL_R, RASL_N 또는 RASL_R과 동일한 nal_uni_type을 갖지 않는다. 리딩 픽처인 임의의 픽처는, 디코딩 순서에 있어서, 동일한 RAP 픽처와 연관된 모든 트레일링 픽처에 선행하도록 제한될 수 있다. 비트스트림에는 BLA_W_DLP 또는 BLA_N_LP와 동일한 nal_unit_type을 갖는 BLA 픽처와 연관된 RASL 픽처가 하나도 존재하지 않는다. 비트스트림에는 BLA_N_LP와 동일한 nal_unit_type을 갖는 BLA 픽처와 연관되거나, 또는 IDR_N_LP와 동일한 nal_unit_type을 갖는 IDR 픽처와 연관된 RADL 픽처가 하나도 존재하지 않는다. CRA 또는 BLA 픽처와 연관된 임의의 RASL 픽처는, 출력 순서에 있어서, CRA 또는 BLA 픽처와 연관된 임의의 RADL 픽처에 선행하도록 제한될 수 있다. CRA 픽처와 연관된 임의의 RASL 픽처는, 디코딩 순서에 있어서 CRA 픽처에 선행하는 임의의 다른 RAP 픽처를 출력 순서에 있어서 후속하도록 제한될 수 있다.
HEVC에서 2개의 픽처 타입, TSA 및 STSA 픽처 타입이 있는데, 그것은 시간적 서브계층 전환점(temporal sublayer switching point)을 표시하는 데에 이용될 수 있다. 만일 최대 N의 TemporalId를 갖는 시간적 서브계층이 TSA 또는 STSA 픽처까지(불포함), 그리고 TSA 또는 STSA 픽처의 TemporalId가 N+1이 될 때까지 디코딩된 경우, TemporalId가 N+1인 TSA 또는 STSA 픽처의 (디코딩 순서에 있어서) 모든 후속하는 픽처는 디코딩이 가능하게 된다. TSA 픽처 타입은 TSA 픽처 자체, 그리고 디코딩 순서에 있어서 TSA 픽처에 후속하는 동일한 서브계층의 모든 픽처에 대해 제한을 부과할 수 있다. 이들 픽처 중 어떤 것도 디코딩 순서에 있어서 TSA 픽처에 선행하는 동일한 서브계층의 임의의 픽처로부터의 인터 예측을 이용하도록 허용되지 않는다. TSA 정의는 디코딩 순서에 있어서 TSA 픽처에 후속하는 더 높은 서브계층의 픽처에 대해 제한을 더 부과할 수 있다. 이들 픽처 중 아무것도 디코딩 순서에 있어서 TSA 픽처에 선행하는 픽처를, 만일 그 픽처가 TSA 픽처와 동일하거나 더 높은 서브계층에 속하면, 참조하도록 허용되지 않는다. TSA 픽처는 0보다 더 큰 TemporalId를 갖는다. STSA는 TSA 픽처와 유사하지만 디코딩 순서에 있어서 STSA 픽처에 후속하는 더 높은 서브계층 내의 픽처에 대해 제한을 부과하지 않으므로, STSA 픽처가 상주하는 서브계층 상에서만 업-스위칭(up-switching)이 가능하다.
비-VCL NAL 유닛은, 예를 들어, 시퀀스 파라미터 세트, 픽처 파라미터 세트, 보충적 강화 정보(Supplemental Enhancement Information: SEI) NAL 유닛, 액세스 유닛 구분자(access unit delimiter), 시퀀스 NAL 유닛의 종단, 비트스트림 NAL 유닛의 종단, 또는 필러(filler) 데이터 NAL 유닛의 타입 중 하나일 수 있다. 파라미터 세트는 디코딩된 픽처의 재구성을 위해 필요할 수 있는 반면, 다른 비-VCL NAL 유닛 중 다수는 디코딩된 샘플 값의 재구성에 필요하지 않다. 액세스 유닛 구분자 NAL 유닛은 존재하는 경우, 디코딩 순서에 있어서 액세스 유닛의 첫 번째 NAL 유닛일 것이 요구되므로, 액세스 유닛의 시작을 표시하는데 이용될 수 있다. 코딩된 유닛 완성을 위해 SEI 메시지 또는 전용 NAL 유닛과 같은 표시자(indicator)가 비트스트림에 포함되거나 비트스트림으로부터 디코딩될 수 있는 것이 제안되었다. 코딩된 유닛 완성 표시자는 코딩된 픽처 유닛의 종료를 나타내는지에 대한 정보를 추가적으로 포함할 수 있으며, 이 경우 코딩된 유닛 완성 표시자는 액세스 유닛의 종료를 알리는 계층의 조합의 정보를 추가적으로 포함할 수 있다.
코딩된 비디오 시퀀스에서 변경되지 않고 유지되는 파라미터는 시퀀스 파라미터 세트에 포함될 수 있다. 시퀀스 파라미터 세트는, 디코딩 프로세스가 필요로 할 수 있는 파라미터에 더하여, 버퍼링, 픽처 출력 타이밍, 렌더링 및 리소스 예약에 중요할 수 있는 파라미터를 포함하는 비디오 유용성 정보(Video Usability Information: VUI)를 선택적으로 포함할 수 있다. H.264/AVC에는 시퀀스 파라미터 세트를 전달하도록 특정된 3개의 NAL 유닛, 즉, 시퀀스 내의 H.264/AVC VCL NAL 유닛에 대한 모든 데이터를 포함하는 시퀀스 파라미터 세트 NAL 유닛, 보조적 코딩된 픽처(auxiliary coded picture)에 대한 데이터를 포함하는 시퀀스 파라미터 세트 확장 NAL 유닛, 그리고 MVC 및 SVC VCL NAL 유닛에 대한 서브세트 시퀀스 파라미터 세트가 있다. HEVC에서 시퀀스 파라미터 세트 RBSP는 하나 이상의 픽처 파라미터 세트 RBSP에 의해 또는 버퍼링 기간 SEI 메시지를 포함하는 하나 이상의 SEI NAL 유닛에 의해 참조될 수 있는 파라미터를 포함한다. 픽처 파라미터 세트는 몇 개의 코딩된 픽처에서 변경되지 않을 가능성이 높은 파라미터를 포함한다. 픽처 파라미터 세트 RBSP는 하나 이상의 코딩된 픽처의 코딩된 슬라이스 NAL 유닛에 의해 참조될 수 있는 파라미터를 포함할 수 있다.
HEVC에서, 비디오 파라미터 세트(Video Parameter Set: VPS)는 각각의 슬라이스 세그먼트 헤더에서 발견되는 구문론 요소에 의해 참조되는 PPS에서 발견되는 구문론 요소에 의해 참조되는 SPS에서 발견되는 구문론 요소의 내용에 의해 결정되는 것과 같이 0개 이상의 코딩된 비디오 시퀀스 전체에 적용되는 구문론 요소를 포함하는 구문론 구조로서 정의될 수 있다.
비디오 파라미터 세트 RBSP는 하나 이상의 시퀀스 파라미터 세트 RBSP에 의해 참조될 수 있는 파라미터를 포함할 수 있다.
비디오 파라미터 세트(VPS), 시퀀스 파라미터 세트(Sequence Parameter Set: SPS) 및 픽처 파라미터 세트(Picture Parameter Set: PPS) 간의 관계 및 계층 구조는 다음과 같이 설명될 수 있다. VPS는 스케일 가능성 및/또는 3D 비디오의 맥락에서 그리고 파라미터 세트 계층 구조에서 SPS보다 한 레벨 위에 상주한다. VPS는, 전체적인 코딩된 비디오 시퀀스의 모든 (스케일 가능성 또는 뷰) 계층에 걸쳐서 모든 슬라이스에 대해 공통적인 파라미터를 포함할 수 있다. SPS는, 전체적인 코딩된 비디오 시퀀스 내의 특정한 (스케일 가능성 또는 뷰) 계층의 모든 슬라이스에 대해 공통적이며, 여러 (스케일 가능성 또는 뷰) 계층에 의해 공유될 수 있는 파라미터를 포함한다. PPS는, 특정한 계층 표현(하나의 액세스 유닛에서 하나의 스케일 가능성 또는 뷰 계층의 표현)의 모든 슬라이스에 대해 공통적이고 여러 계층 표현의 모든 슬라이스에 의해 공유될 가능성이 높은 파라미터를 포함한다.
VPS는 비트스트림 내의 계층의 의존성 관계에 대한 정보와 코딩된 비디오 시퀀스 전체의 모든 (스케일 가능성 또는 뷰) 계층에 걸쳐서 모든 슬라이스에 적용가능한 많은 다른 정보를 제공할 수 있다. VPS는 2개의 부분, 베이스 VPS 및 VPS 확장을 포함한다고 간주될 수 있는데, 여기서 VPS 확장은 선택적으로 존재할 수 있다. HEVC에서, 베이스 VPS는 vps_extension() 구문론 구조 없이 video_parameter_set_rbsp() 구문론 구조를 포함하는 것으로 간주될 수 있다. video_parameter_set_rbsp() 구문론 구조는 대부분 이미 HEVC 버전 1에서 특정되었고, 베이스 계층 디코딩에 이용될 수 있는 구문론 요소를 포함한다. HEVC에서, VPS 확장은 vps_extension() 구문론 구조를 포함하는 것으로 간주될 수 있다. vps_extension() 구문론 구조는 대부분 멀티 계층 확장을 위해 HEVC 버전 2에서 특정되었고, 하나 이상의 비베이스(non-base) 계층의 디코딩에 이용될 수 있는 구문론 요소, 예를 들어, 계층 의존성 관계를 나타내는 구문론 요소를 포함한다.
H.264/AVC 및 HEVC 구문론은 파라미터 세트의 많은 인스턴스(instance)를 허용하고, 각각의 인스턴스는 고유한 식별자로 식별된다. 파라미터 세트를 위해 필요한 메모리 이용을 제한하기 위해서, 파라미터 세트 식별자를 위한 값의 범위는 제한되었다. H.264/AVC 및 HEVC에서, 각각의 슬라이스 헤더는 슬라이스를 포함하는 픽처의 디코딩을 위해 활성인 픽처 파라미터 세트의 식별자를 포함하고, 각각의 픽처 파라미터 세트는 활성 시퀀스 파라미터 세트의 식별자를 포함한다. 결과적으로, 픽처 파라미터 세트 및 시퀀스 파라미터 세트의 전송은 슬라이스의 전송과 정확하게 동기화될 필요는 없다. 대신, 활성 시퀀스 및 파라미터 세트는 그것이 참조되기 전에 어느 때라도 수신되는 것으로 충분한데, 이는 슬라이스 데이터에 대해 사용되는 프로토콜에 비해 더 신뢰할 수 있는 전송 메커니즘을 이용하여 "대역외(out-of-band)"로 파라미터 세트를 전송할 수 있도록 한다. 예를 들어, 파라미터 세트가 실시간 전송 프로토콜(Real-time Transport Protocol: RTP) 세션에 대한 세션 설명(session description)에 파라미터로서 포함될 수 있다. 파라미터 세트가 대역내(in-band)에서 전송되면, 그것은 에러 강인성(error robustness)을 개선하기 위해 반복될 수 있다.
파라미터 세트는 슬라이스 또는 다른 활성 파라미터 세트 또는 일부 경우에는 버퍼링 주기 SEI 메시지와 같은 다른 구문론 구조를 참조하여 활성화될 수 있다.
SEI NAL 유닛은 하나 이상의 SEI 메시지를 포함할 수 있는데, 이는 출력 픽처의 디코딩을 위해 필요하지는 않지만, 픽처 출력 타이밍, 렌더링, 에러 검출, 에러 은폐 및 리소스 예약과 같이 관련 프로세스에 도움이 될 수 있다. 몇 개의 SEI 메시지가 H.264/AVC 및 HEVC에서 특정되고, 조직 및 회사는 사용자 데이터 SEI 메시지를 이용하여 자신의 사용을 위해 SEI 메시지를 특정할 수 있다. H.264/AVC 및 HEVC는 특정된 SEI 메시지에 대한 구문론 및 의미론을 포함하지만, 수신자 측에서 메시지를 취급하는 어떤 프로세스도 정의하고 있지 않다. 결과적으로, 인코더는 SEI 메시지를 생성하는 경우 H.264/AVC 표준 또는 HEVC 표준을 따를 것이 요구되지만, 각각 H.264/AVC 표준 또는 HEVC 표준을 따르는 디코더는 출력 순서에 합치하여 SEI 메시지를 처리하도록 요구되지는 않는다. H.264/AVC 및 HEVC에 SEI 메시지의 구문론 및 의미론을 포함시키는 이유 중 하나는, 상이한 시스템 사양에서도 보충적 정보를 동일하게 해석하고, 따라서 연동될(interoperate) 수 있도록 하기 위함이다. 시스템 사양은 인코딩 종단(encoding end) 및 디코딩 종단(decoding end) 양자 모두에서 특정한 SEI 메시지의 이용을 필요로 할 수 있고, 추가적으로 수신자 측에서 특정한 SEI 메시지를 취급하기 위한 프로세스가 특정될 수 있어야 한다.
HEVC에서, 서로 상이한 nal_unit_type 값을 가진 두 타입의 SEI NAL 유닛, 즉 접미(suffix) SEI NAL 유닛 및 접두(prefix) SEI NAL 유닛이 있다. 접미 SEI NAL 유닛에 포함된 SEI 메시지는, 디코딩 순서에 있어서, 접미 SEI NAL 유닛에 선행하는 VCL NAL 유닛과 연관된다. 접두 SEI NAL 유닛에 포함된 SEI 메시지는, 디코딩 순서에 있어서, 접두 SEI NAL 유닛에 후속하는 VCL NAL 유닛과 연관된다.
코딩된 픽처는 픽처의 코딩된 표현(coded representation)이다. H.264/AVC에서 코딩된 픽처는 픽처의 디코딩을 위해 필요한 VCL NAL 유닛을 포함한다. H.264/AVC에서, 코딩된 픽처는 주요 코딩된 픽처(primary coded picture) 또는 중복적 코딩된 픽처(redundant coded picture)일 수 있다. 주요 코딩된 픽처는 유효한 비트스트림의 디코딩 프로세스에서 이용되는 반면, 중복적 코딩된 픽처는 주요 코딩된 픽처가 성공적으로 디코딩될 수 없는 경우에만 디코딩되는 중복적 표현이다. HEVC에서, 중복적 코딩된 픽처는 특정되지 않았다.
H.264/AVC에서, 액세스 유닛(Access Unit: AU)은 주요 코딩된 픽처 및 그것과 연관된 NAL 유닛을 포함한다. H.264/AVC에서, 액세스 유닛에서 NAL 유닛의 출현 순서는 다음과 같이 제한된다. 선택적인 액세스 유닛 구분자 NAL 유닛은 액세스 유닛의 시작을 나타낼 수 있다. 그 뒤로 0개 이상의 SEI NAL 유닛이 후속한다. 주요 코딩된 픽처의 코딩된 슬라이스가 다음으로 출현한다. H.264/AVC에서, 주요 코딩된 픽처의 코딩된 슬라이스 다음으로 0개 이상의 중복적 코딩된 픽처에 대한 코딩된 슬라이스가 후속할 수 있다. 중복적 코딩된 픽처는 픽처 또는 픽처의 일부의 코딩된 표현이다. 중복적 코딩된 픽처는, 주요 코딩된 픽처가, 예를 들어, 송신에서의 손실 또는 물리적 저장 매체에서의 변질(corruption)로 인해 디코더에 의해 수신되지 않는 경우에 디코딩될 수 있다.
HEVC에서, 코딩된 픽처는 픽처의 모든 코딩 트리 유닛을 포함하는 픽처의 코딩된 표현으로 정의될 수 있다. HEVC에서, 액세스 유닛은 특정된 분류 규칙에 따라 서로 연관되고, 디코딩 순서에서 연속적이며, 임의의 특정 값의 nuh_layer_id를 갖는 최대 하나의 픽처를 포함하는 NAL 유닛의 세트로 정의될 수 있다. 액세스 유닛은, 코딩된 픽처의 VCL NAL 유닛을 포함하는 것에 더하여, 비-VCL NAL 유닛도 포함할 수 있다.
코딩된 픽처가 액세스 유닛에서 특정 순서로 출현하는 것이 요구될 수 있다. 예를 들어, nuhLayerIdA와 동일한 nuh_layer_id를 갖는 코딩된 픽처는, 디코딩 순서에 있어서, 동일한 액세스 유닛에서 nuhLayerIdA보다 더 큰 nuh_layer_id를 갖는 모든 코딩된 픽처에 선행하도록 요구될 수 있다.
HEVC에서, 픽처 유닛은 코딩된 픽처의 모든 VCL NAL 유닛 및 그것의 연관된 비-VCL NAL 유닛을 포함하는 NAL 유닛의 세트로 정의될 수 있다. 비-VCL NAL 유닛에 대해 연관된 VCL NAL 유닛은, 특정 타입의 비-VCL NAL 유닛에 대해 비-VCL NAL 유닛의, 디코딩 순서에 있어서 선행 VCL NAL 유닛으로 정의되고, 다른 타입의 비-VCL NAL 유닛에 대해 비-VCL NAL 유닛의, 디코딩 순서에 있어서의 다음 VCL NAL 유닛으로 정의될 수 있다. VCL NAL 유닛에 대해 연관된 비-VCL NAL 유닛은, VCL NAL 유닛이 연관된 VCL NAL 유닛인 비-VCL NAL 유닛으로 정의될 수 있다. 예를 들어, HEVC에서, 연관된 VCL NAL 유닛은, EOS_NUT, EOB_NUT, FD_NUT, 또는 SUFFIX_SEI_NUT과 동일하거나 RSV_NVCL45 ... RSV_NVCL47 또는 UNSPEC56 ... UNSPEC63의 범위에서 nal_unit_type을 갖는 비-VCL NAL 유닛에 대해 디코딩 순서에 있어서의 선행 VCL NAL 유닛, 또는 그렇지 않으면 디코딩 순서에 있어서의 다음 VCL NAL 유닛으로 정의될 수 있다.
비트스트림은, 하나 이상의 코딩된 비디오 시퀀스를 형성하는 코딩된 픽처 및 연관된 데이터의 표현을 형성하는, NAL 유닛 스트림 또는 바이트스트림의 형태로 된, 비트의 시퀀스로서 정의될 수 있다. 동일한 파일 또는 통신 프로토콜의 동일한 접속에서와 같은 동일한 논리적 채널에서, 제 2 비트스트림이 제 1 비트스트림에 후속할 수 있다. (비디오 코딩의 맥락에서) 기본 스트림은 하나 이상의 비트스트림의 시퀀스로 정의될 수 있다. 제 1 비트스트림의 종단은 특정 NAL 유닛에 의해 표시될 수 있는데, 이는 비트스트림 종단(End Of Bitstream: EOB) NAL 유닛으로 불릴 수 있는, 비트스트림의 마지막 NAL 유닛이다. HEVC 및 그것의 현재의 드래프트 확장에서, EOB NAL 유닛은 nuh_layer_id이 0일 것이 요구된다.
H.264/AVC에서, 코딩된 비디오 시퀀스는 디코딩 순서에 있어서 IDR 액세스 유닛(포함)으로부터 다음의 IDR 액세스 유닛(불포함) 또는 비트스트림의 종단 중 어느 쪽이든 더 일찍 출현하는 것까지의 연속적인 액세스 유닛의 시퀀스로 정의된다.
HEVC에서, 코딩된 비디오 시퀀스(Coded Video Sequence: CVS)는, 예를 들어, 디코딩 순서에 있어서, NoRaslOutputFlag가 1인 IRAP 액세스 유닛과, 이에 후속하는, NoRaslOutputFlag가 1인 IRAP 액세스 유닛인 임의의 후속 액세스 유닛(불포함)까지의 모든 후속 액세스 유닛을 포함하는, 0개 이상의 NoRaslOutputFlag가 1이 아닌 IRAP 액세스 유닛으로 구성된 액세스 유닛의 시퀀스로 정의될 수 있다. IRAP 액세스 유닛은 베이스 계층 픽처가 IRAP 픽처인 액세스 유닛으로 정의될 수 있다. 디코딩 순서에 있어서 비트스트림 내에서 그 특정한 계층 내의 첫 번째 픽처이고, 디코딩 순서에 있어서 동일한 값의 nuh_layer_id를 가진 시퀀스 NAL 유닛의 종단에 후속하는 첫 번째 IRAP 픽처인, 각각의 IRD 픽처와, 각각의 BLA 픽처, 각각의 IDAP 픽처는 NoRaslOutputFlag의 값은 1이다. 멀티 계층 HEVC에서, 각각의 IRAP 픽처의 nuh_layer_id가, j가 0에서부터 NumDirectRefLayers[nuh_layer_id]-1(포함)까지의 범위인 경우, IdDirectRefLayer[nuh_layer_id][j]와 동일한 refLayerId의 모든 값에 대해 LayerInitializedFlag[nuh_layer_id]가 0이고, LayerInitializedFlag[refLayerId]가 1을 만족하면, 각각의 IRAP 픽처의 NoRaslOutputFlag의 값은 1이다. 그렇지 않으면, NoRaslOutputFlag의 값은 HandleCraAsBlaFlag와 동일하다. NoRaslOutputFlag가 1이면, NoRaslOutputFlag가 설정된 IRAP 픽처와 연관된 RASL 픽처가 디코더에 의해 출력되지 않는다는 영향을 준다. 디코더를 제어할 수 있는 외부 엔티티, 예를 들어, 플레이어 또는 수신기로부터 디코더에 HandleCraAsBlaFlag의 값을 제공하는 수단이 있을 수 있다. HandleCraAsBlaFlag는, 예를 들어, 비트스트림에서 새로운 위치를 찾거나 브로드캐스트(broadcast) 내로 튜닝하고(tune) 디코딩을 시작하며, 이후 CRA 픽처로부터 디코딩을 시작하는 플레이어에 의해 1로 설정될 수 있다. CRA 픽처의 HandleCraAsBlaFlag가 1인 경우, CRA 픽처는 마치 그것이 BLA 픽처인 것처럼 취급되고 디코딩된다.
HEVC에서, 시퀀스 종료(End Of Sequence: EOS) NAL 유닛으로 불릴 수 있는 특정 NAL 유닛이 비트스트림에 출현하고, nuh_layer_id가 0인 경우, 코딩된 비디오 시퀀스는 종료하도록 (위의 사양에 대해) 추가적으로 또는 대안적으로 특정될 수 있다.
HEVC에서, 코딩된 비디오 시퀀스 그룹(Coded Video Sequence Group: CVSG)은, 예를 들어, 디코딩 순서에 있어서, 아직 활성이 아니었던 VPS RBSP firstVpsRbsp를 활성화하는 IRAP 액세스 유닛과, 이에 후속하는 비트스트림의 종단 또는 firstVpsRbsp와는 상이한 VPS RBSP를 활성화하는 액세스 유닛 중 디코딩 순서에서 더 이른 것(불포함)까지의 액세스 유닛으로서, firstVpsRbsp가 활성 VPS RBSP인, 모든 후속 액세스 유닛으로 집합적으로 구성된, 디코딩 순서에 있어서, 하나 이상의 연속적인 CVS로 정의될 수 있다.
H.264/AVC 및 HEVC의 비트스트림 구문론은 특정한 픽처가 임의의 다른 픽처의 인터 예측에 대한 참조 픽처인지를 표시한다. 임의의 코딩 타입(I, P, B)의 픽처가 H.264/AVC 및 HEVC에서 참조 픽처이거나 비참조 픽처일 수 있다.
HEVC에서, 참조 픽처 세트(reference picture set: RPS) 구문론 구조 및 디코딩 프로세스가 이용된다. 픽처에 대해 유효한 또는 활성의 참조 픽처 세트는 픽처에 대해 참조로서 이용된 모든 참조 픽처 및 디코딩 순서에서 임의의 후속 픽처에 대해 "참조에 이용됨"이라고 표기된 모든 참조 픽처를 포함한다. 참조 픽처 세트에는 RefPicSetStCurr0(RefPicSetStCurrBefore으로도 불림), RefPicSetStCurr1(RefPicSetStCurrAfter으로도 불림), RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr 및 RefPicSetLtFoll으로 불리는 6개의 서브세트가 있다. RefPicSetStFoll0 및 RefPicSetStFoll1은 또한 공동으로 하나의 서브세트인 RefPicSetStFoll을 형성하는 것이 고려될 수도 있다. 6개의 서브세트의 표기법은 다음과 같다. "Curr"은 현재 픽처의 참조 픽처 리스트에 포함될 수 있는 참조 픽처를 말하며, 그래서 현재 픽처에 대한 인터 예측 참조로서 이용될 수 있다. "Foll"은 현재 픽처의 참조 픽처 리스트에는 포함되어 있지 않고 디코딩 순서에서 후속하는 픽처에서 참조 픽처로서 이용될 수 있는 참조 픽처를 말한다. "St"는 단기 참조 픽처(short-term reference picture)를 말하고, 이들 픽처는 일반적으로 이들의 POC 값의 특정 개수의 최하위 비트를 통해 식별될 수 있다. "Lt"는 장기 참조 픽처(long-term reference picture)를 말하고, 이들 픽처는 특별하게 식별되며 일반적으로 언급된 특정 개수의 최하위 비트로 표현될 수 있는 것보다 더 큰 차의 현재 픽셀에 대한 POC 값을 갖는다. "0"은 현재 픽처의 POC 값보다 작은 POC 값을 갖는 참조 픽처를 말한다. "1"은 현재 픽처의 POC 값보다 큰 POC 값을 갖는 참조 픽처를 말한다. RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, 및 RefPicSetStFoll1은 집합적으로 참조 픽처 세트의 단기 서브세트라고 불린다. RefPicSetLtCurr 및 RefPicSetLtFoll은 집합적으로 참조 픽처 세트의 장기 서브세트라고 불린다.
HEVC에서, 참조 픽처 세트는 시퀀스 파라미터 세트에서 특정될 수 있고 참조 픽처 세트에 붙은 인덱스를 통해 슬라이스 헤더에서 이용될 수 있다. 또한, 참조 픽처 세트는 슬라이스 헤더에서도 특정될 수 있다. 참조 픽처 세트는 독립적으로 코딩될 수 있거나 또는 다른 참조 픽처 세트로부터 예측될 수 있다(인터-RPS 예측으로 알려져 있음). 참조 픽처 세트를 코딩하는 둘 모두의 타입에서, 참조 픽처가 현재 픽처에 의해 참조에 이용되는지(*Curr 리스트에 포함됨) 또는 현재 픽처에 의해 참조에 이용되지 않는지(*Foll 리스트에 포함됨)를 나타내는 플래그(used_by_curr_pic_X_flag)가 각 참조 픽처마다 추가적으로 송신된다. 현재 슬라이스에 의해 이용되는 참조 픽처 세트에 포함된 픽처는 "참조에 이용됨"이라고 표기되며, 현재 슬라이스에 의해 이용되는 참조 픽처 세트에 포함되지 않은 픽처는 "참조에 이용되지 않음"이라고 표기된다. 현재 픽처가 IDR 픽처이면, RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr 및 RefPicSetLtFoll은 모두 비어 있음(empty)으로 설정된다.
디코딩된 픽처 버퍼(Decoded Picture Buffer: DPB)는 인코더에서 및/또는 디코더에서 이용될 수 있다. 디코딩된 픽처를 버퍼링하는 2가지 이유는 인터 예측에서 참조하기 위한 것과 디코딩된 픽처를 출력 순서로 재배열하기 위함이다. H.264/AVC 및 HEVC는 참조 픽처를 표시하는 것과 출력을 재배열하는 것 둘 모두에 대해 상당한 융통성을 부여하므로, 참조 픽처 버퍼링 및 출력 픽처 버퍼링을 위한 별개의 버퍼는 메모리 자원을 낭비할 수 있다. 그래서 DPB는 참조 픽처 및 출력 재배열을 위한 통합된 디코딩된 픽처 버퍼링 프로세스를 포함할 수 있다. 디코딩된 픽처는 더 이상 참조로서 사용되지 않고 출력할 필요가 없을 때 DPB로부터 제거될 수 있다.
H.264/AVC 및 HEVC의 많은 코딩 모드에서, 인터 예측을 위한 참조 픽처는 참조 픽처 리스트에 대한 인덱스로 표시된다. 인덱스는 보통 더 작은 인덱스가 대응하는 구문론 요소에서 더 짧은 값을 갖도록 하는 가변 길이 코딩으로 코딩된다. H.264/AVC 및 HEVC에서, 2개의 참조 픽처 리스트(참조 픽처 리스트 0 및 참조 픽처 리스트 1)는 각각의 양방향-예측(B) 슬라이스마다 생성되며, 하나의 참조 픽처 리스트(참조 픽처 리스트 0)는 각각의 인터-코딩된(P) 슬라이스마다 형성된다.
참조 픽처 리스트 0 및 참조 픽처 리스트 1과 같은 참조 픽처 리스트는 전형적으로 2 단계로 생성되는데, 첫 번째로, 초기의 참조 픽처 리스트가 생성된다. 초기의 참조 픽처 리스트는, 예를 들어, frame_num, POC, temporal_id(또는 TemporalId 등), 또는 GOP 구조와 같은 예측 계층적 구조에 관한 정보, 또는 이들의 임의의 조합에 기초하여 생성될 수 있다. 두 번째로, 초기의 참조 픽처 리스트는 참조 픽처 리스트 수정 구문론 구조(reference picture list modification syntax structure)로서 알려진, 슬라이스 헤더에 포함된 참조 픽처 리스트 재배열(reference picture list reordering: RPLR) 커맨드에 의해 재배열될 수 있다. H.264/AVC에서, RPLR 커맨드는 각각의 참조 픽처 리스트의 시작에 배열된 픽처를 표시한다. 이 두 번째 단계는 참조 픽처 리스트 수정 프로세스라고도 불릴 수 있으며, RPLR 커맨드는 참조 픽처 리스트 수정 구문론 구조에 포함될 수 있다. 참조 픽처 세트가 사용되면, 참조 픽처 리스트 0은, 먼저 RefPicSetStCurr0를, 그 뒤를 이어 RefPicSetStCurr1를, 그 뒤를 이어 RefPicSetLtCurr를 포함하도록 초기화될 수 있다. 참조 픽처 리스트 1은, 먼저 RefPicSetStCurr1를, 그 뒤를 이어 RefPicSetStCurr0을 포함하도록 초기화될 수 있다. HEVC에서, 초기의 참조 픽처 리스트는 참조 픽처 리스트 수정 구문론 구조를 통해 수정될 수 있고, 이 구조에서 초기의 참조 픽처 리스트의 픽처는 리스트에 대한 엔트리 인덱스를 통해 식별될 수 있다. 다시 말해서, HEVC에서, 참조 픽처 리스트 수정은 최종 참조 픽처 리스트의 각 엔트리에 대한 루프를 포함하는 구문론 구조로 인코딩되며, 여기서 각각의 루프 엔트리는 초기 참조 픽처 리스트에 대한 고정 길이 코딩된 인덱스이고 최종 참조 픽처 리스트에서 오름차순 위치 순서로 픽처를 표시한다.
H.264/AVC 및 HEVC를 포함하는 많은 코딩 표준은 다수의 참조 픽처 중 어느 것이 특정 블록의 인터 예측을 위해 이용되는지를 표시하는데 이용될 수 있는 참조 픽처 리스트에 대한 참조 픽처 인덱스를 도출하는 디코딩 프로세스를 가질 수 있다. 참조 픽처 인덱스는 인코더에 의해 일부 인터 코딩 모드에서 비트스트림으로 코딩될 수 있거나, 또는 (인코더 및 디코더에 의해) 일부 다른 인터 코딩 모드에서, 예를 들어, 이웃 블록을 이용하여 도출될 수 있다.
스케일 가능 비디오 코딩은 하나의 비트스트림이 콘텐츠의, 예를 들어, 상이한 비트레이트, 해상도 또는 프레임 레이트의 다수의 표현을 포함할 수 있는 코딩 구조를 의미할 수 있다. 이 경우, 수신기는 그의 특성(예를 들어, 디스플레이 디바이스와 가장 잘 매칭되는 해상도)에 따라 요구된 표현을 추출할 수 있다. 이와 달리, 서버 또는 네트워크 요소는, 예를 들어, 네트워크 특성 또는 수신기의 처리 능력에 따라 수신기로 전송될 비트스트림의 일부를 추출할 수 있다. 의미 있는 디코딩된 표현은 스케일 가능 비트스트림의 특정 부분만을 디코딩함으로써 생성될 수 있다. 전형적으로 스케일 가능 비트스트림은 이용 가능한 최저 품질의 비디오를 제공하는 "베이스 계층" 및 하위 계층과 함께 수신되어 디코딩될 때 비디오 품질을 강화하는 하나 이상의 강화 계층으로 구성된다. 강화 계층의 코딩 효율을 개선하기 위해, 그 계층의 코딩된 표현은 전형적으로 하위 계층에 의존한다. 예를 들어, 강화 계층의 움직임 및 모드 정보는 하위 계층으로부터 예측될 수 있다. 유사하게, 하위 계층의 픽셀 데이터는 강화 계층의 예측을 생성하는데 이용될 수 있다.
일부 스케일 가능 비디오 코딩 방식에서, 비디오 신호는 베이스 계층과 하나 이상의 강화 계층으로 인코딩될 수 있다. 강화 계층은, 예를 들어, 시간적 해상도(즉, 프레임 레이트), 공간적 해상도, 또는 단순히 다른 계층이나 그 계층의 일부에 의해 표현되는 비디오 콘텐츠의 품질을 강화할 수 있다. 각각의 계층과 함께 그의 모든 종속 계층은, 예를 들어, 특정한 공간적 해상도, 시간적 해상도 및 품질 레벨로 표현된 비디오 신호의 한가지 표현이다. 본 문서에서, 발명자는 스케일 가능 계층과 함께 그의 모든 종속 계층을 "스케일 가능 계층 표현(scalable layer representation)"이라고 부른다. 스케일 가능 계층 표현에 대응하는 스케일 가능 비트스트림의 일부가 추출되고 디코딩되어 특정의 충실도로 오리지널 신호의 표현을 생성할 수 있다.
스케일 가능성 모드 또는 스케일 가능성 차원은 다음을 포함할 수 있지만, 이에 한정되는 것은 아니다.
- 품질 스케일 가능성(Quality scalability): 베이스 계층 픽처는 강화 계층 픽처보다 낮은 품질로 코딩되는데, 이것은, 예를 들어, 강화 계층에서보다 베이스 계층에서 더 큰 양자화 파라미터 값(즉, 변환 계수 양자화를 위한 더 큰 양자화 스텝 크기)을 이용하여 달성될 수 있다. 품질 스케일 가능성은 후술하는 것과 같이 FGS(fine-grain or fine-granularity scalability), MGS(medium-grain or medium-granularity scalability) 및/또는 CGS(coarse-grain or coarse-granularity scalability)로 더 분류될 수 있다.
- 공간적 스케일 가능성(Spatial scalability): 베이스 계층 픽처는 강화 계층 픽처보다 낮은 해상도로 코딩된다(즉, 더 적은 수의 샘플을 갖는다). 공간적 스케일 가능성 및 품질 스케일 가능성, 특히 CGS 타입은 때로는 동일한 타입의 스케일 가능성으로 간주될 수 있다.
- 비트-깊이 스케일 가능성(Bit-depth scalability): 베이스 계층 픽처는 강화 계층 픽처(예를 들어, 10 또는 12비트)보다 낮은 비트-깊이(예를 들어, 8비트)로 코딩된다.
- 동적 범위 스케일 가능성(Dynamic range scalability): 스케일 가능 계층은 상이한 톤 매핑 함수 및/또는 상이한 광학 전달 함수를 이용하여 획득한 상이한 동적 범위 및/또는 이미지를 나타낸다.
- 크로마 포맷 스케일 가능성(Chroma format scalability): 베이스 계층 픽처는 강화 계층 픽처(예를 들어, 4:4:4 포맷)보다 크로마 샘플 어레이에서 더 낮은 (예를 들어, 4:2:0 크로마 포맷으로 코딩된) 공간적 해상도를 제공한다.
- 색 공간 스케일 가능성(Color gamut scalability): 강화 계층 픽처는 베이스 계층 픽처보다 풍부한/넓은 색 표현 범위 - 예를 들어, 강화 계층은 UHDTV (ITU-R BT.2020) 색 공간을 가질 수 있고 베이스 계층은 ITU-R BT.709 색 공간을 가질 수 있음 - 를 갖는다.
- 뷰 스케일 가능성(View scalability)은 멀티뷰 코딩이라고도 불릴 수 있다. 베이스 계층은 제 1 뷰를 표현하는데 반해, 강화 계층은 제 2 뷰를 표현한다.
- 깊이 스케일 가능성(Depth scalability)은 깊이-강화 코딩이라고도 불릴 수 있다. 비트스트림의 하나의 계층 또는 일부 계층은 텍스처 뷰를 표현할 수 있는데 반해, 다른 계층 또는 계층들은 깊이 뷰를 표현할 수 있다.
- 관심 영역 스케일 가능성(Region-of-interest scalability) (아래에서 설명됨).
- 인터레이스-투-프로그레시브 스케일 가능성(interlaced-to-progressive scalability)(필드-투-프레임 스케일 가능성(field-to-frame scalability)이라고도 알려져 있음): 베이스 계층의 코딩된 인터레이스된 소스 콘텐츠 재료는 프로그레시브 소스 콘텐츠를 표현하는 강화 계층으로 강화된다. 베이스 계층의 코딩된 인터레이스된 소스 콘텐츠는 코딩된 필드, 필드 쌍을 표현하는 코딩된 프레임 또는 이들의 결합을 포함할 수 있다. 인터레이스-투-프로그레시브 스케일 가능성에서, 베이스 계층 픽처는 리샘플링되어 하나 이상의 강화 계층 픽처에 대해 적합한 참조 픽처가 될 수 있다.
- 하이브리드 코덱 스케일 가능성(Hybrid codec scalability)(코딩 표준 스케일 가능성(coding standard scalability)라고도 알려져 있음): 하이브리드 코덱 스케일 가능성에서, 베이스 계층 및 강화 계층의 비트스트림 구문론, 의미론 및 디코딩 프로세스는 상이한 비디오 코딩 표준에서 특정된다. 따라서, 베이스 계층 픽처는 강화 계층 픽처와 상이한 코딩 표준 또는 포맷에 따라서 코딩된다. 예를 들어, 베이스 계층은 H.264/AVC을 이용하여 코딩될 수 있고, 강화 계층은 HEVC 멀티-계층 확장을 이용하여 코딩될 수 있다. 외부 베이스 계층 픽처는 강화 계층 디코딩 프로세스를 위해 외부 수단에 의해 제공되고 강화 계층 디코딩 프로세스를 위해 디코딩된 베이스 계층 픽처처럼 취급되는 디코딩된 픽처로 정의된다. SHVC 및 MV-HEVC는 외부 베이스 계층 픽처의 이용을 허용한다.
스케일 가능성 타입 중 많은 타입은 서로 조합되어 적용될 수 있다는 것을 이해하여야 한다. 예를 들어, 색 공간 스케일 가능성 및 비트-깊이 스케일 가능성은 조합될 수 있다.
계층이라는 용어는 뷰 스케일 가능성 및 깊이 강화를 포함하는 임의의 타입의 스케일 가능성의 맥락에서 이용될 수 있다. 강화 계층은 SNR, 공간적, 멀티뷰, 깊이, 비트-깊이, 크로마 포맷, 및/또는 색 공간 강화와 같은 임의의 타입의 강화를 의미할 수 있다. 베이스 계층은 베이스 뷰, SNR/공간적 스케일 가능성에 대한 베이스 계층, 또는 깊이 강화된 비디오 코딩에 대한 텍스처 베이스 뷰와 같은 임의의 타입의 베이스 비디오 시퀀스를 의미할 수 있다.
3차원(3D) 비디오 콘텐츠를 제공하기 위한 다양한 기술이 현재 연구되고 개발되고 있다. 이것은 스테레오스코픽 또는 2-뷰 비디오(two-view video)에서, 하나의 비디오 시퀀스 또는 뷰가 왼쪽 눈에 제공되는 반면 병렬 뷰는 오른쪽 눈에 제공되는 것으로 고려될 수 있다. 둘을 초과하는 병렬 뷰는 뷰 포인트 스위칭(viewpoint switching)을 가능하게 하는 애플리케이션 또는 동시에 많은 수의 뷰를 제공하여 시청자가 상이한 뷰 포인트로부터 콘텐츠를 볼 수 있도록 하는 오토스테레오스코픽(autostereoscopic) 디스플레이에 필요할 수 있다.
뷰는 하나의 카메라 또는 뷰포인트를 표현하는 픽처의 시퀀스로 정의될 수 있다. 뷰를 표현하는 픽처는 또한 뷰 컴포넌트라고 불릴 수도 있다. 다시 말하면, 뷰 컴포넌트는 단일의 액세스 유닛에서 뷰의 코딩된 표현으로 정의될 수 있다. 멀티뷰 비디오 코딩에서, 하나를 초과하는 뷰는 비트스트림으로 코딩된다. 뷰는 전형적으로 스테레오스코픽 또는 멀티뷰 오토스테레오스코픽 디스플레이에서 디스플레이되는 것으로 의도되거나 또는 다른 3D 배열에 사용되는 것으로 의도되어 있기 때문에, 뷰는 전형적으로 동일한 장면을 표현하며 콘텐츠에 상이한 뷰 포인트를 표현할지라도 콘텐츠별로 부분적으로 겹친다. 그러므로, 멀티뷰 비디오 코딩에서 인터 뷰 상관(inter-view correlation)을 이용하고 압축 효율을 개선하기 위해 인터 뷰 예측이 이용될 수 있다. 인터 뷰 예측을 실현하는 하나의 방법은 첫 번째 뷰에 존재하는 코딩되는 또는 디코딩되는 픽처의 참조 픽처 리스트에 하나 이상의 다른 뷰의 하나 이상의 디코딩된 픽처를 포함시키는 것이다. 뷰 스케일 가능성은 하나 이상의 코딩된 뷰를 제거하거나 생략할 수 있게 하면서, 결과적인 비트스트림은 합치한 채로 유지하고 원래보다 적은 수의 뷰로 비디오를 표현하는, 멀티뷰 비디오 코딩 또는 멀티뷰 비디오 스트림을 의미할 수 있다.
와이드-FOV 또는 파노라마 사진 또는 비디오의 맥락에서, 뷰 방향은 특정 방향(예를 들어, 파노라마 비디오의 각도 방향) 및 시야를 표현하는 픽처 또는 비디오의 공간 서브세트로 정의될 수 있다. 멀티뷰 비디오의 맥락에서, 뷰 방향은 뷰를 캡처할 때 각각의 카메라가 가리키는 방향을 표현하는 것과 같은 뷰의 방향으로 간주될 수 있다.
관심 영역(ROI) 코딩은 비디오 내의 특정 영역을 높은 충실도로 코딩하는 것을 의미하도록 정의될 수 있다. 인코더 및/또는 다른 엔티티가 인코딩될 입력 픽처로부터 ROI를 결정하기 위한 몇 가지 방법이 존재한다. 예를 들어, 얼굴 검출이 이용될 수 있고, 얼굴을 ROI로 결정할 수 있다. 추가적으로 또는 대안적으로, 다른 예에서, 초점이 맞아 있는 객체가 검출되고 ROI인 것으로 결정될 수 있으며, 초점이 맞지 않는 객체는 ROI의 외부인 것으로 결정된다. 추가적으로 또는 대안적으로, 다른 예에서, 물체까지의 거리를, 예를 들어, 깊이 센서에 기초하여 예측하거나 알 수 있고, 배경보다 카메라에 비교적 가까운 물체를 ROI로 결정할 수 있다.
ROI 스케일 가능성은, 강화 계층이, 예를 들어, 공간적으로, 품질 면에서, 비트-깊이에서, 및/또는 다른 스케일 가능성 차원에 따라서 참조 계층 픽처의 일부만을 강화하는 스케일 가능성의 타입으로 정의될 수 있다. ROI 스케일 가능성이 다른 타입의 스케일 가능성과 함께 이용될 수 있으므로, ROI 스케일 가능성은 상이한 분류의 스케일 가능성의 타입을 형성하는 것으로 간주될 수 있다. ROI 스케일 가능성을 이용함으로써 실현될 수 있는 요건이 상이한 ROI 코딩을 위한 여러 상이한 애플리케이션이 존재한다. 예를 들어, 강화 계층은 베이스 계층 내 영역의 품질 및/또는 해상도를 강화하기 위해 전송될 수 있다. 강화 계층 및 베이스 계층 비트스트림을 둘 모두 수신하는 디코더는 두 계층을 모두 디코딩하고 디코딩된 픽처를 서로의 위에 겹쳐서 최종 픽처를 디스플레이할 수 있다.
참조 계층 픽처 및 강화 계층 픽처의 공간적 대응성(spatial correspondence)은 유추될 수 있거나, 또는 소위 참조 계층 위치 오프셋(reference layer location offset)의 하나 이상의 타입으로 표시될 수 있다. HEVC에서, 참조 계층 위치 오프셋은 인코더에 의해 PPS에 포함될 수 있고 디코더에 의해 PPS로부터 디코딩될 수 있다. 참조 계층 위치 오프셋은 ROI 스케일 가능성을 달성하는데 이용되지만 이것으로 한정되는 것은 아니다. 참조 계층 위치 오프셋은 조정된(scaled) 참조 계층 오프셋, 참조 영역 오프셋 및 리샘플링 위상 세트(resampling phase set) 중 하나 이상을 포함할 수 있다. 조정된 참조 계층 오프셋은 참조 계층의 디코딩된 픽처에서 참조 영역의 좌측 상단(top-left)의 루마 샘플과 병치된(collocated) 현재 픽처의 샘플 사이의 수평 및 수직 오프셋 및 참조 계층의 디코딩된 픽처에서 참조 영역의 우측 하단(bottom-right)의 루마 샘플과 병치된 현재 픽처의 샘플 사이의 수평 및 수직 오프셋을 특정하는 것으로 간주될 수 있다. 다른 방법은, 조정된 참조 계층 오프셋을 고려하여 강화 계층 픽처의 각 코너 샘플(corner sample)에 대비한 업샘플링된 참조 영역의 코너 샘플의 위치를 특정하는 것이다. 조정된 참조 계층 오프셋 값은 부호 표시될 수 있다. 참조 영역 오프셋은 참조 계층의 디코딩된 픽처에서 참조 영역의 좌측 상단의 루마 샘플과 동일한 디코딩된 픽처의 좌측 상단의 루마 샘플 사이의 수평 및 수직 오프셋뿐만 아니라 참조 계층의 디코딩된 픽처에서 참조 영역의 우측 하단의 루마 샘플과 동일한 디코딩된 픽처의 우측 하단의 루마 샘플 사이의 수평 및 수직 오프셋을 특정하는 것으로 간주될 수 있다. 참조 영역 오프셋 값은 부호 표시될 수 있다. 리샘플링 위상 세트는 인터 계층 예측을 위한 소스 픽처의 리샘플링 프로세스에서 이용되는 위상 오프셋을 특정하는 것으로 간주될 수 있다. 루마 및 크로마 컴포넌트에 대해서는 상이한 위상 오프셋이 제공될 수 있다.
하이브리드 코덱 스케일 가능성은 시간적, 품질, 공간적, 멀티뷰, 깊이-강화, 보조적 픽처, 비트-깊이, 색 영역, 크로마 포맷 및/또는 ROI 스케일 가능성과 같은 임의의 타입의 스케일 가능성과 함께 이용될 수 있다. 하이브리드 코덱 스케일 가능성은 다른 타입의 스케일 가능성과 함께 이용될 수 있으므로, 상이한 분류의 스케일 가능성의 타입을 형성하는 것으로 간주될 수 있다.
하이브리드 코덱 스케일 가능성의 이용은, 예를 들어, 강화 계층 비트스트림에 표시될 수 있다. 예를 들어, 멀티 계층 HEVC에서, 하이브리드 코덱 스케일 가능성의 이용은, 예를 들어, 구문론 요소 vps_base_layer_internal_flag를 이용하여 VPS에 표시될 수 있다.
스케일 가능성은 2개의 기본적인 방법, 즉, 스케일 가능 표현의 하위 계층으로부터 픽셀 값 또는 구문론의 예측을 수행하기 위한 새로운 코딩 모드를 도입하거나, 또는 하위 계층 픽처를 상위 계층의 참조 픽처 버퍼(예를 들어, 디코딩된 픽처 버퍼(decoded picture buffer, DPB))에 배치하는 것 중 어느 하나로 가능할 수 있다. 첫 번째 방법은 보다 융통성 있고, 따라서 대부분의 경우에 더 나은 코딩 효율을 제공할 수 있다. 그러나, 두 번째의 참조 프레임 기반의 스케일 가능성 방법은 이용 가능한 코딩 효율 이득을 대부분 달성하면서 단일 계층 코덱을 최소한으로 변경하여 효율적으로 구현될 수 있다. 본질적으로, 참조 프레임 기반의 스케일 가능성 코덱은 외부 수단에 의해 DPB 관리에 유의하는 것만으로, 모든 계층에 대해 동일한 하드웨어 또는 소프트웨어 구현 방법을 이용함으로써 구현될 수 있다.
품질 스케일 가능성(신호-대-잡음비(Signal-to-Noise) 또는 SNR으로도 알려져 있음) 및/또는 공간적 스케일 가능성을 위한 스케일 가능 비디오 인코더는 다음과 같이 구현될 수 있다. 베이스 계층에 대해, 통상의 비-스케일 가능 비디오 인코더 및 디코더가 이용될 수 있다. 베이스 계층의 재구성된/디코딩된 픽처는 강화 계층의 참조 픽처 버퍼 및/또는 참조 픽처 리스트에 포함된다. 공간 스케일 가능성의 경우, 재구성된/디코딩된 베이스 계층 픽처는 업샘플링된 다음에 강화 계층 픽처에 대한 참조 픽처 리스트에 삽입될 수 있다. 베이스 계층 디코딩된 픽처는 강화 계층의 디코딩된 참조 픽처와 유사하게 강화 계층 픽처의 코딩/디코딩을 위한 참조 픽처 리스트에 삽입될 수 있다. 결과적으로, 인코더는 베이스 계층 참조 픽처를 인터 예측 참조로서 선택할 수 있고 이것의 이용을 코딩된 비트스트림에서 참조 픽처 인덱스로 표시할 수 있다. 디코더는 비트스트림, 예를 들어, 베이스 계층 픽처가 강화 계층에 대한 인터 예측 참조로서 이용되는 참조 픽처 인덱스로부터 디코딩한다. 디코딩된 베이스 계층 픽처가 강화 계층에 대한 예측 참조로서 이용될 때, 이것은 인터 계층 참조 픽처(inter-layer reference picture)라고 불린다.
이전 단락에서는 강화 계층 및 베이스 계층으로 된 2개의 스케일 가능성 계층을 이용한 스케일 가능 비디오 코덱에 대하여 설명하였지만, 이 설명은 2개의 계층을 초과하는 계층을 갖는 스케일 가능성 계층 구조에서의 임의의 2개의 계층으로 일반화될 수 있다는 것을 이해해야 할 필요가 있다. 이 경우에, 제 2 강화 계층은 인코딩 및/또는 디코딩 프로세스에서 제 1 강화 계층에 종속할 수 있고, 이에 따라 제 1 강화 계층은 제 2 강화 계층을 인코딩 및/또는 디코딩하기 위한 베이스 계층으로 간주될 수 있다. 또한, 강화 계층의 참조 픽처 버퍼 또는 참조 픽처 리스트에서 하나를 초과하는 계층으로부터 생긴 인터-계층 참조 픽처가 존재할 수 있으며, 각각의 이러한 인터-계층 참조 픽처는 인코딩 및/또는 디코딩되는 강화 계층에 대한 베이스 계층 또는 참조 계층에 존재하는 것으로 간주될 수 있다는 것을 이해해야 할 필요가 있다. 뿐만 아니라, 참조 계층 픽처 업샘플링과는 다른 타입의 인터 계층 처리가 대신에 또는 추가적으로 이루어질 수 있다는 것을 이해해야 할 필요가 있다. 예를 들어, 참조 계층 픽처의 샘플의 비트-깊이는 강화 계층의 비트-깊이로 변환될 수 있고, 및/또는 샘플 값은 참조 계층의 색 공간으로부터 강화 계층의 색 공간으로 매핑될 수 있다.
스케일 가능 비디오 코딩 및/또는 디코딩 방식은 멀티 루프 코딩 및/또는 디코딩을 이용할 수 있는데, 이것은 다음과 같은 특징을 갖는다. 인코딩/디코딩에서, 베이스 계층 픽처는 동일 계층 내에서 또는 인터 계층(또는 인터 뷰 또는 인터 컴포넌트) 예측을 위한 참조로서, 코딩/디코딩 순서에서, 후속 픽처에 대한 움직임 보상 참조 픽처로서 사용되도록 재구성/디코딩될 수 있다. 재구성된/디코딩된 베이스 계층 픽처는 DPB에 저장될 수 있다. 마찬가지로, 강화 계층 픽처는 동일 계층 내에서 또는 만일 있다면 상위의 강화 계층에 대한 인터 계층(또는 인터 뷰 또는 인터 컴포넌트) 예측을 위한 참조로서, 코딩/디코딩 순서에서, 후속 픽처에 대한 움직임 보상 참조 픽처로서 사용되도록 재구성/디코딩될 수 있다. 재구성된/디코딩된 샘플 값에 더하여, 베이스/참조 계층의 구문론 요소 값 또는 베이스/참조 계층의 구문론 요소 값으로부터 도출된 변수는 인터 계층/인터 컴포넌트/인터 뷰 예측에 이용될 수 있다.
인터 계층 예측은 (인코딩 또는 디코딩되는) 현재 픽처의 계층과는 상이한 계층으로부터의 참조 픽처의 데이터 요소(예를 들어, 샘플 값 또는 움직임 벡터)에 의존하는 방식으로 예측하는 것으로 정의될 수 있다. 많은 타입의 인터 계층 예측이 존재하고 스케일 가능 비디오 인코더/디코더에 적용될 수 있다. 이용 가능한 타입의 인터 계층 예측은, 예를 들어, 비트스트림 또는 비트스트림 내의 특정 계층이 인코딩되는지에 따른 코딩 프로파일, 또는 디코딩할 때, 비트스트림 또는 비트스트림 내의 특정 계층이 합치하는 것으로 표시되는 코딩 프로파일에 따라 달라질 수 있다. 대안적으로 또는 추가적으로, 이용 가능한 타입의 인터 계층 예측은 이용 중인 스케일 가능성의 타입 또는 스케일 가능 코덱 또는 비디오 코딩 표준 수정안(예를 들어, SHVC, MVHEVC 또는 3D-HEVC)의 타입에 따라 달라질 수 있다.
인터 계층 예측의 타입은 인터 계층 샘플 예측, 인터 계층 움직임 예측 및 인터 계층 잔차 예측 중 하나 이상을 포함할 수 있지만, 이에 한정되는 것은 아니다. 인터 계층 샘플 예측에서, 인터 계층 예측을 위한 소스 픽처의 재구성된 샘플 값의 적어도 서브세트는 현재 픽처의 샘플 값을 예측하기 위한 참조로서 이용된다. 인터 계층 움직임 예측에서, 인터 계층 예측을 위한 소스 픽처의 움직임 벡터의 적어도 서브세트는 현재 픽처의 움직임 벡터를 예측하기 위한 참조로서 이용된다. 전형적으로, 어떤 참조 픽처가 움직임 벡터와 연관되는지에 관한 정보를 예측하는 것은 인터 계층 움직임 예측에도 또한 포함된다. 예를 들어, 움직임 벡터에 대한 참조 픽처의 참조 인덱스가 인터 계층 예측될 수 있고 및/또는 픽처 순서 카운트 또는 참조 픽처의 임의의 다른 식별이 인터 계층 예측될 수 있다. 일부 경우에, 인터 계층 움직임 예측은 블록 코딩 모드, 헤더 정보, 블록 분할 및/또는 다른 유사한 파라미터의 예측을 또한 포함할 수 있다. 일부 경우에, 블록 파티셔닝의 인터 계층 예측과 같은 코딩 파라미터 예측은 다른 타입의 인터 계층 예측으로 간주될 수 있다. 인터 계층 잔차 예측에서, 인터 계층 예측을 위한 소스 픽처의 선택된 블록의 예측 오차 또는 잔차는 현재 픽처를 예측하는데 이용된다. 3D-HEVC와 같은 멀티뷰 플러스 깊이 코딩(multiview-plus-depth coding)에서, 깊이 픽처와 같은 제 1 타입의 픽처가 통상의 텍스처 픽처와 같은 제 2 타입의 픽처의 인터 계층 예측에 영향을 미칠 수 있는 교차 컴포넌트 인터 계층 예측(cross-component inter-layer prediction)이 적용될 수 있다. 예를 들어, 불일치 보상된 인터 계층 샘플 값(disparity-compensated inter-layer sample value) 및/또는 움직임 예측이 적용될 수 있으며, 여기서 불일치는 적어도 부분적으로 깊이 픽처로부터 도출될 수 있다.
인터 뷰 예측이라는 용어는, 예측이 상이한 뷰 사이에서 발생할 때 인터 계층 예측과 상호 교환 가능하게 이용될 수 있다. 일부 코딩 사양에서, 인터 뷰 예측은, 예를 들어, 인터 뷰 예측을 위해 리샘플링 또는 움직임 필드 맵핑과 같은 인터 계층 처리가 필요하지 않을 수 있는 동일한 공간 해상도의 픽처 사이에서 발생되는 것으로 제한될 수 있다.
직접 참조 계층은, 계층이 직접 참조 계층인 다른 계층의 인터 계층 예측에 이용될 수 있는 계층으로 정의될 수 있다. 직접 예측된 계층은, 다른 계층이 직접 참조 계층인 계층으로 정의될 수 있다. 간접 참조 계층은, 제 2 계층의 직접 참조 계층이 아니고, 계층이 간접 참조 계층인 제 2 계층의 직접 참조 계층 또는 직접 참조 계층의 간접 참조 계층인 제 3 계층의 직접 참조 계층인 계층으로 정의될 수 있다. 간접 예측된 계층은, 다른 계층이 간접 참조 계층인 계층으로 정의될 수 있다. 독립 계층은 직접 참조 계층을 포함하지 않는 계층으로 정의될 수 있다. 즉, 독립 계층은 인터 계층 예측을 이용하여 예측되지 않는다. 비베이스(non-base) 계층은 베이스 계층 이외의 다른 계층으로 정의될 수 있으며, 베이스 계층은 비트스트림에서 최하위 계층으로 정의될 수 있다. 독립 비베이스 계층은 독립 계층 및 비베이스 계층 둘 모두인 계층으로 정의될 수 있다.
인터 계층 예측을 위한 소스 픽처는 현재 픽처의 예측을 위한 참조 픽처로서 이용될 수 있는 인터 계층 참조 픽처인 디코딩된 픽처 또는 이러한 인터 계층 참조 픽처를 도출하는데 이용되는 디코딩된 픽처 중의 하나로서 정의될 수 있다. 멀티 계층 HEVC 확장에서, 인터 계층 참조 픽처는 현재 픽처의 인터 계층 참조 픽처 세트에 포함된다. 인터 계층 참조 픽처는 현재 픽처의 인터 계층 예측을 위해 이용될 수 있는 참조 픽처로서 정의될 수 있다. 코딩 및/또는 디코딩 프로세스에서, 인터 계층 참조 픽처는 장기(long term) 참조 픽처로서 취급될 수 있다. 참조 계층 픽처는 (인코딩 또는 디코딩되는) 현재 계층 또는 현재 픽처와 같은 특정 계층 또는 특정 픽처의 직접 참조 계층의 픽처로 정의될 수 있다. 참조 계층 픽처는 인터 계층 예측을 위한 소스 픽처로서 이용될 필요가 없을 수 있다. 가끔, 참조 계층 픽처라는 용어와 인터 계층 예측을 위한 소스 픽처라는 용어는 상호 교환 가능하게 이용될 수 있다.
인터 계층 예측을 위한 소스 픽처는 현재 픽처와 동일한 액세스 유닛 내에 있는 것이 요구될 수 있다. 일부 경우에, 예를 들어, 어떠한 리샘플링, 움직임 필드 매핑 또는 다른 인터 계층 처리도 필요하지 않을 때, 인터 계층 예측을 위한 소스 픽처와 각각의 인터 계층 참조 픽처는 동일할 수 있다. 일부 경우에, 예를 들어, 참조 계층의 샘플링 그리드를 (인코딩 또는 디코딩되는) 현재 픽처의 계층의 샘플링 그리드와 매칭시키기 위해 리샘플링이 필요할 때, 인터 계층 처리가 적용되어 소스 픽처로부터 인터 계층 예측을 위한 인터 계층 참조 픽처를 도출한다. 이러한 인터 계층 처리의 예는 다음 단락에서 설명된다.
인터 계층 샘플 예측은 인터 계층 예측을 위한 소스 픽처의 샘플 어레이의 리샘플링을 포함할 수 있다. 인코더 및/또는 디코더는 강화 계층과 그의 참조 계층의 쌍에 대한 수평 스케일 인자(예를 들어, 변수 ScaleFactorX에 저장됨)와 수직 스케일 인자(예를 들어, 변수 ScaleFactorY에 저장됨)를, 예를 들어, 그 쌍에 대한 참조 계층 위치 오프셋에 기초하여 도출할 수 있다. 스케일 인자 중 하나 또는 둘 모두가 1이 아니면, 인터 계층 예측을 위한 소스 픽처는 리샘플링되어 강화 계층 픽처를 예측하기 위한 인터 계층 참조 픽처를 생성할 수 있다. 리샘플링에 이용되는 프로세스 및/또는 필터는, 예를 들어, 코딩 표준에서 사전 정의될 수 있고, 및/또는 인코더에 의해 비트스트림에 (예를 들어, 사전 정의된 리샘플링 프로세스 또는 필터 중 하나의 인덱스로서) 표시되고, 및/또는 디코더에 의해 비트스트림으로부터 디코딩될 수 있다. 상이한 리샘플링 프로세스는 인코더에 의해 표시되고 및/또는 디코더에 의해 디코딩되고 및/또는 스케일 인자의 값에 따라 인코더 및/또는 디코더에 의해 유추될 수 있다. 예를 들어, 스케일 인자가 모두가 1 미만일 때, 사전 정의된 다운샘플링 프로세스가 유추될 수 있고, 스케일 인자가 모두 1 초과일 때, 사전 정의된 업샘플링 프로세스가 유추될 수 있다. 추가적으로 또는 대안적으로, 상이한 리샘플링 프로세스는 인코더에 의해 표시되고 및/또는 디코더에 의해 디코딩될 수 있고 및/또는 어떤 샘플 어레이가 처리되는지에 따라 인코더 및/또는 디코더에 의해 유추될 수 있다. 예를 들어, 제 1 리샘플링 프로세스는 루마 샘플 어레이에 이용되는 것으로 유추될 수 있고, 제 2 리샘플링 프로세스는 크로마 샘플 어레이에 이용되는 것으로 유추될 수 있다.
리샘플링은, 예를 들어, (예를 들어, 인터 계층 예측을 위한 전체 소스 픽처에 대해, 또는 인터 계층 예측을 위한 소스 픽처의 참조 영역에 대해) 픽처 별로(picture-wise), (예를 들어, 강화 계층 슬라이스에 대응하는 참조 계층 영역에 대해) 슬라이스 별로(slice-wise), 또는 (예를 들어, 강화 계층 코딩 트리 유닛에 대응하는 참조 계층 영역에 대해) 블록 별로(block-wise) 수행될 수 있다. 결정된 영역(예를 들어, 강화 계층 픽처의 픽처, 슬라이스 또는 코딩 트리 유닛)은, 예를 들어, 결정된 영역의 모든 샘플 위치에 대해 루핑하고 각각의 샘플 위치에 대해 샘플 별로 리샘플링 프로세스를 수행함으로써 수행될 수 있다. 그러나, 결정된 영역을 리샘플링하는 다른 방법, 예를 들어, 이전 샘플 위치의 변수 값을 이용하여 특정 샘플 위치를 필터링하는 방법이 있음을 이해해야 한다.
특정의 예측된 계층의 픽처 시퀀스의 특정 위치의 타일 세트는 제한된 방식으로 인코딩될 수 있으므로, 특정의 예측된 계층의 픽처 시퀀스의 특정 위치의 타일 세트의 디코딩은 예측된 계층의 참조 계층의 참조 타일 세트 외부의 샘플 값을 필요로 하지 않는다. HEVC에서, 그러한 제약은 인터 계층 제약된 타일 세트 SEI 메시지로 표시될 수 있다. 인터 계층 제약된 타일 세트 SEI 메시지의 존재는 인터 계층 예측 프로세스가 각각의 연관된 참조 타일 세트 외부의 어떠한 샘플 값 및 각각의 연관된 참조 타일 세트 외부의 하나 이상의 샘플 값을 이용하여 도출된 부분 샘플 위치에 있는 어떠한 샘플 값도 식별된 타일 세트 내에서 임의의 샘플의 인터 계층 예측에 이용되지 않도록 제한됨을 표시한다. (예측된 계층의) 식별된 타일 세트의 인코딩은 또한 시간적 움직임 제약된 타일 세트 SEI 메시지의 제약이 (식별된 타일 세트에 대해) 충족되고, 시간적 움직임 제약된 타일 세트 SEI 메시지가 식별된 타일 세트에 대해 인코딩될 수 있도록 제한될 수 있다. 유사하게, 추가적으로 또는 대안적으로, (예측된 계층의 참조 계층의) 참조 타일 세트의 인코딩은 또한 시간적 움직임 제약된 타일 세트 SEI 메시지의 제약이 (참조 타일 세트에 대해) 충족되고, 시간적 움직임 제약된 타일 세트 SEI 메시지가 참조 타일 세트에 대해 인코딩될 수 있도록 제한될 수 있다.
SHVC는 (이것으로 한정되는 것은 아니지만) 색 영역 스케일 가능성에 대한 3D 룩업 테이블(lookup table: LUT)에 기초한 가중 예측 또는 색 매핑 프로세스를 이용할 수 있다. 3D LUT 방법은 다음과 같이 설명될 수 있다. 각각의 색 컴포넌트의 샘플 값 범위가 먼저 2개의 범위로 분할되어 2x2x2 옥탄트(octant)를 형성할 수 있고, 그 후 루마 범위가 4개의 부분으로 더 분할되어, 최대 8x2x2 옥탄트로 만들어질 수 있다. 각각의 옥탄트에서, 교차 색 컴포넌트 선형 모델을 적용하여 색 매핑을 수행한다. 각각의 옥탄트에 대해, 4개의 꼭지점이 비트스트림으로부터 인코딩되고 및/또는 비트스트림으로부터 디코딩되어 옥탄트 내의 선형 모델을 표현한다. 색 매핑 테이블이 각 색 컴포넌트에 대해서 별개로 비트스트림으로 인코딩되고 및/또는 비트스트림으로부터 디코딩된다. 색 매핑은 3개의 단계를 수반하는 것으로 간주될 수 있는데, 첫째, 주어진 참조 계층 샘플 트리플릿(triplet)(Y, Cb, Cr)이 속하는 옥탄트가 결정된다. 둘째, 루마 및 크로마의 샘플 위치가 색 컴포넌트 조정 프로세스를 적용하여 정렬될 수 있다. 셋째, 결정된 옥탄트에 대해 특정된 선형 매핑이 적용된다. 매핑은 교차 컴포넌트 특성을 가질 수 있는데, 즉, 하나의 색 컴포넌트의 입력 값은 다른 색 컴포넌트의 매핑된 값에 영향을 줄 수 있다. 추가적으로, 인터 계층 리샘플링이 또한 필요하면, 리샘플링 프로세스로의 입력은 색 매핑되었던 픽처이다. 색 매핑은 (하지 않아도 되지만) 첫 번째 비트 깊이의 샘플을 다른 비트 깊이의 샘플에 매핑할 수 있다.
MV-HEVC 및 SHVC에서, 블록 레벨 구문론 및 디코딩 프로세스는 인터 계층 텍스쳐 예측을 지원하기 위해 변경되지 않는다. 높은 레벨의 구문론만이 (HEVC의 것과 비교하여) 수정되어, 동일한 액세스 유닛의 참조 계층으로부터 재구성된(필요한 경우 업샘플링된) 픽처가 현재의 강화 계층 픽처를 코딩하기 위한 참조 픽처로 이용될 수 있다. 인터 계층 참조 픽처 및 시간적 참조 픽처는 참조 픽처 리스트에 포함된다. 시그널링된 참조 픽처 인덱스는 현재의 예측 유닛(Prediction Unit: PU)이 시간적 참조 픽처 또는 인터 계층 참조 픽처로부터 예측되는지 여부를 나타내기 위해 이용된다. 인코더로 이 특징의 이용을 제어할 수 있으며, 비트스트림에서, 예를 들어, 비디오 파라미터 세트, 시퀀스 파라미터 세트, 픽처 파라미터 및/또는 슬라이스 헤더로 표시될 수 있다. 표시는, 예를 들어, 강화 계층, 참조 계층, 강화 계층과 참조 계층의 쌍, 특정 TemporalId 값, 특정 픽처 타입(예를 들어, RAP 픽처), 특정 슬라이스 타입(예를 들어, P 및 B 슬라이스, 그러나 I 슬라이스는 제외), 특정 POC 값의 픽처, 및/또는 특정 액세스 유닛으로 특정될 수 있다. 표시의 범위 및/또는 지속성은 표시 자체와 함께 표시되거나 및/또는 유추될 수 있다.
MV-HEVC 및 SHVC에서 참조 리스트는 인터 계층 참조 픽처가 존재하면 초기 참조 픽처 리스트에 포함될 수 있는 특정 프로세스를 이용하여 초기화될 수 있다. 예를 들어, 시간적 참조는 먼저 HEVC의 참조 리스트 구성과 동일한 방식으로 참조 리스트(L0, L1)에 추가될 수 있다. 그 후에, 인터 계층 참조는 시간적 참조 후에 추가될 수 있다. 인터 계층 참조 픽처는, 예를 들어, 위에서 설명된 VPS 확장으로부터 도출된 ReflLayerld[i] 변수와 같은 계층 의존성 정보로부터 산출될 수 있다. 인터 계층 참조 픽처는 현재의 강화 계층 슬라이스가 P 슬라이스인 경우 초기 참조 픽처 리스트(L0)에 추가될 수 있고, 현재의 강화 계층 슬라이스가 B 슬라이스인 경우 초기 참조 픽처리스트(L0 및 L1) 모두에 추가될 수 있다. 인터 계층 참조 픽처는 특정 순서로 참조 픽처 리스트에 추가될 수 있고, 이 특정 순서는 참조 픽처 리스트 모두에 대해 동일할 수 있지만 반드시 동일할 필요는 없다. 예를 들어, 초기 참조 픽처 리스트(0)의 경우와 비교하여 정반대 순서로 인터 계층 참조 픽처를 초기 참조 픽처 리스트(1)에 추가할 수 있다. 예를 들어, 인터 계층 참조 픽처는 초기 참조 픽처 리스트(0)에 nuh_layer_id의 오름차순으로 삽입될 수 있지만, 반대의 순서를 이용하여 초기 참조 픽처 리스트(1)를 초기화할 수 있다.
코딩 및/또는 디코딩 프로세스에서, 인터 계층 참조 픽처는 장기 참조 픽처로서 취급될 수 있다.
인터 계층 움직임 예측은 다음과 같이 실현될 수 있다. H.265/HEVC의 TMVP와 같은 시간적 움직임 벡터 예측 프로세스는 상이한 계층 간의 움직임 데이터의 중복성(redundancy)을 이용하기 위해 사용될 수 있다. 이것은 다음과 같이 수행될 수 있다. 디코딩된 베이스 계층 픽처가 업샘플링될 때, 베이스 계층 픽처의 움직임 데이터는 강화 계층의 해상도에도 또한 매핑된다. 강화 계층 픽처가 H.265/HEVC의 TMVP와 같은 시간적 움직임 벡터 예측 메커니즘을 이용하여 베이스 계층 픽처로부터 움직임 벡터 예측을 활용하면, 대응하는 움직임 벡터 예측기는 매핑된 베이스 계층 움직임 필드로부터 유래된다. 이러한 방식으로 상이한 계층의 움직임 데이터 사이의 상관 관계가 스케일 가능 비디오 코더의 코딩 효율을 개선하는데 이용될 수 있다.
SHVC 등에서, 인터 계층 참조 픽처를 TMVP 도출을 위한 병치된 참조 픽처로서 설정함으로써 인터 계층 움직임 예측이 수행될 수 있다. TMVP 도출에서, 예를 들어, 블럭 레벨 디코딩 프로세스 수정을 회피하기 위해, 2개의 층 사이의 움직임 필드 매핑 프로세스가 수행될 수 있다. 인코더로 움직임 필드 맵핑 특징의 이용을 제어할 수 있으며, 예를 들어, 비디오 파라미터 세트, 시퀀스 파라미터 세트, 픽처 파라미터 및/또는 슬라이스 헤더에서 비트스트림으로 표시될 수 있다. 표시는, 예를 들어, 강화 계층, 참조 계층, 강화 계층과 참조 계층의 쌍, 특정 TemporalId 값, 특정 픽처 타입(예를 들어, RAP 픽처), 특정 슬라이스 타입(예를 들어, P 및 B 슬라이스, 그러나 I 슬라이스는 제외), 특정 POC 값의 픽처 및/또는 특정 액세스 유닛으로 특정될 수 있다. 표시의 범위 및/또는 지속성은 표시 자체와 함께 표시되거나 및/또는 유추될 수 있다.
공간적 스케일 가능성을 위한 움직임 필드 매핑 프로세스에서, 업샘플링된 인터 계층 참조 픽처의 움직임 필드는 인터 계층 예측을 위한 각각의 소스 픽처의 움직임 필드에 기초하여 획득될 수 있다. 업샘플링된 인터 계층 참조 픽처의 각각의 블록에 대한 움직임 파라미터(예를 들어, 수평 및/또는 수직 움직임 벡터 값 및 참조 인덱스를 포함할 수 있음) 및/또는 예측 모드는 인터 계층 예측을 위해 소스 픽처에 병치된 블록의 대응하는 움직임 파라미터 및/또는 예측 모드로부터 도출될 수 있다. 업샘플링된 인터 계층 참조 픽처에서 움직임 파라미터 및/또는 예측 모드의 도출에 이용되는 블록 사이즈는, 예를 들어, 16x16일 수 있다. 16x16 블록 사이즈는 참조 픽처의 압축된 움직임 필드가 이용되는 HEVC TMVP 도출 프로세스에서와 동일하다.
일부 경우에, 강화 계층의 데이터는 특정 위치 이후 또는 임의의 위치에서도 절단될 수 있으며, 각 절단 위치는 점점 더 강화된 시각적 품질을 표현하는 추가 데이터를 포함할 수 있다. 이러한 스케일 가능성은 FGS(fine-grained(granularity) scalability)라고 불린다.
MVC와 유사하게, MV-HEVC에서, 인터 뷰 참조 픽처는 코딩 또는 디코딩되는 현재 픽처의 참조 픽처 리스트에 포함될 수 있다. SHVC는 (H.264/AVC의 SVC 확장과 달리) 멀티 루프 디코딩 동작을 이용한다. SHVC는 참조 인덱스 기반 방법을 이용하는 것으로 간주될 수 있는데, 즉, 인터 계층 참조 픽처는 (위에서 설명한 것과 같이) 코딩 또는 디코딩되는 현재 픽처의 하나 이상의 참조 픽처 리스트에 포함될 수 있다.
강화 계층 코딩의 경우, HEVC 베이스 계층의 개념 및 코딩 툴이 SHVC, MV-HEVC 등에서 이용될 수 있다. 그러나, 강화 계층을 효율적으로 코딩하기 위해 참조 계층에서 이미 코딩된 데이터(재구성된 픽처 샘플 및 움직임 정보라고도 불리는 움직임 파라미터를 포함함)를 채용하는 추가적인 인터 계층 예측 툴이 SHVC, MV-HEVC 등에 통합될 수 있다.
비트스트림은 비트스트림에 포함되거나 (하이브리드 코덱 스케일 가능성의 경우) 외부로부터 제공되는 베이스 계층(즉, 멀티 계층 HEVC 확장에서 nuh_layer_id가 0인 계층)을 반드시 포함할 필요는 없지만, 가장 낮은 계층은 독립적인 비베이스 계층일 수 있다. 일부 경우에, 비트스트림에 존재하는 가장 낮은 nuh_layer_id를 갖는 계층이 비트스트림의 베이스 계층으로 간주될 수 있다.
HEVC에서, VPS 플래그 vps_base_layer_internal_flag 및 vps_base_layer_available_flag는 다음과 같이 베이스 계층의 존재 여부 및 이용 가능성을 표시하는데 이용될 수 있다: vps_base_layer_internal_flag가 1이고 vps_base_layer_available_flag가 1이면, 베이스 계층이 비트스트림에 존재한다. 이와 달리, vps_base_layer_internal_flag가 0이고 vps_base_layer_available_flag가 1이면, 베이스 계층은 외부 수단에 의해 멀티 계층 HEVC 디코딩 프로세스에 제공되는데, 즉, 디코딩된 베이스 계층뿐만 아니라 디코딩된 베이스 계층에 대한 특정 변수 및 구문론 요소가 멀티 계층 HEVC 디코딩 프로세스에 제공된다. 외부 수단에 의해 멀티 계층 HEVC 디코딩 프로세스에 제공되는 베이스 계층 및/또는 각각의 디코딩된 베이스 계층 픽처는 외부 베이스 계층이라고 불릴 수 있다. 이와 달리, vps_base_layer_internal_flag가 1이고 vps_base_layer_available_flag가 0인 경우, 베이스 계층은 이용할 수 없지만(비트스트림에도 존재하지도 않고 외부 수단에 의해 제공되지도 않음), 마치 베이스 계층이 비트스트림에 존재하는 것처럼 VPS는 베이스 계층의 정보를 포함한다. 이와 달리, vps_base_layer_internal_flag가 0이고 vps_base_layer_available_flag가 0인 경우, 베이스 계층은 이용할 수 없지만(비트스트림에 존재하지도 않고 외부 수단에 의해 제공되지도 않음) 베이스 계층이 외부 수단에 의해 제공된 것처럼 VPS는 베이스 계층의 정보를 포함한다.
코딩 표준은 서브-비트스트림 추출 프로세스를 포함할 수 있으며, 이는, 예를 들어, SVC, MVC 및 HEVC에서 특정된다. 서브-비트스트림 추출 프로세스는 전형적으로 NAL 유닛을 제거함으로써 비트스트림을 비트스트림 서브세트로 불릴 수도 있는 서브-비트스트림으로 변환하는 것에 관련된다. 서브-비트스트림은 여전히 표준을 따른다. 예를 들어, HEVC에서, TemporalId 값이 선택된 값보다 큰 모든 VCL NAL 유닛을 제외한 다른 모든 VCL NAL 유닛을 포함시켜 생성된 비트스트림은 표준을 따른다.
HEVC 표준(버전 2)은 3개의 서브-비트스트림 추출 프로세스를 포함한다. HEVC 표준 10절의 서브-비트스트림 추출 프로세스는 결과적인 서브-비트스트림에 대한 비트스트림 합치성 요구가 F.10.1절에서 완화되어 베이스 계층이 외부적이거나(vps_base_layer_internal_flag가 0인 경우) 또는 이용할 수 없는 경우(vps_base_layer_available_flag가 0인 경우)에도 비트스트림에 이용될 수 있다는 것을 제외하고는 F.10.1절의 것과 동일하다. HEVC 표준(버전 2)의 F.10.3절은 베이스 계층을 포함하지 않는 서브-비트스트림을 산출하는 서브-비트스트림 추출 프로세스를 특정한다. 3가지 서브-비트스트림 추출 프로세스는 모두 유사하게 동작하는데, 즉 서브-비트스트림 추출 프로세스는 TemporalId 및/또는 nuh_layer_id 값의 리스트를 입력받고, 입력 TemporalId 값보다 큰 TemporalId를 갖거나, 또는 nuh_layer_id 값의 입력 리스트에 없는 값을 갖는 nuh_layer_id를 갖는 모든 NAL 유닛을 비트스트림으로부터 제거하여 서브-비트스트림(비트스트림 서브세트로 알려짐)을 도출한다.
코딩 표준 또는 시스템은, 디코딩이 동작하는 스케일 가능 계층 및/또는 서브계층을 표시할 수 있고, 및/또는 디코딩되는 스케일 가능 계층 및/또는 서브계층을 포함하는 서브-비트스트림과 연관될 수 있는 동작 포인트(operation point) 등의 용어를 언급할 수 있다. HEVC에서, 동작 포인트는 다른 비트스트림, 타겟 최상위 TemporalId 및 타겟 계층 식별자 리스트를 입력으로 하는 서브-비트스트림 추출 프로세스의 동작에 의해 다른 비트스트림으로부터 생성되는 비트스트림으로 정의된다.
출력 계층은 디코딩된 픽처가 디코딩 프로세스에 의해 출력되는 계층으로 정의될 수 있다. 출력 계층은 멀티 계층 비트스트림의 어떤 서브세트가 디코딩되는지에 따라 다를 수 있다. 디코딩 프로세스에 의해 출력되는 픽처는 추가로 처리될 수 있는데, 예를 들면, YUV 색 공간으로부터 RGB로의 색 공간 변환이 수행될 수 있고, 변환된 것들이 디스플레이될 수 있다. 그러나, 추가 처리 및/또는 디스플레이는 디코더 및/또는 디코딩 프로세스의 외부의 프로세스인 것으로 간주될 수 있다.
멀티 계층 비디오 비트스트림에서, 동작 포인트의 정의는 타겟 출력 계층 세트를 고려하는 것을 포함할 수 있다. 예를 들어, 동작 포인트는 다른 비트스트림, 타겟 최상위 시간적 서브계층(예를 들어, 타겟 최상위 TemporalId) 및 타겟 계층 식별자 리스트를 입력으로 하는 서브-비트스트림 추출 프로세스의 동작에 의해 다른 비트스트림으로부터 생성되고, 출력 계층 세트와 연관되는 비트스트림으로 정의될 수 있다. 이와 달리, 출력 동작 포인트와 같은 다른 용어는 동작 포인트 및 연관된 출력 계층 세트를 언급할 때 이용될 수 있다. 예를 들어, MV-HEVC/SHVC에서, 출력 동작 포인트는 입력 비트스트림, 타겟 최상위 TemporalId 및 타겟 계층 식별자 리스트를 입력으로 하는 서브-비트스트림 추출 프로세스의 동작에 의해 입력 비트스트림으로부터 생성되고, 출력 계층 세트와 연관되는 비트스트림으로 정의될 수 있다.
스케일 가능 멀티 계층 비트스트림에 의해 계층 및 시간적 서브계층의 2이상의 조합의 디코딩이 가능하므로, 멀티 계층 디코딩 프로세스는 입력으로서 타겟 출력 동작 포인트를 (외부 수단에 의해) 제공받을 수 있다. 출력 동작 포인트는, 예를 들어, 출력 계층 세트(output layer set: OLS) 및 디코딩될 최상위 시간적 서브계층을 특정함으로써 제공될 수 있다. OLS는 필요한 계층 또는 불필요한 계층으로 분류될 수 있는 계층 세트를 표현하기 위해 정의될 수 있다. 필요한 계층은, 그 계층의 픽처가 디코딩 프로세스에 의해 출력됨을 의미하는 출력 계층, 또는 그 픽처가 직접 또는 간접적으로 임의의 출력 계층의 픽처의 예측을 위한 참조로서 이용될 수 있음을 의미하는 참조 계층으로 정의될 수 있다. 멀티 계층 HEVC 확장에서, VPS는 OLS의 사양을 포함하고, 또한 OLS에 대한 버퍼링 요구 및 파라미터를 특정할 수 있다. 불필요한 계층은, 출력 계층을 재구성하기 위해 디코딩될 필요는 없지만, 일부 계층은 잠재적인 차후의 확장을 위해 코딩되는 계층 세트에 대한 버퍼링 요구를 표시하기 위해 OLS에 포함될 수 있는 계층으로 정의될 수 있다.
블록, 영역 또는 픽처의 스킵 코딩은 스케일 가능 비디오 코딩의 맥락에서 정의될 수 있으므로, 디코딩되거나 재구성된 블록, 영역 또는 픽처는 각각 인터 계층 예측 신호(예를 들어, 단일 예측(uni-prediction)의 경우 인터 계층 참조 픽처의 각각의 블록, 영역, 또는 픽처)와 동일하다. 스킵 코딩된 블록, 영역 또는 픽처에 대한 예측 오차는 코딩되지 않으므로, 결과적으로 스킵 코딩된 블록, 영역 또는 픽처에 대한 예측 오차는 디코딩되지 않는다. 코딩된 예측 오차를 이용할 수 없다는 것은 인코더에 의해 표시되거나, 및/또는 디코더에 의해 블록 별로(예를 들어, HEVC 등의 cu_skip_flag를 사용하여) 디코딩될 수 있다. 스킵 코딩된 블록, 영역 또는 픽처에 대해 인 루프 필터링이 꺼져 있다는 것은, 예를 들면, 코딩 표준에서 사전 정의될 수 있거나, 또는 인코더에 의해 표시되고 디코더에 의해 디코딩될 수 있다. 가중 예측이 꺼져 있다는 것은, 예를 들면, 코딩 표준에서 사전 정의될 수 있거나, 또는 인코더에 의해 표시되고 디코더에 의해 디코딩될 수 있다.
프로파일은 디코딩/코딩 표준 또는 사양에 의해 특정된 전체 비트스트림 구문론의 서브세트로서 정의될 수 있다. 주어진 프로파일의 구문론에 의해 정해지는 범위에서, 디코딩된 픽처의 특정 크기와 같은 비트스트림의 구문론 요소에 의해 취해진 값에 따라, 인코더 및 디코더의 성능에 매우 큰 변화를 요구할 수 있다. 많은 애플리케이션에서, 특정 프로파일에서 구문론의 모든 가상적인 이용에 대처할 수 있도록 디코더를 구현하는 것은 실용적이지도 경제적이지도 않다. 이 문제를 해결하기 위해, 레벨을 이용할 수 있다. 레벨은 비트스트림에서 구문론 요소의 값에 부과된 특정 제약의 세트 및 디코딩/코딩 표준 또는 사양에서 특정된 변수로 정의될 수 있다. 이러한 제약은 값에 대한 단순한 제한일 수 있다. 이와 달리 또는 추가로, 이러한 제약은 값의 산술 조합(예를 들어, 픽처 폭에 픽처 높이를 곱한 것에 다시 초당 디코딩된 픽처의 수를 곱한 값)에 대한 제약의 형태를 취할 수 있다. 또한, 레벨에 대한 제약을 특정하는 다른 수단이 이용될 수 있다. 레벨에서 특정된 제약 중 일부는 최대 픽처 크기, 초와 같은 시간 당 매크로 블록과 같은 코딩 유닛으로서 최대 비트 레이트 및 최대 데이터 레이트와 관련될 수 있다. 모든 프로파일에 대해 동일한 레벨 세트가 정의될 수 있다. 예를 들어, 상이한 프로파일을 구현하는 단말기의 상호 운용성을 증가시켜 각 레벨의 정의의 대부분 또는 모든 양태가 상이한 프로파일에 걸쳐 공통적일 수 있도록 하는 것이 바람직할 수 있다. 티어(tier)는 비트스트림의 구문론 요소의 값에 부과된 레벨 제약의 특정 카테고리로 정의될 수 있는데, 여기서 레벨 제약은 티어에서 중첩되고, 특정 티어 및 레벨을 따르는 디코더는 그 레벨의 같은 티어 또는 하위 티어 또는 그 아래의 모든 레벨을 따르는 모든 비트스트림을 디코딩할 수 있다.
이전의 많은 비디오 코딩 표준은 비트스트림에 적용하는 프로파일 레벨 합치성 포인트(conformance point)를 특정하였던 것에 반해, 멀티 계층 HEVC 확장은 계층 별로 합치성 포인트를 특정한다. 보다 정확하게는, 프로파일-티어-레벨(profile-tier-level: PTL) 조합은 각각의 OLS의 각각의 필요한 계층에 대해 표시되며, 보다 미세한 시간적 서브계층 기반 PTL 시그널링이 허용되는데, 즉 각각의 OLS의 각각의 필요한 계층의 각각의 시간적 서브세트에 대한 PLT 조합을 표시할 수 있다. HEVC 디코더의 디코더 성능은 PTL 값의 리스트로 표시될 수 있는데, 여기서 리스트 요소의 수는 디코더에 의해 지원되는 계층의 개수를 표시하고, 각각의 PTL 값은 계층에 대한 디코딩 성능을 표시한다. 인터 계층 예측되지 않은 비베이스 계층은 메인 프로파일(Main profile)과 같은 단일 계층 프로파일을 따르는 것으로 표시될 수 있으며, 계층 별로 디코딩을 정확하게 수행하는, 소위 독립적 비베이스 계층 디코딩(independent non-base layer decoding: INBLD) 성능을 필요로 한다.
프레임-호환 스테레오스코픽 비디오에서, 단일 프레임으로의 스테레오 쌍의 공간적 패킹은 인코딩을 위한 전처리 단계로서 인코더 측에서 수행되고, 이어서 프레임 패킹된 프레임은 종래의 2D 비디오 코딩 방식으로 인코딩된다. 디코더에 의해 생성된 출력 프레임은 스테레오 쌍의 구성 프레임을 포함한다. 이러한 프레임 패킹 방법은 2개 이상의 뷰 및/또는 다른 타입의 비디오 콘텐츠에 일반화될 수 있다. 예를 들어, 4 또는 8 뷰의 픽처는 인코딩을 위한 전처리로서 단일 프레임으로 공간적으로 패킹될 수 있다. 다른 예에서, 하나 이상의 깊이 뷰의 픽처는 인코딩을 위한 전처리로서 하나 이상의 비디오 뷰의 픽처에 단일 프레임으로 공간적으로 패킹될 수 있다.
프레임 패킹의 전형적인 동작 모드에서, 단일 프레임으로 패킹된 구성 프레임은 동일한 폭 및 높이를 갖는다. 공간적 패킹은, 예를 들어, 병치 또는 상하 포맷을 이용할 수 있다. 보다 일반적으로, 구성 프레임은 폭 및/또는 높이가 상이할 수 있으며, 단일 프레임 내에서 그들의 위치는 가변적일 수 있고 디코더 측에 표시될 수 있다. 일부 경우에, 구성 프레임은 단일 프레임에서 하나 이상의 영역으로 분할될 수 있다.
동형 리소스 식별자(Uniform Resource Identifier: URI)는 리소스의 이름을 식별하는 데에 사용되는 문자의 스트링으로 정의될 수 있다. 그러한 식별에 의해 특정 프로토콜을 이용하여 네트워크 상에서 리소스의 표현과의 상호작용(interaction)이 가능해진다. URI는 URI를 위한 구체적인 구문론 및 연관된 프로토콜을 특정하는 방식을 통해 정의된다. 동형 리소스 로케이터(Uniform Resource Locator: URL) 및 동형 리소스 명칭(Uniform Resource Name: URN)은 URI의 형태이다. URL은, 웹 리소스(web resoure)를 식별하고 리소스의 표현에 따라 작동하거나 이를 획득하는 수단을 특정하여, 그것의 주요 액세스 메커니즘 및 네트워크 위치 모두를 특정하는 URI로 정의될 수 있다. URN은 특정한 이름공간(namespace)에서 이름에 의해 리소스를 식별하는 URI로 정의될 수 있다. URN은 리소스를, 그것의 위치 또는 어떻게 그것을 액세스하는지를 암시하지 않고서 식별하기 위해 이용될 수 있다.
HTTP(Hypertext Transfer Protocol)는 비디오 스트리밍 애플리케이션과 같이 인터넷을 통해 실시간 멀티미디어 콘텐츠를 전달하는데 널리 이용되고 있다. Microsoft® Smooth Streaming, Apple® Adaptive HTTP Live Streaming 및 Adobe® Dynamic Streaming과 같은 HTTP를 통한 적응형 스트리밍을 위한 몇 가지 상용 솔루션이 출시되었으며 표준화 프로젝트가 수행되었다. 적응형 HTTP 스트리밍(Adaptive HTTP streaming: AHS)은 3세대 파트너십 프로젝트(3GPP) 패킷 교환 스트리밍(PSS) 서비스의 Release 9(3GPP TS 26.234 Release 9: "투명한 종단 간 패킷 교환 스트리밍 서비스(PSS); 프로토콜 및 코덱")에서 처음 표준화되었다. MPEG은 3GPP AHS Release 9를 MPEG DASH 표준(ISO/IEC 23009-1: "HTTP(DASH)을 통한 동적 적응형 스트리밍-Part 1: 미디어 표현 설명 및 세그먼트 포맷", 국제 표준, 제 2 판, 2014)에 대한 시작점으로 삼았다. MPEG DASH 및 3GP-DASH는 기술적으로 서로 유사하므로 집합적으로 DASH라고 불릴 수 있다. 이하에서는 DASH의 일부 개념, 포맷 및 동작을 실시예가 구현될 수 있는 비디오 스트리밍 시스템의 예로서 설명한다. 발명의 양태는 DASH에 한정되지 않고, 오히려 이러한 설명은 발명이 부분적으로 또는 완전히 실현될 수 있는 하나의 가능한 기반을 위해 제공된다.
DASH에서, 멀티미디어 콘텐츠는 HTTP 서버에 저장될 수 있고 HTTP를 이용하여 전달될 수 있다. 콘텐츠는 두 부분, 즉 이용가능한 콘텐츠, 이의 다양한 대체물, URL 주소 및 기타 특성의 매니페스트를 설명하는 MPD(Media Presentation Description), 및 단일 또는 복수의 파일에 실제 멀티미디어 비트스트림을 청크의 형태로 포함하는 세그먼트로 서버에 저장될 수 있다. MPD는 클라이언트가 HTTP를 통해 동적 적응형 스트리밍을 수립하는 데 필요한 정보를 제공한다. MPD는 GET 세그먼트 요청을 수행하기 위해 각 세그먼트의 HTTP-URL(uniform resource locator)와 같은 미디어 프레젠테이션을 설명하는 정보를 포함한다. 콘텐츠를 재생하기 위해, DASH 클라이언트는, 예를 들어, HTTP, 이메일, 썸 드라이브, 브로드캐스트 또는 다른 전송 방법을 이용하여 MPD를 획득할 수 있다. DASH 클라이언트는 MPD를 파싱함으로써 프로그램 타이밍, 미디어 콘텐츠 이용 가능성, 미디어 타입, 해상도, 최소 및 최대 대역폭, 및 멀티미디어 컴포넌트의 다양한 인코딩된 대안의 존재, 액세스 가능성 기능 및 필수 디지털 저작권 관리(digital rights management: DRM), 네트워크 상의 미디어 컴포넌트 위치 및 기타 콘텐츠 특성을 알게 될 수 있다. 이러한 정보를 이용하여, DASH 클라이언트는 적절한 인코딩된 대안을 선택할 수 있고, 예를 들어, HTTP GET 요청을 이용하여, 세그먼트를 페치함으로써 콘텐츠 스트리밍을 시작할 수 있다. 네트워크 처리량 변동을 허용하기 위한 적절한 버퍼링 후에, 클라이언트는 후속 세그먼트를 계속 페치하고 또한 네트워크 대역폭 변동을 모니터링할 수 있다. 클라이언트는 적절한 버퍼를 유지하기 위해 (낮은 비트레이트 또는 높은 비트레이트를 갖는) 다른 대안의 세그먼트를 페치함으로써 이용 가능한 대역폭에 적응하는 방법을 결정할 수 있다.
DASH의 맥락에서, 다음의 정의가 사용될 수 있다. 미디어 콘텐츠 컴포넌트 또는 미디어 컴포넌트는 개별적으로 미디어 스트림으로 인코딩될 수 있는 할당된 미디어 컴포넌트 타입을 갖는 미디어 콘텐츠의 하나의 연속적인 컴포넌트로 정의될 수 있다. 미디어 콘텐츠는 하나의 미디어 콘텐츠 주기 또는 미디어 콘텐츠 주기의 인접한 시퀀스로 정의될 수 있다. 미디어 콘텐츠 컴포넌트 타입은 오디오, 비디오 또는 텍스트와 같은 단일 타입의 미디어 콘텐츠로 정의될 수 있다. 미디어 스트림은 미디어 콘텐츠 컴포넌트의 인코딩된 버전으로 정의될 수 있다.
DASH에서, 미디어 프레젠테이션을 구조화하기 위해 다음과 같은 계층적 구조의 데이터 모델이 이용된다. 미디어 프리젠테이션은 하나 이상의 주기(Period)의 시퀀스로 구성되고, 각 주기는 하나 이상의 그룹(Group)을 포함하며, 각 그룹은 하나 이상의 적응 세트(Adaptation Set)를 포함하고, 각 적응 세트는 하나 이상의 표현(Representation)을 포함하며, 각 표현은 하나 이상의 세그먼트(Segment)로 구성된다. 그룹은 동시에 제시될 것으로 기대되지 않는 적응 세트의 집합으로 정의될 수 있다. 적응 세트는 하나 또는 몇 개의 미디어 콘텐츠 컴포넌트의 상호 교환 가능한 인코딩된 버전의 세트로 정의될 수 있다. 표현은 전형적으로 인코딩 선택, 예를 들어, 비트레이트, 해상도, 언어, 코덱 등에 따라 달라지는 미디어 콘텐츠 또는 이들의 서브세트의 대안적인 선택 중 하나이다. 세그먼트는 미디어 데이터의 특정 기간 및 포함된 미디어 콘텐츠를 디코딩하고 제시하기 위한 메타데이터를 포함한다. 세그먼트는 URI에 의해 식별되고 전형적으로 HTTP GET 요청에 의해 요청될 수 있다. 세그먼트는 HTTP-URL 및 선택적으로 MPD에 의해 특정되는 바이트 범위와 연관된 데이터의 유닛으로 정의될 수 있다.
DASH MPD는 XML(Extensible Markup Language)을 준수하므로 XML에 정의된 것과 같은 요소와 속성을 통해 특정된다. MPD는 다음 규칙을 사용하여 특정될 수 있다: XML 문서에서 요소(Element)는 Element와 같이 대문자의 첫 번째 문자로 식별될 수 있고 볼드체로 나타낼 수 있다. 요소 Element1이 다른 요소 Element2에 포함됨을 표현하기 위해 Element2.Element1라고 쓸 수 있다. 요소의 이름이 2개 이상의 조합된 단어로 구성되어 있으면, 카멜 표기법(camel-casing)이 사용될 수 있다(예를 들어, ImportantElement). 요소는 정확히 한 번 제시되거나 최소 및 최대 발생이 <minOccurs> ... <maxOccurs>로 정의될 수 있다. XML 문서에서 속성(attribute)은 소문자의 첫 번째 문자로 식별될 수 있을 뿐만 아니라 앞에 '@' 기호가 붙을 수 있다(예를 들어, @attribute). 요소 Element에 포함된 특정 속성 @attribute를 가리키기 위해 Element@attribute라고 쓸 수 있다. 속성의 이름이 2개 이상의 조합된 단어로 구성된 경우, 첫 번째 단어 다음에 카멜 표기법이 사용될 수 있다(예를 들어, @veryImportantAttribute). 속성은 XML에 필수(mandatory: M), 선택적(optional: O), 기본값을 가진 선택적(optional with default value: OD) 및 조건부 필수(conditionally mandatory: CM)로 상태를 할당할 수 있다.
DASH에서, 모든 서술자 요소는 동일한 방식, 즉, URI를 제공하여 방식을 식별하는 @schemeIdUri 속성과, 선택적 속성 @value 및 선택적 속성 @id을 포함하는 방식으로 구조화된다. 요소의 의미론은 채용되는 방식에 따라 특정된다. 방식을 식별하는 URI는 URN 또는 URL일 수 있다. 일부 서술자는 MPEG-DASH(ISO/IEC 23009-1)에 특정되어 있으나, 서술자는 다른 사양에서 추가적으로 또는 대안적으로 특정될 수 있다. MPEG-DASH이 아닌 다른 사양에서 특정되면, MPD는 서술자 요소를 이용하는 방법에 대한 어떤 특정 정보도 제공하지 않는다. 이것은 적절한 방식 정보로 설명 요소를 예시하는 DASH 포맷을 채용하는 애플리케이션 또는 사양에 달려 있다. 이들 요소들 중 하나를 이용하는 애플리케이션 또는 사양은 URI의 형태로 방식 식별자(Scheme Identifier)와, 방식 식별자가 이용될 때 요소에 대한 값 공간을 정의한다.
방식 식별자는 @schemeIdUri 속성에 출현한다. 간단한 열거형 값 세트가 요구되는 경우, 각 값에 대해 텍스트 스트링이 정의될 수 있으며 이 스트링은 @value 속성에 포함될 수 있다. 구조화된 데이터가 요구되는 경우, 확장 요소 또는 속성을 별도의 이름공간에 정의할 수 있다. @id 값은 고유한 서술자 또는 서술자 그룹을 나타내기 위해 이용될 수 있다. 후자의 경우, 속성 @id에 대해 동일한 값을 갖는 서술자는 동의어일 필요가 있을 수 있는데, 즉, @id에 대해 동일한 값을 갖는 서술자 중 하나의 처리만으로 충분하다. 요소 이름, @schemeldUri 값 및 @value 속성 값이 동일하면, 타입 DescriptorType의 2 요소는 동일하다. @schemeIdUri가 URN이면, 동등성은 RFC2141의 5절에 정의된 사전적 동등성(lexical equivalence)을 의미할 수 있다. @schemeIdUri가 URL이면, 동등성은 RFC3986의 6.2.1절에 정의된 문자 대 문자 기준의 동등성을 의미할 수 있다. @value 속성이 존재하지 않으면, @schemeIdUri의 동등성만으로 동등성을 결정할 수 있다. 확장 이름공간의 속성 및 요소는 동등성을 결정하는 데 이용할 수 없다. 동등성 결정에 @id 속성을 무시할 수 있다.
MPEG-DASH는 서술자 EssentialProperty 및 SupplementalProperty를 특정한다. EssentialProperty 요소의 경우, 미디어 프레젠테이션 작성자는, 요소가 다른 EssentialProperty 요소와 동일한 @id를 공유하지 않는 한 서술자를 포함하는 부모 요소의 정보를 적절하게 이용하기 위해 이 서술자의 성공적인 처리가 필수적이라고 표현한다. EssentialProperty 요소가 동일한 @id를 공유하면, @id에 대해 동일한 값을 갖는 EssentialProperty 요소 중 하나를 처리하는 것으로 충분하다. 각각의 구별되는 @id 값을 갖는 적어도 하나의 EssentialProperty 요소가 처리될 것으로 예상된다. 방식이나 EssentialProperty 서술자의 값이 인식되지 않으면, DASH 클라이언트는 서술자가 포함된 부모 요소를 무시할 것으로 예상된다. 하나의 MPD에는 @id에 대해 동일한 값을 갖는 EssentialProperty 요소와 @id에 대해 다른 값을 갖는 EssentialProperty 요소가 복수개 존재할 수 있다.
SupplementalProperty 요소의 경우, 미디어 프레젠테이션 작성자는 서술자가 최적화된 처리를 위해 DASH 클라이언트가 이용할 수 있는 보충 정보를 포함하고 있다는 것을 표현한다. 방식이나 SupplementalProperty 서술자의 값이 인식되지 않으면, DASH 클라이언트는 서술자를 무시할 것으로 예상된다. 하나의 MPD에 복수의 SupplementalProperty 요소가 존재할 수 있다.
공간적 관계 설명(Spatial Relationship Description: SRD)은 MPEG-DASH의 필수 부록 H에 특정된다. 다음은 SRD 사양의 일부 발췌 부분을 포함한다.
미디어 프레젠테이션 설명 작성자는 SRD 방식을 이용하여 공간적 객체들(Spatial Objeccts) 간의 공간적 관계를 표현할 수 있다. 공간적 객체는 적응 세트(Adaption Set) 또는 서브표현(Sub-Representation)으로 표현된다. 일례로, 공간적 관계는 비디오가 또 다른 풀 프레임 비디오(예를 들어, 관심 영역 또는 타일)의 공간적 부분을 표현하는 것을 나타낼 수 있다.
"urn:mpeg:dash:srd:2014"와 동일한 @schemeIdUri를 갖는 SupplementalProperty 및/또는 EssentialProperty 서술자는 공간적 객체를 포함하는 것과 연관된 공간적 관계 정보를 제공하는데 이용된다. SRD는 이 2개의 MPD 요소(AdaptationSet 및 SubRepresentation)에만 포함되어야 한다.
레거시 클라이언트와의 호환성을 유지하기 위해, MPD는 EssentialProperty를 포함하는 요소를 폐기한 후에 적어도 하나의 표현(Representation)이 레거시 클라이언트에 의해 해석될 수 있는 방식으로 SupplementalProperty 및 EssentialProperty를 이용하도록 요구된다.
서브표현 레벨 SRD는 HEVC 타일링 스트림과 같은 하나의 표현에서 공간적 객체를 표현하는데 이용될 수 있다. 이 경우, SRD 서술자는 서브표현 레벨뿐만 아니라 적응 세트에도 존재할 수 있다.
SRD 방식을 이용하는 SupplementalProperty 또는 EssentialProperty 요소의 @value는 SRD 파라미터에 대한 값들의 쉼표로 구분된 리스트이다. SRD 파라미터 source_id, object_x, object_y, object_width 및 object_height가 존재해야 하고, SRD 파라미터 total_width, total_height 및 spatial_set_id는 조건적으로 또는 선택적으로 존재한다.
source_id는 콘텐츠의 소스에 대한 식별자를 제공하는 10진수 표현의 음이 아닌 정수이다. source_id 파라미터는 주기(Period) 동안 콘텐츠의 소스에 대한 고유한 식별자를 제공한다. 이것은 이 소스와 연관된 좌표계를 암시적으로 정의한다. 이 좌표계는 임의의 원점(0; 0)을 이용하고, x축은 왼쪽에서 오른쪽으로 향하고, y축은 위에서 아래로 향한다. 동일한 source_id 값을 공유하는 모든 SRD는 동일한 원점 및 축 배향을 갖는다. 상이한 source_id 값을 갖는 SRD를 이용하는 공간적 객체에 대한 공간적 관계는 정의되지 않는다.
주어진 source_id 값에 대해, 좌측 상단 코너가 좌표계의 원점에 있는 전체 소스 콘텐츠를 포함하는 직사각형 영역에 대응하는 참조 공간이 정의된다. SRD의 total_width 및 total_height 값은 임의의 단위로 표현된 참조 공간의 크기를 제공한다. total_width는 임의의 단위로 참조 공간의 폭을 표현하는 10진수 표현의 음이 아닌 정수이다. total_height는 임의의 단위로 참조 공간의 높이를 표현하는 10진수 표현의 음이 아닌 정수이다. 예를 들어, 전체 소스 콘텐츠가 2개의 개별 비디오로 표현될 때, 콘텐츠의 전체 소스를 커버하는 MPD에 공간적 객체가 존재하지 않을 수 있다.
object_x는 임의의 단위로 공간적 객체의 좌측 상단 코너의 수평 위치를 표현하는 10진수 표현의 음이 아닌 정수이다. objec_y는 임의의 단위로 공간적 객체의 좌측 상단 코너의 수직 위치를 표현하는 10진수 표현의 음이 아닌 정수이다. object_width는 임의의 단위로 공간적 객체의 폭을 표현하는 10진수 표현의 음이 아닌 정수이다. object_height는 임의의 단위로 공간적 객체의 높이를 표현하는 10진수 표현의 음이 아닌 정수이다. object_x 및 object_y 파라미터(object_width 및 object_height 각각)는 소스와 연관된 좌표계에서 연관된 공간적 객체의 2D 위치(각각 2D 크기)를 표현한다. object_x, object_y, object_width 및 object_height 파라미터의 값은 앞서 정의된 total_width 및 total_height 파라미터의 값에 상대적이다. 동일한 source_id 값을 공유하는 SRD의 위치(object_x, object_y) 및 크기(object_width, object_height)는 참조 공간의 크기를 고려한 후에, 즉 object_x 및 object_width 값을 이들 각각의 서술자의 total_width 값으로 나누고 object_y 및 object_height 값을 이들 각각의 서술자의 total_height 값으로 나눈 후에 비교될 수 있다. 상이한 total_width 값 및 total_height 값은 상이한 서술자에서 동일한 참조 공간에 대해 상이한 단위로 위치 및 사이즈 정보를 제공하는데 이용될 수 있다.
spatial_set_id는 공간적 객체의 그룹에 대한 식별자를 제공하는 10진수 표현의 음이 아닌 정수이다. 존재하지 않을 경우, 이 서술자와 연관된 공간적 객체는 어떠한 공간적 세트에도 속하지 않고 공간적 세트 정보도 주어지지 않는다. MPD 작성자는 spatial_set_id 파라미터를 이용하여 주어진 source_id 내의 일부 공간적 객체가 특정 공간적 관계를 가지고 있음을 표현할 수 있다. 예를 들어, MPD 작성자는 타일에 대응하는 모든 적응 세트를 동일한 해상도 레벨로 그룹화할 수 있다. 이 방법으로, DASH 클라이언트는 spatial_set_id 파라미터를 이용하여 공간적으로 관련된 공간적 객체를 빠르게 선택할 수 있다.
DASH에서, 독립적 표현은 임의의 다른 표현과 독립적으로 처리될 수 있는 표현으로 정의될 수 있다. 독립적 표현은 독립적 비트스트림 또는 비트스트림의 독립적 계층을 포함하는 것으로 이해될 수 있다. 종속적 표현은, 상보적 표현으로부터의 세그먼트가, 포함된 미디어 콘텐츠 컴포넌트의 표현 및/또는 디코딩에 필요한 표현으로 정의될 수 있다. 종속적 표현은, 예를 들어, 스케일 가능 비트스트림의 예측된 계층을 포함하는 것으로 이해될 수 있다. 상보적 표현은 적어도 하나의 종속적 표현을 보완하는 표현으로 정의될 수 있다. 상보적 표현은 독립적 표현 또는 종속적 표현일 수 있다. 종속적 표현은 @dependencyId 속성을 포함하는 Representation 요소에 의해 기술될 수 있다. 종속적 표현은 디코딩 및/또는 프레젠테이션을 위한 상보적 표현 세트에 의존한다는 점을 제외하고는 정규 표현(regular Representation)으로 간주될 수 있다. @dependencyId는 모든 상보적 표현, 즉 이 종속적 표현에 포함된 미디어 콘텐츠 컴포넌트를 제시 및/또는 디코딩하는데 필요한 표현의 @id 속성 값을 포함한다.
초기화 세그먼트(Initialization Segment)는 미디어 세그먼트에 캡슐화된 미디어 스트림을 제시하는데 필요한 메타데이터를 포함하는 세그먼트로 정의될 수 있다. ISOBMFF 기반 세그먼트 포맷에서, 초기화 세그먼트는 임의의 샘플에 대한 메타 데이터를 포함하지 않는 무비 박스('moov')를 포함할 수 있는데, 즉 샘플에 대한 임의의 메타데이터가 'moof' 박스에 제공된다.
미디어 세그먼트는 정상 속도로 재생하기 위한 특정 지속시간의 미디어 데이터를 포함하고, 이러한 지속시간은 미디어 세그먼트 지속시간 또는 세그먼트 지속시간으로 불린다. 콘텐츠 제작자 또는 서비스 제공자는 원하는 서비스 특성에 따라 세그먼트 지속시간을 선택할 수 있다. 예를 들어, 짧은 종단 간 대기시간을 달성하기 위해 라이브 서비스에는 상대적으로 짧은 세그먼트 지속시간이 이용될 수 있다. 그 이유는, 세그먼트가 DASH를 위한 미디어 데이터를 생성하는 개별 유닛이므로 세그먼트 지속시간은 전형적으로 DASH 클라이언트가 인지하는 종단 간 대기시간에 대한 하한값이기 때문이다. 콘텐츠 생성은 전형적으로 미디어 데이터의 전체 세그먼트를 서버에서 이용할 수 있도록 하는 방식으로 행해진다. 더욱이, 많은 클라이언트 구현예에서 세그먼트는 GET 요청의 유닛으로 이용된다. 따라서, 라이브 서비스에 대한 전형적인 배열에서, DASH 클라이언트는 미디어 세그먼트의 전체 지속시간이 이용 가능할 뿐만 아니라 세그먼트로 인코딩되고 캡슐화될 때에만 세그먼트를 요청할 수 있다. 주문형 서비스의 경우, 세그먼트 지속시간을 선택하는 상이한 전략이 이용될 수 있다.
세그먼트는 서브세그먼트로 더 분할되어, 예를 들어, 세그먼트를 복수의 부분으로 다운로드하는 것이 가능하다. 서브세그먼트는 완전한 액세스 유닛을 포함하도록 요구된다. 서브세그먼트는 각 서브세그먼트에 대한 프레젠테이션 시간 범위 및 바이트 범위를 매핑하기 위한 정보를 포함하는 세그먼트 인덱스 박스에 의해 인덱싱될 수 있다. 세그먼트 인덱스 박스는 세그먼트의 지속시간 및 바이트 오프셋을 시그널링함으로써 세그먼트에 서브세그먼트 및 스트림 액세스 포인트를 기술할 수도 있다. DASH 클라이언트는 세그먼트 인덱스 박스로부터 획득된 정보를 이용하여 바이트 범위 HTTP 요청을 이용하는 특정 세그먼트에 대한 HTTP GET 요청을 할 수 있다. 상대적으로 긴 세그먼트 지속시간이 이용되면, 그 이후 서브세그먼트는 비트레이트 적응을 위해 합리적이고 유연한 HTTP 응답 크기를 유지하는데 이용될 수 있다. 세그먼트의 인덱싱 정보는 그 세그먼트의 시작부에 단일 박스에 실리거나 세그먼트에서 많은 인덱스 박스들 사이에 확산될 수 있다. 계층 구조적, 데이지(daisy) 체인 및 하이브리드와 같은 다른 확산 방법이 가능하다. 이러한 기법은 세그먼트 시작부에 큰 박스를 추가하지 않기 때문에 발생할 수 있는 초기 다운로드 지연을 방지할 수 있다.
서브표현은 정규 표현에 임베딩되고 SubRepresentation 요소로 기술된다. SubRepresentation 요소는 Representation 요소에 포함된다. SubRepresentation 요소는 표현에 임베딩된 하나 또는 다수의 미디어 콘텐츠 컴포넌트의 속성을 기술한다. 예를 들어, 임베딩된 오디오 컴포넌트(예를 들어, 코덱, 샘플링 레이트 등), 임베딩된 자막(예를 들어, 코덱)의 정확한 속성을 기술하거나, 또는 일부 임베딩된 저품질 비디오 계층(예를 들어, 일부 하위 프레임 레이트 등)을 기술할 수 있다. 서브표현 및 표현은 일부 공통 속성 및 요소를 공유한다. @level 속성이 SubRepresentation 요소에 존재하는 경우, 다음 사항이 적용된다:
- 서브표현은 이들이 포함된 표현의 저품질 버전에 액세스할 수 있는 기능을 제공한다. 이 경우, 예를 들어, 서브표현은 멀티플렉싱된 표현의 오디오 트랙의 추출을 허용하거나, 더 낮은 프레임 레이트로 제공되는 경우에는 효율적인 빨리감기 또는 되감기 동작을 허용할 수 있다.
- 초기화 세그먼트 및/또는 미디어 세그먼트 및/또는 인덱스 세그먼트는 HTTP 부분 GET 요청을 통해 데이터에 쉽게 액세스될 수 있도록 충분한 정보를 제공해야 한다. 그러한 정보를 제공하는 방법에 대한 자세한 사항은 이용 중인 미디어 포맷에 의해 정의된다
- ISOBMFF 세그먼트가 이용되는 경우, 다음 사항이 적용된다:
o 초기화 세그먼트는 레벨 할당(Level Assignment) 박스를 포함한다.
o 각 서브세그먼트에 대해 서브세그먼트 인덱스 박스('ssix')가 존재한다.
o 속성 @level은 기술된 서브표현이 서브세그먼트 인덱스에서 연관되는 레벨을 특정한다. 표현, 서브표현의 정보 및 레벨 할당('leva') 박스의 정보는 미디어 데이터를 레벨에 할당하는 것에 대한 정보를 포함한다.
o 미디어 데이터는 각각의 레벨이 하위 레벨에 대비하여 강화를 제공하도록 순서를 가져야 한다.
@level 속성이 없다면, 서브표현 요소는 단지 표현에 임베딩된 미디어 스트림에 대한 보다 자세한 설명을 제공하기 위해 이용된다.
ISOBMFF는 파일의 서브세트를 특정하는 소위 레벨 메커니즘을 포함한다. 레벨은 의존성 계층적 구조를 따르므로 레벨 n에 매핑되는 샘플은 레벨 m(여기서, m <= n)의 임의의 샘플에 종속될 수 있지만, 레벨 p의 임의의 샘플(여기서, p > n)에 종속되지 않는다. 예를 들어, 레벨은 시간적 서브계층(예를 들어, SVC의 temporal_id 또는 HEVC의 MVC 또는 TemporalId)에 따라 특정될 수 있다. 레벨은 무비 확장('mvex') 박스에 포함된 레벨 할당('leva') 박스에서 선언될 수 있다. 초기 무비에는 레벨을 특정할 수 없다. 레벨 할당 박스가 존재하면, 이것은 초기 무비에 후속하는 모든 무비 조각(Movie Fragment)에 적용된다. 레벨 할당 박스의 맥락에서, 프랙션(fraction)은 마지막 미디어 데이터 박스의 초기 부분만을 포함할 수 있는 연관된 미디어 데이터 박스 및 하나 이상의 무비 조각 박스로 구성되는 것으로 정의된다. 프랙션 내에서, 각 레벨에 대한 데이터가 연속적으로 나타난다. 프랙션 내의 레벨에 대한 데이터는 레벨 값의 증가하는 순서로 나타난다. 프랙션에서의 모든 데이터는 레벨에 할당되어야 한다. 레벨 할당 박스는 스케일 가능성 계층 또는 시간적 서브계층과 같은 특징으로부터 레벨로의 매핑을 제공한다. 특징은 트랙, 트랙 내의 서브트랙 또는 트랙의 샘플 그룹화를 통해 특정될 수 있다. 예를 들어, 시간적 레벨(Temporal Level) 샘플 그룹화는 HEVC 내의 시간적 서브계층과 동등한 시간적 레벨로의 픽처의 맵핑을 표시하기 위해 이용될 수 있다. 즉, 특정 TemporalId 값을 갖는 HEVC 픽처는 시간적 레벨 샘플 그룹화를 이용하여 특정 시간적 레벨에 맵핑될 수 있다(그리고 모든 TemporalId 값에 대해 반복될 수 있다). 그 이후 레벨 할당 박스는 레벨로의 표시된 매핑에서 시간적 레벨 샘플 그룹화를 참조할 수 있다. 레벨 할당 박스는 구문론 요소 padding_flag를 포함한다. padding_flag가 1이면, 이는 프랙션 내의 임의의 양의 정수의 레벨을 연결하고 마지막 미디어 데이터 박스를 마지막 미디어 데이터 박스의 헤더에 표시된 전체 크기까지 0바이트로 패딩함으로써 합치하는 프랙션이 형성될 수 있음을 나타낸다. 예를 들어, 각 프랙션이 동일한 비디오 비트스트림의 2 이상의 AVC, SVC, 또는 MVC 트랙을 포함하는 경우, padding_flag가 1로 설정될 수 있고, 프랙션의 각 트랙에 대한 샘플은 미디어 데이터 박스의 디코딩 순서에서 인접하고, 첫 번째 AVC, SVC, 또는 MVC 레벨의 샘플은 동일한 프랙션의 다른 레벨로부터의 비디오 코딩 NAL 유닛을 포함시키기 위한 추출자 NAL 유닛을 포함한다.
서브세그먼트 인덱스 박스('ssix')는 (레벨 할당 박스에 의해 특정된) 레벨로부터 인덱싱된 서브세그먼트의 바이트 범위로의 맵핑을 제공한다. 다시 말해, 이 박스는 서브세그먼트의 데이터가 부분적 서브세그먼트의 레벨에 따라 정렬되는 방법에 대한 간략한 인덱스를 제공한다. 이는 클라이언트가 서브세그먼트 내의 데이터 범위를 다운로드하여 부분적 서브세그먼트에 대한 데이터에 쉽게 액세스할 수 있게 한다. 서브세그먼트 인덱스 박스가 존재하는 경우, 서브세그먼트의 각 바이트가 하나의 레벨에 할당된다. 범위가 레벨 할당의 임의의 정보와 연관되지 않으면, 레벨 할당에 포함되지 않은 임의의 레벨이 이용될 수 있다. 리프(leaf) 서브세그먼트만을 인덱싱하는, 즉, 서브세그먼트만을 인덱싱하고 세그먼트는 인덱싱하지 않는 서브세그먼트 인덱스 박스가 각각의 세그먼트 인덱스 박스 당 0 또는 1개 존재한다. 서브세그먼트 인덱스 박스는, 만약 있다면, 연관된 세그먼트 인덱스 박스 이후의 박스이다. 서브세그먼트 인덱스 박스는 바로 앞에 있는 세그먼트 인덱스 박스에 표시된 서브세그먼트를 기록한다. 각 레벨은 정확히 하나의 부분적 서브세그먼트에 할당될 수 있는데, 즉, 하나의 레벨에 대한 바이트 범위는 인접한다. 부분적 서브세그먼트의 레벨은 서브세그먼트 내에서 수를 증가시켜 할당되는데, 즉, 부분적 서브세그먼트의 샘플은 동일한 서브세그먼트에서 선행하는 부분적 서브세그먼트의 임의의 샘플에 의존할 수 있지만, 그 반대로는 의존하지 않는다. 예를 들어, 각각의 부분적 서브세그먼트는 동일한 시간적 서브계층을 갖는 샘플을 포함하고, 부분적 서브세그먼트는 서브세그먼트 내에서 증가하는 시간적 서브계층 순서로 출현한다. 부분적 서브세그먼트가 이러한 방식으로 액세스될 때, 최종 미디어 데이터 박스가 불완전할 수 있는데, 즉 미디어 데이터 박스가 존재한다고 표시하는 길이 표시보다 적은 데이터가 액세스된다. 미디어 데이터 박스의 길이를 조정할 필요가 있거나 또는 패딩이 이용될 수 있다. 레벨 할당 박스의 padding_flag가 이 누락된 데이터가 0으로 대체될 수 있는지를 표시한다. 대체될 수 없다면, 액세스되지 않은 레벨에 할당된 샘플의 샘플 데이터가 존재하지 않으므로, 주의해야 한다.
상보적 표현 Y에 의존하는 종속적 표현 X에 대해, X의 m번째 서브세그먼트 및 Y의 n번째 서브세그먼트는, m과 n이 동일하지 않을 때마다, 겹치지 않는 것이 요구될 수 있다. 종속적 표현에 대해, 각각의 종속적 표현에 @dependencyId 속성에서 제공된 순서에서 상보적 표현의 각각의 대응하는 서브세그먼트가 선행하고, 종속적 표현의 서브세그먼트의 시퀀스와 초기화 세그먼트의 연결(concatenation)은 이러한 종속적 표현에 대한 @mimeType 속성에서 특정된 미디어 포맷을 따르는 서브세그먼트 시퀀스를 표현해야 하도록 요구될 수 있다.
MPEG-DASH는 ISOBMFF 및 MPEG-2 전송 스트림 모두에 대한 세그먼트 컨테이너 포맷을 정의한다. 다른 사양은 다른 컨테이너 포맷을 기초로 세그먼트 포맷을 특정할 수 있다. 예를 들어, 마트로스카 컨테이너 파일 포맷을 기초로 하는 세그먼트 포맷이 제안되었으며 다음과 같이 요약될 수 있다. 마트로스카 파일은 DASH 세그먼트 등으로서 운반될 때, DASH 유닛과 마트로스카 유닛의 연관은 다음과 같이 특정될 수 있다. (DASH의) 서브세그먼트는 마트로스카로 캡슐화된 콘텐츠의 하나 이상의 연속 클러스터로 정의될 수 있다. DASH의 초기화 세그먼트는 EBML 헤더, (마트로스카의) 세그먼트 헤더, (마트로스카의) 세그먼트 정보 및 트랙을 포함하도록 요구되고, 선택적으로 다른 레벨 1 요소 및 패딩을 포함할 수 있다. DASH의 세그먼트 인덱스는 마트로스카의 큐 요소를 포함할 수 있다.
DASH는 다양한 네트워크 대역폭과 매칭하도록 적응 세트 내의 상이한 표현으로부터 미디어 세그먼트를 동적으로 요청하여 레이트 적응을 지원한다. DASH 클라이언트가 표현을 위/아래로 전환할 때, 표현 내의 코딩 의존성을 고려하여야 한다. 표현 스위치는 H.264/AVC와 같은 비디오 코딩 기술에 일반적으로 사용되는 랜덤 액세스 포인트(random access point: RAP)에서 일어날 수 있다. DASH에서, 표현에 액세스하고 표현간에 스위칭을 행하는 코덱 독립적 솔루션을 제공하기 위해 스트림 액세스 포인트(Stream Access Point: SAP)라고 하는 보다 일반적인 개념이 도입되었다. DASH에서, SAP는 미디어 스트림의 재생이 해당 위치부터 시작하는 표현 데이터에 포함된 정보만을 이용하여 시작되도록 하는 표현 내의 그 위치로 특정된다(존재한다면, 초기화 세그먼트 내의 초기화 데이터가 선행함). 따라서 SAP에서 표현 스위칭을 행할 수 있다.
다음을 포함하여 몇몇 타입의 SAP가 특정되었다. SAP 타입 1은, 일부 코딩 방식에서 "폐쇄된 GOP 랜덤 액세스 포인트"(모든 픽처가 디코딩 순서에 따라 정확하게 디코딩되어, 갭이 없는 정확하게 디코딩된 픽처의 연속적인 시간 시퀀스를 생성함)로 알려져 있는 것에 대응하고, 또한 디코딩 순서에서 첫 번째 픽처는 프레젠테이션 순서에서 첫 번째 픽처이기도 한다. SAP 타입 2는, 일부 코딩 방식에서 "폐쇄된 GOP 랜덤 액세스 포인트"(모든 픽처가 디코딩 순서에 따라 정확하게 디코딩되어, 갭이 없는 정확하게 디코딩된 픽처의 연속적인 시간 시퀀스를 생성함)로 알려져 있는 것에 대응하고, 디코딩 순서에서 첫 번째 픽처가 프레젠테이션 순서에서 첫 번째 픽처가 아닐 수도 있다. SAP 타입 3은, 일부 코딩 방식에서 "개방형 GOP 랜덤 액세스 포인트"로 알려져 있는 것에 대응하고, 디코딩 순서에 따라 정확하게 디코딩될 수 없는 픽처가 일부 있을 수 있으며, SAP에 연관된 인트라 코딩된 픽처보다 짧은 프레젠테이션 시간을 갖는다.
전술한 것과 같이, 클라이언트 또는 플레이어는 스케일 가능 비디오 비트스트림의 전송된 계층 및/또는 서브계층이 어떻게 결정되는지와 유사하게, 상이한 표현으로부터 전송되는 세그먼트 또는 서브세그먼트를 요청할 수 있다. 표현 다운-스위칭 또는 비트스트림 다운-스위칭이라는 용어는 이전에 (각각) 요청되었거나 전송되었던 것보다 낮은 비트레이트 표현을 요구하거나 전송하는 것을 의미할 수 있다. 표현 업-스위칭 또는 비트스트림 업-스위칭이라는 용어는 이전에 요청되었거나 전송되었던 것보다 높은 비트레이트 표현을 요구하거나 전송하는 것을 의미할 수 있다. 표현 스위칭 또는 비트스트림 스위칭이라는 용어는 집합적으로 표현 또는 비트스트림의 업 및 다운 스위칭을 의미할 수 있고, 또는 이와 달리 다른 관점의 표현 또는 비트스트림의 스위칭을 커버할 수도 있다.
MPEG-DASH와 유사한 스트리밍 시스템은, 예를 들어, IETF 인터넷 드래프트(Internet Draft) draft-pantos-http-livestreaming-13(그리고 동일한 인터넷 드래프트의 다른 버전)에 특정된 HTTP 라이브 스트리밍(HTTP Live Streaming)(HLS로도 알려짐)을 포함한다. MPD에 대응하는 매니페스트 포맷으로서, HLS는 확장된 M3U 포맷을 이용한다. M3U는 원래 오디오 파일을 위해 개발된, 멀티미디어 플레이리스트를 위한 파일 포맷이다. M3U 플레이리스트는 개별적인 라인(line)으로 구성된 텍스트 파일이고, 각각의 라인은 URI, 공백(blank)이거나, 태그(tag) 또는 코멘트(comment)를 표시하는 문자 '#'로 시작한다. URI 라인은 미디어 세그먼트 또는 플레이리스트 파일을 식별한다. 태그는 #EXT로 시작한다. HLS 사양은 키-값(key-value) 쌍으로 간주될 수 있는 태그의 수를 특정한다. 태그의 값 부분은 속성-값(attribute-value) 쌍의 쉼표로 구분된 리스트인 속성 리스트를 포함할 수 있는데, 여기서 속성-값 쌍은 구문론 AttributeName=AttributeValue을 가진다고 간주될 수 있다. 그러므로, HLS M3U8 파일의 태그는 MPD 또는 XML의 요소와 유사하다고 간주될 수 있고, HLS M3U8 파일의 속성은 MPD 또는 XML의 속성과 유사하다고 간주될 수 있다. HLS의 미디어 세그먼트는 MPEG-2 전송 스트림에 따라 포맷된 단일 MPEG-2 프로그램을 포함한다. 각각의 미디어 세그먼트는 프로그램 연관 테이블(Program Association Table: PAT) 및 프로그램 맵 테이블(Program Map Table: PMT)로 시작하도록 권장된다.
종단 간 DASH 시스템은 다음과 같이 구성될 수 있다. 미디어 콘텐츠는 전형적으로 기존 웹(HTTP) 서버인 오리진 서버에 의해 제공된다. 오리진 서버는 스트리밍된 콘텐츠가 전달되어 에지 서버에 저장되는 콘텐츠 전달 네트워크(Content Delivery Network: CDN)와 접속될 수 있다. MPD는 콘텐츠에 대한 복수의 베이스 URL의 시그널링을 허용하여 다른 에지 서버에서 콘텐츠의 이용 가능성을 알리는 데 이용될 수 있다. 대안적으로, 콘텐츠 서버는 인터넷에 직접 접속될 수 있다. 웹 프록시는 DASH 클라이언트와 콘텐츠가 요청된 오리진 또는 에지 서버 사이에 HTTP 트래픽을 라우팅하는 경로에 상주할 수 있다. 웹 프록시는 HTTP 메시지를 캐시할 수 있으므로, 캐시된 콘텐츠로 클라이언트의 요청에 대응할 수 있다. 일반적으로 네트워크 서비스 공급자는 웹 프록시를 이용하여 프록시로부터 오리진 또는 에지 서버로의 필요한 네트워크 대역폭을 줄인다. 최종 사용자의 경우 HTTP 캐싱은 짧은 대기시간을 제공한다. DASH 클라이언트는 모바일 셀룰러 네트워크와 같은 액세스 네트워크를 통해 인터넷에 접속될 수 있다.
DASH에서, 동일한 적응 세트에서 표현 간의 자동 선택은 너비와 높이(@width 및 @height), 프레임 레이트(@frameRate); 비트레이트(@bandwidth); 표현 간의 표시된 품질의 순위(@qualityRanking)에 기초하여 수행되었다. @qualityRanking의 의미론은 다음과 같이 특정되는데, 즉 동일한 적응 세트에서 다른 표현에 대한 표현의 품질의 순위를 특정한다. 값이 낮을수록 높은 품질의 콘텐츠를 나타내도록 특정한다. 존재하지 않으면 순위는 정의되지 않도록 특정된다.
가상 현실(VR) 비디오 콘텐츠에서, 360도 콘텐츠의 일부("뷰포트")는 더 높은 품질로 표현될 수 있고, 다른 부분은 더 낮은 품질로 표현될 수 있다. 전술한 속성 중 어떤 것도 다른 기본 뷰포트에 대해 코딩된 360도 비디오를 구별하기에 충분하지 않다.
일반적으로, 본 실시예는 DASH의 MPD와 같은 스트리밍 매니페스트에 관한 것으로, 뷰포트 또는 공간 영역을 매니페스트에 표시하고, 뷰포트 또는 공간 영역의 품질을 표시하는 적어도 하나의 값을 매니페스트에 표시하는 것을 포함한다.
일 실시예에 따라, 장치는, 인코딩된 비트스트림에서 뷰포트 또는 공간 영역을 결정하고, 인코딩된 비트스트림의 뷰포트 또는 공간 영역을 매니페스트에 포함시키고, 뷰포트 또는 공간 영역의 품질을 표시하는 하나 이상의 값을 매니페스트에 포함시키도록 구성된다.
일 실시예에 따라, 클라이언트 장치는, 뷰포트 또는 공간 영역을 매니페스트로부터 파싱하고, 뷰포트 또는 공간 영역의 품질을 표시하는 적어도 하나의 값을 매니페스트로부터 파싱하고, 뷰포트 또는 공간 영역이 디스플레이하기에 적합하다고 결정하고, 뷰포트 또는 공간 영역의 품질을 표시하는 적어도 하나의 값에 기초하여 매니페스트로부터 표현을 선택하도록 구성된다.
매니페스트 대신 또는 추가적으로, 실시예는 컨테이너 파일 포맷 및/또는 미디어 비트스트림에 유사하게 적용된다는 것을 이해할 필요가 있다. 예를 들어, 뷰포트 또는 공간 영역을 매니페스트에 표시하고 뷰포트 또는 공간 영역의 품질을 표시하는 적어도 하나의 값을 매니페스트에 표시하는 대신 또는 추가적으로, 이들은 인코딩된 비트스트림을 또한 포함하거나 또는 참조하는 컨테이너 파일 포맷의 메타데이터에 표시될 수 있다.
많은 실시예가 명사의 단수 형태, 예를 들어, 인코딩된 비트스트림, 뷰포트, 공간 영역 등을 이용하여 기술되었지만, 실시예는 일반적으로 명사의 복수 형태에도 적용된다.
실시예에서, 클라이언트 장치는, 일 실시예에 따라, 제 1 표현 및 제 2 표현의 정보를 매니페스트로부터 파싱하고, 제 1 표현 및 제 2 표현의 각각에 대한 뷰포트 또는 공간 영역을 매니페스트로부터 파싱하고, 제 1 표현의 뷰포트 또는 공간 영역의 품질을 표시하는 제 1 값 및 제 2 표현의 뷰포트 또는 공간 영역의 품질을 표시하는 제 2 값을 매니페스트로부터 파싱하도록 구성된다. 클라이언트 장치는 뷰포트 또는 공간 영역이 디스플레이하기에 적합하다고 결정한다. 예를 들어, 클라이언트 장치는, 헤드 장착 디스플레이를 이용할 때, 헤드 배향을 검출하고 뷰포트 또는 공간 영역이 헤드 배향과 매칭한다고 결정하는 수단을 포함할 수 있다. 클라이언트 장치는 뷰포트 또는 공간 영역의 품질을 표시하는 제 1 값 및 제 2 값에 기초하여 제 1 표현 또는 제 2 표현을 선택한다. 선택의 결과로서, 클라이언트 장치는 선택된 표현의 (서브)세그먼트를 요구할 수 있다.
일 실시예에서, 클라이언트 장치는, 일 실시예에 따라, 제 1 표현 및 제 2 표현의 정보를 매니페스트로부터 파싱하고, 제 1 표현에 대한 제 1 뷰포트 또는 제 1 공간 영역과, 제 2 표현에 대한 제 2 뷰포트 또는 제 2 공간 영역을 매니페스트로부터 파싱하도록 구성된다. 클라이언트 장치는 제 1 뷰포트 또는 제 1 공간 영역이 디스플레이하기에 적합하거나 또는 제 2 뷰포트 또는 제 2 공간 영역이 디스플레이하기에 적합하다고 결정하고, 그에 따라 제 1 또는 제 2 표현을 선택한다. 예를 들어, 클라이언트 장치는, 헤드 장착 디스플레이를 이용할 때, 헤드 배향을 검출하고 제 1 뷰포트 또는 제 1 공간 영역이 헤드 배향과 매칭한다고 결정하는 수단을 포함할 수 있다. 선택의 결과로서, 클라이언트 장치는 선택된 표현의 (서브)세그먼트를 요구할 수 있다. 디스플레이에 적합한 하나 이상의 표현이 존재하면, 클라이언트 장치는 하나 이상의 표현에서 선택된 뷰포트 또는 선택된 공간 영역의 품질을 표시하는 값을 매니페스트로부터 파싱하고 그들 중 표시된 최상의 품질을 갖는 표현을 선택할 수 있다.
이하에서 본 실시예를 더욱 상세하게 설명한다.
일 실시예에서, VR 투영 포맷(예를 들어, 등정방형 투영 파노라마 또는 큐브 맵)은 매니페스트에 표시되거나 매니페스트로부터 파싱된다. VR 투영 포맷은 매니페스트에 표시되거나, 매니페스트로부터 파싱되거나, 뷰포트, 공간 영역 또는 전체 픽처에 대해 특정되도록 유추될 수 있다. 프레임 패킹이 이용 중일 때, VR 투영 포맷은 디코더가 출력하는 픽처의 구성 프레임에 적용되도록 유추될 수 있다. VR 투영 포맷은, 예를 들어, 다음과 같은 의미론 등을 이용한다.
타입: 무부호 정수, 열거
범위: 0-255
Figure 112018129193222-pct00001
1. 뷰포트 기반 시그널링
일 실시예에서, 뷰포트가 모노스코픽인지, 스테레오스코픽 콘텐츠의 왼쪽 또는 오른쪽 뷰인지, 또는 스테레오스코픽 콘텐츠의 양쪽 뷰 모두를 포함하는지 여부는 매니페스트에 표시되거나 매니페스트로부터 파싱된다. 매니페스트에 포함된 표시 또는 매니페스트로부터 파싱된 표시는, 예를 들어, 다음과 같은 의미론 등을 이용한다.
타입: 무부호 정수, 열거
범위: 0 - 15
Figure 112018129193222-pct00002
일 실시예에서, 뷰포트는 위치 및 일부 실시예에서는 구체(sphere) 상의 뷰포트의 배향을 표시하는 구 좌표를 참조하여 매니페스트에 표시되거나 또는 매니페스트로부터 파싱된다.일 실시예에서, 구체 상의 뷰포트의 위치는 뷰포트의 중심점 또는 뷰포트의 특정한 코너 점과 같은 뷰포트의 특정한 점을 표시하는 구 좌표계의 2개의 각도를 이용하여 표시된다. 특정한 점은, 예를 들어, 매니페스트 포맷 사양에서 사전 정의될 수 있거나, 또는 매니페스트에 표시되거나 매니페스트로부터 파싱될 수 있다. 예를 들어, 요(Yaw) 및 피치(Pitch) 각도가 이용될 수 있으며, 여기서 요는 뷰포트의 중심점의 오일러 각도를 참조 배향에 대한, 예를 들어, 각도로 표시하고, 요에 후속하여 적용되는 피치는 뷰포트의 중심점의 오일러 각도를 참조 배향에 대한, 예를 들어, 각도로 표시한다. 요는 피치보다 먼저 적용된다. 요는 하나의 좌표축(예를 들어, Y축)을 중심으로 회전하고, 피치는 다른 좌표축(예를 들어, X축)을 중심으로 회전한다. 원점으로부터 보았을 때 각도는 시계 방향으로 증가하는 것으로 정의할 수 있다. 요는 0(포함)부터 360(불포함)까지의 범위에 있는 것으로 정의될 수 있고, 피치는 -90°(포함)부터 90°(포함)까지의 범위에 있는 것으로 정의될 수 있다. 참조 배향을 특정하는 좌표계에 대한 요와 피치의 관계는 도 5에 참고적으로 도시되어 있다.
일 실시예에서, 뷰포트의 배향은, 예를 들어, 뷰포트의 위치를 표시하는 각도의 함수의 방식으로 사전 정의된다. 다른 실시예에서, 뷰포트의 배향은 매니페스트에 표시되거나 및/또는 매니페스트로부터 파싱된다. 예를 들어, 제 3 좌표축(요 및 피치가 회전하는 좌표축과 직교)을 따른 회전을 표시하는 롤 각도(Roll angle)는 매니페스트에 표시되거나 및/또는 매니페스트로부터 파싱되어 뷰포트의 회전 각도를 표시할 수 있다. 다른 예에서, 회전 각도는 뷰포트의 수평 축이 구 좌표계의 축과 평행하도록 사전 정의된다.
일 실시예에서, 뷰포트의 형상 및/또는 크기는 사전 정의된다. 예를 들어, 큐브 맵의 뷰포트의 모양은 정사각형이고 크기는 수평 및 수직 시야에서 90도인 것으로 사전 정의될 수 있다. 일 실시예에서, 뷰포트의 형상 및/또는 크기는 매니페스트에 표시되고 및/또는 매니페스트로부터 파싱된다. 예를 들어, 매니페스트는 HorFov 및 VerFov 값을 포함할 수 있으며, HorFov는 뷰포트의 수평 시야를, 예를 들어, 각도로 표시하고, VerFov는 뷰포트의 수직 시야를, 예를 들어, 각도로 표시한다.
도 6은 뷰포트의 하나의 가능한 선택과 뷰포트의 요 및 피치 각도의 하나의 가능한 정의를 도시한다.
일 실시예에서, 뷰포트에 대한 품질 순위는 매니페스트에 포함되거나 및/또는 매니페스트로부터 파싱된다. 품질 순위는 동일한 관측점 등과 연관되는 모든 뷰포트 및 전체 비디오 표현 중 픽처 또는 비디오의 품질 순위를 표시할 수 있다.
일 실시예에서, 뷰포트에 대한 품질 값은 매니페스트에 포함되거나 및/또는 매니페스트로부터 파싱된다. 품질 값은 픽처 또는 비디오 품질을 나타낼 수 있다. 예를 들어, 평균 피크 신호대 잡음비(PSNR) 또는 구조화된 유사성 척도(SSIM)가 품질 값으로 이용될 수 있다.
일 실시예에서, 뷰포트는 DASH MPD에 표시되거나 및/또는 DASH MPD로부터 파싱된다.
뷰포트가 적응 세트 레벨로 표시되면, 뷰포트는 적응 세트의 모든 표현에 적용된다. 뷰포트가 표현 레벨로 표시되면, 뷰포트는 그 표현에 적용된다. 뷰포트가 서브표현 레벨로 표시되면, 뷰포트는 그 서브표현에 적용된다.
일 실시예에서, 새로운 요소는 뷰포트에 대한 DASH MPD 스키마(schema)로 정의되며, 아래에서 VirtualRealityVideo 요소로 언급된다(그러나, 다른 임의의 이름이 대안적으로 이용될 수 있다). 다른 실시예에서, 필수 및/또는 보충 속성 서술자에 대한 방식이 뷰포트에 대해 정의된다. 다음 단락은 이들 실시예에 대한 예시적인 추가 세부 사항을 제공한다.
VirtualRealityVideo 요소는 적응 세트, 표현 및 서브표현에 대한 공통 속성 및 요소에 선택적으로 (N번) 존재한다. VirtualRealityVideo는 앞서 제안된 코드 포인트를 포함한다. 프레임 패킹된 콘텐츠의 경우, VirtualRealityVideo 요소가 2개 이상 존재할 수 있다. VirtualRealityVideo 요소의 의미론은, 예를 들어, 다음과 같이 정의될 수 있다.
Figure 112018129193222-pct00003
뷰포트 요소의 의미론은, 예를 들어, 다음과 같이 정의될 수 있다.
Figure 112018129193222-pct00004
예시적 일 실시예에서, 가상 현실 특성 서술자(virtual reality property descriptor: VRD) 방식은 미디어 프레젠테이션 설명(MPD) 작성자가 다음을 표현할 수 있도록 한다.
- 콘텐츠에 의해 표현되는 뷰포트
- 뷰포트에 대한 투영 포맷
- 뷰포트에 대한 콘텐츠가 모노스코픽 또는 스테레오스코픽인지, 스테레오스코픽 콘텐츠의 경우 왼쪽, 오른쪽 또는 양쪽 뷰가 존재하는지
- 클라이언트가 표현과 동일한 뷰포트를 다른 품질로 표현하는 서브표현을 구별할 수 있도록 하는 뷰포트에 대한 품질 순위 값
VRD 방식은 SupplementalProperty 및/또는 EssentialProperty 서술자를 특정 값의 @schemeIdUri와 함께 이용한다. 추가의 디스플레이 처리 없이 종래의 2차원 디스플레이 상에 디코딩된 비디오 콘텐츠를 디스플레이하는 것이 바람직하지 않을 때, EssentialProperty 서술자가 이용될 수 있다.
2 이상의 VR SupplementalProperty 또는 EssentialProperty 서술자가 동일한 컨테이닝 요소에 존재할 수 있다. 각 VR SupplementalProperty 또는 EssentialProperty 서술자는 하나의 뷰포트의 특성을 표시한다. 2 이상의 VR SupplementalProperty 또는 EssentialProperty 서술자가 동일한 컨테이닝 요소에 존재하는 경우, 이들 모두는 SupplementalProperty 서술자나 EssentialProperty 서술자로 제한될 수 있다.
예시적 일 실시예에서, VRD 방식을 이용하는 SupplementalProperty 또는 EssentialProperty 요소의 @value는 다음의 표에서 특정된 VRD 파라미터에 대한 값의 쉼표로 구분된 리스트이다.
Figure 112018129193222-pct00005
이하에서는, VRD EssentialProperty XML 코드 라인의 몇가지 설명적인 예를 제시한다. 아래에서 "urn:mpeg:omaf:vrd:2017"와 @schemeIdUri가 동일한 것으로 가정되지만, 마찬가지로 다른 특정 값을 이용할 수 있다. 예는 다른 유사한 VRD 구문론과 의미론 및 VirtualRealityVideo 요소 등에 대해 유사하게 작성될 수 있음을 이해해야 할 필요가 있다.모노스코픽 등정방형 파노라마는 다음과 같이 표시될 수 있다.
<EssentialProperty schemeIdUri="urn:mpeg:omaf:vrd:2017" value="0, 0, 0, 0, 0, 360, 180"/>
스테레오스코픽 등정방형 파노라마는 다음과 같이 표시될 수 있다.
<EssentialProperty schemeIdUri="urn:mpeg:omaf:vrd:2017" value="0, 3, 0, 0, 0, 360, 180"/>
스테레오스코픽 파노라마의 뷰를 전달하기 위해 상하 프레임 패킹(왼쪽 뷰를 위에 패킹)이 이용되는 것을 가정하면, 구성 프레임의 위치와 구성 프레임에 대한 왼쪽 및 오른쪽 뷰의 연관을 표시하기 위해 다음이 추가적으로 이용될 수 있다.
<EssentialProperty schemeIdUri="urn:mpeg:mpegB:cicp:VideoFramePackingType" value="4"/>
<EssentialProperty schemeIdUri="urn:mpeg:mpegB:cicp:PackedContentInterpretationType" value="1"/>
모두 6개의 큐브 면을 갖는 모노스코픽 큐브 맵은 다음과 같이 표시될 수 있다.
<EssentialProperty schemeIdUri="urn:mpeg:omaf:vrd:2017" value="0, 0, 1, NA, NA, NA, NA"/>
이하에서, 여러 표현은 스테레오스코픽 등정방형 파노라마 투영 포맷으로 준비되고, 각각의 뷰는 각각 수평 및 수직의 시야가 120도이고, 수평으로 30도씩 떨어져 있고, 적도에 위치한 다른 기본 뷰포트를 갖는다. 이것은 요(Yaw)가 (0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330)인 12개의 표현이다. 기본 뷰포트의 품질 순위는 1이고 등정방형 파노라마에서 나머지 부분은 품질 순위는 9라고 가정된다(그러나, 다른 임의의 값을 대신 사용할 수 있음은 당연하다). 모든 표현은 동일한 적응 세트에 포함된다.
표현 #1
<EssentialProperty schemeIdUri="urn:mpeg:omaf:vrd:2017" value="0, 3, 0, 0, 0, 120, 120, 1"/>
<EssentialProperty schemeIdUri="urn:mpeg:omaf:vrd:2017" value="0, 3, 0, NA, NA, NA, NA, 9"/>
표현 #2
<EssentialProperty schemeIdUri="urn:mpeg:omaf:vrd:2017" value="0, 3, 0, 30, 0, 120, 120, 1"/>
<EssentialProperty schemeIdUri="urn:mpeg:omaf:vrd:2017" value="0, 3, 0, NA, NA, NA, NA, 9"/>
표현 #3
<EssentialProperty schemeIdUri="urn:mpeg:omaf:vrd:2017" value="0, 3, 0, 60, 0, 120, 120, 1"/>
<EssentialProperty schemeIdUri="urn:mpeg:omaf:vrd:2017" value="0, 3, 0, NA, NA, NA, NA,9"/>
...
표현 #12
<EssentialProperty schemeIdUri="urn:mpeg:omaf:vrd:2017" value="0, 3, 0, 330, 0, 120, 120, 1"/>
<EssentialProperty schemeIdUri="urn:mpeg:omaf:vrd:2017" value="0, 3, 0, NA, NA, NA, NA, 9"/>
일 실시예에서, 클라이언트는 전술한 것 등과 같이 VRD 정보를 갖는 적응 세트를 포함하는 MPD를 파싱한다. 클라이언트는 뷰포트 또는 공간 영역이 디스플레이에 적합하다고 결정한다. 클라이언트는 VRD에 기초하여 디스플레이하기에 적합한 뷰포트 또는 공간 영역에 대해 가장 높은 표시된 품질을 갖는 표현을 선택한다.
이하에서, 여러 표현은 각각 180도의 수평 및 수직 시야를 갖는 모노스코픽 등정방형 파노라마 투영 포맷의 반구(hemishpere)를 표현한다. 모든 표현은 다른 적응 세트에 포함된다. 적응 세트는 수평으로 90도 떨어져 있다. 각 적응 세트는 다른 품질의 2가지 표현을 제안하고, 제안된 서술자의 어느 한쪽의 quality_ranking 값을 이용한다고 가정한다.
적응세트 #1
표현 #1a:
<EssentialProperty schemeIdUri="urn:mpeg:omaf:vrd:2017" value="0, 0, 0, 0, 0, 180, 180, 1"/>
표현 #1b:
<EssentialProperty schemeIdUri="urn:mpeg:omaf:vrd:2017" value="0, 0, 0, 0, 0, 180, 180, 9"/>
적응 세트 #1에 의해 커버되는 뷰포트는 도 7에 표시된 것과 같이 도시될 수 있다.
적응 세트 #2
표현 #2a:
<EssentialProperty schemeIdUri="urn:mpeg:omaf:vrd:2017" value="0, 0, 0, 90, 0, 180, 180, 1"/>
표현 #2b:
<EssentialProperty schemeIdUri="urn:mpeg:omaf:vrd:2017" value="0, 0, 0, 90, 0, 180, 180, 9"/>
적응 세트 #2에 의해 커버되는 뷰포트는 도 8에 표시된 것과 같이 도시될 수 있다.
적응 세트 #3
표현 #3a:
<EssentialProperty schemeIdUri="urn:mpeg:omaf:vrd:2017" value="0, 0, 0, 180, 0, 180, 180, 1"/>
표현 #3b:
<EssentialProperty schemeIdUri="urn:mpeg:omaf:vrd:2017" value="0, 0, 0, 180, 0, 180, 180, 9"/>
적응 세트 #4
표현 #4a:
<EssentialProperty schemeIdUri="urn:mpeg:omaf:vrd:2017" value="0, 0, 0, 270, 0, 180, 180, 1"/>
표현 #4b:
<EssentialProperty schemeIdUri="urn:mpeg:omaf:vrd:2017" value="0, 0, 0, 270, 0, 180, 180, 9"/>
일 실시예에서, 클라이언트는 전술한 것 등과 같이 VRD 정보를 갖는 적응 세트를 포함하는 MPD를 파싱한다. 클라이언트는 디스플레이하기에 적합한 뷰포트 또는 공간 영역을 결정한다. 클라이언트는 디스플레이하기에 적합한 뷰포트 또는 공간 영역과 매칭하는 제 1 적응 세트를 선택한다. 클라이언트는 제 1 적응 세트로부터 가장 높은 표시된 품질을 갖는 표현을 선택한다. 클라이언트는 제 1 적응 세트를 보완하는 적응 세트를 추가로 선택할 수 있고, 선택된 모든 적응 세트의 콘텐츠를 결합함으로써 전체 360도 또는 무지향성 비주얼 콘텐츠가 얻어진다. 클라이언트는 각각의 추가 적응 세트로부터 가장 높은 표시된 품질보다 낮은 품질을 갖는 표현을 선택하고 디스플레이에 적합하지 않은 표현에 대해 보다 작은 비트레이트 셰어를 할당할 수 있다.
2. 공간 영역 기반 시그널링
일 실시예에서, 공간 영역은 공간 영역을 정의하는 직사각형의 위치, 폭 및 높이로서 매니페스트에 포함되고 및/또는 매니페스트로부터 파싱된다. 위치는, 예를 들어, 디코딩에 의해 출력되는 픽처 내의 직사각형의 좌측 상단 코너의 위치일 수 있다.
일 실시예에서, 공간 영역은 공간 영역을 정의하는 직사각형의 대향하는 코너의 2개의 위치로서 매니페스트에 포함되고 및/또는 매니페스트로부터 파싱된다. 위치는, 예를 들어, 디코딩에 의해 출력되는 픽처 내의 직사각형의 좌측 상단 및 우측 하단의 코너의 위치일 수 있다.
일 실시예에서, 공간 영역에 대한 품질 순위는 매니페스트에 포함되고 및/또는 매니페스트로부터 파싱된다. 품질 순위는 동일한 관측점 등과 연관된 모든 뷰포트 및 전체 비디오 표현 중에서 픽처 또는 비디오 품질의 순위를 표시할 수 있다.
일 실시예에서, 공간 영역에 대한 품질 값은 매니페스트에 포함되고 및/또는 매니페스트로부터 파싱된다. 품질 값은 픽처 또는 비디오 품질을 나타낼 수 있다. 예를 들어, 평균 피크 신호대 잡음비(PSNR) 또는 구조화된 유사성 척도(SSIM)가 품질 값으로 이용될 수 있다.
일 실시예에서, 공간 영역을 특정하기 위해 DASH MPD 스키마에 새 요소가 정의된다. 다른 실시예에서, 필수 및/또는 보충 특성 서술자에 대한 방식이 공간 영역에 대해 정의된다. 다음 단락은 후자의 실시예에 대한 예시적 추가 세부 사항을 제공하지만, 예시적 실시예는 이전의 실시예에 대해서도 유사하게 구현될 수 있다.
특정 @schemeIdUri를 갖는 보충 특성 서술자가 특정된다(예를 들어, "urn:mpeg:dash:srq:2017"). @schemeIdUri 값이 동일한 여러 특성 서술자가 존재할 수 있다. 각각의 특성 서술자는 뷰포트를 공간 영역(예를 들어, 등정방형 파노라마 내의 공간 영역)으로 표시한다. 품질 순위 값은 공간 영역에 대해 제공된다.
일 실시예에서, source_id는 공간 관계 서술자 DASH에 대한 것과 동일하게 특정되고, 공간 관계 서술자의 source_id와 동일한 식별자 공간을 이용한다. 공간 관계 서술자가 이용되는 경우, 뷰포트 위치 및 크기를 특정하는 유닛은 공간 관계 서술자에 이용되는 것과 동일하다.
Figure 112018129193222-pct00006
Figure 112018129193222-pct00007
viewport_x, viewport_y, viewport_width, viewport_height는 표현에 대한 마지막 특성 서술자에서는 선택적으로 존재하고, 그 외에는 (무조건) 존재한다.
이러한 시그널링은, 예를 들어, 앞서 제안된 것과 같이, 투영 포맷 및 멀티뷰 시그널링에 의해 보완될 수 있다. 결과적으로, 플레이어는 공간 영역, 투영 포맷 및 멀티뷰 시그널링으로부터 VR 뷰포트를 산출할 수 있다. 예를 들어, 플레이어는 특성 서술자로 표시된 공간 위치, 너비 및 높이로부터 피치, 수평 시야 및 수직 시야의 근사치를 산출할 수 있다. 많은 투영 포맷에서 공간 영역은 직사각형 뷰포트에 대응하지 않기 때문에, 산출되는 수평 및 수직 시야는, 예를 들어, 최소 또는 평균을 나타낼 수 있다는 점에 유의해야 한다.
일례에 따르면, 모노스코픽 등정방형 표현을 포함하는 적응 세트는 (의사 코드(pseudo-code)로) 다음의 표현 및 공간 영역 기반의 뷰포트 시그널링을 포함할 수 있다 :
AdaptationSet {
Representation { // quality class 1 (highest) for the left side of the panorama, class 100 (lowest) otherwise
...
EssentialProperty {@schemeIdUri="urn:mpeg:dash:srq:2017"@value="1, 1, 0, 0, 180, 180, 360, 180"}
EssentialProperty {@schemeIdUri="urn:mpeg:dash:srq:2017"@value="1, 100"}
}
Representation { // quality class 1 for the right side of the panorama, class 100 otherwise
...
EssentialProperty{@schemeIdUri="urn:mpeg:dash:srq:2017"@value="1, 1, 180, 0, 180, 180"}
EssentialProperty {@schemeIdUri="urn:mpeg:dash:srq:2017"@value="1, 100"}
}
Representation { // constant quality class 50 for the entire panorama
...
@qualityRanking=50:
}
다른 실시예와 독립적으로 또는 추가적으로 이용될 수 있는 일 실시예에서, 적응 세트 또는 서브표현은 다른 적응 세트 또는 다른 서브표현에 대한 공간적 관계를 갖는 단일 공간 영역을 나타낸다. 이 경우, SRD 방식이 이용될 수 있다. 또한, 공간 영역의 품질을 표시하는 적어도 하나의 값이 표시될 수 있으며, 앞서 Section 2(공간 영역 기반 시그널링)에서 기술된 실시예가 이용될 수 있다. 대안적으로 또는 추가적으로, 일 실시예에서, SRD 방식은 (예를 들어, source_id 값 등을 통해) 동일한 관찰점 등과 연관된 모든 뷰포트, 서브표현 및 표현 중에서 품질을 표시하는 적어도 하나의 값을 부가한다. 예를 들어, 전술한 것과 같은 quality_ranking이 SRD 방식에 포함될 수 있다. 일 실시예에서, 품질을 나타내는 적어도 하나의 값은 @schemeIdUri의 변경 없이 @value에 포함된 리스트의 끝에 추가되고, 다른 실시예에서는 @schemeIdUri가 업데이트되고, 이로써 품질을 표시하는 적어도 하나의 값을 @value에 포함된 리스트에서 아이템의 시퀀스의 임의의 위치에 포함시킬 수 있다. 일 실시예에서, 품질을 나타내는 적어도 하나의 값은 SRD에 포함된다. 일 실시예에서, 품질을 나타내는 적어도 하나의 값은 SRD로부터 파싱된다.
전술한 것과 같이, 매니페스트 대신 또는 추가적으로, 실시예는 컨테이너 파일 포맷 및/또는 미디어 비트스트림에 유사하게 적용된다. 이하에서, 이러한 실시예에 대한 보다 자세한 사항을 설명한다.
일 실시예에서, 장치는 인코딩된 비트스트림에서 뷰포트 또는 공간 영역을 결정하고, 인코딩된 비트스트림의 뷰포트 또는 공간 영역을 컨테이너 파일에 포함시키고, 뷰포트 또는 공간 영역의 품질을 나타내는 적어도 하나의 값을 결정하고 컨테이너 파일에 포함시키도록 구성된다.
일 실시예에 따라, 플레이어 장치는, 뷰포트 또는 공간 영역을 컨테이너 파일로부터 파싱하고, 뷰포트 또는 공간 영역의 품질을 표시하는 적어도 하나의 값을 컨테이너 파일로부터 파싱하고, 뷰포트 또는 공간 영역이 디스플레이하기에 적합하다고 결정하고, 뷰포트 또는 공간 영역의 품질을 표시하는 적어도 하나의 값에 기초하여 컨테이너 파일로부터 트랙을 선택하도록 구성된다.
일 실시예에서, 뷰포트 또는 공간 영역 및/또는 뷰포트 또는 공간 영역의 품질을 표시하는 적어도 하나의 값은 ISO 베이스 미디어 파일 포맷을 따르는 컨테이너 파일에 표시되거나 및/또는 컨테이너 파일로부터 파싱될 수 있다. 예를 들어, ISO 베이스 미디어 파일 포맷의 다음 구조 중 하나 이상이 언급된 정보를 포함하는데 이용될 수 있다.
- 미디어 비트스트림을 캡슐화하는 트랙의 샘플 엔트리의 새 박스
- 미디어 비트스트림을 캡슐화하는 트랙의 제한된 비디오 샘플 엔트리('resv')의 새 박스
- 샘플 그룹으로서, 샘플 그룹 설명 엔트리는 뷰포트 또는 공간 영역 및/또는 뷰포트 또는 공간 영역의 품질을 표시하는 적어도 하나의 값을 표시할 수 있음
- 시간맞춤 메타데이터 트랙으로서, 샘플은 뷰포트 또는 공간 영역 및/또는 뷰포트 또는 공간 영역의 품질을 표시하는 적어도 하나의 값을 표시
일 실시예에서, 장치는 인코딩된 비트스트림을 캡슐화하는 컨테이너 파일에 제공된 표시에 기초하여 인코딩된 비트스트림의 뷰포트 또는 공간 영역을 결정하고, 인코딩된 비트스트림의 뷰포트 또는 공간 영역을 매니페스트에 포함시키고, 컨테이너 파일에 제공된 표시에 기초하여 뷰포트 또는 공간 영역의 품질을 표시하는 적어도 하나의 값을 결정하고, 뷰포트 또는 공간 영역의 품질을 표시하는 적어도 하나의 값을 매니페스트에 포함시키도록 구성된다.
일 실시예에서, 장치는 비트스트림의 다른 뷰포트 또는 다른 공간 영역보다 높은 품질을 갖는 뷰포트 또는 공간 영역을 갖는 비디오 비트스트림을 인코딩하고, 뷰포트 또는 공간 영역의 표시를 비디오 비트스트림에 인코딩하고, 뷰포트 또는 공간 영역의 품질을 표시하는 적어도 하나의 값을 비디오 비트스트림에 인코딩한다.
일 실시예에서, 뷰포트 또는 공간 영역의 표시는 VUI의 일부로서 또는 SEI 메시지에 인코딩되고, 뷰포트 또는 공간 영역의 품질을 표시하는 적어도 하나의 값은 VUI 또는 SEI 메시지에 인코딩된다.
일 실시예에 따라, 비디오 디코더는, 뷰포트 또는 공간 영역을 VUI 또는 SEI 메시지와 같은 비디오 비트스트림으로부터 파싱하고, 뷰포트 또는 공간 영역의 품질을 표시하는 적어도 하나의 값을 VUI 또는 SEI 메시지와 같은 비디오 비트스트림으로부터 파싱하고, 뷰포트 또는 공간 영역이 디스플레이하기에 적합하다고 결정하고, 뷰포트 또는 공간 영역의 품질을 표시하는 적어도 하나의 값에 기초하여 비디오 비트스트림 또는 뷰포트 또는 공간 영역을 나타내는 비트스트림의 적어도 일부를 디코딩하도록 구성된다.
도 9는 일 실시예에 따른 방법을 도시하는 흐름도이다. 방법은 이용 가능한 미디어 콘텐츠의 정보를 매니페스트에 포함시키는 단계(910), 뷰포트 또는 공간 영역 중 하나를 매니페스트에 표시하는 단계(920), 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값을 매니페스트에 표시하는 단계(930)를 포함한다.
일 실시예에 따른 장치는, 이용 가능한 미디어 콘텐트의 정보를 매니페스트에 포함시키는 수단, 뷰포트 또는 공간 영역 중 하나를 매니페스트에 표시하는 수단, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값을 매니페스트에 표시하는 수단을 포함한다. 이들 수단은 프로세서, 메모리, 및 메모리에 상주하는 컴퓨터 프로그램 코드를 포함할 수 있다.
도 10은 다른 실시예에 따른 방법을 도시하는 흐름도이다. 방법은 이용 가능한 미디어 콘텐츠의 정보를 매니페스트부터 파싱하는 단계(1010), 뷰포트 또는 공간 영역 중 하나를 매니페스트로부터 파싱하는 단계(1020), 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값을 매니페스트로부터 파싱하는 단계(1030), 뷰포트 또는 공간 영역이 디스플레이하기에 적합하다고 결정하는 단계(1040), 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값에 기초하여 매니페스트로부터 표현을 선택하는 단계(1050)를 포함한다.
다른 실시예에 따른 장치는, 이용 가능한 미디어 콘텐츠의 정보를 매니페스트로부터 파싱하는 수단, 뷰포트 또는 공간 영역 중 하나를 매니페스트로부터 파싱하는 수단, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값을 매니페스트로부터 파싱하는 수단, 뷰포트 또는 공간 영역이 디스플레이하기에 적합하다고 결정하는 수단, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값에 기초하여 매니페스트로부터 표현을 선택하는 수단을 포함한다. 이들 수단은 프로세서, 메모리, 및 메모리에 상주하는 컴퓨터 프로그램 코드를 포함할 수 있다.
일 실시예에 따른 장치는, 이용 가능한 미디어 콘텐츠의 정보를 매니페스트에 포함시키고, 뷰포트 또는 공간 영역 중 하나를 매니페스트에 표시하고, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값을 매니페스트에 표시하는 수단을 포함한다.
수단은 프로세서, 메모리, 및 메모리에 상주하는 컴퓨터 프로그램 코드를 포함할 수 있다.
다른 실시예에 따른 장치는, 이용 가능한 미디어 콘텐츠의 정보를 매니페스트로부터 파싱하고, 뷰포트 또는 공간 영역 중 하나를 매니페스트로부터 파싱하고, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값을 매니페스트로부터 파싱하고, 뷰포트 또는 공간 영역이 디스플레이하기에 적합하다고 결정하고, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값에 기초하여 매니페스트로부터 표현을 선택하는 수단을 포함한다.
수단은 프로세서, 메모리, 및 메모리에 상주하는 컴퓨터 프로그램 코드를 포함할 수 있다.
다양한 실시예가 이점을 제공할 수 있다. 본 실시예는 뷰포트 적응형 가상 현실 비디오 스트리밍을 가능하게 한다.
이상에서, 품질을 기반으로 표현을 선택하는 일부 실시예가 설명되었다. 표현의 비트레이트 및 공간 해상도와 같은 다른 요인이 표현 스위칭에도 영향을 줄 수 있음을 이해해야 할 필요가 있다. 일반적으로, 스트리밍에 이용 가능한 이용 가능한 표현의 세트는, (예를 들어, 지배적인 네트워크 처리량에 대해) 지나치게 높은 비트레이트 및/또는 (예를 들어, 디코딩 능력에 대해) 너무 높은 공간 해상도 및/또는 픽처 레이트를 갖는 표현을 선택될 수 있는 표현의 세트로부터 제외시킬 수 있는 방식으로 간결해질 수 있다.
이상에서, 일부 실시예는 ISOBMFF 및/또는 ISOBMFF로부터 도출된 포맷과 관련하여 설명되었다. 실시예는 마트로스카 파일 포맷과 같은 다른 파일 및 세그먼트 포맷에도 유사하게 적용된다는 것을 이해할 필요가 있다.
이상에서, 일부 실시예는 MPEG-DASH 또는 DASH와 관련하여 설명되었다. 실시예는 애플 HTTP 라이브 스트리밍(HLS)과 같은 HTTP를 통한 스트리밍의 다른 형태에 유사하게 적용된다는 것을 이해할 필요가 있다.
이상에서, 일부 실시예는 스트리밍이라는 용어를 언급하여 설명되었다. 실시예는 프로그레시브 다운로딩, 파일 전달, 및 화상 전화기와 같은 대화식 비디오 통신과 같은 다른 형태의 비디오 전송에도 유사하게 적용된다는 것을 이해할 필요가 있다.
발명의 다양한 실시예는 메모리에 상주하고 관련 장치가 발명을 수행하게하는 컴퓨터 프로그램 코드의 도움으로 구현될 수 있다. 예를 들어, 디바이스는 데이터를 처리, 수신 및 전송하기 위한 회로 및 전자 장치, 메모리의 컴퓨터 프로그램 코드, 및 컴퓨터 프로그램 코드를 실행할 때 디바이스로 하여금 실시예의 특징을 수행하게 하는 프로세서를 포함할 수 있다. 또한, 서버와 같은 네트워크 디바이스는 데이터를 처리, 수신 및 전송하기 위한 회로 및 전자 장치, 메모리의 컴퓨터 프로그램 코드, 및 컴퓨터 프로그램 코드를 실행할 때 네트워크 디바이스로 하여금 실시예의 특징을 수행하게 하는 프로세서를 포함할 수 있다.
원한다면, 여기서 논의된 상이한 기능은 다른 순서 및/또는 다른 것과 동시에 수행될 수 있다. 또한, 원한다면, 전술한 기능 및 실시예 중 하나 이상은 선택적일 수 있거나 조합될 수 있다.
실시예의 다양한 양태가 독립 청구항에 기재되어 있지만, 다른 양태는 청구항에서 명시적으로 제시된 조합만이 아니라, 설명된 실시예 및/또는 종속 청구항의 특징과 독립 청구항의 특징의 다른 조합을 포함한다.
또한, 이상에서 예시적 실시예가 설명되었지만, 이들 설명은 한정적인 의미로 보아서는 안된다는 점에 유의해야 한다. 오히려, 첨부된 청구항에 정의된 것과 같은 본 개시의 범위를 벗어나지 않고 행해질 수 있는 몇 가지 변형 및 수정이 존재한다.
제 1 양태에 따르면, 방법은 이용 가능한 미디어 콘텐츠의 정보를 매니페스트에 포함시키는 단계, 뷰포트 또는 공간 영역 중 하나를 매니페스트에 표시하는 단계, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값을 매니페스트에 표시하는 단계를 포함한다.
일 실시예에서, 뷰포트는 구 좌표계 상의 2개의 각도, 수평 시야 및 수직 시야로 표시된다.
일 실시예에서, 공간 영역은 위치, 폭 및 높이로 표시된다.
일 실시예에서, 뷰포트 또는 공간 영역의 각각의 품질을 나타내는 적어도 하나의 값은 픽처 또는 비디오 품질의 순위를 나타내는 품질 순위이다.
제 2 양태에 따르면, 방법은, 뷰포트 또는 공간 영역 중 하나를 매니페스트로부터 파싱하는 단계, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값을 매니페스트로부터 파싱하는 단계, 뷰포트 또는 공간 영역이 디스플레이하기에 적합하다고 결정하는 단계, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값에 기초하여 매니페스트로부터 표현을 선택하는 단계를 포함하는, 이용 가능한 미디어 콘텐츠의 정보를 매니페스트로부터 파싱하는 단계를 포함한다.
일 실시예에서, 뷰포트는 구 좌표계 상의 2개의 각도, 수평 시야 및 수직 시야로 표시된다.
일 실시예에서, 공간 영역은 위치, 폭 및 높이로 표시된다.
일 실시예에서, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값은 픽처 또는 비디오 품질의 순위를 나타내는 품질 순위이다.
일 실시예에서, 방법은, 제 1 표현 및 제 2 표현의 정보를 매니페스트로부터 파싱하는 단계, 제 1 표현에 대한 뷰포트 또는 공간 영역을 매니페스트로부터 파싱하고 제 2 표현에 대한 뷰포트 또는 공간 영역을 매니페스트로부터 파싱하는 단계, 제 1 표현의 뷰포트 또는 공간 영역의 품질을 표시하는 제 1 값 및 제 2 표현의 뷰포트 또는 공간 영역의 품질을 표시하는 제 2 값을 매니페스트로부터 파싱하는 단계, 제 1 값 및 제 2 값에 기초하여 제 1 표현 또는 제 2 표현 중 하나를 선택하는 단계를 더 포함한다.
일 실시예에서, 방법은, 제 1 표현 및 제 2 표현의 정보를 매니페스트로부터 파싱하는 단계, 제 1 표현에 대한 제 1 뷰포트 또는 제 1 표현에 대한 제 1 공간 영역 중 하나에 관한 제 1 정보를 매니페스트로부터 파싱하는 단계, 제 2 표현에 대한 제 2 뷰포트 또는 제 2 표현에 대한 제 2 공간 영역 중 하나에 관한 제 2 정보를 매니페스트로부터 파싱하는 단계, 제 1 정보 및 제 2 정보에 기초하여, 제 1 뷰포트, 제 1 공간 영역, 제 2 뷰포트, 제 2 공간 영역 중 어느 것이 디스플레이하기에 적합한지를 결정하는 단계, 결정에 기초하여 대응하는 표현을 선택하는 단계를 포함한다.
제 3 양태에 따르면, 장치는, 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하고, 적어도 하나의 메모리는, 적어도 하나의 프로세서에 의해 실행될 때, 장치로 하여금 이용 가능한 미디어 콘텐츠의 정보를 매니페스트에 포함시키고, 뷰포트 또는 공간 영역 중 하나를 매니페스트에 표시하고, 뷰포트 또는 공간 영역의 각각의 품질을 나타내는 적어도 하나의 값을 매니페스트에 표시하도록 하는 코드를 저장한다.
일 실시예에서, 뷰포트는 구 좌표계 상의 2개의 각도, 수평 시야 및 수직 시야로 표시된다.
일 실시예에서, 공간 영역은 위치, 폭 및 높이로 표시된다.
일 실시예에서, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값은 픽처 또는 비디오 품질의 순위를 표시하는 품질 순위이다.
제 4 양태에 따르면, 장치는, 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하고, 적어도 하나의 메모리는, 적어도 하나의 프로세서에 의해 실행될 때, 장치로 하여금 이용 가능한 미디어 컨텐츠의 정보를 매니페스트로부터 파싱하고, 뷰포트 또는 공간 영역 중 하나를 매니페스트로부터 파싱하고, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값을 매니페스트로부터 파싱하고, 뷰포트 또는 공간 영역이 디스플레이하기에 적합하다고 결정하고, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값에 기초하여 매니페스트로부터 표현을 선택하도록 하는 코드를 저장한다.
일 실시예에서, 뷰포트는 구 좌표계 상의 2개의 각도, 수평 시야 및 수직 시야로 표시된다.
일 실시예에서, 공간 영역은 위치, 폭 및 높이로 표시된다.
일 실시예에서, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값은 픽처 또는 비디오 품질의 순위를 표시하는 품질 순위이다.
일 실시예에서, 장치는, 제 1 표현 및 제 2 표현의 정보를 매니페스트로부터 파싱하고, 제 1 표현에 대한 뷰포트 또는 공간 영역을 매니페스트로부터 파싱하고 제 2 표현에 대한 뷰포트 또는 공간 영역을 매니페스트로부터 파싱하고, 제 1 표현의 뷰포트 또는 공간 영역의 품질을 표시하는 제 1 값 및 제 2 표현의 뷰포트 또는 공간 영역의 품질을 표시하는 제 2 값을 매니페스트로부터 파싱하고, 제 1 값 및 제 2 값에 기초하여 제 1 표현 또는 제 2 표현 중 하나를 선택하도록 더 구성된다.
일 실시예에서, 장치는, 제 1 표현 및 제 2 표현의 정보를 매니페스트로부터 파싱하고, 제 1 표현에 대한 제 1 뷰포트 또는 제 1 표현에 대한 제 1 공간 영역 중 하나에 관한 제 1 정보를 매니페스트로부터 파싱하고, 제 2 표현에 대한 제 2 뷰포트 또는 제 2 표현에 대한 제 2 공간 영역 중 하나에 관한 제 2 정보를 매니페스트로부터 파싱하고, 제 1 정보 및 제 2 정보에 기초하여, 제 1 뷰포트, 제 1 공간 영역, 제 2 뷰포트, 제 2 공간 영역 중 어느 것이 디스플레이하기에 적합한지를 결정하고, 결정에 기초하여 대응하는 표현을 선택하도록 더 구성된다.
제 5 양태에 따르면, 컴퓨터 판독가능 저장 매체는, 프로세서에 의해 실행될 때, 장치로 하여금 이용 가능한 미디어 콘텐츠의 정보를 매니페스트에 포함시키고, 뷰포트 또는 공간 영역 중 하나를 매니페스트에 표시하고, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값을 매니페스트에 표시하도록 하는 코드를 저장한다.
제 6 양태에 따르면, 컴퓨터 판독가능 저장 매체는, 프로세서에 의해 실행될 때, 장치로 하여금 이용 가능한 미디어 콘텐츠의 정보를 매니페스트로부터 파싱하고, 뷰포트 또는 공간 영역 중 하나를 매니페스트로부터 파싱하고, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값을 매니페스트로부터 파싱하고, 뷰포트 또는 공간 영역이 디스플레이하기에 적합하다고 결정하고, 뷰포트 또는 공간 영역의 각각의 품질을 표시하는 적어도 하나의 값에 기초하여 매니페스트로부터 표현을 선택하도록 하는 코드를 저장한다.

Claims (30)

  1. ISO 베이스 미디어 파일 포맷(ISO base media file format)을 따르는 컨테이너 파일에, 상기 컨테이너 파일의 미디어 트랙의 이용 가능한 미디어 콘텐츠를 나타내는 시간맞춤 메타데이터 트랙(timed metadata track)을 포함시키는 단계 - 상기 이용 가능한 미디어 콘텐츠는 360도 비디오임 - 와,
    상기 컨테이너 파일에, 상기 시간맞춤 메타데이터 트랙의 적어도 하나의 샘플을 포함시키는 단계와,
    상기 시간맞춤 메타데이터 트랙의 상기 적어도 하나의 샘플에, 상기 미디어 트랙에 의해 표시되는 상기 360도 비디오의 일부인 뷰포트(viewport)를 표시하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 뷰포트는 상기 뷰포트의 수평 시야, 상기 뷰포트의 수직 시야 및 상기 뷰포트의 위치로 상기 시간맞춤 메타데이터 트랙의 상기 적어도 하나의 샘플에 표시되며, 상기 위치는 상기 뷰포트의 중심점을 표시하는 구 좌표계(spherical coordinate system) 상의 두 개의 각도로 표시되는
    방법.
  3. 제 2 항에 있어서,
    상기 뷰포트는 또한 상기 뷰포트의 배향으로 상기 시간맞춤 메타데이터 트랙의 상기 적어도 하나의 샘플에 표시되며, 상기 배향은 회전 각도로 표시되는
    방법.
  4. 제 1 항에 있어서,
    상기 시간맞춤 메타데이터 트랙의 상기 적어도 하나의 샘플에, 상기 뷰포트의 품질을 나타내는 적어도 하나의 값을 표시하는 단계를 더 포함하는
    방법.
  5. ISO 베이스 미디어 파일 포맷(ISO base media file format)을 따르는 컨테이너 파일로부터, 상기 컨테이너 파일의 미디어 트랙의 이용 가능한 미디어 콘텐츠를 나타내는 시간맞춤 메타데이터 트랙(timed metadata track)을 파싱하는 단계 - 상기 이용 가능한 미디어 콘텐츠는 360도 비디오임 - 와,
    상기 컨테이너 파일로부터, 상기 시간맞춤 메타데이터 트랙의 적어도 하나의 샘플을 파싱하는 단계와,
    상기 시간맞춤 메타데이터 트랙의 상기 적어도 하나의 샘플로부터, 상기 미디어 트랙에 의해 표시되는 상기 360도 비디오의 일부인 뷰포트(viewport)를 파싱하는 단계를 포함하는
    방법.
  6. 제 5 항에 있어서,
    상기 시간맞춤 메타데이터 트랙의 상기 적어도 하나의 샘플로부터, 상기 뷰포트의 수평 시야, 상기 뷰포트의 수직 시야 및 상기 뷰포트의 위치를 파싱하는 단계를 더 포함하며, 상기 위치는 상기 뷰포트의 중심점을 표시하는 구 좌표계(spherical coordinate system) 상의 두 개의 각도로 상기 적어도 하나의 샘플에 표시되는
    방법.
  7. 제 6 항에 있어서,
    상기 시간맞춤 메타데이터 트랙의 상기 적어도 하나의 샘플로부터, 상기 뷰포트의 배향을 파싱하는 단계를 더 포함하며, 상기 배향은 회전 각도로 상기 적어도 하나의 샘플에 표시되는
    방법.
  8. 제 5 항에 있어서,
    상기 시간맞춤 메타데이터 트랙의 상기 적어도 하나의 샘플로부터, 상기 뷰포트의 품질을 나타내는 적어도 하나의 값을 파싱하는 단계를 더 포함하는
    방법.
  9. 제 8 항에 있어서,
    상기 뷰포트가 디스플레이에 적합하다고 결정하는 단계와,
    상기 뷰포트의 품질을 나타내는 상기 적어도 하나의 값에 기초하여 상기 컨테이너 파일의 트랙들 중에서 상기 미디어 트랙을 선택하는 단계를 더 포함하는
    방법.
  10. 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하고, 상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때, 장치로 하여금,
    ISO 베이스 미디어 파일 포맷(ISO base media file format)을 따르는 컨테이너 파일에, 상기 컨테이너 파일의 미디어 트랙의 이용 가능한 미디어 콘텐츠를 나타내는 시간맞춤 메타데이터 트랙(timed metadata track)을 포함시키고 - 상기 이용 가능한 미디어 콘텐츠는 360도 비디오임 - ,
    상기 컨테이너 파일에, 상기 시간맞춤 메타데이터 트랙의 적어도 하나의 샘플을 포함시키고,
    상기 시간맞춤 메타데이터 트랙의 상기 적어도 하나의 샘플에, 상기 미디어 트랙에 의해 표시되는 상기 360도 비디오의 일부인 뷰포트(viewport)를 표시하도록 하는
    코드를 저장하는
    장치.
  11. 제 10 항에 있어서,
    상기 뷰포트는 상기 뷰포트의 수평 시야, 상기 뷰포트의 수직 시야 및 상기 뷰포트의 위치로 상기 시간맞춤 메타데이터 트랙의 상기 적어도 하나의 샘플에 표시되며, 상기 위치는 상기 뷰포트의 중심점을 표시하는 구 좌표계(spherical coordinate system) 상의 두 개의 각도로 표시되는
    장치.
  12. 제 11 항에 있어서,
    상기 뷰포트는 또한 상기 뷰포트의 배향으로 상기 시간맞춤 메타데이터 트랙의 상기 적어도 하나의 샘플에 표시되며, 상기 배향은 회전 각도로 표시되는
    장치.
  13. 제 10 항에 있어서,
    상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금,
    상기 시간맞춤 메타데이터 트랙의 상기 적어도 하나의 샘플에, 상기 뷰포트의 품질을 나타내는 적어도 하나의 값을 표시하도록 하는
    코드를 더 저장하는
    장치.
  14. 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하고, 상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때, 장치로 하여금,
    ISO 베이스 미디어 파일 포맷(ISO base media file format)을 따르는 컨테이너 파일로부터, 상기 컨테이너 파일의 미디어 트랙의 이용 가능한 미디어 콘텐츠를 나타내는 시간맞춤 메타데이터 트랙(timed metadata track)을 파싱하고 - 상기 이용 가능한 미디어 콘텐츠는 360도 비디오임 - 와,
    상기 컨테이너 파일로부터, 상기 시간맞춤 메타데이터 트랙의 적어도 하나의 샘플을 파싱하고,
    상기 시간맞춤 메타데이터 트랙의 상기 적어도 하나의 샘플로부터, 상기 미디어 트랙에 의해 표시되는 상기 360도 비디오의 일부인 뷰포트(viewport)를 파싱하도록 하는
    코드를 저장하는
    장치.
  15. 제 14 항에 있어서,
    상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금,
    상기 시간맞춤 메타데이터 트랙의 상기 적어도 하나의 샘플로부터, 상기 뷰포트의 수평 시야, 상기 뷰포트의 수직 시야 및 상기 뷰포트의 위치를 파싱하도록 하는 코드를 더 저장하며, 상기 위치는 상기 뷰포트의 중심점을 표시하는 구 좌표계(spherical coordinate system) 상의 두 개의 각도로 상기 적어도 하나의 샘플에 표시되는
    장치.
  16. 제 15 항에 있어서,
    상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금,
    상기 시간맞춤 메타데이터 트랙의 상기 적어도 하나의 샘플로부터, 상기 뷰포트의 배향을 파싱하도록 하는 코드를 더 저장하며, 상기 배향은 회전 각도로 상기 적어도 하나의 샘플에 표시되는
    장치.
  17. 제 14 항에 있어서,
    상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금,
    상기 시간맞춤 메타데이터 트랙의 상기 적어도 하나의 샘플로부터, 상기 뷰포트의 품질을 나타내는 적어도 하나의 값을 파싱하도록 하는 코드를 더 저장하는
    장치.
  18. 제 17 항에 있어서,
    상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금,
    상기 뷰포트가 디스플레이에 적합하다고 결정하고,
    상기 뷰포트의 품질을 나타내는 상기 적어도 하나의 값에 기초하여 상기 컨테이너 파일의 트랙들 중에서 상기 미디어 트랙을 선택하도록 하는 코드를 더 저장하는
    장치.
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
KR1020187037318A 2016-05-24 2017-05-17 미디어 콘텐츠를 인코딩하는 방법, 장치 및 컴퓨터 프로그램 KR102170550B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662340707P 2016-05-24 2016-05-24
US62/340,707 2016-05-24
PCT/FI2017/050376 WO2017203098A1 (en) 2016-05-24 2017-05-17 Method and an apparatus and a computer program for encoding media content

Publications (2)

Publication Number Publication Date
KR20190009378A KR20190009378A (ko) 2019-01-28
KR102170550B1 true KR102170550B1 (ko) 2020-10-29

Family

ID=60412645

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187037318A KR102170550B1 (ko) 2016-05-24 2017-05-17 미디어 콘텐츠를 인코딩하는 방법, 장치 및 컴퓨터 프로그램

Country Status (5)

Country Link
US (3) US20170347026A1 (ko)
EP (1) EP3466079B1 (ko)
KR (1) KR102170550B1 (ko)
CN (1) CN109155861B (ko)
WO (1) WO2017203098A1 (ko)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8300798B1 (en) 2006-04-03 2012-10-30 Wai Wu Intelligent communication routing system and method
US10600245B1 (en) * 2014-05-28 2020-03-24 Lucasfilm Entertainment Company Ltd. Navigating a virtual environment of a media content item
US10432688B2 (en) * 2015-03-13 2019-10-01 Telefonaktiebolaget Lm Ericsson (Publ) System and method for optimized delivery of live ABR media
US10623755B2 (en) * 2016-05-23 2020-04-14 Qualcomm Incorporated End of sequence and end of bitstream NAL units in separate file tracks
US10587934B2 (en) * 2016-05-24 2020-03-10 Qualcomm Incorporated Virtual reality video signaling in dynamic adaptive streaming over HTTP
EP3249929A1 (en) * 2016-05-25 2017-11-29 Thomson Licensing Method and network equipment for establishing a manifest
KR102277287B1 (ko) * 2016-05-26 2021-07-15 브이아이디 스케일, 인크. 뷰포트 적응형 360도 비디오 전달의 방법 및 장치
US10360721B2 (en) * 2016-05-26 2019-07-23 Mediatek Inc. Method and apparatus for signaling region of interests
CN109691113B (zh) 2016-07-15 2022-02-08 皇家Kpn公司 流式传输虚拟现实视频
JP7127539B2 (ja) * 2016-08-05 2022-08-30 ソニーグループ株式会社 画像処理装置および画像処理方法
WO2018043905A1 (ko) * 2016-08-29 2018-03-08 엘지전자 주식회사 360 비디오를 전송하는 방법, 360 비디오를 수신하는 방법, 360 비디오 전송 장치, 360 비디오 수신 장치
US10743003B1 (en) 2016-09-01 2020-08-11 Amazon Technologies, Inc. Scalable video coding techniques
US10743004B1 (en) 2016-09-01 2020-08-11 Amazon Technologies, Inc. Scalable video coding techniques
US11172005B2 (en) 2016-09-09 2021-11-09 Nokia Technologies Oy Method and apparatus for controlled observation point and orientation selection audiovisual content
CN109923867A (zh) * 2016-09-14 2019-06-21 皇家Kpn公司 流式传输虚拟现实视频
CN109716763A (zh) * 2016-09-26 2019-05-03 索尼公司 编码设备、编码方法、解码设备、解码方法、发送设备和接收设备
CN113873262B (zh) 2016-10-04 2023-03-24 有限公司B1影像技术研究所 图像数据编码/解码方法和装置
GB2554877B (en) * 2016-10-10 2021-03-31 Canon Kk Methods, devices, and computer programs for improving rendering display during streaming of timed media data
US10917564B2 (en) * 2016-10-12 2021-02-09 Qualcomm Incorporated Systems and methods of generating and processing files for partial decoding and most interested regions
US11197040B2 (en) * 2016-10-17 2021-12-07 Mediatek Inc. Deriving and signaling a region or viewport in streaming media
US10454987B2 (en) * 2016-10-28 2019-10-22 Google Llc Bitrate optimization for multi-representation encoding using playback statistics
WO2018083378A1 (en) 2016-11-01 2018-05-11 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
US10652553B2 (en) * 2016-12-07 2020-05-12 Qualcomm Incorporated Systems and methods of signaling of regions of interest
WO2018131813A1 (en) * 2017-01-10 2018-07-19 Samsung Electronics Co., Ltd. Method and apparatus for generating metadata for 3d images
US11532128B2 (en) * 2017-03-23 2022-12-20 Qualcomm Incorporated Advanced signaling of regions of interest in omnidirectional visual media
GB2560921B (en) 2017-03-27 2020-04-08 Canon Kk Method and apparatus for encoding media data comprising generated content
WO2018177373A1 (en) * 2017-03-30 2018-10-04 Mediatek Inc. Method and apparatus for signaling spherical region information in isobmff
US10521468B2 (en) * 2017-06-13 2019-12-31 Adobe Inc. Animated seek preview for panoramic videos
US10659760B2 (en) 2017-07-10 2020-05-19 Qualcomm Incorporated Enhanced high-level signaling for fisheye virtual reality video
US10575018B2 (en) * 2017-07-10 2020-02-25 Qualcomm Incorporated Enhanced high-level signaling for fisheye virtual reality video in dash
US11025919B2 (en) * 2017-10-03 2021-06-01 Koninklijke Kpn N.V. Client-based adaptive streaming of nonlinear media
US20190104326A1 (en) * 2017-10-03 2019-04-04 Qualcomm Incorporated Content source description for immersive media data
US11451838B2 (en) 2017-12-07 2022-09-20 Koninklijke Kpn N.V. Method for adaptive streaming of media
US10217488B1 (en) * 2017-12-15 2019-02-26 Snap Inc. Spherical video editing
EP3503559A1 (en) * 2017-12-20 2019-06-26 Thomson Licensing Method and terminal for managing a streaming session of an immersive video spatially tiled with a set of tiles and stored on a network equipment
CN110035316B (zh) * 2018-01-11 2022-01-14 华为技术有限公司 处理媒体数据的方法和装置
GB2570298A (en) * 2018-01-17 2019-07-24 Nokia Technologies Oy Providing virtual content based on user context
EP3759928A1 (en) * 2018-02-26 2021-01-06 InterDigital VC Holdings, Inc. Gradient based boundary filtering in intra prediction
US11297298B2 (en) * 2018-02-27 2022-04-05 Lg Electronics Inc. Method for transmitting and receiving 360-degree video including camera lens information, and device therefor
CN111869222B (zh) * 2018-03-22 2022-05-17 华为技术有限公司 基于http的dash客户端网元、方法及介质
US11115451B2 (en) * 2018-03-26 2021-09-07 Mediatek Singapore Pte. Ltd. Methods and apparatus for signaling viewports and regions of interest
US11032570B2 (en) 2018-04-03 2021-06-08 Huawei Technologies Co., Ltd. Media data processing method and apparatus
US11736675B2 (en) * 2018-04-05 2023-08-22 Interdigital Madison Patent Holdings, Sas Viewpoint metadata for omnidirectional video
CN111869221B (zh) * 2018-04-05 2021-07-20 华为技术有限公司 Dash对象之间的有效关联
CN110351492B (zh) * 2018-04-06 2021-11-19 中兴通讯股份有限公司 一种视频数据处理方法、装置及介质
US10812828B2 (en) 2018-04-10 2020-10-20 At&T Intellectual Property I, L.P. System and method for segmenting immersive video
WO2019200227A1 (en) * 2018-04-13 2019-10-17 Futurewei Technologies, Inc. Signaling spatial region correspondence between virtual reality viewpoints
US10623791B2 (en) 2018-06-01 2020-04-14 At&T Intellectual Property I, L.P. Field of view prediction in live panoramic video streaming
US10812774B2 (en) 2018-06-06 2020-10-20 At&T Intellectual Property I, L.P. Methods and devices for adapting the rate of video content streaming
US10616621B2 (en) 2018-06-29 2020-04-07 At&T Intellectual Property I, L.P. Methods and devices for determining multipath routing for panoramic video content
US11019361B2 (en) 2018-08-13 2021-05-25 At&T Intellectual Property I, L.P. Methods, systems and devices for adjusting panoramic view of a camera for capturing video content
US10708494B2 (en) 2018-08-13 2020-07-07 At&T Intellectual Property I, L.P. Methods, systems and devices for adjusting panoramic video content
CN110971564B (zh) 2018-09-28 2021-03-30 华为技术有限公司 传输媒体数据的方法、客户端和服务器
US11184461B2 (en) 2018-10-23 2021-11-23 At&T Intellectual Property I, L.P. VR video transmission with layered video by re-using existing network infrastructures
US10939139B2 (en) 2018-11-29 2021-03-02 Apple Inc. Adaptive coding and streaming of multi-directional video
CN111263191B (zh) * 2018-11-30 2023-06-27 中兴通讯股份有限公司 视频数据的处理方法、装置、相关设备及存储介质
BR112021009911A2 (pt) 2018-12-29 2021-08-17 Huawei Technologies Co., Ltd. codificador, decodificador e métodos correspondentes usando armazenamento de mv compacto
CN111417008B (zh) * 2019-01-08 2022-06-03 诺基亚技术有限公司 用于虚拟现实的方法、装置和计算机可读介质
EP3900331A4 (en) 2019-01-12 2022-03-16 Huawei Technologies Co., Ltd. VIDEO ENCODER, VIDEO DECODER AND RELATED MMVD DISTANCE PROCESSING METHODS
KR102178947B1 (ko) * 2019-01-31 2020-11-13 서울과학기술대학교 산학협력단 스티칭 기법을 이용한 360도 멀티뷰 영상 전송 시스템 및 방법
US11055901B2 (en) 2019-03-07 2021-07-06 Alibaba Group Holding Limited Method, apparatus, medium, and server for generating multi-angle free-perspective video data
US12020395B2 (en) * 2019-03-15 2024-06-25 STX Financing, LLC Systems and methods for compressing and decompressing a sequence of images
WO2020188142A1 (en) * 2019-03-15 2020-09-24 Nokia Technologies Oy Method and apparatus for grouping entities in media content
KR102669467B1 (ko) * 2019-03-20 2024-05-24 베이징 시아오미 모바일 소프트웨어 컴퍼니 리미티드 Vr360 애플리케이션에서 시점 전환 기능을 전송하는 방법 및 장치(method and device for transmitting viewpoint switching capabilities in a vr360 application)
EP3912341A4 (en) * 2019-05-21 2022-10-19 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR INTER-COMPONENT PREDICTION
US11523185B2 (en) 2019-06-19 2022-12-06 Koninklijke Kpn N.V. Rendering video stream in sub-area of visible display area
BR112021024418A2 (pt) * 2019-06-21 2022-01-18 Ericsson Telefon Ab L M Métodos para a decodificação de um conjunto de imagens a partir de um fluxo contínuo de bits e para a codificação de uma imagem, decodificador de vídeo, codificador de vídeo, programa de computador, e, portadora
WO2021015982A1 (en) * 2019-07-22 2021-01-28 Interdigital Vc Holdings, Inc. A method and apparatus for delivering a volumetric video content
US11729243B2 (en) * 2019-09-20 2023-08-15 Intel Corporation Dash-based streaming of point cloud content based on recommended viewports
KR20220065060A (ko) * 2019-09-24 2022-05-19 후아웨이 테크놀러지 컴퍼니 리미티드 다계층 비디오 비트스트림에서 사용되지 않는 계층 금지
US11956295B2 (en) 2019-09-27 2024-04-09 Apple Inc. Client-end enhanced view prediction for multi-view video streaming exploiting pre-fetched data and side information
CN110662084B (zh) * 2019-10-15 2021-07-09 北京齐尔布莱特科技有限公司 一种mp4文件流直播的方法、移动终端及存储介质
US10939126B1 (en) * 2019-12-09 2021-03-02 Guangzhou Zhijing Technology Co., Ltd Method of adding encoded range-of-interest location, type and adjustable quantization parameters per macroblock to video stream
EP4062634A4 (en) 2019-12-26 2022-12-28 ByteDance Inc. LIMITATIONS ON SIGNALING HYPOTHETICAL REFERENCE DECODER PARAMETERS IN VIDEO BITSTREAMS
WO2021134015A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Profile, tier and layer indication in video coding
CN114902567A (zh) 2019-12-27 2022-08-12 字节跳动有限公司 视频编解码中的子图像信令
EP3846476B1 (en) * 2020-01-05 2023-09-20 Isize Limited Image data processing
EP4074052A4 (en) 2020-01-09 2023-05-31 ByteDance Inc. PROCESSING OF FILLER DATA UNITS IN VIDEO STREAMS
WO2021167340A1 (ko) * 2020-02-17 2021-08-26 현대자동차주식회사 크로마 신호의 리샘플링에 기반하는 영상 부호화 및 복호화
US11146727B2 (en) * 2020-03-16 2021-10-12 Ke.Com (Beijing) Technology Co., Ltd. Method and device for generating a panoramic image
US11297350B1 (en) 2020-03-27 2022-04-05 Tencent America LLC Method for output layer set for multilayered video stream
WO2021201548A1 (ko) * 2020-03-30 2021-10-07 엘지전자 주식회사 영상 디코딩 방법 및 그 장치
US11503289B2 (en) * 2020-05-27 2022-11-15 Tencent America LLC Bitstream structure for viewport-based streaming with a fallback bitstream
CN115022715B (zh) * 2020-06-04 2023-07-25 腾讯科技(深圳)有限公司 一种沉浸媒体的数据处理方法及设备
KR20230025429A (ko) * 2020-06-06 2023-02-21 엘지전자 주식회사 스케일러빌리티를 위한 서브-비트스트림 추출 기반 영상 코딩 장치 및 방법
US11303931B2 (en) * 2020-06-10 2022-04-12 Mediatek Inc. Method and apparatus for processing projection-based frame having projection faces packed in hemisphere cubemap projection layout with face packing constraints
CN115004716A (zh) 2020-06-24 2022-09-02 中兴通讯股份有限公司 容积媒体处理方法和装置
WO2022065799A1 (ko) * 2020-09-22 2022-03-31 엘지전자 주식회사 미디어 파일 처리 방법 및 그 장치
US11533351B2 (en) * 2020-09-24 2022-12-20 Apple Inc. Efficient delivery of multi-camera interactive content
EP4272432A1 (en) * 2020-12-31 2023-11-08 Koninklijke KPN N.V. Multi-view video streaming
CN112468818B (zh) * 2021-01-22 2021-06-29 腾讯科技(深圳)有限公司 视频通信的实现方法及装置、介质和电子设备
US20230018718A1 (en) * 2021-06-30 2023-01-19 Lemon Inc. Signaling Replacement of Video Data Units in a Picture-in-Picture Region
WO2023058995A1 (ko) * 2021-10-04 2023-04-13 엘지전자 주식회사 포인트 클라우드 데이터의 전송 장치와 이 전송 장치에서 수행되는 방법 및, 포인트 클라우드 데이터의 수신 장치와 이 수신 장치에서 수행되는 방법

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8355041B2 (en) * 2008-02-14 2013-01-15 Cisco Technology, Inc. Telepresence system for 360 degree video conferencing
ES2515967T3 (es) * 2008-10-07 2014-10-30 Telefonaktiebolaget L M Ericsson (Publ) Datos multimedia de múltiples vistas
US20120254791A1 (en) * 2011-03-31 2012-10-04 Apple Inc. Interactive menu elements in a virtual three-dimensional space
TWI530161B (zh) * 2011-06-07 2016-04-11 Sony Corp Image processing apparatus and method
US20130188922A1 (en) * 2012-01-23 2013-07-25 Research In Motion Limited Multimedia File Support for Media Capture Device Position and Location Timed Metadata
US9998726B2 (en) * 2012-06-20 2018-06-12 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
KR101786276B1 (ko) * 2012-10-12 2017-11-15 캐논 가부시끼가이샤 데이터를 스트리밍하기 위한 방법, 데이터를 제공하기 위한 방법, 데이터를 획득하기 위한 방법, 컴퓨터 판독 가능 저장 매체, 서버 장치, 및 클라이언트 장치
US9648299B2 (en) * 2013-01-04 2017-05-09 Qualcomm Incorporated Indication of presence of texture and depth views in tracks for multiview coding plus depth
EP2824885B1 (en) 2013-07-12 2019-01-23 Provenance Asset Group LLC A manifest file format supporting panoramic video
US10721530B2 (en) * 2013-07-29 2020-07-21 Koninklijke Kpn N.V. Providing tile video streams to a client
CN104010225B (zh) * 2014-06-20 2016-02-10 合一网络技术(北京)有限公司 显示全景视频的方法和系统
WO2015197815A1 (en) 2014-06-27 2015-12-30 Koninklijke Kpn N.V. Determining a region of interest on the basis of a hevc-tiled video stream
US10298985B2 (en) * 2015-05-11 2019-05-21 Mediamelon, Inc. Systems and methods for performing quality based streaming
CN105554513A (zh) * 2015-12-10 2016-05-04 Tcl集团股份有限公司 一种基于h.264的全景视频传输方法及系统
US10313745B2 (en) * 2016-01-17 2019-06-04 Bitmovin Gmbh Adaptive streaming of an immersive video scene
US10979691B2 (en) * 2016-05-20 2021-04-13 Qualcomm Incorporated Circular fisheye video in virtual reality
GB2550589B (en) * 2016-05-23 2019-12-04 Canon Kk Method, device, and computer program for improving streaming of virtual reality media content
GB202108749D0 (en) * 2016-05-23 2021-08-04 Canon Kk Method, device, and computer program for adaptive streaming of virtual reality media content
EP4156694A1 (en) * 2017-07-07 2023-03-29 Nagravision Sàrl A method to insert ad content into a video scene

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
D'Acunto, Lucia, et al., Proceedings of the 7th International Conference on Multimedia Systems. ACM, 2016.(2016.05.13. 공개). 1부.*
Martens, Geoffrey. Bandwidth management for ODV tiled streaming with MPEG-DASH. MS thesis. tUL, 2015(2015.12.31. 공개). 1부.*

Also Published As

Publication number Publication date
WO2017203098A1 (en) 2017-11-30
EP3466079A1 (en) 2019-04-10
US20200177809A1 (en) 2020-06-04
EP3466079A4 (en) 2019-12-11
KR20190009378A (ko) 2019-01-28
EP3466079B1 (en) 2023-07-12
US20190313021A1 (en) 2019-10-10
CN109155861A (zh) 2019-01-04
US20170347026A1 (en) 2017-11-30
CN109155861B (zh) 2021-05-25

Similar Documents

Publication Publication Date Title
KR102170550B1 (ko) 미디어 콘텐츠를 인코딩하는 방법, 장치 및 컴퓨터 프로그램
US12022117B2 (en) Apparatus, a method and a computer program for video coding and decoding
KR102411337B1 (ko) 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
US10893256B2 (en) Apparatus, a method and a computer program for omnidirectional video
KR102089457B1 (ko) 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
US11140417B2 (en) Apparatus, a method and a computer program for video coding and decoding
US20200374505A1 (en) An apparatus, a method and a computer program for omnidirectional video
EP3346709B1 (en) An apparatus, a method and a computer program for video coding and decoding
EP3349467B1 (en) An apparatus, a method and a computer program for video coding and decoding
WO2017093611A1 (en) A method for video encoding/decoding and an apparatus and a computer program product for implementing the method
WO2019141907A1 (en) An apparatus, a method and a computer program for omnidirectional video
WO2017140948A1 (en) An apparatus, a method and a computer program for video coding and decoding
US20230059516A1 (en) Apparatus, a method and a computer program for omnidirectional video
WO2017140946A1 (en) An apparatus, a method and a computer program for video coding and decoding
WO2018115572A2 (en) An apparatus, a method and a computer program for video coding and decoding
WO2020201632A1 (en) An apparatus, a method and a computer program for omnidirectional video

Legal Events

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