KR20210107865A - 비디오 디코딩 방법, 비디오 코딩 방법, 장치, 디바이스, 및 저장 매체 - Google Patents

비디오 디코딩 방법, 비디오 코딩 방법, 장치, 디바이스, 및 저장 매체 Download PDF

Info

Publication number
KR20210107865A
KR20210107865A KR1020217024788A KR20217024788A KR20210107865A KR 20210107865 A KR20210107865 A KR 20210107865A KR 1020217024788 A KR1020217024788 A KR 1020217024788A KR 20217024788 A KR20217024788 A KR 20217024788A KR 20210107865 A KR20210107865 A KR 20210107865A
Authority
KR
South Korea
Prior art keywords
bitstream
video
library
library picture
flag
Prior art date
Application number
KR1020217024788A
Other languages
English (en)
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 KR20210107865A publication Critical patent/KR20210107865A/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/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/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • 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
    • 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/117Filters, e.g. for pre-processing or post-processing
    • 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/124Quantisation
    • 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/172Methods 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 picture, frame or field
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • 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/234327Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
    • 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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
    • 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/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
    • 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/8451Structuring of content, e.g. decomposing content into time segments using Advanced Video Coding [AVC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 출원은 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되면, 비디오 비트스트림으로부터 제 1 플래그를 파싱하는 단계; 제 1 플래그의 값이 제 1 값일 때, 비디오 비트스트림의 목표 파라미터의 값을 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 이용하는 단계; 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하기 위해, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 기초하여, 복원하는 단계를 포함하는, 비디오 인코딩 방법, 비디오 디코딩 방법, 장치, 디바이스, 및 저장 매체를 개시한다. 본 출원에서 제공되는 기술적인 해결책들에서 디코딩이 비교적 유연하며 디코딩 효율이 높다.

Description

비디오 디코딩 방법, 비디오 코딩 방법, 장치, 디바이스, 및 저장 매체
본 출원은 "VIDEO ENCODER, VIDEO DECODER AND CORRESPONDING METHODS"란 발명의 명칭으로 2019년 1월 8일에 출원된 중국 특허출원 번호 제 201910018725.6호, 및 "VIDEO DECODING METHOD, VIDEO CODING METHOD, APPARATUS, DEVICE, AND STORAGE MEDIUM"란 발명의 명칭으로 2019년 9월 19일에 출원된 중국 특허출원 번호 제 201910888383.3호에 대한 우선권들을 주장하며, 이들 양자는 이들 전체로 본원에 원용된다.
기술 분야
본 출원은 코딩 기술들의 분야, 특히, 비디오 디코딩 방법, 비디오 인코딩 방법, 장치, 디바이스, 및 저장 매체에 관한 것이다.
비디오 코딩 기술들의 발전에 따라, 라이브러리-기반 코딩 방법을 포함하여 더 많은 비디오 코딩 방법들이 있다. 비디오를 인코딩한 후, 인코더 측은 라이브러리 픽처 비트스트림 및 라이브러리 픽처 비트스트림을 참조하는 비디오 비트스트림을 획득한다. 이에 따라, 디코더 측은 비디오를 복원하기 위해, 라이브러리 픽처 비트스트림 및 비디오 비트스트림을 디코딩하여야 한다.
관련 기술은 디코딩 방법을 제공한다. 이 방법에서, 인코더 측에 의해 인코딩되는 라이브러리 픽처 비트스트림 및 비디오 비트스트림이 획득된 후, 라이브러리 픽처 비트스트림을 디코딩하여, 디코딩된 라이브러리 픽처 비트스트림을 획득하기 위해, 제 1 디코더가 호출된다. 그 후, 제 2 디코더가 디코딩된 라이브러리 픽처 비트스트림에 기초하여 비디오 비트스트림을 디코딩하기 위해 호출된다.
관련 기술에서, 2개의 디코더들이 라이브러리 픽처 비트스트림 및 비디오 비트스트림을 각각 디코딩하기 위해 호출되어야 함을 알 수 있다. 따라서, 관련 기술에서의 디코딩 프로세스는 유연하지 않으며, 디코딩 효율이 낮다.
본 출원의 실시형태들은 관련된-기술의 인코딩 프로세스가 유연하지 않고 디코딩 효율이 낮다는 문제들을 해결하기 위해, 비디오 디코딩 방법, 비디오 인코딩 방법, 장치, 디바이스, 및 저장 매체를 제공한다.
제 1 양태에 따르면, 본 출원의 일 실시형태는 비디오 디코딩 방법을 제공한다. 본 방법은 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되면, 비디오 비트스트림으로부터 제 1 플래그를 파싱하는 단계; 및 제 1 플래그의 값이 제 1 값일 때, 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값을 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 이용하는 단계를 포함한다.
선택적으로, 본 방법은 제 1 플래그의 값이 제 1 값일 때, 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값을 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 이용하는 단계; 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하기 위해, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 기초하여, 복원하는 단계를 더 포함할 수도 있다.
"참조하는(referencing)"은 "참조를 허용하는 것"으로서 이해될 수도 있다는 점에 유의해야 한다.
"비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되도록 허용되면"은 "비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되어야 하면"으로 이해될 수도 있다.
선택적으로, 목표 파라미터가 디코딩 능력 정보이면, 제 1 플래그의 값이 제 1 값일 때, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하기 위해, 라이브러리 픽처 비트스트림의 디코딩 능력 정보의 값에 기초하지 않고, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림을 디코딩하기 위해 비디오 비트스트림의 디코더를 직접 호출함으로써 복원이 수행된다.
예시적인 실시형태에서, 본 방법은 비디오 비트스트림에 대응하는 비디오 픽처를 획득하기 위해, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처에 기초하여, 복원하는 단계를 더 포함한다.
예시적인 실시형태에서, 제 1 플래그는 비디오 비트스트림의 시퀀스 헤더에 위치된다.
예시적인 실시형태에서, 제 1 플래그는 동일한 파라미터 플래그를 포함하며, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일한지 여부를 표시하기 위해 동일한 파라미터 플래그가 사용된다. 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터는 비디오 비트스트림의 디코딩 능력 정보를 포함한다.
예시적인 실시형태에서, 제 1 값인 동일한 파라미터 플래그의 값은 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일하다는 것을 표시한다.
예시적인 실시형태에서, 제 2 값인 동일한 파라미터 플래그의 값은 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 상이할 수도 있다는 것을 표시하거나, 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 반드시 동일하거나 또는 동일할 필요가 없음을 표시하거나, 또는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 상이하다는 것을 표시한다.
예시적인 실시형태에서, 목표 파라미터는 디코딩 능력 정보를 포함하며, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하기 위해, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 기초하여, 복원하는 단계는, 사용될 디코더의 디코딩 능력이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보의 값에 의해 표시되는 요건을 만족하는지 여부를 결정하는 단계; 및 사용될 디코더의 디코딩 능력이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보의 값에 의해 표시되는 요건을 만족할 때, 사용될 디코더를 이용하여, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림을 파싱하는 단계; 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하기 위해 복원하는 단계를 포함한다.
예시적인 실시형태에서, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되면, 비디오 비트스트림으로부터 제 1 플래그를 파싱하는 단계는, 비디오 비트스트림으로부터 라이브러리 픽처 참조 플래그를 파싱하는 단계로서, 라이브러리 픽처 참조 플래그는 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되는지 여부를 표시하는데 사용되는, 상기 파싱하는 단계; 및 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용된다는 것을 라이브러리 픽처 참조 플래그의 값이 표시하면, 비디오 비트스트림으로부터 제 1 플래그를 파싱하는 단계를 포함한다.
다른 예시적인 실시형태에서, 라이브러리 픽처 참조 플래그는 또한 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되어야 하는지 여부를 표시하는데 사용될 수도 있다. 또, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되어야 한다고 라이브러리 픽처 참조 플래그의 값이 표시하면, 제 1 플래그는 비디오 비트스트림으로부터 파싱된다.
예시적인 실시형태에서, 비디오 비트스트림은 라이브러리 픽처 플래그를 포함하며, 라이브러리 픽처 플래그의 값은 제 2 값이며, 제 2 값인 라이브러리 픽처 플래그는 비디오 비트스트림이 라이브러리 픽처 비트스트림이 아니다는 것을 표시한다. 라이브러리 픽처 플래그가 비디오 비트스트림의 시퀀스 헤더에 위치될 수도 있다는 점에 유의해야 한다.
예시적인 실시형태에서, 본 방법은 현재의 비트스트림으로부터 라이브러리 픽처 플래그를 획득하는 단계; 및 비디오 비트스트림이 라이브러리 픽처 비트스트림이 아니라는 것을 라이브러리 픽처 플래그의 값이 표시할 때에만 현재의 비트스트림을 비디오 비트스트림으로서 이용하여, 비디오 비트스트림으로부터 라이브러리 픽처 참조 플래그를 파싱하는 단계를 더 포함한다.
예시적인 실시형태에서, 목표 파라미터는 디코딩 능력 정보를 포함하며, 본 방법은 비디오 비트스트림의 비디오 파라미터 세트 VPS로부터 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 파싱하는 단계; 비디오 비트스트림의 시퀀스 파라미터 세트 SPS로부터 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 파싱하는 단계; 또는 비디오 비트스트림의 시퀀스 헤더로부터 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 파싱하는 단계를 더 포함한다.
예시적인 실시형태에서, 본 방법은 또한 비디오 비트스트림의 비디오 파라미터 세트 VPS로부터 라이브러리 픽처 비트스트림의 목표 파라미터를 파싱하는 단계; 비디오 비트스트림의 시퀀스 파라미터 세트 SPS로부터 라이브러리 픽처 비트스트림의 목표 파라미터를 파싱하는 단계; 또는 비디오 비트스트림의 시퀀스 헤더로부터 라이브러리 픽처 비트스트림의 목표 파라미터를 파싱하는 단계를 포함한다.
예시적인 실시형태에서, 목표 파라미터는 디코딩 능력 정보를 포함하며, 비디오 비트스트림의 디코딩 능력 정보는 프로파일 플래그 및 레벨 플래그를 포함하며, 프로파일 플래그는 비디오 비트스트림이 속하는 프로파일을 표시하는데 사용되며, 레벨 플래그는 비디오 비트스트림이 속하는 레벨을 표시하는데 사용되며; 그리고 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값을 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 이용하는 단계는 프로파일 플래그 및 레벨 플래그를 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보로서 이용하는 단계를 포함한다.
제 2 양태에 따르면, 비디오 인코딩 방법이 제공된다. 본 방법은 비디오 픽처가 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 인코딩되도록 허용되면, 인코딩된 데이터를 획득하기 위해, 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 비디오 픽처를 인코딩하는 단계; 및 비디오 비트스트림을 획득하기 위해 제 1 플래그를 인코딩된 데이터에 추가하는 단계를 포함하며, 제 1 값인 제 1 플래그의 값은 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 사용된다는 것을 표시한다.
선택적으로, 제 1 값인 제 1 플래그의 값은 또한 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일하다는 것을 표시할 수도 있다.
예시적인 실시형태에서, 제 1 플래그는 비디오 비트스트림의 시퀀스 헤더에 위치된다.
예시적인 실시형태에서, 인코딩된 데이터는 디코딩 능력 정보를 포함한다.
예시적인 실시형태에서, 제 1 플래그는 동일한 파라미터 플래그를 포함하며, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일한지 여부를 표시하기 위해 동일한 파라미터 플래그가 사용되며; 그리고 제 1 값인 동일한 파라미터 플래그의 값은 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일하다는 것을 표시한다. 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터는 비디오 비트스트림의 디코딩 능력 정보를 포함할 수도 있다.
예시적인 실시형태에서, 비디오 비트스트림은 라이브러리 픽처 참조 플래그를 더 포함하며, 라이브러리 픽처 참조 플래그는 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되는지 여부를 표시하는데 사용된다.
예시적인 실시형태에서, 비디오 비트스트림은 라이브러리 픽처 플래그를 더 포함하며, 제 2 값인 라이브러리 픽처 플래그의 값은 비디오 비트스트림이 라이브러리 픽처 비트스트림이 아니다는 것을 표시한다.
예시적인 실시형태에서, 목표 파라미터는 디코딩 능력 정보를 포함하며, 디코딩 능력 정보는 인코딩된 데이터의 비디오 파라미터 세트 VPS에 위치되거나, 인코딩된 데이터의 시퀀스 파라미터 세트 SPS에 위치되거나, 또는 비디오 비트스트림의 시퀀스 헤더에 위치된다.
예시적인 실시형태에서, 목표 파라미터는 인코딩된 데이터의 비디오 파라미터 세트 VPS에 위치되거나, 또는 인코딩된 데이터의 시퀀스 파라미터 세트 SPS에 위치되거나, 또는 비디오 비트스트림의 시퀀스 헤더에 위치된다.
예시적인 실시형태에서, 목표 파라미터는 디코딩 능력 정보를 포함하며, 디코딩 능력 정보는 프로파일 플래그 및 레벨 플래그를 포함하며, 프로파일 플래그는 라이브러리 픽처 비트스트림이 속하는 프로파일을 표시하는데 사용되며, 레벨 플래그는 라이브러리 픽처 비트스트림이 속하는 레벨을 표시하는데 사용된다. 프로파일 플래그 및 레벨 플래그는 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 표시하는데 사용된다.
제 3 양태에 따르면, 비디오 디코딩 장치가 추가로 제공된다. 본 장치는 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되면, 비디오 비트스트림으로부터 제 1 플래그를 파싱하고; 그리고 제 1 플래그의 값이 제 1 값일 때, 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값을 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 이용하도록 구성된 파싱 모듈을 포함한다.
선택적으로, 파싱 모듈은 또한 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되면, 비디오 비트스트림으로부터 제 1 플래그를 파싱하고; 그리고 제 1 플래그의 값이 제 1 값일 때, 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값을 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 이용하도록 구성된다.
선택적으로, 본 장치는 제 1 플래그의 값이 제 1 값일 때, 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값을 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 이용하고; 그리고 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하기 위해, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 기초하여, 복원하도록 구성된 복원 모듈을 더 포함할 수도 있다.
선택적으로, 복원 모듈은 또한 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 기초하여, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 복원하도록 구성될 수도 있다.
예시적인 실시형태에서, 복원 모듈은 비디오 비트스트림에 대응하는 비디오 픽처를 획득하기 위해, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처에 기초하여, 복원하도록 추가로 구성된다.
예시적인 실시형태에서, 제 1 플래그는 비디오 비트스트림의 시퀀스 헤더에 위치된다.
예시적인 실시형태에서, 제 1 플래그는 동일한 파라미터 플래그를 포함하며, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일한지 여부를 표시하기 위해 동일한 파라미터 플래그가 사용되며; 그리고 제 1 값인 동일한 파라미터 플래그의 값은 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일하다는 것을 표시한다.
예시적인 실시형태에서, 목표 파라미터는 디코딩 능력 정보를 포함하며, 복원 모듈은 사용될 디코더의 디코딩 능력이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보의 값에 의해 표시되는 요건을 만족하는지 여부를 결정하고; 그리고, 사용될 디코더의 디코딩 능력이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보의 값에 의해 표시되는 요건을 만족할 때, 사용될 디코더를 이용하여, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림을 파싱하고; 그리고 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하기 위해 복원하도록 구성된다.
예시적인 실시형태에서, 파싱 모듈은 비디오 비트스트림으로부터 라이브러리 픽처 참조 플래그를 파싱하는 것으로서, 라이브러리 픽처 참조 플래그는 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되는지 여부를 표시하는데 사용되는, 상기 파싱하고; 그리고 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용된다는 것을 라이브러리 픽처 참조 플래그의 값이 표시하면, 비디오 비트스트림으로부터 제 1 플래그를 파싱하도록 구성된다.
예시적인 실시형태에서, 라이브러리 픽처 플래그는 비디오 비트스트림으로부터 파싱되며, 라이브러리 픽처 플래그의 값은 제 2 값이며, 제 2 값인 라이브러리 픽처 플래그는 비디오 비트스트림이 라이브러리 픽처 비트스트림이 아니다는 것을 표시한다.
예시적인 실시형태에서, 파싱 모듈은 현재의 비트스트림으로부터 라이브러리 픽처 플래그를 획득하고; 그리고, 비디오 비트스트림이 라이브러리 픽처 비트스트림이 아니라는 것을 라이브러리 픽처 플래그의 값이 표시할 때에만 현재의 비트스트림을 비디오 비트스트림으로서 이용하고, 비디오 비트스트림으로부터 라이브러리 픽처 참조 플래그를 파싱하도록 추가로 구성된다.
예시적인 실시형태에서, 목표 파라미터는 디코딩 능력 정보를 포함하며, 파싱 모듈은 비디오 비트스트림의 비디오 파라미터 세트 VPS로부터 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 파싱하거나; 비디오 비트스트림의 시퀀스 파라미터 세트 SPS로부터 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 파싱하거나; 또는 비디오 비트스트림의 시퀀스 헤더로부터 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 파싱하도록 추가로 구성된다.
예시적인 실시형태에서, 파싱 모듈은 비디오 비트스트림의 비디오 파라미터 세트 VPS로부터 라이브러리 픽처 비트스트림의 목표 파라미터를 파싱하거나, 비디오 비트스트림의 시퀀스 파라미터 세트 SPS로부터 라이브러리 픽처 비트스트림의 목표 파라미터를 파싱하거나, 또는 비디오 비트스트림의 시퀀스 헤더로부터 라이브러리 픽처 비트스트림의 목표 파라미터를 파싱하도록 추가로 구성된다.
예시적인 실시형태에서, 목표 파라미터는 디코딩 능력 정보를 포함하며, 비디오 비트스트림의 디코딩 능력 정보는 프로파일 플래그 및 레벨 플래그를 포함하며, 프로파일 플래그는 비디오 비트스트림이 속하는 프로파일을 표시하는데 사용되며, 레벨 플래그는 비디오 비트스트림이 속하는 레벨을 표시하는데 사용되며; 그리고 파싱 모듈은 프로파일 플래그 및 레벨 플래그를 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보로서 이용하도록 구성된다.
제 4 양태에 따르면, 비디오 인코딩 장치가 제공된다. 본 장치는 비디오 픽처가 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 인코딩되도록 허용되면, 인코딩된 데이터를 획득하기 위해, 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써, 비디오 픽처를 인코딩하도록 구성된 인코딩 모듈; 및 비디오 비트스트림을 획득하기 위해 제 1 플래그를 인코딩된 데이터에 추가하도록 구성된 추가 모듈을 포함하며, 제 1 값인 제 1 플래그의 값은 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 사용된다는 것을 표시한다.
선택적으로, 제 1 값인 제 1 플래그의 값은 또한 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일하다는 것을 표시할 수도 있다.
예시적인 실시형태에서, 제 1 플래그는 비디오 비트스트림의 시퀀스 헤더에 위치된다.
예시적인 실시형태에서, 제 1 플래그는 동일한 파라미터 플래그를 포함하며, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일한지 여부를 표시하기 위해 동일한 파라미터 플래그가 사용되며; 그리고 제 1 값인 동일한 파라미터 플래그의 값은 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일하다는 것을 표시한다.
예시적인 실시형태에서, 비디오 비트스트림은 라이브러리 픽처 참조 플래그를 더 포함하며, 라이브러리 픽처 참조 플래그는 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되는지 여부를 표시하는데 사용된다.
예시적인 실시형태에서, 비디오 비트스트림은 라이브러리 픽처 플래그를 더 포함하며, 제 2 값인 라이브러리 픽처 플래그의 값은 비디오 비트스트림이 라이브러리 픽처 비트스트림이 아니다는 것을 표시한다.
예시적인 실시형태에서, 목표 파라미터는 디코딩 능력 정보를 포함하며, 디코딩 능력 정보는 인코딩된 데이터의 비디오 파라미터 세트 VPS에 위치되거나, 인코딩된 데이터의 시퀀스 파라미터 세트 SPS에 위치되거나, 또는 비디오 비트스트림의 시퀀스 헤더에 위치된다.
예시적인 실시형태에서, 목표 파라미터는 디코딩 능력 정보를 포함하며, 목표 파라미터는 인코딩된 데이터의 비디오 파라미터 세트 VPS에 위치되거나, 인코딩된 데이터의 시퀀스 파라미터 세트 SPS에 위치되거나, 또는 비디오 비트스트림의 시퀀스 헤더에 위치된다.
예시적인 실시형태에서, 목표 파라미터는 디코딩 능력 정보를 포함하며, 디코딩 능력 정보는 프로파일 플래그 및 레벨 플래그를 포함하며, 프로파일 플래그는 라이브러리 픽처 비트스트림이 속하는 프로파일을 표시하는데 사용되며, 레벨 플래그는 라이브러리 픽처 비트스트림이 속하는 레벨을 표시하는데 사용된다.
제 5 양태에 따르면, 본 출원의 일 실시형태는 메모리 및 프로세서를 포함하는, 비디오 디코딩 디바이스를 제공한다. 메모리는 스토어들 적어도 하나의 명령, 및 적어도 하나의 명령이 본 출원의 실시형태들의 제 1 양태 또는 제 1 양태의 가능한 구현예들 중 어느 하나에서 본 방법을 구현하기 위해, 프로세서에 의해 로드되어 실행된다.
제 6 양태에 따르면, 본 출원의 일 실시형태는 메모리 및 프로세서를 포함하는, 비디오 인코딩 디바이스를 제공한다. 메모리는 적어도 하나의 명령을 저장하며, 적어도 하나의 명령이 본 출원의 실시형태들의 제 2 양태 또는 제 2 양태의 가능한 구현예들 중 어느 하나에서 본 방법을 구현하기 위해, 프로세서에 의해 로드되어 실행된다.
선택적으로, 하나 이상의 프로세서들이 있으며, 하나 이상의 메모리들이 있다.
선택적으로, 메모리는 프로세서와 통합될 수도 있거나, 또는 메모리 및 프로세서는 별도로 배치된다.
특정의 구현 프로세스에서, 메모리는 비일시성(non-transitory) 메모리, 예컨대 판독-전용 메모리(read only memory, ROM)일 수도 있다. 메모리 및 프로세서는 하나의 칩으로 통합될 수도 있거나, 또는 상이한 칩들에 배치될 수도 있다. 메모리의 유형 및 메모리 및 프로세서가 배치되는 방식은 본 출원의 본 실시형태에 한정되지 않는다.
제 7 양태에 따르면, 컴퓨터 프로그램(제품)이 제공된다. 컴퓨터 프로그램(제품)은 컴퓨터 프로그램 코드를 포함한다. 컴퓨터 프로그램 코드가 컴퓨터에 의해 실행될 때, 컴퓨터는 전술한 양태들에서의 방법들을 수행할 수도 있다.
제 8 양태에 따르면, 판독가능 저장 매체가 제공된다. 판독가능 저장 매체는 프로그램 또는 명령들을 저장한다. 프로그램 또는 명령들이 컴퓨터 상에서 실행될 때, 전술한 양태들에서의 방법들이 수행된다.
제 9 양태에 따르면, 칩이 제공된다. 칩은 메모리에 저장된 명령들을 호출하여 실행하도록 구성된 프로세서를 포함하며, 칩이 설치되는 통신 장비는 전술한 양태들에서의 방법들을 수행할 수도 있다.
제 10 양태에 따르면, 다른 칩이 제공된다. 칩은 입력 인터페이스, 출력 인터페이스, 프로세서, 및 메모리를 포함한다. 입력 인터페이스, 출력 인터페이스, 프로세서, 및 메모리는 내부 접속 경로를 통해서 서로 접속된다. 프로세서는 메모리 내 코드를 실행하도록 구성된다. 코드가 실행될 때, 프로세서는 전술한 양태들에서의 방법들을 수행하도록 구성된다.
본 출원의 실시형태들의 제 2 내지 제 10 양태들에서의 기술적인 해결책들이 본 출원의 실시형태들의 제 1 양태에서의 기술적인 해결책들과 일치하고, 그리고 양태들 및 대응하는 실현가능한 구현예들에 의해 달성되는 유익한 효과들이 유사한 것으로 이해되어야 한다. 세부 사항은 다시 설명되지 않는다.
제 11 양태에 따르면, 본 출원의 일 실시형태는 비디오 비트스트림으로부터 라이브러리 픽처 참조 플래그를 파싱하는 단계로서, 라이브러리 픽처 참조 플래그는 라이브러리 픽처 참조 플래그를 포함하는 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되도록 허용되는지 여부를 표시하는데 사용되는, 단계; 및 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용된다고 라이브러리 픽처 참조 플래그가 표시할 때, 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하고, 그리고 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처에 기초하여 비디오 비트스트림을 디코딩하는 단계를 포함하는, 비디오 디코딩 방법을 제공한다.
예시적인 실시형태에서, 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하는 단계는, 비디오 비트스트림으로부터 동일한 표준 플래그를 파싱하는 단계로서, 동일한 표준은 라이브러리 픽처 비트스트림을 디코딩하는데 사용되는 표준이 비디오 비트스트림을 디코딩하는데 사용되는 표준과 동일한지 여부를 표시하는데 사용되는, 단계; 및 라이브러리 픽처 비트스트림을 디코딩하는데 사용되는 표준이 비디오 비트스트림을 디코딩하는데 사용되는 표준과 동일하다고 동일한 표준이 표시할 때, 라이브러리 픽처 비트스트림을 획득하고, 그리고 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하기 위해 라이브러리 픽처 비트스트림을 디코딩하는 단계를 포함한다.
예시적인 실시형태에서, 동일한 표준 플래그는 비디오 비트스트림의 비디오 파라미터 세트(video parameters set), 비디오 비트스트림의 시퀀스 파라미터 세트(sequence parameters set), 또는 비디오 비트스트림의 시퀀스 헤더(sequence header)에 위치된다.
예시적인 실시형태에서, 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하는 단계는, 라이브러리 픽처 비트스트림을 획득하고, 그리고 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하기 위해 라이브러리 픽처 비트스트림을 디코딩하는 단계를 포함한다.
예시적인 실시형태에서, 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하기 위해 라이브러리 픽처 비트스트림을 디코딩하는 단계는, 비디오 비트스트림으로부터 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 파싱하는 단계, 및 비디오 비트스트림을 현재 디코딩하는 디코더의 디코딩 능력이 디코딩 능력 정보의 요건을 만족할 때, 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하기 위해 라이브러리 픽처 비트스트림을 디코딩하는 단계를 포함한다.
예시적인 실시형태에서, 디코딩 능력 정보는 라이브러리 픽처 비트스트림이 속하는 프로파일 및/또는 라이브러리 픽처 비트스트림이 속하는 레벨을 포함하며, 라이브러리 픽처 비트스트림이 속하는 프로파일 및/또는 라이브러리 픽처 비트스트림이 속하는 레벨을 포함하는 디코딩 능력 정보는 라이브러리 픽처 비트스트림을 디코딩하는데 요구되는 디코딩 능력을 표시한다.
예시적인 실시형태에서, 비디오 비트스트림은 라이브러리 픽처 플래그 또는 라이브러리 픽처 플래그에 관한 정보를 포함하며, 라이브러리 픽처 플래그에 관한 정보는 라이브러리 픽처 플래그를 표시하는데 사용되며; 라이브러리 픽처 플래그의 값은 비디오 비트스트림이 라이브러리 픽처 비트스트림이 아니라는 것을 표시하는데 사용된다.
예시적인 실시형태에서, 라이브러리 픽처 참조 플래그는 비디오 비트스트림이 라이브러리 픽처 비트스트림이 아니라는 것을 표시하는데 라이브러리 픽처 플래그의 값이 사용될 때에만 비디오 비트스트림으로부터 파싱된다.
예시적인 실시형태에서, 비디오 비트스트림은 동일한 파라미터 플래그를 포함하며; 동일한 파라미터 플래그의 값은 라이브러리 픽처 비트스트림의 시퀀스 헤더 내 라이브러리 픽처 플래그 이외의 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 라이브러리 픽처 플래그 이외의 파라미터의 값과 동일한지 여부를 표시하는데 사용된다.
예시적인 실시형태에서, 라이브러리 픽처 참조 플래그는 비디오 비트스트림의 비디오 파라미터 세트(video parameters set), 비디오 비트스트림의 시퀀스 파라미터 세트(sequence parameters set), 또는 비디오 비트스트림의 시퀀스 헤더(sequence header)에 위치된다.
제 12 양태에 따르면, 본 출원의 일 실시형태는 비디오 비트스트림으로부터, 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 파싱하는 단계; 비디오 비트스트림을 현재 디코딩하는 디코더의 디코딩 능력이 디코딩 능력 정보의 요건을 만족할 때, 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하고, 그리고 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처에 기초하여 비디오 비트스트림을 디코딩하는 단계를 포함하는, 비디오 디코딩 방법을 제공한다.
제 13 양태에 따르면, 본 출원의 일 실시형태는 제 1 양태에서의 방법을 구현하도록 구성된 여러 기능 유닛들을 포함하는, 비디오 디코딩 디바이스를 제공한다.
예를 들어, 비디오 디코딩 디바이스는 비디오 비트스트림으로부터 라이브러리 픽처 참조 플래그를 파싱하는 것으로서, 라이브러리 픽처 참조 플래그는 라이브러리 픽처 참조 플래그를 포함하는 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되도록 허용되는지 여부를 표시하는데 사용되는, 상기 파싱하도록 구성된 파싱 유닛; 및 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용된다는 것을 라이브러리 픽처 참조 플래그가 표시하면, 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하고, 그리고 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처에 기초하여 비디오 비트스트림을 디코딩하도록 구성된 복원 유닛을 포함할 수도 있다.
제 14 양태에 따르면, 본 출원의 일 실시형태는 제 2 양태에서의 방법을 구현하도록 구성된 여러 기능 유닛들을 포함하는, 비디오 디코딩 디바이스를 제공한다. 예를 들어, 비디오 디코딩 디바이스는 비디오 비트스트림으로부터 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 파싱하도록 구성된 파싱 유닛; 및 비디오 비트스트림을 현재 디코딩하는 디코더의 디코딩 능력이 디코딩 능력 정보의 요건을 만족할 때, 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하고, 그리고 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처에 기초하여 비디오 비트스트림을 디코딩하도록 구성된 복원 유닛을 포함할 수도 있다.
제 15 양태에 따르면, 본 출원의 일 실시형태는 서로 커플링된 비-휘발성 메모리 및 프로세서를 포함하는, 디코딩 디바이스를 제공한다. 프로세서는 메모리에 저장된 프로그램 코드를 호출하여 제 1 양태 또는 제 2 양태에서의 방법 중 또는 모든 단계들을 수행한다.
제 16 양태에 따르면, 본 출원의 일 실시형태는 컴퓨터-판독가능 저장 매체를 제공한다. 컴퓨터-판독가능 저장 매체는 프로그램 코드를 저장하며, 프로그램 코드는 제 1 양태 또는 제 2 양태에서의 방법 중 또는 모든 단계들을 수행하는데 사용되는 명령들을 포함한다.
제 17 양태에 따르면, 본 출원의 일 실시형태는 컴퓨터 프로그램 제품을 제공한다. 컴퓨터 프로그램 제품이 컴퓨터 상에서 실행될 때, 컴퓨터는 제 11 양태 또는 제 12 양태에서의 방법의 단계들 일부 또는 모두를 수행할 수 있다.
마지막으로, 본 출원에서 제공되는 기술적인 해결책들은 적어도 다음 유익한 효과들을 갖는다.
본 출원에서, 비디오 비트스트림은 디코딩 능력 정보를 운반하는데 사용된다. 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용될 때, 제 1 플래그는 비디오 비트스트림으로부터 파싱된다. 제 1 플래그가 제 1 값일 때, 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값은 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 사용된다. 라이브러리 픽처는 라이브러리 픽처 비트스트림 및 라이브러리 픽처 비트스트림의 목표 파라미터의 값에 기초하여 복원되고, 그후, 비디오 비트스트림에 대응하는 비디오 픽처가 라이브러리 픽처 및 비디오 비트스트림에 기초하여 복원될 수도 있다. 따라서, 본 출원의 실시형태들에서 제공되는 해결책들에 따르면, 파라미터들이 라이브러리 픽처 비트스트림과 비디오 비트스트림 사이에 공유되며, 디코딩 효율이 높다.
도 1a는 본 출원의 일 실시형태에 따른 비디오 인코딩 및 디코딩 시스템(10)의 일 예의 블록도이다.
도 1b는 본 출원의 일 실시형태에 따른 비디오 코딩 시스템(40)의 일 예의 블록도이다.
도 2는 본 출원의 일 실시형태에 따른 인코더(20)의 예시적인 구조의 블록도이다.
도 3은 본 출원의 일 실시형태에 따른 디코더(30)의 예시적인 구조의 블록도이다.
도 4는 본 출원의 일 실시형태에 따른 비디오 코딩 디바이스(400)의 일 예의 블록도이다.
도 5는 본 출원의 일 실시형태에 따른 인코딩 장치 또는 디코딩 장치의 다른 예의 블록도이다.
도 6은 본 출원의 일 실시형태에 따른 비디오 비트스트림과 라이브러리 픽처 비트스트림 사이의 관계의 개략도이다.
도 7은 본 출원의 일 실시형태에 따른 비디오 디코딩 방법의 플로우차트이다.
도 8a는 본 출원의 일 실시형태에 따른 비트스트림에서의 디코딩 능력 정보의 위치의 개략도이다.
도 8b는 본 출원의 일 실시형태에 따른 비트스트림에서의 디코딩 능력 정보의 위치의 개략도이다.
도 9는 본 출원의 일 실시형태를 구현하는 비디오 인코딩 방법의 플로우차트이다.
도 10은 본 출원의 일 실시형태에 따른 비디오 디코딩 장치의 구조의 개략도이다.
도 11은 본 출원의 일 실시형태에 따른 비디오 인코딩 장치의 구조의 개략도이다.
도 12는 본 출원의 일 실시형태에 따른 콘텐츠 공급 시스템의 구조의 개략도이다.
도 13은 본 출원의 일 실시형태에 따른 터미널 디바이스의 구조의 개략도이다.
다음은 본 출원의 실시형태에서 첨부 도면을 참조하여 본 출원의 실시형태를 설명한다. 본 출원의 실시형태들이 다른 양태들에서 사용될 수도 있으며 첨부 도면들에 도시되지 않은 구조적 또는 논리적 변화들을 포함할 수도 있는 것으로 이해되어야 한다. 따라서, 다음 상세한 설명은 제한적인 의미로 받아들여서는 안되며, 본 출원의 범위는 첨부된 청구범위에 의해 정의된다. 예를 들어, 설명된 방법을 참조하는 개시물이 또한 본 방법을 수행하도록 구성된 대응하는 디바이스 또는 시스템에 대해서도 유효할 수도 있으며 반대의 경우도 마찬가지인 것으로 이해되어야 한다. 예를 들어, 설명된 방법들을 참조하는 개시된 내용이 또한 본 방법을 수행하도록 구성된 대응하는 디바이스 또는 시스템에 대해서도 유효할 수도 있으며, 반대의 경우도 마찬가지인 것으로 이해되어야 한다. 예를 들어, 하나 이상의 특정의 방법 단계들이 설명되면, 대응하는 디바이스는 이러한 하나 이상의 유닛들이 첨부 도면들에 명시적으로 설명되거나 또는 예시되지 않더라도, 설명된 하나 이상의 방법 단계들을 수행하는 기능 유닛들과 같은, 하나 이상의 유닛들을 포함할 수도 있다(예를 들어, 하나의 유닛은 하나 이상의 단계들을 수행하거나; 또는 복수의 유닛들은, 각각 복수의 단계들 중 하나 이상을 수행한다). 게다가, 예를 들어, 특정 장치가 기능 유닛과 같은 하나 이상의 유닛들에 기초하여 설명되면, 대응하는 방법은 이러한 하나 이상의 단계들이 첨부 도면들에 명시적으로 설명되거나 또는 예시되지 않더라도, 하나 이상의 유닛들의 하나 이상의 기능들을 수행하는데 사용되는 단계를 포함할 수도 있다(예를 들어, 하나의 단계가 하나 이상의 유닛들의 하나 이상의 기능들을 수행하는데 사용되거나; 또는 복수의 단계들 각각은 복수의 유닛들에서 하나 이상의 유닛들의 하나 이상의 기능들을 수행하는데 사용된다). 또, 본 명세서에서 설명되는 다양한 예시적인 실시형태들 및/또는 양태들의 특징들이 달리 명시하지 않는 한, 서로 결합될 수도 있는 것으로 이해되어야 한다.
본 출원의 실시형태들에 관련된 기술적인 해결책들은 비디오 코딩 표준들, 예를 들어, H.264 및 고효율 비디오 코딩(High Efficiency video coding, HEVC)에 적용될 뿐만 아니라, 미래 비디오 코딩 표준들, 예를 들어, H.266 표준에도 적용될 수도 있다. 본 출원의 구현예들에서 사용되는 용어들은 단지 본 출원의 특정 실시형태들을 설명하도록 의도되며, 본 출원을 한정하려는 것이 아니다. 다음은 본 출원의 실시형태들에서의 관련된 컨셉들을 먼저 간단히 설명한다.
비디오 코딩은 전형적으로 픽처들의 시퀀스의 프로세싱을 지칭하며, 픽처들의 시퀀스는 비디오 또는 비디오 시퀀스를 형성한다. 비디오 코딩의 분야에서, 용어들 "픽처(picture)", "프레임(frame)", 및 "이미지(image)"는 동의어들로서 사용될 수도 있다. 비디오 인코딩은 소스 측 상에서 수행되며, 대개 좀더 효율적인 저장 및/또는 송신을 위해, 픽처 시퀀스를 표현하기 위한 데이터의 양을 감소시키기 위해 픽처 시퀀스를 (예를 들어, 압축을 통해) 프로세싱하는 것을 포함한다. 비디오 디코딩은 목적지 측 상에서 수행되며, 대개 픽처 시퀀스를 복원하기 위해 인코더와 비교하여 역프로세싱하는 것을 포함한다.
또, 픽처는 슬라이스들(slice)로 추가로 분할되며, 슬라이스는 블록들(block)로 추가로 분할된다. 비디오 코딩은 블록에 의해 수행된다. 일부 새로운 비디오 코딩 표준들에서, 컨셉 "블록"은 추가로 확장된다. 예를 들어, H.264 표준에서는, 매크로 블록(macro block, MB)이 있으며, 매크로 블록은 예측 코딩에 사용될 수 있는 복수의 파티션들(partition)로 추가로 분할될 수도 있다. HEVC 표준에서, 복수의 블록 유닛들은 코딩 유닛(coding unit, CU), 예측 유닛(prediction unit, PU), 및 변환 유닛(transform unit, TU)이 사용되는 것과 같은 기본적인 컨셉들에 따라 기능별로 분류되며, 새로운 트리-기반 구조를 이용하여 설명된다. 예를 들어, CU는 쿼드트리에 기초하여 더 작은 CU들로 파티셔닝될 수도 있으며, 더 작은 CU는 쿼드트리 구조를 발생시키기 위해 추가로 파티셔닝될 수도 있다. CU는 코딩된 픽처를 파티셔닝하고 인코딩하기 위한 기본 유닛이다. PU 및 TU는 또한 유사한 트리 구조들을 갖는다. PU는 예측 블록에 대응할 수도 있으며, 예측 코딩을 위한 기본 단위이다. CU는 파티셔닝 모드에서 복수의 PU들로 추가로 파티셔닝된다. TU는 변환 블록에 대응할 수도 있으며, 예측 잔차를 변환하기 위한 기본 단위이다. 그러나, 본질적으로, CU, PU, 및 TU 모두는 개념적으로 블록들(또는, 픽처 블록들)이다.
예를 들어, HEVC에서, CTU는 코딩 트리로서 표현되는 쿼드트리 구조를 이용하여 복수의 CU들로 파티셔닝된다. 픽처 영역을 인터-픽처(시간) 또는 인트라-픽처(공간) 예측을 이용하여 코딩할지 여부에 관한 결정이 CU 레벨에서 이루어진다. 각각의 CU는 PU 분할 패턴에 기초하여 하나, 2개, 또는 4개의 PU들로 추가로 분할될 수도 있다. 하나의 PU에서, 동일한 예측 프로세스가 적용되며, 관련된 정보가 PU 단위로 디코더로 송신된다. PU 분할 패턴에 기초하여 예측 프로세스를 적용하여 잔차 블록을 획득한 후, CU는 CU에 사용되는 코딩 트리와 유사한 다른 쿼드트리 구조에 기초하여 TU들로 파티셔닝될 수도 있다. 비디오 압축 기술들의 개발에서, 쿼드트리 플러스 2진 트리(Quad-tree and binary tree, QTBT) 파티션 프레임이 코딩 블록을 파티셔닝하는데 사용된다. QTBT 블록 구조에서, CU는 정사각형 또는 직사각형일 수도 있다.
본 명세서에서, 설명의 용이성 및 이해를 위해, 현재의 코딩된 픽처에서의 인코딩될 픽처 블록은 현재의 블록으로서 지칭될 수도 있다. 예를 들어, 인코딩에서, 현재의 블록은 인코딩중인 블록이고, 디코딩에서, 현재의 블록은 디코딩중인 블록이다. 현재의 블록을 예측하는데 사용되는, 참조 픽처 내, 디코딩된 픽처 블록은 참조 블록으로 지칭된다. 구체적으로, 참조 블록은 현재의 블록에 대한 참조 신호를 제공하는 블록이며, 참조 신호는 픽처 블록에서의 픽셀 값을 나타낸다. 참조 픽처에 있고 현재의 블록에 대한 예측 신호를 제공하는 블록은 예측 블록으로 지칭될 수도 있다. 예측 신호는 예측 블록에서의 픽셀 값, 샘플링 값, 또는 샘플링 신호를 나타낸다. 예를 들어, 최적의 참조 블록을 발견하기 위해 복수의 참조 블록들이 순회된 후, 최적의 참조 블록은 현재의 블록에 대한 예측을 제공하며, 이 블록은 예측 블록으로 지칭된다.
무손실 비디오 코딩의 경우, 원래 픽처 시퀀스는 복원될 수도 있다. 다시 말해서, 복원된 픽처 시퀀스는 (어떤 송신 손실 또는 다른 데이터 손실도 저장 또는 송신 동안 일어나지 않는다고 가정하면) 원래 픽처 시퀀스와 동일한 품질을 갖는다. 손실 비디오 코딩의 경우, 추가적인 압축이 픽처 시퀀스를 나타내는데 요구되는 데이터의 양을 감소시키기 위해, 예를 들어, 양자화를 통해서, 수행된다. 픽처 시퀀스는 디코더 측 상에서 완전히 복원되지 않을 수 있다. 다시 말해서, 복원된 픽처 시퀀스의 품질이 원래 픽처 시퀀스의 품질보다 낮거나 또는 열악하다.
여러 H.261 비디오 코딩 표준들이 "손실 하이브리드 비디오 코덱들"에 사용된다(즉, 샘플 도메인에서의 공간 및 시간 예측이 변환 도메인에서의 양자화에 적용하기 위해 2D 변환 코딩과 결합된다). 비디오 시퀀스의 각각의 픽처는 일반적으로 비-중첩 블록들의 세트로 파티셔닝되며, 코딩이 일반적으로 블록 레벨에서 수행된다. 다시 말해서, 인코더 측 상에서, 비디오가 일반적으로 블록(비디오 블록) 레벨에서 프로세싱된다, 즉 인코딩된다. 예를 들어, 예측 블록이 공간(인트라-픽처) 예측 및 시간(인터-픽처) 예측을 통해서 발생되며, 예측 블록은 잔차 블록을 획득하기 위해 현재의 블록(현재 프로세싱중이거나 또는 프로세싱될 블록)으로부터 감산되며, 잔차 블록은 송신되는(압축되는) 데이터의 양을 감소시키기 위해 변환 도메인에서 변화되어 양자화된다. 디코더 측 상에서, 인코더에 대한 역 프로세싱 부분이 표현을 위한 현재의 블록을 복원하기 위해, 인코딩된 또는 압축된 블록에 적용된다. 더욱이, 인코더는 디코더의 프로세싱 루프를 복제하여, 인코더 및 디코더가 후속 블록들을 프로세싱, 즉, 코딩하기 위해 동일한 예측(예를 들어, 인트라 예측 및 인터 예측) 및/또는 복원을 발생시키도록 한다.
다음은 본 출원의 실시형태들에 적용가능한 시스템 아키텍처를 설명한다. 도 1a를 참조한다. 도 1a는 본 출원의 일 실시형태가 적용되는 비디오 인코딩 및 디코딩 시스템(10)의 일 예의 개략 블록도이다. 도 1a에 나타낸 바와 같이, 비디오 인코딩 및 디코딩 시스템(10)은 소스 디바이스(12) 및 목적지 디바이스(14)를 포함할 수도 있다. 소스 디바이스(12)는 인코딩된 비디오 데이터를 발생시키며, 따라서, 소스 디바이스(12)는 비디오 인코딩 장치로서 지칭될 수도 있다. 목적지 디바이스(14)는 소스 디바이스(12)에 의해 발생된 인코딩된 비디오 데이터를 디코딩할 수도 있으며, 따라서 목적지 디바이스(14)는 비디오 디코딩 장치로서 지칭될 수도 있다. 다양한 구현 해결책들에서, 소스 디바이스(12), 목적지 디바이스(14), 또는 소스 디바이스(12)와 목적지 디바이스(14) 양자는 하나 이상의 프로세서들 및 하나 이상의 프로세서들에 커플링된 메모리를 포함할 수도 있다. 메모리는, RAM, ROM, EEPROM, 플래시 메모리, 또는 본 명세서에서 설명된 바와 같은, 원하는 프로그램 코드를 명령 또는 컴퓨터에 액세스가능한 데이터 구조의 형태로 저장하는데 사용될 수 있는 임의의 다른 매체를 포함할 수도 있지만 이에 한정되지 않는다. 소스 디바이스(12) 및 목적지 디바이스(14)는 데스크탑 컴퓨터, 모바일 컴퓨팅 장치, 노트북(예를 들어, 랩탑) 컴퓨터, 태블릿 컴퓨터, 셋-탑 박스, 전화기 핸드셋 예컨대 "스마트" 폰, 텔레비전, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 차량용 컴퓨터, 무선 통신 디바이스, 또는 기타 등등을 포함한, 다양한 장치들을 포함할 수도 있다.
도 1a는 소스 디바이스(12) 및 목적지 디바이스(14)를 별개의 디바이스들로서 도시하지만, 디바이스 실시형태는 대안적으로 소스 디바이스(12)와 목적지 디바이스(14) 양자 또는 소스 디바이스(12)와 목적지 디바이스(14) 양자의 기능들, 즉, 소스 디바이스(12) 또는 대응하는 기능성 및 목적지 디바이스(14) 또는 대응하는 기능을 포함할 수도 있다. 이러한 일 실시형태에서, 소스 디바이스(12) 또는 대응하는 기능성 및 목적지 디바이스(14) 또는 대응하는 기능이 동일한 하드웨어 및/또는 소프트웨어, 별개의 하드웨어 및/또는 소프트웨어, 또는 이들의 임의의 조합을 이용하여 구현될 수도 있다.
소스 디바이스(12)와 목적지 디바이스(14) 사이의 통신 접속은 링크(13)를 통해서 구현될 수도 있으며, 목적지 디바이스(14)는 소스 디바이스(12)로부터 링크(13)를 통해서 인코딩된 비디오 데이터를 수신할 수도 있다. 링크(13)는 인코딩된 비디오 데이터를 소스 디바이스(12)로부터 목적지 디바이스(14)로 이동시킬 수 있는 하나 이상의 매체들 또는 장치들을 포함할 수도 있다. 일 예에서, 링크(13)는 소스 디바이스(12)로 하여금 인코딩된 비디오 데이터를 목적지 디바이스(14)로 직접 실시간으로 송신가능하게 하는 하나 이상의 통신 매체를 포함할 수도 있다. 이 예에서, 소스 디바이스(12)는 인코딩된 비디오 데이터를 통신 표준(예를 들어, 무선 통신 프로토콜)에 따라서 변조할 수도 있으며, 변조된 비디오 데이터를 목적지 디바이스(14)로 송신할 수도 있다. 하나 이상의 통신 매체들은 무선 통신 매체 및/또는 유선 통신 매체, 예를 들어, 무선 주파수(RF) 스펙트럼 또는 하나 이상의 물리적인 송신 케이블들을 포함할 수도 있다. 하나 이상의 통신 매체는 패킷-기반 네트워크의 부분일 수도 있으며, 패킷-기반 네트워크는 예를 들어, 근거리 네트워크, 광역 네트워크, 또는 글로벌 네트워크(예를 들어, 인터넷)이다. 하나 이상의 통신 매체는 라우터, 스위치, 기지국, 또는 소스 디바이스(12)로부터 목적지 디바이스(14)로의 통신을 용이하게 하는 다른 디바이스를 포함할 수도 있다.
소스 디바이스(12)는 인코더(20)를 포함한다. 선택적으로, 소스 디바이스(12)는 픽처 소스(16), 픽처 프리프로세서(18), 및 통신 인터페이스(22)를 더 포함할 수도 있다. 특정의 구현예에서, 인코더(20), 픽처 소스(16), 픽처 프리프로세서(18), 및 통신 인터페이스(22)는 소스 디바이스(12) 내 하드웨어 컴포넌트들일 수도 있거나, 또는 소스 디바이스(12) 내 소프트웨어 프로그램들일 수도 있다. 설명들이 다음과 같이 별도로 제공된다:
픽처 소스(16)는 예를 들어, 캡쳐 실세계 픽처를 캡쳐하도록 구성된 임의 종류의 픽처 캡쳐링 디바이스; 및/또는 픽처 또는 코멘트를 발생시키는 임의 종류의 디바이스(스크린 콘텐츠 인코딩의 경우, 스크린 상의 일부 텍스트가 또한 인코딩될 픽처 또는 이미지의 부분으로서 간주됨), 예를 들어, 컴퓨터 애니메이션 픽처를 발생시키도록 구성된 컴퓨터 그래픽스 프로세서; 또는 실세계 픽처 또는 컴퓨터 애니메이션 픽처(예를 들어, 스크린 콘텐츠 또는 가상 현실(virtual reality, VR) 픽처), 및/또는 이들의 임의의 조합(예를 들어, 증강 현실(augmented reality, AR) 픽처)을 획득 및/또는 제공하도록 구성된 임의 종류의 디바이스이거나 또는 이를 포함할 수도 있다. 픽처 소스(16)는 픽처를 캡쳐하도록 구성된 카메라 또는 픽처를 저장하도록 구성된 메모리일 수도 있다. 픽처 소스(16)는 이전에 캡쳐된 또는 발생된 픽처가 저장되고/되거나 픽처가 획득되거나 또는 수신되는 임의 종류의 (내부 또는 외부) 인터페이스를 더 포함할 수도 있다. 픽처 소스(16)가 카메라일 때, 픽처 소스(16)는 예를 들어, 로컬 카메라 또는 소스 디바이스에 통합된 통합 카메라일 수도 있다. 픽처 소스(16)가 메모리일 때, 픽처 소스(16)는 로컬 메모리 또는, 예를 들어, 소스 디바이스에 통합된 통합 메모리일 수도 있다. 픽처 소스(16)가 인터페이스를 포함할 때, 인터페이스는 예를 들어, 외부 비디오 소스로부터 픽처를 수신하는 외부 인터페이스일 수도 있다. 외부 비디오 소스는 예를 들어, 외부 픽처 캡쳐링 디바이스 예컨대, 카메라, 외부 메모리, 또는 외부 픽처 발생 디바이스이다. 외부 픽처 발생 디바이스는 예를 들어, 외부 컴퓨터 그래픽스 프로세서, 컴퓨터, 또는 서버이다. 인터페이스는 임의 종류의 인터페이스, 예를 들어, 임의의 독점 또는 표준화된 인터페이스 프로토콜에 따라, 유선 또는 무선 인터페이스 또는 광 인터페이스일 수도 있다.
픽처는 화소들(picture element)의 2차원 어레이 또는 매트릭스로서 간주될 수도 있다. 어레이 내 화소는 또한 샘플로서 지칭될 수도 있다. 어레이 또는 픽처의 수평 및 수직 방향들(또는, 축들)에서의 샘플들의 수는 픽처의 사이즈 및/또는 해상도를 정의한다. 칼라의 표현을 위해, 전형적으로 3개의 칼라 성분들이 사용된다. 예를 들어, 픽처는 3개의 샘플 어레이들로서 표현되거나 또는 이를 포함할 수도 있다. 예를 들어, RBG 포맷 또는 칼라 공간에서, 픽처는 대응하는 적색, 녹색, 및 청색 샘플 어레이들을 포함한다. 그러나, 비디오 코딩에서, 각각의 픽셀은 일반적으로 루마/크로마 포맷 또는 칼라 공간에서 표현된다. 예를 들어, YUV 포맷에서의 픽처는 Y로 표시되는(또는, 종종 L로 표시되는) 루마 성분 및 U 및 V로 표시되는 2개의 크로마 성분들을 포함한다. 휘도(루마) 성분 Y는 명도 또는 그레이 레벨 강도를 나타내며(예를 들어, 양자는 그레이-스케일 픽처에서 동일하다), 그리고 2개의 색차(크로마) 성분들 U 및 V는 크로마 또는 칼라 정보 성분들을 표현한다. 대응하여, YUV 포맷에서의 픽처는 루마 샘플 값들(Y)의 루마 샘플 어레이 및 크로마 값들(U 및 V)의 2개의 크로마 샘플 어레이들을 포함한다. RGB 포맷에서의 픽처는 YUV 포맷으로 변환되거나 전환될 수도 있으며 반대의 경우도 마찬가지이다. 이 프로세스는 또한 칼라 변환 또는 변환으로 지칭된다. 픽처가 단색(monochrome)이면, 픽처는 단지 루마 샘플 어레이를 포함할 수도 있다. 본 출원의 본 실시형태에서, 픽처 소스(16)에 의해 픽처 프로세서로 송신되는 픽처는 또한 원시 픽처 데이터(17)로서 지칭될 수도 있다.
픽처 프리프로세서(18)는 원시 픽처 데이터(17)를 수신하고 원시 픽처 데이터(17)에 대해 사전 프로세싱을 수행하여, 사전 프로세싱된 픽처(19) 또는 사전 프로세싱된 픽처 데이터(19)를 획득하도록 구성된다. 예를 들어, 픽처 프리프로세서(18)에 의해 수행되는 사전 프로세싱은 트리밍, 칼라 포맷 변환(예를 들어, RGB 포맷으로부터 YUV 포맷으로), 칼라 보정, 또는 노이즈 제거를 포함할 수도 있다.
인코더(20)(또는, 비디오 인코더(20)로 지칭됨)는 사전 프로세싱된 픽처 데이터(19)를 수신하고, 관련된 예측 모드(예컨대, 본 명세서의 실시형태들에서의 예측 모드)에서 사전 프로세싱된 픽처 데이터(19)를 프로세싱하여, 인코딩된 픽처 데이터(21)를 제공하도록 구성된다(인코더(20)의 구조적 세부 사항들은 도 2, 도 4, 또는 도 5에 기초하여 아래에서 추가로 설명된다). 일부 실시형태들에서, 인코더(20)는 본 출원에서 설명된 비디오 인코딩 방법을 구현하기 위해, 아래에서 설명하는 실시형태들을 수행하도록 구성될 수도 있다.
통신 인터페이스(22)는 인코딩된 픽처 데이터(21)를 수신하고, 저장 또는 직접 복원을 위해, 인코딩된 픽처 데이터(21)를 링크(13)를 통해 목적지 디바이스(14) 또는 임의의 다른 디바이스(예를 들어, 메모리)로 송신하도록 구성될 수도 있다. 다른 디바이스는 디코딩 또는 저장에 사용되는 임의의 디바이스일 수도 있다. 통신 인터페이스(22)는 예를 들어, 링크(13)를 통한 송신을 위해, 인코딩된 픽처 데이터(21)를 적합한 포맷, 예를 들어, 데이터 패킷으로 캡슐화하도록 구성될 수도 있다.
목적지 디바이스(14)는 디코더(30)를 포함한다. 선택적으로, 목적지 디바이스(14)는 통신 인터페이스(28), 픽처 사후-프로세서(32), 및 디스플레이 디바이스(34)를 더 포함할 수도 있다. 설명들이 다음과 같이 별도로 제공된다:
통신 인터페이스(28)는 소스 디바이스(12) 또는 임의의 다른 소스로부터 인코딩된 픽처 데이터(21)를 수신하도록 구성될 수도 있다. 임의의 다른 소스는 예를 들어, 저장 디바이스이다. 저장 디바이스는 예를 들어, 인코딩된 픽처 데이터 저장 디바이스이다. 통신 인터페이스(28)는 인코딩된 픽처 데이터(21)를 소스 디바이스(12)와 목적지 디바이스(14) 사이의 링크(13)를 통해서 또는 임의 종류의 네트워크를 통해서 송신 또는 수신하도록 구성될 수도 있다. 링크(13)는 예를 들어, 직접 유선 또는 무선 접속이다. 임의 종류의 네트워크는 예를 들어, 유선 또는 무선 네트워크 또는 이들의 임의의 조합, 또는 임의 종류의 개인 또는 공중 네트워크 또는 이들의 임의의 조합이다. 통신 인터페이스(28)는 예를 들어, 인코딩된 픽처 데이터(21)를 획득하기 위해, 통신 인터페이스(22)를 통해서 송신된 데이터 패킷을 캡슐화 해제하도록 구성될 수도 있다.
통신 인터페이스(28) 및 통신 인터페이스(22) 양자는 단방향 통신 인터페이스들 또는 양방향 통신 인터페이스들로서 구성될 수도 있으며, 그리고 예를 들어, 메시지들을 전송 및 수신하여 접속을 확립하고, 통신 링크 및/또는 인코딩된 픽처 데이터 송신과 같은 데이터 송신에 관련된 임의의 다른 정보를 수신응답하고 교환하도록 구성될 수도 있다.
디코더(30)(또는, 디코더(30)로 지칭됨)는 인코딩된 픽처 데이터(21)를 수신하고 디코딩된 픽처 데이터(31) 또는 디코딩된 픽처(31)를 제공하도록 구성된다(디코더(30)의 구조적 세부 사항들은 도 3, 도 4, 또는 도 5에 기초하여 아래에서 추가로 설명된다). 일부 실시형태들에서, 디코더(30)는 본 출원에서 설명된 비디오 디코딩 방법을 구현하기 위해, 아래에서 설명하는 실시형태들을 수행하도록 구성될 수도 있다.
픽처 사후-프로세서(32)는 사후-프로세싱된 픽처 데이터(33)를 획득하기 위해 디코딩된 픽처 데이터(31)(또한, 복원된 픽처 데이터로 지칭됨)를 사후-프로세싱하도록 구성된다. 픽처 사후-프로세서(32)에 의해 수행되는 사후-프로세싱은 (예를 들어, YUV 포맷으로부터 RGB 포맷으로의) 칼라 포맷 변환, 칼라 보정, 트리밍, 리-샘플링, 또는 임의의 다른 프로세싱을 포함할 수도 있다. 픽처 사후-프로세서(32)는 사후-프로세싱된 픽처 데이터(33)를 디스플레이 디바이스(34)로 송신하도록 추가로 구성될 수도 있다.
디스플레이 디바이스(34)는 사후-프로세싱된 픽처 데이터(33)를 수신하여 픽처를 예를 들어, 사용자 또는 뷰어에게 디스플레이하도록 구성된다. 디스플레이 디바이스(34)는 또는 복원된 픽처를 제시하는 임의 종류의 디스플레이, 예를 들어, 통합된 또는 외부 디스플레이 또는 모니터를 포함할 수도 있다. 예를 들어, 디스플레이는 액정 디스플레이(liquid crystal display, LCD), 유기 발광 다이오드(organic light emitting diode, OLED) 디스플레이, 플라즈마 디스플레이, 프로젝터, 마이크로 LED 디스플레이, 실리콘 액정(liquid crystal on silicon, LCoS), 디지털 광 프로세서(digital light processor, DLP), 또는 임의 종류의 다른 디스플레이들을 포함할 수도 있다.
도 1a는 소스 디바이스(12) 및 목적지 디바이스(14)를 별개의 디바이스들로서 도시하지만, 디바이스 실시형태는 대안적으로 소스 디바이스(12)와 목적지 디바이스(14) 양자 또는 소스 디바이스(12)와 목적지 디바이스(14) 양자의 기능들, 즉, 소스 디바이스(12) 또는 대응하는 기능 및 목적지 디바이스(14) 또는 대응하는 기능을 포함할 수도 있다. 이러한 일 실시형태에서, 소스 디바이스(12) 또는 대응하는 기능 및 목적지 디바이스(14) 또는 대응하는 기능은 동일한 하드웨어 및/또는 소프트웨어, 별개의 하드웨어 및/또는 소프트웨어, 또는 이들의 임의의 조합을 이용하여 구현될 수도 있다.
설명들에 기초하여, 당업자는 상이한 유닛들의 기능들 또는 도 1a에 나타낸 소스 디바이스(12) 및/또는 목적지 디바이스(14)의 기능들의 존재 및 (정확한) 분할이 실제 디바이스 및 애플리케이션에 따라 변할 수도 있음을 확실히 알 수 있다. 소스 디바이스(12) 및 목적지 디바이스(14)는 임의 종류의 핸드헬드 또는 고정 디바이스, 예를 들어, 노트북 또는 랩탑 컴퓨터, 모바일 폰, 스마트폰, 태블릿 또는 태블릿 컴퓨터, 비디오 카메라, 데스크탑 컴퓨터, 셋-탑 박스, 텔레비전, 카메라, 차량 탑재 디바이스, 디스플레이 디바이스, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 비트스트리밍 디바이스(예컨대, 콘텐츠 서비스 서버 또는 콘텐츠 전달 서버), 브로드캐스트 수신기 디바이스, 또는 브로드캐스트 송신기 디바이스를 포함한, 광범위한 디바이스들 중 임의의 디바이스를 포함할 수도 있으며, 임의 종류의 운영 시스템을 이용하거나 또는 이용하지 않을 수도 있다.
인코더(20) 및 디코더(30) 각각은 임의의 다양한 적합한 회로들, 예를 들어, 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들(Digital Signal Processor, DSP), 주문형 집적 회로들(application-specific integrated circuit, ASIC), 필드-프로그래밍가능 게이트 어레이들(field-programmable gate array, FPGA), 이산 로직, 하드웨어, 또는 이들의 임의의 조합으로서 구현될 수도 있다. 기술들이 소프트웨어를 이용하여 부분적으로 구현되는 경우, 디바이스는 적합한 및 비일시성 컴퓨터-판독가능 저장 매체에 소프트웨어 명령들을 저장할 수도 있으며, 본 개시물의 기술들을 수행하기 위해, 하나 이상의 프로세서들과 같은 하드웨어를 이용하여 명령들을 실행할 수도 있다. (하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함하는) 전술한 콘텐츠 중 임의의 콘텐츠가 하나 이상의 프로세서들로서 간주될 수도 있다.
일부의 경우, 도 1a에 나타낸 비디오 인코딩 및 디코딩 시스템(10)은 단지 예이며, 본 출원의 기법들은 인코딩 디바이스와 디코딩 디바이스 사이의 임의의 데이터 통신을 반드시 포함하지는 않는 비디오 코딩 세팅들(예를 들어, 비디오 인코딩 또는 비디오 디코딩)에 적용될 수도 있다. 다른 예들에서, 데이터는 로컬 메모리로부터 취출되거나, 네트워크를 통해서 스트리밍되거나, 또는 기타 등등일 수도 있다. 비디오 인코딩 디바이스는 데이터를 인코딩하여 메모리에 저장할 수도 있고/있거나, 비디오 디코딩 디바이스는 메모리로부터 데이터를 취출하여 디코딩할 수도 있다. 일부 예들에서, 인코딩 및 디코딩은 서로 통신하지 않고 단순히 데이터를 메모리에 인코딩하고/하거나 메모리로부터 데이터를 취출하여 디코딩하는 디바이스들에 의해 수행된다.
도 1b를 참조한다. 도 1b는 예시적인 실시형태에 따른, 도 2의 인코더(20) 및/또는 도 3의 디코더(30)를 포함하는 비디오 코딩 시스템(40)의 일 예의 예시도이다. 비디오 코딩 시스템(40)은 본 출원의 실시형태들에서 다양한 기술들의 조합을 구현할 수 있다. 예시된 구현예에서, 비디오 코딩 시스템(40)은 이미징 디바이스(41), 인코더(20), 디코더(30)(및/또는 프로세싱 유닛(46)의 로직 회로(47)에 의해 구현된 비디오 인코더/디코더), 안테나(42), 하나 이상의 프로세서들(43), 하나 이상의 메모리들(44), 및/또는 디스플레이 디바이스(45)를 포함할 수도 있다.
도 1b에 나타낸 바와 같이, 이미징 디바이스(41), 안테나(42), 프로세싱 유닛(46), 로직 회로(47), 인코더(20), 디코더(30), 프로세서(43), 메모리(44), 및/또는 디스플레이 디바이스(45)는 서로 통신할 수 있다. 설명하는 바와 같이, 비디오 코딩 시스템(40)이 인코더(20) 및 디코더(30)와 함께 예시되지만, 비디오 코딩 시스템(40)은 상이한 예들에서 단지 인코더(20) 만 또는 단지 디코더(30) 만을 포함할 수도 있다.
일부 예들에서, 안테나(42)는 비디오 데이터의 인코딩된 비트스트림을 송신 또는 수신하도록 구성될 수도 있다. 게다가, 일부 예들에서, 디스플레이 디바이스(45)는 비디오 데이터를 제시하도록 구성될 수도 있다. 일부 예들에서, 로직 회로(47)는 프로세싱 유닛(46)에 의해 구현될 수도 있다. 프로세싱 유닛(46)은 ASIC 로직, 그래픽 프로세싱 유닛, 범용 프로세서 등을 포함할 수도 있다. 비디오 코딩 시스템(40)은 또한 옵션적인 프로세서(43)를 포함할 수도 있다. 옵션적인 프로세서(43)는 유사하게 주문형 집적 회로 ASIC 로직, 그래픽스 프로세서, 범용 프로세서, 또는 기타 등등을 포함할 수도 있다. 일부 예들에서, 로직 회로(47)는 하드웨어, 예를 들어, 비디오 코딩을 위한 전용 하드웨어에 의해 구현될 수도 있다. 프로세서(43)는 범용 소프트웨어, 운영 시스템, 또는 기타 등등에 의해 구현될 수도 있다. 게다가, 메모리(44)는 임의의 유형의 메모리, 예를 들어, 휘발성 메모리(예를 들어, 정적 랜덤 액세스 메모리(Static Random Access Memory, SRAM) 또는 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM)) 또는 비휘발성 메모리(예를 들어, 플래시 메모리)일 수도 있다. 비한정적인 예에서, 메모리(44)는 캐시 메모리로서 구현될 수도 있다. 일부 예들에서, 로직 회로(47)는 (예를 들어, 픽처 버퍼의 구현을 위해) 메모리(44)에 액세스할 수도 있다. 다른 예에서, 로직 회로(47) 및/또는 프로세싱 유닛(46)은 픽처 버퍼의 구현 또는 기타 등등을 위해 메모리(예를 들어, 캐시)를 포함할 수도 있다.
일부 예들에서, 로직 회로를 이용하여 구현되는 인코더(20)는 (예를 들어, 프로세싱 유닛(46) 또는 메모리(44)에 의해 구현되는) 픽처 버퍼 및 (예를 들어, 프로세싱 유닛(46)에 의해 구현되는) 그래픽 프로세싱 유닛을 포함할 수도 있다. 그래픽 프로세싱 유닛은 픽처 버퍼에 통신가능하게 커플링될 수도 있다. 그래픽 프로세싱 유닛은 도 2를 참조하여 설명되는 다양한 모듈들 및/또는 본 명세서에서 설명된 임의의 다른 인코더 시스템 또는 서브시스템을 구현하기 위해, 로직 회로(47)를 이용하여 구현되는 인코더(20)를 포함할 수도 있다. 로직 회로는 본 명세서에서 설명된 다양한 동작을 수행하도록 구성될 수도 있다.
일부 예들에서, 디코더(30)는 도 3의 디코더(30)를 참조하여 설명되는 다양한 모듈들 및/또는 본 명세서에서 설명된 임의의 다른 디코더 시스템 또는 서브시스템을 구현하기 위해, 로직 회로(47)에 의해 유사한 방식으로 구현될 수도 있다. 일부 예들에서, 로직 회로를 이용하여 구현되는 디코더(30)는 픽처 버퍼(프로세싱 유닛(46) 또는 메모리(44)에 의해 구현됨) 및 그래픽 프로세싱 유닛(예를 들어, 프로세싱 유닛(46)에 의해 구현됨)을 포함할 수도 있다. 그래픽 프로세싱 유닛은 픽처 버퍼에 통신가능하게 커플링될 수도 있다. 그래픽 프로세싱 유닛은 도 3을 참조하여 설명되는 다양한 모듈들 및/또는 본 명세서에서 설명된 임의의 다른 디코더 시스템 또는 서브시스템을 구현하기 위해, 로직 회로(47)를 이용하여 구현되는 디코더(30)를 포함할 수도 있다.
일부 예들에서, 안테나(42)는 비디오 데이터의 인코딩된 비트스트림을 수신하도록 구성될 수도 있다. 설명하는 바와 같이, 인코딩된 비트스트림은 비디오 프레임 코딩에 관련되고 본 명세서에서 설명되는 데이터, 표시자, 인덱스 값, 모드 선택 데이터, 또는 기타 등등, 예를 들어, 코딩 파티셔닝에 관련된 데이터(예를 들어, 변환 계수 또는 양자화된 변환 계수, (설명된 바와 같은) 옵션적인 표시자, 및/또는 코딩 파티셔닝을 정의하는 데이터)를 포함할 수도 있다. 비디오 코딩 시스템(40)은 안테나(42)에 커플링되고 인코딩된 비트스트림을 디코딩하도록 구성되는 디코더(30)를 더 포함할 수도 있다. 디스플레이 디바이스(45)는 비디오 프레임을 제시하도록 구성된다.
본 출원의 본 실시형태에서, 인코더(20)를 참조하여 설명된 예에 대해, 디코더(30)는 역 프로세스를 수행하도록 구성될 수도 있는 것으로 이해되어야 한다. 신택스 엘리먼트를 시그널링하는 것과 관련하여, 디코더(30)는 이러한 신택스 엘리먼트를 수신 및 파싱하고 이에 따라 관련된 비디오 데이터를 디코딩하도록 구성될 수도 있다. 일부 예들에서, 인코더(20)는 신택스 엘리먼트를 인코딩된 비디오 비트스트림으로 엔트로피-인코딩할 수도 있다. 이러한 예들에서, 디코더(30)는 신택스 엘리먼트를 파싱하고 이에 따라 관련된 비디오 데이터를 디코딩할 수도 있다.
본 출원의 본 실시형태에서의 인코더(20) 및 디코더(30)가 비디오 표준 프로토콜들 예컨대 H.263, H.264, HEVC, 동화상 전문가 그룹(moving picture experts group, MPEG)-2, MPEG-4, VP8, 및 VP9 또는 차세대 비디오 표준 프로토콜들, 예컨대 H.266 또는 오디오 및 비디오 코딩 표준(audio video coding standard, AVS) 3에 대응하는 인코더 및 디코더일 수도 있다는 점에 유의해야 한다.
도 2는 본 출원의 일 실시형태에 따른 인코더(20)의 일 예의 개략적인/개념적인 블록도이다. 도 2의 예에서, 인코더(20)는 잔차 계산 유닛(204), 변환 프로세싱 유닛(206), 양자화 유닛(208), 역양자화 유닛(210), 역변환 프로세싱 유닛(212), 복원 유닛(214), 버퍼(216), 루프 필터 유닛(220), 디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230), 예측 프로세싱 유닛(260), 및 엔트로피 인코딩 유닛(270)을 포함한다. 예측 프로세싱 유닛(260)은 인터 예측 유닛(244), 인트라 예측 유닛(254), 및 모드 선택 유닛(262)을 포함할 수도 있다. 인터 예측 유닛(244)은 모션 추정 유닛 및 모션 보상 유닛(도면에 미도시)을 포함할 수도 있다. 도 2에 나타낸 인코더(20)는 또한 하이브리드 비디오 인코더 또는 하이브리드 비디오 코덱에 기초한 비디오 인코더로서 지칭될 수도 있다.
예를 들어, 잔차 계산 유닛(204), 변환 프로세싱 유닛(206), 양자화 유닛(208), 예측 프로세싱 유닛(260), 및 엔트로피 인코딩 유닛(270)은 인코더(20)의 순방향 신호 경로를 형성하며, 반면, 예를 들어, 역양자화 유닛(210), 역변환 프로세싱 유닛(212), 복원 유닛(214), 버퍼(216), 루프 필터(220), DPB(230), 및 예측 프로세싱 유닛(260)은 인코더의 역방향 신호 경로를 형성한다. 인코더의 역방향 신호 경로는 디코더(도 3의 디코더(30)를 지칭함)의 신호 경로에 대응한다.
인코더(20)는 예를 들어, 입력(202)을 통해서, 픽처(201) 또는 픽처(201)의 픽처 블록(203), 예를 들어, 비디오를 형성하는 픽처들의 시퀀스 또는 비디오 시퀀스 내 픽처를 수신한다. 픽처 블록(203)은 또한 현재의 픽처 블록 또는 인코딩될 픽처 블록으로서 지칭될 수도 있으며, 픽처(201)는 현재의 픽처 또는 (특히 비디오 코딩에서, 현재의 픽처를 다른 픽처들, 예를 들어, 동일한 비디오 시퀀스, 즉, 또한 현재의 픽처를 포함하는 비디오 시퀀스에서 이전에 인코딩된 및/또는 디코딩된 픽처들과 식별하기 위해) 인코딩될 픽처로서 지칭될 수도 있다.
인코더(20)의 실시형태는 픽처(201)를 픽처 블록(203)과 같은 복수의 블록들로 파티셔닝하도록 구성된 (도 2에 도시되지 않은) 파티셔닝 유닛을 포함할 수도 있다. 픽처(201)는 일반적으로 복수의 비-중첩 블록들로 파티셔닝된다. 파티셔닝 유닛은 비디오 시퀀스 내 모든 픽처들에 대해 동일한 블록 사이즈 및 블록 사이즈를 정의하는 대응하는 그리드를 이용하거나, 또는 픽처들 또는 픽처들의 서브세트들 또는 그룹들 사이의 블록 사이즈를 변경하고, 각각의 픽처를 대응하는 블록들로 파티셔닝하도록 구성될 수도 있다.
일 예에서, 인코더(20)의 예측 프로세싱 유닛(260)은 위에서 설명된 파티셔닝 기술들의 임의의 조합을 수행하도록 구성될 수도 있다.
픽처(201)와 유사하게, 픽처 블록(203)은 또한 픽처 블록(203)의 사이즈가 픽처(201)의 사이즈보다 작지만, 샘플 값들을 갖는 샘플들의 2차원 어레이 또는 매트릭스로 간주되거나 또는 간주될 수도 있다. 다시 말해서, 픽처 블록(203)은 예를 들어, 하나의 샘플 어레이(예를 들어, 단색 픽처(201)의 경우 루마 어레이), 3개의 샘플 어레이들(예를 들어, 칼라 픽처의 경우 하나의 루마 어레이 및 2개의 크로마 어레이들), 또는 적용된 칼라 포맷에 따른 어레이들의 임의의 다른 양 및/또는 유형을 포함할 수도 있다. 픽처 블록(203)의 수평 및 수직 방향들(또는, 축들)에서의 샘플들의 수가 픽처 블록(203)의 사이즈를 정의한다.
도 2에 나타낸 인코더(20)는 픽처(201)를 블록 단위로 인코딩하도록, 예를 들어, 각각의 픽처 블록(203)에 대해 인코딩 및 예측을 수행하도록 구성된다.
잔차 계산 유닛(204)은 샘플 도메인에서 잔차 블록(205)을 획득하기 위해, 예를 들어, 픽처 블록(203)의 샘플 값들로부터 샘플 단위로(픽셀 단위로) 예측 블록(265)의 샘플 값들을 감산함으로써, 픽처 블록(203) 및 예측 블록(265)(예측 블록(265)에 관한 추가적인 세부 사항들은 아래에 제공된다)에 기초하여, 잔차 블록(205)을 계산하도록 구성된다.
변환 프로세싱 유닛(206)은 변환, 예를 들어, 이산 코사인 변환(이산 코사인 변환, DCT) 또는 이산 사인 변환(이산 사인 변환, DST)을, 잔차 블록(205)의 샘플 값들에 적용하여 변환 도메인에서 변환 계수들(207)을 획득하도록 구성된다. 변환 계수(207)는 또한 변환 잔차 계수로서 지칭될 수도 있으며 변환 도메인에서 잔차 블록(205)을 나타낸다.
변환 프로세싱 유닛(206)은 HEVC/H.265에 규정된 변환들과 같은, DCT/DST의 정수 근사들을 적용하도록 구성될 수도 있다. 직교 DCT 변환과 비교하여, 이러한 정수 근사는 전형적으로 인자에 의해 스케일링된다. 순방향 및 역변환들을 이용하여 프로세싱되는 잔차 블록의 놈을 보존하기 위해, 추가적인 스케일 인자를 적용하는 것은 변환 프로세스의 일부이다. 스케일 인자는 일반적으로 일부 제약들에 기초하여 선택된다. 예를 들어, 스케일 인자는 시프트 연산에 대한 2의 거듭제곱, 변환 계수의 비트 심도, 또는 정확도와 구현 비용들 사이의 상충관계이다. 예를 들어, 특정의 스케일 인자는 예를 들어, 디코더(30) 측에서의 역변환 프로세싱 유닛(212)에 의한 역변환(및 예를 들어, 인코더(20) 측에서의 역변환 프로세싱 유닛(212)에 의한 대응하는 역변환)에 대해 규정되며, 이에 따라, 대응하는 스케일 인자는 인코더(20) 측에서의 변환 프로세싱 유닛(206)에 의한 순방향 변환에 대해 규정될 수도 있다.
양자화 유닛(208)은 예를 들어, 스칼라 양자화 또는 벡터 양자화를 적용함으로써, 변환 계수들(207)을 양자화하여 양자화된 변환 계수들(209)을 획득하도록 구성된다. 양자화된 변환 계수(209)는 또한 양자화된 잔차 계수(209)로서 지칭될 수도 있다. 양자화 프로세스는 변환 계수들(207)의 일부 또는 모두에 관련된 비트 심도를 감소시킬 수도 있다. 예를 들어, n-비트 변환 계수는 양자화 동안 m-비트 변환 계수로 반올림될 수도 있으며, 여기서, n은 m 보다 더 크다. 양자화 도는 양자화 파라미터(quantization parameter, QP)를 적응시킴으로써 수정될 수도 있다. 예를 들어, 스칼라 양자화의 경우, 상이한 스케일들이 더 미세하거나 또는 더 거친 양자화를 달성하기 위해 적용될 수도 있다. 더 작은 양자화 단계는 더 미세한 양자화에 대응하며, 더 큰 양자화 단계는 더 거친 양자화에 대응한다. 적용가능한 양자화 단계는 QP로 표시될 수도 있다. 예를 들어, 양자화 파라미터는 적합한 양자화 단계들의 미리 정의된 세트에 대한 인덱스일 수도 있다. 예를 들어, 더 작은 양자화 파라미터는 더 미세한 양자화(더 작은 양자화 단계)에 대응할 수도 있으며 더 큰 양자화 파라미터는 더 거친 양자화(더 큰 양자화 단계)에 대응할 수도 있거나, 또는 반대의 경우도 마찬가지이다. 양자화는 양자화 단계에 의한 나누기 및 대응하는 양자화 또는 예를 들어, 역양자화 유닛(210)에 의해 수행되는 역양자화를 포함할 수도 있거나, 또는 양자화 단계에 의한 곱셈을 포함할 수도 있다. HEVC와 같은 일부 표준들에 따른 실시형태들에서, 양자화 파라미터는 양자화 단계를 결정하는데 사용될 수도 있다. 일반적으로, 양자화 단계는 나누기를 포함하는 수식의 고정 소수점 근사를 이용하여 양자화 파라미터에 기초하여 계산될 수도 있다. 추가적인 스케일링 인자가 잔차 블록의 놈을 복원하기 위해 양자화 및 역양자화에 도입될 수도 있으며, 잔차 블록의 놈은 양자화 단계 및 양자화 파라미터에 대한 수식의 고정 소수점 근사에 사용되는 스케일로 인해 수정될 수도 있다. 예시적인 구현예에서, 역변환 스케일과 역양자화의 스케일은 결합될 수도 있다. 대안적으로, 커스터마이즈된 양자화 테이블이 인코더로부터 디코더로, 예를 들어, 비트스트림으로 사용 및 시그널링될 수도 있다. 양자화는 손실 동작이며, 증가하는 양자화 단계에 따라 손실이 증가한다.
역양자화 유닛(210)은 역양자화된 계수(211)를 획득하기 위해 양자화 유닛(208)의 역양자화를 양자화된 계수에 적용하도록, 예를 들어, 양자화 유닛(208)과 동일한 양자화 단계에 기초하여 또는 이용하여, 양자화 유닛(208)에 의해 적용되는 양자화 방식의 역을 적용하도록 구성된다. 역양자화된 계수(211)는 또한 역양자화된 잔차 계수(211)로서 지칭될 수도 있으며, 역양자화된 계수(211)가 일반적으로 양자화에 의해 초래되는 손실로 인해 변환 계수와 상이하지만, 변환 계수(207)에 대응한다.
역변환 프로세싱 유닛(212)은 샘플 도메인에서 역변환 블록(213)을 획득하기 위해 변환 프로세싱 유닛(206)에 의해 적용되는 변환, 예를 들어, DCT 또는 DST의 역변환을 적용하도록 구성된다. 역변환 블록(213)은 또한 역변환 역양자화된 블록(213) 또는 역변환 잔차 블록(213)으로서 지칭될 수도 있다.
복원 유닛(214)(예를 들어, 합산기(214))은 샘플 도메인에서, 복원된 블록(215)을 획득하기 위해, 예를 들어, 복원된 잔차 블록(213)의 샘플 값들 및 예측 블록(265)의 샘플 값들을 가산함으로써, 역변환 블록(213)(즉, 복원된 잔차 블록(213))을 예측 블록(265)에 가산하도록 구성된다.
선택적으로, 예를 들어, 라인 버퍼(216)의 버퍼 유닛(216)(줄여서, "버퍼"(216))은 예를 들어, 인트라 예측을 위해, 복원된 블록(215) 및 대응하는 샘플 값을 버퍼링하거나 또는 저장하도록 구성된다. 다른 실시형태들에서, 인코더는 임의 종류의 추정 및/또는 예측, 예를 들어, 인트라 예측을 위해, 비필터링된 복원된 블록 및/또는 버퍼 유닛(216)에 저장되는 대응하는 샘플 값을 이용하도록 구성될 수도 있다.
예를 들어, 일 실시형태에서, 인코더(20)는 버퍼 유닛(216)이 인트라 예측(254)에 사용될 뿐만 아니라 루프 필터 유닛(220)(도 2에 미도시)에 사용되는 복원된 블록(215)을 저장하게 구성되도록, 및/또는 예를 들어, 버퍼 유닛(216) 및 디코딩된 픽처 버퍼(230)가 하나의 버퍼를 형성하도록, 구성될 수도 있다. 다른 실시형태들에서, 필터링된 블록(221) 및/또는 디코딩된 픽처 버퍼(230)로부터의 블록 또는 샘플(블록 또는 샘플은 도 2에 도시되지 않음)이 인트라 예측 유닛(254)에 대한 입력 또는 기초로서 사용된다.
루프 필터 유닛(220)(줄여서, "루프 필터"(220))는 픽셀 전이들을 평활화하거나 또는 비디오 품질을 향상시키기 위해, 복원된 블록(215)을 필터링하여 필터링된 블록(221)을 획득하도록 구성된다. 루프 필터 유닛(220)은 예를 들어, 디블록킹 필터, 샘플-적응 오프셋(sample-adaptive offset, SAO) 필터, 및 다른 필터, 예컨대 양방향 필터, 적응 루프 필터(adaptive loop filter, ALF), 샤프닝 또는 평활 필터, 또는 협업 필터를 포함하는 하나 이상의 루프 필터들을 나타내려는 것이다. 루프 필터 유닛(220)이 도 2에 인-루프 필터로서 도시되지만, 다른 구현예에서, 루프 필터 유닛(220)은 사후-루프 필터로서 구현될 수도 있다. 필터링된 블록(221)은 또한 필터링된 복원된 블록(221)으로 지칭될 수도 있다. 디코딩된 픽처 버퍼(230)는 루프 필터 유닛(220)이 복원된 인코딩된 블록에 대해 필터링 동작을 수행한 후, 복원된 인코딩된 블록을 저장할 수도 있다.
일 실시형태에서, 인코더(20)(대응하여, 루프 필터 유닛(220))는 예를 들어, 디코더(30)가 디코딩을 위해 동일한 루프 필터 파라미터를 수신 및 적용할 수 있도록, 루프 필터 파라미터(예를 들어, 샘플 적응 오프셋 정보)를, 예를 들어, 엔트로피 인코딩 유닛(270) 또는 임의의 다른 엔트로피 인코딩 유닛에 의해 수행되는 엔트로피 인코딩 직후 또는 이후에, 출력하도록 구성될 수도 있다.
DPB(230)는 인코더(20)에 의해 비디오 데이터를 인코딩하기 위한 참조 픽처 데이터를 저장하는 참조 픽처 메모리일 수도 있다. DPB(230)는 (동기식 DRAM(synchronous DRAM, SDRAM), 자기저항 RAM(magnetoresistive RAM, MRAM), 저항 RAM(resistive RAM, RRAM)을 포함하는) DRAM, 또는 다른 유형의 메모리 디바이스와 같은 다양한 메모리 디바이스들 중 임의의 하나에 의해 형성될 수도 있다. DPB(230) 및 버퍼(216)는 동일한 메모리 디바이스 또는 별개의 메모리 디바이스들에 의해 제공될 수도 있다. 일 예에서, DPB(230)는 필터링된 블록(221)을 저장하도록 구성된다. 디코딩된 픽처 버퍼(230)는 동일한 현재의 픽처 또는 상이한 픽처, 예를 들어, 이전에 복원된 픽처의 다른 이전에 필터링된 블록, 예를 들어, 이전에 복원된 및 필터링된 블록(221)을 저장하도록 추가로 구성될 수도 있으며, 예를 들어, 인터 예측을 위해, 완전한 이전에 복원된, 즉, 디코딩된 픽처(및 대응하는 참조 블록 및 샘플) 및/또는 부분적으로 복원된 현재의 픽처(및 대응하는 참조 블록 및 샘플)을 제공할 수도 있다. 일 예에서, 복원된 블록(215)이 인-루프 필터링 없이 복원되면, DPB(230)는 복원된 블록(215)을 저장하도록 구성된다.
블록 예측 프로세싱 유닛(260)으로서 또한 지칭되는, 예측 프로세싱 유닛(260)은 픽처 블록(203)(현재의 픽처(201)의 현재의 픽처 블록(203)) 및 복원된 픽처 데이터, 예를 들어, 버퍼(216)로부터의 동일한(현재의) 픽처의 참조 샘플들 및/또는 디코딩된 픽처 버퍼(230)로부터의 하나 이상의 이전에 디코딩된 픽처들의 참조 픽처 데이터(231)를 수신 또는 획득하고, 예측을 위해 이러한 데이터를 프로세싱하도록, 즉, 인터 예측 블록(245) 또는 인트라 예측 블록(255)일 수도 있는 예측 블록(265)을 제공하도록 구성된다.
모드 선택 유닛(262)은 잔차 블록(205)의 계산을 위해 그리고 복원된 블록(215)의 복원을 위해, 예측 모드(예를 들어, 인트라 또는 인터 예측 모드) 및/또는 예측 블록(265)로서 사용될 대응하는 예측 블록(245 또는 255)을 선택하도록 구성될 수도 있다.
일 실시형태에서, 모드 선택 유닛(262)은 예측 모드를 (예를 들어, 예측 프로세싱 유닛(260)에 의해 지원되는 예측 모드들 중에서) 선택하도록 구성될 수도 있으며, 여기서 예측 모드는 최상의 매칭 또는 최소 잔차(최소 잔차는 송신 또는 저장을 위한 더 나은 압축을 의미한다)를 제공하거나, 또는 최소 시그널링 오버헤드들(최소 시그널링 오버헤드들은 송신 또는 저장을 위한 더 나은 압축을 의미한다)을 제공하거나, 또는 양자를 고려하거나 또는 균형을 잡는다. 모드 선택 유닛(262)은 레이트-왜곡 최적화(rate distortion optimization, RDO)에 기초하여 예측 모드를 결정하도록, 구체적으로, 최소 레이트-왜곡 최적화를 제공하는 예측 모드를 선택하거나 또는 관련된 레이트 왜곡이 적어도 예측 모드 선택 기준을 만족시키는 예측 모드를 선택하도록 구성될 수도 있다.
다음은 인코더(20)의 일 예에서 (예를 들어, 예측 프로세싱 유닛(260)에 의해) 수행되는 예측 프로세싱 및 (예를 들어, 모드 선택 유닛(262)에 의해) 수행되는 모드 선택을 자세히 설명한다.
위에서 설명한 바와 같이, 인코더(20)는 (미리 결정된) 예측 모드들의 세트 중에서 최적의 또는 최적적인 예측 모드를 결정 또는 선택하도록 구성된다. 예측 모드들의 세트는 예를 들어, 인트라 예측 모드 및/또는 인터 예측 모드를 포함할 수도 있다.
인트라 예측 모드들의 세트는 35개의 상이한 인트라 예측 모드들, 예를 들어, 비-방향 모드들 예컨대, DC(또는, 평균) 모드 및 평면 모드, 또는 방향 모드들 예컨대, H.265에 정의된 모드들을 포함할 수도 있거나, 또는 67개의 상이한 인트라 예측 모드들, 예를 들어, 비-방향 모드들 예컨대, DC(또는, 평균) 모드 및 평면 모드, 또는 방향 모드들 예컨대, 개발 중인 H.266에 정의된 모드들을 포함할 수도 있다.
가능한 구현예에서, 인터 예측 모드들의 세트는 가용 참조 픽처들(즉, 예를 들어, 위에서 설명한 바와 같이, DBP(230)에 저장된 적어도 일부 디코딩된 픽처들) 및 다른 인터 예측 파라미터들에 의존하며, 예를 들어, 전체 참조 픽처 또는 단지 참조 픽처의 부분, 예를 들어, 현재의 블록의 영역 둘레의 탐색 윈도우 영역이 최적의 매칭 참조 블록에 대한 탐색에 사용되는지 여부에 의존하고/하거나, 및/또는 예를 들어, 픽셀 내삽 예컨대 절반-픽셀 및/또는 1/4-픽셀 내삽이 적용되는지 여부에 의존한다. 인터 예측 모드들의 세트는 예를 들어, 진보된 모션 벡터 예측(advanced motion vector prediction, AMVP) 모드 및 병합(merge) 모드를 포함할 수도 있다. 특정의 구현예에서, 인터 예측 모드들의 세트는 본 출원의 실시형태들에서, 향상된 제어 지점-기반 AMVP 모드 및 향상된 제어 지점-기반 병합 모드를 포함할 수도 있다. 일 예에서, 인트라 예측 유닛(254)은 아래에서 설명되는 인터 예측 기술들의 임의의 조합을 수행하도록 구성될 수도 있다.
전술한 예측 모드들에 추가하여, 스킵 모드 및/또는 직접 모드는 또한 본 출원의 본 실시형태에서 사용될 수도 있다.
예측 프로세싱 유닛(260)은 예를 들어, 쿼드트리(quad-tree, QT) 파티셔닝, 2진 트리(binary-tree, BT) 파티셔닝, 트리플 트리(triple-tree, TT) 파티셔닝, 또는 이들의 임의의 조합을 반복 이용함으로써 픽처 블록(203)을 더 작은 블록 파티션들 또는 서브블록들로 파티셔닝하고, 예를 들어, 블록 파티션들 또는 서브블록들의 각각에 대한 예측을 수행하도록 추가로 구성될 수도 있다. 모드 선택은 파티셔닝된 픽처 블록(203)의 트리 구조의 선택 및 블록 파티션들 또는 서브블록들의 각각에 대해 사용되는 예측 모드의 선택을 포함한다.
인터 예측 유닛(244)은 모션 추정(motion estimation, ME) 유닛(도 2에 미도시) 및 모션 보상(motion compensation, MC) 유닛(도 2에 미도시)을 포함할 수도 있다. 모션 추정 유닛은 모션 추정을 위해, 픽처 블록(203)(현재의 픽처(201)의 현재의 픽처 블록(203)) 및 디코딩된 픽처(231), 또는 적어도 하나 이상의 이전에 복원된 블록들, 예를 들어, 다른/상이한 이전에 디코딩된 픽처들(231)의 하나 이상의 복원된 블록들을 수신 또는 획득하도록 구성된다. 예를 들어, 비디오 시퀀스는 현재의 픽처 및 이전에 디코딩된 픽처(31)를 포함할 수도 있거나, 또는 즉, 현재의 픽처 및 이전에 디코딩된 픽처(31)는 비디오 시퀀스를 형성하는 픽처들의 시퀀스의 일부이거나 또는 이를 형성할 수도 있다.
예를 들어, 인코더(20)는 복수의 다른 픽처들 내 동일한 픽처 또는 상이한 픽처들의 복수의 참조 블록들 중에서 참조 블록을 선택하고 모션 추정 유닛(도 2에 미도시)에, 참조 픽처를 제공하고/하거나 참조 블록의 위치(좌표들 X 및 Y)와 현재의 블록의 위치 사이의 오프셋(공간 오프셋)을 인터 예측 파라미터로서 제공하도록 구성될 수도 있다. 이 오프셋은 또한 모션 벡터(모션 벡터, MV)로서 지칭된다.
모션 보상 유닛은 인터 예측 파라미터를 획득하고, 인터 예측 파라미터에 기초하여 또는 이를 이용하여 인터 예측을 수행하여, 인터 예측 블록(245)을 획득하도록 구성된다. 모션 보상 유닛(도 2에 미도시)에 의해 수행되는 모션 보상은 모션 추정을 통해서 결정된 모션/블록 벡터에 기초하여 예측 블록을 추출하거나 또는 발생시키는 것을 포함할 수도 있다(내삽이 서브-샘플 정밀도 레벨에서 수행될 수도 있다). 내삽 필터링은 기지의 픽셀 샘플들로부터 추가적인 픽셀 샘플들을 발생시킴으로써, 픽처 블록을 코딩하는데 사용될 수도 있는 다량의 후보 예측 블록들을 잠재적으로 증가시킬 수도 있다. 현재의 픽처 블록의 PU에 대한 모션 벡터 수신 시, 모션 보상 유닛(246)은 참조 픽처 리스트들 중 하나에서 모션 벡터가 가리키는 예측 블록을 위치 지정할 수도 있다. 모션 보상 유닛(246)은 디코더(30)에 의해 비디오 슬라이스의 픽처 블록을 디코딩하기 위해 블록 및 비디오 슬라이스와 연관된 신택스 엘리먼트들을 추가로 발생시킬 수도 있다.
구체적으로 설명하면, 인터 예측 유닛(244)은 신택스 엘리먼트들을 엔트로피 인코딩 유닛(270)으로 송신할 수도 있으며, 신택스 엘리먼트들은 인터 예측 파라미터(예컨대, 복수의 인터 예측 모드들의 순회 이후 현재의 블록의 예측에 사용되는 인터 예측 모드의 선택의 표시 정보)를 포함한다. 가능한 애플리케이션 시나리오에서, 오직 하나의 인터 예측 모드만이 있으면, 인터 예측 파라미터는 대안적으로 신택스 엘리먼트에서 운반되지 않을 수도 있다. 이 경우, 디코더(30)는 디폴트 예측 모드에서 디코딩을 직접 수행할 수도 있다. 인터 예측 유닛(244)이 인터 예측 기술들의 임의의 조합을 수행하도록 구성될 수도 있음을 알 수 있다.
인트라 예측 유닛(254)은 인트라 추정을 위해, 동일한 픽처의 픽처 블록(203)(현재의 픽처 블록) 및 하나 이상의 이전에 복원된 블록들, 예를 들어, 복원된 이웃하는 블록들을 획득하도록, 예를 들어, 수신하도록 구성된다. 예를 들어, 인코더(20)는 복수의 (미리 결정된) 인트라 예측 모드들 중에서 인트라 예측 모드를 선택하도록 구성될 수도 있다.
일 실시형태에서, 인코더(20)는 최적화 기준에 따라서, 예를 들어, 최소 잔차(예를 들어, 현재의 픽처 블록(203)과 가장 유사한 예측 블록(255)을 제공하는 인트라 예측 모드) 또는 최소 레이트 왜곡에 기초하여 인트라 예측 모드를 선택하도록 구성될 수도 있다.
인트라 예측 유닛(254)은 예를 들어, 선택된 인트라 예측 모드에서의 인트라 예측 파라미터에 기초하여 인트라 예측 블록(255)을 결정하도록 추가로 결정된다. 어쨌든, 블록에 대한 인트라-예측 모드를 선택한 후, 인트라 예측 유닛(254)은 인트라 예측 파라미터, 즉, 블록에 대한 선택된 인트라-예측 모드를 표시하는 정보를, 엔트로피 인코딩 유닛(270)에 제공하도록 추가로 구성된다. 일 예에서, 인트라 예측 유닛(254)은 인트라 예측 기술들의 임의의 조합을 수행하도록 구성될 수도 있다.
구체적으로 설명하면, 인트라 예측 유닛(254)은 신택스 엘리먼트들을 엔트로피 인코딩 유닛(270)으로 송신할 수도 있으며, 신택스 엘리먼트들은 인트라 예측 파라미터(예컨대, 복수의 인트라 예측 모드들의 순회 후 현재의 블록의 예측에 사용되는 인트라 예측 모드의 선택의 표시 정보)를 포함한다. 가능한 애플리케이션 시나리오에서, 오직 하나의 인트라 예측 모드만이 있으면, 인트라 예측 파라미터는 대안적으로 신택스 엘리먼트에서 운반되지 않을 수도 있다. 이 경우, 디코더(30)는 디폴트 예측 모드에서 디코딩을 직접 수행할 수도 있다.
엔트로피 인코딩 유닛(270)은 예를 들어, 인코딩된 비트스트림(21)의 형태로 출력(272)을 통해서 출력될 수도 있는 인코딩된 픽처 데이터(21)를 획득하기 위해, 다음 중 하나 또는 모두: 양자화된 계수(209), 인터 예측 파라미터, 인트라 예측 파라미터, 및/또는 루프 필터 파라미터에 대해, 엔트로피 인코딩 알고리즘 또는 방식(예를 들어, 가변 길이 코딩(variable length coding, VLC) 방식, 컨텍스트 적응 VLC(context adaptive VLC, CAVLC) 방식, 산술 코딩 방식, 컨텍스트 적응 2진 산술 코딩(context adaptive binary arithmetic coding, CABAC), 신택스-기반 컨텍스트-적응 2진 산술 코딩(syntax-based context-adaptive binary arithmetic coding, SBAC), 확률 간격 파티셔닝 엔트로피(probability interval partitioning entropy, PIPE) 코딩, 또는 다른 엔트로피 코딩 방법론 또는 기법)을 적용하도록 (또는, 적용하는 것을 회피하도록) 구성될 수도 있다. 인코딩된 비트스트림은 비디오 디코더(30)로 송신되거나, 또는 비디오 디코더(30)에 의한 추후 송신 또는 취출을 위해 아카이브될 수도 있다. 엔트로피 인코딩 유닛(270)은 인코딩중인 현재의 비디오 슬라이스에 대한 다른 신택스 엘리먼트를 엔트로피 인코딩하도록 추가로 구성될 수도 있다.
비디오 인코더(20)의 다른 구조적 변형이 비디오 비트스트림을 인코딩하는데 사용될 수 있다. 예를 들어, 비-변환 기반 인코더(20)는 일부 블록들 또는 프레임들에 대해 변환 프로세싱 유닛 206 없이 잔차 신호를 직접 양자화할 수도 있다. 다른 구현예에서, 인코더(20)는 단일 유닛에 결합되는 양자화 유닛(208) 및 역양자화 유닛(210)을 가질 수도 있다.
비디오 인코더(20)의 다른 구조적 변형이 비디오 비트스트림을 인코딩하는데 사용될 수도 있는 것으로 이해되어야 한다. 예를 들어, 일부 픽처 블록들 또는 픽처 프레임들에 대해, 비디오 인코더(20)는 잔차 신호를 직접 양자화할 수도 있으며, 변환 프로세싱 유닛(206)에 의한 프로세싱이 요구되지 않으며, 이에 따라, 역변환 프로세싱 유닛(212)에 의한 프로세싱이 역시 요구되지 않는다. 대안적으로, 일부 픽처 블록들 또는 픽처 프레임들에 대해, 비디오 인코더(20)는 잔차 데이터를 발생시키지 않으며, 이에 따라, 변환 프로세싱 유닛(206), 양자화 유닛(208), 역양자화 유닛(210), 및 역변환 프로세싱 유닛(212)에 의한 프로세싱이 요구되지 않는다. 대안적으로, 비디오 인코더(20)는 복원된 픽처 블록을 참조 블록으로서 직접 저장할 수도 있으며, 필터(220)에 의한 프로세싱이 요구되지 않는다. 대안적으로, 비디오 인코더(20)에서의 양자화 유닛(208)과 역 양자화 유닛(210)은 결합될 수도 있다. 루프 필터(220)는 옵션적이며, 무손실 압축 코딩의 경우, 변환 프로세싱 유닛(206), 양자화 유닛(208), 역양자화 유닛(210), 및 역변환 프로세싱 유닛(212)은 옵션적이다. 상이한 애플리케이션 시나리오들에 따르면, 인터 예측 유닛(244) 및 인트라 예측 유닛(254)은 선택적으로 활성화되어 사용될 수도 있는 것으로 이해되어야 한다.
도 3을 참조한다. 도 3은 본 출원의 일 실시형태에 따른 디코더(30)의 일 예의 개략적인/개념적인 블록도이다. 비디오 디코더(30)는 예를 들어, 인코더(20)에 의해 인코딩된, 인코딩된 픽처 데이터(예를 들어, 인코딩된 비트스트림)(21)를 수신하여, 디코딩된 픽처(231)를 획득하도록 구성된다. 디코딩 프로세스에서, 비디오 디코더(30)는 비디오 인코더(20)로부터의 비디오 데이터, 예를 들어, 인코딩된 비디오 슬라이스의 픽처 블록 및 연관된 신택스 엘리먼트를 나타내는 인코딩된 비디오 비트스트림을 수신한다.
도 3의 예에서, 디코더(30)는 엔트로피 디코딩 유닛(304), 역양자화 유닛(310), 역변환 프로세싱 유닛(312), 복원 유닛(314)(예를 들어, 합산기(314)), 버퍼(316), 루프 필터(320), 디코딩된 픽처 버퍼(330), 및 예측 프로세싱 유닛(360)을 포함한다. 예측 프로세싱 유닛(360)은 인터 예측 유닛(344), 인트라 예측 유닛(354), 및 모드 선택 유닛(362)을 포함할 수도 있다. 일부 예들에서, 비디오 디코더(30)는 도 2의 비디오 인코더(20)를 참조하여 설명되는 인코딩 과정과는 일반적으로 반대인 디코딩 과정을 수행할 수도 있다.
엔트로피 디코딩 유닛(304)은 인코딩된 픽처 데이터(21)에 대해 엔트로피 디코딩을 수행하여, 예를 들어, 양자화된 계수(309) 및/또는 디코딩된 인코딩 파라미터(도 3에 미도시), 예를 들어, 인터 예측 파라미터, 인트라 예측 파라미터, 루프 필터 파라미터, 및/또는 (디코딩되는) 다른 신택스 엘리먼트 중 임의의 하나 또는 모두를 획득하도록 구성된다. 엔트로피 디코딩 유닛(304)은 인터 예측 파라미터, 인트라 예측 파라미터, 및/또는 다른 신택스 엘리먼트를 예측 프로세싱 유닛(360)으로 포워딩하도록 추가로 구성된다. 비디오 디코더(30)는 신택스 엘리먼트들을 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 수신할 수도 있다.
역양자화 유닛(310)은 역양자화 유닛(110)과 동일한 기능을 가질 수도 있다. 역변환 프로세싱 유닛(312)은 역변환 프로세싱 유닛(212)과 동일한 기능을 가질 수도 있다. 복원 유닛(314)은 복원 유닛(214)과 동일한 기능을 가질 수도 있다. 버퍼(316)는 버퍼(216)와 동일한 기능을 가질 수도 있다. 루프 필터(320)는 루프 필터(220)와 동일한 기능을 가질 수도 있다. 디코딩된 픽처 버퍼(330)는 디코딩된 픽처 버퍼(230)와 동일한 기능을 가질 수도 있다.
예측 프로세싱 유닛(360)은 인터 예측 유닛(344) 및 인트라 예측 유닛(354)을 포함할 수도 있다. 인터 예측 유닛(344)은 기능들에서 인터 예측 유닛(244)과 유사할 수도 있으며, 인트라 예측 유닛(354)은 기능들에서 인트라 예측 유닛(254)과 유사할 수도 있다. 예측 프로세싱 유닛(360)은 일반적으로 블록 예측을 수행하고/하거나 인코딩된 데이터(21)로부터 예측 블록(365)을 획득하고, 예를 들어, 엔트로피 디코딩 유닛(304)으로부터 예측-관련된 파라미터 및/또는 선택된 예측 모드에 관한 정보를 (명시적으로 또는 암시적으로) 수신 또는 획득하도록 구성된다.
비디오 슬라이스가 인트라-인코딩된(I) 슬라이스로서 인코딩될 때, 예측 프로세싱 유닛(360)의 인트라 예측 유닛(354)은 시그널링된 인트라-예측 모드 및 현재의 프레임 또는 픽처의 이전에 디코딩된 블록으로부터 유래하는 데이터에 기초하여 현재의 비디오 슬라이스의 픽처 블록에 대한 예측 블록(365)을 발생시키도록 구성된다. 비디오 프레임이 인터-인코딩된(B 또는 P) 슬라이스로서 인코딩될 때, 예측 프로세싱 유닛(360)의 인터 예측 유닛(344)(예를 들어, 모션 보상 유닛)은 모션 벡터 및 엔트로피 디코딩 유닛(304)으로부터 수신되는 다른 신택스 엘리먼트에 기초하여 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 블록(365)을 발생시키도록 구성된다. 인터 예측을 위해, 예측 블록은 하나의 참조 픽처 리스트에서의 참조 픽처들 중 하나로부터 발생될 수도 있다. 비디오 디코더(30)는 디폴트 구성 기술을 이용하여 그리고 DPB(230)에 저장된 참조 픽처들에 기초하여, 참조 프레임 리스트들, 리스트 0 및 리스트 1을 구성할 수도 있다.
예측 프로세싱 유닛(360)은 모션 벡터 및 다른 신택스 엘리먼트를 파싱함으로써 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 예측 정보를 이용하여 디코딩중인 현재의 비디오 블록에 대한 예측 블록을 발생시키도록 구성된다. 본 출원의 일 예에서, 예측 프로세싱 유닛(360)은 현재의 비디오 슬라이스에서의 비디오 블록을 디코딩하기 위해, 일부 수신된 신택스 엘리먼트들을 이용하여, 비디오 슬라이스에서의 비디오 블록을 인코딩하기 위한 예측 모드(예를 들어, 인트라 또는 인터 예측), 인터 예측 슬라이스 유형(예를 들어, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스), 슬라이스에 대한 참조 픽처 리스트들의 하나 이상의 구성 정보, 슬라이스에서의 각각의 인터 인코딩된 비디오 블록에 대한 모션 벡터, 슬라이스에서의 각각의 인터 인코딩된 비디오 블록의 인터 예측 상태, 및 다른 정보를 결정한다. 본 개시물의 다른 예에서, 비트스트림으로부터 비디오 디코더(30)에 의해 수신된 신택스 엘리먼트들은 적응 파라미터 세트(adaptive parameter set, APS), 시퀀스 파라미터 세트(sequence parameter set, SPS), 픽처 파라미터 세트(picture parameter set, PPS), 또는 슬라이스 헤더 중 하나 이상에서의 신택스 엘리먼트들을 포함한다.
역양자화 유닛(310)은 비트스트림으로 제공되고 엔트로피 디코딩 유닛(304)에 의해 디코딩되는 양자화된 변환 계수에 대해 역양자화(즉, 역양자화(dequantization))를 수행하도록 구성될 수도 있다. 역양자화 프로세스는 적용되어야 하는 양자화 도 및, 이와 유사하게, 적용되어야 하는 역양자화 도를 결정하기 위해, 비디오 슬라이스 내 각각의 비디오 블록에 대해 비디오 인코더(20)에 의해 계산된 양자화 파라미터를 이용하는 것을 포함할 수도 있다.
역변환 프로세싱 유닛(312)은 역변환(예를 들어, 역 DCT, 역 정수 변환, 또는 개념적으로 유사한 역변환 프로세스)을 변환 계수에 적용하여, 픽셀 도메인에서 잔차 블록을 발생시키도록 구성된다.
복원 유닛(314)(예를 들어, 합산기(314))은 샘플 도메인에서 복원된 블록(315)을 획득하기 위해, 예를 들어, 복원된 잔차 블록(313)의 샘플 값들 및 예측 블록(365)의 샘플 값들을 가산함으로써, 역변환 블록(313)(즉, 복원된 잔차 블록(313))을 예측 블록(365)에 가산하도록 구성된다.
루프 필터 유닛(320)(코딩 루프 동안 또는 코딩 루프 이후)은 픽셀 전이를 평활화하거나 또는 비디오 품질을 향상시키기 위해, 복원된 블록(315)을 필터링하여 필터링된 블록(321)을 획득하도록 구성된다. 일 예에서, 루프 필터 유닛(320)은 아래에서 설명되는 필터링 기술들의 임의의 조합을 수행하도록 구성될 수도 있다. 루프 필터 유닛(320)은 하나 이상의 루프 필터들 예컨대, 디블록킹 필터, SAO 필터, 또는 다른 필터, 예를 들어, 양방향 필터, ALF, 샤프닝 또는 평활 필터, 또는 협업 필터를 나타내도록 의도된다. 루프 필터 유닛(320)이 도 3에서 인-루프 필터로서 도시되지만, 다른 구현예에서, 루프 필터 유닛(320)은 사후-루프 필터로서 구현될 수도 있다.
주어진 프레임 또는 픽처 내 디코딩된 비디오 블록(321)은 그후 후속 모션 보상에 사용되는 참조 픽처를 저장하는 디코딩된 픽처 버퍼(330)에 저장된다.
디코더(30)는 예를 들어, 사용자에게의 프리젠테이션 또는 사용자에 의한 시청을 위해, 디코딩된 픽처(31)를 출력(332)을 통해서 출력하도록 구성된다.
비디오 디코더(30)의 다른 변형이 압축된 비트스트림을 디코딩하는데 사용될 수도 있다. 예를 들어, 디코더(30)는 루프 필터 유닛(320) 없이 출력 비디오 비트스트림을 발생시킬 수도 있다. 예를 들어, 비-변환 기반의 디코더(30)는 일부 블록들 또는 프레임들에 대해 역변환 프로세싱 유닛(312) 없이 잔차 신호를 직접 역-양자화할 수도 있다. 다른 구현예에서, 비디오 디코더(30)는 단일 유닛에 결합된 역양자화 유닛(310) 및 역변환 프로세싱 유닛(312)을 가질 수도 있다.
구체적으로 설명하면, 본 출원의 본 실시형태에서, 디코더(30)는 다음 실시형태들에서 설명되는 비디오 디코딩 방법을 구현하도록 구성된다.
비디오 디코더(30)의 다른 구조적 변형이 인코딩된 비디오 비트스트림을 디코딩하는데 사용될 수 있는 것으로 이해되어야 한다. 예를 들어, 비디오 디코더(30)는 필터(320)에 의한 프로세싱 없이, 출력 비디오 비트스트림을 발생시킬 수도 있다. 대안적으로, 일부 픽처 블록들 또는 픽처 프레임들에 대해, 비디오 디코더(30)의 엔트로피 디코딩 유닛(304)은 디코딩을 통해 양자화된 계수들을 획득하지 않으며, 이에 따라, 역양자화 유닛(310) 및 역변환 프로세싱 유닛(312)이 프로세싱을 수행할 필요가 없다. 루프 필터(320)는 옵션적이다. 게다가, 무손실 압축의 경우, 역양자화 유닛(310) 및 역변환 프로세싱 유닛(312)은 또한 옵션적이다. 상이한 애플리케이션 시나리오들에 따르면, 인터 예측 유닛 및 인트라 예측 유닛은 선택적으로 활성화되어 사용될 수도 있는 것으로 이해되어야 한다.
본 출원의 인코더(20) 및 디코더(30)에서, 프로시저에 대한 프로세싱 결과가 추가적으로 프로세싱된 후 다음 프로시저로 출력될 수도 있는 것으로 이해되어야 한다. 예를 들어, 내삽 필터링, 모션 벡터 유도, 또는 루프 필터링과 같은 프로시저 이후, 클립(clip) 또는 시프트(shift)와 같은 동작이 대응하는 프로시저의 프로세싱 결과에 대해 추가로 수행된다.
예를 들어, 현재의 픽처 블록의 제어 지점의 모션 벡터 또는 이웃하는 아핀 코딩 블록의 모션 벡터로부터 유도된 현재의 픽처 블록의 서브블록의 모션 벡터는 추가로 프로세싱될 수도 있다. 이는 본 출원에서 한정되지 않는다. 예를 들어, 모션 벡터의 값은 특정의 비트 폭 범위 내에 있도록 제한된다. 모션 벡터의 허용 비트 폭이 bitDepth라고 가정하면, 모션 벡터의 값은 -2^(bitDepth - 1) 내지 2^(bitDepth - 1) - 1 범위이며, 여기서, 심볼 "^"는 지수(exponentiation)를 나타낸다. bitDepth가 16이면, 그 값은 -32768 내지 32767 범위이다. bitDepth가 18이면, 그 값은 -131072 내지 131071 범위이다. 다른 예로, 모션 벡터(예를 들어, 하나의 8 x 8 픽처 블록 내 4개의 4 x 4 서브블록들의 모션 벡터들 MV들)의 값은, 4개의 4 x 4 서브블록들의 MV들의 정수 부분들 사이의 최대 차이가 N개의 픽셀들을 초과하지 않도록, 예를 들어, 1개의 픽셀을 초과하지 않도록 제한된다.
다음 2개의 방식들이 모션 벡터를 특정의 비트 폭 내에 있도록 제한하는데 사용될 수도 있다:
방식 1: 다음 연산들에 의해 모션 벡터의 오버플로우 최상위 비트를 제거한다:
Figure pct00001
여기서, vx는 이미지 블록 또는 이미지 블록의 서브-블록의 모션 벡터의 수평 성분이며, vy는 이미지 블록 또는 이미지 블록의 서브-블록의 모션 벡터의 수직 성분이며, 그리고 ux 및 uy는 중간 값들이며, bitDepth는 비트 심도를 나타낸다.
예를 들어, vx의 값은 -32769이며, 32767은 전술한 수식들에 따라서 유도된다. 값은 컴퓨터 상에 2의 보수 표현으로 저장되며, -32769의 2의 보수 표현은 1,0111,1111,1111,1111(17 비트들)이고, 오버플로잉을 위해 컴퓨터에 의해 수행되는 프로세싱은 최상위 비트를 폐기하는 것이다. 따라서, vx의 값은 0111,1111,1111,1111, 즉, 32767이다. 이 값은 수식들에 따른 프로세싱을 통해서 유도된 결과와 일치한다.
방식 2: 모션 벡터를 다음 수식들에 따라서 클리핑한다:
Figure pct00002
여기서, vx는 이미지 블록 또는 이미지 블록의 서브-블록의 모션 벡터의 수평 성분이며, vy는 이미지 블록 또는 이미지 블록의 서브-블록의 모션 벡터의 수직 성분이며; x, y, 및 z는 MV 클램핑 프로세스 Clip3의 3개의 입력 값들에 각각 대응하는 것이며, Clip3은 범위 [x, y]에서 z의 값을 클리핑하는 것을 표시하기 위해 정의된다.
Figure pct00003
도 4를 참조한다. 도 4는 본 출원의 일 실시형태에 따른 비디오 코딩 디바이스(400)(예를 들어, 비디오 인코딩 디바이스(400) 또는 비디오 디코딩 디바이스(400))의 구조의 개략도이다. 비디오 코딩 디바이스(400)는 본 명세서에서 설명된 실시형태들을 구현하는데 적합하다. 일 실시형태에서, 비디오 코딩 디바이스(400)는 비디오 디코더(예를 들어, 도 1a의 디코더(30)) 또는 비디오 인코더(예를 들어, 도 1a의 인코더(20))일 수도 있다. 다른 실시형태에서, 비디오 코딩 디바이스(400)는 도 1a의 디코더(30) 또는 도 1a의 인코더(20)의 하나 이상의 컴포넌트들일 수도 있다.
비디오 코딩 디바이스(400)는 데이터를 수신하기 위한 유입 포트(410) 및 수신기 유닛(Rx)(420); 데이터를 프로세싱하기 위한 프로세서, 로직 유닛, 또는 중앙 처리 유닛(Central Processing Unit, CPU)(430); 데이터를 송신하기 위한 송신기 유닛(Tx)(440) 및 유출 포트(450); 및 데이터를 저장하기 위한 메모리(460)를 포함한다. 비디오 코딩 디바이스(400)는 광학 또는 전기 신호들의 유출 또는 유입을 위해, 유입 포트(410), 수신기 유닛(420), 송신기 유닛(440), 및 유출 포트(450)에 커플링된 광-대-전기 변환 컴포넌트 및 전기-대-광(EO) 컴포넌트를 더 포함할 수도 있다.
프로세서(430)는 하드웨어 및 소프트웨어에 의해 구현된다. 프로세서(430)는 하나 이상의 CPU 칩들, 코어들(예를 들어, 멀티-코어 프로세서), FPGA들, ASIC들, 및 DSP들로서 구현될 수도 있다. 프로세서(430)는 유입 포트(410), 수신기 유닛(420), 송신기 유닛(440), 유출 포트(450), 및 메모리(460)와 통신한다. 프로세서(430)는 코딩 모듈(470)(예를 들어, 인코딩 모듈(470) 또는 디코딩 모듈(470))을 포함한다. 인코딩/디코딩 모듈(470)은 본 출원의 실시형태들에서 제공되는 크로마 블록 예측 방법을 구현하기 위해, 본 명세서에 개시된 실시형태들을 구현한다. 예를 들어, 인코딩/디코딩 모듈(470)은 다양한 코딩 동작들을 구현, 프로세싱, 또는 제공한다. 따라서, 인코딩/디코딩 모듈(470)은 비디오 코딩 디바이스(400)의 기능들을 실질적으로 향상시키고 상이한 상태로의 비디오 코딩 디바이스(400)의 변환에 영향을 미친다. 대안적으로, 인코딩/디코딩 모듈(470)은 메모리(460)에 저장되어 프로세서(430)에 의해 실행되는 명령으로서 구현된다.
메모리(460)는 하나 이상의 디스크들, 테이프 드라이브들, 및 솔리드-스테이트 드라이브들을 포함하며, 이러한 프로그램들이 실행을 위해 선택될 때 프로그램들을 저장하고 프로그램 실행 동안 판독되는 명령들 및 데이터를 저장하기 위해, 오버플로우 데이터 저장 디바이스로서 사용될 수도 있다. 메모리(460)는 휘발성 및/또는 비휘발성일 수도 있으며, 판독-전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 3진수 콘텐츠-어드레스가능 메모리(ternary content-addressable memory, TCAM), 및/또는 정적 랜덤 액세스 메모리(SRAM)일 수도 있다.
도 5를 참조한다. 도 5는 예시적인 실시형태에 따른, 도 1a의 소스 디바이스(12) 및 목적지 디바이스(14) 중 하나 또는 둘로서 사용될 수도 있는 장치(500)의 간략화된 블록도이다. 장치(500)는 본 출원의 기술들을 구현할 수 있다. 다시 말해서, 도 5는 본 출원의 일 실시형태에 따른 인코딩 디바이스 또는 디코딩 디바이스(줄여서, 코딩 디바이스(500))의 구현예의 개략 블록도이다. 코딩 디바이스(500)는 프로세서(510), 메모리(530), 및 버스 시스템(550)을 포함할 수도 있다. 프로세서와 메모리는 버스 시스템을 통해서 접속된다. 메모리는 명령을 저장하도록 구성된다. 프로세서는 메모리에 저장된 명령을 실행하도록 구성된다. 코딩 디바이스의 메모리는 프로그램 코드를 저장한다. 프로세서는 메모리에 저장된 프로그램 코드를 호출하여, 본 출원에서 설명되는 다양한 비디오 인코딩 또는 디코딩 방법들, 특히 다양한 새로운 비디오 디코딩 방법들을 수행할 수도 있다. 반복을 피하기 위해, 세부 사항은 본원에서 다시 설명되지 않는다.
본 출원의 본 실시형태에서, 프로세서(510)는 CPU일 수도 있거나, 또는 프로세서(510)는 다른 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드-프로그래밍가능 게이트 어레이(FPGA) 또는 다른 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직 디바이스, 별개의 하드웨어 어셈블리, 또는 기타 등등일 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있거나, 또는 프로세서는 임의의 종래의 프로세서, 또는 기타 등등일 수도 있다.
메모리(530)는 판독-전용 메모리(ROM) 디바이스 또는 랜덤 액세스 메모리(RAM) 디바이스를 포함할 수도 있다. 임의의 다른 적합한 유형의 저장 디바이스가 대안적으로 메모리(530)로서 사용될 수도 있다. 메모리(530)는 버스(550)를 통해서 프로세서(510)에 의해 액세스되는 코드 및 데이터(531)를 포함할 수도 있다. 메모리(530)는 운영 시스템(533) 및 애플리케이션 프로그램(535)을 더 포함할 수도 있다. 애플리케이션 프로그램(535)은 프로세서(510)로 하여금, 본 출원에서 설명되는 비디오 인코딩 또는 디코딩 방법(특히, 본 출원에서 설명된 인터 예측 방법)을 수행하게 하는 적어도 하나의 프로그램을 포함한다. 예를 들어, 애플리케이션 프로그램들(535)은 애플리케이션들 1 내지 N을 포함할 수도 있으며, 본 출원에서 설명되는 비디오 인코딩 또는 디코딩 방법을 수행하는데 사용되는 비디오 인코딩 또는 디코딩 애플리케이션(간단히, 비디오 코딩 애플리케이션으로 지칭됨)을 더 포함한다.
버스 시스템(550)은 데이터 버스를 포함할 뿐만 아니라, 전력 버스, 제어 버스, 상태 신호 버스 등을 포함할 수도 있다. 그러나, 명확한 설명을 위해, 도면에서 다양한 유형들의 버스들은 버스 시스템(550)으로서 표시된다.
선택적으로, 코딩 디바이스(500)는 하나 이상의 출력 디바이스, 예를 들어, 디스플레이(570)를 더 포함할 수도 있다. 일 예에서, 디스플레이(570)는 디스플레이와 터치 입력을 감지하도록 동작가능한 터치-감지 유닛을 결합하는 터치-감지 디스플레이일 수도 있다. 디스플레이(570)는 버스(550)를 통해서 프로세서(510)에 접속될 수도 있다.
다음은 본 출원의 실시형태들에서 제공되는 기술적인 해결책들을 자세히 설명한다:
비디오 코딩 기술들의 발달에 따라, 라이브러리-기반 코딩 방법을 포함한 더 많은 비디오 코딩 방법들이 있다. 비디오는 픽처 시퀀스들로 구성되며, 픽처 시퀀스는 픽처들의 하나 이상의 프레임들을 포함한다. 인코딩될 픽처를 인코딩할(또는, 디코딩될 픽처를 디코딩할) 때, 인코더(또는, 디코더)는 인코딩(또는, 디코딩) 효율을 향상시키기 위해, 그의 텍스쳐 또는 콘텐츠가 인코딩될 픽처(또는, 디코딩될 픽처)의 텍스쳐 또는 콘텐츠와 유사한 픽처에 기초하여 인코딩(또는, 디코딩)을 완료할 수도 있다. 참조된 이미지가 라이브러리 픽처로서 지칭되며, 픽처를 저장하는 데이터베이스가 라이브러리로서 지칭된다. 따라서, 라이브러리 픽처의 적어도 하나의 프레임을 참조함으로써 비디오 내 픽처의 적어도 하나의 프레임을 인코딩 및 디코딩하는 이러한 방법은 라이브러리-기반 비디오 코딩(library-based video coding) 방법으로 지칭된다. 비디오 시퀀스가 라이브러리-기반 비디오 인코딩 방법을 이용하여 인코딩될 때, 라이브러리 픽처 비트스트림 및 비디오 시퀀스 내 픽처들의 프레임들을 포함하는 비디오 비트스트림이 발생된다. 비트스트림들의 2개의 계층들 간 참조 관계가 도 6에 도시된다. 비디오 비트스트림이 비-정렬된 시간 기간에서의 라이브러리 픽처 비트스트림에 의존함을 알 수 있다.
비디오 비트스트림이 획득된 후, 라이브러리 픽처 비트스트림을 디코딩하여, 디코딩된 라이브러리 픽처를 획득하기 위해, 제 1 디코더가 호출될 수도 있다. 그 후, 제 2 디코더가 디코딩된 라이브러리 픽처를 참조함으로써 비디오 비트스트림을 디코딩하기 위해 호출된다. 동일한 디코더가 대안적으로 비디오 비트스트림 및 라이브러리 픽처 비트스트림을 디코딩하기 위해 호출될 수도 있다.
본 출원의 실시형태는 비디오 디코딩 방법을 제공한다. 이 방법은 도 1a, 도 1b, 도 3, 도 4, 및 도 5에 나타낸 구현 환경들에 적용될 수도 있다. 도 7에 나타낸 바와 같이, 이 방법은 다음 단계들을 포함한다.
단계 701: 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되면, 비디오 비트스트림으로부터 제 1 플래그를 파싱한다.
본 출원의 본 실시형태에서 제공되는 디코딩 방법에서, 디코딩될 비트스트림은 디코딩 시나리오에서 획득되며, 디코딩될 비트스트림은 비트 스트링이다. 디코딩될 비트스트림은 라이브러리-기반 인코딩 방법을 이용함으로써 인코딩을 통해 획득된다. 디코딩될 비트스트림은 라이브러리 픽처 비트스트림 또는 라이브러리 픽처 비트스트림을 참조하는 비디오 비트스트림 중 하나이다. 라이브러리 픽처 비트스트림 및 라이브러리 픽처 비트스트림을 참조하는 비디오 비트스트림이 상이한 방식들로 디코딩되기 때문에, 디코딩될 비트스트림이 획득된 후, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되면, 제 1 플래그가 비디오 비트스트림으로부터 파싱되기 전에, 디코딩될 비트스트림을 대응하는 디코딩 방식으로 디코딩하기 위해, 디코딩될 비트스트림의 유형들이 결정되어야 한다.
예시적인 실시형태에서, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되면, 비디오 비트스트림으로부터 제 1 플래그를 파싱하는 단계는, 비디오 비트스트림으로부터 라이브러리 픽처 참조 플래그를 파싱하는 단계로서, 라이브러리 픽처 참조 플래그는 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되는지 여부를 표시하는데 사용되는, 단계; 그리고 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용된다는 것을 라이브러리 픽처 참조 플래그의 값이 표시하면, 비디오 비트스트림으로부터 제 1 플래그를 파싱하는 단계를 포함한다.
"참조하는(referencing)"이 "참조하도록 허용하는"으로 이해될 수도 있다는 점에 유의해야 한다. "비디오 비트스트림은 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되도록 허용된다"는 "비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되어야 한다"로서 이해될 수도 있다.
라이브러리 픽처 참조 플래그는 수치 값을 통해서, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용(또는, 요구)되는지 여부를 표시할 수도 있다. 예를 들어, 제 1 값인 라이브러리 픽처 참조 플래그의 값은 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되도록 허용된다는 것을 표시한다. 제 2 값인 라이브러리 픽처 참조 플래그의 값은 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되지 않는다는 것을 표시하거나, 또는 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 반드시 허용되지 않거나 또는 요구되지는 않는다는 것을 표시한다. 라이브러리 픽처 참조 플래그의 제 1 값 및 제 2 값은 상이하다.
예를 들어, 라이브러리 픽처 참조 플래그의 제 1 값은 1일 수도 있으며, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되도록 허용된다는 것을 표시한다. 라이브러리 픽처 참조 플래그의 제 2 값은 0일 수도 있으며, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되도록 허용되지 않는다는 것을 표시한다. 따라서, 비디오 비트스트림으로부터 파싱된 라이브러리 픽처 참조 플래그가 1일 때, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되도록 허용되는 것으로 결정될 수도 있다.
물론, 라이브러리 픽처 참조 플래그에 의해 사용되는 제 1 값 및 제 2 값의 값들은 이 실시형태에서 한정되지 않는다. 예를 들어, 제 1 값은 0일 수도 있으며, 제 2 값은 1일 수도 있다. 따라서, 라이브러리 픽처 참조 플래그의 값이 0일 때, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되도록 허용된다는 것을 표시한다. 라이브러리 픽처 참조 플래그의 값이 1일 때, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되도록 허용되지 않는다는 것을 표시한다.
예시적인 실시형태에서, 라이브러리 픽처 참조 플래그는 또한 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되어야 하는지 여부를 표시하는데 사용될 수도 있다. 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되어야 한다고 라이브러리 픽처 참조 플래그의 값이 표시하면, 제 1 플래그는 비디오 비트스트림으로부터 파싱된다.
라이브러리 픽처 참조 플래그는 수치 값을 통해서, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되어야 하는지 여부를 표시할 수도 있다. 예를 들어, 제 1 값인 라이브러리 픽처 참조 플래그의 값은 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되어야 한다는 것을 표시한다. 제 2 값인 라이브러리 픽처 참조 플래그의 값은 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩될 필요가 없다는 것을 표시하거나, 또는 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 반드시 디코딩될 필요가 없거나 또는 디코딩되도록 요구되지 않는다는 것을 표시한다. 예를 들어, 라이브러리 픽처 참조 플래그의 제 1 값이 1이면, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되어야 한다는 것을 표시한다. 라이브러리 픽처 참조 플래그의 제 2 값이 0이면, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩될 필요가 없다는 것을 표시한다. 따라서, 비디오 비트스트림으로부터 파싱된 라이브러리 픽처 참조 플래그가 1일 때, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되어야 하는 것으로 결정될 수도 있다.
물론, 라이브러리 픽처 참조 플래그에 의해 사용되는 제 1 값 및 제 2 값의 값들은 이 실시형태에서 한정되지 않는다. 예를 들어, 라이브러리 픽처 참조 플래그의 제 1 값은 0일 수도 있으며, 라이브러리 픽처 참조 플래그의 제 2 값은 1일 수도 있다. 따라서, 라이브러리 픽처 참조 플래그의 값이 0일 때, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되어야 한다는 것을 표시할 수도 있다. 라이브러리 픽처 참조 플래그의 값이 1일 때, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩될 필요가 없다는 것을 표시할 수도 있다.
선택적으로, 제 1 플래그는 동일한 파라미터 플래그를 포함할 수도 있다. 동일한 파라미터 플래그는 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일한지 여부를 표시하는데 사용된다. 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터는 비디오 비트스트림의 디코딩 능력 정보를 포함할 수도 있다. 제 1 값인 동일한 파라미터 플래그의 값은 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일하다는 것을 표시한다. 제 1 값인 동일한 파라미터 플래그의 값은 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 상이할 수도 있다는 것을 표시하거나, 또는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 반드시 동일하거나 또는 동일할 필요가 없음을 표시하거나, 또는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 상이하다는 것을 표시한다. 선택적으로, 이 구현예에서, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되도록 허용되어야 하는 것으로 결정하는 것에 추가하여, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되도록 허용된 라이브러리 픽처 비트스트림이 동일한 표준을 이용하는지 여부가 추가로 결정될 수도 있다. 이들이 동일한 표준을 이용하면, 비디오 비트스트림의 (디코딩 능력 정보를 포함할 수도 있는) 목표 파라미터가 라이브러리 픽처 비트스트림의 (디코딩 능력 정보를 포함할 수도 있는) 목표 파라미터로서 사용된다. 표준은 비디오 코딩 표준을 지칭하며, 예를 들어, 오디오 및 비디오 코딩 표준(audio video coding standard, AVS), 고효율 비디오 코딩(High Efficiency video coding, HEVC), 및 H.264일 수도 있다. 동일한 표준 플래그는 또한, 수치 값을 통해, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되도록 허용된 라이브러리 픽처 비트스트림이 동일한 표준을 이용하는지 여부를 표시할 수도 있다. 예를 들어, 동일한 표준 플래그가 제 1 값일 때, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되도록 허용된 라이브러리 픽처 비트스트림이 동일한 표준을 이용한다는 것을 표시한다. 동일한 표준 플래그가 제 2 값일 때, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되도록 허용된 라이브러리 픽처 비트스트림이 상이한 표준들을 이용한다는 것을 표시하거나, 또는 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되도록 허용된 라이브러리 픽처 비트스트림이 동일한 표준을 이용하지는 않거나 또는 이용하도록 요구되지 않는다는 것을 표시한다. 예를 들어, 동일한 표준 플래그의 제 1 값이 1일 때, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되도록 허용된 라이브러리 픽처 비트스트림이 동일한 표준을 이용한다는 것을 표시한다. 동일한 표준 플래그의 제 2 값이 0일 때, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되도록 허용된 라이브러리 픽처 비트스트림이 상이한 표준들을 이용한다는 것을 표시한다.
물론, 동일한 표준 플래그에 의해 사용되는 제 1 값 및 제 2 값의 값들은 이 실시형태에서 한정되지 않는다. 예를 들어, 동일한 표준 플래그의 제 1 값은 0일 수도 있으며, 동일한 표준 플래그의 제 2 값은 1일 수도 있다. 따라서, 동일한 표준 플래그의 값이 0일 때, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되도록 허용된 라이브러리 픽처 비트스트림이 동일한 표준을 이용한다는 것을 표시할 수도 있다. 동일한 표준 플래그의 값이 1일 때, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되도록 허용된 라이브러리 픽처 비트스트림이 상이한 표준들을 이용한다는 것을 표시할 수도 있다.
비디오 비트스트림 및 비디오 비트스트림에 의해 참조되도록 허용된 라이브러리 픽처 비트스트림이 상이한 표준들을 이용하면, 라이브러리 픽처 비트스트림의 (디코딩 능력 정보를 포함할 수도 있는) 목표 파라미터의 값이 비디오 비트스트림을 파싱하여 획득되더라도, 라이브러리 픽처 비트스트림은 디코딩되지 않을 수 있다는 점에 유의해야 한다. 그 결과, 비디오 비트스트림의 디코더의 리소스들이 점유되기 때문에 리소스들의 낭비가 초래되며, 디코딩 효율이 감소된다.
전술한 설명에 기초하여, 이 실시형태에서, 동일한 파라미터 플래그에 의해 표시되는 콘텐츠는 또한 다음 정보를 포함하도록 확장될 수도 있다: 동일한 파라미터 플래그는 비디오 비트스트림 및 라이브러리 픽처 비트스트림이 동일한 표준을 이용하는지 여부를 표시하는데 추가로 이용될 수도 있다. 예를 들어, 동일한 파라미터 플래그는 수치 값을 통해서 표시된다. 확장 후, 동일한 파라미터 플래그의 값이 제 1 값일(예를 들어, 1일 수도 있을) 때, 비디오 비트스트림 및 라이브러리 픽처 비트스트림이 동일한 표준을 이용한다는 것을 추가로 표시한다. 동일한 파라미터 플래그의 값이 제 2 값일(예를 들어, 0일 수도 있을) 때, 비디오 비트스트림 및 라이브러리 픽처 비트스트림이 상이한 표준들을 이용한다는 것을 추가로 표시한다.
비디오 비트스트림 및 라이브러리 픽처 비트스트림이 상이한 표준들을 이용하면, 이 실시형태에서 제공하는 해결책은, 비디오 비트스트림의 디코더가 그 표준을 이용하는 비트스트림을 디코딩할 수 있는 디코더를 호출하여 라이브러리 픽처 비트스트림을 디코딩하기 위해 라이브러리 픽처 비트스트림에 사용되는 표준에 관한 정보를 출력한다는 것이다.
선택적으로, 제 1 플래그는 또한 동일한 표준 플래그를 포함할 수도 있다. 동일한 표준 플래그는 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림이 동일한 표준을 이용하는지 여부를 표시하는데 사용된다. 제 1 값인 동일한 표준 플래그의 값은 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림이 동일한 표준을 이용한다는 것을 표시한다. 제 2 값인 동일한 표준 플래그는 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림이 상이한 표준들을 이용한다는 것을 표시하거나, 또는 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림이 동일한 표준을 이용하지는 않거나 또는 이용하도록 요구되지 않는다는 것을 표시한다.
선택적인 구현예에서, 디코딩될 비디오 비트스트림이 획득된 후, 또는 라이브러리 픽처 참조 플래그가 비디오 비트스트림으로부터 파싱되기 전에, 본 방법은 비디오 비트스트림으로부터 라이브러리 픽처 플래그를 파싱하는 단계를 더 포함할 수도 있으며, 여기서 (0 또는 1일 수도 있는) 제 2 값인 라이브러리 픽처 플래그의 값은 비디오 비트스트림이 라이브러리 픽처 비트스트림이 아니다는 것을 표시한다. 라이브러리 픽처 참조 플래그는 비디오 비트스트림이 라이브러리 픽처 비트스트림이 아니라는 것을 라이브러리 픽처 플래그의 값이 표시할 때에만 비디오 비트스트림으로부터 파싱된다. 제 1 값(0 또는 1일 수도 있으며, 제 1 값은 제 2 값과는 상이하다)인 라이브러리 픽처 플래그는 라이브러리 픽처 플래그가 위치되는 비트스트림이 라이브러리 픽처 비트스트림이라는 것을 표시한다.
이 구현예에서, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용(또는, 요구)되는지 여부가 결정되기 전에, 획득된 비트스트림이 라이브러리 픽처 비트스트림 또는 비디오 비트스트림(비트스트림 내 라이브러리 픽처 플래그의 값을 파싱함으로써 결정될 수 있음)인지 여부가 먼저 결정된다는 것을 알 수 있다. 획득된 비트스트림이 라이브러리 픽처 비트스트림 대신 비디오 비트스트림이라고 결정된 후, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용(또는, 요구)되는지 여부(이는 비디오 비트스트림 내 라이브러리 픽처 참조 플래그의 값을 파싱하여 결정될 수도 있음)가 추가로 결정된다. 예를 들어, 비트스트림이 라이브러리 픽처 비트스트림 대신에 비디오 비트스트림이면, 라이브러리 픽처 참조 플래그는 비디오 비트스트림으로부터 파싱된다. 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용된다는 것을 라이브러리 픽처 참조 플래그가 표시하면, 제 1 플래그는 비디오 비트스트림으로부터 파싱된다. 제 1 플래그의 값을 이용하여, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일한지 여부가 결정된다. 전술한 프로세스에 따르면, 획득된 비트스트림은 다음 3개의 유형들 중 하나로서 결정될 수도 있다:
제 1 유형: 비트스트림이 라이브러리 픽처 비트스트림이라고 라이브러리 픽처 플래그가 표시하면, 비트스트림이 라이브러리 픽처 비트스트림이라고 결정될 수도 있다.
제 2 유형: 비트스트림이 라이브러리 픽처 비트스트림 대신 비디오 비트스트림이라고 라이브러리 픽처 플래그가 표시하고, 그리고 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되지 않는다고 라이브러리 픽처 참조 플래그가 표시하면, 비디오 비트스트림이 비디오 내 픽처 시퀀스를 인코딩하여 획득된 비트스트림이고 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되도록 허용되지 않는 것으로 결정될 수도 있다.
제 3 유형: 비트스트림이 라이브러리 픽처 비트스트림 대신 비디오 비트스트림이라고 라이브러리 픽처 플래그가 표시하고, 그리고 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용된다는 것을 라이브러리 픽처 참조 플래그가 표시하면, 비디오 비트스트림이 비디오 내 픽처 시퀀스를 인코딩하여 획득된 비트스트림이고 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되도록 허용되는 것으로 결정될 수도 있다.
획득된 비트스트림이 라이브러리 픽처 비트스트림인지 여부가 결정되지 않으면, 비트스트림이 라이브러리 픽처 비트스트림을 참조하도록 허용되지 않는 비트스트림 및 라이브러리 픽처 비트스트림을 참조하는 비트스트림이라는 것만이 결정될 수 있음을 알 수 있다. 라이브러리 픽처 비트스트림을 참조하도록 허용되지 않는 비트스트림은 실제로 비트스트림들의 제 1 유형 및 제 2 유형을 포함한다. 따라서, 비디오 비트스트림이 라이브러리 픽처 비트스트림인지 여부를 결정하는 것은 획득된 비디오 비트스트림을 더 정확하게 식별하는 것을 돕는다. 다시 말해서, 제 1 유형 및 제 2 유형이 추가로 식별된다.
라이브러리 픽처 플래그가 또한 수치 값을 통해, 비디오 비트스트림이 라이브러리 픽처 비트스트림인지 여부를 표시할 수도 있다는 점에 유의해야 한다. 세부 사항들이 위에서 제공되었으며, 다시 본원에서 설명되지 않는다.
단계 702: 제 1 플래그의 값이 제 1 값일 때, 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값을 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 이용한다.
비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되고, 그리고 비디오 비트스트림의 제 1 플래그가 제 1 값인 것으로 결정된 후, 비디오 비트스트림의 (디코딩 능력 정보를 포함할 수도 있는) 목표 파라미터의 값이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 (디코딩 능력 정보를 포함할 수도 있는) 목표 파라미터로서 사용된다. 목표 파라미터는 디코딩 능력 정보를 포함한다. 디코딩 능력 정보는 비트스트림을 디코딩하는데 요구되는 디코딩 능력을 표시하는데 사용된다. 디코딩 능력이 디코딩 능력 정보에 의해 표시되는 디코딩 능력보다 더 낮은 디코더는 비트스트림을 디코딩하기 위해, 디코딩 능력 정보에 기초하여 호출된다. 따라서, 라이브러리 픽처 비트스트림의 디코딩 능력 정보가 비디오 비트스트림의 디코더의 디코딩 능력이 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 만족하는지 여부를 결정하기 위해, 비디오 비트스트림으로부터 획득된다. 라이브러리 픽처 비트스트림은 결정 결과에 기초하여 디코딩된다. 선택적으로, 디코딩 능력 정보는 비트스트림의 최대 비트 레이트 및 비트스트림을 디코딩하는데 요구되는 디코딩된 픽처 버퍼의 최소 사이즈와 같은 정보를 포함하지만 이에 한정되지 않는다.
구체적으로 설명하면, 라이브러리 픽처 비트스트림의 디코딩 능력 정보는 단계 701 또는 단계 702에서 비디오 비트스트림으로부터 획득될 수도 있지만 이 실시형태에서는 다음 5개의 방식들에 한정되지 않는다.
제 1 획득 방식에서, 라이브러리 픽처 비트스트림의 디코딩 능력 정보는 비디오 비트스트림의 비디오 파라미터 세트(video parameters set, VPS)로부터 파싱된다.
파싱 방식은 HEVC 또는 다용도 비디오 코딩(versatile video coding, VVC) 표준을 이용하여 비디오 비트스트림에 적용될 수도 있다. 도 8a를 참조한다. HEVC 또는 VVC를 이용하여 인코딩된 비디오 비트스트림은 비디오 파라미터 세트(video parameters set, VPS), 시퀀스 파라미터 세트(sequence parameters set, SPS), 및 비디오를 구성하는 픽처 시퀀스를 인코딩하여 획득된 슬라이스-관련된 데이터를 포함한다. 슬라이스-관련된 데이터는 슬라이스 헤더 및 슬라이스 데이터를 포함한다. 라이브러리 픽처 비트스트림의 디코딩 능력 정보는 비디오 비트스트림의 VPS에 위치된다. VPS의 신택스 테이블에 대해서는, 테이블 1을 참조한다.
테이블 1
Figure pct00004
vps_library_picture_enable_flag는 라이브러리 픽처 참조 플래그의 일 예이다. 그 값이 제 1 값일(예를 들어, 1일 수도 있을) 때, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되지 않거나 또는 요구되지 않는다는 것을 표시한다. 그 값이 제 2 값일(예를 들어, 0일 수도 있을) 때, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되지 않는다는 것을 표시하거나, 또는 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 반드시 허용되지 않거나 또는 요구되지는 않는다는 것을 표시한다.
vps_library_same_standard_flag는 동일한 표준 플래그의 일 예이다. 그 값이 제 1 값일(예를 들어, 1일 수도 있을) 때, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림이 동일한 표준을 이용한다는 것을 표시한다. 그 값이 제 2 값일(예를 들어, 0일 수도 있을) 때, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림이 상이한 표준들을 이용한다는 것을 표시하거나, 또는 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림이 동일한 표준을 이용하지는 않거나 또는 이용하도록 요구되지 않는다는 것을 표시한다.
profile_tier_level은 라이브러리 픽처 비트스트림의 디코딩 능력 정보의 일 예이다.
대응하여, 디코더는 다음 방식으로 파싱을 수행한다:
(1) vps_library_picture_enable_flag를 파싱하여, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용(또는, 요구)되는지 여부를 결정한다.
(2) 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용(또는, 요구)되면, vps_library_same_standard_flag를 파싱하여 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되거나 또는 참조되도록 허용된 라이브러리 픽처 비트스트림이 동일한 표준을 이용하는지 여부를 결정한다.
(3) 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되도록 허용 또는 요구되는 라이브러리 픽처 비트스트림이 동일한 표준을 이용하면, 라이브러리 픽처 비트스트림의 것이고 profile_tier_level에 포함되는 디코딩 능력 정보를 파싱한다.
이 실시형태에서, 라이브러리 픽처 비트스트림의 디코딩 능력 정보가 VPS내 profile_tier_level을 이용하여 설명됨을 함을 알 수 있다. 게다가, 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 포함하는 profile_tier_level은 비디오 비트스트림의 디코딩 능력 정보의 profile_tier_level과 독립적일 수도 있거나, 또는 비디오 비트스트림의 디코딩 능력 정보의 profile_tier_level에 기초하여 추가로 확장될 수도 있다. 게다가, 라이브러리 픽처 플래그는 라이브러리 픽처 플래그가 위치되는 비트스트림이 라이브러리 픽처 비트스트림인지 여부를 표시하기 위해 신택스 테이블에 추가로 추가될 수도 있다.
옵션적인 단계에서, 현재의 비트스트림의 디코더의 디코딩 능력이 라이브러리 픽처 비트스트림에 의해 요구되는 디코딩 능력 정보의 요건을 만족할 때, 현재의 비트스트림의 디코더는 라이브러리 픽처 비트스트림을 디코딩하는데 추가로 사용될 수도 있다.
현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림(즉, 라이브러리 픽처 비트스트림)이 이 표준을 따르지 않거나 또는 현재의 비트스트림의 디코더의 디코딩 능력이 라이브러리 픽처 비트스트림에 의해 요구되는 디코딩 능력 정보의 요건을 만족하지 않을 때, 옵션적인 단계에서, 디코더는 시스템이 대응하는 디코더를 호출하여 라이브러리 픽처 비트스트림을 디코딩할 수 있도록, 라이브러리 픽처 비트스트림이 따르는 표준에 관한 정보를 출력한다.
인코더는 다음과 같이 인코딩을 수행한다:
(1) 현재의 인코딩될 픽처를 획득한다.
(2) 현재의 인코딩될 픽처가 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 인코딩되도록 허용(또는, 요구)되는지 여부에 기초하여, 라이브러리 픽처 참조 플래그의 값(예를 들어, vps_library_picture_enable_flag일 수도 있음)을 결정한다.
인코딩-측 방법은 현재의 인코딩될 픽처가 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 인코딩되도록 허용(또는, 요구)되는지 여부를 결정하는 단계를 더 포함할 수도 있다. 구체적으로 설명하면, 이는 레이트-왜곡 비용 또는 인코딩 효율 또는 인코딩 성능을 측정하는 다른 표시자에 기초하여 결정될 수도 있다.
(3) 현재의 인코딩될 픽처가 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 인코딩되도록 허용(또는, 요구)되면, 현재의 인코딩될 픽처를 인코딩하여 인코딩된 데이터를 획득한다. 참조된 라이브러리 픽처 비트스트림 및 인코딩된 데이터가 동일한 표준을 이용하는지 여부에 기초하여, (예를 들어, vps_library_same_standard_flag일 수도 있는) 동일한 표준 플래그의 값을 결정한다.
(4) 참조된 라이브러리 픽처 비트스트림 및 인코딩 후에 획득된 인코딩된 데이터가 동일한 표준을 이용하면, 라이브러리 픽처 비트스트림의 디코딩 능력 정보(예를 들어, profile_tier_level일 수도 있음) 및 라이브러리 픽처 참조 플래그(예를 들어, vps_library_picture_enable_flag일 수도 있음)을 인코딩된 데이터에 추가하여, 비디오 비트스트림을 획득한다. 예를 들어, profile_tier_level이 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 표시하는데 사용되며, profile_tier_level은 인코딩된 데이터의 VPS에 위치된다.
인코딩된 데이터가 비디오를 구성하는 픽처 시퀀스를 인코딩하여 획득된 데이터이고 인코딩된 데이터가 비디오 파라미터 세트 VPS, SPS, 및 슬라이스-관련된 데이터를 포함한다는 점에 유의해야 한다. profile_tier_level을 인코딩된 데이터에 추가 방식은 다음과 같을 수도 있다: 라이브러리 픽처 비트스트림의 디코딩 능력 정보에 기초하여, 인코딩된 데이터 내 제 1 profile_tier_level을 업데이트하여, 업데이트된 profile_tier_level을 획득하고, 제 1 profile_tier_level을 업데이트된 profile_tier_level로 오버라이트하여, profile_tier_level을 추가한다. 대안적으로, 추가 방식은 다음과 같을 수도 있다: 제 2 profile_tier_level을 라이브러리 픽처 비트스트림의 디코딩 능력 정보에 기초하여 결정하고, 제 2 profile_tier_level을 인코딩된 데이터에 추가한다. 다시 말해서, profile_tier_level을 추가하기 위해, 인코딩된 데이터 내 제 1 profile_tier_level 및 제 2 profile_tier_level 양자가 있다.
제 2 획득 방식에서, 라이브러리 픽처 비트스트림의 디코딩 능력 정보는 비디오 비트스트림의 SPS로부터 파싱된다.
파싱 방식은 또한 HEVC 또는 VVC 표준을 이용하여 비디오 비트스트림에 적용될 수도 있지만, 라이브러리 픽처 비트스트림의 디코딩 능력 정보는 비디오 비트스트림의 SPS에 위치된다. 이 경우, SPS의 신택스 테이블은 테이블 2에 나타낸다:
테이블 2
Figure pct00005
sps_library_picture_enable_flag는 라이브러리 픽처 참조 플래그의 일 예이다. 그 값이 제 1 값일(예를 들어, 1일 수도 있을) 때, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되지 않거나 또는 요구되지 않는다는 것을 표시한다. 그 값이 제 2 값일(예를 들어, 0일 수도 있을) 때, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되지 않거나 또는 요구되지 않는다는 것을 표시하거나, 또는 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 반드시 허용되지 않거나 또는 요구되지는 않는다는 것을 표시한다.
sps_library_same_standard_flag는 동일한 표준 플래그의 일 예이다. 그 값이 제 1 값일(예를 들어, 1일 수도 있을) 때, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림이 동일한 표준을 이용한다는 것을 표시한다. 그 값이 제 2 값일(예를 들어, 0일 수도 있을) 때, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림이 상이한 표준들을 이용한다는 것을 표시하거나, 또는 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림이 동일한 표준을 이용하지는 않거나 또는 이용하도록 요구되지 않는다는 것을 표시한다.
profile_tier_level은 라이브러리 픽처 비트스트림의 디코딩 능력 정보의 일 예이다.
대응하여, 디코더는 다음 방식으로 파싱을 수행한다:
(1) sps_library_picture_enable_flag를 파싱하여, 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용(또는, 요구)되는지 여부를 결정한다.
(2) 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용(또는, 요구)되면, sps_library_same_standard_flag를 파싱하여, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되거나 또는 참조되도록 허용된 라이브러리 픽처 비트스트림이 동일한 표준을 이용하는지 여부를 결정한다.
(3) 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되도록 허용 또는 요구되는 라이브러리 픽처 비트스트림이 동일한 표준을 이용하면, 라이브러리 픽처 비트스트림의 것이며 profile_tier_level에 포함되는 디코딩 능력 정보를 파싱한다.
이 실시형태에서, 라이브러리 픽처 비트스트림의 디코딩 능력 정보가 SPS 내 profile_tier_level을 이용하여 설명됨을 알 수 있다. 게다가, 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 포함하는 profile_tier_level은 비디오 비트스트림의 디코딩 능력 정보의 profile_tier_level과 독립적일 수도 있거나, 또는 비디오 비트스트림의 디코딩 능력 정보의 profile_tier_level에 기초하여 추가로 확장될 수도 있다. 게다가, 라이브러리 픽처 플래그는 라이브러리 픽처 플래그가 위치되는 비트스트림이 라이브러리 픽처 비트스트림인지 여부를 표시하기 위해 신택스 테이블에 추가로 추가될 수도 있다.
옵션적인 단계에서, 현재의 비트스트림의 디코더의 디코딩 능력이 라이브러리 픽처 비트스트림에 의해 요구되는 디코딩 능력 정보의 요건을 만족할 때, 현재의 비트스트림의 디코더는 라이브러리 픽처 비트스트림을 디코딩하는데 추가로 사용될 수도 있다.
현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림(즉, 라이브러리 픽처 비트스트림)이 이 표준을 따르지 않거나 또는 현재의 비트스트림의 디코더의 디코딩 능력이 라이브러리 픽처 비트스트림에 의해 요구되는 디코딩 능력 정보의 요건을 만족하지 않을 때, 옵션적인 단계에서, 디코더는, 시스템이 대응하는 디코더를 호출하여 라이브러리 픽처 비트스트림을 디코딩할 수 있도록, 라이브러리 픽처 비트스트림이 따르는 표준에 관한 정보를 출력한다.
인코더는 다음과 같이 인코딩을 수행한다:
(1) 현재의 인코딩될 픽처를 획득한다.
(2) 현재의 인코딩될 픽처가 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 인코딩되도록 허용(또는, 요구)되는지 여부에 기초하여, 라이브러리 픽처 참조 플래그의 값(예를 들어, sps_library_picture_enable_flag일 수도 있음)을 결정한다.
인코딩-측 방법은 현재의 인코딩될 픽처가 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 인코딩되도록 허용(또는, 요구)되는지 여부를 결정하는 단계를 더 포함할 수도 있다. 구체적으로 설명하면, 이는 레이트-왜곡 비용 또는 인코딩 효율 또는 인코딩 성능을 측정하는 다른 표시자에 기초하여 결정될 수도 있다.
(3) 현재의 인코딩될 픽처가 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 인코딩되도록 허용(또는, 요구)되면, 현재의 인코딩될 픽처를 인코딩하여 인코딩된 데이터를 획득한다. 참조된 라이브러리 픽처 비트스트림 및 인코딩된 데이터가 동일한 표준을 이용하는지 여부에 기초하여, 동일한 표준 플래그(예를 들어, sps_library_same_standard_flag일 수도 있음)의 값을 결정한다.
(4) 참조된 라이브러리 픽처 비트스트림 및 인코딩 후에 획득된 인코딩된 데이터가 동일한 표준을 이용하면, 라이브러리 픽처 비트스트림 및 라이브러리 픽처 참조 플래그(예를 들어, sps_library_picture_enable_flag일 수도 있음)의 디코딩 능력 정보(예를 들어, profile_tier_level일 수도 있음)를 인코딩된 데이터에 추가하여, 비디오 비트스트림을 획득한다. 예를 들어, profile_tier_level이 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 표시하는데 사용되며, profile_tier_level은 인코딩된 데이터의 SPS에 위치된다.
추가 방식은 제 1 획득 방식에서 설명되었다. 따라서, 세부 사항은 본원에서 다시 설명되지 않는다.
제 1 파싱 방식 또는 제 2 파싱 방식에서의 profile_tier_level의 일 예에서, profile_tier_level은 profile_tier_level이 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 기술할 뿐만 아니라, 디코딩을 위해 비디오 비트스트림에 의해 참조되도록 허용 또는 요구되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 기술할 수 있도록, 비디오 비트스트림의 디코딩 능력 정보의 구조를 확장하는데 사용될 수도 있다. profile_tier_level의 신택스 테이블이 테이블 3에 나타나 있다:
테이블 3
Figure pct00006
Figure pct00007
테이블 3 내 스테이트먼트들의 의미들은 다음과 같다:
library_picture_enable_flag는 라이브러리 픽처 참조 플래그의 일 예이며, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용(또는, 요구)되는지 여부를 표시하는데 사용된다. library_picture_enable_flag의 기능이 제 1 파싱 방식에서의 vps_library_picture_enable_flag의 기능 및 제 2 파싱 방식에서의 sps_library_picture_enable_flag의 기능과 동일함을 알 수 있다. 그 값이 제 2 값일(예를 들어, 0일 수도 있을) 때, 현재의 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되지 않는다는 것을 표시하거나, 또는 현재의 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 반드시 허용되지 않거나 또는 요구되지 않는다는 것을 표시한다.
library_same_standard_flag는 제 1 플래그의 일 예이며, 즉, 동일한 표준 플래그의 일 예이며, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림이 동일한 표준을 이용하는지 여부, 및 비디오 비트스트림이 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 운반하는지 여부를 표시하는데 사용된다.
library_level_present_flag: profile_tier_level이 라이브러리 픽처 비트스트림의 레벨을 포함하는지 여부를 표시하는데 사용됨. 레벨은 라이브러리 픽처 비트스트림의 관련된 파라미터들, 예를 들어, 샘플링 레이트 및 해상도를 표시하는데 사용된다. 그 값이 제 1 값일(예를 들어, 1일 수도 있을) 때, profile_tier_level이 라이브러리 픽처 비트스트림의 레벨을 포함한다는 것을 표시한다. 그 값이 제 2 값일(예를 들어, 0일 수도 있을) 때, profile_tier_level이 라이브러리 픽처 비트스트림의 레벨을 포함하지 않는다는 것을 표시하거나, 또는 profile_tier_level이 라이브러리 픽처 비트스트림의 레벨을 반드시 포함하지 않거나 또는 요구되지 않는다는 것을 표시한다.
library_profile_space: library_profile_idc 및 library_profile_compatibility_flag[j]의 정의들을 표시하는데 사용됨. 비디오 비트스트림 및 라이브러리 픽처 비트스트림이 동일한 표준을 이용할 때, library_profile_space의 값이 0이어야 한다는 점에 유의해야 한다.
library_tier_flag: library_profile_idc의 정의를 표시함.
library_profile_idc: library_profile_space의 값이 0일 때 비디오 비트스트림의 프로파일을 표시하는데 사용됨. 다시 말해서, 프로파일은 라이브러리 픽처 비트스트림이 속하는 클래스이다. 프로파일은 비디오 비트스트림에 의해 이용되는 알고리즘과 같은, 정보를 표시한다. library_profile_idc에 의해 표시되는 프로파일은 library_profile_idc의 값에 따라 변한다.
library_profile_compatibility_flag[j]: library_profile_space의 값이 0이면, library_profile_compatibility_flag[j]의 값은 1이어야 하며, 비디오 비트스트림이 library_profile_idc에 의해 표시되는 프로파일을 만족한다는 것을 표시한다.
library_progressive_source_flag 및 library_interlaced_source_flag: 비디오 비트스트림 내 픽처 소스의 스캔 유형을 표시하는데 사용됨. library_progressive_source_flag가 1이고 library_interlaced_source_flag가 0일 때, 픽처 소스의 스캔 유형은 프로그레시브 스캐닝(프로그레시브)이다. library_progressive_source_flag가 0이고 library_interlaced_source_flag가 1일 때, 픽처 소스의 스캔 유형이 인터레이스 스캐닝(인터레이스)임을 표시한다. library_progressive_source_flag 및 library_interlaced_source_flag 양자가 0일 때, 픽처 소스의 스캔 유형이 미지임을 표시한다. library_progressive_source_flag 및 library_interlaced_source_flag 양자가 1일 때, 픽처 소스의 스캔 유형이 다른 스테이트먼트에 의해 정의된다는 것을 표시한다. 예를 들어, source_scan_type는 픽처 소스의 스캔 유형을 정의하는데 사용될 수도 있다.
library_non_packed_constraint_flag: 비디오 비트스트림에 프레임-레벨 패키징 및 프레임-레벨 파티셔닝 직사각형에 대해 추가적인 향상 정보가 설정되었는지 여부를 표시하는데 사용됨. 값이 1일 때, 비디오 비트스트림에 프레임-레벨 패키징 및 프레임-레벨 파티셔닝 직사각형에 대해 어떤 추가적인 향상 정보도 설정되지 않는다는 것을 표시한다. 값이 0일 때, 비디오 비트스트림에 프레임-레벨 패키징 또는 프레임-레벨 파티셔닝 직사각형에 대해 추가적인 향상 정보가 설정된다는 것을 표시한다.
library_frame_only_constraint_flag: 비디오 비트스트림이 필드 픽처를 포함하는지 여부를 표시하는데 사용됨. 값이 1일 때, 비디오 비트스트림이 필드 픽처를 포함하지 않는다는 것을 표시한다. 값이 0일 때, 비디오 비트스트림이 필드 픽처를 포함할 수도 있다는 것을 표시한다.
또, profilePresentFlag가 1일 때, library_profile_idc의 값 범위는 4 내지 7이 아니다. j의 값 범위가 4 내지 7이면, library_profile_compatibility_flag[ j ]는 비디오 비트스트림의 프로파일이 library_profile_idc에 의해 표시되는 프로파일을 만족하지 않는다는 것을 표시하기 위해, 1이 아니다. 이 경우, library_max_12bit_constraint_flag, library_max_10bit_constraint_flag, library_max_8bit_constraint_flag, library_max_422chroma_constraint_flag, library_max_420chroma_constraint_flag, library_max_monochrome_constraint_flag, library_intra_constraint_flag, library_one_picture_only_constraint, 및 library_lower_bit_rate_constraint_flag의 값들은 모두 0이다.
library_reserved_zero_43bits의 값은, 비디오 비트스트림 및 라이브러리 픽처 비트스트림이 동일한 표준을 이용하면, 0이다.
library_inbld_flag는 독립적인 비-하부-계층 디코딩 능력이 profile_tier_level이 적용되는 계층을 디코딩하여야 하는지 여부를 표시하는데 사용된다. profilePresentFlag의 값이 1일 때, library_profile_idc의 값 범위는 1 내지 5이 아니다. j의 값 범위가 1 내지 5이면, library_profile_compatibility_flag[ j ]는, 비디오 비트스트림의 프로파일이 library_profile_idc에 의해 표시되는 프로파일을 만족하지 않는다는 것을 표시하기 위해, 1이 아니다. library_inbld_flag의 값은 0이다. 이 경우, library_inbld_flag는 독립적인 비-하부-계층 디코딩 능력이 profile_tier_level이 적용되는 계층을 디코딩할 필요가 없다는 것을 표시한다. 독립적인 비-하위-계층 디코딩 능력은 비-하부-계층 비트스트림에 대해 독립적인 디코딩을 수행하는 능력을 지칭한다.
library_reserved_zero_bit: 비디오 비트스트림 및 라이브러리 픽처 비트스트림이 동일한 표준을 이용하면, library_reserved_zero_43bits의 값은 0이다.
library_level_idc: 비디오 비트스트림의 레벨을 표시하는데 사용됨. library_level_idc에 의해 표시되는 레벨이 library_level_idc의 값에 기초하여 변한다.
library_picture_enable_flag를 이용하여, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되는 것으로 결정되면, 그리고 library_same_standard_flag를 이용하여, 비디오 비트스트림 및 라이브러리 픽처 비트스트림이 동일한 표준을 이용하는 것으로 결정되면, 라이브러리 픽처 비트스트림의 디코딩 능력 정보가 테이블 3을 이용하여 획득된다: 라이브러리 픽처 비트스트림의 디코딩 능력 정보는 테이블 3의 library_level_present_flag 및 테이블 3의 library_level_present_flag 아래의 신택스 엘리먼트들을 파싱함으로써 획득될 수도 있다. 이에 따라, 인코더는 라이브러리 픽처 비트스트림에 기초하여 profile_tier_level 내 신택스 엘리먼트들의 값들을 결정하여, 라이브러리 픽처 비트스트림의, profile_tier_level에 의해 설명되는, 디코딩 능력 정보를 획득한다.
제 3 획득 방식에서, 프로파일 플래그는 비디오 비트스트림으로부터 파싱되며, 프로파일 플래그는 라이브러리 픽처 비트스트림이 속하는 프로파일을 표시하는데 사용된다. 레벨 플래그는 비디오 비트스트림으로부터 파싱되며, 레벨 플래그는 라이브러리 픽처 비트스트림이 속하는 레벨을 표시하는데 사용된다. 프로파일 플래그 및 레벨 플래그에 의해 표시되는 디코딩 능력 정보가 라이브러리 픽처 비트스트림의 디코딩 능력 정보로서 사용된다.
비디오 비트스트림의 디코딩 능력 정보는 비디오 비트스트림의 시퀀스 헤더에 위치되며, 비디오 비트스트림의 디코딩 능력 정보는 프로파일 플래그 및 레벨 플래그를 포함한다. 게다가, 비디오 비트스트림의 디코딩 능력 정보는 비디오 비트스트림의 최대 비트 레이트 및 비트스트림을 디코딩하는데 요구되는 디코딩된 픽처 버퍼의 최소 사이즈와 같은 정보를 포함하지만 이에 한정되지 않는다. 프로파일 플래그 및 레벨 플래그는 비디오 비트스트림의 최대 비트 레이트 및 비트스트림을 디코딩하는데 요구되는 디코딩된 이미지 버퍼의 최소 사이즈와 같은 정보에 기초하여 결정될 수도 있다. 파싱 방식은 AVS3 표준을 이용하여 비디오 비트스트림에 적용될 수도 있다. 도 8b를 참조한다. 비디오 비트스트림은 비디오를 구성하는 픽처 시퀀스를 인코딩하여 획득된 시퀀스 헤더(sequence header) 및 픽처-관련 데이터를 포함한다. 픽처-관련 데이터는 픽처 헤더 및 픽처 데이터를 포함한다. 비디오 비트스트림의 시퀀스 헤더 내 프로파일 플래그 및 레벨 플래그는 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 표시하는데 사용된다. 비디오 비트스트림의 시퀀스 헤더의 신택스 테이블에 대해서는, 다음 테이블 4를 참조한다:
테이블 4
Figure pct00008
library_picture_enable_flag는 라이브러리 픽처 참조 플래그의 일 예이다. 그 값이 제 1 값일(예를 들어, 1일 수도 있을) 때, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되지 않거나 또는 요구되지 않는다는 것을 표시한다. 그 값이 제 2 값일(예를 들어, 0일 수도 있을) 때, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되지 않는다는 것을 표시하거나, 또는 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 반드시 허용되지 않거나 또는 요구되지는 않는다는 것을 표시한다.
library_same_standard_flag는 동일한 표준 플래그의 일 예이다. 그 값이 제 1 값일(예를 들어, 1일 수도 있을) 때, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림이 동일한 표준을 이용한다는 것을 표시한다. 그 값이 제 2 값일(예를 들어, 0일 수도 있을) 때, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림이 상이한 표준들을 이용한다는 것을 표시하거나, 또는 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림이 동일한 표준을 이용하지는 않거나 또는 이용하도록 요구되지 않는다는 것을 표시한다.
profile_id_library는 프로파일 플래그의 일 예이며, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림이 속하는 프로파일을 표시하는데 사용된다.
level_id_library는 레벨 플래그의 일 예이며, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림이 속하는 레벨을 표시하는데 사용된다.
대응하여, 디코더는 다음 방식으로 파싱을 수행한다:
(1) library_picture_enable_flag를 파싱하여, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용(또는, 요구)되는지 여부를 결정한다.
(2) 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되거나 또는 요구되면, library_same_standard_flag를 파싱하여, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되도록 허용 또는 요구되는 라이브러리 픽처 비트스트림이 동일한 표준을 이용하는지 여부를 결정한다.
(3) 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되도록 허용 또는 요구되는 라이브러리 픽처 비트스트림이 동일한 표준을 이용하면, 라이브러리 픽처 비트스트림의 것이며 profile_id_library 및 level_id_library에 포함되는 디코딩 능력 정보를 추가로 파싱한다.
인코더는 다음과 같이 인코딩을 수행한다:
(1) 현재의 인코딩될 픽처를 획득한다.
(2) 현재의 인코딩될 픽처가 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 인코딩되도록 허용(또는, 요구)되는지 여부에 기초하여, 라이브러리 픽처 참조 플래그의 값(예를 들어, library_picture_enable_flag일 수도 있음)을 결정한다.
인코딩-측 방법은 현재의 인코딩될 픽처가 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 인코딩되도록 허용(또는, 요구)되는지 여부를 결정하는 단계를 더 포함할 수도 있다. 구체적으로 설명하면, 이는 레이트-왜곡 비용 또는 인코딩 효율 또는 인코딩 성능을 측정하는 다른 표시자에 기초하여 결정될 수도 있다.
(3) 현재의 인코딩될 픽처가 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 인코딩되도록 허용(또는, 요구)되면, 현재의 인코딩될 픽처를 인코딩하여, 인코딩된 데이터를 획득한다. 참조된 라이브러리 픽처 비트스트림 및 인코딩된 데이터가 동일한 표준을 이용하는지 여부에 기초하여, 동일한 표준 플래그(예를 들어, library_same_standard_flag일 수도 있음)의 값을 결정한다.
(4) 참조된 라이브러리 픽처 비트스트림 및 인코딩된 데이터가 동일한 표준을 이용하면, 라이브러리 픽처 참조 플래그, 동일한 표준 플래그, 및 프로파일 플래그 및 레벨 플래그(예를 들어, profile_id_library 및 level_id_library일 수도 있음)를 인코딩된 데이터에 추가한다. 프로파일 플래그 및 레벨 플래그는 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 표시하는데 사용된다. 프로파일 플래그는 라이브러리 픽처 비트스트림이 속하는 프로파일을 표시하는데 사용되며, 레벨 플래그는 라이브러리 픽처 비트스트림이 속하는 레벨을 표시하는데 사용된다.
추가 방식은 제 1 획득 방식에서 설명되었다. 따라서, 세부 사항은 본원에서 다시 설명되지 않는다. 게다가, 신택스 테이블은 비디오 비트스트림이 라이브러리 픽처인지 여부를 표시하기 위해, 라이브러리 픽처 플래그를 추가로 포함할 수도 있다.
제 4 획득 방식에서, 제 1 플래그는 비디오 비트스트림의 시퀀스 헤더에 위치되며, 제 1 플래그는 동일한 파라미터 플래그를 포함한다. 라이브러리 픽처 비트스트림의 동일한 파라미터 플래그는 비디오 비트스트림의 시퀀스 헤더로부터 파싱된다. 동일한 파라미터 플래그는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일한지 여부를 표시하는데 사용된다. 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터는 비디오 비트스트림의 디코딩 능력 정보를 포함할 수도 있다. 동일한 파라미터 플래그가 제 1 값일 때, 동일한 파라미터 플래그는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일하다는 것을 표시하는데 사용된다. 동일한 파라미터 플래그가 제 2 값일 때, 동일한 파라미터 플래그는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 상이할 수도 있다는 것을 표시하는데, 또는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 반드시 동일하지 않다는 것을 표시하는데, 또는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 상이하다는 것을 표시하는데 사용된다.
파싱 방식은 또한 AVS3 표준을 이용하여 비디오 비트스트림에 적용될 수도 있지만, 비디오 비트스트림의 시퀀스 헤더 내 파라미터가 라이브러리 픽처 비트스트림의 (디코딩 능력 정보를 포함할 수도 있는) 목표 파라미터를 표시하는데 사용된다. 비디오 비트스트림의 시퀀스 헤더의 신택스 테이블에 대해서는, 테이블 5를 참조한다:
테이블 5
Figure pct00009
is_libiary_stream_flag는 라이브러리 픽처 플래그의 일 예이다. 그 값이 제 1 값일(예를 들어, 1일 수도 있을) 때, 현재의 비트스트림이 라이브러리 픽처 비트스트림이라는 것을 표시한다. 그 값이 제 2 값일(예를 들어, 0일 수도 있을) 때, 현재의 비트스트림이 라이브러리 픽처 비트스트림이 아니라는 것을 표시한다.
library_picture_enable_flag는 라이브러리 픽처 참조 플래그의 일 예이다. 그 값이 제 1 값일(예를 들어, 1일 수도 있을) 때, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되지 않거나 또는 요구되지 않는다는 것을 표시한다. 그 값이 제 2 값일(예를 들어, 0일 수도 있을) 때, 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되지 않는다는 것을 표시하거나, 또는 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 반드시 허용되지 않거나 또는 요구되지는 않는다는 것을 표시한다.
library_stream_using_same_standard_flag는 동일한 파라미터 플래그의 일 예이다. 그 값이 제 1 값일(예를 들어, 1일 수도 있을) 때, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일하다는 것을 표시한다. 그 값이 제 2 값일(예를 들어, 0일 수도 있을) 때, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 상이하다는 것을 표시하거나, 또는 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 반드시 동일하지 않거나 또는 동일하도록 요구되지 않는다는 것을 표시한다. 목표 파라미터는 본 출원에서 한정되지 않는다. 예를 들어, 목표 파라미터는 비디오 비트스트림의 시퀀스 헤더 내 (예를 들어, is_libiary_stream_flag일 수도 있는) 라이브러리 픽처 플래그를 제외한 모든 파라미터들일 수도 있거나, 또는 목표 파라미터는 비디오 비트스트림의 시퀀스 헤더 내 (예를 들어, is_libiary_stream_flag일 수도 있는) 라이브러리 픽처 플래그를 제외한 파라미터들 중 하나 이상일 수도 있다.
대응하여, 디코더는 다음 방식으로 파싱을 수행한다:
(1) 라이브러리 픽처 플래그를 파싱하여, 현재의 비트스트림이 라이브러리 픽처 비트스트림인지 여부를 결정한다.
(2) 현재의 비트스트림이 라이브러리 픽처 비트스트림이 아니면, 라이브러리 픽처 참조 플래그를 파싱하여, 현재의 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되는지 여부를 결정한다.
(3) 현재의 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되면, 동일한 파라미터 플래그를 파싱하여, 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일한지 여부를 결정한다.
이 실시형태에서, 제 1 플래그는 동일한 파라미터 플래그를 포함한다. 동일한 파라미터 플래그는 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일한지 여부를 표시하는데 사용된다. 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터는 비디오 비트스트림의 디코딩 능력 정보를 포함한다. 따라서, 라이브러리 픽처 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일하면, 목표 파라미터가 디코딩 능력 정보를 포함하기 때문에, 라이브러리 픽처 비트스트림의 디코딩 능력 정보가 비디오 비트스트림의 디코딩 능력 정보와 동일하다는 것을 표시한다. 비디오 비트스트림의 디코딩 능력 정보는, 라이브러리 픽처 비트스트림의 디코딩 능력 정보가 비디오 비트스트림으로부터 파싱될 수 있도록, 라이브러리 픽처 비트스트림의 디코딩 능력 정보로서 사용될 수도 있다.
선택적으로, 목표 파라미터는 (예를 들어, is_libiary_stream_flag일 수도 있는) 라이브러리 픽처 플래그 이외의 파라미터일 수도 있거나, 또는 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 시퀀스 헤더 내 모든 파라미터들일 수도 있다. 대안적으로, 목표 파라미터는 라이브러리 픽처 플래그 이외의 파라미터, 또는 비디오 비트스트림의 시퀀스 헤더 내 모든 파라미터들일 수도 있다.
비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 시퀀스 헤더 내 (예를 들어, is_libiary_stream_flag일 수도 있는) 라이브러리 픽처 플래그를 제외한 모든 파라미터 값들이 비디오 비트스트림에서의 대응하는 파라미터 값들과 동일할 때, 옵션적인 단계에서, 비디오 비트스트림의 디코더가 라이브러리 계층 비트스트림을 디코딩하는데 사용된다. 이는 디코더의 디코딩 능력에 대한 요건, 예를 들어, 단위 시간 당 디코딩될 프레임들의 수에 대한 요건을 증가시킨다는 점에 유의해야 한다.
비디오 비트스트림을 제외한 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 시퀀스 헤더 내 모든 파라미터 값들이 비디오 비트스트림에서의 대응하는 파라미터 값들과 상이할 때, 옵션적인 단계에서, 디코더는 시스템이 대응하는 디코더를 호출하여 라이브러리 비트스트림을 디코딩할 수 있도록, 라이브러리 픽처 비트스트림에 관한 정보를 출력한다. 다른 옵션적인 단계에서, 라이브러리 비트스트림에 의해 요구되는 디코딩 능력은 라이브러리 픽처 비트스트림의 시퀀스 헤더 내 파라미터에 기초하여 획득된다. 라이브러리 픽처 비트스트림에 의해 요구되는 디코딩 능력이 비디오 비트스트림에 의해 요구되는 디코딩 능력을 초과하지 않을 때, 비디오 비트스트림의 디코더가 라이브러리 계층 비트스트림을 디코딩하는데 사용된다. 이는 디코더의 디코딩 능력에 대한 요건, 예를 들어, 단위 시간 당 디코딩될 프레임들의 수에 대한 요건을 증가시킨다는 점에 유의해야 한다. 따라서, 라이브러리 픽처 비트스트림에 의해 요구되는 디코딩 능력이 비디오 비트스트림에 의해 요구되는 디코딩 능력을 초과할 때, 옵션적인 단계에서, 디코더는 시스템이 대응하는 디코더를 호출하여 라이브러리 픽처 비트스트림을 디코딩할 수 있도록, 라이브러리 비트스트림을 만족하는 정보를 출력한다. 인코더는 다음과 같이 인코딩을 수행한다:
(1) 현재의 인코딩될 픽처를 획득한다.
(2) 현재의 인코딩될 픽처가 라이브러리 픽처인지 여부에 기초하여 (예를 들어, is_library_stream_flag일 수도 있는) 라이브러리 픽처 플래그의 값을 결정한다. 라이브러리 픽처 플래그의 값이 또한 현재의 인코딩될 픽처에 대응하는 비트스트림이 라이브러리 픽처 비트스트림인지 여부를 결정함으로써 획득될 수도 있는 것으로 이해되어야 한다. 이는 본원에서 제한되지 않는다.
(3) 현재의 인코딩될 픽처가 라이브러리 픽처 대신 비디오 픽처이면, 비디오 픽처가 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 인코딩되도록 허용(또는, 요구)되는지 여부에 기초하여, 라이브러리 픽처 참조 플래그의 값(예를 들어, library_picture_enable_flag일 수도 있음)을 결정한다.
인코딩-측 방법은 현재의 인코딩될 픽처가 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 인코딩되도록 허용(또는, 요구)되는지 여부를 결정하는 단계를 더 포함할 수도 있다. 구체적으로 설명하면, 이는 레이트-왜곡 비용 또는 인코딩 효율 또는 인코딩 성능을 측정하는 다른 표시자에 기초하여 결정될 수도 있다.
(3) 비디오 픽처가 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 인코딩되도록 허용(또는, 요구)되면, 동일한 파라미터 플래그의 값이 라이브러리 픽처 비트스트림의 (디코딩 능력 정보를 포함할 수도 있는) 목표 파라미터의 값에 기초하여 결정되며, 비디오 픽처가 인코딩된 데이터를 획득하기 위해 인코딩된다. 라이브러리 픽처 플래그, 라이브러리 픽처 참조 플래그, 및 동일한 파라미터 플래그가 비디오 비트스트림을 획득하기 위해, 인코딩된 데이터에 추가된다. 동일한 파라미터 플래그는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 인코딩된 데이터의 시퀀스 헤더 내 목표 파라미터의 값과 동일한지 여부를 표시하는데 사용된다. 예를 들어, 라이브러리 픽처 비트스트림의 목표 파라미터는 라이브러리 픽처 비트스트림의 시퀀스 헤더에 위치될 수도 있다. 동일한 파라미터 플래그는 라이브러리 픽처 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값이 인코딩된 데이터의 시퀀스 헤더 내 목표 파라미터의 값과 동일한지 여부를 표시하는데 사용된다.
어느 방식이 사용되는지에 관계없이, 라이브러리 픽처 비트스트림의 디코딩 능력 정보는 비디오 비트스트림으로부터 획득되며, 비디오 비트스트림의 디코딩은 획득된 라이브러리 픽처 비트스트림의 디코딩 능력 정보에 기초하여 트리거될 수도 있다.
단계 703: 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 기초하여 복원하여, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득한다.
선택적으로, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하기 위해 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 (디코딩 능력 정보를 포함할 수도 있는) 목표 파라미터의 값에 기초하여 복원하는 단계는, 사용될 디코더의 디코딩 능력이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보에 의해 표시되는 요건을 만족하는지 여부를 결정하는 단계; 및 사용될 디코더의 디코딩 능력이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보에 의해 표시되는 요건을 만족할 때, 비디오 비트스트림에 의해 참조되는 대응하는 라이브러리 픽처를 획득하기 위해, 사용될 디코더를 이용하여, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림을 파싱하는 단계를 포함한다.
예를 들어, 비디오 비트스트림의 디코더의 디코딩 능력이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보의 요건을 만족하면, 비디오 비트스트림의 디코더는 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림을 예측하여, 라이브러리 픽처를 획득하거나, 또는 비디오 비트스트림의 디코더와 동일한 커널 또는 알고리즘을 호출하는 디코더는 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림을 예측하여, 라이브러리 픽처를 획득한다. 그 후, 비디오 비트스트림이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처에 기초하여 디코딩된다. 구체적으로, 비디오 비트스트림에 대응하는 비디오 픽처는 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처에 기초한 복원을 통해서 획득된다.
전술한 설명들에 따르면, 비디오 비트스트림의 디코더의 디코딩 능력이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 만족하는지 여부가 결정될 수 있고 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림이 결정 결과에 기초하여 디코딩될 수 있도록, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보가 비디오 비트스트림으로부터 파싱된다는 것을 알 수 있다. 비디오 비트스트림의 디코더의 디코딩 능력이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보의 요건을 만족하면, 비디오 비트스트림의 디코더는 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 예측하고 그리고 라이브러리 픽처 및 비디오 비트스트림에 기초하여 비디오 비트스트림에 대응하는 비디오 픽처를 복원하여, 비디오 비트스트림의 디코딩을 완료하는데 사용될 수도 있다.
선택적으로, 비디오 비트스트림의 디코더의 디코딩 능력은 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보의 요건을 만족하지 않는다. 이 실시형태에서, 비디오 비트스트림의 디코더는, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보의 요건을 만족하는 디코더를 호출하여 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림을 디코딩하기 위해, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 출력한다.
관련 기술에서, 라이브러리 픽처 비트스트림 및 비디오 비트스트림을 별도로 디코딩하기 위해 2개의 디코더들이 호출되어야 한다. 그 이유는, 비디오 비트스트림을 파싱할 때, 디코더가 단지 비디오 비트스트림의 디코딩 능력 정보를 획득할 수 있고 비디오 비트스트림의 디코딩 능력 정보가 라이브러리 픽처 비트스트림의 디코딩 능력 정보와 반드시 동일하지는 않다는 점에 있다. 비디오 비트스트림을 파싱하는 디코더가 라이브러리 픽처 비트스트림을 디코딩하는데 직접 사용되고 라이브러리 픽처 비트스트림의 디코딩 능력 정보에 의해 요구되는 디코딩 능력이 비디오 비트스트림의 디코딩 능력 정보에 의해 요구되는 디코딩 능력보다 더 높으면, 디코더는 라이브러리 픽처 비트스트림을 디코딩하지 못할 수도 있다. 따라서, 관련 기술에서, 라이브러리 픽처 비트스트림의 디코딩 능력 정보 및 비디오 비트스트림의 디코딩 능력 정보를 별도로 획득하고 라이브러리 픽처 비트스트림 및 비디오 비트스트림을 별도로 디코딩하기 위해 2개의 디코더들이 호출된다.
관련 기술과 비교하여, 이 실시형태에서 제공되는 방법에서, 비디오 비트스트림은 비디오 비트스트림의 디코딩 능력 정보 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보 양자를 운반한다. 따라서, 디코더는 비디오 비트스트림을 파싱함으로써, 비디오 비트스트림의 디코딩 능력 정보 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 획득하여, 디코더가 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보에 의해 요구되는 디코딩 능력을 만족하고, 그리고 비디오 비트스트림의 디코딩 능력 정보에 의해 요구되는 디코딩 능력을 만족하는지 여부를 결정할 수도 있다.
디코더가 이를 만족하면, 디코더는 대안적으로 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림을 디코딩하기 위해, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림 양자를 디코딩하는데 사용될 수도 있다. 예를 들어, 디코더는 라이브러리 픽처 비트스트림의 제 1 세그먼트, 라이브러리 픽처 비트스트림의 제 1 세그먼트를 참조하는 비디오 비트스트림, 라이브러리 픽처 비트스트림의 제 2 세그먼트, 및 라이브러리 픽처 비트스트림의 제 2 세그먼트를 참조하는 비디오 비트스트림을 순차적으로 디코딩한다. 디코더가 이를 만족하지 않으면, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림을 디코딩하기 위해 다른 디코더가 호출된다.
선택적인 구현예에서, 비디오 비트스트림의 디코더의 디코딩 능력이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보의 요건을 만족하면, 비디오 비트스트림의 디코더가 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림을 디코딩하여 라이브러리 픽처를 획득하는 방식에 추가하여, 다른 디코딩 방식이 이 방법에서 선택될 수도 있다: 비디오 비트스트림의 디코더와 동일한 커널 또는 알고리즘을 호출하는 디코더는 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림을 예측하여, 라이브러리 픽처를 획득하고, 라이브러리 픽처 및 비디오 비트스트림에 기초하여 복원하여, 비디오 비트스트림에 대응하는 비디오 픽처를 획득한다.
디코더가 비디오 비트스트림의 디코더와 동일한 커널 또는 알고리즘을 호출하기 때문에, 비디오 비트스트림의 디코더와 동일한 커널 또는 알고리즘을 호출하는 디코더가 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림을 디코딩하는데 사용된다. 이는 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보에 의해 요구되는 디코딩 능력을 만족하며, 비디오 비트스트림의 디코딩 능력 정보에 의해 요구되는 디코딩 능력을 만족한다.
마지막으로, 비디오 비트스트림은 본 출원에서 라이브러리 픽처 비트스트림의 목표 파라미터를 운반하는데 사용된다. 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용될 때, 제 1 플래그는 비디오 비트스트림으로부터 파싱된다. 제 1 플래그가 제 1 값일 때, 비디오 비트스트림의 목표 파라미터의 값은, 라이브러리 픽처가 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 기초한 복원을 통해서 획득되도록, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 사용된다. 또, 비디오 비트스트림에 대응하는 비디오 픽처는 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처에 기초한 복원을 통해서 획득될 수도 있다. 본 출원의 본 실시형태에서 제공되는 해결책에서, 라이브러리 픽처 비트스트림 및 비디오 비트스트림은 파라미터들을 공유한다. 따라서, 디코딩 방식이 비교적 유연하며, 디코딩 효율이 높다.
동일한 아이디어에 기초하여, 본 출원의 일 실시형태는 비디오 인코딩 방법을 추가로 제공한다. 본 방법은 도 1a, 도 1b, 도 2, 도 4, 및 도 5에 나타낸 구현 환경들에 적용될 수도 있다. 도 9를 참조한다. 본 방법은 다음 단계들을 포함한다.
단계 901: 비디오 픽처가 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 인코딩되도록 허용되면, 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 비디오 픽처를 인코딩하여, 인코딩된 데이터를 획득한다.
인코딩-측 방법은 현재의 인코딩될 픽처가 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 인코딩되도록 허용(또는, 요구)되는지 여부를 결정하는 단계를 더 포함할 수도 있다. 구체적으로 설명하면, 이는 레이트-왜곡 비용 또는 인코딩 효율 또는 인코딩 성능을 측정하는 다른 표시자에 기초하여 결정될 수도 있다.
단계 902: 제 1 플래그를 인코딩된 데이터에 추가하여 비디오 비트스트림을 획득하며, 여기서, 제 1 값인 제 1 플래그의 값은 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 사용된다는 것을 표시한다.
선택적으로, 제 1 플래그는 비디오 비트스트림의 시퀀스 헤더에 위치된다.
선택적으로, 제 1 플래그는 동일한 파라미터 플래그를 포함한다. 동일한 파라미터 플래그는 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일한지 여부를 표시하는데 사용된다. 제 1 값인 동일한 파라미터 플래그의 값은 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일하다는 것을 표시한다.
선택적으로, 비디오 비트스트림은 라이브러리 픽처 참조 플래그를 더 포함한다. 라이브러리 픽처 참조 플래그는 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되는지 여부를 표시하는데 사용된다.
선택적으로, 비디오 비트스트림은 라이브러리 픽처 플래그를 더 포함한다. 제 2 값인 라이브러리 픽처 플래그의 값은 비디오 비트스트림이 라이브러리 픽처 비트스트림이 아니다는 것을 표시한다.
선택적으로, 목표 파라미터는 디코딩 능력 정보를 포함한다. 디코딩 능력 정보는 인코딩된 데이터의 비디오 파라미터 세트 VPS에 위치되거나, 인코딩된 데이터의 시퀀스 파라미터 세트 SPS에 위치되거나, 또는 비디오 비트스트림의 시퀀스 헤더에 위치된다.
선택적으로, 목표 파라미터는 디코딩 능력 정보를 포함한다. 디코딩 능력 정보는 프로파일 플래그 및 레벨 플래그를 포함한다. 프로파일 플래그는 라이브러리 픽처 비트스트림이 속하는 프로파일을 표시하는데 사용되며, 레벨 플래그는 라이브러리 픽처 비트스트림이 속하는 레벨을 표시하는데 사용된다.
비디오 인코딩 방법에서, 단계들에 대해, 단계들에서 사용되는 정보 등은, 전술한 비디오 디코딩 방법에서의 관련된 내용을 참조한다. 세부 사항은 본원에서 다시 설명되지 않는다.
마지막으로, 비디오 비트스트림은 본 출원에서 라이브러리 픽처 비트스트림의 목표 파라미터를 운반하는데 사용된다. 따라서, 라이브러리 픽처 비트스트림의 목표 파라미터는 비디오 비트스트림을 파싱함으로써 획득될 수 있다. 디코딩 동안, 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처는 라이브러리 픽처 비트스트림의 목표 파라미터의 값에 기초하여 예측될 수 있으며, 비디오 비트스트림에 대응하는 비디오 픽처는 라이브러리 픽처 및 비디오 비트스트림에 기초한 복원을 통해서 획득된다. 이러한 방법으로, 라이브러리 픽처 비트스트림 및 비디오 비트스트림은 파라미터들을 공유한다. 본 출원을 구현하여 수행되는 디코딩이 비교적 유연하며, 디코딩 효율이 높다.
전술한 방법과 동일한 아이디어에 기초하여, 본 출원의 일 실시형태는 비디오 디코딩 장치를 추가로 제공한다. 비디오 디코딩 장치는 도 1a에 나타낸 목적지 디바이스(14), 도 1b에 나타낸 디코더(30), 도 3에 나타낸 디코더(30), 도 4에 나타낸 비디오 코딩 디바이스(400), 도 5에 나타낸 디코딩 디바이스(500), 또는 도 13에 나타낸 비디오 디코더(3206)에 적용될 수도 있다.
도 10를 참조한다. 본 장치는 파싱 모듈(1001) 및 복원 모듈(1002)을 포함한다. 파싱 모듈(1001) 및 복원 모듈(1002)은 도 1a에 나타낸 목적지 디바이스(14)의 디코더(30), 도 1b에 나타낸 디코더(30), 도 3에 나타낸 디코더(30), 도 4에 나타낸 인코딩/디코딩 모듈(430), 도 5에 나타낸 프로세서(510), 또는 도 13에 나타낸 비디오 디코더(3206)에 적용될 수도 있다.
파싱 모듈(1001)은 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되면, 비디오 비트스트림으로부터 제 1 플래그를 파싱하고; 그리고 제 1 플래그의 값이 제 1 값일 때, 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값을 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 이용하도록 구성된다.
복원 모듈(1002)은 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하기 위해, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 기초하여, 복원하도록 구성된다.
선택적으로, 복원 모듈(1002)은 비디오 비트스트림에 대응하는 비디오 픽처를 획득하기 위해, 비디오 비트스트림 및 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처에 기초하여, 복원하도록 추가로 구성된다.
선택적으로, 제 1 플래그는 비디오 비트스트림의 시퀀스 헤더에 위치된다.
선택적으로, 제 1 플래그는 동일한 파라미터 플래그를 포함한다. 동일한 파라미터 플래그는 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일한지 여부를 표시하는데 사용된다.
제 1 값인 동일한 파라미터 플래그의 값은 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일하다는 것을 표시한다.
선택적으로, 목표 파라미터는 디코딩 능력 정보를 포함한다. 복원 모듈(1002)은 사용될 디코더의 디코딩 능력이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보에 의해 표시되는 요건을 만족하는지 여부를 결정하고; 그리고 사용될 디코더의 디코딩 능력이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보에 의해 표시되는 요건을 만족할 때, 사용될 디코더를 이용하여, 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림을 파싱하고; 그리고 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하기 위해 복원하도록 구성된다.
선택적으로, 파싱 모듈(1001)은 비디오 비트스트림으로부터 라이브러리 픽처 참조 플래그를 파싱하는 것으로서, 여기서 라이브러리 픽처 참조 플래그는 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되는지 여부를 표시하는데 사용되는, 상기 파싱하고; 그리고 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용된다는 것을 라이브러리 픽처 참조 플래그의 값이 표시하면, 비디오 비트스트림으로부터 제 1 플래그를 파싱하도록 구성된다.
선택적으로, 라이브러리 픽처 플래그는 비디오 비트스트림으로부터 파싱된다. 라이브러리 픽처 플래그의 값은 제 2 값이며, 제 2 값인 라이브러리 픽처 플래그는 비디오 비트스트림이 라이브러리 픽처 비트스트림이 아니다는 것을 표시한다.
선택적으로, 파싱 모듈(1001)은 현재의 비트스트림으로부터 라이브러리 픽처 플래그를 획득하고; 그리고, 비디오 비트스트림이 라이브러리 픽처 비트스트림이 아니라는 것을 라이브러리 픽처 플래그의 값이 표시할 때에만 현재의 비트스트림을 비디오 비트스트림으로서 이용하고, 비디오 비트스트림으로부터 라이브러리 픽처 참조 플래그를 파싱하도록 추가로 구성된다.
선택적으로, 목표 파라미터는 디코딩 능력 정보를 포함한다. 파싱 모듈(1001)은 비디오 비트스트림의 비디오 파라미터 세트 VPS로부터 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 파싱하거나; 비디오 비트스트림의 시퀀스 파라미터 세트 SPS로부터 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 파싱하거나; 또는 비디오 비트스트림의 시퀀스 헤더로부터 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 파싱하도록 추가로 구성된다.
선택적으로, 목표 파라미터는 디코딩 능력 정보를 포함한다. 비디오 비트스트림의 디코딩 능력 정보는 프로파일 플래그 및 레벨 플래그를 포함한다. 프로파일 플래그는 비디오 비트스트림이 속하는 프로파일을 표시하는데 사용되며, 레벨 플래그는 비디오 비트스트림이 속하는 레벨을 표시하는데 사용된다. 파싱 모듈은 프로파일 플래그 및 레벨 플래그를 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 디코딩 능력 정보로서 이용하도록 구성된다.
본 출원의 일 실시형태는 비디오 인코딩 장치를 추가로 제공한다. 비디오 인코딩 장치는 도 1a에 나타낸 소스 디바이스(12), 도 1b에 나타낸 비디오 코딩 시스템(40), 도 2에 나타낸 인코더(20), 도 4에 나타낸 비디오 코딩 디바이스(400), 또는 도 5에 나타낸 코딩 디바이스(500)에 적용될 수도 있다. 도 11에 나타낸 바와 같이, 본 장치는 인코딩 모듈(1101) 및 추가 모듈(1102)을 포함한다. 본 장치는 도 1a, 도 1b, 또는 도 2에 나타낸 인코더(20), 또는 도 4에 나타낸 인코딩/디코딩 모듈(430)에 적용될 수도 있다.
인코딩 모듈(1101)은 비디오 픽처가 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 인코딩되도록 허용되면, 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 비디오 픽처를 인코딩하여, 인코딩된 데이터를 획득하도록 구성된다.
추가 모듈(1102)은 비디오 비트스트림을 획득하기 위해 제 1 플래그를 인코딩된 데이터에 추가하도록 구성된다. 제 1 값인 제 1 플래그의 값은 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값이 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 사용된다는 것을 표시한다.
선택적으로, 제 1 플래그는 비디오 비트스트림의 시퀀스 헤더에 위치된다.
선택적으로, 제 1 플래그는 동일한 파라미터 플래그를 포함한다. 동일한 파라미터 플래그는 비디오 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일한지 여부를 표시하는데 사용된다.
제 1 값인 동일한 파라미터 플래그의 값은 라이브러리 픽처 비트스트림의 목표 파라미터의 값이 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값과 동일하다는 것을 표시한다.
선택적으로, 비디오 비트스트림은 라이브러리 픽처 참조 플래그를 더 포함한다. 라이브러리 픽처 참조 플래그는 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되는지 여부를 표시하는데 사용된다.
선택적으로, 비디오 비트스트림은 라이브러리 픽처 플래그를 더 포함한다. 제 2 값인 라이브러리 픽처 플래그의 값은 비디오 비트스트림이 라이브러리 픽처 비트스트림이 아니다는 것을 표시한다.
선택적으로, 목표 파라미터는 디코딩 능력 정보를 포함한다. 디코딩 능력 정보는 인코딩된 데이터의 비디오 파라미터 세트 VPS에 위치되거나, 인코딩된 데이터의 시퀀스 파라미터 세트 SPS에 위치되거나, 또는 비디오 비트스트림의 시퀀스 헤더에 위치된다.
선택적으로, 목표 파라미터는 디코딩 능력 정보를 포함한다. 디코딩 능력 정보는 프로파일 플래그 및 레벨 플래그를 포함한다. 프로파일 플래그는 라이브러리 픽처 비트스트림이 속하는 프로파일을 표시하는데 사용되며, 레벨 플래그는 라이브러리 픽처 비트스트림이 속하는 레벨을 표시하는데 사용된다.
도 10 및 도 11에 나타낸 장치들이 장치들의 기능들을 구현할 때, 전술한 기능 모듈들로의 분할이 단지 설명을 위한 일 예로서 사용되는 것으로 이해되어야 한다. 실제 애플리케이션에서, 전술한 기능들은 요건에 따른 구현을 위해 상이한 기능 모듈들에 할당될 수도 있다. 다시 말해서, 디바이스의 내부 구조는 위에서 설명된 기능들의 모두 또는 일부를 구현하기 위해, 상이한 기능 모듈들로 분할된다. 게다가, 전술한 실시형태들에서 제공되는 장치들 및 방법 실시형태들은 동일한 아이디어에 속한다. 이의 특정의 구현 프로세스에 대해서는, 방법 실시형태들을 참조한다. 세부 사항은 본원에서 다시 설명되지 않는다.
본 출원의 일 실시형태는 추가로 메모리 및 프로세서를 포함하는, 비디오 디코딩 디바이스를 제공한다. 메모리는 적어도 하나의 명령을 저장한다. 적어도 하나의 명령이 본 출원의 실시형태들에서 제공되는 전술한 비디오 디코딩 방법들 중 어느 하나를 구현하기 위해, 프로세서에 의해 로드되어 실행된다. 예를 들어, 프로세서는 도 1a에 나타낸 디코더(30), 도 1b에 나타낸 디코더(30), 도 3에 나타낸 디코더(30), 도 4에 나타낸 프로세서(430), 또는 도 5에 나타낸 프로세서(510)일 수도 있다.
본 출원의 일 실시형태는 메모리 및 프로세서를 포함하는, 비디오 인코딩 디바이스를 추가로 제공한다. 메모리는 적어도 하나의 명령을 저장한다. 적어도 하나의 명령이 본 출원의 실시형태들에서 제공되는 전술한 비디오 인코딩 방법들 중 어느 하나를 구현하기 위해, 프로세서에 의해 로드되어 실행된다. 예를 들어, 프로세서는 도 1a에 나타낸 인코더(20), 도 1b에 나타낸 인코더(20), 도 2에 나타낸 인코더(20), 도 4에 나타낸 프로세서(430), 또는 도 5에 나타낸 프로세서(510)일 수도 있다. 메모리는 도 1b에 나타낸 메모리(44) 또는 도 5에 나타낸 메모리(530)일 수도 있다.
본 출원의 일 실시형태는 컴퓨터 프로그램(제품)을 추가로 제공한다. 컴퓨터 프로그램(제품)은 컴퓨터 프로그램 코드를 포함한다. 컴퓨터 프로그램 코드가 컴퓨터에 의해 실행될 때, 컴퓨터는 전술한 양태들에서의 방법들을 수행할 수도 있다. 예를 들어, 컴퓨터 프로그램(제품)은 도 1a에 나타낸 디코더(30), 도 1b에 나타낸 디코더(30), 도 3에 나타낸 디코더(30), 도 1a에 나타낸 인코더(20), 도 1b에 나타낸 인코더(20), 도 2에 나타낸 인코더(20), 도 4에 나타낸 프로세서(430), 또는 도 5에 나타낸 프로세서(510)에 적용될 수도 있다.
본 출원의 일 실시형태는 판독가능 저장 매체를 추가로 제공한다. 판독가능 저장 매체는 프로그램 또는 명령들을 저장한다. 프로그램 또는 명령들이 컴퓨터 상에 있거나 또는 실행될 때, 전술한 양태들에서의 방법들이 수행된다. 예를 들어, 판독가능 저장 매체는 도 1a에 나타낸 디코더(30), 도 1b에 나타낸 디코더(30), 도 3에 나타낸 디코더(30), 도 1a에 나타낸 인코더(20), 도 1b에 나타낸 인코더(20), 도 2에 나타낸 인코더(20), 도 4에 나타낸 프로세서(430), 또는 도 5에 나타낸 프로세서(510)에 적용될 수도 있다.
본 출원의 일 실시형태는 프로세서를 포함하는 칩을 추가로 제공한다. 프로세서는 칩이 설치된 통신 디바이스로 하여금 전술한 양태들에서의 방법들을 수행하게 하기 위해, 메모리에 저장된 명령들을 호출 및 실행하도록 구성된다. 예를 들어, 칩은 도 1a에 나타낸 소스 디바이스(12)에 적용될 수도 있으며, 프로세서는 도 1a에 나타낸 인코더(20)일 수도 있다. 다른 예로, 칩은 도 1a에 나타낸 목적지 디바이스(14)에 적용될 수도 있으며, 프로세서는 도 1a에 나타낸 디코더(30)일 수도 있다. 다른 예로, 칩은 도 1b에 나타낸 비디오 코딩 시스템(40)에 적용될 수도 있으며, 프로세서는 디코더(30) 또는 도 1b에 나타낸 인코더(20)일 수도 있다. 대안적으로, 프로세서는 도 2에 나타낸 인코더(20) 또는 도 3에 나타낸 디코더(30)일 수도 있다. 다른 예로, 칩은 도 4에 나타낸 비디오 코딩 디바이스(400)에 적용될 수도 있으며, 프로세서는 도 4에 나타낸 프로세서(510)일 수도 있다. 다른 예로, 칩은 도 5에 나타낸 코딩 디바이스(500)에 적용될 수도 있으며, 프로세서는 도 5에 나타낸 프로세서(430)일 수도 있다.
본 출원의 일 실시형태는 입력 인터페이스, 출력 인터페이스, 프로세서, 및 메모리를 포함하는, 다른 칩을 추가로 제공한다. 입력 인터페이스, 출력 인터페이스, 프로세서, 및 메모리는 내부 접속 경로를 통해서 접속된다. 프로세서는 메모리 내 코드를 실행하도록 구성된다. 코드가 실행될 때, 프로세서는 전술한 양태들에서의 방법들을 수행하도록 구성된다. 예를 들어, 칩은 도 1a에 나타낸 소스 디바이스(12)에 적용될 수도 있으며, 출력 인터페이스는 도 1a에 나타낸 통신 인터페이스(22)이며, 프로세서는 도 1a에 나타낸 인코더(20)이다. 다른 예로, 칩은 도 1a에 나타낸 목적지 디바이스(14)에 적용될 수도 있으며, 입력 인터페이스는 도 1a의 통신 인터페이스(28)이며, 프로세서는 도 1a에 나타낸 디코더(30)를 포함한다. 다른 예로, 칩은 도 1b에 나타낸 비디오 코딩 시스템(40)에 적용될 수도 있으며, 프로세서는 도 1b에 나타낸 인코더(20) 또는 디코더(30)이다. 대안적으로, 프로세서는 도 2에 나타낸 인코더(20)일 수도 있거나, 또는 프로세서는 도 3에 나타낸 디코더(30)일 수도 있다. 메모리는 도 1b에 나타낸 메모리(44)이다. 다른 예로, 칩은 도 4에 나타낸 비디오 코딩 디바이스(400)에 적용될 수도 있으며, 프로세서는 도 4의 프로세서(430)이며, 입력 인터페이스는 도 4의 유입 포트(410)이며, 출력 인터페이스는 도 4의 유출 포트(450)이며, 메모리는 도 4의 메모리(460)이다. 다른 예로, 칩은 도 5에 나타낸 코딩 디바이스(500)에 적용될 수도 있으며, 프로세서는 도 5의 프로세서(510)이며, 메모리는 도 5에 나타낸 메모리(530)이다.
다음은 전술한 실시형태들에 나타낸 인코딩 방법 및 디코딩 방법의 적용, 및 인코딩 방법 및 디코딩 방법을 이용하는 시스템을 설명한다.
도 12는 콘텐츠 전달 서비스를 구현하는 콘텐츠 공급 시스템(3100)의 블록도이다. 콘텐츠 공급 시스템(3100)은 캡쳐 디바이스(3102), 터미널 디바이스(3106), 및 선택적으로 디스플레이(3126)를 포함한다. 캡쳐 디바이스(3102)는 통신 링크(3104)를 통해서 터미널 디바이스(3106)를 통신한다. 통신 링크는 위에서 설명된 통신 채널(13)을 포함할 수도 있다. 통신 링크(3104)는 Wi-Fi, 이더넷, 유선 접속, 무선(3G/4G/5G) 접속, USB, 또는 임의 종류의 이들의 조합을 포함하지만 이에 한정되지 않는다.
캡쳐 디바이스(3102)는 데이터를 발생시키며, 전술한 실시형태들에 나타낸 인코딩 방법에 따라서 데이터를 인코딩할 수도 있다. 대안적으로, 캡쳐 디바이스(3102)는 데이터를 스트리밍 서버(도 12에 미도시)로 배포할 수도 있으며, 서버는 데이터를 인코딩하여 인코딩된 데이터를 터미널 디바이스(3106)로 송신한다. 캡쳐 디바이스(3102)는 카메라, 스마트폰 또는 태블릿 컴퓨터, 컴퓨터 또는 노트북 컴퓨터, 비디오 회의 시스템, PDA, 차량 탑재 디바이스, 또는 이들의 임의의 조합을 포함하지만 이에 한정되지 않는다. 예를 들어, 캡쳐 디바이스(3102)는 위에서 설명된 소스 디바이스(12)를 포함할 수도 있다. 데이터가 비디오를 포함할 때, 캡쳐 디바이스(3102)에 포함된 비디오 인코더(20)는 비디오를 실제로 인코딩할 수도 있다. 데이터가 오디오(즉, 보이스)를 포함할 때, 캡쳐 디바이스(3102)에 포함된 오디오 인코더는 오디오를 실제로 인코딩할 수도 있다. 일부 실제 시나리오들에서, 캡쳐 디바이스(3102)는 인코딩된 비디오 데이터 및 인코딩된 오디오 데이터를 멀티플렉싱함으로써 인코딩된 비디오 데이터 및 인코딩된 오디오 데이터를 배포한다. 다른 실제 시나리오에서, 예를 들어, 비디오 회의 시스템에서, 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터는 멀티플렉싱되지 않는다. 캡쳐 디바이스(3102)는 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터를 터미널 디바이스(3106)로 별도로 배포한다.
콘텐츠 공급 시스템(3100)에서, 터미널 디바이스(310)는 인코딩된 데이터를 수신 및 재생한다. 터미널 디바이스(3106)는 데이터 수신 및 복구 능력들을 가진 디바이스, 예를 들어, 스마트폰 또는 태블릿 컴퓨터(3108), 컴퓨터 또는 노트북 컴퓨터(3110), 네트워크 비디오 리코더(network video recorder, NVR)/디지털 비디오 리코더(digital video recorder, DVR)(3112), TV(3114), 셋 탑 박스(set top box, STB)(3116), 비디오 회의 시스템(3118), 비디오 감시 시스템(3120), 개인 휴대정보 단말기(personal digital assistant, PDA)(3122), 차량 탑재 디바이스(3124), 또는 인코딩된 데이터를 디코딩할 수 있는 전술한 디바이스들의 임의의 조합일 수도 있다. 예를 들어, 터미널 디바이스(3106)는 위에서 설명된 목적지 디바이스(14)를 포함할 수도 있다. 인코딩된 데이터가 비디오를 포함할 때, 터미널 디바이스에 포함된 비디오 디코더(30)는 비디오 디코딩을 수행하도록 우선순위를 갖는다. 인코딩된 데이터가 오디오를 포함할 때, 터미널 디바이스에 포함된 오디오 디코더는 오디오 디코딩을 수행하도록 우선순위를 갖는다.
디스플레이를 갖는 터미널 디바이스, 예를 들어, 스마트폰 또는 태블릿 컴퓨터(3108), 컴퓨터 또는 노트북 컴퓨터(3110), 네트워크 비디오 리코더(network video recorder, NVR)/디지털 비디오 리코더(digital video recorder, DVR)(3112), TV(3114), 개인 휴대정보 단말기(personal digital assistant, PDA)(3122), 또는 차량 탑재 디바이스(3124)의 경우, 터미널 디바이스는 디코딩된 데이터를 터미널 디바이스의 디스플레이에 공급할 수도 있다. 디스플레이가 없는 터미널 디바이스, 예를 들어, STB(3116), 비디오 회의 시스템(3118), 또는 비디오 감시 시스템(3120)의 경우, 외부 디스플레이(3126)는 터미널 디바이스에 접속되어 디코딩된 데이터를 수신 및 디스플레이한다.
시스템 내 각각의 디바이스가 인코딩 또는 디코딩을 수행할 때, 전술한 실시형태들에 나타낸 픽처 인코딩 디바이스 또는 픽처 디코딩 디바이스가 사용될 수도 있다.
도 13은 터미널 디바이스(3106)의 예시적인 구조의 다이어그램이다. 터미널 디바이스(3106)가 캡쳐 디바이스(3102)로부터 스트림을 수신한 후, 프로토콜 프로세싱 유닛(3202)은 스트림의 송신 프로토콜을 분석한다. 프로토콜은 실시간 스트리밍 프로토콜(Real Time Streaming Protocol, RTSP), 하이퍼텍스트 전송 프로토콜(Hyper Text Transfer Protocol, HTTP), HTTP 라이브 스트리밍(HTTP Live streaming protocol, HLS), MPEG-DASH, 실시간 전송 프로토콜(Real-time Transport protocol, RTP), 실시간 메시징 프로토콜(real time messaging protocol, RTMP), 또는 이들의 임의의 조합을 포함하지만 이에 한정되지 않는다.
스트림을 프로세싱한 후, 프로토콜 프로세싱 유닛(3202)은 스트림 파일을 발생시킨다. 파일은 디멀티플렉싱 유닛(3204)으로 출력된다. 디멀티플렉싱 유닛(3204)은 멀티플렉싱된 데이터를 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터로 분리할 수도 있다. 위에서 설명한 바와 같이, 다른 실제 시나리오에서, 예를 들어, 비디오 회의 시스템에서, 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터는 멀티플렉싱되지 않는다. 이 경우, 인코딩된 데이터는 디멀티플렉싱 유닛(3204)을 통하지 않고, 비디오 디코더(3206) 및 오디오 디코더(3208)로 송신된다.
디멀티플렉싱은 비디오 기본 스트림(elementary stream, ES), 오디오 ES, 및 옵션적인 자막을 발생시키도록 수행된다. 전술한 실시형태에서 설명된 비디오 디코더(30)를 포함하는, 비디오 디코더(3206)는, 전술한 실시형태에 나타낸 디코딩 방법을 이용하여 비디오 ES를 디코딩하여, 비디오 프레임을 발생시키고, 데이터를 동기화 유닛(3212)으로 공급한다. 오디오 디코더(3208)는 오디오 ES를 디코딩하여, 오디오 프레임을 발생시키고, 데이터를 동기화 유닛(3212)에 공급한다. 대안적으로, 비디오 프레임은 비디오 프레임이 동기화 유닛(3212)에 공급되기 전에, 버퍼(도 13에 미도시)에 저장될 수도 있다. 이와 유사하게, 오디오 프레임은 오디오 프레임이 동기화 유닛(3212)에 공급되기 전에, 버퍼(도 13에 미도시)에 저장될 수도 있다.
동기화 유닛(3212)은 비디오 프레임 및 오디오 프레임을 동기화하고, 비디오/오디오를 비디오/오디오 디스플레이(3214)에 제공한다. 예를 들어, 동기화 유닛(3212)은 비디오 정보 및 오디오 정보의 프리젠테이션을 동기화한다. 정보는 인코딩된 오디오 데이터 및 인코딩된 시각적 데이터의 프리젠테이션에 관련된 시간스탬프 및 데이터 스트림의 송신에 관련된 시간스탬프를 이용하여 구문적으로 인코딩될 수도 있다.
스트림이 자막들을 포함하면, 자막 디코더(3210)는 자막들을 디코딩하여 자막들을 비디오 프레임 및 오디오 프레임과 동기화하고, 비디오/오디오/자막들을 비디오/오디오/자막 디스플레이(3216)에 제공한다.
본 출원은 전술한 시스템에 한정되지 않으며, 전술한 실시형태들에서의 픽처 인코딩 디바이스 또는 픽처 디코딩 디바이스는 다른 시스템, 예를 들어, 자동차 시스템에 통합될 수도 있다.
다음은 본 출원의 실시형태들에서의 해결책들을 자세히 설명한다.
복수의 무작위 액세스 세그먼트들 사이의 픽처들의 인코딩 동안 상호 참조되는 정보를 마이닝하여 사용하기 위해, 픽처를 인코딩(또는, 디코딩)할 때, 인코더(또는, 디코더)는 데이터베이스로부터, 텍스쳐 내용이 현재 인코딩된 픽처(또는, 현재 디코딩된 픽처)의 내용과 유사한 픽처를 참조 픽처로서 선택할 수도 있다. 이러한 참조 픽처는 라이브러리 픽처로서 지칭된다. 참조 픽처들의 세트를 저장하는 데이터베이스는 라이브러리로서 지칭된다. 적어도 하나의 라이브러리 픽처를 참조하여 비디오 내 적어도 하나의 픽처를 코딩하는 방법은 라이브러리-기반 비디오 코딩(영어: library-based video coding)으로서 지칭된다. 비디오 시퀀스가 라이브러리-기반 비디오 코딩을 이용하여 인코딩될 때, 라이브러리 픽처 인코딩 비트스트림을 포함하는 라이브러리 계층 비트스트림 및 라이브러리 픽처를 참조하여 비디오 시퀀스 내 픽처들의 프레임들을 인코딩하여 획득된 비트스트림을 포함하는 비디오 계층 비트스트림이 발생된다. 비트스트림들의 2개의 계층들 사이의 참조 관계가 도 6에 도시된다. 비트스트림들의 2개의 유형들은 스케일러블 비디오 코딩(영어: scalable video coding, SVC)에 의해 발생되는 기본 계층 비트스트림 및 향상된 계층 비트스트림과 각각 유사하다. 다시 말해서, 시퀀스 계층 비트스트림은 라이브러리 계층 비트스트림에 의존한다. 그러나, 라이브러리-기반 비디오 코딩의 이중-비트스트림 조직 방식(organization manner) 및 SVC의 스케일러블 비트스트림 조직 방식은 계층 비트스트림들 사이에 상이한 의존성 관계들을 갖는다. SVC에서의 이중 비트스트림들의 계층들이 특정의 정렬 시간 기간에 따라 서로 의존하고, 반면 라이브러리-기반 비디오 코딩에서, 이중 스트림들의 비디오 계층 비트스트림이 비-정렬 시간 기간에 따라 라이브러리 계층 비트스트림에 의존한다는 점에 차이가 있다.
인코딩 동안 발생된 비트스트림은 비트스트림의 최대 비트 레이트 및 비트스트림을 디코딩하는데 요구되는 디코딩된 픽처 버퍼의 최소 사이즈와 같은 정보를 포함하여, 비트스트림을 디코딩하는데 요구되는 디코딩 능력 정보를 기록한다. 디코더는 비트스트림들의 정확한 실시간 디코딩을 보장하기 위해, 디코딩 능력 정보에 기초하여 충분한 디코딩 능력을 제공한다.
비트스트림 내 HEVC 또는 VVC에서의 디코딩 능력 정보의 위치가 도 8a에 도시된다. 프로파일 레벨은 VPS 및 SPS 중 적어도 하나에 위치될 수도 있다. 프로파일 레벨은 비디오 계층 비트스트림 및 라이브러리 계층 비트스트림 중 적어도 하나의 디코딩 능력 정보를 포함한다.
비트스트림 내 AVS3에서의 디코딩 능력 정보의 위치가 도 8b에 도시된다.
2개의 비트스트림들은 라이브러리-기반 비디오 코딩 방법을 이용한 인코딩을 통해서 획득된다: 라이브러리 계층 비트스트림 및 비디오 시퀀스 비트스트림(또는, 비디오 계층 비트스트림으로 지칭됨). 비디오 시퀀스 비트스트림의 디코딩은 라이브러리 계층 비트스트림에 의존하여야 한다. 라이브러리 계층 비트스트림 및 비디오 시퀀스 비트스트림이 동일한 디코더를 사용할 때, 디코더의 디코딩 능력은 라이브러리 계층 비트스트림 및 시퀀스 비디오 비트스트림 양자의 디코딩을 지원하여야 한다. 따라서, 라이브러리 계층 비트스트림 및 비디오 시퀀스 비트스트림의 전체 디코딩 능력은 시퀀스 비트스트림에 기록되어야 한다. 이를 감안하여, 본 발명은 여러 구현예들을 제공한다.
본 출원에서, 시퀀스 비디오 비트스트림, 현재의 비디오 계층 비트스트림, 및 현재의 비트스트림이 비디오 비트스트림들로서 모두 이해될 수도 있다는 점에 유의해야 한다. 라이브러리 계층 비트스트림, 라이브러리 비트스트림, 외부 라이브러리 비트스트림, 및 외부 라이브러리 계층 비트스트림은 라이브러리 픽처 비트스트림들로서 모두 이해될 수도 있다.
본 발명의 실시형태 1
비트스트림에 의해 요구되는 디코딩 능력(profile_tier_level로 표시됨)은 시퀀스 비디오 비트스트림에 기록된다. 게다가, 비디오 시퀀스 비트스트림에 의해 참조되는 라이브러리 계층 비트스트림이 시퀀스 비디오 비트스트림의 디코딩 방법과 (동일한 표준을 준수하는) 동일한 디코딩 방법을 이용하면, 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력(profile_tier_level로 표시됨)은 시퀀스 비디오 비트스트림에 기록된다.
HEVC 또는 VVC에 기초하여, 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보는 비디오 계층 비트스트림의 VPS(비디오 파라미터들 세트)에 배치되며, VPS의 신택스는 다음 테이블에 나타낼 수도 있다:
Figure pct00010
새로-추가된 신택스 엘리먼트들의 시맨틱들은 다음과 같다:
(또한 라이브러리 픽처 참조 플래그로서 지칭될 수도 있는) vps_library_picture_enable_flag는 1-비트 플래그이다. 값이 1일 때, 현재의 비트스트림(또는, 현재의 비디오 계층 비트스트림으로서 지칭됨)이 외부 라이브러리 비트스트림(라이브러리 비트스트림은 또한 라이브러리 계층 비트스트림으로 지칭될 수도 있다)을 참조한다는 것을 표시한다. 값이 0일 때, 현재의 비트스트림이 라이브러리 비트스트림을 참조하지 않는다는 표시한다.
(동일한 표준 플래그로서 또한 지칭될 수도 있는) vps_library_same_standard_flag는 1-비트 플래그이다. 값이 1일 때, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 현재의 비트스트림과 동일한 코딩 표준을 따른다는 것을 표시한다. 값이 0일 때, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 따르지 않는다는 것을 표시한다.
디코더는 다음 동작들을 수행할 수도 있다:
(1) vps_library_picture_enable_flag를 파싱하여, 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조하는지 여부를 결정한다.
(2) 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조할 때, vps_library_same_standard_flag를 파싱하여, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 계층 비트스트림이 표준을 따르는지 여부를 결정한다.
(3) 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 따를 때, profile_tier_level을 파싱하여, 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보를 획득한다. 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보를 포함하는 profile_tier_level 이 VPS에 위치될 수도 있다는 점에 유의해야 한다. 또, 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보를 포함하는 profile_tier_level은 관련된-기술 profile_tier_level과 독립적일 수도 있거나, 또는 관련된-기술 profile_tier_level의 추가적인 확장일 수도 있다.
옵션적인 단계에서, 현재의 비트스트림의 디코더의 디코딩 능력이 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보의 요건을 만족할 때, 현재의 비트스트림의 디코더는 라이브러리 계층 비트스트림을 디코딩하는데 추가로 사용될 수도 있다. 이는 디코더의 디코딩 능력에 대한 요건, 예를 들어, 단위 시간 당 디코딩될 프레임들의 수에 대한 요건을 증가시킨다는 점에 유의해야 한다.
현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 따르지 않거나 또는 현재의 비트스트림의 디코더의 디코딩 능력이 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보의 요건을 만족하지 않을 때, 옵션적인 단계에서, 디코더는 시스템이 대응하는 디코더를 호출하여 라이브러리 비트스트림을 디코딩할 수 있도록, 라이브러리 비트스트림이 따르는 표준에 관한 정보를 출력한다.
인코더는 다음 동작들을 수행할 수도 있다:
(1) 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조하는지 여부에 기초하여, 비트스트림 내 vps_library_picture_enable_flag의 값을 결정한다.
(2) 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조할 때, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 계층 비트스트림이 표준을 따르는지 여부에 기초하여, 비트스트림 내 vps_library_same_standard_flag의 값을 결정한다.
(3) 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 따를 때, 비트스트림에서, profile_tier_level을 이용하여 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보를 기술한다. 옵션적인 단계에서, 현재의 비트스트림의 인코더는 라이브러리 계층 비트스트림을 인코딩하는데 추가로 사용될 수도 있다. 이는 인코더의 디코딩 능력에 대한 요건, 예를 들어, 단위 시간 당 인코딩될 프레임들의 수에 대한 요건을 증가시킨다는 점에 유의해야 한다.
현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 따르지 않을 때, 옵션적인 단계에서, 인코더는 시스템이 대응하는 인코더를 호출하여 라이브러리 비트스트림을 인코딩할 수 있도록, 라이브러리 비트스트림이 따르는 표준에 관한 정보를 출력한다.
라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보를 포함하는 profile_tier_level 이 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보가 관련된-기술 profile_tier_level에 추가된 후에 획득된 profile_tier_level일 수도 있거나, 또는 관련된-기술 profile_tier_level과 독립적인 profile_tier_level일 수도 있다는 점에 유의해야 한다.
본 발명의 실시형태 2
HEVC 또는 VVC에 기초하여, 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보는 비디오 계층 비트스트림의 SPS(sequence parameters set)에 배치되며, SPS의 신택스는 다음 테이블에 나타낸다:
Figure pct00011
새로-추가된 신택스 엘리먼트들의 시맨틱들은 다음과 같다:
(또한 라이브러리 픽처 참조 플래그로서 지칭될 수 있는) sps_library_picture_enable_flag는 1-비트 플래그이다. 값이 1일 때, 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조한다는 것을 표시한다. 값이 0일 때, 현재의 비트스트림이 라이브러리 비트스트림을 참조하지 않는다는 것을 표시한다.
(또한 동일한 표준 플래그로서 지칭될 수도 있는) sps_library_same_standard_flag는 1-비트 플래그이다. 값이 1일 때, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 현재의 비트스트림과 동일한 코딩 표준을 따른다는 것을 표시한다. 값이 0일 때, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 따르지 않는다는 것을 표시한다.
디코더는 다음 동작들을 수행할 수도 있다:
(1) sps_library_picture_enable_flag를 파싱하여, 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조하는지 여부를 결정한다.
(2) 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조할 때, sps_library_same_standard_flag를 파싱하여, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 계층 비트스트림이 표준을 따르는지 여부를 결정한다.
(3) 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 따를 때, profile_tier_level(1, 0)을 파싱하여, 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보를 획득한다. 옵션적인 단계에서, 현재의 비트스트림의 디코더의 디코딩 능력이 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보의 요건을 만족할 때, 현재의 비트스트림의 디코더는 라이브러리 계층 비트스트림을 디코딩하는데 추가로 사용될 수도 있다. 이는 디코더의 디코딩 능력에 대한 요건, 예를 들어, 단위 시간 당 디코딩될 프레임들의 수에 대한 요건을 증가시킨다는 점에 유의해야 한다. 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보를 포함하는 profile_tier_level 이 SPS에 위치될 수도 있다는 점에 유의해야 한다. 또, 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보를 포함하는 profile_tier_level은 관련된-기술 profile_tier_level과 독립적일 수도 있거나, 또는 관련된-기술 profile_tier_level의 추가적인 확장일 수도 있다.
현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 따르지 않거나 또는 현재의 비트스트림의 디코더의 디코딩 능력이 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보의 요건을 만족하지 않을 때, 옵션적인 단계에서, 디코더는 시스템이 대응하는 디코더를 호출하여 라이브러리 비트스트림을 디코딩할 수 있도록, 라이브러리 비트스트림이 따르는 표준에 관한 정보를 출력한다.
인코더는 다음 동작들을 수행할 수도 있다:
(1) 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조하는지 여부에 기초하여, 비트스트림 내 vps_library_picture_enable_flag의 값을 결정한다.
(2) 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조할 때, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 계층 비트스트림이 표준을 따르는지 여부에 기초하여, 비트스트림 내 vps_library_same_standard_flag의 값을 결정한다.
(3) 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 따를 때, 비트스트림에서, profile_tier_level(1, 0)을 이용하여, 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보를 기술한다. 옵션적인 단계에서, 현재의 비트스트림의 인코더는 라이브러리 계층 비트스트림을 인코딩하는데 추가로 사용될 수도 있다. 이는 인코더의 디코딩 능력에 대한 요건, 예를 들어, 단위 시간 당 인코딩될 프레임들의 수에 대한 요건을 증가시킨다는 점에 유의해야 한다.
현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 따르지 않을 때, 옵션적인 단계에서, 인코더는 시스템이 대응하는 인코더를 호출하여 라이브러리 비트스트림을 디코딩할 수 있도록, 라이브러리 비트스트림이 따르는 표준에 관한 정보를 출력한다.
라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보를 포함하는 profile_tier_level 이 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보가 관련된-기술 profile_tier_level에 추가된 후에 획득된 profile_tier_level일 수도 있거나, 또는 관련된-기술 profile_tier_level과는 독립적인 profile_tier_level일 수도 있다는 점에 유의해야 한다.
본 발명의 실시형태 3
AVS3에 기초하여, 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보는 비디오 계층 비트스트림의 시퀀스 헤더(sequence header)에 배치되며, 시퀀스 헤더의 신택스는 다음 테이블에 나타낸다:
Figure pct00012
새로-추가된 신택스 엘리먼트들의 시맨틱들은 다음과 같다:
(라이브러리 픽처 참조 플래그로서 또한 지칭될 수도 있는) library_picture_enable_flag는 1-비트 플래그이다. 값이 1일 때, 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조한다는 것을 표시한다. 값이 0일 때, 현재의 비트스트림이 라이브러리 비트스트림을 참조하지 않는다는 것을 표시한다. (이 플래그는 AVS3에 이미 존재한다.)
(동일한 표준 플래그로서 또한 지칭될 수도 있는) library_same_standard_flag는 1-비트 플래그이다. 값이 1일 때, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 현재의 비트스트림과 동일한 코딩 표준을 따른다는 것을 표시한다. 값이 0일 때, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 따르지 않는다는 것을 표시한다.
profile_id_library는 고정-길이 비트 무부호 정수(예를 들어, 8 비트의 길이, 및 9 비트의 길이)이다. profile_id_library는 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 따르는 프로파일을 표시하거나, 또는 외부 라이브러리 비트스트림의 레벨을 표시한다.
level_id_library는 고정-길이 비트 무부호 정수(예를 들어, 8 비트의 길이, 및 9 비트의 길이)이다. level_id_library는 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 따르는 레벨을 표시하거나, 또는 외부 라이브러리 비트스트림의 레벨을 표시한다.
AVS3에서, 상이한 디코딩 능력들이 상이한 프로파일들에 대응하며 프로파일들이 레벨들로 세분되고 상이한 레벨들이 상이한 디코딩 능력들에 대응한다는 점에 유의해야 한다.
디코더는 다음 동작들을 수행할 수도 있다:
(1) library_picture_enable_flag를 파싱하여, 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조하는지 여부를 결정한다.
(2) 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조할 때, library_same_standard_flag를 파싱하여, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 계층 비트스트림이 표준을 따르는지 여부를 결정한다.
(3) 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 따를 때, profile_id_library 및 level_id_library를 파싱하여, 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보를 획득한다. 옵션적인 단계에서, 현재의 비트스트림의 디코더의 디코딩 능력이 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보의 요건을 만족할 때, 현재의 비트스트림의 디코더는 라이브러리 계층 비트스트림을 디코딩하는데 추가로 사용될 수도 있다. 이는 디코더의 디코딩 능력에 대한 요건, 예를 들어, 단위 시간 당 디코딩될 프레임들의 수에 대한 요건을 증가시킨다는 점에 유의해야 한다.
현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 따르지 않거나 또는 현재의 비트스트림의 디코더의 디코딩 능력이 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보의 요건을 만족하지 않을 때, 옵션적인 단계에서, 디코더는 시스템이 대응하는 디코더를 호출하여 라이브러리 비트스트림을 디코딩할 수 있도록, 라이브러리 비트스트림이 따르는 표준에 관한 정보를 출력한다.
인코더는 다음 동작들을 수행할 수도 있다:
(1) 현재의 비트스트림이 외부 라이브러리 스트림을 참조하는지 여부에 기초하여, 비트스트림 내 library_picture_enable_flag의 값을 결정한다.
(2) 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조할 때, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 계층 비트스트림이 표준을 따르는지 여부에 기초하여, 비트스트림 내 library_same_standard_flag의 값을 결정한다.
(3) 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 따를 때, 비트스트림에, 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보에 대응하는 profile_id_library 및 level_id_library를 기술한다. 옵션적인 단계에서, 현재의 비트스트림의 인코더가 라이브러리 계층 비트스트림을 인코딩하는데 사용된다. 이는 인코더의 디코딩 능력에 대한 요건, 예를 들어, 단위 시간 당 인코딩될 프레임들의 수에 대한 요건을 증가시킨다는 점에 유의해야 한다.
현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 따르지 않을 때, 옵션적인 단계에서, 인코더는 시스템이 대응하는 인코더를 호출하여 라이브러리 비트스트림을 디코딩할 수 있도록, 라이브러리 비트스트림이 따르는 표준에 관한 정보를 출력한다.
라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보를 포함하는 profile_tier_level 이 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보가 관련된-기술 profile_tier_level에 추가된 후 획득된 profile_tier_level일 수도 있거나, 또는 관련된-기술 profile_tier_level과는 독립적인 profile_tier_level일 수도 있다는 점에 유의해야 한다.
본 발명의 실시형태 4
AVS3에 기초하여, 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보는 비디오 계층 비트스트림의 시퀀스 헤더(sequence header)에 배치되며, 시퀀스 헤더의 신택스는 다음 테이블에 나타낸다:
Figure pct00013
새로-추가된 신택스 엘리먼트들의 시맨틱들은 다음과 같다:
(라이브러리 픽처 플래그로서 또한 지칭될 수도 있는) is_libiary_stream_flag는 1-비트 플래그이다. 값 '1'은, 현재의 비트스트림이 라이브러리 픽처 비트스트림이고 단지 인트라-코딩된 픽처(예를 들어, I 픽처)만이 비트스트림에 나타나도록 허용되고 인터-코딩된 픽처(예를 들어, P 픽처 또는 B 픽처)가 비트스트림에 나타나도록 허용되지 않는다는 것을 표시한다. 값 '0'은, 현재의 비트스트림이 비-라이브러리 픽처 비트스트림, 즉, 시퀀스 비트스트림이라는 것을 표시한다.
(라이브러리 픽처 참조 플래그로서 또한 지칭될 수도 있는) library_picture_enable_flag는 1-비트 플래그이다. 값이 1일 때, 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조한다는 것을 표시한다. 값이 0일 때, 현재의 비트스트림이 라이브러리 비트스트림을 참조하지 않는다는 것을 표시한다. (이 플래그는 AVS3에 이미 존재한다.)
(동일한 파라미터 플래그로서 또한 지칭될 수도 있는) library_stream_using_same_standard_flag: 값 '1'은, 현재의 시퀀스 비트스트림에 의해 참조되는 외부 라이브러리 픽처 비트스트림의 시퀀스 헤더 내 is_libiary_stream_flag를 제외한 모든 파라미터 값들이 현재의 시퀀스 비트스트림 내 파라미터 값들과 동일해야 한다는 것을 표시한다. 값 '0'은, 현재의 시퀀스 비트스트림에 의해 참조되는 라이브러리 픽처 비트스트림의 시퀀스 헤더 내 is_libiary_stream_flag를 제외한 모든 파라미터 값들이 현재의 시퀀스 비트스트림의 시퀀스 헤더 내 파라미터 값들과 상이할 수도 있다는 것을 표시한다.
library_stream_using_same_standard_flag의 의미가 또한 library_same_standard_flag의 의미일 수도 있다는 점에 유의해야 한다.
디코더는 다음 동작들을 수행할 수도 있다:
(1) is_library_stream_flag를 파싱하여, 현재의 비트스트림이 라이브러리 비트스트림 또는 비-라이브러리 비트스트림인지 여부를 결정한다.
(2) 현재의 비트스트림이 비-라이브러리 비트스트림일 때, library_picture_enable_flag를 파싱하여, 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조하는지 여부를 결정한다.
(3) 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조할 때, library_stream_using_same_standard_flag를 파싱하여, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 계층 비트스트림의 시퀀스 헤더 내 is_libiary_stream_flag를 제외한 모든 파라미터 값들이 현재의 시퀀스 비트스트림에서의 대응하는 파라미터 값들과 동일한지 여부를 결정한다.
현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림의 is_libiary_stream_flag를 제외한 모든 파라미터 값들이 현재의 시퀀스 비트스트림에서의 대응하는 파라미터 값들과 동일할 때, 옵션적인 단계에서, 현재의 비트스트림의 디코더가 라이브러리 계층 비트스트림을 디코딩하는데 사용된다. 이는 디코더의 디코딩 능력에 대한 요건, 예를 들어, 단위 시간 당 디코딩될 프레임들의 수에 대한 요건을 증가시킨다는 점에 유의해야 한다.
현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림의 is_libiary_stream_flag를 제외한 모든 파라미터 값들이 현재의 시퀀스 비트스트림에서의 대응하는 파라미터 값들과 상이할 때, 옵션적인 단계에서, 디코더는 시스템이 대응하는 디코더를 호출하여 라이브러리 비트스트림을 디코딩할 수 있도록, 라이브러리 비트스트림이 따르는 표준에 관한 정보를 출력한다.
옵션적인 단계에서, 라이브러리 비트스트림에 의해 요구되는 디코딩 능력이 라이브러리 비트스트림의 시퀀스 헤더 내 파라미터에 기초하여 획득된다. 라이브러리 비트스트림에 의해 요구되는 디코딩 능력이 현재의 비트스트림에 의해 요구되는 디코딩 능력을 초과하지 않을 때, 현재의 비트스트림의 디코더가 라이브러리 계층 비트스트림을 디코딩하는데 사용된다. 이는 디코더의 디코딩 능력에 대한 요건, 예를 들어, 단위 시간 당 디코딩될 프레임들의 수에 대한 요건을 증가시킨다는 점에 유의해야 한다. 따라서, 라이브러리 비트스트림에 의해 요구되는 디코딩 능력이 현재의 비트스트림에 의해 요구되는 디코딩 능력을 초과할 때, 옵션적인 단계에서, 디코더는 시스템이 대응하는 디코더를 호출하여 라이브러리 비트스트림을 디코딩할 수 있도록, 라이브러리 비트스트림이 따르는 표준에 관한 정보를 출력한다.
옵션적인 단계에서, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림의 is_libiary_stream_flag를 제외한 모든 파라미터 값들이 현재의 시퀀스 비트스트림에서의 대응하는 파라미터 값들과 동일할 때, 라이브러리 비트스트림에 의해 요구되는 디코딩 능력이 현재의 비트스트림의 시퀀스 헤더 내 파라미터에 기초하여 결정된다. 라이브러리 비트스트림에 의해 요구되는 디코딩 능력이 현재의 비트스트림에 의해 요구되는 디코딩 능력을 초과하지 않을 때, 현재의 비트스트림의 디코더가 라이브러리 계층 비트스트림을 디코딩하는데 사용된다. 라이브러리 비트스트림에 의해 요구되는 디코딩 능력이 현재의 비트스트림에 의해 요구되는 디코딩 능력을 초과할 때, 옵션적인 단계에서, 디코더는 시스템이 대응하는 디코더를 호출하여 라이브러리 비트스트림을 디코딩할 수 있도록, 라이브러리 비트스트림이 따르는 표준에 관한 정보를 출력한다.
인코더는 다음 동작들을 수행할 수도 있다:
(1) 현재의 비트스트림이 라이브러리 비트스트림 또는 비-라이브러리 비트스트림인지 여부에 기초하여, 비트스트림 내 is_library_stream_flag의 값을 결정한다.
(2) 현재의 비트스트림이 비-라이브러리 비트스트림일 때, 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조하는지 여부에 기초하여, 비트스트림 내 library_picture_enable_flag의 값을 결정한다.
현재의 비트스트림이 외부 라이브러리 비트스트림을 참조할 때, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 계층 비트스트림의 시퀀스 헤더 내 is_libiary_stream_flag를 제외한 모든 파라미터 값들이 현재의 시퀀스 비트스트림에서의 대응하는 파라미터 값들과 동일한지 여부에 기초하여, 비트스트림 내 library_stream_using_same_standard_flag의 값을 결정한다.
현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림의 시퀀스 헤더 내 is_libiary_stream_flag를 제외한 모든 파라미터 값들이 현재의 시퀀스 비트스트림 내 파라미터 값들과 동일할 때, 옵션적인 단계에서, 현재의 비트스트림의 인코더가 라이브러리 계층 비트스트림을 인코딩하는데 사용된다. 이는 인코더의 인코딩 능력에 대한 요건, 예를 들어, 단위 시간 당 인코딩될 프레임들의 수에 대한 요건을 증가시킨다는 점에 유의해야 한다.
현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림의 is_libiary_stream_flag를 제외한 모든 파라미터 값들이 현재의 시퀀스 비트스트림에서의 대응하는 파라미터 값들과 상이할 때, 옵션적인 단계에서, 인코더는 시스템이 대응하는 인코더를 호출하여 라이브러리 비트스트림을 인코딩할 수 있도록, 라이브러리 비트스트림이 따르는 표준에 관한 정보를 출력한다.
옵션적인 단계에서, 라이브러리 비트스트림에 의해 요구되는 인코딩 능력이 현재의 비트스트림에 의해 요구되는 인코딩 능력을 초과하지 않는다고 라이브러리 비트스트림에 의해 요구되는 인코딩 능력에 기초하여 결정되고, 현재의 비트스트림의 인코더가 라이브러리 계층 비트스트림을 인코딩하는데 사용된다. 이는 인코더의 인코딩 능력에 대한 요건, 예를 들어, 단위 시간 당 인코딩될 프레임들의 수에 대한 요건을 증가시킨다는 점에 유의해야 한다.
다음 테이블은 HEVC 및 VVC에서 정의된 새로운 profile_tier_level을 나타낸다. 새로운 profile_tier_level은 대응하는 비디오 계층 비트스트림의 디코딩 능력 정보를 포함할 뿐만 아니라, 대응하는 비트스트림에 의해 참조되는 라이브러리 계층 비트스트림의 디코딩 능력 정보를 포함한다. 새로운 profile_tier_level은 관련된-기술 profile_tier_level의 추가적인 확장일 수도 있으며, 새로운 profile_tier_level의 신택스는 다음 테이블에 나타낼 수도 있다:
Figure pct00014
Figure pct00015
전술한 신택스 테이블이 실시형태 1, 실시형태 2, 또는 실시형태 3과 결합될 수도 있거나, 또는 독립적인 해결책으로 구현될 수도 있다는 점에 유의해야 한다. 예를 들어, 전술한 신택스 테이블은 관련 기술에서 profile_tier_level을 직접 대체하기 위해 관련 기술과 결합되거나, 또는 profile_tier_level을 갖는 기능을 이용하여 구현될 수도 있다.
전술한 신택스 내 library_picture_enable_flag는 전술한 실시형태들에서 vps_library_picture_enable_flag, sps_library_picture_enabale_flag, 또는 library_picture_enable_flag일 수도 있다. 전술한 신택스 내 library_same_standard_flag는 전술한 실시형태들에서 vps_library_same_standard_flag, sps_library_same_standard_flag, 또는 library_same_standard_flag일 수도 있다.
전술한 신택스에서, 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보를 포함하는 profile_tier_level 이 인코딩된 비트스트림의 VPS, SPS, 또는 시퀀스 헤더에 위치될 수도 있다는 점에 유의해야 한다.
구체적으로 설명하면, 새로-추가된 신택스 엘리먼트들의 시맨틱들은 다음과 같을 수도 있다:
library_same_standard_flag는 현재의 프로파일이 라이브러리 비트스트림의 프로파일을 포함하는지 여부를 표시한다. 값이 1일 때, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 현재의 비트스트림과 동일한 코딩 표준을 따르고 라이브러리 비트스트림의 디코딩 능력 정보가 현재의 비트스트림에 기술된다는 것을 표시한다. 값이 0일 때, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 따르지 않고 라이브러리 비트스트림의 디코딩 능력 정보가 현재의 비트스트림에 기술되지 않는다는 것을 표시한다.
library_level_present_flag는 현재의 프로파일이 라이브러리 비트스트림의 레벨을 포함하는지 여부를 표시한다. 값이 1일 때, 현재의 프로파일이 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림의 레벨을 포함한다는 것을 표시한다. 값이 0일 때, 현재의 프로파일이 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림의 레벨을 포함하지 않는다는 것을 표시한다.
library_profile_space는 library_profile_idc 및 j가 0 내지 31의 범위를 가진 library_profile_compatibility_flag[ j ]의 컨텍스트를 규정하는데 사용된다. 값은 표준에 따르는 비트스트림에서 0이어야 한다. 다른 값들은 미래 ITU-T 또는 ISO/IEC용으로 예약된다. 디코더 측은 그 값이 0과 동일하지 않으면 인코딩된 비디오 시퀀스를 무시해야 한다.
library_tier_flag는 library_profile_idc의 계층 컨텍스트를 표시한다.
library_profile_idc: library_profile_space가 0일 때, library_profile_idc는 인코딩된 비디오 시퀀스가 따르는 이전에-정의된 프로파일을 표시한다. 비트스트림은 이전에 정의되지 않은 library_profile_idc 값을 포함할 수 없다. 다른 값들은 미래 ITU-T 또는 ISO/IEC 용으로 예약된다.
library_profile_compatibility_flag[j]의 값은 library_profile_space가 0일 때, 1이어야 하며, library_profile_idc가 j일 때 인코딩된 비디오 시퀀스가 따르는 이전에 정의된 프로파일을 표시한다. library_profile_space가 0일 때, library_profile_compatibility_flag[library_profile_idc]의 값은 1이어야 한다. 이전에 되지 않은 library_profile_idc에 대응하는 j에 대해, library_profile_compatibility_flag[j]의 값은 0이어야 한다.
library_progressive_source_flag 및 library_interlaced_source_flag는 다음과 같이 설명된다:
-- library_progressive_source_flag가 1이고 library_interlaced_source_flag가 0일 때, 인코딩된 비디오 시퀀스 내 픽처 소스의 스캔 유형은 단지 프로그레시브(progressive)일 수 있다.
-- library_progressive_source_flag가 0이고 library_interlaced_source_flag가 1일 때, 인코딩된 비디오 시퀀스 내 픽처 소스의 스캔 유형은 단지 인터레이스(interlaced)일 수 있다.
-- library_progressive_source_flag 및 library_interlaced_source_flag가 모두 0일 때, 인코딩된 비디오 시퀀스 내 픽처 소스의 스캔 유형은 미지이거나 또는 정의되지 않는다.
-- library_progressive_source_flag 및 library_interlaced_source_flag가 모두 1일 때, 인코딩된 비디오 시퀀스 내 픽처 소스의 스캔 유형은 픽처-레벨 신택스 엘리먼트 source_scan_type에 정의되며, 엘리먼트는 픽처의 시간 시퀀스의 추가적인 향상 정보에 저장된다.
library_non_packed_constraint_flag의 값이 1일 때, 프레임-레벨 패키징을 위해 또는 파티셔닝된 직사각형 서브블록들의 프레임-레벨 패키징을 위해 어떤 추가적인 향상 정보도 인코딩된 비디오 시퀀스에 제공되지 않는다는 것을 표시한다. 값이 0일 때, 프레임-레벨 패키징을 위해 또는 프레임-레벨 파티셔닝된 직사각형 패키징을 위해 하나 이상의 추가적인 향상 정보가 인코딩된 비디오 시퀀스에 제공될 수도 있다는 것을 표시한다.
library_frame_only_constraint_flag의 값이 1일 때, field_seq_flag가 0이라는 것을 표시한다. 값이 0일 때, field_seq_flag는 0일 수도 있거나 또는 아닐 수도 있다는 것을 표시한다.
library_max_12bit_constraint_flag, library_max_10bit_constraint_flag, library_max_8bit_constraint_flah, library_max_422chroma_constraint_flag, library_max_420chroma_constraint_flag, library_max_monochrome_constraint_flag, library_intra_constraint_flag, library_one_picture_only_constraint, 및 library_lower_bit_rate_constraint_flag의 값들이 존재할 때,
프로파일의 library_profile_idc 및 library_profile_compatibility_flag[ j ]가 이전에-정의된 값들을 따르며, 이전에-정의된 시맨틱들과 동일한 시맨틱들을 갖는다. peofilePresentFlag의 값이 1일 때, library_profile_idc가 4 내지 7의 범위에 있지 않다. j의 값이 4 내지 7의 범위에 있을 때, library_profile_compatibility_flag[ j ]는 1이 아니다. 이 경우, 이들 신택스 엘리먼트들은 존재하지 않으며 그 값들은 0으로 추론될 수 있다. library_profile_idc가 4 내지 7의 범위에 있지 않고, j가 4 내지 7의 범위에 있고, 그리고 library_profile_compatibility_flag[ j ]가 1이 아닐 때, 이들 신택스 엘리먼트들의 값들은 0이어야 한다.
library_reserved_zero_43bits가 존재할 때, 그 값은 표준에 따르는 비트스트림에서 0이어야 한다. 다른 값들은 미래 ITU-T 또는 ISO/IEC 용으로 예약된다. 디코더 측은 신택스를 무시해야 한다.
library_inbld_flag의 값이 1일 때, profile_tier_level() 신택스 구조가 적용되는 계층이 이전에-정의된 독립적인 비-저부-계층 디코딩 능력에 의해 표시된 바와 같이 디코딩되어야 한다는 것을 표시한다. 값이 0일 때, profile_tier_level() 신택스 구조가 적용되는 계층이 이전에-정의된 독립적인 비-저부-계층 디코딩 능력에 의해 표시된 바와 같이 디코딩될 필요가 없다는 것을 표시한다. peofilePresentFlag가 1일 때, library_profile_idc는 1 내지 5의 범위에 있지 않다. j가 1 내지 5의 범위에 있을 때, library_profile_compatibility_flag[ j ]는 1이 아니다. 이 경우, 이 신택스 엘리먼트는 존재하지 않으며, 값은 0으로 추론될 수 있다. library_profile_idc가 1 내지 5의 범위에 있지 않고, j가 1 내지 5의 범위에 있고, 그리고 library_profile_compatibility_flag[ j ]가 1이 아닐 때, 이 신택스 엘리먼트의 값은 0이어야 한다.
library_reserved_zero_bit가 존재할 때, 그의 값은 표준을 따르는 비트스트림에서 0이어야 한다. 값 1은 미래 ITU-T 또는 ISO/IEC 용으로 예약된다. 디코더 측은 신택스를 무시해야 한다.
library_level_idc는 이전에-정의된 값들에 따르는 인코딩된 비디오 시퀀스의 레벨을 표시한다. 비트스트림은 이전에 정의되지 않은library_level_idc 값을 포함하지 않을 수 있다. 다른 값들은 미래 ITU-T 또는 ISO/IEC 용으로 예약된다.
"이전에-정의된"은 값이 HEVC 및 VVC의 부록 A 또는 F에 정의되어 있다는 것을 의미한다.
현재의 비트스트림에 의해 참조되는 라이브러리 비트스트림을 기술하는데 사용되는 일련의 디코딩 능력 정보가 HEVC 및 VVC에서의 기존 프로파일 신택스 엘리먼트들의 정의들에 기초하여 전술한 새로운 프로파일 신택스 엘리먼트들에 대해 추가된다. 따라서, 전술한 새로-추가된 신택스 엘리먼트들의 시맨틱들은 HEVC 및 VVC에서의 기존 프로파일 신택스 엘리먼트들의 시맨틱들에 일-대-일 대응할 수도 있다. 단지 차이는 새로-추가된 신택스 엘리먼트들이 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림의 디코딩 능력 정보를 기술한다는 것이다. 게다가, library_same_standard_flag의 시맨틱들이 다음과 같이 확장될 때: 값이 1일 때, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 현재의 비트스트림과 동일한 코딩 표준을 따르고 라이브러리 비트스트림의 디코딩 능력 정보가 현재의 비트스트림에서 설명된다는 것을 표시한다. 값이 0일 때, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 따르지 않고 라이브러리 비트스트림의 디코딩 능력 정보가 현재의 비트스트림에 기술되지 않는다는 것을 표시한다.
디코더는 다음 동작들을 수행할 수도 있다:
(1) VPS 또는 SPS 내 library_picture_enable_flag에 기초하여, 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조하는지 여부를 결정한다.
(2) 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조할 때, 프로파일에서 library_same_standard_flag를 파싱하여, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 계층 비트스트림이 표준을 따르는지 여부를 결정한다.
(3) 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 만족할 때, HEVC 또는 VVC에서의 기존 프로파일 파싱 방법에 따라 외부 라이브러리 비트스트림을 기술하는 프로파일 신택스 엘리먼트를 파싱하여, 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보를 획득한다.
옵션적인 단계에서, 현재의 비트스트림의 디코더가 라이브러리 계층 비트스트림을 디코딩하는데 추가로 사용될 수도 있다. 이는 디코더의 디코딩 능력에 대한 요건, 예를 들어, 단위 시간 당 디코딩될 프레임들의 수에 대한 요건을 증가시킨다는 점에 유의해야 한다.
현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 따르지 않을 때, 옵션적인 단계에서, 디코더는 시스템이 대응하는 디코더를 호출하여 라이브러리 비트스트림을 디코딩할 수 있도록, 라이브러리 비트스트림이 따르는 표준에 관한 정보를 출력한다.
인코더는 다음 동작들을 수행할 수도 있다:
(1) 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조하는지 여부에 기초하여 library_picture_enable_flag의 값을 결정하고, 그 값을 비트스트림에 배치한다.
(2) 현재의 비트스트림이 외부 라이브러리 비트스트림을 참조할 때, 현재의 비트스트림에 의해 참조되는 외부 라이브러리 계층 비트스트림이 표준을 따르는지 여부에 기초하여, 비트스트림 내 library_same_standard_flag의 값을 결정한다.
(3) 현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 만족할 때, 비트스트림에, 라이브러리 계층 비트스트림에 의해 요구되는 디코딩 능력 정보에 대응하는 프로파일 및 레벨의 신택스 엘리먼트들을 기술한다.
옵션적인 단계에서, 현재의 비트스트림의 인코더가 라이브러리 계층 비트스트림을 인코딩하는데 추가로 사용될 수도 있다. 이는 인코더의 디코딩 능력에 대한 요건, 예를 들어, 단위 시간 당 인코딩될 프레임들의 수에 대한 요건을 증가시킨다는 점에 유의해야 한다.
현재의 비트스트림에 의해 참조되는 외부 라이브러리 비트스트림이 표준을 따르지 않을 때, 옵션적인 단계에서, 인코더는 시스템이 대응하는 인코더를 호출하여 라이브러리 비트스트림을 디코딩할 수 있도록, 라이브러리 비트스트림이 따르는 표준에 관한 정보를 출력한다.
당업자는 본 명세서에서 개시 및 설명된 다양한 예시적인 로직 블록들, 모듈들, 및 알고리즘 단계들을 참조하여 설명된 기능들이 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 결합에 의해 구현될 수 있음을 알 수 있다. 실시형태들이 소프트웨어에 의해 구현되는 경우, 예시적인 로직 블록, 모듈, 및 단계를 참조하여 설명된 기능은 하나 이상의 명령 또는 코드로서 컴퓨터-판독가능 매체에 저장되거나 또는 송신되어 하드웨어-기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터-판독가능 매체는 데이터 저장 매체와 같은 유형의 매체, 또는 (예를 들어, 통신 프로토콜에 따라) 한 장소로부터 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체에 대응하는 컴퓨터-판독가능 저장 매체를 포함할 수도 있다. 이와 같이, 컴퓨터-판독가능 매체는 일반적으로, (1) 비일시성 유형의 컴퓨터-판독가능 저장 매체, 또는 (2) 신호 또는 캐리어와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체는 본 출원에서 설명된 기술을 구현하기 위한 명령, 코드, 및/또는 데이터 구조를 취출하기 위해 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 액세스될 수 있는 임의의 사용가능한 매체일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터-판독가능 매체를 포함할 수도 있다.
일 예로서 그러나 비한정적으로, 이러한 컴퓨터-판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 컴팩트 디스크 저장 장치, 자기디스크 스토리지 장치 또는 다른 자기 저장 장치, 플래시 메모리, 또는 원하는 프로그램 코드를 컴퓨터에 의해 액세스가능한 명령 또는 데이터 구조의 형태로 저장하는데 사용될 수 있는 임의의 다른 매체를 포함할 수도 있다. 게다가, 임의의 접속은 컴퓨터-판독가능 매체로서 적절히 지칭된다. 예를 들어, 명령들이 웹사이트, 서버, 또는 다른 원격 소스로부터 동축 케이블, 광 섬유, 연선, 디지털 가입자 회선(DSL), 또는 무선 기술들, 예컨대 적외선, 라디오, 및 마이크로파를 통해서 송신되면, 동축 케이블, 광 섬유, 연선, DSL, 또는 무선 기술들, 예컨대 적외선, 라디오, 및 마이크로파가 매체의 정의에 포함된다. 그러나, 컴퓨터-판독가능 저장 매체 및 데이터 저장 매체가 접속, 캐리어, 신호, 또는 다른 일시성 매체를 포함하지 않고 실제로 비일시성 유형의 저장 매체를 의미하는 것으로 이해되어야 한다. 본 명세서에서 사용되는 디스크(디스크들) 및 디스크(discs)는 컴팩트 디스크(CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크(DVD), 및 블루-레이 디스크를 포함한다. 디스크들(disks)은 일반적으로 데이터를 자기적으로 재생하고, 반면 디스크들(discs)은 데이터를 레이저들로 광학적으로 재생한다. 전술한 항목의 결합도 또한 컴퓨터-판독가능 매체의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 프로세서, 예컨대 하나 이상의 디지털 신호 프로세서(DSP), 범용 마이크로프로세서, 주문형 집적 회로(ASIC), 필드 프로그래밍가능 게이트 어레이(FPGA), 또는 다른 등가의 통합된 또는 이산 로직 회로에 의해 실행될 수도 있다. 따라서, 본 명세서에서 사용되는 용어 "프로세서"는 전술한 구조 또는 본 명세서에서 설명된 기술을 구현하는데 적합한 임의의 다른 구조 중 어느 것일 수도 있다. 게다가, 일부 양태에서, 본 명세서에서 설명되는 예시적인 로직 블록, 모듈, 및 단계를 참조하여 설명된 기능은 전용 하드웨어 및/또는 인코딩 및 디코딩을 위해 구성되는 소프트웨어 모듈 내에 제공되거나, 또는 결합된 코덱에 통합될 수도 있다. 게다가, 기술은 하나 이상의 회로 또는 로직 엘리먼트에서 모두 구현될 수도 있다.
본 출원에서의 기술은 무선 핸드셋, 집적 회로(IC), 또는 IC의 세트(예를 들어, 칩셋)를 포함한, 다양한 장치 또는 디바이스에서 구현될 수도 있다. 다양한 컴포넌트, 모듈, 또는 유닛이 개시된 기술을 수행하도록 구성된 장치의 기능 양태를 강조하기 위해 본 출원에서 설명되지만, 반드시 상이한 하드웨어 유닛에 의해 구현되는 것은 아니다. 실제로, 위에서 설명한 바와 같이, 다양한 유닛이 적합한 소프트웨어 및/또는 펌웨어와 결합하여 코덱 하드웨어 유닛에 결합될 수도 있거나, 또는 (위에서 설명된 하나 이상의 프로세서를 포함하여) 상호 이용가능한 하드웨어 유닛에 의해 제공될 수도 있다.
전술한 실시형태들에서, 각각의 실시형태에서의 설명들은 개별 초점들을 갖는다. 일 실시형태에서 자세히 설명되지 않은 부분에 대해서는, 다른 실시형태들에서의 관련 설명들을 참조한다.
전술한 설명들은 본 출원의 특정의 구현예들일 뿐이며, 본 출원의 보호 범위를 한정하려는 것이 아니다. 본 출원에서 개시된 기술적 범위 내에서 당업자에 의해 용이하게 파악되는 임의의 변형 또는 대체는 본 출원의 보호 범위 내에 속한다. 따라서, 본 출원의 보호 범위는 청구 범위의 보호 범위를 따른다.

Claims (50)

  1. 비디오 디코딩 방법으로서,
    비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되면, 상기 비디오 비트스트림으로부터 제 1 플래그를 파싱하는 단계; 및
    상기 제 1 플래그의 값이 제 1 값일 때, 상기 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값을 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 이용하고, 그리고 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 획득하기 위해 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림의 상기 목표 파라미터의 값 및 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림에 기초하여, 복원하는 단계를 포함하는,
    비디오 디코딩 방법.
  2. 제 1 항에 있어서,
    상기 방법은,
    상기 비디오 비트스트림에 대응하는 비디오 픽처를 획득하기 위해 상기 비디오 비트스트림 및 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처에 기초하여 복원하는 단계를 더 포함하는,
    비디오 디코딩 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 제 1 플래그는 상기 비디오 비트스트림의 상기 시퀀스 헤더에 위치되는,
    비디오 디코딩 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 제 1 플래그는 동일한 파라미터 플래그를 포함하며, 상기 동일한 파라미터 플래그는 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림의 상기 목표 파라미터의 값이 상기 비디오 비트스트림의 상기 시퀀스 헤더 내 상기 목표 파라미터의 값과 동일한지 여부를 표시하는데 사용되며;
    상기 제 1 값인 상기 동일한 파라미터 플래그의 값은 상기 라이브러리 픽처 비트스트림의 상기 목표 파라미터의 값이 상기 비디오 비트스트림의 상기 시퀀스 헤더 내 상기 목표 파라미터의 값과 동일하다는 것을 표시하는,
    비디오 디코딩 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 목표 파라미터는 디코딩 능력 정보를 포함하며,
    상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 획득하기 위해 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림의 상기 목표 파라미터의 값 및 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림에 기초하여, 복원하는 단계는,
    사용될 디코더의 디코딩 능력이 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림의 상기 디코딩 능력 정보의 값에 의해 표시되는 요건을 만족하는지 여부를 결정하는 단계; 및
    상기 사용될 디코더의 상기 디코딩 능력이 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림의 상기 디코딩 능력 정보의 값에 의해 표시되는 상기 요건을 만족할 때, 상기 사용될 디코더를 이용하여, 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림을 파싱하는 단계; 및 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 획득하기 위해 복원하는 단계를 포함하는,
    비디오 디코딩 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되면, 상기 비디오 비트스트림으로부터 제 1 플래그를 파싱하는 단계는,
    상기 비디오 비트스트림으로부터 라이브러리 픽처 참조 플래그를 파싱하는 단계로서, 상기 라이브러리 픽처 참조 플래그는 상기 비디오 비트스트림이 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 참조함으로써 디코딩되도록 허용되는지 여부를 표시하는데 사용되는, 상기 파싱하는 단계; 및
    상기 비디오 비트스트림이 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 참조함으로써 디코딩되도록 허용된다고 상기 라이브러리 픽처 참조 플래그의 값이 표시하면, 상기 비디오 비트스트림으로부터 상기 제 1 플래그를 파싱하는 단계를 포함하는,
    비디오 디코딩 방법.
  7. 제 6 항에 있어서,
    상기 비디오 비트스트림은 라이브러리 픽처 플래그를 포함하며, 상기 라이브러리 픽처 플래그의 값은 제 2 값이며, 상기 제 2 값인 상기 라이브러리 픽처 플래그는 상기 비디오 비트스트림이 상기 라이브러리 픽처 비트스트림이 아니다는 것을 표시하는,
    비디오 디코딩 방법.
  8. 제 6 항 또는 제 7 항에 있어서,
    상기 방법은,
    현재의 비트스트림으로부터 상기 라이브러리 픽처 플래그를 획득하는 단계; 및
    상기 비디오 비트스트림이 상기 라이브러리 픽처 비트스트림이 아니라고 상기 라이브러리 픽처 플래그의 값이 표시할 때에만 상기 현재의 비트스트림을 상기 비디오 비트스트림으로서 이용하고, 상기 비디오 비트스트림으로부터 상기 라이브러리 픽처 참조 플래그를 파싱하는 단계를 더 포함하는,
    비디오 디코딩 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 목표 파라미터는 상기 디코딩 능력 정보를 포함하며,
    상기 방법은,
    상기 비디오 비트스트림의 비디오 파라미터 세트 VPS로부터 상기 라이브러리 픽처 비트스트림의 상기 디코딩 능력 정보를 파싱하는 단계;
    상기 비디오 비트스트림의 시퀀스 파라미터 세트 SPS로부터 상기 라이브러리 픽처 비트스트림의 상기 디코딩 능력 정보를 파싱하는 단계; 또는
    상기 비디오 비트스트림의 상기 시퀀스 헤더로부터 상기 라이브러리 픽처 비트스트림의 상기 디코딩 능력 정보를 파싱하는 단계를 더 포함하는,
    비디오 디코딩 방법.
  10. 제 1 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 목표 파라미터는 디코딩 능력 정보를 포함하며, 상기 비디오 비트스트림의 상기 디코딩 능력 정보는 프로파일 플래그 및 레벨 플래그를 포함하며, 상기 프로파일 플래그는 상기 비디오 비트스트림이 속하는 프로파일을 표시하는데 사용되며, 상기 레벨 플래그는 상기 비디오 비트스트림이 속하는 레벨을 표시하는데 사용되며; 그리고
    상기 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값을 상기 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 이용하는 것은,
    상기 프로파일 플래그 및 상기 레벨 플래그를 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림의 상기 디코딩 능력 정보로서 이용하는 것을 포함하는,
    비디오 디코딩 방법.
  11. 비디오 인코딩 방법으로서,
    비디오 픽처가 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 인코딩되도록 허용되면, 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 참조함으로써 상기 비디오 픽처를 인코딩하여, 인코딩된 데이터를 획득하는 단계; 및
    제 1 플래그를 상기 인코딩된 데이터에 추가하여, 비디오 비트스트림을 획득하는 단계를 포함하며,
    제 1 값인 상기 제 1 플래그의 값은 상기 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값이 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 사용된다는 것을 표시하는,
    비디오 인코딩 방법.
  12. 제 11 항에 있어서,
    상기 제 1 플래그는 상기 비디오 비트스트림의 상기 시퀀스 헤더에 위치되는,
    비디오 인코딩 방법.
  13. 제 11 항 또는 제 12 항에 있어서,
    상기 제 1 플래그는 동일한 파라미터 플래그를 포함하며, 상기 동일한 파라미터 플래그는 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림의 상기 목표 파라미터의 값이 상기 비디오 비트스트림의 상기 시퀀스 헤더 내 상기 목표 파라미터의 값과 동일한지 여부를 표시하는데 사용되며;
    상기 제 1 값인 상기 동일한 파라미터 플래그의 값은 상기 라이브러리 픽처 비트스트림의 상기 목표 파라미터의 값이 상기 비디오 비트스트림의 상기 시퀀스 헤더 내 상기 목표 파라미터의 값과 동일하다는 것을 표시하는,
    비디오 인코딩 방법.
  14. 제 11 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 비디오 비트스트림은 라이브러리 픽처 참조 플래그를 더 포함하며, 상기 라이브러리 픽처 참조 플래그는 상기 비디오 비트스트림이 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 참조함으로써 디코딩되도록 허용되는지 여부를 표시하는데 사용되는,
    비디오 인코딩 방법.
  15. 제 11 항 내지 제 14 항 중 어느 한 항에 있어서,
    상기 비디오 비트스트림은 라이브러리 픽처 플래그를 더 포함하며, 상기 제 2 값인 라이브러리 픽처 플래그의 값은 상기 비디오 비트스트림이 상기 라이브러리 픽처 비트스트림이 아니라는 것을 표시하는,
    비디오 인코딩 방법.
  16. 제 11 항 내지 제 15 항 중 어느 한 항에 있어서,
    상기 목표 파라미터는 디코딩 능력 정보를 포함하며, 상기 디코딩 능력 정보는 상기 인코딩된 데이터의 비디오 파라미터 세트 VPS에 위치되거나, 상기 인코딩된 데이터의 시퀀스 파라미터 세트 SPS에 위치되거나, 또는 상기 비디오 비트스트림의 상기 시퀀스 헤더에 위치되는,
    비디오 인코딩 방법.
  17. 제 11 항 내지 제 16 항 중 어느 한 항에 있어서,
    상기 목표 파라미터는 디코딩 능력 정보를 포함하며, 상기 디코딩 능력 정보는 프로파일 플래그 및 레벨 플래그를 포함하며, 상기 프로파일 플래그는 상기 라이브러리 픽처 비트스트림이 속하는 프로파일을 표시하는데 사용되며, 상기 레벨 플래그는 상기 라이브러리 픽처 비트스트림이 속하는 레벨을 표시하는데 사용되는,
    비디오 인코딩 방법.
  18. 비디오 디코딩 장치로서,
    비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 디코딩되도록 허용되면, 상기 비디오 비트스트림으로부터 제 1 플래그를 파싱하고; 그리고 상기 제 1 플래그의 값이 제 1 값일 때, 상기 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값을 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 이용하도록 구성된 파싱 모듈; 및
    상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 획득하기 위해, 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림의 상기 목표 파라미터의 값 및 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림에 기초하여, 복원하도록 구성된 복원 모듈을 포함하는,
    비디오 디코딩 장치.
  19. 제 18 항에 있어서,
    상기 복원 모듈은 상기 비디오 비트스트림에 대응하는 비디오 픽처를 획득하기 위해 상기 비디오 비트스트림 및 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처에 기초하여 복원하도록 추가로 구성되는,
    비디오 디코딩 장치.
  20. 제 18 항 또는 제 19 항에 있어서,
    상기 제 1 플래그는 상기 비디오 비트스트림의 상기 시퀀스 헤더에 위치되는,
    비디오 디코딩 장치.
  21. 제 18 항 내지 제 20 항 중 어느 한 항에 있어서,
    상기 제 1 플래그는 동일한 파라미터 플래그를 포함하며, 상기 동일한 파라미터 플래그는 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림의 상기 목표 파라미터의 값이 상기 비디오 비트스트림의 상기 시퀀스 헤더 내 상기 목표 파라미터의 값과 동일한지 여부를 표시하는데 사용되며;
    상기 제 1 값인 상기 동일한 파라미터 플래그의 값은 상기 라이브러리 픽처 비트스트림의 상기 목표 파라미터의 값이 상기 비디오 비트스트림의 상기 시퀀스 헤더 내 상기 목표 파라미터의 값과 동일하다는 것을 표시하는,
    비디오 디코딩 장치.
  22. 제 18 항 내지 제 21 항 중 어느 한 항에 있어서,
    상기 목표 파라미터는 디코딩 능력 정보를 포함하며, 상기 복원 모듈은 사용될 디코더의 디코딩 능력이 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림의 상기 디코딩 능력 정보의 값에 의해 표시되는 요건을 만족하는지 여부를 결정하고; 그리고 상기 사용될 디코더의 상기 디코딩 능력이 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림의 상기 디코딩 능력 정보의 값에 의해 표시되는 상기 요건을 만족할 때, 상기 사용될 디코더를 이용하여, 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림을 파싱하고; 그리고 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 획득하기 위해 복원하도록 구성되는,
    비디오 디코딩 장치.
  23. 제 18 항 내지 제 22 항 중 어느 한 항에 있어서,
    상기 파싱 모듈은 상기 비디오 비트스트림으로부터 라이브러리 픽처 참조 플래그를 파싱하는 것으로서, 상기 라이브러리 픽처 참조 플래그는 상기 비디오 비트스트림이 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 참조함으로써 디코딩되도록 허용되는지 여부를 표시하는데 사용되는, 상기 파싱하고; 그리고 상기 비디오 비트스트림이 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 참조함으로써 디코딩되도록 허용된다고 상기 라이브러리 픽처 참조 플래그의 값이 표시하면, 상기 비디오 비트스트림으로부터 상기 제 1 플래그를 파싱하도록 구성되는,
    비디오 디코딩 장치.
  24. 제 23 항에 있어서,
    상기 비디오 비트스트림은 라이브러리 픽처 플래그를 포함하며, 상기 라이브러리 픽처 플래그의 값은 제 2 값이며, 상기 제 2 값인 상기 라이브러리 픽처 플래그 상기 비디오 비트스트림이 상기 라이브러리 픽처 비트스트림이 아니라는 것을 표시하는,
    비디오 디코딩 장치.
  25. 제 23 항 또는 제 24 항에 있어서,
    상기 파싱 모듈은 현재의 비트스트림으로부터 상기 라이브러리 픽처 플래그를 획득하고; 그리고 상기 라이브러리 픽처 플래그의 값이 상기 비디오 비트스트림이 상기 라이브러리 픽처 비트스트림이 아니라고 표시할 때에만 상기 현재의 비트스트림을 상기 비디오 비트스트림으로서 이용하고, 그리고 상기 비디오 비트스트림으로부터 상기 라이브러리 픽처 참조 플래그를 파싱하도록 추가로 구성되는,
    비디오 디코딩 장치.
  26. 제 18 항 내지 제 25 항 중 어느 한 항에 있어서,
    상기 목표 파라미터는 상기 디코딩 능력 정보를 포함하며, 상기 파싱 모듈은 상기 비디오 비트스트림의 비디오 파라미터 세트 VPS로부터 상기 라이브러리 픽처 비트스트림의 상기 디코딩 능력 정보를 파싱하거나; 상기 비디오 비트스트림의 시퀀스 파라미터 세트 SPS로부터 상기 라이브러리 픽처 비트스트림의 상기 디코딩 능력 정보를 파싱하거나; 또는 상기 비디오 비트스트림의 상기 시퀀스 헤더로부터 상기 라이브러리 픽처 비트스트림의 상기 디코딩 능력 정보를 파싱하도록 추가로 구성되는,
    비디오 디코딩 장치.
  27. 제 18 항 내지 제 26 항 중 어느 한 항에 있어서,
    상기 목표 파라미터는 디코딩 능력 정보를 포함하며, 상기 비디오 비트스트림의 상기 디코딩 능력 정보는 프로파일 플래그 및 레벨 플래그를 포함하며, 상기 프로파일 플래그는 상기 비디오 비트스트림이 속하는 프로파일을 표시하는데 사용되며, 상기 레벨 플래그는 상기 비디오 비트스트림이 속하는 레벨을 표시하는데 사용되며; 상기 파싱 모듈은 상기 프로파일 플래그 및 상기 레벨 플래그를 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림의 상기 디코딩 능력 정보로서 이용하도록 구성되는,
    비디오 디코딩 장치.
  28. 비디오 인코딩 장치로서,
    비디오 픽처가 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조하여 인코딩되도록 허용되면, 인코딩된 데이터를 획득하기 위해 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 참조함으로써 상기 비디오 픽처를 인코딩하도록 구성된 인코딩 모듈; 및
    비디오 비트스트림을 획득하기 위해 제 1 플래그를 상기 인코딩된 데이터에 추가하도록 구성된 추가 모듈을 포함하며,
    제 1 값인 상기 제 1 플래그의 값은 상기 비디오 비트스트림의 시퀀스 헤더 내 목표 파라미터의 값이 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림의 목표 파라미터의 값으로서 사용된다는 것을 표시하는,
    비디오 인코딩 장치.
  29. 제 28 항에 있어서,
    상기 제 1 플래그는 상기 비디오 비트스트림의 상기 시퀀스 헤더에 위치되는,
    비디오 인코딩 장치.
  30. 제 28 항 또는 제 29 항에 있어서,
    상기 제 1 플래그는 동일한 파라미터 플래그를 포함하며, 상기 동일한 파라미터 플래그는 상기 비디오 비트스트림에 의해 참조되는 상기 라이브러리 픽처 비트스트림의 상기 목표 파라미터의 값이 상기 비디오 비트스트림의 상기 시퀀스 헤더 내 상기 목표 파라미터의 값과 동일한지 여부를 표시하는데 사용되며;
    상기 제 1 값인 상기 동일한 파라미터 플래그의 값은 상기 라이브러리 픽처 비트스트림의 상기 목표 파라미터의 값이 상기 비디오 비트스트림의 상기 시퀀스 헤더 내 상기 목표 파라미터의 값과 동일하다는 것을 표시하는,
    비디오 인코딩 장치.
  31. 제 28 항 내지 제 30 항 중 어느 한 항에 있어서,
    상기 비디오 비트스트림은 라이브러리 픽처 참조 플래그를 더 포함하며, 상기 라이브러리 픽처 참조 플래그는 상기 비디오 비트스트림이 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 참조함으로써 디코딩되도록 허용되는지 여부를 표시하는데 사용되는,
    비디오 인코딩 장치.
  32. 제 28 항 내지 제 31 항 중 어느 한 항에 있어서,
    상기 비디오 비트스트림은 라이브러리 픽처 플래그를 더 포함하며, 상기 제 2 값인 라이브러리 픽처 플래그의 값은 상기 비디오 비트스트림이 상기 라이브러리 픽처 비트스트림이 아니라는 것을 표시하는,
    비디오 인코딩 장치.
  33. 제 28 항 내지 제 32 항 중 어느 한 항에 있어서,
    상기 목표 파라미터는 디코딩 능력 정보를 포함하며, 상기 디코딩 능력 정보는 상기 인코딩된 데이터의 비디오 파라미터 세트 VPS에 위치되거나, 상기 인코딩된 데이터의 시퀀스 파라미터 세트 SPS에 위치되거나, 또는 상기 비디오 비트스트림의 상기 시퀀스 헤더에 위치되는,
    비디오 인코딩 장치.
  34. 제 28 항 내지 제 33 항 중 어느 한 항에 있어서,
    상기 목표 파라미터는 디코딩 능력 정보를 포함하며, 상기 디코딩 능력 정보는 프로파일 플래그 및 레벨 플래그를 포함하며, 상기 프로파일 플래그 및 상기 레벨 플래그는 상기 라이브러리 픽처 비트스트림의 상기 디코딩 능력 정보를 표시하는데 사용되며, 상기 프로파일 플래그는 상기 라이브러리 픽처 비트스트림이 속하는 프로파일을 표시하는데 사용되며, 상기 레벨 플래그는 상기 라이브러리 픽처 비트스트림이 속하는 레벨을 표시하는데 사용되는,
    비디오 인코딩 장치.
  35. 비디오 코딩 디바이스로서,
    상기 디바이스는 메모리 및 프로세서를 포함하며; 상기 메모리는 적어도 하나의 명령을 저장하며, 상기 적어도 하나의 명령은 제 1 항 내지 제 34 항 중 어느 한 항에 따른 방법을 구현하기 위해, 상기 프로세서에 의해 로드되어 실행되는,
    비디오 코딩 디바이스.
  36. 컴퓨터-판독가능 저장 매체로서,
    상기 저장 매체는 적어도 하나의 명령을 저장하며, 프로세서는 제 1 항 내지 제 34 항 중 어느 한 항에 따른 방법을 구현하기 위해 상기 명령을 로드하여 실행하는,
    컴퓨터-판독가능 저장 매체.
  37. 비디오 디코딩 방법으로서,
    비디오 비트스트림으로부터 라이브러리 픽처 참조 플래그를 파싱하는 단계로서, 상기 라이브러리 픽처 참조 플래그는 상기 라이브러리 픽처 참조 플래그를 포함하는 상기 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되도록 허용되는지 여부를 표시하는데 사용되는, 상기 파싱하는 단계; 및
    상기 비디오 비트스트림이 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 참조함으로써 디코딩되도록 허용된다는 것을 상기 라이브러리 픽처 참조 플래그가 표시할 때, 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 획득하고, 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처에 기초하여 상기 비디오 비트스트림을 디코딩하는 단계를 포함하는,
    비디오 디코딩 방법.
  38. 제 37 항에 있어서,
    상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 획득하는 단계는,
    상기 비디오 비트스트림으로부터 동일한 표준 플래그를 파싱하는 단계로서, 상기 동일한 표준은 상기 라이브러리 픽처 비트스트림을 디코딩하는데 사용되는 표준이 상기 비디오 비트스트림을 디코딩하는데 사용되는 표준과 동일한지 여부를 표시하는데 사용되는, 상기 파싱하는 단계; 및
    상기 라이브러리 픽처 비트스트림을 디코딩하는데 사용되는 상기 표준이 상기 비디오 비트스트림을 디코딩하는데 사용되는 상기 표준과 동일하다고 상기 동일한 표준이 표시할 때, 상기 라이브러리 픽처 비트스트림을 획득하고, 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 획득하기 위해 상기 라이브러리 픽처 비트스트림을 디코딩하는 단계를 포함하는,
    비디오 디코딩 방법.
  39. 제 37 항에 있어서,
    상기 동일한 표준 플래그는 상기 비디오 비트스트림의 비디오 파라미터 세트(video parameters set), 상기 비디오 비트스트림의 시퀀스 파라미터 세트(sequence parameters set), 또는 상기 비디오 비트스트림의 시퀀스 헤더(sequence header)에 위치되는,
    비디오 디코딩 방법.
  40. 제 38 항에 있어서,
    상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 획득하는 단계는,
    상기 라이브러리 픽처 비트스트림을 획득하고, 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 획득하기 위해 상기 라이브러리 픽처 비트스트림을 디코딩하는 단계를 포함하는,
    비디오 디코딩 방법.
  41. 제 38 항 내지 제 40 항 중 어느 한 항에 있어서,
    상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 획득하기 위해 상기 라이브러리 픽처 비트스트림을 디코딩하는 단계는,
    상기 비디오 비트스트림으로부터 상기 라이브러리 픽처 비트스트림의 디코딩 능력 정보를 파싱하는 단계, 및 상기 비디오 비트스트림을 현재 디코딩하는 디코더의 디코딩 능력이 상기 디코딩 능력 정보의 요건을 만족할 때, 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 획득하기 위해 상기 라이브러리 픽처 비트스트림을 디코딩하는 단계를 포함하는,
    비디오 디코딩 방법.
  42. 제 41 항에 있어서,
    상기 디코딩 능력 정보는 상기 라이브러리 픽처 비트스트림이 속하는 프로파일 및/또는 상기 라이브러리 픽처 비트스트림이 속하는 레벨을 포함하며, 상기 라이브러리 픽처 비트스트림이 속하는 프로파일 및/또는 상기 라이브러리 픽처 비트스트림이 속하는 레벨을 포함하는 상기 디코딩 능력 정보는 상기 라이브러리 픽처 비트스트림을 디코딩하는데 요구되는 디코딩 능력을 표시하는,
    비디오 디코딩 방법.
  43. 제 37 항 내지 제 42 항 중 어느 한 항에 있어서,
    상기 비디오 비트스트림은 라이브러리 픽처 플래그 또는 상기 라이브러리 픽처 플래그에 관한 정보를 포함하며, 상기 라이브러리 픽처 플래그에 관한 상기 정보는 상기 라이브러리 픽처 플래그를 표시하는데 사용되며; 상기 라이브러리 픽처 플래그의 값은 상기 비디오 비트스트림이 상기 라이브러리 픽처 비트스트림이 아니라는 것을 표시하는데 사용되는,
    비디오 디코딩 방법.
  44. 제 43 항에 있어서,
    상기 라이브러리 픽처 참조 플래그는 상기 비디오 비트스트림이 상기 라이브러리 픽처 비트스트림이 아니라는 것을 표시하는데 상기 라이브러리 픽처 플래그의 값이 사용될 때에만 상기 비디오 비트스트림으로부터 파싱되는,
    비디오 디코딩 방법.
  45. 제 43 항 또는 제 44 항에 있어서,
    상기 비디오 비트스트림은 동일한 파라미터 플래그를 포함하며; 상기 동일한 파라미터 플래그의 값은 라이브러리 픽처 비트스트림의 시퀀스 헤더 내 상기 라이브러리 픽처 플래그 이외의 파라미터의 값이 상기 비디오 비트스트림의 상기 시퀀스 헤더 내 상기 라이브러리 픽처 플래그 이외의 파라미터의 값과 동일한지 여부를 표시하는데 사용되는,
    비디오 디코딩 방법.
  46. 제 37 항 내지 제 45 항 중 어느 한 항에 있어서,
    상기 라이브러리 픽처 참조 플래그는 상기 비디오 비트스트림의 상기 비디오 파라미터 세트(video parameters set), 상기 비디오 비트스트림의 상기 시퀀스 파라미터 세트(sequence parameters set), 또는 상기 비디오 비트스트림의 상기 시퀀스 헤더(sequence header)에 위치되는,
    비디오 디코딩 방법.
  47. 비디오 디코딩 방법으로서,
    라이브러리 픽처 비트스트림의 디코딩 능력 정보를 획득하기 위해 비디오 비트스트림을 파싱하는 단계; 및
    상기 비디오 비트스트림을 현재 디코딩하는 디코더의 디코딩 능력이 상기 디코딩 능력 정보의 요건을 만족할 때, 상기 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하고, 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처에 기초하여 상기 비디오 비트스트림을 디코딩하는 단계를 포함하는,
    비디오 디코딩 방법.
  48. 비디오 디코딩 디바이스로서,
    비디오 비트스트림으로부터 라이브러리 픽처 참조 플래그를 파싱하도록 구성된 파싱 유닛으로서, 상기 라이브러리 픽처 참조 플래그는 상기 라이브러리 픽처 참조 플래그를 포함하는 상기 비디오 비트스트림이 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 참조함으로써 디코딩되도록 허용되는지 여부를 표시하는데 사용되는, 상기 파싱 유닛; 및
    상기 비디오 비트스트림이 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 참조함으로써 디코딩되도록 허용된다는 것을 상기 라이브러리 픽처 참조 플래그가 표시할 때, 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처를 획득하고, 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처에 기초하여 상기 비디오 비트스트림을 디코딩하도록 구성된 복원 유닛을 포함하는,
    비디오 디코딩 디바이스.
  49. 비디오 디코딩 디바이스로서,
    라이브러리 픽처 비트스트림의 디코딩 능력 정보를 획득하기 위해 비디오 비트스트림을 파싱하도록 구성된 파싱 유닛;
    상기 비디오 비트스트림을 현재 디코딩하는 디코더의 디코딩 능력이 상기 디코딩 능력 정보의 요건을 만족할 때, 상기 라이브러리 픽처 비트스트림에 대응하는 라이브러리 픽처를 획득하고, 상기 라이브러리 픽처 비트스트림에 대응하는 상기 라이브러리 픽처에 기초하여 상기 비디오 비트스트림을 디코딩하도록 구성된 복원 유닛을 포함하는,
    비디오 디코딩 디바이스.
  50. 비디오 코딩 디바이스로서,
    서로 커플링된 비-휘발성 메모리 및 프로세서를 포함하며, 상기 프로세서는 상기 메모리에 저장된 프로그램 코드를 호출하여 제 37 항 내지 제 47 항 중 어느 한 항에 따른 방법을 수행하는,
    비디오 코딩 디바이스.
KR1020217024788A 2019-01-08 2020-01-07 비디오 디코딩 방법, 비디오 코딩 방법, 장치, 디바이스, 및 저장 매체 KR20210107865A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201910018725.6 2019-01-08
CN201910018725 2019-01-08
CN201910888383.3A CN111416976B (zh) 2019-01-08 2019-09-19 视频解码方法、视频编码方法、装置、设备及存储介质
CN201910888383.3 2019-09-19
PCT/CN2020/070592 WO2020143594A1 (zh) 2019-01-08 2020-01-07 视频解码方法、视频编码方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
KR20210107865A true KR20210107865A (ko) 2021-09-01

Family

ID=71494331

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217024788A KR20210107865A (ko) 2019-01-08 2020-01-07 비디오 디코딩 방법, 비디오 코딩 방법, 장치, 디바이스, 및 저장 매체

Country Status (5)

Country Link
US (1) US11638003B2 (ko)
EP (1) EP3902274A4 (ko)
KR (1) KR20210107865A (ko)
CN (1) CN111416976B (ko)
WO (1) WO2020143594A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021121419A1 (en) 2019-12-19 2021-06-24 Beijing Bytedance Network Technology Co., Ltd. Interaction between adaptive color transform and quantization parameters
CN115211123A (zh) * 2020-01-05 2022-10-18 抖音视界有限公司 视频编解码的通用约束信息
CN115176470A (zh) 2020-01-18 2022-10-11 抖音视界有限公司 图像/视频编解码中的自适应颜色变换
CN111988626B (zh) * 2020-07-22 2023-10-27 浙江大华技术股份有限公司 帧参考方法、设备及存储介质
CN114173127A (zh) * 2020-08-23 2022-03-11 腾讯科技(深圳)有限公司 视频处理方法、装置、设备及存储介质
CN112055231B (zh) * 2020-08-31 2021-10-15 浙江大华技术股份有限公司 视频解码方法、解码装置、解码器及电子设备
CN112714320B (zh) * 2020-12-25 2023-05-19 杭州海康威视数字技术股份有限公司 一种解码方法、解码设备及计算机可读存储介质
CN115396678A (zh) 2021-05-24 2022-11-25 腾讯科技(深圳)有限公司 多媒体资源中轨道数据的处理方法、装置、介质及设备
CN113347424B (zh) * 2021-05-27 2022-08-05 上海国茂数字技术有限公司 视频编码数据存储方法、装置及可读存储介质
CN113973222A (zh) * 2021-12-02 2022-01-25 成都统信软件技术有限公司 一种视频播放方法、装置及计算设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101103867B1 (ko) * 2003-09-07 2012-01-12 마이크로소프트 코포레이션 이미지 또는 비디오를 코딩/디코딩하는 방법 및 매체
WO2012033972A1 (en) * 2010-09-10 2012-03-15 Thomson Licensing Methods and apparatus for pruning decision optimization in example-based data pruning compression
CN102238390B (zh) * 2011-08-05 2013-03-20 中国科学院深圳先进技术研究院 基于图像库的视频和图像的编码解码方法与系统
US20140003799A1 (en) * 2012-06-30 2014-01-02 Divx, Llc Systems and methods for decoding a video sequence encoded using predictions that include references to frames in reference segments from different video sequences
WO2015062002A1 (en) * 2013-10-31 2015-05-07 Mediatek Singapore Pte. Ltd. Methods for sub-pu level prediction
EP3092806A4 (en) * 2014-01-07 2017-08-23 Nokia Technologies Oy Method and apparatus for video coding and decoding
US20160119673A1 (en) * 2014-10-28 2016-04-28 Aaron William Rees System and Method for Transmitting, Receiving, and Displaying High Resolution Images
CN104768011B (zh) * 2015-03-31 2018-03-06 浙江大学 图像编解码方法和相关装置
CN105100801B (zh) * 2015-07-24 2017-11-28 西安空间无线电技术研究所 一种基于大数据的大压缩比数据压缩方法
CN107396138A (zh) * 2016-05-17 2017-11-24 华为技术有限公司 一种视频编解码方法及设备
CN108712655B (zh) * 2018-05-24 2020-01-31 西安电子科技大学 一种用于相似图像集合并的群体图像编码方法
EP4018670A4 (en) * 2019-08-22 2023-08-16 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR SIGNALING IMAGE INFORMATION IN VIDEO CODING

Also Published As

Publication number Publication date
US20210344903A1 (en) 2021-11-04
WO2020143594A1 (zh) 2020-07-16
US11638003B2 (en) 2023-04-25
EP3902274A4 (en) 2022-08-10
CN111416976A (zh) 2020-07-14
CN111416976B (zh) 2023-12-08
EP3902274A1 (en) 2021-10-27

Similar Documents

Publication Publication Date Title
CA3115867C (en) Inter prediction method and apparatus
US11638003B2 (en) Video coding and decoding methods and devices using a library picture bitstream
KR20210018490A (ko) 루마 및 크로마 성분에 대한 ibc 전용 버퍼 및 디폴트 값 리프레싱을 사용하는 인코더, 디코더 및 대응하는 방법들
JP2022500943A (ja) 逆量子化のための装置及び方法
KR102549670B1 (ko) 크로마 블록 예측 방법 및 디바이스
KR20210077759A (ko) 이미지 예측 방법 및 디바이스
JP7225375B2 (ja) パレット符号化を使用するエンコード装置、デコード装置および対応する方法
JP2022524357A (ja) エンコーダ、デコーダ、及び対応するインター予測方法
US20210289222A1 (en) Encoder, decoder and corresponding methods of most probable mode list construction for blocks with multi-hypothesis prediction
CN111416981B (zh) 视频图像解码、编码方法及装置
US11496754B2 (en) Video encoder, video decoder, and corresponding method of predicting random access pictures
KR20210139446A (ko) 인트라 스무딩을 위한 방법 및 장치
KR20220051399A (ko) 시퀀스 파라미터 세트에서의 서브픽처 시그널링을 위한, 인코더, 디코더 및 대응하는 방법
JP2022551313A (ja) ピクチャヘッダのシグナリングを簡略化するためのエンコーダ、デコーダ及び対応する方法
KR20220051402A (ko) 가중 예측을 위한 하이-레벨 시그널링의 방법 및 장치
US20210289203A1 (en) Video encoder, video decoder, and corresponding method
JP7299331B2 (ja) ビデオコーディングにおけるクロマイントラ予測のための方法及び装置
JP2022549288A (ja) クロミナンス量子化パラメータのシグナリングのための方法及び装置
KR20210111311A (ko) 비디오 인코더, 비디오 디코더 및 대응하는 방법
JP7414976B2 (ja) エンコーダ、デコーダ、および、対応する方法
RU2798316C2 (ru) Способ и аппаратура внешнего предсказания
WO2020073928A1 (en) Inter prediction method and apparatus
KR20220154792A (ko) 인코더, 디코더 및 대응하는 방법
JP2023515189A (ja) スライス用のピクチャパーティション情報をシグナリングするためのデコーダ及び対応する方法

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal