KR20210135292A - 비디오 코딩에서 타일 그룹 정보를 시그널링하기 위한 시스템들 및 방법들 - Google Patents

비디오 코딩에서 타일 그룹 정보를 시그널링하기 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR20210135292A
KR20210135292A KR1020217032152A KR20217032152A KR20210135292A KR 20210135292 A KR20210135292 A KR 20210135292A KR 1020217032152 A KR1020217032152 A KR 1020217032152A KR 20217032152 A KR20217032152 A KR 20217032152A KR 20210135292 A KR20210135292 A KR 20210135292A
Authority
KR
South Korea
Prior art keywords
tile
group
equal
picture
video
Prior art date
Application number
KR1020217032152A
Other languages
English (en)
Inventor
사친 지. 데시팬드
Original Assignee
샤프 가부시키가이샤
에프쥐 이노베이션 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 샤프 가부시키가이샤, 에프쥐 이노베이션 컴퍼니 리미티드 filed Critical 샤프 가부시키가이샤
Publication of KR20210135292A publication Critical patent/KR20210135292A/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/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

비디오 데이터를 디코딩하는 방법이 개시된다. 방법은, 픽처 파라미터 세트를 수신하는 단계; 및 픽처 파라미터 세트로부터, 제1 타일 그룹 내에 위치된 타일의 제1 인덱스와 제2 타일 그룹 내에 위치된 타일의 제2 인덱스 사이의 차이를 특정하는 제1 신택스 요소를 파싱하는 단계를 포함한다.

Description

