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

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

Info

Publication number
KR102224703B1
KR102224703B1 KR1020167028702A KR20167028702A KR102224703B1 KR 102224703 B1 KR102224703 B1 KR 102224703B1 KR 1020167028702 A KR1020167028702 A KR 1020167028702A KR 20167028702 A KR20167028702 A KR 20167028702A KR 102224703 B1 KR102224703 B1 KR 102224703B1
Authority
KR
South Korea
Prior art keywords
picture
layer
temporal
access
sublayer
Prior art date
Application number
KR1020167028702A
Other languages
English (en)
Other versions
KR20160132992A (ko
Inventor
미스카 하누크셀라
Original Assignee
노키아 테크놀로지스 오와이
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 노키아 테크놀로지스 오와이 filed Critical 노키아 테크놀로지스 오와이
Publication of KR20160132992A publication Critical patent/KR20160132992A/ko
Application granted granted Critical
Publication of KR102224703B1 publication Critical patent/KR102224703B1/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/328Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • 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/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • 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/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

Landscapes

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

Abstract

방법은 제 1 스케일러빌리티 계층상 및 최저 시간 서브계층상의 제 1 픽처를 인코딩하는 단계와, 제 2 스케일러빌리티 계층상 및 최저 시간 서브계층상의 제 2 픽처를 인코딩하는 단계 - 제 1 픽처 및 제 2 픽처는 동시 순간을 나타냄 - 와, 제 1 픽처와 연관되고, 제 1 픽처의 픽처 타입이 단계별 시간 서브계층 액세스(STSA) 픽처와 다르다고 표시하는 값을 가진, 하나 이상의 제 1 신택스 요소를 인코딩하는 단계와, 제 2 픽처와 연관되고, 제 2 픽처의 픽처 타입이 단계별 시간 서브계층 액세스 픽처라고 표시하는 값을 가진, 하나 이상의 제 2 신택스 요소를 인코딩하는 단계와, 제 2 스케일러빌리티 계층상 및 최저 시간 서브계층보다 높은 시간 서브계층상의 적어도 제 3 픽처를 인코딩하는 단계를 포함한다.

Description

비디오 코딩 및 디코딩 장치, 방법 및 컴퓨터 프로그램{AN APPARATUS, A METHOD AND A COMPUTER PROGRAM FOR VIDEO CODING AND DECODING}
본 발명은 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램에 관한 것이다.
스케일러블 비디오 코딩은 하나의 비트스트림이 콘텐츠의 여러 가지 표현을 상이한 비트 레이트, 해상도, 및/또는 프레임 레이트로 포함하고 있을 수 있는 코딩 구조를 말한다. 이러한 경우, 수신기는 그의 특성에 따라 원하는 표현을 추출할 수 있다. 이와 달리, 서버 또는 네트워크 요소는 예를 들면, 네트워크 특성 또는 수신기의 처리 능력에 따라 수신기로 전송될 비트스트림의 일부분을 추출할 수 있다. 전형적으로 스케일러블 비트스트림은 이용 가능한 최저 품질의 비디오를 제공하는 기본 계층(basic layer) 및 하위 계층과 함께 수신되어 디코딩될 때 비디오 품질을 강화하는 하나 이상의 강화 계층(enhancement layer)으로 이루어진다. 강화 계층의 코딩 효율을 개선하기 위해, 그 계층의 코딩된 표현은 전형적으로 하위 계층에 의존한다.
코딩 표준 및 시스템은 디코딩 동작이 일어나는 스케일러블 계층 및/또는 서브계층을 표시할 수 있고 그리고/또는 디코딩되는 스케일러블 계층 및/또는 서브계층을 포함하는 서브비트스트림과 연관될 수 있는 용어 동작점(operation point) 또는 이와 유사한 것을 거론할 수 있다.
SHVC(H.265/HEVC의 스케일러블 확장) 및 MV-HEVC(H.265/HEVC의 멀티뷰(Multiview) 확장)에서, 동작점의 정의는 타겟의 출력 계층 설정을 고려하는 것을 포함될 수 있다. SHVC 및 MV-HEVC에서, 동작점은 다른 비트스트림, 타겟의 최고 시간 레벨(highest temporal level), 및 타겟 계층 식별자 리스트를 입력으로 하여 서브비트스트림 추출 프로세스의 동작에 의해 다른 비트스트림으로부터 생성된, 그리고 한 세트의 타겟 출력 계층과 연관된 비트스트림으로 정의될 수 있다.
그러나 당대의 다양한 비디오 코딩 표준에서 스케일러빌리티 디자인은 몇 가지 제한을 가지고 있다. 예를 들면, SHVC에서, 액세스 유닛(access unit)의 픽처는 동일한 시간 레벨을 가져야 한다. 이것은 인코더가 예측 계층화(prediction hierarchy)를 계층 전체에서 상이하게 결정할 수 없게 하며, 그래서 빈번한 서브계층 상향 스위치 포인트(up-switch point)를 사용할 가능성 및/또는 더 나은 레이트 왜곡 수행을 달성할 가능성을 제한한다. 더욱이, 다른 제한은 시간 레벨 스위치 픽처가 최저 시간 레벨에서 허용되지 않는다는 것이다. 이것은 액세스 픽처 또는 액세스 포인트를 (반드시 모두는 아니지만) 일부 시간 레벨의 디코딩을 할 수 있게 하는 계층에 표시하는 것을 못하게 한다.
이제 전술한 문제를 최소한 경감하기 위하여, 본 명세서에서는 제한된 계층 액세스 픽처를 인코딩 및 디코딩하기 위한 방법이 도입된다.
제 1 실시예에 따른 방법은,
제 1 스케일러빌리티 계층의 코딩된 픽처를 수신하는 단계와,
상기 제 1 스케일러빌리티 계층의 코딩된 픽처를 디코딩하는 단계와,
제 2 스케일러빌리티 계층의 코딩된 픽처를 수신하는 단계 - 제 2 스케일러빌리티 계층은 제 1 스케일러빌리티 계층에 의존함 - 와,
제 2 스케일러빌리티 계층의 코딩된 픽처로부터 상기 제 2 스케일러빌리티 계층상의 계층 액세스 픽처를 선택하는 단계 - 선택된 계층 액세스 픽처는 최저 시간 서브계층상의 단계별 시간 서브계층 액세스(step-wise temporal sub-layer access, STSA) 픽처임 - 와,
디코딩 순서에서 선택된 계층 액세스 픽처에 앞서는 제 2 스케일러빌리티 계층상의 코딩된 픽처를 무시하는 단계와,
선택된 계층 액세스 픽처를 디코딩하는 단계를 포함한다.
실시예에 따르면, 단계별 시간 서브계층 액세스 픽처는 하나 이상의 시간 서브계층을 가진 비트스트림의 디코딩의 계층별 초기화를 위한 액세스 포인트를 제공한다.
실시예에 따르면, 단계별 시간 서브계층 액세스 픽처는 하나 이상의 시간 계층을 가진 비트스트림의 계층별 비트레이트 적응을 위한 액세스 포인트를 제공한다.
실시예에 따르면, 방법은 또한,
비트스트림과 함께 제공되는 특정 NAL 유닛 타입에 속하는 단계별 시간 서브계층 액세스 픽처에 관한 표시를 수신하는 단계를 포함한다.
실시예에 따르면, 방법은 또한,
디코딩 가능한 서브계층의 개수를 정의하는 SEI 메시지를 가진 단계별 시간 서브계층 액세스 픽처에 관한 표시를 수신하는 단계를 포함한다.
실시예에 따르면, 방법은 또한,
기본 계층이 인트라 랜덤 액세스 포인트(IRAP) 픽처 또는 최저 서브계층상의 단계별 시간 서브계층 액세스 픽처(STSA) 픽처를 포함하는 것에 대응하여 비트스트림의 디코딩을 시작하는 단계와,
적어도 하나의 강화 계층이 IRAP 픽처 또는 최저 서브계층상의 STSA 픽처를 포함하는 것에 대응하여 적어도 하나의 강화 계층의 단계별 디코딩을 시작하는 단계와,
디코딩된 계층의 개수 및/또는 디코딩된 시간 서브계층의 개수를 점진적으로 증가시키는 단계를 포함한다.
실시예에 따르면, 방법은 또한,
디코딩 순서에서 특정 강화 계층 내 첫 픽처의 참조 픽처에 이용 불가능한 픽처를 생성하는 단계를 포함한다.
실시예에 따르면, 방법은 또한,
특정 강화 계층의 디코딩이 시작될 수 있는 IRAP 픽처에 선행하는 픽처의 디코딩을 생략하는 단계를 포함한다.
실시예에 따르면, 방법은 또한,
하나 이상의 특정 NAL 유닛 타입에 의해 생략된 픽처를 라벨링하는 단계를 포함한다.
실시예에 따르면, 방법은 또한,
각 층의 서브계층이 정확히 디코딩되었다는 정보를 유지하는 단계를 포함한다.
실시예에 따르면, 방법은 또한,
단계별 디코딩을 시작하는 단계는 다음과 같은 조건적 동작,
- 현재 픽처가 IRAP 픽처이고 IRAP 픽처의 모든 참조 계층의 디코딩이 시작되었을 때, 디코딩 순서에서 동일 계층 내 IRAP 픽처 및 그 뒤에 오는 모든 픽처는 디코딩된다는 것과,
- 현재 픽처가 최저 서브계층에 있는 IRAP 픽처이고 STSA 픽처의 모든 참조 계층의 최저 서브계층의 디코딩이 시작되었을 때, 디코딩 순서에서 동일 계층 내 STSA 픽처 및 STSA 픽처에 뒤에 오는 최저 서브계층에 있는 모든 픽처는 디코딩된다는 것과,
- 현재 픽처가 최저 서브계층보다 높은 서브계층에 있는 TSA 또는 STSA 픽처이고, 동일 계층에서 다음으로 낮은 서브계층의 디코딩이 시작되었으며, TSA 또는 STSA 픽처의 모든 참조 계층의 동일한 서브계층의 디코딩이 시작되었을 때, 디코딩 순서에서 동일 계층 내 TSA 또는 STSA 픽처 및 TSA 또는 STSA 픽처에 뒤에 오는 동일 서브 계층에 있는 모든 픽처는 디코딩된다는 것 중 하나 이상을 포함한다.
제 2 실시예에 따른 방법은,
제 1 스케일러빌리티 계층의 코딩된 픽처를 수신하는 단계와,
제 2 스케일러빌리티 계층의 코딩된 픽처를 수신하는 단계 - 제 2 스케일러빌리티 계층은 제 1 스케일러빌리티 계층에 의존함 - 와,
제 2 스케일러빌리티 계층의 코딩된 픽처로부터 제 2 스케일러빌리티 계층상의 계층 액세스 픽처를 선택하는 단계 - 선택된 계층 액세스 픽처는 최저 시간 서브계층상의 단계별 시간 서브계층 액세스 픽처임 - 와,
디코딩 순서에서 선택된 계층 액세스 픽처에 앞서는 제 2 스케일러빌리티 계층상의 코딩된 픽처를 무시하는 단계와,
제 1 스케일러빌리티 계층의 코딩된 픽처 및 선택된 계층 액세스 픽처를 비트스트림으로 전송하는 단계를 포함한다.
제 3 실시예에 따른 장치는,
적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하며, 적어도 하나의 메모리에는 코드가 저장되고, 코드는 적어도 하나의 프로세서에 의해 실행될 때, 장치로 하여금 적어도,
제 1 스케일러빌리티 계층의 코딩된 픽처를 수신하는 것과,
제 1 스케일러빌리티 계층의 코딩된 픽처를 디코딩하는 것과,
제 2 스케일러빌리티 계층의 코딩된 픽처를 수신하는 것 - 제 2 스케일러빌리티 계층은 제 1 스케일러빌리티 계층에 의존함 - 과,
제 2 스케일러빌리티 계층의 코딩된 픽처로부터 제 2 스케일러빌리티 계층상의 계층 액세스 픽처를 선택하는 것 - 선택된 계층 액세스 픽처는 최저 시간 서브계층상의 단계별 시간 서브계층 액세스 픽처임 - 과,
디코딩 순서에서 선택된 계층 액세스 픽처에 앞서는 제 2 스케일러빌리티 계층상의 코딩된 픽처를 무시하는 것과,
선택된 계층 액세스 픽처를 디코딩하는 것을 수행하게 한다.
제 4 실시예에 따른 장치는,
적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하며, 적어도 하나의 메모리에는 코드가 저장되고, 코드는 적어도 하나의 프로세서에 의해 실행될 때, 장치로 하여금 적어도,
제 1 스케일러빌리티 계층의 코딩된 픽처를 수신하는 과,
제 2 스케일러빌리티 계층의 코딩된 픽처를 수신하는 것 - 제 2 스케일러빌리티 계층은 제 1 스케일러빌리티 계층에 의존함 - 과,
제 2 스케일러빌리티 계층의 코딩된 픽처로부터 제 2 스케일러빌리티 계층상의 계층 액세스 픽처를 선택하는 것 - 선택된 계층 액세스 픽처는 최저 시간 서브계층상의 단계별 시간 서브계층 액세스 픽처임 - 과,
디코딩 순서에서 선택된 계층 액세스 픽처에 앞서는 제 2 스케일러빌리티 계층상의 코딩된 픽처를 무시하는 것과,
제 1 스케일러빌리티 계층의 코딩된 픽처 및 선택된 계층 액세스 픽처를 비트스트림으로 전송하는 것을 수행하게 한다.
제 5 실시예에 따르면, 장치에 의해 사용하기 위한 코드가 저장된 컴퓨터 판독가능한 저장 매체가 제공되며, 코드는 프로세서에 의해 실행될 때, 장치로 하여금,
제 1 스케일러빌리티 계층의 코딩된 픽처를 수신하는 것과,
제 1 스케일러빌리티 계층의 코딩된 픽처를 디코딩하는 것과,
제 2 스케일러빌리티 계층의 코딩된 픽처를 수신하는 것 - 제 2 스케일러빌리티 계층은 제 1 스케일러빌리티 계층에 의존함 - 과,
제 2 스케일러빌리티 계층의 코딩된 픽처로부터 제 2 스케일러빌리티 계층상의 계층 액세스 픽처를 선택하는 것 - 선택된 계층 액세스 픽처는 최저 시간 서브계층상의 단계별 시간 서브계층 액세스(step-wise temporal sub-layer access, STSA) 픽처임 - 과,
디코딩 순서에서 선택된 계층 액세스 픽처에 앞서는 제 2 스케일러빌리티 계층상의 코딩된 픽처를 무시하는 것과,
선택된 계층 액세스 픽처를 디코딩하는 것을 수행하게 한다.
제 6 실시예에 따르면, 이미지 시퀀스를 포함하는 비트스트림을 디코딩하도록 구성된 비디오 디코더를 포함하는 장치가 제공되며, 비디오 디코더는,
제 1 스케일러빌리티 계층의 코딩된 픽처를 수신하는 수단과,
제 1 스케일러빌리티 계층의 코딩된 픽처를 디코딩하는 수단과,
제 2 스케일러빌리티 계층의 코딩된 픽처를 수신하는 수단 - 제 2 스케일러빌리티 계층은 제 1 스케일러빌리티 계층에 의존함 - 과,
제 2 스케일러빌리티 계층의 코딩된 픽처로부터 제 2 스케일러빌리티 계층상의 계층 액세스 픽처를 선택하는 수단 - 선택된 계층 액세스 픽처는 최저 시간 서브계층상의 단계별 시간 서브계층 액세스 픽처임 - 과,
디코딩 순서에서 선택된 계층 액세스 픽처에 앞서는 제 2 스케일러빌리티 계층상의 코딩된 픽처를 무시하는 수단과,
선택된 계층 액세스 픽처를 디코딩하는 수단을 포함한다.
제 7 실시예에 따르면, 이미지 시퀀스를 포함하는 비트스트림을 디코딩하도록 구성된 비디오 디코더가 제공되며, 상기 비디오 디코더는 또한,
제 1 스케일러빌리티 계층의 코딩된 픽처를 수신하고,
제 1 스케일러빌리티 계층의 코딩된 픽처를 디코딩하고,
제 2 스케일러빌리티 계층의 코딩된 픽처를 수신 - 제 2 스케일러빌리티 계층은 제 1 스케일러빌리티 계층에 의존함 - 하고,
제 2 스케일러빌리티 계층의 코딩된 픽처로부터 제 2 스케일러빌리티 계층상의 계층 액세스 픽처를 선택 - 선택된 계층 액세스 픽처는 최저 시간 서브계층상의 단계별 시간 서브계층 액세스 픽처임 - 하고,
디코딩 순서에서 선택된 계층 액세스 픽처에 앞서는 제 2 스케일러빌리티 계층상의 코딩된 픽처를 무시하고,
선택된 계층 액세스 픽처를 디코딩하도록 구성된다.
제 8 실시예에 따른 방법은,
제 1 스케일러빌리티 계층상 및 최저 시간 서브계층상의 제 1 픽처를 인코딩하는 단계와,
제 2 스케일러빌리티 계층상 및 최저 시간 서브계층상의 제 2 픽처를 인코딩하는 단계 - 제 1 픽처 및 제 2 픽처는 동시 순간을 나타냄 - 와,
제 1 픽처와 연관되고, 제 1 픽처의 픽처 타입이 단계별 시간 서브계층 액세스(step-wise temporal sub-layer access, STSA) 픽처와 다르다고 표시하는 값을 가진, 하나 이상의 제 1 신택스 요소를 인코딩하는 단계와,
제 2 픽처와 연관되고, 제 2 픽처의 픽처 타입이 단계별 시간 서브계층 액세스 픽처라고 표시하는 값을 가진, 하나 이상의 제 2 신택스 요소를 인코딩하는 단계와,
제 2 스케일러빌리티 계층상 및 최저 시간 서브계층보다 높은 시간 서브계층상의 적어도 제 3 픽처를 인코딩하는 단계를 포함한다.
실시예에 따르면, 단계별 시간 서브계층 액세스 픽처는 하나 이상의 시간 서브계층을 가진 비트스트림의 디코딩의 계층별 초기화를 위한 액세스 포인트를 제공한다.
실시예에 따르면, 단계별 시간 서브계층 액세스 픽처는 TemporalId가 0인 STSA 픽처이다.
실시예에 따르면, 방법은 또한,
단계별 시간 서브계층 액세스 픽처를 특정 NAL 유닛 타입에 의해 비트스트림으로 시그널링하는 단계를 포함한다.
실시예에 따르면, 방법은 또한,
단계별 시간 서브계층 액세스 픽처를 디코딩 가능한 서브계층의 개수를 정의하는 SEI 메시지로 시그널링하는 단계를 포함한다.
실시예에 따르면, 방법은 또한,
제 2 스케일러빌리티 계층 또는 제 1 스케일러빌리티 계층보다 빈번한 TSA 또는 STSA 픽처를 포함하는 임의의 다른 스케일러빌리티 계층을 인코딩하는 단계를 포함한다.
제 9 실시예에 따른 장치는,
적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하며, 적어도 하나의 메모리에는 코드가 저장되고, 코드는 적어도 하나의 프로세서에 의해 실행될 때, 장치로 하여금 적어도,
제 1 스케일러빌리티 계층상 및 최저 시간 서브계층상의 제 1 픽처를 인코딩하는 것과,
제 2 스케일러빌리티 계층상 및 최저 시간 서브계층상의 제 2 픽처를 인코딩하는 것 - 제 1 픽처 및 제 2 픽처는 동시 순간을 나타냄 - 과,
제 1 픽처와 연관되고, 제 1 픽처의 픽처 타입이 단계별 시간 서브계층 액세스 픽처와 다르다고 표시하는 값을 가진, 하나 이상의 제 1 신택스 요소를 인코딩하는 것과,
제 2 픽처와 연관되고, 제 2 픽처의 픽처 타입이 단계별 시간 서브계층 액세스 픽처라고 표시하는 값을 가진, 하나 이상의 제 2 신택스 요소를 인코딩하는 것과,
제 2 스케일러빌리티 계층상 및 최저 시간 서브계층보다 높은 시간 서브계층상의 적어도 제 3 픽처를 인코딩하는 것을 수행하게 한다.
제 10 실시예에 따르면, 장치에 의해 사용하기 위한 코드가 저장된 컴퓨터 판독가능한 저장 매체가 제공되며, 코드는 프로세서에 의해 실행될 때, 장치로 하여금,
제 1 스케일러빌리티 계층상 및 최저 시간 서브계층상의 제 1 픽처를 인코딩하는 것과,
제 2 스케일러빌리티 계층상 및 최저 시간 서브계층상의 제 2 픽처를 인코딩하는 것 - 제 1 픽처 및 제 2 픽처는 동시 순간을 나타냄 - 과,
제 1 픽처와 연관되고, 제 1 픽처의 픽처 타입이 단계별 시간 서브계층 액세스 픽처와 다르다고 표시하는 값을 가진, 하나 이상의 제 1 신택스 요소를 인코딩하는 것과,
제 2 픽처와 연관되고, 제 2 픽처의 픽처 타입이 단계별 시간 서브계층 액세스 픽처라고 표시하는 값을 가진, 하나 이상의 제 2 신택스 요소를 인코딩하는 것과,
제 2 스케일러빌리티 계층상 및 최저 시간 서브계층보다 높은 시간 서브계층상의 적어도 제 3 픽처를 인코딩하는 것을 수행하게 한다.
제 11 실시예에 따르면, 이미지 시퀀스를 포함하는 비트스트림을 인코딩하도록 구성된 비디오 인코더를 포함하는 장치가 제공되며, 비디오 인코더는,
제 1 스케일러빌리티 계층상 및 최저 시간 서브계층상의 제 1 픽처를 인코딩하는 수단과,
제 2 스케일러빌리티 계층상 및 최저 시간 서브계층상의 제 2 픽처를 인코딩하는 수단 - 제 1 픽처 및 제 2 픽처는 동시 순간을 나타냄 - 과,
제 1 픽처와 연관되고, 제 1 픽처의 픽처 타입이 단계별 시간 서브계층 액세스 픽처와 다르다고 표시하는 값을 가진, 하나 이상의 제 1 신택스 요소를 인코딩하는 수단과,
제 2 픽처와 연관되고, 제 2 픽처의 픽처 타입이 단계별 시간 서브계층 액세스 픽처라고 표시하는 값을 가진, 하나 이상의 제 2 신택스 요소를 인코딩하는 수단과,
제 2 스케일러빌리티 계층상 및 최저 시간 서브계층보다 높은 시간 서브계층상의 적어도 제 3 픽처를 인코딩하는 수단을 포함한다.
제 12 실시예에 따르면, 이미지 시퀀스를 포함하는 비트스트림을 인코딩하도록 구성된 비디오 인코더가 제공되며, 상기 비디오 인코더는 또한,
제 1 스케일러빌리티 계층상 및 최저 시간 서브계층상의 제 1 픽처를 인코딩하고,
제 2 스케일러빌리티 계층상 및 최저 시간 서브계층상의 제 2 픽처를 인코딩 - 제 1 픽처 및 제 2 픽처는 동시 순간을 나타냄 - 하고,
제 1 픽처와 연관되고, 제 1 픽처의 픽처 타입이 단계별 시간 서브계층 액세스 픽처와 다르다고 표시하는 값을 가진, 하나 이상의 제 1 신택스 요소를 인코딩하고,
제 2 픽처와 연관되고, 제 2 픽처의 픽처 타입이 단계별 시간 서브계층 액세스 픽처라고 표시하는 값을 가진, 하나 이상의 제 2 신택스 요소를 인코딩하고,
제 2 스케일러빌리티 계층상 및 최저 시간 서브계층보다 높은 시간 서브계층상의 적어도 제 3 픽처를 인코딩하도록 구성된다.
제 13 실시예에 따른 방법은,
제 1 스케일러빌리티 계층상 및 최저 시간 서브계층상의 제 1 픽처를 인코딩하는 단계와,
제 2 스케일러빌리티 계층상의 제 2 픽처를 인코딩하는 단계 - 제 1 픽처 및 제 2 픽처는 동일한 액세스 유닛에 소속함 - 와,
액세스 유닛과 연관되고, 시간 레벨 식별자 값이 액세스 유닛 내에서 코딩된 제 1 및 제 2 픽처에 맞추어 조정되어 있는지를 표시하는 값을 가진, 하나 이상의 제 1 신택스 요소를 인코딩하는 단계를 포함한다.
제 14 실시예에 따른 방법은,
제 1 스케일러빌리티 계층상 및 최저 시간 서브계층상에서 인코딩된 제 1 픽처 및 제 2 스케일러빌리티 계층상에서 인코딩된 제 2 픽처를 갖는 액세스 유닛을 포함하는 비트스트림을 수신하는 단계와,
비트스트림으로부터, 액세스 유닛과 연관되고, 시간 레벨 식별자 값이 액세스 유닛 내에서 코딩된 제 1 픽처 및 제 2 픽처에 정렬되어 있는지를 표시하는 값을 가진, 하나 이상의 제 1 신택스 요소를 디코딩하는 단계와,
상기 값에 따라서 제 1 픽처 및 제 2 픽처에 필요한 디코딩 동작을 선택하는 단계를 포함한다.
본 발명의 더 나은 이해를 위해, 이제 첨부 도면이 예의 형태로 참조될 것이다.
도 1은 본 발명의 일부 실시예를 적용하는 전자 디바이스를 개략적으로 도시한다.
도 2는 본 발명의 일부 실시예를 적용하는데 적합한 사용자 장비를 개략적으로 도시한다.
도 3은 무선 및 유선 네트워크 커넥션을 사용하여 연결된 본 발명의 실시예를 적용하는 전자 디바이스를 추가적으로 개략적으로 도시한다.
도 4는 본 발명의 일부 실시예를 구현하기에 적합한 인코더를 개략적으로 도시한다.
도 5는 두 개의 타일로 이루어진 픽처의 예를 도시한다.
도 6은 현재 블록 및 움직임 예측 후보로서 사용할 수 있는 다섯 개의 공간 이웃의 예를 도시한다.
도 7은 본 발명의 실시예에 따른 인코딩 방법의 흐름도를 도시한다.
도 8은 본 발명의 실시예에 따른 인코딩 예를 예시한다.
도 9는 본 발명의 다른 실시예에 따른 인코딩 예를 예시한다.
도 10은 본 발명의 또 다른 실시예에 따른 인코딩 예를 예시한다.
도 11은 본 발명의 또 다른 실시예에 따른 인코딩 예를 예시한다.
도 12는 본 발명의 실시예에 따른 디코딩 방법의 흐름도를 도시한다.
도 13은 본 발명의 실시예에 따른 비트레이트 적응(bitrate adaption) 방법의 흐름도를 도시한다.
도 14는 본 발명의 실시예에 따른 비트레이트 적응 예를 예시한다.
도 15는 본 발명의 다른 실시예에 따른 비트레이트 적응 예를 예시한다.
도 16은 본 발명의 또 다른 실시예에 따른 비트레이트 적응 예를 예시한다.
도 17은 본 발명의 또 다른 실시예에 따른 비트레이트 적응 예를 예시한다.
도 18은 본 발명의 실시예를 구현하기에 적합한 디코더의 개략도를 도시한다.
도 19a 및 도 19b는 조정된 참조 계층 옵셋(scaled reference layer offset)의 사용을 예시한다.
도 20은 다양한 실시예가 구현될 수 있는 예시적인 멀티미디어 통신 시스템의 개략도를 도시한다.
아래에서는 코딩 효율을 크게 희생하지 않고 강화 계층 서브픽처를 인코딩하는데 적합한 장치 및 가능한 메커니즘을 더 자세하게 설명한다. 이와 관련하여, 먼저 도 1 및 도 2가 참조되는데, 도 1은 본 발명의 실시예에 따른 코덱을 포함할 수 있는 예시적인 장치 또는 전자 디바이스(50)의 개략적인 블록도로서 예시적인 실시예에 따른 비디오 코딩 시스템의 블록도를 도시한다. 도 2는 예시적인 실시예에 따른 장치의 레이아웃을 도시한다. 도 1 및 도 2의 요소는 다음에 설명될 것이다.
전자 디바이스(50)는 예를 들면, 무선 통신 시스템의 이동 단말기 또는 사용자 장비일 수 있다. 그러나, 본 발명의 실시예는 비디오 이미지를 인코딩하고 디코딩하는 것을 필요로 할 수 있는 또는 비디오 이미지를 인코딩하거나 디코딩하는 것을 필요로 할 수 있는 모든 전자 디바이스 또는 장치 내에서 구현될 수 있다는 것이 인식될 것이다.
장치(50)는 디바이스를 내장하고 보호하는 하우징(30)을 포함할 수 있다. 장치(50)는 또한 액정 디스플레이 형태의 디스플레이(32)를 포함할 수 있다. 본 발명의 다른 실시예에서, 디스플레이는 이미지 또는 비디오를 디스플레이하는데 적합한 임의의 적절한 디스플레이 기술일 수 있다. 장치(50)는 키패드(34)를 더 포함할 수 있다. 본 발명의 다른 실시예에서, 임의의 적절한 데이터 또는 사용자 인터페이스 메커니즘이 채용될 수 있다. 예를 들면, 사용자 인터페이스는 터치-감응식 디스플레이의 일부로서 가상 키보드 또는 데이터 입력 시스템으로 구현될 수 있다.
장치는 마이크로폰(36) 또는 디지털 또는 아날로그 신호 입력일 수 있는 임의의 적절한 오디오 입력을 포함할 수 있다. 장치(50)는 또한 본 발명의 실시예에서 수화기(38), 스피커, 또는 아날로그 오디오나 디지털 오디오 출력 연결(connection) 중 어느 하나일 수 있는 오디오 출력 디바이스를 포함할 수 있다. 장치(50)는 배터리(40)를 또한 포함할 수 있다(또는 본 발명의 다른 실시예에서 디바이스는 태양 전지, 연료 전지 또는 태엽작동 발전기와 같은 임의의 적절한 모바일 에너지 디바이스에 의해 전력을 공급받을 수 있다). 장치는 또한 이미지 및/또는 비디오를 녹화 또는 촬영할 수 있는 카메라(42)를 포함할 수 있다. 장치(50)는 또한 다른 디바이스와 단거리 시선 통신을 위한 적외선 포트를 포함할 수 있다. 다른 실시예에서, 장치(50)는 또한 예를 들면 블루투스 무선 연결 또는 USB/파이어와이어 유선 연결과 같은 임의의 적합한 단거리 통신 솔루션을 포함할 수 있다.
장치(50)는 장치(50)를 제어하기 위한 컨트롤러(56) 또는 프로세서를 포함할 수 있다. 컨트롤러(56)는 본 발명의 실시예에서 이미지 및 오디오 데이터 형태의 두 가지 데이터를 저장할 수 있는 그리고/또는 컨트롤러(56)에서 실행을 위한 명령어를 또한 저장할 수 있는 메모리(58)에 연결될 수 있다. 컨트롤러(56)는 또한 오디오 및/또는 비디오 데이터의 코딩 및 디코딩을 실행하기에 적합하거나 또는 컨트롤러(56)에 의해 실행되는 코딩 및 디코딩 시에 보조하기에 적합한 코덱 회로(54)에 연결될 수 있다.
장치(50)는 또한 카드 리더(48) 및 스마트 카드(46), 예를 들면, 사용자 정보를 제공하고 네트워크에서 사용자의 인증 및 인가에 필요한 인증 정보를 제공하는데 적합한 UICC 및 UICC 판독기를 더 포함할 수 있다.
장치(50)는 컨트롤러에 연결되며 그리고, 예를 들면, 셀룰러 통신 네트워크, 무선 통신 시스템 또는 무선 근거리 네트워크와 통신을 위한 무선 통신 신호를 발생하기에 적합한 무선 인터페이스 회로(52)를 포함할 수 있다. 장치(50)는 또한 무선 인터페이스 회로(52)에 연결되어 무선 인터페이스 회로(52)에서 발생된 무선 주파수 신호를 다른 장치(들)에 전송하고 다른 장치(들)로부터 무선 주파수 신호를 수신하기 위한 안테나(44)를 포함할 수 있다.
장치(50)는 개개의 프레임을 기록 또는 검출한 다음 이를 처리를 위해 코덱(54) 또는 컨트롤러에 전달할 수 있는 카메라를 포함할 수 있다. 장치는 다른 디바이스로부터 처리를 위한 비디오 이미지 데이터를 수신한 다음 전송 및/또는 저장할 수 있다. 장치(50)는 또한 코딩/디코딩을 위한 이미지를 무선으로 또는 유선 연결을 통해 수신할 수 있다.
도 3과 관련하여, 본 발명의 실시예가 활용될 수 있는 시스템의 일 예가 도시된다. 시스템(10)은 하나 이상의 네트워크를 통해 통신할 수 있는 복수의 통신 디바이스를 포함한다. 시스템(10)은 이것으로 제한되는 것은 아니지만 (GSM, UMTS, CDMA 네트워크 등과 같은) 무선 셀룰러 텔레폰 네트워크, IEEE 802.x 표준 중 임의의 표준에 의해 정의된 바와 같은 무선 근거리 네트워크(wireless local area network, WLAN), 블루투스 개인 영역 네트워크, 이더넷 근거리 네트워크, 토큰 링 근거리 네트워크, 광역 네트워크, 및 인터넷을 비롯한 유선 또는 무선 네트워크의 임의의 조합을 포함할 수 있다.
시스템(10)은 본 발명의 실시예를 구현하기에 적합한 유선 및 무선 통신 디바이스 및/또는 장치(50)를 모두 포함할 수 있다.
예를 들어, 도 3에 도시된 시스템은 이동전화 네트워크(11) 및 인터넷(28)의 표현을 보여준다. 인터넷(28)과의 연결성은 이것으로 제한되는 것은 아니지만 장거리 무선 연결, 단거리 무선 연결, 및 이것으로 제한되는 것은 아니지만 전화선, 케이블선, 전력선, 및 이와 유사한 통신 경로를 비롯한 각종 유선 연결을 포함할 수 있다.
시스템(10)에서 도시된 예시적인 통신 디바이스는 이것으로 제한되는 것은 아니지만, 전자 디바이스 또는 장치(50), 개인 휴대정보 단말기(personal digital assistant, PDA)와 이동 전화(14)의 겸용, PDA(16), 통합 메시징 디바이스(integrated messaging device, IMD)(18), 데스크톱 컴퓨터(20), 노트북 컴퓨터(22)를 포함할 수 있다. 장치(50)는 고정형일 수 있거나 아니면 이동하는 개인이 휴대할 때는 이동형일 수 있다. 장치(50)는 또한 이것으로 제한되는 것은 아니지만 차, 트럭, 택시, 버스, 열차, 보트, 비행기, 자전거, 모터사이클 또는 임의의 유사하고 적합한 운송 방식을 비롯한 운송 방식 내에 배치될 수 있다.
실시예는 또한 셋톱 박스에서, 즉 디스플레이 또는 무선 기능을 가질 수도/갖지 않을 수도 있는 디지털 TV 수신기에서, 하드웨어 또는 소프트웨어, 또는 인코더/디코더 구현의 조합을 가질 수 있는 태블릿 또는 (랩톱) 퍼스널 컴퓨터(personal computer, PC)에서, 각종 오퍼레이팅 시스템에서, 그리고 칩셋, 프로세서, DSP 및/또는 하드웨어/소프트웨어 기반 코딩을 제공하는 임베디드 시스템에서 구현될 수 있다.
일부의 장치 또는 다른 장치는 기지국(24)과의 무선 연결(25)을 통해 호 및 메시지를 송수신하고 서비스 제공자와 통신할 수 있다. 기지국(24)은 이동전화 네트워크(11)와 인터넷(28) 사이에서 통신을 가능하게 해주는 네트워크 서버(26)에 연결될 수 있다. 시스템은 부수적인 통신 디바이스 및 다양한 종류의 통신 디바이스를 포함할 수 있다.
통신 디바이스는 이것으로 제한되는 것은 아니지만, 코드 분할 다중 액세스(code division multiple access, CDMA), 전세계 이동 통신 시스템(global systems for mobile communications, GSM), 범용 이동 통신 시스템(universal mobile telecommunications system, UMTS), 시분할 다중 액세스(time divisional multiple access, TDMA), 주파수 분할 다중 액세스(frequency division multiple access, FDMA), 전송 제어 프로토콜-인터넷 프로토콜(transmission control protocol-internet protocol, TCP-IP), 단문 메시징 서비스(short messaging service, SMS), 멀티미디어 메시징 서비스(multimedia messaging service, MMS), 이메일, 인스턴스 메시징 서비스(instant messaging service, IMS), 블루투스, IEEE 802.11 및 임의의 유사한 무선 통신 기술을 포함하는 각종 전송 기술을 이용하여 통신할 수 있다. 본 발명의 다양한 실시예를 구현하는데 연루되는 통신 디바이스는 이것으로 제한되는 것은 아니지만 무선, 적외선, 레이저, 케이블 연결, 및 임의의 적합한 연결을 비롯한 각종 미디어를 이용하여 통신할 수 있다.
비디오 코덱은 입력 비디오를 저장/전송에 적합한 압축된 표현으로 변환하는 인코더 및 압축된 비디오 표현을 볼 수 있는 형태로 다시 복원할 수 있는 디코더로 구성된다. 전형적으로 인코더는 비디오를 더 밀집한 형태(즉, 더 낮은 비트레이트)로 표현하기 위하여 원(original) 비디오 시퀀스에서 약간의 정보를 버린다.
예를 들면, ITU-T H.263 및 H.264의 인코더 구현 예일 수 있는 전형적인 하이브리드 비디오 코덱은 비디오 정보를 두 가지 국면으로 인코딩한다. 첫째로, 소정 픽처 영역(또는 "블록") 내 픽셀 값은, 예를 들면 (코딩되는 블록에 밀접하게 대응하는 이전에 코딩된 비디오 프레임들 중 한 프레임 내에서 영역을 찾아 표시하는) 움직임 보상 수단에 의해 또는 (명시된 방식으로 코딩되는 블록 주변의 픽셀 값을 이용하는) 공간 수단에 의해 예측된다. 두 번째로, 예측 오차, 즉 예측된 픽셀 블록과 원 픽셀 블록 간의 차가 코딩된다. 전형적으로 이것은 명시된 변환(예를 들면, 이산 코사인 변환(Discrete Cosine Transform, DCT) 또는 그의 변형)을 이용하여 픽셀 값의 차를 변환하고, 계수를 양자화하고 양자화된 계수를 엔트로피 인코딩함으로써 이루어진다. 양자화 프로세스의 충실도를 변화시킴으로써, 인코더는 픽셀 표현의 정확도(픽처 품질)와 결과적으로 코딩된 비디오 표현의 크기(파일 크기 또는 전송 비트레이트) 간의 균형을 조절할 수 있다.
시간 예측, 움직임 보상, 또는 움직임 보상 예측이라고도 지칭될 수 있는 인터 예측(inter prediction)은 시간 중복성을 줄여준다. 인터 예측에서, 예측의 소스는 이전에 디코딩된 픽처이다. 인트라 예측(intra prediction)은 동일한 픽처 내 인접한 픽셀들은 아마도 상관성이 있을 것 같다라는 사실을 활용한다. 인트라 예측은 공간 또는 변환 도메인에서 수행될 수 있다. 즉, 샘플 값 또는 변환 계수 중 어느 하나가 예측될 수 있다. 전형적으로 인트라 예측은 인트라 코딩에서 이용되며, 인트라 코딩에서는 아무런 인터 예측이 적용되지 않는다.
코딩 절차의 하나의 결과는 움직임 벡터 및 양자화된 변환 계수와 같은 일련의 코딩 파라미터이다. 많은 파라미터는 만일 이 파라미터가 공간적으로 또는 시간적으로 이웃 파라미터로부터 먼저 예측된다면 더 효과적으로 엔트로피-코딩될 수 있다. 예를 들어, 움직임 벡터는 공간적으로 인접한 움직임 벡터로부터 예측될 수 있고 움직임 벡터 예측기에 대한 차만이 코딩될 수 있다. 코딩 파라미터의 예측 및 인트라 예측은 일괄하여 인-픽처 예측(in-picture prediction)이라 지칭될 수 있다.
도 4는 본 발명의 실시예를 적용하기에 적합한 비디오 인코더의 블록도를 도시한다. 도 4는 두 계층의 인코더를 보여주지만, 제시된 인코더는 둘보다 많은 계층을 인코딩하기 위해 같은 모양으로 확장될 수 있다는 것이 인식될 것이다. 도 4는 기본 계층 용도의 제 1 인코더 섹션(500) 및 강화 계층 용도의 제 2 인코더 섹션(502)을 포함하는 비디오 인코더의 실시예를 예시한다. 제 1 인코더 섹션(500) 및 제 2 인코더 섹션(502)는 각기 들어오는 픽처를 인코딩하는 유사한 요소를 포함할 수 있다. 인코더 섹션(500, 502)은 픽셀 예측기(302, 402), 예측 오차 인코더(303, 403) 및 예측 오차 디코더(304, 404)를 포함할 수 있다. 도 4는 또한 픽셀 예측기(302, 402)의 실시예가 인터-예측기(306, 406), 인트라-예측기(308, 408), 모드 선택기(310, 410), 필터(316, 416), 및 참조 프레임 메모리(318, 418)를 포함하는 것으로 도시한다. 제 1 인코더 섹션(500)의 픽셀 예측기(302)는 (이미지와 움직임 보상된 참조 프레임(318) 간의 차를 결정하는) 인터-예측기(306)와 (현재 프레임 또는 픽처의 이미 처리된 부분만을 기초로 하여 이미지 블록에 대한 예측을 결정하는) 인트라-예측기(308) 양측에서 인코딩될 비디오 스트림의 베이스 계층 이미지를 수신(300)한다. 두 인터-예측기와 인트라-예측기의 출력은 모드 선택기(310)로 전달된다. 인트라-예측기(308)는 하나보다 많은 인트라-예측 모드를 가질 수 있다. 그래서 각각의 모드는 인트라-예측을 수행하고 예측된 신호를 모드 선택기(310)로 제공할 수 있다. 모드 선택기(310)는 또한 베이스 계층 픽처(300)의 카피를 수신한다. 대응적으로, 제 2 인코더 섹션(502)의 픽셀 예측기(402)는 (이미지와 움직임 보상된 참조 프레임(418) 간의 차를 결정하는) 인터-예측기(406)와 (현재 프레임 또는 픽처의 이미 처리된 부분만을 기초로 하여 이미지 블록에 대한 예측을 결정하는) 인트라-예측기(408) 양측에서 인코딩될 비디오 스트림의 강화 계층 이미지를 수신(400)한다. 두 인터-예측기와 인트라-예측기의 출력은 모드 선택기(410)로 전달된다. 인트라-예측기(408)는 하나보다 많은 인트라-예측 모드를 가질 수 있다. 그래서 각각의 모드는 인트라-예측을 수행하고 예측된 신호를 모드 선택기(410)로 제공할 수 있다. 모드 선택기(410)는 또한 강화 계층 픽처(300)의 카피를 수신한다.
어느 인코딩 모드가 현재 블록을 인코딩하기 위해 선택되는지에 따라서, 인터-예측기(306, 406)의 출력 또는 선택사양의 인트라-예측기 모드 중 하나의 모드의 출력 또는 모드 선택기 내 서피스 인코더(surface encoder)의 출력이 모드 선택기(310, 410)의 출력으로 전달된다. 모드 선택기의 출력은 제 1 합산 디바이스(321, 421)로 전달된다. 제 1 합산 디바이스는 픽셀 예측기(302, 402)의 출력을 베이스 계층 픽처(300)/강화 계층 픽처(400)로부터 감산하여 제 1 예측 오차 신호(320, 420)를 생성하며, 이 신호는 예측 오차 인코더(303, 403)에 입력된다.
픽셀 예측기(302, 402)는 또한 일차 재구성기(preliminary reconstructor)(339, 439)로부터 이미지 블록의 예측 표현(312, 412)과 예측 오차 디코더(304, 404)의 출력(338, 438)의 조합을 수신한다. 일차 재구성된 이미지(314, 414)는 인트라-예측기(308, 408) 및 필터(316, 416)로 전달될 수 있다. 일차 표현을 수신하는 필터(316, 416)는 일차 표현을 필터링하고 최종의 재구성된 이미지(340, 440)를 출력할 수 있으며, 이 최종의 재구성된 이미지는 참조 프레임 메모리(318, 418)에 저장될 수 있다. 참조 프레임 메모리(318)는 참조 이미지로서 사용되기 위해 인터-예측기(306)에 연결될 수 있으며 이 참조 이미지에 대비하여 미래의 베이스 계층 픽처(300)가 인터-예측 동작에서 비교된다. 일부 실시예에 따라서 강화 계층의 인터-계층 샘플 예측 및/또는 인터-계층 움직임 정보 예측을 위해 선택되고 그의 소스일 것으로 표시되면, 참조 프레임 메모리(318)는 또한 참조 이미지로서 사용되기 위해 인터-예측기(406)에 연결될 수 있으며 이 참조 이미지에 대비하여 미래의 강화 계층 픽처(400)가 인터-예측 동작에서 비교된다. 또한, 참조 프레임 메모리(418)는 참조 이미지로서 사용되기 위해 인터-예측기(406)에 연결될 수 있으며 이 참조 이미지에 대비하여 미래의 베이스 계층 픽처(400)가 인터-예측 동작에서 비교된다.
제 1 인코더 섹션(500)의 필터(316)로부터 필터링 파라미터는 일부 실시예에 따라서 베이스 계층이 강화 계층의 필터링 파라미터를 예측하기 위한 소스인 것으로 선택되고 표시되는 제 2 인코더 섹션(502)으로 제공될 수 있다.
예측 오차 인코더(303, 403)는 변환 유닛(342, 442) 및 양자화기(344, 444)를 포함한다. 변환 유닛(342, 442)은 제 1 예측 오차 신호(320, 420)를 변환 도메인으로 변환한다. 변환은 예를 들면, DCT 변환이다. 양자화기(344, 444)는 변환 도메인 신호 예를 들면, DCT 계수를 양자화하여 양자화된 계수를 형성한다.
예측 오차 디코더(304, 404)는 예측 오차 인코더(303, 403)로부터의 출력을 수신하고 예측 오차 인코더(303, 403)의 프로세스를 반대로 수행하여 디코딩된 예측 오차 신호(338, 438)를 생성하며, 이 디코딩된 예측 오차 신호는 제 2 합산 디바이스(339, 439)에서 이미지 블록(312, 412)의 예측 표현과 조합될 때, 일차 재구성된 이미지(314, 414)를 생성한다. 예측 오차 디코더는 양자화된 계수 값, 예를 들면 DCT 계수를 역양자화하여 변환 신호를 재구성하는 역양자화기(361, 461) 및 재구성된 변환 신호로 역변환을 수행하는 역변환 유닛(363, 463)을 포함하는 것으로 간주될 수 있으며, 이때 역변환 유닛(363, 463)의 출력은 재구성된 블록(들)을 포함하고 있다. 예측 오차 디코더는 추가의 디코딩된 정보 및 필터 파라미터에 따라서 재구성된 블록(들)을 필터링할 수 있는 블록 필터를 또한 포함할 수 있다.
엔트로피 인코더(330, 430)는 예측 오차 인코더(303, 403)의 출력을 수신하고, 오차 검출 및 오차 정정 기능을 제공하기 위해 신호에 대해 적절한 엔트로피 인코딩/가변 길이 인코딩을 수행할 수 있다. 엔트로피 인코더(330, 430)의 출력은 예를 들면 멀티플렉서(508)에 의해 비트스트림으로 삽입될 수 있다.
H.264/AVC 표준은 국제 전기통신 연합(International Telecommunication Union, ITU-T)의 전기통신 표준화 부분의 비디오 코딩 전문가 그룹(Video Coding Experts Group, VCEG)과 국제 표준화 기구(International Standardization Organization, ISO)/국제 전기 기술위원회(International Electrotechnical Commission, IEC)의 동화상 전문가 그룹(Moving Picture Experts Group, MPEG)의 합동 비디오 팀(Joint Video Team, JVT)에 의해 개발되었다. H.264/AVC 표준은 양대 부모 표준화 기구에 의해 공표되며, 이 표준은 ITU-T 권고안 H.264 및 ISO/IEC 국제 표준 14496-10이라고 지칭되며, 또한 MPEG-4 파트 10 최신 비디오 코딩(Advanced Video Coding, AVC)이라고도 알려져 있다. 사양서의 새로운 확장 또는 특징을 통합하는 복수개 버전의 H.264/AVC 표준이 있다. 이러한 확장은 스케일러블 비디오 코딩(Scalable Video Coding, SVC) 및 멀티뷰 비디오 코딩(Multiview Video Coding, MVC)을 포함한다.
고효율 비디오 코딩(High Efficiency Video Coding) (H.265/HEVC) 표준은 VCEG 및 MPEG의 비디오 코딩에 관한 합동 협업 팀(Joint Collaborative Team - Video Coding, JCT-VC)에 의해 개발되었다. 이 표준은 양대 부모 표준화 기구에 의해 공표되거나 공표될 것이며, ITU-T 권고안 H.265 및 ISO/IEC 국제 표준 23008-2이라고 지칭되고, 또한 MPEG-H 파트 2 고효율 비디오 코딩(High Efficiency Video Coding, HEVC)이라고도 알려져 있다. 현재 진행 중인 표준화 프로젝트는 각기 SHVC, MV-HEVC, 3D-HEVC, 및 REXT로 약칭될 수 있는 스케일러블, 멀티뷰, 3차원 및 충실도 범위 확장을 비롯한 H.265/HEVC의 확장을 개발하는 것이다.
H.264/AVC 및 HEVC의 몇 가지 주요한 정의, 비트스트림 및 코딩 구조, 그리고 개념은 본 단원에서 실시예가 구현될 수 있는 비디오 인코더, 디코더, 인코딩 방법, 디코딩 방법, 및 비트스트림 구조의 예로서 설명된다. H.264/AVC의 주요한 정의, 비트스트림 및 코딩 구조, 그리고 개념의 일부는 HEVC 표준에서와 동일하며, 그러므로 아래에서는 이들을 연대하여 설명한다. 본 발명의 양태는 H.264/AVC 또는 HEVC으로 제한되지 않고, 오히려 본 발명이 부분적으로 또는 전체적으로 실현될 수 있는 것 이외에 한가지 가능한 근거에 대하여 설명된다.
초기의 많은 비디오 코딩 표준과 유사하게, 비트스트림 신택스 및 시맨틱뿐만 아니라 오류 없는 비트스트림을 위한 디코딩 프로세스가 H.264/AVC 및 HEVC에서 명시되어 있다. 인코딩 프로세스는 명시되어 있지 않지만, 인코더는 규칙을 순응하는 비트스트림을 발생하여야 한다. 비트스트림 및 디코더 순응성은 가상 참조 디코더(Hypothetical Reference Decoder, HRD)를 이용하여 검증될 수 있다. 표준은 전송 오류 및 손실에 대처하는데 도움이 되는 코딩 툴을 포함하고 있지만, 인코딩할 때 툴을 사용하는 것은 선택사양이며 오류가 발생한 비트스트림에 대해 아무런 디코딩 프로세스도 명시되어 있지 않다.
기존의 표준에 관한 설명에서뿐만 아니라 예시적인 실시예의 설명에서, 신택스 요소는 비트스트림으로 표현된 데이터의 요소로 정의될 수 있다. 신택스 구조는 명시된 순서대로 비트스트림에서 함께 존재하는 0개 이상의 신택스 요소라고 정의될 수 있다. 기존의 표준에 관한 설명에서뿐만 아니라 예시적인 실시예의 설명에서, "외부 수단에 의해" 또는 "외부 수단을 통해"라는 관용구가 사용될 수 있다. 예를 들어, 디코딩 프로세스에서 사용되는 신택스 구조 또는 변수 값과 같은 엔티티는 "외부 수단에 의해" 디코딩 프로세스로 제공될 수 있다. "외부 수단에 의해"라는 관용구는 엔티티가 인코더에 의해 생성된 비트스트림에 포함되지 않고, 예를 들면 제어 프로토콜을 사용하여 비트스트림으로부터 외부에서 전달된다는 것을 나타낼 수 있다. 이와 다르게 또는 부가적으로, 이것은 엔티티가 인코더에 의해 생성되지 않고, 예를 들면 디코더를 사용하는 플레이어 또는 디코딩 제어 로직 또는 이와 유사한 것에서 생성될 수 있다는 것을 의미할 수 있다. 디코더는 변수 값과 같은 외부 수단을 입력하기 위한 인터페이스를 가질 수 있다.
프로파일은 디코딩/코딩 표준 또는 사양서에 의해 명시되는 전체 비트스트림 신택스의 서브세트라고 정의될 수 있다. 주어진 프로파일의 신택스에 의해 도입된 경계 내에서는 디코딩된 픽처의 명시된 크기와 같이 비트스트림에서 신택스 요소에 의해 취해진 값에 따라서 인코더 및 디코더의 성능에서 아주 큰 변동을 요구하는 것이 여전히 가능하다. 많은 응용 예에서, 특정 프로파일 내에서 신택스의 모든 가상적 사용에 대처할 수 있는 디코더를 구현하는 것이 실용적이지도 않고 경제적이지도 아닐 수 있다. 이러한 문제에 대처하기 위해, 레벨이 사용될 수 있다. 레벨은 비트스트림에서 신택스 요소의 값 및 디코딩/코딩 표준 또는 사양서에서 명시된 값에 대해 부과된 제약사항의 명시된 집합이라 정의될 수 있다. 이러한 제약사항은 값에 관한 간단한 한정일 수 있다. 이와 달리 또는 부가적으로, 이러한 제약사항은 값의 산술적인 조합(예를 들면, 픽처 폭 곱하기 픽처 높이 곱하기 초당 디코딩된 픽처의 수)에 관한 제약사항의 형태를 가질 수 있다. 레벨의 제약 사항을 명시하기 위한 다른 수단이 또한 사용될 수 있다. 레벨에서 명시된 제약사항 중 일부는 예를 들면 초(second)와 같은 기간 당, 매크로블록과 같은 코딩 유닛의 관점에서 최대 픽처 크기, 최대 비트레이트 및 최대 데이터 레이트와 관련할 수 있다. 모든 프로파일에 대해 동일한 레벨 집합이 정의될 수 있다. 예를 들면, 각 레벨의 정의의 대부분 또는 모든 양상이 여러 프로파일 전반에 공통적일 수 있는 여러 프로파일을 구현하는 단말기의 상호운용성을 높이는 것이 바람직할 수 있다.
H.264/AVC 또는 HEVC 인코더로의 입력 및 H.264/AVC 또는 HEVC 디코더의 출력의 기본 단위는 각기 픽처이다. 인코더로의 입력으로서 제공된 픽처는 소스 픽처라고도 지칭될 수 있으며, 디코더에 의해 디코딩된 픽처는 디코딩된 픽처라고 지칭될 수 있다.
소스 픽처 및 디코딩된 픽처는 각기 다음과 같은 세트의 샘플 어레이 중 하나와 같이 하나 이상의 샘플 어레이로 구성될 수 있다.
- 루마(luma) (Y) 단독(단색(monochrome)).
- 루마 및 두 개의 크로마(chroma) (YCbCr 또는 YCgCo).
- 녹(Green), 청(Blue) 및 적(Red) (GBR, 또는 RGB라고 알려짐).
- 명시되지 않은 다른 단색 또는 3-자극색(tri-stimulus color) 샘플링을 표현하는 어레이(예를 들면, YZX, XYZ라고도 알려짐).
아래에서, 이와 같은 어레이는 루마(또는 L 또는 Y) 및 크로마라고 지칭될 수 있는데, 여기서 두 개의 크로마 어레이는 사용하는 실제의 색 표현 방법에 관계 없이 Cb 및 Cr이라고 지칭될 수 있다. 사용하는 실제의 색 표현 방법은 예를 들면, 코딩된 비트스트림에서, 예를 들면, H.264/AVC 및/또는 HEVC의 비디오 유용성 정보(Video Usability Information, VUI) 신택스를 이용하여 표시될 수 있다. 컴포넌트는 어레이 또는 세 개의 샘플 어레이(루마 및 두 개의 크로마) 중 하나의 어레이 중의 단일 샘플, 또는 어레이 또는 단색 포맷의 픽처로 구성된 어레이의 단일 샘플이라고 정의될 수 있다.
H.264/AVC 또는 HEVC에서, 픽처는 프레임 또는 필드 중 어느 하나일 수 있다. 프레임은 루마 샘플(luma sample)과 아마도 대응하는 크로마 샘플(chroma sample)의 행렬을 포함한다. 필드는, 소스 신호가 인터레이스될 때, 프레임의 교번하는 한 세트의 샘플 로우(row)이며 인코더 입력으로서 사용될 수 있다. 크로마 샘플 어레이는 없을 수 있고 (그래서 단색 샘플링이 사용되고 있을 수 있음) 또는 크로마 샘플 어레이는 루마 샘플 어레이와 비교될 때 서브샘플링될 수 있다. 크로마 포맷은 아래와 같이 요약될 수 있다.
- 단색 샘플링 시, 단 하나의 샘플 어레이만이 있으며, 이것은 명목상 루마 어레이라고 간주될 수 있다.
- 4:2:0 샘플링 시, 두 개의 크로마 어레이는 각기 루마 어레이의 절반 높이 및 절반 폭을 갖는다.
- 4:2:2 샘플링 시, 두 개의 크로마 어레이는 각기 루마 어레이와 동일한 높이 및 절반 폭을 갖는다.
- 4:4:4 샘플링 시, 어떠한 별개의 컬러 평면도 사용되고 있지 않을 때, 두 개의 크로마 어레이는 각기 루마 어레이와 동일한 높이 및 폭을 갖는다.
H.264/AVC 및 HEVC에서, 별개의 컬러 평면으로서 샘플 어레이를 비트스트림으로 코딩하고 비트스트림으로부터 각기 개별적으로 코딩된 컬러 평면을 디코딩하는 것이 가능하다. 별개의 컬러 평면이 사용되고 있을 때, 컬러 평면 각각은 (인코더 및/또는 디코더에 의해) 단색 샘플링된 픽처로서 개별적으로 처리된다.
크로마 서브샘플링(예를 들면, 4:2:0 또는 4:2:2 크로마 샘플링)이 사용되고 있을 때, 루마 샘플에 대해 크로마 샘플의 위치는 인코더 측에서 (예를 들면, 선 처리 단계로서 또는 인코딩의 일부로서) 결정될 수 있다. 루마 샘플 위치에 대해 크로마 샘플 위치는 H.264/AVC 또는 HEVC과 같은 코딩 표준에서 미리 정의될 수 있거나, 예를 들면 H.264/AVC 또는 HEVC의 VUI의 일부로서 비트스트림에서 표시될 수 있다.
분할(partitioning)은 하나의 세트를 서브세트로 나누어서 그 세트의 각 요소가 서브세트 중의 정확히 하나가 되는 것으로 정의될 수 있다.
H.264/AVC에서, 매크로블록은 16x16 루마 샘플 블록 및 대응하는 크로마 샘플 블록이다. 예를 들면, 4:2:0 샘플링 패턴에서, 매크로블록은 각 크로마 컴포넌트 당 하나의 8x8 크로마 샘플 블록을 포함한다. H.264/AVC에서, 픽처는 하나 이상의 슬라이스 그룹으로 분할되며, 슬라이스 그룹은 하나 이상의 슬라이스를 포함한다. H.264/AVC에서, 슬라이스는 특정한 슬라이스 그룹 내에서 래스터 스캔에서 연속하여 정렬되는 정수개의 매크로블록으로 이루어진다.
HEVC 인코딩 및/또는 디코딩의 동작을 설명할 때, 다음과 같은 용어가 사용될 수 있다. 코딩 블록은 코딩 트리 블록을 코딩 블록으로 나누면 하나의 분할이 되도록 N이 어떤 값에 대한 NxN 샘플 블록으로 정의될 수 있다. 코딩 트리 블록(coding tree block, CTB)은 컴포넌트를 코딩 트리 블록으로 나누면 하나의 분할이 되도록 N의 어떤 값에 대한 NxN 샘플 블록으로 정의될 수 있다. 코딩 트리 유닛(coding tree unit, CTU)은 루마 샘플의 코딩 트리 블록, 또는 세 개의 샘플 어레이를 가진 픽처의 크로마 샘플의 두 개의 대응하는 코딩 트리 블록, 또는 세 개의 별개 컬러 평면을 사용하여 코딩된 픽처 또는 단색 픽처의 샘플들의 코딩 트리 블록 및 그 샘플을 코딩하는데 사용된 신택스 구조의 코딩 트리 블록이라고 정의될 수 있다. 코딩 유닛(CU)은 루마 샘플의 코딩 블록, 또는 세 개의 샘플 어레이를 가진 픽처의 크로마 샘플의 두 개의 대응하는 코딩 블록, 또는 세 개의 별개 컬러 평면을 사용하여 코딩된 픽처 또는 단색 픽처의 샘플들의 코딩 블록 및 그 샘플을 코딩하는데 사용된 신택스 구조의 코딩 트리 블록이라고 정의될 수 있다.
고효율 비디오 코딩(HEVC) 코덱과 같은 일부 비디오 코덱에서, 비디오 픽처는 픽처의 영역을 커버하는 코딩 유닛(coding unit, CU)으로 나누어진다. CU는 CU 내 샘플에 대한 예측 프로세스를 정의하는 하나 이상의 예측 유닛(prediction unit, PU) 및 상기 CU 내 샘플에 대한 예측 오차 코딩 프로세스를 정의하는 하나 이상의 변환 유닛(transform unit, TU)으로 구성된다. 전형적으로, CU는 미리 정의된 일련의 가능한 CU 크기로부터 선택 가능한 크기를 갖는 정방형(square)의 샘플 블록으로 구성된다. 최대 허용된 크기의 CU는 통상 LCU(largest coding unit, 최대 코딩 유닛) 또는 코딩 트리 유닛(CTU)이라고 명명되며 비디오 픽처는 겹치지 않는 LCU로 나누어진다. LCU는 예를 들면, 반복적으로 LCU를 잘게 나누고 결과로 생긴 CU를 잘게 나눔으로써, 더 작은 CU들의 조합으로 더 잘게 나누어질 수 있다. 결과로 생긴 CU는 각기 전형적으로 적어도 하나의 PU 및 그와 연관된 적어도 하나의 TU를 갖는다. 각각의 PU 및 TU는 각기 예측 프로세스 및 예측 오차 코딩 프로세스의 그래뉴러리티(granularity)를 높이기 위해 더 작은 PU 및 TU로 더 잘게 나누어질 수 있다. 각각의 PU는 무슨 종류의 예측이 그 PU 내 픽셀에 적용될 것인지를 정의하는 그와 연관된 예측 정보(예를 들면, 인터 예측된 PU 및 인터 예측된 PU에 대한 인트라 예측 방향성(directionality) 정보)를 갖는다.
인트라 예측을 위한 예측 모드의 방향성, 즉 특정 예측 모드에서 적용될 예측 방향은 수직, 수평, 대각 방향일 수 있다. 예를 들어, HEVC에서, 인트라 예측은 PU의 크기에 따라서 33 개의 방향 예측 모드까지 제공하며, 각각의 인트라 예측 모드에는 예측 방향이 할당된다.
유사하게, 각각의 TU는 상기 TU 내 샘플에 대한 예측 오차 디코딩 프로세스를 서술하는 정보(예를 들면, DCT 계수 정보를 포함함)와 연관된다. 예측 오차 코딩이 CU마다 적용되는지 또는 적용되지 않는지는 일반적으로 CU 레벨에서 시그널링될 수 있다. CU와 연관된 아무런 예측 오차 잔차도 없는 경우, 상기 CU에 대한 TU는 없는 것으로 간주될 수 있다. 이미지를 CU로 나누는 것, 및 CU를 PU 및 TU로 나누는 것은 전형적으로 비트스트림에서 시그널링되며, 디코더는 이에 따라 이러한 유닛의 의도된 구조를 재생하게 된다.
HEVC에서, 픽처는 장방형(rectangular)이고 정수개의 LCU를 포함하는 타일로 분할될 수 있다. HEVC에서, 타일로 분할하면 규칙적인 그리드가 형성되며, 이 경우 타일의 높이와 폭은 최대한 하나의 LCU 별로 서로 다르다. 초안 HEVC에서, 슬라이스는 하나의 독립 슬라이스 세그먼트 및 같은 액세스 유닛 내 (만일 있다면) 다음의 독립 슬라이스 세그먼트에 앞서는 (만일 있다면) 모든 후속 종속 슬라이스 세그먼트에 포함되는 정수개의 코딩 트리 유닛인 것으로 정의된다. HEVC에서, 슬라이스 세그먼트는 타일 스캔에서 연속하여 정렬되고 단일의 NAL 유닛에 포함된 정수개의 코딩 트리 유닛인 것으로 정의된다. 각각의 픽처를 슬라이스 세그먼트로 나누면 하나의 분할이 된다. HEVC에서, 독립 슬라이스 세그먼트는 슬라이스 세그먼트 헤더의 신택스 요소의 값이 선행하는 슬라이스 세그먼트의 값으로부터 추론되지 않는 슬라이스 세그먼트인 것으로 정의되며, 종속 슬라이스 세그먼트는 슬라이스 세그먼트 헤더의 일부 신택스 요소의 값이 디코딩 순서에서 선행하는 독립 슬라이스 세그먼트의 값으로부터 추론되는 슬라이스 세그먼트인 것으로 정의된다. HEVC에서, 슬라이스 헤더는 현재 슬라이스 세그먼트인 독립 슬라이스 세그먼트의 슬라이스 세그먼트 헤더 또는 현재의 종속 슬라이스 세그먼트에 앞선 독립 슬라이스 세그먼트인 독립 슬라이스 세그먼트의 슬라이스 세그먼트 헤더인 것으로 정의되며, 슬라이스 세그먼트 헤더는 슬라이스 세그먼트에서 표현된 제 1 또는 모든 코딩 트리 유닛에 관련하는 데이터 요소를 포함하는 코딩된 슬라이스 세그먼트의 일부분인 것으로 정의된다. CU는 타일 내 또는 만일 타일이 사용되지 않으면 픽처 내 LCU의 래스터 스캔 순서로 스캔된다. LCU 내에서, CU는 특정한 스캔 순서를 갖는다. 도 5는 정방형 코딩 유닛으로 분할된(실선) 두 개의 타일로 이루어진 픽처의 예를 도시하며, 타일은 장방형 예측 유닛으로 추가로 분할(점선)된다.
디코더는 (인코더에 의해 생성되어 움직임 또는 공간 정보를 이용하여) 픽셀 블록의 예측된 표현을 형성하는 인코더와 유사한 예측 수단 및 예측 오차 디코딩(공간 픽셀 도메인에서 양자화된 예측 오차 신호를 복원하는 예측 오차 코딩의 역 동작)을 적용함으로써 출력 비디오를 재구성한다. 예측 및 예측 오차 디코딩 수단을 적용한 후, 디코더는 예측 및 예측 오차 신호(픽셀 값)를 합하여 출력 비디오 프레임을 형성한다. 디코더(및 인코더)는 또한 부수적인 필터링 수단을 적용하여 출력 비디오의 품질을 개선한 다음 출력 비디오를 디스플레이하기 위해 전달할 수 있고 그리고/또는 출력 비디오를 비디오 시퀀스에서 다음에 오는 프레임에 대한 예측 참조로서 저장할 수 있다.
필터링은 예를 들면 다음 중 하나 이상, 즉 디블록킹(deblocking), 샘플 적응적 옵셋(sample adaptive offset, SAO), 및/또는 적응적 루프 필터링(adaptive loop filtering, ALF)을 포함할 수 있다.
SAO에서, 픽처는 구역(region)으로 나누어지고, 각 구역마다 개별적 SAO 판단이 내려진다. 구역에서 SAO 정보는 SAO 파라미터 적응 유닛(SAO 유닛) 내에 캡슐화되며, HEVC에서 SAO 파라미터를 적응하기 위한 기본 단위는 CTU이다(그러므로 SAO 구역은 대응하는 CTU에 의해 커버되는 블록이다).
SAO 알고리즘에서, CTU 내 샘플은 일련의 규칙에 따라서 분류되며 각각의 분류된 샘플 세트는 옵셋 값을 추가함으로써 강화된다. 옵셋 값은 비트스트림에서 시그널링된다. 두 가지 종류의 옵셋, 즉 1) 대역 옵셋(Band offset), 2) 에지 옵셋(Edge offset)이 있다. CTU에 대해, SAO 없음 또는 대역 옵셋이나 에지 옵셋 중 어느 하나가 사용된다. SAO 없음 또는 대역 옵셋이나 에지 옵셋이 사용될지를 선택하는 것은 예를 들면 레이트 왜곡 최적화(rate distortion optimization, RDO)를 수행하는 인코더에 의해 결정될 수 있고, 디코더로 시그널링될 수 있다.
대역 옵셋에서, 샘플 값의 전체 범위는 특정 사례에서 32 개의 동일 폭의 대역으로 나누어진다. 예를 들어, 8비트 샘플의 경우, 대역의 폭은 8(=256/32)이다. 32 대역 중의 그 중 4개가 선택되며 선택된 각 대역마다 상이한 옵셋이 시그널링된다. 선택의 결정은 인코더에 의해 내려지며 다음과 같이 시그널링될 수 있다: 제 1 대역의 인덱스가 시그널링되며 그 다음 네 개의 대역이 선택된 대역이라고 추론된다. 대역 옵셋은 고른 구역에서 오류를 정정하는데 유용할 수 있다.
에지 옵셋 타입에서, 에지 옵셋(EO) 타입은 네 개의 가능한 타입 (또는 에지 분류) 중에서 선택될 수 있는데, 각각의 타입은 방향, 즉 1) 수직, 2) 수평, 3) 135도 대각, 및 4) 45도 대각과 연관된다. 방향의 선택은 인코더에 의해 제공되고 디코더로 시그널링된다. 각각의 타입은 각도에 기초하여 주어진 샘플에 대해 두 개의 이웃 샘플의 위치를 정의한다. 그러면 CTU 내 각 샘플은 샘플 값을 두 개의 이웃 샘플의 값에 대비하여 비교한 것에 따라서 다섯 카테고리 중 하나의 카테고리로 분류된다. 다섯 카테고리는 다음과 같이 서술된다.
1. 현재 샘플 값은 두 이웃 샘플보다 작다.
2. 현재 샘플 값은 이웃 중 한 이웃보다 작고 다른 이웃과 같다.
3. 현재 샘플 값은 이웃 중 한 이웃보다 크고 다른 이웃과 같다.
4. 현재 샘플 값은 두 이웃 샘플보다 크다.
5. 해당사항 없음.
이와 같은 다섯 카테고리는 디코더로 시그널링될 필요가 없는데, 그 이유는 분류가 인코더 및 디코더 양쪽에서 모두 사용 가능하고 동일할 수 있는 재구성된 샘플에만 기초하기 때문이다. 에지 옵셋 타입 CTU 내 각 샘플이 다섯 카테고리 중 하나의 카테고리로 분류된 후, 제 1 다섯 카테고리 각각의 옵셋 값이 결정되고 디코더로 시그널링된다. 각 카테고리의 옵셋은 대응하는 카테고리와 연관된 샘플 값에 추가된다. 에지 옵셋은 여운이 있는 아티팩트(ringing artifact)를 보정하는데 효과적일 수 있다.
SAO 파라미터는 CTU 데이터에서 인터리빙될 때 시그널링될 수 있다. CTU 위에서, 슬라이스 헤더는 SAO가 슬라이스에서 사용되는지를 명시하는 신택스 요소를 포함한다. 만일 SAO가 사용되면, 두 개의 부수적인 신택스 요소는 SAO가 Cb 및 Cr 컴포넌트에 적용되는지를 명시한다. 각 CTU마다, 세 개의 옵션, 즉 1) SAO 파라미터를 왼쪽 CTU에서 복사하기, 2) SAO 파라미터를 위쪽 CTU에서 복사하기, 또는 3) 새로운 SAO 파라미터를 시그널링하기가 있다.
적응적 루프 필터(ALF)는 재구성된 샘플의 품질을 강화하는 다른 방법이다. 이 방법은 루프에서 샘플 값을 필터링함으로써 달성될 수 있다. 인코더는 픽처의 어느 구역이 필터링될 것인지 그리고 필터 계수가 예를 들면 RDO에 기초하는지를 결정할 수 있으며 이러한 정보는 디코더로 시그널링된다.
전형적인 비디오 코덱에서, 움직임 정보는 각각의 움직임 보상된 이미지 블록과 연관된 움직임 벡터로 표시된다. 각각의 이러한 움직임 벡터는 (인코더 측에서) 코딩될 또는 (디코더 측에서) 디코딩될 픽처 내 이미지 블록과 이전에 코딩된 또는 디코딩된 픽처 중 한 픽처 내 예측 소스 블록의 변위를 나타낸다. 움직임 벡터를 효과적으로 표현하기 위하여, 움직임 벡터는 전형적으로 블록별로 예측된 움직임 벡터에 대하여 상이하게 코딩된다. 전형적인 비디오 코덱에서, 예측된 움직임 벡터는 미리 정의된 방식으로, 예를 들면 인접한 블록의 인코딩된 또는 디코딩된 움직임 벡터의 중간 값을 계산함으로써 생성된다. 움직임 벡터 예측을 생성하는 다른 방법은 인접 블록 및/또는 시간 참조 픽처 내 동일 위치에 있는 블록으로부터 후보 예측들의 리스트를 만들고 선택된 후보를 움직임 벡터 예측기로서 시그널링하는 것이다. 움직임 벡터 값을 예측하는 것 이외에도, 어느 참조 픽처(들)가 움직임 보상된 예측에 이용되는지가 예측될 수 있으며 이러한 예측 정보는 예를 들면 이전에 코딩된/디코딩된 픽처의 참조 인덱스에 의해 표현될 수 있다. 참조 인덱스는 전형적으로 인접 블록 및/또는 시간 참조 픽처 내 동일 위치에 있는 블록으로부터 예측된다. 더욱이, 전형적인 고 효율 비디오 코덱은 흔히 머징 모드(merging mode)/병합 모드(merge mode)라고 불리는 부가적인 움직임 정보 코딩/디코딩 메커니즘을 사용하며, 이 메커니즘에서는 각각의 이용 가능한 참조 픽처 리스트마다 움직임 벡터 및 대응하는 참조 픽처 인덱스를 포함하는 모든 움직임 필드 정보가 어떠한 수정/정정 없이 예측되고 사용된다. 유사하게, 움직임 필드 정보는 인접 블록 및/또는 시간 참조 픽처 내 동일 위치에 있는 블록의 움직임 필드 정보를 이용하여 예측되며 이용된 움직임 필드 정보는 이용 가능한 인접/동일 위치 블록의 움직임 필드 정보로 채워진 움직임 필드 후보 리스트의 리스트 중에서 시그널링된다.
전형적인 비디오 코덱은 단일 예측 블록이 (디)코딩되는 블록에 이용되는 단일 예측(uni-prediction)의 사용을 가능하게 하며, 두 개의 예측 블록이 조합되어 (디)코딩되는 블록의 예측을 형성하는 이중 예측(bi-prediction)의 사용을 간증하게 한다. 일부 비디오 코덱은 잔차 정보를 추가하기 전에 예측 블록의 샘플 값이 가중되는 가중 예측(weighted prediction)을 가능하게 한다. 예를 들어, 증식 가중 인자(multiplicative weighting factor) 및 추가 옵셋이 적용될 수 있다. 일부 비디오 코덱에서 사용 가능해진 명시적인 가중 예측에서, 가중 인자 및 옵셋은 예를 들면 각각의 허용가능한 참조 픽처 인덱스마다 슬라이스 헤더에서 코딩될 수 있다. 일부 비디오 코덱에서 사용 가능해진 묵시적인 가중 예측에서, 가중 인자 및/또는 옵셋은 코딩되지 않고, 예를 들어 참조 픽처의 상대 픽처 순서 카운트(picture order count, POC)에 기초하여 도출된다.
전형적인 비디오 코덱에서, 움직임 보상 이후 예측 잔차는 일차로 (DCT와 같은) 변환 커널로 변환된 다음 코딩된다. 그 이유는 종종 잔차 중에서 약간의 상관이 여전히 존재하기 때문이며 많은 사례에서 변환은 이러한 상관을 줄이는데 도움이 될 수 있고 더 효과적인 코딩을 제공할 수 있다.
전형적인 비디오 인코더는 라그랑지안 비용 함수(Lagrangian cost function)를 활용하여 최적한 코딩 모드, 예를 들면, 희망하는 매크로블록 모드 및 연관된 움직임 벡터를 찾는다. 이러한 종류의 비용 함수는 가중 인수(λ)를 이용하여 손실 코딩 방법으로 인한 (정확한 또는 추정된) 이미지 왜곡과 이미지 영역 내 픽셀 값을 표현하는데 필요한 (정확한 또는 추정된) 정보량을 함께 합친다.
Figure 112016099798799-pct00001
여기서 C는 최소화될 라그랑지안 비용이고, D는 모드 및 움직임 벡터가 고려된 이미지 왜곡(예를 들면, 평균 제곱 오차)이고, R은 (후보 움직임 벡터를 표현하는 데이터의 양을 포함하는) 디코더에서 이미지 블록을 재구성하는데 필요한 데이터를 표현하는데 필요한 비트 수이다.
비디오 코딩 표준 및 사양서는 인코더가 코딩된 픽처를 코딩된 슬라이스 또는 이와 유사한 것으로 나누게 할 수 있다. 인-픽처 예측은 전형적으로 슬라이스 경계 전체에서 불능화된다. 그래서 슬라이스는 코딩된 픽처를 독립적으로 디코딩 가능한 조각으로 나누는 방법으로 간주될 수 있다. H.264/AVC 및 HEVC에서, 인-픽처 예측은 슬라이스 경계 전체에서 불능화될 수 있다. 그러므로 슬라이스는 코딩된 픽처를 독립적으로 디코딩 가능한 조각으로 나누는 방법으로 간주될 수 있으며, 그러므로 슬라이스는 종종 전송을 위한 기본 단위로 간주된다. 많은 사례에서, 인코더는 인-픽처 예측 타입이 슬라이스 경계 전체에서 턴 오프된다는 것을 비트스트림에다 표시할 수 있으며, 디코더는 예를 들어 예측 소스가 이용 가능하다고 결론지을 때 이러한 정보를 고려하여 동작한다. 예를 들면, 만일 이웃 매크로블록 또는 CU가 상이한 슬라이스에서 존재한다면, 이웃하는 매크로블록 또는 CU로부터의 샘플은 인트라 예측에는 사용할 수 없는 것으로 간주될 수 있다.
H.264/AVC 또는 HEVC 인코더의 출력 및 H.264/AVC 또는 HEVC 디코더의 입력의 기본 단위는 각기 네트워크 추상 계층(Network Abstraction Layer, NAL) 유닛이다. 패킷 지향 네트워크를 통해 전송하거나 구조화된 파일로 저장하기 위해, NAL 유닛은 패킷 또는 유사한 구조로 캡슐화될 수 있다. H.264/AVC 및 HEVC에서 프레이밍 구조를 제공하지 않는 전송 또는 저장 환경을 위해 바이트스트림 포맷이 명시되었다. 바이트스트림 포맷은 각 NAL 유닛의 앞 단에다 시작 코드를 붙임으로써 NAL 유닛을 서로 구분한다. NAL 유닛 경계의 오검출을 방지하기 위해, 인코더는 바이트 지향의 시작 코드 에뮬레이션 방지 알고리즘(byte-oriented start code emulation prevention algorithm)을 가동하는데, 이는 시작 코드가 발생하였다면 에뮬레이션 방지 바이트를 NAL 유닛 페이로드에 첨가하는 알고리즘이다. 패킷 지향 시스템과 스트림 지향 시스템 사이에서 수월한 게이트웨이 동작을 가능하게 하기 위해, 바이트스트림 포맷이 사용 중이든 그렇지 않든 간에, 시작 코드 에뮬레이션 방지가 항시 수행될 수 있다. NAL 유닛은 뒤이어 나오는 데이터의 타입의 표시를 갖고 있는 신택스 구조 및 그 데이터를 필요에 따라 에뮬레이션 방지 바이트를 산재시킨 RBSP 형태로 포함하는 바이트라고 정의될 수 있다. 원시 바이트 시퀀스 페이로드(raw byte sequence payload, RBSP)는 NAL 유닛에서 캡슐화된 정수 개의 바이트를 갖고 있는 신택스 구조라고 정의될 수 있다. RBSP는 비어 있거나 아니면 신택스 요소를 포함하는 데이터 비트에 뒤이은 RBSP 스톱 비트 그리고 그 뒤를 이은 0개 이상의 0과 같은 후속 비트의 스트링의 형태를 갖는다.
NAL 유닛은 헤더와 페이로드로 구성된다. H.264/AVC 및 HEVC에서, NAL 유닛 헤더는 NAL 유닛의 타입을 표시한다. H.264/AVC에서, NAL 유닛 헤더는 NAL 유닛에 포함된 코딩된 슬라이스가 참조 픽처 또는 비-참조 픽처(non-reference picture)의 일부인지를 표시한다.
H.264/AVC NAL 유닛 헤더는 2비트의 nal_ref_idc 신택스 요소를 포함하는데, 이 요소가 0일 때는 NAL 유닛에 포함된 코딩된 슬라이스가 비-참조 픽처의 일부임을 표시하고 0보다 클 때는 NAL 유닛에 포함된 코딩된 슬라이스가 참조 픽처의 일부임을 표시한다. SVC 및 MVC NAL 유닛의 헤더는 스케일러빌리티 및 멀티뷰 계층화(multiview hierarchy)와 관련된 각종 표시를 부가적으로 포함할 수 있다.
HEVC에서, 2바이트의 NAL 유닛 헤더는 명시된 모든 NAL 유닛 타입에 사용된다. NAL 유닛 헤더는 하나의 예약된 비트, 6비트의 NAL 유닛 타입 표시, 시간 레벨의 표시를 위한 3-비트의 temporal_id_plus1 표시 및 6비트의 예약 필드(nuh_layer_id라고 지칭됨)를 포함한다. temporal_id_plus1 신택스 요소는 NAL 유닛의 시간 식별자(temporal identifier)라고 간주될 수 있으며, 제로-기반의 TemporalId 변수는 다음과 같이 도출될 수 있다. 즉 TemporalId = temporal_id_plus1 - 1. TemporalId가 0이면, 이는 최저 시간 레벨에 해당한다. temporal_id_plus1의 값은 두 NAL 유닛 헤더 바이트가 연루되는 시작 코드 에뮬레이션을 방지하기 위해 제로가 아니어야 한다. TemporalId가 선택된 값보다 크거나 같은 모든 VCL NAL 유닛을 제외시키고 다른 모든 NAL 유닛을 포함시킴으로써 생성된 비트스트림은 그대로 순응성을 유지한다. 그 결과, TID와 동일한 TemporalId를 갖는 픽처는 TID보다 큰 TemporalId를 갖는 임의의 픽처를 인터 예측 참조로서 사용하지 않는다. 서브계층 또는 시간 서브계층은 TemporalId 변수의 특정 값을 가진 VCL NAL 유닛 및 연관된 비(non)-VCL NAL 유닛으로 구성되는 시간 스케일러블 비트스트림(temporal scalable bitstream)의 시간 스케일러블 계층인 것으로 정의될 수 있다.
6비트 예약 필드(nuh_layer_id)는 미래의 스케일러블 및 3D 비디오 확장과 같은 확장에 의해 사용될 것으로 예상된다. 이러한 6비트는 스케일러빌리티 계층화에 관한 정보를 반송할 것으로 예상된다. 일반성을 잃지 않고, 일부 예시적인 실시예에서, 변수 LayerId는 예를 들면 다음과 같이 nuh_layer_id 의 값으로부터 도출된다. 즉 LayerId = nuh_layer_id. 아래에서, LayerId, nuh_layer_id 및 layer_id라는 계층 식별자는 달리 지적하지 않는 한 같은 의미로 사용된다.
NAL 유닛은 비디오 코딩 계층(Video Coding Layer, VCL) NAL 유닛 및 비-VCL NAL 유닛으로 분류될 수 있다. 전형적으로 VCL NAL 유닛은 코딩된 슬라이스 NAL 유닛이다. H.264/AVC에서, 코딩된 슬라이스 NAL 유닛은 하나 이상의 코딩된 매크로블록을 표현하는 신택스 요소를 포함하며, 각각의 코딩된 매크로블록은 압축되지 않은 픽처 내 샘플들의 블록에 대응한다. HEVC에서, 코딩된 슬라이스 NAL 유닛은 하나 이상의 CU를 표현하는 신택스 요소를 갖고 있다.
H.264/AVC에서, 코딩된 슬라이스 NAL 유닛은 순간 디코딩 리플레쉬(Instantaneous Decoding Refresh, IDR) 픽처 내 코딩된 슬라이스 또는 논-IDR 픽처 내 코딩된 슬라이스인 것으로 표시될 수 있다.
HEVC에서, 코딩된 슬라이스 NAL 유닛은 다음과 같은 타입 중 한 가지 타입인 것으로 표시될 수 있다.
Figure 112016099798799-pct00002
HEVC에서, 픽처 타입의 약어는 다음과 같이 정의될 수 있다. 트레일링(trailing, TRAIL) 픽처, 시간 서브계층 액세스(Temporal Sub-layer Access, TSA), 단계적 시간 서브계층 액세스(Step-wise Temporal Sub-layer Access, STSA), 랜덤 액세스 디코딩 가능한 리딩(Random Access Decodable Leading, RADL) 픽처, 랜덤 액세스 스킵드 리딩(Random Access Skipped Leading, RASL) 픽처, 파괴된 링크 액세스(Broken Link Access, BLA) 픽처, 순간 디코딩 리플레쉬(Instantaneous Decoding Refresh, IDR) 픽처, 클린 랜덤 액세스(Clean Random Access, CRA) 픽처.
인트라 랜덤 액세스 포인트(intra Radom Access Point, IRAP) 픽처라고도 지칭될 수 있는 랜덤 액세스 포인트(Random Access Point, RAP) 픽처는 각 슬라이스 또는 슬라이스 세그먼트가 16내지 23을 포함하는 범위 내에서 nal_unit_type을 갖는 픽처이다. RAP 픽처는 오직 인트라 코딩된 슬라이스만을 포함하며, BLA 픽처, CRA 픽처 또는 IDR 픽처일 수 있다. 비트스트림에서 첫 픽처는 RAP 픽처이다. 필요한 파라미터 세트가 활성화되어야 할 때 필요한 파라미터 세트가 이용 가능하면, 디코딩 순서에서 RAP 픽처 및 모든 후속 비-RASL 픽처는 디코딩 순서에서 RAP 픽처에 앞서는 임의의 픽처의 디코딩 프로세스를 수행하지 않고 정확히 디코딩될 수 있다. 비트스트림에는 RAP 픽처가 아닌 오직 인트라-코딩된 슬라이스만을 포함하는 픽처가 있을 수 있다.
HEVC에서, CRA 픽처는 디코딩 순서에서 비트스트림 내 첫 픽처일 수 있거나, 또는 비트스트림에서 나중에 나올 수 있다. HEVC에서 CRA 픽처는 디코딩 순서에서 CRA 픽처의 뒤에 나오지만 출력 순서에서는 CRA 픽처에 앞서는 소위 리딩 픽처를 허용한다. 리딩 픽처, 즉 소위 RASL픽처 중 일부는 CRA 픽처에 앞서 디코딩된 픽처를 참조로서 사용할 수 있다. 디코딩 순서 및 출력 순서 모두에서 CRA 픽처에 뒤에 나오는 픽처는 CRA 픽처에서 랜덤 액세스가 수행된다면 디코딩 가능하며, 그래서 IDR 픽처의 클린 랜덤 액세스 기능성(clean random access functionality)과 유사하게 클린 랜덤 액세스가 달성된다.
CRA 픽처는 연관된 RADL 또는 RASL 픽처를 가질 수 있다. CRA 픽처가 디코딩 순서에서 비트스트림 내 첫 픽처일 때, CRA 픽처는 디코딩 순서에서 코딩된 비디오 시퀀스의 첫 픽처이며, 임의의 연관된 RASL 픽처는 이들 픽처가 비트스트림에서 존재하지 않는 픽처에 대한 참조를 포함하고 있을 수 있으므로, 디코더에 의해 출력되지 않으며 디코딩 가능하지 않을 수 있다.
리딩 픽처는 출력 순서에서 연관된 RAP 픽처에 선행하는 픽처이다. 연관된 RAP 픽처는 (존재한다면) 디코딩 순서에서 이전의 RAP 픽처이다. 리딩 픽처는 RADL 픽처 또는 RASL 픽처 중 어느 하나이다.
모든 RASL 픽처는 연관된 BLA 또는 CRA 픽처의 리딩 픽처이다. 연관된 RAP 픽처가 BLA 픽처일 때 또는 비트스트림에서 코딩된 첫 픽처일 때, RASL 픽처는 이 RASL 픽처가 비트스트림에서 존재하지 않은 픽처에 대한 참조를 포함할 수 있으므로, 출력되지 않으며 정확히 디코딩 가능하지 않을 수 있다. 그러나 만일 RASL 픽처의 연관된 RAP 픽처 앞의 RAP 픽처로부터 디코딩이 시작되었다면 RASL 픽처는 정확히 디코딩될 수 있다. RASL 픽처는 비-RASL 픽처의 디코딩 프로세스를 위한 참조 픽처로서 이용되지 않는다. 존재한다면 모들 RASL 픽처는 디코딩 순서에서 연관된 같은 RAP 픽처의 모든 트레일링 픽처에 선행한다. HEVC 표준의 일부 초안에서, RASL 픽처는 TFD(Tagged for Discard) 픽처라고 불리었다.
모든 RADL 픽처는 리딩 픽처이다. RADL 픽처는 연관된 같은 RAP 픽처의 트레일링 픽처의 디코딩 프로세스를 위한 참조 픽처로서 이용되지 않는다. 존재한다면, 모든 RADL 픽처는 디코딩 순서에서, 연관된 같은 RAP 픽처의 모든 트레일링 픽처에 선행한다. RADL 픽처는 디코딩 순서에서 연관된 RAP 픽처에 선행하는 임의의 픽처를 참조하지 않으며 따라서 연관된 RAP 픽처로부터 디코딩이 시작할 때 정확히 디코딩될 수 있다. HEVC 표준의 일부 초안에서, RADL 픽처는 디코딩 가능한 리딩 픽처(Decodable Leading Picture, DLP)라고 불리었다.
CRA 픽처로부터 시작하는 비트스트림의 일부분이 다른 비트스트림에 포함될 때, CRA 픽처와 연관된 RASL 픽처는 정확히 디코딩될 수 없는데, 이것은 이들의 참조 픽처 중 일부가 조합된 비트스트림에서 존재하지 않을 수 있기 때문이다. 이어붙이기 동작(splicing operation)을 손쉽게 하기 위해, CRA 픽처의 NAL 유닛 타입은 이 픽처가 BLA 픽처라는 것을 표시하도록 변경될 수 있다. BLA 픽처와 연관된 RASL 픽처는 정확히 디코딩될 수 없고 그래서 출력/디스플레이되지 않는다. 그뿐만 아니라, BLA 픽처와 연관된 RASL 픽처는 디코딩에서 빠질 수도 있다.
BLA 픽처는 디코딩 순서에서 비트스트림 내 첫 픽처일 수 있거나, 비트스트림에서 나중에 나올 수 있다. 각각의 BLA 픽처는 새로이 코딩된 비디오 시퀀스를 시작하며, IDR 픽처처럼 디코딩 프로세스에 유사한 영향을 미친다. 그러나 BLA 픽처는 참조 픽처 세트가 비어 있지 않다고 명시하는 신택스 요소를 포함한다. BLA 픽처가 BLA_W_LP와 동일한 nal_unit_type을 가질 때, BLA 픽처는 디코더에 의해 출력되지 않고 디코딩 가능하지 않을 수 있는 연관된 RASL 픽처를 가질 수 있는데, 이는 연관된 RASL 픽처가 비트스트림에서 존재하지 않은 픽처에 대한 참조를 하고 있을 수 있기 때문이다. BLA 픽처가 BLA_W_LP와 동일한 nal_unit_type을 가질 때, BLA 픽처는 또한 디코딩되는 것으로 명시된 연관된 RADL 픽처를 가질 수 있다. BLA 픽처가 BLA_W_DLP와 동일한 nal_unit_type을 가질 때, BLA 픽처는 연관된 RASL 픽처를 갖지 않고, 디코딩되는 것으로 명시된 연관된 RADL 픽처를 가질 수 있다. BLA 픽처가 BLA_N_LP와 동일한 nal_unit_type을 가질 때, BLA 픽처는 어느 연관된 리딩 픽처도 갖지 않는다.
IDR_N_LP와 동일한 nal_unit_type을 갖는 IDR 픽처는 비트스트림에서 존재하는 연관된 리딩 픽처를 갖지 않는다. IDR_W_LP와 동일한 nal_unit_type을 갖는 IDR 픽처는 비트스트림에서 존재하는 연관된 RASL 픽처를 갖지 않고, 비트스트림에서 연관된 RADL 픽처를 가질 수 있다.
nal_unit_type의 값이 TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N, RSV_VCL_N10, RSV_VCL_N12, 또는 RSV_VCL_N14와 같을 때, 디코딩된 픽처는 같은 시간 서브계층의 임의의 다른 픽처의 참조로서 사용되지 않는다. 즉, HEVC에서, nal_unit_type의 값이 TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N, RSV_VCL_N10, RSV_VCL_N12, 또는 RSV_VCL_N14와 같을 때, 디코딩된 픽처는 같은 값의 TemporalId를 가진 임의의 픽처의 RefPicSetStCurrBefore, RefPicSetStCurrAfter 및 RefPicSetLtCurr 중 어느 것에도 포함되지 않는다. TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N, RSV_VCL_N10, RSV_VCL_N12, 또는 RSV_VCL_N14와 동일한 nal_unit_type을 가진 코딩된 픽처는 같은 값의 TemporalId를 가진 다른 픽처의 디코딩 가능성에 영향을 미치지 않고 폐기될 수 있다.
트레일링 픽처는 출력 순서에서 연관된 RAP 픽처에 뒤이어 나오는 픽처라고 정의될 수 있다. 트레일링 픽처인 어느 픽처도 RADL_N, RADL_R, RASL_N 또는 RASL_R과 동일한 nal_unit_type를 갖지 않는다. 리딩 픽처인 임의의 픽처는 디코딩 순서에서, 같은 RAP 픽처와 연관된 모든 트레일링 픽처에 선행하는 것으로 제약될 수 있다. BLA_W_DLP 또는 BLA_N_LP와 동일한 nal_unit_type를 가진 BLA 픽처와 연관된 어느 RASL 픽처도 비트스트림에서 존재하지 않는다. BLA_N_LP와 동일한 nal_unit_type를 가진 BLA 픽처와 연관된 또는 IDR_N_LP와 동일한 nal_unit_type를 가진 IDR 픽처와 연관된 어느 RADL 픽처도 비트스트림에서 존재하지 않는다. CRA 또는 BLA 픽처와 연관된 임의의 RASL 픽처는 출력 순서에서 CRA 또는 BLA 픽처와 연관된 임의의 RADL 픽처에 선행하는 것으로 제약될 수 있다. CRA 픽처와 연관된 임의의 RASL 픽처는 디코딩 순서에서 CRA 픽처에 선행하는 임의의 다른 RAP 픽처에 출력 순서에서 뒤이어 나오는 것으로 제약될 수 있다.
HEVC에는 시간 서브계층 스위칭 포인트(temporal sub-layer switching point)를 표시하는데 사용될 수 있는 TSA 또는 STSA 픽처 타입이라는 두 가지 픽처 타입이 있다. 만일 N까지의 TemporalId를 갖는 시간 서브계층이 TSA 또는 STSA 픽처(배타적임) 및 TSA 또는 STSA 픽처가 N+1과 같은 TemporalId를 가질 때까지 디코딩되었다면, TSA 또는 STSA 픽처는 N+1과 같은 TemporalId를 갖는 (디코딩 순서에서) 모든 후속 픽처가 디코딩될 수 있게 한다. TSA 픽처 타입은 TSA 픽처 자체 및 디코딩 순서에서 TSA 픽처에 뒤이어 나오는 같은 서브계층에 속한 모든 픽처에 제약을 부과할 수 있다. 이러한 픽처 중 어느 픽처도 디코딩 순서에서 TSA 픽처에 선행하는 같은 서브계층에 속한 임의의 픽처로부터 인터 예측을 사용하는 것은 허용되지 않는다. TSA의 정의에 따르면 디코딩 순서에서 TSA 픽처에 뒤이어 나오는 상위의 서브계층에 속한 픽처에도 또한 제약을 부과할 수 있다. 이러한 픽처 중 어느 픽처도 그 픽처가 TSA 픽처와 같은 또는 상위의 서브계층에 속한다면 디코딩 순서에서 TSA 픽처에 선행하는 픽처를 참조하는 것이 허용되지 않는다. TSA 픽처는 0보다 큰 TemporalId를 갖는다. STSA는 TSA 픽처와 유사하지만 디코딩 순서에서 STSA 픽처에 뒤이어 나오는 상위의 서브계층에 속한 픽처에 제약을 부과하지 않으며 그래서 STSA 픽처가 상주하는 서브계층으로만 상향-스위칭이 가능해진다.
비-VCL NAL 유닛은 예를 들면, 다음과 같은 타입, 즉 시퀀스 파라미터 세트(sequence parameter set), 픽처 파라미터 세트, 보충 강화 정보(supplemental enhancement information, SEI) NAL 유닛, 액세스 유닛 구분자(access unit delimiter), 시퀀스 NAL 유닛의 끝, 스트림 NAL 유닛의 끝, 또는 필러 데이터(filler data) NAL 유닛 중 한 가지 타입일 수 있다. 파라미터 세트는 디코딩된 픽처의 재구성을 위해 필요할 수 있는데 반해, 다른 비-VCL NAL 유닛 중 많은 유닛은 디코딩된 샘플 값의 재구성에는 필요하지 않다.
코딩된 비디오 시퀀스 전체에서 변동 없이 남아 있는 파라미터는 시퀀스 파라미터 세트에 포함된다. 디코딩 프로세스에 의해 필요할 수 있는 파라미터 이외에, 시퀀스 파라미터 세트는 선택사양으로 비디오 유용성 정보(video usability information, VUI)를 포함할 수 있는데, 이 정보는 버퍼링, 픽처 출력 타이밍, 렌더링, 및 자원 예약에 중요할 수 있는 파라미터를 포함한다. H.264/AVC에는 시퀀스 파라미터 세트를 반송하는 세 개의 NAL 유닛, 즉 시퀀스 내에 H.264/AVC VCL NAL 유닛의 모든 데이터가 담긴 시퀀스 파라미터 세트 NAL 유닛과, 보조 코딩된 픽처(auxiliary coded picture)의 데이터가 담긴 시퀀스 파라미터 세트 확장 NAL 유닛과, MVC 및 SVC VCL NAL 유닛의 서브세트 시퀀스 파라미터 세트가 명시되어 있다. HEVC에서, 시퀀스 파라미터 세트 RBSP는 하나 이상의 픽처 파라미터 세트 RBSP 또는 버퍼링 주기 SEI 메시지가 담긴 하나 이상의 SEI NAL 유닛에 의해 참조될 수 있는 파라미터를 포함한다. 픽처 파라미터 세트는 여러 코딩된 픽처에서 변동되지 않을 것 같은 그러한 파라미터를 포함한다. 픽처 파라미터 세트 RBSP는 하나 이상의 코딩된 픽처의 코딩된 슬라이스 NAL 유닛에 의해 참조될 수 있는 파라미터를 포함할 수 있다.
초안 HEVC 표준에서는 이 표준에서 적응 파라미터 세트(Adaptation Parameter Set, APS)라고 지칭되는, 여러 코딩된 슬라이스에서 변동이 없을 것 같고 다만 예를 들어 각각의 픽처 또는 각각의 소수의 픽처마다 변동할 수 있는 파라미터를 포함하는, 세 종류의 파라미터 세트가 또한 존재하였다. 초안 HEVC에서, APS 신택스 구조는 양자화 매트릭스(quantization matrices, QM), 적응적 샘플 옵셋(adaptive sample offset, SAO), 적응적 루프 필터링(adaptive loop filtering, ALF), 및 디블록킹 필터링(deblocking filtering)과 관련된 파라미터 또는 신택스 요소를 포함한다. 초안 HEVC 에서, APS는 NAL 유닛이며 임의의 다른 NAL 유닛으로부터 참조 없이 또는 예측 없이 코딩된다. aps_id 신택스 요소라고 지칭되는 식별자는 APS NAL 유닛에 포함되며, 슬라이스 헤더에서 특정 APS를 참조하도록 사용된다. 다른 초안 HEVC 표준에서, APS 신택스 구조는 ALF 파라미터를 포함할 뿐이다. 초안 HEVC 표준에서, 적응 파라미터 세트 RBSP는 sample_adaptive_offset_enabled_flag 또는 adaptive_loop_filter_enabled_flag 중 적어도 하나가 1과 같을 때 하나 이상의 코딩된 픽처의 코딩된 슬라이스 NAL 유닛에 의해 참조될 수 있는 파라미터를 포함한다. 최종 공표된 HEVC에서, APS 신택스 구조는 사양서 본문에서 제외되었다.
HEVC에서, 비디오 파라미터 세트(video parameter set, VPS)는 각 슬라이스 세그먼트 헤더에서 발견되는 신택스 요소에 의해 참조되는 PPS에서 발견되는 신택스 요소에 의해 참조된 SPS에서 발견되는 신택스 요소의 내용에 따라 결정되는 것으로서 0개 이상의 코딩된 전체 비디오 시퀀스에 적용하는 신택스 요소를 담은 신택스 구조라고 정의될 수 있다.
비디오 파라미터 세트 RBSP는 하나 이상의 시퀀스 파라미터 세트 RBSP에 의해 참조될 수 있는 파라미터를 포함할 수 있다.
비디오 파라미터 세트(VPS), 시퀀스 파라미터 세트(sequence parameter set, SPS), 그리고 픽처 파라미터 세트(picture parameter set, PPS)의 관계 및 계층화는 다음과 같이 설명될 수 있다. VPS는 파라미터 세트 계층화에서 그리고 스케일러빌리티 및 3DV의 맥락에서 SPS보다 한 레벨 위에 존재한다. VPS는 코딩된 전체 비디오 시퀀스에서 모든 (스케일러빌리티 또는 뷰) 계층 전체의 모든 슬라이스에 공통하는 파라미터를 포함할 수 있다. SPS는 코딩된 전체 비디오 시퀀스에서 특정 (스케일러빌리티 또는 뷰) 계층 내 모든 슬라이스에 공통하고, 그리고 여러 (스케일러빌리티 또는 뷰) 계층에 의해 공유될 수 있는 코딩된 파라미터를 포함한다. PPS는 특정 계층 표현(하나의 액세스 유닛 내 하나의 스케일러빌리티 또는 뷰 계층의 표현) 내 모든 슬라이스에 공통하는, 그리고 여러 계층 표현 내 모든 슬라이스에 의해 공유될 개연성이 있는 파라미터를 포함한다.
VPS는 비트스트림 내 계층의 디펜던시 관계에 관한 정보뿐만 아니라 코딩된 전체 비디오 시퀀스에서 모든 (스케일러빌리티 또는 뷰) 계층 전체의 모든 슬라이스에 적용 가능한 많은 다른 정보를 제공할 수 있다.
H.264/AVC 및 HEVC 신택스는 파라미터 세트의 많은 인스턴스를 허용하며, 각각의 인스턴스는 고유 식별자로 식별된다. 파라미터 세트에 필요한 메모리 사용을 제한하기 위하여, 파라미터 세트 식별자의 값 범위는 제한되었다. H.264/AVC 및 HEVC에서, 각각의 슬라이스 헤더는 슬라이스를 포함하는 픽처의 디코딩에 작용한 픽처 파라미터 세트의 식별자를 포함하며, 각각의 픽처 파라미터 세트는 작용한 시퀀스 파라미터 세트의 식별자를 포함한다. 초안 HEVC 표준에서, 비록 공표된 HEVC 표준에서는 APS 식별자가 슬라이스 헤더에서 제외되었지만, 슬라이스 헤더는 부가적으로 APS 식별자를 포함한다. 그 결과, 픽처와 시퀀스 파라미터 세트의 전송은 슬라이스의 전송과 정확하게 동기되어야 하는 것은 아니다. 그 대신, 작용한 시퀀스 및 픽처 파라미터 세트는 이들이 참조되기 전 어느 때라도 수신되면 그것으로 충분하며, 이로써 슬라이스 데이터에 대해 사용된 프로토콜과 비교하여 더욱 신뢰할 수 있는 전송 메커니즘을 이용하여 파라미터 세트의 "아웃-오브-밴드(out-of-band)" 전송이 가능해진다. 예를 들어, 파라미터 세트는 실시간 전송 프로토콜(Real-time Transport Protocol, RTP) 세션의 세션 서술(session description) 내에 파라미터로서 포함될 수 있다. 만일 파라미터 세트가 인-밴드(in-band) 전송되면, 파라미터 세트는 오류 강인성(error robustness)을 개선하기 위해 반복전송될 수 있다.
파라미터 세트는 슬라이스로부터 또는 다른 유효한 파라미터 세트로부터, 또는 일부 사례에서는 버퍼링 기간 SEI 메시지와 같은 다른 신택스 구조로부터 참조에 의해 작용될 수 있다.
SEI NAL 유닛은 하나 이상의 SEI 메시지를 포함할 수 있는데, 이 SEI 메시지는 출력 픽처의 디코딩에 필요하지 않고, 픽처 출력 타이밍, 렌더링, 오류 검출, 오류 은닉, 및 자원 예약과 같은 관련 있는 프로세스에서 보조될 수 있다. H.264/AVC 및 HEVC에서는 여러 SEI 메시지가 명시되어 있으며, 사용자 데이터 SEI 메시지는 조직 및 회사가 자체적인 사용을 위해 SEI 메시지를 명시할 수 있게 한다. H.264/AVC 및 HEVC은 명시된 SEI 메시지에 대한 신택스 및 시맨틱을 포함하지만, 수신 측에서 이 메시지를 다루기 위한 어떤 프로세스도 정의되어 있지 않다. 그 결과, 인코더는 인코더가 SEI 메시지를 생성할 때 H.264/AVC 표준 또는 HEVC 표준을 따라야 하며, 각자 H.264/AVC 표준 또는 HEVC 표준에 순응하는 디코더는 출력 순서에 순응하기 위해 SEI 메시지를 처리하는 것이 필요하지 않다. SEI 메시지의 신택스 및 시맨틱을 H.264/AVC 및 HEVC에 포함시키는 이유 중 하나는 다양한 시스템 사양들이 보충 정보를 동일하게 해석할 수 있게 하고 그래서 상호 작동할 수 있게 해주기 위함이다. 이것은 시스템 사양이 인코딩 측 및 디코딩 측에서 모두 특정 SEI 메시지의 사용을 필요로 할 수 있고, 부가적으로는 수신 측에서 특정 SEI 메시지를 다루기 위한 프로세스가 명시될 수 있도록 하기 위함이다.
여러 내포(nesting) SEI 메시지가 AVC 및 HEVC 표준에서 명시되었거나 그렇지 않으면 제안되었다. 내포 SEI 메시지의 발상은 하나 이상의 SEI 메시지를 내포 SEI 메시지 내에 포함시키고 포함된 SEI 메시지를 비트스트림의 서브세트 및/또는 디코딩된 데이터의 서브세트와 연관시키는 메커니즘을 제공하려는 것이다. 내포 SEI 메시지는 내포 SEI 메시지 자체가 아닌 하나 이상의 SEI 메시지를 포함하는 것이 필요할 수 있다. 내포 SEI 메시지에 포함된 SEI 메시지는 내포된 SEI 메시지(nested SEI message)라고 지칭될 수 있다. 내포 SEI 메시지에 포함되지 않은 SEI 메시지는 내포되지 않은 SEI 메시지(non-nested SEI message)라고 지칭될 수 있다. HEVC의 스케일러블 내포 SEI 메시지는 (서브비트스트림 추출 프로세스로부터 생긴) 비트스트림 서브세트 또는 내포된 SEI 메시지가 적용된 한 세트의 계층 중 어느 하나를 식별할 수 있게 한다. 비트스트림 서브세트는 또한 서브비트스트림이라고도 지칭될 수 있다.
코딩된 픽처는 픽처의 코딩된 표현이다. H.264/AVC에서 코딩된 픽처는 픽처의 디코딩에 필요한 VCL NAL 유닛을 포함한다. H.264/AVC에서, 코딩된 픽처는 기본 코딩된 픽처(primary coded picture) 또는 중복 코딩된 픽처(redundant coded picture)일 수 있다. 기본 코딩된 픽처는 유효 비트스트림의 디코딩 프로세스에서 이용되는 반면, 중복 코딩된 픽처는 기본 코딩된 픽처가 성공적으로 디코딩될 수 없을 때 디코딩만이라도 되어야 하는 중복 표현이다. 초안 HEVC에서, 중복 코딩된 픽처는 명시되지 않았다.
H.264/AVC에서, 액세스 유닛(access unit, AU)은 기본 코딩된 픽처 및 이와 연관된 NAL 유닛을 포함한다. H.264/AVC에서, 액세스 유닛 내에서 NAL 유닛의 출현 순서는 다음과 같이 제한된다. 선택사양의 액세스 유닛 구분자 NAL 유닛은 액세스 유닛의 시작을 표시할 수 있다. 그 다음에는 0개 이상의 SEI NAL 유닛이 이어진다. 일차 코딩된 픽처의 코딩된 슬라이스는 다음에 나온다. H.264/AVC에서, 기본 코딩된 픽처의 코딩된 슬라이스 다음에는 0개 이상의 중복 코딩된 픽처의 코딩된 슬라이스가 이어진다. 중복 코딩된 픽처는 픽처 또는 픽처의 일부분의 코딩된 표현이다. 중복 코딩된 픽처는 일차 픽처가 예를 들어 전송시의 손실 또는 물리적 저장 매체의 손상으로 인해 디코더에서 수신되지 않는 경우에 디코딩될 수 있다.
H.264/AVC에서, 액세스 유닛은 또한 보조 코딩된 픽처(auxiliary coded picture)를 포함할 수 있는데, 이 픽처는 기본 코딩된 픽처를 보충하며 예를 들면 디스플레이 프로세스에서 사용될 수 있는 픽처이다. 보조 코딩된 픽처는 예를 들면 디코딩된 픽처 내 샘플의 투명도(transparency level)를 명시하는 알파 채널(alpha channel) 또는 알파 평면(alpha plane)으로서 사용될 수 있다. 알파 채널 또는 알파 평면은 적어도 부분적으로 투명해지는 픽처를 서로의 상단에 포개놓음으로써 출력 픽처가 형성되는 계층화된 구성 또는 렌더링 시스템에서 사용될 수 있다. 보조 코딩된 픽처는 단색 중복 코딩된 픽처(monochrome redundant coded picture)와 동일한 신택스 및 시맨틱 제약을 갖는다. H.264/AVC에서, 보조 코딩된 픽처는 기본 코딩된 픽처와 동일한 개수의 매크로블록을 포함한다.
HEVC에서, 코딩된 픽처는 픽처의 모든 코딩 트리 유닛을 포함하는 픽처의 코딩된 표현이라고 정의될 수 있다. HEVC에서, 액세스 유닛(AU)은 명시된 분류 규칙에 따라서 서로 연관되고, 디코딩 순서에서 연속하며, 상이한 nuh_layer_id값을 가진 하나 이상의 코딩된 픽처를 포함하는 한 세트의 NAL 유닛이라고 정의될 수 있다. 코딩된 픽처의 VCL NAL 유닛을 포함하는 것 이외에, 액세스 유닛은 또한 비-VCL NAL 유닛을 포함할 수도 있다.
H.264/AVC에서, 코딩된 비디오 시퀀스는 IDR 액세스 유닛을 포함하여 이 유닛부터 다음 IDR 액세스 유닛을 제외한 유닛까지, 또는 비트스트림의 끝까지의, 어느 것이든 먼저 나오는, 디코딩 순서에서 연속하는 액세스 유닛들의 시퀀스라고 정의된다.
HEVC에서, 코딩된 비디오 시퀀스(coded video sequence, CVS)는 예를 들면, 디코딩 순서에서, NoRaslOutputFlag가 1인 IRAP 액세스 유닛과, 그 뒤를 이어 NoRaslOutputFlag가 1인 IRAP 액세스 유닛이 아닌, 모든 후속 액세스 유닛을 포함하되 NoRaslOutputFlag가 1인 IRAP 액세스 유닛인 임의의 후속 액세스 유닛을 포함하지 않는, 0개 이상의 액세스 유닛으로 이루어진 액세스 유닛의 시퀀스라고 정의될 수 있다. IRAP 액세스 유닛은 IDR 액세스 유닛, BLA 액세스 유닛, 또는 CRA 액세스 유닛일 수 있다. NoRaslOutputFlag의 값은, 디코딩 순서에서 비트스트림 내 첫 액세스 유닛인, 또는 디코딩 순서에서 시퀀스 NAL 유닛의 끝에 뒤이어 나오는 첫 액세스 유닛인, 또는 HandleCraAsBlaFlag가 1인 각 IDR 액세스 유닛마다, 각 BLA 액세스 유닛마다, 그리고 각 CRA 액세스 유닛마다 1과 같다. NoRaslOutputFlag가 1이면, NoRaslOutputFlag가 설정된 IRAP 픽처와 연관된 RASL 픽처가 디코더에 의해 출력되지 않는다는 결과를 가져온다. HandleCraAsBlaFlag의 값을 디코더를 제어할 수 있는 플레이어 또는 수신기와 같은 외부 엔티티로부터 디코더에 제공하는 수단이 있을 수 있다. HandleCraAsBlaFlag는 예를 들면 비트스트림에서 새로운 위치를 찾으려 시도하거나 방송 채널에 맞추고 디코딩을 시작한 다음 CRA 픽처로부터 디코딩을 시작하는 플레이어에 의해 1로 설정될 수 있다. CRA 픽처에 대해 HandleCraAsBlaFlag가 1일 때, CRA픽처는 마치 이것이 BRA 픽처이었던 것처럼 처리하고 디코딩된다.
픽처의 구조(Structure of Picture, SOP)는 디코딩 순서에서 연속하는 하나 이상의 코딩된 픽처로 정의될 수 있으며, 이 픽처의 구조에서는 디코딩 순서에서 코딩된 첫 픽처가 최저 시간 서브계층에 있는 참조 픽처이며 디코딩 순서에서 코딩된 첫 픽처를 잠재적으로 제외한 어떠한 코딩된 픽처도 RAP 픽처가 아니다. 이전 SOP 내 모든 픽처는 디코딩 순서에서 현재 SOP 내 모든 픽처에 선행하며 다음 SOP 내 모든 픽처는 디코딩 순서에서 현재 SOP 내 모든 픽처에 후행한다. SOP는 계층적이고 반복적인 인터 예측 구조를 표현할 수 있다. 픽처 그룹(group of pictures, GOP)이라는 용어는 때때로 SOP라는 용어와 같은 의미로 사용될 수 있으며 SOP의 시맨틱과 동일한 시맨틱을 갖는다.
H.264/AVC 및 HEVC의 비트스트림 신택스는 특정 픽처가 임의의 다른 픽처의 인터 예측을 위한 참조 픽처인지를 표시한다. 임의의 코딩 타입(I, P, B)의 픽처는 H.264/AVC 및 HEVC에서 참조 픽처 또는 비-참조 픽처일 수 있다.
H.264/AVC은 디코더에서 메모리 소비량을 제어하기 위해 디코딩된 참조 픽처를 표시하는 프로세스를 명시하고 있다. 인터 예측에 이용된, M이라 불리는, 참조 픽처의 최대 개수는 시퀀스 파라미터 세트에서 정해진다. 참조 픽처가 디코딩될 때, 참조 픽처는 "참조용으로 사용됨"이라고 표시된다. 만일 참조 픽처의 디코딩으로 말미암아 M개 픽처보다 많이 "참조용으로 사용됨"이라 표시된다면, 적어도 하나의 픽처는 "참조용으로 사용되지 않음"이라고 표시된다. 디코딩된 참조 픽처를 표시하기 위한 동작은 적응적 메모리 제어(adaptive memory control) 및 슬라이딩 윈도우(sliding window)라는 두 가지 방식이 있다. 디코딩된 참조 픽처를 표시하는 동작 모드는 픽처 단위로 선택된다. 적응적 메모리 제어는 픽처가 "참조용으로 사용되지 않음"이라고 표시되는 명시적인 시그널링을 가능하게 하며 또한 장기간 인덱스를 단기간 참조 픽처에 할당할 수 있다. 적응적 메모리 제어는 비트스트림에서 메모리 관리 제어 동작(memory management control operation, MMCO) 파라미터가 있어야 할 수 있다. MMCO 파라미터는 디코딩된 참조 픽처 표시 신택스 구조에 포함될 수 있다. 만일 슬라이딩 윈도우 동작 모드가 사용 중이고 M개 픽처가 "참조용으로 사용됨"이라고 표시되어 있으면, "참조용으로 사용됨"이라고 표시된 단기간 참조 픽처 중 디코딩된 첫 픽처이었던 단기간 참조 픽처는 "참조용으로 사용되지 않음"이라고 표시된다. 다시 말해서, 슬라이딩 윈도우 동작 모드는 결과적으로 단기간 참조 픽처 사이에서 선입선출 버퍼링 수행하게 한다.
H.264/AVC에서 메모리 관리 제어 동작 중 하나는 현재 픽처를 제외한 모든 참조 픽처를 "참조용으로 사용되지 않음"이라고 표시되게 한다. 순간 디코딩 리프레시(instantaneous decoding refresh, IDR) 픽처는 인트라-코딩된 슬라이스만을 가지고 있으며 참조 픽처의 유사한 "리셋"을 일으킨다.
HEVC에서, 참조 픽처 표시 신택스 구조 및 관련한 디코딩 프로세스는 사용되지 않고 그 대신 참조 픽처 세트(reference picture set, RPS) 신택스 구조 및 디코딩 프로세스가 유사 목적으로 대체 사용된다. 픽처에 대해 유효한 또는 적용되는 참조 픽처 세트는 픽처에 대해 참조로서 사용된 모든 참조 픽처 및 디코딩 순서에서 임의의 후속 픽처에 대해 "참조용으로 사용됨"이라고 표시된 채로 유지되는 모든 참조 픽처를 포함한다. 참조 픽처 세트에는 RefPicSetStCurr0 (또한 RefPicSetStCurrBefore라고도 알려짐), RefPicSetStCurr1(또한 RefPicSetStCurrAfter라고도 지칭함), RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr, 및 RefPicSetLtFoll 라고 지칭되는 여섯 서브세트가 있다. 또한 RefPicSetStFoll0 및 RefPicSetStFoll1은 합쳐서 하나의 서브세트 RefPicSetStFoll를 형성하는 것으로 간주될 수 있다. 여섯 서브세트의 주석은 다음과 같다. "Curr"은 현재 픽처의 참조 픽처 리스트에 포함되어 있는 참조 픽처를 말하며 그래서 현재 픽처의 인터 예측 참조로서 사용될 수 있다. "Foll"은 현재 픽처의 참조 픽처 리스트에는 포함되지 않지만 디코딩 순서에서 후속 픽처에서 참조 픽처로서 사용될 수 있는 참조 픽처를 말한다. "St"는 단기간(short-term) 참조 픽처를 말하는 것으로, 이들 픽처는 일반적으로 이들의 POC 값의 특정 개수의 최하위 비트를 통해 식별될 수 있다. "Lt"는 장기간(long-term) 참조 픽처를 말하는 것으로, 이들 픽처는 특별하게 식별되며 그리고 일반적으로 언급된 특정 개수의 최하위 비트들로 표현될 수 있는 것보다 현재 픽셀 대비 더 큰 차의 POC 값을 갖는다. "0"는 현재 픽처의 POC 값보다 작은 POC 값을 갖는 참조 픽처를 말한다. "1"은 현재 픽처의 POC 값보다 큰 POC 값을 갖는 참조 픽처를 말한다. RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, 및 RefPicSetStFoll1는 일괄하여 참조 픽처 세트의 단기간 서브세트라고 지칭된다. RefPicSetLtCurr 및 RefPicSetLtFoll는 일괄하여 참조 픽처 세트의 장기간 서브세트라고 지칭된다.
HEVC에서, 참조 픽처 세트는 시퀀스 파라미터 세트에서 명시될 수 있으며 참조 픽처 세트에 대한 인덱스를 통해 슬라이스 헤더에서 사용될 수 있다. 참조 픽처 세트는 또한 슬라이스 헤더에서도 명시될 수 있다. 참조 픽처 세트의 장기간 서브세트는 일반적으로 슬라이스 헤더에서만 명시되는데 반해 같은 참조 픽처 세트의 단기간 서브세트는 픽처 파라미터 세트 또는 슬라이스 헤더에서 명시될 수 있다. 참조 픽처 세트는 독립적으로 코딩될 수 있거나 다른 참조 픽처 세트로부터 예측될 수 있다(인터-RPS 예측이라고 알려졌음). 참조 픽처 세트가 독립적으로 코딩될 때, 신택스 구조는 상이한 타입의 참조 픽처들, 즉 현재 픽처보다 낮은 POC 값을 가진 단기간 참조 픽처, 현재 픽처보다 높은 POC 값을 가진 단기간 참조 픽처, 및 현재 픽처보다 높은 POC 값을 가진 단기간 참조 픽처 및 장기간 참조 픽처를 포함한다. 각각의 루프 엔트리는 "참조용도로 사용됨"이라고 표기되는 픽처를 명시한다. 일반적으로, 픽처는 차분 POC 값으로 명시된다. 인터-RPS 예측은 현재 픽처의 참조 픽처 세트가 이전에 디코딩된 픽처의 참조 픽처 세트로부터 예측될 수 있다는 사실을 이용한다. 이것은 현재 픽처의 모든 참조 픽처가 이전 픽처의 참조 픽처이거나 이전에 디코딩된 픽처 그 자체 중 어느 하나이기 때문이다. 이들 픽처 중 어느 픽처가 참조 픽처가 되어야 하는지 그리고 현재 픽처의 예측에 이용되어야 하는지를 표시하는 것만이 필요할 뿐이다. 참조 픽처 세트를 코딩하는 두 가지 방식에서, 참조 픽처가 (*Curr 리스트에 포함된) 현재 픽처에 의해 참조용으로 이용되는지 또는 (*Foll 리스트에 포함된) 현재 픽처에 의해 참조용으로 이용되는지를 표시하는 플래그(used_by_curr_pic_X_flag)는 각 참조 픽처 마다 부가적으로 송신된다. 현재 슬라이스에 의해 이용되는 참조 픽처 세트에 포함된 픽처는 "참조용으로 사용됨"이라고 표기되며, 현재 슬라이스에 의해 이용되는 참조 픽처 세트에 포함되지 않은 픽처는 "참조용으로 사용되지 않음"이라고 표기된다. 현재 픽처가 IDR 픽처인 경우, RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr, 및 RefPicSetLtFoll은 모두 비어있음(empty)으로 설정된다.
디코딩된 픽처 버퍼(Decoded Picture Buffer, DPB)는 인코더에서 및/또는 디코더에서 사용될 수 있다. 디코딩된 픽처를 버퍼링하는 두 가지 이유는 인터 예측에서 참조하기 위한 것과 디코딩된 픽처를 출력 순서로 재배열하기 위함이다. H.264/AVC 및 HEVC은 참조 픽처 표시하는 것과 출력 재배열하는 것 모두에 대해 상당한 융통성을 부여하므로, 참조 픽처 버퍼링 및 출력 픽처 버퍼링을 위한 별개의 버퍼는 메모리 자원을 낭비할 수 있다. 그래서 DPB는 참조 픽처 및 출력 재배열을 위한 통합된 디코딩된 픽처 버퍼링 프로세스를 포함할 수 있다. 디코딩된 픽처는 이 픽처가 더 이상 참조로서 사용되지 않고 출력할 필요 없을 때 DPB로부터 제거될 수 있다.
H.264/AVC 및 HEVC의 많은 코딩 모드에서, 인터 예측을 위한 참조 픽처는 참조 픽처 리스트에 대한 인덱스로 표시된다. 인덱스는 보통 더 작은 인덱스가 대응하는 신택스 요소에 대해 더 짧은 값을 갖게 하는 가변 길이 코딩으로 코딩된다. H.264/AVC 및 HEVC에서, 두 참조 픽처 리스트(참조 픽처 리스트 0 및 참조 픽처 리스트 1)는 각 양방향-예측 (B) 슬라이스마다 생성되며, 하나의 참조 픽처 리스트(참조 픽처 리스트 0)는 각 인터-코딩된 (P) 슬라이스마다 형성된다.
참조 픽처 리스트 0 및 참조 픽처 리스트 1과 같은 참조 픽처 리스트는 두 단계로 구성될 수 있다. 첫 번째로, 초기의 참조 픽처 리스트가 생성된다. 초기의 참조 픽처 리스트는 예를 들면, frame_num, POC, temporal_id (또는 TemporalId 또는 이와 유사한 것), 또는 GOP 구조와 같은 예측 계층화에 관한 정보, 또는 이들의 임의의 조합에 기초하여 생성될 수 있다. 두 번째로, 초기의 참조 픽처 리스트는 참조 픽처 리스트 수정 신택스 구조(reference picture list modification syntax structure)라고도 알려진, 슬라이스 헤더에 포함된 참조 픽처 리스트 재배열(reference picture list reordering, RPLR) 커맨드에 의해 재배열될 수 있다. H.264/AVC에서, RPLR 커맨드는 각각의 참조 픽처 리스트의 시작부분에 배열되는 픽처를 표시한다. 이러한 두번째 단계는 또한 참조 픽처 리스트 수정 프로세스라고도 지칭될 수 있으며 RPLR 커맨드는 참조 픽처 리스트 수정 신택스 구조에 포함될 수 있다. 만일 참조 픽처 세트가 사용되면, 참조 픽처 리스트 0은 먼저 RefPicSetStCurr0를, 그 뒤를 이어 RefPicSetStCurr1를, 그 뒤를 이어 RefPicSetLtCurr를 포함하도록 초기화될 수 있다. 참조 픽처 리스트 1은 먼저 RefPicSetStCurr1를, 그 뒤를 이어 RefPicSetStCur0을 포함하도록 초기화될 수 있다. HEVC에서, 초기의 참조 픽처 리스트는 참조 픽처 리스트 수정 신택스 구조를 통해 수정될 수 있고, 초기의 참조 픽처 리스트 내 픽처는 그 리스트에 대한 엔트리 인덱스를 통해 식별될 수 있다. 다시 말해서, HEVC에서, 참조 픽처 리스트 수정은 최종 참조 픽처 리스트의 각 엔트리를 통해 루프를 포함하는 신택스 구조로 인코딩되며, 여기서 각 루프 엔트리는 초기 참조 픽처 리스트에 대한 고정 길이 코딩된 인덱스이고 픽처를 최종 참조 픽처 리스트에서 올림 위치 순서로 표시한다.
H.264/AVC 및 HEVC을 비롯한 많은 코딩 표준은 여러 참조 픽처 중 어느 참조 픽처가 특정 블록의 인터 예측에 이용되는지를 표시하는데 사용될 수 있는, 참조 픽처 리스트에 대한 참조 인덱스를 도출하는 디코딩 프로세스를 가질 수 있다. 참조 픽처 인덱스는 일부 인터 코딩 모드에서 인코더에 의해 비트스트림으로 코딩될 수 있거나, 또는 예를 들면 일부 다른 인터 코딩 모드에서 이웃 블록을 이용하여 (인코더 및 디코더에 의해) 도출될 수 있다.
비트스트림에서 움직임 벡터를 효과적으로 표현하기 위해, 움직임 벡터는 블록 별로 예측된 움직임 벡터에 대해 구별되게 코딩될 수 있다. 많은 비디오 코덱에서, 예측된 움직임 벡터는 미리 정의된 방식으로, 예를 들면, 인접 블록의 인코딩 또는 디코딩된 움직임 벡터의 중간 값을 계산함으로써 생성된다. 때로는 최신 움직임 벡터 예측(advanced motion vector prediction, AMVP)이라고 지칭되는 움직임 벡터 예측을 생성하는 다른 방법은 인접 블록 및/또는 시간 참조 픽처 내 동일 위치에 있는 블록으로부터 후보 예측 리스트를 만들고 선택한 후보를 움직임 벡터 예측기로서 시그널링하는 것이다. 움직임 벡터 값을 예측하는 것 이외에도, 이전에 코딩된/디코딩된 픽처의 참조 인덱스가 예측될 수 있다. 참조 인덱스는 전형적으로 인접 블록 및/또는 시간 참조 픽처 내 동일 위치에 있는 블록으로부터 예측될 수 있다. 움직임 벡터의 차분 코딩은 전형적으로 슬라이스 경계 전체에서 통상 불능화된다.
최신 움직임 벡터 예측(AMVP) 또는 이와 유사한 예측은 최신 움직임 벡터 예측의 다른 유사한 실현이 예를 들면 여러 후보 위치 세트 및 후보 위치 세트를 가진 후보 위치를 이용하여 또한 가능하지만, 예를 들면 다음과 같이 동작할 수 있다. 두 개의 공간 움직임 벡터 예측기(spatial motion vector predictor, MVP)가 도출될 수 있으며 시간 움직임 벡터 예측기(temporal motion vector predictor, TMVP)가 도출될 수 있다. 이들 움직임 벡터 예측기는 도 6에서 도시된 위치 중에서 선택될 수 있다. 즉 현재 예측 블록(600)위에 위치한 세 개의 공간 움직임 벡터 예측기 후보 위치(603, 604, 605)(B0, B1, B2) 및 왼쪽에 위치한 두(601, 602) (A0, A1)가 선택될 수 있다. 각 후보 위치 세트(B0, B1, B2) 또는 (A0, A1)의 미리 정의된 순서대로 이용 가능한 (예를 들면, 같은 슬라이스 내에 상주하는, 인터- 코딩된, 기타 등등) 제 1 움직임 벡터 예측기는 움직임 벡터 경쟁에서 그 예측 방향(위쪽 또는 왼쪽)을 나타내기 위해 선택될 수 있다. 시간 움직임 벡터 예측기의 참조 인덱스는 인코더에 의해 슬라이스 헤더에서 (예를 들면, collocated_ref_idx 신택스 요소로서) 표시될 수 있다. 동일 위치의 픽처로부터 구한 움직임 벡터는 시간 움직임 벡터 예측기의 참조 픽처, 동일 위치 픽처, 및 현재 픽처의 픽처 순서 카운트 차의 비율에 따라 조정될 수 있다. 더욱이, 후보 리스트에서 0의 움직임 벡터가 포함되게 할 수 있는, 후보 중에서 동일한 후보를 제거하는 중복 검사(redundancy check)가 수행될 수 있다. 움직임 벡터 예측기는 예를 들면 공간 움직임 벡터 예측기의 방향(위쪽 또는 왼쪽) 또는 시간 움직임 벡터 예측기 후보의 선택을 표시함으로써 비트스트림에서 표시될 수 있다.
HEVC 코덱과 같은 많은 고효율 비디오 코덱은 흔히 머징(merging)/병합(merge) 모드/프로세스/메커니즘이라고 불리는 부가적인 움직임 정보 코딩/디코딩 메커니즘을 사용하는데, 이 메커니즘에서 블록/PU의 모든 움직임 정보는 임의의 수정/교정 없이 예측되고 사용된다. PU의 전술한 움직임 정보는 다음과 같은 정보 중 하나 이상을 포함할 수 있다. 즉 1) 'PU가 오직 참조 픽처 list0만을 사용하여 단일 예측된 것(uni-predicted)'인지 또는 'PU가 오직 참조 픽처 list1만을 사용하여 단일 예측된 것'인지 또는 'PU가 두 참조 픽처 list0 및 list2를 사용하여 중복 예측된 것(bi-predicted)'인지에 관한 정보와, 2) 수평 및 수직 움직임 벡터 컴포넌트를 포함할 수 있는, 참조 픽처 list0에 대응하는 움직임 벡터 값과, 3) 참조 픽처 list0 내 참조 픽처 인덱스 및/또는 참조 픽처 list0에 대응하는 움직임 벡터에 의해 지정된 참조 픽처의 식별자 - 여기서 참조 픽처의 식별자는 예를 들면 픽처 순서 카운트 값, (인터-계층 예측의 경우) 계층 식별자 값, 또는 픽처 순서 카운트 값과 계층 식별자 값의 쌍일 수 있음 -과, 4) 참조 픽처의 참조 픽처 표시의 정보, 예를 들면 참조 픽처가 "단기간 참조용으로 사용됨" 또는 "장기간 참조용으로 사용됨"으로 표시되었는지에 관한 정보와, 5-7) 참조 픽처 list1을 제외하고 각기 2)-4)와 동일하다는 것 중 하나 이상을 포함할 수 있다. 유사하게, 움직임 정보를 예측하는 것은 인접 블록 및/또는 시간 참조 픽처 내 동일 위치 블록의 움직임 정보를 이용하여 실행된다. 흔히 병합 리스트라고 호칭하는 리스트는 이용 가능한 인접/동일 위치 블록과 연관된 움직임 예측 후보를 포함함으로써 구성될 수 있고 그 리스트에서 선택된 움직임 예측 후보의 인덱스는 시그널링되며 선택된 후보의 움직임 정보는 현재 PU의 움직임 정보로 복사된다. 병합 메커니즘이 CU 전체에서 적용되고 CU에 대한 예측 신호가 재구성 신호로서 사용될 때, 즉, 예측 잔차가 처리되지 않을 때, 이렇게 CU를 코딩/디코딩하는 방식은 통상적으로 스킵 모드(skip mode) 또는 병합 기반 스킵 모드라고 말한다. 스킵 모드 이외에도, 병합 메커니즘은 또한 개개의 PU에 대해서도 적용되며(스킵 모드처럼 반드시 CU 전체에 대해서는 아님), 이 경우 예측 잔차는 예측 품질을 개선하기 위해 활용될 수 있다. 이러한 방식의 예측 모드는 전형적으로 인터-병합 모드(inter-merge mode)라고 명명된다.
병합 리스트 내 후보 중 하나는 예를 들어 슬라이스 헤더에서 예를 들어 collocated_ref_idx 신택스 요소 또는 이와 유사한 요소를 사용하여 표시된 참조 픽처와 같은 표시된 또는 추론된 참조 픽처 내 동일위치 블록으로부터 도출될 수 있는 TMVP 후보일 수 있다.
HEVC에서, 병합 리스트 내 시간 움직임 벡터 예측을 위한 소위 타겟 참조 인덱스는 움직임 코딩 모드가 병합 모드일 때 0으로 설정된다. HEVC에서 시간 움직임 벡터 예측을 활용하는 움직임 코딩 모드가 최신 움직임 벡터 예측 모드일 때, 타겟 참조 인덱스 값은 명시적으로 (예를 들면, 각 PU 당) 표시될 수 있다.
타겟 참조 인덱스 값이 결정되었을 때, 시간 움직임 벡터 예측의 움직임 벡터 값은 다음과 같이 도출될 수 있다. 즉, 현재 예측 유닛의 우측하단의 이웃과 동일 위치에 있는 블록에서 움직임 벡터가 계산된다. 동일위치 블록이 존재하는 픽처는 예를 들면 전술한 바와 같이 슬라이스 헤더 내에서 시그널링된 참조 인덱스에 따라서 결정될 수 있다. 동일위치 블록에서 결정된 움직임 벡터는 제 1 픽처 순서 카운트 차와 제 2 픽처 순서 카운트 차의 비율과 관련하여 조정된다. 제 1 픽처 순서 카운트 차는 동일위치 블록을 가진 픽처와 동일위치 블록의 움직임 벡터의 참조 픽처 사이에서 도출된다. 제 2 픽처 순서 카운트 차는 현재 픽처와 타겟 참조 픽처 사이에서 도출된다. 만일 타겟 참조 픽처와 동일위치 블록의 움직임 벡터의 참조 픽처 중 둘이 아닌 하나가 장기간 참조 픽처이면(반면에 다른 픽처는 단기간 참조 픽처이면), TMVP 후보는 이용 가능하지 않은 것으로 간주될 수 있다. 만일 타겟 참조 픽처와 동일위치 블록의 움직임 벡터의 참조 픽처의 두 픽처가 장기간 참조 픽처이면, 아무런 POC 기반의 움직임 벡터 조정도 적용되지 않을 수 있다.
스케일러블 비디오 코딩은 하나의 비트스트림이 콘텐츠의 여러 표현을 예를 들면, 상이한 비트레이트, 해상도, 및/또는 프레임 레이트로 포함하고 있을 수 있는 코딩 구조를 말할 수 있다. 이러한 사례에서, 수신기는 그의 특성 (예를 들면, 디스플레이 디바이스와 가장 잘 어울리는 해상도)에 따라 요구된 표현을 추출할 수 있다. 이와 달리, 서버 또는 네트워크 요소는 예를 들면, 네트워크 특성 또는 수신기의 처리 능력에 따라 수신기로 전송될 비트스트림 부분을 추출할 수 있다. 전형적으로 스케일러블 비트스트림은 이용할 수 있는 최저 품질의 비디오를 제공하는 "기본 계층" 및 하위 계층과 함께 수신되어 디코딩될 때 비디오 품질을 강화하는 하나 이상의 강화 계층으로 이루어진다. 강화 계층의 코딩 효율 개선하기 위하여, 그 계층의 코딩된 표현은 하위 계층에 의존할 수 있다. 예를 들면, 강화 계층의 움직임 및 모드 정보는 하위 계층으로부터 예측될 수 있다. 유사하게, 하위 계층의 픽셀 데이터는 강화 계층의 예측을 생성하기 위해 사용될 수 있다.
일부 스케일러블 비디오 코딩 체계에서, 비디오 신호는 베이스 계층과 하나 이상의 강화 계층으로 인코딩될 수 있다. 강화 계층은 시간 해상도(즉, 프레임 레이트), 공간 해상도, 또는 다른 계층이나 그 계층의 일부에 의해 표현되는 그야말로 비디오 콘텐츠의 품질을 강화할 수 있다. 각각의 계층과 함께 그의 모든 종속 계층은 예를 들면 특정한 공간 해상도, 시간 해상도 및 품질 레벨로 표현한 비디오 신호의 한가지 표현이다. 본 명세서에서, 발명자는 스케일러블 계층과 함께 그의 모든 종속 계층을 "스케일러블 계층 표현(scalable layer representation)"이라고 지칭한다. 스케일러블 계층 표현에 대응하는 스케일러블 비트스트림의 일부분이 추출되고 디코딩되어 원 신호의 표현을 특정의 충실도로 생성할 수 있다.
스케일러빌리티 모드 또는 스케일러빌리티 차원은 이것으로 제한되는 것은 아니지만 다음을 포함할 수 있다.
- 품질 스케일러빌리티(Quality scalability): 기본 계층 픽처는 강화 계층 픽처보다 낮은 품질로 코딩되는데, 이것은 예를 들면 강화 계층에서보다 기본 계층에서 더 큰 양자화 파라미터 값(즉, 변환 계수 양자화에 필요한 더 큰 양자화 스텝 크기)을 사용하여 달성될 수 있다. 아래에서 설명되는 바와 같이, 품질 스케일러빌리티는 또한 화인-그레인 스케일러빌리티(fine-grain) 또는 화인-그래뉴러리티 스케일러빌리티(fine-granularity scalability, FGS), 미디엄-그레인(medium-grain) 또는 미디엄-그래뉴러리티(medium-granularity, MGS), 및/또는 커스-그레인(coarse-grain) 또는 커스-그래뉴러리티 스케일러빌리티(coarse-granularity scalability, CGS)로 분류될 수 있다.
- 공간 스케일러빌리티(Spatial scalability): 기본 계층 픽처는 강화 계층 픽처보다 낮은 해상도로 코딩된다(즉, 적은 수의 샘플을 갖는다). 공간 스케일러빌리티 및 품질 스케일러빌리티, 특히 그의 커스-그레인 스케일러빌리티 타입은 때때로 동일한 타입의 스케일러빌리티로 간주될 수 있다.
- 비트-깊이 스케일러빌리티(Bit-depth scalability): 기본 계층 픽처는 강화 계층 픽처(예를 들면, 10 또는 12 비트)보다 낮은 비트-깊이(예를 들면, 8비트)로 코딩된다.
- 크로마 포맷 스케일러빌리티(Chroma format scalability): 기본 계층 픽처는 강화 계층 픽처(예를 들면, 4:4:4 포맷)보다 (예를 들면, 4:2:0 크로마 포맷으로 코딩된) 크로마 샘플 어레이에서 낮은 공간 해상도를 제공한다.
- 색 공간 스케일러빌리티(Color gamut scalability): 강화 계층 픽처는 기본 계층 픽처보다 풍부한/넓은 색 표현 범위 - 예를 들면 강화 계층은 UHDTV (ITU-R BT.2020) 색 공간을 가질 수 있으며 기본 계층은 ITU-R BT.709 색 공간을 가질 수 있음 - 를 갖는다.
- 뷰 스케일러빌리티(View scalability). 뷰 스케일러빌리티는 또한 멀티뷰 코딩이라고도 지칭될 수 있다. 기본 계층은 제 1 뷰를 표현하는데 반해 강화 계층은 제 2 뷰를 표현한다.
- 깊이 스케일러빌리티(Depth scalability). 깊이 스케일러빌리티는 또한 깊이-강화 코딩이라고도 지칭될 수 있다. 비트스트림의 한 계층 또는 일부 계층은 텍스처 뷰(들)을 표현할 수 있는데 반해, 다른 계층 또는 계층들은 깊이 뷰(들)을 표현할 수 있다.
- 관심 영역 스케일러빌리티(Region-of-interest scalability) (아래에서 설명됨).
- 인터레이스-투-프로그레시브 스케일러빌리티(Interlaced-to-progressive scalability) (또한 필드-투-프레임 스케일러빌리티(field-to-frame scalability)라고도 알려져 있음): 기본 계층의 코딩된 인터레이스 소스 콘텐츠 재료는 프로그레시브 소스 콘텐츠를 표현하는 강화 계층으로 강화된다. 기본 계층에서 코딩된 인터레이스 소스 콘텐츠는 코딩된 필드, 필드 쌍을 나타내는 코딩된 프레임, 또는 이들의 혼합을 포함할 수 있다. 인터레이스-투-프로그레시브 스케일러빌리티에서, 기본 계층 픽처는 하나 이상의 강화 계층 픽처에 적합한 참조 픽처가 되도록 다시 샘플링될 수 있다.
- 하이브리드 코덱 스케일러빌리티(Hybrid codec scalability)(또한 코딩 표준 스케일러빌리티(coding standard scalability)라고도 알려져 있음): 하이브리드 코덱 스케일러빌리티에서, 기본 계층 및 강화 계층의 비트스트림 신택스, 시맨틱 및 디코딩 프로세스는 여러 비디오 코딩 표준에서 명시되어 있다. 그래서 기본 계층 픽처는 강화 계층 픽처와 상이한 코딩 표준 또는 포맷에 따라서 코딩된다. 예를 들면, 기본 계층은 H.264/AVC을 이용하여 코딩될 수 있으며 강화 계층은 HEVC 확장을 이용하여 코딩될 수 있다.
스케일러빌리티 타입 중 많은 타입은 서로 조합되어 적용될 수 있다는 것을 이해하여야 한다. 예를 들면 색공간 스케일러빌리티 및 비트-깊이 스케일러빌리티는 조합될 수 있다.
계층이라는 용어는 뷰 스케일러빌리티 및 깊이 강화를 포함하는 임의의 종류의 스케일러빌리티의 맥락에서 사용될 수 있다. 강화 계층은 SNR, 공간, 멀티뷰, 깊이, 비트-깊이, 크로마 포맷, 및/또는 색 공간 강화와 같은 임의의 타입의 강화를 말할 수 있다. 기본 계층은 기본 뷰, SNR/공간 스케일러빌리티의 기본 계층, 또는 깊이-강화 비디오 코딩의 텍스처 기본 뷰와 같은 임의의 타입의 기본 비디오 시퀀스를 말할 수 있다.
3차원(3D) 비디오 콘텐츠를 제공하는 다양한 기술이 현재 연구되고 개발된다. 스테레오스코픽 또는 투-뷰 비디오(two-view video)에서, 하나의 비디오 시퀀스 또는 뷰는 왼쪽 눈에 제공되는 반면 병렬 뷰는 오른쪽 눈에 제공된다고 간주될 수 있다. 둘보다 많은 병렬 뷰는 뷰포인트 스위칭(viewpoint switching)을 가능하게 하는 애플리케이션 또는 동시에 많은 수의 뷰를 제공하여 시청자가 콘텐츠를 상이한 뷰포인트에서 관측하게 하는 오토스테레오스코픽(autostereoscopic) 디스플레이에 필요할 수 있다. 시청자가 특정 뷰포인트로부터 단지 한 쌍의 스테레오 비디오만을 볼 수 있고 다른 뷰포인트로부터 다른 쌍의 스테레오 비디오를 볼 수 있는 오토스테레오스코픽 디스플레이 및 그러한 멀티뷰 애플리케이션을 위한 비디오 코딩에 열정적인 연구가 집중되고 있다. 그러한 멀티뷰 애플리케이션에 가장 실행 가능한 접근방법 중 하나는 단지 제한된 개수의 뷰 예를 들면 모노 또는 스테레오 비디오에 일부 보충 데이터가 더해져서 디코더 측에 제공된 다음 필요한 모든 뷰가 디코더에서 국부적으로 렌더링(즉, 합성)되어 디스플레이에서 디스플레이되는 그러한 것으로 판명되었다.
뷰는 하나의 카메라 또는 뷰포인트를 표현하는 픽처의 시퀀스로 정의될 수 있다. 뷰를 표현하는 픽처는 또한 뷰 컴포넌트라고 불릴 수도 있다. 다시 말해서, 뷰 컴포넌트는 단일의 액세스 유닛 내 뷰의 코딩된 표현으로 정의될 수 있다. 멀티뷰 비디오 코딩에서, 하나보다 많은 뷰는 비트스트림으로 코딩된다. 뷰는 전형적으로 스테레오스코픽 또는 멀티뷰 오토스테레오스코픽 디스플레이에서 디스플레이되는 것 또는 다른 3D 장치에 사용되는 것으로 의도되어 있기 때문에, 뷰는 콘텐츠에 대해 상이한 뷰포인트를 표현할지라도 전형적으로 동일한 장면을 표현하고 콘텐츠별로 부분적으로 겹친다. 그래서 인터-뷰 예측은 인터-뷰 상관의 장점을 취하고 압축 효율을 개선하기 위해 멀티뷰 비디오 코딩에서 활용될 수 있다. 인터-뷰 예측을 실현하는 한가지 방법은 제 1 뷰 내에서 존재하는 코딩 또는 디코딩되는 픽처의 참조 픽처 리스트(들)에다 하나 이상의 다른 뷰의 하나 이상의 디코딩된 픽처를 포함시키는 것이다. 뷰 스케일러빌리티는 하나 이상의 코딩된 뷰를 제거하거나 생략할 수 있게 하면서, 결과로 생긴 비트스트림은 순응한 채로 유지되고 원래보다 적은 수의 뷰로 비디오를 표현하게 되는, 그러한 멀티뷰 비디오 코딩 또는 멀티뷰 비디오 스트림을 말할 수 있다.
관심 영역(ROI) 코딩은 비디오 내 특정 영역을 더 높은 충실도로 코딩하는 것을 말하는 것으로 정의될 수 있다. 인코더 및/또는 다른 엔티티가 인코딩될 입력 픽처로부터 ROI를 결정하는 여러 방법이 존재한다. 예를 들면, 얼굴 검출이 사용될 수 있으며 얼굴은 ROI로 결정될 수 있다. 부가적으로 또는 이와 달리, 다른 예에서, 초점이 맞은 개체가 검출되고 ROI로 결정되지만, 초점을 벗어난 개체는 ROI를 벗어난 것으로 결정된다. 부가적으로 또는 이와 달리, 다른 예에서, 개체와의 거리는 예를 들면 깊이 센서에 기초하여 추정되거나 알 수 있으며, ROI는 배경에서보다는 오히려 상대적으로 카메라에 가까이 있는 그러한 개체가 되는 것으로 결정될 수 있다.
ROI 스케일러빌리티는 강화 계층이 참조 계층 픽처의 일부분만을 강화하는, 예를 들면 공간적으로, 품질에 따라, 비트-깊이에서, 그리고/또는 다른 스케일러빌리티 차원을 따라서 강화하는 스케일러빌리티의 한 타입으로 정의될 수 있다. ROI 스케일러빌리티가 다른 타입의 스케일러빌리티와 함께 사용될 수 있으므로, ROI 스케일러빌리티는 상이한 분류의 스케일러빌리티 타입을 형성하는 것으로 생각될 수 있다. ROI 스케일러빌리티를 사용함으로써 실현될 수 있는 여러 요건을 가진 ROI 코딩을 위한 여러 상이한 애플리케이션이 존재한다. 예를 들면, 강화 계층은 기본 계층 내 한 영역의 품질 및/또는 해상도를 강화하기 위해 전송될 수 있다. 강화 계층 및 기본 계층 비트스트림을 모두 수신하는 디코더는 두 계층을 모두 디코딩하고 디코딩된 픽처를 서로의 위에다 겹쳐서 최종 픽처를 디스플레이할 수 있다.
강화 계층 픽처와 참조 계층 영역 사이, 또는 유사하게 강화 계층 영역과 기본 계층 픽처 사이의 공간 대응성은 인코더에 의해 표시될 수 있고 그리고/또는 디코더에 의해 예를 들면 소위 조정된 참조 계층 옵셋(scaled reference layer offset)을 사용하여 디코딩될 수 있다. 조정된 참조 계층 옵셋은 강화 계층 픽처의 각각의 코너 샘플에 대해 업샘플링된 참조 계층 픽처의 코너 샘플의 위치를 명시하는 것으로 간주될 수 있다. 옵셋 값은 부호를 가질 수 있는데, 이것은 도 19a 및 도 19b에서 예시된 바와 같이, 옵셋 값의 사용이 두 타입의 확장된 공간 스케일러빌리티에서 사용될 수 있게 한다. 관심 영역 스케일러빌리티의 사례(도 19a)에서, 강화 계층 픽처(110)는 참조 계층 픽처(116)의 영역(112)에 대응하며 조정된 참조 계층 옵셋은 강화 계층 픽처의 영역을 확장한 업샘플링된 참조 계층 픽처의 코너를 표시한다. 조정된 참조 계층 옵셋은 (예를 들면, 강화 계층과 그의 참조 계층의 쌍 당) 네 개의 신택스 요소에 의해 표시될 수 있고, 네 개의 신택스 요소는 scaled_ref_layer_top_offset(118), scaled_ref_layer_bottom_offset(120), scaled_ref_layer_right_offset(122) 및 scaled_ref_layer_left_offset(124)으로 지칭될 수 있다. 업샘플링된 참조 계층 영역은 인코더 및/또는 디코더에 의해 강화 계층 픽처 높이 또는 폭과 업샘플링된 참조 계층 픽처 높이 또는 폭 사이의 각각의 비율에 따라서 조정된 참조 계층 옵셋을 축소 조정함으로써 결정될 수 있다. 그러면 축소조정된 조정된 참조 계층 옵셋은 업샘플링된 참조 계층 영역을 취득하는데 사용될 수 있고 그리고/또는 참조 계층 픽처의 어느 샘플이 강화 계층 픽처의 특정 샘플과 동일위치에 있는지를 결정하는데 사용될 수 있다. 참조 계층 픽처가 강화 계층 픽처의 영역에 대응하는 사례(도 19b)에서, 조정된 참조 계층 옵셋은 강화 계층 픽처의 영역 내에 있는 업샘플링된 참조 계층 픽처의 코너를 표시한다. 조정된 참조 계층 옵셋은 업샘플링된 참조 계층 픽처의 어느 샘플이 강화 계층 픽처의 특정 샘플과 동일위치에 있는지를 결정하는데 사용될 수 있다. 확장된 공간 스케일러빌리티의 타입을 혼합하는 것, 즉 하나의 타입을 수평으로 적용하고 다른 타입을 수직으로 적용하는 것도 또한 가능하다. 조정된 참조 계층 옵셋은 인코더에 표시될 수 있고 그리고/또는 디코더에 의해 예를 들면 SPS 및/또는 VPS와 같은 시퀀스 레벨의 신택스 구조로부터 디코딩될 수 있다. 조정된 참조 옵셋의 정확도는 예를 들면 코딩 표준에서 미리 정의될 수 있고 그리고/또는 인코더에 의해 명시되고 그리고/또는 디코더에 의해 비트스트림으로부터 디코딩될 수 있다. 예를 들면, 강화 계층에서 루마 샘플 크기의 1/16th의 정확도가 사용될 수 있다. 조정된 참조 계층 옵셋은 두 계층 사이에서 아무런 인터-계층 예측이 발생하지 않을 때 인코딩, 디코딩 및/또는 디스플레이 프로세스에서 표시되고, 디코딩되고, 그리고/또는 사용될 수 있다.
일부 코딩 표준은 스케일러블 비트 스트림을 생성할 수 있게 한다. 중요한 디코딩된 표현은 스케일러블 비트 스트림의 특정 부분만을 디코딩함으로써 생성될 수 있다. 스케일러블 비트 스트림은 예를 들면, 스트리밍 서버에서 미리 인코딩된 유니캐스트 스트림의 레이트 적응(rate adaptation)을 위해 사용될 수 있으며 단일 비트 스트림을 상이한 성능 및/또는 상이한 네트워크 조건을 가진 단말로 전송하기 위해 사용될 수 있다. 스케일러블 비디오 코딩의 일부 다른 사용 사례의 리스트는 2003년 3월 10일부터 14일 태국 파타야의 제64차 MPEG 미팅에서, ISO/IEC JTC1 SC29 WG11 (MPEG)의 출력 문서 N5540, "Applications and Requirements for Scalable Video Coding (스케일러블 비디오 코딩의 응용 및 요건)"에서 찾아볼 수 있다.
코딩 표준은 서브비트스트림 추출 프로세스를 포함할 수 있고, 이와 같은 추출 프로세스는 예를 들면 SVC, MVC, 및 HEVC에서 명시되어 있다. 서브비트스트림 추출 프로세스는 전형적으로 NAL 유닛을 제거함으로써 비트스트림을 비트스트림 서브세트라고도 지칭될 수 있는 서브비트스트림으로 변환하는 것과 관련된다. 서브비트스트림은 그럼에도 표준에 순응한다. 예를 들면, HEVC에서, 선택된 값보다 큰 TemporalId 값을 갖는 모든 VCL NAL 유닛을 제외시키고 다른 모든 VCL NAL 유닛을 포함시킴으로써 생성된 비트스트림은 여전히 순응한다. HEVC에서, 서브비트스트림 추출 프로세스는 입력으로서 TemporalId 및/또는 nuh_layer_id 값의 리스트를 받고 입력 TemporalId 값 또는 nuh_layer_id 값의 입력 리스트 내 값 중에 있지 않은 nuh_layer_id 값보다 큰 TemporalId를 가진 모든 NAL 유닛을 비트스트림으로부터 제거함으로써 (비트스트림 서브세트라고도 알려진) 서브비트스트림을 도출한다.
코딩 표준 또는 시스템은 동작점(operation point) 또는 이와 유사한 용어를 언급할 수 있는데, 이 동작점은 디코딩이 수행되는 스케일러블 계층 및/또는 서브계층을 표시할 수 있고 그리고/또는 디코딩되는 스케일러블 계층 및/또는 서브계층을 포함하는 서브비트스트림과 연관될 수 있다. 동작점의 일부 제한되지 않는 정의는 아래에서 제공된다.
HEVC에서, 동작점은 입력으로서 다른 비트스트림, 타겟의 최고 TemporalId, 및 타겟 계층 식별자 리스트를 받는 서브비트스트림 추출 프로세스의 동작에 의해 다른 비트스트림으로부터 생성된 비트스트림으로 정의된다.
HEVC의 VPS는 계층 세트(layer set)와 이와같은 계층 세트의 HRD 파라미터를 명시한다. 계층 세트는 서브비트스트림 추출 프로세스에서 타겟 계층 식별자 리스트로서 사용될 수 있다.
SHVC 및 MV-HEVC에서, 동작점 정의는 타겟 출력 계층 세트라는 고려대상을 포함할 수 있다. SHVC 및 MV-HEVC에서, 동작점은 입력으로서 다른 비트스트림, 타겟의 최고 TemporalId, 및 타겟 계층 식별자 리스트를 받는 서브비트스트림 추출 프로세스의 동작에 의해 다른 비트스트림으로부터 생성된 그리고 한 세트의 타겟 출력 계층과 연관된 비트스트림으로 정의될 수 있다.
출력 계층 세트는 명시된 계층 세트들의 계층 세트의 계층들로 이루어진 한 세트의 계층으로 정의될 수 있고, 그 계층 세트 내 하나 이상의 계층은 출력 계층이 되는 것으로 표시된다. 출력 계층은 디코더 및/또는 HRD가 출력 계층 세트를 타겟 출력 계층 세트로서 사용하여 동작할 때 출력되는 출력 계층 세트의 계층으로 정의될 수 있다. MV-HEVC/SHVC에서, 변수 TargetOptLayerSetIdx는 TargetOptLayerSetIdx를 타겟 출력 계층 세트인 출력 계층의 인덱스와 동일하게 설정함으로써 어느 출력 계층 세트가 타겟 출력 계층 세트인지를 명시할 수 있다. TargetOptLayerSetIdx는 예를 들면 HRD에 의해 설정될 수 있고 그리고/또는 외부 수단에 의해 예를 들면, 플레이어 또는 이와 유사한 것에 의해 디코더에 의해 제공된 인터페이스를 통해 설정될 수 있다. MV-HEVC/SHVC에서, 타겟 출력 계층은 출력되는 그리고 TargetOptLayerSetIdx가 인덱스 olsIdx와 같도록 하는 인덱스 olsIdx를 가진 출력 계층 세트의 출력 계층들의 출력 계층으로 정의될 수 있다.
MV-HEVC/SHVC은 특정 메커니즘을 사용하여 또는 출력 계층의 명시적으로 표시함으로써 VPS에서 명시된 각 계층 세트마다 "디폴트" 출력 계층 세트를 도출할 수 있게 한다. 두 개의 특정한 메커니즘이 명시될 수 있는데, 특정한 메커니즘은 각 계층이 출력 계층이다 또는 최고 계층만이 "디폴트" 출력 계층 세트 내 출력 계층이다라고 VPS에서 명시될 수 있다. 언급한 특정 메커니즘을 사용하여 계층이 출력 계층인지를 결정할 때 보조 픽처 계층은 고려 대상에서 제외될 수 있다. 또한, "디폴트" 출력 계층 세트에 대한 VPS 확장에서는 출력 계층이라고 표시된 선택된 계층을 갖는 부수적인 출력 계층 세트를 명시하는 것이 가능할 수 있다.
MV-HEVC/SHVC에서, profile_tier_level( ) 신택스 구조는 각 출력 계층 세트마다 연관된다. 정확히 말해서, profile_tier_level( ) 신택스 구조의 리스트는 VPS 확장에서 제공되며, 그 리스트 내 적용 가능한 profile_tier_level( )의 인덱스는 각 출력 계층 세트마다 제공된다. 다시 말해서, profile, tier, 및 level 값의 조합은 각 출력 계층 세트마다 표시된다.
일정한 세트의 출력 계층은 최고 계층이 각 액세스 유닛에서 변동하지 않고 남아 있는 사용 사례 및 비트스트림에는 잘 어울리지만, 최고 계층이 하나의 액세스 유닛에서 다른 액세스 유닛으로 유닛마다 변동하는 사용 사례를 지원하지 않을 수 있다. 그래서 인코더가 비트스트림 내에서 대체 가능한 출력 계층의 사용을 명시할 수 있고 대체 가능한 출력 계층의 명시된 사용에 응답하여 디코더가 동일한 액세스 유닛 내에서 출력 계층 내 픽처의 부재시에 대체 가능한 출력 계층으로부터의 디코딩된 픽처를 출력하는 것이 제안되었다. 대체 가능한 출력 계층을 어떻게 표시할지에 관해 여러 가능성이 존재한다. 예를 들면, 출력 계층 세트 내 각 출력 계층은 최소의 대체 가능한 출력 계층과 연관될 수 있고, 출력 계층별 신택스 요소(들)는 각 출력 계층마다 대체 가능한 출력 계층(들)을 명시하는데 사용될 수 있다. 이와 달리, 대체 가능한 출력 계층 세트 메커니즘은 단 하나의 출력 계층만을 포함하는 출력 계층 세트에 대해서만 사용되도록 제한될 수 있고, 출력 계층 세트별 신택스 요소(들)는 출력 계층 세트의 출력 계층마다 대체 가능한 출력 계층(들)을 명시하기 위해 사용될 수 있다. 이와 달리, 대체 가능한 출력 계층 세트 메커니즘은 명시된 모든 출력 계층 세트가 단 하나의 출력 계층만을 포함하는 비트스트림 또는 CVS에 대해서만 사용되도록 제한될 수 있고, 대체 가능한 출력 계층(들)은 비트스트림별 신택스 요소(들) 또는 CVS별 신택스 요소(들)에 의해 표시될 수 있다. 대체 가능한 출력 계층(들)은 예를 들면 VPS 내에서 대체 가능한 출력 계층을 (예를 들면, 이들 출력 계층의 계층 식별자 또는 직접 또는 간접 참조 계층 리스트의 인덱스를 사용하여) 목록으로 열거함으로써, 또는 최소의 대체 가능한 출력 계층을 (예를 들면, 그 출력 계층의 계층 식별자 또는 직접 또는 간접 참조 계층 리스트 내 그 출력 계층의 인덱스를 사용하여) 표시함으로써, 또는 임의의 직접 또는 간접 참조 계층이 대체 가능한 출력 계층이라고 플래그로 명시함으로써 명시될 수 있다. 하나보다 많은 대체 가능한 출력 계층을 사용하는 것이 가능하게 될 때, 액세스 유닛에서 존재하는 제 1의 직접 또는 간접 인터-계층 참조 픽처는 지정된 최소의 대체 가능한 출력 계층에 이르기까지 내림 계층 식별자 순서로 출력된다고 명시될 수 있다.
MVC에서, 동작점은 다음과 같이 정의될 수 있다. 동작점은 타겟 시간 레벨을 나타내는 temporal_id 값 및 타겟 출력 뷰를 나타내는 한 세트의 view_id 값에 의해 식별된다. 하나의 동작점은 비트스트림 서브세트와 연관되는데, 이 비트스트림 서브세트는 타겟 출력 뷰 및 그 타겟 출력 뷰가 서브비트스트림 추출 프로세스 - 서브비트스트림 추출 프로세스는 입력으로서 temporal_id 값과 같은 tIdTarget 및 view_id 값의 세트로 이루어지는 viewIdTargetList를 받음 - 를 사용하여 도출되는 것에 의존하는 다른 모든 뷰로 이루어진다. 하나보다 많은 동작점은 동일한 비트스트림 서브세트와 연관될 수 있다. "동작점이 디코딩될" 때, 동작점에 대응하는 비트스트림 서브세트가 디코딩될 수 있으며 후속하여 타겟 출력 뷰가 출력될 수 있다.
앞에서 지적한 바와 같이, MVC는 H.264/AVC의 확장이다. 또한 H.264/AVC의 정의, 개념, 신택스 구조, 시맨틱, 및 디코딩 프로세스 중 많은 것은 그러한 어떤 일반화 또는 제한으로서 MVC에도 적용되거나 어떤 일반화 또는 제한을 가지고 MVC에도 적용된다. MVC의 일부 정의, 개념, 신택스 구조, 시맨틱, 및 디코딩 프로세스는 아래에서 설명된다.
MVC에서 액세스 유닛은 디코딩 순서에서 연속하면서 하나 이상의 뷰 컴포넌트로 이루어진 정확히 하나의 기본 코딩된 픽처를 포함하는 한 세트의 NAL 유닛으로 정의된다. 기본 코딩된 픽처 이외에도, 액세스 유닛은 또한 하나 이상의 중복 코딩된 픽처, 하나의 보조 코딩된 픽처, 또는 코딩된 픽처의 슬라이스 또는 슬라이스 데이터 부분을 포함하지 않는 다른 NAL 유닛을 포함할 수 있다. 디코딩에 영향을 미칠 수 있는 디코딩 오류, 비트스트림 오류 또는 다른 오류가 발생하지 않을 때, 액세스 유닛을 디코딩하면 하나 이상의 디코딩된 뷰 컴포넌트로 이루어진 하나의 디코딩된 픽처가 생긴다. 다시 말해서, MVC 에서 액세스 유닛은 하나의 출력 시간 인스턴스에 대한 뷰의 뷰 컴포넌트를 갖는다.
뷰 컴포넌트는 단일 액세스 유닛에서 뷰의 코딩된 표현이라고 지칭될 수 있다.
인터-뷰 예측(inter-view prediction)은 MVC에서 사용될 수 있으며, 같은 액세스 유닛의 상이한 뷰 컴포넌트의 디코딩된 샘플로부터 뷰 컴포넌트의 예측을 말한다. MVC에서, 인터-뷰 예측은 인터 예측과 유사하게 실현된다. 예를 들면, 인터-뷰 참조 픽처는 인터 예측을 위한 참조 픽처와 동일한 참조 픽처 리스트(들) 내에 놓이며, 참조 인덱스뿐만 아니라 움직임 벡터는 인터-뷰 및 인터 참조 픽처에 대해 유사하게 부호화되거나 추론된다.
앵커 픽처(anchor picture)는 모든 슬라이스가 같은 액세스 유닛 내 슬라이스만을 참조할 수 있는, 즉, 인터-뷰 예측이 사용될 수 있지만 어떠한 인터 예측도 사용되지 않으며, 출력 순서에서 다음에 오는 모든 코딩된 픽처가 디코딩 순서에서 코딩된 픽처에 앞선 임의의 픽처로부터 인터 예측을 사용하지 않는, 코딩된 픽처이다. 인터-뷰 예측은 비기본 뷰(non-base view)의 일부인 IDR 뷰 컴포넌트에 사용될 수 있다. MVC에서 기본 뷰는 코딩된 비디오 시퀀스에서 뷰 순서 인덱스(view order index)의 최소 값을 갖는 뷰이다. 기본 뷰는 다른 뷰와 무관하게 디코딩될 수 있으며 인터-뷰 예측을 사용하지 않는다. 기본 뷰는 H.264/AVC의 베이스라인 프로파일(Baseline Profile) 또는 하이 프로파일(High Profile)과 같이, 단일-뷰 프로파일만을 지원하는 H.264/AVC 디코더에 의해 디코딩될 수 있다.
MVC 표준에서, MVC 디코딩 프로세스의 많은 서브-프로세스는 H.264/AVC 표준의 서브-프로세스 사양서에서 용어 "픽처", "프레임", 및 "필드"를 "뷰 컴포넌트", "프레임 뷰 컴포넌트", 및 "필드 뷰 컴포넌트"로 각기 대체함으로써 H.264/AVC 표준의 각각의 서브-프로세스를 사용한다. 마찬가지로, 용어 "픽처", "프레임", 및 "필드"는 각기 다음의 설명에서 종종 "뷰 컴포넌트", "프레임 뷰 컴포넌트", 및 "필드 뷰 컴포넌트"를 의미하는 것으로 사용된다.
멀티뷰 비디오 코딩의 맥락에서, 뷰 순서 인덱스는 액세스 유닛 내 뷰 컴포넌트의 디코딩 순서 또는 비트스트림 순서를 표시하는 인덱스라고 정의될 수 있다. MVC에서, 인터-뷰 디펜던시 관계는 시퀀스 파라미터 세트에 포함된 시퀀스 파라미터 세트 MVC 확장에서 표시된다. MVC 표준에 따르면, 코딩된 비디오 시퀀스에 의해 참조되는 모든 시퀀스 파라미터 세트 MVC 확장은 동일해야 한다.
텍스처 뷰(texture view)는 보통의 비디오 콘텐트를 표현하는, 예를 들면, 보통의 카메라를 사용하여 촬영된 뷰를 말하며, 통상 디스플레이상에서 렌더링하는데 적합하다. 텍스처 뷰는 전형적으로 세 개의 컴포넌트, 즉 하나의 루마 컴포넌트 및 두 개의 크로마 컴포넌트를 갖는 픽처를 포함한다. 아래에서, 텍스처 픽처는 예를 들면, 루마 텍스처 픽처 및 크로마 텍스처 픽처라는 용어로 달리 표시하지 않는 한, 전형적으로 그의 모든 컴포넌트 픽처 또는 컬러 컴포넌트를 포함한다.
깊이 뷰(depth view)는 카메라 센서로부터 텍스처 샘플과의 거리 정보, 텍스처 샘플과 다른 뷰 내 각 텍스처 샘플 사이의 디스패리티(disparity) 또는 시차(parallax) 정보, 또는 유사한 정보를 표현하는 뷰를 말한다. 깊이 뷰는 텍스처 뷰의 루마 컴포넌트와 유사한 하나의 컴포넌트를 갖는 깊이 픽처(깊이 맵(depth map)이라고 알려져 있음)를 포함할 수 있다. 깊이 맵은 픽셀당 깊이 정보 또는 이와 유사한 정보를 가진 이미지이다. 예를 들면, 깊이 맵 내 각 샘플은 카메라가 놓인 평면으로부터 각 텍스처 샘플 또는 샘플들과의 거리를 나타낼 수 있다. 다시 말해서, 만일 z 축이 카메라의 촬영 축을 따라 있으면(그래서 카메라가 놓인 평면에 직교하면), 깊이 맵 내 샘플은 z 축상의 값을 나타낸다. 깊이 맵의 시맨틱은 예를 들면 다음과 같은 것을 포함할 수 있다.
1. 코딩된 깊이 뷰 컴포넌트에서 각 루마 샘플 값은, 이를테면 8비트 루마 표현에 대해 0부터 255까지 모두 포함하여 그 범위까지의 루마 샘플의 동적 범위에서 정규화된 실세계 거리(Z) 값의 역, 즉 1/Z을 나타낸다. 정규화는 디스패리티의 관점에서 양자화 1/Z는 균일하다라는 방식으로 수행될 수 있다.
2. 코딩된 깊이 뷰 컴포넌트에서 각 루마 샘플 값은 이를 테면 구분적 선형 맵핑(piece-wise linear mapping)과 같은 맵핑 함수 f(1/Z) 또는 테이블을 이용하는, 8비트 루마 표현의 경우, 0부터 255까지 모두 포함하여 그 범위까지 루마 샘플의 동적 범위에 맵핑된 실세계 거리(Z) 값의 역, 즉 1/Z를 나타낸다. 다시 말해서, 깊이 맵 값은 함수 f(1/Z)를 적용하는 결과를 가져온다.
3. 코딩된 깊이 뷰 컴포넌트에서 각 루마 샘플 값은 이를 테면 8비트 루마 표현에 대해, 0부터 255까지 모두 포함하여 그 범위까지 루마 샘플의 동적 범위에서 정규화된 실세계 거리(Z) 값을 나타낸다.
4. 코딩된 깊이 뷰 컴포넌트에서 각 루마 샘플 값은 현재의 깊이 뷰로부터 다른 지정된 또는 도출된 깊이 뷰 또는 뷰 위치까지의 디스패리티 또는 시차 값을 나타낸다.
깊이 맵 값의 시맨틱은 예를 들면, 비디오 파라미터 세트 신택스 구조, 시퀀스 파라미터 세트 신택스 구조, 비디오 유용성 정보 신택스 구조, 픽처 파라미터 세트 신택스 구조, 카메라/깊이/적응 파라미터 세트 신택스 구조, 보충 강화 정보 메시지, 또는 이와 유사한 어느 것 내의 비트스트림에서 표시될 수 있다.
깊이-강화 비디오는 하나 이상의 깊이 뷰를 가진 깊이 비디오와 연관된 하나 이상의 뷰를 갖는 텍스처 비디오를 말한다. 비디오 플러스 깊이(video plus depth, V+D), 멀티뷰 비디오 플러스 깊이(multiview video plus depth, MVD), 및 계층적 깊이 비디오(layered depth video (LDV))를 사용하는 것을 비롯한 깊이 강화 비디오를 표현하는 다수의 접근방법이 사용될 수 있다. 비디오 플러스 깊이(V+D) 표현에서, 텍스처의 단일 뷰 및 깊이의 각각의 뷰는 각기 텍스처 픽처의 시퀀스 및 깊이 픽처의 시퀀스로 표현된다. MVD 표현은 복수개의 텍스처 뷰 및 각각의 깊이 뷰를 포함한다. LDV 표현에서, 중심 뷰의 텍스처 및 깊이는 통상적으로 표현되지만, 다른 뷰의 텍스처 및 깊이는 부분적으로 표현되며 중간 뷰의 정확한 뷰 합성에 필요한 비폐색 영역(dis-occluded area)만을 포함한다.
텍스처 뷰 컴포넌트는 단일의 액세스 유닛 내 뷰의 텍스처의 코딩된 표현으로 정의될 수 있다. 깊이 강화 비디오 비트스트림 내 텍스처 뷰 컴포넌트는 단일뷰 텍스처 비트스트림 또는 멀티뷰 텍스처 비트스트림과 호환가능한 방식으로 코딩될 수 있고 그래서 단일뷰 또는 멀티뷰 디코더가 깊이 뷰를 디코딩하는 기능이 없을지라도 텍스처 뷰를 디코딩할 수 있다. 예를 들면, H.264/AVC 디코더는 깊이 강화 H.264/AVC 비트스트림으로부터 단일 텍스처 뷰를 디코딩할 수 있다. 이와 달리 텍스처 뷰 컴포넌트는 H.264/AVC 또는 MVC 디코더와 같은 단일뷰 또는 멀티뷰 텍스처를 디코딩할 수 있는 디코더가 예를 들면 깊이 기반 코딩 툴을 사용하기 때문에 텍스처 뷰 컴포넌트를 디코딩할 수 없다는 방식으로 코딩될 수 있다. 깊이 뷰 컴포넌트는 단일 액세스 유닛 내 뷰의 깊이의 코딩된 표현으로 정의될 수 있다. 뷰 컴포넌트 쌍은 같은 액세스 유닛 내 같은 뷰의 텍스처 깊이 컴포넌트 및 깊이 뷰 컴포넌트로서 정의될 수 있다.
깊이 강화 비디오는 텍스처 및 깊이가 서로와 무관하게 코딩되는 방식으로 코딩될 수 있다. 예를 들면, 텍스처 뷰는 하나의 MVC 비트스트림으로 코딩될 수 있으며 깊이 뷰는 다른 MVC 비트스트림으로 코딩될 수 있다. 깊이 강화 비디오는 또한 텍스처와 깊이가 합동으로 코딩되는 방식으로 코딩될 수 있다. 텍스처 및 깊이 뷰의 합동 코딩의 방식에서, 텍스처 픽처를 디코딩하기 위한 텍스처 픽처 또는 데이터 요소의 일부 디코딩된 샘플은 깊이 픽처의 디코딩 프로세스에서 취득한 깊이 픽처 또는 데이터 요소의 일부 디코딩된 샘플로부터 예측되거나 도출된다. 이와 달리 또는 부가적으로, 깊이 픽처를 디코딩하기 위한 깊이 픽처 또는 데이터 요소의 일부 디코딩된 샘플은 텍스처 픽처의 디코딩 프로세스에서 취득한 텍스트 픽처 또는 데이터 요소의 일부 디코딩된 샘플로부터 예측되거나 도출된다. 다른 선택사양에서, 텍스처의 코딩된 비디오 데이터 및 깊이의 코딩된 비디오 데이터는 서로로부터 예측되지 않거나, 하나는 다른 하나에 기초하여 코딩/디코딩되지 않고, 다만 코딩된 텍스처 및 깊이 뷰는 인코딩 시 같은 비트스트림으로 다중화되고 디코딩 시 비트스트림으로부터 역다중화될 수 있다. 다른 선택사양에서, 텍스처의 코딩된 비디오 데이터는 예를 들면 슬라이스 계층 아래에서 깊이의 코딩된 비디오 데이터로부터 예측되지 않지만, 텍스처 뷰 및 깊이 뷰의 일부 하이-레벨 코딩 구조는 서로 공유되거나 예측될 수 있다. 예를 들면, 코딩된 깊이 슬라이스의 슬라이스 헤더는 코딩된 텍스처 슬라이스의 슬라이스 헤더로부터 예측될 수 있다. 더욱이, 파라미터 세트 중 일부는 코딩된 텍스처 뷰 및 코딩된 깊이 뷰 둘 다에 의해 사용될 수 있다.
스케일러빌리티는 두 개의 기본적인 방법으로 가능해질 수 있다. 스케일러블 표현의 하위 계층으로부터 픽셀 값 또는 신택스의 예측을 수행하기 위한 새로운 코딩 모드를 도입하거나 하위 계층 픽처를 상위 계층의 참조 픽처 버퍼(예를 들면, 디코딩된 픽처 버퍼(decoded picture buffer, DPB))에 배치하는 것 중 어느 하나로부터 가능해질 수 있다. 제 1 접근방법은 더욱 융통성 있으며 그래서 대부분의 사례에서 더 나은 코딩 효율을 제공할 수 있다. 그러나 제 2의 참조 프레임 기반의 스케일러빌리티 접근방법은 그럼에도 이용 가능한 코딩 효율 이득을 대부분 달성하면서 단일 계층 코덱을 최소한으로 변경하여 효율적으로 구현될 수 있다. 본질적으로, 참조 프레임 기반의 스케일러빌리티 코덱은 그저 외부 수단에 의한 DPB 관리에 주의하여, 모든 계층에 대해 동일한 하드웨어 또는 소프트웨어 구현을 활용함으로써 구현될 수 있다.
품질 스케일러빌리티(신호-대-잡음비(Signal-to-Noise) 또는 SNR로도 알려짐) 및/또는 공간 스케일러빌리티를 위한 스케일러블 비디오 인코더는 다음과 같이 구현될 수 있다. 기본 계층에 대해, 통상의 비-스케일러블 비디오 인코더 및 디코더가 사용될 수 있다. 기본 계층의 재구성된/디코딩된 픽처는 강화 계층의 참조 픽처 버퍼 및/또는 참조 픽처 리스트에 포함된다. 공간 스케일러빌리티의 경우, 재구성된/디코딩된 기본 계층 픽처는 업샘플링된 다음 강화 계층 픽처의 참조 픽처 리스트에 삽입될 수 있다. 기본 계층의 디코딩된 픽처는 강화 계층의 디코딩된 참조 픽처와 유사하게 강화 계층 픽처의 코딩/디코딩을 위한 참조 픽처 리스트(들)에 삽입될 수 있다. 그 결과, 인코더는 기본 계층 참조 픽처를 인터 예측 참조로서 선택할 수 있고 이것의 사용을 코딩된 비트스트림에서 참조 픽처 인덱스로 표시할 수 있다. 디코더는 비트스트림으로부터 예를 들면 기본 계층 픽처가 강화 계층에 대한 인터 예측 참조로서 이용되는 참조 픽처 인덱스로부터 디코딩한다. 디코딩된 기본 계층 픽처가 강화 계층에 대한 예측 참조로서 사용될 때, 이것은 인터-계층 참조 픽처(inter-layer reference picture)라고 지칭된다.
이전 단락은 강화 계층 및 기본 계층으로 된 두 개의 스케일러빌리티 계층을 이용한 스케일러블 비디오 코덱에 대하여 설명하였지만, 이 설명은 둘 보다 많은 계층을 가진 스케일러빌리티 계층화에서 임의의 두 개의 계층으로 일반화될 수 있다는 것을 이해하여야 한다. 이 경우, 제 2 강화 계층은 인코딩 및/또는 디코딩 프로세스에서 제 1 강화 계층에 종속할 수 있으며, 그러므로 제 1 강화 계층은 제 2 강화 계층을 인코딩 및/또는 디코딩하기 위한 기본 계층으로 간주될 수 있다. 그뿐만 아니라, 강화 계층의 참조 픽처 버퍼 또는 참조 픽처 리스트에서 하나보다 많은 계층으로부터 생긴 인터-계층 참조 픽처가 존재할 수 있으며, 각각의 이러한 인터-계층 참조 픽처는 강화 계층이 인코딩 및/또는 디코딩되는 기본 계층 또는 참조 계층에서 존재하는 것으로 생각될 수 있다는 것을 이해해야 한다.
스케일러블 비디오 코딩 및/또는 디코딩 체계는 다중 루프 코딩 및/또는 디코딩을 사용할 수 있는데, 이는 다음과 같이 특징지을 수 있다. 인코딩/디코딩에서, 기본 계층 픽처는 같은 계층 내에서 또는 인터-계층(또는 인터-뷰 또는 인터-컴포넌트) 예측을 위한 참조로서, 코딩/디코딩 순서에서, 후속하는 픽처에 대한 움직임 보상 참조 픽처로서 사용되도록 재구성/디코딩될 수 있다. 재구성된/디코딩된 기본 계층 픽처는 DPB에 저장될 수 있다. 강화 계층 픽처는 마찬가지로 같은 계층 내에서 또는 만일 있다면 상위 강화 계층의 인터-계층(또는 인터-뷰 또는 인터-컴포넌트) 예측을 위한 참조로서, 코딩/디코딩 순서에서, 후속하는 픽처에 대한 움직임 보상 참조 픽처로서 사용되도록 재구성/디코딩될 수 있다. 재구성된/디코딩된 샘플 값 이외에, 기본/참조 계층의 신택스 요소 값 또는 기본/참조 계층의 신택스 요소 값으로부터 도출된 변수는 인터-계층/인터-컴포넌트/인터-뷰 예측에서 사용될 수 있다.
일부 사례에서, 강화 계층의 데이터는, 특정 위치 다음에, 또는 심지어 임의의 위치에서도 절단될 수 있는데, 각각의 절단 위치에는 점점 더 강화된 시각 품질을 나타내는 부가 데이터가 포함될 수 있다. 그러한 스케일러빌리티는 화인-그레인드(크래뉴러리티) 스케일러빌리티(fine-grained (granularity) scalability, FGS)라고 지칭된다.
SVC는 인터-계층 예측 메커니즘을 사용하는데, 이 메커니즘에서 특정 정보는 현재 재구성된 계층 또는 다음 하위 계층과 다른 계층으로부터 예측될 수 있다. 인터-계층 예측될 수도 있는 정보는 인트라 텍스처, 움직임 및 잔차 데이터를 포함한다. 인터-계층 움직임 예측은 블록 코딩 모드, 헤더 정보, 블록 분할 등의 예측을 포함하는데, 이때 하위 계층으로부터의 움직임은 상위 계층의 예측에 이용될 수 있다. 인트라 코딩의 경우, 하위 계층의 주변 매크로블록으로부터 또는 동일-위치의 매크로블록으로부터 예측이 가능하다. 이러한 예측 기술은 앞서 코딩된 액세스 유닛으로부터의 정보를 이용하지 않으며, 그래서 인트라 예측 기술이라고 지칭된다. 그뿐만 아니라, 하위 계층으로부터 생긴 잔차 데이터는 현재 계층의 예측에도 이용될 수 있다.
스케일러블 비디오 (디)코딩은 단일 루프 디코딩(single-loop decoding)으로 알려진 개념으로 실현될 수 있는데, 단일 루프 디코딩에서 디코딩된 참조 픽처는 디코딩되는 최고 계층에 대해서만 재구성되는데 반해 하위 계층의 픽처는 전부 디코딩되지 않을 수 있거나 이들 인터-계층 예측에 이용한 후 폐기될 수 있다. 단일 루프 디코딩에서, 디코더는 재생하려는 스케일러블 계층("원하는 계층" 또는 "타겟 계층"이라고 호칭함)에 대해서만 움직임 보상 및 전체적인 픽처 재구성을 수행하며, 그럼으로써 다중 루프 디코딩과 비교할 때 디코딩 복잡도를 줄일 수 있다. 원하는 계층과 다른 계층은 모두 전부 디코딩될 필요가 없는데, 이것은 코딩된 픽처 데이터의 모두 또는 그 일부 데이터가 원하는 계층의 재구성에 필요하지 않기 때문이다. 그러나 (타겟 계층보다) 하위 계층은 인터-계층 움직임 예측과 같은 인터-계층 신택스 또는 파라미터 예측에 이용될 수 있다. 게다가 또는 대안으로, 하위 계층은 인터-계층 인트라 예측에 이용될 수 있고, 그래서 하위 계층의 인트라 코딩된 블록은 디코딩되야 할 수 있다. 게다가 또는 대안으로, 인터-계층의 잔차 예측이 적용될 수 있고, 이 경우 하위 계층의 잔차 정보는 타겟 계층을 디코딩하는데 사용될 수 있으며 잔차 정보는 디코딩 또는 재구성되어야 할 수 있다. 일부 코딩 구성에서, 단일 디코딩 루프는 대부분의 픽처를 디코딩하는데 필요한데 반해, 제 2 디코딩 루프는 예측 참조로서 필요하지만 출력이나 디스플레이를 위해 필요한 것이 아닐 수 있는 소위 기본 표현(즉, 디코딩된 기본 계층 픽처)을 재구성하는데 선택적으로 적용될 수 있다.
SVC는 단일 루프 디코딩의 사용을 가능하게 한다. 이것은 제한된 인트라 텍스처 예측 모드를 이용함으로써 가능할 수 있으며, 이에 따라서 인터-계층 인트라 텍스처 예측은 기본 계층의 대응 블록이 인트라-매크로블록(MB) 내부에 위치하는 매크로블록에 적용될 수 있다. 동시에, 기본 계층에 있는 그러한 인트라-MB은 (예를 들면, 1이라는 신택스 요소 "constrained_intra_pred_flag"를 갖는) 제한된 인트라-예측을 사용한다. 단일 루프 디코딩에서, 디코더는 재생하려는 스케일러블 계층("원하는 계층" 또는 "타겟 계층"이라 호칭함)에 대해서만 움직임 보상 및 전체적인 픽처 재구성을 수행하며, 그럼으로써 디코딩 복잡성을 크게 줄일 수 있다. 원하는 계층과 다른 모든 계층은 전부 디코딩될 필요가 없는데, 그 이유는 인터-계층 예측(인터-계층 인트라 텍스처 예측, 인터-계층 움직임 예측 또는 인터-계층 잔차 예측이든 아니든)에 사용되지 않은 MB의 모든 데이터 또는 일부 데이터가 원하는 계층의 재구성에 필요하지 않기 때문이다.
단일의 디코딩 루프는 대부분의 픽처의 디코딩에 필요한데 반해, 제 2 디코딩 루프는 예측 참조로서 필요하지만 출력 또는 디스플레이를 위해 필요하지 않고 ("store_ref_base_pic_flag"가 1과 같은) 소위 핵심 픽처를 위해서만 재구성되는, 기본 표현을 재구성하기 위해 선택적으로 적용된다.
FGS는 SVC 표준의 일부 초안 버전에 포함되었으나, 궁극적으로 최종 SVC 표준에서 제외되었다. FGS는 나중에 SVC 표준의 몇몇 초안 버전의 맥락에서 논의된다. 절단될 수 없는 그러한 강화 계층에 의해 제공되는 스케일러빌리티는 커스-그레인드(그래뉴러리티) 스케일러빌리티(coarse-grained (granularity) scalability, CGS)라고 지칭된다. 이것은 전통적인 품질 (SNR) 스케일러빌리티 및 공간 스케일러빌리티를 일괄 포함한다. SVC 표준은 소위 미디엄-그레인드 스케일러빌리티(medium-grained scalability, MGS)를 지원하는데, 여기서 품질 강화 픽처는 SNR 스케일러블 계층 픽처와 유사하게 코딩되지만 0보다 큰 quality_id 신택스 요소를 가짐으로써 FGS 계층 픽처와 유사하게 상위 레벨 신택스 요소에 의해 표시된다.
SVC에서 스케일러빌리티 구조는 세 개의 신택스 요소, 즉 "temporal_id", "dependency_id" 및 "quality_id"를 특징으로 할 수 있다. 신택스 요소 "temporal_id"는 시간 스케일러빌리티 계층화 또는 간접적으로는 프레임 레이트를 표시하기 위해 사용된다. 더 작은 최대 "temporal_id" 값의 픽처를 포함하는 스케일러블 계층 표현은 더 큰 최대 "temporal_id"의 픽처를 포함하는 스케일러블 계층 표현보다 작은 프레임 레이트를 갖는다. 특정 시간 계층은 전형적으로 하위 시간 계층(즉, "temporal_id" 값이 더 작은 시간 계층)에 의존하지만 임의의 상위 시간 계층에는 의존하지 않는다. 신택스 요소 "dependency_id"는 (앞에서도 언급한 바와 같이, SNR 및 공간 스케일러빌리티를 모두 다 포함하는) CGS 인터-계층 코딩 디펜던시 계층화를 표시하는데 사용된다. 임의의 시간 레벨 위치에서, "dependency_id" 값이 더 작은 픽처는 "dependency_id" 값이 더 큰 픽처를 코딩하기 위해 인터-계층 예측에 이용될 수 있다. 신택스 요소 "quality_id"는 FGS 또는 MGS 계층의 품질 레벨 계층화를 표시하는데 사용된다. 임의의 시간 위치에서, 그리고 "dependency_id" 값이 동일한 경우, QL과 동일한 "quality_id"를 갖는 픽처는 QL-1과 동일한 "quality_id"를 가진 픽처를 인터-계층 예측하는데 사용한다. 0보다 큰 "quality_id"를 가진 코딩된 슬라이스는 절단 가능한 FGS 슬라이스 또는 절단 불가능한 MGS 슬라이스 중 어느 하나로서 코딩될 수 있다.
간략화를 위해, "dependency_id"의 값이 동일한 하나의 액세스 유닛 내 모든 데이터 유닛 (예를 들면, SVC 맥락에서는 네트워크 추상 계층(Network Abstraction Layer) 유닛 또는 NAL 유닛)은 디펜던시 유닛(dependency unit) 또는 디펜던시 표현(dependency representation)이라고 지칭된다. 하나의 디펜던시 유닛 내에서, "quality_id"의 값이 동일한 모든 데이터 유닛은 품질 유닛(quality unit) 또는 계층 표현(layer representation)이라고 지칭된다.
디코딩된 기본 픽처라고도 알려진 기본 표현(base representation)은 "quality_id"가 0이고 "store_ref_base_pic_flag"가 1로 설정된 디펜던시 유닛의 비디오 코딩 계층(Video Coding Layer, VCL) NAL 유닛을 디코딩함으로써 생성된 디코딩된 픽처이다. 디코딩된 픽처라고도 지칭되는 강화 표현(enhancement representation)은 최고의 디펜던시 표현을 위해 존재하는 모든 계층 표현이 디코딩되는 정규 디코딩 프로세스로부터 만들어진다.
앞에서 언급한 바와 같이, CGS는 공간 스케일러빌리티 및 SNR 스케일러빌리티 모두를 다 포함한다. 공간 스케일러빌리티는 해상도가 상이한 비디오의 표현을 지원하기 위해 초기에 설계된 것이다. 시간 인스턴스마다, VCL NAL 유닛은 동일한 액세스 유닛에서 코딩되며 이들 VCL NAL 유닛은 상이한 해상도에 대응할 수 있다. 디코딩 동안, 저해상도 VCL NAL 유닛은 고 해상도 픽처의 최종 디코딩 및 재구성에 의해 선택적으로 이어받을 수 있는 움직임 필드 및 잔차를 제공한다. 구(older) 비디오 압축 표준과 비교할 때, SVC의 공간 스케일러빌리티는 기본 계층이 강화 계층의 일부 삭제되고 확대된 버전으로 구성될 수 있도록 일반화되었다.
MGS 품질 계층은 FGS 품질 계층과 유사하게 "quality_id"로 표시된다. (동일한 "dependency_id"를 갖는) 각 디펜던시 유닛마다, 0과 같은 "quality_id"를 갖는 계층이 있으며 0보다 큰 "quality_id"를 갖는 다른 계층이 있을 수 있다. 0보다 큰 "quality_id"를 갖는 계층은 슬라이스가 절단가능한 슬라이스로서 코딩되어 있는지 여부에 따라 MGS 계층 또는 FGS 계층 중 어느 한 계층이다.
FGS 강화 계층의 기본 형태에서는 오직 인터-계층 예측만이 사용된다. 그러므로, FGS 강화 계층은 디코딩된 시퀀스에서 어떠한 오류 전파도 일으키지 않고 자유로이 절단될 수 있다. 그러나 FGS의 기본 형태는 압축 효율이 낮다. 이러한 문제는 저품질 픽처만이 인터 예측 참조에 사용되기 때문에 발생한다. 그러므로 FGS-강화된 픽처를 인터 예측 참조로서 사용하는 것이 제안되었다. 그러나 이것은 일부 FGS 데이터가 폐기될 때, 드리프트(drift)라고도 불리는 인코딩-디코딩 부조화를 일으킬 수 있다.
초안 SVC 표준의 한 가지 특징은 FGS NAL 유닛이 자유로이 삭제 또는 절단될 수 있다는 것이며, SVCV 표준의 특징은 MGS NAL 유닛이 비트스트림의 순응성에 영향을 미치지 않고 자유로이 삭제(단 절단될 수는 없음)될 수 있다는 것이다. 앞에서 논의한 바와 같이, 이러한 FGS 또는 MGS 데이터가 인코딩 동안 인터 예측 참조를 위해 사용되었을 때, 데이터의 삭제 또는 절단은 디코더 측과 인코더 측에서 디코딩된 픽처들 사이에서 부조화의 결과를 초래할 것이다. 이러한 부조화도 마찬가지로 드리프트라고 지칭된다.
FGS 또는 MGS 데이터의 삭제 또는 절단으로 인한 드리프트를 조절하기 위하여, SVC는 다음과 같은 해결방법을 적용하였다. 즉, 특정 디펜던시 유닛에서, ("quality_id"가 0인 CGS 픽처 및 종속하는 모든 하위 계층 데이터만을 디코딩함으로써) 기본 표현은 디코딩된 픽처 버퍼에 저장된다. "dependency_id"라는 동일한 값을 가진 후속하는 디펜던시 유닛을 인코딩할 때, FGS 또는 MGS NAL 유닛을 비롯한 모든 NAL 유닛은 예측 참조를 위해 기본 표현을 사용한다. 그 결과, 초기의 액세스 유닛에서 FGS 또는 MGS NAL 유닛의 삭제 또는 절단으로 인한 모든 드리프트는 이러한 액세스 유닛에서 중단된다. "dependency_id"라는 동일한 값을 가진 다른 디펜던시 유닛에 대해서, 모든 NAL 유닛은 코딩 효율을 높이기 위해 인터 예측 참조에 디코딩된 픽처를 참조에 사용한다.
각각의 NAL 유닛은 NAL 유닛 헤더에서 신택스 요소 "use_ref_base_pic_flag"를 포함한다. 이 요소의 값이 1일 때, NAL 유닛은 인터 예측 프로세스 동안 참조 픽처의 기본 표현을 사용하여 디코딩된다. 신택스 요소 "store_ref_base_pic_flag"는 인터 예측에 이용할 미래 픽처를 위해 현재 픽처의 기본 표현을 저장할지(1일 때) 또는 저장하지 말지(0일 때)를 명시한다.
"quality_id"가 0보다 큰 NAL 유닛에는 참조 픽처 리스트 구성 및 가중된 예측과 관련한 신택스 요소가 포함되어 있지 않다. 즉, 신택스 요소 "num_ref_active_lx_minus1" (x=0 또는 1), 참조 픽처 리스트 재배열 신택스 테이블, 및 가중된 예측 신택스 테이블은 존재하지 않는다. 따라서, MGS 또는 FGS 계층은 이러한 신택스 요소를, 필요할 때, 그 디펜던시 유닛의 "quality_id"가 0인 NAL 유닛으로부터 이어받아야 한다.
SVC에서, 참조 픽처 리스트는 오직 기본 표현("use_ref_base_pic_flag"가 1일 때)만으로 또는 "기본 표현"으로 표기되지 않은 오직 디코딩된 픽처("use_ref_base_pic_flag"가 0일 때)만으로 구성되지만, 결코 동시에 두 가지로 구성되지 않는다.
스케일러블 코딩의 다른 분류는 동일한 또는 상이한 코딩 표준 또는 기술이 기본 계층 및 강화 계층을 위한 기초로서 사용되는지를 기초로 한다. 하이브리드 코덱 스케일러빌리티(hybrid codec scalability) 또는 표준 스케일러빌리티(standards scalability)라는 용어는 하나의 코딩 표준 또는 시스템이 일부 계층에 대해 사용되지만, 다른 코딩 표준 또는 시스템은 일부 다른 계층에 대해 사용되는 시나리오를 나타내는데 사용될 수 있다. 예를 들면, 기본 계층은 AVC 코딩될 수 있는데 반해, 하나 이상의 강화 계층은 SHVC 또는 MV-HEVC과 같은 HEVC 확장에 따라 코딩될 수 있다.
HEVC 표준의 스케일러블 및 멀티뷰 확장을 명시하는 작업이 진행 중이다. MV-HEVC라고 지칭하는 HEVC의 멀티뷰 확장은 H.264/AVC의 MVC 확장과 유사하다. MVC와 유사하게, MV-HEVC에서, 인터-뷰 참조 픽처는 코딩되거나 디코딩되는 현재 픽처의 참조 픽처 리스트(들)에 포함될 수 있다. SHVC라고 지칭되는 HEVC의 스케일러블 확장은 (H.264/AVC의 SVC와 달리) 이 확장이 다중 루프 디코딩 동작을 사용하도록 명시하기로 계획되어 있다. SHVC은 참조 인덱스 기반인데, 즉 인터-계층 참조 픽처가 (앞에서 설명한 바와 같이) 코딩되거나 디코딩되는 참조 픽처의 하나 이상의 참조 픽처 리스트에 포함될 수 있다.
동일한 신택스 구조, 시맨틱, 및 디코딩 프로세스 중 많은 것을 MV-HEVC 및 SHVC에 사용하는 것이 가능하다. 깊이 강화 비디오와 같은 다른 종류의 스케일러빌리티는 또한 MV-HEVC 및 SHVC에서처럼 동일 또는 유사한 신택스 구조, 시맨틱, 및 디코딩 프로세스를 이용하여 실현될 수 있다.
강화 계층 코딩을 위해, HEVC의 동일한 개념 및 코딩 툴이 SHVC, MV-HEVC, 및/또는 이와 유사한 코덱에서 사용될 수 있다. 그러나 강화 계층을 효과적으로 코딩하기 위해 참조 계층에서 (움직임 정보라고 알려진 재구성된 픽처 샘플 및 움직임 파라미터를 포함하는) 이미 코딩된 데이터를 이용하는 부가적인 인터-계층 예측 툴은 SHVC, MV-HEVC, 및/또는 유사한 코덱으로 통합될 수 있다.
MV-HEVC, SHVC 및/또는 이와 유사한 코덱에서, VPS는 예를 들면 NAL 유닛 헤더로부터 도출된 LayerId 값을 예를 들면, SVC 및 MVC와 유사하게 정의된 계층의 dependency_id, quality_id, view_id, 및 depth_flag에 대응하는 하나 이상의 스케일러빌리티 차원 값에 맵핑하는 것을 포함할 수 있다.
MV-HEVC/SHVC에서, VPS에서는 계층 식별자 값이 0보다 큰 계층은 어떠한 직접 참조 계층도 갖지 않는다고 표시될 수 있다. 즉, 이 층은 임의의 다른 계층으로부터 예측된 인터-계층이 아니다라고 표시될 수 있다. 다시 말해서, MV-HEVC/SHVC 비트스트림은 동시방송 계층(simulcast layer)이라고 지칭될 수 있는 서로 독립적인 계층을 포함할 수 있다.
비트스트림에서 존재할 수 있는 스케일러빌리티 차원, nuh_layer_id 값을 스케일러빌리티 차원 값에 맵핑하는 것, 그리고 계층 간의 디펜던시를 명시하는 VPS의 일부는 다음과 같은 신택스로 명시될 수 있다.
Figure 112016099798799-pct00003
위에서 도시된 VPS 부분의 시맨틱은 다음 단락에서 설명되는 것처럼 명시될 수 있다.
Splitting_flag가 1이면 이것은 dimension_id[ i ][ j ] 신택스 구조가 존재하지 않는다는 것, 그리고 NAL 유닛 헤더에서 nuh_layer_id 값의 이진 표현이 dimension_id_len_minusl [ j ]의 값에 따라서 비트의 길이를 갖는 NumScalabilityTypes 세그먼트로 분리된다는 것, 그리고 dimension_id[ LayerIdxInVps[ nuh_layer_id ] ][ j ]의 값이 NumScalabilityTypes 세그먼트로부터 추론된다는 것을 표시한다. splitting_flag가 0이면, 이것은 신택스 요소 dimension_id[ i ][ j ]가 존재한다는 것을 표시한다. 아래의 예시적인 시맨틱에서는, 일반성을 잃지 않고, splitting_flag가 0이라고 가정한다.
scalability_mask_flag[ i ]가 1이면, 이것은 아래의 테이블에서 i번째 스케일러빌리티 차원에 대응하는 dimension_id 신택스 요소가 존재한다는 것을 표시한다. scalability_mask_flag[ i ]가 0이면, 이것은 i번째 스케일러빌리티 차원에 대응하는 dimension_id 신택스 요소가 존재하지 않는다는 것을 표시한다.
Figure 112016099798799-pct00004
HEVC의 미래 3D 확장에서, scalability mask index 0는 깊이 맵을 표시하는데 사용될 수 있다.
Dimension_id_len_minusl [ j ] plus 1은 dimension_id[ i ] [ j ] 신택스 요소의 비트의 길이를 명시한다.
vps_nuh_layer_id_present_flag가 1이면, 0부터 (VPS minus 1에서 명시된 계층의 최대 개수와 같은) MaxLayersMinus1까지 모두 포함하는 i에 대해 layer_id_in_nuh[ i ]가 존재한다는 것을 명시한다. vps_nuh_layer_id_present_flag가 0이면, 0부터 MaxLayersMinus1까지 모두 포함하는 i에 대해 layer_id_in_nuh[ i ]가 존재하지 않는다는 것을 명시한다.
layer_id_in_nuh[ i ]는i번째 계층의 VCL NAL 유닛에서 nuh_layer_id 신택스 요소의 값을 명시한다. 0부터 MaxLayersMinus1까지 모두 포함하는 범위의 i에 대해, layer_id_in_nuh[ i ]가 존재하지 않을 때, 그 값은 i와 동일하다고 추론된다. i가 0보다 클 때, layer_id_in_nuh[ i ]는 layer_id_in_nuh[ i - 1 ]보다 크다. 0부터 MaxLayersMinus1까지 모두 포함하는 범위의 i에 대해, 변수 LayerIdxInVps[ layer_id_in_nuh[ i ] ]는 1이라고 설정된다.
dimension_id[ i ] [ j ]는 i번째 계층의 j번째에 존재하는 스케일러빌리티 차원의 식별자를 명시한다. dimension_id[ i ][ j ]의 표현을 위해 사용된 비트 수는 dimension_id_len_minusl [ j ] + 1 비트이다. splitting_flag가 0일 때, 0부터 NumScalabilityTypes - 1까지 모두 포함하는 j에 대해, dimension_id[ 0 ][ j ]는 0이라고 추론된다.
i번째 계층의 smIdx번째 스케일러빌리티 차원 타입의 식별자를 명시하는 변수 ScalabilityId[ i ][ smIdx ]와, i번째 계층의 뷰 순서 인덱스를 명시하는 변수 ViewOrderIdx[ layer_id_in_nuh[ i ] ]와, i번째 계층의 공간/품질 스케일러빌리티 식별자를 명시하는 DependencyId[ layer_id_in_nuh[ i ] ]와, i번째 계층이 뷰 스케일러빌리티 확장 계층인지를 명시하는 변수 ViewScalExtLayerFlag[ layer_id_in_nuh[ i ] ]는 다음과 같이 도출된다.
Figure 112016099798799-pct00005
계층 식별자 값이 0보다 큰 강화 계층 또는 계층들은 기본 계층 또는 다른 계층을 보완하는 보조 비디오를 포함하는 것으로 표시될 수 있다. 예를 들면, MV-HEVC의 현재의 초안에서, 보조 픽처는 보조 픽처 계층을 이용하여 비트스트림으로 인코딩될 수 있다. 보조 픽처 계층은 (예를 들면, 뷰 순서 인덱스(view order index)와 유사하게) 그 자신의 스케일러빌리티 차원 값인 AuxId 와 연관된다. AuxId가 0보다 큰 계층은 보조 픽처를 포함하고 있다. 계층은 단 한 타입의 보조 픽처를 반송하며, 계층에 포함된 보조 픽처의 타입은 그의 AuxId 값에 의해 표시될 수 있다. 다시 말해서, AuxId 값은 보조 픽처의 타입에 맵핑될 수 있다. 예를 들면, 1이라는 AuxId는 알파 평면을 표시하고 2라는 AuxId는 깊이 픽처를 표시할 수 있다. 보조 픽처는 기본 픽처의 디코딩 프로세스에 아무런 규범적인 영향을 미치지 않는 픽처라고 정의된다. 다시 말해서, (AuxId가 0인) 기본 픽처는 보조 픽처로부터 예측하지 않는 것으로 제한될 수 있다. 보조 픽처는 비록 예를 들어 AuxId 값에 기초하여 그러한 예측을 불허하는 제약이 있을지라도, 기본 픽처로부터 예측할 수 있다. SEI 메시지는 깊이 보조 계층에 의해 표현된 깊이 범위와 같은 보조 픽처 계층의 더 상세한 특징을 전달하는데 사용될 수 있다. MV-HEVC의 현재 초안은 깊이 보조 계층을 지원하는 것을 포함하고 있다.
다음과 같은 것으로 제한되는 것은 아니지만, 깊이 픽처(Depth picture), 알파 픽처(Alpha picture), 오버레이 픽처(Overlay picture), 및 레이블 픽처(Label picture)를 포함하는 상이한 타입의 보조 픽처가 사용될 수 있다. 깊이 픽처에서, 샘플 값은 깊이 픽처의 뷰포인트(또는 카메라 위치) 사이의 디스패리티 또는 깊이 또는 거리를 나타낸다. 알파 픽처(알파 평면 및 알파 매트 픽처(alpha matte picture)라고 알려져 있음)에서, 샘플 값은 투명성 또는 불투명성을 나타낸다. 알파 픽처는 픽셀마다 투명성 정도 또는 동등하게 불투명성 정도를 표시할 수 있다. 알파 픽처는 단색 픽처일 수 있거나, 알파 픽처의 크로마 컴포넌트는 아무런 색도(chromaticity) (예를 들면, 크로마 샘플 값이 부호를 갖는다고 간주될 때는 0, 또는 크로마 샘플 값이 8비트이고 무부호라고 간주될 때는 128)도 표시하지 않는 것으로 설정될 수 있다. 오버레이 픽처는 디스플레이할 때 기본 픽처의 위에 겹쳐질 수 있다. 오버레이 픽처는 여러 구역 및 배경을 포함할 수 있으며, 이때 모든 구역 또는 구역 중 서브세트는 디스플레이할 때 겹쳐질 수 있으며 배경은 겹쳐지지 않을 수 있다. 레이블 픽처는 단일의 오버레이 구역을 식별하는데 사용될 수 있는 상이한 오버레이 구역의 상이한 레이블을 갖고 있다.
제시된 VPS 발췌 부분의 시맨틱이 어떻게 명시될 수 있는지를 계속하여 설명한다. view_id_len은 view_id_val[ i ] 신택스 요소의 비트의 길이를 명시한다. view_id_val[ i ]는 VPS에 의해 명시된 i번째 뷰의 뷰 식별자를 명시한다. view_id_val[ i ] 신택스 요소의 길이는 view_id_len 비트이다. 존재하지 않을 때, view_id_val[ i ]의 값은 0이라고 추론된다. nuh_layer_id가 nuhLayerId와 동일한 계층에 대해, 값 ViewId[ nuhLayerId ]는 view_id_val[ ViewOrderIdx[ nuhLayerId ] ]와 동일하게 설정된다. direct_dependency_flag[ i ][ j ]가 0이면, 이것은 인덱스 j를 가진 계층이 인덱스 i를 가진 계층의 직접 참조 계층이 아니라는 것을 명시한다. direct_dependency_flag[i ][ j ]가 1이면, 이것은 인덱스 j를 가진 계층이 인덱스 i를 가진 계층의 직접 참조 계층일 수 있다는 것을 명시한다. i 및 j가 0 내지 MaxLayersMinus1의 범위에 있는 direct_dependency_flag[ i ][ j ]가 존재하지 않을 때는 0이라고 추론된다.
변수 NumDirectRefLayers[ iNuhLId ]는 계층 디펜던시 정보에 기초하여 nuh_layer_id가 iNuhLId와 동일한 계층의 직접 참조 계층의 개수로 정의될 수 있다. 변수 RefLayerId[ iNuhLId ][ j ]는 nuh_layer_id가 iNuhLId와 동일한 계층의 직접 참조 계층의 nuh_layer_id 값의 리스트라고 정의될 수 있고, 여기서 j는 0부터 NumDirectRefLayers[ iNuhLId ] - 1까지 모두 포함하는 범위에 있으며, 리스트 내 각 j항은 하나의 직접 참조 계층에 대응한다. 변수 NumDirectRefLayers[ iNuhLId ] 및 RefLayerId[ iNuhLId ][ j ]는 다음과 같이 명시될 수 있고, 여기서 MaxLayersMinus1은 VPS minus 1에서 명시된 계층의 최대 개수와 동일하다.
Figure 112016099798799-pct00006
VPS는 또한 예를 들면, 다음과 같은 신택스를 사용하여 시간 서브계층, 인터-계층 예측에 대한 Temporalld 기반의 제약사항, 및 인터-계층 예측에 대한 다른 제약사항에 관한 정보를 포함할 수 있다.
Figure 112016099798799-pct00007
VPS 신택스의 전술한 발췌 부분의 시맨틱은 다음 단락에서 서술되는 바와 같이 명시될 수 있다.
vps_sub_layers_max_minusl_present_flag가 1이면, 신택스 요소 elements_sub_layers_vps_max_minus1[ i ]가 존재한다는 것을 명시한다. vps_sub_layers_max_minus1_present_flag가 0이면, 신택스 요소 sub_ayers_vps_max_ninus1[ i ]가 존재하지 않는다는 것을 명시한다.
sub_layers_vps_max_minusl[ i ] plus1은 nuh_layer_id가 layer_id_in_nuh[ i ]와 동일한 계층이 CVS에서 존재하지 않을 수 있는 시간 서브계층의 최대 개수를 명시한다. 존재하지 않을 때, sub_layers_vps_max_minusl[ i ]은 (초기에 VPS 인덱스에서 존재하는) vps_max_sub_layers_minus1과 동일하다고 추론된다.
max_tid_ref_present_flag가 1이면, 신택스 요소 max_tid_il_ref_pics_plus l[ i ][ j ]가 존재한다는 것을 명시한다. max_tid_ref_present_flag가 0이면, 신택스 요소 max_tid_il_ref_pics_plus l[ i ][ j ]가 존재하지 않는다는 것을 명시한다.
max_tid_il_ref_pics_plus1[ i ][ j ]가 0이면, CVS 내에서, nuh_layer_id가 layer_id_in_nuh[ i ]와 동일한 비-IRAP 픽처는 nuh_layer_id가 layer_id_in_nuh[ i ]와 동일한 픽처의 인터-계층 예측을 위한 참조로서 사용되지 않는다는 것을 명시한다. max_tid_il_ref_pics_plus1[ i ][ j ]가 0보다 크면, CVS 내에서, nuh_layer_id가 layer_id_in_nuh[ i ]와 동일한 픽처 및 max_tid_il_ref_pics_plus1[ i ][ j ] - 1보다 큰 TemporalId는 nuh_layer_id가 layer_id_in_nuh[ i ]와 동일한 픽처의 인터-계층 예측을 위한 참조로서 사용되지 않는다는 것을 명시한다. 존재하지 않을 때, max_tid_il_ref_pics _plus1[ i ][ j ]는 7과 동일하다고 추론된다.
all_ref_layers_active_flag가 1이면, VPS를 참조하는 각 픽처에 대해, 그 픽처를 포함하는 계층의 모든 직접 참조 계층에 속하는 그리고 sub_layers_vps_max_minus1[ i ] 및 max_tid_il_ref_pics_plus1[ i ][ j ]의 값에 의해 명시된 바와 같이 인터-계층 예측을 위해 사용될 수도 있는 참조 계층 픽처가 그 픽처와 동일한 액세스 유닛에서 존재하며 그리고 그 픽처의 인터-계층 참조 픽처 세트에 포함된다는 것을 명시한다. all_ref_layers_active_flag가 0이면, 상기 제약사항이 적용될 수 있거나 적용될 수 없다는 것을 명시한다.
max_one_active_ref_layer_flag가 1이면, CVS에서 각 픽처의 인터-계층 예측을 위해 기껏 하나의 픽처가 사용된다는 것을 명시한다. max_one_active_ref_layer_flag가 0이면, CVS에서 각 픽처의 인터-계층 예측을 위해 하나보다 많은 픽처가 사용될 수 있다는 것을 명시한다.
계층 트리(layer tree)는 한 세트의 계층 내 각각의 계층이 그 계층 세트 내 적어도 하나의 다른 계층의 직접 또는 간접 예측된 계층이거나 직접 또는 간접 참조 계층이며 그리고 그 계층 세트 이외의 어떤 계층도 그 계층 세트 내 임의의 계층의 직접 또는 간접 예측된 계층이거나 직접 또는 간접 참조 계층이 아닌 그러한 한 세트의 계층으로 정의될 수 있다. 직접 예측된 계층은 다른 계층이 직접 참조 계층이 되는 계층이라고 정의될 수 있다. 직접 참조 계층은 다른 계층의 인터-계층 예측을 위해 사용될 수 있는 계층 - 이 계층은 다른 계층에 대해 직접 참조 계층이 됨 - 이라고 정의될 수 있다. 간접 예측된 계층은 다른 계층이 간접 참조 계층이 되는 계층이라고 정의될 수 있다. 간접 참조 계층은 제 2 계층의 직접 참조 계층이 아니고 제 2 계층의 직접 참조 계층 또는 제 2 계층의 직접 참조 계층의 간접 참조 계층이 되는 제 3 계층의 직접 참조 계층이 되는 계층 - 이 계층은 제 2 계층에 대해 간접 참조 계층이 됨 - 이라고 정의될 수 있다.
이와 달리, 계층 트리는 각 계층이 그 계층 트리 내 적어도 하나의 다른 계층과 인터-계층 예측 관계를 갖고 그리고 계층 트리 이외의 어떤 계층도 그 계층 트리내 임의의 계층과 인터-계층 예측 관계를 갖지 않는 한 세트의 계층이라고 정의될 수 있다.
SHVC, MV-HEVC, 및 이와 유사한 코덱에서, 인터-계층 텍스처 예측을 지원하기 위해 블록 레벨의 신택스 및 디코딩 프로세스는 변경되지 않는다. 동일한 액세스 유닛의 참조 계층으로부터 재구성된 (필요하다면 업샘플링된) 픽처가 현재의 강화 계층 픽처를 코딩하기 위한 참조 픽처로서 사용될 수 있도록 (HEVC의 것과 비교하여) 일반적으로 슬라이스 헤더, PPS, SPS, 및 VPS를 포함하는 신택스 구조를 말하는 오직 하이-레벨 신택스만이 수정되었다. 인터-계층 참조 픽처뿐만 아니라 시간 참조 픽처는 참조 픽처 리스트에 포함된다. 시그널링된 참조 픽처 인덱스는 현재의 예측 유닛(Prediction Unit, PU)이 시간 참조 픽처 또는 인터-계층 참조 픽처로부터 예측되는지를 표시하기 위해 사용된다. 이러한 특징을 사용하는 것은 인코더에 의해 제어될 수 있으며 비트스트림에서 예를 들면 비디오 파라미터 세트, 시퀀스 파라미터 세트, 픽처 파라미터, 및/또는 슬라이스 헤더에서 표시될 수 있다. 표시(들)는 예를 들면, 강화 계층, 참조 계층, 강화 계층과 참조 계층의 쌍, 특정 TemporalId 값, 특정 픽처 타입(예를 들면, RAP 픽처), 특정 슬라이스 타입(예를 들면, I 슬라이스를 제외한 P 및 B 슬라이스), 특정 POC 값의 픽처, 및/또는 특정 액세스 유닛에 특유할 수 있다. 표시(들)의 범위 및/또는 지속성은 표시(들) 자체와 함께 표시될 수 있고 그리고/또는 추론될 수 있다.
SHVC, MV-HEVC, 및 이와 유사한 코덱에서 참조 리스트(들)는 만일 있다면 인터-계층 참조 픽처(들)가 초기 참조 픽처 리스트(들)에 포함될 수 있는 특정한 프로세스를 이용하여 초기화될 수 있다. 예를 들면, 시간 참조는 먼저 HEVC에서 참조 리스트 구성과 동일한 방식으로 참조 리스트(L0, L1)에 추가될 수 있다. 이후, 인터-계층 참조가 시간 참조 뒤에 추가될 수 있다. 인터-계층 참조 픽처는 예를 들면 VPS 확장에서 제공된 계층 디펜던시 정보로부터 생성된 것으로 단정지을 수 있다. 인터-계층 참조 픽처는 만일 현재의 강화 계층 슬라이스가 P 슬라이스이면 초기 참조 픽처 리스트 L0에 추가될 수 있으며, 만일 현재의 강화 계층 슬라이스가 B 슬라이스이면 두 초기 참조 픽처 리스트 L0 및 L1 모두에 추가될 수 있다. 인터-계층 참조 픽처는 참조 픽처 리스트에 특정 순서대로 추가될 수 있으며, 이것은 두 참조 픽처 리스트에 대해서도 똑같이 할 수 있지만 그렇게 할 필요는 없다. 예를 들면, 초기 참조 픽처 리스트 0의 순서와 비교하여 인터-계층 참조 픽처를 초기 참조 픽처 리스트 1에 반대로 추가하는 순서가 사용될 수 있다. 예를 들면, 인터-계층 참조 픽처는 nuh_layer_id의 오름차순으로 초기 참조 픽처 0에 삽입될 수 있는데 반해, 초기 참조 픽처 리스트 1을 초기화하는 데는 반대 순서가 사용될 수 있다.
참조 픽처 리스트(들)을 구성하는 제 2 예는 다음과 같이 제공된다. 예를 들면, 후보 인터-계층 참조 픽처는 예를 들어 VPS에 포함될 수 있는 계층 디펜던시 정보로부터 생성된다고 단정지을 수 있다. 인코더는 픽처 레벨 정보를 비트스트림에 포함할 수 있으며 디코더는 비트스트림으로부터 후보 인터-계층 참조 픽처들 각각이 인터-계층 예측을 위한 참조로서 사용될 수 있다는 픽처 레벨 정보를 디코딩할 수 있다. 픽처 레벨 정보는 예를 들면 슬라이스 헤더에서 존재할 수 있으며 인터-계층 참조 픽처 세트라고 지칭될 수 있다. 예를 들면, 후보 인터-계층 참조 픽처는 특정 순서로 인덱싱될 수 있으며 하나 이상의 인텍스는 인터-계층 참조 픽처 세트에 포함될 수 있다. 다른 예에서, 각 후보 인터-계층 참조 픽처의 플래그는 후보 인터-계층 참조 픽처가 인터-계층 참조 픽처로서 사용될 수 있는지를 표시한다. 전술한 바와 같이, 인터-계층 참조 픽처는 현재의 강화 계층 슬라이스가 P 슬라이스이면 초기 참조 픽처 리스트 L0에 추가될 수 있으며, 현재의 강화 계층 슬라이스가 B 슬라이스이면 두 초기 참조 픽처 리스트 L0 및 L1 모두에 추가될 수 있다. 인터-계층 참조 픽처는 참조 픽처 리스트에 특정 순서대로 추가될 수 있으며, 이것은 두 참조 픽처 리스트에 대해서도 똑같이 할 수 있지만 그렇게 할 필요는 없다.
참조 픽처 리스트(들)를 구성하는 제 3 예는 다음과 같이 제공된다. 제 3 예에서, 인터-계층 참조 픽처 세트는 다음과 같이 슬라이스 세그먼트 헤더 신택스 구조에서 명시된다.
Figure 112016099798799-pct00008
변수 NumDirectRefLayers[ layerId ]는 계층 디펜던시 정보에 기초하여 nuh_layer_id가 layerId와 동일한 계층의 직접 참조 계층의 개수인 것으로 도출되었다. MV-HEVC, SHVC 및 유사한 코덱의 맥락에서, NumDirectRefLayers[ layerId ]는 VPS의 direct_dependency_flag[ i ][ j ] 신택스 요소에 기초하여 도출될 수 있다.
슬라이스 세그먼트 헤더 신택스 구조의 전술한 발췌 부분의 시맨틱은 다음 단락에서 기술되는 바와 같이 명시될 수 있다.
inter_layer_pred_enabled_flag가 1이면, 현재 픽처의 디코딩 시에 인터-계층 예측이 사용될 수 있다는 것을 명시하며, inter_layer_pred_enabled_flag가 0이면, 현재 픽처의 디코딩 시에 인터 계층 예측이 사용될 수 없다는 것을 명시한다.
num_inter_layer_ref_pics_minus1 plus 1은 현재 픽처의 디코딩 시에 인터-계층 예측을 위해 사용될 수 있는 픽처의 개수를 명시한다. num_inter_layer_ref_pics_minus1 신택스 요소의 길이는 Ceil( Log2( NumDirectRefLayers[ nuh_layer_id ] )) 비트이다. num_inter_layer_ref_pics_minus1의 값은 0부터 NumDirectRefLayers[ nuh_layer_id ] - 1까지 모두 포함하여 그 범위 내에 있을 것이다.
변수 numRefLayerPics 및 refLayerPicIdc[ j ]는 다음과 같이 도출될 수 있다.
Figure 112016099798799-pct00009
리스트 refLayerPicIdc[ j ]는 전술한 제 2 예를 참조하여 후보 인터-계층 참조 픽처를 표시하는 것으로 간주될 수 있다.
Figure 112016099798799-pct00010
inter_layer_pred_layer_idc[ i ]는 인터-계층 예측을 위해 현재 픽처에 의해 사용될 수 있는 i번째 픽처의 nuh_layer_id를 나타내는 변수 RefPicLayerId[ i ]를 명시한다. 신택스 요소 inter_layer_pred_layer_idc[ i ]의 길이는 Ceil( Log2( NumDirectRefLayers[ nuh_layer_id ] )) 비트이다. inter_layer_pred_layer_idc[ i ]의 값은 0부터 NumDirectRefLayers[ nuh_layer_id ] - 1까지 모두 포함하여 그 범위 내에 있을 것이다. 존재하지 않을 때, inter_layer_pred_layer_idc[ i ]의 값은 refLayerPicIdc[ i ]와 동일하다고 추론된다.
0부터 NumActiveRefLayerPics - 1까지 모두 포함하는 범위에 있는 i의 모든 값에 대해 변수 RefPicLayerId[ i ]는 다음과 같이 도출된다.
Figure 112016099798799-pct00011
inter_layer_pred_layer_idc[ i ]는 전술한 제 2 예를 참조하여, 후보 인터-계층 참조 픽처들 각각이 인터-계층 예측을 위한 참조로서 사용될 수 있다는 픽처 레벨 정보인 것으로 간주될 수 있다.
0부터 NumActiveRefLayerPics - 1까지 모두 포함하는 범위에 있는 i의 모든 값에 대해 변수 RefPicLayerId[ i ]에 의해 식별된 픽처는 초기 참조 픽처 리스트에 포함될 수 있다. 전술한 바와 같이 변수 RefPicLayerId[ i ]에 의해 식별된 픽처는 현재의 강화 계층 슬라이스가 P 슬라이스이면 초기 참조 픽처 리스트 L0에 추가될 수 있으며, 현재의 강화 계층 슬라이스가 B 슬라이스이면 두 초기 참조 픽처 리스트 L0 및 L1 모두에 추가될 수 있다. 변수 RefPicLayerId[ i ]에 의해 식별된 픽처는 특정한 순서로 참조 픽처 리스트에 추가될 수 있으며, 이 순서는 두 참조 픽처 리스트에 대해서도 똑같이 할 수 있지만 그렇게 할 필요는 없다. 예를 들면, 도출된 ViewId 값은 RefPicLayerId[ i ]에 의해 식별된 픽처를 초기 참조 픽처 리스트에 추가하는 순서에 영향을 미칠 수 있다.
코딩 및/또는 디코딩 프로세스에서, 인터-계층 참조 픽처는 장기간 참조 픽처로서 취급될 수 있다.
인터-계층 움직임 예측이라고 지칭될 수 있는 인터-계층 예측의 타입은 다음과 같이 실현될 수 있다. H.256/HEVC의 TMVP와 같은 시간 움직임 벡터 예측 프로세스는 여러 층 사이에서 움직임 데이터의 중복을 활용하기 위해 사용될 수 있다. 이것은 다음과 같이 수행될 수 있다. 디코딩된 기본 계층 픽처가 업샘플링될 때, 기본 계층 픽처의 움직임 데이터는 또한 강화 계층의 해상도에 맵핑될 수 있다. 만일 강화 계층 픽처가 예를 들면 H.256/HEVC의 TMVP와 같은 시간 움직임 벡터 예측 메커니즘을 이용하여 기본 계층 픽처로부터 움직임 벡터 예측을 활용하면, 대응하는 움직임 벡터 예측기는 맵핑된 기본 계층 움직임 필드로부터 비롯된다. 이것은 스케일러블 비디오 코더의 코딩 효율을 개선하기 위해 여러 계층의 움직임 데이터 사이의 상관이 활용될 수 있는 방법이다.
SHVC 및/또는 이와 유사한 코덱에서, 인터-계층 움직임 예측은 인터-계층 참조 픽처를 TMVP 도출을 위한 동일위치의 참조 픽처로서 설정함으로써 수행될 수 있다. 두 계층 사이에서 움직임 필드 맵핑 프로세스는 예를 들면 TMVP 도출 시 블록 레벨의 디코딩 프로세스를 회피하기 위해 수행될 수 있다. 움직임 필드 맵핑 특징을 사용하는 것은 인코더에 의해 제어될 수 있으며, 비트스트림에서 예를 들면, 비디오 파라미터 세트, 시퀀스 파라미터 세트, 픽처 파라미터, 및/또는 슬라이스 헤더에서 표시될 수 있다. 표시(들)는 예를 들면, 강화 계층, 참조 계층, 강화 계층과 참조 계층의 쌍, 특정 TemporalId 값, 특정 픽처 타입(예를 들면, RAP 픽처), 특정 슬라이스 타입(예를 들면, I 슬라이스를 제외한 P 및 B슬라이스), 특정 POC 값의 픽처, 및/또는 특정 액세스 유닛에 특유할 수 있다. 표시(들)의 범위 및/또는 지속성은 표시(들) 자체와 함께 표시될 수 있고 그리고/또는 추론될 수 있다.
공간 스케일러빌리티를 위한 움직임 필드 맵핑 프로세스에서, 업샘플링된 인터-계층 참조 픽처의 움직임 필드는 각각의 참조 계층 픽처의 움직임 필드에 기초하여 획득될 수 있다. 업샘플링된 인터-계층 참조 픽처의 각 블록의 (예를 들면, 수평 및/또는 수직 움직임 벡터 값 및 참조 인덱스를 포함할 수 있는) 움직임 파라미터 및/또는 예측 모드는 참조 계층 픽처 내 동일위치의 블록의 대응하는 움직임 파라미터 및/또는 예측 모드로부터 도출될 수 있다. 업샘플링된 인터-계층 참조 픽처에서 움직임 파라미터 및/또는 예측 모드를 도출하기 위해 사용된 블록 크기는 예를 들면 16x16일 수 있다. 16x16 블록 크기는 참조 픽처의 압축된 움직임 필드가 사용되는 HEVC TMVP 도출 프로세스에서와 동일하다.
전술한 바와 같이, HEVC에서, 2바이트의 NAL 유닛 헤더는 명시된 모든 NAL 유닛 타입에 대해 사용된다. NAL 유닛 헤더는 하나의 예약된 비트, 6비트의 NAL 유닛 타입 표시(nal_unit_type 이라 호칭함), 6비트의 예약 필드(nuh_layer_id라고 호칭됨) 및 시간 레벨의 표시를 위한 3비트의 temporal_id_plus1 표시를 포함한다. temporal_id_plus1 신택스 요소는 NAL 유닛의 시간 식별자(temporal identifier)라고 간주될 수 있으며, 제로 기반의 TemporalId 변수는 다음과 같이 도출될 수 있다: TemporalId = temporal_id_plus1 - 1. TemporalId가 0이면, 이는 최저 시간 레벨에 해당한다. temporal_id_plus1의 값은 두 NAL 유닛 헤더 바이트가 연루되는 시작 코드 에뮬레이션을 방지하기 위해 제로가 아니어야 한다. TemporalId가 선택된 값보다 크거나 같은 모든 VCL NAL 유닛을 제외시키고 다른 모든 NAL 유닛을 포함시킴으로써 생성된 비트스트림은 그대로 순응성을 유지한다. 그 결과, TID와 동일한 TemporalId를 갖는 픽처는 TID보다 큰 TemporalId를 갖는 임의의 픽처를 인터 예측 참조로서 사용하지 않는다. 서브계층 또는 시간 서브계층은 TemporalId 변수의 특정 값을 가진 VCL NAL 유닛 및 연관된 비-VCL NAL 유닛으로 구성되는 시간 스케일러블 비트스트림의 시간 스케일러블 계층인 것으로 정의될 수 있다.
HEVC 확장에서, NAL 유닛 헤더 내 nuh_layer_id 및/또는 유사한 신택스 요소는 스케일러빌리티 계층 정보를 반송한다. 예를 들면, LayerId 값 nuh_layer_id 및/또는 유사한 신택스 요소는 여러 스케일러빌리티 차원을 서술하는 변수의 값 또는 신택스 요소에 맵핑될 수 있다.
스케일러블 및/또는 멀티뷰 비디오 코딩에서는 랜덤 액세스 특성을 가진 픽처 및/또는 액세스 유닛을 인코딩하기 위한 적어도 다음과 같은 원리가 지원될 수 있다.
- 계층 내에서 IRAP 픽처는 인터-계층/인터-뷰 예측 없이 인트라-코딩된 픽처일 수 있다. 그러한 픽처는 픽처가 존재하는 계층/뷰에 대해 랜덤 액세스 기능을 가능하게 한다.
- 강화 계층 내에서 IRAP 픽처는 인터 예측(즉, 시간 예측) 없는 픽처이지만 인터-계층/인터-뷰 예측이 허용되는 픽처일 수 있다. 그러한 픽처는 모든 참조 계층/뷰가 이용 가능하다면 그 픽처가 존재하는 계층/뷰의 디코딩을 시작하게 할 수 있다. 단일 루프 디코딩에서는 코딩된 참조 계층/뷰가 이용 가능하기만 하다면 (이것은 예를 들면 SVC에서 dependency_id가 0보다 큰 IDR 픽처의 사례일 수 있음) 그것으로 충분할 수 있다. 다중 루프 디코딩에서는 참조 계층/뷰가 디코딩되는 것이 필요할 수 있다. 그러한 픽처는 예를 들면 단계적 계층 액세스(stepwise layer access, STLA) 픽처 또는 강화 계층 IRAP 픽처라고 지칭될 수 있다.
- 앵커 액세스 유닛 또는 완전 IRAP 액세스 유닛은 모든 계층에서 인트라 코딩된 픽처(들) 및 STLA 픽처만을 포함하는 것으로 정의될 수 있다. 다중 루프 디코딩에서, 그러한 액세스 유닛은 모든 계층/뷰로 랜덤 액세스하는 것을 가능하게 한다. 그러한 액세스 유닛의 예는 MVC 앵커 액세스 유닛이다(그와 같은 타입 중에서 IDR 액세스 유닛은 특수한 사례이다).
- 단계적 IRAP 액세스 유닛은 기본 계층에서 IRAP 픽처를 포함하는 것으로 정의되지만 모든 강화 계층에서 IRAP 픽처를 포함할 필요가 없는 것으로 정의될 수 있다. 단계적 IRAP 액세스 유닛은 기본 계층 디코딩의 시작을 가능하게 하지만, 강화 계층의 디코딩은 강화 계층이 IRAP 픽처를 포함하고 있을 때 시작될 수 있으며 (다중 루프 디코딩의 경우) 강화 계층의 모든 참조 계층/뷰는 그 시점에서 디코딩된다.
HEVC의 스케일러블 확장 또는 HEVC에 유사한 단일 계층 코딩 체계에 대한 임의의 스케일러블 확장에서, IRAP 픽처는 다음과 같은 특성 중 하나 이상의 특성을 갖는 것으로 명시될 수 있다.
- nuh_layer_id가 0보다 큰 IRAP 픽처의 NAL 유닛 타입 값은 강화 계층 랜덤 액세스 포인트를 표시하는데 사용될 수 있다.
- 강화 계층 IRAP 픽처는 그의 모든 참조 계층이 EL IRAP 픽처에 앞서 디코딩되었을 때 그 강화 계층의 디코딩을 시작할 수 있게 하는 픽처라고 정의될 수 있다.
- nuh_layer_id가 0보다 큰 IRAP NAL 유닛에 대해 인터-계층 예측은 허용되지만, 인터 예측은 허용되지 않는다.
- IRAP NAL 유닛은 계층 전체에 맞추어 조정될 필요가 없다. 다시 말해서, 액세스 유닛은 IRAP NAL 유닛 및 비-IRAP 픽처 모두를 다 포함할 수 있다.
- 기본 계층에서 BLA 픽처 다음에, 강화 계층이 IRAP 픽처를 포함하고 있고 그의 모든 참조 계층의 디코딩이 시작되었을 때, 강화 계층의 디코딩이 시작된다. 다시 말해서, 기본 계층에서 BLA 픽처는 계층별 시작 프로세스를 시작한다.
- 강화 계층의 디코딩이 CRA 픽처로부터 시작할 때, 그의 RASL 픽처는 (HEVC 버전 1에서) BLA 픽처의 RASL 픽처와 유사하게 처리된다.
계층 전체에 맞게 조정되지 않은 IRAP 픽처 또는 이와 유사한 픽처를 가진 스케일러블 비트스트림은 IRAP 픽처가 기본 계층에서 사용될 수 있는 것보다 빈번히 사용될 수 있는데, 이 기본 계층에서 IRAP 픽처는 예를 들면, 공간 해상도가 더 작기 때문에 코딩된 크기가 더 작을 수 있다. 계층별로 디코딩을 시작하기 위한 프로세스 또는 메커니즘은 비디오 디코딩 체계에 포함될 수 있다. 그러므로 디코더는 기본 계층이 IRAP 픽처를 포함하고 있을 때 비트스트림의 디코딩을 시작할 수 있고 다른 계층이 IRAP 픽처를 포함하고 있을 때는 다른 계층의 계층별 디코딩을 시작할 수 있다. 다시 말해서, 계층별 디코딩 프로세스를 시작할 때, 디코더는 디코딩 프로세스에서 부가적인 강화 계층으로부터의 후속 픽처가 디코딩되므로 디코딩된 계층(여기서 계층은 공간 해상도, 품질 레벨, 뷰, 깊이와 같은 부가적인 컴포넌트, 또는 이들의 조합으로 강화 계층을 표현할 수 있음)의 수를 점진적으로 증가시킨다. 디코딩된 계층 수의 점진적인 증가는 예를 들면 (품질 및 공간 스케일러빌리티의 경우) 픽처 품질의 점진적인 개선이라고 인지될 수 있다.
계층별 시작 메커니즘은 특정 강화 계층에서 디코딩 순서에서 첫 픽처의 참조 픽처에 이용 불가능한 픽처를 생성할 수 있다. 이와 달리, 디코더는 디코딩 순서에서, 계층의 디코딩이 시작될 수 있는 IRAP 픽처에 선행하는 픽처의 디코딩을 생략할 수 있다. 이렇게 생략될 수 있는 픽처는 인코더 또는 다른 엔티티에 의해 비트스트림 내에서 특별하게 표시될 수 있다. 예를 들면, 하나 이상의 특정 NAL 유닛 타입이 이러한 픽처를 위해 사용될 수 있다. 이러한 픽처가 NAL 유닛 타입을 이용하여 특별하게 라벨링하든지 아니면 예를 들어 디코더에 의해 추론되든지 상관없이, 이러한 픽처는 교차 계층 랜덤 액세스 스킵(cross-layer random access skip, CL-RAS) 픽처라고 지칭될 수 있다. 디코더는 생성된 이용 불가능한 픽처 및 디코딩된 CL-RAS 픽처를 출력하지 않을 수 있다.
계층별 시작 메커니즘은 강화 계층의 모든 참조 계층이 그 참조 계층 내 IRAP 픽처와 유사하게 초기화되었을 때, 그 강화 계층 내 IRAP 픽처로부터 강화 계층 픽처를 출력하기 시작할 수 있다. 다시 말해서, 출력 순서에서 그러한 IRAP 픽처에 선행하는 (동일 계층 내) 임의의 픽처는 디코더로부터 출력되지 않을 수 있고 그리고/또는 디스플레이되지 않을 수 있다. 일부의 경우, 그러한 IRAP 픽처와 연관된 디코딩 가능한 리딩 픽처는 출력될 수 있지만 그러한 IRAP 픽처에 선행하는 다른 픽처는 출력되지 않을 수 있다.
예를 들면, 코딩된 비디오 시퀀스가 방송되거나 스트리밍되는 또는 대용량 메모리에 저장된 비트스트림으로 합쳐질 수 있는, 이어붙이기(splicing)라고도 지칭될 수 있는 코딩된 비디오 데이터의 합침(concatenation)이 일어날 수 있다. 예를 들면, 광고방송 또는 광고를 표현하는 코딩된 비디오 시퀀스는 영화 또는 다른 "기본" 콘텐츠와 합쳐질 수 있다.
스케일러블 비디오 스트림은 계층 전체에서 맞게 조정되지 않은 IRAP 픽처를 포함할 수 있다. 그러나 기본 계층 내 IRAP 픽처를 그의 첫 액세스 유닛에서 포함하는 코딩된 비디오 시퀀스를 합치는 것이 가능할 수 있지만 반드시 모든 계층에서 그렇게 하지 않는 것이 편할 수 있다. 제 1 코딩된 비디오 시퀀스 다음에 이어붙인 제 2 코딩된 비디오 시퀀스는 계층별 디코딩 시작 프로세스를 촉발해야 한다. 그것은 상기 제 2 코딩된 비디오 시퀀스의 제 1 액세스 유닛이 IRAP 픽처를 그의 모든 계층에서 포함하고 있지 않을 수 있고 그래서 그 액세스 유닛 내 비-IRAP 픽처에 대한 몇몇 참조 픽처가 (합쳐진 비트스트림에서) 이용 가능하지 않고 그래서 디코딩될 수 없기 때문이다. 아래에서 스플라이서라고 지칭되는 코딩된 비디오 시퀀스를 합치는 엔티티는 이 엔티티가 디코더(들)에서 계층별 시작 프로세스를 촉발하도록 제2 코딩된 비디오 시퀀스의 제 1 액세스 유닛을 수정해야 한다.
계층별 시작 프로세스의 촉발을 표시하는 표시(들)가 비트스트림 신택스에서 존재할 수 있다. 이러한 표시(들)는 인코더 또는 스플라이서에 의해 생성될 수 있으며 디코더에 의해 순응될 수 있다. 이러한 표시(들)는 특정한 픽처 타입(들) 또는 NAL 유닛 타입(들)에 대해서만, 이를테면 IDR 픽처에 대해서만 사용될 수 있는데 반해, 다른 실시예에서 이러한 표시(들)는 임의의 픽처 타입(들)에 대해 사용될 수 있다. 일반성을 잃지 않고, 슬라이스 세그먼트 헤더에 포함되는 것으로 생각되는 cross_layer_bla_flag라고 호칭하는 표시는 아래에서 언급된다. 임의의 다른 명칭을 갖거나 임의의 다른 신택스 구조에 포함되는 유사한 표시가 부가적으로 또는 대안으로 사용될 수 있다는 것을 이해하여야 한다.
계층별 시작 프로세스를 촉발하는 표시(들)와는 별도로, 특정의 NAL 유닛 타입(들) 및/또는 픽처 타입(들)이 계층별 시작 프로세스를 촉발할 수 있다. 예를 들면, 기본 계층 BLA 픽처는 계층별 시작 프로세스를 촉발할 수 있다.
계층별 시작 메커니즘은 다음과 같은 경우 중 하나 이상의 경우에서 시작될 수 있다:
- 비트스트림의 시작부분에서.
- 특별히 관리될 때, 예를 들면 디코딩 프로세스가 예를 들면 방송 채널에 맞추거나 파일 또는 스트림 내 위치를 찾으려 시도하는 것에 대응하여 시작되거나 재시작될 때, 코딩된 비디오 시퀀스의 시작부분에서. 디코딩 프로세스는 비디오 플레이어 또는 이와 유사한 것과 같은 외부 수단에 의해 제어될 수 있는 변수, 예를 들어 NoClrasOutputFlag라고 지칭하는 변수를 입력할 수 있다.
- 기본 계층 BLA 픽처.
- cross_layer_bla_flag가 1인 기본 계층 IDR 픽처. (또는 cross_layer_bla_flag가 1인 기본 계층 IRAP 픽처).
계층별 시작 메커니즘이 개시될 때, DPB 내 모든 픽처는 "참조용으로 사용되지 않음"이라고 표시될 수 있다. 다시 말해서, 모든 계층 내 모든 픽처는 "참조용으로 사용되지 않음"이라고 표시될 수 있으며 계층별 시작 메커니즘을 시작하는 픽처의 예측을 위한 참조 또는 디코딩 순서에서 임의의 후속 픽처로서 사용되지 않을 것이다.
교차 계층 랜덤 액세스 스킵된(CL-RAS) 픽처는 계층별 시작 메커니즘이 호출될 때 (예를 들면, NoClrasOutputFlag가 1일 때), CL-RAS 픽처가 비트스트림에서 존재하지 않은 픽처에 대한 참조를 포함할 수 있으므로, CL-RAS 픽처가 출력되지 않고 정확히 디코딩 가능하지 않을 수 있다는 속성을 가질 수 있다. CL-RAS 픽처는 비-CL-RAS 픽처의 디코딩 프로세스 동안 참조 픽처로서 이용되지 않는다는 것이 명시될 수 있다.
CL-RAS 픽처는 예를 들면 하나 이상의 NAL 유닛 타입 또는 슬라이스 헤더 플래그에 의해 (예를 들면, cross_layer_bla_flag를 cross_layer_constraint_flag로 다시 명명하고 비-IRAP 픽처에 대한 cross_layer_bla_flag의 시맨틱을 다시 정의함으로써) 명시적으로 표시될 수 있다. 픽처는 이 픽처가 (예를 들면 그의 NAL 유닛 타입에 의해 결정된 것으로서) 비-IRAP 픽처일 때 CL-RAS 픽처라고 간주될 수 있고, 이 픽처는 강화 계층에서 존재할 수 있으며, 이 픽처는 1이라는 (또는 이와 유사한) cross_layer_constraint_flag를 갖는다. 그렇지 않으면, 픽처는 비-CL-RAS 픽처인 것으로 분류될 수 있다. cross_layer_bla_flag는 1이라고 추론될 수 있고 (또는 각각의 변수가 1로 설정될 수 있고), 만일 픽처가 (예를 들면 그의 NAL 유닛 타입에 의해 결정된 것으로서) IRAP 픽처이면, 이 픽처는 기본 계층에서 존재할 수 있고, cross_layer_constraint_flag는 1과 같다. 그렇지 않으면, cross_layer_bla_flag는 0이라고 추론될 수 있다 (또는 각각의 변수가 0으로 설정될 수 있다). 이와 달리, CL-RAS 픽처는 추론될 수 있다. 예를 들면, nuh_layer_id가 layerId와 같은 픽처는 LayerInitializedFlag [ layerId ]가 0과 같을 때는 CL-RAS 픽처라고 추론될 수 있다. CL-RAS 픽처는 nuh_layer_id가 0보다 큰 코딩된 픽처의 디코딩이 시작될 때 LayerInitializedFlag[layerId]가 0과 같도록 nuh_layer_id가 layerId와 동일한 픽처라고 정의될 수 있다.
디코딩 프로세스는 특정 변수가 계층별 시작 프로세스가 사용될지 사용되지 않을지를 제어하는 방식으로 명시될 수 있다. 예를 들면, 변수 NoClrasOutputFlag가 사용될 수 있고, 이 변수는 0일 때 정상적인 디코딩 동작을 표시하고, 1일 때 계층별시작 동작을 표시한다. 예를 들면 NoClrasOutputFlag는 다음과 같은 단계 중 하나 이상의 단계를 이용하여 설정될 수 있다:
1) 만일 현재 픽처가 비트스트림에서 첫 픽처인 IRAP 픽처이면, NoClrasOutputFlag는 1로 설정된다.
2) 그렇지 않고, 만일 몇몇 외부 수단이 사용되어 변수 NoClrasOutputFlag를 기본 계층 IRAP 픽처의 값과 동일하게 설정하면, 변수 NoClrasOutputFlag는 외부 수단에 의해 제공된 값과 동일하게 설정된다.
3) 그렇지 않고, 만일 현재 픽처가 코딩된 비디오 시퀀스(CVS)에서 첫 픽처인 BLA 픽처이면, NoClrasOutputFlag는 1로 설정된다.
4) 그렇지 않고, 만일 현재 픽처가 코딩된 비디오 시퀀스(CVS)에서 첫 픽처인 BLA 픽처이고 cross_layer_bla_flag가 1이면, NoClrasOutputFlag는 1로 설정된다.
5) 그렇지 않으면, NoClrasOutputFlag는 0으로 설정된다.
전술한 단계 4는 이와 달리 더 일반적으로 다음과 같이 표현될 수 있다: "그렇지 않고, 만일 현재 픽처가 CVS에서 첫 픽처인 IRAP 픽처이고 계층별 시작 프로세스의 표시가 IRAP 픽처와 연관되면, NoClrasOutputFlag는 1로 설정된다." 전술한 단계 3은 제외될 수 있으며, BLA 픽처는 그의 cross_layer_bla_flag가 1일 때 계층별 시작 프로세스를 시작하는 것으로 명시될 수 있다(즉, NoClrasOutputFlag를 1로 설정한다). 조건을 표현하는 다른 방법이 가능하고 동등하게 적용 가능하다는 것을 이해하여야 한다.
계층별 시작을 위한 디코딩 프로세스는 예를 들면 (아마도 기본 계층을 제외하고 그리고 아마도 다른 독립 계층 또한 제외하고) 각 층마다 엔트리를 가질 수 있는 두 개의 어레이 변수 LayerInitializedFlag[ i ] and FirstPicInLayerDecodedFlag[ i ]에 의해 제어될 수 있다. 예를 들면 NoClrasOutputFlag가 1이 됨에 따라 계층별 시작 프로세스가 호출될 때, 이들 어레이 변수는 변수의 디폴트 값으로 리셋될 수 있다. 예를 들면, (예를 들어, 6비트 nuh_layer_id를 가진) 64개 계층이 활성화될 때, 변수는 다음과 같이 리셋될 수 있다: 변수 LayerInitializedFlag[ i ]는 0부터 63까지 모두 포함하는 i의 모든 값에 대해 0으로 설정되며 변수 FirstPicInLayerDecodedFlag[ i ]는1부터 63까지 모두 포함하는 i의 모든 값에 대해 0으로 설정된다.
디코딩 프로세스는 RASL 픽처의 출력을 제어하기 위해 다음과 같은 또는 유사한 프로세스를 포함할 수 있다. 현재 픽처가 IRAP 픽처일 때, 다음과 같이 적용한다:
- 만일 LayerInitializedFlag[ nuh_layer_id ]가 0이면, 변수 NoRaslOutputFlag는 1로 설정된다.
- 그렇지 않고, 만일 몇몇 외부 수단이 사용되어 변수 HandleCraAsBlaFlag를 현재 픽처의 값으로 설정하면, 변수 HandleCraAsBlaFlag는 외부 수단에 의해 제공된 값과 같게 설정되며 변수 NoRaslOutputFlag는 HandleCraAsBlaFlag과 같게 설정된다.
- 그렇지 않으면, 변수 HandleCraAsBlaFlag는 0으로 설정되며 변수 NoRaslOutputFlag는 0으로 설정된다.
디코딩 프로세스는 계층의 LayerlnitializedFlag를 업데이트하기 위해 다음과 같은 프로세스를 포함할 수 있다. 현재 픽처가 IRAP 픽처이고 다음 중 어느 하나가 참(true)일 때, LayerlnitializedFlag[ nuh_layer_id ]는 1로 설정된다.
- nuh_layer_id는 0 이다.
- LayerlnitializedFlag[nuh_layer_id]는 0이고 LayerlnitializedFlag [refLayerId]는 refLayerId의 모든 값이 RefLayerId[nuh_layer_id][j]와 같은 경우 1이다. 여기서 j는 0부터 NumDirectRefLayers[nuh_layer_id] - 1까지 모두 포함하여 그 범위에 있다.
FirstPicInLayerDecodedFlag[ nuh_layer_id ]가 0과 같을 때, 이용 불가능한 참조 픽처를 생성하기 위한 디코딩 프로세스는 현재 픽처를 디코딩하기 전에 호출될 수 있다. 이용 불가능한 참조 픽처를 생성하기 위한 디코딩 프로세스는 디폴트 값을 가진 참조 픽처 세트 내 각 픽처마다 픽처를 생성할 수 있다. 이용 불가능한 참조 픽처를 생성하는 프로세스는 CL-RAS 픽처의 신택스 제약사항에 관한 사양에 대해서만 기본적으로 명시될 수 있는데, 이 사양에서 CL-RAS 픽처는 nuh_layer_id가 layerId와 동일한 픽처라고 정의될 수 있으며 LayerInitializedFlag[ layerId ]는 0이다. HRD 동작에서, CL-RAS 픽처는 CPB 등장 및 제거 시간을 도출할 때 고려해야 할 수 있다. 디코더는 임의의 CL-RAS 픽처를 무시할 수 있는데, 이것은 이들 픽처가 출력에 대해 명시되어 있지 않고 출력에 대해 명시된 임의의 다른 픽처의 디코딩 프로세스에 영향을 미치지 않기 때문이다.
스케일러블 코딩에서 픽처의 출력은 예를 들면 다음과 같이 제어될 수 있다. 각 픽처마다, PicOutputFlag는 단일 계층 비트스트림에 대해 유사하게 디코딩 프로세스에서 첫번째로 도출된다. 예를 들면, 픽처의 비트스트림에 포함된 pic_output_flag는 PicOutputFlag를 도출할 때 고려대상이 될 수 있다. 액세스 유닛이 디코딩되었을 때, 출력 계층 및 가능한 대체 가능한 출력 계층은 예를 들면 다음과 같이, 액세스 유닛의 각 픽처마다 PicOutputFlag를 업데이트하기 위해 사용된다.
- 만일 대체 가능한 출력 계층의 사용이 가능하게 되면(예를 들면, 초안 MV-HEVC/SHVC에서 AltOptLayerFlag[ TargetOptLayerSetIdx ]가 1이면) 그리고 액세스 유닛이 타겟 출력 계층에서 픽처를 포함하고 있지 않는 것 또는 액세스 유닛이 타겟 출력 계층에서 PicOutputFlag가 0인 픽처를 포함하고 있는 것 중 어느 하나이면, 다음과 같은 순서의 단계가 적용된다.
o 리스트 nonOutputLayerPictures는 PicOutputFlag가 1이고 nuh_layer_id 값이 타겟 출력 계층의 직접 및 간접 참조 계층의 nuh_layer_id 값 중에 있는 액세스 유닛의 픽처들의 리스트이다.
o 리스트 nonOutputLayerPictures 중에서 최고 nuh_layer_id 값을 가진 픽처는 리스트 nonOutputLayerPictures에서 제외된다.
o 리스트 nonOutputLayerPictures에 포함되어 있는 각 픽처의 PicOutputFlag는 0으로 설정된다.
- 그렇지 않으면, 타겟 출력 계층에서 포함되지 않은 픽처의PicOutputFlag는 0으로 설정된다.
이와 달리, 대안의 출력 계층으로부터 픽처의 출력을 촉발하는 전술한 조건은 PicOutputFlag가 0인 모든 픽처 대신 오직 CL-RAS 픽처에만 관련하는 것으로 제약될 수 있다. 다시 말해서, 다음과 같이 조건이 표현될 수 있다.
- 만일 대체 가능한 출력 계층의 사용이 가능하게 되면(예를 들면, 초안 MV-HEVC/SHVC에서 AltOptLayerFlag[ TargetOptLayerSetIdx ]가 1이면) 그리고 액세스 유닛이 타겟 출력 계층에서 픽처를 포함하고 있지 않는 것 또는 액세스 유닛이 타겟 출력 계층에서 PicOutputFlag가 0인 CL-RAS 픽처를 포함하고 있는 것 중 어느 하나이면, 다음과 같은 순서의 단계가 적용된다.
이와 달리, 조건은 다음과 같이 표현될 수 있다.
- 만일 대체 가능한 출력 계층의 사용이 가능하게 되면(예를 들면, 초안 MV-HEVC/SHVC에서 AltOptLayerFlag[ TargetOptLayerSetIdx ]가 1이면) 그리고 액세스 유닛이 타겟 출력 계층에서 픽처를 포함하고 있지 않는 것 또는 액세스 유닛이 LayerInitializedFlag[ lId ]가 0과 같도록 타겟 출력 계층 lId에서 PicOutputFlag가 0인 픽처를 포함하고 있는 것 중 어느 하나이면, 다음과 같은 순서의 단계가 적용된다.
그러나 전술한 당대의 비디오 코딩 표준에서 스케일러빌리티 설계는 몇 가지 제한사항이 있다. 예를 들면, SVC 및 SHVC에서, 액세스 유닛의 픽처(또는 이와 유사한 것)는 동일한 시간 레벨(예를 들면, HEVC 및 그 확장에서 TemporalId 값)을 가져야 한다. 이것은 디코더가 계층 전체에서 예측 계층화를 다르게 결정할 수 없게 하는 결과를 가져온다. 계층 전체에서 상이한 예측 계층화는 TemporalId 값의 수가 더 많고 서브계층 상향 스위칭 포인트가 빈번한 일부 계층 및 더 나은 레이트 왜곡 수행을 목표로 하는 예측 계층화를 적용하는 일부 계층을 인코딩하는데 사용될 수도 있다. 더욱이, 인코더는 동일한 비트스트림의 계층 트리를 서로 독립적으로 인코딩할 수 없다. 예를 들면, 기본 계층과 보조 픽처 계층은 상이한 인코더에 의해 인코딩될 수도 있으며, 그리고/또는 상이한 계층 트리의 인코딩은 상이한 시간 때 이루어질 수도 있다. 그러나 계층은 현재 각 픽처의 (디)코딩 순서 및 TemporalId를 동일하게 해야한다.
예를 들면, SVC 및 SHVC에서 또 다른 제한사항은 HEVC 및 그 확장의 TSA 및 STSA와 같은 시간 레벨 스위치 픽처가 최저 시간 레벨, 이를테면 HEVC 및 그 확장에서 TemporalId가 0인 것을 허용하지 않는다는 것이다. 이것은 액세스 픽처 또는 액세스 포인트를 몇몇 시간 레벨(이들 중 모두가 필시 그러한 것은 아니지만)의 디코딩을 가능하게 하는 계층으로 표시하는 것을 못하게 하는 결과를 가져온다. 그러나 그러한 액세스 포인트는 예를 들면 서브계층별 방식에서 그리고/또는 비트레이트 적응 방법에서 계층을 디코딩하는 것의 단계별 시작을 위해 사용될 수 있다.
이제 전술한 문제점을 최소한 완화하기 위하여, 아래에서는 제약된 계층 액세스 유닛을 인코딩하고 디코딩하는 방법이 제시된다.
도 7에서 개시된 인코딩 방법에서, 제 1 픽처는 제 1 스케일러빌리티 계층과 최저 시간 서브계층에서 인코딩되고(750), 제 2 픽처는 제 2 스케일러빌리티 계층과 최저 시간 서브계층에서 인코딩되며(752), 여기서 제 1 픽처 및 제 2 픽처는 동시 순간을 나타낸다. 그러면 제 1 픽처와 연관된 하나 이상의 제 1 신택스 요소는 제 1 픽처의 픽처 타입이 단계별 시간 서브계층 액세스 픽처와 다르다고 표시하는 값과 함께 인코딩된다(754). 유사하게, 제 2 픽처와 연관된 하나 이상의 제 2 신택스 요소는 제 2 픽처의 픽처 타입이 단계별 시간 서브계층 액세스 픽처와 다르다고 표시하는 값과 함께 인코딩된다(756). 그런 다음 제 2 스케일러빌리티 계층 및 최저 시간 서브계층보다 높은 시간 서브계층상의 적어도 제 3 픽처가 인코딩된다(758).
실시예에 따르면, 단계별 시간 서브계층 액세스 픽처는 하나 이상의 시간 서브계층을 가진 비트스트림을 디코딩하는 것의 계층별 초기화를 위한 액세스 포인트를 제공한다.
그러므로, 인코더는 계층에 대한 액세스 픽처 또는 액세스 포인트를 인코딩하는데, 여기서 액세스 픽처 또는 액세스 포인트는 일부의 시간 서브계층(이들 중 모두가 필시 그렇다는 것은 아니지만)을 디코딩할 수 있게 한다. 아래에서 더 자세히 설명되는 바와 같이, 그러한 액세스 포인트는 예를 들면 (예를 들어, 디코더에 의한) 계층별 방식에서 그리고/또는 (예를 들어, 송신기에 의한) 비트레이트 적응 방법에서 계층을 디코딩하는 것의 단계별 시작을 위해 사용될 수 있다.
실시예에 따르면, 단계별 시간 서브계층 액세스 픽처는 TemporalId가 0인 STSA 픽처이다.
도 8은 TemporalId가 0인 STSA 픽처가 제약된 계층 액세스 픽처를 표시하는데 사용되는 일 예를 예시한다. 도 8에서, 두 기본 계층(BL) 및 강화 계층(EL) 모두는 네 개의 시간 서브계층(TemporalId (TID) = 0, 1, 2, 3)상의 픽처를 포함한다. 픽처의 디코딩 순서는 0, 1, ..., 9, A, B, C, ...이지만, 픽처의 출력 순서는 도 8에서 좌에서 우로 진행하는 픽처의 순서이다. 도 8에서 각 픽처의 디코딩된 픽처 버퍼(decoded picture buffer, DPB) 상태 또는 DPB 덤프(DPB dump) 및 그 다음의 그림은 "참조용으로 사용됨"이라고 표시된 디코딩된 픽처를 보여준다. 다시 말해서, DPB 덤프는 "참조용으로 사용됨"이라고 표시된 픽처를 고려하는 것이지, (이미 "참조용으로 사용되지 않음"으로 표시되었던) "출력에 필요함"으로 표시된 픽처를 고려하지 않는다. DPB 상태는 다음의 픽처를 포함할 수 있다.
- 인코딩 또는 디코딩되는 대상의 픽처(도 8에서 그리고 그 다음 그림에서 표시된 DPB 상태의 가장 하단의 항목);
- 대상의 픽처를 인코딩(및 디코딩)하기 위한 참조로서 사용되지 않지만 디코딩 순서에서 후속 픽처를 인코딩(및 디코딩)하기 위한 참조로서 사용될 수 있는 픽처(도 8에서 그리고 그 다음 그림에서 이태릭체의 밑줄로 표시된 DPB 상태에 있는 항목); 및
- 대상의 픽처를 인코딩(및 디코딩)하기 위한 참조로서 이용될 수 있는 픽처(도 8에서 그리고 그 다음 그림에서 표시된 DPB 상태에 있는 다른 모든 항목).
EL 픽처 1은 TemporalId가 0, 1, 및 2인 서브계층으로의 액세스를 제공하지만 TemporalId가 3과 같은 서브계층으로의 액세스를 제공하지 않는 계층 액세스 픽처이다. 이러한 예에서, EL의 TID의 제시된 픽처(5, 7, 8, C, D, F, G) 중에 TSA 또는 STSA 픽처는 없다.
실시예에 따르면, 방법은 또한 특정 NAL 유닛 타입에 의해 비트스트림에서 단계별 시간 서브계층 액세스 픽처를 시그널링하는 것을 포함한다. 그래서 STSA nal_unit_type를 재사용하는 대신, 특정 NAL 유닛 타입이 사용될 수 있으며 서브계층-제약된 계층 액세스 픽처를 참조할 수 있다.
실시예에 따르면, 방법은 또한 SEI 메시지를 사용하여 단계별 시간 서브계층 액세스 픽처를 시그널링하는 것을 포함한다. SEI 메시지는 또한 디코딩 가능한 서브계층의 개수를 정의할 수 있다. SEI 메시지는 서브계층-제약된 계층 액세스 픽처 또는 TemporalId가 0인 STSA 픽처를 표시하는 NAL 유닛 타입을 사용하는 것에 추가하여 또는 그 대신에 사용될 수 있다. 또한 SEI 메시지는 계층의 디코딩이 연관된 계층 액세스 픽처로부터 시작할 때 (풀(full) 픽처 레이트로) 디코딩될 수 있는 서브계층의 수를 포함할 수 있다. 예를 들면, 도 8의 예를 참조하면, 계층 액세스 픽처인 EL 픽처 1은 세 개의 서브계층(TID 0, 1, 2)에의 액세스를 제공하는 것으로 표시될 수 있다.
실시예에 따르면, 방법은 또한 제 1 스케일러빌리티 계층보다 더 빈번하게 나오는 TSA 또는 STSA 픽처를 포함하는 상기 제 2 스케일러빌리티 계층 또는 임의의 다른 스케일러빌리티 계층을 인코딩하는 것을 포함한다. 그렇게 함으로써, 송신기 또는 디코더 또는 이와 유사한 것은 동적으로 그리고 계층별 방식으로 얼마나 많은 서브계층이 전송되거나 디코딩되는지를 결정할 수 있다. 강화 계층이 기본 계층에서보다 빈번하게 나오는 TSA 또는 STSA 픽처를 갖고 있을 때, 계층의 수 및/또는 직교하는 서브계층의 수를 직교하여 결정함으로써 달성될 수 있는 것보다 더 미세한 비트레이트 조정이 수행될 수 있다.
대체 가능한 출력 계층 메커니즘이 사용 중이고 타겟 출력 계층에서 아무런 픽처도 없을 때는 하위 계층으로부터의 픽처가 출력될 것이라는 것이 주목된다. 그 결과, 타겟 출력 계층으로부터의 픽처가 전송에서 생략될지라도, (디코더의) 출력 픽처 레이트는 변동 없이 유지될 수 있다.
도 9는 기본 계층(BL)이 강화 계층(EL)(픽처 2, 3, 4, 5, 7, 8, A, B, C, D, F, G)보다 적은 수의 TSA 픽처(픽처, 2, 3, 4)를 가질 때의 일 예를 예시한다. TID0 픽처에서 나오는 일부 예측 화살표는 예시에서 포함되지 않는다는 것(다만 DPB 덤프로부터 오는 것이라고 결론지을 수 있음)이 주목된다.
실시예에 따르면, 특정 시간 레벨만이 인터-계층 예측에 이용될 때 맞게 조정되지 않은 시간 서브계층 액세스 픽처를 인코딩하는 것이 가능하다.
이러한 사용 사례에서, 일부 TemporalId 값만을 가진 픽처는 이를 테면 MV-HEVC, SHVC 및/또는 이와 유사한 코덱의 VPS 확장의 max_tid_il_ref_pics_plus1 신택스 요소를 사용하여, 시퀀스 레벨 신택스 구조에서 표시될 수 있는 인터-계층 예측을 위한 참조로서 사용된다고 가정한다. 또한 송신기는 수신기가 오직 EL만 출력되는 출력 계층 세트를 이용한다는 것을 알고 있다고 가정한다. 그 결과, 송신기는 인터-계층 예측을 위한 참조로서 이용되지 않는다고 표시되도록 하는 TemporalId 값을 가진 BL 픽처의 전송을 생략한다. 또한 송신기는 EL로부터 전송되는 최대 TemporalId를 적응적으로 선택함으로써 비트레이트 조정 또는 비트레이트 적응을 수행한다고 가정한다.
도 10은 도 9의 예와 유사하지만, TemporalId가 2보다 크거나 같은 BL 픽처가 인터-계층 예측을 위한 참조로서 사용되지 않는 일 예를 도시한다. 즉, MV-HEVC, SHVC, 및/또는 이와 유사한 코덱에서, 이것은 기본 계층과 강화 계층 사이에서 max_tid_il_ref_pics_plus1 신택스 요소를 2로 설정함으로써 표시될 수 있다.
다른 실시예와 함께 또는 다른 실시예와 독립적으로 적용될 수 있는 실시예에 따르면, TemporalId가 동일한 액세스 유닛 내 계층 전체에서 맞추어 조정될 필요가 없을 때 맞게 조정되지 않은 시간 서브계층 액세스 픽처를 인코딩하는 것이 가능하다. 이것은 예를 들면, 동일한 액세스 유닛에서 상이한 TemporalId 값(또는 이와 유사한 값)을 가진 픽처를 허용하는 스케일러블 비디오 코딩 체계에서 활용될 수 있다.
동일한 액세스 유닛 내 픽처가 상이한 TemporalId 값을 가지면 계층 전체에서 예측 계층화를 상이하게 결정할 때 인코더에 융통성을 제공할 수 있고, TemporalId 값이 더 많고 서브계층 업-스위치 포인트가 빈번한 일부 계층이 코딩될 수 있으며 더 나은 레이트 왜곡 수행을 목표로 하는 예측 계층화를 적용하는 일부 계층이 코딩될 수 있다. 더욱이, 서로 독립적으로 동일한 비트스트림의 계층 트리를 인코딩하는 융통성이 제공된다. 예를 들면, 기본 계층 및 보조 픽처 층은 상이한 인코더에 의해 인코딩될 수 있고, 그리고/또는 상이한 계층 트리의 인코딩은 상이한 시간 때 이루어질 수도 있다. 인코더를 서로 따로 따로 동작하게 함으로써, 인코더는 입력 신호에 따라서 사용되는 예측 계층화 및 TemporalId 값의 수를 결정하는데 융통성이 있다.
인코더는 예를 들면 VPS와 같은 시퀀스 레벨의 신택스 구조에서 TemporalId 값 또는 이와 유사한 값이 액세스 유닛 내 코딩된 픽처에 맞게 조정되어 있는지를 (즉, 동일한지를) 표시할 수 있다. 디코더는 예를 들면, VPS와 같은 시퀀스 레벨 신택스 구조로부터 TemporalId 값 또는 유사한 값이 액세스 유닛 내 코딩된 픽처에 맞게 조정되어 있는지에 관한 표시를 디코딩할 수 있다. 액세스 유닛 내 코딩된 픽처에 맞게 조정되어 있는 TemporalId 값 또는 이와 유사한 값에 기초하여, 인코더 및/또는 디코더는 TemporalId 값 또는 유사한 값이 액세스 유닛 내 코딩된 픽처에 맞게 조정되어 있지 않을 때와 상이한 신택스, 시맨틱, 및/또는 동작을 선택할 수 있다. 예를 들면, TemporalId 값 또는 유사한 값이 액세스 유닛 내 코딩된 픽처에 맞게 조정되어 있을 때, 인코딩 및/또는 디코딩 시 인터-계층 RPS 신택스, 시맨틱, 및/또는 도출은 어느 TemporalId 값을 참조 계층과 예측된 계층 사이의 인터-계층 예측을 위한 참조로서 사용된 픽처가 가질 수 있는지 그리고/또는 어느 TemporalId 값을 참조 계층과 예측된 계층 사이의 인터-계층 예측을 위한 참조로서 사용된 픽처가 갖지 못하게 하는지에 관한 정보를 활용할 수 있다. 예를 들면, tid_aligned_flag라고 호칭하는 신택스 요소는 VPS에 포함될 수 있으며 그의 시맨틱은 다음과 같이 명시될 수 있다. tid_aligned_flag가 0이면, 이것은 TemporalId가 동일한 액세스 유닛의 상이한 코딩된 픽처에 대해 동일할 수 있거나 아니면 동일하지 않을 수 있다는 것을 명시하며, tid_aligned_flag가 1이면, 이것은 TemporalId가 동일한 액세스 유닛의 코딩된 모든 픽처에 대해 동일하다는 것을 명시한다. tid_aligned_flag는 후보 인터-계층 참조 픽처의 리스트를 도출할 때 고려대상일 수 있다. 예를 들면, 참조 픽처 리스트(들)를 구성하는 전술한 제 3 예를 참조하면, 후보 인터-계층 참조 픽처 를 식별하는 리스트 refLayerPicIdc[ ]를 명시하는 의사 코드(pseudo-code) 는 다음과 같이 명시될 수 있다.
Figure 112016099798799-pct00012
TemporalId 값이 액세스 유닛 내 모든 픽처에 대해 맞추어져 있다고 표시될 때, 인터-계층 예측에 이용될 수 있는 표시된 최대 TemporalId 값은 후보 인터-계층 참조 픽처의 리스트의 도출에 영향을 주는데, 즉 표시된 최대 TemporalId 값보다 작거나 같은 TemporalId 값을 가진 픽처만이 후보 인터-계층 참조 픽처의 리스트에 포함된다. TemporalId 값이 액세스 유닛 내 모든 픽처에 대해 맞추어져 있을 수 있거나 맞추어져 있지 않을 수 있을 때, 임의의 TemporalId 값의 픽처는 후보 인터-계층 참조 픽처의 리스트에 포함된다.
도 11은 예측 계층화가 계층 전체에서 상이하게 결정되는 일 예를 도시한다. 이 예에서, 기본 계층(BL)은 모든 픽처의 TemporalId가 0인 모든 픽처를 코딩하는 계층적 예측 계층화를 이용하여 코딩된다. BL에서 사용된 예측 계층화는 기본 계층에 대해 양호한 레이트 왜곡 수행을 이룩하는데 사용되었다고 가정한다. 강화 계층(EL)은 얼마나 많은 서브계층이 강화 계층에 대해 전송되는지를 동적으로 선택하는 기능을 제공하는 네 개의 서브계층 및 빈번하게 나오는 TSA 픽처를 갖는다.
도 9와 유사하게, EL TID0에서 나오는 일부 예측 화살표는 도 11의 예시에서 포함되지 않는다는 것(다만 DPB 덤프로부터 오는 것이라고 결론지을 수 있음)이 주목된다. 마찬가지로, BL 예측 화살표는 제외되고 DPB 덤프로부터 오는 것으로 결론지을 수 있다.
다른 실시예와 함께 적용될 수 있거나 다른 실시예와 독립적으로 적용될 수 있는 실시예가 아래에서 설명된다. VPS 신택스 및 시맨틱의 제시된 예뿐만 아니라 전술한 참조 픽처 리스트(들)를 구성하는 제 3 예를 참조하여, 다음과 같은 문제가 확인될 수 있다.
- 후보 인터-계층 참조 픽처를 식별하는 리스트 refLayerPicIdc[ ]가 도출될 때, 조건 "max_tid_il_ref_pics_plus1 [ refLayerIdx ][ LayerIdxInVps[ nuh_layer_id ] ] > TemporalId"은 max_tid_il_ref_pics_plus1 [ refLayerIdx ] [ LayerIdxInVps[ nuh_layer_id ]]가 0일 때 (즉, 참조 계층의 IRAP 픽처만이 인터-계층 예측을 위한 참조로서 사용될 수 있을 때), 참조 계층의 인덱스가 refLayerPicIdc[ ]에 포함되지 않는다는 결과를 갖는다.
- 차선책으로 max_tid_il_ref_pics_plusl [ ][ ]가 인터-계층 RPS 신택스 및 시맨틱에서 사용되는데, 그 이유는 다음과 같기 때문이다.
o 인터-계층 RPS의 신택스 요소는 TemporalId가 max_tid_il_ref_pics_plus1 [ ][ ] 값에 따라서 인터-계층 예측이 허용되지 않도록 하는 그런 값일지라도 슬라이스 헤더에 포함된다.
o 신택스 요소 num_inter_layer_ref_pics_minus1 및 inter_layer_pred_layer_idc[ i ]의 길이는 NumDirectRefLayers[ nuh_layer_id ]에 기초하여 결정된다. 그러나 만일 max_tid_il_ref_pics_plus1[ ][ ] 및 현재 픽처의 TemporalId가 고려대상이었으면, 잠재적으로 더 작은 길이가 결정될 수 있으며, 따라서 inter_layer_pred_layer_idc[ i ]는 현재 TemporalId의 인터-계층 예측을 위한 참조로서 사용될 수 있는 그러한 참조 계층 중의 인덱스일 수 있다.
참조 계층의 IRAP 픽처만이 인터-계층 예측을 위한 참조 픽처로서 사용될 수 있을 때의 동작을 정확히 수행하기 위해, 후보 인터-계층 참조 픽처를 식별하는 리스트 refLayerPicIdc[ ]를 명시하는 의사 코드(pseudo-code)는 다음과 같이 명시될 수 있다.
Figure 112016099798799-pct00013
언급한 바와 같이, 지금 설명되는 실시예는 다른 실시예와 함께 적용될 수 있다. 아래에서 설명되는 바와 같이, 지금 설명되는 실시예는 인코더 및/또는 디코더가 VPS와 같은 시퀀스 레벨 신택스 구조로/로부터, TemporalId 값 또는 이와 유사한 값이 액세스 유닛 내 코딩된 픽처에 맞추어져 있는지에 관한 표시를 인코딩 및/또는 디코딩할 수 있는 실시예와 함께 적용될 수 있다. 참조 계층의 IRAP 픽처만이 인터-계층 예측을 위한 참조 픽처로서 사용될 수 있을 때의 동작을 정확히 수행하기 위해, 후보 인터-계층 참조 픽처를 식별하는 리스트 refLayerPicIdc[ ]를 명시하는 의사 코드는 다음과 같이 명시될 수 있다.
Figure 112016099798799-pct00014
이와 달리, max_tid_il_ref_pics_plus1[ ][ ]을 더 최적하게 활용할 때, 실시예는 다음 단락에서 설명되는 것처럼 실현될 수 있다.
인코더는 고정 길이 코딩을 이용하여 인터-계층 RPS 관련 신택스 요소, 예를 들면 u(v)를 인코딩할 수 있거나 디코더는 이를 디코딩할 수 있으며, 여기서 신택스 요소 길이는 인코딩되거나 디코딩되는 현재 픽처의 nuh_layer_id 값 및 TemporalId 값에 의해 가능해지는 잠재적 참조 계층의 개수에 따라서 선택될 수 있다. 신택스 요소 값은 nuh_layer_id 값 및 TemporalId 값에 의해 가능해지는 잠재적 참조 계층 중의 참조 픽처를 표시할 수 있다. 잠재적 참조 계층은 VPS와 같은 시퀀스 레벨 신택스 구조에서 표시될 수 있다. 각 층의 직접 참조 계층은 인터-계층 예측을 위한 참조로서 사용될 수 있는 서브계층과 별개로 표시될 수 있다. 예를 들면, MV-HEVC, SHVC 및/또는 이와 유사한 코덱에서, 신택스 요소 direct_dependency_flag[ i ][ j ]는 잠재적 참조 계층을 표시하는데 사용될 수 있으며 신택스 요소 max_tid_il_ref_pics_plus1[ i ][ j ]는 인터-계층 예측이 오직 IRAP 픽처로부터 이루어질 수 있는지를 표시하는데 사용될 수 있고 만일 그렇지 않다면, 인터-계층 예측이 이루어질 수 있는 최대 서브계층을 표시하는데 사용될 수 있다.
MV-HEVC, SHVC, 및/또는 이와 유사한 코덱의 맥락에서, 변수 NumDirectRefLayersForTid[ lId ][ tId ] 및 RefLayerIdListForTid[ lId ][ tId ][ k ]는 VPS 확장 정보에 기초하여 도출된다. NumDirectRefLayersForTid[ lId ][ tId ]는 nuh_layer_id가 lId와 동일하고 TemporalId가 tId와 동일한 픽처의 인터-계층 예측에 이용될 수 있는 직접 참조 계층의 개수를 표시한다. RefLayerIdListForTid[ lId ][ tId ][ k ]는 nuh_layer_id가 lId와 동일하고 TemporalId가 tId와 동일한 픽처의 인터-계층 예측에 이용될 수 있는 직접 참조 계층의 nuh_layer_id 값의 리스트이다. 예를 들면, 다음과 같은 의사 코드는 NumDirectRefLayersForTid[ lId ][ tId ] 및 RefLayerIdListForTid[ lId ][ tId ][ k ]를 도출하는데 사용될 수 있으며, 여기서 MaxLayersMinus1은 VPS minus 1에서 명시된 계층의 개수이며 및 LayerIdxInVps[ layerId ]는 VPS에서 명시된 일부 구조 및 루프 내 (0부터 MaxLayersMinus1까지 모두 포함하여 그 범위에 드는) 계층의 인덱스를 명시한다.
Figure 112016099798799-pct00015
언급한 바와 같이, 지금 설명되는 실시예는 다른 실시예와 함께 적용될 수 있다. 아래에서 설명되는 바와 같이, 지금 설명되는 실시예는 인코더 및/또는 디코더가 VPS와 같은 시퀀스 레벨 신택스 구조로/로부터, TemporalId 값 또는 이와 유사한 값이 액세스 유닛 내 코딩된 픽처에 맞추어져 있는지에 관한 표시를 인코딩 및/또는 디코딩할 수 있는 실시예와 함께 적용될 수 있다. 참조 계층의 IRAP 픽처만이 인터-계층 예측을 위한 참조 픽처로서 이용될 수 있을 때의 동작을 정확히 수행하기 위해, NumDirectRefLayersForTid[ lId ][ tId ] 및 RefLayerIdListForTid[ lId ][ tId ][ k ]를 도출하는 의사 코드는 다음과 같이 명시될 수 있다.
Figure 112016099798799-pct00016
NumDirectRefLayersForTid[ nuh_layer_id ][ TemporalId ]는 인터-계층 RPS 신택스 및 시맨틱 내 NumDirectRefLayers[ nuh_layer_id ]를 대신하여 사용된다. 더욱이, inter_layer_pred_layer_idc[ i ]는 (RefLayerId[ nuh_layer_id ][ k ]에 대한 인덱스 k라기 보다는) RefLayerIdListForTid[ nuh_layer_id ][ TemporalId ][ k ]에 대한 인덱스 k이다. 그 결과, 인터-계층 RPS의 신택스 요소는 TemporalId가 max_tid_il_ref_pics _plus1[ ][ ] 값에 따라서 인터-계층 예측이 허용되지 않도록 하는 그런 값일지라도 슬라이스 헤더에 포함된다. 더욱이, 신택스 요소 num_inter_layer_ref_pics_minusl 및 inter_layer_pred_layer_idc[ i ]의 길이는 NumDirectRefLayersForTid[ nuh_layer_id ][ TemporalId ]에 기초하여 결정되며 그래서 그 길이가 NumDirectRefLayers[nuh_layer_id ]에 기초하여 결정되었던 경우보다 짧아질 수 있다.
예를 들면, 다음과 같은 신택스는 슬라이스 세그먼트 헤더 신택스 구조에서 사용될 수 있다.
Figure 112016099798799-pct00017
슬라이스 세그먼트 헤더 신택스 구조의 전술한 발췌 부분의 시맨틱은 다음 단락에서 기술되는 바와 같이 명시될 수 있다.
num_inter_layer_ref_pics_minus1 plus 1은 인터-계층 예측을 위한 현재 픽처의 코딩 시 이용될 수 있는 픽처의 개수를 명시한다. num_inter_layer_ref_pics_minus1 신택스 요소의 길이는 Ceil( Log2( NumDirectRefLayersForTid[ nuh_layer_id ][ TemporalId ] )) 비트이다. num_inter_layer_ref_pics_minus1의 값은 0부터 NumDirectRefLayersForTid[ nuh_layer_id ][ TemporalId ] - 1까지 모두 포함하여 그 범위 내에 있을 것이다.
변수 NumActiveRefLayerPics는 다음과 같이 도출될 수 있다.
Figure 112016099798799-pct00018
inter_layer_pred_layer_idc[ i ]는 인터-계층 예측을 위해 현재 픽처에 의해 이용될 수 있는 i번째 픽처의 nuh_layer_id를 나타내는 변수 RefPicLayerId[ i ]를 명시한다. 신택스 요소 inter_layer_pred_layer_idc[ i ]의 길이는 Ceil( Log2( NumDirectRefLayersForTid[ nuh_layer_id ][ TemporalId ] )) 비트이다. inter_layer_pred_layer_idc[ i ]의 값은 0부터 NumDirectRefLayersForTid[ nuh_layer_id ][ TemporalId ] - 1까지 모두 포함하여 그 범위에 있을 것이다. 존재하지 않을 때, inter_layer_pred_layer_idc[ i ]의 값은 refLayerPicIdc[ i ]와 동일하다고 추론된다.
0부터 NumActiveRefLayerPics - 1까지 모두 포함하여 그 범위에 드는 i의 모든 값에 대해 변수 RefPicLayerId[ i ]는 다음과 같이 도출될 수 있다.
Figure 112016099798799-pct00019
하이브리드 코덱 스케일러빌리티의 경우, 외부의 기본 계층의 디코딩된 픽처는 예를 들면 인터-계층 예측을 위한 참조로서 사용하기 위해, 강화 계층을 인코딩 및/또는 디코딩하는데 적용될 수 있다. 일부 실시예에서, 예를 들면 코딩 표준에서는 액세스 유닛 내 코딩된 픽처의 TemporalId 값이 동일한 것이 필요할 수 있으며, 외부 기본 계층 픽처의 TemporalId 값은 외부 기본 계층 픽처가 그와 연관된 액세스 유닛의 픽처의 TemporalId 값과 동일한 것으로 추론될 수 있다. 일부 실시예에서, 예를 들면 tid_aligned_flag 또는 이와 유사한 것을 사용하여 액세스 유닛 내 코딩된 픽처의 TemporalId 값이 동일해야 하는지가 표시될 수 있다. tid_aligned_flag 또는 이와 유사한 것이 액세스 유닛 내 코딩된 픽처의 TemporalId 값이 동일하다고 표시할 때, 외부 기본 계층 픽처의 TemporalId 값은 외부 기본 계층 픽처가 그와 연관된 액세스 유닛의 픽처의 TemporalId 값과 동일한 것으로 추론된다. 그렇지 않으면, 외부 기본 계층 픽처의 TemporalId 값은 외부 기본 계층 픽처가 그와 연관된 액세스 유닛 내 픽처의 인코딩 또는 디코딩 시에 영향을 미치지 않을 수 있으며 그래서 외부 기본 계층 픽처의 TemporalId 값이 도출될 필요가 없다. 일부 실시예에서, 외부 기본 계층 픽처의 TemporalId 값은 외부 기본 계층 픽처가 그와 연관된 액세스 유닛에서 선택된 픽처의 TemporalId 값과 동일한 것으로 추론될 수 있다. 선택된 픽처는 예를 들어 코딩 표준에서 명시될 수 있는 제약사항 및/또는 알고리즘에 따라서 선택될 수 있다. 예를 들면, 선택된 픽처는 외부 기본 계층 픽처가 직접 참조 픽처인 픽처일 수 있다. 만일 외부 기본 계층 픽처가 직접 참조 픽처인 픽처가 여러 개 있으면, 예를 들면 nuh_layer_id 값이 가장 작은 픽처가 선택될 수 있다. 외부 기본 계층 픽처와 연관된 액세스 유닛의 픽처의 TemporalId 값에는 추가적인 제약사항이 있을 수 있다. 예를 들어, 코딩 표준에 의해 예를 들면 외부 기본 계층을 인터-계층 참조 픽처로서 이용하거나 이용할 수 있는 각 픽처의 TemporalId 값이 동일해야 한다는 것이 요구될 수 있다. 그 결과, 외부 기본 계층 픽처의 TemporalId 값은 외부 기본 계층 픽처가 직접 참조 픽처인 임의의 픽처로부터 도출될 수 있다.
도 12에서 개시되는 디코딩 방법은 전술한 실시예 중 임의의 실시예에 따라서 인코딩된 비트스트림을 활용한다. 도 12에서 도시된 바와 같이, 제 1 스케일러빌리티 계층의 코딩된 픽처가 수신되고(1200) 디코딩된다(1202). 제 2 스케일러빌리티 계층의 코딩된 픽처가 수신되며(1204), 제 2 스케일러빌리티 계층은 제 1 스케일러빌리티 계층에 의존한다. 그 다음 제 2 스케일러빌리티 계층상의 계층 액세스 픽처가 제 2 스케일러빌리티 계층의 코딩된 픽처로부터 선택되며(1206), 선택된 계층 액세스 픽처는 최저 시간 서브계층상의 단계별 시간 서브계층 액세스 픽처이다. 디코딩 순서에서 선택된 계층 액세스 픽처에 앞서는 제 2 스케일러빌리티 계층상의 코딩된 픽처는 무시되며(1208), 선택된 계층 액세스 픽처가 디코딩된다(1210).
실시예에서, 도 13의 방법은 다음과 같이 도 13에서 제시된 단계의 후속 단계에 덧붙일 수 있다. 서브계층의 디코딩이 선택된 계층 액세스 픽처에 의해 가능해질 수 있는 서브계층의 개수가 최종 결정될 수 있다. 그 다음, 디코딩 순서에서, 디코딩이 가능하게 된 그러한 서브계층상의 선택된 계층 액세스 픽처의 뒤에 오는 픽처가 전송되지만, 디코딩 순서에서 디코딩이 가능하게 되지 않은 그러한 서브계층상의 선택된 계층 액세스 픽처의 뒤에 오는 픽처는 적합한 서브계층 액세스 픽처가 도달하기 전까지 무시된다.
디코딩하는 것 이외에 또는 그 대신에, 전술한 실시예 중 임의의 실시예에 따라서 인코딩된 비트스트림은 전송하는 장치(예를 들면, 스트리밍 서버)에 의해 및/또는 게이트웨이 장치에 의해 비트레이트 적응 방법에서 활용될 수 있다. 도 13에서 도시된 비트레이트 적응 방법에서, 제 1 스케일러빌리티 계층의 코딩된 픽처가 수신된다(1300). 제 2 스케일러빌리티 계층의 코딩된 픽처가 또한 수신되며(1302), 제 2 스케일러빌리티 계층은 제 1 스케일러빌리티 계층에 의존한다. 제 2 스케일러빌리티 계층상의 계층 액세스 픽처가 제 2 스케일러빌리티 계층의 코딩된 픽처로부터 선택되며(1304), 선택된 계층 액세스 픽처는 최저 시간 서브계층상의 단계별 시간 서브계층 액세스 픽처이다. 디코딩 순서에서, 선택된 계층 액세스 픽처에 앞서는 제 2 스케일러빌리티 계층상의 코딩된 픽처는 무시되며(1306), 제 1 스케일러빌리티 계층의 코딩된 픽처 및 선택된 계층 액세스 픽처는 비트스트림으로 전송된다(1308).
실시예에서, 도 12의 디코딩 방법은 다음과 같이 도 12에서 제시된 단계에 후속하는 단계에 덧붙일 수 있다. 서브계층의 디코딩이 선택된 계층 액세스 픽처에 의해 가능하게 된 서브계층의 개수가 최종 결정된다. 그 다음, 디코딩 순서에서, 디코딩이 가능하게 된 그러한 서브계층상의 선택된 계층 액세스 픽처의 뒤에 오는 픽처는 전송되지만, 디코딩 순서에서 디코딩이 가능하게 되지 않은 그러한 서브계층상의 선택된 계층 액세스 픽처의 뒤에 오는 픽처는 적합한 서브계층 액세스 픽처가 도달하기 전까지 무시된다.
실시예에 따르면, 계층 액세스 픽처는, 사용 사례에 따라서 하나 이상의 시간 서브계층을 가진 비트스트림의 디코딩의 계층별 초기화 또는 하나 이상의 시간 서브계층을 가진 비트스트림의 계층별 비트레이트 적응 중 어느 하나를 위해 액세스 포인트에 제공하는 단계별 시간 서브계층 액세스 픽처이다.
디코딩 프로세스는 제공된 디코딩을 위해 서브계층별 및 계층별 시작 프로세스의 연합으로 실행될 수 있다. 이러한 디코딩 시작 프로세스는 하나 이상의 계층을 가진 비트스트림의 디코딩을 서브계층별 초기화할 수 있게 한다.
그러므로 실시예에 따르면, 방법은 또한 기본 계층이 IRAP 픽처 또는 최저 서브계층상의 STSA 픽처를 포함하는데 대응하여 비트스트림의 디코딩을 시작하는 단계와, 상기 적어도 하나의 강화 계층이 IRAP층을 포함하는 것에 대응하여 상기 적어도 하나의 강화 계층의 단계별 디코딩을 시작하는 단계와, 디코딩된 계층의 개수 및/또는 디코딩된 시간 서브계층의 개수를 점진적으로 증가하는 단계를 포함한다. 여기서, 앞에서 설명한 바와 같이, 계층은 예를 들면 공간 해상도, 품질 레벨, 뷰, 깊이와 같은 부가 컴포넌트, 또는 앞의 것들의 임의의 조합에서 강화 계층과 같이 임의의 스케일러빌리티 차원 또는 차원들을 따라서 있는 강화 계층을 나타낼 수 있다.
실시예에 따르면, 방법은 또한 디코딩 순서에서 특정 강화 계층 내 첫 픽처의 참조 픽처에 이용 불가능한 픽처를 생성하는 단계를 포함한다.
대안의 실시예에 따르면, 방법은 또한 디코딩 순서에서 특정 강화 계층의 디코딩이 시작될 수 있는 IRAP 픽처에 선행하는 픽처의 디코딩을 생략하는 단계를 포함한다. 실시예에 따르면, 상기 생략된 픽처는 하나 이상의 특정 NAL 유닛 타입에 의해 표시가 붙을 수 있다. 이러한 픽처는 이들 픽처가 NAL 유닛 타입으로 특별하게 표시되든 아니면 예를 들어 디코더에 의해 암시되든 상관 없이 교차 계층 랜덤 액세스 스킵(CL-RAS) 픽처라고 지칭될 수 있다.
디코더는 생성된 이용 불가능한 픽처 및/또는 디코딩된 CL-RAS 픽처의 출력을 생략할 수 있다.
실시예에 따르면, 방법은 또한 각 계층의 서브계층이 올바로 디코딩되었다(즉, 초기화되었다)는 정보를 유지하는 단계를 포함한다. 예를 들면, 앞에서 제시된 계층별 시작 프로세스에서 사용되는 LayerInitializedFlag[ i ] 대신에, 각 계층 식별자 i마다 변수 HighestTidPlus1InitializedForLayer[ i ]가 유지될 수 있다. HighestTidPlus1InitializedForLayer[ i ]가 0이면, 시작 메커니즘이 가장 최근에 시작되었기 때문에 어떤 픽처도 식별자 i를 가진 계층에서 정확히 디코딩되지 않았다는 것을 표시할 수 있다. HighestTidPlus1InitializedForLayer[ i ] - 1이 0보다 크거나 같으면, 시작 메커니즘이 가장 최근에 시작되었기 때문에 정확히 디코딩된 픽처의 TemporalId 값이 최고값을 갖는다고 표시할 수 있다.
시작 프로세스는 앞에서 계층별 시작 메커니즘에 대해 설명된 것과 유사하게 또는 동등하게 개시될 수 있다. 계층별 시작 메커니즘이 개시될 때, DPB 내 모든 픽처는 "참조용으로 사용되지 않음"이라고 표시될 수 있다. 다시 말해서, 모든 계층 내 모든 픽처는 "참조용으로 사용되지 않음"으로 표시될 수 있으며 계층별 시작 메커니즘을 개시하는 픽처 또는 디코딩 순서에서 임의의 후속 픽처의 예측을 위한 참조로서 사용되지 않을 것이다.
시작을 위한 디코딩 프로세스는 예를 들면 (아마도 기본 계층을 제외하고 그리고 아마도 다른 종속 계층도 또한 제외한) 각 계층마다 엔트리를 가질 수 있는 두 개의 어레이 변수 HighestTidPlus1InitializedForLayer[ i ] 및 FirstPicInLayerDecodedFlag[ i ]에 의해 제어될 수 있다. 예를 들면, NoClrasOutputFlag가 1이 됨에 따라서 시작 프로세스가 호출될 때, 이와 같은 어레이 값은 그의 디폴트 값으로 리셋될 수 있다. 예를 들어, (6비트 nuh_layer_id에 따라) 64계층이 이용 가능하게 될 때, 변수는 다음과 같이 리셋될 수 있다. 즉 변수 HighestTidPlus1InitializedForLayer[ i ]는0부터 63까지 모두 포함하는 i의 모든 값에 대해 0으로 설정되며, 변수 FirstPicInLayerDecodedFlag[ i ]는 0부터 63까지 모두 포함하는 i의 모든 값에 대해 0으로 설정된다.
디코딩 프로세스는 RASL 픽처의 출력을 제어하기 위해 다음과 같은 것 또는 이와 유사한 것을 포함할 수 있다. 현재 픽처가 IRAP 픽처일 때, 다음과 같이 적용한다.
- 만일 HighestTidPlus1InitializedForLayer[ nuh_layer_id ]가 0이면, 변수 NoRaslOutputFlag는 1로 설정된다.
- 그렇지 않고, 만일 변수 HandleCraAsBlaFlag를 현재 픽처에 대한 값으로 설정하는 일부 외부 수단이 사용 가능하면, 변수 HandleCraAsBlaFlag는 외부 수단에 의해 제공된 값과 동일하게 설정되며 변수 NoRaslOutputFlag는 HandleCraAsBlaFlag과 동일하게 설정된다.
- 그렇지 않으면, 변수 HandleCraAsBlaFlag는 0으로 설정되고 변수 NoRaslOutputFlag는 0으로 설정된다.
실시예에 따르면, 단계별 디코딩을 시작하는 단계는 다음의 조건적 동작 중 하나 이상을 포함한다.
- 현재 픽처가 IRAP 픽처이고 IRAP 픽처의 모든 참조 계층의 디코딩이 시작되었을 때, 디코딩 순서에서 동일 계층 내 IRAP 픽처 및 그 뒤에 오는 모든 픽처는 디코딩된다.
- 현재 픽처가 최저 서브계층에 있는 STSA 픽처이고 STSA 픽처의 모든 참조 계층의 최저 서브계층의 디코딩이 시작되었을 때, 디코딩 순서에서 동일 계층 내 STSA 픽처 및 STSA 픽처에 뒤에 오는 최저 서브계층에 있는 모든 픽처는 디코딩된다.
- 현재 픽처가 최저 서브계층보다 높은 서브계층에 있는TSA 또는 STSA 픽처이고, 동일 계층에서 다음으로 낮은 서브계층의 디코딩이 시작되었으며, 그리고 TSA 또는 STSA 픽처의 모든 참조 계층의 동일한 서브계층의 디코딩이 시작되었을 때, 디코딩 순서에서 동일 계층 내 TSA 또는 STSA 픽처 및 TSA 또는 STSA 픽처에 뒤에 오는 동일 서브 계층에 있는 모든 픽처는 디코딩된다.
이러한 조건적 동작은 예를 들면 다음과 같이 더 자세하게 명시될 수 있다. 디코딩 프로세스는 계층의 HighestTidPlus1InitializedForLayer를 업데이트하기 위해 다음과 같은 것을 포함할 수 있다. 현재 픽처가 IRAP 픽처이고 다음 중 어느 하나가 참일 때, HighestTidPlus1InitializedForLayer[ nuh_layer_id ]는 최대 TemporalId 값 plus 1과 동일하게 설정된다(여기서 최대 TemporalId 값은 예를 들면 VPS에서 명시될 수 있거나 디코딩 표준에서 미리 정의되어 있을 수 있다).
- nuh_layer_id는 0이다.
- HighestTidPlus1InitializedForLayer[ nuh_layer_id ]는 0이며 HighestTidPlus1InitializedForLayer[ refLayerId ]는 RefLayerId[ nuh_layer_id ][ j ]와 동일한 refLayerId의 모든 값에 대해 최대 TemporalId 값 plus 1과 같다. 여기서 j는 0부터 NumDirectRefLayers[ nuh_layer_id ] - 1까지 모두 포함하여 그 범위에 있다.
현재 픽처가 TemporalId가 0인 STSA 픽처이고 다음 중 어느 하나가 참일 때, HighestTidPlus1InitializedForLayer[ nuh_layer_id ]는 1로 설정된다.
- nuh_layer_id는 0이다.
- HighestTidPlus1InitializedForLayer[ nuh_layer_id ]는 0이며 HighestTidPlus1InitializedForLayer[ refLayerId ]는 RefLayerId[ nuh_layer_id ][ j ]와 동일한 refLayerId의 모든 값에 대해 0보다 크다. 여기서 j는 0부터 NumDirectRefLayers[ nuh_layer_id ] - 1까지 모두 포함하여 그 범위에 있다.
현재 픽처가 TemporalId가 0보다 큰 TSA 픽처 또는 STSA 픽처이고 다음 중 모두 다 참일 때, HighestTidPlus1InitializedForLayer[ nuh_layer_id ]는 TemporalId + 1과 동일하게 설정된다.
- HighestTidPlus1InitializedForLayer[ nuh_layer_id ]는 TemporalId와 동일하다.
- HighestTidPlus1InitializedForLayer[ refLayerId ]는 RefLayerId[ nuh_layer_id ][ j ]와 동일한 refLayerId의 모든 값에 대해 TemporalId + 1보다 크거나 동일하다. 여기서 j는 0부터 NumDirectRefLayers[ nuh_layer_id ] - 1까지 모두 포함하여 그 범위에 있다.
FirstPicInLayerDecodedFlag[ nuh_layer_id ]가 0일 때, 이용 불가능한 참조 픽처를 생성하는 디코딩 프로세스는 현재 픽처를 디코딩하기 전에 호출될 수 있다. 이용 불가능한 참조 픽처를 생성하는 디코딩 프로세스는 디폴트 값을 가진 참조 픽처 세트 내 각 픽처마다 픽처를 생성할 수 있다. 이용 불가능한 참조 픽처를 생성하는 프로세스는 CL-CRA 픽처에 대한 신택스 제약사항의 사양에 관해서만 기본적으로 명시될 수 있으며, 여기서 CL-CRA 픽처는 nuh_layer_id가 layerId와 동일한 픽처로 정의될 수 있으며 LayerInitializedFlag[ layerId ]는 0이다. HRD 동작에서, CL-RAS 픽처는 CPB 등장 및 제거 시간을 도출할 때 고려해야 할 수 있다. 디코더는 임의의 CL-RAS 픽처를 무시할 수 있는데, 이것은 이들 픽처가 출력에 대해 명시되어 있지 않고 출력에 대해 명시된 임의의 다른 픽처의 디코딩 프로세스에 영향을 미치지 않기 때문이다.
디코딩이 아직 초기화되지 않은 그와 같은 nuh_layer_id (또는 이와 유사한 것) 및 TemporalId (또는 이와 유사한 것)를 가진 픽처는 디코더에 의해 출력되지 않는 방식으로 디코더에 의해 처리될 수 있다. 임의의 TemporalId (또는 이와 유사한 것) 값을 가진 nuh_layer_id(또는 이와 유사한 것)의 디코딩은 그 nuh_layer_id 값을 가진 IRAP 픽처가 있고 그 nuh_layer_id 값을 가진 계층의 모든 직접 참조 계층의 디코딩이 초기화되었을 때 초기화된 것으로 간주될 수 있다. nuh_layer_id (또는 이와 유사한 것) 및 TemporalId (또는 이와 유사한 것)의 디코딩은 그 nuh_layer_id 값 및 그 TemporalId 값을 가진 TSA 또는 STSA(또는 이와 유사한 것)가 있고 그 nuh_layer_id 값 및 그 TemporalId 값을 가진 계층의 모든 직접 참조 계층의 디코딩이 초기화되었을 때, 그리고 (TemporalId가 0보다 클 때) 그 nuh_layer_id 값 및 그 TemporalId 값 minus 1을 가진 계층의 디코딩이 초기화되었을 때 초기화된 것으로 간주될 수 있다. MV-HEVC, SHVC 및/또는 이와 유사한 코덱의 맥락에서, 픽처의 출력을 제어하는 것은 다음과 같이 또는 이와 유사한 방식으로 명시될 수 있다. TemporalId가 subLayerId와 동일하고 nuh_layer_id가 layerId와 동일한 픽처는 만일 픽처를 디코딩하기 시작할 때 HighestTidPlus1InitializedForLayer[ layerId ]가 subLayerId보다 크면 디코더에 의해 (예를 들면, PicOutputFlag를 1로 설정함으로써) 출력되도록 결정될 수 있다. 그렇지 않으면, 픽처는 디코더에 의해 (예를 들면, PicOutputFlag를 0으로 설정함으로써) 출력되지 않도록 결정될 수 있다. 픽처가 출력되게 결정하는 것은 또한 layerId가 타겟 출력 계층 세트의 출력 계층 중에 있는지 여부 및/또는 만일 연관된 출력 계층에서 픽처가 존재하지 않거나 출력되지 않으면 출력될 픽처가 대체 가능한 출력 계층 중에 있는지 여부에 의해서도 영향 받을 수 있다.
교차 계층 랜덤 액세스 스킵드(CL-RAS) 픽처는 subLayerId와 동일한 TemporalId를 가지며 그리고 픽처를 디코딩하기 시작할 때 HighestTidPlus1InitializedForLayer[ layerId ]가 subLayerId보다 큰 layerId와 동일한 nuh_layer_id를 가진 픽처인 것으로 정의될 수 있다. CL-RAS 픽처는 비트스트림에서 존재하지 않는 픽처에 대한 참조를 포함하고 있을 수 있기 때문에, CL-RAS 픽처는 이들 픽처가 출력되지 않으며 정확히 디코딩 가능하지 않을 수 있다는 특성을 가질 수 있다. CL-RAS 픽처는 비- CL-RAS 픽처의 디코딩 프로세스에 참조 픽처로서 이용되지 않는다고 명시될 수 있다.
실시예에 따르면, 계층 액세스 픽처는 인코더에 의해 단 하나의 계층만을 포함하는 비트스트림으로 인코딩될 수 있다. 예를 들면, 계층 액세스 픽처는 nuh_layer_id가 0이고 TemporalId가 0인 STSA 픽처일 수 있다.
실시예에 따르면, 디코더는 최저 계층에서 계층 액세스 픽처로부터 디코딩을 시작할 수 있다. 예를 들면, 디코더는 nuh_layer_id가 0이고 TemporalId가 0인 STSA로부터 디코딩을 시작할 수 있다. 디코딩은 예를 들면 앞에서 설명한 바와 같이, 서브계층별 시작을 포함할 수 있다. 예를 들면, 디코딩은 각 계층의 서브계층이 정확히 디코딩되었다는 (즉, 초기화되었다는) 정보를 유지하고, 적합한 계층 액세스 픽처, 서브계층 액세스 픽처, 또는 IRAP 픽처가 디코딩 순서에서 이용 가능할 때 다음으로 이용 가능한 서브계층 또는 계층으로 스위칭하는 것을 포함할 수 있다. 디코딩되는 비트스트림은 단 하나의 계층을 포함할 수 있거나 여러 계층을 포함할 수 있다.
비트레이트 적응 방법에서 실시예의 활용은 여러 예의 관점에서 논의된다.
도 14에서, 비트스트림은 도 8에서 도시된 것처럼 인코딩되었으며 송신기는 EL로부터 전송된 최대 TemporalId를 적응적으로 선택함으로써 비트레이트 조정을 수행한다고 가정한다. 제 1 GOP 동안, 아무런 EL 픽처도 전송되지 않는다. 제 2 GOP 동안, 송신기는 비디오 비트레이트를 증가시키기로 결정하고 가능한 많은 EL 서브계층을 전송한다. TID 0, 1 및 2에서 이용 가능한 STSA 픽처(즉, 각기 픽처1, A 및 B)가 있으므로, 송신기는 EL의 제 2 GOP로부터 시작하는 TID 0 내지 2를 가진 서브계층을 전송하기 위해 상향 스위칭한다. 강화 계층의 TID 3으로의 상향 스위칭은 나중에 EL IRAP 픽처 또는 TID가 3인 EL TSA 또는 STSA 픽처가 있을 때 일어날 수 있다. 만일 대체 가능한 출력 계층의 사용이 가능하게 되면, 본 예에서 픽처는 일정하게 "풀(full)" 픽처 레이트로 출력될 것이라는 것을 알아야 한다.
예를 들어 도 9에서 도시된 바와 같이, 만일 적어도 하나의 강화 계층이 기본 계층보다 빈번하게TSA 또는 STSA 픽처를 포함하도록 비트스트림이 인코딩되었다면, 송신기는 얼마나 많은 서브계층을 전송할지를 결정함으로써 계층별 방식으로 전송의 비트레이트를 동적으로 적응할 수 있다.
비트레이트 조정 또는 비트레이트 적응은 예를 들면 스트리밍 서비스에서 소위 빠른 시작을 제공하기 위해 사용될 수 있는데, 이러한 스트리밍 서비스에서 재생을 즉시 시작하기 위해 그리고 가끔씩 패킷 지연 및/또는 재전송을 용인하는 버퍼 점유 레벨을 달성하기 위해 전송된 스트림의 비트레이트는 스트리밍을 시작하거나 랜덤-액세스한 이후의 채널 비트레이트보다 낮다. 비트레이트 조정은 또한 전송된 스트림 비트레이트를 우세한 채널 처리량 비트레이트와 일치시킬 때 사용된다. 이와 같은 사용 사례에서, 더 나은 레이트 왜곡 수행을 달성하기 위해 기본 계층에서 더 많은 개수의 참조 픽처를 사용하는 것이 가능하다.
도 15의 예에서, 비트스트림은 도 9에서 도시된 바와 같이 인코딩되었으며 비트스트림이 전송될 때 제 1 GOP의 비트레이트를 줄일 필요가 있었다고 가정한다. 이와 같은 예에서, TemporalId(TID)가 0인 픽처만이 제 1 GOP 동안 전송된다. 또한 비트스트림은 제 2 GOP로부터 시작하여 풀 비트레이트로 전송될 수 있다고 가정한다. EL 에서 제 2 GOP는 TSA 픽처부터 시작하므로, 모든 TID 값을 가진 EL 픽처를 전송하기 시작하는 것이 가능하다.
도 16의 예에서, 도 10의 예에서 도시된 바와 같이, 특정 시간 레벨만이 인터-계층 예측에 이용될 때 맞추어 조정되지 않은 시간 서브계층 액세스 픽처가 인코딩되도록 비트스트림이 인코딩되었다고 가정한다. 또한 수신기는 강화 계층만이 출력 계층인 경우에 출력 계층 세트를 사용하며 그래서 인터-계층 예측을 위한 참조 픽처로서 이용되지 않는 BL 서브계층의 전송은 생략된다는 것을 송신기가 알고 있다고 가정한다. 또한 비트스트림이 전송될 때 제 1 GOP의 비트레이트를 줄이는 것이 필요했다고 가정한다. 본 예에서, 0부터 2까지 모두 포함하여 그 범위에 있는 TemporalId를 가진 EL 픽처는 제 1 GOP 동안 전송된다. 또한 비트스트림은 제 2 GOP로부터 시작하여 풀 비트레이트로 전송될 수 있다고 가정한다. EL에서 제 2 GOP는 TSA 픽처부터 시작하므로, 모든 TID 값을 가진 EL 픽처를 전송하기 시작하는 것이 가능하다.
도 17의 예에서, 도 11에서 도시된 바와 같이, 비트스트림은 예측 계층화가 계층 전체에서 상이하게 결정되도록 인코딩되었다고 가정한다. 또한 송신기는 전송된 비트스트림의 비트레이트를 조정하며, 이에 따라 송신기는 EL의 세 개의 서브계층(TID 0, 1, 및2)만을 선택하여 전송한다고 가정한다. 만일 대체 가능한 출력 계층의 사용이 가능하게 되면, 본 예에서, 픽처는 "풀' 픽처 레이트로 일정하게 출력될 것이라는 것을 알아야 한다.
도 18은 본 발명의 실시예를 적용하는데 적합한 비디오 디코더의 블록도를 도시한다. 도 18은 두 계층 디코더의 구조를 도시하지만, 디코딩 동작은 단일 계층 디코더에서도 유사하게 적용될 수 있다는 것이 인식될 것이다.
디코더(550)는 기본 뷰 컴포넌트용 제 1 디코더 부분(552) 및 비기본 뷰 컴포넌트용 제 2 디코더 부분(554)을 포함한다. 블록(556)은 기본 뷰 컴포넌트에 관한 정보를 제 1 디코더 부분(552)에 전달하고 비기본 뷰 컴포넌트에 관한 정보를 제 2 디코더 부분(544)에 전달하는 디멀티플렉서를 예시한다. 참조부호 P'n은 이미지 블록의 예측된 표현을 나타낸다. 참조부호 D'n은 재구성된 예측 오차 신호를 나타낸다. 블록(704, 804)은 예비적으로 재구성된 이미지(I'n)을 예시한다. 참조부호 R'n은 최종 재구성된 이미지를 나타낸다. 블록(703, 803)은 역변환(T1)을 예시한다. 블록(702, 802)은 역양자화(Q1)를 예시한다. 블록(701, 801)은 엔트로피 디코딩(E1)을 예시한다. 블록(705, 805)은 참조 프레임 메모리(reference frame memory, RFM)를 예시한다. 블록(706, 806)은 예측(P) (인터 예측 또는 인트라 예측 중 어느 하나)을 예시한다. 블록(707, 807)은 필터링(F)을 예시한다. 블록(708, 808)은 디코딩된 예측 오차 정보를 기본 뷰/비기본 뷰 컴포넌트와 결합하여 예비적으로 재구성된 이미지(I'n)를 취득하는데 사용될 수 있다. 예비적으로 재구성되고 필터링된 기본 뷰 이미지는 제 1 디코더 부분(552)으로부터의 출력(709)일 수 있으며 예비적으로 재구성되고 필터링된 기본 뷰 이미지는 제 1 디코더 부분(554)으로부터의 출력(809)일 수 있다.
도 20은 다양한 실시예가 구현될 수 있는 예시적인 멀티미디어 통신 시스템의 도표 형태의 표현이다. 데이터 소스(1510)는 소스 신호를 아날로그, 압축되지 않은 디지털, 또는 압축된 디지털 포맷, 또는 이러한 포맷들의 임의의 조합으로 제공한다. 인코더(1520)는 소스 신호의 데이터 포맷 변환 및/또는 필터링과 같은 전처리를 포함하거나 이와 연결될 수 있다. 인코더(1520)는 소스 신호를 코딩된 미디어 비트스트림으로 인코딩한다. 디코딩될 비트스트림은 가상적으로 임의의 종류의 네트워크 내부에 배치된 원격 디바이스로부터 직접 또는 간접적으로 수신될 수 있다는 것을 알아야 한다. 또한, 비트스트림은 국부적 하드웨어 또는 소프트웨어로부터 수신될 수 있다. 인코더(1520)는 오디오 및 비디오와 같은 하나보다 많은 미디어 타입을 인코딩할 수 있거나, 하나보다 많은 인코더(1520)가 여러 미디어 타입의 소스 신호를 코딩하는데 필요할 수 있다. 인코더(1520)는 또한 그래픽 및 텍스트와 같이 합성하여 만들어진 입력을 받을 수 있거나, 인코더는 합성 미디어의 코딩된 비트스트림을 생성할 수 있다. 아래에서는 간단한 설명을 위해 하나의 미디어 타입의 하나의 코딩된 미디어 비트스트림을 처리하는 것만이 고려된다. 그러나 전형적으로 실시간 방송 서비스는 여러 스트림(전형적으로 적어도 하나의 오디오, 비디오 및 텍스트 자막 스트림(sub-titling stream))을 포함한다는 것을 알아야 한다. 또한 시스템은 많은 인코더를 포함할 수 있지만, 본 도면에서는 일반성의 부족 없이 간단한 설명을 위해 단 하나의 인코더(1520)만이 표현된다는 것을 알아야 한다. 또한 본 명세서에서 포함된 본문과 예가 인코딩 프로세스를 명시적으로 설명할 수 있지만, 본 기술에서 통상의 지식을 가진 자라면 동일한 개념과 원리가 대응하는 디코딩 프로세스에도 적용되고 그 반대로도 가능하다는 것을 이해할 것이다.
코딩된 미디어 비트스트림은 저장소(1530)로 전달된다. 저장소(1530)는 코딩된 미디어 비트스트림을 저장하는 임의의 종류의 대량 메모리를 포함할 수 있다. 저장소(1530) 내의 코딩된 미디어 비트스트림의 포맷은 자체의 기본 비트스트림 포맷일 수 있거나, 하나 이상의 코딩된 미디어 비트스트림은 컨테이너 파일로 캡슐화될 수 있다. 하나 이상의 미디어 비트스트림이 컨테이너 파일로 캡슐화되면, 하나 이상의 미디어 비트스트림을 그 파일에 저장하고 마찬가지로 그 파일에 저장될 수도 있는 파일 포맷 메타데이터를 생성하는 파일 생성기(도면에 도시되지 않음)가 사용될 수 있다. 인코더(1520) 또는 저장소(1530)는 파일 생성기를 포함할 수 있거나, 파일 생성기는 선택사양으로 인코더(1520) 또는 저장소(1530) 중 어느 하나에 부착된다. 일부 시스템은 "생생하게" 동작하는데, 즉 코딩된 미디어 비트스트림을 저장하지 않고 인코더(1520)로부터 바로 송신기(1540)로 전달한다. 그러면 코딩된 미디어 비트스트림은 필요에 따라 서버라고도 지칭하는 송신기(1540)에 전달된다. 전송할 때 사용되는 포맷은 자체의 기본 비트스트림 포맷, 패킷 스트림 포맷일 수 있거나, 하나 이상의 코딩된 미디어 비트스트림은 컨테이너 파일로 캡슐화될 수 있다. 인코더(1520), 저장소(1530), 및 송신기(1540)는 동일한 물리 디바이스에서 상주할 수 있거나, 이들은 별개의 디바이스에서 포함될 수 있다. 인코더(1520) 및 송신기(1540)는 생생한 실시간 콘텐츠와 함께 동작할 수 있는데, 이 경우 코딩된 미디어 비트스트림은 통상 영구적으로 저장되지 않고, 그 대신 처리 지연, 전송 지연 및 코딩된 미디어 비트레이트의 변동을 완화하기 위해 짧은 기간 동안 콘텐츠 인코더(1520) 및/또는 송신기(1540)에서 버퍼링된다.
서버(1540)는 코딩된 미디어 비트스트림을 통신 프로토콜 스택을 사용하여 전송한다. 스택은 이것으로 제한되는 것은 아니지만 실시간 전송 프로토콜(Real-Time Transport Protocol, RTP), 사용자 데이터그램 프로토콜(User Datagram Protocol, UDP), 및 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol, HTTP), 전송 제어 프로토콜(Transmission Control Protocol, TCP), 인터넷 프로토콜(Internet Protocol, IP)을 포함할 수 있다. 통신 프로토콜 스택이 패킷 지향형일 때, 서버(1540)는 코딩된 미디어 비트스트림을 패킷으로 캡슐화한다. 예를 들면, RTP가 사용될 때, 서버(1540)는 코딩된 미디어 비트스트림을 RTP 패이로드 포맷에 따라 RTP 패킷으로 캡슐화한다. 전형적으로, 각 미디어 타입은 전용 RTP 패이로드 포맷을 갖는다. 시스템은 하나보다 많은 서버(1540)를 포함할 수 있지만, 간략하게 하기 위해 다음의 설명은 단 하나의 서버(1540)만 고려한다는 것을 또한 알아야 한다.
만일 미디어 콘텐츠가 저장소(1530)에 저장을 위해 또는 데이터를 송신기(1540)에 입력하기 위해 컨테이너 파일로 캡슐화되면, 송신기(1540)는 "송신용 파일 파서"(도면에 도시되지 않음)를 포함하거나 동작적으로 이것에 부착될 수 있다. 특히, 만일 컨테이너 파일이 이렇게 전송되지 않고 담겨있는 코딩된 미디어 비트스트림 중 적어도 하나의 코딩된 미디어 비트스트림이 통신 프로토콜을 통해 전송을 위해 캡슐화되면, 송신용 파일 파서는 코딩된 미디어 비트스트림의 적절한 부분을 찾아 통신 프로토콜을 통해 전달되도록 한다. 송신용 파일 파서는 또한 패킷 헤더 및 패이로드와 같이, 통신 프로토콜에 부합하는 포맷을 만드는데 도움이 될 수 있다. 멀티미디어 컨테이너 파일은 ISO 기본 미디어 파일 포맷(Base Media File Format)의 힌트 트랙과 같이, 통신 프로토콜에 의거하여 담겨있는 미디어 비트스트림 중 적어도 하나의 미디어 비트스트림을 캡슐화하기 위한 캡슐화 명령어를 포함할 수 있다.
서버(540)는 통신 네트워크를 통해 게이트웨이(1550)에 연결될 수 있거나 연결되지 않을 수 있다. 시스템은 일반적으로 임의의 개수의 게이트웨이 또는 이와 유사한 것을 포함할 수 있지만, 간략하게 하기 위해 다음의 설명은 하나의 게이트웨이(1550)만을 고려한다는 것을 알아야 한다. 게이트웨이(1550)는 하나의 통신 프로토콜 스택에 따라서 패킷 스트림을 다른 통신 프로토콜 스택으로 변환하고, 데이터 스트림을 병합하고 나누며, 지배적인 다운링크 네트워크 조건에 따라서 포워딩된 스트림의 비트 레이트를 조절하는 것과 같은 다운링크 및/또는 수신기 역량에 따라서 데이터 스트림을 조작하는 것과 같은 여러 종류의 기능을 수행할 수 있다. 게이트웨이(1550)의 예는 방송 전송신호를 지엽적으로 가정용 무선 네트워크에 포워딩하는 멀티포인트 회의 제어 유닛(multipoint conference control unit, MCU), 회선 교환 비디오 전화통신과 패킷 교환 비디오 전화통신 사이의 게이트웨이, PoC(Push-to-talk over Cellular) 서버, 휴대 디지털 비디오 방송(digital video broadcasting-handheld, DVB-H) 시스템 내 IP 캡슐화기, 또는 셋톱 박스를 포함한다. RTP가 사용될 때, 게이트웨이(1550)는 RTP 믹서 또는 RTP 변환기라고 호칭될 수 있으며 RTP 커넥션의 엔드포인트로서 작용할 수 있다.
시스템은 전형적으로 전송된 신호를 수신하고, 코딩된 미디어 비트스트림으로 복조하고, 탈캡슐화할 수 있는 하나 이상의 수신기(1560)를 포함한다. 코딩된 미디어 비트스트림은 기록 저장소(1570)로 전달된다. 기록 저장소(1570)는 코딩된 미디어 비트스트림을 저장하는 임의의 종류의 대량 메모리를 포함할 수 있다. 기록 저장소(1570)는 이와 달리 또는 부가적으로 랜덤 액세스 메모리와 같은 연산 메모리를 포함할 수 있다. 기록 저장소(1570) 내의 코딩된 미디어 비트스트림의 포맷은 자체의 기본 비트스트림 포맷일 수 있거나, 하나 이상의 코딩된 미디어 비트스트림은 컨테이너 파일로 캡슐화될 수 있다. 만일 오디오 스트림 또는 비디오 스트림과 같이, 서로 연관된 다중 코딩된 미디어 비트스트림이 있으면, 전형적으로 컨테이너 파일이 사용되며 수신기(1560)는 입력 스트림으로부터 컨테이너 파일을 생성하는 컨테이너 파일 발생기를 포함하거나 컨테이너 파일 발생기에 부착될 수 있다. 일부 시스템은 "생생하게" 동작하는데, 즉 기록 저장소(1570)에 저장하지 않고 코딩된 미디어 비트스트림을 수신기(1560)로부터 바로 디코더(1580)로 전달한다. 일부 시스템에서, 기록된 스트림 중 가장 최근 부분, 예를 들면, 기록된 스트림 중 가장 최근 10분의 발췌 부분이 기록 저장소(1570) 내에 보존되는데 반해, 임의의 이전에 기록된 데이터는 기록 저장소(1570)로부터 폐기된다.
코딩된 미디어 비트스트림은 기록 저장소(1570)로부터 디코더(1580)로 전달된다. 만일 오디오 스트림 및 비디오 스트림과 같이 서로 연관되고 컨테이너 파일 또는 단일의 미디어 비트스트림으로 캡슐화된 코딩된 미디어 비트스트림이 많으면, 컨테이너 파일로부터 각각의 코딩된 미디어 비트스트림을 탈캡슐화하는 파일 파서(도면에 도시되지 않음)가 사용된다. 기록 저장소(1570) 또는 디코더(1580)는 파일 파서를 포함할 수 있거나, 파일 파서는 기록 저장소(1570) 또는 디코더(1580) 중 어느 하나에 부착될 수 있다. 시스템은 많은 디코더를 포함할 수 있지만, 본 명세서에서 일반성의 부족 없이 간략한 설명을 위해 단 하나의 디코더(1570)만이 논의된다는 것을 또한 알아야 한다.
코딩된 미디어 비트스트림은 하나 이상의 압축되지 않은 미디어 스트림을 출력하는 디코더(1580)에 의해 추가로 처리될 수 있다. 마지막으로, 렌더러(1590)는 예를 들면 스피커 또는 디스플레이와 함께 압축되지 않은 미디어 스트림을 재생할 수 있다. 수신기(1560), 기록 저장소(1570), 디코더(1570), 및 렌더러(1590)는 동일한 물리 디바이스에서 상주할 수 있거나 별개의 디바이스에서 포함될 수 있다.
송신기(1540) 및/또는 게이트웨이(1550)는 설명된 다양한 실시예에 따라서 비트레이트 적응을 수행하도록 구성될 수 있고, 그리고/또는 송신기(1540) 및/또는 게이트웨이(1550)는 다양한 실시예에 따라서 스케일러블 비디오 비트스트림의 전송된 계층 및/또는 서브계층을 선택하도록 구성될 수 있다. 전송된 계층 및/또는 서브계층의 비트레이트 적응 및/또는 선택은 여러 가지 이유로, 이를테면 수신기(1560)의 요청에 응답하여 또는 비트스트림이 전달되는 네트워크의 처리량과 같은 지배적인 조건에 따라서 이루어질 수 있다. 수신기로부터의 요청은 예를 들면, 전송된 스케일러빌리티 계층 및/또는 서브계층의 변경 요청, 또는 이전의 성능과 비교하여 상이한 성능을 갖는 렌더링 디바이스로의 교환 요청일 수 있다.
디코더(1580)는 설명된 다양한 실시예에 따라서 비트레이트 적응을 수행하도록 구성될 수 있고, 그리고/또는 디코더(1580)는 다양한 실시예에 따라서 스케일러블 비디오 비트스트림의 전송된 계층 및/또는 서브계층을 선택하도록 구성될 수 있다. 전송된 계층 및/또는 서브계층의 비트레이트 적응 및/또는 선택은 여러 가지 이유로, 이를테면 더 빠른 디코딩 동작을 성취하기 위해 이루어질 수 있다. 더 빠른 디코딩 동작은 예를 들면 디코더(580)를 포함하는 디바이스가 다중 작업 중이며 스케일러블 비디오 스트림을 디코딩하는 것과 다른 목적을 위해 연산 자원을 사용하는 경우 필요할 수도 있다. 다른 예에서, 더 빠른 디코딩 동작은 콘텐츠가 정상 재생 속도보다 빠른 속도로, 예를 들면 통상의 실시간 재생 속도보다 두 배 또는 세배 빠르게 재생될 때 필요할 수도 있다.
이용 가능한 미디어 파일 포맷 표준은 ISO 기본 미디어 파일 포맷(ISO/IEC 14496-12, ISOBMFF로 약칭될 수 있음), MPEG-4 파일 포맷(ISO/IEC 14496-14, MP4 포맷이라고도 알려져 있음), NAL 유닛 구성 비디오(NAL unit structured video)용 파일 포맷(ISO/IEC 14496-15) 및 3GPP 파일 포맷(3GPP TS 26.244, 3GP 포맷이라고도 알려져 있음)을 포함한다. SVC 및 MVC 파일 포맷은 AVC 파일 포맷의 개정이라고 명시되어 있다. ISO 파일 포맷은 (ISO 파일 포맷 자체를 제외하고) 전술한 모든 파일 포맷을 도출하기 위한 기본 포맷이다. (ISO 파일 포맷 자체를 비롯한) 이러한 파일 포맷은 일반적으로 ISO 파일 포맷 패밀리라고 호칭된다.
ISO 기본 미디어 파일 포맷에서 기본적인 빌딩 블록은 박스(box)라고 호칭된다. 각각의 박스는 헤더 및 패이로드를 갖는다. 박스 헤더는 박스의 타입을 표시하며 박스의 크기를 바이트의 관점에서 표시한다. 박스는 다른 박스를 동봉할 수 있으며, ISO 파일 포맷은 특정 타입의 박스 내에 어느 박스 타입이 허용되는지를 명시한다. 그뿐만 아니라, 몇몇 박스의 존재는 각 파일에서 의무적일 수 있는데 반해, 다른 박스의 존재는 선택사양일 수 있다. 또한, 몇몇 박스 타입에 대해, 하나보다 많은 박스가 파일 내에 존재하는 것이 허용될 수 있다. 그래서 ISO 기본 미디어 파일 포맷은 박스의 계층을 명시하는 것이라고 간주될 수 있다.
ISO 파일 포맷 패밀리에 따르면, 파일은 별개의 박스 내에 동봉된 미디어 데이터 및 메타데이터를 포함한다. 예시적인 실시예에서, 미디어 데이터는 미디어 데이터(mdat) 박스에서 제공될 수 있으며 무비(movie)(moov) 박스는 메타데이터를 동봉하는데 사용될 수 있다. 일부 사례에서, 파일이 작동하기 위해서는 mdat 및 moov 박스가 둘 다 존재하여야 한다. 무비(moov) 박스는 하나 이상의 트랙을 포함할 수 있으며, 각각의 트랙은 하나의 대응하는 트랙 박스에서 상주할 수 있다. 트랙은 다음과 같은 타입 즉, 미디어(media), 힌트(hint), 시한 메타데이터(timed metadata) 중 하나일 수 있다. 미디어 트랙은 미디어 압축 포맷(및 그의 ISO 기본 미디어 파일 포맷으로의 캡슐화)에 따라서 포맷된 샘플을 말한다. 힌트 트랙은 힌트 샘플을 말하며, 이것은 지정된 통신 프로토콜을 통해 전송하기 위한 패킷을 구성하기 위한 쿡북 명령어(cookbook instruction)를 담고 있다. 쿡북 명령어는 패킷 헤더 구성을 위한 안내를 포함할 수 있으며 패킷 패이로드 구성을 포함할 수 있다. 패킷 패이로드 구성에서, 다른 트랙 또는 아이템에 상주하는 데이터가 참조될 수 있다. 이와 같이, 예를 들면, 다른 트랙 또는 아이템에 상주하는 데이터는 특정 트랙 또는 아이템 내 한 조각의 데이터가 패킷 구성 프로세스 동안 패킷으로 복사되도록 하는 명령을 받는 지에 관해 참조로 표시될 수 있다. 시한 메타데이터 트랙은 언급된 미디어를 서술하는 샘플 및/또는 힌트 샘플을 말한다. 하나의 미디어 타입을 보여주기 위해서는 통상 하나의 미디어 트랙이 선택된다. 트랙의 샘플은 샘플의 지정된 디코딩 순서에서 1씩 증분되는 샘플 번호와 묵시적으로 연관될 수 있다. 트랙에서 첫 샘플은 샘플 번호 1과 연관될 수 있다.
ISO 기본 미디어 파일 포맷에 따라서 간략화된 파일 구조의 예가 다음과 같이 설명될 수 있다. 파일은 moov 박스 및 mdat 박스를 포함할 수 있으며 moov 박스는 비디오 및 오디오에 각기 대응하는 하나 이상의 트랙을 포함할 수 있다.
ISO 기본 미디어 파일 포맷은 하나의 파일에 담길 프리젠테이션을 한정하지 않는다. 이와 같이, 프리젠테이션은 여러 파일 내에 포함될 수 있다. 예로서, 하나의 파일은 전체 프리젠테이션에 필요한 메타데이터를 포함할 수 있으며 그럼으로써 프리젠테이션을 완비한 모든 미디어 데이터를 포함할 수 있다. 만일 다른 파일이 사용된다면, 다른 파일은 ISO 기본 미디어 파일 포맷으로 포맷될 필요가 없을 수 있으며, 미디어 데이터를 포함하는데 사용될 수 있고, 또한 미사용된 미디어 데이터 또는 다른 정보를 포함할 수 있다. ISO 기본 미디어 파일 포맷은 프리젠테이션 파일 단독의 구조에 관련된다. 미디어데이터 파일의 포맷은 미디어파일 내 미디어 데이터가 ISO 기본 미디어 파일 포맷 또는 그의 변형 포맷에서 명시된 바와 같이 포맷된다는 점에서 ISO 기본 미디어 파일 포맷 또는 그의 변형 포맷에 의해서만 제한될 수 있다.
외부 파일을 참조하는 기능은 데이터 참조를 통해 실현될 수 있다. 일부 예에서, 각 트랙에 포함된 샘플 서술 박스는 샘플 엔트리의 리스트 - 각 샘플 엔트리는 사용된 코딩 타입에 관한 상세 정보를 제공함 - 및 그 코딩에 필요한 임의의 초기화 정보를 제공할 수 있다. 청크(chunk)의 모든 샘플 및 트랙 세그먼트(track fragment)의 모든 샘플은 동일한 샘플 엔트리를 사용할 수 있다. 청크는 하나의 트랙에 대해 연속하는 샘플 집합이라고 정의될 수 있다. 각 트랙에 포함되기도 하는 데이터 참조(Data Reference)(dref) 박스는 URL(uniform resource locator), URN(uniform resource name), 및/또는 메타데이터를 가진 파일로의 자기 참조(self-reference)의 색인된 리스트를 정의할 수 있다. 샘플 엔트리는 데이터 참조 박스의 한 인덱스를 가리킬 수 있으며, 그럼으로써 각각의 청크 또는 트랙 세그먼트의 샘플을 가진 파일을 표시할 수 있다.
무비 프래그먼트(movie fragment)는 콘텐츠를 ISO 파일에 기록할 때 기록 동작의 중단, 메모리 공간의 고갈, 또는 일부 다른 사건이 발생하는 경우 데이터 유실을 방지하기 위해 사용될 수 있다. 무비 프래그먼트가 없으면, 파일 포맷은 전형적으로 모든 메타데이터, 예를 들면 무비 박스가 파일의 하나의 연속 영역에 기록되어야 하기 때문에 데이터 손실이 발생할 수 있다. 그뿐만 아니라, 파일을 기록할 때, 이용 가능한 저장소의 크기에 맞추어 무비 박스를 버퍼하는 메모리 공간 양(예를 들면, RAM)이 충분하지 않을 수 있으며, 무비가 끝날 때 무비 박스의 콘텐츠를 재연산하는 것이 너무 느릴 수 있다. 더욱이, 무비 프래그먼트는 정규 ISO 파일 파서를 사용하여 파일의 동시적인 기록 및 재생을 가능하게 할 수 있다. 마지막으로, 초기 버퍼링의 지속기간을 더 작게 하는 것은 무비 프래그먼트가 사용될 때 그리고 동일한 미디어 콘텐츠를 갖되 무비 프래그먼트 없이 구성된 파일과 비교하여 초기의 무비 박스가 더 작을 때, 프로그래시브 다운로딩(progressive downloading), 예를 들면 파일의 동시적인 수신 및 재생에 필요할 수 있다.
무비 프래그먼트 특징은 관례적으로 무비 박스에 상주하는 메타데이터를 여러 조각으로 분리할 수 있게 할 수 있다. 각 조각은 트랙의 특정 기간에 대응할 수 있다. 다시 말해서, 무비 프래그먼트 특징은 파일 메타데이터와 미디어 데이터를 인터리빙할 수 있게 할 수 있다. 그 결과, 무비 박스의 크기는 제한될 수 있으며 앞에서 언급한 사용 사례가 실현된다.
일부 예에서, 무비 프래그먼트의 미디어 샘플은 만일 미디어 샘플이 moov 박스와 동일한 파일 내에 있다면, 보통 mdat 박스에 상주할 수 있다. 그러나 무비 프래그먼트의 메타데이터를 위해, moof 박스가 제공될 수 있다. moof 박스는 재생 시간의 어떤 지속기간 동안 이전에 moov 박스에서 있었을 정보를 포함할 수 있다. moov 박스는 유효한 무비를 그 자체에서 여전히 보여줄 수 있으며, 그렇지만 이것 이외에도, moov 박스는 무비 프래그먼트가 동일한 파일에서 뒤에 나올 것임을 표시하는 mvex 박스를 포함할 수 있다. 무비 프래그먼트는 연관된 프리젠테이션을 제시간에 moov 박스로 확장할 수 있다.
무비 프래그먼트 내에는 어디든 트랙당 제로부터 복수 개까지를 포함하는 한 세트의 트랙 프래그먼트가 있을 수 있다. 궁극적으로 트랙 프래그먼트는 어디든 제로부터 복수개의 트랙 런(track run)을 포함할 수 있고, 각 트랙 런 문서는 그 트랙에 대해 샘플들의 인접 런이다. 이러한 구조 내에서, 많은 필드는 선택사양이며 디폴트로 될 수 있다. moof 박스에 포함될 수 있는 메타데이터는 moov 박스에 포함될 수 있고 그리고 일부 사례에서는 다르게 코딩될 수 있는 메타데이터의 서브세트로 제한될 수 있다. moof 박스에 포함될 수 있는 박스에 관한 상세 내용은 ISO 기본 미디어 파일 포맷 사양서로부터 찾아 볼 수 있다.
ISO 기본 미디어 파일 포맷 및 그의 변형에서, 이를테면 AVC 파일 포맷 및 SVC 파일 포맷에서 샘플 그룹핑은 그룹핑 기준에 기초하여, 트랙 내 각 샘플을 하나의 샘플 그룹의 일원이 되게 할당하는 것이라고 정의될 수 있다. 샘플 그룹핑 시 샘플 그룹은 샘플에 인접하는 것으로 제한되지 않으며 인접하지 않은 샘플들을 포함할 수 있다. 트랙 내 샘플에 대하여 하나보다 많은 샘플 그룹핑이 있을 수 있으므로, 각 샘플 그룹핑은 그룹핑 타입을 표시하는 타입 필드를 갖는다. 샘플 그룹핑은 두 개의 링크된 데이터 구조에 의해 표현될 수 있다. 즉, (1) SampleToGroup 박스(sbgp 박스)는 샘플을 샘플 그룹에 할당하는 것을 나타내며, (2) SampleGroupDescription 박스(sgpd 박스)는 그룹의 속성을 서술하는 각 샘플 그룹마다 샘플 그룹 엔트리를 포함한다. 다른 그룹핑 기준에 기초하여 SampleToGroup 및 SampleGroupDescription 박스의 여러 인스턴스가 있을 수 있다. 이들 박스는 그룹핑 타입을 표시하기 위해 사용되는 타입 필드로 구별된다.
샘플 그룹 박스(SampleGroupDescription Box 및 SampleToGroup Box)는 무비(moov) 박스 내에서 (이 순서대로) 미디어 정보(minf), 미디어(mdia), 및 트랙(trak) 박스 내에 동봉된다. SampleToGroup 박스는 무비 프래그먼트 내에 상주하는 것이 가능하다. 그래서 샘플 그룹핑은 프래그먼트별로 수행될 수 있다.
서로 독립적으로 또는 서로 함께 적용될 수 있는 실시예에서, 파일 생성기와 같은 인코더 또는 다른 엔티티는 하나 이상의 계층 액세스 픽처의 표시를 컨테이너 파일로 인코딩하거나 컨테이너 파일에 삽입하는데, 이 컨테이너 파일은 예를 들면 ISO 기본 미디어 파일 포맷 및 이 포맷의 아마도 변형 파일 포맷 중 일부 포맷에 순응할 수 있다. 계층 액세스 픽처들의 샘플 그룹핑은 예를 들면 명시될 수 있거나, 아니면 계층 액세스 픽처는 예를 들면 표시 랜덤 액세스 포인트들의 다른 더 많은 일반적인 샘플 그룹핑 내에서 표시될 수 있다.
일부 실시예에서, 미디어 플레이어 또는 파일 파서와 같은 디코더 또는 다른 엔티티는 하나 이상의 계층 액세스 픽처의 표시를 컨테이너 파일로 디코딩하거나 페치할 수 있으며, 이 컨테이너 파일은 예를 들면 ISO 기본 미디어 파일 포맷 및 이 포맷의 아마도 변형 파일 포맷 중 일부 포맷에 순응할 수 있다. 예를 들면, 표시는 계층 액세스 픽처들의 샘플 그룹핑으로부터, 또는 예를 들면 계층 액세스 픽처를 또한 표시할 수 있는 표시 랜덤 액세스 포인트들의 다른 더 많은 일반적인 샘플 그룹핑으로부터 구할 수 있다. 표시는 표시가 그와 연관된 계층의 디코딩 또는 다른 처리를 시작시키는데 사용될 수 있다.
스케일러블 비디오 코딩을 위한 액세스 유닛은 이것으로 제한되는 것은 아니지만 앞에서 설명된 바와 같은 HEVC에 필요한 액세스 유닛의 정의를 비롯한 다양한 방법으로 정의될 수 있다. 실시예는 액세스 유닛의 다른 정의와 함께 적용될 수 있다. 예를 들면, HEVC의 액세스 유닛 정의는 액세스 유닛이 동일한 출력 시간과 연관되고 동일한 계층 트리에 속하는 코딩된 픽처를 포함하는 것이 필요하도록 완화될 수 있다. 비트스트림이 여러 계층 트리를 가질 때, 액세스 유닛은 그럴 수도 있지만 동일한 출력 시간과 연관되고 다른 계층 트리에 속하는 코딩된 픽처를 포함해야 하는 것은 아니다.
앞에서, 일부 실시예는 예로서 MV-HEVC, SHVC 및/또는 이와 유사한 코덱을 사용하여 설명되었으며, 그 결과 MV-HEVC, SHVC 및/또는 이와 유사한 코덱에 특유한 몇몇 용어, 변수, 신택스 요소, 및 픽처 타입 등이 사용되었다. 실시예는 다른 코딩 표준 및/또는 방법의 유사한 용어, 변수, 신택스 요소, 및 픽처 타입으로 실현될 수도 있다는 것을 이해하여야 한다. 예를 들면, 앞에서, 일부 실시예는 nuh_layer_id 및/또는 TemporalId를 참조하여 설명되었다. 실시예는 각자의 계층 식별자 및/또는 서브계층 식별자에 대해 임의의 다른 표시, 신택스 요소, 및/또는 변수로 실현될 수도 있다는 것을 이해하여야 한다.
앞에서, 일부 실시예는 최저 시간 서브계층상의 단계별 시간 서브계층 액세스 픽처를 참조하여 설명되었다. 실시예는 계층의 픽처의 서브세트에 대해, 이를테면 특정하지만 그렇다고 반드시 계층의 모든 서브계층이 아닌 서브세트에 대해 올바른 디코딩 성능을 제공하는 계층 액세스 픽처의 임의의 타입으로 유사하게 실현될 수도 있다.
앞에서, 일부 실시예는 표시, 신택스 요소, 및/또는 신택스 구조를 비트스트림으로 또는 코딩된 비디오 시퀀스로 인코딩하는 것 및/또는 비트스트림으로부터 또는 코딩된 비디오 시퀀스로부터 표시, 신택스 요소, 및/또는 신택스 구조를 디코딩하는 것과 관련하여 설명되었다. 그러나 실시예는 표시, 신택스 요소, 및/또는 신택스 구조를 코딩된 슬라이스와 같은 비디오 코딩 계층 데이터를 포함하는 비트스트림 또는 코딩된 비디오 시퀀스와 동떨어진 신택스 구조 또는 데이터 비트스트림으로 인코딩할 때, 그리고/또는 코딩된 슬라이스와 같은 비디오 코딩 계층 데이터를 포함하는 비트스트림 또는 코딩된 비디오 시퀀스와 동떨어진 신택스 구조 또는 데이터 유닛으로부터 표시, 신택스 요소, 및/또는 신택스 구조를 디코딩할 때 실현될 수도 있다는 것을 이해하여야 한다.
앞에서, 예시적인 실시예가 인코더를 참조하여 설명되는 경우, 결과로 생긴 비트스트림 및 디코더는 자체 내에 대응하는 요소를 갖고 있을 수 있다는 것을 이해하여야 한다. 마찬가지로, 예시적인 실시예가 디코더를 참조하여 설명되는 경우, 인코더는 디코더에 의해 디코딩될 비트스트림을 발생하기 위한 구조 및/또는 컴퓨터 프로그램을 갖고 있다는 것을 이해하여야 한다.
앞에서 설명된 본 발명의 실시예는 연루된 프로세스를 이해하는 데 도움을 주기 위해서 개별적인 인코더 및 디코더 장치의 관점에서 코덱을 설명한다. 그러나 장치, 구조 및 동작은 단일의 인코더-디코더 장치/구조/동작으로서 구현될 수 있다는 것이 인식될 것이다. 그뿐만 아니라, 코더 및 디코더는 일부 또는 모든 공통 요소를 공유할 수 있다.
앞의 예가 전자 디바이스 내부의 코덱 내부에서 동작하는 본 발명의 실시예를 기술할지라도, 청구범위에서 정의되는 바와 같은 본 발명은 임의의 비디오 코덱의 일부로서 구현될 수 있다는 것이 인식될 것이다. 그러므로 예를 들어, 본 발명의 실시예는 고정 또는 유선 통신 경로를 통해 비디오 코딩을 구현할 수 있는 비디오 코덱에서 구현될 수 있다.
그래서 사용자 장비는 전술한 본 발명의 실시예에서 설명된 바와 같은 비디오 코덱을 포함할 수 있다. 사용자 장비라는 용어는 이동 전화, 휴대용 데이터 처리 디바이스 또는 휴대용 웹 브라우저와 같은 임의의 적합한 종류의 무선 사용자 장비를 망라하는 것으로 의도하는 것이 인식될 것이다.
그뿐만 아니라 공중 육상 모바일 네트워크(public land mobile network, PLMN)의 요소 또한 전술한 바와 같은 비디오 코덱을 포함할 수 있다.
일반적으로, 본 발명의 다양한 실시예는 하드웨어 또는 특수 목적 회로, 소프트웨어, 로직 또는 이들의 임의의 조합으로 구현될 수 있다. 예를 들면, 비록 본 발명이 이것으로 제한되는 것은 아니지만, 일부 양태는 하드웨어로 구현될 수 있는데 반해, 다른 양태는 컨트롤러, 마이크로프로세서 또는 다른 컴퓨팅 디바이스에 의해 실행될 수 있는 펌웨어 또는 소프트웨어에서 구현될 수 있다. 본 발명의 다양한 양태가 블록도, 플로우 차트로서 또는 일부 다른 회화적 표현을 이용하여 예시되고 설명될 수 있지만, 본 명세서에서 설명된 이와 같은 블록, 장치, 시스템, 기술 또는 방법은, 비제한적인 예로서, 하드웨어, 소프트웨어, 펌웨어, 특수 목적 회로나 로직, 범용 하드웨어나 컨트롤러나 다른 컴퓨팅 디바이스, 또는 이들의 일부 조합으로 구현될 수 있다는 것 또한 물론이다.
본 발명의 실시예는 프로세서 엔티티에서와 같은 모바일 디바이스의 데이터 프로세서에 의해 실행가능한 컴퓨터 소프트웨어에 의해, 또는 하드웨어에 의해, 또는 소프트웨어와 하드웨어의 조합에 의해 구현될 수 있다. 또한, 이 점에서, 도면에서처럼 로직 흐름의 임의의 블록은 프로그램 단계, 또는 상호연결된 로직 회로, 블록 및 기능, 또는 프로그램 단계와 로직 회로, 블록 및 기능의 조합을 표현할 수 있다는 것을 주목하여야 한다. 소프트웨어는 메모리 칩, 또는 프로세서 내부에서 구현된 메모리 블록과 같은 물리적 매체, 하드 디스크나 플로피 디스크와 같은 자기 매체, 그리고 예를 들어 DVD 및 그의 데이터 변형체인 CD와 같은 광학 매체상에 저장될 수 있다.
메모리는 지엽적인 기술 환경에 적합한 임의의 종류를 가질 수 있으며 반도체 기반 메모리 디바이스, 자기 메모리 디바이스 및 시스템, 광학 메모리 디바이스 및 시스템, 고정 메모리 및 분리가능한 메모리와 같은 임의의 적합한 데이터 저장 기술을 이용하여 구현될 수 있다. 데이터 프로세서는 지엽적인 기술 환경에 적합한 임의의 종류를 가질 수 있으며, 비제한적인 예로서 범용 컴퓨터, 특수 목적 컴퓨터, 마이크로프로세서, 디지털 신호 프로세서(digital signal processor, DSP) 및 멀티-코어 프로세서 아키텍처에 기반한 프로세서 중 하나 이상을 포함할 수 있다.
본 발명의 실시예는 집적 회로 모듈과 같은 다양한 컴포넌트에서 실시될 수 있다. 집적 회로의 디자인은 대체로 고도로 자동화된 프로세스이다. 복잡하고 강력한 소프트웨어 툴은 로직 레벨 디자인을 반도체 기판 상에서 에칭되어 형성되도록 준비된 반도체 회로 디자인으로 변환하는데 이용할 수 있다.
캘리포니아 마운틴 뷰 소재의 시놉시스 인코포레이티드(Synopsys Inc.)와 캘리포니아 산호세 소재의 카덴스 디자인(Cadence Design)에 의해 제공된 것과 같은 프로그램은 잘 구축된 디자인 룰뿐만 아니라 미리 저장된 디자인 모듈의 라이브러리를 이용하여 자동으로 전도체를 경로설정하고 반도체 칩상에 컴포넌트를 배치한다. 일단 반도체 회로의 디자인이 완성되면, 표준화된 전자 포맷(예를 들면, Opus 또는 GDSII 등)의 결과적인 디자인은 반도체 제조 설비 또는 제조용 "팹(fab)"으로 전달될 수 있다.
전술한 설명은 본 발명의 예시적인 실시예의 풍부하고 유익한 설명을 예시적이고 비제한적인 예로서 제공하였다. 그러나 첨부 도면 및 첨부의 청구범위와 함께 읽어볼 때 전술한 설명에 비추어 관련 기술에서 통상의 지식을 가진 자에게는 다양한 수정과 적응이 자명해질 수 있다. 그러나 그럼에도 본 발명의 가르침의 그러한 모든 변형은 본 발명의 범주 내에 속할 것이다.

Claims (46)

  1. 하나 이상의 시간 서브계층(temporal sub-layer)을 포함하는 제 1 스케일러빌리티 계층(scalability layer)의 코딩된 픽처를 수신하는 단계와,
    상기 제 1 스케일러빌리티 계층의 코딩된 픽처를 디코딩하는 단계와,
    하나 이상의 시간 서브계층을 포함하는 제 2 스케일러빌리티 계층의 코딩된 픽처를 수신하는 단계 - 상기 제 2 스케일러빌리티 계층은 상기 제 1 스케일러빌리티 계층에 의존함 - 와,
    상기 제 2 스케일러빌리티 계층의 코딩된 픽처로부터 상기 제 2 스케일러빌리티 계층 상의 계층 액세스 픽처를 선택하는 단계 - 상기 선택된 계층 액세스 픽처는 최저 시간 서브계층(lowest temporal sub-layer) 상의 단계별 시간 서브계층 액세스(step-wise temporal sub-layer access, STSA) 픽처이고, 상기 STSA 픽처는 동일 시간 서브계층에서 디코딩 순서상 후속 픽처가 디코딩될 수 있게 하며, 상기 STSA 픽처에 앞선 상기 동일 시간 서브계층 상의 어떠한 픽처로부터의 인터-예측도 허용되지 않음 - 와,
    디코딩 순서에서 상기 선택된 계층 액세스 픽처에 앞서는 상기 제 2 스케일러빌리티 계층 상의 코딩된 픽처를 무시하는 단계와,
    상기 선택된 계층 액세스 픽처를 디코딩하고, 상기 동일 시간 서브계층 또는 보다 높은 시간 서브계층 상에 디코딩 순서상 후속 픽처가 존재하는 경우 상기 후속 픽처를 디코딩하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 단계별 시간 서브계층 액세스 픽처는 하나 이상의 시간 서브계층을 가진 비트스트림의 디코딩의 계층별 초기화를 위한 액세스 포인트를 제공하는
    방법.
  3. 제 1 항에 있어서,
    상기 단계별 시간 서브계층 액세스 픽처는 하나 이상의 시간 계층을 가진 비트스트림의 계층별 비트레이트 적응(bitrate adaption)을 위한 액세스 포인트를 제공하는
    방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 선택하는 단계는 단계별 시간 서브계층 액세스 픽처를 나타내는 네트워크 액세스 계층(Network Access Layer, NAL) 유닛 타입 및 상기 최저 시간 서브계층을 나타내는 시간 서브계층 식별자에 기초하여 픽처가 상기 단계별 시간 서브계층 액세스 픽처라고 결정하는 단계를 포함하는
    방법.
  5. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    비트스트림과 함께 제공되는 특정 NAL 유닛 타입에 속하는 상기 단계별 시간 서브계층 액세스 픽처에 관한 표시를 수신하는 단계를 더 포함하는
    방법.
  6. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    디코딩 가능한 서브계층의 개수를 정의하는 SEI 메시지를 가진 상기 단계별 시간 서브계층 액세스 픽처에 관한 표시를 수신하는 단계를 더 포함하는
    방법.
  7. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    기본 계층이 인트라 랜덤 액세스 포인트(intra random access point, IRAP) 픽처 또는 상기 최저 시간 서브계층 상의 단계별 시간 서브계층 액세스(STSA) 픽처를 포함하는 것에 대응하여 비트스트림의 디코딩을 시작하는 단계 - 상기 기본 계층 상의 IRAP 픽처는 인터-계층 또는 인터-뷰 예측 없이 인트라-코딩된 픽처임 - 와,
    적어도 하나의 강화 계층이 IRAP 픽처 또는 상기 최저 시간 서브계층 상의 STSA 픽처를 포함하는 것에 대응하여 상기 적어도 하나의 강화 계층의 단계별 디코딩을 시작하는 단계 - 상기 강화 계층 상의 IRAP 픽처는 인터 예측이 없는 픽처이지만 인터-계층 또는 인터-뷰 예측이 허용되는 픽처임 - 와,
    디코딩된 계층의 개수와 디코딩된 시간 서브계층의 개수 중 적어도 하나를 점진적으로 증가시키는 단계를 더 포함하는
    방법.
  8. 제 7 항에 있어서,
    디코딩 순서에서 특정 강화 계층 내 첫 픽처의 참조 픽처에 이용 불가능한 픽처를 생성하는 단계를 더 포함하는
    방법.
  9. 제 7 항에 있어서,
    특정 강화 계층의 디코딩이 시작될 수 있는 상기 IRAP 픽처에 선행하는 픽처의 디코딩을 생략하는 단계를 더 포함하는
    방법.
  10. 제 9 항에 있어서,
    하나 이상의 특정 NAL 유닛 타입에 의해 상기 생략된 픽처를 라벨링(labeling)하는 단계를 더 포함하는
    방법.
  11. 제 7 항에 있어서,
    각 층의 서브계층이 정확히 디코딩되었다는 정보를 유지하는 단계를 더 포함하는
    방법.
  12. 제 7 항에 있어서,
    상기 단계별 디코딩을 시작하는 단계는 다음과 같은 조건적 동작,
    - 현재 픽처가 IRAP 픽처이고 상기 IRAP 픽처의 모든 참조 계층의 디코딩이 시작되었을 때, 디코딩 순서에서 동일 계층 내 상기 IRAP 픽처 및 그 뒤에 오는 모든 픽처가 디코딩된다는 것과,
    - 상기 현재 픽처가 상기 최저 시간 서브계층에 있는 STSA 픽처이고 상기 STSA 픽처의 모든 참조 계층의 최저 시간 서브계층의 디코딩이 시작되었을 때, 디코딩 순서에서 동일 계층 내 상기 STSA 픽처 및 상기 STSA 픽처 뒤에 오는 상기 최저 시간 서브계층에 있는 모든 픽처가 디코딩된다는 것과,
    - 상기 현재 픽처가 상기 최저 시간 서브계층보다 높은 서브계층에 있는 시간 서브계층 액세스(TSA) 픽처 - 상기 TSA 픽처는 동일 시간 서브계층 또는 보다 높은 시간 서브계층에서 디코딩 순서상 후속 픽처가 디코딩될 수 있게 하며, 상기 TSA 픽처에 앞선 상기 동일 시간 서브계층 상의 어떠한 픽처로부터의 인터-예측도 허용되지 않음 - 또는 STSA 픽처이고, 동일 계층에서 다음으로 낮은 서브계층의 디코딩이 시작되었으며, 상기 TSA 또는 STSA 픽처의 모든 참조 계층의 동일한 서브계층의 디코딩이 시작되었을 때, 디코딩 순서에서 상기 동일 계층 내 상기 TSA 또는 STSA 픽처 및 상기 TSA 또는 STSA 픽처 뒤에 오는 동일한 서브계층에 있는 모든 픽처가 디코딩된다는 것
    중 하나 이상을 포함하는
    방법.
  13. 하나 이상의 시간 서브계층을 포함하는 제 1 스케일러빌리티 계층의 코딩된 픽처를 수신하는 단계와,
    하나 이상의 시간 서브계층을 포함하는 제 2 스케일러빌리티 계층의 코딩된 픽처를 수신하는 단계 - 상기 제 2 스케일러빌리티 계층은 상기 제 1 스케일러빌리티 계층에 의존함 - 와,
    상기 제 2 스케일러빌리티 계층의 코딩된 픽처로부터 상기 제 2 스케일러빌리티 계층 상의 계층 액세스 픽처를 선택하는 단계 - 상기 선택된 계층 액세스 픽처는 최저 시간 서브계층 상의 단계별 시간 서브계층 액세스(STSA) 픽처이고, 상기 STSA 픽처는 동일 시간 서브계층에서 디코딩 순서상 후속 픽처가 디코딩될 수 있게 하며, 상기 STSA 픽처에 앞선 상기 동일 시간 서브계층 상의 어떠한 픽처로부터의 인터-예측도 허용되지 않음 - 와,
    디코딩 순서에서 상기 선택된 계층 액세스 픽처에 앞서는 상기 제 2 스케일러빌리티 계층 상의 코딩된 픽처를 무시하는 단계와,
    상기 제 1 스케일러빌리티 계층의 코딩된 픽처 및 상기 선택된 계층 액세스 픽처를 비트스트림으로 전송하는 단계를 포함하는
    방법.
  14. 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하는 장치로서,
    상기 적어도 하나의 메모리에는 코드가 저장되고, 상기 코드는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 적어도,
    하나 이상의 시간 서브계층을 포함하는 제 1 스케일러빌리티 계층의 코딩된 픽처를 수신하는 것과,
    상기 제 1 스케일러빌리티 계층의 코딩된 픽처를 디코딩하는 것과,
    하나 이상의 시간 서브계층을 포함하는 제 2 스케일러빌리티 계층의 코딩된 픽처를 수신하는 것 - 상기 제 2 스케일러빌리티 계층은 상기 제 1 스케일러빌리티 계층에 의존함 - 과,
    상기 제 2 스케일러빌리티 계층의 코딩된 픽처로부터 상기 제 2 스케일러빌리티 계층 상의 계층 액세스 픽처를 선택하는 것 - 상기 선택된 계층 액세스 픽처는 최저 시간 서브계층 상의 단계별 시간 서브계층 액세스(STSA) 픽처이고, 상기 STSA 픽처는 동일 시간 서브계층에서 디코딩 순서상 후속 픽처가 디코딩될 수 있게 하며, 상기 STSA 픽처에 앞선 상기 동일 시간 서브계층 상의 어떠한 픽처로부터의 인터-예측도 허용되지 않음 - 과,
    디코딩 순서에서 상기 선택된 계층 액세스 픽처에 앞서는 상기 제 2 스케일러빌리티 계층 상의 코딩된 픽처를 무시하는 것과,
    상기 선택된 계층 액세스 픽처를 디코딩하고, 상기 동일 시간 서브계층 또는 보다 높은 시간 서브계층 상에 디코딩 순서상 후속 픽처가 존재하는 경우 상기 후속 픽처를 디코딩하는 것을 수행하게 하는
    장치.
  15. 제 14 항에 있어서,
    상기 단계별 시간 서브계층 액세스 픽처는 하나 이상의 시간 서브계층을 가진 비트스트림의 디코딩의 계층별 초기화를 위한 액세스 포인트를 제공하는
    장치.
  16. 제 14 항에 있어서,
    상기 단계별 시간 서브계층 액세스 픽처는 하나 이상의 시간 계층을 가진 비트스트림의 계층별 비트레이트 적응을 위한 액세스 포인트를 제공하는
    장치.
  17. 제 14 항 내지 제 16 항 중 어느 한 항에 있어서,
    상기 장치로 하여금 단계별 시간 서브계층 액세스 픽처를 나타내는 네트워크 액세스 계층(Network Access Layer, NAL) 유닛 타입 및 상기 최저 시간 서브계층을 나타내는 시간 서브계층 식별자에 기초하여 픽처가 상기 단계별 시간 서브계층 액세스 픽처라고 결정함로써 상기 선택하는 것을 실행하게 하는 코드를 더 포함하는
    장치.
  18. 제 14 항 내지 제 16 항 중 어느 한 항에 있어서,
    상기 장치로 하여금 비트스트림과 함께 제공되는 특정 NAL 유닛 타입에 속하는 상기 단계별 시간 서브계층 액세스 픽처에 관한 표시를 수신하는 것을 수행하게 하는 코드를 더 포함하는
    장치.
  19. 제 14 항 내지 제 16 항 중 어느 한 항에 있어서,
    상기 장치로 하여금 디코딩 가능한 서브계층의 개수를 정의하는 SEI 메시지를 가진 상기 단계별 시간 서브계층 액세스 픽처에 관한 표시를 수신하는 것을 수행하게 하는 코드를 더 포함하는
    장치.
  20. 제 14 항 내지 제 16 항 중 어느 한 항에 있어서,
    상기 장치로 하여금,
    기본 계층이 인트라 랜덤 액세스 포인트(IRAP) 픽처 또는 상기 최저 시간 서브계층 상의 단계별 시간 서브계층 액세스(STSA) 픽처를 포함하는 것에 대응하여 비트스트림의 디코딩을 시작하는 것 - 상기 기본 계층 상의 IRAP 픽처는 인터-계층 또는 인터-뷰 예측 없이 인트라-코딩된 픽처임 - 과,
    적어도 하나의 강화 계층이 IRAP 픽처 또는 상기 최저 시간 서브계층 상의 STSA 픽처를 포함하는 것에 대응하여 상기 적어도 하나의 강화 계층의 단계별 디코딩을 시작하는 것 - 상기 강화 계층 상의 IRAP 픽처는 인터 예측이 없는 픽처이지만 인터-계층 또는 인터-뷰 예측이 허용되는 픽처임 - 과,
    디코딩된 계층의 개수와 디코딩된 시간 서브계층의 개수 중 적어도 하나를 점진적으로 증가시키는 것
    을 수행하게 하는 코드를 더 포함하는
    장치.
  21. 제 20 항에 있어서,
    상기 장치로 하여금 디코딩 순서에서 특정 강화 계층 내 첫 픽처의 참조 픽처에 이용 불가능한 픽처를 생성하는 것을 수행하게 하는 코드를 더 포함하는
    장치.
  22. 제 20 항에 있어서,
    상기 장치로 하여금 특정 강화 계층의 디코딩이 시작될 수 있는 상기 IRAP 픽처에 선행하는 픽처의 디코딩을 생략하는 것을 수행하게 하는 코드를 더 포함하는
    장치.
  23. 제 22 항에 있어서,
    상기 장치로 하여금 하나 이상의 특정 NAL 유닛 타입에 의해 상기 생략된 픽처를 라벨링하는 것을 수행하게 하는 코드를 더 포함하는
    장치.

  24. 제 20 항에 있어서,
    상기 장치로 하여금 각 층의 서브계층이 정확히 디코딩되었다는 정보를 유지하는 것을 수행하게 하는 코드를 더 포함하는
    장치.
  25. 제 20 항에 있어서,
    상기 단계별 디코딩을 시작하는 것은 다음과 같은 조건적 동작,
    - 현재 픽처가 IRAP 픽처이고 상기 IRAP 픽처의 모든 참조 계층의 디코딩이 시작되었을 때, 디코딩 순서에서 동일 계층 내 상기 IRAP 픽처 및 그 뒤에 오는 모든 픽처가 디코딩된다는 것과,
    - 상기 현재 픽처가 상기 최저 시간 서브계층에 있는 STSA 픽처이고 상기 STSA 픽처의 모든 참조 계층의 최저 시간 서브계층의 디코딩이 시작되었을 때, 디코딩 순서에서 동일 계층 내 상기 STSA 픽처 및 상기 STSA 픽처 뒤에 오는 상기 최저 시간 서브계층에 있는 모든 픽처가 디코딩된다는 것과,
    - 상기 현재 픽처가 상기 최저 시간 서브계층보다 높은 서브계층에 있는 시간 서브계층 액세스(TSA) 픽처 - 상기 TSA 픽처는 동일 시간 서브계층 또는 보다 높은 시간 서브계층에서 디코딩 순서상 후속 픽처가 디코딩될 수 있게 하며, 상기 TSA 픽처에 앞선 상기 동일 시간 서브계층 상의 어떠한 픽처로부터의 인터-예측도 허용되지 않음 - 또는 STSA 픽처이고, 동일 계층에서 다음으로 낮은 서브계층의 디코딩이 시작되었으며, 상기 TSA 또는 STSA 픽처의 모든 참조 계층의 동일한 서브계층의 디코딩이 시작되었을 때, 디코딩 순서에서 상기 동일 계층 내 상기 TSA 또는 STSA 픽처 및 상기 TSA 또는 STSA 픽처 뒤에 오는 동일한 서브 계층에 있는 모든 픽처가 디코딩된다는 것
    중 하나 이상을 포함하는
    장치.
  26. 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하는 장치로서,
    상기 적어도 하나의 메모리에는 코드가 저장되고, 상기 코드는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 적어도,
    하나 이상의 시간 서브계층을 포함하는 제 1 스케일러빌리티 계층의 코딩된 픽처를 수신하는 것과,
    하나 이상의 시간 서브계층을 포함하는 제 2 스케일러빌리티 계층의 코딩된 픽처를 수신하는 것 - 상기 제 2 스케일러빌리티 계층은 상기 제 1 스케일러빌리티 계층에 의존함 - 과,
    상기 제 2 스케일러빌리티 계층의 코딩된 픽처로부터 상기 제 2 스케일러빌리티 계층 상의 계층 액세스 픽처를 선택하는 것 - 상기 선택된 계층 액세스 픽처는 최저 시간 서브계층 상의 단계별 시간 서브계층 액세스(STSA) 픽처이고, 상기 STSA 픽처는 동일 시간 서브계층에서 디코딩 순서상 후속 픽처가 디코딩될 수 있게 하며, 상기 STSA 픽처에 앞선 상기 동일 시간 서브계층 상의 어떠한 픽처로부터의 인터-예측도 허용되지 않음 - 과,
    디코딩 순서에서 상기 선택된 계층 액세스 픽처에 앞서는 상기 제 2 스케일러빌리티 계층 상의 코딩된 픽처를 무시하는 것과,
    상기 제 1 스케일러빌리티 계층의 코딩된 픽처 및 상기 선택된 계층 액세스 픽처를 비트스트림으로 전송하는 것을 수행하게 하는
    장치.
  27. 장치에 의해 사용하기 위한 코드가 저장된 컴퓨터 판독가능한 저장 매체로서,
    상기 코드는 프로세서에 의해 실행될 때, 상기 장치로 하여금,
    하나 이상의 시간 서브계층을 포함하는 제 1 스케일러빌리티 계층의 코딩된 픽처를 수신하는 것과,
    상기 제 1 스케일러빌리티 계층의 코딩된 픽처를 디코딩하는 것과,
    하나 이상의 시간 서브계층을 포함하는 제 2 스케일러빌리티 계층의 코딩된 픽처를 수신하는 것 - 상기 제 2 스케일러빌리티 계층은 상기 제 1 스케일러빌리티 계층에 의존함 - 과,
    상기 제 2 스케일러빌리티 계층의 코딩된 픽처로부터 상기 제 2 스케일러빌리티 계층 상의 계층 액세스 픽처를 선택하는 것 - 상기 선택된 계층 액세스 픽처는 최저 시간 서브계층 상의 단계별 시간 서브계층 액세스(STSA) 픽처이고, 상기 STSA 픽처는 동일 시간 서브계층에서 디코딩 순서상 후속 픽처가 디코딩될 수 있게 하며, 상기 STSA 픽처에 앞선 상기 동일 시간 서브계층 상의 어떠한 픽처로부터의 인터-예측도 허용되지 않음 - 과,
    디코딩 순서에서 상기 선택된 계층 액세스 픽처에 앞서는 상기 제 2 스케일러빌리티 계층 상의 코딩된 픽처를 무시하는 것과,
    상기 선택된 계층 액세스 픽처를 디코딩하고, 상기 동일 시간 서브계층 또는 보다 높은 시간 서브계층 상에 디코딩 순서상 후속 픽처가 존재하는 경우 상기 후속 픽처를 디코딩하는 것을 수행하게 하는
    컴퓨터 판독가능한 저장 매체.
  28. 이미지 시퀀스를 포함하는 비트스트림을 디코딩하도록 구성된 비디오 디코더를 포함하는 장치로서,
    상기 비디오 디코더는,
    하나 이상의 시간 서브계층을 포함하는 제 1 스케일러빌리티 계층의 코딩된 픽처를 수신하는 수단과,
    상기 제 1 스케일러빌리티 계층의 코딩된 픽처를 디코딩하는 수단과,
    하나 이상의 시간 서브계층을 포함하는 제 2 스케일러빌리티 계층의 코딩된 픽처를 수신하는 수단 - 상기 제 2 스케일러빌리티 계층은 상기 제 1 스케일러빌리티 계층에 의존함 - 과,
    상기 제 2 스케일러빌리티 계층의 코딩된 픽처로부터 상기 제 2 스케일러빌리티 계층 상의 계층 액세스 픽처를 선택하는 수단 - 상기 선택된 계층 액세스 픽처는 최저 시간 서브계층 상의 단계별 시간 서브계층 액세스(STSA) 픽처이고, 상기 STSA 픽처는 동일 시간 서브계층에서 디코딩 순서상 후속 픽처가 디코딩될 수 있게 하며, 상기 STSA 픽처에 앞선 상기 동일 시간 서브계층 상의 어떠한 픽처로부터의 인터-예측도 허용되지 않음 - 과,
    디코딩 순서에서 상기 선택된 계층 액세스 픽처에 앞서는 상기 제 2 스케일러빌리티 계층 상의 코딩된 픽처를 무시하는 수단과,
    상기 선택된 계층 액세스 픽처를 디코딩하고, 상기 동일 시간 서브계층 또는 보다 높은 시간 서브계층 상에 디코딩 순서상 후속 픽처가 존재하는 경우 상기 후속 픽처를 디코딩하는 수단을 포함하는
    장치.
  29. 이미지 시퀀스를 포함하는 비트스트림을 디코딩하도록 구성된 비디오 디코더로서,
    상기 비디오 디코더는 또한,
    하나 이상의 시간 서브계층을 포함하는 제 1 스케일러빌리티 계층의 코딩된 픽처를 수신하고,
    상기 제 1 스케일러빌리티 계층의 코딩된 픽처를 디코딩하고,
    하나 이상의 시간 서브계층을 포함하는 제 2 스케일러빌리티 계층의 코딩된 픽처를 수신 - 상기 제 2 스케일러빌리티 계층은 상기 제 1 스케일러빌리티 계층에 의존함 - 하고,
    상기 제 2 스케일러빌리티 계층의 코딩된 픽처로부터 상기 제 2 스케일러빌리티 계층 상의 계층 액세스 픽처를 선택 - 상기 선택된 계층 액세스 픽처는 최저 시간 서브계층 상의 단계별 시간 서브계층 액세스(STSA) 픽처이고, 상기 STSA 픽처는 동일 시간 서브계층에서 디코딩 순서상 후속 픽처가 디코딩될 수 있게 하며, 상기 STSA 픽처에 앞선 상기 동일 시간 서브계층 상의 어떠한 픽처로부터의 인터-예측도 허용되지 않음 - 하고,
    디코딩 순서에서 상기 선택된 계층 액세스 픽처에 앞서는 상기 제 2 스케일러빌리티 계층 상의 코딩된 픽처를 무시하고,
    상기 선택된 계층 액세스 픽처를 디코딩하고, 상기 동일 시간 서브계층 또는 보다 높은 시간 서브계층 상에 디코딩 순서상 후속 픽처가 존재하는 경우 상기 후속 픽처를 디코딩하도록 구성되는
    비디오 디코더.
  30. 하나 이상의 시간 서브계층을 포함하는 제 1 스케일러빌리티 계층의 최저 시간 서브계층 상의 제 1 픽처를 인코딩하는 단계와,
    하나 이상의 시간 서브계층을 포함하는 제 2 스케일러빌리티 계층의 최저 시간 서브계층 상의 제 2 픽처를 인코딩하는 단계 - 상기 제 1 픽처와 상기 제 2 픽처는 동시 순간(same time instant)을 나타냄 - 와,
    상기 제 1 픽처와 연관되고, 상기 제 1 픽처의 픽처 타입이 단계별 시간 서브계층 액세스(STSA) 픽처와 다르다고 표시하는 값을 가진, 하나 이상의 제 1 신택스 요소를 인코딩하는 단계 - 상기 STSA 픽처는 동일 시간 서브계층에서 디코딩 순서상 후속 픽처가 디코딩될 수 있게 하며, 상기 STSA 픽처에 앞선 상기 동일 시간 서브계층 상의 어떠한 픽처로부터의 인터-예측도 허용되지 않음 - 와,
    상기 제 2 픽처와 연관되고, 상기 제 2 픽처의 픽처 타입이 단계별 시간 서브계층 액세스 픽처라고 표시하는 값을 가진, 하나 이상의 제 2 신택스 요소를 인코딩하는 단계와,
    상기 제 2 스케일러빌리티 계층 상 및 상기 최저 시간 서브계층보다 높은 시간 서브계층 상의 적어도 제 3 픽처를 인코딩하는 단계를 포함하는
    방법.
  31. 제 30 항에 있어서,
    상기 단계별 시간 서브계층 액세스 픽처는 하나 이상의 시간 서브계층을 가진 비트스트림의 디코딩의 계층별 초기화를 위한 액세스 포인트를 제공하는
    방법.
  32. 제 30 항 또는 제 31 항에 있어서,
    상기 단계별 시간 서브계층 액세스 픽처는 상기 최저 시간 서브계층 상의 단계별 서브계층 액세스 픽처인
    방법.
  33. 제 30 항 또는 제 31 항에 있어서,
    상기 단계별 시간 서브계층 액세스 픽처를 특정 NAL 유닛 타입에 의해 비트스트림으로 시그널링하는 단계를 더 포함하는
    방법.
  34. 제 30 항 또는 제 31 항에 있어서,
    상기 단계별 시간 서브계층 액세스 픽처를 디코딩 가능한 서브계층의 개수를 정의하는 SEI 메시지로 시그널링하는 단계를 더 포함하는
    방법.
  35. 제 30 항 또는 제 31 항에 있어서,
    상기 제 2 스케일러빌리티 계층 또는 상기 제 1 스케일러빌리티 계층보다 빈번한 TSA 또는 STSA 픽처를 포함하는 임의의 다른 스케일러빌리티 계층을 인코딩하는 단계를 더 포함하는
    방법.
  36. 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하는 장치로서,
    상기 적어도 하나의 메모리에는 코드가 저장되고, 상기 코드는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 적어도,
    하나 이상의 시간 서브계층을 포함하는 제 1 스케일러빌리티 계층의 최저 시간 서브계층 상의 제 1 픽처를 인코딩하는 것과,
    하나 이상의 시간 서브계층을 포함하는 제 2 스케일러빌리티 계층의 최저 시간 서브계층 상의 제 2 픽처를 인코딩하는 것 - 상기 제 1 픽처 및 상기 제 2 픽처는 동시 순간을 나타냄 - 과,
    상기 제 1 픽처와 연관되고, 상기 제 1 픽처의 픽처 타입이 단계별 시간 서브계층 액세스(STSA) 픽처와 다르다고 표시하는 값을 가진, 하나 이상의 제 1 신택스 요소를 인코딩하는 것 - 상기 STSA 픽처는 동일 시간 서브계층에서 디코딩 순서상 후속 픽처가 디코딩될 수 있게 하며, 상기 STSA 픽처에 앞선 상기 동일 시간 서브계층 상의 어떠한 픽처로부터의 인터-예측도 허용되지 않음 - 과,
    상기 제 2 픽처와 연관되고, 상기 제 2 픽처의 픽처 타입이 단계별 시간 서브계층 액세스 픽처라고 표시하는 값을 가진, 하나 이상의 제 2 신택스 요소를 인코딩하는 것과,
    상기 제 2 스케일러빌리티 계층 상 및 상기 최저 시간 서브계층보다 높은 시간 서브계층 상의 적어도 제 3 픽처를 인코딩하는 것을 수행하게 하는
    장치.
  37. 제 36 항에 있어서,
    상기 단계별 시간 서브계층 액세스 픽처는 하나 이상의 시간 서브계층을 가진 비트스트림의 디코딩의 계층별 초기화를 위한 액세스 포인트를 제공하는
    장치.

  38. 제 36 항 또는 제 37 항에 있어서,
    상기 단계별 시간 서브계층 액세스 픽처는 상기 최저 시간 서브계층 상의 단계별 시간 서브계층 액세스 픽처인
    장치.
  39. 제 36 항 또는 제 37 항에 있어서,
    상기 장치로 하여금 상기 단계별 시간 서브계층 액세스 픽처를 특정 NAL 유닛 타입에 의해 비트스트림으로 시그널링하는 것을 수행하게 하는 코드를 더 포함하는
    장치.
  40. 제 36 항 또는 제 37 항에 있어서,
    상기 장치로 하여금 상기 단계별 시간 서브계층 액세스 픽처를 디코딩 가능한 서브계층의 개수를 정의하는 SEI 메시지로 시그널링하는 것을 수행하게 하는 코드를 더 포함하는
    장치.
  41. 제 36 항 또는 제 37 항에 있어서,
    상기 장치로 하여금 상기 제 2 스케일러빌리티 계층 또는 상기 제 1 스케일러빌리티 계층보다 빈번한 TSA 또는 STSA 픽처를 포함하는 임의의 다른 스케일러빌리티 계층을 인코딩하는 것을 수행하게 하는 코드를 더 포함하는
    장치.
  42. 장치에 의해 사용하기 위한 코드가 저장된 컴퓨터 판독가능한 저장 매체로서,
    상기 코드는 프로세서에 의해 실행될 때, 상기 장치로 하여금,
    하나 이상의 시간 서브계층을 포함하는 제 1 스케일러빌리티 계층의 최저 시간 서브계층 상의 제 1 픽처를 인코딩하는 것과,
    하나 이상의 시간 서브계층을 포함하는 제 2 스케일러빌리티 계층의 최저 시간 서브계층 상의 제 2 픽처를 인코딩하는 것 - 상기 제 1 픽처 및 상기 제 2 픽처는 동시 순간을 나타냄 - 과,
    상기 제 1 픽처와 연관되고, 상기 제 1 픽처의 픽처 타입이 단계별 시간 서브계층 액세스(STSA) 픽처와 다르다고 표시하는 값을 가진, 하나 이상의 제 1 신택스 요소를 인코딩하는 것 - 상기 STSA 픽처는 동일 시간 서브계층에서 디코딩 순서상 후속 픽처가 디코딩될 수 있게 하며, 상기 STSA 픽처에 앞선 상기 동일 시간 서브계층 상의 어떠한 픽처로부터의 인터-예측도 허용되지 않음 - 과,
    상기 제 2 픽처와 연관되고, 상기 제 2 픽처의 픽처 타입이 단계별 시간 서브계층 액세스 픽처라고 표시하는 값을 가진, 하나 이상의 제 2 신택스 요소를 인코딩하는 것과,
    상기 제 2 스케일러빌리티 계층 상 및 상기 최저 시간 서브계층보다 높은 시간 서브계층 상의 적어도 제 3 픽처를 인코딩하는 것을 수행하게 하는
    컴퓨터 판독가능한 저장 매체.
  43. 이미지 시퀀스를 포함하는 비트스트림을 인코딩하도록 구성된 비디오 인코더를 포함하는 장치로서,
    상기 비디오 인코더는,
    하나 이상의 시간 서브계층을 포함하는 제 1 스케일러빌리티 계층의 최저 시간 서브계층 상의 제 1 픽처를 인코딩하는 수단과,
    하나 이상의 시간 서브계층을 포함하는 제 2 스케일러빌리티 계층의 최저 시간 서브계층 상의 제 2 픽처를 인코딩하는 수단 - 상기 제 1 픽처 및 상기 제 2 픽처는 동시 순간을 나타냄 - 과,
    상기 제 1 픽처와 연관되고, 상기 제 1 픽처의 픽처 타입이 단계별 시간 서브계층 액세스(STSA) 픽처와 다르다고 표시하는 값을 가진, 하나 이상의 제 1 신택스 요소를 인코딩하는 수단 - 상기 STSA 픽처는 동일 시간 서브계층에서 디코딩 순서상 후속 픽처가 디코딩될 수 있게 하며, 상기 STSA 픽처에 앞선 상기 동일 시간 서브계층 상의 어떠한 픽처로부터의 인터-예측도 허용되지 않음 - ,
    상기 제 2 픽처와 연관되고, 상기 제 2 픽처의 픽처 타입이 단계별 시간 서브계층 액세스 픽처라고 표시하는 값을 가진, 하나 이상의 제 2 신택스 요소를 인코딩하는 수단과,
    상기 제 2 스케일러빌리티 계층 상 및 상기 최저 시간 서브계층보다 높은 시간 서브계층 상의 적어도 제 3 픽처를 인코딩하는 수단을 포함하는
    장치.
  44. 이미지 시퀀스를 포함하는 비트스트림을 인코딩하도록 구성된 비디오 인코더로서,
    상기 비디오 인코더는 또한,
    하나 이상의 시간 서브계층을 포함하는 제 1 스케일러빌리티 계층의 최저 시간 서브계층 상의 제 1 픽처를 인코딩하고,
    하나 이상의 시간 서브계층을 포함하는 제 2 스케일러빌리티 계층의 최저 시간 서브계층 상의 제 2 픽처를 인코딩 - 상기 제 1 픽처 및 상기 제 2 픽처는 동시 순간을 나타냄 - 하고,
    상기 제 1 픽처와 연관되고, 상기 제 1 픽처의 픽처 타입이 단계별 시간 서브계층 액세스(STSA) 픽처와 다르다고 표시하는 값을 가진, 하나 이상의 제 1 신택스 요소를 인코딩 - 상기 STSA 픽처는 동일 시간 서브계층에서 디코딩 순서상 후속 픽처가 디코딩될 수 있게 하며, 상기 STSA 픽처에 앞선 상기 동일 시간 서브계층 상의 어떠한 픽처로부터의 인터-예측도 허용되지 않음 - 하고,
    상기 제 2 픽처와 연관되고, 상기 제 2 픽처의 픽처 타입이 단계별 시간 서브계층 액세스 픽처라고 표시하는 값을 가진, 하나 이상의 제 2 신택스 요소를 인코딩하고,
    상기 제 2 스케일러빌리티 계층 상 및 상기 최저 시간 서브계층보다 높은 시간 서브계층 상의 적어도 제 3 픽처를 인코딩하도록 구성되는
    비디오 인코더.
  45. 하나 이상의 시간 서브계층을 포함하는 제 1 스케일러빌리티 계층의 최저 시간 서브계층 상의 제 1 픽처를 인코딩하는 단계와,
    하나 이상의 시간 서브계층을 포함하는 제 2 스케일러빌리티 계층의 최저 시간 서브계층 상의 제 2 픽처를 인코딩하는 단계 - 상기 제 1 픽처 및 상기 제 2 픽처는 동일한 액세스 유닛에 속하고, 상기 제 2 픽처의 픽처 타입은 단계별 시간 서브계층 액세스(STSA) 픽처이고, 상기 STSA 픽처는 동일 시간 서브계층에서 디코딩 순서상 후속 픽처가 디코딩될 수 있게 하며, 상기 STSA 픽처에 앞선 상기 동일 시간 서브계층 상의 어떠한 픽처로부터의 인터-예측도 허용되지 않음 - 와,
    상기 액세스 유닛과 연관되고, 시간 레벨 식별자 값이 상기 액세스 유닛 내에서 상기 코딩된 제 1 픽처 및 제 2 픽처에 정렬되어 있는지를 표시하는 값을 가진, 하나 이상의 신택스 요소를 인코딩하는 단계를 포함하는
    방법.
  46. 하나 이상의 시간 서브계층을 포함하는 제 1 스케일러빌리티 계층의 최저 시간 서브계층 상에서 인코딩된 제 1 픽처 및 하나 이상의 시간 서브계층을 포함하는 제 2 스케일러빌리티 계층의 최저 시간 서브계층 상에서 인코딩된 제 2 픽처를 갖는 액세스 유닛을 포함하는 비트스트림을 수신하는 단계 - 상기 제 2 픽처의 픽처 타입은 단계별 시간 서브계층 액세스(STSA) 픽처이고, 상기 STSA 픽처는 동일 시간 서브계층에서 디코딩 순서상 후속 픽처가 디코딩될 수 있게 하며, 상기 STSA 픽처에 앞선 상기 동일 시간 서브계층 상의 어떠한 픽처로부터의 인터-예측도 허용되지 않음 - 와,
    상기 비트스트림으로부터, 상기 액세스 유닛과 연관되고, 시간 레벨 식별자 값이 상기 액세스 유닛 내에서 상기 코딩된 제 1 픽처 및 제 2 픽처에 정렬되어 있는지를 표시하는 값을 가진, 하나 이상의 신택스 요소를 디코딩하는 단계와,
    상기 값에 따라서 상기 제 1 픽처 및 상기 제 2 픽처에 대한 디코딩 동작을 선택하는 단계를 포함하는
    방법.
KR1020167028702A 2014-03-17 2015-03-16 비디오 코딩 및 디코딩 장치, 방법 및 컴퓨터 프로그램 KR102224703B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201461954306P 2014-03-17 2014-03-17
US61/954,306 2014-03-17
PCT/FI2015/050171 WO2015140401A1 (en) 2014-03-17 2015-03-16 An apparatus, a method and a computer program for video coding and decoding

Publications (2)

Publication Number Publication Date
KR20160132992A KR20160132992A (ko) 2016-11-21
KR102224703B1 true KR102224703B1 (ko) 2021-03-09

Family

ID=54143796

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167028702A KR102224703B1 (ko) 2014-03-17 2015-03-16 비디오 코딩 및 디코딩 장치, 방법 및 컴퓨터 프로그램

Country Status (8)

Country Link
US (3) US10334260B2 (ko)
EP (1) EP3120553B1 (ko)
KR (1) KR102224703B1 (ko)
CN (1) CN106464893B (ko)
CA (1) CA2942838C (ko)
ES (1) ES2913983T3 (ko)
RU (1) RU2725656C2 (ko)
WO (1) WO2015140401A1 (ko)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150095625A (ko) 2012-12-14 2015-08-21 엘지전자 주식회사 비디오 인코딩 방법 및 비디오 디코딩 방법과 이를 이용하는 장치
GB2516224A (en) 2013-07-11 2015-01-21 Nokia Corp An apparatus, a method and a computer program for video coding and decoding
GB2516824A (en) 2013-07-23 2015-02-11 Nokia Corp An apparatus, a method and a computer program for video coding and decoding
US20150036738A1 (en) * 2013-07-30 2015-02-05 Texas Instruments Incorporated Method and apparatus for real-time sao parameter estimation
CA2942838C (en) * 2014-03-17 2019-10-01 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
WO2015147426A1 (ko) * 2014-03-24 2015-10-01 주식회사 케이티 멀티 레이어 비디오 신호 인코딩/디코딩 방법 및 장치
US9402083B2 (en) * 2014-04-24 2016-07-26 Vidyo, Inc. Signaling conformance points using profile space
WO2015168581A1 (en) * 2014-05-01 2015-11-05 Arris Enterprises, Inc. Reference layer and scaled reference layer offsets for scalable video coding
US20170134742A1 (en) * 2014-06-18 2017-05-11 Sharp Kabushiki Kaisha Slice type and decoder conformance
US10091532B2 (en) * 2014-06-26 2018-10-02 Qualcomm Incorporated Bitstream conformance constraints in scalable video coding
GB2531271A (en) * 2014-10-14 2016-04-20 Nokia Technologies Oy An apparatus, a method and a computer program for image sequence coding and decoding
GB2538997A (en) * 2015-06-03 2016-12-07 Nokia Technologies Oy A method, an apparatus, a computer program for video coding
FI20165115A (fi) * 2016-02-17 2017-08-18 Nokia Technologies Oy Laitteisto, menetelmä ja tietokoneohjelma videokoodausta ja videokoodauksen purkua varten
GB2547934B (en) * 2016-03-03 2021-07-07 V Nova Int Ltd Adaptive video quality
JP7052732B2 (ja) * 2016-12-27 2022-04-12 ソニーグループ株式会社 画像処理装置および方法
US10602239B2 (en) * 2017-03-23 2020-03-24 Mediatek Inc. Method and apparatus for track composition
GB2560921B (en) * 2017-03-27 2020-04-08 Canon Kk Method and apparatus for encoding media data comprising generated content
US20180352240A1 (en) * 2017-06-03 2018-12-06 Apple Inc. Generalized Temporal Sub-Layering Frame Work
DE102017117859A1 (de) * 2017-08-07 2019-02-07 Osram Opto Semiconductors Gmbh Verfahren zum Betreiben einer autostereoskopischen Anzeigevorrichtung und autostereoskopische Anzeigevorrichtung
US10645380B2 (en) * 2018-07-09 2020-05-05 Tencent America LLC Method and apparatus for video coding
US10375416B1 (en) * 2018-09-05 2019-08-06 Tencent America LLC Segment types in video coding
BR112021016925A2 (pt) * 2019-02-27 2021-11-03 Huawei Tech Co Ltd Codificador, decodificador e métodos correspondentes
CN114666594A (zh) 2019-03-11 2022-06-24 杜比实验室特许公司 帧速率可伸缩视频编码
CN112118454B (zh) * 2019-06-20 2023-02-24 腾讯美国有限责任公司 视频解码方法、设备和计算机可读存储介质
US11166038B2 (en) * 2019-06-20 2021-11-02 Tencent America LLC Method for support of scalability with adaptive picture resolution
US11539957B2 (en) * 2019-06-20 2022-12-27 Tencent America LLC Layered random access with reference picture resampling
CN114080799A (zh) * 2019-07-04 2022-02-22 交互数字Vc控股法国有限公司 处理体数据
CN114208202A (zh) * 2019-08-06 2022-03-18 杜比实验室特许公司 画布尺寸可伸缩的视频编码
JP7372443B2 (ja) 2019-08-10 2023-10-31 北京字節跳動網絡技術有限公司 サブピクチャに依存するビデオビットストリーム内のシグナリング
MX2022003550A (es) * 2019-09-24 2022-06-02 Huawei Tech Co Ltd Pruebas de conformidad hrd en ols.
US11936880B2 (en) * 2019-09-27 2024-03-19 Tencent America LLC Method for signaling output subpicture layer set
MX2022003765A (es) 2019-10-02 2022-04-20 Beijing Bytedance Network Tech Co Ltd Sintaxis para la se?alizacion de subimagen en un flujo de bits de video.
EP4032290A4 (en) 2019-10-18 2022-11-30 Beijing Bytedance Network Technology Co., Ltd. SYNTAX CONSTRAINTS IN REPORTING SUBPICTURE PARAMETER SETS
US20230051024A1 (en) * 2019-12-12 2023-02-16 Lg Electronics Inc. Methods and device for signaling image information
CN115066898A (zh) 2020-02-19 2022-09-16 寰发股份有限公司 跨层参考限制条件
KR20220156828A (ko) * 2020-03-19 2022-11-28 바이트댄스 아이엔씨 레퍼런스 픽처 순서에 대한 제약들
KR20220156829A (ko) 2020-03-20 2022-11-28 바이트댄스 아이엔씨 이웃 서브픽처의 코딩
EP4122195A4 (en) 2020-04-20 2023-06-21 ByteDance Inc. CONSTRAINTS ON REFERENCE IMAGE LISTS
KR20230023721A (ko) * 2020-06-06 2023-02-17 엘지전자 주식회사 레이어 정보 시그널링 기반 영상 코딩 장치 및 방법
CN112468818B (zh) * 2021-01-22 2021-06-29 腾讯科技(深圳)有限公司 视频通信的实现方法及装置、介质和电子设备
WO2022220541A1 (ko) * 2021-04-12 2022-10-20 엘지전자 주식회사 디코더 초기화 관련 정보의 시그널링 기반 영상 코딩 방법
CN117378203A (zh) * 2021-05-26 2024-01-09 Oppo广东移动通信有限公司 多视图视频编码和解码
WO2024059998A1 (en) * 2022-09-20 2024-03-28 Qualcomm Incorporated Variable intra-frame (i-frame) time interval and group of picture (gop) length for video coding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014002469A1 (en) * 2012-06-25 2014-01-03 Sharp Kabushiki Kaisha Method for signaling a gradual temporal layer access picture

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080006609A (ko) 2005-04-13 2008-01-16 노키아 코포레이션 스케일링가능성 정보의 코딩, 저장, 및 시그널링
RU2407217C2 (ru) 2005-10-11 2010-12-20 Нокиа Корпорейшн Система и способ для эффективной адаптации масштабируемых потоков
CN101127900A (zh) * 2006-08-17 2008-02-20 上海乐金广电电子有限公司 利用基本层的图像信号的编码/解码方法及装置
US9712833B2 (en) 2007-06-26 2017-07-18 Nokia Technologies Oy System and method for indicating temporal layer switching points
US9866877B2 (en) * 2011-03-08 2018-01-09 Cox Communications, Inc. Transparent scalable video coding
WO2013109178A1 (en) 2012-01-20 2013-07-25 Telefonaktiebolaget L M Ericsson (Publ) Sub-bitstream extraction
CN104620578B (zh) * 2012-07-06 2018-01-02 三星电子株式会社 用于随机访问的多层视频编码的方法和设备以及用于随机访问的多层视频解码的方法和设备
US9161039B2 (en) * 2012-09-24 2015-10-13 Qualcomm Incorporated Bitstream properties in video coding
US10038899B2 (en) * 2012-10-04 2018-07-31 Qualcomm Incorporated File format for video data
US9674533B2 (en) * 2013-04-05 2017-06-06 Qualcomm Incorporated Picture alignments in multi-layer video coding
US9591321B2 (en) * 2013-04-07 2017-03-07 Dolby International Ab Signaling change in output layer sets
EP3056005A4 (en) * 2013-10-11 2017-05-17 Sharp Kabushiki Kaisha Signaling information for coding
KR20150043222A (ko) * 2013-10-12 2015-04-22 삼성전자주식회사 멀티 레이어 비디오 부호화 방법 및 그 장치, 멀티 레이어 비디오 복호화 방법 및 그 장치
EP3058733B1 (en) * 2013-10-14 2017-01-04 Telefonaktiebolaget LM Ericsson (publ) Picture order count alignment in scalble video
CA2942838C (en) * 2014-03-17 2019-10-01 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014002469A1 (en) * 2012-06-25 2014-01-03 Sharp Kabushiki Kaisha Method for signaling a gradual temporal layer access picture

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ye-Lui Wang, "MV-HEVC/SHVC HLS: On various cross-layer alignments", 14th meeting, (Vienna, AT, 25 July-2 Aug. 2013), JCTVC-N0084, 2013. 1부.*

Also Published As

Publication number Publication date
US20190320192A1 (en) 2019-10-17
EP3120553A1 (en) 2017-01-25
EP3120553B1 (en) 2022-02-23
RU2725656C2 (ru) 2020-07-03
KR20160132992A (ko) 2016-11-21
CN106464893B (zh) 2019-12-03
CN106464893A (zh) 2017-02-22
CA2942838C (en) 2019-10-01
EP3120553A4 (en) 2017-11-22
US20150312580A1 (en) 2015-10-29
WO2015140401A1 (en) 2015-09-24
USRE49887E1 (en) 2024-03-26
CA2942838A1 (en) 2015-09-24
ES2913983T3 (es) 2022-06-07
US10334260B2 (en) 2019-06-25
US10681360B2 (en) 2020-06-09
RU2016138687A (ru) 2018-04-18

Similar Documents

Publication Publication Date Title
USRE49887E1 (en) Apparatus, a method and a computer program for video coding and decoding
US10652559B2 (en) Video encoding and decoding
US10674170B2 (en) Apparatus, a method and a computer program for video coding and decoding
AU2017204114B2 (en) Method and apparatus for video coding
US10397610B2 (en) Method and apparatus for video coding
CA2942730C (en) Method and apparatus for video coding and decoding
EP2987326B1 (en) An apparatus, a method and a computer program for video coding and decoding
KR101790156B1 (ko) 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
KR101874922B1 (ko) 비디오 코딩 및 디코딩 장치, 방법 및 컴퓨터 프로그램
US20140254681A1 (en) Apparatus, a method and a computer program for video coding and decoding

Legal Events

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