KR20220024716A - Single-index quantization matrix design for video encoding and decoding - Google Patents

Single-index quantization matrix design for video encoding and decoding Download PDF

Info

Publication number
KR20220024716A
KR20220024716A KR1020227001851A KR20227001851A KR20220024716A KR 20220024716 A KR20220024716 A KR 20220024716A KR 1020227001851 A KR1020227001851 A KR 1020227001851A KR 20227001851 A KR20227001851 A KR 20227001851A KR 20220024716 A KR20220024716 A KR 20220024716A
Authority
KR
South Korea
Prior art keywords
quantization matrix
block
size
identifier
prediction mode
Prior art date
Application number
KR1020227001851A
Other languages
Korean (ko)
Inventor
필리프 드 라그랑쥬
파브리쓰 르레아넥
카람 네이저
에두아르 프랑쑤와
삐에르 앙드리봉
야 천
Original Assignee
인터디지털 브이씨 홀딩스 프랑스 에스에이에스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터디지털 브이씨 홀딩스 프랑스 에스에이에스 filed Critical 인터디지털 브이씨 홀딩스 프랑스 에스에이에스
Publication of KR20220024716A publication Critical patent/KR20220024716A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/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
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/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/186Methods 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 colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

상이한 블록 크기들, 컬러 성분들 및 예측 모드들에 대응하는 상이한 양자화 행렬들이 송신될 수 있다. 양자화 행렬들의 계수들을 더 효율적으로 시그널링하기 위해, 일 구현에서, 더 큰 크기들이 먼저 열거되는 CU 크기에 관련되는 크기 식별자(sizeId), 및 루마 QM들이 먼저 열거되는 행렬 타입(matrixTypeId)에 기초하여, 통합 행렬 식별자 matrixId가 사용된다. 예를 들어, 통합 식별자는 다음과 같이 유도된다: matrixId = N * sizeId + matrixTypeId, 여기서 N은 가능한 타입 식별자들의 수, 예를 들어, N = 6이다. 이러한 단일 식별자는 예측(카피)을 사용할 때 임의의 이전에 송신된 행렬을 참조하는 것을 허용하고, 더 큰 행렬들을 먼저 송신하는 것은 예측 프로세스에서 보간을 회피한다. 블록이 인트라 블록 카피 예측 모드를 사용하는 경우, QM 식별자는 블록이 인터 예측 모드를 사용하는 것처럼 유도될 수 있다.Different quantization matrices corresponding to different block sizes, color components and prediction modes may be transmitted. To signal the coefficients of the quantization matrices more efficiently, in one implementation, based on a size identifier (sizeId) related to the CU size in which larger sizes are listed first, and a matrix type (matrixTypeId) in which luma QMs are listed first, The unified matrix identifier matrixId is used. For example, the unified identifier is derived as follows: matrixId = N * sizeId + matrixTypeId, where N is the number of possible type identifiers, for example N = 6. This single identifier allows to reference any previously transmitted matrix when using prediction (copy), and transmitting larger matrices first avoids interpolation in the prediction process. If the block uses the intra block copy prediction mode, the QM identifier can be derived as if the block uses the inter prediction mode.

Figure P1020227001851
Figure P1020227001851

Description

비디오 인코딩 및 디코딩을 위한 단일 인덱스 양자화 행렬 설계Single-index quantization matrix design for video encoding and decoding

본 실시예들은 일반적으로 비디오 인코딩 또는 디코딩에서 양자화 행렬 설계를 위한 방법 및 장치에 관한 것이다.The present embodiments generally relate to a method and apparatus for quantization matrix design in video encoding or decoding.

높은 압축 효율을 달성하기 위해, 이미지 및 비디오 코딩 방식들은 비디오 콘텐츠에서의 공간적 및 시간적 리던던시를 레버리지(leverage)하기 위해 일반적으로 예측 및 변환을 이용한다. 일반적으로, 인트라 또는 인터 예측은 인트라 또는 인터 픽처 상관을 활용하기 위해 사용되고, 이후 종종 예측 에러들 또는 예측 잔차들로서 표시되는, 원래의 블록과 예측된 블록 사이의 차이들은 변환되고, 양자화되고, 엔트로피 코딩된다. 비디오를 재구성하기 위해, 압축된 데이터는 엔트로피 코딩, 양자화, 변환, 및 예측에 대응하는 역 프로세스들에 의해 디코딩된다.To achieve high compression efficiency, image and video coding schemes generally use prediction and transformation to leverage spatial and temporal redundancy in video content. In general, intra or inter prediction is used to exploit intra or inter picture correlation, then the differences between the original block and the predicted block, often denoted as prediction errors or prediction residuals, are transformed, quantized, and entropy coded. do. To reconstruct the video, the compressed data is decoded by inverse processes corresponding to entropy coding, quantization, transform, and prediction.

일 실시예에 따르면, 비디오 디코딩 방법이 제공되고, 이 방법은 픽처 내의 디코딩될 블록의 블록 크기, 컬러 성분 및 예측 모드에 기초하여 양자화 행렬에 대한 단일 식별자를 획득하는 단계; 참조 양자화 행렬을 표시하는 신택스 엘리먼트를 디코딩하는 단계- 상기 신택스 엘리먼트는 상기 참조 양자화 행렬의 식별자와 상기 양자화 행렬에 대한 상기 획득된 식별자 사이의 차이를 지정함 -; 상기 참조 양자화 행렬에 기초하여 상기 양자화 행렬을 획득하는 단계; 상기 양자화 행렬에 응답하여 상기 블록에 대한 변환 계수들을 역양자화하는 단계; 상기 역양자화된 변환 계수들에 응답하여 상기 블록을 디코딩하는 단계를 포함한다.According to one embodiment, there is provided a video decoding method, the method comprising: obtaining a single identifier for a quantization matrix based on a block size, a color component and a prediction mode of a block to be decoded in a picture; decoding a syntax element indicating a reference quantization matrix, wherein the syntax element specifies a difference between an identifier of the reference quantization matrix and the obtained identifier for the quantization matrix; obtaining the quantization matrix based on the reference quantization matrix; dequantizing transform coefficients for the block in response to the quantization matrix; and decoding the block in response to the inverse quantized transform coefficients.

다른 실시예에 따르면, 비디오 인코딩을 위한 방법이 제공되고, 이 방법은 픽처 내의 인코딩될 블록에 액세스하는 단계; 상기 블록에 대한 양자화 행렬에 액세스하는 단계; 상기 블록의 블록 크기, 컬러 성분 및 예측 모드에 기초하여 상기 양자화 행렬에 대한 단일 식별자를 획득하는 단계; 참조 양자화 행렬을 표시하는 신택스 엘리먼트를 인코딩하는 단계- 상기 신택스 엘리먼트는 상기 참조 양자화 행렬의 식별자와 상기 양자화 행렬에 대한 상기 획득된 식별자 사이의 차이를 지정함 -; 상기 양자화 행렬에 응답하여 상기 블록에 대한 변환 계수들을 양자화하는 단계; 및 상기 양자화된 변환 계수들을 엔트로피 인코딩하는 단계를 포함한다.According to another embodiment, there is provided a method for video encoding, the method comprising: accessing a block to be encoded in a picture; accessing a quantization matrix for the block; obtaining a single identifier for the quantization matrix based on a block size, a color component, and a prediction mode of the block; encoding a syntax element indicating a reference quantization matrix, wherein the syntax element specifies a difference between an identifier of the reference quantization matrix and the obtained identifier for the quantization matrix; quantizing transform coefficients for the block in response to the quantization matrix; and entropy encoding the quantized transform coefficients.

다른 실시예에 따르면, 하나 이상의 프로세서를 포함하는 비디오 디코딩을 위한 장치가 제공되고, 상기 하나 이상의 프로세서는 픽처 내의 디코딩될 블록의 블록 크기, 컬러 성분 및 예측 모드에 기초하여 양자화 행렬에 대한 단일 식별자를 획득하고; 참조 양자화 행렬을 표시하는 신택스 엘리먼트를 디코딩하고- 상기 신택스 엘리먼트는 상기 참조 양자화 행렬의 식별자와 상기 양자화 행렬에 대한 상기 획득된 식별자 사이의 차이를 지정함 -; 상기 참조 양자화 행렬에 기초하여 상기 양자화 행렬을 획득하고; 상기 양자화 행렬에 응답하여 상기 블록에 대한 변환 계수들을 역양자화하고; 그리고 상기 역양자화된 변환 계수들에 응답하여 상기 블록을 디코딩하도록 구성된다.According to another embodiment, there is provided an apparatus for video decoding comprising one or more processors, the one or more processors generating a single identifier for a quantization matrix based on a block size, a color component and a prediction mode of a block to be decoded in a picture. obtain; decode a syntax element indicating a reference quantization matrix, wherein the syntax element specifies a difference between an identifier of the reference quantization matrix and the obtained identifier for the quantization matrix; obtain the quantization matrix based on the reference quantization matrix; inverse quantize transform coefficients for the block in response to the quantization matrix; and decode the block in response to the inverse quantized transform coefficients.

다른 실시예에 따르면, 하나 이상의 프로세서를 포함하는 비디오 인코딩을 위한 장치가 제공되고, 상기 하나 이상의 프로세서는 픽처 내의 인코딩될 블록에 액세스하고; 상기 블록에 대한 양자화 행렬에 액세스하고; 상기 블록의 블록 크기, 컬러 성분 및 예측 모드에 기초하여 상기 양자화 행렬에 대한 단일 식별자를 획득하고; 참조 양자화 행렬을 표시하는 신택스 엘리먼트를 인코딩하고- 상기 신택스 엘리먼트는 상기 참조 양자화 행렬의 식별자와 상기 양자화 행렬에 대한 상기 획득된 식별자 사이의 차이를 지정함 -; 상기 양자화 행렬에 응답하여 상기 블록에 대한 변환 계수들을 양자화하고; 그리고 상기 양자화된 변환 계수들을 엔트로피 인코딩하도록 구성된다.According to another embodiment, there is provided an apparatus for video encoding comprising one or more processors, the one or more processors accessing blocks to be encoded in a picture; access a quantization matrix for the block; obtain a single identifier for the quantization matrix based on a block size, a color component, and a prediction mode of the block; encode a syntax element indicating a reference quantization matrix, wherein the syntax element specifies a difference between an identifier of the reference quantization matrix and the obtained identifier for the quantization matrix; quantize transform coefficients for the block in response to the quantization matrix; and entropy encode the quantized transform coefficients.

다른 실시예에 따르면, 비디오 디코딩의 장치가 제공되고, 이 장치는 픽처 내의 디코딩될 블록의 블록 크기, 컬러 성분 및 예측 모드에 기초하여 양자화 행렬에 대한 단일 식별자를 획득하기 위한 수단; 참조 양자화 행렬을 표시하는 신택스 엘리먼트를 디코딩하기 위한 수단- 상기 신택스 엘리먼트는 상기 참조 양자화 행렬의 식별자와 상기 양자화 행렬에 대한 상기 획득된 식별자 사이의 차이를 지정함 -; 상기 참조 양자화 행렬에 기초하여 상기 양자화 행렬을 획득하기 위한 수단; 상기 양자화 행렬에 응답하여 상기 블록에 대한 변환 계수들을 역양자화하기 위한 수단; 및 상기 역양자화된 변환 계수들에 응답하여 상기 블록을 디코딩하기 위한 수단을 포함한다.According to another embodiment, there is provided an apparatus for video decoding, the apparatus comprising: means for obtaining a single identifier for a quantization matrix based on a block size, a color component and a prediction mode of a block to be decoded in a picture; means for decoding a syntax element indicating a reference quantization matrix, wherein the syntax element specifies a difference between an identifier of the reference quantization matrix and the obtained identifier for the quantization matrix; means for obtaining the quantization matrix based on the reference quantization matrix; means for inverse quantizing transform coefficients for the block in response to the quantization matrix; and means for decoding the block in response to the inverse quantized transform coefficients.

다른 실시예에 따르면, 비디오 인코딩의 장치가 제공되고, 이 장치는 픽처 내의 인코딩될 블록에 액세스하기 위한 수단; 상기 블록에 대한 양자화 행렬에 액세스하기 위한 수단; 상기 블록의 블록 크기, 컬러 성분 및 예측 모드에 기초하여 상기 양자화 행렬에 대한 단일 식별자를 획득하기 위한 수단; 참조 양자화 행렬을 표시하는 신택스 엘리먼트를 인코딩하기 위한 수단- 상기 신택스 엘리먼트는 상기 참조 양자화 행렬의 식별자와 상기 양자화 행렬에 대한 상기 획득된 식별자 사이의 차이를 지정함 -; 상기 양자화 행렬에 응답하여 상기 블록에 대한 변환 계수들을 양자화하기 위한 수단; 및 상기 양자화된 변환 계수들을 엔트로피 인코딩하기 위한 수단을 포함한다.According to another embodiment, there is provided an apparatus for video encoding, the apparatus comprising: means for accessing a block to be encoded in a picture; means for accessing a quantization matrix for the block; means for obtaining a single identifier for the quantization matrix based on a block size, a color component, and a prediction mode of the block; means for encoding a syntax element indicating a reference quantization matrix, wherein the syntax element specifies a difference between an identifier of the reference quantization matrix and the obtained identifier for the quantization matrix; means for quantizing transform coefficients for the block in response to the quantization matrix; and means for entropy encoding the quantized transform coefficients.

하나 이상의 실시예는 또한, 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서로 하여금 전술된 실시예들 중 임의의 것에 따른 인코딩 방법 또는 디코딩 방법을 수행하게 하는 명령어들을 포함하는 컴퓨터 프로그램을 제공한다. 본 실시예들 중 하나 이상은 또한 전술한 방법들에 따라 비디오 데이터를 인코딩 또는 디코딩하기 위한 명령어들이 저장된 컴퓨터 판독가능 저장 매체를 제공한다. 하나 이상의 실시예는 또한 전술된 방법들에 따라 생성된 비트스트림이 저장된 컴퓨터 판독가능 저장 매체를 제공한다. 하나 이상의 실시예는 전술된 방법들에 따라 생성된 비트스트림을 송신하거나 수신하기 위한 방법 및 장치를 또한 제공한다.One or more embodiments also provide a computer program comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform an encoding method or a decoding method according to any of the foregoing embodiments. One or more of the present embodiments also provide a computer-readable storage medium having stored thereon instructions for encoding or decoding video data according to the methods described above. One or more embodiments also provide a computer-readable storage medium having stored thereon a bitstream generated according to the methods described above. One or more embodiments also provide a method and apparatus for transmitting or receiving a bitstream generated according to the methods described above.

도 1은 본 실시예들의 양태들이 구현될 수 있는 시스템의 블록도를 예시한다.
도 2는 비디오 인코더의 일 실시예의 블록도를 예시한다.
도 3은 비디오 디코더의 일 실시예의 블록도를 예시한다.
도 4는 VVC 초안 5에서 32보다 큰 블록 크기들에 대해 변환 계수들이 제로로 추론되는 것을 예시한다.
도 5는 JCTVC-H0314에 설명된 고정 예측 트리를 예시한다.
도 6은 일 실시예에 따른, 더 큰 크기(데시메이션)로부터의 예측을 예시한다.
도 7은 일 실시예에 따른, 직사각형 블록에 대한 더 큰 크기 및 데시메이션으로부터의 예측의 조합을 예시한다.
도 8은 일 실시예에 따른, 크로마에 대한 직사각형 블록에 대한 QM 유도 프로세스를 예시한다.
도 9는 일 실시예에 따른, 크로마에 대한 직사각형 블록에 대한 QM 유도 프로세스(4:2:2 포맷에 대한 적응)를 예시한다.
도 10은 크로마에 대한 직사각형 블록에 대한 QM 유도 프로세스(4:4:4 포맷에 대한 적응)를 예시한다.
도 11은 일 실시예에 따른, 스케일링 리스트 데이터 신택스 구조를 파싱하기 위한 흐름도를 예시한다.
도 12는 일 실시예에 따른, 스케일링 리스트 데이터 신택스 구조를 인코딩하기 위한 흐름도를 예시한다.
도 13은 일 실시예에 따른, QM 유도 프로세스에 대한 흐름도를 예시한다.
1 illustrates a block diagram of a system in which aspects of the present embodiments may be implemented.
2 illustrates a block diagram of one embodiment of a video encoder.
3 illustrates a block diagram of one embodiment of a video decoder.
4 illustrates that transform coefficients are inferred to be zero for block sizes greater than 32 in VVC Draft 5;
5 illustrates a fixed prediction tree described in JCTVC-H0314.
6 illustrates prediction from a larger magnitude (decimation), according to one embodiment.
7 illustrates a combination of prediction from a larger size and decimation for a rectangular block, according to one embodiment.
8 illustrates a QM derivation process for a rectangular block for chroma, according to one embodiment.
9 illustrates a QM derivation process (adaptation to 4:2:2 format) for a rectangular block for chroma, according to one embodiment.
10 illustrates a QM derivation process (adaptation to 4:4:4 format) for a rectangular block for chroma.
11 illustrates a flowchart for parsing a scaling list data syntax structure, according to an embodiment.
12 illustrates a flow diagram for encoding a scaling list data syntax structure, according to an embodiment.
13 illustrates a flow diagram for a QM derivation process, according to one embodiment.

도 1은 다양한 양태들 및 실시예들이 구현될 수 있는 시스템의 예의 블록도를 예시한다. 시스템(100)은 후술되는 다양한 컴포넌트들을 포함하는 디바이스로서 구현될 수 있고, 본 출원에 설명되는 양태들 중 하나 이상을 수행하도록 구성된다. 이러한 디바이스들의 예들은 개인용 컴퓨터들, 랩톱 컴퓨터들, 스마트폰들, 태블릿 컴퓨터들, 디지털 멀티미디어 셋톱 박스들, 디지털 텔레비전 수신기들, 개인용 비디오 레코딩 시스템들, 접속된 가전 제품들, 및 서버들과 같은 다양한 전자 디바이스들을 포함하지만, 이에 제한되지 않는다. 시스템(100)의 엘리먼트들은, 단독으로 또는 조합하여, 단일의 집적 회로, 복수의 IC, 및/또는 개별 컴포넌트들로 구현될 수 있다. 예를 들어, 적어도 하나의 실시예에서, 시스템(100)의 처리 및 인코더/디코더 엘리먼트들은 복수의 IC 및/또는 개별 컴포넌트들에 걸쳐 분산된다. 다양한 실시예들에서, 시스템(100)은, 예를 들어, 통신 버스를 통해 또는 전용 입력 및/또는 출력 포트들을 통해, 다른 시스템들, 또는 다른 전자 디바이스들에 통신 가능하게 결합된다. 다양한 실시예들에서, 시스템(100)은 본 출원에서 설명된 양태들 중 하나 이상을 구현하도록 구성된다.1 illustrates a block diagram of an example of a system in which various aspects and embodiments may be implemented. System 100 may be implemented as a device including various components described below and configured to perform one or more of the aspects described herein. Examples of such devices include personal computers, laptop computers, smartphones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected appliances, and servers, such as various including, but not limited to, electronic devices. Elements of system 100, alone or in combination, may be implemented as a single integrated circuit, multiple ICs, and/or discrete components. For example, in at least one embodiment, the processing and encoder/decoder elements of system 100 are distributed across a plurality of ICs and/or discrete components. In various embodiments, system 100 is communicatively coupled to other systems, or other electronic devices, for example, via a communications bus or via dedicated input and/or output ports. In various embodiments, system 100 is configured to implement one or more of the aspects described herein.

시스템(100)은, 예를 들어, 본 출원에서 설명된 다양한 양태들을 구현하기 위해 그 안에 로딩된 명령어들을 실행하도록 구성된 적어도 하나의 프로세서(110)를 포함한다. 프로세서(110)는 내장 메모리, 입출력 인터페이스, 및 본 기술 분야에 공지된 바와 같은 다양한 다른 회로들을 포함할 수 있다. 시스템(100)은 적어도 하나의 메모리(120)(예를 들어, 휘발성 메모리 디바이스 및/또는 비휘발성 메모리 디바이스)를 포함한다. 시스템(100)은 저장 디바이스(140)를 포함하고, 이는 EEPROM, ROM, PROM, RAM, DRAM, SRAM, 플래시, 자기 디스크 드라이브, 및/또는 광 디스크 드라이브를 포함하지만 이에 제한되지 않는 비휘발성 메모리 및/또는 휘발성 메모리를 포함할 수 있다. 저장 디바이스(140)는 비제한적인 예들로서, 내부 저장 디바이스, 부착된 저장 디바이스, 및/또는 네트워크 액세스가능한 저장 디바이스를 포함할 수 있다.System 100 includes, for example, at least one processor 110 configured to execute instructions loaded therein to implement various aspects described herein. Processor 110 may include embedded memory, input/output interfaces, and various other circuits as known in the art. System 100 includes at least one memory 120 (eg, a volatile memory device and/or a non-volatile memory device). System 100 includes storage device 140, which includes non-volatile memory and / or may include volatile memory. Storage device 140 may include, as non-limiting examples, an internal storage device, an attached storage device, and/or a network accessible storage device.

시스템(100)은, 예를 들어, 인코딩된 비디오 또는 디코딩된 비디오를 제공하기 위해 데이터를 처리하도록 구성된 인코더/디코더 모듈(130)을 포함하고, 인코더/디코더 모듈(130)은 그 자신의 프로세서 및 메모리를 포함할 수 있다. 인코더/디코더 모듈(130)은 인코딩 및/또는 디코딩 기능들을 수행하기 위해 디바이스에 포함될 수 있는 모듈(들)을 나타낸다. 공지된 바와 같이, 디바이스는 인코딩 및 디코딩 모듈들 중 하나 또는 양자 모두를 포함할 수 있다. 또한, 인코더/디코더 모듈(130)은 시스템(100)의 개별 엘리먼트로서 구현될 수 있거나, 또는 본 기술 분야의 통상의 기술자에게 공지된 바와 같이 하드웨어 및 소프트웨어의 조합으로서 프로세서(110) 내에 통합될 수 있다.System 100 includes, for example, an encoder/decoder module 130 configured to process data to provide encoded video or decoded video, wherein the encoder/decoder module 130 includes its own processor and It may contain memory. Encoder/decoder module 130 represents a module(s) that may be included in a device to perform encoding and/or decoding functions. As is known, a device may include one or both of encoding and decoding modules. Further, the encoder/decoder module 130 may be implemented as a separate element of the system 100 , or may be integrated into the processor 110 as a combination of hardware and software as known to those skilled in the art. there is.

