KR20210149043A - 변환 스킵 모드를 위한 컨텍스트 코딩 - Google Patents

변환 스킵 모드를 위한 컨텍스트 코딩 Download PDF

Info

Publication number
KR20210149043A
KR20210149043A KR1020217030930A KR20217030930A KR20210149043A KR 20210149043 A KR20210149043 A KR 20210149043A KR 1020217030930 A KR1020217030930 A KR 1020217030930A KR 20217030930 A KR20217030930 A KR 20217030930A KR 20210149043 A KR20210149043 A KR 20210149043A
Authority
KR
South Korea
Prior art keywords
block
current
video block
current video
sign flag
Prior art date
Application number
KR1020217030930A
Other languages
English (en)
Inventor
웨이지아 추
리 창
지청 슈
Original Assignee
바이트댄스 아이엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 바이트댄스 아이엔씨 filed Critical 바이트댄스 아이엔씨
Publication of KR20210149043A publication Critical patent/KR20210149043A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

변환 스킵 모드에서 계수 코딩을 위한 장치, 시스템 및 방법이 설명된다. 비디오 처리를 위한 예시적인 방법은 비주얼 미디어 데이터의 비디오 영역에 있는 하나 이상의 비디오 블록을 비주얼 미디어 데이터의 비트 스트림 표현으로 인코딩 하기 위해, 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차가 변환을 적용하지 않은 비트 스트림 표현에서 표현되도록 변환 스킵 모드를 사용하여 하나 이상의 비디오 블록의 현재 비디오 블록이 인코딩 되도록 허용되는 최대 허용 범위를 결정하는 단계; 및 비트 스트림 표현에서 최대 허용 범위를 나타내는 신택스 요소를 포함하는 단계를 포함한다.

Description

변환 스킵 모드를 위한 컨텍스트 코딩
이 문서는 비디오 및 이미지 코딩 및 디코딩 기술, 시스템 및 장치에 관한 것이다.
적용 가능한 특허법 및/또는 파리 협약에 따른 규칙에 따라, 본 출원은 2019년 4월 19일에 출원된 국제 특허 출원 번호 PCT/CN2019/083366에 대한 우선권 및 이익을 적시에 주장하기 위해 만들어졌다. 법에 따른 모든 목적을 위해, 앞서 언급한 출원의 전체 공개는 이 애플리케이션의 공개의 일부로 참조로 통합된다.
디지털 비디오는 인터넷 및 기타 디지털 통신 네트워크에서 가장 많은 대역폭을 사용한다. 비디오를 수신하고 표시할 수 있는 연결된 사용자 장치의 수가 증가함에 따라 디지털 비디오 사용에 대한 대역폭 수요는 계속 증가할 것으로 예상된다.
디지털 비디오 코딩, 특히 비디오 코딩을 위한 변환 스킵 모드(transform skip mode)의 계수 코딩과 관련된 장치, 시스템 및 방법이 설명된다. 설명된 방법은 기존의 비디오 코딩 표준(예를 들어, HEVC(고효율 비디오 코딩)(High Efficiency Video Coding)) 및 미래의 비디오 코딩 표준(예를 들어, VVC(범용 비디오 코딩)(Versatile Video Coding)) 또는 코덱 모두에 적용될 수 있다.
하나의 예시적인 측면에서, 비주얼 미디어 처리(visual media processing)을 위한 방법이 개시된다. 방법은 비주얼 미디어 데이터(visual media data)의 비디오 영역(video region)에 있는 하나 이상의 비디오 블록(video block)을 비주얼 미디어 데이터의 비트 스트림 표현(bitstream representation)으로 인코딩 하기 위해, 현재 비디오 블록(current video block)과 레퍼런스 비디오 블록(reference video block) 사이의 예측 오차(prediction error)의 잔차(residual)가 변환을 적용하지 않은 비트 스트림 표현에서 표현되도록 변환 스킵 모드(transform skip mode)를 사용하여 하나 이상의 비디오 블록의 현재 비디오 블록이 인코딩 되도록 허용되는 최대 허용 범위(maximum allowed dimension)을 결정하는 단계; 및 비트 스트림 표현에서 최대 허용 범위를 나타내는 신택스 요소(syntax element)를 포함하는 단계를 포함한다.
다른 예시적인 측면에서, 비주얼 미디어 처리를 위한 방법이 개시된다. 방법은 하나 이상의 비디오 블록을 포함하는 비디오 영역을 포함하는 비주얼 미디어 데이터의 비트 스트림 표현으로부터 신택스 요소를 파싱하는 단계 - 신택스 요소는 현재 비디오 블록과 레퍼런스 비디오 블록 간의 예측 오차의 잔차가 변환을 적용하지 않은 비트 스트림 표현에서 표현되는 변환 스킵 모드를 사용하여 비디오 영역의 하나 이상의 블록의 현재 비디오 블록이 코딩 되도록 허용되는 최대 허용 범위를 나타냄 -; 및 최대 허용 범위에 따라 하나 이상의 비디오 블록을 디코딩 함으로써 비트 스트림 표현으로부터 디코딩 된 비디오 영역을 생성하는 단계를 포함한다. 0179
또 다른 예시적인 측면에서, 비주얼 미디어 처리를 위한 방법이 개시된다. 방법은 비주얼 미디어 데이터의 현재 비디오 블록이 변환 스킵 모드를 사용하여 코딩 된다고 결정하는 단계; 및 결정하는 단계에 기초하여, 현재 비디오 블록과 비주얼 미디어 데이터의 비트 스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 변환 동안, 현재 비디오 블록은 복수의 계수 그룹으로 분할되고 복수의 계수 그룹 중 적어도 하나에 대한 코딩 된 블록 플래그의 시그널링은 비트 스트림 표현에서 제외되고, 변환 스킵 모드에서, 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비트 스트림 표현으로 표현된다.
또 다른 예시적인 측면에서, 비주얼 미디어 처리를 위한 방법이 개시된다. 방법은 비주얼 미디어 데이터의 현재 비디오 블록이 변환 스킵 모드를 사용하여 코딩 된다고 결정하는 단계; 및 결정하는 단계에 기초하여, 현재 비디오 블록과 비주얼 미디어 데이터의 비트 스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 변환 동안, 현재 비디오 블록은 복수의 계수 그룹으로 분할되고, 변환 스킵 모드에서, 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비트 스트림 표현으로 표현되고, 및 또한, 변환 동안, 복수의 계수 그룹의 계수 스캐닝 순서는 비트 스트림 표현의 표시에 적어도 부분적으로 기초하여 결정된다.
또 다른 예시적인 측면에서, 비주얼 미디어 처리를 위한 방법이 개시된다. 방법은 비주얼 미디어 데이터의 비디오 영역에서 현재 비디오 블록을 비주얼 미디어 데이터의 비트 스트림 표현으로 인코딩 하기 위해, 변환을 적용하지 않고 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차가 비트 스트림 표현으로 표현되는 변환 스킵 모드를 사용하는 단계; 및 현재 비디오 블록을 복수의 계수 그룹으로 분할하는 것에 기초하여 현재 비디오 블록과 연관된 계수 그룹(coefficient group)에서 하나 이상의 이웃 비디오 블록의 부호 플래그(sign flag)에 따라 현재 비디오 블록의 부호 플래그의 컨텍스트(context)를 선택하는 단계를 포함한다.
또 다른 예시적인 측면에서, 비주얼 미디어 처리를 위한 방법이 개시된다. 방법은 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차가 변환을 적용하지 않고 비트 스트림 표현으로 표현되는 변환 스킵 모드에서 사용된 부호 플래그의 컨텍스트를 식별하기 위해 현재 비디오 블록을 포함하는 비디오 영역을 포함하는 비주얼 미디어 데이터의 비트 스트림 표현을 파싱 하는 단계; 및 부호 플래그의 컨텍스트가 현재 비디오 블록을 복수의 계수 그룹으로 분할하는 것에 기초하여 현재 비디오 블록과 연관된 계수 그룹의 하나 이상의 이웃하는 비디오 블록의 부호 플래그에 따르도록 비트 스트림 표현으로부터 디코딩 된 비디오 영역을 생성하는 단계를 포함한다.
또 다른 예시적인 측면에서, 비주얼 미디어 처리를 위한 방법이 개시된다. 방법은 현재 비디오 블록이 복수의 계수 위치로 분할될 때 비주얼 미디어 데이터의 현재 비디오 블록과 연관된 현재 계수의 위치를 결정하는 단계; 적어도 하나 이상의 이웃 계수의 부호 플래그에 기초하여, 현재 계수에 대한 부호 플래그의 컨텍스트를 유도하는 단계; 및 컨텍스트에 기초하여 현재 계수에 대한 부호 플래그를 생성하는 단계를 포함하고, 현재 계수의 부호 플래그는 현재 비디오 블록이 변환을 적용하지 않고 코딩 되는 변환 스킵 모드에서 사용된다.
또 다른 예시적인 측면에서, 비주얼 미디어 처리를 위한 방법이 개시된다. 방법은 비주얼 미디어 데이터의 비디오 영역에 있는 하나 이상의 비디오 블록을 비주얼 미디어 데이터의 비트 스트림 표현으로 인코딩하기 위해, 크로마 변환 스킵 모드가 현재 비디오 블록에 적용 가능한 적어도 하나의 규칙을 만족하는 것에 기초하여 결정하는 단계 - 크로마 변환 스킵 모드에서 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비주얼 미디어 데이터의 비트 스트림 표현으로 표현됨 -; 및 비트 스트림 표현에서 크로마 변환 스킵 모드를 나타내는 신택스 요소를 포함하는 단계를 포함한다.
또 다른 예시적인 측면에서, 비주얼 미디어 처리를 위한 방법이 개시된다. 방법은 크로마 변환 스킵 모드의 적용과 연관된 적어도 하나의 규칙이 만족되는 하나 이상의 비디오 블록을 포함하는 비디오 영역을 포함하는 비주얼 미디어 데이터의 비트 스트림 표현으로부터 신택스 요소를 파싱 하는 단계 - 크로마 변환 스킵 모드에서 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비주얼 미디어 데이터의 비트 스트림 표현으로 표현됨 -; 및 하나 이상의 비디오 블록을 디코딩 함으로써 비트 스트림 표현으로부터 디코딩 된 비디오 영역을 생성하는 단계를 포함한다.
또 다른 예시적인 측면에서, 비주얼 미디어 처리를 위한 방법이 개시된다. 방법은 비주얼 미디어 데이터의 비디오 영역에 있는 하나 이상의 비디오 블록을 비주얼 미디어 데이터의 비트 스트림 표현으로 인코딩 하기 위해, 조건에 기초하여 현재 비디오 블록에 대한 변환 스킵 모드의 선택적 적용에 관한 결정을 내리는 단계; 및 비트 스트림 표현에서 조건을 나타내는 신택스 요소를 포함하는 단계를 포함하고, 변환 스킵 모드에서, 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비주얼 미디어 데이터의 비트 스트림 표현으로 표현된다.
또 다른 예시적인 측면에서, 비주얼 미디어 처리를 위한 방법이 개시된다. 방법은 하나 이상의 비디오 블록을 포함하는 비디오 영역을 포함하는 비주얼 미디어 데이터의 비트 스트림 표현으로부터 신택스 요소를 파싱하는 단계 -신택스 요소는 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차가 변환을 적용하지 않고 비트 스트림 표현으로 표현되는 변환 스킵 모드의 사용과 관련된 조건을 나타냄 -; 및 조건에 따라 하나 이상의 비디오 블록을 디코딩 함으로써 비트 스트림 표현으로부터 디코딩 된 비디오 영역을 생성하는 단계를 포함한다.
또 다른 예시적인 측면에서, 비주얼 미디어 처리를 위한 방법이 개시된다. 방법은 비주얼 미디어 데이터의 비디오 영역에 있는 하나 이상의 비디오 블록을 비주얼 미디어 데이터의 비트 스트림 표현으로 인코딩 하기 위해, 비트 스트림 표현에서 변환 스킵 모드의 표시에 기초하여 양자화된 잔차 블록 차동 펄스-코드 변조(quantized residual block differential pulse-code modulation)(QR-BDPCM) 기술의 선택적인 적용에 관한 결정을 내리는 단계 - 변환 스킵 모드에서, 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비주얼 미디어 데이터의 비트 스트림 표현으로 표현되고, QR-BDPCM 기술에서, 수평 방향 및/또는 수직 방향의 예측 오차의 잔차는 양자화 및 엔트로피 코딩 됨 -; 및 비트 스트림 표현에서 QR-BDPCM 기술의 선택적 적용의 표시를 포함하는 단계를 포함한다.
또 다른 예시적인 측면에서, 비주얼 미디어 처리를 위한 방법이 개시된다. 방법은 하나 이상의 비디오 블록을 포함하는 비디오 영역을 포함하는 비주얼 미디어 데이터의 비트 스트림 표현으로부터 신택스 요소를 파싱 하는 단계 - 신택스 요소는 비트 스트림 표현에서 변환 스킵 모드의 표시에 기초한 양자화된 잔차 블록 차동 펄스 코드 변조(QR-BDPCM) 기술의 선택적 적용을 나타내고, 변환 스킵 모드에서, 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비주얼 미디어 데이터의 비트 스트림 표현으로 표현되고, QR-BDPCM 기술에서, 수평 방향 및/또는 수직 방향의 예측 오차의 잔차는 양자화 및 엔트로피 코딩 됨 -; 및 최대 허용 범위에 따라 하나 이상의 비디오 블록을 디코딩 함으로써 비트 스트림 표현으로부터 디코딩 된 비디오 영역을 생성하는 단계를 포함한다.
또 다른 예시적인 측면에서, 비주얼 미디어 처리를 위한 방법이 개시된다. 방법은, 조건에 기초하여 분리 또는 듀얼 트리(dual tree)의 선택적인 적용과 관련하여, 비주얼 미디어 데이터의 비디오 영역에 있는 하나 이상의 비디오 블록을 비주얼 미디어 데이터의 비트 스트림 표현으로 인코딩 하기 위한 결정을 내리는 단계; 및 비트 스트림 표현에서 분리 또는 듀얼 트리의 선택적 적용을 나타내는 신택스 요소를 포함하는 단계를 포함한다.
또 다른 예시적인 측면에서, 비주얼 미디어 처리를 위한 방법이 개시된다. 방법은 하나 이상의 비디오 블록을 포함하는 비디오 영역을 포함하는 비주얼 미디어 데이터의 비트 스트림 표현으로부터 신택스 요소를 파싱하는 단계 - 신택스 요소는 조건에 기초하거나 조건으로부터 유추된 분리 또는 듀얼 트리의 선택적 적용을 나타냄 -; 및 신택스 요소에 따라 하나 이상의 비디오 블록을 디코딩 함으로써 비트 스트림 표현으로부터 디코딩 된 비디오 영역을 생성하는 단계를 포함한다.
또 다른 예시적인 측면에서, 전술한 방법을 구현하도록 구성된 프로세서(processor)를 포함하는 비디오 인코더 또는 디코더 장치가 개시된다.
다른 예시적인 측면에서, 컴퓨터 판독 가능 프로그램 매체(computer readable program medium)가 개시된다. 매체는 개시된 방법 중 하나를 구현하기 위한 프로세서 실행 가능 명령(processor executable instruction)을 구현하는 코드(code)를 저장한다.
이러한 측면 및 기타 측면은 본 문서에서 추가로 설명된다.
도 1은 인트라 블록 카피의 예를 나타낸다.
도 2는 팔레트 모드에서 코딩 된 블록의 예를 나타낸다.
도 3은 팔레트 엔트리를 시그널링 하기 위한 팔레트 예측자의 사용의 예를 나타낸다.
도 4는 수평 및 수직 횡단 스캔의 예를 나타낸다.
도 5는 팔레트 인덱스의 코딩의 예를 나타낸다.
도 6은 다중 유형 트리 분할 모드의 예를 나타낸다.
도 7은 CCLM(크로스 컴포넌트 선형 모델)(cross-component linear model)) 예측 모드에서 파라미터를 유도하는 데 사용되는 샘플의 예를 나타낸다.
도 8은 크로마 스케일링을 갖는 루마 매핑을 위한 예시적인 아키텍처를 도시한다.
도 9a 내지 9e는 비디오 처리 방법의 예에 대한 흐름도이다.
도 10은 본 문서에 설명된 비주얼 미디어 디코딩 또는 비주얼 미디어 인코딩 기술을 구현하기 위한 하드웨어 플랫폼의 예의 블록도이다.
도 11은 개시된 기술이 구현될 수 있는 예시적인 비디오 처리 시스템의 블록도이다.
도 12는 비주얼 미디어 처리를 위한 예시적인 방법의 흐름도이다.
도 13은 비주얼 미디어 처리를 위한 예시적인 방법의 흐름도이다.
도 14는 비주얼 미디어 처리를 위한 예시적인 방법의 흐름도이다.
도 15는 비주얼 미디어 처리를 위한 예시적인 방법의 흐름도이다.
도 16은 비주얼 미디어 처리를 위한 예시적인 방법의 흐름도이다.
도 17은 비주얼 미디어 처리를 위한 예시적인 방법의 흐름도이다.
도 18은 비주얼 미디어 처리를 위한 예시적인 방법의 흐름도이다.
도 19는 비주얼 미디어 처리를 위한 예시적인 방법의 흐름도이다.
도 20은 비주얼 미디어 처리를 위한 예시적인 방법의 흐름도이다.
도 21은 비주얼 미디어 처리를 위한 예시적인 방법의 흐름도이다.
도 22는 비주얼 미디어 처리를 위한 예시적인 방법의 흐름도이다.
도 23은 비주얼 미디어 처리를 위한 예시적인 방법의 흐름도이다.
도 24는 비주얼 미디어 처리를 위한 예시적인 방법의 흐름도이다.
도 25는 비주얼 미디어 처리를 위한 예시적인 방법의 흐름도이다.
도 26은 비주얼 미디어 처리를 위한 예시적인 방법의 흐름도이다.
본 문서는 압축해제 또는 디코딩 된 디지털 비디오 또는 이미지들의 품질을 개선하기 위해 이미지 또는 비디오 비트 스트림의 디코더에 의해 사용될 수 있는 다양한 기술을 제공한다. 간결함을 위해, "비디오"라는 용어는 연속적인 사진(전통적으로 비디오라고 함)과 개별 이미지를 모두 포함하는 데 사용된다. 또한, 비디오 인코더는 추가 인코딩에 사용되는 디코딩 된 프레임을 재구성하기 위해 인코딩 프로세스(process) 동안 이러한 기술을 구현할 수도 있다.
섹션 제목은 이해의 편의를 위해 본 문서에서 사용되며 실시예 및 기술을 해당 섹션으로 제한하지 않는다. 이와 같이, 한 섹션의 실시예는 다른 섹션의 실시예와 결합될 수 있다.
1. 요약
이 문서는 비디오 코딩/디코딩 기술에 관한 것이다. 구체적으로, 비디오 코딩에서 변환 스킵 모드(transform skip mode)에서의 계수 코딩(coefficient coding)과 관련된다. HEVC와 같은 기존의 비디오 코딩 표준에 적용되거나, 완성될 표준(범용 비디오 코딩(Versatile Video Coding))에 적용될 수 있다. 미래의 비디오 코딩 표준이나 비디오 코덱에도 적용될 수 있다.
2. 초기 논의
비디오 코딩 표준은 주로 잘 알려진 ITU-T 및 ISO/IEC 표준의 개발을 통해 발전해 왔다. ITU-T는 H.261과 H.263을, ISO/IEC는 MPEG-1과 MPEG-4 Visual을, 두 조직은 H.262/MPEG-2 비디오 및 H.264/MPEG-4 고급 비디오 코딩(AVC) 및 H.265/HEVC 표준[1,2]을 공동으로 제작했다. H.262 이후, 비디오 코딩 표준은 시간 예측과 변환 코딩이 사용되는 하이브리드 비디오 코딩 구조에 기초한다. HEVC 넘어 미래의 비디오 코딩 기술을 탐색하기 위해 2015년 VCEG와 MPEG가 공동으로 JVET(연합 비디오 연구 팀(Joint Video Exploration Team))를 설립했다. 그 이후로 JVET는 많은 새로운 방법을 채택하고 JEM(연합 연구 모델(Joint Exploration Model))이라는 레퍼런스 소프트웨어에 적용했다. 2018년 4월, VCEG(Q6/16)와 ISO/IEC JTC1 SC29/WG11(MPEG) 간의 JVET HEVC에 비해 50% 비트 전송률 감소를 목표로 하는 VVC 표준 작업을 위해 만들어졌다.
VVC 초안의 최신 버전, 즉 범용 비디오 코딩(Versatile Video Coding)(드래프트(Draft) 4)은 다음 위치에서 찾을 수 있다.
http://phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=5755
VTM이라는 VVC의 최신 참조 소프트웨어는 다음에서 찾을 수 있다.
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-4.0
인트라 블록 복사(Intra block copy)
현재 픽처 레퍼런스(picture reference)라고도 하는 IBC(인트라 블록 복사)는 HEVC 스크린 콘텐츠 코딩 확장(HEVC-SCC) 및 현재 VVC 테스트 모델(VTM-4.0)에 채택되었다. IBC는 모션 보상의 개념을 프레임 간 코딩에서 프레임 내 코딩으로 확장한다. 도 1에 도시된 바와 같이, 현재 블록은 IBC가 적용될 때 동일한 픽처 내의 레퍼런스 블록(reference block)에 의해 예측된다. 레퍼런스 블록의 샘플은 현재 블록이 코딩 되거나 디코딩 되기 전에 이미 재구성되어 있어야 한다. IBC는 대부분의 카메라 캡처 시퀀스에 대해 그다지 효율적이지 않지만 화면 콘텐츠에 대해 상당한 코딩 이득을 보여준다. 그 이유는 화면 콘텐츠 픽처에서 아이콘, 텍스트 문자 등 반복되는 패턴이 많기 때문이다. IBC는 이러한 반복 패턴 사이의 중복성을 효과적으로 제거할 수 있다. HEVC-SCC에서 CU(인터 코딩 된 코딩 유닛)는 현재 픽처를 레퍼런스 픽처로 선택하는 경우 IBC를 적용할 수 있다. 이 경우 MV는 블록 벡터(BV)로 이름이 바뀌고 BV는 항상 정수 픽셀 정밀도를 갖는다. 메인 프로파일 HEVC와 호환되도록 현재 픽처는 DPB(디코딩 픽처 버퍼(Decoded Picture Buffer))에서 "장기" 레퍼런스 픽처로 표시된다. 유사하게, 다중 시점/3D 비디오 코딩 표준에서 시점간 레퍼런스 픽처는 "장기" 레퍼런스 픽처로도 표시된다는 점에 유의해야 한다.
BV를 따라 레퍼런스 블록을 찾은 후 레퍼런스 블록을 복사하여 예측을 생성할 수 있다. 잔차는 원래 시그널링에서 레퍼런스 픽셀을 빼서 얻을 수 있다. 그런 다음 다른 코딩 모드에서와 같이 변환 및 양자화가 적용될 수 있다.
그러나 레퍼런스 블록이 픽처 외부에 있거나 현재 블록과 중첩되거나 복원 영역 외부 또는 일부 제약 조건(constrain)에 의해 제한된 유효 영역 외부에 있는 경우 일부 또는 전체 픽셀 값이 정의되지 않는다. 기본적으로 이러한 문제를 처리하는 두 가지 솔루션이 있다. 하나는 예를 들어 비트 스트림 적합성에서 그러한 상황을 허용하지 않는 것이다. 다른 하나는 정의되지 않은 픽셀 값에 패딩을 적용하는 것이다. 다음 서브 세션에서는 솔루션에 대해 자세히 설명한다.
HEVC 화면 콘텐츠 코딩 확장의 IBC
HEVC의 화면 콘텐츠 코딩 확장에서 블록이 현재 픽처를 참조로 사용할 때 다음 사양 텍스트에 표시된 대로 전체 레퍼런스 블록이 사용 가능한 재구성 영역 내에 있음을 보장해야 한다.
변수 offsetX 및 offsetY는 다음과 같이 유도된다:
offsetX = ( ChromaArrayType = = 0 ) ? 0 : ( mvCLX[ 0 ] & 0x7 ? 2 : 0 )
(8-106)
offsetY = ( ChromaArrayType = = 0 ) ? 0 : ( mvCLX[ 1 ] & 0x7 ? 2 : 0 )
(8-107)
레퍼런스 픽처가 현재 픽처일 때, 루마 모션 벡터 mvLX가 다음 제약 조건을 따라야 하는 것은 비트 스트림 적합성의 요구 사항이다:
6.4.1절에 명시된 z-스캔 순서 블록 가용성에 대한 유도 프로세스가 ( xCb, yCb )가 ( xCurr, yCurr )와 동일하게 설정되고 및 이웃 루마 위치( xNbY, yNbY )가 입력으로 ( xPb + (mvLX[ 0 ] >> 2) - offsetX, yPb + ( mvLX[ 1 ] >> 2 ) - offsetY )와 동일하게 설정되어 호출될 때, 출력은 TRUE와 같아야 한다.
6.4.1절에 명시된 z-스캔 순서 블록 가용성에 대한 유도 프로세스가 ( xCb, yCb )가 ( xCurr, yCurr )와 동일하게 설정되고 및 이웃 루마 위치( xNbY, yNbY )가 입력으로 ( xPb + (mvLX[ 0 ] >> 2) + nPbW - 1 + offsetX, yPb + (mvLX[ 1 ] >> 2) + nPbH - 1 + offsetY)와 동일하게 설정되어 호출될 때, 출력은 TRUE와 같아야 한다.
다음 조건 중 하나 또는 둘 모두가 참이어야 한다.
( mvLX[ 0 ] >> 2 ) + nPbW + xB1 + offsetX의 값은 0보다 작거나 같다.
( mvLX[ 1 ] >> 2 ) + nPbH + yB1 + offsetY 의 값은 0보다 작거나 같다.
다음 조건이 참이어야 한다.
( xPb + ( mvLX[ 0 ] >> 2 ) + nPbSw - 1 + offsetX) / CtbSizeY - xCurr / CtbSizeY <=
yCurr/CtbSizeY - ( yPb + ( mvLX[ 1 ] >> 2 ) + nPbSh - 1 + offsetY ) / CtbSizeY (8-108)
따라서, 레퍼런스 블록(reference block)이 현재 블록과 겹치거나 레퍼런스 블록이 픽처 외부에 있는 경우는 발생하지 않는다. 레퍼런스 또는 예측 블록(prediction block)을 채울 필요가 없다.
VVC 테스트 모델의 IBC
현재 VVC 테스트 모델, 즉 VTM-4.0 설계에서 전체 레퍼런스 블록은 현재 CTU(코딩 트리 유닛)와 함께 있어야 하며 현재 블록과 겹치지 않아야 한다. 따라서 레퍼런스 또는 예측 블록을 채울 필요가 없다. IBC 플래그는 현재 CU의 예측 모드로 코딩 된다. 따라서 각 CU에 대해 MODE_INTRA, MODE_INTER 및 MODE_IBC의 세 가지 예측 모드가 있다.
IBC 병합 모드
IBC 병합 모드(merge mode)에서 IBC 병합 후보 목록의 항목을 가리키는 인덱스는 비트 스트림에서 파싱 된다. IBC 병합 목록의 구성은 다음 단계 순서에 따라 요약할 수 있다.
1 단계: 공간 후보 유도
2 단계: HMVP 후보 삽입
3단계: 쌍별 평균 후보 삽입
공간 병합 후보 유도에서는 A1, B1, B0, A0, B2 위치에 위치한 후보 중 최대 4개의 병합 후보를 선정한다. 유도 순서는 A1, B1, B0, A0 및 B2이다. 위치 B2는 위치 A1, B1, B0, A0의 PU를 사용할 수 없는 경우(예를 들어, 다른 슬라이스 또는 타일에 속하기 때문에) 또는 IBC 모드로 코딩 되지 않은 경우에만 고려된다. A1 위치의 후보가 추가된 후 나머지 후보의 삽입은 중복 확인(redundancy check)를 거쳐 동일한 모션 정보를 가진 후보를 목록에서 제외하여 코딩 효율성을 향상시킨다.
공간 후보를 삽입한 후 IBC 병합 목록 크기가 최대 IBC 병합 목록 크기보다 여전히 작은 경우 HMVP 테이블의 IBC 후보를 삽입할 수 있다. HMVP 후보를 삽입할 때 중복 확인이 수행된다.
마지막으로, 쌍별 평균 후보가 IBC 병합 목록에 삽입된다.
병합 후보에 의해 식별된 레퍼런스 블록이 픽처 외부에 있거나 현재 블록과 중첩되거나 재구성된 영역 외부 또는 일부 제약 조건에 의해 제한된 유효 영역 외부에 있는 경우 병합 후보를 유효하지 않은 병합 후보(invalid merge candidate)라고 한다.
유효하지 않은 병합 후보가 IBC 병합 목록에 삽입될 수 있다.
IBC AMVP 모드
IBC AMVP 모드에서 IBC AMVP 목록의 항목에 대한 AMVP 인덱스 포인트는 비트 스트림에서 파싱 된다. IBC AMVP 목록의 구성은 다음 단계 순서에 따라 요약할 수 있다.
1 단계: 공간 후보 유도
사용 가능한 후보를 찾을 때까지 A0, A1을 확인
사용 가능한 후보를 찾을 때까지 B0, B1, B2를 확인
2 단계: HMVP 후보 삽입
3단계: 제로 후보 삽입
공간 후보를 삽입한 후 IBC AMVP 목록 크기가 최대 IBC AMVP 목록 크기보다 여전히 작은 경우 HMVP 테이블의 IBC 후보가 삽입될 수 있다.
마지막으로 IBC AMVP 목록에 0개의 후보가 삽입된다.
적응형 모션 벡터 해상도(AMVR)
HEVC에서, 슬라이스 헤더에서 use_integer_mv_flag가 0일 때 모션 벡터 차이(MVD)(CU의 모션 벡터와 예측된 모션 벡터 사이)는 1/4-루마-샘플 유닛으로 시그널링 된다. VVC에서, CU 레벨 AMVR(적응형 모션 벡터 해상도(Adaptive Motion Vector Resolution)) 방식이 도입되었다. AMVR을 사용하면 CU의 MVD를 다른 정밀도로 코딩할 수 있다. 현재 CU의 모드(일반 AMVP 모드 또는 아핀(affine) AVMP 모드)에 따라, 현재 CU의 MVD는 다음과 같이 적응적으로 선택될 수 있다:
- 일반 AMVP 모드: 1/4-루마-샘플, 정수-루마-샘플 또는 4-루마-샘플.
- 아핀 AMVP 모드: 1/4-루마-샘플, 정수-루마-샘플 또는 1/16-루마-샘플.
현재 CU에 0이 아닌 MVD 컴포넌트가 하나 이상 있으면 CU 레벨 MVD 해상도 표시가 조건부로 시그널링 된다. 모든 MVD 컴포넌트(즉, 레퍼런스 목록 L0 및 레퍼런스 목록 L1에 대한 수평 및 수직 MVD 모두)가 0이면 1/4-루마-샘플 MVD 해상도가 유추된다.
적어도 하나의 0이 아닌 MVD 성분을 갖는 CU의 경우, 1/4-루마-샘플 MVD 정밀도가 CU에 사용되는지 여부를 나타내기 위해 제1 플래그가 시그널링 된다. 제1 플래그가 0이면 추가 시그널링이 필요하지 않으며 현재 CU에 대해 1/4-루마-샘플 MVD 정밀도가 사용된다. 그렇지 않으면, 정수-루마-샘플 또는 4-루마-샘플 MVD 정밀도가 일반 AMVP CU에 사용되는지 여부를 나타내기 위해 제2 플래그가 시그널링 된다. 동일한 제2 플래그는 정수-루마-샘플 또는 1/16 루마-샘플 MVD 정밀도가 아핀 AMVP CU에 사용되는지 여부를 나타내는 데 사용된다. 재구성된 MV가 의도한 정밀도(1/4-루마-샘플, 정수-루마-샘플 또는 4-루마-샘플)를 갖도록 하기 위해 CU에 대한 모션 벡터 예측자는 MVD와 동일한 정밀도로 반올림된다. MVD와 함께 추가되기 전에 모션 벡터 예측자는 0을 향해 반올림된다(즉, 음의 모션 벡터 예측자는 양의 무한대로 반올림되고 양의 모션 벡터 예측자는 음의 무한대로 반올림됨).
인코더는 RD 확인을 사용하여 현재 CU에 대한 모션 벡터 해상도를 결정한다. 각 MVD 해상도에 대해 항상 CU 레벨 RD 확인을 세 번 수행하는 것을 피하기 위해, VTM4에서 1/4-루마-샘플 이외의 MVD 정밀도에 대한 RD 확인은 조건부로만 호출된다. 일반 AVMP 모드의 경우 1/4-루마-샘플 MVD 정밀도 및 정수-루마-샘플 MV 정밀도의 RD 비용이 먼저 계산된다. 그런 다음 정수-루마-샘플 MVD 정밀도의 RD 비용을 1/4-루마-샘플 MVD 정밀도의 RD 비용과 비교하여 4-루마-샘플 MVD 정밀도의 RD 비용을 추가로 확인할 필요가 있는지 여부를 결정한다. 1/4-루마-샘플 MVD 정밀도에 대한 RD 비용이 정수-루마-샘플 MVD 정밀도보다 훨씬 작은 경우 4-루마-샘플 MVD 정밀도의 RD 확인은 스킵 된다. 아핀 AMVP 모드의 경우, 아핀 merge/skip 모드, merge/skip 모드, 1/4-루마-샘플 MVD 정밀도 일반 AMVP 모드 및 1/4-루마-샘플 MVD 정밀도 아핀 AMVP 모드의 비율-왜곡 비용(rate-distortion cost)을 확인한 후 아핀 인터 모드를 선택하지 않으면, 1/16-루마-샘플 MV 정밀도 및 1-pel MV 정밀도 아핀 인터 모드는 확인되지 않는다. 또한 1/16-루마-샘플 및 1/4-루마-샘플 MV 정밀도 아핀 인터 모드에서 1/4-루마-샘플 MV 정밀도 아핀 인터 모드에서 얻은 아핀 파라미터가 시작 검색 포인트(starting search point)로 사용된다.
팔레트 모드(Palette Mode)
팔레트 모드의 기본 아이디어는 CU의 샘플이 작은 대표 컬러 값 세트로 표현된다는 것이다. 이 세트를 팔레트라고 한다. 이스케이프 기호(escape symbol) 뒤에 (양자화된) 컴포넌트 값이 오는 시그널링 함으로써 팔레트 외부에 있는 샘플을 나타내는 것도 가능하다. 이것은 도 2에 도시되어 있다.
HEVC 화면 콘텐츠 코딩 확장(HEVC-SCC)의 팔레트 모드
HEVC-SCC의 팔레트 모드에서 예측 방식은 팔레트와 인덱스 맵을 코딩 하는 데 사용된다.
팔레트 항목의 코딩(Coding of the palette entries)
팔레트 항목의 코딩을 위해 팔레트 예측자가 유지된다. 팔레트 예측자(palette predictor)와 팔레트의 최대 크기는 SPS에서 시그널링 된다. HEVC-SCC에서는 PPS에 palette_predictor_initializer_present_flag가 도입된다. 이 플래그가 1이면 팔레트 예측자를 초기화하기 위한 항목이 비트 스트림에서 시그널링 된다. 팔레트 예측자는 각 CTU 행, 각 슬라이스 및 각 타일의 시작 부분에서 초기화된다. palette_predictor_initializer_present_flag의 값에 따라, 팔레트 예측자는 0으로 재설정되거나 PPS에서 시그널링 된 팔레트 예측자 초기화 항목을 사용하여 초기화된다. HEVC-SCC에서 크기 0의 팔레트 예측자 초기화가 활성화되어 PPS 레벨에서 팔레트 예측자 초기화를 명시적으로 비활성화할 수 있다.
팔레트 예측자의 각 항목에 대해 재사용 플래그가 시그널링 함으로써 현재 팔레트의 일부인지 여부를 나타낸다. 이것은 도 3에 도시되어 있다. 재사용 플래그는 0의 실행 길이 코딩을 사용하여 전송된다. 그 후, 새로운 팔레트 항목의 수는 차수 0의 지수 골롬(Golomb) 코드를 사용하여 시그널링 된다. 마지막으로, 새 팔레트 항목에 대한 컴포넌트 값이 표시된다.
팔레트 인덱스 코딩
팔레트 인덱스는 도 4에 도시된 바와 같이 수평 및 수직 횡단 스캔(traverse scan)을 사용하여 코딩 된다. 스캔 순서는 palette_transpose_flag를 사용하여 비트 스트림에서 명시적으로 시그널링 된다. 나머지 서브 섹션에서는 스캔이 수평이라고 가정한다.
팔레트 인덱스는 두 가지 주요 팔레트 샘플 모드를 사용하여 코딩 된다: 'INDEX' 및 'COPY_ABOVE'. 앞서 설명한 것처럼 이스케이프 기호도 'INDEX' 모드로 시그널링 되고 최대 팔레트 크기와 동일한 인덱스가 할당된다. 모드는 맨 위쪽 행 또는 이전 모드가 'COPY_ABOVE'인 경우를 제외하고 플래그를 사용하여 시그널링 된다. 'COPY_ABOVE' 모드에서는 위쪽 행에 있는 샘플의 팔레트 인덱스가 복사된다. 'INDEX' 모드에서 팔레트 인덱스는 명시적으로 시그널링 된다. 'INDEX' 및 'COPY_ABOVE' 모드 모두에 대해, 동일한 모드를 사용하여 코딩 되는 후속 샘플의 수를 지정하는 실행 값(run value)이 시그널링 된다. 이스케이프 기호가 'INDEX' 또는 'COPY_ABOVE' 모드에서 실행의 일부인 경우 각 이스케이프 기호에 대해 이스케이프 컴포넌트 값(escape component value)이 시그널링 된다. 팔레트 인덱스의 코딩은 도 5에 도시되어 있다.
이 신택스 순서는 다음과 같이 수행된다. 먼저 CU에 대한 인덱스 값의 수가 시그널링 된다. 그 다음에는 잘린 이진 코딩을 사용하여 전체 CU에 대한 실제 인덱스 값의 시그널링이 이어진다. 인덱스 수와 인덱스 값 모두 바이패스 모드에서 코딩 된다. 인덱스 관련 우회 빈을 함께 그룹화한다. 그런 다음 팔레트 샘플 모드(필요한 경우)와 실행이 인터리브 방식으로 시그널링 된다. 마지막으로 전체 CU에 대한 이스케이프 샘플에 해당하는 컴포넌트 이스케이프 값이 함께 그룹화되고 바이패스 모드에서 코딩 된다.
추가 신택스 요소인 last_run_type_flag는 인덱스 값을 시그널링 한 후 시그널링 된다. 이 신택스 요소는 인덱스 수와 함께 블록의 마지막 실행에 해당하는 실행 값에 시그널링을 보낼 필요가 없다.
HEVC-SCC에서 팔레트 모드는 4:2:2, 4:2:0 및 모노크롬 크로마 형식에 대해서도 활성화된다. 팔레트 항목 및 팔레트 인덱스의 시그널링은 모든 크로마 형식에 대해 거의 동일하다. 흑백 형식이 아닌 경우 각 팔레트 항목은 3개의 컴포넌트로 구성된다. 단색 형식의 경우 각 팔레트 항목은 단일 컴포넌트로 구성된다. 서브 샘플링된 크로마 방향의 경우 크로마 샘플은 2로 나눌 수 있는 루마 샘플 인덱스와 연결된다. CU에 대한 팔레트 인덱스를 재구성한 후 샘플에 연관된 단일 컴포넌트만 있는 경우 팔레트 항목의 제1 컴포넌트만 사용된다. 시그널링의 유일한 차이점은 이스케이프 컴포넌트 값에 대한 것이다. 각 이스케이프 샘플에 대해, 시그널링 되는 이스케이프 컴포넌트 값의 수는 해당 샘플과 연결된 컴포넌트의 수에 따라 다를 수 있다.
변환 스킵 모드의 계수 코딩
JVET-M0464 및 JVET-N0280에서는 변환 스킵 레벨의 통계 및 시그널링 특성에 잔차 코딩을 적용하기 위해 변환 스킵(TS) 모드의 계수 코딩에 대한 몇 가지 수정이 제안된다.
제안된 수정 사항은 다음과 같다.
마지막 중요한 스캔 위치 없음: 잔차 시그널링은 예측 후 공간 잔차를 반영하고 TS에 대해 변환에 의한 에너지 압축이 수행되지 않기 때문에 변환 블록의 오른쪽 하단 모서리에서 후행 0 또는 중요하지 않은 레벨에 대한 더 높은 확률은 더 이상 제공되지 않는다. 따라서 이 경우 마지막 중요 스캐닝 위치 시그널링은 생략된다.
서브 블록 CBF: 마지막 중요 스캐닝 위치 시그널링의 부재는 TS에 대한 coded_sub_block_flag가 있는 서브 블록 CBF 시그널링이 다음과 같이 수정될 것을 요구한다:
○ 양자화로 인해 전술한 무의미한 시퀀스는 변환 블록 내부에서 여전히 국부적으로 발생할 수 있다. 따라서, 앞서 설명한 바와 같이 마지막 중요 스캐닝 위치가 제거되고 모든 서브 블록에 대해 coded_sub_block_flag가 코딩 된다.
○ DC 주파수 위치(왼쪽 상단 서브 블록)를 커버하는 서브 블록에 대한 coded_sub_block_flag는 특별한 경우를 나타낸다. VVC Draft 3에서 이 서브 블록에 대한 coded_sub_block_flag는 시그널링 되지 않으며 항상 1과 같도록 유추된다. 마지막 유효 스캐닝 위치가 다른 서브 블록에 위치하는 경우, DC 서브 블록 외부에 적어도 하나의 유효 레벨이 있음을 의미한다. 결과적으로, DC 서브 블록은 이 서브 블록에 대한 coded_sub_block_flag가 1과 동일한 것으로 유추되지만 0/무의미한 레벨만을 포함할 수 있다. TS에 마지막 스캐닝 위치 정보가 없으면, 각 서브 블록에 대한 coded_sub_block_flag가 시그널링 된다. 이것은 또한 다른 모든 coded_sub_block_flag 신택스 요소가 이미 0과 같은 경우를 제외하고 DC 서브 블록에 대한 coded_sub_block_flag를 포함한다. 이 경우, DC coded_sub_block_flag는 1과 동일한 것으로 유추된다(inferDcSbCbf=1). 이 DC 서브 블록에는 적어도 하나의 유효 레벨이 있어야 하므로, (0,0)에서 첫 번째 위치에 대한 sig_coeff_flag 신택스 요소는 시그널링 되지 않고 이 DC 서브 블록의 다른 모든 sig_coeff_flag 신택스 요소가 0과 동일한 경우 대신 1과 동일하도록 유도된다(inferSbDcSigCoeffFlag=1)..
○ coded_sub_block_flag에 대한 컨텍스트 모델링이 변경되었다. 컨텍스트 모델 인덱스는 왼쪽에 있는 coded_sub_block_flag와 현재 서브 블록 위에 있는 coded_sub_block_flag의 합과 둘 다의 논리적 분리로 계산된다.
sig_coeff_flag 컨텍스트 모델링: sig_coeff_flag 컨텍스트 모델링의 로컬 템플릿은 현재 스캐닝 위치의 왼쪽 이웃(NB0)과 위쪽 이웃(NB1)만 포함하도록 수정된다. 컨텍스트 모델 오프셋은 중요한 이웃 위치 sig_coeff_flag[NB0] + sig_coeff_flag[NB1]의 수이다. 따라서 현재 변환 블록 내의 대각선에 따라 다른 컨텍스트 세트의 선택이 제거된다. 그 결과 세 가지 컨텍스트 모델과 sig_coeff_flag 플래그를 코딩 하기 위한 단일 컨텍스트 모델 세트가 생성된다.
abs_level_gt1_flag 및 par_level_flag 컨텍스트 모델링: abs_level_gt1_flag 및 par_level_flag에 대해 단일 컨텍스트 모델이 사용된다.
abs_remainder 코딩: 변환 스킵 잔차 절대 레벨의 경험적 분포는 일반적으로 여전히 라플라시안 또는 기하학적 분포에 적합하지만 변환 계수 절대 레벨보다 더 큰 비정상성이 존재한다. 특히, 연속 실현 창 내 분산은 잔차 절대 레벨에서 더 높다. 이것은 abs_remainder 신택스 이진화 및 컨텍스트 모델링의 다음 수정을 유발한다.
○ 이진화에서 더 높은 컷오프 값, 즉 sig_coeff_flag, abs_level_gt1_flag, par_level_flag 및 abs_level_gt3_flag를 사용한 코딩에서 abs_remainder에 대한 라이스 코드(Rice code) 및 각 빈 위치에 대한 전용 컨텍스트 모델로의 전환점을 사용하면 더 높은 압축 효율을 얻을 수 있다. 컷오프를 늘리면 컷오프에 도달할 때까지 abs_level_gt5_flag, abs_level_gt7_flag 등을 도입하는 등 "X보다 큼" 플래그가 생성된다. 컷오프 자체는 5로 고정된다(numGtFlags=5).
○ 라이스 파라미터 유도를 위한 템플릿이 수정되고, 즉, 왼쪽에 있는 이웃과 현재 스캐닝 위치 위에 있는 이웃만이 sig_coeff_flag 컨텍스트 모델링을 위한 로컬 템플릿과 유사한 것으로 간주된다.
coeff_sign_flag 컨텍스트 모델링: 기호 시퀀스 내부의 비정상성과 예측 잔차가 종종 편향된다는 사실 때문에 전역 경험적 분포가 거의 균일하게 분포된 경우에도 컨텍스트 모델을 사용하여 기호를 코딩할 수 있다. 단일 전용 컨텍스트 모델이 기호 코딩에 사용되며 기호는 sig_coeff_flag 다음에 파싱 되어 모든 컨텍스트 코딩 된 빈을 함께 유지한다.
양자화 잔차 블록 차동 펄스 부호 변조(QR-BDPCM)
JVET-M0413에서는 화면 콘텐츠를 효율적으로 코딩 하기 위해 양자화된 잔차 블록 차동 펄스 코드 변조(QR-BDPCM)가 제안된다.
QR-BDPCM에서 사용되는 예측 방향은 수직 및 수평 예측 모드가 될 수 있다. 인트라 예측은 인트라 예측과 유사한 예측 방향(수평 또는 수직 예측)으로 샘플 복사하여 전체 블록에 대해 수행된다. 잔차는 양자화되고 양자화된 잔차와 그 예측자(수평 또는 수직) 양자화된 값 사이의 델타가 코딩 된다. 이것은 다음과 같이 설명할 수 있다: 위쪽 또는 왼쪽 블록 경계 샘플에서 필터링 되지 않은 샘플을 사용하여, 인트라 예측을 수평으로(예측된 블록을 가로질러 왼쪽 이웃 픽셀 값을 라인 단위로 복사) 또는 수직으로(예측된 블록의 각 라인에 상단 인접 라인 복사) 수행한 이후 크기가 M(행) Х N(열)인 블록의 경우, ri,j, 0≤i≤M-1, 0≤j≤N-1을 예측 잔차로 둔다.Q(ri,j), 0≤i≤M-1, 0≤j≤N-1이 잔차 ri,j의 양자화된 버전을 나타내고, 여기서 잔차는 원래 블록과 예측된 블록 값 간의 차이이다. 그런 다음 블록 DPCM이 양자화된 잔차 샘플에 적용되어 요소
Figure pct00001
로 수정된 M Х N 어레이
Figure pct00002
이 생성된다. 수직 BDPCM이 시그널링 될 때:
Figure pct00003
수평 예측의 경우 유사한 규칙이 적용되고 잔차 양자화된 샘플은 다음과 같이 획득된다.
Figure pct00004
잔차 양자화된 샘플
Figure pct00005
은 디코더로 전송된다.
디코더 측에서는 위의 계산을 반대로 하여 Q(r_(i,j)), 0≤i≤M-1, 0≤j≤N-1 를 생성한다. 수직 예측의 경우,
Figure pct00006
수평 케이스의 경우,
Figure pct00007
역 양자화된 잔차,
Figure pct00008
는 재구성된 샘플 값을 생성하기 위해 인트라 블록 예측 값에 추가된다.
이 방식의 주요 이점은 역 DPCM이 계수가 파싱 될 때 예측자를 추가하기만 하면 계수 파싱 중에 즉석에서 수행되거나 파싱 후에 수행될 수 있다는 것이다.
QR-BDPCM의 초안 텍스트 변경 사항은 다음과 같다.
7.3.6.5 코딩 유닛 신택스
Figure pct00009
1과 동일한 bdpcm_flag[ x0 ][ y0 ]은 bdpcm_dir_flag가 위치( x0, y0 )에서 루마 코딩 블록을 포함하는 코딩 유닛에 존재한다는 것을 지정한다.
0과 동일한 bdpcm_dir_flag[ x0 ][ y0 ]은 bdpcm 블록에서 사용될 예측 방향이 수평임을 지정하고, 그렇지 않으면 수직이다.
파티션 구조
트리 구조를 사용한 CTU 분할
HEVC에서, CTU는 다양한 로컬 특성에 적응하기 위해 코딩 트리로 표시된 4차 트리 구조를 사용하여 CU로 분할된다. 인터 픽처(시간) 또는 인트라 픽처(공간) 예측을 사용하여 픽처 영역을 코딩할지 여부는 리프 CU 레벨(leaf CU level)에서 결정된다. 각 리프 CU는 PU 분할 유형에 따라 1개, 2개 또는 4개의 PU로 더 분할될 수 있다. 하나의 PU 내에서도 동일한 예측 과정이 적용되고 해당 정보는 PU 유닛으로 디코더(decoder)로 전송된다. PU 분할 유형에 기반한 예측 프로세스를 적용하여 잔차 블록을 얻은 후, 리프 CU는 CU에 대한 코딩 트리와 유사한 다른 4차 트리 구조(quaternary-tree structure)에 따라 변환 유닛(TU)로 분할될 수 있다. HEVC 구조의 주요 특징 중 하나는 CU, PU 및 TU를 포함하는 다중 파티션 개념을 갖는다는 것이다.
VVC에서, 이진 및 삼항 분할 분할 구조를 사용하는 중첩된 다중 유형 트리가 있는 쿼드트리는 다중 파티션 유닛 유형의 개념을 대체하고, 즉, 최대 변환 길이에 비해 크기가 너무 큰 CU에 필요한 경우를 제외하고 CU, PU 및 TU 개념의 분리를 제거하고 CU 파티션 모양에 대해 더 많은 유연성을 지원한다. 코딩 트리 구조에서 CU는 정사각형 또는 직사각형 형태를 가질 수 있다. 코딩 트리 유닛(CTU)는 먼저 4차 트리(쿼드 트리라고도 함) 구조로 분할된다. 그런 다음 4차 트리 리프 노드는 다중 유형 트리 구조로 더 분할될 수 있다. 도 6에 도시된 바와 같이, 다중형 트리 구조에는 수직 이진 분할(SPLIT_BT_VER), 수평 이진 분할(SPLIT_BT_HOR), 수직 삼진 분할(SPLIT_TT_VER) 및 수평 삼진 분할(SPLIT_TT_HOR)의 4가지 분할 유형이 있다. 다중 유형 트리 리프 노드를 CU(코딩 유닛)라고 하며 CU가 최대 변환 길이에 비해 너무 크지 않은 경우 이 분할은 추가 분할 없이 예측 및 변환 처리에 사용된다. 이는 대부분의 경우 CU, PU 및 TU가 중첩된 다중 유형 트리 코딩 블록 구조를 갖는 쿼드 트리에서 동일한 블록 크기를 갖는다는 것을 의미한다. 지원되는 최대 변환 길이가 CU의 컬러 컴포넌트 너비 또는 높이보다 작은 경우 예외가 발생한다. 또한 루마 및 크로마 컴포넌트는 I 타일에 별도의 파티션 구조를 갖는다.
교차 성분 선형 모델 예측
교차 성분 중복성을 줄이기 위해 VTM4에서 교차 성분 선형 모델(CCLM) 예측 모드가 사용되며, 이에 대해 다음과 같이 선형 모델을 사용하여 동일한 CU의 재구성된 루마 샘플에 기초하여 크로마 샘플이 예측된다:
Figure pct00010
여기서 predC(i,j)는 CU의 예측된 크로마 샘플을 나타내고 recL(i,j)동일한 CU의 다운샘플링된 재구성된 루마 샘플을 나타낸다. 선형 모델 파라미터는 최소 샘플 값과 최대 샘플이 다운샘플링된 이웃 루마 샘플 세트 내부의 루마 샘플인 두 샘플의 루마 값과 크로마 값 사이의 관계와 해당 크로마 샘플에서 유도된다. 선형 모델 파라미터 및 는 다음 방정식에 따라 구한다.
Figure pct00011
여기서 Ya 및 Xa는 최대 루마 샘플 값을 갖는 루마 샘플의 루마 값 및 크로마 값을 나타낸다. 그리고 Xb와 Yb는 각각 최소 루마 샘플을 갖는 루마 샘플의 루마 값과 크로마 값을 나타낸다. 도 7은 CCLM 모드에 포함된 왼쪽 및 위쪽 샘플의 위치와 현재 블록의 샘플의 위치의 예를 나타낸다.
크로마 스케일링(LMCS)을 사용한 루마 매핑
VTM4에서는 루프 필터 이전에 새로운 처리 블록으로 LMCS(크로마 스케일링으로 루마 매핑(luma mapping with chroma scaling))라는 코딩 툴이 추가되었다. LMCS에는 두 가지 주요 컴포넌트가 있다: 1) 적응형 조각별 선형 모델에 기초하여 하는 루마 성분의 루프 내 매핑; 2) 크로마 성분에 대해 루마 종속 크로마 잔차 스케일링이 적용. 도 8은 디코더의 관점에서 본 LMCS 아키텍처를 보여준다. 도 8의 음영 블록은 매핑된 도메인에서 처리가 적용되는 위치를 나타내고; 및 이는 역양자화, 역변환, 루마 인트라 예측 및 루마 잔차와 함께 루마 예측의 추가가 포함된다. 도 8의 음영 처리되지 않은 블록은 원래(즉, 매핑되지 않은) 도메인에서 처리가 적용되는 위치를 나타낸다; 여기에는 디블로킹, ALF 및 SAO와 같은 루프 필터, 모션 보상 예측, 크로마 인트라 예측, 크로마 잔차와 함께 크로마 예측의 추가, 레퍼런스 픽처로서 디코딩 된 픽처의 저장이 포함된다. 도 8의 밝은 노란색 음영 블록은 루마 시그널링의 순방향 및 역 매핑 및 루마 종속 크로마 스케일링 프로세스를 포함하는 새로운 LMCS 기능 블록(functional block)이다. VVC의 다른 대부분의 툴과 마찬가지로 LMCS는 SPS 플래그를 사용하여 시퀀스 레벨에서 활성화/비활성화할 수 있다.
3. 실시예에 의해 해결된 문제의 예
JVET-N0280의 계수 코딩이 화면 콘텐츠 코딩에서 코딩 이점을 얻을 수 있지만 계수 코딩 및 TS(변환 스킵) 모드에는 여전히 몇 가지 단점이 있을 수 있다.
(1) TS 모드에 허용되는 최대 너비 또는 높이는 PPS에서 하나의 공통 값으로 제어되므로 유연성이 제한될 수 있다.
(2) 모든 코딩 그룹(CG)은 오버헤드 비용을 증가시킬 수 있는 TS 모드에 대한 cbf 플래그를 시그널링 해야 한다.
(3) 계수 스캐닝 순서는 인트라 예측 모드를 고려하지 않는다.
(4) 부호 플래그 코딩은 하나의 컨텍스트만 사용한다.
(5) 크로마 컴포넌트에 대한 변환 스킵은 지원되지 않는다.
(6) 변환 스킵 플래그는 오버헤드 비용과 인코딩 복잡성을 증가시키는 모든 예측 모드에 적용된다.
4. 실시예
이하의 상세한 발명은 일반적인 개념을 설명하기 위한 예로서 고려되어야 한다. 이러한 발명은 좁은 의미로 해석되어서는 안된다. 또한, 이들 발명은 어떠한 방식으로든 조합될 수 있다.
1. 변환 스킵을 위한 최대 허용 너비 및 높이의 표시는 모두 SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹에서 시그널링 될 수 있다.
a. 하나의 예에서, 변환 스킵을 위한 최대 허용 너비 및 높이는 SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹에서 시그널링 되는 상이한 메시지에 의해 표시될 수 있다.
b. 하나의 예에서, 최대 허용 너비 및/또는 높이는 먼저 SPS/PPS에서 시그널링 되고, 그 다음 픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹에서 업데이트될 수 있다.
2. TS 코딩 된 블록은 여러 계수 그룹(CG)으로 분할될 수 있고, 적어도 하나의 CG의 코딩 된 블록 플래그(Cbf) 플래그의 시그널링은 스킵될 수 있다.
a. 하나의 예에서, 모든 CG의 Cbf 플래그의 시그널링은 예를 들어 TS 코딩 된 블록에 대해 스킵될 수 있다.
b. 하나의 예에서, CG의 스킵된 cbf 플래그는 TS 모드에 대해 1로 유추될 수 있다.
c. 하나의 예에서, CG의 일부 또는 모든 Cbf 플래그를 스킵 할지 여부는 코딩 된 모드에 따라 달라질 수 있다.
i. 하나의 예에서, TS 코딩 된 인트라 블록의 경우, CG의 모든 Cbf 플래그의 시그널링은 스킵된다.
d. 하나의 예에서, CG의 스킵된 Cbf 플래그는 다음에 기초하여 유추될 수 있다.
i. SPS/VPS/PPS/picture header/slice header/tile group header/LCU row/group of LCUs/LCU/CU에서 시그널링 되는 메시지
ii. CG의 위치
iii. 현재 블록 및/또는 이웃 블록의 블록 범위
iv. 현재 블록 및/또는 이웃 블록의 블록 형태
v. 현재 블록 및/또는 이웃 블록의 가장 가능성 있는 모드
vi. 현재 블록의 주변 블록 예측 모드(Intra/Inter)
vii. 현재 블록의 주변 블록의 인트라 예측 모드
viii. 현재 블록의 주변 블록의 모션 벡터
ix. 현재 블록의 이웃 블록의 QR-BDPCM 모드 표시
x. 현재 블록 및/또는 이웃 블록의 현재 양자화 파라미터
xi. 컬러 형식 표시(예를 들어, 4:2:0, 4:4:4)
xii. 싱글/듀얼 코딩 트리 구조
xiii. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
3. TS 코딩 된 블록의 계수 스캐닝 순서는 SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU/LCU/CU의 그룹에서 시그널링 된 메시지에 의존할 수 있다.
a. 대안적으로, CG 및/또는 계수 스캐닝 순서는 TS가 사용될 때 인트라 예측 모드에 의존할 수 있다.
i. 하나의 예에서, 인트라 예측 모드가 수평으로 지배되는 경우 스캐닝 순서는 수직일 수 있다.
1. 하나의 예에서, 인트라 예측 모드 인덱스가 2 내지 34의 범위이면 스캐닝 순서는 수직일 수 있다.
2. 하나의 예에서, 인트라 예측 모드 인덱스가 2 내지 33의 범위인 경우 스캐닝 순서는 수직일 수 있다.
ii. 하나의 예에서, 인트라 예측 모드가 수직으로 지배되는 경우 스캐닝 순서는 수직일 수 있다
1. 하나의 예에서, 인트라 예측 모드 인덱스가 34-66 범위이면 스캐닝 순서는 수직일 수 있다.
2. 하나의 예에서, 인트라 예측 모드 인덱스가 35-66 범위이면 스캐닝 순서는 수직일 수 있다.
iii. 하나의 예에서, 인트라 예측 모드가 수직으로 지배되는 경우 스캐닝 순서는 수평일 수 있다.
1. 하나의 예에서, 인트라 예측 모드 인덱스가 34 내지 66의 범위인 경우 스캐닝 순서는 수직일 수 있다.
2. 하나의 예에서, 인트라 예측 모드 인덱스가 35 내지 66의 범위인 경우 스캐닝 순서는 수직일 수 있다.
iv. 하나의 예에서, 인트라 예측 모드가 수평으로 지배되는 경우 스캐닝 순서는 수평일 수 있다.
1. 하나의 예에서, 인트라 예측 모드 인덱스가 2 내지 34의 범위이면 스캐닝 순서는 수직일 수 있다.
2. 하나의 예에서, 인트라 예측 모드 인덱스가 2 내지 33의 범위인 경우 스캐닝 순서는 수직일 수 있다.
4. 부호 플래그 코딩의 컨텍스트는 TS 모드에 대한 계수 블록의 이웃 정보에 의존할 수 있다고 제안된다.
a. 하나의 예에서, 현재 부호 플래그를 코딩 하는 컨텍스트는 TS 모드에 대한 이웃하는 부호 플래그의 값에 의존할 수 있다.
i. 하나의 예에서, 현재 부호 플래그를 코딩 하는 컨텍스트는 왼쪽 및/또는 위쪽 이웃의 부호 플래그 값에 의존할 수 있다.
1. 하나의 예에서, 현재 부호 플래그의 컨텍스트는 C=(L + A)로 유도될 수 있으며, 여기서 C는 컨텍스트 ID이고, L은 왼쪽 이웃의 부호 플래그이며, A는 위쪽 이웃의 부호 플래그이다.
2. 하나의 예에서, 현재 부호 플래그의 컨텍스트는 C=(L + A*2)로 유도될 수 있으며, 여기서 C는 컨텍스트 ID이고, L은 왼쪽 이웃의 부호 플래그이며, A는 위쪽 이웃의 부호 플래그다.
3. 하나의 예에서, 현재 부호 플래그의 컨텍스트는 C=(L*2 + A)로 유도될 수 있으며, 여기서 C는 컨텍스트 ID이고, L은 왼쪽 이웃의 부호 플래그이며, A는 위쪽 이웃의 부호 플래그다.
ii. 하나의 예에서, 현재 부호 플래그를 코딩 하는 컨텍스트는 왼쪽 위, 위쪽 이웃, 위쪽 왼쪽 이웃의 부호 플래그 값에 따라 달라질 수 있다.
iii. 하나의 예에서, 현재 부호 플래그를 코딩 하는 컨텍스트는 왼쪽, 위쪽 이웃, 위쪽 왼쪽 이웃, 위쪽 오른쪽 이웃의 부호 플래그 값에 따라 달라질 수 있다.
b. 하나의 예에서, 현재 부호 플래그를 코딩 하는 컨텍스트는 계수의 위치에 의존할 수 있다.
i. 하나의 예에서, 부호 플래그의 컨텍스트는 다른 위치에서 다를 수 있다.
ii. 하나의 예에서, 부호 플래그의 컨텍스트는 x+y에 의존할 수 있으며, 여기서 x 및 y는 위치의 수평 및 수직 위치이다.
iii. 하나의 예에서, 부호 플래그의 컨텍스트는 min(x,y)에 의존할 수 있으며, 여기서 x 및 y는 위치의 수평 및 수직 위치이다.
iv. 하나의 예에서, 부호 플래그의 컨텍스트는 max(x,y)에 의존할 수 있으며, 여기서 x 및 y는 위치의 수평 및 수직 위치이다.
5. 크로마 변환 스킵 모드가 지원될 수 있다고 제안된다.
a. 하나의 예에서, 크로마 변환 스킵 모드의 사용은 SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU들의 그룹/LCU/CU/비디오 데이터 유닛에서 시그널링 된 메시지에 기초할 수 있다. .
b. 대안적으로, 크로마 변환 스킵 모드의 사용은 동일한 컬러 성분 또는 다른 컬러 성분에서 하나 이상의 대표 이전에 코딩 된 블록의 디코딩 된 정보에 기초할 수 있다.
i. 하나의 예에서, 대표 블록의 TS 플래그의 표시가 거짓인 경우 크로마 TS 플래그의 표시는 거짓으로 유추될 수 있다. 대안적으로, 대표 블록의 TS 플래그의 지시가 참이면 크로마 TS 플래그의 지시가 참으로 유추될 수 있다.
ii. 하나의 예에서, 대표 블록은 루마 블록 또는 크로마 블록일 수 있다.
iii. 하나의 예에서, 대표 블록은 배치된 루마 블록 내의 어느 블록일 수 있다.
iv. 하나의 예에서, 대표 블록은 현재 크로마 블록의 이웃하는 크로마 블록들 중 하나일 수 있다.
v. 하나의 예에서, 대표 블록은 현재 크로마 블록 내 중심 크로마 샘플의 대응하는 루마 샘플을 커버하는 블록일 수 있다.
vi. 하나의 예에서, 대표 블록은 현재 크로마 블록 내 오른쪽 하단 크로마 샘플의 대응하는 루마 샘플을 커버하는 블록일 수 있다.
6. 변환 스킵 모드를 적용할지 여부 및/또는 방법은 SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹/LCU/CU/비디오 데이터 유닛에서 시그널링 되는 메시지에 따라 달라질 수 있다.
a. 하나의 예에서, 변환 스킵 모드를 적용할 시기 및/또는 방법의 표시는 다음에 의존할 수 있다.
i. 현재 블록 및/또는 이웃 블록의 블록 범위
ii. 현재 블록 및/또는 이웃 블록의 블록 형태
iii. 현재 블록 및/또는 이웃 블록의 가장 가능성 있는 모드
iv. 현재 블록의 주변 블록 예측 모드(Intra/Inter)
v. 현재 블록의 주변 블록의 인트라 예측 모드
vi. 현재 블록의 주변 블록의 모션 벡터
vii. 현재 블록의 이웃 블록의 QR-BDPCM 모드 표시
viii. 현재 블록 및/또는 이웃 블록의 현재 양자화 파라미터
ix. 컬러 형식 표시(예를 들어, 4:2:0, 4:4:4)
x. 싱글/듀얼 코딩 트리 구조
xi. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
xii. 임시 계층 ID
b. 하나의 예에서, 예측 모드가 IBC 모드이고 블록 너비 및/또는 높이가 임계값보다 작거나/크거나/같을 때 변환 스킵 모드가 적용될 수 있다.
i. 하나의 예에서 임계값은 4,8,16 또는 32일 수 있다.
ii. 하나의 예에서, 임계값은 비트 스트림에서 시그널링 될 수 있다.
iii. 하나의 예에서, 임계값은 다음에 기초하여 할 수 있다.
1. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹/LCU/CU에서 시그널링 되는 메시지
2. 현재 블록 및/또는 이웃 블록의 블록 범위
3. 현재 블록 및/또는 이웃 블록의 블록 형태
4. 현재 블록 및/또는 이웃 블록의 가장 가능성 있는 모드
5. 현재 블록의 주변 블록 예측 모드(Intra/Inter)
6. 현재 블록의 주변 블록의 인트라 예측 모드
7. 현재 블록의 주변 블록의 모션 벡터
8. 현재 블록의 이웃 블록의 QR-BDPCM 모드 표시
9. 현재 블록 및/또는 이웃 블록의 현재 양자화 파라미터
10. 컬러 형식 표시(예를 들어, 4:2:0, 4:4:4)
11. 싱글/듀얼 코딩 트리 구조
12. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
13. 임시 계층 ID
7. TS 모드의 표시를 시그널링 할지 여부는 디코딩/유도된 인트라 예측 모드에 의존할 수 있다.
a. 대안적으로, 또한, 그것은 QR-BDPCM 코딩 된 블록에서 사용되는 허용된 인트라 예측 모드/방향 및 QR-BDPCM의 사용에 의존할 수 있다.
b. 디코딩 되거나 유도된 인트라 예측 모드의 경우, QR-BDPCM 코딩 된 블록에서 사용되는 허용된 인트라 예측 모드/방향 세트의 일부인 경우, TS 플래그의 시그널링은 스킵될 수 있다.
i. 하나의 예에서, QR-BDPCM이 하나의 슬라이스/픽처/타일/브릭을 코딩 하는 데 허용되고 수직 및 수평 모드는 QR-BDPCM 프로세스에서 허용되는 두 가지 모드이고 디코딩/유도된 인트라 모드가 수직 또는 수평 모드인 경우 TS 모드의 표시는 시그널링 되지 않는다.
c. 하나의 예에서, QR-BDPCM 모드(예를 들어, bdpcm_flag)의 표시가 1일 때 변환 스킵 모드가 활성화되는 것으로 유추될 수 있다.
d. 위의 방법은 다음에 기초하여 적용될 수 있다.
i. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹/LCU/CU에서 시그널링 되는 메시지
ii. 현재 블록 및/또는 이웃 블록의 블록 범위
iii. 현재 블록 및/또는 이웃 블록의 블록 형태
iv. 현재 블록 및/또는 이웃 블록의 가장 가능성 있는 모드
v. 현재 블록의 주변 블록 예측 모드(Intra/Inter)
vi. 현재 블록의 주변 블록의 인트라 예측 모드
vii. 현재 블록의 주변 블록의 모션 벡터
viii. 현재 블록의 이웃 블록의 QR-BDPCM 모드 표시
ix. 현재 블록 및/또는 이웃 블록의 현재 양자화 파라미터
x. 컬러 형식 표시(예를 들어, 4:2:0, 4:4:4)
xi. 싱글/듀얼 코딩 트리 구조
xii. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
Figure pct00012
xiii. 임시 계층 ID
8. QR-BDPCM의 적용 여부 및/또는 적용 방법은 TS 모드의 표시에 따라 달라질 수 있다.
a. 하나의 예에서, QR-BDPCM을 적용할지 여부의 표시는 CU로 시그널링 되는 대신에 변환 유닛(TU) 레벨에서 시그널링 될 수 있다.
i. 하나의 예에서, QR-BDPCM의 적용 여부의 지시는 TS 모드의 지시가 TU에 적용된 후에 시그널링 될 수 있다.
b. 하나의 예에서 QR-BDPCM은 TS 모드의 특수한 경우로 취급된다.
i. 하나의 블록이 TS 모드로 코딩될 때, QR-BDPCM 또는 기존 TS 모드가 적용되는지 여부를 나타내기 위해 다른 플래그가 더 시그널링 될 수 있다. QR-BDPCM으로 코딩 된 경우, QR-BDPCM에서 사용되는 예측 방향이 더 시그널링 될 수 있다.
ii. 또는, 하나의 블록이 TS 모드로 코딩될 때, 어떤 종류의 QR-BDPCM(예를 들어, 수평/수직 예측 방향 기반 QR-BDPCM) 또는 기존의 TS 모드가 적용되는지를 나타내기 위해 다른 플래그가 더 시그널링 될 수 있다.
c. 하나의 예에서, QR-BDPCM에 대한 표시는 TS 모드의 표시에 기초하여 유추될 수 있다.
i. 하나의 예에서, 루마 및/또는 크로마 블록에 QR-BDPCM을 적용할지 여부의 표시는 동일한 블록에 변환 스킵 플래그를 적용할지 여부의 표시가 참인 경우 참으로 유추될 수 있다. 대안적으로, 루마 및/또는 크로마 블록에 변환 스킵 플래그를 적용할지 여부에 대한 표시가 참인 경우, 동일한 블록에 QR-BDPCM을 적용할지 여부에 대한 표시가 참으로 유추될 수 있다.
ii. 하나의 예에서, 루마 및/또는 크로마 블록에 QR-BDPCM을 적용할지 여부의 표시는 동일한 블록에 변환 스킵 플래그를 적용할지 여부에 대한 표시가 거짓인 경우 거짓으로 유추될 수 있다. 대안적으로, 루마 및/또는 크로마 블록에 변환 스킵 플래그를 적용할지 여부에 대한 표시가 거짓이면, 동일한 블록에 QR-BDPCM을 적용할지 여부에 대한 표시가 거짓으로 유추될 수 있다.
9. 싱글/듀얼 트리를 적용할지 여부 및/또는 방법은 SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹/LCU/CU/비디오 데이터 유닛에서 시그널링 되는 메시지에 따라 달라질 수 있다. .
a. 하나의 예에서, 싱글/듀얼 트리를 적용할지 여부의 표시는 현재 슬라이스/타일/LCU/LCU 행/LCU의 그룹/비디오 데이터 유닛이 스크린 콘텐츠로서 결정되는지 여부에 의존할 수 있다.
i. 또한, 하나의 예에서 슬라이스/타일/LCU/LCU 행/LCU의 그룹/비디오 데이터 유닛이 스크린 콘텐츠로 결정되는지 여부는 다음에 따라 달라질 수 있다.
1. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹/LCU/CU/비디오 데이터 유닛에서 시그널링 되는 메시지/플래그.
2. 현재 CTU 및/또는 이웃 CTU의 블록 범위
3. 현재 CTU 및/또는 이웃 CTU의 블록 형태
4. 현재 CTU 및/또는 이웃 CTU의 현재 양자화 파라미터
5. 컬러 형식 표시(예를 들어, 4:2:0, 4:4:4)
6. 이전 슬라이스/타일/LCU/LCU 행/LCU의 그룹/비디오 데이터 유닛의 싱글/듀얼 코딩 트리 구조 유형
7. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
8. 임시 계층 ID
b. 하나의 예에서, 싱글/듀얼 트리를 적용할지 여부의 표시가 유추될 수 있으며, 이는 다음에 따라 달라질 수 있다.
i. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹/LCU/CU/비디오 데이터 유닛에서 시그널링 되는 메시지.
ii. 이전 코딩 된 픽처/타일/슬라이스/재구성 영역에서 IBC/Inter 모드의 해시 적중률
iii. 현재 CTU 및/또는 이웃 CTU의 블록 범위
iv. 현재 CTU 및/또는 이웃 CTU의 블록 형태
v. 현재 CTU 및/또는 이웃 CTU의 현재 양자화 파라미터
vi. 컬러 형식 표시(예를 들어, 4:2:0, 4:4:4)
vii. 이전 슬라이스/타일/LCU/LCU 행/LCU의 그룹/비디오 데이터 유닛의 싱글/듀얼 코딩 트리 구조 유형
viii. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
ix. 임시 계층 ID
c. 하나의 예에서, CCLM 및/또는 LMCS를 적용할지 여부의 표시는 싱글/듀얼 코딩 트리 구조 유형에 따라 달라질 수 있다.
i. 하나의 예에서, 표시 CCLM 및/또는 LMCS는 싱글/듀얼 트리가 사용될 때 거짓으로 유추될 수 있다.
d. 하나의 예에서, 싱글/듀얼 트리(즉, 싱글 트리 또는 듀얼 트리의 CTU 레벨 적응)를 적용할지 여부의 표시는 듀얼 트리를 활성화하는 표시(예를 들어, qtbtt_dual_tree_intra_flag)가 참인지 여부에 따라 달라질 수 있다.
i. 또는, 또한 시퀀스/슬라이스/타일/브릭에 대한 듀얼 트리가 활성화되지 않은 경우(예를 들어, qtbtt_dual_tree_intra_flag가 false인 경우) 서브 레벨(예를 들어, CTU)에서 싱글/듀얼 트리를 적용할지 여부에 대한 표시가 거짓으로 유추될 수 있다.
1. 대안적으로, 듀얼 트리가 활성화되면(예를 들어, qtbtt_dual_tree_intra_flag가 참인 경우), 시퀀스/슬라이스/타일/브릭보다 작은 비디오 유닛에 대해 싱글/듀얼 트리를 적용할지 여부에 대한 지시가 시그널링 될 수 있다.
e. 하나의 예에서, 싱글/듀얼 트리(즉, 싱글 트리 또는 듀얼 트리의 CTU 레벨 적응)를 적용할지 여부의 표시는 CTU 레벨(예를 들어, sps_asdt_flag 및/또는 slice_asdt_flag)보다 높은 레벨의 플래그가 참인지 여부에 따라 달라질 수 있다. .
i. 또는, 또한, CTU 레벨보다 높은 레벨의 플래그(예를 들어, sps_asdt_flag 및/또는 slice_asdt_flag)가 false인 경우 싱글/듀얼 트리(즉, 싱글 트리 또는 듀얼 트리의 CTU 레벨 적응)를 적용할지 여부에 대한 표시는 거짓으로 유추될 수 있다.
f. 위의 방법들은 싱글 트리 분할의 경우나 싱글/듀얼 코딩 트리 구조 유형에도 적용될 수 있다.
10. IBC 활성화 여부는 코딩 트리 구조 유형에 따라 다를 수 있다.
a. 하나의 예에서, 주어진 코딩 트리 구조 유형(예를 들어, 듀얼 트리)에 대해, IBC 모드 및/또는 IBC 모드에서 사용되는 블록 벡터의 표시의 시그널링은 스킵 되고 유추될 수 있다.
b. 하나의 예에서, IBC 모드의 표시는 듀얼 코딩 트리 구조 유형이 적용될 때 거짓으로 유추될 수 있다.
c. 하나의 예에서, 루마 블록의 IBC 모드의 표시는 듀얼 코딩 트리 구조 유형이 적용될 때 거짓으로 유추될 수 있다.
d. 하나의 예에서, 크로마 블록의 IBC 모드의 표시는 듀얼 코딩 트리 구조 유형이 적용될 때 거짓으로 유추될 수 있다.
e. 하나의 예에서, IBC 모드의 표시는 다음에 기초하여 유추될 수 있다.
i. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹/LCU/CU/비디오 데이터 유닛에서 시그널링 되는 메시지.
ii. 이전 코딩 된 픽처/타일/슬라이스/재구성 영역에서 IBC/Inter 모드의 해시 적중률
iii. 현재 CTU 및/또는 이웃 CTU의 블록 범위
iv. 현재 CTU 및/또는 이웃 CTU의 블록 형태
v. 현재 CTU 및/또는 이웃 CTU의 현재 양자화 파라미터
vi. 컬러 형식 표시(예를 들어, 4:2:0, 4:4:4)
vii. 이전 슬라이스/타일/LCU/LCU 행/LCU의 그룹/비디오 데이터 유닛의 코딩 트리 구조 유형
viii. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
Figure pct00013
ix. 임시 계층 ID
11. CCLM 활성화 여부는 코딩 트리 구조 유형에 따라 다를 수 있다.
a. 하나의 예에서, 주어진 코딩 트리 구조 유형(예를 들어, 듀얼 트리)에 대해, CCLM 모드의 표시의 시그널링, 및/또는 CCLM 모드와 관련된 다른 신택스가 스킵되고 유추될 수 있다.
b. 하나의 예에서, CCLM 모드의 표시는 듀얼 코딩 트리 구조 유형이 적용될 때 거짓으로 유추될 수 있다.
c. 하나의 예에서, CCLM 모드의 표시는 듀얼 코딩 트리 구조 유형이 적용될 때 다음에 기초하여 유추될 수 있다.
i. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹/LCU/CU/비디오 데이터 유닛에서 시그널링 되는 메시지.
ii. 이전 코딩 된 픽처/타일/슬라이스/재구성 영역에서 IBC/Inter 모드의 해시 적중률
iii. 현재 CTU 및/또는 이웃 CTU의 블록 범위
iv. 현재 CTU 및/또는 이웃 CTU의 블록 형태
v. 현재 CTU 및/또는 이웃 CTU의 현재 양자화 파라미터
vi. 컬러 형식 표시(예를 들어, 4:2:0, 4:4:4)
vii. 이전 슬라이스/타일/LCU/LCU 행/LCU의 그룹/비디오 데이터 유닛의 코딩 트리 구조 유형
viii. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
Figure pct00014
ix. 임시 계층 ID
12. 크로마 성분에 대해 LMCS를 활성화할지 여부는 코딩 트리 구조 유형에 따라 달라질 수 있다.
a. 하나의 예에서, 주어진 코딩 트리 구조 유형(예를 들어, 듀얼 트리)에 대해, 크로마 성분에 대한 LMCS의 표시의 시그널링 및/또는 LMCS 모드와 관련된 다른 신택스가 스킵되고 유추될 수 있다.
b. 하나의 예에서, 크로마 성분에 대한 LMCS의 표시는 듀얼 코딩 트리 구조 유형이 적용될 때 거짓으로 유추될 수 있다.
c. 하나의 예에서, 크로마 성분에 대한 LMCS의 표시는 듀얼 코딩 트리 구조 유형이 적용될 때 다음에 기초하여 유추될 수 있다.
i. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹/LCU/CU/비디오 데이터 유닛에서 시그널링 되는 메시지.
ii. 이전 코딩 된 픽처/타일/슬라이스/재구성 영역에서 IBC/Inter 모드의 해시 적중률
iii. 현재 CTU 및/또는 이웃 CTU의 블록 범위
iv. 현재 CTU 및/또는 이웃 CTU의 블록 형태
v. 현재 CTU 및/또는 이웃 CTU의 현재 양자화 파라미터
vi. 컬러 형식 표시(예를 들어, 4:2:0, 4:4:4)
vii. 이전 슬라이스/타일/LCU/LCU 행/LCU의 그룹/비디오 데이터 유닛의 코딩 트리 구조 유형
viii. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
Figure pct00015
ix. 임시 계층 ID
13. 코딩 트리 구조는 IBC 사용 여부에 따라 달라질 수 있다.
a. 일례로, 시퀀스/픽처/타일/브릭/CTU/VPDU/32x32 블록/64x32 블록/32x64 블록 레벨에서 듀얼 트리 구조와 IBC 방식이 동시에 활성화되지 않을 수 있다.
b. 또는, 또한, 하나의 예에서, IBC 방식이 활성화되면, 듀얼 트리 구조는 시퀀스/픽처/타일/브릭/CTU/VPDU/32x32 블록/64x32 블록/32x64 블록 레벨에서 비활성화될 수 있다.
c. 하나의 예에서, IBC가 영역에서 사용되는 경우, 크로마 코딩 트리 구조는 루마 코딩 트리 구조에 정렬될 수 있다.
i. 일례로, 영역은 시퀀스/픽처/타일/브릭/CTU/VPDU/32x32 블록/64x32 블록/32x64 블록일 수 있다.
ii. 하나의 예에서, 병치된 루마 블록이 서브 블록으로 분할될 때, 크로마 블록은 분할이 허용된다면 서브 블록으로 분할될 수 있다.
iii. 하나의 예에서, 크로마 블록이 분할되는지 여부 및 방법은 그 병치된 루마 블록의 코딩 구조로부터 유추될 수 있다.
iv. 하나의 예에서, 크로마 코딩 트리 구조가 루마 코딩 트리 구조로부터 유추될 때, 크로마 코딩 트리 구조를 코딩 하기 위한 시그널링은 스킵될 수도 있다.
v. 하나의 예에서, 크로마 코딩 구조가 루마 코딩 구조로부터 유추될 수 있는지 여부를 표시하기 위해 플래그가 사용될 수 있다. 플래그의 시그널링은 다음에 따라 달라질 수 있다.
1. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹/LCU/CU/비디오 데이터 유닛에서 시그널링 되는 메시지.
2. 이전 코딩 된 픽처/타일/슬라이스/재구성 영역에서 IBC/Inter 모드의 해시 적중률
3. 현재 CTU 및/또는 이웃 CTU의 블록 범위
4. 현재 CTU 및/또는 이웃 CTU의 블록 형태
5. 현재 CTU 및/또는 이웃 CTU의 현재 양자화 파라미터
6. 컬러 형식 표시(예를 들어, 4:2:0, 4:4:4)
7. 이전 슬라이스/타일/LCU/LCU 행/LCU의 그룹/비디오 데이터 유닛의 코딩 트리 구조 유형
8. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
Figure pct00016
9. 임시 계층 ID
14. 팔레트 코딩 모드를 활성화할지 여부는 코딩 트리 구조 유형에 따라 달라질 수 있다.
a. 하나의 예에서, 주어진 코딩 트리 구조 유형(예를 들어, 듀얼 트리)에 대해, 팔레트 코딩 모드의 표시의 시그널링은 스킵되고 유추될 수 있다.
b. 하나의 예에서, 팔레트 코딩 모드의 표시는 듀얼 코딩 트리 구조 유형이 적용될 때 거짓으로 유추될 수 있다.
c. 하나의 예에서, 루마 블록의 팔레트 코딩 모드의 표시는 듀얼 코딩 트리 구조 유형이 적용될 때 거짓으로 유추될 수 있다.
d. 하나의 예에서, 크로마 블록의 팔레트 코딩 모드의 표시는 듀얼 코딩 트리 구조 유형이 적용될 때 거짓으로 유추될 수 있다.
e. 하나의 예에서, 유추된 팔레트 코딩 모드의 표시는
i. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹/LCU/CU/비디오 데이터 유닛에서 시그널링 되는 메시지.
ii. 이전 코딩 된 픽처/타일/슬라이스/재구성 영역에서 IBC/Inter 모드의 해시 적중률
iii. 현재 CTU 및/또는 이웃 CTU의 블록 범위
iv. 현재 CTU 및/또는 이웃 CTU의 블록 형태
v. 현재 CTU 및/또는 이웃 CTU의 현재 양자화 파라미터
vi. 컬러 형식 표시(예를 들어, 4:2:0, 4:4:4)
vii. 이전 슬라이스/타일/LCU/LCU 행/LCU의 그룹/비디오 데이터 유닛의 코딩 트리 구조 유형
viii. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
Figure pct00017
ix. 임시 계층 ID
15. 코딩 트리 구조는 팔레트 코딩 모드의 사용 여부에 따라 달라질 수 있다.
a. 하나의 예에서, 팔레트 코딩 모드가 영역에서 사용될 때, 크로마 코딩 트리 구조는 루마 코딩 트리 구조에 정렬될 수 있다
i. 일례로, 영역은 시퀀스/픽처/타일/브릭/CTU/VPDU/32x32 블록/64x32 블록일 수 있다.
ii. 하나의 예에서, 병치된 루마 블록이 서브 블록으로 분할될 때, 크로마 블록은 분할이 허용된다면 서브 블록으로 분할될 수 있다.
iii. 하나의 예에서, 크로마 블록이 분할되는지 여부 및 방법은 그 병치된 루마 블록의 코딩 구조로부터 유추될 수 있다.
iv. 하나의 예에서, 크로마 코딩 트리 구조가 루마 코딩 트리 구조로부터 유추될 때, 크로마 코딩 트리 구조를 코딩 하기 위한 시그널링은 스킵될 수도 있다.
v. 하나의 예에서, 크로마 코딩 구조가 루마 코딩 구조로부터 유추될 수 있는지 여부를 표시하기 위해 플래그가 사용될 수 있다. 플래그의 시그널링은 다음에 따라 달라질 수 있다.
1. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹/LCU/CU/비디오 데이터 유닛에서 시그널링 되는 메시지.
2. 이전 코딩 된 픽처/타일/슬라이스/재구성 영역에서 IBC/Inter 모드의 해시 적중률
3. 현재 CTU 및/또는 이웃 CTU의 블록 범위
4. 현재 CTU 및/또는 이웃 CTU의 블록 형태
5. 현재 CTU 및/또는 이웃 CTU의 현재 양자화 파라미터
6. 컬러 형식 표시(예를 들어, 4:2:0, 4:4:4)
7. 이전 슬라이스/타일/LCU/LCU 행/LCU의 그룹/비디오 데이터 유닛의 코딩 트리 구조 유형
8. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
Figure pct00018
9. 임시 계층 ID
16. 크로마 IBC 코딩 된 블록 내의 서브-블록/샘플의 모션/블록 벡터는 병치된 루마 블록 내의 제1 이용가능한 IBC-코딩 된 서브-영역으로부터 유도될 수도 있다.
a. 하나의 예에서, 함께 배치된 루마 블록 내의 서브-영역의 스캐닝 순서, 예를 들어 래스터 스캐닝 순서가 정의될 수 있다.
b. 하나의 예에서, 서브영역은 최소 코딩 유닛/최소 변환 유닛으로 정의될 수 있다.
c. 하나의 예에서, 크로마 IBC 모드에서 전체 샘플의 모션/블록 벡터는 배치된 루마 블록에서 IBC 또는 인터 모드에서 코딩 된 최위쪽 왼쪽 샘플의 모션 벡터에 기초하여 유도될 수 있다.
17. 크로마 IBC 모드에서는 모션/블록 벡터가 시그널링 될 수 있다.
a. 하나의 예에서, 모션 벡터와 모션 벡터 예측자 간의 차이가 시그널링 될 수 있다.
i. 하나의 예에서, 모션 벡터 예측자는 병치된 루마 블록의 모션 벡터, 병치된 루마 블록의 이웃하는 루마 블록, 현재 크로마 블록의 이웃하는 크로마 블록에 기초하여 유도될 수도 있다.
1. 하나의 예에서, 모션/블록 벡터 예측자는 병치된 루마 블록에서 왼쪽 상단 샘플의 모션 벡터에 기초하여 유도될 수도 있다.
2. 하나의 예에서, 모션/블록 벡터 예측자는 함께 배치된 루마 블록의 중심 위치를 갖는 샘플의 모션 벡터에 기초하여 유도될 수도 있다.
3. 하나의 예에서, 모션/블록 벡터 예측자는 배치된 루마 블록에서 IBC 또는 인터 모드로 코딩 된 최위쪽 왼쪽 샘플의 모션 벡터에 기초하여 유도될 수도 있다.
ii. 하나의 예에서, 루마 성분의 하나의 서브-영역과 연관된 모션 벡터 예측자는 예측자로서 사용되기 전에 스케일링될 수도 있다.
iii. 하나의 예에서, 블록 벡터는 이웃하는(인접하거나 인접하지 않은) 크로마 블록의 모션 벡터/블록 벡터로부터 유도될 수 있다.
b. 하나의 예에서, 블록 벡터 후보 리스트가 구성될 수 있고 리스트에 대한 인덱스가 시그널링 될 수 있다.
i. 하나의 예에서, 후보 리스트는 병치된 루마 블록, 병치된 루마 블록의 이웃하는 루마 블록, 이웃하는 크로마 블록으로부터의 모션 벡터/블록 벡터를 포함할 수 있다.
c. 하나의 예에서 AMVR 플래그의 표시는 유추될 수 있다.
i. 하나의 예에서, AMVR 플래그의 표시는 크로마 IBC 모드에서 코딩 된 블록에서 거짓(0)으로 유추될 수 있다.
ii. 하나의 예에서, 모션 벡터 차이의 표시는 크로마 IBC 모드로 코딩 된 블록에서 정수 정밀도로 유추될 수 있다.
d. 하나의 예에서, 크로마 IBC 모드에서 별도의 HMVP 테이블이 사용될 수 있다.
i. 하나의 예에서, 크로마 HMVP 테이블 및 루마 HMVP 테이블의 크기는 상이할 수 있다.
e. 하나의 예에서, 크로마 IBC 모드에서 블록/모션 벡터를 시그널링 할지 여부는
i. 배치된 루마 블록 내의 모든 서브 영역이 IBC 모드로 코딩 되는지 여부.
1. 그렇다면 크로마 블록의 블록 벡터에 시그널링을 보낼 필요가 없다. 그렇지 않으면, 크로마 블록의 블록 벡터가 시그널링 될 수 있다.
ii. 배치된 루마 블록 내의 모든 서브 영역이 IBC 모드로 코딩 되고 모든 관련 블록 벡터가 유효한지 여부.
1. 그렇다면 크로마 블록의 블록 벡터에 시그널링을 보낼 필요가 없다. 그렇지 않으면, 크로마 블록의 블록 벡터가 시그널링 될 수 있다.
iii. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹/LCU/CU/비디오 데이터 유닛에서 시그널링 되는 메시지.
iv. 이전 코딩 된 픽처/타일/슬라이스/재구성 영역에서 IBC/Inter 모드의 해시 적중률
v. 현재 CTU 및/또는 이웃 CTU의 블록 범위
vi. 현재 CTU 및/또는 이웃 CTU의 블록 형태
vii. 현재 CTU 및/또는 이웃 CTU의 현재 양자화 파라미터
viii. 컬러 형식 표시(예를 들어, 4:2:0, 4:4:4)
ix. 이전 슬라이스/타일/LCU/LCU 행/LCU의 그룹/비디오 데이터 유닛의 코딩 트리 구조 유형
x. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
Figure pct00019
xi. 임시 계층 ID
18. 싱글 트리 및 분리/듀얼 트리 선택/시그널링은 CTU/CTB보다 낮은 레벨에 있을 수 있다.
a. 하나의 예에서, 싱글 트리 및 분리/듀얼 트리 선택/시그널링은 VPDU 레벨에 있을 수 있다.
b. 하나의 예에서, 싱글 트리 및 개별/듀얼 트리 선택/시그널링은 명시적 분할 트리 시그널링이 시작되는 레벨에 있을 수 있다.
위에서 설명된 예들은 아래에서 설명되는 방법들, 예를 들어, 비디오 디코더 또는 비디오 인코더에서 구현될 수도 있는 방법들(900, 910, 920, 930 및 940)의 맥락에서 통합될 수도 있다.
비디오 처리를 위한 예시적인 방법은 현재 비디오 블록과 현재 비디오 블록을 포함하는 비디오의 비트 스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환은 비트 스트림에 포함된 표시자에 기초하여 변환을 위해 변환 스킵 모드를 선택적으로 사용하고, 변환 스킵 모드를 사용하여, 현재 비디오 블록의 예측 오차의 잔차는 변환을 적용하지 않고 비트 스트림 표현에서 표현된다.
일부 실시예에서, 표시자는 변환 스킵 모드에 대한 최대 허용 너비 및 최대 허용 높이이다.
일부 실시예에서, 최대 허용 너비 및 높이는 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU) 행 또는 LCU 그룹ㅇㅔ서 시그널링 된다.
일부 실시예에서, 최대 허용 너비 및 높이는 다른 메시지로 시그널링 된다.
일부 실시예에서, 최대 허용 너비 및 높이는 시퀀스 파라미터 세트(SPS) 또는 픽처 파라미터 세트(PPS)에서 시그널링 되고, 최대 허용 너비 및 높이의 업데이트된 값은 픽처 헤더, 슬라이스, 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU) 행 또는 LCU의 그룹에서 시그널링 된다.
도 9a는 비디오 처리를 위한 다른 예시적인 방법의 흐름도를 도시한다. 방법(900)은, 단계 902에서, 현재 비디오 블록이 변환 스킵 모드를 사용하여 코딩 된다고 결정하는 단계를 포함한다.
방법(900)은, 단계 904에서, 결정하는 단계에 기초하여, 현재 비디오 블록과 현재 비디오 블록을 포함하는 비디오의 비트 스트림 표현 사이의 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 현재 비디오 블록은 복수의 계수 그룹으로 분할되고, 비트 스트림 표현은 복수의 계수 그룹 중 적어도 하나에 대한 코딩 된 블록 플래그의 시그널링을 생략한다. 하나의 예에서, 비트 스트림 표현은 복수의 계수 그룹들 각각에 대한 코딩 된 블록 플래그의 시그널링을 생략한다.
일부 실시예에서, 비트 스트림 표현의 시그널링에서 생략된 코딩 된 블록 플래그는 다음 중 하나 이상에 기초하여 유추된다: (1) 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU)에서 시그널링 되는 메시지 ), LCU 행, LCU의 그룹 또는 코딩 유닛(CU), (2) 복수의 계수 그룹 중 적어도 하나의 위치, (3) 현재 비디오 블록의 블록 범위 또는 적어도 하나의 이웃 현재 비디오 블록의 블록, (4) 현재 비디오 블록 또는 적어도 하나의 이웃 블록의 블록 형태, (5) 현재 비디오 블록 또는 적어도 하나의 이웃 블록의 가장 가능성 있는 모드, (6) a 적어도 하나의 이웃 블록의 예측 모드, (7) 적어도 하나의 이웃 블록의 인트라 예측 모드, (8) 적어도 하나의 이웃 블록의 하나 이상의 모션 벡터, (9) 양자화된 잔차의 표시 적어도 하나의 이웃 블록의 블록 차동 펄스 코드 변조(QR-BDPCM) 모드, (10) 현재 비디오 블록의 현재 양자화 파라미터(QP) 또는 적어도 하나의 이웃 블록, (11) 현재 비디오 블록의 컬러 형식 표시, (12) 현재 비디오 블록과 연관된 분리 또는 듀얼 코딩 트리 구조, 또는 (13) 슬라이스 유형 , 타일 그룹 유형 또는 현재 비디오 블록의 픽처 유형.
일부 실시예에서, 현재 비디오 블록은 복수의 계수 그룹으로 분할되고, 방법(900)은 복수의 계수 그룹에 대한 계수 스캐닝 순서를 결정하는 단계를 더 포함한다. 예에서, 계수 스캐닝 순서는 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU), LCU 행, LCU 그룹 또는 코딩 유닛(CU)에서 시그널링 되는 메시지에 기초한다.
일부 실시예에서, 복수의 계수 그룹 또는 계수 스캐닝 순서는 현재 비디오 블록의 인트라 예측 모드에 기초한다. 하나의 예에서, 계수 스캐닝 순서는 수직이고, 여기서 인트라 예측 모드는 수평으로 지배된다. 다른 예에서, 계수 스캐닝 순서는 수평이고, 여기서 인트라 예측 모드는 수평으로 지배된다. 예를 들어, 인트라 예측 모드의 인덱스는 2 내지 33 또는 2 내지 34의 범위이다.
일부 실시예에서, 복수의 계수 그룹 또는 계수 스캐닝 순서는 현재 비디오 블록의 인트라 예측 모드에 기초한다. 예에서, 계수 스캐닝 순서는 수직이고, 여기서 인트라 예측 모드는 수직으로 지배된다. 다른 예에서, 계수 스캐닝 순서는 수평이고, 여기서 인트라 예측 모드는 수직으로 지배된다. 예를 들어, 인트라 예측 모드의 인덱스는 34~66 또는 35~66의 범위이다.
일부 실시예에서, 부호 플래그의 컨텍스트는 현재 비디오 블록과 연관된 계수 블록의 이웃 정보에 기초한다. 예에서, 부호 플래그의 컨텍스트는 계수 블록의 계수의 위치에 더 기초한다. 다른 예에서, 부호 플래그의 컨텍스트는 (x+y), min(x, y) 또는 max(x, y)에 기초하고, 여기서 x 및 y는 각각 계수 위치의 수평 값 및 수직 값이다.
도 9b는 비디오 처리를 위한 또 다른 예시적인 방법의 흐름도를 도시한다. 방법(910)은, 단계 912에서, 현재 비디오 블록에 대해 크로마 변환 스킵 모드가 적용가능하다고 결정하는 단계를 포함한다.
방법(910)은, 단계 914에서, 결정하는 단계에 기초하여, 현재 비디오 블록과 현재 비디오 블록을 포함하는 비디오의 비트 스트림 표현 사이의 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 결정하는 단계는 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛에서 시그널링 된 메시지에 기초한다. (LCU), LCU 행, LCU의 그룹, 코딩 유닛(CU) 또는 비디오 데이터 유닛에서 시그널링 되는 메시지에 기초한다.
일부 실시예에서, 결정하는 단계는 변환을 수행하기 전에 디코딩 된 하나 이상의 대표 비디오 블록으로부터의 디코딩 된 정보에 기초하고, 여기서 하나 이상의 대표 비디오 블록 및 현재 비디오 블록 각각의 샘플은 공통 컬러 정보에 기초한다. 예에서, 하나 이상의 대표적인 비디오 블록은 루마 블록 또는 크로마 블록을 포함한다. 다른 예에서, 하나 이상의 대표적인 비디오 블록은 배치된 루마 블록 내의 블록을 포함한다.
도 9c는 비디오 처리를 위한 또 다른 예시적인 방법의 흐름도를 도시한다. 방법(920)은, 단계 922에서, 현재 비디오 블록과 현재 비디오 블록을 포함하는 비디오의 비트 스트림 표현 사이의 변환 동안, 조건에 기초하여 현재 비디오 블록에 대한 변환 스킵 모드의 선택적 적용에 관한 결정을 내리는 단계를 포함한다.
방법(920)은, 단계 924에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 조건은 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU), LCU 행, LCU의 그룹, 코딩 유닛(CU) 또는 비디오 데이터 유닛에서 시그널링 되는 메시지에 기초한다.
일부 실시예에서, 상태는 하기 중 하나 이상에 기초한다: (1) 현재 비디오 블록 또는 현재 비디오 블록의 적어도 하나의 이웃 블록의 블록 범위, (2) 현재 비디오 블록 또는 적어도 하나의 이웃 블록의 블록 형태, (3) 가장 가능성 있는 모드 현재 비디오 블록 또는 적어도 하나의 이웃 블록, (4) 적어도 하나의 이웃 블록의 예측 모드, (5) 적어도 하나의 이웃 블록의 인트라 예측 모드, (6) 적어도 하나의 이웃 블록, (7) 적어도 하나의 이웃 블록의 양자화된 잔차 블록 차동 펄스 코드 변조(QR-BDPCM) 모드의 표시, (8) 현재 비디오 블록의 현재 양자화 파라미터(QP) 블록 또는 적어도 하나의 이웃 블록, (9) 현재 비디오 블록의 컬러 포맷 표시, (10) 현재 비디오 블록과 연관된 분리 또는 듀얼 코딩 트리 구조, (11) 슬라이스 유형, 타일 현재 비디오 블록의 그룹 유형 또는 화상 유형, 또는 (12) 시간 계층 식별자 (ID).
일부 실시예에서, 변환 스킵 모드의 적용이 수행되고, 현재 비디오 블록의 예측 모드는 인터 블록 복사(IBC) 모드이고, 현재 비디오 블록의 너비 또는 높이가 임계값과 비교된다. 예에서, 임계값은 비트 스트림 표현에서 시그널링 된다. 다른 예에서 임계값은 4, 8, 16 또는 32이다.
또 다른 예에서, 임계값은 다음 중 하나 이상에 기초한다: (1) 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU)에서 시그널링 되는 메시지 ), LCU 행, LCU의 그룹 또는 코딩 유닛(CU), (2) 시간 계층 식별(ID), (3) 현재 비디오 블록의 블록 범위 또는 현재 비디오 블록의 적어도 하나의 이웃 블록, (4) 현재 비디오 블록 또는 적어도 하나의 이웃 블록의 블록 형태, (5) 현재 비디오 블록 또는 적어도 하나의 이웃 블록의 가장 가능성 있는 모드, (6) at의 예측 모드 적어도 하나의 이웃 블록, (7) 적어도 하나의 이웃 블록의 인트라 예측 모드, (8) 적어도 하나의 이웃 블록의 하나 이상의 모션 벡터, (9) 양자화된 잔차 블록 차동 펄스 코드의 표시 적어도 하나의 이웃 블록의 변조(QR-BDPCM) 모드, (10) 현재 비디오 블록의 현재 양자화 파라미터(QP) 또는 적어도 하나의 하나의 이웃 블록으로서, (11) 현재 비디오 블록의 컬러 포맷의 표시, (12) 현재 비디오 블록과 연관된 분리 또는 듀얼 코딩 트리 구조, 또는 (13) 슬라이스 유형, 타일 그룹 유형 또는 현재 비디오 블록의 픽처 유형.
도 9d는 비디오 처리를 위한 또 다른 예시적인 방법의 흐름도를 도시한다. 방법(930)은, 단계 932에서, 현재 비디오 블록과 현재 비디오 블록을 포함하는 비디오의 비트 스트림 표현 사이의 변환 동안, 비트 스트림 표현에서 변환 스킵 모드의 표시에 기초하여 양자화된 잔차 블록 차동 펄스-코드 변조(QR-BDPCM)의 선택적인 적용에 관한 결정을 내리는 단계를 포함한다.
방법(930)은, 단계 934에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 변환 스킵 모드의 표시는 변환 유닛(TU) 레벨에서 시그널링 된다.
도 9e는 비디오 처리를 위한 또 다른 예시적인 방법의 흐름도를 도시한다. 방법(940)은, 단계 942에서, 현재 비디오 블록과 현재 비디오 블록을 포함하는 비디오의 비트 스트림 표현 사이의 변환 동안, 조건에 기초하여 분리 또는 듀얼 트리의 선택적 적용에 관해 결정을 내리는 단계를 포함한다.
방법(940)은, 단계 944에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 조건은 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU), LCU 행, LCU의 그룹, 코딩 유닛(CU) 또는 비디오 데이터 유닛에서 시그널링 되는 메시지에 기초한다.
일부 실시예에서, 조건은 현재 비디오 블록을 포함하는 슬라이스, 타일, 최대 코딩 유닛(LCU), LCU 행, LCU의 그룹 또는 비디오 데이터 유닛이 스크린 콘텐츠인지 여부를 결정하는 것에 기초한다. 예에서, 결정하는 단계는 다음 중 하나 이상에 기초하여 한다: (1) 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, LCU, LCU 행에서 시그널링 되는 메시지, LCU의 그룹, 코딩 유닛(CU) 또는 비디오 데이터 유닛, (2) 현재 비디오 블록의 블록 범위 또는 현재 비디오 블록의 적어도 하나의 이웃 블록, (3) 현재 비디오 블록의 블록 형태 비디오 블록 또는 적어도 하나의 이웃 블록, (4) 현재 비디오 블록 또는 적어도 하나의 이웃 블록의 현재 양자화 파라미터(QP), (5) 현재 비디오 블록의 컬러 포맷 표시, (6) 현재 비디오 블록과 연관된 분리 또는 듀얼 코딩 트리 구조, (7) 현재 비디오 블록의 슬라이스 유형, 타일 그룹 유형 또는 픽처 유형, 또는 (8) 시간 계층 식별(ID).
도 10은 비디오 처리 장치(video processing apparatus)(1000)의 블록도이다. 장치(1000)는 여기에 설명된 방법들 중 하나 이상을 구현하는 데 사용될 수 있다. 장치(1000)는 스마트폰, 태블릿, 컴퓨터, 사물인터넷(IoT) 수신기 등으로 구현될 수 있다. 장치(1000)는 하나 이상의 프로세서(processor)(1002), 하나 이상의 메모리(1004) 및 비디오 처리 하드웨어(video processing hardware) (1006)를 포함할 수 있다. 프로세서(들)(1002)는 본 문서에 설명된 하나 이상의 방법(방법 900, 910, 920, 930 및 940을 포함하지만 이에 제한되지 않음)을 구현하도록 구성될 수 있다. 메모리(메모리)(1004)는 여기에 설명된 방법 및 기술을 구현하는 데 사용되는 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 처리 하드웨어 (1006)는 하드웨어 회로에서 본 문서에 설명된 일부 기술을 구현하는 데 사용될 수 있다.
일부 실시예에서, 비디오 코딩 방법은 도 10와 관련하여 설명된 바와 같이 하드웨어 플랫폼 상에서 구현되는 장치를 사용하여 구현될 수 있다.
일부 실시예에서, 예를 들어 위의 항목 5 및 10에서 설명된 바와 같이, 비디오 처리 방법은 현재 비디오 블록에 대응하는 코딩 트리 구조의 유형에 기초하여 비디오의 현재 비디오 블록과 비트 스트림 표현 사이의 변환에 인트라 블록 복사 모드가 적용 가능한지 여부의 결정을 내리는 단계; 및 상기 결정에 기초하여 변환을 수행하는 단계를 포함한다.
위의 방법에 있어서 비트 스트림 표현은 인트라 블록 복사 모드의 표시를 제외한다. 즉, 비트 스트림은 IBC 모드의 명시적 시그널링을 전달하지 않는다.
위의 방법에 있어서 코딩 트리 구조의 유형은 듀얼 코딩 트리 구조이고 결정은 인트라 블록 복사 모드가 적용되지 않는 것이다.
도 11은 본 명세서에 개시된 다양한 기술이 구현될 수 있는 예시적인 비디오 처리 시스템(1100)을 도시하는 블록도이다. 다양한 구현은 시스템(1100)의 구성요소 중 일부 또는 전부를 포함할 수 있다. 시스템(1100)은 비디오 콘텐츠를 수신하기 위한 입력(input)(1102)을 포함할 수 있다. 비디오 콘텐츠는 원시 또는 압축되지 않은 형식, 예를 들어 8 또는 10비트 다중 컴포넌트 픽셀 값으로 수신될 수 있거나 압축 또는 인코딩 된 형식일 수 있다. 입력(1102)은 네트워크 인터페이스, 주변 버스 인터페이스, 또는 저장 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예로는 이더넷, 수동 광 네트워크(PON) 등과 같은 유선 인터페이스와 Wi-Fi 또는 셀룰러 인터페이스와 같은 무선 인터페이스가 있다.
시스템(system)(1100)은 본 문서에 설명된 다양한 코딩 또는 인코딩 방법을 구현할 수 있는 코딩 컴포넌트(coding component)(1104)를 포함할 수 있다. 코딩 컴포넌트(1104)는 비디오의 코딩 된 표현을 생성하기 위해 입력(1102)으로부터 코딩 컴포넌트(1104)의 출력으로 비디오의 평균 비트레이트를 감소시킬 수 있다. 따라서 코딩 기술은 비디오 압축 또는 비디오 트랜스코딩 기술이라고도 한다. 코딩 컴포넌트(1104)의 출력은 컴포넌트(1106)에 의해 표현되는 바와 같이, 연결된 통신을 통해 저장되거나 전송될 수 있다. 입력(1102)에서 수신된 비디오의 저장 또는 통신된 비트 스트림(또는 코딩 된) 표현은 디스플레이 인터페이스(1110)로 전송되는 픽셀 값 또는 디스플레이 가능한 비디오를 생성하기 위해 컴포넌트(1108)에 의해 사용될 수 있다. 비트 스트림 표현에서 사용자가 볼 수 있는 비디오를 생성하는 프로세스를 비디오 압축 해제라고도 한다. 또한, 특정 비디오 처리 작업은 "코딩" 작업(operation) 또는 툴(tool)로 지칭되지만, 코딩 툴 또는 작업은 인코더에서 사용되고 코딩의 결과를 역전시키는 대응하는 디코딩 도구 또는 작업은 디코더에 의해 수행될 것임을 이해할 것이다.
주변기기 버스 인터페이스 또는 디스플레이 인터페이스의 예는 USB(유니버설 시리얼 버스(Universal Serial Bus)) 또는 HDMI(고해상도 멀티미디어 인테페이스(High Definition Multimedia Interface)) 또는 디스플레이포트(Displayport) 등을 포함할 수 있다. 저장 인터페이스의 예는 SATA(시리얼 고급 기술 어테치먼트(Serial Advanced Technology Attachment)), PCI, IDE 인터페이스 등을 포함한다. 본 문서에서 설명된 기술은 디지털 데이터 처리 및/또는 비디오 디스플레이를 수행할 수 있는 휴대폰, 랩톱, 스마트폰 또는 기타 장치와 같은 다양한 전자 장치에서 구현될 수 있다.
도 12는 비주얼 미디어 인코딩을 위한 예시적인 방법의 흐름도이다. 이 흐름도의 단계는 이 문서의 섹션 4에서 논의된 예시적인 실시예 1과 관련하여 논의된다. 단계 1202에서, 프로세스는, 비주얼 미디어 데이터의 비디오 영역에 있는 하나 이상의 비디오 블록을 비주얼 미디어 데이터의 비트 스트림 표현으로 인코딩 하기 위해, 현재 비디오 블록(current video block)과 레퍼런스 비디오 블록(reference video block) 사이의 예측 오차(prediction error)의 잔차(residual)가 변환을 적용하지 않은 비트 스트림 표현에서 표현되도록 변환 스킵 모드(transform skip mode)를 사용하여 하나 이상의 비디오 블록의 현재 비디오 블록이 인코딩 되도록 허용되는 최대 허용 범위(maximum allowed dimension)을 결정한다. 단계 1204에서, 프로세스는 비트 스트림 표현에서 최대 허용 범위를 나타내는 신택스 요소(syntax element)를 포함한다.
도 13은 비주얼 미디어 디코딩을 위한 예시적인 방법의 흐름도이다. 이 흐름도의 단계는 이 문서의 섹션 4에서 논의된 예시적인 실시예 1과 관련하여 논의된다. 단계 1302에서, 프로세서는 하나 이상의 비디오 블록을 포함하는 비디오 영역을 포함하는 비주얼 미디어 데이터의 비트 스트림 표현으로부터 신택스 요소를 파싱하고, 신택스 요소는 현재 비디오 블록과 레퍼런스 비디오 블록 간의 예측 오차의 잔차가 변환을 적용하지 않은 비트 스트림 표현에서 표현되는 변환 스킵 모드를 사용하여 비디오 영역의 하나 이상의 블록의 현재 비디오 블록이 코딩 되도록 허용되는 최대 허용 범위를 나타낸다. 단계 1304에서, 프로세스는 최대 허용 범위에 따라 하나 이상의 비디오 블록을 디코딩 함으로써 비트 스트림 표현으로부터 디코딩 된 비디오 영역을 생성한다.
도 14는 비주얼 미디어 처리를 위한 예시적인 방법의 흐름도이다. 이 흐름도의 단계는 이 문서의 섹션 4에서 논의된 예시적인 실시예 2와 관련하여 논의된다. 단계 1402에서, 프로세스는 비주얼 미디어 데이터의 현재 비디오 블록이 변환 스킵 모드를 사용하여 코딩 된다고 결정한다. 단계 1404에서, 프로세스는, 결정하는 단계에 기초하여, 현재 비디오 블록과 비주얼 미디어 데이터의 비트 스트림 표현 사이의 변환을 수행하고, 변환 동안, 현재 비디오 블록은 복수의 계수 그룹으로 분할되고 복수의 계수 그룹 중 적어도 하나에 대한 코딩 된 블록 플래그의 시그널링은 비트 스트림 표현에서 제외되고, 변환 스킵 모드에서, 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비트 스트림 표현으로 표현된다.
도 15는 비주얼 미디어 처리를 위한 예시적인 방법의 흐름도이다. 이 흐름도의 단계는 이 문서의 섹션 4에서 논의된 예시적인 실시예 3과 관련하여 논의된다. 단계 1502에서, 프로세스는 비주얼 미디어 데이터의 현재 비디오 블록이 변환 스킵 모드를 사용하여 코딩 된다고 결정한다. 단계 1504에서, 프로세스는 결정하는 단계에 기초하여, 현재 비디오 블록과 비주얼 미디어 데이터의 비트 스트림 표현 사이의 변환을 수행하고, 여기서, 변환 동안, 현재 비디오 블록은 복수의 계수 그룹으로 분할되고, 여기서, 변환 스킵 모드에서, 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비트 스트림 표현으로 표현되고, 및 또한, 변환 동안, 복수의 계수 그룹의 계수 스캐닝 순서는 비트 스트림 표현의 표시에 적어도 부분적으로 기초하여 결정된다.
도 16은 비주얼 미디어 인코딩을 위한 예시적인 방법의 흐름도이다. 이 흐름도의 단계는 이 문서의 섹션 4에서 논의된 예시적인 실시예 4와 관련하여 논의된다. 단계 1602에서, 프로세스는, 비주얼 미디어 데이터의 비디오 영역에서 현재 비디오 블록을 비주얼 미디어 데이터의 비트 스트림 표현으로 인코딩 하기 위해, 프로세스는 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차가 변환을 적용하지 않고 비트 스트림 표현으로 표현되는 변환 스킵 모드를 사용한다. 단계 1604에서, 프로세스는 현재 비디오 블록을 복수의 계수 그룹으로 분할하는 것에 기초하여 현재 비디오 블록과 연관된 계수 그룹(coefficient group)에서 하나 이상의 이웃 비디오 블록의 부호 플래그(sign flag)에 따라 현재 비디오 블록의 부호 플래그의 컨텍스트(context)를 선택한다.
도 17은 비주얼 미디어 디코딩을 위한 예시적인 방법의 흐름도이다. 이 흐름도의 단계는 이 문서의 섹션 4에서 논의된 예시적인 실시예 4와 관련하여 논의된다. 단계 1702에서, 프로세스는 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차가 변환을 적용하지 않고 비트 스트림 표현으로 표현되는 변환 스킵 모드에서 사용된 부호 플래그의 컨텍스트를 식별하기 위해 현재 비디오 블록을 포함하는 비디오 영역을 포함하는 비주얼 미디어 데이터의 비트 스트림 표현을 파싱 한다. 단계 1704에서, 프로세스는 부호 플래그의 컨텍스트가 현재 비디오 블록을 복수의 계수 그룹으로 분할하는 것에 기초하여 현재 비디오 블록과 연관된 계수 그룹의 하나 이상의 이웃하는 비디오 블록의 부호 플래그에 따르도록 비트 스트림 표현으로부터 디코딩 된 비디오 영역을 생성한다.
도 18은 비주얼 미디어 처리를 위한 예시적인 방법의 흐름도이다. 단계 1802에서, 프로세스는 현재 비디오 블록이 복수의 계수 위치로 분할될 때 비주얼 미디어 데이터의 현재 비디오 블록과 연관된 현재 계수의 위치를 결정한다. 단계 1804에서, 프로세스는 적어도 하나 이상의 이웃 계수의 부호 플래그에 기초하여 현재 계수에 대한 부호 플래그의 컨텍스트를 유도한다. 단계 1806에서, 프로세스는 컨텍스트에 기초하여 현재 계수에 대한 부호 플래그를 생성하고, 현재 계수의 부호 플래그는 현재 비디오 블록이 변환을 적용하지 않고 코딩 되는 변환 스킵 모드에서 사용된다.
도 19는 비주얼 미디어 인코딩을 위한 예시적인 방법의 흐름도이다. 이 흐름도의 단계는 이 문서의 섹션 4에서 논의된 예시적인 실시예 5와 관련하여 논의된다. 단계 1902에서, 프로세스는 비주얼 미디어 데이터의 비디오 영역에 있는 하나 이상의 비디오 블록을 비주얼 미디어 데이터의 비트 스트림 표현으로 인코딩 하기 위해, 크로마 변환 스킵 모드가 현재 비디오 블록에 적용 가능한 적어도 하나의 규칙을 만족하는 것에 기초하여 결정하고, 크로마 변환 스킵 모드에서 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비주얼 미디어 데이터의 비트 스트림 표현으로 표현된다. 단계 1904에서, 프로세스는 비트 스트림 표현에서 크로마 변환 스킵 모드를 나타내는 신택스 요소를 포함한다.
도 20은 비주얼 미디어 디코딩을 위한 예시적인 방법의 흐름도이다. 이 흐름도의 단계는 이 문서의 섹션 4에서 논의된 예시적인 실시예 5와 관련하여 논의된다. 단계 2002에서, 프로세스는 크로마 변환 스킵 모드의 적용과 연관된 적어도 하나의 규칙이 만족되는 하나 이상의 비디오 블록을 포함하는 비디오 영역을 포함하는 비주얼 미디어 데이터의 비트 스트림 표현으로부터 신택스 요소를 파싱 하고, 크로마 변환 스킵 모드에서 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비주얼 미디어 데이터의 비트 스트림 표현으로 표현된다. 단계 2004에서, 프로세스는 하나 이상의 비디오 블록을 디코딩 함으로써 비트 스트림 표현으로부터 디코딩 된 비디오 영역을 생성한다.
도 21은 비주얼 미디어 인코딩을 위한 예시적인 방법의 흐름도이다. 이 흐름도의 단계는 이 문서의 섹션 4에서 논의된 예시적인 실시예 6과 관련하여 논의된다. 단계 2102에서, 프로세스는 비주얼 미디어 데이터의 비디오 영역에 있는 하나 이상의 비디오 블록을 비주얼 미디어 데이터의 비트 스트림 표현으로 인코딩 하기 위해, 조건에 기초하여 현재 비디오 블록에 대한 변환 스킵 모드의 선택적 적용에 관한 결정을 내린다. 단계 2104에서, 프로세스는 비트 스트림 표현에서 조건을 나타내는 신택스 요소를 포함하고, 변환 스킵 모드에서, 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비주얼 미디어 데이터의 비트 스트림 표현으로 표현된다.
도 22는 비주얼 미디어 디코딩을 위한 예시적인 방법의 흐름도이다. 이 흐름도의 단계는 이 문서의 섹션 4에서 논의된 예시적인 실시예 6과 관련하여 논의된다. 단계 2202에서, 프로세스는 하나 이상의 비디오 블록을 포함하는 비디오 영역을 포함하는 비주얼 미디어 데이터의 비트 스트림 표현으로부터 신택스 요소를 파싱하고, 신택스 요소는 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차가 변환을 적용하지 않고 비트 스트림 표현으로 표현되는 변환 스킵 모드의 사용과 관련된 조건을 나타낸다. 단계 2204에서, 프로세스는 조건에 따라 하나 이상의 비디오 블록을 디코딩 함으로써 비트 스트림 표현으로부터 디코딩 된 비디오 영역을 생성한다.
도 23은 비주얼 미디어 인코딩을 위한 예시적인 방법의 흐름도이다. 이 흐름도의 단계는 이 문서의 섹션 4에서 논의된 예시적인 실시예 8과 관련하여 논의된다. 단계 2302에서, 프로세스는 비주얼 미디어 데이터의 비디오 영역에 있는 하나 이상의 비디오 블록을 비주얼 미디어 데이터의 비트 스트림 표현으로 인코딩 하기 위해, 비트 스트림 표현에서 변환 스킵 모드의 표시에 기초하여 양자화된 잔차 블록 차동 펄스-코드 변조(quantized residual block differential pulse-code modulation)(QR-BDPCM) 기술의 선택적인 적용에 관한 결정을 내리고, 변환 스킵 모드에서, 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비주얼 미디어 데이터의 비트 스트림 표현으로 표현되고, QR-BDPCM 기술에서, 수평 방향 및/또는 수직 방향의 예측 오차의 잔차는 양자화 및 엔트로피 코딩 된다. 단계 2304에서, 프로세스는 비트 스트림 표현에서 QR-BDPCM 기술의 선택적 적용의 표시를 포함한다.
도 24는 비주얼 미디어 디코딩을 위한 예시적인 방법의 흐름도이다. 이 흐름도의 단계는 이 문서의 섹션 4에서 논의된 예시적인 실시예 8과 관련하여 논의된다. 단계 2402에서, 프로세스는 하나 이상의 비디오 블록을 포함하는 비디오 영역을 포함하는 비주얼 미디어 데이터의 비트 스트림 표현으로부터 신택스 요소를 파싱 하고, 신택스 요소는 비트 스트림 표현에서 변환 스킵 모드의 표시에 기초한 양자화된 잔차 블록 차동 펄스 코드 변조(QR-BDPCM) 기술의 선택적 적용을 나타내고, 변환 스킵 모드에서, 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비주얼 미디어 데이터의 비트 스트림 표현으로 표현되고, QR-BDPCM 기술에서, 수평 방향 및/또는 수직 방향의 예측 오차의 잔차는 양자화 및 엔트로피 코딩 된다. 단계 2404에서, 프로세스는 최대 허용 범위에 따라 하나 이상의 비디오 블록을 디코딩 함으로써 비트 스트림 표현으로부터 디코딩 된 비디오 영역을 생성한다.
도 25는 비주얼 미디어 인코딩을 위한 예시적인 방법의 흐름도이다. 이 흐름도의 단계는 이 문서의 섹션 4에서 논의된 예시적인 실시예 9와 관련하여 논의된다. 단계 2502에서, 프로세스는 조건에 기초하여 분리 또는 트리(dual tree)의 선택적인 적용과 관련하여, 비주얼 미디어 데이터의 비디오 영역에 있는 하나 이상의 비디오 블록을 비주얼 미디어 데이터의 비트 스트림 표현으로 인코딩 하기 위한 결정을 내린다. 단계 2504에서, 프로세스는 비트 스트림 표현에서 분리 또는 듀얼 트리의 선택적 적용을 나타내는 신택스 요소를 포함한다.
도 26은 비주얼 미디어 디코딩을 위한 예시적인 방법의 흐름도이다. 이 흐름도의 단계는 이 문서의 섹션 4에서 논의된 예시적인 실시예 9와 관련하여 논의된다. 단계 2602에서, 프로세스는 하나 이상의 비디오 블록을 포함하는 비디오 영역을 포함하는 비주얼 미디어 데이터의 비트 스트림 표현으로부터 신택스 요소를 파싱 하고, 신택스 요소는 조건에 기초하거나 조건으로부터 유추된 개별 또는 이중 트리의 선택적 적용을 나타낸다. 단계 2604에서, 프로세스는 신택스 요소에 따라 하나 이상의 비디오 블록을 디코딩 함으로써 비트 스트림 표현으로부터 디코딩 된 비디오 영역을 생성한다.
본 문서의 일부 실시예는 이제 절 기반 형식으로 제공된다.
A1. 비주얼 미디어 인코딩 방법은:
비주얼 미디어 데이터의 비디오 영역에 있는 하나 이상의 비디오 블록을 비주얼 미디어 데이터의 비트 스트림 표현으로 인코딩 하기 위해, 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차가 변환을 적용하지 않은 비트 스트림 표현에서 표현되도록 변환 스킵 모드를 사용하여 하나 이상의 비디오 블록의 현재 비디오 블록이 인코딩 되도록 허용되는 최대 허용 범위를 결정하는 단계; 및
비트 스트림 표현에서 최대 허용 범위를 나타내는 신택스 요소를 포함하는 단계를 포함한다.
A2. 비주얼 미디어 디코딩 방법은:
하나 이상의 비디오 블록을 포함하는 비디오 영역을 포함하는 비주얼 미디어 데이터의 비트 스트림 표현으로부터 신택스 요소를 파싱하는 단계 - 신택스 요소는 현재 비디오 블록과 레퍼런스 비디오 블록 간의 예측 오차의 잔차가 변환을 적용하지 않은 비트 스트림 표현에서 표현되는 변환 스킵 모드를 사용하여 비디오 영역의 하나 이상의 블록의 현재 비디오 블록이 코딩 되도록 허용되는 최대 허용 범위를 나타냄 -; 및
최대 허용 범위에 따라 하나 이상의 비디오 블록을 디코딩 함으로써 비트 스트림 표현으로부터 디코딩 된 비디오 영역을 생성하는 단계를 포함한다.
A3. 항목 A1 또는 A2의 방법에 있어서, 최대 허용 범위는 변환 스킵 모드와 연관된 최대 허용 너비 및 최대 허용 높이를 포함한다.
A4. 항목 A3의 방법에 있어서, 최대 허용 너비 및 높이는 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU) 행 또는 LCU 그룹 에서 시그널링 된다.
A5. 항목 A1 내지 A3 중 어느 하나 이상의 방법에 있어서, 최대 허용 너비 및 최대 허용 높이가 비트 스트림 표현에서 상이한 메시지로 시그널링 된다.
A6. 항목 A1 또는 A2 중 어느 하나 이상의 방법에 있어서, 최대 허용 너비 및 최대 허용 높이의 초기 값은 시퀀스 매개 변수 집합(SPS) 또는 픽처 파라미터수 집합(PPS)에서 시그널링 되고, 및 최대 허용 너비 및 최대 허용 높이의 업데이트된 값은 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 단위(LCU) 행 또는 LCU의 그룹에서 시그널링 된다.
A7. 항목 A2-A6 중 어느 하나 이상의 방법에 있어서, 디코딩 된 비디오 영역을 생성하는 단계는 변환 스킵 모드를 사용하지 않고 하나 이상의 비디오 블록을 디코딩 하는 단계를 포함한다.
A8. 항목 A2 내지 A6 중 어느 하나 이상의 방법에 있어서, 디코딩 된 비디오 영역을 생성하는 단계는 변환 스킵 모드의 사용에 기초하여 하나 이상의 비디오 블록을 디코딩 하는 단계를 포함한다.
A9. 비주얼 미디어 처리 방법에 있어서,
비주얼 미디어 데이터의 현재 비디오 블록이 변환 스킵 모드를 사용하여 코딩 되었다고 결정하는 단계; 및
결정하는 단계에 기초하여, 현재 비디오 블록과 비주얼 미디어 데이터의 비트 스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 변환 동안, 현재 비디오 블록은 복수의 계수 그룹으로 분할되고 복수의 계수 그룹 중 적어도 하나에 대한 코딩 된 블록 플래그의 시그널링은 비트 스트림 표현에서 제외되고, 변환 스킵 모드에서, 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비트 스트림 표현으로 표현된다.
A10. 항목 A9의 방법에 있어서, 복수의 계수 그룹들 각각에 대한 코딩 된 블록 플래그의 시그널링은 비트 스트림 표현에서 제외된다.
A11. 항목 A9 또는 A10 중 어느 하나 이상의 방법에 있어서, 비트 스트림 표현에서 제외된 복수의 계수 그룹에 대한 코딩 된 블록 플래그는 고정된 값으로서 유추된다.
A12. 항목 A11의 방법에 있어서, 고정 값은 1이다.
A13. 항목 A9 내지 A12 중 어느 하나 이상의 방법에 있어서,
현재 비디오 블록의 예측 모드에 기초하여, 복수의 계수 그룹들에 대한 코딩 된 블록 플래그를 시그널링 하는 것을 선택적으로 활성화 또는 비활성화하도록 결정을 내리는 단계를 포함한다.
A14. 항목 A13의 방법에 있어서, 예측 모드가 인트라 예측 모드인 경우, 복수의 계수 그룹에 대한 코딩 된 블록 플래그의 시그널링은 비트 스트림 표현에서 제외된다.
A15. 항목 A9 내지 A14 중 어느 하나 이상의 방법에 있어서, 비트 스트림 표현의 시그널링에서 배제된 코딩 된 블록 플래그는 다음 중 하나 이상에 기초하여 유추된다:
(1) 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU), LCU 행, LCU 그룹 또는 코딩 유닛(CU)에서 시그널링 되는 메시지,
(2) 복수의 계수 그룹 중 적어도 하나의 위치,
(3) 현재 비디오 블록의 블록 범위 또는 현재 비디오 블록의 적어도 하나의 이웃 블록,
(4) 현재 비디오 블록 또는 적어도 하나의 이웃 블록의 블록 형태,
(5) 현재 비디오 블록 또는 적어도 하나의 이웃 블록의 가장 가능성 있는 모드,
(6) 적어도 하나의 이웃 블록의 예측 모드,
(7) 적어도 하나의 이웃 블록의 인트라 예측 모드,
(8) 적어도 하나의 이웃 블록의 하나 이상의 모션 벡터,
(9) 적어도 하나의 이웃 블록의 양자화된 잔차 블록 차동 펄스 코드 변조(QR-BDPCM) 모드의 표시,
(10) 현재 비디오 블록 또는 적어도 하나의 이웃 블록의 현재 양자화 파라미터(QP),
(11) 현재 비디오 블록의 컬러 포맷의 표시,
(12) 현재 비디오 블록과 연관된 분리 또는 듀얼 코딩 트리 구조, 또는
(13) 현재 비디오 블록의 슬라이스 타입, 타일 그룹 타입 또는 픽처 타입.
A16. 비주얼 미디어 처리 방법에 있어서,
비주얼 미디어 데이터의 현재 비디오 블록이 변환 스킵 모드를 사용하여 코딩 되었다고 결정하는 단계; 및
결정하는 단계에 기초하여, 현재 비디오 블록과 비주얼 미디어 데이터의 비트 스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 변환 동안, 현재 비디오 블록은 복수의 계수 그룹으로 분할되고, 변환 스킵 모드에서, 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비트 스트림 표현으로 표현되고, 및 또한, 변환 동안, 복수의 계수 그룹의 계수 스캐닝 순서는 비트 스트림 표현의 표시에 적어도 부분적으로 기초하여 결정된다.
A17. 항목 A16의 방법에 있어서, 계수 스캐닝 순서는 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU), LCU 행, LCU 그룹 또는 코딩 유닛(CU)에서 시그널링 되는 메시지에 기초한다.
A18. 항목 A17의 방법에 있어서, 변환 스킵 모드에서, 복수의 계수 그룹 또는 계수 스캐닝 순서는 현재 비디오 블록의 인트라 예측 모드에 기초한다.
A19. 항목 A18의 방법에 있어서, 계수 스캐닝 순서는 수직이고, 인트라 예측 모드는 수평으로 지배된다.
A20. 항목 A18의 방법에 있어서, 계수 스캐닝 순서는 수평이고, 인트라 예측 모드는 수평으로 지배된다.
A21. 항목 A19-A20 중 어느 하나 이상의 방법에 있어서, 인트라 예측 모드의 인덱스가 2 내지 33 또는 2 내지 34의 범위이다.
A22. 항목 A18의 방법에 있어서, 계수 스캐닝 순서는 수직이고, 인트라 예측 모드는 수직으로 지배된다.
A23. 항목 A18의 방법에 있어서, 계수 스캐닝 순서는 수평이고, 인트라 예측 모드는 수직으로 지배된다.
A24. 항목 A22 또는 A23 중 어느 하나 이상의 방법에 있어서, 인트라 예측 모드의 인덱스가 34 내지 66 또는 35 내지 66의 범위이다.
A25. 항목 A9 내지 A24 중 어느 하나 이상의 방법에 있어서, 변환은 현재 비디오 블록으로부터 비트 스트림 표현을 생성하는 단계를 포함한다.
A65. 항목 A9 내지 A24 중 어느 하나 이상의 방법에 있어서, 변환은 비트 스트림 표현으로부터 현재 비디오 블록의 픽셀 값을 생성하는 단계를 포함한다.
C1. 비주얼 미디어 인코딩 방법에 있어서,
비주얼 미디어 데이터의 비디오 영역에 있는 하나 이상의 비디오 블록을 비주얼 미디어 데이터의 비트 스트림 표현으로 인코딩하기 위해, 크로마 변환 스킵 모드가 현재 비디오 블록에 적용 가능한 적어도 하나의 규칙을 만족하는 것에 기초하여 결정하는 단계 - 크로마 변환 스킵 모드에서 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비주얼 미디어 데이터의 비트 스트림 표현으로 표현됨 -; 및
비트 스트림 표현에서 크로마 변환 스킵 모드를 나타내는 신택스 요소를 포함한다.
C2. 비주얼 미디어 디코딩 방법에 있어서,
크로마 변환 스킵 모드의 적용과 연관된 적어도 하나의 규칙이 만족되는 하나 이상의 비디오 블록을 포함하는 비디오 영역을 포함하는 비주얼 미디어 데이터의 비트 스트림 표현으로부터 신택스 요소를 파싱 하는 단계 - 크로마 변환 스킵 모드에서 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비주얼 미디어 데이터의 비트 스트림 표현으로 표현됨 -; 및
하나 이상의 비디오 블록을 디코딩 함으로써 비트 스트림 표현으로부터 디코딩 된 비디오 영역을 생성하는 단계를 포함한다.
C3. 항목 C1 내지 C2 중 어느 하나 이상의 방법에 있어서, 결정하는 단계는 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU), LCU 행, LCU의 그룹, 코딩 유닛(CU) 또는 비주얼 미디어 데이터의 비트 스트림 표현과 연관된 비디오 데이터 유닛에서 시그널링 되는 메시지에 기초한다.
C4. 항목 C2 내지 C3 중 어느 하나 이상의 방법에 있어서, 결정하는 단계는 변환 이전에 디코딩 된 하나 이상의 대표 비디오 블록들로부터 디코딩 된 정보에 기초하고, 하나 이상의 대표 비디오 블록 및 현재 비디오 블록 각각의 샘플은 공통 컬러 컴포넌트에 기초한다.
C5. 항목 C4의 방법에 있어서, 하나 이상의 대표적인 비디오 블록은 루마 블록 또는 크로마 블록을 포함한다.
C6. 항목 C4의 방법에 있어서, 하나 이상의 대표적인 비디오 블록은 병치된 루마 블록 내의 블록을 포함한다.
C7. 항목 C4의 방법에 있어서, 현재 비디오 블록은 현재 크로마 블록이고, 및 하나 이상의 대표 비디오 블록은 현재 크로마 블록의 이웃 크로마 블록을 포함한다.
C8. 항목 C4의 방법에 있어서, 현재 비디오 블록은 현재 크로마 블록이고, 하나 이상의 대표 비디오 블록은 현재 크로마 블록 내의 중심 크로마 샘플의 대응하는 루마 샘플을 커버하는 블록을 포함한다.
C9. 항목 C4의 방법에 있어서, 현재 비디오 블록은 현재 크로마 블록이고, 하나 이상의 대표 비디오 블록은 현재 크로마 블록 내의 오른쪽 하단 크로마 샘플의 대응하는 루마 샘플을 커버하는 블록을 포함한다.
D1. 비주얼 미디어 인코딩 방법에 있어서:
비주얼 미디어 데이터의 비디오 영역에 있는 하나 이상의 비디오 블록을 비주얼 미디어 데이터의 비트 스트림 표현으로 인코딩 하기 위해, 조건에 기초하여 현재 비디오 블록에 대한 변환 스킵 모드의 선택적 적용에 관한 결정을 내리는 단계; 및
비트 스트림 표현에서 조건을 나타내는 신택스 요소를 포함하는 단계를 포함하고, 변환 스킵 모드에서, 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비주얼 미디어 데이터의 비트 스트림 표현으로 표현된다.
D2. 비주얼 미디어 디코딩 방법에 있어서:
하나 이상의 비디오 블록을 포함하는 비디오 영역을 포함하는 비주얼 미디어 데이터의 비트 스트림 표현으로부터 신택스 요소를 파싱하는 단계 -신택스 요소는 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차가 변환을 적용하지 않고 비트 스트림 표현으로 표현되는 변환 스킵 모드의 사용과 관련된 조건을 나타냄 -; 및
조건에 따라 하나 이상의 비디오 블록을 디코딩 함으로써 비트 스트림 표현으로부터 디코딩 된 비디오 영역을 생성하는 단계를 포함한다.
D3. 항목 D1의 방법에 있어서, 신택스 요소는 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛에서 시그널링 된 메시지에 기초한다. (LCU), LCU 행, LCU의 그룹, 코딩 유닛(CU) 또는 비디오 데이터 유닛에서 시그널링 된다.
D4. 항목 D1 내지 D3 중 어느 하나 이상의 방법에 있어서, 조건이 하기 중 하나 이상에 기초한다:
(1) 현재 비디오 블록의 블록 범위 또는 현재 비디오 블록의 적어도 하나의 이웃 블록,
(2) 현재 비디오 블록 또는 적어도 하나의 이웃 블록의 블록 형태,
(3) 현재 비디오 블록 또는 적어도 하나의 이웃 블록의 가장 가능성 있는 모드,
(4) 적어도 하나의 이웃 블록의 예측 모드,
(5) 적어도 하나의 이웃 블록의 인트라 예측 모드,
(6) 적어도 하나의 이웃 블록의 하나 이상의 모션 벡터,
(7) 적어도 하나의 이웃 블록의 양자화된 잔차 블록 차동 펄스 코드 변조(QR-BDPCM) 모드의 표시,
(8) 현재 비디오 블록 또는 적어도 하나의 이웃 블록의 현재 양자화 파라미터(QP),
(9) 현재 비디오 블록의 컬러 포맷의 표시,
(10) 현재 비디오 블록과 연관된 분리 또는 듀얼 코딩 트리 구조,
(11) 현재 비디오 블록의 슬라이스 유형, 타일 그룹 유형 또는 픽처 유형, 또는
(12) 시간 계층 식별(ID).
D5. 항목 D4의 방법에 있어서, 현재 비디오 블록의 예측 모드가 인터 블록 복사(IBC) 모드일 때 변환 스킵 모드가 적용되고, 또한 현재 비디오 블록의 너비 또는 높이가 임계값을 충족한다.
D6. 항목 D5의 방법에 있어서, 임계값은 비트 스트림 표현에서 시그널링 된다.
D7. 항목 D6의 방법에 있어서, 임계값의 값이 4, 8, 16 또는 32이다.
D8. 항목 D5 내지 D7 중 어느 하나 이상의 방법에 있어서, 임계값은 다음 중 하나 이상에 기초한다:
(1) 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU), LCU 행, LCU 그룹 또는 코딩 유닛(CU)에서 시그널링 되는 메시지,
(2) 시간 계층 식별(ID),
(3) 현재 비디오 블록의 블록 범위 또는 현재 비디오 블록의 적어도 하나의 이웃 블록,
(4) 현재 비디오 블록 또는 적어도 하나의 이웃 블록의 블록 형태,
(5) 현재 비디오 블록 또는 적어도 하나의 이웃 블록의 가장 가능성 있는 모드,
(6) 적어도 하나의 이웃 블록의 예측 모드,
(7) 적어도 하나의 이웃 블록의 인트라 예측 모드,
(8) 적어도 하나의 이웃 블록의 하나 이상의 모션 벡터,
(9) 적어도 하나의 이웃 블록의 양자화된 잔차 블록 차동 펄스 코드 변조(QR-BDPCM) 모드의 표시,
(10) 현재 비디오 블록 또는 적어도 하나의 이웃 블록의 현재 양자화 파라미터(QP),
(11) 현재 비디오 블록의 컬러 포맷의 표시,
(12) 현재 비디오 블록과 연관된 분리 또는 듀얼 코딩 트리 구조, 또는
(13) 현재 비디오 블록의 슬라이스 타입, 타일 그룹 타입 또는 픽처 타입.
E1. 비주얼 미디어 인코딩 방법에 있어서:
비주얼 미디어 데이터의 비디오 영역에 있는 하나 이상의 비디오 블록을 비주얼 미디어 데이터의 비트 스트림 표현으로 인코딩 하기 위해, 비트 스트림 표현에서 변환 스킵 모드의 표시에 기초하여 양자화된 잔차 블록 차동 펄스-코드 변조(quantized residual block differential pulse-code modulation)(QR-BDPCM) 기술의 선택적인 적용에 관한 결정을 내리는 단계 - 변환 스킵 모드에서, 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비주얼 미디어 데이터의 비트 스트림 표현으로 표현되고, QR-BDPCM 기술에서, 수평 방향 및/또는 수직 방향의 예측 오차의 잔차는 양자화 및 엔트로피 코딩 됨 -; 및
비트 스트림 표현에서 QR-BDPCM 기술의 선택적 적용의 표시를 포함하는 단계를 포함한다.
E2. 비주얼 미디어 디코딩 방법에 있어서:
하나 이상의 비디오 블록을 포함하는 비디오 영역을 포함하는 비주얼 미디어 데이터의 비트 스트림 표현으로부터 신택스 요소를 파싱 하는 단계 - 신택스 요소는 비트 스트림 표현에서 변환 스킵 모드의 표시에 기초한 양자화된 잔차 블록 차동 펄스 코드 변조(QR-BDPCM) 기술의 선택적 적용을 나타내고, 변환 스킵 모드에서, 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차는 변환을 적용하지 않고 비주얼 미디어 데이터의 비트 스트림 표현으로 표현되고, QR-BDPCM 기술에서, 수평 방향 및/또는 수직 방향의 예측 오차의 잔차는 양자화 및 엔트로피 코딩 됨 -; 및
최대 허용 범위에 따라 하나 이상의 비디오 블록을 디코딩 함으로써 비트 스트림 표현으로부터 디코딩 된 비디오 영역을 생성하는 단계를 포함한다.
E3. 항목 E1 내지 E2 중 어느 하나 이상의 방법에 있어서, 변환 스킵 모드의 표시는 현재 비디오 블록과 연관된 변환 유닛(TU) 레벨에서 시그널링 된다.
E4. 항목 E1 내지 E3 중 어느 하나 이상의 방법에 있어서, 비트 스트림 표현에서, 현재 비디오 블록에 대한 QR-BDPCM 기술의 적용을 표시하는 신택스 요소는 변환 스킵 모드의 표시 후에 포함된다.
E5. 항목 E4의 방법에 있어서, 비트 스트림 표현의 제1 플래그는 변환 스킵 모드를 표시하는 데 사용되고 비트 스트림 표현의 제2 플래그는 QR-BDPCM 기술의 선택적 적용을 표시하는 데 사용된다.
E6. 항목 E5의 방법에 있어서, 제3 플래그는 수평 예측 방향 기반 유형 QR-BDPCM 기술의 적용을 표시하는 데 사용되고 제4 플래그는 수직 예측 방향 기반 유형 QR-BDPCM 기술의 적용을 표시하는 데 사용된다.
E7. 항목 E5의 방법에 있어서, 제2 플래그의 값이 제1 플래그의 값으로부터 유추된다.
E8. 항목 E5의 방법에 있어서, 제1 플래그의 값은 시그널링 되지 않고 제2 플래그의 값으로부터 유추된다.
E9. 항목 E8의 방법에 있어서, 제2 플래그의 값이 참인 경우, 제1 플래그의 값이 시그널링 되지 않고 참으로 유추된다.
E10. 항목 E7의 방법에 있어서, 제1 플래그 및 제2 플래그는 불린 값(Boolean value)을 취하고,
제1 플래그의 값이 불린 참(Boolean true)인 것으로 결정되면 제2 플래그의 값을 불린 참으로 유추하는 것으로 추가로 결정하는 단계를 추가로 포함한다.
E11. 항목 E7의 방법에 있어서, 제1 플래그 및 제2 플래그는 불린 값을 취하고,
제1 플래그의 값이 불린 거짓(Boolean false)인 것으로 결정되면 제2 플래그의 값을 불린 거짓으로 유추하는 것으로 결정하는 단계를 추가로 포함한다.
F1. 비주얼 미디어 인코딩 방법에 있어서:
조건에 기초하여 분리 또는 듀얼 트리(dual tree)의 선택적인 적용과 관련하여, 비주얼 미디어 데이터의 비디오 영역에 있는 하나 이상의 비디오 블록을 비주얼 미디어 데이터의 비트 스트림 표현으로 인코딩 하기 위한 결정을 내리는 단계; 및
비트 스트림 표현에서 분리 또는 듀얼 트리의 선택적 적용을 나타내는 신택스 요소를 포함하는 단계를 포함한다.
F2. 비주얼 미디어 디코딩 방법에 있어서,
하나 이상의 비디오 블록을 포함하는 비디오 영역을 포함하는 비주얼 미디어 데이터의 비트 스트림 표현으로부터 신택스 요소를 파싱하는 단계 - 신택스 요소는 조건에 기초하거나 조건으로부터 유추된 분리 또는 듀얼 트리의 선택적 적용을 나타냄 -; 및
신택스 요소에 따라 하나 이상의 비디오 블록을 디코딩 함으로써 비트 스트림 표현으로부터 디코딩 된 비디오 영역을 생성하는 단계를 포함한다.
F3. 항목 F1 내지 F2 중 어느 하나 이상의 방법에 있어서, 조건은 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU), LCU 행, LCU의 그룹, 코딩 유닛(CU) 또는 비디오 데이터 유닛에서 시그널링 되는 메시지에 기초한다.
F4. 항목 F1 내지 F2 중 어느 하나 이상의 방법에 있어서, 조건은 현재 비디오 블록을 포함하는 슬라이스, 타일, 최대 코딩 단위(LCU), LCU 행, LCU의 그룹 또는 비디오 데이터 단위가 스크린 콘텐츠인지 여부를 결정하는 단계에 기초한다.
F5. 항목 F3의 방법에 있어서, 조건이 하기 중 하나 이상을 포함한다:
(1) 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU), LCU 행, LCU의 그룹, 코딩 유닛(CU) 또는 비디오 데이터 유닛에서 시그널링 되는 메시지,
(2) 현재 비디오 블록의 블록 범위 또는 현재 비디오 블록의 적어도 하나의 이웃 블록,
(3) 현재 비디오 블록 또는 적어도 하나의 이웃 블록의 블록 형태,
(4) 현재 비디오 블록 또는 적어도 하나의 이웃 블록의 현재 양자화 파라미터(QP),
(5) 현재 비디오 블록의 컬러 포맷의 표시,
(6) 현재 비디오 블록과 연관된 분리 또는 듀얼 코딩 트리 구조,
(7) 현재 비디오 블록의 슬라이스 유형, 타일 그룹 유형 또는 픽처 유형, 또는
(8) 시간 계층 식별(ID).
F6. 항목 A1 내지 F5 중 어느 하나 이상에서 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코더 장치.
F7. 항목 A1 내지 F5 중 어느 하나 이상에서 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코더 장치.
F8. 코드가 저장된 컴퓨터 판독 가능 매체로서, 코드는 항목 A1 내지 F5 중 어느 하나 이상에 인용된 방법을 구현하기 위한 프로세서 실행 가능 명령어를 구현한다.
B1. 비주얼 미디어 인코딩 방법에 있어서:
비주얼 미디어 데이터의 비디오 영역에서 현재 비디오 블록을 비주얼 미디어 데이터의 비트 스트림 표현으로 인코딩 하기 위해, 변환을 적용하지 않고 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차가 비트 스트림 표현으로 표현되는 변환 스킵 모드를 사용하는 단계; 및
현재 비디오 블록을 복수의 계수 그룹으로 분할하는 것에 기초하여 현재 비디오 블록과 연관된 계수 그룹에서 하나 이상의 이웃 비디오 블록의 부호 플래그에 따라 현재 비디오 블록의 부호 플래그의 컨텍스트를 선택하는 단계를 포함한다.
B2. 비주얼 미디어 디코딩 방법에 있어서:
현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차가 변환을 적용하지 않고 비트 스트림 표현으로 표현되는 변환 스킵 모드에서 사용된 부호 플래그의 컨텍스트를 식별하기 위해 현재 비디오 블록을 포함하는 비디오 영역을 포함하는 비주얼 미디어 데이터의 비트 스트림 표현을 파싱 하는 단계; 및
부호 플래그의 컨텍스트가 현재 비디오 블록을 복수의 계수 그룹으로 분할하는 것에 기초하여 현재 비디오 블록과 연관된 계수 그룹의 하나 이상의 이웃하는 비디오 블록의 부호 플래그에 따르도록 비트 스트림 표현으로부터 디코딩 된 비디오 영역을 생성하는 단계를 포함한다.
B3. 항목 B1 내지 B2 중 어느 하나 이상의 방법에 있어서, 현재 비디오 블록의 하나 이상의 이웃 비디오 블록은 왼쪽 이웃 및/또는 위쪽 이웃 및/또는 위쪽 왼쪽 이웃 및/또는 위쪽 오른쪽 이웃을 포함한다.
B4. 항목 B1 내지 B3 중 어느 하나 이상의 방법에 있어서, 현재 비디오 블록의 부호 플래그의 컨텍스트와 하나 이상의 이웃 비디오 블록의 부호 플래그 사이의 관계는:
C = (L + A)로 표현되고, 여기서 C는 현재 비디오 블록의 부호 플래그 컨텍스트의 컨텍스트 ID이고, L은 현재 비디오 블록의 왼쪽 이웃의 부호 플래그이고, A는 현재 비디오 블록의 위쪽 이웃의 부호 플래그이다.
B5. 항목 B1 내지 B3 중 어느 하나 이상의 방법에 있어서, 현재 비디오 블록의 부호 플래그의 컨텍스트와 하나 이상의 이웃 비디오 블록의 부호 플래그 사이의 관계는:
C = (L + A*2)로 표현되고, 여기서 C는 현재 비디오 블록의 부호 플래그 컨텍스트의 컨텍스트 ID이고, L은 현재 비디오 블록의 왼쪽 이웃의 부호 플래그이고, A는 현재 비디오 블록의 위쪽 이웃의 부호 플래그이다.
B6. 항목 B1 내지 B3 중 어느 하나 이상의 방법에 있어서, 현재 비디오 블록의 부호 플래그의 컨텍스트와 하나 이상의 이웃 비디오 블록의 부호 플래그 사이의 관계는:
C = (L *2+ A)로 표현되고, 여기서 C는 현재 비디오 블록의 부호 플래그 컨텍스트의 컨텍스트 ID이고, L은 현재 비디오 블록의 왼쪽 이웃의 부호 플래그이며, A는 현재 비디오 블록의 위쪽 이웃의 부호 플래그이다.
B7. 항목 B1 내지 B3 중 어느 하나 이상의 방법에 있어서, 현재 비디오 블록의 부호 플래그의 컨텍스트는 다음의 규칙:
한 쌍의 이웃 비디오 블록의 부호 플래그가 모두 음수이면, 상기 규칙은 상기 부호 플래그의 제1 컨텍스트를 선택하도록 지정하는, 규칙에 따라 상기 하나 이상의 이웃 비디오 블록의 부호 플래그에 기초한다.
B8. 비주얼 미디어 처리 방법에 있어서:
현재 비디오 블록이 복수의 계수 위치로 분할될 때 비주얼 미디어 데이터의 현재 비디오 블록과 연관된 현재 계수의 위치를 결정하는 단계;
적어도 하나 이상의 이웃 계수의 부호 플래그에 기초하여, 현재 계수에 대한 부호 플래그의 컨텍스트를 유도하는 단계; 및
컨텍스트에 기초하여, 현재 계수에 대한 부호 플래그를 생성하는 단계 - 현재 계수의 부호 플래그는 현재 비디오 블록이 변환을 적용하지 않고 코딩 되는 변환 스킵 모드에서 사용됨 - 를 포함한다.
B9. 항목 B8의 방법에 있어서, 현재 비디오 블록의 하나 이상의 이웃 계수는 왼쪽 이웃 및/또는 위쪽 이웃을 포함한다.
B10. 항목 B8의 방법에 있어서, 현재 계수에 대한 부호 플래그의 컨텍스트는 현재 계수의 위치에 더 기초한다.
B11. 항목 B8의 방법에 있어서, 비주얼 미디어 처리는 비트 스트림 표현으로부터 현재 비디오 블록을 디코딩 하는 것을 포함한다.
B12. 항목 B8의 방법에 있어서, 비주얼 미디어 처리는 현재 비디오 블록을 비트 스트림 표현으로 인코딩 하는 것을 포함한다.
B13. 항목 B1 내지 B3 또는 B8 내지 B12 중 어느 하나 이상의 방법에 있어서, 현재 비디오 블록의 부호 플래그의 컨텍스트는 규칙:
한 쌍의 이웃 비디오 블록 중 하나의 부호 플래그만 음수이면, 규칙은 부호 플래그의 제2 컨텍스트를 선택하도록 지정하는, 규칙에 따라 상기 하나 이상의 이웃 비디오 블록의 부호 플래그에 기초한다.
B14. 항목 B1 내지 B3 또는 B8 내지 B12 중 어느 하나 이상의 방법에 있어서, 현재 비디오 블록의 부호 플래그의 컨텍스트는 규칙:
한 쌍의 이웃 비디오 블록의 부호 플래그가 모두 양수이면, 규칙은 부호 플래그의 세 번째 컨텍스트를 선택하도록 지정하는, 규칙에 따라 상기 하나 이상의 이웃 비디오 블록의 부호 플래그에 기초한다.
B15. 항목 B1 내지 B3 또는 B8 내지 B12 중 어느 하나 이상의 방법에 있어서, 현재 비디오 블록의 부호 플래그의 컨텍스트는 복수의 계수 그룹에서 계수 그룹의 위치에 더 기초한다.
B16. 항목 B10의 방법에 있어서, 부호 플래그의 컨텍스트는 (x+y), min(x, y) 또는 max(x, y) 중 적어도 하나에 기초하고, 여기서 x 및 y는 각각 계수 그룹의 위치의 수평 값 및 수직 값이다.
B17. 항목 B1 내지 B16 중 어느 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코더 장치.
B18. 항목 B1 내지 B16 중 어느 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코더 장치.
B19. 코드가 저장된 컴퓨터 판독 가능 매체로서, 코드는 항목 B1-B19 중 어느 하나 이상에서 인용된 방법을 구현하기 위한 프로세서 실행 가능 명령을 구현한다.
본 문서에서 "비디오 처리" 또는 "비주얼 미디어 처리"라는 용어는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축 해제를 의미할 수 있다. 예를 들어, 비디오 압축 알고리즘은 비디오의 픽셀 표현에서 대응하는 비트 스트림 표현으로 또는 그 반대로 변환하는 동안 적용될 수 있다. 현재 비디오 블록의 비트 스트림 표현은, 예를 들어, 신택스에 의해 정의된 바와 같이 비트 스트림 내의 다른 위치에 함께 배치되거나 확산되는 비트에 대응할 수 있다. 예를 들어, 매크로블록은 변환 및 코딩 된 오류 잔차 값의 관점에서 그리고 또한 헤더의 비트 및 비트 스트림의 다른 필드를 사용하여 인코딩될 수 있다.
전술한 내용으로부터, 현재 개시된 기술의 특정 실시예가 예시의 목적으로 여기에 설명되었지만, 본 발명의 범위를 벗어나지 않고 다양한 수정이 이루어질 수 있다는 것이 이해될 것이다. 따라서, 현재 개시된 기술은 첨부된 청구범위에 의한 경우를 제외하고는 제한되지 않는다.
이 특허 문서에 설명된 주제 및 기능적 동작의 구현은 본 명세서에 개시된 구조 및 이들의 구조적 등가물, 또는 이들 중 하나 이상의 조합을 포함하는 다양한 시스템, 디지털 전자 회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있다. 본 명세서에 기술된 주제의 구현은 하나 이상의 컴퓨터 프로그램 제품으로 구현될 수 있으며, 즉, 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 작동을 제어하기 위해 유형의 비일시적 컴퓨터 판독 가능 매체에 인코딩된 컴퓨터 프로그램 명령의 하나 이상의 모듈이다. 컴퓨터 판독 가능 매체는 기계 판독 가능 저장 장치, 기계 판독 가능 저장 기판, 메모리 장치, 기계 판독 가능 전파 시그널링에 영향을 미치는 물질의 구성, 또는 이들 중 하나 이상의 조합일 수 있다. "데이터 처리 장치" 또는 "데이터 처리 장치"라는 용어는 예를 들어 프로그램 가능한 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 장치, 장치 및 기계를 포함한다. 하드웨어 외에도, 장치는 해당 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 응용 프로그램, 스크립트 또는 코드라고도 함)은 컴파일된 언어나 해석된 언어를 포함한 모든 형태의 프로그래밍 언어로 작성할 수 있고, 독립 실행형 프로그램 또는 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 유닛을 포함하여 모든 형태로 배포될 수 있다. 컴퓨터 프로그램이 반드시 파일 시스템의 파일과 일치하는 것은 아니다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일부, 해당 프로그램 전용 단일 파일 또는 여러 조정 파일에 저장할 수 있다(예를 들어, 하나 이상의 모듈, 하위 프로그램 또는 코드 부분을 저장하는 파일). 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 있거나 여러 사이트에 분산되어 있고 통신 네트워크로 상호 연결된 여러 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에 설명된 프로세스 및 논리 흐름은 입력 데이터에 대해 작동하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능한 프로세서에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 또한 특수 목적 논리 회로, 예를 들어 FPGA(필드 프로그램 가능 게이트 어레이) 또는 ASIC(응용 특정 집적 회로)에 의해 수행될 수 있고 장치는 또한 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예를 들어 범용 및 특수 목적 마이크로프로세서, 및 어느 종류의 디지털 컴퓨터의 어느 하나 이상의 프로세서를 포함한다. 일반적으로 프로세서는 읽기 전용 메모리나 랜덤 액세스 메모리 또는 둘 다에서 명령과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령을 수행하기 위한 프로세서와 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치, 예를 들어 자기, 광자기 디스크, 또는 광 디스크로부터 데이터를 수신하거나 이들로 데이터를 전송하거나 둘 모두를 포함하거나 작동 가능하게 연결된다. 그러나 컴퓨터에는 그러한 장치가 필요하지 않는다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는 모든 형태의 비휘발성 메모리, 매체 및 반도체 메모리 장치, 예를 들어, EPROM, EEPROM 및 플래시 메모리 장치를 포함하는 메모리 장치를 포함한다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
본 명세서는 도면과 함께 단지 예시적인 것으로 간주되어야 하며, 여기서 예시적인 것은 예시를 의미한다. 본 명세서에 사용된 바와 같이, 단수 형태 "한(a)", "한(an)" 및 "그(the)"는 문맥이 명백하게 달리 나타내지 않는 한 복수 형태도 포함하는 것으로 의도된다. 추가적으로, "또는"의 사용은 문맥이 명백하게 달리 나타내지 않는 한 "및/또는"을 포함하도록 의도된다.
이 특허 문서에는 많은 세부 사항이 포함되어 있지만, 이는 모든 발명의 범위 또는 청구될 수 있는 것에 대한 제한으로 해석되어서는 안 되며 오히려 특정 발명의 특정 실시측면에 특정한 특징에 대한 설명으로 해석되어서는 안 된다. 별도의 실시예와 관련하여 이 특허 문서에 설명된 특정 특징은 단일 실시예에서 조합하여 구현될 수도 있다. 역으로, 단일 실시예의 맥락에서 설명된 다양한 특징은 또한 개별적으로 또는 어느 적절한 서브 조합으로 다중 실시예에서 구현될 수 있다. 또한, 특징이 특정 조합으로 작용하는 것으로 위에서 설명될 수 있고 초기에 그렇게 청구된 경우에도 청구된 조합의 하나 이상의 특징이 일부 경우에 조합에서 제거될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
유사하게, 작업이 도면에 특정 순서로 도시되어 있지만, 이는 바람직한 결과를 달성하기 위해 그러한 작업이 도시된 특정 순서로 또는 순차적인 순서로 수행되거나 도시된 모든 작업이 수행될 것을 요구하는 것으로 이해되어서는 안 된다. 또한, 이 특허 문서에 설명된 실시예에서 다양한 시스템 컴포넌트의 분리가 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안 된다.
몇 가지 구현 및 예만 설명되어 있으며 이 특허 문서에 설명 및 예시된 내용에 기초하여 다른 구현, 개선 및 변형이 이루어질 수 있다.
5. 개시된 기술의 추가 실시예
5.1 듀얼 트리 관련 구현
JVET-N1001-v7에서 제공한 초안 상단의 변경 사항은 굵게, 밑줄, 기울임꼴 텍스트로 강조 표시된다. 이 문서의 아래 및 다른 곳에서 나타나는 굵은 굵은 글꼴은 VVC 표준에서 잠재적으로 삭제될 텍스트를 나타낸다.
5.1.1 실시예 #1
Figure pct00020
5.1.2 실시예 #2
7.3.2.3 시퀀스 파라미터 세트 RBSP 신택스
Figure pct00021
5.1.3 실시예 #3
7.3.5 슬라이스 헤더 신택스
7.3.5.1 일반 슬라이스 헤더 신택스
Figure pct00022
sps_asdt_flag가 1이면 제안된 방법이 현재 시퀀스에서 활성화될 수 있음을 지정한다. 0과 같으면 제안된 방법이 현재 시퀀스에서 활성화될 수 없음을 지정한다. sps_ASDT_flag가 없으면 0으로 유추된다.
1과 동일한 slice_asdt_flag는 제안된 방법이 현재 슬라이스에서 활성화될 수 있음을 지정한다. 0과 같으면 현재 슬라이스에서 제안된 방법을 활성화할 수 없음을 지정한다. slice_ASDT_flag가 존재하지 않으면 0과 같은 것으로 유추된다.
7.3.7.2 코딩 트리 유닛 신택스
Figure pct00023
1과 동일한 ctu_ dual_tree_intra_flag는 현재 CTU가 듀얼 트리 코딩 구조를 사용함을 지정한다. 0과 같으면 현재 CTU가 싱글 트리 코딩 구조를 사용하도록 지정한다. ctu_ dual_tree_intra_flag가 존재하지 않을 때, 0과 같은 것으로 유추된다.
5.1.4 실시예 #4
7.3.5 슬라이스 헤더 신택스
7.3.5.1 일반 슬라이스 헤더 신택스
Figure pct00024
sps_asdt_flag가 1이면 제안된 방법이 현재 시퀀스에서 활성화될 수 있음을 지정한다. 0과 같으면 제안된 방법이 현재 시퀀스에서 활성화될 수 없음을 지정한다. sps_ASDT_flag가 없으면 0으로 유추된다.
1과 동일한 slice_asdt_flag는 제안된 방법이 현재 슬라이스에서 활성화될 수 있음을 지정한다. 0과 같으면 현재 슬라이스에서 제안된 방법을 활성화할 수 없음을 지정한다. slice_ASDT_flag가 존재하지 않으면 0과 같은 것으로 유추된다.
7.3.7.2 코딩 트리 유닛 신택스
Figure pct00025
1과 동일한 ctu_ dual_tree_intra_flag는 현재 CTU가 듀얼 트리 코딩 구조를 사용함을 지정한다. 0과 같으면 현재 CTU가 싱글 트리 코딩 구조를 사용하도록 지정한다. ctu_ dual_tree_intra_flag가 존재하지 않을 때, 0과 같은 것으로 유추된다.
5.2 IBC 관련 구현예
7.3.7.5 코딩 유닛 신택스
Figure pct00026
8.6 IBC 예측 모드에서 코딩 된 코딩 유닛에 대한 디코딩 프로세스
8.6.1 IBC 예측 모드에서 코딩 된 코딩 유닛에 대한 일반 디코딩 프로세스
이 프로세스에 대한 입력은 다음과 같다:
현재 픽처의 왼쪽 상단 루마 샘플에 대한 현재 코딩 블록의 왼쪽 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
루마 샘플에서 현재 코딩 블록의 너비를 지정하는 변수 cbWidth,
루마 샘플에서 현재 코딩 블록의 높이를 지정하는 변수 cbHeight,
싱글 또는 듀얼 트리가 사용되는지 여부를 지정하는 변수 treeType 및 듀얼 트리가 사용되는 경우 현재 트리가 루마 또는 크로마 컴포넌트에 대응하는지 여부를 지정한다.
이 프로세스의 출력은 인루프 필터링 이전에 수정된 재구성된 픽처다.
8.7.1 절에 지정된 양자화 파라미터에 대한 유도 프로세스는 입력으로 루마 위치( xCb, yCb ), 루마 샘플 cbWidth의 현재 코딩 블록 너비 및 루마 샘플 cbHeight의 현재 코딩 블록 높이 및 변수 treeType을 사용하여 호출된다.
ibc 예측 모드로 코딩 된 코딩 유닛에 대한 디코딩 프로세스는 다음과 같은 순서화된 단계로 구성된다:
1. 현재 코딩 유닛의 모션 벡터 성분은 다음과 같이 유도된다:
1. TREETYPE이 SINGLE_TREE 또는 DUAL_TREE_LUMA와 같으면 다음이 적용된다:
- 8.6.2.1 절에 지정된 모션 벡터 컴포넌트에 대한 유도 프로세스는 루마 코딩 블록 위치( xCb, yCb ), 루마 코딩 블록 너비 cbWidth 및 루마 코딩 블록 높이 cbHeight를 입력으로 사용하고 루마 모션 벡터 mvL[ 0 ][ 0 ]을 출력으로 사용하여 호출된다.
-treeType이 SINGLE_TREE와 같을 때 8.6.2.5 절의 크로마 모션 벡터에 대한 유도 프로세스는 입력으로 루마 모션 벡터 mvL[ 0 ][ 0 ], 출력으로 크로마 모션 벡터 mvC[ 0 ][ 0 ]를 사용하여 호출된다.
- 수평 방향 numSbX 및 수직 방향 numSbY의 루마 코딩 서브 블록의 수는 둘 다 1과 동일하게 설정된다.
1. 그렇지 않고 TREETYPE이 DUAL_TREE_CHROMA와 같으면 다음이 적용된다:
- 수평 방향 NUMSBX 및 수직 방향 NUMSBY의 루마 코딩 서브 블록 수는 다음과 같이 유도된다:
NUMSBX = ( CBWIDTH >> 2 ) (8-871)
NUMSBY = ( CBHEIGHT >> 2 ) (8-872)
- 크로마 모션 벡터 MVC[ XSBIDX ][ YSBIDX ]는 XSBIDX = 0..NUMSBX - 1, YSBIDX = 0..NUMSBY - 1에 대해 다음과 같이 유도된다:
- 루마 모션 벡터 MVL[ XSBIDX ][ YSBIDX ]은 다음과 같이 유도된다:
- 배치된 루마 코딩 장치의 위치( XCUY, YCUY )는 다음과 같이 유도된다:
XCUY = XCB + XSBIDX*4 (8-873)
YCUY = YCB + YSBIDX*4 (8-874)
- CUPREDMODE[ XCUY ][ YCUY ]가 MODE_INTRA와 같으면 다음이 적용된다:
MVL[ XSBIDX ][ YSBIDX ][ 0 ] = 0 (8-875)
MVL[ XSBIDX ][ YSBIDX ][ 1 ] = 0 (8-876)
PREDFLAGL0[ XSBIDX ][ YSBIDX ] = 0 (8-877)
PREDFLAGL1[ XSBIDX ][ YSBIDX ] = 0 (8-878)
- 그렇지 않으면( CUPREDMODE[ XCUY ][ YCUY ] IS MODE_IBC ), 다음이 적용된다:
MVL[ XSBIDX ][ YSBIDX ][ 0 ]=MVL0[ XCUY ][ YCUY ][ 0 ] (8-879)
MVL[ XSBIDX ][ YSBIDX ][ 1 ]=MVL0[ XCUY ][ YCUY ][ 1 ] (8-880)
PREDFLAGL0[ XSBIDX ][ YSBIDX ] = 1 (8-881)
PREDFLAGL1[ XSBIDX ][ YSBIDX ] = 0 (8-882)
- 8.6.2.5 절의 크로마 모션 벡터에 대한 유도 프로세스는 MVL[ XSBIDX ][ YSBIDX ]를 입력으로, MVC[ XSBIDX ][ YSBIDX ]를 출력으로 사용하여 호출된다.
- 크로마 모션 벡터 MVC[ XSBIDX ][ YSBIDX ]가 다음 제약 조건을 준수해야 하는 것은 비트 스트림 적합성의 요구 사항이다:
- 6.4.X절에서 지정된바와 같이 블록 가용성에 대한 유도 프로세스 [ED. (BB): 이웃 블록 가용성 확인 프로세스 TBD]가 입력으로 ( XCB / SUBWIDTHC, YCB / SUBHEIGHTC )로 설정된 현재 크로마 위치( XCURR, YCURR ) 및 이웃 크로마 위치 ( XCB / SUBWIDTHC + ( MVC[ XSBIDX ][ YSBIDX ][ 0 ] >> 5 ), YCB / SUBHEIGHTC + ( MVC[ XSBIDX ][ YSBIDX ][ 1 ] >> 5 ) ) 을 사용하여 호출될 때, 출력은 TRUE와 동일해야 한다.
- 6.4.X절에서 지정된바와 같이 블록 가용성에 대한 유도 프로세스 [ED. (BB): 이웃 블록 가용성 확인 프로세스 TBD]가 입력으로 ( XCB / SUBWIDTHC, YCB / SUBHEIGHTC ) 로 설정된 현재 크로마 위치( XCURR, YCURR ) 및 이웃 크로마 위치 ( XCB / SUBWIDTHC + ( MVC[ XSBIDX ][ YSBIDX ][ 0 ] >> 5 ) + CBWIDTH / SUBWIDTHC - 1, YCB / SUBHEIGHTC + ( MVC[ XSBIDX ][ YSBIDX >> ][ 1)] + CBHEIGHT / SUBHEIGHTC - 1 )를 사용하여 호출될 때, 출력이 TRUE와 동일해야 한다.
- 다음 조건 중 하나 또는 둘 모두가 참이어야 한다:
-( MVC[ XSBIDX ][ YSBIDX ][ 0 ] >> 5 ) + XSBIDX * 2 + 2는 0보다 작거나 같다.
- ( MVC[ XSBIDX ][ YSBIDX ][ 1 ] >> 5 ) + YSBIDX * 2 + 2는 0보다 작거나 같다.
2. 현재 코딩 유닛의 예측 샘플은 다음과 같이 유도된다:
- TREETYPE이 SINGLE_TREE 또는 DUAL_TREE_LUMA와 같으면 현재 코딩 유닛의 예측 샘플은 다음과 같이 유도된다:
● 8.6.3.1 절에 지정된 ibc 블록에 대한 디코딩 프로세스는 입력으로 루마 코딩 블록 위치( xCb, yCb ), 루마 코딩 블록 너비 cbWidth 및 루마 코딩 블록 높이 cbHeight, 수평 방향 numSbX 및 수직 방향 numSbY의 루마 코딩 서브 블록의 수, xSbIdx = 0..numSbX - 1 및 ySbIdx = 0..numSbY - 1인 루마 모션 벡터 mvL[ xSbIdx ][ ySbIdx ], 및 0으로 설정된 변수 cIdx, 및 출력으로 예측 루마 샘플의 (cbWidth)x(cbHeight) 배열 predSamplesL인 ibc 예측 샘플(predSamples)을 사용하여 호출된다.
- 그렇지 않으면, treeType이 SINGLE_TREE 또는 DUAL_TREE_CHROMA와 같으면 현재 코딩 유닛의 예측 샘플은 다음과 같이 유도된다:
● 8.6.3.1 절에 지정된 ibc 블록에 대한 디코딩 프로세스는 입력으로 루마 코딩 블록 위치( xCb, yCb ), 루마 코딩 블록 너비 cbWidth 및 루마 코딩 블록 높이 cbHeight, 수평 방향 numSbX 및 수직 방향 numSbY의 루마 코딩 서브 블록의 수, xSbIdx = 0..numSbX - 1 및 ySbIdx = 0..numSbY - 1인 크로마 모션 벡터 mvC[ xSbIdx ][ ySbIdx ], 및 1로 설정된 변수 cIdx, 및 출력으로 크로마 컴포넌트 Cb에 대한 예측 크로마 샘플의 (cbWidth / 2)x(cbHeight / 2) array predSamplesCb인 ibc 예측 샘플(predSamples)을 사용하여 호출된다.
● 8.6.3.1 절에 지정된 ibc 블록에 대한 디코딩 프로세스는 입력으로 루마 코딩 블록 위치( xCb, yCb ), 루마 코딩 블록 너비 cbWidth 및 루마 코딩 블록 높이 cbHeight, 수평 방향 numSbX 및 수직 방향 numSbY의 루마 코딩 서브 블록의 수, xSbIdx = 0..numSbX - 1 및 ySbIdx = 0..numSbY - 1인 크로마 모션 벡터 mvC[ xSbIdx ][ ySbIdx ], 및 2로 설정된 변수 cIdx, 및 출력으로 크로마 성분 Cr에 대한 예측 크로마 샘플의 (cbWidth/2)x(cbHeight/2) array predSamplesCr인 ibc 예측 샘플(predSamples)을 사용하여 호출된다.
3. 변수 NumSbX[ xCb ][ yCb ] 및 NumSbY[ xCb ][ yCb ]는 각각 numSbX 및 numSbY와 동일하게 설정된다.
4. 현재 코딩 유닛의 잔차 샘플은 다음과 같이 유도된다:
- TREETYPE이 SINGLE_TREE와 동일하거나 TREETYPE이 DUAL_TREE_LUMA와 동일할 때, 8.5.8 절에 지정된 바와 같이 인터 예측 모드로 코딩 된 코딩 블록의 잔차 시그널링에 대한 디코딩 프로세스는 입력으로 루마 위치( xCb, yCb )와 동일하게 설정된 위치( xTb0, yTb0 ), 루마 코딩 블록 너비 cbWidth와 동일하게 설정된 너비 nTbW, 루마 코딩 블록 높이 cbHeight와 동일하게 설정된 높이 nTbH 및 0과 동일한 변수 cIdxset, 및 출력으로 array resSamplesL을 사용하여 호출된다.
- treeType이 SINGLE_TREE와 동일하거나 TREETYPE이 DUAL_TREE_CHROMA와 동일할 때, 8.5.8 절에 지정된 바와 같이 인터 예측 모드로 코딩 된 코딩 블록의 잔차 시그널링에 대한 디코딩 프로세스는 입력으로 크로마 위치( xCb / 2, yCb / 2 )와 동일하게 설정된 위치( xTb0, yTb0 ), 크로마 코딩 블록 너비 cbWidth / 2와 동일하게 설정된 너비 nTbW, 크로마 코딩 블록 높이 cbHeight / 2와 동일한 높이 nTbH 세트 및 1과 동일한 변수 cIdxset, 및 출력으로 어레일 resSamplesCb을 사용하여 호출된다.
- treeType이 SINGLE_TREE와 동일하거나 TREETYPE이 DUAL_TREE_CHROMA와 동일할 때, 8.5.8 절에 지정된 바와 같이 인터 예측 모드로 코딩 된 코딩 블록의 잔차 시그널링에 대한 디코딩 프로세스는 입력으로 크로마 위치( xCb / 2, yCb / 2 )와 동일하게 설정된 위치( xTb0, yTb0 ), 크로마 코딩 블록 너비 cbWidth / 2와 동일하게 설정된 너비 nTbW, 크로마 코딩 블록 높이 cbHeight / 2와 동일한 높이 nTbH 세트 및 2과 동일한 변수 cIdxset, 및 출력으로 array resSamplesCb을 사용하여 호출된다.
5. 현재 코딩 유닛의 재구성된 샘플은 다음과 같이 유도된다:
- TREETYPE이 SINGLE_TREE와 동일하거나 TREETYPE이 DUAL_TREE_LUMA와 동일할 때, 8.7.5 절에 지정된 바와 같이 컬러 컴포넌트에 대한 픽처 재구성 프로세스는 입력으로 ( xCb, yCb )와 동일하게 설정된 블록 위치( xB, yB ), cbWidth와 동일하게 설정된 블록 너비 bWidth, cbHeight와 동일하게 설정된 블록 높이 bHeight, 0으로 설정된 변수 cIdxset, predSamplesL과 동일하게 설정된 (cbWidth)x(cbHeight) array predSamples 및 resSamplesL과 동일하게 설정된 (cbWidth)x(cbHeight) array resSamples, 및 출력으로 인루프 필터링 이전에 수정된 재구성된 픽처을 사용하여 호출된다.
- treeType이 SINGLE_TREE와 동일하거나 TREETYPE이 DUAL_TREE_LUMA와 동일할 때, 8.7.5 절에 지정된 바와 같이 컬러 컴포넌트에 대한 픽처 재구성 프로세스는 입력으로 ( xCb/2, yCb/2 )와 동일하게 설정된 블록 위치( xB, yB ), cbWidth/2와 동일하게 설정된 블록 너비 bWidth, cbHeight/2와 동일하게 설정된 블록 높이 bHeight, 1로 설정된 변수 cIdxset, predSamplesCb과 동일하게 설정된 (cbWidth / 2)x(cbHeight / 2) array predSamples 및 resSamplesCb과 동일하게 설정된 (cbWidth / 2)x(cbHeight / 2) array resSamples, 및 출력으로 인루프 필터링 이전에 수정된 재구성된 픽처을 사용하여 호출된다.
- treeType이 SINGLE_TREE와 동일하거나 TREETYPE이 DUAL_TREE_LUMA와 동일할 때, 8.7.5 절에 지정된 바와 같이 컬러 컴포넌트에 대한 픽처 재구성 프로세스는 입력으로 ( xCb/2, yCb/2 )와 동일하게 설정된 블록 위치( xB, yB ), cbWidth/2와 동일하게 설정된 블록 너비 bWidth, cbHeight/2와 동일하게 설정된 블록 높이 bHeight, 2로 설정된 변수 cIdxset, predSamplesCr과 동일하게 설정된 (cbWidth / 2)x(cbHeight / 2) array predSamples 및 resSamplesCr과 동일하게 설정된 (cbWidth / 2)x(cbHeight / 2) array resSamples, 및 출력으로 인루프 필터링 이전에 수정된 재구성된 픽처을 사용하여 호출된다.

Claims (19)

  1. 비주얼 미디어 인코딩 방법에 있어서,
    비주얼 미디어 데이터의 비디오 영역에서 현재 비디오 블록을 상기 비주얼 미디어 데이터의 비트 스트림 표현으로 인코딩 하기 위해, 변환을 적용하지 않고 상기 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차가 상기 비트 스트림 표현으로 표현되는 변환 스킵 모드를 사용하는 단계; 및
    상기 현재 비디오 블록을 복수의 계수 그룹으로 분할하는 것에 기초하여 상기 현재 비디오 블록과 연관된 계수 그룹에서 하나 이상의 이웃 비디오 블록의 부호 플래그에 따라 상기 현재 비디오 블록의 부호 플래그의 컨텍스트를 선택하는 단계를
    포함하는
    방법.
  2. 비주얼 미디어 디코딩 방법에 있어서,
    현재 비디오 블록과 레퍼런스 비디오 블록 사이의 예측 오차의 잔차가 변환을 적용하지 않고 비트 스트림 표현으로 표현되는 변환 스킵 모드에서 사용된 부호 플래그의 컨텍스트를 식별하기 위해 상기 현재 비디오 블록을 포함하는 비디오 영역을 포함하는 비주얼 미디어 데이터의 상기 비트 스트림 표현을 파싱 하는 단계; 및
    부호 플래그의 컨텍스트가 상기 현재 비디오 블록을 복수의 계수 그룹으로 분할하는 것에 기초하여 상기 현재 비디오 블록과 연관된 계수 그룹의 하나 이상의 이웃하는 비디오 블록의 상기 부호 플래그에 따르도록 상기 비트 스트림 표현으로부터 디코딩 된 비디오 영역을 생성하는 단계를
    포함하는
    방법.
  3. 제1항 또는 제2항에 있어서,
    상기 현재 비디오 블록의 하나 이상의 이웃 비디오 블록은 왼쪽 이웃 및/또는 위쪽 이웃 및/또는 위쪽 왼쪽 이웃 및/또는 위쪽 오른쪽 이웃을
    포함하는
    방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 현재 비디오 블록의 부호 플래그의 컨텍스트와 상기 하나 이상의 이웃 비디오 블록의 부호 플래그 사이의 관계는:
    C = (L + A) 로 표현되고,
    C는 상기 현재 비디오 블록의 부호 플래그 컨텍스트의 컨텍스트 ID이고, L은 상기 현재 비디오 블록의 왼쪽 이웃의 부호 플래그이고, 및 A는 상기 현재 비디오 블록의 위쪽 이웃의 부호 플래그인
    방법.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 현재 비디오 블록의 부호 플래그의 컨텍스트와 상기 하나 이상의 이웃 비디오 블록의 부호 플래그 사이의 관계는:
    C = (L + A*2) 로 표현되고,
    C는 상기 현재 비디오 블록의 부호 플래그 컨텍스트의 컨텍스트 ID이고, L은 상기 현재 비디오 블록의 왼쪽 이웃의 부호 플래그이고, 및 A는 상기 현재 비디오 블록의 위쪽 이웃의 부호 플래그인
    방법.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 현재 비디오 블록의 부호 플래그의 컨텍스트와 상기 하나 이상의 이웃 비디오 블록의 부호 플래그 사이의 관계는:
    C = (L *2+ A) 로 표현되고,
    C는 상기 현재 비디오 블록의 부호 플래그 컨텍스트의 컨텍스트 ID이고, L은 상기 현재 비디오 블록의 왼쪽 이웃의 부호 플래그이고, 및 A는 상기 현재 비디오 블록의 위쪽 이웃의 부호 플래그인
    방법.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 현재 비디오 블록의 부호 플래그의 컨텍스트는 다음의 규칙:
    한 쌍의 이웃 비디오 블록의 부호 플래그가 모두 음수이면, 상기 규칙은 상기 부호 플래그의 제1 컨텍스트를 선택하도록 지정하는,
    규칙에 따라 상기 하나 이상의 이웃 비디오 블록의 부호 플래그에 기초하는
    방법.
  8. 비주얼 미디어 처리 방법에 있어서,
    현재 비디오 블록이 복수의 계수 위치로 분할될 때 비주얼 미디어 데이터의 상기 현재 비디오 블록과 연관된 현재 계수의 위치를 결정하는 단계;
    적어도 하나 이상의 이웃 계수의 부호 플래그에 기초하여, 상기 현재 계수에 대한 부호 플래그의 컨텍스트를 유도하는 단계; 및
    컨텍스트에 기초하여 현재 계수에 대한 부호 플래그를 생성하는 단계 - 상기 현재 계수의 부호 플래그는 상기 현재 비디오 블록이 변환을 적용하지 않고 코딩 되는 변환 스킵 모드에서 사용됨 -
    를 포함하는
    방법.
  9. 제8항에 있어서,
    상기 현재 비디오 블록의 하나 이상의 이웃 계수는 왼쪽 이웃 및/또는 위쪽 이웃을 포함하는
    방법.
  10. 제8항에 있어서,
    상기 현재 계수에 대한 부호 플래그의 컨텍스트는 상기 현재 계수의 위치에 더 기초하는
    방법.
  11. 제8항에 있어서,
    상기 비주얼 미디어 처리는 상기 비트 스트림 표현으로부터 상기 현재 비디오 블록을 디코딩 하는 단계를 포함하는
    방법.
  12. 제8항에 있어서,
    상기 비주얼 미디어 처리는 상기 현재 비디오 블록을 상기 비트 스트림 표현으로 인코딩 하는 단계를 포함하는
    방법.
  13. 제1항 내지 제3항 또는 제8항 내지 제12항 중 어느 한 항에 있어서,
    상기 현재 비디오 블록의 부호 플래그의 컨텍스트는 규칙:
    한 쌍의 이웃 비디오 블록 중 하나의 부호 플래그만 음수이면, 상기 규칙은 부호 플래그의 제2 컨텍스트를 선택하도록 지정하는,
    규칙에 따라 상기 하나 이상의 이웃 비디오 블록의 부호 플래그에 기초하는
    방법.
  14. 제1항 내지 제3항 또는 제8항 내지 제12항 중 어느 한 항에 있어서,
    상기 현재 비디오 블록의 부호 플래그의 컨텍스트는 규칙:
    한 쌍의 이웃 비디오 블록의 부호 플래그가 모두 양수이면, 상기 규칙은 부호 플래그의 세 번째 컨텍스트를 선택하도록 지정하는,
    규칙에 따라 상기 하나 이상의 이웃 비디오 블록의 부호 플래그에 기초하는
    방법.
  15. 제1항 내지 제3항 또는 제8항 내지 제12항 중 어느 한 항에 있어서,
    상기 현재 비디오 블록의 부호 플래그의 컨텍스트는 또한 복수의 계수 그룹에서 상기 계수 그룹의 위치에 기초하는
    방법.
  16. 제10항에 있어서,
    상기 부호 플래그의 컨텍스트는 (x+y), min(x, y) 또는 max(x, y) 중 적어도 하나에 기초하고, 각각 상기 계수 그룹의 위치의 수평 값 및 수직 값인
    방법.
  17. 제1항 내지 제16항 중 어느 한 항의 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코더 장치.
  18. 제1항 내지 제16항 중 어느 한 항의 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코더 장치.
  19. 제1항 내지 제16항 중 어느 한 항의 방법을 구현하기 위한 프로세서 실행 가능 명령어를 구현하는 코드가 저장된 컴퓨터 판독가능 매체.
