KR102653570B1 - 참조 픽처 리샘플링을 위한 신호 - Google Patents

참조 픽처 리샘플링을 위한 신호 Download PDF

Info

Publication number
KR102653570B1
KR102653570B1 KR1020217034627A KR20217034627A KR102653570B1 KR 102653570 B1 KR102653570 B1 KR 102653570B1 KR 1020217034627 A KR1020217034627 A KR 1020217034627A KR 20217034627 A KR20217034627 A KR 20217034627A KR 102653570 B1 KR102653570 B1 KR 102653570B1
Authority
KR
South Korea
Prior art keywords
picture
video
resolution
block
current
Prior art date
Application number
KR1020217034627A
Other languages
English (en)
Other versions
KR20220006048A (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 KR20220006048A publication Critical patent/KR20220006048A/ko
Application granted granted Critical
Publication of KR102653570B1 publication Critical patent/KR102653570B1/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/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • H04N19/428Recompression, e.g. by spatial or temporal decimation

Abstract

참조 픽처 리샘플링을 포함하는 디지털 비디오 코딩을 위한 장치, 시스템 및 방법이 설명된다. 비디오 처리를 위한 예시적인 방법은, 하나 이상의 비디오 단위를 포함하는 하나 이상의 비디오 세그먼트를 포함하는 비디오 및 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 것을 포함한다. 상기 비트스트림 표현은, 형식 규칙을 준수하고, 적응적 해상도 변환(ARC) 프로세스와 관련된 정보를 포함한다. 상기 형식 규칙은, 비디오 세그먼트에 대한 상기 적응적 해상도 변환(ARC) 프로세스의 적용가능성을 지정한다. 상기 비디오 세그먼트의 상기 하나 이상의 비디오 단위가 서로 다른 해상도로 코딩된다는 지시가, 구문 구조로 상기 비트스트림 표현에 포함된다. 상기 구문 구조는, 헤더 구문 구조, 디코더 파라미터 세트, 비디오 파라미터 세트, 픽처 파라미터 세트, 시퀀스 파라미터 세트 및 적응적 파라미터 세트와 상이하다.

Description

참조 픽처 리샘플링을 위한 신호
본 출원은 2019년 5월 12일에 출원된 국제 특허 출원 번호 PCT/CN2019/086513의 우선권과 이익을 주장하는, 2020년 5월 12일에 출원된 국제 특허 출원 번호 PCT/CN2020/089740에 기초한다. 상기 특허 출원들 모두는 전체로서 여기에 참조로 포함된다.
이 특허 문서는 비디오 코딩 기술, 장치 및 시스템에 관한 것이다.
비디오 압축 기술의 발전에도 불구하고, 디지털 비디오는 여전히 인터넷 및 기타 디지털 통신 네트워크에서 가장 큰 대역폭 사용을 차지한다. 비디오를 수신하고 표시할 수 있는 연결된 사용자 장치의 수가 증가함에 따라, 디지털 비디오 사용에 대한 대역폭 수요(bandwidth demand)는 계속 증가할 것으로 예상된다.
디지털 비디오 코딩(digital video coding)과 관련된, 특히, 비디오 코딩을 위한 참조 픽처 리샘플링(reference picture resampling)에 관련된, 장치, 시스템 및 방법이 기술된다. 이 기술되는 방법은, 기존의 비디오 코딩 표준(예를 들어, HEVC(High Efficiency Video Coding)) 및 미래의 비디오 코딩 표준 또는 비디오 코덱 모두에 적용될 수 있다.
일 측면에서, 개시된 기술은, 비디오 처리(video processing)을 위한 방법을 제공하는 데 사용될 수 있다. 이 방법은, 하나 이상의 비디오 단위(video unit)를 포함하는 하나 이상의 비디오 세그먼트(video segment)를 포함하는 비디오 및 상기 비디오의 비트스트림 표현(bitstream representation) 간의 변환(conversion)을 수행하는 것을 포함한다. 상기 비트스트림 표현은, 형식 규칙(format rule)을 준수(conform)하고, 적응적 해상도 변환(ARC: adaptive resolution conversion) 프로세스와 관련된 정보를 포함한다. 상기 형식 규칙은, 상기 적응적 해상도 변환(ARC) 프로세스의 비디오 세그먼트에 대한 적용가능성(applicability)을 지정(specify)한다. 상기 비디오 세그먼트의 상기 하나 이상의 비디오 단위가 서로 다른 해상도(different resolution)로 코딩된다는 지시(indication)가, 구문 구조(syntax structure)로 상기 비트스트림 표현에 포함된다. 상기 구문 구조는, 헤더 구문 구조(header syntax structure), 디코더 파라미터 세트(DPS: decoder parameter set), 비디오 파라미터 세트(VPS: video parameter set), 픽처 파라미터 세트(PPS: picture parameter set), 시퀀스 파라미터 세트(SPS: sequence parameter set), 및 적응적 파라미터 세트(APS: adaptive parameter set)와 상이(differnt)하다.
또 다른 측면에서, 개시된 기술은, 비디오 처리를 위한 방법을 제공하는 데 사용될 수 있다. 이 방법은, 하나 이상의 비디오 단위(video unit)를 포함하는 하나 이상의 비디오 세그먼트(video segment)를 포함하는 비디오 및 상기 비디오의 비트스트림 표현(bitstream representation) 간의 변환(conversion)을 수행하는 것을 포함한다. 상기 비트스트림 표현은, 형식 규칙(format rule)을 준수(conform)하고, 적응적 해상도 변환(ARC: adaptive resolution conversion) 프로세스와 관련된 정보를 포함한다. 오더(order) K의 지수 골롬 코드(exponential-Golomb code)로 코딩되는 상기 하나 이상의 비디오 단위의 차원(dimension)은, 상기 비트스트림 표현으로 신호(signal)된다. 여기서, K는 양의 정수(positive integer)이다. 상기 형식 규칙은, 상기 적응적 해상도 변환(ARC) 프로세스의 비디오 세그먼트에 대한 적용가능성(applicability)을 지정(specify)한다. 상기 비디오 세그먼트의 상기 하나 이상의 비디오 단위가 서로 다른 해상도로 코딩된다는 지시(indication)는, 구문 구조(syntax structure)로 상기 비트스트림 표현에 포함된다.
또 다른 측면에서, 개시된 기술은 비디오 처리를 위한 방법을 제공하는 데 사용될 수 있다. 이 방법은, 하나 이상의 비디오 단위(video unit)를 포함하는 하나 이상의 비디오 세그먼트(video segment)를 포함하는 비디오 및 상기 비디오의 비트스트림 표현(bitstream representation) 간의 변환(conversion)을 수행하는 것을 포함한다. 상기 비트스트림 표현은, 형식 규칙(format rule)을 준수(conform)하고, 적응적 해상도 변환(ARC: adaptive resolution conversion) 프로세스와 관련된 정보를 포함한다. 높이(height)(H) 및 폭(width)(W)은, 상기 비트스트림 표현으로 신호(signal)된다. 여기서, 높이(H) 및 폭(W)은, 양의 정수이고, 제한(constrain)된다. 상기 형식 규칙은, 상기 적응적 해상도 변환(ARC) 프로세스의 비디오 세그먼트에 대한 적용가능성(applicability)을 지정(specify)한다. 상기 비디오 세그먼트의 상기 하나 이상의 비디오 단위가 서로 다른 해상도로 코딩된다는 지시(indication)는, 구문 구조(syntax structure)로 상기 비트스트림 표현에 포함된다.
또 다른 측면에서, 개시된 기술은, 비디오 처리를 위한 방법을 제공하는 데 사용될 수 있다. 이 방법은, (a) 비디오의 현재 비디오 블록(current video block)의 제1 시간적 이웃 블록(first temporally neighboring block)의 제1 참조 픽처(first reference picture)의 해상도가, 현재 비디오 블록을 포함하는 현재 픽처의 해상도와 동일하고, 및 (b) 현재 비디오 블록의 제2 시간적 이웃 블록(second temporally neighboring block)의 제2 참조 픽처(second reference picutre)의 해상도가, 현재 픽처의 해상도와 상이하다는 것을 결정하는 것을 포함한다. 또한, 이 방법은, 상기 결정에 따라 상기 제1 시간적 이웃 블록의 예측(prediction)에 상기 제2 시간적 이웃 블록의 모션 정보(motion information)의 사용을 비활성화(disable)함으로써, 현재 비디오 블록 및 상기 비디오의 비트스트림 표현(bitstream representation) 간의 변환(conversion)을 수행하는 것을 포함한다.
또 다른 측면에서, 개시된 기술은, 비디오 처리를 위한 방법을 제공하는 데 사용될 수 있다. 이 방법은, (a) 비디오의 현재 비디오 블록(current video block)의 제1 시간적 이웃 블록(first temporally neighboring block)의 제1 참조 픽처(first reference picture)의 해상도가, 현재 비디오 블록을 포함하는 현재 픽처의 해상도와 상이하고, 및 (b) 현재 비디오 블록의 제2 시간적 이웃 블록(second temporally neighboring block)의 제2 참조 픽처(second reference picutre)의 해상도가, 현재 픽처의 해상도와 동일하다는 것을 결정하는 것을 포함한다. 또한, 이 방법은, 상기 결정에 따라 상기 제1 시간적 이웃 블록의 예측(prediction)에 상기 제2 시간적 이웃 블록의 모션 정보(motion information)의 사용을 비활성화(disable)함으로써, 현재 비디오 블록 및 상기 비디오의 비트스트림 표현(bitstream representation) 간의 변환(conversion)을 수행하는 것을 포함한다.
또 다른 측면에서, 개시된 기술은, 비디오 처리를 위한 방법을 제공하는 데 사용될 수 있다. 이 방법은, 비디오의 현재 비디오 블록에 대해, 현재 비디오 블록과 연관된 비디오 블록을 포함하는 참조 픽처(reference picture)의 해상도가 현재 비디오 블록을 포함하는 현재 픽처(current picture)의 해상도와 상이하다는 것을 결정한다. 또한, 이 방법은, 상기 결정에 따라 참조 픽처 내 비디오 블록에 기초한 예측 프로세스(prediction process)를 비활성화(disable)함으로써, 현재 비디오 블록 및 상기 비디오의 비트스트림 표현(bitstream representation) 간의 변환(conversion)을 수행하는 것을 포함한다.
또 다른 측면에서, 개시된 기술은, 비디오 처리를 위한 방법을 제공하는 데 사용될 수 있다. 이 방법은, 픽처의 적어도 하나의 차원(dimension)에 기초하여, 상기 픽처가, 현재 픽처의 현재 비디오 블록의 동일위치 참조 픽처(collocated reference picture)로 사용되는 것이 허용되는지 여부에 대하여 결정하는 것을 포함한다. 또한, 이 방법은, 상기 결정에 기초하여, 상기 비디오의 현재 비디오 블록 및 상기 비디오의 비트스트림 표현(bitstream representation) 간의 변환(conversion)을 수행하는 것을 포함한다.
또 다른 측면에서, 개시된 기술은, 비디오 처리를 위한 방법을 제공하는 데 사용될 수 있다. 이 방법은, 비디오의 현재 비디오 블록의 예측을 위하여, 동일위치 블록(collocated block)을 포함하는 동일위치 참조 픽처(collocated reference picture)의 차원(dimension)이 현재 비디오 블록을 포함하는 현재 픽처의 차원과 동일하다는 결정에 기초하여, 동일위치 블록을 식별하는 것을 포함한다. 또한, 이 방법은, 동일위치 블록(collocated block)을 사용하여, 현재 비디오 블록 및 비디오의 비트스트림 표현 간의 변환을 수행하는 것을 포함한다.
또 다른 측면에서, 개시된 기술은, 비디오 처리를 위한 방법을 제공하는 데 사용될 수 있다. 이 방법은, 비디오의 현재 비디오 블록에 대하여, 현재 비디오 블록과 연관된 참조 픽처(reference picture)가, 현재 비디오 블록을 포함하는 현재 픽처의 해상도와 상이한 해상도를 가진다고 결정하고, 현재 비디오 블록 및 비디오의 비트스트림 표현 간의 변환의 일부로서, 현재 비디오 블록에 대한 코딩 정보(coding information) 또는 현재 비디오 블록에 대한 모션 정보(motion information) 및 참조 픽처의 하나 이상의 참조 샘플(reference samples)에 대한 다운 샘플링 동작(down-sampling operation) 또는 업 샘플링 동작(up-sampling operation)을 수행하는 것을 포함한다.
또 다른 측면에서, 개시된 기술은, 비디오 처리를 위한 방법을 제공하는 데 사용될 수 있다. 이 방법은, 비디오의 현재 비디오 블록 및 비디오의 비트스트림 표현 간의 변환에 대하여, 현재 비디오 블록을 포함하는 현재 픽처의 높이(height) 또는 폭(width)이, 현재 비디오 블록과 연관된 동일위치 참조 픽처(collocated reference picture)의 높이 또는 폭과 상이하다는 것을 결정하고, 상기 결정에 기초하여, 상기 동일위치 참조 픽처의 하나 이상의 모션 벡터(motion vector)를 저장하는 버퍼(buffer)에 대한 다운 샘플링 동작(down-sampling operation) 또는 업 샘플링 동작(up-sampling operation)을 수행하는 것을 포함한다.
또 다른 측면에서, 개시된 기술은, 비디오 처리를 위한 방법을 제공하는 데 사용될 수 있다. 이 방법은, 비디오의 현재 비디오 블록을 포함하는 현재 픽처의 차원 및 상기 현재 비디오 블록과 연관된 동일위치 픽처(collocated picture)의 차원에 기초하여, 현재 비디오 블록에 적용되는 대안적 시간적 모션 벡터 예측(ATMVP: alternative temporal motion vector prediction) 프로세스에 대한 정보를 획득(derive)하고, 현재 비디오 블록 및 비디오의 비트스트림 표현 간의 변환을 수행하는 것을 포함한다.
또 다른 측면에서, 개시된 기술은, 비디오 처리를 위한 방법을 제공하는 데 사용될 수 있다. 이 방법은, 비디오의 현재 비디오 블록에 대한 적응적 해상도 변환(ARC) 프로세스의 적용을 위하여, 비디오의 비트스트림 표현을 구성(configure)하는 것을 포함한다. ARC 프로세스와 관련된 정보는, 비트스트림 표현으로 신호(signal)된다. 현재 비디오 블록을 포함하는 현재 픽처는 제1 해상도를 가진다. ARC 프로세스는, 현재 비디오 블록의 부분을, 제1 해상도와 다른 제2 해상도로, 리샘플링(resampling)하는 것을 포함한다. 상기 방법은, 상기 구성에 기초하여, 현재 비디오 블록 및 현재 비디오 블록의 비트스트림 표현 간의 변환을 수행하는 것을 포함한다.
또 다른 측면에서, 전술한 방법은, 프로세서 실행 코드(processor-executable code)의 형태로 구현되고, 컴퓨터 판독 가능 프로그램 매체(computer-readable program medium)에 저장된다.
또 다른 측면에서, 전술한 방법을 수행하기 위해 구성되거나 동작가능한 장치가 개시된다. 이 장치는 이 방법을 구현하기 위해 프로그램되는 프로세서를 포함할 수 있다.
또 다른 측면에서, 비디오 디코더 장치는 여기에 설명된 방법을 구현할 수 있다.
도 1은, 상이한 해상도로 코딩된 동일한 콘텐츠의 2개의 표현의 적응 스트림(adaptive stream)의 예를 도시한다.
도 2는, 상이한 해상도로 코딩된 동일한 콘텐츠의 2개 표현의 적응 스트림(adaptive stream)의 다른 예를 도시한다. 세그먼트들은 폐쇄형 GOP(closed Group of Picture) 또는 개방형 GOP(open GOP) 예측 구조를 사용한다.
도 3은, 상기 2개의 표현의 개방형 GOP 예측 구조의 예를 도시한다.
도 4는, 개방형 GOP 위치(open GOP position)에서 표현 전환(representation switching)의 예를 나타낸다.
도 5는, RASL(Random Access Skipped Leading) 픽처들을 디코딩하기 위한 참조(reference)로서 다른 비트스틂으로부터의 리샘플링된 참조 픽처들(resampled reference pictures)을 사용하는 예를 도시한다.
도 6은, MCTS(motion-constrained tile set) 기반 RWMR(region-wise mixed-resolution) 뷰포트-의존 360 스트리밍(viewport-dependent 360 streaming)의 예를 도시한다.
도 7은, 상이한 IRAP(intra random access point) 간격들(intervals)과 상이한 크기들의 동일위치 서브-픽처 표현(collocated sub-picture representations)의 예를 도시한다.
도 8은, 세그먼트의 시작시 보기 방향 변경(viewing orientation change)이 해상도 변화를 가져오는 경우, 수신된 세그먼트의 예를 도시한다.
도 9는, 보기 방향 변경(viewing orientation change)의 예를 도시한다.
도 10은, 2개의 서브-픽처 위치에 대한 서브-칙처 표현의 예를 도시한다.
도 11은, 적응적 해상도 변환(ARC)을 위한 인코더 변형례(modifications)의 예를 도시한다.
도 12는, 적응적 해상도 변환(ARC)을 위한 디코더 변형례(modifications)의 예를 도시한다.
도 13은, 적응적 해상도 변환(ARC)을 위한 타일 그룹 기반 리샘플링(tile group based resampling)의 예를 도시한다.
도 14는, 적응적 해상도 변환(ARC) 프로세스의 예를 도시한다.
도 15는, 코딩 유닛을 위한 대안적 시간적 모션 벡터 예측(ATMVP: alternative temporal motion vector prediction)의 예를 도시한다.
도 16a 및 도 16b는, 간소화된 어파인 모션 모델(simplified affine motion model)의 예를 도시한다.
도 17은, 서브-블록 당 어파인 모션 벡터 필드(affine motion vector field (MVF))를 도시한다.
도 18a 및 도 18b는, 4-파라미터 어파인 모델(4-parameter affine model) 및 6-파라미터 어파인 모델(6-parameter affine model)의 예를 각각 도시한다.
도 19는, 상속 어파인 후보(inherited affine candidates)에 대한 AF_INTER에 대한 모션 벡터 예측(MVP: motion vector prediction)의 예를 도시한다.
도 20은, 구성된 어파인 후보들(constructed affine candidates)에 대하여 AF_INTER 대한 MVP의 예를 도시한다.
도 21a 및 도 21b는, AF_MERGE에 대한 후보들의 예를 도시한다.
도 22는, 어파인 병합 모드(affine merge mode)에 대한 후보 위치들(candidate positions)의 예를 도시한다.
도 23은, ARC로 TMVP/ATMVP를 획득하는 예를 도시한다.
도 24a-24j는, 비디오 처리를 위한 예시적인 방법들의 순서도를 도시한다.
도 25는, 여기에 개시된 시각 미디어 디코딩 또는 시각 미디어 인코딩 기술을 구현하기 위한 하드웨어 플랫폼의 예를 도시한 블록도이다.
도 26은, 개시된 기술들이 구현될 수 있는 예시적인 비디오 처리 시스템의 블록도이다.
개시된 기술의 실시예들은, 압축 성능을 향상시키기 위해, 기존의 비디오 코딩 표준(예를 들어, HEVC, H.265) 및 미래 표준에 적용될 수 있다. 섹션 제목은 설명의 가독성을 향상시키기 위해 본 문서에서 사용되며, 설명 또는 실시예들(및/또는 구현들)을 각 섹션으로만 제한하는 것은 아니다.
1. 비디오 코딩 소개(Video coding introduction)
고해상도 비디오의 수요가 증가함에 따라, 비디오 코딩 방법 및 기술은 현대 기술에서 어디에서나 사용되고 있다. 비디오 코덱은, 일반적으로 디지털 비디오를 압축하거나 압축 해제하는 전자 회로 또는 소프트웨어를 포함하고, 코딩 효율성을 높이기 위해 지속적으로 개선되고 있다. 비디오 코덱은, 압축되지 않은 비디오를 압축 형식으로 변환하거나 그 반대의 변환을 수행한다. 비디오 품질, 비디오를 표현하기 위하여 사용되는 데이터의 크기(비트 전송률(bit rate)에 의해 결정됨), 인코딩 및 디코딩 알고리즘의 복잡성, 데이터 손실 및 오류에 대한 민감도(sensitivity), 편집 용이성, 랜덤 액세스 및 종단 간 지연(대기 시간) 사이에는 복잡한 관계가 있다. 압축 형식(compressed format)은, 일반적으로 표준 비디오 압축 사양(예: HEVC(High Efficiency Video Coding) 표준(H.265 또는 MPEG-H 파트 2라고도 함)), 최종 확정될 다목적 비디오 코딩 표준(Versatile Video Coding standard) 또는 기타 현재 및/또는 미래의 비디오 코딩 표준을 준수(conform)한다.
비디오 코딩 표준은, 주로, 잘 알려진 ITU T 및 ISO/IEC 표준의 개발을 통해 발전해 왔다. ITU-T는 H.261 및 H.263을 만들었으며, ISO/IEC는 MPEG-1 및 MPEG-4 Visual을 만들었고, 두 조직은 H.262/MPEG-2 비디오, H.264/MPEG-4 AVC(Advanced Video Coding) 및 H.265/HEVC 표준을 공동으로 만들었다. H.262 이후로, 비디오 코딩 표준은 시간적 예측(temporal prediction)과 변환 코딩(transform coding)을 함께 이용하는 하이브리드 비디오 코딩 구조를 기반으로 한다. HEVC를 넘어 미래의 비디오 코딩 기술을 탐구하기 위하여, 2015년에 VCEG와 MPEG에 의하여 JVET(Joint Video Exploration Team)가 공동으로 설립되었다. 그 이후로 JVET에 의해 많은 새로운 방법들이 채택되었고, JEM(Joint Exploration Model)이라는 참조 소프트웨어에 포함되었다. 2018년 4월, VCEG(Q6/16)와 ISO/IEC JTC1 SC29/WG11(MPEG) 간의 JVET(Joint Video Exploration Team)가, HEVC에 비해 50% 비트레이트(bitrate)를 감소하는 것을 목적으로 하는 VVC 표준을 위해, 만들어졌다.
AVC 및 HEVC는, IDR 또는 IRAP(intra random access point) 픽처를 도입하지 않고, 해상도를 변경할 수 없다. 이러한 기능은, 적응적 해상도 변경(ARC: adaptive resolution change)으로 참조된다. 아래의 설명을 포함하여, ARC 특징의 이점을 누릴 수 있는 사용 사례들(use cases) 또는 응용 시나리오들(application scenarios)이 있다.
- 비디오 전화 및 회의에서의 속도 적응(rate adaptation) : 변화하는 네트워크 조건에 코딩된 비디오를 적용하기 위하여, 네트워크 조건이 악화되어 사용 가능한 대역폭이 낮아지는 경우, 인코더가 더 작은 해상도의 픽처를 인코딩함으로써, 이에 적응할 수 있다. 현재 픽처 해상도를 변경하는 것은 IRAP 픽처 후에만 수행할 수 있다. 이것은 몇 가지 문제가 있다. 합리적인 품질의 IRAP 픽처는 인터-코딩된 픽처(inter-coded picture)보다 훨씬 크고, 따라서 디코딩하기가 훨씬 더 복잡해진다. 이는 시간과 자원을 소모하게 한다. 이는 로딩을 이유로 디코더에 의하여 해상도 변경이 요청된 경우 문제가 된다. 이는, 또한, 저-지연 버퍼 조건(low-latency buffer conditions)을 어기고, 오디오 재동기화(audio re-sync)를 강요하고, 스트림의 종단 간 지연(end-to-end delay)을 적어도 일시적으로 증가시킬 수 있다. 이렇게 되면, 사용자 환경이 저하될 수 있다.
- 다자간 화상 회의에서의 활성 화자(active speaker)의 변경: 다자간 화상 회의의 경우 활성 화자가 나머지 컨퍼런스 참가자의 비디오보다 더 큰 비디오 크기로 표시되는 것이 일반적이다. 활성 화자가 변경되면 각 참가자의 픽처 해상도도 조정해야 할 수 있다. 활성 화자의 이러한 변경이 자주 발생할 때 ARC 기능을 사용하는 것이 더욱 중요해진다.
- 스트리밍에서의 빠른 시작(fast start) : 스트리밍 애플리케이션(application)의 경우, 표시를 시작하기 전에, 애플리케이션이 어떤 길이의 디코딩된 픽처까지 버퍼링하는 것이 일반적이다. 더 작은 해상도를 가진 비트스트림을 시작하면, 애플리케이션은 버퍼에 충분한 픽처를 가질 수 있도록 하고, 표시를 더 빠르게 할 수 있다.
- 스트리밍에서의 적응 스트림 전환(adaptive stream switching): HTTP(DASH) 사양에서의 동적 적응 스트리밍(Dynamic Adaptive Streaming)에는 @mediaStreamStructureId라는 기능이 포함되어 있다. 이를 통해, HEVC 내 연관된 RASL 픽처를 가진 CRA 픽처와 같이, 디코딩 불가능한 리딩 픽처(non-decodable leading pictures)로, 오픈 GOP 랜덤 액세스 포인트(open-GOP random access points)에서 상이한 표현들을 전환(switch)할 수 있다. 동일한 비디오의 두 가지 표현이 서로 다른 비트레이트를 가지지만, 동일한 공간적 해상도(spatial resolution)를 가지고, 동일한 @mediaStreamStructureId의 값을 가지는 경우, 연관된 RASL 픽처를 가진 CRA 픽처에서의 2가지 표현들 사이에 전환(switching)이 수행될 수 있고, CRA 픽처에서의 전환과 연관된 RASL 픽처는, 수용가능(acceptable)한 품질로 디코딩될 수 있으므로, 원할한 전환(seamless switching)을 가능하게 한다. ARC를 사용하면, @mediaStreamStructureId 특징은, 상이한 공간적 해상도를 가진 DASH 표현들 사이를 전환하는 데에도 사용할 수 있다.
ARC는 또한 동적 해상도 변환(Dynamic resolution conversion)으로도 알려져 있다.
ARC는 또한, H.263 Annex P와 같은 RPR(Reference Picture Resampling)의 특별한 사례로 간주될 수 있다.
1.1. H.263 Annex P에서 참조 픽처 리샘플링(Reference Picture Resampling)
이 모드는, 예측에 사용하기 전에 참조 픽처(reference picture)를 워크(warp)하는 알고리즘을 설명한다. 이는, 예측되는 픽처와 다른 소스 형식을 갖는 참조 픽처를 샘플링하는 데 유용할 수 있다. 또한, 참조 픽처의 모양(shape), 크기(size) 및 위치(location)를 워프(warp)함으로써, 글로벌 모션 추정(global motion estimation) 또는 회전 모션(rotation motion)의 추정에 사용할 수 있다. 구문은, 리샘플링 알고리즘에 사용될 수 있는 워프 파라미터(warping parameters)를 또한 포함한다. 참조 픽처 리샘플링 모드를 위한 가장 간단한 동작 수준은, FIR 필터가 업샘플링 및 다운샘플링 프로세스에 적용될 필요가 있으므로, 4 리샘플링의 암시적 팩터(implicit factor of 4 resampling)이다. 이 경우, 새 픽처의 크기가 이전 픽처의 크기(픽처 헤더에 지시됨)가 이전 픽처의 크기와 상이할 때 그 사용이 이해되므로, 추가적인 신호 오버헤드가 요구되지 않는다.
1.2. ARC에서 VVC에 대한 기여(Contribution on ARC to VVC)
1.2.1. JVET-M0135
아래에 설명된 ARC의 예비 설계는, 일부는 JCTVC-F158에서 가져온 것이고, 설명을 시작하기 위한 것으로 제안된다.
1.2.1.1 기본 도구에 대한 설명(Description of basic tools)
ARC를 지원하기 위한 기본 도구 제약조건(basic tools constraints)은 다음과 같다.
공간적 해상도(spatial resolution)는, 두 차원 모두에 적용되는, 계수 0.5에 의해, 명목 해상도(nominal resolution)와 다를 수 있다. 공간적 해상도는, 증가 또는 감소할 수 있으며, 0.5 및 2.0의 스케일링 비율(scaling ratios)을 산출한다.
비디오 형식의 비율들(aspect ratios)과 크로마 형식(chroma format)은 변경되지 않는다.
자르기 영역(cropping areas)은 공간적 해상도에 비례하여 스케일(배율조정)(scale)된다.
참조 픽처은, 필요에 따라 단순히 다시 리스케일(re-scale)되고, 인터 예측(inter prediction)은 평소와 같이 적용된다.
1.2.1.2 스케일링 작업(scaling operations)
간단한 제로위상 분리가능 다운 및 업 스케일링 필터(zero-phase separable down- and up-scaling filters)를 사용하는 것이 제안된다. 이러한 필터는, 예측만을 위한 것이다. 디코더는, 출력을 위해 보다 정교한 스케일링(크기조정)을 사용할 수 있다.
아래의 1:2 다운 스케일링 필터(down-scaling filter)가 사용되며, 이 필터는, 제로 위상(zero-phase)과 5개의 탭(tap)을 가진다.
( -1, 9, 16, 9, -1 ) / 32
다운 샘플링 점(down-sampling points)은, 짝수 샘플 위치(even sample positions)에 있고, 코-사이트(co-sited)된다. 동일한 필터는 루마와 크로마에 사용된다.
2:1 업 샘플링을 위하여, 최신 VVC WD에서 하프-펠 모션 보정 보간 필터 계수(half-pel motion compensation interpolation filter coefficients)를 사용하여, 홀수 그리드 위치(odd grid positions)에서 추가적인 샘플들이 생성된다.
결합된 업/다운 샘플링은, 크로마 샘플링 점들의 위치나 위상을 변경하지 않는다.
1.2.1.3 파라미터 세트의 해상도 설명(Resolution description in parameter set)
SPS의 픽처 해상도의 신호은, 아래 설명과 본 문서의 나머지 부분에서 이중 괄호로 표시된 삭제(예: [[a]]는 문자 "a"의 삭제를 나타낸다)에 따라 변경된다.
시퀀스 파라미터 세트 RBSP 구문 및 의미체계(Sequence parameter set RBSP syntax and semantics)
[[ pic_width_in_luma_samples는, 루마 샘플들(luma samples)의 단위에서 각 디코딩된 픽처의 폭(width)을 지정한다. pic_width_in_luma_samples는 0은 아니며, MinCbSizeY의 정수배(interger multiple)이다.
pic_height_in_luma_samples는, 루마 샘플들(luma samples)의 단위에서 각 디코딩된 픽처의 높이(height)를 지정한다. pic_height_in_luma_samples는 0은 아니며, MinCbSizeY의 정수배(interger multiple)이다. ]]
num_pic_size_in_luma_samples_minus1 플러스 1은, 코딩된 비디오 시퀀스에 존재할 수 있는 루마 샘플들의 단위에서 픽처 크기(폭 및 높이)의 수를 지정한다.
pic_width_in_luma_samples[i]는, 코딩된 비디오 시퀀스에 존재할 수 있는 루마 샘플들의 단위에서 디코딩된 픽처의 i-번째 폭(width)을 지정한다. pic_width_in_luma_samples[i]는, 0은 아니며, MinCbSizeY의 정수배(interger multiple)이다.
pic_height_in_luma_samples[i]는, 코딩된 비디오 시퀀스에 존재할 수 있는 루마 샘플들의 단위에서 디코딩된 픽처의 i-번째 높이(height)을 지정한다. pic_height_in_luma_samples[i]는, 0은 아니며, MinCbSizeY의 정수배(interger multiple)이다.
픽처 파라미터 세트 RBSP 구문 및 의미체계(Picture parameter set RBSP syntax and semantics)
pic_size_idx는 시퀀스 파라미터 세트에서 i-번째 픽처 크기에 대한 인덱스를 지정한다. 픽처 파라미터 세트을 참조하는 픽처의 폭은, 루마 샘플들에서 pic_width_in_luma_samples[pic_size_idx]이다. 마찬가지로, 픽처 파라미터 세트을 참조하는 픽처의 높이는, 루마 샘플들에서 pic_height_in_luma_samples[pic_size_idx]이다.
1.2.2. JVET-M0259
1.2.2.1. 배경: 서브-픽처(sub-pictures)
서브-픽처 트랙(sub-picture track)이라는 용어는 OMAF(Omnidirectional Media Format)에서 다음과 같이 정의된다. 이는, 다른 트랙과의 공간적 관계(spatial relationship)와 관련되고, 콘텐츠 제작 측에서 비디오를 인코딩하기 전에 공간적 서브세트(spatial subsets)로 분할(split)되는 원본 비디오 콘텐츠의 공간적 서브세트를 나타내는 트랙이다. HEVC에 대한 서브-픽처 트랙은, 모션 제한 타일 세트(motion-constrained tile set)에 대한 파라미터 세트 및 슬라이스 세그먼트 헤더를 다시 작성(rewrite)함으로써, 구성될 수 있고, 이에 따라 자립형 HEVC 비트스트림(self-standing HEVC bitstream)이 될 수 있다. 서브-픽처 표현은, 서브-픽처 트랙을 전달하는 DASH 표현으로 정의될 수 있다.
JVET-M0261은, 서브-픽처이라는 용어를 VVC를 위한 공간적 분할(spatial partioning)로 사용하고, 아래와 같이 요약할 수 있다.
1. 픽처는, 서브-픽처(sub-pictures), 타일 그룹(tile groups) 및 타일(tiles)로 나뉜다.
2. 서브-픽처는, tile_group_address가 0인 타일 그룹으로 시작하는 타일 그룹들의 직사각형 세트(rectangular set)이다.
3. 각 서브-픽처는, 자신의 PPS를 참조할 수 있으며, 따라서 자신의 타일 분할(tile partitioning)을 가질 수 있다.
4. 서브-픽처은, 디코딩 프로세스에서 픽처처럼 취급된다.
5. 서브-픽처를 디코딩하기 위한 참조 픽처은, 디코딩된 픽처 버퍼에서 참조 픽처로부터 현재 서브-픽처와 콜로케이팅(collocating)하는 영역을 추출함으로써, 생성된다. 추출된 영역은, 디코딩된 서브-픽처여야 한다. 즉, 픽처 내에서 동일한 크기와 동일한 위치의 서브-픽처들 간에 인터 예측(inter prediction)이 이루어진다.
6. 타일 그룹은 서브-픽처의 타일 래스터 스캔(tile raster scan)의 타일 시퀀스(sequence of tiles)이다.
여기에서, 서브-픽처라는 용어는, JVET-M0261에 정의된 대로 참조한다. 그러나, JVET-M0261에 정의된 서브-픽처 시퀀스를 캡슐화하는 트랙은, OMAF에 정의된 서브-픽처 트랙과 매우 유사한 특성을 가지며, 아래에 주어진 예들은 두 경우에 모두 적용된다.
1.2.2.2. 사용예들(Use cases)
1.2.2.2.1. 스트리밍에서의 적응적 해상도 변경(Adaptive resolution change in streaming)
적응 스트리밍의 지원을 위한 요구사항(Requirement for the support of adaptive streaming)
MPEG N17074의 섹션 5.13("Support for Adaptive Streaming")에는 VVC에 대한 다음과 같은 요구사항이 포함되어 있다.
이 표준은, 각각이 상이한 속성(예를 들어, 공간적 해상도(spatial resolution) 또는 샘플 비트 깊이(sample bit depth))을 갖는, 동일한 콘텐츠의 여러 표현들(representations)을 제공하는 적응적 스트리밍 서비스의 경우, 빠른 표현 전환(representation swithcing)을 지원해야 한다. 이 표준은, 상이한 공간적 해상도와 같은 상이한 속성들의 표현들 간의 빠르고 원할한(seamless) 표현 전환을 손상하지 않으면서, 효율적인 예측 구조(예를 들어, 소위 공개 픽처 그룹들(open groups of pictures))를 제공하여야 한다.
표현 전환을 가진 개방형 GOP 예측 구조의 예(Example of the open GOP prediction structure with representation switching)
적응 비트레이트 스트리밍(adaptive bitrate streaming)을 위한 콘텐츠 생성은, 상이한 공간적 해상도를 가질 수 있는 상이한 표현들의 생성을 포함한다. 클라이언트는, 상기 표현들의 세그먼트들을 요청하고, 따라서 어떤 해상도와 비트레이트에서 콘텐츠가 수신되는지 결정할 수 있다. 클라이언트에서 상이한 표현들의 세그먼트들은, 연접(concatenate)되고, 디코딩되고, 재생(play)된다. 클라이언트는 하나의 디코더 인스턴스로 원활한 재생을 달성할 수 있어야 한다. 폐쇄된 GOP 구조(closed GOP structures)(IDR 픽처로 시작)가, 도에 도시된 바와 같이, 통상적으로 사용된다.
개방형 GOP 예측 구조(open GOP prediction structures)(CRA 픽처부터 시작)는, 대응하는 폐쇄형 GOP 예측 구조보다 더 나은 압축 성능을 가능하게 한다. 예를 들어, 24 픽처들의 IRAP 픽처 간격(picture interval)에서, 루마 브존태거드 델타 비트레이트(luma Bjontegaard delta bitrate)로 보면, 평균 5.6%의 비트레이트 감소가 달성된다.
개방형 GOP 예측 구조는 주관적으로 보이는 품질의 펌핑(quality pumping)도 감소시키는 것으로 보고된다.
스트리밍에서 개방형 GOP를 사용하는 데 있어서의 어려운 점(challenge)은, 표현을 전환(switching)한 후, 올바른 참조 픽처로 RASL 픽처를 디코딩할 수 없다는 것이다. 도 2에 도시된 표현들을 참조하여, 아래에서 이러한 어려운 점을 설명한다.
CRA 픽처로 시작하는 세그먼트는, 적어도 하나의 참조 픽처가 이전 세그먼트에 있는 RASL 픽처를 포함한다. 이는, 도 3에 설명되어 있다. 여기에서, 2개의 비트스트림들의 픽처 0은 이전 세그먼트에 위치하고, RASL 픽처를 예측하기 위한 참조로 사용된다.
도 2에서 파선 사각형으로 표시된 표현 전환이 도 4에서 설명된다. RASL 픽처에 대한 참조 픽처("픽처 0")가 디코딩되지 않은 것을 볼 수 있다. 따라서 RASL 픽처은 디코딩될 수 없으며, 비디오 재생에 갭(gap)이 있다.
그러나, 본 발명의 실시예들에 의해 설명된 바와 같이, 리샘플링된 참조 픽처들로 RASL 픽처를 디코드하는 것이 주관적으로 허용가능한 것으로 밝혀졌다. "픽처 0"의 재샘플링 및 RASL 픽처를 디코딩하기 위하여 이를 참조 픽처로 사용하는 것은 도 5에 도시된다.
1.2.2.2.2. 영역별 혼합 해상도(RWMR) 360° 비디오 스트리밍의 뷰포트 변경(Viewport change in region-wise mixed resolution (RWMR) 360° video streaming)
배경: HEVC 기반 RWMR 스트리밍(Background: HEVC-based RWMR streaming)
RWMR 360° 스트리밍은, 도 6에 도시된 바와 같이, 뷰포트를 포함하는 타일이, "4K" 디코딩 능력(HEVC Level 5.1)을 가지고, 6K (6144x3072) ERP 픽처 또는 동등한 CMP 해상도로부터 유래하는, 뷰표트 스킴에 대하여 증가되고 효율적인 공간적 해상도를 제공하며, 이는 OMAF의 D.6.3 및 D.6.4 항목에 포함되어 있고, 이는 VR 산업 포럼 가이드라인(VR Industry Forum Guidelines)에도 채택되어 있다. 이러한 해상도는, 쿼드 HD(2560Х1440) 디스플레이 패널을 사용하는 헤드 마운트 디스플레이에 적합하다고 주장된다.
인코딩(encoding): 콘텐츠는, 각각, 큐브 페이스 크기(cube face size) 1536Х1536 및 768Х768로, 2개의 공간적 해상도로 인코딩된다. 2개의 비트스트림들 모두에서 6Х4 타일 그리드가 사용되고, 모션 제한 타일 세트(MCTS: motion-contrained tile set)는 각 타일 위치에 대해 코딩된다.
캡슐화(encapsulation): 각 MCTS 시퀀스는 서브-픽처 트랙으로 캡슐화되고, DASH로 서브-픽처 표현으로 이용가능하게 제공된다.
스트리밍 된 MCTS의 선택(selection of streamed MCTSs): 고해상도 비트스트림으로부터 12개의 MCTS가 선택되고, 저해상도 비트스트림으로부터 보상 12개의 MCTS(complementary 12 MCTSs)가 추출된다. 따라서, 스트리밍된 콘텐츠의 반구(hemi-sphere)(180°Х180°)는 고해상도 비트스트림으로부터 유래한다.
MCTS를 디코딩할 비트스트림으로 병합(merging MCTSs to a bitstream to be decoded): 단일 시간 인스턴스(single time instance)의 수신된 MCTS는, HEVC 레벨 5.1을 준수(conform)하는 1920Х4608의 코딩된 픽처로 병합(merge)된다. 병합된 픽처의 또 다른 옵션은, 폭 768의 4개의 타일 열(tile columns), 폭 384의 2개의 타일 열, 높이 768의 3개의 타일 행(tile rows) 루마 샘플들이고, 그 결과 3840x2304루마 샘플들의 픽처가 생성된다.
배경: 뷰포트 의존 360° 스트리밍을 위한 상이한 IRAP 간격들의 여러 표현들(Background: several representations of different IRAP intervals for viewport-dependent 360°streaming)
HEVC 기반 뷰포트 의존 360° 스트리밍에의 보기 방향(viewing orientation)이 변경(change)될 때, 서브-픽처 표현들의 새로운 선택은, 다음의 IRAP 정렬 세그먼트 경계(next IRAP aligned Segment boundary)에서 영향을 미칠 수 있다. 서브-픽처 표현들은 디코딩을 위해 코딩된 픽처에 병합되고, 따라서 VCL NAL 단위 유형들은 모든 선택된 서브-픽처 표현들에 정렬(align)된다.
보기 방향 변경(viewing orientation changes)에 반응하는 응답 시간 및 상기 보기 방향이 안정화되었을 때의 속도-왜곡(rate-distortion) 간의 트레이드-오프(trade-off)를 제공하기 위하여, 콘텐트의 다양한 버전들이 다른 IRAP 간결들(intervals)로 코딩될 수 있다. 이는, 도 6에 제공된 인코딩을 위한 동일위치 서브-픽처 표현들(collocated sub-picture Representation)의 한 세트에 대하여, 도 7에 설명된다.
도 8은, 서브-픽처 위치가, 낮은 해상도(384x384)로 수신되도록 먼저 선택된 예를 도시한다. 보기 방향(viewing orientation)의 변경은, 서브-픽처 위치가 더 높은 해상도(768x768)에서 수신되도록 새로 선택되게 할 수 있다. 이 예제에서는 보기 방향 변경이 일어나고, 짧은-IRAP-간격 서브-픽처 표현들(short-IRAP-interval sub-picture Representations)로부터 세그먼트 4가 수신된다. 그 다음, 보기 방향(viewing orientation)은 안정화되고, 긴-IRAP-간격 버전(long-IRAP-interval version)이 세그먼트 5로부터 시작하여 계속 사용될 수 있다.
문제 설명(Problem statement)
일반적인 보기 상황에서 보기 방향은 점진적으로 이동하기 때문에, 해상도는, RWMR 뷰포트-의존 스트리밍의 서브-픽처 위치들의 서브세트(subset)에서만 변경된다. 도 9는 도 6으로부터 약간 위쪽으로 오른쪽 큐브 면을 향하는 보기 방향 변경(viewing orientation change)을 도시한다. 이전과 상이한 해상도를 가지는 큐브 면 파티션(cube face partitions)은 "C"로 지시된다. 24개의 큐브 면 파티션들 중 6개에서 해상도가 변경된 것을 관찰할 수 있다. 그러나, 위에서 설명한 바와 같이, IRAP 픽처로 시작하는 세그먼트는, 보기 방향 변경에 대한 응답으로, 모든 24개 큐브 면 파티션에 대해 수신될 필요가 있다. IRAP 픽처로 시작하는 세그먼트로 모든 서브-픽처 위치를 갱신(update)하는 것은, 스트리밍 속도-왜곡 성능(streaming rate-distortion performance) 측면에서 비효율적이다.
또한, RWMR 360° 스트리밍의 서브-픽처 표현과 함께 개방형 GOP 예측 구조를 사용하는 기능은, 속도-왜곡 성능(rate-distortion performance)을 개선하고, 폐쇄형 GOP 예측 구조로 인한 시각 픽처 품질 펌핑(visible picture quality pumping)을 방지하는 데 바람직한다.
제안된 설계 목표(Proposed Design Goals)
다음의 설계 목표가 제안된다.
1. VVC 설계는, 랜덤-액세스 픽처(random-access picture)로부터 비롯된(originate) 서브-픽처와 비 랜덤-액세스 픽처(non random-access picture)로부터 비롯된(originate) 다른 서브-픽처를, VVC를 준수(conform)하는 동일한 코딩된 픽처로 병합(merge)하는 것을 허용해야 한다.
2. VVC 설계는, 서브-픽처 표현들을 하나의 VVC 비트스트림으로 병합할 수 있도록 하면서도, 상이한 공간 해상도와 같은 다양한 속성들의 서브-픽처 표현 사이의 빠르고 원활한 표현 전환 능력을 손상시키지 않으면서, 서브-픽처 표현들에서 개방형 GOP 예측 구조를 사용할 수 있도록 해야 한다.
이 설계 목표는, 두 개의 서브-픽처 위치에 대한 서브-픽처 표현들이 제공되는 FIG 10에서 설명될 수 있다. 두 서브-픽처 위치들에 대해, 두 개의 해상도와 두 개의 랜덤 액세스 간격 중의 각 조합에 대해 별도의 버전(separate version)의 콘텐츠가 코딩된다. 일부 세그먼트는, 개방형 GOP 예측 구조로 시작한다. 보기 방향 변경으로 인해, 세그먼트 4의 시작 부분에서, 서브-픽처 위치 1의 해상도가 전환된다. 세그먼트 4는 RASL 픽처와 관련된 CRA 픽처로 시작하기 때문에, 세그먼트 3에 있는 RASL 픽처의 참조 픽처들은 리샘플링(resample)되어야 한다. 디코딩된 다른 서브-픽처 위치들이 리샘플링되지 않는 동안, 이 리샘플링은 서브-픽처 위치 1에 적용된다. 이 예에서, 보기 방향 변경(viewing orientation change)은 서브-픽처 위치 2의 해상도에 변화를 일으키지 않고, 따라서 서브-픽처 위치 2의 디코딩된 서브-픽처가 리샘플링되지 않는다. 세그먼트 4의 첫 번째 픽처에서, 서브-픽처 위치 1에 대한 세그먼트는 CRA 픽처로부터 유래한 서브-픽처를 포함하고, 서브-픽처 위치 2에 대한 세그먼트는 비 랜덤 액세스 픽처(non-random-access picture)로부터 비롯된 서브-픽처를 포함한다. VVC에서는 이러한 서브-픽처들을 코딩된 픽처(coded picture)로 병합할 수 있다.
1.2.2.2.3. 화상 회의의 적응적 해상도 변경(Adaptive resolution change in video conferencing)
JCTVC-F158은 주로 화상 회의를 위한 적응적 해상도 변경을 제안했다. 다음의 서브-섹션은 JCTVC-F158로부터 복사된 것이며, 적응적 해상도 변경이 유용하다고 주장하는 사용 사례를 제시한다.
원활한 네트워크 적응 및 오류 복원력(Seamless network adaption and error resilience)
패킷 네트워크를 통한 화상 회의 및 스트리밍과 같은 응용은, 종종, 특히 비트 전송률이 너무 높고 데이터가 손실되는 경우, 인코딩된 스트림이 변화하는 네트워크 조건에 적응해야 한다는 것을 요구한다. 이러한 응용은, 일반적으로, 인코더가 오류를 감지하고 조정을 수행할 수 있는 반환 채널(return channel)이 있다. 인코더에는, 시간적 또는 공간적으로, 해상도 변경 및 비트 속도 감소라는 두 가지 주요 도구가 있다. 계층적 예측 구조를 사용하여 코딩함으로써, 시간적 해상도 변경을 효과적으로 달성할 수 있다. 그러나, 최상 품질의 공간적 해상도 변경을 위하여, 비디오 통신을 위해 잘 설계된 인코더뿐 아니라 변경이 필요하다.
AVC 내에서 공간적 해상도(spatial resolution)를 변경하는 것은, IDR 프레임을 송신하고, 스트림을 리셋(reset)하는 것을 요구한다. 이로 인해 심각한 문제가 발생한다. 합리적인 품질의 IDR 프레임은 인터 픽처보다 훨씬 크고, 따라서 디코딩하기가 더 복잡한다. 이는 시간과 자원을 필요로 한다. 이는, 로딩 이유로 디코더에 의하여 해상도 변경이 요구될 때, 문제가 된다. 또한, 이는, 저-지연 버퍼 조건(low-latency buffer conditions)을 어길 수 있고, 오디오 재동기화(audio re-sync)를 강제하고, 스트림의 종단 간 지연(end-to-end delay)을 적어도 일시적으로 증가시킬 수 있다. 이렇게 하면, 사용자 경험이 저하된다.
이러한 문제를을 최소화하기 위해, IDR은, 일반적으로, P 프레임과 비슷한 수의 비트를 사용하여 낮은 품질로 전송되고, 주어진 해상도에 대한 최대 품질(full quality)로 되돌리는 데 상당한 시간이 걸린다다. 낮은 충분한 지연을 얻기 위해, 실제로 품질은 매우 낮을 수 있으며, 이미지가 "리포커싱(refocsed)"되기 전 눈에 보이는 흐림(blurring)이 종종 발생한다. 실제로, 인트라 프레임은 압축 측면에서 거의 유용하지 않은 작업을 수행하고, 이는 단지 스트림을 재시작(re-starting)하는 방법이다.
따라서, 특히 까다로운 네트워크 조건에서, 주관적인 경험에 미치는 영향을 최소화하면서, 해상도를 변경할 수 있는 HEVC 내 방법들에 대한 요구가 있다.
빠른 시작(Fast start)
시작할 때 수용하기 어려운 이미지 흐림(image blurring) 없이 더 빠르게 정상 품질을 얻고 지연을 줄이기 위하여, 첫 번째 프레임을 감소된 해상도(reduced resolution)로 전송하고, 다음 몇 프레임들에 걸쳐 해상도를 증가시키는 "빠른 시작" 모드를 가지는 것이 유용할 수 있다.
회의 "구성"(Conference "compose")
화상 회의(video conferences)에서는, 종종, 말하는 사람은 전체 화면으로 표시되고, 다른 참가자들은 더 작은 해상도 창들에 표시되는 기능이 있다. 이를 효율적으로 지원하기 위하여, 이 작은 픽처들은 종종 더 낮은 해상도로 전송된다. 그 다음, 참가자가 발표자(speaker)가 되면, 이 해상도는 증가되고, 전체 화면이 된다. 이 시점에서 인트라 프레임(intra frame)을 보내는 것은, 비디오 스트림에서 바람직하지 않은 히컵(hiccup)을 발생시킨다. 만약, 발표자가 빠르게 교대된다면, 이 효과는 매우 눈에 띄고 불쾌해진다.
1.2.2.3. 제안된 설계 목표(Proposed design goals)
다음은, VVC 버전 1에 대해 제안된 상위 레벨의 설계 선택(high-level design choices)이다.
1. 아래의 사용 사례들을 위하여, VVC 버전 1에 참조 픽처 리샘플링 프로세스를 포함하도록 제안된다.
- 다른 공간적 해상도와 같은 다른 속성들의 표현들 사이의 빠르고 원활한 표현 전환 기능을 손상시키지 않고, 적응 스트리밍(adaptive streaming)에서 효율적인 예측 구조(예: 소위 픽처의 오픈 그룹(open groups of pictures))의 사용.
- 심각한 지연 또는 지연 변화 없이, 저-지연 대화 비디오 콘텐츠를 네트워크 조건들 및 응용-유래 해상도 변화에 조정
2. VVC 설계는, 랜덤 액세스 픽처로부터 유래(originate)한 서브-픽처와 비 랜덤 액세스 픽처로부터 유래한 서브-픽처를, VVC를 준수(conform)하는 동일한 코딩된 픽처로 병합(merge)하는 것을 허용하도록 제안된다. 이는, 혼합 품질(mixed-quality) 및 혼합 해상도 뷰포트 적응 360° 스트리밍(mixed-resolution viewport-adaptive 360° streaming)에서의 보기 방향 변화를 효율적으로 처리할 수 있도록 하기 위한 것이다.
3. VVC 버전 1에 서브-픽처 별 리샘플링 프로세스(sub-picture-wise resampling process)를 포함하는 것이 제안된다. 이는, 혼합 해상도 뷰포트-적응 360° 스트리밍에서 보기 방향 변화를 보다 효율적으로 처리하기 위한 효율적 예측 구조를 가능하게 하기 위한 것이다.
1.2.3. JVET-N0048
적응적 해상도 변경(ARC: adaptive resolution changing)에 대한 사용 사례 및 설계 목표는, JVET-M0259에 자세히 설명되었다. 요약은 다음과 같다.
1. 실시간 통신(Real-time communication)
적응적 해상도 변경을 위한 다음 사용 사례는 원래 JCTVC-F158에 포함되었다.
a. (동적 적응적 해상도 변경을 통한) 원활한 네트워크 적응(seamless network adaption) 및 오류 복원력(error resilience)
b. 빠른 시작(세션 시작 또는 리셋시 해상도의 점진적 증가)
c. 회의 "구성(compose)" (말하는 사람은 더 높은 해상도 부여)
2. 적응 스트리밍(Adaptive streaming)
MPEG N17074의 섹션 5.13("Support for Adaptive Streaming")는 VVC에 대한 다음과 같은 요구사항을 포함한다.
이 표준은, 각각 상이한 속성들(예: 공간적 해상도 또는 샘플 비트 깊이)을 갖는, 다양한 표현들을 제공하는 적응적 스트리밍 서비스의 경우에 있어서, 빠른 표현 전환을 지원해야 한다. 이 표준은, 상이한 공간적 해상도와 같은 상이한 속성들의 표현들 사이의 빠르고 원활한 표현 전환 기능을 손상시키지 않으면서, 효율적인 예측 구조(예: 소위 픽처의 공개 그룹(open groups of pictures))를 사용할 수 있도록 해야 한다.
JVET-M0259는, 주요 픽처들(leading pictures)의 참조 픽처들을 리샘플링함으로써 이 요구사항을 충족하는 방법에 대해 설명한다.
3. 360도 뷰포트 의존 스트리밍(360-degree viewport-dependent streaming)
JVET-M0259는, 주요 픽처들의 참조 픽처들의 어떤 독립적으로 코딩된 픽처 영역들을 리샘플링함으로써, 이 사용 사례를 해결하는 방법에 대해 설명한다.
이 기여는, 위의 설계 목표 및 모든 사용 사례들을 충족하는 적응 해상도 코딩 접근 방식을 제안한다. 360도 뷰포트 의존 스트리밍 및 회의 "구성" 사용 사례는, JVET-N0045(독립적인 서브-픽처 레이어를 제안함)와 함께 이 제안에 의해 처리된다.
제안된 사양 텍스트(Proposed specification text)
신호(signaling)
sps_max_rpr
sps_max_rpr은, pic_width_in_luma_samples 또는 pic_width_in_luma_samples와 동일하지 않은 pic_height_in_luma_samples 또는 각각 현재 픽처(current picture)의 pic_height_in_luma_samples을 가지는 CVS 내 임의의 타일 그룹(tile group)에 대한 참조 픽처 리스트(reference picture list) 0 또는 1에서의 활성 참조 픽처들(active reference pictures)의 최대 수를 지정한다.
픽처 폭 및 높이(Picture width and height)
max_width_in_luma_samples는, SPS가 활성(active)인 CVS의 어느 픽처에 대해서도 어떤 활성 PPS에서 pic_width_in_luma_samples이 max_width_in_luma_samples 이하여야 한다는 것이 비트스트림 적합성(bitstream conformance)의 요구사항이라는 것을 지정(specify)한다.
max_height_in_luma_samples은, SPS가 활성(active)인 CVS의 어느 픽처에 대해서도 어떤 활성 PPS에서 pic_heigh_in_luma_samples이 max_heigh_in_luma_samples 이하여야 한다는 것이 비트스트림 적합성(bitstream conformance)의 요구사항이라는 것을 지정(specify)한다.
높은 수준의 디코딩 프로세스(High-level decoding process)
디코딩 프로세스는, 현재 픽처 CurrPic에 대하여 다음과 같이 동작한다.
1. NAL 단위의 디코딩은 8.2 절에 지정된다.
2. 8.3 절의 프로세스는, 상기 및 타일 그룹 헤더 계층(tile group header layer)에서의 구문 요소를 사용하여 다음의 디코딩 프로세스를 지정한다.
- 픽처 오더 수(picture order count)와 관련된 변수 및 함수는, 8.3.1 절에 지정된 대로 얻어진다. 이는, 픽처의 첫 번째 타일 그룹에 대해서만 호출되어야 한다.
- 비-IDR 픽처(non-IDR picture)의 각 타일 그룹에 대한 디코딩 프로세스의 시작에서, 참조 픽처 리스트 0(RefPicList[0]) 및 참조 픽처 리스트 1(RefPicList[ 1])의 획득(derivation)을 위해, 8.3.2절에 지정된 참조 픽처 리스트 구성에 대한 디코딩 프로세스가 호출된다.
- 8.3.3 절에 있는 참조 픽처 마킹(reference picture marking)에 대한 디코딩 프로세스가 호출된다. 참조 픽처는, "참조로 사용되지 않음(unused for reference)" 또는 "장기 참조로 사용됨(used for long-term reference)"으로 마킹(mark)될 수 있다. 이는, 픽처의 첫 번째 타일 그룹에 대해서만 호출되어야 한다.
- pic_width_in_luma_samples 또는 pic_width_in_luma_samples와 동일하지 않은 pic_height_in_luma_samples 또는 각각 CurrPic의 pic_height_in_luma_samples을 가지는 RefPicList[0] 및 RefPicList[1]의 각 활성 참조 픽처에 대해, 아래가 적용된다.
- 동일한 참조 픽처 마킹을 가지는 출력과 픽처 오더 수(picture order count)를 입력으로 가지고 X.Y.Z 절의 리샘플링 프로세스가 호출된다[Ed. (MH): 추가할 호출 파라미터들의 상세 정보]
- 리샘플링 프로세스에 대한 입력으로 사용되는 참조 픽처는 "참조용으로 사용되지 않음(unused for reference)"으로 마킹된다.
3. [Ed. (YK): 여기에, 코딩 트리 유닛들(coding tree units), 스케일링, 변환(transform), 인-루프 필터링(in-loop filtering)을 위한 디코딩 프로세스의 호출을 추가한다.]
4. 현재 픽처의 모든 타일 그룹들이 디코딩된 후, 현재 디코딩된 픽처는 "단기 참조로 사용됨(used for short-term reference)"으로 마킹된다.
리샘플링 프로세스(Resampling process)
SHVC 리샘플링 프로세스(HEVC 절 H.8.1.4.2)는 다음과 같은 추가 사항과 함께 제안된다.
...
만약 sps_ref_wraparound_enabled_flag가 0과 같으면, n = 0...7일 때 샘플 값 tempArray[n]은 다음과 같이 얻어진다.
만약 sps_ref_wraparound_enabled_flag가 0과 같으면, n = 0...3일 때 샘플 값 tempArray[n]은 다음과 같이 얻어진다.
그렇지 않으면, n = 0...3일 때 샘플 값 tempArray[n]은 다음과 같이 얻어진다.
1.2.4. JVET-N0052
적응적 해상도 변경(adaptive resolution change)은, 비디오 압축 표준의 개념으로, 특히, 참조 픽처 리샘플링(PRP: reference picture resampling, Annex P) 및 감소된 해상도 갱신(Reduced Resolution Update)(Annex Q)에 대한 H.263+ 관련 제안들에서, 적어도 1996년부터 있었다. 이것이, 최근에는 어느 정도 유명해졌는데, 먼저 JCT-VC 시기 동안 Cisco에 의해 처음으로 제안되었고, 그 다음에는 VP9에서(이것은 현재 널리 채택되고 있음), 그리고 더 최근에는 VVC에 포함되었다. ARC를 사용하면, 주어진 픽처에 대하여 코딩하는 데 필요한 샘플 수를 줄일 수 있고, 이것이 바람직한 경우, 결과 참조 픽처(resulting reference picture)를 더 높은 해상도로 업샘플링(upsampling)할 수 있다.
우리는 특히 관심 있는 두 가지 시나리오에서 ARC를 고려한다.
1) IDR 픽처와 같은 인트라 코딩된 픽처(Intra coded pictures)는, 종종 인터 픽처(inter pictures)보다 상당히 크다. 이유와 상관없이 인트라 코딩을 의도한 다운샘플링 픽처는, 미래 예측에 더 나은 입력을 제공할 수 있다. 또한, 적어도 저 지연 응용에서 속도 제어 관점에서 분명히 유리하다.
2) 적어도 일부 케이블 및 위성 사업자가 일상적으로 하는 것처럼, 코덱을 한계점(breaking point) 근처에서 동작할 때, ARC는, 하드 트랜지션 지점(hard transition point)이 없는 장면 전환(scene transitions)과 같은, 비-인트라 코딩된 픽처(non-intra coded pictures)에도 유용(handy)할 수 있다.
3) 아마도 너무 앞을 보는 것: 고정 해상도의 개념(fixed resolution)은 일반적으로 방어할 수 있는 것인가? CRT가 출발하고, 렌더링 장치에서 엔진을 스케일링하는 것의 보편성을 통해, 렌더링과 코딩 해상도(coding resolution) 사이의 하드 바인딩(hard binding)은 과거의 일이 되었다. 또한, 활동이 공간적인 것일 때조차도, 많은 활동이 비디오 시퀀스에서 진행될 때, 대부분의 사람들은 세밀한 세부사항들(아마도 고 해상도와 연관된 것들임)에 집중할 수 없다는 것을 제시하는 연구들이 있음을 우리는 주목한다. 이것이 사실이고 일반적으로 받아들여진다면, 미세 세부 해상도 변경(fine granularity resolution changes)은, 적응 QP보다 더 나은 속도(rate) 제어 메커니즘이 될 수 있다. 우리는, 설명을 위해 이 시점에서 이 점을 제시했다, 데이터가 부족하기 때문에 - 아는 사람들의 피드백을 환영한다. 물론, 고정 해상도 비트스트림의 개념(fixed resolution bitstreams)을 멀리 하는 것은, (세부적인 성격은 아니더라도, 적어도 그 존재하는 레벨에서) 우리가 잘 알고 있는 무수한 시스템 계층 및 구현을 가진다.
기술적으로, ARC는 참조 픽처 리샘플링으로 구현할 수 있다. 참조 픽처 리샘플링을 구현하는 것은, 리샘플링 필터 및 비트스트림의 리샘플링 정보의 신호이라는 두 가지 주요 측면이 있다. 이 문서는, 후자에 초점을 맞추고, 전자는 구현에 필요한 범위 내에서만 설명한다. 적합한 필터 설계에 대한 더 많은 연구가 권장된다.
기존 ARC 구현 개요(Overview of an existing ARC implementation)
도 11 및 12는, 각각, 기존의 ARC 인코더/디코더 구현을 도시한다. 구현에 있어서, 픽처 유형에 관계없이, 픽처 그래뉼랠러티(picture granularity) 당 픽처 폭과 높이를 변경할 수 있다. 인코더에서, 입력 이미지 데이터는, 현재 픽처 인코딩에 대해, 선택한 픽처 크기로 다운 샘플링(down-sample)된다. 첫 번째 입력 픽처가 인트라 픽처로 인코딩된 후, 디코딩된 픽처는 DPB(decoded picture buffer)에 저장된다. 결과 픽처(consequent picture)가 상이한 샘플링 비율로 다운 샘플링되고, 인터-픽처로 인코딩되는 때, DPB의 참조 픽처(들)은, 참조의 픽처 크기와 현재 픽처 크기 사이의 공간 비율(spatial ratio)에 따라, 업/다운 스케일(up-/down-scale)된다. 디코더에서, 디코딩된 픽처는 리샘플링 없이 DPB에 저장된다. 그러나, 모션 보정(motion compensation)에 사용될 때, DPB의 참조 픽처는, 현재 디코딩된 픽처와 참조 사이의 공간 비율과 관련하여 업/다운 스케일(up-/down-scale)된다. 디코딩된 픽처는, 디스플레이를 위해 처리될 때, 디코딩된 픽처는, 원래의 픽처 크기 또는 원하는 출력 픽처 크기로 업 샘플링된다. 모션 추정/보상 프로세스(motion estimation/compensation process)에서, 모션 벡터는, 픽처 크기 비율(picture size ratio)뿐 아니라 픽처 오더 수 차이(picture order count difference)와 관련하여 스케일(scale)된다.
ARC 파라미터의 신호(Signaling of ARC parameters)
여기서, ARC 파라미터라는 용어는 ARC를 동작하는 데 필요한 파라미터의 조합으로 사용된다. 가장 쉬운 경우로, 줌 팩터(zoom factor) 또는 정의된 줌 팩터를 가진 테이블에 대한 인덱스일 수 있다. 이는, JVET-M0135에서 제안된 것과 같이, 타겟 해상도(target resolution)를 제공하는 테이블에 대한 인덱스 또는 타겟 해상도(예: 샘플 또는 최대 CU 크기 그래뉼랠러티(CU size granularity))일 수 있다. 또한, 사용 중인 업/다운 샘플링 필터의 필터 파라미터들(필터 계수들까지) 또는 필터 선택기들을 포함할 수 있다.
우리는, 적어도 개념적으로, 픽처의 다른 부분들에 대해 상이한 ARC 파라미터를 허용하는 것을 제안한다. 현재의 VVC 초안에 따라 적절한 구문 구조가 직사각형 타일 그룹(rectangular tile group(TG))이 될 것을 제안한다. 스캔 오더 TGs(scan-order TGs)를 사용하는 사람들은, ARC를 전체 픽처로만 사용하거나 스캔 오더 TG가 직사각형 TG에 포함되는 범위까지 제한된다(우리는 TG 네스팅(TG nesting)이 지금까지 논의된 것을 기억하지 않으며 이는 아마도 나쁜 생각일 것이다). 이는, 비트스트림 제약조건(bitstream constraint)으로 쉽게 지정할 수 있다.
다른 TG들은 다른 ARC 파라미터들을 가지기 때문에, ARC 파라미터에 적합한 위치는, TG 헤더 내이거나 또는 TG의 범위에 있는 파라미터 세트일 수 있고, TG 헤더에 의해 참조될 수 있다. 현재의 VVC 초안에 있는 적응적 파라미터 세트(Adaptation Parameter Set) 또는 상위 파라미터 세트 내 테이블에 대한 더 상세한 참조(인덱스)일 수 있다. 물론, 이러한 세 가지 선택 사항들 중에서, 이 시점에서 우리는, ARC 파라미터들을 포함하는 테이블 항목에 대한 참조를 코딩하기 위해 TG 헤더를 이용하고, (향후) DPS에 코딩될 최대 테이블 값을 가지고 이 테이블은 SPS 내에 위치할 것을 제안한다. 우리는, 어떤 파라미터 세트 값을 사용하지 않고, TG 헤더에 직접 줌 팩터(zoom factor)를 코딩함으로써, 살 수 있다. JVET-M0135에서 제안된 것과 같이, PPS를 참조(reference) 용으로 사용하는 것은, 만약 우리가 하는 것처럼, ARC 파라미터의 타일 그룹 신호이 설계 기준인 경우, 반대-지시(counter-indicated)된다.
테이블 항목(table entries) 자체에 관해서는 다음과 같은 많은 옵션들이 있다.
- X 및 Y 차원에서 2개 차원 중 하나 또는 독립적으로 다운 샘플 팩터(down-sample factors)를 코딩하는지? 이는 대부분 (하드웨어) 구현 문제이며, 일부는, X 차원의 줌 팩터는 상당히 유연하지만 Y 차원에서는 1로 고정되거나 매우 적은 선택을 가지는 결과를 선호할 것이다. 우리는, 이러한 제약조건(constraints)을 표현하기 위한 구문은 잘못된 위치라는 것을 제안한다. 이것들이 바람직한 경우, 우리는, 적합성 요구사항(requirements for conformance)으로 표현된 제약조건을 선호한다. 즉, 구문을 유연하게 유지한다.
- 타겟 해상도 코딩(Coding target resolutions). 이것이 바로 우리가 아래에 제안하는 것이다. 비트스트림 적합성 요구사항(bitstream conformance requirements)에 명시된, 현재 해상도와 관련한 이러한 해상도들에 대한 다소 복잡한 제약조건(constraints)이 있을 수 있다.
- 타일 그룹당 다운 샘플링(down-sampling per tile group)은 픽처 합성/추출(picture composition/extraction)을 허용하는 것이 바람직하다. 그러나, 신호 관점에서 이는 중요하지 않다. 만약 그룹이 ARC를 단지 픽처 그래뉼랠러티(picture granularity)에서만 허용하는 현명하지 않은 결정을 내린다면, 우리는, 모든 TG들이 동일한 ARC 파라미터들을 사용하는 비트스트림 적합성(bitstream conformance)에 대한 요구사항을 항상 포함할 수 있다.
- ARC와 관련된 제어 정보(Control information related to ARC). 아래 설계에서, 이는 참조 픽처 크기(reference picture size)를 포함한다.
- 필터 설계에 유연성이 있어야 하는지? 작은 코드 포인트(codepoints)보다 큰 어떤 것? 그렇다면, APS에 넣나? (아니요, APS 갱신 논의는 다시 하지 않는다. 만약 다운 샘플 필터(down-sample filter)가 변경되고 ALF가 유지되면, 비트스트림이 오버헤드를 먹어야 한다고 제안한다.)
현재, 제안된 기술이 정렬되고 단순하게 유지하되도록 하기 위해, 아래를 제안한다.
- 고정 필터 설계(fixed filter design)
- 비트스트림 제약조건 TBD를 가진 SPS의 테이블에서의 타겟 해상도(target resolution).
- 캡 교환/협상(cap exchange/neotiation)을 용이하게 하기 위한 DPS의 최소/최대 타겟 해상도.
결과 구문은 다음과 같이 보일 수 있다.
디코더 파라미터 세트 RBSP 구문(Decoder parameter set RBSP syntax)
max_pic_width_in_luma_samples은, 비트스트림의 루마 샘플(luma samples)의 단위(unit)로 디코딩된 픽처의 최대 폭(maximum width)를 지정한다. max_pic_width_in_luma_samples는 0이 아니고, MinCbSizeY의 정수배(integer multiple)가 되어야 한다. dec_pic_width_in_luma_samples[i]의 값은 max_pic_width_in_luma_samples의 값보다 클 수 없습니다.
max_pic_height_in_luma_samples은, 비트스트림의 루마 샘플(luma samples)의 단위(unit)로 디코딩된 픽처의 최대 높이(maximum height)를 지정한다. max_pic_height_in_luma_samples는 0이 아니고, MinCbSizeY의 정수배(integer multiple)가 되어야 한다. dec_pic_height_in_luma_samples[i]의 값은 max_pic_height_in_luma_samples의 값보다 클 수 없습니다.
시퀀스 파라미터 세트 RBSP 구문(Sequence parameter set RBSP syntax)
adaptive_pic_resolution_change_flag가 1이라는 것은, 출력 픽처 크기(output_pic_width_in_luma_samples, output_pic_height_in_luma_samples), 디코딩된 픽처 크기의 수의 지시(num_dec_pic_size_in_luma_samples_minus1) 및 적어도 디코딩된 픽처 크기(dec_pic_width_in_luma_samples[i],dec_pic_height_in_luma_samples [i])가 SPS에 존재한다는 것을 지정한다. 참조 픽처 크기(reference_pic_width_in_luma_samples, reference_pic_height_in_luma_samples)는, eference_pic_size_present_flag 값의 조건에 따라 존재한다.
output_pic_width_in_luma_samples는, 루마 샘플들의 단위로 출력 픽처의 폭(width)를 지정한다. output_pic_width_in_luma_samples은 0이 아니어야 한다.
output_pic_height_in_luma_samples는, 루마 샘플들의 단위로 출력 픽처의 높이(height)를 지정한다. output_pic_height_in_luma_samples는 0이 아니어야 한다.
reference_pic_size_present_flag이 1인 것은, reference_pic_width_in_luma_samples와 reference_pic_height_in_luma_samples가 존재한다는 것을 지정한다.
reference_pic_width_in_luma_samples은, 루마 샘플들의 단위로 참조 픽처의 폭(width)을지정한다. output_pic_width_in_luma_samples은 0이 아니어야 한다. 존재하지 않을 경우, reference_pic_width_in_luma_samples의 값은 dec_pic_width_in_luma_samples[i]와 같은 것으로 유추(infer)된다.
reference_pic_height_in_luma_samples는, 루마 샘플들의 단위로 참조 픽처의 높이(height)을지정한다. output_pic_height_in_luma_samples은 0이 아니어야 한다. 존재하지 않을 경우, reference_pic_height_in_luma_samples의 값은 dec_pic_height_in_luma_samples[i]와 같은 것으로 유추(infer)된다.
[NOTE1] 출력 픽처의 크기는, output_pic_width_in_luma_samples 및 output_pic_height_in_luma_samples의 값들과 동일해야 한다. 참조 픽처의 크기는, 참조 픽처가 모션 보정(motion compensation)에 사용될 때, reference_pic_width_in_luma_samples 및 _pic_height_in_luma_samples의 값들과 동일해야 한다.
num_dec_pic_size_in_luma_samples_minus1 더하기 1은, 코딩된 비디오 시퀀스에서 루마 샘플들의 단위로 디코딩된 픽처 크기(dec_pic_width_in_luma_samples[i], dec_pic_height_in_luma_samples[i])의 수를 지정한다.
dec_pic_width_in_luma_samples[i]는, 코딩된 비디오 시퀀스에서 루마 샘플들의 단위로 디코딩된 픽처 크기의 i-번째 폭를 지정한다. dec_pic_width_in_luma_samples[i]는 0이 아니어야 하고, MinCbSizeY의 정수배여야 한다.
dec_pic_height_in_luma_samples[i]는, 코딩된 비디오 시퀀스에서 루마 샘플들의 단위로 디코딩된 픽처 크기의 i-번째 높이를 지정한다. dec_pic_height_in_luma_samples[i]는 0이 아니어야 하고, MinCbSizeY의 정수배여야 한다.
[NOTE2] i-번째 디코딩된 픽처 크기(dec_pic_width_in_luma_samples[i], dec_pic_height_in_luma_samples[i])는, 코딩된 비디오 시퀀스에서 디코딩된 픽처의 디코딩된 픽처 크기와 같을 수 있다.
타일 그룹 헤더 구문(Tile group header syntax)
dec_pic_size_idx는, 디코딩된 픽처의 폭(width)이 pic_width_in_luma_samples[dec_pic_size_idx와 같아야 하고, 디코딩된 픽처의 높이는 pic_height_in_luma_samples[dec_pic_size_idx와 같어야 한다는 것을 지정한다.
필터(filters)
제안된 설계는 개념적으로 4개의 상이한 필터 세트를 포함한다: 원본 픽처로부터 입력 픽처로의 다운 샘플링 필터(down-sampling filter), 모션 추정/보상(motion estimation/compensation)을 위하여 참조 픽처를 리스케일(rescale)하는 업/다운 샘플링 필터(up-/down-sampling filter), 디코딩된 픽처로부터 출력 픽처로의 업 샘플링 필터(up-sampling filter). 첫 번째와 마지막 필터들은, 비규범적인 문제(non-normative matters)로 남을 수 있다. 사양(specification)의 범위에서, 업/다운 샘플링 필터는, 적절한 파라미터 세트 또는 미리 정의된 방식으로 명시적으로 신호(signal)될 필요가 있다.
우리의 구현은 SHVC(SHM ver. 12.4)의 다운 샘플링 필터를 사용한다. 이는, 모션 보정에 사용되는 참조 픽처의 크기를 조정하기 위한 다운-샘플링을 위한 12-탭 2D 분리가능 필터(12-tap and 2D separable filter)이다. 현재의 구현에서는, 다이아딕 샘플링(dyadic sampling)만 지원된다. 따라서, 다운 샘플링 필터의 위상은 디폴트로 0과 동일하게 설정된다. 업 샘플링의 경우, 위상을 시프트하고 원래 위치에 대해 루마 및 크로마 픽셀 위치(luma and chroma pixel positions)를 정렬(align)하기 위해, 8 탭 보간 필터(8-tap interpolation filters)가, 16 위상(16-phases)으로, 사용된다.
표 1 및 표 2는, 루마 업-샘플링 프로세스에 사용되는, p=0...15이고, x=0.7인 8 탭 필터 계수들(8-tap filter coefficients) fL[p,x] 및 크로마 업-샘플링 프로세스에 사용되는, p=0...15이고, x=0.3인 4 탭 필터 계수들(4-tap filter coefficients) fC[p, x]을 제공한다.
표 3은 다운 샘플링 프로세스를 위한 12 탭 필터 계수들(12-tap filter coefficients)을 제공한다. 동일한 필터 계수들이, 다운 샘플링을 위한 루마 및 크로마 모두에 사용된다.
우리는 다른 필터 설계는 실험하지 않았다. 콘텐츠 및/또는 스케일링 팩터(scaling factor)에 적응적(adaptive)인 필터를 사용하는 경우, (아마도 중요한) 주관적이고 객관적인 이득을 기대할 수 있을 것으로 예상된다.
타일 그룹 경계 논의(Tile Group boundary discussion)
타일 그룹 관련 작업에 대해 아마도 그렇겠지만, ARC에 기반한 타일 그룹(TG)에 대하여 구현이 완료되지 않았다. 우리의 선호는, 압축 도메인에서, 복수의 서브-픽처들을 합성된 픽처(composed picture)로 공간 합성 및 추출(spatial composition and extraction)의 논의가 적어도 작업 초안(working draft)을 산출한 다음, 다시 구현을 하는 것이다. 그러나, 이것이, 우리가 결과를 어느 정도 추정하고 이에 따라 신호 설계를 조정하는 것을 막지는 못한다.
현재로서는, 이미 언급된 이유로 위에서 제안한 바와 같이, 타일 그룹 헤더가 dec_pic_size_idx와 같은 것들에 대한 올바른 위치라고 생각한다. 채택된 ARC 파라미터를 나타내기 위해, 타일 그룹 헤더에 조건부로 존재하는 단일 ue(v) 코드포인트(codepoint) dec_pic_size_idx를 사용한다. 픽처당 ARC를 구현하는 우리의 구현과 일치하기 위해, 사양(specification) 공간에서 우리가 당장 해야 할 필요가 있는 단 한 가지는, 단일 타일 그룹(single tile group)만 코딩하거나 또는 주어진 코딩된 픽처의 모든 TG 헤더들이 동일한 dec_pic_size_idx 값을 갖는다는 비트스트림 준수 조건(condition of bitstream compliance)을 만드는 것이다.
파라미터 dec_pic_size_idx는, 서브-픽처를 시작하는 어느 헤더로도 이동할 수 있다. 우리의 현재 느낌은, 계속해서 타일 그룹 헤더가 될 가능성이 가장 높다는 것이다.
이러한 구문적 고려 사항 외에도, 타일 그룹 또는 서브-픽처 기반 ARC를 가능하게 하기 위해서는 몇 가지 추가 작업이 필요한다. 아마도 가장 어려운 부분은, 서브-픽처가 더 낮은 크기로 리샘플링된 픽처에서 불필요한 샘플 문제를 해결하는 것이다.
4개의 서브-픽처으로 구성된(비트스트림 구문에서 4개의 직사각형 타일 그룹으로 표현), 도 13의 오른쪽 부분을 고려한다. 왼쪽에 대해, 오른쪽 하단 TG는 크기의 절반으로 서브샘플링(subsample)된다. "절반(Half)"으로 마킹된 관련된 영역의 외부에 있는 샘플들에 대해 무엇을 할 수 있을까?
일부 기존 비디오 코딩 표준들은, 압축된 도메인의 픽처 부분의 공간 추출(spatial extraction)이 지원되지 않는다는 공통점이 있다. 즉, 픽처의 각 샘플은 하나 이상의 구문 요소(syntax elements)로 표현되고, 각 구문 요소는 적어도 하나의 샘플에 영향을 미친다. 이를 유지하려면, 어떻게든 "절반(Half)"이라고 표시된 다운샘플링된 TG에 의하여 커버(cover)되는 샘플들 주변 영역을 채워야(populate) 한다. H.263+ Annex P는, 패딩에 의해 이 문제를 해결했다. 실제로, 패딩된 샘플들(padded samples)의 샘플 값들은 (어떤 엄격한 제한 내에서) 비트스트림에서 신호(signal)될 수 있다.
이전의 가정(assumptions)으로부터 상당한 벗어나지만, 픽처의 직사각형 부분에 기초하여 서브-비트스트림 추출 (및 구성(composition))을 지원하려는 경우 필요할 수 있는 대안은, 재구성된 픽처(reconstructed picture)의 각 샘플이 코딩된 픽처(coded picture)에서 무언가에 의해 표현되어야 한다는 현재의 인식을 유연하게 해야 한다는 것이다(이 무언가가 단지 스킵된 블록(skipped block)이라고 하더라도).
구현 고려 사항, 시스템 영향 및 프로파일/레벨
우리는 기본 ARC(basic ARC)가 "기준/주(baseline/main)" 프로파일에 포함되는 것을 제안한다. 어떤 응용 시나리오들에서 필요하지 않은 경우, 이를 제거하기 위하여 서브-프로파일링(sub-profiling)이 사용될 수 있다. 어떤 제한은 허용될 수 있다. 이러한 점에서, 우리는 어떤 H.263+ 프로파일들과 "권장 모드(recommended modes)"(프로파일보다 더 오래된(pre-dated))가, "4의 암묵적 요소(implicit factor of 4)", 예를 들어 양 쪽 차원에서의 다이아딕 다운샘플링(dyadic downsampling)로만 사용되도록 Annex P에 대한 제한을 포함하였음에 주목한다. 이는, 화상 회의에서 빠른 시작(I 프레임을 빠르게 획득)을 지원하기에 충분했다.
설계는, 모든 필터링이 "즉석에서(on the fly)" 수행될 수 있으며, 메모리 대역폭을 증가시키지 않는다고, 또는 거의 무시할 정도로만 증가시킨다고 믿는다. 지금까지, 특별한 프로파일(exotic profiles)에 ARC를 펀트(punt)할 필요는 없다.
우리는, JVET-M0135와 함께 마라케시(Marrakech)에서 주장된 바와 같이, 복잡한 테이블과 같은 것들이 기능 교환(capability exchange)에 의미 있게 사용될 수 있다고 생각하지 않는다. 제안-답변(offer-answer) 및 유사한 제한된-깊이 핸드쉐이크(limited-depth handshakes)를 가정하면, 옵션의 수는 단순히 너무 커서 의미 있는 크로스 벤더 인터롭(cross-vendor interop)을 허용하지 않는다. 지금까지, 현실적으로, 기능 교환 시나리오에서 의미 있는 방식으로 ARC를 지원하기 위해, 최대한 인터롭 포인트들(interop points)에 대비(fallback)해야 했다. 예를 들어, 노 ARC(no ARC), 4의 암묵적 요소(implicit factor of 4)를 가진 ARC, 완전 ARC(full ARC). 대안적으로, 모든 ARC에 대해 요구되는 지원을 사양에 포함하고, 비트스트림 복잡성에서의 제한을 더 높은 레벨의 SDO들에게 남길 수 있다. 이는, 우리가 어쨌든 언젠가는 (서브-프로파일링 및 플래그 컨텍스트에서 우리가 이미 한 것 이상으로) 해야 할 전략적 논의이다.
레벨(levels)에 관해서: 우리는 기본 설계 원칙이 있어야 한다고 생각한다. 비트스트림 적합성(bitstream conformance)의 조건으로, 비트스트림에서 얼마나 많은 업샘플링이 신호(signal)되더라도 업샘플링된 픽처의 샘플 수(sample count)는 비트스트림의 레벨에 적합(fit)해야 하고, 모든 샘플들은 업샘플링된 코딩된 픽처(upsampled coded picture)에 적합(fit)해야 한다. 이는 H263+에서는 그렇지 않지만, 어떤 샘플들이 존재하지 않았을 수도 있다.
1.2.5. JVET-N0118
다음 측면들이 제안된다.
1) 픽처 해상도의 리스트(list of picture resolutions)는 SPS에서 신호(signal)되고, 이 리스트에 대한 인덱스는, 개별 픽처의 크기를 지정하기 위하여, PPS에서 신호(signal)된다.
2) 출력할 모든 픽처에 대하여, 리샘플링 전의 디코딩된 픽처는, (필요에 따라) 자르기(crop)되고 출력된다. 즉, 리샘플링된 픽처는 출력을 위한 것이 아니고, 인터 예측 참조(inter prediction reference)만을 위한 것이다.
3) 1.5배 및 2배 리샘플링 비율을 지원한다. 임의의 리샘플링 비율(arbitrary resampling ratio)은 지원하지 않는다. 하나 또는 둘 이상의 다른 리샘플링 비율들에 대한 추가 연구가 필요하다.
4) 픽처 레벨 리샘플링(picture-level resampling)과 블록 레벨 리샘플링(block-level resampling)의 사이에서, 제안자들은 블록 레벨 리샘플링을 선호한다.
a. 그러나, 픽처 수준 리샘플링이 선택되면, 다음과 같은 측면들이 제안된다.
i. 참조 픽처(reference picture)가 리샘플링되면, 리샘플링된 버전 및 참조 픽처의 원래의 리샘플링된 버전 모두 DPB에 저장된다. 따라서, 둘 다 DPB 전체에 영향을 미친다.
ii. 대응하는 리샘플링되지 않은 참조 픽처(un-resampled reference picture)가 "참조로 사용되지 않음(unused for reference)"으로 마킹(mark)되면, 리샘플링된 참조 픽처는, 참조로 사용되지 않음(unused for reference)"으로 마킹(mark)된다.
iii. RPL 신호 구문은 변경되지 않고 유지되며, RPL 구조 프로세스(RPL construction process)는 다음과 같이 수정된다. 참조 픽처가 RPL 항목에 포함되어야 하고 현재 픽처와 동일한 해상도의 참조 픽처의 버전이 DPB에 없는 경우, 픽처 리샘플링 프로세스(picture resampling process)가 호출되고, 해당 참조 픽처의 리샘플링된 버전이 RPL 항목에 포함된다.
iv. DPB에 존재할 수 있는 리샘플링된 참조 픽처의 수는 제한된다. 예를 들어, 2보다 작거나 같도록 제한된다.
b. 그렇지 않으면(블록 레벨 리샘플링이 선택되는 경우) 다음을 제안한다.
i. 최악의 경우의 디코더 복잡성(worst-case decoder complexity)을 제한하기 위해, 현재 픽처와는 다른 해상도를 가진 참조 픽처로부터 블록의 이중-예측(bi-prediction)을 허용하지 않는 것이 제안된다.
ii. 또 다른 옵션은, 리샘플링 및 쿼터 펠 보간(quarter-pel interpolation)을 수행해야 할 때, 두 개의 필터를 결합하고, 이 동작이 한 번에 적용되는 것이다.
5) 픽처 기반 및 블록 기반 리샘플링 접근 방식 중 어느 것이 선택되는지에 상관 없이, 시간적 모션 벡터 스케일링(temporal motion vector scaling)이 필요에 따라 적용될 것을 제안한다.
1.2.5.1. 구현(implementation)
ARC 소프트웨어는, VTM-4.0.1 위에 구현되었으며, 다음과 같은 변경 사항이 있다.
- 지원되는 해상도들의 리스트는 SPS에서 신호(signal)된다.
- 공간적 해상도 신호(spatial resolution signalling)은 SPS로부터 PPS로 이동된다.
- 참조 픽처를 리샘플링하기 위해 픽처 기반 리샘플링 스킴이 구현되었다. 픽처를 디코딩한 후, 재구성된 픽처(reconstructed picture)는, 다른 공간적 해상도로 리샘플링될 수 있다. 원래의 재구성된 픽처(original reconstructed picture) 및 재샘플링된 재구성된 픽처(resampled reconstructed picture)는 모두 DPB에 저장되며, 디코딩 순서대로 미래 픽처들(future pictures)에서 참조할 수 있다.
- 구현된 리샘플링 필터들은, 다음과 같이, JCTVC-H0234에서 테스트한 필터들에 기초한다.
o 업 샘플링 필터(up-sampling filter): 탭 (-4, 54, 16, -2)/64을 가진 4-탭 +/- 쿼퍼-위상 DTIFS(4-tap +/- quarter-phase DCTIF with taps (-4, 54, 16, -2)/64)
o 다운 샘플링 필터(down-sampling filter): 탭 (1, 0, -3, 0, 10, 16, 10, 0, -3, 0, 1)/32을 가진 h11 필터(h11 filter with taps (1, 0, -3, 0, 10, 16, 10, 0, -3, 0, 1)/32)
- 현재 픽처(예: L0 및 L1)의 참조 픽처 리스트들을 생성(construct)할 때, 현재 픽처와 동일한 해상도를 가진 참조 픽처만 사용된다. 참조 픽처은, 원래 크기 또는 리샘플링된 크기 모두에서 사용가능(available)하다.
- TMVP 및 ATVMP가 활성화(enable)될 수 있다. 그러나, 참조 픽처와 현재 픽처의 원래 코딩 해상도(original coding resolutions)가 다른 경우, 해당 참조 픽처에 대해 TMVP 및 ATMVP는 비활성화(disable)된다.
- 시작 소프트웨어 구현(starting-point software implementation)의 편리함과 단순성을 위해, 픽처를 출력할 때, 디코더는 사용가능한 가장 높은 해상도를 출력한다.
1.2.5.2. 픽처 출력 및 픽처 크기의 신호(On signaling of picture sizes and picture output)
1. 비트스트림에서 코딩된 픽처의 공간적 해상도의 리스트
현재 CVS의 모든 코딩된 픽처들은 동일한 해상도를 갖는다. 따라서, SPS에서 하나의 해상도(즉, 픽처 폭 및 높이)로만 신호한다. ARC 지원을 하는 경우, 하나의 해상도 대신 픽처 해상도들의 리스트가 신호(siganl)되어야 하며, 우리는 리스트가 SPS에서 신호(siganl)되고, 개별 픽처의 크기를 지정하기 위해 이 리스트에 대한 인덱스는 PPS에서 신호(signal)될 것을 제안한다.
2. 픽처 출력
우리는, 출력할 모든 픽처에 대하여, 리샘플링 전의 디코딩된 픽처는, (필요에 따라) 자르기(crop)되고 출력될 것을 제안한다. 즉, 리샘플링된 픽처는 출력을 위한 것이 아니고, 인터 예측 참조(inter prediction reference)만을 위한 것이다. ARC 리샘플링 필터는, 인터 예측을 위해 재샘플링된 픽처의 사용을 최적화하도록 설계되어야 하며, 이러한 필터들은 픽처 출력/표시 목적에 최적이 아닐 수 있으며, 비디오 단말 장치는 일반적으로 이미 구현된 최적화된 출력 줌/스케일링 기능을 가지고 있다.
1.2.5.3. 리샘플링
디코딩된 픽처의 리샘플링은, 픽처 기반 또는 블록 기반일 수 있다. VVC의 최종 ARC 설계의 경우, 픽처 기반 리샘플링보다 블록 기반 리샘플링을 선호한다. 이 두 가지 방법을 논의하고, JVET는 VVC에서 ARC 지원을 위해 이 두 가지 중 어느 방법을 지정해야 하는지 결정한다.
픽처 기반 리샘플링(Picture-based resampling)
ARC를 위한 픽처 기반 리샘플링에서, 픽처는, 특정 해상도에 대해 한 번만 리샘플링되고, 그 다음 DPB에 저장된다. 동일한 픽처의 리샘플링되지 않은 버전(un-resampled version)도 DPB에 보관된다.
ARC를 위하여 픽처 기반 리샘플링을 채택하는 데 두 가지 문제가 있다. 1) 리샘플링된 참조 픽처를 저장하기 위해서는 추가 DPB 버퍼가 필요하다. 2) DPB에서 참조 픽처 데이터를 읽고 참조 픽처 데이터를 DPB에 쓰는 작업이 증가함에 따라, 추가 메모리 대역폭이 필요한다.
DPB에 참조 픽처의 한 버전만 유지하면 픽처 기반 리샘플링에 좋지 않다. 리샘플링되지 않은 버전만 보관하는 경우, 여러 픽처들이 동일한 참조 픽처를 참조할 수 있으므로, 참조 픽처를 여러 번 리샘플링해야 할 수 있다. 반면에, 참조 픽처가 리샘플링되고 리샘플링된 버전만 보관하는 경우, 위에서 설명한 대로 리샘플링되지 않은 픽처를 출력하는 것이 더 좋기 때문에, 참조 픽처를 출력해야 할 때 역 리샘플링(inverse resampling)을 적용해야 한다. 이는 리샘플링 프로세스가 무손실 작업(lossless operation)이 아니기 때문에 문제가 된다. 픽처 A를 찍고, 이를 다운샘플링한 다음 이것을 업샘플링하여 A와 동일한 해상도의 A'를 얻는 경우, A와 A'는 동일하지 않다. 다운샘플링과 업샘플링 동안 고 주파수 정보(high frequency information)는 손실되기 때문에, A'는 A보다 더 적은 정보를 포함한다.
추가 DPB 버퍼 및 메모리 대역폭 문제를 처리하기 위해, VVC에서의 ARC 설계가 픽처 기반 리샘플링을 사용하는 경우 다음을 제안한다.
1. 참조 픽처가 리샘플링되면, 리샘플링된 버전 및 참조 픽처의 원래 리샘플링 된 버전 모두 DPB에 저장된다. 따라서, 둘 다 DPB 풀(fullness)에 영향을 미친다.
2. 리샘플링된 참조 픽처는, 대응하는 리샘플링되지 않은 참조 픽처가 "참조로 사용되지 않음(unused for reference)"으로 마킹(mark)될 때, "참조로 사용되지 않음(unused for reference)"으로 마킹(mark)된다.
3. 각 타일 그룹의 참조 픽처 리스트(RPLs)는, 현재 픽처와 동일한 해상도를 가지는 참조 픽처를 포함한다. RPL 신호 구문(RPL signalling syntax)을 변경할 필요는 없지만, RPL 구성 프로세스(RPL construction process)는, 다음과 같이, 이전 문장에서 말한 내용을 확인하기 위해 수정된다. 참조 픽처를 RPL 항목에 포함해야 하는데, 현재 픽처와 동일한 해상도의 참조 픽처의 버전을 아직 사용할 수 없는 경우, 픽처 리샘플링 프로세스가 호출되고, 해당 참조 픽처의 리샘플링된 버전이 포함된다.
4. DPB에 존재할 수 있는 리샘플링된 참조 픽처의 수는 제한되어야 한다. 예를 들어, 2보다 작거나 같도록 제한되어야 한다.
또한, 시간적 MV(temporal MV)가 현재 해상도와 다른 해상도의 참조 프레임으로부터 나오는 경우를 위한 시간적 MV 사용(예: 병합 모드(merge mode) 및 ATMVP)을 활성화하기 위해, 필요에 따라 시간적 MV를 현재 해상도로 스케일링(scaling)할 것을 제안한다.
블록 기반 ARC 리샘플링(Block-based ARC resampling)
ARC에 대한 블록 기반 리샘플링에서는, 필요할 때마다 참조 블록이 리샘플링되고, 리샘플링된 픽처는 DPB에 저장되지 않는다.
여기서 주요 문제는 추가 디코더 복잡성(additional decoder complexity)이다. 이는, 참조 픽처의 블록이 다른 픽처의 여러 블록들에 의해 그리고 여러 픽처들의 블록들에 의해 여러 번 참조될 수 있기 때문이다.
참조 픽처의 블록이 현재 픽처의 블록에 의해 참조되고, 참조 픽처와 현재 픽처의 해상도가 다른 경우, 기준 블록은 보간 필터(interpolation filter)의 호출에 의해 재샘플링되어, 기준 블록이 정수-펠 해상도(integer-pel resolution)를 가지도록 한다. 모션 벡터가 쿼터-펠(quarter-pel)에 있을 때, 보간 프로세스는 다시 호출되고, 쿼터-펠 해상도에서 재샘플링된 기준 블록을 얻는다. 따라서, 상이한 해상도들을 포함하는 참조 블록으로부터 현재 블록에 대한 각 모션 보정 동작(motion compensation operation)을 위하여, 하나가 아닌 최대 2개까지의 보간 필터링 동작iknterpolation filter operation)(예를 들어, 쿼터-펠 해상도의 기준 블록 생성)이 필요한다.
최악의 복잡성을 제한하기 위해, VVC의 ARC 설계가 블록 기반 리샘플링을 사용하는 경우, 다음을 제안한다.
- 현재 픽처와 다른 해상도를 가진 참조 픽처로부터의 블록의 이중 예측(Bi-prediction)은 허용되지 않는다.
- 보다 정확하게 말하자면, 제약조건은 다음과 같다. 현재 픽처 picA의 현재 블록 blkA가 참조 픽처 picB에서 참조 블록 blkB를 참조할 때, picA와 picB가 다른 해상도를 가지는 경우, 블록 blkA는 단일-예측 블록(uni-predicted block)이어야 한다.
이 제약조건을 만족하는 경우, 블록을 디코딩하는 데 필요한 최악의 경우의 보간 동작의 수가 두 번으로 제한된다. 블록이 다른 해상도의 픽처의 블록을 참조하는 경우, 필요한 보간 동작의 수는 위에서 설명한 대로 2번이다. 이는, 보간 동작의 수는 또한 2이므로(즉, 각 참조 블록에 대한 쿼터-펠 해상도를 얻기 위한 한 동작), 블록이 동일한 해상도의 픽처로부터 참조 블록을 참조하고, 이중 예측 블록(bi-predicted block)으로 코딩되는 경우와 동일하다.
구현을 단순화하기 위하여, VVC의 ARC 설계가 블록 기반 리샘플링을 사용하는 경우, 다음이 적용되는 또 다른 변형을 제안한다.
- 참조 프레임과 현재 프레임이 상이한 해상도를 가지는 경우, 예측기들(predictors)의 모든 픽셀의 대응하는 위치들이 먼저 계산되고, 그 다음 보간이 한 번만 적용된다. 즉, 두 개의 보간 동작(즉, 리샘플링을 위한 보간 동작 및 쿼터-펠 보간을 위한 보간 동작)은, 하나의 보간 동작으로 결합된다. 현재 VVC의 서브-펠 보간 필터(sub-pel interpolation filter)는 재사용할 수 있지만, 이 경우, 보간의 그래뉼래러티(granularity of interpolation)는 확대되어야 하고, 보간 동작 횟수는 2로부터 1로 감소되어야 한다.
- 시간적 MV(temporal MV)가 현재 해상도와 다른 기준 프레임으로부터 나오는 경우, 시간적 MV 사용(예: 병합 모드 및 ATMVP)을 활성화(enable)하기 위해, 필요에 따라 시간적 MV를 현재 해상도로 스케일링(scale)할 것을 제안한다.
리샘플링 비율(Resampling ratios)
JVET-M0135에서, ARC에 대한 논의을 시작하기 위해, ARC에 대한 시작점으로, 2x의 리샘플링 비율(업샘플링의 경우 2 x 2, 다운샘플링의 경우 1/2 x 1/2을 의미)만 고려할 것을 제안했다. 마라케시 회의 이후 이 주제에 대한 추가 토론에서, 어떤 경우들에 있어서 리샘플링 및 비-리샘플링 해상도(resampled and un-resampled resolutions) 간의 더 작은 차이가 더 도움이 될 수 있기 때문에, 2x의 리샘플링 비율만 지원하는 것은 매우 제한적이라는 것을 알게 되었다.
임의리 샘플링 비율의 지원이 바람직할 수 있지만, 이러한 지원은 어려워 보인다. 이는, 임의의 샘플링 비율을 지원하기 위해서는, 정의하고 구현되어야 하는 리샘플링 필터들의 수가 너무 많고, 디코더 구현에 상당한 부담을 주기 때문이다.
우리는 하나 이상의 리샘플링 비율들을 지원해야 하지만 적은 수의 리샘플링 비율들을 지원할 것을 제안한다. 그러나, 적어도 1.5x 및 2x 리샘플링 비율들. 그리고 임의의 리샘플링 비율은 지원되지 않는다.
1.2.5.4. 최대 DPB 버퍼 크기 및 버퍼 풀(Max DPB buffer size and buffer fullness)
ARC를 사용하면, DPB는 동일한 CVS 내에서 상이한 공간적 해상도들의 디코딩된 픽처들을 포함할 수 있다. DPB 관리 및 관련된 측면에 있어서, 디코딩된 픽처의 단위로 DPB 크기 및 풀(fullness)을 계산하는 것은 더 이상 동작(work)하지 않는다.
다음은, ARC가 지원되는 경우, 최종 VVC 사양에서 논의되어야 하는 몇가지 측면들과 가능한 솔루션들에 대한 논의이다. (우리는, 이회의에서 가능한 솔루션들의 채택을 제안하지 않음)
1. MaxDpbSize(즉, DPB 내에 존재하는 참조 픽처의 최대 수)를 얻기 위하여, PSizeSizeInSamplesY(즉, PicSizeInSamplesY = pic_width_in_luma_samples * pic_height_in_luma_samples)의 값을 사용하기 보다는, MinPicSizeInSamplesY의 값에 기초하여 MaxDpbSize를 얻는다.
MinPicSizeInSampleY는 아래와 같이 정의된다.
2. 각 디코딩된 픽처는 PictureSizeUnit이라는 값과 연관된다. PictureSizeUnit은, 디코딩된 픽처 크기가 MinPicSizeInSampleY에 비해 얼마나 큰지를 지정하는 정수 값이다. PictureSizeUnit의 정의는, VVC의 ARC에 대해 지원되는 리샘플링 비율들에 따라 달라진다.
예를 들어 ARC가 단지 2의 리샘플링 비율만 지원하는 경우, PictureSizeUnit은 다음과 같이 정의된다.
- 비트스트림에서 가장 작은 해상도를 가진 디코딩된 픽처는 1의 PictureSizeUnit과 연관된다.
- 비트스트림에서 가장 작은 해상도의 2 x 2 (2 by 2)인 해상도를 가진 디코딩된 픽처는 4(즉, 1 * 4)의 PictureSizeUnit과 연관된다.
또 다른 예로, ARC가 1.5와 2의 리샘플링 비율들을 모두 지원하는 경우 PictureSizeUnit은 다음과 같이 정의된다.
- 비트스트림에서 가장 작은 해상도를 가진 디코딩된 픽처는, 4의 PictureSizeUnit과 연관된다.
- 비트스트림에서 가장 작은 해상도의 1.5 x 1.5 (1.5 by 1.5)인 해상도를 가진 디코딩된 픽처는 9(즉, 2.25 * 4)의 PictureSizeUnit과 연관된다.
- 비트스트림에서 가장 작은 해상도의 2 x 2 (2 by 2)인 해상도를 가진 디코딩된 픽처는 16(즉, 4 * 4)의 PictureSizeUnit과 연관된다.
ARC에서 지원하는 다른 리샘플링 비율들의 경우, 위의 예제에서 주어진 것과 동일한 원리를 사용하여, 각 픽처 크기에 대해 PictureSizeUnit의 값을 결정해야 한다.
3. 변수 MinPictureSizeUnit는 PictureSizeUnit의 가장 작은 가능한 값으로 보자. 즉, ARC가 2의 리샘플링 비율만 지원하는 경우, MinPictureSizeUnit은 1이다. ARC가 1.5 및 2의 리샘플링 비율을 지원하는 경우, MinPictureSizeUnit은 4이다. 마찬가지로 동일한 원리가 MinPictureSizeUnit의 값을 결정하는 데 사용된다.
4. sps_max_dec_pic_buffering_minus1[i]의 값 범위는 0에서 (MinPictureSizeUnit * (MaxDpbSize - 1)까지로 지정된다. 변수 MinPictureSizeUnit은 PictureSizeUnit 중 가장 작은 가능한 값이다.
5. DPB 풀(DPB fullness)은 PictureSizeUnit에 기초하여 다음과 같이 지정된다.
- HRD는 디코딩 유닛 0에서 초기화된다. CPB와 DPB는 모두 비어 있는 것(empty)으로 설정된다(DPB 풀(fullness)은 0으로 설정됨).
- DPB가 플러시(flush) 되면(즉, 모든 픽처가 DPB로부터 삭제되면), DPB 풀은 0으로 설정된다.
- DPB로부터 픽처를 삭제하면, DPB 풀(DBP full)은 삭제된 픽처와 연관된 PictureSizeUnit값 만큼 감소된다.
- DPB에 픽처를 삽입하면, DPB 풀(DBP full)은 삽입된 픽처와 연관된 PictureSizeUnit값 만큼 증가한다.
1.2.5.5. 리샘플링 필터(Resampling filters)
소프트웨어 구현에서, 구현된 리샘플링 필터들은, 단순히 JCTVC-H0234에 설명된 이전에 사용가능한 필터로부터 가져온 것들이다. 다른 리샘플링 필터들은, 더 나은 성능 및/또는 낮은 복잡성을 제공한다면, 테스트되고 사용되어야 한다. 복잡성과 성능 간의 트레이드오프(trade-off)를 고려하여 다양한 리샘플링 필터들을 테스트할 것을 제안한다. 이러한 테스트는 CE에서 수행될 수 있다.
1.2.5.6. 기존 도구에 대한 기타 필요한 수정(Miscellaneous necessary modifications to existing tools)
ARC를 지원하기 위해, 기존 코딩 도구들 중 일부에 일부의 수정 및/또는 추가적인 동작이 필요할 수 있다. 예를 들어, ARC 소프트웨어 구현 픽처 기반 리샘플링(ARC software implementation picture-based resampling)에서, 현재 픽처와 참조 픽처의 원래의 코딩 해상도들이 다를 때, 단순함을 위해, TMVP 및 ATMVP를 비활성화(disable)했다.
1.2.6. JVET-N0279
"미래 비디오 코딩 표준에 대한 요구사항(Requirements for a Future Video Coding Standard)"에 따르면, "표준은, 각각이 상이한 속성들(예: 공간 해상도(spatial resolution) 또는 샘플 비트 깊이(sample bit depth))을 갖는, 동일한 콘텐츠의 여러 표현들을 제공하는 적응적 스트리밍 서비스(adaptive streaming services)의 경우, 빠른 표현 전환(fast representation switching)을 지원해야 한다." 실시간 비디오 통신에서, I 픽처를 삽입하지 않고 코딩된 비디오 시퀀스 내에서 해상도 변경을 허용하는 것은, 비디오 데이터를 동적 채널 조건 또는 사용자 선호(user preference)에 원활하게 적용할 수 있도록 할 뿐 아니라, I 픽처에 의하여 발생하는 비팅 효과(beating effect)를 제거할 수 있다. 적응적 해상도 변경(adaptive resolution change)의 가상 예제가 도 14에 도시된다. 여기서, 현재 픽처는 상이한 크기의 참조 픽처로부터 예측된다.
이 기여는, VTM의 현재 모션 보상 예측 프로세스(current motion compensated prediction process)에 대한 수정뿐만 아니라 적응적 해상도 변경을 신그널링하는 높은 수준의 구문을 제안한다. 이러한 수정은, 기존의 모션 보정 보간기(motion compensation interpolators)를 변경하지 않으면서, 모션 벡터 스케일링(motion vector scaling) 및 서브펠 위치 획득(subpel location derivations)으로 제한된다. 이렇게 하면, 기존의 모션 보상 보간기를 재사용할 수 있으며, 추가 비용을 발생시키는 적응적 해상도 변경을 지원하기 위한 새로운 처리 블록을 요구하지 않는다.
1.2.6.1. 적응적 해상도 변경 신호(Adaptive Resolution Change Signalling)
1.2.6.1.1. SPS
[[ pic_width_in_luma_samples는, 각 디코딩된 픽처의 폭을 루마 샘플 단위로 지정한다. pic_width_in_luma_samples는 0이 아니고, MinCbSizeY의 정수배여야 한다. ]]
[[ pic_height_in_luma_samples는, 각 디코딩된 픽처의 높이를 루마 샘플 단위로 지정한다. pic_height_in_luma_samples는 0이 아니고, MinCbSizeY의 정수배여야 한다. ]]
max_pic_width_in_luma_samples는, SPS를 참조하는 디코딩된 픽처의 최대 폭을 루마 샘플 단위로 지정한다. max_pic_width_in_luma_samples는 0이 아니고, MinCbSizeY의 정수배여야 한다.
max_pic_height_in_luma_samples는, SPS를 참조하는 디코딩된 픽처의 최대 높이를 루마 샘플 단위로 지정한다. max_pic_height_in_luma_samples는 0이 아니고, MinCbSizeY의 정수배여야 한다.
1.2.6.1.2. PPS
pic_size_different_from_max_flag이 1인 것은, 참조된 SPS에서 max_pic_width_in_luma_samples와 max_pic_height_in_luma_sample와 상이한 픽처 폭 또는 픽처 높이를 신호(signal)하는 것을 지정한다. pic_size_different_from_max_flag이 0인 것은, pic_width_in_luma_samples와 pic_height_in_luma_sample가 참조된 SPS에서 max_pic_width_in_luma_samples와 max_pic_height_in_luma_sample과 동일한 것을 지정한다.
pic_width_in_luma_samples는, 각 디코딩된 픽처의 폭을 루마 샘플 단위(units of luma samples)로 지정한다. pic_width_in_luma_samples는 0이 아니고, MinCbSizeY의 정수배여야 한다. pic_width_in_luma_samples이 존재하지 않는 경우, 이는 max_pic_width_in_luma_samples와 동일한 것으로 유추(infer)된다.
pic_height_in_luma_samples는, 각 디코딩된 픽처의 높이를 루마 샘플 단위(units of luma samples)로 지정한다. pic_height_in_luma_samples는 0이 아니고, MinCbSizeY의 정수배여야 한다. pic_height_in_luma_samples이 존재하지 않는 경우, 이는 max_pic_height_in_luma_samples와 동일한 것으로 유추(infer)된다.
모든 활성 참조 픽처(active reference picture)를 포함하여, 수평 및 수직 스케일링 비율(scaling ratios)이 1/8부터 2의 범위 내에 있어야 한다는 것은 비트스트림 적합성의 요구사항(requirement of bitstream conformance)이다. 이 스케일링 비율은 다음과 같이 정의된다.
참조 픽처 스케일링 프로세스(Reference Picture Scaling Process)
CVS 내에서 해상도 변경이 있는 경우, 픽처는 자신의 참조 픽처들 중 하나 이상과 다른 크기를 가질 수 있다. 이 제안은, 대응하는 참조 픽처 그리드(reference picture grids) 대신에 모든 모션 벡터들을 현재 픽처 그리드(current picture grid)로 정규화(normalize)한다. 이는, 설계를 일관적으로 유지하고, 모션 벡터 예측 프로세스에 투명한 해상도 변경을 하는데 도움이 된다. 그렇지 않으면, 상이한 크기들의 참조 픽처들을 가리키는 이웃 모션 벡터들은, 상이한 스케일 때문에, 공간 모션 벡터 예측에 직접 사용할 수 없다.
해상도 변경이 발생하면, 모션 보정 예측(motion compensated prediction)을 수행하는 동안 모션 벡터와 참조 블록을 모두 스케일링(scale)해야 한다. 스케일링 범위는 [1/8, 2]로 제한된다. 즉, 업스케일링은 1:8로 제한되고, 다운스케일링은 2:1로 제한된다. 업스케일링은, 참조 픽처가 현재 픽처보다 작은 경우를 나타내고, 다운스케일링은 참조 픽처가 현재 픽처보다 큰 경우를 나타낸다. 다음 섹션에서는 스케일링 프로세스를 보다 자세하게 설명한다.
루마 블록(Luma Block)
스케일링 팩터(scaling factor) 및 고정점 표현(fixed-point representations)은 다음과 같이 정의된다.
스케일링 프로세스는 다음 두 부분을 포함한다.
1. 현재 블록의 왼쪽 상단 코너 픽셀(upper left corner pixel)을 참조 픽처에 매핑한다.
2. 현재 블록의 다른 픽셀들의 참조 위치를 지칭(address)하기 위해 수평 및 수직 스텝 크기(horizontal and vertical step sizes)를 사용한다.
현재 블록의 왼쪽 상단 코너 픽셀의 좌표가 (x, y)인 경우, 1/16th 펠 단위로 모션 벡터 (mvX, mvY)에 의하여 지시(point)되는 참조 픽처 내 서브펠 위치 (x', y')는, 아래와 같이 지정된다.
- 참조 픽처에서의 수평 위치는,
x'는 10 소수 비트들(fractional bits)을 유지하기 위하여 추가로 스케일 다운(scale down)된다.
유사하게, 참조 픽처에서의 수직 위치는,
y'도 추가로 스케일 다운된다.
여기서, 현재 블록의 왼쪽 상단 코너 픽셀의 참조 위치(reference location)는 (x', y')이다. 다른 참조 서브플/펠 위치들(reference subple/pel locations)은 수평 및 수직 스텝 크기로 (x', y')에 대하여 계산된다. 이 스텝 크기들은, 상기의 수평 및 수직 스케일링 팩터들로부터 1/1024-pel 정확도(accuracy)로 아래와 같이 얻어진다.
예를 들어, 현재 블록 내 픽셀이 왼쪽 상단 코너 픽셀로부터 i-열이고 j-행 떨어져 있다면, 대응하는 참조 픽셀의 수평 및 수직 좌표는 다음과 같이 얻어진다.
서브펠 보간(subpel interpolation)에서, x'i와 y'j는 풀-펠 파트(full-pel parts)와 프랙션-펠 파트(fraction-pel parts)로 분리된다.
참조 블록을 가리키는 풀-펠 파트는 아래와 같다.
보간 필터들을 선택하는데 사용되는 프랙션-펠 파트는 아래와 같다.
참조 픽처 내 풀-펠 및 프랙션-펠 위치들이 결정되면, 기존 모션 보정 보간기들(motion compensation interpolators)를 추가 변경 없이 사용할 수 있다. 풀-펠 위치는, 참조 픽처로부터 참조 블록 패치(reference block patch)를 가져오는(fetch) 데 사용된다. 프랙션-펠 위치는, 적절한 보간 필터를 선택하는 데 사용된다.
크로마 블록(Chroma Block)
크로마 포맷이 4:2:0이면, 크로마 모션 벡터는 1/32-pel 정확도(accuracy)를 갖는다. 크로마 참조 블록등과 크로마 모션 벡터들의 스케일링 프로세스는, 크로마 포맷과 관련한 조정을 제외하면, 루마 블록에 대한 것과 거의 동일하다.
현재 크로마 블록의 왼쪽 상단 코너 픽셀의 좌표가 (xc,, yc)일 때, 참조 크로마 픽처 내 초기 수평 및 수직 위치는 아래와 같다.
여기서, mvX 및 mvY는 원래의 루마 모션 벡터(original luma motion vector)이지만, 이제는 1/32-pel 정확도(accuracy)로 검사되어야 한다.
xc'와 yc'는, 1/1024-pel 정확도(accuracy)를 유지하기 위해 추가로 스케일 다운(scale down)된다.
연관된 루마 수학식과 비교할 때, 오른쪽 시프트(right shift)가 1비트씩 증가한다.
사용되는 스텝 크기(step size)는 루마와 동일하다. 왼쪽 상단 코너 픽셀을 기준으로 한 크로마 픽셀(i, j)의 경우, 참조 픽셀의 수평 및 수직 좌표는 아래로 얻어진다.
서브펠 보간(subpel interpolation)에서, xc'i와 yc'j는 풀-펠 파트(full-pel parts)와 프랙션-펠 파트(fraction-pel parts)로 분리된다.
참조 블록을 가리키는 풀-펠 파트는 아래와 같다.
보간 필터들을 선택하는데 사용되는 프랙션-펠 파트는 아래와 같다.
다른 코딩 도구들과의 상호 작용(Interaction with Other Tools)
참조 픽처 스케일링(reference picture scaling)과 일부 코딩 도구들의 상호 작용과 연관된 추가의 복잡성 및 메모리 대역폭 때문에, VVC 사양(VVC specification)에 다음의 제한을 추가하는 것이 추천된다.
- tile_group_temporal_mvp_enabled_flag가 1인 경우, 현재 픽처와 그 동일위치 픽처(collocated picture)는 동일한 크기를 갖는다.
- 시퀀스 내에서 해상도 변경이 허용되는 경우, 디코더 모션 벡터 리파인(decoder motion vector refinement)은 꺼져야(turn off) 한다.
- 시퀀스 내에서 해상도 변경이 허용되는 경우, sps_bdof_enabled_flag는 0이어야 한다.
1.3. JVET-N0415의 코딩 트리 블록 기반 적응적 루프 필터(Coding Tree Block (CTB)-based Adaptive Loop Filter (ALF) in JVET-NO415)
슬라이스-레벨 시간영역 필터(Slice-level temporal filter)
적응적 파라미터 세트(APS: adaptive parameter set)는 VTM4에서 채택되었다. 각 APS는 신호형 ALF 필터(signalled ALF filters) 1세트를 포함하고, 최대 32개의 APS가 지원된다. 제안서에서 슬라이스-레벨 시간영역 필터가 테스트된다. 오버헤드를 줄이기 위하여, 타일 그룹은 APS로부터 ALF 정보를 재사용한다. APS는 FIFO(first-in-first-out) 버퍼로 갱신(update)된다.
CTB 기반 ALF(CTB based ALF)
루마 성분에 대하여, ALF가 루마 CTB에 적용될 때, 16개의 고정, 5개의 시간영역 또는 1개의 신호형 필터 세트(16 fixed, 5 temporal or 1 signaled filter sets) 중의 선택이 지시된다. 단지 필터 세트 인덱스(filter set index)만 신호(signal)된다. 슬라이스(slice)에 대하여 새로운 세트가 신호(signal)되면, 동일한 슬라이스 내 모든 루마 CTB는 해당 세트를 공유한다. 고정 필터 세트(Fixed filter sets)는, 새 슬라이스 레벨 필터 세트(slice-level filter set)를 예측하는데 사용될 수 있으며, 또한 루마 CTB의 후보 필터 세트(candidate filter sets)로도 사용될 수 있다. 필터 수는 총 64개이다.
크로마 성분의 경우, ALF가 크로마 CTB에 적용될 때, 새로운 필터가 슬라이스에 대해 신호(signal)되면, CTB는 새로운 필터를 사용하고, 그렇지 않으면, 시간적 안정성 제약(temporal scalability constrain)을 만족하는 가장 최근의 시간영역 크로마 필터(temporal chroma filter)가 적용된다.
슬라이스 레벨 시간영역 필터로서, APS는 FIFO(first-in-first-out) 버퍼로 갱신된다.
1.4. 대체 시간적 모션 벡터 예측(일명 VVC에서 서브-블록 기반 시간적 병합 후보)(Alternative temporal motion vector prediction(a.k.a. subblock-based temporal merging candidate in VVC))
대체 시간적 모션 벡터 예측(ATMVP: Alternative temporal motion vector prediction) 방법에서, 시간적 모션 벡터 예측(TMVP: temporal motion vector prediction)의 모션 벡터들은, 현재 CU보다 작은 블록들로부터 (모션 벡터들과 참조 인덱스들을 포함하는) 복수의 모션 정보의 세트들에 의하여 수정된다. 도 15에 도시된 바와 같이, 서브-CU들(sub-CUs)은 사각형의 NxN 블록들(디폴트로 N은 8로 설정됨)이다.
ATMVP는 CU 내의 서브-CU들의 모션 벡터들을 두 단계로 예측한다. 첫 번째 단계는, 소위 시간적 벡터(temporal vector)로 참조 픽처로부터 대응하는 블록을 식별(identify)하는 것이다. 참조 픽처는 모션 소스 픽처(motion source picture)라고도 불린다. 두 번째 단계는, 도 15에 도시된 바와 같이, 현재 CU를 서브-CU들로 분할(split)하고, 각 서브-CU에 대응하는 블록으로부터 각 서브-CU의 참조 인덱스(reference index)와 함께 모션 벡터(motion vector)를 획득하는 것이다.
첫 번째 단계에서, 참조 픽처 및 대응하는 블록은, 현재 CU의 공간적 이웃 블록들(spatial neighbouring blocks)의 모션 정보에 의해 결정된다. 이웃 블록들의 반복적인 스캐닝 프로세스를 피하기 위해, 현재 CU의 병합 후보 리스트(merge candidate list)에 있는 블록 A0(왼쪽 블록)로부터 병합 후보(merge candidate)가 사용된다. 동일위치 참조 픽처(collocated reference picture)를 참조하는 블록 A0로부터 첫 번째로 이용가능한 모션 벡터는 시간적 벡터(temporal vector)로 설정된다. 이러한 방식으로, ATMVP에서, TMVP와 비교하여, 대응하는 블록은 더 정확하게 식별될 수 있다. 여기서, 대응하는 블록(동일위치 블록(collocated block)이라고도 함)은 항상 현재 CU에 대해 오른쪽 하단 또는 중앙 위치에 있다.
두 번째 단계에서, 서브-CU의 대응하는 블록은, 현재 CU의 좌표에 시간적 벡터(temporal vector)를 합산(add)함으로써, 모션 소스 픽처(motion source picture) 내 시간 벡터에 의해 식별된다. 각 서브-CU에 대해, 대응하는 블록(중앙 샘플(center sample)을 커버하는 가장 작은 모션 그리드(motion grid))의 모션 정보가, 서브-CU에 대한 모션 정보를 도출하는데 이용된다. 대응하는 NxN 블록의 모션 정보가 식별된 후, HEVC의 TMVP와 동일한 방식으로, 현재 서브-CU들의 참조 인덱스들 및 모션 벡터들로 변환되고, 모션 스케일링 및 기타 프로시저가 적용된다.
1.5. 어파인 모션 예측(Affine motion prediction)
HEVC에서, 동작 보정 예측(MCP:motion compensation prediction)에 이동 모션 모델(translation motion model)만이 적용된다. 실제 환경에서는, 줌-인/줌-아웃(zoom in/out), 회전(rotation), 투영 모션(perspective motion) 및 기타 불규칙한 모션(irregular motions)과 같은 많은 종류의 움직임(motion)이 있다. VVC에서는, 단순화된 어파인 변환 모션 보정 예측(simplified affine transform motion compensation prediction)이, 4-파라미터 어파인 모델(4-parameter affine model) 및 6-파라미터 어파인 모델(6-parameter affine model)와 함께 적용된다. 도 16에 도시된 바와 같이. 블록의 어파인 모션 필드(affine motion field)는, 4-파라미터 어파인 모델에 대하여 2개의 제어 점 모션 벡터(CPMVs:control point motion vectors), 6-파라미터 어파인 모델에 대하여 3개의 CPMV에 의하여, 기술된다.
블록의 모션 벡터 필드(MVF: motion vector field)는, 아래 수학식(1)의 4-파라미터 어파인 모델(여기서, 4개의 파라미터는 a, b, e 및 f로 정의됨) 및 아래 수학식(2)의 6-파라미터 어파인 모델(여기서, 6개의 파라미터는 a, b, c, d, e 및 f로 정의됨)로, 각각 기술된다.
여기서, (mvh 0,, mvh 0)는 왼쪽 상단 코너 제어 점(top-left corner control point)의 모션 벡터이다. (mvh 1,, mvh 1)는 오른쪽 상단 코너 제어 점(top-right corner control point)의 모션 벡터이다. (mvh 2,, mvh 2)는 왼쪽 하단 코너 제어 점(bottom-left corner control point)의 모션 벡터이다. 이 3개의 벡터들 모두는 제어 점 모션 벡터(CPMV: control point motion vectors)로 불린다. (x,y)는, 현재 블록 내에서 왼쪽 상단 샘플(top-left sample)에 대한 대표 점(representative point)의 좌표를 나타낸다. (mvh(x,y),mvv(x,y))는, (x,y)dp 위치한 샘플에 대하여 얻은 모션 벡터(motion vector)이다. CP 모션 벡터는 (어파인 AMVP 모드에서와 같이) 신호(signal)되거나 또는 (어파인 병합 모드(affine merge mode)에서와 같이) 즉석에서(on-the-fly) 얻어질 수 있다. w와 h는 현재 블록의 폭와 높이이다. 실제로, 나눗셈dtivison)은 반올림 동작을 가진 오른쪽 시프트(right-shift with a rounding operation)에 의해 구현된다. VTM에서, 대표점(representative point)은, 서브-블록의 중심 위치(center position)로 정의된다. 예를 들어, 현재 블록 내의 왼쪽 상단 샘플에 대한 서브-블록의 왼쪽 상단 코너(left-top corner)의 좌표가 (xs, ys)인 경우, 대표점의 좌표는, (xs+2, ys+2)로 정의된다. 각 서브-블록(예를 들어, VTM에서의 4x4)에 대하여, 대표점은, 전체 서브-블록에 대한 모션 벡터를 도출(derive)하는 데 이용된다.
모션 보상 예측(motion compensation prediction)을 더욱 단순화하기 위해, 서브-블록 기반 어파인 변환 예측(sub-block based affine transform prediction)이 적용된다. 각 MxN(현재 VVC에서 M과 N은 모두 4로 설정됨) 서브 블록의 모션 벡터를 도출하기 위해, 도 17에 도시된 바와 같이, 각 서브-블록의 중심 샘플의 모션 벡터가 수학식(1) 및 수학식(2)에 따라 계산되고, 1/16 프랙션 정확도(fraction accuracy)로 반올림된다. 그 다음, 도출된 모션 벡터로 각 서브-블록의 예측을 생성하기 위하여, 1/16-pel에 대한 모션 보정 보간 필터(motion compensation interpolation filters)가 적용된다. 1/16-pel을 위한 보간 필터는 어파인 모드에 의하여 도입된다.
MCP 후, 각 서브=블록의 고정밀 모션 벡터는, 정상 모션 벡터(normal motion vector)와 동일한 정확도(accuracy)로, 반올림되고 저장된다.
1.5.1. 어파인 예측의 신호 (Signaling of affine prediction)
이동 모션 모델(translational motion model)과 유사하게, 부 정보 듀 어파인 예측(side information due affine prediction)을 신호(signal)하기 위한 2개의 모드가 있다. AFFINE_INTER 모드와 AFFINE_MERGE 모드이다.
1.5.2. AF_INTER 모드
폭와 높이가 8보다 큰 CU들을 위하여, AF_INTER 모드를 적용할 수 있다. AF_INTER 모드가 사용되는지 여부를 나타내기 위하여, CU 레벨의 어파인 플래그(affine flag)가, 비트스트림으로 신호(signal)된다.
이 모드에서는, 각 참조 픽처 리스트(리스트 0 또는 리스트 1)에 대하여, 어파인 AMVP 후보 리스트(affine AMVP candidate list)는, 다음 순서로, 세 가지 유형 어파인 모션 예측 변측기(affine motion predictors)로 구성된다. 여기서, 각 후보는, 현재 블록의 추정된 CPMV(estimated CPMVs)를 포함한다. (도 18의 mv0 mv1 mv2와 같이) 인코더 측에서 발견되는 최상의 CPMV들과 추정된 CPMV들의 차이는 신호(signal)된다. 또한, 추정된 CPMV가 얻어지는 어파인 AMVP 후보의 인덱스도 추가로 신호(signal)된다.
(1) 상속 어파인 모션 예측기들(Inherited affine motion predictors)
검사 순서(checking order)는, HEVC AMVP 리스트 구성(HEVC AMVP list construction)의 공간 MVP들(spatial MVPs)과 유사한다. 첫째, 왼쪽 상속 어파인 모션 예측기는, 어파인 코딩(affine coded)된 {A1, A0}의 첫 번째 블록으로부터 얻어지고, 현재 블록에서와 같은 동일한 참조 픽처를 가진다. 둘째 상기 상속 어파인 모션 예측기는, 어파인 코딩(affine coded)된 {B1, B0, B2}의 첫 번째 블록으로부터 얻어지고, 현재 블록에서와 같은 동일한 참조 픽처를 가진다. 5개의 블록 A1, A0, B1, B0, B2는 도 19에 도시된다.
이웃 블록(neighboring block)이 어파인 모드(affine mode)로 코딩된 것으로 밝혀지면, 이웃 블록을 포함하는 코딩 유닛의 CPMV는, 현재 블록의 CPMV의 예측기(predictors)를 얻는 데 사용된다. 예를 들어, A1이 비-어파인 모드(non-affine mode)로 코딩되고, A0이 4-파라미터 어파인 모드로 코딩되면, 왼쪽 상속 어파인 MV 예측기가 A0로부터 얻어진다(derive). 이 경우, 도 2에서 왼쪽 상단 CPMV(top-left CPMV)는 로 표시되고, 오른쪽 상단 CPMV(top-right CPMV)는 으로 표시되므로, A0을 커버하는 CU의 CPMV는, 현재 블록의 추정된 CPMV를 얻기 위해 이용되고, 현재 블록의 왼쪽 상단(좌표 (x0, y0)), 오른쪽 상단(좌표 x1, y1), 오른쪽 하단(좌표 x2, y2)에 대해 , 로 표시된다.
(2) 구성된 어파인 모션 예측기(Constructed affine motion predictors)
제어 점 모션 벡터(CPMVs: control-point motion vectors)의 구성된 어파인 모션 예측기는, 도 20에 도시된 바와 같이, 동일한 참조 픽처를 가지는 이웃 인터 코딩된 블록(neighboring inter coded blocks)으로부터 얻어진다. 현재의 어파인 모션 모델이 4-파라미터 어파인 어파인이면, CPMV의 수는 2이다. 그렇지 않고, 현재 어파인 모션 모델이 6-파라미터 어파인이면, CPMV의 수는 3이다. 왼쪽 상단 CPMV 는, 인터 코딩(inter coded)된 그룹 {A, B, C}의 첫 번째 블록에서 MV에 의해 얻어지고, 현재 블록에서와 같은 동일한 참조 픽처를 가진다. 오른쪽 상단 CPMV 는, 인터 코딩(inter coded)된 그룹 {D, E}의 첫 번째 블록에서 MV에 의해 얻어지고, 현재 블록에서와 같은 동일한 참조 픽처를 가진다. 왼쪽 하단 CPMV 는, 인터 코딩(inter coded)된 그룹 {F, G}의 첫 번째 블록에서 MV에 의해 얻어지고, 현재 블록에서와 같은 동일한 참조 픽처를 가진다.
- 현재 어파인 모션 모델이 4-파라미터 어파인인 경우, 구성된 어파인 모션 예측기는, 을 모두 발견한 경우에만 후보 리스트(candidate list)에 삽입된다. 즉, 가 현재 블록의 왼쪽 상단 위치(좌표 (x0, y0)) 및 오른쪽 상단 위치(좌표 (x1, y1))에 대하여 추정된 CPMV(estimated CPMVs)로 사용된다.
- 현재 어파인 모션 모델이 6-파라미터 어파인인 경우, 구성된 어파인 모션 예측기는, , 를 모두 발견한 경우에만 후보 리스트(candidate list)에 삽입된다. 즉, , 가 현재 블록의 왼쪽 상단 위치(좌표 (x0, y0)), 오른쪽 상단 위치(좌표 (x1, y1)) 및 오른쪽 하단 위치(좌표 (x2, y2))에 대하여 추정된 CPMV(estimated CPMVs)로 사용된다.
구성된 어파인 모션 예측기를 후보 리스트에 삽입할 때 푸루닝 프로세스(pruning process)가 적용되지 않는다.
1) 일반 AMVP 모션 예측기(Normal AMVP motion predictors)
어파인 모션 예측기의 수가 최대값에 도달할 때까지 다음이 적용된다.
1) 이용가능(available)하다면, 모든 CPMV를 와 동일하게 설정함으로써, 어파인 모션 예측기를 획득(derive)한다.
2) 이용가능(available)하다면, 모든 CPMV를 와 동일하게 설정함으로써, 어파인 모션 예측기를 획득(derive)한다.
3) 이용가능(available)하다면, 모든 CPMV를 와 동일하게 설정함으로써, 어파인 모션 예측기를 획득(derive)한다.
4) 이용가능(available)하다면, 모든 CPMV를 HEVC TMVP와 동일하게 설정함으로써, 어파인 모션 예측기를 획득(derive)한다.
5) 모든 CPMV를 0 MV(zero MV)로 설정함으로써, 어파인 모션 예측기를 획득(derive)한다.
은, 구성된 어파인 모션 예측기에서 이미 획득(derive)되었음을 주목한다.
AF_INTER 모드에서, 4/6-파라미터 어파인 모드를 사용할 때, 2/3 제어 점들(control points)이 필요하고, 따라서, 도 18a 및 도 18b에 도시된 바와 같이, 2/3 MVD는 이 제어 점들을 위하여 코딩될 필요가 있다. JVET-K0337에서, 아래와 같이 MV를 획득(derive)하는 것이 제안된다. 즉, mvd1 및 mvd2는 mvd0로부터 예측된다.
여기서, , mvdi 및 mv1은, 도 18b에 도시된 바와 같이, 각각 왼쪽 상단 픽셀(i=0), 오른쪽 상단 픽셀(i =1) 또는 왼쪽 하단 픽셀(i=2)의 예측된 모션 벡터(predicted motion vector), 모션 벡터 차(motion vector difference) 및 모션 벡터이다. 2개의 모션 벡터(예를 들어, mvA(xA, yA) 및 mvB(xB, yB)))를 추가하는 것은, 개별적으로 두 성분을 합산(summation)하는 것과 동일하다. 즉, newMV = mvA + mvB이고, 새로운 MV의 2개의 성분은, 각각, (xA + xB) 및 (yA + yB)로 설정된다.
1.5.2.1. AF_MERGE 모드
CU가 AF_MERGE 모드에서 적용되는 경우, 유효한 이웃 재구성 블록들(valid neighbour reconstructed blocks)로부터 어파인 모드로 코딩된 첫 번째 블록을 가져온다. 그리고 후보 블록의 선택 순서는, 도 21a에 도시된 바와 같이, 왼쪽(left), 위(above), 오른쪽 위(above right), 왼쪽 아래(left bottom)로부터 왼쪽 위(above left)이다. 이는, 도 21a에서 순서대로 A, B, C, D, E로 표시되어 있다. 예를 들어, 도 21b에서 A0로 표시된 것과 같이, 이웃 왼쪽 하단 블록(neighbour left bottom block)이 어파인 모드로 코딩되면, 블록 A를 포함하는 이웃 CU/PU의 왼쪽 상단 코너(top left corner), 오른쪽 위 코너(above right corner) 또는 왼쪽 하단 코너(left bottom corner)의 제어 점 모션 벡터들(Control Point (CP) motion vectors) mv0 N, mv1 N and mv2 N 이 페치(fetch)된다. 또한, 현재 CU/CP 상의 왼쪽 상단 코너/오른쪽 상단/왼쪽 하단(top left corner/top right/bottom left)의 모션 벡터 mv0 C, mv1 C and mv2 C(이들은 6-파라미터 어파인 모델에서만 사용됨)가, mv0 N, mv1 N and mv2 N 에 기초하여 계산된다. VTM 2.0에서, 현재 블록이 어파인 코딩된 것이면, 왼쪽-상단 코너(top-left corner)에 위치한 서브-블록(예를 들어, VTM에서 4x4 블록)은 mv0를 저장하고, 오른쪽-상단 코너(top-right corner)에 위치한 서브-블록은 mv1을 저장한다. 만약 현재 블록이 6-파라미터 어파인 모델로 코딩되면, 왼쪽-하단 코너(bottom-left corner)에 위치한 서브-블록은 mv2를 저장하고, 그렇지 않으면(현재 블록이 4-파라미터 어파인 모델로 코딩되면), LB는 mv'를 저장한다. 다른 서브-블록들은, MC를 위해 사용되는 MV들을 저장한다.
현재 CU의 CPMV mv0 C, mv1 C and mv2 C 가 획득(derive)된 후, 단순화된 어파인 모션 모델 수학식 (1) 및 (2)에 따라, 현재 CU의 MVF가 생성된다. 현재 CU가 AF_MERGE 모드로 코딩되었는지 여부를 식별하기 위해, 적어도 하나의 이웃 블록이 어파인 모드로 코딩된 경우, 어파인 플래그(affine flag)는 비트스트림으로 신호(signal)된다.
JVET-L0142 및 JVET-L0632에서, 어파인 병합 후보 리스트(affine merge candidate list)는, 다음 단계로 구성(construct)된다.
1) 상속 어파인 후보 삽입(Insert inherited affine candidates)
상속 어파인 후보(inherited affine candidates)는, 유효한 이웃 어파인 코딩 블록(neighbor affine coded block)의 어파인 모션 모델(affine motion model)로부터 후보가 획득(derive)된다는 것을 의미한다. 이웃 블록의 어파인 모션 모델로부터 최대 2개의 상속 어파인 후보가 획득되고, 이 상속 어파인 후보들은 후보 리스트에 삽입된다. 왼쪽 예측자(left predictor)에 대하여, 스캔 순서는 {A0, A1}이다. 위 예측자(above predictor)에 대하여, 스캔 순서는 {B0, B1, B2}이다.
2) 구성된 어파인 후보 삽입(Insert constructed affine candidates)
어파인 병합 후보 리스트(affine merge candidate list)의 후보의 수가 MaxNumAffineCand(예: 5)보다 작은 경우, 구성된 어파인 후보들은 후보 리스트에 삽입된다. 구성된 어파인 후보는, 각 제어 점의 이웃 모션 정보를 결합함으로써, 후보가 구성된다는 것을 의미한다.
a) 첫 번째로, 제어 점들(control points)에 대한 모션 정보는, 지정된 공간적 이이웃들(specified spatial neighbors)로부터 획득(derive)되고, 도 12에 도시된 시간적 이웃(temporal neighbor) CPk (k=1, 2, 3, 4)는, k번째 제어 점을 나타낸다. A0, A1, A2, B0, B1, B2 및 B3는, CPk(k=1, 2, 3)를 예측하기 위한 공간적 위치들(spatial positions)이다. T는 CP4를 예측하기 위한 시간적 위치(temporal position)이다. W와 H는 현재 블록의 폭과 높이일 때, P1, CP2, CP3 및 CP4의 좌표는 (0, 0), (W, 0), (H, 0) 및 (W, H)이다.
각 제어 점의 모션 정보는, 다음의 우선순위 순서(priority order)에 따라 얻어진다.
- CP1의 경우, 검사 우선순위(checking priority)는 B2->B3->A2이다. B2를 사용할 수 있는 경우, B2는 사용된다. 그렇지 않으면, B2를 사용할 수 있는 경우, B3가 사용된다. B2와 B3를 모두 사용할 수 없는 경우, A2가 사용된다. 3개의 후보 모두를 사용할 수 없는 경우, CP1의 모션 정보는 얻을 수 없다.
CP2의 경우, 검사 우선순위는 B1->B0이다.
CP3의 경우, 검사 우선순위는 A1->A0이다.
CP4의 경우, T가 사용된다.
b) 두 번째로, 제어 점들(control points)의 조합은, 어파인 병합 후보(affine merge candidate)를 구성(construct)하는 데 사용된다.
I. 6-파라미터 어파인 후보를 구성하려면, 세 개의 제어 점들의 모션 정보가 필요한다. 세 개의 제어 점들은, 다음 네 가지 조합({CP1, CP2, CP4}, {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4}) 중의 하나로부터 선택될 수 있다. 조합 {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4}는, 왼쪽 상단(top-left), 오른쪽 상단(top-right) 및 왼쪽 하단(bottom-left) 제어 점들에 의하여 표현되는 6-파라미터 모션 모델로 변환된다.
II. 4-파라미터 어파인 후보를 구성하려면, 두 개의 제어 점들의 모션 정보가 필요하다. 두 개의 제어 점들은, 2개의 조합({CP1, CP2}, {CP1, CP3}) 중 하나로부터 선택될 수 있다. 2개의 조합은, 왼쪽 상단(top-left) 및 오른쪽 상단(top-right) 제어 점들에 의하여 표현되는 4-파라미터 모션 모델로 변환된다.
III. 구성된 어파인 후보자들의 조합은, 다음과 같은 순서로, 후보 리스트에 삽입된다.
{CP1, CP2, CP3}, {CP1, CP2, CP4}, {CP1, CP3, CP4}, {CP2, CP3, CP4}, {CP1, CP2}, {CP1, CP3}
i. 각 조합에 대해, 각 CP에 대한 리스트 X의 참조 인덱스가 검사(check)된다. 모두가 동일한 경우, 이 조합은, 리스트 X에 대해 유효한 CPMV를 가지고 있는 것이다. 만약 조합이 리스트 0과 리스트 1 모두에 대해 유효한 CPMV를 가지고 있지 않는 경우, 이 조합은 유효하지 않은 것(invalid)으로 마크(mark)된다. 그렇지 않으면, 이는 유효한 것이고, CPMV는 서브-블록 병합 리스트(sub-block merge list)에 삽입된다.
3) 제로 모션 벡터로 패딩(Padding with zero motion vectors)
어파인 병합 후보 리스트의 후보 수가 5 미만이면, 제로 참조 인덱스(zero reference indices)를 가지는 제로 모션 벡터(zero motion vectors)가, 리스트가 풀(full)이 될 때까지, 후보 리스트에 삽입된다. 보다 구체적으로, 서브-블록 병합 후보 리스트(sub-block merge candidate list)에 대하여, MV들을 가진 4-파라미터 병합 후보(4-parameter merge candidate)는 (0,0)으로 설정되고, 예측 방향(prediction direction)은, (P 슬라이스에 대해) 리스트 0부터 단일-예측(uni-prediction)으로 설정되고, (B 슬라이스에 대해) 이중-예측(bi-prediction)으로 설정된다.
2. 기존 구현의 단점(Drawbacks of existing implementations)
VVC에 적용될 때, ARC에 다음과 같은 문제가 있을 수 있다.
1. ARC와 관련된 정보를 신호(signal)하는 방법이 아직 명확하지 않다.
2. 참조 픽처, 동일위치 픽처 및 현재 픽처가 동일한 해상도를 가지고 있지 않을 때, 어파인/TMVP 또는 ATMVP를 적용하는 방법이 아직 명확하지 않다.
3. ARC를 위한 다운-샘플링 또는 업-샘플링 필터를 위한 설계는 더 잘 설계될 수 있다.
3. 적응적 해상도 변환을 위한 예제 방법(Example methods for adaptive resolution conversion)
아래의 상세한 발명은 일반적인 개념을 설명하는 예로 생각되어야 한다. 이 발명들은, 좁은 방법으로 해석되어서는 안된다. 더욱이, 이들 발명들은 어떤 방식으로든 결합될 수 있다.
다음의 설명에서 SatShift(x, n)는 아래와 같이 정의된다.
Shift(x, n)은, Shift(x, n) = (x+ offset0)>>n 로 정의된다.
일 예에서, offset0 및/또는 offset1은, (1<<n)>>1 또는 (1<<(n-1))로 설정된다. 또 다른 예에서, ffset0 및/또는 offset1은, 0으로 설정된다. 또 다른 예에서, offset0 = offset1 = ((1<<n)>>1)-1 또는 (1<<(n-1))-1)-1 이다.
Clip3(min, max, x)는, 아래와 같이 정의된다.
Floor(x)는, x보다 작거나 같은 가장 큰 정수로 정의된다.
Ceil(x)는, x보다 크거나 같은 가장 작은 정수로 정의된다.
Log2(x)는, x의 베이스-2 로그(logarithm)로 정의된다.
ARC에 대한 신호(signaling)
1. ARC와 관련된 픽처 차원 정보(picture dimension information)(폭 및/또는 높이)는, DPS, VPS, SPS, PPS, APS, 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더 이외의 비디오 단위(video unit)에서 신호될 것을 제안한다.
a. 한 예에서, ARC와 관련된 픽처 차원 정보는, SEI(Supplemental Enhancement Information) 메시지로 신호(signal)될 수 있다.
b. 한 예에서, ARC와 관련된 픽처 차원 정보는, ARC를 위한 개별적인 비디오 단위(individual video unit)에서 신호(signal)될 수 있다. 예를 들어, 이 비디오 단위는, RPS(Resolution Parameter Set) 또는 CPS(Conversion Parameter Set) 또는 기타 다른 이름으로 명명될 수 있다.
i. 한 예에서, 하나보다 많은 폭와 높이의 조합이, (이름을 이렇게 붙여진다면) RPS 또는 CPS와 같은, ARC를 위한 개별적인 비디오 단위에서 신호(signal)될 수 있다.
2. 픽처 차원(폭 또는 높이)은 0차 지수 골롬 코드(0-th order Exponential Golomb code)로는 신호(signal)되지 않는 것을 제안한다.
a. 한 예에서, 고정 길이 코드(fixed-length code) 또는 일진 코드(unary code)로 코딩될 수 있다.
b. 한 예에서, K차 지수 골롬 코드(K-th Exponential Golomb code)(K>0)로 코딩될 수 있다.
c. 차원은, DPS, VPS, SPS, PPS, APS, 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더 등과 같은 비디오 단위로 또는 (이름을 이렇게 붙여진다면) RPS 또는 CPS와 같은 ARC를 위한 개별적인 비디오 단위에서 신호(signal)될 수 있다.
3. 다중 해상도(multiple resolution)를 신호(signal)하는 대신, 해상도 비율(resolution ratios)을 신호(signal)하는 것을 제안한다.
a. 한 예에서, 하나의 기본 해상도(base resolution)의 지시(indications)가 신호(signal)될 수 있다. 또한, 허용되는 비율 조합들(ratio combinations)(예: 수평 비율, 수직 비율)의 지시(indications)가 추가로 신호(signal)될 수 있다.
b. 한 예에서, 허용된 비율 조합들의 지시의 인덱스는, 하나의 픽처에 대한 실제 해상도를 나타내기 위해, PPS에서 신호(signal)될 수 있다.
4. DPS, VPS, SPS, PPS, APS, 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더 등과 같은 단일 비디오 단위(single video unit)에서 또는 (이름을 이렇게 붙여진다면) RPS 또는 CPS와 같은 ARC를 위한 개별적인 비디오 단위에서 픽처 폭과 높이의 둘 이상의 조합이 신호될 때, 제1 조합에서의 폭과 높이 모두 제2 조합에서의 폭과 높이과 동일한 것은 허용되지 않는다.
5. 신호된 차원(폭 W 및 높이 H)은 제약에 있어야 한다는 것을 제안한다.
a. 예를 들어, W는, TW_min <= W <= TW_max 을 만족해야 한다.
b. 예를 들어, H는, TH_min <= H <=TH_max 를 만족해야 한다.
c. 일 예에서, W-TW_min-B가 신호된다. 여기서, B는, 예를 들어 0과 같은, 고정값(fixed value)이다.
d. 일 예에서, H-TH_min-B가 신호된다. 여기서, B는, 예를 들어 0과 같은, 고정값이다.
e. 일 예에서, TW_max-W-B가 신호된다. 여기서, B는, 예를 들어 0과 같은, 고정값이다.
f. 일 예에서, TH_max-H-B가 신호된다. 여기서, B는, 예를 들어 0과 같은, 고정값이다.
g. 일 예에서, TW_min 및/또는 TH_min 이 신호될 수 있다.
h. 일 예에서, TW_max 및/또는 TH_max 이 신호될 수 있다.
6. 신호 차원(폭 W 및 높이 H)은, W=w*X 및 H=h*Y의 형태여야 할 것을 제안한다. X와 Y는 미리 정의된 정수이다. 예를 들어, X=Y=4 이다.
a. 일 예에서, w와 h가 신호된다. W와 H는 w와 h로부터 획득(derive)된다.
7. 픽처 차원 정보(폭 및/또는 높이)는 예측 방식(predictive way)으로 코딩될 수 있는 것을 제안한다.
a. 일 예에서, 제1 폭(W1)와 제2 폭(W2) 간의 차(difference)(즉, W2-W1)는 신호될 수 있다.
i. 대안적으로, W2-W1-B가 신호될 수 있다. 여기서, B는, 예를 들어 1과 같은, 고정값이다.
ii. 일 예에서, W2는 W1보다 커야 한다.
iii. 일 예에서, 상기 차(difference)는, 일진 코드(unary code) 또는 절단된 일진 코드(truncated unary code) 또는 고정 길이 코드(fixed length code) 또는 고정 길이 코딩(fixed length coding)으로 코딩될 수 있다.
b. 일 예에서, 제1 높이(H1)와 제2 높이(H2) 간의 차(difference)(즉, H2-H1)는 신호될 수 있다.
i. 대안적으로, H2-H1-B가 신호될 수 있다. 여기서, B는, 예를 들어 1과 같은, 고정값이다.
ii. 일 예에서, H2는 H1보다 커야 한다.
iii. 일 예에서, 상기 차(difference)는, 일진 코드(unary code) 또는 절단된 일진 코드(truncated unary code) 또는 고정 길이 코드(fixed length code) 또는 고정 길이 코딩(fixed length coding)으로 코딩될 수 있다.
c. 일 예에서, 제1 폭(W1)과 제2 폭(W2) 간의 비율(ratio)(즉, W2/W1)이 신호될 수 있다. 예를 들어, W2=F*W1인 경우, F가 신호된다. 또 다른 예에서, W2=Shift(F*W1, P)이면 F가 신호된다. 여기서, P는 정밀도(precision)를 나타내는 숫자이고, 예를 들어 P=10일 수 있다.
i. 대안적으로, F는 (W2*P+W1/2)/W1 일 수 있다. P는 정밀도(precision)를 나타내는 숫자이다. 예를 들어, P=10일 수 있다.
ii. 대안적으로, F-B가 신호될 수 있다. 여기서, B는, 예를 들어 1과 같은, 고정값이다.
iii. 일 예에서, W2는 W1보다 커야 한다.
iv. 일 예에서, F는, 일진 코드(unary code) 또는 절단된 일진 코드(truncated unary code) 또는 고정 길이 코드(fixed length code) 또는 고정 길이 코딩(fixed length coding)으로 코딩될 수 있다.
d. 일 예에서, 제1 높이(H1)와 제2 높이(H2) 간의 비율(ratio)(즉, H2/H1)이 신호될 수 있다. 예를 들어, H2=F*H1인 경우, F가 신호된다. 또 다른 예에서, H2=Shift(F*H1, P)이면 F가 신호된다. 여기서, P는 정밀도(precision)를 나타내는 숫자이고, 예를 들어 P=10일 수 있다.
i. 대안적으로, F는 (H2*P+H1/2)/H1 일 수 있다. P는 정밀도(precision)를 나타내는 숫자이다. 예를 들어, P=10일 수 있다.
ii. 대안적으로, F-B가 신호될 수 있다. 여기서, B는, 예를 들어 1과 같은, 고정값이다.
iii. 일 예에서, H2는 H1보다 커야 한다.
iv. 일 예에서, F는, 일진 코드(unary code) 또는 절단된 일진 코드(truncated unary code) 또는 고정 길이 코드(fixed length code) 또는 고정 길이 코딩(fixed length coding)으로 코딩될 수 있다.
e. 일 예에서, W2/W1은 H2/H1와 같아야 하며, W2/W1 또는 H2/H1만 신호되어야 한다.
8. 다른 해상도/해상도 비율을 신호할 때 다음과 같은 추가적인 구문 요소(syntax element)가 추가로 신호될 수 있는 것을 제안한다.
a. 구문 요소는 CTU 크기의 지시(indication)일 수 있다.
b. 구문 요소는 최소 코딩 단위 크기(minimum coding unit size)의 지시(indication)일 수 있다.
c. 구문 요소는 최대 및/또는 최소 변환 블록 크기(transform block size)의 지시(indication)일 수 있다.
d. 구문 요소는 쿼드 트리(Quad-tree) 및/또는 이진 트리(binary tree)/삼차 트리(ternary tree)의 최대 깊이의 지시(indication)일 수 있다.
e. 일 예에서, 추가 구문 요소는 특정 픽처 해상도와 바인딩(binding)될 수 있다.
참조 픽처 리스트(Reference picture list)
9. 적합성 비트스트림(conformance bitstream)은, 현재 픽처와 다른 해상도의 참조 픽처들에 대해서는 동일한 해상도의 참조 픽처들과 비교하여 더 큰 참조 인텍스가 할당되어야 한다는 것을 만족한다.
a. 대안적으로, 하나의 픽처/슬라이스/타일/타일 그룹을 디코딩하기 전에, 참조 픽처 리스트에서, 현재 픽처와 다른 해상도의 참조 픽처들에 대해서는 동일한 해상도의 참조 픽처들과 비교하여 더 큰 참조 인텍스가 할당되도록 재정렬(reorder)될 수 있다.
ARC로 시간적 블록(예: TMVP 및 ATMVP)으로부터의 모션 예측(Motion prediction from temporal blocks (e.g., TMVP and ATMVP) with ARC)
10. A와 B의 2개 블록이 있다고 가정한다. 블록 A의 참조 픽처가 현재 블록과 동일한 해상도를 가진 참조 픽처이고, 블록 B의 참조 픽처가 현재 블록과 다른 해상도를 가진 참조 픽처인 경우, 블록 B의 모션 정보를 이용하여 블록 A를 예측하는 것을 허용하지 않을 것을 제안한다.
a. 블록 A의 참조 픽처가 현재 블록과 다른 해상도를 가진 참조 픽처이고 블록 B의 참조 픽처가 현재 블록과 동일한 해상도를 가진 참조 픽처인 경우, 블록 B의 모션 정보를 이용하여 블록 A를 예측하는 것을 허용하지 않을 것을 제안한다.
11. 현재 픽처와 다른 해상도를 가진 참조 픽처의 블록으로부터 예측하는 것을 허용하지 않을 것을 제안한다.
12. 참조 픽처의 폭이 현재 픽처의 폭과 다르거나 또는 참조 픽처의 높이가 현재 픽처의 높이와 다른 경우, 참조 픽처가 동일위치 참조 픽처(collocated reference picture)가 될 수 없다는 것을 제안한다.
b. 대안적으로, 참조 픽처의 폭이 현재 픽처의 폭과 다르고, 참조 픽처의 높이가 현재 픽처의 높이와 다른 경우, 참조 픽처가 동일위치 참조 픽처(collocated reference picture)가 될 수 없다.
13. TMVP/ATMVP에서 동일위치 블록(collocated block)을 찾는 방법 또는 ATMVP에서 동일위치 서브-블록을 찾는 방법은, 동일위치 참조 픽처와 현재 픽처가 동일한 픽처 폭 및 높이를 가지는지 여부에 따라 달라진다.
a. 일 예에서, 현재 픽처 차원은 W0 * H0이고 동일위치 참조 픽처 차원은 W1 * H1이라고 가정하면, 동일위치 블록의 위치 및/또는 차원은 W0, H0, W1 및 H1에 따라 달라질 수 있다.
i. 일 예에서, 서브-블록 또는 현재 블록의 왼쪽 상단 좌표(top-left coordinate)가 (x, y)라고 가정하면, 동일위치 블록 또는 서브-블록은, 동일위치 참조 픽처에서 위치(x', y')를 포함(cover)하는 블록으로 획득(derive)될 수 있다. 여기서, (x', y')는 x'= Rx * (x + offsetX) + offsetX', y' = Ry * (y + offsetY) + offsetY'로 계산될 수 있다. offsetX'와 offsetY'는, 예를 들어 0과 같은, 값이다
1) 일 예에서, 현재 블록 또는 현재 서브-블록의 차원이 w*h라고 가정하면, (offsetX, offsetY)는 (x+w, y+h)와 동일할 수 있다.
a)대안적인 예에서,(offsetX, offsetY)는 (x+w/2, y+h/2)와 같을 수 있다.
b) 대안적인 예에서,(offsetX, offsetY)는 (x+w/2-1, y+h/2-1)와 같을 수 있다.
c) 대안적인 예에서,(offsetX, offsetY)는 (0, 0)과 같을 수 있다.
2) 일 예에서, Rx = W1/W0.
3) 일 예에서, Ry = H1/H0.
4) 일 대안적인 예에서, x' = Shift(Rx * (x + offsetX), P). 여기서, P는 정밀도(precision)를 나타내는 숫자이고, 예를 들어 10일 수 있다.
a Rx는 Rx = (W1 * P + offset)/W0 로 구할 수 있으며, offset은, 0 또는 W0/2와 같은, 정수이다.
5) 일 대안적인 예에서, y' = Shift(Ry *(y + offsetY), P). 여기서, P는 정밀도(precision)를 나타내는 숫자이고, 예를 들어 10일 수 있다.
a) Ry는 Ry = (H1 * P + offset)/H0 로 구할 수 있으며, offset은, 0 또는 W0/2와 같은, 정수이다.
14. 현재 픽처와 다른 해상도를 가진 참조 픽처에서의 참조 샘플의 업-샘플링 또는 다운-샘플링에 추가하여, 모션 정보/코드 정보를 추가로 업-샘플링 또는 다운-샘플링하고, 업-샘플링 또는 다운-샘플링된 정보는 다른 프레임들에서 후속 블록들을 코딩하는데 이용될 수 있도록 하는 것을 제안한다.
15. 동일위치 참조 픽처(collocated reference picture)의 폭 또는 높이가 현재 픽처의 폭 또는 높이와 다른 경우, 상기 동일위치의 MV를 저장하는 버퍼는 업-샘플링 또는 다운-샘플링 될 수 있는 것을 제안한다.
b. 일 예에서, 업 샘플링 또는 다운 샘플링된 MV 버퍼 및 업 샘플링 또는 다운 샘플링 전의 MV 버퍼 모두 저장될 수 있다.
i.대안적으로, 업 샘플링 또는 다운 샘플링 전의 MV 버퍼는 삭제될 수 있다.
c. 일 예에서, 업-샘플링된 MV 버퍼 내의 복수의 MV들은, 업-샘플링 전에, MV 버퍼의 한 MV로부터 복사된다.
i. 예를 들어, 업-샘플링된 MV 버퍼 내의 여러 MV들은, 업-샘플링 전에 MV가 MV 버퍼에 있던 영역에 대응하는 영역에 있을 수 있다.
d. 일 예에서, 다운-샘플링된 MV 버퍼 내의 하나의 MV는, 다운-샘플링 전에, MV 버퍼 내의 복수의 MV들 중 하나로부터 선택(pick)된다.
i. 예를 들어, 다운-샘플링된 MV 버퍼 내의 하나의 MV는, 다운-샘플링 전에 복수의 MV가 MV 버퍼에 있던 영역에 대응하는 영역에 있을 수 있다.
16. ATMVP에서 시간적 MV(temporal MV)의 획득(derivation)은 현재 픽처의 차원 W0 * H0 및 동일위치 픽처의 차원 W1 * H1에 의존하는 것을 제안한다.
c 예를 들어, 동일위치 픽처의 차원와 현재 픽처의 차원이 동일하지 않은 경우, tMV로 표시되는 시간적 MV는 tMV'로 변환(convert)될 수 있다.
i. 예를 들어, tMV=(tMVx, tMVy), tMV'=(tMVx,tMVy')로 가정하면, tMVx'는 tMVx' = Rx*tMVx +offsetx 로 계산되고, tMVy'는 tMVy'=Ry*tMVy+ offsety로 계산될 수 있다. offsetx 및 offsety은, 예를 들어 0과 같은, 값이다.
1) 일 예에서, Rx = W1/W0.
2) 일 예에서, Ry = H1/H0.
3) 일 대안적 예에서, tMVx' = Shift(Rx * (tMVx+offsetX), P) 또는 SatShift(Rx * (tMVx+offsetX), P) 이다. 여기서, P는 정밀도(precision)를 나타내는 숫자이고, 예를 들어 10일 수 있다.
a) Rx는 Rx=(W1*P+offset)/W0 로 구할 수 있다. offset은, 예를 들어 0 또는 W0/2와 같은, 정수이다.
4) 일 대안적 예에서, tMVy' = Shift(Ry * (tMVy+offsetY), P) 또는 SatShift(Ry * (tMVy+offsetY), P)이다. 여기서, P는 정밀도(precision)를 나타내는 숫자이고, 예를 들어 10일 수 있다.
a) Ry는 Ry=(H1*P+offset)/H0 로 구할 수 있다. offset은, 예를 들어 0 또는 H0/2와 같은, 정수이다.
17. TMVP/ATMVP의 현재 서브-블록 또는 현재 블록에 대한 MV 예측(MVP)의 획득(derivation)은, 현재 픽처의 차원, 및/또는 MVP에 의해 참조되는 참조 픽처의 차원, 및/또는 동일위치 픽처의 차원, 및/또는 동일위치 MV에 의하여 참조되는 동일위치 픽처의 참조 픽처의 차원에 의존할 수 있음을 제안한다. 동일위치 MV(collocated MV)는, 동일위치 블록(collocated block) 내에서 찾은 MV를 나타낸다. 도 23은, 현재 픽처(CurPic), MVP에 의해 참조되는 참조 픽처(RefPic), 동일위치 픽처(ColPic), 및 동일위치 MV에 의하여 참조되는 동일위치 픽처의 참조 픽처(RefColPic)가, (POC와 함께) 각각 시간 T0, T1, T2, T3에 있는 예를 도시한다. 그리고, 이들의 차원들은, 각각, W0*H0, W1*H1, W2*H2 and W3*H3 이다. 현재 블록/서브-블록의 MVP는 MvCur = (MvCurX, MvCurY)로 나타낸다. 동일위치 MV는 MvCol (MvColX, MvColY)로 나타낸다.
d. MvCurX는. MvCurX = Rx*MvColX +offsetx 로 계산될 수 있다. MvCurY는, MvCurY =Ry* MvColY + offsety 로 계산될 수 있다. offsetx와 offsety는, 예를 들어 0과 같은, 값이다.
e. 일 예에서, Rx = W0/W2.
f. 일 예에서, Ry = H0/H2.
g. 일 대안적 예에서, MvCurX = Shift(Rx * (MvColX +offsetX), P) 또는 MvCurX = SatShift(Rx * (MvColX +offsetX), P) 이다. 여기서, P는 정밀도(precision)를 나타내는 숫자이고, 예를 들어 10일 수 있다.
i Rx는, Rx=(W0*P+offset)/W2 로 구할 수 있다. offset은, 예를 들어 0 또는 W2/2와 같은, 정수이다.
h. 일 대안적 예에서, MvCurY = Shift(Ry * (MvColY +offsetY), P) 또는 MvCurY = SatShift(Ry * (MvColY +offsetY), P)이다. 여기서, P는 정밀도(precision)를 나타내는 숫자이고, 예를 들어 10일 수 있다.
i. Ry는, Ry=(H0*P+offset)/H2로 구할 수 있다. offset은, 예를 들어 0 또는 W2/2와 같은, 정수이다.
i. 일 예에서, (W3, H3)는 (W2, H2)와 같아야 한다. 그렇지 않으면 MvCol은 사용할 수 없는 것으로 간주될 수 있다.
j. 일 예에서,(W0, H0)는 (W1, H1)과 같아야 한다. 그렇지 않으면 MVCur은 사용할 수 없는 것으로 간주될 수 있다.
ARC의 보간 및 스케일링(Interpolation and Scaling in ARC)
18. ARC를 위한 하나 또는 다수의 다운-샘플링 또는 업-샘플링 필터링 방법은, DPS, VPS, SPS, PPS, APS, 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더 등과 같은 비디오 단위로 또는 (이름을 이렇게 붙여진다면) RPS 또는 CPS와 같은 ARC를 위한 개별적인 비디오 단위에서 신호(signal)될 수 있는 것을 제안한다.
19. JVET-N0279의 접근 방식에서, hori_scale_fp 및/또는 vert_scale_fp는, DPS, VPS, SPS, PPS, APS, 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더 등과 같은 비디오 단위로 또는 (이름을 이렇게 붙여진다면) RPS 또는 CPS와 같은 ARC를 위한 개별적인 비디오 단위에서 신호(signal)될 수 있는 것을 제안한다.
20. 불렛 8(bullet 8) - 불렛 11에서 Rx 및/또는 Ry의 획득(derivation) 또는 hori_scale_fp 및/또는 vert_scale_fp의 획득과 같은 RAC에서의 스케일링 접근에서의 분할 동작(division operation)은, 하나 또는 복수의 테이블(table)이 사용될 수 있는 하나 또는 복수의 동작에 의하여 대체(replace)되거나 근사(approximate)될 수 있는 것을 제안한다. 예를 들어, P1905289301에 개시된 방법은, 분할 동작들(division operations)을 대체(replace)하거나 근사(approximate)하는 데 사용될 수 있다.
전술한 예들은, 예를 들어 방법 2400, 2410, 2420, 2430, 2440, 2450, 2460, 2470, 2480 및 2490와 같은, 아래에 설명되는 방법들의 문맥에 포함될 수 있고, 비디오 디코더 또는 비디오 인코더에서 구현될 수 있다.
도 24a는 비디오 처리(video processing)를 위한 예시적인 방법의 순서도를 나타낸다. 방법(2400)은, 단계(2402)에서, 하나 이상의 비디오 단위를 포함하는 하나 이상의 비디오 세그먼트를 포함하는 비디오 및 비디오의 비트스트림 표현 간의 변환(conversion)을 수행하는 것을 포함한다. 일부 실시예들에서, 비트스트림 표현은, 형식 규칙(format rule)을 준수(conform)하고, 적응적 해상도 변환(ARC: adaptive resolution conversion) 프로세스와 관련된 정보를 포함한다. 상기 형식 규칙은, 상기 적응적 해상도 변환(ARC) 프로세스의 비디오 세그먼트에 대한 적용가능성(applicability)을 지정(specify)한다. 상기 비디오 세그먼트의 상기 하나 이상의 비디오 단위가 서로 다른 해상도로 코딩된다는 지시(indication)는, 구문 구조(syntax structure)로 상기 비트스트림 표현에 포함된다. 상기 구문 구조는, 헤더 구문 구조(header syntax structure), 디코더 파라미터 세트(DPS: decoder parameter set), 비디오 파라미터 세트(VPS: video parameter set), 픽처 파라미터 세트(PPS: picture parameter set), 시퀀스 파라미터 세트(SPS: sequence parameter set), 및 적응적 파라미터 세트(APS: adaptive parameter set)와 상이하다.
일부 실시예들에서, 비트스트림 표현은, 형식 규칙(format rule)을 준수(conform)하고, 적응적 해상도 변환(ARC: adaptive resolution conversion) 프로세스와 관련된 정보를 포함한다. 오더(order) K의 지수 골롬 코드(exponential-Golomb code)로 코딩되는 상기 하나 이상의 비디오 단위의 차원(dimension)은, 상기 비트스트림 표현으로 신호(signal)된다. 상기 K는 양의 정수(positive integer)이다. 상기 형식 규칙은, 상기 적응적 해상도 변환(ARC) 프로세스의 비디오 세그먼트에 대한 적용가능성(applicability)을 지정(specify)한다. 상기 비디오 세그먼트의 상기 하나 이상의 비디오 단위가 서로 다른 해상도로 코딩된다는 지시(indication)가, 구문 구조(syntax structure)로 상기 비트스트림 표현에 포함된다.
일부 실시예들에서, 비트스트림 표현은, 형식 규칙(format rule)을 준수(conform)하고, 적응적 해상도 변환(ARC: adaptive resolution conversion) 프로세스와 관련된 정보를 포함한다. 높이(H) 및 폭(W)은, 상기 비트스트림 표현으로 신호(signal)된다. 상기 높이(H) 및 폭(W)은, 양의 정수이고, 제한(constrain)된다. 상기 형식 규칙은, 상기 적응적 해상도 변환(ARC) 프로세스의 비디오 세그먼트에 대한 적용가능성(applicability)을 지정(specify)한다. 상기 비디오 세그먼트의 상기 하나 이상의 비디오 단위가 서로 다른 해상도로 코딩된다는 지시(indication)가, 구문 구조(syntax structure)로 상기 비트스트림 표현에 포함된다.
도 24b는 비디오 처리를 위한 예시적인 방법의 순서도를 나타낸다. 방법(2410)은, 단계(2412)에서, (a) 비디오의 현재 비디오 블록(current video block)의 제1 시간적 이웃 블록(first temporally neighboring block)의 제1 참조 픽처(first reference picture)의 해상도가 현재 픽처의 해상도와 동일하고, (b) 현재 비디오 블록의 제2 시간적 이웃 블록의 제2 참조 픽처의 해상도가 현재 픽처의 해상도와 상이하다는 것을 결정하는 것을 포함한다.
방법(2410)은, 단계(2414)에서, 상기 결정에 따라, 제1 시간적 이웃 블록의 예측에서 제2 시간적 이웃 블록의 모션 정보의 사용을 비활성화(disable)함으로써, 현재 비디오 블록과 비디오의 비트스트림 표현 간의 변환을 수행하는 것을 포함한다.
도 24c는 비디오 처리를 위한 예시적인 방법의 순서도를 나타낸다. 방법(2420)은, 단계(2422)에서, (a) 현재 비디오 블록의 제1 시간적 이웃 블록의 제1 참조 픽처의 해상도가 현재 픽처의 해상도와 상이하고, (b) 현재 비디오 블록의 제2 시간적 이웃 블록의 제2 참조 픽처의 해상도가 현재 픽처의 해상도와 동일하다는 것을 결정하는 것을 포함한다.
방법(2420)은, 단계(2424)에서, 상기 결정에 따라, 제1 시간적 이웃 블록의 예측에서 제2 시간적 이웃 블록의 모션 정보의 사용을 비활성화(disable)함으로써, 현재 비디오 블록과 비디오의 비트스트림 표현 간의 변환을 수행하는 것을 포함한다.
도 24d는 비디오 처리를 위한 예시적인 방법의 순서도를 나타낸다. 방법(2430)은, 단계(2432)에서, 비디오의 현재 비디오 블록(current video block)에 대하여, 현재 비디오 블록과 연관된 비디오 블록을 포함하는 참조 픽처의 해상도가 현재 비디오 블록을 포함하는 현재 픽처의 해상도와 상이하다는 것을 결정하는 것을 포함한다.
방법(2430)은, 단계(2434)에서, 상기 결정에 따라, 참조 픽처 내 비디오 블록에 기초한 예측을 비활성화(disable)함으로써, 현재 비디오 블록과 비디오의 비트스트림 표현 간의 변환을 수행하는 것을 포함한다.
도 24e는 비디오 처리를 위한 예시적인 방법의 순서도를 나타낸다. 방법(2440)은, 단계(2442)에서, 픽처의 적어도 하나의 차원(dimension)에 기초하여, 픽처가, 현재 픽처의 현재 비디오 블록에 대한 동일위치 참조 픽처(collocated reference picture)로 사용되는 것이 허용되는지에 관하여 결정하는 것을 포함한다.
방법(2440)은, 단계(2444)에서, 상기 결정에 기초하여, 비디오의 현재 비디오 블록과 비디오의 비트스트림 표현 간의 변환을 수행하는 것을 포함한다.
도 24f는 비디오 처리를 위한 예시적인 방법의 순서도를 나타낸다. 방법(2450)은, 단계(2452)에서, 비디오의 현재 비디오 블록의 예측(prediction)을 위하여, 동일위치 블록(collocated block)을 포함하는 동일위치 참조 픽처(collocated reference picture)의 차원이 현재 비디오 블록을 포함하는 현재 픽처의 차원과 동일하다는 결정에 기초하여, 동일위치 블록(collocated block)을 식별하는 것을 포함한다.
방법(2450)은, 단계(2454)에서, 상기 동일위치 블록을 이용하여, 현재 비디오 블록과 비디오의 비트스트림 표현 간의 변환을 수행하는 것을 포함한다.
도 24g는 비디오 처리를 위한 예시적인 방법의 순서도를 나타낸다. 방법(2460)은, 단계(2462)에서, 비디오의 현재 비디오 블록에 대하여, 현재 비디오 블록과 연관된 참조 픽처가 현재 비디오 블록을 포함하는 현재 픽처의 해상도와 상이한 해상도를 가진다는 것을 결정하는 것을 포함한다.
방법(2460)은, 단계(2464)에서, 현재 비디오 블록과 비디오의 비트스트림 표현 간의 변환의 일부(part)로서, 현재 비디오 블록에 대한 모션 정보(motion information) 또는 현재 비디오 블록에 대한 코딩 정보(coding information) 및 참조 픽처의 하나 이상의 참조 샘플에 대한 업-샘플링 동작(up-sampling operation) 또는 다운-샘플링 동작(down-sampling operation)을 수행하는 것을 포함한다.
도 24h는 비디오 처리를 위한 예시적인 방법의 순서도를 나타낸다. 방법(2470)은, 단계(2472)에서, 비디오의 현재 비디오 블록과 비디오의 비트스트림 표현 간의 변환을 위해, 현재 비디오 블록을 포함하는 현재 픽처의 높이(height) 또는 폭(width)이 현재 비디오 블록과 연관된 동일위치 참조 픽처(collocated reference picture)의 높이 또는 폭과 상이하다는 것을 결정하는 것을 포함한다.
방법(2470)은, 단계(2474)에서, 상기 결정에 기초하여, 동일위치 참조 픽처의 하나 이상의 모션 벡터를 저장하는 버퍼에 대하여 업-샘플링 동작 또는 다운-샘플링 동작을 수행하는 것을 포함한다.
도 24i는 비디오 처리를 위한 예시적인 방법의 순서도를 나타낸다. 방법(2480)은, 단계(2482)에서, 비디오의 현재 비디오 블록을 포함하는 현재 픽처의 차원 및 현재 비디오 블록과 연관된 동일위치 픽처의 차원에 기초하여, 현재 비디오 블록에 적용되는 대안적 시간적 모션 벡터 예측(ATMVP: alternative temporal motion vector prediction) 프로세스에 대한 정보를 획득(derive)하는 것을 포함한다.
방법(2480)은, 단계(2484)에서, 상기 시간적 모션 벡터를 이용하여, 현재 비디오 블록과 비디오의 비트스트림 표현 간의 변환을 수행하는 것을 포함한다.
도 24j는 비디오 처리를 위한 예시적인 방법의 순서도를 나타낸다. 방법(2490)은, 단계(2492)에서, 비디오의 현재 비디오 블록에 적응적 해상도 변환(ARC: adaptive resolution conversion) 프로세스를 적용하기 위하여, 비디오의 비트스트림 표현을 구성(configure)하는 것을 포함한다. 일부 실시예들에서, ARC 프로세스와 관련된 정보는 비트스트림 표현으로 신호될 수 있다. 현재 비디오 블록을 포함하는 현재 픽처는 제1 해상도를 가지고, ARC 프로세스는 제1 해상도와 다른 제2 해상도로 현재 비디오 블록의 일부(portion)를 리샘플링(resampling)하는 것을 포함한다.
방법(2490)은, 단계(2494)에서, 상기 구성(configuration)에 기초하여, 현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 간의 변환을 수행하는 것을 포함한다.
4. 개시된 기술의 예시적 구현(Example implementations of the disclosed technology)
도 25는 비디오 처리 장치(2500)의 블록도이다. 장치(2500)는, 여기에 설명된 하나 이상의 방법을 구현하는 데 사용될 수 있다. 장치(2500)는, 스마트폰, 태블릿, 컴퓨터, 사물인터넷(IoT) 수신기 등에서 구현될 수 있다. 장치(2500)는, 하나 이상의 프로세서(2502), 하나 이상의 메모리(2504) 및 비디오 처리 하드웨어(2506)를 포함할 수 있다. 프로세서(들)(2502)는, 본 문서에 기재된 하나 이상의 방법(방법 2400, 2410, 2420 및 2430을 포함하지만, 이에 제한되지 않음)을 구현하도록 구성될 수 있다. 메모리(들)(2504)은, 여기에 설명된 기술들 및 방법을 구현하기 위하여 사용된 코드 및 데이터를 저장하는데 사용될 수 있다. 비디오 처리 하드웨어(2506)는, 본 문서에 설명된 기술들을 하드웨어 회로로 구현하는데 사용될 수 있다.
일부 실시예들에서, 비디오 코딩 방법은, 도 25와 관련하여 설명된 하드웨어 플랫폼에 구현되는 장치를 이용하여 구현될 수 있다.
개시된 기술의 일부 실시예에는, 비디오 처리 도구 또는 모드를 가능하게 하기 위한 결정을 내리는 것이 포함된다. 예를 들어 비디오 처리 도구 또는 모드가 비활성화(enable)되면, 인코더는 비디오의 블록을 처리할 때 도구 또는 모드를 사용하거나 구현할 수 있지만, 도구 또는 모드의 사용에 기초하여 결과 비트스트림(resulting bitstream)을 반드시 수정해야 하는 것은 아니다. 즉, 비디오의 블록으로부터 비디오의 비트스트림 표현으로 변환하는 것은, 결정에 기초하여 이것이 활성화(enable)되었을 때, 비디오 처리 도구 또는 모드를 사용한다. 또 다른 예에서, 비디오 처리 도구 또는 모드가 활성화(enable)되는 경우, 디코더는, 비디오 처리 도구 또는 모드에 기초하여 비트스트림이 수정되었다는 사실을 알고, 비트스트림을 처리한다. 즉, 비디오의 비트스트림 표현으로부터 비디오의 블록으로 변환하는 것은, 결정에 기초하여 활성화(enable)되는 비디오 처리 도구 또는 모드를 사용하여 수행된다.
개시된 기술의 일부 실시예들은, 비디오 처리 도구 또는 모드를 비활성화(disable)하는 결정을 내리는 것을 포함한다. 예를 들어, 비디오 처리 도구 또는 모드가 비활성화(disable)되는 경우, 인코더는, 비디오의 블록을 비디오의 비트스트림 표현록으로 변환하는 데 도구 또는 모드를 사용하지 않는다. 또 다른 예에서, 비디오 처리 도구 또는 모드가 비활성화(disable)되는 경우, 디코더는, 결정에 따라 활성화되는 비디오 처리 도구 또는 모드를 사용하여 비트스트림이 수정되지 않았다는 사실을 알고, 비트스트림을 처리한다.
도 26은 여기에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 처리 시스템(2600)을 보여주는 블록도이다. 다양한 구현들은, 시스템(2600)의 구성 요소들의 일부 또는 전부를 포함할 수 있다. 시스템(2600)에는 비디오 콘텐츠를 수신하기 위한 입력(2602)이 포함될 수 있다. 비디오 콘텐츠는, 원시 또는 압축되지 않은 형식(예: 8 또는 10비트 다중 요소 픽셀 값(multi-component pixel values))으로 수신될 수 있고, 또는 압축 또는 인코딩된 형식일 수도 있다. 입력(2602)은, 네트워크 인터페이스, 주변 버스 인터페이스 또는 스토리지 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예로는, 이더넷, 패시브 광 네트워크(PON: passive optical network) 등과 같은 유선 인터페이스, 및 Wi-Fi 또는 셀룰러 인터페이스와 같은 무선 인터페이스가 있다.
시스템(2600)은, 본 문서에 기재된 다양한 코딩 또는 인코딩 방법을 구현할 수 있는 코딩 구성요소(coding component)(2604)를 포함할 수 있다. 코딩 구성요소(2604)는, 비디오의 코딩된 표현을 생성하기 위하여, 입력(2602)으로부터 코딩 구성요소(2604)의 출력으로, 비디오의 평균 비트레이트(average bitrate)를 감소시킬 수 있다. 따라서, 코딩 기술을, 비디오 압축 또는 비디오 트랜스코딩 기술(video transcoding techniques)이라고도 한다. 코딩 구성요소(2604)의 출력은, 구성요소(2606)에 의해 표현되는 바와 같이, 연결된 통신을 통해 전송되거나 저장될 수 있다. 입력(2602)에서 수신된 비디오의 저장된 또는 통신된 비트스트림(또는 코딩된) 표현은, 디스플레이 인터페이스(2610)로 전송되는 픽셀 값 또는 디스플레이 가능한 비디오를 생성하기 위해 구성요소(2608)에 의해 사용될 수 있다. 비트스트림 표현으로부터 사용자가 볼 수 있는 비디오(user-viewable video)를 생성하는 프로세스를, 비디오 압축해제(video decompression)라고도 한다. 또한, 특정 비디오 처리 동작들은 "코딩(coding)" 동작 또는 도구로 지칭되지만, 코딩 도구 또는 동작은 인코더에서 사용되고, 코딩의 결과를 되돌리는 대응하는 디코딩 도구 또는 동작은 디코더에 의해 수행된다는 것을 이해할 수 있다.
주변 버스 인터페이스 또는 디스플레이 인터페이스의 예로는, 범용 직렬 버스(USB) 또는 고화질 멀티미디어 인터페이스(HDMI) 또는 디스플레이포트(Displayport) 등이 포함될 수 있다. 스토리지 인터페이스의 예로는, SATA(직렬 첨단 기술 첨부 파일), PCI, IDE 인터페이스 등이 있다. 본 문서에 기재된 기술은 휴대전화, 노트북, 스마트폰 또는 디지털 데이터 처리 및/또는 비디오 디스플레이를 수행할 수 있는 기타 장치와 같은 다양한 전자 기기에 구현될 수 있다.
일부 실시예들에서는 다음의 기술 솔루션들이 구현될 수 있다.
A1. 비디오 처리를 위한 방법에 있어서, 하나 이상의 비디오 단위(video unit)를 포함하는 하나 이상의 비디오 세그먼트(video segment)를 포함하는 비디오 및 상기 비디오의 비트스트림 표현(bitstream representation) 간의 변환(conversion)을 수행하는 단계를 포함하고, 상기 비트스트림 표현은, 형식 규칙(format rule)을 준수(conform)하고, 적응적 해상도 변환(ARC: adaptive resolution conversion) 프로세스와 관련된 정보를 포함하고, 오더(order) K의 지수 골롬 코드(exponential-Golomb code)로 코딩되는 상기 하나 이상의 비디오 단위의 차원(dimension)은, 상기 비트스트림 표현으로 신호(signal)되고, 상기 K는 양의 정수(positive integer)이고, 상기 형식 규칙은, 상기 적응적 해상도 변환(ARC) 프로세스의 비디오 세그먼트에 대한 적용가능성(applicability)을 지정(specify)하고, 상기 비디오 세그먼트의 상기 하나 이상의 비디오 단위가 서로 다른 해상도로 코딩된다는 지시(indication)가, 구문 구조(syntax structure)로 상기 비트스트림 표현에 포함되는, 방법.
A2. 솔루션 A1의 방법에 있어서, 상기 차원은, 상기 하나 이상의 비디오 단위의 비디오 단위의 높이(height) 및 상기 비디오 단위의 폭(width) 중 적어도 하나를 포함하는, 방법.
A3. 솔루션 A1의 방법에 있어서, 상기 하나 이상의 비디오 단위는 픽처를 포함하는, 방법.
A4. 솔루션 A1의 방법에 있어서, 상기 구문 구조는, 디코더 파라미터 세트(DPS: decoder parameter set), 비디오 파라미터 세트(VPS: video parameter set), 시퀀스 파라미터 세트(SPS: sequence parameter set), 픽처 파라미터 세트(PPS: picture parameter set), 적응적 파라미터 세트(APS: adaptive parameter set), 픽처 헤더(picture header), 슬라이스 헤더(slice header), 또는 타일 그룹 헤더(tile group header)인, 방법.
A5. 솔루션 A1의 방법에 있어서, 상기 구문 구조는, 해상도 파라미터 세트(RPS: resolution parameter set) 또는 변환 파라미터 세트(CPS: conversion parameter set)인, 방법.
A6. 솔루션 A1의 방법에 있어서, 비디오 처리를 위한 방법에 있어서, 하나 이상의 비디오 단위(video unit)를 포함하는 하나 이상의 비디오 세그먼트(video segment)를 포함하는 비디오 및 상기 비디오의 비트스트림 표현(bitstream representation) 간의 변환(conversion)을 수행하는 단계를 포함하고, 상기 비트스트림 표현은, 형식 규칙(format rule)을 준수(conform)하고, 적응적 해상도 변환(ARC: adaptive resolution conversion) 프로세스와 관련된 정보를 포함하고, 상기 하나 이상의 비디오 단위의 비디오 단위의 높이(H) 및 폭(W)은, 상기 비트스트림 표현으로 신호(signal)되고, 상기 높이(H) 및 폭(W)은, 양의 정수이고, 제한(constrain)되고, 상기 형식 규칙은, 상기 적응적 해상도 변환(ARC) 프로세스의 비디오 세그먼트에 대한 적용가능성(applicability)을 지정(specify)하고, 상기 비디오 세그먼트의 상기 하나 이상의 비디오 단위가 서로 다른 해상도로 코딩된다는 지시(indication)가, 구문 구조(syntax structure)로 상기 비트스트림 표현에 포함되는, 방법.
A7. 솔루션 A6의 방법에 있어서, W ≤ TWmax이고, TWmax는 양의 정수인, 방법.
A8. 솔루션 A7의 방법에 있어서, TWmax는, 상기 비트스트림 표현으로 신호(signal)되는, 방법.
A9. 솔루션 A6의 방법에 있어서, TWmin ≤ W이고, TWmin은 양의 정수인, 방법.
A10. 솔루션 A9의 방법에 있어서, TWmin는, 상기 비트스트림 표현으로 신호(signal)되는, 방법.
A11. 솔루션 A6의 방법에 있어서, H ≤ THmax이고, THmax는 양의 정수인, 방법.
A12. 솔루션 A11의 방법에 있어서, THmax는, 상기 비트스트림 표현으로 신호(signal)되는, 방법.
A13. 솔루션 A6의 방법에 있어서, THmin ≤ H이고, THmin은 양의 정수인, 방법.
A14. 솔루션 A13의 방법에 있어서, THmin는, 상기 비트스트림 표현으로 신호(signal)되는, 방법.
A15. 솔루션 A6의 방법에 있어서, 상기 높이 H = h x Y이고, 상기 폭 W = w x X이고, w, h, X 및 X는 양의 정수이고, w 및 h는, 상기 비트스트림 표현으로 신호(signal)되는, 방법.
A16. 솔루션 A15의 방법에 있어서, X = Y = 4인, 방법.
A17. 솔루션 A15의 방법에 있어서, X 및 Y는, 미리 정의된 정수인, 방법.
A18. 솔루션 A6의 방법에 있어서, 상기 하나 이상의 비디오 단위는, 픽처를 포함하는, 방법.
A19. 비디오 처리를 위한 방법에 있어서, 하나 이상의 비디오 단위(video unit)를 포함하는 하나 이상의 비디오 세그먼트(video segment)를 포함하는 비디오 및 상기 비디오의 비트스트림 표현(bitstream representation) 간의 변환(conversion)을 수행하는 단계를 포함하고, 상기 비트스트림 표현은, 형식 규칙(format rule)을 준수(conform)하고, 적응적 해상도 변환(ARC: adaptive resolution conversion) 프로세스와 관련된 정보를 포함하고, 상기 형식 규칙은, 상기 적응적 해상도 변환(ARC) 프로세스의 비디오 세그먼트에 대한 적용가능성(applicability)을 지정(specify)하고, 상기 비디오 세그먼트의 상기 하나 이상의 비디오 단위가 서로 다른 해상도로 코딩된다는 지시(indication)가, 구문 구조(syntax structure)로 상기 비트스트림 표현에 포함되고, 상기 구문 구조는, 헤더 구문 구조, 디코더 파라미터 세트(DPS: decoder parameter set), 비디오 파라미터 세트(VPS: video parameter set), 픽처 파라미터 세트(PPS: picture parameter set), 시퀀스 파라미터 세트(SPS: sequence parameter set), 및 적응적 파라미터 세트(APS: adaptive parameter set)와 상이한, 방법.
A20. 솔루션 A19의 방법에 있어서, 상기 적응적 해상도 변환(ARC) 프로세스와 관련된 정보는, 상기 하나 이상의 비디오 단위를 포함하는 픽처의 폭(width) 또는 높이를 포함하는, 방법.
A21. 솔루션 A19 또는 A20의 방법에 있어서, 상기 적응적 해상도 변환(ARC) 프로세스와 관련된 정보는, SEI(Supplemental Enhancement Information) 메시지로 신호(signal)되는, 방법.
A22. 솔루션 A19 또는 A20의 방법에 있어서, 상기 헤더 구문 구조는, 픽처 헤더(picture header), 슬라이스 헤더(slice header) 또는 타일 그룹 헤더(tile group header)를 포함하는, 방법.
A23. 솔루션 A19 또는 A20의 방법에 있어서, 상기 적응적 해상도 변환(ARC) 프로세스와 관련된 정보는, 해상도 파라미터 세트(RPS: resolution parameter set) 또는 변환 파라미터 세트(CPS: conversion parameter set)로 신호(signal)되는, 방법.
A24. 솔루션 A19의 방법에 있어서, 상기 적응적 해상도 변환(ARC) 프로세스와 관련된 정보는, 상기 하나 이상의 비디오 단위를 포함하는 픽처의 높이 대 폭의 비율(ratio of a height to a width)을 포함하는, 방법.
A25. 솔루션 A19의 방법에 있어서, 상기 적응적 해상도 변환(ARC) 프로세스와 관련된 정보는, 상기 하나 이상의 비디오 단위를 포함하는 픽처의 복수의 상이한 높이들 대 상이한 폭들의 비율들(ratios of different heights to different widths)을 포함하는, 방법.
A26. 솔루션 A25의 방법에 있어서, 상기 복수의 비율들 중 허용되는 비율(allowed ratio)에 대응하는 인덱스(index)가, 픽처 파라미터 세트(PPS: picture parameter set)로 신호(signal)되는, 방법.
A27. 솔루션 A25의 방법에 있어서, 상기 복수의 비율들 중 어느 하나의 비율도, 상기 복수의 비율들 중 다른 비율과 상이한, 방법.
A28. 솔루션 A19의 방법에 있어서, 상기 정보는, (i) 제1 폭 및 제2 폭 간의 차이, (ii) 제1 높이 및 제2 높이 간의 차이, (iii) 제1 폭 및 제2 폭 간의 비율, 또는 (iv) 제1 높이 및 제2 높이 간의 비율 중 적어도 하나를 포함하는, 방법.
A29. 솔루션 A28의 방법에 있어서, 상기 정보는, 일진 코드(unary code), 절단된 일진 코드(truncated unary code), 또는 고정 길이 코드(fixed length code)로 부호화(code)되는, 방법.
A30. 솔루션 A19의 방법에 있어서, 상기 비트스트림 표현은, 코딩 트리 단위 크기(coding tree unit(CTU) size)를 나타내는 구문 요소(syntax element), 최소 코딩 단위 크기(minimum coding unit(CU) size)를 나타내는 구문 요소, 최대 또는 최소 변형 블록 크기(maximum or minimum transform block(TB) size)를 나타내는 구문 요소, 상기 하나 이상의 비디오 단위에 적용될 수 있는 분할 프로세스(partitioning process)의 최대 깊이(maximum depth)를 나타내는 구문 요소, 또는 특정 픽처 해상도(specific picture resolution)와 바인드(bind)되도록 구성된 구문 요소를 더 포함하는, 방법.
A31. 솔루션 A19의 방법에 있어서, 상기 하나 이상의 비디오 단위를 포함하는 현재 픽처(current picture)와 연관된 제1 참조 픽처(first reference picture)는, 상기 현재 픽처의 해상도(resolution)와 동일한 제1 해상도를 가지고, 상기 현재 픽처와 연관된 제2 참조 픽처(second reference picture)는, 상기 현재 픽처의 해상도보다 큰 제2 해상도를 가지고, 상기 제2 참조 픽처의 참조 인덱스(reference index)는, 상기 제1 참조 픽처의 참조 인덱스보다 큰, 방법.
A32. 솔루션 A19 내지 A31 중 어느 한 항의 방법에 있어서, 상기 변환(conversion)은, 상기 비트스트림 표현으로부터 상기 하나 이상의 비디오 단위를 생성하는, 방법.
A33. 솔루션 A19 내지 A31 중 어느 한 항의 방법에 있어서, 상기 변환(conversion)은, 상기 하나 이상의 비디오 단위로부터 상기 비트스트림 표현을 생성하는, 방법.
A34. 비디오 시스템 내의 장치에 있어서, 프로세서, 및 명령어들을 저장하는 비일시적 메모리를 포함하고, 상기 명령어들은, 상기 프로세서에 의해 실행되는 경우, 상기 프로세서가, A19 내지 A33 중 어느 한 항의 방법을 구현하도록 하는, 장치.
A35. A19 내지 A33 중 어느 한 항의 방법을 수행하기 위한 프로그램 코드를 포함하는, 비일시적 컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램 제품.
일부 실시예들은 다음의 기술 솔루션들로 구현될 수 있다.
B1. 비디오 처리를 위한 방법에 있어서, (a) 비디오의 현재 비디오 블록(current video block)의 제1 시간적 이웃 블록(first temporally neighboring block)의 제1 참조 픽처(first reference picture)의 해상도가, 현재 비디오 블록을 포함하는 현재 픽처의 해상도와 동일하고, 및 (b) 현재 비디오 블록의 제2 시간적 이웃 블록(second temporally neighboring block)의 제2 참조 픽처(second reference picutre)의 해상도가, 현재 픽처의 해상도와 상이하다는 것을 결정하는 단계, 및 상기 결정에 따라, 상기 제1 시간적 이웃 블록의 예측(prediction)에 상기 제2 시간적 이웃 블록의 모션 정보(motion information)의 사용을 비활성화(disable)함으로써, 현재 비디오 블록 및 상기 비디오의 비트스트림 표현(bitstream representation) 간의 변환(conversion)을 수행하는 단계를 포함하는 방법.
B2. 비디오 처리를 위한 방법에 있어서, (a) 비디오의 현재 비디오 블록(current video block)의 제1 시간적 이웃 블록(first temporally neighboring block)의 제1 참조 픽처(first reference picture)의 해상도가, 현재 비디오 블록을 포함하는 현재 픽처의 해상도와 상이하고, 및 (b) 현재 비디오 블록의 제2 시간적 이웃 블록(second temporally neighboring block)의 제2 참조 픽처(second reference picutre)의 해상도가, 현재 픽처의 해상도와 동일하다는 것을 결정하는 단계, 및 상기 결정에 따라, 상기 제1 시간적 이웃 블록의 예측(prediction)에 상기 제2 시간적 이웃 블록의 모션 정보(motion information)의 사용을 비활성화(disable)함으로써, 현재 비디오 블록 및 상기 비디오의 비트스트림 표현(bitstream representation) 간의 변환(conversion)을 수행하는 단계를 포함하는 방법.
B3. 비디오 처리를 위한 방법에 있어서, 비디오의 현재 비디오 블록에 대해, 현재 비디오 블록과 연관된 비디오 블록을 포함하는 참조 픽처(reference picture)의 해상도가 현재 비디오 블록을 포함하는 현재 픽처(current picture)의 해상도와 상이하다는 것을 결정하는 단계, 및 상기 결정에 따라, 참조 픽처 내 비디오 블록에 기초한 예측 프로세스(prediction process)를 비활성화(disable)함으로써, 현재 비디오 블록 및 상기 비디오의 비트스트림 표현(bitstream representation) 간의 변환(conversion)을 수행하는 단계를 포함하는 방법.
B4. 비디오 처리를 위한 방법에 있어서, 픽처의 적어도 하나의 차원(dimension)에 기초하여, 상기 픽처가, 현재 픽처의 현재 비디오 블록의 동일위치 참조 픽처(collocated reference picture)로 사용되는 것이 허용되는지 여부에 대하여 결정하는 단계, 및 상기 결정에 기초하여, 상기 비디오의 현재 비디오 블록 및 상기 비디오의 비트스트림 표현(bitstream representation) 간의 변환(conversion)을 수행하는 단계를 포함하는 방법.
B5. 솔루션 B4의 방법에 있어서, 상기 참조 픽처의 상기 적어도 하나의 차원은, 상기 현재 비디오 블록을 포함하는 현재 픽처의 대응하는 차원과 상이하고, 상기 참조 픽처는, 동일위치 참조 픽처(collocated reference picture)로 지정(designate)되지 않는 방법.
B6. 비디오 처리를 위한 방법에 있어서, 비디오의 현재 비디오 블록의 예측을 위하여, 동일위치 블록(collocated block)을 포함하는 동일위치 참조 픽처(collocated reference picture)의 차원(dimension)이 현재 비디오 블록을 포함하는 현재 픽처의 차원과 동일하다는 결정에 기초하여, 동일위치 블록(collocated block)을 식별하는 단계, 및 상기 동일위치 블록(collocated block)을 이용하여, 현재 비디오 블록 및 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하는 방법.
B7. 솔루션 B6의 방법에 있어서, 상기 예측(prediction)은, 시간적 모션 벡터 예측(TMVP: temporal motion vector prediction) 프로세스 또는 대안적 시간적 모션 벡터 예측(ATMVP: alternative temporal motion vector prediction) 프로세스를 포함하는 방법.
B8. 솔루션 B7의 방법에 있어서, 상기 현재 픽처는 W0 x H0의 차원을 가지고, 상기 동일위치 참조 픽처(collocated reference picture)는 W1 x H1의 차원을 가지고, 상기 동일위치 블록(collocated block)의 위치 또는 크기는 W0, H0, W1 또는 H1 중 적어도 하나에 기초하고, W0, H0, W1 및 H1은 양의 정수인 방법.
B9. 솔루션 B8의 방법에 있어서, 상기 ATMVP 프로세스에서의 시간적 모션 벡터(temporal motion vector)의 획득(derivation)은, W0, H0, W1 또는 H1 중 적어도 하나에 기초하는 방법.
B10. 솔루션 B8의 방법에 있어서, 현재 비디오 블록에 대한 모션 벡터 예측의 획득(derivation)은, W0, H0, W1 또는 H1 중 적어도 하나에 기초하는 방법.
B11. 비디오 처리를 위한 방법에 있어서, 비디오의 현재 비디오 블록에 대하여, 현재 비디오 블록과 연관된 참조 픽처(reference picture)가, 현재 비디오 블록을 포함하는 현재 픽처의 해상도와 상이한 해상도를 가진다고 결정하는 단계, 및 현재 비디오 블록 및 비디오의 비트스트림 표현 간의 변환의 일부로서, 현재 비디오 블록에 대한 코딩 정보(coding information) 또는 현재 비디오 블록에 대한 모션 정보(motion information) 및 참조 픽처의 하나 이상의 참조 샘플(reference samples)에 대한 다운 샘플링 동작(down-sampling operation) 또는 업 샘플링 동작(up-sampling operation)을 수행하는 단계를 포함하는 방법.
B12. 솔루션 B11의 방법에 있어서, 상기 현재 비디오 블록을 포함하는 현재 프레임(current frame)와 상이한 프레임 내 후속 비디오 블록(subsequent video block)을 코딩하기 위하여 상기 다운 샘플링 동작(down-sampling operation) 또는 상기 업 샘플링 동작(up-sampling operation)과 관련된 정보를 이용하는 단계를 더 포함하는 방법.
B13. 비디오 처리를 위한 방법에 있어서, 비디오의 현재 비디오 블록 및 비디오의 비트스트림 표현 간의 변환에 대하여, 현재 비디오 블록을 포함하는 현재 픽처의 높이(height) 또는 폭(width)이, 현재 비디오 블록과 연관된 동일위치 참조 픽처(collocated reference picture)의 높이 또는 폭과 상이하다는 것을 결정하는 단계, 및 상기 결정에 기초하여, 상기 동일위치 참조 픽처의 하나 이상의 모션 벡터(motion vector)를 저장하는 버퍼(buffer)에 대한 다운 샘플링 동작(down-sampling operation) 또는 업 샘플링 동작(up-sampling operation)을 수행하는 단계를 포함하는 방법.
B14. 비디오 처리를 위한 방법에 있어서, 비디오의 현재 비디오 블록을 포함하는 현재 픽처의 차원 및 상기 현재 비디오 블록과 연관된 동일위치 픽처(collocated picture)의 차원에 기초하여, 상기 현재 비디오 블록에 적용되는 대안적 시간적 모션 벡터 예측(ATMVP: alternative temporal motion vector prediction) 프로세스에 대한 정보를 획득(derive)하는 단계, 및 현재 비디오 블록 및 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하는 방법.
B15. 솔루션 B14의 방법에 있어서, 상기 정보는, 시간적 모션 벡터(temporal motion vector)를 포함하는 방법.
B16. 솔루션 B14의 방법에 있어서, 상기 정보는, 상기 현재 비디오 블록에 대한 모션 벡터 예측(MVP: motion vector prediction)을 포함하고, 상기 획득(derive)하는 단계는, 상기 MVP에 의하여 참조되는 참조 픽처의 차원에 추가로 기초하는 방법.
B17. 비디오 처리를 위한 방법에 있어서, 비디오의 현재 비디오 블록에 대한 적응적 해상도 변환(ARC) 프로세스의 적용(application)을 위하여, 비디오의 비트스트림 표현을 구성(configure)하는 단계 - 상기 ARC 프로세스와 관련된 정보는, 비트스트림 표현으로 신호(signal)되고, 상기 현재 비디오 블록을 포함하는 현재 픽처는 제1 해상도를 가지고, 상기 ARC 프로세스는, 상기 현재 비디오 블록의 부분(portion)을, 상기 제1 해상도와 다른 제2 해상도로, 리샘플링(resampling)하는 것을 포함함 -, 및 상기 구성(configuring)에 기초하여, 현재 비디오 블록 및 현재 비디오 블록의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하는 방법.
B18. 솔루션 B17의 방법에 있어서, 상기 ARC 프로세스와 관련된 상기 정보는, 하나 이상의 업-샘플링 또는 다운-샘플링 필터링 방법을 위한 파라미터들을 포함하는 방법.
B19. 솔루션 B17의 방법에 있어서, 상기 ARC 프로세스와 관련된 상기 정보는, 코딩된 비디오 시퀀스 내 해상도 변경(resolution change)을 활성화(enable)하기 위기 위하여 참조 픽처를 스케일링(scaling)하기 위한 수평 스케일링 팩터(horizontal scaling factor) 또는 수직 스케일링 팩터(vertical scaling factor)를 포함하는 방법.
B20. 솔루션 B18 또는 B19의 방법에 있어서, 상기 정보는, 디코더 파라미터 세트(DPS: decoder parameter set), 비디오 파라미터 세트(VPS: video parameter set), 시퀀스 파라미터 세트(SPS: sequence parameter set), 픽처 파라미터 세트(PPS: picture parameter set), 적응적 파라미터 세트(APS: adaptive parameter set), 픽처 헤더(picture header), 슬라이스 헤더(slice header), 타일 그룹 헤더(tile group header) 또는 개별적인 비디오 단위(individual video unit)로 신호(signal)되는 방법.
B21. 솔루션 B20의 방법에 있어서, 상기 개별적인 비디오 단위(individual video unit)는, 해상도 파라미터 세트(RPS: resolution parameter set) 또는 변환 파라미터 세트(CPS: conversion parameter set)인 방법.
B22. 솔루션 B19의 방법에 있어서, 상기 수평 스케일링 팩터(horizontal scaling factor) 또는 상기 수직 스케일링 팩터(vertical scaling factor)를 획득(dervie)하는 것은, 하나 이상의 테이블(table)을 이용하여 구현되는 분할 동작(division operation)을 포함하는 방법.
B23. 솔루션 B1 내지 B22 중 어느 한 항의 방법에 있어서, 상기 변환은, 상기 비트스트림 표현으로부터 상기 현재 비디오 블록을 생성하는 방법.
B24. 솔루션 B1 내지 B22 중 어느 한 항의 방법에 있어서, 상기 변환은, 상기 현재 비디오 블록으로부터 상기 비트스트림 표현을 생성하는 방법.
B25. 비디오 시스템 내의 장치에 있어서, 프로세서, 및 명령어들을 저장하는 비일시적 메모리(non-transitory memory)를 포함하고, 상기 명령어들은, 상기 프로세서에 의해 실행되는 경우, 상기 프로세서가, 솔루션 B1 내지 B24 중 어느 한 항의 방법을 구현하도록 하는 장치.
B26. 솔루션 B1 내지 B24 중 어느 한 항의 방법을 수행하기 위한 프로그램 코드를 포함하는, 비일시적 컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램 제품.
일부 실시예들은 다음의 기술 솔루션들로 구현될 수 있다. ******[0335]
C1. 비디오 처리를 위한 방법에 있어서, 현재 비디오 블록에 대한 적응적 해상도 변환(ARC) 프로세스의 적용(application)을 위하여, 상기 현재 비디오 블록의 비트스트림 표현을 구성(configure)하는 단계 - 상기 ARC 프로세스와 관련된 정보는, 비트스트림 표현으로 신호(signal)되고, 상기 현재 비디오 블록은 제1 해상도를 가지고, 상기 ARC 프로세스는, 상기 현재 비디오 블록의 부분(portion)을, 상기 제1 해상도와 다른 제2 해상도로, 리샘플링(resampling)하는 것을 포함함 -, 및 상기 구성(configuring)에 기초하여, 상기 현재 비디오 블록 및 상기 현재 비디오 블록의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하는 방법.
C2. 솔루션 C1의 방법에 있어서, 상기 ARC 프로세스와 관련된 상기 정보는, 상기 현재 비디오 블록을 포함하는 픽처의 높이(H) 또는 폭(W)을 포함하는 방법.
C3. 솔루션 C1 또는 C2의 방법에 있어서, 상기 ARC 프로세스와 관련된 상기 정보는, 디코더 파라미터 세트(DPS: decoder parameter set), 비디오 파라미터 세트(VPS: video parameter set), 시퀀스 파라미터 세트(SPS: sequence parameter set), 픽처 파라미터 세트(PPS: picture parameter set), 적응적 파라미터 세트(APS: adaptive parameter set), 픽처 헤더(picture header), 슬라이스 헤더(slice header), 및 타일 그룹 헤더(tile group header)와 상이한 SEI(Supplemental Enhancement Information) 메시지로 신호(signal)되는, 방법.
C4. 솔루션 C1 또는 C2의 방법에 있어서, 상기 ARC 프로세스와 관련된 상기 정보는, 개별적인 비디오 단위(individual video unit)로 신호(signal)되는 방법.
C5. 솔루션 C5의 방법에 있어서, 상기 개별적인 비디오 단위는, 해상도 파라미터 세트(RPS: resolution parameter set) 또는 변환 파라미터 세트(CPS: conversion parameter set)인 방법.
C6. 솔루션 C1 내지 C5 중 어느 한 항의의 방법에 있어서, 상기 ARC 프로세스와 관련된 상기 정보는, 고정 길이 코드(fixed-length code) 또는 일진 코드(unary code)로 코딩되는 방법.
C7. 솔루션 C1 내지 C5 중 어느 한 항의의 방법에 있어서, 상기 ARC 프로세스와 관련된 상기 정보는, 오더(order) K의 지수 골롬 코드(exponential-Golomb code)로 코딩되고, K는 0보다 큰 정수인 방법.
C8. 솔루션 C1 또는 C2의 방법에 있어서, 상기 ARC 프로세스와 관련된 상기 정보는, 디코더 파라미터 세트(DPS: decoder parameter set), 비디오 파라미터 세트(VPS: video parameter set), 시퀀스 파라미터 세트(SPS: sequence parameter set), 픽처 파라미터 세트(PPS: picture parameter set), 적응적 파라미터 세트(APS: adaptive parameter set), 픽처 헤더(picture header), 슬라이스 헤더(slice header), 또는 타일 그룹 헤더(tile group header)로 신호(signal)되는, 방법.
C9. 솔루션 C1의 방법에 있어서, 상기 ARC 프로세스와 관련된 상기 정보는, 상기 현재 비디오 블록을 포함하는 픽처의 높이 대 폭의 비율(ratio of a height to a width)을 포함하는 방법.
C10. 솔루션 C1의 방법에 있어서, 상기 ARC 프로세스와 관련된 상기 정보는, 상기 현재 비디오 블록을 포함하는 픽처의 복수의 상이한 높이들 대 상이한 폭들의 비율들(plurality of ratios of different heights to different widths)을 포함하는, 방법.
C11. 솔루션 C10의 방법에 있어서, 상기 복수의 비율들 중 허용되는 비율(allowed ratio)에 대응하는 인덱스(index)가, 픽처 파라미터 세트(PPS: picture parameter set)로 신호(signal)되는, 방법.
C12. 솔루션 C10의 방법에 있어서, 상기 복수의 비율들 중 어느 하나의 비율도, 상기 복수의 비율들 중 다른 비율과 상이한, 방법. *****[0347]
C13. 솔루션 C2의 방법에 있어서, TWmin ≤ W ≤ TWmax 이고, TWmin 및 TWmax는 양의 정수인, 방법.
C14. 솔루션 C13의 방법에 있어서, TWmin 및 TWmax는, 상기 현재 비디오 블록의 상기 비트스트림 표현으로 신호(signal)되는, 방법.
C15. 솔루션 C2의 방법에 있어서, THmin ≤ H ≤ THmax 이고, THmin 및 THmax는 양의 정수인, 방법.
C16. 솔루션 C13의 방법에 있어서, THmin 및 THmax는, 상기 현재 비디오 블록의 상기 비트스트림 표현으로 신호(signal)되는, 방법.
C17. 솔루션 C1의 방법에 있어서, 상기 현재 비디오 블록을 포함하는 픽처는 높이 H = h x Y이고, 폭 W = w x X이고, w, h, W, H, X 및 X는 양의 정수이고, X 및 Y는 미리 정의된 정수(predefined integers)이고, 상기 ARC 프로세스와 관련된 상기 정보는, w 및 h를 포함하는, 방법.
C18. 솔루션 C17의 방법에 있어서, X = Y = 4인, 방법.
C19. 솔루션 C1의 방법에 있어서, 상기 ARC 프로세스와 관련된 상기 정보는, (i) 제1 폭 및 제2 폭 간의 차이, (ii) 제1 높이 및 제2 높이 간의 차이, (iii) 제1 폭 및 제2 폭 간의 비율, 또는 (iv) 제1 높이 및 제2 높이 간의 비율 중 적어도 하나를 포함하는, 방법.
C20. 솔루션 C19의 방법에 있어서, 상기 정보는, 일진 코드(unary code), 절단된 일진 코드(truncated unary code), 또는 고정 길이 코드(fixed length code)로 부호화(code)되는, 방법.
C21. 솔루션 C1의 방법에 있어서, 상기 비트스트림 표현은, 코딩 트리 단위 크기(coding tree unit(CTU) size)를 나타내는 구문 요소(syntax element), 최소 코딩 단위 크기(minimum coding unit(CU) size)를 나타내는 구문 요소, 최대 또는 최소 변형 블록 크기(maximum or minimum transform block(TB) size)를 나타내는 구문 요소, 상기 현재 비디오 블록에 적용될 수 있는 분할 프로세스(partitioning process)의 최대 깊이(maximum depth)를 나타내는 구문 요소, 또는 특정 픽처 해상도(specific picture resolution)와 바인드(bind)되도록 구성된 구문 요소를 더 포함하는, 방법.
C22. 비디오 처리를 위한 방법에 있어서, 현재 비디오 블록의 예측을 위하여, 상기 현재 비디오 블록의 시간적 이웃 블록(temporally neighboring block)의 참조 픽처의 선택적 사용(selective use)을 결정하는 단계, 및 상기 현재 비디오 블록의 참조 픽처 및 상기 결정에 기초하여, 상기 현재 비디오 블록 및 상기 현재 비디오 블록의 비트스트림 표현(bitstream representation) 간의 변환(conversion)을 수행하는 단계를 포함하는, 방법.
C23. 솔루션 C22의 방법에 있어서, 상기 현재 비디오 블록의 참조 픽처의 해상도는 상기 현재 비디오 블록의 해상도와 동일하고, 상기 시간적 이웃 블록(temporally neighboring block)의 참조 픽처의 해상도는 상기 현재 비디오 블록의 해상도와 상이하고, 상기 현재 비디오 블록의 예측은, 상기 시간적 이웃 블록과 연관된 모션 정보를 사용하지 않는, 방법.
C24. 솔루션 C22의 방법에 있어서, 상기 현재 비디오 블록의 참조 픽처의 해상도는 상기 현재 비디오 블록의 해상도와 상이하고, 상기 시간적 이웃 블록(temporally neighboring block)의 참조 픽처의 해상도는 상기 현재 비디오 블록의 해상도와 상이하고, 상기 현재 비디오 블록의 예측은, 상기 시간적 이웃 블록과 연관된 모션 정보를 사용하지 않는, 방법.
C25. 비디오 처리를 위한 방법에 있어서, 현재 비디오 블록의 참조 픽처의 적어도 하나의 차원에 기초하여, 상기 참조 픽처를 동일위치 참조 픽처(collocated reference picture)로 지정(designation)하는 것에 대하여 결정하는 단계, 및 상기 결정에 기초하여, 상기 현재 비디오 블록 및 상기 현재 비디오 블록의 비트스트림 표현(bitstream representation) 간의 변환(conversion)을 수행하는 단계를 포함하는, 방법.
C26. 솔루션 C25의 방법에 있어서, 상기 참조 픽처의 상기 적어도 하나의 차원은 상기 현재 비디오 블록을 포함하는 현재 픽처의 대응하는 차원과 상이하고, 상기 참조 픽처는 상기 동일위치 참조 픽처에 지정(designate)되지 않는, 방법.
C27. 비디오 처리를 위한 방법에 있어서, 현재 비디오 블록의 예측(prediction)을 위하여, 동일위치 블록(collocated block)과 연관된 동일위치 참조 픽처(collocated reference picture)의 차원 및 상기 현재 비디오 블록을 포함하는 현재 픽처의 차원의 비교(comparison)에 기초하여 동일위치 블록을 식별(identify)하는 단계, 및 상기 식별에 기초하여 상기 현재 비디오 블록의 예측을 수행하는 단계를 포함하는, 방법.
C28. 솔루션 C27의 방법에 있어서, 상기 예측(prediction)은, 시간적 모션 벡터 예측(TMVP: temporal motion vector prediction) 프로세스 또는 대안적 시간적 모션 벡터 예측(ATMVP: alternative temporal motion vector prediction) 프로세스를 포함하는, 방법.
C29. 솔루션 C27 또는 C28의 방법에 있어서, 상기 현재 픽처는 W0 x H0의 차원을 가지고, 상기 동일위치 참조 픽처(collocated reference picture)는 W1 x H1의 차원을 가지고, 상기 동일위치 블록(collocated block)의 위치 또는 크기는 W0, H0, W1 또는 H1 중 적어도 하나에 기초하는, 방법.
C30. 솔루션 C29의 방법에 있어서, 상기 ATMVP 프로세스에서 시간적 모션 벡터의 획득(derivation)은, W0, H0, W1 또는 H1 중 적어도 하나에 기초하는, 방법.
C31. 솔루션 C29의 방법에 있어서, 상기 현재 비디오 블록에 대한 모션 벡터 예측(motion vector prediction)의 획득(derivation)은, W0, H0, W1 또는 H1 중 적어도 하나에 기초하는, 방법.
C32. 솔루션 C1의 방법에 있어서, 상기 ARC 프로세스와 관련된 상기 정보는, 하나 이상의 업-샘플링 또는 다운-샘플링 필터링 방법을 위한 파라미터들을 포함하는, 방법.
C33. 솔루션 C1의 방법에 있어서, 상기 ARC 프로세스와 관련된 상기 정보는, 코딩된 비디오 시퀀스(CVS: coded video sequence) 내 해상도 변경(resolution change)을 활성화(enable)하기 위기 위하여 참조 픽처를 스케일링(scaling)하기 위한 수평 스케일링 팩터(horizontal scaling factor) 또는 수직 스케일링 팩터(vertical scaling factor)를 포함하는, 방법.
C34. 솔루션 C32 또는 C33의 방법에 있어서, 상기 정보는, 디코더 파라미터 세트(DPS: decoder parameter set), 비디오 파라미터 세트(VPS: video parameter set), 시퀀스 파라미터 세트(SPS: sequence parameter set), 픽처 파라미터 세트(PPS: picture parameter set), 적응적 파라미터 세트(APS: adaptive parameter set), 픽처 헤더(picture header), 슬라이스 헤더(slice header), 타일 그룹 헤더(tile group header) 또는 개별적인 비디오 단위(individual video unit)로 신호(signal)되는, 방법.
C35. 솔루션 C34의 방법에 있어서, 상기 개별적인 비디오 단위(individual video unit)는, 해상도 파라미터 세트(RPS: resolution parameter set) 또는 변환 파라미터 세트(CPS: conversion parameter set)인, 방법.
C36. 비디오 시스템 내의 장치에 있어서, 프로세서, 및 명령어들을 저장하는 비일시적 메모리(non-transitory memory)를 포함하고, 상기 명령어들은, 상기 프로세서에 의해 실행되는 경우, 상기 프로세서가, 솔루션 C1 내지 C35 중 어느 한 항의 방법을 구현하도록 하는 장치.
C37. 솔루션 C1 내지 C35 중 어느 한 항의 방법을 수행하기 위한 프로그램 코드를 포함하는, 비일시적 컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램 제품.
전술한 내용으로부터, 현재 개시된 기술의 특정 실시예들은 예시의 목적으로 여기에서 설명되었지만, 본 발명의 범위를 벗어나지 않고 다양한 수정이 이루어질 수 있다는 것이 이해될 것이다. 따라서, 현재 개시된 기술은 첨부된 청구범위에 의한 경우를 제외하고는 제한되지 않는다.
본 특허 문서에 기술된 주제 및 기능적 동작의 구현은, 본 명세서에 개시된 구조 및 구조적 등가물 포함하는, 다양한 시스템, 디지털 전자 회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어, 또는 이들 중 하나 또는 그 이상의 조합으로 구현될 수 있다. 본 명세서에 기재된 주제의 구현은 하나 이상의 컴퓨터 프로그램 제품, 즉, 데이터 처리 장치의 작동을 제어하기 위해 실물 및 비일시적 컴퓨터 판독 가능한 매체에 인코딩된 컴퓨터 프로그램 지침의 하나 이상의 모듈로 구현될 수 있다. 컴퓨터 판독가능한 매체는 기계가 읽을 수 있는 스토리지 장치, 기계가 읽을 수 있는 스토리지 기판, 메모리 장치, 기계가 읽을 수 있는 전파 신호에 영향을 미치는 물질의 조성 또는 하나 이상의 조합일 수 있다. 용어 "데이터 프로세싱 유닛dtata processing unit)" 또는 "데이터 프로세싱 장치(data processing apparatus)"는 예를 들어 프로그래밍 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 프로세싱하기 위한 모든 장치, 장치 및 기계를 포함한다. 장치는 하드웨어에 추가하여 대응 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 응용 프로그램, 스크립트 또는 코드라고도 함)은 컴파일된 언어를 비롯한 모든 형태의 프로그래밍 언어로 작성할 수 있으며 독립 실행형 프로그램 또는 컴퓨팅 환경에서 사용하기에 적합한 모듈, 구성 요소, 서브루틴 또는 기타 유닛을 포함하여 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램이 파일 시스템의 파일에 반드시 해당하는 것은 아니다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트), 대응하는 프로그램에 전념하는 단일 파일 또는 여러 조정된 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 일부를 저장하는 파일)에 저장할 수 있다. 컴퓨터 프로그램은 한 컴퓨터 또는 한 사이트에 위치하거나 여러 사이트에 분산되고 통신 네트워크에 의해 상호 연결된 여러 컴퓨터에서 실행하도록 배포할 수 있다.
이 문서에 설명된 프로세스 및 논리 흐름은 입력 데이터에 대해 작동하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능한 프로세서에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 또한 특수 목적 논리 회로, 예를 들어 FPGA(필드 프로그램 가능 게이트 어레이(field programmable gate array)) 또는 ASIC(응용 특정 집적 회로(application specific integrated circuit))에 의해 수행될 수 있고 장치는 또한 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서에는 예를 들어, 일반 및 특수 목적 마이크로프로세서와 모든 종류의 디지털 컴퓨터의 하나 이상의 프로세서가 포함된다. 일반적으로, 프로세서는 읽기 전용 메모리나 랜덤 액세스 메모리 또는 둘 다에서 명령어들과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령을 수행하기 위한 프로세서와, 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 일반적으로 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대량 저장 장치(예를 들어, 자기, 마그네토 광학 디스크(magneto optical disks) 또는 광학 디스크)에서 데이터를 수신하거나 전송하기 위해 동작적으로 결합되거나 결합된다. 그러나 컴퓨터에 그러한 장치들이 필요하지 않다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체 및 데이터는 비휘발성 메모리, 매체 및 예를 들어 반도체 메모리 장치(예를 들어, EPROM, EEPROM 및 플래시 메모리 장치)를 포함하는 메모리 장치의 모든 형태를 포함한다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
본 명세서는 도면과 함께 예시적인(exemplary) 것으로 간주되며, 여기서, "예시적인(exemplary)"은 예(example)를 의미한다. 본 명세서에서 사용되는 바와 같이, "또는(or)"의 사용은 문맥이 명확하게 다른 것을 나타내지 않는 한, "및/또는"을 포함하는 것으로 해석된다.
본 특허문서에는 여러 가지 구체적인 내용이 포함되어 있지만, 이는 발명의 범위나 청구(claim)될 수 있는 것의 제한 사항으로 해석되어서는 안 되며, 오히려 특정 발명의 특정 실시예에 특정할 수 있는 특징에 대한 설명으로 해석되어서는 안 된다. 별도의 실시예와 관련하여 이 특허 문서에 설명된 특정 특징은 단일 실시예에서 조합하여 구현될 수도 있다. 반대로, 단일 실시예의 문맥상에 기재되는 다양한 특징은 또한 다중 실시예에서 개별적으로 또는 임의의 적합한 하위 조합에서 구현될 수 있다. 더욱이, 상기 특징은 특정 조합에서 작용하는 것으로 설명될 수 있고 심지어 초기에 청구(claim)된 것과 같이, 청구(claim)된 조합으로부터의 하나 이상의 특징은 어떤 경우에는 조합 자체에 머물 수도 있고, 청구(claim)된 조합의 서브 조합 또는 변형으로 확장될 수도 있다.
마찬가지로, 동작은 특정 순서로 도면에 도시되어 있지만, 이러한 동작이 도시된 특정 순서 또는 순차적인 순서로 수행되거나, 모든 도시된 동작을 수행하여 바람직한 결과를 달성하도록 요구하는 것으로 이해되어서는 안 된다. 더욱이, 본 특허 문서에 기재된 실시예에서 다양한 시스템 컴포넌트의 분리는 모든 실시예에서 이러한 분리를 요구하는 것으로 이해되어서는 안 된다.
몇 가지 구현 및 예제만 설명되며 이 특허 문서에 설명되고 도시된 내용에 따라 다른 구현, 개선 및 변형을 만들 수 있다.

Claims (35)

  1. 비디오 데이터를 처리하는 방법에 있어서,
    비디오의 시각 미디어 데이터(visual media data) 및 상기 비디오의 비트스트림 간의 변환을 위하여, 상기 시각 미디어 데이터를 위한 제1 코딩 모드와 관련된 제1 정보를 결정하는 단계; 및
    적어도 상기 제1 코딩 모드에 기초하여 상기 변환을 수행하는 단계
    를 포함하고,
    상기 제1 코딩 모드는,
    상기 시각 미디어 데이터를 포함하는 현재 픽처의 해상도와 하나 이상의 다른 해상도를 가진 하나 이상 참조 픽처에 기초하여 예측 샘플들을 획득하는 것
    을 포함하고,
    상기 현재 픽처의 해상도는,
    제1 정보에 의하여 지시되고,
    상기 제1 정보는,
    상기 현재 픽처의 폭(W) 및 상기 현재 픽처의 높이(H) 중 적어도 하나를 지시하고,
    상기 폭(W)은,
    제1 값의 정수배이고,
    상기 높이(H)는,
    제2 값의 정수배이고,
    상기 제1 값과 상기 제2 값은,
    각각 적어도 하나의 미리 정의된 값에 기초하고,
    상기 시각 미디어 데이터에 대한 시간적 모션 벡터 예측 또는 서브 블록 기반 시간적 모션 벡터 예측의 활성화 또는 비활성화는,
    상기 제1 코딩 모드의 활성화에 기초하고, 및
    상기 제1 코딩 모드가 활성화되면, 상기 시간적 모션 벡터 예측 및 상기 서브 블록 기반 시간적 모션 벡터 예측이,
    상기 시각 미디어 데이터에 대해 비활성화되는,
    방법.
  2. 제1항에 있어서,
    상기 제1 정보는,
    시퀀스 파라미터 세트(SPS) 내 상기 비트스트림에 포함되는,
    방법.
  3. 제1항에 있어서,
    상기 제1 정보는,
    픽처 파라미터 세트(PPS) 내 상기 비트스트림에 포함되는,
    방법.
  4. 제1항에 있어서,
    상기 폭(W)은,
    최대값 TW_max 이하이고, 최소값 TW_min 이상이고,
    상기 높이(H)는,
    최대값 TH_max 이하이고, 최소값 TH_min 이상인,
    방법.
  5. 제4항에 있어서,
    상기 최대값 TW_max 및/또는 상기 최대값 TH_max는, 상기 비트스트림에 포함되는,
    방법.
  6. 제1항에 있어서,
    상기 적어도 하나의 미리 정의된 값은,
    양수인,
    방법.
  7. 제1항에 있어서,
    상기 변환은,
    상기 시각 미디어 데이터를 상기 비트스트림으로 인코딩하는 것
    을 포함하는,
    방법.
  8. 제1항에 있어서,
    상기 변환은,
    상기 비트스트림으로 부터 상기 시각 미디어 데이터를 디코딩하는 것
    을 포함하는,
    방법.
  9. 비디오 데이터를 처리하는 장치에 있어서,
    프로세서, 및
    명령어들을 저장하는 비일시적 메모리
    를 포함하고,
    상기 명령어들은,
    상기 프로세서에 의해 실행되는 경우,
    상기 프로세서로 하여금,
    비디오의 시각 미디어 데이터 및 상기 비디오의 비트스트림 간의 변환을 위하여, 상기 시각 미디어 데이터를 위한 제1 코딩 모드와 관련된 제1 정보를 결정하고,
    적어도 상기 제1 코딩 모드에 기초하여 상기 변환을 수행하도록 하고,
    상기 제1 코딩 모드는,
    상기 시각 미디어 데이터를 포함하는 현재 픽처의 해상도와 하나 이상의 다른 해상도를 가진 하나 이상 참조 픽처에 기초하여 예측 샘플들을 획득하는 것
    을 포함하고,
    상기 현재 픽처의 해상도는,
    제1 정보에 의하여 지시되고,
    상기 제1 정보는,
    상기 현재 픽처의 폭(W) 및 상기 현재 픽처의 높이(H) 중 적어도 하나를 지시하고,
    상기 폭(W)은,
    제1 값의 정수배이고,
    상기 높이(H)는,
    제2 값의 정수배이고,
    상기 제1 값과 상기 제2 값은,
    각각 적어도 하나의 미리 정의된 값에 기초하고,
    상기 시각 미디어 데이터에 대한 시간적 모션 벡터 예측 또는 서브 블록 기반 시간적 모션 벡터 예측의 활성화 또는 비활성화는,
    상기 제1 코딩 모드의 활성화에 기초하고, 및
    상기 제1 코딩 모드가 활성화되면, 상기 시간적 모션 벡터 예측 및 상기 서브 블록 기반 시간적 모션 벡터 예측이,
    상기 시각 미디어 데이터에 대해 비활성화되는,
    장치.
  10. 비일시적 컴퓨터 판독가능 저장 매체에 있어서,
    명령어들을 저장하고,
    상기 명령어들은,
    프로세서로 하여금,
    비디오의 시각 미디어 데이터 및 상기 비디오의 비트스트림 간의 변환을 위하여, 상기 시각 미디어 데이터를 위한 제1 코딩 모드와 관련된 제1 정보를 결정하고, 및
    적어도 상기 제1 코딩 모드에 기초하여 상기 변환을 수행하도록 하고,
    상기 제1 코딩 모드는,
    상기 시각 미디어 데이터를 포함하는 현재 픽처의 해상도와 하나 이상의 다른 해상도를 가진 하나 이상 참조 픽처에 기초하여 예측 샘플들을 획득하는 것
    을 포함하고,
    상기 현재 픽처의 해상도는,
    제1 정보에 의하여 지시되고,
    상기 제1 정보는,
    상기 현재 픽처의 폭(W) 및 상기 현재 픽처의 높이(H) 중 적어도 하나를 지시하고,
    상기 폭(W)은,
    제1 값의 정수배이고,
    상기 높이(H)는,
    제2 값의 정수배이고,
    상기 제1 값과 상기 제2 값은,
    각각 적어도 하나의 미리 정의된 값에 기초하고,
    상기 시각 미디어 데이터에 대한 시간적 모션 벡터 예측 또는 서브 블록 기반 시간적 모션 벡터 예측의 활성화 또는 비활성화는,
    상기 제1 코딩 모드의 활성화에 기초하고, 및
    상기 제1 코딩 모드가 활성화되면, 상기 시간적 모션 벡터 예측 및 상기 서브 블록 기반 시간적 모션 벡터 예측이,
    상기 시각 미디어 데이터에 대해 비활성화되는,
    컴퓨터 판독가능 저장 매체.
  11. 비디오 처리 장치에 의하여 수행되는 방법에 의하여 생성되는 비트스트림을 저장하는 비일시적 컴퓨터 판독가능 기록 매체에 있어서,
    상기 방법은,
    비디오의 시각 미디어 데이터를 위한 제1 코딩 모드와 관련된 제1 정보를 결정하는 단계; 및
    적어도 상기 제1 코딩 모드에 기초하여 상기 시각 미디어 데이터로부터 상기 비트스트림을 생성하는 단계
    를 포함하고,
    상기 제1 코딩 모드는,
    상기 시각 미디어 데이터를 포함하는 현재 픽처의 해상도와 하나 이상의 다른 해상도를 가진 하나 이상 참조 픽처에 기초하여 예측 샘플들을 획득하는 것
    을 포함하고,
    상기 현재 픽처의 해상도는,
    제1 정보에 의하여 지시되고,
    상기 제1 정보는,
    상기 현재 픽처의 폭(W) 및 상기 현재 픽처의 높이(H) 중 적어도 하나를 지시하고,
    상기 폭(W)은,
    제1 값의 정수배이고,
    상기 높이(H)는,
    제2 값의 정수배이고,
    상기 제1 값과 상기 제2 값은,
    각각 적어도 하나의 미리 정의된 값에 기초하고,
    상기 시각 미디어 데이터에 대한 시간적 모션 벡터 예측 또는 서브 블록 기반 시간적 모션 벡터 예측의 활성화 또는 비활성화는,
    상기 제1 코딩 모드의 활성화에 기초하고, 및
    상기 제1 코딩 모드가 활성화되면, 상기 시간적 모션 벡터 예측 및 상기 서브 블록 기반 시간적 모션 벡터 예측이,
    상기 시각 미디어 데이터에 대해 비활성화되는,
    컴퓨터 판독가능 기록 매체.


  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
KR1020217034627A 2019-05-12 2020-05-12 참조 픽처 리샘플링을 위한 신호 KR102653570B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2019086513 2019-05-12
CNPCT/CN2019/086513 2019-05-12
PCT/CN2020/089740 WO2020228691A1 (en) 2019-05-12 2020-05-12 Signaling for reference picture resampling

Publications (2)

Publication Number Publication Date
KR20220006048A KR20220006048A (ko) 2022-01-14
KR102653570B1 true KR102653570B1 (ko) 2024-04-02

Family

ID=73289080

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217034627A KR102653570B1 (ko) 2019-05-12 2020-05-12 참조 픽처 리샘플링을 위한 신호

Country Status (6)

Country Link
US (2) US11671602B2 (ko)
EP (1) EP3954124A4 (ko)
JP (2) JP7273193B2 (ko)
KR (1) KR102653570B1 (ko)
CN (2) CN113875250A (ko)
WO (2) WO2020228691A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102609949B1 (ko) 2018-08-17 2023-12-04 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩에서의 참조 영상 관리
EP3939311A1 (en) * 2019-03-11 2022-01-19 Vid Scale, Inc. Methods and apparatus for sub-picture adaptive resolution change
JP7307191B2 (ja) 2019-04-01 2023-07-11 北京字節跳動網絡技術有限公司 履歴に基づく動きベクトル予測のための補間フィルタの使用
US20220224925A1 (en) * 2019-07-09 2022-07-14 Alibaba Group Holding Limited Resolution-adaptive video coding
MX2022001594A (es) * 2019-08-06 2022-03-11 Op Solutions Llc Método de gestión adaptativa de resolución mediante subfichas.
CN114270856A (zh) * 2019-08-20 2022-04-01 北京字节跳动网络技术有限公司 视频处理中的备选插值滤波器的选择性使用
JPWO2021117802A1 (ko) * 2019-12-13 2021-06-17
US11863789B2 (en) * 2020-03-31 2024-01-02 Tencent America LLC Method for signaling rectangular slice partitioning in coded video stream
CN117296321A (zh) * 2021-04-02 2023-12-26 抖音视界有限公司 使用可缩放性维度信息
CN113783600B (zh) * 2021-08-31 2023-06-02 西南电子技术研究所(中国电子科技集团公司第十研究所) 巨型低轨互联网星座路由方法
US20230177649A1 (en) * 2021-12-03 2023-06-08 Nvidia Corporation Temporal image blending using one or more neural networks
WO2023184467A1 (en) * 2022-04-01 2023-10-05 Intel Corporation Method and system of video processing with low latency bitstream distribution

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200177922A1 (en) 2017-05-31 2020-06-04 Sharp Kabushiki Kaisha Video decoding device and video encoding device

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100772878B1 (ko) * 2006-03-27 2007-11-02 삼성전자주식회사 비트스트림의 비트율 조절을 위한 우선권 할당 방법,비트스트림의 비트율 조절 방법, 비디오 디코딩 방법 및 그방법을 이용한 장치
JP5651560B2 (ja) * 2011-09-07 2015-01-14 日本放送協会 動きベクトル予測装置、符号化装置、復号装置、及びこれらのプログラム
US9998735B2 (en) 2013-04-01 2018-06-12 Qualcomm Incorporated Inter-layer reference picture restriction for high level syntax-only scalable video coding
US9509999B2 (en) 2013-06-11 2016-11-29 Qualcomm Incorporated Inter-layer prediction types in multi-layer video coding
CN105723712B (zh) * 2013-10-14 2019-06-28 韩国电子通信研究院 基于多层的图像编码/解码方法和设备
US20150264404A1 (en) * 2014-03-17 2015-09-17 Nokia Technologies Oy Method and apparatus for video coding and decoding
US9918105B2 (en) * 2014-10-07 2018-03-13 Qualcomm Incorporated Intra BC and inter unification
WO2016078599A1 (en) * 2014-11-20 2016-05-26 Mediatek Inc. Method of motion vector and block vector resolution control
US10148969B2 (en) * 2015-02-11 2018-12-04 Qualcomm Incorporated Of sample entry and operation point signalling in a layered video file format
US20160373771A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Design of tracks and operation point signaling in layered hevc file format
WO2017052409A1 (en) * 2015-09-25 2017-03-30 Huawei Technologies Co., Ltd. Apparatus and method for video motion compensation with selectable interpolation filter
WO2018045108A1 (en) * 2016-09-02 2018-03-08 Vid Scale, Inc. Method and system for signaling of 360-degree video information
FR3073999B1 (fr) * 2017-11-23 2024-02-09 Ateme Compression intelligente de contenus video graines
CN108833916B (zh) * 2018-06-20 2021-09-24 腾讯科技(深圳)有限公司 视频编码、解码方法、装置、存储介质和计算机设备
US10764603B2 (en) * 2018-12-31 2020-09-01 Alibaba Group Holding Limited Resolution-adaptive video coding
EP3777143A4 (en) * 2019-03-11 2022-02-16 Alibaba Group Holding Limited INTERCODING FOR ADAPTIVE RESOLUTION VIDEO CODING
US11399195B2 (en) * 2019-10-30 2022-07-26 Tencent America LLC Range of minimum coding block size in video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200177922A1 (en) 2017-05-31 2020-06-04 Sharp Kabushiki Kaisha Video decoding device and video encoding device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PEISONG CHEN ET AL: "AHG19: Adaptive resolution change", JVET-N0279, 14th Meeting, Geneva, 2019. 03. 12.
Stephan Wenger, Byeongdoo Choi, and Shan Liu,[AHG19] On Signaling of Adaptive Resolution Change,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N0052,14th Meetin

Also Published As

Publication number Publication date
JP2023099077A (ja) 2023-07-11
US20220060712A1 (en) 2022-02-24
US11671602B2 (en) 2023-06-06
US20230319284A1 (en) 2023-10-05
JP7273193B2 (ja) 2023-05-12
JP2022532334A (ja) 2022-07-14
KR20220006048A (ko) 2022-01-14
CN113875246A (zh) 2021-12-31
EP3954124A1 (en) 2022-02-16
WO2020228691A1 (en) 2020-11-19
CN113875250A (zh) 2021-12-31
WO2020228692A1 (en) 2020-11-19
EP3954124A4 (en) 2022-08-03

Similar Documents

Publication Publication Date Title
KR102653570B1 (ko) 참조 픽처 리샘플링을 위한 신호
KR102627834B1 (ko) 비디오 프로세싱에서의 코딩 툴들의 선택적 사용
KR102637881B1 (ko) 정제 비디오 코딩 툴의 사용 및 시그널링
CN113826382B (zh) 视频编解码中的自适应比特深度转换
US11689747B2 (en) High level syntax for video coding tools
JP7482218B2 (ja) ビデオコーディングにおける予測タイプシグナリング

Legal Events

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