본 출원에서 설명된 다양한 양태들을 수행하기 위해 프로세서(110) 또는 인코더/디코더(130) 상에 로딩될 프로그램 코드는 저장 디바이스(140)에 저장될 수 있고, 후속하여 프로세서(110)에 의한 실행을 위해 메모리(120) 상에 로딩될 수 있다. 다양한 실시예들에 따르면, 프로세서(110), 메모리(120), 저장 디바이스(140), 및 인코더/디코더 모듈(130) 중 하나 이상은 본 출원에서 설명된 프로세스들의 수행 동안 다양한 항목들 중 하나 이상을 저장할 수 있다. 이러한 저장된 항목들은 입력 비디오, 디코딩된 비디오 또는 디코딩된 비디오의 부분들, 비트스트림, 행렬들, 변수들, 및 수학식들, 공식들, 연산들 및 연산 로직의 처리로부터의 중간 또는 최종 결과들을 포함할 수 있지만, 이에 제한되지 않는다.Program code to be loaded onto processor 110 or encoder/decoder 130 to perform various aspects described herein may be stored in storage device 140 and subsequently executed by processor 110 . may be loaded onto the memory 120 for According to various embodiments, one or more of the processor 110 , the memory 120 , the storage device 140 , and the encoder/decoder module 130 is one or more of the various items during performance of the processes described herein. can be saved. These stored items include input video, decoded video or portions of decoded video, bitstream, matrices, variables, and intermediate or final results from processing of equations, formulas, operations and arithmetic logic. can, but is not limited to.

여러 실시예들에서, 프로세서(110) 및/또는 인코더/디코더 모듈(130) 내부의 메모리는 명령어들을 저장하고 인코딩 또는 디코딩 동안 필요한 처리를 위한 작업 메모리를 제공하기 위해 사용된다. 그러나, 다른 실시예들에서, 처리 디바이스 외부의 메모리(예를 들어, 처리 디바이스는 프로세서(110) 또는 인코더/디코더 모듈(130) 중 어느 하나일 수 있음)는 이러한 기능들 중 하나 이상을 위해 사용된다. 외부 메모리는 메모리(120) 및/또는 저장 디바이스(140), 예를 들어, 동적 휘발성 메모리 및/또는 비휘발성 플래시 메모리일 수 있다. 여러 실시예들에서, 외부 비휘발성 플래시 메모리는 텔레비전의 운영 체제를 저장하는 데 사용된다. 적어도 하나의 실시예에서, RAM과 같은 고속 외부 동적 휘발성 메모리는 MPEG-2, HEVC 또는 VVC와 같은 비디오 코딩 및 디코딩 동작들을 위한 작업 메모리로서 사용된다.In various embodiments, memory internal to processor 110 and/or encoder/decoder module 130 is used to store instructions and to provide working memory for necessary processing during encoding or decoding. However, in other embodiments, memory external to the processing device (eg, the processing device may be either the processor 110 or the encoder/decoder module 130 ) is used for one or more of these functions. do. The external memory may be memory 120 and/or storage device 140 , such as dynamic volatile memory and/or non-volatile flash memory. In various embodiments, an external non-volatile flash memory is used to store the television's operating system. In at least one embodiment, a high-speed external dynamic volatile memory such as RAM is used as working memory for video coding and decoding operations such as MPEG-2, HEVC or VVC.

시스템(100)의 엘리먼트들에 대한 입력은 블록(105)에 표시한 바와 같이 다양한 입력 디바이스들을 통해 제공될 수 있다. 이러한 입력 디바이스들은 (i) 예를 들어, 브로드캐스터에 의해 공중을 통해 송신되는 RF 신호를 수신하는 RF 부분, (ii) 복합 입력 단자, (iii) USB 입력 단자, 및/또는 (iv) HDMI 입력 단자를 포함하지만, 이에 제한되지 않는다.Input to elements of system 100 may be provided through various input devices, as indicated by block 105 . These input devices include (i) an RF portion that receives an RF signal transmitted over the air, for example by a broadcaster, (ii) a composite input terminal, (iii) a USB input terminal, and/or (iv) an HDMI input terminals, but are not limited thereto.

다양한 실시예들에서, 블록(105)의 입력 디바이스들은 본 기술 분야에 공지된 바와 같은 연관된 각각의 입력 처리 엘리먼트들을 갖는다. 예를 들어, RF 부분은 (i) 원하는 주파수를 선택하는 것(또한 신호를 선택하는 것, 또는 주파수들의 대역으로 신호를 대역 제한하는 것으로 지칭됨), (ii) 선택된 신호를 하향 변환하는 것, (iii) 주파수들의 더 좁은 대역으로 다시 대역 제한하여 특정 실시예들에서 채널로 지칭될 수 있는 (예를 들어) 신호 주파수 대역을 선택하는 것, (iv) 하향 변환된 및 대역 제한된 신호를 복조하는 것, (v) 에러 정정을 수행하는 것, 및 (vi) 원하는 데이터 패킷들의 스트림을 선택하기 위해 역다중화하는 것에 적합한 엘리먼트들과 연관될 수 있다. 다양한 실시예들의 RF 부분은 이러한 기능들을 수행하기 위한 하나 이상의 엘리먼트, 예를 들어, 주파수 선택기들, 신호 선택기들, 대역 제한기들, 채널 선택기들, 필터들, 다운컨버터들, 복조기들, 에러 정정기들 및 디멀티플렉서들을 포함한다. RF 부분은, 예를 들어, 수신된 신호를 더 낮은 주파수(예를 들어, 중간 주파수 또는 근 기저대역 주파수)로 또는 기저대역으로 하향 변환하는 것을 포함하는, 다양한 이러한 기능들을 수행하는 튜너를 포함할 수 있다. 하나의 셋톱 박스 실시예에서, RF 부분 및 그 연관된 입력 처리 엘리먼트는 유선(예를 들어, 케이블) 매체를 통해 송신되는 RF 신호를 수신하고, 필터링, 하향 변환, 및 원하는 주파수 대역으로의 다시 필터링에 의해 주파수 선택을 수행한다. 다양한 실시예들은 전술한(및 다른) 엘리먼트들의 순서를 재배열하고, 이러한 엘리먼트들 중 일부를 제거하고/하거나, 유사하거나 상이한 기능들을 수행하는 다른 엘리먼트들을 추가한다. 엘리먼트들을 추가하는 것은 기존 엘리먼트들 사이에 엘리먼트들을 삽입하는 것, 예를 들어, 증폭기들 및 아날로그-디지털 컨버터를 삽입하는 것을 포함할 수 있다. 다양한 실시예들에서, RF 부분은 안테나를 포함한다.In various embodiments, the input devices of block 105 have associated respective input processing elements as is known in the art. For example, the RF portion may include (i) selecting a desired frequency (also referred to as selecting a signal, or band limiting a signal to a band of frequencies), (ii) downconverting the selected signal; (iii) selecting a (eg) signal frequency band, which may be referred to as a channel in certain embodiments by bandlimiting back to a narrower band of frequencies, (iv) demodulating the down-converted and band-limited signal; elements suitable for (v) performing error correction, and (vi) demultiplexing to select a desired stream of data packets. The RF portion of various embodiments may contain one or more elements for performing these functions, eg, frequency selectors, signal selectors, band limiters, channel selectors, filters, downconverters, demodulators, error corrector. and demultiplexers. The RF portion may include a tuner that performs various such functions, including, for example, downconverting the received signal to a lower frequency (eg, an intermediate frequency or near baseband frequency) or to baseband. can In one set top box embodiment, the RF portion and its associated input processing element receive an RF signal transmitted over a wired (eg, cable) medium, and perform filtering, downconversion, and filtering back to a desired frequency band. frequency selection by Various embodiments rearrange the order of the foregoing (and other) elements, remove some of these elements, and/or add other elements that perform similar or different functions. Adding elements may include inserting elements between existing elements, eg, inserting amplifiers and analog-to-digital converters. In various embodiments, the RF portion includes an antenna.

또한, USB 및/또는 HDMI 단자들은 시스템(100)을 USB 및/또는 HDMI 접속들을 통해 다른 전자 디바이스들에 접속하기 위한 각각의 인터페이스 프로세서들을 포함할 수 있다. 입력 처리의 다양한 양태, 예를 들어, 리드-솔로몬(Reed-Solomon) 에러 정정이, 예를 들어, 별도의 입력 처리 IC 내에서 또는 필요에 따라 프로세서(110) 내에서 구현될 수 있다는 것을 이해해야 한다. 유사하게, USB 또는 HDMI 인터페이스 처리의 양태들은 필요에 따라 별개의 인터페이스 IC들 내에서 또는 프로세서(110) 내에서 구현될 수 있다. 복조된, 에러 정정된, 및 디멀티플렉싱된 스트림은, 예를 들어, 프로세서(110), 및 메모리 및 저장 엘리먼트들과 조합하여 동작하는 인코더/디코더(130)를 포함하는 다양한 처리 엘리먼트들에 제공되어, 출력 디바이스 상의 프리젠테이션을 위해 필요에 따라 데이터스트림을 처리한다.Additionally, the USB and/or HDMI terminals may include respective interface processors for connecting the system 100 to other electronic devices via USB and/or HDMI connections. It should be understood that various aspects of input processing, such as Reed-Solomon error correction, may be implemented, for example, within a separate input processing IC or within processor 110 as desired. . Similarly, aspects of USB or HDMI interface processing may be implemented within processor 110 or within separate interface ICs as desired. The demodulated, error corrected, and demultiplexed stream is provided to various processing elements including, for example, a processor 110 and an encoder/decoder 130 operating in combination with memory and storage elements. , process the datastream as needed for presentation on the output device.

시스템(100)의 다양한 엘리먼트들이 통합된 하우징 내에 제공될 수 있다. 통합된 하우징 내에서, 다양한 엘리먼트들은 적합한 접속 배열(115), 예를 들어, I2C 버스, 배선, 및 인쇄 회로 기판들을 포함하는, 본 기술 분야에 공지된 것과 같은 내부 버스를 사용하여 상호접속되고 그들 사이에 데이터를 송신할 수 있다.The various elements of system 100 may be provided within an integrated housing. Within the integrated housing, the various elements are interconnected and connected using a suitable connection arrangement 115 , for example, an internal bus such as is known in the art, including an I2C bus, wiring, and printed circuit boards. Data can be transmitted between

시스템(100)은 통신 채널(190)을 통해 다른 디바이스들과의 통신을 가능하게 하는 통신 인터페이스(150)를 포함한다. 통신 인터페이스(150)는 통신 채널(190)을 통해 데이터를 송신 및 수신하도록 구성된 트랜시버를 포함할 수 있지만, 이에 제한되지 않는다. 통신 인터페이스(150)는 모뎀 또는 네트워크 카드를 포함할 수 있지만, 이에 제한되지 않으며, 통신 채널(190)은, 예를 들어, 유선 및/또는 무선 매체 내에서 구현될 수 있다.The system 100 includes a communication interface 150 that enables communication with other devices via a communication channel 190 . Communication interface 150 may include, but is not limited to, a transceiver configured to transmit and receive data over communication channel 190 . Communication interface 150 may include, but is not limited to, a modem or network card, and communication channel 190 may be implemented within, for example, wired and/or wireless media.

데이터는, 다양한 실시예들에서, IEEE 802.11과 같은 Wi-Fi 네트워크를 사용하여 시스템(100)에 스트리밍된다. 이러한 실시예들의 Wi-Fi 신호는 Wi-Fi 통신을 위해 적응되는 통신 인터페이스(150) 및 통신 채널(190)을 통해 수신된다. 이러한 실시예들의 통신 채널(190)은 스트리밍 애플리케이션들 및 다른 오버-더-톱(over-the-top) 통신들을 허용하기 위해 인터넷을 포함하는 외부 네트워크들에 대한 액세스를 제공하는 액세스 포인트 또는 라우터에 통상적으로 접속된다. 다른 실시예들은 입력 블록(105)의 HDMI 접속을 통해 데이터를 전달하는 셋톱 박스를 사용하여 스트리밍된 데이터를 시스템(100)에 제공한다. 또 다른 실시예들은 입력 블록(105)의 RF 접속을 사용하여 스트리밍된 데이터를 시스템(100)에 제공한다.Data is streamed to system 100 using a Wi-Fi network, such as IEEE 802.11, in various embodiments. The Wi-Fi signal of these embodiments is received via a communication interface 150 and communication channel 190 adapted for Wi-Fi communication. The communication channel 190 of these embodiments is to an access point or router that provides access to external networks, including the Internet, to allow streaming applications and other over-the-top communications. normally connected. Other embodiments provide the streamed data to the system 100 using a set top box that delivers the data via the HDMI connection of the input block 105 . Still other embodiments use the RF connection of the input block 105 to provide streamed data to the system 100 .

시스템(100)은 디스플레이(165), 스피커들(175), 및 다른 주변 디바이스들(185)을 포함하는 다양한 출력 디바이스들에 출력 신호를 제공할 수 있다. 다른 주변 디바이스들(185)은, 실시예들의 다양한 예들에서, 독립형 DVR, 디스크 플레이어, 스테레오 시스템, 조명 시스템, 및 시스템(100)의 출력에 기초한 기능을 제공하는 다른 디바이스들 중 하나 이상을 포함한다. 다양한 실시예들에서, 제어 신호들은 AV.Link, CEC, 또는 사용자 개입을 이용하거나 이용하지 않고서 디바이스 대 디바이스 제어를 가능하게 하는 다른 통신 프로토콜들과 같은 시그널링을 이용하여 시스템(100)과 디스플레이(165), 스피커들(175), 또는 다른 주변 디바이스들(185) 사이에서 통신된다. 출력 디바이스들은 각각의 인터페이스들(160, 170, 180)을 통한 전용 접속들을 통해 시스템(100)에 통신 가능하게 결합될 수 있다. 대안적으로, 출력 디바이스들은 통신 인터페이스(150)를 통해 통신 채널(190)을 사용하여 시스템(100)에 접속될 수 있다. 디스플레이(165) 및 스피커들(175)은 전자 디바이스, 예를 들어, 텔레비전 내의 시스템(100)의 다른 컴포넌트들과 단일 유닛으로 통합될 수 있다. 다양한 실시예들에서, 디스플레이 인터페이스(160)는 디스플레이 드라이버, 예를 들어, 타이밍 제어기(T Con) 칩을 포함한다.System 100 may provide an output signal to various output devices including display 165 , speakers 175 , and other peripheral devices 185 . Other peripheral devices 185 include, in various examples of embodiments, one or more of a standalone DVR, a disk player, a stereo system, a lighting system, and other devices that provide functionality based on the output of the system 100 . . In various embodiments, control signals are communicated to system 100 and display 165 using signaling such as AV.Link, CEC, or other communication protocols that enable device-to-device control with or without user intervention. ), speakers 175 , or other peripheral devices 185 . Output devices may be communicatively coupled to system 100 via dedicated connections via respective interfaces 160 , 170 , 180 . Alternatively, the output devices may be connected to the system 100 using the communication channel 190 via the communication interface 150 . Display 165 and speakers 175 may be integrated into a single unit with other components of system 100 in an electronic device, eg, a television. In various embodiments, display interface 160 includes a display driver, eg, a timing controller (T Con) chip.

예를 들어, 입력(105)의 RF 부분이 별개의 셋톱 박스의 일부인 경우, 디스플레이(165) 및 스피커(175)는 대안적으로 다른 컴포넌트들 중 하나 이상과 분리될 수 있다. 디스플레이(165) 및 스피커들(175)이 외부 컴포넌트들인 다양한 실시예들에서, 출력 신호는, 예를 들어, HDMI 포트들, USB 포트들 또는 COMP 출력들을 포함하는 전용 출력 접속들을 통해 제공될 수 있다.For example, if the RF portion of input 105 is part of a separate set-top box, display 165 and speaker 175 may alternatively be separate from one or more of the other components. In various embodiments where display 165 and speakers 175 are external components, the output signal may be provided via dedicated output connections including, for example, HDMI ports, USB ports, or COMP outputs. .

도 2는 고효율 비디오 코딩(HEVC) 인코더와 같은 예시적인 비디오 인코더(200)를 예시한다. 도 2는 또한 HEVC 표준에 대한 개선들이 이루어지는 인코더 또는 JVET(Joint Video Exploration Team)에 의해 개발 중인 VVC(Versatile Video Coding) 인코더와 같은, HEVC와 유사한 기술들을 이용하는 인코더를 예시할 수 있다.2 illustrates an example video encoder 200 , such as a High Efficiency Video Coding (HEVC) encoder. 2 may also illustrate an encoder using techniques similar to HEVC, such as an encoder for which improvements to the HEVC standard are made or a Versatile Video Coding (VVC) encoder being developed by the Joint Video Exploration Team (JVET).

본 출원에서, 용어들 "재구성된" 및 "디코딩된"은 교환 가능하게 사용될 수 있고, 용어들 "인코딩된" 또는 "코딩된"은 교환 가능하게 사용될 수 있고, 용어들 "이미지", "픽처" 및 "프레임"은 교환 가능하게 사용될 수 있다. 반드시 그런 것은 아니지만 일반적으로, "재구성된"이라는 용어는 인코더 측에서 사용되는 한편, "디코딩된"은 디코더 측에서 사용된다.In this application, the terms “reconstructed” and “decoded” may be used interchangeably, the terms “encoded” or “coded” may be used interchangeably, and the terms “image”, “picture” " and "frame" may be used interchangeably. Generally, though not necessarily, the term "reconstructed" is used at the encoder side, while "decoded" is used at the decoder side.

인코딩되기 전에, 비디오 시퀀스는 프리-인코딩 처리(201), 예를 들어, 입력 컬러 픽처에 컬러 변환(예를 들어, RGB 4:4:4로부터 YCbCr 4:2:0으로의 변환)을 적용하는 것, 또는 (예를 들어, 컬러 성분들 중 하나의 히스토그램 등화를 사용하여) 압축에 더 탄력적인 신호 분포를 얻기 위해 입력 픽처 성분들의 리맵핑을 수행하는 것을 거칠 수 있다. 메타데이터는 전처리와 연관되고, 비트스트림에 첨부될 수 있다.Before being encoded, the video sequence is subjected to pre-encoding processing 201 , eg, color transformation (eg, RGB 4:4:4 to YCbCr 4:2:0 transformation) to the input color picture. or performing remapping of the input picture components to obtain a signal distribution that is more resilient to compression (eg, using a histogram equalization of one of the color components). Metadata is associated with preprocessing and can be attached to the bitstream.

인코더(200)에서, 픽처는 후술되는 바와 같이 인코더 엘리먼트들에 의해 인코딩된다. 인코딩될 픽처는 파티셔닝되고(202), 예를 들어, CU들의 유닛들로 처리된다. 각각의 유닛은, 예를 들어, 인트라 또는 인터 모드 중 어느 하나를 사용하여 인코딩된다. 유닛이 인트라 모드에서 인코딩될 때, 이는 인트라 예측(260)을 수행한다. 인터 모드에서, 모션 추정(275) 및 보상(270)이 수행된다. 인코더는 유닛을 인코딩하기 위해 인트라 모드 또는 인터 모드 중 어느 것을 사용할지 여부를 결정하고(205), 예를 들어, 예측 모드 플래그에 의해 인트라/인터 결정을 표시한다. 예측 잔차들은, 예를 들어, 원래의 이미지 블록으로부터 예측된 블록을 감산(210)함으로써 계산된다.In the encoder 200 , the picture is encoded by encoder elements as described below. The picture to be encoded is partitioned 202 and processed, for example, into units of CUs. Each unit is encoded using, for example, either intra or inter mode. When a unit is encoded in intra mode, it performs intra prediction 260 . In inter mode, motion estimation 275 and compensation 270 are performed. The encoder determines whether to use either intra mode or inter mode to encode the unit ( 205 ), and indicates the intra/inter decision by, for example, a prediction mode flag. Prediction residuals are calculated, for example, by subtracting 210 the predicted block from the original image block.

예측 잔차들은 그 후 변환되고(225) 양자화된다(230). 양자화된 변환 계수들뿐만 아니라, 모션 벡터들 및 다른 신택스 엘리먼트들은 비트스트림을 출력하기 위하여 엔트로피 코딩(245)된다. 인코더는 변환을 스킵하고 비변환 잔차 신호에 직접 양자화를 적용할 수 있다. 인코더는 변환 및 양자화 양자 모두를 우회할 수 있으며, 즉 잔차는 변환 또는 양자화 프로세스들의 적용 없이 직접 코딩된다.The prediction residuals are then transformed (225) and quantized (230). The quantized transform coefficients, as well as motion vectors and other syntax elements, are entropy coded 245 to output the bitstream. The encoder can skip the transform and apply the quantization directly to the untransformed residual signal. The encoder can bypass both transform and quantization, ie the residual is coded directly without applying transform or quantization processes.

인코더는 인코딩된 블록을 디코딩하여 추가 예측을 위한 참조를 제공한다. 양자화된 변환 계수들은 예측 잔차들을 디코딩하기 위해 역양자화되고(240) 역변환된다(250). 디코딩된 예측 잔차들과 예측된 블록을 조합하면(255), 이미지 블록이 재구성된다. 인-루프 필터들(265)은, 예를 들어, 인코딩 아티팩트들을 감소시키기 위한 디블로킹/SAO(Sample Adaptive Offset) 필터링을 수행하기 위해 재구성된 픽처에 적용된다. 필터링된 이미지는 참조 픽처 버퍼(280)에 저장된다.The encoder decodes the encoded block to provide a reference for further prediction. The quantized transform coefficients are inverse quantized ( 240 ) and inverse transformed ( 250 ) to decode the prediction residuals. Combining the decoded prediction residuals with the predicted block (255), the image block is reconstructed. In-loop filters 265 are applied to the reconstructed picture to, for example, perform deblocking/Sample Adaptive Offset (SAO) filtering to reduce encoding artifacts. The filtered image is stored in the reference picture buffer 280 .

도 3은 예시적인 비디오 디코더(300)의 블록도를 예시한다. 디코더(300)에서, 비트스트림은 후술하는 바와 같이 디코더 엘리먼트들에 의해 디코딩된다. 비디오 디코더(300)는 일반적으로 도 2에 설명된 바와 같은 인코딩 패스에 역인 디코딩 패스를 수행한다. 인코더(200)는 또한 일반적으로 비디오 데이터의 인코딩의 일부로서 비디오 디코딩을 수행한다.3 illustrates a block diagram of an example video decoder 300 . At the decoder 300 , the bitstream is decoded by decoder elements as described below. The video decoder 300 generally performs a decoding pass reciprocal to the encoding pass as described in FIG. 2 . Encoder 200 also performs video decoding, typically as part of encoding the video data.

특히, 디코더의 입력은 비디오 비트스트림을 포함하고, 이는 비디오 인코더(200)에 의해 생성될 수 있다. 비트스트림은 변환 계수들, 모션 벡터들, 및 다른 코딩된 정보를 획득하기 위하여 먼저 엔트로피 디코딩된다(330). 픽처 파티션 정보는 픽처가 어떻게 파티셔닝되는지를 표시한다. 따라서, 디코더는 디코딩된 픽처 파티셔닝 정보에 따라 픽처를 분할할 수 있다(335). 변환 계수들은 예측 잔차들을 디코딩하기 위해 역양자화되고(340) 역변환된다(350). 디코딩된 예측 잔차들과 예측된 블록을 조합하면(355), 이미지 블록이 재구성된다. 예측된 블록은 인트라 예측(360) 또는 모션-보상된 예측(즉, 인터 예측)(375)으로부터 획득될 수 있다(370). 인-루프 필터들(365)이 재구성된 이미지에 적용된다. 필터링된 이미지는 참조 픽처 버퍼(380)에 저장된다.In particular, the input of the decoder comprises a video bitstream, which may be generated by the video encoder 200 . The bitstream is first entropy decoded 330 to obtain transform coefficients, motion vectors, and other coded information. The picture partition information indicates how the picture is partitioned. Accordingly, the decoder may divide the picture according to the decoded picture partitioning information ( 335 ). The transform coefficients are inverse quantized (340) and inverse transformed (350) to decode the prediction residuals. Combining the decoded prediction residuals with the predicted block ( 355 ), the image block is reconstructed. The predicted block may be obtained 370 from intra prediction 360 or motion-compensated prediction (ie, inter prediction) 375 . In-loop filters 365 are applied to the reconstructed image. The filtered image is stored in the reference picture buffer 380 .

디코딩된 픽처는 포스트-디코딩 처리(385), 예를 들어, 역 컬러 변환(예를 들어, YCbCr 4:2:0으로부터 RGB 4:4:4로의 변환) 또는 프리-인코딩 처리(201)에서 수행되는 리맵핑 프로세스의 역을 수행하는 역 리맵핑을 추가로 거칠 수 있다. 포스트-디코딩 처리는 프리-인코딩 처리에서 유도되고 비트스트림에서 시그널링되는 메타데이터를 사용할 수 있다.The decoded picture is subjected to post-decoding processing 385 , for example, inverse color conversion (eg, YCbCr 4:2:0 to RGB 4:4:4 conversion) or pre-encoding processing 201 . Inverse remapping that performs the reverse of the remapping process may be further performed. The post-decoding process may use metadata derived from the pre-encoding process and signaled in the bitstream.

HEVC 사양은 역양자화 프로세스에서 양자화 행렬들의 사용을 허용하고, 여기서 변환된 계수들은 다음과 같이 현재 양자화 스텝에 의해 스케일링되고 양자화 행렬(QM)에 의해 추가로 스케일링된다:The HEVC specification allows the use of quantization matrices in the inverse quantization process, where the transformed coefficients are scaled by the current quantization step and further scaled by the quantization matrix (QM) as follows:

d[ x ][ y ] = Clip3( coeffMin, coeffMax, ( ( TransCoeffLevel[ xTbY ][ yTbY ][ cIdx ][ x ][ y ] * m[ x ][ y ] * levelScale[ qP%6 ] << (qP / 6 ) ) + ( 1 << ( bdShift - 1 ) ) ) >> bdShift )d[ x ][ y ] = Clip3( coeffMin, coeffMax, ( ( TransCoeffLevel[ xTbY ][ yTbY ][ cIdx ][ x ][ y ] * m[ x ][ y ] * levelScale[ qP%6 ] << ( qP / 6 ) ) + ( 1 << ( bdShift - 1 ) ) ) >> bdShift )

여기서:here:

· TransCoeffLevel [...]는 그 공간 좌표들 xTbY, yTbY 및 그 컴포넌트 인덱스 cIdx에 의해 식별되는 현재 블록에 대한 변환된 계수 절대 값들이다.· TransCoeffLevel [...] are the transformed coefficient absolute values for the current block identified by its spatial coordinates xTbY, yTbY and its component index cIdx.

· x 및 y는 수평/수직 주파수 인덱스들이다.· x and y are horizontal/vertical frequency indices.

· qP는 현재 양자화 파라미터이다.· qP is the current quantization parameter.

· levelScale[qP%6]과 (qP/6)에 의한 좌측 시프트에 의한 승산은 양자화 스텝 qStep= (levelScale[qP%6] << (qP/6))에 의한 승산의 등가이다.· Multiplication by left shift by levelScale[qP%6] and (qP/6) is equivalent to multiplication by quantization step qStep=(levelScale[qP%6] << (qP/6)).

· m[...][...]은 이차원 양자화 행렬이다. 여기서, 양자화 행렬은 스케일링에 이용되기 때문에, 스케일링 행렬이라고도 지칭될 수 있다.· m[...][...] is a two-dimensional quantization matrix. Here, since the quantization matrix is used for scaling, it may also be referred to as a scaling matrix.

· bdShift는 이미지 샘플 비트 깊이를 설명하기 위한 추가적인 스케일링 인자이다. 항 (1 << (bdShift-1))은 가장 가까운 정수로 반올림하는 목적으로 기능한다.· bdShift is an additional scaling factor to account for the image sample bit depth. The term (1 << (bdShift-1)) serves the purpose of rounding to the nearest integer.

· d[...]는 결과적인 역양자화된 변환된 계수 절대 값들이다.· d[...] are the resulting inverse quantized transformed coefficient absolute values.

양자화 행렬들을 송신하기 위해 HEVC에 의해 사용되는 신택스가 이하에 설명된다:The syntax used by HEVC to transmit quantization matrices is described below:

Figure pct00001
Figure pct00001

다음을 유의하여야 할 수 있다:The following may be noted:

· 각각의 변환 크기(sizeId)에 대해 상이한 행렬이 지정된다. 스케일링 리스트 데이터 신택스 구조에서, 스케일링 행렬은 1-D 스케일링 리스트(예를 들어, ScalingList)로 스캐닝된다.· A different matrix is specified for each transform size (sizeId). In the scaling list data syntax structure, the scaling matrix is scanned into a 1-D scaling list (eg, ScalingList).

· 주어진 변환 크기에 대해, 인트라/인터 코딩 및 Y/Cb/Cr 성분들에 대해 6개의 행렬이 지정된다.· For a given transform size, six matrices are specified for intra/inter coding and Y/Cb/Cr components.

· 행렬은 다음 중 어느 하나일 수 있다:· A matrix can be any of the following:

o scaling_list_pred_mode_flag가 0과 같으면, 동일한 크기의 이전에 송신된 행렬로부터 카피됨(참조 matrixId는 matrixId-scaling_list_pred_matrix_id_delta로서 획득된다)o If scaling_list_pred_mode_flag is equal to 0, it is copied from a previously transmitted matrix of the same size (reference matrixId is obtained as matrixId-scaling_list_pred_matrix_id_delta)

o 표준에 지정된 디폴트 값들로부터 카피됨(scaling_list_pred_mode_flag 및 scaling_list_pred_matrix_id_delta 양자 모두가 0인 경우)o Copied from default values specified in the standard (if both scaling_list_pred_mode_flag and scaling_list_pred_matrix_id_delta are 0)

o exp-Golomb 엔트로피 코딩을 사용하여, DPCM 코딩 모드에서 우상 대각 스캐닝 순서로 완전히 지정된다.o Using exp-Golomb entropy coding, it is fully specified in right-to-right diagonal scanning order in DPCM coding mode.

· 8x8보다 큰 블록 크기의 경우, 코딩된 비트를 절감하기 위하여 양자화 행렬을 시그널링하기 위해 8x8 계수만이 송신된다. 그 다음, 계수들은, 명시적으로 송신되는 DC 계수를 제외하고는, 제로-홀드(zero-hold)(즉, 반복)를 이용하여 보간된다.· For block sizes greater than 8x8, only 8x8 coefficients are transmitted to signal the quantization matrix to save coded bits. The coefficients are then interpolated using zero-hold (ie, repetition), except for the DC coefficient that is explicitly transmitted.

HEVC와 유사한 양자화 행렬들의 사용은 기고문 JVET-N0847에 기초한 VVC 초안 5에서 채택되었다(O. Chubach, et al., "CE7-related: Support of quantization matrices for VVC," JVET-N0847, Geneva, CH, March 2019 참조). scaling_list_data 신택스는 아래에 도시된 바와 같이 VVC 코덱에 적응되었다.The use of HEVC-like quantization matrices was adopted in VVC draft 5 based on the contribution JVET-N0847 (O. Chubach, et al., "CE7-related: Support of quantization matrices for VVC," JVET-N0847, Geneva, CH, See March 2019). The scaling_list_data syntax is adapted to the VVC codec as shown below.

Figure pct00002
Figure pct00002

JVET-N0847 채택을 갖는 VVC 초안 5의 설계에서, HEVC에서와 같이, QM은 2개의 파라미터, matrixId 및 sizeId에 의해 식별된다. 이는 이하의 2개의 표에 예시되어 있다.In the design of VVC draft 5 with JVET-N0847 adoption, as in HEVC, QM is identified by two parameters, matrixId and sizeId. This is illustrated in the two tables below.

표 1: 블록 크기 식별자(JVET-N0847)Table 1: Block size identifiers (JVET-N0847)

Figure pct00003
Figure pct00003

표 2: QM 타입 식별자(JVET-N0847)Table 2: QM Type Identifier (JVET-N0847)

Figure pct00004
Figure pct00004

주: MODE_INTRA QM들 또한 MODE_IBC(Intra Block Copy)를 위해 사용된다.Note: MODE_INTRA QMs are also used for MODE_IBC (Intra Block Copy).

양자 모두의 식별자의 조합이 이하의 표에 나타나 있다:Combinations of both identifiers are shown in the table below:

표 3: (matrixId, sizeId) 조합들(JVET-N0847)Table 3: (matrixId, sizeId) combinations (JVET-N0847)

Figure pct00005
Figure pct00005

HEVC에서와 같이, 8x8보다 큰 블록 크기에 대해, 8x8 계수와 DC 계수만이 송신된다. 정확한 크기의 QM은 제로-홀드 보간을 이용하여 재구성된다. 예를 들어, 16x16 블록에 대해, 모든 계수가 양방향으로 2번 반복되고, 이어서, DC 계수가 송신된 계수로 대체된다.As in HEVC, for block sizes greater than 8x8, only 8x8 coefficients and DC coefficients are transmitted. A QM of the correct size is reconstructed using zero-hold interpolation. For example, for a 16x16 block, all coefficients are repeated twice in both directions, and then the DC coefficients are replaced with the transmitted coefficients.

직사각형 블록들의 경우, QM 선택을 위해 유지되는 크기(sizeId)는 더 큰 치수, 즉 폭 및 높이의 최대이다. 예를 들어, 4x16 블록에 대해, 16x16 블록 크기에 대한 QM이 선택된다. 그 후, 재구성된 16x16 행렬은 최종 4x16 양자화 행렬을 획득하기 위해 4배만큼 수직으로 데시메이트된다(즉, 4개 중 3개의 라인이 스킵된다).For rectangular blocks, the size (sizeId) maintained for QM selection is the largest of the larger dimensions, ie, width and height. For example, for a 4x16 block, a QM for a 16x16 block size is selected. The reconstructed 16x16 matrix is then vertically decimated by a factor of 4 to obtain the final 4x16 quantization matrix (ie, 3 out of 4 lines are skipped).

이하에서, sizeId 및 그것이 사용되는 정사각형 블록 크기와 관련하여, 블록 크기들(정사각형 또는 직사각형)의 주어진 패밀리에 대한 QM들을 size-N으로 지칭한다. 예를 들어, 블록 크기들 16x16 또는 16x4에 대해, QM들은 크기-16 (VVC 초안 5에서 sizeId 4)으로서 식별된다. 크기-N 표기는 정확한 블록 형상 및 시그널링된 QM 계수의 수(표 3에 도시된 바와 같이 8x8로 제한됨)와 구별하는데 사용된다.Hereinafter, with respect to sizeId and the square block size in which it is used, the QMs for a given family of block sizes (square or rectangular) are referred to as size-N. For example, for block sizes 16x16 or 16x4, QMs are identified as size-16 (sizeId 4 in VVC Draft 5). The size-N notation is used to distinguish the exact block shape and number of signaled QM coefficients (limited to 8x8 as shown in Table 3).

또한, VVC 초안 5에서, 크기-64에 대해, 우하단 사분면에 대한 QM 계수가 송신되지 않는다(이들은 0으로 추론되고, 이하에서 "제로-아웃(zero-out)"이라고 지칭된다). 이는 scaling_list_data 신택스에서 "x>=4 && y>=4" 조건에 의해 구현된다. 이는 변환/양자화 프로세스에 의해 결코 사용되지 않는 QM 계수들의 송신을 방지한다. 실제로, VVC에서, 임의의 차원에서 32보다 큰 변환 블록 크기들(64xN, Nx64, N <= 64)에 대해, 32보다 크거나 같은 x/y 주파수 좌표를 갖는 임의의 변환된 계수가 송신되지 않고 제로로 추론되며, 결과적으로, 이를 양자화하기 위해 양자화 행렬 계수가 필요하지 않다. 이는 도 4에 예시되어 있는데, 여기서 해칭된 영역은 제로로 추론된 변환 계수들에 대응한다.Also, in VVC Draft 5, for size-64, the QM coefficients for the lower right quadrant are not transmitted (they are inferred to be zero and are referred to as “zero-outs” hereinafter). This is implemented by the condition "x>=4 && y>=4" in the scaling_list_data syntax. This prevents transmission of QM coefficients that are never used by the transform/quantization process. Indeed, in VVC, for transform block sizes greater than 32 in any dimension (64xN, Nx64, N <= 64), no transformed coefficient with an x/y frequency coordinate greater than or equal to 32 is transmitted and It is inferred to be zero, and consequently, no quantization matrix coefficients are needed to quantize it. This is illustrated in Figure 4, where the hatched regions correspond to transform coefficients inferred to be zero.

HEVC와 비교하여, VVC는 더 많은 수의 블록 크기로 인해 더 많은 양자화 행렬을 필요로 한다. 그러나, VVC 초안 5에서, QM 예측은 여전히 동일한 블록-크기 행렬들의 카피로 제한되고, 이는 낭비된 비트들을 초래할 수 있다. 또한, QM들과 관련된 신택스는 VVC에서 크로마에 대해서만 블록 크기 2x2를 사용하는 것 및 루마에 대해서만 블록 크기 64x64를 사용하는 것 때문에 더 복잡하다. 또한, HEVC에서와 같이, JVET-N0847은 각각의 블록 크기에 대한 특정 행렬 유도 프로세스를 설명한다.Compared to HEVC, VVC requires more quantization matrices due to the larger number of block sizes. However, in VVC Draft 5, QM prediction is still limited to copies of identical block-size matrices, which may result in wasted bits. Also, the syntax related to QMs is more complicated because of using block size 2x2 only for chroma and using block size 64x64 only for luma in VVC. Also, as in HEVC, JVET-N0847 describes a specific matrix derivation process for each block size.

일부 QM 예측 기법들은 HEVC 표준화 동안, 예를 들어, JCTVC-E073 (J. Tanaka, et al., "Quantization Matrix for HEVC," JCTVC-E073, Geneva, CH, March 2011 참조) 및 JCTVC-H0314 (Y. Wang, et al., "Layered quantization matrices representation and compression," JCTVC-H0314, San Jos

Figure pct00006
, CA, USA, February 2012 참조)에서 탐구되었다.Some QM prediction techniques are used during HEVC standardization, for example, JCTVC-E073 (see J. Tanaka, et al., “Quantization Matrix for HEVC,” JCTVC-E073, Geneva, CH, March 2011) and JCTVC-H0314 (Y Wang, et al., “Layered quantization matrices representation and compression,” JCTVC-H0314, San Jos
Figure pct00006
, CA, USA, February 2012).

JCTVC-E073: QM들은 특정 파라미터 세트(QMPS)에서 송신된다. QMPS 내에서, QM들은 증가하는 크기 순서(HEVC와 유사한 sizeId/matrixId)로 송신된다. 이전의 QMPS를 포함하는 임의의 이전에 코딩된 QM 계수들로부터의 예측(=카피)이 제안된다. 선형 보간을 이용한 상향 변환은 더 작은 참조 QM으로부터 적응하는데 이용되는 반면, 간단한 다운샘플링은 더 큰 참조 QM으로부터 적응하는데 이용된다. 이는 HEVC 표준화 동안에 최종적으로 거부되었다.JCTVC-E073: QMs are transmitted in a specific parameter set (QMPS). Within QMPS, QMs are transmitted in increasing size order (sizeId/matrixId similar to HEVC). Prediction (=copy) from any previously coded QM coefficients including the previous QMPS is proposed. Up-conversion with linear interpolation is used to adapt from a smaller reference QM, whereas simple downsampling is used to adapt from a larger reference QM. It was finally rejected during HEVC standardization.

JCTVC-H0314: QM들은 더 큰 것으로부터 더 작은 것으로의 순서로 송신된다. 도 5에 도시된 바와 같이, 고정된 예측 트리(명시적 참조 인덱싱 없음)를 이용하여, 새로운 것을 송신하는 대신에 이전에 송신된 QM을 카피하는 것이 가능하다. 참조 QM이 더 큰 경우에 간단한 다운샘플링이 사용된다. 이는 HEVC 표준화 동안에 최종적으로 거부되었다.JCTVC-H0314: QMs are transmitted in order from largest to smallest. As shown in FIG. 5 , using a fixed prediction tree (no explicit reference indexing), it is possible to copy a previously transmitted QM instead of transmitting a new one. Simple downsampling is used when the reference QM is larger. It was finally rejected during HEVC standardization.

이러한 2개의 제안은 HEVC와 관련되며, VVC에 의해 도입되는 복잡성들에 대처하지 않는다.These two proposals relate to HEVC and do not address the complexities introduced by VVC.

본 출원은 (JVET-N0847의 채택 후에) VVC 초안 5의 양자화 행렬 시그널링 및 예측 프로세스를 단순화하면서, 다음 중 하나 이상을 통합함으로써 임의의 QM이 임의의 이전에 시그널링된 것으로부터 예측될 수 있도록 이들을 강화하는 것을 제안한다:This application simplifies the quantization matrix signaling and prediction process of VVC Draft 5 (after adoption of JVET-N0847) while enhancing them so that any QM can be predicted from any previously signaled by incorporating one or more of the following Suggest to do:

- 참조 인덱스 차이가 임의의 이전에 송신된 것을 어드레싱할 수 있도록, 크기 및 타입 양자 모두를 포함하도록 QM 인덱스를 통합하는 것;- unifying the QM index to include both size and type, such that the reference index difference can address any previously transmitted;

- 감소하는 블록 크기 순서로 양자화 행렬들을 송신하는 것;- transmitting the quantization matrices in decreasing block size order;

- 필요에 따라, 예측 프로세스를 카피 또는 데시메이션 프로세스 중 어느 하나로서 지정하는 것;- designating the prediction process as either a copy or a decimation process, if necessary;

- 크기-64 QM들이 예측자들로서 사용될 수 있도록, 크기-64에 대한 모든 QM 계수들을 송신하는 것.- To transmit all QM coefficients for size-64 so that size-64 QMs can be used as predictors.

게다가, 8x8보다 큰 블록들에 대한 업샘플링 및 직사각형 블록들에 대한 다운샘플링을 포함하는 QM 유도 프로세스는 블록 파라미터들에 따라 QM 인덱스를 선택하고 QM 시그널링된 크기를 실제 블록 크기에 적응시키는 것으로 설명된다.Furthermore, a QM derivation process comprising upsampling for blocks larger than 8x8 and downsampling for rectangular blocks is described as selecting a QM index according to block parameters and adapting the QM signaled size to the actual block size. .

표기의 용이함을 위해, 디폴트 값들로부터 또는 이전에 송신된 것으로부터 양자화 행렬을 예측하는 프로세스를 QM 예측 프로세스로서 고려하고, 송신되거나 예측된 QM을 변환 블록의 크기 및 크로마 포맷에 적응시키는 프로세스를 QM 유도 프로세스로서 고려한다. QM 예측 프로세스는, 예를 들어, 픽처 레벨에서 스케일링 리스트 데이터를 파싱하는 프로세스의 일부일 수 있다. 유도 프로세스는 일반적으로 더 낮은 레벨, 예를 들어, 변환 블록 레벨에 있다. 다양한 양태들이 아래에 더 상세히 제공되며, 초안 텍스트 예 및 성능 결과들이 이어진다.For ease of notation, consider the process of predicting a quantization matrix from default values or from previously transmitted as a QM prediction process, and a QM derivation process of adapting the transmitted or predicted QM to the size and chroma format of the transform block Consider it as a process. The QM prediction process may be part of a process of parsing scaling list data at the picture level, for example. The derivation process is generally at a lower level, eg the transform block level. Various aspects are provided in greater detail below, followed by draft text examples and performance results.

· QM을 식별하기 위한 단일 행렬 인덱스의 유도 및 사용. 단일 식별자는 예측(카피)을 사용할 때 임의의 이전에 송신된 행렬을 참조하는 것을 허용하고, 더 큰 행렬들을 먼저 송신하는 것은 예측 프로세스에서 보간을 회피한다.· Derivation and use of a single matrix index to identify a QM. A single identifier allows referencing any previously transmitted matrix when using prediction (copy), and transmitting larger matrices first avoids interpolation in the prediction process.

· 이전에 시그널링된 QM(참조 QM)을 카피 또는 데시메이팅하는 것으로 이루어지는 QM 예측 프로세스는 송신, 예측 또는 디폴트 참조 QM일 수 있다.· The QM prediction process, which consists of copying or decimating a previously signaled QM (reference QM), may be a transmit, predict or default reference QM.

· 그 후, 주어진 변환 블록에 대해 QM 인덱스를 블록 크기, 컬러 성분 및 예측 모드에 기초하여 선택하는 것으로 이루어지는 QM 유도 프로세스는 선택된 QM의 크기를 블록의 크기에 적응시킨다. 리사이즈 프로세스는 선택된 QM의 계수들을 인덱싱하기 위해 변환 블록 내의 x 및 y 좌표들의 비트 시프트들에 기초한다.· Then, for a given transform block, a QM derivation process consisting of selecting a QM index based on block size, color component and prediction mode adapts the size of the selected QM to the size of the block. The resizing process is based on bit shifts of the x and y coordinates in the transform block to index the coefficients of the selected QM.

· 크기-64 QM들에 대한 모든 계수들의 송신· Transmission of all coefficients for size-64 QMs

VVC 초안 5와 비교하여, 이러한 양태들은 사양을 단순화하고(JVET-N0847에 비교하여 텍스트 변경들을 절반으로 줄이고) 상당한 비트 절약을 가져온다(scaling_list_data의 비트 비용은 절반으로 줄일 수 있다).Compared to VVC Draft 5, these aspects simplify the specification (reduce text changes in half compared to JVET-N0847) and result in significant bit savings (bit cost of scaling_list_data can be cut in half).

통합 QM 인덱스Unified QM Index

변환 블록의 양자화/역양자화에 사용되는 QM은 하나의 단일 파라미터 matrixId에 의해 식별된다. 일 실시예에서, 통합된 matrixId (QM 인덱스)는 다음의 합성물이다:A QM used for quantization/inverse quantization of a transform block is identified by one single parameter matrixId. In one embodiment, the aggregated matrixId (QM index) is a composite of:

- 블록 크기보다는 CU 크기(즉, 정사각형 크기 행렬들만이 송신되기 때문에 정사각형 형상을 둘러싸는 CU)에 관련된 크기 식별자. 여기서 루마 또는 크로마 중 어느 하나에 대해, 크기 식별자는 루마 블록 크기, 예를 들어, max(루마 블록 폭, 루마 블록 높이)에 의해 제어된다는 점에 유의한다. 루마 및 크로마 트리가 분리될 때, 크로마에 대해, "CU 크기"는 루마 평면 상에 투영된 블록의 크기를 지칭할 것이다.- A size identifier related to the CU size (ie, the CU surrounding a square shape since only square size matrices are transmitted) rather than the block size. Note here that for either luma or chroma, the size identifier is controlled by the luma block size, eg max(luma block width, luma block height). When luma and chroma trees are separated, for chroma, “CU size” will refer to the size of the block projected on the luma plane.

- 루마 QM들이 크로마보다 클 수 있기 때문에(예를 들어, 4:2:0 크로마 포맷의 경우), 먼저 루마 QM들을 열거하는 행렬 타입- Since luma QMs can be larger than chroma (eg in the case of 4:2:0 chroma format), a matrix type that enumerates the luma QMs first.

이 실시예에 따르면, QM 인덱스 유도가 표 4 및 표 5와 수학식 1에 예시되어 있다.According to this embodiment, QM index derivation is illustrated in Tables 4 and 5 and Equation 1.

표 4: 크기 식별자(제안됨)Table 4: Size identifiers (suggested)

Figure pct00007
Figure pct00007

표 5: 행렬 타입 식별자(제안됨)Table 5: Matrix Type Identifiers (Proposed)

Figure pct00008
Figure pct00008

통합된 matrixId는 다음과 같이 유도된다:The unified matrixId is derived as follows:

matrixId = N * sizeId + matrixTypeId (1)matrixId = N * sizeId + matrixTypeId(1)

여기서, N은 가능한 타입 식별자들의 수, 예를 들어, N=6이다.Here, N is the number of possible type identifiers, for example, N=6.

다른 실시예에서, 6개보다 많은 QM 타입이 정의되는 경우, sizeId는 양자화 행렬 타입들의 수인 정확한 수로 승산되어야 한다. 다른 실시예들에서, 다른 파라미터들, 예를 들어, 특정 블록 크기들, 시그널링된 행렬 크기들(여기서 8x8로 제한됨), 또는 DC 계수의 존재가 또한 상이할 수 있다. 여기서 QM들은, 표 6에 예시된 바와 같이, 감소하는 블록 크기에 의해 열거되고, 단일 인덱스에 의해 식별된다는 점에 유의한다.In another embodiment, if more than 6 QM types are defined, sizeId should be multiplied by the exact number of quantization matrix types. In other embodiments, other parameters may also be different, eg, certain block sizes, signaled matrix sizes (limited here to 8×8), or the presence of a DC coefficient. Note that QMs here are listed by decreasing block size and identified by a single index, as illustrated in Table 6.

표 6: 통합 matrixId (제안됨)Table 6: Unified matrixId (proposed)

Figure pct00009
Figure pct00009

QM 예측 프로세스QM Prediction Process

QM 계수들을 송신하는 대신에, 디폴트 값들로부터, 또는 임의의 이전에 송신된 값으로부터 QM을 예측하는 것이 가능하다. 일 실시예에서, 참조 QM이 동일한 크기일 때, QM이 카피되고, 그렇지 않으면, 도 6의 예에 예시된 바와 같이, 관련 비율에 의해 데시메이트되고, 크기-4 루마 QM이 크기-8로부터 예측된다.Instead of transmitting the QM coefficients, it is possible to predict the QM from default values, or from any previously transmitted value. In one embodiment, when the reference QM is of the same size, the QM is copied, otherwise decimated by a relative ratio, as illustrated in the example of FIG. 6 , a size-4 luma QM predicted from size-8 do.

데시메이션은 이하의 수학식에 의해 설명된다:Decimation is described by the following equation:

ScalingMatrix[ matrixId ][ x ][ y ] = refScalingMatrix[ i ][ j ] (2)ScalingMatrix[ matrixId ][ x ][ y ] = refScalingMatrix[ i ][ j ] (2)

여기서, matrixSize = (matrixId < 20) ? 8 : (matrixId < 26) ? 4 : 2 )where matrixSize = (matrixId < 20) ? 8 : (matrixId < 26) ? 4: 2 )

x = 0 .. matrixSize - 1, y = 0 .. matrixSize - 1,x = 0 .. matrixSize - 1, y = 0 .. matrixSize - 1,

i = x << ( log2(refMatrixSize) - log2( matrixSize ) ), 및i = x << ( log2(refMatrixSize) - log2( matrixSize ) ), and

j = y << ( log2(refMatrixSize) - log2( matrixSize ) ).j = y << ( log2(refMatrixSize) - log2( matrixSize ) ).

여기서 refMatrixSize는 refScalingMatrix의 크기(그리고 따라서 i 및 j 변수들의 범위)와 매칭된다.where refMatrixSize matches the size of the refScalingMatrix (and thus the range of i and j variables).

도 6에 도시된 예에서, 루마 크기-4 QM(4x4 어레이: matrixSize는 4)이 8x8 어레이(refMatrixSize는 8)인 루마 크기-8 QM으로부터 예측되고; 2개 중 하나의 라인 및 2개 중 하나의 열이 드롭되어 4x4 어레이를 생성한다(즉, 참조 QM에서의 엘리먼트(2x, 2y)는 현재 QM에서의 엘리먼트(x, y)에 카피된다).In the example shown in Fig. 6, a luma size-4 QM (4x4 array: matrixSize is 4) is predicted from a luma size-8 QM that is an 8x8 array (refMatrixSize is 8); One line of two and one column of two are dropped to create a 4x4 array (ie element (2x, 2y) in the reference QM is copied to element (x, y) in the current QM).

수학식 3은 다음의 형태를 취한다:Equation 3 takes the form:

ScalingMatrix[ matrixId ][ x ][ y ] = refScalingMatrix[ i ][ j ] (3)ScalingMatrix[ matrixId ][ x ][ y ] = refScalingMatrix[ i ][ j ] (3)

x = 0 .. 3, y = 0 .. 3, i = x << 1, 및 j = y << 1.x = 0 .. 3, y = 0 .. 3, i = x << 1, and j = y << 1.

참조 QM이 DC 값을 가질 때, 현재 QM이 DC 값을 필요로 하면, 이는 DC 값으로서 카피되고; 그렇지 않으면, 이는 좌상단 QM 계수에 카피된다.When the reference QM has a DC value, if the current QM needs a DC value, it is copied as a DC value; Otherwise, it is copied to the top left QM coefficients.

이 QM 예측 프로세스는 바람직한 실시예에서 QM 디코딩 프로세스의 일부이지만, 예측 목적을 위한 데시메이션이 QM 리사이즈 서브프로세스와 병합되는 다른 실시예에서 QM 유도 프로세스로 연기될 수 있다.This QM prediction process is part of the QM decoding process in the preferred embodiment, but may be deferred to the QM derivation process in other embodiments where decimation for prediction purposes is merged with the QM resize subprocess.

QM 유도 프로세스QM induction process

양자화 행렬에 대해 제안된 유도 프로세스는 먼저 전술된 바와 같이 블록 파라미터들에 따라 우측 QM 인덱스를 선택하고(통합된 QM 인덱스), 이어서 직사각형 블록들에 대한 데시메이션, 크기보다 더 큰 블록들, 예를 들어, 8x8에 대한 반복, 및 크로마 포맷 적응의 프로세스들을 하나의 단일 프로세스로 통합한다. 제안된 프로세스는 x 및 y 출력 좌표들의 비트 시프트들에 기초한다. 선택된 QM의 우측 라인/열을 선택하기 위해, 아래의 수학식에 예시된 바와 같이, x/y 출력 좌표들의 우측 시프트가 뒤따르는 좌측 시프트만이 요구된다.The proposed derivation process for the quantization matrix first selects the right QM index according to the block parameters as described above (integrated QM index), then decimation for rectangular blocks, blocks larger than the size, e.g. For example, it integrates the processes of iteration for 8x8, and chroma format adaptation into one single process. The proposed process is based on bit shifts of the x and y output coordinates. To select the right line/column of the selected QM, only a left shift followed by a right shift of the x/y output coordinates is required, as illustrated in the equation below.

m[ x ][ y ] = ScalingMatrix[ matrixId ][ i ][ j ] (4)m[ x ][ y ] = ScalingMatrix[ matrixId ][ i ][ j ] (4)

여기서 i = ( x << log2MatrixSize ) >> log2( blkWidth ), 및where i = ( x << log2MatrixSize ) >> log2( blkWidth ), and

j = ( y << log2MatrixSize ) >> log2( blkHeight ).j = ( y << log2MatrixSize ) >> log2( blkHeight ).

여기서, log2MatrixSize는 ScalingMatrix[ matrixId ] (정사각형 2D 어레이임)의 크기의 log2이고, blkWidth 및 blkHeight는 각각 현재 변환 블록의 폭 및 높이이고, x는 0 내지 blkWidth-1의 범위이고 y는 0 내지 blkHeight-1의 범위이다.where log2MatrixSize is log2 of the size of ScalingMatrix[matrixId] (which is a square 2D array), blkWidth and blkHeight are the width and height of the current transform block, respectively, x is in the range of 0 to blkWidth-1, and y is 0 to blkHeight- It is in the range of 1.

이하에서, QM 유도 프로세스를 예시하기 위해 몇 가지 예가 제공된다. 도 7에 예시된 예에서, 루마 16x8 블록에 대한 QM은 루마 크기-16 QM으로부터 유도되고, 이는 실제로 8x8 어레이 플러스 DC 계수이다. 이 예에 대해, blkWidth는 16과 동일하고, blkHeight는 8과 동일하고, log2MatrixSize는 3과 동일하고, 따라서 수학식 5는 다음의 형태를 취한다:In the following, several examples are provided to illustrate the QM derivation process. In the example illustrated in Figure 7, the QM for a luma 16x8 block is derived from the luma size-16 QM, which is actually an 8x8 array plus DC coefficient. For this example, blkWidth equals 16, blkHeight equals 8, and log2MatrixSize equals 3, so Equation 5 takes the form:

m[ x ][ y ] = ScalingMatrix[ matrixId ][ i ][ j ] (5)m[ x ][ y ] = ScalingMatrix[ matrixId ][ i ][ j ] (5)

여기서, i= (x << 3) >> 4, 및 j= (y << 3) >> 3, 여기서 x= 0..15 및 y= 0..7.where i= (x << 3) >> 4, and j= (y << 3) >> 3, where x= 0..15 and y= 0..7.

여기서, x는 1만큼 우측 시프트되고, y는 변경되지 않는다(즉, 선택된 QM의 열 i가 현재 QM의 열 2*i 및 2*i + 1에 카피된다). 또한, 선택된 QM은 DC 계수를 가지기 때문에, m[0][0]으로 카피된다.Here, x is shifted right by 1, and y is unchanged (ie, column i of the selected QM is copied to columns 2*i and 2*i + 1 of the current QM). Also, since the selected QM has a DC coefficient, it is copied to m[0][0].

도 8에 예시된 바와 같은 다른 예에서, 8x4 CU(4:2:0 포맷)에 대한 크로마 4x2 블록에 대한 QM이 생성된다. 이는 8x4 CU 크기와 매칭되고, 그 둘러싸는 정사각형은 8x8이다. 따라서, 선택된 QM은 크기-8의 것이고, 여기서 크로마 QM들은 4x4 어레이들로서 코딩된다. 여기서, blkWidth는 4와 동일하고, blkHeight는 2와 동일하고, log2MatrixSize는 2와 동일하며, 따라서, 수학식 6은 다음의 형태를 취한다:In another example as illustrated in FIG. 8 , a QM for a chroma 4×2 block for an 8×4 CU (4:2:0 format) is generated. This matches an 8x4 CU size, and its enclosing square is 8x8. Thus, the selected QM is of size-8, where the chroma QMs are coded as 4x4 arrays. Here, blkWidth equals 4, blkHeight equals 2, and log2MatrixSize equals 2, so Equation 6 takes the form:

m[ x ][ y ] = ScalingMatrix[ matrixId ][ i ][ j ] (6)m[ x ][ y ] = ScalingMatrix[ matrixId ][ i ][ j ] (6)

여기서, i= (x << 2) >> 2, 및 j= (y << 2) >> 1 여기서 x= 0..3 및 y= 0..1.where i= (x << 2) >> 2, and j= (y << 2) >> 1 where x= 0..3 and y= 0..1.

여기서, x는 변경되지 않고, y는 1만큼 좌측 시프트된다(즉, 참조 QM에서의 행 2y는 현재 QM에서의 행 y에 카피된다).Here, x remains unchanged and y is left shifted by one (ie, row 2y in the reference QM is copied to row y in the current QM).

이하의 예들에서, 4:2:2 및 4:4:4 포맷들에 대한 제안된 적응은 VVC 초안 5와 상이하다. (크로마 행렬이 존재하지 않는 64x64를 제외하고) 크로마 블록 크기에 매칭되는 QM을 찾는 대신에, 크기 매칭은 동일한(루마) CU 크기(즉, 루마 평면 상에 투영되는 블록의 크기)에 기초하며, 필요한 경우에 계수들이 반복된다. 이는 QM 설계를 크로마 포맷과 독립적으로 만든다.In the examples below, the proposed adaptation for 4:2:2 and 4:4:4 formats is different from VVC Draft 5. Instead of finding a QM that matches the chroma block size (except for 64x64 where the chroma matrix does not exist), the size matching is based on the same (luma) CU size (i.e. the size of the block projected onto the luma plane), The coefficients are repeated if necessary. This makes the QM design independent of the chroma format.

도 9에 도시된 예에서, 8x4 CU(4:2:2 포맷)에 대한 크로마 8x2 블록에 대한 QM이 생성된다. 선택된 QM은 도 8에 예시된 상기 예와 동일하지만, 4:2:2 크로마 포맷은 두 배 더 많은 열을 필요로 한다. 여기서, 열들이 반복되고, 따라서 x는 1만큼 우측 시프트되고, y는 여전히 1만큼 좌측 시프트된다. 특히, blkWidth는 8과 동일하고, blkHeight는 2와 동일하고, log2MatrixSize는 2와 동일하며, 따라서, 수학식 7은 다음의 형태를 취한다:In the example shown in FIG. 9 , a QM for a chroma 8×2 block for an 8×4 CU (4:2:2 format) is generated. The selected QM is the same as the above example illustrated in FIG. 8 , but the 4:2:2 chroma format requires twice as many columns. Here, the columns are repeated, so x is shifted right by 1 and y is still shifted left by 1. In particular, blkWidth equals 8, blkHeight equals 2, and log2MatrixSize equals 2, so Equation 7 takes the form:

m[ x ][ y ] = ScalingMatrix[ matrixId ][ i ][ j ] (7)m[ x ][ y ] = ScalingMatrix[ matrixId ][ i ][ j ] (7)

여기서 i = ( x << 2 ) >> 3, 및 j = ( y << 2 ) >> 1, 여기서 x = 0..7 및 y = 0..1.where i = ( x << 2 ) >> 3, and j = ( y << 2 ) >> 1, where x = 0..7 and y = 0..1.

도 10에 도시된 예에서, 8x4 CU(4:4:4 포맷)에 대한 크로마 8x4 블록에 대한 QM이 생성된다. 선택된 QM은 도 8 및 도 9에 도시된 예에서와 여전히 동일하지만, 4:4:4 크로마 포맷은 4:2:0 크로마 포맷보다 2배 많은 행 및 열을 필요로 한다. 여기서, 열들은 반복되어야 하고, 따라서 x는 1만큼 우측 시프트되고, 그러나, (직사각형 형상으로 인해) 행들의 데시메이션은 스킵될 수 있으며, 따라서 y는 시프트되지 않는다. 특히, blkWidth는 8과 동일하고, blkHeight는 4와 동일하고, log2MatrixSize는 2와 동일하며, 따라서 수학식 8은 다음의 형태를 취한다:In the example shown in FIG. 10 , a QM for a chroma 8x4 block for an 8x4 CU (4:4:4 format) is generated. The selected QM is still the same as in the example shown in FIGS. 8 and 9 , but the 4:4:4 chroma format requires twice as many rows and columns as the 4:2:0 chroma format. Here, the columns have to be repeated, so x is shifted right by 1, but (due to the rectangular shape) the decimation of the rows can be skipped, so y is not shifted. In particular, blkWidth equals 8, blkHeight equals 4, and log2MatrixSize equals 2, so Equation 8 takes the form:

m[ x ][ y ] = ScalingMatrix[ matrixId ][ i ][ j ] (8)m[ x ][ y ] = ScalingMatrix[ matrixId ][ i ][ j ] (8)

여기서 i = ( x << 2 ) >> 3, 및 j = ( y << 2 ) >> 2, 여기서 x = 0..7 및 y = 0..3.where i = ( x << 2 ) >> 3, and j = ( y << 2 ) >> 2, where x = 0..7 and y = 0..3.

크기-64에 대해 송신된 계수들의 수Number of Coefficients Transmitted for Size-64

일 실시예에서, 크기-64로부터의 더 작은 QM의 예측을 가능하게 하기 위해, 우하단 사분면이 VVC 변환 및 양자화 프로세스에 의해 결코 사용되지 않더라도, 크기-64에 대한 모든 계수가 스케일링 리스트 신택스에서 송신된다. 일반적으로, 가장 큰 QM의 모든 계수들을 송신할 수 있다.In one embodiment, to enable prediction of a smaller QM from size-64, all coefficients for size-64 are transmitted in the scaling list syntax, even though the lower-right quadrant is never used by the VVC transform and quantization process. do. In general, it is possible to transmit all coefficients of the largest QM.

그러나, 신택스 엘리먼트 scaling_list_delta_coef가 예측자로서 사용되지 않을 때 크기-64 QM의 우하단 사분면에 대해 제로로 설정될 수 있기 때문에, 이전 작업(JVET-N0847)에 비교하여 송신된 계수들의 이러한 증가된 수와 관련된 오버헤드는 최악의 경우에 2x16 비트로 제한될 수 있다는 점에 주목할 가치가 있다: 우하단 사분면에 대해, 각각이 제로로 강제되면(exp-Golomb로 코딩됨) 1 비트를 취하는 4x4= 16 델타 계수들이 시그널링되고, 2개의 크기-64 QM들(루마 인트라/인터)이 존재한다.However, since the syntax element scaling_list_delta_coef can be set to zero for the lower right quadrant of size-64 QM when not used as a predictor, this increased number of transmitted coefficients and It is worth noting that the overhead involved can be limited to 2x16 bits in the worst case: for the lower right quadrant, 4x4 = 16 delta coefficients that take 1 bit if each is forced to zero (coded exp-Golomb) are signaled, and there are two size-64 QMs (luma intra/inter).

테스트들이 표 8에 설명되어 있고, 이 오버헤드는 예측 개선에 의해 가져오는 이득들과 비교하여 미미하다는 것을 보여준다.The tests are described in Table 8 and show that this overhead is negligible compared to the gains brought by the prediction improvement.

다른 실시예에서, 크기-64 QM의 우하단 사분면에 대한 계수는 크기-64 QM 시그널링의 일부로서 송신되지 않지만, 더 작은 QM이 주어진 크기-64 QM으로부터 먼저 예측될 때 보충 파라미터로서 송신된다.In another embodiment, the coefficients for the lower-right quadrant of the size-64 QM are not transmitted as part of the size-64 QM signaling, but are transmitted as a supplemental parameter when a smaller QM is first predicted from a given size-64 QM.

표 7은 JVET-N0847에 설명되는 방법과 제안된 방법의 일부 비교를 제공한다:Table 7 provides some comparisons of the method described in JVET-N0847 and the proposed method:

표 7Table 7

Figure pct00010
Figure pct00010

이하에서, 실시예에 따른 일부 신택스 및 시맨틱스가 설명된다.Hereinafter, some syntax and semantics according to an embodiment are described.

PPS 신택스 및 시맨틱스(지엽적 적응)PPS syntax and semantics (local adaptation)

Figure pct00011
Figure pct00011

1과 같은 pps_scaling_list_data_present_flag는 PPS를 참조하는 픽처들에 사용되는 스케일링 리스트 데이터가 활성 SPS에 의해 지정된 스케일링 리스트들 및 PPS에 의해 지정된 스케일링 리스트들에 기초하여 유도되는 것을 지정한다. 0과 같은 pps_scaling_list_data_present_flag는 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에 지정된 바와 같은 스케일링 리스트 데이터 시맨틱스에서 설명되는 바와 같은 어레이 ScalingMatrix를 유도하는 데 사용된다.pps_scaling_list_data_present_flag equal to 1 specifies that scaling list data used for pictures referencing the PPS is derived based on the scaling lists specified by the active SPS and the scaling lists specified by the PPS. pps_scaling_list_data_present_flag equal to 0 specifies that the scaling list data used for pictures referencing the PPS is inferred to be the same as those specified by the active SPS. When scaling_list_enabled_flag is equal to 0, the value of pps_scaling_list_data_present_flag will be equal to 0. When scaling_list_enabled_flag is equal to 1, sps_scaling_list_data_present_flag is equal to 0 and pps_scaling_list_data_present_flag is equal to 0, and default scaling matrices are used to derive the Array ScalingMatrix as described in Scaling List Data Semantics as specified in clause 7.4.5.

이 신택스/시맨틱스는 HEVC 표준 또는 VVC 초안에 가깝도록 의도된 예이고, 제한적이지 않다는 점에 유의한다. 예를 들어, scaling_list_data 캐리지는 SPS 또는 PPS로 제한되지 않고, 다른 수단에 의해 송신될 수 있다.Note that this syntax/semantics is an example intended to be close to the HEVC standard or VVC draft, and is not restrictive. For example, the scaling_list_data carriage is not limited to SPS or PPS, and may be transmitted by other means.

스케일링 리스트 데이터 신택스/시맨틱스(단순화됨)Scaling List Data Syntax/Semantics (Simplified)

Figure pct00012
Figure pct00012

0과 동일한 scaling_list_pred_mode_flag[ matrixId ]는 스케일링 행렬이 참조 스케일링 행렬의 값들로부터 유도된다는 것을 지정한다. 참조 스케일링 행렬은 scaling_list_pred_matrix_id_delta[ matrixId ]에 의해 지정된다. 1과 동일한 scaling_list_pred_mode_flag[ matrixId ]는 스케일링 리스트의 값들이 명시적으로 시그널링되는 것을 지정한다.scaling_list_pred_mode_flag[matrixId] equal to 0 specifies that the scaling matrix is derived from the values of the reference scaling matrix. The reference scaling matrix is specified by scaling_list_pred_matrix_id_delta[matrixId]. scaling_list_pred_mode_flag[matrixId] equal to 1 specifies that the values of the scaling list are explicitly signaled.

