KR20220066897A - 비디오 비트스트림에서의 서브픽처 시그널링을 위한 신택스 - Google Patents

비디오 비트스트림에서의 서브픽처 시그널링을 위한 신택스 Download PDF

Info

Publication number
KR20220066897A
KR20220066897A KR1020227009747A KR20227009747A KR20220066897A KR 20220066897 A KR20220066897 A KR 20220066897A KR 1020227009747 A KR1020227009747 A KR 1020227009747A KR 20227009747 A KR20227009747 A KR 20227009747A KR 20220066897 A KR20220066897 A KR 20220066897A
Authority
KR
South Korea
Prior art keywords
subpicture
picture
video
bitstream representation
equal
Prior art date
Application number
KR1020227009747A
Other languages
English (en)
Other versions
KR102609308B1 (ko
Inventor
카이 장
즈핀 덩
훙빈 류
리 장
지정 쉬
Original Assignee
베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
바이트댄스 아이엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드, 바이트댄스 아이엔씨 filed Critical 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
Publication of KR20220066897A publication Critical patent/KR20220066897A/ko
Application granted granted Critical
Publication of KR102609308B1 publication Critical patent/KR102609308B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/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/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/55Motion estimation with spatial constraints, e.g. at image or region borders
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

예시적인 비디오 프로세싱 방법은 하나 이상의 서브픽처를 포함하는 비디오의 픽처와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비트스트림 표현은 서브픽처에 관한 정보가 (1) 서브픽처의 하나 이상의 코너 위치, 또는 (2) 서브픽처의 치수 중 적어도 하나에 기초하여 비트스트림 표현에 포함된다는 것을 지정하는 포맷 규칙을 준수한다. 포맷 규칙은 서브픽처에 관한 정보가 비트스트림 표현에서 코딩 트리 블록에 관한 정보 이후에 위치된다는 것을 더 지정한다.

Description

비디오 비트스트림에서의 서브픽처 시그널링을 위한 신택스
관련 출원들의 상호 참조
파리 협약에 따른 적용 가능한 특허법 및/또는 규칙들에 따라, 본 출원은 2019년 10월 2일에 출원된 국제 특허 출원 제PCT/CN2019/109809호에 대한 우선권 및 그 이익을 적시에 주장하기 위해 이루어졌다. 법에 따른 모든 목적들을 위해, 앞서 언급된 출원의 전체 개시는 본 출원의 개시의 일부로서 참고로 포함된다.
기술 분야
이 문서는 비디오 및 이미지 코딩 및 디코딩 기술들에 관한 것이다.
디지털 비디오는 인터넷 및 다른 디지털 통신 네트워크들에서 가장 많은 대역폭 사용을 차지한다. 비디오를 수신하고 디스플레이할 수 있는 연결된 사용자 디바이스들의 수가 증가함에 따라, 디지털 비디오 사용에 대한 대역폭 수요가 계속 증가할 것으로 예상된다.
개시된 기술들은 서브픽처 기반 코딩 또는 디코딩이 수행되는 비디오 또는 이미지 디코더 또는 인코더 실시예들에 의해 사용될 수 있다.
일 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 하나 이상의 픽처를 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비트스트림 표현은 각각의 픽처가 하나 이상의 슬라이스로서 코딩된다는 것을 지정하는 포맷 규칙을 준수하도록 요구받으며, 여기서 포맷 규칙은 픽처 내의 샘플들이 하나 이상의 슬라이스 중 임의의 것에 의해 커버되지 않는 것을 금지한다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은, 비디오의 픽처와 비디오의 비트스트림 표현 사이의 변환을 위해, 픽처 내의 타일들의 수 또는 브릭들의 수와 연관된 규칙에 따라 픽처 내의 하나 이상의 슬라이스에 대한 정보를 시그널링하는 방식을 결정하는 단계를 포함한다. 이 방법은 결정에 기초하여 변환을 수행하는 단계를 또한 포함한다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은, 규칙에 따라 비디오의 픽처와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 픽처는 하나 이상의 슬라이스로서 비트스트림 표현에 코딩되고, 규칙은 픽처의 슬라이스의 어드레스가 비트스트림 표현에 포함되는지 여부 또는 어떻게 포함되는지를 지정한다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은, 비디오의 픽처와 비디오의 비트스트림 표현 사이의 변환을 위해, 픽처 내의 타일들의 수 또는 브릭들의 수에 기초하여 픽처 내의 다수의 브릭들에 걸쳐 샘플들에 액세스하는 필터 동작이 인에이블된다는 것을 나타내는 신택스 요소가 비트스트림 표현에 포함되는지 여부를 결정하는 단계를 포함한다. 이 방법은 결정에 기초하여 변환을 수행하는 단계를 또한 포함한다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 비디오의 픽처와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 픽처는 하나 이상의 서브픽처를 포함하고, 여기서 하나 이상의 서브픽처의 수는 비트스트림 표현 내의 신택스 요소에 의해 표시된다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 하나 이상의 서브픽처를 포함하는 비디오의 픽처와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비트스트림 표현은 서브픽처에 관한 정보가 (1) 서브픽처의 하나 이상의 코너 위치, 또는 (2) 서브픽처의 치수 중 적어도 하나에 기초하여 비트스트림 표현에 포함된다는 것을 지정하는 포맷 규칙을 준수한다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 비디오의 픽처가 하나 이상의 서브픽처로 나누어지는 것으로 인해 픽처와 비디오의 비트스트림 표현 사이의 변환을 위해 참조 픽처 리샘플링 툴이 인에이블된다고 결정하는 단계를 포함한다. 이 방법은 결정에 기초하여 변환을 수행하는 단계를 또한 포함한다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 하나 이상의 슬라이스를 포함하는 하나 이상의 서브픽처를 포함하는 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비트스트림 표현은, 서브픽처 및 슬라이스에 대해, 서브픽처를 식별해 주는 인덱스가 슬라이스의 헤더에 포함되는 경우에, 슬라이스에 대한 어드레스 필드가 서브픽처 내의 슬라이스의 어드레스를 나타낸다는 것을 지정하는 포맷 규칙을 준수한다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은, 비디오의 제1 비디오 영역 내의 비디오 블록에 대해, 아핀 모드를 사용하는 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 변환을 위한 시간적 모션 벡터 예측자가 결정되는 위치가 제2 비디오 영역 내에 있는지 여부를 결정하는 단계; 및 결정에 기초하여 변환을 수행하는 단계를 포함한다.
다른 예시적인 양태에서, 다른 비디오 프로세싱 방법이 개시된다. 이 방법은, 비디오의 제1 비디오 영역 내의 비디오 블록에 대해, 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 변환을 위한 참조 픽처 내의 정수 샘플이 페치되는 위치가 제2 비디오 영역 내에 있는지 여부를 결정하는 단계 - 참조 픽처는 변환 동안 보간 프로세스에서 사용되지 않음 -; 및 결정에 기초하여 변환을 수행하는 단계를 포함한다.
다른 예시적인 양태에서, 다른 비디오 프로세싱 방법이 개시된다. 이 방법은, 비디오의 제1 비디오 영역 내의 비디오 블록에 대해, 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 변환을 위한 재구성된 루마 샘플 값이 페치되는 위치가 제2 비디오 영역 내에 있는지 여부를 결정하는 단계; 및 결정에 기초하여 변환을 수행하는 단계를 포함한다.
다른 예시적인 양태에서, 다른 비디오 프로세싱 방법이 개시된다. 이 방법은, 비디오의 제1 비디오 영역 내의 비디오 블록에 대해, 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 변환 동안 비디오 블록에 대한 분할, 깊이 도출 또는 분할 플래그 시그널링에 관한 검사가 수행되는 위치가 제2 비디오 영역 내에 있는지 여부를 결정하는 단계; 및 결정에 기초하여 변환을 수행하는 단계를 포함한다.
다른 예시적인 양태에서, 다른 비디오 프로세싱 방법이 개시된다. 이 방법은 하나 이상의 비디오 블록을 포함하는 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 코딩된 표현은 변환이 비디오 유닛 내에서 서브픽처 코딩/디코딩 및 동적 해상도 변환 코딩/디코딩 툴 또는 참조 픽처 리샘플링 툴을 사용하지 않아야 한다는 코딩 신택스 요구사항을 준수한다.
다른 예시적인 양태에서, 다른 비디오 프로세싱 방법이 개시된다. 이 방법은 하나 이상의 비디오 블록을 포함하는 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 코딩된 표현은 제1 신택스 요소 subpic_grid_idx[i][j]가 제2 신택스 요소 max_subpics_minus1보다 크지 않아야 한다는 코딩 신택스 요구사항을 준수한다.
또 다른 예시적인 양태에서, 위에서 설명된 방법은 프로세서를 포함하는 비디오 인코더 장치에 의해 구현될 수 있다.
또 다른 예시적인 양태에서, 위에서 설명된 방법은 프로세서를 포함하는 비디오 디코더 장치에 의해 구현될 수 있다.
또 다른 예시적인 양태에서, 이러한 방법들은 프로세서 실행 가능 명령어들의 형태로 구체화되고 컴퓨터 판독 가능 프로그램 매체에 저장될 수 있다.
이들 및 다른 양태들이 본 문서에서 더 설명된다.
도 1은 시간적 모션 벡터 예측(temporal motion vector prediction, TMVP) 및 서브블록 TMVP에서의 영역 제약의 예를 도시한다.
도 2는 계층적 모션 추정 방식의 예를 도시한다.
도 3은 본 문서에 설명된 기술들을 구현하는 데 사용되는 하드웨어 플랫폼의 예의 블록 다이어그램이다.
도 4는 예시적인 비디오 프로세싱 방법에 대한 플로차트이다.
도 5는 12 개의 타일과 3 개의 래스터 스캔 슬라이스로 분할되는 18 x 12 루마 CTU들을 갖는 픽처의 예를 도시한다(참고용).
도 6은 24 개의 타일과 9 개의 직사각형 슬라이스로 분할되는 18 x 12 루마 CTU들을 갖는 픽처의 예를 도시한다(참고용).
도 7은 4 개의 타일, 11 개의 브릭 및 4 개의 직사각형 슬라이스로 분할되는 픽처의 예를 도시한다(참고용).
도 8은 본 명세서에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 프로세싱 시스템을 도시하는 블록 다이어그램이다.
도 9는 예시적인 비디오 코딩 시스템을 예시하는 블록 다이어그램이다.
도 10은 본 개시의 일부 실시예들에 따른 인코더를 예시하는 블록 다이어그램이다.
도 11은 본 개시의 일부 실시예들에 따른 디코더를 예시하는 블록 다이어그램이다.
도 12는 본 기술에 따른 비디오 프로세싱 방법의 플로차트 표현이다.
도 13은 본 기술에 따른 다른 비디오 프로세싱 방법의 플로차트 표현이다.
도 14는 본 기술에 따른 다른 비디오 프로세싱 방법의 플로차트 표현이다.
도 15는 본 기술에 따른 다른 비디오 프로세싱 방법의 플로차트 표현이다.
도 16은 본 기술에 따른 다른 비디오 프로세싱 방법의 플로차트 표현이다.
도 17은 본 기술에 따른 다른 비디오 프로세싱 방법의 플로차트 표현이다.
도 18은 본 기술에 따른 다른 비디오 프로세싱 방법의 플로차트 표현이다.
도 19는 본 기술에 따른 또 다른 비디오 프로세싱 방법의 플로차트 표현이다.
본 문서는 압축 해제되거나 디코딩된 디지털 비디오 또는 이미지들의 품질을 개선시키기 위해 이미지 또는 비디오 비트스트림들의 디코더에 의해 사용될 수 있는 다양한 기술들을 제공한다. 간결함을 위해, 본 명세서에서 "비디오"라는 용어는 픽처들의 시퀀스(전통적으로 비디오라고 불림) 및 개별 이미지들 양쪽 모두를 포함하도록 사용된다. 게다가, 비디오 인코더는 또한 추가의 인코딩에 사용되는 디코딩된 프레임들을 재구성하기 위해 인코딩 프로세스 동안 이러한 기술들을 구현할 수 있다.
섹션 표제들은 이해의 편의를 위해 본 문서에서 사용되며 실시예들 및 기술들을 대응하는 섹션들로 제한하지 않는다. 이에 따라, 하나의 섹션으로부터의 실시예들은 다른 섹션들로부터의 실시예들과 결합될 수 있다.
1. 요약
이 문서는 비디오 코딩 기술들에 관련되어 있다. 구체적으로, 이는 비디오 코딩에서 기본 색상들 기반 표현을 이용하는 팔레트 코딩에 관련되어 있다. 이는 HEVC와 같은 기존의 비디오 코딩 표준, 또는 완성될 표준(다목적 비디오 코딩(Versatile Video Coding))에 적용될 수 있다. 이는 또한 미래의 비디오 코딩 표준들 또는 비디오 코덱에 적용 가능할 수 있다.
2. 초기 논의
비디오 코딩 표준들은 주로 잘 알려진 ITU-T 및 ISO/IEC 표준들의 개발을 통해 발전해 왔다. ITU-T는 H.261 및 H.263 표준들을 만들었고, ISO/IEC는 MPEG-1 및 MPEG-4 Visual 표준들을 만들었으며, 두 조직은 공동으로 H.262/MPEG-2 Video 및 H.264/MPEG-4 AVC(Advanced Video Coding) 및 H.265/HEVC 표준들 [1,2]를 만들었다. H.262 이후로, 비디오 코딩 표준들은 시간 예측과 변환 코딩이 활용되는 하이브리드 비디오 코딩 구조를 기반으로 한다. HEVC 이후의 미래의 비디오 코딩 기술들을 탐구하기 위해, 2015년에 VCEG와 MPEG에 의해 공동으로 JVET(Joint Video Exploration Team)가 설립되었다. 그 이후로, 많은 새로운 방법들이 JVET에 의해 채택되었고 JEM(Joint Exploration Model)이라는 참조 소프트웨어에 추가되었다. 2018년 4월에, HEVC에 비해 50% 비트레이트 감소를 목표로 하는 VVC 표준에 대해 연구하기 위해 VCEG(Q6/16)와 ISO/IEC JTC1 SC29/WG11(MPEG) 간의 협력 하에 JVET(Joint Video Expert Team)가 만들어졌다.
2.1 VVC에서 TMVP 및 서브블록 TMVP에서의 영역 제약
도 1은 TMVP 및 서브블록 TMVP에서의 예시적인 영역 제약을 예시한다. TMVP 및 서브블록 TMVP에서, 도 1에 도시된 바와 같이 시간적 MV는 동일 위치(collocated) CTU와 4x4 블록들의 열로부터만 페치될 수 있는 것으로 제약된다.
2.2 예시적인 서브픽처
일부 실시예들에서, 유연한 타일링 접근법에 기초한 서브픽처 기반 코딩 기술들이 구현될 수 있다. 서브픽처 기반 코딩 기술들의 요약은 다음을 포함한다:
(1) 픽처들이 서브픽처들로 분할될 수 있다.
(2) 서브픽처들의 존재의 표시는, 서브픽처들의 다른 시퀀스 레벨 정보와 함께, SPS에 표시된다.
(3) (인루프 필터링 동작들을 제외한) 디코딩 프로세스에서 서브픽처가 픽처로서 취급되는지 여부는 비트스트림에 의해 제어될 수 있다.
(4) 서브픽처 경계들에 걸친 인루프 필터링이 디스에이블되는지 여부는 각각의 서브픽처에 대한 비트스트림에 의해 제어될 수 있다. DBF, SAO 및 ALF 프로세스들은 서브픽처 경계들에 걸친 인루프 필터링 동작들의 제어를 위해 업데이트된다.
(5) 간단함을 위해, 시작점으로서, 서브픽처 폭, 높이, 수평 오프셋, 및 수직 오프셋이 SPS에서 루마 샘플 단위로 시그널링된다. 서브픽처 경계들은 슬라이스 경계들로 제약된다.
(6) (인루프 필터링 동작들을 제외한) 디코딩 프로세스에서 서브픽처를 픽처로서 취급하는 것은 coding_tree_unit() 신택스를 약간 업데이트하는 것 및 이하의 디코딩 프로세스들에 대한 업데이트들에 의해 지정된다:
- (진보된) 시간적 루마 모션 벡터 예측을 위한 도출 프로세스
- 루마 샘플 이중선형 보간 프로세스
- 루마 샘플 8-탭 보간 필터링 프로세스
- 크로마 샘플 보간 프로세스
(7) VCL NAL 유닛들을 변경할 필요 없이 서브픽처 시퀀스들의 추출을 가능하게 하기 위해 서브픽처 ID들이 SPS에 명시적으로 지정되고 타일 그룹 헤더들에 포함된다.
(8) 서브픽처들 및 그의 세트들에 대한 규범적 추출 및 적합성 지점들을 지정하기 위해 출력 서브픽처 세트들(OSPS)이 제안된다.
2.3 다목적 비디오 코딩에서의 예시적인 서브픽처들
Figure pct00001
subpics_present_flag가 1과 동일한 것은 서브픽처 파라미터들이 SPS RBSP 신택스에 현재 존재한다는 것을 나타낸다. subpics_present_flag가 0과 동일한 것은 서브픽처 파라미터들이 SPS RBSP 신택스에 현재 존재하지 않는다는 것을 나타낸다.
비고 2 - 비트스트림이 서브비트스트림 추출 프로세스의 결과이고 서브비트스트림 추출 프로세스에 대한 입력 비트스트림의 서브픽처들의 서브세트만을 포함할 때, SPS들의 RBSP에서 subpics_present_flag의 값을 1과 동일하게 설정하는 것이 요구될 수 있다.
max_subpics_minus1 + 1은 CVS에 존재할 수 있는 서브픽처들의 최대 수를 지정한다. max_subpics_minus1은 0 내지 254의 범위에 있어야 한다. 255의 값은 ITU-T | ISO/IEC에 의해 향후 사용을 위해 예약되어 있다.
subpic_grid_col_width_minus1 + 1은 4 샘플 단위로 서브픽처 식별자 그리드의 각각의 요소의 폭을 지정한다. 신택스 요소의 길이는 Ceil( Log2( pic_width_max_in_luma_samples / 4) ) 비트이다.
변수 NumSubPicGridCols는 다음과 같이 도출된다:
Figure pct00002
subpic_grid_row_height_minus1 + 1은 4 샘플 단위로 서브픽처 식별자 그리드의 각각의 요소의 높이를 지정한다. 신택스 요소의 길이는 Ceil( Log2( pic_height_max_in_luma_samples / 4) ) 비트이다.
변수 NumSubPicGridRows는 다음과 같이 도출된다:
Figure pct00003
subpic_grid_idx[ i ][ j ]는 그리드 위치(i, j)의 서브픽처 인덱스를 지정한다. 신택스 요소의 길이는 Ceil( Log2( max_subpics_minus1 + 1 ) ) 비트이다.
변수들 SubPicTop[ subpic_grid_idx[ i ][ j ] ], SubPicLeft[ subpic_grid_idx[ i ][ j ] ], SubPicWidth[ subpic_grid_idx [ i ][ j ] ], SubPicHeight[ subpic_grid_idx[ i ][ j ] ], 및 NumSubPics는 다음과 같이 도출된다:
Figure pct00004
subpic_treated_as_pic_flag[ i ]가 1과 동일한 것은 CVS에서의 각각의 코딩된 픽처의 i 번째 서브픽처가 인루프 필터링 동작들을 제외한 디코딩 프로세스에서 픽처로서 취급된다는 것을 지정한다. subpic_treated_as_pic_flag[ i ]가 0과 동일한 것은 CVS에서의 각각의 코딩된 픽처의 i 번째 서브픽처가 인루프 필터링 동작들을 제외한 디코딩 프로세스에서 픽처로서 취급되지 않는다는 것을 지정한다. 존재하지 않을 때, subpic_treated_as_pic_flag[ i ]의 값은 0과 동일한 것으로 추론된다.
loop_filter_across_subpic_enabled_flag[ i ]가 1과 동일한 것은 인루프 필터링 동작들이 CVS에서의 각각의 코딩된 픽처 내의 i 번째 서브픽처의 경계들에 걸쳐 수행될 수 있다는 것을 지정한다. loop_filter_across_subpic_enabled_flag[ i ]가 0과 동일한 것은 인루프 필터링 동작들이 CVS에서의 각각의 코딩된 픽처 내의 i 번째 서브픽처의 경계들에 걸쳐 수행되지 않는다는 것을 지정한다. 존재하지 않을 때, loop_filter_across_subpic_enabled_pic_flag[ i ]의 값은 1과 동일한 것으로 추론된다.
다음 제약들이 적용되는 것은 비트스트림 적합성의 요구사항이다:
- 임의의 2 개의 서브픽처 subpicA 및 subpicB에 대해, subpicA의 인덱스가 subpicB의 인덱스보다 작을 때, subPicA의 임의의 코딩된 NAL 유닛은 디코딩 순서에서 subPicB의 임의의 코딩된 NAL 유닛의 뒤에 와야 한다.
- 서브픽처들의 형상들은 각각의 서브픽처가, 디코딩될 때, 그의 전체 좌측 경계와 전체 상단 경계가 픽처 경계들로 구성되거나 이전에 디코딩된 서브픽처들의 경계들로 구성되어야 하도록 되어 있다.
픽처 래스터 스캔에서의 CTB 어드레스로부터 서브픽처 인덱스로의 변환을 지정하는 0 내지 PicSizeInCtbsY - 1의 범위(경계 포함)에 있는 ctbAddrRs에 대한 리스트 CtbToSubPicIdx[ ctbAddrRs ]는 다음과 같이 도출된다:
Figure pct00005
num_bricks_in_slice_minus1은, 존재할 때, 슬라이스 내의 브릭 수에서 1을 뺀 것을 지정한다. num_bricks_in_slice_minus1의 값은 0 내지 NumBricksInPic - 1의 범위(경계 포함)에 있어야 한다. rect_slice_flag가 0과 동일하고 single_brick_per_slice_flag가 1과 동일할 때, num_bricks_in_slice_minus1의 값은 0과 동일한 것으로 추론된다. single_brick_per_slice_flag가 1과 동일할 때, num_bricks_in_slice_minus1의 값은 0과 동일한 것으로 추론된다.
현재 슬라이스 내의 브릭 수를 지정하는 변수 NumBricksInCurrSlice, 및 현재 슬라이스 내의 i 번째 브릭의 브릭 인덱스를 지정하는 SliceBrickIdx[ i ]는 다음과 같이 도출된다:
Figure pct00006
Figure pct00007
변수들 SubPicIdx, SubPicLeftBoundaryPos, SubPicTopBoundaryPos, SubPicRightBoundaryPos, 및 SubPicBotBoundaryPos는 다음과 같이 도출된다:
Figure pct00008
...
시간적 루마 모션 벡터 예측을 위한 도출 프로세스
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 픽처의 좌측 상단 루마 샘플을 기준으로 현재 루마 코딩 블록의 좌측 상단 샘플의 루마 위치 ( xCb , yCb ),
- 루마 샘플들에서의 현재 코딩 블록의 폭을 지정하는 변수 cbWidth,
- 루마 샘플들에서의 현재 코딩 블록의 높이를 지정하는 변수 cbHeight,
- 참조 인덱스 refIdxLX(단, X는 0 또는 1임).
이 프로세스의 출력들은 다음과 같다.
- 1/16 분수 샘플 정확도의 모션 벡터 예측 mvLXCol,
- 이용 가능성 플래그 availableFlagLXCol.
변수 currCb는 루마 위치 ( xCb, yCb )에 있는 현재 루마 코딩 블록을 지정한다.
변수들 mvLXCol 및 availableFlagLXCol은 다음과 같이 도출된다:
- slice_temporal_mvp_enabled_flag가 0과 동일하거나 ( cbWidth * cbHeight )가 32보다 작거나 같은 경우, mvLXCol의 양쪽 성분들은 0과 동일하게 설정되고 availableFlagLXCol은 0과 동일하게 설정된다.
- 그렇지 않은 경우(slice_temporal_mvp_enabled_flag가 1과 동일한 경우), 다음과 같은 순서의 단계들이 적용된다:
1. 우측 하단 동일 위치 모션 벡터와 우측 및 하단 경계 샘플 위치들은 다음과 같이 도출된다:
Figure pct00009
- yCb  >>  CtbLog2SizeY가 yColBr  >>  CtbLog2SizeY와 동일하고, yColBr이 botBoundaryPos보다 작거나 같으며 xColBr이 rightBoundaryPos보다 작거나 같은 경우, 다음이 적용된다:
- 변수 colCb는 ColPic에 의해 지정되는 동일 위치 픽처 내부의 ( ( xColBr  >>  3 )  <<  3, ( yColBr  >>  3 )  <<  3 )에 의해 주어지는 수정된 위치를 커버하는 루마 코딩 블록을 지정한다.
- 루마 위치 ( xColCb, yColCb )는 ColPic에 의해 지정되는 동일 위치 픽처의 좌측 상단 루마 샘플을 기준으로 colCb에 의해 지정되는 동일 위치 루마 코딩 블록의 좌측 상단 샘플과 동일하게 설정된다.
- 8.5.2.12 절에 명시된 바와 같은 동일 위치 모션 벡터들에 대한 도출 프로세스는 0과 동일하게 설정된 currCb, colCb, ( xColCb, yColCb ), refIdxLX 및 sbFlag를 입력들로 하여 호출되고, 출력은 mvLXCol 및 availableFlagLXCol에 할당된다.
그렇지 않은 경우, mvLXCol의 양쪽 성분들은 0과 동일하게 설정되고, availableFlagLXCol은 0과 동일하게 설정된다.
...
루마 샘플 이중선형 보간 프로세스
이 프로세스에 대한 입력들은 다음과 같다:
- 완전 샘플(full-sample) 단위의 루마 위치 ( xIntL, yIntL ),
- 분수 샘플 단위의 루마 위치 ( xFracL, yFracL ),
- 루마 참조 샘플 어레이 refPicLXL.
이 프로세스의 출력은 예측된 루마 샘플 값 predSampleLXL이다
변수들 shift1, shift2, shift3, shift4, offset1, offset2 및 offset3은 다음과 같이 도출된다:
Figure pct00010
Figure pct00011
변수 picW는 pic_width_in_luma_samples와 동일하게 설정되고 변수 picH는 pic_height_in_luma_samples와 동일하게 설정된다.
xFracL 또는 yFracL과 동일한 각각의 1/16 분수 샘플 위치 p에 대한 루마 보간 필터 계수들 fbL[ p ]는 표 8-10에 명시되어 있다.
완전 샘플 단위의 루마 위치들 ( xInti, yInti )(단, i = 0..1)는 다음과 같이 도출된다:
- subpic_treated_as_pic_flag[ SubPicIdx ]가 1과 동일한 경우, 다음이 적용된다:
Figure pct00012
- 그렇지 않은 경우(subpic_treated_as_pic_flag[ SubPicIdx ]가 0과 동일한 경우), 다음이 적용된다:
Figure pct00013
...
서브블록 기반 시간적 병합 후보들에 대한 도출 프로세스
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 픽처의 좌측 상단 루마 샘플을 기준으로 현재 루마 코딩 블록의 좌측 상단 샘플의 루마 위치 ( xCb , yCb ),
- 루마 샘플들에서의 현재 코딩 블록의 폭을 지정하는 변수 cbWidth,
- 루마 샘플들에서의 현재 코딩 블록의 높이를 지정하는 변수 cbHeight.
- 이웃 코딩 유닛의 이용 가능성 플래그 availableFlagA1,
- 이웃 코딩 유닛의 참조 인덱스 refIdxLXA1(단, X는 0 또는 1임),
- 이웃 코딩 유닛의 예측 리스트 활용 플래그 predFlagLXA1(단, X는 0 또는 1임),
- 이웃 코딩 유닛의 1/16 분수 샘플 정확도의 모션 벡터 mvLXA1(단, X는 0 또는 1임).
이 프로세스의 출력들은 다음과 같다.
- 이용 가능성 플래그 availableFlagSbCol,
- 수평 방향에서의 루마 코딩 서브블록 수 numSbX 및 수직 방향에서의 루마 코딩 서브블록 수 numSbY.
- 참조 인덱스들 refIdxL0SbCol 및 refIdxL1SbCol,
- 1/16 분수 샘플 정확도의 루마 모션 벡터들 mvL0SbCol[ xSbIdx ][ ySbIdx ] 및 mvL1SbCol[ xSbIdx ][ ySbIdx ](단, xSbIdx = 0..numSbX - 1, ySbIdx = 0 .. numSbY - 1),
- 예측 리스트 활용 플래그들 predFlagL0SbCol[ xSbIdx ][ ySbIdx ] 및 predFlagL1SbCol[ xSbIdx ][ ySbIdx ](단, xSbIdx = 0..numSbX - 1, ySbIdx = 0 .. numSbY - 1).
이용 가능성 플래그 availableFlagSbCol은 다음과 같이 도출된다:
- 다음 조건들 중 하나 이상이 참인 경우, availableFlagSbCol은 0과 동일하게 설정된다.
- slice_temporal_mvp_enabled_flag가 0과 동일하다.
- sps_sbtmvp_enabled_flag가 0과 동일하다.
- cbWidth가 8보다 작다.
- cbHeight가 8보다 작다.
- 그렇지 않은 경우, 다음과 같은 순서의 단계들이 적용된다:
1. 현재 코딩 블록을 포함하는 루마 코딩 트리 블록의 좌측 상단 샘플의 위치 ( xCtb, yCtb )와 현재 루마 코딩 블록의 우측 아래 중앙 샘플의 위치 ( xCtr, yCtr )는 다음과 같이 도출된다:
Figure pct00014
2. 루마 위치 ( xColCtrCb, yColCtrCb )는 ColPic에 의해 지정되는 동일 위치 픽처의 좌측 상단 루마 샘플을 기준으로 ColPic 내부의 ( xCtr, yCtr )에 의해 주어지는 위치를 커버하는 동일 위치 루마 코딩 블록의 좌측 상단 샘플과 동일하게 설정된다.
3. 8.5.5.4 절에 명시된 바와 같은 서브블록 기반 시간적 병합 기본 모션 데이터에 대한 도출 프로세스는 위치 ( xCtb, yCtb ), 위치 ( xColCtrCb, yColCtrCb ), 이용 가능성 플래그 availableFlagA1, 및 예측 리스트 활용 플래그 predFlagLXA1, 및 참조 인덱스 refIdxLXA1, 및 모션 벡터 mvLXA1(단, X는 0 및 1임)을 입력들로 하고 모션 벡터들 ctrMvLX, 및 동일 위치 블록의 예측 리스트 활용 플래그들 ctrPredFlagLX(단, X는 0 및 1임), 및 시간적 모션 벡터 tempMv를 출력들로 하여 호출된다.
4. 변수 availableFlagSbCol은 다음과 같이 도출된다:
- ctrPredFlagL0 및 ctrPredFlagL1 양쪽 모두가 0과 동일한 경우, availableFlagSbCol은 0과 동일하게 설정된다.
- 그렇지 않은 경우, availableFlagSbCol은 1과 동일하게 설정된다.
availableFlagSbCol이 1과 동일할 때, 다음이 적용된다:
- 변수들 numSbX, numSbY, sbWidth, sbHeight 및 refIdxLXSbCol은 다음과 같이 도출된다:
Figure pct00015
- xSbIdx = 0..numSbX - 1 및 ySbIdx = 0 .. numSbY - 1에 대해, 모션 벡터들 mvLXSbCol[ xSbIdx ][ ySbIdx ] 및 예측 리스트 활용 플래그들 predFlagLXSbCol[ xSbIdx ][ ySbIdx ]는 다음과 같이 도출된다:
- 현재 픽처의 좌측 상단 루마 샘플을 기준으로 현재 코딩 서브블록의 좌측 상단 샘플을 지정하는 루마 위치 ( xSb, ySb )는 다음과 같이 도출된다:
Figure pct00016
- ColPic 내부의 동일 위치 서브블록의 위치 ( xColSb, yColSb )는 다음과 같이 도출된다.
- 다음이 적용된다:
Figure pct00017
- subpic_treated_as_pic_flag[ SubPicIdx ]가 1과 동일한 경우, 다음이 적용된다:
Figure pct00018
- 그렇지 않은 경우(subpic_treated_as_pic_flag[ SubPicIdx ]가 0과 동일한 경우), 다음이 적용된다:
Figure pct00019
...
서브블록 기반 시간적 병합 기본 모션 데이터에 대한 도출 프로세스
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 코딩 블록을 포함하는 루마 코딩 트리 블록의 좌측 상단 샘플의 위치 ( xCtb, yCtb ),
- 우측 아래 중앙 샘플을 커버하는 동일 위치 루마 코딩 블록의 좌측 상단 샘플의 위치 ( xColCtrCb, yColCtrCb ).
- 이웃 코딩 유닛의 이용 가능성 플래그 availableFlagA1,
- 이웃 코딩 유닛의 참조 인덱스 refIdxLXA1,
- 이웃 코딩 유닛의 예측 리스트 활용 플래그 predFlagLXA1,
- 이웃 코딩 유닛의 1/16 분수 샘플 정확도의 모션 벡터 mvLXA1.
이 프로세스의 출력들은 다음과 같다.
- 모션 벡터들 ctrMvL0 및 ctrMvL1,
- 예측 리스트 활용 플래그들 ctrPredFlagL0 및 ctrPredFlagL1,
- 시간적 모션 벡터 tempMv.
변수 tempMv는 다음과 같이 설정된다:
Figure pct00020
변수 currPic은 현재 픽처를 지정한다.
availableFlagA1이 TRUE와 동일할 때, 다음이 적용된다:
- 다음 조건들 모두가 참인 경우, tempMv는 mvL0A1과 동일하게 설정된다:
- predFlagL0A1이 1과 동일하다,
- DiffPicOrderCnt(ColPic, RefPicList[ 0 ][refIdxL0A1])이 0과 동일하다,
- 그렇지 않고, 다음 조건들 모두가 참인 경우, tempMv는 mvL1A1과 동일하게 설정된다:
- slice_type이 B와 동일하다,
- predFlagL1A1이 1과 동일하다,
- DiffPicOrderCnt(ColPic, RefPicList[ 1 ][refIdxL1A1])이 0과 동일하다.
ColPic 내부의 동일 위치 블록의 위치 ( xColCb, yColCb )는 다음과 같이 도출된다:
- 다음이 적용된다:
Figure pct00021
- subpic_treated_as_pic_flag[ SubPicIdx ]가 1과 동일한 경우, 다음이 적용된다:
Figure pct00022
- 그렇지 않은 경우(subpic_treated_as_pic_flag[ SubPicIdx ]가 0과 동일한 경우), 다음이 적용된다:
Figure pct00023
...
루마 샘플 보간 필터링 프로세스
이 프로세스에 대한 입력들은 다음과 같다:
- 완전 샘플 단위의 루마 위치 ( xIntL, yIntL ),
- 분수 샘플 단위의 루마 위치 ( xFracL, yFracL ),
- 참조 픽처의 좌측 상단 루마 샘플을 기준으로 참조 샘플 패딩을 위한 경계 블록의 좌측 상단 샘플을 지정하는 완전 샘플 단위의 루마 위치 ( xSbIntL, ySbIntL ),
- 루마 참조 샘플 어레이 refPicLXL,
- 1/2 샘플 보간 필터 인덱스 hpelIfIdx,
- 현재 서브블록의 폭을 지정하는 변수 sbWidth,
- 현재 서브블록의 높이를 지정하는 변수 sbHeight,
- 현재 픽처의 좌측 상단 루마 샘플을 기준으로 현재 서브블록의 좌측 상단 샘플을 지정하는 루마 위치 ( xSb, ySb ),
이 프로세스의 출력은 예측된 루마 샘플 값 predSampleLXL이다
변수들 shift1, shift2 및 shift3은 다음과 같이 도출된다:
- 변수 shift1은 Min( 4, BitDepthY - 8 )과 동일하게 설정되고, 변수 shift2는 6과 동일하게 설정되며 변수 shift3은 Max( 2, 14 - BitDepthY )와 동일하게 설정된다.
변수 picW는 pic_width_in_luma_samples와 동일하게 설정되고 변수 picH는 pic_height_in_luma_samples와 동일하게 설정된다.
xFracL 또는 yFracL과 동일한 각각의 1/16 분수 샘플 위치 p에 대한 루마 보간 필터 계수들 fL[ p ]는 다음과 같이 도출된다:
- MotionModelIdc[ xSb ][ ySb ]가 0보다 크고 sbWidth 및 sbHeight가 양쪽 모두 4와 동일한 경우, 루마 보간 필터 계수들 fL[ p ]는 표 8-12에 명시되어 있다.
- 그렇지 않은 경우, 루마 보간 필터 계수들 fL[ p ]는 hpelIfIdx에 따라 표 8-11에 명시되어 있다.
완전 샘플 단위의 루마 위치들 ( xInti, yInti )(단, i = 0..7)는 다음과 같이 도출된다:
- subpic_treated_as_pic_flag[ SubPicIdx ]가 1과 동일한 경우, 다음이 적용된다:
Figure pct00024
- 그렇지 않은 경우(subpic_treated_as_pic_flag[ SubPicIdx ]가 0과 동일한 경우), 다음이 적용된다:
Figure pct00025
...
크로마 샘플 보간 프로세스
이 프로세스에 대한 입력들은 다음과 같다:
- 완전 샘플 단위의 크로마 위치 ( xIntC, yIntC ),
- 1/32 분수 샘플 단위의 크로마 위치 ( xFracC, yFracC ),
- 참조 픽처의 좌측 상단 크로마 샘플을 기준으로 참조 샘플 패딩을 위한 경계 블록의 좌측 상단 샘플을 지정하는 완전 샘플 단위의 크로마 위치 ( xSbIntC, ySbIntC ),
- 현재 서브블록의 폭을 지정하는 변수 sbWidth,
- 현재 서브블록의 높이를 지정하는 변수 sbHeight,
- 크로마 참조 샘플 어레이 refPicLXC,
이 프로세스의 출력은 예측된 크로마 샘플 값 predSampleLXC이다
변수들 shift1, shift2 및 shift3은 다음과 같이 도출된다:
- 변수 shift1은 Min( 4, BitDepthC - 8 )과 동일하게 설정되고, 변수 shift2는 6과 동일하게 설정되며 변수 shift3은 Max( 2, 14 - BitDepthC )와 동일하게 설정된다.
변수 picWC는 pic_width_in_luma_samples / SubWidthC와 동일하게 설정되고 변수 picHC는 pic_height_in_luma_samples / SubHeightC와 동일하게 설정된다.
xFracC 또는 yFracC와 동일한 각각의 1/32 분수 샘플 위치 p에 대한 크로마 보간 필터 계수들 fC[ p ]는 표 8-13에 명시되어 있다.
변수 xOffset은 ( sps_ref_wraparound_offset_minus1 + 1 ) * MinCbSizeY ) / SubWidthC와 동일하게 설정된다.
완전 샘플 단위의 크로마 위치들 ( xInti, yInti )(단, i = 0..3)는 다음과 같이 도출된다:
- subpic_treated_as_pic_flag[ SubPicIdx ]가 1과 동일한 경우, 다음이 적용된다:
Figure pct00026
- 그렇지 않은 경우(subpic_treated_as_pic_flag[ SubPicIdx ]가 0과 동일한 경우), 다음이 적용된다:
Figure pct00027
2.4 예시적인 인코더 전용 GOP 기반 시간 필터
일부 실시예들에서, 인코더 전용 시간 필터가 구현될 수 있다. 필터링은 인코더 측에서 프리프로세싱(pre-processing) 단계로서 수행된다. 인코딩할 선택된 픽처 이전 및 이후의 소스 픽처들이 판독되고, 선택된 픽처에 대한 블록 기반 모션 보상 방법이 해당 소스 픽처들에 적용된다. 선택된 픽처 내의 샘플들은 모션 보상 이후에 샘플 값들을 사용하여 시간적으로 필터링된다.
전체 필터 강도는 QP 뿐만 아니라 선택된 픽처의 시간적 서브계층에 따라 설정된다. 시간적 서브계층 0과 시간적 서브계층 1에 있는 픽처들만이 필터링되고, 계층 0의 픽처들은 계층 1의 픽처들보다 더 강한 필터에 의해 필터링된다. 모션 보상된 픽처와 선택된 픽처 사이의 작은 차이들이 보다 큰 차이들보다 더 강하게 필터링되도록 샘플당 필터 강도가 선택된 픽처 내의 샘플 값과 모션 보상된 픽처들 내의 동일 위치 샘플들 사이의 차이에 따라 조정된다.
GOP 기반 시간 필터
시간 필터는 픽처를 판독한 직후 인코딩 이전에 도입된다. 아래에서 단계들이 보다 상세히 설명된다.
동작 1: 픽처들이 인코더에 의해 판독된다
동작 2: 픽처가 코딩 계층구조에서 충분히 낮은 경우, 이는 인코딩 이전에 필터링된다. 그렇지 않은 경우, 픽처는 필터링 없이 인코딩된다. POC % 8 == 0인 RA 픽처들은 물론 POC % 4 == 0인 LD 픽처들이 필터링된다. AI 픽처들은 필터링되지 않는다.
전체 필터 강도
Figure pct00028
는 RA에 대해 아래의 방정식에 따라 설정된다.
Figure pct00029
여기서
Figure pct00030
은 판독된 픽처들의 수이다.
LD의 경우에,
Figure pct00031
가 사용된다.
동작 3: 선택된 픽처(추가의 아래에서 원래 픽처라고 지칭됨) 이전 및/또는 이후의 2 개의 픽처가 판독된다. 에지 케이스들에서, 예를 들면, 제1 픽처이거나 마지막 픽처에 가까운 경우, 이용 가능한 픽처들만이 판독된다.
동작 4: 원래 픽처를 기준으로 이전 및 이후의 판독된 픽처들의 모션이 8x8 픽처 블록마다 추정된다.
계층적 모션 추정 방식이 사용되며 계층 L0, 계층 L1 및 계층 L2가 도 2에 예시되어 있다. 서브샘플링된 픽처들은 모든 판독된 픽처들 및 원래 픽처, 예를 들면, 도 1에서의 L1에 대해 각각의 2x2 블록을 평균화하는 것에 의해 생성된다. L2는 동일한 서브샘플링 방법을 사용하여 L1로부터 도출된다.
도 2는 계층적 모션 추정의 상이한 계층들의 예들을 도시한다. L0은 원래 해상도이다. L1은 L0의 서브샘플링된 버전이다. L2는 L1의 서브샘플링된 버전이다.
먼저, L2에서의 각각의 16x16 블록에 대해 모션 추정이 행해진다. 각각의 선택된 모션 벡터에 대해 제곱 차이가 계산되고 가장 작은 차이에 대응하는 모션 벡터가 선택된다. 선택된 모션 벡터는 이어서 L1에서의 모션을 추정할 때 초기 값으로서 사용된다. 이어서 L0에서의 모션을 추정하기 위해 동일한 일이 행해진다. 마지막 단계로서, L0에 대해 보간 필터를 사용하는 것에 의해 각각의 8x8 블록에 대한 서브픽셀 모션이 추정된다.
VTM 6-탭 보간 필터가 사용될 수 있다:
Figure pct00032
동작 5: 예를 들면, 각각의 블록 내의 원래 픽처의 샘플 좌표들이 참조된 픽처들에서의 가장 잘 매칭하는 좌표들을 갖도록 각각의 블록에 대한 가장 잘 매칭하는 모션에 따라 원래 픽처 이전 및 이후의 픽처들에 대해 모션 보상이 적용된다.
동작 6: 다음 단계들에 설명된 바와 같이 샘플들은 루마 및 크로마 채널들에 대해 하나씩 프로세싱된다.
동작 7: 새로운 샘플 값
Figure pct00033
은 다음 수식을 사용하여 계산된다.
Figure pct00034
여기서
Figure pct00035
는 원래 샘플의 샘플 값이고,
Figure pct00036
는 모션 보상된 픽처
Figure pct00037
의 대응하는 샘플의 강도이며,
Figure pct00038
는 이용 가능한 모션 보상된 픽처들의 수가
Figure pct00039
일 때의 모션 보상된 픽처
Figure pct00040
의 가중치이다.
루마 채널에서, 가중치들
Figure pct00041
는 다음과 같이 정의된다:
Figure pct00042
여기서
Figure pct00043
Figure pct00044
Figure pct00045
의 모든 다른 경우들에 대해:
Figure pct00046
Figure pct00047
크로마 채널들의 경우, 가중치들
Figure pct00048
는 다음과 같이 정의된다:
Figure pct00049
여기서
Figure pct00050
이고
Figure pct00051
이다
동작 8: 필터가 현재 샘플에 대해 적용된다. 결과적인 샘플 값은 별도로 저장된다.
동작 9: 필터링된 픽처가 인코딩된다.
2.5 예시적인 픽처 파티션들(타일들, 브릭들, 슬라이스들)
일부 실시예들에서, 픽처는 하나 이상의 타일 행과 하나 이상의 타일 열로 나누어진다. 타일은 픽처의 직사각형 영역을 커버하는 CTU들의 시퀀스이다.
타일은 하나 이상의 브릭으로 나누어지며, 브릭들 각각은 타일 내의 다수의 CTU 행들로 구성된다.
다수의 브릭들로 분할되지 않는 타일은 브릭이라고도 지칭된다. 그렇지만, 타일의 진정한 서브세트인 브릭은 타일이라고 지칭되지 않는다.
슬라이스는 픽처의 다수의 타일들 또는 타일의 다수의 브릭들을 포함한다.
서브픽처는 픽처의 직사각형 영역을 집합적으로 커버하는 하나 이상의 슬라이스를 포함한다.
두 가지 슬라이스 모드, 즉 래스터 스캔 슬라이스 모드와 직사각형 슬라이스 모드가 지원된다. 래스터 스캔 슬라이스 모드에서, 슬라이스는 픽처의 타일 래스터 스캔에서 타일들의 시퀀스를 포함한다. 직사각형 슬라이스 모드에서, 슬라이스는 픽처의 직사각형 영역을 집합적으로 형성하는 픽처의 다수의 브릭들을 포함한다. 직사각형 슬라이스 내의 브릭들은 슬라이스의 브릭 래스터 스캔의 순서로 있다.
도 5는 픽처의 래스터 스캔 슬라이스 분할의 예를 도시하며, 여기서 픽처는 12 개의 타일과 3 개의 래스터 스캔 슬라이스로 나누어진다.
도 6은 픽처의 직사각형 슬라이스 분할의 예를 도시하며, 여기서 픽처는 24 개의 타일(6 개의 타일 열과 4 개의 타일 행)과 9 개의 직사각형 슬라이스로 나누어진다.
도 7은 타일들, 브릭들 및 직사각형 슬라이스들로 분할되는 픽처의 예를 도시하며, 여기서 픽처는 4 개의 타일(2 개의 타일 열과 2 개의 타일 행), 11 개의 브릭(좌측 상단 타일은 1 개의 브릭을 포함하고, 우측 상단 타일은 5 개의 브릭을 포함하며, 좌측 하단 타일은 2 개의 브릭을 포함하고, 우측 하단 타일은 3 개의 브릭을 포함함), 및 4 개의 직사각형 슬라이스로 나누어진다.
픽처 파라미터 세트 RBSP 신택스
Figure pct00052
Figure pct00053
Figure pct00054
single_tile_in_pic_flag가 1과 동일한 것은 PPS를 참조하는 각각의 픽처에 단지 하나의 타일이 있다는 것을 지정한다. single_tile_in_pic_flag가 0과 동일한 것은 PPS를 참조하는 각각의 픽처에 2 개 이상의 타일이 있다는 것을 지정한다.
비고 - 타일 내에서 추가의 브릭 분할이 없는 경우, 전체 타일이 브릭이라고 지칭된다. 픽처가 추가의 브릭 분할 없이 단일 타일만을 포함할 때, 이는 단일 브릭이라고 지칭된다.
single_tile_in_pic_flag의 값이 CVS 내의 코딩된 픽처들에 의해 참조되는 모든 PPS들에 대해 동일해야 한다는 것이 비트스트림 적합성의 요구사항이다.
uniform_tile_spacing_flag가 1과 동일한 것은 타일 열 경계들 및 마찬가지로 타일 행 경계들이 픽처 전체에 걸쳐 균일하게 분포되고 신택스 요소들 tile_cols_width_minus1 및 tile_rows_height_minus1을 사용하여 시그널링된다는 것을 지정한다. uniform_tile_spacing_flag가 0과 동일한 것은 타일 열 경계들 및 마찬가지로 타일 행 경계들이 픽처 전체에 걸쳐 균일하게 분포될 수 있거나 그렇지 않을 수 있고 신택스 요소들 num_tile_columns_minus1 및 num_tile_rows_minus1 및 신택스 요소 쌍들의 리스트 tile_column_width_minus1[ i ] 및 tile_row_height_minus1[ i ]를 사용하여 시그널링된다는 것을 지정한다. 존재하지 않을 때, uniform_tile_spacing_flag의 값은 1과 동일한 것으로 추론된다.
tile_cols_width_minus1 + 1은 uniform_tile_spacing_flag가 1과 동일할 때 CTB 단위로 픽처의 최우측 타일 열을 제외한 타일 열들의 폭을 지정한다. tile_cols_width_minus1의 값은 0 내지 PicWidthInCtbsY - 1의 범위(경계 포함)에 있어야 한다. 존재하지 않을 때, tile_cols_width_minus1의 값은 PicWidthInCtbsY - 1과 동일한 것으로 추론된다.
tile_rows_height_minus1 + 1은 uniform_tile_spacing_flag가 1과 동일할 때 CTB 단위로 픽처의 하단 타일 행을 제외한 타일 행들의 높이를 지정한다. tile_rows_height_minus1의 값은 0 내지 PicHeightInCtbsY - 1의 범위(경계 포함)에 있어야 한다. 존재하지 않을 때, tile_rows_height_minus1의 값은 PicHeightInCtbsY - 1과 동일한 것으로 추론된다.
num_tile_columns_minus1 + 1은 uniform_tile_spacing_flag가 0과 동일할 때 픽처를 분할하는 타일 열들의 수를 지정한다. num_tile_columns_minus1의 값은 0 내지 PicWidthInCtbsY - 1의 범위(경계 포함)에 있어야 한다. single_tile_in_pic_flag가 1과 동일할 때, num_tile_columns_minus1의 값은 0과 동일한 것으로 추론된다. 그렇지 않고, uniform_tile_spacing_flag가 1과 동일할 때, num_tile_columns_minus1의 값은 6.5.1절에 명시된 바와 같이 추론된다.
num_tile_rows_minus1 + 1은 uniform_tile_spacing_flag가 0과 동일할 때 픽처를 분할하는 타일 행들의 수를 지정한다. num_tile_rows_minus1의 값은 0 내지 PicHeightInCtbsY - 1의 범위(경계 포함)에 있어야 한다. single_tile_in_pic_flag가 1과 동일할 때, num_tile_rows_minus1의 값은 0과 동일한 것으로 추론된다. 그렇지 않고, uniform_tile_spacing_flag가 1과 동일할 때, num_tile_rows_minus1의 값은 6.5.1절에 명시된 바와 같이 추론된다.
변수 NumTilesInPic는 ( num_tile_columns_minus1 + 1 ) * ( num_tile_rows_minus1 + 1 )과 동일하게 설정된다.
single_tile_in_pic_flag가 0과 동일할 때, NumTilesInPic는 1보다 커야 한다.
tile_column_width_minus1[ i ] + 1은 CTB 단위로 i 번째 타일 열의 폭을 지정한다.
tile_row_height_minus1[ i ] + 1은 CTB 단위로 i 번째 타일 행의 높이를 지정한다.
brick_splitting_present_flag가 1과 동일한 것은 PPS를 참조하는 픽처들의 하나 이상의 타일이 2 개 이상의 브릭으로 나누어질 수 있다는 것을 지정한다. brick_splitting_present_flag가 0과 동일한 것은 PPS를 참조하는 픽처들의 어떤 타일들도 2 개 이상의 브릭으로 나누어지지 않는다는 것을 지정한다.
num_tiles_in_pic_minus1 + 1은 PPS를 참조하는 각각의 픽처 내의 타일들의 수를 지정한다. num_tiles_in_pic_minus1의 값은 NumTilesInPic - 1과 동일해야 한다. 존재하지 않을 때, num_tiles_in_pic_minus1의 값은 NumTilesInPic - 1과 동일한 것으로 추론된다.
brick_split_flag[ i ]가 1과 동일한 것은 i 번째 타일이 2 개 이상의 브릭으로 나누어진다는 것을 지정한다. brick_split_flag[ i ]가 0과 동일한 것은 i 번째 타일이 2 개 이상의 브릭으로 나누어지지 않는다는 것을 지정한다. 존재하지 않을 때, brick_split_flag[ i ]의 값은 0과 동일한 것으로 추론된다. 일부 실시예들에서, SPS에 대한 PPS 파싱 의존성은 (예를 들면, uniform_brick_spacing_flag[ i ]에 대해 유사하게) 신택스 조건 "if( RowHeight[ i ] > 1 )"을 추가하는 것에 의해 도입된다.
uniform_brick_spacing_flag[ i ]가 1과 동일한 것은 수평 브릭 경계들이 i 번째 타일에 걸쳐 균일하게 분포되고 신택스 요소 brick_height_minus1[ i ]를 사용하여 시그널링된다는 것을 지정한다. uniform_brick_spacing_flag[ i ]가 0과 동일한 것은 수평 브릭 경계들이 i 번째 타일에 걸쳐 균일하게 분포될 수 있거나 그렇지 않을 수 있고 신택스 요소 num_brick_rows_minus2[ i ] 및 신택스 요소들의 리스트 brick_row_height_minus1[ i ][ j ]를 사용하여 시그널링된다는 것을 지정한다. 존재하지 않을 때, uniform_brick_spacing_flag[ i ]의 값은 1과 동일한 것으로 추론된다.
brick_height_minus1[ i ] + 1은 uniform_brick_spacing_flag[ i ]가 1과 동일할 때 CTB 단위로 i 번째 타일 내의 하단 브릭을 제외한 브릭 행들의 높이를 지정한다. 존재할 때, brick_height_minus1의 값은 0 내지 RowHeight[ i ] - 2의 범위(경계 포함)에 있어야 한다. 존재하지 않을 때, brick_height_minus1[ i ]의 값은 RowHeight[ i ] - 1과 동일한 것으로 추론된다.
num_brick_rows_minus2[ i ] + 2는 uniform_brick_spacing_flag[ i ]가 0과 동일할 때 i 번째 타일을 분할하는 브릭들의 수를 지정한다. 존재할 때, num_brick_rows_minus2[ i ] 값은 0 내지 RowHeight[ i ] - 2의 범위(경계 포함)에 있어야 한다. brick_split_flag[ i ]가 0과 동일한 경우, num_brick_rows_minus2[ i ]의 값은 -1과 동일한 것으로 추론된다. 그렇지 않고, uniform_brick_spacing_flag[ i ]가 1과 동일할 때, num_brick_rows_minus2[ i ]의 값은 6.5.1 절에 명시된 바와 같이 추론된다.
brick_row_height_minus1[ i ][ j ] + 1은 uniform_tile_spacing_flag가 0과 동일할 때 CTB 단위로 i 번째 타일 내의 j 번째 브릭의 높이를 지정한다.
이하의 변수들이 도출되며, 6.5.1절에 명시된 바와 같이 CTB 래스터 및 브릭 스캐닝 변환 프로세스를 호출하는 것에 의해, uniform_tile_spacing_flag가 1과 동일할 때, num_tile_columns_minus1 및 num_tile_rows_minus1의 값들이 추론되고, 0 내지 NumTilesInPic - 1의 범위(경계 포함)에 있는 각각의 i에 대해, uniform_brick_spacing_flag[ i ]가 1과 동일할 때, num_brick_rows_minus2[ i ]의 값이 추론된다.
- CTB 단위로 j 번째 타일 행의 높이를 지정하는, 0 내지 num_tile_rows_minus1의 범위(경계 포함)에 있는 j에 대한 리스트 RowHeight[ j ],
- 픽처의 CTB 래스터 스캔에서의 CTB 어드레스로부터 브릭 스캔에서의 CTB 어드레스로의 변환을 지정하는, 0 내지 PicSizeInCtbsY - 1의 범위(경계 포함)에 있는 ctbAddrRs에 대한 리스트 CtbAddrRsToBs[ ctbAddrRs ],
- 브릭 스캔에서의 CTB 어드레스로부터 픽처의 CTB 래스터 스캔에서의 CTB 어드레스로의 변환을 지정하는, 0 내지 PicSizeInCtbsY - 1의 범위(경계 포함)에 있는 ctbAddrBs에 대한 리스트 CtbAddrBsToRs[ ctbAddrBs ],
- 브릭 스캔에서의 CTB 어드레스로부터 브릭 ID로의 변환을 지정하는, 0 내지 PicSizeInCtbsY - 1의 범위(경계 포함)에 있는 ctbAddrB에 대한 리스트 BrickId[ ctbAddrBs ],
- 브릭 인덱스로부터 브릭 내의 CTU들의 수로의 변환을 지정하는, 0 내지 NumBricksInPic - 1의 범위(경계 포함)에 있는 brickIdx에 대한 리스트 NumCtusInBrick[ brickIdx ],
- 브릭 ID로부터 브릭 내의 첫 번째 CTB의 브릭 스캔에서의 CTB 어드레스로의 변환을 지정하는, 0 내지 NumBricksInPic - 1의 범위(경계 포함)에 있는 brickIdx에 대한 리스트 FirstCtbAddrBs[ brickIdx ].
single_brick_per_slice_flag가 1과 동일한 것은 이 PPS를 참조하는 각각의 슬라이스가 하나의 브릭을 포함한다는 것을 지정한다. single_brick_per_slice_flag가 0과 동일한 것은 이 PPS를 참조하는 슬라이스가 2 개 이상의 브릭을 포함할 수 있다는 것을 지정한다. 존재하지 않을 때, single_brick_per_slice_flag의 값은 1과 동일한 것으로 추론된다.
rect_slice_flag가 0과 동일한 것은 각각의 슬라이스 내의 브릭들이 래스터 스캔 순서로 있고 슬라이스 정보가 PPS에서 시그널링되지 않는다는 것을 지정한다. rect_slice_flag가 1과 동일한 것은 각각의 슬라이스 내의 브릭들이 픽처의 직사각형 영역을 커버하고 슬라이스 정보가 PPS에서 시그널링된다는 것을 지정한다. brick_splitting_present_flag가 1과 동일할 때, rect_slice_flag의 값은 1과 동일해야 한다. 존재하지 않을 때, rect_slice_flag는 1과 동일한 것으로 추론된다.
num_slices_in_pic_minus1 + 1은 PPS를 참조하는 각각의 픽처 내의 슬라이스들의 수를 지정한다. num_slices_in_pic_minus1의 값은 0 내지 NumBricksInPic - 1의 범위(경계 포함)에 있어야 한다. single_brick_per_slice_flag가 1과 동일한 경우, 존재하지 않을 때, num_slices_in_pic_minus1의 값은 NumBricksInPic - 1과 동일한 것으로 추론된다.
bottom_right_brick_idx_length_minus1 + 1은 신택스 요소 bottom_right_brick_idx_delta[ i ]를 표현하는 데 사용되는 비트 수를 지정한다. bottom_right_brick_idx_length_minus1의 값은 0에서 Ceil( Log2( NumBricksInPic ) ) - 1의 범위(경계 포함)에 있어야 한다.
bottom_right_brick_idx_delta[ i ]는, i가 0보다 클 때, i 번째 슬라이스의 우측 하단 코너에 위치한 브릭의 브릭 인덱스와 ( i - 1 ) 번째 슬라이스의 우측 하단 코너의 브릭 인덱스 간의 차이를 지정한다. bottom_right_brick_idx_delta[ 0 ]은 0 번째 슬라이스의 우측 하단 코너의 브릭 인덱스를 지정한다. single_brick_per_slice_flag가 1과 동일할 때, bottom_right_brick_idx_delta[ i ]의 값은 1과 동일한 것으로 추론된다. BottomRightBrickIdx[ num_slices_in_pic_minus1 ]의 값은 NumBricksInPic - 1과 동일한 것으로 추론된다. bottom_right_brick_idx_delta[ i ] 신택스 요소의 길이는 bottom_right_brick_idx_length_minus1 + 1 비트이다.
brick_idx_delta_sign_flag[ i ]가 1과 동일한 것은 bottom_right_brick_idx_delta[ i ]에 대한 양의 부호를 나타낸다. sign_bottom_right_brick_idx_delta[ i ]가 0과 동일한 것은 bottom_right_brick_idx_delta[ i ]에 대한 음의 부호를 나타낸다.
슬라이스가 다수의 완전한 타일들을 포함하거나 하나의 타일의 완전한 브릭들의 연속적인 시퀀스만을 포함해야 하는 것은 비트스트림 적합성의 요구사항이다.
i 번째 슬라이스의 좌측 상단 코너에 위치한 브릭의 브릭 인덱스, i 번째 슬라이스의 우측 하단 코너에 위치한 브릭의 브릭 인덱스, i 번째 슬라이스 내의 브릭들의 수 및 슬라이스들에 대한 브릭들의 매핑을 지정하는 변수 TopLeftBrickIdx[ i ], BottomRightBrickIdx[ i ], NumBricksInSlice[ i ] 및 BricksToSliceMap[ j ]는 다음과 같이 도출된다:
Figure pct00055
일반 슬라이스 헤더 시맨틱스
존재할 때, 슬라이스 헤더 신택스 요소들 slice_pic_parameter_set_id, non_reference_picture_flag, colour_plane_id, slice_pic_order_cnt_lsb, recovery_poc_cnt, no_output_of_prior_pics_flag, pic_output_flag, 및 slice_temporal_mvp_enabled_flag 각각의 값은 코딩된 픽처의 모든 슬라이스 헤더들에서 동일해야 한다.
cu_qp_delta_abs를 포함하는 코딩 유닛에 대한 루마 양자화 파라미터와 그의 예측 간의 차이를 지정하는 변수 CuQpDeltaVal은 0과 동일하게 설정된다. cu_chroma_qp_offset_flag를 포함하는 코딩 유닛에 대한 Qp′Cb, Qp′Cr, 및 Qp′CbCr 양자화 파라미터들의 각자의 값들을 결정할 때 사용될 값들을 지정하는 변수들 CuQpOffsetCb, CuQpOffsetCr, 및 CuQpOffsetCbCr 모두는 0과 동일하게 설정된다.
slice_pic_parameter_set_id는 사용 중인 PPS에 대한 pps_pic_parameter_set_id의 값을 지정한다. slice_pic_parameter_set_id의 값은 0 내지 63의 범위(경계 포함)에 있어야 한다.
현재 픽처의 TemporalId의 값이 slice_pic_parameter_set_id와 동일한 pps_pic_parameter_set_id를 갖는 PPS의 TemporalId의 값보다 크거나 같아야 한다는 것은 비트스트림 적합성의 요구사항이다.
slice_address는 슬라이스의 슬라이스 어드레스를 지정한다. 존재하지 않을 때, slice_address의 값은 0과 동일한 것으로 추론된다.
rect_slice_flag가 0과 동일한 경우, 다음이 적용된다:
- 슬라이스 어드레스는 방정식 (7-59)에 의해 명시된 바와 같은 브릭 ID이다.
- slice_address의 길이는 Ceil( Log2 ( NumBricksInPic ) ) 비트이다.
- slice_address의 값은 0 내지 NumBricksInPic - 1의 범위(경계 포함)에 있어야 한다.
그렇지 않은 경우(rect_slice_flag가 1과 동일한 경우), 다음이 적용된다:
- 슬라이스 어드레스는 슬라이스의 슬라이스 ID이다.
- slice_address의 길이는 signalled_slice_id_length_minus1 + 1비트이다.
- signalled_slice_id_flag가 0과 동일한 경우, slice_address의 값은 0 내지 num_slices_in_pic_minus1의 범위(경계 포함)에 있어야 한다. 그렇지 않은 경우, slice_address의 값은 0 내지 2( signalled_slice_id_length_minus1 + 1 ) - 1의 범위(경계 포함)에 있어야 한다.
다음 제약들이 적용되는 것은 비트스트림 적합성의 요구사항이다:
- slice_address의 값은 동일한 코딩된 픽처의 임의의 다른 코딩된 슬라이스 NAL 유닛의 slice_address의 값과 동일하지 않아야 한다.
- rect_slice_flag가 0과 동일할 때, 픽처의 슬라이스들은 그들의 slice_address 값들의 증가하는 순서로 있어야 한다.
- 픽처의 슬라이스들의 형상들은 각각의 브릭이, 디코딩될 때, 그의 전체 좌측 경계와 전체 상단 경계가 픽처 경계로 구성되거나 이전에 디코딩된 브릭(들)의 경계들로 구성되도록 해야 한다.
num_bricks_in_slice_minus1은, 존재할 때, 슬라이스 내의 브릭 수에서 1을 뺀 것을 지정한다. num_bricks_in_slice_minus1의 값은 0 내지 NumBricksInPic - 1의 범위(경계 포함)에 있어야 한다. rect_slice_flag가 0과 동일하고 single_brick_per_slice_flag가 1과 동일할 때, num_bricks_in_slice_minus1의 값은 0과 동일한 것으로 추론된다. single_brick_per_slice_flag가 1과 동일할 때, num_bricks_in_slice_minus1의 값은 0과 동일한 것으로 추론된다.
현재 슬라이스 내의 브릭들의 수를 지정하는 변수 NumBricksInCurrSlice, 및 현재 슬라이스 내의 i 번째 브릭의 브릭 인덱스를 지정하는 SliceBrickIdx[ i ]는 다음과 같이 도출된다:
Figure pct00056
Figure pct00057
변수들 SubPicIdx, SubPicLeftBoundaryPos, SubPicTopBoundaryPos, SubPicRightBoundaryPos, 및 SubPicBotBoundaryPos는 다음과 같이 도출된다:
Figure pct00058
3. 개시된 실시예들에 의해 해결되는 기술적 문제들의 예들
(1) 서브픽처 제약을 위반할 수 있는 일부 설계들이 있다.
A. 아핀 구성된 후보들에서의 TMVP는 현재 서브픽처의 범위를 벗어난 동일 위치 픽처에서의 MV를 페치할 수 있다.
B. 양방향 광학 흐름(Bi-Directional Optical Flow, BDOF) 및 예측 개선 광학 흐름(Prediction Refinement Optical Flow, PROF)에서의 구배들을 도출할 때, 정수 참조 샘플들의 2 개의 확장된 행과 2 개의 확장된 열이 페치될 필요가 있다. 이러한 참조 샘플들은 현재 서브픽처의 범위를 벗어날 수 있다.
C. 루마 매핑 크로마 스케일링(luma mapping chroma scaling, LMCS)에서 크로마 잔차 스케일링 인자를 도출할 때, 액세스된 재구성된 루마 샘플들은 현재 서브픽처의 범위를 벗어날 수 있다.
D. 루마 인트라 예측 모드, 인트라 예측을 위한 참조 샘플들, CCLM을 위한 참조 샘플들, 병합/AMVP/CIIP/IBC/LMCS를 위한 공간적 이웃 후보들에 대한 이웃 블록 이용 가능성, 양자화 파라미터들, CABAC 초기화 프로세스, 좌측 및 위쪽 신택스 요소들을 사용한 ctxInc 도출, 및 신택스 요소 mtt_split_cu_vertical_flag에 대한 ctxInc를 도출할 때, 이웃 블록은 현재 서브픽처의 범위를 벗어날 수 있다. 서브픽처의 표현이 불완전한 CTU들을 갖는 서브픽처로 이어질 수 있다. CTU 분할들 및 CU 분할 프로세스는 불완전한 CTU들을 고려할 필요가 있을 수 있다.
(2) 서브픽처에 관련된 시그널링된 신택스 요소들은 임의적으로 클 수 있으며, 이는 오버플로 문제를 야기할 수 있다.
(3) 서브픽처들의 표현은 직사각형이 아닌 서브픽처들로 이어질 수 있다.
(4) 현재, 서브픽처와 서브픽처 그리드는 4 샘플 단위로 정의된다. 그리고 신택스 요소의 길이는 픽처 높이를 4로 나눈 것에 의존한다. 그렇지만, 현재 pic_width_in_luma_samples 및 pic_height_in_luma_samples는 Max(8, MinCbSizeY)의 정수배여야 하기 때문에, 서브픽처 그리드는 8 샘플 단위로 정의될 필요가 있을 수 있다.
(5) SPS 신택스 pic_width_max_in_luma_samples 및 pic_height_max_in_luma_samples는 8보다 작지 않도록 제한될 필요가 있을 수 있다.
(6) 참조 픽처 리샘플링/확장성과 서브픽처 사이의 상호작용은 현재 설계에서 고려되지 않는다.
(7) 시간 필터링에서, 상이한 서브픽처들에 걸친 샘플들이 필요할 수 있다.
(8) 슬라이스들을 시그널링할 때, 일부 경우에 시그널링 없이 정보가 추론될 수 있다.
(9) 정의된 슬라이스들 모두가 전체 픽처 또는 서브픽처를 커버하지 못할 수 있다.
4. 예시적인 기술들 및 실시예들
아래의 상세한 목록은 일반 개념들을 설명하기 위한 예들로 간주되어야 한다. 이러한 항목들이 좁은 의미로 해석되어서는 안 된다. 게다가, 이러한 항목들은 임의의 방식으로 조합될 수 있다. 이후부터, 다른 픽처들 내의 샘플들을 필요로 하는 필터들을 표현하기 위해 시간 필터가 사용된다. Max(x, y)는 x 및 y 중 큰 쪽을 리턴한다. Min(x, y)는 x 및 y 중 작은 쪽을 리턴한다.
1. 요구된 서브픽처의 좌측 상단 코너 좌표가 (xTL, yTL)이고 요구된 서브픽처의 우측 하단 좌표가 (xBR, yBR)이라고 가정할 때, 아핀 모션 후보들(예를 들면, 구성된 아핀 병합 후보)을 생성하기 위해 픽처에서 시간적 MV 예측자가 페치되는 위치(위치 RB라고 명명됨)는 요구된 서브픽처에 있어야 한다.
a. 일 예에서, 요구된 서브픽처는 현재 블록을 커버하는 서브픽처이다.
b. 일 예에서, 좌표 (x, y)를 갖는 위치 RB가 요구된 서브픽처를 벗어나 있는 경우, 시간적 MV 예측자는 이용 불가능한 것으로 취급된다.
i. 일 예에서, x > xBR인 경우 위치 RB는 요구된 서브픽처를 벗어나 있다.
ii. 일 예에서, y > yBR인 경우 위치 RB는 요구된 서브픽처를 벗어나 있다.
iii. 일 예에서, x < xTL인 경우 위치 RB는 요구된 서브픽처를 벗어나 있다.
iv. 일 예에서, y < yTL인 경우 위치 RB는 요구된 서브픽처를 벗어나 있다.
c. 일 예에서, 위치 RB가 요구된 서브픽처 외부에 있는 경우, RB의 대체가 활용된다.
i. 대안적으로, 게다가, 대체 위치는 요구된 서브픽처에 있어야 한다.
d. 일 예에서, 위치 RB는 요구된 서브픽처에 있도록 클리핑된다.
i. 일 예에서, x는 x = Min(x, xBR)로서 클리핑된다.
ii. 일 예에서, y는 y = Min(y, yBR)로서 클리핑된다.
iii. 일 예에서, x는 x = Max(x, xTL)로서 클리핑된다.
iv. 일 예에서, y는 y = Max(y, yTL)로서 클리핑된다.
e. 일 예에서, 위치 RB는 동일 위치 픽처 내의 현재 블록의 대응하는 블록 내부의 우측 하단 위치일 수 있다.
f. 제안된 방법은 현재 픽처와 상이한 픽처로부터의 모션 정보에 액세스할 필요가 있는 다른 코딩 툴들에서 활용될 수 있다.
g. 일 예에서, 위의 방법들이 적용되는지 여부(예를 들면, (예를 들면, 1.a 및/또는 1.b에서 요구된 바와 같이 행하기 위해) 위치 RB가 요구된 서브픽처에 있어야 하는지 여부)는 VPS/DPS/SPS/PPS/APS/슬라이스 헤더/타일 그룹 헤더에서 시그널링되는 하나 이상의 신택스 요소에 의존할 수 있다. 예를 들어, 신택스 요소는 subpic_treated_as_pic_flag[ SubPicIdx ]일 수 있으며, 여기서 SubPicIdx는 현재 블록을 커버하는 서브픽처의 서브픽처 인덱스이다.
2. 요구된 서브픽처의 좌측 상단 코너 좌표가 (xTL, yTL)이고 요구된 서브픽처의 우측 하단 좌표가 (xBR, yBR)이라고 가정할 때, 보간 프로세스에서 사용되지 않는 참조에서 정수 샘플이 페치되는 위치(위치 S라고 명명됨)는 요구된 서브픽처에 있어야 한다.
a. 일 예에서, 요구된 서브픽처는 현재 블록을 커버하는 서브픽처이다.
b. 일 예에서, 좌표 (x, y)를 갖는 위치 S가 요구된 서브픽처를 벗어나 있는 경우, 참조 샘플은 이용 불가능한 것으로 취급된다.
i. 일 예에서, x > xBR인 경우 위치 S는 요구된 서브픽처를 벗어나 있다.
ii. 일 예에서, y > yBR인 경우 위치 S는 요구된 서브픽처를 벗어나 있다.
iii. 일 예에서, x < xTL인 경우 위치 S는 요구된 서브픽처를 벗어나 있다.
iv. 일 예에서, y < yTL인 경우 위치 S는 요구된 서브픽처를 벗어나 있다.
c. 일 예에서, 위치 S는 요구된 서브픽처에 있도록 클리핑된다.
i. 일 예에서, x는 x = Min(x, xBR)로서 클리핑된다.
ii. 일 예에서, y는 y = Min(y, yBR)로서 클리핑된다.
iii. 일 예에서, x는 x = Max(x, xTL)로서 클리핑된다.
iv. 일 예에서, y는 y = Max(y, yTL)로서 클리핑된다.
d. 일 예에서, (예를 들면, 2.a 및/또는 2.b에서 요구된 바와 같이 행하기 위해) 위치 S가 요구된 서브픽처에 있어야 하는지 여부는 VPS/DPS/SPS/PPS/APS/슬라이스 헤더/타일 그룹 헤더에서 시그널링되는 하나 이상의 신택스 요소에 의존할 수 있다. 예를 들어, 신택스 요소는 subpic_treated_as_pic_flag[ SubPicIdx ]일 수 있으며, 여기서 SubPicIdx는 현재 블록을 커버하는 서브픽처의 서브픽처 인덱스이다.
e. 일 예에서, 페치된 정수 샘플은 BDOF 및/또는 PROF에서의 구배들을 생성하는 데 사용된다.
3. 요구된 서브픽처의 좌측 상단 코너 좌표가 (xTL, yTL)이고 요구된 서브픽처의 우측 하단 좌표가 (xBR, yBR)이라고 가정할 때, 재구성된 루마 샘플 값이 페치되는 위치(위치 R이라고 명명됨)는 요구된 서브픽처에 있을 수 있다.
a. 일 예에서, 요구된 서브픽처는 현재 블록을 커버하는 서브픽처이다.
b. 일 예에서, 좌표 (x, y)를 갖는 위치 R이 요구된 서브픽처를 벗어나 있는 경우, 참조 샘플은 이용 불가능한 것으로 취급된다.
i. 일 예에서, x > xBR인 경우 위치 R은 요구된 서브픽처를 벗어나 있다.
ii. 일 예에서, y > yBR인 경우 위치 R은 요구된 서브픽처를 벗어나 있다.
iii. 일 예에서, x < xTL인 경우 위치 R은 요구된 서브픽처를 벗어나 있다.
iv. 일 예에서, y < yTL인 경우 위치 R은 요구된 서브픽처를 벗어나 있다.
c. 일 예에서, 위치 R은 요구된 서브픽처에 있도록 클리핑된다.
i. 일 예에서, x는 x = Min(x, xBR)로서 클리핑된다.
ii. 일 예에서, y는 y = Min(y, yBR)로서 클리핑된다.
iii. 일 예에서, x는 x = Max(x, xTL)로서 클리핑된다.
iv. 일 예에서, y는 y = Max(y, yTL)로서 클리핑된다.
d. 일 예에서, (예를 들면, 4.a 및/또는 4.b에서 요구된 바와 같이 행하기 위해) 위치 R이 요구된 서브픽처에 있어야 하는지 여부는 VPS/DPS/SPS/PPS/APS/슬라이스 헤더/타일 그룹 헤더에서 시그널링되는 하나 이상의 신택스 요소에 의존할 수 있다. 예를 들어, 신택스 요소는 subpic_treated_as_pic_flag[ SubPicIdx ]일 수 있으며, 여기서 SubPicIdx는 현재 블록을 커버하는 서브픽처의 서브픽처 인덱스이다.
e. 일 예에서, 페치된 루마 샘플은 LMCS에서 크로마 성분(들)에 대한 스케일링 인자를 도출하는 데 사용된다.
4. 요구된 서브픽처의 좌측 상단 코너 좌표가 (xTL, yTL)이고 요구된 서브픽처의 우측 하단 좌표가 (xBR, yBR)이라고 가정할 때, BT/TT/QT 분할, BT/TT/QT 깊이 도출, 및/또는 CU 분할 플래그의 시그널링을 위한 픽처 경계 검사가 수행되는 위치(위치 N이라고 명명됨)는 요구된 서브픽처에 있어야 한다.
a. 일 예에서, 요구된 서브픽처는 현재 블록을 커버하는 서브픽처이다.
b. 일 예에서, 좌표 (x, y)를 갖는 위치 N이 요구된 서브픽처를 벗어나 있는 경우, 참조 샘플은 이용 불가능한 것으로 취급된다.
i. 일 예에서, x > xBR인 경우 위치 N은 요구된 서브픽처를 벗어나 있다.
ii. 일 예에서, y > yBR인 경우 위치 N은 요구된 서브픽처를 벗어나 있다.
iii. 일 예에서, x < xTL인 경우 위치 N은 요구된 서브픽처를 벗어나 있다.
iv. 일 예에서, y < yTL인 경우 위치 N은 요구된 서브픽처를 벗어나 있다.
c. 일 예에서, 위치 N은 요구된 서브픽처에 있도록 클리핑된다.
i. 일 예에서, x는 x = Min(x, xBR)로서 클리핑된다.
ii. 일 예에서, y는 y = Min(y, yBR)로서 클리핑된다.
iii. 일 예에서, x는 x = Max(x, xTL)로서 클리핑된다.
d. 일 예에서, y는 y = Max(y, yTL)로서 클리핑된다. 일 예에서, (예를 들면, 5.a 및/또는 5.b에서 요구된 바와 같이 행하기 위해) 위치 N이 요구된 서브픽처에 있어야 하는지 여부는 VPS/DPS/SPS/PPS/APS/슬라이스 헤더/타일 그룹 헤더에서 시그널링되는 하나 이상의 신택스 요소에 의존할 수 있다. 예를 들어, 신택스 요소는 subpic_treated_as_pic_flag[ SubPicIdx ]일 수 있으며, 여기서 SubPicIdx는 현재 블록을 커버하는 서브픽처의 서브픽처 인덱스이다.
5. 히스토리 기반 모션 벡터 예측(History-based Motion Vector Prediction, HMVP) 테이블은 하나의 픽처 내의 새로운 서브픽처를 디코딩하기 전에 리셋될 수 있다.
a. 일 예에서, IBC 코딩에 사용되는 HMVP 테이블은 리셋될 수 있다.
b. 일 예에서, 인터 코딩에 사용되는 HMVP 테이블은 리셋될 수 있다.
c. 일 예에서, 인트라 코딩에 사용되는 HMVP 테이블은 리셋될 수 있다.
6. 서브픽처 신택스 요소들은 N(예컨대, N = 8, 32 등) 샘플 단위로 정의될 수 있다.
a. 일 예에서, N 샘플 단위의 서브픽처 식별자 그리드의 각각의 요소의 폭.
b. 일 예에서, N 샘플 단위의 서브픽처 식별자 그리드의 각각의 요소의 높이.
c. 일 예에서, N은 CTU의 폭 및/또는 높이로 설정된다.
7. 픽처 폭 및 픽처 높이의 신택스 요소는 K(K>=8)보다 작지 않도록 제한될 수 있다.
a. 일 예에서, 픽처 폭은 8보다 작지 않도록 제한될 필요가 있을 수 있다.
b. 일 예에서, 픽처 높이는 8보다 작지 않도록 제한될 필요가 있을 수 있다.
8. 적합성 비트스트림은 서브픽처 코딩 및 적응적 해상도 변환(ARC)/동적 해상도 변환(DRC)/참조 픽처 리샘플링(RPR)이 하나의 비디오 유닛(예를 들면, 시퀀스)에 대해 인에이블되도록 허용되지 않는다는 것을 충족시켜야 한다.
a. 일 예에서, 서브픽처 코딩의 인에이블의 시그널링은 ARC/DRC/RPR을 허용하지 않는다는 조건들 하에서 있을 수 있다.
i. 일 예에서, 서브픽처가 인에이블될 때, 예컨대, subpics_present_flag가 1과 동일할 때, 이 SPS가 활성인 모든 픽처들에 대한 pic_width_in_luma_samples는 max_width_in_luma_samples와 동일하다.
b. 대안적으로, 서브픽처 코딩 및 ARC/DRC/RPR은 양쪽 모두 하나의 비디오 유닛(예를 들면, 시퀀스)에 대해 인에이블될 수 있다.
i. 일 예에서, 적합성 비트스트림은 ARC/DRC/RPR로 인한 다운샘플링된 서브픽처가 여전히 폭이 K 개의 CTU이고 높이가 M 개의 CTU인 형태여야 한다는 것을 충족시켜야 하며 여기서 K와 M은 양쪽 모두 정수들이다.
ii. 일 예에서, 적합성 비트스트림은, 픽처 경계들(예를 들면, 우측 경계 및/또는 하단 경계)에 위치하지 않는 서브픽처들의 경우, ARC/DRC/RPR로 인한 다운샘플링된 서브픽처가 여전히 폭이 K 개의 CTU이고 높이가 M 개의 CTU인 형태여야 한다는 것을 충족시켜야 하며 여기서 K와 M은 양쪽 모두 정수들이다.
iii. 일 예에서, CTU 크기들은 픽처 해상도에 기초하여 적응적으로 변경될 수 있다.
1) 일 예에서, 최대 CTU 크기는 SPS에서 시그널링될 수 있다. 보다 낮은 해상도를 갖는 각각의 픽처에 대해, CTU 크기는 감소된 해상도에 기초하여 그에 따라 변경될 수 있다.
2) 일 예에서, CTU 크기는 SPS 및 PPS, 및/또는 서브픽처 레벨에서 시그널링될 수 있다.
9. 신택스 요소 subpic_grid_col_width_minus1 및 subpic_grid_row_height_minus1은 제약될 수 있다.
a. 일 예에서, subpic_grid_col_width_minus1은 T1보다 크지 않아야 한다(또는 작아야 한다).
b. 일 예에서, subpic_grid_row_height_minus1은 T2보다 크지 않아야 한다(또는 작아야 한다).
c. 일 예에서, 적합성 비트스트림에서, subpic_grid_col_width_minus1 및/또는 subpic_grid_row_height_minus1은 글머리 기호 3.a 또는 글머리 기호 3.b와 같은 제약을 따라야 한다.
d. 일 예에서, 3.a에서의 T1 및/또는 3.b에서의 T2는 비디오 코딩 표준의 프로필/레벨/티어(tier)에 의존할 수 있다.
e. 일 예에서, 3.a에서의 T1은 픽처 폭에 의존할 수 있다.
i. 예를 들어, T1은 pic_width_max_in_luma_samples/4 또는 pic_width_max_in_luma_samples/4+Off와 동일하다. Off는 1, 2, -1, -2 등일 수 있다.
f. 일 예에서, 3.b에서의 T2는 픽처 폭에 의존할 수 있다.
i. 예를 들어, T2는 pic_height_max_in_luma_samples/4 또는 pic_height_max_in_luma_samples /4-1+Off와 동일하다. Off는 1, 2, -1, -2 등일 수 있다.
10. 2 개의 서브픽처 사이의 경계가 2 개의 CTU 사이의 경계여야 하는 것으로 제약된다.
a. 환언하면, CTU는 둘 이상의 서브픽처에 의해 커버될 수 없다.
b. 일 예에서, subpic_grid_col_width_minus1의 단위는, VVC에서와 같이 4 대신에, CTU 폭(예컨대, 32, 64, 128)일 수 있다. 서브픽처 그리드 폭은 (subpic_grid_col_width_minus1+1) * CTU 폭이어야 한다.
c. 일 예에서, subpic_grid_col_height_minus1의 단위는, VVC에서와 같이 4 대신에, CTU 높이(예컨대, 32, 64, 128)일 수 있다. 서브픽처 그리드 높이는 (subpic_grid_col_height_minus1+1) * CTU 높이여야 한다.
d. 일 예에서, 적합성 비트스트림에서, 서브픽처 접근법이 적용되는 경우 제약이 충족되어야만 한다.
11. 서브픽처의 형상이 직사각형이어야 하는 것으로 제약된다.
a. 일 예에서, 적합성 비트스트림에서, 서브픽처 접근법이 적용되는 경우 제약이 충족되어야만 한다.
b. 서브픽처는 직사각형 슬라이스들만을 포함할 수 있다. 예를 들어, 적합성 비트스트림에서, 서브픽처 접근법이 적용되는 경우 제약이 충족되어야만 한다.
12. 2 개의 서브픽처가 중첩될 수 없는 것으로 제약된다.
a. 일 예에서, 적합성 비트스트림에서, 서브픽처 접근법이 적용되는 경우 제약이 충족되어야만 한다.
b. 대안적으로, 2 개의 서브픽처가 서로 중첩될 수 있다.
13. 픽처 내의 임의의 위치가 단 하나의 서브픽처에 의해 커버되어야 하는 것으로 제약된다.
a. 일 예에서, 적합성 비트스트림에서, 서브픽처 접근법이 적용되는 경우 제약이 충족되어야만 한다.
b. 대안적으로, 하나의 샘플이 어떤 서브픽처에도 속하지 않을 수 있다.
c. 대안적으로, 하나의 샘플이 둘 이상의 서브픽처에 속할 수 있다.
14. 동일한 시퀀스에서 제시되는 모든 해상도에 매핑되는 SPS에 정의되는 서브픽처들이 위에서 언급된 제약된 위치 및/또는 크기를 준수해야 하는 것으로 제약될 수 있다.
a. 일 예에서, 동일한 시퀀스에서 제시되는 해상도에 매핑되는 SPS에 정의되는 서브픽처의 폭 및 높이는 N(예컨대, 8, 16, 32) 루마 샘플의 정수배여야 한다.
b. 일 예에서, 서브픽처들은 특정 계층에 대해 정의될 수 있고 다른 계층들에 매핑될 수 있다.
i. 예를 들어, 서브픽처들은 시퀀스에서 최고 해상도를 갖는 계층에 대해 정의될 수 있다.
ii. 예를 들어, 서브픽처들은 시퀀스에서 최저 해상도를 갖는 계층에 대해 정의될 수 있다.
iii. 서브픽처들이 어느 계층에 대해 정의되는지는 SPS/VPS/PPS/슬라이스 헤더에서 시그널링될 수 있다.
c. 일 예에서, 서브픽처들 및 상이한 해상도들이 양쪽 모두 적용될 때, 모든 해상도들(예를 들어, 폭 및/또는 높이)는 주어진 해상도의 정수배일 수 있다.
d. 일 예에서, SPS에 정의되는 서브픽처의 폭 및/또는 높이는 CTU 크기의 정수배(예를 들어, M 배)일 수 있다.
e. 대안적으로, 시퀀스에서의 서브픽처들 및 상이한 해상도들은 동시에 허용되지 않을 수 있다.
15. 서브픽처들은 특정 계층(들)에만 적용될 수 있다.
a. 일 예에서, SPS에 정의되는 서브픽처들은 시퀀스에서 최고 해상도를 갖는 계층에만 적용될 수 있다.
b. 일 예에서, SPS에 정의되는 서브픽처들은 시퀀스에서 가장 낮은 시간 id(temporal id)를 갖는 계층에만 적용될 수 있다.
c. 서브픽처들이 어느 계층(들)에 적용될 수 있는지는 SPS/VPS/PPS에서의 하나 또는 다수의 신택스 요소에 의해 표시될 수 있다.
d. 서브픽처가 어느 계층(들)에 적용될 수 없는지는 SPS/VPS/PPS에서의 하나 또는 다수의 신택스 요소에 의해 표시될 수 있다.
16. 일 예에서, 서브픽처의 위치 및/또는 치수는 subpic_grid_idx를 사용하지 않고 시그널링될 수 있다.
a. 일 예에서, 서브픽처의 좌측 상단 위치가 시그널링될 수 있다.
b. 일 예에서, 서브픽처의 우측 하단 위치가 시그널링될 수 있다.
c. 일 예에서, 서브픽처의 폭이 시그널링될 수 있다.
d. 일 예에서, 서브픽처의 높이가 시그널링될 수 있다.
17. 시간 필터의 경우, 샘플의 시간 필터링을 수행할 때, 현재 샘플이 속하는 동일한 서브픽처 내의 샘플들만이 사용될 수 있다. 요구된 샘플들은 현재 샘플이 속하는 동일한 픽처에 또는 다른 픽처들에 있을 수 있다.
18. 일 예에서, 분할 방법(예컨대, QT, 수평 BT, 수직 BT, 수평 TT, 수직 TT, 분할 없음 등)을 적용할지 여부 및/또는 어떻게 적용할지는 현재 블록(또는 파티션)이 서브픽처의 하나 또는 다수의 경계와 교차하는지 여부에 의존할 수 있다.
a. 일 예에서, VVC에서의 분할을 위한 픽처 경계 처리 방법은 픽처 경계가 서브픽처 경계로 대체될 때에도 적용될 수 있다.
b. 일 예에서, 분할 방법(예컨대, QT, 수평 BT, 수직 BT, 수평 TT, 수직 TT, 분할 없음 등)을 나타내는 신택스 요소(예를 들면, 플래그)를 파싱할지 여부는 현재 블록(또는 파티션)이 서브픽처의 하나 또는 다수의 경계와 교차하는지 여부에 의존할 수 있다.
19. 하나의 픽처를 각각의 서브픽처의 독립적인 코딩을 갖는 다수의 서브픽처들로 분할하는 대신에, 하나의 픽처를 적어도 2 개의 서브영역 세트로 분할하는 것이 제안되며, 제1 세트는 다수의 서브픽처들을 포함하고 제2 세트는 나머지 샘플들 전부를 포함한다.
a. 일 예에서, 제2 세트 내의 샘플은 어떤 서브픽처들에도 없다.
b. 대안적으로, 게다가, 제2 세트는 제1 세트의 정보에 기초하여 인코딩/디코딩될 수 있다.
c. 일 예에서, 디폴트 값은 샘플/MxK 서브영역이 제2 세트에 속하는지 여부를 표시하는 데 활용될 수 있다.
i. 일 예에서, 디폴트 값은 (max_subpics_minus1 + K)와 동일하게 설정될 수 있고 여기서 K는 1보다 큰 정수이다.
ii. 그리드가 제2 세트에 속한다는 것을 나타내기 위해 디폴트 값이 subpic_grid_idx[i][j]에 할당될 수 있다.
20. 신택스 요소 subpic_grid_idx[i][j]가 max_subpics_minus1보다 클 수 없다는 것이 제안된다.
a. 예를 들어, 적합성 비트스트림에서, subpic_grid_idx[i][j]가 max_subpics_minus1보다 클 수 없는 것으로 제약된다.
b. 예를 들어, subpic_grid_idx[i][j]를 코딩하는 코드워드는 max_subpics_minus1보다 클 수 없다.
21. 0부터 max_subpics_minus1까지의 임의의 정수가 적어도 하나의 subpic_grid_idx[i][j]와 동일해야 한다는 것이 제안된다.
22. IBC 가상 버퍼는 하나의 픽처 내의 새로운 서브픽처를 디코딩하기 전에 리셋될 수 있다.
a. 일 예에서, IBC 가상 버퍼 내의 모든 샘플들이 -1로 리셋될 수 있다.
23. 팔레트 엔트리 리스트는 하나의 픽처 내의 새로운 서브픽처를 디코딩하기 전에 리셋될 수 있다.
a. 일 예에서, PredictorPaletteSize는 하나의 픽처 내의 새로운 서브픽처를 디코딩하기 전에 0과 동일하게 설정될 수 있다.
24. 슬라이스들에 대한 정보(예를 들면, 슬라이스들의 수 및/또는 슬라이스들의 범위들)를 시그널링할지 여부는 타일들의 수 및/또는 브릭들의 수에 의존할 수 있다.
a. 일 예에서, 픽처 내의 브릭들의 수가 1인 경우, num_slices_in_pic_minus1은 시그널링되지 않고 0인 것으로 추론된다.
b. 일 예에서, 픽처 내의 브릭들의 수가 1인 경우, 슬라이스들에 대한 정보(예를 들면, 슬라이스들의 수 및/또는 슬라이스들의 범위들)가 시그널링되지 않을 수 있다.
c. 일 예에서, 픽처 내의 브릭들의 수가 1인 경우, 슬라이스들의 수는 1인 것으로 추론될 수 있다. 그리고 슬라이스는 전체 픽처를 커버한다. 일 예에서, 픽처 내의 브릭들의 수가 1인 경우, single_brick_per_slice_flag는 시그널링되지 않고 1인 것으로 추론된다.
i. 대안적으로, 픽처 내의 브릭들의 수가 1인 경우, single_brick_per_slice_flag는 1이어야 한다.
d. 예시적인 신택스 설계는 아래와 같다:
Figure pct00059
25. slice_address를 시그널링할지 여부는 슬라이스들이 직사각형들인 것으로 시그널링되는지 여부(예를 들면, rect_slice_flag가 0 또는 1인지)와 분리될 수 있다.
a. 예시적인 신택스 설계는 아래와 같다:
Figure pct00060
26. slice_address를 시그널링할지 여부는 슬라이스들이 직사각형들인 것으로 시그널링될 때 슬라이스들의 수에 의존할 수 있다.
Figure pct00061
27. num_bricks_in_slice_minus1을 시그널링할지 여부는 slice_address 및/또는 픽처 내의 브릭들의 수에 의존할 수 있다.
a. 예시적인 신택스 설계는 아래와 같다:
Figure pct00062
28. loop_filter_across_bricks_enabled_flag를 시그널링할지 여부는 타일들의 수 및/또는 브릭들의 수에 의존할 수 있다.
a. 일 예에서, loop_filter_across_bricks_enabled_flag는 브릭들의 수가 2보다 작은 경우 시그널링되지 않는다.
b. 예시적인 신택스 설계는 아래와 같다:
Figure pct00063
29. 픽처의 모든 슬라이스들이 전체 픽처를 커버해야 한다는 것은 비트스트림 적합성의 요구사항이다.
a. 슬라이스들이 직사각형들인 것으로 시그널링될 때(예를 들면, rect_slice_flag가 1과 동일할 때) 해당 요구사항이 충족되어야 한다.
30. 서브픽처의 모든 슬라이스들이 전체 서브픽처를 커버해야 한다는 것은 비트스트림 적합성의 요구사항이다.
a. 슬라이스들이 직사각형들인 것으로 시그널링될 때(예를 들면, rect_slice_flag가 1과 동일할 때) 해당 요구사항이 충족되어야 한다.
31. 슬라이스가 2 개 이상의 서브픽처와 중첩될 수 없다는 것은 비트스트림 적합성의 요구사항이다.
32. 타일이 2 개 이상의 서브픽처와 중첩될 수 없다는 것은 비트스트림 적합성의 요구사항이다.
33. 브릭이 2 개 이상의 서브픽처와 중첩될 수 없다는 것은 비트스트림 적합성의 요구사항이다.
이하의 논의에서, 치수 CW x CH를 갖는 기본 단위 블록(basic unit block, BUB)은 직사각형 영역이다. 예를 들어, BUB는 코딩 트리 블록(Coding Tree Block, CTB)일 수 있다.
34. 일 예에서, 서브픽처들의 수(N으로 표기됨)가 시그널링될 수 있다.
a. 서브픽처가 사용되는 경우(예를 들면, subpics_present_flag가 1과 동일한 경우) 픽처에 적어도 2 개의 서브픽처가 있다는 것이 적합성 비트스트림에 대해 요구될 수 있다.
b. 대안적으로, N에서 d를 뺀 것(즉, N-d)이 시그널링될 수 있으며, 여기서 d는 0, 1 또는 2와 같은 정수이다.
c. 예를 들어, N-d는 고정 길이 코딩, 예를 들면, u(x)를 사용하여 코딩될 수 있다.
i. 일 예에서, x는 8과 같은 고정된 숫자일 수 있다.
ii. 일 예에서, x 또는 x-dx는 N-d가 시그널링되기 전에 시그널링될 수 있으며, 여기서 dx는 0, 1 또는 2와 같은 정수이다. 시그널링되는 x는 적합성 비트스트림에서의 최댓값보다 크지 않을 수 있다.
iii. 일 예에서, x는 온 더 플라이로(on-the-fly) 도출될 수 있다.
1) 예를 들어, x는 픽처 내의 BUB들의 총수(M으로 표기됨)의 함수로서 도출될 수 있다. 예를 들면, x = Ceil(log2(M+d0))+d1이고, 여기서 d0과 d1은, -2, -1, 0, 1, 2 등과 같은, 2 개의 정수이다.
2) M은 M = Ceiling(W/CW) x Ceiling(H/ CH)로서 도출될 수 있으며, 여기서 W 및 H는 픽처의 폭 및 높이를 나타내고, CW 및 CH는 BUB의 폭 및 높이를 나타낸다.
d. 예를 들어, N-d는 단항 코드(unary code) 또는 절단된 단항 코드(truncated unary code)를 사용하여 코딩될 수 있다.
e. 일 예에서, N-d의 허용된 최댓값은 고정된 숫자일 수 있다.
i. 대안적으로, N-d의 허용된 최댓값은 픽처 내의 BUB들의 총수(M으로 표기됨)의 함수로서 도출될 수 있다. 예를 들면, x = Ceil(log2(M+d0))+d1이고, 여기서 d0과 d1은, -2, -1, 0, 1, 2 등과 같은, 2 개의 정수이다.
35. 일 예에서, 서브픽처는 그의 하나 또는 다수의 선택된 위치(예를 들면, 좌측 상단/우측 상단/좌측 하단/우측 하단 위치) 및/또는 그의 폭 및/또는 그의 높이의 표시들에 의해 시그널링될 수 있다.
a. 일 예에서, 서브픽처의 좌측 상단 위치는 치수 CW x CH를 갖는 기본 단위 블록(BUB)의 입도로 시그널링될 수 있다.
i. 예를 들어, 서브픽처의 좌측 상단 BUB의 BUB들에 관한 열 인덱스(Col로 표기됨)가 시그널링될 수 있다.
1) 예를 들어, Col - d가 시그널링될 수 있으며, 여기서 d는 0, 1 또는 2와 같은 정수이다.
a) 대안적으로, d는 이전에 코딩된 서브픽처의 Col에 d1을 가산한 것과 동일할 수 있으며, 여기서 d1은 -1,0, 또는 1과 같은 정수이다.
b) Col -d의 부호가 시그널링될 수 있다.
ii. 예를 들어, 서브픽처의 좌측 상단 BUB의 BUB 단위의 행 인덱스(Row로 표기됨)가 시그널링될 수 있다.
1) 예를 들어, Row - d가 시그널링될 수 있으며, 여기서 d는 0, 1 또는 2와 같은 정수이다.
a) 대안적으로, d는 이전에 코딩된 서브픽처의 Row에 d1을 가산한 것과 동일할 수 있으며, 여기서 d1은 -1,0, 또는 1과 같은 정수이다.
b) Row -d의 부호가 시그널링될 수 있다.
iii. 위에서 언급된 행/열 인덱스(Row로 표기됨)는 코딩 트리 블록(CTB) 단위로 표현될 수 있으며, 예를 들면, 픽처의 좌측 상단 위치를 기준으로 한 x 또는 y 좌표가 CTB 크기로 나누어지고 시그널링될 수 있다.
iv. 일 예에서, 서브픽처의 위치를 시그널링할지 여부는 서브픽처 인덱스에 의존할 수 있다.
1) 일 예에서, 픽처 내의 첫 번째 서브픽처에 대해, 좌측 상단 위치는 시그널링되지 않을 수 있다.
a) 대안적으로, 게다가, 좌측 상단 위치는, 예를 들면, (0, 0)인 것으로 추론될 수 있다.
2) 일 예에서, 픽처 내의 마지막 서브픽처에 대해, 좌측 상단 위치는 시그널링되지 않을 수 있다.
a) 이전에 시그널링된 서브픽처들에 대한 정보에 따라 좌측 상단 위치가 추론될 수 있다.
b. 일 예에서, 서브픽처의 폭/높이/선택된 위치의 표시들은 절단된 단항/절단된 이진/단항/고정 길이/K차 EG 코딩(예를 들어, K=0, 1, 2, 3)을 사용하여 시그널링될 수 있다.
c. 일 예에서, 서브픽처의 폭은 치수 CW x CH를 갖는 BUB의 입도로 시그널링될 수 있다.
i. 예를 들어, 서브픽처 내의 BUB들의 열들의 수(W로 표기됨)가 시그널링될 수 있다.
ii. 예를 들어, W-d가 시그널링될 수 있으며, 여기서 d는 0, 1 또는 2와 같은 정수이다.
1) 대안적으로, d는 이전에 코딩된 서브픽처의 W에 d1을 가산한 것과 동일할 수 있으며, 여기서 d1은 -1,0, 또는 1과 같은 정수이다.
2) W-d의 부호가 시그널링될 수 있다.
d. 일 예에서, 서브픽처의 높이는 치수 CW x CH를 갖는 BUB의 입도로 시그널링될 수 있다.
i. 예를 들어, 서브픽처 내의 BUB들의 행들의 수(H로 표기됨)가 시그널링될 수 있다.
ii. 예를 들어, H-d가 시그널링될 수 있으며, 여기서 d는 0, 1 또는 2와 같은 정수이다.
1) 대안적으로, d는 이전에 코딩된 서브픽처의 H에 d1을 가산한 것과 동일할 수 있으며, 여기서 d1은 -1,0, 또는 1과 같은 정수이다.
2) H-d의 부호가 시그널링될 수 있다.
e. 일 예에서, Col-d는 고정 길이 코딩, 예를 들면, u(x)를 사용하여 코딩될 수 있다.
i. 일 예에서, x는 8과 같은 고정된 숫자일 수 있다.
ii. 일 예에서, x 또는 x-dx는 Col-d가 시그널링되기 전에 시그널링될 수 있으며, 여기서 dx는 0, 1 또는 2와 같은 정수이다. 시그널링되는 x는 적합성 비트스트림에서의 최댓값보다 크지 않을 수 있다.
iii. 일 예에서, x는 온 더 플라이로 도출될 수 있다.
1) 예를 들어, x는 픽처 내의 BUB 열들의 총수(M으로 표기됨)의 함수로서 도출될 수 있다. 예를 들면, x = Ceil(log2(M+d0))+d1이고, 여기서 d0과 d1은, -2, -1, 0, 1, 2 등과 같은, 2 개의 정수이다.
2) M은 M = Ceiling(W/CW)로서 도출될 수 있으며, 여기서 W는 픽처의 폭을 나타내고, CW는 BUB의 폭을 나타낸다.
f. 일 예에서, Row-d는 고정 길이 코딩, 예를 들면, u(x)를 사용하여 코딩될 수 있다.
i. 일 예에서, x는 8과 같은 고정된 숫자일 수 있다.
ii. 일 예에서, x 또는 x-dx는 Row-d가 시그널링되기 전에 시그널링될 수 있으며, 여기서 dx는 0, 1 또는 2와 같은 정수이다. 시그널링되는 x는 적합성 비트스트림에서의 최댓값보다 크지 않을 수 있다.
iii. 일 예에서, x는 온 더 플라이로 도출될 수 있다.
1) 예를 들어, x는 픽처 내의 BUB 행들의 총수(M으로 표기됨)의 함수로서 도출될 수 있다. 예를 들면, x = Ceil(log2(M+d0))+d1이고, 여기서 d0과 d1은, -2, -1, 0, 1, 2 등과 같은, 2 개의 정수이다.
2) M은 M = Ceiling(H/CH)로서 도출될 수 있으며, 여기서 H는 픽처의 높이를 나타내고, CH는 BUB의 높이를 나타낸다.
g. 일 예에서, W-d는 고정 길이 코딩, 예를 들면, u(x)를 사용하여 코딩될 수 있다.
i. 일 예에서, x는 8과 같은 고정된 숫자일 수 있다.
ii. 일 예에서, x 또는 x-dx는 W-d가 시그널링되기 전에 시그널링될 수 있으며, 여기서 dx는 0, 1 또는 2와 같은 정수이다. 시그널링되는 x는 적합성 비트스트림에서의 최댓값보다 크지 않을 수 있다.
iii. 일 예에서, x는 온 더 플라이로 도출될 수 있다.
1) 예를 들어, x는 픽처 내의 BUB 열들의 총수(M으로 표기됨)의 함수로서 도출될 수 있다. 예를 들면, x = Ceil(log2(M+d0))+d1이고, 여기서 d0과 d1은, -2, -1, 0, 1, 2 등과 같은, 2 개의 정수이다.
2) M은 M = Ceiling(W/CW)로서 도출될 수 있으며, 여기서 W는 픽처의 폭을 나타내고, CW는 BUB의 폭을 나타낸다.
h. 일 예에서, H-d는 고정 길이 코딩, 예를 들면, u(x)를 사용하여 코딩될 수 있다.
i. 일 예에서, x는 8과 같은 고정된 숫자일 수 있다.
ii. 일 예에서, x 또는 x-dx는 H-d가 시그널링되기 전에 시그널링될 수 있으며, 여기서 dx는 0, 1 또는 2와 같은 정수이다. 시그널링되는 x는 적합성 비트스트림에서의 최댓값보다 크지 않을 수 있다.
iii. 일 예에서, x는 온 더 플라이로 도출될 수 있다.
1) 예를 들어, x는 픽처 내의 BUB 행들의 총수(M으로 표기됨)의 함수로서 도출될 수 있다. 예를 들면, x = Ceil(log2(M+d0))+d1이고, 여기서 d0과 d1은, -2, -1, 0, 1, 2 등과 같은, 2 개의 정수이다.
2) M은 M = Ceiling(H/CH)로서 도출될 수 있으며, 여기서 H는 픽처의 높이를 나타내고, CH는 BUB의 높이를 나타낸다.
i. Col-d 및/또는 Row-d가 모든 서브픽처들에 대해 시그널링될 수 있다.
i. 대안적으로, Col-d 및/또는 Row-d가 모든 서브픽처들에 대해 시그널링되는 것은 아닐 수 있다.
1) 서브픽처들의 수가 2보다 적은(1과 동일한) 경우 Col-d 및/또는 Row-d가 시그널링되지 않을 수 있다.
2) 예를 들어, Col-d 및/또는 Row-d가 첫 번째 서브픽처(예를 들면, 서브픽처 인덱스(또는 서브픽처 ID)가 0과 동일함)에 대해 시그널링되지 않을 수 있다.
a) 이들이 시그널링되지 않을 때, 이들은 0인 것으로 추론될 수 있다.
3) 예를 들어, Col-d 및/또는 Row-d가 마지막 서브픽처(예를 들면, 서브픽처 인덱스(또는 서브픽처 ID)가 NumSubPics-1과 동일함)에 대해 시그널링되지 않을 수 있다.
a) 이들이 시그널링되지 않을 때, 이들은 이미 시그널링된 서브픽처들의 위치들 및 치수들에 따라 추론될 수 있다.
j. W-d 및/또는 H-d가 모든 서브픽처들에 대해 시그널링될 수 있다.
i. 대안적으로, W-d 및/또는 H-d가 모든 서브픽처들에 대해 시그널링되는 것은 아닐 수 있다.
1) 서브픽처들의 수가 2보다 적은(1과 동일한) 경우 W-d 및/또는 H-d가 시그널링되지 않을 수 있다.
2) 예를 들어, W-d 및/또는 H-d가 마지막 서브픽처(예를 들면, 서브픽처 인덱스(또는 서브픽처 ID)가 NumSubPics-1과 동일함)에 대해 시그널링되지 않을 수 있다.
a) 이들이 시그널링되지 않을 때, 이들은 이미 시그널링된 서브픽처들의 위치들 및 치수들에 따라 추론될 수 있다.
k. 위의 글머리 기호들에서, BUB는 코딩 트리 블록(CTB)일 수 있다.
36. 일 예에서, CTB 크기에 대한 정보(예를 들면, log2_ctu_size_minus5)가 이미 시그널링된 후에 서브픽처들에 대한 정보가 시그널링되어야 한다.
37. subpic_treated_as_pic_flag[ i ]가 각각의 서브픽처들에 대해 시그널링되지 않을 수 있다. 그 대신에, 서브픽처가 모든 서브픽처들에 대해 픽처로서 취급되는지 여부를 제어하기 위해 하나의 subpic_treated_as_pic_flag가 시그널링된다.
38. loop_filter_across_subpic_enabled_flag [ i ]가 각각의 서브픽처들에 대해 시그널링되지 않을 수 있다. 그 대신에, 루프 필터들이 모든 서브픽처들에 대해 서브픽처들에 걸쳐 적용될 수 있는지 여부를 제어하기 위해 하나의 loop_filter_across_subpic_enabled_flag가 시그널링된다.
39. subpic_treated_as_pic_flag[ i ](subpic_treated_as_pic_flag ) 및/또는 loop_filter_across_subpic_enabled_flag[ i ](loop_filter_across_subpic_enabled_flag)가 조건부로 시그널링될 수 있다.
a. 일 예에서, 서브픽처들의 수가 2보다 적은(1과 동일한) 경우 subpic_treated_as_pic_flag[ i ] 및/또는 loop_filter_across_subpic_enabled_flag[ i ]가 시그널링되지 않을 수 있다.
40. 서브픽처들이 사용될 때 RPR이 적용될 수 있다.
a. 일 예에서, 서브픽처들이 사용될 때, RPR에서의 스케일링 비율이 { 1:1, 1:2 및/또는 2:1}, 또는 { 1:1, 1:2 및/또는 2:1, 1:4 및/또는 4:1 }, { 1:1, 1:2 및/또는 2:1, 1:4 및/또는 4:1, 1:8 및/또는 8:1}과 같은 제한된 세트로 제약될 수 있다.
b. 일 예에서, 픽처 A의 해상도와 픽처 B의 해상도가 상이한 경우 픽처 A의 CTB 크기와 픽처 B의 CTB 크기가 상이할 수 있다.
c. 일 예에서, 치수 SAWxSAH를 갖는 서브픽처 SA가 픽처 A에 있고 치수 SBWxSBH를 갖는 서브픽처 SB가 픽처 B에 있으며, SA가 SB에 대응하고, 픽처 A와 픽처 B 사이의 스케일링 비율들이 수평 방향 및 수직 방향을 따라 Rw 및 Rh라고 가정하면,
i. SAW/SBW 또는 SBW/SAW는 Rw와 동일해야 한다.
ii. SAH/SBH 또는 SBH/SAH는 Rh와 동일해야 한다.
41. 서브픽처들이 사용될 때(예를 들면, sub_pics_present_flag가 참일 때), 서브픽처 인덱스(또는 서브픽처 ID)가 슬라이스 헤더에서 시그널링될 수 있고, 슬라이스 어드레스는 전체 픽처 대신에 서브픽처의 어드레스로서 인터럽트된다.
5. 실시예들
이하의 실시예들에서, 새로 추가된 텍스트들은 굵은 기울임꼴로 되어 있고 삭제된 텍스트들은 "[[ ]]"에 의해 표시되어 있다.
5.1 실시예 1: 아핀 구성된 병합 후보들에 대한 서브픽처 제약
8.5.5.6 구성된 아핀 제어점 모션 벡터 병합 후보들에 대한 도출 프로세스
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 픽처의 좌측 상단 루마 샘플을 기준으로 현재 루마 코딩 블록의 좌측 상단 샘플을 지정하는 루마 위치 ( xCb , yCb ),
- 현재 루마 코딩 블록의 폭과 높이를 지정하는 2 개의 변수 cbWidth 및 cbHeight,
- 이용 가능성 플래그들 availableA0, availableA1, availableA2, availableB0, availableB1, availableB2, availableB3,
- 샘플 위치들 ( xNbA0, yNbA0 ), ( xNbA1, yNbA1 ), ( xNbA2, yNbA2 ), ( xNbB0, yNbB0 ), ( xNbB1, yNbB1 ), ( xNbB2, yNbB2 ) 및 ( xNbB3, yNbB3 ).
이 프로세스의 출력은 다음과 같다.
- 구성된 아핀 제어점 모션 벡터 병합 후보들의 이용 가능성 플래그 availableFlagConstK(단, K = 1..6),
- 참조 인덱스들 refIdxLXConstK(단, K = 1..6이고, X는 0 또는 1임),
- 예측 리스트 활용 플래그들 predFlagLXConstK(단, K = 1..6이고, X는 0 또는 1임),
- 아핀 모션 모델 인덱스들 motionModelIdcConstK(단, K = 1..6),
- 양방향 예측 가중치 인덱스들 bcwIdxConstK(단, K = 1..6),
- 구성된 아핀 제어점 모션 벡터들 cpMvLXConstK[ cpIdx ](단, cpIdx = 0..2이고, K = 1..6이며 X는 0 또는 1임).
...
네 번째(동일 위치 우측 하단) 제어점 모션 벡터 cpMvLXCorner[ 3 ], 참조 인덱스 refIdxLXCorner[ 3 ], 예측 리스트 활용 플래그 predFlagLXCorner[ 3 ] 및 이용 가능성 플래그 availableFlagCorner[ 3 ](단, X는 0 및 1임)은 다음과 같이 도출된다:
- 시간적 병합 후보에 대한 참조 인덱스들 refIdxLXCorner[ 3 ](단, X는 0 또는 1임)은 0과 동일하게 설정된다.
- 변수들 mvLXCol 및 availableFlagLXCol(단, X는 0 또는 1임)은 다음과 같이 도출된다:
- slice_temporal_mvp_enabled_flag가 0과 동일한 경우, mvLXCol의 양쪽 성분들은 0과 동일하게 설정되고, availableFlagLXCol은 0과 동일하게 설정된다.
- 그렇지 않은 경우(slice_temporal_mvp_enabled_flag가 1과 동일한 경우), 다음이 적용된다:
Figure pct00064
Figure pct00065
- yCb  >>  CtbLog2SizeY가 yColBr  >>  CtbLog2SizeY와 동일하고, yColBr이 botBoundaryPos보다 작거나 같으며 xColBr이 rightBoundaryPos보다 작거나 같은 경우, 다음이 적용된다:
- 변수 colCb는 ColPic에 의해 지정되는 동일 위치 픽처 내부의 ( ( xColBr  >>  3 )  <<  3, ( yColBr  >>  3 )  <<  3 )에 의해 주어지는 수정된 위치를 커버하는 루마 코딩 블록을 지정한다.
- 루마 위치 ( xColCb, yColCb )는 ColPic에 의해 지정되는 동일 위치 픽처의 좌측 상단 루마 샘플을 기준으로 colCb에 의해 지정되는 동일 위치 루마 코딩 블록의 좌측 상단 샘플과 동일하게 설정된다.
- 8.5.2.12 절에 명시된 바와 같은 동일 위치 모션 벡터들에 대한 도출 프로세스는 currCb, colCb, ( xColCb, yColCb ), refIdxLXCorner[ 3 ] 및 0과 동일하게 설정된 sbFlag를 입력들로 하여 호출되고, 출력은 mvLXCol 및 availableFlagLXCol에 할당된다.
- 그렇지 않은 경우, mvLXCol의 양쪽 성분들은 0과 동일하게 설정되고, availableFlagLXCol은 0과 동일하게 설정된다.
...
5.2 실시예 2: 아핀 구성된 병합 후보들에 대한 서브픽처 제약
8.5.5.6 구성된 아핀 제어점 모션 벡터 병합 후보들에 대한 도출 프로세스
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 픽처의 좌측 상단 루마 샘플을 기준으로 현재 루마 코딩 블록의 좌측 상단 샘플을 지정하는 루마 위치 ( xCb , yCb ),
- 현재 루마 코딩 블록의 폭과 높이를 지정하는 2 개의 변수 cbWidth 및 cbHeight,
- 이용 가능성 플래그들 availableA0, availableA1, availableA2, availableB0, availableB1, availableB2, availableB3,
- 샘플 위치들 ( xNbA0, yNbA0 ), ( xNbA1, yNbA1 ), ( xNbA2, yNbA2 ), ( xNbB0, yNbB0 ), ( xNbB1, yNbB1 ), ( xNbB2, yNbB2 ) 및 ( xNbB3, yNbB3 ).
이 프로세스의 출력은 다음과 같다.
- 구성된 아핀 제어점 모션 벡터 병합 후보들의 이용 가능성 플래그 availableFlagConstK(단, K = 1..6),
- 참조 인덱스들 refIdxLXConstK(단, K = 1..6이고, X는 0 또는 1임),
- 예측 리스트 활용 플래그들 predFlagLXConstK(단, K = 1..6이고, X는 0 또는 1임),
- 아핀 모션 모델 인덱스들 motionModelIdcConstK(단, K = 1..6),
- 양방향 예측 가중치 인덱스들 bcwIdxConstK(단, K = 1..6),
- 구성된 아핀 제어점 모션 벡터들 cpMvLXConstK[ cpIdx ](단, cpIdx = 0..2이고, K = 1..6이며 X는 0 또는 1임).
...
네 번째(동일 위치 우측 하단) 제어점 모션 벡터 cpMvLXCorner[ 3 ], 참조 인덱스 refIdxLXCorner[ 3 ], 예측 리스트 활용 플래그 predFlagLXCorner[ 3 ] 및 이용 가능성 플래그 availableFlagCorner[ 3 ](단, X는 0 및 1임)은 다음과 같이 도출된다:
- 시간적 병합 후보에 대한 참조 인덱스들 refIdxLXCorner[ 3 ](단, X는 0 또는 1임)은 0과 동일하게 설정된다.
- 변수들 mvLXCol 및 availableFlagLXCol(단, X는 0 또는 1임)은 다음과 같이 도출된다:
- slice_temporal_mvp_enabled_flag가 0과 동일한 경우, mvLXCol의 양쪽 성분들은 0과 동일하게 설정되고, availableFlagLXCol은 0과 동일하게 설정된다.
- 그렇지 않은 경우(slice_temporal_mvp_enabled_flag가 1과 동일한 경우), 다음이 적용된다:
Figure pct00066
Figure pct00067
- yCb >> CtbLog2SizeY가 yColBr >> CtbLog2SizeY와 동일한 경우, [[yColBr이 pic_height_in_luma_samples보다 작고 xColBr이 pic_width_in_luma_samples보다 작은 경우, 다음이 적용된다]]:
- 변수 colCb는 ColPic에 의해 지정되는 동일 위치 픽처 내부의 ( ( xColBr  >>  3 )  <<  3, ( yColBr  >>  3 )  <<  3 )에 의해 주어지는 수정된 위치를 커버하는 루마 코딩 블록을 지정한다.
- 루마 위치 ( xColCb, yColCb )는 ColPic에 의해 지정되는 동일 위치 픽처의 좌측 상단 루마 샘플을 기준으로 colCb에 의해 지정되는 동일 위치 루마 코딩 블록의 좌측 상단 샘플과 동일하게 설정된다.
- 8.5.2.12 절에 명시된 바와 같은 동일 위치 모션 벡터들에 대한 도출 프로세스는 currCb, colCb, ( xColCb, yColCb ), refIdxLXCorner[ 3 ] 및 0과 동일하게 설정된 sbFlag를 입력들로 하여 호출되고, 출력은 mvLXCol 및 availableFlagLXCol에 할당된다.
- 그렇지 않은 경우, mvLXCol의 양쪽 성분들은 0과 동일하게 설정되고, availableFlagLXCol은 0과 동일하게 설정된다.
...
5.3 실시예 3: 서브픽처 제약 하에서의 정수 샘플들의 페치
8.5.6.3.3 루마 정수 샘플 페치 프로세스
이 프로세스에 대한 입력들은 다음과 같다:
- 완전 샘플 단위의 루마 위치 ( xIntL, yIntL ),
- 루마 참조 샘플 어레이 refPicLXL,
이 프로세스의 출력은 예측된 루마 샘플 값 predSampleLXL이다
변수 shift는 Max( 2, 14 - BitDepthY )와 동일하게 설정된다.
변수 picW는 pic_width_in_luma_samples와 동일하게 설정되고 변수 picH는 pic_height_in_luma_samples와 동일하게 설정된다.
완전 샘플 단위의 루마 위치들 (xInt, yInt)는 다음과 같이 도출된다:
- subpic_treated_as_pic_flag[ SubPicIdx ]가 1과 동일한 경우, 다음이 적용된다:
Figure pct00068
- 그렇지 않은 경우:
Figure pct00069
예측된 루마 샘플 값 predSampleLXL은 다음과 같이 도출된다:
Figure pct00070
5.4 실시예 4: LMCS의 크로마 잔차 스케일링에서의 변수 invAvgLuma의 도출
8.7.5.3 크로마 샘플들에 대한 루마 의존적 크로마 잔차 스케일링 프로세스를 사용한 픽처 재구성
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 픽처의 좌측 상단 크로마 샘플을 기준으로 현재 크로마 변환 블록의 좌측 상단 크로마 샘플의 크로마 위치( xCurr, yCurr ),
- 크로마 변환 블록 폭을 지정하는 변수 nCurrSw,
- 크로마 변환 블록 높이를 지정하는 변수 nCurrSh,
- 현재 크로마 변환 블록의 코딩된 블록 플래그를 지정하는 변수 tuCbfChroma,
- 현재 블록의 크로마 예측 샘플들을 지정하는 (nCurrSw)x(nCurrSh) 어레이 predSamples,
- 현재 블록의 크로마 잔차 샘플들을 지정하는 (nCurrSw)x(nCurrSh) 어레이 resSamples.
이 프로세스의 출력은 재구성된 크로마 픽처 샘플 어레이 recSamples이다.
변수 sizeY는 Min( CtbSizeY, 64 )와 동일하게 설정된다.
재구성된 크로마 픽처 샘플 recSamples는 i = 0..nCurrSw - 1, j = 0..nCurrSh - 1에 대해 다음과 같이 도출된다:
- ...
- 그렇지 않은 경우, 다음이 적용된다:
- ...
- 변수 currPic은 현재 픽처에서의 재구성된 루마 샘플들의 어레이를 지정한다.
- 변수 varScale의 도출을 위해, 다음과 같은 순서의 단계들이 적용된다:
1. 변수 invAvgLuma는 다음과 같이 도출된다:
- 어레이 recLuma[ i ](단, i=0..( 2 * sizeY - 1 )) 및 변수 cnt는 다음과 같이 도출된다:
- 변수 cnt는 0과 동일하게 설정된다.
- 변수들 rightBoundaryPos 및 botBoundaryPos는 다음과 같이 도출된다:
Figure pct00071
- availL이 TRUE와 동일할 때, 어레이 recLuma[ i ](단, i = 0..sizeY - 1)는 currPic[ xCuCb - 1 ][ Min( yCuCb + i, [[pic_height_in_luma_samples - 1]] botBoundaryPos   ) ](단, i = 0..sizeY - 1)와 동일하게 설정되고, cnt는 sizeY와 동일하게 설정된다
- availT가 TRUE와 동일할 때, 어레이 recLuma[ cnt + i ](단, i = 0..sizeY - 1)는 currPic[ Min( xCuCb + i, [[pic_width_in_luma_samples - 1]]  rightBoundaryPos  ) ][ yCuCb - 1 ](단, i = 0..sizeY - 1)와 동일하게 설정되고, cnt는 ( cnt + sizeY )와 동일하게 설정된다
- 변수 invAvgLuma는 다음과 같이 도출된다:
- cnt가 0보다 큰 경우, 다음이 적용된다:
Figure pct00072
- 그렇지 않은 경우(cnt가 0과 동일한 경우), 다음이 적용된다:
Figure pct00073
5.5 실시예 5: 4 이외의 N(예컨대, N=8 또는 32) 샘플 단위로 서브픽처 요소를 정의하는 예
7.4.3.3 시퀀스 파라미터 세트 RBSP 시맨틱스
subpic _grid_ col _width_ minus1 + 1은
Figure pct00074
샘플 단위로 서브픽처 식별자 그리드의 각각의 요소의 폭을 지정한다. 신택스 요소의 길이는 Ceil( Log2( pic_width_max_in_luma_samples / 
Figure pct00075
) ) 비트이다.
변수 NumSubPicGridCols는 다음과 같이 도출된다:
Figure pct00076
subpic_grid_row_height_minus1 + 1은 4 샘플 단위로 서브픽처 식별자 그리드의 각각의 요소의 높이를 지정한다. 신택스 요소의 길이는 Ceil( Log2( pic_height_max_in_luma_samples / 
Figure pct00077
) ) 비트이다.
변수 NumSubPicGridRows는 다음과 같이 도출된다:
Figure pct00078
7.4.7.1 일반 슬라이스 헤더 시맨틱스
변수들 SubPicIdx, SubPicLeftBoundaryPos, SubPicTopBoundaryPos, SubPicRightBoundaryPos, 및 SubPicBotBoundaryPos는 다음과 같이 도출된다:
Figure pct00079
Figure pct00080
5.6 실시예 6: 픽처 폭 및 픽처 높이를 8보다 크거나 같도록 제한
7.4.3.3 시퀀스 파라미터 세트 RBSP 시맨틱스
pic_width_max_in_luma_samples는 SPS를 참조하는 각각의 디코딩된 픽처의 최대 폭을, 루마 샘플 단위로, 지정한다. pic_width_max_in_luma_samples는 0과 동일하지 않아야 하며 [[MinCbSizeY]] Max( 8, MinCbSizeY ) 의 정수배여야 한다.
pic_height_max_in_luma_samples는 SPS를 참조하는 각각의 디코딩된 픽처의 최대 높이를, 루마 샘플 단위로, 지정한다. pic_height_max_in_luma_samples는 0과 동일하지 않아야 하며 [[MinCbSizeY]] Max( 8, MinCbSizeY ) 의 정수배여야 한다.
5.7 실시예 7: BT/TT/QT 분할, BT/TT/QT 깊이 도출 및/또는 CU 분할 플래그의 시그널링을 위한 서브픽처 경계 검사
6.4.2 허용된 이진 분할 프로세스
변수 allowBtSplit는 다음과 같이 도출된다:
- ...
- 그렇지 않고, 다음 조건들 모두가 참인 경우, allowBtSplit는 FALSE와 동일하게 설정된다.
- btSplit가 SPLIT_BT_VER과 동일하다.
- y0 + cbHeight가 [[pic_height_in_luma_samples ]] subpic_treated_as_pic_flag[ SubPicIdx ] ? SubPicBotBoundaryPos + 1: pic_height_in_luma_samples 보다 크다.
- 그렇지 않고, 다음 조건들 모두가 참인 경우, allowBtSplit는 FALSE와 동일하게 설정된다.
- btSplit가 SPLIT_BT_VER과 동일하다.
- cbHeight가 MaxTbSizeY보다 크다.
- x0 + cbWidth가 [[pic_width_in_luma_samples]] subpic_treated_as_pic_flag[ SubPicIdx ] ? SubPicRightBoundaryPos + 1 : pic_width_in_luma_samples 보다 크다
- 그렇지 않고, 다음 조건들 모두가 참인 경우, allowBtSplit는 FALSE와 동일하게 설정된다.
- btSplit가 SPLIT_BT_HOR과 동일하다
- cbWidth가 MaxTbSizeY보다 크다
- y0 + cbHeight가 [[pic_height_in_luma_samples]] subpic_treated_as_pic_flag[ SubPicIdx ] ? SubPicBotBoundaryPos + 1: pic_height_in_luma_samples 보다 크다.
- 그렇지 않고, 다음 조건들 모두가 참인 경우, allowBtSplit는 FALSE와 동일하게 설정된다.
- x0 + cbWidth가 [[pic_width_in_luma_samples]] subpic_treated_as_pic_flag[ SubPicIdx ] ? SubPicRightBoundaryPos + 1 : pic_width_in_luma_samples 보다 크다
- y0 + cbHeight가 [[pic_height_in_luma_samples]] subpic_treated_as_pic_flag[ SubPicIdx ] ? SubPicBotBoundaryPos + 1: pic_height_in_luma_samples 보다 크다.
- cbWidth가 minQtSize보다 크다
- 그렇지 않고, 다음 조건들 모두가 참인 경우, allowBtSplit는 FALSE와 동일하게 설정된다.
- btSplit가 SPLIT_BT_HOR과 동일하다
- x0 + cbWidth가 [[pic_width_in_luma_samples]] subpic_treated_as_pic_flag[ SubPicIdx ] ? SubPicRightBoundaryPos + 1 : pic_width_in_luma_samples 보다 크다
- y0 + cbHeight가 [[pic_height_in_luma_samples]] subpic_treated_as_pic_flag[ SubPicIdx ] ? SubPicBotBoundaryPos + 1: pic_height_in_luma_samples 보다 작거나 같다.
6.4.2 허용된 삼진 분할 프로세스
변수 allowTtSplit는 다음과 같이 도출된다:
- 다음 조건들 중 하나 이상이 참인 경우, allowTtSplit는 FALSE와 동일하게 설정된다:
- cbSize가 2 * MinTtSizeY보다 작거나 같다
- cbWidth가 Min( MaxTbSizeY, maxTtSize )보다 크다
- cbHeight가 Min( MaxTbSizeY, maxTtSize )보다 크다
- mttDepth가 maxMttDepth보다 크거나 같다
- x0 + cbWidth가 [[pic_width_in_luma_samples]] subpic_treated_as_pic_flag[ SubPicIdx ] ? SubPicRightBoundaryPos + 1 : pic_width_in_luma_samples 보다 크다
- y0 + cbHeight가 [[pic_height_in_luma_samples]] subpic_treated_as_pic_flag[ SubPicIdx ] ? SubPicBotBoundaryPos + 1: pic_height_in_luma_samples 보다 크다.
- treeType이 DUAL_TREE_CHROMA와 동일하고 ( cbWidth / SubWidthC ) * ( cbHeight / SubHeightC )가 32보다 작거나 같다
- treeType이 DUAL_TREE_CHROMA와 동일하고 modeType이 MODE_TYPE_INTRA와 동일하다
- 그렇지 않은 경우, allowTtSplit는 TRUE와 동일하게 설정된다.
Figure pct00081
Figure pct00082
5.8 실시예 8: 서브픽처들을 정의하는 예
Figure pct00083
5.9 실시예 9: 서브픽처들을 정의하는 예
Figure pct00084
5.10 실시예 10: 서브픽처들을 정의하는 예
Figure pct00085
5.11 실시예 11: 서브픽처들을 정의하는 예
Figure pct00086
Figure pct00087
도 3은 비디오 프로세싱 장치(300)의 블록 다이어그램이다. 장치(300)는 본 명세서에 설명된 방법들 중 하나 이상을 구현하는 데 사용될 수 있다. 장치(300)는 스마트폰, 태블릿, 컴퓨터, IoT(Internet of Things) 수신기 등에 구체화될 수 있다. 장치(300)는 하나 이상의 프로세서(302), 하나 이상의 메모리(304) 및 비디오 프로세싱 하드웨어(306)를 포함할 수 있다. 프로세서(들)(302)는 본 문서에 설명된 하나 이상의 방법을 구현하도록 구성될 수 있다. 메모리(메모리들)(304)는 본 명세서에 설명된 방법들 및 기술들을 구현하는 데 사용되는 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 프로세싱 하드웨어(306)는, 하드웨어 회로로, 본 문서에 설명된 일부 기술들을 구현하는 데 사용될 수 있다.
도 4은 비디오를 프로세싱하는 방법(400)에 대한 플로차트이다. 방법(400)은, 비디오의 제1 비디오 영역 내의 비디오 블록에 대해, 아핀 모드를 사용하는 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 변환을 위한 시간적 모션 벡터 예측자가 결정되는 위치가 제2 비디오 영역 내에 있는지 여부를 결정하는 단계(402), 및 결정에 기초하여 변환을 수행하는 단계(404)를 포함한다.
다음 해결책들은 일부 실시예들에서 선호된 해결책들로서 구현될 수 있다.
다음 해결책들은 이전 섹션에 나열된 항목들(예를 들면, 항목 1)에서 설명된 추가적인 기술들과 함께 구현될 수 있다.
1. 비디오 프로세싱 방법으로서, 비디오의 제1 비디오 영역 내의 비디오 블록에 대해, 아핀 모드를 사용하는 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 변환을 위한 시간적 모션 벡터 예측자가 결정되는 위치가 제2 비디오 영역 내에 있는지 여부를 결정하는 단계; 및 결정에 기초하여 변환을 수행하는 단계를 포함하는, 방법.
2. 해결책 1의 방법으로서, 비디오 블록은 제1 영역 및 제2 영역에 의해 커버되는, 방법.
3. 해결책 1 또는 해결책 2의 방법으로서, 시간적 모션 벡터 예측자의 위치가 제2 비디오 영역 외부에 있는 경우에, 시간적 모션 벡터 예측자는 이용 불가능한 것으로서 표시되고 변환에서 사용되지 않는, 방법.
다음 해결책들은 이전 섹션에 나열된 항목들(예를 들면, 항목 2)에서 설명된 추가적인 기술들과 함께 구현될 수 있다.
4. 비디오 프로세싱 방법으로서, 비디오의 제1 비디오 영역 내의 비디오 블록에 대해, 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 변환을 위한 참조 픽처 내의 정수 샘플이 페치되는 위치가 제2 비디오 영역 내에 있는지 여부를 결정하는 단계 - 참조 픽처는 변환 동안 보간 프로세스에서 사용되지 않음 -; 및 결정에 기초하여 변환을 수행하는 단계를 포함하는, 방법.
5. 해결책 4의 방법으로서, 비디오 블록은 제1 영역 및 제2 영역에 의해 커버되는, 방법.
6. 해결책 4 또는 해결책 5의 방법으로서, 샘플의 위치가 제2 비디오 영역 외부에 있는 경우에, 샘플은 이용 불가능한 것으로서 표시되고 변환에서 사용되지 않는, 방법.
다음 해결책들은 이전 섹션에 나열된 항목들(예를 들면, 항목 3)에서 설명된 추가적인 기술들과 함께 구현될 수 있다.
7. 비디오 프로세싱 방법으로서, 비디오의 제1 비디오 영역 내의 비디오 블록에 대해, 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 변환을 위한 재구성된 루마 샘플 값이 페치되는 위치가 제2 비디오 영역 내에 있는지 여부를 결정하는 단계; 및 결정에 기초하여 변환을 수행하는 단계를 포함하는, 방법.
8. 해결책 7의 방법으로서, 루마 샘플은 제1 영역 및 제2 영역에 의해 커버되는, 방법.
9. 해결책 7 또는 해결책 8의 방법으로서, 루마 샘플의 위치가 제2 비디오 영역 외부에 있는 경우에, 루마 샘플은 이용 불가능한 것으로서 표시되고 변환에서 사용되지 않는, 방법.
다음 해결책들은 이전 섹션에 나열된 항목들(예를 들면, 항목 4)에서 설명된 추가적인 기술들과 함께 구현될 수 있다.
10. 비디오 프로세싱 방법으로서, 비디오의 제1 비디오 영역 내의 비디오 블록에 대해, 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 변환 동안 비디오 블록에 대한 분할, 깊이 도출 또는 분할 플래그 시그널링에 관한 검사가 수행되는 위치가 제2 비디오 영역 내에 있는지 여부를 결정하는 단계; 및 결정에 기초하여 변환을 수행하는 단계를 포함하는, 방법.
11. 해결책 10의 방법으로서, 그 위치는 제1 영역 및 제2 영역에 의해 커버되는, 방법.
12. 해결책 10 또는 해결책 11의 방법으로서, 그 위치가 제2 비디오 영역 외부에 있는 경우에, 루마 샘플은 이용 불가능한 것으로서 표시되고 변환에서 사용되지 않는, 방법.
다음 해결책들은 이전 섹션에 나열된 항목들(예를 들면, 항목 8)에서 설명된 추가적인 기술들과 함께 구현될 수 있다.
13. 비디오 프로세싱 방법으로서, 하나 이상의 비디오 블록을 포함하는 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하며, 코딩된 표현은 변환이 비디오 유닛 내에서 서브픽처 코딩/디코딩 및 동적 해상도 변환 코딩/디코딩 툴 또는 참조 픽처 리샘플링 툴을 사용하지 않아야 한다는 코딩 신택스 요구사항을 준수하는, 방법.
14. 해결책 13의 방법으로서, 비디오 유닛은 하나 이상의 비디오 픽처의 시퀀스에 대응하는, 방법.
15. 해결책 13 또는 해결책 14의 방법으로서, 동적 해상도 변환 코딩/디코딩 툴은 적응적 해상도 변환 코딩/디코딩 툴을 포함하는, 방법.
16. 해결책 13 또는 해결책 14의 방법으로서, 동적 해상도 변환 코딩/디코딩 툴은 동적 해상도 변환 코딩/디코딩 툴을 포함하는, 방법.
17. 해결책 13 내지 해결책 16 중 어느 한 해결책의 방법으로서, 코딩된 표현은 비디오 유닛이 코딩 신택스 요구사항을 준수한다는 것을 표시하는, 방법.
18. 해결책 17의 방법으로서, 코딩된 표현은 비디오 유닛이 서브픽처 코딩을 사용한다는 것을 표시하는, 방법.
19. 해결책 17의 방법으로서, 코딩된 표현은 비디오 유닛이 동적 해상도 변환 코딩/디코딩 툴 또는 참조 픽처 리샘플링 툴을 사용한다는 것을 표시하는, 방법.
다음 해결책들은 이전 섹션에 나열된 항목들(예를 들면, 항목 10)에서 설명된 추가적인 기술들과 함께 구현될 수 있다.
20. 해결책 1 내지 해결책 19 중 어느 한 해결책의 방법으로서, 제2 비디오 영역은 비디오 서브픽처를 포함하고, 제2 비디오 영역과 다른 비디오 영역의 경계들은 또한 2 개의 코딩 트리 유닛 사이의 경계인, 방법.
21. 해결책 1 내지 해결책 19 중 어느 한 해결책의 방법으로서, 제2 비디오 영역은 비디오 서브픽처를 포함하고, 제2 비디오 영역과 다른 비디오 영역의 경계들은 또한 2 개의 코딩 트리 유닛 사이의 경계인, 방법.
다음 해결책들은 이전 섹션에 나열된 항목들(예를 들면, 항목 11)에서 설명된 추가적인 기술들과 함께 구현될 수 있다.
22. 해결책 1 내지 해결책 21 중 어느 한 해결책의 방법으로서, 제1 비디오 영역 및 제2 비디오 영역은 직사각형 형상들을 갖는, 방법.
다음 해결책들은 이전 섹션에 나열된 항목들(예를 들면, 항목 12)에서 설명된 추가적인 기술들과 함께 구현될 수 있다.
23. 해결책 1 내지 해결책 22 중 어느 한 해결책의 방법으로서, 제1 비디오 영역과 제2 비디오 영역은 중첩하지 않는, 방법.
다음 해결책들은 이전 섹션에 나열된 항목들(예를 들면, 항목 13)에서 설명된 추가적인 기술들과 함께 구현될 수 있다.
24. 해결책 1 내지 해결책 23 중 어느 한 해결책의 방법으로서, 비디오 픽처 내의 픽셀이 단 하나의 비디오 영역에 의해 커버되도록 비디오 픽처가 비디오 영역들로 분할되는, 방법.
다음 해결책들은 이전 섹션에 나열된 항목들(예를 들면, 항목 15)에서 설명된 추가적인 기술들과 함께 구현될 수 있다.
25. 해결책 1 내지 해결책 24 중 어느 한 해결책의 방법으로서, 비디오 픽처가 비디오 시퀀스의 특정 계층에 있는 것으로 인해 비디오 픽처가 제1 비디오 영역 및 제2 비디오 영역으로 분할되는, 방법.
다음 해결책들은 이전 섹션에 나열된 항목들(예를 들면, 항목 10)에서 설명된 추가적인 기술들과 함께 구현될 수 있다.
26. 비디오 프로세싱 방법으로서, 하나 이상의 비디오 블록을 포함하는 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하며, 코딩된 표현은 제1 신택스 요소 subpic_grid_idx[i][j]가 제2 신택스 요소 max_subpics_minus1보다 크지 않아야 한다는 코딩 신택스 요구사항을 준수하는, 방법.
27. 해결책 26의 방법으로서, 제1 신택스 요소를 나타내는 코드워드는 제2 신택스 요소를 나타내는 코드워드보다 크지 않은, 방법.
28. 해결책 1 내지 해결책 27 중 어느 한 해결책의 방법으로서, 제1 비디오 영역은 비디오 서브픽처를 포함하는, 방법.
29. 해결책 1 내지 해결책 28 중 어느 한 해결책의 방법으로서, 제2 비디오 영역은 비디오 서브픽처를 포함하는, 방법.
30. 해결책 1 내지 해결책 29 중 어느 한 해결책의 방법으로서, 변환은 비디오를 코딩된 표현으로 인코딩하는 것을 포함하는, 방법.
31. 해결책 1 내지 해결책 29 중 어느 한 해결책의 방법으로서, 변환은 코딩된 표현을 디코딩하여 비디오의 픽셀 값들을 생성하는 것을 포함하는, 방법.
32. 해결책 1 내지 해결책 31 중 하나 이상에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
33. 해결책 1 내지 해결책 31 중 하나 이상에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
34. 컴퓨터 코드가 저장되어 있는 컴퓨터 프로그램 제품으로서, 코드는, 프로세서에 의해 실행될 때, 프로세서로 하여금 해결책 1 내지 해결책 31 중 어느 한 해결책에 기재된 방법을 구현하게 하는, 컴퓨터 프로그램 제품.
35. 본 문서에 설명된 방법, 장치 또는 시스템.
도 8은 본 명세서에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 프로세싱 시스템(800)을 도시하는 블록 다이어그램이다. 다양한 구현들은 시스템(800)의 컴포넌트들의 일부 또는 전부를 포함할 수 있다. 시스템(800)은 비디오 콘텐츠를 수신하기 위한 입력(802)을 포함할 수 있다. 비디오 콘텐츠는 원시 또는 압축되지 않은 포맷, 예를 들면, 8 또는 10 비트 다중 성분 픽셀 값들로 수신될 수 있거나, 또는 압축된 또는 인코딩된 포맷으로 되어 있을 수 있다. 입력(802)은 네트워크 인터페이스, 주변기기 버스 인터페이스, 또는 스토리지 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예들은 이더넷, PON(passive optical network) 등과 같은 유선 인터페이스들 및 Wi-Fi 또는 셀룰러 인터페이스들과 같은 무선 인터페이스들을 포함한다.
시스템(800)은 본 문서에 설명된 다양한 코딩 또는 인코딩 방법들을 구현할 수 있는 코딩 컴포넌트(804)를 포함할 수 있다. 코딩 컴포넌트(804)는 비디오의 코딩된 표현을 생성하기 위해 입력(802)으로부터 코딩 컴포넌트(804)의 출력으로의 비디오의 평균 비트레이트를 감소시킬 수 있다. 따라서 코딩 기술들은 때때로 비디오 압축 또는 비디오 트랜스코딩 기술들이라고 불린다. 코딩 컴포넌트(804)의 출력은 저장되거나, 컴포넌트(806)에 의해 표현된 바와 같은, 연결된 통신을 통해 전송될 수 있다. 입력(802)에 수신되는 비디오의 저장되거나 통신되는 비트스트림 표현(또는 코딩된 표현)은 디스플레이 인터페이스(810)로 송신되는 픽셀 값들 또는 디스플레이 가능한 비디오를 생성하기 위해 컴포넌트(808)에 의해 사용될 수 있다. 비트스트림 표현으로부터 사용자가 볼 수 있는 비디오를 생성하는 프로세스는 때때로 비디오 압축 해제라고 불린다. 게다가, 특정 비디오 프로세싱 동작들이 "코딩" 동작들 또는 툴들이라고 지칭되지만, 코딩 툴들 또는 동작들이 인코더에서 사용되고 코딩의 결과들을 반대로 하는 대응하는 디코딩 툴들 또는 동작들은 디코더에 의해 수행될 것임이 이해될 것이다.
주변기기 버스 인터페이스 또는 디스플레이 인터페이스의 예들은 USB(universal serial bus) 또는 HDMI(high definition multimedia interface) 또는 Displayport 등을 포함할 수 있다. 스토리지 인터페이스들의 예들은 SATA(serial advanced technology attachment), PCI, IDE 인터페이스 등을 포함한다. 본 문서에서 설명되는 기술들은 디지털 데이터 프로세싱 및/또는 비디오 디스플레이를 수행할 수 있는 모바일 폰들, 랩톱들, 스마트폰들 또는 다른 디바이스들과 같은 다양한 전자 디바이스들에서 구체화될 수 있다.
도 9는 본 개시의 기술들을 활용할 수 있는 예시적인 비디오 코딩 시스템(100)을 예시하는 블록 다이어그램이다.
도 9에 도시된 바와 같이, 비디오 코딩 시스템(100)은 소스 디바이스(110) 및 목적지 디바이스(120)를 포함할 수 있다. 비디오 인코딩 디바이스라고 지칭될 수 있는 소스 디바이스(110)는 인코딩된 비디오 데이터를 생성한다. 비디오 디코딩 디바이스라고 지칭될 수 있는 목적지 디바이스(120)는 소스 디바이스(110)에 의해 생성되는 인코딩된 비디오 데이터를 디코딩할 수 있다.
소스 디바이스(110)는 비디오 소스(112), 비디오 인코더(114), 및 입출력(I/O) 인터페이스(116)를 포함할 수 있다.
비디오 소스(112)는 비디오 캡처 디바이스와 같은 소스, 비디오 콘텐츠 제공자로부터 비디오 데이터를 수신하기 위한 인터페이스, 및/또는 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템, 또는 그러한 소스들의 조합을 포함할 수 있다. 비디오 데이터는 하나 이상의 픽처를 포함할 수 있다. 비디오 인코더(114)는 비디오 소스(112)로부터의 비디오 데이터를 인코딩하여 비트스트림을 생성한다. 비트스트림은 비디오 데이터의 코딩된 표현을 형성하는 비트 시퀀스를 포함할 수 있다. 비트스트림은 코딩된 픽처들 및 관련 데이터를 포함할 수 있다. 코딩된 픽처는 픽처의 코딩된 표현이다. 관련 데이터는 시퀀스 파라미터 세트들, 픽처 파라미터 세트들, 및 다른 신택스 구조들을 포함할 수 있다. I/O 인터페이스(116)는 변조기/복조기(모뎀) 및/또는 송신기를 포함할 수 있다. 인코딩된 비디오 데이터는 I/O 인터페이스(116)를 통해 네트워크(130a)를 거쳐 목적지 디바이스(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(High Efficiency Video Coding) 표준, VVC(Versatile Video Coding) 표준 및 다른 현재 및/또는 추가의 표준들과 같은, 비디오 압축 표준에 따라 작동할 수 있다.
도 10은 도 9에 예시된 시스템(100) 내의 비디오 인코더(114)일 수 있는, 비디오 인코더(200)의 예를 예시하는 블록 다이어그램이다.
비디오 인코더(200)는 본 개시의 기술들의 일부 또는 전부를 수행하도록 구성될 수 있다. 도 10의 예에서, 비디오 인코더(200)는 복수의 기능 컴포넌트들을 포함한다. 본 개시에 설명된 기술들은 비디오 인코더(200)의 다양한 컴포넌트들 사이에서 공유될 수 있다. 일부 예들에서, 프로세서는 본 개시에 설명된 기술들의 일부 또는 전부를 수행하도록 구성될 수 있다.
비디오 인코더(200)의 기능 컴포넌트들은 분할 유닛(201), 모드 선택 유닛(203), 모션 추정 유닛(204), 모션 보상 유닛(205) 및 인트라 예측 유닛(206)을 포함할 수 있는 예측 유닛(202), 잔차 생성 유닛(207), 변환 유닛(208), 양자화 유닛(209), 역양자화 유닛(210), 역변환 유닛(211), 재구성 유닛(212), 버퍼(213), 및 엔트로피 인코딩 유닛(214)을 포함할 수 있다.
다른 예들에서, 비디오 인코더(200)는 더 많은, 더 적은, 또는 상이한 기능 컴포넌트들을 포함할 수 있다. 예에서, 예측 유닛(202)은 인트라 블록 복사(intra block copy, IBC) 유닛을 포함할 수 있다. IBC 유닛은 적어도 하나의 참조 픽처가 현재 비디오 블록이 위치하는 픽처인 IBC 모드에서 예측을 수행할 수 있다.
게다가, 모션 추정 유닛(204) 및 모션 보상 유닛(205)과 같은 일부 컴포넌트들은 고도로 통합될 수 있지만, 설명의 목적을 위해 도 5의 예에서 개별적으로 표현되어 있다.
분할 유닛(201)은 픽처를 하나 이상의 비디오 블록으로 분할할 수 있다. 비디오 인코더(200) 및 비디오 디코더(300)는 다양한 비디오 블록 크기들을 지원할 수 있다.
모드 선택 유닛(203)은, 예를 들어, 오차 결과들에 기초하여, 코딩 모드들, 즉 인트라(intra) 또는 인터(inter) 중 하나를 선택할 수 있고, 결과적인 인트라 코딩된 또는 인터 코딩된 블록을 잔차 생성 유닛(207)에 제공하여 잔차 블록 데이터를 생성하도록 하고 재구성 유닛(212)에 제공하여 참조 픽처로서 사용하기 위한 인코딩된 블록을 재구성하도록 할 수 있다. 일부 예에서, 모드 선택 유닛(203)은 예측이 인터 예측 신호 및 인트라 예측 신호에 기초하는 CIIP(combination of intra and inter predication) 모드를 선택할 수 있다. 모드 선택 유닛(203)은 또한 인터 예측의 경우에 블록에 대한 모션 벡터의 해상도(예를 들면, 서브픽셀 또는 정수 픽셀 정밀도)를 선택할 수 있다.
현재 비디오 블록에 대한 인터 예측을 수행하기 위해, 모션 추정 유닛(204)은 버퍼(213)로부터의 하나 이상의 참조 프레임을 현재 비디오 블록과 비교하는 것에 의해 현재 비디오 블록에 대한 모션 정보를 생성할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록과 연관된 픽처 이외의 버퍼(213)로부터의 픽처들의 디코딩된 샘플들 및 모션 정보에 기초하여 현재 비디오 블록에 대한 예측된 비디오 블록을 결정할 수 있다.
모션 추정 유닛(204) 및 모션 보상 유닛(205)은, 예를 들어, 현재 비디오 블록이 I 슬라이스, P 슬라이스, 또는 B 슬라이스에 있는지에 따라, 현재 비디오 블록에 대해 상이한 동작들을 수행할 수 있다.
일부 예들에서, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 단방향 예측을 수행할 수 있고, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 참조 비디오 블록에 대해 리스트 0 또는 리스트 1의 참조 픽처들을 탐색할 수 있다. 모션 추정 유닛(204)은 이어서 참조 비디오 블록을 포함하는 리스트 0 또는 리스트 1 내의 참조 픽처를 나타내는 참조 인덱스 및 현재 비디오 블록과 참조 비디오 블록 사이의 공간적 변위를 나타내는 모션 벡터를 생성할 수 있다. 모션 추정 유닛(204)은 참조 인덱스, 예측 방향 지시자, 및 모션 벡터를 현재 비디오 블록의 모션 정보로서 출력할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록의 모션 정보가 나타내는 참조 비디오 블록에 기초하여 현재 블록의 예측된 비디오 블록을 생성할 수 있다.
다른 예들에서, 모션 추정 유닛(204)은 현재 비디오 블록에 대해 양방향 예측을 수행할 수 있고, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 참조 비디오 블록에 대해 리스트 0 내의 참조 픽처들을 탐색할 수 있으며, 또한 현재 비디오 블록에 대한 다른 참조 비디오 블록에 대해 리스트 1 내의 참조 픽처들을 탐색할 수 있다. 모션 추정 유닛(204)은 이어서 참조 비디오 블록들을 포함하는 리스트 0 및 리스트 1 내의 참조 픽처들을 나타내는 참조 인덱스들 및 참조 비디오 블록들과 현재 비디오 블록 사이의 공간적 변위들을 나타내는 모션 벡터들을 생성할 수 있다. 모션 추정 유닛(204)은 현재 비디오 블록의 모션 정보로서 참조 인덱스들 및 현재 비디오 블록의 모션 벡터들을 출력할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록의 모션 정보가 나타내는 참조 비디오 블록들에 기초하여 현재 비디오 블록의 예측된 비디오 블록을 생성할 수 있다.
일부 예들에서, 모션 추정 유닛(204)은 디코더의 디코딩 프로세싱을 위한 모션 정보의 전체 세트를 출력할 수 있다.
일부 예들에서, 모션 추정 유닛(204)은 현재 비디오에 대한 모션 정보의 전체 세트를 출력하지 않을 수 있다. 오히려, 모션 추정 유닛(204)은 다른 비디오 블록의 모션 정보를 참조하여 현재 비디오 블록의 모션 정보를 시그널링할 수 있다. 예를 들어, 모션 추정 유닛(204)은 현재 비디오 블록의 모션 정보가 이웃 비디오 블록의 모션 정보와 충분히 유사하다고 결정할 수 있다.
일 예에서, 모션 추정 유닛(204)은, 현재 비디오 블록과 연관된 신택스 구조에서, 현재 비디오 블록이 다른 비디오 블록과 동일한 모션 정보를 갖는다는 것을 비디오 디코더(300)에 알려주는 값을 표시할 수 있다.
다른 예에서, 모션 추정 유닛(204)은, 현재 비디오 블록과 연관된 신택스 구조에서, 다른 비디오 블록 및 모션 벡터 차이(MVD)를 식별할 수 있다. 모션 벡터 차이는 현재 비디오 블록의 모션 벡터와 표시된 비디오 블록의 모션 벡터 간의 차이를 나타낸다. 비디오 디코더(300)는 표시된 비디오 블록의 모션 벡터 및 모션 벡터 차이를 이용하여 현재 비디오 블록의 모션 벡터를 결정할 수 있다.
위에서 논의된 바와 같이, 비디오 인코더(200)는 모션 벡터를 예측적으로 시그널링할 수 있다. 비디오 인코더(200)에 의해 구현될 수 있는 예측적 시그널링 기술의 두 가지 예는 AMVP(advanced motion vector predication) 및 병합 모드 시그널링을 포함한다.
인트라 예측 유닛(206)은 현재 비디오 블록에 대해 인트라 예측을 수행할 수 있다. 인트라 예측 유닛(206)이 현재 비디오 블록에 대해 인트라 예측을 수행할 때, 인트라 예측 유닛(206)은 동일한 픽처 내의 다른 비디오 블록들의 디코딩된 샘플들에 기초하여 현재 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 현재 비디오 블록에 대한 예측 데이터는 예측된 비디오 블록 및 다양한 신택스 요소들을 포함할 수 있다.
잔차 생성 유닛(207)은 현재 비디오 블록으로부터 현재 비디오 블록의 예측된 비디오 블록(들)을 차감(예를 들면, 마이너스 부호로 표시됨)하는 것에 의해 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 잔차 데이터는 현재 비디오 블록 내의 샘플들의 상이한 샘플 성분들에 대응하는 잔차 비디오 블록들을 포함할 수 있다.
다른 예들에서, 예를 들어, 스킵 모드에서 현재 비디오 블록에 대한 현재 비디오 블록의 잔차 데이터가 없을 수 있고, 잔차 생성 유닛(207)은 차감 동작을 수행하지 않을 수 있다.
변환 프로세싱 유닛(208)은 현재 비디오 블록과 연관된 잔차 비디오 블록에 하나 이상의 변환을 적용하는 것에 의해 현재 비디오 블록에 대한 하나 이상의 변환 계수 비디오 블록을 생성할 수 있다.
변환 프로세싱 유닛(208)이 현재 비디오 블록과 연관된 변환 계수 비디오 블록을 생성한 후에, 양자화 유닛(209)은 현재 비디오 블록과 연관된 하나 이상의 양자화 파라미터(QP) 값에 기초하여 현재 비디오 블록과 연관된 변환 계수 비디오 블록을 양자화할 수 있다.
역양자화 유닛(210) 및 역변환 유닛(211)은, 제각기, 변환 계수 비디오 블록에 역양자화 및 역변환을 적용하여 변환 계수 비디오 블록으로부터 잔차 비디오 블록을 재구성할 수 있다. 재구성 유닛(212)은 버퍼(213)에 저장할 현재 블록과 연관된 재구성된 비디오 블록을 생성하기 위해 예측 유닛(202)에 의해 생성되는 하나 이상의 예측된 비디오 블록으로부터의 대응하는 샘플들에 재구성된 잔차 비디오 블록을 가산할 수 있다.
재구성 유닛(212)이 비디오 블록을 재구성한 후에, 비디오 블록에서의 비디오 블로킹 아티팩트를 감소시키기 위해 루프 필터링 동작이 수행될 수 있다.
엔트로피 인코딩 유닛(214)은 비디오 인코더(200)의 다른 기능 컴포넌트들로부터 데이터를 수신할 수 있다. 엔트로피 인코딩 유닛(214)이 데이터를 수신할 때, 엔트로피 인코딩 유닛(214)은 엔트로피 인코딩된 데이터를 생성하고 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력하기 위해 하나 이상의 엔트로피 인코딩 동작을 수행할 수 있다.
도 11은 도 9에 예시된 시스템(100) 내의 비디오 디코더(114)일 수 있는 비디오 디코더(300)의 예를 예시하는 블록 다이어그램이다.
비디오 디코더(300)는 본 개시의 기술들의 일부 또는 전부를 수행하도록 구성될 수 있다. 도 11의 예에서, 비디오 디코더(300)는 복수의 기능 컴포넌트들을 포함한다. 본 개시에 설명된 기술들은 비디오 디코더(300)의 다양한 컴포넌트들 사이에서 공유될 수 있다. 일부 예들에서, 프로세서는 본 개시에 설명된 기술들의 일부 또는 전부를 수행하도록 구성될 수 있다.
도 11의 예에서, 비디오 디코더(300)는 엔트로피 디코딩 유닛(301), 모션 보상 유닛(302), 인트라 예측 유닛(303), 역양자화 유닛(304), 역변환 유닛(305), 및 재구성 유닛(306) 및 버퍼(307)를 포함한다. 비디오 디코더(300)는, 일부 예들에서, 비디오 인코더(200)(예를 들면, 도 10)와 관련하여 설명된 인코딩 패스(encoding pass)와 일반적으로 반대인 디코딩 패스(decoding pass)를 수행할 수 있다.
엔트로피 디코딩 유닛(301)은 인코딩된 비트스트림을 검색할 수 있다. 인코딩된 비트스트림은 엔트로피 코딩된 비디오 데이터(예를 들면, 비디오 데이터의 인코딩된 블록들)를 포함할 수 있다. 엔트로피 디코딩 유닛(301)은 엔트로피 코딩된 비디오 데이터를 디코딩할 수 있고, 엔트로피 디코딩된 비디오 데이터로부터, 모션 보상 유닛(302)은 모션 벡터, 모션 벡터 정밀도, 참조 픽처 리스트 인덱스, 및 다른 모션 정보를 포함하는 모션 정보를 결정할 수 있다. 모션 보상 유닛(302)은, 예를 들어, AMVP 및 병합 모드를 수행하는 것에 의해 그러한 정보를 결정할 수 있다.
모션 보상 유닛(302)은 모션 보상된 블록들을 생성할 수 있으며, 어쩌면 보간 필터들에 기초하여 보간을 수행할 수 있다. 사용될 보간 필터들에 대한 식별자들이 서브픽셀 정밀도와 함께 신택스 요소들에 포함될 수 있다.
모션 보상 유닛(302)은 참조 블록의 서브-정수 픽셀들에 대한 보간된 값들을 계산하기 위해 비디오 블록의 인코딩 동안 비디오 인코더(20)에 의해 사용되는 바와 같이 보간 필터들을 사용할 수 있다. 모션 보상 유닛(302)은 수신된 신택스 정보에 따라 비디오 인코더(200)에 의해 사용되는 보간 필터들을 결정할 수 있고 예측 블록들을 생성하기 위해 보간 필터들을 사용할 수 있다.
모션 보상 유닛(302)은 인코딩된 비디오 시퀀스의 프레임(들) 및/또는 슬라이스(들)를 인코딩하는 데 사용되는 블록들의 크기들, 인코딩된 비디오 시퀀스의 픽처의 각각의 매크로블록이 어떻게 분할되는지를 기술하는 분할 정보, 각각의 분할이 어떻게 인코딩되는지를 나타내는 모드들, 각각의 인터 인코딩된 블록에 대한 하나 이상의 참조 프레임(및 참조 프레임 리스트), 및 인코딩된 비디오 시퀀스를 디코딩하기 위한 다른 정보를 결정하기 위해 신택스 정보의 일부를 사용할 수 있다.
인트라 예측 유닛(303)은 공간적으로 인접한 블록들로부터 예측 블록을 형성하기 위해, 예를 들어, 비트스트림에서 수신되는 인트라 예측 모드들을 사용할 수 있다. 역양자화 유닛(303)은 비트스트림에서 제공되고 엔트로피 디코딩 유닛(301)에 의해 디코딩되는 양자화된 비디오 블록 계수들을 역양자화(inverse quantize), 즉 양자화 해제(de-quantize)한다. 역변환 유닛(303)은 역변환을 적용한다.
재구성 유닛(306)은 디코딩된 블록들을 형성하기 위해 모션 보상 유닛(202) 또는 인트라 예측 유닛(303)에 의해 생성되는 대응하는 예측 블록들과 잔차 블록들을 합산할 수 있다. 원하는 경우, 디코딩된 블록들을 필터링하여 블록성 아티팩트(blockiness artifact)를 제거하기 위해 디블록킹 필터가 또한 적용될 수 있다. 디코딩된 비디오 블록들은 이어서 버퍼(307)에 저장되고, 버퍼(307)는 후속하는 모션 보상/인트라 예측을 위한 참조 블록들을 제공하고 또한 디스플레이 디바이스 상에 제시할 디코딩된 비디오를 생성한다.
도 12는 본 기술에 따른 비디오 프로세싱 방법의 플로차트 표현이다. 방법(1200)은, 동작(1210)에서, 하나 이상의 픽처를 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비트스트림 표현은 각각의 픽처가 하나 이상의 슬라이스로서 코딩된다는 것을 지정하는 포맷 규칙을 준수하도록 요구받는다. 포맷 규칙은 픽처 내의 샘플들이 하나 이상의 슬라이스 중 임의의 것에 의해 커버되지 않는 것을 금지한다.
일부 실시예들에서, 픽처는 다수의 서브픽처들을 포함하고, 포맷 규칙은 픽처의 서브픽처의 다수의 슬라이스들이 서브픽처 전체를 커버한다는 것을 더 지정한다. 일부 실시예들에서, 비트스트림 표현은 다수의 슬라이스들이 직사각형 형상을 갖는다는 것을 나타내는 신택스 요소를 포함한다. 일부 실시예들에서, 슬라이스는 픽처의 최대 하나의 서브픽처와 중첩한다. 일부 실시예들에서, 비디오의 타일은 픽처의 최대 하나의 서브픽처와 중첩한다. 일부 실시예들에서, 비디오의 브릭은 픽처의 최대 하나의 서브픽처와 중첩한다.
도 13은 본 기술에 따른 비디오 프로세싱 방법의 플로차트 표현이다. 방법(1300)은, 동작(1310)에서, 비디오의 픽처와 비디오의 비트스트림 표현 사이의 변환을 위해, 픽처 내의 타일들의 수 또는 브릭들의 수와 연관된 규칙에 따라 픽처 내의 하나 이상의 슬라이스에 대한 정보를 시그널링하는 방식을 결정하는 단계를 포함한다. 방법(1300)은, 동작(1320)에서, 결정에 기초하여 변환을 수행하는 단계를 포함한다.
일부 실시예들에서, 픽처의 하나 이상의 슬라이스에 대한 정보는, 적어도, 하나 이상의 슬라이스의 수 또는 하나 이상의 슬라이스의 범위를 포함한다. 일부 실시예들에서, 규칙은, 픽처 내의 브릭들의 수가 1인 경우에, 픽처 내의 하나 이상의 슬라이스에 대한 정보가 비트스트림 표현에서 제외된다는 것을 지정한다. 일부 실시예들에서, 픽처 내의 하나 이상의 슬라이스의 수는 1인 것으로 간주된다. 일부 실시예들에서, 슬라이스가 픽처 전체를 커버한다. 일부 실시예들에서, 슬라이스당 브릭들의 수는 1인 것으로 간주된다.
도 14는 본 기술에 따른 비디오 프로세싱 방법의 플로차트 표현이다. 방법(1400)은, 동작(1410)에서, 규칙에 따라 비디오의 픽처와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 픽처는 하나 이상의 슬라이스로서 비트스트림 표현에 코딩된다. 규칙은 픽처의 슬라이스의 어드레스가 비트스트림 표현에 포함되는지 여부 또는 어떻게 포함되는지를 지정한다.
일부 실시예들에서, 규칙은 슬라이스의 어드레스의 시그널링이 슬라이스가 직사각형 형상을 갖는지 여부의 시그널링과 독립적이라는 것을 지정한다. 일부 실시예들에서, 규칙은 슬라이스가 직사각형 형상을 갖는 경우에 슬라이스의 어드레스의 시그널링이 픽처 내의 슬라이스들의 수에 의존한다는 것을 지정한다. 일부 실시예들에서, 슬라이스 내의 브릭들의 수를 시그널링할지 여부는 슬라이스의 어드레스에 적어도 부분적으로 기초한다. 일부 실시예들에서, 슬라이스 내의 브릭들의 수를 시그널링할지 여부는 픽처 내의 브릭들의 수에 더 기초한다.
도 15는 본 기술에 따른 비디오 프로세싱 방법의 플로차트 표현이다. 방법(1500)은, 동작(1510)에서, 비디오의 픽처와 비디오의 비트스트림 표현 사이의 변환을 위해, 픽처 내의 타일들의 수 또는 브릭들의 수에 기초하여 픽처 내의 다수의 브릭들에 걸쳐 샘플들에 액세스하는 필터 동작이 인에이블된다는 것을 나타내는 신택스 요소가 비트스트림 표현에 포함되는지 여부를 결정하는 단계를 포함한다. 방법(1500)은, 동작(1520)에서, 결정에 기초하여 변환을 수행하는 단계를 포함한다. 일부 실시예들에서, 픽처 내의 브릭들의 수가 2보다 적은 경우에 신택스 요소가 비트스트림 표현에서 제외된다.
도 16은 본 기술에 따른 비디오 프로세싱 방법의 플로차트 표현이다. 방법(1600)은, 동작(1610)에서, 비디오의 픽처와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 픽처는 하나 이상의 서브픽처를 포함하고, 하나 이상의 서브픽처의 수는 비트스트림 표현 내의 신택스 요소에 의해 표시된다.
일부 실시예들에서, 다수의 서브픽처들의 수는 N으로서 표현되고, 신택스 요소는 (N-d)의 값을 포함하며, N 및 d는 정수들이다. 일부 실시예들에서, d는 0, 1 또는 2이다. 일부 실시예들에서, (N-d)의 값은 단항 코딩 방식 또는 절단된 단항 코딩 방식을 사용하여 코딩된다. 일부 실시예들에서, (N-d)의 값은 고정 길이 코딩 방식을 사용하여 고정 길이를 갖도록 코딩된다. 일부 실시예들에서, 고정 길이는 8 비트이다. 일부 실시예들에서, 고정 길이는 x-dx로서 표현되고, x 및 dx는 양의 정수들이다. x는 적합성 규칙에 기초하여 결정되는 최댓값보다 작거나 같고, dx는 0, 1 또는 2이다. 일부 실시예들에서, x-dx가 시그널링된다. 일부 실시예들에서, 고정 길이는 픽처 내의 기본 단위 블록들의 수에 기초하여 결정된다. 일부 실시예들에서, 고정 길이는 x로서 표현되고, 기본 단위 블록들의 수는 M으로서 표현되며, x = Ceil(log2(M+d0)) + d1이고, d0 및 d1은 정수들이다.
일부 실시예들에서, (N-d)의 최댓값은 미리 결정된다. 일부 실시예들에서, (N-d)의 최댓값은 픽처 내의 기본 단위 블록들의 수에 기초하여 결정된다. 일부 실시예들에서, 픽처 내의 기본 단위 블록들의 수는 M으로서 표현되고, M은 정수이며, N-d의 최댓값은 M-d이다. 일부 실시예들에서, 기본 단위 블록은 슬라이스를 포함한다. 일부 실시예들에서, 기본 단위 블록은 코딩 트리 유닛을 포함한다. 일부 실시예들에서, d0 또는 d1 중 적어도 하나는 -2, -1, 0, 1, 또는 2이다.
도 17은 본 기술에 따른 비디오 프로세싱 방법의 플로차트 표현이다. 방법(1700)은, 동작(1710)에서, 하나 이상의 서브픽처를 포함하는 비디오의 픽처와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비트스트림 표현은 서브픽처에 관한 정보가 (1) 서브픽처의 하나 이상의 코너 위치, 또는 (2) 서브픽처의 치수 중 적어도 하나에 기초하여 비트스트림 표현에 포함된다는 것을 지정하는 포맷 규칙을 준수한다.
일부 실시예들에서, 포맷 규칙은 서브픽처에 관한 정보가 비트스트림 표현에서 코딩 트리 블록의 크기에 관한 정보 이후에 위치된다는 것을 더 지정한다. 일부 실시예들에서, 서브픽처의 하나 이상의 코너 위치는 서브픽처 내의 블록의 입도를 사용하여 비트스트림 표현에서 시그널링된다. 일부 실시예들에서, 블록은 기본 단위 블록 또는 코딩 트리 블록을 포함한다.
일부 실시예들에서, 블록의 인덱스는 서브픽처의 코너 위치를 나타내는 데 사용된다. 일부 실시예들에서, 인덱스는 열 인덱스 또는 행 인덱스를 포함한다. 일부 실시예들에서, 블록의 인덱스는 I로서 표현되고, (I-d)의 값은 비트스트림 표현에서 시그널링되며, d는 0, 1, 또는 2이다. 일부 실시예들에서, d는 이전에 코딩된 서브픽처의 인덱스 및 다른 정수 d1에 기초하여 결정되며, d1은 -1, 0, 또는 1과 동일하다. 일부 실시예들에서, (I-d)의 부호가 비트스트림 표현에서 시그널링된다.
일부 실시예들에서, 서브픽처의 위치가 비트스트림 표현에서 시그널링되는지 여부는 서브픽처의 인덱스에 기초한다. 일부 실시예들에서, 서브픽처가 픽처 내의 첫 번째 서브픽처인 경우에 서브픽처의 위치가 비트스트림 표현에서 생략된다. 일부 실시예들에서, 서브픽처의 좌측 상단 위치는 (0, 0)인 것으로 결정된다. 일부 실시예들에서, 서브픽처가 픽처 내의 마지막 서브픽처인 경우에 서브픽처의 위치가 비트스트림 표현에서 생략된다. 일부 실시예들에서, 서브픽처의 좌측 상단 위치는 이전에 변환된 서브픽처에 관한 정보에 기초하여 결정된다. 일부 실시예들에서, 서브픽처에 관한 정보는 서브픽처의 좌측 상단 위치 및 치수를 포함한다. 정보는 절단된 단항 코딩 방식, 절단된 이진 코딩 방식, 단항 코딩 방식, 고정 길이 코딩 방식, 또는 K차 EG 코딩 방식을 사용하여 코딩된다.
일부 실시예들에서, 서브픽처의 치수는 서브픽처 내의 블록의 입도를 사용하여 비트스트림 표현에서 시그널링된다. 일부 실시예들에서, 치수는 서브픽처의 폭 또는 높이를 포함한다. 일부 실시예들에서, 치수는 서브픽처 내의 블록들의 행들의 수 또는 열들의 수로서 표현된다. 일부 실시예들에서, 블록들의 열들의 수 또는 행들의 수는 I로서 표현되고, (I-d)의 값은 비트스트림 표현에서 시그널링되며, d는 0, 1, 또는 2이다. 일부 실시예들에서, d는 이전에 코딩된 서브픽처의 블록의 치수 및 다른 정수 d1에 기초하여 결정되며, d1은 -1, 0, 또는 1과 동일하다. 일부 실시예들에서, (I-d)의 부호가 비트스트림 표현에서 시그널링된다.
일부 실시예들에서, (I-d)의 값은 고정 길이 코딩 방식을 사용하여 고정 길이를 갖도록 코딩된다. 일부 실시예들에서, 고정 길이는 8 비트이다. 일부 실시예들에서, 고정 길이는 x-dx로서 표현되고, x 및 dx는 양의 정수들이다. x는 적합성 규칙에 기초하여 결정되는 최댓값보다 작거나 같고, dx는 0, 1 또는 2이다. 일부 실시예들에서, 고정 길이는 픽처 내의 기본 단위 블록들의 수에 기초하여 결정된다. 일부 실시예들에서, 고정 길이는 x로서 표현되고, 기본 단위 블록들의 수는 M으로서 표현되며, x = Ceil(log2(M+d0)) + d1이고, d0 및 d1은 정수들이다. 일부 실시예들에서, d0 또는 d1 중 적어도 하나는 -2, -1, 0, 1, 또는 2이다. 일부 실시예들에서, (I-d)는 픽처의 모든 서브픽처들에 대해 시그널링된다. 일부 실시예들에서, (I-d)는 픽처의 서브픽처들의 서브세트에 대해 시그널링된다. 일부 실시예들에서, 서브픽처들의 수가 1과 동일한 경우에 (I-d)의 값은 비트스트림 표현에서 생략된다. 일부 실시예들에서, 서브픽처가 픽처의 첫 번째 서브픽처인 경우에 (I-d)의 값은 비트스트림 표현에서 생략된다. 일부 실시예들에서, (I-d)의 값은 0인 것으로 결정된다. 일부 실시예들에서, 서브픽처가 픽처의 마지막 서브픽처인 경우에 (I-d)의 값은 비트스트림 표현에서 생략된다. 일부 실시예들에서, (I-d)의 값은 이전에 변환된 서브픽처에 관한 정보에 기초하여 결정된다.
일부 실시예들에서, 픽처의 모든 서브픽처들이 픽처로서 프로세싱되는지 여부를 나타내기 위해 단일 신택스 요소가 비트스트림 표현에 조건부로 포함된다. 일부 실시예들에서, 루프 필터가 모든 서브픽처들에 대해 픽처의 서브픽처들에 걸쳐 적용 가능한지 여부를 나타내기 위해 단일 신택스 요소가 비트스트림 표현에 조건부로 포함된다. 일부 실시예들에서, 픽처의 서브픽처들의 수가 1과 동일한 경우에 단일 신택스 요소는 비트스트림 표현에서 생략된다.
도 18은 본 기술에 따른 비디오 프로세싱 방법의 플로차트 표현이다. 방법(1800)은, 동작(1810)에서, 비디오의 픽처가 하나 이상의 서브픽처로 나누어지는 것으로 인해 픽처와 비디오의 비트스트림 표현 사이의 변환을 위해 참조 픽처 리샘플링 툴이 인에이블된다고 결정하는 단계를 포함한다. 방법(1800)은, 동작(1820)에서, 결정에 기초하여 변환을 수행하는 단계를 또한 포함한다.
일부 실시예들에서, 참조 픽처 리샘플링 코딩 툴에서 사용되는 스케일링 비율은 비율 세트에 기초하여 결정된다. 일부 실시예들에서, 비율 세트는 {1:1, 1:2}, {1:1, 2:1}, {1:1, 1:2, 1:4}, {1:1, 1:2, 4:1}, {1:1, 2:1, 1:4}, {1:1, 2:1, 4:1}, {1:1, 1:2, 1:4, 1:8}, {1:1, 1:2, 1:4, 8:1}, {1:1, 1:2, 4:1, 1:8}, {1:1, 1:2, 4:1, 8:1}, {1:1, 2:1, 1:4, 1:8}, {1:1, 2:1, 1:4, 8:1}, {1:1, 2:1, 4:1, 1:8}, 또는 {1:1, 2:1, 4:1, 8:1} 중 적어도 하나를 포함한다. 일부 실시예들에서, 픽처의 해상도가 제2 픽처의 해상도와 상이한 경우에, 픽처의 코딩 트리 블록의 크기는 제2 픽처의 코딩 트리 블록의 크기와 상이하다. 일부 실시예들에서, 픽처의 서브픽처는 SAWxSAH의 치수를 갖고, 비디오의 제2 픽처의 서브픽처는 SBWxSBH의 치수를 갖는다. 픽처와 제2 픽처 사이의 스케일링 비율들은 수평 방향과 수직 방향을 따라 Rw와 Rh이다. SAW/SBW 또는 SBW/SAW는 Rw와 동일하고, SAH/SBH 또는 SBH/SAH는 Rh와 동일하다.
도 19는 본 기술에 따른 비디오 프로세싱 방법의 플로차트 표현이다. 방법(1900)은, 동작(1910)에서, 하나 이상의 슬라이스를 포함하는 하나 이상의 서브픽처를 포함하는 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비트스트림 표현은, 서브픽처 및 슬라이스에 대해, 서브픽처를 식별해 주는 인덱스가 슬라이스의 헤더에 포함되는 경우에, 슬라이스에 대한 어드레스 필드가 서브픽처 내의 슬라이스의 어드레스를 나타낸다는 것을 지정하는 포맷 규칙을 준수한다.
일부 실시예들에서, 변환은 비트스트림 표현으로부터 비디오를 생성한다. 일부 실시예들에서, 변환은 비디오로부터 비트스트림 표현을 생성한다.
개시된 기술의 일부 실시예들은 비디오 프로세싱 툴 또는 모드를 인에이블시키기로 의사 결정하거나 결정하는 것을 포함한다. 예에서, 비디오 프로세싱 툴 또는 모드가 인에이블될 때, 인코더는 비디오 블록의 프로세싱에서 툴 또는 모드를 사용하거나 구현할 것이지만, 툴 또는 모드의 사용에 기초하여 결과적인 비트스트림을 반드시 수정하는 것은 아닐 수 있다. 즉, 비디오 블록으로부터 비디오의 비트스트림 표현으로의 변환은 의사 결정 또는 결정에 기초하여 비디오 프로세싱 툴 또는 모드가 인에이블될 때 이를 사용할 것이다. 다른 예에서, 비디오 프로세싱 툴 또는 모드가 인에이블될 때, 디코더는 비디오 프로세싱 툴 또는 모드에 기초하여 비트스트림이 수정되었다는 지식을 사용하여 비트스트림을 프로세싱할 것이다. 즉, 비디오의 비트스트림 표현으로부터 비디오 블록으로의 변환은 의사 결정 또는 결정에 기초하여 인에이블된 비디오 프로세싱 툴 또는 모드를 사용하여 수행될 것이다.
개시된 기술의 일부 실시예들은 비디오 프로세싱 툴 또는 모드를 디스에이블시키도록 의사 결정하거나 결정하는 것을 포함한다. 예에서, 비디오 프로세싱 툴 또는 모드가 디스에이블될 때, 인코더는 비디오 블록을 비디오의 비트스트림 표현으로 변환하는 데 툴 또는 모드를 사용하지 않을 것이다. 다른 예에서, 비디오 프로세싱 툴 또는 모드가 디스에이블될 때, 디코더는 의사 결정 또는 결정에 기초하여 인에이블된 비디오 프로세싱 툴 또는 모드를 사용하여 비트스트림이 수정되지 않았다는 지식을 사용하여 비트스트림을 프로세싱할 것이다.
본 문서에 설명된 개시된 및 다른 해결책들, 예들, 실시예들, 모듈들 및 기능 동작들은 디지털 전자 회로로, 또는 본 문서에 개시된 구조 및 그의 구조적 등가물을 포함한, 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어로, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 개시된 및 다른 실시예들은 하나 이상의 컴퓨터 프로그램 제품으로서, 예를 들면, 데이터 프로세싱 장치에 의해 실행하기 위해 또는 데이터 프로세싱 장치의 동작을 제어하기 위해 컴퓨터 판독 가능 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독 가능 매체는 머신 판독 가능 저장 디바이스, 머신 판독 가능 저장 기판, 메모리 디바이스, 머신 판독 가능 전파 신호를 실현하는 조성물(composition of matter), 또는 이들 중 하나 이상의 조합일 수 있다. “데이터 프로세싱 장치"라는 용어는, 예로서, 프로그래밍 가능 프로세서, 컴퓨터, 또는 다수의 프로세서들 또는 컴퓨터들을 포함한, 데이터를 프로세싱하기 위한 모든 장치들, 디바이스들, 및 머신들을 포괄한다. 장치들은, 하드웨어 외에도, 문제의 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들면, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 전파 신호는 인공적으로 생성된 신호, 예를 들면, 적합한 수신기 장치로 전송하기 위한 정보를 인코딩하기 위해 생성되는 머신 생성(machine-generated) 전기, 광학, 또는 전자기 신호이다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 알려짐)은, 컴파일되는(compiled) 또는 인터프리트되는(interpreted) 언어들을 포함하여, 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 독립형 프로그램(stand-alone program)으로서 또는 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛으로서를 포함하여, 임의의 형태로 배포(deploy)될 수 있다. 컴퓨터 프로그램이 파일 시스템에서의 파일에 반드시 대응하는 것은 아니다. 프로그램은 다른 프로그램들 또는 데이터(예를 들면, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일 부분에, 문제의 프로그램에 전용된 단일 파일에, 또는 다수의 통합 파일들(coordinated files)(예를 들면, 하나 이상의 모듈, 서브 프로그램(sub program), 또는 코드 부분(portion of code)을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서 또는 하나의 사이트에 위치하거나 다수의 사이트들에 걸쳐 분산되고 통신 네트워크에 의해 상호연결되는 다수의 컴퓨터들 상에서 실행되도록 배포될 수 있다.
본 문서에 설명된 프로세스들 및 논리 흐름들은 입력 데이터에 대해 작동하여 출력을 생성하는 것에 의해 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능 프로세서에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들이 또한 특수 목적 로직 회로, 예를 들면, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있고, 장치들이 또한 이들로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 및 특수 목적 마이크로프로세서들 양쪽 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 양쪽 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들을 수행하기 위한 프로세서 및 명령어들과 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들면, 자기, 자기 광학 디스크들, 또는 광학 디스크들을 포함할 것이거나, 또는 이들로부터 데이터를 수신하거나 이들로 데이터를 전송하도록 작동 가능하게 결합될 것이거나, 또는 양쪽 모두일 것이다. 그렇지만, 컴퓨터가 그러한 디바이스들을 가질 필요는 없다. 컴퓨터 프로그램 명령어들과 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는, 예로서, 반도체 메모리 디바이스들, 예를 들면, EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들면, 내장형 하드 디스크들 또는 이동식 디스크들; 자기 광학 디스크들; 및 CD ROM과 DVD-ROM 디스크들을 포함한, 모든 형태들의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보완되거나 그에 통합될 수 있다.
본 특허 문서가 많은 구체적 사항들을 포함하지만, 이들은 임의의 주제의 범위 또는 청구될 수 있는 것의 범위에 대한 제한으로서 해석되어서는 안 되며, 오히려 특정 기술들의 특정의 실시예들에 특정적일 수 있는 특징들에 대한 설명으로서 해석되어야 한다. 개별 실시예들의 맥락에서 본 특허 문서에 설명되는 특정 특징들이 또한 단일 실시예에서 조합하여 구현될 수 있다. 이와 달리, 단일 실시예의 맥락에서 설명되는 다양한 특징들이 또한 다수의 실시예들에서 개별적으로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 더욱이, 특징들이 특정 조합들로 기능하는 것으로 위에서 설명되고 심지어 처음에 그 자체로서 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징이 일부 경우에 그 조합으로부터 제거될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
유사하게, 동작들이 도면에서 특정의 순서로 묘사되지만, 이것은, 바람직한 결과들을 달성하기 위해, 그러한 동작들이 도시된 특정의 순서로 또는 순차적 순서로 수행되어야 하거나, 모든 예시된 동작들이 수행되어야 하는 것을 요구하는 것으로 이해되어서는 안 된다. 더욱이, 본 특허 문서에 설명된 실시예들에서 다양한 시스템 컴포넌트들의 분리가 모든 실시예들에서 그러한 분리를 요구하는 것으로서 이해되어서는 안 된다.
단지 몇 가지 구현들 및 예들이 설명되고 다른 구현들, 향상들 및 변형들이 이 특허 문서에 설명되고 예시된 것에 기초하여 이루어질 수 있다.

Claims (64)

  1. 비디오 프로세싱 방법으로서,
    비디오의 픽처와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계
    를 포함하며, 상기 픽처는 하나 이상의 서브픽처를 포함하고, 상기 하나 이상의 서브픽처의 수는 상기 비트스트림 표현 내의 신택스 요소에 의해 표시되는, 방법.
  2. 제1항에 있어서, 상기 다수의 서브픽처들의 상기 수는 N으로서 표현되고, 상기 신택스 요소는 (N-d)의 값을 포함하며, N 및 d는 정수들인, 방법.
  3. 제2항에 있어서, d는 0, 1 또는 2인, 방법.
  4. 제2항 또는 제3항에 있어서, 상기 (N-d)의 값은 단항 코딩 방식 또는 절단된 단항 코딩 방식을 사용하여 코딩되는, 방법.
  5. 제2항 또는 제3항에 있어서, 상기 (N-d)의 값은 고정 길이 코딩 방식을 사용하여 고정 길이를 갖도록 코딩되는, 방법.
  6. 제5항에 있어서, 상기 고정 길이는 8 비트인, 방법.
  7. 제5항에 있어서, 상기 고정 길이는 x-dx로서 표현되고, x 및 dx는 양의 정수들이며, x는 적합성 규칙에 기초하여 결정되는 최댓값보다 작거나 같고, dx는 0, 1 또는 2인, 방법.
  8. 제7항에 있어서, x-dx가 시그널링되는, 방법.
  9. 제5항에 있어서, 상기 고정 길이는 상기 픽처 내의 기본 단위 블록들의 수에 기초하여 결정되는, 방법.
  10. 제9항에 있어서, 상기 고정 길이는 x로서 표현되고, 상기 기본 단위 블록들의 수는 M으로서 표현되며, x = Ceil(log2(M+d0)) + d1이고, d0 및 d1은 정수들인, 방법.
  11. 제2항 내지 제10항 중 어느 한 항에 있어서, (N-d)의 최댓값은 미리 결정되는, 방법.
  12. 제2항 내지 제11항 중 어느 한 항에 있어서, (N-d)의 최댓값은 상기 픽처 내의 기본 단위 블록들의 수에 기초하여 결정되는, 방법.
  13. 제12항에 있어서, 상기 픽처 내의 상기 기본 단위 블록들의 수는 M으로서 표현되고, M은 정수이며, 상기 N-d의 최댓값은 M-d인, 방법.
  14. 제13항에 있어서, 상기 기본 단위 블록은 슬라이스를 포함하는, 방법.
  15. 제13항에 있어서, 상기 기본 단위 블록은 코딩 트리 유닛을 포함하는, 방법.
  16. 제10항에 있어서, d0 또는 d1 중 적어도 하나는 -2, -1, 0, 1, 또는 2인, 방법.
  17. 비디오 프로세싱 방법으로서,
    하나 이상의 서브픽처를 포함하는 비디오의 픽처와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계
    를 포함하며,
    상기 비트스트림 표현은 포맷 규칙을 준수하고;
    상기 포맷 규칙은 서브픽처에 관한 정보가 (1) 상기 서브픽처의 하나 이상의 코너 위치, 또는 (2) 상기 서브픽처의 치수 중 적어도 하나에 기초하여 상기 비트스트림 표현에 포함된다는 것을 지정하는, 방법.
  18. 제17항에 있어서, 상기 포맷 규칙은 상기 서브픽처에 관한 상기 정보가 상기 비트스트림 표현에서 코딩 트리 블록의 크기에 관한 정보 이후에 위치된다는 것을 더 지정하는, 방법.
  19. 제17항 또는 제18항에 있어서, 상기 서브픽처의 상기 하나 이상의 코너 위치는 상기 서브픽처 내의 블록의 입도를 사용하여 상기 비트스트림 표현에서 시그널링되는, 방법.
  20. 제19항에 있어서, 상기 블록은 기본 단위 블록 또는 코딩 트리 블록을 포함하는, 방법.
  21. 제17항 내지 제20항 중 어느 한 항에 있어서, 블록의 인덱스는 상기 서브픽처의 코너 위치를 나타내는 데 사용되는, 방법.
  22. 제17항 내지 제21항 중 어느 한 항에 있어서, 상기 인덱스는 열 인덱스 또는 행 인덱스를 포함하는, 방법.
  23. 제21항 또는 제22항에 있어서, 상기 블록의 상기 인덱스는 I로서 표현되고, (I - d)의 값은 상기 비트스트림 표현에서 시그널링되며, d는 0, 1 또는 2인, 방법.
  24. 제23항에 있어서, d는 이전에 코딩된 서브픽처의 인덱스 및 다른 정수 d1에 기초하여 결정되며, d1은 -1, 0, 또는 1과 동일한, 방법.
  25. 제23항에 있어서, (I-d)의 부호가 상기 비트스트림 표현에서 시그널링되는, 방법.
  26. 제17항 내지 제25항 중 어느 한 항에 있어서, 상기 서브픽처의 위치가 상기 비트스트림 표현에서 시그널링되는지 여부는 상기 서브픽처의 인덱스에 기초하는, 방법.
  27. 제26항에 있어서, 상기 서브픽처가 상기 픽처 내의 첫 번째 서브픽처인 경우에 상기 서브픽처의 상기 위치가 상기 비트스트림 표현에서 생략되는, 방법.
  28. 제27항에 있어서, 상기 서브픽처의 좌측 상단 위치는 (0, 0)인 것으로 결정되는, 방법.
  29. 제26항에 있어서, 상기 서브픽처가 상기 픽처 내의 마지막 서브픽처인 경우에 상기 서브픽처의 상기 위치가 상기 비트스트림 표현에서 생략되는, 방법.
  30. 제29항에 있어서, 상기 서브픽처의 좌측 상단 위치는 이전에 변환된 서브픽처에 관한 정보에 기초하여 결정되는, 방법.
  31. 제17항 내지 제30항 중 어느 한 항에 있어서, 상기 서브픽처에 관한 상기 정보는 상기 서브픽처의 좌측 상단 위치 및 치수를 포함하고, 상기 정보는 절단된 단항 코딩 방식, 절단된 이진 코딩 방식, 단항 코딩 방식, 고정 길이 코딩 방식, 또는 K차 EG 코딩 방식을 사용하여 코딩되는, 방법.
  32. 제17항 내지 제31항 중 어느 한 항에 있어서, 상기 서브픽처의 치수는 상기 서브픽처 내의 블록의 입도를 사용하여 상기 비트스트림 표현에서 시그널링되는, 방법.
  33. 제32항에 있어서, 상기 치수는 상기 서브픽처의 폭 또는 높이를 포함하는, 방법.
  34. 제31항 또는 제32항에 있어서, 상기 치수는 상기 서브픽처 내의 블록들의 행들의 수 또는 열들의 수로서 표현되는, 방법.
  35. 제34항에 있어서, 블록들의 상기 열들의 수 또는 상기 행들의 수는 I로서 표현되고, (I - d)의 값은 상기 비트스트림 표현에서 시그널링되며, d는 0, 1 또는 2인, 방법.
  36. 제35항에 있어서, d는 이전에 코딩된 서브픽처의 블록의 치수 및 다른 정수 d1에 기초하여 결정되며, d1은 -1, 0, 또는 1과 동일한, 방법.
  37. 제35항에 있어서, (I-d)의 부호가 상기 비트스트림 표현에서 시그널링되는, 방법.
  38. 제23항 내지 제25항 또는 제35항 내지 제37항 중 어느 한 항에 있어서, 상기 (I-d)의 값은 고정 길이 코딩 방식을 사용하여 고정 길이를 갖도록 코딩되는, 방법.
  39. 제38항에 있어서, 상기 고정 길이는 8 비트인, 방법.
  40. 제38항에 있어서, 상기 고정 길이는 x-dx로서 표현되고, x 및 dx는 양의 정수들이며, x는 적합성 규칙에 기초하여 결정되는 최댓값보다 작거나 같고, dx는 0, 1 또는 2인, 방법.
  41. 제38항에 있어서, 상기 고정 길이는 상기 픽처 내의 기본 단위 블록들의 수에 기초하여 결정되는, 방법.
  42. 제41항에 있어서, 상기 고정 길이는 x로서 표현되고, 상기 기본 단위 블록들의 수는 M으로서 표현되며, x = Ceil(log2(M+d0)) + d1이고, d0 및 d1은 정수들인, 방법.
  43. 제42항에 있어서, d0 또는 d1 중 적어도 하나는 -2, -1, 0, 1, 또는 2인, 방법.
  44. 제23항 내지 제25항 또는 제35항 내지 제33항 중 어느 한 항에 있어서, (I-d)는 상기 픽처의 모든 서브픽처들에 대해 시그널링되는, 방법.
  45. 제23항 내지 제25항 또는 제35항 내지 제43항 중 어느 한 항에 있어서, (I-d)는 상기 픽처의 서브픽처들의 서브세트에 대해 시그널링되는, 방법.
  46. 제45항에 있어서, 서브픽처들의 수가 1과 동일한 경우에 상기 (I-d)의 값은 상기 비트스트림 표현에서 생략되는, 방법.
  47. 제45항에 있어서, 상기 서브픽처가 상기 픽처의 첫 번째 서브픽처인 경우에 상기 (I-d)의 값은 상기 비트스트림 표현에서 생략되는, 방법.
  48. 제47항에 있어서, 상기 (I-d)의 값은 0인 것으로 결정되는, 방법.
  49. 제45항에 있어서, 상기 서브픽처가 상기 픽처의 마지막 서브픽처인 경우에 상기 (I-d)의 값은 상기 비트스트림 표현에서 생략되는, 방법.
  50. 제49항에 있어서, 상기 (I-d)의 값은 이전에 변환된 서브픽처에 관한 정보에 기초하여 결정되는, 방법.
  51. 제17항 내지 제50항 중 어느 한 항에 있어서, 상기 픽처의 모든 서브픽처들이 픽처로서 프로세싱되는지 여부를 나타내기 위해 단일 신택스 요소가 상기 비트스트림 표현에 조건부로 포함되는, 방법.
  52. 제17항 내지 제50항 중 어느 한 항에 있어서, 루프 필터가 모든 서브픽처들에 대해 상기 픽처의 서브픽처들에 걸쳐 적용 가능한지 여부를 나타내기 위해 단일 신택스 요소가 상기 비트스트림 표현에 조건부로 포함되는, 방법.
  53. 제51항 또는 제52항에 있어서, 상기 픽처의 서브픽처들의 수가 1과 동일한 경우에 상기 단일 신택스 요소는 상기 비트스트림 표현에서 생략되는, 방법.
  54. 비디오 프로세싱 방법으로서,
    비디오의 픽처가 하나 이상의 서브픽처로 나누어지는 것으로 인해 상기 픽처와 상기 비디오의 비트스트림 표현 사이의 변환을 위해 참조 픽처 리샘플링 툴이 인에이블된다고 결정하는 단계; 및
    상기 결정에 기초하여 상기 변환을 수행하는 단계
    를 포함하는, 방법.
  55. 제54항에 있어서, 상기 참조 픽처 리샘플링 코딩 툴에서 사용되는 스케일링 비율은 비율 세트에 기초하여 결정되는, 방법.
  56. 제55항에 있어서, 상기 비율 세트는
    {1:1, 1:2}, {1:1, 2:1}, {1:1, 1:2, 1:4}, {1:1, 1:2, 4:1}, {1:1, 2:1, 1:4}, {1:1, 2:1, 4:1}, {1:1, 1:2, 1:4, 1:8}, {1:1, 1:2, 1:4, 8:1}, {1:1, 1:2, 4:1, 1:8}, {1:1, 1:2, 4:1, 8:1}, {1:1, 2:1, 1:4, 1:8}, {1:1, 2:1, 1:4, 8:1}, {1:1, 2:1, 4:1, 1:8}, 또는 {1:1, 2:1, 4:1, 8:1}
    중 적어도 하나를 포함하는, 방법.
  57. 제54항 내지 제56항 중 어느 한 항에 있어서, 상기 픽처의 해상도가 제2 픽처의 해상도와 상이한 경우에, 상기 픽처의 코딩 트리 블록의 크기는 상기 제2 픽처의 코딩 트리 블록의 크기와 상이한, 방법.
  58. 제54항 내지 제57항 중 어느 한 항에 있어서, 상기 픽처의 서브픽처는 SAWxSAH의 치수를 갖고, 상기 비디오의 제2 픽처의 서브픽처는 SBWxSBH의 치수를 가지며, 상기 픽처와 상기 제2 픽처 사이의 스케일링 비율들은 수평 방향과 수직 방향을 따라 Rw와 Rh이고, SAW/SBW 또는 SBW/SAW는 Rw와 동일하며, SAH/SBH 또는 SBH/SAH는 Rh와 동일한, 방법.
  59. 비디오 프로세싱 방법으로서,
    하나 이상의 슬라이스를 포함하는 하나 이상의 서브픽처를 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계
    를 포함하며,
    상기 비트스트림 표현은 포맷 규칙을 준수하고,
    상기 포맷 규칙은, 서브픽처 및 슬라이스에 대해, 상기 서브픽처를 식별해 주는 인덱스가 상기 슬라이스의 헤더에 포함되는 경우에, 상기 슬라이스에 대한 어드레스 필드가 상기 서브픽처 내의 상기 슬라이스의 어드레스를 나타낸다는 것을 지정하는, 방법.
  60. 제1항 내지 제59항 중 어느 한 항에 있어서, 상기 변환은 상기 비트스트림 표현으로부터 상기 비디오를 생성하는, 방법.
  61. 제1항 내지 제59항 중 어느 한 항에 있어서, 상기 변환은 상기 비디오로부터 상기 비트스트림 표현을 생성하는, 방법.
  62. 비디오 프로세싱 장치로서,
    제1항 내지 제61항 중 어느 하나 이상의 항에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 프로세싱 장치.
  63. 코드가 저장되어 있는 컴퓨터 판독 가능 매체로서,
    상기 코드는, 실행될 때, 프로세서로 하여금 제1항 내지 제61항 중 어느 하나 이상의 항에 기재된 방법을 구현하게 하는, 컴퓨터 판독 가능 매체.
  64. 컴퓨터 판독 가능 매체로서,
    제1항 내지 제61항 중 어느 한 항에 따라 생성되는 코딩된 표현을 저장하는, 컴퓨터 판독 가능 매체.
KR1020227009747A 2019-10-02 2020-10-09 비디오 비트스트림에서의 서브픽처 시그널링을 위한 신택스 KR102609308B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2019109809 2019-10-02
CNPCT/CN2019/109809 2019-10-02
PCT/CN2020/119932 WO2021063421A1 (en) 2019-10-02 2020-10-09 Syntax for subpicture signaling in a video bitstream

Publications (2)

Publication Number Publication Date
KR20220066897A true KR20220066897A (ko) 2022-05-24
KR102609308B1 KR102609308B1 (ko) 2023-12-05

Family

ID=75336373

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227009747A KR102609308B1 (ko) 2019-10-02 2020-10-09 비디오 비트스트림에서의 서브픽처 시그널링을 위한 신택스

Country Status (8)

Country Link
US (3) US11546593B2 (ko)
EP (1) EP4022917A4 (ko)
JP (2) JP7322290B2 (ko)
KR (1) KR102609308B1 (ko)
CN (3) CN114556952A (ko)
BR (1) BR112022006387A2 (ko)
MX (1) MX2022003765A (ko)
WO (2) WO2021063421A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3997869A4 (en) 2019-08-10 2022-10-26 Beijing Bytedance Network Technology Co., Ltd. SUBPICTURE DEPENDENT SIGNALING IN VIDEO STREAMS
EP4022917A4 (en) 2019-10-02 2022-11-30 Beijing Bytedance Network Technology Co., Ltd. SYNTAX FOR SUBPICTURE SIGNALING IN A VIDEO BITSTREAM
WO2021073630A1 (en) 2019-10-18 2021-04-22 Beijing Bytedance Network Technology Co., Ltd. Syntax constraints in parameter set signaling of subpictures
JP7397213B2 (ja) 2020-02-24 2023-12-12 バイトダンス インコーポレイテッド サブピクチャレベルに基づいたパーティション計算
JP7479492B2 (ja) 2020-03-03 2024-05-08 バイトダンス インコーポレイテッド ビデオ・コーディングにおける低周波ノン・セパラブル変換シグナリング
US11575941B2 (en) * 2021-03-23 2023-02-07 Tencent America LLC Parallel processing in video coding
US20230179774A1 (en) * 2021-12-08 2023-06-08 Tencent America LLC Method and apparatus for scene detection based encoding

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140056342A (ko) * 2011-08-18 2014-05-09 퀄컴 인코포레이티드 파티션 기반 필터들을 적용하는 비디오 코딩 방법과 디바이스, 및 저장 매체
KR20170018819A (ko) * 2014-05-01 2017-02-20 퀄컴 인코포레이티드 비디오 코딩에서 파티셔닝 방식들에 대한 가상 참조 디코더 파라미터들의 적합성을 테스트하기 위한 방법 및 디바이스
KR20180129584A (ko) * 2017-05-26 2018-12-05 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법

Family Cites Families (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047112A (en) 1992-06-30 2000-04-04 Discovision Associates Technique for initiating processing of a data stream of encoded video information
GB2382940A (en) * 2001-11-27 2003-06-11 Nokia Corp Encoding objects and background blocks
FI114679B (fi) 2002-04-29 2004-11-30 Nokia Corp Satunnaisaloituspisteet videokoodauksessa
US20040177383A1 (en) * 2003-01-24 2004-09-09 Chyron Corporation Embedded graphics metadata
CN100502511C (zh) * 2004-09-14 2009-06-17 华为技术有限公司 用于分数像素精度运动预测的插值图像内存组织方法
US7688333B2 (en) * 2007-02-28 2010-03-30 Lsi Corporation Method and/or apparatus for color space reduction for transcoding subpicture elements
US20080267297A1 (en) 2007-04-26 2008-10-30 Polycom, Inc. De-blocking filter arrangements
KR100891768B1 (ko) 2007-05-02 2009-04-07 삼성전자주식회사 모션 벡터 탐색 방법
WO2010041858A2 (en) 2008-10-06 2010-04-15 Lg Electronics Inc. A method and an apparatus for decoding a video signal
US8988531B2 (en) * 2010-07-08 2015-03-24 Texas Instruments Incorporated Method and apparatus for sub-picture based raster scanning coding order
US9807403B2 (en) 2011-10-21 2017-10-31 Qualcomm Incorporated Adaptive loop filtering for chroma components
WO2013060250A1 (en) 2011-10-24 2013-05-02 Mediatek Inc. Method and apparatus for non-cross-tile loop filtering
US9584819B2 (en) 2011-10-24 2017-02-28 Qualcomm Incorporated Grouping of tiles for video coding
US9332259B2 (en) * 2012-01-18 2016-05-03 Qualcomm Incorporated Indication of use of wavefront parallel processing in video coding
BR112013027865B1 (pt) 2012-02-03 2023-03-21 Hfi Innovation Inc Método e aparelho de processamento de filtro em loop para pixels de fronteira através de uma fronteira de bloco
US9762903B2 (en) * 2012-06-01 2017-09-12 Qualcomm Incorporated External pictures in video coding
US9716892B2 (en) * 2012-07-02 2017-07-25 Qualcomm Incorporated Video parameter set including session negotiation information
US9491457B2 (en) 2012-09-28 2016-11-08 Qualcomm Incorporated Signaling of regions of interest and gradual decoding refresh in video coding
US8989508B2 (en) 2012-09-28 2015-03-24 Sharp Kabushiki Kaisha Electronic device for signaling a sub-picture buffer parameter
CN105144720B (zh) 2013-01-04 2018-12-28 Ge视频压缩有限责任公司 高效可伸缩编码概念
EP2941868B1 (en) 2013-01-07 2020-07-08 Nokia Technologies Oy Method and apparatus for video coding and decoding
US9591321B2 (en) * 2013-04-07 2017-03-07 Dolby International Ab Signaling change in output layer sets
US10015515B2 (en) 2013-06-21 2018-07-03 Qualcomm Incorporated Intra prediction from a predictive block
JP6352383B2 (ja) * 2013-07-14 2018-07-04 シャープ株式会社 復号方法及び復号装置
GB2516424A (en) 2013-07-15 2015-01-28 Nokia Corp A method, an apparatus and a computer program product for video coding and decoding
US20150078457A1 (en) * 2013-09-13 2015-03-19 Qualcomm Incorporated Representation format signaling in multi-layer video coding
EP3056005A4 (en) * 2013-10-11 2017-05-17 Sharp Kabushiki Kaisha Signaling information for coding
US20150103924A1 (en) 2013-10-13 2015-04-16 Sharp Laboratories Of America, Inc. On operation of decoded picture buffer for interlayer pictures
KR20150057591A (ko) 2013-11-20 2015-05-28 주식회사 디오텍 동영상파일에 대한 자막데이터 생성방법 및 장치
KR101851479B1 (ko) * 2014-01-03 2018-04-23 노키아 테크놀로지스 오와이 파라미터 세트 코딩
US20150215631A1 (en) 2014-01-23 2015-07-30 Broadcom Corporation Parallel Coding with Overlapped Tiles
JP6280679B2 (ja) 2014-02-24 2018-02-14 日本放送協会 フレーム間引き装置、フレーム補間装置、映像符号化装置、映像復号装置、及びこれらのプログラム
CN106464893B (zh) 2014-03-17 2019-12-03 诺基亚技术有限公司 用于视频编码和解码的装置、方法和计算机程序
US10750198B2 (en) 2014-05-22 2020-08-18 Qualcomm Incorporated Maximum palette parameters in palette-based video coding
EP3198872A1 (en) 2014-09-26 2017-08-02 VID SCALE, Inc. Intra block copy coding with temporal block vector prediction
US9800898B2 (en) * 2014-10-06 2017-10-24 Microsoft Technology Licensing, Llc Syntax structures indicating completion of coded regions
WO2016100424A1 (en) 2014-12-19 2016-06-23 Mediatek Inc. Methods of palette based prediction for non-444 color format in video and image coding
JP6461355B2 (ja) 2015-01-29 2019-01-30 キヤノン株式会社 画像を符号化または復号する装置、方法、プログラム
US20160234522A1 (en) 2015-02-05 2016-08-11 Microsoft Technology Licensing, Llc Video Decoding
CN104702963B (zh) 2015-02-13 2017-11-24 北京大学 一种自适应环路滤波的边界处理方法及装置
CN107534783B (zh) 2015-02-13 2020-09-08 联发科技股份有限公司 图像中区块的调色板索引图编解码方法
JP2017017629A (ja) 2015-07-03 2017-01-19 富士通株式会社 動画像符号化装置、動画像符号化方法、及びプログラム
US10715816B2 (en) 2015-11-11 2020-07-14 Apple Inc. Adaptive chroma downsampling and color space conversion techniques
WO2017137444A1 (en) 2016-02-09 2017-08-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Concept for picture/video data streams allowing efficient reducibility or efficient random access
US20170272758A1 (en) 2016-03-16 2017-09-21 Mediatek Inc. Video encoding method and apparatus using independent partition coding and associated video decoding method and apparatus
CN116170588A (zh) * 2016-03-30 2023-05-26 韩国电子通信研究院 使用画面划分信息对视频进行编码和解码的方法和设备
US10419755B2 (en) 2016-05-16 2019-09-17 Qualcomm Incorporated Confusion of multiple filters in adaptive loop filtering in video coding
CN107566848B (zh) 2016-06-30 2020-04-14 华为技术有限公司 编解码的方法及装置
CN107801039B (zh) 2016-08-30 2020-04-14 华为技术有限公司 运动补偿预测方法和装置
US20180098090A1 (en) 2016-10-04 2018-04-05 Mediatek Inc. Method and Apparatus for Rearranging VR Video Format and Constrained Encoding Parameters
KR20240038175A (ko) 2017-07-06 2024-03-22 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 분할된 비디오 스트리밍 개념
EP3695602A4 (en) 2017-10-09 2021-08-04 Nokia Technologies Oy DEVICE, METHOD AND COMPUTER PROGRAM FOR VIDEO ENCODING AND DECODING
JP2021016016A (ja) 2017-10-20 2021-02-12 シャープ株式会社 動画像符号化装置及び動画像復号装置
TWI736923B (zh) 2018-06-29 2021-08-21 大陸商北京字節跳動網絡技術有限公司 擴展Merge模式
TWI731358B (zh) 2018-06-29 2021-06-21 大陸商北京字節跳動網絡技術有限公司 改進的時域運動向量預測推導
WO2020008334A1 (en) 2018-07-01 2020-01-09 Beijing Bytedance Network Technology Co., Ltd. Efficient affine merge motion vector derivation
CN110677679B (zh) 2018-07-01 2022-07-26 北京字节跳动网络技术有限公司 依赖形状的帧内编码
WO2020084507A1 (en) 2018-10-23 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Harmonized local illumination compensation and modified inter prediction coding
WO2020094061A1 (en) 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Multi-models for intra prediction
CN109600611B (zh) 2018-11-09 2021-07-13 北京达佳互联信息技术有限公司 环路滤波方法、环路滤波装置、电子设备和可读介质
WO2020141248A1 (en) 2019-01-02 2020-07-09 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
US11627310B2 (en) 2019-01-02 2023-04-11 Lg Electronics Inc. Affine motion prediction-based video decoding method and device using subblock-based temporal merge candidate in video coding system
HRP20230702T1 (hr) * 2019-01-09 2023-10-13 Huawei Technologies Co., Ltd. Signaliziranje identifikatora podslike kod kodiranja videa
SG11202109980WA (en) 2019-03-11 2021-10-28 Huawei Tech Co Ltd Sub-picture level filtering in video coding
CA3140549A1 (en) 2019-06-03 2020-12-10 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
CN114097222A (zh) 2019-06-23 2022-02-25 夏普株式会社 用于在视频编码中执行自适应分辨率变化的系统和方法
EP3987813A4 (en) 2019-06-24 2023-03-08 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR REDUCING RECONSTRUCTION ERROR IN VIDEO CODING BASED ON INTER-COMPONENT CORRELATION
MX2022000292A (es) 2019-07-08 2022-02-03 Huawei Tech Co Ltd Restricciones de imagen de unidad nal mezclada en codificacion de video.
WO2021013178A1 (en) 2019-07-25 2021-01-28 Mediatek Inc. Method and apparatus of cross-component adaptive loop filtering with virtual boundary for video coding
KR20220088681A (ko) 2019-08-06 2022-06-28 오피 솔루션즈, 엘엘씨 적응적 해상도 관리 시그널링
US11363307B2 (en) * 2019-08-08 2022-06-14 Hfi Innovation Inc. Video coding with subpictures
EP3997869A4 (en) 2019-08-10 2022-10-26 Beijing Bytedance Network Technology Co., Ltd. SUBPICTURE DEPENDENT SIGNALING IN VIDEO STREAMS
WO2021049586A1 (ja) 2019-09-13 2021-03-18 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
US11451834B2 (en) 2019-09-16 2022-09-20 Tencent America LLC Method and apparatus for cross-component filtering
US11202068B2 (en) 2019-09-16 2021-12-14 Mediatek Inc. Method and apparatus of constrained cross-component adaptive loop filtering for video coding
GB201913403D0 (en) 2019-09-17 2019-10-30 Canon Kk Method and apparatus for encoding and decoding a video stream with subpictures
EP4022917A4 (en) 2019-10-02 2022-11-30 Beijing Bytedance Network Technology Co., Ltd. SYNTAX FOR SUBPICTURE SIGNALING IN A VIDEO BITSTREAM
WO2021072364A1 (en) 2019-10-10 2021-04-15 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus of video coding using palette mode
WO2021073630A1 (en) 2019-10-18 2021-04-22 Beijing Bytedance Network Technology Co., Ltd. Syntax constraints in parameter set signaling of subpictures
US11539982B2 (en) 2019-11-01 2022-12-27 Qualcomm Incorporated Merge estimation region for multi-type-tree block structure

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140056342A (ko) * 2011-08-18 2014-05-09 퀄컴 인코포레이티드 파티션 기반 필터들을 적용하는 비디오 코딩 방법과 디바이스, 및 저장 매체
KR20170018819A (ko) * 2014-05-01 2017-02-20 퀄컴 인코포레이티드 비디오 코딩에서 파티셔닝 방식들에 대한 가상 참조 디코더 파라미터들의 적합성을 테스트하기 위한 방법 및 디바이스
KR20180129584A (ko) * 2017-05-26 2018-12-05 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법

Also Published As

Publication number Publication date
WO2021063421A1 (en) 2021-04-08
CN117528082A (zh) 2024-02-06
JP2022551264A (ja) 2022-12-08
JP2023143947A (ja) 2023-10-06
JP7322290B2 (ja) 2023-08-07
MX2022003765A (es) 2022-04-20
US20220256195A1 (en) 2022-08-11
CN114556952A (zh) 2022-05-27
EP4022917A1 (en) 2022-07-06
US11539950B2 (en) 2022-12-27
WO2021063420A1 (en) 2021-04-08
US11546593B2 (en) 2023-01-03
US20230116187A1 (en) 2023-04-13
EP4022917A4 (en) 2022-11-30
BR112022006387A2 (pt) 2022-07-26
CN114503577A (zh) 2022-05-13
KR102609308B1 (ko) 2023-12-05
US20220239912A1 (en) 2022-07-28

Similar Documents

Publication Publication Date Title
WO2021027773A1 (en) Subpicture size definition in video processing
JP7482220B2 (ja) サブピクチャのパラメータセットシグナリングにおける構文制約
KR102609308B1 (ko) 비디오 비트스트림에서의 서브픽처 시그널링을 위한 신택스
WO2021139806A1 (en) Constraints for video coding and decoding
KR20220130149A (ko) 인 루프 필터링과 비디오 슬라이스들 간의 상호작용
WO2021129805A1 (en) Signaling of parameters at sub-picture level in a video bitstream

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant