KR20220119675A - 화상 헤더 존재 - Google Patents

화상 헤더 존재 Download PDF

Info

Publication number
KR20220119675A
KR20220119675A KR1020227025271A KR20227025271A KR20220119675A KR 20220119675 A KR20220119675 A KR 20220119675A KR 1020227025271 A KR1020227025271 A KR 1020227025271A KR 20227025271 A KR20227025271 A KR 20227025271A KR 20220119675 A KR20220119675 A KR 20220119675A
Authority
KR
South Korea
Prior art keywords
picture
slice
value
header
slice header
Prior art date
Application number
KR1020227025271A
Other languages
English (en)
Inventor
리카르드 셰베르그
미트라 담가니안
마르틴 페테르손
Original Assignee
텔레폰악티에볼라겟엘엠에릭슨(펍)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텔레폰악티에볼라겟엘엠에릭슨(펍) filed Critical 텔레폰악티에볼라겟엘엠에릭슨(펍)
Priority claimed from PCT/EP2020/076815 external-priority patent/WO2021139905A1/en
Publication of KR20220119675A publication Critical patent/KR20220119675A/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission

Landscapes

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

Abstract

비트스트림으로부터 화상을 디코딩하는 방법으로서, 일 실시예에서 상기 방법은, 화상의 슬라이스에 대한 슬라이스 헤더를 수신하는 단계 - 상기 슬라이스 헤더는 상태 신택스 요소를 포함함 -; 슬라이스 헤더에서 상태 신택스 요소로부터 상태 값을 디코딩하는 단계(805) - (a) 상태 값이 제1 값과 동일하지 않은 경우, 상태 값은 i) 비트스트림이 화상에 대해 화상 신택스 요소들의 세트를 포함하는 화상 헤더를 포함하는 것과, ii) 슬라이스 헤더가 화상 신택스 요소들의 세트를 포함하지 않는 것을 표시하고, (b) 상태 값이 제1 값과 동일한 경우, 상태 값은 i) 슬라이스 헤더가 상기 화상 신택스 요소들의 세트를 포함하는 것과 ii) 비트스트림이 화상에 대한 화상 헤더를 포함하지 않는 것을 표시함 -; 및 화상의 슬라이스를 디코딩하기 위해 화상 신택스 요소들의 세트를 사용하는 단계;를 포함한다.

Description

화상 헤더 존재
본 발명은 일반적으로 비디오 인코딩 및 디코딩을 위한 방법들 및 장치들에 관한 것이다.
고효율 비디오 코딩(High Efficiency video Coding: HEVC)은 시간적 및 공간적 예측을 사용하는 ITU-T(International Telecommunication Union Telecommunication Standardization Sector) 및 MPEG(Moving picture Expert Group)에 의해 표준화된 블록 기반 비디오 코덱(block-based video codec)이다. 공간적 예측(spatial prediction)은 현재 화상 내에서 인트라(I) 예측을 사용하여 달성된다. 시간적 예측(temporal prediction)은 이전에 디코딩된 참조 화상으로부터 블록 레벨에서 단방향(P) 또는 양방향 인터(B) 예측을 사용하여 달성된다. 인코더에서, 잔차(residual)라고 하는, 원본 픽셀 데이터와 예측된 픽셀 데이터 사이의 차이는, 주파수 도메인으로 변환되고, 양자화된 다음, 예측 모드 및 모션 벡터(motion vector)와 같은 필요한 예측 파라미터들과 함께 전송되기 전에 엔트로피 코딩(entropy coded)되고, 또한 엔트로피 코딩된다. 디코더(decoder)는 잔차를 얻기 위해 엔트로피 디코딩, 역양자화 및 역변환을 수행하고, 그 후, 화상을 재구성하기 위해 인트라 또는 인터 예측에 잔차를 추가한다.
MPEG 및 ITU-T는 JVET(Joint video Exploratory Team) 내의 HEVC에 대한 계승자(successor) 상에서 동작한다. 개발 중인 이러한 비디오 코덱의 명칭은 다기능 비디오 코딩(Versatile Video Coding: VVC)이다. 본 출원의 출원 시점에서의 VVC 사양의 현재 버전은 JVET-Q0041-v2_DraftText.dox이다.
NAL 유닛
HEVC 및 VVC는 모두 네트워크 추상화 레이어(Network Abstraction Layer: NAL)를 정의한다. HEVC 및 VVC에서의 모든 데이터, 즉 비디오 코딩 레이어(VCL) 또는 비-VCL 데이터(non-VCL data)는 NAL 유닛들에서 캡슐화된다. VCL NAL 유닛은 화상 샘플 값들을 나타내는 데이터를 포함한다. 비-VCL NAL 유닛은 파라미터 세트들 및 보충 강화 정보(Supplemental Enhancement Information: SEI) 메시지들과 같은 부가적인 연관 데이터를 포함한다. HEVC에서의 NAL 유닛은 NAL 유닛에서 실행되는 데이터의 유형, 즉 NAL 유닛이 속하는 레이어 ID 및 시간적 ID를 식별하는, NAL 유닛의 NAL 유닛 유형을 특정하는 헤더로 시작한다. NAL 유닛 유형은 NAL 유닛 헤더에서의 NAL 유닛 유형 코드워드(codeword)에서 송신되고, 유형은 NAL 유닛이 어떻게 파싱(parsing) 및 디코딩되어야 하는지를 표시하고 정의한다. NAL 유닛의 나머지 바이트들은 NAL 유닛 유형에 의해 표시된 유형의 페이로드(payload)이다. 비트스트림은 일련의 연쇄(concatenated) NAL 유닛들로 구성된다.
HEYC NAL 유닛 및 NAL 유닛 헤더에 대한 신택스(syntax)를 표 1에 나타내었다.
Figure pct00001
표 1 - HEVC NAL 유닛 신택스
현재 VVC 드래프트의 NAL 유닛 유형들을 표 2에 나타내었다.
디코딩 순서는 NAL 유닛들이 디코딩되어야 하는 순서이고, 이는 비트스트림 내의 NAL 유닛들의 순서와 동일하다. 디코딩 순서는 출력 순서와 상이할 수도 있는데, 출력 순서는 디코더에 의해, 예를 들어 디스플레이에 대해, 디코딩된 화상들이 출력될 수 있는 순서이다.
Figure pct00002
Figure pct00003
Figure pct00004
표 2 - VCC에서의 NAL 유닛 유형
HEVC에서의 단일 레이어 코딩에 대해, 액세스 유닛(AU)은 비-VCL NAL 유닛들뿐만 아니라 몇몇 비디오 코딩 레이어(VCL) NAL 유닛들로 구성될 수도 있는 화상의 코딩된 표현이다. HEVC에서의 코딩된 비디오 시퀀스(CVS)는 인트라 랜덤 액세스 포인트(IRAP) 액세스 유닛에서 시작하여, 디코딩 순서에서 다음 IRAP 액세스 유닛을 포함하지 않는 일련의 액세스 유닛들이다. 디코딩 순서는 NAL 유닛들이 디코딩되어야 하는 순서이고, 이는 비트스트림 내의 NAL 유닛들의 순서와 동일하다. 디코딩 순서는 출력 순서와 상이할 수도 있는데, 출력 순서는 디코더에 의해, 예를 들어 디스플레이에 대해, 디코딩된 화상들이 출력될 수 있는 순서이다.
비-VCL NAL 유닛은, 예를 들어 파라미터 세트와 같은, 코딩된 샘플 값을 직접 반송하지 않는 NAL 유닛이다. VVC 및 HEVC 모두는 화상 파라미터 세트(PPS) 및 시퀀스 파라미터 세트(SPS)를 정의하며, 이들은 각각 화상 또는 시퀀스에 대해 유효한 파라미터들을 포함한다. HEVC에 다른 파라미터 세트가 있으며, 여러 레이어들에 대해 유효한 정보를 포함하는 비디오 파라미터 세트(VPS)가 있다. 새로운 VPS는 새로운 CVS의 시작에서만 활성화될 수 있다. VVC가 종료될 때, VVC는 VPS 또는 이와 유사한 것을 포함하거나 포함하지 않을 수 있다.
VVC 및 HEVC의 각 NAL 유닛의 제1 바이트는 NAL 유닛 유형 신택스 요소를 포함한다. 디코더 또는 비트스트림 파서(bitstream parser)는, 제1 바이트를 본 후, NAL 유닛이 어떻게 처리되어야 하는지, 예를 들어 어떻게 파싱되고 디코딩되어야 하는지를 결론지을 수 있다.
시간적 레이어(Temporal layers)
HEVC와 VVC의 현재 버전에서, 모든 화상들은 그 화상이 속하는 시간적 레이어가 무엇인지 지정하는 TemporalId 값과 연관된다. TemporlId 값들은 NAL 유닛 헤더에서 nuh_temporal_id_plus1 신택스 요소로부터 디코딩된다. HEVC에서, 더 높은 시간적 레이어들이 폐기될 때 하위 레이어에 속하는 화상들이 완벽하게 디코딩 가능하게 되도록 TemporalId 값들을 설정하기 위해 인코더가 요구된다. 예를 들어, 시간적 레이어들 0, 1, 2를 사용하여 인코더가 비트스트림을 출력한다고 가정한다. 그러면, 모든 레이어 2 NAL 유닛들을 제거하거나 모든 레이어 1 및 2 NAL 유닛들을 제거하는 것은 문제없이 디코딩될 수 있는 비트스트림들이 생기게 할 것이다. 이것은 인코더가 준수해야 하는 HEVC/VVC 사양의 제한에 의해 보장된다. 예를 들어, 시간적 레이어의 화상이 더 높은 시간적 레이어의 화상을 참조하는 것은 허용되지 않는다.
레이어, 종속 및 독립 레이어(Layers, dependent and independent layers)
모두 nuh_layer_id의 특정한 값 및 연관된 비-VCL NAL 유닛들을 갖는 VCL NAL 유닛들의 세트로서, 레이어들이 VVC에서 정의된다.
디코딩 순서에서 연속적이고 정확하게 하나의 코딩된 화상을 포함하는 특정한 분류 규칙에 따라 서로 연관된 nuh_layer_id의 특정 값을, VCL NAL 유닛들 모두가 갖는 NAL 유닛들의 세트로서, VVC에서의 레이어 액세스 유닛이 정의된다.
VVC의 현재 버전에서 코딩된 레이어 비디오 시퀀스(CLVS)는, 디코딩 순서로, CLVS 레이어 액세스 유닛을 포함하는 레이어 액세스 유닛들의 시퀀스로서 정의되고, 모든 후속 레이어 액세스 유닛들을 포함하지만, CLVS 레이어 액세스 유닛인 임의의 후속 레이어 액세스 유닛을 포함하지 않는, CLVS 레이어 액세스 유닛이 아닌 영(0) 이상의 레이어 액세스 유닛들로 이어진다. 레이어 액세스 유닛들 및 코딩된 레이어 비디오 시퀀스들 사이의 관계가 도 1에 도시되어 있다. VVC의 현재 버전에서, 레이어들은 서로 독립적으로 또는 종속적으로 코딩될 수 있다. 레이어들이 독립적으로 코딩될 때, 예를 들어 nuh_layer_id 0을 갖는 레이어는, 예를 들어 nuh_layer_id 1을 갖는 다른 레이어로부터 비디오 데이터를 예측하지 않을 수 있다. VVC의 현재 버전에서, 레이어 사이에서 종속 코딩이 사용될 수 있으며, 이는 SNR, 공간 및 뷰 스케일러빌리티(view scalability)를 갖는 스케일러블 코딩(scalable coding)을 위한 지원을 가능하게 한다.
화상 헤더(picture header)
현재 VVC 드래프트(draft)는 화상 헤더를 포함하며, 이는 nal_unit_type이 PH_NUT과 동일한 NAL 유닛이다. 화상 헤더는 슬라이스 헤더(slice header)와 유사하지만, 화상 헤더에서의 신택스 요소들의 값들은 하나의 화상의 모든 슬라이스들을 디코딩하는데 사용된다. VVC에서의 각 화상은 하나의 화상 헤더 NAL 유닛으로 구성되며, 각각의 코딩된 슬라이스가 하나의 코딩된 슬라이스 NAL 유닛에 전달되는 화상의 모든 코딩된 슬라이스로 이어진다.
VVC 블록 구조
드래프트 VVC 비디오 코딩 표준은 4진 트리(quad tree) 더하기 2진 트리(binary tree) 더하기 3진 트리(ternary tree) 블록 구조(QTBT+TT)라고 하는 블록 구조를 사용하며, 여기서 각 화상은 코딩 트리 유닛(CTU)이라고 하는 정사각형 블록으로 먼저 분할된다. 모든 CTU의 크기는 동일하고, 파티션은 그것을 제어하는 신택스 없이 수행된다. 각 CTU는 정사각형 또는 직사각형 형상을 가질 수 있는 코딩 유닛(CU)으로 더 분할된다. CTU는 4진 트리 구조에 의해 먼저 분할되고, 그 후 코딩 유닛(CU)들을 형성하기 위해 2진 구조에서 수직 또는 수평으로 동일한 크기의 파티션들로 더 분할될 수 있다. 따라서 블록은 정사각형 또는 직사각형 형상일 수 있다. 4진 트리 및 2진 트리의 깊이는 비트스트림에서 인코더에 의해 설정될 수 있다. QTBT를 이용하여 CTU를 분할하는 일례가 도 1A 및 1B에 도시되어 있다. 3진 트리(TT) 부분은 2개의 동일한 크기의 파티션들 대신에 CU를 3개의 파티션들로 분할할 가능성을 추가하며, 이것은 화상에서의 콘텐츠 구조에 더 잘 맞는 블록 구조를 사용할 가능성을 증가시킨다.
파라미터 세트
HEVC는 3가지 유형의 파라미터 세트, 화상 파라미터 세트(PPS), 시퀀스 파라미터 세트(SPS) 및 비디오 파라미터 세트(VPS)를 특정한다. PPS는 전체 화상에 대해 공통인 데이터를 포함하고, SPS는 코딩된 비디오 시퀀스(CVS)에 대해 공통인 데이터를 포함하고, VPS는 다수의 CVS에 대해 공통인 데이터를 포함한다.
또한, VVC는 이러한 파라미터 세트 유형들을 사용한다. VVC에서, 적응 파라미터 세트(APS) 및 디코딩 파라미터 세트(DPS)가 있다. APS는 다수의 슬라이스에 대해 사용될 수 있는 정보를 포함할 수 있고, 동일한 화상의 2개의 슬라이스는 상이한 APS들을 사용할 수 있다. DPS는 디코더가 전체 비트스트림에서 만날 수 있는 프로파일 및 레벨의 관점에서 "최악의 경우"를 특정하는 정보로 구성된다.
슬라이스(Slices)
HEVC에서의 슬라이스들의 개념은 화상을 독립적으로 코딩된 슬라이스들로 분할하고, 여기서 화상에서의 하나의 슬라이스의 디코딩은 동일한 화상의 다른 슬라이스들과는 독립적이다. 동일한 화상의 슬라이스에 대해 상이한 코딩 유형들이 사용될 수 있는데, 즉 슬라이스는 I-slice, P-slice 또는 B-slice일 수 있다. 슬라이스들의 하나의 목적은 데이터 손실의 경우에 재동기화(resynchronization)를 가능하게 하는 것이다. HEVC에서, 슬라이스는 CTU들의 세트이다.
VVC의 현재 버전에서, 화상은 래스터 스캔(raster scan) 슬라이스들 또는 직사각형 슬라이스들로 분할될 수 있다. 래스터 스캔 슬라이스는 래스터 스캔 순서로 다수의 완전한 타일로 구성된다. 직사각형 슬라이스는 화상에서의 직사각형 영역 또는 하나의 타일 내의 연속적인 개수의 CTU 행(row)들을 함께 점유하는 타일들의 그룹으로 구성된다. 각 슬라이스는 슬라이스 헤더 및 코딩된 슬라이스 데이터를 포함한다. 이것은 신택스 요소들을 포함하는 슬라이스 헤더를 갖는다. 이들 신택스 요소들로부터의 디코딩된 슬라이스 헤더 값들은 슬라이스를 디코딩할 때 사용된다. 각각의 슬라이스는 하나의 VCL NAL 유닛으로 반송된다.
VVC 드래프트 사양의 이전 버전에서, 슬라이스들은 타일 그룹들로서 지칭되었다.
타일(Tiles)
드래프트 VVC 비디오 코딩 표준은 화상을 직사각형인 공간적으로 독립적인 영역으로 분할하는 타일이라고 하는 기술을 포함한다. 드래프트 VVC 코딩 표준에서의 타일은, HEVC에서 사용되는 타일과 매우 유사하다. 타일들을 사용하여, VVC에서의 화상은 샘플들의 행 및 열로 분할될 수 있고, 여기서 타일은 행 및 열의 교차점이다. 도 2는 4개의 타일 행들 및 5개의 타일 열들을 사용하는 타일 분할의 일례를 나타내며, 그 결과 화상에 대한 총 20개의 타일들이 나온다.
타일 구조는 행 및 열의 폭을 특정함으로써 화상 파라미터 세트(PPS)에서 시그널링된다. 개별적인 행들 및 열들은 상이한 크기들을 가질 수 있지만, 분할은 항상 좌측에서 우측으로 및 상단에서 하단으로 각각 전체 화상에 걸쳐 진행된다.
동일한 화상의 타일들 사이에서 디코딩 의존성은 없다. 이것은 인트라 예측, 엔트로피 코딩을 위한 콘텍스트 선택(context selection) 및 모션 벡터 예측을 포함한다. 하나의 예외는 인-루프 필터링 종속성(in-loop filtering dependence)이 일반적으로 타일들 사이에서 허용된다는 것이다.
VVC에서의 직사각형 슬라이스 모드에서, 타일은 다수의 슬라이스들로 분할될 수 있으며 여기서 각각의 슬라이스는 하나의 타일 내의 연속적인 개수의 CTU 행들로 구성된다. 도 3은 VVC에서의 타일 분할을 사용하는 타일 분할 및 직사각형 슬라이스 분할의 일례를 나타낸다.
화상 헤더 및 슬라이스 헤더의 병합(Merging)
VET 입력 기고(input contributions) JVET-Q0255-vl.zip 및 JVET-Q0426-v2.zip 모두는, 화상 헤더 및 슬라이스 헤더를 병합하는 것을 제안한다. 두 기고는 BDR-세이빙(saving)들을 청구하는, 화상 헤더(PH)를 선택적으로 만들도록 제안하고 있고, PH가 존재하지 않을 때 단일 VCL NAL 유닛에서 PH, 슬라이스 헤더 및 슬라이스 데이터의 신택스를 반송할 것을 제안하고 있다. JVET-Q0255와 JVET-Q0426 사이의 설계 차이는, PH와 슬라이스 헤더(JVET-Q0255)를 모두 포함하는 새로운 VCL NAL 유닛에 대한 현재 예약된 NAL 유닛 유형을 사용하거나, 또는 추가된 플래그들(JVET-Q026)을 갖는 현재 VCL NAL 유닛 유형들을 사용하는 것; 모든 화상들에 대해 또는 화상(JVET-Q0426)이 아닌 경우에 대해 PH를 사용하도록 CLVS를 제한하거나 또는 혼합(JVET-Q0255)을 허용하는 것; PH가 존재하지 않는 경우(JVET-Q0255) 각 화상을 하나의 슬라이스로 구성하도록 제한하거나 또는 PH가 없이(JVET-Q0426) 다수의 슬라이스를 허용하는 것;으로 요약될 수 있다.
JVET-Q0255-v1.zip 기고는 새로운 NAL 유닛 유형에서 다음의 콘텐츠를 제안한다.
Figure pct00005
pic_nal_type은 화상의 대응하는 NAL 유닛 유형을 표시한다.
NalType의 값은 다음과 같이 유도된다.
NalType = (nal_unit_type == CODED_PIC)? pic_nal_type:nal_unit_type
JVET-Q0426-v2.zip 기고는 슬라이스 헤더에 대해 다음을 제안한다.
Figure pct00006
첨부 도면들은 본 발명의 추가 이해를 제공하기 위해 포함되고, 본 출원에 포함되고 그 일부를 구성하며, 본 발명의 특정한 비-제한적인 실시예들을 도시한다.
도 1은 일부 실시예들에 따른 레이어 액세스 유닛들과 코딩된 레이어 비디오 시퀀스들 사이의 관계를 나타내는 다이어그램이다.
도 2A는 QTBT를 사용하여 CTU를 CU들로 분할하는 일례를 나타낸다.
도 2B는 QTBT를 사용하여 CTU를 CU들로 분할하는 일례를 나타낸다.
도 3은 화상의 타일 분할의 일례를 나타낸다.
도 4는 VVC에서의 타일 분할을 사용하여 타일 분할 및 직사각형 슬라이스 분할의 일례를 나타낸다.
도 5는 본 발명의 일부 실시예들에 따른 동작 환경을 나타내는 블록 다이어그램이다.
도 6은 본 발명의 일부 실시예들에 따른 인코더를 나타내는 블록 다이어그램이다.
도 7은 본 발명의 일부 실시예들에 따른 디코더를 나타내는 블록 다이어그램이다.
도 8A, 8B, 9A, 9B 및 10은 본 발명의 일부 실시예들에 따른 디코더의 동작들을 나타내는 흐름도들이다.
도 11은 본 발명의 일부 실시예들에 따른 인코더의 동작들을 나타내는 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명을 여기에 더욱 충실하게 설명할 것이며, 본 발명의 실시예들이 예시될 것이다. 그러나 본 발명은 여러 다른 형태들로 구현될 수 있고, 여기에 설명된 실시예들로 제한되는 것으로 해석되지 않아야 한다. 오히려, 이러한 실시예들은 본 발명을 철저하고 완전하게 할 것이며, 본 발명의 범위를 당업자에게 충분하게 전달할 것이다. 또한, 이러한 실시예들은 상호 배타적이지 않다는 것에 주목해야 한다. 일 실시예에서 구성요소들은 다른 실시예에서 존재할 수 있거나/사용될 수 있는 것으로 가정될 수 있다.
다음의 설명은 개시된 주제의 다양한 실시예들을 제시한다. 이러한 실시예들은 교시의 일례로서 제시되고 개시된 주제의 범위를 제한하는 것으로 해석되지 않아야 한다. 예를 들어, 설명된 실시예들의 특정 세부사항들은 설명된 주제의 범위를 벗어나지 않고 수정, 생략 또는 확장될 수 있다.
도 5는 여기에 설명된 바와 같이 비트스트림들을 인코딩하는데 사용될 수 있는 인코더(500)의 동작 환경의 일례를 나타낸다. 인코더(500)는 네트워크(502) 및/또는 저장소(504)로부터 미디어를 수신하고, 아래에서 설명되는 바와 같이 미디어를 비트스트림들로 인코딩하고, 네트워크(508)를 통해 인코딩된 미디어를 디코더(506)로 전송한다. 저장 장치(504)는 저장소 또는 스트리밍 비디오 서비스의 저장실(storage repository), 별개의 저장 구성요소(separate storage component), 모바일 장치의 구성요소들 등과 같은 비디오들의 저장소(storage depository)의 일부일 수 있다. 디코더(506)는 디스플레이(512)를 구비하는 장치(510)의 일부일 수 있다. 상기 장치(510)는 모바일 장치, 셋톱(set-top) 장치, 헤드-장착형 디스플레이(head-mounted display) 등일 수 있다.
도 6은 본 발명의 일부 실시예들에 따라 비디오 프레임들을 인코딩하도록 구성된 인코더(500)의 요소들을 예시하는 블록도이다. 도시된 바와 같이, 인코더(500)는 다른 장치/엔티티/기능/등과 통신을 제공하도록 구성된 네트워크 인터페이스 회로(605)(네트워크 인터페이스라고도 함)를 포함할 수 있다. 또한, 인코더(500)는 네트워크 인터페이스 회로(605)에 결합된 처리 회로(601)(프로세서라고도 함) 및 처리 회로에 결합된 메모리 회로(603)(메모리라고도 함)를 포함할 수도 있다. 메모리 회로(603)는 처리 회로(601)에 의해 실행될 때 처리 회로가 여기에 나타낸 실시예들에 따른 동작들을 수행하게 하는 컴퓨터 판독가능 프로그램 코드를 포함할 수 있다.
다른 실시예들에 따르면, 처리 회로(601)는 별도의 메모리 회로가 요구되지 않도록 메모리를 포함하도록 정의될 수 있다. 여기서 논의된 바와 같이, 인코더(500)의 동작들은 프로세서(601) 및/또는 네트워크 인터페이스(605)에 의해 수행될 수 있다. 예를 들어, 프로세서(601)는 네트워크 인터페이스(605)를 제어하여, 디코더(506)로 통신을 송신하도록 및/또는 다른 인코더 노드들, 저장 서버(depository server)들 등과 같은 하나 이상의 다른 네트워크 노드들/엔티티들/서버들로부터 네트워크 인터페이스(605)를 통해 통신들을 수신하도록 할 수 있다. 또한, 모듈들은 메모리(603)에 저장될 수 있고, 이러한 모듈들은 명령어들을 제공하여, 모듈의 명령어들이 프로세서(601)에 의해 실행될 때, 프로세서(601)가 각각의 동작들을 수행하도록 할 수 있다.
도 7은 본 발명의 일부 실시예들에 따른 비디오 프레임들을 디코딩하도록 구성된 디코더(506)의 요소들을 예시하는 블록도이다. 도시된 바와 같이, 디코더(506)는 다른 장치들/엔티티들/기능들/등과의 통신들을 제공하도록 구성된 네트워크 인터페이스 회로(705)(네트워크 인터페이스라고도 함)를 포함할 수 있다. 또한, 디코더(506)는 네트워크 인터페이스 회로(705)에 결합된 처리 회로(701)(프로세서라고도 함) 및 처리 회로에 결합된 메모리 회로(703)(메모리라고도 함)를 포함할 수도 있다. 메모리 회로(703)는 처리 회로(701)에 의해 실행될 때 처리 회로가 여기에 나타낸 실시예들에 따른 동작들을 수행하게 하는 컴퓨터 판독가능 프로그램 코드를 포함할 수 있다.
다른 실시예들에 따르면, 처리 회로(701)는 별도의 메모리 회로가 요구되지 않도록 메모리를 포함하도록 정의될 수 있다. 여기에서 논의된 바와 같이, 디코더(506)의 동작들은 프로세서(701) 및/또는 네트워크 인터페이스(705)에 의해 수행될 수도 있다. 예를 들어, 프로세서(701)는 인코더(500)로부터 통신들을 수신하도록 네트워크 인터페이스(705)를 제어할 수도 있다. 또한, 모듈들은 메모리(703)에 저장될 수 있고, 이러한 모듈들은 명령어들을 제공하여, 모듈의 명령어들이 프로세서(701)에 의해 실행될 때, 프로세서(701)가 각각의 동작들을 수행하도록 할 수 있다.
JVET-Q0255 해법의 문제점은 JVET-Q0255 해법이 중요 자원인 NAL 유닛 유형을 사용하는 것을 제안한다는 것이다. 부가적으로, JVET-Q0255는 NAL 유닛에서 반송되는 화상에 대한 NAL 유닛 유형의 필요한 부분을 반송하기 위해 코드 워드 pic_nal_type을 도입한다. 신택스 요소의 비용은 많게 들리지 않을 수 있는 화상 당 4비트이지만, 100kbps 50fps 비디오 스트림에 대해, 화상 당 4비트는 0.2%의 공유와 동등하다. 0.2%의 공유는 의미가 있다. 많은 설계 결정들이 0.2% 또는 그 이하의 비트-세이빙(bit-saving)에 기초하여 만들어진 비디오 코딩 표준들 중에 만들어진다.
JVET-Q0255의 또 다른 문제점은, 불필요한 제한인 화상 당 다수의 슬라이스를 지원하지 않는다는 것이다. JVET-Q0255의 또 다른 문제점은, 화상 경계들의 검출이 디코더에 의해 어떻게 되는지를 설명하지 않는다는 것이다.
JVET-Q0426에서의 설계는 sps_picture_header_enabled_flag의 값이 화상 파라미터 세트(PPS)를 식별하기 위해 슬라이스를 필요로 하고, 그 후 식별된 화상 파라미터 세트의 신택스 요소 값으로부터 시퀀스 파라미터 세트(SPS)를 식별한다는 것이다. 이것은 sps_picture_header_enabled_flag의 값이 사용된 후에 화상 파라미터 세트(slice_pic_parameter_set_id)를 식별하는 신택스 요소가 오고, 신택스 요소가 sps_picture_header_enabled_flag의 값을 조건으로 한다는 것이다. 가능한 해법은 슬라이스 헤더에 먼저 slice_pic_parameter_set_id를 조건부로 넣는 것이 될 수 있다. 그러나 슬라이스를 포함하는 화상에 대한 비트스트림에 화상 헤더가 있을 때, 화상 파라미터 세트는 화상 헤더에서의 신택스 요소로부터 식별되고, 화상 헤더 및 슬라이스 헤더 양자에 동일한 신택스 요소를 갖는 것은 상당한 비트 비용(bit cost)을 초래한다.
본 발명의 일부 실시예들에서, 상태 신택스 요소(state syntax element)가 슬라이스 헤더에 추가된다. 상태 신택스 요소의 하나의 값은 슬라이스를 포함하는 화상에 대해 화상 헤더가 존재한다는 것을 특정한다. 상태 신택스 요소의 다른 하나의 값은 슬라이스를 포함하는 화상에 대해 화상 헤더가 존재하지 않는다는 것을 특정한다. 상태 신택스 요소는 1-비트 신택스 요소 플래그일 수도 있다.
본 발명의 일 실시예에서, 슬라이스를 포함하는 화상에 대해 화상 헤더가 존재하지 않는다는 것을 특정하는 값은, 화상이 하나의 단일 슬라이스로 구성된다는 것을 추가적으로 특정하며, 이는 그 화상에 대해 다수의 슬라이스들이 허용되지 않는다는 것을 의미한다.
본 발명의 일 실시예에서, 코딩된 비디오 스트림(CVS) 내의 플래그의 값을 코딩된 레이어 비디오 시퀀스(CLVS)에 혼합하는 것이 허용될 수도 있다. 이것은 제1 CVS 또는 CLVS에서 제1 화상에 대해 하나의 화상 헤더가 존재할 수 있고, 그러면 화상 헤더가 없는 제1 CVS 또는 CLVS의 제2 화상이 있을 수 있다는 것을 의미한다.
본 발명의 일 실시예에서는 혼합은 허용되지 않는다. 이 실시예에서는, 파라미터 세트에서의 또 다른 개별 상태 신택스 요소가 존재하며, 슬라이스 헤더에서의 상태 신택스 요소의 값이 파라미터 세트에서의 상태 신택스 요소의 값의 의미를 표현(또는 반복)하는 요건이 존재한다.
본 발명의 일 실시예에서, 비트스트림에서의 코딩된 화상의 시작의 검출은 화상 헤더를 찾는 것으로부터 또는 슬라이스를 포함하는 화상에 대해 화상 헤더가 존재하지 않음을 특정하는 값을 갖는 NAL 유닛을 찾는 것으로부터 결정된다.
본 발명의 일 실시예에서, 상태 신택스 요소의 하나의 값은 슬라이스를 포함하는 화상에 대해 화상 헤더가 존재하거나 존재하지 않을 수 있음을 특정한다.
본 발명의 일 실시예에서, 슬라이스 헤더에 상태 신택스 요소가 존재하지 않는다. 대신에, 상태 값은 화상에 대한 화상 헤더의 존재로부터 유도된다. 슬라이스가 디코딩 또는 파싱(parsing)될 때 화상에 대해 검출된 화상 헤더가 없다면, 슬라이스를 포함하는 화상에 대해 화상 헤더가 존재하지 않는다는 것을 특정하는 값과 동일하게 상태가 설정된다. 슬라이스가 디코딩 또는 파싱되기 전에 화상에 대해 검출된 화상 헤더가 있는 경우, 슬라이스를 포함하는 화상에 대해 화상 헤더가 존재하는 것을 특정하는 값과 동일하게 상태가 설정된다.
본 발명의 상기 실시예들을 사용하는 이점은, 추가적인 NAL 유닛 유형이 사용되지 않는다는 것이다. 또한, pic_nal_type 신택스 요소가 필요하지 않아서 4비트가 절약된다. JVET-Q0426과 비교하면, 본 발명의 실시예들은 상기 설명된 문제들 중 하나 이상을 해결할 수 있다.
아래에 설명되는 본 발명의 실시예들에서, 슬라이스는 그 자신의 NAL 유닛에서 시그널링되는 화상의 코딩된 부분이다. 슬라이스는 코딩된 슬라이스 데이터 및 슬라이스 헤더를 포함하고, 이들 모두는 동일한 NAL 유닛에서 시그널링된다. 하나의 슬라이스는 전체 화상을 커버하거나 커버하지 않을 수 있다.
본 발명의 한 버전(version)에서, 슬라이스는 (VVC 드래프트로부터 취해진 것으로서) 완전한 타일들의 정수(integer number)로 지칭되거나 또는 단일 NAL 유닛에 독점적으로 포함되는 화상의 타일 내의 연속적인 완전한 CTU 행들의 정수로 지칭된다.
아래의 본 발명의 실시예들에서 사용되는 용어 “공통 신택스 요소들의 세트(set of common syntax elements)"는 화상 헤더 또는 슬라이스 헤더에서 시그널링될 수도 있는 하나 이상의 신택스 요소들의 세트이다.
아래에서 설명되는 본 발명의 실시예들에서, 용어 "화상에 대한(for the picture)"은 데이터, 파라미터들, 화상 헤더 등이 기술되고 있는 화상에 속한다는 의미로 사용된다. 예를 들어, "화상에 대한 화상 헤더"는 특정 화상과 연관된 화상 헤더이다. 이 경우의 화상 헤더는 화상의 코딩된 데이터에 선행하는 것이 바람직하다.
본 발명의 제1 실시예에서, 상태 신택스 요소가 슬라이스 헤더에 추가된다. 상태 신택스 요소는 슬라이스를 포함하는 화상에 대해 화상 헤더가 존재하는지 여부를 특정한다. 상태 신택스 요소는 1-비트 신택스 요소 플래그일 수도 있다. 제1 실시예의 일 실시예에서, 플래그는 슬라이스 헤더에 조기에 넣는 것이 바람직하다. 본 발명의 이러한 실시예의 대안적인 해법들에서, 플래그는 APS와 같은 파라미터 세트에 대신 넣을 수 있다.
본 발명의 제1 실시예에서는, 공통 신택스 요소들의 세트가 사용된다. 현재 화상의 현재 슬라이스에 대한 화상 헤더의 존재 및 위치와 공통 신택스 요소들의 세트에 기초하여 다음의 규칙들 중 하나 이상이 사용될 수 있다.
규칙 1. 현재 슬라이스에서의 상태 신택스 요소 값(상태 값)이 제1 값과 동일한 경우, 현재 화상에 대한 화상 헤더가 존재하지 않을 것이고, 공통 신택스 요소들의 세트는 현재 슬라이스의 슬라이스 헤더에 포함될 것임.
규칙 2. 현재 슬라이스의 상태 값이 제2 값과 동일한 경우, 현재 화상에 대한 화상 헤더가 존재한다. 화상 헤더는 공통 신택스 요소들의 세트를 포함할 것이고, 공통 신택스 요소들의 세트에서의 신택스 요소는 현재 슬라이스에 존재하지 않을 것임.
규칙 3. 현재 화상에 대한 화상 헤더가 존재하는 경우, 화상 헤더는 현재 슬라이스와 동일한 액세스 유닛 또는 레이어 액세스 유닛에서 현재 슬라이스 이전에 위치될 것임.
본 발명의 제1 실시예의 변형예에서, 현재 화상에 하나 이상의 슬라이스가 존재하는 경우, 현재 화상에서 모든 슬라이스들에서의 상태 신택스 요소들은 동일한 상태 값을 가질 것이다. 디코더가 화상에 대한 다수의 슬라이스들을 수신하고 상태 값이 화상에서의 모든 슬라이스들에 대해 동일하지 않은 경우, 디코더는 비트스트림이 코덱 사양(codec specification)에 순응하지 않고 비트-에러(bit-error), 데이터 손실(loss of data) 또는 비-순응(non-compliant) 비트스트림 또는 인코더로 해석할 수도 있다고 결론지을 수도 있다. 이것은 에러를 보고할 수 있고, 비트스트림이 순응하지 않는다는 지식에 기초하여 에러 은닉(error concealment)이나 다른 동작들을 수행할 수 있다.
디코더는 이 실시예를 사용하여 비트스트림으로부터 현재 화상을 디코딩하기 위한 다음 단계들의 전부 또는 일부를 수행할 수도 있다.
단계 1. 디코더는 현재 화상에 대해 화상 헤더의 사용 여부를 특정하는 현재 화상의 현재 슬라이스의 슬라이스 헤더에서 상태 신택스 요소로부터 상태 값을 디코딩한다.
단계 2. 상태 값이 제1 값과 동일한 경우, 디코더는 현재 화상에 대한 화상 헤더가 존재하지 않는 것으로 도출(deduce)한다. 디코더는 슬라이스 헤더로부터 신택스 요소들의 세트 S를 디코딩하고, 세트 S의 디코딩된 값들을 현재 슬라이스를 디코딩할 때 사용한다.
단계 3. 상태 값이 제2 값과 동일한 경우, 디코더는 현재 화상에 대한 화상 헤더가 존재하는 것으로 도출한다. 디코더는 현재 화상에 대한 화상 헤더로부터 신택스 요소들의 세트 T를 디코딩하고, 신택스 요소들의 세트 T(PH 신택스 구조 또는 화상 신택스 요소들의 세트라고도 함)의 디코딩된 값들을 현재 슬라이스를 디코딩할 때 사용하며, 여기서 화상 신택스 요소들의 세트 T는 세트 S와 동일한 신택스 요소들을 포함한다(즉, 신택스 요소들의 세트 S는 PH 신택스 구조(화상 신택스 요소들의 세트)이기도 함).
단계 4. 선택적으로, 현재 화상에 대한 화상 헤더는 현재 슬라이스 NAL 유닛으로부터 분리된 화상 헤더 NAL 유닛으로부터 디코딩되고, 여기서 화상 헤더 NAL 유닛은 디코딩 순서에서 현재 슬라이스 NAL 유닛에 선행하며, 화상 헤더 NAL 유닛 및 현재 슬라이스 NAL 유닛은 동일한 액세스 유닛 또는 화상 유닛에 속한다.
본 발명의 제2 실시예에서는 다수의 슬라이스들이 사용되지 않는다.
본 발명의 제2 실시예에서, 슬라이스를 포함하는 화상에 대해 화상 헤더가 존재하지 않음을 특정하는 값은, 그 화상이 하나의 단일 슬라이스로 구성됨을 추가적으로 특정하며, 이는 그 화상에 대한 다수의 슬라이스들이 허용되지 않는다는 것을 의미한다.
디코더는 이 실시예를 사용하여 비트스트림으로부터 현재 화상을 디코딩하기 위한 다음 단계들의 전부 또는 일부를 수행할 수도 있다.
단계 1. 디코더는 현재 화상에 대해 화상 헤더가 사용되는지 여부를 특정하는 현재 화상의 현재 슬라이스의 슬라이스 헤더에서의 상태 신택스 요소로부터 상태 값을 디코딩한다.
단계 2. 상태 값이 제1 값과 동일한 경우, 디코더는 현재 화상에 대한 화상 헤더가 존재하지 않는 것으로 도출한다. 디코더는 화상이 하나의 단일 슬라이스를 포함하는 것으로 추가적으로 도출한다. 디코더는 슬라이스 헤더로부터 신택스 요소들의 세트 S를 디코딩하고, 세트 S의 디코딩된 값들을 현재 슬라이스를 디코딩할 때 사용한다.
단계 3. 상태 값이 제2 값과 동일한 경우, 디코더는 현재 화상에 대한 화상 헤더가 존재하는 것으로 도출한다. 디코더는 현재 화상에 대한 화상 헤더로부터 신택스 요소들의 세트 T를 디코딩하고, 현재 슬라이스를 디코딩할 때 세트 T의 디코딩된 값들을 사용하며, 여기서 세트 T는 세트 S와 동일한 신택스 요소들을 포함한다.
단계 4. 선택적으로, 현재 화상에 대한 화상 헤더는 현재 슬라이스 NAL 유닛으로부터 분리된 화상 헤더 NAL 유닛으로부터 디코딩되고, 여기서 화상 헤더 NAL 유닛은 디코딩 순서에서 현재 슬라이스 NAL 유닛에 선행하며, 화상 헤더 NAL 유닛 및 현재 슬라이스 NAL 유닛은 동일한 액세스 유닛 또는 화상 유닛에 속한다.
상태 값이 제1 값과 동일하고 디코더가 화상에 대한 다수의 슬라이스들을 수신하는 경우, 디코더는 비트스트림이 코덱 사양에 순응하지 않는 것으로 결론을 내리고, 비트-에러, 데이터 손실 또는 비-순응 비트스트림 또는 인코더로서 해석할 수도 있다. 이것은 에러를 보고할 수 있고, 비트스트림이 순응하지 않는다는 지식에 기초하여 에러 은닉 또는 다른 동작들을 수행할 수 있다.
본 발명의 제3 실시예에서, 화상 헤더를 갖거나 갖지 않는 액세스 유닛의 혼합(mix)이 사용된다.
제3 실시예의 일 실시예에서, CVS 또는 CLVS 내의 플래그(상태 신택스 요소를 나타냄)의 값을 혼합하는 것이 허용된다. 이것은 제1 CVS 또는 CLVS에서 제1 화상에 대해 하나의 화상 헤더가 존재할 수 있고, 그러면 화상 헤더가 없는 제1 CVS 또는 CLVS의 제2 화상이 존재할 수 있음을 의미한다.
본 발명의 제4 실시예에서, CVS 또는 CLVS에서의 레이어 액세스 유닛(layer access unit)들 또는 레이어화된 액세스 유닛(layered access unit)들은 모두 화상 헤더를 갖거나 또는 화상 헤더를 갖지 않도록 제한될 수도 있다.
본 발명의 제4 실시예의 일 실시예에서, 제3 실시예로부터의 CVS 또는 CLVS 내의 플래그 값들의 혼합은 허용되지 않는다. 이것은 이들 2개의 문장(statements) 중 하나가 현재 CVS 또는 CLVS에서 참일 것임을 의미한다.
1) 현재 CVS 또는 CLVS에서 모든 화상에 대해 화상 헤더가 존재함.
2) 현재 CVS 또는 CLVS에서 화상 헤더가 존재하지 않음.
이 실시예에서, 파라미터 세트, 예를 들어 DPS, SPS, PPS 또는 APS에서 다른 개별 상태 신택스 요소가 있을 수 있고, 슬라이스 헤더에서의 상태 신택스 요소의 값이 파라미터 세트에서의 상태 신택스 요소의 값의 의미를 표현(또는 반복)하는 요건이 있을 수 있다.
상태 신택스 요소는 2진 플래그(binary flag)일 수 있다.
디코더는 이 실시예를 사용하여 비트스트림으로부터 현재 화상을 디코딩하기 위한 다음 단계들의 전부 또는 일부를 수행할 수도 있다.
단계 1. 디코더는 비트스트림에서의 파라미터 세트의 상태 신택스 요소 SA로부터 상태 값 VA를 디코딩하고, 상기 값 VA는 비트스트림에서의 각 화상의 코딩된 비디오 데이터가 화상 헤더에 선행하는지 여부를 특정한다.
단계 2. 디코더는 현재 화상에 대해 화상 헤더들이 사용되는지 여부를 특정하는 현재 화상의 현재 슬라이스의 슬라이스 헤더에서의 상태 신택스 요소 SB로부터 상태 값 VB를 디코딩한다.
단계 3. 상태 값 VB가 상태 값 VA와 동일하지 않은 경우 (또는 동일한 의미를 표현하지 않는 경우), 디코더는 비트스트림이 코덱 사양에 순응하지 않고, 비트-에러, 데이터 손실 또는 비-순응 비트스트림 또는 인코더로서 해석할 수도 있다고 결론지을 수도 있다. 이것은 에러를 보고할 수 있고, 비트스트림이 순응하지 않는다는 지식에 기초하여 에러 은닉 또는 다른 동작들을 수행할 수 있다.
단계 4. 상태 값 VB가 제1 값과 동일한 경우, 디코더는 현재 화상에 대한 화상 헤더가 존재하지 않는 것으로 도출한다. 디코더는 슬라이스 헤더로부터 신택스 요소들의 세트 S를 디코딩하고, 세트 S의 디코딩된 값들을 현재 슬라이스를 디코딩할 때 사용한다.
단계 5. 상태 값 VB가 제2 값과 동일한 경우, 디코더는 현재 화상에 대한 화상 헤더가 존재하는 것으로 도출한다. 디코더는 현재 화상에 대한 화상 헤더로부터 신택스 요소들의 세트 T를 디코딩하고, 세트 T의 디코딩된 값들을 현재 슬라이스를 디코딩할 때 사용하며, 여기서 세트 T는 세트 S와 동일한 신택스 요소들을 포함한다.
이 실시예의 버전에서는, 또 다른 개별 상태 신택스 요소는 없다. 대신에, 현재 CVS 또는 CLVS에서 모든 상태 신택스 요소들이 동일한 값을 가질 것이라는 규칙이 존재한다. 또한, 이것은 CVS 또는 CLVS에서 모든 화상들에 대한 화상 헤더가 존재하거나, CVS 또는 CLVS에서 화상 헤더가 존재하지 않는다는 것을 의미한다.
디코더는 실시예의 이러한 버전을 이용하여 다음 단계들의 전부 또는 일부를 수행할 수 있다.
단계 1. 디코더는 화상 헤더가 제1 화상에 대해 사용되는지의 여부를 특정하는 제1 화상의 슬라이스의 슬라이스 헤더에서의 상태 신택스 요소로부터 상태 값 VA를 디코딩한다.
단계 2. 디코더는 화상 헤더가 제2 화상에 대해 사용되는지의 여부를 특정하는 제2 화상의 슬라이스의 슬라이스 헤더에서의 상태 신택스 요소로부터 상태 값 VB를 디코딩한다.
단계 3. 상태 값 VB가 상태 값 VA와 동일하지 않은 경우(또는 동일한 의미를 표현하지 않는 경우), 디코더는 비트스트림이 코덱 사양에 순응하지 않고, 비트-에러, 데이터 손실 또는 비-순응 비트스트림 또는 인코더로서 해석할 수도 있는 것으로 결론지을 수도 있다. 이것은 에러를 보고할 수 있고, 비트스트림이 순응하지 않는다는 지식에 기초하여 에러 은닉 또는 다른 동작들을 수행할 수 있다.
단계 4. 상태 값 VA가 제1 값과 동일한 경우, 디코더는 제1 화상에 대한 화상 헤더가 존재하지 않는 것으로 도출한다. 디코더는 슬라이스 헤더로부터 신택스 요소들의 세트 S를 디코딩하고, 세트 S의 디코딩된 값들을 제1 화상의 슬라이스를 디코딩할 때 사용한다.
단계 5. 상태 값 VA가 제2 값과 동일한 경우, 디코더는 제1 화상에 대한 화상 헤더가 존재하는 것으로 도출한다. 디코더는 제1 화상에 대한 화상 헤더로부터 신택스 요소들의 세트 T를 디코딩하고, 세트 T의 디코딩된 값들을 제1 화상의 슬라이스를 디코딩할 때 사용하며, 여기서 세트 T는 세트 S와 동일한 신택스 요소들을 포함한다.
화상 헤더는 화상 헤더 NAL 유닛을 지칭할 수도 있어서, CVS 또는 CLVS에서 모든 화상들에 대한 화상 헤더 NAL 유닛이 존재하거나, 또는 CVS 또는 CLVS에서 화상 헤더 NAL 유닛이 존재하지 않는다.
제5 실시예에서는, 코딩된 화상의 시작의 검출이 제공된다.
제5 실시예에서, 비트스트림에서의 코딩된 화상의 시작은 화상 헤더를 찾는 것으로부터 또는 슬라이스를 포함하는 화상에 대한 화상 헤더가 없음을 특정하는 값을 갖는 상태 신택스 요소를 갖는 NAL 유닛을 찾는 것으로부터 결정된다.
본 실시예의 일 변형예에서, 디코더는 화상의 제1 VCL NAL 유닛을 결정하기 위해 다음의 단계들을 수행할 수도 있다. 상기 단계들은 프로세스가 중지될 때까지 반복된다.
단계 1. 디코더는 비트스트림으로부터 현재 NAL 유닛을 획득한다.
단계 2. 디코더는 현재 NAL 유닛이 화상 헤더 NAL 유닛인지 또는 현재 NAL 유닛이 VCL NAL 유닛인지를 결정한다.
단계 3. 현재 NAL 유닛이 화상 헤더 NAL 유닛인 경우, 디코더는 화상의 제1 VCL NAL 유닛이 디코딩 순서에서 현재 NAL 유닛에 후속하는 VCL NAL 유닛이라고 결정하고, 그렇지 않으면 중지한다.
단계 4. 현재 NAL 유닛이 VCL NAL 유닛인 경우, 디코더는 현재 NAL 유닛에서의 상태 신택스 요소 값을 체크하고, 상태 신택스 요소 값이 슬라이스를 포함하는 화상에 대한 화상 헤더가 존재하지 않는다는 것을 특정하는 값과 동일한 경우, 디코더는 화상의 제1 VCL NAL 유닛이 현재 NAL 유닛이라고 결정하고, 그렇지 않으면 중지한다.
단계 5. 디코더는 새로운 현재 NAL 유닛으로서 디코딩 순서로 다음 NAL 유닛을 획득하고, 단계 2에서 계속한다.
이 실시예의 변형예에서, 상태 신택스 요소는 비트스트림에서의 코딩된 화상의 시작을 특정하는 제3 상태 값을 가질 수도 있다. 본 실시예의 일례에서, 상태 신택스 요소의 제1 값은 화상 헤더가 현재 화상에 대해 사용되지 않는다는 것을 특정하고, 상태 신택스 요소의 제2 값은 화상 헤더가 현재 화상에 대해 사용된다는 것을 특정하고, 상태 신택스 요소의 제3 값은 화상 헤더가 현재 화상에 대해 사용되지 않는다는 것을 특정하고 비트스트림에서의 코딩된 화상의 시작을 특정한다.
본 발명의 다양한 실시예들이 설명되었지만, 본 발명의 다양한 실시예들을 수행하도록 디코더가 실행하는 동작들을 설명한다. 도 8A 및 8B로 돌아가서, 디코더(506)의 동작들(도 7의 블록 다이어그램의 구조를 이용하여 구현됨)이 본 발명의 일부 실시예들에 따른 도 8A-8B의 흐름도를 참조하여 논의될 것이다. 예를 들어, 모듈들은 도 7의 메모리(705)에 저장될 수 있고, 이들 모듈들은 명령어들을 제공하여, 모듈의 명령어들이 각각의 무선장치 처리 회로(703)에 의해 실행될 때, 처리 회로(703)가 흐름도의 각각의 동작들을 수행하게 할 수 있다.
블록 801에서, 처리 회로(703)는 파라미터 세트에서의 제1 상태 신택스 요소로부터 제1 상태 값을 디코딩할 수도 있고, 제1 상태 값은 CLVS의 CVS에서 모든 슬라이스 헤더들에서의 제2 상태 신택스 요소로부터의 제2 상태 값이 모든 화상 헤더들에 대해 동일한지의 여부를 특정한다. 제2 상태 신택스 요소로부터의 제2 상태 값이 동일하게 된다고 제1 상태 값이 표시하지 않는 경우, 각 슬라이스는 그 자체로 디코딩된다.
블록 803에서, 처리 회로(703)는 제2 상태 신택스 요소로부터의 제2 상태 값이 모든 화상 헤더들에 대해 동일하게 된다고 제1 상태 값이 표시하는지 여부를 결정할 수도 있다.
제2 상태 신택스 요소로부터의 제2 상태 값이 동일하게 된다고 표시하는 제1 상태 값에 응답하여, 처리 회로(703)는, 블록 805에서, 제1 화상의 슬라이스 헤더에서 제2 상태 신택스 요소로부터 제2 상태 값을 디코딩할 수도 있고, 제2 상태 값은 화상 헤더들이 제1 화상에 대해 사용되는지 여부를 특정한다.
블록 807에서, 제1 화상에 대한 상태 값이 제1 값인 것에 응답하여, 처리 회로(703)는 현재 화상에 대한 화상 헤더가 존재하지 않는 것으로 도출할 수 있다. 블록 809에서, 처리 회로(703)는 제1 세트의 신택스 요소들의 디코딩된 값들을 획득하기 위해 슬라이스 헤더에 대한 제1 세트의 신택스 요소들을 디코딩할 수도 있다. 블록 811에서, 처리 회로(703)는 제1 화상의 슬라이스를 디코딩하기 위해 제1 세트의 신택스 요소들의 디코딩된 값들을 사용할 수도 있다.
블록 813에서, 처리 회로(703)는 상태 값이 제2 값인 것에 응답하여, 현재 화상에 대한 화상 헤더가 존재하는 것으로 도출할 수 있다. 블록 815에서, 처리 회로(703)는 제2 세트의 신택스 요소들의 디코딩된 값들을 획득하기 위해 슬라이스 헤더에 대한 제2 세트의 신택스 요소들을 디코딩할 수도 있다. 블록 817에서, 처리 회로(703)는 제1 화상의 현재 슬라이스를 디코딩하기 위해 제2 세트의 신택스 요소들의 디코딩된 값들을 사용할 수도 있고, 여기서 제2 세트의 신택스 요소는 제1 세트의 신택스 요소들과 동일한 신택스 요소들을 포함한다.
블록 819에서, 처리 회로(703)는 제2 화상의 슬라이스 헤더에서 제2 상태 신택스 요소로부터 제2 상태 값을 디코딩할 수도 있고, 제2 상태 값은 화상 헤더들이 제2 현재 화상에 대해 사용되는지의 여부를 특정한다.
블록 821에서, 제2 상태 값이 제2 값인 것에 응답하여, 처리 회로(703)는 제2 화상에 대한 화상 헤더가 존재하는 것으로 도출할 수 있다. 블록 823에서, 처리 회로(703)는 제2 세트의 신택스 요소들의 디코딩된 값들을 획득하기 위하여 제2 화상에 대한 제2 세트의 신택스 요소들을 디코딩할 수도 있다. 블록 825에서, 처리 회로(703)는 제2 화상의 슬라이스를 디코딩하기 위해 제2 세트의 신택스 요소들의 디코딩된 값들을 사용할 수도 있다.
처리 회로(703)는, 상태 값이 제1 값인 것에 응답하여, 화상이 단일 슬라이스를 포함하는 것으로 도출할 수 있다. 일 실시예에서, 처리 회로(703)는 상태 값이 제1 값인 것에 응답하여, 현재 화상에 대한 다수의 슬라이스들을 수신하는 것에 응답하여 동작을 수행한다. 일 실시예에서, 동작을 수행하는 단계는 비트스트림이 코덱 사양에 순응하지 않는 것으로 결정하는 단계를 포함한다. 다른 실시예에서, 동작을 수행하는 단계는 비트 에러가 발생했다고 결정하는 단계와, 비트 에러가 발생했다는 결정에 응답하여 비트 에러를 보고하는 단계를 포함한다. 추가적인 실시예에서, 동작을 수행하는 단계에서, 처리 회로(703)는 비트 에러가 발생했다는 것을 결정할 수 있다. 처리 회로(703)는 데이터의 손실이 발생했다는 것을 결정할 수 있다. 처리 회로(703)는 데이터의 손실이 발생했다는 결정에 응답하여 에러 은닉을 수행할 수 있다. 또 다른 실시예에서, 동작을 수행하는 단계는 인코더가 비-순응 인코더인 것으로 결정하는 단계를 포함한다.
도 8의 흐름도에서의 다양한 동작들은 디코더들 및 관련 방법들의 일부 실시예들에 대해 선택적일 수 있다. 실시예 1(아래에 설명됨)의 방법에 관하여, 예를 들어 도 8A 및 8B의 블록들(801, 803, 819, 821, 823 및 825)의 동작들은 선택적일 수 있다.
위에서 설명된 본 발명의 다른 실시예에서, 현재 CVS 또는 CLVS에서 모든 상태 신택스 요소들은 동일한 값을 가질 것이라고 하는 규칙이 있을 수 있다. 도 9A 및 도 9B를 참조하면, 블록 901에서, 처리 회로(703)는 제1 화상의 슬라이스의 슬라이스 헤더에서 제1 상태 신택스 요소로부터 제1 상태 값을 디코딩할 수도 있고, 제1 상태 값은 화상 헤더들이 제1 화상에 대해 사용되는지 여부를 특정한다. 블록 903에서, 처리 회로(703)는 제2 화상의 슬라이스 헤더에서 제1 상태 신택스 요소로부터 제2 상태 값을 디코딩할 수도 있고, 제2 상태 값은 화상 헤더들이 제2 화상에 대해 사용되는지 여부를 특정한다.
제2 상태 값이 제1 상태 값과 동일한 의미를 표현하지 않는 것에 응답하여, 처리 회로(703)는 비트스트림이 코덱스(codex) 사양에 따르지 않고 동작을 수행할 수 있는 것을 블록 905에서 결정할 수 있다. 처리 회로(703)는 상술한 바와 동일한 동작들을 수행할 수도 있다.
제2 상태 값이 제1 상태 값과 동일한 의미를 표현하는 것에 응답하여, 또한 상태 값이 제1 값인 것에 응답하여, 처리 회로(703)는 블록 907에서 현재 화상에 대한 화상 헤더가 존재하지 않는 것으로 도출할 수도 있다. 블록 909에서, 처리 회로(703)는 제1 세트의 신택스 요소들의 디코딩된 값들을 획득하기 위해 슬라이스 헤더에 대한 제1 세트의 신택스 요소들을 디코딩할 수도 있다. 블록 911에서, 처리 회로(703)는 현재 화상의 현재 슬라이스를 디코딩하기 위해 제1 세트의 신택스 요소들의 디코딩된 값들을 사용할 수도 있다.
제2 상태 값이 제1 상태 값과 동일한 의미를 표현하는 것에 응답하여, 또한 상태 값이 제2 값인 것에 응답하여, 처리 회로(703)는 블록 913에서 현재 화상에 대한 화상 헤더가 존재하는 것으로 도출할 수도 있다. 블록 915에서, 처리 회로(703)는 제2 세트의 신택스 요소들의 디코딩된 값들을 획득하기 위해 슬라이스 헤더에 대한 제2 신택스 요소들을 디코딩할 수도 있다. 제2 세트의 신택스 요소들은 제1 세트의 신택스 요소들과 동일한 요소일 수도 있다. 블록 917에서, 처리 회로(703)는 현재 화상의 현재 슬라이스를 디코딩하기 위해 제2 세트의 신택스 요소들의 디코딩된 값들을 사용할 수도 있다.
상술한 바와 같이, 비트스트림에서 코딩된 화상의 시작은, 화상 헤더를 찾는 것 또는 슬라이스를 포함하는 화상에 대한 화상 헤더가 존재하지 않는다고 특정하는 값을 갖는 상태 신택스 요소로 NAL 유닛을 찾는 것으로부터 결정된다. 도 10을 참조하면, 블록 1001에서, 처리 회로(703)는 비트스트림으로부터 네트워크 추상화 레이어, NAL 유닛을 획득할 수도 있다. 블록 1003에서, 처리 회로(703)는 현재 NAL 유닛이 화상 헤더 NAL 유닛인지 또는 현재 NAL 유닛이 비디오 코딩 레이어(VCL) NAL 유닛인지의 여부를 결정할 수도 있다.
블록 1005에서, 처리 회로(703)는 현재 NAL 유닛이 화상 헤더 NAL 유닛인 것에 응답하여, 화상의 제1 VCL NAL 유닛이 디코딩 순서에서 현재 NAL 유닛을 따르는 VCL NAL 유닛이라는 것을 결정할 수도 있다.
현재 NAL 유닛이 VCL NAL 유닛인 것에 응답하여, 처리 회로(703)는 현재 NAL 유닛에서의 상태 신택스 요소 값을 체크할 수도 있고, 상태 신택스 요소 값이 슬라이스를 포함하는 화상에 대한 화상 헤더가 존재하지 않는 것으로 특정하는 값과 동일한 경우, 화상의 제1 VCL NAL 유닛이 현재 NAL 유닛이라고 블록 1009에서 결정한다.
현재 NAL 유닛이 화상 헤더 NAL 유닛이 아닌 것에 응답하여, 또는 현재 NAL 유닛이 VCL NAL 유닛인 것에 응답하여, 상태 신택스 요소 값이 슬라이스를 포함하는 화상에 대한 화상 헤더가 존재하지 않는 것으로 특정하는 값과 동일하지 않은 경우, 블록 1011에서, 새로운 현재 NAL 유닛으로서 디코딩 순서로 다음 NAL 유닛을 획득한다.
다음으로, 본 발명의 일부 실시예들에 따른 도 11의 흐름도를 참조하여, 인코더(500)(도 6의 구조를 이용하여 구현됨)의 동작들이 논의될 것이다. 예를 들어, 모듈들은 도 6의 메모리(605)에 저장될 수 있고, 이들 모듈들은 모듈의 명령어들이 각각의 인코더 처리 회로(603)에 의해 실행될 때, 처리 회로(603)가 흐름도의 각각의 동작들을 수행하도록 명령어들을 제공할 수 있다.
도 11을 참조하면, 블록 1101에서, 처리 회로(603)는 현재 화상에 대한 화상 헤더가 존재할 것인지 여부를 결정할 수 있다. 현재 화상에 대한 화상 헤더가 존재하지 않을 것이라는 결정에 응답하여, 처리 회로(603)는 블록 1103에서, 상태 신택스 요소의 제1 값을 비트스트림으로 인코딩할 수도 있다. 상태 신택스 요소는 현재 화상의 슬라이스 또는 파라미터 세트에서 인코딩될 수도 있다. 블록 1105에서, 처리 회로(603)는 현재 화상을 인코딩하기 위해 제1 세트의 신택스 요소들을 사용할 수도 있다.
현재 화상에 대한 화상 헤더가 존재할 것이라는 결정에 응답하여, 블록 1107에서, 처리 회로(603)는 상태 신택스 요소의 제2 값을 비트스트림으로 인코딩할 수도 있다. 블록 1109에서, 처리 회로(603)는 현재 화상을 인코딩하기 위해 제2 세트의 신택스 요소들을 사용할 수도 있다.
예시적인 실시예들을 아래에서 논의한다.
A1. 비트스트림으로부터 현재 화상을 디코딩하는 방법으로서, 상기 방법은, 현재 화상의 현재 슬라이스의 슬라이스 헤더에서 상태 신택스 요소로부터, 화상 헤더들이 현재 화상에 대해 사용되는지 여부를 특정하는 상태 값을 디코딩하는 단계(805); 상태 값이 제1 값인 것에 응답하여, 현재 화상에 대한 화상 헤더가 존재하지 않는 것으로 도출하는 단계(807); 제1 세트의 신택스 요소들의 디코딩된 값들을 획득하기 위해 슬라이스 헤더에 대한 제1 세트의 신택스 요소들을 디코딩하는 단계(809); 현재 화상의 현재 슬라이스를 디코딩하기 위해 제1 세트의 신택스 요소들의 디코딩된 값들을 사용하는 단계(811); 상태 값이 제2 값인 것에 응답하여, 현재 화상에 대한 화상 헤더가 존재하는 것으로 도출하는 단계(813); 제2 세트의 신택스 요소들의 디코딩된 값들을 획득하기 위해 슬라이스 헤더에 대한 제2 세트의 신택스 요소들을 디코딩하는 단계(815); 및 현재 화상의 현재 슬라이스를 디코딩하기 위해 제2 세트의 신택스 요소들의 디코딩된 값들을 사용하는 단계(817) - 여기서 제2 세트의 신택스 요소들은 제1 세트의 신택스 요소들과 동일한 신택스 요소들을 포함함 -;를 포함한다.
A2. 실시예 A1의 방법에서, 상태 값이 제1 값인 것에 응답하여, 화상이 단일 슬라이스를 포함하는 것으로 도출하는 단계를 더 포함한다.
A3. 실시예 A1-A2 중 어느 하나의 방법에서, 상태 값이 제1 값인 것에 응답하여, 현재 화상에 대한 다수의 슬라이스들을 수신하는 것에 응답하여 동작을 수행하는 단계를 더 포함한다.
A4. 실시예 A3의 방법에서, 상기 동작을 수행하는 단계는 비트스트림이 코덱 사양에 순응하지 않는다고 결정하는 단계를 포함한다.
A5. 실시예 A3의 방법에서, 상기 동작을 수행하는 단계는, 비트 에러가 발생했다고 결정하는 단계; 및 상기 비트 에러가 발생했다는 결정에 응답하여 비트 에러를 보고하는 단계를 포함한다.
A6. 실시예 A3의 방법에서, 상기 동작을 수행하는 단계는, 데이터의 손실이 발생했다고 결정하는 단계; 및 데이터의 손실이 발생했다는 결정에 응답하여 에러 은닉을 수행하는 단계를 포함한다.
A7. 실시예 A3의 방법에서, 상기 동작을 수행하는 단계는, 인코더가 비-순응 디코더인 것으로 결정하는 단계를 포함한다.
A8. 비트스트림으로부터 복수의 화상들을 디코딩하는 방법으로서, 상기 방법은, 파라미터 세트에서 제1 상태 신택스 요소로부터 제1 상태 값을 디코딩하는 단계(801) - 여기서 제1 상태 값은, 코딩된 비디오 스트림(CVS) 또는 코딩된 레이어 비디오 시퀀스(CVLS)에서 모든 슬라이스 헤더들에서의 제2 상태 신택스 요소로부터 제2 상태 값이 모든 화상 헤더들에 대해 동일할 것인지의 여부를 특정함 -; 제2 상태 신택스 요소로부터 제2 상태 값이 동일할 것이라고 표시하는 제1 상태 값에 응답하여, 제1 화상의 슬라이스 헤더에서 제2 상태 신택스 요소로부터 제2 상태 값을 디코딩하는 단계(805) - 여기서 제2 상태 값은 화상 헤더가 제1 화상에 대해 사용되는지의 여부를 특정함 -; 제1 화상에 대한 상태 값이 제1 값인 것에 응답하여, 현재 화상에 대한 화상 헤더가 존재하지 않는 것으로 도출하는 단계(807); 제1 세트의 신택스 요소들의 디코딩된 값들을 획득하기 위해 슬라이스 헤더에 대한 제1 세트의 신택스 요소들을 디코딩하는 단계(809); 제1 화상의 슬라이스를 디코딩하기 위해 제1 세트의 신택스 요소들의 디코딩된 값들을 사용하는 단계(811); 제2 화상의 슬라이스 헤더에서 제2 상태 신택스 요소로부터 제2 상태 값을 디코딩하는 단계(819) - 여기서 제2 상태 값은 화상 헤더가 현재 화상에 대해 사용되는지의 여부를 특정함 -; 제2 상태 값이 제2 값인 것에 응답하여, 제2 화상에 대한 화상 헤더가 존재하는 것으로 도출하는 단계(821); 제2 세트의 신택스 요소들의 디코딩된 값들을 획득하기 위해 제2 화상에 대한 제2 세트의 신택스 요소들을 디코딩하는 단계(823); 및 제2 화상의 슬라이스를 디코딩하기 위해 제2 세트의 신택스 요소들의 디코딩된 값들을 사용하는 단계(825);를 포함한다.
A9. 비트스트림으로부터 복수의 화상들을 디코딩하는 방법으로서, 상기 방법은, 제1 화상의 슬라이스의 슬라이스 헤더에서 제1 상태 신택스 요소로부터 제1 상태 값을 디코딩하는 단계(901) - 여기서 제1 상태 값은 제1 화상에 대해 화상 헤더들이 사용되는지 여부를 특정함 -; 제2 화상의 슬라이스의 슬라이스 헤더에서 제1 상태 신택스 요소로부터 제2 상태 값을 디코딩하는 단계(903) - 여기서 제2 상태 값은 제2 화상에 대해 화상 헤더들이 사용되는지 여부를 특정함 -; 제2 상태 값이 제1 상태 값과 동일한 의미를 표현하지 않는 것에 응답하여, 비트스트림이 코덱 사양에 따르지 않는 것으로 결정하고 동작을 수행하는 단계(905); 제2 상태 값이 제1 상태 값과 동일한 의미를 표현하는 것에 응답하여, 상태 값이 제1 값인 것에 응답하여, 현재 화상에 대한 화상 헤더가 존재하지 않는 것으로 도출하는 단계(907); 제1 세트의 신택스 요소들의 디코딩된 값들을 획득하기 위해 슬라이스 헤더에 대한 제1 세트의 신택스 요소들을 디코딩하는 단계(909); 현재 화상의 현재 슬라이스를 디코딩하기 위해 제1 세트의 신택스 요소들의 디코딩된 값들을 사용하는 단계(911); 상태 값이 제2 값인 것에 응답하여, 현재 화상에 대한 화상 헤더가 존재하는 것으로 도출하는 단계(913); 제2 세트의 신택스 요소들의 디코딩된 값들을 획득하기 위해 슬라이스 헤더에 대한 제2 세트의 신택스 요소들을 디코딩하는 단계(915); 및 현재 화상의 현재 슬라이스를 디코딩하기 위해 제2 세트의 신택스 요소들의 디코딩된 값들을 사용하는 단계(917) - 여기서 제2 세트의 신택스 요소들은 제1 세트의 신택스 요소들과 동일한 신택스 요소들을 포함함 -;를 포함한다.
A10. 비트스트림으로부터 복수의 화상들을 디코딩하는 방법으로서, 상기 방법은, 비트스트림으로부터 현재 네트워크 추상화 레이어(NAL) 유닛을 획득하는 단계(1001); 현재 NAL 유닛이 화상 헤더 NAL 유닛인지 또는 현재 NAL 유닛이 비디오 코딩 레이어(VCL) NAL 유닛인지 여부를 결정하는 단계(1003); 현재 NAL 유닛이 화상 헤더 NAL 유닛인 것에 응답하여, 화상의 제1 VCL NAL 유닛이 디코딩 순서에서 현재 NAL 유닛을 따르는 VCL NAL 유닛이라고 결정하는 단계(1005); 현재 NAL 유닛이 VCL NAL 유닛인 것에 응답하여, 현재 NAL 유닛에서의 상태 신택스 요소 값을 체킹하는 단계(1007); 상태 신택스 요소 값이 슬라이스를 포함하는 화상에 대해 화상 헤더가 존재하지 않는 것으로 특정하는 값과 동일한 경우, 화상의 제1 VCL NAL 유닛이 현재 NAL 유닛이라고 결정하는 단계(1009); 및 현재 NAL 유닛이 화상 헤더 NAL 유닛이 아닌 것에 응답하여, 또는 현재 NAL 유닛이 VCL NAL 유닛인 것에 응답하여, 상태 신택스 요소 값이 슬라이스를 포함하는 화상에 대한 화상 헤더가 존재하지 않는 것으로 특정하는 값과 동일하지 않은 경우, 새로운 현재 NAL 유닛으로서 디코딩 순서로 다음 NAL 유닛을 획득하는 단계(1011);를 포함한다.
A11. 통신 네트워크를 위한 디코더(506)로서, 상기 디코더(506)는, 프로세서(701)와 상기 프로세서에 결합된 메모리(703)를 포함하고, 상기 메모리는 프로세서에 의해 실행될 때, 프로세서가 다음 동작들을 수행하게 하는 명령어들을 포함하고, 상기 동작들은,
현재 화상의 현재 슬라이스의 슬라이스 헤더에서 상태 신택스 요소로부터 상태 값을 디코딩하는 단계(805) - 여기서 상태 값은 현재 화상에 대해 화상 헤더들이 사용되는지 여부를 특정함 -; 상태 값이 제1 값인 것에 응답하여, 현재 화상에 대한 화상 헤더가 존재하지 않는 것으로 도출하는 단계(807); 제1 세트의 신택스 요소들의 디코딩된 값들을 획득하기 위해 슬라이스 헤더에 대한 제1 세트의 신택스 요소들을 디코딩하는 단계(809); 현재 화상의 현재 슬라이스를 디코딩하기 위해 제1 세트의 신택스 요소들의 디코딩된 값들을 사용하는 단계(811); 상태 값이 제2 값인 것에 응답하여, 현재 화상에 대한 화상 헤더가 존재하는 것으로 도출하는 단계(813); 제2 세트의 신택스 요소들의 디코딩된 값들을 획득하기 위해 슬라이스 헤더에 대한 제2 세트의 신택스 요소들을 디코딩하는 단계(815); 및 현재 화상의 현재 슬라이스를 디코딩하기 위해 제2 세트의 신택스 요소들의 디코딩된 값들을 사용하는 단계(817) - 여기서 제2 세트의 신택스 요소는 제1 세트의 신택스 요소들과 동일한 신택스 요소들을 포함함 -;를 포함한다.
A12. 실시예 A11의 디코더에서, 메모리(503)는 프로세서(501)에 의해 실행될 때 프로세서(501)가 실시예들 A2-A7 중 임의의 것에 따른 동작들을 수행하게 하는 명령어들을 더 포함한다.
A13. 컴퓨터 실행가능 명령어들을 포함하는 컴퓨터 프로그램 제품으로서, 장치(306)에 포함된 프로세서(501)에서 컴퓨터 실행가능 명령어들이 실행될 때, 상기 장치(306)가 다음의 동작들을 수행하도록 컴퓨터 실행가능 명령어들이 구성되고, 상기 동작들은,
현재 화상의 현재 슬라이스의 슬라이스 헤더에서 상태 신택스 요소로부터 상태 값을 디코딩하는 단계(805) - 여기서 상태 값은 현재 화상에 대해 화상 헤더들이 사용되는지 여부를 특정함 -; 상태 값이 제1 값인 것에 응답하여, 현재 화상에 대한 화상 헤더가 존재하지 않는 것으로 도출하는 단계(807); 제1 세트의 신택스 요소들의 디코딩된 값들을 획득하기 위해 슬라이스 헤더에 대한 제1 세트의 신택스 요소들을 디코딩하는 단계(809); 현재 화상의 현재 슬라이스를 디코딩하기 위해 제1 세트의 신택스 요소들의 디코딩된 값들을 사용하는 단계(811); 상태 값이 제2 값인 것에 응답하여, 현재 화상에 대한 화상 헤더가 존재하는 것으로 도출하는 단계(813); 제2 세트의 신택스 요소들의 디코딩된 값들을 획득하기 위해 슬라이스 헤더에 대한 제2 세트의 신택스 요소들을 디코딩하는 단계(815); 및 현재 화상의 현재 슬라이스를 디코딩하기 위해 제2 세트의 신택스 요소들의 디코딩된 값들을 사용하는 단계(817) - 여기서 제2 세트의 신택스 요소는 제1 세트의 신택스 요소들과 동일한 신택스 요소들을 포함함 -;를 포함한다.
A14. 실시예 A13의 컴퓨터 프로그램 제품에서, 컴퓨터 실행가능 명령어들이 장치(506)에 포함된 프로세서에서 실행될 때, 상기 장치(506)가 실시예 A2-A7 중 어느 하나에 따른 방법을 수행하게 하도록 구성된 컴퓨터 실행가능 명령어들을 더 포함한다.
A15. 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 판독가능 저장 매체는, 장치(306)에 포함된 프로세서(501)에서 컴퓨터 실행가능 명령어들이 실행될 때, 상기 장치(306)가 다음의 동작들을 수행하도록 구성되는 컴퓨터 실행가능 명령어들을 구비하고, 상기 동작들은,
현재 화상의 현재 슬라이스의 슬라이스 헤더에서 상태 신택스 요소로부터 상태 값을 디코딩하는 단계(805) - 여기서 상태 값은 현재 화상에 대해 화상 헤더들이 사용되는지 여부를 특정함 -; 상태 값이 제1 값인 것에 응답하여, 현재 화상에 대한 화상 헤더가 존재하지 않는 것으로 도출하는 단계(807); 제1 세트의 신택스 요소들의 디코딩된 값들을 획득하기 위해 슬라이스 헤더에 대한 제1 세트의 신택스 요소들을 디코딩하는 단계(809); 현재 화상의 현재 슬라이스를 디코딩하기 위해 제1 세트의 신택스 요소들의 디코딩된 값들을 사용하는 단계(811); 상태 값이 제2 값인 것에 응답하여, 현재 화상에 대한 화상 헤더가 존재하는 것으로 도출하는 단계(813); 제2 세트의 신택스 요소들의 디코딩된 값들을 획득하기 위해 슬라이스 헤더에 대한 제2 세트의 신택스 요소들을 디코딩하는 단계(815); 및 현재 화상의 현재 슬라이스를 디코딩하기 위해 제2 세트의 신택스 요소들의 디코딩된 값들을 사용하는 단계(817) - 여기서 제2 세트의 신택스 요소는 제1 세트의 신택스 요소들과 동일한 신택스 요소들을 포함함 -;를 포함한다.
A16. 실시예 A15의 컴퓨터 프로그램 제품은, 추가적인 컴퓨터 실행가능 명령어들이 장치(306)에 포함된 프로세서(501)에서 실행될 때, 상기 장치(306)가 실시예들 A2-A7 중 어느 하나에 따른 방법을 수행하게 하도록 구성된 추가적인 컴퓨터 실행가능 명령어들을 갖는다.
A17. 현재 화상을 비트스트림으로 인코딩하는 방법으로서, 상기 방법은, 현재 화상에 대한 화상 헤더가 존재할 것인지의 여부를 결정하는 단계(1101); 현재 화상에 대한 화상 헤더가 존재하지 않을 것이라는 결정에 응답하여, 상태 신택스 요소의 제1 값을 비트스트림으로 인코딩하는 단계(1103); 현재 화상을 인코딩하기 위해 제1 세트의 신택스 요소들을 사용하는 단계(1105); 현재 화상에 대한 화상 헤더가 존재할 것이라는 결정에 응답하여, 상태 신택스 요소의 제2 값을 비트스트림으로 인코딩하는 단계(1107); 및 현재 화상을 인코딩하기 위해 제2 세트의 신택스 요소들을 사용하는 단계(1109);를 포함한다.
A18. 통신 네트워크를 위한 인코더로서, 상기 인코더는 프로세서(501)와 상기 프로세서에 결합된 메모리(503)를 포함하며, 상기 메모리는, 프로세서에 의해 실행될 때, 프로세서가 다음 동작들을 수행하게 하는 명령어들을 포함하고, 상기 동작들은,
현재 화상에 대한 화상 헤더가 존재할 것인지의 여부를 결정하는 단계(1101); 현재 화상에 대한 화상 헤더가 존재하지 않을 것이라 결정에 응답하여, 상태 신택스 요소의 제1 값을 비트스트림으로 인코딩하는 단계(1103); 현재 화상의 현재 슬라이스를 인코딩하기 위해 제1 세트의 신택스 요소들을 사용하는 단계(1105); 현재 화상에 대한 화상 헤더가 존재할 것이라는 결정에 응답하여, 상태 신택스 요소의 제2 값을 비트스트림으로 인코딩하는 단계(1107); 및 현재 화상의 현재 슬라이스를 인코딩하기 위해 제2 세트의 신택스 요소들을 사용하는 단계(1109);를 포함한다.
A19. 컴퓨터 실행가능 명령어들을 포함하는 컴퓨터 프로그램 제품으로서, 장치(500)에 포함된 프로세서에서 컴퓨터 실행가능 명령어들이 실행될 때, 상기 장치(500)가 다음의 동작들을 수행하도록 컴퓨터 실행가능 명령어들이 구성되고, 상기 동작들은,
현재 화상에 대한 화상 헤더가 존재할 것인지의 여부를 결정하는 단계(1101); 현재 화상에 대한 화상 헤더가 존재하지 않을 것이라 결정에 응답하여, 상태 신택스 요소의 제1 값을 비트스트림으로 인코딩하는 단계(1103); 현재 화상의 현재 슬라이스를 인코딩하기 위해 제1 세트의 신택스 요소들을 사용하는 단계(1105); 현재 화상에 대한 화상 헤더가 존재할 것이라는 결정에 응답하여, 상태 신택스 요소의 제2 값을 비트스트림으로 인코딩하는 단계(1107); 및 현재 화상의 현재 슬라이스를 인코딩하기 위해 제2 세트의 신택스 요소들을 사용하는 단계(1109);를 포함한다.
A20. 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 판독가능 저장 매체는, 장치(500)에 포함된 프로세서에서 컴퓨터 실행가능 명령어들이 실행될 때, 상기 장치(500)가 다음의 동작들을 수행하도록 구성되는 컴퓨터 실행가능 명령어들을 구비하고, 상기 동작들은,
현재 화상에 대한 화상 헤더가 존재할 것인지의 여부를 결정하는 단계(1101); 현재 화상에 대한 화상 헤더가 존재하지 않을 것이라 결정에 응답하여, 상태 신택스 요소의 제1 값을 비트스트림으로 인코딩하는 단계(1103); 현재 화상의 현재 슬라이스를 인코딩하기 위해 제1 세트의 신택스 요소들을 사용하는 단계(1105); 현재 화상에 대한 화상 헤더가 존재할 것이라는 결정에 응답하여, 상태 신택스 요소의 제2 값을 비트스트림으로 인코딩하는 단계(1107); 및 현재 화상의 현재 슬라이스를 인코딩하기 위해 제2 세트의 신택스 요소들을 사용하는 단계(1109);를 포함한다.
부가적인 설명이 아래에 제공된다.
일반적으로, 여기에서 사용되는 모든 용어들은, 다른 의미가 명백하게 주어지지 않는 한 및/또는 그것이 사용되는 문맥으로부터 암시되지 않는 한, 관련 기술분야에서 통상의 의미에 따라 해석된다. 하나의 요소, 장치, 구성요소, 수단, 단계 등에 대한 모든 언급들은, 달리 명시되지 않는 한, 요소, 장치, 구성요소, 수단, 단계 등의 적어도 하나의 예를 언급하는 것으로 개방적으로 해석된다. 여기서 설명되는 임의의 방법의 단계들은 한 단계가 또 다른 단계에 후속하거나 선행하는 것으로 명시하지 않는 한, 및/또는 단계가 또 다른 단계에 후속하거나 선행해야 하는 것으로 암시되는 경우, 설명된 정확한 순서로 실행될 필요는 없다. 여기서 설명되는 임의의 실시예들의 특징은 적절한 경우, 임의의 다른 실시예에 적용될 수 있다. 마찬가지로, 임의의 실시예들의 임의의 이점은 임의의 다른 실시예에 적용될 수 있다. 설명된 실시예의 다른 목적, 특성, 및 이점은 다음의 설명으로부터 명백해질 것이다.
여기서 설명된 임의의 적절한 단계들, 방법들, 특성들, 기능들, 또는 이점들은 하나 이상의 기능적 유닛들 또는 하나 이상의 가상 장치들의 모듈들을 통해 실행될 수 있다. 각각의 가상 장치는 이러한 기능적 유닛들을 다수 포함할 수 있다. 이들 기능적 유닛들은 처리 회로를 통해 구현될 수 있고, 이는 하나 이상의 마이크로프로세서나 마이크로컨트롤러뿐만 아니라 디지털 신호 프로세서(DSP), 특수-목적의 디지털 로직 등을 포함할 수 있는, 다른 디지털 하드웨어를 포함할 수 있다. 처리 회로는 메모리에 저장된 프로그램 코드를 실행하도록 구성될 수 있고, 메모리는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 캐시 메모리, 플래쉬 메모리 장치들, 광학 저장 장치들 등과 같은 하나 또는 여러 유형의 메모리를 포함할 수 있다. 메모리에 저장된 프로그램 코드는 하나 이상의 전기통신 및/또는 데이터 통신 프로토콜을 실행하기 위한 프로그램 명령어들뿐만 아니라 여기서 설명된 기술들 중 하나 이상을 실행하기 위한 명령어들 포함한다. 일부 구현들에서, 처리 회로는 각각의 기능적 유닛이 본 발명의 하나 이상의 실시예들에 따라 대응하는 기능들을 수행하게 하도록 사용될 수 있다.
용어 유닛은 전자, 전기 장치들 및/또는 전자 장치들의 분야에서 통상적인 의미를 가질 수 있고, 예를 들어, 여기서 설명된 것과 같이, 전기 및/또는 전자 회로, 장치들, 모듈들, 프로세서들, 메모리들, 로직 고상(logic solid state) 및/또는 이산 장치들(discrete devices), 각각의 작업들, 과정들, 계산들, 출력들, 및/또는 디스플레이 기능들을 실행하기 위한 컴퓨터 프로그램들 또는 명령어들을 포함할 수 있다.
약어(ABBREVIATIONS)
다음의 약어 중 적어도 일부가 본 명세서에서 사용될 수 있다. 약어들 사이에서 불일치가 있는 경우, 상기 사용된 방법을 우선적으로 고려해야 한다. 아래에 여러 번 나열된 경우, 첫 번째 리스트가 후속 리스트보다 우선한다.
AU Access Unit
AUD Access Unit Delimiter
ALF Adaptive Loop Filter
APS Adaptive Parameter Set
BLA Broken Link Access
CLVS Coded Layer Video Sequence
CRA Clean Random Access
CVS Coded Video Stream
CVSS CVS Start
CU Coding Unit
DPS Decoding Parameter Set
DRAP Dependent Random Access Point
GDR Gradual Decoding Refresh
HEVC High-Efficiency Video Coding
IDR Instantaneous Decoding Refresh
IRAP Intra Random Access Point
LMCS Luma Mapping and Chroma Scaling
MPEG Motion Picture Experts Group
NAL Network Abstraction Layer
NALU NAL unit
NUT NAL unit type
PPS Picture Parameter Set
RADL Random Access Decodable Leading
RAP Random Access Point
RASL Random Access Skipped Leading
RBSP Raw Byte Sequence Payload
RPL Reference Picture List
SEI Supplemental Enhancement layer
SPS Sequence Parameter Set
STSA Step-wise Temporal Layer Access
VCL Video Coding Layer
VPS Video Parameter Set
VVC Versatile Video Coding
본 발명의 다양한 실시예들에 대한 상기한 설명에서, 여기서 사용되는 용어는 특정한 실시예들만을 설명하기 위한 것이고 본 발명을 제한하지 않는 것으로 이해하여야 한다. 달리 정의되지 않는 한, 여기서 사용된 모든 용어들(기술적 및 과학적 용어들을 포함)은 본 발명이 속하는 기술분야에서 통상의 기술자에게 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에서 정의된 것과 같이, 용어들은 본 명세서 및 관련 기술의 맥락에서의 그 의미와 일치하는 의미를 나타내는 것으로 해석되어야 하고, 여기서 명시적으로 정의하지 않는 한, 이상화되거나 지나치게 형식적인 의미로 해석되지 않는 것으로 이해하여야 한다.
요소가 또 다른 요소에 "연결된(connected)", "결합된(coupled)", "응답하는(responsive)", 또는 그 변형(variants)인 것으로 언급될 때, 다른 요소에 직접적으로 연결, 결합, 또는 응답할 수 있거나 중간 요소들이 존재할 수 있다. 반면, 요소가 또 다른 요소에 "직접 연결된(directly connected)", "직접 결합된(directly coupled)", "직접 응답하는(directly responsive)" 또는 그 변형인 것으로 언급될 때는 중간 요소가 존재하지 않는다. 동일한 번호는 전체적으로 동일한 요소를 지칭한다. 또한, 여기서 사용되는 바와 같이 "결합", "연결", "응답", 또는 그 변형은 무선으로 결합, 연결, 또는 응답하는 것을 포함할 수 있다. 여기서 사용된 바와 같이, 단수 형태 ("a", "an" 및 "the")는 문맥으로 명확하게 표시되지 않는 한, 복수 형태도 포함하고자 하는 것이다. 공지된 기능이나 구성들은 간결성 및/또는 명확성을 위해 상세히 설명되지 않을 수 있다. 용어 "및/또는"은 하나 이상의 연관되어 열거된 항목들 중 임의의 것 및 모든 조합들을 포함한다.
용어 제1, 제2, 제3 등이 다양한 요소/동작들을 설명하기 위해 여기서 사용될 수 있지만, 이들 요소/동작들은 이러한 용어들에 의해 제한되지 않는 것으로 이해되어야 한다. 이러한 용어들은 한 요소/동작을 또 다른 요소/동작과 구별하는 데에만 사용된다. 따라서, 일부 실시예들에서의 제1 요소/동작은 본 발명의 교시에서 벗어나지 않으면서 다른 실시예에서의 제2 요소/동작으로 지칭될 수 있다. 동일한 참조 번호 또는 동일한 참조 표시자들은 본 명세서를 통해 동일하거나 유사한 요소를 나타낸다.
여기서 사용된 바와 같이, 용어 "포함한다" ("comprise", "comprising", "comprises", "include", "including", "includes", "have", "has", "having") 또는 그 변형은 개방적인 것으로, 하나 이상의 언급된 특성, 정수, 요소, 단계, 구성요소, 또는 기능들을 포함하지만, 하나 이상의 다른 특성, 정수, 요소, 단계, 구성요소, 기능들, 또는 그들의 그룹의 존재 또는 추가를 배제하는 것은 아니다. 또한, 여기서 사용된 바와 같이, 라틴어 "exempli gratia"에서 파생된 일반적인 약자 "e.g."는 앞서 기술된 항목의 일반적인 예를 소개 및 특정하는데 사용될 수 있고, 이러한 항목을 제한하고자 하는 것은 아니다. 라틴어 "id est"에서 파생된 일반적인 약자 "i.e."는 보다 일반적인 언급에서 특정한 항목을 지정하는데 사용될 수 있다.
예시적인 실시예는 컴퓨터-구현 방법들, 장치들(시스템 및/또는 장치), 및/또는 컴퓨터 프로그램 제품들의 블록도 및/또는 흐름도를 참조하여 여기서 설명된다. 블록도 및/또는 흐름도에서의 하나의 블록, 및 블록도 및/또는 흐름도에서의 블록들의 조합은 하나 이상의 컴퓨터 회로에 의해 수행되는 컴퓨터 프로그램 명령어들에 의해 구현될 수 있는 것으로 이해되어야 한다. 이들 컴퓨터 프로그램 명령어들은 범용 컴퓨터 회로, 특수 목적 컴퓨터 회로, 및/또는 기계를 생산하는 다른 프로그램 가능 데이터 처리 회로의 처리 회로에 제공될 수 있어서, 트랜지스터, 메모리 위치에 저장된 값, 및 이러한 회로 내의 다른 하드웨어 구성요소들을 변형 및 제어하여, 컴퓨터 및/또는 다른 프로그램 가능 데이터 처리 장치의 프로세서를 통해 실행되는 명령어들은 블록도 및/또는 흐름도 또는 블록에서 지정된 기능/동작들을 구현하고, 그에 의해 블록도 및/또는 흐름도(들)에서 지정된 기능/동작들을 구현하기 위한 수단(기능) 및/또는 구조를 생성한다.
또한, 이러한 컴퓨터 프로그램 명령어들은 컴퓨터 또는 다른 프로그램 가능 데이터 처리 장치가 특정한 방식으로 기능하도록 지시할 수 있는 유형의 컴퓨터-판독가능 매체에 저장될 수 있어서, 컴퓨터-판독가능 매체에 저장된 명령어들이 블록도 및/또는 흐름도 또는 블록들에서 지정된 기능/동작들을 구현하는 명령어들을 포함하는 제품을 생성하게 된다. 따라서 본 발명의 실시예들은 하드웨어로, 및/또는 디지털 신호 프로세서와 같은 프로세서에서 실행되는 소프트웨어(펌웨어, 상주 소프트웨어, 마이크로-코드 등을 포함)로 구현될 수 있고, 이들은 집합적으로 "회로", "모듈", 또는 그들의 변형으로 지칭될 수 있다.
또한, 일부 대안적인 구현들에서, 블록들에 기술된 기능/동작들은 흐름도에 기술된 순서를 벗어나 일어날 수 있음에 유의해야 한다. 예를 들어, 연속적으로 도시된 2개의 블록은 사실상 실질적으로 동시에 실행되거나, 블록들이 때때로 포함된 기능/동작들에 따라, 반대 순서로 실행될 수도 있다. 또한, 흐름도 및/또는 블록도 중 소정의 블록의 기능은 다수의 블록들로 분리될 수 있고, 및/또는 흐름도 및/또는 블록도의 하나 이상의 블록들의 기능은 적어도 부분적으로 통합될 수 있다. 마지막으로, 도시된 블록들 사이에 다른 블록이 추가/삽입될 수 있고, 및/또는 본 발명의 범위에서 벗어나지 않으면서 블록/동작들이 생략될 수도 있다. 또한, 도면 중 일부는 통신의 주요 방향을 나타내도록 통신 경로들에 화살표들을 포함하지만, 통신은 도시된 화살표들과 반대 방향으로 일어날 수도 있는 것으로 이해해야 한다.
본 발명의 원리에서 실질적으로 벗어나지 않으면서, 많은 변형 및 수정들이 실시예들에 이루어질 수 있다. 이러한 모든 변형 및 수정들은 여기서 본 발명의 범위 내에 포함되고자 하는 것이다. 따라서 상기 설명된 주제는 제한적인 것이 아니라 예시적인 것으로 간주되어야 하고, 실시예들의 예시들은 본 발명의 사상 및 범위 내에 있는 이러한 모든 수정들, 개선들(enhancements), 및 다른 실시예들을 포함하고자 하는 것이다. 따라서 법이 허용하는 최대 범위까지, 본 발명의 범위는 실시예들의 예시들 및 그에 동등한 내용을 포함하는 본 발명의 가장 넓은 허용 가능한 해석에 의해 결정되어야 하며, 앞서 설명된 내용에 의해 한정되거나 제한되지 않는다.
참고문헌:
JVET-Q0255-vl.zip, Versatile Video Coding, B. Bross, J. Chen, S. Liu, Y.-K. Wang
JVET-Q0426-vl.zip, Versatile Video Coding, B. Bross, J. Chen, S. Liu, Y.-K. Wang

