KR20220137903A - 비디오 코딩의 슬라이스 및 타일 파티셔닝 - Google Patents

비디오 코딩의 슬라이스 및 타일 파티셔닝 Download PDF

Info

Publication number
KR20220137903A
KR20220137903A KR1020227026950A KR20227026950A KR20220137903A KR 20220137903 A KR20220137903 A KR 20220137903A KR 1020227026950 A KR1020227026950 A KR 1020227026950A KR 20227026950 A KR20227026950 A KR 20227026950A KR 20220137903 A KR20220137903 A KR 20220137903A
Authority
KR
South Korea
Prior art keywords
slice
video
tile
picture
minus1
Prior art date
Application number
KR1020227026950A
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 KR20220137903A publication Critical patent/KR20220137903A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • 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/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/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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234345Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment

Landscapes

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

Abstract

비디오 코딩, 비디오 디코딩 및 비디오 트랜스코딩을 포함한 비디오 처리 기술에 대해 설명한다. 하나의 예시적인 방법은 규칙에 따라 적어도 비디오 타일을 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다. 규칙은 코딩 트리 유닛의 유닛의 비디오 타일의 슬라이스 높이는 슬라이스를 포함하는 비디오 타일의 슬라이스에 대해 명시적으로 제공된 슬라이스 높이의 숫자를 나타내는 비트스트림의 제1 신택스 요소의 값에 기초하여 유도되는 것으로 지정한다.

Description

비디오 코딩의 슬라이스 및 타일 파티셔닝
이 특허 문서는 이미지 및 비디오 코딩(video coding) 및 디코딩(decoding)에 관한 것이다.
적용 가능한 특허법 및/또는 파리 협약에 따른 규칙에 따라, 본 출원은 2020년 2월 21일에 출원된 국제 특허 출원 번호 PCT/CN2020/076158에 대한 우선권 및 혜택을 적시에 주장하기 위해 만들어졌다. 법에 따른 모든 목적을 위해, 상기 출원의 전체 개시는 본 출원의 개시의 일부로 참조에 의해 통합된다.
디지털 비디오(Digital video)는 인터넷 및 다른 디지털 통신 네트워크(digital communication network)에서 가장 많은 대역폭을 사용한다. 비디오를 수신하고 표시할 수 있는 연결된 사용자 장치들의 개수가 증가함에 따라, 디지털 비디오 사용에 대한 대역폭 수요가 계속 증가할 것으로 예상된다.
본 문서는 코딩된 표현(coded representation)의 디코딩에 유용한 제어 정보(control information)를 사용하여 비디오의 코딩된 표현을 처리하기 위해 비디오 인코더(video encoder) 및 디코더(decoder)에 의해 사용될 수 있는 기술을 개시한다.
하나의 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 이 방법은 비디오(video)의 비디오 픽처(video picture)와 비디오의 비트스트림(bitstream) 사이의 변환(conversion)을 수행하는 단계를 포함한다. 비디오 픽처(video picture)는 하나 이상의 슬라이스(slice)를 포함하고 규칙(rule)은 충족되는 적어도 하나의 조건에 응답하여 2개의 직사각형 슬라이스(rectangular slice)의 타일 인덱스(tile indices) 사이의 차이(difference)를 나타내는 신택스 요소(syntax element)가 비트스트림(bitstream)에 존재함을 지정한다. 두 개의 직사각형 슬라이스(rectangular slice)의 제1 직사각형 슬라이스는 i번째 직사각형 슬라이스로 표시되고, 여기서 i는 정수이다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 이 방법은 비디오(video)의 비디오 픽처(video picture)와 비디오의 비트스트림(bitstream) 사이의 변환(conversion)을 수행하는 단계를 포함한다. 비디오 픽처는 하나 이상의 서브픽처(sub-picture)를 포함하고 각각의 서브픽처는 하나 이상의 직사각형 슬라이스를 포함한다. 규칙은 각 서브픽처의 각 직사각형 슬라이스에 대한 서브픽처 레벨의 슬라이스 인덱스가 각 슬라이스의 코딩 트리 유닛의 수를 결정하기 위해 유도되는 것을 지정한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은, 하나 이상의 서브픽처를 포함하는 비디오의 비디오 픽처와 비디오의 비트스트림 사이의 변환을 위해, 서브픽처의 슬라이스의 서브픽처 레벨 슬라이스 인덱스(sub-picture-level slice index)와 슬라이스의 픽처 레벨 슬라이스 인덱스 사이의 매핑 관계(mapping relationship)를 결정하는 단계를 포함한다. 방법은 또한 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 이 방법은 비디오(video)의 비디오 픽처(video picture)와 비디오의 비트스트림(bitstream) 사이의 변환(conversion)을 수행하는 단계를 포함한다. 비디오 픽처는 하나 이상의 서브픽처(sub-picture)를 포함하고 규칙은 비디오의 타일이 비디오 픽처의 단일 서브픽처(single sub-picture) 내에 완전히 위치하도록 지정한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 비디오의 비디오 픽처와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 비디오 픽처는 하나 이상의 서브픽처를 포함한다. 비트스트림은 픽처를 파티셔닝(partitioning)하는 정보가 픽처와 연관된 신택스 구조(syntax structure)에 포함된다고 지정하는 포맷 규칙(format rule)을 따른다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은, 비-직사각형(non-rectangular) 형상(shape)을 갖는 하나 이상의 슬라이스를 포함하는 비디오의 비디오 픽처와 비디오의 비트스트림 사이의 변환을 위해, 비디오 픽처의 슬라이스 파티셔닝 정보를 결정하는 단계를 포함한다. 방법은 또한 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 규칙에 따라 하나 이상의 슬라이스를 포함하는 비디오의 비디오 픽처와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다. 규칙은 비디오 픽처의 슬라이스 수가 비디오 픽처에 직사각형 파티셔닝 또는 비-직사각형 파티셔닝(non-rectangular partitioning)이 적용되는지 여부에 따라 결정되는 최소 슬라이스 수 이상임을 지정한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 이 방법은 비디오(video)의 비디오 픽처(video picture)와 비디오의 비트스트림(bitstream) 사이의 변환(conversion)을 수행하는 단계를 포함한다. 비디오 픽처는 하나 이상의 슬라이스(slice)를 포함한다. 비디오 픽처의 슬라이스 파티셔닝 정보가 비디오 유닛의 신택스 구조에 포함된 경우, 슬라이스는왼쪽 상단 위치(top-left location)와 슬라이스의 차원(dimension)으로 표현된다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 이 방법은 비디오(video)의 비디오 픽처(video picture)와 비디오의 비트스트림(bitstream) 사이의 변환(conversion)을 수행하는 단계를 포함한다. 비디오 픽처는 하나 이상의 서브픽처를 포함하고 각각의 서브픽처는 하나 이상의 슬라이스를 포함한다. 규칙은 각 서브픽처에 있는 하나 이상의 슬라이스의 파티셔닝 정보가 비트스트림에 존재하는 방식(manner)을 지정한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 이 방법은 비디오(video)의 비디오 픽처(video picture)와 비디오의 비트스트림(bitstream) 사이의 변환(conversion)을 수행하는 단계를 포함한다. 비디오 픽처는 하나 이상의 직사각형 슬라이스를 포함하고 각 슬라이스는 하나 이상의 타일(tile)을 포함한다. 규칙은 i번째 직사각형 슬라이스에 있는 제1 타일의 제1 타일 인덱스와 (i+1)번째 직사각형 슬라이스에 있는 제1 타일의 제2 타일 인덱스 사이의 차이 사이의 시그널링이 비트스트림에서 생략된다는 것을 지정한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 비디오의 비디오 픽처와 비디오의 비트스트림 사이의 변환을 위해 비디오 픽처에서 타일의 수의 열의 수 및 타일의 행의 수를 유도하기 위한 정보가 비디오 픽처의 차원과 코딩 트리 블록(coding tree block)의 차원(dimension) 사이의 관계에 응답하는 비트스트림에 조건부로 포함된다는 것을 결정하는 단계를 포함한다. 방법은 또한 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 이 방법은 비디오의 비디오 픽처(video picture)와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다. 비디오 픽처는 하나 이상의 서브픽처(sub-picture)를 포함한다. 비트스트림은, 슬라이스를 포함하는 서브픽처의 서브픽처 식별자(subpicture identifier)를 지정하는 변수(variable)가 비트스트림에 존재하는 경우, 신택스 요소(syntax element)에 해당하는 제2 변수가 변수와 동일하다는 조건을 충족하는 신택스 요소는 단 하나뿐이라는 것을 지정하는 포맷(format)을 따른다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 이 방법은 비디오의 비디오 픽처(video picture)와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다. 비디오 픽처는 하나 이상의 서브픽처(sub-picture)를 포함한다. 비-직사각형 파티셔닝(non-rectangular partitioning)이 적용되거나 비트스트림에서 서브픽처 정보가 생략된 경우 슬라이스의 두 타일은 서로 다른 어드레스를 갖는다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 이 방법은 비디오(video)의 비디오 픽처(video picture)와 비디오의 비트스트림(bitstream) 사이의 변환(conversion)을 수행하는 단계를 포함한다. 비디오 픽처는 하나 이상의 타일를 포함한다. 규칙은 하나 이상의 타일이 균일한 간격과 비균일한 간격으로 구성된 경우 신택스 요소를 사용하여 타일 레이아웃 유형을 표시하도록 지정한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 이 방법은 비디오(video)의 비디오 픽처(video picture)와 비디오의 비트스트림(bitstream) 사이의 변환(conversion)을 수행하는 단계를 포함한다. 규칙은 변환에서 MER(Merge Estimation Region) 크기가 처리되는지 여부 또는 처리 방법이 허용되는 최소 코딩 블록 크기에 따르는 조건으로 지정한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 규칙에 따라 적어도 비디오 타일을 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다. 규칙은 코딩 트리 유닛의 유닛의 비디오 타일의 슬라이스 높이는 슬라이스를 포함하는 비디오 타일의 슬라이스에 대해 명시적으로 제공된 슬라이스 높이의 숫자를 나타내는 비트스트림의 제1 신택스 요소의 값에 기초하여 유도되는 것으로 지정한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 규칙에 따라 하나 이상의 슬라이스를 포함하는 비디오 타일을 포함하는 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다. 이 규칙은 픽처의 제1 슬라이스를 포함하는 타일의 제2 슬라이스가 코딩 트리 유닛의 유닛으로 표현되는 높이를 갖도록 지정한다. 제1 슬라이스는 제1 슬라이스 인덱스를 갖고, 제2 슬라이스는 제1 슬라이스 인덱스와 비디오 타일에서 명시적으로 제공된 슬라이스 높이의 숫자에 기초하여 결정되는 제2 슬라이스 인덱스를 갖는다. 제2 슬라이스의 높이는 제1 슬라이스 인덱스와 제2 슬라이스 인덱스에 기초하여 결정된다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 하나 이상의 타일을 포함하는 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다. 비디오 픽처는 픽처 파라미터 세트를 참조하고 픽처 파라미터 세트는 N개의 타일 열에 대한 열 너비 목록을 포함하도록 지정하는 포맷 규칙(format rule)을 따르고, 여기서 N은 정수이다. (N-1) 번째 타일 열은 비디오 픽처에 존재하고 (N-1) 번째 타일 열은 명시적으로 포함된 타일 열 너비에 하나의 코딩 트리 블록 수를 더한 목록의 (N-1) 번째 항목과 동일한 너비를 갖는다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 하나 이상의 타일을 포함하는 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다. 비디오 픽처는 픽처 파라미터 세트(picture parameter set)를 참조하고 픽처 파라미터 세트는 N개의 타일 행에 대한 행 높이의 목록을 포함하도록 지정하는 포맷 규칙을 따르고, 여기서 N은 정수이다. (N-1) 번째 타일 행은 비디오 픽처에 존재하고 (N-1) 번째 타일 행은 명시적으로 포함된 타일 행 높이에 하나의 코딩 트리 블록 수를 더한 목록의 (N-1) 번째 항목과 동일한 높이를 갖는다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 하나 이상의 비디오 픽처를 포함하는 비디오 사이의 변환을 수행하는 단계를 포함하고, 각각의 비디오 픽처는 하나 이상의 슬라이스 및 비디오의 코딩된 표현을 포함하는 하나 이상의 서브픽처를 포함하고, 코딩된 표현은 포맷 규칙을 따르고; 포맷 규칙은, 직사각형 슬라이스 모드가 비디오 픽처에 대해 활성화되는 경우, 비디오 픽처의 각 서브픽처의 각 슬라이스에 대한 픽처 레벨 슬라이스 인덱스가 코딩된 표현에서 명시적 시그널링 없이 유도된다는 것을 지정하고; 및 포맷 규칙은 각 슬라이스의 코딩 트리 유닛의 수가 픽처 레벨 슬라이스 인덱스로부터 유도될 수 있음을 지정한다.
다른 예시적인 측면에서, 다른 비디오 처리 방법이 개시된다. 방법은 하나 이상의 비디오 픽처를 포함하는 비디오 사이의 변환을 수행하는 단계를 포함하고, 각각의 비디오 픽처는 하나 이상의 슬라이스 및 비디오의 코딩된 표현을 포함하는 하나 이상의 서브픽처를 포함하고, 코딩된 표현은 포맷 규칙을 따르고; 포맷 규칙은 서브픽처 레벨 슬라이스 인덱스가 코딩된 표현의 서브픽처 레벨 슬라이스 인덱스를 시그널링하지 않고 코딩된 표현의 정보에 기초하여 유도가능함을 지정한다.
다른 예시적인 측면에서, 다른 비디오 처리 방법이 개시된다. 방법은 하나 이상의 비디오 픽처를 포함하는 비디오 사이의 변환을 수행하는 단계를 포함하고, 각각의 비디오 픽처는 하나 이상의 서브픽처 및/또는 하나 이상의 타일 및 비디오의 코딩된 표현을 포함하고, 코딩된 표현은 포맷 규칙을 따르고; 및 변환은 제약 규칙(constraint rule)에 따른다.
다른 예시적인 측면에서, 다른 비디오 처리 방법이 개시된다. 방법은 하나 이상의 비디오 픽처를 포함하는 비디오 사이의 변환을 수행하는 단계를 포함하고, 각각의 비디오 픽처는 하나 이상의 타일 및/또는 하나 이상의 슬라이스를 포함하고; 코딩된 표현은 포맷 규칙을 따르고; 포맷 규칙은 비디오 픽처 레벨의 필드가 비디오 픽처에서 슬라이스 및/또는 타일의 파티셔닝에 관한 정보를 전달하도록 지정한다.
다른 예시적인 측면에서, 다른 비디오 처리 방법이 개시된다. 방법은 하나 이상의 픽처를 포함하는 비디오와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환은 비디오 픽처가 파티셔닝되는 슬라이스의 최소 수가 직사각형 파티셔닝이 비디오 픽처를 파티셔닝하는 데 사용되는지 여부의 함수라는 파티셔닝 규칙을 따른다.
다른 예시적인 측면에서, 다른 비디오 처리 방법이 개시된다. 방법은 비디오의 비디오 영역의 비디오 슬라이스와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고; 코딩된 표현은 포냇 규칙을 따르고; 포맷 규칙은 코딩된 표현이 비디오 슬라이스의 왼쪽 상단 위치에 기초하여 비디오 슬라이스를 시그널링하도록 지정하고, 포맷 규칙은 코딩된 표현이 비디오 유닛 레벨에서 시그널링되는 파티셔닝 정보에서 비디오 슬라이스의 높이 및/또는 너비를 시그널링하도록 지정한다.
다른 예시적인 측면에서, 다른 비디오 처리 방법이 개시된다. 방법은 비디오 픽처를 포함하는 비디오와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고; 코딩된 표현은 포냇 규칙을 따르고; 포맷 규칙은 직사각형 슬라이스의 제1 타일의 타일 인덱스와 다음 직사각형 슬라이스의 제1 타일의 타일 인덱스 사이의 차이를 시그널링하는 것을 생략하도록 지정한다.
다른 예시적인 측면에서, 다른 비디오 처리 방법이 개시된다. 방법은 비디오와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 코딩된 표현은 포냇 규칙을 따르고, 포맷 규칙은 비디오 픽처의 폭과 코딩 트리 유닛의 크기 사이의 관계가 비디오 픽처에서 타일 열 또는 행의 수를 유도하는 데 사용되는 정보의 시그널링을 제어한다.
다른 예시적인 측면에서, 다른 비디오 처리 방법이 개시된다. 방법은 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 코딩된 표현은 포냇 규칙을 따르고, 포맷 규칙은 타일 레이아웃 정보가 균일한 간격 타일 및 불균일한 간격 타일을 포함하는 비디오 픽처에 대한 코딩된 표현에 포함된다는 것을 지정한다.
또 다른 예시적인 측면에서, 비디오 인코더 장치(video encoder apparatus)가 개시된다. 비디오 인코더는 전술한 방법을 구현하도록 구성된 프로세서(processor)를 포함한다.
또 다른 예시적인 측면에서, 비디오 디코더 장치(video decoder apparatus)가 개시된다. 비디오 디코더는 전술한 방법을 구현하도록 구성된 프로세서를 포함한다.
또 다른 실시예 측면에서, 코드(code)가 저장된 컴퓨터 판독 가능 매체(computer readable medium)가 개시된다. 코드는 프로세서 실행 가능 코드의 형태로 여기에 설명된 방법 중 하나를 구현한다.
이러한 기능 및 기타 기능은 본 문서 전체에 걸쳐 설명되어 있다.
도 1은 픽처가 12개의 타일과 3개의 래스터 스캔 슬라이스로 파티션되는 픽처의 래스터 스캔 슬라이스 나누어지는 예를 도시한다.
도 2는 24개의 타일(6개의 타일 열 및 4개의 타일 행) 및 9개의 직사각형 슬라이스로 나뉘어지는 픽처의 직사각형 슬라이스 파티션의 예를 도시한다.
도 3은 4개의 타일(2개의 타일 열 및 2개의 타일 행) 및 4개의 직사각형 슬라이스로 나뉘어진 타일 및 직사각형 슬라이스로 파티셔닝된 픽처의 예를 도시한다.
도 4는 15개의 타일, 24개의 슬라이스 및 24개의 서브픽처로 파티셔닝된 픽처를 도시한다.
도 5는 4의 픽처의 4:2:2 루마 및 크로마 샘플의 공칭 수직 및 수평 위치를 도시한다.
도 6은 픽처 파티셔닝(picture partitioning)의 예를 도시한다. 파란색 라인은 타일의 경계를 나타내고; 녹색 라인은 슬라이스의 경계를 나타내고 빨간색 점선은 서브픽처의 경계를 나타낸다. 픽처 레벨 인덱스(picture-level indices), 디코딩 순서 인덱스(decoding order indices), 4개의 슬라이스의 서브픽처 레벨 인덱스(subpicture-level indices) 및 서브픽처 및 타일의 인덱스가 도면에 표시되어 있다.
도 7은 예시적인 비디오 처리 시스템의 블록도이다.
도 8은 비디오 처리 장치의 블록도이다.
도 9는 비디오 처리 방법의 하나의 예의 방법에 대한 흐름도이다.
도 10은 본 개시의 일부 실시예에 따른 비디오 코딩 시스템을 도시하는 블록도이다.
도 11은 본 개시내용의 일부 실시예에 따른 인코더를 도시하는 블록도이다.
도 12는 본 개시의 일부 실시예들에 따른 디코더를 도시하는 블록도이다.
도 13은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다.
도 14는 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 15는 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 16은 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 17은 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 18은 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 19는 본 기술에 따른 비디오 처리의 다른 방법의 흐름도 표현이다.
도 20은 본 기술에 따른 비디오 처리의 다른 방법의 흐름도 표현이다.
도 21은 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 22는 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 23은 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 24는 본 기술에 따른 비디오 처리의 다른 방법의 흐름도 표현이다.
도 25는 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 26은 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 27은 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 28은 본 기술에 따른 비디오 처리의 다른 방법의 흐름도 표현이다.
도 29는 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
도 30은 본 기술에 따른 비디오 처리의 다른 방법의 흐름도 표현이다.
도 31은 본 기술에 따른 비디오 처리를 위한 다른 방법의 흐름도 표현이다.
섹션 제목은 이해의 편의를 위해 본 문서에서 사용되며 각 섹션에 개시된 기술 및 실시예의 적용 가능성을 해당 섹션에만 제한하지 않는다. 또한, H.266 용어는 일부 설명에서 이해의 편의를 위해서만 사용되며 개시된 기술의 범위를 제한하기 위한 것이 아니다. 이와 같이, 여기에 설명된 기술은 다른 비디오 코덱 프로토콜 및 설계에도 적용할 수 있다.
1. 개요
이 문서는 비디오 코딩 기술(video coding technologies)과 관련이 있다. 특히, 서브픽처, 타일 및 슬라이스의 시그널링에 관한 것이다. 아이디어는 다중 계층 비디오 코딩(multi-layer video coding), 예를 들어 개발 중인 범용 비디오 코딩(Versatile Video Coding)(VVC)을 지원하는 임의의 비디오 코딩 표준 또는 비표준 비디오 코덱에 개별적으로 또는 다양한 조합으로 적용될 수 있다.
2. 약어(Abbreviation)
APS 적응형파라미터 세트(Adaptation Parameter Set)
AU 액세스 유닛(Access Unit)
AUD 액세스 유닛 구분 기호(Access Unit Delimiter)
AVC 고급 비디오 코딩(Advanced Video Coding)
CLVS 코딩된 계층 비디오 시퀀스(Coded Layer Video Sequence)
CPB 코딩된 픽처 버퍼Coded Picture Buffer()
CRA 클린 랜덤 액세스(Clean Random Access)
CTU 코딩 트리 유닛(Coding Tree Unit)
CVS 코딩된 비디오 시퀀스(Coded Video Sequence)
DPB 디코딩된 픽처 버퍼(Decoded Picture Buffer)
DPS 디코딩 파라미터 세트(Decoding Parameter Set)
EOB 비트스트림 끝(End Of Bitstream)
EOS 시퀀스 끝(End Of Sequence)
GDR 점진적 디코딩 리프레시(Gradual Decoding Refresh)
HEVC 고효율 비디오 코딩(High Efficiency Video Coding)
HRD 가상 레퍼런스 디코더(Hypothetical Reference Decoder)
IDR 즉시 디코딩 리프레시(Instantaneous Decoding Refresh)
JEM 공동 연구 모델(Joint Exploration Model)
MCTS 모션 제약 타일 세트(Motion-Constrained Tile Set)
NAL 네트워크 추상화 계층(Network Abstraction Layer)
OLS 출력 계층 세트(Output Layer Set)
PH 픽처 헤더(Picture Header)
PPS 픽처 파라미터 세트(Picture Parameter Set)
PTL 프로필, 계층 및 레벨(Profile, Tier and Level)
PU 픽처 유닛(Picture Unit)
RBSP 원시 바이트 시퀀스 페이로드(Raw Byte Sequence Payload)
SEI 추가 개선 정보(Supplemental Enhancement Information)
SPS 시퀀스 파라미터 세트(Sequence Parameter Set)
SVC 확장 가능한 비디오 코딩(Scalable Video Coding)
VCL 비디오 코딩 계층(Video Coding Layer)
VPS 비디오 파라미터 세트(Video Parameter Set)
VTM VVC 테스트 모델(VVC Test Model)
VUI 비디오 사용성 정보(Video Usability Information)
VVC 다목적 비디오 코딩(Versatile Video Coding)
3. 초기 논의
비디오 코딩 표준은 주로 잘 알려진 ITU-T 및 ISO/IEC 표준의 개발을 통해 발전해 왔다. ITU-T는 H.261및 H.263을 제작했으며, ISO/IEC는 MPEG-1 및 MPEG-4 비주얼을 제작했으며, 두 조직은 H.262/MPEG-2 비디오 및 H.264/MPEG-4 고급 비디오 코딩(AVC) 및 H.265/HEVC 표준을 공동 제작했다. H.262 이후, 비디오 코딩 표준은 시간적 예측(temporal prediction)과 트랜스폼 코딩(transform coding)이 사용되는 하이브리드 비디오 코딩 구조에 기초한다. HEVC를 넘어 미래의 비디오 코딩 기술을 연구하기 위해, 공동 비디오 연구팀(JVET: Joint Video Exploration Team)이 2015년에 VCEG와 MPEG의 공동으로 설립되었다. 그 이후로, JVET에 의해 많은 새로운 방법들이 채택되었고, 공동 연구 모델 (JEM: Joint Exploration Model)이라고 명명된 레퍼런스 픽처소프트웨어(reference software)에 적용되었다. JVET 회의는 분기마다 한번 동시 개최되며, 새로운 코딩 표준은 HEVC 대비 비트레이트 50% 감소를 목표로 하고 있다. 새로운 비디오 코딩 표준은 2018년 4월 JVET 회의에서 공식적으로 다목적 비디오 코딩(Versatile Video Coding; VVC)로 명명되었으며, 당시 VVC 테스트 모델(VTM)의 제1 버전이 출시되었다. VVC 표준화에 기여하는 지속적인 노력이 있기 때문에 모든 JVET 회의에서 새로운 코딩 기술이 VVC 표준에 채택되고 있다. VVC 작업 드래프트와 테스트 모델 VTM은 모든 회의 후에 업데이트된다. VVC 프로젝트는 현재 2020년 7월 회의에서 기술 완료(FDIS)를 목표로 하고 있다.
3.1. HEVC의 픽처 파티셔닝 개념(Picture partitioning scheme)
HEVC는 일반 슬라이스(regular slice), 종속 슬라이스(dependent slice), 타일 및 웨이브프론트 병렬 처리(Wavefront Parallel Processing)(WPP)의 4가지 서로 다른 픽처 파티셔닝 개념이 포함되어 있으며, 이는 최대 전송 유닛(Maximum Transfer Unit)(MTU) 크기 매칭(size matching), 병렬 처리 및 종단 간 지연(end-to-end delay) 감소에 적용될 수 있다.
일반 슬라이스는 H.264/AVC와 유사하다. 각 일반 슬라이스는 자체 NAL 유닛으로 캡슐화되며, 인-픽처 예측(in-picture prediction)(인트라 샘플 예측, 모션 정보 예측, 코딩 모드 예측) 및 슬라이스 경계에 걸친 엔트로피 코딩 종속성이 비활성화된다. 따라서, 일반 슬라이스는 동일한 픽처 내의 다른 일반 슬라이스로부터 독립적으로 재구성될 수 있다(루프 필터링 동작으로 인해 여전히 상호 의존성이 있을 수 있음).
일반 슬라이스는 H.264/AVC에서 거의 동일한 포맷으로 사용할 수 있는 병렬화에 사용할 수 있는 유일한 툴이다. 일반 슬라이스 기반 병렬화는 프로세서 간 또는 코어 간 통신을 많이 필요로 하지 않는다(예측 코딩된 픽처를 디코딩할 때 모션 보상을 위한 프로세서간 또는 코어간 데이터 공유를 제외하고, 이는 일반적으로 인픽처 예측으로 인한 프로세서간 또는 코어간 데이터 공유보다 훨씬 더 무겁다). 그러나, 같은 이유로 일반 슬라이스를 사용하면 슬라이스 헤더의 비트 비용(bit cost)과 슬라이스 경계에 걸친 예측 부족으로 인해 상당한 코딩 오버헤드(substantial coding overhead)가 발생할 수 있다. 또한, 일반 슬라이스(아래에 언급된 다른 툴과 대조적으로)는, 일반 슬라이스의 픽처 내 독립성과 각 일반 슬라이스가 자체 NAL 유닛에 캡슐화되어 있기 때문에, MTU 크기 요구 사항과 일치하도록 비트스트림 파티셔닝을 위한 핵심 메커니즘으로도 사용된다. 많은 경우, 병렬화의 목표와 MTU 크기 매칭의 목표는 픽처의 슬라이스 레이아웃에 대한 요구 사항이 상충된다. 이러한 상황의 실현은 아래에 언급된 병렬화 툴의 개발로 이어졌다.
종속 슬라이스에는 짧은 슬라이스 헤더가 있고 픽처 내 예측을 중단하지 않고 트리 블록 경계(treeblock boundaries)에서 비트스트림을 파티셔닝할 수 있다. 기본적으로, 종속 슬라이스는 전체 일반 슬라이스의 인코딩이 완료되기 전에 일반 슬라이스의 일부가 전송되도록 함으로써 종단 간 지연(end-to-end delay)을 줄이기 위해 일반 슬라이스를 다중 NAL 유닛으로 조각화(fragmentation)한다.
WPP에서, 픽처는 코딩 트리 블록(CTB)의 단일 행으로 파티셔닝된다. 엔트로피 디코딩(Entropy decoding) 및 예측은 다른 파티션에 있는 CTB의 데이터를 사용할 수 있다. 병렬 처리(Parallel processing)는 CTB 행의 병렬 디코딩을 통해 가능하고, 여기서 CTB 행의 디코딩 시작은 두 CTB만큼 지연되므로 대상(subject) CTB의 위와 오른쪽에 있는 CTB와 관련된 데이터가 대상 CTB가 디코딩되기 전에 사용 가능하도록 한다. 이 엇갈린 시작(staggered start)(그래픽으로 표시할 때 웨이브프론트처럼 나타남)을 사용하면, 픽처에 CTB 행이 포함된 수만큼의 프로세서/코어로 병렬화가 가능하다. 픽처 내의 이웃하는 트리블록 행 사이의 인픽처 예측이 허용되기 때문에, 인픽처 예측을 가능하게 하기 위해 필요한 프로세서간/코어간 통신이 상당할 수 있다. WPP 파티셔닝은 적용되지 않을 때와 비교하여 추가 NAL 유닛을 생성하지 않으므로 WPP는 MTU 크기 매칭을 위한 툴이 아니다. 그러나, MTU 크기 매칭이 필요한 경우, 특정 코딩 오버헤드와 함께 일반 슬라이스가 WPP와 함께 사용될 수 있다.
타일은 픽처를 타일 열과 행으로 파티셔닝하는 수평 및 수직 경계를 정의한다. 타일 열은 픽처의 상단에서 하단까지 이어진다. 마찬가지로 타일 행은 픽처의 왼쪽에서 픽처의 오른쪽으로 이어진다. 픽처의 타일 수는 타일 열 수에 타일 행 수를 곱하여 간단하게 유도될 수 있다.
CTB의 스캔 순서(scan order)는 픽처의 타일 래스터 스캔 순서로 다음 타일의 왼쪽 상단 CTB를 디코딩하기 전에 타일 내에서 로컬로 변경된다(타일의 CTB 래스터 스캔 순서로). 일반 슬라이스와 유사하게 타일은 엔트로피 디코딩 종속성(entropy decoding dependency)뿐만 아니라 픽처 내 예측 종속성을 깨뜨린다. 그러나, 개별 NAL 유닛에 포함될 필요는 없고(이 점에서 WPP와 동일) , 따라서 타일은 MTU 크기 매칭에 사용할 수 없다. 각 타일은 하나의 프로세서/코어에 의해 처리될 수 있고, 및 이웃 타일을 디코딩하는 프로세싱 유닛 간의 인픽처 예측에 필요한 프로세서간/코어간 통신은 슬라이스가 둘 이상의 타일에 걸쳐 있는 경우 공유 슬라이스 헤더를 전달하는 것으로 제한되고 루프 필터링은 재구성된 샘플 및 메타데이터의 공유와 관련된다. 하나 이상의 타일 또는 WPP 세그먼트가 슬라이스에 포함된 경우, 슬라이스의 제1 타일 또는 WPP 세그먼트가 아닌 각 타일 또는 WPP 세그먼트에 대한 진입점 바이트 오프셋(entry point byte offset)은 슬라이스 헤더에서 시그널링된다.
단순함을 위해, 4가지 서로 다른 픽처 파티셔닝 개념의 적용에 대한 제한(restriction)이 HEVC에 지정되었다. 주어진 코딩된 비디오 시퀀스는 HEVC에 지정된 대부분의 프로필에 대한 타일과 웨이브프론트를 모두 포함할 수 없다. 각 슬라이스 및 타일에 대해 다음 조건 중 하나 또는 둘 모두가 충족되어야 한다: 1) 슬라이스의 모든 코딩된 트리 블록은 동일한 타일에 속한다; 2) 타일의 모든 코딩된 트리 블록은 동일한 슬라이스에 속한다. 마지막으로 웨이브프론트 세그먼트는 정확히 하나의 CTB 행을 포함하고, WPP가 사용 중일 때, 슬라이스가 CTB 행 내에서 시작되면, 동일한 CTB 행에서 끝나야 한다.
HEVC에 대한 최근 수정 사항은 JCT-VC 출력 문서 JCTVC-AC1005에 설명되고, 제이. 보이스(J. Boyce), 에이. 라마서브라모니안(A. Ramasubramonian), 알. 스쿠핀(R. Skupin), 지. 제이. 설리반(G. J. Sullivan), 에이. 투어라피스(A. Tourapis), 와이. -케이. 왕(Y. -K. Wang)(편집자)의, "HEVC 추가적인 보완 개선 정보(Additional Supplemental Enhancement Information)(드래프트(Draft) 4), "2017년 10월 24일자의 자료는: http://phenix. int-evry. fr/jct/doc_end_user/documents/29_Macau/wg11/JCTVC-AC1005-v2. zip에서 공개적으로 사용 가능하다. 이 수정안이 포함되고, HEVC는 3개의 MCTS 관련 추가적인 보완 개선 정보(supplemental enhancement information)(SEI) 메시지, 즉 시간적 MCTS SEI 메시지, MCTS 추출 정보 세트 SEI 메시지 및 MCTS 추출 정보 중첩 SEI 메시지를 지정한다.
시간적 MCTS SEI 메시지는 비트스트림에 MCTS가 존재함을 알려주고 MCTS를 시그널링한다. 각 MCTS에 대해, 모션 벡터는 MCTS 내부의 전체 샘플 위치와 보간을 위해 MCTS 내부의 전체 샘플 위치만 필요로 하는 부분 샘플 위치를 가리키도록 제한되고, MCTS 외부의 블록에서 유도된 시간적 모션 벡터 예측을 위한 모션 벡터 후보의 사용은 허용되지 않는다. 이와 같이, 각 MCTS는 MCTS에 포함되지 않은 타일의 존재 없이 독립적으로 디코딩될 수 있다.
MCTS 추출 정보 세트 SEI 메시지(extraction information sets SEI message)는 MCTS 서브-비트스트림 추출(sub-bitstream extraction)(SEI 메시지의 시맨틱(semantic)의 일부로 지정됨)에서 MCTS 세트에 대한 일치하는 비트스트림을 생성하는 데 사용할 수 있는 추가 정보를 제공한다. 정보는 다수의 추출 정보 세트(extraction information set)로 구성되며, 각각은 다수의 MCTS 세트를 정의하고 MCTS 서브-비트스트림 추출 프로세스(sub-bitstream extraction process) 동안 사용할 대체 VPS, SPS 및 PPS의 RBSP 바이트를 포함한다. MCTS 서브-비트스트림 추출 프로세스에 따라 서브-비트스트림(sub-bitstream)을 추출할 때, 파라미터 세트(VPS, SPS, PPS)를 다시 쓰거나 교체해야 하며, 슬라이스 어드레스 관련 신택스 요소(first_slice_segment_in_pic_flag 및 slice_segment_address 포함) 중 하나 또는 전체가 일반적으로 다른 값을 가져야 하기 때문에 슬라이스 헤더는 약간 업데이트해야 한다.
3.2. VVC에서 픽처 파티셔닝
VVC에서, 픽처는 하나 이상의 타일 행과 하나 이상의 타일 열로 나뉜다. 타일은 픽처의 직사각형 영역을 커버하는 CTU의 시퀀스이다. 타일의 CTU는 해당 타일 내에서 래스터 스캔 순서(raster scan order)로 스캔된다.
슬라이스는 완전 타일(complete tile)의 정수 또는 픽처의 타일 내 연속적인 완전한 CTU 행의 정수로 구성된다.
두 가지 슬라이스 모드, 즉 래스터 스캔 슬라이스 모드와 직사각형 슬라이스 모드가 지원된다. 래스터 스캔 슬라이스 모드에서, 슬라이스는 픽처의 타일 래스터 스캔에서 완전 타일의 시퀀스를 포함한다. 직사각형 슬라이스 모드에서, 슬라이스는 픽처의 직사각형 영역을 집합적으로 형성하는 다수의 완전 타일 또는 픽처의 직사각형 영역을 집합적으로 형성하는 하나의 타일의 다수의 연속적인 완전 CTU 행을 포함한다. 직사각형 슬라이스 내의 타일은 해당 슬라이스에 해당하는 직사각형 영역 내에서 타일 래스터 스캔 순서로 스캔된다.
서브픽처는 픽처의 직사각형 영역을 집합적으로 커버하는 이상의 슬라이스를 포함한다.
도 1은 픽처가 12개의 타일과 3개의 래스터 스캔 슬라이스로 파티션되는 픽처의 래스터 스캔 슬라이스 나누어지는 예를 도시한다.
도 2는 24개의 타일(6개의 타일 열 및 4개의 타일 행) 및 9개의 직사각형 슬라이스로 나뉘어지는 픽처의 직사각형 슬라이스 파티션의 예를 도시한다.
도 3은 4개의 타일(2개의 타일 열 및 2개의 타일 행) 및 4개의 직사각형 슬라이스로 나뉘어진 타일 및 직사각형 슬라이스로 파티셔닝된 픽처의 예를 도시한다.
도 4는 픽처의 서브픽처 파티셔닝(subpicture partitioning)의 예를 도시하고, 여기서 픽처는 18개의 타일로 파티셔닝되고, 왼쪽의 12개는 각각 4 x 4 CTU의 슬라이스 1개를 덮고 오른쪽의 타일 6개는 각각 2 x 2 CTU의 수직으로 쌓인 슬라이스 2개를 덮고 있어, 결과적으로 24개의 슬라이스와 다양한 차원의 24개의 서브픽처가 생성된다(각 슬라이스는 서브픽처임).
3.3. VVC에서 SPS/PPS/Picture 헤더/Slice 헤더의 시그널링
7.3.2.3 시퀀스 파라미터 세트(Sequence parameter set) RBSP 신택스
Figure pct00001
Figure pct00002
Figure pct00003
Figure pct00004
Figure pct00005
Figure pct00006
Figure pct00007
Figure pct00008
7.3.2.4 픽처 파라미터 세트 RBSP 신택스(Picture parameter set RBSP syntax)
Figure pct00009
Figure pct00010
Figure pct00011
Figure pct00012
7.3.2.7 픽처 헤더 구조 신택스
Figure pct00013
Figure pct00014
Figure pct00015
Figure pct00016
Figure pct00017
Figure pct00018
7.3.7.1 일반 슬라이스 헤더 신택스
Figure pct00019
Figure pct00020
Figure pct00021
Figure pct00022
3.4. 타일, 슬라이스 및 서브픽처에 대한 사양 예
3 정의
픽처 레벨 슬라이스 인덱스: rect_slice_flag가 1과 동일할 때 PPS에서 시그널링되는 순서대로 픽처의 슬라이스 목록에 대한 슬라이스 인덱스.
서브픽처 레벨 슬라이스 인덱스(subpicture-level slice index): rect_slice_flag가 1과 동일할 때 PPS에서 시그널링되는 순서대로 서브픽처의 슬라이스 목록에 대한 슬라이스 인덱스.
6.5.1 CTB 래스터 스캐닝(raster scanning), 타일 스캐닝(tile scanning) 및 서브픽처 스캐닝 프로세스(subpicture scanning process)
타일 열의 수를 지정하는, 변수 NumTileColumns, 및 i번째 타일 열의 너비를 CTB 유닛으로 지정하는, 0에서 NumTileColumn -1까지를 포함하는 범위 i에 대한 목록 colWidth [i]는 다음과 같이 유도된다:
Figure pct00023
Figure pct00024
타일 행의 수를 지정하는, 변수 NumTileRows, 및 CTB 유닛으로 j번째 타일 행의 높이를 지정하는, 0에서 NumTileRows -1까지 범위 j에 대한 목록 RowHeight [j]는 다음과 같이 유도된다:
Figure pct00025
변수 NumTilesInPic는 NumTileColumns *NumTileRows와 동일하게 설정된다.
i번째 타일 열 경계의 위치를 CTB 유닛으로 지정하는, 0에서 NumTileColumns까지를 포함하는 범위 i에 대한 목록 tileColBd [i]는 다음과 같이 유도된다:
(tileColBd [0] = 0, i = 0, i < NumTileColumns, i++)
tileColBd [i + 1] = tileColBd [i] + colWidth [i] (25)
참고 1 - 어레이(array) tileColBd []의 크기는 CtbToTileColBd [] 유도에서 타일 열의 실제 수보다 하나 더 크다.
j번째 타일 행 경계의 위치를 CTB 유닛으로 지정하는, 0에서 NumTileRows까지를 포함하는 범위 j에 대한 목록 tileRowBd [j]는 다음과 같이 유도된다:
(tileRowBd [0] = 0, j = 0; j < NumTileRows; j++)에 대하여
tileRowBd [j + 1] = tileRowBd [j] + RowHeight [j] (26)
참고 2 - 위 유도에서 어레이 tileRowBd []의 크기는 CtbToTileRowBd [] 유도에서 타일 행의 실제 수보다 하나 더 크다.
수평 CTB 어드레스에서 왼쪽 타일 열 경계로의 변환을 CTB 유닛으로 지정하는, 0에서 PicWidthInCtbsY까지를 포함하는 범위 ctbAddrX에 대한 목록 CtbToTileColBd [ctbAddrX]는 다음과 같이 유도된다:
Figure pct00026
참고 3 - 위의 유도에서 어레이 CtbToTileColBd []의 크기는 derivaqiton slice_data() 시그널링에서 CTB의 실제 픽처 너비 수보다 하나 더 크다.
수직 CTB 어드레스에서 상단 타일 열 경계로의 변환을 CTB 유닛으로 지정하는, 0에서 PicHeightInCtbsY까지를 포함하는 범위 ctbAddrY에 대한 목록 CtbToTileRowBd [ctbAddrY]는 다음과 같이 유도된다:
Figure pct00027
참고 4 - 위 유도에서 어레이 CtbToTileRowBd []의 크기는 slice_data() 시그널링에서 CTB의 실제 픽처 높이 수보다 하나 더 크다.
직사각형 슬라이스의 경우, i번째 슬라이스의 CTU 수를 지정하는, 0에서 num_slices_in_pic_minus1까지를 포함하는 범위 i에 대한 목록 NumCtusInSlice [i], 슬라이스의 왼쪽 상단 타일의 인덱스를 지정하는, 0에서 num_slices_in_pic_minus1까지를 포함하는 범위의 i에 대한 목록 SliceTopLeftTileIdx [i], 및 0에서 num_slices_in_pic_minus1까지를 포함하는 범위의 i에 대한 행렬 CtbAddrInSlice [i][j], 및 i 번째 슬라이스 내에서 j 번째 CTB의 픽처 래스터 스캔 어드레스를 지정하는, 0에서 NumCtusInSlice [i] -1까지를 포함하는 범위 j는, 다음과 같이 유도된다:
Figure pct00028
Figure pct00029
AddCtbsToSlice 함수(sliceIdx, startX, stopX, startY, stopY)는 다음과 같이 지정된다:
Figure pct00030
0에서 num_slices_in_pic_minus1까지의 범위에 있는 i에 대한 NumCtusInSlice[i]의 값이 0보다 커야 하는 것은 비트스트림 적합성(bitstream conformance)의 요구 사항이다. 또한, 0에서 num_slices_in_pic_minus1까지를 포함하는 범위의 i에 대한 행렬 CtbAddrInSlice [i][j], 및 0에서 NumCtusInSlice [i] -1까지를 포함하는 범위 j는, 0에서 PicSizeInCtbsY -1까지의 범위의 모든 CTB 어드레스를 한번 즉 한번만 포함하는 것이 비트스트림 적합성의 요구 사항이다.
픽처 래스터 스캔의 CTB 어드레스에서 서브픽처 인덱스로의 변환을 지정하는, 0에서 PicSizeInCtbsY -1까지를 포함하는 범위 ctbAddrR에 대한 목록 CtbToSubpicIdx [ctbAddrRs]는 다음과 같이 유도된다:
Figure pct00031
i 번째 서브픽처에서 직사각형 슬라이스의 수를 지정하는, NumSlicesInSubpic [i] 목록은 다음과 같이 유도된다:
Figure pct00032
Figure pct00033
7.3.4.3 픽처 파라미터 세트 RBSP 시맨틱
1과 동일한 subpic_id_mapping_in_pps_flag는 서브픽처 ID 매핑이 PPS에서 시그널링되는 것을 지정한다.
0과 동일한 subpic_id_mapping_in_pps_flag는 서브픽처 ID 매핑이 PPS에서 시그널링되지 않음을 지정한다. subpic_id_mapping_explicitly_signalled_flag가 0이거나 subpic_id_mapping_in_sps_flag가 1과 동일하면 subpic_id_mapping_in_pps_flag의 값은 0과 같아야 한다. 그렇지 않으면(subpic_id_mapping_explicitly_signalled_flag는 1과 동일하고 subpic_id_mapping_in_sps_flag는 0과 같다), subpic_id_mapping_in_pps_flag의 값은 1과 동일해야 한다.
pps_num_subpics_minus1은 sps_num_subpics_minus1과 동일해야 한다.
pps_subpic_id_len_minus1은 sps_subpic_id_len_minus1과 동일해야 한다.
pps_subpic_id[i]는 i번째 서브픽처의 서브픽처 ID를 지정한다. pps_subpic_id[i] 신택스 요소의 길이는 pps_subpic_id_len_minus1 + 1비트이다.
변수 SubpicIdVal [i]는, 0에서 sps_num_subpics_minus1까지를 포함하는 범위의 각 i 값에 대해, 다음과 같이 유도된다:
Figure pct00034
다음 제약 조건이 모두 적용되는 것은 비트스트림 적합성의 요구 사항이다:
- 0에서 sps_num_subpics_minus1까지를 포함하는 범위에 있는 i 및 j의 두 가지 다른 값에 대해, SubpicIdVal [i]는 SubpicIdVal [j]와 동일하지 않다.
- 현재 픽처가 CLVS의 제1 픽처가 아닐 때, 0부터 sps_num_subpics_minus1까지를 포함하는 범위의 i의 각 값에 대해, SubpicIdVal[i]의 값이 동일한 계층에서 디코딩 순서로 이전 픽처의 SubpicIdVal[i]의 값과 같지 않다면, 서브픽처 인덱스 i를 갖는 현재 픽처의 서브픽처의 모든 코딩된 슬라이스 NAL 유닛에 대한 nal_unit_type은 IDR_W_RADL에서 CRA_NUT까지를 포함하는 범위에 있는 특정 값과 동일해야 한다.
1과 동일한 no_pic_partition_flag는 PPS를 참조하는 각 픽처에 픽처 파티셔닝이 적용되지 않음을 지정한다.
0과 동일한 no_pic_partition_flag는 PPS를 참조하는 각 픽처가 하나 이상의 타일 또는 슬라이스로 파티셔닝될 수 있음을 지정한다.
no_pic_partition_flag의 값이 CLVS 내의 코딩된 픽처에 의해 참조되는 모든 PPS에 대해 동일해야 하는 것은 비트스트림 적합성의 요구사항이다.
sps_num_subpics_minus1 + 1의 값이 1보다 클 때 no_pic_partition_flag의 값이 1과 동일하지 않아야 하는 것은 비트스트림 적합성의 요구 사항이다.
pps_log2_ctu_size_minus5 plus 5는 각 CTU의 루마 코딩 트리 블록 크기를 명시한다.
pps_log2_ctu_size_minus5는 sps_log2_ctu_size_minus5와 동일해야 한다.
num_exp_tile_columns_minus1 더하기 1은 명시적으로 제공된 타일 열 너비의 수를 지정한다. num_exp_tile_columns_minus1의 값은 0에서 PicWidthInCtbsY -1까지를 포함하는 범위에 있어야 한다. no_pic_partition_flag가 1과 동일할 때, num_exp_tile_columns_minus1의 값은 0과 동일한 것으로 유추된다.
num_exp_tile_rows_minus1 더하기 1은 명시적으로 제공된 타일 행 높이의 수를 지정한다. num_exp_tile_rows_minus1의 값은 0에서 PicHeightInCtbsY -1까지를 포함하는 범위에 있어야 한다. no_pic_partition_flag가 1과 동일할 때, num_tile_rows_minus1의 값은 0과 동일한 것으로 유추된다.
tile_column_width_minus1 [i] 더하기 1은 0에서 num_exp_tile_columns_minus1 -1까지를 포함하는 범위의 i에 대한 CTB 유닛으로 i번째 타일 열의 너비를 지정한다.
tile_column_width_minus1 [num_exp_tile_columns_minus1]은 6.5.1절에 지정된 대로 인덱스가 num_exp_tile_columns_minus1 이상인 타일 열의 너비를 유도하는 데 사용된다. tile_column_width_minus1[i]의 값은 0부터 PicWidthInCtbsY -1까지를 포함하는 범위에 있어야 한다. 존재하지 않을 때, tile_column_width_minus1[0]의 값은 PicWidthInCtbsY -1과 동일한 것으로 유추된다.
tile_row_height_minus1 [i] 더하기 1은 0에서 num_exp_tile_rows_minus1 -1까지를 포함하는 범위의 i에 대한 CTB 유닛으로 i번째 타일 행의 높이를 지정한다. tile_row_height_minus1 [num_exp_tile_rows_minus1]은 6.5.1절에 지정된 대로 인덱스가 num_exp_tile_rows_minus1보다 크거나 같은 타일 행의 높이를 유도하는 데 사용된다. tile_row_height_minus1[i]의 값은 0에서 PicHeightInCtbsY -1까지를 포함하는 범위에 있어야 한다. 존재하지 않을 때, tile_row_height_minus1[0]의 값은 PicHeightInCtbsY -1과 동일한 것으로 유추된다.
0과 동일한 rect_slice_flag는 각 슬라이스 내의 타일이 래스터 스캔 순서에 있고 슬라이스 정보가 PPS에서 시그널링되지 않음을 지정한다. 1과 동일한 rect_slice_flag는 각 슬라이스 내의 타일이 픽처의 직사각형 영역을 덮고 슬라이스 정보가 PPS에서 시그널링되는 것을 지정한다. 존재하지 않는 경우, rect_slice_flag는 1과 동일한 것으로 유추된다. subpic_info_present_flag가 1과 동일할 때, rect_slice_flag의 값은 1과 동일해야 한다.
1과 동일한 single_slice_per_subpic_flag는 각 서브픽처가 하나의 직사각형 슬라이스로 구성된다는 것을 지정한다.
0과 동일한 single_slice_per_subpic_flag는 각 서브픽처가 하나 이상의 직사각형 슬라이스로 구성될 수 있음을 지정한다. single_slice_per_subpic_flag가 1과 동일할 때, num_slices_in_pic_minus1은 sps_num_subpics_minus1과 동일한 것으로 유추된다. 존재하지 않을 때, single_slice_per_subpic_flag의 값은 0과 동일한 것으로 유추된다.
num_slices_in_pic_minus1 더하기 1은 PPS를 참조하는 각 픽처의 직사각형 슬라이스의 수를 지정한다.
num_slices_in_pic_minus1의 값은 0에서 MaxSlicesPerPicture -1까지를 포함하는의 범위에 있어야 하고, 여기서 MaxSlicesPerPicture는 부록 A에 지정되어 있다. no_pic_partition_flag가 1과 동일할 때 num_slices_in_pic_minus1의 값은 0과 동일한 것으로 유추된다.
0과 동일한 tile_idx_delta_present_flag는 tile_idx_delta 값이 PPS에 존재하지 않고 PPS를 참조하는 픽처의 모든 직사각형 슬라이스가 6.5.1절에 정의된 프로세스에 따라 래스터 순서로 지정됨을 지정한다. 1과 동일한 tile_idx_delta_present_flag는 tile_idx_delta 값이 PPS에 존재할 수 있고 PPS를 참조하는 픽처의 모든 직사각형 슬라이스가 tile_idx_delta의 값에 의해 표시된 순서로 지정된다는 것을 지정한다. 존재하지 않을 때, tile_idx_delta_present_flag의 값은 0과 동일한 것으로 유추된다.
slice_width_in_tiles_minus1 [i] 더하기 1은 타일 열 유닛으로 i번째 직사각형 슬라이스의 너비를 지정한다. slice_width_in_tiles_minus1 [i]의 값은 0에서 NumTileColumns -1까지를 포함하는 범위에 있어야 한다.
slice_width_in_tiles_minus1 [i]가 없으면, 다음이 적용된다:
- NumTileColumns가 1과 동일하면, slice_width_in_tiles_minus1[i]의 값은 0과 동일한 것으로 유추된다.
- 그렇지 않으면, slice_width_in_tiles_minus1 [i]의 값이 6.5.1절에 지정된 대로 유추된다.
slice_height_in_tiles_minus1 [i] 더하기 1은 타일 행 유닛에서 i번째 직사각형 슬라이스의 높이를 지정한다. slice_height_in_tiles_minus1 [i]의 값은 0에서 NumTileRows -1까지를 포함하는 범위에 있어야 한다.
slice_height_in_tiles_minus1 [i]가 없으면, 다음이 적용된다:
- NumTileRows가 1이거나, tile_idx_delta_present_flag가 0이고, tileIdx %NumTileColumns가 0보다 큰 경우), slice_height_in_tiles_minus1[i]의 값은 0과 동일한 것으로 유추된다.
- 그렇지 않은 경우(NumTileRows가 1이 아니고 tile_idx_delta_present_flag가 1이거나 tileIdx %NumTileColumns가 0임), tile_idx_delta_present_flag가 1이거나 tileIdx %NumTileColumns가 slice_hemin_in_in_hemin_us의 값과 동일할 때, slice_height_in_tiles_minus1 [i]의 값은 slice_height_in_tiles_minus1 [i -1] 과 동일한 것으로 유추된다.
num_exp_slices_in_tile [i]는 둘 이상의 직사각형 슬라이스를 포함하는 현재 타일에서 명시적으로 제공된 슬라이스 높이의 수를 지정한다. num_exp_slices_in_tile [i]의 값은 0에서 RowHeight [tileY] -1까지를 포함하는의 범위에 있어야 하고, 여기서 tileY는 i번째 슬라이스를 포함하는 타일 행 인덱스이다. 존재하지 않을 때, num_exp_slices_in_tile [i]의 값은 0과 동일한 것으로 유추된다. num_exp_slices_in_tile[i]가 0과 동일할 때, 변수 NumSlicesInTile[i]의 값은 1과 동일하도록 유도된다.
exp_slice_height_in_ctus_minus1 [j] 더하기 1은 현재 타일의 j번째 직사각형 슬라이스의 높이를 CTU 행 유닛으로 지정한다. exp_slice_height_in_ctus_minus1 [j]의 값은 0에서 RowHeight [tileY] -1까지의 범위에 있어야 하고, 여기서 tileY는 현재 타일의 타일 행 인덱스이다.
num_exp_slices_in_tile [i]가 0보다 크면, 변수 NumSlicesInTile [i] 및 0에서 NumSlicesInTile [i] -1까지의 범위의 k에 대한 SliceHeightInCtusMinus1 [i + k]는 다음과 같이 유도된다:
Figure pct00035
Figure pct00036
tile_idx_delta [i]는 i번째 직사각형 슬라이스에서 제1 타일의 타일 인덱스와 (i + 1) 번째 직사각형 슬라이스에서 제1 타일의 타일 인덱스 사이의 차이를 지정한다. tile_idx_delta[i]의 값은 -NumTilesInPic + 1에서 NumTilesInPic -1까지를 포함하는 범위에 있어야 한다. 존재하지 않는 경우, tile_idx_delta[i]의 값은 0과 동일한 것으로 유추된다. 존재하는 경우, tile_idx_delta[i]의 값은 0과 같지 않아야 한다.
. . .
7.4.2.4.5 VCL NAL 유닛의 순서 및 코딩된 픽처와의 연관
코딩된 픽처 내 VCL NAL 유닛의 순서는 다음과 같이 제한된다:
- 코딩된 픽처의 임의의 2개의 코딩된 슬라이스 NAL 유닛 A 및 B에 대해, subpicIdxA 및 subpicIdxB를 그들의 서브픽처 레벨 인덱스 값으로 하고 sliceAddrA 및 sliceddrB를 그들의 slice_address 값으로 둔다.
- 다음 조건 중 하나가 참일 때, 코딩된 슬라이스 NAL 유닛 A는 코딩된 슬라이스 NAL 유닛 B보다 선행해야 한다:
- subpicIdxA가 subpicIdxB보다 작다.
- subpicIdxA는 subpicIdxB와 같고 sliceAddrA는 sliceAddrB보다 작다.
7.4.8.1 일반 슬라이스 헤더 시맨틱
cu_qp_delta_abs를 포함하는 코딩 유닛에 대한 루마 양자화 파라미터와 그 예측 사이의 차이를 지정하는, 변수 CuQpDeltaVal은 0과 동일하게 설정된다. cu_chroma_qp_offset_flag를 포함하는 코딩 유닛에 대한 Qp'Cb, Qp'Cr및 Qp'CbCr양자화 파라미터의 각각의 값을 결정할 때 사용될 값을 지정하는, 변수 CuQpOffsetCb, CuQpOffsetCr및 CuQpOffsetCbCr은 모두 0과 동일하게 설정된다.
1과 동일한 picture_header_in_slice_header_flag는 PH 신택스 구조가 슬라이스 헤더에 존재함을 지정한다.
0과 동일한 picture_header_in_slice_header_flag는 PH 신택스 구조가 슬라이스 헤더에 존재하지 않음을 지정한다.
picture_header_in_slice_header_flag의 값이 CLVS의 모든 코딩된 슬라이스에서 동일해야 하는 것은 비트스트림 적합성의 요구사항이다.
picture_header_in_slice_header_flag가 코딩된 슬라이스에 대해 1과 동일할 때, PH_NUT와 동일한 nal_unit_type을 갖는 VCL NAL 유닛이 CLVS에 존재하지 않아야 한다는 것은 비트스트림 적합성의 요구사항이다.
picture_header_in_slice_header_flag가 0과 동일할 때, 현재 픽처의 모든 코딩된 슬라이스는 0과 동일한 picture_header_in_slice_header_flag를 가져야 하고, 현재 PU는 PH NAL 유닛을 가져야 한다.
slice_subpic_id는 슬라이스를 포함하는 서브픽처의 서브픽처 ID를 지정한다. slice_subpic_id가 존재한다면, 변수 CurrSubpicIdx의 값은 SubpicIdVal[CurrSubpicIdx]이 slice_subpic_id와 동일하도록 유도된다. 그렇지 않으면(slice_subpic_id가 존재하지 않음), CurrSubpicIdx는 0과 동일하도록 유도된다. slice_subpic_id의 길이는 sps_subpic_id_len_minus1 + 1비트이다.
slice_address는 슬라이스의 슬라이스 어드레스를 지정한다. 존재하지 않는 경우, slice_address의 값은 0과 동일한 것으로 유추된다. rect_slice_flag가 1이고 NumSlicesInSubpic[CurrSubpicIdx]이 1과 동일할 때, slice_address의 값은 0과 동일한 것으로 유추된다.
rect_slice_flag가 0이면, 다음이 적용된다:
- 슬라이스 어드레스는 래스터 스캔 타일 인덱스이다.
- slice_address의 길이는 Ceil(Log2(NumTilesInPic)) 비트이다.
- slice_address의 값은 0부터 NumTilesInPic -1까지를 포함하는 범위에 있어야 한다.
그렇지 않으면(rect_slice_flag가 1임), 다음이 적용된다:
- 슬라이스 어드레스는 슬라이스의 서브픽처 레벨 슬라이스 인덱스이다.
- slice_address의 길이는 Ceil(Log2(NumSlicesInSubpic [CurrSubpicIdx])) 비트이다.
- slice_address의 값은 0에서 NumSlicesInSubpic [CurrSubpicIdx] -1까지를 포함하는 범위에 있어야 한다.
다음 제약 조건이 적용되는 것은 비트스트림 적합성의 요구 사항이다:
- rect_slice_flag가 0과 동일하거나 subpic_info_present_flag가 0과 동일하면, slice_address의 값은 동일한 코딩된 픽처의 다른 코딩된 슬라이스 NAL 유닛의 slice_address 값과 동일하지 않아야 한다.
- 그렇지 않으면, slice_subpic_id 및 slice_address 값의 쌍은 동일한 코딩된 픽처의 다른 코딩된 슬라이스 NAL 유닛의 slice_subpic_id 및 slice_address 값의 쌍과 동일하지 않아야 한다.
- 픽처의 슬라이스의 형상은 각 CTU가, 디코딩될 때, 픽처 경계로 구성되거나 이전에 디코딩된 CTU(들)의 경계로 구성된 전체 왼쪽 경계와 전체 상단 경계를 갖도록 해야 한다.
sh_extra_bit [i]는 1 또는 0과 동일할 수 있다. 이 사양의 이 버전을 따르는 디코더는 sh_extra_bit [i] 값을 무시해야 한다. 이 값은 이 버전의 사양에 지정된 프로필에 대한 디코더 적합성에 영향을 미치지 않는다.
num_tiles_in_slice_minus1 + 1은, 존재하는 경우, 슬라이스의 타일 수를 지정한다. num_tiles_in_slice_minus1의 값은 0에서 NumTilesInPic -1까지를 포함하는 범위에 있어야 한다.
현재 슬라이스의 CTU 수를 지정하는, 변수 NumCtusInCurrSlice 및 슬라이스 내 i 번째 CTB의 픽처 래스터 스캔 어드레스를 지정하는, 0에서 NumCtusInCurrSlice -1까지를 포함하는 범위 i에 대한 목록 CtbAddrInCurrSlice [i]는, 다음과 같이 유도된다:
Figure pct00037
Figure pct00038
변수 SubpicLeftBoundaryPos, SubpicTopBoundaryPos, SubpicRightBoundaryPos 및 SubpicBotBoundaryPos는 다음과 같이 유도된다:
Figure pct00039
3.5. 컬러 공간 및 크로마 서브샘플링(Color space and chroma subsampling)
컬러 모델(또는 컬러 시스템)이라고도 하는 컬러 공간은 일반적으로 3또는 4값 또는 컬러 컴포넌트(예를 들어, RGB)로 컬러 범위를 숫자의 줄로 묘사하는 추상적인 수학적 모델이다. 기본적으로 컬러 공간은 좌표계와 서브 공간의 정교화이다.
비디오 압축의 경우 가장 자주 사용되는 컬러 공간은 YCbCr 및 RGB이다.
YCBCR 또는 Y'CBCR로도 작성된 YCbCr, Y'CbCr 또는 Y Pb/Cb Pr/Cr은 비디오 및 디지털 픽처 시스템에서 컬러 이미지 파이프 라인의 일부로 사용되는 컬러 공간 제품군이다. Y'는 루마 컴포넌트고 CB와 CR은 청색-차이 및 적색-차이 크로마 컴포넌트다. Y'(프라임 포함) 는 루미넌스(luminance) 인 Y와 구별되고, 즉, 감마 보정 RGB 원색을 기반으로 광 강도가 비선형 인코딩된다.
크로마 서브 샘플링(Chroma subsampling)은 루마보다 컬러 차이에 대한 인간 시각 시스템의 낮은 선명도를 사용하여 루마 정보보다 크로마 정보에 대해 더 낮은 해상도를 구현하여 이미지를 인코딩하는 방식이다.
3.5.1. 4: 4: 4
3개의 Y'CbCr 컴포넌트 각각은 동일한 샘플링 레이트를 가지므로 크로마 서브 샘플링이 없다. 이 개념(scheme)은 때때로 고급 필름 스캐너(high-end film scanner)와 시네마틱 포스트 프로덕션(cinematic post production)에 사용된다.
3.5.2. 4: 2: 2
두 개의 크로마 컴포넌트는 루마 샘플 레이트의 절반으로 샘플링되고: 수직 크로마 해상도는 변경되지 않고 수평 크로마 해상도는 절반이 된다. 이것은 시각적인 차이가 거의 또는 전혀 없이 압축되지 않은 비디오 신호의 대역폭을 1/3로 감소시킨다. 4:2:2 컬러 포맷의 공칭 수직 및 수평 위치의 예는 VVC 작업 초안의 도 5에 묘사된다.
3.5.3. 4: 2: 0
4:2:0에서, 수평 샘플링이 4:1:1에 비해 두 배가 되나, 그러나 이 개념에서는 Cb 및 Cr 채널이 각 대체 라인(alternate line)에서만 샘플링되므로, 수직 해상도(vertical resolution)가 절반으로 줄어든다. 따라서 데이터 속도(data rate)는 동일하다. Cb와 Cr은 각각 수평 및 수직 모두에서 2의 인자로 서브 샘플링 된이다. 4:2:0 개념의 세 가지 변형이 있으며, 다른 수평 및 수직 사이트를 갖는다.
Figure pct00040
MPEG-2에서, Cb와 Cr이 수평으로 구비된다. Cb와 Cr은 수직 방향의 픽셀 사이에 위치된다(중간에 위치됨).
Figure pct00041
JPEG/JFIF, H.261 및 MPEG-1에서, Cb와 Cr은 대체 루마 샘플 사이의 중간에 교차하여 위치된다.
Figure pct00042
4:2:0 DV에서, Cb 및 Cr은 수평 방향으로 공동-사이트로 지정된다. 수직 방향으로는 교대 라인에 공동으로 구성된다.
표 3-1. chroma_format_idc 및 Separate_colour_plane_flag에서 유도된 SubWidthC 및 SubHeightC 값
Figure pct00043
4. 개시된 실시예에 의해 해결된 기술적 문제의 예
VVC에서 SPS/PPS/Picture 헤더/Slice 헤더의 시그널링을 위한 기존 설계는 다음과 같은 문제가 있다:
1) rect_slice_flag가 1과 동일할 때, 현재 VVC 텍스트에 따라, 다음이 적용된다:
a. slice_address는 슬라이스의 서브픽처 레벨 슬라이스 인덱스를 나타낸다.
b. 서브픽처 레벨 슬라이스 인덱스는 PPS에서 시그널링되는 순서대로 서브픽처의 슬라이스 목록에 대한 슬라이스 인덱스로 정의된다.
c. 픽처 레벨 슬라이스 인덱스는 PPS에서 시그널링되는 순서대로 픽처의 슬라이스 목록에 대한 슬라이스 인덱스로 정의된다.
d. 두 개의 서로 다른 서브픽처에 속한 슬라이스의 경우, 더 적은 서브픽처 인덱스와 연관된 것이 디코딩 순서에서 더 일찍 가고, 동일한 서브픽처에 속하는 임의의 두 슬라이스에 대해 더 적은 서브픽처 레벨 슬라이스 인덱스를 갖는 것이 디코딩 순서에서 더 일찍 간다.
e. 그리고 현재 VVC 텍스트에서 수학식 117에 의해, 현재 슬라이스의 CTU 수를 지정하는, 변수 NumCtusInCurrSlice의 유도는 픽처 레벨 슬라이스 인덱스 값이 증가하는 순서가 슬라이스의 디코딩 순서와 동일하다고 가정한다.
그러나, 일부 슬라이스가 하나의 타일을 분할한 결과인 경우, 위의 일부 측면을 위반할 수 있다. 도 6과 같이, 픽처가 수직 타일 경계에 의해 두 개의 타일로 파티셔닝되고, 두 타일 각각이 전체 픽처에 걸쳐 동일한 수평 경계에 의해 2개의 슬라이스로 파티셔닝될 때, 상위 2개의 슬라이스가 제1 서브픽처에 포함된 슬라이스와 제2 서브픽처에 포함된 하단(lower) 2개의 슬라이스로 포함되고, 하위 2개의 슬라이스는 제2 서브픽처에 포함된다. 이 경우, 현재 VVC 텍스트에 따르면, 슬라이스 래스터 스캔 순서에서 4개의 슬라이스의 픽처 레벨 슬라이스 인덱스 값은 0, 2, 1, 3이 되는 반면, 슬라이스 래스터에서 4개의 슬라이스의 디코딩 순서 인덱스 값은 0, 1, 2, 3이다. 결과적으로, NumCtusInCurrSlice의 유도가 올바르지 않고 슬라이스 데이터의 파싱(parsing)이 문제가 되고, 디코딩된 샘플 값이 올바르지 않고, 디코더가 충돌할 수 있다.
2) 슬라이스 시그널링 방법에는 두 가지 유형이 있다. 직사각형 모드에서는 모든 슬라이스 파티셔닝 정보가 PPS로 시그널링된다. 비-직사각형 모드(non-rectangular mode)에서, 슬라이스 파티셔닝 정보의 일부가 슬라이스 헤더에 표시되므로, 이 모드에서는 픽처의 모든 슬라이스를 파싱하기 전에 픽처의 전체 슬라이스 파티셔닝을 알 수 없다.
3) 직사각형 모드에서는 tile_idx_delta를 설정하여 슬라이스를 임의로 시그널링할 수 있다. 악의적인 비트스트림은 디코더를 이 메커니즘과 충돌하게 만들 수 있다.
4) 일부 실시예에서, i가 num_slices_in_pic_minus1과 동일할 때 초기화되지 않은 tile_idx_delta[i].
도 6은 픽처 파티셔닝(picture partitioning)의 예를 도시한다. 실선(Solid line)(602)은 타일의 경계를 나타내고; 점선(dashed line)(604)은 슬라이스의 경계를 나타내고 점선(606)은 서브픽처의 경계를 나타낸다. 픽처 레벨 인덱스(picture-level indices), 디코딩 순서 인덱스(decoding order indices), 4개의 슬라이스의 서브픽처 레벨 인덱스(subpicture-level indices) 및 서브픽처 및 타일의 인덱스가 도면에 표시되어 있다.
5. 예시적인 실시예들 및 기술들
상기와 같은 문제점을 해결하기 위하여 아래와 같이 정리한 방법을 개시한다.
발명은 일반적인 개념을 설명하기 위한 예시로 간주되어야 하며 좁은 의미로 해석되어서는 안된다. 또한, 이들 발명은 개별적으로 또는 임의의 방식으로 조합하여 적용될 수 있다.
1. 직사각형 슬라이스 모드의 슬라이스에 대해(즉, rect_slice_flag가 1과 동일할 때), 각 서브픽처의 각 슬라이스에 대한 픽처 레벨 슬라이스 인덱스가 유도되고, 유도된 값은 각 슬라이스의 CTU의 수의 유도에 사용된다. .
2. 서브픽처 레벨 슬라이스 인덱스는 다음과 같은 방식으로 정의/유도될 수 있다.
a. 하나의 예에서, 서브픽처 레벨 슬라이스 인덱스는 "rect_slice_flag가 1과 동일할 때 디코딩 순서에서 서브픽처의 슬라이스 목록에 대한 슬라이스 인덱스"로 정의된다.
b. 대안적으로, 서브픽처 레벨 슬라이스 인덱스는 "rect_slice_flag가 1과 동일할 때 서브픽처의 슬라이스 목록에 대한 슬라이스 인덱스로 정의되고, 식 32(실시예 1 처럼)에서 유도된 변수 SubpicLevelSliceIdx [i]에 의해 지정되고, 여기서 i는 슬라이스의 픽처 레벨 슬라이스 인덱스이다.
c. 하나의 예에서, 픽처 레벨 슬라이스 인덱스의 특정 값을 갖는 각 슬라이스의 서브픽처 인덱스가 유도된다.
d. 하나의 예에서, 픽처 레벨 슬라이스 인덱스의 특정 값을 갖는 각 슬라이스의 서브픽처 레벨 슬라이스 인덱스가 유도된다.
e. 하나의 예에서, rect_slice_flag가 1과 동일할 때, 슬라이스 어드레스의 시맨틱은 "슬라이스 어드레스는 식 32(실시예 1 처럼)에서 유도된 변수 SubpicLevelSliceIdx[i]에 의해 지정된 슬라이스의 서브픽처 레벨 슬라이스 인덱스이고, 여기서 i는 슬라이스의 픽처 레벨 슬라이스 인덱스이다"로 지정된다.
3. 슬라이스의 서브픽처 레벨 슬라이스 인덱스는 슬라이스를 포함하는 제1 서브픽처의 슬라이스에 할당된다. 각 슬라이스에 대한 서브픽처 레벨 슬라이스 인덱스는 픽처 레벨 슬라이스 인덱스에 의해 인덱싱된 어레이(예를 들어, 실시예 1의 SubpicLevelSliceIdx[i])에 저장될 수 있다.
a. 하나의 예에서, 서브픽처 레벨 슬라이스 인덱스는 음이 아닌 정수이다.
b. 하나의 예에서, 슬라이스의 서브픽처 레벨 슬라이스 인덱스의 값은 0보다 크거나 동일하다.
c. 하나의 예에서, 슬라이스의 서브픽처 레벨 슬라이스 인덱스의 값은 N보다 작고, 여기서 N은 서브픽처의 슬라이스의 수이다.
d. 하나의 예에서, 제1 슬라이스(슬라이스 A)의 제1 서브픽처 레벨 슬라이스 인덱스(subIdxA로 표시됨)는, 제1 슬라이스와 제2 슬라이스는 동일한 서브픽처에 있다면, 제2 슬라이스(슬라이스 B)의 제2 서브픽처 레벨 슬라이스 인덱스(subIdxB로 표시됨)와 달라야 하지만 서로 상이하다.
e. 하나의 예에서, 제1 서브픽처에서 제1 슬라이스(슬라이스 A)의 제1 서브픽처 레벨 슬라이스 인덱스(subIdxA로 표시됨)가 동일한 제1 서브픽처의 제2 슬라이스(슬라이스 B)의 제2 서브픽처 레벨 슬라이스 인덱스(subIdxB로 표시됨)보다 작은 경우, IdxA는 IdxB보다 작고, 여기서 idxA 및 idxB는 각각 슬라이스 A 및 슬라이스 B에 대한 전체 픽처의 슬라이스 인덱스(일명 픽처 레벨 슬라이스 인덱스, 예를 들어, sliceIdx)를 나타낸다.
f. 하나의 예에서, 제1 서브픽처에서 제1 슬라이스(슬라이스 A)의 제1 서브픽처 레벨 슬라이스 인덱스(subIdxA로 표시됨)가 동일한 제1 서브픽처의 제2 슬라이스(슬라이스 B)의 제2 서브픽처 레벨 슬라이스 인덱스(subIdxB로 표시됨)보다 작은 경우, 슬라이스 A는 디코딩 순서에서 슬라이스 B보다 앞서 있다.
g. 하나의 예에서, 서브픽처의 서브픽처 레벨 슬라이스 인덱스는 픽처 레벨 슬라이스 인덱스(예를 들어, sliceIdx)에 기초하여 유도된다.
4. 서브픽처 내의 서브픽처 레벨 슬라이스 인덱스와 픽처 레벨 슬라이스 인덱스 사이의 매핑 함수/표를 유도하는 것이 제안된다.
a. 하나의 예에서, 2차원 어레이 PicLevelSliceIdx[subPicIdx][SubPicLevelSliceIdx]는 서브픽처의 서브픽처 레벨 슬라이스 인덱스를 픽처 레벨 슬라이스 인덱스에 매핑하기 위해 유도되고, 여기서 PicLevelSliceIdx는 슬라이스의 픽처 레벨 슬라이스 인덱스를 나타내고, subPicIdx는 서브픽처의 인덱스를 나타내고, SubPicLevelSliceIdx는 서브픽처에서 슬라이스의 서브픽처 레벨 슬라이스 인덱스를 나타낸다.
i. 하나의 예에서, 어레이 NumSlicesInSubpic [subPicIdx]는 PicLevelSliceIdx를 유도하는 데 사용되고, 여기서 NumSlicesInSubpic [subPicIdx]는 subPicIdx와 동일한 인덱스를 갖는 서브픽처의 슬라이스의 수를 나타낸다.
1) 하나의 예에서, NumSlicesInSubpic [subPicIdx] 및 PicLevelSliceIdx [subPicIdx] [SubPicLevelSliceIdx]는 모든 슬라이스를 픽처 레벨 슬라이스 인덱스의 순서로 스캔함으로써 단일 프로세스에서 유도된다.
a. NumSlicesInSubpic [subPicIdx]는 프로세스 전에 모든 유효한 subPicIdx에 대해 0으로 설정된다.
b. 픽처 레벨 인덱스가 S인 슬라이스를 확인할 때 서브픽처 인덱스가 P인 서브픽처에 있으면, PicLevelSliceIdx [P] [NumSlicesInSubpic [P] ]가 S와 동일하게 설정되고, 그후 NumSlicesInSubpic [P]가 NumSlicesInSubpic [P] + 1과 동일하게 설정된다.
ii. 하나의 예에서, SliceIdxInPic [subPicIdx] [SubPicLevelSliceIdx]는 픽처 레벨 슬라이스 인덱스(예를 들어, picLevelSliceIdx)를 유도하는 데 사용되고, 이는 그 다음 슬라이스 헤더를 파싱할 때 슬라이스에 있는 CTB의 수 및/또는 어드레스를 유도하는 데 사용된다.
5. 하나의 타일이 둘 이상의 서브픽처에 있을 수 없다는 것은 적합성 비트스트림에 의해 요구된다.
6. 하나의 서브픽처가 슬라이스 A와 슬라이스 B로 표시된 두 개의 슬라이스를 포함할 수 없다는 것이 적합성 비트스트림에 의해 요구되고, 여기서 슬라이스 A는 타일 A에 있지만 타일 A보다 작고, 슬라이스 B는 타일 B에 있지만 타일 B보다 작고, 타일 A와 타일 B는 상이하다.
7. 픽처의 타일 및/또는 슬라이스 파티셔닝 정보가 연관된 픽처 헤더에서 시그널링될 수 있다는 것이 제안된다.
a. 하나의 예에서, 픽처의 타일 및/또는 슬라이스 파티셔닝 정보가 PPS에서 시그널링되는지 또는 연관된 픽처 헤더에서 시그널링되는지 여부는 연관된 PPS에서 시그널링된다.
b. 하나의 예에서, 픽처의 타일 및/또는 슬라이스 파티셔닝 정보가 연관된 픽처 헤더에 있는지 여부는 픽처 헤더에서 시그널링된다.
i. 하나의 예에서, 픽처의 타일 및/또는 슬라이스 파티셔닝 정보가 연관된 PPS 및 연관된 픽처 헤더 모두에서 시그널링되면, 픽처 헤더에서 시그널링된 픽처의 타일 및/또는 슬라이스 파티셔닝 정보가 사용될 것이다.
ii. 하나의 예에서, 픽처의 타일 및/또는 슬라이스 파티셔닝 정보가 연관된 PPS 및 연관된 픽처 헤더 모두에서 시그널링되면, PPS에서 시그널링된 픽처의 타일 및/또는 슬라이스 파티셔닝 정보가 사용될 것이다.
c. 하나의 예에서, 픽처의 타일 및/또는 슬라이스 파티셔닝 정보가 연관된 PPS 또는 연관된 픽처 헤더에서 시그널링되는지 여부를 나타내기 위해 (SPS에서와 같이) 픽처보다 높은 레벨에서 비디오 유닛에서 시그널링된다.
8. 연관된 픽처가 비-직사각형 모드로 슬라이스로 파티셔닝될 때 슬라이스 파티셔닝 정보는 슬라이스 레벨보다 높은 상위 레벨 비디오 유닛(예를 들어, PPS 및/또는 픽처 헤더)에서 시그널링되는 것이 제안된다.
a. 하나의 예에서, 슬라이스의 수(예를 들어, num_slices_in_pic_minus1)를 표시하기 위한 정보는 연관된 픽처가 비-사각형 모드로 슬라이스로 파티셔닝될 때 상위 레벨 비디오 유닛에서 시그널링될 수 있다.
b. 하나의 예에서, 연관된 픽처가 비-직사각형 모드로 슬라이스로 파티셔닝될 때 정보는 상위 레벨 비디오 유닛에서 슬라이스의 제1 블록 유닛의 인덱스(또는 어드레스, 위치 또는 좌표)를 나타낸다. 예를 들어, 블록 유닛은 CTU 또는 타일일 수 있다.
c. 하나의 예에서, 연관된 픽처가 비-직사각형 모드로 슬라이스로 파티셔닝될 때 정보는 상위 레벨 비디오 유닛에서 슬라이스의 블록-유닛의 수를 나타낸다. 예를 들어, 블록 유닛은 CTU 또는 타일일 수 있다.
d. 하나의 예에서, 슬라이스 파티셔닝 정보(예를 들어, num_tiles_in_slice_minus1)는 연관된 픽처가 비-직사각형 모드로 슬라이스로 파티셔닝될 때 슬라이스 헤더에서 시그널링되지 않는다.
e. 하나의 예에서, 슬라이스 인덱스는 연관된 픽처가 비-직사각형 모드로 슬라이스로 파티셔닝될 때 슬라이스 헤더에서 시그널링된다.
i. 하나의 예에서, slice_address는 연관된 픽처가 비-직사각형 모드를 사용하여 슬라이스로 파티셔닝될 때 픽처 레벨 슬라이스 인덱스로 해석된다.
f. 하나의 예에서, 픽처의 각 슬라이스의 파티셔닝 정보(예를 들어, 제1 블록 유닛의 인덱스 및/또는 블록 유닛 수)는 연관된 픽처가 비-직사각형 모드로 슬라이스로 파티셔닝될 때 상위 레벨 비디오 유닛에서 순서대로 시그널링될 수 있다.
i. 하나의 예에서, 슬라이스의 인덱스는 연관된 픽처가 비-직사각형 모드로 슬라이스로 파티셔닝될 때 상위 레벨 비디오 유닛의 각 슬라이스에 대해 시그널링될 수 있다.
ii. 하나의 예에서, 각 슬라이스의 파티셔닝 정보는 슬라이스 인덱스의 오름차순으로 시그널링된다.
1) 하나의 예에서, 각 슬라이스의 파티셔닝 정보는 슬라이스 0, 슬라이스 1, ..., 슬라이스 K-1, 슬라이스 K, 슬라이스 K+1, ...슬라이스 S-2, 슬라이스 S-1, 여기서 K는 슬라이스 인덱스를 나타내고 S는 픽처의 슬라이스 수를 나타낸다.
iii. 하나의 예에서, 각 슬라이스의 파티셔닝 정보는 슬라이스 인덱스의 내림차순으로 시그널링된다.
1) 하나의 예에서, 각 슬라이스의 파티셔닝 정보는 슬라이스 S-2, 슬라이스 S-1, ..., 슬라이스 K+1, 슬라이스 K, 슬라이스 K-1, ..., 슬라이스 1, 슬라이스 0의 순서로 시그널링되고, 여기서 K는 슬라이스 인덱스를 나타내고 S는 픽처의 슬라이스 수를 나타낸다.
iv. 하나의 예에서, 슬라이스에 대한 제1 블록 유닛의 인덱스는 연관된 픽처가 비-직사각형 모드로 슬라이스로 파티셔닝될 때 상위 레벨 비디오 유닛에서 시그널링되지 않을 수도 있다.
1) 예를 들어, 슬라이스 0(슬라이스 인덱스가 0인 슬라이스)에 대한 제1 블록 유닛의 인덱스는 0으로 유추된다.
2) 예를 들어, 슬라이스 K에 대한 제1 블록 유닛의 인덱스(슬라이스 인덱스가 K인 슬라이스, K > 0)는
Figure pct00044
으로 유추되고, 여기서 Ni는 슬라이스i의 블록 유닛 수를 나타낸다.
v. 하나의 예에서, 슬라이스에 대한 제1 블록 유닛의 인덱스는 연관된 픽처가 비-직사각형 모드로 슬라이스로 파티셔닝될 때 상위 레벨 비디오 유닛에서 시그널링되지 않을 수도 있다.
1) 예를 들어, 슬라이스 0(슬라이스 인덱스가 0인 슬라이스)에 대한 제1 블록 유닛의 인덱스는 0으로 유추된다.
2) 예를 들어, 슬라이스 K에 대한 제1 블록 유닛의 인덱스(슬라이스 인덱스가 K인 슬라이스, K > 0)는
Figure pct00045
으로 유추되고, 여기서 Ni는 슬라이스i의 블록 유닛 수를 나타낸다.
vi. 하나의 예에서, 슬라이스에 대한 블록 유닛의 수는 연관된 픽처가 비-직사각형 모드로 슬라이스로 파티셔닝될 때 상위 레벨 비디오 유닛에서 시그널링되지 않을 수도 있다.
1) 슬라이스 0에 대한 블록 유닛의 수는 픽처에 하나의 슬라이스가 있고 픽처에 M개의 블록 유닛이 있는 경우 M이다.
2) 예를 들어, 슬라이스 K(슬라이스 인덱스가 0인 슬라이스)에 대한 블록 유닛의 수는 TK+1-TK로 유추되고, 여기서 TK는 슬라이스 k에 대한 제1 블록 유닛의 인덱스를 나타내고, K < S -1일 때, S는 픽처의 슬라이스 수이고 S > 1이다.
3) 예를 들어, 슬라이스 S-1에 대한 블록 유닛의 수는
Figure pct00046
으로 유추되고, 여기서 S는 픽처의 슬라이스 수이고 S > 1이며, M은 픽처의 블록 유닛 수이다.
vii. 하나의 예에서, 하나 이상의 슬라이스의 파티셔닝 정보는 연관된 픽처가 비-직사각형 모드로 슬라이스로 파티셔닝될 때 상위 레벨 비디오 유닛에서 시그널링되지 않을 수도 있다.
1) 하나의 예에서, 상위 레벨 비디오 유닛에서 시그널링되지 않은 하나 이상의 슬라이스의 파티셔닝 정보는 시그널링될 다른 슬라이스의 파티셔닝 정보에 의해 유추될 수 있다.
2) 하나의 예에서, 마지막 C 슬라이스의 파티셔닝 정보는 시그널링되지 않을 수 있다. 예를 들어. C는 1과 동일하다.
3) 예를 들어, 슬라이스 S-1에 대한 블록 유닛의 수는 시그널링되지 않고, 여기서 S는 픽처의 슬라이스 수이고 S > 1이다.
a. 예를 들어, 슬라이스 S-1에 대한 블록 유닛의 수는
Figure pct00047
으로 유추되고, 여기서 픽처에는 M개의 블록 유닛이 있다.
9. 직사각형 파티셔닝을 적용하는지, 비-직사각형 파티셔닝을 적용하는지에 따라 픽처의 최소 슬라이스 수가 다를 수 있음이 제안된다.
a. 하나의 예에서, 비-사각형 파티셔닝 모드가 적용되는 경우 픽처는 적어도 2개의 슬라이스로 파티셔닝되고, 직사각형 파티셔닝 모드가 적용되는 경우 픽처가 적어도 하나의 슬라이스로 파티셔닝된다.
i. 예를 들어, 픽처의 슬라이스 수를 지정하는 num_slices_in_pic_minus2 더하기 2는 비-직사각형 파티셔닝 모드가 적용되는 경우 시그널링될 수 있다.
b. 하나의 예에서, 픽처는 비-직사각형 파티셔닝 모드가 적용되는 경우 적어도 하나의 슬라이스로 파티셔닝되고, 픽처는 직사각형 파티셔닝 모드가 적용되는 경우 적어도 하나의 슬라이스로 파티셔닝된다.
i. 예를 들어, 직사각형 파티셔닝 모드가 적용되는 경우 픽처의 슬라이스 수를 지정하는 num_slices_in_pic_minus2 더하기 2가 시그널링될 수 있다.
c. 하나의 예에서, 픽처가 서브 픽처로 파티셔닝되지 않거나 하나의 서브 픽처로만 파티셔닝된 경우, 직사각형 파티셔닝이 적용되는지, 비-직사각형 파티셔닝이 적용되는지에 따라 픽처의 최소 슬라이스 수가 다를 수 있다.
10. 파티셔닝 정보가 PPS나 픽처 헤더와 같은 비디오 유닛으로 시그널링될 때 슬라이스는왼쪽 상단 위치와 슬라이스의 너비/높이로 표현되는 것이 제안된다.
a. 하나의 예에서, 왼쪽 상단 블록 유닛(CTU 또는 타일과 같은)의 인덱스/위치/좌표 및/또는 비디오 유닛으로 측정된 너비(CTU 또는 타일과 같은), 및/또는 비디오 유닛으로 측정된 높이(슬라이스의 CTU 또는 타일과 같은)가 시그널링된다.
b. 하나의 예에서, 왼쪽 상단 위치 및 각 슬라이스의 폭/높이 정보를 순서대로 시그널링된다.
i. 예를 들어, 각 슬라이스의 왼쪽 상단 위치 및 너비/높이 정보는 0, 1, 2, ..., S-1과 같은 슬라이스 인덱스의 오름차순으로 시그널링되고, 여기서 S는 픽처의 슬라이스의 수이다.
11. SPS/PPS/픽처 헤더와 같은 비디오 유닛에서 서브픽처의 슬라이스에 대한 파티셔닝 정보(예를 들어, 위치/폭/높이)를 시그널링하는 것이 제안된다.
a. 하나의 예에서, 각 서브픽처에 대한 슬라이스 파티셔닝 정보는 순서대로 시그널링된다.
i. 예를 들어, 각 서브픽처에 대한 슬라이스 파티셔닝 정보는 서브픽처 인덱스의 오름차순으로 시그널링된다.
b. 하나의 예에서, 서브픽처의 각 슬라이스에 대한 파티셔닝 정보(예를 들어, 위치/폭/높이)는 순서대로 시그널링된다.
i. 하나의 예에서, 서브픽처의 각 슬라이스에 대한 파티셔닝 정보(예를 들어, 위치/폭/높이)는 서브픽처 레벨 슬라이스 인덱스의 오름차순으로 시그널링된다.
12. i 번째 직사각형 슬라이스의 제1 타일의 타일 인덱스와 (i + 1) 번째 직사각형 슬라이스(tile_idx_delta[i]로 표시됨)의 제1 타일의 타일 인덱스 사이의 차이는 시그널링되지 않으나 유도되는 것으로 제안된다.
a. 하나의 예에서, (i + 1)번째 직사각형 슬라이스에서 제1 타일의 타일 인덱스는 0번째 직사각형 슬라이스로부터 i번째 직사각형 슬라이스까지의 직사각형 슬라이스에 기초하여 유도된다.
b. 하나의 예에서, (i + 1)번째 직사각형 슬라이스에서 제1 타일의 타일 인덱스는 0번째 직사각형 슬라이스에서 i번째 직사각형 슬라이스 내부가 아닌, 타일의 최소 인덱스가 되도록 유도된다.
13. 타일 열/행의 수(예를 들어, NumTileColumns 또는 NumTileRows)를 유도하기 위한 정보의 시그널링은 픽처의 너비와 CTU의 크기 사이의 관계에 따라 조절될 수 있다고 제안된다.
a. 예를 들어, num_exp_tile_columns_minus1 및/또는 tile_column_width_minus1은 픽처의 너비가 CTU의 크기 또는 너비보다 작거나 동일하면 시그널링되지 않을 수 있다.
b. 예를 들어, num_exp_tile_rows_minus1 및/또는 tile_row_height_minus1은 픽처의 높이가 CTU의 크기 또는 높이보다 작거나 동일하면 시그널링되지 않을 수 있다.
14. Slice_subpic_id가 존재할 때 SubpicIdVal[CurrSubpicIdx]이 slice_subpic_id와 동일함을 충족하는 CurrSubpicIdx는 오직 하나여야 한다.
15. rect_slice_flag가 0과 동일하거나 subpic_info_present_flag가 0과 동일하면, slice_address + i의 값은, 여기서 i는 0에서 num_tiles_in_slice_minus1까지를 포함하는 범위이고, slice_address + j의 값과 동일하지 않아야 하고, 여기서 j는, 동일한 코딩된 픽처의 임의의 다른 코딩된 슬라이스 NAL 유닛의, 0에서 num_tiles_in_slice_minus1까지를 포함하는 범위에 있고, 여기서 i는 범위 내에 있다.
16. 픽처에 균일한 스페이싱 타일과 불균일한 스페이싱 타일이 모두 있는 경우, 타일 레이아웃의 유형을 지정하기 위해 신택스 요소가 PPS(또는 SPS)로 시그널링될 수 있다.
a. 하나의 예에서, 타일 레이아웃이 균일한 간격이 뒤따르는 불균일한 간격인지, 또는 균일한 간격이 뒤따르는 불균일한 간격인지를 지정하기 위해 PPS에서 시그널링되는 신택스 플래그가 있을 수 있다.
b. 예를 들어, 비균일 간격 타일이 있을 때마다, 명시적으로 제공된 타일 열/행의 수(예를 들어, num_exp_tile_columns_minus1, num_exp_tile_rows_minus1)는 비균일 타일의 총 수보다 작지 않을 수 있다.
c. 예를 들어, 균일한 간격 타일이 있을 때마다 명시적으로 제공된 타일 열/행의 수(예를 들어, num_exp_tile_columns_minus1, num_exp_tile_rows_minus1)는 균일한 타일의 총 수보다 작거나 동일할 수 있다.
d. 타일 레이아웃이 균일한 간격 뒤에 균일하지 않은 간격이 있는 경우(즉, 픽처가 균일한 간격 타일로 시작하고 다중의 균일하지 않은 간격 타일로 끝나는 경우),
i. 하나의 예에서, 픽처의 후자에 위치한 불균일한 간격 타일에 대한 타일 열의 너비는 먼저 역순으로 할당될 수 있고(즉, 타일 인덱스의 순서는 NumTileColumns, NumTileColumns -1, NumTileColumns -2, ...), 그리고 픽처의 전자에 위치한 균일한 간격 타일에 대한 타일 열의 너비는 역순으로 암시적으로 유도될 수 있다(즉, 타일 인덱스의 순서는 NumTileColumns -T, NumTileColumns -T -1, ... , 2, 1, 0, 여기서 T는 균일하지 않은 타일 열의 수를 나타냄) .
ii. 타일 행의 높이는 위에서 언급한 타일 열의 너비와 동일한 방식으로 유도될 수 있다.
17. 신택스 요소는 두 개의 직사각형 슬라이스의 대표 타일 인덱스 사이의 차이를 지정하고, 여기서 그 중 하나는 조건이 참인 경우에만 사용할 수 있는 i번째 슬라이스(예를 들어, tile_idx_delta [i] )이다.
a. 하나의 예에서, 조건은 (i < num_slices_in_pic_minus1)이고, 여기서 num_slices_in_pic_minus1 더하기 1은 픽처의 슬라이스 수를 나타낸다.
b. 하나의 예에서, 조건은 (i ! = num_slices_in_pic_minus1)이고, 여기서 num_slices_in_pic_minus1 더하기 1은 픽처의 슬라이스 수를 나타낸다.
18. 병합 추정 영역(MER) 크기(예를 들어, log2_parallel_merge_level_minus2에 의해 시그널링됨)를 시그널링하거나 해석하거나 제한할지 여부 및/또는 방법은 허용되는 최소 코딩 블록 크기(예를 들어, log2_min_luma_coding_block_size_minus2 및/또는 MinCbSizeY로 시그널링/표시됨)에 따라 달라질 수 있다.
a. 하나의 예에서, MER의 크기는 최소 허용 코딩 블록 크기보다 작을 수 없다.
i. 예를 들어, log2_parallel_merge_level_minus2는 log2_min_luma_coding_block_size_minus2 이상이어야 한다.
ii. 예를 들어, log2_parallel_merge_level_minus2는 log2_min_luma_coding_block_size_minus2 ~ CtbLog2SizeY -2 범위에 있어야 하는 것으로 요구된다.
b. 하나의 예에서, Log2(MER 크기)와 Log2(MinCbSizeY) 사이의 차이가 시그널링되고, 이는 log2_parallel_merge_level_minus_log2_mincb로 표시된다.
i. 예를 들어, log2_parallel_merge_level_minus_log2_mincb는 단항 코드(unary code)(ue)로 코딩된다.
ii. 예를 들어, log2_parallel_merge_level_minus_log2_mincb는 0에서 CtbLog2SizeY-log2_min_luma_coding_block_size_minus2 -2의 범위에 있어야 하는 것으로 요구된다.
iii. 예를 들어, Log2ParMrgLevel = log2_parallel_merge_level_minus_log2_mincb +log2_min_luma_coding_block_size_minus2 + 2이고, 여기서 Log2ParMrgLevel은 MER 크기를 제어하는 데 사용된다.
19. num_exp_slices_in_tile[i]가 0과 동일할 때, 예를 들어, sliceHeightInCtus[i]로 표시된 i번째 슬라이스에 대한 CTU 행 유닛의 슬라이스 높이가 유도되는 것이 제안된다.
a. 하나의 예에서, sliceHeightInCtus[i]는 num_exp_slices_in_tile[i]가 0과 동일할 때 RowHeight[SliceTopLeftTileIdx[i] /NumTileColumns]와 동일하도록 유도된다.
20. 픽처에서 i 번째 슬라이스를 포함하는 타일의 (num_exp_slices_in_tile [i] -1) 번째 슬라이스가 항상 존재하고 높이는 항상 exp_slice_height_in_ctus_minus1 [i] [num_exp_slices_in_tile [i] -1] + 1 CTU 행인 것이 제안된다.
a. 대안적으로, 픽처에서 i 번째 슬라이스를 포함하는 타일의 (num_exp_slices_in_tile [i] -1) 번째 슬라이스는 존재하거나 존재하지 않을 수 있고 높이는 exp_slice_height_in_ctus_minus1 [i] [num_exp_slices_in_tile [i] - 1] + 1 CTU 행보다 작거나 동일하다.
21. 직사각형 슬라이스에 대한 정보를 유도하는 동안 변수 tileIdx는 num_slices_in_pic_minus1보다 작은 픽처 레벨 슬라이스 인덱스를 갖는 슬라이스에 대해서만 업데이트되며, 즉, PPS를 참조하는 각 픽처의 마지막 슬라이스에 대해 업데이트되지 않는 것이 제안된다.
22. num_exp_tile_columns_minus1번째 타일 열은 PPS를 참조하는 픽처에 항상 존재하고 너비는 항상 tile_column_width_minus1[num_exp_tile_columns_minus1] + 1 CTBs로 제안된다.
23. num_exp_tile_rows_minus1번째 타일 행은 항상 PPS를 참조하는 픽처에 존재하고 높이는 항상 tile_column_height_minus1[num_exp_tile_rows_minus1] + 1 CTBs가 되도록 제안된다.
24. 최대 픽처 폭 및 최대 픽처 높이가 모두 CtbSizeY보다 크지 않은 경우, 신택스 요소 sps_num_subpics_minus1의 시그널링은 스킵될 수 있다고 제안된다.
a. 대안적으로, 추가적으로, 위의 조건이 참일 때 sps_num_subpics_minus1의 값은 0과 동일한 것으로 유추된다.
25. 픽처 폭이 CtbSizeY보다 크지 않은 경우, 신택스 요소 num_exp_tile_columns_minus1의 시그널링은 스킵될 수 있음을 제안된다.
b. 대안적으로, 추가적으로, 위의 조건이 참일 때 num_exp_tile_columns_minus1의 값은 0과 동일한 것으로 유추된다.
26. 픽처 높이가 CtbSizeY보다 크지 않은 경우 신택스 요소 num_exp_tile_rows_minus1의 시그널링을 스킵할 수 있음을 제안된다.
c. 대안적으로, 추가적으로, 위의 조건이 참일 때 num_exp_tile_row_minus1의 값은 0과 동일한 것으로 유추된다.
27. num_exp_tile_columns_minus1이 PicWidthInCtbsY -1과 동일할 때, 0에서 num_exp_tile_columns_minus1까지를 포함하는 범위 i에 대한 신택스 요소 tile_column_width_minus1[i]의 시그널링은 건너뛸 수 있다고 제안된다.
d. 대안적으로, 추가적으로, tile_column_width_minus1[i]의 값은 0과 동일한 것으로 유추된다.
28. num_exp_tile_rows_minus1이 PicHeightInCtbsY -1과 동일할 때, 0부터 num_exp_tile_rows_minus1까지를 포함하는 범위 i에 대한 신택스 요소 tile_row_height_minus1[i]의 시그널링은 건너뛸 수 있다고 제안된다.
e. 대안적으로, 추가적으로, tile_row_height_minus1[i]의 값은 0으로 유추된다.
29. 타일을 파티셔닝하는 균일한 슬라이스의 높이는 해당 타일의 슬라이스 높이를 나타내는 exp_slice_height_in_ctus_minus1 [] s의 마지막 항목으로 표시되도록 제안된다. 불균일 슬라이스는 명시적으로 시거널링되는 슬라이스 아래의 슬라이스이다. 예를 들어, uniformSliceHeight = exp_slice_height_in_ctus_minus1 [i] [num_exp_slices_in_tile [i] -1] + 1이다.
30. 'num_exp_tile_columns_minus1'의 너비는 재설정이 허용되지 않고, 즉, 비트스트림에서 파싱된 값(예를 들어, tile_column_width_minus1 [num_exp_tile_columns_minus1]으로 표시됨)은 다른 정보를 참조하지 않고 너비를 유도하는 데 직접 사용될 수 있음이 제안된다.
a. 하나의 예에서, 'num_exp_tile_columns_minus1' 번째 타일 열의 너비는 tile_column_width_minus1 [num_exp_tile_columns_minus1] 더하기 1로 직접 설정된다. 대안적으로, 더욱이, tile_column_width_minus1[num_exp_tile_columns_minus1]은, 예를 들어, 6.5.1절에 명시된 바와 같이, num_exp_tile_columns_minus1보다 큰 인덱스를 갖는 타일 열의 너비를 유도하는 데 사용된다.
b. 유사하게, 'num_exp_tile_columns_minus1'번째 타일 행의 높이는 재설정이 허용되지 않고, 즉, 비트스트림에서 파싱된 값(예를 들어, tile_row_height_minus1 [num_exp_tile_columns_minus1]으로 표시됨)은 다른 정보를 참조하지 않고 높이를 유도하는 데 직접 사용될 수 있다.
i. 하나의 예에서, 'num_exp_tile_columns_minus1' 번째 타일 행의 높이는 tile_row_height_minus1 [num_exp_tile_columns_minus1] 더하기 1로 직접 설정된다. 대안적으로, 더욱이, tile_row_height_minus1[num_exp_tile_columns_minus1]은, 예를 들어 6.5.1절에 명시된 바와 같이, num_exp_tile_columns_minus1보다 큰 인덱스를 갖는 타일 행의 높이를 유도하는 데 사용된다.
31. 타일에서 (num_exp_slices_in_tile [i] -1) 번째 슬라이스의 높이가 재설정될 수 없고, 즉, 비트스트림으로부터의 파싱된 값(예를 들어, exp_slice_height_in_ctus_minus1 [i] [num_exp_slices_in_tile [i] -1]에 의해 표시됨)은 다른 정보를 참조하지 않고 높이를 유도하기 위해 직접 사용될 수 있는 것으로 제안된다.
a. 하나의 예에서, 타일의 (num_exp_slices_in_tile [i] -1) 번째 슬라이스의 높이는 exp_slice_height_in_ctus_minus1 [i] [num_exp_slices_in_tile [i] -1] 더하기 1로 직접 설정된다. 대안적으로, 또한, exp_slice_height_in_ctus_minus1[i][num_exp_slices_in_tile[i]-1]은 num_exp_slices_in_tile[i]-1보다 큰 인덱스를 갖는 슬라이스의 높이를 유도하는 데 사용된다.
6. 실시예
아래의 실시예에서, 추가된 부분은 볼드체, 밑줄체 및 이탤릭체로 표시된다. 삭제된 부분은 [ [] ] 안에 표시된다.
6.1. 실시예 1: 예시적인 서브픽처 레벨 슬라이스 인덱스 변경
3 가지 정의
픽처 레벨 슬라이스 인덱스(picture-level slice index): [ [An] ] rect_slice_flag가 1과 동일할 때 PPS에서 시그널링되는 순서대로 픽처슬라이스 목록에 대한 슬라이스 인덱스.
[ [서브픽처 레벨 슬라이스 인덱스(subpicture-level slice index): rect_slice_flag가 1과 동일할 때 PPS에서 시그널링되는 순서대로 서브픽처의 슬라이스 목록에 대한 슬라이스 인덱스. ] ]
서브픽처 레벨 슬라이스 인덱스(subpicture-level slice index): rect_slice_flag가 1과 동일할 때 디코딩 순서에서 서브픽처의 슬라이스 목록에 대한 슬라이스 인덱스.
6.5.1 CTB 래스터 스캐닝(raster scanning), 타일 스캐닝(tile scanning) 및 서브픽처 스캐닝 프로세스(subpicture scanning process)
. . .
[[i번째 서브픽처의 직사각형 슬라이스의 수를 지정하는, 목록 NumSlicesInSubpic [i],] ] j번째 서브픽처의 직사각형 슬라이스의 수를 지정하는, 변수 NumSlicesInSubpic [j], 픽처 레벨 슬라이스 인덱스 i를 갖는 슬라이스의 서브픽처 인덱스를 지정하는, 변수 SubpicIdxOfSlice [i], 픽처 레벨 슬라이스 인덱스 i를 갖는 슬라이스의 서브픽처 레벨 슬라이스 인덱스를 지정하는, 변수 SubpicLevelSliceIdx [i], 및 m 번째 서브픽처에서 서브픽처 레벨 슬라이스 인덱스 n을 갖는 슬라이스에 대한 픽처 레벨 슬라이스 인덱스를 지정하는, 변수 PicLevelSliceIdx [m] [n]은 [[is]]으로 다음과 같이 유도된다:
Figure pct00048
. . .
7.4.8.1 일반 슬라이스 헤더 시맨틱
slice_address는 슬라이스의 슬라이스 어드레스를 지정한다. 존재하지 않는 경우, slice_address의 값은 0과 동일한 것으로 유추된다. rect_slice_flag가 1이고 NumSlicesInSubpic[CurrSubpicIdx]이 1과 동일할 때, slice_address의 값은 0과 동일한 것으로 유추된다.
rect_slice_flag가 0이면, 다음이 적용된다:
- 슬라이스 어드레스는 래스터 스캔 타일 인덱스이다.
- slice_address의 길이는 Ceil(Log2(NumTilesInPic)) 비트이다.
- slice_address의 값은 0부터 NumTilesInPic -1까지를 포함하는 범위에 있어야 한다.
그렇지 않으면(rect_slice_flag가 1임), 다음이 적용된다:
- 슬라이스 어드레스는 식 32에서 유도된 변수 SubpicLevelSliceIdx[i]에 의해 지정된 슬라이스의 서브픽처 레벨 슬라이스 인덱스이고, 여기서 i는 슬라이스의 픽처 레벨 슬라이스 인덱스이다.
- slice_address의 길이는 Ceil(Log2(NumSlicesInSubpic [CurrSubpicIdx])) 비트이다.
- slice_address의 값은 0에서 NumSlicesInSubpic [CurrSubpicIdx] -1까지를 포함하는 범위에 있어야 한다.
다음 제약 조건이 적용되는 것은 비트스트림 적합성의 요구 사항이다:
- rect_slice_flag가 0과 동일하거나 subpic_info_present_flag가 0과 동일하면, slice_address의 값은 동일한 코딩된 픽처의 다른 코딩된 슬라이스 NAL 유닛의 slice_address 값과 동일하지 않아야 한다.
- 그렇지 않으면, slice_subpic_id 및 slice_address 값의 쌍은 동일한 코딩된 픽처의 다른 코딩된 슬라이스 NAL 유닛의 slice_subpic_id 및 slice_address 값의 쌍과 동일하지 않아야 한다.
- 픽처의 슬라이스의 형상은 각 CTU가 디코딩될 때 픽처 경계로 구성되거나 이전에 디코딩된 CTU(들)의 경계로 구성된 전체 왼쪽 경계와 전체 상단 경계를 갖도록 해야 한다.
. . .
num_tiles_in_slice_minus1 + 1은, 존재하는 경우, 슬라이스의 타일 수를 지정한다. num_tiles_in_slice_minus1의 값은 0에서 NumTilesInPic -1까지를 포함하는 범위에 있어야 한다.
현재 슬라이스의 CTU 수를 지정하는, 변수 NumCtusInCurrSlice 및 슬라이스 내 i 번째 CTB의 픽처 래스터 스캔 어드레스를 지정하는, 0에서 NumCtusInCurrSlice -1까지를 포함하는 범위 i에 대한 목록 CtbAddrInCurrSlice [i]는, 다음과 같이 유도된다:
Figure pct00049
. . .
6.2. 실시예 2: 비-직사각형 모드에 대한 PPS의 시그널링 슬라이스
7.3.2.4 픽처 파라미터 세트 RBSP 신택스(Picture parameter set RBSP syntax)
Figure pct00050
Figure pct00051
7.3.7.1 일반 슬라이스 헤더 신택스
Figure pct00052
7.4.3.4 픽처 파라미터 세트 RBSP 시맨틱
num_slices_in_pic_minus1 더하기 1은 PPS를 참조하는 각 픽처에서 [ [직사각형] ] 슬라이스의 수를 지정한다.
num_slices_in_pic_minus1의 값은 0에서 MaxSlicesPerPicture -1까지를 포함하는의 범위에 있어야 하고, 여기서 MaxSlicesPerPicture는 부록 A에 지정되어 있다. no_pic_partition_flag가 1과 동일할 때 num_slices_in_pic_minus1의 값은 0과 동일한 것으로 유추된다. NumSlicesInPic은 num_slices_in_pic_minus1 + 1과 동일하게 설정된다.
num_tiles_in_slice_minus1 [i] 더하기 1은, 존재하는 경우, 픽처레벨 슬라이스 인덱스가 i와 동일한 슬라이스의 타일 수를 지정한다. num_tiles_in_slice_minus1[i]의 값은 0에서 NumTilesInPic -1까지를 포함하는 범위에 있어야 한다.
픽처 레벨 슬라이스 인덱스가 i와 같은 슬라이스에서 제1 타일의 타일 인덱스를 지정하는 어레이 FirstTileInSlice [i] 및 픽처 레벨 슬라이스 인덱스가 있는 슬라이스의 타일 수를 지정하는 어레이 NumTileInSlice [i] i와 동일한 것은, rect_slice_flag가 0과 동일할 때 다음과 같이 유도된다:
Figure pct00053
NumTileInSlice [num_slices_in_pic_minus1] = NumTilesInPic -CurrNumSlices
FirstTileInSlice [i]는 0보다 작지 않고 NumTilesInPic -1보다 크지 않아야 한다.
NumTileInSlice [i]는 1보다 작지 않고 NumTilesInPic보다 크지 않아야 한다.
0에서 NumSlicesInPic까지의 i에 대한 NumTileInSlice [i]의 합은 NumTilesInPic과 동일해야 한다.
. . .
7.4.8.1 일반 슬라이스 헤더 시맨틱
. . .
slice_address는 슬라이스의 슬라이스 어드레스를 지정한다. 존재하지 않는 경우, slice_address의 값은 0과 동일한 것으로 유추된다. rect_slice_flag가 1이고 NumSlicesInSubpic[CurrSubpicIdx]이 1과 동일할 때, slice_address의 값은 0과 동일한 것으로 유추된다. rect_slice_flag가 0과 같고 NumSlicesInPic이 1과 동일할 때, slice_address의 값은 0과 동일한 것으로 유추된다.
rect_slice_flag가 0이면, 다음이 적용된다:
- 슬라이스 어드레스는 슬라이스의픽처 레벨 슬라이스 인덱스[[래스터 스캔 타일 인덱스] ]이다.
- slice_address의 길이는 Ceil(Log2 (NumSlicesInPic[ [NumTilesInPic] ] ) ) 비트이다.
- slice_address의 값은 0에서NumSlicesInPic[ [NumTilesInPic] ] -1까지를 포함하는 범위에 있어야 한다.
그렇지 않으면(rect_slice_flag가 1임), 다음이 적용된다:
- 슬라이스 어드레스는 슬라이스의 서브픽처 레벨 슬라이스 인덱스이다.
- slice_address의 길이는 Ceil(Log2(NumSlicesInSubpic [CurrSubpicIdx])) 비트이다.
- slice_address의 값은 0에서 NumSlicesInSubpic [CurrSubpicIdx] -1까지를 포함하는 범위에 있어야 한다.
다음 제약 조건이 적용되는 것은 비트스트림 적합성의 요구 사항이다:
- [ [rect_slice_flag가 0과 동일하거나 subpic_info_present_flag가 0과 동일하면, slice_address의 값은 동일한 코딩된 픽처의 다른 코딩된 슬라이스 NAL 유닛의 slice_address의 값과 동일하지 않아야 한다.
- 그렇지 않으면,] ]rect_slice_flag가 1과 동일하면,slice_subpic_id 및 slice_address 값의 쌍은 동일한 코딩된 픽처의 다른 코딩된 슬라이스 NAL 유닛의 slice_subpic_id 및 slice_address 값의 쌍과 동일하지 않아야 한다.
- 픽처의 슬라이스의 형상은 각 CTU가 디코딩될 때 픽처 경계로 구성되거나 이전에 디코딩된 CTU(들)의 경계로 구성된 전체 왼쪽 경계와 전체 상단 경계를 갖도록 해야 한다.
. . .
현재 슬라이스의 CTU 수를 지정하는, 변수 NumCtusInCurrSlice 및 슬라이스 내 i 번째 CTB의 픽처 래스터 스캔 어드레스를 지정하는, 0에서 NumCtusInCurrSlice -1까지를 포함하는 범위 i에 대한 목록 CtbAddrInCurrSlice [i]는, 다음과 같이 유도된다:
Figure pct00054
6.3. 실시예 3: 픽처 차원에 대한 조건의 시그널링 타일
7.3.2.4 픽처 파라미터 세트 RBSP 신택스(Picture parameter set RBSP syntax)
Figure pct00055
Figure pct00056
Figure pct00057
6.4. 실시예 4: tile_column_width_minus1 및 tile_row_height_minus1에 대한 시맨틱의 예 1
7.4.3.4 픽처 파라미터 세트 RBSP 시맨틱
. . .
tile_column_width_minus1 [i] 더하기 1은, num_exp_tile_columns_minus1이 0보다 큰 경우, 0에서 num_exp_tile_columns_minus1 -1까지를 포함하는 범위 i에 대한 CTB 유닛으로 i번째 타일 열의 너비를 지정한다.
tile_column_width_minus1 [num_exp_tile_columns_minus1]은 6.5.1절에 지정된 대로 인덱스가 num_exp_tile_columns_minus1 이상인 타일 열의 너비를 유도하는 데 사용된다. tile_column_width_minus1[i]의 값은 0부터 PicWidthInCtbsY -1까지를 포함하는 범위에 있어야 한다. 존재하지 않을 때, tile_column_width_minus1[0]의 값은 PicWidthInCtbsY -1과 동일한 것으로 유추된다.
tile_row_height_minus1 [i] 더하기 1은, num_exp_tile_rows_minus1이 0보다 큰 경우, 0에서 num_exp_tile_rows_minus1 -1까지를 포함하는의 범위의 i에 대한 CTB 유닛으로 i번째 타일 행의 높이를 지정한다.
tile_row_height_minus1 [num_exp_tile_rows_minus1]은 6.5.1절에 지정된 대로 인덱스가 num_exp_tile_rows_minus1보다 크거나 같은 타일 행의 높이를 유도하는 데 사용된다. tile_row_height_minus1[i]의 값은 0에서 PicHeightInCtbsY -1까지를 포함하는 범위에 있어야 한다. 존재하지 않을 때, tile_row_height_minus1[0]의 값은 PicHeightInCtbsY -1과 동일한 것으로 유추된다.
. . .
6.5. 실시예 5: tile_column_width_minus1 및 tile_row_height_minus1에 대한 시맨틱의 예 2
7.4.3.4 픽처 파라미터 세트 RBSP 시맨틱
. . .
tile_column_width_minus1 [i] 더하기 1은 0에서Max(0,num_exp_tile_columns_minus1 -1)까지를 포함하는 범위의 i에 대한 CTB 유닛으로 i번째 타일 열의 너비를 지정한다.
tile_column_width_minus1 [num_exp_tile_columns_minus1]은 6.5.1절에 지정된 대로 인덱스가 num_exp_tile_columns_minus1 이상인 타일 열의 너비를 유도하는 데 사용된다. tile_column_width_minus1[i]의 값은 0부터 PicWidthInCtbsY -1까지를 포함하는 범위에 있어야 한다. 존재하지 않을 때, tile_column_width_minus1[0]의 값은 PicWidthInCtbsY -1과 동일한 것으로 유추된다.
tile_row_height_minus1 [i] 더하기 1은 0에서Max(0,num_exp_tile_rows_minus1 -1)까지를 포함하는 범위 i에 대한 CTB 유닛으로 i번째 타일 행의 높이를 지정한다. tile_row_height_minus1 [num_exp_tile_rows_minus1]은 6.5.1절에 지정된 대로 인덱스가 num_exp_tile_rows_minus1보다 크거나 같은 타일 행의 높이를 유도하는 데 사용된다. tile_row_height_minus1[i]의 값은 0에서 PicHeightInCtbsY -1까지를 포함하는 범위에 있어야 한다.
존재하지 않을 때, tile_row_height_minus1[0]의 값은 PicHeightInCtbsY -1과 동일한 것으로 유추된다.
. . .
6.6. 실시예 6: 슬라이스의 CTU 유도 예
6.5 스캐닝 프로세스
6.5.1 CTB 래스터 스캐닝(raster scanning), 타일 스캐닝(tile scanning) 및 서브픽처 스캐닝 프로세스(subpicture scanning process)
. . .
직사각형 슬라이스의 경우, i번째 슬라이스의 CTU 수를 지정하는, 0에서 num_slices_in_pic_minus1까지를 포함하는 범위 i에 대한 목록 NumCtusInSlice [i], 슬라이스의 왼쪽 상단 타일의 인덱스를 지정하는, 0에서 num_slices_in_pic_minus1까지를 포함하는 범위의 i에 대한 목록 SliceTopLeftTileIdx [i], 및 0에서 num_slices_in_pic_minus1까지를 포함하는 범위의 i에 대한 행렬 CtbAddrInSlice [i][j], 및 i 번째 슬라이스 내에서 j 번째 CTB의 픽처 래스터 스캔 어드레스를 지정하는, 0에서 NumCtusInSlice [i] -1까지를 포함하는 범위 j는, 다음과 같이 유도된다:
Figure pct00058
Figure pct00059
6.7. 실시예 7: MER 크기의 시그널링에 관해
7.3.2.3 시퀀스 파라미터 세트(Sequence parameter set) RBSP 신택스
Figure pct00060
7.4.3.3 시퀀스 파라미터 세트 RBSP 시맨틱
log2_parallel_merge_level_minus_log2_mincb + log2_min_luma_coding_block_size_minus2 + 2는 변수 Log2ParMrgLevel의 값을 지정하고, 이 값은 8.5.2.3절에서 지정된 것 같은 공간 병합 후보에 대한 유도 프로세스, 8.5.5.2절에서 지정된 것 같은 서브블록 병합 모드의 모션 벡터 및 레퍼런스 인덱스에 대한 유도 프로세스에서 사용되고, 및 8.5.2.1절의 히스토리 기반 모션 벡터 예측자 목록에 대한 업데이트 프로세스의 호출을 제어하기 위해 사용된다. log2_parallel_merge_level_minus_log2_mincb의 값은 0에서 CtbLog2SizeY -log2_min_luma_coding_block_size_minus2-2까지를 포함하는 범위에 있어야 한다. 변수 Log2ParMrgLevel는 다음과 같이 유도된다:
Log2ParMrgLevel = log2_parallel_merge_level_minus2 + log2_min_luma_coding_block_size_minus2 + 2 (68)
6.8. 실시예 8: 직사각형 슬라이스의 시그널링에 관해
6.5.1 CTB 래스터 스캐닝(raster scanning), 타일 스캐닝(tile scanning) 및 서브픽처 스캐닝 프로세스(subpicture scanning process)
. . .
픽처 래스터 스캔의 CTB 어드레스에서 서브픽처 인덱스로의 변환을 지정하는, 0에서 PicSizeInCtbsY -1까지를 포함하는 범위 ctbAddrR에 대한 ctbToSubpicIdx [ctbAddrRs] 목록은 다음과 같이 유도된다:
Figure pct00061
rect_slice_flag가 1과 동일할 때, i번째 슬라이스의 CTU 수를 지정하는, 0에서 num_slices_in_pic_minus1까지를 포함하는 범위 i에 대한 목록 NumCtusInSlice [i],
슬라이스의 제1 CTU를 포함하는 타일의 타일 인덱스를 지정하는, 0에서 num_slicesmins_in까지를 포함하는 범위 i에 대한 목록 SliceTopLeftTileIdx [i], i 번째 슬라이스 내 j 번째 CTB의 픽처 래스터 스캔 어드레스를 지정하는, 0에서 num_slices_in_pic_minus1까지를 포함하는 범위 i 및 0에서 NumCtusInSlice [i] -1까지를 포함하는 범위 j에 대한 행렬 CtbAddrInSlice [i][j], i 번째 슬라이스를 포함하는 타일(즉, SliceTopLeftTileIdx [i]와 동일한 타일 인덱스를 갖는 타일)의 슬라이스 수를 지정하는, 변수 NumSlicesInTile [i]는, 다음과 같이 유도된다:
Figure pct00062
Figure pct00063
Figure pct00064
0에서 num_slices_in_pic_minus1까지의 범위에 있는 i에 대한 NumCtusInSlice[i]의 값이 0보다 커야 하는 것은 비트스트림 적합성(bitstream conformance)의 요구 사항이다. 또한, 0에서 num_slices_in_pic_minus1까지를 포함하는 범위 i 및 0에서 NumCtusInSlice[i]-1까지를 포함하는 범위 j에 대한 행렬 CtbAddrInSlice[i][j]가, 0에서 PicSizeInCtbsY -1까지를 포함하는 범위의 모든 CTB 어드레스 각각을 단 한 번만 포함해야 하는 것은 비트스트림 적합성의 요구 사항이다.
. . .
7.3.2.4 픽처 파라미터 세트 RBSP 신택스(Picture parameter set RBSP syntax)
7.3.2.4 픽처 파라미터 세트 RBSP 신택스(Picture parameter set RBSP syntax)
Figure pct00065
Figure pct00066
7.4.3.4 픽처 파라미터 세트 시맨틱
. . .
0과 동일한 tile_idx_delta_present_flag는 tile_idx_delta [i] 신택스 요소가 PPS에 존재하지 않고 PPS를 참조하는 모든 픽처가 슬라이스 래스터 순서로 직사각형 슬라이스 행 및 직사각형 슬라이스 열로 파티셔닝됨을 지정한다.1과 동일한 tile_idx_delta_present_flag는 tile_idx_delta[i] 신택스 요소가 PPS에 존재할 수 있고 PPS를 참조하는 픽처의 모든 직사각형 슬라이스가 i의 증가하는 값에서 tile_idx_delta[i]의 값에 의해 표시된 순서로 지정된다는 것을 지정한다. 존재하지 않을 때, tile_idx_delta_present_flag의 값은 0과 동일한 것으로 유추된다.
slice_width_in_tiles_minus1 [i] 더하기 1은 타일 열 유닛으로 i번째 직사각형 슬라이스의 너비를 지정한다. slice_width_in_tiles_minus1 [i]의 값은 0에서 NumTileColumns -1까지를 포함하는 범위에 있어야 한다.
i가 num_slices_in_pic_minus1보다 작고 NumTileColumns가 1과 동일할 때, slice_width_in_tiles_minus1[i]의 값은 0과 동일한 것으로 유추된다.
slice_height_in_tiles_minus1 [i] 더하기 1은, num_exp_slices_in_tile [i]가 0일 때, 타일 행 유닛의 i번째 직사각형 슬라이스의 높이를 지정한다. slice_height_in_tiles_minus1 [i]의 값은 0에서 NumTileRows -1까지를 포함하는 범위에 있어야 한다.
i가 num_slices_in_pic_minus1보다 작고 slice_height_in_tiles_minus1[i]이 존재하지 않는 경우, NumTileRows = = 1 ?와 동일한 것으로 유추된다. 0: slice_height_in_tiles_minus1 [i -1] .
num_exp_slices_in_tile [i] 는 i 번째 슬라이스를 포함하는 타일(즉, 타일 인덱스가 SliceTopLeftTileIdx [i] 와 같은 타일)의 슬라이스에 대해 명시적으로 제공된 슬라이스 높이의 수를 지정한다. num_exp_slices_in_tile [i]의 값은 0에서 RowHeight [SliceTopLeftTileIdx [i] /NumTileColumns] -1까지를 포함하는 범위에 있어야 한다. 존재하지 않을 때, num_exp_slices_in_tile [i]의 값은 0과 동일한 것으로 유추된다.
참고 3 - num_exp_slices_in_tile [i]가 0과 동일하면, i번째 슬라이스를 포함하는 타일은 다중 슬라이스로 분할되지 않는다. 그렇지 않으면(num_exp_slices_in_tile [i]가 0보다 큼), i번째 슬라이스를 포함하는 타일은 다중 슬라이스로 분할되거나 분할되지 않을 수 있다.
exp_slice_height_in_ctus_minus1 [i] [j] 더하기 1은 CTU 행 유닛으로 i번째 슬라이스를 포함하는 타일에서 j번째 직사각형 슬라이스의 높이를 지정한다. exp_slice_height_in_ctus_minus1 [i] [j]의 값은 0에서 RowHeight [SliceTopLeftTileIdx [i] /NumTileColumns] -1까지를 포함하는 범위에 있어야 한다.
tile_idx_delta[i]는 (i+1)번째 직사각형 슬라이스에서 제1 CTU를 포함하는 타일의 타일 인덱스와 i번째 직사각형 슬라이스에서 제1 CTU를 포함하는 타일의 타일 인덱스 사이의 차이를 지정한다. tile_idx_delta[i]의 값은 -NumTilesInPic + 1에서 NumTilesInPic -1까지를 포함하는 범위에 있어야 한다. 존재하지 않는 경우, tile_idx_delta[i]의 값은 0과 동일한 것으로 유추된다. 존재하는 경우, tile_idx_delta[i]의 값은 0과 같지 않아야 한다.
. . .
6.9. 실시예 9: 직사각형 슬라이스의 시그널링에 관해
6.5.1 CTB 래스터 스캐닝(raster scanning), 타일 스캐닝(tile scanning) 및 서브픽처 스캐닝 프로세스(subpicture scanning process)
. . .
rect_slice_flag가 1과 동일할 때, i번째 슬라이스의 CTU 수를 지정하는, 0에서 num_slices_in_pic_minus1까지를 포함하는 범위 i에 대한 목록 NumCtusInSlice [i], 슬라이스의 제1 CTU를 포함하는 타일의 타일 인덱스를 지정하는, 0에서 num_slices_in_pic_minus1까지를 포함하는 범위의 i에 대한 목록 SliceTopLeftTileIdx [i], i 번째 슬라이스 내의 j번째 CTB의 픽처 래스터 스캔 어드레스를 지정하는, 0에서 num_slices_in_pic_minus1까지를 포함하는 범위의 i 및 0에서 NumCtusInSlice [i] -1까지를 포함하는 범위의 j에 대한 행렬 CtbAddrInSlice [i] [j], i 번째 슬라이스를 포함하는 타일(즉, SliceTopLeftTileIdx [i]와 동일한 타일 인덱스를 갖은 타일)의 슬라이스 수를 지정하는, 변수 NumSlicesInTile [i]는, 다음과 같이 유도된다:
Figure pct00067
Figure pct00068
Figure pct00069
. . .
대안적으로, 위의 다음 줄에서:
uniformSliceHeight = exp_slice_height_in_ctus_minus1 [i] [j] + 1
다음과 같이 변경된다:
uniformSliceHeight = exp_slice_height_in_ctus_minus1 [i] [num_exp_slices_in_tile [i] -1] + 1
6.10. 실시예 10: 서브픽처 및 타일 시그널링에 대해
6.5.1 CTB 래스터 스캐닝(raster scanning), 타일 스캐닝(tile scanning) 및 서브픽처 스캐닝 프로세스(subpicture scanning process)
타일 열의 수를 지정하는, 변수 NumTileColumns와 i번째 타일 열의 너비를 CTB 유닛으로 지정하는, 0에서 NumTileColumns -1까지를 포함하는 범위의 i에 대한 목록 colWidth [i]는 다음과 같이 유도된다:
Figure pct00070
Figure pct00071
타일 행의 수를 지정하는, 변수 NumTileRows, 및 CTB 유닛으로 j번째 타일 행의 높이를 지정하는, 0에서 NumTileRows -1까지 범위 j에 대한 목록 RowHeight [j]는 다음과 같이 유도된다:
Figure pct00072
7.3.2.3 시퀀스 파라미터 세트(Sequence parameter set) RBSP 신택스
Figure pct00073
7.3.2.4 픽처 파라미터 세트 RBSP 신택스(Picture parameter set RBSP syntax)
Figure pct00074
Figure pct00075
7.4.3.4 픽처 파라미터 세트 시맨틱
. . .
num_exp_tile_columns_minus1 더하기 1은 명시적으로 제공된 타일 열 너비의 수를 지정한다. num_exp_tile_columns_minus1의 값은 0에서 PicWidthInCtbsY -1까지를 포함하는 범위에 있어야 한다. 존재하지 않는 경우, num_exp_tile_columns_minus1의 값은 0과 동일한 것으로 유추된다.
num_exp_tile_rows_minus1 더하기 1은 명시적으로 제공된 타일 행 높이의 수를 지정한다. num_exp_tile_rows_minus1의 값은 0에서 PicHeightInCtbsY -1까지를 포함하는 범위에 있어야 한다. 존재하지 않는 경우, num_tile_rows_minus1의 값은 0과 동일한 것으로 유추된다.
tile_column_width_minus1 [i] 더하기 1은 0에서num_exp_tile_columns_minus1까지를 포함하는 범위의 i에 대한 CTB 유닛으로 i번째 타일 열의 너비를 지정한다. tile_column_width_minus1 [num_exp_tile_columns_minus1]은 6.5.1절에 지정된 대로 인덱스가 num_exp_tile_columns_minus1 보다 큰 타일 열의 너비를 유도하는 데 사용된다. tile_column_width_minus1[i]의 값은 0부터 PicWidthInCtbsY -1까지를 포함하는 범위에 있어야 한다. 존재하지 않는 경우, tile_column_width_minus1[i]의 값은no_pic_partition_flag ? (PicWidthInCtbsY -1) : 0과 동일한 것으로 유추된다.
tile_row_height_minus1 [i] 더하기 1은 0에서num_exp_tile_rows_minus1까지를 포함하는 범위의 i에 대한 CTB 유닛으로 i번째 타일 행의 높이를 지정한다. tile_row_height_minus1 [num_exp_tile_rows_minus1]은 6.5.1절에 지정된 대로 인덱스가 num_exp_tile_rows_minus1 보다 큰 타일 행의 높이를 유도하는 데 사용된다. tile_row_height_minus1[i]의 값은 0에서 PicHeightInCtbsY -1까지를 포함하는 범위에 있어야 한다. 존재하지 않을 때, tile_row_height_minus1[i]의 값은 no_pic_partition_flag(PicHeightInCtbsY -1) : 0와 동일한 것으로 유추된다.
. . .
도 7은 여기에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 처리 시스템(video processing system)(1900)을 도시하는 블록도이다. 다양한 구현은 시스템(system)(1900)의 컴포넌트 중 일부 또는 전부를 포함할 수 있다. 시스템(1900)은 비디오 콘텐츠를 수신하기 위한 입력(input)(1902)을 포함할 수 있다. 비디오 콘텐츠는 원시 또는 압축되지 않은 포맷, 예를 들어, 8 또는 10비트 다중 컴포넌트 픽셀 값으로 수신될 수 있거나 압축 또는 인코딩된 포맷일 수 있다. 입력(1902)은 네트워크 인터페이스, 주변 버스 인터페이스, 또는 저장 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예로는 이더넷, 수동 광 네트워크(PON) 등과 같은 유선 인터페이스와 Wi-Fi 또는 셀룰러 인터페이스와 같은 무선 인터페이스가 있다.
시스템(1900)은 본 문서에 설명된 다양한 코딩 또는 인코딩 방법을 구현할 수 있는 코딩 컴포넌트(coding component)(1904)를 포함할 수 있다. 코딩 컴포넌트(1904)는 비디오의 코딩된 표현을 생성하기 위해 입력(1902)으로부터 코딩 컴포넌트(1904)의 출력으로 비디오의 평균 비트레이트를 감소시킬 수 있다. 따라서 코딩 기술은 비디오 압축 또는 비디오 트랜스코딩 기술이라고도 한다. 코딩 컴포넌트(1904)의 출력은 컴포넌트(component)(1906)에 의해 표현되는 바와 같이, 연결된 통신을 통해 저장되거나 전송될 수 있다. 입력(1902)에서 수신된 비디오의 저장되거나 통신된 비트스트림(또는 코딩된) 표현은 디스플레이 인터페이스(1910)로 전송되는 픽셀 값 또는 디스플레이 가능한 비디오를 생성하기 위해 컴포넌트(1908)에 의해 사용될 수 있다. 비트스트림 표현(bitstream representation)에서 사용자가 볼 수 있는 비디오를 생성하는 프로세스를 비디오 압축 해제(decompression)라고도 한다. 또한, 특정 비디오 처리 동작을 "코딩" 동작(coding operation) 또는 툴(tools)로 지칭하지만, 코딩 툴 또는 동작이 인코더에서 사용되고 코딩 결과를 되돌리는 대응하는 디코딩 툴 또는 동작이 디코더에 의해 수행된다는 점을 이해할 것이다.
주변 버스 인터페이스 또는 디스플레이 인터페이스의 예로는 범용 직렬 버스(USB) 또는 고화질 멀티미디어 인터페이스(HDMI) 또는 디스플레이포트 등이 포함될 수 있다. 스토리지 인터페이스의 예로는 SATA(직렬 첨단 기술 첨부 파일), PCI, IDE 인터페이스 등이 있다. 본 문서에 기재된 기술은 휴대전화, 노트북, 스마트폰 또는 디지털 데이터 처리 및/또는 비디오 디스플레이를 수행할 수 있는 기타 장치와 같은 다양한 전자 기기에 구현될 수 있다.
도 8은 비디오 처리 장치(video processing apparatus)(3600)의 블록도이다. 장치(apparatus)(3600)는 여기에 설명된 방법 중 하나 이상을 구현하는 데 사용될 수 있다. 장치(3600)는 스마트폰, 태블릿, 컴퓨터, 사물 인터넷(IoT) 수신기 등으로 구현될 수 있다. 장치(3600)는 하나 이상의 프로세서(processor)(3602), 하나 이상의 메모리(memory)(3604) 및 비디오 처리 하드웨어(video processing hardware)(3606)를 포함할 수 있다. 프로세서(들)(3602)는 본 문서에 설명된 하나 이상의 방법을 구현하도록 구성될 수 있다. 메모리(메모리들)(3604)는 여기에 설명된 방법 및 기술을 구현하는 데 사용되는 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 처리 하드웨어(video processing hardware)(3606)는 하드웨어 회로에서 본 문서에 설명된 일부 기술을 구현하는 데 사용될 수 있다.
도 10는 본 개시물의 기법들을 이용할 수도 있는 예시적인 비디오 코딩 시스템(video coding system)(100)을 도시하는 블록도이다.
도 10에 도시된 바와 같이, 비디오 코딩 시스템(100)은 소스 장치(source device)(110) 및 목적 장치(destination device)(120)를 포함할 수 있다. 소스 장치(110)는 인코딩된 비디오 데이터를 생성하고, 비디오 인코딩 장치로 참조될 수 있다. 목적 장치(120)는 소스 장치(110)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있고, 비디오 디코딩 장치로 참조될 수 있다.
소스 장치(110)에는 비디오 소스(112), 비디오 인코더(114) 및 입력/출력(I/O) 인터페이스(116)가 포함될 수 있다.
비디오 소스(112)에는 비디오 캡처 장치, 비디오 컴텐츠 공급자로부터 비디오 데이터를 수신하는 인터페이스, 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템 또는 이러한 소스의 조합을 포함할 수 있다. 상기 비디오 데이터는 하나 이상의 픽처를 포함할 수 있다. 비디오 인코더(114)는 비디오 소스(112)의 비디오 데이터를 인코딩하여 비트스트림을 생성한다. 비트스트림에는 비디오 데이터의 코딩된 표현을 형성하는 비트들의 시퀀스가 포함될 수 있다. 비트스트림에는 코딩된 픽처 및 연관된 데이터가 포함될 수 있다. 코딩된 픽처는 픽처의 코딩된 표현(representation)이다. 연관된 데이터에는 시퀀스 파라미터 세트, 픽처 파라미터 세트 및 기타 신택스 구조가 포함될 수 있다. I/O 인터페이스(116)는 변조기/복조기(모뎀) 및/또는 송신기(transmitter)를 포함할 수 있다. 인코딩된 비디오 데이터는 네트워크(130a)를 거쳐, I/O 인터페이스(116)를 통해 목적 장치(120)로 직접 전송될 수 있다. 인코딩된 비디오 데이터는 목적 장치(120)에 의한 액세스를 위해 저장 매체/서버(130b)에 저장될 수도 있다.
목적 장치(120)는 I/O 인터페이스(126), 비디오 디코더(124) 및 디스플레이 장치(122)를 포함할 수 있다.
I/O 인터페이스(126)는 수신기 및/또는 모뎀을 포함할 수 있다. I/O 인터페이스(126)는 소스 장치(110) 또는 저장 매체/서버(130b)로부터 인코딩된 비디오 데이터를 획득할 수 있다. 비디오 디코더(124)는 인코딩된 비디오 데이터를 디코딩할 수 있다. 디스플레이 장치(122)는 디코딩된 비디오 데이터를 사용자에게 디스플레이 할 수 있다. 디스플레이 장치(122)는 목적 장치(120)와 통합될 수 있거나, 외부 디스플레이 장치와 인터페이스 하도록 구성된 목적 장치(120)의 외부에 위치할 수 있다.
비디오 인코더(114) 및 비디오 디코더(124)는 고효율 비디오 코딩(HEVC) 표준, 다목적 비디오 코딩(VVC) 표준 및 기타 현재 및/또는 추가 표준과 같은 비디오 압축 표준에 따라 동작할 수 있다.
도 11은 도 10에 예시된 시스템(100)의 비디오 인코더(video encoder)(114)일 수 있는 비디오 인코더(video encoder)(200)의 예를 도시하는 블록도이다.
비디오 인코더(200)는 본 개시의 기술 중 어느 또는 전부를 수행하도록 구성될 수 있다. 도 11의 예에서, 비디오 인코더(200)는 복수의 기능적 컴포넌트들을 포함한다. 본 개시에 기재된 기술은 비디오 인코더(200)의 다양한 컴포넌트들 간에 공유될 수 있다. 일부 예에서, 프로세서는 본 개시에 기재된 임의 또는 전부를 수행하기 위해 구성될 수 있다.
비디오 인코더(video encoder)(200)의 기능적 컴포넌트는 파티션 유닛(partition unit)(201)와, 모드 선택 유닛(mode select unit)(203), 모션 추정 유닛(motion estimation unit)(204), 모션 보상 유닛(motion compensation unit)(205) 및 인트라 예측 유닛(intra prediction unit)(206)을 포함할 수 있는 예측 유닛(predication unit)(202)과, 잔차 생생 유닛(residual generation unit)(207), 트랜스폼 유닛(transform unit)(208), 양자화 유닛(quantization unit)(209), 역양자화 유닛(inverse quantization unit)(210), 역트랜스폼 유닛(inverse transform unit)(211), 재구성 유닛(reconstruction unit)(212), 버퍼(buffer)(213), 및 엔트로피 인코딩 유닛(entropy encoding unit)(214)를 포함할 수 있다.
다른 예에서, 비디오 인코더(200)에는 더 많거나, 적거나, 다른 기능적 컴포넌트가 포함될 수 있다. 예를 들어, 예측 유닛(202)는 인트라 블록 카피(IBC) 유닛을 포함할 수 있다. IBC 유닛은 IBC 모드에서 적어도 하나의 레퍼런스 픽처가 현재 비디오 블록이 있는 픽처인 경우의 예측을 수행할 수 있다.
또한, 모션 추정 유닛(204) 및 모션 보정 유닛(205)과 같은 일부 컴포넌트는 고집적될 수 있으나, 도 11의 예에서는 설명의 목적을 위해 분리된 것으로 표현되었다.
파티션 장치(201)는 픽처를 하나 이상의 비디오 블록으로 파티셔닝할 수 있다. 비디오 인코더(200) 및 비디오 디코더(300)는 다양한 비디오 블록 크기를 지원할 수 있다.
모드 선택 유닛(203)는 오류 결과에 기초하여 코딩 모드, 예를 들면, 인트라 또는 인터 등을 선택하고, 결과인 인트라 또는 인터 코딩된 블록을, 잔차 생성 유닛(207)에 제공하여 잔차 블록 데이터를 생성하고, 재구성 유닛(212)으로 제공하여 레퍼런스 픽처로 사용하기 위한 인커딩된 블록을 재구성한다. 일부 예에서, 모드 선택 유닛(203)는 인트라 및 인터 예측(CIIP) 모드의 조합을 선택할 수 있고, 이 모드에서 예측은 인터 예측 시그널 및 인트라 예측 시그널에 기초한다. 모드 선택 유닛(203)는 또한, 인터 예측의 경우 블록에 대한 모션 벡터의 해상도(예를 들어, 서브 픽셀 또는 정수 픽셀 정밀도)를 선택할 수 있다.
현재 비디오 블록에서 인터 예측을 수행하기 위해, 모션 추정 유닛(204)는 버퍼(213)에서 현재 비디오 블록에 하나 이상의 레퍼런스 프레임을 비교하여 현재 비디오 블록에 대한 모션 정보를 생성할 수 있다. 모션 보상 유닛(205)는 현재 비디오 블록과 연관된 픽처 이외의 버퍼(213)로부터의 모션 정보 및 디코딩된 픽처 샘플에 기초하여 현재 비디오 블록에 대한 예측 비디오 블록을 결정할 수 있다.
모션 추정 유닛(204) 및 모션 보상 유닛(205)는 현재 비디오 블록이 I 슬라이스, P 슬라이스 또는 B 슬라이스에 있는지 여부에 따라 현재 비디오 블록에 대해 서로 다른 동작을 수행할 수 있다.
일부 예에서, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 유니-디렉셔널(uni-directional) 예측을 수행할 수 있고, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 레퍼런스 비디오 블록에 대한 list 0 또는 list 1의 레퍼런스 픽처를 검색할 수 있다. 그런 다음, 모션 추정 유닛(204)는 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 공간 변위(spatial displacement)를 나타내는 레퍼런스 비디오 블록 및 모션 벡터를 포함하는 목록 0 또는 목록 1에서 레퍼런스 픽처를 나타내는 레퍼런스 인덱스(reference index)를 생성할 수 있다. 모션 추정 유닛(204)는 레퍼런스 인덱스, 예측 디렉션 표시기 및 모션 벡터를 현재 비디오 블록의 모션 정보로 출력할 수 있다. 모션 보상 유닛(205)는 현재 비디오 블록의 동작 정보에 의해 표시된 레퍼런스 비디오 블록에 기초하여 현재 블록의 예측된 비디오 블록을 생성할 수 있다.
다른 예에서, 모션 추정 유닛(204)는 현재 비디오 블록에 대한 바이-디렉셔널(bi-directional) 예측을 수행할 수 있고, 모션 추정 유닛(204)는 현재 비디오 블록에 대한 레퍼런스 비디오 블록에 대한 목록 0에서 레퍼런스 픽처를 검색할 수 있으며, 또한 현재 비디오 블록에 대한 다른 레퍼런스 비디오 블록에 대한 목록 1에서 레퍼런스 픽처를 검색할 수 있다. 그런 다음, 모션 추정 유닛(204)는 레퍼런스 비디오 블록과 현재 비디오 블록 사이의 공간 변위를 나타내는 레퍼런스 비디오 블록 및 모션 벡터를 포함하는 목록 0 및 목록 1에서 레퍼런스 픽처를 나타내는 레퍼런스 인덱스를 생성할 수 있다. 모션 추정 유닛(204)는 현재 비디오 블록의 모션 정보로서 현재 비디오 블록의 레퍼런스 인덱스 및 모션 벡터를 출력할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록의 동작 정보에 의해 표시된 레퍼런스 비디오 블록에 기초하여 현재 비디오 블록의 예측 비디오 블록을 생성할 수 있다.
일부 예에서, 모션 추정 유닛(204)는 디코더의 디코딩 처리를 위한 전체 모션 정보 세트를 출력할 수 있다.
일부 예에서, 모션 추정 유닛(204)는 현재 비디오에 대한 전체 모션 정보 세트를 출력하지 않을 수 있다. 오히려, 모션 추정 유닛(204)는 다른 비디오 블록의 동작 정보를 참조하여 현재 비디오 블록의 모션 정보를 시그널링할 수 있다. 예를 들어, 모션 추정 유닛(motion estimation unit)(204)는 현재 비디오 블록의 모션 정보가 이웃 비디오 블록의 동작 정보와 충분히 유사하다고 결정할 수 있다.
하나의 예에서, 모션 추정 유닛(204)는 현재 비디오 블록과 연결된 신택스 구조에서 현재 비디오 블록이 다른 비디오 블록과 동일한 모션 정보를 가지고 있음을 비디오 디코더(300)에 나타내는 값을 나타낼 수 있다.
또 다른 예에서, 모션 추정 유닛(204)는 현재 비디오 블록과 연관된 신택스 구조에서, 다른 비디오 블록 및 모션 벡터 차이(MVD)를 식별할 수 있다. 모션 벡터 차이는 현재 비디오 블록의 모션 벡터와 표시된 비디오 블록의 모션 벡터 사이의 차이를 나타낸다. 비디오 디코더(300)는 현재 비디오 블록의 모션 벡터를 결정하기 위해 표시된 비디오 블록의 모션 벡터 및 모션 벡터 차이를 사용할 수 있다.
위에서 설명한 바와 같이, 비디오 인코더(200)는 모션 벡터를 예측적으로 시그널링할 수 있다. 비디오 인코더(200)에 의해 구현될 수 있는 예측 시그널링 기술의 두 가지 예는, 어드밴스드 모션 벡터 예측(AMVP) 및 병합 모드 시그널링을 포함한다.
인트라 예측 유닛(206)은 현재 비디오 블록에 대한 인트라 예측을 수행할 수 있다. 인트라 예측 유닛(206)이 현재 비디오 블록에 대한 인트라 예측을 수행하는 경우, 인트라 예측 유닛(206)는 동일 픽처에서 다른 비디오 블록의 디코딩된 샘플에 기초하여 현재 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 현재 비디오 블록에 대한 예측 데이터에는 예측된 비디오 블록 및 다양한 신택스 요소가 포함될 수 있다.
잔차 생성 유닛(207)는 현재 비디오 블록으로부터 예측된 비디오 블록의 예측 비디오 블록(예를 들어, 마이너스 기호로 표시)을 빼서 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 잔차 데이터는 현재 비디오 블록에서 샘플의 상이한 샘플 컴포넌트에 대응하는 잔차 비디오 블록을 포함할 수 있다.
다른 예에서, 현재 비디오 블록에 대한 현재 비디오 블록에 대한 잔차 데이터가 없을 수 있고, 예를 들어 스킵(skip) 모드에서, 잔차 생성 유닛(207)는 빼기 동작을 수행하지 않을 수 있다.
트랜스폼 처리 유닛(208)는 현재 비디오 블록과 연결된 잔차 비디오 블록에 하나 이상의 트랜스폼을 적용하여 현재 비디오 블록에 대해 하나 이상의 트랜스폼 계수 비디오 블록을 생성할 수 있다.
트랜스폼 처리 유닛(208)는 현재 비디오 블록과 연관된 트랜스폼 계수 비디오 블록을 생성한 후, 양자화 유닛(209)는 현재 비디오 블록과 연관된 하나 이상의 양자화 파라미터(QP) 값에 기초하여 현재 비디오 블록과 연관된 트랜스폼 계수 비디오 블록을 양자화할 수 있다.
역양자화 유닛(210)와 역트랜스폼부 유닛(211)는 트랜스폼 계수 비디오 블록으로부터 잔차 비디오 블록을 재구성하기 위해, 트랜스폼 계수 비디오 블록에 역양자화 유닛 및 역트랜스폼 유닛을 각각 적용할 수 있다. 재구성 유닛(212)는 예측 유닛(202)에 의해 생성된 하나 이상의 예측된 비디오 블록으로부터 대응하는 샘플에 재구성된 잔차 비디오 블록을 추가하여 버퍼(213)에 저장하기 위한 현재 블록과 연관된 재구성된 비디오 블록을 생성할 수 있다.
재구성 유닛(212)가 비디오 블록을 재구성한 후, 비디오 블록에서 비디오 차단 아티팩트를 줄이기 위해 루프 필터링 동작이 수행된다.
엔트로피 인코딩 유닛(214)은 비디오 인코더(200)의 다른 함수 컴포넌트로부터 데이터를 수신할 수 있다. 엔트로피 인코딩 유닛(214)가 데이터를 수신하는 경우, 엔트로피 인코딩 유닛(214)는 엔트로피 인코딩된 데이터를 생성하고 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력하기 위해 하나 이상의 엔트로피 인코딩 동작을 수행할 수 있다.
도 12는 도 10에 예시된 시스템(100)의 비디오 디코더(114)일 수 있는 비디오 디코더(300)의 예를 도시하는 블록도이다.
비디오 디코더(300)는 본 개시의 기술 중 어느 또는 전부를 수행하도록 구성될 수 있다. 도 12의 예에서, 비디오 디코더(300)는 복수의 기능적 컴포넌트를 포함한다. 본 개시에 기재된 기술은 비디오 디코더(300)의 다양한 컴포넌트들 간에 공유될 수 있다. 일부 예에서, 프로세서는 본 개시에 기재된 임의 또는 전부를 수행하기 위해 구성될 수 있다.
도 12의 예에서, 비디오 디코더(video decoder)(300)는 엔트로피 디코딩 유닛(entropy decoding unit)(301), 모션 보상 유닛(motion compensation unit)(302), 인트라 예측 유닛(intra prediction unit)(303), 역양자화 유닛(inverse quantization unit)(304), 역트랜스폼 유닛(inverse transformation uni)(305), 및 재구성 유닛(reconstruction unit)(306) 및 버퍼(buffer)(307)를 포함한다. 비디오 디코더(300)는, 일부 예에서, 비디오 인코더(200)에 대하여 기술된 인코딩 패스(pass)와 일반적으로 서로 주고받는(reciprocal) 디코딩 패스를 수행할 수 있다(도 11).
엔트로피 디코딩 유닛(301)는 인코딩된 비트스트림을 검색할 수 있다. 인코딩된 비트스트림에는 엔트로피 코딩된 비디오 데이터(예를 들어, 비디오 데이터의 인코딩된 블록)가 포함될 수 있다. 엔트로피 디코딩 유닛(301)는 엔트로피 코딩된 비디오 데이터를 디코딩할 수 있고, 엔트로피 디코딩된 비디오 데이터로부터 모션 보상 유닛(302)는 모션 벡터, 모션 벡터 정밀도, 레퍼런스 픽처 목록 인덱스 및 기타 모션 정보를 포함하는 모션 정보를 결정할 수 있다. 모션 보상 유닛(302)는, 예를 들어 AMVP 및 병합 모드를 수행하여 이러한 정보를 결정할 수 있다.
모션 보상 유닛(302)는 보간 필터에 기초하여 보간(interpolation)을 수행하여 모션 보정 블록을 생성할 수 있다. 서브 픽셀 정밀도와 함께 사용되는 보간 필터에 대한 식별자가 신택스 요소에 포함될 수 있다.
모션 보상 유닛(302)는 비디오 블록을 인코딩하는 동안 비디오 인코더(200)에서 사용하는 보간 필터를 사용하여 레퍼런스 블록의 서브 정수 픽셀에 대한 보간 값을 계산할 수 있다. 모션 보상 유닛(302)는 수신된 신택스 정보에 따라 비디오 인코더(200)에서 사용하는 보간 필터를 결정하고 보간 필터를 사용하여 예측 블록을 생성할 수 있다.
모션 보상 유닛(302)는 인코딩된 비디오 시퀀스의 프레임 및/또는 슬라이스를 인코딩하는 데 사용되는 블록의 크기, 인코딩된 비디오 시퀀스의 각 매크로 블록이 파티셔닝되는 방식을 설명하는 파티션 정보, 각 파티션이 인코딩된 방법, 각 파티션이 인코딩되는 방식을 나타내는 모드, 각 인터-인코딩된 블록에 대한 하나 이상의 레퍼런스 프레임(및 레퍼런스 프레임 목록) 및 인코딩된 비디오 시퀀스를 디코딩하는 다른 정보들을 결정하기 위해 일부 신택스 정보를 사용할 수 있다.
인트라 예측 유닛(303)는, 공간적으로 인접한 블록(adjacent block)으로부터 예측 블록을 형성하기 위해 예를 들어 비트스트림에서 수신된 인트라 예측 모드를 사용할 수 있다. 역양자화 유닛(303)는 비트스트림에서 제공되고 엔트로피 디코딩 유닛(301)에서 디코딩된 양자화된 비디오 블록 계수를 역양자화(예를 들어, 비양자화(de-quantize))한다. 역트랜스폼 유닛(Inverse transform unit)(303)은 역트랜스폼을 적용한다.
재구성 유닛(Reconstruction unit)(306)은 모션 보상 유닛(202) 또는 인트라 예측 유닛(303)에 의해 생성된 대응하는 예측 블록과 잔차 블록을 합산하여 디코딩된 블록을 형성할 수 있다. 원하는 경우, 디블로킹 필터(deblocking filter)를 적용하여 차단 아티팩트를 제거하기 위해 디코딩된 블록을 필터링할 수도 있다. 디코딩된 비디오 블록은 버퍼(307)에 저장되고, 이는 이후의 모션 보상/인트라 예측에 대한 레퍼런스 블록을 제공하고, 디스플레이 장치에서 재생하기 위한 디코딩된 비디오를 생성한다.
일부 실시예에서, 선호하는 솔루션 목록이 다음에 제공된다.
다음 솔루션은 이전 섹션(예를 들어, 항목 1)에서 논의된 기술의 예시적인 실시예를 보여준다.
1. 비디오 처리 방법(예를 들어, 도 9에 도시된 방법(900))에서, 방법은: 하나 이상의 비디오 픽처를 포함하는 비디오 사이의 변환을 수행하는 단계(902)를 포함하고, 각각의 비디오 픽처는 하나 이상의 슬라이스 및 비디오의 코딩된 표현을 포함하는 하나 이상의 서브픽처를 포함하고, 코딩된 표현은 포맷 규칙을 따르고; 포맷 규칙은, 직사각형 슬라이스 모드가 비디오 픽처에 대해 활성화되는 경우, 비디오 픽처의 각 서브픽처의 각 슬라이스에 대한 픽처 레벨 슬라이스 인덱스가 코딩된 표현에서 명시적 시그널링 없이 유도된다는 것을 지정하고; 및 포맷 규칙은 각 슬라이스의 코딩 트리 유닛의 수가 픽처 레벨 슬라이스 인덱스로부터 유도될 수 있음을 지정한다.
다음 솔루션은 이전 섹션(예를 들어, 항목 2)에서 논의된 기술의 예시적인 실시예를 보여준다.
2. 비디오 처리 방법에 있어서, 방법은: 하나 이상의 비디오 픽처를 포함하는 비디오 사이의 변환을 수행하는 단계를 포함하고, 각각의 비디오 픽처는 하나 이상의 슬라이스 및 비디오의 코딩된 표현을 포함하는 하나 이상의 서브픽처를 포함하고, 코딩된 표현은 포맷 규칙을 따르고; 포맷 규칙은 서브픽처 레벨 슬라이스 인덱스가 코딩된 표현의 서브픽처 레벨 슬라이스 인덱스를 시그널링하지 않고 코딩된 표현의 정보에 기초하여 유도가능함을 지정한다.
3. 2항의 방법에서, 포맷 규칙은, 직사각형 슬라이스 구조의 사용으로 인해,, 서브픽처 레벨 슬라이스 인덱스가 서브픽처의 슬라이스 목록의 슬라이스에 대한 인덱스에 대응한다고 지정한다.
4. 2항의 방법에서, 포맷 규칙은 서브픽처 레벨 슬라이스 인덱스가 픽처 레벨 슬라이스 인덱스의 특정 값으로부터 유도된다는 것을 지정한다.
다음 솔루션은 이전 섹션(예를 들어, 항목 5, 6)에서 논의된 기술의 예시적인 실시예를 보여준다.
5. 비디오 처리 방법으로서, 방법은: 하나 이상의 비디오 픽처를 포함하는 비디오 사이의 변환을 수행하는 단계를 포함하고, 각각의 비디오 픽처는 하나 이상의 서브픽처 및/또는 하나 이상의 타일 및 비디오의 코딩된 표현을 포함하고, 코딩된 표현은 포맷 규칙을 따르고; 및 변환은 제약 규칙에 따른다.
6. 5항의 방법에서, 제약 규칙은 타일이 하나 이상의 서브픽처에 있을 수 없음을 지정한다.
7. 5항의 방법에서, 제약 규칙은 서브픽처가 2개의 슬라이스가 속하는 대응하는 타일보다 작은 2개의 슬라이스를 포함할 수 없다는 것을 지정한다.
다음 솔루션은 이전 섹션(예를 들어, 항목 7, 8)에서 논의된 기술의 예시적인 실시예를 보여준다.
8. 비디오 처리 방법에서, 방법은: 하나 이상의 비디오 픽처를 포함하는 비디오 사이의 변환을 수행하는 단계를 포함하고, 각각의 비디오 픽처는 하나 이상의 타일 및/또는 하나 이상의 슬라이스를 포함하고; 코딩된 표현은 포냇 규칙을 따르고; 포맷 규칙은 비디오 픽처 레벨의 필드가 비디오 픽처에서 슬라이스 및/또는 타일의 분할에 관한 정보를 전달하도록 지정한다.
9. 8항의 방법에서, 필드는 비디오 픽처 헤더를 포함한다.
10. 8항의 방법에서, 필드가 픽처 파라미터 세트를 포함한다.
11. 8항 내지 10항의 방법 중 어느 한 항에서, 포맷 규칙은 비디오 픽처 레벨의 필드에 슬라이스 파티셔닝 정보를 포함함으로써 슬라이스 레벨에서 슬라이스 파티셔닝 정보를 생략하도록 지정한다.
다음 솔루션은 이전 섹션(예를 들어, 항목 5)에서 논의된 기술의 예시적인 실시예를 보여준다.
12. 비디오 처리 방법에서, 방법은: 하나 이상의 픽처를 포함하는 비디오와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 변환은 비디오 픽처가 파타셔닝되는 최소 슬라이스 수가 비디오 픽처를 파티셔닝하기 위해 직사각형 분할이 사용되는지 여부의 함수라는 파티셔닝 규칙에 따른다.
13. 12항의 방법에서, 파티셔닝 규칙은 비-직사각형 파티셔닝을 위해 적어도 2개의 슬라이스를 사용하고 직사각형 파티셔닝을 위해 적어도 하나의 슬라이스를 사용하도록 지정한다.
14. 12항의 방법에서, 파티셔닝 규칙은 또한 비디오 픽처를 파티셔닝하기 위해 얼마나 많은 서브픽처가 사용되는지 여부 및/또는 얼마나 많은 서브픽처가 사용되는지의 함수이다.
다음 솔루션은 이전 섹션(예를 들어, 항목 8-12)에서 논의된 기술의 예시적인 실시예를 보여준다.
15. 비디오 처리 방법에서, 방법은: 비디오의 비디오 영역의 비디오 슬라이스와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고; 코딩된 표현은 포냇 규칙을 따르고; 포맷 규칙은 코딩된 표현이 비디오 슬라이스의 왼쪽 상단 위치에 기초하여 비디오 슬라이스를 시그널링하도록 지정하고, 포맷 규칙은 코딩된 표현이 비디오 유닛 레벨에서 시그널링되는 파티셔닝 정보에서 비디오 슬라이스의 높이 및/또는 너비를 시그널링하도록 지정한다.
16. 15항의 방법에서, 포맷 규칙은 비디오 슬라이스가 포맷 규칙에 의해 정의된 슬라이스의 순서로 시그널링되는 것을 지정한다.
17. 15항의 방법에서, 비디오 영역은 서브픽처에 대응하고 비디오 유닛 레벨은 비디오 픽처에 대응한다.
다음 솔루션은 이전 섹션(예를 들어, 항목 12)에서 논의된 기술의 예시적인 실시예를 보여준다.
18. 비디오 처리 방법에서, 방법은: 비디오 픽처를 포함하는 비디오와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 코딩된 표현은 포냇 규칙을 따르고; 포맷 규칙은 직사각형 슬라이스의 제1 타일의 타일 인덱스와 다음 직사각형 슬라이스의 제1 타일의 타일 인덱스 사이의 차이를 시그널링하는 것을 생략하도록 지정한다.
19. 18항의 방법에서, 차이는 비디오 픽처 및 직사각형 슬라이스의 0번째 슬라이스로부터 유도될 수 있다.
다음 솔루션은 이전 섹션(예를 들어, 항목 13)에서 논의된 기술의 예시적인 실시예를 보여준다.
20. 비디오 처리 방법에서, 방법은: 비디오와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 코딩된 표현은 포냇 규칙을 따르고, 포맷 규칙은 비디오 픽처의 폭과 코딩 트리 유닛의 크기 사이의 관계가 비디오 픽처에서 타일 열 또는 행의 수를 유도하는 데 사용되는 정보의 시그널링을 제어한다.
21. 20항의 방법에서, 포맷 규칙은 비디오 픽처의 폭이 코딩 트리 유닛의 폭보다 작거나 같은 경우 타일 행의 수 또는 타일 열의 수를 시그널링하는 것을 배제하도록 지정한다.
다음 솔루션은 이전 섹션(예를 들어, 항목 16)에서 논의된 기술의 예시적인 실시예를 보여준다.
22. 비디오 처리 방법에서, 방법은: 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 코딩된 표현은 포냇 규칙을 따르고, 포맷 규칙은 타일 레이아웃 정보가 균일한 간격 타일 및 불균일한 간격 타일을 포함하는 비디오 픽처에 대한 코딩된 표현에 포함된다는 것을 지정한다.
23. 22항의 방법에서, 타일 레이아웃 정보는 픽처 파라미터 세트에 포함되는 신택스 플래그에 포함된다.
24. 22항 내지 23항의 방법 중 어느 하나에서, 명시적으로 시그널링된 타일 행 또는 열의 수는 불균일한 간격 타일의 수보다 작지 않다.
25. 22항 내지 23항의 방법 중 어느 하나에서, 명시적으로 시그널링된 타일 행 또는 열의 수는 균일한 간격 타일의 수 이상이다.
26. 1항 내지 25항의 방법 중 어느 하나에서, 비디오 영역은 비디오 코딩 유닛을 포함한다.
27. 1항 내지 26항의 방법 중 어느 하나에서, 비디오 영역은 픽처를 포함한다.
28. 1항 내지 27항의 방법 중 어느 하나에서, 변환은 비디오를 코딩된 표현으로 인코딩하는 단계를 포함한다.
29. 1항 내지 27항의 방법 중 어느 하나에서, 변환은 비디오의 픽셀 값을 생성하기 위해 코딩된 표현을 디코딩하는 단계를 포함한다.
30. 1항 내지 29항의 방법 중 하나에서 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
31. 1항 내지 29항의 방법 중 어느 하나에서 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
32. 컴퓨터 코드가 저장되어 있는 컴퓨터 프로그램에서, 코드는, 프로세서에 의해 실행 시, 프로세서로 하여금 솔루션 1 내지 29 중 어느 하나 이상에 인용된 방법을 구현하도록 한다.
33. 본 문서에 기술된 방법, 장치 및 시스템.
도 13은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(1300)은, 동작(1310)에서, 규칙에 따라 비디오의 비디오 픽처와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다. 비디오 픽처는 하나 이상의 슬라이스(slice)를 포함한다. 규칙은 2개의 직사각형 슬라이스의 타일 인덱스 사이의 차이를 나타내는 신택스 요소가 충족되는 조건에 응답하여 시그널링되도록 지정하고, 여기서 슬라이스 인덱스 중 하나는 i로 표시되고 여기서 i는 정수이다.
일부 실시예에서, 두 개의 직사각형 슬라이스의 제2 직사각형 슬라이스는 (i+1) 번째 직사각형 슬라이스로 표시되고, 신택스 요소는 (i + 1)번째 직사각형 슬라이스의 제1 코딩 트리 유닛을 포함하는 제1 타일의 제1 타일 인덱스와 i번째 직사각형 슬라이스의 제1 코딩 트리 유닛을 포함하는 제2 타일의 제2 타일 인덱스 사이의 차이를 나타낸다. 일부 실시예에서, 충족되는 적어도 하나의 조건은 (비디오 픽처의 직사각형 슬라이스의 수 -1)보다 작은 i를 포함한다. 일부 실시예에서, 충족되는 적어도 하나의 조건은 (비디오 픽처의 직사각형 슬라이스의 수 -1)와 같지 않은 i를 포함한다.
도 14는 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(1400)은, 동작(1410)에서, 비디오의 영역과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비디오 픽처는 하나 이상의 서브픽처(sub-picture)를 포함하고 각각의 서브픽처는 하나 이상의 직사각형 슬라이스를 포함한다. 규칙은 각 서브픽처의 각 직사각형 슬라이스에 대한 서브픽처 레벨의 슬라이스 인덱스가 각 슬라이스의 코딩 트리 유닛의 수를 결정하기 위해 유도되는 것을 지정한다.
일부 실시예에서, 서브픽처 레벨에서의 슬라이스 인덱스는 서브픽처의 슬라이스 목록에서 대응하는 슬라이스의 디코딩 순서에 기초하여 결정된다. 일부 실시예에서, 제1 슬라이스에 대한 서브픽처 레벨에서의 제1 슬라이스 인덱스가 제2 슬라이스에 대한 서브픽처 레벨에서의 제2 슬라이스 인덱스보다 작은 경우, 제1 슬라이스는 디코딩 순서에 따라 제2 슬라이스보다 먼저 처리된다. 일부 실시예에서, 서브픽처 레벨에서의 슬라이스 인덱스는 변수 SubpicLevelSliceIdx를 사용하여 표현된다. 일부 실시예에서, 슬라이스 어드레스는 서브픽처 레벨에서의 슬라이스 인덱스에 기초하여 결정된다. 일부 실시예에서, 슬라이스의 서브픽처 레벨에서의 슬라이스 인덱스는 슬라이스를 포함하는 제1 서브픽처에 기초하여 결정된다. 일부 실시예에서, 서브픽처 레벨에서의 슬라이스 인덱스는 음이 아닌 정수이다. 일부 실시예에서, 서브픽처 레벨에서의 슬라이스 인덱스는 0 이상이고 N보다 작으며, N은 서브픽처의 슬라이스의 수이다.
일부 실시예에서, 제1 슬라이스에 대한 서브픽처 레벨에서의 제1 슬라이스 인덱스는, 제1 슬라이스 및 제2 슬라이스가 상이한 경우에, 제2 슬라이스에 대한 서브픽처 레벨에서의 제2 슬라이스 인덱스와 상이하며, 여기서 제1 슬라이스는 슬라이스와 제2 슬라이스는 동일한 서브픽처에 있다. 일부 실시예에서, 제1 슬라이스에 대한 서브픽처 레벨에서의 제1 슬라이스 인덱스가 제2 슬라이스에 대한 서브픽처 레벨에서의 제2 슬라이스 인덱스보다 작은 경우, 제1 슬라이스에 대한 서브픽처 레벨에서의 제1 슬라이스 인덱스는 제2 슬라이스에 대한 픽처 레벨에서 제2 슬라이스 인덱스보다 작다. 일부 실시예에서, 슬라이스의 서브픽처 레벨에서의 슬라이스 인덱스는 슬라이스의 픽처 레벨에서의 슬라이스 인덱스에 기초하여 결정된다.
도 15는 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(1500)은, 동작(1510)에서, 하나 이상의 서브픽처를 포함하는 비디오의 비디오 픽처와 비디오의 비트스트림 사이의 변환을 위해, 서브픽처의 슬라이스의 서브픽처-레벨 슬라이스 인덱스(sub-picture-level slice index)와 슬라이스의 픽처 레벨 슬라이스 인덱스 사이의 매핑 관계(mapping relationship)를 결정하는 단계를 포함한다. 방법(1500)은, 동작(1520)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 매핑 관계는 픽처 레벨 슬라이스 인덱스 및 서브 픽처의 서브 픽처 인덱스를 사용하여 인덱싱되는 2차원 어레이로서 표현된다. 일부 실시예에서, 픽처 레벨 슬라이스 인덱스는 하나 이상의 서브픽처 각각의 슬라이스의 수를 나타내는 어레이에 기초하여 결정된다. 일부 실시예에서, 2차원 어레이 및 하나 이상의 서브픽처 각각의 슬라이스의 수를 나타내는 어레이는 픽처 레벨 슬라이스 인덱스의 순서로 모든 슬라이스를 스캔하는 프로세스에 기초하여 결정된다. 일부 실시예에서, 슬라이스의 픽처 레벨 슬라이스 인덱스는 매핑 관계를 사용하여 결정되고, 슬라이스의 코딩 트리 블록의 수 및/또는 코딩 트리 블록의 어드레스는 슬라이스의 픽처 레벨 슬라이스 인덱스에 기초하여 결정된다.
도 16은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(1600)은, 동작(1610)에서, 비디오의 영역과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비디오 픽처는 하나 이상의 서브픽처(sub-picture)를 포함한다. 규칙은 비디오의 타일이 비디오 픽처의 단일 서브픽처 내에 완전히 위치하도록 지정한다.
일부 실시예에서, 제1 슬라이스는 제1 타일에 위치되고, 제1 슬라이스는 제1 타일보다 작다. 제2 슬라이스는 제2 타일에 위치되고, 제2 슬라이스는 제2 타일보다 작다. 제1 타일은 제2 타일과 다르고, 제1 슬라이스와 제2 슬라이스는 서브 픽처의 상이한 슬라이스에 위치된다.
도 17은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(1700)은, 동작(1710)에서, 비디오의 비디오 픽처와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다. 비디오 픽처는 하나 이상의 서브픽처(sub-picture)를 포함한다. 비트스트림은 픽처를 파티셔닝(partitioning)하는 정보가 픽처와 연관된 신택스 구조(syntax structure)에 포함된다고 지정하는 포맷 규칙(format rule)을 따른다.
일부 실시예에서, 신택스 구조는 픽처 헤더 또는 픽처 파라미터 세트를 포함한다. 일부 실시예에서, 비디오 유닛은 픽처를 파티셔닝하는 정보가 신택스 구조에 포함되는지 여부를 나타내는 플래그를 포함한다. 일부 실시예에서, 비디오 유닛은 픽처 헤더, 픽처 파라미터 세트, 또는 시퀀스 파라미터 세트를 포함한다. 일부 실시예에서, 픽처 파티셔닝 정보가 픽처 헤더 및 픽처 파라미터 세트 모두에 포함된 경우, 픽처 헤더에 포함된 정보가 변환에 사용된다.
도 18은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(1800)은, 동작(1810)에서, 비-직사각형(non-rectangular) 형상(shape)을 갖는 하나 이상의 슬라이스를 포함하는 비디오의 비디오 픽처와 비디오의 비트스트림 사이의 변환을 위해, 비디오 픽처의 슬라이스 파티셔닝 정보를 결정하는 단계를 포함한다. 방법(1800)은, 동작(1820)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 슬라이스 파티셔닝 정보는 비디오의 비디오 유닛에 저장되고, 비디오 유닛은 픽처 파라미터 세트 또는 픽처 헤더를 포함한다. 일부 실시예에서, 비트스트림은 비디오 픽처의 슬라이스 파티셔닝 정보가 하나 이상의 슬라이스를 포함하는 비디오 유닛과 연관된 신택스 구조에 포함된다는 것을 지정하는 포맷 규칙을 따른다. 일부 실시예에서, 비디오 픽처의 슬라이스 파티셔닝 정보는 픽처의 슬라이스의 수를 나타내는 값을 포함한다. 일부 실시예에서, 비디오 픽처의 슬라이스 파티셔닝 정보는 슬라이스 내의 블록 유닛의 인덱스를 나타내는 값을 포함한다. 일부 실시예에서, 슬라이스 내의 블록 유닛의 인덱스를 나타내는 값은 비디오 픽처의 슬라이스 파티셔닝 정보에서 생략된다. 일부 실시예에서, 비디오 픽처의 슬라이스 파티셔닝 정보는 슬라이스 내의 블록 유닛의 수를 나타내는 값을 포함한다. 일부 실시예에서, 슬라이스 내의 블록 유닛의 수를 나타내는 값은 비디오 픽처의 슬라이스 파티셔닝 정보로부터 생략된다. 일부 실시예에서, 블록 유닛은 코딩 트리 유닛 또는 타일이다. 일부 실시예에서, 비디오 픽처의 슬라이스 파티셔닝 정보는 슬라이스 헤더에서 생략된다. 일부 실시예에서, 슬라이스의 슬라이스 인덱스는 슬라이스 헤더에 포함되고, 슬라이스의 픽처 레벨 슬라이스 인덱스는 슬라이스의 어드레스에 기초하여 결정된다.
일부 실시예에서, 하나 이상의 슬라이스 각각의 슬라이스 파티셔닝 정보는 비디오 유닛과 연관된 신택스 구조의 순서로 조직화된다. 일부 실시예에서, 하나 이상의 슬라이스 각각의 슬라이스 파티셔닝 정보는 오름차순으로 신택스 구조에 포함된다. 일부 실시예에서, 하나 이상의 슬라이스 각각의 슬라이스 파티셔닝 정보는 내림차순으로 신택스 구조에 포함된다.
일부 실시예에서, 하나 이상의 슬라이스 중 적어도 하나의 슬라이스 파티셔닝 정보는 비트스트림에서 생략된다. 일부 실시예에서, 하나 이상의 슬라이스 중 적어도 하나의 슬라이스 파티셔닝 정보는 비트스트림에 포함된 다른 슬라이스의 슬라이스 파티셔닝 정보로부터 유추된다. 일부 실시예에서, 슬라이스 S-1에 대한 블록 유닛의 수는 비트스트림에 포함되지 않으며, 여기서 S는 비디오 픽처의 슬라이스 수를 나타내며, S는 1보다 크다.
도 19는 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(1900)은, 동작(1910)에서, 규칙에 따라 하나 이상의 슬라이스를 포함하는 비디오의 비디오 픽처와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다. 규칙은 비디오 픽처의 슬라이스 수가 비디오 픽처에 직사각형 파티셔닝 또는 비-직사각형 파티셔닝(non-rectangular partitioning)이 적용되는지 여부에 따라 결정되는 최소 슬라이스 수 이상임을 지정한다.
일부 실시예에서, 슬라이스의 최소 개수는 비-직사각형 파티셔닝이 적용된 경우 2개이고, 직사각형 파티셔닝이 적용된 경우 슬라이스의 최소 개수는 1개이다. 일부 실시예에서, 최소 슬라이스 수는 비-직사각형 파티셔닝이 적용된 경우 1이고, 최소 슬라이스 수는 직사각형 파티셔닝이 적용된 경우 1이다. 일부 실시예에서, 슬라이스의 최소 수는 비디오 픽처의 서브픽처의 수에 기초하여 추가로 결정된다.
도 20은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(2000)은, 동작(2010)에서, 비디오의 영역과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비디오 픽처는 하나 이상의 슬라이스(slice)를 포함한다. 비디오 픽처의 슬라이스 파티셔닝 정보가 비디오 유닛의 신택스 구조에 포함된 경우, 슬라이스는왼쪽 상단 위치(top-left location)와 슬라이스의 차원(dimension)으로 표현된다.
일부 실시예에서, 슬라이스의 왼쪽 상단 위치 및 차원은 슬라이스 내에 있는 블록 유닛의 왼쪽 상단 위치, 블록 유닛의 차원, 및 블록 유닛의 차원을 사용하여 측정된 슬라이스의 차원을 사용하여 표시된다. 일부 실시예에서, 각 슬라이스의 왼쪽 상단 위치 및 각 슬라이스의 차원은 순서대로 신택스 구조에 포함된다.
도 21은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(2100)은, 동작(2110)에서, 비디오의 영역과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비디오 픽처는 하나 이상의 서브픽처를 포함하고 각각의 서브픽처는 하나 이상의 슬라이스를 포함한다. 규칙은 각 서브픽처에 있는 하나 이상의 슬라이스의 파티셔닝 정보가 비트스트림에 존재하는 방식(manner)을 지정한다.
일부 실시예에서, 비디오 유닛은 시퀀스 파라미터 세트, 픽처 파라미터 세트, 또는 픽처 헤더를 포함한다. 일부 실시예에서, 하나 이상의 서브픽처의 파티셔닝 정보는 서브픽처 인덱스에 기초하여 오름차순으로 배치된다. 일부 실시예에서, 각각의 서브픽처 내의 하나 이상의 슬라이스의 파티셔닝 정보는 서브픽처 레벨 슬라이스 인덱스에 기초하여 오름차순으로 배치된다.
도 22는 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(2200)은, 동작(2210)에서, 비디오의 영역과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비디오 픽처는 하나 이상의 직사각형 슬라이스를 포함하고 각 슬라이스는 하나 이상의 타일(tile)을 포함한다. 규칙은 i번째 직사각형 슬라이스의 제1 타일의 제1 타일 인덱스와 (i+1)번째 직사각형 슬라이스의 제1 타일의 제2 타일 인덱스 사이의 차이 사이의 시그널링이 비트스트림에서 생략된다는 것을 지정한다.
일부 실시예에서, (i+1)번째 직사각형 슬라이스의 제1 타일의 제2 타일 인덱스는 0번째부터 i번째까지 인덱싱된 직사각형 슬라이스에 기초하여 유도된다. 일부 실시예에서, (i+1)번째 직사각형 슬라이스의 제1 타일의 제2 타일 인덱스는 0번째부터 i번째까지 인덱싱된 직사각형 슬라이스에 의해 정의된 범위를 벗어나는 최소 타일 인덱스가 되도록 유도된다.
도 23은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(2300)은, 동작(2310)에서, 비디오의 비디오 픽처와 비디오의 비트스트림 사이의 변환을 위해 비디오 픽처에서 타일의 수의 열의 수 및 타일의 행의 수를 유도하기 위한 정보가 비디오 픽처의 차원과 코딩 트리 블록(coding tree block)의 차원(dimension) 사이의 관계에 응답하는 비트스트림에 조건부로 포함된다는 것을 결정하는 단계를 포함한다. 방법(2300)은 또한, 동작(2320)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 비디오 픽처의 폭이 코딩 트리 블록의 폭보다 작거나 같은 경우 정보가 생략된다. 일부 실시예에서, 비디오 픽처의 높이가 코딩 트리 블록의 높이보다 작거나 같은 경우에 정보는 생략된다.
도 24는 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(2400)은, 동작(2410)에서, 비디오의 비디오 픽처와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다. 비디오 픽처는 하나 이상의 서브픽처(sub-picture)를 포함한다. 비트스트림은, 슬라이스를 포함하는 서브픽처의 서브픽처 식별자(subpicture identifier)를 지정하는 변수(variable)가 비트스트림에 존재하는 경우, 신택스 요소(syntax element)에 해당하는 제2 변수가 변수와 동일하다는 조건을 충족하는 신택스 요소는 단 하나뿐이라는 것을 지정하는 포맷(format)을 따른다.
일부 실시예에서, 변수는 slice_subpic_id로 표시되고 제2 변수는 SubpicIdVal로 표시된다. 신택스 요소에 대응하는 신택스 요소는 SubpicIdVal [CurrSubpicIdx] 로 표현된다.
도 25는 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(2500)은, 동작(2510)에서, 비디오의 비디오 블록과 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다. 비디오 픽처는 하나 이상의 서브픽처(sub-picture)를 포함한다. 비-직사각형 파티셔닝(non-rectangular partitioning)이 적용되거나 비트스트림에서 서브픽처 정보가 생략된 경우 슬라이스의 두 타일은 서로 다른 어드레스를 갖는다.
일부 실시예에서, 제1 신택스 플래그 rect_slice_flag는 비-직사각형 파티셔닝이 적용되는지 여부를 나타내고, 제2 신택스 플래그 subpic_info_present_info는 서브픽처 정보가 비트스트림에 존재하는지 여부를 나타낸다.
도 26은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(2600)은, 동작(2610)에서, 비디오의 영역과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비디오 픽처는 하나 이상의 타일를 포함한다. 규칙은 하나 이상의 타일이 균일한 간격과 비균일한 간격으로 구성된 경우 신택스 요소를 사용하여 타일 레이아웃 유형을 표시하도록 지정한다.
일부 실시예에서, 타일 레이아웃에서 균일한 간격 다음에 불균일한 간격이 뒤따르는지 또는 불균일한 간격이 뒤따르는지를 나타내는 픽처 파라미터 세트에 포함된 신택스 요소이다. 일부 실시예에서, 타일 레이아웃은 불균일하게 이격된 타일을 포함하고, 명시적으로 표시된 타일 열 또는 행의 수는 불균일하게 이격된 타일의 총 수와 동일하거나 더 크다. 일부 실시예에서, 타일 레이아웃은 균일하게 이격된 타일을 포함하고, 명시적으로 표시된 타일 열 또는 행의 수는 균일하게 이격된 타일의 총 수와 동일하거나 더 크다. 일부 실시예에서, 타일 레이아웃에서 균일한 간격 다음에 불균일한 간격이 뒤따르고, 불균일하게 이격된 타일의 차원이 제1 역순에 따라 먼저 결정되고, 균일하게 이격된 타일의 차원이 다음의 제2 역순에 따라 결정된다. 일부 실시예에서, 차원은 타일 열의 폭 또는 타일 행의 높이를 포함한다.
도 27은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(2700)은, 동작(2710)에서, 비디오의 영역과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 규칙은 변환에서 병합 추정 영역 (Merge Estimation Region)(MER) 크기가 처리되는지 여부 또는 처리 방법이 허용되는 최소 코딩 블록 크기에 따르는 조건으로 지정한다.
일부 실시예에서, MER 크기는 최소 허용 코딩 블록 크기 이상이다. 일부 실시예에서, MER 크기는 MER_size로 표시되고 최소 허용 코딩 블록 크기는 MinCbSizeY로 표시되고, Log2(MER_size)와 Log2(MinCbSizeY) 사이의 차이가 비트스트림에 포함된다.
도 28은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(2800)은, 동작(2810)에서, 규칙에 따라 적어도 비디오 타일을 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다. 규칙은 코딩 트리 유닛의 유닛의 비디오 타일의 슬라이스 높이는 슬라이스를 포함하는 비디오 타일의 슬라이스에 대해 명시적으로 제공된 슬라이스 높이의 숫자를 나타내는 비트스트림의 제1 신택스 요소의 값에 기초하여 유도되는 것으로 지정한다.
일부 실시예에서, 코딩 트리 유닛의 유닛의 비디오 타일에서 슬라이스의 높이는 0과 동일한 제1 신택스 요소의 값에 응답하여 비디오에 대한 정보로부터 유도된다. 일부 실시예에서, 코딩 트리 유닛의 유닛으로 된 비디오 타일의 슬라이스 높이는 sliceHeightInCtus[i]로 표현된다. sliceHeightInCtus [i]는 행 높이 RowHeight [SliceTopLeftTileIdx [i] /NumTileColumns]의 값과 동일하고, 여기서 SliceTopLeftTileIdx는 슬라이스의 제1 코딩 트리 유닛을 포함하는 타일의 타일 인덱스를 지정하고 NumTileColumns는 타일 열의 수를 지정하고, 및 행 높이 RowHeight[j]의 값은 코딩 트리 블록의 유닛으로 j번째 타일 행의 높이를 지정한다.
일부 실시예에서, 코딩 트리 유닛의 유닛의 비디오 타일의 슬라이스 높이는 비트스트림에 존재하지 않는 비디오 타일의 슬라이스에 대한 높이에 응답하여 비디오에 대한 정보로부터 유도된다. 일부 실시예에서, 코딩 트리 유닛의 유닛의 비디오 타일에서 슬라이스의 높이는 비디오 타일에서 슬라이스의 높이를 나타내는 비트스트림에 존재하는 제2 신택스 요소에 따라 유도된다. 일부 실시예에서, 제1 신택스 요소가 0인 것에 응답하여, 슬라이스를 포함하는 비디오 타일은 다중의 슬라이스로 분할되지 않는다.
도 29는 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(2900)은, 동작(2910)에서, 규칙에 따라 하나 이상 슬라이스를 포함하는 비디오 타일을 포함하는 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다. 이 규칙은 픽처의 제1 슬라이스를 포함하는 타일의 제2 슬라이스가 코딩 트리 유닛의 유닛으로 표현되는 높이를 갖도록 지정한다. 제1 슬라이스는 제1 슬라이스 인덱스를 갖고, 제2 슬라이스는 제1 슬라이스 인덱스와 비디오 타일에서 명시적으로 제공된 슬라이스 높이의 숫자에 기초하여 결정되는 제2 슬라이스 인덱스를 갖는다. 제2 슬라이스의 높이는 제1 슬라이스 인덱스와 제2 슬라이스 인덱스에 기초하여 결정된다.
일부 실시예에서, 제1 슬라이스 인덱스는 i로 표현되고, 제2 슬라이스 인덱스는 (num_exp_slices_in_tile[i]-1)로 표현되며, 여기서 num_exp_slices_in_tile은 비디오 타일에서 명시적으로 제공된 슬라이스 높이의 수를 지정한다. 제2 슬라이스의 높이는 exp_slice_height_in_ctus_minus1 [i] [num_exp_slices_in_tile [i] -1] +1에 기초하여 결정되고, 여기서 exp_slice_height_in_ctus_minus1은 비디오 타일의 코딩 트리 유닛 유닛으로 슬라이스 높이를 지정한다. 일부 실시예에서, 비디오 타일을 파티셔닝하는 균일한 슬라이스의 높이는 exp_slice_height_in_ctus_minus1의 마지막 항목에 의해 표시된다. 일부 실시예에서, 제2 슬라이스는 항상 픽처에 존재한다. 일부 실시예에서, 제2 슬라이스의 높이는 변환을 위해 재설정되는 것이 허용되지 않는다. 일부 실시예에서, (num_exp_slices_in_tile[i]-1)보다 큰 인덱스를 갖는 제3 슬라이스의 높이는 exp_slice_height_in_ctus_minus1[i][num_exp_slices_in_tile[i]-1]에 기초하여 결정된다. 일부 실시예에서, 제2 슬라이스는 비디오 타일에 존재하지 않는다. 일부 실시예에서, 제2 슬라이스의 높이는 exp_slice_height_in_ctus_minus1[i][num_exp_slices_in_tile[i] -1] + 1보다 작거나 동일하다.
도 30은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(3000)은, 동작(3010)에서, 하나 이상의 타일을 포함하는 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다. 비디오 픽처는 픽처 파라미터 세트를 참조한다. 픽처 파라미터 세트는 픽처 파라미터 세트가 N 타일 열에 대한 열 너비 목록을 포함하도록 지정하는 포맷 규칙에 따르고, 여기서 N은 정수이다. (N-1) 번째 타일 열은 비디오 픽처에 존재하고 (N-1) 번째 타일 열은 명시적으로 포함된 타일 열 너비에 하나의 코딩 트리 블록 수를 더한 목록의 (N-1) 번째 항목과 동일한 너비를 갖는다.
일부 실시예에서, N-1은 num_exp_tile_columns_minus1로 표현된다. 일부 실시예에서, 코딩 트리 블록의 유닛에서 타일 열의 너비는 tile_column_width_minus1 [num_exp_tile_columns_minus1] + 1에 기초하여 결정되고, 여기서 tile_column_width_minus1은 코딩 트리 블록 유닛으로 타일 열의 너비를 지정한다. 일부 실시예에서, 코딩 트리 블록의 유닛에서 타일 열의 폭은 재설정이 허용되지 않고 tile_column_width_minus1[num_exp_tile_columns_minus1]에만 기초하여 결정된다. 일부 실시예에서, 코딩 트리 블록의 유닛에서 타일 열의 폭은 tile_column_width_minus1 [num_exp_tile_columns_minus1] + 1과 동일하다. 일부 실시예에서, num_exp_tile_columns_minus1보다 큰 인덱스를 갖는 제2 타일 열의 너비는 tile_column_width_minus1[num_exp_tile_columns_minus1]에 기초하여 결정된다.
도 31은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(3100)은, 동작(3110)에서, 하나 이상의 타일을 포함하는 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다. 비디오 픽처는 픽처 파라미터 세트를 참조한다. 픽처 파라미터 세트는 픽처 파라미터 세트가 N 타일 행에 대한 행 높이 목록을 포함하도록 지정하는 포맷 규칙을 따르고, 여기서 N은 정수이다. (N-1) 번째 타일 행은 비디오 픽처에 존재하고 (N-1) 번째 타일 행은 명시적으로 포함된 타일 행 높이에 하나의 코딩 트리 블록 수를 더한 목록의 (N-1) 번째 항목과 동일한 높이를 갖는다.
일부 실시예에서, N-1은 num_exp_tile_rows_minus1로 표현된다. 일부 실시예에서, 코딩 트리 블록들의 유닛에서의 타일 행의 높이는 tile_row_height_minus1 [num_exp_tile_row_minus1] + 1에 기초하여 결정되고, 여기서 tile_row_height_minus1은 코딩 트리 블록의 유닛에서의 타일 행의 높이를 지정한다. 일부 실시예에서, 코딩 트리 블록의 유닛에서 타일 행의 높이는 재설정이 허용되지 않고 tile_row_height_minus1[num_exp_tile_row_minus1]에만 기초하여 결정된다. 일부 실시예에서, 코딩 트리 블록의 유닛에서 타일 행의 높이는 tile_row_height_minus1 [num_exp_tile_row_minus1] + 1과 동일하다. 일부 실시예에서, num_exp_tile_rows_minus1보다 큰 인덱스를 갖는 제2 타일 행의 높이는 tile_row_height_minus1[num_exp_tile_row_minus1]에 기초하여 결정된다.
일부 실시예에서, 변환은 비디오를 비트스트림으로 인코딩하는 단계를 포함한다. 일부 실시예에서, 변환은 비트스트림으로부터 비디오를 디코딩하는 단계를 포함한다.
여기에 설명된 솔루션에서, 인코더는 포맷 규칙에 따라 코딩된 표현을 생성함으로써 포맷 규칙을 따를 수 있다. 여기에 설명된 솔루션에서, 디코더는 디코딩된 비디오를 생성하기 위해 포맷 규칙에 따라 신택스 요소의 존재 및 부재에 대한 지식으로 코딩된 표현의 신택스 요소를 파싱(parsing)하기 위해 포맷 규칙을 사용할 수 있다.
본 문서에서 "비디오 처리(video processing)"라는 용어는 비디오 인코딩(video encoding), 비디오 디코딩(video decoding), 비디오 압축(video compression) 또는 비디오 압축 해제(decompression)를 의미할 수 있다. 예를 들어, 비디오 압축 알고리즘은 비디오의 픽셀 표현에서 대응하는 비트스트림 표현으로 또는 그 반대로 변환 동안 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스에 의해 정의된 바와 같이 비트스트림 내의 다른 위치들에 함께 배치(병치)(co-located)되거나 확산되는 비트들에 대응할 수 있다. 예를 들어, 매크로블록(macroblock)은 변환 및 코딩된 오류 잔차 값의 관점에서, 그리고 또한 비트스트림의 헤더 및 기타 필드에 비트를 사용하여 인코딩 될 수 있다. 또한, 변환 동안, 디코더는 위의 솔루션에서 설명된 바와 같이 결정에 기초하여 일부 필드들이 존재하거나 없을 수 있다는 지식으로 비트스트림을 파싱할 수 있다. 유사하게, 인코더는 특정 신택스 필드가 포함되는지 여부를 결정할 수 있고, 이에 따라 코딩된 표현으로부터 신택스 필드를 포함하거나 또는 제외함으로써 코딩된 표현을 생성할 수 있다.
본 문서에 기재된 개시 및 기타 솔루션, 예, 실시예, 모듈 및 기능적 동작(operation)은 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있으며, 여기에는 이 문서 및 그 구조적 등가물 또는 그 중 하나 이상의 조합으로 구현될 수 있다. 개시된 및 기타 실시예는 하나 이상의 컴퓨터 프로그램 제품으로 구현될 수 있고, 즉, 컴퓨터 프로그램 지침의 하나 이상의 모듈을 컴퓨터 판독 가능한 매체에 인코딩 하여 실행하거나, 데이터 처리 장치의 작동을 제어할 수 있다. 컴퓨터 판독 가능 매체는 기계 판독 가능 저장 장치, 기계 판독 가능 저장 기판, 메모리 장치, 기계 판독 가능 전파 신호에 영향을 미치는 물질의 조성 또는 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치"는 예를 들어, 프로그래밍 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 장치, 장치 및 컴퓨터를 포함한다. 장치는 하드웨어에 추가하여 대응 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 전파된 신호는 인위적으로 생성된 신호, 예를 들어, 기계에서 생성된 전기, 광학 또는 전자기 신호이고, 이는 적합한 수신기 장치로 전송하기 위한 정보를 인코딩 하기 위해 생성된다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은 컴파일 된 언어를 비롯한 모든 형태의 프로그래밍 언어로 작성할 수 있으며 독립 실행형 프로그램 또는 컴퓨팅 환경에서 사용하기에 적합한 모듈, 컴포넌트, 서브루틴 또는 기타 유닛으로 모든 형태로 배포할 수 있다. 컴퓨터 프로그램이 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트), 대응하는 프로그램에 전용되는 단일 파일 또는 다중 조정된 파일들(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 일부를 저장하는 파일)에 저장할 수 있다. 컴퓨터 프로그램은 한 컴퓨터 또는 한 사이트에 위치하거나 다중 사이트에 분산되고 통신 네트워크에 의해 상호 연결된 다중 컴퓨터에서 실행하도록 배포할 수 있다.
이 문서에 설명된 프로세스 및 논리 흐름은 하나 이상의 프로그래밍 가능한 프로세서가 하나 이상의 프로그래밍 가능한 프로세서에서 수행하여 입력 데이터에서 작동하고 출력을 생성하여 기능을 수행할 수 있다. 프로세스 및 로직 흐름도 수행될 수 있으며, 장치는 특수 목적 논리 회로, 예를 들어, FPGA(필드 프로그래밍 가능한 게이트 어레이) 또는 ASIC(애플리케이션 별 집적 회로)로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서에는 예를 들어, 일반 및 특수 목적 마이크로프로세서와 모든 종류의 디지털 컴퓨터의 하나 이상의 프로세서가 포함된다. 일반적으로 프로세서는 읽기 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다에서 지침과 데이터를 받게 된다. 컴퓨터의 필수 요소는 지침과 데이터를 저장하기 위한 하나 이상의 메모리 장치를 수행하기 위한 프로세서이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치, 예를 들어, 자기, 광자기 디스크, 또는 광 디스크로부터 데이터를 수신하거나 이들로 데이터를 전송하거나 둘 전체를 포함하거나 작동 가능하게 연결된다. 그러나, 컴퓨터에 이러한 장치가 필요하지 않는다. 컴퓨터 프로그램 지침 및 데이터를 저장하는 데 적합한 컴퓨터 판독 가능한 미디어에는 반도체 메모리 장치, 예를 들어, EPROM, EEPROM 및 플래시 메모리 장치, 자기 디스크, 예를 들어, 내부 하드 디스크 또는 이동식 디스크; 마그네토 광학 디스크; 및 CD ROM 및 DVD-ROM 디스크를 비롯한 모든 형태의 비휘발성 메모리, 미디어 및 메모리 장치가 포함된다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보충되거나 통합될 수 있다.
이 특허 문서에는 많은 세부 사항이 포함되어 있지만, 이는 어떤 주제의 범위 나 청구될 수 있는 것에 대한 제한으로 해석되어서는 안 되고, 오히려 특정 기술의 특정 구현예에 특정할 수 있는 특징에 대한 설명으로 해석되어서는 안 된다. 이 특허 문서에 기재된 특정 특징은 별도의 실시예의 맥락에서 또한 단일 실시예에서 조합하여 구현될 수 있다. 역으로, 단일 실시예의 맥락에서 설명된 다양한 특징은 또한 개별적으로 또는 임의의 적절한 서브 조합으로 다중 실시예들에서도 구현될 수 있다. 더욱이, 앞서와 같이 특징들은 특정 조합으로 작용하는 것으로 설명될 수 있고 심지어 처음에 그렇게 주장될 수도 있지만, 청구된 조합으로부터 하나 이상의 특징은 어떤 경우에는 조합으로부터 제외될 수 있고, 주장된 조합은 서브 조합 또는 서브 조합의 변형에 관한 것일 수 있다.
마찬가지로, 동작은 특정 순서로 도면에 묘사되어 있지만, 바람직한 결과를 달성하기 위하여, 이러한 동작이 표시된 특정 순서 또는 순차적인 순서로 수행되거나, 모든 예시된 동작들이 수행되는 것을 요구하는 것으로 이해되어서는 안 된다. 더욱이, 본 특허 문서에 기재된 실시예들에서, 다양한 시스템 컴포넌트들의 분리가 모든 실시예들에서 이러한 분리를 요구하는 것으로 이해되어서는 안 된다.
몇 가지 구현 및 예제만 설명되고 이 특허 문서에 설명되고 도시된 내용에 따라 다른 구현, 개선 및 변형을 만들 수 있다.

