KR20220045955A - 위치 기반 계수 스케일링 - Google Patents

위치 기반 계수 스케일링 Download PDF

Info

Publication number
KR20220045955A
KR20220045955A KR1020227002777A KR20227002777A KR20220045955A KR 20220045955 A KR20220045955 A KR 20220045955A KR 1020227002777 A KR1020227002777 A KR 1020227002777A KR 20227002777 A KR20227002777 A KR 20227002777A KR 20220045955 A KR20220045955 A KR 20220045955A
Authority
KR
South Korea
Prior art keywords
video
transform
matrix
video block
scaling
Prior art date
Application number
KR1020227002777A
Other languages
English (en)
Inventor
리 창
카이 창
홍빈 리우
지청 슈
유에 왕
Original Assignee
베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
바이트댄스 아이엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드, 바이트댄스 아이엔씨 filed Critical 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
Publication of KR20220045955A publication Critical patent/KR20220045955A/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/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/124Quantisation
    • 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/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/136Incoming video signal characteristics or properties
    • 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
    • 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/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/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods 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 set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Abstract

비디오 처리 방법은, 규칙에 따라, 이차 트랜스폼 행렬이 비디오의 비디오 블록의 일부에 적용되는지 여부에 기초하여 스케일링 행렬을 적용할지 여부를 결정하는 단계 - 스케일링 행렬은 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용되고, 및 이차 트랜스폼 행렬은 변환 동안 비디오 블록의 부분의 적어도 일부 잔차 계수를 트랜스폼 하는 데 사용됨 -; 및 선택된 스케일링 행렬을 사용하여 비디오의 비디오 블록과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다.

Description