scaling_list_pred_matrix_id_delta[ matrixId ]는, 다음과 같이, 스케일링 행렬을 유도하는데 이용되는 참조 스케일링 행렬을 지정한다. scaling_list_pred_matrix_id_delta[ matrixId ]의 값은 0 내지 matrixId의 범위(경계값 포함)에 있을 것이다.scaling_list_pred_matrix_id_delta[matrixId] specifies a reference scaling matrix used to derive a scaling matrix as follows. The value of scaling_list_pred_matrix_id_delta[ matrixId ] will be in the range of 0 to matrixId (including the boundary value).

scaling_list_pred_mode_flag[ matrixId ]가 0과 동일할 때:When scaling_list_pred_mode_flag[ matrixId ] is equal to 0:

- 변수 refMatrixSize 및 어레이 refScalingMatrix는 먼저 다음과 같이 유도된다:- The variable refMatrixSize and the array refScalingMatrix are first derived as follows:

o scaling_list_pred_matrix_id_delta[ matrixId ]가 0과 동일하면, 디폴트 값들을 설정하기 위해 다음이 적용된다:o If scaling_list_pred_matrix_id_delta[ matrixId ] is equal to 0, the following applies to set default values:

ㆍ refMatrixSize는 8과 같도록 설정되고,dot refMatrixSize is set equal to 8,

ㆍ matrixId가 짝수이면,dot If matrixId is even,

refScalingMatrix = (9)refScalingMatrix = (9)

{{

{ 16, 16, 16, 16, 16, 16, 16, 16 } // 인트라 디폴트 값들에 대한 플레이스홀더{ 16, 16, 16, 16, 16, 16, 16, 16 } // placeholders for intra default values

{ 16, 16, 16, 16, 16, 16, 16, 16 }{ 16, 16, 16, 16, 16, 16, 16, 16 }

{ 16, 16, 16, 16, 16, 16, 16, 16 }{ 16, 16, 16, 16, 16, 16, 16, 16 }

{ 16, 16, 16, 16, 16, 16, 16, 16 }{ 16, 16, 16, 16, 16, 16, 16, 16 }

{ 16, 16, 16, 16, 16, 16, 16, 16 }{ 16, 16, 16, 16, 16, 16, 16, 16 }

{ 16, 16, 16, 16, 16, 16, 16, 16 }{ 16, 16, 16, 16, 16, 16, 16, 16 }

{ 16, 16, 16, 16, 16, 16, 16, 16 }{ 16, 16, 16, 16, 16, 16, 16, 16 }

{ 16, 16, 16, 16, 16, 16, 16, 16 }{ 16, 16, 16, 16, 16, 16, 16, 16 }

},},

ㆍ 그렇지 않으면dot Otherwise

refScalingMatrix = (10)refScalingMatrix = (10)

{{

{ 16, 16, 16, 16, 16, 16, 16, 16 } // 인터 디폴트 값들에 대한 플레이스홀더{ 16, 16, 16, 16, 16, 16, 16, 16 } // placeholders for inter default values

{ 16, 16, 16, 16, 16, 16, 16, 16 }{ 16, 16, 16, 16, 16, 16, 16, 16 }

{ 16, 16, 16, 16, 16, 16, 16, 16 }{ 16, 16, 16, 16, 16, 16, 16, 16 }

{ 16, 16, 16, 16, 16, 16, 16, 16 }{ 16, 16, 16, 16, 16, 16, 16, 16 }

{ 16, 16, 16, 16, 16, 16, 16, 16 }{ 16, 16, 16, 16, 16, 16, 16, 16 }

{ 16, 16, 16, 16, 16, 16, 16, 16 }{ 16, 16, 16, 16, 16, 16, 16, 16 }

{ 16, 16, 16, 16, 16, 16, 16, 16 }{ 16, 16, 16, 16, 16, 16, 16, 16 }

{ 16, 16, 16, 16, 16, 16, 16, 16 }{ 16, 16, 16, 16, 16, 16, 16, 16 }

},},

o 그렇지 않으면(scaling_list_pred_matrix_id_delta[ matrixId ]가 0을 초과하면), 다음이 적용된다:o Otherwise (scaling_list_pred_matrix_id_delta[ matrixId ] exceeds 0), the following applies:

refMatrixId = matrixId - scaling_list_pred_matrix_id_delta[ matrixId ] (11)refMatrixId = matrixId - scaling_list_pred_matrix_id_delta[ matrixId ] (11)

refMatrixSize = (refMatrixId < 20) ? 8 : (refMatrixId < 26) ? 4 : 2 ) (12)refMatrixSize = (refMatrixId < 20) ? 8 : (refMatrixId < 26) ? 4: 2 ) (12)

refScalingMatrix = ScalingMatrix[ refMatrixId ] (13)refScalingMatrix = ScalingMatrix[ refMatrixId ] (13)

- 그 다음, 어레이 ScalingMatrix[ matrixId ]는 다음과 같이 유도된다:- Then the array ScalingMatrix[ matrixId ] is derived as:

ScalingMatrix[ matrixId ][ x ][ y ] = refScalingMatrix[ i ][ j ] (14)ScalingMatrix[ matrixId ][ x ][ y ] = refScalingMatrix[ i ][ j ] (14)

여기서, matrixSize = (matrixId < 20) ? 8 : (matrixId < 26) ? 4 : 2 )where matrixSize = (matrixId < 20) ? 8 : (matrixId < 26) ? 4: 2 )

x = 0 .. matrixSize - 1, y = 0 .. matrixSize - 1,x = 0 .. matrixSize - 1, y = 0 .. matrixSize - 1,

i = x << ( log2(refMatrixSize) - log2( matrixSize ) ), 및i = x << ( log2(refMatrixSize) - log2( matrixSize ) ), and

j = y << ( log2(refMatrixSize) - log2( matrixSize ) )j = y << ( log2(refMatrixSize) - log2( matrixSize ) )

scaling_list_dc_coef_minus8[ matrixId ] + 8은, 조항 xxx에서 설명된 바와 같이, 관련될 때 스케일링 행렬의 첫 번째 값을 지정한다. scaling_list_dc_coef_minus8[ matrixId ]의 값은 -7 내지 247의 범위(경계값 포함)에 있어야 한다.scaling_list_dc_coef_minus8[matrixId] + 8 specifies the first value of the scaling matrix when relevant, as described in clause xxx. The value of scaling_list_dc_coef_minus8[ matrixId ] must be in the range of -7 to 247 (including the boundary value).

scaling_list_pred_mode_flag[ matrixId ]가 0과 동일할 때, scaling_list_pred_matrix_id_delta[ matrixId ]가 0보다 크고, refMatrixId < 14이면, 다음이 적용된다:When scaling_list_pred_mode_flag[ matrixId ] is equal to 0, if scaling_list_pred_matrix_id_delta[ matrixId ] is greater than 0 and refMatrixId < 14, the following applies:

- matrixId<14이면, scaling_list_dc_coef_minus8[ matrixId ]는 scaling_list_dc_coef_minus8[ refMatrixId ]와 동일한 것으로 추론되고,- If matrixId<14, scaling_list_dc_coef_minus8[ matrixId ] is inferred to be the same as scaling_list_dc_coef_minus8[ refMatrixId ],

- 그렇지 않으면, ScalingMatrix[ matrixId ][ 0 ][ 0 ]은 scaling_list_dc_coef_minus8[ refMatrixId ] + 8과 동일하게 설정된다- Otherwise, ScalingMatrix[ matrixId ][ 0 ][ 0 ] is set equal to scaling_list_dc_coef_minus8[ refMatrixId ] + 8

scaling_list_pred_mode_flag[ matrixId ]가 0과 동일할 때, scaling_list_pred_matrix_id_delta[ matrixId ]가 0과 동일하고(디폴트 값들을 표시함), matrixId<14이면, scaling_list_dc_coef_minus8[ matrixId ]는 8과 동일한 것으로 추론된다When scaling_list_pred_mode_flag[matrixId] is equal to 0, scaling_list_pred_matrix_id_delta[matrixId] is equal to 0 (indicating default values) and if matrixId<14, scaling_list_dc_coef_minus8[matrixId] is inferred to be equal to 8

scaling_list_delta_coef는, scaling_list_pred_mode_flag[ matrixId ]가 1과 동일할 때, 현재 행렬 계수 ScalingList[ matrixId ][ i ]와 이전 행렬 계수 ScalingList[ matrixId ][i-1] 사이의 차이를 지정한다. scaling_list_delta_coef의 값은 -128 내지 127의 범위(경계값 포함)에 있어야 한다. ScalingList[ matrixId ][ i ]의 값은 0보다 클 것이다.scaling_list_delta_coef specifies the difference between the current matrix coefficient ScalingList[matrixId][i] and the previous matrix coefficient ScalingList[matrixId][i-1] when scaling_list_pred_mode_flag[matrixId] is equal to 1. The value of scaling_list_delta_coef must be in the range of -128 to 127 (including the boundary value). The value of ScalingList[ matrixId ][ i ] will be greater than 0.

존재할 때(즉, scaling_list_pred_mode_flag[ matrixId ]가 1과 동일할 때), 어레이 ScalingMatrix[ matrixId ]는 다음과 같이 유도된다:When present (i.e., when scaling_list_pred_mode_flag[matrixId] is equal to 1), the array ScalingMatrix[matrixId] is derived as follows:

ScalingMatrix[ matrixId ][ i ][ j ] = ScalingList[ matrixId ][ k ] (15)ScalingMatrix[ matrixId ][ i ][ j ] = ScalingList[ matrixId ][ k ] (15)

여기서 k = 0 .. coefNum - 1,where k = 0 .. coefNum - 1,

i = diagScanOrder[ log2(coefNum)/2 ][ log2(coefNum)/2 ][ k ][ 0 ], 및i = diagScanOrder[ log2(coefNum)/2 ][ log2(coefNum)/2 ][ k ][ 0 ], and

j = diagScanOrder[ log2(coefNum)/2 ][ log2(coefNum)/2 ][ k ][ 1 ]j = diagScanOrder[ log2(coefNum)/2 ][ log2(coefNum)/2 ][ k ][ 1 ]

JVET-N0847 신택스와 비교되는 주요 단순화들은 () 루프에 대한 것의 제거 및 [sizeId][matrixId]로부터 [matrixId]로의 인덱싱 단순화이다.The main simplifications compared to the JVET-N0847 syntax are the elimination of the () loop and the simplification of indexing from [sizeId][matrixId] to [matrixId].

"조항 xxx"는 본 문서의 스케일링 행렬 유도 프로세스와 매칭되는, VVC 사양에 도입될 것으로 결정되지 않은 섹션 번호를 지칭한다."Article xxx" refers to a section number that has not been determined to be introduced in the VVC specification that is consistent with the scaling matrix derivation process of this document.

이 신택스/시맨틱스는 HEVC 표준 또는 VVC 초안 5에 가깝도록 의도된 예이고, 제한적이지 않다는 점에 유의한다. 예를 들어, 계수 범위는 1...255로 제한되지 않고, 예를 들어, 1..127 (7 비트), 또는 -64..63일 수 있다. 또한, 이는 6개의 타입 x 5개의 크기로 조직된 30개의 QM으로 제한되지 않는다(8개의 타입, 및 더 적거나 더 많은 크기가 있을 수 있다. 적응될 수 있는 표 5를 참조한다. 그런 다음, DC 계수의 존재에 대한 조건 및 coefNum에 대한 간단한 적응들이 요구될 것이다.) QM 예측의 타입(여기서는 카피만)도 제한적이지 않다. 예를 들어, 스케일링 인자 또는 오프셋이 추가될 수 있고, 예측 위에 명시적 코딩이 잔차로서 추가될 수 있다. 이는 계수 송신(여기서 DPCM)에 사용되는 방법, DC 계수의 존재, 및 고정되는 계수들의 수(서브세트만이 송신될 수 있음)에 대해서도 동일하다.Note that this syntax/semantics is an example intended to be close to the HEVC standard or VVC Draft 5, and is not restrictive. For example, the coefficient range is not limited to 1...255, and may be, for example, 1..127 (7 bits), or -64..63. Also, it is not limited to 30 QMs organized in 6 types x 5 sizes (there may be 8 types, and fewer or more sizes. See Table 5, which can be adapted. Then: Simple adaptations to the condition for the presence of DC coefficients and to coefNum will be required.) The type of QM prediction (only copy here) is not restrictive either. For example, a scaling factor or offset may be added, and explicit coding above the prediction may be added as a residual. The same is true for the method used for coefficient transmission (here DPCM), the presence of DC coefficients, and the number of coefficients that are fixed (only a subset can be transmitted).

디폴트 값들에 관하여, 이는 MODE_INTRA 및 MODE_INTER와 연관된 2개의 디폴트 QM에 제한되지 않고, 관련 디폴트 값들이 합의될 때까지(예를 들어, HEVC와 동일한 디폴트 QM들을 선택할 수 있을 때까지) 모든 16개의 값으로 여기서와 마찬가지로 채워진다.Regarding default values, it is not limited to the two default QMs associated with MODE_INTRA and MODE_INTER, but with all 16 values until the relevant default values are agreed upon (eg, the same default QMs as HEVC can be selected). It is filled as here.

또한, 시그널링될 계수들의 수 coefNum은 비교들의 시퀀스 대신에 수학적으로 표현될 수 있고, 동일한 결과를 갖는다: coefNum= Min(64, 4096 >> ( (matrixId + 4) / 6) * 2), 이는 HEVC 또는 현재의 VVC 초안 스타일에 더 가깝지만, 환영받지 못할 수 있는 나눗셈을 도입한다.Also, the number of coefficients to be signaled coefNum can be expressed mathematically instead of a sequence of comparisons, with the same result: coefNum= Min(64, 4096 >> ( (matrixId + 4) / 6) * 2), which is HEVC Alternatively, it is closer to the current VVC draft style, but introduces division that may not be welcome.

여기서, 더 큰 행렬들이 먼저 송신되고, 예측 참조(scaling_list_pred_matrix_id_delta에 의해 표시됨)가 (예를 들어, scaling_list_pred_matrix_id_delta가 0인 경우) 그것이 의도한 블록 크기 또는 타입, 또는 디폴트 값들에 관계없이 임의의 이전에 송신된 행렬일 수 있도록 단일 인덱스가 사용된다는 것에 유의하여야 한다.Here, the larger matrices are transmitted first, and the prediction reference (indicated by scaling_list_pred_matrix_id_delta) (e.g., when scaling_list_pred_matrix_id_delta is 0) is the block size or type for which it is intended, or any previously transmitted regardless of default values. Note that a single index is used to be a matrix.

도 11은, 일 실시예에 따른, 스케일링 리스트 데이터 신택스 구조를 파싱하기 위한 프로세스(1100)를 예시한다. 이 실시예에서, 입력은 코딩된 비트스트림이고, 출력은 ScalingMatrix의 어레이이다. DC 값에 관한 상세들은 명확성을 위해 생략된다. 특히, 단계 1110에서, QM 예측 모드는 비트스트림으로부터 디코딩된다. QM이 예측되면(1120), 디코더는 전술한 플래그에 따라 QM이 비트스트림에서 추론(예측) 또는 시그널링되는지를 더 결정한다. 단계 1130에서, 디코더는 비트스트림으로부터 QM 예측 데이터를 디코딩하는데, 이는 시그널링되지 않을 때 QM, 예를 들어, QM 인덱스 차이 scaling_list_pred_matrix_id_delta을 추론하는데 필요하다. 이어서, 디코더는 QM이 디폴트 값들로부터(예를 들어, scaling_list_pred_matrix_id_delta가 0인 경우에) 또는 이전에 디코딩된 QM으로부터 예측되는지를 결정한다(1140). 참조 QM이 디폴트 QM이면, 디코더는 참조 QM으로서 디폴트 QM을 선택한다(1150). 예를 들어, matrixId의 패리티에 따라, 선택할 여러 디폴트 QM들이 있을 수 있다. 그렇지 않으면, 디코더는 이전에 디코딩된 QM을 참조 QM으로서 선택한다(1155). 참조 QM의 인덱스는 matrixId 및 전술한 인덱스 차이로부터 유도된다. 단계 1160에서, 디코더는 참조 QM으로부터 QM을 예측한다. 예측은 참조 QM이 현재 QM과 동일한 크기인 경우 간단한 카피로 이루어지거나, 예상보다 큰 경우 데시메이션으로 이루어진다. 결과는 ScalingMatrix[matrixId]에 저장된다.11 illustrates a process 1100 for parsing a scaling list data syntax structure, according to one embodiment. In this embodiment, the input is a coded bitstream and the output is an array of ScalingMatrix. Details regarding the DC value are omitted for clarity. In particular, in step 1110, the QM prediction mode is decoded from the bitstream. If QM is predicted ( 1120 ), the decoder further determines whether QM is speculated (predicted) or signaled in the bitstream according to the aforementioned flag. In step 1130, the decoder decodes QM prediction data from the bitstream, which is necessary to infer QM, eg, QM index difference scaling_list_pred_matrix_id_delta when not signaled. Next, the decoder determines whether the QM is predicted from default values (eg, when scaling_list_pred_matrix_id_delta is 0) or from a previously decoded QM ( 1140 ). If the reference QM is the default QM, the decoder selects the default QM as the reference QM ( 1150 ). For example, depending on the parity of matrixId, there may be several default QMs to choose from. Otherwise, the decoder selects the previously decoded QM as the reference QM ( 1155 ). The index of the reference QM is derived from the matrixId and the aforementioned index difference. In step 1160, the decoder predicts a QM from the reference QM. Prediction is made with a simple copy if the reference QM is the same size as the current QM, or with decimation if it is larger than expected. The result is stored in ScalingMatrix[matrixId].

QM이 예측되지 않으면(1120), 디코더는 matrixId에 따라 비트스트림으로부터 디코딩될 QM 계수의 수를 결정한다(1170). 예를 들어: matrixId가 20보다 낮으면 64이고, matrixId가 20과 25 사이에 있으면 16, 그렇지 않으면 4이다. 단계 1175에서, 디코더는 비트스트림으로부터 관련 수의 QM 계수들을 디코딩한다. 단계 1180에서, 디코더는, 스캐닝 순서, 예를 들어, 대각 스캔에 따라 2D 행렬로 디코딩된 QM 계수들을 조직화한다. 결과는 ScalingMatrix[matrixId]에 저장된다. ScalingMatrix[matrixId]를 사용하여, 디코더는 QM 유도 프로세스를 사용하여, 비-정사각형 형상 및/또는 상이한 크로마 포맷일 수 있는 변환 블록을 역양자화하기 위한 양자화 행렬 m[][]을 획득할 수 있다.If QM is not predicted ( 1120 ), the decoder determines the number of QM coefficients to be decoded from the bitstream according to matrixId ( 1170 ). For example: 64 if matrixId is less than 20, 16 if matrixId is between 20 and 25, 4 otherwise. In step 1175, the decoder decodes the relevant number of QM coefficients from the bitstream. At step 1180 , the decoder organizes the decoded QM coefficients into a 2D matrix according to a scanning order, eg, a diagonal scan. The result is stored in ScalingMatrix[matrixId]. Using ScalingMatrix[matrixId], the decoder may use a QM derivation process to obtain a quantization matrix m[][] for inverse quantizing the transform block, which may be of a non-square shape and/or a different chroma format.

단계 1190에서, 디코더는 현재 QM이 파싱될 마지막 QM인지를 검사한다. 마지막 것이 아니면, 제어는 단계 1110으로 복귀하고; 그렇지 않으면, QM 파싱 프로세스는 모든 QM들이 비트스트림으로부터 파싱될 때 중단된다.In step 1190, the decoder checks whether the current QM is the last QM to be parsed. If not, control returns to step 1110; Otherwise, the QM parsing process is aborted when all QMs are parsed from the bitstream.

도 12는 일 실시예에 따른, 인코더 측에서 스케일링 리스트 데이터 신택스 구조를 인코딩하는 프로세스(1200)를 예시한다. 인코더 측에서, QM들은 더 큰 블록 크기로부터 더 작은 블록 크기로(예를 들어, 0에서 30까지의 matrixId) 설명된 순서로 스캐닝된다. 단계 1210에서, 인코더는 예측 선호도를 검색하여 현재 QM이 이전에 코딩된 것의 카피(또는 데시메이션)인지를 결정한다. QM들은 QM 예측의 효율을 최적화하는 방식으로 설계될 수 있는데, 예를 들어, 일부 QM들이 초기에 충분히 가깝거나, 디폴트 QM들로부터 가깝다면, 이들은 동일하도록 강제될 수 있다(또는 크기들이 상이하다면 데시메이트될 수 있다). 또한, 크기-64 QM의 우하단 사분면 내의 계수들은 후속 QM의 더 나은 예측을 위해, 또는 예측을 위해 결코 재사용되지 않는다면 QM 비트 비용을 감소시키기 위해 최적화될 수 있다. 일단 결정되면, QM 예측 모드가 비트스트림에 인코딩된다.12 illustrates a process 1200 of encoding a scaling list data syntax structure at the encoder side, according to an embodiment. At the encoder side, QMs are scanned in the order described from larger block sizes to smaller block sizes (eg matrixId from 0 to 30). In step 1210, the encoder searches the prediction preferences to determine if the current QM is a copy (or decimation) of what was previously coded. The QMs can be designed in a way that optimizes the efficiency of QM prediction, eg, if some QMs are initially close enough, or close from the default QMs, they can be forced to be the same (or if the sizes are different, they can be can be mated). Also, the coefficients in the lower right quadrant of size-64 QM can be optimized for better prediction of subsequent QMs, or to reduce QM bit cost if never reused for prediction. Once determined, the QM prediction mode is encoded into the bitstream.

특히, 인코더가 예측을 사용하기로 결정하면(1220), 단계 1230에서, 예측 모드가 인코딩된다(예를 들어, scaling_list_pred_mode_flag= 0). 단계 1240에서, 예측 파라미터들(예를 들어, QM 인덱스 차이 scaling_list_pred_matrix_id_delta)이 인코딩된다: 디폴트 QM 값들에 대한 제로 인덱스 차이, 또는 이전 QM이 예측 참조로서 선택되었다면 관련 인덱스 차이. 한편, 명시적 시그널링이 결정되었다면, 단계 1250에서, 예측 모드가 인코딩된다(예를 들어, scaling_list_pred_mode_flag= 0). 그 다음, 대각 스캔(1260)과 이어서 QM 계수 인코딩(1270)이 수행된다.In particular, if the encoder decides to use prediction ( 1220 ), then at step 1230 , the prediction mode is encoded (eg, scaling_list_pred_mode_flag=0). In step 1240, the prediction parameters (eg, QM index difference scaling_list_pred_matrix_id_delta) are encoded: zero index difference to default QM values, or the relevant index difference if a previous QM was selected as the prediction reference. On the other hand, if explicit signaling is determined, in step 1250, a prediction mode is encoded (eg, scaling_list_pred_mode_flag=0). A diagonal scan 1260 is then performed followed by QM coefficient encoding 1270 .

