KR20180113584A - 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램 - Google Patents

비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20180113584A
KR20180113584A KR1020187026699A KR20187026699A KR20180113584A KR 20180113584 A KR20180113584 A KR 20180113584A KR 1020187026699 A KR1020187026699 A KR 1020187026699A KR 20187026699 A KR20187026699 A KR 20187026699A KR 20180113584 A KR20180113584 A KR 20180113584A
Authority
KR
South Korea
Prior art keywords
picture
tile
track
tile set
layer
Prior art date
Application number
KR1020187026699A
Other languages
English (en)
Other versions
KR102089457B1 (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 KR20180113584A publication Critical patent/KR20180113584A/ko
Application granted granted Critical
Publication of KR102089457B1 publication Critical patent/KR102089457B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/55Motion estimation with spatial constraints, e.g. at image or region borders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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
    • 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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440245Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • 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/84Generation or processing of descriptive data, e.g. content descriptors
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format

Landscapes

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

Abstract

방법은, 움직임 제약 타일 세트를 포함하는 전체 화상 트랙이나 비트스트림을 획득하는 단계와, 움직임 제약 타일 세트에 기초하여 전체 화상 호환 타일 세트 트랙이나 비트스트림을 구성하거나 움직임 제약 타일 세트에 기초하여 전체 화상 호환 타일 세트 트랙이나 비트스트림을 구성하기 위한 명령어를 생성하는 단계를 포함한다.

Description

비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
본 발명은 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램에 관한 것이다.
많은 디스플레이 환경에서, 부분 화상만 디스플레이될 필요가 있는 반면, 나머지 화상은 디코딩이 요구되지만 디스플레이되지는 않는다. 이러한 디스플레이 상황은, 예를 들어, 약 100도의 시야를 갖는 전형적인 머리 장착형 디스플레이(head mounted display: HMD)를 포함하지만, 종종 소비를 위한 입력 비디오는 전체 360도를 커버한다. 전형적인 평면 패널 시청 환경은 최대 40도의 시야를 표시한다. 그러한 디스플레이 상에 와이드 FOV 콘텐츠(예를 들어, 어안(fisheye))를 디스플레이할 때, 전체 화상보다는 공간 서브 세트를 디스플레이하는 것이 바람직할 수 있다.
통상적으로, 코딩된 화상은 강한 공간 의존성(예를 들어, 인트라 예측), 엔트로피 코딩 의존성, 인루프 필터링 의존성, 및 시공간 의존성(화상의 상이한 부분을 가리키는 움직임 벡터)을 갖기 때문에 완전히 디코딩될 필요가 있다. 움직임 제약 타일 세트는 다른 타일 세트와 독립적으로 타일 세트의 디코딩을 가능하게 하지만, 코딩된 타일 세트는 비트스트림 내의 다른 코딩된 데이터와 인터리빙될 수 있고, 파라미터 세트 및 헤더(예를 들어, 슬라이스 세그먼트 헤더)가 전체 비트스트림에 대한 것이기 때문에, 특정 움직임 제약 타일 세트를 디코딩하기 위한 전용 디코딩 프로세스가 필요하며, 다른 타일들의 디코딩은 생략한다.
360도 비디오를 위한 종래의 스트리밍 장치에서, 전체 360도 비디오가 전송된다. 예를 들어, 전체 등장방형도법 파노라마(entire equirectangular panorama)가 전송된다. 그러나 HMD 상의 소비와 같은 많은 디스플레이 환경에서는 360도 비디오의 서브세트만이 한 번에 디스플레이된다. 따라서 스트리밍 비트레이트는 디스플레이되지 않은 화상 영역에 사용된다. 이는 네트워크 및/또는 액세스 링크 혼잡 및 재버퍼링의 위험성 및/또는 디스플레이되는 화상 영역의 부분들에 대한 상대적으로 낮은 품질의 사용을 야기할 수 있다.
이제 전술된 문제들을 적어도 완화하기 위해, 본원에서 비트스트림을 생성하기 위한 개선된 방법이 소개된다.
제 1 양태에 따른 방법은, 움직임 제약 타일 세트(motion-constrained tile set)를 포함하는 전체 화상 트랙 또는 비트스트림을 획득하는 단계와, 상기 움직임 제약 타일 세트에 기초하여 전체 화상 호환 타일 세트 트랙 또는 비트스트림을 구성하는 단계를 포함한다.
제 2 양태에 따른 방법은, 움직임 제약 타일 세트를 포함하는 전체 화상 트랙 또는 비트스트림을 획득하는 단계와, 상기 움직임 제약 타일 세트에 기초하여 전체 화상 호환 타일 세트 트랙 또는 비트스트림을 구성하기 위한 명령어를 생성하는 단계를 포함한다.
일 실시예에 따르면, 상기 움직임 제약 타일 세트는, 상기 움직임 제약 타일 세트 외부의 타일을 또한 포함하는 하나 이상의 슬라이스 세그먼트 내에 포함되는 것으로 특징지어지고, 상기 구성하는 단계 또는 구성하기 위한 명령어를 생성하는 단계는, 상기 전체 화상 호환 타일 세트 트랙이나 비트스트림 내로 또는 전체 화상 호환 타일 세트 트랙이나 비트스트림을 구성하기 위한 명령어 내로, 상기 움직임 제약 타일 세트의 우측 상의 타일 열을 추가하는 단계를 포함한다.
일 실시예에 따르면, 상기 방법은, 상기 추가된 타일 열의 타일들을 사용하여 슬라이스 세그먼트의 말단을 제어하는 단계를 더 포함한다.
일 실시예에 따르면, 상기 방법은, 상기 추가된 타일 열의 마지막 타일 내에 슬라이스 세그먼트의 말단을 표시하는 단계를 더 포함한다.
일 실시예에 따르면, 상기 방법은, 상기 전체 화상 호환 타일 세트 트랙이나 비트스트림 내로, 또는 전체 화상 호환 타일 세트 트랙이나 비트스트림을 구성하기 위한 명령어 내로, 디코딩으로 하여금 상기 추가된 타일 열을 디코딩 출력에서 제외하게 하는 적합성 크로핑 윈도우(conformance cropping window)에 대한 정보를 추가하는 단계를 더 포함한다.
일 실시예에 따르면, 상기 움직임 제약 타일 세트는 상기 움직임 제약 타일 세트 외부의 타일들을 또한 포함하는 하나 이상의 슬라이스 세그먼트 내에 포함되는 것으로 특징지어지고, 상기 구성하는 단계 또는 상기 구성하기 위한 명령어를 생성하는 단계는, 최우측 타일을 포함하는 제 1 슬라이스 세그먼트의 마지막 타일이 아닌 상기 움직임 제약 타일 세트 내의 상기 최우측 타일을 식별하는 단계와, 상기 제 1 슬라이스의 말단을 야기하도록 상기 최우측 타일을 수정하는 단계를 포함한다.
제 3 양태에 따른 방법은, 구성된 전체 화상 호환 타일 세트 트랙이나 비트스트림, 또는 전체 화상 호환 타일 세트 트랙이나 비트스트림을 구성하기 위한 명령어를 획득하는 단계와, 미디어 표현 설명 내에, 상기 전체 화상 호환 타일 세트 트랙으로부터 형성된 제 1 표현의 정보를 생성하는 단계를 포함한다.
일 실시예에 따르면, 상기 방법은, 상기 미디어 표현 설명 내에, 상기 전체 화상 트랙이나 비트스트림으로부터 형성된 제 2 표현의 정보를 생성하는 단계와, 상기 제 1 표현 및 상기 제 2 표현을 상기 미디어 표현 설명 내의 동일한 참조 공간 내로 연관시키는 단계와, 상기 미디어 표현 설명 내에 상기 제 2 표현과 관련하여 상기 제 1 표현의 위치 및 크기를 표시하는 단계를 더 포함한다.
일 실시예에 따르면, 전체 화상 호환 타일 세트 트랙을 구성하기 위한 명령어는 상기 전체 화상 트랙 또는 비트스트림으로부터 기본 단위의 일부분을 추출하는 추출자를 포함한다.
일 실시예에 따르면, 상기 기본 단위는 네트워크 추상 계층(Network Abstraction Layer: NAL) 단위이다.
일 실시예에 따르면, 상기 전체 화상 호환 타일 세트 트랙이나 비트스트림을 구성하는 단계 또는 구성하기 위한 명령어를 생성하는 단계는, 상기 전체 화상 트랙 또는 비트스트림의 파라미터 세트 및/또는 슬라이스 세그먼트 헤더와 비교될 때 상기 파라미터 세트 및/또는 슬라이스 세그먼트 헤더를 전체적으로 또는 부분적으로 재기록하는 단계를 포함한다.
일 실시예에 따르면, 상기 전체 화상 호환 타일 세트 트랙이나 비트스트림을 구성하기 위한 명령어는 일련의 세그먼트 또는 서브세그먼트를 야기한다.
제 4 양태에 따른 방법은, 미디어 표현 설명 및/또는 미디어 파일로부터 제 1 전체 화상 호환 타일 세트 트랙의 제 1 특성을 획득하는 단계와, 상기 제 1 특성에 기초하여 상기 제 1 전체 화상 호환 타일 세트 트랙의 일부분 또는 전체를 획득하도록 결정하는 단계와, 상기 제 1 전체 화상 호환 트랙의 일부분 또는 전체를 획득하는 단계를 포함한다.
일 실시예에 따르면, 상기 제 1 전체 화상 호환 타일 세트 트랙의 일부분 또는 전체를 디코딩하고 재생하는 단계를 더 포함한다.
일 실시예에 따르면, 상기 방법은, 상기 제 1 특성 내에서, 포함된 공간 영역 또는 포함된 시야 및 시점 방향 둘 모두에 관한 정보를 획득하는 단계를 더 포함하되, 상기 결정하는 단계는 상기 포함된 공간 영역 또는 상기 포함된 시야 및 상기 시점 방향 둘 모두에 기초한다.
일 실시예에 따르면, 상기 방법은, 미디어 표현 설명으로부터 및/또는 미디어 파일로부터 제 2 전체 화상 호환 타일 세트 트랙의 제 2 특성을 획득하는 단계와, 상기 제 1 특성 및 상기 제 2 특성으로부터, 상기 제 2 전체 화상 호환 타일 세트 트랙이 상기 제 1 전체 화상 호환 타일 세트 트랙의 것과 비교하여 낮은 공간 해상도, 비트레이트, 화질, 컬러 컴포넌트 당 비트 깊이, 동적 범위, 및/또는 컬러 영역을 갖는다고 결론짓는 단계와, 상기 제 1 특성 및 상기 제 2 특성으로부터 상기 제 1 전체 화상 호환 타일 세트 트랙 및 상기 제 2 전체 화상 호환 타일 세트 트랙이 콘텐츠의 상이한 공간 부분을 나타낸다고 결론짓는 단계와, 상기 결론들에 기초하여 상기 제 2 전체 화상 호환 타일 세트 트랙의 일부분 또는 전체를 획득하도록 결정하는 단계와, 상기 제 2 전체 화상 호환 타일 세트 트랙의 일부분 또는 전체를 획득하는 단계를 더 포함한다. 추가 양태들은 상기의 방법들을 실행하도록 구성된 적어도 장치 및 비일시적 메모리 매체에 저장된 컴퓨터 프로그램 제품/코드를 포함한다.
본 발명의 이해를 돕기 위해, 첨부된 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1은 본 발명의 실시예들을 구현하는 전자 디바이스를 개략적으로 도시한다.
도 2는 본 발명의 일 실시예들을 구현하기에 적합한 사용자 장비를 개략적으로 도시한다.
도 3은 무선 및 유선 네트워크 접속을 사용하여 접속된 본 발명의 실시예들을 구현하는 전자 디바이스를 개략적으로 도시한다.
도 4는 본 발명의 실시예를 구현하기에 적합한 인코더를 개략적으로 도시한다.
도 5는 DASH에서 사용되는 계층적 데이터 모델의 일례를 도시한다.
도 6(a) 및 도 6(b)는 본 발명의 실시예들에 따라 비트스트림을 구성하기 위한 명령어를 생성하고 비트스트림을 구성하기 위한 흐름도를 도시한다.
도 7은 본 발명의 다양한 실시예들에 따른 기본 개념을 도시한다.
도 8은 움직임 제약 타일 세트의 분할에 관한 일례를 도시한다.
도 9는 일 실시예에 따라 전체 화상 호환 타일 세트 트랙을 구성하기 위한 명령어를 생성하는 프로세스를 도시한다.
도 10은 일 실시예에 따른 파일 구조의 일례를 도시한다.
도 11(a) 및 도 11(b)는 일 실시예에 따른 파일 내의 상이한 트랙의 데이터 청크를 배열하는 일례 및 일 실시예에 따른 생성자 연산자의 일례를 도시한다.
도 12는 일 실시예에 따른 MPD 생성의 일례를 도시한다.
도 13은 상이한 공간 해상도를 갖는 동일한 콘텐츠의 상이한 버전에 실시예들을 적용한 일례를 도시한다.
도 14는 상이한 공간 해상도를 갖는 동일한 콘텐츠의 상이한 스케일가능성 계층에 실시예들을 적용하는 일례를 도시한다.
도 15는 입체 비디오 코딩에 적용되는 일 실시예에 관한 일례를 도시한다.
도 16은 시점 간 예측을 사용하는 입체 비디오 코딩에 적용되는 일 실시예의 일례를 도시한다.
도 17은 일 실시예에 따른 세그멘터 힌트 생성의 일례를 도시한다.
도 18은 일 실시예에 따른 세그멘터 힌트 트랙 또는 세그멘터 파일의 일례를 도시한다.
도 19는 일 실시예에 따른 서버 또는 세그멘터의 동작을 도시한다.
도 20은 사전 구성된 타일 세트 트랙의 생성을 수반하는 일 실시예의 일례를 도시한다.
도 21은 일 실시예에 따라 파일 내에 사전 구성된 타일 세트 트랙 및 전체 화상 트랙의 데이터 청크를 배열하는 일례를 도시한다.
도 22는 본 발명의 실시예들을 구현하는데 적합한 디코더의 개략도를 도시한다.
도 23은 다양한 실시예들이 구현될 수 있는 예시적인 멀티미디어 통신 시스템의 개략도를 도시한다.
다음은 스케일가능 비디오 비트스트림을 스트리밍하는 다운스트림 비트레이트를 감소시키기 위한 적절한 장치 및 가능한 메커니즘을 보다 상세하게 설명한다. 이와 관련하여, 먼저 도 1 및 도 2를 참조하고, 도 1은 본 발명의 일 실시예에 따른 코덱을 통합할 수 있는 예시적인 장치 및 전자 디바이스(50)에 관한 개략적인 블록도와 같이 예시적인 실시예에 따른 비디오 코딩 시스템에 관한 블록도를 도시한다. 도 2는 예시적인 실시예에 따른 장치의 레이아웃을 도시한다. 도 1 및 도 2의 요소는 다음에 설명될 것이다.
전자 디바이스(50)는, 예를 들어, 무선 통신 시스템의 이동 단말 또는 사용자 장비일 수 있다. 그러나, 본 발명의 실시예들은 비디오 이미지의 인코딩과 디코딩 또는 인코딩 또는 디코딩을 요청할 수 있는 임의의 전자 디바이스 또는 장치 내에서 구현될 수 있음을 이해할 것이다.
장치(50)는 디바이스를 통합하고 보호하기 위한 하우징(30)을 포함할 수 있다. 장치(50)는 액정 디스플레이 형태의 디스플레이(32)를 더 포함할 수 있다. 본 발명의 다른 실시예들에서, 디스플레이는 이미지 또는 비디오를 디스플레이하기에 적합한 임의의 적절한 디스플레이 기법일 수 있다. 장치(50)는 키패드(34)를 더 포함할 수 있다. 본 발명의 다른 실시예들에서, 임의의 적합한 데이터 또는 사용자 인터페이스 메커니즘이 구현될 수도 있다. 예를 들어, 사용자 인터페이스는 터치 감지 디스플레이의 일부로서 가상 키보드 또는 데이터 입력 시스템으로서 실행될 수 있다.
장치는 마이크로폰(36) 또는 디지털 신호 입력부 또는 아날로그 신호 입력부일 수 있는 임의의 적절한 오디오 입력부를 포함할 수 있다. 장치(50)는 본 발명의 실시예에서 이어피스(38), 스피커, 또는 아날로그 오디오 또는 디지털 오디오 출력 접속부 중 하나일 수 있는 오디오 출력 디바이스를 더 포함할 수 있다. 장치(50)는 또한 배터리(40)(또는 본 발명의 다른 실시예들에서 디바이스는 태양 전지, 연료 전지 또는 시계 발전기와 같은 임의의 적합한 이동 에너지 디바이스에 의해 동력을 공급받을 수 있음)를 포함할 수 있다. 장치는 이미지 및/또는 비디오를 기록 또는 캡처할 수 있는 카메라(42)를 더 포함할 수 있다. 장치(50)는 다른 장치들과 단거리 시선 통신을 위한 적외선 포트를 더 포함할 수 있다. 다른 실시예들에서, 장치(50)는, 예를 들어, 블루투스 무선 접속 또는 USB/파이어와이어 유선 접속과 같은 임의의 적합한 근거리 통신 솔루션을 더 포함할 수 있다.
장치(50)는 장치(50)를 제어하기 위한 제어기(56) 또는 프로세서를 포함할 수 있다. 제어기(56)는 본 발명의 실시예들에서 이미지 및 오디오 데이터의 형태 둘 모두로 데이터를 저장할 수 있는 메모리(58)에 접속될 수 있다. 제어기(56)는 오디오 및/또는 비디오 데이터의 코딩 및 디코딩을 수행하거나 제어기에 의해 수행되는 코딩 및 디코딩을 보조하는데 적합한 코덱 회로(54)에 또한 접속될 수 있다.
장치(50)는 사용자 정보를 제공하고 네트워크에서 사용자의 인증 및 허가를 위한 인증 정보를 제공하기에 적합한 카드 판독기(48) 및 스마트 카드(46), 예를 들어, UICC 및 UICC 판독기를 더 포함할 수 있다.
장치(50)는 제어기에 접속되고, 예를 들어, 셀룰러 통신 네트워크, 무선 통신 시스템 또는 무선 근거리 네트워크를 위한 무선 통신 신호를 생성하기에 적합한 무선 인터페이스 회로(52)를 포함할 수 있다. 장치(50)는 무선 인터페이스 회로(52)에서 생성된 무선 주파수 신호를 다른 장치(들)로 전송하고 다른 장치(들)로부터 무선 주파수 신호를 수신하기 위해 무선 인터페이스 회로(52)에 접속된 안테나(44)를 더 포함할 수 있다.
장치(50)는 그 이후 처리를 위해 코덱(54) 또는 제어기로 전달되는 개별적인 프레임을 기록 또는 검출할 수 있는 카메라를 포함할 수 있다. 장치는 전송 및/또는 저장 전에 다른 장치로부터 처리를 위해 비디오 이미지 데이터를 수신할 수 있다. 장치(50)는 또한 코딩/디코딩을 위해 이미지를 무선으로 또는 유선 접속으로 수신할 수 있다.
도 3과 관련하여, 본 발명의 실시예들이 이용될 수 있는 시스템의 예가 도시된다. 시스템(10)은 하나 이상의 네트워크를 통해 통신할 수 있는 복수의 통신 장치를 포함한다. 시스템(10)은 무선 셀룰러 전화 네트워크(예컨대, GSM, UMTS, CDMA 네트워크 등), IEEE 802.x 표준 중 임의의 표준에 의해 정의되는 것과 같은 무선 근거리 통신망(WLAN), 무선 근거리 통신망 블루투스 개인 영역 네트워크, 이더넷 근거리 통신망, 토큰 링 근거리 통신망, 광역 통신망 및 인터넷을 포함하나 이로 제한되지 않는 유선 또는 무선 네트워크의 임의의 조합을 포함할 수 있다.
시스템(10)은 본 발명의 실시예들을 구현하기에 적합한 유선 및 무선 통신 장치 및/또는 장치(50) 모두를 포함할 수 있다.
예를 들어, 도 3에 도시된 시스템은 이동 전화 네트워크(11) 및 인터넷(28)의 표현을 도시한다. 인터넷(28)으로의 접속은 장거리 무선 접속, 근거리 무선 접속, 및 전화선, 케이블 회선, 전력선 및 유사한 통신 경로를 포함하나 이로 제한되지 않는 다양한 우선 접속을 포함할 수 있으나 이로 제한되지 않는다.
시스템(10)에 도시된 예시적인 통신 디바이스는 전자 디바이스 또는 장치(50), 개인 휴대 정보 단말기(PDA) 및 이동 전화(14)의 조합, PDA(16), 통합 메시징 디바이스(IMD)(18), 데스크톱 컴퓨터(20), 노트북 컴퓨터(22)를 포함할 수 있으나 이로 제한되지 않는다. 장치(50)는 움직이는 사람에 의해 운반될 때 정지되거나 이동될 수 있다. 장치(50)는 또한 자동차, 트럭, 택시, 버스, 기차, 보트, 비행기, 자전거, 오토바이 또는 임의의 유사한 운송 모드를 포함하나 이로 제한되지 않는 운송 모드에 위치할 수 있다.
실시예들은 또한 셋톱 박스에서, 즉 다양한 운영 체제에서 하드웨어 또는 소프트웨어 또는 인코더/디코더 구현예의 조합을 갖는 태블릿 또는 (랩톱) 개인용 컴퓨터(PC)에서 디스플레이 또는 무선 기능을 갖거나 갖지 않을 수도 있는 디지털 TV 수신기, 하드웨어/소프트웨어 기반 코딩을 제공하는 칩셋, 프로세서, DSP 및/또는 임베디드 시스템에서 구현될 수 있다.
일부 또는 추가 장치는 호출 및 메시지를 송신 및 수신하고 기지국(24)에 무선 접속(25)을 통해 서비스 제공자와 통신할 수 있다. 기지국(24)은 이동 전화 네트워크(11)와 인터넷(28) 사이의 통신을 허용하는 네트워크 서버(26)에 접속될 수 있다. 시스템은 다양한 유형의 통신 디바이스 및 추가 통신 디바이스를 포함할 수 있다.
통신 디바이스는 코드 분할 다중 액세스(CDMA), 이동 통신용 글로벌 시스템(GSM), 범용 이동 통신 시스템(UMTS), 시분할 다중 액세스(TDMA), 주파수 분할 다중 액세스(FDMA), 전송 제어 프로토콜 인터넷 프로토콜(TCP-IP), 문자 메시지 서비스(SMS), 멀티미디어 메시징 서비스(MMS), 이메일, 인스턴트 메시징 서비스(IMS), 블루투스, IEEE 802.11 및 이와 유사한 임의의 무선 통신 기술을 포함하나 이로 제한되지 않는 다양한 전송 기술을 사용하여 통신할 수 있다. 본 발명의 다양한 실시예들을 구현하는 것과 관련된 통신 디바이스는, 무선, 적외선, 레이저, 케이블 접속 및 임의의 적절한 접속을 포함하나 이로 제한되지 않는 다양한 미디어를 사용하여 통신할 수 있다.
실시간 전송 프로토콜(Real-time Transport Protocol: RTP)은 오디오 및 비디오와 같은 시간이 지정된 미디어의 실시간 전달 위해 폭넓게 사용된다. RTP는 인터넷 프로토콜(IP)의 상단에서 차례로 동작할 수 있는 사용자 데이터그램 프로토콜(User Datagram Protocol: UDP)의 상단에서 동작할 수 있다. RTP는 인터넷 프로토콜(IP)의 국제 인터넷 표준화 기구(Internet Engineering Task Force: IETF) 설명 요청(Request for Comments: RFC) 3550에 명시되어 있고, www.ietf.org/rfc/rfc3550.txt에서 확인할 수 있다. RTP 전송에서, 미디어 데이터는 RTP 패킷으로 캡슐화된다. 전형적으로, 각 미디어 유형 또는 미디어 코딩 형식은 전용 RTP 페이로드 형식을 갖는다.
RTP 세션은 RTP와 통신하는 참가자 그룹 사이의 연관성이다. 잠재적으로 다수의 RTP 스트림을 운반할 수 있는 그룹 통신 채널이다. RTP 스트림은 미디어 데이터를 포함하는 RTP 패킷의 스트림이다. RTP 스트림은 특정 RTP 세션에 속하는 SSRC에 의해 식별된다. SSRC는 동기화 소스 또는 RTP 패킷 헤더의 32비트 SSRC 필드인 동기화 소스 식별자를 지칭한다. 동기화 소스는 동기화 소스로부터의 모든 패킷이 동일한 타이밍 및 시퀀스 번호 공간의 일부를 형성하므로 수신기는 재생을 위해 동기화 소스별로 패킷을 그룹화할 수 있다는 점에서 특징지어진다. 동기화 소스의 예로는 마이크로폰 또는 카메라와 같은 신호 소스에서 도출된 패킷 스트림 송신자 또는 RTP 믹서를 포함한다. 각 RTP 스트림은 RTP 세션 내에서 고유한 SSRC로 식별된다.
ISO/IEC 13818-1에 명시되거나 ITU-T 권고안 H.222.0에 동등하게 명시된 MPEG-2 전송 스트림(TS)은 오디오, 비디오 및 기타 미디어는 물론 프로그램 메타데이터 또는 기타 메타데이터를 멀티플렉싱된 스트림으로 운반하기 위한 형식이다. 패킷 식별자(PID)는 TS 내의 기본 스트림(즉, 패킷화된 기본 스트림)을 식별하기 위해 사용된다.
이용 가능한 미디어 파일 포맷 표준은 ISO 기반 미디어 파일 포맷(ISO/IEC 14496-12, ISOBMFF로 축약될 수 있음), MPEG-4 파일 포맷(ISO/IEC 14496-14, MP4 포맷이라고도 함), NAL 단위 구조화 비디오(ISO/IEC 14496-15) 및 3GPP 파일 형식(3GPP TS 26.244, 3GP 포맷이라고도 함)을 포함한다. ISOBMFF는 전술된 모든 파일 포맷(ISOBMFF 자체 제외)의 도출을 위한 기반이다.
ISOBMFF의 일부 개념, 구조 및 사양은 실시예들이 구현될 수 있는 컨테이너 파일 포맷의 예로서 아래에서 설명된다. 본 발명의 양태들은 ISOBMFF에 한정되지 않고, 오히려 본 발명이 부분적으로 또는 완전히 실현될 수 있는 하나의 가능한 기반에 대한 설명이 주어진다.
ISOBMFF의 하나의 빌딩 블록을 박스라고 한다. 각 박스는 헤더 및 페이로드를 가질 수 있다. 박스 헤더는 박스 유형 및 박스 크기를 바이트 단위로 나타낸다. 박스는 다른 박스들을 인클로징할 수 있고 ISO 파일 포맷은 어떤 박스 유형이 특정 유형의 박스 내에서 허용되는지 지정한다. 더욱이, 일부 박스의 존재는 각 파일에서 필수적일 수 있지만 다른 박스의 존재는 선택적일 수 있다. 추가적으로, 일부 박스 유형의 경우, 하나의 파일에 둘 이상의 박스가 존재하는 것이 허용될 수 있다. 따라서, ISOBMFF는 박스들의 계층적 구조를 지정하는 것으로 고려될 수 있다. ISO 기반 미디어 파일의 각 박스는 4문자 코드(4CC, fourCC)로 식별될 수 있다. 4문자 코드는 (8비트 값, 특정 비트 엔디언(endianness), 및 특정 바이트 엔디언으로 특정 문자를 변환한다고 가정함으로써) 32비트 무부호 정수로 상호교환적으로 표현될 수 있다. 헤더는 박스의 유형 및 크기에 대한 정보를 제공할 수 있다.
ISOBMFF에 따르면, 파일은 별도의 박스들에 인클로징될 수 있는 미디어 데이터 및 메타데이터를 포함할 수 있다. 일 예시적인 실시예에서, 미디어 데이터는 미디어 데이터(mdat) 박스에 제공될 수 있고 영화(moov) 박스(즉, MovieBox)가 메타데이터를 인클로징하는데 사용될 수 있다. 일부 경우들에서, 파일이 동작 가능하도록 mdat 및 moov 박스 둘 모두가 있어야 한다. 영화(moov) 박스는 하나 이상의 트랙을 포함할 수 있고, 각 트랙은 하나의 해당 트랙(트랙) 박스 내에 상주할 수 있다. 각 트랙은 트랙 유형을 지정하는 4자리 코드로 식별되는 핸들러와 연관된다. 비디오, 오디오 및 이미지 시퀀스 트랙은 집합적으로 미디어 트랙이라고 할 수 있고 이들은 기본 미디어 스트림을 포함한다. 다른 트랙 유형은 힌트 트랙 및 시간 지정된 메타데이터 트랙을 포함한다. 트랙은 오디오 또는 비디오 프레임과 같은 샘플을 포함한다. 미디어 트랙은 미디어 압축 포맷(및 ISOBMFF에 대한 캡슐화)에 따라 포맷된 샘플(미디어 샘플이라고도 함)을 지칭한다. 힌트 트랙은 힌트 샘플을 지칭하고, 표시된 통신 프로토콜을 통한 전송을 위해 패킷을 구성하기 위한 쿡북 명령어를 포함한다. 쿡북 명령어는 패킷 헤더 구성에 대한 지침을 포함할 수 있고 패킷 페이로드 구성을 포함할 수 있다. 패킷 페이로드 구성에서 다른 트랙이나 아이템에 상주하는 데이터가 참조될 수도 있다. 이와 같이, 예를 들어, 다른 트랙 또는 아이템에 상주하는 데이터는 특정 트랙 또는 아이템의 어느 조각이 패킷 구성 프로세스 동안 패킷 내로 복사되도록 지시되는지에 대한 참조에 의해 표시될 수 있다. 시간 지정된 메타데이터 트랙은 참조된 미디어 및/또는 힌트 샘플을 설명하는 샘플을 지칭할 수 있다. 하나의 미디어 유형의 표현을 위해, 하나의 미디어 트랙이 선택될 수 있다.
'trak' 박스는 샘플 테이블(Sample Table) 박스를 포함한다. 샘플 테이블 박스는, 예를 들어, 트랙 내 미디어 샘플의 모든 시간 및 데이터 인덱싱을 포함한다. 샘플 테이블 박스는 샘플 설명 박스를 포함해야 한다. 샘플 설명 박스는 박스에 포함된 샘플 엔트리의 수를 지정하는 엔트리 카운트 필드를 포함한다. 샘플 설명 박스는 최소한 하나의 샘플 엔트리를 포함하도록 요구된다. 샘플 엔트리 포맷은 트랙의 핸들러 유형에 따라 다르다. 샘플 엔트리는 사용된 코딩 유형 및 해당 코딩에 필요한 초기화 정보에 대한 자세한 정보를 제공한다.
영화 프래그먼트 특징은 영화 박스에 상주할 수도 있는 메타데이터를 복수의 조각으로 분할하는 것을 가능하게 할 수 있다. 각 조각은 트랙의 특정 기간에 대응할 수 있다. 다시 말해, 영화 프래그먼트 특징은 파일 메타데이터 및 미디어 데이터를 인터리빙하는 것을 가능하게 할 수 있다. 결과적으로, 영화 박스의 크기가 제한되고 전술된 유스 케이스(use cases)가 실현될 수 있다.
일부 예들에서, 영화 프래그먼트 대한 미디어 샘플은 mdat 박스에 상주할 수 있다. 그러나, 영화 프래그먼트의 메타데이터에 대해 moof 박스가 제공될 수도 있다. moof 박스는 이전에 moov 박스에 있던 특정 재생 기간 동안의 정보를 포함할 수 있다. moov 박스는 여전히 그 자체로 유효한 영화를 나타낼 수 있지만, 또한 영화 프래그먼트가 동일한 파일에서 이어질 것일지 나타내는 mvex 박스를 포함할 수 있다. 영화 프래그먼트는 그 시간에 moov 박스와 연관된 프레젠테이션을 확장할 수 있다.
영화 프래그먼트 내에 트랙 당 0부터 복수까지 어딘가를 포함하는 트랙 프래그먼트 세트가 있을 수 있다. 트랙 프래그먼트는 차례로 0부터 복수의 트랙 런까지어딘가를 포함할 수 있고, 각각의 문서는 그 트랙에 대한 샘플들의 연속적인 런(따라서 청크와 유사하다)이다. 이러한 구조 내에서 많은 필드는 선택적이고 디폴트로 될 수 있다. moof 박스에 포함될 수 있는 메타데이터는 moov 박스에 포함될 수 있는 메타데이터의 서브세트로 제한될 수 있고 경우에 따라서는 상이하게 코딩될 수 있다. moof 박스에 포함될 수 있는 박스와 관련된 세부사항은 ISOBMFF 사양서에서 찾을 수 있다. 독립형 영화 프래그먼트는 파일 순서대로 연속적인 moof 박스와 mdat 박스로 구성되는 것으로 정의될 수 있고 여기서 mdat 박스는 영화 프래그먼트의 샘플들을 포함하고(moof 박스가 메타데이터를 제공함) 임의의 다른 영화 프래그먼트(즉, 다른 moof 박스)의 샘플들을 포함하지 않는다.
ISOBMFF 및 그 파생물, 예컨대, NAL 단위 구조화 비디오(ISO/IEC 14496-15)의 파일 포맷에서의 샘플 그룹화는 그룹화 기준에 따라 하나의 샘플 그룹의 멤버가 될 트랙 내의 각 샘플의 할당으로서 정의될 수 있다. 샘플 그룹화에서의 샘플 그룹은 인접한 샘플로 제한되지 않으며 인접하지 않은 샘플을 포함할 수도 있다. 트랙내의 샘플에 대해 둘 이상의 샘플 그룹이 있을 수 있으므로 각 샘플 그룹화는 그룹화 유형을 나타내는 유형 필드를 가질 수 있다. 샘플 그룹화는 두 개의 연결된 데이터 구조로 표현될 수 있다: (1) SampleToGroup 박스 (sbgp 박스)는 샘플 그룹에 대한 샘플 할당을 나타냄, 및 (2) SampleGroupDescription 박스 (sgpd 박스)는 그룹의 속성을 설명하는 각 샘플 그룹에 대한 샘플 그룹 엔트리를 포함한다. 상이한 그룹화 기준에 기초하여 SampleToGroup 및 SampleGroupDescription 박스의 복수의 인스턴스가 있을 수 있다. 그룹화 유형을 나타내는 데 사용되는 유형 필드로 구별할 수 있다. 'sbgp' 및 'sgpd' 박스는 grouping_type의 값, 및 박스의 일부 버전에서는 또한 grouping_type_parameter의 값을 사용하여 링크될 수 있다. 'sbgp' 박스는 특정 샘플이 속한 샘플 그룹 설명 엔트리의 인덱스를 나타낸다.
Matroska 파일 포맷은 하나의 파일에 비디오, 오디오, 화상 또는 자막 트랙 중 임의의 것을 저장할 수 있다(이에 국한되지 않음). Matroska 파일 확장자에는 비디오용(자막 및 오디오 포함) .mkv, 입체 비디오용 .mk3d, 오디오 전용 파일용 .mka 및 자막 전용 .mks가 포함된다. Matroska는 WebM과 같은 파생된 파일 포맷의 기본 포맷으로 사용될 수 있다.
Matroska는 EBML(Extensible Binary Meta Language)을 기본으로 사용한다. EBML은 XML의 원리에 영감을 받은 바이너리 및 옥텟(바이트) 정렬 포맷을 지정한다. EBML 그 자체는 바이너리 마크업 기법에 대한 일반적인 설명이다. Matroska 파일은 EBML "문서"를 구성하는 요소로 구성된다. 요소는 요소 ID, 요소 크기에 대한 디스크립터 및 이진 데이터 자체를 포함한다. 요소는 중첩될 수 있다.
Matroska의 세그먼트 요소는 다른 최상위(레벨 1) 요소의 컨테이너이다. Matroska 파일은 하나의 세그먼트를 포함할 수 있다(그러나 이에 국한되지 않음). Matroska 파일의 멀티미디어 데이터는 클러스터(또는 클러스터 요소)로 구성되며, 각 클러스터는 일반적으로 몇 초의 멀티미디어 데이터를 포함한다. 클러스터는 블록그룹(BlockGroup) 요소로 구성되며 블록그룹 요소는 블록 요소들로 구성된다. 큐(Cue) 요소는 랜덤 액세스 또는 탐색을 보조할 수 있는 메타데이터를 포함하고, 파일 포인터 또는 탐색 포인트에 대한 각각의 타임스탬프를 포함할 수 있다.
비디오 코덱은 입력 비디오를 저장/전송에 적합한 압축된 표현으로 변환하는 인코더 및 압축된 비디오 표현을 다시 볼 수 있는 형태로 압축해제할 수 있는 디코더로 구성된다. 비디오 인코더 및/또는 비디오 디코더는 또한 서로 분리될 수 있으며, 즉 코덱을 형성할 필요가 없다. 일반적으로 인코더는 더 압축된 형식(즉, 낮은 비트레이트)으로 비디오를 나타내기 위해 원본 비디오 시퀀스의 일부 정보를 폐기한다. 비디오 인코더는 후속하여 정의되는 바와 같이 이미지 시퀀스를 인코딩하는데 사용될 수 있고, 비디오 디코더는 코딩된 이미지 시퀀스를 디코딩하는데 사용될 수 있다. 비디오 인코더나 이미지 인코더의 인트라 코딩 부분은 이미지를 인코딩하는데 사용될 수 있고, 비디오 디코더 또는 비디오 디코더의 인터 디코딩 부분은 코딩된 이미지를 디코딩하는데 사용될 수 있다.
일반적인 하이브리드 비디오 인코더, 예를 들어, ITU-T H.263 및 H.264의 많은 인코더 구현은, 비디오 정보를 두 단계로 인코딩한다. 먼저, 특정 화상 영역(또는 "블록")에서의 픽셀 값은, 예를 들어, 움직임 보상 수단(코딩되는 블록에 인접하여 대응하는 이전에 코딩된 비디오 프레임 중 하나에서 영역을 발견 및 표시)에 의해 또는 공간적 수단(특정 방식으로 코딩될 블록 주위의 픽셀 값을 사용)에 의해 예측된다. 두 번째로, 예측 오차, 즉 예측된 픽셀 블록과 원래 픽셀 블록 사이의 차이가 코딩된다. 이는 일반적으로 지정된 변환(예를 들어, 이산 코사인 변환(Discrete Cosine Transform: DCT) 또는 이의 변형)을 사용하여 픽셀 값의 차이를 변환하고, 계수를 양자화하고 양자화된 계수를 엔트로피 코딩함으로써 수행된다. 양자화 프로세스의 충실도(fidelity)를 변화시킴으로써, 인코더는 픽셀 표현(화질)의 정확성과 결과적으로 코딩된 비디오 표현의 크기(파일 크기 또는 전송 비트레이트) 사이의 균형을 제어할 수 있다.
시간 예측, 움직임 보상, 또는 움직임 보상 예측이라고도 하는 인터 예측은 시간 중복을 줄인다. 인터 예측에서, 예측 소스는 이전에 디코딩된 화상이다. 인트라 예측은 동일한 화상 내의 인접 픽셀들이 상관될 가능성이 있다는 사실을 이용한다. 인트라 예측은 공간 또는 변환 도메인에서 수행될 수 있는데, 즉 샘플 값 또는 변환 계수가 예측될 수 있다. 인트라 예측은 전형적으로 인터 예측이 적용되지 않는 인트라 코딩에서 활용된다.
코딩 절차의 한 결과는 움직임 벡터 및 양자화된 변환 계수와 같은 코딩 파라미터 세트이다. 많은 파라미터들은 공간적 또는 시간적으로 이웃하는 파라미터로부터 먼저 예측되는 경우에 더 효율적으로 엔트로피 코딩될 수 있다. 예를 들어, 움직임 벡터는 공간적으로 인접한 움직임 벡터로부터 예측될 수 있고, 움직임 벡터 예측기에 대한 차분만 코딩될 수 있다. 코딩 파라미터들 및 인트라 예측의 예측은 집합적으로 인픽쳐(in-picture) 예측으로 지칭될 수 있다.
도 4는 본 발명의 실시예들을 사용하기에 적합한 비디오 인코더의 블록도를 도시한다. 도 4는 2개의 계층에 대한 인코더를 나타내지만, 제시된 인코더는 단지 하나의 계층만을 인코딩하도록 단순히 간략화되거나 3개 이상의 계층을 인코딩하도록 확장될 수 있음을 이해할 것이다. 도 4는 기반 계층을 위한 제 1 인코더부(500) 및 확장 계층을 위한 제 2 인코더부(502)를 포함하는 비디오 인코더의 일 실시예를 도시한다. 제 1 인코더부(500) 및 제 2 인코더부(502) 각각은 입력 화상을 인코딩하기 위한 유사한 요소를 포함할 수 있다. 인코더부(500, 502)는 픽셀 예측기(302, 402), 예측 오류 인코더(303, 403) 및 예측 오류 디코더(304, 404)를 포함할 수 있다. 도 4는 또한 픽셀 예측기(302, 402)의 일 실시예를 인터 예측기(306, 406), 모드 선택기(310, 410), 필터(316, 416), 및 기준 프레임 메모리(318, 418)를 포함하는 것으로서 도시한다. 제 1 인코더부(500)의 픽셀 예측기(302)는 (이미지와 움직임 보상된 기준 프레임(318) 사이의 차이를 결정하는) 인터 예측기(306) 및 (현재 프레임 또는 화상의 이미 처리된 부분에만 기초하여 이미지 블록에 대한 예측을 결정하는) 인트라 예측기 모두에서 인코딩될 비디오 스트림의 300개의 기반 계층 이미지를 수신한다. 인터 예측기 및 인트라 예측기의 출력은 모드 선택기(310)로 전달된다. 인트라 예측기(308)는 둘 이상의 인트라 예측 모드를 가질 수 있다. 따라서, 각각의 모드는 인트라 예측을 수행하고 예측된 신호를 모드 선택기(310)에 제공할 수 있다. 모드 선택기(310)는 또한 기반 계층 화상(300)의 사본을 수신한다. 따라서, 제 2 인코더부(502)의 픽셀 예측기(402)는 (이미지와 움직임 보상된 기준 프레임(418) 사이의 차이를 결정하는) 인터 예측기(406) 및 (현재 프레임 또는 화상의 이미 처리된 부분들에만 기초하여 이미지 블록에 대한 예측을 결정하는) 인트라 예측기(406) 둘 모두에서 인코딩될 비디오 스트림의 400개의 향상 계층 이미지를 수신한다. 인터 예측기 및 인트라 예측기 둘 모두의 출력은 모드 선택기(410)에 전달된다. 인트라 예측기(408)는 둘 이상의 인트라 예측 모드를 가질 수 있다. 따라서, 각 모드는 인트라 예측을 수행하고 예측된 신호를 모드 선택기(410)에 제공할 수 있다. 모드 선택기(410)는 또한 향상 계층 화상(400)의 사본을 수신한다.
현재 블록을 인코딩하기 위해 어떤 인코딩 모드가 선택되는지에 따라, 인터 예측기(306, 406)의 출력 또는 선택적 인트라 예측기 모드 중 하나의 출력 또는 모드 선택기 내의 서피스 인코더(surface encoder)의 출력이 모드 선택기(310, 410)의 출력에 전달된다. 모드 선택기의 출력은 제 1 합산 장치(321, 421)에 전달된다. 제 1 합산 장치는 기반 계층 화상(300)/향상 계층 화상(400)으로부터 픽셀 예측기(302, 402)의 출력을 감산하여 제 1 예측 오차 인코더(303, 403)에 입력되는 제 1 예측 오차 신호(320, 420)를 생성한다.
픽셀 예측기(302, 402)는 또한 예비 복원기(339,439)로부터 예측 오차 디코더(304, 404)의 이미지 블록(312, 412) 및 출력(338, 438)의 예측 표현의 조합을 수신한다. 예비 복원된 이미지(314, 414)는 인트라 예측기(308, 408) 및 필터(316, 416)로 전달될 수 있다. 예비 표현을 수신하는 필터(316, 416)는 예비 표현을 필터링하고, 참조 프레임 메모리(318, 418)에 저장될 수 있는 최종 복원된 이미지(340, 440)를 출력할 수 있다. 기준 프레임 메모리(318)는 인터 예측기(306)에 연결되어 미래의 기반 계층 화상(300)이 인터 예측 동작 시 비교되는 기준 이미지로 사용될 수 있다. 일부 실시예들에 따라, 기반 계층이 선택되고 향상 계층의 계층 간 샘플 예측 및/또는 계층 간 움직임 정보 예측을 위한 소스로 표시됨에 따라, 기준 프레임 메모리(318)는 또한 인터 예측기(400)에 연결되어 미래 향상 계층 화상(400)이 인터 예측 동작 시 비교되는 기준 이미지로 사용될 수 있다. 더욱이, 기준 프레임 메모리(418)는 인터 예측기(406)에 연결되어 인터 예측 동작 시 미래의 향상 계층 화상(400)을 비교하기 위한 기준 이미지로 사용될 수 있다.
제 1 인코더부(500)의 필터(316)로부터의 필터링 파라미터는 일부 실시예들에 따라 기본 레이어가 선택되고 향상 레이어의 필터링 파라미터를 예측하기 위한 소스로 표시됨에 따라 제 2 인코더 섹션(502)에 제공될 수 있다.
예측 오류 인코더(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)의 출력은, 예를 들어, 멀티플렉서(508)에 의해, 비트스트림에 삽입될 수 있다.
H.264/AVC 표준은 국제 전기통신 연합(International Telecommunication Union: ITU-T)의 전기 통신 표준화 부문의 비디오 코딩 전문가 그룹(Video Coding Experts Group: VCEG)과 ISO(International Organization for Standardization)/IEC(International Electrotechnical Commission)의 동화상 전문가 그룹(Moving Picture Experts Group: MPEG)의 조인트 비디오 팀(Joint Video Team: JVT)에 의해 개발되었다. H.264/AVC 표준은 양쪽 부모 표준화 기관에 의해 공개되었고, MPEG-4 Part 10 AVC(Advanced Video Coding)로도 알려진 ISO/IEC 국제 표준 14496-10 및 ITU-T 권고 H.264과 관련된다. H.264/AVC 표준은 사양에 새로운 확장 또는 특징을 통합하는 여러 가지 버전이 있다. 이러한 확장은 스케일가능 비디오 코딩(Scalable Video Coding: SVC) 및 다중 시점 비디오 코딩(Multiview Video Coding: MVC)을 포함한다.
고효율 비디오 코딩(HEVC라고도 알려진 H.265/HEVC) 표준의 버전 1은 VCEG 및 MPEG의 JCT-VC(Joint Collaborative Team-Video Coding)에 의해 개발되었다. 이 표준은 양쪽 부모 표준화 기관에 의해 발표되었고 MPEG-H Part 2 고효율 비디오 코딩(HEVC)이라고도 하는 ITU-T 권고 H.265 및 ISO/IEC 국제 표준 23008-2와 관련된다. H.265/HEVC의 버전 2는 각각 SHVC, MV-HEVC 및 REXT로 각각 축약될 수 있는 스케일가능, 다중 시점, 및 충실도 범위 확장이 포함된다. H.265/HEVC의 버전 2는 ITU-T 권고 H.265(10/2014) 및 ISO/IEC 23008-2의 제 2 판으로 발표되었다. 현재 3D-HEVC 및 SCC로 각각 축약될 수 있는 3차원 및 스크린 콘텐츠 코딩 확장을 포함하여 H.265/HEVC에 대한 추가 확장을 개발하기 위해 현재 진행 중인 표준화 프로젝트가 있다.
SHVC, MV-HEVC 및 3D-HEVC는 HEVC 표준 버전 2의 부록 F에 명시된 공통 기반 사양을 사용한다. 이러한 공통 기반은, 예를 들어, 계층 간 의존성과 같은 비트스트림의 계층들의 특성, 뿐만 아니라 다중 계층 비트스트림에 대한 계층간 기준 화상 및 화상 오더 카운트(picture order count) 도출을 포함하는 기준 화상 리스트 구성과 같은 디코딩 프로세스 중 일부를 명시하는 고수준 신택스 및 시맨틱(semantics)을 포함한다. 부록 F는 또한 HEVC의 잠재적 후속 다중 계층 확장에 사용될 수 있다. 비록 비디오 인코더, 비디오 디코더, 인코딩 방법, 디코딩 방법, 비트스트림 구조 및/또는 실시예가 SHVC 및/또는 MV-HEVC와 같은 특정 확장과 관련하여 다음에 설명될 수 있지만, 이들은 일반적으로 HEVC의 임의의 다중 계층 확장에 적용 가능하고, 더욱 일반적으로 임의의 다중 계층 비디오 코딩 스킴에 적용 가능하다는 것이 이해되어야 한다.
H.264/AVC 및 HEVC의 몇몇 키 정의, 비트스트림 및 코딩 구조, 및 개념은 비디오 인코더, 디코더, 인코딩 방법, 디코딩 방법 및 비트스트림 구조의 일례로서 본 섹션에서 설명되며, 여기서 실시예들이 구현될 수 있다. 중요한 정의, 비트스트림 및 코딩 구조, H.264/AVC의 개념 중 일부는 HEVC와 동일하므로 아래에서 함께 설명된다. 본 발명의 양태들은 H.264/AVC 또는 HEVC에 한정되지 않고, 오히려 본 발명이 부분적으로 또는 완전히 실현될 수 있는 하나의 가능한 기초에 대한 설명이 제공된다.
이전의 많은 비디오 코딩 표준과 유사하게, 오류 없는 비트스트림에 대한 비트스트림 신택스 및 시맨틱뿐만 아니라 디코딩 프로세스는 H.264/AVC 및 HEVC에 명시되어 있다. 인코딩 프로세스는 명시되지 않지만 인코더는 적합(conforming) 비트스트림을 생성해야 한다. 비트스트림 및 디코더 적합성은 가상 참조 디코더(Hypothetical Reference Decoder: HRD)를 사용하여 검증될 수 있다. 이 표준은 송신 오류 및 손실에 대처하는 데 도움이 되는 코딩 도구가 포함되어 있지만 인코딩에 도구를 사용하는 것은 선택 사항이며 오류가 있는 비트스트림에 대해서는 디코딩 프로세스가 지정되지 않는다.
예시적인 실시예들의 설명뿐만 아니라 기존 표준들의 설명에서, 신택스 요소는 비트스트림에 표현된 데이터의 요소로서 정의될 수 있다. 신택스 구조는 지정된 순서로 비트스트림에 함께 제시되는 0개 이상의 신택스 요소로 정의될 수 있다. 예시적인 실시예의 설명뿐만 아니라 기존 표준의 설명에서, "외부 수단에 의한" 또는 "외부 수단에 의한"이라는 문구가 사용될 수 있다. 예를 들어, 디코딩 프로세스에서 사용되는 신택스 구조 또는 변수의 값과 같은 엔티티는 디코딩 프로세스에 대한 "외부 수단에 의해" 제공될 수 있다. "외부 수단에 의한"이라는 문구는 엔티티가 인코더에 의해 생성된 비트스트림에 포함되지 않고, 예를 들어, 제어 프로토콜을 사용하여 비트스트림에서 외부로 전달되는 것을 나타낼 수 있다. 대안적으로 또는 추가적으로, 엔티티가 인코더에 의해 생성되지는 않지만, 예를 들어, 플레이어 또는 디코딩 제어 로직 또는 디코더를 사용하는 것과 유사한 것으로 생성될 수 있다는 것을 의미할 수 있다. 디코더는 가변 값과 같은 외부 수단을 입력하기 위한 인터페이스를 가질 수 있다.
H.264/AVC 또는 HEVC 인코더에 대한 입력 및 H.264/AVC 또는 HEVC 디코더의 출력에 대한 기본 단위는 각각 화상이다. 인코더에 대한 입력으로서 제공된 화상은 또한 소스 화상으로 지칭될 수 있고, 디코더에 의해 디코딩된 화상은 디코딩된 화상으로 지칭될 수 있다.
소스 화상 및 디코딩된 화상은 각각 다음의 샘플 배열 집합 중 하나와 같은 하나 이상의 샘플 배열로 구성된다.
- 루마(Y)만 (단색).
- 루마 및 2개의 크로마(YCbCr 또는 YCgCo).
- 녹색, 파랑 및 빨강(GBR, RGB라고도 함).
- 다른 지정되지 않은 단색 또는 3자극값(tri-stimulus) 컬러 샘플링을 나타내는 배열(예를 들어, YZX, XYZ라고도 함).
이하에서, 이들 배열은 루마(또는 L 또는 Y) 및 크로마로 지칭될 수 있고, 여기서 2개의 크로마 배열은 사용 중인 실제 컬러 표현 방법에 관계없이 Cb 및 Cr로 지칭될 수 있다. 사용 중인 실제 컬러 표현 방법은, 예를 들어, H.264/AVC 및/또는 HEVC의 VUI(Video Usability Information) 신택스를 사용하여, 예를 들어, 코딩된 비트스트림으로 표시될 수 있다. 컴포넌트는 3개의 샘플 배열(루나 및 2개의 크로마) 중 하나 또는 배열 또는 단색 포맷이 화상을 구성하는 배열의 단일 샘플로부터 배열 또는 단일 샘플로 정의될 수 있다.
H.264/AVC 및 HEVC에서 화상은 프레임 또는 필드일 수 있다. 프레임은 루마 샘플들의 매트릭스 및 가능하게는 대응하는 크로마 샘플들을 포함한다. 필드는 프레임의 대체 샘플 행 세트이고 소스 신호가 인터레이스될 때 인코더 입력으로 사용될 수 있다. 크로마 샘플 배열이 없거나 (따라서 단색 샘플링이 사용 중일 수 있음) 또는 크로마 샘플 배열이 루마 샘플 배열과 비교할 때 서브 샘플링될 수 있다. 크로마 포맷은 다음과 같이 요약될 수 있다.
- 단색 샘플링에서 명목상 루마 배열로 고려될 수 있는 단 하나의 샘플 배열이 있다.
- 4:2:0 샘플링에서, 2개의 크로마 배열의 각각은 루마 배열의 높이의 절반이고 너비의 절반이다.
- 4:2:2 샘플링에서, 2개의 크로마 배열의 각각은 루마 어레이의 동일한 높이 및 절반의 폭을 갖는다.
- 4:4:4 샘플링에서 별도의 컬러 평면이 사용되지 않을 때 두 크로마 배열의 각각은 루마 배열과 동일한 높이와 너비를 갖는다.
H.264/AVC 및 HEVC에서, 샘플 배열을 개별 컬러 평면으로서 비트스트림으로 코딩하고, 비트스트림으로부터 개별로 코딩된 컬러 화상을 각각 디코딩하는 것이 가능하다. 개별 컬러 화상이 사용 중일 때, 각각의 컬러 화상은 단색 샘플링을 사용하여 (인코더 및/또는 디코더에 의해) 개별로 프로세싱된다.
분할(partitioning)은 세트의 각 요소가 정확히 서브세트 중 하나에 있도록 세트를 서브세트로 나누는 것으로 정의될 수 있다.
H.264/AVC에서, 매크로블록은 루마 샘플의 16x16 블록과 대응하는 크로마 샘플 블록이다. 예를 들어, 4:2:0 샘플링 패턴에서, 매크로블록은 각 크로마 컴포넌트마다 하나의 8x8 블록의 크로마 샘플을 포함한다. H.264/AVC에서, 화상은 하나 이상의 슬라이스 그룹으로 분할되고, 슬라이스 그룹은 하나 이상의 슬라이스를 포함한다. H.264/AVC에서, 슬라이스는 특정 슬라이스 그룹 내의 래스터 스캔(raster scan)으로 연속적으로 정렬된 정수 개의 매크로 블록으로 구성된다.
HEVC 인코딩 및/또는 디코딩의 동작을 설명할 때, 다음 용어가 사용될 수도 있다. 코딩 블록은 코딩 트리 블록을 코딩 블록들로 나누는 것이 분할이 되도록 N의 일부 값에 대한 샘플들의 N×N 블록으로서 정의될 수 있다. 코딩 트리 블록(CTB)은 컴포넌트를 코딩 트리 블록들로 나누는 것이 분할이 되도록 일부 N 값에 대한 샘플의 N×N 블록으로 정의될 수 있다. 코딩 트리 단위(CTU)는 루마 샘플들의 코딩 트리 블록, 3개의 샘플 배열을 갖는 화상의 크로마 샘플들의 2개의 대응하는 코딩 트리 블록, 또는 단색 화상 또는 샘플을 코드화하는 데 사용되는 세 가지 별도의 컬러 평면과 신택스 구조를 사용하여 코딩되는 화상의 샘플들의 코딩 트리 블록으로서 정의될 수 있다. 코딩 단위(CU)는 루마 샘플들의 코딩 블록, 3개의 샘플배열을 갖는 화상의 크로마 샘플들의 2개의 대응하는 코딩 블록, 또는 샘플을 코드화하는 데 사용되는 3개의 개별 컬러 평면 및 신택스 구조를 사용하여 코딩된 화상또는 단색 화상의 샘플들의 코딩 블록으로서 정의된다.
HEVC(High Efficiency Video Coding) 코덱과 같은 일부 비디오 코덱에서, 비디오 화상은 화상 영역을 다루는 코딩 단위(CU)로 나눠진다. CU는 CU 내의 샘플들에 대한 예측 프로세스를 정의하는 하나 이상의 예측 단위(PU) 및 상기 CU 내의 샘플들에 대한 예측 오차 코딩 프로세스를 정의하는 하나 이상의 변환 단위(TU)로 구성된다. 전형적으로, CU는 사전 정의된 가능한 CU 크기 집합으로부터 선택 가능한 크기를 갖는 샘플들의 사각형 블록으로 구성된다. 최대 허용 크기를 갖는 CU는 최대 코딩 단위(LCU) 또는 코딩 트리 단위(CTU)로 명명될 수 있고 비디오 화상은 비 중첩 LCU로 분할된다. LCU는, 예를 들어, LCU와 결과 CU를 재귀적으로 분할함으로써(splitting), 더 작은 CU들의 조합으로 더 분할될 수 있다. 각각의 결과로 생성 된 CU는 일반적으로 적어도 하나의 PU 및 이와 연관된 적어도 하나의 TU를 갖는다. 각각의 PU 및 TU는 예측 및 예측 오류 코딩 프로세스의 세분성(granularity)을 각각 증가시키기 위해 더 작은 PU 및 TU로 더 분할될 수 있다. 각각의 PU는 어떤 종류의 예측이 해당 PU 내의 픽셀들에 적용될 것인지를 정의하는 것과 연관된 예측 정보(예를 들어, 인터 예측된 PU에 대한 움직임 벡터 정보 및 인트라 예측된 PU에 대한 인트라 예측 방향성 정보)를 갖는다.
각각의 TU는 TU 내의 샘플들(예를 들어, DCT 계수 정보를 포함함)에 대한 예측 오류 디코딩 프로세스를 설명하는 정보와 연관될 수 있다. 이는 전형적으로 예측 오류 코딩이 각 CU에 대해 적용되든지 적용되지 않든지 CU 레벨에서 시그널링된다. CU와 연관된 예측 오차 잔차가 없는 경우, CU에 대한 TU가 없다고 고려될 수 있다. 이미지를 CU로 나누고, CU를 PU와 TU로 나누는 것은 전형적으로 비트스트림에서 시그널링되어 디코더가 이러한 단위의 의도된 구조를 재생할 수 있게 한다.
HEVC에서 화상은 직사각형이고 정수 개의 LCU를 포함하는 타일로 분할될 수 있다. HEVC에서, 타일로의 분할은 하나 이상의 타일 열 및 하나 이상의 타일 행을 포함하는 타일 그리드를 형성한다. 코딩된 타일은 바이트 정렬되고, 이는 코딩된 타일의 끝에 바이트 정렬 비트를 추가함으로써 달성될 수 있다.
HEVC에서, 슬라이스는 하나의 독립적 슬라이스 세그먼트 및 동일한 액세스 유닛 내의 다음 독립적인 슬라이스 세그먼트(존재하는 경우)에 선행하는 모든 후속 종속 슬라이스 세그먼트(존재한다면)에 포함된 정수의 코딩 트리 단위로 정의된다. HEVC에서, 슬라이스 세그먼트는 타일 스캔에서 연속적으로 정렬되고 단일 NAL 단위에 포함된 코딩 트리 단위의 정수가 되도록 정의된다. 각 화상을 슬라이스 세그먼트로 나누는 것이 분할이다. HEVC에서, 독립적 슬라이스 세그먼트는 슬라이스 세그먼트 헤더의 신택스 요소의 값이 선행하는 슬라이스 세그먼트에 대한 값으로부터 추론되지 않는 슬라이스 세그먼트로 정의되고, 종속 슬라이스 세그먼트는 슬라이스 세그먼트 헤더의 일부 신택스 요소의 값이 디코딩 순서에서 선행하는 독립적 슬라이스 세그먼트에 대한 값들로부터 추론되는 슬라이스 세그먼트인 것으로 정의된다. HEVC에서, 슬라이스 헤더는 현재의 슬라이스 세그먼트 또는 현재의 종속 슬라이스 세그먼트에 선행하는 독립적 슬라이스 세그먼트인 독립적 슬라이스 세그먼트의 슬라이스 세그먼트 헤더로 정의되고, 슬라이스 세그먼트 헤더는 슬라이스 세그먼트에 표현된 제 1 또는 모든 코딩 트리 단위에 관한 데이터 요소를 포함하는 코딩된 슬라이스 세그먼트의 부분으로 정의된다. CU는, 타일이 사용되지 않는 경우, 타일 또는 화상 내의 LCU의 래스터 스캔 순서로 스캐닝된다. LCU 내에서 CU에는 특정 검색 순서를 갖는다.
HEVC에서, 타일은 정수의 코딩 트리 단위를 포함하고, 둘 이상의 슬라이스에 포함된 코딩 트리 단위로 구성될 수 있다. 마찬가지로, 슬라이스는 둘 이상의 타일에 포함된 코딩 트리 단위로 구성될 수 있다. HEVC에서, 슬라이스 내의 모든 코딩 트리 단위는 동일한 타일에 속하고/속하거나 타일 내의 모든 코딩 트리 단위는 동일한 슬라이스에 속한다. 더욱이, HEVC에서, 슬라이스 세그먼트 내의 모든 코딩 트리 단위는 동일한 타일에 속하고/속하거나 타일 내의 모든 코딩 트리 단위는 동일한 슬라이스 세그먼트에 속한다.
움직임 제약 타일 세트는 인코딩 시 인터 예측 프로세스가 제한되는 것으로써 움직임 제약 타일 세트 외부의 어떠한 샘플 값도, 움직임 제약 타일 세트 외부의 하나 이상의 샘플 값을 사용하여 도출되는 부분적 샘플 위치(fractional sample poistion)에서 어떠한 샘플 값도 움직임 제약 타일 세트 내의 임의의 샘플의 인터 예측에 사용되지 않는다.
달리 화상의 외부에 있는 위치가 화상의 대응하는 경계 샘플을 가리키도록 인터 예측에 사용된 샘플 위치는 포화된다는 점을 유념한다. 따라서, 타일 경계가 또한 화상 경계인 경우, 움직임 벡터는 그 경계를 효율적으로 통과할 수 있거나, 움직임 벡터는 샘플 위치가 경계 상에 포화되기 때문에 그 경계 외부의 위치를 참조하는 부분적인 샘플 보간을 효율적으로 야기할 수 있다.
HEVC의 시간적 움직임 제약 타일 세트 SEI 메시지는 비트스트림에서 움직임 제약 타일 세트의 존재를 나타내는데 사용될 수 있다.
계층 간 제약 타일 세트는 계층 간 예측 프로세스가 인코딩 시 제약되는 것으로써 각각의 연관된 기준 타일 세트의 외부에 어떠한 샘플 값도, 그리고 각각의 연관된 기준 타일 세트 외부의 하나 이상의 샘플 값을 사용하여 도출된 부분적 샘플 위치에서 어떠한 샘플 값도 계층 간 제약된 타일 세트 내의 임의의 샘플의 계층 간 예측을 위해 사용되지 않는다.
HEVC의 계층 간 제약 타일 세트 SEI 메시지는 비트스트림 내의 계층 간 제약 타일 세트의 존재를 나타내는데 사용될 수 있다.
디코더는 (인코더에 의해 생성되고 압축된 표현에 저장된 움직임 또는 공간 정보를 사용하여) 픽셀 블록의 예측된 표현을 형성하기 위해 인코더와 유사한 예측 수단을 적용하고 예측 오류 디코딩(공간적 픽셀 도메인에서 양자화된 예측 오차 신호를 복원하는 예측 오차 코딩의 역 동작)함으로써 출력 비디오를 재구성한다. 예측 및 예측 오차 디코딩 수단을 적용한 후에, 디코더는 예측 및 예측 오차 신호(픽셀 값)를 합산하여 출력 비디오 프레임을 형성한다. 또한, 디코더(및 인코더)는 또한 출력 비디오의 품질을 개선하기 위해 출력 비디오를 통과시키기 전에 및/또는 이를 비디오 시퀀스의 다가오는 프레임에 대한 예측 기준으로서 저장하기 전에 추가의 필터링 수단을 적용할 수 있다.
필터링은, 예를 들어, 디블로킹, 샘플 적응적 오프셋(sample adaptive offset: SAO), 및/또는 적응적 루프 필터링(adaptive loop filtering: ALF) 중 하나 이상을 포함할 수 있다. H.264/AVC는 디블록킹을 포함하는 반면, HEVC는 디블록킹 및 SAO 둘 모두를 포함한다.
전형적인 비디오 코덱에서, 움직임 정보는 예측 단위와 같은 각 움직임 보상된 이미지 블록과 연관된 움직임 벡터로 표시된다. 이들 움직임 벡터의 각각은 (인코더 측에서) 코딩되거나 (디코더 측에서) 디코딩될 화상 내 이미지 블록 및 이전에 코딩되거나 디코딩된 화상 중 하나 내의 예측 소스 블록의 이미지 블록의 변위를 나타낸다. 효율적으로 움직임 벡터를 제시하기 위해, 이들은 전형적으로 블록 특정 예측 움직임 벡터에 대해 차동으로 코딩된다. 통상적인 비디오 코덱에서, 예측된 움직임 벡터는 미리 정의된 방식으로, 예를 들어, 인접 블록의 인코딩되거나 디코딩된 움직임 벡터들의 중앙값을 계산함으로써 생성된다. 움직임 벡터 예측을 생성하는 또 다른 방법은 시간 기준 화상의 인접 블록 및/또는 동일 위치 블록으로부터 후보 예측 목록을 생성하고 선택된 후보를 움직임 벡터 예측기로서 시그널링하는 것이다. 움직임 벡터 값을 예측하는 것 이외에, 어느 참조 화상(들)이 움직임 보상된 예측에 사용되는지 예측할 수 있고, 이 예측 정보는, 예를 들어, 이전에 코딩/디코딩된 화상의 기준 인덱스에 의해 표현될 수 있다. 기준 인덱스는 전형적으로 시간적 기준 화상에서 인접 블록 및/또는 동일 위치 블록으로부터 예측된다. 더욱이, 전형적인 고효율 비디오 코덱은 종종 병합하기/병합 모드로 불리는 추가 움직임 정보 코딩/디코딩 메커니즘을 이용하는데, 여기서 움직임 벡터 및 각각의 이용 가능한 기준 화상 리스트에 대한 대응하는 기준 화상 인덱스를 포함하는 모든 움직임 필드 정보가 수정(modification)/보정(correction) 없이 예측되고 사용된다. 유사하게, 움직임 필드 정보를 예측하는 것은 시간 기준 화상 내의 인접 블록 및/또는 동일 위치 블록의 움직임 필드 정보를 사용하여 수행되고, 사용된 움직임 필드 정보는 이용가능한 인접/동일 위치 블록들의 움직임 필드 정보로 채워진 움직임 필드 후보 리스트의 리스트 사이에서 시그널링된다.
전형적인 비디오 코덱은 블록이 (디)코딩되는데 단일 예측 불록이 사용되는 단방향 예측 및 두 개의 예측 블록이 조합되어 블록이 (디)코딩되기 위한 예측을 형성는 양방향 예측을 사용할 수 있게 한다. 일부 비디오 코덱은 예측 블록의 샘플 값이 잔차 정보를 추가하기 전에 가중화되는 가중 예측을 가능하게 한다. 예를 들어, 승산 가중 계수 및 가산 오프셋이 적용될 수 있다. 일부 비디오 코덱에 의해 가능한 명시적인 가중 예측에서, 가중 계수 및 오프셋은, 예를 들어, 각각의 허용 가능한 기준 화상 인덱스에 대한 슬라이스 헤더에 코딩될 수 있다. 일부 비디오 코덱에 의해 가능한 암시적 가중 예측에서, 가중 계수 및/또는 오프셋은 코딩되지 않지만, 예를 들어, 기준 화상의 상대적 화상 순서 카운트(POC) 거리에 기초하여 도출된다.
전형적인 비디오 코덱에서, 움직임 보상 후의 예측 잔차는 먼저 (DCT와 같은) 변환 커널을 사용하여 변환되고 그 이후 코딩된다. 그 이유는 잔차와 변환 사이에 상관관계가 종종 존재하기 때문에 많은 경우 이 상관관계를 줄이고 더 효율적인 코딩을 제공하도록 도울 수 있다.
전형적인 비디오 인코더는 라그랑지안 비용 함수를 이용하여 최적의 코딩 모드, 예를 들어, 원하는 매크로블록 모드 및 연관된 움직임 벡터를 찾는다. 이러한 종류의 비용 함수는 가중 계수 λ를 사용하여 손실 코딩 방법으로 인한 (정확하거나 추정된) 이미지 왜곡과 이미지 영역의 픽셀 값을 나타내는 데 요구되는 정보의 (정확하거나 추정된) 양을 함께 결부시킨다.
Figure pct00001
여기서 C는 최소화될 라그랑지안 비용이고, D는 모드 및 움직임 벡터를 고려한 이미지 왜곡(예를 들어, 평균 제곱 오차)이며, R은 디코더에서 이미지 블록을 재구성하는 데 요구되는 데이터를 나타내는 데 필요한 비트 수이다(후보 움직임 벡터를 나타내는 데이터량 포함).
비디오 코딩 표준 및 사양은 인코더들이 코딩된 화상을 코딩된 슬라이스들 또는 그와 유사한 것 및/또는 타일 또는 그와 유사한 것으로 분할하도록 허용할 수 있다. 화상 내 예측(in-picture prediction)은 일반적으로 슬라이스 경계와 타일 경계에 걸쳐 사용될 수 없다. 따라서, 슬라이스 및 타일은 코딩된 화상을 독립적으로 디코딩 가능한 조각으로 분할하는 방법으로 고려될 수 있다. H.264/AVC 및 HEVC에서, 슬라이스 경계에 걸쳐 화상 내 예측이 가능하지 않을 수 있고, HEVC에서 화상 내 예측은 타일 경계에 걸쳐 가능하지 않을 수 있다. 따라서, 슬라이스는 코딩된 화상을 독립적으로 디코딩 가능한 조각으로 분할하는 방법으로서 여겨질 수 있고, 따라서 슬라이스는 종종 전송을 위한 기본 단위로 고려되고 병렬화를 위한 기본 단위로 사용될 수도 있다. 타일은 인코딩 및/또는 디코딩에서 병렬화를 위한 기본 단위로 여겨질 수 있다. 많은 경우, 인코더는 슬라이스 경계 또는 타일 경계에 걸쳐(슬라이스 및 타일 경계에 대해 개별적으로 또는 공동으로) 어떤 유형의 화상 내 예측이 턴오프 되어 있는지를 비트스트림에 표시할 수 있고, 디코더 동작은 이 정보를, 예를 들어, 어떤 예측 소스가 이용 가능한지 결론을 내릴 때 고려한다. 예를 들어, 이웃 매크로블록 또는 CU가 다른 슬라이스에 상주하는 경우, 이웃 매크로블록 또는 CU로부터의 샘플은 인트라 예측에 이용할 수 있는 것으로 여겨진다.
H.264/AVC 또는 HEVC 인코더의 출력 및 H.264/AVC 또는 HEVC 디코더의 입력에 대한 기본 단위는 각각 네트워크 추상 계층(Network Abstraction Layer: NAL) 단위이다. 패킷 지향 네트워크를 통한 전송 또는 구조화된 파일로의 저장을 위해, NAL 단위는 패킷 또는 유사한 구조로 캡슐화될 수 있다. NAL 단위는 따라야 할 데이터 유형의 표시 및 시작 코드 에뮬레이션 방지 바이트와 함께 필요한 것으로서 배치된 RBSP 형태로 데이터를 포함하는 바이트를 포함하는 신택스 구조로 정의될 수 있다. 원시 바이트 시퀀스 페이로드(RBSP)는 NAL 단위로 캡슐화된 정수 바이트를 포함하는 신택스 구조로 정의될 수 있다. RBSP는 비어 있거나 RBSP 정지 비트 다음에 또는 0 또는 0 이상의 후속 비트 다음에 신택스 요소를 포함하는 데이터 비스 문자열 형식을 갖는다. NAL 단위는 헤더와 페이로드로 구성된다.
HEVC에서, 2바이트 NAL 단위 헤더가 모든 지정된 NAL 단위 유형에 사용된다. NAL 단위 헤더는 하나의 예비 비트, 6비트 NAL 단위 유형 표시, 시간적 레벨에 대한 3비트의 nuh_temporal_id_plusl 표시(1보다 크거나 같도록 요구될 수 있음) 및 6비트의 nuh_layer_id 신택스 요소를 포함한다. temporal_id_plusl 신택스 요소는 NAL 단위에 대한 임시 식별자로 간주될 수 있고, 제로 기반 TemporalId 변수는 TemporalId = temporal_id_plusl_1과 같이 도출될 수 있다. 0과 같은 TemporalId는 최저 시간적 레벨에 대응한다. temporal_id_plusl의 값은 2개의 NAL 단위 헤더 바이트를 포함하는 시작 코드 에뮬레이션을 피하기 위해 0이 아니어야 한다. 선택된 값보다 크거나 같은 TemporalId를 갖는 모든 VCL NAL 단위을 제외하고 다른 모든 VCL NAL 단위를 포함함으로써 생성된 비트스트림은 여전히 적합하다. 결과적으로, TID와 같은 TemporalId를 갖는 화상은 TID보다 큰 TemporalId를 갖는 임의의 화상을 인터 예측 참조로서 사용하지 않는다. 하위 계층 또는 시간적 하위 계층은 TemporalId 변수의 특정 값을 갖는 VCL NAL 단위 및 연관된 비 VCL NAL 단위로 구성되는 시간적 스케일가능 비트스트림의 시간적 스케일가능 계층으로 정의될 수 있다. nuh_layer_id는 스케일가능성 계층 식별자(scalability layer identifier)로 이해될 수 있다.
NAL 단위는 비디오 코딩 계층(VCL) NAL 단위 및 비 VCL NAL 단위로 분류될 수 있다. H.264/AVC에서, 코딩된 슬라이스 NAL 단위는 하나 이상의 코딩된 매크로블록을 나타내는 신택스 요소를 포함하고, 각각의 코딩된 매크로블록은 압축되지 않은 화상의 샘플 블록에 대응한다. HEVC에서, VCLNAL 단위는 하나 이상의 CU를 나타내는 신택스 요소를 포함한다.
HEVC에서, 코딩된 슬라이스 NAL 단위는 다음과 같은 유형 중 하나로 표시될 수 있다:
Figure pct00002
HEVC에서, 화상 유형에 대한 약어는 다음과 같이 정의될 수 있다: 트레일링(trailing: TRAIL) 화상, 시간적 하위 계층 액세스(Temporal Sub-layer Access: TSA), 단계별 시간적 하위 계층 액세스(Step-wise Temporal Sub-layer Access: STSA), 랜덤 액세스 디코딩 가능 리딩(Random Access Decodable Leading: RADL) 화상, 랜덤 액세스 생략된 리딩(Random Access Skipped Leading: RASL) 화상, 단절된 링크 액세스(Broken Link Access: BLA) 화상, 순시 디코딩 리프레시(Instantaneous Decoding Refresh: IDR) 화상, 클린 랜덤 액세스(Clean Random Access: CRA) 화상.
인트라 랜덤 액세스 포인트(RAP) 화상이라고도 지칭될 수 있는, 랜덤 액세스 포인트(Random Access Point: RAP) 화상은, 각 슬라이스 또는 슬라이스 세그먼트가 포괄적으로 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를 갖는 계층의 각각의 직접 참조 계층의 디코딩이 초기화되는 경우(즉, LayerInitializedFlag[refLayerld]가 curlLayerId와 동일한 nuh_layer_id를 갖는 계층의 직접 참조 계층의 모든 nuh_layer_id를 값과 동일한 refLayerId에 대해 1과 같은 경우)에, 코딩 순서에서 IRAP 화상에 앞서는 currLayerId와 동일한 nuh_layer_id 갖는 임의의 화상의 디코딩 프로세스를 수행하지 않고도 정확하게 디코딩될 수 있다. IRAP 화상이 아닌 인트라 코딩된 슬라이스만 포함하는 화상이 비트스트림에 있을 수 있다.
HEVC에서, CRA 화상은 디코딩 순서에서 비트스트림 내의 첫 번째 화상일 수 있거나 비트스트림에서 이후에 나타날 수 있다. HEVC 내의 CRA 화상은 디코딩 순서에서 CRA 화상에 후속하나 출력 순서에서 그에 선행하는 이른바 리딩(leading) 화상을 허용한다. 리딩 화상 중 몇몇인 이른바 RASL 화상은 CRA 화상 전에 디코딩된 화상들을 참조로서 사용할 수 있다. 디코딩 및 출력 순서 양자 모두에서 CRA 화상에 후속하는 화상들은 만약 CRA 화상에서 랜덤 액세스가 수행되는 경우 디코딩가능하고, 따라서 IDR 화상의 클린 랜덤 액세스 기능과 유사하게 클린 랜덤 액세스가 달성된다.
CRA 화상은 연관된 RADL 또는 RASL 화상을 가질 수 있다. CRA 화상이 디코딩 순서로 비트스트림 내의 첫 번째 화상인 경우, 디코딩 순서로 CRA 화상은 코딩된 비디오 시퀀스의 첫 번째 화상이고, 임의의 연관된 RASL 화상들이 디코더에 의해 출력되지 않으며 디코딩가능하지 않을 수 있는데, 그것들이 비트스트림 내에 존재하지 않는 화상들에 대한 참조들을 포함할 수 있기 때문이다.
리딩 화상은 출력 순서에서 연관된 RAP 화상에 선행하는 화상이다. 연관된 RAP 화상은 디코딩 순서로 이전의 RAP 화상(만약 존재한다면)이다. 리딩 화상은 RADL 화상 아니면 RASL 화상이다.
모든 RASL 화상은 연관된 BLA 또는 CRA 화상의 리딩 화상이다. 연관된 RAP 화상이 BLA 화상이거나 비트스트림 내의 첫 번째 코딩된 화상인 경우, RASL 화상은 출력되지 않으며 정확히 디코딩가능하지 않을 수 있는데, RASL 화상이 비트스트림 내에 존재하지 않는 화상에 대한 참조를 포함할 수 있기 때문이다. 그러나, RASL 화상은 만약 RASL 화상의 연관된 RAP 화상 전에 RAP 화상으로부터 디코딩이 시작되었다면 정확히 디코딩될 수 있다. RASL 화상은 비 RASL 화상의 디코딩 프로세스를 위한 참조 화상으로서 사용되지 않는다. 존재하는 경우 모든 RASL 화상은 디코딩 순서에서 동일한 연관된 RAP 화상의 모든 트레일링 화상에 선행한다. HEVC 표준의 몇몇 초기의 초안에서, RASL 화상은 폐기를 위하여 태깅된(Tagged For Discard: TFD) 화상으로 언급되었다.
모든 RADL 화상은 리딩 화상이다. RADL 화상은 동일한 연관된 RAP 화상의 트레일링 화상의 디코딩 프로세스를 위한 참조 화상으로서 사용되지 않는다. 존재하는 경우 모든 RADL 화상은 디코딩 순서에서 동일한 연관된 RAP 화상의 모든 트레일링 화상에 선행한다. RADL 화상은 디코딩 순서에서 연관된 RAP 화상에 선행하는 임의의 화상을 참조하지 않고 따라서 연관된 RAP 화상으부터 디코딩이 시작하는 경우 정확히 디코딩될 수 있다.
CRA 화상으로부터 시작하는 비트스트림의 일부가 다른 비트스트림에 포함되는 경우, CRA 화상과 연관된 RASL 화상들은 정확히 디코딩가능하지 않을 수 있는데, 그것들의 참조 화상들 중 몇몇은 조합된 비트스트림 내에 존재하지 않기 때문이다. 그러한 스플라이싱 동작(splicing operation)을 간단하게 하기 위하여, CRA 화상의 NAL 단위 유형은 그것이 BLA 화상임을 나타내도록 변경될 수 있다. BLA 화상과 연관된 RASL 화상은 정확히 디코딩가능하지 않을 수 있고 따라서 출력/디스플레이되지 않는다. 나아가, BLA 화상과 연관된 RASL 화상은 디코딩에서 제외될 수 있다.
BLA 화상은 디코딩 순서로 비트스트림 내의 첫 번째 화상일 수 있거나, 비트스트림 내에서 이후에 나타날 수 있다. 각 BLA 화상은 새로운 코딩된 비디오 시퀀스를 시작하고, 디코딩 프로세스에 대해 IDR 화상과 유사한 효과를 가진다. 그러나, BLA 화상은 비지 않은 참조 화상 세트를 지정하는 신택스 요소를 포함한다. BLA 화상이 BLA_W_LP와 동일한 nal_unit_type을 가지는 경우, 그것은 디코더에 의해 출력되지 않는 연관된 RASL 화상들을 가질 수 있고 디코딩가능하지 않을 수 있는데, 그것들이 비트스트림 내에 존재하지 않는 화상들에 대한 참조들을 포함할 수 있기 때문이다. BLA 화상이 BLA_W_LP와 동일한 nal_unit_type을 가지는 경우, 그것은 디코딩되도록 지정된 연관된 RADL 화상들을 가질 수도 있다. BLA 화상이 BLA_W_BLDL와 동일한 nal_unit_type을 가지는 경우, 그것은 연관된 RASL 화상을 갖지 아니하나 디코딩되도록 지정된 연관된 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 중 어느 것에도 포함되지 않는다. nal_unit_type이 TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N, RSV_VCL_N10, RSV_VCL_N12 또는 RSV_VCL_N14와 동일한 코딩된 화상은 TemporalId의 동일한 값을 갖는 다른 화상의 디코딩가능성(decodability)에 영향을 주지 않고 폐기될 수 있다.
트레일링 화상(trailing picture)은 출력 순서에서 연관된 RAP 화상에 후속하는 화상으로 정의될 수 있다. 트레일링 화상인 임의의 화상은 RADL_N, RADL_R, RASL_N 또는 RASL_R과 동일한 nal_unit_type을 갖지 않는다. 리딩 화상인 임의의 화상은, 디코딩 순서에서, 동일한 RAP 화상과 연관된 모든 트레일링 화상을 선행하도록 제한될 수 있다. BLA_W_RADL 또는 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에서 시간적 하위 계층 스위칭 포인트(temporal sub-layer switching point)들을 나타내는데 사용될 수 있는 두 가지 화상 유형, TSA 및 STSA 화상 유형이 있다. TemporalId가 N까지인 시간적 하위 계층이 TSA 또는 STSA 화상(배타적임(exclusive))까지 디코딩되었고 TSA 또는 STSA 화상이 N+1과 동일한 TemporalId를 갖는 경우, TSA 또는 STSA 화상은 N+1과 동일한 TemporalId를 갖는 (디코딩 순서로) 모든 차후 화상의 디코딩을 가능하게 한다. 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 data) NAL 단위. 파라미터 세트는 디코딩된 화상의 재구성을 위해 필요할 수 있는 반면, 다른 비 VCL NAL 단위 중 다수는 디코딩된 샘플 값의 재구성을 위해 필요하지 않다.
코딩된 비디오 시퀀스를 거쳐 계속 바뀌지 않은 채 있는 파라미터는 시퀀스 파라미터 세트에 포함될 수 있다. 디코딩 프로세스가 필요로 할 수 있는 파라미터 외에, 시퀀스 파라미터 세트는 비디오 유용성 정보(Video Usability Information: VUI)를 선택적으로 포함할 수 있는데, 이는 버퍼링(buffering), 화상 출력 타이밍(picture output timing), 렌더링(rendering) 및 리소스 예비(resource reservation)를 위해 중요할 수 있는 파라미터를 포함한다. HEVC에서 시퀀스 파라미터 세트 RBSP는 버퍼링 주기 SEI 메시지(buffering period SEI message)를 포함하는 하나 이상의 SEI NAL 단위 또는 하나 이상의 화상 파라미터 세트 RBSP에 의해 참조될 수 있는 파라미터를 포함한다. 화상 파라미터 세트는 여러 코딩된 화상 내에서 변경되지 않을 가능성이 있는 그러한 파라미터를 포함한다. 화상 파라미터 세트 RBSP는 하나 이상의 코딩된 화상의 코딩된 슬라이스 NAL 단위에 의해 참조될 수 있는 파라미터를 포함할 수 있다.
HEVC에서, 비디오 파라미터 세트(Video Parameter Set: VPS)는 각 슬라이스 세그먼트 헤더 내에서 발견되는 신택스 요소에 의해 참조되는 PPS 내에서 발견되는 신택스 요소에 의해 참조되는 SPS 내에서 발견되는 신택스 요소의 내용에 의해 판정되는 바와 같이 0개 이상의 전체 코딩된 비디오 시퀀스에 적용되는 신택스 요소를 포함하는 신택스 구조로 정의될 수 있다. 비디오 파라미터 세트 RBSP는 하나 이상의 시퀀스 파라미터 세트 RBSP에 의해 참조될 수 있는 파라미터를 포함할 수 있다.
비디오 파라미터 세트(Video Parameter Set: VPS), 시퀀스 파라미터 세트(Sequence Parameter Set: SPS) 및 화상 파라미터 세트(Picture Parameter Set: PPS) 간의 관계 및 계층구조는 다음과 같이 기술될 수 있다. VPS는 파라미터 세트 계층구조 한 수준 위에 그리고 스케일가능성 및/또는 3D 비디오의 맥락에 상주한다. VPS는 코딩된 비디오 시퀀스 전체 내의 모든 (스케일가능성 또는 시점) 계층에 걸쳐 모든 슬라이스에 대해 공통인 파라미터를 포함할 수 있다. SPS는 코딩된 비디오 시퀀스 전체 내의 특정 (스케일가능성 또는 시점) 계층 내의 모든 슬라이스에 대해 공통인 파라미터를 포함하고, 다수의 (스케일가능성 또는 시점) 계층에 의해 공유될 수 있다. PPS는 특정 계층 표현(하나의 액세스 단위 내의 하나의 스케일가능성 또는 시점 계층의 표현) 내의 모든 슬라이스에 대해 공통인 파라미터를 포함하며, 다수의 계층 표현 내의 모든 슬라이스에 의해 공유될 가능성이 있다.
VPS는 코딩된 비디오 시퀀스 전체 내의 모든 (스케일가능성 또는 시점) 계층에 걸쳐 모든 슬라이스에 대해 적용 가능한 많은 다른 정보뿐만 아니라, 비트스트림 내의 계층들의 의존 관계에 관한 정보를 제공할 수 있다. VPS는 두 개의 부분, 즉 기본 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에 명시되었고 계층 종속 관계를 나타내는 신택스 요소와 같은 하나 이상의 비 기반 계층을 디코딩하는 데 사용할 수 있는 신택스 요소를 포함한다.
VPS 확장의 신택스 요소 max_tid_il_ref_pics_plusl은 비 IRAP 화상들이 계층 간 예측을 위한 기준으로 사용되지 않는다는 것을 나타내기 위해 사용될 수 있고, 그렇지 않은 경우, 어떤 시간 하위 계층들이 계층 간 예측을 위한 기준으로서 사용되지 않는지를 나타내기 위해 사용될 수 있다: 0과 같은 max_tid_il_ref_pics_plusl[i][j]는 layer_id_in_nuh[i]와 같은 nuh_layer_id를 갖는 비 IRAP 화상들이 layer_id_in_nuh[j]와 같은 nuh_layer_id를 갖는 화상들에 대한 계층 간 예측을 위한 소스 화상으로서 사용되지 않는다는 것을 명시한다. 0보다 큰 max_tid_il_ref_pics_plusl[i][j]는 layer_id_in_nuh[i]와 같은 nuh_layer_id 및 max_tid_il_ref_pics_plusl[i][j]-1보다 큰 TemporalId를 갖는 화상이 layer_id_in_nuh[j]와 같은 nuh_layer_id를 갖는 화상에 대한 계층 간 예측을 위한 소스 화상으로서 사용되지 않는다는 것을 명시한다. 존재하지 않으면, max_tid_il_ref_pics_plusl[i][j]의 값은 7과 같다고 추론된다.
H.264/AVC 및 HEVC 신택스(syntax)는 파라미터 세트의 많은 인스턴스를 허용하고, 각 인스턴스는 고유한 식별자로써 식별된다. 파라미터 세트에 필요한 메모리 사용(memory usage)을 한정하기 위하여, 파라미터 세트 식별자를 위한 값 범위가 한정되었다. H.264/AVC 및 HEVC에서, 각 슬라이스 헤더는 슬라이스를 포함하는 화상의 디코딩을 위하여 활성(active)인 화상 파라미터 세트의 식별자를 포함하고, 각 화상 파라미터 세트는 활성 시퀀스 파라미터 세트의 식별자를 포함한다. 따라서, 화상 및 시퀀스 파라미터 세트들의 전송은 슬라이스의 전송과 정확히 동기화될(synchronized) 필요는 없다. 대신에, 활성 시퀀스 및 화상 파라미터 세트들은 그것들이 참조되기 전 임의의 순간에 수신되는 것으로 충분한데, 이는 슬라이스 데이터를 위해 사용되는 프로토콜에 비해 더욱 신뢰할 만한 전송 메커니즘을 사용하여 "대역외(out-of-band)"로 파라미터 세트의 전송을 허용한다. 예를 들어, 파라미터 세트가 실시간 전송 프로토콜(Realtime Transport Protocol: RTP) 세션을 위한 세션 기술(session description) 내의 파라미터로서 포함될 수 있다. 파라미터 세트가 대역내(in-band)로 전송되는 경우, 오차 강인성(error robustness)을 개선하기 위해 그것들이 반복될 수 있다.
대역외 전송, 시그널링 또는 저장은 액세스 또는 세션 협상의 용이성과 같은 전송 오류에 대한 허용오차 이외의 다른 목적을 위해 추가적으로 또는 대안적으로 사용될 수 있다. 예를 들어, ISOBMFF를 준수하는 파일 내의 트랙의 샘플 엔트리는 파라미터 세트를 포함할 수 있는 반면, 비트스트림 내의 코딩된 데이터는 파일 또는 다른 파일의 다른 곳에 저장된다. (예를 들어, 비트스트림을 따라 표시하는) 비트스트림을 따르는 구문은 대역외 데이터가 비트스트림과 연관되는 방식으로 대역외 전송, 시그널링 또는 저장을 참조하기 위해 설명된 실시예 및 청구범위에서 사용될 수 있다. 비트스트림 등을 따라 디코딩하는 문구는 비트스트림과 연관된 참조된 대역외 데이터(대역외 전송, 시그널링 또는 저장으로부터 획득될 수 있음)를 디코딩하는 것을 참조할 수 있다. 코딩된 화상은 화상의 코딩된 표현이다.
HEVC에서, 코딩된 화상은 화상의 모든 코딩 트리 단위를 포함하는 화상의 코딩된 표현으로서 정의될 수 있다. HEVC에서, 액세스 단위(AU)는 명시된 분류 규칙에 따라 서로와 연관되고, 디코딩 순서에서 연속적이며, nuh_layer_id의 임의의 특정 값을 갖는 많아야 하나의 화상을 포함하는 NAL 단위 세트로 정의될 수 있다. 코딩된 화상의 VCL NAL 단위를 포함하는 것 이외에, 액세스 단위는 비 VCL NAL 단위를 또한 포함할 수 있다.
코딩된 화상이 액세스 단위 내에서 특정 순서로 나타나도록 요구될 수 있다. 예를 들어, nuhLayerIdA와 같은 nuh_layer_id 갖는 코딩된 화상은 동일한 액세스 단위에서 nuhLayerIdA보다 큰 nuh_layer_id를 갖는 모든 코딩된 화상을 디코딩 순서에서 선행하도록 요구될 수 있다. AU는 전형적으로 동일한 출력 시간 및/또는 캡쳐 시간을 나타내는 모든 코딩된 화상을 포함한다.
비트스트림은 하나 이상의 코딩된 비디오 시퀀스를 형성하는 코딩된 화상 및 연관 데이터의 표현을 형성하는 NAL 단위 스트림 또는 바이트 스트림의 형태로 비트 시퀀스로서 정의될 수 있다. 제 1 비트스트림은 동일한 논리 채널에서, 예컨대, 동일 파일에서 또는 통신 프로토콜의 동일한 접속에서, 제 2 비트스트림 다음에 올 수 있다. (비디오 코딩의 맥락에서) 기본 스트림(elementary stream)은 하나 이상의 비트스트림들의 시퀀스로서 정의될 수 있다. 제 1 비트스트림의 말단은 비트스트림의 마지막 NAL 단위인 비트스트림 말단(end of bitstream: EOB) NAL 단위라고 지칭될 수 있는 특정 NAL 단위로 표시될 수 있다. HEVC 및 현재의 초안 확장에서, EOB NAL 단위은 0과 같은 nuh_layer_id를 갖도록 요구된다.
바이트 스트림 형식이 프레임 구조를 제공하지 않는 전송 또는 저장 환경을 위한 H.264/AVC 및 HEVC에 명시된다. 바이트 스트림 형식은 각 NAL 단위 앞에 시작 코드를 첨부함으로써 NAL 단위를 서로 분리한다. NAL 단위 경계의 잘못된 검출을 피하기 위해, 인코더는 시작 코드가 다르게 발생할 경우 NAL 단위 페이로드에 에뮬레이션 방지 바이트를 추가하는 바이트 지향 시작 코드 에뮬레이션 방지 알고리즘(byte-oriented start code emulation prevention algorithm)을 실행한다. 예를 들어, 패킷 지향 시스템과 스트림 지향 시스템 간의 직접적인 게이트웨이 동작을 가능하게 하기 위해, 바이트 스트림 형식이 사용되는지에 관계없이 시작 코드 에뮬레이션 방지가 항상 수행될 수 있다. 바이트 스트림 형식을 위한 비트 순서는 첫 번째 바이트의 최상위 비트(Most Significant Bit: MSB)로 시작하고, 첫 번째 바이트의 최하위 비트(Least Significant Bit: LSB)로 진행하며, 그 다음에 두 번째 바이트의 MSB 등으로 진행하도록 지정될 수 있다. 바이트 스트림 형식은 바이트 스트림 NAL 단위 신택스 구조의 시퀀스로 구성되는 것으로 간주될 수 있다. 각 바이트 스트림 NAL 단위 신택스 구조는 신택스 요소 이름들이 참조되는 경우 하나의 시작 코드 프리픽스 다음에 하나의 NAL 단위 신택스 구조, 즉 nal_unit(NumBytesInNalUnit) 신택스 구조를 포함하는 것으로 간주될 수 있다. 바이트 스트림 NAL 단위은 또한 추가 제로 바이트 신택스 요소를 포함할 수 있다. 하나 이상의 추가 trailing_zero_8bits 신택스 요소를 포함할 수도 있다. 바이트 스트림 NAL 단위이 비트스트림의 첫 번째 바이트 스트림 NAL 단위인 경우, 이는 하나 이상의 추가 leading_zero_8bits 신택스 요소를 포함할 수도 있다. 바이트 스트림 NAL 단위의 신택스는 다음과 같이 지정될 수 있다:
Figure pct00003
바이트 스트림 내의 바이트 스트림 NAL 단위들의 순서는 바이트 스트림 NAL 단위들에 포함된 NAL 단위들의 디코딩 순서를 따르도록 요구될 수 있다. 신택스 요소의 의미는 다음과 같이 지정될 수 있다. leading_zero_8bits는 0x00과 같은 바이트이다. leading_zero_8bits 신택스 요소는 비트스트림의 첫 번째 바이트 스트림 NAL 단위에만 존재할 수 있는데, 이는 NAL 단위 신택스 구조에 후속하고 4바이트 시퀀스 0x00000001(이는 zero_byte 다음에 start_code_prefix_one_3byte가 후속하는 것으로 해석되어야 함)에 선행하는 0x00과 같은 임의의 바이트가 선행하는 바이트 스트림 NAL 단위의 일부인 trailing_zero_8bits 신택스 요소로 간주될 것이기 때문이다. zero_byte는 0x00과 같은 단일 바이트이다. start_code_prefix_one_3byte는 0x000001과 같은 3바이트의 고정 값 시퀀스이다. 이 신택스 요소는 시작 코드 프리픽스(또는 간단히 시작 코드)로 불릴 수 있다. trailing_zero_8bits는 0x00과 동일한 바이트이다.
NAL 단위는 후속할 데이터 유형의 표시와 필요에 따라 에뮬레이션 방지 바이트에 필요하여 배치되는 RBSP 형태로 해당 데이터를 포함하는 바이트를 포함하는 신택스 구조로 정의될 수 있다. 원시 바이트 시퀀스 페이로드(RBSP)는 NAL 단위로 캡슐화된 정수 바이트를 포함하는 신택스 구조로 정의될 수 있다. RBSP는 비어 있거나 아니면 신택스 요소가 뒤따르고 0과 동일한 후속 비트 0개 이상이 뒤따르는 신택스 요소를 포함하는 데이터 비트의 스트링의 형태를 갖는다.
NAL 단위는 헤더 및 페이로드로 구성된다. H.264/AVC 및 HEVC에서, NAL 단위 헤더는 NAL 단위의 유형을 나타낸다.
nal_unit(NumBytesInNalUnit) 신택스 구조의 HEVC 신택스는NAL 단위의 신택스의 일례로서 다음에 설명된다.
Figure pct00004
HEVC에서, 코딩된 비디오 시퀀스(CVS)는, 예를 들어, 디코딩 순서에서 1과 같은 NoRaslOutputFlag를 갖는 IRAP 액세스 단위들의 시퀀스로서 정의될 수 있고, 그 다음에 1과 동일한 NoRaslOutputFlag를 갖는 IRAP 액세스 단위를 갖지 않는 0개 이상의 액세스 단위가 뒤따르며, 이는 1과 동일한 NoRaslOutputFlag를 갖는 IRAP 액세스 단위인 임의의 후속 액세스 단위까지이나 포함하지는 않는 모든 후속 액세스 단위를 포함한다. IRAP 액세스 단위는 기반 계층 화상이 IRAP 화상인 액세스 단위로서 정의될 수 있다. NoRaslOutputFlag의 값은, 디코딩 순서의 비트스트림 내의 해당 특정 층에서 제 1 화상이거나, 디코딩 순서에서 nuh_layer_id의 동일한 값을 갖는 시퀀스 NAL 단위의 말단에 후속하는 제 1 IRAP 화상인, 각각의 IDR 화상, 각각의 BLA 화상, 및 각각의 IRAP 화상에 대해 1과 같다. 다중 층 HEVC에서, NoRaslOutputFlag의 값은 그 nuh_layer_id가 LayerInitializedFlag[nuh_layer_id]는 0이고 LayerInitializedFlag[refLayerld]는 IdDirectRefLayer[nuh_layer_id][j]와 같은 refLayerld의 모든 값에 대해 1과 같은 것인 경우, 각각의 IRAP 화상에 대해 1이고, 여기서 j는 LayerInitializedFlag[refLayerld]가 1의 모든 refLayerld IdDirectRefLayerf nuh layer id] [j]와 같고, 여기서 j는 0에서 NumDirectRefLayers[nuh_layer_id] - 1의 범위 내에 있다. 그렇지 않은 경우 NoRaslOutputFlag의 값은 HandleCraAsBlaFlag와 같다. 1과 같은 NoRaslOutputFlag는 NoRaslOutputFlag가 설정된 IRAP 화상과 연관된 RASL 화상이 디코더에 의해 출력되지 않는 효과를 갖는다. 디코더를 제어할 수 있는 플레이어 또는 수신기와 같은 외부 엔티티로부터의 디코더에 HandleCraAsBlaFlag의 값을 제공하는 수단이 있을 수 있다. HandleCraAsBlaFlag는, 예를 들어, 비트스트림의 새로운 위치를 탐색하거나 방송의 채널을 맞추고 디코딩을 시작한 다음 CRA 화상으로부터 디코딩을 시작하는 플레이어에 의해 1로 설정될 수 있다. HandleCraAsBlaFlag가 CRA 화상에 대해 1일 때, CRA 화상은 마치 BLA 화상인 것처럼 처리되고 디코딩된다.
HEVC에서, EOS(End of Sequence) NAL 단위로 참조될 수 있는 특정 NAL 단위가 비트스트림에 나타나고 0과 같은 nuh_layer_id를 갖는 경우, 코딩된 비디오 시퀀스는 (상기 명세서에 대해) 추가적으로 또는 대안적으로 마지막에 명시될 수 있다.
화상 그룹(Group of Pictures: GOP) 및 그 특성은 다음과 같이 정의될 수 있다. GOP는 임의의 이전 화상이 디코딩되었는지 여부에 상관없이 디코딩될 수 있다. 개방 GOP(open GOP)는 디코딩이 그 개방 GOP의 초기 인트라 화상(intra picture)으로부터 시작하는 경우 출력 순서로 초기 인트라 화상에 선행하는 화상이 정확히 디코딩가능하지 않을 수도 있는 그러한 화상의 그룹이다. 다시 말해, 개방 GOP의 화상은 (인터 예측에서) 이전의 GOP에 속한 화상을 참조할 수 있다. HEVC 디코더는 개방 GOP를 시작하는 인트라 화상을 인식할 수 있는데, 이는 특정한 NAL 단위 유형인 CRA NAL 단위 유형이 그것의 코딩된 슬라이스를 위해 사용될 수 있기 때문이다. 폐쇄 GOP(closed GOP)는 디코딩이 그 폐쇄 GOP의 초기 인트라 화상으로부터 시작하는 경우 모든 화상이 정확히 디코딩될 수 있는 그러한 화상의 그룹이다. 다시 말해, 폐쇄 GOP 내의 어떠한 화상도 이전 GOP 내의 임의의 화상을 참조하지 않는다. H.264/AVC 및 HEVC에서, 폐쇄 GOP는 IDR 화상으로부터 시작할 수 있다. HEVC에서 폐쇄 GOP는 BLA_W_RADL 또는 BLA_N_LP 화상으로부터 또한 시작할 수 있다. 참조 화상의 선택에서의 더 많은 융통성(flexibility)으로 인해, 개방 GOP 코딩 구조는 페쇄 GOP 코딩 구조에 비해 압축에서 잠재적으로 더 효율적이다.
화상의 구조(Structure of Pictures: SOP)는 디코딩 순서에서 연속하는 하나 이상의 코딩된 화상으로 정의될 수 있는데, 여기서 디코딩 순서의 제 1 코딩된 화상은 최하위의 시간적 하위 계층에서의 참조 화상이고 디코딩 순서에서 첫 번째 코딩된 화상을 잠재적으로 제외한 어떠한 코딩된 화상도 RAP 화상이 아니다. 이전 SOP 내의 모든 화상은 디코딩 순서에서 현재 SOP 내의 모든 화상을 선행하고 다음 SOP 내의 모든 화상은 디코딩 순서에서 현재 SOP 내의 모든 화상 뒤에 이어진다. SOP는 계층적이고 반복적인 인터 예측 구조를 나타낼 수 있다. 용어 화상의 그룹(GOP)은 용어 SOP와 때때로 상호 교환적으로 사용될 수 있고 SOP의 시맨틱과 동일한 시맨틱을 가질 수 있다.
H.264/AVC 및 HEVC의 비트스트림 신택스는 특정 화상이 임의의 다른 화상의 인터 예측을 위한 참조 화상인지를 나타낸다. 임의의 코딩 유형(I, P, B)의 화상은 H.264/AVC 및 HEVC에서 참조 화상 또는 비참조 화상일 수 있다.
HEVC에서, 참조 화상 세트(Reference Picture Set: RPS) 신택스 구조 및 디코딩 프로세스가 사용된다. 화상에 대해 유효하거나 활성인 참조 화상 세트는 그 화상을 위한 참조로서 사용되는 모든 참조 화상 및 디코딩 순서에서 후속적인 임의의 화상을 위하여 "참조를 위해 사용됨"으로 마킹된 채 유지되는 모든 참조 화상을 포함한다. 참조 화상 세트의 6개의 서브세트가 있는데, 이들은 곧 RefPicSetStCurr0(RefPicSetStCurrBefore로도 알려짐), RefPicSetStCurr1(RefPicSetStCurrAfter라고도 알려짐), RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr 및 RefPicSetLtFoll으로 지칭된다. RefPicSetStFoll0 및 RefPicSetStFoll1은 또한 하나의 서브세트인 RefPicSetStFoll로 함께 형성되는 것으로 간주될 수도 있다. 6개의 서브세트의 표기법은 다음과 같다. "Curr"는 현재 화상의 참조 화상 리스트에 포함된 참조 화상을 지칭하며 따라서 현재 화상을 위한 인터 예측 참조로서 사용될 수 있다. "Foll"은 현재 화상의 참조 화상 리스트에 포함되지 않은 참조 화상을 지칭하나 디코딩 순서로 후속적인 화상들에서 참조 화상으로서 사용될 수 있다. "St"는 단기 참조 화상을 지칭하는데, 이는 대체적으로 그것의 POC 값의 소정의 개수의 최하위(least significant) 비트를 통해 식별될 수 있다. "Lt"는 장기 참조 화상을 지칭하는데, 이는 명확하게 식별되고 대체적으로 현재 화상에 대하여 그 언급된 소정의 개수의 최하위 비트에 의하여 표현될 수 있는 것보다 POC 값의 차이가 더 크다. "0"은 현재 화상보다 더 작은 POC 값을 갖는 참조 화상을 지칭한다. "1"은 현재 화상보다 더 큰 POC 값을 갖는 참조 화상을 지칭한다. RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0 및 RefPicSetStFoll1은 집합적으로 참조 화상 세트의 단기 서브세트(short-term subset)로 지칭된다. RefPicSetLtCurr 및 RefPicSetLtFoll은 집합적으로 참조 화상 세트의 장기 서브세트(long-term subset)로 지칭된다.
HEVC에서, 참조 화상 세트는 시퀀스 파라미터 세트 내에 지정되어 그 참조 화상 세트에 대한 인덱스를 통해 슬라이스 헤더 내에서 사용되게 될 수 있다. 참조 화상 세트는 또한 슬라이스 헤더 내에 지정될 수 있다. 참조 화상 세트는 독립적으로 코딩될 수 있거나 다른 참조 화상 세트로부터 예측될 수 있다(RPS 간 예측으로 알려짐). 참조 화상 세트 코딩의 유형 둘 다에서, 플래그(used_by_curr_pic_X_flag)는 각 참조 화상을 위해 추가적으로 송신되어 그 참조 화상이 현재 화상에 의한 참조를 위해 사용되는지(*Curr 리스트에 포함됨) 아닌지(*Foll 리스트에 포함됨)를 나타낸다. 현재 슬라이스에 의해 사용되는 참조 화상 세트에 포함된 화상은 "참조를 위해 사용됨"으로 마킹되고, 현재 슬라이스에 의해 사용되는 참조 화상 세트 내에 있지 않은 화상은 "참조를 위해 사용되지 않음"으로 마킹된다. 만약 현재 화상이 IDR 화상인 경우, RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr 및 RefPicSetLtFoll은 모두 비도록(empty) 설정된다.
디코딩된 화상 버퍼(Decoded Picture Buffer: DPB)는 인코더 내에서 및/또는 디코더 내에서 사용될 수 있다. 인터 예측에서의 참조를 위하여 또한 디코딩된 화상을 출력 순서로 재순서화하기 위하여, 디코딩된 화상을 버퍼링할 두 가지 이유가 있다. H.264/AVC 및 HEVC가 참조 화상 마킹(reference picture marking) 및 출력 재순서화(output reordering) 둘 모두를 위해 많은 유연성을 제공하는바, 참조 화상 버퍼링(reference picture buffering) 및 출력 화상 버퍼링(output picture buffering)을 위한 별개의 버퍼는 메모리 리소스를 낭비할 수 있다. 따라서, DPB는 참조 화상 및 출력 재순서화를 위한 일원화된 디코딩된 화상 버퍼링 프로세스(unified decoded picture buffering process)를 포함할 수 있다. 디코딩된 화상은 그것이 참조로서 더 이상 사용되지 않고 출력을 위해 필요하지 않은 경우 DPB로부터 제거될 수 있다.
H.264/AVC 및 HEVC의 많은 코딩 모드에서, 인터 예측을 위한 참조 화상은 참조 화상 리스트에 대한 인덱스로써 표시된다. 그 인덱스는 가변 길이 코딩(variable length coding)으로써 코딩될 수 있는데, 이는 보통 더 작은 인덱스로 하여금 대응하는 신택스 요소에 대하여 더 짧은 값을 갖도록 한다. H.264/AVC 및 HEVC에서, 두 참조 화상 리스트(참조 화상 리스트 0 및 참조 화상 리스트 1)가 각각의 쌍방향 예측(bi-predictive) (B) 슬라이스를 위하여 생성되고, 하나의 참조 화상 리스트(참조 화상 리스트 0)가 각각의 인터 코딩된(inter-coded)(P) 슬라이스를 위하여 형성된다.
참조 화상 리스트 0 및 참조 화상 리스트 1과 같은 참조 화상 리스트는 전형적으로 두 단계로 구성되는데: 첫째, 초기 참조 화상 리스트가 생성된다. 초기 참조 화상 리스트는 가령 frame_num, POC, temporal_id(또는 TemporalId 등), 또는 GOP 구조와 같은 예측 계층구조에 관한 정보, 또는 이들의 임의의 조합에 기초하여 생성될 수 있다. 둘째, 초기 참조 화상 리스트는 참조 화상 리스트 수정 신택스 구조(reference picture list modification syntax structure)라고도 알려진 참조 화상 리스트 재순서화(Reference Picture List Reordering: RPLR) 명령에 의해 재순서화될 수 있는데, 이는 슬라이스 헤더에 포함될 수 있다. 참조 화상 세트가 사용되는 경우, 참조 화상 리스트 0은 우선 RefPicSetStCurr0(그 뒤에는 RefPicSetStCurr1이 따라오며, 이 뒤에는 RefPicSetLtCurr이 따라옴)을 포함하도록 초기화될 수 있다. 참조 화상 리스트 1은 우선 RefPicSetStCurr1(그 뒤에는 RefPicSetStCurr0이 따라옴)을 포함하도록 초기화될 수 있다. HEVC에서, 초기 참조 화상 리스트는 참조 화상 리스트 수정 신택스 구조를 통하여 수정될 수 있는데, 여기서 초기 참조 화상 리스트 내의 화상은 그 리스트에 대한 엔트리 인덱스(entry index)를 통하여 식별될 수 있다. 다시 말해, HEVC에서, 참조 화상 리스트 수정은 최종 참조 화상 리스트 내의 각 엔트리에 걸쳐서 루프를 포함하는 신택스 구조 내에 인코딩되는데, 여기서 각 루프 엔트리는 초기 참조 화상 리스트에 대한 고정 길이 코딩된 인덱스(fixed-length coded index)이고 최종 참조 화상 리스트 내에서 올라가는 포지션 순서(ascending position order)로 화상을 나타낸다.
H.264/AVC 및 HEVC를 포함하는 많은 코딩 표준은 다수의 참조 화상 중 어느 것이 특정한 블록에 대한 인터 예측을 위해 사용되는지를 나타내는 데에 사용될 수 있는 참조 화상 리스트에 대한 참조 화상 인덱스를 도출하는 디코딩 프로세스를 가질 수 있다. 몇몇 인터 코딩 모드에서 참조 화상 인덱스는 인코더에 의해 비트스트림 내에 코딩될 수 있거나 몇몇 다른 인터 코딩 모드에서 그것은 예를 들어, 이웃하는 블록들을 사용하여 (인코더 및 디코더에 의해) 도출될 수 있다.
비트스트림 내에 효율적으로 움직임 벡터를 표현하기 위해서, 움직임 벡터는 블록 특정적인 예측된 움직임 벡터에 관해서 차동적으로 코딩될 수 있다. 많은 비디오 코덱에서, 예측된 움직임 벡터는 사전정의된 방식으로, 예를 들어, 인접한 블록의 인코딩된 또는 디코딩된 움직임 벡터의 중간값을 계산함으로써 생성된다. 움직임 벡터 예측을 생성하는 다른 방식(때때로 고급 움직임 벡터 예측(Advanced Motion Vector Prediction: AMVP)으로 지칭됨)은 시간적 참조 화상 내의 인접 블록 및/또는 코로케이팅된 블록으로부터 후보 예측의 리스트를 생성하고 선택된 후보를 움직임 벡터 예측기로서 시그널링하는 것이다. 움직임 벡터 값을 예측하는 것에 더하여, 이전에 코딩된/디코딩된 화상의 참조 인덱스가 예측될 수 있다. 참조 인덱스는 전형적으로 시간적 참조 화상 내의 인접 블록 및/또는 코로케이팅된 블록으로부터 예측된다. 움직임 벡터의 차동 코딩(differential coding)은 전형적으로 슬라이스 경계를 가로질러서는 불능화된다.
스케일가능 비디오 코딩은 하나의 비트스트림이 상이한 비트율, 해상도 및/또는 프레임율에서의 콘텐츠(content)의 다수의 표현을 포함할 수 있는 코딩 구조를 나타낸다. 이 경우 수신기는 그것의 특성(예를 들어, 디스플레이 디바이스와 가장 잘 매칭되는 해상도)에 따라 원하는 표현을 추출할 수 있다. 대안적으로, 서버 또는 네트워크 요소(network element)는, 예를 들어, 수신기의 네트워크 특성 또는 처리 능력에 따라 수신기로 전송될 비트스트림의 부분을 추출할 수 있다. 의미 있는 디코딩된 표현은 스케일가능 비디오 스트림의 특정 부분만을 디코딩함으로써 생성될 수 있다. 전형적으로 스케일가능 비트스트림은 이용가능한 최저 품질 비디오를 제공하는 "기반 계층" 및 더 낮은 계층과 함께 수신되어 디코딩되는 경우 비디오 품질을 향상시키는 하나 이상의 향상 계층으로 이루어진다. 향상 계층에 대한 코딩 효율을 개선하기 위해서, 전형적으로 그 계층의 코딩된 표현은 더 낮은 계층에 의존한다. 예를 들어, 향상 계층의 움직임 및 모드 정보는 더 낮은 계층으로부터 예측될 수 있다. 마찬가지로 더 낮은 계층의 픽셀 데이터는 향상 계층을 위한 예측을 생성하기 위해 사용될 수 있다.
몇몇 스케일가능 비디오 코딩 스킴에서, 비디오 신호는 기반 계층 및 하나 이상의 향상 계층 내에 인코딩될 수 있다. 향상 계층은 시간적 해상도(즉, 프레임율), 공간적 해상도 또는 단순히 다른 계층 또는 그 일부에 의해 표현되는 비디오 콘텐츠의 품질을 향상시킬 수 있다. 각 계층(그것의 모든 종속적 계층과 함께)은, 예를 들어, 어떤 공간적 해상도, 시간적 해상도 및 품질 레벨에서의 비디오 신호의 하나의 표현이다. 이 문서에서, 우리는 스케일가능 계층(그것의 종속적 계층 모두와 함께)을 "스케일가능 계층 표현"(scalable layer representation)으로 지칭한다. 스케일가능 계층 표현에 대응하는 스케일가능 비트스트림의 부분은 어떤 충실도로 원래의 신호의 표현을 산출하기 위해 추출되고 디코딩될 수 있다.
스케일가능성 모드 또는 스케일가능성 차원은 다음을 포함하지만 이로 제한되지 않는다.
- 품질 스케일가능성(Quality scalability): 기반 계층 화상은 향상 계층 화상보다 낮은 품질로 코딩되며, 이는, 예를 들어, 향상 계층보다 기반 계층에서 더 큰 양자화 파라미터 값(즉, 변환 계수 양자화에 대한 더 큰 양자화 단계 크기)을 사용하여 달성될 수 있다.
- 공간적 스케일가능성(Spatial scalability): 기반 계층 화상은 향상 계층 화상보다 저 해상도로 코딩된다(즉, 샘플 수가 적음). 공간적 스케일가능성 및 품질 스케일가능성, 특히 조립(coarse-grain) 스케일가능성 유형은 때로는 동일한 유형의 스케일가능성으로 간주될 수 있다.
- 비트 깊이 스케일가능성(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 컬러 영역을 가질 수 있다.
- 다중 시점 코딩(multiview coding)으로도 지칭될 수 있는 시점 스케일가능성. 기반 계층은 첫 번째 시점을 나타내지만 향상 계층은 두 번째 시점을 나타낸다.
- 깊이 향상 코딩(depth-enhanced coding)이라고도 지칭될 수 있는 깊이 스케일가능성(Depth scalability). 비트스트림의 하나의 계층 또는 일부 계층은 텍스처 시점(들)을 나타낼 수 있지만 다른 계층 또는 계층들은 깊이 시점(들)을 나타낼 수 있다.
- 관심 영역 스케일가능성(아래 설명 참조).
- 인터레이스-프로그레시브 스케일가능성(Interlaced-to-progressive scalability)(필드-프레임 스케일가능성으로도 알려짐): 기반 계층의 코딩된 인터레이스된 소스 콘텐츠 소재는 프로그레시브 소스 콘텐츠를 표현하는 향상 계층으로 향상된다.
- 하이브리드 코덱 스케일가능성(코딩 표준 스케일가능성이라고도 함): 하이브리드 코덱 스케일가능성에서, 기반 계층과 향상 계층의 비트스트림 신택스, 시맨틱스 및 디코딩 프로세스는 서로 다른 비디오 코딩 표준에 지정된다. 따라서, 기반 계층 영상은 향상 계층 영상과는 다른 코딩 표준 또는 포맷에 따라 코딩된다. 예를 들어, 기반 계층은 H.264/AVC로 코딩될 수 있고 향상 계층은 HEVC 다중 계층 확장으로 코딩될 수 있다.
스케일가능성 유형들 중 많은 유형들이 함께 조합되고 적용될 수 있다는 점을 이해해야 한다. 예를 들어, 컬러 영역 스케일가능성 및 비트 깊이 스케일가능성이 조합될 수 있다.
계층이라는 용어는 시점 스케일가능성 및 깊이 향상을 포함하여 임의의 유형의 스케일가능성의 맥락에서 사용될 수 있다. 향상 계층은 SNR, 공간, 다중 시점, 깊이, 비트 깊이, 크로마 포맷 및/또는 컬러 영역 향상과 같은 임의의 유형의 향상을 지칭할 수 있다. 기반 계층은 기본 시점, SNR/공간 스케일가능성을 위한 기반 계층, 또는 깊이 향상 비디오 코딩을 위한 텍스처베이스 시점, 또는 깊이 향상 비디오 코딩을 위한 텍스처 기본 시점과 같은 임의의 유형의 기본 비디오 시퀀스를 지칭할 수 있다.
3차원(3D) 비디오 콘텐츠를 제공하기 위한 다양한 기술들이 현재 연구되고 개발되고있다. 입체 또는 2시점 비디오에서, 하나의 비디오 시퀀스 또는 시점이 좌측 눈에 제공되고, 병렬 시점이 우측 눈에 제공되는 것으로 고려될 수 있다. 시점 전환을 가능하게 하는 애플리케이션 또는 많은 수의 시점을 동시에 제시할 수 있고 시청자가 상이한 시점으로부터 콘텐츠를 시청할 수 있게 하는 자동입체 디스플레이에 셋 이상의 병렬 시점이 필요할 수 있다.
시점은 하나의 카메라 또는 시점을 나타내는 화상의 시퀀스로 정의될 수 있다. 시점을 나타내는 화상은 시점 컴포넌트라고도 한다. 다시 말해, 시점 컴포넌트는 단일 액세스 단위에서의 시점의 코딩된 표현으로 정의될 수 있다. 다중 시점 비디오 코딩에서, 둘 이상의 시점이 비트스트림 내에 코딩된다. 전형적으로 시점들은 입체 또는 다중 시점 자동 입체 디스플레이 상에 디스플레이되거나 다른 3D 장치에 사용하기 위한 것이기 때문에, 이들은 전형적으로 동일한 장면을 나타내며 콘텐츠에 대해 상이한 시점을 나타내지만 내용적으로는 부분적으로 겹친다. 따라서, 시점 간 예측은 시점 간 상관관계를 이용하고 압축 효율을 향상시키기 위해 다중 시점 비디오 코딩에 이용될 수 있다. 시점 간 예측을 실현하는 한가지 방법은 제 1 시점 내에 존재하는 코딩되거나 디코딩되는 화상의 참조 화상 리스트(들)에 하나 이상의 다른 시점의 하나 이상의 디코딩된 화상을 포함시키는 것이다. 시점 스케일가능성은 하나 이상의 코딩된 시점을 제거하거나 생략할 수 있는 다중 시점 비디오 코딩 또는 다중 시점 비디오 비트스트림을 나타낼 수 있지만, 결과 비트스트림은 그대로 준수되고 원래보다 적은 수의 시점으로 비디오를 나타낸다. 관심 영역(ROI) 코딩은 비디오 내의 특정 영역을 높은 충실도로 코딩하는 것을 나타내는 것으로 정의될 수 있다.
ROI 스케일가능성은 향상 계층이 참조 계층 화상의 일부분만을, 예를 들어, 공간적으로, 품질에 따라, 비트 깊이로 및/또는 다른 스케일가능성 차원에 따라 향상시키는 일종의 스케일가능성으로 정의될 수 있다. ROI 스케일가능성은 다른 유형의 스케일가능성과 함께 사용될 수 있으므로, 이는 스케일가능성 유형의 다른 범주화를 형성하는 것으로 간주될 수 있다. 상이한 요구사항을 갖는 ROI 코딩을 위한 다수의 상이한 애플리케이션이 존재하며, 이는 ROI 스케일가능성을 사용하여 실현될 수 있다. 예를 들어, 향상 계층은 기반 계층에서 영역의 품질 및/또는 해상도를 향상시키기 위해 전송될 수 있다. 향상 계층 및 기반 계층 비트스트림 둘 모두를 수신하는 디코더는 양 계층을 디코딩하고 서로의 상부에 디코딩된 화상을 오버레이하고 최종 화상을 디스플레이할 수 있다.
기반 계층 화상 및 향상 계층 화상의 공간 대응은 유추될 수 있거나 소위 참조 계층 위치 오프셋의 하나 이상의 유형으로 표시될 수 있다. HEVC에서, 참조 계층 위치 오프셋은 인코더에 의해 PPS에 포함되고 디코더에 의해 PPS로부터 디코딩될 수 있다. 참조 계층 위치 오프셋은 ROI 스케일가능성을 달성하기 위해 사용되지만 이로 제한되지 않는다. 참조 계층 위치 오프셋은 스케일링된 참조 계층 오프셋, 참조 영역 오프셋 및 재샘플링 위상 세트 중 하나 이상을 포함할 수 있다. 스케링된 참조 계층 오프셋은 참조 계층에서의 디코딩된 화상 내의 참조 영역의 상부 좌측 루마 샘플과 콜로케이트된 현재 화상의 샘플 사이의 수평 및 수직 오프셋과 참조 계층에서의 디코딩된 화상 내의 참조 영역의 하부 우측 루마 샘플과 콜로케이트된 현재 화상의 샘플 사이의 수평 및 수직 오프셋을 지정하는 것으로 간주될 수 있다. 또 다른 방법은 스케일링된 참조 계층 오프셋을 고려하여 향상 계층 화상의 각 코너 샘플에 대해 업샘플링된 참조 영역의 코너 샘플의 위치를 지정하는 것이다. 스케일링된 참조 계층 오프셋 값들은 서명될 수 있다. 참조 영역 오프셋은 참조 계층 내의 디코딩된 화상에서의 참조 영역의 상부 좌측 루마 샘플과 동일한 디코딩된 화상의 상부 좌측 루마 샘플 사이의 수평 및 수직 오프셋뿐만 아니라 참조 계층 내의 디코딩된 화상에서의 참조 영역의 하부 우측 루마 샘플과 동일한 디코딩된 화상의 하부 우측 루마 샘플 사이의 수평 및 수직 오프셋을 지정하는 것으로 간주될 수 있다. 참조 영역 오프셋 값들은 서명될 수 있다. 재샘플링 위상 세트는 계층 간 예측을 위한 소스 화상의 재샘플링 프로세스에서 사용되는 위상 오프셋을 특정하는 것으로 고려될 수 있다. 루마 및 크로마 컴포넌트에 대해 상이한 위상 오프셋이 제공될 수 있다.
프레임 호환가능 입체 비디오(입체 비디오의 프레임 패킹이라고도 함)에서, 인코딩을 위한 전처리 단계로서 인코더 측에서 단일 프레임으로의 스테레오 쌍의 공간 패킹이 수행된 다음 프레임 패킹된 프레임은 기존 2D 비디오 코딩 스킴으로 인코딩된다. 디코더에 의해 생성된 출력 프레임은 스테레오 쌍의 구성 프레임을 포함한다.
전형적인 동작 모드에서 각 시점의 원래 프레임과 패키징된 단일 프레임의 공간 해상도는 동일한 해상도를 갖는다. 이 경우 인코더는 패킹 동작 전에 입체 비디오의 두 가지 시점을 다운샘플링한다. 공간 패킹은, 예를 들어, 좌우(side-by-side) 또는 상하(top-bottom) 포맷을 사용할 수 있고, 그에 따라 다운샘플링이 수행되어야 한다.
다음과 같은 이유들로 인해, 프레임 패킹이 다중 시점 비디오 코딩(예를 들어, H.264/AVC의 MVC 확장 또는 H.265/HEVC의 MV-HEVC 확장)보다 바람직할 수 있다:
- 후반 제작 작업흐름(post production workflow)는 단일 비디오 신호에 맞춤화될 수 있다. 일부 후반 제작 도구는 두 개의 개별 화상 시퀀스를 처리할 수 없고/없거나 개별 화상 시퀀스를 서로 동기화되어 유지하지 못할 수도 있다.
- 전송 프로토콜과 같은 분배 시스템은 단일 코딩된 시퀀스만을 지원할 수 있고/있거나 서로 동기화되어 별도의 코딩된 시퀀스를 유지하지 못할 수도 있고/있거나 서로 동기화되어 별도의 코딩된 시퀀스를 유지하도록 더 많은 버퍼링 또는 레이턴시를 요구할 수 있다.
- 다중 시점 비디오 코딩 도구를 갖는 비트스트림의 디코딩은 플레이어에서 이용 가능하지 않을 수도 있는 특정 코딩 모드의 지원을 필요로 할 수 있다. 예를 들어, 많은 스마트폰은 H.265/HEVC Main 프로파일 디코딩을 지원하지만 HEVC 다중 시점 메인 프로파일 디코딩이 메인 프로파일에 비해 고수준 추가만 필요하다 하더라도 HEVC 다중 시점 메인 프로파일 디코딩을 처리할 수 없다.
일부 스케일가능 비디오 코딩 스킴은 액세스 단위에서의 모든 화상이 IRAP 화상이거나 액세스 단위에서의 어떠한 화상도 IRAP 화상이 아닌 방식으로 IRAP 화상이 계층에 걸쳐 정렬되도록 요구할 수 있다. HEVC의 다중 계층 확장과 같은 다른 스케일가능 비디오 코딩 스킴은 정렬되지 않은, 즉 액세스 단위에서 하나 이상의 화상은 IRAP 화상인 반면, 액세스 단위에서 하나 이상의 다른 화상은 IRAP 화상이 아닌, IRAP 화상을 허용할 수 있다. 계층들에 걸쳐 정렬되지 않은 IRAP 화상 또는 유사한 IRR 화상을 갖는 스케일가능 비트스트림은, 예를 들어, 기반 계층에서 보다 빈번한 IRAP 화상을 제공하기 위해 사용될 수 있는데, 여기서 이들은, 예를 들어, 더 작은 공간 해상도를 가질 수 있다. 디코딩의 계층적 시작(layer-wise start-up)을 위한 프로세스 또는 메커니즘은 비디오 디코딩 스킴에 포함될 수 있다. 따라서, 디코더는 기반 계층이 IRAP 화상을 포함할 때 비트스트림의 디코딩을 시작할 수 있고 다른 계층이 IRAP 화상을 포함할 때 다른 계층을 단계적으로 디코딩하기 시작할 수 있다. 다시 말해, 디코딩 메커니즘 또는 프로세스의 계층적 시작에서, 디코더는 추가적인 향상 계층으로부터의 후속 화상들이 디코딩 프로세스에서 디코딩되므로 디코딩된 계층의 수를 점진적으로 증가시킨다(여기서 계층은 공간 해상도, 품질 수준, 시점, 깊이와 같은 추가 컴포넌트, 또는 조합을 나타낼 수 있음). 디코딩된 계층의 수의 점진적인 증가는, 예를 들어, (품질 및 공간 스케일가능성의 경우에) 화상 품질의 점진적인 향상으로 여겨질 수 있다.
계층적 시작 메커니즘은 특정 향상 계층에서의 디코딩 순서에서 첫 번째 화상의 참조 화상에 이용할 수 없는 화상을 생성할 수 있다. 대안적으로, 디코더는 디코딩 순서에서, 계층의 디코딩이 시작될 수 있는 IRAP 화상에 선행하는 화상들의 디코딩을 생략할 수 있다. 생략될 수 있는 화상들은 인코더 또는 비트스트림 내의 다른 엔티티에 의해 특별히 라벨링될 수 있다. 예를 들어, 하나 이상의 특정 NAL 단위 유형이 사용될 수 있다. 그러한 화상들은 NAL 단위 유형으로 구체적으로 마킹되거나, 예를 들어, 디코더에 의해, 추론되는지에 관계 없이, 크로스 레이어 랜덤 액세스 스킵(cross layer random access skip: CL-RAS) 화상으로 지칭될 수 있다. 디코더는 생성된 이용 가능하지 않은 화상 및 디코딩된 CL-RAS 화상의 출력을 생략할 수 있다.
스케일가능성은 두 가지 기본 방식으로 가능하게 될 수 있다. 스케일가능한 표현의 더 낮은 계층으로부터 신택스 또는 픽셀 값의 예측을 수행하기 위한 새로운 코딩 모드를 도입하는 것에 의해서, 아니면 더 낮은 계층 화상을 더 높은 계층의 참조 화상 버퍼(디코딩된 화상 버퍼(Decoded Picture Buffer: DPB)로 배치하는 것에 의해서이다. 첫 번째 접근법은 더 융통성 있고 따라서 대부분의 경우에 더 나은 코딩 효율을 제공할 수 있다. 그러나, 두 번째인 참조 프레임 기반 스케일가능성 접근법은 이용가능한 코딩 효율 이득의 대부분을 여전히 달성하면서 단일 계층 코덱에 대한 최소 변경으로써 매우 효율적으로 구현될 수 있다. 근본적으로 참조 프레임 기반 스케일가능성 코덱은 단지 외부 수단에 의해 DPB 관리에 주의하여, 모든 계층에 대해 동일한 하드웨어 또는 소프트웨어 구현을 활용함으로써 구현될 수 있다.
품질 스케일가능성(신호 대 잡음(Signal-to-Noise) 또는 SNR로도 알려짐) 및/또는 공간적 스케일가능성을 위한 스케일가능 비디오 인코더는 다음과 같이 구현될 수 있다. 기반 계층에 대하여, 종래의 비-스케일가능(non-scalable) 비디오 인코더 및 디코더가 사용될 수 있다. 기반 계층의 재구성된/디코딩된 화상은 향상 계층을 위해 참조 화상 버퍼 및/또는 참조 화상 리스트에 포함된다. 공간적 스케일가능성의 경우, 재구성된/디코딩된 기반 계층 화상은 향상 계층 화상을 위한 참조 화상 리스트 내에 그것을 삽입하기에 앞서 업샘플링될(upsampled) 수 있다. 기반 계층 디코딩된 화상은 향상 계층의 디코딩된 참조 화상과 유사하게 향상 계층 화상의 코딩/디코딩을 위한 참조 화상 리스트(들) 내에 삽입될 수 있다. 따라서, 인코더는 인터 예측 참조로서 기반 계층 참조 화상을 선택하고 코딩된 비트스트림 내에 참조 화상 인덱스와 함께 그것의 사용을 나타낼 수 있다. 디코더는 비트스트림으로부터, 예를 들어, 참조 화상 인덱스로부터, 기반 계층 화상이 향상 계층을 위한 인터 예측 참조로서 사용됨을 디코딩한다. 디코딩된 기반 계층 화상이 향상 계층을 위한 예측 참조로서 사용되는 경우, 그것은 계층 간 참조 화상으로 지칭된다.
이전의 단락이 스케일가능 비디오 코덱을 향상 계층 및 기반 계층을 구비한 두 스케일가능성 계층과 함께 설명하였으나, 그 설명은 두 개보다 많은 계층을 갖는 스케일가능성 계층구조 내의 임의의 두 계층으로 일반화될 수 있다는 점이 이해될 필요가 있다. 이 경우, 인코딩 및/또는 디코딩 프로세스에서 제2 향상 계층은 제1 향상 계층에 의존할 수 있고, 따라서 제1 향상 계층은 제2 향상 계층의 인코딩 및/또는 디코딩을 위한 기반 계층으로 간주될 수 있다. 나아가, 향상 계층의 참조 화상 리스트 또는 참조 화상 버퍼 내의 하나보다 많은 계층으로부터의 계층 간 참조 화상이 있을 수 있고, 이 계층 간 참조 화상 각각은 인코딩 및/또는 디코딩되는 향상 계층을 위한 참조 계층 또는 기반 계층 내에 있다고 간주될 수 있다는 점이 이해될 필요가 있다. 더욱이, 참조 계층 화상 업샘플링이 아닌 다른 유형의 계층 간 프로세싱이 그 대신에 또는 추가적으로 발생할 수 있다는 점이 이해될 필요가 있다. 예를 들어, 계층 간 화상의 샘플들의 비트 깊이는 향상 계층의 비트 깊이로 변환될 수 있고/있거나 샘플 값은 참조 계층의 컬러 공간에서 향상 계층의 컬러 공간으로 맵핑될 수 있다.
스케일가능 비디오 코딩 및/또는 디코딩 스킴은 다중 루프 코딩 및/또는 디코딩을 사용할 수 있는데, 이는 다음과 같이 특징지어질 수 있다. 인코딩/디코딩에서, 기반 계층 화상은 동일한 계층 내에서 코딩/디코딩 순서로 후속 화상을 위한 움직임 보상 참조 화상으로서 또는 계층 간 (또는 시점 간 또는 컴포넌트 간) 예측을 위한 참조로서 사용되도록 재구성/디코딩될 수 있다. 재구성된/디코딩된 기반 계층 화상은 DPB 내에 저장될 수 있다. 향상 계층 화상은 마찬가지로 동일한 계층 내에서 코딩/디코딩 순서로 후속 화상을 위한 움직임 보상 참조 화상으로서 또는 만약 더 높은 향상 계층이 있다면 이를 위한 계층 간 (또는 시점 간 또는 컴포넌트 간) 예측을 위한 참조로서 사용되도록 재구성/디코딩될 수 있다. 재구성/디코딩된 샘플 값 외에, 기반/참조 계층의 신택스 요소 값 또는 기반/참조 계층의 신택스 요소 값으로 도출되는 변수는 계층 간/컴포넌트 간/시점 간 예측에서 사용될 수 있다.
계층 간 예측은 (인코딩되거나 디코딩되고 있는) 현재 화상의 계층과 다른 계층으로부터의 참조 화상의 데이터 요소(예를 들어, 샘플 값 또는 움직임 벡터)에 의존하는 방식으로 예측으로서 정의될 수 있다. 많은 유형의 계층 간 예측이 존재하며 스케일가능 비디오 인코더/디코더에 적용될 수 있다. 이용 가능한 계층 간 예측 유형은, 예를 들어, 비트스트림 또는 비트스트림 내의 특정 계층이 인코딩되거나, 디코딩 시, 비트스트림 또는 비트스트림 내의 특정 계층이 따르는, 코딩 프로파일에 의존할 수 있다. 대안적으로 또는 추가적으로, 이용 가능한 계층 간 예측 유형은 사용되는 스케일가능성 유형 또는 스케일가능 코덱 또는 비디오 코딩 표준 개정안(예를 들어, SHVC, MV-HEVC 또는 3D-HEVC)의 유형에 의존할 수 있다.
계층 간 예측의 유형은, 계층 간 샘플 예측, 계층 간 움직임 예측, 계층 간 잔차 예측 중 하나 이상을 포함할 수 있지만, 이로 제한되지는 않는다. 계층 간 샘플 예측에서, 계층 간 예측을 위한 소스 화상의 재구성된 샘플 값들의 적어도 서브 세트는 현재 화상의 샘플 값을 예측하기 위한 참조로서 사용된다. 계층 간 움직임 예측에서, 계층 간 예측을 위한 소스 화상의 움직임 벡터들의 적어도 서브세트는 현재 화상의 움직임 벡터를 예측하기 위한 참조로서 사용된다. 전형적으로, 어떤 참조 화상이 움직임 벡터와 관련되는지를 예측하는 정보는 또한 계층 간 움직임 예측에 포함된다. 예를 들어, 움직임 벡터에 대한 참조 화상의 참조 인덱스는 계층 간 예측 및/또는 화상 순서 카운트일 수 있거나 참조 화상의 임의의 다른 식별은 계층 간 예측될 수 있다. 일부 경우들에서, 계층 간 움직임 예측은 또한 블록 코딩 모드, 헤더 정보, 블록 파티셔닝 및/또는 다른 유사한 파라미터의 예측을 포함할 수 있다. 일부 경우들에서, 블록 파티셔닝의 계층 간 예측과 같은 코딩 파라미터 예측은 다른 타입의 계층 간 예측으로 간주될 수 있다. 계층 간 잔차 예측에서, 계층 간 예측에 대한 소스 화상의 선택된 블록의 예측 오차 또는 잔차가 현재 화상을 예측하는데 사용된다. 3D-HEVC와 같은 다중 시점 및 깊이 코딩에서, 깊이 화상과 같은 제 1 타입의 화상이 기존 텍스트 화상과 같은 제 2 유형의 화상의 계층 간 예측에 영향을 줄 수 있는 교차 컴포넌트 계층 간 예측(cross-component inter-layer prediction)이 적용될 수 있다. 예를 들어, 디스패러티(disparity)가 보상된 계층 간 샘플 값 및/또는 움직임 예측이 적용될 수 있으며, 여기서 디스패리티는 깊이 화상으로부터 적어도 부분적으로 유도될 수 있다.
직접 참조 계층은 계층이 직접 참조 계층인 다른 계층의 계층 간 예측에 사용될 수 있는 계층으로 정의될 수 있다. 직접 예측 계층은 다른 계층이 직접 참조 계층인 계층으로 정의될 수 있다. 간접 참조 계층은 제 2 계층의 직접 참조 계층이 아니지만 제 2 계층의 직접 참조 계층의 직접 참조 계층 또는 간접 참조 계층인 제 3 계층의 직접 참조 계층인 계층으로 정의될 수 있으며, 이 계층은 간접 참조 계층이다. 간접 예측 계층은 다른 계층이 간접 참조 계층인 계층으로 정의될 수 있다. 독립적 계층은 직접 참조 계층을 갖지 않는 계층으로 정의될 수 있다. 즉, 독립적 계층은 계층 간 예측을 사용하여 예측되지 않는다. 비 기반 계층은 기반 계층이 아닌 임의의 다른 계층으로 정의될 수 있고, 기반 계층은 비트스트림에서 최하위 계층으로 정의될 수 있다. 독립적인 비 기반 계층은 독립적 계층 및 비 기반 계층 둘 모두인 계층으로 정의될 수 있다.
계층 간 예측을 위한 소스 화상은 현재 화상의 예측을 위한 참조 화상으로서 사용될 수 있는 계층 간 참조 화상이거나 또는 유도하는데 사용되는 디코딩된 화상으로 정의될 수 있다. 다중 계층 HEVC 확장에서, 계층 간 참조 화상은 현재 화상의 계층 간 참조 화상 세트에 포함된다. 계층 간 참조 화상은 현재 화상의 계층 간 예측을 위해 사용될 수 있는 참조 화상으로서 정의될 수 있다. 코딩 및/또는 디코딩 프로세스에서, 계층 간 참조 화상은 장기 참조 화상으로서 처리될 수 있다.
계층 간 예측을 위한 소스 화상은 현재 화상과 동일한 액세스 단위 내에 있도록 요구될 수 있다. 일부 경우들에서, 예를 들어, 재샘플링, 움직임 필드 맵핑 또는 다른 계층 간 프로세싱이 필요하지 않을 때, 계층 간 예측 및 각각의 계층 간 참조 화상에 대한 소스 화상은 동일할 수 있다. 일부 경우들에서, 예를 들어, 참조 계층의 샘플링 그리드를 (인코딩 또는 디코딩되고 있는) 현재 화상의 계층의 샘플링 그리드와 매칭시키기 위해 리샘플링이 필요할 때, 계층 간 프로세싱이 적용되어 계층 간 예측을 위한 소스 화상으로부터 계층 간 참조 화상을 도출한다. 이러한 계층 간 프로세싱에 관한 예는 다음 단락에서 설명된다.
계층 간 샘플 예측은 계층 간 예측을 위한 소스 화상의 샘플 어레이(들)의 재샘플링을 포함할 수 있다. 인코더 및/또는 디코더는, 예를 들어, 향상 계층 및 그의 참조 계층의 쌍에 대한 참조 계층 위치 오프셋에 기초하여, 해당 쌍에 대한 수평 스케일 인자(예를 들어, 변수 ScaleFactorX에 저장됨) 및 수직 스케일 인자(예를 들어, 변수 ScaleFactorY에 저장됨)를 도출할 수 있다. 스케일 인자 중 하나 또는 둘 모두가 1과 동일하지 않으면, 향상 계층 화상을 예측하기 위한 계층 간 참조 화상을 생성하도록 계층 간 예측을 위한 소스 화상이 재샘플링될 수 있다. 재샘플링에 사용되는 프로세스 및/또는 필터는, 예를 들어, 코딩 표준에서 사전정의될 수 있고/있거나 (예를 들어, 사전정의된 재샘플링 프로세스 또는 필터 중 하나의 인덱스로서) 비트스트림에서 인코더에 의해 표시되고/되거나 비트스트림으로부터 디코더에 의해 디코딩될 수 있다. 상이한 재샘플링 프로세스는 스케일 인자의 값에 따라 인코더에 의해 표시되고/되거나 디코더에 의해 디코딩되고/되거나 인코더 및/또는 디코더에 의해 추론될 수 있다. 예를 들어, 두 스케일 인자가 1보다 작으면, 사전정의된 다운샘플링 프로세스가 추론될 수 있고, 두 스케일 인자가 1보다 클 때, 사전정의된 업샘플링 프로세스가 추론될 수 있다. 추가적으로 또는 대안적으로, 상이한 재샘플링 프로세스는 어떤 샘플 어레이가 프로세싱되는지에 따라 인코더에 의해 표시될 수 있고/있거나 디코더에 의해 디코딩될 수 있고/있거나 인코더 및/또는 디코더에 의해 추론될 수 있다. 예를 들어, 제 1 재샘플링 프로세스는 루마 샘플 어레이에 사용되도록 추론될 수 있고 제 2 재샘플링 프로세스는 크로마 샘플 어레이에 사용되도록 추론될 수 있다.
SHVC는 컬러 영역 스케일가능성(color gamut scalability)(그러나 이에 국한되지는 않음)에 대한 3D 룩업 테이블(LUT)에 기초하여 가중 예측 또는 컬러 맵핑 프로세스의 사용을 가능하게 한다. 3D LUT 접근법은 다음과 같이 설명될 수 있다. 각 컬러 컴포넌트의 샘플 값 범위는 먼저 2x2x2 옥탄트(octants)를 형성하는 두 개의 범위로 분할될 수 있고, 루마 범위는 최대 8x2x2 옥탄트를 야기하는 4개의 부분으로 분할될 수 있다. 각 옥탄트 내에서 교차 컬러 구성 요소 선형 모델(cross color component linear model)이 적용되어 컬러 맵핑이 수행된다. 각 옥탄트에 대해, 4개의 꼭지점은 비트스트림으로 인코딩되고/되거나 비트스트림으로부터 디코딩되어 옥탄트 내에 선형 모델을 나타낸다. 컬러 맵핑 테이블은 각 컬러 컴포넌트에 대해 개별적으로 비트스트림으로 인코딩되고/되거나 비트스트림으로부터 디코딩된다. 컬러 맵핑은 다음 세 단계를 수반하는 것을 고려된다: 첫째, 주어진 참조 계층 샘플 트리플렛(Y, Cb, Cr)이 속하는 옥탄트가 결정된다. 둘째, 루마 및 크로마의 샘플 위치는 컬러 컴포넌트 조정 프로세스를 적용을 통해 정렬될 수 있다. 셋째, 결정된 옥탄트에 대해 지정된 선형 맵핑이 적용된다. 맵핑은 교차 컴포넌트 속성을 가질 수 있는데, 즉 하나의 컬러 컴포넌트의 입력 값이 다른 컬러 컴포넌트의 맵핑된 값에 영향을 줄 수 있다. 추가적으로, 계층 간 재샘플링이 또한 요구된다면, 재샘플링 프로세스에 대한 입력은 컬러으로 맵핑된 화상이다. 컬러 맵핑은 첫 번째 비트 깊이의 샘플을 다른 비트 깊이의 샘플에 매핑할 수 있다(그러나 반드시 그러할 필요는 없다).
계층 간 움직임 예측은 다음과 같이 실현될 수 있다. H.265/HEVC의 TMVP와 같은 시간적 움직임 벡터 예측 프로세스가 상이한 계층들 간의 움직임 데이터의 리던던시를 이용하기 위해 사용될 수 있다. 이는 다음과 같이 수행될 수 있다: 디코딩된 기반 계층 화상의 업샘플링될 때, 기반 계층 화상의 움직임 데이터는 또한 향상 계층의 해상도에 맵핑된다. 향상 계층 화상이, 예를 들어, HEVC의 TMVP와 같은 시간적 움직임 벡터 예측 메커니즘과 함께, 기반 계층 화상으로부터 움직임 벡터 예측을 이용하는 경우, 대응하는 움직임 벡터 예측자는 맵핑된 기반 계층 움직임 필드로부터 시작된다. 이러한 방식으로, 상이한 계층의 움직임 데이터 간의 상관관계가 스케일가능 비디오 코더의 코딩 효율을 향상시키는데 이용될 수 있다. SHVC 및/또는 유사하게, 계층 간 움직임 예측은 TMVP 도출을 위해 콜로케이티드 참조 화상으로서 계층 간 참조 화상을 설정함으로써 수행될 수 있다.
MVC와 유사하게, MV-HEVC에서, 시점 간 참조 화상은 코딩되거나 디코딩되는 현재 화상의 참조 화상 리스트(들) 내에 포함될 수 있다. SHVC는 (H.264/AVC의 SVC 확장과 달리) 다중 루프 디코딩 동작을 사용한다. SHVC는 참조 인덱스 기반(reference index based) 접근법을 사용하는 것으로 간주될 수 있는데, 즉 (앞서 기술된 바와 같이) 코딩되거나 디코딩되는 현재 화상의 하나 이상의 참조 화상 리스트에 계층 간 참조 화상이 포함될 수 있다.
향상 계층 코딩을 위해, HEVC 기반 계층의 개념 및 코딩 도구가 SHVC, MV-HEVC 등에서 사용될 수 있다. 그러나, 향상 계층을 효율적으로 코딩하기 위해 참조 계층 내의 이미 코딩된 데이터(재구성된 화상 샘플 및 움직임 파라미터, 일명 움직임 정보를 포함함)을 이용하는 추가적인 계층 간 예측 도구는 SHVC, MV-HEVC 및/또는 유사 코덱에 통합될 수 있다.
코딩 표준 또는 시스템은 디코딩이 동작하는 스케일가능 계층 및/또는 하위 계층을 나타낼 수 있고/있거나 스케일가능 계층을 포함하는 서브 비트스트림 및/또는 디코딩되고 있는 하위 계층과 연관될 수 있는 용어 동작 포인트 또는 유사 포인트를 지칭할 수 있다. HEVC에서 동작 포인트는 다른 비트스트림, 타겟 최상위 TemporalId 및 타겟 계층 식별자 목록을 입력으로서 갖는 하위 비트스트림 추출 프로세스의 동작에 의해 다른 비트스트림으로부터 생성된 비트스트림으로 정의된다.
HEVC의 VPS는 계층 세트 및 이러한 계층 세트에 대한 HRD 파라미터를 지정한다. 계층 세트는 서브 비트스트림 추출 프로세스에서 타겟 계층 식별자 리스트로서 사용될 수 있다. HEVC에서, 계층 세트는 또 다른 비트스트림, 즉 6과 동일한 타겟 최상위 TemporalId, 및 입력으로서의 계층 세트와 연관된 계층 식별자 리스트와 같은 타겟 계층 식별자 리스트를 갖는 서브 비트스트림 추출 프로세스의 동작에 의해 다른 비스스트림으로부터 생성된 비트스트림 내에 표현된 계층들의 세트로 정의될 수 있다.
출력 계층은 디코딩 프로세스에 의해 디코딩된 화상이 출력되는 계층으로 정의될 수 있다. 출력 계층들은 다중 계층 비트스트림의 어느 서브세트가 디코딩되는지에 의존할 수 있다. 디코딩 프로세스에 의해 출력된 화상은 추가 처리될 수 있는데, 예를 들어, YUV 컬러 공간에서 RGB로의 컬러 공간 변환이 수행되고 디스플레이될 수 있다. 그러나, 추가 프로세싱 및/또는 디스플레이는 디코더의 외부의 프로세스 및/또는 디코딩 프로세스인 것으로 간주될 수 있고 발생하지 않을 수도 있다.
다중 계층 비디오 비트스트림에서, 동작 포인트는 타겟 출력 계층 세트로 정의될 수 있다. 예를 들어, 동작 포인트는 다른 비트스트림, 타겟 최상위 시간적 하위 계층(예를 들어, 타겟 최상위 TemporalId), 및 입력으로서의 타겟 계층 식별자 리스트를 갖는 서브 비트스트림 추출 프로세스의 동작에 의해 다른 비트스트림으로부터 생성되고, 출력 계층 세트와 연관되는 비트스트림으로 정의될 수 있다. 대안적으로, 출력 동작 포인트와 같은 다른 용어는 동작 포인트 및 연관된 출력 계층 세트를 지칭할 때 사용될 수 있다. 예를 들어, MV-HEVC/SHVC에서, 출력 동작 포인트는 입력 비트스트림, 타겟 최상위 TemporalId 및 입력으로서의 타겟 계층 식별자 리스트를 서브 비트스트림 추출 프로세스의 동작에 의해 입력 비트스트림으로부터 생성되고, 출력 계층 세트와 연관되는 비트스트림으로 정의될 수 있다.
출력 계층 세트(OLS)는 지정된 계층 세트 중 하나의 계층으로 구성된 계층 세트로 정의될 수 있고. 여기서 계층 세트의 하나 이상의 계층은 출력 계층으로 표시된다. 출력 계층은 디코더 및/또는 HRD가 타겟 출력 계층 세트로서 출력 계층 세트를 사용하여 동작할 때 출력되는 출력 계층 세트의 계층으로 정의될 수 있다. MV-HEVC/SHVC에서, 변수 TargetOlsIdx는 타겟 출력 계층 세트인 출력 계층 세트의 인덱스와 동일한 TargetOlsIdx를 설정함으로써, 어떤 출력 계층 세트가 타겟 출력 계층 세트인지를 지정할 수 있다. 타겟 출력 계층 세트는 인덱스가 TargetOlsIdx와 같은 출력 계층 세트로서 정의될 수 있다. TargetOlsIdx는, 예를 들어, HRD에 의해 설정될 수 있고/있거나 외부 수단, 예를 들어, 플레이어 또는 유사하게 디코더에 의해 제공된 인터페이스를 통해 설정될 수 있다. MV-HEVC/SHVC에서, 출력 계층은 TargetOlsIdx가 출력 계층 세트의 인덱스와 동일할 때 출력되는 출력 계층 세트의 계층으로 정의될 수 있다.
송신자, 게이트웨이, 클라이언트 등은 스케일가능 비디오 비트스트림의 전송된 계층 및/ 또는 하위 계층을 선택할 수 있다. 용어 계층 추출, 계층의 추출 또는 계층 다운 스위칭은 송신자, 게이트웨이, 클라이언트 등에 의해 수신된 비트스트림에서 이용가능한 것보다 적은 계층을 전송하는 것을 지칭할 수 있다. 계층 업스위칭은 송신기, 게이트웨이, 클라이언트 등에 의한 계층 업스위칭 이전에 전송된 계층과 비교하여 추가 계층을 전송하는 것, 즉 앞서 계층 다운스위칭에서 전송이 중단된 하나 이상의 계층의 전송을 재시작하는 것을 지칭할 수 있다. 계층 다운스위칭 및/또는 업 스위칭과 유사하게, 송신기, 게이트웨이, 클라이언트 등은 시간적 하위 계층의 다운 및/또는 업 스위칭을 수행할 수 있다. 송신자, 게이트웨이 클라이언트 등은 계층 및 하위 계층 다운스위칭 및/또는 업스위칭 둘 모두를 수행할 수도 있다. 계층 및 하위 계층 다운스위칭 및/또는 업스위칭은 동일한 액세스 단위에서 또는 유사하게(즉, 동시에) 수행될 수 있거나 상이한 액세스 단위 또는 유사하게(즉, 사실상 별개의 시간에) 수행될 수 있다.
일정한 출력 계층 세트는 각 액세스 단위에서 최상위 계층이 변경되지 않은 사용 경우 및 비트스트림에 적합하지만 최상위 계층이 액세스 단위에서 다른 액세스 단위로 변경되는 사용 경우는 지원하지 않을 수 있다. 따라서 인코더는 비트스트림 내에서 대체 출력 계층의 용도를 지정할 수 있고 대체 출력 계층의 지정된 용도에 응답하여 디코더는 동일한 액세스 단위 내에서 출력 계층 내 화상의 부재 시 대체 출력 계층으로부터 디코딩된 화상을 출력하는 것이 제안되었다. 대체 출력 계층을 나타내는 방법은 여러 가지가 있다. 예를 들어, HEVC에서 특정된 바와 같이, 대체 출력 계층 세트 메커니즘은 단지 하나의 출력 계층만을 포함하는 출력 계층 세트에만 사용되도록 제한될 수 있고, 출력 계층 세트별 플래그(HEVC에서 alt_output_layer_flag[olsldx])는 출력 계층의 임의의 직접 또는 간접 참조 계층이 출력 계층 세트의 출력 계층에 대한 대체 출력 계층의 역할을 할 수 있는 것으로 지정하는 데 사용될 수 있다. 하나 이상의 대체 출력 계층이 사용될 수 있는 경우, 지시된 최소 대체 출력 계층까지 내림차순 계층 식별자 순서로 액세스 단위에 존재하는 제 1 직접 또는 간접 계층 간 참조 화상이 출력되도록 지정될 수 있다.
현재 ISO/IEC 14496-15에 정의된 샘플 엔트리 코드(예를 들어, 'hvcl', 'hevl')에 따른 샘플은 시작 코드 없이 각각이 이들의 바이트 카운트로 프리픽스되는(prefixed) NAL 단위의 시퀀스로 구성된다. 바이트 카운트 필드의 길이는 샘플 엔트리에 표시될 수 있다.
MIME(Multipurpose Internet Mail Extension) 유형이라고도 알려진 인터넷 미디어 유형은 다양한 애플리케이션에 의해 사용되어 리소스 또는 파일의 유형을 식별한다. MIME 유형은 미디어 유형, 하위 유형 및 0개 이상의 선택적 파라미터로 구성된다.
설명된 바와 같이, MIME은, 예를 들어, 비디오 및 오디오, 이미지, 소프트웨어 등과 같이 인터넷에서 여러 종류의 데이터 파일을 전송 및 수신할 수 있게 해주는 전자 메일 프로토콜의 확장이다. 인터넷 미디어 유형은 파일에 포함된 데이터 유형을 나타내기 위해 인터넷에서 사용되는 식별자이다. 이러한 인터넷 미디어 유형은 또한 콘텐츠 유형으로 불릴 수 있다. 상이한 미디어 포맷을 나타낼 수 있는 여러 가지 MIME 유형/하위 유형 조합이 있다. 콘텐츠 유형 정보는 미디어 전송의 시작시에 MIME 헤더 내의 전송 엔티티에 의해 포함될 수 있다. 따라서, 수신 엔티티는 코덱의 이용 가능한 세트가 주어지면 특정 요소가 렌더링될 수 있는지 결정하기 위해 미디어 콘텐츠의 세부사항을 조사할 필요가 있을 수 있다. 특히, 최종 시스템이 제한된 리소스를 갖거나 최종 시스템에 대한 연결이 제한된 대역폭이 갖는 경우 콘텐츠가 렌더링될 수 있는지 여부만 콘텐츠 유형에서 알면 도움이 될 수 있다.
'코덱(codec)'및 '프로파일(profiles)'이라는 두 파라미터는 다양한 MIME 유형 또는 유형/하위유형 조합과 함께 사용되도록 지정되어 내부에 포함된 미디어 포맷이나 전체 컨테이너 포맷의 프로파일(들)에 의해 사용되는 코덱의 명확한 사양을 가능하게 한다.
포함된 미디어를 렌더링하도록 표시된 특정 코덱으로 콘텐츠를 레이블링함으로써, 수신 시스템은 코덱이 최종 시스템에서 지원되는지 여부를 결정할 수 있고 그렇지 않은 경우 적절한 조치(예컨대, 콘텐츠 거부, 상황 알림 송신, 지원되는 유형의 콘텐츠로의 트랜스코딩, 필요한 코덱 페치(fetch) 및 설치, 표시된 코덱의 서브세트를 지원하기에 충분한지를 결정하기 위한 추가 검사 등)를 취할 수 있다. ISOBMFF에서 도출된 파일 포맷의 경우, 코덱 파라미터는 하나 이상의 리스트 아이템들의 쉼표로 구분된 리스트를 포함하는 것으로 간주될 수 있다. 코덱 파라미터의 리스트 아이템이 ISOBMFF 호환 파일의 트랙을 나타낼 때, 리스트 아이템은 트랙의 샘플 엔트리의 4문자 코드를 포함할 수 있다. 리스트 아이템은 트랙의 샘플에 포함된 비트스트림이 따르는 코딩 프로파일(예를 들어, HEVC Main 프로파일)을 추가적으로 나타낼 수 있다.
프로파일 MIME 파라미터는 콘텐츠가 준수하는 사양의 전체 표시를 수신기에 제공할 수 있다. 이는 컨테이너 포맷 및 그 콘텐츠를 일부 사양과 호환된다는 것을 나타낸다. 수신기는 선언된 프로파일 중 지원하는 프로파일 및 그 의미를 확인하기 위해 검사함으로써 수신기가 콘텐츠를 처리하고 렌더링할 수 있는 범위를 산출할 수 있다. ISOBMFF 파일에 대한 프로파일 파라미터는 파일에 포함된 호환 가능한 브랜드의 리스트를 포함하도록 지정될 수 있다.
URI(Uniform Resource Identifier)는 리소스의 이름을 식별하는 데 사용되는. 문자열(string of characters)로 정의될 수 있다. 이러한 식별은 특정 프로토콜을 사용하여 네트워크를 통해 리소스의 표현과 상호작용할 수 있게 한다. URI는 URI에 대한 구체적인 신택스 및 연관 프로토콜을 지정하는 스킴을 통해 정의된다. URL(uniform resource locator) 및 URN(uniform resource name)은 URI의 형식들이다. URL은 웹 리소스를 식별하고 리소스의 표현에 따라 행동하거나 리소스의 표현을 획득하거나, 자신의 기본 액세스 메커니즘 및 네트워크 위치 둘 모두를 지정하는 수단을 명시하는 URI로 정의될 수 있다. URN은 특정 네임 스페이스에서 이름으로 리소스를 식별하는 URI로 정의될 수 있다. URN은 리소스의 위치 또는 리소스에 접근하는 방법을 암시하지 않고 리소스를 식별하는 데 사용될 수 있다.
HTTP(Hypertext Transfer Protocol)는 비디오 스트리밍 애플리케이션과 같이 인터넷을 통해 실시간 멀티미디어 콘텐츠를 전달하는데 데 널리 사용된다.
Microsoft® 스무스 스트리밍, Apple® 적응 HTTP 실시간 스트리밍 및 Adobe® 다이나믹 스트리밍과 같은 HTTP를 통한 적응 스트리밍을 위한 몇 가지 상용 솔루션이 출시되었으며 표준화 프로젝트가 수행되었다. 적응 HTTP 스트리밍(AHS)은 3세대 파트너십 프로젝트(3GPP) 패킷 교환 스트리밍(PSS) 서비스의 릴리스 9(3GPP TS 26.234 릴리스 9: "투명한 종단 간 패킷 교환 스트리밍 서비스 (PSS); 프로토콜 및 코덱")에서 처음 표준화되었다. MPEG는 3GPP AHS 릴리스 9를 MPEG DASH 표준(ISO/IEC 23009-1: "HTTP(DASH)을 통한 다이나믹 적응 스트리밍-파트 1: 미디어 표현 설명 및 세그먼트 포맷", 국제 표준, 제 2 판, 2014)에 대한 시작점으로 취했다. MPEG DASH 및 3GP-DASH는 기술적으로 서로 비슷하므로 집합적으로 DASH라고 지칭될 수 있다. DASH의 일부 개념들, 포맷들 및 동작들은 실시예들은 구현될 수 있는 비디오 스트리밍 시스템의 예로서 이하에 설명된다. 본 발명의 양태들은 DASH에 한정되지 않고, 오히려 이러한 설명은 본 발명이 부분적으로 또는 완전히 실현될 수 있는 하나의 가능한 기반을 위해 제공된다.
DASH에서, 멀티미디어 콘텐츠는 HTTP 서버에 저장될 수 있고 HTTP를 사용하여 전달될 수 있다. 콘텐츠는 두 부분, 즉 이용가능한 콘텐츠, 이의 다양한 대체물, URL 주소 및 기타 특성의 목록을 설명하는 MPD(Media Presentation Description), 및 단일 또는 다중 파일에 실제 멀티미디어 비트스트림을 청크 형태로 포함하는 세그먼트으로 서버에 저장될 수 있다. MDP는 클라이언트가 HTTP를 통해 동적 적응 스트리밍을 수립하는 데 필요한 정보를 제공한다. MPD는 GET 세그먼트 요청을 하기 위해 각 세그먼트의 HTTP-URL(uniform resource locator)와 같은 미디어 프레젠테이션을 설명하는 정보를 포함한다. 콘텐츠를 재생하기 위해, DASH 클라이언트는, 예를 들어, HTTP, 전자 메일, 썸 드라이브, 브로드캐스트 또는 다른 전송 방법을 사용하여 MPD를 획득할 수 있다. DASH 클라이언트는 MPD를 파싱함으로써 프로그램 타이밍, 미디어 콘텐츠 이용가능성, 미디어 유형, 해상도, 최소 및 최대 대역폭, 및 멀티미디어 컴포넌트의 다양한 인코딩된 대안의 존재, 액세스가능성 기능 및 필수 디지털 저작권 관리(digital rights management: DRM), 네트워크 상의 미디어 컴포넌트 위치 및 기타 콘텐츠 특성을 인식할 수 있다. 이러한 정보를 사용하여, DASH 클라이언트는 적절한 인코딩된 대안을 선택할 수 있고, 예를 들어, HTTP GET 요청을 사용하여, 세그먼트를 페치함으로써 콘텐츠 스트리밍을 시작할 수 있다. 네트워크 처리량 변동을 허용하기 위한 적절한 버퍼링 후, 클라이언트는 후속 세그먼트를 계속 페치하고 또한 네트워크 대역폭 변동을 모니터링할 수 있다. 클라이언트는 적절한 버퍼를 유지하기 위해 (낮은 비트레이트 또는 높은 비트레이트를 갖는) 다른 대안의 세그먼트를 페치함으로써 이용가능한 대역폭에 적응하는 방법을 결정할 수 있다.
DASH에서, 도 5에 도시된 바와 같은 미디어 프레젠테이션을 구조화하기 위해 계층적 데이터 모델이 사용된다. 미디어 프리젠테이션은 하나 이상의 Period의 시퀀스로 구성되고, 각 Period는 하나 이상의 Group을 포함하며, 각 Group은 하나 이상의 Adaptation Set를 포함하고, 각 Adaptation Set는 하나 이상의 Representation을 포함하며, 각 Representation은 하나 이상의 Segment로 구성된다. Representation은 전형적으로 인코딩 선택에 따라, 예를 들어, 비트레이트, 해상도, 언어, 코덱 등에 의해, 달라지는 미디어 콘텐츠 또는 이들의 서브세트의 대안적인 선택들 중 하나이다. Segment는 미디어 데이터의 특정 기간 및 포함된 미디어 콘텐츠를 디코딩하고 제시하기 위한 메타데이터를 포함한다. Segment는 URI에 의해 식별되고 전형적으로 HTTP GET 요청에 의해 요청될 수 있다. Segment는 HTTP-URL 및 선택적으로 MPD에 의해 지정되는 바이트 범위와 연관된 데이터의 단위로 정의될 수 있다.
DASH MPD는 XML(Extensible Markup Language)을 준수하므로 XML에 정의된 바와 같은 요소와 속성을 통해 지정된다. MPD는 다음 규칙을 사용하여 지정될 수 있다: XML 문서의 요소는 Element와 같이 대문자의 첫 번째 문자로 식별될 수 있고 요소로 볼드체로 나타날 수 있다. 요소 Element1이 다른 요소 Element2에 포함되어 있음을 표현하기 위해 Element2.Element1로 하나로 기록할 수 있다. 요소의 이름이 두 개 이상의 조합된 단어로 구성되어 있으면, 카멜 표기법(camel-casing)이 사용될 수 있다(예를 들어, ImportantElement). 요소는 정확히 한 번 제시되거나 최소 및 최대 발생이 <minOccurs> ... <maxOccurs>에 의해 정의될 수 있다. XML 문서의 속성은 소문자의 첫 번째 문자로 식별될 수 있을 뿐만 아니라 앞에 '@' 기호가 붙을 수 있다(예를 들어, @attribute). 요소 Element에 포함된 특정 속성 @attribute를 가리키기 위해 Element@attribute를 기록할 수 있다. 속성의 이름이 두 개 이상의 조합된 단어로 구성된 경우, 첫 번째 단어 다음에 카멜 표기법이 사용될 수 있다(예를 들어, @veryImportantAttribute). 속성은 XML에 필수(mandatory: M), 옵션(optional: O), 기본값(optional with default value: OD) 및 조건부 필수(conditionally mandatory: CM)로 상태를 할당할 수 있다.
DASH에서, 독립적 표현은 임의의 다른 표현과 독립적으로 프로세싱될 수 있는 표현으로 정의될 수 있다. 독립적 표현은 독립적인 비트스트림 또는 비트스트림의 독립적 계층을 포함하는 것으로 이해될 수 있다. 종속적 표현은 상보적 표현으로부터의 Segment가 포함된 미디어 콘텐츠 컴포넌트의 표현 및/또는 디코딩에 필요하다는 표현으로 정의될 수 있다. 종속적 표현은, 예를 들어, 스케일가능 비트스트림의 예측된 계층을 포함하는 것으로 이해될 수 있다. 상보적 표현은 적어도 하나의 종속적 표현을 상호보완하는 표현으로 정의될 수 있다. 상보적 표현은 독립적 표현 또는 종속적 표현일 수 있다. 종속적 표현은 @dependencyId 속성을 포함하는 Representation 요소에 의해 기술될 수 있다. 종속적 표현은 디코딩 및/또는 제시를 위한 일련의 상보적 표현 세트에 의존한다는 점을 제외하고는 정규 표현으로 간주될 수 있다. @dependencyId는 모든 상보적 표현, 즉 이 종속적 표현에 포함된 미디어 콘텐츠 컴포넌트를 제시 및/또는 디코딩하는데 필요한 표현의 @id 속성의 값을 포함한다.
DASH의 맥락에서, 다음의 정의가 사용될 수 있다: 미디어 콘텐츠 컴포넌트 또는 미디어 컴포넌트는 개별적으로 미디어 스트림으로 인코딩될 수 있는 할당된 미디어 컴포넌트 유형을 갖는 미디어 콘텐츠의 하나의 연속 컴포넌트로서 정의될 수 있다. 미디어 콘텐츠는 하나의 미디어 콘텐츠 기간 또는 미디어 콘텐츠 기간의 연속적 시퀀스로서 정의될 수 있다. 미디어 콘텐츠 컴포넌트 유형은 오디오, 비디오 또는 텍스트와 같은 단일 유형의 미디어 콘텐츠로 정의될 수 있다. 미디어 스트림은 미디어 콘텐츠 컴포넌트의 인코딩된 버전으로 정의될 수 있다.
초기화 세그먼트(Initialization Segment)는 미디어 세그먼트에 캡슐화된 미디어 스트림을 제시하는 데 필요한 메타데이터를 포함하는 세그먼트로 정의될 수 있다. ISOBMFF 기반 세그먼트 포맷에서, 초기화 세그먼트는 임의의 샘플에 대한 메타 데이터를 포함하지 않는 영화 박스('moov')를 포함할 수 있는데, 즉 샘플에 대한 임의의 메타데이터가 'moof' 박스에 제공된다.
미디어 세그먼트는 정상 속도로 재생하기 위한 특정 지속시간의 미디어 데이터를 포함하고, 이러한 지속시간은 미디어 세그먼트 지속시간 또는 세그먼트 지속시간으로 지칭된다. 콘텐츠 제작자 또는 서비스 제공자는 원하는 서비스 특성에 따라 세그먼트 지속시간을 선택할 수 있다. 예를 들어, 짧은 종단 간 대기시간을 달성하기 위해 라이브 서비스에 상대적으로 짧은 세그먼트 지속시간이 사용될 수 있다. 그 이유는 세그먼트가 DASH를 위한 미디어 데이터를 생성하는 개별 단위이기 때문에 세그먼트 지속시간은 전형적으로 DASH 클라이언트가 인지하는 종단 간 대기시간에 대한 하한값이다. 콘텐츠 생성은 전형적으로 미디어 데이터의 전체 세그먼트를 서버에서 사용할 수 있도록 하는 방식으로 행해진다. 더욱이, 많은 클라이언트 구현은 세그먼트를 GET 요청의 단위로 사용한다. 따라서, 라이브 서비스에 대한 전형적인 배치에서, 세그먼트는 미디어 세그먼트의 전체 지속 기간이 이용 가능할 뿐만 아니라 세그먼트로 인코딩되고 캡슐화될 때만 DASH 클라이언트에 의해 요청될 수 있다. 주문형 서비스의 경우, 세그먼트 지속시간을 선택하는 상이한 전략이 사용될 수 있다.
세그먼트는 서브세그먼트로 더 분할될 수 있다(예를 들어, 세그먼트를 복수의 부분으로 다운로드하는 것이 가능함). 서브세그먼트는 완전한 액세스 단위를 포함하도록 요구된다. 서브세그먼트는 각 서브세그먼트에 대한 프리젠테이션 시간 범위 및 바이트 범위를 매핑하기 위한 정보를 포함하는 세그먼트 인덱스 박스에 의해 인덱싱될 수 있다. 세그먼트 인덱스 박스는 세그먼트의 지속시간 및 바이트 오프셋을 시그널링함으로써 세그먼트에 서브세그먼트 및 스트림 액세스 포인트를 기술할 수도 있다. DASH 클라이언트는 세그먼트 인덱스 박스(들)에서 획득된 정보를 사용하여 바이트 범위 HTTP 요청을 사용하여 특정 세그먼트에 대한 HTTP GET 요청을 할 수 있다. 상대적으로 긴 Segment 지속시간이 사용되면, 그 이후 세그먼트는 비트레이트 적응을 위해 합리적이고 유연한 HTTP 응답 크기를 유지하는데 사용될 수 있다. 세그먼트의 인덱싱 정보는 해당 세그먼트의 시작부에 단일 박스에 실리거나 세그먼트 내 많은 인덱스 박스들에 확산될 수 있다. 계층적, 데이지(daisy) 체인 및 하이브리드와 같은 다양한 확산 방법이 가능하다. 이러한 기법은 세그먼트 시작부에 큰 박스를 추가하지 않으므로 초기 다운로드 지연 가능성을 방지할 수 있다.
하위 표현은 정규 표현에 임베딩되고 SubRepresentation 요소로 기술된다. SubRepresentation 요소는 Representation 요소에 포함된다. SubRepresentation 요소는 표현에 임베딩된 하나 또는 다수의 미디어 콘텐츠 컴포넌트의 속성을 기술한다. 예를 들어, 임베딩된 오디오 컴포넌트(예를 들어, 코덱, 샘플링 레이트 등), 임베딩된 서브타이틀(예를 들어, 코덱) 또는 임베딩된 저품질 비디오 계층(예를 들어, 일부 하위 프레임 레이트 등)의 정확한 속성을 기술한다. 하위 표현 및 표현은 일부 공통 속성 및 요소를 공유한다. @level 속성이 SubRepresentation 요소에 존재하는 경우, 다음 사항이 적용된다:
- 하위표현은 포함된 표현의 저품질 버전에 액세스할 수 있는 기능을 제공한다. 이 경우, 예를 들어, 하위표현은 다중화된 표현의 오디오 트랙 추출을 허용하거나, 더 낮은 프레임 레이트로 제공되는 경우에 효율적인 빨리 감기 또는 되감기 동작을 허용할 수 있다.
- 초기화 세그먼트 및/또는 매체 세그먼트 및/또는 인덱스 세그먼트는 HTTP 부분 GET 요청을 통해 데이터에 쉽게 액세스할 수 있도록 충분한 정보를 제공해야 한다. 그러한 정보를 제공하는 방법에 대한 세부사항은 사용 중인 미디어 포맷에 의해 정의된다.
- ISOBMFF 세그먼트가 사용되는 경우, 다음 사항이 적용된다:
o Initialization Segment는 Level Assignment 박스를 포함한다.
o 각 서브세그먼트에 대해 Subsegment Index box('ssix')가 존재한다.
o 속성 @level은 Subsegment Index에 기술된 Sub-Representation이 연관되어있는 레벨을 지정한다. Representation, Sub-Representation 및 Level Assignment ('leva') 박스는 미디어 데이터를 레벨에 할당하는 정보를 포함한다.
o 미디어 데이터는 각 레벨이 하위 레벨 대비 향상을 제공하도록 순서를 가져야 한다.
@level 속성이 없다면, SubRepresentation 요소는 단지 Representation에 임베딩된 미디어 스트림에 대한 보다 상세한 설명을 제공하기 위해 사용된다.
ISOBMFF는 파일의 서브 세트를 지정하는 소위 레벨 메커니즘을 포함한다. 레벨은 의존성 계층 구조를 따르므로 레벨 n에 매핑된 샘플은 레벨 m(m <= n)의 임의의 샘플에 종속적일 수 있고 레벨 p의 임의의 샘플(여기서 p> n)에 종속되지 않는다. 예를 들어, 레벨들은 시간 하위 계층(예를 들어, SVC의 temporal_id 또는 HEVC의 MVC 또는 TemporalId)에 따라 지정될 수 있다. 레벨은 Movie Extends('mvex') q박스에 포함된 Level Assignment('leva') 박스에서 선언될 수 있다. 초기 동영상에는 레벨을 지정할 수 없다. Level Assignment 박스가 있으면 초기 영화에 후속하는 모든 영화 조각에 적용된다. Level Assignment 박스의 콘텍스트에 대해, 프랙션(fraction)는 마지막 Media Data 박스의 초기 부분만 포함하는 연관된 Media Data 박스 및 하나 이상의 Movie Fragment 박스로 구성되는 것으로 정의된다. 프랙션 내에서, 각 레벨에 대한 데이터가 연속적으로 나타난다. 프랙션 내의 레벨에 대한 데이터는 레벨 값의 증가하는 순서로 나타난다. 프랙션에서의 모든 데이터는 레벨에 할당되어야 한다. Level Assignment 박스는 스케일가능성 계층 또는 시간적 서비 계층과 같은 특징으로부터 레벨로의 매핑을 제공한다. 특징은 트랙, 트랙 내의 서브트랙 또는 트랙의 샘플 그룹화를 통해 지정될 수 있다. 예를 들어, Temporal Level 샘플 그룹화는 HEVC 내의 시간 하위 계층과 동등한 시간 레벨에 대한 화상의 맵핑을 나타내기 위해 사용될 수 있다. 즉, 특정 TemporalId 값의 HEVC 화상은 Temporal Level 샘플 그룹화를 사용하여 특정 시간 레벨에 맵핑될 수 있다 (그리고 모든 TemporalId 값에 대해 반복될 수 있음). 그 이후 Level Assignment 박스는 레벨에 표시된 매핑에서 Temporal Level 샘플 그룹화를 참조할 수 있다. Level Assignment 박스는 신택스 요소 padding_flag를 포함한다. padding_flag가 1과 같으면 프랙션 내의 임의의 양의 정수의 레벨을 연결하고 마지막 Media Data 박스를 마지막 Media Data 박스의 헤더에 표시된 전체 크기까지 0바이트로 패딩함으로써 일치하는 프랙션이 형성될 수 있음을 나타낸다. 예를 들어, 각 프랙션이 동일 비디오 비트스트림의 둘 이상의 AVC, SVC, 또는 MVC를 포함하는 경우, flag가 1로 설정될 수 있고, 프랙션의 각 트랙에 대한 샘플은 Media Data 박스 내 디코딩 순서로 연속적이며, 첫 번째 AVC, SVC, 또는 MVC 레벨의 샘플은 동일한 프랙션의 다른 레벨로부터 비디오 코딩 NAL 단위를 포함하기 위한 추출자 NAL 단위를 포함한다.
Subsegment Index 박스('ssix')는 (Level Assignment 박스에 에 의해 지정된) 레벨로부터 인덱싱된 서브세그먼트의 바이트 범위로의 맵핑을 제공한다. 다시 말해, 이 박스는 서브세그먼트의 데이터가 부분적 서브세그먼트의 레벨에 따라 정렬되는 방법에 대한 간략한 인덱스를 제공한다. 이는 클라이언트가 서브세그먼트 내의 데이터 범위를 다운로드하여 부분적 서브세그먼트에 대한 데이터에 쉽게 액세스할 수 있게 한다. 서브세그먼트 인덱스 박스가 존재하는 경우, 서브세그먼트의 각 바이트가 하나의 레벨에 할당된다. 범위가 레벨 할당의 임의의 정보와 연관되지 않은 경우, 그 이후 레벨 할당에 포함되지 않은 임의의 레벨이 사용될 수 있다. 리프 서브세그먼트만을 인덱싱하고, 즉, 서브세그먼트를 단지 인덱싱하고 세그먼트 인덱스는 없는, 각 Segment Index 박스 당 0 또는 1개의 Subsegment Index 박스가 존재한다. Subsegment Index 박스는, 만약 있다면, Subsegment Index 박스 이후 다음 박스이다. Subsegment Index 박스는 바로 앞에 있는 Segment Index 박스에 표시된 서브세그먼트를 기록한다. 각 레벨은 정확히 하나의 부분적 서브세그먼트에 할당될 수 있는데, 즉, 하나의 레벨에 대한 바이트 범위는 연속적이다. 부분적 서브세그먼트의 레벨은 서브세그먼트 내에서 증가하는 수에 의해 할당된다. 즉, 부분 서브 세그먼트의 샘플은 동일한 서브 세그먼트 내의 선행하는 부분적 서브세그먼트의 임의의 샘플에 의존할 수 있지만, 그 반대로는 의존하지 않는다. 예를 들어, 각 부분적 서브세그먼트는 동일한 시간 하위 계층을 갖는 샘플들을 포함하고, 부분적 서브세그먼트들은 서브세그먼트 내에서 증가하는 시간 하위 계층 순서로 나타난다. 부분적 서브세그먼트가 이러한 방식으로 액세스될 때, 최종 미디어 데이터 박스가 불완전할 수 있는데, 즉 미디어 데이터 박스가 존재한다고 나타내는 길이 표시보다 적은 데이터가 액세스된다. 미디어 데이터 박스의 길이를 조정할 필요가 있거나 패딩이 사용될 수도 있다. 레벨 할당 박스의 padding_flag 이 누락된 데이터가 0으로 대체될 수 있는지 나타낸다. 대체될 수 없다면, 액세스되지 않은 레벨에 할당된 샘플의 샘플 데이터가 없으므로 주의해야 한다.
상보적 표현 Y에 의존하는 종속적 표현 X에 대해, X의 m번째 서브세그먼트 및 Y의 n번째 서브세그먼트는 m이 n과 동일하지 않을 때마다 겹치지 않아야 한다. 종속적 표현에 대해, 각 종속적 표현에 앞서 @dependencyId 속성에 제공된 순서에서 상보적 표현의 각각의 대응하는 서브세그먼트가 오고, 종속적 표현의 서브세그먼트의 시퀀스와 초기화 세그먼트의 연결(concatenation)은 이러한 종속적 표현에 대한 @mimeType 속성에 지정된 미디어 형식을 따르는 서브세그먼트 시퀀스를 표현해야 하도록 요구된다.
MPEG-DASH는 ISOBMFF 및 MPEG-2 전송 스트림 둘 모두에 대한 세그먼트 컨테이너 포맷을 정의한다. 다른 사양은 다른 컨테이너 포맷에 기초으로 세그먼트 포맷을 지정할 수 있다. 예를 들어, Matroska 컨테이너 파일 포맷에 기초한 세그먼트 포맷이 제안되었으며 다음과 같이 요약될 수 있다. Matroska 파일은 DASH 세그먼트 또는 그와 유사한 것으로서 운반될 때, DASH 단위와 Matroska 단위의 연관성은 다음과 같이 지정될 수 있다. (DASH의) 서브세그먼트는 Matroska로 캡슐화된 콘텐츠의 하나 이상의 연속 클러스터로 정의될 수 있다. DASH의 초기화 세그먼트는 EBML 헤더, (Matroska의) 세그먼트 헤더, (Matroska의) 세그먼트 정보 및 트랙을 포함하도록 요구되고, 선택적으로 다른 레벨1 요소 및 패딩을 포함할 수 있다. DASH의 세그먼트 인덱스는 Matroska의 Cue 요소를 포함할 수 있다.
SRD는 MPEG-DASH의 표준 부록 H에 명시된다. 다음은 SRD 사양서의 일부 발췌 부분을 포함한다.
SRD 스킴은 미디어 프리젠테이션 기술 저자들이 공간 객체들 간의 공간적 관계를 표현할 수 있게 한다. 공간 객체는 적응 세트 또는 하위 표현으로 표현된다. 일례로, 공간 관계는 비디오가 또 다른 풀 프레임 비디오(예를 들어, 관심 영역 또는 타일)의 공간 부분을 표현하는 것을 나타낼 수 있다.
"urn:mpeg:dash:srd:2014"와 같은 @schemeIdUri가 있는 SupplementalProperty 및/또는 EssentialProperty 디스크립터는 포함하는 공간 객체와 연관된 공간 관계 정보를 제공하는데 사용된다. SRD는 이 두 개의 MPD 요소(AdaptationSet 및 SubRepresentation)에 독점적으로 포함되어야 한다.
레거시 클라이언트와의 호환성을 유지하기 위해, MPD는 EssentialProperty를 포함하는 요소를 폐기한 후에 적어도 하나의 표현이 레거시 클라이언트에 의해 해석될 수 있는 방식으로 SupplementalProperty 및 EssentialProperty를 사용하도록 요구된다.
서브표현 레벨 SRD는 HEVC 타일링 스트림과 같은 하나의 표현에서 공간 객체를 표현하는 데 사용될 수 있다. 이 경우, SRD 디스크립터는 서브표현(Sub-Representation) 레벨뿐만 아니라 적응 세트에도 존재할 수 있다.
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 파라미터는 기간 내에서 콘텐츠 소스에 대한 고유한 식별자를 제공한다. 이것은 이 소스와 연관된 좌표 시스템을 암시적으로 정의한다. 이 좌표계는 임의의 원점(0; 0)을 사용하고, x축은 왼쪽에서 오른쪽으로 향하고 y축은 위에서 아래로 향한다. 동일한 source_id 값을 공유하는 모든 SRD는 동일한 원점 및 축 방향을 갖는다. 상이한 source_id 값을 갖는 SRD를 사용하는 공간 객체에 대한 공간 관계는 정의되지 않는다.
주어진 source_id 값의 경우, 좌측 상단 모서리가 좌표 시스템의 원점에 있는 전체 소스 콘텐츠를 포함하는 직사각형 영역에 대응하는 참조 공간이 정의된다. SRD의 total_width 및 total_height 값은 임의 단위로 표현된 참조 공간의 크기를 임의 단위로 표시한다. total_width는 임의 단위로 참조 공간의 폭을 표현하는 10진수 표현의 음수가 아닌 정수이다. total_height는 임의 단위로 참조 공간의 폭을 표현하는 10진수 표현의 음수가 아닌 정수이다. 예를 들어, 전체 소스 콘텐츠가 두 개의 개별 동영상으로 표현될 때, 콘텐츠의 전체 소스를 다루는 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 저작자는 타일에 대응하는 모든 적응 세트를 동일한 해상도 레벨로 그룹화할 수 있다. 이 방법으로 spatial_set_id 파라미터는 DASH 클라이언트가 공간적으로 관련된 공간 객체를 빠르게 선택하는 데 사용될 수 있다.
수평으로 360도 시야 및 수직으로 180도 시야를 포함하는 (이로써 구형을 표현하는) 파노라마 이미지를 직사각형의 2차원 이미지 평면에 맵핑하기 위한 특정 투영은 등장방형도법 투영(equirectangular projection)으로 알려진다. 이 경우, 수평 좌표는 경도와 동등한 것으로 간주될 수 있고, 수직 좌표는 변환 또는 스케일링이 적용되지 않은 위도와 동등인 것으로 간주될 수 있다. 일부 경우들에서, 360도 수평 시야이지만 180도 미만의 수직 시야를 가진 파노라마 콘텐츠는 등장방형도법 투영의 특수한 경우로 간주될 수 있고, 여기서 구형의 극좌표 영역이 2차원 이미지 평면으로 맵핑된다. 일부 경우들에서, 파노라마는 360도 미만의 수평 시야 및 최대 180도 수직 시야를 가질 수 있지만 다른 등장방형도법 투영 포맷의 특성을 갖는다.
등장방형도법 파노라마와 같은 파노라마는 입체적일 수 있다. 입체 파노라마 포맷에서, 하나의 파노라마 화상은 좌측 시점을 나타낼 수 있고 (동일한 시간 인스턴트 또는 액세스 단위의) 다른 파노라마 화상은 우측 시점을 나타낼 수 있다. 입체 파노라마가 가상 현실 헤드셋과 같은 입체 디스플레이 장치 상에 디스플레이될 때, 좌측 시점 파노라마는 적절한 시야각 및 좌안에 대한 시야로 디스플레이될 수 있고, 우측 시점 파노라마는 우안에 유사하게 디스플레이될 수 있다. 입체 파노라마에서, 입체 시각은 파노라마의 적도(즉, 수직으로 가장 중앙의 픽셀 행)를 향해 발생하는 것으로 가정될 수 있으며, 이는 시야각의 절대적인 경사를 더 크게 하고, 입체 3차원 프리젠테이션의 정확성을 악화시킨다.
큐브 맵 투영 포맷에서, 구형 비디오는 큐브의 6개의 면(측면이라고도 함) 상에 투사된다. 큐브 맵은, 예를 들어, 처음에 각 큐브면을 나타내는 90도 시점 절두체(frustum)에 의해 정의된 시점을 사용하여, 시점으로부터 6번 구면 장면을 렌더링함으로써 생성될 수 있다. 큐브 측면은 동일한 프레임에 프레임 패킹될(frame-packed) 수 있거나 각 큐브 측면이 (예를 들어, 인코딩 시) 개별로 처리될 수 있다. 프레임 상에 큐브 측면을 위치시키는 많은 가능한 순서가 있을 수 있고/있거나 큐브 측면이 회전되거나 미러링될 수도 있다. 프레임 패킹을 위한 프레임 너비 및 높이는, 예를 들어, 3x2 큐브 측면 그리드에 큐브 측면을 "딱" 맞추도록 선택될 수 있거나, 예를 들어, 4x3 큐브 측면 그리드에 사용되지 않는 구성 프레임을 포함할 수 있다.
큐브 맵은 입체적일 수 있다. 입체 큐브 맵은, 예를 들어, 입체 파노라마의 각 시점을 큐브 맵 포맷으로 다시 투사함으로써 도달될 수 있다.
많은 디스플레이 상황에서, 부분 화상만이 디스플레이되어야 하지만, 나머지 화상은 디코딩되도록 요구되지만 디스플레이되지는 않는다. 이러한 디스플레이 상황은 다음을 포함한다:
- 전형적인 HMD(head-mounted display)는 ~100도 시야를 디스플레이하지만, 종종 HMD 소비를 위한 입력 비디오는 360도 전체를 포함한다.
- 전형적인 평면 패널 시청 환경은 최대 40도의 시야를 디스플레이한다. 그러한 디스플레이 상에 와이드 FOV 콘텐츠(예를 들어, 어안)를 디스플레이할 때, 전체 화상보다는 공간 서브 세트를 디스플레이하는 것이 바람직할 수 있다.
이제, 상기 단점을 적어도 완화하기 위해, 움직임 제약 타일 세트에 대한 표준 호환 디코딩을 가능하게 하는 방법이 이하에 제시된다.
도 6(a)에 도시된 방법에서, 움직임 제약 타일 세트를 포함하는 전체 화상 트랙 또는 비트스트림이 획득되고(600), 움직임 제약 타일 세트에 기초하여, 전체 화상 호환 타일 세트 트랙 또는 비트스트림을 구성하기 위한 명령어가 생성된다(602). 방법은 파일 생성기(예를 들어, 도 23의 1530 또는 1570)에 의해 수행될 수 있다.
도 6(b)에 개시된 방법에서, 움직임 제약 타일 세트를 포함하는 전체 화상 트랙 또는 비트스트림이 획득되고(610), 움직임 제약 타일 세트에 기초하여, 전체 화상 호환 타일 세트 트랙 또는 비트스트림이 구성된다(612). 이 방법은 파일 파서(예를 들어, 도 23의 1580)에 의해 또는 디코딩 이전에 플레이어에 의해, 또는 스트리밍 서버(예를 들어, 도 23의 1540)에 의해 수행될 수 있다.
도 7은 실시예의 기저를 이루는 개념에 관한 예를 도시한다. 이 방법에 대한 입력으로서, 하나 이상의 움직임 제약 타일 세트를 포함하는 비트스트림(700)이 획득된다. 예를 들어, 등장방형도법 파노라마 비디오 시퀀스(700, 상부) 또는 프레임 패킹된 어안 다중 시점 시퀀스(700, 하부)가 입력으로 사용될 수 있다. 움직임 제약 타일 세트는 하나 이상의 타일을 포함할 수 있는 직사각형 타일 세트이다. 도 7에서, 흰색 직사각형은 타일 경계를 도시한다. 움직임 제약 타일 세트의 인코딩은 인터 예측 프로세스가 움직임 제약 타일 세트 외부의 어떠한 샘플 값도, 움직임 제약 타일 세트 외부의 하나 이상의 샘플 값을 사용하여 도출된 분수 샘플 위치의 어떠한 샘플 값도 움직임 제약 타일 세트 내의 임의의 샘플의 인터 예측에 사용되지 않도록 제한되는 방식으로 행해진다.
그 이후, 702에서, 움직임 제약 타인의 세브세트가 입력 비트스트림의 움직임 제약 타일 세트로부터 전체 화상 호환 타일 세트 트랙 또는 비트스트림을 구성하기 위한 명령어를 구성하거나 생성하도록 선택된다. 전체 화상 호환 타일 세트 트랙 또는 비트스트림을 구성할 때, 단계 702는, 예를 들어, 스트리밍 동안 또는 스트리밍 전에, 또는 디코딩 전에 파일 파서(예를 들어, 도 23의 1580) 또는 플레이어에서 스트리밍 서버(예를 들어, 도 23의 1540)에 저장될 수 있다. 전체 화상 호환 타일 세트 트랙 또는 비트스트림을 구성하기 위한 명령어를 생성할 때, 단계 702는, 예를 들어, 파일 생성기(예를 들어, 도 23의 1530 또는 1570)에 의해 행해질 수 있다. 이 방법의 출력은 움직임 제약 타일 세트에 기초하여 구성된 전체 화상 호환 타일 세트 트랙(704) 또는 비트스트림이고, 여기서 전체 화상 호환 타일 세트 트랙 또는 비트스트림은 H.265/HEVC 디코더와 같은 그런 표준 비디오 디코더(706)에 의해 디코딩 가능하다. 대안적으로, 출력은 움직임 제약 타일 세트에 기초하여 구성된 전체 화상 호환 타일 세트 트랙 또는 비트스트림을 구성하기 위한 명령어일 수 있다.
일부 예들은 도 8에 도시된 움직임 제약 타일 세트의 분할로 도시된다(그러나 이로 제한되지 않음). 도 8에서, 값 1..8은 타일 세트의 위치를 나타낸다. 대괄호 안의 값은 타일 세트을 포함하는 화상을 나타낸다. 일부 실시예들에서, 세그먼트 또는 서브세그먼트는 N 내지 N + M의 화상을 포함하고, 다른 화상을 배제한다.
도 9는 전체 화상 호환 타일 세트 트랙을 구성하기 위한 명령어의 생성을 포함하는 프로세스를 도시한다. "파일/세그먼트 캡슐화"에서, 움직임 제약 타일 세트를 갖는 비트스트림은 컨테이너 파일 또는 세그먼트(들)(예를 들어, DASH 전달용)로 캡슐화된다. "구성된 타일 세트 트랙 생성"에서, 구성된 타일 세트 트랙은 컨테이너 파일 또는 세그먼트(들)에 설정된 움직임 제약 타일 세트를 포함하는 트랙을 참조하여 생성된다.
상기 프로세스의 결과는 전체 화상 트랙 및 하나 이상의 구성된 타일 세트 트랙을 포함하는 도 10에 도시된 논리 파일 구조와 함께 (ISOBMFF를 참조로 하지만 이에 한정되지 않음) 설명될 수 있다. 하나 이상의 구성된 타일 세트 트랙은 전체 화상 트랙으로부터 구성자 연산자에 따른 참조에 의해 샘플을 포함함으로써 생성된다.
트랙에 대한 샘플 데이터는 파일 내의 청크 또는 트랙 런에 물리적으로 배치될 수 있다. 예를 들어, 각 트랙 내의 샘플 N부터 시작하는 (M + 1)개의 샘플은 각각 임의의 청크 또는 트랙 런의 데이터에 의해 인터리빙되지 않는 청크 또는 트랙 런일 수 있다. 상이한 트랙의 이들 각각의 청크 또는 트랙 런은, 예를 들어, 파일 내에서 연속적으로 정렬될 수 있다. 이는 도 11(a)에 된다(ISOBMFF를 참조하나 이로 제한되지 않는다).
"Constr" 연산은 파일 포맷 샘플을 구성하기 위한 명령어를 의미한다. "Constr"은, 예를 들어, 하나 이상의 NAL 단위 유사 구조를 포함할 수 있고, 각각의 구조는 파일 형식 샘플로의 하나의 NAL 단위로 파일 형식 샘플로 이어진다. 도 11(b)는 VCL NAL 단위에 대한 구성자 연산자에 관한 예를 도시한다.
이 설명에서, 다양한 실시예들을 설명할 때, 다음의 용어 및 그 정의가 사용될 수 있다.
구성된 타일 세트 트랙은 타일 세트 트랙이고, 예를 들어, 실행될 때, 타일 세트 비트스트림으로 이어지는 구성자를 포함하는 ISOBMFF에 따른 트랙이다.
구성자는, 실행될 때, 기초 샘플 포맷에 따라 유효한 샘플 데이터로 이어지는 명령어 세트이다.
추출자(extractor)는, 실행될 때, 표시된 트랙의 표시된 샘플의 표시된 바이트 범위의 샘플 데이터를 복사하는 구성자이다. 참조에 의한 포함은 추출자 또는 비슷하게 정의될 수 있고, 실행될 때, 표시 된 트랙의 표시된 샘플의 표시된 바이트 범위의 샘플 데이터를 복사한다.
전체 화상 호환 타일 세트{track|bitstream}은 전체 화상{track|bitstream} 포맷을 따르는 타일 세트{track|bitstream}이다. 여기서, {optionA|optionB}는 모든 선택에서 일관되게 선택되는 대안, 즉 optionA 또는 optionB를 보여준다. 전체 화상 호환 타일 세트 트랙은 전체 화상 트랙의 파싱 및 디코딩 프로세서를 사용하여 임의의 전체 화상 트랙으로 재생될 수 있다. 전체 화상 호환 비트스트림은 전체 화상 비트스트림의 디코딩 프로세스를 사용하여 임의의 전체 화상 비트스트림으로 디코딩될 수 있다.
전체 화상 트랙은 원본 비트스트림(이의 모든 타일을 포함함)을 표현하는 트랙이다.
인라인 구성자(in-line constructor)는 실행될 때, 포함된 샘플 데이터를 반환하는 구성자이다. 예를 들어, 인라인 구성자는 새로운 슬라이스 헤더를 재기록하기 위한 명령어 세트를 포함할 수 있다. 인라인이라는 어구는 트랙의 샘플에 포함 된 코딩된 데이터를 나타내는 데 사용될 수 있다.
NAL 단위 유사 구조는 시작 코드 에뮬레이션 방지가 수행되지 않는다는 점을 제외하고는 NAL 단위을 갖는 구조를 지칭한다.
사전 구성된 타일 세트 트랙은 샘플 데이터를 인라인으로 포함하는 타일 세트 트랙이다.
타일 세트 비트스트림은 원본 비트스트림의 타일 세트를 포함하지만 전체 원본 비트스트림을 나타내지 않는 비트스트림이다.
타일 세트 트랙은 원본 비트스트림의 타일 세트를 나타내지만 전체 원본 비트스트림을 나타내지는 않는 트랙이다.
타일 세트 비트스트림 구성 또는 구성된 타일 세트 비트스트림을 구성하기 위한 명령어를 포함하는 구성된 타일 세트 트랙의 생성과 관련된 다양한 실시예가 아래에 설명된다. 실시예들은 특히 HEVC에 적용 가능하지만 이로 제한되지 않는다.
일 실시예에서, 움직임 제약 타일 세트에 대해 코딩된 데이터는 전체 화상 비트스트림으로부터 추출되고, 타일 열은 추출된 움직임 제약 타일 세트의 우측에 추가된다. 이 추가된 타일 열은 가상 타일 열(dummy tile column)이라고 지칭될 수 있다.
일 실시예에서, 움직임 제약 타일 세트에 대한 코딩된 데이터는 전체 화상 비트스트림으로부터 추출되고, 타일 행은 추출된 움직임 제약 타일 세트 아래에 추가된다. 이 추가된 타일 행은 가상 타일 행이라고 할 수 있다. 이 실시예는, 예를 들어, 움직임 제약 타일 세트의 폭이 전체 화상 비트스트림의 폭과 동일할 때 또는 움직임 제약 타일 세트의 모든 타일이 동일한 슬라이스 세그먼트에 있을 때, 사용될 수 있다.
일 실시예에서, 가상 타일 열 또는 가상 타일 행은 디코딩의 출력 화상으로부터 제외되도록 표시된다. 예를 들어, 시퀀스 파라미터 세트와 같은 시퀀스 레벨 데이터에 포함된 적합성 크로핑 윈도우(conformance cropping window)(HEVC에 명시된 바와 같음) 또는 그와 유사한 것은 가상 타일 열 또는 가상 타일 행을 제외하고 추출된 움직임 제약 타일 세트를 포함하는데 사용될 수 있다.
일 실시예에서, 가상 타일 열 또는 가상 타일 행의 타일들은 가상 타일이 슬라이스 세그먼트를 끝내는지 나타내는 데 사용된다.
가상 타일 열 추가를 포함하는 실시예에서, 각각의 가상 타일은 슬라이스 세그먼트를 끝내는 방식으로 생성된다. 슬라이스 세그먼트 헤더는 움직임 제약 타일 세트 내의 다음 타일 행의 제 1(즉, 최좌측) 타일 이전에 추가된다.
가상 타일 열 추가를 포함하는 실시예에서, 가상 타일이 디코딩 순서에서 구성된 화상의 마지막 타일일 때, 또는 움직임 제약 타일 세트의 다음 타일 행의 제 1(즉, 최좌측) 타일이 움직임 제약 타일 세트 내 현재 타일 행의 최우측 타일과 상이한 플라이스 세그먼트 내에 포함될 때, 가상 타일은 슬라이스 세그먼트를 끝내는 방식으로 생성된다. 그렇지 않으면, 가상 타일은 슬라이스 세그먼트를 끝내지 않는 방식으로 생성된다.
가상 타일 열 추가를 포함하는 실시예에서, 움직임 제약 타일 세트의 타일을 포함하는 슬라이스 세그먼트(들)의 슬라이스 세그먼트 헤더(들)가 조사될 수 있다. 슬라이스 세그먼트 헤더(들)이 조사를 통해 또는 다른 수단(예를 들어, 사전 정의된 제약 조건)을 통해 본질적으로 동일한 것으로 판명된다면, 구성된 화상은 시작 시에만 슬라이스 세그먼트 헤더를 포함하는 방식으로 생성되고, 구성된 화상에서 디코딩 순서의 마지막인 가상 타일은 슬라이스 세그먼트를 끝내는 방식으로 생성되고, 다른 더미 타일은 슬라이스 세그먼트를 끝내지 않는 방식으로 생성된다.
가상 타일 행 추가를 포함하는 실시예에서, 구성된 화상에서 디코딩 순서로 마지막인 가상 타일은 슬라이스 세그먼트를 종료하는 방식으로 생성되고, 다른 가상 타일은 슬라이스 세그먼트를 끝내지 않는 방식으로 생성된다.
HEVC의 slice_segment_data()의 신택스 구조는 다음과 같이 지정되고, 여기서 ae(v)는 산술 코딩으로 코딩된 신택스 요소, 즉 HEVC에서 신택스 적응 이진 산술 코딩(CABAC)을 나타낸다:
Figure pct00005
HEVC 또는 유사한 신택스에 적용 가능한 실시예에서, 슬라이스 세그먼트를 끝내는 가상 타일은 가상 타일의 디코딩 순서로 마지막 CTU 후에 end_of_slice_segment_flag를 1로 설정함으로써 생성된다. 슬라이스 세그먼트를 끝내지 않는 가상 타일은 end_of_slice_segment_flag를 0으로 설정함으로써(그리고 위의 신택스에 표시된 바와 같이, end_of_subset_one_bit는 1과 같음) 생성된다.
일 실시예에서, 가상 타일 열의 폭은 하나의 CTU와 동일하게 설정된다. 일 실시예에서, 가상 타일 행의 높이는 하나의 CTU와 동일하게 설정된다.
일 실시예에서, 가상 타일은 압축에 효율적인 방식으로 인코딩된다. 예를 들어, 가상 타일의 코딩 단위는 예측 오차 데이터가 존재하지 않고 코딩될 수 있다. 가능한 가장 큰 CU 크기를 사용할 수 있는데, 예를 들어, HEVC에서 split_cu_flag[][]는 가상 타일에서 0으로 설정될 수 있다. 인트라 코딩된 HEVC 더미 타일의 경우 rqt_root_cbf는 0으로 설정될 수 있다(PCM 모드를 사용하지 않는다고 가정). 인터 코딩된 HEVC 가상 타일의 경우, cu_skip_flag[][]는 1로 설정될 수 있다.
타일의 테일(tail)의 재기록(즉, 타일의 끝으로부터 타일의 첫 부분으로 시작하는 바이트의 수)과 함께 타일 세트 비트스트림 구성에 관한 다양한 실시예가 아래에 설명된다.
일 실시예에서, 타일 세트는 전체 화상 비트스트림의 화상 폭보다 작은 폭을 갖는 움직임 제약 타일 세트의 최우측 타일로 구성된다. 각각의 최우측 타일은 타일 세트 비트스트림에서 슬라이스 세그먼트를 끝내도록 설정된다. 슬라이스 세그먼트 헤더는 움직임 제약 타일 세트 내의 다음 타일 행의 제 1(즉, 최우측) 타일 이전에 추가된다.
일 실시예에서, 타일 세트는 움직임 제약 타일 세트의 타일을 포함하는 각각의 슬라이스 세그먼트 당 하나의 타일로 구성되며, 여기서 하나의 타일은 움직임 제약 타일 세트 내의 디코딩 순서에서 대응하는 슬라이스의 마지막 타일이다. 타일세트 내의 각각의 타일은 타일 세트 비트스트림에서 슬라이스 세그먼트를 끝내도록 설정되고, 움직임 제약 타일 세트 내의 다음 타일이 뒤따르는 경우, 슬라이스 세그먼트 헤더가 추가된다.
일 실시예에서, 움직임 제약 타일 세트의 타일을 포함하는 슬라이스 세그먼트(들)의 슬라이스 세그먼트 헤더가 조사될 수 있다. 슬라이스 세그먼트 헤더(들)는 조사를 통해 또는 다른 수단(예를 들어 사전 정의된 제약)을 통해 본질적으로 동일한 것으로 판명된다면, 구성된 화상이 처음에만 슬라이스 세그먼트 헤더를 포함하는 방식으로 생성된다. 움직임 제약 타일 세트의 마지막 타일을 제외한 타일의 경우, 슬라이스 세그먼트가 끝나지 않는 것으로 표시되고, 움직임 제약 타일 세트의 마지막 타일의 경우, 슬라이스 세그먼트가 끝나는 것으로 표시된다.
타일의 테일의 재기록과 함께 타일 세트 비트스트림 구성과 관련된 다양한 실시예가 아래에 설명된다.
일 실시예에서, 그렇지 않으면 동일하지만 제 1 버전이 슬라이스 세그먼트(또는 일부 실시예에서는 슬라이스)를 종료하고 제 2 버전이 슬라이스 세그먼트(또는 일부 실시예에서는 슬라이스)를 종료하지 않는 두 버전의 타일이 인코딩된다. 전체 화상 비트스트림의 목적에 맞는 버전이 전체 화상 비트스트림에 포함된다. 전술된 바와 같이 동일하거나 다른 버전이 타일 세트 비트스트림의 목적에 부합하는지 판정된다. 동일한 버전이 타일 세트 비트스트림의 목적에 부합한 경우, 타일은 타일 세트 트랙에 참조로 포함된다. 다른 버전이 타일 세트 비트스트림의 목적에 부합한 경우, 전체 화상 비트스트림의 타일은 슬라이스 세그먼트의 마지막이 상이하게 표시되는 타일의 테일(예를 들어, 최종 바이트)을 제외하고 타일 세트 트랙에 참조로 포함된다. 타일의 끝부분은 타일 세트 트랙에 인라인으로 포함된다.
일 실시예에서, 전체 화상 비트스트림은 (예를 들어, 전술한 바와 같이) 부분적으로 또는 완전히 엔트로피 디코딩되고 (예를 들어, 전술한 바와 같이) 슬라이스 세그먼트의 끝의 표시가 타일 세트 비트스트림의 목적을 위한 정확한 값인지 판정된다. 슬라이스 세그먼트의 이 타일 세트 비트스트림의 목적을 위한 정확한 값을 갖는 경우, 타일은 타일 세트 트랙에 참조로 포함된다. 슬라이스 세그먼트의 끝이 타일 세트 비트스트림의 목적을 위한 정확한 값을 갖지 않는 경우, 전체 화상 비트스트림의 타일은 타일의 테일(예를 들어, 마지막 바이트)을 제외하고 타일 세트 트랙에서 참조로 포함된다. 타일은 (예를 들어, 전술한 바와 같이) 슬라이스 세그먼트의 끝의 변경된 표시로 완전히 또는 부분적으로 엔트로피 인코딩되고, 엔트로피 인코딩된 타일의 테일은 타일 세트 트랙에 인라인으로 포함된다.
전술한 바와 같이, (예를 들어, H.264/AVC 또는 HEVC에서 지정된 바와 같이) 비디오 데이터를 전송 또는 저장하기 위해 바이트 스트림 포맷을 사용할 때, 시작 코드 에뮬레이션 및 시작 코드 에뮬레이션 방지 처리가 고려되어야 한다.
전체 화상 비트스트림에서 불연속인 타일로부터 타일 세트 비트스트림을 구성 할 때 또는 전체 화상 비트스트림에 존재하지 않는 타일 세트 비트스트림에 데이터를 추가할 때 (예를 들어, 슬라이스 세그먼트 헤더를 부가하는 경우), 시작 코드 에뮬레이션이 발생할 수 있다. 따라서 이러한 경우 시작 코드 에뮬레이션 방지 수단을 포함하도록 주의해야 한다.
전체 화상 비트스트림에서 비연속적인 타일로부터 타일 세트 비트스트림을 구성할 때 또는 전체 화상 비트스트림에 존재하지 않는 타일 세트 비트스트림에 데이터를 추가할 때(예를 들어, 슬라이스 세그먼트 헤더를 추가할 때), 잘못된 시작 코드 에뮬레이션 방지 신택스 요소가 발생할 수 있다. 타일 세트 비트스트림의 3 바이트 시퀀스가 상이한 원점(예를 들어, 비연속 타일)으로부터 바이트를 포함하고 HEVC의 경우 0x000003과 같거나, 보다 일반적으로, 시작 코드 에뮬레이션 방지 바이트 값 패턴과 동일한 경우, 디코더는 3바이트의 마지막 바이트가 에뮬레이션 방지 바이트라고 잘못 판단한다. 따라서, 이러한 경우에 잘못된 시작 코드 에뮬레이션 방지 수단을 사용하지 않아야 한다.
일 실시예에서, 시작 코드 에뮬레이션 방지 신택스 요소(예를 들어, HEVC의 emulation_prevention_three_byte 신택스 요소)는 전체 화상 비트스트림의 코딩된 비디오 데이터(예를 들어, HEVC의 VCL NAL 단위)에서 제거되어, 처리된 전체 화상 비트스트림이 된다. 그 이후 중간 타일 세트 비트스트림은, 예를 들면, 다른 실시예들에서 설명된 바와 같이, 처리된 전체 화상 비트스트림으로부터 구성된다. 시작 코드 에뮬레이션 방지 신택스 요소는 중간 타일 세트 비트스트림에 추가되어 타일 세트 비트스트림을 형성한다.
일 실시예에서, 구성될 타일 세트 비트스트림 내의 상이한 원점으로부터 임의의 2개 이상의 연속 데이터 조각이 시작 코드 또는 거짓 시작 코드 에뮬레이션 방지를 형성하는지 여부가 분석되고, 여기서 시작 코드 에뮬레이션 방지가 타일 세트 비트스트림 내에 추가된다.
일 실시예에서, 상기 실시예(들)에 의해 결론지어진 바와 같이 타일 세트 비트스트림에 추가될 필요가 있는 시작 코드 에뮬레이션 방지 신택스는 타일 세트 트랙에 인라인으로 포함된다.
앞서 도 9에 도시된 실시예는 도 12에 이어지고 도시되는 바와 같은 MPD 생성이 수반된다. 도 9에 도시된 전체 구성과 비교하여, 예를 들어, 파일/세그먼트 캡슐화에서 (서브)세브먼트를 생성하기 위한 구성 및/또는 움직임 제약 타일 세트를 생성하는 구성에 기초하여, 타일 세트 트랙 및 그의 세그먼트 또는 서브세그먼트에 대한 정보를 포함하는 MPD가 생성된다. 대안적으로 또는 추가적으로, MPD 생성은 생성되고 구성된 타일 세트에 대한 입력 정보로서, 예를 들어, 이들의 공간적 위치 및 전체 화상에 대한 크기를 얻을 수 있다.
일 실시예에서, 전체 화상 트랙은 제 1 표현에 대응하고 구성된 타일 세트 트랙(전체 화상 트랙에 대한 참조를 갖는)은 제 2 표현에 대응한다. MPD 생성에서, 제 1 표현은 제 1 적응 세트에 있는 것으로 표시되고 제 2 표현은 제 2 적응 세트에 있는 것으로 표시된다.
일 실시예에서, 제 1 SRD는 제 1 적응 세트에 포함되고 제 2 SRD는 제 2 적응 세트에 포함된다. 제 1 SRD 및 제 2 SRD는, 예를 들어, 이전에 설명된 바와 같은 source_id의 동일한 값을 가짐으로써, 적응 세트가 동일한 참조 공간을 갖도록 표시한다. 구성된 타일 세트 트랙에 의해 표현된 움직임 제약 타일 세트의 위치 및 크기는, 제 1 SRD에 표시될 수도 있는 전체 화상 치수와 관련하여 제 2 SRD에 표시된다.
일 실시예에서, 플레이어는, 예를 들어, 이들이 이전에 설명된 바와 같은 source_id의 동일한 값을 갖는 것에 기초하여, 제 1 적응 세트 및 제 2 적응 세트가 동일한 참조 공간을 나타내는 것으로 결론을 내린다. 플레이어는 제 2 적응 세트에 대해 제 2 적응 세트의 상대적 크기와 위치를 또한 결론 내린다. 예를 들어, 우세한 시청 방향 및 우세한 디스플레이된 시야에 기초하여, 플레이어는 자신의 시청 조건에 가장 적합한 적응 세트를 선택한다.
ISO/IEC 14496-15("ISO 기본 미디어 파일 포맷의 NAL(Network Abstraction Layer) 구조화된 비디오의 운송")에서, 추출자 구조는 하나 이상의 전체 NAL 단위를 추출하기 위한 것이다. 본원에 설명된 실시예들을 위해, 위에서 정의된 추출자 구성자에 의해 달성될 수 있는 부분(전체가 아닌) NAL 단위(들)을 추출하는 것이 필요하다. NAL 단위과 같은 구조는 하나 이상의 전체 NAL 단위으로 실행되는 구성자를 포함하도록 정의될 수 있다. 이 특징은 ISO/IEC 14496-15의 추출자 구조에서 다음과 같은 변경으로 달성될 수 있지만, 실시예들이 이 신택스 또는 시맨틱에 한정되지 않는다는 것을 이해할 필요가 있다.
추출자페이로드 구조(ExtractorPayload structure)는
Figure pct00006
다음과 같이 변경된다:
Figure pct00007
여기서, track_ref_index는 데이터가 추출되는 트랙을 나타내고, sample_offset은 데이터가 추출되는 샘플을 나타내며, data_offset은 데이터가 추출되기 시작하는 샘플 내의 오프셋을 나타내며, data_length는 추출할 바이트 수를 나타낸다. NALUnitHeader 구조눈 NAL 단위 헤더를 포함한다.
InlineNALUnitData 구조는 구성된 NAL 단위에 포함될 데이터 바이트를 포함한다.
Figure pct00008
여기서, 길이는 구성된 NAL 단위에 포함될 바이트 수이고, inline_data는 구성된 NAL 단위에 포함될 데이터 바이트이다.
NAL 단위을 구성하기 위해, 적어도 2개의 상이한 옵션이 제공될 수 있다. 첫 번째 옵션에서, HEVC의 추출자는 하나를 초과하는 익스텐트(extent)로 구성될 수 있도록 재정의된다. 익스텐트는 ExtractorPayload 또는 InlineNALUnitData일 수 있다.
신택스는 다음과 같을 수 있다:
Figure pct00009
두 번째 동작에서, NALUnitConstructor 구조가 명시된다. NALUnitConstructor를 해결하는 것은 하나 이상의 전체 NAL 단위를 야기한다.
Figure pct00010
NALUnitHeader의 시맨틱은 다른 nal_unit_type 값이 사용된다는 점을 제외하면 Extractor의 시맨틱과 동일하고, 예를 들어, 50과 같은 nal_unit_type이 사용된다.
하나 이상의 전체 NAL 단위를 추출하는 추출자의 기존 사용에 비해 제 1 옵션에 의해 야기된 변경의 비용은 1 추가 바이트이다. 이 비용은 적당하기 때문에 첫 번째 옵션은 별도의 NALUnitConstructor 구조의 두 번째 옵션보다 선호될 수 있다.
두 옵션 모두에서, 0인 nal_unit_extent_type은 다음 익스텐트가 ExtractorPayload임을 지정한다. 1인 nal_unit_extent_type은 익스텐트가 InlineNALUnitData임을 지정한다. 1보다 큰 값은 예약되어 있다.
제안된 추출자 또는 NAL 단위 구성자 구조의 해석은 'hvc2'및 'hev2'와 같은 특정 샘플 엔트리 4문자 코드(들)를 지원하는 플레이어에서 지원되도록 요구될 수 있다.
일 실시예에서, 전체 화상 트랙(예를 들어, 샘플 엔트리 코드 'hvcl' 또는 'hevl')으로부터 설정된 움직임 제약 타일 세트를 추출하는 제안된 추출자 또는 NAL 단위 구성자 구조(들)를 포함하는 구성된 타일 세트 트랙이 생성된다. 구성된 타일 세트 트랙은 HEVC와 같은 기본 코딩 포맷 및 추출자 또는 NAL 단위 생성자 구조의 사용을 표시하는 'hvc2' 또는 'hev2'와 같은 샘플 엔트리 코드를 가질 수 있다.
일 실시예에서, 플레이어는 'hvc2' 또는 'hev2' 샘플 입력 코드로 마킹된 전체 화상 호환 타일 세트 트랙을 파싱, 디코딩 및 플레이하도록 결정한다. 플레이어는 트랙의 샘플에 포함된 구성자를 분석하거나 실행하여 전체 화상 호환 타일 세트 비트스트림을 획득한다. 그 이후 플레이어는 HEVC 디코딩 프로세스와 같은 기존 디코딩 프로세스로 전체 화상 호환 타일 세트 비트스트림을 디코딩한다.
유사한 특징을 갖는 HEVC 또는 임의의 다른 코덱을 이용한 구현에 관한 다양한 실시예들이 아래에 설명된다.
일 실시예에서, 전체 화상 호환 타일 세트 트랙의 파라미터 세트는 다음 수정 중 하나 이상을 사용하여 원래의 비트스트림으로부터 복사된다:
- 표시된 레벨은 전체 화상 디코딩보다는 타일 세트 디코딩에 충분한 값으로 설정될 수 있다. 시간 움직임 제약 타일 세트 SEI 메시지는 수정된 파라미터 세트에 사용되기에 적절한 레벨 값(mcts_level_idc[i])을 포함할 수 있다.
- 화상 너비 및 높이는 전체 화상이 아닌 타일 세트에 일치하는 값으로 설정될 수 있다.
- 적합성 크로핑 윈도우(conformance cropping window)는 타일 세트와 매칭되는 값으로 설정될 수 있거나, 타일 세트 비트스트림의 전체 화상 영역이 출력되는 경우에 존재하지 않는 것으로 표시될 수 있다.
- 타일 그리드는 전체 화상이 아닌 타일 세트로 표시될 수 있다.
일 실시예에서, 파라미터 세트는 타일 세트 트랙(들)의 샘플 엔트리 디스크립션에 포함된다. 일 실시예에서, 파라미터 세트는 타일 세트 트랙(들)의 샘플에 포함된다(대안적으로 또는 추가적으로 타일 세트 트랙(들)의 샘플 엔트리 디스크립션에 파라미터 세트를 포함하는 것). 일 실시예에서, 파라미터 세트는 샘플에 인라인으로 포함된다. 일 실시예에서, 파라미터 세트는 대안으로 또는 부가적으로 샘플 내에 인라인으로 파라미터 세트를 포함하는 것이다. 예를 들어, 파라미터 세트의 일 부분은 다른 트랙의 샘플로부터 추출될 수 있고, 파라미터 세트의 다른 부분은 인라인 구성자를 사용하여 포함될 수 있다.
일 실시예에서, 타일 세트 트랙의 NAL 단위 헤더(들)는 인라인 구성자를 사용하여 포함된다.
일 실시예에서, 슬라이스 세그먼트 헤더는 인라인 구성자를 사용하여 타일 세트 트랙의 샘플에 포함된다. 일 실시예에서, 인라인 구성자를 갖는 슬라이스 세그먼트 헤더를 포함하는 것에 추가적으로 또는 대안적으로, 슬라이스 세그먼트 헤더는 다른 트랙으로부터 추출될 수 있다. 예를 들어, 슬라이스 세그먼트 헤더의 일부는 다른 트랙의 샘플로부터 추출될 수 있고, 슬라이스 세그먼트 헤더의 다른 부분은 인라인 구성자를 사용하여 포함될 수 있다. 다음 중 하나 이상은 원래의 전체 화상 비트스트림의 각 슬라이스 세그먼트 헤더와 비교하여 수정될 필요가 있을 수도 있다.
- 화상의 제 1 슬라이스의 표시(HEVC에서, first_slice_segment_in_pic_flag)
- 슬라이스 어드레스 또는 슬라이스의 제 1 블록(예컨대, CTU)의 위치(HEVC에서, slice_segment_address)
- 존재하는 경우 및 슬라이스 세그먼트 내의 타일 수가 변경되는 경우, 엔트리 포인트 오프셋(각각이 타일의 시작을 가리킴)
일 실시예에서, 움직임 제약 타일 세트 내의 타일 행이 슬라이스 세그먼트 헤더로 시작하지 않고 움직임 제약 타일 세트의 폭이 원래 전체 화상 비트스트림의 화상 폭보다 작은 경우 슬라이스 세그먼트 헤더가 타일 세트 트랙에 추가된다.
앞에서 명백해진 바와 같이, 본 방법은 동일한 콘텐츠의 몇몇 인코딩된 버전에 대해 조정된 방식으로 적용될 수 있다. 도 13은 동일한 콘텐츠이지만 해상도가 다른 두 개의 H.265/HEVC 비트스트림으로부터 움직임 제약 타일 세트 트릭/비트스트림이 구성될 수 있는 방법을 도시한다.
인코딩된 버전들은, 예를 들어, 다음 중 하나 이상에서 상이할 수 있다:
- 비트레이트
- 상이한 양자화 파라미터 값을 사용하여 획득될 수 있는 화질
- 공간 해상도
- 컬러 컴포넌트 당 비트 깊이
- 동적 범위
- 컬러 영역
예를 들어, 도 13에 도시된 바와 같이 상이한 공간 해상도로 코딩된 동일한 콘텐츠의 2개의 버전을 고려하면, 그 이후 일 실시예에서, 이들 2개의 버전에서 움직임 제약 타일 세트의 경계는 공간적으로 콜로케이트된다. 이는 상이한 해상도를 갖는 공간적으로 중첩되지 않는 타일 세트 트랙 또는 비트스트림의 생성을 가능하게 한다. 일 실시예에서, 이들 2개의 버전에서 움직임 제약 타일 세트의 경계는 공간적으로 콜로케이트될 필요가 없다. 상이한 해상도들에서의 움직임 제약 타일 세트들은, 예를 들어, 상이한 해상도의 타일 세트 트랙들 또는 비트스트림들 사이의 중첩이 존재하지 않거나 적당한 방식으로 스트리밍 및/또는 디코딩하기 위해 선택될 수 있다.
하나 이상의 고해상도 타일 세트 트랙 또는 비트스트림이 고해상도 버전으로 구성된다. 하나 이상의 저해상도 타일 세트 트랙 또는 비트스트림이 저해상도 버전으로부터 구성된다. 일 실시예에서, 타일 세트 트랙 또는 비트스트림은 콘텐츠의 전체 화상 영역(또는 동일하게 전체 시야)이 커버되는 방식으로 구성된다. 다른 실시예에서, 타일 세트 트랙 또는 비트스트림은 시청 방향에서의 가능한 후속 변경을 고려하여 디스플레이를 위한 충분한 시야가 커버되는 방식으로 구성된다. 일 실시예에서, 고해상도 타일 세트 트랙(들)은 현재의 시청 방향 및 시야를 커버하는 움직임 제약 타일 세트(들)로부터 구성될 수 있다.
앞에서 명백해진 바와 같이, 본 방법은 동일한 콘텐츠의 다수의 인코딩된 계층에 대해 조정된 방식으로 적용될 수 있다. 도 14는 동일한 콘텐츠이지만 해상도가 상이한 두 개의 H.265/HEVC 스케일가능성 계층으로부터 움직임 제약 세트 트랙/비트스트림을 구성하는 방법을 도시한다.
인코딩된 계층들은, 예를 들어, 다음 중 하나 이상에서 상이할 수 있다:
- 비트레이트
- 상이한 양자화 파라미터 값을 사용하여 획득될 수 있는 화질
- 공간 해상도
- 컬러 컴포넌트 당 비트 깊이
- 동적 범위
- 컬러 영역
예를 들어, 상이한 공간 해상도로 코딩된 동일한 내용의 두 개의 계층을 고려하면, 기본 계층은 타일 또는 움직임 제약 타일로 코딩될 필요가 없다. 기본 계층은 H.264/AVC와 같은 다른 코덱으로 코딩될 수 있다. 기본 계층에 대해 타일 세트 트랙 또는 비트스트림 구성이 수행되지 않는다.
예측된 계층은 기본 계층으로부터의 계층 간 예측을 사용한다.
하나 이상의 고해상도 타일 세트 트랙 또는 계층이 예측된 계층으로 구성된다. 일 실시예에서, 고해상도 타일 세트 트랙(들) 또는 계층(들)은 현재의 시청 방향 및 시야를 커버하는 움직임 제약 타일 세트(들)로부터 구성될 수 있다.
일 실시예에서, 스케일링된 참조 계층 오프셋 등과 같은 참조 계층 위치 오프셋은, 예측된 계층이 기본 계층 화상 영역의 어느 부분에 대응하는지 나타내도록 타일 세트 트랙 또는 비트스트림에(예를 들어, 화상 파라미터 세트 내에) 삽입된다. 일 실시예에서, 디코더는 타일 세트 트랙 또는 비트스트림으로부터(예를 들어, 화상 파라미터 세트로부터) 스케일링된 참조 계층 오프셋 등과 같은 참조 계층 위치 오프셋을 디코딩하여 예측된 계층이 기본 계층 화상 영역의 어느 부분에 대응하는지 결정한다. 디코더 또는 디스플레이 프로세스는 이 정보를 사용하여 디코딩된 기본 계층 및 디스플레이될 향상 계층 화상으로부터 샘플을 선택할 수 있다. 예를 들어, 디스플레이에 필요한 시야가 향상 계층 화상(들)에 의해 완전히 커버되지 않으면, 향상 계층에 의해 커버되지 않는 기본 계층 화상의 일부가 디스플레이를 위해 선택될 수 있다.
일 실시예에서, 기본 계층은 예측된 계층의 타일과 콜로케이트하는 움직임 제약 타일로 코딩된다. 또한, 계층 간 예측은 기본 계층에 콜로케이트된 타일 외부의 어떠한 샘플 값 또는 움직임 벡터 정보도 예측된 계층의 타일의 계층 간 예측에 대해 필요하지 않은 방식으로 인코딩시에 제약된다. 기본 계층 또는 기본 계층 트랙은 콜로케이트된 움직임 제약 타일 세트가 기본 계층 및 예측 계층에 대해 구성되는 방식으로 계층 또는 타일 세트 트랙 구성의 대상이 된다.
도 15는 입체 비디오 코딩에 적용되는 실시예를 도시한다. 예시적인 도면은 입체 등장방형도법 파노라마를 도시하지만, 본 방법은 해당 포맷에 제한되지 않고 입체 큐브 맵 포맷과 같은 다른 입체 포맷에도 동일하게 적용된다는 점을 유념해야 한다. 또한, 이하 도면은 두 개 시점의 코딩을 도시하지만 본 방법은 두 개의 시점으로만 제한되지 않고 두 개보다 많은 개수의 시점을 갖는 다중시점 코딩에 적용한다는 점을 또한 유념해야 한다.
도 15에서, 하나의 시점(예를 들어, 좌측 시점)은 움직임 제약 타일을 가지거나 갖지 않고 코딩되며, HEVC(예를 들어, 메인 프로파일) 또는 H.264/AVC와 같은 임의의 코덱으로 코딩될 수 있다. 다른 시점은 움직임 제약 타일을 사용하여 코딩되고 하나 이상의 타일 세트 트랙 또는 비트스트림이 다른 시점으로부터 구성된다. 시점들은 동일한 공간 해상도 또는 기타 특성(예를 들어, 비트레이트, 화질, 컬러 컴포넌트 당 비트 깊이, 동적 범위, 및/또는 컬러 영역)을 가질 필요는 없다.
플레이어는, 예를 들어, 현재 시점 방향에 기초하여, 스트리밍되고/되거나 디코딩될 타일 세트 트랙 또는 비트스트림을 선택할 수 있다. 하나의 시점이 완전히 전송됨에 따라, 플레이어는 (다른 시점으로부터 각각의 콘텐츠가 없는 경우) 단지 하나의 시점으로부터 콘텐츠를 디스플레이함으로써 갑작스러운 시점 방향의 변경을 처리할 수 있다.
일 실시예에서, 두 개의 시점은 움직임 제약 타일을 사용하여 코딩되고, 하나 이상의 타일 세트 트랙 또는 비트스트림이 각각의 시점으로부터 구성된다. 시점은 동일한 공간 해상도 또는 기타 특성(예를 들어, 비트레이트, 화질, 컬러 구성 요소 당 비트 깊이, 동적 범위 및/또는 컬러 영역)을 가질 필요는 없다.
플레이어는, 예를 들어, 현재 시점 방향에 기초하여, 각각의 시점으로부터 스트리밍되고/되거나 디코딩될 타일 세트 트랙 또는 비트스트림을 선택할 수 있다. 이 실시예는, 예를 들어, 시점 방향의 급격한 변화가 일어나지 않거나 발생하지 않을 것 같은 예시적인 시점 환경에 적합할 수 있다.
일 실시예에서, "움직임 제약 타일 세트에 기초한 다중 해상도 부분 화상 디코딩"의 실시예에서 전술한 바와 같이, 양쪽 시점은 다중 해상도로 코딩된다. 하나의 시점 또는 양쪽 시점에 대해, 플레이어는 고해상도로 스트리밍되고/되거나 디코딩될 시점의 하나 이상의 움직임 제약 타일 세트(들)을 선택하는 반면, 나머지 (즉, 콜로케이트되지 않은) 타일 세트의 일부 및 전부는 저해상도로 스트리밍되고/되거나 디코딩된다.
실시예들은 시점들 사이의 시점 간 예측을 갖는 입체 및 다중시점 비디오 코딩에 적용될 수 있다. 본 방법은 임의의 특정 포맷으로 제한되지 않지만 입체 등장방형도법 파노라마 포맷 및 입체 큐브 맵 포맷과 같은 임의의 입체 또는 다중시점 포맷에도 동일하게 적용된다.
일 실시예에서, 하나의 시점(예를 들어, 좌측 시점)은 움직임 제약 타일을 갖거나 갖지 않고 코딩되고, HEVC(예를 들어, 메인 프로파일) 또는 H.264/AVC와 같은 임의의 코덱으로 코딩될 수 있다. 다른 시점은 움직임 제약 타일을 사용하여 코딩되고 하나 이상의 타일 세트 트랙 또는 비트스트림이 다른 시점으로부터 구성된다. 시점 간 예측이 시점들 사이에 적용된다.
플레이어는, 예를 들어, 현재 시점 방향에 기초하여, 스트리밍되고/되거나 디코딩될 타일 세트 트랙 또는 비트스트림을 선택할 수 있다. 하나의 시점이 완전히 전송됨에 따라, 플레이어는 (다른 시점으로부터 각각의 콘텐츠가 없는 경우) 단지 하나의 시점으로부터 콘텐츠를 디스플레이함으로써 갑작스러운 시점 방향의 변경을 처리할 수 있다.
이 실시예는 상이한 공간 해상도를 갖는 시점을 지원하기 위한 코딩 포맷 및 디코딩 능력을 필요로 한다. 예를 들어, MV-HEVC는 그러한 것을 허용하지 않는다는 점을 유념한다. 일반적으로, 시점 간 예측은 상이한 비트 깊이에 대한 스케일링 또는 샘플 어레이 및/또는 움직임 필드를 리샘플링하는 것과 같은 계층 간 프로세싱을 포함할 수 있고, 따라서 시점은 특성(예를 들어, 컬러 컴포넌트 당 비트 깊이, 동적 범위, 및/또는 컬러 영역)을 가질 필요가 없다.
또 다른 실시예가 도 16에 도시된다. 기본 시점(예를 들어, 좌측 시점)은 움직임 제약 타일로 코딩된다. 하나 이상의 타일 세트 트랙 또는 비트스트림이 기본시점으로부터 구성된다. 예측된 시점은 기본 시점으로부터의 시점 간 예측으로 코딩된다. 예측된 시점은 추가적으로 계층 간 제약된 타일인 움직임 제약 타일을 사용하여 코딩된다. 계층 간 제약 타일은 기본 시점에 콜로케이트된 타일의 샘플 및 움직임 데이터만이 시점 간 예측을 위한 참조로 사용되는 방식으로 제한된다. 하나 이상의 타일 세트 트랙 또는 비트스트림은 예측된 시점으로부터 구성된다.
콜로케이트된 타일 세트 트랙 또는 계층이 시점으로부터 구성될 때, 결과적인 타일 세트 트랙 및 비트스트림은 전체 화상 호환형이다. 예를 들어, 기본 시점이 HEVC 메인 프로파일을 따르고 예측된 시점이 HEVC 다중시점 메인 프로파일을 따르는 경우, 결과적인 타일 세트 트랙 및 비트스트림의 기본 시점 및 예측된 시점 또한 각각 HEVC 메인 프로파일 및 HEVC 다중시점 메인 프로파일을 각각 준수한다.
플레이어는, 예를 들어, 현재 시청 방향에 기초하여, 양쪽 시점으로부터 스트리밍되고/되거나 디코딩될 타일 세트 트랙 또는 비트스트림을 선택할 수 있다. 이 실시예는, 예를 들어, 시청 방향의 급격한 변화가 일어나지 않거나 발생하지 않을 것 같은 예시적인 시청 환경에 적합할 수 있다.
일 실시예에서, 둘 이상의 다중시점 비트스트림은 상이한 해상도 및/또는 비트 레이트, 화질, 컬러 컴포넌트 당 비트 깊이, 동적 범위, 및/또는 컬러 영역과 같은 다른 특성으로 각각 인코딩된다. 하나의 시점 또는 양쪽 시점에 대해, 플레이어는 고해상도로 스트리밍되고/되거나 디코딩될 시점의 하나 이상의 움직임 제약 타일 세트를 선택하는 반면, 나머지(즉, 콜로케이트되지 않은) 타일 세트의 일부 또는 전부는 저해상도로 스트리밍되고/되거나 디코딩된다. 예를 들어, 플레이어는 현재 시청 방향에 기초하여 고해상도로 스트리밍되고/되거나 디코딩될 하나 이상의 움직임 제약 타일 세트(들)를 선택할 수 있다.
세그멘터 힌트 생성을 위한 실시예가 도 17에 도시된다. "움직임 제약 타일 세트로 인코딩" 및 "파일/세그먼트 캡슐화" 단계는 다른 실시예들에 설명된 것과 같이 동작한다. "세그먼트 힌트 생성" 단계는 타일 세트 트랙에 대한 세그먼트 또는 서브세그먼트가 생성될 수 있는 명령어(힌트라고도 함)를 생성한다. 명령어는, 예를 들어, 순차적으로 실행되도록 의도된 구성자들의 리스트를 포함할 수 있다. 표시된 바이트 위치에서 다른 파일 또는 트랙에 대한 참조에 의해 데이터를 복사하는 추출자(extractor)(이는 샘플 내에서 샘플 및 바이트 위치를 식별함으로써 표시될 수 있음) 및 명령어에 따라 생성된 세그먼트 또는 서브세그먼트에 포함될 데이터, 및 참조에 의해 복사될 표시된 바이트 범위를 포함하는 인라인 구성자(in-line constructor)와 같은 다양한 유형의 구성자가 이용 가능할 수 있다.
일 실시예에서, 파일/세그먼트 캡슐화는 전체 화상 호환형일 수 있는 미리 구성된 타일 세트 트랙을 생성한다. 또한, 파일/세그먼트 캡슐화는 미리 구성된 타일 세트 트랙을 참조로서 사용하여 구성된 전체 화상 트랙(들)을 생성한다. 명령어는 세그먼트(들) 또는 미디어 파일(들)과 동일한 파일에 저장될 수도 있거나, 별도의 세그먼트 힌트 파일에 저장될 수도 있다. 하지만 명령어의 포맷은 ISOBMFF(또는 더 일반적으로 세그먼트(들) 또는 미디어 파일(들)에 사용되는 포맷)를 따르지 않아도 될 수 있다. 예를 들어, 명령어는 ISOBMFF에 따라 트랙(이는 MPEG-DASH 세그먼트 힌트 트랙으로 불린 수도 있음)을 형성할 수 있고, 트랙의 각 샘플은 세그먼트 또는 서브세그먼트를 구성하기 위한 명령어를 제공할 수 있다.
일 실시예에서, 세그멘터 힌트에 따라 구성된 타일 세트 트랙 및 이들의 세그먼트 또는 서브세그먼트에 대한 정보를 포함하는 MPD가 생성된다. MPD 생성은 이전에 설명한 "MPD 생성" 섹션에서 설명된 것과 유사할 수 있다.
일 실시예에서, 만약 있다면, 전체 화상 트랙은 제 1 표현에 대응하고, 타일 세트 트랙은 제 2 표현에 대응한다. MPD 생성에서, 제 1 표현은 제 1 적응 세트에 있는 것으로 표시되고 제 2 표현은 제 2 적응 세트에 있는 것으로 표시된다.
일 실시예에서, 제 1 SRD는 제 1 적응 세트에 포함되고 제 2 SRD는 제 2 적응 세트에 포함된다. 제 1 SRD 및 제 2 SRD는, 예를 들어, 이전에 설명한 것과 같이 source_id 값을 가짐으로써, 적응 세트가 동일한 참조 공간을 갖도록 표시한다. 타일 세트 트랙에 의해 표현된 움직임 제약 타일 세트의 위치 및 크기는 제 1 SRD에 표시될 수도 있는 전체 화상 치수에 관련하여 제 2 SRD에 표시된다.
일 실시예에서, 플레이어는, 예를 들어, 이전에 설명한 것과 같이 제 1 적응 세트 및 제 2 적응 세트가 동일한 source_id 값을 갖는 것에 기초하여, 이들이 동일한 참조 공간을 나타내는 것으로 결론을 내린다. 플레이어는 제 2 적응 세트에 대해 제 1 적응 세트의 상대적 크기와 위치를 또한 결정한다. 예를 들어. 우세한 시청 방향과 우세한 디스플레이 시야를 통해, 플레이어는 자신의 시청 조건에 가장 적합한 적응 세트를 선택한다.
도 18은 전체 화상 트랙으로부터 움직임 제약 타일 세트를 추출하는 구성자를 갖는 세그멘터 힌트 트랙 또는 세그멘터 파일을 도시한다.
일 실시예에서, URL 정보는 세그멘터 힌트 트랙 또는 세그멘터 파일에 추가될 수 있어, 세그멘터 힌트 트랙의 정확한 부분(예를 들어, 힌트 샘플) 또는 세그멘터 파일을 요청에 사용된 URL과 매칭시키고 MPD 정보 및/또는 이전 (서브)세그먼트(예를 들어, 바이트 범위 정보)로부터 결론을 내린다. 예를 들어, MPD 스키마에서 사용된 것과 유사하거나 동일한 URL 템플릿 스킴을 사용하거나, 세그멘터 힌트 트랙 또는 세그멘터 파일을 디코딩함으로써 생성될 수 있는 각각의 (서브)세그먼트 당 URL을 포함하는 URL 정보가 포함될 수 있다.
도 19는 일 실시예에 따라 서버와 동작 가능하게 연결된 서버 또는 세그멘터가 세그멘터 힌트를 파싱하는 서버 또는 세그멘터 동작을 도시한다. 세그멘터는, 예를 들어, HTTP 서버에 의해 개시되는 서버 측 스크립트 일 수 있다. 서버 또는 세그멘터는 세그멘터 힌트를 파싱하고 파싱된 힌트에 따라 세그먼트 또는 서브세그먼트를 생성한다. 세그먼트 또는 서브세그먼트는 유효한 미리 구성된 타일 세트 트랙의 일부이다.
일 실시예에서, 서버 및/또는 세그멘터는, 예를 들어, HTTP GET 요청을 통해, 요청된 (서브)세그먼트의 URL을 수신한다. 서버 또는 세그멘터는 세그멘터 힌트 트랙 또는 세그멘터 파일에 포함된 URL 정보를 파싱하여 요청된 (서브)세그먼트의 URL과 일치하는 명령어 또는 힌트를 찾는다. 그런 다음 서버 또는 세그멘터는 찾아낸 명령어 또는 힌트를 실행하여 요청된 (서브)세그먼트를 생성한다. 서버 또는 세그멘터는, 예를 들어, HTTP GET 요청에 응답하여, 생성된 (서브)세그먼트를 전송함으로써 요청에 응답한다.
일 실시예에서, 구체적으로 마킹된 명령어 또는 힌트는 초기화 세그먼트에 대한 "세그먼트 힌트 생성"의 일부로서 생성된다. 디코딩될 때, 이 명령어 또는 힌트는 미리 구성된 타일 세트 트랙에 대한 초기화 세그먼트를 생성한다. 초기화 세그먼트는, 예를 들어, FileTypeBox 및 MovieBox를 포함할 수 있다.
일 실시예에서, 파일/세그먼트 캡슐화는 전체 화상 호환형일 수 있는 미리 구성된 타일 세트 트랙을 생성한다. 또한, 파일/세그먼트 캡슐화는 미리 구성된 타일 세트 트랙을 구성을 위한 참조로서 사용하는 구성된 전체 화상 트랙(들)을 생성한다.
일 실시예에서, 미리 구성된 타일 세트 트랙에 대한 정보, 및 미리 구성된 타일 세트 트랙을 구성을 위한 참조로 사용하는 구성된 전체 화상 트랙(들)을 포함하는 MPD가 생성된다. 일 실시예에서, MPD는 세그멘터 힌트 및 전체 화상 트랙(들)에 따라 구성된 타일 세트 트랙(들)에 대해 전술한 것과 유사하게 생성된다.
일 실시예에서, 미리 구성된 타일 세트 트랙의 영화 프래그먼트의 샘플은 제 1 미리 구성된 타일 세트 트랙의 샘플이 제 2 미리 구성된 타일 세트 트랙의 샘플 등 보다 선행하는 방식으로 연속적으로 배열된다. 구성된 전체 화상 트랙(들)의 샘플은 구성을 위한 참조로서 사용되는 사전 구성된 타일 세트 트랙의 샘플을 따른다. 상이한 트랙들의 샘플들 사이의 경계는, 예를 들면, ISOBMFF의 SubsegmentIndexBox를 사용함으로써, 표시될 수 있다. LevelAssingmentBox 또는 유사한 것은 파일 기록자가 SubsegmentIndexBox에 의해 표시된 트랙 기반 레벨이 사용 중임을 표시하기 위해 포함될 수 있다.
도 20에 도시된 일 실시예에서, MPD 생성은 세그먼트(들)에 대해 생성된 레벨에 기초하여, MPD로의 SubRepresentation에 대한 정보를 포함한다. 예를 들어, MIME 타입 및/또는 공간 관계 정보(예를 들어, SRD)가 MPD에 포함될 수 있다. 사전 구성된 타일 세트 트랙에 대응하는 SubRepresentation에 대해 표시된 MIME 타입은 높이 평가되는 움직임 제약 타일 세트를 디코딩하기에 충분한 프로파일 및 레벨을 나타낼 수 있다. 각각의 사전 구성된 타일 세트 트랙에 대한 공간 관계 정보는 표시된 전체 화상 크기에 대한 위치 및 크기를 나타낼 수 있다. 이 정보는 MPEG-DASH에 명시된 바와 같이 SubRepresentation-level SRD를 사용하여 전달될 수 있다.
앞의 프로세스의 결과가 도 21에(참조이지만 ISOBMFF로 제한되지 않음) 도시된다.
일 실시예에서, 전술한 바와 같이 세그먼트(들)를 수신하는 플레이어는 다음과 같이 동작한다: 플레이어는, 예를 들어, MPEG-DASH에 명시된 바와 같이 SubRepresentation-level로부터, 사전 구성된 타일 세트 트랙에 대한 공간 관계 정보를 파싱한다. 파싱된 공간 관계 정보에 기초하여, 플레이어는, 예를 들어, 사전 설정된 타일 세트 트랙이 요청되는 Segment 또는 Subsegment 기반에 대해 동적으로 결정한다. 플레이어는 레벨들 사이의, 즉 사전 구성된 타일 세트 트랙들 사이의, 바이트 경계를 나타내는 SubsegmentIndexBox 또는 유사한 것을 포함하는 Segment 또는 Subsegment의 시작을 획득한다. 따라서, 플레이어는 요청될 바이트 범위를 결론짓고, 그에 따라 HTTP GET 요청과 같은 요청을 발행한다. 서버 측으로부터의 응답으로서, 플레이어는 사전 구성된 타일 세트 트랙에 대해 요청된 데이터를 획득하고, 그 데이터는 디코딩되고 재생될 수 있다.
일 실시예에서, 기본 시점(예를 들어, 좌측 시점)은 움직임 제약 타일 세트로 코딩된다. 예측은 움직임 제약 타일 세트와 유사한 방식으로 코딩된다. 움직임 제약 타일 세트의 경계는 시점들 사이에서 정렬될 수 있다(그러나 일반적으로 정렬될 필요는 없다). 예측된 시점 내의 타일 세트는 또한 계층 간 제약되므로 계층 간 예측은 기본 시점의 각각의 타일 세트 내에서만 샘플 값을 사용한다. 시점 간 예측은 기본 시점 화상의 서브 세트만이 시점 간 예측을 위한 참조로서 사용될 수 있도록 제한된다. 이 서브 세트는 시점 간 참조 서브 세트로 지칭될 수 있다. 예를 들어, 시점 간 참조 서브세트는 기본 시점의 IRAP 화상을 포함할 수 있고, IRAP 화상은 시점들에 걸쳐 정렬될 수 있는데, 즉, 기본 시점에 IRAP 화상이 존재할 때, 동일한 액세스 단위의 예측된 시점에 IRAP가 존재할 수 있으며, 그 역 또한 같다.
타일 세트 트랙/비트스트림 구성 단계에서, 하나 이상의 타일 세트 트랙 또는 비트스트림이 (예를 들어, 도 16과 관련된 다른 실시예들에서 설명되는 바와 같이) 기본 시점으로부터 구성된다. 하나 이상의 타일 세트 트랙 또는 비트스트림은 (예를 들어, 도 16과 관련된 다른 실시예들에서 설명된 바와 같이) 예측된 시점으로부터 구성된다. 콜로케이트된 타일 세트 트랙 또는 계층이 시점으로부터 구성되면, 결과적인 타일 세트 트랙 및 비트스트림이 전체 화상 호환형이다. 예를 들어, 기본 시점이 HEVC Main 프로파일을 준수하고 예측된 시점이 HEVC Multiview Main 프로파일을 준수하는 경우, 결과적인 타일 세트 트랙 및 비트스트림의 기본 시점 및 예측된 시점은 또한 HEVC Main 프로파일 및 HEVC Multiview Main 프로파일을 각각 준수한다.
타일 세트 트랙 또는 비트스트림의 기본 시점 부분은 이전 단계에서 이미 수행되지 않는 한 추출될 수 있다.
"예측된 계층을 단일 시점 프로파일 비트스트림으로 재기록"으로 지칭되는 단계에서, 예측된 시점의 구성된 타일 세트 트랙 또는 비트스트림은 단일 시점 프로파일 호환적으로 처리된다. 제 2 시점 트랙은 참조로 기본 시점 데이터를 두 번째 시점 트랙에 포함시켜 생성된다. 이 데이터는 예측된 시점의 코딩된 화상이 예측될 수 있는 기본 시점 화상의 시점 간 참조 서브 세트의 전부 또는 일부를 포함한다. 제 2 시점 트랙은 또한 예측된 시점의 코딩된 데이터를 (일부 실시예들에서) 인라인으로 또는 (다른 실시예들에서는) 참조로 포함한다. 제 2 시점 트랙의 샘플은 추출자 및 인라인 구성자와 같은 구성자를 포함할 수 있다. 제 2 시점 트랙은 HEVC 메인 프로파일 디코딩과 같은 단일 시점 디코딩 프로세스를 준수하도록 표시된다.
본 실시예의 출력은 기본 시점 전체 화상 호환 타일 세트 트랙 또는 비트스트림(base-view full-picture-compliant tile set track or bitstream) 및 제 2 시점 전체 화상 호환 타일 세트 트랙 또는 비트스트림이다. 전체 화상 호환 타일 세트 트랙 또는 비트스트림 둘 모두는 H.265/HEVC 디코더와 같은 표준 비디오 디코더에 의해 디코딩될 수 있다. 대안적으로, 출력은 기본 시점 및 제 2 시점 전체 화상 호환 타일 세트 트랙 또는 비트스트림을 구성하기 위한 명령어일 수 있다.
실시예의 단계들은 반대 순서로 수행될 수 있는데, 이는 타일 세트 트랙/비트스트림 구성 및 예측된 계층을 단일 시점 프로파일 비트스트림으로 재기록하는 순서가 반전될 수 있음을 의미한다. 다시 말해서, 우선 (전체 화상의) 단일 시점 비트스트림이 생성될 수 있고 그 이후 단일 시점 타일 세트 비트스트림이 생성될 수 있다.
실시예의 단계들은 본질적으로 하나의 동작으로 조합될 수 있다. 예를 들어, 동일한 트랙이 예측된 시점의 타일 세트를 추출하고 시점 간 참조 서브세트를 참조로 포함하도록 생성될 수 있다. 다시 말해, 동일한 트랙 또는 샘플(들)은 타일 세트를 구성하고 다중 시점 비트스트림을 단일 시점 비트스트림으로 재기록하는 것 둘 모두를 수행할 수 있다.
상기에서, 몇몇 실시예들은 등장방형도법 파노라마 비디오 포맷과 관련하여 평면 또는 입체 버전으로 설명되었다. 실시예들은 등장방형도법 파노라마 포맷으로 제한되지 않는다는 것을 이해할 필요가 있다. 실시예들은, 예를 들어, 이하를 포함하나 이로 제한되지 않는 임의의 화상 또는 비디오 포맷에 유사하게 적용될 수 있다:
- 기존의 2차원 이미지 포맷, 예를 들어. 기존의 렌즈 및 센서로 캡처된 2차원 이미지 포맷. 포맷은 직선일 수 있음.
- 예를 들어, 어안 렌즈로 캡쳐되는, 어안(fisheye) 이미지 포맷, 이는 약 180도와 같은 넓은 시야를 커버함.
- 평면 또는 입체 버전의 큐브 맵 포맷
- 상이한 카메라들의 사진을 인코딩하기 전에 동일한 프레임에 (구성 프레임으로) 패킹하고 디코딩 후 디코딩된 프레임으로부터 추출될 수 있는 다중 시점 프레임 패킹 포맷. 구성 프레임은, 예를 들어, 위의 형식 중 임의의 형식, 예를 들어, 기존의 2차원 이미지, 어안 이미지, 평면 또는 입체 큐브 맵의 큐브 맵 측면, 또는 입체 파노라마 포맷의 시점을 표현할 수 있다.
일 실시예에서, 움직임 제약 타일 세트가 어안 이미지 영역의 공간 서브세트에 대해 인코딩되는 방식으로 단일 시점 또는 프레임 패킹된 어안 화상에 적용된다. 어안 화상(들)과 유사하게, 실시예는 임의의 다른 유형의 넓은 시야 화상(들)에 적용할 수 있다. 공간 서브세트는, 예를 들어, 기존의 평면 디스플레이 상에 디스플레이하기에 적합한 이미지 영역을 나타낼 수 있다. 움직임 제약 타일 세트 외부의 다른 타일들은 움직임 제한될 필요가 없는데, 즉 참조 화상에서 움직임 제약 타일 세트 내의 샘플을 참조하여 인터 예측을 사용할 수 있다. 움직임 타일 세트에 대한 타일 세트 트랙 및/또는 비트스트림은 다른 실시예들에서 설명된 바와 같이 구성된다.
플레이어는, 예를 들어, 움직임 제약 타일 세트의 시야와 대략적으로 또는 정확하게 일치하는 시야를 디스플레이할 수 있는 시청 또는 디스플레이 장비에 대한 지식에 기초하여, 구성된 움직임 제한 타일 세트 트랙 또는 비트스트림을 스트리밍하고/하거나 디코딩하도록 선택할 수 있다.
스케일가능 비디오 코딩을 사용하거나 사용하지 않는 다중 해상도 부분 화상 디코딩 실시예에 대해 전술된 실시예들에 적용될 수 있는 일 실시예에서, 상이한 화상 표현 포맷이 상이한 해상도 또는 계층에서 사용될 수 있다. 예를 들어, 저해상도 버전 또는 기본 계층의 콘텐츠는 등장방형도법 파노라마 포맷을 사용할 수 있는 반면, 고해상도 버전 또는 예측 계층의 콘텐츠는 큐브 맵 포맷을 사용할 수 있다.
일 실시예에서, 움직임 제약 타일 세트는 인코딩에서 프레임 패킹된 표현 포맷의 구성 프레임 경계와 일치하도록 선택된다. 예를 들어, 큐브 맵이 프레임 패킹된 포맷으로 표현된다면, 각각의 큐브 맵 측면은 그 자체의 구성 프레임이고, 각 구성 프레임은 움직임 제약 타일 세트로서 인코딩될 수 있다.
일 실시예에서, 콘텐츠는 큐브 맵 포맷으로 적어도 2개의 해상도로 코딩된다. 일 실시예에서, 플레이어는 우세한 시청 방향에 따라 고해상도 큐브 맵 측면들의 서브세트의 움직임 제약 타일 세트를 선택한다. 시청이 약 100도 시야를 갖는 머리 장착형 디스플레이로 수행된다고 가정하면, 플레이어는, 예를 들어, 고해상도로 스트리밍되거/되거나 디코딩될 3개의 큐브 맵 측면을 선택할 수 있다. 스트리밍되거/되거나 디코딩될 나머지 큐브 맵 측면은 저해상도 버전으로부터 선택될 수 있거나 스트리밍 및/또는 디코딩에서 생략될 수 있다.
일 실시예에서, 움직임 제약 타일 세트의 크기는 시청 장비의 예상되거나 공지된 시야 및/또는 시청 동작에 기초하여 인코딩시 선택된다. 예를 들어, 머리 장착형 디스플레이로 시청할 때 전형적인 수직 머리 방향이 대략 구면 비디오의 적도 상에 있는 것으로 가정될 수 있다.
일 실시예에서, 360도 파노라마 비디오는 12개의 움직임 제약 타일로 분할되고, 각각은 90도 수평 시야(즉, 동일한 폭의 4개의 타일 열)를 커버하고, 최상위 타일 행은 45도의 수직 시야를 커버하며, 중앙 타일 행은 90도의 수직 시야를 커버하고, 하단 타일 행은 45도의 수직 시야를 커버한다. 머리 장착형 디스플레이의 시야가 대략 100도라고 가정하면, 특히 저해상도 버전 또는 기본 레이어가 디스플레이된 화상의 측면들 상의 임의의 누락된 영역을 커버하는데 사용될 수 있는 경우, 4개의 타일 세트를 스트리밍하고/하거나 디코딩하는 것은 일반적으로 디스플레이에 위해 필요한 시야를 커버하기에 충분하다.
일 실시예에서, 360도 파노라마 비디오는 8개의 움직임 제약 타일로 분할되며, 각각은 수평 및 수직으로 90도를 커버한다. 머리 장착형 디스플레이의 시야가 대략 100도라고 가정하면, 특히 저해상도 버전 또는 기본 레이어가 디스플레이된 화상의 측면들 상의 임의의 누락 영역을 커버하는데 사용될 수 있는 경우, 4개의 타일 세트를 스트리밍하고/하거나 디코딩하는 것은 일반적으로 디스플레이에 필요한 시야를 커버하기에 충분하다.
일 실시예에서, 360도 파노라마 비디오는 12개의 움직임 제약 타일로 분할되고, 각각은 90도 수평 시야(즉, 동일한 폭의 4개의 타일 열)를 커버하고, 최상단 타일 행은 30도의 수직 시야를 커버하며, 중앙 타일 행은 120도의 수직 시야를 커버하고, 하단 타일 행은 30도의 수직 시야를 커버한다. 머리 장착형 디스플레이의 시야가 대략 100도이고 (위 또는 아래보다는) 거의 똑바로 엿보는 것으로 가정하면, 특히 저해상도 버전 또는 기본 레이어가 디스플레이된 화상의 측면들 상의 임의의 누락 영역을 커버하는데 사용될 수 있는 경우, 두 타일 세트를 스트리밍하고/하거나 디코딩하는 것은 일반적으로 필요한 시야를 커버하기에 충분하다.
잠재적인 움직임 제약 타일 분할에 관한 상기 실시예들에서의 시야의 값은 예이고 정확한 값은, 예를 들어, CTU 행 및/또는 열이 움직임 제약 타일 경계와 일치하는 방식으로, 선택될 수 있음을 이해할 필요가 있다. 실시예들은 언급된 타일들의 개수 또는 시야 값으로 제한되지 않는다.
일부 실시예들에서, 하나의 타일 세트는 움직임 제약 타일 세트를 공동으로 형성한다. 예를 들어, 전술된 바와 같이 12 타일 분할에 적용 가능한 일 실시예에서, (상단 타일 행의 타일들이 개별적으로 움직임 제약될 필요는 없지만) 상단 타일 행이 하나의 움직임 제약 타일 세트를 형성하고/하거나, (하단 타일 행의 타일들은 개별적으로 움직임 제약될 필요는 없지만), 하단 타일 행이 하나의 움직임 제약 타일 세트를 형성한다.
여러 타일 세트가 동일한 구성된 타일 세트 트랙 또는 비트스트림으로 조합될 수 있다는 점에 유의한다. 일 실시예에서, 서로 인접하지 않은 제 1 움직임 제약 타일 세트 및 제 2 움직임 제약 타일 세트는 동일한 구성된 타일 세트 트랙 또는 비트스트림으로 조합된다. 일 실시예에서, 전체 화상 비트스트림의 최좌측 타일 또는 타일 세트는 전체 화상 비트스트림의 최우측 타일 또는 타일 세트를 갖는 동일한 구성된 타일 세트 트랙 또는 비트스트림으로 조합된다. 이러한 조합은 360도 파노라마 비디오에 특히 적합할 수 있고, 이 경우 최우측 타일은 공간 연속성을 유지하기 위해 동일한 타일 행의 최좌측 타일의 왼편에 있는 구성된 타일 세트 트랙 또는 비트스트림에 위치할 수 있다 .
도 22는 본 발명의 실시예들을 이용하기에 적합한 비디오 디코더의 블록도를 도시한다. 도 22는 2-계층 디코더의 구조를 도시하지만, 디코딩 동작은 단일 계층 디코더에 유사하게 포함될 수 있다는 것을 이해할 것이다.
비디오 디코더(550)는 기본 시점 컴포넌트에 대한 제 1 디코더 섹션(552) 및 비-기본 시점 컴포넌트에 대한 제 2 디코더 섹션(554)을 포함한다. 블록(556)은 기본 시점 컴포넌트에 관한 정보를 제 1 디코더 섹션(552)에 전달하고 비-기본 시점 컴포넌트에 관한 정보를 제 2 디코더 섹션(554)에 전달하기 위한 디멀티플렉서를 도시한다. 참조(P'n)는 이미지 블록의 예측된 표현을 나타낸다. 참조(D'n)는 재구성된 예측 오차 신호를 나타낸다. 블록들(704, 804)은 예비 재구성된 이미지들(I'n)을 도시한다. 참조(R'n)는 최종 재구성된 이미지를 나타낸다. 블록들(703, 803)은 역 변환(T-1)을 도시한다. 블록들(702, 802)은 역 양자화(inverse quantization)(Q-1)를 도시한다. 블록들(701, 801)은 엔트로피 디코딩(E-1)을 도시하다. 블록들(705, 805)은 참조 프레임 메모리(RFM)를 도시한다. 블록들(706, 806)은 예측(P)(인터 예측 또는 인트라 예측 중 어느 하나)을 도시한다. 블록들(707, 807은 필터링(F)을 도시한다. 블록들(708, 808)은 디코딩된 예측 오류 정보를 예측된 기본 시점/비-기본 시점 컴포넌트와 조합하여 예비 재구성된 이미지들(I'n)을 획득하는데 사용될 수 있다. 예비 재구성되고 필터링된 기본 시점은 이미지가 제 1 디코더 섹션(552)으로부터 출력될 수 있고(709), 예비 재구성되고 필터링된 기본 시점 이미지는 제 1 디코더 섹션(554)으로부터 출력될 수 있다(809).
본원에서, 디코더는 플레이어, 수신기, 게이트웨이, 디멀티플렉서 및/또는 디코더와 같이 디코딩 동작을 실행할 수 있는 임의의 동작 단위를 커버하는 것으로 해석되어야 한다.
도 23은 다양한 실시예들이 구현될 수 있는 예시적인 멀티미디어 통신 시스템의 그래픽 표현이다. 데이터 소스(1510)는 아날로그, 비 압축 디지털 또는 압축 디지털 포맷, 또는 이들 포맷의 임의의 조합으로 소스 신호를 제공한다. 인코더(1520)는 소스 신호의 데이터 포맷 변환 및/또는 필터링과 같은 전처리를 포함하거나 전처리와 연결될 수 있다. 인코더(1520)는 소스 신호를 코딩된 미디어 비트스트림으로 인코딩한다. 디코딩될 비트스트림은 사실상 임의의 타입의 네트워크 내에 위치된 원격 장치로부터 직접적으로 또는 간접적으로 수신될 수 있다는 점을 유념한다. 또한, 비트스트림은 로컬 하드웨어 또는 소프트웨어로부터 수신될 수 있다. 인코더(1520)는 오디오 및 비디오와 같은 하나 이상의 미디어 타입을 인코딩할 수 있거나, 상이한 미디어 타입의 소스 신호를 코딩하는 데 하나 이상의 인코더 (1520)가 요구될 수 있다. 인코더(1520)는 또한 그래픽 및 텍스트와 같은 합성으로 생성된 입력을 얻을 수 있거나, 합성 미디어의 코딩된 비트스트림을 생성할 수 있다. 이하에서, 하나의 미디어 타입의 하나의 코딩된 미디어 비트스트림의 처리만이 설명을 단순화하는 것으로 고려된다. 그러나, 일반적으로 실시간 방송 서비스는 여러 스트림(일반적으로 적어도 하나의 오디오, 비디오 및 텍스트 자막처리(sub-titling) 스트림)을 포함한다는 점을 유념해야 한다. 시스템은 다수의 인코더를 포함할 수 있지만, 도면에서는 일반성의 부재 없이 설명을 간단하게 하기 위해 하나의 인코더(1520)만이 도시된다는 점을 유념해야 한다. 본원에 포함된 텍스트 및 예는 인코딩 프로세스를 구체적으로 설명할 수 있지만, 당업자는 동일한 개념 및 원리가 대응하는 디코딩 프로세스에도 적용되고 그 반대도 마찬가지라는 것을 이해할 것이다.
코딩된 미디어 비트스트림은 저장소(1530)로 전송될 수 있다. 저장소(1530)는 코딩된 미디어 비트스트림을 저장하기 위한 임의의 유형의 대용량 메모리를 포함할 수 있다. 저장소(1530)에서 코딩된 미디어 비트스트림의 포맷은 기본적인 독립형 비트스트림 포맷일 수 있거나, 하나 이상의 코딩된 미디어 비트스트림이 컨테이너 파일로 캡슐화되거나, 코딩된 미디어 비트스트림이 DASH(또는 이와 유사한 스트리밍 시스템)에 적합한 세그먼트 포맷으로 캡슐화되고 일련의 세그먼트로 저장될 수 있다. 하나 이상의 미디어 비트스트림이 컨테이너 파일에 캡슐화되면, 파일 생성기(도면에는 도시되지 않음)가 파일에 하나 이상의 미디어 비트스트림을 저장하고 파일에 또한 저장될 수 있는 파일 포맷 메타데이터를 생성하는데 사용될 수 있다. 인코더(1520) 또는 저장 장치(1530)는 파일 생성기를 포함할 수 있거나 파일 생성기는 인코더(1520) 또는 저장소(1530) 중 하나에 동작 가능하게 부착될 수 있다. 일부 시스템은 "라이브(live)"로 동작하는데, 즉 저장 장치를 생략하고 코딩된 미디어 비트스트림을 인코더(1540)로부터 송신기(1540)로 직접 전송한다. 그 다음, 코딩된 미디어 비트스트림은 필요에 따라 서버로도 지칭되는 송신기(1540)로 전송될 수 있다. 전송에 사용되는 포맷은 기본 자기 포함 비트스트림 포맷, 패킷 스트림 포맷, DASH(또는 유사한 스트리밍 시스템)에 적합한 세그먼트 포맷일 수 있거나 하나 이상의 코딩된 미디어 비트스트림이 컨테이너 파일로 캡슐화될 수 있다. 인코더(1520), 저장 장치(1530), 및 서버(1540)는 동일한 물리적 장치에 상주할 수도 있고, 개별 장치에 포함될 수도 있다. 인코더(1520) 및 서버(1540)는 라이브 실시간 콘텐츠로 동작할 수 있고, 이 경우, 코딩된 미디어 비트스트림이 전형적으로 영구적으로 저장되지 않지만, 콘텐츠 인코더(1520) 및/또는 서버(1540)에서 약간의 시간 동안 버퍼링되어 처리 지연, 전송 지연, 및 코딩된 미디어 비트 전송률의 변화를 해결한다.
서버(1540)는 통신 프로토콜 스택을 사용하여 코딩된 미디어 비트스트림을 송신한다. 스택은 RTP(Real-Time Transport Protocol), UDP(User Datagram Protocol), HTTP(Hypertext Transfer Protocol), TCP(Transmission Control Protocol) 및 IP(Internet Protocol) 중 하나 이상을 포함할 수 있으나 이로 한정되지 않는다. 통신 프로토콜 스택이 패킷 지향형일 때, 서버(1540)는 코딩된 미디어 비트스트림을 패킷으로 캡슐화한다. 예를 들어, RTP가 사용될 때, 서버(1540)는 코딩된 미디어 비트스트림을 RTP 페이로드 포맷에 따라 RTP 패킷으로 캡슐화한다. 일반적으로 각 미디어 타입은 전용 RTP 페이로드 포맷을 갖는다. 시스템은 둘 이상의 서버(1540)를 포함할 수 있지만, 간략화를 위해, 다음의 설명은 단지 하나의 서버(1540)만을 고려한다.
미디어 콘텐츠가 저장소(1530)에 대한 컨테이너 파일로 캡슐화되거나 송신기(1540)에 데이터를 입력하기 위해 캡슐화된다면, 송신기(1540)는 "송신 파일 파서"(도시되지 않음)를 포함할 수 있거나 "송신 파일 파서"에 동작 가능하게 첨부될 수 있다. 특히, 컨테이너 파일이 전송되지 않지만 포함된 코딩된 미디어 비트스트림 중 적어도 하나가 통신 프로토콜을 통한 전송을 위해 캡슐화되면, 송신 파일 파서는 통신 프로토콜을 통해 전달될 코딩된 미디어 비트스트림의 적절한 부분의 위치를 찾는다. 송신 파일 파서는 패킷 헤더 및 페이로드와 같은 통신 프로토콜에 대한 올바른 형식을 생성하는 데 도움을 줄 수도 있다. 멀티미디어 컨테이너 파일은 포함된 미디어 비트스트림 중 적어도 하나를 통신 프로토콜 상에 캡슐화하기 위해 ISOBMFF에 힌트 트랙과 같은 캡슐화 명령어를 포함할 수 있다.
서버(1540)는, 예를 들어, CDN, 인터넷 및/또는 하나 이상의 액세스 네트워크의 조일 수도 있는, 통신 네트워크를 통해 게이트웨이(1550)에 연결되거나 연결되지 않을 수 있다. 게이트웨이는 또한 또는 대안적으로 중간 박스로 언급될 수 있다. DASH의 경우, 게이트웨이는 (CDN의) 에지 서버 또는 웹 프록시일 수 있다. 시스템은 일반적으로 임의의 개수의 게이트웨이 또는 그와 유사하게 구성될 수 있지만, 간략화를 위해, 다음의 설명은 단지 하나의 게이트웨이(1550)만을 고려한다는 점을 유념해야 한다. 게이트웨이(1550)는 하나의 통신 프로토콜 스택에 따른 패킷 스트림의 다른 통신 프로토콜 스택으로의 변환, 데이터 스트림의 병합 및 포킹(merging and forking), 및 다운 링크 및/또는 수신기 기능들(예컨대, 예를 들어, 우세한 다운링크 네트워크 조건에 따라 포워딩된 스트림의 비트레이트를 제어하는 것과 같은 기능)에 따른 데이터 스트림의 조작과 같은 상이한 유형의 기능들을 수행할 수 있다.
시스템은 전형적으로 전송된 신호를 코딩된 미디어 비트스트림으로 수신하고, 복조하고, 역캡슐화 할 수 있는 하나 이상의 수신기(1560)를 포함한다. 코딩된 미디어 비트스트림은 기록 저장소(1570)로 전달될 수 있다. 기록 저장소(1570)는 코딩된 미디어 비트스트림을 저장하기 위한 임의의 유형의 대용량 메모리를 포함할 수 있다. 기록 저장소(1570)는 대안적으로 또는 추가적으로 랜덤 액세스 메모리와 같은 계산 메모리를 포함할 수 있다. 기록 저장소(1570) 내의 코딩된 미디어 비트스트림의 포맷은 기본적인 자기 포함 비트스트림 포맷일 수 있거나, 하나 이상의 코딩된 미디어 비트스트림이 컨테이너 파일로 캡슐화될 수 있다. 서로 연관된 오디오 스트림 및 비디오 스트림과 같은 다수의 코딩된 미디어 비트스트림이 있다면, 일반적으로 컨테이너 파일이 사용되고 수신기(1560)는 입력 스트림으로부터 컨테이너 파일을 생성하는 컨테이너 파일 생성기를 포함하거나 컨테이너 파일 생성기에 첨부된다. 일부 시스템은 "라이브", 즉 기록 저장소(1570)를 생략하고 수신기(1560)로부터 디코더(1580)로 직접 코딩된 미디어 비트스트림을 전달한다. 일부 시스템에서는, 기록된 스트림의 최신 부분, 예를 들면, 기록된 스트림 중 가장 최근의 10분의 발췌는, 기록 저장소(1570)에서 유지되는 반면, 임의의 이전에 기록된 데이터는 기록 저장소(1570)로부터 폐기된다.
코딩된 미디어 비트스트림은 기록 저장소(1570)로부터 디코더(1580)로 전달될 수 있다. 서로 연관되고 컨테이너 파일로 캡슐화된 오디오 스트림 및 비디오 스트림과 같은 많은 코딩된 미디어 비트스트림이 존재하거나 단일 미디어 비트스트림이, 예를 들어, 더 쉬운 액세스를 위해, 컨테이너 파일에 캡슐화된다면, 파일 파서(도면에 도시되지 않음)는 컨테이너 파일로부터 각각의 코딩된 미디어 비트스트림을 캡슐해제하기 위해 사용된다. 기록 저장소(1570) 또는 디코더(1580)는 파일 파서를 포함할 수 있거나, 파일 파서는 기록 저장소(1570) 또는 디코더(1580) 중 하나에 첨부된다. 시스템은 많은 디코더를 포함할 수 있으나, 여기서는 보편성과 함께 설명의 간략화를 위해 하나의 디코더만 설명된다.
코딩된 미디어 비트스트림은 하나 이상의 비 압축 미디어스트림인 디코더(1580)에 의해 또한 처리될 수 있다. 최종적으로, 렌더러(renderer)(1590)는, 예를 들어, 라우드스피커 또는 디스플레이로 비 압축 미디어스트림을 재생할 수 있다. 수신기(1560), 기록 저장소(1570), 디코더(1580) 및 렌더러(1590)는 동일한 물리적 장치에 상주할 수도 있고, 개별 장치에 포함될 수도 있다.
송신기(1540) 및/또는 게이트웨이(1550)는, 예를 들어, 시점 스위칭(view switching), 비트레이트 적응 및/또는 고속 개시(fast start up)를 위해, 상이한 표현들 사이에서의 스위칭을 수행하도록 구성될 수 있고/있거나, 송신기(1540) 및/또는 게이트웨이(1550)는 전송된 표현(들)을 선택하도록 구성될 수 있다. 상이한 표현들 사이의 스위칭은, 수신기(1560)의 요청 또는 비트스트림이 전달되는 네트워크의 처리량과 같은 우세한 조건에 응답하는 것과 같은 여러 이유로 인해 발생할 수 있다. 수신기로부터의 요청은, 예를 들어, 이전과 상이한 표현으로부터의 세그먼트 또는 서브세그먼트에 대한 요청, 전송된 스케일가능성 계층 및/또는 하위 계층의 변경에 대한 요청, 또는 이전 기능과 비교하여 상이한 기능을 갖는 렌더링 장치의 변경일 수 있다. 세그먼트에 대한 요청은 HTTP GET 요청일 수 있다. 서브세그먼트에 대한 요청은 바이트 범위를 갖는 HTTP GET 요청일 수 있다. 추가적으로 또는 대안적으로, 비트레이트 조정 또는 비트레이트 적응은, 예를 들어, 스트리밍 서비스에서 소위 고속 개시를 제공하기 위해 사용될 수 있는데, 여기서 전송된 스트림의 비트레이트는 즉시 재생을 시작하기 위해 및 가끔 있는 패킷 지연 및/또는 재전송을 허용하는 버퍼 점유율 레벨을 달성하기 위해 스트리밍을 시작하거나 랜덤 액세스한 후에는 채널 비트레이트보다 낮다. 비트레이트 적응은 다양한 순서로 발생하는 다중 표현 또는 계층 상향 스위칭 및 표현 또는 계층 하향 스위칭 동작을 포함할 수 있다.
디코더(1580)는, 예를 들어, 시점 스위칭, 비트레이트 적응 및/또는 고속 개시를 위해, 상이한 표현들 사이에서 스위칭을 수행하도록 구성될 수 있고/있거나, 디코더(1580)는 전송된 표현(들)을 선택하도록 구성될 수 있다. 상이한 표현들 사이에서 스위칭하는 것은, 더 빠른 디코딩 동작을 달성하는 것 또는 전송된 비트스트림을 적응시키는 것, 예를 들어, 비트레이트 측면에서, 비트스트림이 전달되는 네트워크의 처리량과 같은 우세한 조건과 같은 다양한 이유로 발생할 수 있다. 더 빠른 디코딩 동작은, 예를 들어, 디코더(1580)를 포함하는 장치가 멀티태스킹이고 스케일가능성 비디오 비트스트림을 디코딩하는 것과는 다른 목적을 위해 컴퓨팅 리소스를 사용하는 경우에 필요할 수 있다. 다른 예에서, 콘텐츠가 정상 재생 속도보다 빠른 속도로 재생될 때, 예를 들어, 기존 실시간 재생 속도보다 2배 또는 3배 빠른 경우, 더 빠른 디코딩 동작이 필요할 수도 있다. 디코더 동작의 속도는 디코딩 또는 재생 동안, 예를 들어, 정상 재생 속도에서 빨리 감기 재생으로 또는 그 역으로의 변화에 대한 응답으로서 변경될 수 있고, 결과적으로 다중 계층 상향 스위칭 및 계층 하향 스위칭 동작이 다양한 순서로 발생할 수 있다.
상기에서, 일부 실시예들은 슬라이스 세그먼트라는 용어를 참조하여 설명되었다. 실시예들은 다른 유사한 화상 분할 단위들에 유사하게 적용된다는 것을 이해할 필요가 있다. 예를 들어, 일부 코딩 방식은 슬라이스 세그먼트의 개념을 포함하지 않을 수 있지만, H.264/AVC 및 HEVC를 포함하는 비디오 코딩 표준에 정의된 바와 같은 슬라이스의 개념을 가질 수 있으며, 실시예들은 슬라이스에 적용된다.
상기에서, 일부 실시예들은 고해상도 및/또는 저해상도 타일 세트 트랙, 비트스트림 및/또는 계층과 관련하여 설명되었다. 공간 분해능을 변경하는 대신에 또는 추가적으로, 고해상도라는 용어는, 예를 들어, 다음 중 하나 이상의 관점에서, 저해상도라는 용어보다 높은 품질인 것으로 인식되도록 표시하기 위해 실시예에서 사용될 수 있다는 것을 이해할 필요가 있다:
- 상이한 양자화 파라미터 값을 사용하여 획득될 수 있는 화질
- 컬러 컴포넌트 당 비트 깊이
- 동적 범위
- 컬러 영역
상기에서, 일부 실시예들은 2개의 계층과 관련하여 설명되었다. 실시예들은 2개 이상의 계층에 유사하게 적용된다는 것을 이해할 필요가 있다.
상기에서, 일부 실시예들은 HEVC 및/또는 HEVC 사양에서 사용된 용어와 관련하여 설명되었다. 실시 예들은 전술한 실시예들에서 사용된 용어들에 대한 동등성 또는 유사성을 갖는 다른 코덱들 및 코딩 포맷들 및 다른 용어들에 유사하게 적용된다는 것을 이해할 필요가 있다.
상기에서, 일부 실시예들은 ISOBMFF 및/또는 ISOBMFF로부터 유도된 포맷과 관련하여 설명되었다. 실시예들은 Matroska 파일 포맷과 같은 다른 파일 및 세그먼트 포맷에도 유사하게 적용된다는 것을 이해할 필요가 있다.
상기에서, 일부 실시예들은 MPEG-DASH 또는 DASH와 관련하여 설명되었다. 실시예들은 HTTP를 통한 스트리밍의 다른 형태, 예컨대, 애플 HTTP 라이브 스트리밍(HTTP Live Streaming: HLS)에 유사하게 적용된다는 것을 이해할 필요가 있다.
상기에서, 일부 실시예들은 스트리밍이라는 용어를 참조하여 설명되었다. 실시예들은 다른 형태의 비디오 전송, 예컨대, 프로그레시브 다운로딩, 파일 전달, 비디오 전화기와 같은 대화형 비디오 통신에 유사하게 적용된다는 것을 이해할 필요가 있다.
상기에서, 예시적인 실시예들은 인코더와 관련하여 설명되었지만, 결과적인 비트스트림 및 디코더는 대응하는 요소를 가질 수 있다는 것을 이해할 필요가 있다. 마찬가지로, 예시적인 실시예가 디코더를 참조하여 설명되었지만, 인코더가 디코더에 의해 디코딩될 비트스트림을 생성하기 위한 구조 및/또는 컴퓨터 프로그램을 가질 수 있다는 점을 이해할 필요가 있다.
전술된 본 발명의 실시예들은 관련된 프로세스에 관한 이해를 돕기 위해 별도의 인코더 및 디코더 장치에 관하여 코덱을 설명한다. 그러나, 장치, 구조 및 동작은 단일 인코더-디코더 장치/구조/동작으로 구현될 수 있다는 점을 이해할 것이다. 또한, 코더 및 디코더가 일부 또는 모든 공통 요소를 공유할 수도 있다.
상기 실시예들이 전자 장치 내의 코덱 내에서 동작하는 본 발명의 실시예들을 설명하고 있지만, 청구 범위에서 정의된 바와 같은 본 발명은 임의의 비디오 코덱의 일부로서 구현될 수 있다. 따라서, 예를 들어, 본 발명의 실시예들은 고정 또는 유선 통신 경로를 통해 비디오 코딩을 구현할 수 있는 비디오 코덱에 구현될 수 있다.
따라서, 사용자 장비는 본 발명의 실시예들에서 전술된 것과 같은 비디오 코덱을 포함할 수 있다. 사용자 장비라는 용어는 이동 전화, 휴대용 데이터 처리 장치 또는 휴대용 웹 브라우저와 같은 임의의 적합한 타입의 무선 사용자 장비를 포함하고자 하는 것으로 이해될 것이다.
더욱이, 공중 육상 이동 네트워크(PLMN)의 요소들은 전술한 바와 같은 비디오 코덱을 또한 포함할 수 있다.
일반적으로, 본 발명의 다양한 실시예들은 하드웨어 또는 특수용 회로, 소프트웨어, 로직 또는 이들의 임의의 조합으로 구현될 수 있다. 예를 들어, 일부 양태들은 하드웨어로 구현될 수 있고, 다른 양태들은 제어기, 마이크로프로세서 또는 다른 컴퓨팅 장치에 의해 실행될 수 있는 펌웨어 또는 소프트웨어로 구현될 수 있지만, 본 발명은 이에 제한되지 않는다. 본 발명의 다양한 양태들이 블록도, 흐름도 또는 일부 다른 그림 표현을 사용하여 예시되고 설명될 수 있지만, 본원에 설명된 이러한 블록들, 장치들, 시스템들, 기술들 또는 방법들은 하드웨어, 소프트웨어, 펌웨어, 특수용 회로 또는 로직, 범용 하드웨어 또는 제어기 또는 다른 컴퓨팅 장치, 또는 이들의 조합으로 구현될 수도 있다는 점이 이해될 것이다.
본 발명의 실시예들은 프로세서 엔티티와 같은 이동 장치의 데이터 프로세서에 의해, 또는 하드웨어에 의해, 또는 소프트웨어와 하드웨어의 조합에 의해 실행 가능한 컴퓨터 소프트웨어에 의해 구현될 수 있다. 이와 관련하여, 도면에서와 같은 로직 흐름의 임의의 블록은 프로그램 단계, 상호연결된 로직 회로, 블록 및 기능, 또는 프로그램 단계와 논리 회로, 블록과 기능의 조합을 나타낼 수도 있다는 점을 유념해야 한다. 소프트웨어는 메모리 칩, 또는 프로세서 내에 구현된 메모리 블록, 하드 디스크 또는 플로피 디스크와 같은 자기 매체, 및 광학 매체(예컨대, DVD 및 이의 데이터 변형물인 CD)와 같은 물리적 매체 상에 저장될 수 있다.
메모리는 로컬 기술 환경에 적합한 임의의 타입일 수 있고, 반도체 기반 메모리 장치, 자기 메모리 장치 및 시스템, 광학 메모리 장치 및 시스템, 고정 메모리 및 착탈식 메모리와 같은 임의의 적절한 데이터 저장 기술을 사용하여 구현될 수 있다. 데이터 프로세서는 로컬 기술 환경에 적합한 임의의 타입일 수 있고, 범용 컴퓨터, 특수용 컴퓨터, 마이크로프로세서, 디지털 신호 프로세서(DSP) 및 멀티 코어 프로세서 아키텍처 기반 프로세서 중 하나 이상을 포함할 수 있으나, 이들은 비제한적인 예들이다.
본 발명의 실시예들은 집적 회로 모듈과 같은 다양한 컴포넌트에서 실시될 수 있다. 집적 회로 설계는 대규모로 고도로 자동화된 프로세스이다. 로직 레벨 설계를 반도체 기판에 에칭되고 형성되도록 준비된 반도체 회로 설계로 변환하기 위한 복잡하고 강력한 소프트웨어 툴이 이용 가능하다.
캘리포니아 주 마운틴 뷰에 소재한 Synopsys, Inc. 및 캘리포니아 주 산호세에 소재한 Cadence Design에서 제공하는 프로그램은 잘 수립된 설계 규칙뿐만 아니라 미리 저장된 설계 모듈의 라이브러리를 사용하여 반도체 칩 상에 컨덕터를 자동으로 라우팅하고 컴포넌트들을 배치한다. 일단 반도체 회로에 대한 설계가 완료되면, 결과적인 설계가 표준화된 전자 포맷(예를 들어, Opus, GDSII 등)으로 제조를 위한 반도체 제조 시설 또는 "fab"에 전송될 수 있다.
전술한 설명은 예시적이고 비제한적인 예로서 본 발명의 예시적인 실시예들에 관한 완전하고 유익한 설명을 제공한다. 그러나, 첨부된 도면 및 첨부된 청구 범위와 함께 읽을 때, 다양한 수정 및 적응이 전술한 설명의 관점에서 당업자에게는 명백해질 수 있다. 그러나, 본 발명의 교시에 대한 모든 그러한 및 유사한 수정은 여전히 청구 범위의 범주 내에 속할 것이다.

Claims (18)

  1. 방법으로서,
    움직임 제약 타일 세트(motion-constrained tile set)를 포함하는 전체 화상 트랙 또는 비트스트림을 획득하는 단계(600)를 포함하되,
    상기 획득하는 단계는,
    상기 움직임 제약 타일 세트에 기초하여 전체 화상 호환 타일 세트 트랙(full-picture-compliant tile set track) 또는 비트스트림을 구성하거나(602) 구성하기 위한 명령어를 생성하는 단계 - 상기 전체 화상 호환 타일 세트는 전체 화상 트랙의 파싱 및 디코딩 프로세스를 사용하여 임의의 전체 화상 트랙으로서 재생 가능하고, 상기 전체 화상 호환 비트스트림은 전체 화상 비트스트림의 디코딩 프로세스를 사용하여 임의의 전체 화상 트랙으로서 디코딩 가능함 - 와,
    상기 명령어에, 전체 화상 트랙으로부터 움직임 제약 타일 세트를 추출하는 구성자 구조(constructor structure)를 포함하는 추출자 구조를 포함시키는 단계에 의해 특징지어지는
    방법.
  2. 제 1 항에 있어서,
    상기 움직임 제약 타일 세트는 상기 움직임 제약 타일 세트 외부의 타일을 또한 포함하는 하나 이상의 슬라이스 세그먼트 내에 포함되고,
    상기 구성하거나 구성하기 위한 명령어를 생성하는 단계는,
    상기 전체 화상 호환 타일 세트 트랙이나 비트스트림 내로 또는 전체 화상 호환 타일 세트 트랙이나 비트스트림을 구성하기 위한 명령어 내로, 상기 움직임 제약 타일 세트의 우측 상의 타일 열을 추가하는 단계를 포함하는
    방법.
  3. 제 2 항에 있어서,
    상기 추가된 타일 열의 타일들을 사용하여 슬라이스 세그먼트의 말단을 제어하는 단계를 더 포함하는
    방법.
  4. 제 2 항에 있어서,
    상기 추가된 타일 열의 마지막 타일 내에 슬라이스 세그먼트의 말단을 표시하는 단계를 더 포함하는
    방법.

  5. 제 2 항에 있어서,
    상기 전체 화상 호환 타일 세트 트랙이나 비트스트림 내로, 또는 전체 화상 호환 타일 세트 트랙이나 비트스트림을 구성하기 위한 명령어 내로, 디코딩으로 하여금 상기 추가된 타일 열을 디코딩 출력에서 제외하게 하는 적합성 크로핑 윈도우(conformance cropping window)에 대한 정보를 추가하는 단계를 더 포함하는
    방법.
  6. 제 1 항에 있어서,
    상기 움직임 제약 타일 세트는 상기 움직임 제약 타일 세트 외부의 타일들을 또한 포함하는 하나 이상의 슬라이스 세그먼트 내에 포함되고,
    상기 구성하거나 구성하기 위한 명령어를 생성하는 단계는,
    최우측 타일을 포함하는 제 1 슬라이스 세그먼트의 마지막 타일이 아닌 상기 움직임 제약 타일 세트 내의 상기 최우측 타일을 식별하는 단계와,
    상기 제 1 슬라이스의 말단을 야기하도록 상기 최우측 타일을 수정하는 단계를 포함하는
    방법.

  7. 제 1 항에 있어서,
    상기 전체 화상 호환 타일 세트 트랙을 구성하기 위한 명령어는, 상기 전체 화상 트랙이나 비트스트림으로부터 기본 단위(elementary unit)의 일부분을 추출하는 추출자를 포함하는
    방법.
  8. 제 7 항에 있어서,
    상기 기본 단위는 네트워크 추상 계층(Network Abstraction Layer: NAL) 단위인
    방법.
  9. 제 7 항 또는 제 8 항에 있어서,
    상기 추출자 구조에, 네트워크 추상 계층 헤더 및 슬라이스 세그먼트 헤더 중 하나 또는 둘 모두를 포함하는 인라인(inline) 구성자 구조를 포함시키는 단계를 포함하는
    방법.
  10. 제 1 항에 있어서,
    전체 화상 호환 타일 세트 트랙이나 비트스트림을 구성하거나 구성하기 위한 명령어를 생성하는 단계는, 상기 전체 화상 트랙 또는 비트스트림의 파라미터 세트 및/또는 슬라이스 세그먼트 헤더와 비교될 때 상기 파라미터 세트 및/또는 슬라이스 세그먼트 헤더를 전체적으로 또는 부분적으로 재기록하는 단계를 포함하는
    방법.
  11. 제 1 항에 있어서,
    전체 화상 호환 타일 세트 트랙이나 비트스트림을 구성하기 위한 명령어는 일련의 세그먼트 또는 서브세그먼트를 야기하는
    방법.
  12. 제 11 항에 있어서,
    세그먼트의 URL(Uniform Resource Locator)은 상기 세그먼트를 야기하는 상기 명령어의 서브세트와 함께 표시되는
    방법.
  13. 미디어 표현 설명 및/또는 미디어 파일로부터 제 1 전체 화상 호환 타일 세트 트랙의 제 1 특성을 획득하는 단계 - 상기 전체 화상 호환 타일 세트 트랙은 전체 화상 트랙의 파싱 및 디코딩 프로세스를 사용하여 임의의 전체 화상 트랙으로서 재생 가능함 - 를 포함하되,
    상기 획득하는 단계는,
    상기 제 1 특성에 기초하여 상기 제 1 전체 화상 호환 타일 세트 트랙의 일부분 또는 전체를 획득하도록 결정하는 단계와,
    전체 화상 트랙으로부터 움직임 제약 타일 세트를 추출하는 구성자 구조를 포함하는 추출자 구조를 추출함으로써 상기 제 1 전체 화상 호환 타일 세트의 일부분 또는 전체를 결정하는 단계에 의해 특징지어지는
    방법.
  14. 제 13 항에 있어서,
    상기 제 1 전체 화상 호환 타일 세트 트랙의 일부분 또는 전체를 디코딩하고 재생하는 단계를 더 포함하는
    방법.

  15. 제 13 항에 있어서,
    상기 제 1 특성 내에서, 포함된 공간 영역 또는 포함된 시야 및 시점 방향 둘 모두에 관한 정보를 획득하는 단계를 더 포함하되,
    상기 결정하는 단계는 상기 포함된 공간 영역 또는 상기 포함된 시야 및 상기 시점 방향 둘 모두에 기초하는
    방법.
  16. 제 13 항에 있어서,
    미디어 표현 설명으로부터 및/또는 미디어 파일로부터 제 2 전체 화상 호환 타일 세트 트랙의 제 2 특성을 획득하는 단계와,
    상기 제 1 특성 및 상기 제 2 특성으로부터, 상기 제 2 전체 화상 호환 타일 세트 트랙이 상기 제 1 전체 화상 호환 타일 세트 트랙의 것과 비교하여 낮은 공간 해상도, 비트레이트, 화질, 컬러 컴포넌트 당 비트 깊이, 동적 범위, 및/또는 컬러 영역을 갖는다고 결론짓는 단계와,
    상기 제 1 특성 및 상기 제 2 특성으로부터 상기 제 1 전체 화상 호환 타일 세트 트랙 및 상기 제 2 전체 화상 호환 타일 세트 트랙이 콘텐츠의 상이한 공간 부분을 나타낸다고 결론짓는 단계와,
    상기 결론들에 기초하여 상기 제 2 전체 화상 호환 타일 세트 트랙의 일부분 또는 전체를 획득하도록 결정하는 단계와,
    상기 제 2 전체 화상 호환 타일 세트 트랙의 일부분 또는 전체를 획득하는 단계를 더 포함하는
    방법.
  17. 장치로서,
    적어도 하나의 프로세서와 적어도 하나의 메모리를 포함하되,
    상기 적어도 하나의 메모리는 코드를 저장하고,
    상기 코드는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 제 1 항 내지 제 16 항 중 어느 한 항에 따른 방법을 수행하게 하는
    장치.
  18. 장치에 의한 사용을 위해 코드가 저장된 컴퓨터 판독 가능 저장 매체로서,
    상기 코드는 프로세서에 의해 실행될 때, 상기 장치로 하여금 제 1 항 내지 제 16 항 중 어느 한 항에 따른 방법을 수행하게 하는
    컴퓨터 판독 가능 저장 매체.
KR1020187026699A 2016-02-17 2017-02-14 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램 KR102089457B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FI20165114 2016-02-17
FI20165114A FI20165114A (fi) 2016-02-17 2016-02-17 Laitteisto, menetelmä ja tietokoneohjelma videokoodausta ja videokoodauksen purkua varten
PCT/FI2017/050086 WO2017140945A1 (en) 2016-02-17 2017-02-14 An apparatus, a method and a computer program for video coding and decoding

Publications (2)

Publication Number Publication Date
KR20180113584A true KR20180113584A (ko) 2018-10-16
KR102089457B1 KR102089457B1 (ko) 2020-03-17

Family

ID=59625625

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187026699A KR102089457B1 (ko) 2016-02-17 2017-02-14 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램

Country Status (7)

Country Link
US (1) US11323723B2 (ko)
EP (1) EP3417612A4 (ko)
KR (1) KR102089457B1 (ko)
CN (1) CN108702503B (ko)
FI (1) FI20165114A (ko)
PH (1) PH12018501385A1 (ko)
WO (1) WO2017140945A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220006546A (ko) * 2019-09-23 2022-01-17 구글 엘엘씨 인터럽트 가능한 비디오 트랜스코딩

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180054613A1 (en) 2016-08-22 2018-02-22 Mediatek Inc. Video encoding method and apparatus with in-loop filtering process not applied to reconstructed blocks located at image content discontinuity edge and associated video decoding method and apparatus
US11172005B2 (en) 2016-09-09 2021-11-09 Nokia Technologies Oy Method and apparatus for controlled observation point and orientation selection audiovisual content
WO2018083378A1 (en) 2016-11-01 2018-05-11 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
KR20230079466A (ko) * 2017-04-11 2023-06-07 브이아이디 스케일, 인크. 면 연속성을 사용하는 360 도 비디오 코딩
US10893256B2 (en) 2017-06-26 2021-01-12 Nokia Technologies Oy Apparatus, a method and a computer program for omnidirectional video
EP3422724B1 (en) 2017-06-26 2024-05-01 Nokia Technologies Oy An apparatus, a method and a computer program for omnidirectional video
CN109587478B (zh) * 2017-09-29 2023-03-31 华为技术有限公司 一种媒体信息的处理方法及装置
US10818087B2 (en) 2017-10-02 2020-10-27 At&T Intellectual Property I, L.P. Selective streaming of immersive video based on field-of-view prediction
US11166013B2 (en) 2017-10-09 2021-11-02 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
US10659815B2 (en) 2018-03-08 2020-05-19 At&T Intellectual Property I, L.P. Method of dynamic adaptive streaming for 360-degree videos
EP4274234A3 (en) 2018-04-03 2024-02-28 Huawei Technologies Co., Ltd. File format signaling of error mitigation in sub-picture bitstream based viewport dependent video coding
GB2572996A (en) * 2018-04-19 2019-10-23 Nokia Technologies Oy Processing video patches for three-dimensional content
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
US10708494B2 (en) 2018-08-13 2020-07-07 At&T Intellectual Property I, L.P. Methods, systems and devices for adjusting 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
MX2021002093A (es) 2018-08-24 2021-04-28 Samsung Electronics Co Ltd Metodo y aparato de decodificacion de videos y metodo y aparato de codificacion de video.
CN113170238B (zh) * 2018-09-12 2023-08-01 诺基亚技术有限公司 用于视频编码和解码的装置、方法和计算机程序
GB2579389B (en) * 2018-11-29 2022-07-27 Canon Kk Method, device and computer program for encapsulating media data into a media file
CN109587409B (zh) * 2018-12-10 2021-08-06 威创集团股份有限公司 视频处理器自适应级联方法、装置及***
EP3668096A1 (en) 2018-12-11 2020-06-17 Axis AB Method and device for encoding a sequence of image frames using a first and a second encoder
US11671625B2 (en) * 2019-01-02 2023-06-06 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
WO2020185145A1 (en) * 2019-03-08 2020-09-17 Telefonaktiebolaget Lm Ericsson (Publ) Methods providing encoding/decoding of dependent/independent partitions and related devices
CN114503573A (zh) * 2019-03-20 2022-05-13 威诺瓦国际有限公司 低复杂性增强视频编码
CN116419000A (zh) * 2019-07-08 2023-07-11 华为技术有限公司 用于视频译码中的参考图像重采样的多个图像大小和符合性窗口的处理
WO2021034338A1 (en) * 2019-08-16 2021-02-25 Google Llc Face-based frame packing for video calls
EP4035413A4 (en) * 2019-09-23 2022-12-14 Telefonaktiebolaget LM Ericsson (publ.) PROVIDING SEGMENT PRESENCE INFORMATION
US20210192019A1 (en) * 2019-12-18 2021-06-24 Booz Allen Hamilton Inc. System and method for digital steganography purification
EP3852341B1 (en) * 2020-01-20 2023-08-30 Shenzhen Transsion Holdings Co., Ltd. Information sharing method, device and non-transitory computer readable storage medium thereof
CN111298427A (zh) * 2020-02-04 2020-06-19 南京大学 一种在虚拟现实云游戏***中降低画面抖动的方法
KR20220156828A (ko) 2020-03-19 2022-11-28 바이트댄스 아이엔씨 레퍼런스 픽처 순서에 대한 제약들
EP4107957A4 (en) * 2020-03-21 2023-08-23 Beijing Bytedance Network Technology Co., Ltd. RESAMPLING REFERENCE IMAGE
CN111586414B (zh) * 2020-04-07 2022-04-15 南京师范大学 一种基于svc和dash的360°视频流调度方法
US11445270B2 (en) 2020-04-15 2022-09-13 Comcast Cable Communications, Llc Content information for manifest determination
CN115699761A (zh) 2020-04-19 2023-02-03 抖音视界有限公司 变换跳过残差编解码
EP4154533A4 (en) 2020-06-20 2023-11-01 Beijing Bytedance Network Technology Co., Ltd. CROSS-LAYER PREDICTION WITH DIFFERENT CODING BLOCK SIZE
KR20230078736A (ko) * 2020-09-29 2023-06-02 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 보조 정보의 시그널링
US11528707B2 (en) 2021-04-26 2022-12-13 Nokia Technologies Oy Primary and secondary beams based channel access
US11483368B1 (en) 2021-07-06 2022-10-25 City University Of Hong Kong Video streaming method and system
WO2023056574A1 (en) * 2021-10-06 2023-04-13 Intel Corporation Methods and apparatus to reduce latency during viewport switching in immersive video

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015197818A1 (en) * 2014-06-27 2015-12-30 Koninklijke Kpn N.V. Hevc-tiled video streaming

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080095228A1 (en) 2006-10-20 2008-04-24 Nokia Corporation System and method for providing picture output indications in video coding
CN102473159A (zh) 2009-11-04 2012-05-23 华为技术有限公司 媒体内容流播的***和方法
KR20120010089A (ko) 2010-07-20 2012-02-02 삼성전자주식회사 Http 기반의 멀티미디어 스트리밍 서비스의 품질 향상을 위한 방법 및 장치
KR101912485B1 (ko) 2011-08-25 2018-10-26 선 페이턴트 트러스트 타일 부호화 스킴을 이용한 영상 부호화, 추출 및 복호화 방법 및 장치
US9749627B2 (en) * 2013-04-08 2017-08-29 Microsoft Technology Licensing, Llc Control data for motion-constrained tile set
GB2516224A (en) 2013-07-11 2015-01-21 Nokia Corp An apparatus, a method and a computer program for video coding and decoding
EP2824884A1 (en) 2013-07-12 2015-01-14 Alcatel Lucent A video client for smooth display of a panoramic video
CN109862373B (zh) 2013-07-15 2021-10-15 索尼公司 用于对比特流进行编码的方法和装置
US9628528B2 (en) 2013-07-19 2017-04-18 Electronics And Telecommunications Research Institute Apparatus and method for providing content
GB2519746B (en) 2013-10-22 2016-12-14 Canon Kk Method, device and computer program for encapsulating scalable partitioned timed media data
EP3713234A1 (en) * 2014-01-07 2020-09-23 Canon Kabushiki Kaisha Method, device, and computer program for encoding inter-layer dependencies in encapsulating multi-layer partitioned timed media data
US10205950B2 (en) * 2014-02-21 2019-02-12 Panasonic Corporation Image decoding method, image encoding method, image decoding apparatus, and image encoding apparatus
GB2524531B (en) 2014-03-25 2018-02-07 Canon Kk Methods, devices, and computer programs for improving streaming of partitioned timed media data
EP3162074A1 (en) 2014-06-27 2017-05-03 Koninklijke KPN N.V. Determining a region of interest on the basis of a hevc-tiled video stream
CA3013657C (en) * 2016-02-09 2022-09-13 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Concept for picture/video data streams allowing efficient reducibility or efficient random access
EP3451675A4 (en) * 2016-04-26 2019-12-04 LG Electronics Inc. -1- METHOD FOR TRANSFERRING 360 DEGREE VIDEOS, METHOD FOR RECEIVING 360 DEGREE VIDEOS, DEVICE FOR TRANSMITTING 360 DEGREE VIDEOS AND DEVICE FOR RECEIVING 360 DEGREE VIDEOS

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015197818A1 (en) * 2014-06-27 2015-12-30 Koninklijke Kpn N.V. Hevc-tiled video streaming

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Misra, Kiran, et al. "An overview of tiles in HEVC", IEEE journal of selected topics in signal processing 7.6 (2013): 페이지 969-977 1부.* *
Sánchez, Yago, et al. "Compressed domain video processing for tile based panoramic streaming using HEVC." 2015 IEEE International Conference on Image Processing (ICIP). IEEE, 2015. 1부.* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220006546A (ko) * 2019-09-23 2022-01-17 구글 엘엘씨 인터럽트 가능한 비디오 트랜스코딩
US11800160B2 (en) 2019-09-23 2023-10-24 Google Llc Interruptible video transcoding

Also Published As

Publication number Publication date
EP3417612A1 (en) 2018-12-26
FI20165114A (fi) 2017-08-18
PH12018501385A1 (en) 2019-02-27
KR102089457B1 (ko) 2020-03-17
US11323723B2 (en) 2022-05-03
CN108702503B (zh) 2022-12-06
US20210227231A1 (en) 2021-07-22
WO2017140945A1 (en) 2017-08-24
EP3417612A4 (en) 2019-11-06
CN108702503A (zh) 2018-10-23

Similar Documents

Publication Publication Date Title
KR102089457B1 (ko) 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
US20200177809A1 (en) Method and an apparatus and a computer program for encoding media content
US10893256B2 (en) Apparatus, a method and a computer program for omnidirectional video
KR102411337B1 (ko) 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
US11689705B2 (en) Apparatus, a method and a computer program for omnidirectional video
US11140417B2 (en) Apparatus, a method and a computer program for video coding and decoding
CN107431819B (zh) 用于视频解码的方法、装置、计算机可读存储介质及视频解码器
EP4084490A1 (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
EP3346709A1 (en) An apparatus, a method and a computer program for video coding and decoding
WO2016113458A1 (en) A method, an apparatus and a computer readable storage medium for video streaming
WO2017093611A1 (en) A method for video encoding/decoding and an apparatus and a computer program product for implementing the method
WO2017140948A1 (en) An apparatus, a method and a computer program for video coding and decoding
WO2017140946A1 (en) An apparatus, a method and a computer program for video coding and decoding
WO2019141907A1 (en) An apparatus, a method and a computer program for omnidirectional video
WO2016185090A1 (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
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