Claims (14)

  1. 비디오 처리 방법에 있어서,
    규칙에 따라 적어도 비디오 타일을 포함하는 비디오와 상기 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고,
    상기 규칙은 코딩 트리 유닛의 유닛의 상기 비디오 타일의 슬라이스 높이는 상기 슬라이스를 포함하는 상기 비디오 타일의 슬라이스에 대해 명시적으로 제공된 슬라이스 높이의 숫자를 나타내는 상기 비트스트림의 제1 신택스 요소의 값에 기초하여 유도되는 것으로 지정하는
    방법.
  2. 제1항에 있어서,
    코딩 트리 유닛의 유닛의 상기 비디오 타일 내의 상기 슬라이스의 높이는 0과 동일한 상기 제1 신택스 요소의 값에 응답하여 상기 비디오에 대한 정보로부터 유도되는
    방법.
  3. 제1항 또는 제2항에 있어서,
    코딩 트리 유닛의 유닛의 비디오 타일에서 상기 슬라이스의 높이는 sliceHeightInCtus[i]로 표현되고, sliceHeightInCtus [i]는 행 높이 RowHeight [SliceTopLeftTileIdx [i] /NumTileColumns]의 값과 동일하고, SliceTopLeftTileIdx는 슬라이스의 제1 코딩 트리 유닛에 포함하는 타일의 타일 인덱스를 지정하고 NumTileColumns는 타일 열의 수를 지정하고, 및 행 높이 RowHeight[j]의 값은 코딩 트리 블록 유닛의 j번째 타일 행의 높이를 지정하는
    방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    코딩 트리 유닛의 유닛의 상기 비디오 타일의 상기 슬라이스의 높이는 상기 비트스트림에 존재하지 않는 상기 비디오 타일의 상기 슬라이스에 대한 높이에 응답하여 상기 비디오에 대한 정보로부터 유도되는
    방법.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서,
    코딩 트리 유닛의 유닛의 상기 비디오 타일의 상기 슬라이스의 높이는 상기 비디오 타일의 상기 슬라이스의 높이를 나타내는 상기 비트스트림에 존재하는 제2 신택스 요소에 따라 유도되는
    방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 제1 신택스 요소가 0과 동일한 것에 응답하여, 상기 슬라이스를 포함하는 상기 비디오 타일은 다중의 슬라이스들로 분할되지 않는
    방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 변환은 상기 비디오를 상기 비트스트림으로 인코딩하는 단계를 포함하는
    방법.
  8. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 변환은 상기 비트스트림으로 부터 상기 비디오를 디코딩하는 단계를 포함하는
    방법.
  9. 비디오의 비트스트림을 저장하기 위한 방법에 있어서,
    적어도 비디오 타일을 포함하는 비디오의 비트스트림을 생성하는 단계 - 상기 생성하는 단계는 코딩 트리 유닛의 유닛의 상기 비디오 타일의 슬라이스의 높이가 상기 슬라이스를 포함하는 상기 비디오 타일의 슬라이스에 대해 명시적으로 제공된 슬라이스 높이의 숫자를 나타내는 상기 비트스트림의 제1 신택스 요소의 값에 기초하여 유도되는 것으로 지정하는 규칙을 따름 -; 비일시적 컴퓨터 판독 가능 기록 매체에 상기 비트스트림을 저장하는 단계를 포함하는
    방법.
  10. 제1항 내지 제19항 중 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
  11. 제1항 내지 제19항 중 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
  12. 컴퓨터 코드가 저장되어 있는 컴퓨터 프로그램에 있어서,
    상기 코드는, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1항 내지 제19항 중 어느 한 항에서 인용된 방법을 구현하게 하는
    컴퓨터프로그램.
  13. 비디오 처리 장치에 의해 수행되는 방법에 의해 생성되는 비디오의 비트스트림을 저장하는 비일시적 컴퓨터 판독 가능 기록 매체에 있어서,
    상기 방법은: 적어도 비디오 타일을 포함하고 규칙에 따라 상기 비디오로부터 상기 비디오의 비트스트림을 생성하는 단계를 포함하고,
    상기 규칙은 코딩 트리 유닛의 유닛의 상기 비디오 타일의 슬라이스 높이는 상기 슬라이스를 포함하는 상기 비디오 타일의 슬라이스에 대해 명시적으로 제공된 슬라이스 높이의 숫자를 나타내는 상기 비트스트림의 제1 신택스 요소의 값에 기초하여 유도되는 것으로 지정하는
    비일시적 컴퓨터 판독 가능 기록 매체.
  14. 본 문서에 기술된 방법, 장치, 방법, 또는 시스템에 따라 생성된 방법, 장치, 비트스트림.
KR1020227026950A 2020-02-21 2021-02-22 비디오 코딩의 슬라이스 및 타일 파티셔닝 KR20220137903A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2020/076158 2020-02-21
CN2020076158 2020-02-21
PCT/CN2021/077215 WO2021164782A1 (en) 2020-02-21 2021-02-22 Slice and tile partitioning in video coding

Publications (1)

Publication Number Publication Date
KR20220137903A true KR20220137903A (ko) 2022-10-12

Family

ID=77391818

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020227026963A KR20220143822A (ko) 2020-02-21 2021-02-22 슬라이스 및 타일 픽처 파티션의 시그널링
KR1020227026950A KR20220137903A (ko) 2020-02-21 2021-02-22 비디오 코딩의 슬라이스 및 타일 파티셔닝

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020227026963A KR20220143822A (ko) 2020-02-21 2021-02-22 슬라이스 및 타일 픽처 파티션의 시그널링

Country Status (7)

Country Link
US (3) US11962814B2 (ko)
EP (2) EP4097988A4 (ko)
JP (2) JP2023514623A (ko)
KR (2) KR20220143822A (ko)
CN (4) CN115552899A (ko)
BR (1) BR112022016608A2 (ko)
WO (4) WO2021164784A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115362686A (zh) * 2020-03-31 2022-11-18 夏普株式会社 运动图像解码装置、运动图像编码装置、运动图像解码方法以及运动图像编码方法
CN114584806A (zh) * 2022-03-07 2022-06-03 湖南国科微电子股份有限公司 视频源文件的处理方法、视频播放方法、装置及设备

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7965296B2 (en) * 2006-06-20 2011-06-21 Via Technologies, Inc. Systems and methods for storing texture map data
US20080285652A1 (en) * 2007-05-14 2008-11-20 Horizon Semiconductors Ltd. Apparatus and methods for optimization of image and motion picture memory access
US8990435B2 (en) 2011-01-17 2015-03-24 Mediatek Inc. Method and apparatus for accessing data of multi-tile encoded picture stored in buffering apparatus
US9325999B2 (en) 2011-03-10 2016-04-26 Sharp Kabushiki Kaisha Video decoder for slices
US8767824B2 (en) 2011-07-11 2014-07-01 Sharp Kabushiki Kaisha Video decoder parallelization for tiles
US9332259B2 (en) * 2012-01-18 2016-05-03 Qualcomm Incorporated Indication of use of wavefront parallel processing in video coding
CN103220507B (zh) * 2012-01-19 2018-04-20 中兴通讯股份有限公司 一种视频编解码方法及系统
WO2013115560A1 (ko) * 2012-01-30 2013-08-08 삼성전자 주식회사 공간 서브영역별로 비디오를 부호화하는 방법 및 그 장치, 공간 서브영역별로 비디오를 복호화하는 방법 및 그 장치
LT3793200T (lt) 2012-04-13 2023-02-27 Ge Video Compression, Llc Vaizdo kodavimas su maža delsa
AU2013283173B2 (en) 2012-06-29 2016-03-24 Ge Video Compression, Llc Video data stream concept
US20140192899A1 (en) 2013-01-09 2014-07-10 Mediatek Inc. Method and apparatus for referring to bitstream address related information derived from segment of multi-tile picture to determine bitstream start address of tile of multi-tile picture
GB2516224A (en) 2013-07-11 2015-01-21 Nokia Corp An apparatus, a method and a computer program for video coding and decoding
US20150016503A1 (en) * 2013-07-15 2015-01-15 Qualcomm Incorporated Tiles and wavefront processing in multi-layer context
US11425395B2 (en) * 2013-08-20 2022-08-23 Google Llc Encoding and decoding using tiling
CN105981386B (zh) * 2013-12-06 2019-02-26 华为技术有限公司 图像解码装置、图像编码装置及编码数据变换装置
WO2016090568A1 (en) 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure
GB2539461B (en) * 2015-06-16 2020-01-08 Canon Kk Image data encapsulation
KR20170031643A (ko) 2015-09-11 2017-03-21 주식회사 케이티 비디오 신호 처리 방법 및 장치
CN116347073A (zh) * 2016-03-30 2023-06-27 韩国电子通信研究院 使用画面划分信息对视频进行编码和解码的方法和设备
US11039143B2 (en) * 2017-11-20 2021-06-15 Qualcomm Incorporated Memory reduction for context initialization with temporal prediction
TWI728390B (zh) * 2018-06-29 2021-05-21 大陸商北京字節跳動網絡技術有限公司 查找表尺寸
JP7437374B2 (ja) * 2018-07-02 2024-02-22 ノキア テクノロジーズ オーユー ビデオコーディングでのタイル関連アドレス指定のための方法および装置
WO2020008106A1 (en) * 2018-07-02 2020-01-09 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
EP3820148A1 (en) 2018-07-04 2021-05-12 Panasonic Intellectual Property Corporation of America Encoding device, decoding device, encoding method, and decoding method
BR112021010326A2 (pt) 2018-11-30 2021-08-24 Sharp Kabushiki Kaisha Método de decodificar dados de vídeo, método de codificar dados de vídeo e dispositivo para decodificar dados de vídeo
CN113273193A (zh) 2018-12-31 2021-08-17 华为技术有限公司 用于分块配置指示的编码器,解码器及对应方法
WO2020209478A1 (ko) * 2019-04-08 2020-10-15 엘지전자 주식회사 픽처를 복수의 타일들로 분할하는 방법 및 장치
AU2020296613A1 (en) * 2019-06-20 2022-02-17 Xris Corporation Method for encoding/decoding image signal, and device for same
CN114223197A (zh) 2019-08-12 2022-03-22 韩华泰科株式会社 用于高级图像划分和图像编码/解码的方法和装置
AU2020347030A1 (en) * 2019-09-10 2022-03-31 Xris Corporation Image signal encoding/decoding method and device therefor
KR20220087514A (ko) 2019-11-28 2022-06-24 엘지전자 주식회사 영상/비디오 코딩 방법 및 장치
EP4070545A4 (en) 2019-12-23 2023-03-08 Huawei Technologies Co., Ltd. CROSS-COMPONENT ADAPTIVE LOOP FILTERING ALLOWS VIDEO CODING
US20230085937A1 (en) * 2020-01-28 2023-03-23 Sharp Kabushiki Kaisha Systems and methods for signaling picture information in a slice header in video coding
CN115211044A (zh) * 2020-03-03 2022-10-18 字节跳动有限公司 使用条带头信令通知控制缩放处理