단계 1280에서, 인코더는 현재 QM이 인코딩될 마지막 QM인지를 검사한다. 마지막 것이 아니면, 제어는 단계 1210으로 복귀하고; 그렇지 않으면, QM 인코딩 프로세스는 모든 QM이 비트스트림으로 인코딩될 때 중단된다.In step 1280, the encoder checks whether the current QM is the last QM to be encoded. If not, control returns to step 1210; Otherwise, the QM encoding process is aborted when all QMs are encoded into the bitstream.

도 13은 일 실시예에 따른, QM 유도를 위한 프로세스(1300)를 예시한다. 입력은 ScalingMatrix 어레이, 및 크기(폭/높이), 예측 모드(인트라/인터/IBC,...), 및 컬러 성분(Y/U/V)과 같은 변환 블록 파라미터들을 포함할 수 있다. 출력은 변환 블록과 동일한 크기를 갖는 QM이다. DC 값에 관한 상세들은 명확성을 위해 생략된다. 특히, 단계 1310에서, 디코더는 현재 변환 블록 크기(폭/높이), 예측 모드(인트라/인터/IBC,...), 전술된 바와 같은 컬러 성분(Y/U/V)(통합된 QM 인덱스)에 따라 QM 인덱스 matrixId를 결정한다. 단계 1320에서, 디코더는 전술된 바와 같이, 변환 블록 크기에 매칭하도록 선택된 QM(ScalingMatrix[matrixId])을 리사이징한다. 변형에서, 단계 1320은 예측에 필요한 데시메이션을 포함할 수 있다.13 illustrates a process 1300 for QM derivation, according to one embodiment. The input may include a ScalingMatrix array, and transform block parameters such as size (width/height), prediction mode (intra/inter/IBC,...), and color component (Y/U/V). The output is a QM with the same size as the transform block. Details regarding the DC value are omitted for clarity. Specifically, in step 1310, the decoder determines the current transform block size (width/height), prediction mode (intra/inter/IBC,...), color components (Y/U/V) as described above (integrated QM index) ) to determine the QM index matrixId. In step 1320, the decoder resizes the selected QM (ScalingMatrix[matrixId]) to match the transform block size, as described above. In a variant, step 1320 may include decimation necessary for prediction.

QM 유도 프로세스는 인코더 측에서 유사하다. 양자화는 변환 계수들을 QM 값들로 나누는 반면, 역양자화는 승산한다. 그러나, QM은 동일하다. 특히, 인코더에서 재구성을 위해 사용되는 QM들은 비트스트림에서 시그널링된 것들과 매칭할 것이다.The QM derivation process is similar on the encoder side. Quantization divides transform coefficients by QM values, whereas inverse quantization multiplies. However, the QM is the same. In particular, the QMs used for reconstruction at the encoder will match those signaled in the bitstream.

개념적으로, 변환 계수들 d[ x ][ y ]는 다음과 같이 양자화될 수 있고, 여기서 qStep는 양자화 스텝 크기이고 m[][]는 양자화 행렬이다:Conceptually, the transform coefficients d[ x ][ y ] can be quantized as follows, where qStep is the quantization step size and m[][] is the quantization matrix:

TransCoeffLevel[xTbY][yTbY][cIdx][x][y] = d[x][y] / qStep / m[x][y]TransCoeffLevel[xTbY][yTbY][cIdx][x][y] = d[x][y] / qStep / m[x][y]

그러나, 정수 계산을 위해 그리고 나눗셈을 피하기 위해, 이는 통상적으로 다음과 같다:However, for integer arithmetic and to avoid division, it is usually as follows:

TransCoeffLevel[xTbY][yTbY][cIdx][x][y] = ( ( d[x][y] * im[x][y] * ilevelScale[ qP%6 ] >> (qP / 6 ) ) + ( 1 << ( bdShift - 1 ) ) ) >> bdShift )TransCoeffLevel[xTbY][yTbY][cIdx][x][y] = ( ( d[x][y] * im[x][y] * ilevelScale[ qP%6 ] >> (qP / 6 ) ) + ( 1 << ( bdShift - 1 ) ) ) >> bdShift )

여기서, 예를 들어, im[x][y]~= 65536/ m[x][y]이고, ilevelScale[0..5]= 65536/ levelScale[0..5]이며, bdShift는 적절한 값이다. 실제로, 소프트웨어 코더 im*ilevelScale의 경우, 통상적으로 미리 계산되어 표들에 저장된다.Here, for example, im[x][y]~= 65536/ m[x][y], ilevelScale[0..5]= 65536/ levelScale[0..5], and bdShift is an appropriate value . In practice, in the case of the software coder im*ilevelScale, it is usually pre-computed and stored in tables.

상기에서, QM 예측 프로세스와 QM 유도 프로세스는 별개로 수행된다. 다른 실시예에서, QM 예측은 QM 유도 프로세스로 연기될 수 있다. 이 실시예는 QM 시그널링 신택스를 변경하지 않는다. 연속적인 리사이즈들로 인해 기능적으로 상이할 수 있는 이 실시예는 예측 부분(참조 QM 획득 + 카피/다운스케일) 및 대각 스캔을 후술하는 "QM 유도 프로세스"로 연기시킨다.In the above, the QM prediction process and the QM derivation process are performed separately. In other embodiments, QM prediction may be deferred to the QM derivation process. This embodiment does not change the QM signaling syntax. This embodiment, which may be functionally different due to successive resizing, defers the prediction part (reference QM acquisition + copy/downscale) and diagonal scan to the “QM derivation process” described below.

일 실시예에서, 이때, 스케일링 리스트 데이터 파싱 프로세스(1100)의 출력은 예측 플래그들 및 유효한 예측 파라미터들과 함께, ScalingMatrix 대신에 ScalingList ()의 어레이이다: 정의된 ScalingList(디폴트 또는 시그널링됨)의 인덱스를 항상 포함하는 ScalingMatrixPredId 어레이. 이 어레이는 scaling_list_pred_matrix_id_delta를 해석함으로써 QM 디코딩 동안 재귀적으로 구축되며, 따라서, QM 유도 프로세스는 이 인덱스를 직접 사용하여 현재 변환 블록을 역양자화하는데 사용되는 QM을 구축하기 위한 실제 값들을 얻을 수 있다.In one embodiment, then, the output of the scaling list data parsing process 1100 is an array of ScalingList() instead of ScalingMatrix, with prediction flags and valid prediction parameters: index of the defined ScalingList (default or signaled) An array of ScalingMatrixPredId that always contains . This array is built recursively during QM decoding by interpreting scaling_list_pred_matrix_id_delta, so the QM derivation process can use this index directly to get the actual values for building the QM used to inverse quantize the current transform block.

이하에서, 일 실시예에 따른, 스케일링 리스트 시맨틱스를 예시하기 위한 예가 제공된다.Hereinafter, an example is provided to illustrate scaling list semantics, according to an embodiment.

스케일링 행렬 유도 프로세스(새로운 사항: 스케일링 리스트 시맨틱스에서 설명을 부분적으로 대체하고; 이는 섹션 xxx이다)Scaling Matrix Derivation Process (New: Partially superseding the description in Scaling List Semantics; this is section xxx)

이 프로세스에 대한 입력은 예측 모드 predMode, 컬러 성분 변수 cIdx, 블록 폭 blkWidth 및 블록 높이 blkHeight이다.Inputs to this process are the prediction mode predMode, the color component variable cIdx, the block width blkWidth and the block height blkHeight.

이 프로세스의 출력은 (blkWidth)x(blkHeight) 어레이 m[ x ][ y ] (스케일링 행렬)이고, x와 y는 수평 및 수직 계수 위치이다. SubWidthC 및 SubHeightC는 크로마 포맷에 의존하며, 루마 성분 및 크로마 성분 내의 샘플들의 수의 비율을 표시한다는 점에 유의한다.The output of this process is the (blkWidth)x(blkHeight) array m[ x ][ y ] (scaling matrix), where x and y are the horizontal and vertical coefficient positions. Note that SubWidthC and SubHeightC depend on the chroma format and indicate the ratio of the number of samples in the luma component and the chroma component.

변수 matrixId는 다음과 같이 유도된다:The variable matrixId is derived as follows:

matrixId = 6 * sizeId + matrixTypeId (xxx-1)matrixId = 6 * sizeId + matrixTypeId (xxx-1)

여기서 subWidth = (cIdx > 0) ? SubWidthC : 1,where subWidth = (cIdx > 0) ? SubWidthC: 1,

subHeight = (cIdx > 0) ? SubHeightC : 1,subHeight = (cIdx > 0) ? SubHeightC: 1,

sizeId = 6 - max( log2( blkWidth * subWidth ), log2( blkHeight * subHeight ) ), 및sizeId = 6 - max( log2( blkWidth * subWidth ), log2( blkHeight * subHeight ) ), and

matrixTypeId = ( 2 * cIdx + ( predMode = = MODE_INTER ? 1 : 0 ) )matrixTypeId = ( 2 * cIdx + ( predMode = = MODE_INTER ? 1: 0 ) )

변수 log2MatrixSize는 다음과 같이 유도된다:The variable log2MatrixSize is derived as follows:

log2MatrixSize = (matrixId < 20) ? 3 : (matrixId < 26) ? 2 : 1 (xxx-2)log2MatrixSize = (matrixId < 20) ? 3: (matrixId < 26) ? 2:1 (xxx-2)

출력 어레이 m[ x ][ y ]는 0 내지 blkWidth-1 범위(경계값 포함)의 x 및 0 내지 blkHeight-1 범위(경계값 포함)의 y에 대해 다음을 적용함으로써 유도된다:The output array m[ x ][ y ] is derived by applying the following for x in the range 0 to blkWidth-1 (inclusive) and y in the range 0 to blkHeight-1 (inclusive):

m[ x ][ y ] = ScalingMatrix[ matrixId ][ i ][ j ] (xxx-3)m[ x ][ y ] = ScalingMatrix[ matrixId ][ i ][ j ] (xxx-3)

여기서 i = ( x << log2MatrixSize ) >> log2( blkWidth ), 및where i = ( x << log2MatrixSize ) >> log2( blkWidth ), and

j = ( y << log2MatrixSize ) >> log2( blkHeight )j = ( y << log2MatrixSize ) >> log2( blkHeight )

matrixId가 14보다 낮은 경우, m[ 0 ][ 0 ]은 다음과 같이 추가로 수정된다:If matrixId is lower than 14, m[ 0 ][ 0 ] is further modified as follows:

m[ 0 ][ 0 ] = scaling_list_dc_coef_minus8[ matrixId ] + 8 (xxx-4)m[ 0 ][ 0 ] = scaling_list_dc_coef_minus8[ matrixId ] + 8 (xxx-4)

이것이 일 예이고, scaling_list_data 신택스 및 시맨틱스에 대해서와 같이, 제한적이지 않다는 점에 유의한다. 예를 들어, 이는 MODE_INTRA 및 MODE_INTER와 연관되는 2개의 디폴트 QM에 제한되지 않고, 관련 디폴트 값들이 합의될 때까지(예를 들어 HEVC와 동일한 디폴트 QM들을 선택할 수 있을 때까지) 모든 16개의 값으로 여기서와 마찬가지로 채워진다. 단일 디폴트 QM, 또는 2 초과가 있을 수 있다. 예를 들어, 블록 크기당 6개보다 많거나 적은 타입의 행렬이 있다면, MatrixId 계산은 상이할 수 있다. 중요한 것은, 선택된 QM과 상이한 블록 크기들에 적응하기 위한 수평 및 수직 다운스케일 및 업스케일이 단일 프로세스에서, 바람직하게는 간단하게(여기서는 우측 시프트가 뒤따르는 좌측 시프트) 행해진다는 것이다.Note that this is an example and is not restrictive, such as for the scaling_list_data syntax and semantics. For example, it is not limited to the two default QMs associated with MODE_INTRA and MODE_INTER, but with all 16 values until the relevant default values are agreed (for example, default QMs equal to HEVC can be selected) where is filled as There can be a single default QM, or more than two. For example, if there are more or less than 6 types of matrices per block size, the MatrixId calculation may be different. Importantly, the horizontal and vertical downscaling and upscaling to adapt to block sizes different from the selected QM is done in a single process, preferably simply (here left shift followed by right shift).

직사각형 블록들의 경우, 정사각형을 둘러싸는 현재 블록에 대한 QM 식별자를 선택하는 것으로 제한되지 않는다: 수학식 xxx-1에서의 sizeId의 유도는 상이한 규칙을 따를 수 있다.For rectangular blocks, it is not limited to selecting a QM identifier for the current block surrounding the square: the derivation of sizeId in equation (xxx-1) may follow different rules.

또한, 선택된 QM 크기 log2MatrixSize는 비교들의 시퀀스 대신에 수학적으로 표현될 수 있고, 동일한 결과를 갖는다: log2MatrixSize = min(3, 6-(matrixId+ 4) / 6), 그러나 이는 환영받지 못할 수 있는 나눗셈을 도입한다.Also, the selected QM size log2MatrixSize can be expressed mathematically instead of a sequence of comparisons, with the same result: log2MatrixSize = min(3, 6-(matrixId+ 4) / 6), but this introduces division which may be unwelcome. do.

이하에서, 실시예에 따라, 스케일링 프로세스에 대한 시맨틱스를 설명하기 위한 예가 제공된다.Hereinafter, according to an embodiment, an example for explaining the semantics of a scaling process is provided.

변환 계수들에 대한 스케일링 프로세스(적응됨)Scaling process for transform coefficients (adapted)

[...][...]

x = 0..nTbW-1, y= 0..nTbH-1인 스케일링된 변환 계수들 d[ x ][ y ] 의 유도를 위해, 다음이 적용된다:For the derivation of the scaled transform coefficients d[ x ][ y ] with x = 0..nTbW-1, y = 0..nTbH-1, the following applies:

(nTbW)x(nTbH) 중간 스케일링 인자 어레이 m은 다음과 같이 유도된다:The (nTbW)x(nTbH) intermediate scaling factor array m is derived as follows:

다음 조건들 중 하나 이상이 참이면, m[ x ][ y ]는 16과 같게 설정된다:If one or more of the following conditions are true, then m[ x ][ y ] is set equal to 16:

scaling_list_enabled_flag는 0과 같다.scaling_list_enabled_flag is equal to 0.

transform_skip_flag[ xTbY ][ yTbY ]는 1과 같다.transform_skip_flag[ xTbY ][ yTbY ] is equal to 1.

그렇지 않으면, m은 예측 모드 CuPredMode[ xTbY ][ yTbY ], 컬러 성분 변수 cIdx, 블록 폭 nTbW 및 블록 높이 nTbH로 입력들로서 호출되는, 조항 xxx에 지정된 바와 같은 스케일링 행렬 유도 프로세스의 출력이다.Otherwise, m is the output of the scaling matrix derivation process as specified in clause xxx, called as inputs with the prediction mode CuPredMode[xTbY][yTbY], the color component variable cIdx, the block width nTbW and the block height nTbH.

스케일링 인자 ls[ x ][ y ]는 다음과 같이 유도된다:The scaling factor ls[ x ][ y ] is derived as:

[...][...]

VVC 초안 5와 비교되는 주요 변경은 scaling_list_data 시맨틱스에 설명된 어레이의 일부를 카피하는 대신에 조항 xxx의 호출이다.The major change compared to VVC Draft 5 is the invocation of clause xxx instead of copying part of the array described in scaling_list_data semantics.

상기와 같이 유의할 점은, 이는 현재의 VVC 초안에 대한 변경들을 최소화하도록 의도된 예이고, 제한적이지 않다는 점이다. 예를 들어, 스케일링 행렬 유도 프로세스에 대한 컬러 성분 입력은 cIdx와 상이할 수 있다. 또한, QM은 스케일링 인자로서 사용되는 것으로 제한되지 않고, 예를 들어, QP-오프셋으로서 사용될 수 있다.As noted above, this is an example intended to minimize changes to the current VVC draft, and is not limiting. For example, the color component input to the scaling matrix derivation process may be different from cIdx. Also, QM is not limited to being used as a scaling factor, and may be used, for example, as a QP-offset.

QM 코딩 성능은 HEVC 표준화 동안 사용된 것과 동일한 테스트 세트를 사용하여 테스트되었고, 공통 표준들(JPEG, MPEG2, AVC, HEVC)의 추천된 또는 디폴트 QM들 및 실제 방송에서 발견된 QM들로부터 유도된 QM 세트들로 보강되었다. 모든 테스트들에서, 일부 QM들은 하나의 타입에서 다른 타입으로(예를 들어, 루마에서 크로마로, 또는 인트라에서 인터로), 및/또는 하나의 크기에서 다른 크기로 카피된다.QM coding performance was tested using the same test set used during HEVC standardization, and QM derived from recommended or default QMs of common standards (JPEG, MPEG2, AVC, HEVC) and QMs found in actual broadcast. reinforced with sets. In all tests, some QMs are copied from one type to another (eg, luma to chroma, or intra to inter), and/or from one size to another.

아래의 표는 3개의 상이한 방법을 이용하여 scaling_list_data를 인코딩하는 데 필요한 비트들의 수를 보고한다: HEVC, JVET-N0847 및 제안됨. 특히, HEVC는 HEVC 테스트 세트(테스트당 24 QM들)를 이용하고, 2개의 다른 것은 유도된 테스트 세트를 이용한다(테스트당 30 QM들, 다음과 같은 추가적인 크기들을 가짐: 크로마에 대한 크기-2 및 루마에 대한 크기-64; 크기-2 QM들은 크기-4로부터 다운샘플링되고, 크기-64는 크기-32로부터 카피되고, 크기-32는 크기-16으로부터 카피되고, 크기 16, 8, 4는 그대로 유지된다).The table below reports the number of bits required to encode scaling_list_data using three different methods: HEVC, JVET-N0847 and proposed. In particular, HEVC uses the HEVC test set (24 QMs per test), and two others use the derived test set (30 QMs per test, with the following additional sizes: size-2 for chroma and size-64 for luma; size-2 QMs are downsampled from size-4, size-64 copied from size-32, size-32 copied from size-16, sizes 16, 8, 4 are as is maintain).

표 8Table 8

Figure pct00013
Figure pct00013

이 테스트를 위해, 제안된 기법은 심지어 HEVC에 비교하여서도 상당한 양의 비트들을 절약하는 반면, 제안된 방법은 더 많은 QM들을 인코딩한다는 것을 알 수 있다.For this test, it can be seen that the proposed method saves a significant amount of bits even compared to HEVC, whereas the proposed method encodes more QMs.

JCTVC-E073에서의 접근법을 다시 참조하면, JCTVC-E073에서의 참조 인덱싱(트리플릿: QMPS, 크기, 타입)은 이전 QMPS 인덱싱이 이전 QMPS의 저장을 요구하기 때문에 여기서 제안된 것보다 더 복잡하다. 선형 보간은 복잡성을 도입한다. 다운샘플링은 여기서 제안된 것과 유사하다.Referring back to the approach in JCTVC-E073, the reference indexing in JCTVC-E073 (triplet: QMPS, size, type) is more complex than that proposed here because the previous QMPS indexing requires the storage of the previous QMPS. Linear interpolation introduces complexity. Downsampling is similar to that proposed here.

JCTVC-H0314에서의 접근법을 다시 참조하면, 더 큰 것으로부터 더 작은 것으로의 송신은 여기서 제안된 것에 가깝지만, 그러나 JCTVC-H0314에서의 고정 예측 트리는 여기서 제안된 통합 인덱싱 및 명시적 참조보다 덜 유연하다.Referring back to the approach in JCTVC-H0314, the transmission from larger to smaller is close to the one proposed here, but the fixed prediction tree in JCTVC-H0314 is less flexible than the unified indexing and explicit reference proposed here.

인트라 블록 카피 모드에 대한 QMQM for intra block copy mode

상기에서, 2개의 블록 예측 모드, 즉 인트라 및 인터에 대해 상이한 QM들이 지정된다. 그러나, 인트라 및 인터에 더하여 VVC에서 새로운 예측 모드가 있다: IBC(Intra Block Copy), 여기서 블록은 적절한 변위 벡터로, 동일한 픽처의 재구성된 샘플들로부터 예측될 수 있다. IBC 예측 모드에서의 QM 선택을 위해, JVET-N0847 및 상기 실시예들 양자 모두는 인트라 모드와 동일한 QM들을 사용한다.In the above, different QMs are specified for the two block prediction modes, intra and inter. However, in addition to intra and inter there is a new prediction mode in VVC: Intra Block Copy (IBC), where a block can be predicted from reconstructed samples of the same picture with an appropriate displacement vector. For QM selection in IBC prediction mode, both JVET-N0847 and the above embodiments use the same QMs as intra mode.

IBC 모드가 인트라보다 인터에 더 가깝기 때문에, 일 실시예에서, (인트라 대신에) 인터 모드를 위해 시그널링된 QM들을 재사용하는 것이 제안된다. 그러나, IBC는, 인터 예측에 가까운 반면, 상이하다: 변위 벡터는 객체 또는 카메라 모션과 매칭되지 않고, 텍스처 카피를 위해 사용된다. 이는 특정 아티팩트들을 초래할 수 있으며, 특정 QM들은 상이한 실시예에서 IBC 블록들의 코딩을 최적화하는 것을 도울 수 있다. 이하에서, IBC 예측 모드에 대한 QM 선택을 변경하는 것을 제안한다:Since IBC mode is closer to inter than intra, in one embodiment, it is proposed to reuse signaled QMs for inter mode (instead of intra). However, IBC, while close to inter prediction, is different: a displacement vector does not match object or camera motion, but is used for texture copying. This can lead to certain artifacts, and certain QMs can help optimize the coding of IBC blocks in a different embodiment. In the following, we propose to change the QM selection for IBC prediction mode:

· 바람직한 실시예는 (인트라 대신에) 인터 모드와 동일한 QM을 선택하는 것인데, 그 이유는 IBC가 인트라 예측보다 인터 예측에 더 가깝기 때문이다.· A preferred embodiment is to select the same QM as inter mode (instead of intra), since IBC is closer to inter prediction than intra prediction.

· 다른 옵션은 IBC 모드에 대한 특정 QM들을 갖는 것이다.· Another option is to have specific QMs for IBC mode.

o 이들은 신택스에서 명시적으로 시그널링되거나 추론될 수 있다(예를 들어, 인트라 및 인터 QM들의 평균).o These may be explicitly signaled or inferred in the syntax (eg, average of intra and inter QMs).