Claims (33)

  1. 비트스트림으로부터 화상을 디코딩하는 방법으로서, 상기 방법은
    화상의 슬라이스에 대한 슬라이스 헤더를 수신하는 단계 - 상기 슬라이스 헤더는 상태 신택스 요소를 포함함 -;
    슬라이스 헤더에서 상태 신택스 요소로부터 상태 값을 디코딩하는 단계(805)
    - (a) 상태 값이 제1 값과 동일하지 않은 경우, 상태 값은
    i) 비트스트림이 화상에 대해 화상 신택스 요소들의 세트를 포함하는 화상 헤더를 포함해야 하는 것과,
    ii) 슬라이스 헤더가 화상 신택스 요소들의 세트를 포함하지 않아야 하는 것을
    표시하고,
    (b) 상태 값이 제1 값과 동일한 경우, 상태 값은
    i) 슬라이스 헤더가 상기 화상 신택스 요소들의 세트를 포함해야 하는 것과,
    ii) 비트스트림이 화상에 대한 화상 헤더를 포함하지 않아야 하는 것을
    표시함 -; 및
    화상의 슬라이스를 디코딩하기 위해 화상 신택스 요소들의 세트를 사용하는 단계;
    를 포함하는 방법.
  2. 비트스트림으로부터 화상을 디코딩하는 방법으로서, 상기 화상은 하나 이상의 슬라이스들의 순서화된 세트를 포함하고, 상기 방법은
    상기 화상의 슬라이스에 대한 슬라이스 헤더를 수신하는 단계 - 슬라이스 헤더는 상태 신택스 요소를 포함함 -;
    슬라이스 헤더에서 상태 신택스 요소로부터 상태 값을 디코딩하는 단계(805) - 상태 값이 제1 값과 동일한 경우, 상태 값은 슬라이스가 화상의 제1 및 유일한 슬라이스이고 슬라이스 헤더가 화상 신택스 요소들의 세트를 포함해야 함을 표시함 -; 및
    화상의 슬라이스를 디코딩하기 위해 화상 신택스 요소들의 세트를 사용하는 단계;
    를 포함하는 방법.
  3. 제1항 또는 제2항에 있어서,
    상태 신택스 요소는 이진 플래그인 것을 특징으로 하는 방법.
  4. 제1항 또는 제2항 또는 제3항에 있어서,
    화상 신택스 요소들의 세트는 화상 파라미터 세트(PPS)를 식별하기 위한 값을 인코딩하는 PPS 신택스 요소를 포함하는 것을 특징으로 하는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 슬라이스 헤더를 수신하는 단계는, 슬라이스 헤더 및 슬라이스 데이터를 포함하는 네트워크 추상화 레이어(network abstraction layer, NAL) 유닛을 수신하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상태 값은 제1 값과 동일하지 않으며, 상태 값은 비트스트림이 화상에 대한 화상 헤더를 포함하는 것을 표시하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    슬라이스 헤더를 수신하기 전에, 화상 헤더를 수신하는 단계를 더 포함하는 방법.
  8. 제7항에 있어서,
    상기 화상 헤더를 수신하는 단계는, 화상 헤더를 포함하는 제1 NAL 유닛을 수신하는 단계를 포함하고,
    상기 슬라이스 헤더를 수신하는 단계는, 슬라이스 헤더를 포함하는 제2 NAL 유닛을 수신하는 단계를 포함하고,
    화상 헤더를 포함하는 제1 NAL 유닛은 디코딩 순서에서 슬라이스 헤더를 포함하는 제2 NAL 유닛에 선행하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    제1 NAL 유닛은 비-비디오 코딩 레이어(non-VCL) NAL 유닛이고,
    제2 NAL 유닛은 비디오 코딩 레이어(VCL) NAL 유닛인 것을 특징으로 하는 방법.
  10. 제8항 또는 제9항에 있어서,
    제1 및 제2 NAL 유닛들은 동일한 액세스 유닛 또는 화상 유닛에 속하는 것을 특징으로 하는 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    비트스트림은 코딩된 레이어 비디오 시퀀스(CLVS)를 포함하고,
    화상은 CLVS 내의 화상이고,
    CLVS는 상기 슬라이스 헤더를 포함하는 복수의 슬라이스 헤더들을 포함하고,
    CLVS에 포함된 각각의 슬라이스 헤더는 상기 상태 신택스 요소를 포함하고,
    각각의 상기 상태 신택스 요소는 동일한 값을 인코딩해야 하는 것을 특징으로 하는 방법.
  12. 인코더에 의해 수행되는 방법으로서,
    상기 방법은 비트스트림을 생성하는 단계를 포함하고,
    상기 비트스트림을 생성하는 단계는, 화상의 슬라이스에 대한 슬라이스 헤더를 생성하는 단계를 포함하고,
    상기 슬라이스 헤더는 상태 값을 인코딩하는 상태 신택스 요소를 포함하고,
    (a) 상태 값이 제1 값과 동일하지 않은 경우, 상태 값은
    i) 인코더에 의해 생성된 비트스트림이 화상에 대해 화상 신택스 요소들의 세트를 포함하는 화상 헤더를 포함해야 하는 것과,
    ii) 슬라이스 헤더가 화상 신택스 요소들의 세트를 포함하지 않아야 하는 것을
    표시하고,
    (b) 상태 값이 제1 값과 동일한 경우, 상태 값은
    i) 슬라이스 헤더가 화상 신택스 요소들의 세트를 포함해야 하는 것과,
    ii) 비트스트림이 화상에 대한 화상 헤더를 포함하지 않아야 하는 것을
    표시하는, 방법.
  13. 인코더에 의해 수행되는 방법으로서,
    상기 방법은 비트스트림을 생성하는 단계를 포함하고,
    상기 비트스트림을 생성하는 단계는, 화상의 슬라이스에 대한 슬라이스 헤더를 생성하는 단계를 포함하고,
    슬라이스 헤더는 상태 값을 인코딩하는 상태 신택스 요소를 포함하고,
    상태 값이 제1 값과 동일한 경우, 상태 값은 슬라이스가 화상의 제1 및 유일한 슬라이스이고, 슬라이스 헤더가 화상 신택스 요소들의 세트를 포함하는 것을 표시하는, 방법.
  14. 제12항 또는 제13항 중 어느 한 항에 있어서,
    상태 신택스 요소는 이진 플래그인 것을 특징으로 하는 방법.
  15. 제12항 내지 제14항 중 어느 한 항에 있어서,
    화상 신택스 요소들의 세트는 화상 파라미터 세트(PPS)를 식별하기 위한 값을 인코딩하는 PPS 신택스 요소를 포함하는 것을 특징으로 하는 방법.
  16. 제12항 내지 제15항 중 어느 한 항에 있어서,
    슬라이스 헤더를 인코더로 송신하는 단계를 더 포함하는, 방법.
  17. 제16항에 있어서,
    상태 값은 제1 값과 동일하지 않으며, 상태 값은 비트스트림이 화상에 대한 화상 헤더를 포함하는 것을 표시하는 것을 특징으로 하는 방법.
  18. 제17항에 있어서,
    슬라이스 헤더를 인코더에 송신하기 전에, 화상 헤더를 인코더에 송신하는 단계를 더 포함하는 방법.
  19. 제18항에 있어서,
    슬라이스 헤더를 인코더에 송신하는 단계는, 슬라이스 헤더와 슬라이스 데이터를 포함하는 VCL NAL 유닛을 인코더에 송신하는 단계를 포함하고,
    화상 헤더를 인코더에 송신하는 단계는, 화상 헤더를 포함하는 비-VCL NAL 유닛을 인코더에 송신하는 단계를 포함하는 것을 특징으로 하는 방법.
  20. 제18항에 있어서,
    상기 NAL 유닛들은 동일한 액세스 유닛 또는 화상 유닛에 속하는 것을 특징으로 하는 방법.
  21. 제12항 내지 제20항 중 어느 한 항에 있어서,
    비트스트림은 코딩된 레이어 비디오 시퀀스(CLVS)를 포함하고,
    화상은 CLVS 내의 화상이고,
    CLVS는 상기 슬라이스 헤더를 포함하는 복수의 슬라이스 헤더들을 포함하고,
    CLVS에 포함된 각각의 슬라이스 헤더는 상기 상태 신택스 요소를 포함하고,
    각각의 상기 상태 신택스 요소는 동일한 값을 인코딩해야 하는 것을 특징으로 하는 방법.
  22. 컴퓨터 프로그램으로서,
    처리 회로에 의해 실행될 때, 상기 처리 회로가 제1항 내지 제21항 중 어느 한 항의 방법을 수행하게 하는 명령어들을 포함하는 컴퓨터 프로그램.
  23. 제22항의 컴퓨터 프로그램을 포함하는 캐리어로서,
    캐리어는 전자 신호, 광 신호, 라디오 신호 및 컴퓨터 판독가능 저장 매체 중 하나인 것을 특징으로 하는 캐리어.
  24. 디코더(506)로서,
    화상의 슬라이스에 대한 슬라이스 헤더를 수신하도록 - 상기 슬라이스 헤더는 상태 신택스 요소를 포함함 -;
    슬라이스 헤더에서 상태 신택스 요소로부터 상태 값을 디코딩하도록(805)
    - (a) 상태 값이 제1 값과 동일하지 않은 경우, 상태 값은
    i) 비트스트림이 화상에 대해 화상 신택스 요소들의 세트를 포함하는 화상 헤더를 포함해야 하는 것과,
    ii) 슬라이스 헤더가 화상 신택스 요소들의 세트를 포함하지 않아야 하는 것을
    표시하고,
    (b) 상태 값이 제1 값과 동일한 경우, 상태 값은
    i) 슬라이스 헤더가 상기 화상 신택스 요소들의 세트를 포함해야 하는 것과,
    ii) 비트스트림이 화상에 대한 화상 헤더를 포함하지 않아야 하는 것을
    표시함 -; 및
    화상의 슬라이스를 디코딩하기 위해 화상 신택스 요소들의 세트를 사용하도록;
    적응되는 디코더.
  25. 제24항에 있어서,
    제3항 내지 제11항 중 어느 한 항의 방법을 수행하도록 더 적응되는, 디코더.
  26. 디코더(506)로서,
    화상의 슬라이스에 대한 슬라이스 헤더를 수신하도록 - 슬라이스 헤더는 상태 신택스 요소를 포함함 -;
    슬라이스 헤더에서 상태 신택스 요소로부터 상태 값을 디코딩하도록(805) - 상태 값이 제1 값과 동일한 경우, 상태 값은 슬라이스가 화상의 제1 및 유일한 슬라이스이고, 슬라이스 헤더가 화상 신택스 요소들의 세트를 포함해야 함을 표시함 -; 및
    화상의 슬라이스를 디코딩하기 위해 화상 신택스 요소들의 세트를 사용하도록;
    적응되는 디코더.
  27. 제26항에 있어서,
    제3항 내지 제11항 중 어느 한 항의 방법을 수행하도록 더 적응되는 디코더.
  28. 디코더(506)로서,
    프로세서(603); 및 메모리(605)를 포함하며,
    상기 메모리는 상기 프로세서에 의해 실행 가능한 명령어들을 포함함으로써, 상기 디코더가 제1항 내지 제11항 중 어느 한 항의 방법을 수행하도록 동작하는 것을 특징으로 하는 디코더.
  29. 인코더(500)로서,
    상기 인코더는 비트스트림을 생성하도록 적응되고,
    상기 비트스트림의 생성은, 화상의 슬라이스에 대한 슬라이스 헤더를 생성하는 단계를 포함하고,
    상기 슬라이스 헤더는 상태 값을 인코딩하는 상태 신택스 요소를 포함하고,
    (a) 상태 값이 제1 값과 동일하지 않은 경우, 상태 값은
    i) 인코더에 의해 생성된 비트스트림이 화상에 대해 화상 신택스 요소들의 세트를 포함하는 화상 헤더를 포함해야 하는 것과,
    ii) 슬라이스 헤더가 화상 신택스 요소들의 세트를 포함하지 않아야 하는 것을
    표시하고,
    (b) 상태 값이 제1 값과 동일한 경우, 상태 값은
    i) 슬라이스 헤더가 화상 신택스 요소들의 세트를 포함해야 하는 것과,
    ii) 비트스트림이 화상에 대한 화상 헤더를 포함하지 않아야 하는 것을
    표시하는, 인코더.
  30. 제29항에 있어서,
    제13항 내지 제21항 중 어느 한 항의 방법을 수행하도록 더 적응되는, 인코더.
  31. 인코더로서,
    상기 인코더는 비트스트림을 생성하도록 적응되고,
    상기 비트스트림의 생성은, 화상의 슬라이스에 대한 슬라이스 헤더를 생성하는 단계를 포함하고,
    슬라이스 헤더는 상태 값을 인코딩하는 상태 신택스 요소를 포함하고,
    상태 값이 제1 값과 동일한 경우, 상태 값은 슬라이스가 화상의 제1 및 유일한 슬라이스이고 슬라이스 헤더가 화상 신택스 요소들의 세트를 포함하는 것을 표시하는, 인코더.
  32. 제31항에 있어서,
    제13항 내지 제21항 중 어느 한 항의 방법을 수행하도록 더 적응되는, 인코더.
  33. 인코더(500)로서,
    프로세서(703); 및 메모리(705)를 포함하며,
    상기 메모리는 상기 프로세서에 의해 실행 가능한 명령어들을 포함함으로써, 상기 인코더가 제12항 내지 제21항 중 어느 한 항의 방법을 수행하도록 동작하는 것을 특징으로 하는 인코더.