Also Published As

Publication number Publication date
US20220417565A1 (en) 2022-12-29
US11917211B2 (en) 2024-02-27
JP2023514624A (ja) 2023-04-06
CN115211130B (zh) 2024-04-09
EP4097988A4 (en) 2023-03-01
CN115211130A (zh) 2022-10-18
CN115211110A (zh) 2022-10-18
US11812067B2 (en) 2023-11-07
WO2021164781A1 (en) 2021-08-26
WO2021164784A1 (en) 2021-08-26
KR20220143822A (ko) 2022-10-25
WO2021164782A1 (en) 2021-08-26
US20230007307A1 (en) 2023-01-05
EP4097976A4 (en) 2023-03-01
EP4097976A1 (en) 2022-12-07
CN115552899A (zh) 2022-12-30
EP4097988A1 (en) 2022-12-07
US20230027555A1 (en) 2023-01-26
CN115211124A (zh) 2022-10-18
BR112022016608A2 (pt) 2022-10-04
WO2021164783A1 (en) 2021-08-26
JP2023514623A (ja) 2023-04-06
US11962814B2 (en) 2024-04-16

Similar Documents

Publication Publication Date Title
KR20220125236A (ko) 상위 레벨 신택스 표시의 시그널링
US11917211B2 (en) Signaling of slice and tile picture partitions
KR20220115959A (ko) 비디오 코딩에서의 서브픽처 시그널링
JP7479492B2 (ja) ビデオ・コーディングにおける低周波ノン・セパラブル変換シグナリング
JP2024026265A (ja) スライスおよびタイルを含むピクチャのコーディング
CN114930837A (zh) 对子图片的帧间预测的限制
KR20220143832A (ko) 서브픽처 레벨에 기초한 분할 계산