KR1020217030930A 2019-04-19 2020-04-17 변환 스킵 모드를 위한 컨텍스트 코딩 KR20210149043A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2019083366 2019-04-19
CNPCT/CN2019/083366 2019-04-19
PCT/US2020/028808 WO2020214980A1 (en) 2019-04-19 2020-04-17 Context coding for transform skip mode

Publications (1)

Publication Number Publication Date
KR20210149043A true KR20210149043A (ko) 2021-12-08

Family

ID=72837961

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217030930A KR20210149043A (ko) 2019-04-19 2020-04-17 변환 스킵 모드를 위한 컨텍스트 코딩

Country Status (12)

Country Link
US (2) US20210385439A1 (ko)
EP (1) EP3939251A4 (ko)
JP (2) JP7448559B2 (ko)
KR (1) KR20210149043A (ko)
CN (2) CN113711611B (ko)
AU (1) AU2020258477A1 (ko)
BR (1) BR112021020435A2 (ko)
CA (1) CA3137099A1 (ko)
MX (1) MX2021012516A (ko)
SG (1) SG11202111448WA (ko)
WO (2) WO2020214979A2 (ko)
ZA (1) ZA202107888B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023080518A1 (ko) 2021-11-02 2023-05-11 주식회사 엘지에너지솔루션 복수개의 파우치로 형성되는 이차전지용 파우치 및 그를 포함하는 이차전지

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113906753B (zh) 2019-04-24 2023-12-01 字节跳动有限公司 编解码视频的量化残差差分脉冲编解码调制表示的约束
CN117857783A (zh) 2019-05-01 2024-04-09 字节跳动有限公司 使用量化残差差分脉冲码调制编解码的帧内编解码视频
WO2020223615A1 (en) 2019-05-02 2020-11-05 Bytedance Inc. Coding mode based on a coding tree structure type
JP7265040B2 (ja) 2019-05-13 2023-04-25 北京字節跳動網絡技術有限公司 変換スキップ・モードのブロック寸法設定
US11523134B2 (en) * 2019-05-22 2022-12-06 Lg Electronics Inc. Image decoding method and device thereof
WO2020233664A1 (en) 2019-05-22 2020-11-26 Beijing Bytedance Network Technology Co., Ltd. Sub-block based use of transform skip mode
EP4000266A4 (en) 2019-08-20 2022-10-26 Beijing Bytedance Network Technology Co., Ltd. RESIDUAL CODING FOR TRANSFORM SKIP BLOCKS
KR20220045955A (ko) 2019-08-20 2022-04-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 위치 기반 계수 스케일링
EP4032289A4 (en) * 2019-09-19 2023-09-13 HFI Innovation Inc. RESIDUAL CODING SELECTION METHOD AND APPARATUS FOR LOSSLESS CODING MODE IN VIDEO CODING
US20230140628A1 (en) * 2021-11-04 2023-05-04 Meta Platforms, Inc. Novel buffer format for a two-stage video encoding process
WO2023160717A1 (en) * 2022-02-28 2023-08-31 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
US20240022739A1 (en) * 2022-07-12 2024-01-18 Tencent America LLC Ibc chroma block vector derivation from luma block vectors

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101483750B1 (ko) * 2009-07-24 2015-01-19 삼성전자주식회사 영상의 부호화 방법 및 장치, 영상 복호화 방법 및 장치
US10390046B2 (en) * 2011-11-07 2019-08-20 Qualcomm Incorporated Coding significant coefficient information in transform skip mode
US20130182772A1 (en) * 2012-01-13 2013-07-18 Qualcomm Incorporated Determining contexts for coding transform coefficient data in video coding
US9124872B2 (en) * 2012-04-16 2015-09-01 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
US9426466B2 (en) * 2012-06-22 2016-08-23 Qualcomm Incorporated Transform skip mode
US9264713B2 (en) * 2012-07-11 2016-02-16 Qualcomm Incorporated Rotation of prediction residual blocks in video coding with transform skipping
US9549182B2 (en) * 2012-07-11 2017-01-17 Qualcomm Incorporated Repositioning of prediction residual blocks in video coding
US20140286412A1 (en) * 2013-03-25 2014-09-25 Qualcomm Incorporated Intra dc prediction for lossless coding in video coding
GB201321851D0 (en) * 2013-12-10 2014-01-22 Canon Kk Run length parameters coding for palette mode
CN111064965B (zh) * 2014-03-16 2022-05-24 Vid拓展公司 用于无损视频译码的信令的方法、设备和计算机可读介质
WO2017041271A1 (en) * 2015-09-10 2017-03-16 Mediatek Singapore Pte. Ltd. Efficient context modeling for coding a block of data
US10440399B2 (en) * 2015-11-13 2019-10-08 Qualcomm Incorporated Coding sign information of video data
WO2017088093A1 (en) * 2015-11-23 2017-06-01 Mediatek Singapore Pte. Ltd. On the smallest allowed block size in video coding
PL3477949T3 (pl) * 2017-02-06 2024-02-19 Huawei Technologies Co., Ltd. Sposób i urządzenie do dekodowania obrazu z zastosowaniem informacji o podziale jednostki drzewa kodowania
KR20240031432A (ko) 2019-03-04 2024-03-07 엘지전자 주식회사 영상 코딩 시스템에서 컨텍스트 코딩된 사인 플래그를 사용하는 영상 디코딩 방법 및 그 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023080518A1 (ko) 2021-11-02 2023-05-11 주식회사 엘지에너지솔루션 복수개의 파우치로 형성되는 이차전지용 파우치 및 그를 포함하는 이차전지