바람직한 실시예에서, 특정 변환 블록에 대한 QM 선택 또는 유도 프로세스는 블록이 IBC 예측 모드를 갖는 경우 인터 QM들을 선택한다. 도 12를 다시 참조하면, QM 유도 프로세스의 단계 1210은 후술하는 바와 같이 조정될 필요가 있다.In a preferred embodiment, the QM selection or derivation process for a particular transform block selects inter QMs if the block has an IBC prediction mode. Referring back to Figure 12, step 1210 of the QM derivation process needs to be coordinated as described below.

위에서 제안된 초안 텍스트에서, QM 선택은 수학식(xxx-1)에서 설명되며, 이는 다음과 같이 변경될 수 있다.In the draft text proposed above, the QM selection is described in Equation (xxx-1), which can be changed as follows.

Figure pct00014
Figure pct00014

블록은 인트라 모드(MODE_INTRA), 인터 모드(MODE_inter) 또는 인트라 블록 카피 모드(MODE_IBC)에서 인코딩될 수 있다는 점에 유의한다. matrixTypeId가 표 6에서와 같이 또는 (matrixTypeId= (2* cIdx+ (predMode== MODE_INTER? 1: 0) ) )로서 설정될 때, MODE_IBC 블록은 그것이 MODE_INTRA 블록인 것처럼 matrixTypeId를 선택한다. (xxx-1)에서의 변경으로: matrixTypeId = ( 2 * cIdx + ( predMode = = MODE_INTRA ? 0 : 1 ) )인 경우, MODE_IBC 블록은 그것이 MODE_INTER 블록인 것처럼 matrixTypeId를 선택한다.Note that blocks can be encoded in intra mode (MODE_INTRA), inter mode (MODE_inter) or intra block copy mode (MODE_IBC). When matrixTypeId is set as in Table 6 or as (matrixTypeId= (2* cIdx+ (predMode== MODE_INTER? 1: 0) ) ), the MODE_IBC block selects the matrixTypeId as if it were a MODE_INTRA block. With a change in (xxx-1): if matrixTypeId = ( 2 * cIdx + ( predMode = = MODE_INTRA ? 0 : 1 ) ), the MODE_IBC block selects the matrixTypeId as if it were a MODE_INTER block.

JVET-N0847에 의해 제안된 초안 텍스트에서, QM 선택은 표 7 - 14에 설명되고, 이는 다음과 같이 변경될 수 있다. 특히, MODE_IBC에 대한 matrixId는, JVET-N0847에서와 동일한 MODE_INTRA가 아니라, MODE_INTER과 동일한 방식으로 배정된다.In the draft text proposed by JVET-N0847, the QM selection is described in Tables 7 - 14, which can be changed as follows. In particular, matrixId for MODE_IBC is assigned in the same manner as MODE_INTER, not MODE_INTRA as in JVET-N0847.

표 9: sizeId, 예측 모드 및 컬러 성분에 따른 matrixId의 JVET-N0847 사양에 대한 변경들Table 9: Changes to JVET-N0847 specification of matrixId according to sizeId, prediction mode and color component

Figure pct00015
Figure pct00015

변형 1: IBC에 대한 QM들의 명시적 시그널링Variant 1: Explicit signaling of QMs for IBC

이 변형에서, (인트라 및 인터 QM들과 상이한) IBC 블록들에 대해 특정 QM들이 사용되고, 이들 QM들은 비트스트림에서 명시적으로 시그널링된다. 이는 더 많은 QM들을 만들고, 이는 scaling_list_data 신택스 및 matrixId 맵핑의 적응을 요구하고, 비트 비용 영향을 갖는다. 이 변형에 따르면, 수학식 (xxx-1)에 설명된 QM 선택은 다음과 같이 변경될 수 있다.In this variant, specific QMs are used for IBC blocks (different from intra and inter QMs), and these QMs are explicitly signaled in the bitstream. This makes more QMs, which requires adaptation of the scaling_list_data syntax and matrixId mapping, and has a bit cost impact. According to this variant, the QM selection described in equation (xxx-1) can be changed as follows.

Figure pct00016
Figure pct00016

JVET-N0847에서, QM 선택 표는 다음과 같이 변경될 수 있다:In JVET-N0847, the QM selection table may be changed as follows:

표 10: IBC에 대해 더 많은 QM들을 추가하는 JVET-N0847에 대한 변경들Table 10: Changes to JVET-N0847 adding more QMs for IBC

Figure pct00017
Figure pct00017

변형 2: IBC 모드에 대한 추론된 QM들Variant 2: Inferred QMs for IBC mode

이러한 변형에서, (인트라 및 인터 QM들과 상이한) IBC 블록들에 대해 특정 QM들이 사용된다. 그러나, 이러한 QM들은 비트스트림에서 시그널링되지 않고, 추론된다: 예를 들어, 인트라 및 인터 QM들의 평균, 또는 특정 디폴트 값들, 또는 스케일링 및 오프셋과 같은 인터 QM에 대한 특정 변경으로서.In this variant, specific QMs are used for IBC blocks (different from intra and inter QMs). However, these QMs are not signaled in the bitstream, but are inferred: for example, the average of intra and inter QMs, or certain default values, or certain changes to the inter QM such as scaling and offset.

변형 3: 루마만에 대한 명시적 IBC QM들Variant 3: Explicit IBC QMs for Lumaman

이 변형에서, IBC에 대한 추가적인 QM들은 루마만으로 제한되고; IBC에 대한 크로마 QM들은 변형 1에서와 같이 인터 QM들을 재사용하거나 변형 2에서와 같이 새로운 것들을 추론할 수 있다.In this variant, additional QMs for IBC are limited to luma only; Chroma QMs for IBC may reuse inter QMs as in variant 1 or infer new ones as in variant 2.

다양한 방법들이 본 명세서에 설명되고, 방법들 각각은 설명된 방법을 달성하기 위한 하나 이상의 단계 또는 액션을 포함한다. 방법의 적절한 동작을 위해 단계들 또는 액션들의 특정 순서가 요구되지 않는 한, 특정 단계들 및/또는 액션들의 순서 및/또는 사용은 수정되거나 조합될 수 있다. 또한, "제1", "제2" 등과 같은 용어들은 다양한 실시예들에서 엘리먼트, 컴포넌트, 단계, 동작 등을 변경하기 위해 사용될 수 있으며, 예를 들어, "제1 디코딩" 및 "제2 디코딩"이다. 이러한 용어들의 사용은 구체적으로 요구되지 않는 한 수정된 동작들에 대한 순서를 암시하지 않는다. 따라서, 이 예에서, 제1 디코딩은 제2 디코딩 전에 수행될 필요가 없으며, 예를 들어, 제2 디코딩과의 중첩 기간 전에, 동안에 또는 내에 발생할 수 있다.Various methods are described herein, each of which includes one or more steps or actions for achieving the described method. Unless a specific order of steps or actions is required for proper operation of a method, the order and/or use of specific steps and/or actions may be modified or combined. Also, terms such as “first”, “second”, etc. may be used to change an element, component, step, operation, etc. in various embodiments, for example, “first decoding” and “second decoding” "am. Use of these terms does not imply an order for modified operations unless specifically required. Thus, in this example, the first decoding need not be performed before the second decoding, and may occur, for example, before, during, or within the overlapping period with the second decoding.

본 출원에서 설명되는 다양한 방법들 및 다른 양태들은 도 2 및 도 3에 도시된 바와 같은 비디오 인코더(200) 및 디코더(300)의 모듈들, 예를 들어, 양자화 및 역양자화 모듈들(230, 240, 340)을 변경하는 데 사용될 수 있다. 또한, 본 양태들은 VVC 또는 HEVC로 제한되지 않으며, 예를 들어, 다른 표준들 및 권고들, 그리고 임의의 이러한 표준들 및 권고들의 확장들에 적용될 수 있다. 달리 표시되거나 기술적으로 배제되지 않는 한, 본 출원에서 설명된 양태들은 개별적으로 또는 조합하여 사용될 수 있다.Various methods and other aspects described in this application can be applied to modules of video encoder 200 and decoder 300 as shown in FIGS. 2 and 3 , eg, quantization and inverse quantization modules 230 , 240 . , 340) can be used to change Further, the present aspects are not limited to VVC or HEVC, but may apply to, for example, other standards and recommendations, and extensions of any such standards and recommendations. Unless otherwise indicated or technically excluded, aspects described in this application may be used individually or in combination.

다양한 수치 값들이 본 출원에서 사용된다. 특정 값들은 예시의 목적을 위한 것이고 설명된 양태들은 이러한 특정 값들로 제한되지 않는다.Various numerical values are used in this application. The specific values are for illustrative purposes and the described aspects are not limited to these specific values.

다양한 구현들은 디코딩을 수반한다. "디코딩"은, 본 출원에서 사용되는 바와 같이, 디스플레이에 적합한 최종 출력을 생성하기 위해, 예를 들어, 수신된 인코딩된 시퀀스에 대해 수행되는 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 이러한 프로세스들은 디코더에 의해 통상적으로 수행되는 프로세스들, 예를 들어, 엔트로피 디코딩, 역양자화, 역변환 및 차분 디코딩 중 하나 이상을 포함한다. "디코딩 프로세스"라는 문구가 구체적으로 동작들의 서브세트를 지칭하도록 의도되는지 또는 일반적으로 더 넓은 디코딩 프로세스를 지칭하도록 의도되는지는 특정 설명들의 맥락에 기초하여 명백할 것이며, 본 기술 분야의 통상의 기술자에 의해 잘 이해될 것으로 여겨진다.Various implementations involve decoding. “Decoding,” as used herein, may include all or part of processes performed, for example, on a received encoded sequence to produce a final output suitable for display. In various embodiments, these processes include processes typically performed by a decoder, eg, one or more of entropy decoding, inverse quantization, inverse transform, and differential decoding. Whether the phrase “decoding process” is specifically intended to refer to a subset of operations or to a broader decoding process in general will be apparent based on the context of the particular descriptions, and is within the skill of the person skilled in the art. is expected to be well understood by

다양한 구현들은 인코딩을 수반한다. "디코딩"에 관한 상기 논의와 유사한 방식으로, 본 출원에서 사용되는 "인코딩"은 인코딩된 비트스트림을 생성하기 위해, 예를 들어, 입력 비디오 시퀀스에 대해 수행되는 프로세스들의 전부 또는 일부를 포함할 수 있다.Various implementations involve encoding. In a manner similar to the discussion above regarding "decoding", "encoding" as used herein may include all or part of the processes performed, for example, on an input video sequence, to produce an encoded bitstream. there is.

본 명세서에서 사용되는 신택스 엘리먼트들은 설명적 용어들이라는 점에 유의한다. 이와 같이, 이들은 다른 신택스 엘리먼트 명칭들의 사용을 배제하지 않는다. 상기에서, PPS 및 스케일링 리스트에 대한 신택스 엘리먼트들은 주로 다양한 실시예를 예시하는데 이용된다. 이들 신택스 엘리먼트들은 다른 신택스 구조들에 배치될 수 있다는 점에 유의해야 한다.Note that syntax elements used herein are descriptive terms. As such, they do not preclude the use of other syntax element names. In the above, syntax elements for PPS and scaling list are mainly used to illustrate various embodiments. It should be noted that these syntax elements may be placed in other syntax structures.

본 명세서에서 설명되는 구현들 및 양태들은, 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림 또는 신호로 구현될 수 있다. 단일 형태의 구현의 맥락에서만 논의되더라도(예를 들어, 방법으로서만 논의됨), 논의되는 특징들의 구현은 다른 형태들(예를 들어, 장치 또는 프로그램)로 또한 구현될 수 있다. 장치는, 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어로 구현될 수 있다. 방법들은, 예를 들어, 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그램가능 로직 디바이스를 포함하는, 일반적으로 처리 디바이스들을 지칭하는, 예를 들어, 장치, 예를 들어, 프로세서에서 구현될 수 있다. 프로세서들은 또한 통신 디바이스들, 예를 들어, 컴퓨터들, 셀 폰들, 휴대용/개인 휴대 정보 단말기들("PDA들"), 및 최종 사용자들 사이의 정보의 통신을 용이하게 하는 다른 디바이스들을 포함한다.Implementations and aspects described herein may be implemented as, for example, a method or process, an apparatus, a software program, a data stream, or a signal. Although discussed only in the context of a single form of implementation (eg, discussed only as a method), implementation of the features discussed may also be implemented in other forms (eg, as an apparatus or program). The apparatus may be implemented in, for example, suitable hardware, software, and firmware. The methods may be implemented in, for example, an apparatus, such as a processor, which refers generally to processing devices, including, for example, a computer, microprocessor, integrated circuit, or programmable logic device. Processors also include communication devices such as computers, cell phones, portable/personal digital assistants (“PDAs”), and other devices that facilitate communication of information between end users.

"일 실시예" 또는 "실시예" 또는 "일 구현" 또는 "구현"은 물론, 이들의 다른 변형들에 대한 언급은 실시예와 관련하여 설명되는 특정 특징, 구조, 특성 등이 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 출원 전체에 걸쳐 다양한 곳들에서 나타나는 문구 "일 실시예에서" 또는 "실시예에서" 또는 "일 구현에서" 또는 "구현에서"뿐만 아니라 임의의 다른 변형들의 출현들은 반드시 모두가 동일한 실시예를 지칭하는 것은 아니다.Reference to “one embodiment” or “an embodiment” or “an implementation” or “implementation”, as well as other variations thereof, refers to a particular feature, structure, characteristic, etc. described in connection with the embodiment is at least one implementation. means included in the example. Thus, appearances of the phrases “in one embodiment” or “in an embodiment” or “in an implementation” or “in an implementation” as well as any other variations appearing in various places throughout this application are necessarily all occurrences of the same embodiment. does not refer to

또한, 본 출원은 다양한 정보를 "결정하는 것"을 언급할 수 있다. 정보를 결정하는 것은, 예를 들어, 정보를 추정하는 것, 정보를 계산하는 것, 정보를 예측하는 것, 또는 메모리로부터 정보를 검색하는 것 중 하나 이상을 포함할 수 있다.This application may also refer to "determining" various pieces of information. Determining the information may include, for example, one or more of estimating the information, calculating the information, predicting the information, or retrieving the information from memory.

또한, 본 출원은 다양한 정보에 "액세스하는 것"을 언급할 수 있다. 정보에 액세스하는 것은, 예를 들어, 정보를 수신하는 것, (예를 들어, 메모리로부터) 정보를 검색하는 것, 정보를 저장하는 것, 정보를 이동시키는 것, 정보를 카피하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것 중 하나 이상을 포함할 수 있다.This application may also refer to “accessing” various information. Accessing information includes, for example, receiving information, retrieving information (eg, from memory), storing information, moving information, copying information, It may include one or more of calculating, determining information, predicting information, or estimating information.

또한, 본 출원은 다양한 정보를 "수신하는 것"을 언급할 수 있다. 수신하는 것은, "액세스하는 것"에서와 같이, 광의의 용어인 것으로 의도된다. 정보를 수신하는 것은, 예를 들어, 정보에 액세스하는 것, 또는 (예를 들어, 메모리로부터) 정보를 검색하는 것 중 하나 이상을 포함할 수 있다. 또한, "수신하는 것"은 통상적으로, 하나의 방식 또는 다른 방식으로, 동작들 동안, 예를 들어, 정보를 저장하는 것, 정보를 처리하는 것, 정보를 송신하는 것, 정보를 이동시키는 것, 정보를 카피하는 것, 정보를 소거하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것 동안 수반된다.This application may also refer to "receiving" various pieces of information. Receiving, as in “accessing,” is intended to be a broad term. Receiving the information may include, for example, one or more of accessing the information, or retrieving the information (eg, from memory). Also, "receiving" typically includes, in one way or another, during operations, such as storing information, processing information, transmitting information, moving information. , is involved during copying information, erasing information, calculating information, determining information, predicting information, or estimating information.

예를 들어, "A/B", "A 및/또는 B" 및 "A 및 B 중 적어도 하나"의 경우들에서, 다음의 "/", "및/또는", 및 "~ 중 적어도 하나" 중 임의의 것의 사용은, 첫 번째 열거된 옵션(A)만의 선택, 또는 두 번째 열거된 옵션(B)만의 선택, 또는 양자 모두의 옵션들(A 및 B)의 선택을 포함하도록 의도된다는 점이 이해되어야 한다. 추가 예로서, "A, B, 및/또는 C" 및 "A, B, 및 C 중 적어도 하나"의 경우들에서, 이러한 문구는 첫 번째 열거된 옵션(A)만의 선택, 또는 두 번째 열거된 옵션(B)만의 선택, 또는 세 번째 열거된 옵션(C)만의 선택, 또는 첫 번째 및 두 번째 열거된 옵션들(A 및 B)만의 선택, 또는 첫 번째 및 세 번째 열거된 옵션들(A 및 C)만의 선택, 또는 두 번째 및 세 번째 열거된 옵션들(B 및 C)만의 선택, 또는 모든 3개의 옵션들(A 및 B 및 C)의 선택을 포함하는 것으로 의도된다. 이는, 본 기술 분야 및 관련 기술 분야의 통상의 기술자에게 명백한 바와 같이, 열거되는 많은 항목들에 대해 확장될 수 있다.For example, in the cases of "A/B", "A and/or B" and "at least one of A and B," "/", "and/or", and "at least one of" It is understood that the use of any of these is intended to include the selection of only the first listed option (A), or only the second listed option (B), or the selection of both options (A and B). should be As a further example, in the instances of "A, B, and/or C" and "at least one of A, B, and C," such phrases refer to selection of only the first listed option (A), or the second listed option (A). Selection of only option (B), or selection of only the third listed option (C), or selection of only the first and second listed options (A and B), or selection of the first and third listed options (A and It is intended to include selection of only C), or selection of only the second and third listed options (B and C), or selection of all three options (A and B and C). This can be extended for many of the items listed, as will be apparent to those skilled in the art and related art.

또한, 본 명세서에서 사용될 때, "시그널링"라는 단어는 특히 대응하는 디코더에 무언가를 표시하는 것을 지칭한다. 예를 들어, 특정 실시예들에서, 인코더는 역양자화를 위한 양자화 행렬을 시그널링한다. 이러한 방식으로, 일 실시예에서, 인코더 측 및 디코더 측 양자 모두에서 동일한 파라미터가 사용된다. 따라서, 예를 들어, 인코더는 디코더가 동일한 특정 파라미터를 사용할 수 있도록 특정 파라미터를 디코더에 송신(명시적 시그널링)할 수 있다. 역으로, 디코더가 이미 특정 파라미터 뿐만 아니라 다른 것들도 갖고 있다면, 이때, 단순히 디코더가 특정 파라미터를 알고 선택하는 것을 허용하기 위해 송신(암시적 시그널링)없이 시그널링이 이용될 수 있다. 임의의 실제 기능들의 송신을 회피함으로써, 비트 절감들이 다양한 실시예들에서 실현된다. 시그널링이 다양한 방식들로 달성될 수 있다는 것을 이해할 것이다. 예를 들어, 하나 이상의 신택스 엘리먼트, 플래그 등은 다양한 실시예들에서 대응하는 디코더에 정보를 시그널링하기 위해 사용된다. 전술한 것은 단어 "signal(시그널링)"의 동사 형태와 관련되지만, 단어 "signal(신호)"은 본 명세서에서 명사로서도 사용될 수 있다.Also, as used herein, the word “signaling” specifically refers to indicating something to a corresponding decoder. For example, in certain embodiments, the encoder signals a quantization matrix for inverse quantization. In this way, in one embodiment, the same parameters are used on both the encoder side and the decoder side. Thus, for example, the encoder may transmit (explicitly signal) certain parameters to the decoder so that the decoder can use the same particular parameters. Conversely, if the decoder already has certain parameters as well as others, then signaling can be used without transmission (implicit signaling) simply to allow the decoder to know and select certain parameters. By avoiding the transmission of any actual functions, bit savings are realized in various embodiments. It will be appreciated that signaling may be accomplished in a variety of ways. For example, one or more syntax elements, flags, etc. are used to signal information to a corresponding decoder in various embodiments. Although the foregoing relates to the verb form of the word "signal", the word "signal" may also be used herein as a noun.

본 기술 분야의 통상의 기술자에게 명백할 바와 같이, 구현들은, 예를 들어, 저장되거나 송신될 수 있는 정보를 운반하도록 포맷팅된 다양한 신호들을 생성할 수 있다. 정보는, 예를 들어, 방법을 수행하기 위한 명령어들, 또는 설명된 구현들 중 하나에 의해 생성된 데이터를 포함할 수 있다. 예를 들어, 신호는 설명된 실시예의 비트스트림을 운반하도록 포맷팅될 수 있다. 이러한 신호는, 예를 들어, (예를 들어, 스펙트럼의 라디오 주파수 부분을 사용하는) 전자기파로서 또는 기저대역 신호로서 포맷팅될 수 있다. 포맷팅은, 예를 들어, 데이터 스트림을 인코딩하는 것 및 인코딩된 데이터 스트림으로 캐리어를 변조하는 것을 포함할 수 있다. 신호가 운반하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는 공지된 바와 같이 다양한 상이한 유선 또는 무선 링크들을 통해 송신될 수 있다. 신호는 프로세서 판독가능 매체 상에 저장될 수 있다.As will be apparent to one of ordinary skill in the art, implementations may generate various signals formatted to carry information that may be stored or transmitted, for example. The information may include, for example, instructions for performing a method, or data generated by one of the described implementations. For example, the signal may be formatted to carry the bitstream of the described embodiment. Such a signal may be formatted, for example, as an electromagnetic wave (eg, using a radio frequency portion of the spectrum) or as a baseband signal. Formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information carried by the signal may be, for example, analog or digital information. A signal may be transmitted over a variety of different wired or wireless links as is known. The signal may be stored on a processor-readable medium.

Claims (29)