비디오 코딩에서 타일 그룹 정보를 시그널링하기 위한 시스템들 및 방법들
본 개시는 비디오 코딩에 관한 것이며, 더 구체적으로는, 코딩된 비디오에 대한 타일 그룹 정보(tile group information)에 대한 기법들에 관한 것이다.
디지털 비디오 능력은 디지털 텔레비전, 랩톱 또는 데스크톱 컴퓨터, 태블릿 컴퓨터, 디지털 레코딩 디바이스, 디지털 미디어 플레이어, 비디오 게이밍 디바이스, 소위 스마트 폰을 포함한 셀룰러 폰, 의료 이미징 디바이스 등을 포함한 광범위한 디바이스들에 통합될 수 있다. 디지털 비디오는 비디오 코딩 표준에 따라 코딩될 수 있다. 비디오 코딩 표준들은 코딩된 비디오 데이터를 캡슐화하는 컴플라이언트 비트스트림(compliant bitstream)의 포맷을 정의한다. 컴플라이언트 비트스트림은 재구성된 비디오 데이터를 생성하기 위해 비디오 디코딩 디바이스에 의해 수신되고 디코딩될 수 있는 데이터 구조이다. 비디오 코딩 표준들은 비디오 압축 기법들을 포함할 수 있다. 비디오 코딩 표준들의 예들은 ISO/IEC MPEG-4 Visual 및 ITU-T H.264(ISO/IEC MPEG-4 AVC로도 알려짐) 및 HEVC(High-Efficiency Video Coding)를 포함한다. HEVC는 참고로 포함되고 본 명세서에서 ITU-T H.265로 지칭되는 문헌[High Efficiency Video Coding (HEVC), Rec. ITU-T H.265, December 2016]에 설명되어 있다. 차세대 비디오 코딩 표준들의 개발을 위해 ITU-T H.265에 대한 확장 및 개선이 현재 고려되고 있다. 예를 들어, ITU-T VCEG(Video Coding Experts Group) 및 ISO/IEC(MPEG(Moving Picture Experts Group)(집합적으로 JVET(Joint Video Exploration Team)로 지칭됨))는 현재 HEVC 표준의 압축 능력을 현저히 초과하는 압축 능력을 가진 표준화된 비디오 코딩 기술에 대해 작업하고 있다. 본 명세서에 참고로 포함되는 문헌[The Joint Exploration Model 7 (JEM 7), Algorithm Description of Joint Exploration Test Model 7 (JEM 7), ISO/IEC JTC1/SC29/WG11 Document: JVET-G1001, July 2017, Torino, IT]은 JVET에 의한 종합 테스트 모델 연구 하에 있었던 코딩 특징들을, ITU-T H.265의 능력들을 능가하여 비디오 코딩 기술을 잠재적으로 향상시키는 것으로서 설명한다. JEM 7의 코딩 특징들은 JEM 레퍼런스 소프트웨어(reference software)로 구현된다는 점에 유의해야 한다. 본 명세서에서 사용된 바와 같이, 용어 "JEM"은 JEM 7에 포함된 알고리즘들 및 JEM 레퍼런스 소프트웨어의 구현들을 집합적으로 지칭할 수 있다. 추가로, VCEG 및 MPEG에 의해 공동으로 발행된 "Joint Call for Proposals on Video Compression with Capabilities beyond HEVC"에 응답하여, 비디오 코딩 툴(tool)들에 대한 다수의 설명들이 ISO/IEC JTC1/SC29/WG11의 제10차 회의(16-20 April 2018, San Diego, CA)에서 다양한 그룹들에 의해 제안되었다. 비디오 코딩 툴들에 대한 다수의 설명들로부터, 비디오 코딩 규격의 생성된 초기 드래프트 텍스트가, 본 명세서에 참고로 포함되고 JVET-J1001로 지칭되는 문헌["Versatile Video Coding (Draft 1)," 10th Meeting of ISO/IEC JTC1/SC29/WG11 16-20 April 2018, San Diego, CA, document JVET-J1001-v2]에서 설명된다. VCEG 및 MPEG에 의한 차세대 비디오 코딩 표준의 현재 개발은 VVC(Versatile Video Coding) 프로젝트로 지칭된다. 본 명세서에 참고로 포함되고 JVET-M1001로 지칭되는 문헌["Versatile Video Coding (Draft 4)," 13th Meeting of ISO/IEC JTC1/SC29/WG11 9-18 January 2019, Marrakech, MA, document JVET-M1001-v5]은 VVC 프로젝트에 대응하는 비디오 코딩 규격의 드래프트 텍스트의 현재의 반복을 나타낸다.
비디오 압축 기법은 비디오 데이터를 저장하고 송신하기 위한 데이터 요건들이 감소될 수 있게 한다. 비디오 압축 기법은 비디오 시퀀스 내의 고유 중복성을 활용함으로써 데이터 요건들을 감소시킬 수 있다. 비디오 압축 기법은 비디오 시퀀스를 연속적으로 더 작은 부분들(즉, 비디오 시퀀스 내의 픽처(picture)들의 그룹들, 픽처들의 그룹 내의 픽처, 픽처 내의 영역들, 영역들 내의 서브 영역들 등)로 세분할 수 있다. 인트라 예측 코딩 기법(intra prediction coding technique)(예컨대, 픽처 내의 공간적 예측 기법) 및 인터 예측 기법(inter prediction technique)(즉, 인터-픽처 기법(시간적))은 코딩될 비디오 데이터의 단위와 비디오 데이터의 기준 단위 사이의 차이 값들을 생성하는 데 사용될 수 있다. 차이 값들은 잔차 데이터로 지칭될 수 있다. 잔차 데이터는 양자화된 변환 계수들로서 코딩될 수 있다. 신택스 요소(syntax element)들은 잔차 데이터와 기준 코딩 단위(예컨대, 인트라 예측 모드 인덱스들 및 모션 정보)를 관련시킬 수 있다. 잔차 데이터 및 신택스 요소들은 엔트로피 코딩될 수 있다. 엔트로피 인코딩된 잔차 데이터 및 신택스 요소들은 컴플라이언트 비트스트림을 형성하는 데이터 구조 내에 포함될 수 있다.
일례에서, 비디오 데이터를 디코딩하는 방법으로서, 방법은, 픽처 파라미터 세트를 수신하는 단계; 및 픽처 파라미터 세트로부터, 제1 타일 그룹 내에 위치된 타일의 제1 인덱스와 제2 타일 그룹 내에 위치된 타일의 제2 인덱스 사이의 차이를 특정하는 제1 신택스 요소를 파싱(parsing)하는 단계를 포함한다.
일례에서, 디바이스는, 픽처 파라미터 세트를 수신하도록; 그리고 픽처 파라미터 세트로부터, 제1 타일 그룹 내에 위치된 타일의 제1 인덱스와 제2 타일 그룹 내에 위치된 타일의 제2 인덱스 사이의 차이를 특정하는 제1 신택스 요소를 파싱하도록 구성된 하나 이상의 프로세서들을 포함한다.
도 1은 본 개시의 하나 이상의 기법에 따른, 비디오 데이터를 인코딩 및 디코딩하도록 구성될 수 있는 시스템의 예를 예시하는 블록도이다.
도 2는 본 개시의 하나 이상의 기법에 따른, 코딩된 비디오 데이터 및 대응하는 데이터 구조를 예시하는 개념도이다.
도 3은 본 개시의 하나 이상의 기법에 따른, 코딩된 비디오 데이터 및 대응하는 메타데이터를 캡슐화하는 데이터 구조를 예시하는 개념도이다.
도 4는 본 개시의 하나 이상의 기법에 따른, 비디오 데이터를 인코딩 및 디코딩하도록 구성될 수 있는 시스템의 구현에 포함될 수 있는 컴포넌트들의 예를 예시하는 개념도이다.
도 5는 본 개시의 하나 이상의 기법에 따른, 비디오 데이터를 인코딩하도록 구성될 수 있는 비디오 인코더의 예를 예시하는 블록도이다.
도 6은 본 개시의 하나 이상의 기법에 따른, 비디오 데이터를 디코딩하도록 구성될 수 있는 비디오 디코더의 예를 예시하는 블록도이다.
도 7은 본 개시의 하나 이상의 기법에 따른, 코딩된 비디오 데이터 및 대응하는 데이터 구조를 예시하는 개념도이다.
일반적으로, 본 개시는 비디오 데이터를 코딩하기 위한 다양한 기법들을 설명한다. 특히, 본 개시는 코딩된 비디오 데이터에 대한 타일 그룹 정보를 시그널링하기 위한 기법들을 설명한다. 특히, 본 개시는 타일 그룹 내에 구체적으로 위치된 타일의 인덱스를, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스와 다른 정의된 타일의 인덱스 사이의 차이로서 나타내고 결정하기 위한 기법들을 설명한다. 본 개시의 기법들이 ITU-T H.264, ITU-T H.265, JEM, 및 JVET-M1001과 관련하여 설명되지만, 본 개시의 기법들은 대체적으로 비디오 코딩에 적용가능하다는 점에 유의해야 한다. 예를 들어, 본 명세서에 설명되는 코딩 기법은 비디오 블록 구조, 인트라 예측 기법, 인터 예측 기법, 변환 기법, 필터링 기법, 및/또는 ITU-T H.265, JEM, 및 JVET-M1001에 포함된 것들 이외의 엔트로피 코딩 기법을 포함하는 비디오 코딩 시스템(미래 비디오 코딩 표준에 기초한 비디오 코딩 시스템들을 포함함)에 통합될 수 있다. 따라서, ITU-T H.264, ITU-T H.265, JEM 및/또는 JVET-M1001에 대한 언급은 설명 목적을 위한 것이며, 본 명세서에서 설명되는 기법의 범주를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에 문헌을 참고로 포함시키는 것은 설명 목적을 위한 것이며, 본 명세서에서 사용된 용어들에 대하여 모호함을 제한하거나 생성하는 것으로 해석되어서는 안 된다는 점에 유의해야 한다. 예를 들어, 포함되는 참고 문헌이 다른 포함되는 참고 문헌과는 상이한 용어 정의를 제공하는 경우 그리고/또는 그 용어가 본 명세서에서 사용될 때, 그 용어는 각자의 정의 각각을 폭넓게 포함하는 방식으로 그리고/또는 대안에서 특정 정의들 각각을 포함하는 방식으로 해석되어야 한다.
일례에서, 비디오 데이터를 디코딩하기 위한 타일 그룹 정보를 시그널링하는 방법은, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스를, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스와 다른 정의된 타일의 인덱스 사이의 차이로서 시그널링하는 단계를 포함한다.
일례에서, 디바이스는, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스를, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스와 다른 정의된 타일의 인덱스 사이의 차이로서 시그널링하도록 구성된 하나 이상의 프로세서들을 포함한다.
일례에서, 비일시적 컴퓨터 판독가능 저장 매체는 그에 저장된 명령어들을 포함하고, 명령어들은, 실행될 때, 디바이스의 하나 이상의 프로세서들로 하여금, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스를, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스와 다른 정의된 타일의 인덱스 사이의 차이로서 시그널링하게 한다.
일례에서, 장치는, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스를, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스와 다른 정의된 타일의 인덱스 사이의 차이로서 시그널링하기 위한 수단을 포함한다.
일례에서, 비디오 데이터를 디코딩하는 방법은, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스를, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스와 다른 정의된 타일의 인덱스 사이의 차이로서 나타내는 신택스 요소를 파싱하는 단계 및 인덱스에 기초하여 비디오 데이터를 생성하는 단계를 포함한다.
일례에서, 디바이스는, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스를, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스와 다른 정의된 타일의 인덱스 사이의 차이로서 나타내는 신택스 요소를 파싱하도록 그리고 인덱스에 기초하여 비디오 데이터를 생성하도록 구성된 하나 이상의 프로세서들을 포함한다.
일례에서, 비일시적 컴퓨터 판독가능 저장 매체는, 그에 저장된 명령어들을 포함하고, 명령어들은, 실행될 때, 디바이스의 하나 이상의 프로세서들로 하여금, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스를, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스와 다른 정의된 타일의 인덱스 사이의 차이로서 나타내는 신택스 요소를 파싱하게 하고 인덱스에 기초하여 비디오 데이터를 생성하게 한다.
일례에서, 장치는, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스를, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스와 다른 정의된 타일의 인덱스 사이의 차이로서 나타내는 신택스 요소를 파싱하기 위한 수단 및 인덱스에 기초하여 비디오 데이터를 생성하기 위한 수단을 포함한다.
하나 이상의 예의 상세 사항들이 첨부 도면들 및 아래의 설명에 기재된다. 다른 특징들, 목적들 및 이점들이 설명 및 도면들로부터, 그리고 청구범위로부터 명백해질 것이다.
비디오 콘텐츠는 일련의 프레임들(또는 픽처들)로 구성된 비디오 시퀀스들을 포함한다. 일련의 프레임들은 또한 GOP(group of pictures)로 지칭될 수 있다. 각각의 비디오 프레임 또는 픽처는 하나 이상의 영역들로 나뉠 수 있다. 영역들은 기본 단위(예컨대, 비디오 블록) 및 영역을 정의하는 규칙들의 세트들에 따라 정의될 수 있다. 예를 들어, 영역을 정의하는 규칙은, 영역이 직사각형으로 배열된 정수 개의 비디오 블록들이어야 한다는 것일 수 있다. 추가로, 영역 내의 비디오 블록들은 스캔 패턴(예컨대, 래스터 스캔(raster scan))에 따라 순서화될 수 있다. 본 명세서에 사용된 바와 같이, 용어 "비디오 블록"은 일반적으로 픽처의 면적을 지칭할 수 있거나, 보다 구체적으로는 예측 코딩될 수 있는 샘플 값들의 최대 어레이, 그의 서브 디비전(sub-division)들, 및/또는 대응하는 구조들을 지칭할 수 있다. 또한, 용어 "현재 비디오 블록"은 인코딩 또는 디코딩되고 있는 픽처의 면적을 지칭할 수 있다. 비디오 블록은 샘플 값들의 어레이로서 정의될 수 있다. 일부 경우들에서, 픽셀 값들은, 컬러 성분들(예컨대, 루마(Y) 및 크로마(Cb 및 Cr) 성분들 또는 적색, 녹색, 및 청색 성분들)로도 지칭될 수 있는, 비디오 데이터의 각각의 성분들에 대한 샘플 값들을 포함하는 것으로서 설명될 수 있다는 점에 유의해야 한다. 일부 경우들에서, 용어들 "픽셀 값" 및 "샘플 값"은 상호교환가능하게 사용된다는 점에 유의해야 한다. 추가로, 일부 경우들에서, 픽셀 또는 샘플은 펠(pel)로 지칭될 수 있다. 크로마 포맷으로도 지칭될 수 있는 비디오 샘플링 포맷은 비디오 블록에 포함된 루마 샘플들의 수와 관련하여 비디오 블록에 포함된 크로마 샘플들의 수를 정의할 수 있다. 예를 들어, 4:2:0 샘플링 포맷의 경우, 루마 성분에 대한 샘플링 레이트(sampling rate)는 수평 방향 및 수직 방향 둘 모두에 대해 크로마 성분들의 샘플링 레이트의 2배이다.
비디오 인코더는 비디오 블록들 및 그의 서브 디비전들에 대해 예측 인코딩을 수행할 수 있다. 비디오 블록들 및 그의 서브 디비전들은 노드들로 지칭될 수 있다. ITU-T H.264는 16x16개 루마 샘플들을 포함하는 매크로블록(macroblock)을 특정한다. 즉, ITU-T H.264에서, 픽처는 매크로블록들로 세그먼트화된다. ITU-T H.265는 유사한 코딩 트리 단위(Coding Tree Unit, CTU) 구조(이는 최대 코딩 단위(largest coding unit, LCU)로 지칭될 수 있음)를 특정한다. ITU-T H.265에서, 픽처들은 CTU들로 세그먼트화된다. ITU-T H.265에서, 픽처에 대해, CTU 크기는 16x16, 32x32, 또는 64x64개 루마 샘플들을 포함하는 것으로 설정될 수 있다. ITU-T H.265에서, CTU는 비디오 데이터의 각각의 성분(예컨대, 루마(Y) 및 크로마(Cb 및 Cr))에 대한 각자의 코딩 트리 블록(Coding Tree Block, CTB)들로 구성된다. 1개의 루마 성분 및 2개의 대응하는 크로마 성분들을 갖는 비디오는 2개의 채널들, 즉, 루마 채널 및 크로마 채널을 갖는 것으로 설명될 수 있다는 점에 유의해야 한다. 또한, ITU-T H.265에서, CTU는 쿼드트리(quadtree, QT) 파티셔닝(partitioning) 구조에 따라 파티셔닝될 수 있으며, 이는 CTU의 CTB들이 코딩 블록(Coding Block, CB)들로 파티셔닝되는 결과를 가져온다. 즉, ITU-T H.265에서, CTU는 쿼드트리 리프 노드(quadtree leaf node)들로 파티셔닝될 수 있다. ITU-T H.265에 따르면, 2개의 대응하는 크로마 CB들 및 연관된 신택스 요소들과 함께 1개의 루마 CB는 코딩 단위(coding unit, CU)로 지칭된다. ITU-T H.265에서, CB의 최소 허용 크기가 시그널링될 수 있다. ITU-T H.265에서, 루마 CB의 가장 작은 최소 허용 크기는 8x8개 루마 샘플들이다. ITU-T H.265에서, 인트라 예측 또는 인터 예측을 사용하여 픽처 면적을 코딩하는 결정이 CU 레벨에서 이루어진다.
ITU-T H.265에서, CU가 CU에서 그의 루트(root)를 갖는 예측 단위(prediction unit, PU) 구조와 연관된다. ITU-T H.265에서, PU 구조들은 루마 및 크로마 CB들이 대응하는 기준 샘플들을 생성할 목적으로 분할될 수 있게 한다. 즉, ITU-T H.265에서, 루마 및 크로마 CB들은 각자의 루마 및 크로마 예측 블록(PB)들로 분할될 수 있으며, 여기서 PB는 동일한 예측이 적용되는 샘플 값들의 블록을 포함한다. ITU-T H.265에서, CB는 1개, 2개 또는 4개의 PB로 파티셔닝될 수 있다. ITU-T H.265는 64x64개 샘플들로부터 4x4개 샘플들에 이르기까지의 PB 크기들을 지원한다. ITU-T H.265에서, 정사각형 PB들이 인트라 예측을 위해 지원되며, 여기서 CB는 PB를 형성할 수 있거나 CB는 4개의 정사각형 PB들로 분할될 수 있다. ITU-T H.265에서, 정사각형 PB들에 더하여, 직사각형 PB들이 인터 예측을 위해 지원되며, 여기서 CB는 수직으로 또는 수평으로 반분되어 PB들을 형성할 수 있다. 또한, ITU-T H.265에서, 인터 예측을 위해, 4개의 비대칭 PB 파티션들이 지원되며, 여기서 CB는 CB의 높이(상부 또는 하부에서) 또는 폭(좌측 또는 우측에서)의 1/4에서 2개의 PB들로 파티셔닝된다는 점에 유의해야 한다. PB에 대응하는 인트라 예측 데이터(예컨대, 인트라 예측 모드 신택스 요소들) 또는 인터 예측 데이터(예컨대, 모션 데이터 신택스 요소들)가 PB에 대한 기준 및/또는 예측된 샘플 값들을 생성하는 데 사용된다.
JEM은 최대 크기가 256x256개 루마 샘플들인 CTU를 특정한다. JEM은 쿼드트리 플러스 이진 트리(quadtree plus binary tree, QTBT) 블록 구조를 특정한다. JEM에서, QTBT 구조는 쿼드트리 리프 노드들이 이진 트리(binary tree, BT) 구조에 의해 추가로 파티셔닝될 수 있게 한다. 즉, JEM에서, 이진 트리 구조는 쿼드트리 리프 노드들이 수직으로 또는 수평으로 재귀적으로 나뉠 수 있게 한다. JVET-M1001에서, CTU들은 쿼드트리 플러스 멀티 타입 트리(quadtree plus multi-type tree, QTMT) 구조에 따라 파티셔닝된다. JVET-M1001에서의 QTMT는 JEM에서의 QTBT와 유사하다. 그러나, JVET-M1001에서, 이진 분할을 나타내는 것에 더하여, 멀티 타입 트리는 소위 삼진(ternary)(또는 삼중 트리(triple tree, TT)) 분할들을 나타낼 수 있다. 삼진 분할은 블록을 수직으로 또는 수평으로 3개의 블록들로 나눈다. 수직 TT 분할의 경우에, 블록은 좌측 에지로부터 그의 폭의 1/4에서 그리고 우측 에지로부터 그의 폭의 1/4에서 나뉘고, 수평 TT 분할의 경우에, 블록은 상부 에지로부터 그의 높이의 1/4에서 그리고 하부 에지로부터 그의 높이의 1/4에서 나뉜다.
전술된 바와 같이, 각각의 비디오 프레임 또는 픽처는 하나 이상의 영역들로 나뉠 수 있다. 예를 들어, ITU-T H.265에 따르면, 각각의 비디오 프레임 또는 픽처는 하나 이상의 슬라이스들을 포함하도록 파티셔닝될 수 있고, 하나 이상의 타일들을 포함하도록 추가로 파티셔닝될 수 있으며, 여기서 각각의 슬라이스는 (예컨대, 래스터 스캔 순서로) CTU들의 시퀀스를 포함하고, 타일은 픽처의 직사각형 면적에 대응하는 CTU들의 시퀀스이다. ITU-T H.265에서, 슬라이스는 독립 슬라이스 세그먼트로 시작하고 다음 독립 슬라이스 세그먼트(존재하는 경우)에 선행하는 모든 후속 종속 슬라이스 세그먼트들(존재하는 경우)을 포함하는 하나 이상의 슬라이스 세그먼트들의 시퀀스라는 점에 유의해야 한다. 슬라이스 세그먼트는, 슬라이스와 같이, CTU들의 시퀀스이다. 따라서, 일부 경우들에서, 용어 "슬라이스" 및 "슬라이스 세그먼트"는 래스터 스캔 순서로 배열된 CTU들의 시퀀스를 나타내기 위해 상호교환가능하게 사용될 수 있다. 추가로, ITU-T H.265에서, 타일은 하나 초과의 슬라이스에 포함된 CTU들로 이루어질 수 있고, 슬라이스는 하나 초과의 타일에 포함된 CTU들로 이루어질 수 있다는 점에 유의해야 한다. 그러나, ITU-T H.265는 다음의 조건들 중 하나 또는 둘 모두가 충족되어야 한다고 규정한다: (1) 슬라이스 내의 모든 CTU들이 동일한 타일에 속한다; 그리고 (2) 타일 내의 모든 CTU들이 동일한 슬라이스에 속한다. JVET-M1001과 관련하여, 슬라이스들은 정수 개의 CTU들만으로 이루어지도록 요구되는 대신에, 정수 개의 완전한 타일들로 이루어지도록 요구된다. 이와 같이, 픽처의 직사각형 영역을 형성하지 않는 CTU들의 세트를 포함하는 슬라이스는 일부 비디오 코딩 기법들에서 지원될 수 있거나 또는 지원되지 않을 수 있다. 또한, 정수 개의 완전한 타일들로 이루어지도록 요구된 슬라이스는 타일 그룹으로 지칭된다. 본 명세서에 설명된 기법들은 슬라이스들, 타일들, 및/또는 타일 그룹들에 적용가능할 수 있다. 도 2는 타일 그룹들을 포함하는 픽처들의 그룹의 예를 예시하는 개념도이다. 도 2에 예시된 예에서, Pic3은 2개의 타일 그룹들(즉, 타일 그룹1 및 타일 그룹2)을 포함하는 것으로 예시되어 있다. 일부 경우들에서, 타일 그룹1 및 타일 그룹2는 슬라이스들 및/또는 타일들로서 분류될 수 있다는 점에 유의해야 한다.
인트라 예측 코딩에 대해, 인트라 예측 모드는 픽처 내의 기준 샘플들의 위치를 특정할 수 있다. ITU-T H.265에서, 정의된 가능한 인트라 예측 모드들은 평면(즉, 표면 피팅(surface fitting)) 예측 모드, DC(즉, 플랫 오버올 에버리징(flat overall averaging)) 예측 모드, 및 33개의 각도 예측 모드들(predMode: 2-34)을 포함한다. JEM에서, 정의된 가능한 인트라 예측 모드들은 평면 예측 모드, DC 예측 모드, 및 65개의 각도 예측 모드들을 포함한다. 평면 및 DC 예측 모드들은 비-방향성 예측 모드들로 지칭될 수 있고 각도 예측 모드들은 방향성 예측 모드들로 지칭될 수 있다는 점에 유의해야 한다. 본 명세서에서 설명된 기법들은 정의된 가능한 예측 모드들의 수에 무관하게 일반적으로 적용가능할 수 있다는 점에 유의해야 한다.
인터 예측 코딩의 경우, 기준 픽처가 결정되고, 모션 벡터(motion vector, MV)는 현재 비디오 블록에 대한 예측을 생성하는 데 사용되는 기준 픽처 내의 샘플들을 식별한다. 예를 들어, 현재 비디오 블록이 하나 이상의 이전에 코딩된 픽처(들)에 위치된 기준 샘플 값들을 사용하여 예측될 수 있고, 모션 벡터가 현재 비디오 블록에 대한 기준 블록의 위치를 나타내는 데 사용된다. 모션 벡터는, 예를 들어, 모션 벡터의 수평 변위 성분(즉, MVx), 모션 벡터의 수직 변위 성분(즉, MVy), 및 모션 벡터에 대한 해상도(예컨대, 1/4 픽셀 정밀도, 1/2 픽셀 정밀도, 1 픽셀 정밀도, 2 픽셀 정밀도, 4 픽셀 정밀도)를 나타낼 수 있다. 현재 픽처 이전 또는 이후에 출력된 픽처들을 포함할 수 있는 이전에 디코딩된 픽처들은 하나 이상의 기준 픽처 목록들로 조직화될 수 있고, 기준 픽처 인덱스 값을 사용하여 식별될 수 있다. 추가로, 인터 예측 코딩에서, 단방향 예측은 단일 기준 픽처로부터의 샘플 값들을 사용하여 예측을 생성하는 것을 지칭하고, 양방향 예측은 2개의 기준 픽처들로부터의 각자의 샘플 값들을 사용하여 예측을 생성하는 것을 지칭한다. 즉, 단방향 예측에서는, 단일 기준 픽처 및 대응하는 모션 벡터가 현재 비디오 블록에 대한 예측을 생성하는 데 사용되고, 양방향 예측에서는, 제1 기준 픽처 및 대응하는 제1 모션 벡터와 제2 기준 픽처 및 대응하는 제2 모션 벡터가 현재 비디오 블록에 대한 예측을 생성하는 데 사용된다. 양방향 예측에서는, 각자의 샘플 값들이 조합(예컨대, 가산, 반올림, 및 버림, 또는 가중치에 따른 평균화)되어 예측을 생성한다. 픽처들 및 그의 영역들은 그의 비디오 블록들을 인코딩하는 데 어느 타입들의 예측 모드들이 이용될 수 있는지에 기초하여 분류될 수 있다. 즉, B 타입을 갖는 영역들(예컨대, B 타일 그룹)의 경우, 양방향 예측, 단방향 예측, 및 인트라 예측 모드들이 이용될 수 있고, P 타입을 갖는 영역들(예컨대, P 타일 그룹)의 경우, 단방향 예측 및 인트라 예측 모드들이 이용될 수 있고, I 타입을 갖는 영역들(예컨대, I 타일 그룹)의 경우, 인트라 예측 모드들만이 이용될 수 있다. 전술된 바와 같이, 기준 픽처들은 기준 인덱스들을 통해 식별된다. 예를 들어, P 타일의 경우에는, 단일 기준 픽처 목록(RefPicList0)이 있을 수 있고, B 타일의 경우에는, RefPicList0에 더하여, 제2 독립 기준 픽처 목록(RefPicList1)이 있을 수 있다. B 타일 그룹에서의 단방향 예측의 경우, RefPicList0 또는 RefPicList1 중 하나가 예측을 생성하는 데 사용될 수 있다는 점에 유의해야 한다. 추가로, 디코딩 프로세스 동안, 픽처를 디코딩하기 시작할 때, 기준 픽처 목록(들)이 디코딩된 픽처 버퍼(decoded picture buffer, DPB)에 저장된 이전에 디코딩된 픽처로부터 생성된다는 점에 유의해야 한다.
추가로, 코딩 표준은 다양한 모드들의 모션 벡터 예측을 지원할 수 있다. 모션 벡터 예측은, 현재 비디오 블록에 대한 모션 벡터의 값이 다른 모션 벡터에 기초하여 도출될 수 있게 한다. 예를 들어, 연관된 모션 정보를 갖는 후보 블록들의 세트는 현재 비디오 블록에 대한 공간적 이웃 블록들 및 시간적 이웃 블록들로부터 도출될 수 있다. 추가로, 생성된(또는 디폴트) 모션 정보는 모션 벡터 예측에 사용될 수 있다. 모션 벡터 예측의 예들은 어드밴스드 모션 벡터 예측(advanced motion vector prediction, AMVP), 시간 모션 벡터 예측(temporal motion vector prediction, TMVP), 소위 "병합(merge)" 모드, 및 "스킵(skip)" 및 "디렉트(direct)" 모션 추론을 포함한다. 추가로, 모션 벡터 예측의 다른 예들은 어드밴스드 시간 모션 벡터 예측(advanced temporal motion vector prediction, ATMVP) 및 공간-시간 모션 벡터 예측(Spatial-temporal motion vector prediction, STMVP)을 포함한다. 모션 벡터 예측의 경우에, 비디오 인코더 및 비디오 디코더 둘 모두는 후보들의 세트를 도출하기 위해 동일한 프로세스를 수행한다. 따라서, 현재 비디오 블록에 대해, 인코딩 및 디코딩 동안 후보들의 동일한 세트가 생성된다.
전술된 바와 같이, 인트라 예측 데이터 또는 인터 예측 데이터는 샘플 값들의 블록에 대한 기준 샘플 값들을 생성하는 데 사용된다. 현재 PB 또는 다른 타입의 픽처 면적 구조에 포함된 샘플 값들과, 연관된 기준 샘플들(예컨대, 예측을 사용하여 생성된 것들) 사이의 차이는 잔차 데이터로 지칭될 수 있다. 잔차 데이터는 비디오 데이터의 각각의 성분에 대응하는 차이 값들의 각자의 어레이들을 포함할 수 있다. 잔차 데이터는 픽셀 도메인에 있을 수 있다. 이산 코사인 변환(discrete cosine transform, DCT), 이산 사인 변환(discrete sine transform, DST), 정수 변환, 웨이블릿 변환(wavelet transform), 또는 개념적으로 유사한 변환과 같은 변환이 차이 값들의 어레이에 적용되어 변환 계수들을 생성할 수 있다. ITU-T H.265 및 JVET-M1001에서, CU가 CU 레벨에서 그의 루트를 갖는 변환 유닛(TU) 구조와 연관된다는 점에 유의해야 한다. 즉, 차이 값들의 어레이가 변환 계수들을 생성할 목적으로 파티셔닝될 수 있다(예컨대, 4개의 8x8 변환들이 잔차 값들의 16x16 어레이에 적용될 수 있다). 비디오 데이터의 각각의 성분에 대해, 차이 값들의 그러한 서브 디비전들은 변환 블록(Transform Block, TB)들로 지칭될 수 있다. 일부 경우들에서, 코어 변환 및 후속 2차 변환들이 변환 계수들을 생성하기 위해 (비디오 인코더에서) 적용될 수 있다는 점에 유의해야 한다. 비디오 디코더에 대해, 변환 순서가 반전된다. JVET-M1001에서, P 또는 B 타일 그룹 내에 포함된 코딩 단위는 CU 스킵 모드에 따라 코딩될 수 있으며, 여기서 CU 스킵 모드가 나타내질 때, 코딩 단위는 모션 벡터 예측 모드들의 서브세트에 따라 코딩되고, 코딩 단위는 예측으로부터 직접 코딩되는데, 즉, 잔차 데이터가 비디오 블록을 코딩하는 데 사용되지 않는다는 점에 유의해야 한다.
양자화 프로세스는 (예컨대, 팔레트 코딩 양자화(palette coding quantization)의 경우) 변환 계수들 또는 잔차 샘플 값들에 대해 직접적으로 수행될 수 있다. 양자화는 특정된 값들의 세트로 제한된 진폭들에 의해 변환 계수들을 근사화한다. 양자화는 본질적으로, 변환 계수들의 그룹을 표현하는 데 요구되는 데이터의 양을 가변시키기 위해 변환 계수들을 스케일링(scaling)한다. 양자화는 양자화 스케일링 팩터에 의한 변환 계수들(또는 변환 계수들에 오프셋 값을 가산함으로써 생성된 값들)의 나눗셈 및 임의의 연관된 반올림 함수들(예컨대, 가장 가까운 정수로 반올림함)을 포함할 수 있다. 양자화된 변환 계수들은 계수 레벨 값들로 지칭될 수 있다. 역 양자화(inverse quantization)(또는 "탈 양자화")는 계수 레벨 값들과 양자화 스케일링 팩터의 곱셈, 및 임의의 역 반올림(reciprocal rounding) 또는 오프셋 가산 연산들을 포함할 수 있다. 본 명세서에서 사용된 바와 같이, 용어 "양자화 프로세스"는 일부 경우에 레벨 값들을 생성하기 위한 스케일링 팩터에 의한 나눗셈 및 일부 경우에 변환 계수들을 복구하기 위한 스케일링 팩터에 의한 곱셈을 지칭할 수 있다는 점에 유의해야 한다. 즉, 양자화 프로세스는 일부 경우에는 양자화를 그리고 일부 경우에는 역 양자화를 지칭할 수 있다. 추가로, 아래의 예들 중 일부에서, 십진수 표기와 연관된 산술 연산들과 관련하여 양자화 프로세스들이 설명되지만, 그러한 설명은 예시의 목적들을 위한 것이고 제한하는 것으로 해석해서는 안 된다는 점에 유의해야 한다. 예를 들어, 본 명세서에서 설명되는 기법들은 이진 연산들 등을 사용하여 디바이스에서 구현될 수 있다. 예를 들어, 본 명세서에서 설명되는 곱셈 및 나눗셈 연산들은 비트 시프트 연산들 등을 사용하여 구현될 수 있다.
양자화된 변환 계수들 및 신택스 요소들(예컨대, 비디오 블록에 대한 코딩 구조를 나타내는 신택스 요소들)은 엔트로피 코딩 기법에 따라 엔트로피 코딩될 수 있다. 엔트로피 코딩 프로세스는 무손실 데이터 압축 알고리즘들을 사용하여 신택스 요소들의 값들을 코딩하는 것을 포함한다. 엔트로피 코딩 기법들의 예들은 콘텐츠 적응적 가변 길이 코딩(content adaptive variable length coding, CAVLC), 콘텍스트 적응적 이진 산술 코딩(context adaptive binary arithmetic coding, CABAC), 확률 간격 파티셔닝 엔트로피 코딩(probability interval partitioning entropy coding, PIPE) 등을 포함한다. 엔트로피 인코딩된 양자화된 변환 계수들 및 대응하는 엔트로피 인코딩된 신택스 요소들은 비디오 디코더에서 비디오 데이터를 재생하는 데 사용될 수 있는 컴플라이언트 비트스트림을 형성할 수 있다. 엔트로피 코딩 프로세스, 예를 들어, CABAC는 신택스 요소들에 대해 이진화를 수행하는 것을 포함할 수 있다. 이진화는 신택스 요소의 값을 일련의 하나 이상의 비트들로 변환하는 프로세스를 지칭한다. 이러한 비트들은 "빈(bin)"들로 지칭될 수 있다. 이진화는 하기 코딩 기법 중 하나 또는 이들의 조합을 포함할 수 있다: 고정 길이 코딩(fixed length coding), 일진 코딩(unary coding), 트런케이트형 일진 코딩(truncated unary coding), 트런케이트형 라이스 코딩(truncated Rice coding), 골룸 코딩(Golomb coding), k-차 지수 골룸 코딩(k-th order exponential Golomb coding), 및 골룸-라이스 코딩(Golomb-Rice coding). 예를 들어, 이진화는, 8 비트 고정 길이 이진화 기법을 사용하여 신택스 요소에 대한 5의 정수 값을 00000101로서 표현하는 것 또는 일진 코딩 이진화 기법을 사용하여 5의 정수 값을 11110으로서 표현하는 것을 포함할 수 있다. 본 명세서에 사용되는 바와 같이, 용어들 "고정 길이 코딩", "일진 코딩", "트런케이트형 일진 코딩", "트런케이트형 라이스 코딩", "골룸 코딩", "k-차 지수 골룸 코딩", 및 "골룸-라이스 코딩" 각각은 이러한 기법의 일반적인 구현 및/또는 이러한 코딩 기법의 더 구체적인 구현을 지칭할 수 있다. 예를 들어, 골룸-라이스 코딩 구현은 비디오 코딩 표준에 따라 구체적으로 정의될 수 있다. CABAC의 예에서, 특정 빈에 대하여, 콘텍스트는 빈에 대한 MPS(most probable state) 값(즉, 빈에 대한 MPS는 0 또는 1 중 하나임) 및 빈이 MPS 또는 LPS(least probably state)일 확률 값을 제공한다. 예를 들어, 콘텍스트는, 빈의 MPS가 0이고 빈이 1일 확률이 0.3임을 나타낼 수 있다. 콘텍스트는 현재 신택스 요소 및 이전에 코딩된 신택스 요소들에서의 빈들을 포함하는 이전에 코딩된 빈들의 값들에 기초하여 결정될 수 있다는 점에 유의해야 한다. 예를 들어, 이웃 비디오 블록들과 연관된 신택스 요소들의 값들은 현재 빈에 대한 콘텍스트를 결정하는 데 사용될 수 있다.
본 명세서에서 사용된 방정식들에 대하여, 하기의 산술 연산자들이 사용될 수 있다:
+ 가산
- 감산
* 곱셈, 행렬 곱셈을 포함함
xy 거듭제곱. x의 y제곱을 특정한다. 다른 상황들에서, 그러한 표기는 거듭제곱으로서의 해석을 위한 것으로 의도되지 않는 위첨자를 위해 사용된다.
/ 결과의 끝을 잘라(truncation) 0이 되게 하는 정수 나눗셈. 예를 들어, 7/4 및 -7/-4는 끝이 잘려 1이 되고 -7/4 및 7/-4는 끝이 잘려 -1이 된다.
χ 끝을 자름 또는 반올림이 의도되지 않는 수학 방정식에서 나눗셈을 나타내기 위해 사용됨.
Figure pct00001
끝을 자름 또는 반올림이 의도되지 않는 수학 방정식에서의 나눗셈을 나타내기 위해 사용됨.
또한, 하기의 수학 함수들이 사용될 수 있다:
Log2(x) 밑(base)이 2인 x의 로그;
Figure pct00002
Ceil(x) x 이상의 최소 정수.
본 명세서에서 사용된 예시적인 신택스에 대하여, 논리 연산자들의 하기의 정의들이 적용될 수 있다:
x && y x 및 y의 부울 논리 "and"
x || y x 및 y의 부울 논리 "or"
! 부울 논리 "not"
x ? y : z x가 참(TRUE)이거나 0과 동일하지 않으면, y의 값으로 평가하고;
그렇지 않으면, z의 값으로 평가함.
또한, 하기의 관계 연산자들이 적용될 수 있다:
> 초과
>= 이상
< 미만
<= 이하
== 동일
!= 동일하지 않음
또한, 본 명세서에서 사용된 신택스 디스크립터(descriptor)들에서, 하기의 디스크립터들이 적용될 수 있다는 점에 유의해야 한다:
- b(8): 임의의 패턴의 비트 스트링을 갖는 바이트(8 비트). 이러한 디스크립터에 대한 파싱 프로세스는 함수 read_bits(8)의 반환 값에 의해 특정된다.
- f(n): 좌측 비트가 먼저 (좌측에서 우측으로) 기입된 n개의 비트들을 사용하는 고정 패턴 비트 스트링. 이러한 디스크립터에 대한 파싱 프로세스는 함수 readbits(n)의 반환 값에 의해 특정된다.
-u(n): n개의 비트를 사용하는 부호 없는 정수.
-ue(v): 좌측 비트를 먼저 갖는 부호 없는 정수 0-차 Exp-Golomb-코딩된 신택스 요소.
-se(v): 좌측 비트를 먼저 갖는 부호 있는 정수 0-차 Exp-Golomb-코딩된 신택스 요소.
전술된 바와 같이, 비디오 콘텐츠는 일련의 프레임들(또는 픽처들)로 구성된 비디오 시퀀스들을 포함하고, 각각의 비디오 프레임 또는 픽처는 하나 이상의 영역들로 나뉠 수 있다. 코딩된 비디오 시퀀스(coded video sequence, CVS)가 액세스 유닛들의 시퀀스로서 캡슐화(또는 구조화)될 수 있으며, 여기서 각각의 액세스 유닛은 네트워크 추상화 계층(network abstraction layer, NAL) 유닛들로서 구조화된 비디오 데이터를 포함한다. 비트스트림은 하나 이상의 CVS들을 형성하는 NAL 유닛들의 시퀀스를 포함하는 것으로 설명될 수 있다. 다층 확장들은 비디오 프레젠테이션이 기본 계층 및 하나 이상의 추가적인 향상 계층들을 포함할 수 있게 한다는 점에 유의해야 한다. 예를 들어, 기본 계층은 기본 품질 레벨(예를 들어, 고화질 렌더링 및/또는 30 ㎐ 프레임 레이트)을 갖는 비디오 프레젠테이션이 제시될 수 있게 할 수 있고, 향상 계층은 향상된 품질 레벨(예를 들어, 초고화질 렌더링 및/또는 60 ㎐ 프레임 레이트)을 갖는 비디오 프레젠테이션이 제시될 수 있게 할 수 있다. 향상 계층은 기본 계층을 참조함으로써 코딩될 수 있다. 즉, 예를 들어, 향상 계층 내의 픽처는 기본 계층 내의 하나 이상의 픽처들(그의 스케일링된 버전들을 포함함)을 참조함으로써 (예컨대, 인터 예측 기법들을 사용하여) 코딩될 수 있다. 각각의 NAL 유닛은 NAL 유닛이 그와 연관되는 비디오 데이터의 계층을 나타내는 식별자를 포함할 수 있다. 서브 비트스트림 추출은, 컴플라이언트 비트스트림을 수신하는 디바이스가 수신된 비트스트림 내의 데이터를 폐기하고/하거나 수정함으로써 새로운 컴플라이언트 비트스트림을 형성하는 프로세스를 지칭할 수 있다는 점에 유의해야 한다. 예를 들어, 서브 비트스트림 추출은 비디오의 특정 표현(예를 들어, 고품질 표현)에 대응하는 새로운 컴플라이언트 비트스트림을 형성하는 데 사용될 수 있다.
도 2에 예시된 예를 참조하면, Pic3에 포함된 비디오 데이터의 각각의 타일 그룹(즉, 타일 그룹1 및 타일 그룹2)은 NAL 유닛에 캡슐화된 것으로 예시되어 있다. JVET-M1001에서, 비디오 시퀀스, GOP, 픽처, 타일 그룹, 및 CTU 각각은 비디오 코딩 속성들을 설명하는 메타데이터와 연관될 수 있다. JVET-M1001은 비디오 데이터 및/또는 비디오 코딩 속성들을 설명하는 데 사용될 수 있는 파라미터 세트들을 정의한다. JVET-M1001에서, 파라미터 세트들은 특수한 타입의 NAL 유닛으로서 캡슐화될 수 있거나 메시지로서 시그널링될 수 있다. 코딩된 비디오 데이터(예를 들어, 타일 그룹)를 포함하는 NAL 유닛들은 비디오 코딩 계층(Video Coding Layer, VCL) NAL 유닛들로 지칭될 수 있고, 메타데이터(예를 들어, 파라미터 세트들)를 포함하는 NAL 유닛들은 비-VCL NAL 유닛들로 지칭될 수 있다. 또한, JVET-M1001은 보완 향상 정보(supplemental enhancement information, SEI) 메시지들이 시그널링될 수 있게 한다. JVET-M1001에서, SEI 메시지들은 디코딩, 디스플레이 또는 다른 목적들과 관련된 프로세스들을 지원하지만, SEI 메시지들은 디코딩 프로세스에 의해 루마 또는 크로마 샘플들을 구성하는 데 요구되지 않을 수 있다. JVET-M1001에서, SEI 메시지들은 비-VCL NAL 유닛들을 사용하여 비트스트림에서 시그널링될 수 있다. 또한, SEI 메시지들은 비트스트림 내에 존재하는 것 이외의 일부 수단에 의해 전달될 수 있다(즉, 대역외 시그널링될 수 있다).
전술된 바와 같이, 인터 예측 코딩을 위해, 이전에 코딩된 픽처 내의 기준 샘플들은 현재 픽처 내의 비디오 블록들을 코딩하는 데 사용된다. 현재 픽처를 코딩할 때 기준으로서 사용하는 데 이용가능한 이전에 코딩된 픽처들은 기준 픽처들로 지칭된다. 디코딩 순서는 픽처 출력 순서, 즉, 비디오 시퀀스 내에서의 픽처들의 시간적 순서에 대응할 필요가 없다는 점에 유의해야 한다. ITU-T H.265에서, 픽처가 디코딩될 때, 그것은 디코딩된 픽처 버퍼(DPB)(이는 프레임 버퍼, 기준 버퍼, 기준 픽처 버퍼 등으로 지칭될 수 있음)에 저장된다. ITU-T H.265에서, DPB에 저장된 픽처들은, 그들이 출력되었고 더 이상 후속 픽처들을 코딩할 필요가 없을 때, DPB로부터 제거된다. ITU-T H.265에서, 픽처들이 DPB로부터 제거되어야 하는지 여부의 결정은, 슬라이스 헤더를 디코딩한 후에, 즉, 픽처를 디코딩하기 시작할 때, 픽처마다 1회 호출된다. 예를 들어, 도 2를 참조하면, Pic3은 Pic2를 참조하는 것으로 예시되어 있다. 유사하게, Pic4는 Pic1을 참조하는 것으로 예시되어 있다. 도 2와 관련하여, 픽처 수가 디코딩 순서에 대응한다고 가정하면, DPB는 하기와 같이 채워질 것이다: Pic1을 디코딩한 후, DPB는 {Pic1}을 포함할 것이고; Pic2를 디코딩하기 시작할 때, DPB는 {Pic1}을 포함할 것이고; Pic2를 디코딩한 후, DPB는 {Pic1, Pic2}를 포함할 것이고; Pic3을 디코딩하기 시작할 때, DPB는 {Pic1, Pic2}를 포함할 것이다. 이어서, Pic3은 Pic2를 참조하여 디코딩될 것이고, Pic3을 디코딩한 후, DPB는 {Pic1, Pic2, Pic3}을 포함할 것이다. Pic4를 디코딩하기 시작할 때, 픽처들 Pic2 및 Pic3은, 그들이 Pic4(또는 도시되지 않은 임의의 후속 픽처들)를 디코딩하는데 필요하지 않기 때문에, DPB로부터 제거되도록 표식될 것이고, Pic2 및 Pic3이 출력되었다고 가정하면, DPB는 {Pic1}을 포함하도록 업데이트될 것이다. 이어서, Pic4는 Pic1을 참조하여 디코딩될 것이다. DPB로부터 제거하기 위한 픽처들을 표식하는 프로세스는 기준 픽처 세트(reference picture set, RPS) 관리로 지칭될 수 있다.
도 3은 다수의 CVS들을 포함하는 비트스트림의 예를 예시하며, 여기서 CVS는 각자의 액세스 유닛에 포함된 NAL 유닛들에 의해 표현된다. 도 3에 예시된 예에서, 비-VCL NAL 유닛은 각자의 파라미터 세트 NAL 유닛들(즉, 시퀀스 파라미터 세트(Sequence Parameter Set, SPS), 및 픽처 파라미터 세트(Picture Parameter Set, PPS) 유닛들), SEI 메시지 NAL 유닛, 및 액세스 유닛 구분자 NAL 유닛을 포함한다. 전술된 바와 같이, JVET-M1001에서, 비-VCL NAL 유닛들은 각자의 파라미터 세트 NAL 유닛들을 포함한다. 표 1은 JVET-M1001에 제공된 픽처 파라미터 세트 신택스를 예시한다.
[표 1]
Figure pct00003
Figure pct00004
Figure pct00005
표 1과 관련하여, JVET-M1001은 하기의 시맨틱(semantic)들을 제공한다:
pps_pic_parameter_set_id는 다른 신택스 요소들에 의한 참조를 위해 PPS를 식별한다. pps_pic_parameter_set_id의 값은 0 내지 63(이들 값 포함)의 범위 내에 있을 것이다.
pps_seq_parameter_set_id는 활성 SPS에 대한 sps_seq_parameter_set_id의 값을 특정한다. pps_seq_parameter_set_id의 값은 0 내지 15(이들 값 포함)의 범위 내에 있을 것이다.
1과 동일한 single_tile_in_pic_flag는, PPS를 참조하는 각각의 픽처 내에 오로지 하나의 타일만이 있다는 것을 특정한다. 0과 동일한 single_tile_in_pic_flag는, PPS를 참조하는 각각의 픽처 내에 하나 초과의 타일이 있다는 것을 특정한다.
single_tile_in_pic_flag의 값이, CVS 내에서 활성화된 모든 PPS들에 대해 동일해야 한다는 것이 비트스트림 준수 요건이다.
num_tile_columns_minus1 + 1은 픽처를 파티셔닝하는 타일 컬럼(column)들의 수를 특정한다. num_tile_columns_minus1은 0 내지 PicWidthInCtbsY - 1(이들 값 포함)의 범위 내에 있을 것이다. 존재하지 않을 때, num_tile_columns_minus1의 값은 0과 동일한 것으로 추론된다.
num_tile_rows_minus1 + 1은 픽처를 파티셔닝하는 타일 로우(row)들의 수를 특정한다. num_tile_rows_minus1은 0 내지 PicHeightInCtbsY - 1(이들 값 포함)의 범위 내에 있을 것이다. 존재하지 않을 때, num_tile_rows_minus1의 값은 0과 동일한 것으로 추론된다.
변수 NumTilesInPic은 (num_tile_columns_minus1 + 1) * (num_tile_rows_minus1 + 1)과 동일하게 설정된다.
single_tile_in_pic_flag가 0과 동일할 때, NumTilesInPic는 1보다 클 것이다.
1과 동일한 uniform_tile_spacing_flag는, 타일 컬럼 경계들 및 마찬가지로 타일 로우 경계들이 픽처에 걸쳐서 균일하게 분포된다는 것을 특정한다. 0과 동일한 uniform_tile_spacing_flag는, 타일 컬럼 경계들 및 마찬가지로 타일 로우 경계들이 픽처에 걸쳐서 균일하게 분포되지 않지만 신택스 요소들 tile_column_width_minus1[ i ] 및 tile_row_height_minus1[ i ]를 사용하여 명시적으로 시그널링된다는 것을 특정한다. 존재하지 않을 때, uniform_tile_spacing_flag의 값은 1과 동일한 것으로 추론된다.
tile_column_width_minus1[ i ] + 1은 CTB들의 유닛들에서 i-번째 타일 컬럼의 폭을 특정한다.
tile_row_height_minus1[ i ] + 1은 CTB들의 유닛들에서 i-번째 타일 로우의 높이를 특정한다.
하기의 변수들은 CTB 래스터 및 타일 스캐닝 변환 프로세스를 호출함으로써 도출된다:
- CTB들의 유닛들에서 i-번째 타일 컬럼의 폭을 특정하는, 0 내지 num_tile_columns_minus1(이들 값 포함)의 범위 내에 있는 i에 대한 목록 ColWidth[ i ],
- CTB들의 유닛들에서 j-번째 타일 로우의 높이를 특정하는, 0 내지 num_tile_rows_minus1(이들 값 포함)의 범위 내에 있는 j에 대한 목록 RowHeight[ j ],
- CTB들의 유닛들에서 i-번째 타일 컬럼 경계의 위치를 특정하는, 0 내지 num_tile_columns_minus1 + 1(이들 값 포함)의 범위 내에 있는 i에 대한 목록 ColBd[ i ],
- CTB들의 유닛들에서 j-번째 타일 로우 경계의 위치를 특정하는, 0 내지 num_tile_rows_minus1 + 1(이들 값 포함)의 범위 내에 있는 j에 대한 목록 RowBd[ j ],
- 픽처의 CTB 래스터 스캔에서의 CTB 어드레스로부터 타일 스캔에서의 CTB 어드레스로의 변환을 특정하는, 0 내지 PicSizeInCtbsY - 1(이들 값 포함)의 범위 내에 있는 ctbAddrRs에 대한 목록 CtbAddrRsToTs[ ctbAddrRs ],
- 타일 스캔에서의 CTB 어드레스로부터 픽처의 CTB 래스터 스캔에서의 CTB 어드레스로의 변환을 특정하는, 0 내지 PicSizeInCtbsY - 1(이들 값 포함)의 범위 내에 있는 ctbAddrTs에 대한 목록 CtbAddrTsToRs[ ctbAddrTs ],
- 타일 스캔에서의 CTB 어드레스로부터 타일 ID로의 변환을 특정하는, 0 내지 PicSizeInCtbsY - 1(이들 값 포함)의 범위 내에 있는 ctbAddrTs에 대한 목록 TileId[ ctbAddrTs ],
- 타일 인덱스로부터 타일 내의 CTU들의 수로의 변환을 특정하는, 0 내지 NumTilesInPic - 1(이들 값 포함)의 범위 내에 있는 tileIdx에 대한 목록 NumCtusInTile[ tileIdx ],
- 타일 ID로부터 타일 내의 제1 CTB의 타일 스캔에서의 CTB 어드레스로의 변환을 특정하는, 0 내지 NumTilesInPic - 1(이들 값 포함)의 범위 내에 있는 tileIdx에 대한 목록 FirstCtbAddrTs[ tileIdx ],
- 루마 샘플들의 유닛들에서 i-번째 타일 컬럼의 폭을 특정하는, 0 내지 num_tile_columns_minus1(이들 값 포함)의 범위 내에 있는 i에 대한 목록들 ColumnWidthInLumaSamples[ i ],
- 루마 샘플들의 유닛들에서 j-번째 타일 로우의 높이를 특정하는, 0 내지 num_tile_rows_minus1(이들 값 포함)의 범위 내에 있는 j에 대한 목록 RowHeightInLumaSamples[ j ].
0 내지 num_tile_columns_minus1(이들 값 포함)의 범위 내에 있는 i에 대한 ColumnWidthInLumaSamples[ i ], 및 0 내지 num_tile_rows_minus1(이들 값 포함)의 범위 내에 있는 j에 대한 RowHeightInLumaSamples[ j ]의 값들은 모두 0보다 클 것이다.
1과 동일한 single_tile_per_tile_group은 이러한 PPS를 참조하는 각각의 타일 그룹이 하나의 타일을 포함한다는 것을 특정한다. 0과 동일한 single_tile_per_tile_group은 이러한 PPS를 참조하는 타일 그룹이 하나 초과의 타일을 포함할 수 있다는 것을 특정한다.
0과 동일한 rect_tile_group_flag는, 각각의 타일 그룹 내의 타일들이 래스터 스캔 순서로 있고 타일 그룹 정보가 PPS에서 시그널링되지 않는다는 것을 특정한다. 1과 동일한 rect_tile_group_flag는, 각각의 타일 그룹 내의 타일들이 픽처의 직사각형 영역을 커버하고 타일 그룹 정보가 PPS에서 시그널링된다는 것을 특정한다. single_tile_per_tile_group_flag가 1과 동일할 때, rect_tile_group_flag는 1과 동일한 것으로 추론된다.
num_tile_groups_in_pic_minus1 + 1은 PPS를 참조하는 각각의 픽처 내의 타일 그룹들의 수를 특정한다. num_tile_groups_in_pic_minus1의 값은 0 내지 NumTilesInPic- 1(이들 값 포함)의 범위 내에 있을 것이다. 존재하지 않고 single_tile_per_tile_group_fla가 1과 동일할 때, num_tile_groups_in_pic_minus1의 값은 NumTilesInPic - 1과 동일한 것으로 추론된다.
top_left_tile_idx[ i ]는 i-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 타일 인덱스를 특정한다. top_left_tile_idx[ i ]의 값은 j와 동일하지 않은 임의의 i에 대해 top_left_tile_idx[ j ]의 값과 동일하지 않을 것이다. 존재하지 않을 때, top_left_tile_idx[ i ]의 값은 i와 동일한 것으로 추론된다. top_left_tile_idx[ i ] 신택스 요소의 길이는 Ceil(Log2(NumTilesInPic)개의 비트들이다.
bottom_right_tile_idx[ i ]는 i-번째 타일 그룹의 하부 우측 코너에 위치된 타일의 타일 인덱스를 특정한다. single_tile_per_tile_group_flag가 1과 동일할 때, bottom_right_tile_idx[ i ]는 top_left_tile_idx[ i ]와 동일한 것으로 추론된다. bottom_right_tile_idx[ i ] 신택스 요소의 길이는 Ceil(Log2(NumTilesInPic)개의 비트들이다.
임의의 특정 타일이 하나의 타일 그룹에만 포함되어야 한다는 것이 비트스트림 준수 요건이다.
i-번째 타일 그룹 내의 타일들의 수를 특정하는 변수 NumTilesInTileGroup[ i ] 및 관련 변수들은 하기와 같이 도출된다:
Figure pct00006
1과 동일한 loop_filter_across_tiles_enabled_flag는 루프 내 필터링 동작들이 PPS를 참조하는 픽처들 내의 타일 경계들에 걸쳐 수행될 수 있다는 것을 특정한다. 0과 동일한 loop_filter_across_tiles_enabled_flag는 루프 내 필터링 동작들이 PPS를 참조하는 픽처들 내의 타일 경계들에 걸쳐 수행되지 않는다는 것을 특정한다. 루프 내 필터링 동작들은 디블록킹 필터, 샘플 적응적 오프셋 필터, 적응적 루프 필터 동작들을 포함한다. 존재하지 않을 때, loop_filter_across_tiles_enabled_flag의 값은 1과 동일한 것으로 추론된다.
1과 동일한 loop_filter_across_tile_groups_enabled_flag는 루프 내 필터링 동작들이 PPS를 참조하는 픽처들 내의 타일 그룹 경계들에 걸쳐 수행될 수 있다는 것을 특정한다. 0과 동일한 loop_filter_across_tile_group_enabled_flag는 루프 내 필터링 동작들이 PPS를 참조하는 픽처들 내의 타일 그룹 경계들에 걸쳐 수행되지 않는다는 것을 특정한다. 루프 내 필터링 동작들은 디블록킹 필터, 샘플 적응적 오프셋 필터, 적응적 루프 필터 동작들을 포함한다. 존재하지 않을 때, loop_filter_across_tile_groups_enabled_flag의 값은 0과 동일한 것으로 추론된다.
1과 동일한 signalled_tile_group_id_flag는 각각의 타일 그룹에 대한 타일 그룹 ID가 시그널링된다는 것을 특정한다. 0과 동일한 signalled_tile_group_index_flag는 타일 그룹 ID들이 시그널링되지 않는다는 것을 특정한다. rect_tile_group_flag가 0과 동일할 때, signalled_tile_group_index_flag의 값은 0과 동일한 것으로 추론된다.
signalled_tile_group_id_length_minus1 + 1은, 존재 시의 신택스 요소 tile_group_id[ i ], 및 타일 그룹 헤더들 내의 신택스 요소 tile_group_address를 표현하는 데 사용되는 비트들의 수를 특정한다. signalled_tile_group_index_length_minus1의 값은 0 내지 15(이들 값 포함)의 범위 내에 있을 것이다. 존재하지 않을 때, signalled_tile_group_index_length_minus1의 값은 Ceil(Log2(num_tile_groups_in_pic_minus1 + 1)) - 1과 동일한 것으로 추론된다.
tile_group_id[ i ]는 i-번째 타일 그룹의 타일 그룹 ID를 특정한다. tile_group_id[ i ] 신택스 요소의 길이는 tile_set_id_length_minus1 + 1개의 비트들이다. 존재하지 않을 때, tile_group_id[ i ]의 값은 0 내지 num_tile_groups_in_pic_minus1(이들 값 포함)의 범위 내의 각각의 i에 대해 i와 동일한 것으로 추론된다.
num_ref_idx_default_active_minus1[ i ] + 1은, i가 0과 동일할 때, P 또는 B 타일 그룹들에 대한 변수 NumRefIdxActive[ 0 ]의 추론된 값을 특정하고, 이때 num_ref_idx_active_override_flag는 0과 동일하며, i가 1과 동일할 때, B 타일 그룹들에 대한 NumRefIdxActive[ 1 ]의 추론된 값을 특정하고, 이때 num_ref_idx_active_override_flag는 0과 동일하다. num_ref_idx_default_active_minus1[ i ]의 값은 0 내지 14(이들 값 포함)의 범위 내에 있을 것이다.
0과 동일한 rpll_idx_present_flag는 ref_pic_list_sps_flag[ 1 ] 및 ref_pic_list_idx[ 1 ]이 타일 그룹 헤더들 내에 존재하지 않는다는 것을 특정한다. 1과 동일한 rpll_idx_present_flag는 ref_pic_list_sps_flag[ 1 ] 및 ref_pic_list_idx[ 1 ]이 타일 그룹 헤더들 내에 존재할 수 있다는 것을 특정한다.
Init_qp_minus26 + 26은 PPS를 참조하는 각각의 타일 그룹에 대한 TileGroupQpy의 초기 값을 특정한다. TileGroupQpy의 초기 값은, tile_group_qp_delta의 0이 아닌 값이 디코딩될 때, 타일 그룹 계층에서 수정된다. init_qp_minus26의 값은 -(26 + QpBdOffsety) 내지 +37(이들 값 포함)의 범위 내에 있을 것이다.
1과 동일한 transform_skip_enabled_flag는, transform_skip_flag가 변환 유닛 신택스에 존재할 수 있다는 것을 특정한다. 0과 동일한 transform_skip_enabled_flag는 transform_skip_flag가 변환 유닛 신택스에 존재하지 않는다는 것을 특정한다.
log2_transform_skip_max_size_minus2는 변환 스킵에 사용되는 최대 블록 크기를 특정하고, 0 내지 3의 범위 내에 있을 것이다.
존재하지 않을 때, log2_transform_skip_max_size_minus2의 값은 0과 동일한 것으로 추론된다.
변수 MaxTsSize는 1 << (log2_transform_skip_max_size_minus2 + 2)과 동일하게 설정된다.
1과 동일한 cu_qp_delta_enabled_flag는, diff_cu_qp_delta_depth 신택스 요소가 PPS 내에 존재한다는 것 및 cu_qp_delta_abs가 변환 유닛 신택스에 존재할 수 있다는 것을 특정한다. 0과 동일한 cu_qp_delta_enabled_flag는, diff_cu_qp_delta_depth 신택스 요소가 PPS 내에 존재하지 않는다는 것 및 cu_qp_delta_abs가 변환 유닛 신택스에 존재하지 않는다는 것을 특정한다.
diff_cu_qp_delta_depth는 cu_qp_delta_abs 및 cu_qp_delta_sign_flag를 전달하는 최대 코딩 트리 깊이의 코딩 단위들과 최소 코딩 트리 깊이의 코딩 단위들 사이의 코딩 트리 깊이 차이를 특정한다. diff_cu_qp_delta_depth의 값 범위는 하기와 같이 특정된다:
- tile_group_type이 1과 동일한 경우, diff_cu_qp_delta_depth의 값은 0 내지 log2_ctu_size_minus2 - log2_min_qt_size_intra_tile_group_minus2 + MaxMttDepthY(이들 값 포함)의 범위 내에 있을 것이다.
- 그렇지 않은 경우(tile_group_type이 1과 동일하지 않음), diff_cu_qp_delta_depth의 값은 0 내지 log2_ctu_size_minus2 - log2_min_qt_size_inter_tile_group_minus2 + MaxMttDepthY(이들 값 포함)의 범위 내에 있을 것이다.
존재하지 않을 때, diff_cu_qp_delta_depth의 값은 0과 동일한 것으로 추론된다.
pps_cb_qp_offsetpps_cr_qp_offset는 Qp'cb 및 Qp'cr을 각각 도출하는 데 사용되는 루마 양자화 파라미터 Qp'y에 대한 오프셋들을 특정한다. pps_cb_qp_offset 및 pps_cr_qp_offset의 값들은 -12 내지 +12(이들 값 포함)의 범위 내에 있을 것이다. ChromaArrayType이 0과 동일할 때, pps_cb_qp_offset 및 pps_cr_qp_offset는 디코딩 프로세스에서 사용되지 않고, 디코더들은 그들의 값을 무시할 것이다.
1과 동일한 pps_tile_group_chroma_qp_offsets_present_flag는, tile_group_cb_qp_offset 및 tile_group_cr_qp_offset 신택스 요소들이 연관된 타일 그룹 헤더들 내에 존재한다는 것을 나타낸다.
0과 동일한 pps_tile_group_chroma_qp_offsets_present_flag는, 이러한 신택스 요소들이 연관된 타일 그룹 헤더들 내에 존재하지 않는다는 것을 나타낸다. ChromaArrayType이 0과 동일할 때, pps_tile_group_chroma_qp_offsets_present_flag는 0과 동일할 것이다.
0과 동일한 weighted_pred_flag는, 가중된 예측이 P 타일 그룹들에 적용되지 않는다는 것을 특정한다. 1과 동일한 weighted_pred_flag는, 가중된 예측이 P 타일 그룹들에 적용된다는 것을 특정한다.
0과 동일한 weighted_bipred_flag는, 디폴트 가중된 예측이 B 타일 그룹들에 적용된다는 것을 특정한다. 1과 동일한 weighted_bipred_flag는, 가중된 예측이 B 타일 그룹들에 적용된다는 것을 특정한다.
1과 동일한 deblocking_filter_controljpresent_flag는 PPS 내의 디블록킹 필터 제어 신택스 요소들의 존재를 특정한다. 0과 동일한 deblocking_filter_control_present_flag는 PPS 내의 디블록킹 필터 제어 신택스 요소들의 부재를 특정한다.
1과 동일한 deblocking_filter_override_enabled_flag는 PPS를 참조하는 픽처들에 대한 타일그룹 헤더들 내의 deblocking_filter_override_flag의 존재를 특정한다. 0과 동일한 deblocking_filter_override_enabled_flag는 PPS를 참조하는 픽처들에 대한 타일 그룹 헤더들 내의 deblocking_filter_override_flag의 부재를 특정한다. 존재하지 않을 때, deblocking_filter_override_enabled_flag의 값은 0과 동일한 것으로 추론된다.
1과 동일한 pps_deblocking_filter_disabled_flag는, 디블록킹 필터의 동작이, tile_group_deblocking_filter_disabled_flag가 존재하지 않는 PPS를 참조하는 타일 그룹들에 대해 적용되지 않는다는 것을 특정한다.
0과 동일한 pps_deblocking_filter_disabled_flag는, 디블록킹 필터의 동작이, tile_group_deblocking_filter_disabled_flag가 존재하지 않는 PPS를 참조하는 타일 그룹들에 대해 적용된다는 것을 특정한다. 존재하지 않을 때, pps_deblocking_filter_disabled_flag의 값은 0과 동일한 것으로 추론된다.
pps_beta_offset_div2pps_tc_offset_div2는, 디폴트 디블록킹 파라미터 오프셋들이 PPS를 참조하는 타일 그룹들의 타일 그룹 헤더들 내에 존재하는 디블록킹 파라미터 오프셋들에 의해 오버라이딩(overriding)되지 않는 한, PPS를 참조하는 타일 그룹들에 대해 적용되는 6 및 tC에 대한 디폴트 디블록킹 파라미터 오프셋들(2로 나뉨)을 특정한다. pps_beta_offset_div2 및 pps_tc_offset_div2의 값들 둘 모두는 -6 내지 6(이들 값 포함)의 범위 내에 있을 것이다. 존재하지 않을 때, pps_beta_offset_div2 및 pps_tc_offset_div2의 값은 0과 동일한 것으로 추론된다.
0과 동일한 pps_extension_flag는, pps_extension_data_flag 신택스 요소들이 PPS RBSP(Raw Byte Sequence Payload) 신택스 구조에 존재하지 않는다는 것을 특정한다. 1과 동일한 pps_extension_flag는, PPS RBSP 신택스 구조에 존재하는 pps_extension_data_flag 신택스 요소들이 있다는 것을 특정한다.
pps_extension_data_flag는 임의의 값을 가질 수 있다. 그것의 존재 및 값은 이러한 버전의 본 명세서에 특정된 프로파일들에 대한 디코더 부합에 영향을 주지 않는다. 이러한 버전의 본 명세서에 부합하는 디코더들은 모든 pps_extension_data_flag 신택스 요소들을 무시할 것이다.
추가로 전술된 바와 같이, JVET-M1001에서, 타일 그룹은 비디오 코딩 속성들을 설명하는 메타데이터와 연관될 수 있다. 표 2는 JVET-M1001에 제공된 그러한 타일 그룹 헤더 신택스를 예시한다.
[표 2]
Figure pct00007
Figure pct00008
Figure pct00009
Figure pct00010
표 2와 관련하여, JVET-M1001은 하기의 시맨틱들을 제공한다:
존재할 때, 타일 그룹 헤더 신택스 요소들 tile_group_pic_parameter_set_id 및 tile_group_pic_order_cnt_lsb의 각각의 값은 코딩된 픽처의 모든 타일 그룹 헤더들에서 동일할 것이다.
tile_group_pic_parameter_set_id는 사용 중인 PPS에 대한 pps_pic_parameter_set_id의 값을 특정한다. tile_group_pic_parameter_set_id의 값은 0 내지 63(이들 값 포함)의 범위 내에 있을 것이다.
현재 픽처의 TemporalId의 값이 tile_group_pic_parameter_set_id와 동일한 pps_pic_parameter_set_id를 갖는 PPS의 TemporalId의 값 이상이어야 할 것이라는 것이 비트스트림 준수 요건이다.
tile_group_address는 타일 그룹 내의 제1 타일의 타일 어드레스를 특정한다. 존재하지 않을 때, tile_group_address의 값은 0과 동일한 것으로 추론된다.
rect_tile_group_flag가 0과 동일한 경우, 하기가 적용된다:
- 타일 어드레스는 하기와 같이 특정된 타일 ID이다:
타일 스캔에서의 CTB 어드레스로부터 타일 ID로의 변환을 특정하는, 0 내지 PicSizelnCtbsY - 1(이들 값 포함)의 범위 내에 있는 ctbAddrTs에 대한 목록 Tileld[ ctbAddrTs ]가 하기와 같이 도출된다:
Figure pct00011
- tile_group_address의 길이는 Ceil(Log2 (NumTilesInPic))개의 비트들이다.
- tile_group_address의 값은 0 내지 NumTilesInPic -1(이들 값 포함)의 범위 내에 있을 것이다.
그렇지 않은 경우(rect_tile_group_flag가 1과 동일함), 하기가 적용된다:
- 타일 어드레스는 타일 그룹의 타일 그룹 ID이다.
- tile_group_address의 길이는 signalled_tile_group_index_length minus+ 1개의 비트들이다.
- signalled_tile_group_id_flag가 0과 동일한 경우, tile_group_address의 값은 0 내지 num_tile_groups_in_pic_minus1(이들 값 포함)의 범위 내에 있을 것이다. 그렇지 않은 경우, tile_group_address의 값은 0 내지 2(signalled_tile_group_index_length_minus1 + 1) - 1(이들 값 포함)의 범위 내에 있을 것이다.
하기의 제약들이 적용되어야 한다는 것이 비트스트림 준수 요건이다:
- tile_group_address의 값은 동일한 코딩된 픽처의 임의의 다른 코딩된 타일 그룹 NAL 유닛의 tile_group_address의 값과 동일하지 않을 것이다.
- 픽처의 타일 그룹들은 그들의 tile_group_address 값들의 오름차순에 있을 것이다.
- 픽처의 타일 그룹들의 모양들은, 각각의 타일이, 디코딩될 때, 픽처 경계로 이루어지거나 이전에 디코딩된 타일(들)의 경계들로 이루어진 그것의 전체 좌측 경계 및 전체 상부 경계를 갖도록 될 것이다.
num_tiles_in_tile_group_minus1은, 존재할 때, tile group - 1 내의 타일들의 수를 특정한다. num_tiles_in_tile_group_minus1의 값은 0 내지 NumTilesInPic- 1(이들 값 포함)의 범위 내에 있을 것이다. 존재하지 않을 때, num_tiles_in_tile_group_minus1의 값은 0과 동일한 것으로 추론된다.
현재 타일 그룹 내의 타일들의 수를 특정하는 변수 NumTilesInCurrTileGroup, 및 i-번째 타일 그룹 내의 i-번째 타일의 타일 인덱스를 특정하는 변수 TgTileIdx[ i ]는 하기와 같이 도출된다:
Figure pct00012
tile_group_type은 표 3에 따라 타일 그룹의 코딩 타입을 특정한다.
[표 3]
Figure pct00013
nal_unit_type이 IRAP_NUT와 동일할 때, 즉 픽처가 IRAP 픽처일 때, tile_group_type은 2와 동일할 것이다.
tile_group_pic_order_cnt_lsb는 현재 픽처에 대한 픽처 순서 카운트 모듈로 MaxPicOrderCntLsb를 특정한다. tile_group_pic_order_cnt_lsb 신택스 요소의 길이는 log2_max_pic_order_cnt_lsb_minus4 + 4개의 비트들이다. tile_group_pic_order_cnt_lsb의 값은 0 내지 MaxPicOrderCntLsb - 1(이들 값 포함)의 범위 내에 있을 것이다.
1과 동일한 ref_pic_list_sps_flag[ i ]는, 현재 픽처의 기준 픽처 목록 i가 ref_pic_list_struct(listIdx, rplsIdx) 신택스 구조들 중 하나에 기초하여 도출된다는 것을 특정하며, 이때 listIdx는 활성 SPS 내의 i와 동일하다. 0과 동일한 ref_pic_list_sps_flag [ i ]는, 현재 픽처의 기준 픽처 목록 i가 ref_pic_list_struct(listIdx, rplsIdx) 신택스 구조에 기초하여 도출된다는 것을 특정하며, 이때 listIdx는 현재 픽처의 타일 그룹 헤더들 내에 직접 포함되어 있는 i와 동일하다. num_ref_pic_lists_in_sps[ i ]가 0과 동일할 때, ref_pic_list_sps_flag[ i ]의 값은 0과 동일한 것으로 추론된다. rpl1_idx_present_flag가 0과 동일할 때, ref_pic_list_sps_flag[ 1 ]의 값은 ref_pic_list_sps_flag[ 0 ]과 동일한 것으로 추론된다.
ref_pic_list_idx[ i ]는, ref_pic_list_struct(listIdx, rplsIdx) 신택스 구조들(이때 listIdx는 활성 SPS 내에 포함된 i와 동일함)의 목록 중에서, ref_pic_list_struet(listIdx, rplsIdx) 신택스 구조(이때 listIdx는 현재 픽처의 기준 픽처 목록 i의 도출에 사용되는 i와 동일함)의 인덱스를 특정한다. 신택스 요소 rcf_pic_list_idx [ i ]는 Ceil(Log2(num_ref_pic_lists_in_sps[ i ]))개의 비트들로 표현된다. 존재하지 않을 때, ref_pic_list_idx[ i ]의 값은 0과 동일한 것으로 추론된다. ref_pic_list_idx[ i ]의 값은 0 내지 num_ref_pic_lists_in_sps[ i ] - 1(이들 값 포함)의 범위 내에 있을 것이다. ref_pic_list_sps_flag[ i ]가 1과 동일하고 num_ref_pic_lists_in_sps[ i ]가 1과 동일할 때, ref_pic_list_idx[ i ]의 값은 0과 동일한 것으로 추론된다. ref_pic_list_sps_flag[ i ]가 1과 동일하고 rpl1_idx_present_flag가 0과 동일할 때, ref_pic_list_idx[ 1 ]의 값은 ref_pic_list_idx[ 0 ]과 동일한 것으로 추론된다.
변수 RplsIdx[ i ]는 하기와 같이 도출된다:
RplsIdx[ i ] = ref_pic_list_sps_flag[ i ] ? ref_pic_list_idx[ i ] : num_ref_pic_lists in sps[ i ]
1과 동일한 delta_poc_msb_present_flag[ i ][ j ]는 delta_poc_msb_cycle_lt[ i ][ j ]가 존재한다는 것을 특정한다. 0과 동일한 delta_poc_msb_present_flag[ i ][ j ]는 delta_poc_msb_cycle_lt[ i ][ j ]가 존재하지 않는다는 것을 특정한다.
prevTid0Pic를, 0과 동일한 TemporalId를 갖고 RASL(random access skipped leading) 또는 RADL(random access decodable leading) 픽처가 아닌 디코딩 순서에서의 이전 픽처라고 하자. setOfPrevPocVals를 하기로 구성된 세트라고 하자:
- prevTid0Pic의 PicOrderCntVal,
- prevTid0Pic의 RefPicList[ 0 ] 내의 엔트리들 및 RefPicList[ 1 ] 내의 엔트리들에 의해 참조되는 각각의 픽처의 PicOrderCntVal,
- 디코딩 순서에서 prevTid0Pic을 뒤따르고 디코딩 순서에서 현재 픽처에 선행하는 각각의 픽처의 PicOrderCntVal.
값 모듈로 MaxPicOrderCntLsb가 poc_lsb_lt[ i ][ RplsIdxt[ i ] ][ j ]와 동일한 하나 초과의 값이 setOfPrevPocVals에 있을 때, delta_poc_msb_present_flag[ i ] [ j ]의 값은 1과 동일할 것이다.
delta_poc_msb_cycle_lt[ i ] [ j ]는 하기와 같이 변수 FullPocLt[ i ] [ j ]의 값을 특정한다:
Figure pct00014
delta_poc_msb_cycle_lt[ i ][ j ]의 값은 0 내지 2(32-iog2_max_pic_order_cnt_lsb_minus4-4)(이들 값 포함)의 범위 내에 있을 것이다. 존재하지 않을 때, delta_poc_msb_cycle_lt[ i ][ j ]의 값은 0과 동일한 것으로 추론된다.
1과 동일한 num_ref_idx_active_override_flag는, 신택스 요소 num_ref_idx_active_minus1[ 0 ]이 P 및 B 타일 그룹들에 대해 존재한다는 것 및 신택스 요소 num_ref_idx_active_minus1[ 1 ]이 B 타일 그룹들에 대해 존재한다는 것을 특정한다. 0과 동일한 num_ref_idx_active_override_flag는, 신택스 요소들 num_ref_idx_active_minus 1 [ 0 ] 및 num_ref_idx_active_minus1[ 1 ]이 존재하지 않는다는 것을 특정한다.
num_ref_idx_active_minus1[ i ]는 하기에 특정된 바와 같이 변수 NumRefIdxActive[ i ]의 도출에 사용된다. num_ref_idx_active_minus1[ i ]의 값은 0 내지 14(이들 값 포함)의 범위 내에 있을 것이다.
i가 0 또는 1과 동일한 경우, 현재 타일 그룹이 B 타일 그룹이고 num_ref_idx_active_override_flag가 1과 동일하고 num_ref_idx_active_minus1[ i ]가 존재하지 않을 때, num_ref_idx_active_minus1[ i ]는 0과 동일한 것으로 추론된다.
현재 타일 그룹이 P 타일 그룹이고 num_ref_idx_active_override_flag가 1과 동일하고 num_ref_idx_active_minus1[ 0 ]이 존재하지 않을 때, num_ref_idx_active_minus1[ 0 ]은 0과 동일한 것으로 추론된다.
변수 NumRefIdxActive[ i ]는 하기와 같이 도출된다:
Figure pct00015
NumRefIdxActive [ i ] - 1의 값은 타일 그룹을 디코딩하는 데 사용될 수 있는 기준 픽처 목록 i에 대한 최대 기준 인덱스를 특정한다. NumRefIdxActive[ i ]의 값이 0과 동일할 때, 기준 픽처 목록 i에 대한 기준 인덱스가 타일 그룹을 디코딩하는 데 사용되지 않을 수 있다.
현재 디코딩된 픽처가 현재 타일 그룹에 대한 유일한 기준 픽처인 것을 특정하는, 변수 CurrPicIsOnlyRef는 하기와 같이 도출된다:
CurrPicIsOnlyRef = sps_cpr_enabled_flag && (tile_group_type == P) && (num_ref_idx_active_minus1[ 0 ] ==0)
1과 동일한 partition_constraints_override_flag는, 파티션 제약 파라미터들이 타일 그룹 헤더 내에 존재한다는 것을 특정한다. 0과 동일한 partition_constraints_override_flag는, 파티션 제약 파라미터들이 타일 그룹 헤더 내에 존재하지 않는다는 것을 특정한다. 존재하지 않을 때, partition_constraints_override_flag의 값은 0과 동일한 것으로 추론된다.
tile_group_log2_diff_min_qt_min_cb_luma는, CTU를 쿼드트리 분할하여 생성된 루마 리프 블록의 루마 샘플들에서의 최소 크기의 밑이 2인 로그와 현재 타일 그룹에서의 루마 CU들에 대한 루마 샘플들에서의 최소 코딩 블록 크기의 밑이 2인 로그 사이의 차이를 특정한다. tile_group_log2_diff_min_qt_min_cb_luma의 값은 0 내지 CtbLog2SizeY - MinCbLog2SizeY(이들 값 포함)의 범위 내에 있을 것이다. 존재하지 않을 때, tile_group_log2_diff_min_qt_min_cb_luma의 값은 하기와 같이 추론된다:
- tile_group_type이 2(I)와 동일한 경우, tile_group_log2_diff_min_qt_min_cb_luma의 값은 sps_log2_diff_min_qt_min_cb_intra_tile_group_luma과 동일한 것으로 추론된다.
- 그렇지 않은 경우(tile_group_type이 0(B) 또는 1(P)과 동일함), tile_group_log2_diff_min_qt_min_cb_luma의 값은 sps_log2_diff_min_qt_min_cb_inter_tile_group과 동일한 것으로 추론된다.
tile_group_max_mtt_hierarchy_depth_luma는 현재 타일 그룹에서 쿼드트리 리프를 멀티 타입 트리 분할하여 생성되는 코딩 단위들에 대한 최대 계층구조 깊이를 특정한다. tile_group_max_mtt_hierarchy_depth_luma의 값은 0 내지 CtbLog2SizeY - MinCbLog2SizeY(이들 값 포함)의 범위 내에 있을 것이다. 존재하지 않을 때, tile_group_max_mtt_hierarchy_depth_luma의 값은 하기와 같이 추론된다:
- tile_group_type이 2(I)와 동일한 경우, tile_group_max_mtt_hierarchy_depth_luma의 값은 sps_max_mtt_hierarchy_depth_intra_tile_group_luma와 동일한 것으로 추론된다.
- 그렇지 않은 경우(tile_group_type이 0(B) 또는 1(P)과 동일함), tile_group_max_mtt_hierarchy_depth_luma의 값은 sps_max_mtt_hierarchy_depth_inter_tile_group과 동일한 것으로 추론된다.
tile_group_log2_diff_max_bt_min_qt_luma는, 이진 분할을 사용하여 분할될 수 있는 루마 코딩 블록의 루마 샘플들에서의 최대 크기(폭 또는 높이)의 밑이 2인 로그와 현재 타일 그룹에서 CTU를 쿼드트리 분할하여 생성된 루마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 사이의 차이를 특정한다. tile_group_log2_diff_max_bt_min_qt_luma의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeY(이들 값 포함)의 범위 내에 있을 것이다. 존재하지 않을 때, tile_group_log2_diff_max_bt_min_qt_luma의 값은 하기와 같이 추론된다:
- tile_group_type이 2(I)와 동일한 경우, tile_group_log2_diff_max_bt_min_qt_luma의 값은 sps_log2_diff_max_bt_min_qt_intra_tile_group_luma과 동일한 것으로 추론된다.
- 그렇지 않은 경우(tile_group_type이 0(B) 또는 1(P)과 동일함), tile_group_log2_diff_max_bt_min_qt_luma의 값은 sps_log2_diff_max_bt_min_qt_inter_tile_group과 동일한 것으로 추론된다.
tile_group_Iog2_diff_max_tt_min_qt_Iuma는, 삼진 분할을 사용하여 분할될 수 있는 루마 코딩 블록의 루마 샘플들에서의 최대 크기(폭 또는 높이)의 밑이 2인 로그와 현재 타일 그룹에서 CTU를 쿼드트리 분할하여 생성된 루마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 사이의 차이를 특정한다. tile_group_log2_diff_max_tt_min_qt_luma의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeY(이들 값 포함)의 범위 내에 있을 것이다. 존재하지 않을 때, tile_group_log2_diff_max_tt_min_qt_luma의 값은 하기와 같이 추론된다:
- tile_group_type가 2(I)와 동일한 경우, tile_group_log2_diff_max_tt_min_qt_luma의 값은 sps_log2_diff_max_tt_min_qt_intra_tile_group_luma과 동일한 것으로 추론된다.
- 그렇지 않은 경우(tile_group_type이 0(B) 또는 1(P)과 동일함), tile_group_log2_diff_max_tt_min_qt_luma의 값은 sps_log2_diff_max_tt_min_qt_inter_tile_group과 동일한 것으로 추론된다.
tile_group_log2_diff_min_qt_min_cb_chroma는, treeType이 DUAL_TREE_CHROMA와 동일한 크로마 CTU를 쿼드트리 분할하여 생성된 크로마 리프 블록의 루마 샘플들에서의 최소 크기의 밑이 2인 로그와 현재 타일 그룹에서 treeType이 DUAL_TREE_CHROMA와 동일한 크로마 CU들에 대한 루마 샘플들에서의 최소 코딩 블록 크기의 밑이 2인 로그 사이의 차이를 특정한다. tile_group_log2_diff_min_qt_min_cb_chroma의 값은 0 내지 CtbLog2SizeY - MinCbLog2SizeY(이들 값 포함)의 범위 내에 있을 것이다. 존재하지 않을 때, tile_group_log2_diff_min_qt_min_cb_chroma의 값은 sps_log2_diff_min_qt_min_cb_intra_tile_group_chroma와 동일한 것으로 추론된다.
tile_group_max_mtt_hierarchy_depth_chroma는 현재 타일 그룹에서 treeType이 DUAL_TREE_CHROMA와 동일한 쿼드트리 리프를 멀티 타입 트리 분할하여 생성되는 코딩 단위들에 대한 최대 계층구조 깊이를 특정한다. tile_group_max_mtt_hierarchy_depth_chroma의 값은 0 내지 CtbLog2SizeY - MinCbLog2SizeY(이들 값 포함)의 범위 내에 있을 것이다. 존재하지 않을 때, tile_group_max_mtt_hierarchy_depth_chroma의 값은 sps_max_mtt_hierarchy_depth_intra_tile_groups_chroma와 동일한 것으로 추론된다.
tile_group_log2_diff_max_bt_min_qt_chroma는, 이진 분할을 사용하여 분할될 수 있는 크로마 코딩 블록의 루마 샘플들에서의 최대 크기(폭 또는 높이)의 밑이 2인 로그와 현재 타일 그룹에서 treeType이 DUAL_TREE_CHROMA와 동일한 크로마 CTU를 쿼드트리 분할하여 생성된 크로마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 사이의 차이를 특정한다. tile_group_log2_diff_max_bt_min_qt_chroma의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeC(이들 값 포함)의 범위 내에 있을 것이다. 존재하지 않을 때, tile_group_log2_diff_max_bt_min_qt_chroma의 값은 sps_log2_diff_max_bt_min_qt_intra_tile_group_chroma와 동일한 것으로 추론된다.
tile_group_log2_diff_max_tt_min_qt_chroma는, 삼진 분할을 사용하여 분할될 수 있는 크로마 코딩 블록의 루마 샘플들에서의 최대 크기(폭 또는 높이)의 밑이 2인 로그와 현재 타일 그룹에서 treeType이 DUAL_TREE_CHROMA와 동일한 크로마 CTU를 쿼드트리 분할하여 생성된 크로마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 사이의 차이를 특정한다. tile_group_log2_diff_max_tt_min_qt_chroma의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeC(이들 값 포함)의 범위 내에 있을 것이다. 존재하지 않을 때, tile_group_log2_diff_max_tt_min_qt_chroma의 값은 sps_log2_diff_max_tt_min_qt_intra_tile_group_chroma와 동일한 것으로 추론된다.
변수들 MinQtLog2SizeY, MinQtLog2SizeC, MinQtSizeY, MinQtSizeC, MaxBtSizeY, MaxBtSizeC, MinBtSizeY, MaxTtSizeY, MaxTtSizeC, MinTtSizeY, MaxMttDepthY, 및 MaxMttDepthC는 하기와 같이 도출된다:
MinQtLog2SizeY =
MinCbLog2SizeY + tile_group_log2_diff_min_qt_min_cb_luma
MinQtLog2SizeC =
MinCbLog2SizeY + tile_jgroup_log2_diff_min_qt_min_cb_chroma
MinQtSizeY = 1 << MinQtLog2SizeY
MinQtSizeC = 1 << MinQtLog2SizeC MaxBtSizeY =
1 << (MinQtLog2SizeY + tile_group_log2_diff_max_bt_min_qt_luma) MaxBtSizeC =
1 << (MinQtLog2SizeC + tile_group_log2_diff_max_bt_min_qt_chroma) MinBtSizeY = 1 << MinCbLog2SizeY
MaxTtSizeY =
1 << (MinQtLog2SizeY + tile_group_log2_diff_max_tt_min_qt_luma) MaxTtSizeC =
1 << (MinQtLog2SizeC + tile_group_log2_diff_max_tt_min_qt_chroma) MinTtSizeY = 1 << MinCbLog2SizeY
MaxMttDepthY = tile_group_max_mtt_hierarchy_depth_luma
MaxMttDepthC = tile_group_max_mtt_hierarchy_depth_chroma
tile_group_temporal_mvp_enabled_flag는 시간 모션 벡터 예측자들이 인터 예측에 사용될 수 있는지 여부를 특정한다. tile_group_temporal_mvp_enabled_flag가 0과 동일한 경우, 현재 픽처의 신택스 요소들은 어떠한 시간 모션 벡터 예측자도 현재 픽처의 디코딩에 사용되지 않도록 제약될 것이다. 그렇지 않은 경우(tile_group_temporal_mvp_enabled_flag가 1과 동일함), 시간 모션 벡터 예측자들이 현재 픽처의 디코딩에 사용될 수 있다. 존재하지 않을 때, tile_group_temporal_mvp_enabled_flag의 값은 0과 동일한 것으로 추론된다.
1과 동일한 mvd_l1_zero_flag는 mvd_coding(x0, y0, 1) 신택스 구조가 파싱되지 않고 compIdx = 0..1에 대해 MvdL1[ x0 ][ y0 ][ compIdx ]가 0과 동일하게 설정됨을 나타낸다. 0과 동일한 mvd_l1_zero_flag는 mvd_coding(x0, y0, 1) 신택스 구조가 파싱됨을 나타낸다.
1과 동일한 collocated_from_10_flag는 시간 모션 벡터 예측에 사용되는 공동위치된 픽처가 기준 픽처 목록 0으로부터 도출된다는 것을 특정한다. 0과 동일한 collocated_from_10_flag는 시간 모션 벡터 예측에 사용되는 공동위치된 픽처가 기준 픽처 목록 1로부터 도출된다는 것을 특정한다. collocated_from_10_flag가 존재하지 않을 때, 그것은 1과 동일한 것으로 추론된다.
six_minus_max_num_merge_cand는 6으로부터 감산된 타일 그룹에서 지원되는 병합 모션 벡터 예측(motion vector prediction, MVP) 후보들의 최대 수를 특정한다. 병합 MVP 후보들의 최대 수 MaxNumMergeCand는 하기와 같이 도출된다:
MaxNumMergeCand = 6 - six_minus_max_num_merge_cand
MaxNumMergeCand의 값은 1 내지 6(이들 값 포함)의 범위 내에 있을 것이다.
five_minus_max_num_subblock_merge_cand는 5로부터 감산된 타일 그룹에서 지원되는 서브블록 기반 병합 모션 벡터 예측(MVP) 후보들의 최대 수를 특정한다. five_minus_max_num_subblock_merge_cand가 존재하지 않을 때, 그것은 5 - sps_sbtmvp_enabled_flag와 동일한 것으로 추론된다. 서브블록 기반 병합 MVP 후보들의 최대 수 MaxNumSubblockMergeCand는 하기와 같이 도출된다:
MaxNumSubblockMergeCand = 5 - five_minus_max_num_subblock_merge_cand
MaxNumSubblockMergeCand의 값은 0 내지 5(이들 값 포함)의 범위 내에 있을 것이다.
1과 동일한 tile_group_fpel_mmvd_enabled_flag는, 모션 벡터 차이를 갖는 병합 모드가 현재 타일 그룹에서 정수 샘플 정밀도를 사용한다는 것을 특정한다. 0과 동일한 tile_group_fpel_mmvd_enabled_flag는, 모션 벡터 차이를 갖는 병합 모드가 현재 타일 그룹에서 분수 샘플 정밀도를 사용할 수 있다는 것을 특정한다. 존재하지 않을 때, tile_group_fpel_mmvd_enabled_flag의 값은 0인 것으로 추론된다.
tile_group_qp_delta는 코딩 단위 계층 내의 CuQpDeltaVal의 값에 의해 수정될 때까지 타일 그룹 내의 코딩 블록들에 사용될 QPY의 초기 값을 특정한다. 타일 그룹에 대한 QPY 양자화 파라미터의 초기 값 TileGroupQPY는 하기와 같이 도출된다:
TileGroupQPY = 26 + init_qp_minus26 + tile_group_qp_delta
TileGroupQPY의 값은 -QpBdOffsetY 내지 +63(이들 값 포함)의 범위 내에 있을 것이다.
tile_group_cb_qp_offset은, Qp'Cb 양자화 파라미터의 값을 결정할 때, pps_cb_qp_offset의 값에 가산될 차이를 특정한다. tile_group_cb_qp_offset의 값은 -12 내지 + 12(이들 값 포함)의 범위 내에 있을 것이다. tile_group_cb_qp_offset가 존재하지 않을 때, 그것은 0과 동일한 것으로 추론된다. pps_cb_qp_offset + tile_group_cb_qp_offset의 값은 -12 내지 +12(이들 값 포함)의 범위 내에 있을 것이다.
tile_group_cr_qp_offset은, Qp'Cr 양자화 파라미터의 값을 결정할 때, pps_cr_qp_offset의 값에 가산될 차이를 특정한다. tile_group_cr_qp_offset의 값은 -12 내지 12(이들 값 포함)의 범위 내에 있을 것이다. tile_group_cr_qp_offset가 존재하지 않을 때, 그것은 0과 동일한 것으로 추론된다. pps_cr_qp_offset + tile_group_cr_qp_offset의 값은 -12 내지 +12(이들 값 포함)의 범위 내에 있을 것이다.
1과 동일한 tile_group_sao_luma_flag는, SAO(Sample Adaptive Offset)가 현재 타일 그룹에서의 루마 성분에 대해 인에이블(enable)되는 것을 특정하고; 0과 동일한 tile_group_sao_luma_flag는, SAO가 현재 타일 그룹에서의 루마 성분에 대해 디스에이블(disable)되는 것을 특정한다. tile_group_sao_luma_flag가 존재하지 않을 때, 그것은 0과 동일한 것으로 추론된다.
1과 동일한 tile_group_sao_chroma_flag는, SAO가 현재 타일 그룹에서의 크로마 성분에 대해 인에이블되는 것을 특정하고; 0과 동일한 tile_group_sao_chroma_flag는, SAO가 현재 타일 그룹에서의 크로마 성분에 대해 디스에이블되는 것을 특정한다. tile_group_sao_chroma_flag가 존재하지 않을 때, 그것은 0과 동일한 것으로 추론된다.
1과 동일한 tile_group_alf_enabled_flag는, 적응적 루프 필터가 인에이블되어 타일 그룹에서의 Y, Cb, 또는 Cr 컬러 성분에 적용될 수 있다는 것을 특정한다. 0과 동일한 tile_group_alf_enabled_flag는, 적응적 루프 필터가 타일 그룹에서의 모든 컬러 성분들에 대해 디스에이블되는 것을 특정한다.
tile_group_aps_id는 타일 그룹이 참조하는 APS의 adaptation_parameter_set_id를 특정한다. tile_group_aps_id와 동일한 adaptation_parameter_set_id를 갖는 APS NAL 유닛의 TemporalId는 코딩된 타일 그룹 NAL 유닛의 TemporalId 이하일 것이다.
동일한 값의 adaptation_parameter_set_id를 갖는 다수의 APS들이 동일한 픽처의 2개 이상의 타일 그룹들에 의해 참조될 때, 동일한 값의 adaptation_parameter_set_id를 갖는 다수의 APS들은 동일한 콘텐츠를 가질 것이다.
0과 동일한 dep_quant_enabled_flag는 종속적 양자화가 디스에이블된다는 것을 특정한다. 1과 동일한 dep_quant_enabled_flag는 종속적 양자화가 인에이블된다는 것을 특정한다.
0과 동일한 sign_data_hiding_enabled_flag는 부호 비트 은닉이 디스에이블된다는 것을 특정한다. 1과 동일한 sign_data_hiding_enabled_flag는 부호 비트 은닉이 인에이블된다는 것을 특정한다. sign_data_hiding_enabled_flag가 존재하지 않을 때, 그것은 0과 동일한 것으로 추론된다.
1과 동일한 deblocking_filter_override_flag는, 디블록킹 파라미터들이 타일 그룹 헤더에 존재한다는 것을 특정한다. 0과 동일한 deblocking_filter_override_flag는, 디블록킹 파라미터들이 타일 그룹 헤더에 존재하지 않는다는 것을 특정한다. 존재하지 않을 때, deblocking_filter_override_flag의 값은 0과 동일한 것으로 추론된다.
1과 동일한 tile_roup_deblocking_filter_disabled_flag는, 디블록킹 필터의 동작이 현재 타일 그룹에 대해 적용되지 않는다는 것을 특정한다. 0과 동일한 tile_group_deblocking_filter_disabled_flag는, 디블록킹 필터의 동작이 현재 타일 그룹에 대해 적용된다는 것을 특정한다. tile_group_deblocking_filter_disabled_flag가 존재하지 않을 때, 그것은 pps_deblocking_filter_disabled_flag과 동일한 것으로 추론된다.
tile_group_beta_offset_div2tile_group_tc_offset_div2는 현재 타일 그룹에 대한 6 및 tC에 대한 디블록킹 파라미터 오프셋들(2로 나뉨)을 특정한다. tile_group_beta_offset_div2 및 tile_group_tc_offset_div2의 값들 둘 모두는 -6 내지 6(이들 값 포함)의 범위 내에 있을 것이다. 존재하지 않을 때, tile_group_beta_offset_div2 및 tile_group_tc_offset_div2의 값들은 각각 pps_beta_offset_div2 및 pps_tc_offset_div2와 동일한 것으로 추론된다.
offset_len_minus1 + 1은 entry_point_offset_minus1[i] 신택스 요소들의 비트 단위의 길이를 특정한다. offset_len_minus 1의 값은 0 내지 31(이들 값 포함)의 범위 내에 있을 것이다.
entry_point_offset_minus1 [ i ] + 1은 바이트 단위의 i-번째 엔트리 포인트 오프셋을 특정하고, offset_len_minus1 + 1개의 비트들에 의해 표현된다. 타일 그룹 헤더를 뒤따르는 타일 그룹 데이터는 NumTilesInCurrTileGroup개의 서브세트들로 이루어지며, 이때 서브세트 인덱스 값들은 0 내지 NumTilesInCurrTileGroup- 1(이들 값 포함)의 범위 내에 있다.
타일 그룹 데이터의 제1 바이트는 바이트 0으로 간주된다. 존재할 때, 코딩된 타일 그룹 NAL 유닛의 타일 그룹 데이터 부분에 나타나는 에뮬레이션 방지 바이트들은 서브세트 식별의 목적을 위해 타일 그룹 데이터의 일부로서 카운트된다. 서브세트 0은 코딩된 타일 그룹 데이터의 바이트들 0 내지 entry_point_offset_minus1[ 0 ](이들 값 포함)으로 이루어지며, 서브세트 k - 이때, k는 1 내지 NumTilesInCurrTileGroup - 2(이들 값 포함)의 범위 내에 있음 - 는 하기와 같이 정의된 firstByte[ k ] 및 lastByte[ k ]를 갖는 코딩된 타일 그룹 데이터의 바이트들 firstByte[ k ] 내지 lastByte [ k ](이들 값 포함)로 이루어진다:
firstByte[ k ] = Hn=
Figure pct00016
(entry_point_offset_minus1[ n - 1 ] + 1)
lastByte[ k ] = firstByte[ k ] + entry_point_offset_minus1[ k ]
마지막 서브세트(이때, 서브세트 인덱스는 NumTilesInCurrTileGroup - 1과 동일함)는 코딩된 타일 그룹 데이터의 나머지 바이트들로 이루어진다.
각각의 서브세트는 동일한 타일 내에 있는 타일 그룹 내의 모든 CTU들의 모든 코딩된 비트들로 이루어질 것이다.
JVET-M1001에 제공되는 픽처 파라미터 세트 및 타일 그룹 헤더에 대한 신택스 및 시맨틱들은 이상적이지 않을 수 있다. 특히, 정보가 타일 및/또는 타일 그룹이 픽처 내의 어디에 위치하는지를 특정하는 방식은 이상적이지 않을 수 있다. 본 개시는 타일 및/또는 타일 그룹이 픽처 내의 어디에 위치하는지를 효율적으로 특정하기 위한 기법들을 설명한다. 본 명세서에 설명된 기법에 따르면, 비디오 인코더는 본 명세서에 설명된 신택스 및 시맨틱들을 사용하여 타일 그룹 정보 등을 시그널링할 수 있다. 비디오 디코더는 본 명세서에 설명된 신택스 및 시맨틱들을 사용하는 시그널링을 파싱함으로써 타일 그룹 정보 등을 결정하고 파싱된 시그널링에 기초하여 비디오 디코딩을 수행할 수 있다.
도 1은 본 개시의 하나 이상의 기법에 따라 비디오 데이터를 코딩(즉, 인코딩 및/또는 디코딩)하도록 구성될 수 있는 시스템의 예를 예시하는 블록도이다. 시스템(100)은 본 개시의 하나 이상의 기법에 따라 비디오 데이터를 캡슐화할 수 있는 시스템의 예를 나타낸다. 도 1에 예시된 바와 같이, 시스템(100)은 소스 디바이스(102), 통신 매체(110), 및 목적지 디바이스(120)를 포함한다. 도 1에 예시된 예에서, 소스 디바이스(102)는 비디오 데이터를 인코딩하고 인코딩된 비디오 데이터를 통신 매체(110)에 송신하도록 구성된 임의의 디바이스를 포함할 수 있다. 목적지 디바이스(120)는 인코딩된 비디오 데이터를 통신 매체(110)를 통해 수신하도록 그리고 인코딩된 비디오 데이터를 디코딩하도록 구성된 임의의 디바이스를 포함할 수 있다. 소스 디바이스(102) 및/또는 목적지 디바이스(120)는 유선 및/또는 무선 통신들을 위해 갖춰진 컴퓨팅 디바이스를 포함할 수 있고, 예를 들어 셋톱 박스, 디지털 비디오 레코더, 텔레비전, 데스크톱, 랩톱 또는 태블릿 컴퓨터, 게이밍 콘솔, 의료 이미징 디바이스, 및 예를 들어 스마트 폰, 셀룰러 폰, 개인 게이밍 디바이스를 포함하는 모바일 디바이스를 포함할 수 있다.
통신 매체(110)는 무선 및 유선 통신 매체, 및/또는 저장 디바이스들의 임의의 조합을 포함할 수 있다. 통신 매체(110)는 동축 케이블, 광섬유 케이블, 트위스티드 페어 케이블(twisted pair cable), 무선 송신기 및 수신기, 라우터, 스위치, 리피터(repeater), 기지국, 또는 다양한 디바이스들과 사이트들 사이의 통신을 용이하게 하는 데 유용할 수 있는 임의의 다른 장비를 포함할 수 있다. 통신 매체(110)는 하나 이상의 네트워크를 포함할 수 있다. 예를 들어, 통신 매체(110)는 월드 와이드 웹, 예를 들어 인터넷에의 액세스를 가능하게 하도록 구성된 네트워크를 포함할 수 있다. 네트워크는 하나 이상의 전기통신 프로토콜의 조합에 따라 동작할 수 있다. 전기통신 프로토콜들은 독점적인 태양들을 포함할 수 있고/있거나 표준화된 전기통신 프로토콜들을 포함할 수 있다. 표준화된 전기통신 프로토콜들의 예들은 DVB(Digital Video Broadcasting) 표준, ATSC(Advanced Television Systems Committee) 표준, ISDB(Integrated Services Digital Broadcasting) 표준, DOCSIS(Data Over Cable Service Interface Specification) 표준, GSM(Global System Mobile Communications) 표준, CDMA(code division multiple access) 표준, 3GPP(3rd Generation Partnership Project) 표준, ETSI(European Telecommunications standards Institute) 표준, IP(Internet Protocol) 표준, WAP(Wireless Application Protocol) 표준, 및 IEEE(Institute of Electrical and Electronics Engineers) 표준을 포함한다.
저장 디바이스들은 데이터를 저장할 수 있는 임의의 타입의 디바이스 또는 저장 매체를 포함할 수 있다. 저장 매체는 유형의(tangible) 또는 비일시적 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터 판독가능 매체는 광 디스크, 플래시 메모리, 자기 메모리, 또는 임의의 다른 적합한 디지털 저장 매체들을 포함할 수 있다. 일부 예에서, 메모리 디바이스 또는 그의 부분들은 비휘발성 메모리로서 설명될 수 있고, 다른 예들에서 메모리 디바이스들의 부분들은 휘발성 메모리로서 설명될 수 있다. 휘발성 메모리들의 예들은 RAM(random access memory), DRAM(dynamic random access memory), 및 SRAM(tatic random access memory)을 포함할 수 있다. 비휘발성 메모리들의 예들은 자기 하드 디스크, 광 디스크, 플로피 디스크, 플래시 메모리, 또는 EPROM(electrically programmable memory) 또는 EEPROM(electrically erasable and programmable memory)의 형태를 포함할 수 있다. 저장 디바이스(들)는 메모리 카드(예컨대, SD(Secure Digital) 메모리 카드), 내부/외부 하드 디스크 드라이브, 및/또는 내부/외부 솔리드 스테이트 드라이브(solid state drive)를 포함할 수 있다. 데이터는 정의된 파일 포맷에 따라 저장 디바이스에 저장될 수 있다.
도 4는 시스템(100)의 구현에 포함될 수 있는 컴포넌트들의 예를 예시하는 개념도이다. 도 4에 예시된 예시적인 구현에서, 시스템(100)은 하나 이상의 컴퓨팅 디바이스(402A 내지 402N), 텔레비전 서비스 네트워크(404), 텔레비전 서비스 제공자 사이트(406), 광역 네트워크(408), 근거리 네트워크(410), 및 하나 이상의 콘텐츠 제공자 사이트(412A 내지 412N)를 포함한다. 도 4에 예시된 구현은 예를 들어 영화, 라이브 스포츠 이벤트 등과 같은 디지털 미디어 콘텐츠, 및 데이터 및 애플리케이션들 및 그와 연관된 미디어 프레젠테이션들이 컴퓨팅 디바이스들(402A 내지 402N)과 같은 복수의 컴퓨팅 디바이스에 분배되고 그들에 의해 액세스될 수 있게 하도록 구성될 수 있는 시스템의 예를 나타낸다. 도 4에 예시된 예에서, 컴퓨팅 디바이스들(402A 내지 402N)은 텔레비전 서비스 네트워크(404), 광역 네트워크(408), 및/또는 근거리 네트워크(410) 중 하나 이상으로부터 데이터를 수신하도록 구성된 임의의 디바이스를 포함할 수 있다. 예를 들어, 컴퓨팅 디바이스들(402A 내지 402N)은 유선 및/또는 무선 통신을 위해 갖춰질 수 있고, 하나 이상의 데이터 채널을 통해 서비스를 수신하도록 구성될 수 있고, 소위 스마트 텔레비전을 포함한 텔레비전, 셋톱 박스, 및 디지털 비디오 레코더를 포함할 수 있다. 게다가, 컴퓨팅 디바이스들(402A 내지 402N)은 데스크톱, 랩톱 또는 태블릿 컴퓨터, 게이밍 콘솔, 예를 들어 "스마트" 폰, 셀룰러 폰, 및 개인 게이밍 디바이스들을 포함한 모바일 디바이스를 포함할 수 있다.
텔레비전 서비스 네트워크(404)는 텔레비전 서비스들을 포함할 수 있는 디지털 미디어 콘텐츠가 분배될 수 있게 하도록 구성된 네트워크의 예이다. 예를 들어, 텔레비전 서비스 네트워크(404)는 공개 공중파 텔레비전 네트워크, 공개 또는 구독 기반 위성 텔레비전 서비스 제공자 네트워크, 및 공개 또는 구독 기반 케이블 텔레비전 제공자 네트워크 및/또는 오버 더 톱(over the top) 또는 인터넷 서비스 제공자를 포함할 수 있다. 일부 예에서 텔레비전 서비스 네트워크(404)가 주로 텔레비전 서비스들이 제공될 수 있게 하는 데 사용될 수 있지만, 텔레비전 서비스 네트워크(404)는 또한 본 명세서에서 설명된 전기통신 프로토콜들의 임의의 조합에 따라 다른 타입의 데이터 및 서비스가 제공될 수 있게 할 수 있다는 점에 유의해야 한다. 또한, 일부 예에서, 텔레비전 서비스 네트워크(404)는 텔레비전 서비스 제공자 사이트(406)와 컴퓨팅 디바이스들(402A 내지 402N) 중 하나 이상 사이의 쌍방향 통신을 가능하게 할 수 있다는 점에 유의해야 한다. 텔레비전 서비스 네트워크(404)는 무선 및/또는 유선 통신 매체의 임의의 조합을 포함할 수 있다. 텔레비전 서비스 네트워크(404)는 동축 케이블, 광섬유 케이블, 트위스티드 페어 케이블, 무선 송신기 및 수신기, 라우터, 스위치, 리피터, 기지국, 또는 다양한 디바이스들과 사이트들 사이의 통신을 용이하게 하는 데 유용할 수 있는 임의의 다른 장비를 포함할 수 있다. 텔레비전 서비스 네트워크(404)는 하나 이상의 전기통신 프로토콜의 조합에 따라 동작할 수 있다. 전기통신 프로토콜들은 독점적인 태양들을 포함할 수 있고/있거나 표준화된 전기통신 프로토콜들을 포함할 수 있다. 표준화된 전기통신 프로토콜들의 예들은 DVB 표준, ATSC 표준, ISDB 표준, DTMB 표준, DMB 표준, DOCSIS(Data Over Cable Service Interface Specification) 표준, HbbTV 표준, W3C 표준, 및 UPnP 표준을 포함한다.
도 4를 다시 참조하면, 텔레비전 서비스 제공자 사이트(406)는 텔레비전 서비스 네트워크(404)를 통해 텔레비전 서비스를 분배하도록 구성될 수 있다. 예를 들어, 텔레비전 서비스 제공자 사이트(406)는 하나 이상의 방송국, 케이블 텔레비전 제공자, 또는 위성 텔레비전 제공자, 또는 인터넷 기반 텔레비전 제공자를 포함할 수 있다. 예를 들어, 텔레비전 서비스 제공자 사이트(406)는 위성 업링크/다운링크를 통해 텔레비전 프로그래밍을 포함하는 송신을 수신하도록 구성될 수 있다. 또한, 도 4에 예시된 바와 같이, 텔레비전 서비스 제공자 사이트(406)는 광역 네트워크(408)와 통신할 수 있고 콘텐츠 제공자 사이트들(412A 내지 412N)로부터 데이터를 수신하도록 구성될 수 있다. 일부 예에서, 텔레비전 서비스 제공자 사이트(406)는 텔레비전 스튜디오를 포함할 수 있고 그로부터 콘텐츠가 비롯될 수 있다는 점에 유의해야 한다.
광역 네트워크(408)는 패킷 기반 네트워크를 포함하고 하나 이상의 전기통신 프로토콜의 조합에 따라 동작할 수 있다. 전기통신 프로토콜들은 독점적인 태양들을 포함할 수 있고/있거나 표준화된 전기통신 프로토콜들을 포함할 수 있다. 표준화된 전기통신 프로토콜들의 예들은 GSM 표준, CDMA 표준, 3GPP 표준, ETSI 표준, 유럽 표준(EN), IP 표준, WAP 표준, 및 IEEE 표준, 이를테면 예를 들어 IEEE 802 표준들 중 하나 이상(예를 들어, Wi-Fi)을 포함한다. 광역 네트워크(408)는 무선 및/또는 유선 통신 매체의 임의의 조합을 포함할 수 있다. 광역 네트워크(408)는 동축 케이블, 광섬유 케이블, 트위스티드 페어 케이블, 이더넷 케이블, 무선 송신기 및 수신기, 라우터, 스위치, 리피터, 기지국, 또는 다양한 디바이스들과 사이트들 사이의 통신을 용이하게 하는 데 유용할 수 있는 임의의 다른 장비를 포함할 수 있다. 일례에서, 광역 네트워크(408)는 인터넷을 포함할 수 있다. 근거리 네트워크(410)는 패킷 기반 네트워크를 포함하고 하나 이상의 전기통신 프로토콜의 조합에 따라 동작할 수 있다. 근거리 네트워크(410)는 액세스 레벨 및/또는 물리적 기반구조에 기초하여 광역 네트워크(408)와 구별될 수 있다. 예를 들어, 근거리 네트워크(410)는 보안 홈 네트워크를 포함할 수 있다.
다시 도 4를 참조하면, 콘텐츠 제공자 사이트들(412A 내지 412N)은 멀티미디어 콘텐츠를 텔레비전 서비스 제공자 사이트(406) 및/또는 컴퓨팅 디바이스들(402A 내지 402N)에 제공할 수 있는 사이트들의 예를 나타낸다. 예를 들어, 콘텐츠 제공자 사이트는 멀티미디어 파일 및/또는 스트림을 텔레비전 서비스 제공자 사이트(406)에 제공하도록 구성된 하나 이상의 스튜디오 콘텐츠 서버를 갖는 스튜디오를 포함할 수 있다. 일례에서, 콘텐츠 제공자 사이트들(412A 내지 412N)은 IP 스위트(suite)를 이용하여 멀티미디어 콘텐츠를 제공하도록 구성될 수 있다. 예를 들어, 콘텐츠 제공자 사이트는 RTSP(Real Time Streaming Protocol), HTTP 등에 따라 수신기 디바이스에 멀티미디어 콘텐츠를 제공하도록 구성될 수 있다. 또한, 콘텐츠 제공자 사이트들(412A 내지 412N)은 광역 네트워크(408)를 통해 수신기 디바이스들, 컴퓨팅 디바이스들(402A 내지 402N) 및/또는 텔레비전 서비스 제공자 사이트(406) 중 하나 이상에 하이퍼텍스트 기반 콘텐츠 등을 포함한 데이터를 제공하도록 구성될 수 있다. 콘텐츠 제공자 사이트들(412A 내지 412N)은 하나 이상의 웹 서버를 포함할 수 있다. 데이터 제공자 사이트(412A 내지 412N)에 의해 제공되는 데이터는 데이터 포맷들에 따라 정의될 수 있다.
다시 도 1을 참조하면, 소스 디바이스(102)는 비디오 소스(104), 비디오 인코더(106), 데이터 캡슐화기(107), 및 인터페이스(108)를 포함한다. 비디오 소스(104)는 비디오 데이터를 캡처하고/하거나 저장하도록 구성된 임의의 디바이스를 포함할 수 있다. 예를 들어, 비디오 소스(104)는 비디오 카메라 및 그에 동작 가능하게 결합된 저장 디바이스를 포함할 수 있다. 비디오 인코더(106)는 비디오 데이터를 수신하고 비디오 데이터를 표현하는 컴플라이언트 비트스트림을 생성하도록 구성된 임의의 디바이스를 포함할 수 있다. 컴플라이언트 비트스트림은 비디오 디코더가 그로부터 비디오 데이터를 수신 및 재생할 수 있는 비트스트림을 지칭할 수 있다. 컴플라이언트 비트스트림의 태양들은 비디오 코딩 표준에 따라 정의될 수 있다. 컴플라이언트 비트스트림을 생성할 때 비디오 인코더(106)는 비디오 데이터를 압축할 수 있다. 압축은 손실이 있거나(시청자가 식별 가능하거나 식별 불가능함) 무손실일 수 있다. 도 5는 본 명세서에서 기술된 비디오 데이터를 인코딩하기 위한 기법들을 구현할 수 있는 비디오 인코더(500)의 예를 예시하는 블록도이다. 예시적인 비디오 인코더(500)가 별개의 기능 블록들을 갖는 것으로 예시되어 있지만, 그러한 예시는 설명의 목적을 위한 것이고 비디오 인코더(500) 및/또는 그의 서브-컴포넌트들을 특정 하드웨어 또는 소프트웨어 아키텍처로 제한하지 않는다는 점에 유의해야 한다. 비디오 인코더(500)의 기능들은 하드웨어, 펌웨어, 및/또는 소프트웨어 구현들의 임의의 조합을 이용하여 실현될 수 있다.
비디오 인코더(500)는 픽처 면적들의 인트라 예측 코딩 및 인터 예측 코딩을 수행할 수 있고, 그렇기 때문에 하이브리드 비디오 인코더로 지칭될 수 있다. 도 5에 예시된 예에서, 비디오 인코더(500)는 소스 비디오 블록들을 수신한다. 일부 예에서, 소스 비디오 블록들은 코딩 구조에 따라 나뉜 픽처의 면적들을 포함할 수 있다. 예를 들어, 소스 비디오 데이터는 매크로블록들, CTU들, CB들, 그의 서브 디비전들, 및/또는 다른 동등한 코딩 단위를 포함할 수 있다. 일부 예에서, 비디오 인코더(500)는 소스 비디오 블록들의 추가 서브 디비전을 수행하도록 구성될 수 있다. 본 명세서에 기술된 기법은 일반적으로, 인코딩 전에 그리고/또는 인코딩 동안 소스 비디오 데이터가 어떻게 파티셔닝되는지에 무관하게, 비디오 코딩에 적용가능하다는 점에 유의해야 한다. 도 5에 예시된 예에서, 비디오 인코더(500)는 합산기(502), 변환 계수 생성기(504), 계수 양자화 유닛(506), 역 양자화 및 변환 계수 프로세싱 유닛(508), 합산기(510), 인트라 예측 프로세싱 유닛(512), 인터 예측 프로세싱 유닛(514), 필터 유닛(516), 및 엔트로피 인코딩 유닛(518)을 포함한다. 도 5에 예시된 바와 같이, 비디오 인코더(500)는 소스 비디오 블록들을 수신하고 비트스트림을 출력한다.
도 5에 예시된 예에서, 비디오 인코더(500)는 소스 비디오 블록으로부터 예측 비디오 블록을 감산함으로써 잔차 데이터를 생성할 수 있다. 예측 비디오 블록의 선택은 아래에 상세히 기술된다. 합산기(502)는 이러한 감산 연산을 수행하도록 구성된 컴포넌트를 나타낸다. 일례에서, 비디오 블록들의 감산은 픽셀 도메인에서 발생한다. 변환 계수 생성기(504)는 이산 코사인 변환(DCT), 이산 사인 변환(DST), 또는 개념적으로 유사한 변환과 같은 변환을 잔차 블록 또는 그의 서브 디비전들에 적용하여(예컨대, 4개의 8x8 변환이 잔차 값들의 16x16 어레이에 적용될 수 있음) 잔차 변환 계수들의 세트를 생성한다. 변환 계수 생성기(504)는 그의 근사를 포함한, 이산 삼각 변환(discrete trigonometric transform)의 계열에 포함된 변환들의 임의의 그리고 모든 조합들을 수행하도록 구성될 수 있다. 변환 계수 생성기(504)는 변환 계수들을 계수 양자화 유닛(506)에 출력할 수 있다. 계수 양자화 유닛(506)은 변환 계수들의 양자화를 수행하도록 구성될 수 있다. 양자화 프로세스는 계수들 중 일부 또는 전부와 연관된 비트 깊이를 감소시킬 수 있다. 양자화의 정도는 인코딩된 비디오 데이터의 레이트-왜곡(즉, 비트-레이트 대 비디오 품질)을 변경할 수 있다. 양자화의 정도는 양자화 파라미터(quantization parameter, QP)를 조정함으로써 수정될 수 있다. 양자화 파라미터는 슬라이스 레벨 값들 및/또는 CU 레벨 값들(예를 들어, CU 델타 QP 값들)에 기초하여 결정될 수 있다. QP 데이터는 변환 계수들의 특정 세트를 양자화하기 위한 QP를 결정하는 데 사용되는 임의의 데이터를 포함할 수 있다. 도 5에 예시된 바와 같이, 양자화된 변환 계수들(레벨 값들로 지칭될 수 있음)은 역 양자화 및 변환 계수 프로세싱 유닛(508)에 출력된다. 역 양자화 및 변환 계수 프로세싱 유닛(508)은 재구성된 잔차 데이터를 생성하기 위해 역 양자화 및 역 변환을 적용하도록 구성될 수 있다. 도 5에 예시된 바와 같이, 합산기(510)에서, 재구성된 잔차 데이터가 예측 비디오 블록에 추가될 수 있다. 이러한 방식으로, 인코딩된 비디오 블록은 재구성될 수 있고 결과적인 재구성된 비디오 블록은 주어진 예측, 변환, 및/또는 양자화에 대한 인코딩 품질을 평가하는 데 사용될 수 있다. 비디오 인코더(500)는 다수의 코딩 패스들을 수행하도록(예컨대, 예측, 변환 파라미터들, 및 양자화 파라미터들 중 하나 이상을 가변시키면서 인코딩을 수행하도록) 구성될 수 있다. 비트스트림 또는 다른 시스템 파라미터들의 레이트-왜곡은 재구성된 비디오 블록들의 평가에 기초하여 최적화될 수 있다. 또한, 재구성된 비디오 블록들은 저장되고 후속 블록들을 예측하기 위한 기준으로서 사용될 수 있다.
다시 도 5를 참조하면, 인트라 예측 프로세싱 유닛(512)은 코딩될 비디오 블록에 대한 인트라 예측 모드를 선택하도록 구성될 수 있다. 인트라 예측 프로세싱 유닛(512)은 프레임을 평가하고 현재 블록을 인코딩하는 데 사용할 인트라 예측 모드를 결정하도록 구성될 수 있다. 전술된 바와 같이, 가능한 인트라 예측 모드들은 평면 예측 모드들, DC 예측 모드들, 및 각도 예측 모드들을 포함할 수 있다. 또한, 일부 예에서, 크로마 성분에 대한 예측 모드는 루마 예측 모드에 대한 예측 모드로부터 추론될 수 있다는 점에 유의해야 한다. 인트라 예측 프로세싱 유닛(512)은 하나 이상의 코딩 패스를 수행한 후에 인트라 예측 모드를 선택할 수 있다. 또한, 일례에서, 인트라 예측 프로세싱 유닛(512)은 레이트-왜곡 분석에 기초하여 예측 모드를 선택할 수 있다. 도 5에 예시된 바와 같이, 인트라 예측 프로세싱 유닛(512)은 인트라 예측 데이터(예컨대, 신택스 요소들)를 엔트로피 인코딩 유닛(518) 및 변환 계수 생성기(504)에 출력한다. 전술된 바와 같이, 잔차 데이터에 대해 수행되는 변환은 모드 종속적일 수 있다(예컨대, 2차 변환 행렬이 예측 모드에 기초하여 결정될 수 있다).
다시 도 5를 참조하면, 인터 예측 프로세싱 유닛(514)은 현재 비디오 블록에 대한 인터 예측 코딩을 수행하도록 구성될 수 있다. 인터 예측 프로세싱 유닛(514)은 소스 비디오 블록들을 수신하고 비디오 블록의 PU들에 대한 모션 벡터를 계산하도록 구성될 수 있다. 모션 벡터는 기준 프레임 내의 예측 블록에 대한 현재 비디오 프레임 내의 비디오 블록의 PU의 변위를 나타낼 수 있다. 인터 예측 코딩은 하나 이상의 기준 픽처를 사용할 수 있다. 또한, 모션 예측은 단방향 예측(하나의 모션 벡터를 사용) 또는 양방향 예측(2개의 모션 벡터를 사용)일 수 있다. 인터 예측 프로세싱 유닛(514)은, 예를 들어, 절대차의 합(sum of absolute difference, SAD), 제곱차의 합(sum of square difference, SSD), 또는 다른 차이 메트릭(metric)들에 의해 결정된 픽셀 차이를 계산함으로써 예측 블록을 선택하도록 구성될 수 있다. 전술된 바와 같이, 모션 벡터는 모션 벡터 예측에 따라 결정 및 특정될 수 있다. 인터 예측 프로세싱 유닛(514)은, 전술된 바와 같이, 모션 벡터 예측을 수행하도록 구성될 수 있다. 인터 예측 프로세싱 유닛(514)은 모션 예측 데이터를 사용하여 예측 블록을 생성하도록 구성될 수 있다. 예를 들어, 인터 예측 프로세싱 유닛(514)은 프레임 버퍼(도 5에 도시되지 않음) 내에 예측 비디오 블록을 위치시킬 수 있다. 인터 예측 프로세싱 유닛(514)은 하나 이상의 보간 필터를 재구성된 잔차 블록에 적용하여 모션 추정에서 사용하기 위한 서브-정수 픽셀 값들을 계산하도록 추가로 구성될 수 있다는 점에 유의해야 한다. 인터 예측 프로세싱 유닛(514)은 계산된 모션 벡터에 대한 모션 예측 데이터를 엔트로피 인코딩 유닛(518)에 출력할 수 있다.
다시 도 5를 참조하면, 필터 유닛(516)은 재구성된 비디오 블록들 및 코딩 파라미터들을 수신하고 수정된 재구성된 비디오 데이터를 출력한다. 필터 유닛(516)은 디블록킹 및/또는 SAO 필터링을 수행하도록 구성될 수 있다. SAO 필터링은 재구성된 비디오 데이터에 오프셋을 추가함으로써 재구성을 개선하는 데 사용될 수 있는 비선형 진폭 매핑이다. 도 5에 예시된 바와 같이, 인트라 예측 프로세싱 유닛(512) 및 인터 예측 프로세싱 유닛(514)은 필터 유닛(216)을 통해 수정된 재구성된 비디오 블록을 수신할 수 있다는 점에 유의해야 한다. 엔트로피 인코딩 유닛(518)은 양자화된 변환 계수들 및 예측 신택스 데이터(즉, 인트라 예측 데이터 및 모션 예측 데이터)를 수신한다. 일부 예에서, 계수 양자화 유닛(506)은 계수들이 엔트로피 인코딩 유닛(518)에 출력되기 전에 양자화된 변환 계수들을 포함하는 행렬의 스캔을 수행할 수 있다는 점에 유의해야 한다. 다른 예들에서, 엔트로피 인코딩 유닛(518)이 스캔을 수행할 수 있다. 엔트로피 인코딩 유닛(518)은 본 명세서에 기술된 기법들 중 하나 이상에 따라 엔트로피 인코딩을 수행하도록 구성될 수 있다. 이러한 방식으로, 비디오 인코더(500)는 본 개시의 하나 이상의 기법에 따라 인코딩된 비디오 데이터를 생성하도록 구성된 디바이스의 예를 나타낸다.
다시 도 1을 참조하면, 데이터 캡슐화기(107)는 인코딩된 비디오 데이터를 수신하고 정의된 데이터 구조에 따라 컴플라이언트 비트스트림, 예를 들어 NAL 유닛들의 시퀀스를 생성할 수 있다. 컴플라이언트 비트스트림을 수신하는 디바이스는 그로부터 비디오 데이터를 재생할 수 있다. 또한, 전술된 바와 같이, 서브 비트스트림 추출은 ITU-T H.265 컴플라이언트 비트스트림을 수신하는 디바이스가 수신된 비트스트림 내의 데이터를 폐기 및/또는 수정함으로써 새로운 ITU-T H.265 컴플라이언트 비트스트림을 형성하는 프로세스를 지칭할 수 있다. 용어 "컨포밍 비트스트림(conforming bitstream)"이 용어 "컴플라이언트 비트스트림" 대신에 사용될 수 있다는 점에 유의해야 한다. 일례에서, 데이터 캡슐화기(107)는 본 명세서에 기술된 하나 이상의 기법들에 따라 신택스를 생성하도록 구성될 수 있다. 데이터 캡슐화기(107)가 비디오 인코더(106)와 동일한 물리적 디바이스에 위치될 필요가 없다는 점에 유의해야 한다. 예를 들어, 비디오 인코더(106) 및 데이터 캡슐화기(107)에 의해 수행되는 것으로 기술되는 기능들은 도 4에 예시된 디바이스들 사이에 분포될 수 있다.
전술된 바와 같이, JVET-M1001에서의, 정보가 타일 및/또는 타일 그룹이 픽처 내의 어디에 위치하는지를 특정하는 방식은 이상적이지 않을 수 있다. 일례에서, 본 명세서의 기법들에 따르면, i-번째 타일 그룹의 하부 우측 코너에 위치된 타일에 대한 하부 우측 타일 인덱스는 그 i-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 인덱스(top_right_tile_idx[ i ])에 대한 타일 인덱스 차이로서 특정될 수 있다. 이러한 방식으로 i-번째 타일 그룹의 하부 우측 코너에 위치된 타일에 대한 하부 우측 타일 인덱스를 특정하는 것은 비트를 절약한다.
표 3은 본 명세서의 기법들에 따라 i-번째 타일 그룹의 하부 우측 코너에 위치된 타일에 대한 하부 우측 타일 인덱스를 특정하기 위한 예시적인 픽처 파라미터 세트 신택스를 예시한다.
[표 3]
Figure pct00017
Figure pct00018
표 3과 관련하여, 시맨틱들은 표 1과 관련하여 상기에 제공된 시맨틱들에 기초할 수 있으며, 신택스 요소 bottom_right_tile_idx_delta에 대하여, 일례에서, 하기의 시맨틱들이 사용될 수 있다:
bottom_right_tile_idx_delta[ i ]는 i-번째 타일 그룹의 하부 우측 코너에 위치된 타일의 타일 인덱스와 i-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 타일 인덱스(즉, top_left_tile_idx[ i ]) 사이의 차이를 특정한다. single_tile_per_tile_group_flag가 1과 동일할 때, bottom_right_tile_idx_delta[ i ]는 0과 동일한 것으로 추론된다. bottom_right_tile_idx_delta[ i ] 신택스 요소의 길이는 Ceil(Log2(NumTilesInPic-top_left_tile_idx[ i ]))개의 비트들이다.
임의의 특정 타일이 하나의 타일 그룹에만 포함되어야 한다는 것이 비트스트림 준수 요건이다.
i-번째 타일 그룹 내의 타일들의 수를 특정하는 변수 NumTilesInTileGroup[ i ] 및 관련 변수들은 하기와 같이 도출된다:
Figure pct00019
표 3과 관련하여, 시맨틱들은 표 1과 관련하여 상기에 제공된 시맨틱들에 기초할 수 있으며, 신택스 요소 single_tile_per_tile_group에 대하여, 일례에서, 하기의 시맨틱들이 사용될 수 있다:
1과 동일한 single_tile_per_tile_group은 이러한 PPS를 참조하는 각각의 타일 그룹이 하나의 타일을 포함한다는 것을 특정한다. 0과 동일한 single_tile_per_tile_group은 이러한 PPS를 참조하는 타일 그룹이 하나 초과의 타일을 포함할 수 있다는 것을 특정한다.
존재하지 않을 때, single_tile_per_tile_group_flag는 1과 동일한 것으로 추론된다.
다른 예에서: 존재하지 않을 때, single_tile_per_tile_group_flag는 0과 동일한 것으로 추론된다.
일례에서, 본 명세서의 기법들에 따르면, i-번째 타일 그룹의 상부 좌측 코너에 위치된 타일에 대한 상부 좌측 타일 인덱스는 그 (i-1)-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 인덱스에 대한 타일 인덱스 차이로서 특정될 수 있다. 이를 위해, 타일 그룹들은, PPS 내의 타일 그룹들에 관한 정보를 시그널링할 때, 상부 좌측 타일 인덱스의 오름차순으로 순서화된다. 이러한 방식으로 상부 좌측 타일 인덱스를 특정하는 것은 비트를 절약한다. 추가적으로, 이러한 순서로 타일 그룹 정보를 시그널링하는 것은 더 용이한 에러 점검을 허용하고, 타일 그룹들에 관한 시그널링의 더 구조화되고 알려진 방식을 제공한다.
표 4는, 본 명세서의 기법들에 따라, i-번째 타일 그룹의 상부 좌측 코너에 위치된 타일에 대한 상부 좌측 타일 인덱스를 그 (i-1)-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 인덱스에 대한 타일 인덱스 차이로서 특정하기 위한 예시적인 픽처 파라미터 세트 신택스를 예시한다.
[표 4]
Figure pct00020
Figure pct00021
표 4와 관련하여, 시맨틱들은 표 1과 관련하여 상기에 제공된 시맨틱들에 기초할 수 있으며, 신택스 요소들 top_left_tile_idx_deltabottom_right_tile_idx에 대하여, 일례에서, 하기의 시맨틱들이 사용될 수 있다:
top_left_tile_idx_delta[ i ]는, i가 0을 초과할 때, i-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 타일 인덱스와 (i-1)-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 타일 인덱스 사이의 차이를 특정한다. top_left_tile_idx_delta[ 0 ]은 0-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 타일 인덱스를 특정한다. top_left_tile_idx_delta[ i ]의 값은, i > 0일 때, 0과 동일하지 않을 것이다. 존재하지 않을 때, 그리고 rect_tile_group_flag가 1과 동일할 때, top_left_tile_idx_delta[ i ]의 값은, i가 0을 초과할 때, 1과 동일한 것으로 추론되고, i가 0과 동일할 때, 0과 동일한 것으로 추론된다. top_left_tile_idx_delta[ i ] 신택스 요소의 길이는, i가 0을 초과할 때, Ceil(Log2(NumTilesInPic-TopLeftTileIdx[ i-1])개의 비트들이다. 0-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 타일 인덱스를 특정하는 TopLeftTileIdx[ 0 ]은 0과 동일한 것으로 추론된다.
다른 예에서, top_left_tile_idx_delta[ i ]는 하기의 시맨틱들을 갖는 신택스 요소 top_left_tile_idx_delta_minus1 [ i ]로 대체될 수 있다:
top_left_tile_idx_delta_minus1[ i ] + 1은, i가 0을 초과할 때, i-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 타일 인덱스와 (i-1)-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 타일 인덱스 사이의 차이를 특정한다. 존재하지 않을 때, 그리고 rect_tile_group_flag가 1과 동일할 때, top_left_tile__idx_delta_minus1[ i ]는, i가 0을 초과할 때, 0과 동일한 것으로 추론된다. top_left_tile_idx_delta_minus1[ i ] 신택스 요소의 길이는, i가 0을 초과할 때, Ceil(Log2(NumTilesInPic-TopLeftTileIdx[ i-1]-1)개의 비트들이다. 0-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 타일 인덱스를 특정하는 TopLeftTileIdx[ 0 ]은 0과 동일한 것으로 추론된다. i > 0에 대한 TopLeftTileIdx[ i ]는 TopLeftTileIdx[ i ] = TopLeftTileIdx[ i-1 ] +top_left_tile_idx_delta_minus1[ i ] + 1로서 계산된다.
bottom_right_tile_idx[ i ]는 i-번째 타일 그룹의 하부 우측 코너에 위치된 타일의 타일 인덱스를 특정한다. single_tile_per_tile_group_flag가 1과 동일할 때, bottom_right_tile_idx[ i ]는 top_left_tile_idx[ i ]와 동일한 것으로 추론된다. bottom_right_tile_idx[ i ] 신택스 요소의 길이는 Ceil(Log2(NumTilesInPic)개의 비트들이다.
임의의 특정 타일이 하나의 타일 그룹에만 포함되어야 한다는 것이 비트스트림 준수 요건이다.
i-번째 타일 그룹 내의 타일들의 수를 특정하는 변수 NumTilesInTileGroup[ i ] 및 관련 변수들은 하기와 같이 도출된다:
Figure pct00022
표 4와 관련하여, 시맨틱들은 표 1과 관련하여 상기에 제공된 시맨틱들에 기초할 수 있으며, 신택스 요소 single_tile_per_tile_group에 대하여, 일례에서, 하기의 시맨틱들이 사용될 수 있다:
1과 동일한 single_tile_per_tile_group은 이러한 PPS를 참조하는 각각의 타일 그룹이 하나의 타일을 포함한다는 것을 특정한다. 0과 동일한 single_tile_per_tile_group은 이러한 PPS를 참조하는 타일 그룹이 하나 초과의 타일을 포함할 수 있다는 것을 특정한다. 존재하지 않을 때, single_tile_per_tile_group_flag는 1과 동일한 것으로 추론된다. 다른 예에서: 존재하지 않을 때, single_tile_per_tile_group_flag는 0과 동일한 것으로 추론된다.
추가로, 표 4와 관련하여, 대응하는 타일 그룹 헤더에 대한 시맨틱들은 표 2와 관련하여 상기에 제공된 시맨틱들에 기초할 수 있으며, 신택스 요소 num_tiles_in_tile_group_minus1에 대하여, 일례에서, 하기의 시맨틱들이 사용될 수 있다:
num_tiles_in_tile_group_minus1은, 존재할 때, tile group - 1 내의 타일들의 수를 특정한다. num_tiles_in_tile_group_minus1의 값은 0 내지 NumTilesInPic- 1(이들 값 포함)의 범위 내에 있을 것이다. 존재하지 않을 때, num_tiles_in_tile_group_minus1의 값은 0과 동일한 것으로 추론된다.
현재 타일 그룹 내의 타일들의 수를 특정하는 변수 NumTilesInCurrTileGroup, 및 i-번째 타일 그룹 내의 i-번째 타일의 타일 인덱스를 특정하는 TgTileIdx[ i ]는 하기와 같이 도출된다:
Figure pct00023
일례에서, 본 명세서의 기법들에 따르면, i-번째 타일 그룹의 하부 우측 코너에 위치된 타일에 대한 하부 우측 타일 인덱스는 그 i-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 인덱스에 대한 타일 인덱스 차이로서 특정될 수 있고, i-번째 타일 그룹의 상부 좌측 코너에 위치된 타일에 대한 상부 좌측 타일 인덱스는 그 (i-1)-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 인덱스에 대한 타일 인덱스 차이로서 특정될 수 있다. 이러한 방식으로 하부 우측 타일 인덱스 및 상부 좌측 타일 인덱스를 특정하는 것은 비트를 절약한다. 추가적으로, 이러한 순서로 타일 그룹을 시그널링하는 것은 더 용이한 에러 점검을 허용하고, 타일 그룹들에 관한 시그널링의 더 구조화되고 알려진 방식을 제공한다.
표 5는, 본 명세서의 기법들에 따라, i-번째 타일 그룹의 하부 우측 코너에 위치된 타일에 대한 하부 우측 타일 인덱스를 그 i-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 인덱스에 대한 타일 인덱스 차이로서 특정하기 위한 그리고 i-번째 타일 그룹의 상부 좌측 코너에 위치된 타일에 대한 상부 좌측 타일 인덱스를 그 (i-1)-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 인덱스에 대한 타일 인덱스 차이로서 특정하기 위한 예시적인 픽처 파라미터 세트 신택스를 예시한다.
[표 5]
Figure pct00024
Figure pct00025
Figure pct00026
표 5와 관련하여, 시맨틱들은 표 1과 관련하여 상기에 제공된 시맨틱들에 기초할 수 있으며, 신택스 요소들 top_left_tile_idx_deltabottom_right_tile_idx_delta에 대하여, 일례에서, 하기의 시맨틱들이 사용될 수 있다:
top_left_tile_idx_delta[ i ]는, i가 0을 초과할 때, i-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 타일 인덱스와 (i-1)-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 타일 인덱스 사이의 차이를 특정한다. top_left_tile_idx_delta[ 0 ]은 0-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 타일 인덱스를 특정한다. top_left_tile_idx_delta[ i ]의 값은, i > 0일 때, 0과 동일하지 않을 것이다. 존재하지 않을 때, 그리고 rect_tile_group_flag가 1과 동일할 때, top_left_tile_idx_delta[ i ]의 값은, i가 0을 초과할 때, 1과 동일한 것으로 추론되고, i가 0과 동일할 때, 0과 동일한 것으로 추론된다. top_left_tile_idx_delta[ i ] 신택스 요소의 길이는, i가 0을 초과할 때, Ceil(Log2(NumTilesInPic-TopLeftTileIdx[ i-1])개의 비트들이다. 0-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 타일 인덱스를 특정하는 TopLeftTileIdx[ 0 ]은 0과 동일한 것으로 추론된다.
다른 예에서, top_left_tile_idx_delta[ i ]는 하기의 시맨틱들을 갖는 신택스 요소 top_left_tile_idx_delta_minus1 [ i ]로 대체될 수 있다:
top_left_tile_idx_delta_minus1[ i ] + 1은, i가 0을 초과할 때, i-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 타일 인덱스와 (i-1)-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 타일 인덱스 사이의 차이를 특정한다. 존재하지 않을 때, 그리고 rect_tile_group_flag가 1과 동일할 때, top_left_tile_idx_delta_minus1[ i ]는, i가 0을 초과할 때, 0과 동일한 것으로 추론된다. top_left_tile_idx_delta_minus1[ i ] 신택스 요소의 길이는, i가 0을 초과할 때, Ceil(Log2(NumTilesInPic-TopLeftTileIdx[ i-1]-1)개의 비트들이다. 0-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 타일 인덱스를 특정하는 TopLeftTileIdx[ 0 ]은 0과 동일한 것으로 추론된다. i > 0에 대한 TopLeftTileIdx[ i ]는 TopLeftTileIdx[ i ] = TopLeftTileIdx[ i-1 ] + top_left_tile_idx_delta_minus1[ i ] + 1로서 계산된다.
bottom_right_tile_idx_delta[ i ]는 i-번째 타일 그룹의 하부 우측 코너에 위치된 타일의 타일 인덱스와 i-번째 타일 그룹의 상부 좌측 코너에 위치된 타일의 타일 인덱스(즉, top_left_tile_idx[ i ]) 사이의 차이를 특정한다. single_tile_per_tile_group_flag가 1과 동일할 때, bottom_right_tile_idx_delta[ i ]는 0과 동일한 것으로 추론된다. bottom_right_tile_idx_delta[ i ] 신택스 요소의 길이는 Ceil(Log2(NumTilesInPic-top_left_tile_idx[ i ]))개의 비트들이다.
임의의 특정 타일이 하나의 타일 그룹에만 포함되어야 한다는 것이 비트스트림 준수 요건이다.
i-번째 타일 그룹 내의 타일들의 수를 특정하는 변수 NumTilesInTileGroup[ i ] 및 관련 변수들은 하기와 같이 도출된다:
Figure pct00027
표 4와 관련하여, 시맨틱들은 표 1과 관련하여 상기에 제공된 시맨틱들에 기초할 수 있으며, 신택스 요소 single_tile_per_tile_group에 대하여, 일례에서, 하기의 시맨틱들이 사용될 수 있다:
1과 동일한 single_tile_per_tile_group은 이러한 PPS를 참조하는 각각의 타일 그룹이 하나의 타일을 포함한다는 것을 특정한다. 0과 동일한 single_tile_per_tile_group은 이러한 PPS를 참조하는 타일 그룹이 하나 초과의 타일을 포함할 수 있다는 것을 특정한다. 존재하지 않을 때, single_tile_per_tile_group_flag는 1과 동일한 것으로 추론된다. 다른 예에서: 존재하지 않을 때, single_tile_per_tile_group_flag는 0과 동일한 것으로 추론된다.
추가로, 표 5와 관련하여, 대응하는 타일 그룹 헤더에 대한 시맨틱들은 표 2와 관련하여 상기에 제공된 시맨틱들에 기초할 수 있으며, 신택스 요소 num_tiles_in_tile_group_minus1에 대하여, 일례에서, 하기의 시맨틱들이 사용될 수 있다:
num_tiles_in_tile_group_minus1은, 존재할 때, tile group - 1 내의 타일들의 수를 특정한다. num_tiles_in_tile_group_minus1의 값은 0 내지 NumTilesInPic- 1(이들 값 포함)의 범위 내에 있을 것이다. 존재하지 않을 때, num_tiles_in_tile_group_minus1의 값은 0과 동일한 것으로 추론된다.
일례에서, 추론 규칙은 하기와 같이 수정될 수 있다: 존재하지 않을 때, num_tiles_in_tile_group_minus1의 값은, single_tile_per_tile_group_flag가 1과 동일한 경우, 0과 동일한 것으로 추론된다. 존재하지 않을 때, num_tiles_in_tile_group_minus 1의 값은, 이와 달리 (즉, rect_tile_group_flag가 1과 동일하고 single_tile_per_tile_group_flag가 0과 동일할 때), NumTilesInTileGroup[ tileGroupIdx ]과 동일한 것으로 추론되고, 여기서 tileGroupIdx는 아래에 나타낸 것과 같이 도출된다.
현재 타일 그룹 내의 타일들의 수를 특정하는 변수 NumTilesInCurrTileGroup, 및 i-번째 타일 그룹 내의 i-번째 타일의 타일 인덱스를 특정하는 변수 TgTileIdx[ i ]는 하기와 같이 도출된다:
Figure pct00028
도 3에 관련하여 전술된 바와 같이, CVS는 각자의 액세스 유닛에 포함된 NAL 유닛들로 표현된다. JVET-M1001은 NAL 유닛에 포함된 RBSP 데이터 구조의 타입을 특정하는 NAL 유닛 헤더 시맨틱들을 정의한다. 표 1은 JVET-M1001에서 제공되는 NAL 유닛 헤더의 신택스를 예시한다.
[표 6]
Figure pct00029
JVET-M1001은 표 6에 예시된 각자의 신택스 요소들에 대한 하기의 정의들을 제공한다.
forbidden_zero_bit는 0과 동일할 것이다.
nuh_temporal_id_plus1 - 1은 NAL 유닛에 대한 시간 식별자를 특정한다. nuh_temporal_id_plus1의 값은 0과 동일하지 않을 것이다.
변수 TemporalId는 하기와 같이 도출된다:
TemporalId = nuh_temporal_id_plusl - 1
nal_unit_type이 IRAP_NUT와 동일할 때, 코딩된 타일 그룹은 IRAP 픽처에 속하고, TemporalId는 0과 동일할 것이다.
TemporalId의 값은 액세스 유닛의 모든 VCL NAL 유닛들에 대해 동일할 것이다. 코딩된 픽처 또는 액세스 유닛의 TemporalId의 값은 코딩된 픽처 또는 액세스 유닛의 VCL NAL 유닛들의 TemporalId의 값이다.
비-VCL NAL 유닛들에 대한 TemporalId의 값은 하기와 같이 제약된다:
- nal_unit_type이 SPS_NUT와 동일한 경우, TemporalId는 0과 동일할 것이고, NAL 유닛을 포함하는 액세스 유닛의 TemporalId는 0과 동일할 것이다.
- 그렇지 않고, nal_unit_type이 APS_NUT와 동일한 경우, TemporalId는 NAL 유닛을 포함하는 액세스 유닛의 것과 동일할 것이다.
- 그렇지 않고, nal_unit_type이 EOS_NUT 또는 EOB_NUT와 동일한 경우, TemporalId는 0과 동일할 것이다.
- 그렇지 않은 경우, TemporalId는 NAL 유닛을 포함하는 액세스 유닛의 TemporalId 이상일 것이다.
주 - NAL 유닛이 비-VCL NAL 유닛일 때, TemporalId의 값은 비-VCL NAL 유닛이 적용되는 모든 액세스 유닛들의 TemporalId 값들의 최소 값과 동일하다. nal_unit_type이 PPS_NUT와 동일할 때, TemporalId는 포함하는 액세스 유닛의 TemporalId 이상일 수 있는데, 그 이유는, 모든 픽처 파라미터 세트(PPS)들이 비트스트림의 시작부에 포함될 수 있기 때문이고, 여기서 제1 코딩된 픽처는 0과 동일한 TemporalId를 갖는다. nal_unit_type이 PREFIX_SEI_NUT 또는 SUFFIX_SEI_NUT와 동일할 때, TemporalId는 포함하는 액세스 유닛의 TemporalId 이상일 수 있는데, 그 이유는, SEI NAL 유닛이, TemporalId 값들이 SEI NAL 유닛을 포함하는 액세스 유닛의 TemporalId를 초과하는 액세스 유닛들을 포함하는 비트스트림 서브세트에 적용하는 정보를 포함할 수 있기 때문이다.
nuh_reserved_zero_7bits는 '0000000'과 동일할 것이다. nuh_reserved_zero_7bits의 다른 값들은 향후에 특정될 수 있다. 디코더들은, nuh_reserved_zero_7bits의 값들이 '0000000'과 동일하지 않은 NAL 유닛들을 무시할 것이다(즉, 비트스트림으로부터 제거하고 폐기함).
신택스 요소 nal_unit_type과 관련하여, nal_unit_type은 NAL 유닛에 포함된 RBSP 데이터 구조의 타입을 특정한다. JVET-M1001은 nal_unit_type에 대한 하기의 시맨틱들을 제공한다.
nal_unit_type은 표 7에 특정된 바와 같은 NAL 유닛에 포함된 RBSP 데이터 구조의 타입을 특정한다. 시맨틱들이 특정되지 않은 UNSPEC28 내지 UNSPEC31(이들 값 포함)의 범위 내의 nal_unit_type를 갖는 NAL 유닛들은 본 명세서에서 특정된 디코딩 프로세스에 영향을 미치지 않을 것이다.
주 1 - UNSPEC28 내지 UNSPEC31의 범위 내의 NAL 유닛 타입들은 애플리케이션에 의해 결정되는 바와 같이 사용될 수 있다. 이러한 nal_unit_type 값들에 대한 어떠한 디코딩 프로세스도 본 명세서에 특정되어 있지 않다. 상이한 애플리케이션들이 상이한 목적들을 위해 이러한 NAL 유닛 타입들을 사용할 수 있기 때문에, 이러한 nal_unit_type 값들을 갖는 NAL 유닛들을 생성하는 인코더들의 설계에서, 그리고 이러한 nal_unit_type 값들을 갖는 NAL 유닛들의 콘텐츠를 해석하는 디코더들의 설계에서 특별한 주의를 기울여야 한다. 본 명세서는 이러한 값들에 대한 어떠한 관리도 정의하지 않는다. 이러한 nal_unit_type 값들은, 단지 사용 "충돌(collision)들"(즉, 동일한 nal_unit_type 값에 대한 NAL 유닛 콘텐츠의 의미의 상이한 정의들)이 중요하지 않거나, 가능하지 않거나, 관리되는 - 예컨대, 제어 애플리케이션 또는 전송 규격에서 또는 비트스트림들이 분배되는 환경을 제어함으로써 정의되거나 관리됨 - 상황들에서만 사용하기에 적합할 수 있다. 비트스트림의 디코딩 유닛들에서의 데이터의 양을 결정하는 것 이외의 목적들을 위해, 디코더들은 예약된 nal_unit_type 값들을 사용하는 모든 NAL 유닛들의 콘텐츠들을 무시할 것이다(비트스트림으로부터 제거하고 폐기함).
주 2 - 이러한 요건은 본 명세서에 대한 호환가능한 확장들의 향후 정의를 허용한다.
[표 7]
Figure pct00030
주 3 - CRA(clean random access) 픽처는 비트스트림 내에 존재하는 연관된 RASL 또는 RADL 픽처들을 가질 수 있다.
주 4 - IDR_N_LP와 동일한 nal_unit_type를 갖는 IDR(instantaneous decoding refresh) 픽처는 비트스트림 내에 존재하는 연관된 선두 픽처들을 갖지 않는다. IDR_W_RADL과 동일한 nal_unit_type를 갖는 IDR 픽처는 비트스트림 내에 존재하는 연관된 RASL 픽처들은 갖지 않지만, 비트스트림 내의 연관된 RADL 픽처들은 가질 수 있다.
IRAP 픽처는 그의 디코딩 프로세스에서 인터 예측을 위해 그 자신 이외의 어떠한 픽처들도 참조하지 않는 픽처라는 점에 유의해야 한다. 전형적으로, 디코딩 순서에서 비트스트림 내의 제1 픽처는 IRAP 픽처이어야 한다. 몇몇 타입들의 IRAP 픽처들이 있을 수 있다. 예를 들어, IRAP 픽처는 BLA(broken link access) 픽처, CRA 픽처, 또는 IDR 픽처일 수 있다. 선두 픽처는 출력 순서에서 연관된 IRAP 픽처에 선행하는 픽처이다. 후행 픽처는 출력 순서에서 연관된 IRAP 픽처를 뒤따르는 비-IRAP 픽처이다. IRAP 픽처와 연관된 후행 픽처들은 또한 디코딩 순서에서 IRAP 픽처를 뒤따른다. IDR 픽처들의 경우, IDR 픽처 이전에 디코딩된 픽처에 대한 참조를 요구하는 후행 픽처들이 없다. CRA 픽처는 디코딩 순서에서 CRA 픽처를 뒤따르는 선두 픽처들을 가질 수 있고, CRA 픽처 이전에 디코딩된 픽처들에 대한 인터 픽처 예측 참조들을 포함할 수 있다. 따라서, CRA 픽처가 랜덤 액세스 포인트로서 사용될 때, 이러한 선두 픽처들은 디코딩가능하지 않을 수 있고 RASL 픽처들로서 식별된다. BLA 픽처들에 뒤이어 또한 RASL 픽처들이 올 수 있다. 이러한 RASL 픽처들은 항상 BLA 픽처들에 대해서 폐기되고, 그들이 디코딩가능하지 않을 때, 즉, 디코더가 CRA 포인트에서 그의 디코딩 프로세스를 시작할 때 CRA 픽처들에 대해서 폐기된다. 디코딩 순서에서 IRAP 픽처를 뒤따를 수 있고 출력 순서에서 그것에 선행할 수 있는 다른 타입의 픽처는 RADL 픽처이며, 이는 디코딩 순서에서 IRAP 픽처에 선행하는 임의의 픽처들에 대한 참조들을 포함할 수 없다.
일례에서, 본 명세서의 기법들에 따르면, 신택스 요소 tile_group_type은 IRAP 픽처들에 대응하는 NAL 유닛들에 대한 타일 그룹 헤더에서 시그널링되지 않을 수 있다. 즉, 타일 그룹 헤더가 IRAP 픽처에 대응하는 NAL 유닛에 포함되는지 여부가 결정될 수 있고, 타일 그룹 헤더가 IRAP 픽처에 대응하는 NAL 유닛에 포함되는 경우, tile_group_type의 값은 I 타일 그룹을 나타내는 값과 동일한 것으로 추론될 수 있다(예컨대, tile_group_type은 표 3에 따라 2와 동일한 것으로 추론됨). 이러한 방식으로 신택스 요소 tile_group_type에 대한 값을 시그널링하고 추론하지 않는 것은 IRAP 픽처들의 각각의 타일 그룹의 각각의 타일 그룹 헤더에서 3개의 비트들을 절약한다. 표 8은, 본 명세서의 기법들에 따라, 타일 그룹 헤더가 IRAP 픽처에 대응하는 NAL 유닛에 포함되는지 여부에 기초하여 신택스 요소 tile_group_type이 조건부로 시그널링되고, tile_group_type의 값이, 시그널링되지 않을 때, I 타일 그룹을 나타내는 값과 동일한 것으로 추론되는, 예시적인 타일 그룹 헤더 신택스를 예시한다.
[표 8]
Figure pct00031
표 8과 관련하여, 신택스 요소들의 시맨틱들은 상기에 제공된 시맨틱들과 동일할 수 있다. 그러나, 신택스 요소 tile_group_type의 시맨틱들은 하기와 같을 수 있다:
tile_group_type은 표 3에 따른 타일 그룹의 코딩 타입을 특정한다. 존재하지 않을 때, tile_group_type은 2와 동일한 것으로 추론된다(즉, I 타일 그룹).
본 명세서에 설명된 기법들은 대체적으로, 신택스 요소 nal_unit_type에 따라 특정되는 IRAP 픽처들의 타입들의 수에 무관하게 적용가능할 수 있다는 점에 유의해야 한다. 즉, 조건:
if(nal_unit_type < IDR_W_RADL | | (nal_unit_type > RSVJRAP_VCL13 && nal_unit_type <=RSV_VCH5))
은 nal_unit_type의 값이 IRAP를 나타내는지를 결정하기 위해 그에 따라 수정될 수 있다.
JVET-M1001은 하기의 정의를 갖는 general_constraint_info() 신택스 구조 내의 신택스 요소 intra_only_constraint_fiag를 포함한다는 점에 유의해야 한다:
1과 동일한 intra_only_constraint_flag는, tile_group_type이 I와 동일해야 한다는 것이 비트스트림 준수 요건이라는 것을 특정한다. 0과 동일한 intra_only_constraint_flag는 제약을 부과하지 않는다.
다른 예에서, tile_group_type은 신택스 요소 intra_only_constraint_flag의 값에 추가로 기초하여 조건부로 시그널링될 수 있다. 즉, 일례에서, 조건:
if(nal_unit_type < IDR_W_RADL || (nal_unit_type > RSV_IRAP_VCL13 && nal_unit_type <=RS V_VCL15))
은 하기와 같이 수정될 수 있다:
if((nal_unit_type < IDR W RADL || (nal unit type > RSVJRAPVCL13 && nal_unit_type <=RSV_VCL15)) || !intra_only_eonstraint_flag)
본 명세서의 기법들은 대체적으로 어디에서 intra_only_constraint_flag가 시그널링되는지에 무관하게 적용가능할 수 있다는 점에 유의해야 한다. 추가로, 일례에서, 조건 !intra_only_constraint_flag는, 신택스 요소 tile_group_type이 시그널링되는지 또는 추론되는지를 나타내기 위해 자체적으로 (nal unit type 조건들 없이) 사용될 수 있다. 따라서, 이러한 경우에, 일례에서, 조건:
if(nal_unit_type < IDR W RADL || (nal_unit_type > RSV_IRAP_VCL13 && nal_unit_type <=RSV_VCL15))
은 하기와 같이 수정될 수 있다:
if(! intra_only_constraint_flag)
전술된 바와 같이, 타일 그룹은 정수 개의 완전한 타일들을 형성하는 CTU들의 세트이다. 따라서, 타일 그룹은 하나 이상의 타일들을 포함한다. 하나 이상의 타일들의 세트는 타일 세트로 지칭될 수 있다. 추가로, 타일 세트들은 코딩 의존성들(예를 들어, 인트라 예측 의존성들, 엔트로피 인코딩 의존성들 등)에 대한 경계들을 정의하는 데 사용될 수 있고, 그렇기 때문에, 코딩에서의 병렬성 및 관심 영역 코딩을 인에이블시킬 수 있다는 점에 유의해야 한다. 예를 들어, 도 2에 예시된 예에서의 비디오 시퀀스의 경우, 타일 그룹1은 타일 그룹2에 포함된 하나 이상의 타일 세트들과는 상이한 시각적 관심 영역에 대응하는 하나 이상의 타일 세트들을 포함할 수 있다(예컨대, 타일 그룹2는 비디오의 전경 내의 농구 코트에 대응할 수 있고, 타일 그룹1은 비디오의 배경 내의 관중들에 대응할 수 있다). ITU-T H.265는 모션 제약 타일 세트(motion-constrained tile set, MCTS)들을 인에이블시키는 시그널링을 정의한다. 모션 제약 타일 세트는 인터 픽처 예측 의존성들이 기준 픽처들 내의 공동위치된 타일 세트들로 제한되는 타일 세트를 포함할 수 있다. 따라서, MCTS 외부의 다른 타일 세트들의 디코딩과는 관계없이 주어진 MCTS에 대한 모션 보상을 수행하는 것이 가능하다. 따라서, 예를 들어, 도 2를 참조하면, 타일 그룹2가 Pic1 내지 Pic4 내의 MCTS인 경우, 모션 보상은 타일 그룹1의 코딩에 관계없이 타일 그룹2 상에서 수행될 수 있다.
MCTS에 따라 비디오 데이터를 코딩하는 것은 전방향 비디오 프리젠테이션들을 포함하는 비디오 애플리케이션들에 유용할 수 있다. 즉, 타일 세트는 전방향 비디오의 최고 관심 영역을 형성할 수 있다. 추가로, 타일 세트는 최고 관심 영역 내에 포함된 MCTS일 수 있다. 뷰포트 종속 부분 비디오 코딩으로도 지칭될 수 있는 뷰포트 종속 비디오 코딩은 전체 비디오 영역의 일부만의 디코딩을 인에이블시키기 위해 사용될 수 있다. 즉, 예를 들어, 뷰포트 종속 비디오 코딩은 현재 FOV의 렌더링을 위한 충분한 정보를 제공하기 위해 사용될 수 있다. 예를 들어, 전방향 비디오는 MCTS를 사용하여 인코딩되어, 뷰포트를 커버하는 각각의 잠재적 영역이 시간에 걸쳐 다른 영역들로부터 독립적으로 디코딩될 수 있게 할 수 있다. 이러한 경우에 있어서, 예를 들어, 특정 현재 뷰포트에 대해, 뷰포트를 커버하는 타일들의 최소 세트가 클라이언트로 전송되고/되거나 디코딩되고/되거나 렌더링될 수 있다. 이러한 프로세스는 심플 타일 기반 부분 디코딩(simple tile based partial decoding, STPD)으로 지칭될 수 있다.
일례에서, 본 명세서의 기법들에 따르면, 신택스 요소는, 직사각형 타일 그룹이 모션 제약 타일 세트인지 여부를 나타내도록 시그널링될 수 있다. 그러한 표시는 360 비디오 비트스트림 재기입 시나리오들에 유용할 수 있다. 표 9는, 본 명세서의 기법들에 따라, 직사각형 타일 그룹이 모션 제약 타일 세트인지 여부를 특정하기 위한 예시적인 픽처 파라미터 세트 신택스를 예시한다.
[표 9]
Figure pct00032
Figure pct00033
표 9와 관련하여, 시맨틱들은 표 1과 관련하여 상기에 제공된 시맨틱들에 기초할 수 있으며, 신택스 요소 is_mcts_flag에 대하여, 일례에서, 하기의 시맨틱들이 사용될 수 있다:
1과 동일한 is_mcts_flag[ i ]는 i-번째 타일 그룹이 모션 제약 타일 세트라는 것을 특정한다. 0과 동일한 is_mcts_flag[ i ]는 i-번째 타일 그룹이 모션 제약 타일 세트가 아니라는 것을 특정한다.
다른 예에서, is_mcts_flag[ i ]를 시그널링하기 위한 조건은 다음으로부터 변경될 수 있다:
Figure pct00034
to
Figure pct00035
본 명세서의 기법들에 따르면, 신택스 요소 is_mcts_flag는 본 명세서에 설명된 각각의 예시적인 픽처 파라미터 세트들, 예컨대, top_left_tile_idx_delta 및/또는 bottom_right_tile_idx_delta를 포함하는 픽처 파라미터 세트에 조건부로 존재할 수 있다는 점에 유의해야 한다.
다른 예에서, 타일 그룹이 모션 제약 타일 세트인지 여부는 타일 그룹 헤더에서 추가적으로 또는 대안적으로 시그널링될 수 있다. 표 10은 신택스 요소 is_mcts_flag를 포함하는 예시적인 타일 그룹 헤더 신택스를 예시한다.
[표 10]
Figure pct00036
표 10과 관련하여, 일부 예들에서, 신택스 요소 tile_group_type은 전술된 기법들에 따라 (예컨대, if(nal_unit_type < IDR_W_RADL || (nal_unit_type > RSV_IRAP_VCL13 && nal_unit_type <=RSV_VCL15))에 따라) 조건부로 시그널링되고 추론될 수 있다는 점에 유의해야 한다. 추가로, 신택스 요소들의 시맨틱들은 상기에 제공된 시맨틱들과 동일할 수 있다. 신택스 요소 is_mcts_flag의 시맨틱들은 하기와 같을 수 있다:
1과 동일한 is_mcts_flag는 이러한 타일 그룹이 모션 제약 타일 세트라는 것을 특정한다. 0과 동일한 is_mcts_flag는 이러한 타일 그룹이 모션 제약 타일 세트가 아니라는 것을 특정한다.
표 11은 신택스 요소 is_mcts_flag를 포함하는 다른 예시적인 타일 그룹 헤더 신택스를 예시한다.
[표 11]
Figure pct00037
이러한 경우에, 신택스 요소 is_mcts_flag의 시맨틱들은 표 10과 관련하여 상기에 제공된 것과 동일할 수 있다. 표 11에 대하여, is_mcts_flag가 rect_tile_group의 값에 무관하게 타일 그룹 헤더에 포함되며, 따라서, 표 11의 예는 또한 래스터 스캔 타일 그룹들에도 적용가능하다는 점에 유의해야 한다.
전술된 바와 같이, 타일 그룹은 정수 개의 완전한 타일들을 형성하는 CTU들의 세트이고, 타일 그룹은 하나 이상의 타일들을 포함하고, 하나 이상의 타일들의 세트는 타일 세트로 지칭될 수 있다. 추가로, 전술한 바와 같이, 타일 그룹들, 타일들, 및 타일 세트들은 코딩 의존성들에 대한 경계들을 정의하는 데 사용될 수 있다. 일부 경우들에서, CTU 프로세싱 순서들 및/또는 코딩 의존성들에 대한 경계들을 정의하기 위한 서브 타일 구조들을 설정하는 것이 유용할 수 있다. 예를 들어, 도 2에 예시된 예에서의 비디오 시퀀스에 대하여, 도 7은 타일 그룹1이 Tile1 및 Tile2를 포함하고 타일 그룹2가 Tile3, Tile4, 및 Tile5를 포함하는 예를 예시한다. 추가로, Tile3 및 Tile4는 타일 세트를 형성하는 것으로서 예시되어 있다. Tile2에 대하여, 각각의 CTU는 래스터 스캔 프로세싱 순서에 따라 넘버링된다(즉, 0 내지 20). 도 7은 Tile2에 대한 서브 타일 구조들의 예들을 추가로 예시한다. 즉, 도 7에서, 일례(즉, 좌측 예)에서, Tile2는 CTU들의 상부 2개의 로우들을 포함하는 제1 서브 타일 구조 및 CTU들의 하부 로우를 포함하는 제2 서브 타일 구조를 포함하는 것으로 예시되어 있고, 다른 예(즉, 우측 예)에서, Tile2는 CTU들의 4개의 좌측 컬럼들을 포함하는 제1 서브 타일 구조 및 CTU들의 3개의 우측 컬럼들을 포함하는 제2 서브 타일 구조를 포함하는 것으로 예시되어 있다. 하나 이상의 타일들을 CTU들의 하나 이상의 로우들로 분할하는 것은 타일을 하나 이상의 브릭(brick)들로 분할하는 것으로 지칭될 수 있다는 점에 유의해야 한다. 즉, 타일 내에 CTU들의 하나 이상의 로우들을 포함하도록 제약된 서브 타일 구조의 타입은 브릭으로서 지칭될 수 있다. 추가로, 일례에서, 브릭 내의 CTU들은 래스터 스캔 순서로 프로세싱될 수 있다.
타일들이 서브 타일 구조들로 나뉘도록 허용하는 방식 및 서브 타일 구조들이 시그널링되는 방식은 다양한 타입들의 시그널링 유연성 및/또는 코딩 효율 개선들을 가능하게 할 수 있다. 표 12는, 본 명세서의 기법들에 따라, 직사각형 타일 그룹이 서브 타일 구조들로 추가로 나뉘는 타일들을 포함하는지 여부를 특정하기 위한 예시적인 픽처 파라미터 세트 신택스를 예시한다. 표 12에 예시된 예에서, 타일은 하나 이상의 로우들을 포함하는 서브 타일 구조들로 수평 분할될 수 있다. 즉, 표 12의 예에서, 타일들은 소위 브릭들로 분할될 수 있다.
[표 12]
Figure pct00038
Figure pct00039
Figure pct00040
표 12와 관련하여, 시맨틱들은 표 9와 관련하여 상기에 제공된 시맨틱들에 기초할 수 있으며, 신택스 요소들 signalled_brick_id_flag , signaled_brick_id_length_minus1, num_bricks_in_tile_minus1 , num_ctu_rows_in_brick_minus1brick_id에 대하여, 일례에서, 하기의 시맨틱들이 사용될 수 있다:
1과 동일한 signalled_brick_id_flag는, 각각의 타일 그룹 내의 각각의 타일 내의 각각의 브릭에 대한 브릭 ID가 시그널링된다는 것을 특정한다. 0과 동일한 signalled_brick_id_flag는, 브릭 ID들이 시그널링되지 않는다는 것을 특정한다. rect_tile_group_flag가 0과 동일할 때, signalled_brick_id_flag의 값은 0과 동일한 것으로 추론된다.
signaled_brick_id_length_minus1 + 1은, 존재 시의 신택스 요소 brick_id[ i ][ j ][ k ], 및 타일 그룹 헤더들 내의 신택스 요소 start_brick_address를 표현하는 데 사용되는 비트들의 수를 특정한다. signalled_brick_id_length_minus1의 값은 0 내지 31(이들 값 포함)의 범위 내에 있을 것이다. 다른 예에서, 31 이외의 일부 다른 상한이 사용될 수 있다. 존재하지 않을 때, signalled_brick_id_length_minu1의 값은 Ceil(Log2(numTotalBricks)) - 1과 동일한 것으로 추론된다.
num_bricks_in_tile_minus1[ i ][ j ] + 1은 i-번째 타일 그룹 내의 j-번째 타일 내의 브릭들의 수를 특정한다. num_bricks_in_tile_minus1[ i ][ j ]의 값은 0 내지 <Pic 내에서 허용되는 최대 브릭 수> - 1(이들 값 포함)의 범위 내에 있을 것이며, 여기서, <Pic 내에서 허용되는 최대 브릭 수>의 값은 프로파일/티어(tier)/레벨에 의해 특정될 수 있다.
num_ctu_rows_in_brick_minus1[ i ][ j ][ k ] + 1은 i-번째 타일 그룹 내의 j-번째 타일 내의 k-번째 브릭 내의 CTU 로우들의 수를 특정한다. num_ctu_rows_in_brick_minus1[ i ][ j ][ k ]의 값은 0 내지 <i-번째 타일 그룹 내의 j-번째 타일 내의 총 CTU 로우들> -1(이들 값 포함)의 범위 내에 있을 것이다.
brick_id[ i ][ j ][ k ]는 i-번째 타일 그룹 내의 j-번째 타일 내의 k-번째 브릭의 브릭 ID를 특정한다. brick_id[ i ][ j ][ k ] 신택스 요소의 길이는 signalled_brick_id_length_minus1+1개의 비트들이다. 존재하지 않을 때, brick_id[ i ][ j ][ k ]의 값은 하기와 같이 추론된다:
Figure pct00041
신택스 요소들 signaled_brick_id_length_minus1brick_id는 서브 타일 구조들이 디폴트 순서화된 넘버링 식별 이외의 방식으로 고유하게 식별될 수 있게 한다는 점에 유의해야 한다. 서브 타일 구조들의 그러한 식별을 가능하게 하는 것은 비트스트림 재기입 경우에 특히 유용할 수 있다. 재기입 경우에, tile_group_address를 변경할 필요 없이, 픽처로부터의 하나 이상의 브릭들이 추출되어 다른 브릭(들)으로 대체될 수 있다. 또한, 추가로 분할되지 않는 타일이 하나의 브릭을 갖고 전체 픽처가 단지 하나의 타일을, 그리고 그렇기 때문에 하나의 브릭을 가질 수 있다는 점에 유의해야 한다. 일례에서 NAL 유닛들 내에 타일들, 브릭들, 및 타일 그룹들을 캡슐화하는 것에 관련하여, 하기의 규칙들 중 하나 이상이 적용될 수 있다:
Figure pct00042
NAL 유닛 내에 1개의 브릭이 있을 수 있다
Figure pct00043
NAL 유닛 내에 동일한 타일로부터의 다수의 브릭들이 있을 수 있다
Figure pct00044
NAL 유닛 내에 하나 이상의 완전한 브릭들이 있을 수 있다
Figure pct00045
타일은 하나 이상의 브릭들로 이루어진다
추가로, brick_id[i][j][k]를 시그널링하는 이점은 그것이 타일을 브릭들로 추가로 나누는 것을 허용한다는 것이며, 이는 NAL 유닛을 통해 송신될 수 있는 더 미세한 입상 크기를 제공한다.
표 12와 관련하여, 일례에서, 표 13은 대응하는 타일 그룹 헤더 신택스의 예를 예시한다.
[표 13]
Figure pct00046
표 13과 관련하여, 시맨틱들은 표 10과 관련하여 상기에 제공된 시맨틱들에 기초할 수 있으며, 신택스 요소들 start_brick_address_flagnum_bricks_minus1에 대하여, 일례에서, 하기의 시맨틱들이 사용될 수 있다:
start_brick_address는, tile_group_data()가 이러한 타일 그룹 헤더를 뒤따르는 tile_group_address에 의해 특정되는 타일 그룹 내의 제1 브릭의 브릭 주소를 특정한다.
존재하지 않을 때, start_brick_address의 값은 0과 동일한 것으로 추론된다. 하기가 적용된다:
- start_brick_address의 길이는 signalled_brick_id_length_minus1 + 1개의 비트들이다.
- signalled_brick_id_flag가 0과 동일한 경우, start_brick_address의 값은 0 내지 <이러한 타일 그룹 내의 최대 브릭 수>(이들 값 포함)의 범위 내에 있을 것이다. 그렇지 않은 경우, start_brick_address의 값은 0 내지 2(signalled_brick_id_length_minus 1 + 1)-1(이들 값 포함)의 범위 내에 있을 것이다.
num_bricks_minus1은, tile_group_data()가 이러한 타일 그룹 헤더를 뒤따르는 tile_group_address에 의해 특정되는 타일 그룹 내의 start_brick_address에서 시작하는 브릭들의 수를 특정한다. 존재하지 않을 때, start_brick_address의 값은 0과 동일한 것으로 추론된다.
다른 예에서, num_bricks_minus1 대신에, end_tile_address가 시그널링될 수 있다.
일부 예들에서, u(v)에서 코딩되는 것으로 나타내진 신택스 요소는 ue(v)로서 코딩될 수 있고, 일부 예들에서, ue(v)에서 코딩되는 것으로 나타내진 신택스 요소는 u(v)로서 코딩될 수 있다는 점에 유의해야 한다.
일부 예들에서, 표 12 및 표 13의 신택스는 본 명세서에 설명된 신택스의 다른 예들과 조합될 수 있다는 점에 유의해야 한다. 예를 들어, 일례에서, 신택스 요소 is_mcts_flag는 표 12 및/또는 표 13에 포함될 수 있다.
이러한 방식으로, 소스 디바이스(102)는 타일 그룹 내에 구체적으로 위치된 타일의 인덱스를, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스와 다른 정의된 타일의 인덱스 사이의 차이로서 시그널링하도록 구성된 디바이스의 예를 표현한다. 이러한 방식으로, 소스 디바이스(102)는 타일 그룹이 모션 제약 타일 세트인지 여부를 시그널링하도록 구성된 디바이스의 예를 표현한다.
다시 도 1을 참조하면, 인터페이스(108)는 데이터 캡슐화기(107)에 의해 생성된 데이터를 수신하고 데이터를 통신 매체에 송신 및/또는 저장하도록 구성된 임의의 디바이스를 포함할 수 있다. 인터페이스(108)는 이더넷 카드와 같은 네트워크 인터페이스 카드를 포함할 수 있고, 광학 송수신기, 무선 주파수 송수신기, 또는 정보를 전송 및/또는 수신할 수 있는 임의의 다른 타입의 디바이스를 포함할 수 있다. 또한, 인터페이스(108)는 파일이 저장 디바이스에 저장되는 것을 가능하게 할 수 있는 컴퓨터 시스템 인터페이스를 포함할 수 있다. 예를 들어, 인터페이스(108)는 PCI(Peripheral Component Interconnect) 및 PCIe(Peripheral Component Interconnect Express) 버스 프로토콜, 독점적인 버스 프로토콜, USB(Universal Serial Bus) 프로토콜, I2C, 또는 피어(peer) 디바이스들을 상호 접속시키는 데 사용될 수 있는 임의의 다른 논리적 및 물리적 구조를 지원하는 칩셋을 포함할 수 있다.
다시 도 1을 참조하면, 목적지 디바이스(120)는 인터페이스(122), 데이터 탈캡슐화기(123), 비디오 디코더(124), 및 디스플레이(126)를 포함한다. 인터페이스(122)는 통신 매체로부터 데이터를 수신하도록 구성된 임의의 디바이스를 포함할 수 있다. 인터페이스(122)는 이더넷 카드와 같은 네트워크 인터페이스 카드를 포함할 수 있고, 광학 송수신기, 무선 주파수 송수신기, 또는 정보를 수신 및/또는 전송할 수 있는 임의의 다른 타입의 디바이스를 포함할 수 있다. 또한, 인터페이스(122)는 컴플라이언트 비디오 비트스트림이 저장 디바이스로부터 검색되는 것을 가능하게 하는 컴퓨터 시스템 인터페이스를 포함할 수 있다. 예를 들어, 인터페이스(122)는 PCI 및 PCIe 버스 프로토콜, 독점적인 버스 프로토콜, USB 프로토콜, I2C, 또는 피어 디바이스들을 상호 접속시키는 데 사용될 수 있는 임의의 다른 논리적 및 물리적 구조를 지원하는 칩셋을 포함할 수 있다. 데이터 탈캡슐화기(123)는 본 명세서에 기술된 예시적인 신택스 구조들 중 임의의 것을 수신하고 파싱하도록 구성될 수 있다.
비디오 디코더(124)는 비트스트림(예를 들어, MCTS 서브 비트스트림 추출) 및/또는 그의 수용 가능한 변형들을 수신하고 그로부터 비디오 데이터를 재생하도록 구성된 임의의 디바이스를 포함할 수 있다. 디스플레이(126)는 비디오 데이터를 디스플레이하도록 구성된 임의의 디바이스를 포함할 수 있다. 디스플레이(126)는 액정 디스플레이(liquid crystal display, LCD), 플라즈마 디스플레이, 유기 발광 다이오드(organic light emitting diode, OLED) 디스플레이, 또는 다른 타입의 디스플레이와 같은 다양한 디스플레이 디바이스들 중 하나를 포함할 수 있다. 디스플레이(126)는 고화질 디스플레이 또는 초고화질 디스플레이를 포함할 수 있다. 도 1에 예시된 예에서, 비디오 디코더(124)가 디스플레이(126)에 데이터를 출력하는 것으로 기술되지만, 비디오 디코더(124)는 비디오 데이터를 다양한 타입의 디바이스들 및/또는 그의 서브 컴포넌트들에 출력하도록 구성될 수 있다는 점에 유의해야 한다. 예를 들어, 비디오 디코더(124)는, 본 명세서에 기술된 바와 같이, 비디오 데이터를 임의의 통신 매체에 출력하도록 구성될 수 있다.
도 6은 본 개시의 하나 이상의 기법들에 따라 비디오 데이터를 디코딩하도록 구성될 수 있는 비디오 디코더의 예를 예시하는 블록도이다. 일례에서, 비디오 디코더(600)는 변환 데이터를 디코딩하고 디코딩된 변환 데이터에 기초하여 변환 계수들로부터 잔차 데이터를 재구성하도록 구성될 수 있다. 비디오 디코더(600)는 인트라 예측 디코딩 및 인터 예측 디코딩을 수행하도록 구성될 수 있고, 그렇기 때문에 하이브리드 디코더로 지칭될 수 있다. 비디오 디코더(600)는 표 1 내지 표 11에서 전술된 신택스 요소들의 임의의 조합을 파싱하도록 구성될 수 있다. 비디오 디코더(600)는 전술된 프로세스들에 기초하여 또는 그에 따라 픽처를 디코딩할 수 있다.
도 6에 예시된 예에서, 비디오 디코더(600)는 엔트로피 디코딩 유닛(602), 역 양자화 유닛 및 변환 계수 프로세싱 유닛(604), 인트라 예측 프로세싱 유닛(606), 인터 예측 프로세싱 유닛(608), 합산기(610), 포스트 필터 유닛(post filter unit)(612), 및 기준 버퍼(614)를 포함한다. 비디오 디코더(600)는 비디오 코딩 시스템과 일치하는 방식으로 비디오 데이터를 디코딩하도록 구성될 수 있다. 예시적인 비디오 디코더(600)가 별개의 기능 블록들을 갖는 것으로 예시되지만, 그러한 예시는 설명의 목적을 위한 것이고 비디오 디코더(600) 및/또는 그의 서브-컴포넌트들을 특정 하드웨어 또는 소프트웨어 아키텍처로 제한하지 않는다는 점에 유의해야 한다. 비디오 디코더(600)의 기능들은 하드웨어, 펌웨어, 및/또는 소프트웨어 구현들의 임의의 조합을 이용하여 실현될 수 있다.
도 6에 예시된 바와 같이, 엔트로피 디코딩 유닛(602)은 엔트로피 인코딩된 비트스트림을 수신한다. 엔트로피 디코딩 유닛(602)은 엔트로피 인코딩 프로세스에 상반되는 프로세스에 따라 비트스트림으로부터 신택스 요소들 및 양자화된 계수들을 디코딩하도록 구성될 수 있다. 엔트로피 디코딩 유닛(602)은 전술된 엔트로피 코딩 기법들 중 임의의 것에 따라 엔트로피 디코딩을 수행하도록 구성될 수 있다. 엔트로피 디코딩 유닛(602)은 비디오 코딩 표준과 일치하는 방식으로 인코딩된 비트스트림 내의 신택스 요소들에 대한 값들을 결정할 수 있다. 도 6에 예시된 바와 같이, 엔트로피 디코딩 유닛(602)은 비트스트림으로부터 양자화 파라미터, 양자화된 계수 값들, 변환 데이터, 및 예측 데이터를 결정할 수 있다. 도 6에 예시된 예에서, 역 양자화 유닛 및 변환 계수 프로세싱 유닛(604)은 엔트로피 디코딩 유닛(602)으로부터 양자화 파라미터, 양자화된 계수 값들, 변환 데이터 및 예측 데이터를 수신하고, 재구성된 잔차 데이터를 출력한다.
도 6을 다시 참조하면, 재구성된 잔차 데이터가 합산기(610)에 제공될 수 있다. 합산기(610)는 재구성된 잔차 데이터를 예측 비디오 블록에 추가하고, 재구성된 비디오 데이터를 생성할 수 있다. 예측 비디오 블록은 예측 비디오 기법(즉, 인트라 예측 및 인터 프레임 예측)에 따라 결정될 수 있다. 인트라 예측 프로세싱 유닛(606)은 인트라 예측 신택스 요소들을 수신하고 기준 버퍼(614)로부터 예측 비디오 블록을 검색하도록 구성될 수 있다. 기준 버퍼(614)는 비디오 데이터의 하나 이상의 프레임을 저장하도록 구성된 메모리 디바이스를 포함할 수 있다. 인트라 예측 신택스 요소들은 전술된 인트라 예측 모드들과 같은 인트라 예측 모드를 식별할 수 있다. 인터 예측 프로세싱 유닛(608)은 인터 예측 신택스 요소들을 수신하고, 모션 벡터들을 생성하여 기준 버퍼(616)에 저장된 하나 이상의 기준 프레임들 내의 예측 블록을 식별할 수 있다. 인터 예측 프로세싱 유닛(608)은 모션 보상된 블록들을 생성하여, 가능하게는 보간 필터들에 기초하여 보간을 수행할 수 있다. 서브-픽셀 정밀도로 모션 추정에 사용될 보간 필터들에 대한 식별자들이 신택스 요소들에 포함될 수 있다. 인터 예측 프로세싱 유닛(608)은 보간 필터들을 사용하여 기준 블록의 서브-정수 픽셀들에 대한 보간된 값들을 계산할 수 있다. 포스트 필터 유닛(614)은 재구성된 비디오 데이터에 대해 필터링을 수행하도록 구성될 수 있다. 예를 들어, 포스트 필터 유닛(614)은, 예컨대 비트스트림에서 특정된 파라미터들에 기초하여 디블록킹 및/또는 SAO 필터링을 수행하도록 구성될 수 있다. 또한, 일부 예들에서, 포스트 필터 유닛(614)은 독점적 재량 필터링(예를 들어, 모스키토 잡음 감소와 같은 시각적 향상들)을 수행하도록 구성될 수 있다는 점에 유의해야 한다. 도 6에 예시된 바와 같이, 재구성된 비디오 블록은 비디오 디코더(600)에 의해 출력될 수 있다. 이러한 방식으로, 비디오 디코더(600)는, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스를, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스와 다른 정의된 타일의 인덱스 사이의 차이로서 나타내는 신택스 요소를 파싱하도록 그리고 인덱스에 기초하여 비디오 데이터를 생성하도록 구성된 디바이스의 예를 표현한다.
하나 이상의 예들에서, 기술된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능들은 컴퓨터 판독가능 매체에 하나 이상의 명령어 또는 코드로서 저장되거나 송신되고 하드웨어 기반 프로세싱 유닛에 의해 실행될 수 있다. 컴퓨터 판독가능 매체는 데이터 저장 매체와 같은 유형의 매체에 대응하는 컴퓨터 판독가능 저장 매체, 또는 예컨대 통신 프로토콜에 따라 하나의 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함한 통신 매체를 포함할 수 있다. 이러한 방식으로, 컴퓨터 판독가능 매체는 대체적으로 (1) 비일시적인 유형의 컴퓨터 판독가능 저장 매체, 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 본 개시에 기술된 기법들의 구현을 위한 명령어들, 코드 및/또는 데이터 구조들을 검색하기 위해 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 컴퓨터 프로그램 제품이 컴퓨터 판독가능 매체를 포함할 수 있다.
제한이 아닌 예로서, 그러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 저장소, 자기 디스크 저장소, 또는 다른 자기 저장 디바이스, 플래시 메모리, 또는 명령어들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는 데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 지칭된다. 예를 들어, 명령어들이 동축 케이블, 광섬유 케이블, 트위스티드 페어, DSL(digital subscriber line), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술을 이용하여 웹사이트, 서버 또는 다른 원격 소스로부터 송신되는 경우, 동축 케이블, 광섬유 케이블, 트위스티드 페어, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들이 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체 및 데이터 저장 매체는 접속, 반송파, 신호, 또는 다른 일시적 매체를 포함하는 것이 아니라, 대신에 비일시적인 유형의 저장 매체에 관한 것이라는 것을 이해해야 한다. 본 명세서에서 사용되는 바와 같은 디스크(disk) 및 디스크(disc)는 콤팩트 디스크(compact disc, CD), 레이저 디스크(laser disc), 광 디스크(optical disc), 디지털 다기능 디스크(digital versatile disc, DVD), 플로피 디스크(floppy disk) 및 블루레이 디스크(Blu-ray disc)를 포함하며, 여기서 디스크(disk)는 통상적으로 자기적으로 데이터를 재생하는 반면, 디스크(disc)는 레이저로 광학적으로 데이터를 재생한다. 상기의 것들의 조합이 또한 컴퓨터 판독가능 매체의 범주 내에 포함되어야 한다.
명령어들은 하나 이상의 DSP(digital signal processor), 범용 마이크로프로세서, ASIC(application specific integrated circuit), FPGA(field programmable logic array), 또는 다른 동등한 집적 또는 개별 로직 회로부와 같은 하나 이상의 프로세서에 의해 실행될 수 있다. 따라서, 본 명세서에서 사용된 바와 같은 용어 "프로세서"는 본 명세서에 기술된 기법의 구현에 적합한 전술한 구조 또는 임의의 다른 구조 중 임의의 것을 지칭할 수 있다. 또한, 일부 태양에서, 본 명세서에 기술된 기능은 인코딩 및 디코딩을 위해 구성되거나 조합된 코덱에 포함된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수 있다. 또한, 기법들은 하나 이상의 회로 또는 로직 요소로 완전히 구현될 수 있다.
본 개시의 기법들은 무선 핸드셋, 집적 회로(IC) 또는 IC들의 세트(예컨대, 칩셋)를 포함한 매우 다양한 디바이스들 또는 장치들로 구현될 수 있다. 다양한 컴포넌트, 모듈, 또는 유닛이 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 태양들을 강조하기 위해 본 개시에서 설명되지만, 반드시 상이한 하드웨어 유닛들에 의한 실현을 요구하는 것은 아니다. 오히려, 위에 설명된 바와 같이, 다양한 유닛들이 코덱 하드웨어 유닛에서 조합되거나, 적합한 소프트웨어 및/또는 펌웨어와 관련하여, 위에 설명된 바와 같은 하나 이상의 프로세서를 포함한 상호 작용적 하드웨어 유닛들의 집합에 의해 제공될 수 있다.
더욱이, 전술한 실시예들 각각에서 사용되는 기지국 디바이스 및 단말기 디바이스의 각각의 기능 블록 또는 다양한 특징부는, 전형적으로 집적 회로 또는 복수의 집적 회로인 회로부에 의해 구현되거나 실행될 수 있다. 본 명세서에 기술된 기능들을 실행하도록 설계된 회로부는 범용 프로세서, DSP, ASIC, FPGA, 또는 다른 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 또는 이산 하드웨어 컴포넌트, 또는 이들의 조합을 포함할 수 있다. 범용 프로세서는 마이크로프로세서일 수 있거나, 대안적으로, 프로세서는 종래의 프로세서, 제어기, 마이크로제어기 또는 상태 머신일 수 있다. 전술된 범용 프로세서 또는 각각의 회로는 디지털 회로에 의해 구성될 수 있거나 아날로그 회로에 의해 구성될 수 있다. 또한, 반도체 기술의 발전으로 인해 현재의 집적 회로들을 대체하는 집적 회로로 제조하는 기술이 나타날 때, 이러한 기술에 의한 집적 회로가 또한 사용될 수 있다.
다양한 예들이 기술되었다. 이들 및 다른 예들은 다음의 청구범위의 범주 내에 있다.
<요약>
일례에서, 비디오 데이터를 디코딩하기 위한 타일 그룹 정보를 시그널링하는 방법으로서, 상기 방법은, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스를, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스와 다른 정의된 타일의 인덱스 사이의 차이로서 시그널링하는 단계를 포함한다. 일례에서, 비디오 데이터를 디코딩하는 방법으로서, 상기 방법은, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스를, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스와 다른 정의된 타일의 인덱스 사이의 차이로서 나타내는 신택스 요소를 파싱하는 단계 및 인덱스에 기초하여 비디오 데이터를 생성하는 단계를 포함한다.
일례에서, 상기 방법에 있어서, 구체적으로 위치된 타일은 상부 좌측 타일이고, 다른 정의된 타일은 이전 타일 그룹 내의 상부 좌측 타일이다.
일례에서, 상기 방법에 있어서, 구체적으로 위치된 타일은 하부 우측 타일이고, 다른 정의된 타일은 현재 타일 그룹 내의 상부 좌측 타일이다.
일례에서, 상기 방법에 있어서, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스를, 타일 그룹 내에 구체적으로 위치된 타일의 인덱스와 다른 정의된 타일의 인덱스 사이의 차이로서 나타내는 신택스 요소는 픽처 파라미터 세트에 포함된다.
일례에서, 상기 방법은, 타일 그룹이 모션 제약 타일 세트인지 여부를 나타내는 신택스 요소를 시그널링하는 단계를 추가로 포함한다.
일례에서, 상기 방법은, 타일 그룹이 모션 제약 타일 세트인지 여부를 나타내는 신택스 요소를 파싱하는 단계를 추가로 포함한다.
일례에서, 디바이스는, 단계들의 임의의 그리고 모든 조합들을 수행하도록 구성된 하나 이상의 프로세서들을 포함한다.
일례에서, 상기 디바이스에 있어서, 디바이스는 비디오 인코더를 포함한다.
일례에서, 상기 디바이스에 있어서, 디바이스는 비디오 디코더를 포함한다.
일례에서, 시스템은 디바이스; 및 디바이스를 포함한다.
일례에서, 장치는 단계들의 임의의 그리고 모든 조합들을 수행하기 위한 수단을 포함한다.
일례에서, 비일시적 컴퓨터 판독가능 저장 매체는 그에 저장된 명령어들을 포함하고, 명령어들은, 실행될 때, 디바이스의 하나 이상의 프로세서들로 하여금, 단계들의 임의의 그리고 모든 조합들을 수행하게 한다.
일례에서, 비디오 데이터를 디코딩하는 방법으로서, 상기 방법은, 픽처 파라미터 세트를 수신하는 단계; 및 픽처 파라미터 세트로부터, 제1 타일 그룹 내에 위치된 타일의 제1 인덱스와 제2 타일 그룹 내에 위치된 타일의 제2 인덱스 사이의 차이를 특정하는 제1 신택스 요소를 파싱하는 단계를 포함한다.
일례에서, 상기 방법에 있어서, 제1 타일 그룹은 제1 정수 개의 완전한 타일들로 이루어진 슬라이스이고, 제2 타일 그룹은 제2 정수 개의 완전한 타일들로 이루어진 슬라이스이다.
일례에서, 상기 방법에 있어서, 제1 인덱스는 제1 타일 그룹 내의 상부 좌측 타일이고, 제2 인덱스는 제2 타일 그룹 내의 상부 좌측 타일이다.
일례에서, 상기 방법은, 픽처 파라미터 세트로부터, 제1 타일 그룹 및 제2 타일 그룹 각각 내의 타일들이 픽처의 직사각형 영역을 커버한다는 것 및 타일 그룹 정보가 픽처 파라미터 세트에서 시그널링된다는 것을 특정하는 제2 신택스 요소를 파싱하는 단계를 추가로 포함한다.
일례에서, 상기 방법은, 픽처 파라미터 세트로부터 픽처 내의 타일 그룹들의 수를 특정하는 제3 신택스 요소를 파싱하는 단계를 추가로 포함한다.
일례에서, 상기 방법에 있어서, 제1 신택스 요소는, 제2 신택스 요소가 0과 동일하지 않고 제3 신택스 요소가 1 이상일 때, 조건부로 존재한다.
일례에서, 디바이스는, 픽처 파라미터 세트를 수신하도록; 그리고 픽처 파라미터 세트로부터, 제1 타일 그룹 내에 위치된 타일의 제1 인덱스와 제2 타일 그룹 내에 위치된 타일의 제2 인덱스 사이의 차이를 특정하는 제1 신택스 요소를 파싱하도록 구성된 하나 이상의 프로세서들을 포함한다.
일례에서, 상기 디바이스에 있어서, 제1 타일 그룹 및 제2 타일 그룹 각각은 정수 개의 완전한 타일들로 이루어진 슬라이스이다.
일례에서, 상기 디바이스에 있어서, 제1 인덱스는 제1 타일 그룹 내의 상부 좌측 타일이고, 제2 인덱스는 제2 타일 그룹 내의 상부 좌측 타일이다.
일례에서, 상기 디바이스에 있어서, 하나 이상의 프로세서들은, 픽처 파라미터 세트로부터, 제1 타일 그룹 및 제2 타일 그룹 각각 내의 타일들이 픽처의 직사각형 영역을 커버한다는 것 및 타일 그룹 정보가 픽처 파라미터 세트에서 시그널링된다는 것을 특정하는 제2 신택스 요소를 파싱하도록 추가로 구성된다.
일례에서, 상기 디바이스에 있어서, 하나 이상의 프로세서들은, 픽처 파라미터 세트로부터, 픽처 내의 타일 그룹들의 수를 특정하는 제3 신택스 요소를 파싱하도록 추가로 구성된다.
일례에서, 상기 디바이스에 있어서, 제1 신택스 요소는, 제2 신택스 요소가 0과 동일하지 않고 제3 신택스 요소가 1 이상일 때, 조건부로 존재한다.
일례에서, 상기 디바이스에 있어서, 디바이스는 비디오 디코더이다.
<상호 참조>
본 정규 출원은 2019년 3월 6일자의 가출원 제62/814,748호, 2019년 3월 11일자의 가출원 제62/816,815호, 2019년 3월 25일자의 가출원 제62/823,563호에 대한 35 U.S.C. § 119 하의 우선권을 주장하며, 이들의 전체 내용들은 이로써 참고로 포함된다.

Claims (13)

  1. 비디오 데이터를 디코딩하는 방법으로서,
    픽처 파라미터 세트(picture parameter set)를 수신하는 단계; 및
    상기 픽처 파라미터 세트로부터, 제1 타일 그룹 내에 위치된 타일의 제1 인덱스와 제2 타일 그룹 내에 위치된 타일의 제2 인덱스 사이의 차이를 특정하는 제1 신택스 요소를 파싱(parsing)하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 제1 타일 그룹은 제1 정수 개의 완전한 타일들로 이루어진 슬라이스이고, 상기 제2 타일 그룹은 제2 정수 개의 완전한 타일들로 이루어진 슬라이스인, 방법.
  3. 제1항에 있어서, 상기 제1 인덱스는 상기 제1 타일 그룹 내의 상부 좌측 타일이고, 상기 제2 인덱스는 상기 제2 타일 그룹 내의 상부 좌측 타일인, 방법.
  4. 제1항에 있어서, 상기 픽처 파라미터 세트로부터, 상기 제1 타일 그룹 및 상기 제2 타일 그룹 각각 내의 타일들이 픽처의 직사각형 영역을 커버한다는 것 및 타일 그룹 정보가 상기 픽처 파라미터 세트에서 시그널링된다는 것을 특정하는 제2 신택스 요소를 파싱하는 단계를 추가로 포함하는, 방법.
  5. 제4항에 있어서, 상기 픽처 파라미터 세트로부터, 상기 픽처 내의 타일 그룹들의 수를 특정하는 제3 신택스 요소를 파싱하는 단계를 추가로 포함하는, 방법.
  6. 제5항에 있어서, 상기 제1 신택스 요소는, 상기 제2 신택스 요소가 0과 동일하지 않고 상기 제3 신택스 요소가 1 이상일 때, 조건부로 존재하는, 방법.
  7. 하나 이상의 프로세서들을 포함하는 디바이스로서, 상기 하나 이상의 프로세서들은,
    픽처 파라미터 세트를 수신하도록; 그리고
    상기 픽처 파라미터 세트로부터, 제1 타일 그룹 내에 위치된 타일의 제1 인덱스와 제2 타일 그룹 내에 위치된 타일의 제2 인덱스 사이의 차이를 특정하는 제1 신택스 요소를 파싱하도록 구성되는, 디바이스.
  8. 제7항에 있어서, 상기 제1 타일 그룹 및 상기 제2 타일 그룹 각각은 정수 개의 완전한 타일들로 이루어진 슬라이스인, 디바이스.
  9. 제7항에 있어서, 상기 제1 인덱스는 상기 제1 타일 그룹 내의 상부 좌측 타일이고, 상기 제2 인덱스는 상기 제2 타일 그룹 내의 상부 좌측 타일인, 디바이스.
  10. 제7항에 있어서, 상기 하나 이상의 프로세서들은, 상기 픽처 파라미터 세트로부터, 상기 제1 타일 그룹 및 상기 제2 타일 그룹 각각 내의 타일들이 픽처의 직사각형 영역을 커버한다는 것 및 타일 그룹 정보가 상기 픽처 파라미터 세트에서 시그널링된다는 것을 특정하는 제2 신택스 요소를 파싱하도록 추가로 구성되는, 디바이스.
  11. 제10항에 있어서, 상기 하나 이상의 프로세서들은, 상기 픽처 파라미터 세트로부터, 상기 픽처 내의 타일 그룹들의 수를 특정하는 제3 신택스 요소를 파싱하도록 추가로 구성되는, 디바이스.
  12. 제11항에 있어서, 상기 제1 신택스 요소는, 상기 제2 신택스 요소가 0과 동일하지 않고 상기 제3 신택스 요소가 1 이상일 때, 조건부로 존재하는, 디바이스.
  13. 제12항에 있어서, 상기 디바이스는 비디오 디코더인, 디바이스.
KR1020217032152A 2019-03-06 2020-02-28 비디오 코딩에서 타일 그룹 정보를 시그널링하기 위한 시스템들 및 방법들 KR20210135292A (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201962814748P 2019-03-06 2019-03-06
US62/814,748 2019-03-06
US201962816815P 2019-03-11 2019-03-11
US62/816,815 2019-03-11
US201962823563P 2019-03-25 2019-03-25
US62/823,563 2019-03-25
PCT/JP2020/008495 WO2020179713A1 (en) 2019-03-06 2020-02-28 Systems and methods for signaling tile group information in video coding

Publications (1)

Publication Number Publication Date
KR20210135292A true KR20210135292A (ko) 2021-11-12

Family

ID=72338714

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217032152A KR20210135292A (ko) 2019-03-06 2020-02-28 비디오 코딩에서 타일 그룹 정보를 시그널링하기 위한 시스템들 및 방법들

Country Status (6)

Country Link
US (1) US11997297B2 (ko)
EP (1) EP3935859A4 (ko)
JP (1) JP7427688B2 (ko)
KR (1) KR20210135292A (ko)
CN (1) CN113632489A (ko)
WO (1) WO2020179713A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7427688B2 (ja) 2019-03-06 2024-02-05 シャープ株式会社 ビデオ符号化におけるタイルグループ情報をシグナリングするためのシステム及び方法
CN112789860A (zh) * 2019-04-17 2021-05-11 株式会社 Xris 用于对图像信号进行编码/解码的方法及其装置
US11405649B2 (en) * 2020-02-18 2022-08-02 Mediatek Inc. Specifying slice chunks of a slice within a tile
US11611778B2 (en) * 2020-05-20 2023-03-21 Sharp Kabushiki Kaisha Systems and methods for signaling general constraint information in video coding
US11729381B2 (en) * 2020-07-23 2023-08-15 Qualcomm Incorporated Deblocking filter parameter signaling
US11750815B2 (en) 2020-09-17 2023-09-05 Lemon, Inc. Versatile video coding track coding
US11611752B2 (en) 2020-10-07 2023-03-21 Lemon Inc. Adaptation parameter set storage in video coding

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7376186B2 (en) * 2002-07-15 2008-05-20 Thomson Licensing Motion estimation with weighting prediction
US9584819B2 (en) * 2011-10-24 2017-02-28 Qualcomm Incorporated Grouping of tiles for video coding
US9749661B2 (en) * 2012-01-18 2017-08-29 Qualcomm Incorporated Sub-streams for wavefront parallel processing in video coding
CN108965892B (zh) 2012-01-30 2021-02-19 三星电子株式会社 用于视频解码的设备
US9270994B2 (en) 2012-06-29 2016-02-23 Cisco Technology, Inc. Video encoder/decoder, method and computer program product that process tiles of video data
CN104885456A (zh) * 2012-09-18 2015-09-02 Vid拓展公司 使用图块和图块组的感兴趣区域视频编码
CN105075271A (zh) * 2013-04-08 2015-11-18 索尼公司 利用shvc的关注区域可伸缩性
GB2550912B (en) * 2016-05-27 2019-09-04 Canon Kk Method, device and computer program for encapsulating and parsing timed media data
US10841602B2 (en) 2018-07-16 2020-11-17 Tencent America LLC Hierarchical tiles
US10757389B2 (en) * 2018-10-01 2020-08-25 Telefonaktiebolaget Lm Ericsson (Publ) Client optimization for providing quality control in 360° immersive video during pause
JP7427688B2 (ja) 2019-03-06 2024-02-05 シャープ株式会社 ビデオ符号化におけるタイルグループ情報をシグナリングするためのシステム及び方法
CN112789860A (zh) * 2019-04-17 2021-05-11 株式会社 Xris 用于对图像信号进行编码/解码的方法及其装置
KR20200145742A (ko) * 2019-06-20 2020-12-30 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치

Also Published As

Publication number Publication date
EP3935859A4 (en) 2023-01-04
EP3935859A1 (en) 2022-01-12
US11997297B2 (en) 2024-05-28
JP2022524354A (ja) 2022-05-02
US20220132151A1 (en) 2022-04-28
WO2020179713A1 (en) 2020-09-10
CN113632489A (zh) 2021-11-09
JP7427688B2 (ja) 2024-02-05

Similar Documents

Publication Publication Date Title
WO2021079948A1 (en) Systems and methods for signaling picture information in video coding
US11611778B2 (en) Systems and methods for signaling general constraint information in video coding
US11778236B2 (en) Device, and method of decoding video data
US20220353536A1 (en) Systems and methods for signaling picture information in video coding
US11997297B2 (en) Systems and methods for signaling tile group information in video coding
US11856236B2 (en) Systems and methods for signaling sequence parameter information in video coding
US20220353537A1 (en) Systems and methods for signaling subpicture information in video coding
WO2021153475A1 (en) Systems and methods for signaling picture information in a slice header in video coding
US11818359B2 (en) Systems and methods for signaling buffering period information in video coding
US20230007291A1 (en) Systems and methods for signaling temporal sublayer information in video coding
US11889118B2 (en) Systems and methods for signaling types of pictures and associated information in video coding
US20230068404A1 (en) Systems and methods for signaling subpicture information in video coding
US20220014753A1 (en) Systems and methods for deriving a motion vector difference in video coding
US20230016439A1 (en) Systems and methods for signaling picture timing and decoding unit information in video coding
US20230026475A1 (en) Systems and methods for signaling reference picture lists in video coding
US20230048070A1 (en) Systems and methods for signaling output layer set information in video coding
US20220353535A1 (en) Systems and methods for signaling decoded picture buffer information in video coding
US11902546B2 (en) Systems and methods for signaling network abstraction layer unit information in video coding
US20230134652A1 (en) Systems and methods for applying deblocking filters in video coding
US11818398B2 (en) Systems and methods for signaling video parameter information in video coding
WO2020230798A1 (en) Systems and methods for signaling tile group information in video coding
WO2020235552A1 (en) Systems and methods for signaling picture property information in video coding