Also Published As

Publication number Publication date
JP7448559B2 (ja) 2024-03-12
MX2021012516A (es) 2021-11-12
US20230012847A1 (en) 2023-01-19
CN113711611B (zh) 2024-03-19
US20210385439A1 (en) 2021-12-09
JP2022529169A (ja) 2022-06-17
WO2020214979A3 (en) 2021-04-29
CN113711611A (zh) 2021-11-26
JP2024026326A (ja) 2024-02-28
SG11202111448WA (en) 2021-11-29
ZA202107888B (en) 2024-02-28
EP3939251A1 (en) 2022-01-19
CA3137099A1 (en) 2020-10-22
AU2020258477A1 (en) 2021-11-11
WO2020214979A2 (en) 2020-10-22
EP3939251A4 (en) 2022-05-04
CN113711613A (zh) 2021-11-26
WO2020214980A1 (en) 2020-10-22
BR112021020435A2 (pt) 2021-12-14

Similar Documents

Publication Publication Date Title
KR20210149043A (ko) 변환 스킵 모드를 위한 컨텍스트 코딩
CN113728642B (zh) 编解码视频的量化残差差分脉冲编解码调制表示
CN113785568B (zh) 变换跳过模式下的信令通知
JP7288083B2 (ja) 符号化ツリー構造タイプに基づく符号化モード
KR102649584B1 (ko) 크로마 인트라 모드에 기초한 크기 제한
KR20220044278A (ko) 상이한 분할 구조들을 갖는 팔레트 모드
EP3954125A1 (en) Palette mode with intra block copy prediction
WO2020236719A2 (en) Transform design for large blocks in video coding
US20220210419A1 (en) Quantization parameter derivation for palette mode
WO2020243246A1 (en) Using coding tree structure type to control coding mode
KR20230003061A (ko) 모션 정밀 신택스을 위한 엔트로피 코딩
KR20220165277A (ko) 비디오 코딩에서 변환 스킵 블록들에 대한 최소 허용 양자화
WO2021108788A1 (en) Palette coding mode

Legal Events

Date Code Title Description
A201 Request for examination