방법으로서,
픽처 내의 디코딩될 블록의 블록 크기, 컬러 성분 및 예측 모드에 기초하여 양자화 행렬에 대한 단일 식별자를 획득하는 단계;
참조 양자화 행렬을 표시하는 신택스 엘리먼트를 디코딩하는 단계- 상기 신택스 엘리먼트는 상기 참조 양자화 행렬의 식별자와 상기 양자화 행렬에 대한 상기 획득된 식별자 사이의 차이를 지정함 -;
상기 참조 양자화 행렬에 기초하여 상기 양자화 행렬을 획득하는 단계;
상기 양자화 행렬에 응답하여 상기 블록에 대한 변환 계수들을 역양자화하는 단계; 및
상기 역양자화된 변환 계수들에 응답하여 상기 블록을 디코딩하는 단계를 포함하는, 방법.
As a method,
obtaining a single identifier for a quantization matrix based on a block size, a color component, and a prediction mode of a block to be decoded within a picture;
decoding a syntax element indicating a reference quantization matrix, wherein the syntax element specifies a difference between an identifier of the reference quantization matrix and the obtained identifier for the quantization matrix;
obtaining the quantization matrix based on the reference quantization matrix;
dequantizing transform coefficients for the block in response to the quantization matrix; and
and decoding the block in response to the inverse quantized transform coefficients.
하나 이상의 프로세서를 포함하는 장치로서,
상기 하나 이상의 프로세서는,
픽처 내의 디코딩될 블록의 블록 크기, 컬러 성분 및 예측 모드에 기초하여 양자화 행렬에 대한 단일 식별자를 획득하고;
참조 양자화 행렬을 표시하는 신택스 엘리먼트를 디코딩하고- 상기 신택스 엘리먼트는 상기 참조 양자화 행렬의 식별자와 상기 양자화 행렬에 대한 상기 획득된 식별자 사이의 차이를 지정함 -;
상기 참조 양자화 행렬에 기초하여 상기 양자화 행렬을 획득하고;
상기 양자화 행렬에 응답하여 상기 블록에 대한 변환 계수들을 역양자화하고; 그리고
상기 역양자화된 변환 계수들에 응답하여 상기 블록을 디코딩하도록 구성되는, 장치.
A device comprising one or more processors, comprising:
The one or more processors,
obtain a single identifier for a quantization matrix based on a block size, a color component, and a prediction mode of a block to be decoded in the picture;
decode a syntax element indicating a reference quantization matrix, wherein the syntax element specifies a difference between an identifier of the reference quantization matrix and the obtained identifier for the quantization matrix;
obtain the quantization matrix based on the reference quantization matrix;
inverse quantize transform coefficients for the block in response to the quantization matrix; And
and decode the block in response to the inverse quantized transform coefficients.
제1항의 방법 또는 제2항의 장치에 있어서,
상기 블록의 크기는 상기 참조 양자화 행렬이 역양자화를 위해 적용되는 블록의 크기와 상이한, 방법 또는 장치.
The method of claim 1 or the device of claim 2,
wherein the size of the block is different from the size of the block to which the reference quantization matrix is applied for inverse quantization.
제1항 또는 제3항의 방법 또는 제2항 또는 제3항의 장치에 있어서,
상기 양자화 행렬의 엘리먼트들은 상기 블록의 각각의 변환 계수들을 역양자화할 때 스케일링 인자들로서 사용되는, 방법 또는 장치.
4. The method of claim 1 or 3 or the device of claim 2 or 3,
The elements of the quantization matrix are used as scaling factors when inverse quantizing respective transform coefficients of the block.
제1항 및 제2항 내지 제4항 중 어느 한 항의 방법 또는 제2항 내지 제4항 중 어느 한 항의 장치에 있어서,
상기 양자화 행렬의 엘리먼트들은 상기 블록의 각각의 변환 계수들을 역양자화할 때 오프셋들로서 사용되는, 방법 또는 장치.
5. A method according to any one of claims 1 and 2 to 4 or a device according to any one of claims 2 to 4,
The elements of the quantization matrix are used as offsets when inverse quantizing respective transform coefficients of the block.
방법으로서,
픽처 내의 인코딩될 블록에 액세스하는 단계;
상기 블록에 대한 양자화 행렬에 액세스하는 단계;
상기 블록의 블록 크기, 컬러 성분 및 예측 모드에 기초하여 상기 양자화 행렬에 대한 단일 식별자를 획득하는 단계;
참조 양자화 행렬을 표시하는 신택스 엘리먼트를 인코딩하는 단계- 상기 신택스 엘리먼트는 상기 참조 양자화 행렬의 식별자와 상기 양자화 행렬에 대한 상기 획득된 식별자 사이의 차이를 지정함 -;
상기 양자화 행렬에 응답하여 상기 블록에 대한 변환 계수들을 양자화하는 단계; 및
상기 양자화된 변환 계수들을 엔트로피 인코딩하는 단계를 포함하는, 방법.
As a method,
accessing a block to be encoded in the picture;
accessing a quantization matrix for the block;
obtaining a single identifier for the quantization matrix based on a block size, a color component, and a prediction mode of the block;
encoding a syntax element indicating a reference quantization matrix, wherein the syntax element specifies a difference between an identifier of the reference quantization matrix and the obtained identifier for the quantization matrix;
quantizing transform coefficients for the block in response to the quantization matrix; and
and entropy encoding the quantized transform coefficients.
하나 이상의 프로세서를 포함하는 장치로서,
상기 하나 이상의 프로세서는,
픽처 내의 인코딩될 블록에 액세스하고;
상기 블록에 대한 양자화 행렬에 액세스하고;
상기 블록의 블록 크기, 컬러 성분 및 예측 모드에 기초하여 상기 양자화 행렬에 대한 단일 식별자를 획득하고;
참조 양자화 행렬을 표시하는 신택스 엘리먼트를 인코딩하고- 상기 신택스 엘리먼트는 상기 참조 양자화 행렬의 식별자와 상기 양자화 행렬에 대한 상기 획득된 식별자 사이의 차이를 지정함 -;
상기 양자화 행렬에 응답하여 상기 블록에 대한 변환 계수들을 양자화하고; 그리고
상기 양자화된 변환 계수들을 엔트로피 인코딩하도록 구성되는, 장치.
A device comprising one or more processors, comprising:
The one or more processors,
access a block to be encoded in the picture;
access a quantization matrix for the block;
obtain a single identifier for the quantization matrix based on a block size, a color component, and a prediction mode of the block;
encode a syntax element indicating a reference quantization matrix, wherein the syntax element specifies a difference between an identifier of the reference quantization matrix and the obtained identifier for the quantization matrix;
quantize transform coefficients for the block in response to the quantization matrix; And
and entropy encode the quantized transform coefficients.
제6항의 방법 또는 제7항의 장치에 있어서,
상기 블록의 크기는 상기 참조 양자화 행렬이 양자화를 위해 적용될 블록의 크기와 상이한, 방법 또는 장치.
The method of claim 6 or the device of claim 7,
wherein the size of the block is different from the size of the block to which the reference quantization matrix is to be applied for quantization.
제6항 또는 제8항의 방법 또는 제7항 또는 제8항의 장치에 있어서,
상기 양자화 행렬의 엘리먼트들은 상기 블록의 각각의 변환 계수들을 양자화할 때 스케일링 인자들로서 사용되는, 방법 또는 장치.
The method of claim 6 or 8 or the device of claim 7 or 8,
The elements of the quantization matrix are used as scaling factors when quantizing respective transform coefficients of the block.
제6항 또는 제8항의 방법 또는 제7항 또는 제8항의 장치에 있어서,
상기 양자화 행렬의 엘리먼트들은 상기 블록의 각각의 변환 계수들을 양자화할 때 오프셋들로서 사용되는, 방법 또는 장치.
The method of claim 6 or 8 or the device of claim 7 or 8,
The elements of the quantization matrix are used as offsets when quantizing respective transform coefficients of the block.
제1항, 제3항 내지 제6항, 및 제8항 내지 제10항 중 어느 한 항의 방법 또는 제2항 내지 제5항 및 제7항 내지 제10항 중 어느 한 항의 장치에 있어서,
상기 참조 양자화 행렬은 이전에 시그널링되는, 방법 또는 장치.
11. A method according to any one of claims 1, 3 to 6, and 8 to 10 or an apparatus according to any one of claims 2 to 5 and 7 to 10, comprising:
wherein the reference quantization matrix is previously signaled.
제1항, 제3항 내지 제6항, 및 제8항 내지 제11항 중 어느 한 항의 방법 또는 제2항 내지 제5항 및 제7항 내지 제11항 중 어느 한 항의 장치에 있어서,
상기 양자화 행렬은 카피 또는 데시메이션을 통해 상기 참조 양자화 행렬로부터 획득되는, 방법 또는 장치.
12. The method of any one of claims 1, 3-6, and 8-11 or the device of any one of claims 2-5 and 7-11,
The quantization matrix is obtained from the reference quantization matrix through copying or decimation.
제12항의 방법 또는 제12항의 장치에 있어서,
상기 양자화 행렬은 상기 양자화 행렬이 상기 참조 양자화 행렬과 동일한 크기를 갖는 것에 응답하여, 카피를 통해 상기 참조 양자화 행렬로부터 획득되는, 방법 또는 장치.
13. The method of claim 12 or the device of claim 12, comprising:
wherein the quantization matrix is obtained from the reference quantization matrix via copy in response to the quantization matrix having the same size as the reference quantization matrix.
제12항의 방법 또는 제12항의 장치에 있어서,
상기 양자화 행렬은 상기 양자화 행렬이 상기 참조 양자화 행렬과 상이한 크기를 갖는 것에 응답하여, 대응하는 비율만큼의 데시메이션을 통해 상기 참조 양자화 행렬로부터 획득되는, 방법 또는 장치.
13. The method of claim 12 or the device of claim 12, comprising:
wherein the quantization matrix is obtained from the reference quantization matrix through decimation by a corresponding ratio in response to the quantization matrix having a different size than the reference quantization matrix.
제1항, 제3항 내지 제6항, 및 제8항 내지 제14항 중 어느 한 항의 방법 또는 제2항 내지 제5항 및 제7항 내지 제14항 중 어느 한 항의 장치에 있어서,
상기 블록 크기는 MxN이고, 및 M은 폭이고 N은 높이이고, 상기 블록에 대한 상기 식별자는 max(M,N)의 크기에 기초하고, max(M,N)는 M과 N 중 더 큰 것으로서 정의되는, 방법 또는 장치.
15. The method of any one of claims 1, 3-6, and 8-14 or the device of any one of claims 2-5 and 7-14, comprising:
wherein the block size is MxN, and M is the width and N is the height, wherein the identifier for the block is based on the size of max(M,N), where max(M,N) is the greater of M and N. As defined, a method or apparatus.
제1항, 제3항 내지 제6항, 및 제8항 내지 제15항 중 어느 한 항의 방법 또는 제2항 내지 제5항 및 제7항 내지 제15항 중 어느 한 항의 장치에 있어서,
양자화 행렬들의 세트는 증가하는 식별자의 순서로 시그널링되고, 가장 큰 블록 크기의 양자화 행렬이 먼저 시그널링되는, 방법 또는 장치.
16. The method of any one of claims 1, 3-6, and 8-15 or the device of any one of claims 2-5 and 7-15,
A method or apparatus, wherein the set of quantization matrices is signaled in order of increasing identifier, and the quantization matrix of the largest block size is signaled first.
제16항의 방법 또는 제16항의 장치에 있어서,
루마 컬러 성분에 대한 양자화 행렬들은 상기 양자화 행렬들의 세트를 시그널링할 때 크로마 컬러 성분에 대한 양자화 행렬들 전에 시그널링되는, 방법 또는 장치.
17. The method of claim 16 or the device of claim 16,
Quantization matrices for a luma color component are signaled before quantization matrices for a chroma color component when signaling the set of quantization matrices.
제1항, 제3항 내지 제6항, 및 제8항 내지 제17항 중 어느 한 항의 방법 또는 제2항 내지 제5항 및 제7항 내지 제17항 중 어느 한 항의 장치에 있어서,
상기 양자화 행렬들의 세트를 시그널링할 때 더 작은 블록 크기들에 대한 양자화 행렬들 전에 더 큰 블록 크기들에 대한 양자화 행렬들이 시그널링되는, 방법 또는 장치.
18. The method of any one of claims 1, 3-6, and 8-17 or the device of any one of claims 2-5 and 7-17, wherein
Quantization matrices for larger block sizes are signaled before quantization matrices for smaller block sizes when signaling the set of quantization matrices.
제1항, 제3항 내지 제6항, 및 제8항 내지 제18항 중 어느 한 항의 방법 또는 제2항 내지 제5항 및 제7항 내지 제18항 중 어느 한 항의 장치에 있어서,
상기 식별자는 matrixId = N * sizeId + matrixTypeId로서 유도되고, 여기서, N은 가능한 타입 식별자들의 수이고, sizeID는 상기 블록 크기를 표시하고, matrixTypeId는 상기 컬러 성분 및 상기 예측 모드를 표시하는, 방법 또는 장치.
19. The method of any one of claims 1, 3-6, and 8-18 or the device of any one of claims 2-5 and 7-18,
The identifier is derived as matrixId = N * sizeId + matrixTypeId, where N is the number of possible type identifiers, sizeID indicates the block size, and matrixTypeId indicates the color component and the prediction mode. .
제1항, 제3항 내지 제6항, 및 제8항 내지 제19항 중 어느 한 항의 방법에 있어서,
상기 하나 이상의 프로세서는 상기 참조 양자화 행렬을 상기 블록 크기에 적응시키는 것을 수행하도록 추가로 구성되는 것을 더 포함하는 방법, 또는
제2항 내지 제5항 및 제7항 내지 제19항 중 어느 한 항의 장치에 있어서,
상기 하나 이상의 프로세서는 상기 참조 양자화 행렬을 상기 블록 크기에 적응시키는 것을 수행하도록 추가로 구성되는, 장치.
20. The method of any one of claims 1, 3 to 6, and 8 to 19, wherein
The method further comprising the one or more processors being further configured to perform adapting the reference quantization matrix to the block size, or
20. The device of any one of claims 2-5 and 7-19, comprising:
and the one or more processors are further configured to perform adapting the reference quantization matrix to the block size.
제1항, 제3항 내지 제6항, 및 제8항 내지 제20항 중 어느 한 항의 방법에 있어서,
상기 하나 이상의 프로세서는 디폴트 크로마 포맷과 상이한 상기 블록의 크로마 포맷에 대해, 상기 참조 양자화 행렬을 상기 블록의 상기 크로마 포맷에 적응시키는 것을 수행하도록 추가로 구성되는 것을 더 포함하는 방법, 또는
제2항 내지 제5항 및 제7항 내지 제20항 중 어느 한 항의 장치에 있어서,
상기 하나 이상의 프로세서는 디폴트 크로마 포맷과 상이한 상기 블록의 크로마 포맷에 대해, 상기 참조 양자화 행렬을 상기 블록의 상기 크로마 포맷에 적응시키는 것을 수행하도록 추가로 구성되는, 장치.
21. The method of any one of claims 1, 3 to 6, and 8 to 20, wherein
The method further comprising: for a chroma format of the block that is different from a default chroma format, the one or more processors are further configured to perform adapting the reference quantization matrix to the chroma format of the block, or
The device of any one of claims 2 to 5 and 7 to 20, comprising:
and the one or more processors are further configured to: for a chroma format of the block that is different from a default chroma format, adapt the reference quantization matrix to the chroma format of the block.
제20항의 방법 또는 제20항의 장치에 있어서,
상기 디폴트 크로마 포맷은 4:2:0인, 방법 또는 장치.
21. The method of claim 20 or the device of claim 20, comprising:
wherein the default chroma format is 4:2:0.
제20항 내지 제22항 중 어느 한 항의 방법 또는 제20항 내지 제22항 중 어느 한 항의 장치에 있어서,
상기 적응은 상기 참조 양자화 행렬의 계수들을 인덱싱하기 위해 상기 양자화 행렬 내의 x 및 y 좌표들의 비트 시프트들에 기초하는, 방법 또는 장치.
23. The method of any one of claims 20-22 or the device of any one of claims 20-22,
wherein the adaptation is based on bit shifts of x and y coordinates in the quantization matrix to index the coefficients of the reference quantization matrix.
제1항, 제3항 내지 제6항, 및 제8항 내지 제23항 중 어느 한 항의 방법 또는 제2항 내지 제5항 및 제7항 내지 제23항 중 어느 한 항의 장치에 있어서,
상기 식별자는 상기 블록의 상기 예측 모드가 인트라 예측 모드인지 또는 인터 예측 모드인지에 기초하여 획득되는, 방법 또는 장치.
24. The method of any one of claims 1, 3-6, and 8-23 or the device of any one of claims 2-5 and 7-23, comprising:
The method or apparatus, wherein the identifier is obtained based on whether the prediction mode of the block is an intra prediction mode or an inter prediction mode.
제1항, 제3항 내지 제6항, 및 제8항 내지 제24항 중 어느 한 항의 방법 또는 제2항 내지 제5항 및 제7항 내지 제24항 중 어느 한 항의 장치에 있어서,
상기 식별자를 획득할 때 인트라 블록 카피 예측 모드가 인터 예측 모드로서 고려되는, 방법 또는 장치.
25. The method of any one of claims 1, 3-6, and 8-24 or the device of any one of claims 2-5 and 7-24, comprising:
An intra block copy prediction mode is considered as an inter prediction mode when obtaining the identifier.
제1항, 제3항 내지 제6항, 및 제8항 내지 제25항 중 어느 한 항의 방법 또는 제2항 내지 제5항 및 제7항 내지 제25항 중 어느 한 항의 장치에 있어서,
상기 예측 모드는 인트라 블록 카피이고, 상기 블록의 루마 성분에 대해 양자화 행렬이 시그널링되고, 상기 예측 모드를 인터 예측 모드로서 고려함으로써 크로마 성분에 대해 양자화 행렬이 유도되는, 방법 또는 장치.
26. The method of any one of claims 1, 3-6, and 8-25 or the device of any one of claims 2-5 and 7-25, comprising:
wherein the prediction mode is an intra block copy, a quantization matrix is signaled for a luma component of the block, and a quantization matrix is derived for a chroma component by considering the prediction mode as an inter prediction mode.
제1항, 제3항 내지 제6항, 및 제8항 내지 제26항 중 어느 한 항의 방법 또는 제2항 내지 제5항 및 제7항 내지 제26항 중 어느 한 항의 장치에 있어서,
상기 예측 모드는 인트라 블록 카피이고, 상기 참조 양자화 행렬은 상기 예측 모드를 인트라 모드로서 고려함으로써 획득되고, 상기 예측 모드를 인터 모드로서 고려함으로써 다른 참조 양자화 행렬이 획득되고, 상기 양자화 행렬은 상기 참조 양자화 행렬과 상기 다른 참조 양자화 행렬의 평균으로서 획득되는, 방법 또는 장치.
27. The method of any one of claims 1, 3-6, and 8-26 or the device of any one of claims 2-5 and 7-26, comprising:
the prediction mode is an intra block copy, the reference quantization matrix is obtained by considering the prediction mode as an intra mode, another reference quantization matrix is obtained by considering the prediction mode as an inter mode, and the quantization matrix is the reference quantization matrix A method or apparatus, obtained as an average of a matrix and the other reference quantization matrix.
제6항 및 제8항 내지 제27항 중 어느 한 항의 방법을 수행함으로써 형성된, 인코딩된 비디오를 포함하는, 신호.A signal comprising encoded video formed by performing the method of any of claims 6 and 8 to 27 . 제1항, 제3항 내지 제6항 및 제8항 내지 제27항 중 어느 한 항의 방법에 따라 비디오 데이터를 인코딩 또는 디코딩하기 위한 명령어들이 저장되어 있는 컴퓨터 판독가능 저장 매체.A computer-readable storage medium having stored thereon instructions for encoding or decoding video data according to the method of any one of claims 1, 3 to 6 and 8 to 27.
KR1020227001851A 2019-06-21 2020-06-16 Single-index quantization matrix design for video encoding and decoding KR20220024716A (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP19305802.1 2019-06-21
EP19305802 2019-06-21
EP19305826.0 2019-06-24
EP19305826 2019-06-24
PCT/EP2020/066614 WO2020254317A1 (en) 2019-06-21 2020-06-16 Single-index quantization matrix design for video encoding and decoding

Publications (1)

Publication Number Publication Date
KR20220024716A true KR20220024716A (en) 2022-03-03

Family

ID=71103394

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227001851A KR20220024716A (en) 2019-06-21 2020-06-16 Single-index quantization matrix design for video encoding and decoding

Country Status (9)

Country Link
US (1) US20230232003A1 (en)
EP (1) EP3987786A1 (en)
JP (1) JP2022537090A (en)
KR (1) KR20220024716A (en)
CN (1) CN114026857A (en)
AU (1) AU2020295684A1 (en)
MX (1) MX2021015582A (en)
TW (1) TW202106017A (en)
WO (1) WO2020254317A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021048532A (en) * 2019-09-19 2021-03-25 キヤノン株式会社 Image encoding device, image decoding device, control method for the same, and program

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7373009B2 (en) * 2005-02-09 2008-05-13 Lsi Corporation Method and apparatus for efficient transmission and decoding of quantization matrices
EP2495973B1 (en) * 2009-10-30 2019-02-27 Sun Patent Trust Decoding method, decoder apparatus, encoding method, and encoder apparatus
US9167252B2 (en) * 2010-12-01 2015-10-20 Texas Instruments Incorporated Quantization matrix compression in video coding
CN103096056B (en) * 2011-11-08 2015-11-25 华为技术有限公司 Matrix coder method and apparatus and coding/decoding method and device
KR101627085B1 (en) * 2012-01-20 2016-06-03 한국전자통신연구원 Methods And Apparatuses For Encoding and Decoding Quantization marix
GB2501535A (en) * 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
SG11202009041WA (en) * 2018-03-28 2020-10-29 Sony Corp Image processing device and image processing method

Also Published As

Publication number Publication date
JP2022537090A (en) 2022-08-24
AU2020295684A1 (en) 2022-01-27
EP3987786A1 (en) 2022-04-27
MX2021015582A (en) 2022-01-24
TW202106017A (en) 2021-02-01
US20230232003A1 (en) 2023-07-20
CN114026857A (en) 2022-02-08
WO2020254317A1 (en) 2020-12-24

Similar Documents

Publication Publication Date Title
CN112970264A (en) Simplification of coding modes based on neighboring sample-dependent parametric models
CN114208178A (en) Quadratic transforms for video encoding and decoding
EP4035357A1 (en) Method and apparatus using homogeneous syntax with coding tools
US20240089437A1 (en) Chroma quantization parameter adjustment in video encoding and decoding
KR20220061948A (en) Split the coding tree
JP2022549312A (en) Integration of Context Coded BIN (CCB) Counting Method
WO2020185492A1 (en) Transform selection and signaling for video encoding or decoding
US20230232003A1 (en) Single-index quantization matrix design for video encoding and decoding
US20230262268A1 (en) Chroma format dependent quantization matrices for video encoding and decoding
US20230232045A1 (en) Scaling process for joint chroma coded blocks
US20220360781A1 (en) Video encoding and decoding using block area based quantization matrices
EP4014490A1 (en) Quantization matrix prediction for video encoding and decoding
TW202416714A (en) Intra prediction mode improvements based on available reference samples
KR20230158506A (en) Matrix-based intra prediction using asymmetric binary trees
EP4360312A1 (en) Template-based intra mode derivation
KR20240018650A (en) Advanced syntax for picture resampling
WO2020260310A1 (en) Quantization matrices selection for separate color plane mode
CN114731430A (en) Intra-sub-partitions for video encoding and decoding combined with multiple transform selection, matrix weighted intra-prediction, or multi-reference line intra-prediction

Legal Events

Date Code Title Description
A201 Request for examination