KR1020227025271A 2020-01-09 2020-09-24 화상 헤더 존재 KR20220119675A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202062959123P 2020-01-09 2020-01-09
US62/959,123 2020-01-09
PCT/EP2020/076815 WO2021139905A1 (en) 2020-01-09 2020-09-24 Picture header presence

Publications (1)

Publication Number Publication Date
KR20220119675A true KR20220119675A (ko) 2022-08-30

Family

ID=76763752

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227025271A KR20220119675A (ko) 2020-01-09 2020-09-24 화상 헤더 존재

Country Status (5)

Country Link
US (4) US11190792B2 (ko)
EP (1) EP4088469A1 (ko)
JP (1) JP7473656B2 (ko)
KR (1) KR20220119675A (ko)
CN (1) CN115004710A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220119675A (ko) * 2020-01-09 2022-08-30 텔레폰악티에볼라겟엘엠에릭슨(펍) 화상 헤더 존재
CN115191114A (zh) 2020-02-14 2022-10-14 抖音视界有限公司 视频比特流中的子图片信令

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6956600B1 (en) * 2001-09-19 2005-10-18 Bellsouth Intellectual Property Corporation Minimal decoding method for spatially multiplexing digital video pictures
KR101723282B1 (ko) * 2010-09-30 2017-04-04 미쓰비시덴키 가부시키가이샤 동화상 복호 장치, 동화상 복호 방법, 동화상 부호화 장치, 동화상 부호화 방법 및 기록 매체
KR101669524B1 (ko) * 2012-02-01 2016-11-09 노키아 테크놀로지스 오와이 비디오 코딩을 위한 방법 및 장치
US20130343465A1 (en) * 2012-06-26 2013-12-26 Qualcomm Incorporated Header parameter sets for video coding
IL305350B1 (en) * 2012-06-29 2024-05-01 Ge Video Compression Llc Video data stream concept
EP3090558A4 (en) * 2014-01-03 2017-08-16 Nokia Technologies OY Parameter set coding
KR20180116835A (ko) * 2017-04-18 2018-10-26 한국전자통신연구원 비디오 비트 스트림 혼합 방법 및 이를 수행하는 장치
KR20210129184A (ko) * 2019-02-27 2021-10-27 후아웨이 테크놀러지 컴퍼니 리미티드 인코더, 디코더 및 대응하는 방법
US11395007B2 (en) * 2019-12-12 2022-07-19 Tencent America LLC Method for signaling dependent and independent picture header
US11343524B2 (en) * 2019-12-27 2022-05-24 Tencent America LLC Method for adaptation parameter set reference and constraints in coded video stream
US11399188B2 (en) * 2020-01-01 2022-07-26 Tencent America LLC Method for mixed NAL unit type support in a coded picture
CN115211122A (zh) 2020-01-02 2022-10-18 Lg电子株式会社 用于对包括画面头的图像信息进行编码的图像解码方法和设备
US11356706B2 (en) * 2020-01-08 2022-06-07 Qualcomm Incorporated Storage and delivery of video data for video coding
KR20220119675A (ko) * 2020-01-09 2022-08-30 텔레폰악티에볼라겟엘엠에릭슨(펍) 화상 헤더 존재
US11303892B2 (en) * 2020-01-23 2022-04-12 Qualcomm Incorporated Adaptive rounding for loop filters
US11706428B2 (en) * 2020-04-06 2023-07-18 Tencent America LLC Method for signaling picture header in coded video stream

