KR102073030B1 - 이미지 디코딩 장치 - Google Patents

이미지 디코딩 장치 Download PDF

Info

Publication number
KR102073030B1
KR102073030B1 KR1020167028194A KR20167028194A KR102073030B1 KR 102073030 B1 KR102073030 B1 KR 102073030B1 KR 1020167028194 A KR1020167028194 A KR 1020167028194A KR 20167028194 A KR20167028194 A KR 20167028194A KR 102073030 B1 KR102073030 B1 KR 102073030B1
Authority
KR
South Korea
Prior art keywords
layer
output
decoding
coding
output layer
Prior art date
Application number
KR1020167028194A
Other languages
English (en)
Other versions
KR20160132089A (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 KR20160132089A publication Critical patent/KR20160132089A/ko
Application granted granted Critical
Publication of KR102073030B1 publication Critical patent/KR102073030B1/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
    • 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
    • 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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • 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/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Abstract

종래 기술에 있어서, 일부 경우에, 출력 계층을 갖지 않는 출력 계층 세트가 규정된다. 따라서, 디코더가 비트 스트림으로부터 출력 계층을 갖지 않는 출력 계층 세트 내의 각각의 계층을 디코딩해도, 출력되는 픽처가 존재하지 않는다. 이러한 코딩 데이터의 경우에, 출력을 기대하는 디코더에 있어서 예상치 않은 동작이 발생할 가능성이 존재한다. 또한, 동일 구성을 갖는 출력 계층 세트들이 규정될 수 있기 때문에, 중복하여 규정된 출력 계층 세트들에 관한 코드량이 중복되게 된다. 본 발명의 일 양태에 따르면, 출력 계층 세트들에 관한 비트 스트림 적합성을 규정함으로써, 출력 계층을 갖지 않는 출력 계층 세트 및 중복된 출력 계층 세트들이 발생하는 것을 방지한다.

Description

이미지 디코딩 장치{IMAGE DECODING DEVICE}
본 발명은, 이미지들이 계층적으로 코딩된 계층 코딩 데이터를 디코딩하는 이미지 디코딩 장치, 및 이미지들을 계층적으로 코딩하여 계층 코딩 데이터를 생성하는 이미지 코딩 장치에 관한 것이다.
통신 시스템에 의해 전송되는 정보, 또는 저장 장치에 기록되는 정보는 이미지들 또는 비디오를 포함한다. 종래, 이미지들(이후, 비디오를 포함함)을 전송 및 저장하기 위해, 이미지들을 코딩하는 기술들이 알려져 있다.
비디오 코딩 방식으로서는, AVC(H.264/MPEG-4 Advanced Video Coding) 및 그것의 후계 코덱인 HEVC(High-Efficiency Video Coding)(비특허문헌 1)이, 알려져 있다(비특허문헌 1).
이런 비디오 코딩 방식들에 따르면, 일반적으로, 입력 이미지를 코딩/디코딩함으로써 획득되는 국소 디코딩 이미지(local decoded image)에 기초하여 예측 이미지들을 생성하고, 예측 이미지를 입력 이미지(원래 이미지)로부터 감산해서 획득한 예측 잔차("차분 이미지"또는 "잔차 이미지"이라고 칭함)를 코딩한다. 예측 이미지 생성 방법들은, 화면 간 예측(inter-screen prediction)(인터 예측(inter prediction)), 및 화면 내 예측(intra-screen prediction)(인트라 예측(intra prediction))을 포함한다.
최근, 요구된 데이터 속도에 따라, 이미지들을 계층적으로 코딩하는 확장 가능 코딩(scalable coding) 기술, 또는 계층적 코딩 기술이 제안되고 있다. 전형적인 확장 가능 코딩 방식들(계층적 코딩 방법들)로서 SHVC(Scalable HEVC) 및 MV-HEVC(MultiView HEVC)가 알려져 있다.
SHVC는, 공간 확장성, 시간 확장성, 및 SNR 확장성을 지원한다. 예를 들어, 공간 확장성의 경우, 원래 이미지로부터 다운 샘플링하여 원하는 해상도를 갖도록 한 이미지를 하위 계층으로 코딩한다. 다음에, 상위 계층에서는, 계층 간 중복성(inter-layer redundancy)을 제거하기 위해서 계층 간 예측을 행한다(비특허문헌 2).
MV-HEVC는, 시점 확장성(viewpoint scalability)(뷰 확장성(view scalability))을 지원한다. 예를 들어, 시점 이미지 0(계층 0), 시점 이미지 1(계층 1), 및 시점 이미지 2(계층 2)인 3개의 시점 이미지를 코딩하는 경우, 하위 계층(계층 0)의 시점 이미지 0으로부터, 계층 간 예측을 통해 상위 계층들의 시점 이미지 1 및 2들을 예측함으로써 계층 간 중복성을 제거할 수 있다(비특허문헌 3).
SHVC 및 MV-HEVC는, 입력되는 계층 코딩 데이터를 디코딩하여 지정된 타겟 출력 계층 세트에 속하는 각각의 계층을 획득하고, 디코딩된 픽처를 출력 계층으로 지정된 계층에 출력한다. 출력 계층 세트에 관한 정보로서 디코딩 및 코딩된 것은, 한 세트의 계층을 나타내는 계층 세트, 계층 세트 내에서 어느 한 계층을 출력 계층으로 지정하는 출력 계층 플래그, 각각의 계층 세트에 대응하는 프로파일/레벨 정보(이후, PTL 정보), HRD 정보, 및 DPB 정보를 포함한다.
종래 기술에서는, 출력 계층 세트 OLS#0 내지 OLS#(VpsNumLayerSets - 1)는, 출력 계층 세트의 각각의 첨자(subscript)(출력 계층 세트 식별자라고 칭함)들에 대응하는 계층 세트 LS#0 내지 LS#(VpsNumLayerSets - 1)와 연관되고, 각각의 출력 계층 세트의 출력 계층은, 디폴트 출력 계층 식별자(default_target_ouput_layer_idc)의 값에 의해 결정된다. 예를 들어, 디폴트 출력 계층 식별자의 값이 0인 경우, 해당 출력 계층 세트의 모든 계층이 출력 계층이다. 디폴트 출력 계층 식별자의 값이 1인 경우, 출력 계층 세트 중 최상위 계층 ID를 갖는 일차 계층(primary layer)이 출력 계층이다. 디폴트 출력 계층 식별자의 값이 2인 경우, 각각의 계층 세트 OLS#i(i = 1.. (VpsNumLayerSets - 1))의 출력 계층들은, 명시적으로 통지되는 출력 계층 플래그(output_layer_flag)에 의해 지정된다.
추가 출력 계층 세트를 정의하는 경우(추가 출력 계층 세트 수(num_add_output_layer_sets)가 적어도 0(zero)인 경우), 출력 계층 세트 OLS#i(i = VpsNumLayerSets..NumOuputLayerSets - 1, 출력 계층 세트 수 NumOutputLayerSets = VpsNumlayerSets + num_add_output_layer_sets))는, 명시적으로 통지되는 계층 세트 식별자(LayerSetIdx[i] = output_layer_set_idx_minus1[i])에 의해 지정된 계층 세트 LS#(LayerSetIdx[i])와 연관되고, 명시적으로 통지되는 출력 계층 플래그(output_layer_flag)에 의해 출력 계층이 지정된다.
"Recommendation H.265 (04/13)", ITU-T(2013년 6월 7일 공개) JCTVC-P1008_v4 "High efficiency video coding (HEVC) scalable extensions Draft 5", ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11 16차 회의의 비디오 코딩에 대한 공동 협력팀(JCT-VC): 산호세, US, 9-17 Jan. 2014(2014년 1월 22일 공개) JCT3V-G1004_v6 "MV-HEVC Draft Text 7", ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11 7차 회의의 3D 비디오 코딩 확장 개발에 대한 공동 협력팀: 산호세, US, 11-17 Jan. 2014(2014년 1월 24일 공개)
유감스럽게도, 출력 계층 세트에 관하여, 이하의 문제가 있다.
일부 경우에, 도 1의 출력 계층 세트 OLS#4에 도시한 바와 같이, 출력 계층을 갖지 않는 출력 계층 세트가 정의될 수 있다. 따라서, 디코더가 비트 스트림을 디코딩하여 출력 계층을 갖지 않는 출력 계층 세트 내의 각각의 계층을 획득해도, 출력되는 픽처가 존재하지 않는다. 이런 코딩 데이터에 의해, 출력을 기대하는 디코더는 예상치 않게 동작하게 될 가능성이 있다.
출력 계층 플래그에 대한 명시적인 통지에 의해 출력 계층을 지정하는 경우, 도 1의 출력 계층 세트 OLS#1과 OLS#5에서와 같이 동일 구성을 갖는 출력 계층 세트들이 정의되는 문제가 발생한다. 이 경우, 중복하여 정의된 출력 계층 세트에 관한 코드량이 중복된다.
계층 세트 수(VpsNumLayerSets)가 1인 경우, 즉, 계층 세트 LS#0만을 갖는 경우, 계층 세트 LS#0은 기본 계층(L#0)만으로 구성된다. 따라서, 출력 계층은 자명하게 L#0이다. 이 경우, 디폴트 출력 계층 식별자에 관한 코드량이 중복되는 문제가 존재한다.
본 발명은 상기 문제들을 감안하여 이루어진 것이며, 그 목적은, 출력 계층 세트에 관한 비트 스트림 적합성(conformance)을 규정하고, 출력 계층을 갖지 않은 출력 계층 세트 및 중복된 출력 계층 세트(redundant output layer set)의 발생을 방지하고, 출력 계층 세트에 관한 정보를 시그널링하는 방법을 개선한 이미지 디코딩 장치 및 이미지 코딩 장치를 달성하여, 더 적은 코드량으로 출력 계층 세트에 관한 정보를 디코딩/코딩할 수 있게 하는 데에 있다.
상기의 과제를 해결하기 위해서, 본 발명의 양태 1에 관한 이미지 디코딩 장치는, 하나 이상의 계층을 포함하는 계층적 이미지 코딩 데이터(hierarchical image coded data)를 디코딩하는 이미지 디코딩 장치이며, 계층 세트의 계층 구성을 나타내는 계층 세트 정보를 디코딩하는 계층 세트 정보 디코딩 유닛; 계층 세트를 식별하기 위한 계층 세트 식별자 및 상기 계층 세트에 포함되는 계층이 출력 계층인지의 여부를 지정하는 출력 계층 플래그 OutputLayerFlag를 디코딩하고, 출력 계층 세트를 도출하는 출력 계층 세트 정보 디코딩 유닛; 및 상기 출력 계층 세트에 포함되는 출력 계층의 픽처를 디코딩하는 픽처 디코딩 유닛을 포함하고, 상기 출력 계층 세트는 적어도 1개의 출력 계층을 포함한다.
본 발명의 일 양태에 따르면, 출력 계층 세트에 관한 비트 스트림 적합성을 규정함으로써, 출력 계층을 갖지 않는 출력 계층 세트 및 중복된 출력 계층 세트의 발생을 방지할 수 있다.
도 1은 종래 기술에 있어서 출력 계층 세트에 관한 문제들을 설명하기 위한 도면이며, 출력 계층을 갖지 않은 출력 계층 세트 및 출력 계층들의 조합이 동일한 중복된 출력 계층 세트의 일례를 예시한다.
도 2는 본 발명의 일 실시예에 따른 계층 코딩 데이터의 계층 구성을 설명하기 위한 도면이며, 도 2의 (a)는 계층적 비디오 코딩 장치 측을 도시하고, 도 2의 (b)는 계층적 비디오 디코딩 장치 측을 도시한다.
도 3은 비트 스트림 추출 처리를 설명하기 위한 도면이며, 계층 세트 A 및 그것의 서브세트인 계층 세트 B의 구성을 도시하는 도면이다.
도 4는 NAL 유닛 계층(NAL unit layer)을 구성하는 데이터 구조의 일례를 도시하는 도면이다.
도 5는 NAL 유닛 계층에 포함되는 신택스의 예를 도시하는 도면이고, 도 5의 (a)는 NAL 유닛 계층을 구성하는 신택스의 예를 도시하고, 도 5의 (b)는 NAL 유닛 헤더의 신택스의 예를 도시하는 도면이다.
도 6은, 본 발명의 실시예에 따른 NAL 유닛 타입의 값과, NAL 유닛의 종류의 관계를 도시하는 도면이다.
도 7은 액세스 유닛에 포함되는 NAL 유닛의 구성 예를 도시하는 도면이다.
도 8은 본 발명의 실시예에 따른 계층 코딩 데이터의 구성을 설명하기 위한 도면이며, 도 8의 (a)는 시퀀스 SEQ를 규정한 시퀀스 계층을 도시하는 도면이고, 도 8의 (b)는 픽처 PICT를 규정한 픽처 계층을 도시하는 도면이고, 도 8의 (c)는 슬라이스 S를 규정한 슬라이스 계층을 도시하는 도면이고, 도 8의 (d)는 슬라이스 데이터를 규정한 슬라이스 데이터 계층을 도시하는 도면이고, 도 8의 (e)는 슬라이스 데이터에 포함되는 코딩 트리 유닛(coded tree unit)을 규정한 코딩 트리 계층을 도시하는 도면이고, 도 8의 (f)는 코딩 트리에 포함되는 코딩 유닛(CU: Coding Unit)을 규정한 코딩 유닛 계층을 도시하는 도면이다.
도 9는 본 실시예에 따른 파라미터 세트의 참조 관계를 도시하는 도면이다.
도 10은 참조 픽처 리스트들 및 참조 픽처들을 설명하기 위한 도면이고, 도 10의 (a)는 참조 픽처 리스트들의 예들을 도시하는 계략도이고, 도 10의 (b)는 참조 픽처들의 예들을 도시하는 개략도이다.
도 11은 본 발명의 실시예에 따른 VPS의 신택스 표의 예를 도시한다.
도 12는 VPS 확장 데이터의 신택스 표의 예이고, 도 12의 (a)는 본 발명의 실시예에 따른 VPS 확장 데이터 신택스 표의 예이며, 도 12의 (b)는 종래 기술에 있어서 VPS 확장 데이터 신택스 표의 예이다.
도 13은 본 실시예에 따른 PTL 정보의 신택스 표의 예를 도시한다.
도 14는 확장성 ID들과 확장성 타입들 간의 대응표를 도시하는 도면이다.
도 15는 본 발명의 실시예에 따른 SPS/PPS/슬라이스 계층의 신택스 표의 예를 도시하고, 도 15의 (a)는 SPS의 신택스 표의 예를 도시하며, 도 15의 (b)는 PPS의 신택스 표의 예를 도시하며, 도 15의 (c)는 슬라이스 계층에 포함되는 슬라이스 헤더 및 슬라이스 데이터의 신택스 표의 예를 도시하며, 도 15의 (d)는 슬라이스 헤더의 신택스 표의 예를 도시하고, 도 15의 (e)는 슬라이스 데이터의 신택스 표의 예를 도시한다.
도 16은 본 실시예에 따른 계층적 비디오 디코딩 장치의 구성을 도시하는 개략도이다.
도 17은 본 실시예에 따른 타겟 세트 픽처 디코딩 유닛의 구성을 도시하는 개략도이다.
도 18은 본 실시예에 따른 픽처 디코딩 유닛의 동작을 설명하기 위한 흐름도이다.
도 19는 본 실시예에 따른 비트 스트림 추출 유닛의 동작을 설명하기 위한 흐름도이다.
도 20은 본 실시예에 따른 계층적 비디오 코딩 장치의 구성을 도시하는 개략도이다.
도 21은 본 실시예에 따른 타겟 세트 픽처 인코딩 유닛의 구성을 도시하는 개략도이다.
도 22는 본 실시예에 따른 픽처 인코딩 유닛의 동작을 설명하기 위한 흐름도이다.
도 23은 계층적 비디오 코딩 장치를 장착한 송신 장치, 및 계층적 비디오 디코딩 장치를 장착한 수신 장치의 구성을 도시한 도면이고, 도 23의 (a)는 계층적 비디오 코딩 장치를 장착한 송신 장치를 도시하고, 도 23의 (b)는 계층적 비디오 디코딩 장치를 장착한 수신 장치를 도시한다.
도 24는 계층적 비디오 코딩 장치를 장착한 기록 장치, 및 계층적 비디오 디코딩 장치를 장착한 재생 장치의 구성을 도시한 도면이고, 도 24의 (a)는 계층적 비디오 코딩 장치를 장착한 기록 장치를 도시하고, 도 24의 (b)는 계층적 비디오 디코딩 장치를 장착한 재생 장치를 도시한다.
도 2 내지 도 24를 참조하여, 본 발명의 일 실시예에 따른 계층적 비디오 디코딩 장치(1) 및 계층적 비디오 코딩 장치(2)를, 이하와 같이 설명한다.
[개요]
본 실시예에 따른 계층적 비디오 디코딩 장치(이미지 디코딩 장치)(1)는, 계층적 비디오 코딩 장치(이미지 코딩 장치)(2)에 의해 계층적으로 코딩된 코딩 데이터를 디코딩한다. 계층적 코딩은, 저품질의 컴포넌트로부터 고품질의 컴포넌트까지 비디오를 계층적으로 코딩하는 코딩 방식이다. 계층적 코딩은, 예를 들어, SVC 및 SHVC에서 표준화되어 있다. 여기서, 비디오의 품질은, 광범위하게는 주관적 및 객관적 시점에서 비디오의 미관(appearance)에 영향을 미치는 요소들을 의미한다. 비디오의 품질은, 예를 들어, "해상도", "프레임 속도(frame rate)", "이미지 품질(image quality)", 및 "화소의 표현 정밀도(pixel representation accuracy)"를 포함한다. 따라서, 이하, 비디오 품질의 차이는, 예시적인 방식으로는, "해상도" 등에서의 차이를 나타낸다. 그러나, 차이는 이에 한정되지 않는다. 예를 들어, 비디오가 상이한 양자화 스텝들로 양자화되는 경우(즉, 비디오가 상이한 코딩 잡음으로 코딩되는 경우), 비디오 품질은 서로 상이한 것으로 간주될 수 있다.
계층적 코딩 기술은, 계층화된 정보의 타입 관점에서, (1) 공간 확장성, (2) 시간 확장성, (3) SNR(Signal to Noise Ratio) 확장성, 및 (4) 뷰 확장성으로 분류될 수 있다. 공간 확장성은, 해상도, 및 이미지의 사이즈에 따른 계층화 기술이다. 시간 확장성은, 프레임 속도(단위 시간 당 프레임 수)에 따른 계층화 기술이다. SNR 확장성은, 코딩 잡음에 따라 계층화하는 기술이다. 뷰 확장성은, 각각의 이미지에 연관된 시점 위치에 따라 계층화하는 기술이다.
본 실시예에 따른 계층적 비디오 코딩 장치(2) 및 계층적 비디오 디코딩 장치(1)에 관한 상세한 설명에 앞서, (1) 계층적 비디오 코딩 장치(2)에 의해 생성되어, 계층적 비디오 디코딩 장치(1)에 의해 디코딩되는 계층 코딩 데이터의 계층 구조를 설명하고, 계속해서 (2) 각각의 계층에서 채용할 수 있는 데이터 구조의 구체예에 대해서 설명한다.
[계층 코딩 데이터의 계층 구조]
여기서, 도 2를 사용하여, 계층 코딩 데이터의 코딩 및 디코딩에 대해서 설명하면 다음과 같다. 도 2는, 비디오를, 하위 계층 L3, 중위 계층 L2 및 상위 계층 L1의 3 계층으로 계층적으로 코딩/디코딩하는 경우를 개략적으로 도시하는 도면이다. 즉, 도 2의 (a) 및 도 2의 (b)에 도시된 예에서는, 3개 계층 중, 상위 계층 L1이 최상위 계층이고, 하위 계층 L3이 최하위 계층이다.
이하, 계층 코딩 데이터로부터 디코딩될 수 있는 특정한 품질에 대응하는 디코딩 이미지를, 특정 계층의 디코딩 이미지(또는, 특정 계층에 대응하는 디코딩 이미지)(예를 들어, 상위 계층 L1의 디코딩 이미지 POUT#A)라고 칭한다.
도 2의 (a)는 각각의 입력 이미지 PIN#A 내지 PIN#C를 계층적으로 코딩해서 코딩 데이터 DATA#A 내지 DATA#C를 생성하는 계층적 비디오 코딩 장치(2#A 내지 2#C)를 도시한다. 도 2의 (b)는 계층적으로 코딩된, 각각의 코딩 데이터 DATA#A 내지 DATA#C를 디코딩해서 디코딩 이미지 POUT#A 내지 POUT#C를 생성하는 계층적 비디오 디코딩 장치(1#A 내지 1#C)를 도시한다.
먼저, 도 2의 (a)를 참조하여, 코딩 장치 측에 대해서 설명한다. 코딩 장치 측에 입력되는 입력 이미지 PIN#A, PIN#B 및 PIN#C는, 동일한 이미지로부터 유래되었지만, 이미지 품질(해상도, 프레임 속도, 이미지 품질 등)은 상이하다. 이미지 품질은 입력 이미지 PIN#A, PIN#B 및 PIN#C의 순서로 낮아진다.
하위 계층 L3의 계층적 비디오 코딩 장치(2#C)는, 하위 계층 L3의 입력 이미지 PIN#C를 코딩해서 하위 계층 L3의 코딩 데이터 DATA#C를 생성한다. 하위 계층 L3의 디코딩 이미지 POUT#C를 디코딩하는 데에 필요한 기본 정보가 포함된다(도 2에 있어서 "C"로 나타냄). 하위 계층 L3은, 최하위 계층이다. 따라서, 하위 계층 L3의 코딩 데이터 DATA#C를, 기본 코딩 데이터라고도 칭한다.
중위 계층 L2의 계층적 비디오 코딩 장치(2#B)는, 중위 계층 L2의 입력 이미지 PIN#B를, 하위 계층의 코딩 데이터 DATA#C를 참조하면서 코딩해서 중위 계층 L2의 코딩 데이터 DATA#B를 생성한다. 중위 계층 L2의 코딩 데이터 DATA#B는, 코딩 데이터 DATA#C에 포함되는 기본 정보 "C" 외에, 중위 계층의 디코딩 이미지 POUT#B를 디코딩하는 데에 필요한 추가 정보(도 2에 있어서 "B"로 나타냄)를 포함한다.
상위 계층 L1의 계층적 비디오 코딩 장치(2#A)는, 상위 계층 L1의 입력 이미지 PIN#A를, 중위 계층 L2의 코딩 데이터 DATA#B를 참조하면서 코딩해서 상위 계층 L1의 코딩 데이터 DATA#A를 생성한다. 상위 계층 L1의 코딩 데이터 DATA#A는, 하위 계층 L3의 디코딩 이미지 POUT#C를 디코딩하는 데에 필요한 기본 정보 "C" 및 중위 계층 L2의 디코딩 이미지 POUT#B를 디코딩하는 데에 필요한 추가 정보 "B" 외에, 상위 계층의 디코딩 이미지 POUT#A를 디코딩하는 데에 필요한 추가 정보(도 2에 있어서 "A"로 나타냄)을 포함한다.
위에 설명한 바와 같이, 상위 계층 L1의 코딩 데이터 DATA#A는, 가변적인 품질의 디코딩 이미지에 관한 정보를 포함한다.
이제, 도 2의 (b)를 참조하면서 디코딩 장치 측에 대해서 설명한다. 디코딩 장치 측에서는, 상위 계층 L1, 중위 계층 L2 및 하위 계층 L3에 각각 대응하는 디코딩 장치 1#A, 1#B 및 1#C가, 코딩 데이터 DATA#A, DATA#B 및 DATA#C를 디코딩해서 디코딩 이미지 POUT#A, POUT#B 및 POUT#C를 출력한다.
상위 계층 코딩 데이터의 부분 정보를 추출(비트 스트림 추출이라고도 칭함)하고, 하위 레벨의 특정한 디코딩 장치에 있어서, 해당 추출한 정보를 디코딩함으로써 특정한 품질의 비디오를 재생할 수 있다.
예를 들어, 중위 계층 L2의 계층 디코딩 장치 1#B는, 상위 계층 L1의 계층 코딩 데이터 DATA#A로부터, 디코딩 이미지 POUT#B를 디코딩하는 데에 필요한 정보(즉, 계층 코딩 데이터 DATA#A에 포함되는 "B" 및 "C")를 추출하고, 디코딩 이미지 POUT#B를 디코딩할 수 있다. 바꿔 말하면, 디코딩 장치 측에서는, 상위 계층 L1의 계층 코딩 데이터 DATA#A에 포함되는 정보에 기초하여, 디코딩 이미지 POUT#A, POUT#B 및 POUT#C를 디코딩할 수 있다.
계층 코딩 데이터는 위에 설명한 3 계층화된 데이터에 한정되지 않는다. 대안적으로, 계층 코딩 데이터는 계층화된 2개의 계층으로 계층적 코딩될 수 있거나, 계층 코딩 데이터는 4개 이상의 계층으로 계층적 코딩될 수 있다.
특정 계층의 디코딩 이미지에 관한 코딩 데이터의 부분 또는 전부를 다른 계층과는 독립하여 코딩하고, 특정 계층의 디코딩 동안, 다른 계층의 정보를 참조하지 않아도 되도록 계층 코딩 데이터를 구성하는 것이 가능하다. 예를 들어, 도 2의 (a) 및 도 2의 (b)를 참조하여 위에서 설명한 예에서는, 디코딩 이미지 POUT#B를 디코딩하는 데에 "C" 및 "B"를 참조하는 것으로 설명했다. 그러나, 참조는 이에 한정되지 않는다. 디코딩 이미지 POUT#B가 "B"만을 사용해서 디코딩할 수 있도록 계층 코딩 데이터를 구성하는 것도 가능하다. 예를 들어, 디코딩 이미지 POUT#B를 디코딩하는 데에, "B"만으로 구성된 계층 코딩 데이터와, 디코딩 이미지 POUT#C를 입력으로서 수신하도록 계층적 비디오 디코딩 장치를 구성하는 것이 가능하다.
SNR 확장성을 달성할 경우, 입력 이미지 PIN#A, PIN#B 및 PIN#C로서 동일한 원래의 이미지를 사용하고, 디코딩 이미지 POUT#A, POUT#B 및 POUT#C가 상이한 이미지 품질을 갖도록 계층 코딩 데이터를 생성할 수도 있다. 그 경우, 하위 계층의 계층적 비디오 코딩 장치가, 상위 계층의 계층적 비디오 코딩 장치가 행하는 양자화 폭보다 더 큰 양자화 폭을 사용해서 예측 잔차를 양자화함으로써 계층 코딩 데이터를 생성한다.
본 설명에서, 설명의 편의상, 다음과 같이 용어를 규정한다. 이하의 용어는, 달리 규정되지 않는다면, 아래의 기술적 사항을 나타내는 데에 사용된다.
프로파일(Profile): 프로파일은, 특정한 애플리케이션을 가정하고, 표준에 따른 디코더가 구비해야 할 처리 기능을 규정한다. 처리 기능은 코딩 툴(요소 기술)의 세트, 또는 집합에 의해 규정된다. 프로파일을 규정함으로써, 각각의 애플리케이션으로 하여금 표준 전체 대신에 적합한 프로파일만을 구현할 수 있게 하고, 이로써 디코더/인코더의 복잡도를 저감한다는 이점을 달성하게 된다.
레벨(Level): 레벨은, 디코더의 처리 능력 상한 및 회로 사이즈의 범위를 규정하고, 단위 시간 당 최대 처리 화소 수, 이미지의 최대 해상도, 최대 비트 속도, 최대 참조 이미지 버퍼 사이즈, 및 최저 압축률 등의 파라미터의 한계들을 규정한다. 즉, 레벨은 디코더의 처리 능력 및 비트 스트림의 복잡도를 규정한다. 레벨은, 각각의 프로파일에 의해 규정된 툴을, 어느 범위까지 지원할지에 대해서도 규정한다. 따라서, 하위 레벨은 상위 레벨에 의해 지원될 필요가 있다. 예를 들어, 레벨 한정된 각종 파라미터들은, 최대 휘도 픽처 사이즈(Max luma picture size), 최대 비트 속도(Max bitrate), 최대 CPB 사이즈(Max CPB size), 단위 픽처 당 최대 슬라이스 세그먼트 수(Max slice segments per picture), 픽처 단위 당 최대 타일 행수(Max number of tile rows), 픽처 단위 당 최대 타일 열수(Max number of tile columns)를 포함한다. 특정한 프로파일들에 적용되는, 레벨 한정된 각종 파라미터들은, 최대 휘도 샘플 속도(Max luma sample rate), 최대 비트 속도(Max bitrate) 및 최저 압축 비율(Min compression Ratio)을 포함한다. 레벨의 서브 개념 중 하나는, 각각의 레벨에 대응하는 비트 스트림(코딩 데이터)의 최대 비트 속도, 및 비트 스트림을 저장하는 최대 CPB 사이즈가 메인 티아(main tier)(소비자용)에 정의되는 값인지, 혹은 하이 티아(high tier)(업무용)에 정의되는 값인지를 나타내는 "티아(tier)"이다.
HRD(Hypothetical Reference Decoder): HRD는, 주로 버퍼의 동작에 관한 디코더의 가상 모델이며, 버퍼 모델이라고도 칭한다. HRD는, (1) 비트 스트림의 송신 버퍼인 CPB(Coded Picture Buffer), (2) 순간적으로 디코딩 동작을 행하는 디코딩 처리기, (3) 디코딩한 픽처를 보존하는 DPB(Decoded Picture Buffer), 및 (4) 잘라내기 처리(이미지의 유효 영역만 잘라내는 처리)를 행하는 크로핑 처리기를 포함한다.
HRD의 기본 동작은 이하와 같다.
(SA01) 입력 비트 스트림을 CPB에 저장한다.
(SA02) CPB에 저장된 AU에 순간적인 디코딩 처리를 행한다.
(SA03) 순간적인 디코딩 처리가 행해진 디코딩된 픽처를 DPB에 저장한다.
(SA04) DPB에 저장된 디코딩된 픽처를 크로핑하여 출력한다.
HRD 파라미터들: HRD 파라미터들은, 입력된 비트 스트림이, HRD에 있어서, 적합성 조건을 만족하는지의 여부를 검증하기 위해서 이용되는 버퍼 모델을 나타내는 파라미터이다.
비트 스트림 적합성: 비트 스트림 적합성은, 계층적 비디오 디코딩 장치(여기서는 본 발명의 실시예에 따른 계층적 비디오 디코딩 장치)가 디코딩한 비트 스트림이 만족시키는 조건이다. 마찬가지로, 계층적 비디오 코딩 장치(여기서는 본 발명의 실시예에 따른 계층적 비디오 코딩 장치)가 생성하는 비트 스트림에 관해서도, 상기 계층적 비디오 디코딩 장치가 해당 비트 스트림을 디코딩할 수 있도록 보장하기 위해서, 상기 비트 스트림 적합성을 만족시킬 필요가 있다.
VCL NAL 유닛: VCL(Video Coding Layer) NAL 유닛은, 비디오(비디오 신호) 코딩 데이터를 포함하는 NAL 유닛이다. 예를 들어, VCL NAL 유닛은, 슬라이스 데이터(CTU 코딩 데이터) 및 해당 슬라이스를 디코딩하는 데에 공통으로 사용되는 헤더 정보(슬라이스 헤더)를 포함한다.
비-VCL NAL 유닛: 비-VCL(non-Video Coding Layer, non-VCL) NAL 유닛은, 비디오 파라미터 세트 VPS, 시퀀스 파라미터 세트 SPS, 및 픽처 파라미터 세트 PPS 등의 시퀀스 및 픽처를 디코딩하는 데에 사용되는 한 세트의 코딩 파라미터인, 헤더 정보 또는 보조 정보 SEI 등의 코딩 데이터를 포함하는 NAL 유닛이다.
계층 식별자: 계층 식별자(계층 ID라고도 칭함)는, 계층(layer)을 식별하기 위한 것이고, 계층과 1-대-1로 대응한다. 계층 코딩 데이터는, 특정 계층의 디코딩 이미지를 디코딩하는 데에 필요한 부분 코딩 데이터를 선택하기 위해서 사용되는 식별자를 포함한다. 특정 계층에 대응하는 계층 식별자에 연관된 계층 코딩 데이터의 서브세트를, 계층 표현이라고도 칭한다.
일반적으로, 특정 계층의 디코딩 이미지를 디코딩하기 위해서, 해당 계층의 계층 표현, 및/또는 해당 계층의 하위 계층에 대응하는 계층 표현이 사용된다. 즉, 타겟 계층의 디코딩 이미지를 디코딩하기 위해서는, 타겟 계층의 계층 표현, 및/또는 타겟 계층의 하위 계층에 포함되는 적어도 1개의 계층 표현이 사용된다.
계층: 특정 계층의 계층 식별자 값(nuh_layer_id, nuhLayerId)을 갖는 한 세트의 VCL NAL 유닛, 및 이 VCL NAL 유닛들에 연관된 비-VCL NAL 유닛들, 또는 계층적인 관계를 갖는 한 세트의 신택스 구조
상위 계층: 특정 계층보다 상위에 위치하는 계층을, 상위 계층이라 칭한다. 예를 들어, 도 2에 있어서, 하위 계층 L3의 상위 계층은, 중위 계층 L2 및 상위 계층 L1이다. 상위 계층의 디코딩 이미지는, 더 높은 품질(예를 들어, 고해상도, 높은 프레임 속도, 높은 이미지 품질 등)의 디코딩 이미지를 의미한다.
하위 계층: 특정 계층보다도 하위에 위치하는 계층을, 하위 계층이라고 칭한다. 예를 들어, 도 2에 있어서, 상위 계층 L1의 하위 계층은, 중위 계층 L2 및 하위 계층 L3이다. 하위 계층의 디코딩 이미지는, 더 낮은 품질의 디코딩 이미지를 의미한다.
타겟 계층: 디코딩 또는 코딩의 타겟이 되는 계층. 타겟 계층에 대응하는 디코딩 이미지를, 타겟 계층 픽처라고 칭한다. 타겟 계층 픽처를 구성하는 화소들을 타겟 계층 화소들이라 칭한다.
출력 계층: 디코딩 또는 코딩 타겟 계층들 중, 해당 계층의 디코딩 픽처를, 출력 픽처로서 출력하도록 지정된 계층.
참조 계층: 타겟 계층에 대응하는 디코딩 이미지를 디코딩하기 위해서 참조하는 특정한 하위 계층을 참조 계층이라고 칭한다. 참조 계층에 대응하는 디코딩 이미지를 참조 계층 픽처라고 칭한다. 참조 계층을 구성하는 화소들을, 참조 계층 화소들이라고 칭한다.
도 2의 (a) 및 도 2의 (b)에 도시된 예에서는, 상위 계층 L1의 참조 계층은, 중위 계층 L2 및 하위 계층 L3이다. 그러나, 그 구성은 이에 한정되지 않는다. 대안적으로, 특정 계층을 디코딩하는 동안, 하위 계층 모두를 참조하지 않아도 되도록 계층 코딩 데이터를 구성하는 것이 가능하다. 예를 들어, 상위 계층 L1의 참조 계층이, 중위 계층 L2 및 하위 계층 L3 중 임의의 것이 되도록 계층 코딩 데이터를 구성할 수도 있다. 참조 계층은, 타겟 계층을 디코딩하는 데에 사용되는 코딩 파라미터 등을 예측할 때에 이용(참조)되는, 타겟 계층과는 상이한 계층이라고 표현할 수 있다. 타겟 계층의 계층 간 예측 동안, 직접적으로 참조되는 참조 계층을, 직접 참조 계층이라고 칭한다. 타겟 계층의 직접 참조 계층 A의 계층 간 예측에서 참조되는 직접 참조 계층 B는, 타겟 계층이 이에 간접적으로 의존하기 때문에, 타겟 계층의 간접 참조 계층이라고도 불린다. 바꿔 말하면, 계층 i가, 하나 이상의 계층 k(i < k < j)을 개재하여, 계층 j에 간접적으로 의존할 경우, 계층 j는, 계층 i의 간접 참조 계층이다. 타겟 계층에 대한 직접 참조 계층 및 간접 참조 계층을 총칭하여, 의존 계층이라고 칭한다.
기본 계층(Base layer): 최하위 계층에 위치하는 계층을, 기본 계층이라고 칭한다. 기본 계층의 디코딩 이미지는, 코딩 데이터가 디코딩되어 있고 최저 품질의 디코딩 이미지이며, 기본 디코딩 이미지라고 불린다. 바꿔 말하면, 기본 디코딩 이미지는, 최하위 계층에 대응하는 디코딩 이미지이다. 기본 디코딩 이미지를 디코딩하는 데에 필요한 계층 코딩 데이터의 부분 코딩 데이터는 기본 코딩 데이터라고 불린다. 예를 들어, 상위 계층 L1의 계층 코딩 데이터 DATA#A에 포함되는 기본 정보 "C"는 기본 코딩 데이터이다. 기본 계층은, 적어도 동일 계층 식별자를 포함하고, 그 계층 식별자(nuh_layer_id)의 값이 0인, 하나 이상의 VCL NAL 유닛을 포함하는 계층이다.
비기본 계층(Non-base layer): 기본 계층의 상위 계층은, 비기본 계층이라 불린다. 비기본 계층은, 적어도 동일 계층 식별자를 갖고, 그 계층 식별자(nuh_layer_id)의 값이 0보다 큰, 하나 이상의 VCL NAL 유닛을 포함하는 계층이다.
계층 간 예측: 계층 간 예측은, 타겟 계층의 계층 표현과는 상이한 계층(참조 계층)의 계층 표현에 포함되는 신택스 요소 값, 신택스 요소 값으로부터 도출되는 값, 및 디코딩 이미지에 기초하여, 타겟 계층의 신택스 요소 값, 타겟 계층의 디코딩에 사용되는 코딩 파라미터 등을 예측하는 것이다. 움직임 정보에 관한 정보를 참조 계층의 정보로부터 예측하는 계층 간 예측을, 계층 간 움직임 정보 예측이라 칭할 수 있다. 하위 계층의 디코딩 이미지로부터의 계층 간 예측을, 계층 간 이미지 예측(혹은 계층 간 텍스처 예측)이라고 칭할 수 있다. 계층 간 예측에 사용되는 계층은, 타겟 계층의 하위 계층으로서 예시된다. 참조 계층을 사용하지 않고 타겟 계층 내에서 예측하는 것을, 계층 내 예측이라고 칭할 수 있다.
시간 식별자: 시간 식별자(시간 ID)는, 시간 확장성에 관한 계층(이후, 서브계층이라 칭함)을 식별하기 위한 식별자이다. 시간 식별자는, 서브계층을 식별하기 위한 것이고, 서브계층과 1-대-1로 대응한다. 코딩 데이터는, 특정한 서브계층의 디코딩 이미지를 디코딩하는 데에 필요한 부분 코딩 데이터를 선택하기 위해서 사용되는 시간 식별자를 포함한다. 특히, 최고(최상위) 서브계층의 시간 식별자를, 최고(최상위)시간 식별자(highest TemporalId, highestTid)라고 칭한다.
서브계층: 서브계층은, 시간 식별자에 의해 특정되는 시간 확장성에 관한 계층이다. 공간 확장성 및 SNR 확장성과 같은 다른 확장성과 구별하기 위해서, 이후 서브계층이라고 칭한다(시간 계층이라고도 칭한다). 이후, 시간 확장성은, 기본 계층의 코딩 데이터, 또는 특정 계층을 디코딩하는 데에 필요한 계층 코딩 데이터에 포함되는 서브계층에 의해 달성되는 것으로 가정한다.
계층 세트: 계층 세트는, 적어도 1개의 계층을 포함하는 계층 세트이다. 특히, 계층 세트의 구성은, 계층 ID 리스트 LayerSetLayerIdList[](또는, LayerIdList[])에 의해 표현된다. 계층 세트에 포함되는 계층을 식별하기 위한 계층 ID(또는, VPS에서의 계층의 순서를 나타내는 인덱스)는, 계층 ID 리스트 LayerIdList[K](K = 0..N-1, N은 계층 세트에 포함되는 계층 수임)의 각각의 요소에 저장된다.
출력 계층 세트: 출력 계층 세트는, 상기 계층 세트에 포함되는 계층들에 대하여, 출력 계층인지의 여부가 지정된 계층들의 세트이다. 출력 계층 세트는, 계층 세트와 출력 계층을 지정하는 출력 계층 플래그의 조합에 의해 표현된 세트라고도 표현된다.
비트 스트림 추출 처리: 비트 스트림 추출 처리는, 특정 비트 스트림(계층 코딩 데이터, 코딩 데이터)으로부터, 타겟 최고 시간 식별자(highestTid) 및 타겟 계층 세트에 포함되는 계층들을 나타내는 계층 ID 리스트 LayerIdList[]에 의해 결정되는 세트(타겟 세트 TargetSet라고 칭함)에 포함되지 않는 NAL 유닛들을 제거(파기)하고, 타겟 세트 TargetSet에 포함되는 NAL 유닛들을 포함하는 비트 스트림을 추출하는 처리이다. 비트 스트림 추출은, 서브 비트 스트림 추출이라고도 불린다.
타겟 최고 시간 식별자를 TargetHighestTid라고도 칭하고, 타겟 계층 세트를 TargetLayerSet라고도 칭하고, 타겟 계층 세트의 계층 ID 리스트(타겟 계층 ID 리스트)를 TargetLayerIdList라고도 칭한다. 특히, 디코딩 타겟으로 되는 계층 ID 리스트를, TargetDecLayerIdList라고도 칭한다. 비트 스트림 추출에 의해 생성되고, 타겟 세트 TargetSet에 포함되는 NAL 유닛들로 이루어지는 비트 스트림을, 코딩 데이터 BitsreamToDecode라고도 칭한다.
다음에, 도 3을 참조하여, 비트 스트림 추출 처리에 의해, 특정 계층 세트 A를 포함하는 계층 코딩 데이터로부터, 계층 세트 A의 서브세트가 되는 계층 세트 B를 포함하는 계층 코딩 데이터를 추출하는 예에 대해서 설명한다.
도 3은, 각각이 3개의 서브계층(TID1, TID2, 및 TID3)으로 이루어지는 3개의 계층(L#0, L#1, 및 L#2)을 포함하는 계층 세트 A, 및 그 서브세트인 계층 세트 B의 구성을 도시한다. 이후, 계층 세트를 구성하는 계층들 및 서브계층들을, {LayerIdList = {L#0,..., L#N}, HighestTid = K}으로 표현한다. 예를 들어, 도 3의 계층 세트 A를, {LayerIdList = {L#0,L#1,L#2}, HighestTid=3}으로 표현한다. 여기서, 심볼 L#N은, 특정 계층 N을 나타내고, 도 3의 박스들은 각각 픽처를 나타내고, 각각의 박스 내의 번호(the numbers in respective boxes)는 디코딩 순서의 일례를 나타낸다. 이후, 번호 N을 갖는 픽처를, P#N이라 표현한다.
픽처 간의 화살표들은, 픽처 간의 의존 방향(참조 관계)을 나타낸다. 동일 계층 내의 화살표들은, 인터 예측에 이용되는 참조 픽처를 나타낸다. 계층 간의 화살표들은, 계층 간 예측에 이용되는 참조 픽처(참조 계층 픽처라고도 칭함)를 나타낸다.
도 3의 AU는 액세스 유닛을 나타내고, 심볼 #N은 액세스 유닛 번호를 나타낸다. 특정 개시점(예를 들어, 랜덤 액세스 개시점)에서의 AU를 AU#0으로 나타내면, AU#N는 (N-1)번째 액세스 유닛을 나타내고, 비트 스트림에 포함되는 AU의 순서를 나타낸다. 즉, 도 3의 예에서, 비트 스트림상에서, 액세스 유닛은, AU#0, AU#1, AU#2, AU#3, AU#4...의 순서로 정렬된다. 액세스 유닛은, 특정한 분류 규칙에 의해 집약된 NAL 유닛 세트를 나타낸다. 도 3의 AU#0은, 픽처 P#1, P#1 및 P#3의 코딩 데이터를 포함하는 VCL NAL 세트라고 간주될 수 있다. 액세스 유닛의 상세에 대해서는 후술한다. 본 설명에서, X번째 순서라고 하는 경우, 선두 요소가 0번째 요소이고, 0번째 요소로부터 순서를 세는 것을 가정한다(이하, 위에서와 마찬가지임).
도 3의 예에서, 타겟 세트 TargetSet(계층 세트 B)는, {LayerIdList= {L#0, L#1}, HighestTid=2}이다. 따라서, 계층 세트 A를 포함하는 비트 스트림으로부터, 타겟 세트 TargetSet에 포함되지 않는 계층들 및 최고 시간 ID(HighestTid=2)보다 큰 값을 갖는 서브계층들을, 비트 스트림 추출에 의해 파기한다. 즉, 계층 ID 리스트에 포함되지 않는 계층 L#2 및 서브계층(TID3)을 파기한다. 최종적으로는, 계층 세트 B를 포함하는 비트 스트림이 추출된다. 도 3에서는, 점선의 박스가 파기된 픽처를 나타낸다. 점선의 화살표는, 파기된 픽처와 참조 픽처 간의 의존 방향을 나타낸다. 계층 L#3 및 서브계층 TID3의 픽처를 구성하는 NAL 유닛은 이미 파기되었기 때문에, 의존 관계는 이미 끓어졌다.
SHVC 및 MV-HEVC는, SNR 확장성, 공간 확장성, 시간 확장성 등을 달성하기 위해서, 계층 및 서브계층의 개념을 채택한다. 도 3에서 설명한 바와 같이, 프레임 속도를 변경하면서 시간 확장성을 달성할 경우, 비트 스트림 추출 처리에 의해, 또 다른 픽처에 의해 참조되지 않는 픽처(최고 시간 ID(TID3))의 코딩 데이터를 파기한다. 도 3의 경우, 픽처(10, 13, 11, 14, 12, 및 15)의 코딩 데이터를 파기함으로써, 프레임 속도가 1/2이 되는 코딩 데이터가 생성된다.
SNR 확장성, 공간 확장성 및 뷰 확장성을 달성할 경우, 비트 스트림 추출에 의해, 타겟 세트 TargetSet에 포함되지 않는, 계층의 코딩 데이터를 파기함으로써, 각각의 확장성의 입도를 변경할 수 있다. 도 3의 경우, 픽처(3, 6, 9, 12, 15)의 코딩 데이터를 파기함으로써, 확장성의 입도를 거칠게 한 코딩 데이터가 생성된다. 상기 처리를 반복함으로써, 단계적으로 계층, 및 서브계층의 입도를 조정할 수 있다.
위에서 설명한 용어는, 설명의 편의를 위해 사용한다. 따라서, 상기의 기술적 사항을 다른 용어로 표현할 수도 있다.
[계층 코딩 데이터의 데이터 구조]
이하, 각각의 계층의 코딩 데이터를 생성하는 코딩 방식으로서, HEVC 및 그 확장 방식을 사용하는 경우에 대해서 예시한다. 그러나, 이것에 한정되지 않는다. 대안적으로, 각각의 계층의 코딩 데이터를, MPEG-2, 또는 H.264/AVC 등의 코딩 방식에 따라 생성할 수도 있다.
하위 계층과 상위 계층이 상이한 코딩 방식에 따라 코딩될 수도 있다. 각각의 계층의 코딩 데이터는, 서로 상이한 송신 경로를 통해 계층적 비디오 디코딩 장치(1)에 공급될 수 있고, 동일한 송신 경로를 통해 계층적 비디오 디코딩 장치(1)에 공급될 수도 있다.
예를 들어, 초 고해상도 비디오(비디오, 4K 비디오 데이터)를 기본 계층 및 1개의 확장 계층을 통해 확장 가능 코딩해서 코딩된 비디오를 송신할 경우, 기본 계층은, 4K 비디오 데이터를 다운스케일링하고 인터레이싱한 비디오 데이터를 MPEG-2 또는 H.264/AVC에 따라 코딩하고, 코딩 데이터를 텔레비전 방송망을 통해 송신하고, 반면에 확장 계층은, 4K 비디오(프로그레시브)를 HEVC에 의해 코딩해서 코딩된 비디오를 인터넷을 통해 송신할 수 있다.
<계층 코딩 데이터 DATA의 구조>
본 실시예에 따른 이미지 코딩 장치(2) 및 이미지 디코딩 장치(1)의 상세한 설명에 앞서, 이미지 코딩 장치(2)에 의해 생성되어, 이미지 디코딩 장치(1)에 의해 디코딩되는 계층 코딩 데이터 DATA의 데이터 구조에 대해서 설명한다.
(NAL 유닛 계층)
도 4는, 계층 코딩 데이터 DATA의 계층적 데이터 구조를 도시하는 도면이다. 계층 코딩 데이터 DATA는, NAL(Network Abstraction Layer) 유닛이라고 불리는 단위로 코딩된다.
NAL은, 비디오 코딩 처리를 행하는 계층인 VCL(Video Coding Layer)과, 코딩 데이터를 송신 및 축적하기 위한 하위 시스템 간의 통신을 추상화하기 위해서 제공되는 계층이다.
VCL은, 이미지 코딩 처리를 행하는 계층이다. VCL에 있어서 코딩이 행해진다. 한편, 소위, 하위 시스템은, H.264/AVC 및 HEVC의 파일 포맷, 및 MPEG-2시스템 등에 대응한다. 이하에 설명한 예에서, 하위 시스템은, 타겟 계층 및 참조 계층에서의 디코딩 처리에 대응한다. NAL에서는, VCL에서 생성된 비트 스트림이, NAL 유닛인 단위로 구획되어, 목적지인 하위 시스템에 전송된다.
도 5의 (a)는, NAL 유닛의 신택스 표를 나타낸다. NAL 유닛은, VCL에서 코딩된 코딩 데이터, 및 해당 코딩 데이터가 목적지인 하위 시스템에 적절하게 전달될 수 있게 하는 헤더(NAL 유닛 헤더: nal_unit_header())를 포함한다. NAL 유닛 헤더는, 예를 들어, 도 5의 (b)에 도시된 신택스에 따라 표현된다. NAL 유닛 헤더에는, NAL 유닛에 저장된 코딩 데이터의 종류를 나타내는 "nal_unit_type", 저장된 코딩 데이터가 속하는 서브계층의 식별자(시간 식별자)를 나타내는 "nuh_temporal_id plus1", 및 저장된 코딩 데이터가 속하는 계층의 식별자(계층 식별자)를 나타내는 "nuh_layer_id"(또는, nuh_reserved_zero_6bits)가 기술되어 있다. 한편, NAL 유닛 데이터에는, 후술하는 파라미터 세트, SEI, 슬라이스 등이 포함된다.
도 6은, NAL 유닛 타입의 값과 NAL 유닛의 종류 관계를 도시하는 도면이다. 도 6에 도시된 바와 같이, SYNA101에 의해 지시된 0 내지 15의 범위의 값의 NAL 유닛 타입을 갖는 NAL 유닛은, 비-RAP(랜덤 액세스 픽처)의 슬라이스이다. SYNA102에 의해 지시된 16 내지 21의 범위의 값의 NAL 유닛 타입을 갖는 NAL 유닛은, RAP(랜덤 액세스 픽처, IRAP 픽처)의 슬라이스이다. RAP 픽처는, 크게 BLA 픽처, IDR 픽처, 및 CRA 픽처로 분류된다. BLA 픽처는, BLA_W_LP, BLA_W_DLP, 및 BLA_N_LP로 분류된다. IDR 픽처는, IDR_W_DLP, 및 IDR_N_LP로 더 분류된다. RAP 픽처 이외의 다른 픽처에는, 선두 픽처(LP 픽처), 시간 액세스 픽처(TSA 픽처, STSA 픽처), 및 후미 피처(TRAIL 픽처)가 포함된다. 각각의 계층에서의 코딩 데이터는, NAL 유닛에 저장되는 것으로 NAL 다중화되어서 계층적 비디오 디코딩 장치(1)에 전송된다.
특히, 도 6의 NAL 유닛 타입 분류에 도시된 바와 같이, NAL 유닛은, NAL 유닛 타입에 따라, 픽처를 구성하는 데이터(VCL 데이터)와, 다른 데이터(비-VCL)로 분류된다. 모든 픽처는, 랜덤 액세스 픽처, 선두 픽처, 및 후미 피처 등의 픽처 종류에 관계없이, VCL NAL 유닛으로 분류된다. 픽처를 디코딩하는 데에 필요한 데이터인 파라미터 세트, 픽처의 보조 정보인 SEI, 시퀀스의 단락을 나타내는 액세스 유닛 딜리미터(AUD), 시퀀스의 종단부(EOS), 비트 스트림의 종단부(EOB) 등은, non-VCL NAL 유닛으로 분류된다.
(액세스 유닛)
특정한 분류 규칙에 따라 집약된 NAL 유닛 세트를, 액세스 유닛이라고 칭한다. 계층 수가 1인 경우, 액세스 유닛은 1개 픽처를 구성하는 NAL 유닛 세트이다. 계층 수가 1보다 큰 경우, 액세스 유닛은 동일한 시간(동일 출력 타이밍)의 다수 계층의 픽처를 구성하는 NAL 유닛 세트이다. 액세스 유닛 간의 단락을 나타내기 위해서, 코딩 데이터는 액세스 유닛 딜리미터(AUD: Access unit delimiter)라고 불리는 NAL 유닛을 포함할 수 있다. 액세스 유닛 딜리미터는, 코딩 데이터에 포함된 특정 액세스 유닛을 구성하는 NAL 유닛 세트와, 또 다른 액세스 유닛을 구성하는 NAL 유닛 세트 사이에 포함된다.
도 7은, 액세스 유닛에 포함되는 NAL 유닛의 구성의 일례를 도시하는 도면이다. 이 도면에 있어서, AU에는, AU의 선두 위치를 나타내는 액세스 유닛 딜리미터(AUD), 각종 파라미터 세트(VPS, SPS, 및 PPS), 각종 SEI(Prefix SEI, 및 Suffix SEI)들, 계층 수가 1인 경우, 1개 픽처를 구성하는 VCL(슬라이스), 계층 수가 1보다 큰 경우, 계층 수만큼 픽처를 구성하는 VCL, 시퀀스의 종단부를 나타내는 EOS(End of Sequence), 비트 스트림의 종단부를 나타내는 EOB(End of Bitstream) 등의 NAL 유닛이 포함된다. 도 7에 있어서, VPS, SPS, SEI, 및 VCL 뒤의 코드 L#K(K = Nmin...Nmax)는, 계층 ID(혹은, VPS에서 규정된 계층의 순서를 나타내는 인덱스)를 나타낸다. 도 7의 예에 따르면, AU에는, VPS를 제외하고, 각각의 계층 L#Nmin 내지 L#Nmax의 SPS, PPS, SEI, 및 VCL이, 계층 ID(혹은, VPS에서 규정된 계층의 순서를 나타내는 인덱스)의 오름차순으로 존재한다. 도 7의 예에서, VPS는, 최저 계층 ID를 통해서만 송신된다. 도 7은, 특정 NAL 유닛이 AU 내에 존재할지 또는 반복해서 존재할지를, 화살표로 도시한다.
예를 들어, 특정한 NAL 유닛이 AU 내에 존재하면, 그 NAL 유닛을 통과하는 화살표로 나타낸다. 특정한 NAL 유닛이 AU 내에 존재하지 않으면, 그 NAL 유닛을 스킵하는 화살표로 도시한다. 예를 들어, AUD를 통과하지 않고, VPS로 향하는 화살표는, AUD가 AU 내에 존재하지 않는 경우를 나타낸다. VCL을 통과하고 나서 다시 VCL로 복귀하는 화살표는, 적어도 1개의 VCL이 존재하는 경우를 나타낸다.
최저보다는 상위의 계층 ID를 갖는 VPS가 AU 내에 포함될 수 있더라도, 이미지 디코딩 장치는, 최저 외의 다른 계층 ID를 갖는 VPS를 무시한다. 각종 파라미터 세트(VPS, SPS, 및 PPS) 및 보조 정보인 SEI는, 도 7에 도시된 바와 같이, 액세스 유닛의 부분으로서 포함될 수 있거나, 비트 스트림과는 상이한 것을 통해 디코더로 전달될 수 있다. 도 7은 액세스 유닛에 포함되는 NAL 유닛의 구성예의 일 실시예일 뿐이다. 액세스 유닛에 포함되는 NAL 유닛의 구성은, 비트 스트림을 디코딩할 수 있는 범위 내에서 변경 가능하다.
특히, 계층 식별자 nuhLayerId=0의 IRAP 픽처를 포함하는 액세스 유닛을, IRAP 액세스 유닛(랜덤 액세스 포인트 액세스 유닛)이라고 칭한다. 타겟 세트에 포함되는 모든 계층의 디코딩 처리의 초기화를 실행하는 IRAP 액세스 유닛을, 초기화 IRAP 액세스 유닛이라고 칭한다. 디코딩 순서에 따르면, 초기화 IRAP 액세스 유닛으로부터, 적어도 0의 비초기화 IRAP 액세스 유닛(초기화 IRAP 액세스 유닛 이외의 다른 액세스 유닛)을 통해, 다음 초기화 IRAP 액세스 유닛까지의 범위의 세트(다음 초기화 IRAP 액세스 유닛은 제외함에 주목해야 함)를, CVS(Coded Video Sequence; 이하, 시퀀스 SEQ라고도 칭함)라고 칭한다.
도 8은, 계층 코딩 데이터 DATA의 계층적 데이터 구조를 도시하는 도면이다. 계층 코딩 데이터 DATA는, 예시적인 방식으로, 시퀀스 및 시퀀스를 구성하는 다수 픽처를 포함한다. 도 8의 (a) 내지 도 8의 (f)는, 각각, 시퀀스 SEQ를 규정하는 시퀀스 계층, 픽처 PICT를 규정하는 픽처 계층, 슬라이스 S를 규정하는 슬라이스 계층, 슬라이스 데이터를 규정하는 슬라이스 데이터 계층, 슬라이스 데이터에 포함되는 코딩 트리 유닛을 규정하는 코딩 트리 계층, 코딩 트리에 포함되는 코딩 유닛(Coding Unit)(CU)을 규정하는 코딩 유닛 계층을 도시하는 도면이다.
(시퀀스 계층)
시퀀스 계층은, 처리 타겟의 시퀀스 SEQ(이하, 타겟 시퀀스라고도 칭함)를 디코딩하기 위해서 이미지 디코딩 장치(1)가 참조하는 데이터의 세트를 규정한다. 도 8의 (a)에 도시한 바와 같이, 시퀀스 SEQ는, 비디오 파라미터 세트(video parameter set), 시퀀스 파라미터 세트 SPS(sequence parameter set), 픽처 파라미터 세트 PPS(picture parameter set), 픽처 PICT, 및 부가 확장 정보 SEI(supplemental enhancement information)를 포함한다. 여기에서 #의 뒤에 도시된 값은 계층 ID를 나타낸다. 도 8은, #0과 #1을 갖는, 즉 계층 ID가 0이고 계층 ID가 1인 코딩 데이터가 존재하는 예를 도시한다. 그러나, 계층 종류 및 계층 수는 이에 한정되지 않는다.
(비디오 파라미터 세트)
도 11은 비디오 파라미터 세트 VPS의 신택스 표의 일례를 도시한다. 도 12는 비디오 파라미터 세트 VPS의 확장 데이터의 신택스 표의 일례를 도시한다. 비디오 파라미터 세트 VPS는 적어도 1개의 계층으로 이루어지는 코딩 데이터를 디코딩하기 위해서 이미지 디코딩 장치(1)가 참조하는 코딩 파라미터의 세트를 규정한다. 예를 들어, 후술하는 시퀀스 파라미터 세트 및 또 다른 신택스 요소가 참조하는 VPS를 식별하기 위해서 사용하는 VPS 식별자(video_parameter_set_id)(도 11의 SYNVPS01), 코딩 데이터에 포함되는 계층 수(vps_max_layers_minus1)(도 11의 SYNVPS02), 계층에 포함되는 서브계층 수(vps_sub_layers_minus1)(도 11의 SYNVPS03), 코딩 데이터에 표현된 적어도 1개의 계층을 포함하는 계층 세트를 규정하는 계층 세트의 수(vps_num_layer_sets_minus1)(도 11의 SYNVPS06), 계층 세트를 구성하는 계층들의 세트를 규정하는 계층 세트 정보(layer_id_included_flag[i][j])(도 11의 SYNVPS07), 계층 간 의존 관계(직접 의존 플래그 direct_dependency_flag[i][j])(도 12의 SYNVPS0C), 출력 계층 세트를 구성하는 출력 계층들의 세트, PTL 정보 등을 규정한 출력 계층 세트 정보(디폴트 출력 계층 식별자 default_target_output_layer_idc, 출력 계층 플래그 output_layer_flag[i][j] 등)(도 12의 SYNVPS0G 내지 SYNVPS0K) 등이 규정되어 있다. 다수의 VPS가 코딩 데이터 내에 존재할 수도 있다. 이 경우, 각각의 타겟 시퀀스에 대해, VPS들 중, 디코딩에 사용하는 VPS를 선택한다.
특정 계층에 속하는 특정 시퀀스를 디코딩하는 데에 사용되는 VPS는, 활성 VPS라고 불린다. 이하, 달리 규정되지 않는 한, VPS는, 특정 계층에 속하는 타겟 시퀀스에 대한 활성 VPS를 의미한다.
(시퀀스 파라미터 세트)
도 15의 (a)는, 시퀀스 파라미터 세트 SPS의 신택스 표의 일례를 도시한다. 시퀀스 파라미터 세트 SPS는, 타겟 시퀀스를 디코딩하기 위해서 이미지 디코딩 장치(1)가 참조하는 코딩 파라미터의 세트를 규정한다. 예를 들어, 타겟 SPS가 참조하는 활성 VPS를 나타내는 활성 VPS 식별자(sps_video_parameter_set_id)(도 15의 (a)의 SYNSPS01), 후술하는 픽처 파라미터 세트 및 또 다른 신택스 요소가 참조하는 SPS를 식별하기 위해서 사용하는 SPS 식별자(sps_seq_parameter_set_id)(도 15의 (a)의 SYNSPS02), 및 픽처의 폭과 높이를 규정한다. 복수의 SPS가 코딩 데이터 내에 존재할 수 있다. 이 경우, 각각의 타겟 시퀀스에 대해, 다수의 후보들 중, 디코딩에 사용하는 SPS를 선택한다.
특정 계층에 속하는 특정 시퀀스의 디코딩에 사용되는 SPS는, 활성 SPS라고도 불린다. 이하, 달리 규정되지 않는 한, SPS는, 특정 계층에 속하는 타겟 시퀀스에 대한 활성 SPS를 의미한다.
(픽처 파라미터 세트)
도 15의 (b)는 픽처 파라미터 세트 PPS의 신택스 표의 일례를 도시한다. 픽처 파라미터 세트 PPS는, 타겟 시퀀스 내의 각각의 픽처를 디코딩하기 위해서 이미지 디코딩 장치(1)가 참조하는 코딩 파라미터의 세트를 규정한다. 예를 들어, 이 세트는 타겟 PPS가 참조하는 활성 SPS를 나타내는 활성 SPS 식별자(pps_seq_parameter_set_id)(도 15의 (b)의 SYNPPS01), 후술하는 슬라이스 헤더 및 또 다른 신택스 요소가 참조하는 PPS를 식별하기 위해서 사용하는 PPS 식별자(pps_pic_parameter_set_id)(도 15의 (b)의 SYNPPS02), 픽처 디코딩에 사용되는 양자화 폭의 기준 값(pic_init_qp_minus26), 가중치 부여 예측의 적용을 나타내는 플래그(weighted_pred_flag), 및 스케일링 리스트(양자화 매트릭스)를 포함한다. 다수의 PPS가 존재할 수도 있음에 주목해야 한다. 이 경우, 타겟 시퀀스 내의 각각의 픽처로부터 PPS들 중 임의의 것을 선택한다.
특정 계층에 속하는 특정 픽처를 디코딩하는 데에 사용되는 PPS를, 활성 PPS라고 칭한다. 이하, 달리 규정되지 않는 한, PPS는, 특정 계층에 속하는 타겟 픽처에 대한 활성 PPS를 의미한다. 활성 SPS 및 활성 PPS는, 각각의 계층에 대해 상이한 SPS 및 PPS로 설정될 수도 있다. 즉, 각각의 계층에 대해 상이한 SPS 및 PPS를 참조하여 디코딩 처리를 수행할 수 있다.
(픽처 계층)
픽처 계층은, 처리 타겟의 픽처 PICT(이하, 타겟 픽처라고도 칭함)을 디코딩하기 위해서 계층적 비디오 디코딩 장치(1)가 참조하는 데이터 세트를 규정한다. 도 8의 (b)에 도시한 바와 같이, 픽처 PICT는, 슬라이스 S0 내지 SNS-1(NS는 픽처 PICT에 포함되는 슬라이스의 총 개수)를 포함한다. 이하, 슬라이스 S0 내지 SNS-1를 서로 구별할 필요가 없을 경우, 때때로 코드의 첨자를 생략해서 기술할 수 있다. 이하에 언급한 계층 코딩 데이터 DATA에 포함되고, 첨자가 부가된 다른 데이터에 대해서도 이러한 생략이 적용될 수 있다.
(슬라이스 계층)
슬라이스 계층은, 처리 타겟의 슬라이스 S(타겟 슬라이스라고도 칭하는, 슬라이스 세그먼트)를 디코딩하기 위해서 계층적 비디오 디코딩 장치(1)가 참조하는 데이터 세트를 규정한다. 도 8(c)에 도시한 바와 같이, 슬라이스 S는, 슬라이스 헤더 SH, 및 슬라이스 데이터 SDATA를 포함한다.
슬라이스 헤더 SH는, 타겟 슬라이스를 디코딩하는 방법을 결정하기 위해서 계층적 비디오 디코딩 장치(1)가 참조하는 코딩 파라미터 그룹을 포함한다. 도 15의 (d)는 슬라이스 헤더의 신택스 표의 일례를 도시한다. 예를 들어, 타겟 슬라이스를 디코딩하기 위해서 참조하는 PPS(활성 PPS)를 지정하는 활성 PPS 식별자(slice_pic_parameter_set_id)(도 15의 (d)의 SYNSH02)가 포함된다. 활성 PPS가 참조하는 SPS는, 활성 PPS에 포함되는 활성 SPS 식별자(pps_seq_parameter_set_id)에 의해 지정된다. 또한, 활성 SPS가 참조하는 VPS(활성 VPS)는, 활성 SPS에 포함되는 활성 VPS 식별자(sps_video_parameter_set_id)에 의해 지정된다.
도 9의 예를 참조하여, 파라미터 세트 활성화에 대해서 설명한다. 이 도면은, 헤더 정보와, 액세스 유닛(AU)을 구성하는 코딩 데이터 간의 참조 관계를 설명한다. 이 도면의 예에서는, 각각의 AU 내의 계층 L#K(K=Nmin..Nmax)에 속하는 픽처를 구성하는 각각의 슬라이스는, 참조해야 할 PPS를 지정하는 활성 PPS 식별자를 슬라이스 헤더 내에 포함하고, 각각의 슬라이스의 디코딩을 개시할 때 해당 식별자에 의해 디코딩에 사용할 PPS(활성 PPS)를 지정한다(활성화한다고도 한다). 동일 픽처 내의 슬라이스가 참조하는 각각의 PPS, SPS, 및 VPS의 식별자는 동일할 필요가 있다. 활성화된 PPS에는, 디코딩 처리를 위해 참조해야 할 SPS(활성 SPS)를 식별하는 활성 SPS 식별자가 포함된다. 해당 식별자에 의해 디코딩에 사용하는 SPS(활성 SPS)를 식별한다. 마찬가지로, 활성화된 SPS에는, 각각의 계층에 속하는 시퀀스를 디코딩하는 처리를 위해 참조해야 할 VPS(활성 VPS)를 식별하는 활성 VPS 식별자가 포함된다. 해당 식별자에 의해 디코딩에 사용하는 VPS(활성 VPS)를 식별한다. 상기 절차에 따르면, 각각의 계층의 코딩 데이터를 디코딩하는 처리를 수행하는 데에 필요한 파라미터 세트가 확립된다.
각각의 헤더 정보(슬라이스 헤더 SH, PPS, 및 SPS)가 참조하는 상위 파라미터 세트의 식별자는, 이 도면의 예에 한정되지 않는다. VPS의 경우, 식별자를 VPS 식별자 k=0..15 중에서 선택할 수 있다. SPS의 경우, 식별자를 SPS 식별자 m=0..15 중에서 선택할 수 있다. PPS의 경우, 식별자를 PPS 식별자 n=0..63 중에서 선택할 수 있다.
슬라이스 타입을 지정하는 슬라이스 타입 지정 정보(slice_type)는, 슬라이스 헤더 SH에 포함되는 코딩 파라미터의 일례이다.
슬라이스 타입 지정 정보에 의해 지정 가능한 슬라이스 타입은, (1) 코딩 동안 인트라 예측만을 사용하는 I 슬라이스, (2) 코딩 동안 단방향 예측, 또는 인트라 예측을 사용하는 P 슬라이스, (3) 코딩 동안 단방향 예측, 쌍방향 예측, 또는 인트라 예측을 사용하는 B 슬라이스를 포함한다.
(슬라이스 DATA 계층)
슬라이스 데이터 계층은, 처리 타겟의 슬라이스 데이터 SDATA를 디코딩하기 위해서 계층적 비디오 디코딩 장치(1)가 참조하는 데이터 세트를 규정한다. 도 8의 (d)에 도시한 바와 같이, 슬라이스 데이터 SDATA는 코딩 트리 블록(CTB: Coded Tree Block)을 포함한다. CTB는, 슬라이스를 구성하는 고정 사이즈 (예를 들어, 64×64)의 블록이며, 최대 코딩 유닛(LCU: Largest Cording Unit)이라 칭할 수도 있다.
(코딩 트리 계층)
도 8의 (e)에 도시한 바와 같이, 코딩 트리 계층은, 처리 타겟의 코딩 트리 블록을 디코딩하기 위해서 계층적 비디오 디코딩 장치(1)가 참조하는 데이터의 세트를 규정한다. 코딩 트리 유닛은, 재귀적인 쿼드트리 분할(quadtree splitting)에 따라 분할된다. 재귀적인 쿼드트리 분할에 의해 획득되는 트리 구조의 노드를, 코딩 트리(coding tree)라고 칭한다. 쿼드트리 중간 노드는, 코딩 트리 유닛(CTU)이다. 코딩 트리 블록 자체도 최상위 CTU로서 규정된다. CTU는 분할 플래그(split_flag)를 포함한다. split_flag가 1인 경우에는, 4개의 코딩 트리 유닛(CTU)으로 분할된다. split_flag가 0인 경우에는, 코딩 트리 유닛 CTU은 4개의 코딩 유닛(CU)으로 분할된다. 코딩 유닛 CU는 코딩 트리 계층의 종단 노드이며, 이 계층에서는 더 이상 분할되지 않는다. 코딩 유닛 CU는, 코딩 처리의 기본 단위로 기능한다.
코딩 트리 유닛으로부터 디코딩되는 타겟 픽처의 부분 영역을, 코딩 트리 블록(CTB)이라고 칭한다. 타겟 픽처의 휘도 성분인 휘도 픽처에 대응하는 CTB를, 휘도 CTB라고 칭한다. 바꿔 말하면, CTU로부터 디코딩되는 휘도 픽처의 부분 영역을, 휘도 CTB라고 칭한다. 한편, CTU로부터 디코딩되는 색차 픽처에 대응하는 부분 영역은, 색차 CTB라고 칭한다. 일반적으로, 이미지의 색 포맷을 결정한 경우, 휘도 CTB 사이즈와 색차 CTB 사이즈는 서로 변환 가능하다. 예를 들어, 색 포맷이 4:2:2인 경우, 색차 CTB 사이즈는 휘도 CTB 사이즈의 절반이다. 이하의 설명에서, 달리 특정되지 않는 한, CTB 사이즈는 휘도 CTB 사이즈를 의미한다. CTU 사이즈는, CTU에 대응하는 휘도 CTB 사이즈이다.
(코딩 유닛 계층)
도 8의 (f)에 도시한 바와 같이, 코딩 유닛 계층은, 처리 타겟의 코딩 유닛을 디코딩하기 위해서 계층적 비디오 디코딩 장치(1)가 참조하는 데이터의 세트를 규정한다. 보다 구체적으로는, 코딩 유닛 CU(coding unit)은, CU 헤더 CUH, 예측 트리, 및 변환 트리를 포함한다. CU 헤더 CUH는, 코딩 유닛이 인트라 예측을 사용하는 유닛인지, 혹은 인터 예측을 사용하는 유닛인지를 규정한다. 코딩 유닛은, 예측 트리(PT)(prediction tree) 및 변환 트리(TT)(transform tree)의 루트(route)를 따른다. CU에 대응하는 픽처 내의 영역은 코딩 블록(CB)이라고 불린다. 휘도 픽처의 CB를 휘도 CB라고 칭하고, 색차 픽처의 CB를 색차 CB라고 칭한다. CU 사이즈(코딩 노드의 사이즈)는, 휘도 CB 사이즈를 의미한다.
(변환 트리)
변환 트리(이하, TT로 축약함)는, 하나 이상의 변환 블록으로 분할되는 코딩 유닛 CU를 갖고, 각각의 변환 블록의 위치와 사이즈를 규정한다. 바꿔 말하면, 변환 블록은, 코딩 유닛 CU를 구성하는 서로 중복하지 않는 하나 이상의 영역이다. 변환 트리는, 상술한 분할에 의해 획득된 하나 이상의 변환 블록을 포함한다. CU에 포함되는 변환 트리에 관한 정보 및 변환 트리에 포함되는 정보를, TT 정보라고 칭한다.
변환 트리에 있어서 분할은, 코딩 유닛과 동일한 사이즈를 갖는 영역을 변환 블록으로 할당하는 분할과, 상술한 트리 블록의 분할에서와 마찬가지로, 재귀적인 쿼드트리에 따른 분할로 분류된다. 변환 처리는, 각각의 변환 블록에 대해 수행된다. 이하, 변환의 단위인 변환 블록을, 변환 단위(TU)라고도 칭한다.
변환 트리 TT는, 타겟 CU를 각각의 변환 블록으로 분할하는 패턴을 지정하는 TT 분할 정보 SP_TT 및 양자화 예측 잔차 QD1 내지 QDNT(NT는 타겟 CU에 포함되는 변환 단위 TU의 총 개수임)를 포함한다.
보다 구체적으로는, TT 분할 정보 SP_TT는, 타겟 CU에 포함되는 각각의 변환 블록의 형상, 및 타겟 CU 내에서의 위치를 결정하기 위한 정보이다. 예를 들어, TT 분할 정보 SP_TT는, 타겟 노드의 분할을 행하는지의 여부를 나타내는 정보(split_transform_unit_flag)와, 그 분할의 심도를 나타내는 정보(transfoDepth)를 이용하여 실현될 수 있다.
각각의 양자화 예측 잔차 QD는, 계층적 비디오 코딩 장치(2)가 이하의 처리 1 내지 3을, 처리해야 할 변환 블록인 타겟 블록에 실시함으로써 생성한 코딩 데이터이다.
처리 1: 코딩 타겟 이미지로부터 예측 이미지를 감산하여 얻은 예측 잔차에 주파수 변환(예를 들어, DCT 변환(Discrete Cosine Transform) 및 DST 변환(Discrete Sine Transform) 등)을 실시한다.
처리 2: 처리 1에서 획득한 변환 계수를 양자화한다.
처리 3: 처리 2에서 양자화된 변환 계수를 가변 길이 코딩한다.
상술한 양자화 파라미터 qp는, 계층적 비디오 코딩 장치(2)가 변환 계수를 양자화할 때에 사용한 양자화 스텝 QP의 크기를 나타낸다(QP=2qp/6).
(예측 트리)
예측 트리(이하, PT로 축약함)는, 하나 이상의 예측 블록으로 분할된 코딩 유닛 CU을 갖고, 각각의 예측 블록의 위치와 사이즈를 규정한다. 바꿔 말하면, 예측 블록은, 코딩 유닛 CU를 구성하는 서로 중복하지 않는 하나 이상의 영역이다. 예측 트리는, 상술한 분할에 의해 획득된 하나 이상의 예측 블록을 포함한다. CU에 포함되는 예측 트리에 관한 정보 및 예측 트리에 포함되는 정보를, PT 정보라고 칭한다.
예측 처리는, 각각의 예측 블록에 대해 수행된다. 이하, 예측의 단위인 예측 블록은, 예측 단위(PU)라고도 불린다.
예측 트리에 있어서 분할 타입은, 2개의 경우, 즉 인트라 예측의 경우와 인터 예측의 경우로 분류된다. 인트라 예측은, 동일 픽처 내의 예측이다. 인터 예측은, 서로 상이한 픽처 사이(예를 들어, 표시 시각 사이, 및 계층적 이미지 사이)에 행해지는 예측 처리를 의미한다. 즉, 인터 예측은, 타겟 계층과 동일 계층의 참조 픽처(계층 내 참조 픽처) 또는 타겟 계층의 참조 계층의 참조 픽처(계층 간 참조 픽처) 중 임의의 것을 참조 픽처로서 사용하여, 참조 픽처의 디코딩 이미지로부터 예측 이미지를 생성한다.
인트라 예측의 경우, 분할 방법은, 2N×2N(코딩 유닛과 동일 사이즈) 및 N×N이 있다.
인터 예측의 경우, 분할 방법은, 코딩 데이터의 part_mode에 따라 코딩을 수행하고, 이 방법들은 2N×2N(코딩 유닛과 동일 사이즈), 2N×N, 2N×nU, 2N×nD, N×2N, nL×2N, nR×2N, 및 N×N이 있다.
(예측 파라미터)
예측 유닛의 예측 이미지는, 예측 유닛에 부수되는 예측 파라미터에 의해 도출된다. 예측 파라미터는, 인트라 예측의 예측 파라미터, 또는 인터 예측의 예측 파라미터를 포함한다.
인트라 예측 파라미터는, 각각의 인트라 PU에 대한 인트라 예측(예측 모드)을 디코딩하기 위한 파라미터이다. 예측 모드를 디코딩하기 위한 파라미터는, MPM(Most Probable Mode; 이하 마찬가지로 적용함)에 관한 플래그인 mpm_flag, MPM을 선택하기 위한 인덱스인 mpm_idx 및 MPM 이외의 다른 예측 모드를 지정하기 위한 인덱스인 rem_idx를 포함한다.
인터 예측 파라미터는, 예측 리스트 이용 플래그 predFlagL0 및 predFlagL1, 참조 픽처 인덱스 refIdxL0 및 refIdxL1, 및 벡터 mvL0 및 mvL1을 포함한다. 예측 리스트 이용 플래그 predFlagL0 및 predFlagL1의 각각은, L0 참조 리스트 및 L1 참조 리스트라고 불리는 참조 픽처 리스트가 사용될 것인지의 여부를 지시하는 플래그이다. 그 값이 1인 경우에 대응하는 참조 픽처 리스트가 사용된다. 2개의 참조 픽처 리스트를 사용하는 경우, 즉, predFlagL0=1 및 predFlagL1=1인 경우가, 양방향(bidirectional) 예측에 대응한다. 1개의 참조 픽처 리스트를 사용하는 경우, 즉, (pred FlagL0, predFlagL1)= (1, 0) 또는 (predFlagL0, predFlagL1)= (0, 1)의 경우가, 단 예측에 대응한다.
(참조 픽처 리스트의 일례)
이제, 참조 픽처 리스트의 일례에 대해서 설명한다. 참조 픽처 리스트는, 디코딩 픽처 버퍼에 저장된 참조 픽처로부터 이루어지는 시퀀스이다. 도 10의 (a)는, 참조 픽처 리스트의 일례를 나타내는 개략도이다. 참조 픽처 리스트 RPL0에 있어서, 가로로 일렬로 배열된 5개의 직사각형은, 각각의 참조 픽처를 나타낸다. 좌측 단부로부터 우측으로 순서대로 도시된 심볼 P1, P2, Q0, P3 및 P4은, 각각의 참조 픽처를 나타내는 심볼이다. 마찬가지로, 참조 픽처 리스트 RPL1에 있어서, 좌측 단부로부터 우측으로 순서대로 도시된 심볼 P4, P3, R0, P2, 및 P1은, 각각의 참조 픽처를 나타내는 심볼이다. P1 등의 "P"는, 타겟 계층 P를 나타낸다. Q0의 "Q"는, 타겟 계층 P와는 상이한 계층 Q를 나타낸다. 마찬가지로, R0의 "R"는, 타겟 계층 P 및 계층 Q와는 상이한 계층 R을 나타낸다. P, Q 및 R의 첨자는, 픽처 순서 카운트 POC(Picture Ordering Count)를 나타낸다. refIdxL0의 바로 아래에 하향 화살표는, 참조 픽처 인덱스 refIdxL0가, 디코딩 픽처 버퍼에 있어서, 참조 픽처 리스트 RPL0에서 참조 픽처 Q0을 참조하는 인덱스인 것을 나타낸다. 마찬가지로, refIdxL1의 바로 아래의 하향 화살표는, 참조 픽처 인덱스 refIdxL1가, 디코딩 픽처 버퍼에 있어서, 참조 픽처 리스트 RPL1에서 참조 픽처 P3을 참조하는 인덱스인 것을 나타낸다.
(참조 픽처의 예)
이제, 벡터를 도출할 때에 사용하는 참조 픽처의 예에 대해서 설명한다. 도 10의 (b)는, 참조 픽처의 예를 나타내는 개략도이다. 도 10의 (b)에 있어서, 횡축은 표시 시간을 나타내고, 종축은 계층 수를 나타낸다. 도시되어 있는, 수직의 3행, 수평의 3열(총 9개)로 배치된 직사각형은, 각각 픽처를 나타낸다. 9개의 직사각형 중, 아래 행의 좌측으로부터 2열째의 직사각형은 디코딩 타겟의 픽처(타겟 픽처)를 나타내고, 남은 8개의 직사각형은 각각 참조 픽처를 나타낸다. 타겟 픽처로부터 하향 화살표로 나타내지는 참조 픽처 Q2 및 R2는 타겟 픽처의 표시 시각과 동일한 표시 시각이지만 계층이 상이한 픽처이다. 타겟 픽처 curPic(P2)를 참조하는 계층 간 예측에 있어서는, 참조 픽처 Q2 또는 R2가 사용된다. 타겟 픽처로부터 좌향 화살표로 나타내어지는 참조 픽처 P1은, 타겟 픽처와 동일 계층의 과거의 픽처이다. 타겟 픽처로부터 우향 화살표로 나타내어지는 참조 픽처 P3은, 타겟 픽처와 동일 계층의 미래의 픽처이다. 타겟 픽처를 참조하는 움직임 예측에 있어서는, 참조 픽처 P1 또는 P3가 사용된다.
(움직임 벡터와 변위 벡터)
벡터 mvLX는, 움직임 벡터와 변위 벡터(displacement vector)(시차 벡터(disparity vector))를 포함한다. 움직임 벡터는, 특정 계층의 표시 시각에서의 픽처의 블록의 위치와, 상이한 표시 시각(예를 들어, 인접하는 이산 시각)에서의 동일 계층의 픽처의 대응하는 블록의 위치 간의 위치 어긋남을 나타내는 벡터이다.
변위 벡터는, 특정 계층의 표시 시각에서의 픽처의 블록의 위치와, 동일한 표시 시각에서의 상이한 계층의 픽처의 대응하는 블록의 위치 간의 위치 어긋남을 나타내는 벡터이다. 상이한 계층의 픽처는, 동일 해상도이지만 품질이 상이한 픽처의 경우, 상이한 시점의 픽처의 경우, 또는 상이한 해상도의 픽처의 경우를 포함한다. 특히, 상이한 시점의 픽처에 대응하는 변위 벡터를 시차 벡터라고 칭한다.
[계층적 비디오 디코딩 장치]
이하, 본 실시예에 따른 계층적 비디오 디코딩 장치(1)의 구성에 대해서, 도 16 내지 도 19를 참조하여 설명한다.
(계층적 비디오 디코딩 장치의 구성)
본 실시예에 따른 계층적 비디오 디코딩 장치(1)의 구성에 대해서 설명한다. 도 16은, 본 실시예에 따른 계층적 비디오 디코딩 장치(1)의 구성을 도시하는 개략도이다.
계층적 비디오 디코딩 장치(1)는, 계층적 비디오 코딩 장치(2)로부터 공급되는 계층 코딩 데이터 DATA를 디코딩하여, 외부로부터 공급되는 출력 지정 정보(타겟 계층 세트 식별자)에 의해 식별되는 디코딩 타겟으로 되는 계층 세트 TargetDecLayerSet의 계층 ID 리스트 TargetDecLayerIdList, 및 외부로부터 공급되는 디코딩 타겟으로 되는 계층에 부수되는 최고 서브계층을 지정하는 타겟 최고 시간 식별자 TargetHighestTid에 의해 결정되는 타겟 세트 TargetSet에 포함되는 각각의 계층의 디코딩 픽처를 생성하고, 타겟 출력 계층 세트에 관한 출력 계층 정보 OutputLayerFlag에 의해 출력 계층으로 지정된 계층의 디코딩 픽처를 출력 픽처 POUT#T로서 출력한다.
즉, 계층적 비디오 디코딩 장치(1)는, 타겟 디코딩 계층 세트 TargetDecLayerSet의 계층 ID 리스트의 요소 TargetDecLayerIdList[0] ..TargetDecLayerIdList[N-1](N은 타겟 디코딩 계층 세트에 포함되는 계층 수임)의 순서로, 계층 i의 픽처의 코딩 데이터를 디코딩하고, 디코딩 픽처를 생성하고, 해당 계층 i의 출력 계층 정보 OutputLayerFlag[i]가 "출력 계층"을 나타내는 경우, 해당 계층 i의 디코딩 픽처를 사전 결정된 타이밍에 출력한다.
도 16에 도시한 바와 같이, 계층적 비디오 디코딩 장치(1)는, NAL 역다중화 유닛(11) 및 타겟 세트 픽처 디코딩 유닛(10)을 포함한다. 또한, 타겟 세트 픽처 디코딩 유닛(10)은, 비-VCL 디코딩 유닛(12), 파라미터 메모리(13), 픽처 디코딩 유닛(14), 디코딩 픽처 관리 유닛(15) 및 출력 제어 유닛(16)을 포함하여 구성된다. NAL 역다중화 유닛(11)은, 비트 스트림 추출 유닛(17)을 더 포함한다.
계층 코딩 데이터 DATA에는, VCL에 의해 생성된 NALU(NAL Unit) 이외에, 파라미터 세트(VPS, SPS, 및 PPS) 및 SEI를 포함하는 NALU도 포함된다. 이 NAL들은 VCL NALU로부터 구분되는 비-VCL NALU(비-VCL NAL 유닛)들이라고 불린다.
출력 제어 유닛(16)은, 외부로부터 공급되는 출력 지정 정보, 파라미터 메모리(13)에 저장된 활성 VPS의 계층 세트 정보, 및 출력 계층 세트 정보에 기초하여, 출력 제어 정보로서, 타겟 출력 계층 세트 TargetOptLayerSet의 계층 구조를 나타내는 타겟 출력 계층 ID 리스트 TargetOptLayerIdList 및 타겟 출력 계층 세트를 디코딩하는 데에 필요한 계층 구조를 나타내는 타겟 디코딩 계층 ID 리스트 TargetDecLayerIdList를 도출한다. 이와 같이 도출된 타겟 출력 계층 ID 리스트 TargetOptLayerIdList 및 타겟 디코딩 계층 ID 리스트 TargetDecLayerIdList는 비트 스트림 추출 유닛(17) 및 디코딩 픽처 관리 유닛(15)에 공급된다. 출력 제어 유닛(16)의 타겟 출력 계층 ID 리스트 및 타겟 디코딩 계층 ID 리스트를 도출하는 처리의 상세에 대해서는 후술한다.
개략적으로는, NAL 역다중화 유닛(11)에 포함된 비트 스트림 추출 유닛(17)은, 비트 스트림 추출 처리를 수행한다. 이 추출 유닛은, 계층 코딩 데이터 DATA로부터, 출력 제어 유닛(16)으로부터 공급된 타겟 디코딩 계층 ID 리스트, 및 디코딩 타겟 최고 서브계층 식별자 TargetHighestTid에 의해 결정되는 타겟 세트 TargetSet에 포함되는 NAL 유닛으로 이루어지는 타겟 세트 코딩 데이터 DATA#T(Bit streamToDecode)를 추출한다. 비트 스트림 추출 유닛(17)에 있어서 본 발명과의 관련성이 높은 처리의 상세에 대해서 후술한다.
계속해서, NAL 역다중화 유닛(11)은, 비트 스트림 추출 유닛(17)에 의해 추출된 타겟 세트 코딩 데이터 DATA#T(Bit streamToDecode)를 역다중화하고, NAL 유닛에 포함되는 NAL 유닛 타입, 계층 식별자(계층 ID), 및 시간 식별자(시간 ID)를 참조하고, 타겟 세트에 포함되는 NAL 유닛을, 타겟 세트 픽처 디코딩 유닛(10)에 공급한다.
타겟 세트 픽처 디코딩 유닛(10)은, 공급된 타겟 세트 코딩 데이터 DATA#T에 포함되는 NALU 중, 비-VCL NALU를 비-VCL 디코딩 유닛(12)에 공급하고, VCL NALU를 픽처 디코딩 유닛(14)에 공급한다. 즉, 타겟 세트 픽처 디코딩 유닛(10)은, 공급된 NAL 유닛의 헤더(NAL 유닛 헤더)를 디코딩하고, 디코딩한 NAL 유닛 헤더에 포함되는 NAL 유닛 타입, 계층 식별자 및 시간 식별자에 기초하여, 비-VCL NALU의 코딩 데이터를 비-VCL 디코딩 유닛(12)에 공급하고, VCL NALU의 코딩 데이터를 픽처 디코딩 유닛(14)에, 디코딩한 NAL 유닛 타입, 계층 식별자 및 시간 식별자와 함께 공급한다.
비-VCL 디코딩 유닛(12)은, 입력되는 비-VCL NALU를 디코딩하여 파라미터 세트, 즉, VPS, SPS, 및 PPS를 획득하고, 해당 세트를 파라미터 메모리(13)에 공급한다. 비-VCL 디코딩 유닛(12)에 있어서 본 발명과의 관련성이 높은 처리의 상세에 대해서 후술한다.
파라미터 메모리(13)는, 디코딩된 파라미터 세트를 각각의 파라미터 세트의 식별자에 대해 유지하고, 따라서 파라미터 세트의 코딩 파라미터를 유지한다. 보다 구체적으로는, VPS의 경우, 각각의 VPS 식별자(video_parameter_set_id)에 대해, VPS의 코딩 파라미터를 유지한다. SPS의 경우, 각각의 SPS 식별자(sps_seq_parameter_set_id)에 대해, SPS의 코딩 파라미터를 유지한다. PPS의 경우, 각각의 PPS 식별자(pps_pic_parameter_set_id)마다, PPS의 코딩 파라미터를 유지한다. 파라미터 메모리(13)에 유지되는 코딩 파라미터는, 각각의 파라미터 세트의 계층 식별자 및 시간 식별자를 포함할 수 있다.
파라미터 메모리(13)는, 후술하는 픽처 디코딩 유닛(14)이 픽처를 디코딩하기 위해서 참조하는 파라미터 세트(활성 파라미터 세트)의 코딩 파라미터를, 픽처 디코딩 유닛(14)에 공급한다. 보다 구체적으로는, 먼저, 픽처 디코딩 유닛(14)에 의해 디코딩된 슬라이스 헤더 SH에 포함되는 활성 PPS 식별자(slice_pic_parameter_set_id)가 활성 PPS를 지정한다. 다음에, 지정된 활성 PPS에 포함되는 활성 SPS 식별자(pps_seq_parameter_set_id)에 의해, 활성 SPS를 지정한다. 마지막으로, 활성 SPS에 포함되는 활성 VPS 식별자(sps_video_parameter_set_id)에 의해, 활성 VPS를 지정한다. 후속하여, 지정된 활성 PPS, 활성 SPS, 활성 VPS의 코딩 파라미터를, 픽처 디코딩 유닛(14)에 공급한다. 마찬가지로, 파라미터 메모리(13)는, 출력 제어 유닛(16)이 출력 제어 정보를 도출하기 위해서 참조하는 활성 파라미터 세트의 코딩 파라미터를, 출력 제어 유닛(16)에 공급한다.
픽처 디코딩 유닛(14)은, 입력되는 VCL NALU, 활성 파라미터 세트(활성 PPS, 활성 SPS, 및 활성 VPS), 및 참조 픽처에 기초하여 디코딩 픽처를 생성해서 디코딩 픽처 관리 유닛(15)에 공급한다. 공급된 디코딩 픽처는, 디코딩 픽처 관리 유닛(15) 내의 버퍼에 기록된다. 픽처 디코딩 유닛(14)의 상세는 후술한다.
디코딩 픽처 관리 유닛(15)은, 입력되는 디코딩 픽처를 내부의 디코딩 픽처 버퍼(DPB: decoded picture buffer)에 기록하면서, 참조 픽처 리스트 생성 및 출력 픽처 결정을 행한다. 디코딩 픽처 관리 유닛(15)은, DPB에 기록되어 있는 디코딩 픽처 중, 출력 제어 유닛(16)에 의해 도출된 타겟 출력 계층 ID 리스트 TargetOptLayerIdList에 포함되는 출력 계층의 디코딩 픽처를 출력 픽처 POUT#T로서, 사전 결정된 타이밍에 외부에 출력한다.
(비-VCL 디코딩 유닛(12))
비-VCL 디코딩 유닛(12)은, 입력되는 타겟 세트 코딩 데이터를 디코딩하여, 타겟 세트를 디코딩하는 데에 사용하는 파라미터 세트(VPS, SPS, 및 PPS)를 획득한다. 디코딩된 파라미터 세트의 코딩 파라미터는, 파라미터 메모리(13)에 공급되고, 각각의 파라미터 세트를 갖는 식별자에 대하여 기록된다. 비-VCL 디코딩 유닛(12)은, 파라미터 세트에 한정되지 않고, 도 6에 있어서, 비-VCL로 분류되는 NAL 유닛(nal_unit_type=32..63)을 디코딩할 수 있다. 파라미터 세트의 경우와 마찬가지로, 디코딩된 비-VCL의 각각의 코딩 파라미터는, 파라미터 메모리(13)에 기록된다.
일반적으로, 파라미터 세트는 사전 결정된 신택스 표에 기초하여 디코딩된다. 즉, 신택스 표에 규정된 절차에 따라 코딩 데이터로부터 비트 시퀀스를 판독하고, 신택스 표에 포함되는 신택스를 디코딩하여 획득한다. 필요에 따라, 디코딩한 신택스에 기초하여 변수를 도출하고, 출력하는 파라미터 세트에 포함시킬 수 있다. 따라서, 비-VCL 디코딩 유닛(12)으로부터 출력되는 파라미터 세트는, 코딩 데이터에 포함되는 파라미터 세트(VPS, SPS, 및 PPS)에 관한 신택스, 및 해당 신택스로부터 도출되는 변수의 세트로 표현될 수 있다.
비-VCL 디코딩 유닛(12)은, 도시되지 않는, 사전 결정된 신택스 표에 기초하여 파라미터 세트(VPS/SPS/PPS)를 디코딩하기 위한 파라미터 세트 디코딩 수단을 포함한다. 또한, 파라미터 세트 디코딩 수단은, 도시되지 않는, 계층 세트 정보를 디코딩하는 계층 세트 디코딩 수단, 계층 간 의존 정보를 디코딩하는 계층 간 의존 정보 디코딩 수단, 출력 계층 세트 정보를 디코딩하는 출력 계층 세트 정보 디코딩 수단, 출력 계층 세트에 대응하는 PTL 정보를 디코딩하는 PTL 정보 디코딩 수단, 출력 계층 세트에 대응하는 HRD 파라미터를 디코딩하는 HRD 파라미터 디코딩 수단, 및 출력 계층 세트에 대응하는 DPB 정보를 디코딩하는 DPB 정보 디코딩 수단을 포함한다.
이하에서는, 비-VCL 디코딩 유닛(12)에 있어서 디코딩에 사용되는 신택스 표 중, 본 발명과의 관련성이 높은 신택스 표를 중심으로 설명한다.
(계층 세트 정보)
계층 세트 정보는, 계층 코딩 데이터에 포함되는 계층 세트를 구성하는 계층의 세트를 나타내는 리스트(이하, 계층 ID 리스트 LayerIdList)이며, 계층 세트 정보 디코딩 수단에 의해 VPS로부터 디코딩된다. 계층 세트 정보는, VPS상에 규정되는 계층 세트의 수를 나타내는 신택스(vps_num_layer_sets_minus1)(도 11의 SYNPVS06), 및 VPS상의 계층 규정의 순서로, j번째 계층(계층 j)이, i번째 계층 세트(계층 세트 i)에 포함되는지의 여부를 나타내는 신택스 "layer_id_included_flag[i][j]"(SYNVPS07)를 포함한다. 계층 세트 수 VpsNumLayerSets는, 값(vps_num_layer_sets_minus1 + 1)으로 설정된다. 계층 세트 i는, 신택스 "layer_id_included_flag[i][j]"의 값이 1인 계층 j를 포함한다. 즉, 계층 세트 i를 구성하는 계층 j는, 계층 ID 리스트 LayerIdList[i]에 포함된다.
계층 세트 i에 포함되는 계층 수 NumLayersInIdList[i]는, 신택스 "layer_id_included_flag[i][j]" 중, 계층 세트 i에 관해서, 해당 신택스 값이 1인 플래그 수이다.
보다 구체적으로는, 각각의 계층 세트 i의 계층 ID 리스트 LayerIdList[i] 및 계층 세트 i에 포함되는 계층 수 NumLayersInIdList[i]는, 이하의 의사 코드에 의해 도출된다.
(각각의 계층 세트의 계층 ID 리스트의 도출을 나타내는 의사 코드)
for(i = 0; i < VpsNumLayerSets; i++){
NumLayersInIdList[i] = 0;
for(m = 0; m <= vps_max_layer_id; m++){
if(layer_id_included_flag[i][m]){
LayerIdList[i][NumLayersInIdList[i]] = m;
NumLayersInIdList[i]++;
}
}// end of loop on for(m=0; m <= vps_max_layer_id; m++)
}// end of loop on for(i=0; i < VpsNumLayerSets; i++)
상기 의사 코드를 스텝으로 나타내면, 다음과 같다.
(SA01) 계층 세트 i의 계층 ID 리스트의 도출에 관한 루프의 개시점이다. 루프의 개시 전에, 변수 i는 0으로 초기화된다. 루프 내의 처리는, 변수 i가 계층 세트 수 "NumLayerSets"미만의 때에 실행된다. 루프 내의 처리가 1회 실행될 때마다, 변수 i는 "1"만큼 가산된다.
(SA02) 계층 세트 i의 계층 수 NumLayresInIdList[i]를 0으로 초기화한다 (즉, NumLayersInIdList[i]=0;).
(SA03) 계층 세트 i의 계층 ID 리스트에 m번째 계층(계층 m)의 요소 추가에 관한 루프의 개시점이다. 루프가 개시되기 전에, 변수 m은 0으로 초기화된다. 루프 내의 처리는, 변수 m(m번째 계층)이 최대 계층 식별자 "vps_max_layer_id"이하(m <= vps_max_layer_id)일 때에 실행되어, 루프 내의 처리가 1회 실행될 때마다, 변수 m은 "1"만큼 가산된다. 최대 계층 식별자 "vps_max_layer_id" 대신에, 최대 계층 수 VpsMaxLayers를 사용하여, 변수 m이 최대 계층 수 VpsMaxLayers 미만일 때에, 루프 내의 처리를 실행할 수 있다. 즉, for 문장의 "m <= vps_max_layer_id"의 판정식을 "m < VpsMaxLayers"으로 대체할 수 있다.
(SA04) 계층 m이 계층 세트 i에 포함되는지의 여부(layer_id_included_flag[i][m])를 판정한다. layer_id_included_flag[i][m]이 1이라면, 처리는 스텝 SA05으로 천이한다. layer_id_included_flag[i][m]이 0이라면, 스텝 SA05 내지 SA06의 처리를 생략하고, 처리는 SA0A으로 천이한다.
(SA05) 계층 세트 i의 계층 ID 리스트 LayerIdList[i][]의 NumLayersInIdList[i]번째 요소에, 계층 m을 추가한다(즉, LayerIdList[i][NumLayersInIdList[i]] = m;).
(SA06) 계층 세트 i의 계층 수 NumLayersInIdList[i]의 값을 "1"만큼 가산한다(즉, NumLayersInIdList[i]++;).
(SA0A) 계층 세트 i의 계층 ID 리스트에 m번째 계층(계층 m)의 요소 추가에 관한 루프의 종단점이다.
(SA0B) 계층 세트 i의 계층 ID 리스트의 도출에 관한 루프의 종단점이다.
이상의 절차는, 각각의 계층 세트 i의 계층 ID 리스트 LayerIdList[i]를 도출할 수 있다. 계층 ID 리스트 LayerIdList[]를 참조함으로써, 계층 세트 i에서, 모든 계층(VPS에 의해 규정되는 계층) 중에서 m번째 요소인 계층의 순서를 파악할 수 있다. 계층 세트 i에 포함되는 계층 수는, 계층 세트 i의 계층 수를 나타내는 변수 NumLayersInIdList[i]를 참조함으로써 파악할 수 있다. 도출의 절차는, 상술한 스텝들에 한정되지 않고, 구현 가능한 범위에서 변경 가능하다.
[PTL 정보]
PTL 정보는, 출력 계층 세트를 디코딩하기 위해서 필요한 프로파일 및 레벨을 나타내는 정보이며, PTL 정보 디코딩 수단에 의해 VPS 또는 SPS로부터 디코딩된다.
출력 계층 세트 OLS#0에 대응하는 PTL 정보는, VPS상의 도 11에 도시한 SYNVPS04, 또는 SPS상의 도 15의 (a)에 있어서 통지된다. 출력 계층 세트 OLS#i(i=1..NumOutputLayerSets-1)에 대응하는 PTL 정보는, VPS상에서 규정된 "PTL 정보의 수-1"을 나타내는 신택스 "vps_num_profile_tier_level_minus1"(도 11의 SYNVPS0D), i번째(i=1..num_profile_tier_level_minus1)의 PTL 정보의 프로파일 정보의 존재 또는 부재를 나타내는 프로파일 유무 플래그 "vps_profile_present_flag[i]"(도 11의 SYNVPS0E) 및 i번째 PTL 정보 "profile_tier_level()"(도 11의 SYNVPS0F)를 포함한다.
각각의 PTL 정보는, 후술하는 출력 계층 세트 OLS#i에 포함되는 PTL 지정 식별자(profile_level_tier_idx[i])(도 12)의 SYNVPS0J)에 의해, 출력 계층 세트 OLS#i와 연관된다. 예를 들어, 출력 계층 세트 OLS#3의 PTL 지정 식별자가, profile_level_tier_idx [3]=10인 경우, 도 12의 SYNVPS0F상의 PTL 정보의 리스트에 있어서, 선두로부터 10번째 PTL 정보가 출력 계층 세트 OLS#3에 적용되는 PTL 정보이다.
도 13에 도시한 바와 같이, PTL 정보(SYNVPS04 및 SYNVPS0H)는, 프로파일 및 레벨에 관한 신택스 그룹(SYNPTL01, SYNPTL02, SYNPTL03, SYNPTL04, SYNPTL05, 및 SYNPTL06)을 포함하고, PTL 정보 디코딩 수단에 의해 디코딩된다.
신택스 그룹 SYNPTL01은, 하기 신택스를 포함한다.
Figure 112016098258115-pct00001
프로파일 공간 general_profile_space
Figure 112016098258115-pct00002
티아 플래그 general_tier_flag
Figure 112016098258115-pct00003
프로파일 식별자 general_profile_idc
Figure 112016098258115-pct00004
프로파일 호환 플래그 general_profile_compatibility_flag[i]
Figure 112016098258115-pct00005
프로파일 예약 신택스 general_reserved_zero_44bits
신택스 그룹 SYNPTL02는, 레벨 식별자 general_level_idc를 포함한다.
신택스 그룹 SYNPTL03은, 서브계층의 서브계층 프로파일 존재 또는 부재 플래그, 및 서브계층 레벨 존재 또는 부재 플래그를 포함한다.
신택스 그룹 SYNPTL04은, 서브계층 수 (MaxNumSbuLayersMinus1, 또는 MaxNumSubLayers-1)에 기초해서 결정되는 비트 수 만큼의 바이트 정렬 데이터(reserved_zero_2bits[i])이다.
신택스 그룹 SYNPTL05는, 하기 신택스를 포함한다.
Figure 112016098258115-pct00006
서브계층 프로파일 공간 sub_layer_profile_space[i]
Figure 112016098258115-pct00007
서브계층 티아 플래그 sub_layer_tier_flag[i]
Figure 112016098258115-pct00008
서브계층 프로파일 식별자 sub_layer_profile_idc[i]
Figure 112016098258115-pct00009
서브계층 프로파일 호환 플래그 sub_layer_profile_compatibility_flag[i][j]
Figure 112016098258115-pct00010
서브계층 프로파일 예약 신택스 sub_layer_reserved_zero_44bits[i]
신택스 그룹 SYNPTL05는, 서브계층의 서브계층 레벨 정보로서, 서브계층 레벨 식별자 sub_layer_level_idc[i]를 포함한다.
(출력 계층 세트 정보)
출력 계층 세트는, 출력하는 계층의 세트(출력 계층 정보)와, 디코딩 처리의 타겟으로 되는 계층의 세트(계층 세트 정보)의 조합에 의해 규정되어, 계층적 비디오 디코딩 장치에 포함된, 도시하지 않은 출력 계층 세트 정보 디코딩 수단에 의해 디코딩된다. 계층적 비디오 디코딩 장치는, 계층 세트 정보 디코딩 수단에 의해 디코딩되는 출력 계층 세트에 포함되는 계층 세트(출력 계층 세트에 연관된 계층 세트)에 포함된 계층을 디코딩 타겟으로 사용하고, 해당 계층의 디코딩된 픽처를 디코딩해서 해당 픽처를 버퍼에 기록하고, 출력 계층 세트에 포함되는 출력 계층들 중 버퍼에 기록된 특정 계층의 디코딩된 픽처를 타겟으로서 선택해서 해당 픽처를 출력한다.
출력 계층 세트 정보는, 이하의 신택스 요소(E1 내지 E5)를 포함한다.
E1: 추가 출력 계층 세트 수(num_add_output_layer_sets)(도 12)의 SYNVPS0G)
E2: 디폴트 출력 계층 식별자(default_target_output_layer_idc)(도 12의 SYNVPS0H)
E3: 계층 세트 식별자(output_layer_set_idx_minus1)(도 12)의 SYNVPS0I)
E4: 출력 계층 정보(output_layer_flag)(도 12의 SYNVPS0J)
E5: PTL 지정 IDX(profile_level_tier_idx)(도 12)의 SYNVPS0K)
본 실시예의 출력 계층 세트 정보 디코딩 수단은 적어도 출력 계층 세트의 계층 세트 식별자와 출력 계층 플래그를 디코딩한다.
(E1: 추가 출력 계층 세트)
출력 계층 세트는 대응하는 계층 세트에 기초하여 규정된다. 추가 출력 계층 세트는, 기초가 되는 계층 세트의 수 VpsNumlayerSets보다도 크다. 출력 계층 세트를 규정할 경우에, 추가 출력 계층 세트를 규정한다. 추가 출력 계층 세트 수 num_add_output_layer_sets는, 추가 출력 계층 세트 수에 관한 신택스 요소이다.
본 실시예의 출력 계층 세트 정보 디코딩 수단은, 출력 계층 세트 수 NumOutputLayerSets를 디코딩하고, 출력 계층 세트 수 NumOutputLayerSets를, 계층 세트 수 VpsNumlayerSets + 추가 출력 계층 세트 수 num_add_output_layer_sets에 의해 도출한다. 이하, i = VpsNumLayerSets - 1..NumOutputLayerSet의 추가 계층 세트 OLS#i에 대하여, i=0..(VpsNumLayerSets - 1)까지의 출력 계층 세트 OLS#i를 기본 계층 세트라고 칭한다.
본 실시예의 출력 계층 세트 정보 디코딩 수단은, 계층 세트 수 VpsNumLayerSets에 따라, 추가 출력 계층 세트 수의 디코딩을 생략한다. 보다 구체적으로는, 출력 계층 세트 정보 디코딩 수단은, 계층 세트 수 VpsNumLayerSets가 1보다 큰 경우(vps_num_layer_sets_minus1 > 0), 코딩 데이터를 디코딩하여 추가 출력 계층 세트 수 num_add_output_layer_sets를 획득한다(SYNVPS0G). 출력 계층 세트 정보 디코딩 수단은, 추가 출력 계층 세트 수 num_add_output_layer_sets가 코딩 데이터 중에 나타나지 않을 경우, 즉, 계층 세트 수 VpsNumLayerSets가 1인 경우(vps_num_layer_sets_minus1=0), 추가 출력 계층 세트 수 num_add_output_layer_sets를 0으로 추정한다.
계층 세트 0은 항상 기본 계층으로 이루어진 계층 세트이다. 따라서, 계층 세트 수가 1인 경우에는, 출력 계층 세트에 포함되는 계층들(계층 세트)은 기본 계층만이다. 기본 계층들로 이루어지는 출력 계층 세트를 디코딩하는 것이 의미가 있는 경우는, 기본 계층의 출력 플래그가 1인 경우만이다. 그 이외에는 추가 출력 계층 세트를 디코딩하는 것이 의미가 없다. 따라서, 계층 세트 수가 0인 경우에 추가 출력 계층 세트 수를 디코딩하지 않고 상기 구성을 갖는 출력 계층 세트 정보 디코딩 수단은, 적당하다.
상기 구성을 갖는 출력 계층 세트 정보 디코딩 수단에 따르면, 계층 세트 수가 1인 경우, 추가 출력 계층 세트 수의 신택스 요소에 관한 디코딩/코딩을 생략하는 것이 가능하다.
(E2: 디폴트 출력 계층 식별자)
디폴트 출력 계층 식별자 default_target_output_layer_idc는, 출력 계층 세트(출력 계층 정보)의 도출 처리를 지정하는 신택스 요소이다. 본 실시예의 출력 계층 세트 정보 디코딩 수단은, 디폴트 출력 계층 식별자에 기초하여, 출력 계층 세트 OLS#i(i=1..(VpsNumLayerSets-1))의 출력 계층 정보(OutputLayerFlag)를 도출한다.
(1) 디폴트 출력 계층 식별자 = 0의 경우: 기본 계층 세트(i=1..(VpsNumLayerSets -1)까지의 출력 계층 세트 OLS#i)에 대하여, 후술하는 output_layer_flag를 생략하고, 각각의 출력 계층 세트에 포함되는 모든 계층을 출력 계층으로 사용한다. 추가 계층 세트에 대해서는, output_layer_flag에 의해 명시적으로 출력 계층을 지정한다.
(2) 디폴트 출력 계층 식별자 = 1인 경우: 기본 계층 세트(i=1..(VpsNumLayerSets - 1)까지의 범위의 출력 계층 세트 OLS#i)에 대해서, 각각의 출력 계층 세트에 포함되는 최고 계층 식별자를 출력 계층으로 사용한다. 추가 계층 세트에 대해서는, output_layer_flag에 의해 명시적으로 출력 계층을 지정한다.
(3) 디폴트 출력 계층 식별자 = 2인 경우: 모든 출력 계층 세트(기본 계층 세트 및 추가 계층 세트, i=0...(NumOutputLayerSet-1)까지의 범위의 출력 계층 세트 OLS#i)에 대해서, 명시적으로 output_layer_flag[i][j]을 코딩하여 출력 계층을 지정한다.
디폴트 출력 계층 식별자 값 중, 3 이상의 값은 장래의 사양 확장을 위해 예약된 값이다.
본 실시예의 출력 계층 세트 정보 디코딩 수단은, 계층 세트 수 VpsNumLayerSets에 따라, 디폴트 출력 계층 식별자(default_target_output_layer_idc)의 디코딩을 생략한다.
보다 구체적으로는, 본 실시예의 출력 계층 세트 정보 디코딩 수단은, 계층 세트 수 VpsNumLayerSets가 1보다 큰 경우(vps_num_layer_sets_minus1 > 0의 경우), 디폴트 출력 계층 식별자(default_target_output_layer_idc)을 디코딩하고, 계층 세트 수 VpsNumLayerSets가 1과 다름없을 경우(vps_num_layer_sets_minus1=0의 경우), 디폴트 출력 계층 식별자(default_target_output_layer_idc)을 디코딩하지 않는다. 디폴트 출력 계층 식별자(default_target_output_layer_idc가 코딩 데이터에 드러나지 않을 경우에는, 본 실시예의 출력 계층 세트 정보 디코딩 수단은, 디폴트 출력 계층 식별자(default_target_output_layer_idc)에 0을 추정한다 (상기, 디폴트 출력 계층 식별자 = 2 이외의 경우를 추정한다).
상기 구성의 출력 계층 세트 정보 디코딩 수단에 의하면, 출력 계층 세트 수 NumOutputLayerSets 대신에 계층 세트 수 VpsNumLayerSets를 디코딩이 조건으로 하는 것으로, 추가 출력 계층 세트 수 (num_add_output_layer_sets)에 관한 신택스 요소를 디코딩하고, 추가 출력 계층 세트 수로부터 결정되는 출력 계층 세트 수 NumOutputLayerSets(=VpsNumOutputLayerSets + num_add_output_layer_sets)을 도출하지 않고, 디폴트 출력 계층 식별자에 관한 신택스 요소를 디코딩할 수 있다. 즉, 디폴트 출력 계층 식별자의 디코딩에 관한 처리를 간략화할 수 있다.
(E3: 계층 세트 식별자)
계층 세트 식별자는, 출력 계층 세트에 연관되는 계층 세트를 특정하는 값이다. 본 실시예의 출력 계층 세트 정보 디코딩 수단은, 신택스 요소 output_layer_set_idx_minus1[i]를 디코딩하고, output_layer_set_idx_minus1[i]에 1을 추가한 값의 계층 세트 식별자가 가리키는 계층 세트(LS#(output_layer_set_idx_minus1[i] + 1))를 출력 계층 세트 OLS#i에 연관시킨다.
출력 계층 세트 정보 디코딩 수단은, 코딩 데이터에 있어서, 출력 계층 세트 OLS#i의 계층 세트 식별자 output_layer_set_idx_minus1[i]가 부재하는 경우(생략되었을 경우), 해당 식별자를 추정할 수 있다. 예를 들어, i=0..VpsNumLayerSets-1까지의 범위의 출력 계층 세트 OLS#i의 경우에는, 계층 세트 식별자를, output_layer_set_minus1[i] = (i - 1)로 가정한다. 본 실시예에 있어서, 계층 세트 식별자에 관한 신택스 요소는, "계층 세트 식별자의 값 - 1"로 표현된다. 그러나, 요소는 이에 한정되지 않는다. 대신에, 요소는 "계층 세트 식별자 값" 그 자체일 수 있다.
(E4: 출력 계층 정보)
출력 계층 정보는, 출력 계층 세트에 연관된 계층 세트에 포함되는 각각의 계층을 출력 타겟 계층으로 사용할지를 나타내는 플래그 OutputLayerFlag[i][j]이다. 본 실시예의 출력 계층 세트 정보 디코딩 수단은, 신택스 요소 output_layer_flag[i][j]에 기초하여, 출력 계층 정보 OutputLayerFlag[i][j]를 디코딩한다. output_layer_flag[i][j]는, 출력 계층 세트 i에 포함되는 j번째 계층을 출력 타겟 계층으로 사용할지 여부를 나타내는 플래그이다. 값이 참(1)인 경우에는, 해당 플래그는, 상기 계층을 출력 타겟 계층으로 사용하는 것을 나타낸다. 값이 거짓(0)인 경우에는, 상기 계층을 출력 타겟 계층으로 사용하지 않는다.
출력 계층 세트 정보 디코딩 수단은, 부분 또는 모든 출력 계층 정보의 디코딩을 생략할 수 있고, 추정 또는 또 다른 신택스 요소의 값에 기초한 도출 처리에 의해 출력 계층 정보를 결정할 수 있다. 예를 들어, 디폴트 출력 계층 식별자(default_target_output_layer_idc)에 기초하여, 다음의 (1) 내지 (3)에 나타내는 도출 처리에 기초하여, 출력 계층 세트 OLS#i(i=1..VpsNumLayerSets-1)의 출력 계층 정보를 결정할 수 있다. 기본 계층만으로 이루어지는 출력 계층 세트 OLS#0의 출력 계층 정보(즉, 계층 세트 식별자의 값이 0인 경우에, 출력 계층 세트의 기본 계층에 관한 출력 계층 플래그)는, OutputLayerFlag[0][0]=1로 가정될 수 있다.
(1) 디폴트 출력 계층 식별자 = 0인 경우: 출력 계층 세트 정보 디코딩 수단은, 이하의 의사 코드에 도시한 바와 같이, i=0..vps_number_layer_sets_minus1의 기본 출력 계층에 대하여, 모든 계층의 출력 계층 플래그 OutputLayerFlag[i][j]를 1로 추정한다. 여기서, 변수 LayerSetIdx[i]는, 출력 계층 세트 OLS#i에 연관된 계층 세트를 나타내는 계층 세트 식별자를 나타내고, (output_layer_set_idx_minus1[i] + 1)로 설정된다. 변수 NumLayersInIdList[LayerSetIdx[i]]는, 계층 세트 LS#(LayerSetIdx[i])에 포함된 계층 수이다(이하, 상기와 마찬가지임).
for (j=0; j < NumLayersInIdList[LayerSetIdx[i]]; j++){OutputLayerFlag[i][j] = 1;
}
(2) 디폴트 출력 계층 식별자 = 1인 경우: 출력 계층 세트 정보 디코딩 수단은, i=0..vps_number_layer_sets_minus1의 기본 출력 계층에 대하여, 각각의 출력 계층 세트에 포함되는 최고 계층 식별자를 갖는 일차 계층을, 출력 계층으로 사용한다. 출력 계층 정보(OutputLayerFlag)는, 이하에 기술된 의사 코드에 의해 도출된다.
for(j=0; j < NumLayersInIdList[LayerSetIdx[i]];j++){
if(계층 j가 LayerIdList[LayerSetIdx[i]]에 있는 최고 계층 식별자를 갖는 일차 계층이다){
OutputLayerFlag[i][j]=1;
} else {
OutputLayerFlag[i][j]=0;
}
}
계층 j가 일차 계층인지의 여부는, 계층 j에 관한 차원 ID를 나타내는 신택스 "dimension_id[i][j]"로부터 도출되는 확장성 ID(ScalabilityId)와, 도 13에 도시된 확장 가능 ID(ScalabilityId)와 확장성 타입(Scalability Dimension) 간의 대응표에 따라 결정되고, 이 표 중, 항목 "보조"의 값(AuxId[j] = ScalabilityId[j][3])에 따라 결정된다. 즉, 이 항목의 값이 0일 경우(AuxId[j] == 0), 그 값은 계층 j가 일차 계층인 것을 나타낸다. 항목의 값이 0보다 큰 경우(AuxId[j] > 0), 그 값은 계층 j가 보조 계층(혹은, AUX 계층)인 것을 나타낸다. 보조 계층은, 일차 계층에 속하는 픽처에 대한 심도 맵, 및 알파 채널(alpha channel)과 같은 보조 픽처에 대해 통지하기 위한 계층이다. 일차 계층은, 휘도/색차를 포함하는 픽처에 대한 통지를 발행하는 계층이다. 보조 픽처는 일차 계층으로 분류되지 않는다.
(3) 디폴트 출력 계층 식별자 = 2인 경우: 각각의 출력 계층 세트 OLS#i에 있어서, 명시적으로 통지되는 출력 계층 정보에 관한 신택스 요소 "output_layer_flag[i][j]"에 따라, 출력 계층을 결정한다. 즉, 이하의 의사 코드에 도시한 바와 같이, 출력 계층 세트 OLS#i의 j번째 계층 j의 출력 계층 정보(OutputLayerFlag[i][j])에, 신택스 요소 output_layer_flag[i][j]의 값을 설정한다.
for(j=0; j < NumLayersInIdList[LayerSetIdx[i]];j++){
OutputLayerFlag[i][j] = output_layer_flag[i][j];
}
출력 계층 세트 정보 디코딩 수단은, 도출된 출력 계층 정보(OutputLayerFlag)에 기초하여, 각각의 출력 계층 세트 OLS#i(i=0..NumOuputLayerSets-1)의 출력 계층 수 NumOptLayersInOLS[i]를, 후술하는 의사 코드에 의해 도출할 수 있다. 즉, 출력 계층 세트 OLS#i의 출력 계층 수 NumOptLayersInOLS[i]는, 계층 j의 출력 계층 플래그 OutputLayerFlag[i][j]가 "출력 계층"을 나타내는 경우의 플래그 수이다.
NumOptLayersInOLS[i] = 0;
for(j=0; j < NumLayersInIdList[LayerSetIdx[i]];j++){
NumOptLayersInOLS[i] += OuputLayerFlag[i][j];
}
(E5:PTL 지정 식별자)
PTL 지정 식별자(profile_level_tier_idx)(도 12의 SYNVPS0K)... 출력 계층 세트 OLS#i(i=1..NumOutputLayerSets-1)에 적용하는 PTL 정보를 지정하기 위한 신택스 요소이다. PTL 지정 식별자(profile_tier_level[i])에 의해 지정된 (profile_tier_level_idx[i])번째 PTL 정보가, 출력 계층 세트 OLS#i에 적용된다.
(출력 계층 세트에 관한 비트 스트림 적합성)
출력 계층 세트가 만족시킬 필요가 있는 각종 타입의 비트 스트림 적합성에 대해서 설명한다.
종래 기술에 있어서 문제를 야기하는, 출력 계층을 갖지 않는 출력 계층 세트의 정의를 금지하기 위해서, 본 실시예에 있어서, 이미지 디코딩 장치(1) 및 이미지 코딩 장치(2)는, 각각 적어도, 후술하는 출력 계층 세트에 관한 적합성 조건 CA1을 만족하는 코딩 데이터를 디코딩하여 생성할 필요가 있다.
CA1: 각각의 출력 계층 세트 OLS#i(i=0..NumOutputLayerSets-1)는, 하나 이상의 출력 계층을 갖는다(또는, 적어도 1개의 출력 계층을 갖는다).
조건 CA1은, 출력 계층 플래그 OutputLayerFlag를 사용하여, 조건 CA2, 및 조건 CA3 중 임의의 것으로 표현될 수 있다.
CA2: 각각의 출력 계층 세트 OLS#i(i=0..NumOutputLayerSets-1)에 있어서, 출력 계층 플래그의 총합은 1 이상이다(또는 0보다 크다)(모든 i=0..NumOutputLayerSets-1에 대하여, j=0.. NumLayersInIdList[LayerSetIdx[i]]에 관한 OutputLayerFlag[i][j]의 합은 1 이상이다).
조건 CA2에 있어서, 출력 계층 세트 OLS#i의 출력 계층 플래그의 총합 SumOfOutputLayerFlag은, 예를 들어, 이하의 의사 코드에 의해 도출된다.
SumOfOutputLayerFlag = 0;
for(j=0; j < NumLayersInIdList[LayerSetIdx[i]];j++){
SumOfOutputLayerFlag += OutputLayerFlag[i][j];
}
CA3: 모든 i=0..NumOutputLayerSets-1에 대하여, 0.. NumLayersInIdList[LayerSetIdx[i]]를 만족시키는 적어도 1개의 j에 대하여 OutputLayerFlag[i][j]이 1과 동일하다.
바꿔 말하면, 상기 적합성 조건 CA1 내지 CA3은, 출력 계층을 갖지 않는 출력 계층 세트의 정의를 금지한다. 코딩 데이터에 관하여, 출력 계층 세트에 대해서 상기 적합성 조건 CA1(또는 CA2 또는 CA3)을 만족시키는 것에 의해, 이미지 디코딩 장치(1)에 있어서, 상기 코딩 데이터로부터 디코딩되는 출력 계층 세트는, 적어도 1개의 출력 계층의 디코딩 픽처를 출력 픽처로서 출력되는 것이 보장된다. 따라서, 종래 기술에 있어서 문제를 야기했던, 이미지 디코딩 장치가, 코딩 데이터로부터 출력 계층을 갖지 않는 출력 계층 세트의 각각의 계층을 디코딩하는 경우에도, 출력되는 픽처가 없고, 예상하지 않는 동작을 발생시킬 가능성을 방지할 수 있다.
또한, 이미지 디코딩 장치(1) 및 이미지 코딩 장치(2)는, 각각 후술하는 출력 계층 세트에 관한 적합성 조건 CB1을 만족시키는 코딩 데이터를 디코딩하여 생성하는 것이 바람직하다.
조건 CB1: 2 이상의 출력 계층 세트가, 동일 계층 세트에 연관되고, 출력 계층 수가 동일할 때, 상기 2 이상의 출력 계층에 있어서, 적어도 1개의 동일 계층에 관한 출력 계층 플래그의 값은 서로 상이하다.
상기 조건 CB1은, 조건 CB2 및 CB3 중 임의의 것으로 대신 표현될 수 있다.
조건 CB2: 출력 계층 세트 OLS#i(i=0..NumOutputLayerSets-1)의 계층 세트 식별자 LayerSetIdx[i]와, 출력 계층 세트 OLS#j (j=0..NumOutputLayerSets-1, i!= j)의 계층 세트 식별자 LayerSetIdx[j]가 동등하고, 출력 계층 세트 OLS#i의 출력 계층 수 NumOptLayersInOLS[i]와, 출력 계층 세트 OLS#j의 출력 계층 수 NumOptLayersInOLS[j]가 동등할 때, 적어도 1개의 계층 n(n=0..NumOptLayersInOLS[i]-1)에 관해서, 출력 계층 세트 OLS#i의 출력 계층 플래그 OuputLayerFlag[i][n]와 출력 계층 세트 OLS#j의 출력 계층 플래그 OuputLayerFlag[i][n]는 상이하다.
조건 CB3: 출력 계층 세트 OLS#i(i=0..NumOutputLayerSets-1)의 계층 세트 식별자 LayerSetIdx[i]와, 출력 계층 세트 OLS#j(j=0..NumOutputLayerSets-1, i!=j)의 계층 세트 식별자 LayerSetIdx[j]가 동등할 때, 출력 계층 세트 OLS#i의 출력 계층 플래그의 리스트 OutputLayerFlag[j][]와 출력 계층 세트 OLS#j의 출력 계층 플래그의 리스트 OutputLayerFlag[j][]는 상이하다.
바꿔 말하면, 조건 CB1 내지 CB3은, 동일한 출력 계층 구성을 갖는 출력 계층 세트의 중복 정의를 금지한다. 코딩 데이터에 관해서, 출력 계층 세트에 대해 상기 적합성 조건 CB1(또는 CB2 또는 CB3)을 만족하는 것에 의해, 이미지 디코딩 장치(1)에 있어서, 상기 코딩 데이터로부터 디코딩되는 2 이상의 출력 계층 세트는, 서로 상이한 출력 계층 구성을 갖는 것이 보장된다. 따라서, 이미지 디코딩 장치는, 코딩 데이터로부터, 중복 정의된 출력 계층 세트에 관한 디코딩을 방지할 수 있다. 또한, 출력 계층 세트의 중복 정의에 관한 코드량을 삭감할 수 있다.
이미지 디코딩 장치(1) 및 이미지 코딩 장치(2)는, 각각 출력 계층 세트의 중복 정의의 금지에 대한 적합성 조건으로서, 조건 CB1 내지 CB3 대신에 출력 계층 플래그와 PTL 정보의 조합 시에, 중복 정의를 금지하는 적합성 조건 CB4 내지 CB6을 만족시키는 코딩 데이터를 디코딩하여 생성할 수 있다.
조건 CB4: 2 이상의 출력 계층 세트가, 동일 계층 세트에 연관되고, 출력 계층 수가 동일할 때, 상기 2 이상의 출력 계층에 있어서, 각각의 출력 계층 세트에 연관된 PTL 정보가 상이하거나, 또는 적어도 1개의 동일 계층에 관한 출력 계층 플래그의 값이 서로 상이하다.
조건 CB5: 출력 계층 세트 OLS#i(i=0..NumOutputLayerSets-1)의 계층 세트 식별자 LayerSetIdx[i]와, 출력 계층 세트 OLS#j(j=0..NumOutputLayerSets-1, i!= j)의 계층 세트 식별자 LayerSetIdx[j]가 동등하고, 출력 계층 세트 OLS#i의 출력 계층 수 NumOptLayersInOLS[i]와, 출력 계층 세트 OLS#j의 출력 계층 수 NumOptLayersInOLS[j]가 동등할 때, 출력 계층 세트에 연관된 PTL 정보가 서로 상이하거나, 또는 적어도 1개의 계층 n(n=0..NumOptLayersInOLS[i]-1)에 관해서, 출력 계층 세트 OLS#i의 출력 계층 플래그 OuputLayerFlag[i][n]와 출력 계층 세트 OLS#j의 출력 계층 플래그 OuputLayerFlag[i][n]는 상이하다.
조건 CB6: 출력 계층 세트 OLS#i(i=0..NumOutputLayerSets-1)의 계층 세트 식별자 LayerSetIdx[i]과, 출력 계층 세트 OLS#j (j=0..NumOutputLayerSets-1, i!= j)의 계층 세트 식별자 LayerSetIdx [j]이 동등할 때, 출력 계층 세트 OLS#i의 PTL 정보와 출력 계층 플래그를 포함하는 세트는 서로 상이하다.
여기서, 각각의 출력 계층 세트에 연관된 PTL 정보의 차이는, "출력 계층 세트 OSL#i 출력 계층 세트 OLS#i의 PTL 지정 식별자(profile_tier_level[i])에 의해 지정되는 PTL 정보와, 출력 계층 세트 OLS#j의 PTL 지정 식별자IDX(profile_tier_level [j])에 의해 지정되는 PTL 정보에서, 적어도, 프로파일 공간 general_profile_space, 프로파일 식별자 general_profile_idc, 레벨 식별자 general_level_idc, 티아 플래그 general_tier_flag, 및 프로파일 호환 플래그 general_compatibility_flag[i]의 신택스 요소들의 세트 P= {general_profile_space, general_profile_idc, general_level_idc, general_tier_flag, general_compatibility_flag[i](i=0..31)}가 상이한 것"인 것이 바람직하다.
바꿔 말하면, 조건 CB4 내지 CB6은, 동일한 출력 계층 구성 및 동일한 프로파일/레벨을 갖는 출력 계층 세트의 중복 정의를 금지한다. 코딩 데이터에 관해서, 출력 계층 세트에 대해 상기 적합성 조건 CB4(또는 CB5 또는 CB6)을 만족시키는 것에 의해, 이미지 디코딩 장치(1)에 있어서, 상기 코딩 데이터로부터 2 이상의 출력 계층 세트는, 이들 출력 계층 세트가 디코딩될 때, 서로 상이한 출력 계층 구성, 또는 상이한 프로파일/ 레벨을 갖는 것이 보장된다. 따라서, 이미지 디코딩 장치는, 코딩 데이터로부터, 중복 정의된 출력 계층 세트에 관한 디코딩을 방지할 수 있다. 또한, 출력 계층 세트의 중복 정의에 관한 코드량을 삭감할 수 있다.
또한, 이미지 디코딩 장치(1) 및 이미지 코딩 장치(2)는, 각각 후술되는 출력 계층 세트에 연관된 계층 세트에 관한 적합성 조건 CC1을 만족시키는 코딩 데이터를 디코딩하여 생성하는 것이 바람직하다.
조건 CC1: 계층 세트 LS#i(i=0..VpsNumLayerSets-1)는, 기본 계층을 포함한다.
상기 조건 CC1은, 조건 CC2 내지 CC4 중 임의의 것으로 대신 표현될 수 있다.
CC2: 계층 세트 LS#i(i=0..VpsNumLayerSets-1)은, 계층 식별자가 0인 계층을 포함한다.
CC3: 계층 세트 LS#i(i=0..VpsNumLayerSets-1)의 계층 ID 리스트 LayerIdList[i]의 0번째 요소 LayerIdList[i][0]는, 계층 식별자가 0인 계층이다.
CC4: 계층 0이 계층 세트 LS#i(i=0..VpsNumLayerSets-1)에 포함되는지의 여부를 나타내는 플래그 layer_id_included_flag[i][0]의 값은 1이다(i=0..VpsNumLayerSets-1에 대하여 layer_id_included_flag[i][0]=1이다).
따라서, 본 실시예의 이미지 디코딩 장치(1) 및 이미지 코딩 장치(2)는, 각각 적합성 조건 CC(CC는 CC1 내지 CC4 중 임의의 것임)을 만족시키는 코딩 데이터를 디코딩하여 생성하는 것이 바람직하다.
바꿔 말하면, 조건 CC1 내지 CC4은, 출력 계층 세트에 있어서, 디코딩 타겟으로 하는 계층으로서, 기본 계층(계층 식별자가 0인 계층)을 항상 포함하는 것을 의미한다. 코딩 데이터에 관해서, 출력 계층 세트에 연관된 계층 세트(즉, 모든 계층 세트)에 대해 상기 적합성 조건 CC(CC는 CC1 내지 CC4 중 임의의 것임)을 만족시키는 것에 의해, 이미지 디코딩 장치(1)에 있어서, 상기 코딩 데이터로부터 디코딩되는 출력 계층 세트는, 반드시 기본 계층을 디코딩하는 것이 보장된다. 따라서, 특정 계층 세트 A를 포함하는 코딩 데이터로부터 비트 스트림 추출 처리에 의해 생성된, 계층 세트 A의 서브세트인 계층 세트 B를 포함하는 코딩 데이터를 디코딩할 동안에, 기본 계층(계층 식별자 0인 계층)의 디코딩만을 지원하는 디코딩 장치(V1)(예를 들어, HEVC 메인 프로파일에서 규정된 디코딩)에 있어서도, 이하의 이유로 인해 문제없이 동작이 수행될 수 있다.
Figure 112016098258115-pct00011
추출된 계층 세트 B를 포함하는 코딩 데이터는, 계층 식별자 0의 VCL(슬라이스 세그먼트) 및 nonVCL(파라미터 세트(VPS/SPS/PPS))를 포함한다.
Figure 112016098258115-pct00012
디코딩 장치(V1)는, 계층 식별자 0의 슬라이스 세그먼트를 디코딩한다. 계층 식별자 0의 슬라이스 세그먼트가 참조하는 SPS의 프로파일이 디코딩 가능한 것을 나타내는 경우에, 디코딩을 행한다. 계층 식별자 0의 슬라이스 세그먼트가 참조하는 SPS의 프로파일 등의 PTL 정보가 디코딩 가능한 것을 나타내지 않을 경우에는, 디코딩을 행하지 않을 수 있다.
디코딩 장치(V1)는 디코딩 또는 디코딩 정지를 행할 수 있다. 즉, 디코딩 장치(V1)는 임의의 문제없이 디코딩을 수행(지원)할 수 있다.
반대로, 조건 CC1 내지 CC4을 만족하지 않는 코딩 데이터를 계층 세트 디코딩 장치(V1)로 디코딩한다. 즉, 기본 계층을 포함하지 않는 계층 세트를 디코딩 장치(V1)로 디코딩하는 경우에는, 이하의 문제가 발생한다.
Figure 112016098258115-pct00013
코딩 데이터 내에 계층 식별자 0의 슬라이스 세그먼트가 존재하지 않는다. 따라서, 디코딩 장치(V1)는 슬라이스 세그먼트를 디코딩하지 않는다.
Figure 112016098258115-pct00014
슬라이스 세그먼트의 slice_pic_parameter_set_id를 디코딩하지 않는다. 따라서, PPS가 활성화되지 않는다(마찬가지로, SPS 및 VPS도 활성화되지 않는다).
Figure 112016098258115-pct00015
디코딩 장치(V1)는, 활성화되는 SPS (및 VPS)을 디코딩하지 않는다. SPS(VPS)에 포함되는 프로파일 등의 PTL 정보를 디코딩하지 않는다. 따라서, 디코딩을 행하지 않는다.
Figure 112016098258115-pct00016
내부 버퍼의 코딩 데이터가 고갈될 때, 디코딩 장치(V1)는 코딩 데이터에 대한 요구를 코딩 장치(또는 코딩 데이터 송신 장치, 코딩 데이터 버퍼링 장치)에 발행한다. 요구된 코딩 데이터는, 디코딩해야 할 임의의 타겟을 갖지 않는다. 따라서, 요구된 출력 이미지(예를 들어, 1 픽처)를 디코딩하려고 시도하여, 영구히 코딩 데이터에 대한 요구와 디코딩을 계속할 가능성이 있다.
Figure 112016098258115-pct00017
적합성 조건 CC(CC는 CC1 내지 CC4 중 임의의 것임)을 만족시키는 경우에, 계층 세트 A (계층 세트 A를 포함하는 코딩 데이터로부터, 비트 스트림 추출에 의해 생성된, 계층 세트 A의 서브세트인 계층 세트 B)를 포함하는 코딩 데이터가 디코딩 가능한 것을 보장할 수 있다.
(출력 제어 유닛(16))
출력 제어 유닛(16)은, 외부로부터 공급되는 출력 지정 정보, 파라미터 메모리(13)에 저장된 활성 VPS의 계층 세트 정보, 및 출력 계층 세트 정보에 기초하여, 출력 제어 정보로서, 타겟 출력 계층 세트 TargetOptLayerSet의 계층 구조를 나타내는 타겟 출력 계층 ID 리스트 TargetOptLayerIdList 및 타겟 출력 계층 세트를 디코딩하는 데에 필요한 타겟 디코딩 계층 ID 리스트 TargetDecLayerIdList를 도출하고, 그 결과를, 비트 스트림 추출 유닛(17) 및 디코딩 픽처 관리 유닛(15)에 공급한다.
외부로부터 공급되는 출력 지정 정보에는, 적어도, 처리 타겟으로 된 출력 계층 세트를 식별하기 위한 정보로서, 타겟 출력 계층 세트 식별자 TargetOLSIdx가 포함된다. 출력 제어 유닛(16)이 참조하는 활성 VPS는, 미리 디코딩되어, 파라미터 메모리(13)에 저장되어 있는 것으로 가정한다. 활성 VPS를 식별하기 위해서, 활성 VPS 식별자를, 출력 지정 정보에 포함할 수 있다.
타겟 출력 계층 ID 리스트 TargetOptLayerIdList 및 타겟 디코딩 계층 ID 리스트 TargetDecLayerIdList는, 예를 들어, 후술되는 의사 코드에 의해 도출된다.
(TargetDecLayerIdList 및 TargetOptLayerIdList의 도출을 나타내는 의사 코드) for (k=0, j=0; j < NumLayersInIdList [LayerSetIdx[ TargetOLSIdx]]; j++){ //SA01
TargetDecLayerIdList[j] = LayerIdList[LayerSetIdx [TargetOLSIdx] ][j]; //SA02
if (OutputLayerFlag[TargetOLSIdx][j]){ //SA03
TargetOptLayerIdList[k] = LayerIdList[LayerSetIdx [TargetOLSIdx ][j]; //SA04
k++; //SA05
}
}//end of loop //SA07
상기 의사 코드를 스텝으로 나타내면, 다음과 같다.
(SA01) 타겟 출력 계층 세트 OLS#(TargetOLSIdx)의 계층 ID 리스트 TargetOptLayerIdList[] 및 타겟 디코딩 계층 ID 리스트 TargetDecLayerIdList[]의 도출에 관한 루프의 개시점이다. 루프의 개시 전에, 변수 k 및 j는 0으로 초기화된다. 루프 내의 처리는, 변수 j가, 타겟 출력 계층 세트 OLS#(TargetOLSIdx)에 연관된 계층 세트 LS#(LayerSetIdx[TargetOL SIdx)에 포함되는 계층 수 "NumLayersInIdList [LayerSetIdx[ TargetOLSIdx]]" 미만일 때에 실행된다. 변수 j는, 루프 내의 처리가 실행될 때마다, "1"만큼 증가한다.
(SA02) 출력 계층 세트 OLS#(TargetOLSIdx)에 연관된 계층 세트 LS#(LayerSetIdx [ TargetOLSIdx])의 j번째 요소를, 타겟 디코딩 계층 ID 리스트 TargetDecLayerIdList[]의 j번째 요소에 추가한다(즉, TargetDecLayerIdList[j]= LayerIdList [LayerSetIdx[TargetOLSIdx]][j];).
(SA03) 출력 계층 세트 OLS#(TargetOLSIdx)에 있어서 j번째 계층이 출력 계층인지 여부를 결정한다. 즉, 출력 계층 플래그 OutputLayerFlag[TargetOLSIdx][j]가 1(참)(출력 계층)일 경우, 처리는 스텝 SA04으로 천이한다. 출력 계층 플래그 OutputLayerFlag[TargetOLSIdx ][j]이 0(가짜)일 경우(출력 계층이 아닌 경우), 처리는 스텝 SA0A으로 천이한다.
(SA04) 출력 계층 세트 OLS#(TargetOLSIdx)에 연관된 계층 세트 LS#(LayerSetIdx [TargetOLSIdx])의 j번째 요소를, 출력 계층 세트 OLS#(TargetOLSIdx)의 계층 ID 리스트 TargetOptLayerIdList[]의 k번째 요소에 추가한다(즉, TargetOptLayerIdList[k] = LayerIdList [LayerSetIdx[TargetOLSIdx] ][j];).
(SA05) 변수 k에 "1"만큼 가산한다 (즉, k++;).
(SA0A) 타겟 출력 계층 세트 OLS#(TargetOLSIdx)의 계층 ID 리스트 TargetOptLayerIdList[] 및 타겟 디코딩 계층 ID 리스트 TargetDecLayerIdList[]의 도출에 관한 루프의 종단점이다.
위에 설명한 바와 같이, 출력 제어 유닛(16)은, 외부로부터 공급되는 출력 지정 정보, 파라미터 메모리(13)에 저장된 활성 VPS의 계층 세트 정보, 및 출력 계층 세트 정보에 기초하여, 출력 제어 정보로서, 타겟 출력 계층 세트 TargetOptLayerSet의 계층 구조를 나타내는 타겟 출력 계층 ID 리스트 TargetOptLayerIdList 및 타겟 출력 계층 세트를 디코딩하는 데에 필요한 계층 구조를 나타내는 타겟 디코딩 계층 ID 리스트 TargetDecLayerIdList를 도출할 수 있다. 출력 제어 유닛(16)에 있어서, 지정된 출력 계층 세트 OLS#(TargetOLSIdx)가 출력 계층을 갖지 않은 경우에, 출력 계층 세트에 포함되는, 적어도 1개의 계층을 출력 계층으로서 지정하는 것이 바람직하다. 예를 들어, 출력 계층 세트에 포함되는 모든 계층, 또는 최고 계층 식별자를 갖는 일차 계층을 출력 계층으로 지정할 수 있다.
(픽처 디코딩 유닛(14))
픽처 디코딩 유닛(14)은, 입력되는 VCL NAL 유닛, 및 활성 파라미터 세트에 기초하여 디코딩 픽처를 생성하여, 디코딩 픽처를 출력한다.
도 17을 사용하여, 픽처 디코딩 유닛(14)의 개략적 구성을 설명한다. 도 17은, 픽처 디코딩 유닛(14)의 개략적 구성을 도시한 기능 블록도이다.
픽처 디코딩 유닛(14)은, 슬라이스 헤더 디코딩 유닛(141), 및 CTU 디코딩 유닛(142)을 포함한다. CTU 디코딩 유닛(142)은, 예측 잔차 복원 유닛(1421), 예측 이미지 생성 유닛(1422) 및 CTU 디코딩 이미지 생성 유닛(1423)을 더 포함한다.
(슬라이스 헤더 디코딩 유닛(141))
슬라이스 헤더 디코딩 유닛(141)은, 입력된 VCL NAL 유닛과 활성 파라미터 세트에 기초하여, 슬라이스 헤더를 디코딩한다. 디코딩한 슬라이스 헤더는, 입력되는 VCL NAL 유닛과 함께, CTU 디코딩 유닛(142)에 출력된다.
(CTU 디코딩 유닛(142))
개략적으로는, CTU 디코딩 유닛(142)은, VCL NAL 유닛에 포함되는 입력되는 슬라이스 세그먼트(슬라이스 헤더 및 슬라이스 데이터) 및 활성 파라미터 세트에 기초하여, 픽처를 구성하는 슬라이스들에 포함되는 각각의 CTU에 대응하는 영역의 디코딩 이미지를 디코딩하여 획득함으로써, 슬라이스의 디코딩 이미지를 생성한다. CTU의 디코딩 이미지는, CTU 디코딩 유닛(142)의 예측 잔차 복원 유닛(1421), 예측 이미지 생성 유닛(1422) 및 CTU 디코딩 이미지 생성 유닛(1423)에 의해 생성된다.
예측 잔차 복원 유닛(1421)은, 입력된 슬라이스 데이터에 포함되는 예측 잔차 정보(TT 정보)를 디코딩해서, 타겟 CTU의 예측 잔차를 생성해서 출력한다.
예측 이미지 생성 유닛(1422)은, 입력된 슬라이스 데이터에 포함되는 예측 정보(PT 정보)가 나타내는 예측 방법과 예측 파라미터에 기초하여, 예측 이미지를 생성해서 그 이미지를 출력한다. 여기서, 필요에 따라, 참조 픽처의 디코딩 이미지 및 코딩 파라미터를 이용한다. 예를 들어, 인터 예측, 또는 계층 간 이미지 예측을 이용하는 경우에, 디코딩 픽처 관리 유닛(15)으로부터 대응하는 참조 픽처를 판독한다.
CTU 디코딩 이미지 생성 유닛(1423)은, 입력되는 예측 이미지를 예측 잔차에 가산하고 타겟 CTU의 디코딩 이미지를 생성해서 출력한다.
<픽처 디코딩 유닛(14)의 디코딩 처리>
이하, 도 18을 참조하여, 픽처 디코딩 유닛(14)에 있어서 타겟 계층 i의 픽처 디코딩의 개략적인 동작에 대해서 설명한다. 도 18은, 픽처 디코딩 유닛(14)에 있어서 타겟 계층 i의 픽처를 구성하는 슬라이스 단위의 디코딩 처리를 도시하는 흐름도이다.
(SD101) 디코딩 타겟 슬라이스의 선두 슬라이스 플래그(first_slice_segment_in_pic_flag)(도 15의 (d)의 SYNSH01)를 디코딩한다. 선두 슬라이스 플래그가 1인 경우, 디코딩 타겟 슬라이스는, 픽처 내의 디코딩 순서(이후, 처리 순서)에서 선두 슬라이스이며, 디코딩 타겟 슬라이스의 선두 CTU의 픽처 내에서의 래스터 스캐닝(raster scanning) 순서에서의 위치(이후, CTU 주소)를 0으로 설정한다. 또한, 픽처 내의 처리된 CTU 수의 카운터 numCtu(이후, 처리된 CTU 수 numCtu)를 0으로 설정한다. 선두 슬라이스 플래그가 0인 경우, 후술하는 SD106에서 디코딩되는 슬라이스 주소에 기초하여, 디코딩 타겟 슬라이스의 선두 CTU 주소를 설정한다.
(SD102) 디코딩 타겟 슬라이스의 디코딩 동안, 참조하는 활성 PPS를 지정하는 활성 PPS 식별자(slice_pic_parameter_set_id)(도 15의 (d)의 SYNSH02)를 디코딩한다.
(SD104) 활성 파라미터 세트를 파라미터 메모리(13)로부터 페치한다. 즉, 디코딩 타겟 슬라이스가 참조하는 활성 PPS 식별자(slice_pic_parameter_set_id)와 동일한 PPS 식별자(pps_pic_parameter_set_id)를 갖는 PPS를 활성 PPS로 간주하고, 파라미터 메모리(13)로부터, 활성 PPS의 코딩 파라미터를 페치한다(판독한다). 또한, 활성 PPS 내의 활성 SPS 식별자(pps_seq_parameter_set_id)와 동일한 SPS 식별자(sps_seq_parameter_set_id)를 갖는 SPS를 활성 SPS로 간주하고, 파라미터 메모리(13)로부터, 활성 SPS의 코딩 파라미터를 페치한다. 또한, 활성 SPS 내의 활성 VPS 식별자(sps_video_parameter_set_id)와 동일한 VPS 식별자(vps_video_parameter_set_id)를 갖는 VPS를 활성 VPS로 간주하고, 파라미터 메모리(13)로부터, 활성 VPS의 코딩 파라미터를 페치한다.
(SD105) 디코딩 타겟 슬라이스가, 픽처 내의 처리 순서에서 선두 슬라이스인지의 여부를, 선두 슬라이스 플래그에 기초하여 결정한다. 선두 슬라이스 플래그가 0인 경우(SD105에서 예), 처리는 스텝 SD106으로 천이한다. 그 이외의 경우(SD105에서 아니오), 스텝 SD106의 처리를 스킵한다. 선두 슬라이스 플래그가 1인 경우, 디코딩 타겟 슬라이스의 슬라이스 주소는 0이다.
(SD106) 디코딩 타겟 슬라이스의 슬라이스 주소(slice_segment_address)(도 15의 (d)의 SYNSH03)를 디코딩하고, 디코딩 타겟 슬라이스의 선두 CTU 주소를 설정한다. 예를 들어, 선두 슬라이스 CTU 주소 = slice_segment_address이다.
... 도시 생략 ...
(SD10A) CTU 디코딩 유닛(142)은, 입력된 슬라이스 헤더, 활성 파라미터 세트, 및 VCL NAL 유닛에 포함되는 슬라이스 데이터 내의 각각의 CTU 정보(도 15의 (d)의 SYNSD01)에 기초하여, 픽처를 구성하는 슬라이스에 포함되는 각각의 CTU에 대응하는 영역의 CTU 디코딩 이미지를 생성한다. 또한, 각각의 CTU 정보 뒤에, 해당 CTU가 디코딩 타겟 슬라이스의 종단부인지를 나타내는 슬라이스 종단부 플래그(end_of_slice_segment_flag)(도 15(e)의 SYNSD02)가 존재한다. 각각의 CTU를 디코딩한 후에, 처리된 CTU 수의 값을 1만큼 증가시킨다(numCtu++).
(SD10B) 해당 CTU가 디코딩 타겟 슬라이스의 종단부인지의 여부를, 슬라이스 종단부 플래그에 기초하여 결정한다. 슬라이스 종단부 플래그가 1인 경우(SD10B에서 예), 처리는 스텝 SD10C으로 천이한다. 그 이외의 경우(SD10B에서 아니오), 후속 CTU 정보를 디코딩하기 위해서, 처리는 스텝 SD10A으로 천이한다.
(SD10C) 처리된 CTU 수 numCtu가, 픽처를 구성하는 CTU의 총수(PicSizeInCtbsY)에 도달했는지를 결정한다. 즉, numCtu == PicSizeInCtbsY인지의 여부를 결정한다. numCtu가 PicSizeInCtbsY와 동등할 경우(SD10C에서 예), 디코딩 타겟 픽처를 구성하는 슬라이스 단위의 디코딩 처리를 종료한다. 그 이외의 경우(numCtu < PicSizeInCtbsY)(SD10C에서 아니오), 디코딩 타겟 픽처를 구성하는 슬라이스 단위의 디코딩 처리를 계속하기 위해서, 처리는 스텝 SD101으로 천이한다.
이상, 실시예 1에 따른 픽처 디코딩 유닛(14)의 동작에 대해서 설명했다. 스텝은 상기 스텝에 한정되지 않는다. 대안적으로, 구현 가능한 범위에서, 스텝을 변경할 수도 있다.
(비트 스트림 추출 유닛(17))
비트 스트림 추출 유닛(17)은, 출력 제어 유닛(16)으로부터 공급되는 출력 제어 정보(출력 계층 세트에서, 디코딩 타겟으로서의 계층의 구성을 나타내는 타겟 디코딩 계층 ID 리스트 TargetDecLayerIdList 및 타겟 최고 시간 식별자 TargetHighestTid)에 기초하여, 비트 스트림 추출 처리를 행하고, 입력되는 계층 코딩 데이터 DATA로부터, 타겟 최고 시간 식별자 TargetHighestTid 및 타겟 디코딩 계층 ID 리스트 TargetDecLayerIdList에 의해 결정되는 세트(타겟 세트 TargetSet라고 칭함)에 포함되지 않는 NAL 유닛을 제거(파기)하고, 타겟 세트 TargetSet에 포함되는 NAL 유닛으로 이루어지는 타겟 세트 코딩 데이터 DATA#T(Bit streamToDecode)을 추출하고, 출력한다.
보다 구체적으로는, 상기 비트 스트림 추출 유닛(17)은, NAL 유닛 헤더를 디코딩하는 NAL 유닛 디코딩 수단을 포함한다.
이하, 도 19를 참조하여, 본 실시예에 따른 비트 스트림 추출 유닛(17)의 개략적인 동작에 대해서 설명한다. 도 19는, 비트 스트림 추출 유닛(17)에 있어서 액세스 유닛 단위의 비트 스트림 추출 처리를 도시하는 흐름도이다.
(SG101) 비트 스트림 추출 유닛(17)은, 도 5의 (b)에 도시된 신택스 표에 따라, 공급된 타겟 NAL 유닛의 NAL 유닛 헤더를 디코딩한다. 즉, NAL 유닛 타입(nal_unit_type), 계층 식별자(nuh_layer_id) 및 시간 식별자(nuh_temporal_id_plus1)을 디코딩한다. 타겟 NAL 유닛의 계층 식별자 nuhLayerId는, "nuh_layer_id"로 설정된다. 타겟 NAL 유닛의 시간 식별자 TemporalId는, "nuh_temporal_id_plus1 - 1"로 설정된다.
(SG102) 타겟 NAL 유닛의 계층 식별자, 및 시간 식별자가 타겟 세트 TargetSet에 포함되는지의 여부를, 타겟 디코딩 계층 ID 리스트 TargetDecLayerIdList 및 타겟 최고 시간 식별자에 기초하여 결정한다. 보다 구체적으로는, 이하의 (1) 및 (2)의 조건 중 적어도 어느 하나가 거짓일 경우(SG102에서 아니오), 처리는 스텝 SG103으로 천이한다. 그 이외의 경우((1) 및 (2) 모두 참인 경우)(SG102)에서 예), 처리는 스텝 SG104로 천이한다.
(1) "타겟 디코딩 계층 ID 리스트 TargetDecLayerIdList에, 타겟 NAL 유닛의 계층 식별자와 동일한 값이 있는" 경우, 참인 것으로 결정된다. 그 이외의 경우(타겟 디코딩 계층 ID 리스트 TargetDecLayerIdList에, 타겟 NAL 유닛의 계층 식별자와 동일한 값이 없는 경우), 거짓인 것으로 결정된다.
(2) "타겟 NAL 유닛의 시간 식별자가 타겟 최고 시간 식별자 TargetHighestTid 이하인" 경우, 참으로 결정한다. 그 이외의 경우(타겟 NAL 유닛의 시간 식별자가 타겟 최고 시간 식별자 TargetHighestTid보다 큰 경우), 거짓으로 결정한다.
(SG103) 타겟 NAL 유닛을 파기한다. 즉, 타겟 NAL 유닛은, 타겟 세트 TargetSet에 포함되지 않기 때문에, 비트 스트림 추출 유닛(17)은, 입력된 계층 코딩 데이터 DATA로부터, 타겟 NAL 유닛을 제거한다.
(SG10A) 동일 액세스 유닛 내에, 임의의 미처리된 NAL 유닛이 있는지의 여부를 결정한다. 임의의 미처리된 NAL 유닛이 존재할 경우(SG10A에서 아니오), 타겟 액세스 유닛을 구성하는 NAL 유닛 단위의 비트 스트림 추출을 계속하기 위해서, 처리는 스텝 SG101로 천이한다. 그 이외의 경우(SG10A에서 예), 처리는 스텝 SG10B로 천이한다.
(SG10B) 입력된 계층 코딩 데이터 DATA에, 타겟 액세스 유닛의 후속 액세스 유닛이 있는지의 여부를 결정한다. 후속 액세스 유닛이 존재할 경우(SG10B에서 예), 후속 액세스 유닛의 처리를 계속하기 위해서, 처리는 스텝 SG101로 천이한다. 후속 액세스 유닛이 없는 경우(SG10B에서 아니오), 비트 스트림 추출 처리를 종료한다.
이상, 실시예 1에 따른 비트 스트림 추출 유닛(17)의 동작에 대해서 설명했다. 스텝은 상기 스텝에 한정되지 않는다. 대안적으로, 구현 가능한 범위에서, 스텝을 변경할 수도 있다.
이상 설명한 비트 스트림 추출 유닛(17)은, 외부로부터 공급되는 타겟 계층 세트 LayerSetTarget를 구성하는 계층의 계층 ID 리스트 LayerIdListTarget 및 타겟 최고 시간 식별자 HighestTidTarget에 기초하여, 비트 스트림 추출 처리를 행하고, 입력되는 계층 코딩 데이터 DATA로부터, 타겟 최고 시간 식별자 HighestTidTarget 및 타겟 계층 세트 LayerSetTarget의 계층 ID 리스트 LayerIdListTarget에 의해 결정되는 타겟 세트 TargetSet에 포함되지 않는 NAL 유닛을 제거(파기)하고, 타겟 세트 TargetSet에 포함되는 NAL 유닛으로부터 구성되는 코딩 데이터 Bit streamToDecode를 추출하고, 생성할 수 있다.
(비디오 디코딩 장치(1)의 유익한 효과)
이상 설명한 본 실시예에 따른 계층적 비디오 디코딩 장치(1)(계층적 이미지 디코딩 장치)는, 비트 스트림 추출 처리를 행하고, 입력되는 계층 코딩 데이터 DATA로부터, 외부로부터 공급되는 타겟 출력 계층 세트 식별자에 의해 식별되는 디코딩 타겟으로서의 계층 구성을 나타내는 타겟 디코딩 계층 ID 리스트 TargetDecLayerIdList 및 외부로부터 공급되는 디코딩 타겟으로서의 계층에 부수되는 최고 서브계층을 지정하는 타겟 최고 시간 식별자 TargetHighestTid에 의해 결정되는 타겟 세트 TargetSet에 포함되지 않는 NAL 유닛을 제거(파기)하고, 타겟 세트 TargetSet에 포함되는 NAL 유닛으로 이루어지는 타겟 세트 코딩 데이터 DATA#T(BitstreamToDecode)를 추출하는 비트 스트림 추출 유닛(17)을 포함한다.
계층적 비디오 디코딩 장치(1)(계층적 이미지 디코딩 장치)는, 입력된 계층 코딩 데이터로부터, 적어도 1개의 계층 세트를 포함하는 계층 세트 정보를 디코딩하는 계층 세트 정보 디코딩 수단; 상기 계층 세트와 출력 계층 플래그의 조합에 의해 표현되는 적어도 1개의 출력 계층 세트를 포함하는 출력 계층 세트 정보를 디코딩하는 출력 계층 세트 정보 디코딩 수단; 상기 출력 계층 세트 정보에 포함되는 출력 계층 세트들 중 하나를 선택하는 출력 계층 세트 선택 수단; 상기 선택된 출력 계층 세트에 대응하는 계층 세트에 포함되는 계층들의 디코딩 픽처들을 생성하는 픽처 디코딩 수단; 및 상기 계층들의 디코딩 픽처들을 유지하는 버퍼 수단을 포함한다. 상기 버퍼 수단은, 상기 계층들의 유지된 디코딩 픽처들 중 적어도 1개의 계층에 대응하는 디코딩 픽처를, 상기 계층에 관련된 출력 픽처로서 출력한다. 따라서, 출력 계층을 갖지 않은 출력 계층 세트의 코딩 데이터가 입력되는 경우에도, 디코딩 타겟으로 되는 계층 세트들 중 적어도 1개의 계층을 출력 계층으로 간주하고, 해당 출력 계층의 디코딩 픽처를 출력할 수 있다.
[계층적 비디오 코딩 장치]
이하, 본 실시예에 따른 계층적 비디오 코딩 장치(2)의 구성에 대해서, 도 20을 참조하여 설명한다.
(계층적 비디오 코딩 장치의 구성)
도 20을 사용하여, 계층적 비디오 코딩 장치(2)의 개략 구성을 설명한다. 이 도면은, 계층적 비디오 코딩 장치(2)의 개략적 구성을 도시한 기능 블록도이다. 계층적 비디오 코딩 장치(2)는, 코딩 타겟으로 하는 타겟 세트에 포함되는 각각의 계층/서브계층의 입력 이미지 PIN#T(픽처)를 코딩하여서, 타겟 세트의 계층 코딩 데이터 DATA를 생성한다. 즉, 비디오 코딩 장치(2)는, 타겟 세트 TargetSet의 계층 ID 리스트의 요소 TargetLayerIdList[0]..TargetLayerIdList[N-1](N은 타겟 세트(타겟 계층 세트)에 포함되는 계층 수임)의 순서로, 각각의 계층의 픽처를 코딩하여서, 코딩 데이터를 생성한다. 계층적 비디오 디코딩 장치(1)(그것의 변형예를 포함)에 있어서, 상기 코딩 데이터로부터 디코딩되는 출력 계층 세트의 적어도 1개의 출력 계층의 디코딩 픽처를 출력 픽처로서 출력하는 것을 보장하기 위해서, 계층적 비디오 코딩 장치(2)는, 적어도 적합성 조건 CA1(또는 CA2, CA3)을 만족시키도록, 타겟 세트의 계층 코딩 데이터 DATA를 생성한다. 상기 코딩 데이터로부터 디코딩되는 2 이상의 출력 계층 세트가, 서로 상이한 출력 계층 구성을 갖는 것을 보장하기 위해서, 적합성 조건 CB1(또는 CB2 내지 CB6)을 만족시키도록, 타겟 세트의 계층 코딩 데이터 DATA를 생성하는 것이 바람직하다. 계층 세트가 기본 계층을 포함하는 것을 보장하기 위해서, 적합성 조건 CC(CC는 CC1 내지 CC4 중 임의의 것임)을 만족시키도록, 타겟 세트의 계층 코딩 데이터 DATA를 생성하는 것이 바람직하다. 비특허문헌 1의 Annex.C, 또는 비특허문헌 2 및 3 중 어느 하나의 Annex.C의 적합성 시험을 만족시키도록, 타겟 세트의 계층 코딩 데이터 DATA를 생성할 수 있다.
도 20에 도시한 바와 같이, 계층적 비디오 코딩 장치(2)는, 타겟 세트 픽처 인코딩 유닛(20) 및 NAL 다중화 유닛(21)을 포함한다. 또한, 타겟 세트 픽처 인코딩 유닛(20)은, 비-VCL 인코딩 유닛(22), 픽처 인코딩 유닛(24), 디코딩 픽처 관리 유닛(15) 및 코딩 파라미터 결정 유닛(26)을 포함한다.
디코딩 픽처 관리 유닛(15)은, 위에서 설명한 계층적 비디오 디코딩 장치(1)에 포함되는 디코딩 픽처 관리 유닛(15)과 동일 구성 요소이다. 그러나, 계층적 비디오 코딩 장치(2)에 포함되는 디코딩 픽처 관리 유닛(15)은, 내부의 DPB에 기록된 픽처를, 출력 픽처로서 출력할 필요가 없다. 따라서, 해당 출력은 생략 가능하다. 계층적 비디오 디코딩 장치(1)의 디코딩 픽처 관리 유닛(15)에 관련하여 "디코딩"이라는 설명은, "코딩"으로 대체될 수 있고, 이는 계층적 비디오 코딩 장치(2)에 포함된 디코딩 픽처 관리 유닛(15)에도 적용할 수 있다.
NAL 다중화 유닛(21)은, 타겟 세트의 각각의 계층의 입력된 VCL 및 비-VCL을, NAL 유닛에 저장하여 NAL 다중화한 계층적 비디오 코딩 데이터 DATA#T를 생성하고, 상기 데이터를 외부에 출력한다. 바꿔 말하면, NAL 다중화 유닛(21)은, 타겟 세트 픽처 인코딩 유닛(20)으로부터 공급되는 비-VCL 코딩 데이터 및 VCL 코딩 데이터, 비-VCL 및 VCL에 대응하는 NAL 유닛 타입, 계층 식별자 및 시간 식별자를, NAL 유닛에 저장(코딩)하고, NAL 다중화한 계층 코딩 데이터 DATA#T를 생성한다.
코딩 파라미터 결정 유닛(26)은, 코딩 파라미터의 세트들 중, 1개의 세트를 선택한다. 코딩 파라미터들은, 파라미터 세트(VPS, SPS, 및 PPS)들에 관한 각종 파라미터들, 픽처 코딩을 위한 예측 파라미터들, 및 해당 예측 파라미터에 관련해서 생성되는 코딩 타겟인 파라미터들이다. 코딩 파라미터 결정 유닛(26)은, 상기 코딩 파라미터 세트들 각각에 대한 정보량의 크기와 코딩 오차를 나타내는 비용 값을 산출한다. 비용 값은, 예를 들어, 코드량과 제곱 오차에 계수 λ을 곱한 값과의 합이다. 코드량은, 양자화 오차와 코딩 파라미터를 가변 길이 코딩해서 획득한 타겟 세트의 각각의 계층/서브계층의 코딩 데이터에 대한 정보량이다. 제곱 오차는, 입력 이미지 PIN#T와 예측 이미지와의 차분 값의 제곱 값의 화소들에 걸친 총합이다. 계수 λ은, 사전 설정된, 0보다도 큰 실수이다. 코딩 파라미터 결정 유닛(26)은, 산출한 비용 값이 최소가 되는 코딩 파라미터 세트를 선택하고, 상기 선택한 코딩 파라미터 세트를 파라미터 세트 인코딩 유닛(22) 및 픽처 인코딩 유닛(24)에 공급한다.
비-VCL 인코딩 유닛(22)은, 계층적 비디오 디코딩 장치(1)에 있어서 비-VCL 디코딩 유닛(12)의 역 처리에 대응하고, 코딩 파라미터 결정 유닛(26)으로부터 입력되는 각각의 비-VCL의 코딩 파라미터와 입력 이미지에 기초하여, 입력 이미지를 코딩하는 데에 사용하는 파라미터 세트(VPS, SPS 및 PPS) 등에서 비-VCL을 설정하고, 각각의 파라미터 세트 및 다른 비-VCL을 비-VCL NAL 유닛에 저장되는 데이터로서, NAL 다중화 유닛(21)에 공급한다. 비-VCL 인코딩 유닛(22)에 의해 코딩되는 비-VCL은, 계층적 비디오 디코딩 장치(1)에 포함되는 비-VCL 디코딩 유닛(12)의 설명에 기재한 계층 세트 정보, 출력 계층 세트 정보 및 PTL 정보를 포함한다. 즉, 비-VCL 인코딩 유닛(22)은, 도시하지 않은, 파라미터 세트 코딩 수단을 포함한다. 파라미터 세트 코딩 수단은, 도시하지 않은, 계층 세트 정보를 코딩(생성)하는 계층 세트 정보 코딩 수단, 출력 계층 세트 정보를 코딩(생성)하는 출력 계층 세트 정보 코딩 수단 및 PTL 정보를 코딩하는 PTL 정보 코딩 수단을 포함한다. 각각의 인코딩 유닛 및 코딩 수단의 기능 및 동작은, 각각의 디코딩 유닛 및 디코딩 수단의 역 처리에 상당한다. 그것들은 디코딩 유닛 및 디코딩 수단에 있어서, "디코딩"을 "코딩"으로 대체하여 해석한다. 비-VCL 인코딩 유닛(22)은, NAL 다중화 유닛(21)에 비-VCL 코딩 데이터를 공급할 때에, 이 데이터에 비-VCL에 대응하는 NAL 유닛 타입, 계층 식별자 및 시간 식별자를 부여하여, 이들 항목을 출력한다.
비-VCL 인코딩 유닛(22)에 의해 생성되는 파라미터 세트는, 해당 파라미터 세트를 식별하는 식별자, 및 계층들의 픽처를 디코딩하기 위해서 해당 파라미터 세트가 참조하는 파라미터 세트(활성 파라미터 세트)를 식별하는 활성 파라미터 세트 식별자를 포함한다. 보다 구체적으로는, 비디오 파라미터 세트 VPS는, 해당 VPS를 식별하는 VPS 식별자를 포함한다. 시퀀스 파라미터 세트 SPS의 경우, 이 SPS는 해당 SPS를 식별하는 SPS 식별자(sps_seq_parameter_set_id) 및 해당 SPS 및 또 다른 신택스가 참조하는 VPS를 식별하는 활성 VPS 식별자(sps_video_parameter_set_id)를 포함한다. 픽처 파라미터 세트 PPS의 경우, 이 PPS는 해당 PPS를 식별하는 PPS 식별자(pps_pic_parameter_set_id) 및 해당 PPS 및 또 다른 신택스가 참조하는 SPS를 식별하는 활성 SPS 식별자(pps_seq_parameter_set_id)를 포함한다.
픽처 인코딩 유닛(24)은, 각각의 계층의 입력 이미지 PIN#T, 코딩 파라미터 결정 유닛(26)에 의해 공급되는 비-VCL(특히, 파라미터 세트) 및 디코딩 픽처 관리 유닛(15)에 기록된 참조 픽처에 기초하여, 픽처를 구성하는 슬라이스들에 대응하는 각각의 계층의 입력 이미지의 부분을 코딩하여서, 해당 부분의 코딩 데이터를 생성하고, 이 데이터를 VCL NAL 유닛에 저장되는 데이터로서, NAL 다중화 유닛(21)에 공급한다. 픽처 인코딩 유닛(24)의 상세에 대해서는 후술한다. 픽처 인코딩 유닛(24)은, NAL 다중화 유닛(21)에 VCL 코딩 데이터를 공급할 때에, 이 데이터에, VCL에 대응하는 NAL 유닛 타입, 계층 식별자 및 시간 식별자를 부여해서 출력한다.
(픽처 인코딩 유닛(24))
도 21을 참조하여, 픽처 인코딩 유닛(24)의 구성의 상세에 대해서 설명한다. 도 21은, 픽처 인코딩 유닛(24)의 개략적 구성을 도시한 기능 블록도이다.
도 21에 도시한 바와 같이, 픽처 인코딩 유닛(24)은, 슬라이스 헤더 인코딩 유닛(241) 및 CTU 인코딩 유닛(242)을 포함한다.
슬라이스 헤더 인코딩 유닛(241)은, 입력된 활성 파라미터 세트에 기초하여 슬라이스 단위로 입력되는 각각의 계층의 입력 데이터를 코딩하는 데에 사용할 슬라이스 헤더를 생성한다. 생성된 슬라이스 헤더는, 슬라이스 코딩 데이터의 부분으로서 출력되어, 입력 데이터와 함께 CTU 인코딩 유닛(242)에 공급된다. 슬라이스 헤더 인코딩 유닛(241)에 의해 생성되는 슬라이스 헤더는, 계층들의 픽처를 디코딩하기 위해서 참조하는 픽처 파라미터 세트 PPS(활성 PPS)를 지정하는 활성 PPS 식별자를 포함한다.
CTU 인코딩 유닛(242)은, 입력된 활성 파라미터 세트 및 슬라이스 헤더에 기초하여, 입력 이미지(타겟 슬라이스 부분)를 CTU 단위로 코딩하고, 타겟 슬라이스에 관한 슬라이스 데이터 및 디코딩 이미지(디코딩 픽처)를 생성해서 이들 항목을 출력한다. 보다 구체적으로는, CTU 인코딩 유닛(242)은, 파라미터 세트에 포함된 CTB 사이즈를 갖는 CTB 단위로 타겟 슬라이스의 입력 이미지를 분할하고, 각각의 CTB에 대응하는 이미지를 하나의 CTU로서 코딩한다. CTU 코딩은, 예측 잔차 인코딩 유닛(2421), 예측 이미지 인코딩 유닛(2422), 및 CTU 디코딩 이미지 생성 유닛(2423)에 의해 수행된다.
예측 잔차 인코딩 유닛(2421)은, 입력되는 입력 이미지와 예측 이미지의 차분 이미지를 변환 및 양자화해서 획득한 양자화 잔차 정보(TT 정보)를, 슬라이스 코딩 데이터에 포함되는 슬라이스 데이터의 부분으로서 출력한다. 양자화 잔차 정보에 역 변환 및 역 양자화를 적용해서 예측 잔차를 복원하고, 복원한 예측 잔차를 CTU 디코딩 이미지 생성 유닛(2423)에 출력한다.
예측 이미지 인코딩 유닛(2422)은, 코딩 파라미터 결정 유닛(26)에 의해 결정된, 타겟 슬라이스에 포함되는 타겟 CTU의 예측 방식 및 예측 파라미터에 기초하여, 예측 이미지를 생성하고, 이 이미지를 예측 잔차 인코딩 유닛(2421) 및 CTU 디코딩 이미지 생성 유닛(2423)에 출력한다. 예측 방식 및 예측 파라미터에 대한 정보는, 예측 정보(PT 정보)로서 가변 길이 코딩되고, 슬라이스 코딩 데이터에 포함되는 슬라이스 데이터의 부분으로서 출력된다. 인터 예측 또는 계층 간 이미지 예측을 사용하는 경우에, 디코딩 픽처 관리 유닛(15)으로부터 대응하는 참조 픽처를 판독한다.
CTU 디코딩 이미지 생성 유닛(2423)은, 계층적 비디오 디코딩 장치(1)에 포함되는 CTU 디코딩 이미지 생성 유닛(1423)과 동일 구성 요소이다. 따라서, 이에 대한 설명을 생략한다. 타겟 CTU의 디코딩 이미지는, 디코딩 픽처 관리 유닛(15)에 공급되어, 내부의 DPB에 저장된다.
<픽처 인코딩 유닛(24)의 코딩 처리>
이하, 도 22를 참조하여, 픽처 인코딩 유닛(24)에 있어서 타겟 계층 i의 픽처 코딩의 개략적인 동작에 대해서 설명한다. 도 22는, 픽처 인코딩 유닛(24)에 있어서 타겟 계층 i의 픽처를 구성하는 슬라이스 단위의 코딩 처리를 도시하는 흐름도이다.
(SE101) 코딩 타겟 슬라이스의 선두 슬라이스 플래그(first_slice_segment_in_pic_flag)(도 15의 (d)의 SYNSH01)를 코딩한다. 즉, 슬라이스 단위로 분할된 입력 이미지(이후, 코딩 타겟 슬라이스)가, 픽처 내의 코딩 순서(디코딩 순서)(이후, 처리 순서)에 있어서 선두 슬라이스인 경우, 선두 슬라이스 플래그(first_slice_segment_in_pic_flag)는 1이다. 코딩 타겟 슬라이스가 선두 슬라이스가 아닌 경우, 선두 슬라이스 플래그는 0이다. 선두 슬라이스 플래그가 1인 경우, 코딩 타겟 슬라이스의 선두 CTU 주소를 0으로 설정한다. 또한, 픽처 내의 처리된 CTU 수의 카운터 numCtu를 0으로 설정한다. 선두 슬라이스 플래그가 0인 경우, 후술하는 SE106에서 코딩되는 슬라이스 주소에 기초하여, 코딩 타겟 슬라이스의 선두 CTU 주소를 설정한다.
(SE102) 코딩 타겟 슬라이스의 디코딩 동안 참조하는 활성 PPS를 지정하는 활성 PPS 식별자(slice_pic_parameter_set_id)(도 15의 (d)의 SYNSH02)를 코딩한다.
(SE104) 코딩 파라미터 결정 유닛(26)에 의해 결정된 활성 파라미터 세트를 페치한다. 즉, 코딩 타겟 슬라이스가 참조하는 활성 PPS 식별자(slice_pic_parameter_set_id)와 동일한 PPS 식별자(pps_pic_parameter set id)를 갖는 PPS를, 활성 PPS로 간주하고, 코딩 파라미터 결정 유닛(26)으로부터, 활성 PPS의 코딩 파라미터를 페치한다(판독한다). 또한, 활성 PPS 내의 활성 SPS 식별자(pps_seq_parameter_set_id)와 동일한 SPS 식별자(sps_seq_parameter_set_id)를 갖는 SPS를, 활성 SPS로 간주하고, 코딩 파라미터 결정 유닛(26)으로부터, 활성 SPS의 코딩 파라미터를 페치한다. 또한, 활성 SPS 내의 활성 VPS 식별자(sps_video_parameter_set_id)와 동일한 VPS 식별자(vps_video_parameter_set_id)를 갖는 VPS를, 활성 VPS로 간주하고, 코딩 파라미터 결정 유닛(26)으로부터, 활성 VPS의 코딩 파라미터를 페치한다.
픽처 인코딩 유닛(24)은, 활성 VPS에 포함되는 계층 세트 정보, 출력 계층 세트 정보 및 PTL 정보, 해당 활성 파라미터 세트(VPS, SPS, PPS)의 계층 식별자, 및 타겟 계층의 계층 식별자 등에 따라, 타겟 세트가 적합성 조건을 만족시킬지의 여부를 검증할 수 있다. 적합성 조건은, 계층적 비디오 디코딩 장치(1)를 참조하여 이미 설명하였다. 따라서, 여기서는 설명을 생략한다. 적합성 조건을 만족하면, 생성되는 타겟 세트의 계층 코딩 데이터 DATA가, 계층적 이미지 코딩 장치(2)에 대응하는 계층적 비디오 디코딩 장치(1)에서, 디코딩 가능한 것이 보장된다.
(SE105) 코딩 타겟 슬라이스가 픽처 내의 처리 순서에 있어서 선두 슬라이스인지의 여부를, 선두 슬라이스 플래그에 기초하여 결정한다. 선두 슬라이스 플래그가 0인 경우(SE105에서 예), 처리는 스텝 SE106으로 천이한다. 그 이외의 경우(SE105에서 아니오), 스텝 SE106의 처리를 스킵한다. 선두 슬라이스 플래그가 1인 경우, 코딩 타겟 슬라이스의 슬라이스 주소는 0이다.
(SE106) 코딩 타겟 플래그의 슬라이스 주소(slice_segment_address)(도 15의 (d)의 SYNSH03)를 코딩한다. 코딩 타겟 플래그의 슬라이스 주소(코딩 타겟 플래그의 선두 CTU 주소)는, 예를 들어, 픽처 내의 처리된 CTU 수의 카운터 numCtu에 기초하여 설정 가능하다. 이 경우, 슬라이스 주소 slice_segment_address = numCtu이다. 즉, 코딩 타겟 플래그의 선두 CTU 주소 = numCtu이다. 슬라이스 주소 결정 방법은 이에 한정되지 않고, 구현 가능한 범위에서 변경 가능하다.
(SE10A) CTU 인코딩 유닛(242)은, 입력된 활성 파라미터 세트 및 슬라이스 헤더에 기초하여, 입력 이미지(코딩 타겟 슬라이스)를 CTU 단위로 코딩하고, 이 코딩 타겟 슬라이스의 슬라이스 데이터의 부분으로서, CTU 정보의 코딩 데이터(도 15의 (d)의 SYNSD01)를 출력한다. CTU 인코딩 유닛(242)은, 각각의 CTU에 대응하는 영역의 CTU 디코딩 이미지를 생성해서 출력한다. 또한, 각각의 CTU 정보의 코딩 데이터 뒤에, 해당 CTU가 코딩 타겟 슬라이스의 종단부인지의 여부를 나타내는 슬라이스 종단부 플래그(end_of_slice_segment_flag)(도 15의 (d)의 SYNSD02)를 코딩한다. 해당 CTU가 코딩 타겟 슬라이스의 종단부일 경우, 슬라이스 종단부 플래그를 1로 설정한다. 그 이외의 경우에는, 이 플래그를 0으로 설정한다. 이 설정된 값을 코딩한다. 각각의 CTU의 코딩 후에, 처리된 CTU 수 numCtu의 값을 1만큼 증가시킨다(numCtu++).
(SE10B) 해당 CTU가 코딩 타겟 슬라이스의 종단부인지의 여부를, 슬라이스 종단부 플래그에 기초하여 결정한다. 슬라이스 종단부 플래그가 1인 경우(SE10B에서 예), 처리는 스텝 SE10C로 천이한다. 그 이외의 경우(SE10B에서 아니오), 후속 CTU를 코딩하기 위해서, 처리는 스텝 SE10A로 천이한다.
(SE10C) 처리된 CTU 수 numCtu가 픽처를 구성하는 CTU의 총 수(PicSizeInCtbsY)에 도달했는지의 여부를 결정한다. 즉, numCtu == PicSizeInCtbsY인지의 여부를 결정한다. numCtu가 PicSizeInCtbsY와 동등할 경우(SE10C에서 예), 코딩 타겟 픽처를 구성하는 슬라이스 단위의 코딩 처리를 종료한다. 그 이외의 경우(numCtu < PicSizeInCtbsY)(SE10C에서 아니오), 코딩 타겟 픽처를 구성하는 슬라이스 단위의 코딩 처리를 계속하기 위해서, 처리는 스텝 SE101로 천이한다.
이상 실시예 1에 따른 픽처 인코딩 유닛(24)의 동작에 대해서 설명했다. 스텝들은 상기 스텝들에 한정되지 않는다. 대안적으로, 구현 가능한 범위에서, 스텝들을 변경할 수도 있다.
[비디오 코딩 장치(2)의 유익한 효과]
이상 설명한 본 실시예에 따른 계층적 비디오 코딩 장치(2)는, 계층적 비디오 디코딩 장치(1)(그 변형예를 포함)에 있어서, 상기 코딩 데이터로부터 디코딩되는 출력 계층 세트의 적어도 1개의 출력 계층의 디코딩 픽처를, 출력 픽처로서 출력하는 것을 보장하기 위해서, 적어도 적합성 조건 CA1(또는 CA2)을 만족시키도록, 타겟 세트의 계층 코딩 데이터 DATA를 생성한다. 상기 코딩 데이터로부터 디코딩되는 2 이상의 출력 계층 세트가 서로 상이한 출력 계층 구성을 갖도록 보장하기 위해서, 적합성 조건 CB1(또는 CB2 내지 CB6)을 만족시키도록, 타겟 세트의 계층 코딩 데이터 DATA를 생성한다. 따라서, 상기 비트 스트림 적합성을 만족하는 계층 코딩 데이터 DATA를 생성함으로써, 계층적 비디오 디코딩 장치(1)가, (1) 출력 계층을 갖지 않은 출력 계층 세트가 선택되는 것을 방지하고, (2) 동일한 출력 계층을 갖는 중복 출력 계층 세트가 발생하는 것을 방지할 수 있게 한다.
계층 세트에 기본 계층이 포함되는 것을 보장하기 위해서, 적합성 조건 CC1(또는 CC2 내지 CC4)을 만족시키도록, 타겟 세트의 계층 코딩 데이터 DATA를 생성한다. 따라서, 이미지 디코딩 장치(1)에 있어서, 상기 코딩 데이터로부터 디코딩되는 출력 계층 세트는, 기본 계층이 반드시 디코딩될 수 있게 보장한다. 따라서, 특정 계층 세트 A를 포함하는 코딩 데이터로부터 비트 스트림 추출 처리에 의해 생성된, 계층 세트 A의 서브세트인 계층 세트 B를 포함하는 코딩 데이터를 디코딩하는 동안, 계층 세트 B의 특정 계층 C(계층 식별자 > 0)에 있어서, 기본 계층에 계층 식별자를 갖는 파라미터 세트(VPS/SPS/PPS)를 활성 파라미터 세트로 간주하는 경우, 기본 계층이 계층 세트 B를 포함하는 코딩 데이터에 포함되지 않고, 특정 계층 C를 디코딩할 수 없는 경우를 방지할 수 있다. 즉, 적합성 조건 CC1(CC2 내지 CC4)을 만족시킴으로써, 계층 세트 A를 포함하는 코딩 데이터로부터, 비트 스트림 추출에 의해 생성된, 계층 세트 A의 서브세트인 계층 세트 B를 포함하는 코딩 데이터가 디코딩 가능한 것을 보장할 수 있다.
(또 다른 계층적 비디오 코딩/디코딩 시스템에 대한 적용례)
상술한 계층적 비디오 코딩 장치(2) 및 계층적 비디오 디코딩 장치(1)는, 비디오의 송신, 수신, 기록, 및 재생을 행하는 각종 장치에 장착하는 방식으로 사용될 수 있다. 비디오는, 카메라 등에 의해 촬영된 자연 비디오, 및 컴퓨터 등에 의해 생성된 인공적 비디오(CG 및 GUI)일 수 있다.
도 23에 기초하여, 상술한 계층적 비디오 코딩 장치(2) 및 계층적 비디오 디코딩 장치(1)를, 비디오의 송신 및 수신에 사용할 수 있다는 것을 설명한다. 도 23의 (a)는, 계층적 비디오 코딩 장치(2)를 장착한 송신 장치(PROD_A)의 구성을 도시한 블록도이다.
도 23의 (a)에 설명한 바와 같이, 송신 장치(PROD_A)는, 비디오를 코딩함으로써 코딩 데이터를 획득하는 인코딩 유닛(PROD_A1)과, 인코딩 유닛(PROD_A1)이 획득한 코딩 데이터를 이용하여 반송파를 변조함으로써 변조 신호를 획득하는 변조 유닛(PROD_A2)과, 변조 유닛(PROD_A2)이 획득한 변조 신호를 송신하는 송신 유닛(PROD_A3)을 포함한다. 상술한 계층적 비디오 코딩 장치(2)는, 인코딩 유닛(PROD_A1)으로서 사용된다.
송신 장치(PROD_A)는, 인코딩 유닛(PROD_A1)에 입력되는 비디오의 공급원으로서 기능하여 비디오를 촬영하는 카메라(PROD_A4), 비디오를 기록하는 기록 매체(PROD_A5), 비디오를 외부로부터 수신하기 위한 입력 단자(PROD_A6) 및 이미지를 생성 또는 처리하는 이미지 처리 유닛(A7)을 더 포함한다. 도 23의 (a)에 있어서, 이들 요소 모두를 송신 장치(PROD_A)가 구비한 구성을 예시하고 있다. 그러나, 이들 중 일부를 생략할 수도 있다.
기록 매체(PROD_A5)는, 코딩되지 않은 비디오를 기록할 수 있다. 대안적으로, 이 매체는 전송용 코딩 방식과는 상이한 기록용 코딩 방식에 따라 코딩된 비디오를 기록할 수도 있다. 후자의 경우, 기록 매체(PROD_A5)과 인코딩 유닛(PROD_A1) 사이에, 기록 매체(PROD_A5)로부터 판독한 코딩 데이터를 기록용 코딩 방식에 따라 디코딩하는 디코딩 유닛(도시하지 않음)을 개재시키는 것이 바람직하다.
도 23의 (b)는, 계층적 비디오 디코딩 장치(1)를 장착한 수신 장치(PROD_B)의 구성을 도시한 블록도이다. 도 23의 (b)에 도시한 바와 같이, 수신 장치(PROD_B)는, 변조 신호를 수신하는 수신 유닛(PROD_B1)과, 수신 유닛(PROD_B1)이 수신한 변조 신호를 복조함으로써 코딩 데이터를 획득하는 복조 유닛(PROD_B2)과, 복조 유닛(PROD_B2)이 획득한 코딩 데이터를 디코딩함으로써 비디오를 획득하는 디코딩 유닛(PROD_B3)을 포함한다. 상술한 계층적 비디오 디코딩 장치(1)는, 디코딩 유닛(PROD_B3)으로서 이용된다.
수신 장치(PROD_B)는, 디코딩 유닛(PROD_B3)이 출력하는 비디오의 공급처로서 기능하고 비디오를 표시하는 디스플레이(PROD_B4), 비디오를 기록하기 위한 기록 매체(PROD_B5) 및 비디오를 외부에 출력하기 위한 출력 단자(PROD_B6)을 더 포함할 수 있다. 도 23의 (b)에 있어서, 이들 요소 모두를 수신 장치(PROD_B)가 구비한 구성을 예시하고 있다. 그러나, 이들 중 일부를 생략할 수도 있다.
기록 매체(PROD_B5)는, 코딩되지 않은 비디오를 기록하는 것일 수 있다. 대안적으로, 이 매체는 전송용 코딩 방식과는 상이한 기록용 코딩 방식에 따라 코딩된 비디오를 기록할 수도 있다. 후자의 경우, 디코딩 유닛(PROD_B3)과 기록 매체(PROD_B5) 사이에, 디코딩 유닛(PROD_B3)으로부터 취득한 비디오를 기록용 코딩 방식에 따라 코딩하는 인코딩 유닛(도시하지 않음)을 개재시키는 것이 바람직하다.
변조 신호를 전송하는 송신 매체는, 무선, 또는 유선일 수 있다. 변조 신호를 전송하는 전송 방식은, 방송(여기서는, 송신 목적지가 미리 특정되지 않는 송신 방식을 가리킴)일 수 있다. 이 방식은, 통신일 수 있다(송신지가 미리 특정되는 송신 방식을 가리킴). 즉, 변조 신호의 송신은, 무선 방송, 유선 방송, 무선 통신 및 유선 통신 중 임의의 것에 의해 달성될 수 있다.
예를 들어, 지상 디지털 방송의 방송국(방송 설비 등)/수신 유닛(텔레비전 수신 유닛 등)은, 변조 신호를 무선 방송을 통해 송신 및 수신하는 송신 장치(PROD_A)/수신 장치(PROD_B)의 일례이다. 케이블 텔레비전 방송의 방송국(방송 설비 등)/수신 유닛(텔레비전 수신 유닛 등)은, 변조 신호를 유선 방송을 통해 송신 및 수신하는 송신 장치(PROD_A)/수신 장치(PROD_B)의 일례이다.
인터넷을 사용한 VOD(Video On Demand) 서비스 또는 비디오 공유 서비스를 위한 서버(워크스테이션 등)/클라이언트(텔레비전 수신 유닛, 퍼스널 컴퓨터, 스마트폰 등)은, 변조 신호를 통신을 통해 송신 및 수신하는 송신 장치(PROD_A)/수신 장치(PROD_B)의 일례이다(일반적으로, LAN에 있어서는 송신 매체로서 무선 및 유선 중 임의의 것을 사용하고, WAN에 있어서는 유선 송신 매체를 사용한다). 여기서, 퍼스널 컴퓨터는, 탁상용 PC, 랩톱형 PC 및 태블릿형 PC 중 임의의 것일 수 있다. 스마트 폰은, 다기능 이동 전화기일 수 있다.
비디오 공유 서비스의 클라이언트는, 서버로부터 다운로드한 코딩 데이터를 디코딩해서 그 데이터를 디스플레이에 표시하는 기능 외에, 카메라로 촬영한 비디오를 코딩해서 서버에 업로드하는 기능을 갖고 있다. 즉, 비디오 공유 서비스의 클라이언트는, 송신 장치(PROD_A) 및 수신 장치(PROD_B)의 양쪽으로서 기능한다.
도 24에 기초하여, 상술한 계층적 비디오 코딩 장치(2) 및 계층적 비디오 디코딩 장치(1)를, 비디오의 기록 및 재생에 이용할 수 있는 것을 설명한다. 도 24의 (a)는, 상술한 계층적 비디오 코딩 장치(2)를 장착한 기록 장치(PROD_C)의 구성을 도시한 블록도이다.
도 24의 (a)에 도시한 바와 같이, 기록 장치(PROD_C)는, 비디오를 코딩함으로써 코딩 데이터를 획득하는 인코딩 유닛(PROD_C1)과, 인코딩 유닛(PROD_C1)이 획득한 코딩 데이터를 기록 매체(PROD_M)에 기입하는 기입 유닛(PROD_C2)을 포함한다. 상술한 계층적 비디오 코딩 장치(2)는, 인코딩 유닛(PROD_C1)으로서 사용된다.
기록 매체(PROD_M)는, (1) HDD(Hard Disk Drive) 또는 SSD(Solid State Drive)와 같이, 기록 장치(PROD_C)에 내장되는 것일 수 있고, (2) SD 메모리 카드 또는 USB(Universal Serial Bus) 플래시 메모리와 같이, 기록 장치(PROD_C)에 접속되는 것일 수 있고, (3) DVD(Digital Versatile Disc) 또는 BD(Blu-ray Disc(R))와 같이, 기록 장치(PROD_C)에 내장된 드라이브 장치(도시하지 않음)에 삽입된 것일 수 있다.
기록 장치(PROD_C)는, 인코딩 유닛(PROD_C1)에 입력되는 비디오의 공급원으로서 기능하고 비디오를 촬영하는 카메라(PROD_C3), 비디오를 외부로부터 수신하기 위한 입력 단자(PROD_C4), 비디오를 수신하기 위한 수신 유닛(PROD_C5), 및 이미지를 생성 또는 처리하는 이미지 처리 유닛(C6)을 더 포함할 수 있다. 도 24의 (a)에 있어서, 이들 요소 모두를 기록 장치(PROD_C)가 구비한 구성을 예시하고 있다. 그러나, 이들 중 일부를 생략할 수도 있다.
수신 유닛(PROD_C5)는 코딩되지 않은 비디오를 수신하는 것일 수 있다. 대안적으로, 이 수신 유닛은 기록용 코딩 방식과는 상이한 전송용 코딩 방식에 따라 코딩된 코딩 데이터를 수신할 수 있다. 후자의 경우, 수신 유닛(PROD_C5)과 인코딩 유닛(PROD_C1) 사이에, 전송용 코딩 방식에 따라 코딩된 코딩 데이터를 디코딩하는 전송용 디코딩 유닛(도시하지 않음)을 개재시키는 것이 바람직하다.
이러한 기록 장치(PROD_C)의 예는, DVD 레코더, BD 레코더, 및 HDD(Hard Disk Drive) 레코더를 포함한다(이 경우, 입력 단자(PROD_C4) 또는 수신 유닛(PROD_C5)이 비디오의 주된 공급원이 된다). 대안적으로, 캠코더(이 경우, 카메라(PROD_C3)가 비디오의 주된 공급원이 됨), 퍼스널 컴퓨터(이 경우, 수신 유닛(PROD_C5) 또는 이미지 처리 유닛(PROD_C6)이 비디오의 주된 공급원이 됨), 스마트폰(이 경우, 카메라(PROD_C3) 또는 수신 유닛(PROD_C5)이 비디오의 주된 공급원이 됨)은, 이러한 기록 장치(PROD_C)의 예들이다.
도 24의 (b)는, 상술한 계층적 비디오 디코딩 장치(1)를 장착한 재생 장치(PROD_D)의 구성을 도시한 블록도이다. 도 24의 (b)에 도시한 바와 같이, 재생 장치(PROD_D)는, 기록 매체(PROD_M)에 기입된 코딩 데이터를 판독하는 판독 유닛(PROD_D1)과, 판독 유닛(PROD_D1)이 판독한 코딩 데이터를 디코딩함으로써 비디오를 획득하는 디코딩 유닛(PROD_D2)을 포함한다. 상술한 계층적 비디오 디코딩 장치(1)는, 디코딩 유닛(PROD_D2)으로서 이용된다.
기록 매체(PROD_M)는, (1) HDD 또는 SSD와 같이, 재생 장치(PROD_D)에 내장되는 것일 수 있고, (2) SD 메모리 카드 또는 USB 플래시 메모리와 같이, 재생 장치(PROD_D)에 접속되는 것일 수 있고, (3) DVD 또는 BD와 같이, 재생 장치(PROD_D)에 내장된 드라이브 장치(도시하지 않음)에 삽입되는 것일 수 있다.
재생 장치(PROD_D)는, 디코딩 유닛(PROD_D2)이 출력하는 비디오의 공급처로서 기능하고 비디오를 표시하는 디스플레이(PROD_D3), 및 비디오를 외부에 출력하기 위한 출력 단자(PROD_D4) 및 비디오를 송신하는 송신 유닛(PROD_D5)을 더 포함할 수 있다. 도 24의 (b)에 있어서, 이들 요소 모두를 재생 장치(PROD_D)가 구비한 구성을 예시하고 있다. 그러나, 이들 중 일부를 생략할 수도 있다.
송신 유닛(PROD_D5)은, 코딩되지 않은 비디오를 송신하는 것일 수 있다. 대안적으로, 이 송신 유닛은 기록용 코딩 방식과는 상이한 전송용 코딩 방식에 따라 코딩된 코딩 데이터를 송신할 수 있다. 후자의 경우, 디코딩 유닛(PROD_D2)과 송신 유닛(PROD_D5) 사이에, 비디오를 전송용 코딩 방식에 따라 코딩하는 인코딩 유닛(도시하지 않음)을 개재시키는 것이 바람직하다.
이러한 재생 장치(PROD_D)는, 예를 들어, DVD 재생기, BD 재생기, HDD 재생기일 수 있다(이 경우, 텔레비전 수신 유닛 등이 접속된 출력 단자(PROD_D4)가 비디오의 주된 공급처로서 기능한다). 텔레비전 수신 유닛(이 경우, 디스플레이(PROD_D3)가 비디오의 주된 공급처가 됨), 디지털 사이니지(전자 간판 또는 전자 게시판이라 칭하고, 디스플레이(PROD_D3) 또는 송신 유닛(PROD_D5)이 비디오의 주된 공급처가 됨), 데스크톱 PC(이 경우, 출력 단자(PROD_D4) 또는 송신 유닛(PROD_D5)이 비디오의 주된 공급처가 됨), 랩톱형 또는 태블릿형 PC(이 경우, 디스플레이(PROD_D3) 또는 송신 유닛(PROD_D5)이 비디오의 주된 공급처가 됨), 스마트폰(이 경우, 디스플레이(PROD_D3) 또는 송신 유닛(PROD_D5)이 비디오의 주된 공급처가 됨) 등이 이러한 재생 장치(PROD_D)의 예들이다.
(하드웨어적 달성 및 소프트웨어적 달성에 대해서)
마지막으로, 계층적 비디오 디코딩 장치(1), 및 계층적 비디오 코딩 장치(2)의 각각의 블록은, 집적 회로(IC 칩) 상에 형성된 논리 회로에 의해 하드웨어적으로 달성되거나, 또는 CPU(Central Processing Unit)을 사용해서 소프트웨어적으로 달성될 수 있다.
후자의 경우, 각각의 장치는, 각각의 기능을 달성하는 제어 프로그램 명령을 실행하는 CPU, 상기 프로그램을 저장한 ROM(Read Only Memory), 상기 프로그램을 전개하는 RAM(Random Access Memory), 상기 프로그램 및 각종 데이터를 저장하는 메모리 등의 기억 장치(기록 매체)를 포함한다. 본 발명의 목적은, 각각의 장치에 있어서, 컴퓨터 판독가능 방식으로, 상술한 기능을 달성하는 소프트웨어인 제어 프로그램의 프로그램 코드(실행 형식 프로그램, 중간 코드 프로그램, 소스 프로그램)를 기록한 기록 매체를 각각의 장치에 공급함으로써, 및 상기 컴퓨터(CPU 또는 MPU(Micro Processing Unit))가 기록 매체에 기록되어 있는 프로그램 코드를 판독하게 함으로써 달성될 수 있다.
상기 기록 매체는, 예를 들어, 자기 테이프 또는 카세트 테이프와 같은 테이프, 플로피(R) 디스크/하드 디스크와 같은 자기 디스크, CD-ROM(Compact Disc Read-Only Memory)/MO(Magneto-Optical)/MD(Mini Disc)/DVD(Digital Versatile Disk)/CD-R(CD Recordable)과 같은 광 디스크를 포함하는 디스크들, IC 카드(메모리 카드를 포함)/광 카드와 같은 카드들, 마스크 ROM/EPROM(Erasable Programmable Read-only Memory)/EEPROM(R)(Electrically Erasable and Programmable Read-only Memory)/플래시 ROM과 같은 반도체 메모리들, 또는 PLD(Programmable Logic Apparatus) 또는 FPGA(Field Programmable Gate Array)를 포함하는 로직 회로들일 수 있다.
각각의 장치를 통신 네트워크와 접속 가능하게 구성하고, 프로그램 코드를 통신 네트워크를 통해 공급할 수 있다. 이 통신 네트워크는, 프로그램 코드를 전송할 수 있는 임의의 요소이다. 이 요소는 특별히 한정되지 않는다. 예를 들어, 인터넷, 인트라넷, 엑스트라넷, LAN(Local Area Network), ISDN(Integrated Services Digital Network), VAN(Value-Added Network), CATV(Community Antenna Television) 통신망, 가상 전용망(Virtual Private Network), 전화 회선망, 이동 통신망, 위성 통신망 등이 사용가능하다. 이 통신 네트워크를 구성하는 송신 매체는, 프로그램 코드를 송신할 수 있는 임의의 매체일 수 있다. 이 매체는, 특정한 구성 또는 타입에 한정되지 않는다. 예를 들어, IEEE(Institute of Electrical and Electronic Engineers) 1394, USB, 전력선 반송, 케이블 TV 회선, 전화선, ADSL(Asymmetric Digital Subscriber Line) 회선과 같은 유선 요소들 중 임의의 것, 또는 IrDA(lnfrared Data Association) 또는 원격 제어와 같은 적외선, Bluetooth(R), IEEE 802.11 무선, HDR(High Data Rate), NFC(Near Field Communication), DLNA(Digital Living Network Alliance), 이동 전화망, 위성 회선, 또는 지상파 디지털망과 같은 무선 요소를 포함하는 무선 요소들 중 임의의 것이 이용 가능하다. 본 발명은, 상기 프로그램 코드의 전자적 전송을 통해 구현되는, 반송파에 매립된 컴퓨터 데이터 신호의 형태로 달성될 수 있다.
[결론]
본 발명은, 적어도 양태 1 내지 7에서 설명한 이미지 디코딩 장치 및 양태 8 내지 12에서 설명한 이미지 코딩 장치를 포함한다.
본 발명의 양태 1에 따른 이미지 디코딩 장치는, 계층적 이미지 코딩 데이터를 디코딩하는 이미지 디코딩 장치이며, 적어도 1개의 계층 세트를 포함하는 계층 세트 정보를 디코딩하는 계층 세트 정보 디코딩 수단; 상기 계층 세트와 출력 계층 플래그의 조합에 의해 표현되는 적어도 1개의 출력 계층 세트를 포함하는 출력 계층 세트 정보를 디코딩하는 출력 계층 세트 정보 디코딩 수단; 상기 출력 계층 세트 정보에 포함되는 출력 계층 세트들 중 하나를 선택하는 출력 계층 세트 선택 수단; 상기 선택된 출력 계층 세트에 연관된 계층 세트에 포함되는 계층들의 디코딩 픽처를 생성하는 픽처 디코딩 수단; 상기 계층들의 디코딩 픽처들을 유지하는 버퍼 수단을 포함한다. 상기 버퍼 수단은, 상기 계층들의 유지된 디코딩 픽처들 중 적어도 1개의 계층에 대응하는 디코딩 픽처를, 상기 계층에 관련된 출력 픽처로서 출력한다.
본 발명의 양태 2에 따른 이미지 디코딩 장치는, 상기 양태 1에 따른 장치이며, 상기 출력 계층 세트에 있어서 출력 계층 플래그의 총합이 적어도 1이다.
본 발명의 양태 3에 따른 이미지 디코딩 장치는, 상기 양태 1 또는 2에 따른 장치이며, 상기 출력 계층 세트에 연관된 계층 세트는, 기본 계층을 포함한다.
본 발명의 양태 4에 따른 이미지 디코딩 장치는, 상기 양태 1 또는 2에 따른 장치이며, 상기 출력 계층 세트에 있어서, 2 이상의 출력 계층 세트가, 동일 계층 세트에 연관되고, 출력 계층 수가 동일할 때, 상기 2 이상의 출력 계층 세트에 있어서, 적어도 1개의 동일 계층에 관한 출력 계층 플래그의 값이 서로 상이하다.
본 발명의 양태 5에 따른 이미지 디코딩 장치는, 상기 양태 1 또는 2에 따른 장치이며, 상기 출력 계층 세트에 대응하는 PTL 정보를 디코딩하는 PTL 정보 디코딩 수단을 더 포함하고, 상기 출력 계층 세트에 관해서, 2 이상의 출력 계층 세트가 동일 계층 세트에 연관되고, 출력 계층 수가 동일할 때, 상기 2 이상의 출력 계층 세트에 있어서, PTL 정보가 서로 상이하거나, 또는 적어도 1개의 동일 계층의 출력 계층 플래그의 값이 서로 상이하다.
본 발명의 양태 6에 따른 이미지 디코딩 장치는, 상기 양태 1 또는 2에 따른 장치이며, 상기 출력 계층 세트 정보 디코딩 수단은, 계층 세트 수가 1과 동일한 경우, 추가 출력 계층 세트 수를 코딩 데이터로부터 디코딩하지 않고 0으로 추정하고, 상기 계층 세트 수가 1보다 큰 경우, 추가 출력 계층 세트 수를 코딩 데이터로부터 디코딩하고, 출력 계층 세트 수를, 계층 세트 수와 추가 출력 계층 세트 수의 합으로서 도출한다.
본 발명의 양태 7에 따른 이미지 디코딩 장치는, 상기 양태 1 또는 2에 따른 장치이며, 상기 출력 계층 세트 정보 디코딩 수단은, 계층 세트 수가 1보다 큰 경우, 상기 출력 계층 플래그의 도출 처리를 지정하는 디폴트 출력 계층 정보를, 코딩 데이터를 디코딩하여 획득하고, 상기 계층 세트 수가 1과 동일한 경우, 상기 수단은 상기 디폴트 출력 계층 정보를 코딩 데이터로부터 디코딩하여 획득하지 않는다.
본 발명의 양태 8에 따른 이미지 코딩 장치는, 계층 코딩 데이터를 생성하는 이미지 코딩 장치이며, 적어도 1개의 계층 세트를 포함하는 계층 세트 정보를 코딩하는 계층 세트 정보 코딩 수단; 상기 계층 세트 정보와 출력 계층 플래그의 조합에 의해 표현되는 적어도 1개의 출력 계층 세트를 포함하는 출력 계층 세트 정보를 코딩하는 출력 계층 세트 정보 코딩 수단; 및 상기 출력 계층 세트에 대응하는 계층 세트에 포함되는 각각의 계층의 픽처를 코딩하는 픽처 코딩 수단을 포함하고, 상기 출력 계층 세트는, 적어도 1개의 출력 계층을 포함한다.
본 발명의 양태 9에 따른 이미지 코딩 장치는, 상기 양태 8에 따른 장치이며, 상기 출력 계층 세트에 관해서, 2 이상의 출력 계층 세트가 동일 계층 세트에 연관되고, 출력 계층 수가 동일할 때, 상기 2 이상의 출력 계층 세트에 있어서, 적어도 1개의 동일 계층에 관한 출력 계층 플래그의 값이 서로 상이하다.
본 발명의 양태 10에 따른 이미지 코딩 장치는, 상기 양태 8에 따른 장치이며, 상기 출력 계층 세트에 대응하는 PTL 정보를 코딩하는 PTL 정보 코딩 수단을 더 구비하고,
상기 출력 계층 세트에 관해서, 2 이상의 출력 계층 세트가 동일 계층 세트에 연관되고, 출력 계층 수가 동일할 때, 상기 2 이상의 출력 계층 세트에 있어서, PTL 정보가 서로 상이하거나, 또는 적어도 1개의 동일 계층의 출력 계층 플래그의 값이 서로 상이하다.
본 발명의 양태 11에 따른 이미지 코딩 장치는, 상기 양태 8에 따른 장치이며, 상기 출력 계층 세트 정보 코딩 수단은, 계층 세트 수가 1과 동일한 경우, 출력 계층 세트 수와 계층 세트 수의 차이를 나타내는 추가 출력 계층 세트 수를 코딩하지 않고, 상기 계층 세트 수가 1보다 큰 경우, 상기 수단은 상기 추가 출력 계층 세트 수를 코딩한다.
본 발명의 양태 12에 따른 이미지 코딩 장치는, 상기 양태 8에 따른 장치이며, 상기 출력 계층 세트 정보 코딩 수단은, 계층 세트 수가 1보다 큰 경우에, 상기 디폴트 출력 계층 정보를 코딩하고, 상기 계층 세트 수가 1과 동등한 경우에, 상기 수단은 상기 디폴트 출력 계층 정보를 코딩하지 않는다.
본 발명은 상술한 각각의 실시예에 한정되지 않는다. 각종 변경이 청구항들에 표현된 범위 내에서 가능하다. 각종 실시예들에 개시된 기술적 수단들의 타입들을 조합함으로써 얻어지는 임의의 실시예 역시, 본 발명의 기술적 범위 내에 포함된다.
본 발명은, 이미지 데이터가 계층적으로 코딩된 코딩 데이터를 디코딩하는 계층적 비디오 디코딩 장치, 및 이미지 데이터가 계층적으로 코딩된 코딩 데이터를 생성하는 계층적 비디오 코딩 장치에 적합하게 적용할 수 있다. 본 발명은, 계층적 비디오 코딩 장치에 의해 생성되어, 계층적 비디오 디코딩 장치에 의해 참조되는 계층 코딩 데이터의 데이터 구조에 적합하게 적용할 수 있다.
1: 계층적 비디오 디코딩 장치
2: 계층적 비디오 코딩 장치
10: 타겟 세트 픽처 디코딩 유닛
11: NAL 역다중화 유닛(NAL 유닛 디코딩 수단, 계층 식별자 디코딩 수단)
12: 비-VCL 디코딩 유닛(파라미터 세트 디코딩 수단, 계층 세트 정보 디코딩 수단, 출력 계층 세트 정보 디코딩 수단, PTL 정보 디코딩 수단)
13: 파라미터 메모리
14: 픽처 디코딩 유닛(VCL 디코딩 수단)
141: 슬라이스 헤더 디코딩 유닛
142: CTU 디코딩 유닛
1421: 예측 잔차 복원 유닛
1422: 예측 이미지 생성 유닛
1423: CTU 디코딩 이미지 생성 유닛
15: 디코딩 픽처 관리 유닛
16: 출력 제어 유닛(출력 계층 세트 선택 수단)
17: 비트 스트림 추출 수단(코딩 데이터 추출 수단)
20: 타겟 세트 픽처 인코딩 유닛
21: NAL 다중화 유닛(NAL 유닛 인코딩 수단)
22: 비-VCL 인코딩 유닛(파라미터 세트 코딩 수단, 계층 세트 정보 코딩 수단, 출력 계층 세트 정보 코딩 수단, PTL 정보 코딩 수단)
24: 픽처 인코딩 유닛(VCL 코딩 수단)
26: 코딩 파라미터 결정 유닛
241: 슬라이스 헤더 인코딩 유닛
242: CTU 인코딩 유닛
2421: 예측 잔차 인코딩 유닛
2422: 예측 이미지 인코딩 유닛
2423: CTU 디코딩 이미지 생성 유닛

Claims (4)

  1. 하나 이상의 계층을 포함하는 계층적 이미지 코딩 데이터(hierarchical image coded data)를 디코딩하는 이미지 디코딩 장치로서,
    계층 세트의 계층 구성을 표현하는 계층 세트 정보(layer set information)를 디코딩하는 계층 세트 정보 디코딩 유닛;
    상기 계층 세트를 식별하기 위한 계층 세트 식별자, 및 상기 계층 세트에 포함되는 상기 계층이 출력 계층인지의 여부를 지정하는 출력 계층 플래그 OutputLayerFlag를 디코딩하고, 출력 계층 세트를 도출하는 출력 계층 세트 정보 디코딩 유닛; 및
    상기 출력 계층 세트에 포함되는 상기 출력 계층의 픽처를 디코딩하는 픽처 디코딩 유닛을 포함하고,
    상기 출력 계층 세트는, 적어도 1개의 출력 계층을 포함하는, 이미지 디코딩 장치.
  2. 제1항에 있어서,
    상기 출력 계층 플래그는, 상기 플래그의 값이 1인 경우에, 상기 출력 계층을 타겟 계층으로 간주하고, 상기 플래그의 값이 0(zero)인 경우에, 상기 출력 계층을 상기 타겟 계층으로 간주하지 않는 것을 지시하고, 상기 출력 계층 세트에 포함되는 상기 계층들의 상기 출력 계층 플래그들의 값의 총합은 적어도 1인, 이미지 디코딩 장치.
  3. 제2항에 있어서,
    상기 출력 계층 세트 정보 디코딩 유닛은, 상기 계층 세트 식별자의 값이 0인 경우에, 상기 출력 계층 세트의 기본 계층(base layer)에 관한 상기 출력 계층 플래그의 값을 1로 가정하는, 이미지 디코딩 장치.
  4. 제3항에 있어서,
    상기 출력 계층 세트 정보 디코딩 유닛은, 상기 계층적 이미지 코딩 데이터에 포함되는 계층 세트의 수가 1보다 클 경우에, 상기 계층적 이미지 코딩 데이터로부터 추가 출력 계층 세트들의 수를 디코딩하고, 상기 추가 출력 계층 세트들의 수에 관한 신택스가 상기 계층적 이미지 코딩 데이터에 없는 경우에, 상기 디코딩 유닛은 상기 추가 출력 계층 세트들의 수를 0으로 가정하는, 이미지 디코딩 장치.
KR1020167028194A 2014-03-14 2015-03-05 이미지 디코딩 장치 KR102073030B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2014-051851 2014-03-14
JP2014051851 2014-03-14
PCT/JP2015/056552 WO2015137237A1 (ja) 2014-03-14 2015-03-05 画像復号装置

Publications (2)

Publication Number Publication Date
KR20160132089A KR20160132089A (ko) 2016-11-16
KR102073030B1 true KR102073030B1 (ko) 2020-02-04

Family

ID=54071683

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167028194A KR102073030B1 (ko) 2014-03-14 2015-03-05 이미지 디코딩 장치

Country Status (6)

Country Link
US (3) US11356682B2 (ko)
EP (1) EP3107299A4 (ko)
JP (2) JP6329246B2 (ko)
KR (1) KR102073030B1 (ko)
CN (1) CN106170981B (ko)
WO (1) WO2015137237A1 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10178397B2 (en) * 2014-03-24 2019-01-08 Qualcomm Incorporated Generic use of HEVC SEI messages for multi-layer codecs
US9930340B2 (en) * 2014-06-20 2018-03-27 Qualcomm Incorporated Systems and methods for selectively performing a bitstream conformance check
WO2020130910A1 (en) * 2018-12-20 2020-06-25 Telefonaktiebolaget Lm Ericsson (Publ) Methods providing encoding and/or decoding of video using a syntax indicator and picture header
CN109788300A (zh) * 2018-12-28 2019-05-21 芯原微电子(北京)有限公司 一种hevc解码器中的错误检测方法和装置
KR20220024721A (ko) * 2019-06-20 2022-03-03 노키아 테크놀로지스 오와이 비디오 인코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
CN114303372B (zh) * 2019-06-28 2024-04-09 Sk电信有限公司 自适应地设置分辨率的方法及图像解码装置
KR20220065044A (ko) * 2019-09-24 2022-05-19 후아웨이 테크놀러지 컴퍼니 리미티드 공간 및 snr 확장성을 위한 ols
EP4026339A4 (en) * 2019-09-24 2022-11-16 Huawei Technologies Co., Ltd. SCALABLE INTEGRATION SEI MESSAGE MANAGEMENT
WO2021061490A1 (en) * 2019-09-24 2021-04-01 Futurewei Technologies, Inc. Signaling of dpb parameters for multi-layer video bitstreams
EP4026329A4 (en) 2019-09-24 2022-10-26 Huawei Technologies Co., Ltd. OLE FOR MULTIVIEW SCALABILITY
MX2022004138A (es) * 2019-10-07 2022-04-26 Huawei Tech Co Ltd Evitación de señalización redundante en flujos de bits de video multicapa.
US11265567B2 (en) 2019-10-08 2022-03-01 Tencent America LLC Method for output layer set signaling in scalable video stream
EP4044597A4 (en) * 2019-10-10 2023-11-01 Samsung Electronics Co., Ltd. IMAGE DECODING APPARATUS WITH TOOL SET AND IMAGE DECODING METHOD THEREOF, AND IMAGE CODING APPARATUS AND IMAGE CODING METHOD THEREOF
KR102493125B1 (ko) * 2019-10-10 2023-01-30 삼성전자주식회사 툴 세트를 이용하는 영상 복호화 장치 및 이에 의한 영상 복호화 방법, 및 영상 부호화 장치 및 이에 의한 영상 부호화 방법
WO2021125703A1 (ko) * 2019-12-20 2021-06-24 엘지전자 주식회사 영상/비디오 코딩 방법 및 장치
WO2021134015A1 (en) * 2019-12-26 2021-07-01 Bytedance Inc. Profile, tier and layer indication in video coding
CN114846457A (zh) 2019-12-26 2022-08-02 字节跳动有限公司 对层级视频的编解码的限制
KR20220115959A (ko) 2019-12-27 2022-08-19 바이트댄스 아이엔씨 비디오 코딩에서의 서브픽처 시그널링
CN114946188A (zh) 2020-01-09 2022-08-26 字节跳动有限公司 视频比特流中的值的范围的约束
CN115398912A (zh) 2020-02-29 2022-11-25 抖音视界有限公司 自适应参数集的语法元素的约束
JP2021158407A (ja) * 2020-03-25 2021-10-07 富士通株式会社 符号化装置、復号装置、符号化方法、復号方法、画面転送システム及びプログラム
US11228776B1 (en) * 2020-03-27 2022-01-18 Tencent America LLC Method for output layer set mode in multilayered video stream
WO2021201513A1 (ko) * 2020-03-30 2021-10-07 엘지전자 주식회사 Sps 내 ptl, dpb 및 hrd 관련 정보를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체
US11140399B1 (en) * 2020-04-03 2021-10-05 Sony Corporation Controlling video data encoding and decoding levels
KR20230008795A (ko) * 2020-05-04 2023-01-16 엘지전자 주식회사 영상 디코딩 방법 및 그 장치
KR20230015391A (ko) 2020-05-22 2023-01-31 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 서브-비트스트림 추출에서 코딩된 비디오의 핸들링
JP2023526494A (ja) * 2020-05-22 2023-06-21 北京字節跳動網絡技術有限公司 一般制約フラグのシグナリング
CN115733987A (zh) * 2021-08-30 2023-03-03 华为技术有限公司 编解码方法、编码器、解码器及电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8532437B2 (en) * 2009-05-18 2013-09-10 Citrix Systems, Inc. Systems and methods for block recomposition for compound image compression
US20130339482A1 (en) * 2012-06-15 2013-12-19 Samsung Electronics Co., Ltd Data transmitting system, and transmitting apparatus and receiving apparatus and program in data transmitting system
KR101678321B1 (ko) * 2012-07-02 2016-11-21 노키아 테크놀로지스 오와이 비디오 코딩을 위한 방법 및 장치
CA2886943C (en) * 2012-10-09 2020-12-15 Sony Corporation Image processing device and method
US9936196B2 (en) * 2012-10-30 2018-04-03 Qualcomm Incorporated Target output layers in video coding
US9591321B2 (en) * 2013-04-07 2017-03-07 Dolby International Ab Signaling change in output layer sets

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
H. Lee, et al. MV-HEVC/SHVC HLS: On output_layer_flag. JCT-VC of ITU-T and ISO/IEC. JCTVC-P0078 Ver.2, Jan. 10, 2014, pp.1-3
K. Ugur, et al. MV-HEVC/SHVC HLS: On default output layer sets. JCT-VC of ITU-T and ISO/IEC. JCTVC-P0110 Ver.2, Jan. 12, 2014, pp.1-4
T. Tsukuba, et al. MV-HEVC/SHVC HLS: Clean up for output layer set. JCT-VC of ITU-T and ISO/IEC. JCTVC-Q0165 Ver.1, Mar. 18, 2014, pp.1-8

Also Published As

Publication number Publication date
JP6329246B2 (ja) 2018-05-23
EP3107299A4 (en) 2017-04-26
CN106170981B (zh) 2019-02-26
JPWO2015137237A1 (ja) 2017-04-06
US11356682B2 (en) 2022-06-07
JP2018139433A (ja) 2018-09-06
US20220286693A1 (en) 2022-09-08
US20230421784A1 (en) 2023-12-28
US20170006300A1 (en) 2017-01-05
US11683508B2 (en) 2023-06-20
EP3107299A1 (en) 2016-12-21
JP6585223B2 (ja) 2019-10-02
CN106170981A (zh) 2016-11-30
KR20160132089A (ko) 2016-11-16
WO2015137237A1 (ja) 2015-09-17

Similar Documents

Publication Publication Date Title
KR102073030B1 (ko) 이미지 디코딩 장치
US20200322634A1 (en) Image decoding apparatus, image decoding method
JP6465863B2 (ja) 画像復号装置、画像復号方法及び記録媒体
US10136151B2 (en) Image decoding device and image decoding method
US20190014351A1 (en) Moving image coding device, a moving image coding method, and a moving image decoding device
WO2015053330A1 (ja) 画像復号装置
TWI646826B (zh) Image decoding device and image encoding device
WO2015053120A1 (ja) 画像復号装置、画像復号方法、画像符号化装置、及び画像符号化方法
JP2015195543A (ja) 画像復号装置、画像符号化装置
WO2014007131A1 (ja) 画像復号装置、および画像符号化装置
JP2015119402A (ja) 画像復号装置、画像符号化装置、及び符号化データ
WO2015098713A1 (ja) 画像復号装置および画像符号化装置
JP2015126507A (ja) 画像復号装置、画像符号化装置、及び符号化データ
JP2015076807A (ja) 画像復号装置、画像符号化装置、および符号化データのデータ構造

Legal Events

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