위치 기반 계수 스케일링
이 특허 문서는 비디오 코딩 기술, 장치 및 시스템과 관련이 있다.
파리협약에 따른 대응하는 특허법 및/또는 규칙에 따라, 이 출원은 2019년 8월 20일에 출원된 국제 특허 출원 번호 PCT/CN2019/101555의 우선권과 이익을 적시에 주장하기 위해 이루어진다. 법에 따른 모든 목적을 위해, 출원의 전체 개시는 본 출원의 개시의 일부로 참조에 의해 통합된다
비디오 압축의 발전에도 불구하고 디지털 비디오는 여전히 인터넷 및 기타 디지털 통신 네트워크에서 가장 큰 대역폭을 사용한다. 비디오를 수신하고 표시할 수 있는 연결된 사용자 장치의 수가 증가함에 따라 디지털 비디오 사용에 대한 대역폭 수요가 계속 증가할 것으로 예상된다
디지털 비디오 코딩, 특히 스케일링 행렬(scaling matrice) 및/또는 트랜스폼 행렬(transform matrice)를 사용하는 비디오 코딩 및 디코딩과 관련된 장치, 시스템 및 방법이다
하나의 예에서, 비디오 처리 방법이 개시된다. 방법은 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환(conversion)을 수행하는 단계를 포함하고, 코딩된 표현(coded representation)은 포맷 규칙(format rule)을 따르고, 포맷 규칙은 비디오 블록(video block)에 대한 트랜스폼 스킵 모드( transform skip mode)의 적용 가능성이 비디오 블록의 코딩 조건(coding condition)에 의해 결정된다는 것을 지정하고, 포맷 규칙은 트랜스폼 스킵 모드의 적용 가능성을 나타내는 신택스 요소(syntax element)가 코딩된 표현에서 생략된다는 것을 지정하고, 트랜스폼 스킵 모드는, 코딩된 표현으로 인코딩하기 전에 적어도 일부 계수(coefficient)에 순방향 트랜스폼(forward transform)을 적용하는 것을 스킵하는 단계, 또는 디코딩 동안, 코딩된 표현으로부터 디코딩하기 전에 적어도 일부 계수에 역방향 트랜스폼(inverse transform)을 적용하는 것을 스킵 하는 단계를 포함한다.
다른 예시적인 측면에서, 비디오 처리 방법이 개시된다. 방법은, 비디오의 두 개의 인접한 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 위해, 순방향 트랜스폼 또는 역방향 트랜스폼이 변환에 사용되는지 여부에 따라 인루프 필터(in-loop filter) 또는 사후-재구성 필터(post-reconstruction filter)가 변환에 사용될지 여부를 결정하는 단계 - 순방향 트랜스폼은 코딩된 표현으로 인코딩하기 전에 순방향 트랜스폼을 적어도 일부 계수에 적용하는 것을 스킵하는 단계, 또는 디코딩 동안, 코딩된 표현으로부터 디코딩하기 전에 역방향 트랜스폼을 적어도 일부 계수에 적용하는 것을 스킵하는 단계를 포함함 -; 및 인루프 필터 또는 사후-재구성 필터의 사용에 기초하여 변환을 수행하는 단계를 포함한다.
다른 예시적인 측면에서, 비디오 처리 방법이 개시된다. 방법은, 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 위해, 비디오 블록의 코딩 모드에 기초하여 스케일링 툴(scaling tool)의 인자를 결정하는 단계; 및 스케일링 툴을 사용하여 변환을 수행하는 단계를 포함하고, 스케일링 툴의 사용은: 인코딩 동안 비디오 블록을 나타내는 적어도 일부 계수들을 스케일링 하거나 디코딩 동안 코딩된 표현으로부터 적어도 일부 계수들을 디스케일링 하는 단계를 포함한다.
다른 예시적인 측면에서, 비디오 처리 방법이 개시된다. 방법은, 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 위해, 비디오 블록의 변환을 위한 블록 차동 펄스 코드 변조(BDPCM) 코딩 툴 또는 양자화된 잔차 BDPCM(QR-BDPCM) 코딩 툴로 인한 스케일링 툴의 사용을 비활성화하는 것으로 결정하는 단계; 및 스케일링 툴을 사용하지 않고 변환 수행하는 단계를 포함하고, 스케일링 툴의 사용은: 인코딩 동안 비디오 블록을 나타내는 적어도 일부 계수들을 스케일링 하거나 디코딩 동안 코딩된 표현으로부터 적어도 일부 계수들을 디스케일링 하는 단계를 포함한다.
다른 예시적인 측면에서, 비디오 처리 방법이 개시된다. 방법은, 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 위해, 변환을 위해 선택된 트랜스폼 행렬(transform matrix)에 기초하여 스케일링 행렬(scaling matrice)을 선택하는 단계 - 스케일링 행렬은 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용되고, 및 트랜스폼 행렬은 변환 동안 비디오 블록의 적어도 일부 계수를 트랜스폼 하는 데 사용됨 -; 및 스케일링 행렬을 사용하여 변환을 수행하는 단계를 포함한다.
다른 예시적인 측면에서, 비디오 처리 방법이 개시된다. 방법은, 규칙에 따라, 이차 트랜스폼 행렬(secondary transform matrix)이 비디오의 비디오 블록의 일부에 적용되는지 여부에 기초하여 스케일링 행렬을 적용할지 여부를 결정하는 단계 - 스케일링 행렬은 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용되고, 및 이차 트랜스폼 행렬은 변환 동안 비디오 블록의 부분의 적어도 일부 잔차 계수를 트랜스폼 하는 데 사용됨 -; 및 선택된 스케일링 행렬을 사용하여 비디오의 비디오 블록과 비디오의 비트스트림 표현(bitstream representation) 사이의 변환을 수행하는 단계를 포함한다.
다른 예시적인 측면에서, 비디오 처리 방법이 개시된다. 방법은, 비정사각 모양을 갖는 비디오 블록에 대해, 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환에 사용하기 위한 스케일링 행렬을 결정하는 단계 - 코딩된 표현의 신택스 요소는 스케일링 행렬을 시그널링하고, 스케일링 행렬은 변환 동안 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용됨 -; 및 스케일링 행렬에 기초하여 변환을 수행하는 단계를 포함한다.
다른 예시적인 측면에서, 비디오 처리 방법이 개시된다. 이 방법은 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 비디오 블록은 변환 동안 스케일링 행렬이 적용되는 제1 위치 수(first number of position) 및 규칙에 따라 변환 동안 스케일링 행렬이 적용되지 않는 제2 위치 수(second number of position)를 포함한다.
다른 예시적인 측면에서, 비디오 처리 방법이 개시된다. 방법은 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환 동안 스케일링 행렬이 적용될 것인지를 결정하는 단계; 및 스케일링 행렬에 기초하여 변환을 수행하는 단계를 포함하고, 코딩된 표현은 스케일링 행렬의 요소의 수를 나타내고, 숫자는 계수 제로 아웃(zeroing out)이 비디오 블록의 계수에 적용되는지 여부에 의존한다.
다른 예시적인 측면에서, 비디오 처리 방법이 개시된다. 방법은 규칙에 따라 비디오의 비디오 블록과 비디오의 코딩된 표현(coded representation) 사이의 변환을 수행하는 단계를 포함하고, 비디오 블록은 비디오 블록의 트랜스폼 계수(transform coefficient)에 KxL 트랜스폼 행렬(transform matrix)을 적용한 후 왼쪽 상단 MxN 트랜스폼 계수를 제외한 모든 트랜스폼 계수를 제로아웃(zeroing out) 한 후 상기 코딩된 표현으로 표현되고, 코딩된 표현은 제로아웃에 대응하는 위치에서 스케일링 행렬(scaling matrix)의 요소의 시그널링을 배제하도록 구성되고, 스케일링 행렬은 트랜스폼 계수를 스케일링 하기 위해 사용된다.
다른 예시적인 측면에서, 비디오 처리 방법이 개시된다. 방법은, 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환 동안, 비디오 블록의 크기에 기초하여 단일 양자화 행렬(single quantization matrix)이 사용될 것인지 여부를 규칙에 기초하여 결정하는 단계 - 크기를 갖는 모든 비디오 블록은 단일 양자화 행렬을 사용함 -; 및 양자화 행렬을 이용하여 변환을 수행하는 단계를 포함한다.
다른 예시적인 측면에서, 비디오 처리 방법이 개시된다. 방법은, 코딩된 모드 정보에 기초하여, 비디오의 비디오 블록의 코딩된 표현과 비디오 블록 사이의 변환을 위해, 트랜스폼 스킵 모드가 변환을 위해 활성화되는지 여부를 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함하고, 트랜스폼 스킵 모드에서, 비디오 블록을 나타내는 적어도 일부 계수에 대한 변환의 적용은 변환 동안 스킵된다.
또 다른 예에서, 또 다른 비디오 처리 방법이 개시된다. 방법은 변환을 위한 블록 차동 펄스 코드 변조(block differential pulse code modulation)(BDPCM) 또는 양자화된 잔차(quantized residua) BDPCM(QR-BDPCM) 모드의 사용으로 인해 비디오 블록과 비디오 블록의 코딩된 표현 사이의 변환을 위한 스케일링 행렬을 사용하는 것으로 결정하는 단계; 및 스케일링 행렬을 사용하여 변환을 수행하는 단계 - 스케일링 행렬은 변환 동안 비디오 블록을 나타내는 적어도 일부 계수를 스케일링 하는 데 사용됨 - 를 포함한다.
또 다른 예에서, 또 다른 비디오 처리 방법이 개시된다. 방법은 변환을 위한 블록 차동 펄스 코드 변조(BDPCM) 또는 양자화된 잔차 BDPCM(QR-BDPCM) 모드의 사용으로 인해 비디오 블록과 비디오 블록의 코딩된 표현 사이의 변환을 위한 스케일링 행렬의 사용을 비활성화하는 것을 결정하는 단계; 및 스케일링 행렬을 사용하여 변환을 수행하는 단계 - 스케일링 행렬은 변환 동안 비디오 블록을 나타내는 적어도 일부 계수를 스케일링 하는 데 사용됨 - 를 포함한다.
또 다른 예에서, 또 다른 비디오 처리 방법이 개시된다. 방법은, 비디오의 비디오 블록의 코딩된 표현과 비디오 블록 사이의 변환을 위해, 트랜스폼 스킵 모드가 변환을 위해 활성화되는지 여부에 따라 인루프 필터의 적용 가능성을 결정하는 단계; 및 인루프 필터의 적용 가능성에 기초하여 변환을 수행하는 단계를 포함하고; 트랜스폼 스킵 모드에서, 비디오 블록을 나타내는 적어도 일부 계수에 대한 변환의 적용은 변환 동안 스킵된다.
또 다른 예에서, 또 다른 비디오 처리 방법이 개시된다. 이 방법은 인터 코딩 및 인트라 블록 복사 코딩 기반 변환을 위해 동일한 스케일링 행렬이 선택되도록 비디오의 비디오 블록과 비디오 블록의 코딩된 표현 사이의 변환을 위해 스케일링 행렬을 선택하는 단계, 및 선택된 스케일링 행렬을 사용하여 변환을 수행하는 단계를 포함하고, 스케일링 행렬은 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용된다.
또 다른 예에서, 또 다른 비디오 처리 방법이 개시된다. 방법은 비디오의 비디오 블록과 변환을 위해 선택된 트랜스폼 행렬에 기초하여 비디오 블록의 코딩된 표현 사이의 변환을 위한 스케일링 행렬을 선택하는 단계, 및 선택된 스케일링 행렬을 사용하여 변환을 수행하는 단계를 포함하고, 스케일링 행렬은 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용되고 및 트랜스폼 행렬은 변환 동안 비디오 블록의 적어도 일부 계수를 트랜스폼 하는 데 사용된다.
또 다른 예에서, 또 다른 비디오 처리 방법이 개시된다. 방법은 비디오의 비디오 블록과 변환을 위해 선택된 이차 트랜스폼 행렬에 기초하여 비디오 블록의 코딩된 표현 사이의 변환을 위한 스케일링 행렬을 선택하는 단계, 및 선택된 스케일링 행렬을 사용하여 변환을 수행하는 단계를 포함하고, 스케일링 행렬은 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용되고 및 이차 트랜스폼 행렬은 변환 동안 비디오 블록의 적어도 일부 잔차 계수를 트랜스폼 하는 데 사용된다.
또 다른 예에서, 또 다른 비디오 처리 방법이 개시된다. 방법은, 비정사각 형상을 갖는 비디오 블록에 대해, 비디오 블록과 비디오 블록의 코딩된 표현 사이의 변환에 사용하기 위한 스케일링 행렬을 결정하는 단계 - 코딩된 표현의 신택스 요소는 스케일링 행렬을 시그널링함 -; 및 스케일링 행렬에 기초하여 변환을 수행하는 단계 - 스케일링 행렬은 변환 동안 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용됨 - 를 포함한다.
또 다른 예에서, 또 다른 비디오 처리 방법이 개시된다. 방법은 비디오 블록의 코딩된 표현과 비디오 블록 사이의 변환 동안 스케일링 행렬이 부분적으로 적용될 것인지를 결정하는 단계; 및 스케일링 행렬이 제1 위치 세트에 적용되고 비디오 블록의 나머지 위치에서 비활성화되도록 스케일링 행렬을 부분적으로 적용하여 변환을 수행하는 단계를 포함한다.
또 다른 예에서, 또 다른 비디오 처리 방법이 개시된다. 방법은 비디오 블록의 코딩된 표현과 비디오 블록 사이의 변환 동안 스케일링 행렬이 적용될 것인지를 결정하는 단계; 및 스케일링 행렬에 기초하여 변환을 수행하는 단계를 포함하고; 코딩된 표현은 스케일링 행렬의 다수의 요소를 시그널링하고, 숫자는 변환에서 제로화 계수의 적용에 의존한다.
또 다른 예에서, 또 다른 비디오 처리 방법이 개시된다. 방법은, 비디오 블록과 비디오 블록의 코딩된 표현 사이의 변환 동안, 특정 유형의 비디오 블록의 크기에 기초하여 사용할 단일 양자화 행렬을 결정하는 단계; 및 양자화 행렬을 사용하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 전술한 방법은 프로세서 실행 코드 형태로 구현되고 컴퓨터 판독 가능한 프로그램 매체에 저장된다.
또 다른 대표적인 측면에서, 전술한 방법을 수행하도록 구성되거나 작업 가능한 장치가 개시된다. 장치는 이 방법을 구현하도록 프로그래밍된 프로세서를 포함할 수 있다.
또 다른 대표적인 측면에서, 비디오 디코더 장치는 본명에서 기재된 바와 같은 방법을 구현할 수 있다.
개시된 기술의 및 기타 양태 및 특징은 도면, 설명 및 청구범위에서 보다 상세하게 설명된다.
도 1은 비디오 인코더 구현 예의 블록도이다.
도 2는 이차 트랜스폼의 예를 나타낸다.
도 3은 감소된 이차 트랜스폼(RST)의 예를 나타낸다.
도 4는 종속 양자화(dependent quantization)의 제안된 접근 방식에 사용되는 두 스칼라 양자기(scalar quantizer)의 예시이다.
도 5는 제안된 종속 양자화에 대한 상태 전환 및 양자기 선택의 예를 나타낸다.
도 6a-6b는 대각선 스캔 순서의 예를 나타낸다.
도 7은 QM 시그널링(32x32 트랜스폼 크기)에 대해 선택한 위치의 예를 나타낸다.
도 8은 QM 시그널링(64x64 트랜스폼 크기)에 대해 선택한 위치의 예를 나타낸다.
도 9는 계수에 제로아웃을 적용하는 예를 나타낸다.
도 10은 시그널링 되는 대시 영역(예를 들어, MxN 영역)에서만 선택된 요소의 예를 나타낸다.
도 11은 비디오 처리 하드웨어 플랫폼의 예의 블록도이다.
도 12는 비디오 처리 방법의 하나의 예의 방법에 대한 흐름도이다.
도 13은 비디오 디코더의 일 예를 도시한 블록도이다.
도 14는 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 처리 시스템을 도시한 블록도이다.
도 15는 본 개시의 기술을 활용할 수 있는 비디오 코딩 시스템의 일 예를 도시한 블록도이다.
도 16은 비디오 인코더의 일 예를 도시한 블록도이다.
도 17 내지 27은 예시적인 비디오 처리 방법의 흐름도이다.
개시된 기술의 실시예는 압축 성능을 향상시키기 위해 기존 비디오 코딩 표준(예를 들어, HEVC, H.265)과 미래 표준에 적용될 수 있다. 섹션 제목은 설명의 가독성을 향상시키기 위해 본 문서에서 사용되며, 토론 또는 실시예(및/또는 구현)를 각 섹션으로만 제한하지 않는다.
1. 요약
이 문서는 이미지/비디오 코딩 기술(video coding technologies)과 관련이 있다. 구체적으로, 이미지/비디오 코딩에서 양자화 행렬(quantization matrix in image/video coding)과 관련이 있다. HEVC와 같은 기존 비디오 코딩 표준 또는 최종 확정될 표준(다목적 비디오 코딩)에 적용될 수 있다. 미래의 비디오 부호화 표준이나 비디오 코덱에도 적용 가능(applicable)하다.
2. 배경
비디오 코딩 표준은 주로 잘 알려진 ITU-T 및 ISO/IEC 표준의 개발을 통해 발전해 왔다. ITU-T는 H.261및 H.263을 제작했으며, ISO/IEC는 MPEG-1 및 MPEG-4 비주얼을 제작했으며, 두 조직은 H.262/MPEG-2 비디오 및 H.264/MPEG-4 고급 비디오 코딩(AVC) 및 H.265/HEVC 표준을 공동 제작했다. H.262 이후, 비디오 코딩 표준은 시간(temporal) 예측과 트랜스폼(transform) 코딩이 사용되는 하이브리드 비디오 코딩 구조에 기초한다. HEVC를 넘어 미래의 비디오 코딩 기술을 연구하기 위해, 공동 비디오 연구팀(JVET: Joint Video Exploration Team)이 2015년에 VCEG와 MPEG의 공동으로 설립되었다. 그 이후로 JVET에 의해 많은 새로운 방법을 채택하고 공동 연구 모델 (JEM)이라는 레퍼런스 소프트웨어에 적용했다. 2018년 4월, VCEG(Q6/16)와 ISO/IEC JTC1 SC29/WG11(MPEG) 사이의 공동 비디오 전문가 팀(Joint Video Expert Team)(JVET)는 HEVC에 비해 50% 비트 전송률 감소를 목표로 하는 VVC 표준 작업을 위해 만들어졌다.
VVC 초안의 최신 버전, 즉 범용 비디오 코딩(Versatile Video Coding)(드래프트(Draft) 5)은 다음 위치에서 찾을 수 있다.
http://phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=6640
VTM이라는 VVC의 최신 참조 소프트웨어는 다음에서 찾을 수 있다.
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-4.0
2.1. 컬러 공간 및 크로마 서브샘플링(Color space and chroma subsampling)
컬러 모델(또는 컬러 시스템)이라고도 하는 컬러 공간은 일반적으로 3또는 4값 또는 컬러 컴포넌트(예를 들어, RGB)로 컬러 범위를 숫자의 줄로 묘사하는 추상적인 수학적 모델이다. 기본적으로 컬러 공간은 좌표계와 서브 공간의 정교화이다.
비디오 압축의 경우 가장 자주 사용되는 컬러 공간은 YCbCr 및 RGB이다.
YCbCr, Y'CbCr, 또는 Y'Pb/Cb Pr/Cr은 YCBCR 또는 Y'CBCR으로 기재된 컬러 공간의 제품군은 디지털 픽처 시스템의 컬러 이미지 파이프라이닝의 일부로 사용된다. Y'는 루마 컴포넌트이고 CB와 CR은 청색-차이 및 적색-차이 크로마 컴포넌트이다. Y'(프라임) Y에서 구별된다, Y'(프라임 포함)는 루마인 Y와 구별되고, 즉, 감마 보정된 RGB 프라이머리에 기초하여 빛의 강도가 비선형적으로 인코딩 된다.
크로마 서브 샘플링(Chroma subsampling)은 루마보다 컬러 차이에 대한 인간 시각 시스템의 낮은 선명도를 사용하여 루마 정보보다 크로마 정보에 대해 더 낮은 해상도를 구현하여 이미지를 인코딩하는 방식이다.
2.1.1. 4:4:4
3개의 Y'CbCr 컴포넌트 각각은 동일한 샘플링 레이트를 가지므로 크로마 서브 샘플링이 없다. 이 방식은 때때로 고급 필름 스캐너와 시네마틱 포스트 프로덕션에 사용된다.
2.1.2. 4:2:2
두 크로마 컴포넌트는 루마의 샘플 비율의 절반으로 샘플링되고: 수평 크로마 해상도가 반으로 줄어든다. 이렇게 하면 압축되지 않은 비디오 신호의 대역폭이 시각적 차이가 거의 또는 전혀 없는 3분의 1로 줄어든다.
2.1.3. 4:2:0
4:2:0에서, 수평 샘플링은 4:1:1에 비해 두 배가되지만 Cb 및 Cr 채널은 이 구성표의 각 대체 줄에서만 샘플링되기 때문에 수직 해상도가 반으로 줄어든다. 따라서 데이터 속도(data rate)는 동일하다. Cb와 Cr은 각각 수평 및 수직 모두에서 2의 인자로 서브 샘플링 된이다. 4:2:0 방식의 세 가지 변형이 있으며, 수평 및 수직 위치가 상이하다.
Figure pct00001
MPEG-2에서는 Cb와 Cr이 수평으로 구비된다. Cb와 Cr은 수직 방향의 픽셀 사이에 위치된다(중간에 위치됨).
Figure pct00002
JPEG/JFIF, H.261 및 MPEG-1에서 Cb와 Cr은 대체 루마 샘플 사이의 중간에 교차하여 위치된다.
Figure pct00003
4:2:0 DV에서 Cb와 Cr은 수평 방향으로 공동 위치로 지정된다. 수직 방향으로는 교대선에 공동으로 구성된다.
2.2 일반적인 비디오 코덱의 코딩 흐름
도 1은 3개의 인루프 필터링 블록을 포함하는 VVC의 인코더 블록도의 예를 보여준다: 디블로킹 필터(deblocking filter)(DF), 샘플 적응형 오프셋(sample adaptive offset)(SAO) 및 ALF. 미리 정의된 필터를 사용하는 DF와 달리, SAO 및 ALF는 오프셋을 추가하고 오프셋 및 필터 계수를 시그널링 하는 코딩된 부가 정보와 함께 유한 임펄스 응답(finite impulse response)(FIR) 필터를 각각 적용하여 원래 샘플과 재구성된 샘플 사이의 평균 제곱 오류를 줄이기 위해 현재 픽처의 원래 샘플을 활용한다. ALF는 각 픽처의 마지막 처리 단계에 위치하며 이전 단계에서 만든 아티팩트를 포착하고 수정하려는 툴(tool)로 간주될 수 있다.
2.3 양자화 행렬
인간 시각 시스템(HVS)의 잘 알려진 공간 주파수 감도는 JPEG, MPEG2, H.264/AVC 하이 프로파일 및 HEVC를 포함한 현대 이미지 및 비디오 코딩 알고리즘 및 표준의 디자인의 여러 측면을 뒷받침하는 핵심 동인(key driver)이었다.
MPEG2에 사용되는 양자화 행렬은 8x8 행렬이다. H.264/AVC에서, 양자화 행렬 블록 크기는 4x4및 8x8을 모두 포함한다. 이러한 QM은 SPS(시퀀스 파라미터 집합) 및 PPS(픽처 파라미터 집합)로 인코딩된다. QM 시그널링에 대한 H.264/AVC의 압축 방법은 차동 펄스 코드 변조( Differential Pulse Code Modulation)(DPCM)이다.
H.264/AVC 하이 프로파일에서, 4x4 블록 크기와 8x8 블록 크기가 사용된다. 4x4 블록 크기에 대한 6개의 QM(즉, 인트라/인터 코딩 및 Y/Cb/Cr 구성 요소에 대한 별도의 행렬) 및 8x8 블록 크기에 대한 두 개의 QM(즉, 인트라/인터 Y 구성 요소에 대한 별도의 행렬), 즉 8개의 양자화 행렬만 비트스트림으로 인코딩되어야 한다.
2.4 VVC의 트랜스폼 및 양자화 설계(Transform and quantization design in VVC)
2.4.1 트랜스폼(Transform)
HEVC는 4Х 4에서 32까지 다양한 크기의 이차원 트랜스폼을 지정하여 4Х 4에서 32Х 32로, 이산 코사인 트랜스폼(DCT)에 유한 정밀 근사치(finite precision approximation)이다. 또한, HEVC는 4개의 Х 4루마 인트라 예측 잔차 블록과 함께 사용할 수 있는 개별 사인 트랜스폼(DST)에 기초하여 대체 4Х 4 정수 트랜스폼을 지정한다. 또한, 특정 블록 크기가 있는 경우, 트랜스폼 스킵(transform skip)도 허용될 수 있다.
트랜스폼 행렬 cij (i, j= 0.nS-1) nS = 4, 8, 16 및 32, DCT-II는 다음과 같이 정의된다:
nS = 4
{64, 64, 64, 64}
{83, 36,-36,-83}
{64,-64,-64, 64}
{36,-83, 83,-36}
nS = 8
{64, 64, 64, 64, 64, 64, 64, 64}
{89, 75, 50, 18,-18,-50,-75,-89}
{83, 36,-36,-83,-83,-36, 36, 83}
{75,-18,-89,-50, 50, 89, 18,-75}
{64,-64,-64, 64, 64,-64,-64, 64}
{50,-89, 18, 75,-75,-18, 89,-50}
{36,-83, 83,-36,-36, 83,-83, 36}
{18,-50, 75,-89, 89,-75, 50,-18}
nS = 16
{64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64}
{90 87 80 70 57 43 25 9 -9-25-43-57-70-80-87-90}
{89 75 50 18-18-50-75-89-89-75-50-18 18 50 75 89}
{87 57 9-43-80-90-70-25 25 70 90 80 43 -9-57-87}
{83 36-36-83-83-36 36 83 83 36-36-83-83-36 36 83}
{80 9-70-87-25 57 90 43-43-90-57 25 87 70 -9-80}
{75-18-89-50 50 89 18-75-75 18 89 50-50-89-18 75}
{70-43-87 9 90 25-80-57 57 80-25-90 -9 87 43-70}
{64-64-64 64 64-64-64 64 64-64-64 64 64-64-64 64}
{57-80-25 90 -9-87 43 70-70-43 87 9-90 25 80-57}
{50-89 18 75-75-18 89-50-50 89-18-75 75 18-89 50}
{43-90 57 25-87 70 9-80 80 -9-70 87-25-57 90-43}
{36-83 83-36-36 83-83 36 36-83 83-36-36 83-83 36}
{25-70 90-80 43 9-57 87-87 57 -9-43 80-90 70-25}
{18-50 75-89 89-75 50-18-18 50-75 89-89 75-50 18}
{ 9-25 43-57 70-80 87-90 90-87 80-70 57-43 25 -9}
nS = 32
{64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64}
{90 90 88 85 82 78 73 67 61 54 46 38 31 22 13 4 -4-13-22-31-38-46-54-61-67-73-78-82-85-88-90-90}
{90 87 80 70 57 43 25 9 -9-25-43-57-70-80-87-90-90-87-80-70-57-43-25 -9 9 25 43 57 70 80 87 90}
{90 82 67 46 22 -4-31-54-73-85-90-88-78-61-38-13 13 38 61 78 88 90 85 73 54 31 4-22-46-67-82-90}
{89 75 50 18-18-50-75-89-89-75-50-18 18 50 75 89 89 75 50 18-18-50-75-89-89-75-50-18 18 50 75 89}
{88 67 31-13-54-82-90-78-46 -4 38 73 90 85 61 22-22-61-85-90-73-38 4 46 78 90 82 54 13-31-67-88}
{87 57 9-43-80-90-70-25 25 70 90 80 43 -9-57-87-87-57 -9 43 80 90 70 25-25-70-90-80-43 9 57 87}
{85 46-13-67-90-73-22 38 82 88 54 -4-61-90-78-31 31 78 90 61 4-54-88-82-38 22 73 90 67 13-46-85}
{83 36-36-83-83-36 36 83 83 36-36-83-83-36 36 83 83 36-36-83-83-36 36 83 83 36-36-83-83-36 36 83}
{82 22-54-90-61 13 78 85 31-46-90-67 4 73 88 38-38-88-73 -4 67 90 46-31-85-78-13 61 90 54-22-82}
{80 9-70-87-25 57 90 43-43-90-57 25 87 70 -9-80-80 -9 70 87 25-57-90-43 43 90 57-25-87-70 9 80}
{78 -4-82-73 13 85 67-22-88-61 31 90 54-38-90-46 46 90 38-54-90-31 61 88 22-67-85-13 73 82 4-78}
{75-18-89-50 50 89 18-75-75 18 89 50-50-89-18 75 75-18-89-50 50 89 18-75-75 18 89 50-50-89-18 75}
{73-31-90-22 78 67-38-90-13 82 61-46-88 -4 85 54-54-85 4 88 46-61-82 13 90 38-67-78 22 90 31-73}
{70-43-87 9 90 25-80-57 57 80-25-90 -9 87 43-70-70 43 87 -9-90-25 80 57-57-80 25 90 9-87-43 70}
{67-54-78 38 85-22-90 4 90 13-88-31 82 46-73-61 61 73-46-82 31 88-13-90 -4 90 22-85-38 78 54-67}
{64-64-64 64 64-64-64 64 64-64-64 64 64-64-64 64 64-64-64 64 64-64-64 64 64-64-64 64 64-64-64 64}
{61-73-46 82 31-88-13 90 -4-90 22 85-38-78 54 67-67-54 78 38-85-22 90 4-90 13 88-31-82 46 73-61}
{57-80-25 90 -9-87 43 70-70-43 87 9-90 25 80-57-57 80 25-90 9 87-43-70 70 43-87 -9 90-25-80 57}
{54-85 -4 88-46-61 82 13-90 38 67-78-22 90-31-73 73 31-90 22 78-67-38 90-13-82 61 46-88 4 85-54}
{50-89 18 75-75-18 89-50-50 89-18-75 75 18-89 50 50-89 18 75-75-18 89-50-50 89-18-75 75 18-89 50}
{46-90 38 54-90 31 61-88 22 67-85 13 73-82 4 78-78 -4 82-73-13 85-67-22 88-61-31 90-54-38 90-46}
{43-90 57 25-87 70 9-80 80 -9-70 87-25-57 90-43-43 90-57-25 87-70 -9 80-80 9 70-87 25 57-90 43}
{38-88 73 -4-67 90-46-31 85-78 13 61-90 54 22-82 82-22-54 90-61-13 78-85 31 46-90 67 4-73 88-38}
{36-83 83-36-36 83-83 36 36-83 83-36-36 83-83 36 36-83 83-36-36 83-83 36 36-83 83-36-36 83-83 36}
{31-78 90-61 4 54-88 82-38-22 73-90 67-13-46 85-85 46 13-67 90-73 22 38-82 88-54 -4 61-90 78-31}
{25-70 90-80 43 9-57 87-87 57 -9-43 80-90 70-25-25 70-90 80-43 -9 57-87 87-57 9 43-80 90-70 25}
{22-61 85-90 73-38 -4 46-78 90-82 54-13-31 67-88 88-67 31 13-54 82-90 78-46 4 38-73 90-85 61-22}
{18-50 75-89 89-75 50-18-18 50-75 89-89 75-50 18 18-50 75-89 89-75 50-18-18 50-75 89-89 75-50 18}
{13-38 61-78 88-90 85-73 54-31 4 22-46 67-82 90-90 82-67 46-22 -4 31-54 73-85 90-88 78-61 38-13}
{ 9-25 43-57 70-80 87-90 90-87 80-70 57-43 25 -9 -9 25-43 57-70 80-87 90-90 87-80 70-57 43-25 9}
{ 4-13 22-31 38-46 54-61 67-73 78-82 85-88 90-90 90-90 88-85 82-78 73-67 61-54 46-38 31-22 13 -4}
2.4.2. 양자화(Quantization)
HEVC 양자화형 설계는 0-51 범위(8비트 비디오 시퀀스의 경우)의 양자화 파라미터(QP)가 QP 값이 6배 증가할 때마다 두 배가 되는 양자화 단계 크기로 매핑되는 H.264/AVC와 유사하다. 그러나, 주요 차이점은 H.264/AVC의 디스케일링 행렬에 통합된 변형 기준 표준 보정 요소가 더 이상 HEVC에서 양자기 설계를 단순화할 필요가 없다는 것이다. 속도 제어 및 지각 양자화 목적을 위해 8Х 8샘플로 작은 양자화 군을 위해 QP 값(델타 QP의 형태로)을 전송할 수 있다. 델타 QP를 계산하는 데 사용되는 QP 예측 변수는 왼쪽, 위쪽 및 이전 QP 값의 조합을 사용한다. HEVC는 또한 모든 트랜스폼 블록( transform block) 크기에 대해 양자화 행렬을 사용하여 주파수 종속 양자화를 지원한다. 세부 사항은 섹션 2.4.3에 설명된다.
양자화된 트랜스폼 계수 qij(i, j = 0 .. nS-1)는 트랜스폼 계수 dij(i, j=0.nS-1)에서 유도된다.
qij = (dij * f [QP%6] + offset)  >> (29 + QP/6 - nS - BitDepth), i,j = 0,...,nS-1
여기서,
f[x] = {26214,23302,20560,18396,16384,14564}, x = 0, ... ,5
2 28+QP/6-nS-BitDepth  < offset < 229+QP/6-nS-BitDepth 
QP는 하나의 트랜스폼 유닛에 대한 양자화 파라미터를 나타내고 BitDepth는 현재 컬러 컴포넌트와 연결된 비트 깊이를 나타낸다.
HEVC에서, QP 의 범위는 [0, 51]이다.
2.4.3. 양자화 행렬(Quantization matrix)
양자화 행렬(QM)는 JPEG 및 JPEG-2000과 같은 이미지 코딩 표준뿐만 아니라 MPEG2, MPEG4 및 H.264/AVC와 같은 비디오 표준에 채택되었다. QM은 다양한 주파수 계수에 대한 주파수 가중치를 통해 주관적인 품질을 향상시킬 수 있다. HEVC 표준에서, 양자화 블록 크기는 최대 32x32까지 올라갈 수 있다. 4x4, 8x8, 16x16, 32x32 크기의 QM은 비트스트림에 인코딩될 수 있다. 각 블록 크기에 대해, 인트라/인터 예측 유형 및 Y/Cb/Cr 컬러 컴포넌트는 서로 다른 양자화 행렬이 필요하다. 총 24양자화 행렬(4x4, 8x8, 16x16 및 32x32 4블록 크기, 인트라/인터 및 Y, U, V 컴포넌트에 대한 별도의 행렬)을 인코딩해야 한다.
양자화 행렬에 대한 파라미터는 레퍼런스 양자화 행렬에서 직접 복사되거나 명시적으로 시그널링 될 수 있다. 명시적으로 시그널링 되면, 제1 파라미터(일명, 행렬의 (0,0) 컴포넌트 값)이 직접 코딩된다. 그리고 나머지 파라미터는 행렬의 래스터 스캔(raster scan)에 따라 예측 코딩으로 코딩된다.
HEVC에서, 스케일링 행렬을 인코딩 및 시그널링은 세 가지 모드를 의미한다. OFF, DEFAULT, 및 USER_DEFINED. 다음이 노트된다: 8Х8(즉, 16Х16, 32Х32)보다 큰 트랜스폼 유닛 크기의 경우, 스케일링 행렬은 8Х8 스케일링 행렬에서 더 큰 크기(요소의 복제)로 업샘플링하여 얻을 수 있다. 8Х8보다 큰 TB의 스케일링 행렬에 대해 추가 DC 값이 시그널링 되어야 한다.
HEVC에서 하나의 스케일링 행렬에 대한 코딩된 값의 최대 수는 64와 같다.
디폴트 값의 DC 값은 모든 TB 크기에 대해 16과 같다.
2.4.3.1. 신택스 및 시맨틱(Syntax and semantics)
7.3.2.2 시퀀스 파라미터 세트 RBSP 신텍스
7.3.2.2.1 일반 시퀀스 파라미터 세트 RBSP 신택스
Figure pct00004
7.3.2.3 픽처 파라미터 세트 RBSP 신텍스.
7.3.2.3.1 일반 픽처 파라미터 세트 RBSP 신택스
Figure pct00005
7.3.4 스케일링 목록 데이터 신택스
Figure pct00006
scaling_list_enabled_flag 1과 같을 때 트랜스폼 계수를 위한 스케일링 프로세스에 사용되는 것을 지정한다. scaling_list_enabled_flag 0과 같으면 스케일링 목록이 트랜스폼 계수에 대한 스케일링 프로세스에 사용되지 않는다고 지정한다.
sps_scaling_list_data_present_flag 1과 같을 때 scaling_list_data() 신택스 구조가 SPS에 존재한다는 것을 지정한다. sps_scaling_list_data_present_flag 0과 같으면 scaling_list_data() 신택스 구조가 SPS에 존재하지 않는다고 지정한다. 존재하지 않을 경우, sps_scaling_list_data_present_flag 값은 0과 같도록 유추된다.
pps_scaling_list_data_present_flag 1과 같으면 PPS를 참조하는 픽처에 사용되는 스케일링 목록 데이터는 활성 SPS및 PPS에서 지정한 스케일링 목록에서 지정한 스케일링 목록에 따라 유도되는 것으로 지정한다. pps_scaling_list_data_present_flag가 0과 같으면 PPS를 참조하는 픽처에 사용되는 스케일링 목록 데이터는 활성 SPS에 의해 지정된 데이터와 동일하게 유추되는 것으로 지정한다. scaling_list_enabled_flag 0과 같으면, pps_scaling_list_data_present_flag 값은 0과 같아야 한다. scaling_list_enabled_flag 1과 같으면, sps_scaling_list_data_present_flag 0과 같고, pps_scaling_list_data_present_flag 0과 같으면, 디폴트 스케일링 목록 데이터가 7.4.5 절에 지정된 대로 스케일링 목록 데이터 시맨틱에 설명된 대로 어렐이 ScalingFactor를 유도하는 데 사용된다.
7.4.5 목록 데이터 시맨틱 스케일링
0과 같은 scaling_list_pred_mode_flag [ sizeId ][ matrixId ] 는 스케일링 목록의 값이 레퍼런스 스케일링 목록의 값과 동일하다고 지정한다. 레퍼런스 스케일링 목록은 scaling_list_pred_matrix_id_delta[sizeId][ matrixId]로 지정된다. scaling_list_pred_mode_flag[sizeId][ matrixId] 1과 같으면 스케일링 목록의 값이 명시적으로 시그널링 됨을 지정한다.
scaling_list_pred_matrix_id_delta [ sizeId][ matrixId]는 다음과 같이 ScalingList[ sizeId][ matrixId]를유도하는 데 사용되는 레퍼런스 스케일링 목록을 지정한다:
- scaling_list_pred_matrix_id_delta [sizeId][ matrixId]가 0과 같으면, 스케일링 목록은 i = 0..Min (63, (1 << (4 + (sizeId << 1))) - 1)에 대해 표 7-5 및 표 7-6에 지정된 대로 기본 스케일링 목록 ScalingList [sizeId] [matrixId] [i]에서 유추된다.
- 그렇지 않으면, 다음과 같이 레퍼런스 스케일링 목록에서 스케일링 목록이 유추된다.
refMatrixId = matrixId -
scaling_list_pred_matrix_id_delta[ sizeId ][ matrixId ] * ( sizeId  = =  3 ? 3 : 1 ) (7-42)
ScalingList[ sizeId ][ matrixId ][ i ] = ScalingList[ sizeId ][ refMatrixId ][ i ]
with i =0..Min( 63, ( 1  <<  ( 4 + ( sizeId  <<  1 ) ) ) - 1 ) (7-43)
sizeId가 2보다 작거나 같으면, scaling_list_pred_matrix_id_delta [sizeId] [ matrixId]의 값은 0 ~ matrixId, 포함하는 범위에 있어야 한다. 그렇지 않으면 (sizeId는 3과 같음), scaling_list_pred_matrix_id_delta[sizeId][matrixId]의 값은 0 ~matrixId/3, 포함하는 범위에 있어야 한다.
표 7-3 - sizeId의 사양
Figure pct00007
표 7-4 - sizeId, 예측 모드 및 컬러 컴포넌트에 따른 matrixId 사양
Figure pct00008
scaling_list_dc_coef_minus8 [sizeId - 2] [matrixId] 더하기 8 은 sizeId가 2일 때 16x16 크기에 대한 스케일링 목록에 대해 변수 ScalingFactor [2] [matrixId] [0] [0]의 값을 지정하고, sizeId가 3일 때 32x32 크기에 대한 스케일링 목록에 대해 ScalingFactor[3][matrixId][0][0]의 값을 지정한다. scaling_list_dc_coef_minus8 [sizeId - 2] [matrixId]의 값은 -7에서 247까지의 범위에 있어야 한다.
scaling_list_pred_mode_flag [sizeId][matrixId]가 0과 같을 때, scaling_list_pred_matrix_id_delta[sizeId][ matrixId]는 0과 같고, sizeId는 1보다 크고, scaling_list_dc_coef_minus8[sizeId- 2][ matrixId]의 값은 8과 같도록 유추된다.
scaling_list_pred_matrix_id_delta [sizeId][matrixId]가 0과 같지 않고 sizeId가 1보다 크지 않을 때, scaling_list_dc_coef_minus8 [sizeId - 2][ matrixId]의 값은 scaling_list_dc_coef_minus8[sizeId- 2][ refMatrixId]와 같도록 유추되며, 여기서 refMatrixId의 값이 식 7-42에 의해 주어진다.
scaling_list_delta_coef는, scaling_list_pred_ mode_flag[sizeId][ matrixId]의 차이가 1과 같을 때, 현재 행렬 계수 ScalingList[sizeId][[ matrixId][i] 및 이전 행렬 계수 ScalingList[sizeId][[ matrixId][[ i -1] 사이의 차이를 지정한다. scaling_list_delta_coef 값은 - 128에서 127의 범위에 있어야 한다. ScalingList[sizeId][ matrixId][[ i]의 값은 0보다 클 것이다.
표 7-5 - ScalingList[ 0][ matrixId ][ i], i = 0..15의 디폴트 값의 사양
Figure pct00009
표 7-6 - ScalingList[ 1..3][ matrixId ][ i], i = 0..63의 디폴트 값의 사양
Figure pct00010
x, y = 0.. (1 << (2 + sizeId) ) - 1인, 4차원 어레이 ScalingFactor[ sizeId][ matrixId ][ x ][ y]은 표 7-3에 지정된 변수 sizeId 및 matrixId 표 7-4에 지정된 matrixId에 따라 스케일링 인자의 어레이를 지정한다.
크기 4x4, ScalingFactor[ 0][ matrixId][ []의 양자화 행렬의 요소는, 다음과 같이 유도된다:
ScalingFactor[ 0 ][ matrixId ][ x ][ y ] = ScalingList[ 0 ][ matrixId ][ i ] (7-44)
i = 0..15, matrixId = 0..5, x = ScanOrder[ 2 ][ 0][ i ][ 0], 및 y = ScanOrder[ 2][ 0][ [ i][ 1] ]이다.
크기 8x8, ScalingFactor[ 1][ matrixId][ []의 양자화 행렬의 요소는 다음과 같이 유도된다:
ScalingFactor[ 1 ][ matrixId ][ x ][ y ] = ScalingList[ 1 ][ matrixId ][ i ] (7-45)
i = 0..63, matrixId = 0..5, x = ScanOrder[ 3 ][ 0][ i ][ 0], 및 y = ScanOrder[ 3][ 0][ [ i][ 1] ]이다.
크기 16x16, ScalingFactor[ 2 ][ matrixId][ []의 양자화 행렬의 요소는 다음과 같이 유도된다:
ScalingFactor[ 2][ matrixId][ x * 2 + k][ y * 2 + j ] = ScalingList[ 2][ matrixId][ i] ] ] (7-46)
i = 0..63, j = 0..1, k = 0..1, matrixId = 0..5, x = ScanOrder[ 3 ][ 0 ][ i ][ 0 ]이고,
및 y = ScanOrder[ 3 ][ 0][ i][ 1]이고
ScalingFactor[ 2 ][ matrixId ][ 0 ][ 0 ] = scaling_list_dc_coef_minus8[ 0 ][ matrixId ] + 8 (7-47)
matrixId = 0..5이다.
크기 32x32, ScalingFactor[ 3][ matrixId][ []의 양자화 행렬의 요소는 다음과 같이 유도된다:
ScalingFactor[ 3][ matrixId][ x Х 4 + k][ y * 4 + j ] = ScalingList[ 3 ][ matrixId][ i] ] ] (7-48)
i = 0..63, j = 0..3, k = 0..3, matrixId = 0, 3, x = ScanOrder[ 3 ][ 0 ][ i ][ 0 ]이고,
및 y = ScanOrder[ 3 ][ 0][ i][ 1]이고
ScalingFactor[ 3 ][ matrixId ][ 0 ][ 0 ] = scaling_list_dc_coef_minus8[ 1 ][ matrixId ] + 8 (7-49)
matrixId = 0, 3이다.
ChromaArrayType이 3과 같을 때, 크로마 양자화 행렬의 요소는 크기 32x32, ScalingFactor[3][ matrixId][[]] [], matrixId = 1, 2, 4 및 5, 다음과 같이 유도된다:
ScalingFactor[ 3][ matrixId][ x * 4 + k][ y * 4 + j ] = ScalingList[ 2 ][ matrixId][ i] ] ] (7-50)
i = 0..63, j = 0..3, k = 0..3, x = ScanOrder[ 3 ][ 0][ i ]] 0], y = ScanOrder[ 3][ 0][ i][ 1] ]이고
ScalingFactor[ 3 ][ matrixId ][ 0 ][ 0 ] = scaling_list_dc_coef_minus8[ 0 ][ matrixId ] + 8 (7-51)
2.5. VVC의 트랜스폼 및 양자화 설계(Transform and quantization design in VVC)
2.5.1. MTS(다중 트랜스폼 선택(multiple transform selection))
이산 정현파 트랜스폼(discrete sinusoidal transform) 군은 잘 알려진 이산 푸리에(discrete Fourier), 코사인, 사인, 카르후넨-로브(Karhunen-Loeve)(1차 마르코프 조건 하에서)을 포함한다. 모든 구성 중, 코사인 함수에 따라 트랜스폼의 8 종류와 사인 함수(sine function), 즉 DCT-I, II, ..., VIII, 및 DST-I, II, II, ..., VIII, 각각에 따라 트랜스폼의 8 종류가 있다. 이산 코사인 및 사인 트랜스폼의 이러한 변종은 대응하는 대칭 주기시퀀스의 상이한 대칭에서 유래한다[22]. 제안된 방법에 활용되는 대로, 선택된 유형의 DCT 및 DST의 트랜스폼 기본 함수는 표 1 아래에 공식화된다.
N 포인트 입력을 위한 DCT-II/V/VIII 및 DST-I/VII의 기본 함수 변형.
트랜스폼 유형 기초 함수 T i (j),i, j =0, 1,..., N -1 ,
DCT2
Figure pct00011
DCT5
Figure pct00012
DCT8
Figure pct00013
DST1
Figure pct00014
DST7
Figure pct00015
한 블록의 경우, 트랜스폼 스킵 또는 DCT2/DST7/DCT8을 선택할 수 있다. 이러한 방법을 다중 트랜스폼 선택(multiple transform selection)(MTS)이라고 한다.
MTS 개념을 제어하기 위해, SPS 레벨에서 각각 인트라 및 인터에 대해 별도의 사용 플래그가 지정된다. SPS에서 MTS를 사용하도록 설정하면, MTS가 적용되었는지 여부를 나타내는 CU 레벨 플래그가 시그널링 된다. 여기서 MTS는 루마에만 적용된다. MTS CU 레벨 플래그는 다음 조건이 충족되면 시그널링된다.
- 너비와 높이가 32보다 작거나 같음
- CBF 플래그는 하나와 동일하다.
MTS CU 플래그가 0과 같으면 DCT2가 양방향으로 적용된다. 그러나, MTS CU 플래그가 하나와 같으면, 다른 두 플래그가 각각 수평 및 수직 방향에 대한 트랜스폼 유형을 나타내기 위해 추가로 시그널링 된다. 아래 표에 표시된 대로 매핑 테이블을 트랜스폼하고 시그널링한다. 행렬 정밀도를 트랜스폼할 때, 8비트 일차 트랜스폼 코어(primary transform core)가 사용된다. 따라서, HEVC에 사용되는 모든 트랜스폼 코어는 4점 DCT-2 및 DST-7, 8점, 16점 및 32점 DCT-2를 포함하여 동일하게 유지된다. 또한 64포인트 DCT-2, 4점 DCT-8, 8점, 16점, 32점 DST-7 및 DCT-8을 포함한 다른 트랜스폼 코어는 8비트 일차 트랜스폼 코어를 사용한다.
N 포인트 입력을 위한 DCT-II/V/VIII 및 DST-I/VII의 기본 함수 변형.
MTS_CU_flag MTS_Hor_flag MTS_Ver_flag 인트라/인터
수평 수직
0 DCT2