Also Published As

Publication number Publication date
US11190792B2 (en) 2021-11-30
JP7473656B2 (ja) 2024-04-23
JP2023514662A (ja) 2023-04-07
US20210218978A1 (en) 2021-07-15
EP4088469A1 (en) 2022-11-16
US20230125007A1 (en) 2023-04-20
US20220078463A1 (en) 2022-03-10
US11778221B2 (en) 2023-10-03
US11490106B2 (en) 2022-11-01
US20240064322A1 (en) 2024-02-22
CN115004710A (zh) 2022-09-02

Similar Documents

Publication Publication Date Title
US11330271B2 (en) Method and apparatus for non-binary profile constraint signaling for video coding
US11677957B2 (en) Methods providing encoding and/or decoding of video using a syntax indicator and picture header
KR102079803B1 (ko) 영상 디코딩 방법 및 이를 이용하는 장치
US11778221B2 (en) Picture header presence
JP2023508426A (ja) レイヤ化されたビデオにおける復号ピクチャバッファパラメータのシグナリング
US20220150546A1 (en) Methods for recovery point process for video coding and related apparatus
JP2023508425A (ja) コーディングビットストリームにおけるビデオレイヤのシグナリングに対する制約
US20230031964A1 (en) Methods and devices for high-level syntax in video coding
US20240098273A1 (en) Signaling Of Gradual Decoding Refresh And Reference Picture Lists
CN114205599A (zh) 通用视频编解码轨道编解码
CN114946186A (zh) 视频编解码中的解码参数集
US20140003520A1 (en) Differentiating Decodable and Non-Decodable Pictures After RAP Pictures
TWI777601B (zh) 靜止圖像設定檔之偵測
US20220286710A1 (en) Signaling of access unit delimiter
WO2021139905A1 (en) Picture header presence
US12022084B2 (en) Video coding layer up-switching indication

Legal Events

Date Code Title Description
A201 Request for examination