1
0 0 DST7 DST7
0 1 DCT8 DST7
1 0 DST7 DCT8
1 1 DCT8 DCT8
HEVC에서와 같이, 블록의 잔차(residual)는 변형 스킵 모드로 코딩 될 수 있다. 신택스 코딩(syntax coding)의 중복을 방지하려면, 변현 스킵 플래그(transform skip flag)는 CU 레벨 AMT 플래그가 0이 아닐 때 시그널링 하지 않는다. 트랜스폼 스킵(transform skip)에 대한 블록 크기 제한은 JEM4의 MTS와 동일하고, 이는 블록 너비와 높이가 32미만일 때 트랜스폼 스킵이 CU에 적용가능하다는 것을 나타낸다.
2.5.1.1. 고주파의 제로아웃(Zeroing-out of high frequency)
VTM4에서, 최대 64 Х 64 크기의 큰 블록 크기 변환이 활성화되어 1080p 및 4K 시퀀스와 같은 고해상도 비디오에 주로 유용하다. 고주파 트랜스폼 계수는 크기(너비 또는 높이 또는 너비 와 높이 모두)가 64와 동일한 트랜스폼 블록에 대해 제로아웃되므로 저주파 계수만 유지된다. 예를 들어, MХN 트랜스폼 블록의 경우, M을 블록 너비로, N을 블록 높이로, M이 64와 같을 때, 트랜스폼 계수의 왼쪽 32열만 유지된다. 마찬가지로, N이 64와 같으면, 트랜스폼 계수의 상위 32열만 유지된다. 트랜스폼 스킵 모드가 큰 블록에 사용되면, 전체 블록이 값을 제로아웃 되지 않고 사용된다.
대형 DST-7 및 DCT-8의 복잡성을 줄이기 위해, DST-7 및 DCT-8 블록의 경우 크기(너비 또는 높이 또는 너비 와 높이)가 32에 대응하는 고주파 트랜스폼 계수가 제로아웃된다. 16x16 저주파 영역 내의 계수만 유지된다.
2.2.2. 감소된 이차 트랜스폼
JEM에서, 이차 트랜스폼은 순방향 일차 트랜스폼 및 양자화(인코더에서)와 역양자화(de-quantization) 및 역 일차 트랜스폼(디코더 측)사이에 적용된다. 도 2에 도시된 바와 같이, 4x4(또는 8x8) 이차 트랜스폼이 수행되는 것은 블록 크기에 의존한다. 예를 들어, 4x4 이차 트랜스폼은 작은 블록(즉, 최소(너비, 높이) < 8) 및 8x8 이차 트랜스폼에 적용되어 8x8 블록당 더 큰 블록(즉, 최소(너비, 높이) > 4)에 적용된다.
이차 트랜스폼의 경우, 비분리 트랜스폼이 적용되므로 비분리 이차 트랜스폼(Non-Separable Secondary Transform)(NSST)이라 명명된다. 트랜스폼 세트당 완전히 35개의 트랜스폼 세트와 3개의 비분리 트랜스폼 행렬(커널, 16x16 행렬각)이 사용된다.
감소된 이차 트랜스폼(RST)은 VET-K0099에 도입되었고 인트라 예측 방향에 따라 JVET-L0133에 4개의 변환 세트(35개 변환 세트 대신) 매핑이 도입되었다. 이 기여에서, 16x48 및 16x16 행렬은 각각 8x8 및 4x4 블록에 사용된다. 표기 편의를 위해, 16x48 트랜스폼은 RST8x8과 16x16을 RST4x4로 표시한다. 이러한 방법은 최근 VVC에 의해 채택되었다.
도 3은 감소된 이차 트랜스폼(RST)의 예를 나타낸다.
이차 순방향 및 역방향 트랜스폼은 일차 트랜스폼과는 별개의 프로세스 단계이다.
인코더의 경우, 일차 순방향 트랜스폼이 먼저 수행된 다음 이차 순방향 트랜스폼 및 양자화 및 CABAC 비트 인코딩이 수행된다. 디코더의 경우, CABAC 비트 디코딩 및 역 양자화의 경우 이차 역방향 트랜스폼이 먼저 수행된 다음 일차 역방향 트랜스폼이 수행된다.
RST는 인트라 코딩된 TU에만 적용된다.
2.5.3. 양자화(Quantization)
VTM4에서는 최대 QP가 51에서 63으로 확장되었으며, 이에 따라 초기 QP의 시그널링이 변경되었다. SliceQpY의 초기 값은 slice_qp_delta 0이 아닌 값이 코딩될 때 슬라이스 세그먼트 계층에서 수정된다. 구체적으로, init_qp_minus26 값은 -(26 + QpBdOffsetY)의 범위에 +37로 수정된다.
또한, 동일한 HEVC 스칼라 양자화는 종속 스칼라 양자화라는 새로운 개념과 함께 사용된다. 종속 스칼라 양자화는 트랜스폼 계수에 대해 허용 가능한 재구성 값 세트가 재구성 순서에서 현재 트랜스폼 계수 레벨보다 선행하는 트랜스폼 계수 레벨 값에 의존하는 접근 방식을 나타낸다. 이러한 접근법의 주요 효과는, HEVC에 사용되는 기존의 독립적인 스칼라 양자화와 비교하여, 허용 가능한 재구성 벡터가 N 차원 벡터 공간에서 조밀하게 페킹 된다는 것이다(N은 트랜스폼 블록내의 트랜스폼 계수의 수를 나타낸다). 이는, N차원 단위 부피당 허용 가능한 재구성 벡터의 주어진 평균 수에 대해, 입력 벡터와 가장 가까운 재구성 벡터 사이의 평균 왜곡이 감소됨을 의미한다. 종속 스칼라 양자화의 접근 방식은 (a) 서로 다른 재구성 레벨로 두 스칼라 양자기를 정의하고 (b) 두 스칼라 양자기 사이를 전환하는 프로세스를 정의하여 실현된다.
도 4는 종속 양자화(dependent quantization)의 제안된 접근 방식에 사용되는 두 스칼라 양자기(scalar quantizer)의 예시이다.
Q0과 Q1에 의해 표시된 두 스칼라 양자기는 도 4에 설명되어 있다. 사용 가능한 재구성 레벨의 위치는 양자화 단계 크기
Figure pct00016
로 고유하게 지정된다. 사용된 스칼라 양자기(Q0 또는 Q1)는 비트스트림에서 명시적으로 시그널링되지 않는다. 대신, 현재 트랜스폼 계수에 사용되는 양자화는 코딩/재구성 순서에서 현재 트랜스폼 계수보다 먼저 트랜스폼 계수 레벨의 패리티에 의해 결정된다.
도 5에 도시된 바와 같이, 두 스칼라 양자기(scalar quantizer)(Q0 및 Q1) 사이의 전환은 4개의 상태를 가진 상태 기계를 통해 실현된다. 상태는 네 가지 값을 취할 수 있다: 0, 1, 2, 3. 코딩/재구성 순서에서 현재 트랜스폼 계수를 앞둔 트랜스폼 계수 레벨의 패리티에 의해 고유하게 결정된다. 트랜스폼 블록에 대한 역 양자화의 시작 시, 상태는 0과 동일하게 설정된다. 트랜스폼 계수는 스캔 순서로 재구성된다(즉, 엔트로피 디코딩된 순서와 동일한 순서로). 현재 트랜스폼 계수를 재구성한 후, k가 트랜스폼 계수 레벨의 값을 나타내는 도 5에 도시된 대로 상태가 업데이트된다.
2.5.4. JVET-N0847의 사용자 정의 양자화 행렬
이 기여에서, VTM4.0 위에 디폴트 값 및 사용자 정의 스케일링 행렬을 알리는 지원을 추가하는 것이 제안된다. 이 제안은 블록의 더 큰 크기 범위(루마의 경우 4Х4에서 64Х64까지, 크로마의 경우 2Х2에서 32Х32까지), 직사각형 TB, 종속 양자화, 다중 트랜스폼 선택(MTS), 제로아웃 고주파 계수(TB에 대한 스케일링 행렬의 1단계 정의 절차에 따라 정렬됨), ISP(인트라 서브블록 분할) 및 인트라 블록 복사(intra block copy)(IBC, 현재 픽처 참조, CPR이라고도 함)를 준수한다.
다음과 같은 VTM4.0 위에 디폴트 값 및 사용자 정의 스케일링 행렬의 시그널링을 지원하기 위해 신택스를 추가하는 것이 제안된다.
- 스케일링 행렬에 대해 세 가지 모드: OFF, 디폴트값 및 USER_DEFINED
- 블록의 크기 범위가 더 큽니다(루마의 경우 4Х4에서 64Х64까지, 크로마의 경우 2Х2 ~32Х32)
- 직사각형 트랜스폼 블록( transform block)(TB)
- 종속 양자화
- 다중 트랜스폼 선택(MTS)
- 제로아웃 고주파 계수를 통해 대형 트랜스폼
- 인트라 서브블록 분할(ISP)
- 인트라 블록 복사(IBC, 현재 픽처 참조, CPR라고도 함) 인트라 코딩 블록과 동일한 QM 공유
- 디폴트 값 16을 갖는, 디폴트 스케일링 행렬은 모든 TB 크기에 대해 평평하다
- 스케일링 행렬은 적용되지 않는다.
o 모든 TB 크기에 대한 TS
o 이차 트랜스폼(일명 RST)
2.5.4.1. 스퀘어 트랜스폼 크기에 대한 QM의 시그널링
2.5.4.1.1. 스케일링 행렬에서 요소의 순서 스캐닝
요소는 계수 코딩, 즉 대각선 스캔 순서에 사용되는 것과 동일한 스캐닝 순서로 코딩된다. 대각선 스캔 순서의 예는 도 6a-6b로 묘사된다.
도 6a-6b는 대각선 스캔 순서의 예를 나타낸다. 도 6a는 스캔 방향 예제를 나타낸다. 도 6b는 각 요소에 대한 좌표 및 스캔 순서 인덱스를 나타낸다.
이 순서에 대한 대응하는 사양은 다음과 같이 정의된다.
6.5.2 오른쪽 대각선 스캔 순서 어레이 초기화 프로세스
이 프로세스의 출력은 어레이 diagScan[sPos][ sComp]이다. 어레이 인덱스 sPos (blkWidth * blkHeight) - 1에 이르기까지 스캔 위치를 지정한다. 어레이 인덱스 sComp0과 같으면 수평 컴포넌트를 지정하고 어레이 인덱스 sComp가 1과 같으면 수직 컴포넌트가 지정된다. blkWidth 및 blkHeight의 값에 따라 어레이 다각체 스캔은 다음과 같이 유도된다:
i = 0
x = 0
y = 0
stopLoop = FALSE
while( !stopLoop ) {
while( y >= 0 ) {
(x < blkWidth & y < blkHeight) { (6-11)
diagScan[ i ][ 0 ] = x
diagScan[ i ][ 1 ] = y
i++
}
y- -
x++
}
y = x
x = 0
if( i >= blkWidth * blkHeight )
stopLoop = TRUE
}
2.5.4.1.2. 선택적 요소의 코딩
DC 값(예를 들어, 행렬의 왼쪽 상단0과 동일한 스캐닝 인덱스에 있는 요소)은 다음 스케일링 행렬에 대해 별도로 코딩된다: 16Х16, 32Х32, 64Х64.
8Х8(N<=8)보다 작거나 동일한 크기의 TB(NxN)의 경우
8Х8보다 작거나 동일한 크기의 TB의 경우 한 스케일링 행렬의 모든 요소가 시그널링 된다.
8Х8(N> 8)보다 큰 크기의 TB(NxN)의 경우
TB의 크기가 8Х8보다 큰 경우 8Х8 스케일링 행렬의 64개 요소만 기본 스케일링 행렬로 시그널링 된다. 64 요소는 좌표 (m * X, m * Y)에 대응하고 m = N /8 및 X, Y가 [0... 7]이다. 즉, 하나의 NxN 블록은 여러 m*m의 겹치지 않는 영역으로 분할되고 각 영역에서는 동일한 요소를 공유하며 이 공유 요소가 시그널링 된다.
8Х8보다 큰 크기의 제곱 행렬을 얻기 위해, 8Х8 기본 스케일링 행렬(base scaling matrix)은 대응하는 제곱 크기(즉, 16Х16, 32Х32, 64Х64)로 업 샘플링(요소의 복제에 의해)된 것이다.
32x32 및 64x64를 예로 들면 원으로 표시된 요소에 대한 선택한 위치가 시그널링 된다. 각 정사각은 하나의 요소를 나타낸다.
도 7은 QM 시그널링(32x32 트랜스폼 크기)에 대해 선택한 위치의 예를 나타낸다.
도 8은 QM 시그널링(64x64 트랜스폼 크기)에 대해 선택한 위치의 예를 나타낸다.
2.5.4.2. 비정사각 트랜스폼 크기에 대한 QM 의 유도
비정사각 트랜스폼 크기에 대한 QM의 추가 시그널링은 없다. 대신, 비정사각 트랜스폼 크기에 대한 QM은 정사각 트랜스폼 크기에 대해 유도된다. 예는 도 7에 묘사된다.
보다 구체적으로 직사각형 TB에 대한 스케일링 행렬을 생성할 때 두 가지 사례가 고려된다.
1. 직사각형 행렬의 높이 H 는 너비 W 보다 크고, WxH 크기의 직사각형 TB용 스케일링 행렬은, 다음과 같이 크기의 레퍼런스 스케일링 행렬 baseL x baseL 로부터 정의되고, 여기서 baseL은 min ( log2(H), 3 )이다:
Figure pct00017
(1)
I=0: W-1, j=0: H-1, 및 ratioH = H/baseL, ratioHW=H/W이다.
2. 직사각형 행렬의 높이 H 는 폭 W 보다 작고, WxH 크기의 직사각형 TB용 스케일링 행렬은, 다음과 같이 크기의 레퍼런스 스케일링 행렬 baseL x baseL 로부터 정의되고, 여기서 baseL은 min(log2(W), 3)과 동일하다:
Figure pct00018
(2)
I=0: W-1, j=0: H-1, 및 ratioW = W/baseL, ratioWH=W/H이다.
여기서 int(x)는 분수 부분을 절단함으로 수정된 x 값이다.
도 8은 정사각형 블록(square block)에서 비정사각형 블록(non-square block)에 대한 QM 유도의 예를 나타낸다. (a) 8x8 블록으로부터 유래된 2x8 블록의 QM, (b) 그 8x8 블록으로부터 유래된 8x2 블록의 QM,
2.5.4.3. 제로아웃으로 블록을 트랜스폼하기 위한 QM 의 시그널링
또한 64포인트 트랜스폼을 위한 고주파 계수의 제로아웃이 적용될 경우, 스케일링 행렬의 대응하는 고주파도 제로아웃된다. 즉, TB의 폭 또는 높이가 32보다 크거나 같으면, 계수의 왼쪽 또는 위쪽 절반만 유지되고, 나머지 계수는 도 9에 도시된 바와 같이 0으로 할당된다. 이를 위해, 방정식(1)에 따라 직사각형 행렬을 얻을 때 검사가 수행되고 (2) 및 대응하는 요소가 ScalingMatrix(I,j)에서 0으로 할당된다.
2.5.4.4. 양자화 행렬에 대한 신택스, 시맨틱(Syntax, semantics for quantization matrix)
HEVC와 동일한 신택스 요소가 SPS 및 PPS에 추가된다. 그러나, 목록 데이터 신택스의 스케일링 시그널링이 변경된다.
7.3.2.11 목록 데이터 신택스 스케일링
Figure pct00019
Figure pct00020
7.4.3.11 목록 데이터 시맨틱 스케일링
0과 같은 scaling_list_pred_mode_flag [ sizeId ][ matrixId ] 는 스케일링 목록의 값이 레퍼런스 스케일링 목록의 값과 동일하다고 지정한다. 레퍼런스 스케일링 목록은 scaling_list_pred_matrix_id_delta[sizeId][ matrixId]로 지정된다. scaling_list_pred_mode_flag[sizeId][ matrixId] 1과 같으면 스케일링 목록의 값이 명시적으로 시그널링 됨을 지정한다.
scaling_list_pred_matrix_id_delta[ sizeId][ matrixId] [scalingList] [[ matrixId]를 유도하는 데 사용되는 레퍼런스 스케일링 목록을 지정[ sizeId][ matrixId]의 유도은 scaling_list_pred_matrix_id_delta[sizeId][matrixId] 다음과 같이 기초로 한다.
- scaling_list_pred_matrix_id_delta [sizeId][matrixId]가 0과 같으면, 스케일링 목록은 디폴트 스케일링 목록 [sizeId][[ matrixId][i] 에 명시된 Table 7-15, Table 7-16, 대로, 표 7-17, 표 7-18 = 0.min(63), (1<<(sizeId << ) ) - 1)에서 유추된다.
- 그렇지 않으면, 다음과 같이 레퍼런스 스케일링 목록에서 스케일링 목록이 유추된다.
sizeId =1... 6,
refMatrixId = matrixId -
scaling_list_pred_matrix_id_delta[ sizeId ][ matrixId ] * ( sizeId  = =  6  3 : 1 ) (7-XX)
sizeId가 1과 같으면, refMatrixId의 값은 0 또는 3과 같지 않다. 그렇지 않으면, sizeId가 5보다 작거나 같으면, scaling_list_pred_matrix_id_delta [sizeId][ matrixId]의 값은 0 ~matrixId, 포함이어야 한다. 그렇지 않으면(sizeId는 6과 같음), scaling_list_pred_matrix_id_delta[sizeId][matrixId]의 값은 0 ~matrixId/3, 포함하는 범위에 있어야 한다.
표 7-13 - sizeId의 사양
Figure pct00021
표 7-14 - sizeId, 예측 모드 및 컬러 컴포넌트에 따른 matrixId 사양
Figure pct00022
scaling_list_dc_coef_minus8[ sizeId][ matrixId] plus 8는 가변 ScalingFactor[4][ matrixId][ 0]의 값을 지정하여 sizeId가 4와 같을 때 16x16 크기의 스케일링 목록에 대해 5][ matrixId][ 0][0]의 크기를 32x32 크기에 대한 스케일링 목록의 값을 지정하고, sizeId가 6과 같을 때 64x64 크기의 스케일링 목록에 대해 ScalingFactor[6][ matrixId ][0]의 값을 지정한다. Scaling_st_dc_coef_minus8 [ sizeId ][matrixId]의 값은 -7 ~ 247, 포함의 범위에 있어야 한다.
scaling_list_pred_mode_flag[sizeId][ matrixId]가 0과 같을 때, scaling_list_pred_matrix_id_ delta[sizeId][matrixId]는 0과 같고 크기는 3보다 크며, scaling_list_dc_coef_minus8[sizeId][matrixId]의 값은 8과 같도록 유추된다.
scaling_list_pred_matrix_id_delta [ sizeId][matrixId]가 0과 같지 않고 sizeId가 3보다 크면, scaling_list_dc_coef_minus8 [sizeId][matrixId]의 값은 scaling_list_dc_coef_ minus8[[ refMatrixId]와 같도록 유추되며, 여기서 refMatrixId의 값이 방정식에 의해 주어진다.7-XX
scaling_list_delta_coef는, scaling_list_pred_ mode_flag[sizeId][ matrixId]의 차이가 1과 같을 때, 현재 행렬 계수 ScalingList[sizeId][[ matrixId][i] 및 이전 행렬 계수 ScalingList[sizeId][[ matrixId][[ i -1] 사이의 차이를 지정한다. scaling_list_delta_coef 값은 - 128에서 127의 범위에 있어야 한다. ScalingList[sizeId][ matrixId][[ i]의 값은 0보다 클 것이다. scaling_list_pred_mode_flag[sizeId][matrixId]가 1과 같고 scaling_list_delta_coef 존재하지 않는 경우, ScalingList[sizeId][matrixId][i]의 값은 0으로 유추된다.
표 7-15 - ScalingList[ 1 ][ matrixId ][ i ], i = 0..3의 디폴트 값의 사양
Figure pct00023
표 7-16 - ScalingList[ 2 ][ matrixId ][ i ], i = 0..15의 디폴트 값의 사양
Figure pct00024
표 7-17 - ScalingList[ 3..6 ][ matrixId ][ i ], i = 0..63의 디폴트 값의 사양
Figure pct00025
표 7-18 - ScalingList[ 6 ][ matrixId ][ i ], i = 0..63의 디폴트 값의 사양
Figure pct00026
x, y=0.(1 << sizeId) - 1인 5차원 어레이 ScalingFactor[sizeId][sizeId][ matrixId][[x][y]은, 표 7-13에 지정된 변수 sizeId 및 표 7-14에 지정된 matrixId 에 따라 스케일링 인자의 어레이를 지정한다.
크기 2x2, ScalingFactor[ 1][ matrixId][ []의 양자화 행렬의 요소는 다음과 같이 유도된다:
ScalingFactor[ 1 ][ 1 ][ matrixId ][ x ][ y ] = ScalingList[ 1 ][ matrixId ][ i ] (7-XX)
i = 0..3이고, matrixId = 1, 2, 4, 5, x = DiagScanOrder[ 1 ][ 1][ i][ 0]이고, y = DiagScanOrder[ 1][ 1][ 1][ i][ 1] ] ]이다
크기 4x4, ScalingFactor[ 2][ matrixId][ []의 양자화 행렬의 요소는 다음과 같이 유도된다:
ScalingFactor[ 2][ 2][ [[ matrixId][ x ][ y] = ScalingList[ 2][ matrixId][ i] ] ] (7-XX)
i = 0..15이고, matrixId = 0..5, x = DiagScanOrder[ 2 ][ 2 ][ i ][ 0]이고, y = DiagScanOrder[ 2][ 2][ 2][ i][ 1] ]이다
크기 8x8, ScalingFactor[ 3][ matrixId][ []의 양자화 행렬의 요소는 다음과 같이 유도된다:
ScalingFactor[ 3 ][ 3 ][ matrixId ][ x ][ y ] = ScalingList[ 3 ][ matrixId ][ i ] (7-XX)
i = 0..63이고, matrixId = 0..5, x = DiagScanOrder[ 3 ][ 3 ][ i ][ 0], y = DiagScanOrder[ 3][ 3][ 3][ i][ 1]이다
크기 16x16, ScalingFactor[ 4][ matrixId][ []의 양자화 행렬의 요소는 다음과 같이 유도된다:
ScalingFactor[ 4][ 4][ matrixId][ x * 2 + k ][ y * 2 + j ] = ScalingList[ 4][ matrixId][ i] ] (7-XX)
i = 0..63이고, j = 0..1, k = 0..1, matrixId = 0..5이고, x = DiagScanOrder[ 3 ][ 3 ][ i ][ 0 ]이고,
및 y = DiagScanOrder[ 3 ][ 3 ][ i ][ 1 ]이다
ScalingFactor[ 4][ 4][ matrixId ][ 0] = scaling_list_dc_coef_minus8[ 0][ matrixId] + 8 (7-XX)
matrixId = 0..5이다.
크기 32x32, ScalingFactor[ 5][ matrixId][ []의 양자화 행렬의 요소는 다음과 같이 유도된다:
ScalingFactor[ 5][ 5][ matrixId][ x * 4 + k][ y * 4 + j ] = ScalingList[ 5][ matrixId][ i] ] (7-XX)
i = 0..63이고, j = 0..3이고, k = 0..3이고, matrixId = 0..5이고, x = DiagScanOrder[ 3 ][ 3 ][ i ][ 0 ]이고,
및 y = DiagScanOrder[ 3 ][ 3 ][ i ][ 1 ]이다
ScalingFactor[ 5][ 5][ matrixId][ 0]] = scaling_list_dc_coef_minus8[1][ 행렬리드] + 8 (7-XX)
matrixId = 0..5이다.
크기 64x64, ScalingFactor[ 6][ matrixId][ []의 양자화 행렬의 요소는 다음과 같이 유도된다:
ScalingFactor[ 6][ 6][ 6][ matrixId][ x * 8 + k][ y * 8 + j ] = ScalingList[ 6][ matrixId][ i] ] (7-XX)
i = 0..63이고, j = 0..7이고, k = 0..7이고, matrixId = 0, 3이고, x = DiagScanOrder[ 3 ][ 3 ][ i ][ 0 ]이고,
및 y = DiagScanOrder[ 3 ][ 3 ][ i ][ 1 ]이다
ScalingFactor[ 6][ 6][ matrixId ][ 0]] = scaling_list_dc_coef_minus8[2][ matrixId] + 8 (7-XX)
matrixId = 0, 3이다.
ChromaArrayType이 3과 같을 때, 크로마 양자화 행렬의 요소는 크기 64x64, ScalingFactor[ 6][ 6][ matrixId][ [], matrixId = 1, 2, 4 및 5는 다음과 같이 유도된다:
ScalingFactor[ 6][ 6][ matrixId][ x * 8 + k][ y * 8 + j ] = ScalingList[ 5][ matrixId][ i] ] (7-XX)
i = 0..63이고, j = 0..7이고, k = 0..7이고, x = DiagScanOrder[ 3 ][ 3][ i ][ 0]이고, 및 y = DiagScanOrder[ 3][ [ 3][ [ i][ 1] ]이다
ScalingFactor[ 6][ 6] [ matrixId ][ 0] = scaling_list_dc_coef_minus8[1][ matrixId] + 8 (7-XX)
비정사각 경우(non-square cases)
직사각형 크기의 양자화 행렬의 경우
x = 0.(1 << sizeIdW) - 1, y = 0.(1 << sizeIdH) - 1, sizeIdW!=sizeIdH인, 5차원 어레이 ScalingFactor[sizeIdH][sizeIdH][ matrixId][x][ y]는 표 7-19에 지정된 변수 크기 sizeIdW 및 sizeIdH에 따라 스케일링 인자의 어레이를 지정하고, 다음과 같이 유도된다:
ScalingFactor[ sizeIdW][ sizeIdH][ matrixId][ x ][ y] scalingList[sizeLId][[ matrixId][i] ] ]
sizeLId = max(sizeIdW, sizeIdH), sizeIdW = 0,1.6, sizeIdH = 0,1.6, matrixId = 0..5, x = 0.. ( 1 << sizeIdW) - 1, y = 0.. (1 << sizeIdH) - 1, x = DiagScanOrder[ k ][ k][ i]] 0], y = DiagScanOrder[ k ][ k ][ i][[ 1], k = min(sizeLId, 3),
및 ratioW = (1<<sizeIdW)/(1<<k), ratioH =(1<<sizeIdH)/(1<<k), 및 ratioWH =(1<<abs(sizeIdW-sizeIdH))는 다음과 같은 규칙으로:
- (sizeIdW>sizeIdH)
ScalingFactor[ sizeIdW ][ sizeIdH ][ matrixId ][ x ][ y ]
= ScalingList[ sizeLId ][ matrixId ][ Raster2Diag[(1<<k)*((y*ratioWH)/ratioW) + x/ratioW]]
- else
ScalingFactor[ sizeIdW ][ sizeIdH ][ matrixId ][ x ][ y ]
= ScalingList[ sizeLId ][ matrixId ][ Raster2Diag[(1<<k)*(y/ratioH) + (x*ratioWH)/ratioH]],
어디 Raster2Diag[]는 대각선 스캔 위치로 하나의 8x8 블록에서 래스터 스캔 위치를 변환하는 함수이다
제로아웃 경우
직사각형 크기의 양자화 행렬은 다음과 같은 조건에 만족하는 샘플에 대해 제로화되어야한다.
- x > 32
- y > 32
- 디코딩된 tu는 디폴트 트랜스폼 모드(1<<sizeIdW)=32 및 x > 16에 의해 코딩되지 않는다.
- 디코딩된 tu는 디폴트 트랜스폼 모드(1<<sizeIdH)==32 및 y > 16에 의해 코딩되지 않음
표 7-19 - sizeIdW 및sizeIdH 사양
Figure pct00027
2.6 양자화 잔차 블록 차동 펄스 코드 변조(QR-BDPCM)
JVET-M0413에서는 화면 컨텐츠를 효율적으로 코딩 하기 위해 양자화 잔차 블록 차동 펄스 코드 변조(QR-BDPCM)가 제안된다.
QR-BDPCM에서 사용되는 예측 디렉션은 수직 및 수평 예측 모드일 수 있다. 인트라 예측은 인트라 예측과 유사한 예측 디렉션(수평 또는 수직 예측)으로 샘플 카피함으로써 전체 블록에 대해 수행된다. 잔차는 양자화되고 양자화된 잔차와 그 예측자(수평 또는 수직) 양자화 값 사이의 델타가 코딩된다. 다음으로 설명될 수 있다: 크기가 M(행) Х N(열)인 블록의 경우, 위쪽 또는 왼쪽 블록 경계 샘플에서 필터링 되지 않은 샘플을 사용하여, 인트라 예측을 수평(예측된 블록을 가로질러 왼쪽 이웃 픽셀 값을 라인 단위로 카피) 또는 수직으로(예측된 블록의 각 라인에 상단 이웃 라인 카피) 수행한 이후 ri,j, 0≤i≤M-1, 0≤j≤N-1을 예측 잔차로 둔다. Q(ri,j), 0≤i≤M-1, 0≤j≤N-1이 잔차 ri,j의 양자화된 버전을 나타내고, 여기서 잔차는 원래 블록과 예측된 블록 값 사이의 차이이다. 그런 다음 블록 DPCM이 양자화된 잔차 샘플에 적용되어 요소
Figure pct00028
로 수정된 M Υ N 어레이
Figure pct00029
이 생성된다. 수직 BDPCM이 시그널링 될 때:
Figure pct00030
(2-7-1)
수평 예측의 경우 유사한 규칙이 적용되고 잔차 양자화된 샘플은 다음과 같이 획득된다.
Figure pct00031
(2-7-2)
잔차 양자화된
Figure pct00032
샘플은 디코더로 전송된다.
디코더 측에서는, 위의 계산을 반대로 하여 Q(ri,j), 0≤i≤M-1, 0≤j≤N-1 를 생성한다. 수직 예측 경우에 대해,
Figure pct00033
(2-7-3)
수평 경우에 대해,
Figure pct00034
(2-7-4)
역 양자화된 잔차
Figure pct00035
는 재구성된 샘플 값을 생성하기 위해 인트라 블록 예측 값에 추가된다.
이 방식의 주요 이점은, 계수가 파싱되면서 계수의 파싱 프로세스에서 예측자를 추가하여 역 DPCM이 즉석에서 이루어 질 수도 있고, 이것이 파싱 이후에 수행될 수도 있다는 점이다.
QR-BDPCM의 초안 텍스트 변경 사항은 다음과 같다.
7.3.6.5 코딩 유닛 신택스
Figure pct00036
Figure pct00037
1과 동일한 bdpcm_flag[x0][ y0]는 bdpcm_dir_flag가 위치(x0, y0)에서 루마 코딩 블록을 포함하는 코딩 유닛에 존재함을 지정한다.
0과 동일한 bdpcm_dir_flag[ x0 ][ y0 ]은 bdpcm 블록에서 사용될 예측 방향이 수평임을 지정하고, 그렇지 않으면 수직이다.
3. 실시예 및 기술에 의해 해결된 기술적 문제의 예
현재 VVC 설계에는 양자화 행렬 측면에서 다음과 같은 문제가 있다:
1. QR-BDPCM 및 BDPCM 블록의 경우, 트랜스폼이 적용되지 않는다. 따라서, 다른 트랜스폼 적용 블록과 유사한 방식으로 이러한 블록에 스케일링 행렬을 적용하는 것이 최적이 지 않다.
2. IBC 및 인트라 코딩 모드는 동일한 스케일링 행렬을 공유한다. 그러나 IBC는 인터 코딩 툴일 가능성이 높다. 이러한 디자인은 합리적이지 않은 것 같다.
3. 제로아웃이 있는 더 큰 블록의 경우, 요소의 수가 시그널링 되지만 비트를 낭비하는 디코딩 프로세스에서 0으로 재설정된다.
4. 일부 프레임워크에서, 양자화 행렬을 항상 적용하는 것처럼 양자화가 수행된다. 따라서, 작은 블록에 대한 양자화 행렬은 자주 행렬이 변경될 수 있다.
4. 실시예 및 기술의 예시 목록
이하의 상세한 발명들은 일반적인 개념을 설명하기 위한 예로서 고려되어야 한다. 이러한 발명들은 좁은 의미로 해석되어서는 안된다. 또한, 이들 발명들은 어떠한 방식으로든 조합될 수 있다.
1. 트랜스폼 스킵(TS) 플래그가 비트 스트림에서 시그널링 되지 않는 경우, 이 플래그의 값을 설정하는 방법은 코딩된 모드 정보에 따라 달라질 수 있다.
a. 하나의 예에서, BDPCM/QR-BDPCM 코딩 된 블록의 경우, TS 플래그가 1로 유추된다.
b. 하나의 예에서, BDPCM/QR-BDPCM 이외 블록이 아닌 경우, TS 플래그가 0으로 유추된다.
2. 스케일링 행렬은 BDPCM/QR-BDPCM 코딩 된 블록에 적용될 수 있음이 제안된다.
a. 또는, BDPCM/QR-BDPCM 코딩 된 블록에 대한 스케일링 행렬을 허용하지 않는 것이 제안된다.
b. 하나의 예에서, BDPCM/QR-BDPCM 코딩된 블록에 대한 스케일링 행렬을 선택하는 방법은 트랜스폼이 코드 블록을 스킵하는 것과 동일한 방식으로 수행될 수 있다.
c. 하나의 예에서, BDPCM/QR-BDPCM 코딩블록에 대한 스케일링 행렬을 선택하는 방법은 하나 또는 여러 트랜스폼이 블록에 적용되는지 여부에 따라 달라질 수 있다.
i. 하나의 예에서, 하나 또는 여러 트랜스폼이 BDPCM/QR-BDPCM 코딩 블록에 적용되는 경우, 스케일링 행렬이 허용될 수 있다.
ii. 하나의 예에서, BDPCM/QR-BDPCM 코딩 블록에 하나 또는 여러 개의 트랜스폼이 적용되는 경우, BDPCM/QR-BDPCM 코딩 블록에 대한 스케일링 행렬을 선택하는 방법은 인트라 코딩 된 블록과 동일한 방식으로 수행 될 수 있다.
3. 인루프 필터(디블로킹 필터)에서 인접한 두 블록(디블로킹 필터) 및/또는 기타 사후-재구성 필터 사이에 샘플/가장자리를 필터링할지 여부는 두 개의 인접한 블록이 트랜스폼 스킵(transform skip)(TS) 모드로 코딩되었는지 여부에 따라 달라질 수 있다.
a. 인루프 필터(디블로킹 필터)와/또는 기타 사후-재구성 필터의 두 개의 이웃 블록 사이에 샘플/가장자리를 필터링할지 여부는 TS, BDPCM, QR-BDPCM, 팔레트 모드로 코딩된 두 개의 인접한 블록여부에 따라 달라질 수 있다.
b. 하나의 예에서, 경계 필터링 강도의 유도은 인접한 두 블록 중 하나 또는 둘 다의 TS 모드 플래그(들)에 따라 달라질 수 있다.
c. 하나의 예에서, TS 코딩 블록에 있는 샘플의 경우, 디블로킹 필터/샘플 적응 오프셋/적응 루프 필터/다른 종류의 루프 내 필터/기타 사후-재구성 필터는 비활성화될 수 있다.
i. 하나의 예에서, 두 개의 인접한 블록이 모두 트랜스폼 스킵 모드로 코딩된 경우 이 둘 사이에 이러한 가장자리를 필터링할 필요가 없다.
ii. 하나의 예에서, 인접한 두 블록 중 하나가 트랜스폼 스킵 모드로 코딩되고 다른 블록은 아닌 경우, TS 코드 블록에 있는 샘플을 필터링할 필요가 없다.
d. 또는, TS 코딩 블록에 위치한 샘플의 경우, 다른 필터(예를 들어, 평탄 필터(smoother filter))가 허용될 수 있다.
e. 인루프 필터(예를 들어, 디블로킹 필터) 및/또는 기타 사후-재구성 필터(예를 들어, 양자 필터, 확산 필터)의 프로세스동안, PCM/BDPCM/QR-BDPCM 및/또는 트랜스폼이 적용되지 않는 다른 종류의 모드로 코딩된 블록은 위의 TS 모드와 동일한 방식으로 처리될 수 있다.
4. IBC 및 인터 코딩 모드로 코딩된 블록은 동일한 스케일링 행렬을 공유할 수 있다.
5. 스케일링 행렬 선택은 트랜스폼 행렬 유형에 따라 달라질 수 있다.
a. 하나의 예에서, 스케일링 행렬 선택은 블록이 DCT2와 같은 디폴트 트랜스폼을 사용하는지 여부에 따라 달라질 수 있다.
b. 하나의 예에서, 여러 트랜스폼 행렬 유형에 대해 스케일링 행렬이 별도로 시그널링 될 수 있다.
6. 스케일링 행렬 선택은 블록의 모션 정보에 따라 달라질 수 있다.
a. 하나의 예에서, 스케일링 행렬 선택은 블록이 서브블록 코딩 모드(예를 들어, 아핀 모드)로 코딩되는지 여부에 따라 달라질 수 있다.
b. 하나의 예에서, 스케일링 행렬은 아핀 및 비 아핀 모드에 대해 별도로 시그널링 될 수 있다.
c. 하나의 예에서, 스케일링 행렬 선택은 블록이 아핀 인트라 예측 모드로 코딩되는지 여부에 따라 달라질 수 있다.
7. 이차 트랜스폼 코딩 된 블록에 대한 스케일링 행렬을 사용하지 않도록 하는 대신, 스케일링 행렬을 활성화 하는 것이 제안된다. 트랜스폼 블록 크기가 KxL에 의해 표시되고 이차 트랜스폼이 왼쪽 상단 MxN 블록에 적용한다고 가정한다.
a. 스케일링 행렬은 타일 그룹 헤더/슬라이스 헤더/PPS/VPS/SPS에서 이차 트랜스폼 또는/및 감소된 이차 트랜스폼(secondary transform) 또는/회전 트랜스폼(rotation transform)을 위해 시그널링 될 수 있다.
b. 하나의 예에서, 이차 트랜스폼이 적용되는지 여부에 따라 스케일링 행렬이 선택될 수 있다.
i. 하나의 예에서, 왼쪽 위MxN 블록에 대한 스케일링 행렬의 요소는 이차 트랜스폼이 적용되거나 적용되지 않도록 별도로 시그널링 될 수 있다.
c. 또는, 더욱이, 스케일링 행렬은 이차 트랜스폼이 적용되지 않는 영역에만 적용될 수 있다.
d. 하나의 예에서, 왼쪽 상단 MxN 영역을 제외한 나머지 부분은 여전히 스케일링 행렬을 적용할 수 있다.
e. 또는, 스케일링 행렬은 이차 트랜스폼이 적용되는 영역에만 적용할 수 있다.
8. 정사각형 블록에서 비정사각형 블록에 대한 스케일링 행렬을 유도하는 대신, 비정사각형 블록에 대한 스케일링 행렬에 대해 시그널링을 제안한다.
a. 하나의 예에서, 정사각형 블록에 대한 스케일링 행렬은 활성화 될 수도 있는 정사각형 블록의 예측과 함께 코딩될 수 있다.
9. 일부 위치에 대한 스케일링 행렬의 사용을 비활성화하고 블록 내에서 나머지 위치에 대한 스케일링 행렬의 사용을 활성화하도록 제안된다.
a. 예를 들어, 블록이 M*N 위치 이상을 포함하는 경우, 왼쪽 상단 M*N 영역만 스케일링 행렬을 사용할 수 있다.
b. 예를 들어, 블록이 M*N 위치 이상을 포함하는 경우, 상단 M*N 위치만 스케일링 행렬을 사용할 수 있다.
c. 예를 들어, 블록이 M*N 위치 이상을 포함하는 경우, 왼쪽 M*N 위치만 스케일링 행렬을 사용할 수 있다.
10. 시그널링 될 스케일링 행렬의 요소 수는 제로아웃이 적용되는지 여부에 따라 달라질 수 있다.
a. 하나의 예에서, 64x64 트랜스폼의 경우, 왼쪽 상단 MxN 트랜스폼 계수만 유지되고 나머지 모든 계수는 제로아웃이라고 가정한다. 그런 다음 시그널링 될 요소의 수는 M/8 * N/8로 유도될 수 있다.
11. 제로아웃 트랜스폼의 경우, 제로아웃 영역에 있는 스케일링 행렬에서 요소의 시그널링을 비활성화할 것을 제안한다. KxL 트랜스폼을 위해, 왼쪽 상단 MxN 트랜스폼 계수만 유지되고 나머지 모든 계수는 제로아웃이라고 가정한다.
a. 하나의 예에서, K = L = 64 및 M = N = 32이다.
b. 하나의 예에서, 왼쪽 상단 MxN 영역 외부 위치에 대응하는 스케일링 행렬에서 요소의 시그널링이 스킵된다.
도 10은 시그널링 되는 대시 영역(예를 들어, MxN 영역)에서만 선택된 요소의 예를 나타낸다.
c. 하나의 예에서, 스케일링 행렬에서 요소를 선택하는 서브 샘플링 비율은 K 및/또는 L에 의해 결정될 수 있다.
i. 예를 들어, 트랜스폼 블록은 여러 서브 영역으로 분할되고 각 서브 영역 크기는 Uw* Uh이다. 왼쪽 상단 MxN 영역의 각 서브 영역 내에 위치한 하나의 요소는 시그널링 될 수 있다.
ii. 또는, 더욱이, 코딩할 요소 의 수는 M 및/또는 N에 따라 달라질 수 있다.
1) 하나의 예에서, 이러한 KxL 트랜스폼에 대해 제로아웃으로 코딩될 요소의 수는 제로아웃 없는 MxN 트랜스폼 블록의 경우와 상이하다.
d. 하나의 예에서, 스케일링 행렬에서 요소를 선택하는 서브 샘플링 비율은 K 및 L 대신 M 및/또는 N에 의해 결정될 수 있다.
i. 예를 들어 MxN 영역은 여러 서브 영역으로 분할된다. 각(M/Uw, N/Uh) 영역 내의 하나의 요소가 시그널링 될 수 있다.
ii. 또는, 더욱이, KxL 트랜스폼에 대해 제로아웃으로 코딩할 요소의 수는 제로아웃 없는 MxN 트랜스폼 블록과 동일하다.
e. 하나의 예에서, K = L = 64, M = N = 32, Uw = Uh = 8이다.
12. 작은 크기 블록과 같은 특정 블록 크기에 대해 하나의 양자화 행렬만 사용하도록 제안된다.
a. 하나의 예에서, 블록 유형에 관계없이 WxH보다 작은 모든 블록은 두 개 이상의 양자화 행렬을 사용하지 못할 수 있다.
b. 하나의 예에서, 임계값보다 너비가 작은 모든 블록은 두 개 이상의 양자화 행렬을 사용하지 못할 수 있다.
c. 하나의 예에서, 임계값보다 작은 높이가 있는 모든 블록은 두 개 이상의 양자화 행렬을 사용하지 못할 수 있다.
d. 하나의 예에서, 양자화 행렬은 작은 크기 블록에 적용되지 않을 수 있다.
13. 위의 글머리 기호는 트랜스폼을 적용하지 않거나 ID 트랜스폼을 적용하지 않는 다른 코딩 방법에 적용할 수 있다.
하나의 예에서, 위의 글머리 기호는 '팔레트'로 'TS/BDPCM/QR-BDPCM'을 대체하여 팔레트 모드 코딩 블록에 적용될 수 있다.
5. 실시예
5.1 디블로킹 필터 상의 실시예 #1
VVC 작업 초안 버전 5의 상단에 변경 사항은 굵은 기울임 꼴로 강조 표시된다. 강조 표시된 조건 중 하나 또는 다수가 추가될 수 있다.
8.8.2 디블로킹 필터 프로세스
8.8.2.1 일반
이 프로세스의 입력은 디블로킹 전에 재구성 된 픽처, 즉 어레이 recPictureL 이고, ChromaArrayType0과 같지 않을 때, 어레이 recPictureCb 및 recPictureCr.이다.
이 프로세스의 출력은 디블로킹 후 수정된 재구성된 픽처, 즉 어레이 recPictureL 이고 ChromaArrayType이 0과 같지 않을 때, 어레이 recPictureCb and recPictureCr.이다.
픽처의 수직 가장자리가 먼저 필터링된다. 그런 다음 픽처의 수평 가장자리는 수직 가장자리 필터링 프로세스에 의해 입력으로 수정된 샘플로 필터링된다. 각 CTU의 CTB의 수직 및 수평 가장자리는 코딩 단위 기준으로 별도로 처리된다. 코딩 장치의 코딩 블록의 수직 가장자리는 기하학적 순서로 코딩 블록의 오른쪽을 향해 가장자리를 통과하는 코딩 블록의 왼쪽 가장자리로 시작하여 필터링된다. 코딩 장치의 코딩 블록의 수평 가장자리는 기하학적 순서로 코딩 블록의 아래쪽을 향해 가장자리를 통과하는 코딩 블록의 상단가장자리로 시작하여 필터링된다.
노트 - 필터링 프로세스는 본 명세서에서 픽처 기초로 지정되지만, 디코더가 동일한 출력 값을 생성하도록 처리 종속성 순서를 적절히 고려한 경우, 동일한 결과를 가진 코딩 유닛 기준으로 필터링 프로세스를 구현할 수 있다.
디블로킹 필터 프로세스(deblocking filter process)는 모든 코딩 서브블록 가장자리에 적용되고 다음과 같은 유형의 가장자리를 제외하고, 픽처의 블록 가장자리를 트랜스폼한다:
- 픽처의 경계에 있는 가장자리,
- pps_loop_filter_across_virtual_boundaries_disabled_flag 1과 같을 때, 픽처의 가상 경계와 일치하는 가장자리,
- loop_filter_across_bricks_enabled_flag 0과 같을 때, 블록 경계와 일치하는 가장자리,
- slice_deblocking_filter_disabled_flag가 0과 같거나 slice_loop_filter_across_slices_enabled_flag가 1과 같은, 슬라이스의 위쪽 또는 왼쪽 경계와 일치하는 가장자리,
- slice_deblocking_filter_disabled_flag이 1과 동일한 슬라이스 내의 가장자리,
- 고려된 컴포넌트의 8x8 샘플 그리드 경계에 대응하지 않는 가장자리,
- 가장자리의 양쪽이 인터 예측을 사용하는 크로마 컴포넌트 내의 가장자리,
- 크로마의 가장자리는 연관된 트랜스폼 유닛의 가장자리가 아닌 블록을 트랜스폼한다.
- IntraSubPartitionsSplit 값이 ISP_NO_SPLIT 같지 않은 코딩 장치의 루마 트랜스폼 블록에 걸쳐진 가장자리.
- 가장자리는 두 개의 트랜스폼 스킵 코딩된 블록 사이에 있다.
- 가장자리는 하나의 트랜스폼 스킵 코딩된 블록과 하나의 PCM 코딩 된 블록 사이이다.
- 가장자리는 하나의 트랜스폼 스킵 코딩 된 블록과 하나의 QR-BDPCM 코딩 된 블록 사이이다.
- 가장자리는 하나의 트랜스폼 스킵 코딩 된 블록과 하나의 BDPCM 코딩 된 블록 사이이다.
- 가장자리는 하나의 PCM 코딩 블록과 하나의 QR-BDPCM 코딩 된 블록 사이에 있다.
5.2 스케일링 행렬에 실시예 #2
이 섹션에서는 섹션 4에서 글머리 기호 11.d의 예를 제공한다.
JVET-N0847 의 상단의 변경 사항은 굵은 텍스트로 강조 표시되고 제거된 텍스트는
Figure pct00038
표시된다. 강조 표시된 조건 중 하나 또는 다수가 추가될 수 있다.
크기 64x64, ScalingFactor[ 6][ matrixId][ []의 양자화 행렬의 요소는 다음과 같이 유도된다:
ScalingFactor[6][6][matrixId ][ x * 4   + k ][ y *  4   + j ] = ScalingList[ 6 ][ matrixId ][ i ] (7-XX)
i = 0..63, j = 0.. 3 , k = 0.. 3 , matrixId = 0, 3, x = DiagScanOrder[ 3 ][ 3 ][ i ][ 0 ]이고,
및 y = DiagScanOrder[ 3 ][ 3 ][ i ][ 1 ]이다
또한,
ScalingFactor[ 6][ 6][ matrixId][ x ][ y] = 0
(7-xx)
x >=32 || y >=32
ScalingFactor[ 6][ 6][ matrixId ][ 0]] = scaling_list_dc_coef_minus8[2][ matrixId] + 8 (7-XX)
matrixId = 0, 3이다.
제로아웃 경우
직사각형 크기의 양자화 행렬은 다음과 같은 조건에 만족하는 샘플에 대해 제로화되어야한다.
Figure pct00039
- 디코딩된 tu는 디폴트 트랜스폼 모드(1<<sizeIdW)=32 및 x > 16에 의해 코딩되지 않는다.
- 디코딩된 tu는 디폴트 트랜스폼 모드(1<<sizeIdH)==32 및 y > 16에 의해 코딩되지 않음
5.3 스케일링 행렬에 실시예 #3
이 섹션에서는 섹션 4에서 글머리 기호 9, 11.c 예제를 제공한다.
JVET-N0847 의 상단의 변경 사항은 굵은 기울임꼴 텍스트로 강조 표시되고 제거된 텍스트는
Figure pct00040
표시된다. 강조 표시된 조건 중 하나 또는 다수가 추가될 수 있다.
7.3.2.11 목록 데이터 신택스 스케일링
Figure pct00041
크기 64x64, ScalingFactor[ 6][ matrixId][ []의 양자화 행렬의 요소는 다음과 같이 유도된다:
ScalingFactor[ 6][ 6][ 6][ matrixId][ x * 8 + k][ y * 8 + j ] = ScalingList[ 6][ matrixId][ i] ] (7-XX)
with i = 0.. 16 , j = 0.. 7, k = 0..7, matrixId = 0, 3, x = DiagScanOrder[ 3 ][ 3 ][ i ][ 0 ],
및 y = DiagScanOrder[ 3 ][ 3 ][ i ][ 1 ]이다
또한
ScalingFactor[ 6][ 6][ matrixId][ x ][ y] = 0
(7-xx)
x >=32 || y >=32
ScalingFactor[ 6][ 6][ matrixId ][ 0]] = scaling_list_dc_coef_minus8[2][ matrixId] + 8 (7-XX)
matrixId = 0, 3이다.
제로아웃 경우
직사각형 크기의 양자화 행렬은 다음과 같은 조건에 만족하는 샘플에 대해 제로아웃 되어야 한다.
Figure pct00042
- 디코딩된 tu는 디폴트 트랜스폼 모드, (1<<sizeIdW)=32 및 x > 16에 의해 코딩되지 않는다.
디코딩된 tu는 디폴트 트랜스폼 모드, (1<<sizeIdH)==32 및 y > 16에 의해 코딩되지 않는다.
5.4. 스케일링 행렬에 실시예 #4
이 섹션에서는 QR-BDPCM 코딩된 블록에 대한 스케일링 행렬을 허용하지 않는 예를 제공한다.
JVET-N0847 의 상단의 변경 사항은 굵은 기울임꼴 텍스트로 강조 표시되고 제거된 텍스트는
Figure pct00043
표시된다. 강조 표시된 조건 중 하나 또는 다수가 추가될 수 있다.
8.7.3 트랜스폼 계수를 위한 스케일링 프로세스
이 프로세스에 대한 입력은 다음과 같다:
현재 픽처의 왼쪽 상단 루마 샘플에 대한 현재 루마 트랜스폼 블록의 왼쪽 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
트랜스폼 블록 폭(width)을 지정하는 변수 nTbW,
트랜스폼 블록 높이를 지정하는 변수 nTbH,
현재 블록의 컬러 컴포넌트를 지정하는 변수 cIdx,
현재 컬러 컴포넌트의 비트 깊이를 지정하는 변수 bitDepth.
이 프로세스의 출력은 요소 d[ x][y]를 갖는 스케일 된 트랜스폼 계수의 (nTbW) x(nTbH) 어레이 d이다.
양자화 파라미터 qP는 다음과 같이 유도된다:
cIdx가 0이면, 다음이 적용된다.
qP = Qp'Y (8-1019)
- 그렇지 않으면, cnt가 4이면 다음이 적용된다:
qP = Qp'Cb (8-1020)
그렇지 않으면(cIdx가 0이 아님), 다음이 적용된다:
qP = Qp'Cr (8-1021)
변수 rectNonTsFlag는 다음과 같이 유도된다:
rectNonTsFlag = ( ( ( Log2( nTbW ) + Log2( nTbH ) ) & 1 )  = =  1 && (8-1022)
transform_skip_flag[ xTbY ][ yTbY ] = = 0 )
변수 bdShift, rectNorm 및 bdOffset는 다음과 같이 유도된다:
bdShift = bitDepth + ( ( rectNonTsFlag  ?  8  :  0 ) + (8-1023)
( Log2( nTbW ) + Log2( nTbH ) ) / 2 ) - 5 + dep_quant_enabled_flag
rectNorm = rectNonTsFlag? 181 : 1 (8-1024)
bdOffset = ( 1 << bdShift ) >> 1 (8-1025)
목록 levelScale [] = evelScale [ k = { 40, 45, 51, 57, 64, 72}, k = 0..5로 지정된다.
스케일 된 트랜스폼 계수 d[x][y], x = 0.nTbW - 1, y = 0.nTbH - 1의 유도은 다음과 같이 적용한다:
중간 스케일링 인자(intermediate scaling factor) m[x][y]은 다음과 같이 유도된다:
- 다음 조건 중 하나 이상이 true인 경우, m[x][ y]는 16과 동일하게 설정된다:
scaling_list_enabled_flag 0과 같다.
transform_skip_flag[xTbY][yTbY]는 1과 같다.
bdpcm_flag[xTbY][yTbY]는 1과 같다.
- 그렇지 않으면 다음이 적용된다:
m[ x ][ y ] = ScalingFactor[ sizeIdW ][ sizeIdH ][ matrixId ][ x ][ y ] (8-XXX)
sizeIdW가 Log2(nTbW)와 동일하게 설정된 경우, sizeIdH는 Log2(nTbH)와 동일하게 설정되고 matrixId는 표 7-14에 지정된다.
스케일링 인자 ls[x][y]는 다음과 같이 유도된다:
- dep_quant_enabled_flag 1과 같으면 다음이 적용된다:
ls[ x ][ y ] = ( m[ x ][ y ] * levelScale[ (qP + 1) % 6 ] ) << ( (qP + 1) / 6 ) (8-1026)
- 그렇지 않으면(dep_quant_enabled_flag 0과 같음), 다음이 적용된다:
ls[ x ][ y ] = ( m[ x ][ y ] * levelScale[ qP % 6 ] ) << ( qP / 6 ) (8-1027)
값 dnc[x][ y]는 다음과 같이 유도된다:
dnc[ x][ y] = (8-1028)
(TransCoeffLevel[ xTbY][ yTbY][ cIdx ][ x ]] y] * ls[ x ][ y] * rectNorm +bdoffset) >> bdShift
스케일 된 트랜스폼 계수 d[ x][y]는 다음과 같이 유도된다:
d[ x ][ y ] = Clip3( CoeffMin, CoeffMax, dnc[ x ][ y ] ) (8-1029)
5.5 트랜스폼 스킵 플래그의 시맨틱에 실시예 #5
transform_skip_flag[x0][ y0]은 트랜스폼이 루마 트랜스폼 블록에 적용되는지 여부를 지정한다. 어레이 인덱스 x0, y0은 픽처의 왼쪽 상단 루마 샘플을 기준으로 고려된 트랜스폼 블록의 왼쪽 상단 루마 샘플의 위치(x0, y0)를 지정한다. transform_skip_flag[x0][ y0]이 1과 같으면 루마 트랜스폼 블록에 트랜스폼이 적용되지 않는다고 지정한다. transform_skip_flag[x0][ y0] 0과 같으면 트랜스폼이 루마 트랜스폼 블록에 적용되는지 아닌지의 결정이 다른 신택스 요소에 의존하지 않는 것을 지정한다. transform_skip_flag[x0][[y0]이 존재하지 않고 bdpcm_flag[x0][[y0]이 0과 , 같을때, 0과 같도록 유추된다. transform_skip_flag[x0][[y0]이 존재하지 않고 bdpcm_flag[x0][ y0]이 1과 , 같을때, 0과 같도록 유추된다.
transform_skip_flag[x0][ y0]은 트랜스폼이 루마 트랜스폼 블록에 적용되는지 여부를 지정한다. 어레이 인덱스 x0, y0은 픽처의 왼쪽 상단 루마 샘플을 기준으로 고려된 트랜스폼 블록의 왼쪽 상단 루마 샘플의 위치(x0, y0)를 지정한다. transform_skip_flag[x0][ y0]이 1과 같으면 루마 트랜스폼 블록에 트랜스폼이 적용되지 않는다고 지정한다. transform_skip_flag[x0][ y0] 0과 같으면 트랜스폼이 루마 트랜스폼 블록에 적용되는지 아닌지의 결정이 다른 신택스 요소에 의존하지 않는 것을 지정한다. transform_skip_flag[x0][[y0]이 존재하지 않고 bdpcm_flag[x0][[y0]이 0과 , 같을때, 0과 같도록 유추된다. transform_skip_flag[x0][[y0]이 존재하지 않고 bdpcm_flag[x0][ y0]이 1과 , 같을때, 0과 같도록 유추된다.
도 11은 비디오 처리 장치(video processing apparatus)(1100)의 블록도이다. 장치(1100)는 여기에 설명된 방법들 중 하나 이상을 구현하는데 사용될 수 있다. 장치(1100)는 스마트 폰, 태블릿, 컴퓨터, 사물 인터넷(IoT) 수신기 등으로 구현될 수 있다. 장치(1100)는 하나 이상의 프로세서(processor)(1102), 하나 이상의 메모리(memory)(1104) 및 비디오 처리 하드웨어(video processing hardware)(1106)를 포함할 수 있다. 프로세서(들)(1102)는 본 문서에 설명된 하나 이상의 방법을 구현하도록 구성될 수 있다. 메모리(메모리)(1104)는 여기에 설명된 방법 및 기술을 구현하는 데 사용되는 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 처리 하드웨어(1106)는 하드웨어 회로에서 여기에 기재된 일부 기술을 구현하는 데 사용될 수 있다.
다음 솔루션은 일부 실시예에서 바람직한 솔루션으로 구현될 수 있다.
다음 솔루션은 이전 섹션에 나열된 항목에 설명된 추가 기술(예를 들어, 항목 1)과 함께 구현될 수 있다.
1. 비디오 처리 방법(예를 들어, 도 12에 묘사된 방법(1200))은: 코딩된 모드 정보에 기초하여, 비디오의 비디오 블록의 코딩된 표현과 비디오 블록 사이의 변환을 위해, 트랜스폼 스킵 모드가 변환을 위해 활성화되는지 여부를 결정하는 단계(1202); 및 결정하는 단계에 기초하여 변환을 수행하는 단계(1204)를 포함하고, 트랜스폼 스킵 모드에서, 비디오 블록을 나타내는 적어도 일부 계수에 대한 변환의 적용은 변환 동안 스킵된다.
2. 솔루션 1의 방법에서, 트랜스폼 스킵 모드는 블록 차동 펄스 코드 변조(BDPCM) 또는 양자화된 잔차 BDPCM(QR-BDPCM) 모드를 나타내는 코딩된 모드 정보로 인해 활성화되는 것으로 결정된다.
3. 솔루션 1의 방법에서, 변형 스킵 모드를 나타내는 코딩된 표현의 플래그는 파싱 되지 않는다.
4. 솔루션 1의 방법에서, 변형 스킵 모드를 나타내는 코딩된 표현의 플래그는 파싱에서 스킵 된다.
다음 솔루션은 이전 섹션에 나열된 항목에 설명된 추가 기술(예를 들어, 항목 2)과 함께 구현될 수 있다.
5. 비디오 처리 방법, 포함: 변환을 위한 블록 차동 펄스 코드 변조(BDPCM) 또는 양자화된 잔차 BDPCM(QR-BDPCM) 모드의 사용으로 인해 비디오 블록과 비디오 블록의 코딩된 표현 사이의 변환을 위한 스케일링 행렬을 사용하는 것으로 결정하는 방법; 및 스케일링 행렬을 사용하여 변환을 수행하는 단계 - 스케일링 행렬은 변환 동안 비디오 블록을 나타내는 적어도 일부 계수를 스케일링 하는 데 사용됨 - 를 포함한다.
6. 솔루션 5의 방법에서, 변환은 변환 동안 계수에 적용되는 여러 트랜스폼에 의존하는 모드에 따라 스케일링 행렬을 적용하는 단계를 포함한다.
7. 비디오 처리 방법은: 변환을 위한 블록 차동 펄스 코드 변조(BDPCM) 또는 양자화된 잔차 BDPCM(QR-BDPCM) 모드의 사용으로 인해 비디오 블록과 비디오 블록의 코딩된 표현 사이의 변환을 위한 스케일링 행렬의 사용을 비활성화하는 것을 결정하는 단계; 및 스케일링 행렬을 사용하여 변환을 수행하는 단계 - 스케일링 행렬은 변환 동안 비디오 블록을 나타내는 적어도 일부 계수를 스케일링 하는 데 사용됨 - 를 포함한다.
다음 솔루션은 이전 섹션에 나열된 항목에 설명된 추가 기술(예를 들어, 항목 3)과 함께 구현될 수 있다.
8. 비디오 처리 방법은: 비디오의 비디오 블록의 코딩된 표현과 비디오 블록 사이의 변환을 위해, 트랜스폼 스킵 모드가 변환을 위해 활성화되는지 여부에 따라 인루프 필터의 적용 가능성을 결정하는 단계; 및 인루프 필터의 적용 가능성에 기초하여 변환을 수행하는 단계를 포함하고; 트랜스폼 스킵 모드에서, 비디오 블록을 나타내는 적어도 일부 계수에 대한 변환의 적용은 변환 동안 스킵된다.
9. 솔루션 8의 방법에서, 루프 필터는 디블로킹 필터(de-blocking)를 포함한다.
10. 솔루션 8 또는 9의 방법에서, 비디오 블록의 트랜스폼 스킵 모드와 이웃 블록의 다른 트랜스폼 스킵 모드에 기초하는 인루프 필터의 강도를 결정하는 단계를 포함한다.
11. 솔루션 8 또는 9의 방법에서, 결정하는 단계는 인르푸 필터가 비디오 블록에 대해 비활성화되는 트랜스폼 스킵 모드로 인해 적용되지 않는다는 것을 결정하는 단계를 포함한다.
다음 솔루션은 이전 섹션에 나열된 항목에 설명된 추가 기술(예를 들어, 항목 4 및 5)과 함께 구현될 수 있다.
12. 비디오 처리 방법은: 인터 코딩 및 인트라 블록 복사 코딩 기반 변환을 위해 동일한 스케일링 행렬이 선택되도록 비디오의 비디오 블록과 비디오 블록의 코딩된 표현 사이의 변환을 위해 스케일링 행렬을 선택하는 단계, 및 선택된 스케일링 행렬을 사용하여 변환을 수행하는 단계를 포함하고, 스케일링 행렬은 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용된다.
다음 솔루션은 이전 섹션에 나열된 항목에 설명된 추가 기술(예를 들어, 항목 6)과 함께 구현될 수 있다.
13. 비디오 처리 방법은: 비디오의 비디오 블록과 변환을 위해 선택된 트랜스폼 행렬에 기초하여 비디오 블록의 코딩된 표현 사이의 변환을 위한 스케일링 행렬을 선택하는 단계, 및 선택된 스케일링 행렬을 사용하여 변환을 수행하는 단계를 포함하고, 스케일링 행렬은 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용되고 및 트랜스폼 행렬은 변환 동안 비디오 블록의 적어도 일부 계수를 트랜스폼 하는 데 사용된다.
14. 솔루션 13의 방법에서, 스케일링 행렬을 선택하는 단계는 비디오 블록의 변환이 서브블록 코딩 모드를 사용하는지 여부에 기초한다.
15. 솔루션 14의 방법에서, 특정 코딩 모드는 인트라 코딩 모드이다.
16. 솔루션 15의 방법에서, 아핀 코딩 모드에 대한 스케일링 행렬은 변환이 아핀 코딩 모드를 사용하지 않는 다른 비디오 블록에 대해 다른 스케일링 행렬에 대해 상이하다.
다음 솔루션은 이전 섹션에 나열된 항목에 설명된 추가 기술(예를 들어, 항목 7)과 함께 구현될 수 있다.
17. 비디오 처리 방법: 변환을 위해 선택된 이차 트랜스폼 행렬에 기초하여 비디오의 비디오 블록과 비디오 블록의 코딩된 표현 사이의 변환을 위한 스케일링 행렬을 선택하는 단계, 및 선택된 스케일링 행렬을 사용하여 변환을 수행하는 단계를 포함하고, 스케일링 행렬은 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용되고 이차 트랜스폼 행렬은 변환 동안 비디오 블록의 적어도 일부 잔차 계수를 변환하는 데 사용된다.
18. 솔루션 17에서,, 이차 트랜스폼 행렬이 비디오 블록의 MxN 왼쪽 상단 부분에 적용되고, 여기서 스케일링 행렬은 비디오 블록의 MxN 위왼쪽 부분 이상에 적용된다.
19. 솔루션 17에서, 이차 트랜스폼 행렬이 비디오 블록의 MxN 왼쪽 상단 부분에 적용되고, 여기서 스케일링 행렬은 비디오 블록의 MxN 상부 왼쪽 부분에만 적용된다.
20. 솔루션 17 내지 19 중 어느 하나의 방법에서, 코딩된 표현의 신택스 요소는 스케일링 행렬을 나타낸다.
다음 솔루션은 이전 섹션에 나열된 항목에 설명된 추가 기술(예를 들어, 항목 8)과 함께 구현될 수 있다.
21. 비디오 처리 방법은: 비정사각형을 갖는 비디오 블록에 대해, 비디오 블록과 비디오 블록의 코딩된 표현 사이의 변환에 사용하기 위한 스케일링 행렬을 결정하는 단계 - 코딩된 표현의 신택스 요소는 스케일링 행렬을 시그널링함 -; 및 스케일링 행렬에 기초하여 변환을 수행하는 단계 - 스케일링 행렬은 변환 동안 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용됨 - 를 포함한다.
22. 솔루션 21의 방법에서, 신택스 요소에서 이전 정사각형 블록의 스케일링 행렬에서 스케일링 행렬을 예측적으로 코딩한다.
다음 솔루션은 이전 섹션에 나열된 항목에 설명된 추가 기술(예를 들어, 항목 9)과 함께 구현될 수 있다.
23. 비디오 처리 방법은: 비디오 블록의 코딩된 표현과 비디오 블록 사이의 변환 동안 스케일링 행렬이 부분적으로 적용되는 것으로 결정하는 단계; 및 스케일링 행렬이 제1 위치 세트에 적용되고 비디오 블록의 나머지 위치에서 비활성화되도록 스케일링 행렬을 부분적으로 적용함에 기초되는 변환을 수행하는 단계를 포함한다.
24. 솔루션 23의 방법에서, 제1 위치 세트는 비디오 블록의 왼쪽 상단 M*N 위치를 포함한다.
25. 솔루션 23의 방법에서, 제1 위치 세트는 비디오 블록의 상단 M*N 위치를 포함한다.
26. 솔루션 23의 방법에서, 제1 위치 세트는 비디오 블록의 왼쪽 M*N 위치를 포함한다.
다음 솔루션은 이전 섹션에 나열된 항목에 설명된 추가 기술(예를 들어, 항목 10 및 11)과 함께 구현될 수 있다.
27. 비디오 처리 방법은: 비디오 블록의 코딩된 표현과 비디오 블록 사이의 변환 동안 스케일링 행렬이 적용되는 것으로 결정하는 단계; 및 스케일링 행렬에 기초하여 변환을 수행하는 단계를 포함하고; 코딩된 표현은 스케일링 행렬의 요소의 수를 시그널링하고, 수는 변환에서 제로아웃 계수의 적용에 의존한다.
28. 솔루션 27의 방법에서, 변환에 비디오 블록의 왼쪽 상단 MxN 위치를 제외한 모든 위치를 제로아웃 하는 단계를 포함하고, 수는 M/8*N/8이다.
다음 솔루션은 이전 섹션에 나열된 항목에 설명된 추가 기술(예를 들어, 항목 11)과 함께 구현될 수 있다.
29. 솔루션 27 또는 28의 방법에서, 수는 변환 동안 사용되는 트랜스폼 행렬에 의존한다.
30. 솔루현 29에서, 트랜스폼 행렬은 KxL 크기이고 상단 MxN 계수만 제로아웃되지 않는다.
31. 솔루션 27 내지 30 중 어느 하나의 방법에서, 스케일링 행렬은 K 또는 L로부터 결정된 인자에 의해 서브 샘플링에 의해 적용된다.
다음 솔루션은 이전 섹션에 나열된 항목에 설명된 추가 기술(예를 들어, 항목 12)과 함께 구현될 수 있다.
32. 비디오 처리 방법에서, 비디오 블록과 비디오 블록의 코딩된 표현 사이의 변환 동안, 특정 유형의 비디오 블록의 크기에 기초하여 사용할 단일 양자화 행렬을 결정하는 단계; 및 양자화 행렬을 사용하여 변환을 수행하는 단계를 포함한다.
33. 솔루션 32에서, 비디오 블록의 크기가 WxH보다 작고, W와 H가 정수이다.
34. 솔루션 32 또는 33에서, 비디오 블록의 너비가 임계값보다 작다.
35. 솔루션 32 또는 33에서, 비디오 블록의 높이가 임계값보다 작다.
36. 솔루션 32에서, 양자화 행렬은 양자화된 값에 영향을 미치지 않는 ID 양자화 행렬이다.
37. 솔루션 1 내지 36 중 어느 한 방법에서, 변환은 비디오를 코딩된 표현으로 인코딩하는 단계를 포함한다.
38. 솔루션 1 내지 36 중 어느 한 방법에서, 변환은 비디오의 픽셀 값을 생성하기 위해 코딩된 표현을 디코딩하는 단계를 포함한다.
39. 솔루션 1 내지 36 중 어느 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
40. 솔루션 1 내지 36 중 어느 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
41. 컴퓨터 코드가 저장되어 있는 컴퓨터 프로그램에서, 코드는, 프로세서에 의해 실행 시, 프로세서로 하여금 솔루션 1 내지 36 중 어느 하나 이상에 인용된 방법을 구현하도록 한다.
42. 본 문서에 기술된 방법, 장치 및 시스템.
개시된 기술의 일부 실시예는 비디오 처리 툴 또는 모드를 활성화하기 위한 판단(decision) 또는 결정(determination)을 내리는 것을 포함한다. 예를 들어 비디오 처리 툴 또는 모드가 활성화되면 인코더가 비디오 블록(block of video)의 처리에서 툴 또는 모드를 사용하거나 구현하지만, 툴 또는 모드의 사용에 기초하여 결과 비트스트림을 반드시 수정할 필요는 없다. 즉, 비디오 블록에서 비디오의 비트스트림 표현으로 변환하면 판단 또는 결정에 기초하여 활성화될 때 비디오 처리 툴 또는 모드를 사용한다. 또 다른 예에서 비디오 처리 툴 또는 모드가 활성화되면 디코더는 비디오 처리 툴 또는 모드에 기초하여 비트스트림이 수정되었다는 것을 알고 비트스트림을 처리 한다. 즉, 비디오의 비트스트림 표현에서 비디오 블록으로의 변환은 판단 또는 결정에 기초하여 활성화된 비디오 처리 툴 또는 모드를 사용하여 수행된다.
개시된 기술의 일부 실시예에는 비디오 처리 툴 또는 모드를 비활성화하는 판단(decision) 또는 결정(determination)을 내리는 것이 포함된다. 예를 들어 비디오 처리 툴 또는 모드가 비활성화되면, 인코더는 비디오 블록을 비디오의 비트스트림 표현으로 변환하는 데 툴 또는 모드를 사용하지 않는다. 또 다른 예에서 비디오 처리 툴 또는 모드가 비활성화되면, 디코더는 판단(decision) 또는 결정(determination)에 기초하여 비활성화된 비디오 처리 툴 또는 모드를 사용하여 비트스트림이 수정된 것이 아니라는 것을 알고 비트스트림을 처리한다.
도 15는 본 개시의 기술을 활용할 수 있는 예제 비디오 코딩 시스템(100)을 예시하는 블록도이다. 도 15에 도시된 바와 같이, 비디오 코딩 시스템(100)은 소스 장치(source device)(110)와 목적 장치(destination device)(120)를 포함할 수 있다. 소스 장치(110)는 인코딩된 비디오 데이터를 생성하고, 비디오 인코딩 장치로 참조될 수 있다. 목적 장치(120)는 소스 장치(110)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있고, 비디오 디코딩 장치로 참조될 수 있다. 소스 장치(110)에는 비디오 소스(112), 비디오 인코더(114) 및 입력/출력(I/O) 인터페이스(116)가 포함될 수 있다.
비디오 소스(112)에는 비디오 캡처 장치, 비디오 컴텐츠 공급자로부터 비디오 데이터를 수신하는 인터페이스, 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템 또는 이러한 소스의 조합을 포함할 수 있다. 비디오 데이터는 하나 이상의 픽처를 포함할 수 있다. 비디오 인코더(114)는 비디오 소스(112)의 비디오 데이터를 인코딩하여 비트스트림을 생성한다. 비트스트림에는 비디오 데이터의 코딩된 표현을 형성하는 비트들의 시퀀스가 포함될 수 있다. 비트스트림에는 코딩된 픽처 및 관련 데이터가 포함될 수 있다. 코딩된 픽처는 픽처의 코딩된 표현(representation)이다. 관련 데이터에는 시퀀스 파라미터 세트, 픽처 파라미터 세트 및 기타 신택스 구조가 포함될 수 있다. I/O 인터페이스(116)는 변조기/복조기(모뎀) 및/또는 송신기를 포함할 수 있다. 인코딩된 비디오 데이터는 네트워크(130a)를 거쳐, I/O 인터페이스(116)를 통해 목적 장치(120)로 직접 전송될 수 있다. 인코딩된 비디오 데이터는 목적 장치(120)에 의한 액세스를 위해 저장 매체/서버(130b)에 저장될 수도 있다.
목적 장치(120)에는 I/O 인터페이스(126), 비디오 디코더(124) 및 디스플레이 장치(122)가 포함될 수 있다.
I/O 인터페이스(126)는 수신기 및/또는 모뎀을 포함할 수 있다. I/O 인터페이스(126)는 소스 장치(110) 또는 저장 매체/서버(130b)로부터 인코딩된 비디오 데이터를 획득할 수 있다. 비디오 디코더(124)는 인코딩된 비디오 데이터를 디코딩할 수 있다. 디스플레이 장치(122)는 디코딩된 비디오 데이터를 사용자에게 표시할 수 있다. 디스플레이 장치(122)는 목적 장치(120)와 통합될 수 있거나, 외부 디스플레이 장치와 인터페이스하도록 구성된 목적 장치(120)의 외부에 위치할 수 있다.
비디오 인코더(114) 및 비디오 디코더(124)는 고효율 비디오 코딩(HEVC) 표준, 다목적 비디오 코딩(VVC) 표준 및 기타 현재 및/또는 추가 표준과 같은 비디오 압축 표준에 따라 동작할 수 있다.
도 16은 도 15에 도시된 시스템(100)에서 비디오 인코더(114)일 수 있는 비디오 인코더(200)의 예를 나타내는 블록도이다.비디오 인코더(200)는 본 개시의 기술 중 어느 또는 전부를 수행하도록 구성될 수 있다. 도 16의 예에서, 비디오 인코더(200)는 복수의 함수 컴포넌트를 포함한다. 본 개시에 기재된 기술은 비디오 인코더(200)의 다양한 컴포넌트들 사이에 공유될 수 있다. 일부 예에서, 프로세서는 본 개시에 기재된 임의 또는 전부를 수행하기 위해 구성될 수 있다.
비디오 인코더(200)의 함수 컴포넌트는 파티션 유닛(partition unit)(201), 모드 선택 유닛(mode select unit)(203), 모션 추정 유닛(motion estimation unit)(204), 모션 보상 유닛(motion compensation unit)(205) 및 인트라 예측 유닛(intra prediction unit)(206)을 포함할 수 있는 예측 유닛(predication unit)(202)과, 잔차 생생 유닛(residual generation unit)(207), 트랜스폼 유닛(transform unit)(208), 양자화 유닛(quantization unit)(209), 역양자화 유닛(inverse quantization unit)(210), 역방향 트랜스폼 유닛(inverse transform unit)(211), 재구성 유닛(reconstruction unit)(212), 버퍼(buffer)(213), 및 엔트로피 인코딩 유닛(entropy encoding unit)(214)을 포함할 수 있다.
다른 예에서, 비디오 인코더(200)에는 더 많거나, 적거나, 다른 함수 컴포넌트가 포함될 수 있다. 예를 들어, 예측 유닛(202)는 인트라 블록 카피(IBC) 유닛을 포함할 수 있다. IBC 유닛은 IBC 모드에서 적어도 하나의 레퍼런스 픽처가 현재 비디오 블록이 있는 픽처인 경우 의 예측을 수행할 수 있다.
더욱이, 모션 추정 유닛(204) 및 모션 보상 유닛(205)과 같은 일부 컴포넌트는 고도로(highly) 통합될 수 있으나, 도 16의 예에서는 설명의 목적을 위해 분리된 것으로 표현되었다.
파티션 장치(201)는 픽처를 하나 이상의 비디오 블록으로 파티셔닝할 수 있다. 비디오 인코더(200) 및 비디오 디코더(300)는 다양한 비디오 블록 크기를 지원할 수 있다.
모드 선택 유닛(203)는 오류 결과에 기초하여 코딩 모드, 예를 들면, 인트라 또는 인터 등을 선택하고, 결과인 인트라 또는 인터 코딩된 블록을, 잔차 생성 유닛(207)에 제공하여 잔차 블록 데이터를 생성하고, 재구성 유닛(212)으로 제공하여 레퍼런스 픽처로 사용하기 위한 인커딩된 블록을 재구성한다. 일부 예에서, 모드 선택 유닛(203)는 인트라 및 인터 예측(CIIP) 모드의 조합을 선택할 수 있고, 이 모드에서 예측은 인터 예측 시그널 및 인트라 예측 시그널에 기초한다. 모드 선택 유닛(203)는 또한, 인터 예측의 경우 블록에 대한 모션 벡터의 해상도(예를 들어, 서브 픽셀 또는 정수 픽셀 정밀도)를 선택할 수 있다.
현재 비디오 블록에서 인터 예측을 수행하기 위해, 모션 추정 유닛(204)는 버퍼(213)에서 현재 비디오 블록에 하나 이상의 레퍼런스 프레임을 비교하여 현재 비디오 블록에 대한 모션 정보를 생성할 수 있다. 모션 보상 유닛(205)는 현재 비디오 블록과 관련된 픽처 이외의 버퍼(213)로부터의 모션 정보 및 디코딩된 픽처 샘플에 기초하여 현재 비디오 블록에 대한 예측 비디오 블록을 결정할 수 있다.
모션 추정 유닛(204) 및 모션 보상 유닛(205)는 현재 비디오 블록이 I 슬라이스, P 슬라이스 또는 B 슬라이스에 있는지 여부에 따라 현재 비디오 블록에 대해 서로 다른 작업을 수행할 수 있다.
일부 예에서, 모션 추정 유닛(204)는 현재 비디오 블록에 대한 유니-디렉셔널(uni-directional) 예측을 수행할 수 있고, 모션 추정 유닛(204)는 현재 비디오 블록에 대한 레퍼런스 비디오 블록에 대한 목록 0 또는 목록 1의 레퍼런스 픽처를 검색할 수 있다. 그런 다음, 모션 추정 유닛(204)는 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 공간 변위(spatial displacement)를 나타내는 레퍼런스 비디오 블록 및 모션 벡터를 포함하는 목록 0 또는 목록 1에서 레퍼런스 픽처를 나타내는 레퍼런스 인덱스를 생성할 수 있다. 모션 추정 유닛(204)는 레퍼런스 인덱스, 예측 디렉션 표시기 및 모션 벡터를 현재 비디오 블록의 모션 정보로 출력할 수 있다. 모션 보상 유닛(205)는 현재 비디오 블록의 동작 정보에 의해 표시된 레퍼런스 비디오 블록에 기초하여 현재 블록의 예측된 비디오 블록을 생성할 수 있다.
다른 예에서, 모션 추정 유닛(204)는 현재 비디오 블록에 대한 바이-디렉셔널(bi-directional) 예측을 수행할 수 있고, 모션 추정 유닛(204)는 현재 비디오 블록에 대한 레퍼런스 비디오 블록에 대한 목록 0에서 레퍼런스 픽처를 검색할 수 있으며, 또한 현재 비디오 블록에 대한 다른 레퍼런스 비디오 블록에 대한 목록 1에서 레퍼런스 픽처를 검색할 수 있다. 그런 다음, 모션 추정 유닛(204)는 레퍼런스 비디오 블록과 현재 비디오 블록 사이의 공간 변위를 나타내는 레퍼런스 비디오 블록 및 모션 벡터를 포함하는 목록 0 및 목록 1에서 레퍼런스 픽처를 나타내는 레퍼런스 인덱스를 생성할 수 있다. 모션 추정 유닛(204)는 현재 비디오 블록의 모션 정보로서 현재 비디오 블록의 레퍼런스 인덱스 및 모션 벡터를 출력할 수 있다. 모션 보정 유닛(205)는 현재 비디오 블록의 동작 정보에 의해 표시된 레퍼런스 비디오 블록에 기초하여 현재 비디오 블록의 예측 비디오 블록을 생성할 수 있다.
일부 예에서, 모션 추정 유닛(204)는 디코더의 디코딩 처리를 위한 전체 모션 정보 세트를 출력할 수 있다.
일부 예에서, 모션 추정 유닛(204)는 현재 비디오에 대한 전체 모션 정보 세트를 출력하지 않을 수 있다. 오히려, 모션 추정 유닛(204)는 다른 비디오 블록의 동작 정보를 참조하여 현재 비디오 블록의 모션 정보를 시그널링할 수 있다. 예를 들어, 모션 추정 유닛(motion estimation unit)(204)는 현재 비디오 블록의 모션 정보가 이웃 비디오 블록의 동작 정보와 충분히 유사하다고 결정할 수 있다.
일 예에서, 모션 추정 유닛(204)는 현재 비디오 블록과 연결된 신텍스 구조에서 현재 비디오 블록이 다른 비디오 블록과 동일한 모션 정보를 가지고 있음을 비디오 디코더(300)에 나타내는 값을 나타낼 수 있다.
또 다른 예에서, 모션 추정 유닛(204)는 현재 비디오 블록과 연관된 신텍스 구조에서, 다른 비디오 블록 및 모션 벡터 차이(MVD)를 식별할 수 있다. 모션 벡터 차이는 현재 비디오 블록의 모션 벡터와 표시된 비디오 블록의 모션 벡터 사이의 차이를 나타낸다. 비디오 디코더(300)는 현재 비디오 블록의 모션 벡터를 결정하기 위해 표시된 비디오 블록의 모션 벡터 및 모션 벡터 차이를 사용할 수 있다.
위에서 설명한 바와 같이, 비디오 인코더(200)는 모션 벡터를 예측적으로 시그널링할 수 있다. 비디오 인코더(200)에 의해 구현될 수 있는 예측 시그널링 기술의 두 가지 예는, 어드밴스드 모션 벡터 예측(AMVP) 및 병합 모드 시그널링을 포함한다.
인트라 예측 유닛(206)은 현재 비디오 블록에 대한 인트라 예측을 수행할 수 있다. 인트라 예측 유닛(206)가 현재 비디오 블록에 대한 인트라 예측을 수행하는 경우, 인트라 예측 유닛(206)는 동일 픽처에서 다른 비디오 블록의 디코딩된 샘플에 기초하여 현재 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 현재 비디오 블록에 대한 예측 데이터에는 예측된 비디오 블록 및 다양한 신택스 요소가 포함될 수 있다.
잔차 생성 유닛(207)는 현재 비디오 블록으로부터 예측된 비디오 블록의 예측 비디오 블록(예를 들어, 마이너스 기호로 표시)을 빼서 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 잔차 데이터는 현재 비디오 블록에서 샘플의 상이한 샘플 컴포넌트에 대응하는 잔차 비디오 블록을 포함할 수 있다.
다른 예에서, 현재 비디오 블록에 대한 현재 비디오 블록에 대한 잔차 데이터가 없을 수 있고, 예를 들어 스킵(skip) 모드에서, 잔차 생성 유닛(207)는 빼기 동작을 수행하지 않을 수 있다.
트랜스폼 처리 유닛(208)는 현재 비디오 블록과 연결된 잔차 비디오 블록에 하나 이상의 트랜스폼을 적용하여 현재 비디오 블록에 대해 하나 이상의 트랜스폼 계수 비디오 블록을 생성할 수 있다.
트랜스폼 처리 유닛(208)는 현재 비디오 블록과 관련된 트랜스폼 계수 비디오 블록을 생성한 후, 양자화 유닛(209)는 현재 비디오 블록과 연관된 하나 이상의 양자화 파라미터(QP) 값에 기초하여 현재 비디오 블록과 관련된 트랜스폼 계수 비디오 블록을 양자화할 수 있다.
역양자화 유닛(210)와 역방향 트랜스폼부 유닛(211)는 트랜스폼 계수 비디오 블록으로부터 잔차 비디오 블록을 재구성하기 위해, 트랜스폼 계수 비디오 블록에 역양자화 및 역방향 트랜스폼을 각각 적용할 수 있다. 재구성 유닛(212)는 예측 유닛(202)에 의해 생성된 하나 이상의 예측된 비디오 블록으로부터 대응하는 샘플에 재구성된 잔차 비디오 블록을 추가하여 버퍼(213)에 저장하기 위한 현재 블록과 연관된 재구성된 비디오 블록을 생성할 수 있다.
재구성 유닛(212)가 비디오 블록을 재구성한 후, 비디오 블록에서 비디오 차단 아티팩트를 줄이기 위해 루프 필터링 동작이 수행된다.
엔트로피 인코딩 유닛(214)은 비디오 인코더(200)의 다른 함수 컴포넌트로부터 데이터를 수신할 수 있다. 엔트로피 인코딩 유닛(214)가 데이터를 수신하는 경우, 엔트로피 인코딩 유닛(214)는 엔트로피 인코딩된 데이터를 생성하고 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력하기 위해 하나 이상의 엔트로피 인코딩 동작을 수행할 수 있다.
도 13은 도 15에 도시된 시스템(100)에서 비디오 디코더(114)일 수 있는 비디오 디코더(300)의 예를 도시하는 블록도이다.
비디오 디코더(300)는 본 개시의 기술 중 어느 또는 전부를 수행하도록 구성될 수 있다. 도 13의 예에서, 비디오 디코더(300)는 복수의 함수 컴포넌트를 포함한다. 본 개시에 기재된 기술은 비디오 디코더(300)의 다양한 컴포넌트들 사이에 공유될 수 있다. 일부 예에서, 프로세서는 본 개시에 기재된 임의 또는 전부를 수행하기 위해 구성될 수 있다.
도 13의 예에서, 비디오 디코더(video decoder)(300)는 엔트로피 디코딩 유닛(entropy decoding unit)(301), 모션 보상 유닛(motion compensation unit)(302), 인트라 예측 유닛(intra prediction unit)(303), 역양자화 유닛(inverse quantization unit)(304), 역방향 트랜스폼 유닛(inverse transformation uni)(305), 및 재구성 유닛( 305 , and a reconstruction unit)(306) 및 버퍼(buffer)(307)를 포함한다. 비디오 디코더(300)는, 일부 예에서, 비디오 인코더(200)에 대하여 기술된 인코딩 패스(pass)와 일반적으로 서로 주고 받는(reciprocal) 디코딩 패스를 수행할 수 있다(도 16).
엔트로피 디코딩 유닛(301)는 인코딩된 비트스트림을 검색할 수 있다. 인코딩된 비트스트림에는 엔트로피 코딩된 비디오 데이터(예를 들어, 비디오 데이터의 인코딩된 블록)가 포함될 수 있다. 엔트로피 디코딩 유닛(301)는 엔트로피 코딩된 비디오 데이터를 디코딩할 수 있고, 엔트로피 디코딩된 비디오 데이터로부터 모션 보상 유닛(302)는 모션 벡터, 모션 벡터 정밀도, 레퍼런스 픽처 목록 인덱스 및 기타 모션 정보를 포함하는 모션 정보를 결정할 수 있다. 모션 보상 유닛(302)는, 예를 들어 AMVP 및 병합 모드를 수행하여 이러한 정보를 결정할 수 있다.
모션 보상 유닛(302)는 보간 필터에 기초하여 보간(interpolatin)을 수행하여 모션 보정 블록을 생성할 수 있다. 서브 픽셀 정밀도와 함께 사용되는 보간 필터에 대한 식별자가 신택스 요소에 포함될 수 있다.
모션 보상 유닛(302)는 비디오 블록을 인코딩하는 동안 비디오 인코더(20)에서 사용하는 보간 필터를 사용하여 레퍼런스 블록의 서브 정수 픽셀에 대한 보간 값을 계산할 수 있다. 모션 보상 유닛(302)는 수신된 신텍스 정보에 따라 비디오 인코더(200)에서 사용하는 보간 필터를 결정하고 보간 필터를 사용하여 예측 블록을 생성할 수 있다.
모션 보상 유닛(302)는 인코딩된 비디오 시퀀스의 프레임 및/또는 슬라이스를 인코딩하는 데 사용되는 블록의 크기, 인코딩된 비디오 시퀀스의 각 매크로 블록이 파티셔닝되는 방식을 설명하는 파티션 정보, 각 파티션이 인코딩된 방법, 각 파티션이 인코딩되는 방식을 나타내는 모드, 각 인터-인코딩된 블록에 대한 하나 이상의 레퍼런스 프레임(및 레퍼런스 프레임 목록) 및 인코딩된 비디오 시퀀스를 디코딩하는 다른 정보들을 결정하기 위해 일부 신텍스 정보를 사용할 수 있다.
인트라 예측 유닛(303)는, 예를 들어 비트스트림에서 수신된 인트라 예측 모드를 사용하여 공간적으로 인접한 블록으로부터 예측 블록을 형성할 수 있다. 역양자화 유닛(303)는 비트스트림에서 제공되고 엔트로피 디코딩 유닛(301)에서 디코딩된 양자화된 비디오 블록 계수를 역 양자화(예를 들어, 디콴타이즈(de-quantize))한다. 역방향 트랜스폼 유닛(Inverse transform unit)(303)은 역방향 트랜스폼을 적용한다.
재구성 유닛(Reconstruction unit)(306)은 모션 보상 유닛(202) 또는 인트라 예측 유닛(303)에 의해 생성된 대응하는 예측 블록과 잔차 블록을 합산하여 디코딩된 블록을 형성할 수 있다. 원하는 경우, 디블로킹(deblocking) 필터를 적용하여 차단 아티팩트를 제거하기 위해 디코딩된 블록을 필터링할 수도 있다. 디코딩된 비디오 블록은 버퍼(307)에 저장되고, 이는 이후의 모션 보상/인트라 예측에 대한 레퍼런스 블록을 제공하고, 디스플레이 장치에서 재생하기 위한 디코딩된 비디오를 생성한다.
본 문서에서 "비디오 처리(video processing)"라는 용어는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축 해제(decompression)를 의미할 수 있다. 예를 들어, 비디오 압축 알고리즘은 비디오의 픽셀 표현에서 대응하는 비트스트림 표현으로 또는 그 반대로 변환하는 동안 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현 또는 코딩된 표현은, 예를 들어, 신택스에 의해 정의된 바와 같이 비트스트림 내의 다른 위치에 함께 배치되거나 확산되는 비트에 대응할 수 있다. 예를 들어, 비디오 블록은 트랜스폼되고 코딩된 오류 잔차 값의 관점에서 그리고 또한 헤더의 비트 및 비트스트림의 다른 필드를 사용하여 인코딩될 수 있다.  또한, 변환 동안 디코더는 위의 솔루션에서 설명된 바와 같이 결정에 기초하여 일부 필드가 존재하거나 없을 수 있다는 지식으로 비트스트림을 파싱할 수 있다. 유사하게, 인코더는 특정 신택스 필드가 포함되는지 여부를 결정할 수 있고, 이에 따라 코딩된 표현으로부터 신택스 필드를 포함하거나 제외함으로써 코딩된 표현을 생성할 수 있다.
도 14는 여기에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 처리 시스템(2000)을 도시하는 블록도이다. 다양한 구현은 시스템(2000)의 컴포넌트 중 일부 또는 전부를 포함할 수 있다. 시스템(2000)은 비디오 콘텐츠를 수신하기 위한 입력(2002)을 포함할 수 있다. 비디오 콘텐츠는 원시 또는 압축되지 않은 포맷, 예를 들어 8 또는 10비트 다중 컴포넌트 픽셀 값으로 수신될 수 있거나 압축 또는 인코딩된 포맷일 수 있다. 입력(2002)은 네트워크 인터페이스, 주변 버스 인터페이스, 또는 저장 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예로는 이더넷, 수동 광 네트워크(PON) 등과 같은 유선 인터페이스와 Wi-Fi 또는 셀룰러 인터페이스와 같은 무선 인터페이스가 있다.
시스템(2000)은 본 문서에 설명된 다양한 코딩 또는 인코딩 방법을 구현할 수 있는 코딩 컴포넌트(2004)를 포함할 수 있다. 코딩 컴포넌트(2004)는 비디오의 코딩된 표현을 생성하기 위해 입력(2002)으로부터 코딩 컴포넌트(2004)의 출력으로 비디오의 평균 비트레이트를 줄일 수 있다. 따라서 코딩 기술은 비디오 압축 또는 비디오 트랜스코딩 기술이라고도 한다. 코딩 컴포넌트(2004)의 출력은 컴포넌트(2006)에 의해 표현되는 바와 같이, 연결된 통신을 통해 저장되거나 전송될 수 있다. 입력(2002)에서 수신된 비디오의 저장 또는 통신된 비트스트림(또는 코딩된) 표현은 디스플레이 인터페이스(2010)로 전송되는 픽셀 값 또는 디스플레이 가능한 비디오를 생성하기 위해 컴포넌트(2008)에 의해 사용될 수 있다. 비트스트림 표현에서 사용자가 볼 수 있는 비디오를 생성하는 프로세스를 비디오 압축 해제(decompression)라고도 한다. 또한 특정 비디오 처리 작업을 "코딩" 작업 또는 툴로 지칭하지만 코딩 툴 또는 작업이 인코더에서 사용되고 코딩 결과를 되돌리는 대응하는 디코딩 툴 또는 작업은 디코더에 의해 수행된다는 점이 이해될 것이다.
주변기기 버스 인터페이스 또는 디스플레이 인터페이스의 예는 USB(Universal Serial Bus) 또는 HDMI(High Definition Multimedia Interface) 또는 Displayport 등을 포함할 수 있다. 저장 인터페이스의 예로는 SATA(Serial Advanced Technology Attachment), PCI, IDE 인터페이스 등이 있다. 본 문서에서 설명된 기술은 디지털 데이터 처리 및/또는 비디오 디스플레이를 수행할 수 있는 휴대폰, 랩톱, 스마트폰 또는 기타 장치와 같은 다양한 전자 장치에서 구현될 수 있다.
도 17은 비디오 처리의 예시적인 방법(1700)의 흐름도이다. 방법(1700)은 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환(conversion)을 수행하는 단계(1702)를 포함하고, 코딩된 표현(coded representation)은 포맷 규칙(format rule)을 따르고, 포맷 규칙은 비디오 블록(video block)에 대한 변환 스킵 모드( transform skip mode)의 적용 가능성이 비디오 블록의 코딩 조건(coding condition)에 의해 결정된다는 것을 지정하고, 포맷 규칙은 변환 스킵 모드의 적용 가능성을 나타내는 신택스 요소(syntax element)가 코딩된 표현에서 생략된다는 것을 지정하고, 변환 스킵 모드는, 코딩된 표현으로 인코딩하기 전에 적어도 일부 계수(coefficient)에 순방향 변환(forward transform)을 적용하는 것을 스킵하는 단계, 또는 디코딩 동안, 코딩된 표현으로부터 디코딩하기 전에 적어도 일부 계수에 역변환(inverse transform)을 적용하는 것을 스킵 하는 단계를 포함한다.
도 18는 비디오 처리의 예시적인 방법(1800)의 흐름도이다. 방법(1800)은 비디오의 두 개의 인접한 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 위해, 순방향 변환 또는 역변환이 변환에 사용되는지 여부에 따라 인루프 필터(in-loop filter) 또는 사후-재구성 필터(post-reconstruction filter)가 변환에 사용될지 여부를 결정하는 단계(1802) - 순방향 변환은 코딩된 표현으로 인코딩하기 전에 순방향 변환을 적어도 일부 계수에 적용하는 것을 스킵하는 단계, 또는 디코딩 동안, 코딩된 표현으로부터 디코딩하기 전에 역변환을 적어도 일부 계수에 적용하는 것을 스킵하는 단계를 포함함 -; 및 인루프 필터 또는 사후-재구성 필터의 사용에 기초하여 변환을 수행하는 단계(1804)를 포함한다.
도 19는 비디오 처리의 예시적인 방법(1900)의 흐름도이다. 방법(1900)은, 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 위해, 비디오 블록의 변환에 사용되는 블록 차동 펄스 코드 변조(BDPCM) 코딩 툴 또는 양자화된 잔차 BDPCM(QR-BDPCM) 코딩 툴로 인해 스케일링 툴을 사용하도록 결정하는 단계(1902); 및 스케일링 툴을 사용하여 변환을 수행하는 단계(1904) - 코딩된 표현의 신택스 요소는 스케일링 툴의 사용을 나타내고, 스케일링 툴의 사용은: 인코딩 동안 비디오 블록을 나타내는 적어도 일부 계수를 스케일링 하는 단계 또는 디코딩 동안 코딩된 표현으로부터 적어도 일부 계수를 디스케일링 하는 단계를 포함함 - 를 포함한다.
도 20은 비디오 처리의 예시적인 방법(2000)의 흐름도이다. 방법(2000)은, 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 위해, 비디오 블록의 변환을 위한 블록 차동 펄스 코드 변조(BDPCM) 코딩 툴 또는 양자화된 잔여 BDPCM(QR-BDPCM) 코딩 툴로 인한 스케일링 툴의 사용을 비활성화하는 것으로 결정하는 단계(2002); 및 스케일링 툴을 사용하지 않고 변환 수행하는 단계(2004) - 스케일링 툴의 사용은: 인코딩 동안 비디오 블록을 나타내는 적어도 일부 계수들을 스케일링 하거나 디코딩 동안 코딩된 표현으로부터 적어도 일부 계수들을 디스케일링 하는 단계를 포함함 - 를 포함한다.
도 21은 비디오 처리의 예시적인 방법(2100)의 흐름도이다. 방법(2100)은, 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 위해, 변환을 위해 선택된 트랜스폼 행렬(transform matrix)에 기초하여 스케일링 행렬(scaling matrice)을 선택하는 단계(2102) - 스케일링 행렬은 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용되고, 및 트랜스폼 행렬은 변환 동안 비디오 블록의 적어도 일부 계수를 트랜스폼 하는 데 사용됨 -; 및 스케일링 행렬을 사용하여 변환을 수행하는 단계(2104)를 포함한다.
도 22는 비디오 처리의 예시적인 방법(2200)의 흐름도이다. 방법(2200)은, 규칙에 따라, 이차 트랜스폼 행렬이 비디오의 비디오 블록의 일부에 적용되는지 여부에 기초하여 스케일링 행렬을 적용할지 여부를 결정하는 단계(2202) - 스케일링 행렬은 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용되고, 및 이차 트랜스폼 행렬은 변환 동안 비디오 블록의 부분의 적어도 일부 잔차 계수를 트랜스폼 하는 데 사용됨 -; 및 선택된 스케일링 행렬을 사용하여 비디오의 비디오 블록과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(2204)를 포함한다.
도 23은 비디오 처리의 예시적인 방법(2300)의 흐름도이다. 방법(2300)은, 비정사각형 모양을 갖는 비디오 블록에 대해, 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환에 사용하기 위한 스케일링 행렬을 결정하는 단계(2320) - 코딩된 표현의 신택스 요소는 스케일링 행렬을 시그널링하고, 스케일링 행렬은 변환 동안 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용됨 -; 및 스케일링 행렬에 기초하여 변환을 수행하는 단계(2304)를 포함한다.
도 24는 비디오 처리의 예시적인 방법(2400)의 흐름도이다. 방법(2400)은 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계(2420)를 포함하고, 비디오 블록은 변환 동안 스케일링 행렬이 적용되는 제1 위치 수(first number of position) 및 규칙에 기초하여 변환 동안 스케일링 행렬이 적용되지 않는 제2 위치 수(second number of position)를 포함한다.
도 25는 비디오 처리의 예시적인 방법(2500)의 흐름도이다. 방법(2500)은 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환 동안 스케일링 행렬이 적용될 것인지를 결정하는 단계(2502); 및 스케일링 행렬에 기초하여 변환을 수행하는 단계를 포함하고, 코딩된 표현은 스케일링 행렬의 요소의 수를 나타내고, 숫자는 계수 제로 아웃(zeroing out)이 비디오 블록의 계수에 적용되는지 여부에 의존한다
도 26는 비디오 처리의 예시적인 방법(2600)의 흐름도이다. 방법(2600)은 규칙에 따라 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계(2602)를 포함하고, 비디오 블록은 비디오 블록의 트랜스폼 계수(transform coefficient)에 KxL 트랜스폼 행렬(transform matrix)을 적용한 후 왼쪽 상단 MxN 트랜스폼 계수를 제외한 모든 트랜스폼 계수를 제로아웃(zeroing out) 한 후 상기 코딩된 표현으로 표현되고, 코딩된 표현은 제로아웃에 대응하는 위치에서 스케일링 행렬(scaling matrix)의 요소의 시그널링을 배제하도록 구성되고, 스케일링 행렬은 트랜스폼 계수를 스케일링 하기 위해 사용된다.
도 27는 비디오 처리의 예시적인 방법(2700)의 흐름도이다. 방법(2700)은, 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환 동안, 비디오 블록의 크기에 기초하여 단일 양자화 행렬(single quantization matrix)이 사용될 것인지 여부를 규칙에 기초하여 결정하는 단계(2702) - 크기를 갖는 모든 비디오 블록은 단일 양자화 행렬을 사용함 -; 및 양자화 행렬을 이용하여 변환을 수행하는 단계를 포함한다.
다음 세 섹션에서는 번호가 매겨진 비디오 처리 기술의 예에 대해 설명한다.
섹션 A
1. 비디오 처리 방법은: 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환(conversion)을 수행하는 단계를 포함하고, 코딩된 표현(coded representation)은 포맷 규칙(format rule)을 따르고, 포맷 규칙은 비디오 블록(video block)에 대한 변환 스킵 모드( transform skip mode)의 적용 가능성이 비디오 블록의 코딩 조건(coding condition)에 의해 결정된다는 것을 지정하고, 포맷 규칙은 변환 스킵 모드의 적용 가능성을 나타내는 신택스 요소(syntax element)가 코딩된 표현에서 생략된다는 것을 지정하고, 변환 스킵 모드는, 코딩된 표현으로 인코딩하기 전에 적어도 일부 계수(coefficient)에 순방향 변환(forward transform)을 적용하는 것을 스킵하는 단계, 또는 디코딩 동안, 코딩된 표현으로부터 디코딩하기 전에 적어도 일부 계수에 역변환(inverse transform)을 적용하는 것을 스킵 하는 단계를 포함한다.
2. 예 1의 방법에서, 트랜스폼 스킵 모드는 블록 차동 펄스 코드 변조(block differential pulse code modulation)(BDPCM) 또는 양자화된 잔차 BDPCM(quantized residual BDPCM)(QR-BDPCM)이 비디오 블록에 사용됨을 나타내는 비디오 블록의 코딩 조건으로 인해 활성화되는 것으로 결정된다.
3. 예 1의 방법에서, 트랜스폼 스킵 모드는 비블록 차동 펄스 코드 변조(non-block differential pulse code modulation)(non-BDPCM) 또는 비양자화된 잔차 BDPCM(non-quantized residual BDPCM)(non-QR-BDPCM)이 비디오 블록에 사용된다는 것을 나타내는 비디오 블록의 코딩 조건으로 인해 비활성화되는 것으로 결정된다.
4. 비디오 처리 방법은: 비디오의 두 개의 인접한 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 위해, 순방향 변환 또는 역변환이 변환에 사용되는지 여부에 따라 인루프 필터(in-loop filter) 또는 사후-재구성 필터(post-reconstruction filter)가 변환에 사용될지 여부를 결정하는 단계 - 순방향 변환은 코딩된 표현으로 인코딩하기 전에 순방향 변환을 적어도 일부 계수에 적용하는 것을 스킵하는 단계, 또는 디코딩 동안, 코딩된 표현으로부터 디코딩하기 전에 역변환을 적어도 일부 계수에 적용하는 것을 스킵하는 단계를 포함함 -; 및 인루프 필터 또는 사후-재구성 필터의 사용에 기초하여 변환을 수행하는 단계를 포함한다
5. 예 4의 방법에서, 순방향 트랜스폼 또는 역방향 트랜스폼은 트랜스폼 스킵 모드 또는 블록 차동 펄스 코드 변조(BDPCM) 또는 양자화된 잔차 BDPCM(QR-BDPCM) 또는 팔레트 모드를 포함하고, 두 개의 인접한 비디오 블록에 대한 인루프 필터 또는 사후-재구성 필터의 사용은 트랜스폼 스킵 모드 또는 블록 차동 펄스 코드 변조(BDPCM) 또는 양자화된 잔차 BDPCM(QR-BDPCM) 또는 팔레트 모드가 두 개의 인접한 비디오 블록에서 사용되는지 여부에 기초한다.
6. 예 4의 방법에서, 순방향 트랜스폼 또는 역방향 트랜스폼은 트랜스폼 스킵 모드를 포함하고, 경계 필터링 강도의 유도는 트랜스폼 스킵 모드가 두 개의 인접한 비디오 블록 중 하나 또는 둘 다를 활성화했는지 여부를 나타내는 하나 이상의 신택스 요소에 의존한다.
7. 예 4의 방법은, 순방향 트랜스폼 또는 역방향 트랜스폼은 트랜스폼 스킵 모드, 디블로킹 필터, 샘플 적응 오프셋, 적응형 루프 필터 또는 사후-재구성 필터가 트랜스폼 스킵 모드로 코딩되는 두 개의 인접한 비디오 블록에 위치된 샘플에 응답하여 비활성화된다.
8. 예 7의 방법에서, 순방향 트랜스폼 또는 역방향 트랜스폼은 트랜스폼 스킵 모드를 포함하고, 인루프 필터 및 사후-재구성 필터는 두 개의 인접한 비디오 블록에 대해 활성화되는 트랜스폼 스킵 모드에 응답하여 두 개의 인접한 비디오 블록 사이의 가장자리에 적용되지 않는다.
9. 예 7의 방법에서, 순방향 트랜스폼 또는 역방향 트랜스폼은 트랜스폼 스킵 모드를 포함하고, 루프 필터와 사후-재구성 필터는 두 개의 인접한 비디오 블록 중 하나에 대해 활성화되는 트랜스폼 스킵 모드에 응답하여 두 개의 인접한 비디오 블록 사이의 샘플에 적용되지 않는다.
10. 예 4의 방법에서, 순방향 트랜스폼 또는 역방향 트랜스폼은 트랜스폼 스킵 모드를 포함하고, 샘플은 두 개의 인접한 비디오 블록에 대해 활성화되는 트랜스폼 스킵 모드에 응답하여 인루프 필터 또는 사후-재구성 필터 이외의 필터를 사용하여 필터링된다.
11. 예 10의 방법에서, 필터는 평탄화 필터(smoother filter)를 포함한다.
12. 예 4의 방법에서, 비디오가 펄스 코드 변조(PCM) 또는 블록 차동 펄스 코드 변조(BDPCM) 또는 양자화된 잔차 BDPCM(QR-BDPCM) 또는 비디오 블록에 순방향 변환 또는 역방향 변환이 적용되지 않는 다른 유형의 모드로 코딩되는 비디오 블록을 포함하고, 인루프 필터 또는 사후-재구성 필터가 비디오 블록의 변환을 위해 사용되는지 여부는 두 개의 인접한 비디오 블록에 대해 트랜스폼 스킵 모드가 활성화될 때 두 개의 인접한 비디오 블록에 대해 동일한 방식으로 결정된다.
13. 예 4 내지 12의 방법 중 어느 하나의 방법에서, 인루프 필터는 디블로킹 필터를 포함한다.
14. 예 4 내지 12의 방법 중 어느 하나의 방법에서, 사후-재구성 필터는 이중 필터(bilateral filter) 또는 확산 필터(diffusion filter)를 포함한다.
15. 예 1 내지 14의 방법 중 어느 하나의 방법에서, 변환은 비디오 블록을 코딩된 표현으로 인코딩하는 단계를 포함한다.
16. 예 1 내지 14의 방법 중 어느 하나의 방법에서, 변환은 비디오 블록의 픽셀 값을 생성하기 위해 코딩된 표현을 디코딩하는 단계를 포함한다.
17. 예 1 내지 16의 방법 중 어느 하나 이상의 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
18. 컴퓨터 코드가 저장되어 있는 컴퓨터 프로그램에서, 프로세서에 의해 실행 시, 프로세서로 하여금 예 1 내지 17의 방법 중 어느 하나의 인용된 방법을 구현하도록 한다.
섹션 B
1. 비디오 처리 방법은: 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 위해, 비디오 블록의 코딩 모드에 기초하여 스케일링 툴(scaling tool)의 인자를 결정하는 단계; 및 스케일링 툴을 사용하여 변환을 수행하는 단계를 포함하고, 스케일링 툴의 사용은: 인코딩 동안 비디오 블록을 나타내는 적어도 일부 계수들을 스케일링 하거나 디코딩 동안 코딩된 표현으로부터 적어도 일부 계수들을 디스케일링 하는 단계를 포함한다.
2. 예 1의 방법에서, 비디오 블록의 변환에 사용되는 블록 차동 펄스 코드 변조(BDPCM) 코딩 툴 또는 양자화된 잔차 BDPCM(QR-BDPCM) 코딩 툴에 응답하여 미리 정의된 값에 기초하여 스케일링 툴의 인자를 결정하는 단계를 더 포함한다.
3. 예 2의 방법에서, BDPCM 코딩 툴 또는 QR-BDPCM 코딩 툴이 적용된 비디오 블록에 사용되는 스케일링 툴의 인자는 트랜스폼 스킵 모드가 적용된 비디오 블록에 사용되는 것과 동일하고, 트랜스폼 스킵 모드는, 코딩된 표현으로 인코딩하기 전에 순방향 트랜스폼을 적어도 일부 계수에 적용하는 것을 스킵하는 단계, 또는 디코딩 동안, 코딩된 표현으로부터 디코딩하기 전에 역방향 트랜스폼을 적어도 일부 계수에 적용하는 것을 스킵하는 단계를 포함한다.
4. 예 2의 방법에서, 변환은 변환 동안 비디오 블록의 적어도 일부 계수에 적용된 하나 이상의 트랜스폼에 기초하여 스케일링 툴의 인자를 결정하는 단계를 포함한다.
5. 예 4의 방법에서, 스케일링 툴은 비디오 블록의 적어도 일부 계수에 적용되는 하나 이상의 트랜스폼에 응답하여 변환이 허용된다.
6. 예 4의 방법에서, 스케일링 툴의 인자를 결정하는 기술은 비디오 블록의 적어도 일부 계수에 적용되는 하나 이상의 트랜스폼에 응답하여 인트라 코딩 된 블록에 사용되는 것과 동일하다.
7. 예 1의 방법에서, 스케일링 행렬의 계수는 인트라 블록 복사 모드 및 인터 모드를 사용하여 코딩되는 비디오의 비디오 블록에 대해 동일한 방식으로 결정된다.
8. 비디오 처리 방법에서, 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 위해, 비디오 블록의 변환을 위한 블록 차동 펄스 코드 변조(BDPCM) 코딩 툴 또는 양자화된 잔차 BDPCM(QR-BDPCM) 코딩 툴로 인한 스케일링 툴의 사용을 비활성화하는 것으로 결정하는 단계; 및 스케일링 툴을 사용하지 않고 변환 수행하는 단계를 포함하고, 스케일링 툴의 사용은: 인코딩 동안 비디오 블록을 나타내는 적어도 일부 계수를 스케일링 하거나 디코딩 동안 코딩된 표현으로부터 적어도 일부 계수를 디스케일링 하는 단계를 포함한다.
9. 비디오 처리 방법은: 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 위해, 변환을 위해 선택된 트랜스폼 행렬(transform matrix)에 기초하여 스케일링 행렬(scaling matrice)을 선택하는 단계 - 스케일링 행렬은 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용되고, 및 트랜스폼 행렬은 변환 동안 비디오 블록의 적어도 일부 계수를 트랜스폼 하는 데 사용됨 -; 및 스케일링 행렬을 사용하여 변환을 수행하는 단계를 포함한다.
10. 예 9의 방법에서, 스케일링 행렬을 선택하는 단계는 비디오 블록의 변환이 디폴트 트랜스폼 모드를 사용하는지 여부에 기초한다.
11. 예 10의 방법에서, 디폴트 트랜스폼 모드는 이산 코사인 트랜스폼(discrete cosine transform) 2(DCT2)를 포함한다.
12. 예 9의 방법에서, 스케일링 행렬은 여러 트랜스폼 행렬에 대해 별도로 시그널링 된다.
13. 예 9의 방법에서, 스케일링 행렬을 선택하는 단계는 비디오 블록의 모션 정보에 기초한다.
14. 예 13의 방법에서, 스케일링 행렬을 선택하는 단계는 비디오 블록의 변환이 서브블록 코딩 모드를 사용하는지 여부에 기초한다.
15. 예 14의 방법에서, 서브블록 코딩 모드는 아핀 코딩 모드를 포함한다.
16. 예 15의 방법에서, 아핀 코딩 모드에 대한 스케일링 행렬은 변환이 비아핀 코딩 모드(non-affine coding mode)를 사용하는 다른 비디오 블록에 대해 서로 다르게 시그널링 된다.
17. 예 13의 방법에서, 스케일링 행렬을 선택하는 단계는 비디오 블록이 아핀 인트라 예측 모드로 코딩되는지 여부에 기초한다.
18. 예 1 내지 17 중 어느 한 방법에서, 변환은 비디오 블록 또는 비디오 블록을 코딩된 표현으로 인코딩하는 단계를 포함한다.
19. 예 1 내지 17 중 어느 한 방법에서, 변환은 비디오 블록 또는 비디오 블록들의 픽셀 값을 생성하기 위해 코딩된 표현을 디코딩하는 단계를 포함한다.
20. 예 1 내지 19 중 어느 하나 이상에서 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
21. 예 1 내지 19 중 어느 하나 이상에서 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
22. 컴퓨터 코드가 저장되어 있는 컴퓨터 프로그램에서, 코드는, 프로세서에 의해 실행 시, 프로세서로 하여금 예 1 내지 예 19의 방법 중 어느 하나의 인용된 방법을 구현하도록 하는 컴퓨터 프로그램.
C편
1. 비디오 처리 방법은: 규칙에 따라, 이차 트랜스폼 행렬이 비디오의 비디오 블록의 일부에 적용되는지 여부에 기초하여 스케일링 행렬을 적용할지 여부를 결정하는 단계 - 스케일링 행렬은 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용되고, 및 이차 트랜스폼 행렬은 변환 동안 비디오 블록의 부분의 적어도 일부 잔차 계수를 트랜스폼 하는 데 사용됨 -; 및 선택된 스케일링 행렬을 사용하여 비디오의 비디오 블록과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다.
2. 예 1의 방법에서, 규칙은 스케일링 행렬이 KxL 트랜스폼 블록 크기를 포함하는 비디오 블록의 MxN 왼쪽 상단 부분에 적용되는 이차 트랜스폼 행렬에 응답하여 비디오 블록의 MxN 왼쪽 상단 부분에 적용된다는 것을 지정한다.
3. 예 1의 방법에서, 스케일링 행렬이 비트스트림 표현에서 시그널링 된다.
4. 예 3의 방법에서, 스케일링 행렬은, 이차 트랜스폼 행렬에 대해 또는 감소된 이차 트랜스폼 또는 회전 트랜스폼에 대해, 타일 그룹 헤더, 슬라이스 헤더, 픽처 파라미터 세트(PPS), 비디오 파라미터 세트(VPS), 시퀀스 파라미터 세트(SPS)에서 시그널링 된다.
5. 예 1의 방법에서, 비트스트림 표현은 스케일링 행렬이 적용되는지 여부를 나타내는 제1 신택스 요소를 포함하고, 비트스트림 표현은 이차 트랜스폼 행렬이 적용되는지 여부를 나타내는 제2 신택스 요소를 포함한다.
6. 예 1의 방법에서, 규칙은 스케일링 행렬이 이차 트랜스폼 행렬이 적용되지 않는 비디오 블록의 일부에만 적용되는 것을 지정한다.
7. 예 1의 방법에서, 규칙은 이차 트랜스폼 행렬이 적용되는 비디오 블록의 MxN 왼쪽 상단 부분을 제외한 일부에 스케일링 행렬이 적용되는 것을 지정한다.
8. 예 1의 방법에서, 규칙은 스케일링 행렬이 이차 트랜스폼 행렬이 적용되는 비디오 블록의 일부에만 적용되는 것을 지정한다.
9. 비디오 처리 방법은: 비정사각형 모양을 갖는 비디오 블록에 대해, 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환에 사용하기 위한 스케일링 행렬을 결정하는 단계 - 코딩된 표현의 신택스 요소는 스케일링 행렬을 시그널링하고, 스케일링 행렬은 변환 동안 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용됨 -; 및 스케일링 행렬에 기초하여 변환을 수행하는 단계를 포함한다.
10. 예 9의 방법에서, 신택스 요소가 비디오의 이전 정사각형 블록의 다른 스케일링 행렬로부터 스케일링 행렬을 예측적으로 코딩한다.
11. 비디오 처리 방법은: 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 비디오 블록은 변환 동안 스케일링 행렬이 적용되는 제1 위치 수(first number of position) 및 규칙에 따라 변환 동안 스케일링 행렬이 적용되지 않는 제2 위치 수(second number of position)를 포함한다.
12. 예 11의 방법에서, 제1 위치 수는 비디오 블록의 왼쪽 상단 M*N 위치를 포함하고, 비디오 블록은 M*N 위치 이상을 포함한다.
13. 예 11의 방법에서, 제1 위치 수는 비디오 블록의 상단 M*N 위치를 포함하고, 비디오 블록은 M*N 위치 이상을 포함한다.
14. 예 11의 방법에서, 제1 위치 수가 비디오 블록의 왼쪽 M*N 위치로 구성되고, 비디오 블록은 M*N 위치 이상을 포함한다.
15. 비디오 처리 방법은: 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환 동안 스케일링 행렬이 적용될 것인지를 결정하는 단계; 및 스케일링 행렬에 기초하여 변환을 수행하는 단계를 포함하고, 코딩된 표현은 스케일링 행렬의 요소의 수를 나타내고, 숫자는 계수 제로 아웃(zeroing out)이 비디오 블록의 계수에 적용되는지 여부에 의존한다
16. 예 15의 방법에서, 64x64 트랜스폼의 경우 변환에는 비디오 블록의 왼쪽 상단 MxN 위치를 제외한 모든 위치를 제로아웃하는 것이 포함되며, 여기서 스케일링 행렬의 요소 수는 M/8*N/8이다.
17. 비디오 처리 방법은 규칙에 따라 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 비디오 블록은 비디오 블록의 트랜스폼 계수(transform coefficient)에 KxL 트랜스폼 행렬(transform matrix)을 적용한 후 왼쪽 상단 MxN 트랜스폼 계수를 제외한 모든 트랜스폼 계수를 제로아웃(zeroing out) 한 후 상기 코딩된 표현으로 표현되고, 코딩된 표현은 제로아웃에 대응하는 위치에서 스케일링 행렬(scaling matrix)의 요소의 시그널링을 배제하도록 구성되고, 스케일링 행렬은 트랜스폼 계수를 스케일링 하기 위해 사용된다.
18. 예 17의 방법에서, 왼쪽 상단 MxN 계수의 외부 영역에 위치된 스케일링 행렬의 요소의 시그널링이 스킵 된다.
19. 예 17의 방법에서, 스케일링 행렬은 K 및/또는 L로부터 결정된 비율로 서브 샘플링에 의해 적용된다.
20. 예 19의 방법에서, 비디오 블록은 여러 서브 영역으로 분할되고, 각 서브 영역의 크기는 Uw*Uh이고, 비디오 블록의 왼쪽 상단 MxN 계수를 포함하는 영역의 각 서브 영역 내에 위치된 스케일링 행렬의 한 요소가 코딩된 표현에서 시그널링 된다.
21. 예 19의 방법에서, 코딩된 표현에 표시된 스케일링 행렬의 요소의 수는 M 및/또는 N에 기초한다.
22. 예제(19)의 방법은, KxL 트랜스폼 행렬에 대한 코딩된 표현에 표시된 스케일링 행렬의 요소의 제1 수는 제로아웃 없이 왼쪽 상단 MxN 계수에 대한 코딩된 표현에 표시된 스케일링 행렬의 요소의 제2 수와 상이하다.
23. 예 17의 방법에서, 스케일링 행렬은 M 및/또는 N으로부터 결정된 비율로 서브 샘플링에 의해 적용된다.
24. 예 23의 방법에서, 왼쪽 상단 MxN 계수를 포함하는 영역은 다중 서브 영역으로 분할되고, 각 서브 영역의 크기는 Uw*Uh이고, 각 서브 영역 내의 하나의 요소는 코딩된 표현에서 시그널링 된다.
25. 예 23의 방법에서, KxL 트랜스폼 행렬에 대한 코딩된 표현에 표시된 스케일링 행렬의 요소의 수가 제로아웃 없이 왼쪽 상단에 있는 MxN 계수에 대한 코딩된 표현에 표시된 것과 동일하다.
26. 예 17 내지 25 중 어느 한 방법에서, K = L = 64, 및 M = N = 32이다.
27. 예 20 내지 24 중 어느 한 방법에서, K = L = 64, M = N = 32, 및 Uw = Uh = 8이다.
28. 비디오 처리 방법은: 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환 동안, 비디오 블록의 크기에 기초하여 단일 양자화 행렬(single quantization matrix)이 사용될 것인지 여부를 규칙에 기초하여 결정하는 단계 - 크기를 갖는 모든 비디오 블록은 단일 양자화 행렬을 사용함 -; 및 양자화 행렬을 이용하여 변환을 수행하는 단계를 포함한다.
29. 예 28의 방법에서, 규칙은 W와 H가 정수이고, WxH보다 작은 비디오 블록의 크기에 응답하여 단일 양자화 행렬만 허용되는 것으로 지정한다.
30. 예 28의 방법에서, 규칙은 비디오 블록의 너비에 응답하여 단일 양자화 행렬만 임계값보다 작도록 허용하도록 지정한다.
31. 예 28의 방법에서, 규칙은 비디오 블록의 높이에 응답하여 단일 양자화 행렬만이 임계값보다 작도록 허용하도록 지정한다.
32. 예 28의 방법에서, 규칙은 단일 양자화 행렬이 작은 크기의 비디오 블록과 연관된 크기를 갖는 비디오 블록에 적용되지 않는다고 지정한다.
33. 예 1 내지 32 중 어느 한 방법에서, 팔레트 모드가 비디오 블록에 적용된다.
34. 예 1 내지 33 중 어느 한 방법에서, 변환은 비디오를 코딩된 표현으로 인코딩하는 단계를 포함한다.
35. 예 1 내지 33 중 어느 한 방법에서, 변환은 비디오 블록의 픽셀 값을 생성하기 위해 코딩된 표현을 디코딩하는 단계를 포함한다.
36. 예 1 내지 35 중 어느 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
37. 예 1 내지 35 중 어느 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
38. 컴퓨터 코드가 저장되어 있는 컴퓨터 프로그램 제품인 코드는 프로세서에 의해 실행될 때 프로세서가 예 1 내지 35 중 어느 하나에 인용된 방법를 구현하게 한다.
본 문서에 기재된 개시 및 기타 솔루션, 예, 실시예, 모듈 및 기능적 작업은 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있으며, 여기에는 이 문서 및 그 구조적 등가물 또는 그 중 하나 이상의 조합으로 구현될 수 있다. 개시된 및 기타 실시예는 하나 이상의 컴퓨터 프로그램 제품으로 구현될 수 있고, 즉, 컴퓨터 프로그램 지침의 하나 이상의 모듈을 컴퓨터 판독 가능한 매체에 인코딩 하여 실행하거나, 데이터 처리 장치의 작동을 제어할 수 있다. 컴퓨터가 읽을 수 있는 매체는 기계가 읽을 수 있는 저장 장치, 기계가 읽을 수 있는 스토리지 기판, 메모리 장치, 기계가 읽을 수 있는 전파 신호에 영향을 미치는 물질의 조성 또는 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치"는 예를 들어 프로그래밍 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 장치, 장치 및 컴퓨터를 포함한다. 이 장치에는 대응하는 컴퓨터 프로그램에 대한 실행 환경을 만드는 코드(예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 하나 이상의 조합)가 포함될 수 있다. 전파된 신호는 인위적으로 생성된 신호, 예를 들어, 기계에서 생성된 전기, 광학 또는 전자기 신호이고, 이는 적합한 수신기 장치로 전송하기 위한 정보를 인코딩 하기 위해 생성된다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 응용 프로그램, 스크립트 또는 코드라고도 함)은 컴파일 된 언어를 비롯한 모든 형태의 프로그래밍 언어로 작성할 수 있으며 독립 실행형 프로그램 또는 컴퓨팅 환경에서 사용하기에 적합한 모듈, 컴포넌트, 서브루틴 또는 기타 단위로 모든 형태로 배포할 수 있다. 컴퓨터 프로그램이 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 다른 프로그램 이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트), 대응하는 프로그램에 전념하는 단일 파일 또는 여러 조정된 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 일부를 저장하는 파일)에 저장할 수 있다. 컴퓨터 프로그램은 한 컴퓨터 또는 한 사이트에 위치하거나 여러 사이트에 분산되고 통신 네트워크에 의해 상호 연결된 여러 컴퓨터에서 실행하도록 배포할 수 있다.
이 문서에 설명된 프로세스 및 논리 흐름은 하나 이상의 프로그래밍 가능한 프로세서가 하나 이상의 프로그래밍 가능한 프로세서에서 수행하여 입력 데이터에서 작동하고 출력을 생성하여 기능을 수행할 수 있다. 프로세스 및 로직 흐름도 수행될 수 있으며, 장치는 특수 목적 논리 회로, 예를 들어, FPGA(필드 프로그래밍 가능한 게이트 어레이) 또는 ASIC(응용 프로그램 별 집적 회로)로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서에는 예를 들어, 일반 및 특수 목적 마이크로프로세서와 모든 종류의 디지털 컴퓨터의 하나 이상의 프로세서가 포함된다. 일반적으로 프로세서는 읽기 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다에서 지침과 데이터를 받게 된다. 컴퓨터의 필수 요소는 지침과 데이터를 저장하기 위한 하나 이상의 메모리 장치를 수행하기 위한 프로세서이다. 일반적으로 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대량 저장 장치(예를 들어, 자기, 마그네토 광학 디스크 또는 광학 디스크)에서 데이터를 수신하거나 전송하기 위해 작동적으로 결합되거나 결합된다. 그러나 컴퓨터에 이러한 장치가 필요하지 않다. 컴퓨터 프로그램 지침 및 데이터를 저장하는 데 적합한 컴퓨터 판독 가능한 미디어에는 반도체 메모리 장치, 예를 들어, EPROM, EEPROM 및 플래시 메모리 장치, 자기 디스크, 예를 들어, 내부 하드 디스크 또는 이동식 디스크; 마그네토 광학 디스크; 및 CD ROM 및 DVD-ROM 디스크를 비롯한 모든 형태의 비휘발성 메모리, 미디어 및 메모리 장치가 포함된다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보충되거나 통합될 수 있다.
이 특허 문서에는 많은 세부 사항이 포함되어 있지만, 이는 어떤 주제의 범위 나 청구 될 수 있는 것에 대한 제한으로 해석되어서는 안되며, 오히려 특정 기술의 특정 구현예에 특정할 수 있는 특징에 대한 설명으로 해석되어서는 안 된다. 이 특허 문서에 기재된 특정 특징은 별도의 실시예의 맥락에서 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 문맥상에 기재되는 다양한 특징은 또한 다중 실시예에서 개별적으로 또는 임의의 적합한 서브 조합에서 구현될 수 있다. 더욱이, 특징은 특정 조합에서 작용하는 것으로 설명될 수 있고 심지어 초기에 클레임된 것과 같이, 클레임된 조합으로부터의 하나 이상의 특징은 어떤 경우에는 조합 자체에 머물수도 있고, 클레임된 조합의 서브 조합 또는 변형으로 확장될 수도 있다.
마찬가지로, 동작은 특정 순서로 도면에 도시되어 있지만, 이러한 동작이 도시된 특정 순서 또는 순차적인 순서로 수행되거나, 모든 도시된 동작을 수행하여 바람직한 결과를 달성하도록 요구하는 것으로 이해되어서는 안 된다. 더욱이, 본 특허 문서에 기재된 실시예에서 다양한 시스템 컴포넌트의 분리는 모든 실시예에서 이러한 분리를 요구하는 것으로 이해되어서는 안 된다.
몇 가지 구현 및 예제만 설명되며 이 특허 문서에 설명되고 도시된 내용에 따라 다른 구현, 개선 및 변형을 만들 수 있다

Claims (38)

  1. 비디오 처리 방법에 있어서,
    규칙에 따라, 비디오 블록의 일부에 이차 트랜스폼 행렬이 적용되는지 여부에 기초하여 스케일링 행렬을 적용할지 여부를 결정하는 단계 -
    상기 스케일링 행렬은 상기 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용되고, 및
    상기 이차 트랜스폼 행렬은 변환 동안 상기 비디오 블록의 부분의 적어도 일부 잔차 계수를 트랜스폼 하는 데 사용됨 -; 및
    선택된 스케일링 행렬을 사용하여 상기 비디오의 비디오 블록과 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 규칙은 상기 스케일링 행렬이 KxL 트랜스폼 블록 크기를 포함하는 상기 비디오 블록의 MxN 왼쪽 상단 부분에 적용되는 상기 이차 트랜스폼 행렬에 응답하여 비디오 블록의 MxN 왼쪽 상단 부분에 적용된다는 것을 지정하는
    방법.
  3. 제1항에 있어서,
    상기 스케일링 행렬이 상기 비트스트림 표현에서 시그널링 되는
    방법.
  4. 제3항에 있어서,
    상기 스케일링 행렬은, 상기 이차 트랜스폼 행렬에 대해 또는 감소된 이차 트랜스폼 또는 회전 트랜스폼에 대해, 타일 그룹 헤더, 슬라이드 헤더, 픽처 파라미터 세트(PPS), 비디오 파라미터 세트(VPS), 시퀀스 파라미터 세트(SPS)에서 시그널링 되는
    방법.
  5. 제1항에 있어서,
    상기 비트스트림 표현은 상기 스케일링 행렬이 적용되는지 여부를 나타내는 제1 신택스 요소를 포함하고, 상기 비트스트림 표현은 상기 이차 트랜스폼 행렬이 적용되는지 여부를 나타내는 제2 신택스 요소를 포함하는
    방법.
  6. 제1항에 있어서,
    상기 규칙은 상기 스케일링 행렬이 상기 이차 트랜스폼 행렬이 적용되지 않는 상기 비디오 블록의 일부에만 적용되는 것을 지정하는
    방법.
  7. 제1항에 있어서,
    상기 규칙은 상기 이차 트랜스폼 행렬이 적용되는 상기 비디오 블록의 MxN 왼쪽 상단 부분을 제외한 일부에 상기 스케일링 행렬이 적용되는 것을 지정하는
    방법.
  8. 제1항에 있어서,
    상기 규칙은 상기 스케일링 행렬이 상기 이차 트랜스폼 행렬이 적용되는 상기 비디오 블록의 일부에만 적용되는 것을 지정하는
    방법.
  9. 비디오 처리 방법에 있어서,
    비정사각형 모양을 갖는 비디오 블록에 대해, 비디오의 상기 비디오 블록과 상기 비디오의 코딩된 표현 사이의 변환에 사용하기 위한 스케일링 행렬을 결정하는 단계 - 상기 코딩된 표현의 신택스 요소는 상기 스케일링 행렬을 신호하고, 상기 스케일링 행렬은 상기 변환 동안 상기 비디오 블록의 적어도 일부 계수를 스케일링 하는 데 사용됨 -; 및
    상기 스케일링 행렬에 기초하여 변환을 수행하는 단계를 포함하는
    방법.
  10. 제9항에 있어서,
    상기 신택스 요소가 상기 비디오의 이전 정사각형 블록의 다른 스케일링 행렬로부터 상기 스케일링 행렬을 예측적으로 코딩하는
    방법.
  11. 비디오 처리 방법에 있어서,
    비디오의 비디오 블록과 상기 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고,
    상기 비디오 블록은 상기 변환 동안 스케일링 행렬이 적용되는 제1 위치 수와 규칙에 기초하여 상기 변환 동안 상기 스케일링 행렬이 적용되지 않는 제2 위치 수를 포함하는
    방법.
  12. 제11항에 있어서,
    상기 제1 위치 수는 상기 비디오 블록의 왼쪽 상단 M*N 위치를 포함하고, 상기 비디오 블록은 M*N 위치 이상을 포함하는
    방법.
  13. 제11항에 있어서,
    상기 제1 위치 수는 상기 비디오 블록의 상단 M*N 위치를 포함하고, 상기 비디오 블록은 M*N 위치 이상을 포함하는
    방법.
  14. 제11항에 있어서,
    상기 제1 위치 수가 상기 비디오 블록의 왼쪽 M*N 위치로 구성되고, 상기 비디오 블록은 M*N 위치 이상을 포함하는
    방법.
  15. 비디오 처리 방법에 있어서,
    비디오의 비디오 블록과 상기 비디오의 코딩된 표현 사이에 변환 동안 스케일링 행렬가 적용되는 것을 결정하는 단계; 및
    상기 스케일링 행렬에 기초하여 상기 변환을 수행하는 단계를 포함하고,
    상기 코딩된 표현은 상기 스케일링 행렬의 요소의 수를 나타내고,
    상기 수는 상기 비디오 블록의 계수에 계수 제로아웃이 적용되는지 여부에 의존하는
    방법.
  16. 제15항에 있어서,
    64x64 트랜스폼의 경우, 상기 변환은 상기 비디오 블록의 왼쪽 상단 MxN 위치를 제외한 모든 위치를 제로아웃하는 단계를 포함하고, 상기 스케일링 행렬의 요소 수는 M/8*N/8인
    방법.
  17. 비디오 처리 방법에 있어서,
    규칙에 따라 비디오의 비디오 블록과 상기 비디오의 코딩된 표현 사이에 변환을 수행하는 단계를 포함하고,
    상기 비디오 블록은 상기 비디오 블록의 트랜스폼 계수에 KxL 트랜스폼 행렬을 적용한 후 왼쪽 상단 MxN 트랜스폼 계수를 제외한 모든 트랜스폼 계수를 제로아웃 한 후 상기 코딩된 표현으로 표현되고,
    상기 코딩된 표현은 제로아웃에 대응하는 위치에서 스케일링 행렬의 요소의 시그널링을 배제하도록 구성되고,
    상기 스케일링 행렬은 상기 트랜스폼 계수를 스케일링 하는 데 사용되는
    방법.
  18. 제17항에 있어서,
    상기 왼쪽 상단 MxN 계수의 외부 영역에 위치된 상기 스케일링 행렬의 요소의 시그널링이 스킵 되는
    방법.
  19. 제17항에 있어서,
    상기 스케일링 행렬은 상기 K 및/또는 상기 L로부터 결정된 비율로 서브 샘플링에 의해 적용되는
    방법.
  20. 제19항에 있어서,
    상기 비디오 블록은 여러 서브 영역으로 분할되고, 각 서브 영역의 크기는 Uw*Uh이고, 상기 비디오 블록의 왼쪽 상단 MxN 계수를 포함하는 영역의 각 서브 영역 내에 위치된 상기 스케일링 행렬의 한 요소가 상기 코딩된 표현에서 시그널링 되는
    방법.
  21. 제19항에 있어서,
    상기 코딩된 표현에 표시된 상기 스케일링 행렬의 요소의 수는 상기 M 및/또는 상기 N에 기초하는
    방법.
  22. 제19항에 있어서,
    상기 KxL 트랜스폼 행렬에 대한 상기 코딩된 표현에 표시된 상기 스케일링 행렬의 요소의 제1 수는 제로아웃 없이 상기 왼쪽 상단 MxN 계수에 대한 상기 코딩된 표현에 표시된 상기 스케일링 행렬의 요소의 제2 수와 상이한
    방법.
  23. 제17항에 있어서,
    상기 스케일링 행렬은 M 및/또는 N으로부터 결정된 비율로 서브 샘플링에 의해 적용되는
    방법.
  24. 제23항에 있어서,
    상기 왼쪽 상단 MxN 계수를 포함하는 영역은 다중 서브 영역으로 분할되고, 각 서브 영역의 크기는 Uw*Uh이고, 각 서브 영역 내의 하나의 요소는 상기 코딩된 표현에서 시그널링 되는
    방법.
  25. 제23항에 있어서,
    상기 KxL 트랜스폼 행렬에 대한 상기 코딩된 표현에 표시된 상기 스케일링 행렬의 요소의 수가 제로아웃 없이 상기 왼쪽 상단에 있는 MxN 계수에 대한 코딩된 표현에 표시된 것과 동일한
    방법.
  26. 제17항 내지 제25항 중 어느 한 항에 있어서,
    K = L = 64, 및 M = N = 32인
    방법.
  27. 제20항 내지 제24항 중 어느 한 항에 있어서,
    K = L = 64, M = N = 32, 및 Uw = Uh = 8인
    방법.
  28. 비디오 처리 방법에 있어서,
    비디오의 비디오 블록과 상기 비디오의 코딩된 표현 사이의 변환 동안, 상기 비디오 블록의 크기에 기초하여 단일 양자화 행렬이 사용될 것인지 여부를 규칙에 기초하여 결정하는 단계 - 상기 크기를 갖는 모든 비디오 블록은 상기 단일 양자화 행렬을 사용함 -; 및
    상기 양자화 행렬을 사용하여 상기 변환을 수행하는 단계를 포함하는
    방법.
  29. 제28항에 있어서,
    상기 규칙은 W와 H가 정수이고, WxH보다 작은 상기 비디오 블록의 크기에 응답하여 상기 단일 양자화 행렬만 허용되는 것으로 지정하는
    방법.
  30. 제28항에 있어서,
    상기 규칙은 상기 비디오 블록의 너비에 응답하여 상기 단일 양자화 행렬만 임계값보다 작도록 허용하도록 지정하는
    방법.
  31. 제28항에 있어서,
    상기 규칙은 상기 비디오 블록의 높이에 응답하여 상기 단일 양자화 행렬만이 임계값보다 작도록 허용하도록 지정하는
    방법.
  32. 제28항에 있어서,
    상기 규칙은 상기 단일 양자화 행렬이 작은 크기의 비디오 블록과 연관된 상기 크기를 갖는 상기 비디오 블록에 적용되지 않는다고 지정하는
    방법.
  33. 제1항 내지 제32항 중 어느 한 항에 있어서,
    팔레트 모드가 상기 비디오 블록에 적용되는
    방법.
  34. 제1항 내지 제33항 중 어느 한 항에 있어서,
    상기 변환은 상기 비디오를 상기 코딩된 표현으로 인코딩하는 단계를 포함하는
    방법.
  35. 제1항 내지 제33항 중 어느 한 항에 있어서,
    상기 변환은 상기 비디오 블록의 픽셀 값을 생성하기 위해 상기 코딩된 표현을 디코딩하는 단계를 포함하는
    방법.
  36. 제1항 내지 제35항 중 어느 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
  37. 제1항 내지 제35항 중 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
  38. 컴퓨터 코드가 저장되어 있는 컴퓨터 프로그램에 있어서,
    상기 코드는, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1항 내지 제35항 중 어느 한 항에서 인용된 방법을 구현하게 하는 컴퓨터프로그램.
KR1020227002777A 2019-08-20 2020-08-20 위치 기반 계수 스케일링 KR20220045955A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2019101555 2019-08-20
CNPCT/CN2019/101555 2019-08-20
PCT/CN2020/110229 WO2021032158A1 (en) 2019-08-20 2020-08-20 Position-based coefficients scaling

Publications (1)

Publication Number Publication Date
KR20220045955A true KR20220045955A (ko) 2022-04-13

Family

ID=74659756

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020227002779A KR20220047759A (ko) 2019-08-20 2020-08-20 디폴트 및 사용자 정의 스케일링 행렬의 사용
KR1020227002777A KR20220045955A (ko) 2019-08-20 2020-08-20 위치 기반 계수 스케일링

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020227002779A KR20220047759A (ko) 2019-08-20 2020-08-20 디폴트 및 사용자 정의 스케일링 행렬의 사용

Country Status (6)

Country Link
US (4) US11595671B2 (ko)
EP (2) EP4000258A4 (ko)
JP (3) JP7397172B2 (ko)
KR (2) KR20220047759A (ko)
CN (4) CN114270838B (ko)
WO (3) WO2021032165A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2585030A (en) * 2019-06-25 2020-12-30 British Broadcasting Corp Method of signalling in a video codec
CN114270838B (zh) 2019-08-20 2024-04-12 北京字节跳动网络技术有限公司 变换跳过模式的信令通知
EP4032289A4 (en) * 2019-09-19 2023-09-13 HFI Innovation Inc. RESIDUAL CODING SELECTION METHOD AND APPARATUS FOR LOSSLESS CODING MODE IN VIDEO CODING

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101578878A (zh) 2007-10-19 2009-11-11 松下电器产业株式会社 编码率变换装置、编码率变换方法及集成电路
US8634466B2 (en) * 2009-03-17 2014-01-21 Freescale Semiconductor, Inc. Video decoder plus a discrete cosine transform unit
US9118898B2 (en) * 2009-06-24 2015-08-25 Qualcomm Incorporated 8-point transform for media data coding
CN102137261A (zh) * 2011-04-20 2011-07-27 深圳市融创天下科技发展有限公司 一种视频编码16x16整数变换方法
GB2492333B (en) * 2011-06-27 2018-12-12 British Broadcasting Corp Video encoding and decoding using transforms
US20130170555A1 (en) * 2011-12-28 2013-07-04 Broadcom Corporation Adapting transform coefficient scaling in video/image coding to block features identified in the transform domain
US20130177084A1 (en) 2012-01-10 2013-07-11 Qualcomm Incorporated Motion vector scaling in video coding
US9866829B2 (en) 2012-01-22 2018-01-09 Qualcomm Incorporated Coding of syntax elements that correspond to coefficients of a coefficient block in video coding
EP3432582B1 (en) 2012-02-29 2020-04-01 Sony Corporation Image processing device and method
JPWO2013154028A1 (ja) 2012-04-13 2015-12-17 ソニー株式会社 画像処理装置および方法
CN111147852B (zh) * 2012-04-16 2022-05-31 韩国电子通信研究院 图像解码方法和图像编码方法
US20130294524A1 (en) * 2012-05-04 2013-11-07 Qualcomm Incorporated Transform skipping and lossless coding unification
MX341900B (es) 2012-08-29 2016-09-07 Vid Scale Inc Metodo y aparato de prediccion de vector de movimiento para codificacion de video escalable.
US9253483B2 (en) * 2012-09-25 2016-02-02 Google Technology Holdings LLC Signaling of scaling list
KR102257542B1 (ko) 2012-10-01 2021-05-31 지이 비디오 컴프레션, 엘엘씨 향상 레이어에서 변환 계수 블록들의 서브블록-기반 코딩을 이용한 스케일러블 비디오 코딩
CN103796015A (zh) * 2012-10-31 2014-05-14 朱洪波 系数数目自适应的量化参数差分编码
US20140254661A1 (en) * 2013-03-08 2014-09-11 Samsung Electronics Co., Ltd. Method and apparatus for applying secondary transforms on enhancement-layer residuals
KR101804652B1 (ko) 2013-04-02 2017-12-04 브이아이디 스케일, 인크. 스케일러블 비디오 코딩용의 향상된 시간적 움직임 벡터 예측
WO2015100522A1 (en) 2013-12-30 2015-07-09 Mediatek Singapore Pte. Ltd. Methods for inter-component residual prediction
CA2942903A1 (en) 2014-03-16 2015-09-24 Vid Scale, Inc. Method and apparatus for the signaling of lossless video coding
US9432696B2 (en) * 2014-03-17 2016-08-30 Qualcomm Incorporated Systems and methods for low complexity forward transforms using zeroed-out coefficients
BR112016021529B1 (pt) 2014-03-27 2023-02-28 Microsoft Technology Licensing, Llc Dispositivo de computação, método e meio legível por computador para ajuste de quantização/escalada e quantização/escalada inversa ao alternar áreas de cor
US10200700B2 (en) 2014-06-20 2019-02-05 Qualcomm Incorporated Cross-component prediction in video coding
EP3192261A1 (en) 2014-09-12 2017-07-19 VID SCALE, Inc. Inter-component de-correlation for video coding
US10863188B2 (en) * 2014-09-19 2020-12-08 Futurewei Technologies, Inc. Method and apparatus for non-uniform mapping for quantization matrix coefficients between different sizes of quantization matrices in image/video coding
CN107211146A (zh) 2014-11-21 2017-09-26 Vid拓展公司 一维变换模式和系数扫描顺序
WO2016123262A1 (en) 2015-01-29 2016-08-04 Vid Scale, Inc. Escape color coding for palette coding mode
CN106416254B (zh) 2015-02-06 2019-08-02 微软技术许可有限责任公司 在媒体编码期间跳过评估阶段
US10574988B2 (en) * 2015-11-19 2020-02-25 Qualcomm Incorporated System and methods for reducing slice boundary visual artifacts in display stream compression (DSC)
WO2017088093A1 (en) 2015-11-23 2017-06-01 Mediatek Singapore Pte. Ltd. On the smallest allowed block size in video coding
WO2017156669A1 (en) 2016-03-14 2017-09-21 Mediatek Singapore Pte. Ltd. Methods for motion vector storage in video coding
US10911783B2 (en) * 2016-05-12 2021-02-02 Lg Electronics Inc. Method and apparatus for processing video signal using coefficient-induced reconstruction
JP6868785B2 (ja) * 2016-05-13 2021-05-12 ソニーグループ株式会社 画像処理装置および方法
KR102393150B1 (ko) * 2016-05-13 2022-05-02 소니그룹주식회사 화상 처리 장치 및 방법
WO2018008387A1 (ja) * 2016-07-04 2018-01-11 ソニー株式会社 画像処理装置および方法
WO2018038554A1 (ko) * 2016-08-24 2018-03-01 엘지전자(주) 이차 변환을 이용한 비디오 신호의 인코딩/디코딩 방법 및 장치
US11722698B2 (en) * 2016-08-24 2023-08-08 Sony Corporation Image processing apparatus and image processing method
CN109661820A (zh) * 2016-09-13 2019-04-19 联发科技股份有限公司 用于视频编解码的多个量化矩阵集合的方法
EP3523977A4 (en) * 2016-10-05 2020-03-18 Telefonaktiebolaget LM Ericsson (publ) DERINGING FILTER FOR VIDEO CODING
MX2019008789A (es) 2017-01-31 2019-09-11 Sharp Kk Sistemas y metodos para particionar una imagen en bloques de video para codificacion de video.
US10779007B2 (en) * 2017-03-23 2020-09-15 Mediatek Inc. Transform coding of video data
CN116866586A (zh) 2017-05-17 2023-10-10 株式会社Kt 对图像解码的方法以及存储压缩视频数据的装置
CN116055721A (zh) * 2017-07-28 2023-05-02 松下电器(美国)知识产权公司 编码装置和编码方法
CA3070678A1 (en) * 2017-07-28 2019-01-31 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
KR102453811B1 (ko) * 2017-07-31 2022-10-12 에스케이텔레콤 주식회사 비-제로 계수들의 위치를 표현하는 방법 및 장치
US11736687B2 (en) * 2017-09-26 2023-08-22 Qualcomm Incorporated Adaptive GOP structure with future reference frame in random access configuration for video coding
US10812797B2 (en) * 2018-02-05 2020-10-20 Tencent America LLC Method, apparatus and medium for decoding or encoding using a low-complexity transform
EP3780608A4 (en) 2018-04-02 2021-12-01 SZ DJI Technology Co., Ltd. IMAGE PROCESSING PROCESS AND IMAGE PROCESSING DEVICE
CN112204967A (zh) * 2018-05-31 2021-01-08 夏普株式会社 用于划分视频数据的帧间预测片段中的视频块的系统和方法
US11533508B2 (en) 2018-06-08 2022-12-20 Kt Corporation Method and apparatus for encoding/decoding residual data based on a plurality of transformations
EP3811710A4 (en) 2018-06-22 2022-01-26 Nokia Technologies OY METHODS, DEVICES AND COMPUTER READABLE MEDIA FOR ALLOCATION OF MEASUREMENT RESOURCES
TWI750486B (zh) 2018-06-29 2021-12-21 大陸商北京字節跳動網絡技術有限公司 運動資訊共用的限制
WO2020003268A2 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Definition of zero unit
WO2020151764A1 (en) 2019-01-27 2020-07-30 Beijing Bytedance Network Technology Co., Ltd. Improved method for local illumination compensation
US11190794B2 (en) 2019-02-12 2021-11-30 Tencent America LLC Method and apparatus for video coding
MX2021010337A (es) 2019-02-27 2021-09-28 Huawei Tech Co Ltd Un codificador, un decodificador y metodos correspondientes.
CN113475072B (zh) 2019-03-04 2023-12-15 北京字节跳动网络技术有限公司 视频处理中滤波信息的信令
WO2020182091A1 (en) 2019-03-08 2020-09-17 Beijing Bytedance Network Technology Co., Ltd. Reshaping model in video processing
WO2020182207A1 (en) 2019-03-13 2020-09-17 Beijing Bytedance Network Technology Co., Ltd. Partitions on sub-block transform mode
WO2020211863A1 (en) 2019-04-18 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Selective use of cross component mode in video coding
CN113711613A (zh) 2019-04-19 2021-11-26 字节跳动有限公司 变换跳过模式的上下文编解码
CN117956188A (zh) 2019-04-20 2024-04-30 北京字节跳动网络技术有限公司 用于色度残差的联合编解码的语法元素的信令
TW202101987A (zh) * 2019-04-26 2021-01-01 美商松下電器(美國)知識產權公司 編碼裝置、解碼裝置、編碼方法及解碼方法
US10904532B2 (en) * 2019-05-20 2021-01-26 Samsung Display Co., Ltd. Differential prefix coding for high throughput entropy coder in display compression
US11218728B2 (en) 2019-06-04 2022-01-04 Tencent America LLC Method and apparatus for video coding
WO2021006632A1 (ko) 2019-07-08 2021-01-14 엘지전자 주식회사 스케일링 리스트 파라미터 기반 비디오 또는 영상 코딩
CN114270838B (zh) 2019-08-20 2024-04-12 北京字节跳动网络技术有限公司 变换跳过模式的信令通知

Also Published As

Publication number Publication date
US11595671B2 (en) 2023-02-28
JP7444970B2 (ja) 2024-03-06
CN117336482A (zh) 2024-01-02
WO2021032165A1 (en) 2021-02-25
US20220174298A1 (en) 2022-06-02
EP4000265A1 (en) 2022-05-25
US20220174299A1 (en) 2022-06-02
US11641478B2 (en) 2023-05-02
WO2021032162A1 (en) 2021-02-25
WO2021032158A1 (en) 2021-02-25
US20220174280A1 (en) 2022-06-02
EP4000265A4 (en) 2022-10-26
JP2022545452A (ja) 2022-10-27
US20230209072A1 (en) 2023-06-29
EP4000258A4 (en) 2023-03-15
CN114342398A (zh) 2022-04-12
US11539970B2 (en) 2022-12-27
CN114270817A (zh) 2022-04-01
JP2024020419A (ja) 2024-02-14
CN114270838B (zh) 2024-04-12
JP7397172B2 (ja) 2023-12-12
CN114270838A (zh) 2022-04-01
JP2022545451A (ja) 2022-10-27
KR20220047759A (ko) 2022-04-19
EP4000258A1 (en) 2022-05-25

Similar Documents

Publication Publication Date Title
WO2021083257A1 (en) Cross-component adaptive loop filter
KR20210152476A (ko) 코딩 된 비디오의 양자화된 잔차 차동 펄스 코드 변조 표현의 제약
WO2020228717A1 (en) Block dimension settings of transform skip mode
EP2868080A2 (en) Method and device for encoding or decoding an image
WO2021088835A1 (en) Cross-component adaptive loop filter
WO2021032165A1 (en) Usage of default and user-defined scaling matrices
KR20220047770A (ko) 변환 스킵된 블록들에 대한 잔차 코딩
WO2020228716A1 (en) Usage of transquant bypass mode for multiple color components
WO2020233664A1 (en) Sub-block based use of transform skip mode
WO2021121419A1 (en) Interaction between adaptive color transform and quantization parameters
KR20220130149A (ko) 인 루프 필터링과 비디오 슬라이스들 간의 상호작용
KR20230016047A (ko) 비디오 코딩에서의 서브픽처들 및 타일들의 사용
KR20230002433A (ko) 교차 성분 비디오 코딩 시그널링 신택스

Legal Events

Date Code Title Description
E902 Notification of reason for refusal