KR20220044279A - 팔레트 이스케이프 심벌에 대한 엔트로피 코딩 - Google Patents

팔레트 이스케이프 심벌에 대한 엔트로피 코딩 Download PDF

Info

Publication number
KR20220044279A
KR20220044279A KR1020227004047A KR20227004047A KR20220044279A KR 20220044279 A KR20220044279 A KR 20220044279A KR 1020227004047 A KR1020227004047 A KR 1020227004047A KR 20227004047 A KR20227004047 A KR 20227004047A KR 20220044279 A KR20220044279 A KR 20220044279A
Authority
KR
South Korea
Prior art keywords
video
palette
current
block
video block
Prior art date
Application number
KR1020227004047A
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 KR20220044279A publication Critical patent/KR20220044279A/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/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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

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

Abstract

팔레트 모드 코딩 및 디코딩에서 팔레트 이스케이프 심벌에 대한 엔트로피 코딩을 수행하기 위한 방법들, 시스템들 및 디바이스들이 설명된다. 예시적인 비디오 프로세싱 방법은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 여기서 현재 비디오 블록에 대한 이스케이프 심벌의 이진화는 차수 K의 지수 골롬(EG) 코드를 사용하며, 여기서 K는 3과 동일하지 않은 음이 아닌 정수이고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용된다.

Description

팔레트 이스케이프 심벌에 대한 엔트로피 코딩
관련 출원에 대한 상호 참조
파리 협약에 따른 적용 가능한 특허법 및/또는 규칙들에 따라, 본 출원은 2019년 8월 15일에 출원된 국제 특허 출원 제PCT/CN2019/100850호, 2019년 9월 19일에 출원된 국제 특허 출원 제PCT/CN2019/106700호, 2019년 9월 24일에 출원된 국제 특허 출원 제PCT/CN2019/107494호, 2019년 9월 27일에 출원된 국제 특허 출원 제PCT/CN2019/108736호, 2019년 10월 1일에 출원된 국제 특허 출원 제PCT/CN2019/109793호, 2019년 10월 29일에 출원된 국제 특허 출원 제PCT/CN2019/113931호, 및 2020년 1월 9일에 출원된 국제 특허 출원 제PCT/CN2020/071221호에 대한 우선권 및 그 이익을 적시에 주장하기 위해 이루어졌다. 법에 따른 모든 목적들을 위해, 앞서 언급된 출원들의 전체 개시들은 본 출원의 개시의 일부로서 참고로 포함된다.
기술 분야
이 문서는 비디오 및 이미지 코딩 및 디코딩 기술들에 관한 것이다.
디지털 비디오는 인터넷 및 다른 디지털 통신 네트워크들에서 가장 많은 대역폭 사용을 차지한다. 비디오를 수신하고 디스플레이할 수 있는 연결된 사용자 디바이스들의 수가 증가함에 따라, 디지털 비디오 사용에 대한 대역폭 수요가 계속 증가할 것으로 예상된다.
개시된 기술들은 팔레트 모드 코딩 및 디코딩에서 팔레트 이스케이프 심벌에 대한 엔트로피 코딩을 수행하기 위해 비디오 또는 이미지 디코더 또는 인코더 실시예들에 의해 사용될 수 있다.
예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 여기서 현재 비디오 블록에 대한 이스케이프 심벌(escape symbol)의 이진화는 차수 K의 지수 골롬(EG) 코드를 사용하며, 여기서 K는 3과 동일하지 않은 음이 아닌 정수이고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하며 여기서 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용된다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 하나 이상의 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 하나 이상의 비디오 블록 중 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 여기서 현재 비디오 블록에 대한 이스케이프 심벌의 이진화는 고정 길이 이진화를 사용하며, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 여기서 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용된다.
또 다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 여기서 현재 비디오 블록의 이스케이프 심벌의 이진화는 가변 길이 코딩을 사용하며, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 여기서 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용된다.
또 다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 변환은 현재 비디오 블록에 대한 양자화 또는 역양자화 프로세스의 적용을 포함하고, 여기서 비트스트림 표현은 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩되는지 여부에 기초하여 양자화 또는 역양자화 프로세스의 적용을 구성하는 포맷 규칙을 준수하며, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현한다.
또 다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이, 현재 비디오 블록의 이스케이프 심벌이 이진 시프트 연산을 사용하여 양자화 및/또는 역양자화되도록, 표현된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 여기서 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용된다.
또 다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴의 하나 이상의 팔레트 인덱스는 참조 인덱스를 사용하지 않고 코딩되며, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현한다.
또 다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩되고 이스케이프 심벌의 인덱스와 비-이스케이프 심벌(non-escape symbol)의 인덱스 사이의 도출을 제약한다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 여기서 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용된다.
또 다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴의 도출된 팔레트 인덱스는 최댓값을 가지며, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현한다.
또 다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 이스케이프 심벌을 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 여기서 이스케이프 심벌을 나타내는 인덱스의 값은 하나 이상의 비디오 영역 각각에 대해 변경되지 않으며, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 여기서 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용된다.
또 다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 현재 인덱스 및 참조 인덱스에 기초하여 코딩되는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현한다.
또 다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 예측 코딩되는 이스케이프 심벌을 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 여기서 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용된다.
또 다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 팔레트 엔트리들을 인덱싱하기 위한 팔레트 인덱스에 기초한 콘텍스트로 런 길이 코딩되는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현한다.
또 다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 이전 팔레트 인덱스들과 독립적으로 시그널링되는 현재 팔레트 인덱스를 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현한다.
또 다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은, 정렬 규칙에 기초하여, 비디오의 하나 이상의 비디오 영역의 현재 비디오 블록에 대한 양자화 파라미터를 예측하는 데 사용되는 제1 이웃 비디오 블록 및 현재 비디오 블록의 코딩 모드를 예측 결정하는 데 사용되는 제2 이웃 비디오 블록을 결정하는 단계, 및 결정에 기초하여, 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다.
또 다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이, 현재 비디오 블록이 이스케이프 심벌을 포함하는지 여부에 관계없이, 블록 레벨 양자화 파라미터(QP) 차이를 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 여기서 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용된다.
또 다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 팔레트 블록에 대한 하나 이상의 코딩된 블록 플래그(CBF)를 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현한다.
또 다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 하나 이상의 팔레트 인덱스를 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 여기서 하나 이상의 팔레트 인덱스의 수(NumPltIdx)는 K보다 크거나 같으며, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고, 여기서 K는 양의 정수이다.
또 다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 현재 블록에 대한 팔레트의 최대 크기, 현재 비디오 블록의 크기, 무손실 모드의 사용 또는 양자화 파라미터(QP)에 기초한 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현한다.
또 다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은, 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 위해, 현재 비디오 블록이 블록 기반 차분 펄스 코드 변조(BDPCM) 모드로 코딩되고 다수의 변환 블록들 또는 서브블록들로 분할된다고 결정하는 단계, 및 변환을 수행하는 것의 일부로서, 결정에 기초하여 블록 레벨에서 잔차 예측을 수행하고 서브블록 또는 변환 블록 레벨에서 하나 이상의 잔차를 비트스트림 표현에 포함시키는 것을 수행하는 단계를 포함한다.
또 다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 현재 비디오 블록이 라인 기반 계수 그룹(CG) 팔레트 모드를 사용하여 코딩된다는 포맷 규칙을 준수하고, 여기서 라인 기반 CG 팔레트 모드는 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록의 각각의 코딩 유닛(CU)의 다수의 세그먼트들을 표현한다.
또 다른 예시적인 양태에서, 위에서 설명된 방법은 프로세서를 포함하는 비디오 인코더 장치에 의해 구현될 수 있다.
또 다른 예시적인 양태에서, 위에서 설명된 방법은 프로세서를 포함하는 비디오 디코더 장치에 의해 구현될 수 있다.
또 다른 예시적인 양태에서, 이러한 방법들은 프로세서 실행 가능 명령어들의 형태로 구체화되고 컴퓨터 판독 가능 프로그램 매체에 저장될 수 있다.
이들 및 다른 양태들이 본 문서에서 더 설명된다.
도 1은 팔레트 모드로 코딩되는 블록의 예를 도시한다.
도 2는 팔레트 엔트리들을 시그널링하기 위해 팔레트 예측자를 사용하는 것의 예를 도시한다.
도 3은 수평 트래버스 스캔 및 수직 트래버스 스캔의 예들을 도시한다.
도 4는 팔레트 인덱스들의 예시적인 코딩을 도시한다.
도 5a 및 도 5b는 최소 크로마 인트라 예측 유닛(smallest chroma intra prediction unit, SCIPU)의 예들을 도시한다.
도 6은 비디오 프로세싱에서의 인루프 필터링의 예의 블록 다이어그램을 도시한다.
도 7은 로컬 이중 트리 경우에서의 반복되는 팔레트 엔트리들의 예를 도시한다.
도 8은 콘텍스트 도출 프로세스에서 좌측 블록 및 위쪽 블록의 예를 도시한다.
도 9는 본 문서에 설명된 기술들을 구현하는 데 사용되는 하드웨어 플랫폼의 예의 블록 다이어그램이다.
도 10은 개시된 기술들이 구현될 수 있는 예시적인 비디오 프로세싱 시스템의 블록 다이어그램이다.
도 11은 본 개시의 일부 실시예들에 따른 비디오 코딩 시스템을 예시하는 블록 다이어그램이다.
도 12는 본 개시의 일부 실시예들에 따른 인코더를 예시하는 블록 다이어그램이다.
도 13은 본 개시의 일부 실시예들에 따른 디코더를 예시하는 블록 다이어그램이다.
도 14 내지 도 33은 예시적인 비디오 프로세싱 방법들의 플로차트들을 도시한다.
본 문서는 압축 해제되거나 디코딩된 디지털 비디오 또는 이미지들의 품질을 개선시키기 위해 이미지 또는 비디오 비트스트림들의 디코더에 의해 사용될 수 있는 다양한 기술들을 제공한다. 간결함을 위해, "비디오"라는 용어는 본 명세서에서 픽처들의 시퀀스(전통적으로 비디오라고 불림) 및 개별 이미지들 양쪽 모두를 포함하도록 사용된다. 게다가, 비디오 인코더는 또한 추가의 인코딩에 사용되는 디코딩된 프레임들을 재구성하기 위해 인코딩 프로세스 동안 이러한 기술들을 구현할 수 있다.
섹션 표제들은 이해의 편의를 위해 본 문서에서 사용되며 실시예들 및 기술들을 대응하는 섹션들로 제한하지 않는다. 이에 따라, 하나의 섹션으로부터의 실시예들은 다른 섹션들로부터의 실시예들과 결합될 수 있다.
1. 요약
이 문서는 비디오 코딩 기술들에 관한 것이다. 구체적으로, 이는 팔레트 코딩에서의 인덱스 및 이스케이프 심벌들 코딩에 관한 것이다. 이는 HEVC와 같은 기존의 비디오 코딩 표준, 또는 완성될 표준(다목적 비디오 코딩(Versatile Video Coding))에 적용될 수 있다. 이는 또한 미래의 비디오 코딩 표준들 또는 비디오 코덱에 적용 가능할 수 있다.
2. 배경
비디오 코딩 표준들은 주로 잘 알려진 ITU-T 및 ISO/IEC 표준들의 개발을 통해 발전해 왔다. ITU-T는 H.261 및 H.263 표준들을 만들었고, ISO/IEC는 MPEG-1 및 MPEG-4 Visual 표준들을 만들었으며, 두 조직은 공동으로 H.262/MPEG-2 Video 및 H.264/MPEG-4 AVC(Advanced Video Coding) 및 H.265/HEVC 표준들을 만들었다. H.262 이후로, 비디오 코딩 표준들은 시간 예측과 변환 코딩이 활용되는 하이브리드 비디오 코딩 구조를 기반으로 한다. HEVC 이후의 미래의 비디오 코딩 기술들을 탐구하기 위해, 2015년에 VCEG와 MPEG에 의해 공동으로 JVET(Joint Video Exploration Team)가 설립되었다. 그 이후로, 많은 새로운 방법들이 JVET에 의해 채택되었고 JEM(Joint Exploration Model)이라는 참조 소프트웨어에 추가되었다. 2018년 4월에, HEVC에 비해 50% 비트레이트 감소를 목표로 하는 VVC 표준에 대해 연구하기 위해 VCEG(Q6/16)와 ISO/IEC JTC1 SC29/WG11(MPEG) 간의 협력 하에 JVET(Joint Video Expert Team)가 만들어졌다.
VVC 초안의 최신 버전, 즉 Versatile Video Coding (Draft 6)은 http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/15_Gothenburg/wg11/JVET-O2001-v14.zip에 나와 있을 수 있다.
VTM이라는 이름의 VVC의 최신 참조 소프트웨어는 https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-5.0에 나와 있을 수 있다.
2.1 HEVC 스크린 콘텐츠 코딩 확장들( HEVC - SCC )에서의 팔레트 모드
2.1.1 팔레트 모드의 개념
팔레트 모드를 뒷받침하는 기본 아이디어는 CU에서의 픽셀들이 작은 대표 색상 값 세트에 의해 표현된다는 것이다. 이 세트는 팔레트라고 지칭된다. 이스케이프 심벌에 뒤이어 (어쩌면 양자화된) 성분 값들을 시그널링하는 것에 의해 팔레트 외부에 있는 샘플을 나타내는 것도 가능하다. 이러한 종류의 픽셀은 이스케이프 픽셀이라고 불린다. 팔레트 모드는 도 1에 예시되어 있다. 도 1에 묘사된 바와 같이, 3 개의 색상 성분(루마 및 2 개의 크로마 성분)을 갖는 각각의 픽셀에 대해, 팔레트에 대한 인덱스가 구축되고, 블록은 팔레트에서의 구축된 값들에 기초하여 재구성될 수 있다.
2.1.2 팔레트 엔트리들의 코딩
팔레트 엔트리들의 코딩을 위해, 팔레트 예측자가 유지된다. 팔레트는 물론 팔레트 예측자의 최대 크기는 SPS에서 시그널링된다. HEVC-SCC에서, palette_predictor_initializer_present_flag가 PPS에 도입된다. 이 플래그가 1일 때, 팔레트 예측자를 초기화하기 위한 엔트리들은 비트스트림에서 시그널링된다. 팔레트 예측자는 각각의 CTU 행, 각각의 슬라이스 및 각각의 타일의 시작 부분에서 초기화된다. palette_predictor_initializer_present_flag의 값에 따라, 팔레트 예측자는 0으로 리셋되거나 PPS에서 시그널링되는 팔레트 예측자 초기화기 엔트리들을 사용하여 초기화된다. HEVC-SCC에서, PPS 레벨에서의 팔레트 예측자 초기화의 명시적인 디스에이블을 가능하게 하기 위해 크기 0의 팔레트 예측자 초기화기가 인에이블되었다.
팔레트 예측자 내의 각각의 엔트리에 대해, 그것이 현재 팔레트의 일부인지 여부를 나타내기 위해 재사용 플래그가 시그널링된다. 이것은 도 2에 예시되어 있다. 재사용 플래그들은 제로들의 런 길이 코딩을 사용하여 송신된다. 이후에, 새로운 팔레트 엔트리들의 수가 차수 0의 지수 골롬(EG) 코드, 즉 EG-0을 사용하여 시그널링된다. 마지막으로, 새로운 팔레트 엔트리들에 대한 성분 값들이 시그널링된다.
2.1.3 팔레트 인덱스들의 코딩
팔레트 인덱스들은 도 3에 도시된 바와 같이 수평 트래버스 스캔 및 수직 트래버스 스캔을 사용하여 코딩된다. 스캔 순서는 palette_transpose_flag를 사용하여 비트스트림에서 명시적으로 시그널링된다. 나머지 하위 섹션에서는, 스캔이 수평이라고 가정된다.
팔레트 인덱스들은 두 가지 팔레트 샘플 모드: 'COPY_LEFT' 및 'COPY_ABOVE'를 사용하여 코딩된다. 'COPY_LEFT' 모드에서, 팔레트 인덱스가 디코딩된 인덱스에 할당된다. 'COPY_ABOVE' 모드에서, 위의 행에 있는 샘플의 팔레트 인덱스가 복사된다. 'COPY_LEFT' 모드 및 'COPY_ABOVE' 모드 양쪽 모두에 대해, 역시 동일한 모드를 사용하여 코딩되는 후속 샘플들의 수를 지정하는 런 값(run value)이 시그널링된다.
팔레트 모드에서, 이스케이프 심벌에 대한 인덱스의 값은 팔레트 엔트리들의 수이다. 그리고 이스케이프 심벌이 'COPY_LEFT’ 또는 'COPY_ABOVE' 모드에서 런의 일부일 때, 각각의 이스케이프 심벌에 대한 이스케이프 성분 값들이 시그널링된다. 팔레트 인덱스들의 코딩은 도 4에 예시되어 있다.
이 신택스 순서는 다음과 같이 달성된다. 먼저 CU에 대한 인덱스 값들의 수가 시그널링된다. 이에 이어서 절단된 이진 코딩(truncated binary coding)을 사용하는 전체 CU에 대한 실제 인덱스 값들의 시그널링이 뒤따른다. 인덱스들의 수는 물론 인덱스 값들 양쪽 모두는 바이패스 모드로 코딩된다. 이는 인덱스 관련 바이패스 빈들을 함께 그룹화한다. 이어서 팔레트 샘플 모드(필요한 경우)와 런이 인터리빙된 방식으로 시그널링된다. 마지막으로, 전체 CU에 대한 이스케이프 심벌들에 대응하는 성분 이스케이프 값들이 함께 그룹화되고 바이패스 모드로 코딩된다. 이스케이프 심벌들의 이진화는 차수 3의 EG 코딩, 즉 EG-3이다.
추가적인 신택스 요소인 last_run_type_flag는 인덱스 값들을 시그널링한 후에 시그널링된다. 이 신택스 요소는, 인덱스들의 수와 함께, 블록에서의 마지막 런에 대응하는 런 값을 시그널링할 필요성을 없애준다.
HEVC-SCC에서, 팔레트 모드는 또한 4:2:2, 4:2:0 및 단색(monochrome) 크로마 포맷들에 대해 인에이블된다. 팔레트 엔트리들 및 팔레트 인덱스들의 시그널링은 모든 크로마 포맷들에 대해 거의 동일하다. 비단색(non-monochrome) 포맷들의 경우, 각각의 팔레트 엔트리는 3 개의 성분으로 구성된다. 단색 포맷의 경우, 각각의 팔레트 엔트리는 단일 성분으로 구성된다. 서브샘플링된 크로마 방향들의 경우, 크로마 샘플들은 2로 나누어질 수 있는 루마 샘플 인덱스들과 연관된다. CU에 대한 팔레트 인덱스들을 재구성한 후에, 샘플이 그와 연관된 단일 성분만을 갖는 경우, 팔레트 엔트리의 첫 번째 성분만이 사용된다. 시그널링에서의 유일한 차이점은 이스케이프 성분 값들에 대한 것이다. 각각의 이스케이프 심벌에 대해, 시그널링되는 이스케이프 성분 값들의 수는 해당 심벌과 연관된 성분들의 수에 따라 상이할 수 있다.
추가적으로, 팔레트 인덱스 코딩에는 인덱스 조정 프로세스가 있다. 팔레트 인덱스를 시그널링할 때, 좌측 이웃 인덱스 또는 위쪽 이웃 인덱스는 현재 인덱스와 상이해야 한다. 따라서, 현재 팔레트 인덱스의 범위가 하나의 가능성을 제거하는 것에 의해 1만큼 감소될 수 있다. 그 후에, 인덱스는 절단된 이진(TB) 이진화를 사용하여 시그널링된다.
이 부분에 관련된 텍스트들은 다음과 같이 표시되며, 여기서 CurrPaletteIndex는 현재 팔레트 인덱스이고 adjustedRefPaletteIndex는 예측 인덱스이다.
변수 PaletteIndexMap[ xC ][ yC ]는 CurrentPaletteEntries에 의해 표현되는 어레이에 대한 인덱스인 팔레트 인덱스를 지정한다. 어레이 인덱스들 xC, yC는 픽처의 좌측 상단 루마 샘플을 기준으로 샘플의 위치 (xC, yC)를 지정한다. PaletteIndexMap[ xC ][ yC ]의 값은 0 내지 MaxPaletteIndex의 범위(경계 포함)에 있어야 한다.
변수 adjustedRefPaletteIndex는 다음과 같이 도출된다:
Figure pct00001
CopyAboveIndicesFlag[ xC ][ yC ]가 0과 동일할 때, 변수 CurrPaletteIndex는 다음과 같이 도출된다:
Figure pct00002
추가적으로, 팔레트 모드에서의 런 길이 요소들은 콘텍스트 코딩된다. JVET-O2011-vE에서 설명되는 관련 콘텍스트 도출 프로세스는 다음과 같다.
신택스 요소 palette_run_prefix에 대한 ctxInc의 도출 프로세스
이 프로세스에 대한 입력들은 빈 인덱스 binIdx 및 신택스 요소들 copy_above_palette_indices_flag 및 palette_idx_idc이다.
이 프로세스의 출력은 변수 ctxInc이다.
변수 ctxInc는 다음과 같이 도출된다:
- copy_above_palette_indices_flag가 0과 동일하고 binIdx가 0과 동일한 경우, ctxInc는 다음과 같이 도출된다:
Figure pct00003
- 그렇지 않은 경우, ctxInc는 표 1에 의해 제공된다:
표 1 - ctxIdxMap[ copy_above_palette_indices_flag ][ binIdx ]의 명세
Figure pct00004
2.2 VVC에서의 팔레트 모드
2.2.1 이중 트리에서의 팔레트
VVC에서, 이중 트리 코딩 구조는 인트라 슬라이스들을 코딩하는 데 사용되며, 따라서 루마 성분과 2 개의 크로마 성분이 상이한 팔레트 및 팔레트 인덱스들을 가질 수 있다. 추가적으로, 2 개의 크로마 성분은 동일한 팔레트 및 팔레트 인덱스들을 공유한다.
2.2.2 별도의 모드로서의 팔레트
JVET-N0258 및 현재 VTM에서, 코딩 유닛에 대한 예측 모드들은 MODE_INTRA, MODE_INTER, MODE_IBC 및 MODE_PLT일 수 있다. 예측 모드들의 이진화는 그에 따라 변경된다.
IBC가 오프될 때, I 타일들에 대해, 현재 예측 모드가 MODE_PLT인지 여부를 나타내기 위해 첫 번째 하나의 빈이 이용된다. P/B 타일들에 대한 동안, 첫 번째 빈이 현재 예측 모드가 MODE_INTRA인지 여부를 나타내는 데 사용된다. 만약 그렇지 않다면, 현재 예측 모드가 MODE_PLT 또는 MODE_INTER임을 나타내기 위해 하나의 추가적인 빈이 이용된다.
IBC가 온될 때, I 타일들에 대해, 첫 번째 빈이 현재 예측 모드가 MODE_IBC인지 여부를 나타내는 데 이용된다. 만약 그렇지 않다면, 두 번째 빈이 현재 예측 모드가 MODE_PLT인지 MODE_INTRA인지를 나타내는 데 이용된다. P/B 타일들에 대한 동안, 첫 번째 빈이 현재 예측 모드가 MODE_INTRA인지 여부를 나타내는 데 사용된다. 인트라 모드인 경우, 두 번째 빈이 현재 예측 모드가 MODE_PLT 또는 MODE_INTRA임을 나타내는 데 이용된다. 만약 그렇지 않다면, 두 번째 빈이 현재 예측 모드가 MODE_IBC 또는 MODE_INTER임을 나타내는 데 이용된다.
JVET-O2001-vE에서의 관련 텍스트들은 다음과 같다.
코딩 유닛 신택스
Figure pct00005
2.2.3 팔레트 모드 신택스
Figure pct00006
Figure pct00007
Figure pct00008
Figure pct00009
Figure pct00010
2.2.4 팔레트 모드 시맨틱스
이하의 시맨틱스에서, 어레이 인덱스들 x0, y0은 픽처의 좌측 상단 루마 샘플을 기준으로 고려된 코딩 블록의 좌측 상단 루마 샘플의 위치 ( x0 , y0 )을 지정한다. 어레이 인덱스들 xC, yC는 픽처의 좌측 상단 루마 샘플을 기준으로 샘플의 위치 (xC, yC)를 지정한다. 어레이 인덱스 startComp는 현재 팔레트 테이블의 첫 번째 색상 성분을 지정한다. 0과 동일한 startComp는 Y 성분을 나타낸다; 1과 동일한 startComp는 Cb 성분을 나타낸다; 2와 동일한 startComp는 Cr 성분을 나타낸다. numComps는 현재 팔레트 테이블에서의 색상 성분들의 수를 지정한다.
예측자 팔레트는 현재 팔레트에서의 엔트리들을 예측하는 데 사용되는 이전 코딩 유닛들로부터의 팔레트 엔트리들로 구성된다.
변수 PredictorPaletteSize[ startComp ]는 현재 팔레트 테이블 startComp의 첫 번째 색상 성분에 대한 예측자 팔레트의 크기를 지정한다. PredictorPaletteSize는 8.4.5.3 절에 명시된 바와 같이 도출된다.
변수 PalettePredictorEntryReuseFlags[ i ]가 1과 동일한 것은 예측자 팔레트에서의 i 번째 엔트리가 현재 팔레트에서 재사용된다는 것을 지정한다. PalettePredictorEntryReuseFlags[ i ]가 0과 동일한 것은 예측자 팔레트에서의 i 번째 엔트리가 현재 팔레트에서의 엔트리가 아님을 지정한다. 어레이 PalettePredictorEntryReuseFlags[ i ]의 모든 요소들은 0으로 초기화된다.
palette_predictor_run은 어레이 PalettePredictorEntryReuseFlags에서 영이 아닌 엔트리에 선행하는 제로들의 수를 결정하는 데 사용된다.
palette_predictor_run의 값이 0 내지 ( PredictorPaletteSize - predictorEntryIdx )의 범위(경계 포함)에 있어야 한다는 것이 비트스트림 적합성의 요구사항이며, 여기서 predictorEntryIdx는 어레이 PalettePredictorEntryReuseFlags에서의 현재 위치에 대응한다. 변수 NumPredictedPaletteEntries는 예측자 팔레트로부터 재사용되는 현재 팔레트에서의 엔트리들의 수를 지정한다. NumPredictedPaletteEntries의 값은 0 내지 palette_max_size의 범위(경계 포함)에 있어야 한다.
num_signalled_palette_entries는 현재 팔레트 테이블 startComp의 첫 번째 색상 성분에 대해 명시적으로 시그널링되는 현재 팔레트에서의 엔트리들의 수를 지정한다.
num_signalled_palette_entries가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
변수 CurrentPaletteSize[ startComp ]는 현재 팔레트 테이블 startComp의 첫 번째 색상 성분에 대한 현재 팔레트의 크기를 지정하고 다음과 같이 도출된다:
Figure pct00011
CurrentPaletteSize [startComp]의 값은 0 내지 palette_max_size의 범위(경계 포함)에 있어야 한다.
new_palette_entries[ cIdx ][ i ]는 색상 성분 cIdx에 대한 i 번째 시그널링된 팔레트 엔트리에 대한 값을 지정한다.
변수 PredictorPaletteEntries[ cIdx ][ i ]는 색상 성분 cIdx에 대한 예측자 팔레트에서의 i 번째 요소를 지정한다.
변수 CurrentPaletteEntries[ cIdx ][ i ]는 색상 성분 cIdx에 대한 현재 팔레트에서의 i 번째 요소를 지정하며, 다음과 같이 도출된다:
Figure pct00012
palette_escape_val_present_flag가 1과 동일한 것은 현재 코딩 유닛이 적어도 하나의 이스케이프 코딩된 샘플을 포함한다는 것을 지정한다. escape_val_present_flag가 0과 동일한 것은 현재 코딩 유닛에 이스케이프 코딩된 샘플들이 없음을 지정한다. 존재하지 않을 때, palette_escape_val_present_flag의 값은 1과 동일한 것으로 추론된다.
변수 MaxPaletteIndex는 현재 코딩 유닛에 대한 팔레트 인덱스에 대한 최대 가능 값을 지정한다. MaxPaletteIndex의 값은 CurrentPaletteSize[ startComp ] - 1 + palette_escape_val_present_flag와 동일하게 설정된다.
num_palette_indices_minus1 + 1은 현재 블록에 대해 명시적으로 시그널링되거나 추론되는 팔레트 인덱스들의 수이다.
num_palette_indices_minus1이 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
palette_idx_idc는 팔레트 테이블 CurrentPaletteEntries에 대한 인덱스의 표시이다. palette_idx_idc의 값은 블록에서의 첫 번째 인덱스에 대해 0 내지 MaxPaletteIndex의 범위(경계 포함)에 있어야 하고, 블록에서의 나머지 인덱스들에 대해 0 내지 ( MaxPaletteIndex - 1 )의 범위(경계 포함)에 있어야 한다.
palette_idx_idc가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
변수 PaletteIndexIdc[ i ]는 명시적으로 시그널링되거나 추론되는 i 번째 palette_idx_idc를 저장한다. 어레이 PaletteIndexIdc[ i ]의 모든 요소들은 0으로 초기화된다.
copy_above_indices_for_final_run_flag가 1과 동일한 것은 코딩 유닛에서의 마지막 위치들의 팔레트 인덱스들이 수평 트래버스 스캔이 사용되는 경우 위쪽 행에 있는 팔레트 인덱스들로부터 복사되거나 또는 수직 트래버스 스캔이 사용되는 경우 좌측 열에 있는 팔레트 인덱스들로부터 복사된다는 것을 지정한다. copy_above_indices_for_final_run_flag가 0과 동일한 것은 코딩 유닛에서의 마지막 위치들의 팔레트 인덱스들이 PaletteIndexIdc[ num_palette_indices_minus1 ]로부터 복사된다는 것을 지정한다.
copy_above_indices_for_final_run_flag가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
palette_transpose_flag가 1과 동일한 것은 현재 코딩 유닛에서의 샘플들에 대한 인덱스들을 스캔하기 위해 수직 트래버스 스캔이 적용된다는 것을 지정한다. palette_transpose_flag가 0과 동일한 것은 현재 코딩 유닛에서의 샘플들에 대한 인덱스들을 스캔하기 위해 수평 트래버스 스캔이 적용된다는 것을 지정한다. 존재하지 않을 때, palette_transpose_flag의 값은 0과 동일한 것으로 추론된다.
어레이 TraverseScanOrder는 팔레트 코딩을 위한 스캔 순서 어레이를 지정한다. palette_transpose_flag가 0과 동일한 경우 TraverseScanOrder는 수평 스캔 순서 HorTravScanOrder를 할당받고, palette_transpose_flag가 1과 동일한 경우 TraverseScanOrder는 수직 스캔 순서 VerTravScanOrder를 할당받는다.
copy_above_palette_indices_flag가 1과 동일한 것은 수평 트래버스 스캔이 사용되는 경우 팔레트 인덱스가 위쪽 행에서의 동일한 위치에 있는 팔레트 인덱스와 동일하거나 수직 트래버스 스캔이 사용되는 경우 좌측 열에서의 동일한 위치에 있는 팔레트 인덱스와 동일하다는 것을 지정한다. copy_above_palette_indices_flag가 0과 동일한 것은 샘플의 팔레트 인덱스의 표시가 비트스트림에 코딩되거나 추론된다는 것을 지정한다.
변수 CopyAboveIndicesFlag[ xC ][ yC ]가 1과 동일한 것은 팔레트 인덱스가 위쪽 행에 있는 팔레트 인덱스로부터 복사(수평 스캔)되거나 좌측 열에 있는 팔레트 인덱스로부터 복사(수직 스캔)된다는 것을 지정한다. CopyAboveIndicesFlag[ xC ][ yC ]가 0과 동일한 것은 팔레트 인덱스가 비트스트림에 명시적으로 코딩되거나 추론된다는 것을 지정한다. 어레이 인덱스들 xC, yC는 픽처의 좌측 상단 루마 샘플을 기준으로 샘플의 위치 ( xC, yC )를 지정한다. PaletteIndexMap[ xC ][ yC ]의 값은 0 내지 ( MaxPaletteIndex - 1)의 범위(경계 포함)에 있어야 한다.
변수 PaletteIndexMap[ xC ][ yC ]는 CurrentPaletteEntries에 의해 표현되는 어레이에 대한 인덱스인 팔레트 인덱스를 지정한다. 어레이 인덱스들 xC, yC는 픽처의 좌측 상단 루마 샘플을 기준으로 샘플의 위치 ( xC, yC )를 지정한다. PaletteIndexMap[ xC ][ yC ]의 값은 0 내지 MaxPaletteIndex의 범위(경계 포함)에 있어야 한다.
변수 adjustedRefPaletteIndex는 다음과 같이 도출된다:
Figure pct00013
Figure pct00014
CopyAboveIndicesFlag[ xC ][ yC ]가 0과 동일할 때, 변수 CurrPaletteIndex는 다음과 같이 도출된다:
Figure pct00015
palette_run_prefix는, 존재할 때, PaletteRunMinus1의 이진화에서의 프리픽스 부분을 지정한다.
palette_run_suffix는 변수 PaletteRunMinus1의 도출에서 사용된다. 존재하지 않을 때, palette_run_suffix의 값은 0과 동일한 것으로 추론된다.
RunToEnd가 0과 동일할 때, 변수 PaletteRunMinus1은 다음과 같이 도출된다:
- PaletteMaxRunMinus1이 0과 동일한 경우, PaletteRunMinus1은 0과 동일하게 설정된다.
- 그렇지 않은 경우(PaletteMaxRunMinus1이 0보다 큰 경우), 다음이 적용된다:
- palette_run_prefix가 2보다 작은 경우, 다음이 적용된다:
Figure pct00016
- 그렇지 않은 경우(palette_run_prefix가 2보다 크거나 같은 경우), 다음이 적용된다:
Figure pct00017
변수 PaletteRunMinus1은 다음과 같이 사용된다:
- CopyAboveIndicesFlag[ xC ][ yC ]가 0과 동일한 경우, PaletteRunMinus1은 동일한 팔레트 인덱스를 사용하여 연속적인 위치들의 수에서 1을 뺀 것을 지정한다.
- 그렇지 않고 palette_transpose_flag가 0과 동일한 경우, PaletteRunMinus1은 위쪽 행에서의 대응하는 위치에 사용되는 것과 동일한 팔레트 인덱스를 사용하여 연속적인 위치들의 수에서 1을 뺀 것을 지정한다.
- 그렇지 않은 경우, PaletteRunMinus1은 좌측 열에서의 대응하는 위치에 사용되는 것과 동일한 팔레트 인덱스를 사용하여 연속적인 위치들의 수에서 1을 뺀 것을 지정한다.
RunToEnd가 0과 동일할 때, 변수 PaletteMaxRunMinus1은 PaletteRunMinus1에 대한 최대 가능 값을 나타내며, PaletteMaxRunMinus1의 값이 0보다 크거나 같아야 한다는 것이 비트스트림 적합성의 요구사항이다.
palette_escape_val은 성분에 대한 양자화된 이스케이프 코딩된 샘플 값을 지정한다.
변수 PaletteEscapeVal[ cIdx ][ xC ][ yC ]는 PaletteIndexMap[ xC ][ yC ]가 MaxPaletteIndex와 동일하고 palette_escape_val_present_flag가 1과 동일한 샘플의 이스케이프 값을 지정한다. 어레이 인덱스 cIdx는 색상 성분을 지정한다. 어레이 인덱스들 xC, yC는 픽처의 좌측 상단 루마 샘플을 기준으로 샘플의 위치 ( xC, yC )를 지정한다.
PaletteEscapeVal[ cIdx ][ xC ][ yC ]가, 0과 동일한 cIdx에 대해, 0 내지 (1  <<  ( BitDepthY + 1 ) ) - 1의 범위(경계 포함)에 있어야 하고, 0과 동일하지 않은 cIdx에 대해, 0 내지 (1  <<  ( BitDepthC + 1 ) ) - 1의 범위(경계 포함)에 있어야 한다는 것이 비트스트림 적합성의 요구사항이다.
1.1. 1 라인 기반 CG 팔레트 모드
라인 기반 CG 팔레트 모드는 VVC에 채택되었다. 이 방법에서, 팔레트 모드의 각각의 CU는 트래버스 스캔 모드에 기초하여 m 개의 샘플(이 테스트에서 m = 16)의 다수의 세그먼트들로 나누어진다. 각각의 세그먼트에서의 팔레트 런 코딩을 위한 인코딩 순서는 다음과 같다: 각각의 픽셀에 대해, 픽셀이 이전 픽셀과 동일한 모드인 경우, 즉 이전 스캔된 픽셀과 현재 픽셀이 양쪽 모두 런 유형(run type) COPY_ABOVE인지 또는 이전 스캔된 픽셀과 현재 픽셀이 양쪽 모두 런 유형 INDEX이고 동일한 인덱스 값인 경우를 나타내는 1 개의 콘텍스트 코딩된 빈 run_copy_flag = 0 이 시그널링된다. 그렇지 않은 경우, run_copy_flag = 1 이 시그널링된다. 픽셀과 이전 픽셀이 상이한 모드인 경우, 픽셀의 런 유형, 즉 INDEX 또는 COPY_ABOVE를 나타내는 하나의 콘텍스트 코딩된 빈 copy_above_palette_indices_flag 가 시그널링된다. VTM6.0에서의 팔레트 모드와 동일하게, INDEX 모드가 기본값으로(by default) 사용되기 때문에 샘플이 첫 번째 행(수평 트래버스 스캔)에 또는 첫 번째 열(수직 트래버스 스캔)에 있는 경우 디코더는 런 유형을 파싱할 필요가 없다. 또한, 디코더는 이전에 파싱된 런 유형이 COPY_ABOVE인 경우 런 유형을 파싱할 필요가 없다. 하나의 세그먼트 내의 픽셀들의 팔레트 런 코딩 이후에, 각각의 라인 CG 내에서의 처리율을 개선시키기 위해 콘텍스트 코딩된 빈들의 인코딩/파싱과 별도로 인덱스 값들(INDEX 모드의 경우) 및 양자화된 이스케이프 색상들이 바이패스 코딩되고 그룹화된다. 인덱스 값이 이제는, VTM에서와 같이 팔레트 런 코딩 이전에 프로세싱되는 대신에, 런 코딩 이후에 코딩/파싱되므로, 인코더는 인덱스 값들의 수 num_palette_indices_minus1 및 마지막 런 유형 copy_above_indices_for_final_run_flag 를 시그널링할 필요가 없다.
JVET-P0077에서의 라인 기반 CG 팔레트 모드에 대한 텍스트들은 다음과 같다.
팔레트 코딩 신택스
Figure pct00018
Figure pct00019
Figure pct00020
Figure pct00021
Figure pct00022
Figure pct00023
7.4.9.6 팔레트 코딩 시맨틱스
이하의 시맨틱스에서, 어레이 인덱스들 x0, y0은 픽처의 좌측 상단 루마 샘플을 기준으로 고려된 코딩 블록의 좌측 상단 루마 샘플의 위치 ( x0 , y0 )을 지정한다. 어레이 인덱스들 xC, yC는 픽처의 좌측 상단 루마 샘플을 기준으로 샘플의 위치 (xC, yC)를 지정한다. 어레이 인덱스 startComp는 현재 팔레트 테이블의 첫 번째 색상 성분을 지정한다. 0과 동일한 startComp는 Y 성분을 나타낸다; 1과 동일한 startComp는 Cb 성분을 나타낸다; 2와 동일한 startComp는 Cr 성분을 나타낸다. numComps는 현재 팔레트 테이블에서의 색상 성분들의 수를 지정한다.
예측자 팔레트는 현재 팔레트에서의 엔트리들을 예측하는 데 사용되는 이전 코딩 유닛들로부터의 팔레트 엔트리들로 구성된다.
변수 PredictorPaletteSize[ startComp ]는 현재 팔레트 테이블 startComp의 첫 번째 색상 성분에 대한 예측자 팔레트의 크기를 지정한다. PredictorPaletteSize는 8.4.5.3 절에 명시된 바와 같이 도출된다.
변수 PalettePredictorEntryReuseFlags[ i ]가 1과 동일한 것은 예측자 팔레트에서의 i 번째 엔트리가 현재 팔레트에서 재사용된다는 것을 지정한다. PalettePredictorEntryReuseFlags[ i ]가 0과 동일한 것은 예측자 팔레트에서의 i 번째 엔트리가 현재 팔레트에서의 엔트리가 아님을 지정한다. 어레이 PalettePredictorEntryReuseFlags[ i ]의 모든 요소들은 0으로 초기화된다.
palette_predictor_run은 어레이 PalettePredictorEntryReuseFlags에서 영이 아닌 엔트리에 선행하는 제로들의 수를 결정하는 데 사용된다.
palette_predictor_run의 값이 0 내지 ( PredictorPaletteSize - predictorEntryIdx )의 범위(경계 포함)에 있어야 한다는 것이 비트스트림 적합성의 요구사항이며, 여기서 predictorEntryIdx는 어레이 PalettePredictorEntryReuseFlags에서의 현재 위치에 대응한다. 변수 NumPredictedPaletteEntries는 예측자 팔레트로부터 재사용되는 현재 팔레트에서의 엔트리들의 수를 지정한다. NumPredictedPaletteEntries의 값은 0 내지 palette_max_size의 범위(경계 포함)에 있어야 한다.
num_signalled_palette_entries는 현재 팔레트 테이블 startComp의 첫 번째 색상 성분에 대해 명시적으로 시그널링되는 현재 팔레트에서의 엔트리들의 수를 지정한다.
num_signalled_palette_entries가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
변수 CurrentPaletteSize[ startComp ]는 현재 팔레트 테이블 startComp의 첫 번째 색상 성분에 대한 현재 팔레트의 크기를 지정하고 다음과 같이 도출된다:
Figure pct00024
CurrentPaletteSize [startComp]의 값은 0 내지 palette_max_size의 범위(경계 포함)에 있어야 한다.
new_palette_entries[ cIdx ][ i ]는 색상 성분 cIdx에 대한 i 번째 시그널링된 팔레트 엔트리에 대한 값을 지정한다.
변수 PredictorPaletteEntries[ cIdx ][ i ]는 색상 성분 cIdx에 대한 예측자 팔레트에서의 i 번째 요소를 지정한다.
변수 CurrentPaletteEntries[ cIdx ][ i ]는 색상 성분 cIdx에 대한 현재 팔레트에서의 i 번째 요소를 지정하며, 다음과 같이 도출된다:
Figure pct00025
palette_escape_val_present_flag가 1과 동일한 것은 현재 코딩 유닛이 적어도 하나의 이스케이프 코딩된 샘플을 포함한다는 것을 지정한다. escape_val_present_flag가 0과 동일한 것은 현재 코딩 유닛에 이스케이프 코딩된 샘플들이 없음을 지정한다. 존재하지 않을 때, palette_escape_val_present_flag의 값은 1과 동일한 것으로 추론된다.
변수 MaxPaletteIndex는 현재 코딩 유닛에 대한 팔레트 인덱스에 대한 최대 가능 값을 지정한다. MaxPaletteIndex의 값은 CurrentPaletteSize[ startComp ] - 1 + palette_escape_val_present_flag와 동일하게 설정된다.
palette_idx_idc는 팔레트 테이블 CurrentPaletteEntries에 대한 인덱스의 표시이다. palette_idx_idc의 값은 블록에서의 첫 번째 인덱스에 대해 0 내지 MaxPaletteIndex의 범위(경계 포함)에 있어야 하고, 블록에서의 나머지 인덱스들에 대해 0 내지 ( MaxPaletteIndex - 1 )의 범위(경계 포함)에 있어야 한다.
palette_idx_idc가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
palette_transpose_flag가 1과 동일한 것은 현재 코딩 유닛에서의 샘플들에 대한 인덱스들을 스캔하기 위해 수직 트래버스 스캔이 적용된다는 것을 지정한다. palette_transpose_flag가 0과 동일한 것은 현재 코딩 유닛에서의 샘플들에 대한 인덱스들을 스캔하기 위해 수평 트래버스 스캔이 적용된다는 것을 지정한다. 존재하지 않을 때, palette_transpose_flag의 값은 0과 동일한 것으로 추론된다.
어레이 TraverseScanOrder는 팔레트 코딩을 위한 스캔 순서 어레이를 지정한다. palette_transpose_flag가 0과 동일한 경우 TraverseScanOrder는 수평 스캔 순서 HorTravScanOrder를 할당받고, palette_transpose_flag가 1과 동일한 경우 TraverseScanOrder는 수직 스캔 순서 VerTravScanOrder를 할당받는다.
run_copy_flag가 1과 동일한 것은 copy_above_palette_indices_flag가 0과 동일한 경우 팔레트 런 유형이 이전에 스캔된 위치에서의 런 유형과 동일하고 팔레트 런 인덱스가 이전 위치에서의 인덱스와 동일하다는 것을 지정한다. 그렇지 않은 경우, run_copy_flag는 0과 동일하다
copy_above_palette_indices_flag가 1과 동일한 것은 수평 트래버스 스캔이 사용되는 경우 팔레트 인덱스가 위쪽 행에서의 동일한 위치에 있는 팔레트 인덱스와 동일하거나 수직 트래버스 스캔이 사용되는 경우 좌측 열에서의 동일한 위치에 있는 팔레트 인덱스와 동일하다는 것을 지정한다. copy_above_palette_indices_flag가 0과 동일한 것은 샘플의 팔레트 인덱스의 표시가 비트스트림에 코딩되거나 추론된다는 것을 지정한다.
변수 CopyAboveIndicesFlag[ xC ][ yC ]가 1과 동일한 것은 팔레트 인덱스가 위쪽 행에 있는 팔레트 인덱스로부터 복사(수평 스캔)되거나 좌측 열에 있는 팔레트 인덱스로부터 복사(수직 스캔)된다는 것을 지정한다. CopyAboveIndicesFlag[ xC ][ yC ]가 0과 동일한 것은 팔레트 인덱스가 비트스트림에 명시적으로 코딩되거나 추론된다는 것을 지정한다. 어레이 인덱스들 xC, yC는 픽처의 좌측 상단 루마 샘플을 기준으로 샘플의 위치 ( xC, yC )를 지정한다.
변수 PaletteIndexMap[ xC ][ yC ]는 CurrentPaletteEntries에 의해 표현되는 어레이에 대한 인덱스인 팔레트 인덱스를 지정한다. 어레이 인덱스들 xC, yC는 픽처의 좌측 상단 루마 샘플을 기준으로 샘플의 위치 ( xC, yC )를 지정한다. PaletteIndexMap[ xC ][ yC ]의 값은 0 내지 MaxPaletteIndex의 범위(경계 포함)에 있어야 한다.
변수 adjustedRefPaletteIndex는 다음과 같이 도출된다:
Figure pct00026
Figure pct00027
CopyAboveIndicesFlag[ xC ][ yC ]가 0과 동일할 때, 변수 CurrPaletteIndex는 다음과 같이 도출된다:
Figure pct00028
palette_escape_val은 성분에 대한 양자화된 이스케이프 코딩된 샘플 값을 지정한다.
변수 PaletteEscapeVal[ cIdx ][ xC ][ yC ]는 PaletteIndexMap[ xC ][ yC ]가 MaxPaletteIndex와 동일하고 palette_escape_val_present_flag가 1과 동일한 샘플의 이스케이프 값을 지정한다. 어레이 인덱스 cIdx는 색상 성분을 지정한다. 어레이 인덱스들 xC, yC는 픽처의 좌측 상단 루마 샘플을 기준으로 샘플의 위치 ( xC, yC )를 지정한다.
PaletteEscapeVal[ cIdx ][ xC ][ yC ]가, 0과 동일한 cIdx에 대해, 0 내지 (1  <<  ( BitDepthY + 1 ) ) - 1의 범위(경계 포함)에 있어야 하고, 0과 동일하지 않은 cIdx에 대해, 0 내지 (1  <<  ( BitDepthC + 1 ) ) - 1의 범위(경계 포함)에 있어야 한다는 것이 비트스트림 적합성의 요구사항이다.
2.3 VVC에서의 로컬 이중 트리
전형적인 하드웨어 비디오 인코더들 및 디코더들에서, 이웃하는 인트라 블록들 간의 샘플 프로세싱 데이터 의존성으로 인해 픽처가 보다 많은 작은 인트라 블록들을 가질 때 프로세싱 처리율이 떨어진다. 인트라 블록의 예측자 생성은 이웃 블록들로부터의 상단 및 좌측 경계 재구성된 샘플들을 필요로 한다. 따라서, 인트라 예측은 블록 단위로 순차적으로 프로세싱되어야 한다.
HEVC에서, 가장 작은 인트라 CU는 8x8 루마 샘플들이다. 가장 작은 인트라 CU의 루마 성분은 4 개의 4x4 루마 인트라 예측 유닛(PU)으로 더 분할될 수 있지만, 가장 작은 인트라 CU의 크로마 성분들은 더 분할될 수 없다. 따라서, 4x4 크로마 인트라 블록들 또는 4x4 루마 인트라 블록들이 프로세싱될 때 최악의 하드웨어 프로세싱 처리율이 발생한다.
VTM5.0에서, 단일 코딩 트리에서, 크로마 파티션들이 항상 루마를 뒤따르고 가장 작은 인트라 CU가 4x4 루마 샘플들이기 때문에, 가장 작은 크로마 인트라 CB는 2x2이다. 따라서, VTM5.0에서, 단일 코딩 트리에서의 가장 작은 크로마 인트라 CB들은 2x2이다. VVC 디코딩에 대한 최악의 하드웨어 프로세싱 처리율은 HEVC 디코딩에 대한 것의 1/4에 불과하다. 더욱이, 크로마 인트라 CB의 재구성 프로세스는 CCLM(cross-component linear model), 4-탭 보간 필터들, PDPC(position-dependent intra prediction combination) 및 CIIP(combined inter intra prediction)를 포함한 툴들을 채택한 후의 HEVC에서의 것보다 훨씬 더 복잡해진다. 하드웨어 디코더들에서 높은 프로세싱 처리율을 달성하는 것은 어렵다. 이 섹션에서는, 최악의 하드웨어 프로세싱 처리율을 개선시키는 방법이 제안된다.
이 방법의 목표는 크로마 인트라 CB들의 분할을 제약하는 것에 의해 16 개의 크로마 샘플보다 작은 크로마 인트라 CB들을 허용하지 않는 것이다.
단일 코딩 트리에서, SCIPU는 크로마 블록 크기가 TH 개의 크로마 샘플보다 크거나 같고 4TH 개의 루마 샘플보다 작은 적어도 하나의 자식 루마 블록을 가지는 코딩 트리 노드로서 정의되며, 여기서 TH는 이 기고문에서 16으로 설정된다. 각각의 SCIPU에서, 모든 CB들이 인터이거나, 또는 모든 CB들이 비-인터(non-inter), 즉, 인트라 또는 IBC인 것이 요구된다. 비-인터 SCIPU의 경우에, 비-인터 SCIPU의 크로마는 더 분할되지 않아야 하고 SCIPU의 루마는 더 분할되도록 허용되는 것이 더 요구된다. 이러한 방식으로, 가장 작은 크로마 인트라 CB 크기는 16 개의 크로마 샘플이며, 2x2, 2x4, 및 4x2 크로마 CB들은 제거된다. 추가적으로, 비-인터 SCIPU의 경우에 크로마 스케일링이 적용되지 않는다. 추가적으로, 루마 블록들이 더 분할되고 크로마 블록들이 분할되지 않을 때, 로컬 이중 트리 코딩 구조가 구성된다.
2 개의 SCIPU 예가 도 5a 및 도 5b에 도시되어 있다. 도 5a에서, 8x4 크로마 샘플들의 하나의 크로마 CB 및 3 개의 루마 CB(4x8, 8x8, 4x8 루마 CB들)가 하나의 SCIPU를 형성하는데, 왜냐하면 8x4 크로마 샘플들로부터 삼진 트리(TT) 분할이 16 개의 크로마 샘플보다 작은 크로마 CB들을 결과할 것이기 때문이다. 도 5b에서, 4x4 크로마 샘플들의 하나의 크로마 CB(8x4 크로마 샘플들의 좌측) 및 3 개의 루마 CB(8x4, 4x4, 4x4 루마 CB들)가 하나의 SCIPU를 형성하고 4x4 샘플들의 다른 하나의 크로마 CB(8x4 크로마 샘플들의 우측) 및 2 개의 루마 CB(8x4, 8x4 루마 CB들)가 하나의 SCIPU를 형성하는데, 왜냐하면 4x4 크로마 샘플들로부터의 이진 트리(BT) 분할이 16 개의 크로마 샘플보다 작은 크로마 CB들을 결과할 것이기 때문이다.
제안된 방법에서, SCIPU의 유형은 현재 슬라이스가 I-슬라이스이거나 (VVC에서 인터 4x4가 허용되지 않기 때문에) 현재 SCIPU가 한 번 더 분할된 후에 그 내에 4x4 루마 파티션을 갖는 경우 비-인터인 것으로 추론되고; 그렇지 않은 경우, SCIPU의 유형(인터 또는 비-인터)은 SCIPU 내의 CU들을 파싱하기 전에 하나의 시그널링된 플래그에 의해 표시된다.
위의 방법을 적용하는 것에 의해, 2x2 크로마 블록들 대신에, 4x4, 2x8, 또는 8x2 크로마 블록들이 프로세싱될 때 최악의 하드웨어 프로세싱 처리율이 발생한다. 최악의 하드웨어 프로세싱 처리율은 HEVC에서의 것과 동일하며 VTM5.0에서의 것의 4배이다.
2.4 변환 스킵 (TS)
HEVC에서와 같이, 블록의 잔차는 변환 스킵 모드로 코딩될 수 있다. 신택스 코딩의 중복성을 피하기 위해, CU 레벨 MTS_CU_flag가 0과 동일하지 않을 때 변환 스킵 플래그는 시그널링되지 않는다. 변환 스킵에 대한 블록 크기 제한은 JEM4에서의 MTS에 대한 것과 동일하며, 이는 블록 폭 및 높이 양쪽 모두가 32보다 작거나 같을 때 변환 스킵이 CU에 대해 적용 가능하다는 것을 나타낸다. 현재 CU에 대해 LFNST 또는 MIP가 활성화될 때 암시적 MTS 변환이 DCT2로 설정된다는 점에 유의한다. 또한 MTS가 인터 코딩된 블록들에 대해 인에이블될 때 암시적 MTS가 여전히 인에이블될 수 있다.
추가적으로, 변환 스킵 블록의 경우, 최소 허용 양자화 파라미터(QP)는 6*(internalBitDepth - inputBitDepth) + 4로서 정의된다.
2.5 대안적인 루마 1/2 펠 보간 필터들
JVET-N0309에서, 대안적인 1/2 펠 보간 필터들이 제안된다.
1/2 펠 루마 보간 필터의 전환은 모션 벡터 정확도에 따라 행해진다. 기존의 1/4 펠, 전체 펠 및 4 펠 AMVR 모드들 외에도, 새로운 1/2 펠 정확도 AMVR 모드가 도입된다. 1/2 펠 모션 벡터 정확도의 경우에만, 대안적인 1/2 펠 루마 보간 필터가 선택될 수 있다.
1/2 펠 모션 벡터 정확도(즉, 1/2 펠 AMVR 모드)를 사용하는 비-아핀 비-병합 인터 코딩된 CU의 경우, HEVC/VVC 1/2 펠 루마 보간 필터와 하나 이상의 대안적인 1/2 펠 보간 사이의 전환은 새로운 신택스 요소 hpelIfIdx의 값에 기초하여 이루어진다. 신택스 요소 hpelIfIdx는 1/2 펠 AMVR 모드의 경우에만 시그널링된다. 공간적 병합 후보를 사용하는 스킵/병합 모드의 경우에, 신택스 요소 hpelIfIdx의 값은 이웃 블록으로부터 상속된다.
2.6 적응적 색상 변환(ACT)
도 6은 ACT가 적용되는 디코딩 플로차트를 예시한다. 도 6에 예시된 바와 같이, 색 공간 변환이 잔차 도메인에서 수행된다. 구체적으로, 잔차들을 YCgCo 도메인으로부터 다시 원래 도메인으로 변환하기 위해 하나의 추가적인 디코딩 모듈, 즉 역ACT가 역변환 이후에 도입된다.
VVC에서, 최대 변환 크기가 하나의 코딩 유닛(CU)의 폭 또는 높이보다 작지 않는 한, 하나의 CU 리프 노드가 또한 변환 프로세싱의 유닛으로서 사용된다. 따라서, 제안된 구현에서, 하나의 CU가 그의 잔차들을 코딩하기 위한 색 공간을 선택하도록 ACT 플래그가 시그널링된다. 추가적으로, HEVC ACT 설계에 따라, 인터 및 IBC CU들에 대해, CU에 적어도 하나의 영이 아닌 계수가 있을 때에만 ACT가 인에이블된다. 인트라 CU들에 대해, 크로마 성분들이 루마 성분의 동일한 인트라 예측 모드, 즉 DM 모드를 선택할 때에만 ACT가 인에이블된다.
색 공간 변환들에 사용되는 코어 변환들은 HEVC에 사용되는 것과 동일하게 유지된다. 구체적으로, 다음과 같이 설명되는 바와 같은, 이하의 순방향 및 역방향 YCgCo 색상 변환 행렬들이 적용된다.
Figure pct00029
추가적으로, 색상 변환 전후에 잔차 신호들의 다이내믹 레인지 변화를 보상하기 위해, (-5, -5, -3)의 QP 조정들이 변환 잔차들에 적용된다.
다른 한편으로, 순방향 및 역방향 색상 변환들은 3 개의 성분 모두의 잔차들에 액세스할 필요가 있다. 그에 대응하여, 제안된 구현에서, 3 개의 성분의 모든 잔차들이 이용 가능한 것은 아닌 다음 2 개의 시나리오에서 ACT가 디스에이블된다.
1. 개별 트리 분할: 개별 트리가 적용될 때, 하나의 CTU 내부의 루마 및 크로마 샘플들은 상이한 구조들로 분할된다. 이는 루마 트리에 있는 CU들만이 루마 성분을 포함하고 크로마 트리에 있는 CU들만이 2 개의 크로마 성분을 포함하는 것을 결과한다.
인트라 서브파티션 예측(ISP): ISP 서브파티션은 루마에만 적용되는 반면 크로마 신호들은 분할 없이 코딩된다. 현재 ISP 설계에서, 마지막 ISP 서브파티션들을 제외하고, 다른 서브파티션들만이 루마 성분을 포함한다.
3. 본 명세서에 설명된 기술적 해결책들 및 실시예들에 의해 해결되는 기술적 문제들
1. 이스케이프 심벌들의 현재 이진화는 고정 길이가 아닌데, 고정 길이는 균일 분포를 갖는 소스에 적합할 수 있다.
2. 현재 팔레트 코딩 설계는 가능한 중복성을 제거하기 위해 인덱스 조정 프로세스를 수행하는데, 이는, 예를 들면, 이스케이프 값 인덱스가 잘못 도출될 때, 파싱 의존성을 도입할 수 있다.
3. 현재 인덱스를 도출하는 데 이용되는 참조 인덱스는 인코더 제약을 필요로 할 수 있으며, 인코더 제약은 현재 설계에서 고려되지 않고 코덱 설계에 바람직하지 않다.
4. 로컬 이중 트리가 인에이블될 때, 이전 블록과 현재 블록의 팔레트 엔트리들은 상이한 수의 색상 성분들을 가질 수 있다. 그러한 경우를 어떻게 처리할지는 명확하지 않다.
5. 단일 트리 영역으로부터 이중 트리 영역으로 코딩할 때 일부 팔레트 엔트리들이 반복될 수 있으므로 로컬 이중 트리와 PLT가 동시에 적용될 수 없다. 일 예가 도 7에 도시되어 있다.
6. joint_cbcr 모드에 대한 크로마 QP 테이블이 제한될 수 있다.
7. 이스케이프 샘플들이 특정 조건들 하에서 중복적일 수 있다.
8. 라인 기반 CG 모드가 높은 처리율로 프로세싱될 수 없다.
4. 실시예들 및 해결책들의 목록
아래의 리스트는 일반 개념들을 설명하기 위한 예들로서 간주되어야 한다. 이러한 항목들이 좁은 의미로 해석되어서는 안 된다. 게다가, 이러한 항목들은 임의의 방식으로 조합될 수 있다.
이하의 예들은 VVC에서의 팔레트 방식 및 다른 모든 팔레트 관련 방식들에 적용될 수 있다.
이하의 글머리 기호들에서, Qp는 JVET-P2001-vE에서의 섹션 8.4.5.3에서의 qP를 나타낼 수 있다.
이하의 글머리 기호들에서, QpPrimeTsMin은 변환 스킵 모드에 대한 최소 허용 양자화 파라미터이다.
Modulo(x, M)는 x가 양의 정수일 때 (x%M)으로서 정의되고; 그렇지 않은 경우, 이는 M-((-x)%M)로서 정의된다.
이하에서, 블록이 무손실 모드로 코딩되는 것은 tranquant_bypass_flag가 1과 동일한 상태에서 블록이 코딩되거나; 또는 QP가 주어진 임계치보다 크지 않고 transform_skip_flag가 1과 동일한 상태에서 블록이 코딩되는 것을 의미할 수 있다.
이하의 예들은 VVC에서의 팔레트 방식 및 다른 모든 팔레트 관련 방식들에 적용될 수 있다.
1. 이스케이프 심벌들을 코딩하기 위해 고정 길이 코딩이 적용될 수 있다.
a. 일 예에서, 이스케이프 심벌들은 고정 길이 이진화를 사용하여 시그널링될 수 있다.
b. 일 예에서, 이스케이프 심벌은 고정 길이 이진화에서 N 비트를 사용하여 시그널링될 수 있다.
c. 일 예에서, 이스케이프 심벌을 시그널링하기 위한 코드 길이(예를 들면, 글머리 기호 1.b에서 언급된 N)는 내부 비트 깊이에 의존할 수 있다.
i. 대안적으로, 이스케이프 심벌을 시그널링하기 위한 코드 길이는 입력 비트 깊이에 의존할 수 있다.
ii. 대안적으로, 이스케이프 심벌을 시그널링하기 위한 코드 길이는 내부 비트 깊이와 입력 비트 깊이 사이의 차이에 의존할 수 있다.
iii. 일 예에서, N은 입력/내부 비트 깊이와 동일하게 설정된다.
d. 일 예에서, 고정 길이 코딩의 길이는 비디오 프로세싱 유닛 레벨, 예를 들면, 슬라이스 서브픽처, 타일, 픽처, 비디오에서 시그널링될 수 있다.
e. 일 예에서, 이스케이프 심벌을 시그널링하기 위한 코드 길이(예를 들면, 글머리 기호 1.b에서 언급된 N)는 양자화 파라미터, 즉 Qp에 의존할 수 있다.
i. 일 예에서, 이스케이프 심벌을 시그널링하기 위한 코드 길이는, f(Qp)에 의해 표기되는 것과 같은, 양자화 파라미터의 함수일 수 있다.
1. 일 예에서, 함수 f는 (internal bitdepth - g(Qp))로서 정의될 수 있다.
2. 일 예에서, N은 (internal bitdepth - max (16, (Qp - 4)/6))으로 설정될 수 있다.
3. 일 예에서, N은 (internal bitdepth - max (QpPrimeTsMin, (Qp - 4)/6))으로 설정될 수 있으며, 여기서 qP는 디코딩된 양자화 파라미터이고 QpPrimeTsMin은 변환 스킵 모드에 대한 최소 허용 양자화 파라미터이다.
4. 대안적으로, 게다가, 코드 길이 N은 max(A, internal bitDepth - (Max(QpPrimeTsMin, Qp ) - 4)/6)으로 설정될 수 있으며, 여기서 A는, 0 또는 1과 같은, 음이 아닌 정수 값이다.
ii. 위의 하위 글머리 기호에서 언급된 Qp는 슬라이스 QP를 지칭할 수 있다.
1. 대안적으로, Qp는 슬라이스 QP에 상수 값을 더한 것을 지칭할 수 있다.
f. 위의 예들에서, N은 0보다 크거나 같을 수 있다.
2. 이스케이프 심벌들에 대한 역양자화 Qp는 슬라이스/픽처/PPS 레벨 Qp에 기초할 수 있다.
a. 일 예에서, 이스케이프 심벌들에 대한 역양자화 Qp는 슬라이스/픽처/PPS 레벨 Qp에 주어진 오프셋을 더한 것에 기초할 수 있다.
i. 오프셋은 상수일 수 있다.
ii. 오프셋은, 암시적으로 또는 명시적으로, 비트스트림들에 표시될 수 있다.
b. 일 예에서, 블록 레벨 Qp 차이는 비트스트림에서 스킵될 수 있다.
i. 일 예에서, cbf는 0으로 추론될 수 있다.
3. 이스케이프 심벌들에 대한 역양자화 이전에 좌측 시프트가 적용될 수 있다.
a. 일 예에서, N 비트의 좌측 시프트(N>=0)가 역양자화 이전에 적용될 수 있다.
i. 일 예에서, N은 Min(bitDepth - 1, (QpPrimeTsMin - 4)/6)과 동일할 수 있으며, 여기서 bitDepth는 내부 비트 깊이이고, 여기서 bitDepth는 내부 비트 깊이이다.
ii. 대안적으로, N은 bitDepth - inputBD와 동일할 수 있으며, 여기서 inputBD는 입력 비트 깊이이다.
1. 일 예에서, inputBD는 비트스트림에 표시될 수 있다.
iii. 대안적으로, N은 deltaBD와 동일할 수 있으며, 여기서 deltaBD는 비트스트림에 표시된다.
4. 이스케이프 심벌 역양자화는 (Qp - QpPrimeTsMin)에 의존할 수 있다.
a. 일 예에서, (Qp - QpPrimeTsMin + 4)는 역양자화 Qp로서 이스케이프 심벌 역양자화에 적용될 수 있다.
b. 일 예에서, Min(Qp - QpPrimeTsMin + 4, 63 + QpBdOffset)은 역양자화 Qp로서 이스케이프 심벌 역양자화에 적용될 수 있다.
5. 이스케이프 심벌 역양자화는 (Qp - N*6)에 의존할 수 있다.
a. 일 예에서, N은 글머리 기호 3.a에서의 좌측 시프트 횟수를 지칭할 수 있다.
b. 일 예에서, Max(0, Qp - N*6)이 역양자화 Qp로서 적용될 수 있다.
6. 이스케이프 심벌 역양자화는 deltaBD, 즉 내부 비트 깊이와 입력 비트 깊이 사이의 차이에 의존할 수 있다.
a. 일 예에서, (Qp - deltaBD*6)은 역양자화 Qp로서 이스케이프 심벌 역양자화에 적용될 수 있다.
b. 일 예에서, Min(Max(0, Qp - deltaBD*6), 63 + QpBdOffset)은 역양자화 Qp로서 이스케이프 심벌 역양자화에 적용될 수 있다.
7. 하나의 비디오 유닛(예를 들면, CU)에서 이스케이프 심벌들의 사용을 디스에이블시키는 것이 제안된다.
a. 대안적으로, 게다가, 이스케이프 심벌 존재의 표시의 시그널링이 스킵된다.
b. 일 예에서, 이스케이프 심벌들의 사용을 인에이블/디스에이블시킬지는 양자화 파라미터들 및/또는 비트 깊이에 의존할 수 있다.
i. 일 예에서, (internal bitDepth - (Max(QpPrimeTsMin, Qp ) - 4)/6)이 0보다 크지 않은 경우, 이스케이프 심벌들의 사용이 디스에이블될 수 있다.
8. 차수 3의 EG를 제외한 가변 길이 코딩이 이스케이프 심벌들을 코딩하는 데 적용될 수 있다.
a. 일 예에서, 이스케이프 심벌의 이진화는 입력 파라미터 K를 갖는 절단된 이진(TB)일 수 있다.
b. 일 예에서, 이스케이프 심벌의 이진화는 차수 K의 EG일 수 있으며, 여기서 K는 3과 동일하지 않다.
i. 일 예에서, 이스케이프 심벌의 이진화는 차수 0의 EG일 수 있다.
1. 대안적으로, 일 예에서, 이스케이프 심벌의 이진화는 차수 1의 EG일 수 있다.
2. 대안적으로, 일 예에서, 이스케이프 심벌의 이진화는 차수 2의 EG일 수 있다.
c. 위의 예들에서, K는 정수일 수 있으며 다음에 의존할 수 있다.
i. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU들의 그룹/브릭들에서 시그널링되는 메시지.
ii. 내부 비트 깊이
iii. 입력 비트 깊이
iv. 내부 비트 깊이와 입력 깊이 사이의 차이
v. 현재 블록의 블록 치수
vi. 현재 블록의 현재 양자화 파라미터
vii. 색상 포맷의 표시(예컨대, 4:2:0, 4:4:4, RGB 또는 YUV)
ⅷ. 코딩 구조(예컨대, 단일 트리 또는 이중 트리)
ix. 색상 성분(예컨대, 루마 성분 및/또는 크로마 성분들)
9. 이스케이프 심벌들을 코딩하기 위한 다수의 이진화 방법들이 비디오 유닛(예를 들면, 시퀀스/픽처/슬라이스/타일/브릭/서브픽처/CTU 행/CTU/CTB/CB/CU/픽처 내의 서브영역)에 그리고/또는 이스케이프 심벌들의 하나 또는 다수의 값에 대해 적용될 수 있다.
a. 일 예에서, 비디오 유닛에 대해 그리고/또는 이스케이프 심벌들의 하나 또는 다수의 값에 대해 다수의 이진화 방법들 중 하나를 어떻게 선택할지가 시그널링될 수 있다.
b. 일 예에서, 비디오 유닛에 대해 그리고/또는 이스케이프 심벌들의 하나 또는 다수의 값에 대해 다수의 이진화 방법들 중 하나를 어떻게 선택할지가 도출될 수 있다.
c. 일 예에서, 하나의 비디오 유닛에 대해 그리고/또는 이스케이프 심벌들의 하나 또는 다수의 값에 대해, 2 개 이상의 이진화 방법이 적용될 수 있다.
i. 일 예에서, 선택된 이진화 방법을 알려주기 위해 인덱스 또는 플래그가 인코딩/디코딩될 수 있다.
이하의 글머리 기호들에서, p는 색상 성분의 심벌 값을 나타낼 수 있고, bd는 비트 깊이(예를 들면, 내부 비트 깊이 또는 입력 비트 깊이)를 나타낼 수 있으며, ibd는 입력 비트 깊이를 나타낼 수 있고, Qp는 변환 스킵 블록들 또는 변환 블록들에 대한 양자화 파라미터를 나타낼 수 있다. 추가적으로, 루마 성분과 크로마 성분에 대한 QP들은 상이하거나 동일할 수 있다. 비트 깊이는 주어진 색상 성분과 연관될 수 있다.
10. 양자화 및/또는 역양자화 프로세스를 어떻게 적용할지는 블록이 팔레트 모드로 코딩되는지 여부에 의존할 수 있다.
a. 일 예에서, 이스케이프 심벌들에 대한 양자화 및/또는 역양자화 프로세스는 양자화가 적용된 정상 인트라/인터 코딩된 블록들에 사용되는 것과 상이할 수 있다.
11. 이스케이프 심벌들에 대한 양자화 및/또는 역양자화 프로세스는 비트 시프트를 사용할 수 있다.
a. 일 예에서, 우측 비트 시프트는 이스케이프 심벌들을 양자화하는 데 사용될 수 있다.
i. 일 예에서, 이스케이프 심벌은 f(p, Qp)로서 시그널링될 수 있으며, 여기서 p는 입력 심벌 값(예를 들면, 입력 루마/크로마 샘플 값)이고, Qp는 대응하는 색상 성분에 대한 도출된 양자화 파라미터이다.
1. 일 예에서, 함수 f는 p>> g(Qp)로서 정의될 수 있다.
2. 일 예에서, 함수 f는 (p + (1 << (g(QP) - 1)))>> g(Qp)로서 정의될 수 있다.
3. 일 예에서, 함수 f는 (0, (1<< bd)-1, (p + (1 << (g(QP) - 1)))>> g(Qp))로서 정의될 수 있다.
ii. 일 예에서, 이스케이프 심벌은 h(p)로서 시그널링될 수 있다.
1. 일 예에서, 함수 h는 p >> N으로서 정의될 수 있다.
2. 일 예에서, 함수 h는 (p + (1 << (N - 1))) >> N으로서 정의될 수 있다.
3. 일 예에서, cu_transquant_bypass_flag가 1과 동일할 때, N은 0으로 설정될 수 있다.
4. 일 예에서, cu_transquant_bypass_flag가 1과 동일할 때, N은 (bd-ibd)와 동일할 수 있으며, 여기서 bd는 내부 비트 깊이이고 ibd는 입력 비트 깊이이다.
5. 일 예에서, 함수 h는 clip(0, (1<<(bd-N)-1, p>>N)으로서 정의될 수 있으며, 여기서 bd는 현재 색상 성분에 대한 내부 비트 깊이이다.
6. 일 예에서, 함수 h는 clip(0, (1<<(bd-N)-1, (p + (1 << (N - 1))) >> N)으로서 정의될 수 있으며, 여기서 bd는 현재 색상 성분에 대한 내부 비트 깊이이다.
7. 위의 예에서, N은 [0, (bd - 1)]의 범위에 있을 수 있다.
b. 일 예에서, 좌측 비트 시프트는 이스케이프 심벌들을 역양자화하는 데 사용될 수 있다.
i. 일 예에서, 이스케이프 심벌은 f(p,Qp)로서 역양자화될 수 있으며, 여기서 p는 디코딩된 이스케이프 심벌이고, Qp는 대응하는 색상 성분에 대한 도출된 양자화 파라미터이다.
1. 일 예에서, f는 p<<g(Qp)로서 정의될 수 있다.
2. 일 예에서, f는 (p<<g(Qp)) + (1 << (g(Qp) - 1))로서 정의될 수 있다.
ii. 일 예에서, 이스케이프 심벌은 f(p,Qp)로서 재구성될 수 있으며, 여기서 p는 디코딩된 이스케이프 심벌이다.
1. 일 예에서, f는 clip (0, (1<<bd)-1, p<< g(Qp))로서 정의될 수 있다.
2. 일 예에서, f는 clip (0, (1<<bd)-1, (p<<g(Qp))+ (1 << (g(Qp) - 1)))로서 정의될 수 있다.
iii. 일 예에서, 이스케이프 심벌은 h(p)로서 재구성될 수 있다.
1. 일 예에서, 함수 h는 p << N으로서 정의될 수 있다.
2. 일 예에서, 함수 h는 (p << N) + (1 << (N - 1))로서 정의될 수 있다.
3. 일 예에서, cu_transquant_bypass_flag가 1과 동일할 때, N은 0으로 설정될 수 있다.
4. 일 예에서, cu_transquant_bypass_flag가 1과 동일할 때, N은 (bd-ibd)와 동일할 수 있으며, 여기서 bd는 내부 비트 깊이이고 ibd는 입력 비트 깊이이다.
5. 일 예에서, N은 (max (QpPrimeTsMin, qP) - 4)/6으로 설정되며, 여기서 qP는 디코딩된 양자화 파라미터이고 QpPrimeTsMin은 변환 스킵 모드에 대한 최소 허용 양자화 파라미터이다.
a) 위의 예에서, 루마와 크로마 양쪽 모두가 변환 스킵 모드들을 갖는 경우, 변환 스킵 모드에 대한 상이한 최소 허용 양자화 파라미터들이 상이한 색상 성분들에 적용될 수 있다.
6. 대안적으로, 위의 예들의 경우, N은, min(bd - 1, N)과 같이, 추가로 클리핑될 수 있다.
7. 위의 예에서, N은 [0, (bd - 1)]의 범위에 있을 수 있다.
12. 좌측 시프트를 역양자화로서 적용할 때, 이스케이프 심벌 p의 재구성 오프셋은 비트 깊이 정보에 의존할 수 있다.
a. 일 예에서, 이는 내부 비트 깊이와 입력 비트 깊이 사이의 차이, 즉 deltaBD = 내부 비트 깊이 - 입력 비트 깊이에 의존할 수 있다.
b. K가 deltaBD보다 작거나 같을 때, 재구성된 값은 p<<K일 수 있다.
c. K가 deltaBD보다 클 때, 재구성 값은 (p<<K) + (1<<(K-1))일 수 있다.
d. K가 T0(예를 들면, T0=2)보다 작거나 같을 때, 재구성된 값은 p<<K일 수 있다.
e. K가 T1(예를 들면, T1=2)보다 클 때, 재구성 값은 (p<<K) + (1<<(K-1))일 수 있다.
f. 일 예에서, 글머리 기호 d 및 글머리 기호 e에서의 T0 및 T1은 비트스트림에서, 예컨대, 시퀀스/픽처/슬라이스/타일/브릭/서브픽처 레벨에서 시그널링될 수 있다.
g. 일 예에서, 재구성 값은 (p<<K) + ((1<<(K-1))>>deltaBD<<deltaBD)일 수 있다.
h. 일 예에서, 재구성 값은 ((p<<(K+1)) + (1<<K))>>(deltaBD+1)<<deltaBD일 수 있다.
i. 일 예에서, deltaBD는 비트스트림에서, 예컨대, 시퀀스/픽처/슬라이스/타일/브릭/서브픽처 레벨에서 시그널링될 수 있다.
j. 일 예에서, 어느 재구성 값이 사용되어야 하는지(예를 들면, 글머리 기호 b 내지 글머리 기호 e)는 현재 블록의 양자화 파라미터에 의존할 수 있다.
k. 일 예에서, 어느 재구성 값이 사용되어야 하는지(예를 들면, 글머리 기호 b 내지 글머리 기호 e)는 deltaBD의 값에 의존할 수 있다.
l. 일 예에서, K는 g(Qp)로 설정될 수 있다.
13. 위의 예들에서, 다음이 적용될 수 있다:
a. 일 예에서, 이스케이프 심벌들은 콘텍스트 코딩될 수 있다.
b. 일 예에서, 이스케이프 심벌들은 바이패스 코딩될 수 있다.
c. 일 예에서, g(Qp)는 (Qp-4)/6 또는 QP/8로서 정의될 수 있다.
i. 대안적으로, g(Qp)는 Qp/6 또는 QP/8로서 정의될 수 있다.
ii. 대안적으로, g(Qp)는 max(16, Qp/6))으로서 정의될 수 있다.
iii. 대안적으로, g(Qp)는 max(16, (Qp-4)/6)으로서 정의될 수 있다.
iv. 대안적으로, g(Qp)는 max ((bd- ibd)*6 + 4, (Qp-4)/6)으로서 정의될 수 있다.
v. 대안적으로, g(Qp)는 max (M, (Qp-4)/6)으로서 정의될 수 있다.
1. 일 예에서, M은 디코더에 시그널링될 수 있다.
vi. 대안적으로, g(Qp)는 max ((M,Qp)-4)/6으로서 정의될 수 있다.
1. 일 예에서, M은 SPS에 표시될 수 있다.
2. 일 예에서, 동일하거나 상이한 M이 루마 및 크로마 성분들에 적용될 수 있다.
3. 일 예에서, M은 (bd - ibd)*6 + 4와 동일할 수 있다.
vii. 대안적으로, g(Qp)는 Qp/6 또는 QP/8로서 정의될 수 있다.
ⅷ. 대안적으로, g(Qp)는 (max (16, Qp)/6)으로서 정의될 수 있다.
ix. 대안적으로, g(Qp)는 (max (16, Qp) -4)/6으로서 정의될 수 있다.
d. 일 예에서, g(Qp)의 값은 [0, (bd - 1)]의 범위에 있을 수 있다.
e. 일 예에서, max 함수 max (a,i)는 (i <= a ? a : i)로서 정의될 수 있다.
i. 대안적으로, 일 예에서, max 함수 max (a,i)는 (i < a ? a : i)로서 정의될 수 있다.
f. 일 예에서, N은 정수(예를 들면, 8 또는 10)일 수 있으며 다음에 의존할 수 있다.
i. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU들의 그룹/브릭들에서 시그널링되는 메시지.
ii. 내부 비트 깊이
iii. 입력 비트 깊이
iv. 내부 비트 깊이와 입력 깊이 사이의 차이
v. 현재 블록의 블록 치수
vi. 현재 블록의 현재 양자화 파라미터
vii. 색상 포맷의 표시(예컨대, 4:2:0, 4:4:4, RGB 또는 YUV)
ⅷ. 코딩 구조(예컨대, 단일 트리 또는 이중 트리)
ix. 색상 성분(예컨대, 루마 성분 및/또는 크로마 성분들)
x. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
g. 일 예에서, N은 디코더에 시그널링될 수 있다.
14. 이스케이프 값들에 대한 Qp가 클리핑될 수 있다.
a. 일 예에서, 이스케이프 값들에 적용되는 가장 낮은 Qp는 min_qp_prime_ts_ minus4와 동일할 수 있다.
b. 일 예에서, 이스케이프 값들에 적용되는 가장 낮은 Qp는 min_qp_prime_ts_ minus4에 관련될 수 있다.
i. 일 예에서, 이스케이프 값들에 적용되는 가장 낮은 Qp는 min_qp_prime_ts_ minus4 + 4와 동일할 수 있다.
c. 일 예에서, 각각의 색상 성분에 대한 가장 낮은 Qp는 SPS/PPS/VPD/DPS/타일/슬라이스 헤더에 표시될 수 있다.
d. 일 예에서, 이스케이프 값들에 적용되는 가장 낮은 Qp는 (bd-ibd)*6 + 4일 수 있으며, 여기서 bd는 내부 비트 깊이이고 ibd는 특정 색상 성분에 대한 입력 비트 깊이를 나타낸다.
e. 일 예에서, 위의 예들은 특정 색상 성분에 적용될 수 있다.
15. 위의 예들에서, 이스케이프 값들에 대한 크로마 Qp는 매핑 이전/이후의 Qp를 사용할 수 있다.
16. 팔레트 모드에서 현재 팔레트 인덱스를 도출할 때 참조 인덱스를 사용하지 않는 것이 제안된다.
a. 일 예에서, 팔레트 인덱스는 참조 인덱스(예를 들면, adjustedRefPaletteIndex)의 가능성을 배제하지 않고 직접 시그널링될 수 있다.
i. 대안적으로, 일 예에서, 인코더는 참조 인덱스가 현재 인덱스와 항상 상이할 수 있도록 제약될 수 있다. 그러한 경우에, 팔레트 인덱스는 참조 인덱스의 가능성을 배제하는 것에 의해 시그널링될 수 있다.
b. 일 예에서, 팔레트 인덱스의 이진화는 최대 팔레트 인덱스를 이진화 입력 파라미터로서 사용하는 절단된 이진(TB)일 수 있다.
c. 일 예에서, 팔레트 인덱스의 이진화는 고정 길이일 수 있다.
d. 일 예에서, 팔레트 인덱스의 이진화는 차수 K의 EG일 수 있다.
i. 일 예에서, K는 정수(예를 들면, 1, 2 또는 3)일 수 있으며 다음에 의존할 수 있다.
1. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU들의 그룹/브릭들에서 시그널링되는 메시지.
2. 내부 비트 깊이
3. 입력 비트 깊이
4. 내부 비트 깊이와 입력 깊이 사이의 차이
5. 현재 블록의 블록 치수
6. 현재 블록의 현재 양자화 파라미터
7. 색상 포맷의 표시(예컨대, 4:2:0, 4:4:4, RGB 또는 YUV)
8. 코딩 구조(예컨대, 단일 트리 또는 이중 트리)
9. 색상 성분(예컨대, 루마 성분 및/또는 크로마 성분들)
e. 일 예에서, 위의 예들은 현재 블록이 하나의 이스케이프 샘플을 적어도 가질 때에만 적용될 수 있다.
17. 현재 팔레트 인덱스는 이전 팔레트 인덱스들과 독립적으로 시그널링될 수 있다.
a. 일 예에서, 이전 팔레트 인덱스들을 사용할지 여부 및/또는 어떻게 사용할지는 현재 블록에 이스케이프 샘플(들)이 있는지 여부에 의존할 수 있다.
18. 이스케이프 심벌들에 대한 인덱스로부터 비-이스케이프 심벌들에 대한 인덱스로의 도출이 허용되지 않을 수 있다.
a. 일 예에서, 이스케이프 심벌들이 적용되고 팔레트 인덱스가 이스케이프 심벌들에 대한 인덱스와 동일하지 않을 때, 심벌들을 이스케이프 심벌로서 디코딩하는 것이 허용되지 않을 수 있다.
19. 비-이스케이프 심벌들에 대한 인덱스로부터 이스케이프 심벌들에 대한 인덱스로의 도출이 허용되지 않을 수 있다.
a. 일 예에서, 이스케이프 심벌들이 적용되고 팔레트 인덱스가 이스케이프 심벌들에 대한 인덱스와 동일할 때, 심벌들을 비-이스케이프 심벌로서 디코딩하는 것이 허용되지 않을 수 있다.
20. 도출된 팔레트 인덱스는 현재 팔레트 테이블 크기에 의해 제한될 수 있다.
a. 일 예에서, 팔레트 인덱스가 MaxPaletteIndex보다 클 때, 이는 MaxPaletteIndex와 동일하도록 수정될 수 있다.
21. 도출된 팔레트 인덱스는 이스케이프 심벌들에 대한 인덱스를 제외한 현재 팔레트 테이블 크기에 의해 제한될 수 있다.
a. 일 예에서, 이스케이프 심벌들이 적용되지 않고 팔레트 인덱스가 MaxPaletteIndex보다 클 때, 이는 MaxPaletteIndex와 동일하게 수정될 수 있다.
b. 일 예에서, 이스케이프 심벌들이 적용되고 팔레트 인덱스가 (MaxPaletteIndex - 1)보다 클 때, 이는 (MaxPaletteIndex - 1)과 동일하도록 수정될 수 있다.
22. 이스케이프 심벌을 나타내는 인덱스는 수정되도록 허용되지 않을 수 있다.
a. 일 예에서, MaxPaletteIndex와 동일한 인덱스는 현재 블록에 이스케이프 심벌들이 존재할 때 항상 이스케이프 심벌을 나타낼 수 있다.
b. 일 예에서, MaxPaletteIndex와 동일하지 않은 인덱스는 이스케이프 심벌을 나타내는 인덱스로서 디코딩될 수 없다.
23. 참조 인덱스와 현재 인덱스 사이의 차이를 코딩하는 것이 제안된다.
a. 일 예에서, 0과 동일한 차이는 코딩되도록 허용되지 않을 수 있다.
b. 대안적으로, 팔레트 코딩된 블록에서의 첫 번째 인덱스에 대해, 인덱스가 직접 코딩될 수 있다.
24. 참조 인덱스(R로서 표기됨)와 현재 인덱스(C로서 표기됨) 사이의 차이의 모듈로(modulo)를 코딩하는 것이 제안된다.
a. 일 예에서, I = Modulo(C-R, MaxPaletteIndex)가 코딩될 수 있다.
i. 일 예에서, 인덱스는 Modulo(I+R, MaxPaletteIndex)로서 재구성될 수 있다.
ii. 일 예에서, 0과 동일한 Modulo(C-R, MaxPaletteIndex)는 비트스트림에서 허용되지 않을 수 있다.
iii. 일 예에서, cMax = MaxPaletteIndex인 절단된 이진 코드가 값을 코딩하는 데 사용될 수 있다.
iv. 대안적으로, 팔레트 코딩된 블록에서의 첫 번째 인덱스에 대해, 인덱스가 직접 코딩될 수 있다.
b. 일 예에서, I = Modulo(C-R, MaxPaletteIndex) - 1이 코딩될 수 있다.
i. 일 예에서, 인덱스는 Modulo(I+1+R, MaxPaletteIndex)로서 재구성될 수 있다.
ii. 일 예에서, 0보다 작은 Modulo(C-R, MaxPaletteIndex) - 1은 비트스트림에서 허용되지 않을 수 있다.
iii. 일 예에서, cMax = (MaxPaletteIndex - 1)인 절단된 이진 코드가 값 I를 코딩하는 데 사용될 수 있다.
iv. 대안적으로, 팔레트 코딩된 블록에서의 첫 번째 인덱스에 대해, Modulo(C-R, MaxPaletteIndex)가 코딩될 수 있다.
v. 대안적으로, 팔레트 코딩된 블록에서의 첫 번째 인덱스에 대해, 인덱스가 직접 코딩될 수 있다.
25. 팔레트 블록의 디코딩의 시작에서, 참조 인덱스 R은 -1과 동일하게 설정될 수 있다.
a. 대안적으로, 참조 인덱스 R은 0과 동일하게 설정될 수 있다.
26. 팔레트 모드와 로컬 이중 트리를 배타적으로 인에이블시키는 것이 제안된다.
a. 일 예에서, 팔레트 모드가 인에이블될 때 로컬 이중 트리가 허용되지 않을 수 있다.
i. 대안적으로, 일 예에서, 로컬 이중 트리가 인에이블될 때 팔레트 모드가 허용되지 않을 수 있다.
b. 일 예에서, 로컬 이중 트리가, 4:4:4와 같은, 특정 색상 포맷에 대해 인에이블되지 않는다.
c. 일 예에서, 코딩 트리가 MODE_TYPE_INTRA일 때 팔레트 모드가 허용되지 않을 수 있다.
d. 로컬 이중 트리의 사용에 기초하여 팔레트 예측자를 리셋시키는 것이 제안된다.
i. 일 예에서, 단일 트리가 로컬 이중 트리로 전환될 때 팔레트 예측자가 리셋될 수 있다.
ii. 일 예에서, 로컬 이중 트리가 단일 트리로 전환될 때 팔레트 예측자가 리셋될 수 있다.
iii. 대안적으로, 게다가, 팔레트 예측자에서 엔트리들의 사용을 시그널링할지 여부(예를 들면, palette_predictor_run)는 트리 유형에 의존할 수 있다.
1. 일 예에서, 팔레트 예측자에서 엔트리들의 사용을 시그널링하는 것(예를 들면, palette_predictor_run)은 로컬 이중 트리와 단일 트리 사이의 전환을 만날 때 생략된다.
27. 로컬 이중 트리가 적용될 때 팔레트 예측 테이블 내의 반복되는 팔레트 엔트리들을 제거하는 것이 제안된다.
a. 일 예에서, 로컬 이중 트리가 적용될 때 팔레트 예측 테이블이 리셋될 수 있다.
i. 대안적으로, 일 예에서, 디코더는 예측 테이블 내의 모든 팔레트 엔트리들을 검사하고 로컬 이중 트리가 적용될 때 반복되는 팔레트 엔트리들을 제거할 수 있다.
ii. 대안적으로, 일 예에서, 디코더는 예측 테이블 내의 부분 팔레트 엔트리들을 검사하고 로컬 이중 트리가 적용될 때 반복되는 팔레트 엔트리들을 제거할 수 있다.
iii. 일 예에서, 팔레트 엔트리들을 검사할 때 전체 프루닝(full pruning) 또는 부분 프루닝(partial pruning)이 적용될 수 있다.
1. 일 예에서, 선택된 엔트리들의 세트가 검사될 수 있다(예를 들면, 세트는 팔레트 예측자 내의 모든 또는 부분 팔레트 엔트리들을 포함한다).
a) 일 예에서, 선택된 엔트리들에 대해 전체 또는 부분 프루닝이 적용될 수 있다.
2. 일 예에서, 전체 프루닝은 하나의 엔트리가 추가될 수 있는 모든 엔트리들과 비교된다는 것을 나타낼 수 있다.
3. 일 예에서, 부분 프루닝은 하나의 엔트리가 추가될 수 있는 부분 엔트리들과 비교된다는 것을 나타낼 수 있다.
iv. 일 예에서, 2 개의 팔레트 엔트리가 동일한지 여부는 그들의 루마 성분 값들이 동일한지 여부에만 기초할 수 있다.
1. 대안적으로, 일 예에서, 2 개의 팔레트 엔트리가 동일한지 여부는 그들의 크로마 성분 값들이 동일한지 여부에만 기초할 수 있다.
2. 대안적으로, 일 예에서, 2 개의 팔레트 엔트리가 동일한지 여부는 그들의 루마 및 크로마 성분 값들 양쪽 모두가 동일한지 여부에 기초할 수 있다.
v. 일 예에서, 위의 방법은 로컬 이중 트리가 루마 성분을 프로세싱하기 시작할 때에만 루마 블록들에 적용될 수 있다.
1. 대안적으로, 일 예에서, 위의 방법은 로컬 이중 트리가 크로마 성분을 프로세싱하기 시작할 때에만 크로마 블록들에 적용될 수 있다.
vi. 대안적으로, 일 예에서, 인코더는 2 개의 팔레트 엔트리의 3 개의 성분이 상이할 때 2 개의 팔레트 엔트리를 상이한 것으로 간주하는 제약을 추가할 수 있다.
28. 현재 팔레트 엔트리가 팔레트 예측 테이블 내의 엔트리와 상이한 수의 색상 성분들을 가질 때, 팔레트 예측 테이블은 사용되도록 허용되지 않을 수 있다.
a. 일 예에서, 현재 팔레트 엔트리가 예측과 상이한 수의 색상 성분들을 가질 때 팔레트 예측 테이블 내의 모든 엔트리들에 대한 재사용됨(reused) 플래그들이 참으로서 표시될 수 있지만 현재 블록에 대해 사용되지 않을 수 있다.
b. 일 예에서, 현재 팔레트 엔트리가 예측과 상이한 수의 색상 성분들을 가질 때 팔레트 예측 테이블 내의 모든 엔트리들에 대한 재사용됨 플래그들이 거짓으로서 표시될 수 있다.
29. 예측 테이블과 현재 팔레트 테이블이 상이한 색상 성분(들)을 가질 때, 팔레트 예측 테이블이 사용되도록 허용되지 않을 수 있다.
a. 일 예에서, 예측 테이블과 현재 팔레트 테이블이 상이한 색상 성분들을 가질 때 팔레트 예측 테이블 내의 모든 엔트리들에 대한 재사용됨 플래그들이 참으로서 표시될 수 있지만 현재 블록에 대해 사용되지 않을 수 있다.
b. 일 예에서, 예측 테이블과 현재 팔레트 테이블이 상이한 색상 성분들을 가질 때 팔레트 예측 테이블 내의 모든 엔트리들에 대한 재사용됨 플래그들이 거짓으로서 표시될 수 있다.
30. 이스케이프 심벌들이 예측 코딩될 수 있다, 예컨대, 이전에 코딩된 이스케이프 심벌들에 기초하여 코딩될 수 있다.
a. 일 예에서, 하나의 성분의 이스케이프 심벌이 동일한 색상 성분에서의 코딩된 값들에 의해 예측될 수 있다.
i. 일 예에서, 이스케이프 심벌은 예측자와 동일한 성분에서의 하나의 이전에 코딩된 이스케이프 심벌을 이용할 수 있으며 그들 사이의 잔차가 시그널링될 수 있다.
ii. 대안적으로, 이스케이프 심벌은 예측자와 동일한 성분에서의 이전에 K 번째 코딩된 이스케이프 심벌을 이용할 수 있으며 그들 사이의 잔차가 시그널링될 수 있다.
iii. 대안적으로, 이스케이프 심벌은 동일한 성분에서의 다수의(예를 들면, K 개의) 코딩된 이스케이프 심벌들로부터 예측될 수 있다.
1. 일 예에서, K는 정수(예를 들면, 1, 2 또는 3)일 수 있으며 다음에 의존할 수 있다.
a) SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU들의 그룹/브릭들에서 시그널링되는 메시지.
b) 내부 비트 깊이
c) 입력 비트 깊이
d) 내부 비트 깊이와 입력 깊이 사이의 차이
e) 현재 블록의 블록 치수
f) 현재 블록의 현재 양자화 파라미터
g) 색상 포맷의 표시(예컨대, 4:2:0, 4:4:4, RGB 또는 YUV)
h) 코딩 구조(예컨대, 단일 트리 또는 이중 트리)
i) 색상 성분(예컨대, 루마 성분 및/또는 크로마 성분들)
b. 일 예에서, 하나의 성분의 이스케이프 심벌이 다른 성분의 코딩된 값들에 의해 예측될 수 있다.
c. 일 예에서, 픽셀은 다수의 색상 성분들을 가질 수 있고, 픽셀이 이스케이프 심벌로서 취급되는 경우, 하나의 성분의 값이 다른 성분들의 샘플들의 값들에 의해 예측될 수 있다.
i. 일 예에서, 이스케이프 심벌의 U 성분이 해당 심벌의 V 성분에 의해 예측될 수 있다.
d. 일 예에서, 위의 방법들은 특정 색상 성분(예를 들면, 루마 성분 또는 크로마 성분들)에만, 또는, 코딩된 정보에 기초하는 것과 같은, 특정 조건들 하에서만 적용될 수 있다.
31. 팔레트 관련 신택스 요소들의 시그널링은 팔레트의 최대 크기, 및/또는 블록 치수, 및/또는 무손실 모드의 사용 및/또는 양자화 파라미터들(QP)에 의존할 수 있다.
a. 일 예에서, 무손실 코드 블록의 경우 그리고/또는 QP가 임계치보다 크지 않은 경우 그리고/또는 변환 스킵이 적용되는 경우, 블록의 팔레트 크기는 블록 치수와 동일한 것으로 추론된다.
i. 대안적으로, 무손실 코드 블록의 경우 그리고/또는 QP가 임계치보다 크지 않은 경우, 블록의 팔레트 크기는 min(블록 치수, 최대 팔레트 크기)와 동일한 것으로 추론된다.
b. 블록에서의 이스케이프 샘플들의 사용을 시그널링할지 여부는 블록 치수 및/또는 무손실 코딩된 모드의 사용(예를 들면, QP가 주어진 값(예를 들면, 4)과 동일한지 여부; 및/또는 transform_skip_flag가 1과 동일한 것; 또는 transquant_bypass_flag가 참인지 여부) 및/또는 QP에 의존할 수 있다.
i. 대안적으로, 게다가, 이스케이프 샘플들의 사용을 시그널링할지 여부는 현재 블록의 블록 치수와 현재 팔레트 크기 사이의 관계에 의존할 수 있다.
1. 일 예에서, 이를 시그널링할지 여부는 블록 치수가 현재 팔레트 크기와 동일한지 여부에 의존할 수 있다.
a) 대안적으로, 게다가, 블록 치수가 현재 팔레트 크기와 동일한 경우, 이는 시그널링되지 않고 거짓인 것으로 추론된다.
2. 대안적으로, 이를 시그널링할지 여부는 블록 치수가 현재 팔레트 크기보다 작지 않은지 여부에 의존할 수 있다.
a) 대안적으로, 게다가, 블록 치수가 현재 팔레트 크기보다 작지 않은 경우, 이는 시그널링되지 않고 거짓인 것으로 추론된다.
ii. 대안적으로, 게다가, 이스케이프 샘플들의 사용을 시그널링할지 여부는 블록 치수, 팔레트의 최대 크기, 및/또는 무손실 모드 사이의 관계에 의존할 수 있다.
1. 일 예에서, 하나의 블록이 무손실 모드로 코딩되고 블록 치수가 팔레트의 최대 크기보다 작은 경우, 이스케이프 샘플들의 사용의 시그널링이 생략될 수 있고 이는 거짓인 것으로 추론될 수 있다.
2. 일 예에서, 하나의 블록이 임계치보다 크지 않은 QP로 코딩되고 블록 치수가 팔레트의 최대 크기보다 작은 경우, 이스케이프 샘플들의 사용의 시그널링이 생략될 수 있고 이는 거짓인 것으로 추론될 수 있다.
iii. 이스케이프 샘플들의 사용의 표시(예를 들면, palette_escape_val_present_flag)는 특정 조건들 하에서 추론될 수 있다.
1. 일 예에서, 현재 블록 크기가 최대 허용 팔레트 크기(예를 들면, palette_max_size)보다 작거나 같을 때 이스케이프 샘플들의 사용의 표시가 거짓인 것으로 추론될 수 있다.
a) 대안적으로, 일 예에서, 현재 블록 크기가 최대 허용 팔레트 크기보다 클 때 이스케이프 샘플들의 사용의 표시가 시그널링될 수 있다.
b) 대안적으로, 일 예에서, 현재 블록 크기가 최대 허용 팔레트 크기보다 클 때 이스케이프 샘플들의 사용의 표시가 거짓인 것으로 추론될 수 있다.
2. 일 예에서, 위의 방법들은 무손실 코딩 조건 하에서 적용될 수 있다.
3. 일 예에서, 위의 방법들은 무손실 코딩되는 CU들에 적용될 수 있다.
4. 일 예에서, 현재 블록 크기가 현재 블록의 팔레트 크기보다 작거나 같을 때 이스케이프 샘플들의 사용의 표시가 거짓인 것으로 추론될 수 있다.
5. 일 예에서, 이스케이프 샘플들의 사용 플래그가 추론될 때, 대응하는 신택스 요소, 예를 들면, palette_escape_val_present_flag가 비트스트림에서 스킵될 수 있다.
32. 팔레트 모드에서의 런 길이 코딩을 위한 콘텍스트들은 팔레트 엔트리들을 인덱싱하기 위한 팔레트 인덱스에 의존할 수 있다.
a. 일 예에서, 디코더에서의 인덱스 조정 프로세스 이후의 팔레트 인덱스(섹션 2.1.3에서 언급됨)는 길이 요소의 프리픽스(예를 들면, palette_run_prefix)에 대한 콘텍스트들을 도출하는 데 이용될 수 있다.
b. 대안적으로, 일 예에서, 글머리 기호 13에서 정의되는 I는 길이 요소의 프리픽스(예를 들면, palette_run_prefix)에 대한 콘텍스트들을 도출하기 위해 팔레트 인덱스를 대체할 수 있다.
33. 양자화 파라미터 예측자들에 대한 도출 프로세스에서 이용되는 좌측 이웃 블록 및/또는 위쪽 이웃 블록의 위치들을 모드/MV(예를 들면, MPM) 도출에서 사용되는 좌측 이웃 블록 및/또는 위쪽 이웃 블록의 위치들과 정렬시키는 것이 제안된다.
a. 양자화 파라미터에 대한 도출 프로세스에서 이용되는 좌측 이웃 블록 및/또는 위쪽 이웃 블록의 위치들이 병합/AMVP 후보 리스트 도출 프로세스에서 사용되는 것과 정렬될 수 있다.
b. 일 예에서, 양자화 파라미터에 대한 도출 프로세스에서 이용되는 좌측 이웃 블록 및/또는 위쪽 이웃 블록의 위치들은 도 8에 도시된 좌측/위쪽 이웃 블록들일 수 있다.
34. 이스케이프 샘플들이 현재 블록에 존재하는지 여부와 독립적으로 블록 레벨 QP 차이가 전송될 수 있다.
a. 일 예에서, 블록 레벨 QP 차이를 송신할지 여부 및/또는 어떻게 송신할지는 팔레트 이외의 다른 모드들에서 코딩되는 블록들을 뒤따를 수 있다.
b. 일 예에서, 팔레트 블록에 대해 블록 레벨 QP 차이가 항상 송신되는 것은 아닐 수 있다.
c. 일 예에서, 블록 폭이 임계치보다 클 때 팔레트 블록에 대해 블록 레벨 QP 차이가 송신될 수 있다.
d. 일 예에서, 블록 높이가 임계치보다 클 때 팔레트 블록에 대해 블록 레벨 QP 차이가 송신될 수 있다.
e. 일 예에서, 블록 크기가 임계치보다 클 때 팔레트 블록에 대해 블록 레벨 QP 차이가 송신될 수 있다.
f. 일 예에서, 위의 예들은 루마 또는 크로마 블록들에만 적용될 수 있다.
35. 팔레트 블록에 대한 코딩된 블록 플래그들(CBF들)(예를 들면, cbf_luma, cbf_cb, cbf_cr) 중 하나 이상은 1과 동일하게 설정될 수 있다.
a. 일 예에서, 팔레트 블록에 대한 CBF는 항상 1과 동일하게 설정될 수 있다.
b. 팔레트 블록에 대한 CBF들 중 하나 이상은 이스케이프 픽셀들이 현재 블록에 존재하는지 여부에 의존할 수 있다.
i. 일 예에서, 팔레트 블록이 이스케이프 샘플들을 가질 때, 그의 cbf는 1과 동일하게 설정될 수 있다.
ii. 대안적으로, 팔레트 블록이 이스케이프 샘플들을 갖지 않을 때, 그의 cbf는 0과 동일하게 설정될 수 있다.
c. 대안적으로, 이웃하는 팔레트 코딩된 블록에 액세스할 때, 이는 CBF가 1과 동일한 인트라 코딩된 블록으로서 취급될 수 있다.
36. 팔레트 블록에 적용되는 루마 및/또는 크로마 QP와 블록에 대해 도출되는 QP(예를 들면, JVET-O2001-vE 명세에서의 QpY 또는 Qp′Y) 사이의 차이는 팔레트 블록들에 대한 고정 값과 동일하게 설정될 수 있다.
a. 일 예에서, 루마 및/또는 크로마 QP 오프셋은 0과 동일하게 설정될 수 있다.
b. 일 예에서, Cb 및 Cr에 대한 크로마 QP 오프셋들은 상이할 수 있다.
c. 일 예에서, 루마 QP 오프셋 및 크로마 QP 오프셋들은 상이할 수 있다.
d. 일 예에서, 크로마 QP 오프셋(들)은 DPS/VPS/SPS/PPS/슬라이스/브릭/타일 헤더에 표시될 수 있다.
37. NumPltIdx에 의해 표기되는 현재 블록에 대해 명시적으로 시그널링되거나 추론되는 팔레트 인덱스들의 수(예를 들면, num_palette_indices_minus1+1)는 K보다 크거나 같도록 제한될 수 있다.
a. 일 예에서, K는 현재 팔레트 크기, 이스케이프 플래그 및/또는 팔레트 코딩된 블록들의 다른 정보에 기초하여 결정될 수 있다. S를 현재 블록의 현재 팔레트 크기라고 하고 E를 이스케이프 존재 플래그의 값(예를 들면, palette_escape_val_present_flag)이라고 하자. BlkS를 현재 블록 크기라고 하자.
i. 일 예에서, K는 S와 동일하게 설정될 수 있다.
ii. 대안적으로, 일 예에서, K는 S + E와 동일하게 설정될 수 있다.
iii. 대안적으로, 일 예에서, K는 (예측된 팔레트 엔트리들의 수 + 시그널링된 팔레트 엔트리들의 수 + palette_escape_val_present_flag) (예를 들면, NumPredictedPaletteEntries + num_signalled_palette_entries + palette_escape_val_present_flag)와 동일하게 설정될 수 있다.
iv. 대안적으로, 일 예에서, K는 (팔레트 인덱스의 최댓값(예를 들면, MaxPaletteIndex)에 1을 더한 것)과 동일하게 설정될 수 있다.
v. 대안적으로, 일 예에서, K는 디코더에 시그널링될 수 있다.
i. 일 예에서, K는 고정 정수 값일 수 있다.
ii. 일 예에서, K는 정수이고 다음에 기초하여 결정될 수 있다.
1. 이전에 코딩된 블록들/현재 블록의 디코딩된 정보
2. 현재 블록/이웃(인접 또는 비인접) 블록들의 양자화 파라미터들
3. 비디오 콘텐츠(예를 들면, 스크린 콘텐츠 또는 자연 콘텐츠)
4. DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU(Largest coding unit)/CU(Coding unit)/LCU 행/LCU들의 그룹/TU/PU 블록/비디오 코딩 유닛에서 시그널링되는 메시지
5. CU/PU/TU/블록/비디오 코딩 유닛의 위치
6. 현재 블록 및/또는 그의 이웃 블록들의 블록 치수
7. 현재 블록 및/또는 그의 이웃 블록들의 블록 형상
8. 색상 포맷의 표시(예컨대, 4:2:0, 4:4:4, RGB 또는 YUV)
9. 코딩 트리 구조(예컨대, 이중 트리 또는 단일 트리)
10. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
11. 색상 성분(예를 들면, 루마 성분 및/또는 크로마 성분에만 적용될 수 있음)
12. 시간 계층 ID
13. 표준의 프로필들/레벨들/티어들
b. 일 예에서, num_palette_indices_minus1 대신에 (NumPltIdx - K)가 시그널링/파싱될 수 있다.
i. 대안적으로, 게다가, 이는 (S+E)가 1보다 작지 않을 때에만 시그널링될 수 있다.
ii. 일 예에서, (NumPltIdx - K)의 값은 이진화된 빈 스트링(bin string)이 프리픽스(예를 들면, 절단된 단항) 및/또는 m차 EG 코드를 갖는 서픽스를 가질 수 있는 이진화 방법으로 시그널링될 수 있다.
iii. 일 예에서, (NumPltIdx - K)의 값은 절단된 이진 이진화 방법으로 시그널링될 수 있다.
iv. 일 예에서, (NumPltIdx - K)의 값은 절단된 단항 이진화 방법으로 시그널링될 수 있다.
v. 일 예에서, (NumPltIdx - K)의 값은 m차 EG 이진화 방법으로 시그널링될 수 있다.
vi. 일 예에서, BlkS - K의 값은 위의 이진화 방법들에서 입력 파라미터(예를 들면, cMax)로서 사용될 수 있으며, 예컨대, 절단된 단항/절단된 이진 이진화 방법에 대한 최댓값으로서 사용될 수 있다.
c. 일 예에서, 적합성 비트스트림은 NumPltIdx가 K보다 크거나 같다는 것을 충족시켜야 한다.
d. 일 예에서, 적합성 비트스트림은 NumPltIdx가 K'보다 작거나 같다는 것을 충족시켜야 한다.
i. 일 예에서, K'는 (블록 폭 * 블록 높이)로 설정된다.
ii. 일 예에서, K'는 (블록 폭 * 블록 높이 - K)로 설정된다.
38. 위의 방법들을 적용할지 여부 및/또는 어떻게 적용할지는 다음에 기초할 수 있다:
a. 비디오 콘텐츠(예를 들면, 스크린 콘텐츠 또는 자연 콘텐츠)
b. DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU(Largest coding unit)/CU(Coding unit)/LCU 행/LCU들의 그룹/TU/PU 블록/비디오 코딩 유닛에서 시그널링되는 메시지
c. CU/PU/TU/블록/비디오 코딩 유닛의 위치
d. 현재 블록 및/또는 그의 이웃 블록들의 블록 치수
e. 현재 블록 및/또는 그의 이웃 블록들의 블록 형상
f. 색상 포맷의 표시(예컨대, 4:2:0, 4:4:4, RGB 또는 YUV)
g. 코딩 트리 구조(예컨대, 이중 트리 또는 단일 트리)
h. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
i. 색상 성분(예를 들면, 루마 성분 및/또는 크로마 성분에만 적용될 수 있음)
j. 시간 계층 ID
k. 표준의 프로필들/레벨들/티어들
l. 현재 블록이 하나의 이스케이프 샘플을 갖는지 여부.
i. 일 예에서, 위의 방법들은 현재 블록이 하나의 이스케이프 샘플을 적어도 가질 때에만 적용될 수 있다.
m. 현재 블록이 무손실 모드로 코딩되는지 여부(예를 들면, cu_transquant_bypass_flag)
i. 일 예에서, 위의 방법들은 현재 블록이 무손실 모드로 코딩되지 않을 때에만 적용될 수 있다.
n. 무손실 코딩이 인에이블되는지 여부(예를 들면, transquant_bypass_enabled, cu_transquant_bypass_flag)
i. 일 예에서, 위의 방법들은 무손실 코딩이 디스에이블될 때에만 적용될 수 있다.
라인 기반 CG 팔레트 모드 관련
39. 이들이 이스케이프 샘플들인지 여부가 각각의 CG에 대해 표시될 수 있다.
a. 일 예에서, 각각의 CG에 대해, 이스케이프 샘플들이 존재하는지 여부를 나타내기 위해 신택스 요소, 예를 들면, palette_escape_val_present_flag가 비트스트림에서 송신될 수 있다.
i. 일 예에서, palette_escape_val_present_flag는 시그널링되거나 CG 크기, 현재 블록 내의 디코딩된 샘플들의 수, 및/또는 현재 블록의 팔레트 크기에 기초하여 추론될 수 있다.
b. 일 예에서, 현재 CG에 대해, 이스케이프 샘플들이 존재하지 않을 때, 인덱스 조정이 적용될 수 있다.
c. 일 예에서, 현재 CG에 대해, 이스케이프 샘플들이 존재할 때, 인덱스 조정이 적용되지 않아야 한다.
d. 대안적으로, 현재 블록이 이스케이프 샘플들을 포함할 때에만 위의 방법들이 적용될 수 있다.
40. 라인 기반 CG 팔레트 모드에서, 위쪽 인덱스를 복사하는 것의 사용의 표시(예를 들면, copy_above_palette_indices_flag)는 콘텍스트 코딩되지 않을 수 있다.
e. 대안적으로, 일 예에서, 위쪽 인덱스를 복사하는 것의 사용의 표시(예를 들면, copy_above_palette_indices_flag)는 어떠한 콘텍스트들도 사용하지 않고 바이패스 코딩될 수 있다.
i. 일 예에서, 위쪽 인덱스를 복사하는 것의 사용의 표시(예를 들면, copy_above_palette_indices_flag)와 현재 세그먼트에서의 복사 플래그들(예를 들면, run_copy_flag)이 인터리빙되어 시그널링될 수 있다.
f. 일 예에서, 위쪽 인덱스를 복사하는 것의 사용의 표시(예를 들면, copy_above_palette_indices_flag)는 현재 세그먼트에서의 모든 복사 플래그들(예를 들면, run_copy_flag)이 시그널링된 후에 코딩될 수 있다.
g. 일 예에서, 위쪽 인덱스를 복사하는 것의 사용의 표시(예를 들면, copy_above_palette_indices_flag)와 시그널링된 인덱스는 인터리빙되어 코딩될 수 있다.
h. 위의 방법들은 다른 팔레트 기반 코딩 모드들에도 적용될 수 있다.
41. 복사 플래그들, 런 유형들, 위쪽 인덱스를 복사하는 것의 사용의 표시들, 및 이스케이프 값들이 인터리빙되어 시그널링될 수 있다.
i. 일 예에서, 제1 복사 플래그, 런 유형, 위쪽 인덱스를 복사하는 것의 사용의 표시 및 이스케이프 값들이 순서대로 코딩될 수 있고, 뒤이어서 제2 복사 플래그, 런 유형, 위쪽 인덱스를 복사하는 것의 사용의 표시 및 이스케이프 값들이 순서대로 코딩될 수 있다.
j. 대안적으로, 게다가, 주어진 CG에 대해, 위의 방법이 적용될 수 있다.
42. 라인 기반 CG 팔레트 모드는, Th로서 표기되는, 주어진 임계치보다 작거나 같은 크기를 갖는 블록들에 대해 디스에이블될 수 있다.
k. 일 예에서, Th는 라인 기반 CG 팔레트 모드에서의 세그먼트의 샘플들의 수와 동일하다.
l. 일 예에서, Th는 고정된 수(예를 들면, 16)이며 다음에 기초할 수 있다.
i. 비디오 콘텐츠(예를 들면, 스크린 콘텐츠 또는 자연 콘텐츠)
ii. DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU(Largest coding unit)/CU(Coding unit)/LCU 행/LCU들의 그룹/TU/PU 블록/비디오 코딩 유닛에서 시그널링되는 메시지
iii. CU/PU/TU/블록/비디오 코딩 유닛의 위치
iv. 현재 블록 및/또는 그의 이웃 블록들의 블록 치수
v. 현재 블록 및/또는 그의 이웃 블록들의 블록 형상
vi. 색상 포맷의 표시(예컨대, 4:2:0, 4:4:4, RGB 또는 YUV)
vii. 코딩 트리 구조(예컨대, 이중 트리 또는 단일 트리)
viii. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
ix. 색상 성분(예를 들면, 루마 성분 및/또는 크로마 성분에만 적용될 수 있음)
x. 시간 계층 ID
xi. 표준의 프로필들/레벨들/티어들
xii. 현재 블록의 양자화 파라미터
xiii. 현재 블록이 하나의 이스케이프 샘플을 갖는지 여부.
xiv. 무손실 코딩이 인에이블되는지 여부(예를 들면, transquant_bypass_enabled, cu_transquant_bypass_flag)
BDPCM 관련
43. 하나의 블록이 BDPCM으로 코딩되고 다수의 변환 블록들 또는 서브블록들로 분할될 때, 잔차 예측은 블록 레벨에서 행해질 수 있고, 잔차들의 시그널링은 서브블록/변환 블록 레벨에서 행해진다.
a. 대안적으로, 게다가, 다른 서브블록의 재구성 프로세스에서 하나의 서브블록의 재구성이 허용되지 않는다.
b. 대안적으로, 잔차 예측 및 잔차들의 시그널링은 서브블록/변환 블록 레벨에서 행해진다.
i. 이러한 방식으로, 하나의 서브블록의 재구성이 다른 서브블록의 재구성 프로세스에서 활용될 수 있다.
크로마 QP 테이블 관련
44. 주어진 인덱스에 대해, joint_cb_cr 모드에 대한 크로마 QP 테이블의 값은 Cb에 대한 크로마 QP 테이블의 값과 Cr에 대한 크로마 QP 테이블의 값 양쪽 모두에 의해 제약될 수 있다.
c. 일 예에서, joint_cb_cr 모드에 대한 크로마 QP 테이블의 값은 Cb에 대한 크로마 QP 테이블의 값과 Cr에 대한 크로마 QP 테이블의 값 사이(경계 포함)로 제약될 수 있다.
디블로킹 관련
45. 디블록킹에서의 MV 비교는 대안적인 1/2 펠 보간 필터가 사용되는지 여부(예를 들면, JVET-O2001-vE 명세에서 hpelIfIdx로 표시됨)에 의존할 수 있다.
d. 일 예에서, 상이한 보간 필터들을 사용하는 블록들은 상이한 MV들을 갖는 것으로 취급될 수 있다.
e. 일 예에서, 대안적인 1/2 펠 보간 필터가 관여될 때 디블록킹 비교를 위해 일정한 오프셋이 MV 차이에 가산될 수 있다.
일반 청구
46. 위의 방법들을 적용할지 여부 및/또는 어떻게 적용할지는 다음에 기초할 수 있다:
a. 비디오 콘텐츠(예를 들면, 스크린 콘텐츠 또는 자연 콘텐츠)
b. DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU(Largest coding unit)/CU(Coding unit)/LCU 행/LCU들의 그룹/TU/PU 블록/비디오 코딩 유닛에서 시그널링되는 메시지
c. CU/PU/TU/블록/비디오 코딩 유닛의 위치
d. 현재 블록 및/또는 그의 이웃 블록들의 블록 치수
e. 현재 블록 및/또는 그의 이웃 블록들의 블록 형상
f. 현재 블록의 양자화 파라미터
g. 색상 포맷의 표시(예컨대, 4:2:0, 4:4:4, RGB 또는 YUV)
h. 코딩 트리 구조(예컨대, 이중 트리 또는 단일 트리)
i. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
j. 색상 성분(예를 들면, 루마 성분 및/또는 크로마 성분에만 적용될 수 있음)
k. 시간 계층 ID
l. 표준의 프로필들/레벨들/티어들
m. 현재 블록이 하나의 이스케이프 샘플을 갖는지 여부.
i. 일 예에서, 위의 방법들은 현재 블록이 하나의 이스케이프 샘플을 적어도 가질 때에만 적용될 수 있다.
n. 현재 블록이 무손실 모드로 코딩되는지 여부(예를 들면, cu_transquant_bypass_flag)
ii. 일 예에서, 위의 방법들은 현재 블록이 무손실 모드로 코딩되지 않을 때에만 적용될 수 있다.
o. 무손실 코딩이 인에이블되는지 여부(예를 들면, transquant_bypass_enabled, cu_transquant_bypass_flag)
5. 실시예들
실시예는 JVET-O2001-vE를 기반으로 한다. 새로 추가된 텍스트들은 굵은 이중 괄호들로 묶여 있으며, 예를 들면, {{a}}는 "a"가 추가되었음을 나타낸다. 삭제된 텍스트들은 굵은 이중 대괄호들로 묶여 있으며, 예를 들면, [[b]]는 "b"가 삭제되었음을 나타낸다.
5.1 실시예 #1
팔레트 모드애 대한 디코딩 프로세스
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 픽처의 좌측 상단 루마 샘플을 기준으로 현재 블록의 좌측 상단 루마 샘플을 지정하는 위치( xCb, yCb ),
- 변수 startComp는 팔레트 테이블에서의 첫 번째 색상 성분을 지정한다.
- 현재 블록의 색상 성분을 지정하는 변수 cIdx,
- 현재 블록의 폭 및 높이를, 제각기, 지정하는 2 개의 변수 nCbW 및 nCbH.
이 프로세스의 출력은 블록에 대한 재구성된 샘플 값들을 지정하는 어레이 recSamples[ x ][ y ](단, x = 0.. nCbW - 1, y = 0.. nCbH - 1)이다.
cIdx의 값에 따라, 변수들 nSubWidth 및 nSubHeight는 다음과 같이 도출된다:
- cIdx가 0과 동일한 경우, nSubWidth는 1로 설정되고 nSubHeight는 1로 설정된다.
- 그렇지 않은 경우, nSubWidth는 SubWidthC로 설정되고 nSubHeight는 SubHeightC로 설정된다.
위치 ( xCb, yCb )에 있는 재구성된 샘플 어레이 recSamples의 ( nCbW x nCbH ) 블록은 recSamples[ x ][ y ](단, x = 0..nCTbW - 1이고 y = 0..nCbH - 1임)에 의해 표현되고, 0 내지 nCbW - 1의 범위(경계 포함)에 있는 각각의 x 및 0 내지 nCbH - 1의 범위(경계 포함)에 있는 각각의 y에 대한 recSamples[ x ][ y ]의 값은 다음과 같이 도출된다:
- 변수들 xL 및 yL은 다음과 같이 도출된다:
Figure pct00030
- 변수 bIsEscapeSample은 다음과 같이 도출된다:
- PaletteIndexMap[ xCb + xL ][ yCb + yL ]이 MaxPaletteIndex와 동일하고 palette_escape_val_present_flag가 1과 동일한 경우, bIsEscapeSample은 1과 동일하게 설정된다.
- 그렇지 않은 경우, bIsEscapeSample은 0과 동일하게 설정된다.
- bIsEscapeSample이 0과 동일한 경우, 다음이 적용된다:
Figure pct00031
- 그렇지 않고, cu_transquant_bypass_flag가 1과 동일한 경우, 다음이 적용된다:
Figure pct00032
- 그렇지 않은 경우(bIsEscapeSample이 1과 동일하고 cu_transquant_bypass_flag가 0과 동일함), 다음과 같은 순서의 단계들이 적용된다:
1. 양자화 파라미터 qP는 다음과 같이 도출된다:
- cIdx가 0과 동일한 경우,
Figure pct00033
- 그렇지 않고, cIdx가 1과 동일한 경우,
Figure pct00034
- 그렇지 않은 경우(cIdx가 2와 동일한 경우),
Figure pct00035
2. 변수 bitDepth는 다음과 같이 도출된다:
Figure pct00036
3. [[리스트 levelScale[ ]은 levelScale[ k ] = { 40, 45, 51, 57, 64, 72 }(단, k = 0..5)로서 지정된다.]]
4. 다음이 적용된다:
Figure pct00037
{{ T는 성분 cIdx에 대해 (internal_bit_depth - input_bit_depth)와 동일하게 설정된다
Nbits = max(T, (qP - 4) / 6)
- Nbits가 T와 동일한 경우
recSamples[ x ][ y ] = PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] << Nbits
- 그렇지 않은 경우
recSamples[ x ][ y ] = (PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] << Nbits) + (1 << (Nbits - 1) }}
[[recSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) - 1, tmpVal ) (8-277)]]
- 다음 조건들 중 하나가 참일 때:
- cIdx가 0과 동일하고 numComps가 1과 동일하다;
- cIdx가 2와 동일하다;
변수 PredictorPaletteSize[startComp] 및 어레이 PredictorPaletteEntries는 다음과 같이 도출되거나 수정된다:
Figure pct00038
Figure pct00039
PredictorPaletteSize[startComp]의 값이 0 내지 PaletteMaxPredictorSize의 범위(경계 포함)에 있어야 하는 것이 비트스트림 적합성의 요구사항이다.
5.2 실시예 #2
이 실시예는 팔레트 인덱스 도출을 설명한다.
팔레트 코딩 시맨틱스
[[변수 adjustedRefPaletteIndex는 다음과 같이 도출된다:
Figure pct00040
CopyAboveIndicesFlag[ xC ][ yC ]가 0과 동일할 때, 변수 CurrPaletteIndex는 다음과 같이 도출된다:
Figure pct00041
palette_idx_idc에 대한 이진화 프로세스
이 프로세스에 대한 입력은 신택스 요소 palette_idx_idc 및 변수 MaxPaletteIndex에 대한 이진화의 요청이다.
이 프로세스의 출력은 신택스 요소의 이진화이다.
변수 cMax는 다음과 같이 도출된다:
- [[이 프로세스가 현재 블록에 대해 처음으로 호출되는 경우, ]]cMax는 MaxPaletteIndex와 동일하게 설정된다.
- [[그렇지 않은 경우(이 프로세스가 현재 블록에 대해 처음으로 호출되지 않은 경우), cMax는 MaxPaletteIndex에서 1을 뺀 것과 동일하게 설정된다.]]
palette_idx_idc에 대한 이진화는 cMax를 사용하여 9.3.3.4 절에 명시된 TB 이진화 프로세스를 호출하는 것에 의해 도출된다.
5.3 실시예 #3
표 9- 77 - 신택스 요소들 및 관련 이진화들
Figure pct00042
8.4.5.3 팔레트 모드애 대한 디코딩 프로세스
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 픽처의 좌측 상단 루마 샘플을 기준으로 현재 블록의 좌측 상단 루마 샘플을 지정하는 위치( xCb, yCb ),
- 변수 startComp는 팔레트 테이블에서의 첫 번째 색상 성분을 지정한다.
- 현재 블록의 색상 성분을 지정하는 변수 cIdx,
- 현재 블록의 폭 및 높이를, 제각기, 지정하는 2 개의 변수 nCbW 및 nCbH.
이 프로세스의 출력은 블록에 대한 재구성된 샘플 값들을 지정하는 어레이 recSamples[ x ][ y ](단, x = 0.. nCbW - 1, y = 0.. nCbH - 1)이다.
cIdx의 값에 따라, 변수들 nSubWidth 및 nSubHeight는 다음과 같이 도출된다:
...
- 그렇지 않은 경우(bIsEscapeSample이 1과 동일하고 cu_transquant_bypass_flag가 0과 동일한 경우), 다음과 같은 순서의 단계들이 적용된다:
5. 양자화 파라미터 qP는 다음과 같이 도출된다:
- cIdx가 0과 동일한 경우,
Figure pct00043
- 그렇지 않고, cIdx가 1과 동일한 경우,
Figure pct00044
- 그렇지 않은 경우(cIdx가 2와 동일한 경우),
Figure pct00045
6. 변수 bitDepth는 다음과 같이 도출된다:
Figure pct00046
7. [[리스트 levelScale[ ]은 levelScale[ k ] = { 40, 45, 51, 57, 64, 72 }(단, k = 0..5)로서 지정된다.]]
8. 다음이 적용된다:
Figure pct00047
5.4 실시예 #4
copy_above_palette_indices_flag가 1과 동일한 것은 수평 트래버스 스캔이 사용되는 경우 팔레트 인덱스가 위쪽 행에서의 동일한 위치에 있는 팔레트 인덱스와 동일하거나 수직 트래버스 스캔이 사용되는 경우 좌측 열에서의 동일한 위치에 있는 팔레트 인덱스와 동일하다는 것을 지정한다. copy_above_palette_indices_flag가 0과 동일한 것은 샘플의 팔레트 인덱스의 표시가 비트스트림에 코딩되거나 추론된다는 것을 지정한다.
...
변수 adjustedRefPaletteIndex는 다음과 같이 도출된다:
Figure pct00048
CopyAboveIndicesFlag[ xC ][ yC ]가 0과 동일할 때, 변수 CurrPaletteIndex는 다음과 같이 도출된다:
Figure pct00049
5.5 실시예 #5
표 9-77 - 신택스 요소들 및 관련 이진화들
Figure pct00050
8.4.5.3 팔레트 모드애 대한 디코딩 프로세스
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 픽처의 좌측 상단 루마 샘플을 기준으로 현재 블록의 좌측 상단 루마 샘플을 지정하는 위치( xCb, yCb ),
- 변수 startComp는 팔레트 테이블에서의 첫 번째 색상 성분을 지정한다,
- 현재 블록의 색상 성분을 지정하는 변수 cIdx,
- 현재 블록의 폭 및 높이를, 제각기, 지정하는 2 개의 변수 nCbW 및 nCbH.
이 프로세스의 출력은 블록에 대한 재구성된 샘플 값들을 지정하는 어레이 recSamples[ x ][ y ](단, x = 0.. nCbW - 1, y = 0.. nCbH - 1)이다.
cIdx의 값에 따라, 변수들 nSubWidth 및 nSubHeight는 다음과 같이 도출된다:
...
- 그렇지 않은 경우(bIsEscapeSample이 1과 동일하고 cu_transquant_bypass_flag가 0과 동일한 경우), 다음과 같은 순서의 단계들이 적용된다:
9. 양자화 파라미터 qP는 다음과 같이 도출된다:
- cIdx가 0과 동일한 경우,
Figure pct00051
- 그렇지 않고, cIdx가 1과 동일한 경우,
Figure pct00052
- 그렇지 않은 경우(cIdx가 2와 동일한 경우),
Figure pct00053
10. 변수 bitDepth는 다음과 같이 도출된다:
Figure pct00054
11. [[리스트 levelScale[ ]은 levelScale[ k ] = { 40, 45, 51, 57, 64, 72 }(단, k = 0..5)로서 지정된다.]]
12. 다음이 적용된다:
Figure pct00055
5.6 실시예 #6
이 실시예는 변환 스킵을 위해 변환 시프트를 스킵하는 설계를 예시하고, JVET-O2001-vE를 기반으로 한다.
8.7.2 스케일링 및 변환 프로세스
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 픽처의 좌측 상단 루마 샘플을 기준으로 현재 루마 변환 블록의 좌측 상단 샘플을 지정하는 루마 위치 ( xTbY, yTbY ),
- 현재 블록의 색상 성분을 지정하는 변수 cIdx,
- 변환 블록 폭을 지정하는 변수 nTbW,
- 변환 블록 높이를 지정하는 변수 nTbH.
이 프로세스의 출력은 잔차 샘플들 resSamples[ x ][ y ](단, x = 0..nTbW - 1, y = 0..nTbH - 1)의 (nTbW)x(nTbH) 어레이이다.
변수들 bitDepth, bdShift 및 tsShift는 다음과 같이 도출된다:
Figure pct00056
변수 codedCIdx는 다음과 같이 도출된다:
- cIdx가 0과 동일하거나 TuCResMode[ xTbY ][ yTbY ]가 0과 동일한 경우, codedCIdx는 cIdx와 동일하게 설정된다.
- 그렇지 않고, TuCResMode[ xTbY ][ yTbY ]가 1 또는 2와 동일한 경우 codedCIdx는 1과 동일하게 설정된다.
- 그렇지 않은 경우, codedCIdx는 2와 동일하게 설정된다.
변수 cSign은 ( 1 - 2 * slice_joint_cbcr_sign_flag )와 동일하게 설정된다.
잔차 샘플들 resSamples의 (nTbW)x(nTbH) 어레이는 다음과 같이 도출된다:
1. 8.7.3 절에 명시된 바와 같은 변환 계수들에 대한 스케일링 프로세스는 변환 블록 위치 ( xTbY, yTbY ), 변환 블록 폭 nTbW 및 변환 블록 높이 nTbH, codedCIdx와 동일하게 설정된 색상 성분 변수 cIdx 및 현재 색상 성분의 비트 깊이 bitDepth를 입력들로 하여 호출되고, 출력은 스케일링된 변환 계수들 d의 (nTbW)x(nTbH) 어레이이다.
2. 잔차 샘플들 r의 (nTbW)x(nTbH) 어레이는 다음과 같이 도출된다:
- [[transform_skip_flag[ xTbY ][ yTbY ]가 1과 동일하고 cIdx가 0과 동일한 경우, 잔차 샘플 어레이 값들 r[ x ][ y ](단, x = 0..nTbW - 1, y = 0..nTbH - 1)는 다음과 같이 도출된다:
Figure pct00057
- [[그렇지 않은 경우(transform_skip_flag[ xTbY ][ yTbY ]가 0과 동일하거나 cIdx가 0과 동일하지 않은 경우),]] 8.7.4.1 절에 명시된 바와 같은 스케일링된 변환 계수들에 대한 변환 프로세스는 변환 블록 위치 ( xTbY, yTbY ), 변환 블록 폭 nTbW 및 변환 블록 높이 nTbH, 색상 성분 변수 cIdx 및 스케일링된 변환 계수들 d의 (nTbW)x(nTbH) 어레이를 입력들로 하여 호출되고, 출력은 잔차 샘플들 r의 (nTbW)x(nTbH) 어레이이다.
3. 중간 잔차 샘플들 res [ x ][ y ](단, x = 0..nTbW - 1, y = 0..nTbH - 1)는 다음과 같이 도출된다:
- {{transform_skip_flag[ xTbY ][ yTbY ]가 1과 동일하고 cIdx가 0과 동일한 경우, 다음이 적용된다:
Figure pct00058
- {{그렇지 않은 경우(transform_skip_flag[ xTbY ][ yTbY ]가 0과 동일하고/하거나 cIdx가 0과 동일하지 않은 경우), 다음이 적용된다:}}
Figure pct00059
4. 잔차 샘플들 resSamples[ x ][ y ](단, x = 0..nTbW - 1, y = 0..nTbH - 1)는 다음과 같이 도출된다:
- cIdx가 codedCIdx와 동일한 경우, 다음이 적용된다:
Figure pct00060
- 그렇지 않고, TuCResMode[ xTbY ][ yTbY ]가 2와 동일한 경우, 다음이 적용된다:
Figure pct00061
- 그렇지 않은 경우, 다음이 적용된다:
Figure pct00062
8.7.3 변환 계수들에 대한 스케일링 프로세스
...
변수 rectNonTsFlag는 다음과 같이 도출된다:
Figure pct00063
변수들 bdShift, rectNorm 및 bdOffset은 다음과 같이 도출된다:
- {{transform_skip_flag[ xTbY ][ yTbY ]가 1과 동일하고 cIdx가 0과 동일한 경우, 다음이 적용된다:
bdShift = 10}}
- {{그렇지 않은 경우, 다음이 적용된다:}}
Figure pct00064
리스트 levelScale[ ][ ]은 levelScale[ j ][ k ] = { { 40, 45, 51, 57, 64, 72 }, { 57, 64, 72, 80, 90, 102 } }(단, j = 0..1, k = 0..5)로서 지정된다.
(nTbW)x(nTbH) 어레이 dz는 (nTbW)x(nTbH) 어레이 TransCoeffLevel[ xTbY ][ yTbY ][ cIdx ]와 동일하게 설정된다.
스케일링된 변환 계수들 d[ x ][ y ](단, x = 0..nTbW - 1, y = 0..nTbH - 1)의 도출에 대해, 다음이 적용된다:
- 중간 스케일링 인자 m[ x ][ y ]는 다음과 같이 도출된다:
- 다음 조건들 중 하나 이상이 참인 경우, m[ x ][ y ]는 16과 동일하게 설정된다:
- sps_scaling_list_enabled_flag가 0과 동일하다.
- transform_skip_flag[ xTbY ][ yTbY ]가 1과 동일하다.
- 그렇지 않은 경우, 다음이 적용된다:
m[ x ][ y ] = ScalingFactor[ Log2( nTbW ) ][ Log2( nTbH ) ][ matrixId ][ x ][ y ],
단, matrixId는 표 7-5에 명시된 바와 같음 (8-958)
- 스케일링 인자 ls[ x ][ y ]는 다음과 같이 도출된다:
- dep_quant_enabled_flag가 1과 동일한 경우, 다음이 적용된다:
Figure pct00065
- 그렇지 않은 경우(dep_quant_enabled_flag가 0과 동일한 경우), 다음이 적용된다:
Figure pct00066
- BdpcmFlag[ xTbY ][ yYbY ]가 1과 동일할 때, dz[ x ][ y ]는 다음과 같이 수정된다:
- BdpcmDir[ xTbY ][ yYbY ]가 0과 동일하고 x가 0보다 큰 경우, 다음이 적용된다:
Figure pct00067
- 그렇지 않고, BdpcmDir[ xTbY ][ yYbY ]가 1과 동일하고 y가 0보다 큰 경우, 다음이 적용된다:
Figure pct00068
- 값 dnc[ x ][ y ]는 다음과 같이 도출된다:
Figure pct00069
- 스케일링된 변환 계수 d[ x ][ y ]는 다음과 같이 도출된다:
Figure pct00070
5.7 실시예 #7
이 실시예는 팔레트 인덱스들의 수를 시그널링하는 설계를 예시한다.
7.3.8.6 팔레트 코딩 신택스
Figure pct00071
Figure pct00072
num_palette_indices{{_diff}}[[_minus1]] + [[1]] ({{MaxPaletteIndex + 1}})은 현재 블록에 대해 명시적으로 시그널링되거나 추론되는 팔레트 인덱스들의 수이다.
{{NumPaletteIndices는 (num_palette_indices_diff + MaxPaletteIndex + 1 )로 설정된다.}}
num_palette_indices{{_diff}}[[_minus1]]가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
{{num_palette_indices_diff의 값은 0 내지 cbWidth* cbHeight - (MaxPaletteIndex + 1)의 범위(경계 포함)에 있어야 한다.}}
copy_above_indices_for_final_run_flag가 1과 동일한 것은 코딩 유닛에서의 마지막 위치들의 팔레트 인덱스들이 수평 트래버스 스캔이 사용되는 경우 위쪽 행에 있는 팔레트 인덱스들로부터 복사되거나 또는 수직 트래버스 스캔이 사용되는 경우 좌측 열에 있는 팔레트 인덱스들로부터 복사된다는 것을 지정한다. copy_above_indices_for_final_run_flag가 0과 동일한 것은 코딩 유닛에서의 마지막 위치들의 팔레트 인덱스들이 PaletteIndexIdc[ [[num_palette_indices_minus1]] {{NumPaletteIndices - 1}}]로부터 복사된다는 것을 지정한다.
9.5.3.13 num _palette_indices{{_ diff }}[ [_minus1]]에 대한 이진화 프로세스
이 프로세스에 대한 입력은 신택스 요소 num_palette_indices{{_diff}}[[_minus1]] 및 MaxPaletteIndex에 대한 이진화의 요청이다.
이 프로세스의 출력은 신택스 요소의 이진화이다.
변수 cRiceParam은 다음과 같이 도출된다:
Figure pct00073
변수 cMax는 다음과 같이 cRiceParam으로부터 도출된다:
Figure pct00074
신택스 요소 num_palette_indices{{_diff}}[[_minus1]]의 이진화는 프리픽스 빈 스트링과 (존재할 때) 서픽스 빈 스트링의 연결이다.
프리픽스 빈 스트링의 도출에 대해, 다음이 적용된다:
- num_palette_indices{{_diff}}[[_minus1]]의 프리픽스 값인 prefixVal은 다음과 같이 도출된다:
Figure pct00075
- 프리픽스 빈 스트링은 변수들 cMax 및 cRiceParam을 입력들로 하여 prefixVal에 대한 9.3.3.3 절에 명시된 바와 같은 TR 이진화 프로세스를 호출하는 것에 의해 지정된다.
프리픽스 빈 스트링이 모든 비트들이 1과 동일한 길이 4의 비트 스트링과 동일할 때, 서픽스 빈 스트링이 존재하고 이는 다음과 같이 도출된다:
- num_palette_indices{{_diff}}[[_minus1]]의 서픽스 값인 suffixVal은 다음과 같이 도출된다:
Figure pct00076
- 서픽스 빈 스트링은 cRiceParam + 1과 동일하게 설정된 지수 골롬 차수 k를 사용하여 suffixVal의 이진화에 대한 9.3.3.5 절에 명시된 바와 같은 k차 EGk 이진화 프로세스를 호출하는 것에 의해 지정된다.
표 9-77 - 신택스 요소들 및 관련 이진화들
Figure pct00077
표 9-82 - 콘텍스트 코딩된 빈들을 갖는 신택스 요소들에의 ctxInc의 할당
Figure pct00078
5.8 실시예 #8
이 실시예는 라인 기반 CG 팔레트 모드에서의 인터리빙된 시그널링의 설계를 예시한다.
이 실시예는 JVET-P2001-v4에 제공된 초안을 기반으로 한다.
Figure pct00079
Figure pct00080
Figure pct00081
Figure pct00082
Figure pct00083
5.9 실시예 #9
변경 사항들은 JVET-P2001-vE를 기반으로 한다.
8.4.5.3 팔레트 모드애 대한 디코딩 프로세스
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 픽처의 좌측 상단 샘플을 기준으로 현재 코딩 블록의 좌측 상단 샘플을 지정하는 위치 ( xCbComp, yCbComp ),
- 단일 또는 이중 트리가 사용되는지 여부를 지정하는 변수 treeType, 그리고 이중 트리가 사용되는 경우, 이는 현재 트리가 루마 또는 크로마 성분들에 대응하는지 여부를 지정한다.
- 현재 블록의 색상 성분을 지정하는 변수 cIdx,
- 현재 코딩 블록의 폭 및 높이를, 제각기, 지정하는 2 개의 변수 nCbW 및 nCbH.
이 프로세스의 출력은 블록에 대한 재구성된 샘플 값들을 지정하는 어레이 recSamples[ x ][ y ](단, x = 0.. nCbW - 1, y = 0.. nCbH - 1)이다.
treeType의 값에 따라, 변수들 startComp 및 numComps는 다음과 같이 도출된다:
- treeType이 SINGLE_TREE와 동일한 경우:
Figure pct00084
- 그렇지 않고, treeType이 DUAL_TREE_LUMA와 동일한 경우:
Figure pct00085
- 그렇지 않고, treeType이 DUAL_TREE_CHROMA와 동일한 경우:
Figure pct00086
cIdx의 값에 따라, 변수들 nSubWidth 및 nSubHeight는 다음과 같이 도출된다:
- cIdx가 0보다 크고 startComp가 0과 동일한 경우, nSubWidth는 SubWidthC로 설정되고 nSubHeight는 SubHeightC로 설정된다.
- 그렇지 않은 경우, nSubWidth는 1로 설정되고 nSubHeight는 1로 설정된다.
위치 ( xCbComp, yCbComp )에 있는 재구성된 샘플 어레이 recSamples의 ( nCbW x nCbH ) 블록은 recSamples[ x ][ y ](단, x = 0..nCTbW - 1이고 y = 0..nCbH - 1임)에 의해 표현되고, 0 내지 nCbW - 1의 범위(경계 포함)에 있는 각각의 x 및 0 내지 nCbH - 1의 범위(경계 포함)에 있는 각각의 y에 대한 recSamples[ x ][ y ]의 값은 다음과 같이 도출된다:
- 변수들 xL, yL, xCbL, 및 yCbL은 다음과 같이 도출된다:
Figure pct00087
- 변수 bIsEscapeSample은 다음과 같이 도출된다:
- PaletteIndexMap[ xCbL + xL ][ yCbL + yL ]이 MaxPaletteIndex와 동일하고 palette_escape_val_present_flag가 1과 동일한 경우, bIsEscapeSample은 1과 동일하게 설정된다.
- 그렇지 않은 경우, bIsEscapeSample은 0과 동일하게 설정된다.
- bIsEscapeSample이 0과 동일한 경우, 다음이 적용된다:
Figure pct00088
- 그렇지 않은 경우(bIsEscapeSample이 1과 동일한 경우), 다음과 같은 순서의 단계들이 적용된다:
1. 양자화 파라미터 qP는 다음과 같이 도출된다:
- cIdx가 0과 동일한 경우,
Figure pct00089
- 그렇지 않고, cIdx가 1과 동일한 경우,
Figure pct00090
- 그렇지 않은 경우(cIdx가 2와 동일한 경우),
Figure pct00091
2. 리스트 levelScale[ ]은 levelScale[ k ] = { 40, 45, 51, 57, 64, 72 }(단, k = 0..5)로서 지정된다.
3. 다음이 적용된다:
Figure pct00092
5.10 실시예 #10
변경 사항들은 JVET-P2001-vE를 기반으로 한다.
8.4.5.3 팔레트 모드애 대한 디코딩 프로세스
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 픽처의 좌측 상단 샘플을 기준으로 현재 코딩 블록의 좌측 상단 샘플을 지정하는 위치 ( xCbComp, yCbComp ),
- 단일 또는 이중 트리가 사용되는지 여부를 지정하는 변수 treeType, 그리고 이중 트리가 사용되는 경우, 이는 현재 트리가 루마 또는 크로마 성분들에 대응하는지 여부를 지정한다.
- 현재 블록의 색상 성분을 지정하는 변수 cIdx,
- 현재 코딩 블록의 폭 및 높이를, 제각기, 지정하는 2 개의 변수 nCbW 및 nCbH.
이 프로세스의 출력은 블록에 대한 재구성된 샘플 값들을 지정하는 어레이 recSamples[ x ][ y ](단, x = 0.. nCbW - 1, y = 0.. nCbH - 1)이다.
treeType의 값에 따라, 변수들 startComp 및 numComps는 다음과 같이 도출된다:
- treeType이 SINGLE_TREE와 동일한 경우:
Figure pct00093
- 그렇지 않고, treeType이 DUAL_TREE_LUMA와 동일한 경우:
Figure pct00094
- 그렇지 않고, treeType이 DUAL_TREE_CHROMA와 동일한 경우:
Figure pct00095
cIdx의 값에 따라, 변수들 nSubWidth 및 nSubHeight는 다음과 같이 도출된다:
- cIdx가 0보다 크고 startComp가 0과 동일한 경우, nSubWidth는 SubWidthC로 설정되고 nSubHeight는 SubHeightC로 설정된다.
- 그렇지 않은 경우, nSubWidth는 1로 설정되고 nSubHeight는 1로 설정된다.
위치 ( xCbComp, yCbComp )에 있는 재구성된 샘플 어레이 recSamples의 ( nCbW x nCbH ) 블록은 recSamples[ x ][ y ](단, x = 0..nCTbW - 1이고 y = 0..nCbH - 1임)에 의해 표현되고, 0 내지 nCbW - 1의 범위(경계 포함)에 있는 각각의 x 및 0 내지 nCbH - 1의 범위(경계 포함)에 있는 각각의 y에 대한 recSamples[ x ][ y ]의 값은 다음과 같이 도출된다:
- 변수들 xL, yL, xCbL, 및 yCbL은 다음과 같이 도출된다:
Figure pct00096
- 변수 bIsEscapeSample은 다음과 같이 도출된다:
- PaletteIndexMap[ xCbL + xL ][ yCbL + yL ]이 MaxPaletteIndex와 동일하고 palette_escape_val_present_flag가 1과 동일한 경우, bIsEscapeSample은 1과 동일하게 설정된다.
- 그렇지 않은 경우, bIsEscapeSample은 0과 동일하게 설정된다.
- bIsEscapeSample이 0과 동일한 경우, 다음이 적용된다:
Figure pct00097
- 그렇지 않은 경우(bIsEscapeSample이 1과 동일한 경우), 다음과 같은 순서의 단계들이 적용된다:
4. 양자화 파라미터 qP는 다음과 같이 도출된다:
- cIdx가 0과 동일한 경우,
Figure pct00098
- 그렇지 않고, cIdx가 1과 동일한 경우,
Figure pct00099
- 그렇지 않은 경우(cIdx가 2와 동일한 경우),
Figure pct00100
5. 리스트 levelScale[ ]은 levelScale[ k ] = { 40, 45, 51, 57, 64, 72 }(단, k = 0..5)로서 지정된다.
6. 다음이 적용된다:
Figure pct00101
도 9는 비디오 프로세싱 장치(900)의 블록 다이어그램이다. 장치(900)는 본 명세서에 설명된 방법들 중 하나 이상을 구현하는 데 사용될 수 있다. 장치(900)는 스마트폰, 태블릿, 컴퓨터, IoT(Internet of Things) 수신기 등에 구체화될 수 있다. 장치(900)는 하나 이상의 프로세서(902), 하나 이상의 메모리(904) 및 비디오 프로세싱 하드웨어(906)를 포함할 수 있다. 프로세서(들)(902)는 본 문서에 설명된 하나 이상의 방법을 구현하도록 구성될 수 있다. 메모리(메모리들)(904)는 본 명세서에 설명된 방법들 및 기술들을 구현하는 데 사용되는 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 프로세싱 하드웨어(906)는, 하드웨어 회로로, 본 문서에 설명된 일부 기술들을 구현하는 데 사용될 수 있다. 일부 실시예들에서, 하드웨어(906)는 적어도 부분적으로 프로세서(902), 예를 들면, 그래픽 코프로세서의 내부에 있을 수 있다.
개시된 기술의 일부 실시예들은 비디오 프로세싱 툴 또는 모드를 인에이블시키기로 의사 결정하거나 결정하는 것을 포함한다. 예에서, 비디오 프로세싱 툴 또는 모드가 인에이블될 때, 인코더는 비디오 블록의 프로세싱에서 툴 또는 모드를 사용하거나 구현할 것이지만, 툴 또는 모드의 사용에 기초하여 결과적인 비트스트림을 반드시 수정하는 것은 아닐 수 있다. 즉, 비디오 블록으로부터 비디오의 비트스트림 표현으로의 변환은 의사 결정 또는 결정에 기초하여 비디오 프로세싱 툴 또는 모드가 인에이블될 때 이를 사용할 것이다. 다른 예에서, 비디오 프로세싱 툴 또는 모드가 인에이블될 때, 디코더는 비디오 프로세싱 툴 또는 모드에 기초하여 비트스트림이 수정되었다는 지식을 사용하여 비트스트림을 프로세싱할 것이다. 즉, 비디오의 비트스트림 표현으로부터 비디오 블록으로의 변환은 의사 결정 또는 결정에 기초하여 인에이블된 비디오 프로세싱 툴 또는 모드를 사용하여 수행될 것이다.
개시된 기술의 일부 실시예들은 비디오 프로세싱 툴 또는 모드를 디스에이블시키도록 의사 결정하거나 결정하는 것을 포함한다. 예에서, 비디오 프로세싱 툴 또는 모드가 디스에이블될 때, 인코더는 비디오 블록을 비디오의 비트스트림 표현으로 변환하는 데 툴 또는 모드를 사용하지 않을 것이다. 다른 예에서, 비디오 프로세싱 툴 또는 모드가 디스에이블될 때, 디코더는 의사 결정 또는 결정에 기초하여 인에이블된 비디오 프로세싱 툴 또는 모드를 사용하여 비트스트림이 수정되지 않았다는 지식을 사용하여 비트스트림을 프로세싱할 것이다.
도 10은 본 명세서에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 프로세싱 시스템(1000)을 도시하는 블록 다이어그램이다. 다양한 구현들은 시스템(1000)의 컴포넌트들의 일부 또는 전부를 포함할 수 있다. 시스템(1000)은 비디오 콘텐츠를 수신하기 위한 입력(1002)을 포함할 수 있다. 비디오 콘텐츠는 원시 또는 압축되지 않은 포맷, 예를 들면, 8 또는 10 비트 다중 성분 픽셀 값들로 수신될 수 있거나, 또는 압축된 또는 인코딩된 포맷으로 되어 있을 수 있다. 입력(1002)은 네트워크 인터페이스, 주변기기 버스 인터페이스, 또는 스토리지 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예들은 이더넷, PON(passive optical network) 등과 같은 유선 인터페이스들 및 Wi-Fi 또는 셀룰러 인터페이스들과 같은 무선 인터페이스들을 포함한다.
시스템(1000)은 본 문서에 설명된 다양한 코딩 또는 인코딩 방법들을 구현할 수 있는 코딩 컴포넌트(1004)를 포함할 수 있다. 코딩 컴포넌트(1004)는 비디오의 코딩된 표현을 생성하기 위해 입력(1002)으로부터 코딩 컴포넌트(1004)의 출력으로의 비디오의 평균 비트레이트를 감소시킬 수 있다. 따라서 코딩 기술들은 때때로 비디오 압축 또는 비디오 트랜스코딩 기술들이라고 불린다. 코딩 컴포넌트(1004)의 출력은 저장되거나, 컴포넌트(1006)에 의해 표현된 바와 같은, 연결된 통신을 통해 전송될 수 있다. 입력(1002)에 수신되는 비디오의 저장되거나 통신되는 비트스트림 표현(또는 코딩된 표현)은 디스플레이 인터페이스(1010)로 송신되는 픽셀 값들 또는 디스플레이 가능한 비디오를 생성하기 위해 컴포넌트(1008)에 의해 사용될 수 있다. 비트스트림 표현으로부터 사용자가 볼 수 있는 비디오를 생성하는 프로세스는 때때로 비디오 압축 해제라고 불린다. 게다가, 특정 비디오 프로세싱 동작들이 "코딩" 동작들 또는 툴들이라고 지칭되지만, 코딩 툴들 또는 동작들이 인코더에서 사용되고 코딩의 결과들을 반대로 하는 대응하는 디코딩 툴들 또는 동작들은 디코더에 의해 수행될 것임이 이해될 것이다.
주변기기 버스 인터페이스 또는 디스플레이 인터페이스의 예들은 USB(universal serial bus) 또는 HDMI(high definition multimedia interface) 또는 Displayport 등을 포함할 수 있다. 스토리지 인터페이스들의 예들은 SATA(serial advanced technology attachment), PCI, IDE 인터페이스 등을 포함한다. 본 문서에서 설명되는 기술들은 디지털 데이터 프로세싱 및/또는 비디오 디스플레이를 수행할 수 있는 모바일 폰들, 랩톱들, 스마트폰들 또는 다른 디바이스들과 같은 다양한 전자 디바이스들에서 구체화될 수 있다.
도 11은 본 개시의 기술들을 활용할 수 있는 예시적인 비디오 코딩 시스템(100)을 예시하는 블록 다이어그램이다.
도 11에 도시된 바와 같이, 비디오 코딩 시스템(100)은 소스 디바이스(110) 및 목적지 디바이스(120)를 포함할 수 있다. 비디오 인코딩 디바이스라고 지칭될 수 있는 소스 디바이스(110)는 인코딩된 비디오 데이터를 생성한다. 비디오 디코딩 디바이스라고 지칭될 수 있는 목적지 디바이스(120)는 소스 디바이스(110)에 의해 생성되는 인코딩된 비디오 데이터를 디코딩할 수 있다.
소스 디바이스(110)는 비디오 소스(112), 비디오 인코더(114), 및 입출력(I/O) 인터페이스(116)를 포함할 수 있다.
비디오 소스(112)는 비디오 캡처 디바이스와 같은 소스, 비디오 콘텐츠 제공자로부터 비디오 데이터를 수신하기 위한 인터페이스, 및/또는 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템, 또는 그러한 소스들의 조합을 포함할 수 있다. 비디오 데이터는 하나 이상의 픽처를 포함할 수 있다. 비디오 인코더(114)는 비디오 소스(112)로부터의 비디오 데이터를 인코딩하여 비트스트림을 생성한다. 비트스트림은 비디오 데이터의 코딩된 표현을 형성하는 비트 시퀀스를 포함할 수 있다. 비트스트림은 코딩된 픽처들 및 관련 데이터를 포함할 수 있다. 코딩된 픽처는 픽처의 코딩된 표현이다. 관련 데이터는 시퀀스 파라미터 세트, 픽처 파라미터 세트, 및 다른 신택스 구조를 포함할 수 있다. I/O 인터페이스(116)는 변조기/복조기(모뎀) 및/또는 송신기를 포함할 수 있다. 인코딩된 비디오 데이터는 I/O 인터페이스(116)를 통해 네트워크(130a)를 거쳐 목적지 디바이스(120)로 직접 전송될 수 있다. 인코딩된 비디오 데이터는 또한 목적지 디바이스(120)에 의한 액세스를 위해 저장 매체/서버(130b)에 저장될 수 있다.
목적지 디바이스(120)는 I/O 인터페이스(126), 비디오 디코더(124), 및 디스플레이 디바이스(122)를 포함할 수 있다.
I/O 인터페이스(126)는 수신기 및/또는 모뎀을 포함할 수 있다. I/O 인터페이스(126)는 소스 디바이스(110) 또는 저장 매체/서버(130b)로부터 인코딩된 비디오 데이터를 취득할 수 있다. 비디오 디코더(124)는 인코딩된 비디오 데이터를 디코딩할 수 있다. 디스플레이 디바이스(122)는 디코딩된 비디오 데이터를 사용자에게 디스플레이할 수 있다. 디스플레이 디바이스(122)는 목적지 디바이스(120)와 통합될 수 있거나, 또는 외부 디스플레이 디바이스와 인터페이싱하도록 구성된 목적지 디바이스(120)의 외부에 있을 수 있다.
비디오 인코더(114) 및 비디오 디코더(124)는, HEVC(High Efficiency Video Coding) 표준, VVM(Versatile Video Coding) 표준 및 다른 현재 및/또는 추가 표준들과 같은, 비디오 압축 표준에 따라 동작할 수 있다.
도 12는 도 11에 예시된 시스템(100) 내의 비디오 인코더(114)일 수 있는, 비디오 인코더(200)의 예를 예시하는 블록 다이어그램이다.
비디오 인코더(200)는 본 개시의 기술들의 일부 또는 전부를 수행하도록 구성될 수 있다. 도 12의 예에서, 비디오 인코더(200)는 복수의 기능 컴포넌트들을 포함한다. 본 개시에 설명된 기술들은 비디오 인코더(200)의 다양한 컴포넌트들 사이에서 공유될 수 있다. 일부 예들에서, 프로세서는 본 개시에 설명된 기술들의 일부 또는 전부를 수행하도록 구성될 수 있다.
비디오 인코더(200)의 기능 컴포넌트들은 분할 유닛(201), 모드 선택 유닛(203), 모션 추정 유닛(204), 모션 보상 유닛(205) 및 인트라 예측 유닛(206)을 포함할 수 있는 예측 유닛(202), 잔차 생성 유닛(207), 변환 유닛(208), 양자화 유닛(209), 역양자화 유닛(210), 역변환 유닛(211), 재구성 유닛(212), 버퍼(213), 및 엔트로피 인코딩 유닛(214)을 포함할 수 있다.
다른 예들에서, 비디오 인코더(200)는 보다 많은, 보다 적은 또는 상이한 기능 컴포넌트들을 포함할 수 있다. 예에서, 예측 유닛(202)은 인트라 블록 복사(intra block copy, IBC) 유닛을 포함할 수 있다. IBC 유닛은 적어도 하나의 참조 픽처가 현재 비디오 블록이 위치하는 픽처인 IBC 모드에서 예측을 수행할 수 있다.
게다가, 모션 추정 유닛(204) 및 모션 보상 유닛(205)과 같은 일부 컴포넌트들은 고도로 통합될 수 있지만, 설명의 목적을 위해 도 12의 예에서 개별적으로 표현되어 있다.
분할 유닛(201)은 픽처를 하나 이상의 비디오 블록으로 분할할 수 있다. 비디오 인코더(200) 및 비디오 디코더(300)는 다양한 비디오 블록 크기들을 지원할 수 있다.
모드 선택 유닛(203)은, 예를 들어, 오차 결과들에 기초하여, 코딩 모드들, 즉 인트라(intra) 또는 인터(inter) 중 하나를 선택할 수 있고, 결과적인 인트라 코딩된 또는 인터 코딩된 블록을 잔차 생성 유닛(207)에 제공하여 잔차 블록 데이터를 생성하도록 하고 재구성 유닛(212)에 제공하여 참조 픽처로서 사용하기 위한 인코딩된 블록을 재구성하도록 할 수 있다. 일부 예에서, 모드 선택 유닛(203)은 예측이 인터 예측 신호 및 인트라 예측 신호에 기초하는 CIIP(combination of intra and inter predication) 모드를 선택할 수 있다. 모드 선택 유닛(203)은 또한 인터 예측의 경우에 블록에 대한 모션 벡터의 분해능(예를 들면, 서브 픽셀 또는 정수 픽셀 정밀도)을 선택할 수 있다.
현재 비디오 블록에 대한 인터 예측을 수행하기 위해, 모션 추정 유닛(204)은 버퍼(213)로부터의 하나 이상의 참조 프레임을 현재 비디오 블록과 비교하는 것에 의해 현재 비디오 블록에 대한 모션 정보를 생성할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록과 연관된 픽처 이외의 버퍼(213)로부터의 픽처들의 디코딩된 샘플들 및 모션 정보에 기초하여 현재 비디오 블록에 대한 예측된 비디오 블록을 결정할 수 있다.
모션 추정 유닛(204) 및 모션 보상 유닛(205)은, 예를 들어, 현재 비디오 블록이 I 슬라이스, P 슬라이스, 또는 B 슬라이스에 있는지 여부에 따라, 현재 비디오 블록에 대해 상이한 동작들을 수행할 수 있다.
일부 예들에서, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 단방향 예측을 수행할 수 있고, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 참조 비디오 블록에 대해 리스트 0 또는 리스트 1의 참조 픽처들을 탐색할 수 있다. 모션 추정 유닛(204)은 이어서 참조 비디오 블록을 포함하는 리스트 0 또는 리스트 1 내의 참조 픽처를 나타내는 참조 인덱스 및 현재 비디오 블록과 참조 비디오 블록 사이의 공간적 변위를 나타내는 모션 벡터를 생성할 수 있다. 모션 추정 유닛(204)은 참조 인덱스, 예측 방향 지시자, 및 모션 벡터를 현재 비디오 블록의 모션 정보로서 출력할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록의 모션 정보가 나타내는 참조 비디오 블록에 기초하여 현재 블록의 예측된 비디오 블록을 생성할 수 있다.
다른 예들에서, 모션 추정 유닛(204)은 현재 비디오 블록에 대해 양방향 예측을 수행할 수 있고, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 참조 비디오 블록에 대해 리스트 0 내의 참조 픽처들을 탐색할 수 있고, 또한 현재 비디오 블록에 대한 다른 참조 비디오 블록에 대해 리스트 1 내의 참조 픽처들을 탐색할 수 있다. 모션 추정 유닛(204)은 이어서 참조 비디오 블록들을 포함하는 리스트 0 및 리스트 1 내의 참조 픽처들을 나타내는 참조 인덱스들 및 참조 비디오 블록들과 현재 비디오 블록 사이의 공간적 변위들을 나타내는 모션 벡터들을 생성할 수 있다. 모션 추정 유닛(204)은 현재 비디오 블록의 모션 정보로서 참조 인덱스들 및 현재 비디오 블록의 모션 벡터들을 출력할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록의 모션 정보가 나타내는 참조 비디오 블록들에 기초하여 현재 비디오 블록의 예측된 비디오 블록을 생성할 수 있다.
일부 예들에서, 모션 추정 유닛(204)은 디코더의 디코딩 프로세싱을 위한 모션 정보의 전체 세트를 출력할 수 있다.
일부 예들에서, 모션 추정 유닛(204)은 현재 비디오에 대한 모션 정보의 전체 세트를 출력하지 않을 수 있다. 오히려, 모션 추정 유닛(204)은 다른 비디오 블록의 모션 정보를 참조하여 현재 비디오 블록의 모션 정보를 시그널링할 수 있다. 예를 들어, 모션 추정 유닛(204)은 현재 비디오 블록의 모션 정보가 이웃 비디오 블록의 모션 정보와 충분히 유사하다고 결정할 수 있다.
일 예에서, 모션 추정 유닛(204)은, 현재 비디오 블록과 연관된 신택스 구조에, 현재 비디오 블록이 다른 비디오 블록과 동일한 모션 정보를 갖는다는 것을 비디오 디코더(300)에 알려주는 값을 표시할 수 있다.
다른 예에서, 모션 추정 유닛(204)은, 현재 비디오 블록과 연관된 신택스 구조에서, 다른 비디오 블록 및 모션 벡터 차이(MVD)를 식별할 수 있다. 모션 벡터 차이는 현재 비디오 블록의 모션 벡터와 표시된 비디오 블록의 모션 벡터 간의 차이를 나타낸다. 비디오 디코더(300)는 표시된 비디오 블록의 모션 벡터 및 모션 벡터 차이를 이용하여 현재 비디오 블록의 모션 벡터를 결정할 수 있다.
위에서 논의된 바와 같이, 비디오 인코더(200)는 모션 벡터를 예측적으로 시그널링할 수 있다. 비디오 인코더(200)에 의해 구현될 수 있는 예측적 시그널링 기술의 두 가지 예는 AMVP(advanced motion vector predication) 및 병합 모드 시그널링을 포함한다.
인트라 예측 유닛(206)은 현재 비디오 블록에 대해 인트라 예측을 수행할 수 있다. 인트라 예측 유닛(206)이 현재 비디오 블록에 대해 인트라 예측을 수행할 때, 인트라 예측 유닛(206)은 동일한 픽처 내의 다른 비디오 블록들의 디코딩된 샘플들에 기초하여 현재 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 현재 비디오 블록에 대한 예측 데이터는 예측된 비디오 블록 및 다양한 신택스 요소들을 포함할 수 있다.
잔차 생성 유닛(207)은 현재 비디오 블록으로부터 현재 비디오 블록의 예측된 비디오 블록(들)을 차감(예를 들면, 마이너스 부호로 표시됨)하는 것에 의해 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 잔차 데이터는 현재 비디오 블록 내의 샘플들의 상이한 샘플 성분들에 대응하는 잔차 비디오 블록들을 포함할 수 있다.
다른 예들에서, 예를 들어, 스킵 모드에서 현재 비디오 블록에 대한 현재 비디오 블록의 잔차 데이터가 없을 수 있고, 잔차 생성 유닛(207)은 차감 동작을 수행하지 않을 수 있다.
변환 프로세싱 유닛(208)은 현재 비디오 블록과 연관된 잔차 비디오 블록에 하나 이상의 변환을 적용하는 것에 의해 현재 비디오 블록에 대한 하나 이상의 변환 계수 비디오 블록을 생성할 수 있다.
변환 프로세싱 유닛(208)이 현재 비디오 블록과 연관된 변환 계수 비디오 블록을 생성한 후에, 양자화 유닛(209)은 현재 비디오 블록과 연관된 하나 이상의 양자화 파라미터(QP) 값에 기초하여 현재 비디오 블록과 연관된 변환 계수 비디오 블록을 양자화할 수 있다.
역양자화 유닛(210) 및 역변환 유닛(211)은, 제각기, 변환 계수 비디오 블록에 역양자화 및 역변환을 적용하여 변환 계수 비디오 블록으로부터 잔차 비디오 블록을 재구성할 수 있다. 재구성 유닛(212)은 버퍼(213)에 저장할 현재 블록과 연관된 재구성된 비디오 블록을 생성하기 위해 예측 유닛(202)에 의해 생성되는 하나 이상의 예측된 비디오 블록으로부터의 대응하는 샘플들에 재구성된 잔차 비디오 블록을 가산할 수 있다.
재구성 유닛(212)이 비디오 블록을 재구성한 후에, 비디오 블록에서의 비디오 블로킹 아티팩트를 감소시키기 위해 루프 필터링 동작이 수행될 수 있다.
엔트로피 인코딩 유닛(214)은 비디오 인코더(200)의 다른 기능 컴포넌트들로부터 데이터를 수신할 수 있다. 엔트로피 인코딩 유닛(214)이 데이터를 수신할 때, 엔트로피 인코딩 유닛(214)은 엔트로피 인코딩된 데이터를 생성하고 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력하기 위해 하나 이상의 엔트로피 인코딩 동작을 수행할 수 있다.
도 13은 도 11에 예시된 시스템(100) 내의 비디오 디코더(114)일 수 있는 비디오 디코더(300)의 예를 예시하는 블록 다이어그램이다.
비디오 디코더(300)는 본 개시의 기술들의 일부 또는 전부를 수행하도록 구성될 수 있다. 도 13의 예에서, 비디오 디코더(300)는 복수의 기능 컴포넌트들을 포함한다. 본 개시에 설명된 기술들은 비디오 디코더(300)의 다양한 컴포넌트들 사이에서 공유될 수 있다. 일부 예들에서, 프로세서는 본 개시에 설명된 기술들의 일부 또는 전부를 수행하도록 구성될 수 있다.
도 13의 예에서, 비디오 디코더(300)는 엔트로피 디코딩 유닛(301), 모션 보상 유닛(302), 인트라 예측 유닛(303), 역양자화 유닛(304), 역변환 유닛(305), 및 재구성 유닛(306) 및 버퍼(307)를 포함한다. 비디오 디코더(300)는, 일부 예들에서, 비디오 인코더(200)(도 12)와 관련하여 설명된 인코딩 패스(encoding pass)와 일반적으로 반대인 디코딩 패스(decoding pass)를 수행할 수 있다.
엔트로피 디코딩 유닛(301)은 인코딩된 비트스트림을 검색할 수 있다. 인코딩된 비트스트림은 엔트로피 코딩된 비디오 데이터(예를 들면, 비디오 데이터의 인코딩된 블록들)를 포함할 수 있다. 엔트로피 디코딩 유닛(301)은 엔트로피 코딩된 비디오 데이터를 디코딩할 수 있고, 엔트로피 디코딩된 비디오 데이터로부터, 모션 보상 유닛(302)은 모션 벡터, 모션 벡터 정밀도, 참조 픽처 리스트 인덱스, 및 다른 모션 정보를 포함하는 모션 정보를 결정할 수 있다. 모션 보상 유닛(302)은, 예를 들어, AMVP 및 병합 모드를 수행하는 것에 의해 그러한 정보를 결정할 수 있다.
모션 보상 유닛(302)은 모션 보상된 블록들을 생성할 수 있으며, 어쩌면 보간 필터들에 기초하여 보간을 수행할 수 있다. 사용될 보간 필터들에 대한 식별자들이 서브픽셀 정밀도와 함께 신택스 요소들에 포함될 수 있다.
모션 보상 유닛(302)은 참조 블록의 서브-정수 픽셀들에 대한 보간된 값들을 계산하기 위해 비디오 블록의 인코딩 동안 비디오 인코더(20)에 의해 사용되는 바와 같이 보간 필터들을 사용할 수 있다. 모션 보상 유닛(302)은 수신된 신택스 정보에 따라 비디오 인코더(200)에 의해 사용되는 보간 필터들을 결정할 수 있고 예측 블록들을 생성하기 위해 보간 필터들을 사용할 수 있다.
모션 보상 유닛(302)은 인코딩된 비디오 시퀀스의 프레임(들) 및/또는 슬라이스(들)를 인코딩하는 데 사용되는 블록들의 크기들, 인코딩된 비디오 시퀀스의 픽처의 각각의 매크로블록이 어떻게 분할되는지를 기술하는 분할 정보, 각각의 분할이 어떻게 인코딩되는지를 나타내는 모드들, 각각의 인터 인코딩된 블록에 대한 하나 이상의 참조 프레임(및 참조 프레임 리스트), 및 인코딩된 비디오 시퀀스를 디코딩하기 위한 다른 정보를 결정하기 위해 신택스 정보의 일부를 사용할 수 있다.
인트라 예측 유닛(303)은 공간적으로 인접한 블록들로부터 예측 블록을 형성하기 위해, 예를 들어, 비트스트림에서 수신되는 인트라 예측 모드들을 사용할 수 있다. 역양자화 유닛(303)은 비트스트림에서 제공되고 엔트로피 디코딩 유닛(301)에 의해 디코딩되는 양자화된 비디오 블록 계수들을 역양자화(inverse quantize), 즉 양자화 해제(de-quantize)한다. 역변환 유닛(303)은 역변환을 적용한다.
재구성 유닛(306)은 디코딩된 블록들을 형성하기 위해 모션 보상 유닛(202) 또는 인트라 예측 유닛(303)에 의해 생성되는 대응하는 예측 블록들과 잔차 블록들을 합산할 수 있다. 원하는 경우, 디코딩된 블록들을 필터링하여 블록성 아티팩트(blockiness artifact)를 제거하기 위해 디블록킹 필터가 또한 적용될 수 있다. 디코딩된 비디오 블록들은 이어서 버퍼(307)에 저장되고, 버퍼(307)는 후속하는 모션 보상/인트라 예측을 위한 참조 블록들을 제공하고 또한 디스플레이 디바이스 상에 제시할 디코딩된 비디오를 생성한다.
일부 실시예들에서, 다음 방법들은 위에 열거된 예들 및 실시예들의 목록을 기반으로 한다. 예에서, 이러한 방법들은 도 9 내지 도 13에 도시된 구현들을 사용하여 구현될 수 있지만 이에 제한되지 않는다.
도 14는 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(1400)은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(1410)를 포함하며, 여기서 비트스트림 표현은 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 여기서 현재 비디오 블록에 대한 이스케이프 심벌의 이진화는 차수 K의 지수 골롬(EG) 코드를 사용하며, 여기서 K는 3과 동일하지 않은 음이 아닌 정수이고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 여기서 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용된다.
도 15는 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(1500)은 하나 이상의 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(1510)를 포함하며, 여기서 비트스트림 표현은 하나 이상의 비디오 블록 중 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 여기서 현재 비디오 블록에 대한 이스케이프 심벌의 이진화는 고정 길이 이진화를 사용하며, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 여기서 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용된다.
도 16은 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(1600)은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(1610)를 포함하며, 여기서 비트스트림 표현은 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 여기서 현재 비디오 블록의 이스케이프 심벌의 이진화는 가변 길이 코딩을 사용하며, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 여기서 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용된다.
도 17은 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(1700)은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(1710)를 포함하며, 여기서 변환은 현재 비디오 블록에 대한 양자화 또는 역양자화 프로세스의 적용을 포함하고, 여기서 비트스트림 표현은 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩되는지 여부에 기초하여 양자화 또는 역양자화 프로세스의 적용을 구성하는 포맷 규칙을 준수하며, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현한다.
도 18은 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(1800)은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(1810)를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이, 현재 비디오 블록의 이스케이프 심벌이 이진 시프트 연산을 사용하여 양자화 및/또는 역양자화되도록, 표현된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 여기서 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용된다.
도 19는 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(1900)은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(1910)를 포함하며, 여기서 비트스트림 표현은 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴의 하나 이상의 팔레트 인덱스는 참조 인덱스를 사용하지 않고 코딩되며, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현한다.
도 20은 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(2000)은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(2010)를 포함하며, 여기서 비트스트림 표현은 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩되고 이스케이프 심벌의 인덱스와 비-이스케이프 심벌의 인덱스 사이의 도출을 제약한다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 여기서 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용된다.
도 21은 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(2100)은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(2110)를 포함하며, 여기서 비트스트림 표현은 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴의 도출된 팔레트 인덱스는 최댓값을 가지며, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현한다.
도 22는 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(2200)은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(2210)를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 이스케이프 심벌을 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 여기서 이스케이프 심벌을 나타내는 인덱스의 값은 하나 이상의 비디오 영역 각각에 대해 변경되지 않으며, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 여기서 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용된다.
도 23은 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(2300)은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(2310)를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 현재 인덱스 및 참조 인덱스에 기초하여 코딩되는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현한다.
도 24는 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(2400)은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(2410)를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 예측 코딩되는 이스케이프 심벌을 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 여기서 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용된다.
도 25는 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(2500)은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(2510)를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 팔레트 엔트리들을 인덱싱하기 위한 팔레트 인덱스에 기초한 콘텍스트로 런 길이 코딩되는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현한다.
도 26은 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(2600)은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(2610)를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 이전 팔레트 인덱스들과 독립적으로 시그널링되는 현재 팔레트 인덱스를 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현한다.
도 27은 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(2700)은 정렬 규칙에 기초하여, 비디오의 하나 이상의 비디오 영역의 현재 비디오 블록에 대한 양자화 파라미터를 예측하는 데 사용되는 제1 이웃 비디오 블록 및 현재 비디오 블록의 코딩 모드를 예측 결정하는 데 사용되는 제2 이웃 비디오 블록을 결정하는 단계(2710), 및 결정에 기초하여, 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(2720)를 포함한다.
도 28은 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(2800)은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(2810)를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이, 현재 비디오 블록이 이스케이프 심벌을 포함하는지 여부에 관계없이, 블록 레벨 양자화 파라미터(QP) 차이를 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 여기서 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용된다.
도 29는 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(2900)은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(2910)를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 팔레트 블록에 대한 하나 이상의 코딩된 블록 플래그(CBF)를 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현한다.
도 30은 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(3000)은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(3010)를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 하나 이상의 팔레트 인덱스를 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 여기서 하나 이상의 팔레트 인덱스의 수(NumPltIdx)는 K보다 크거나 같으며, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고, 여기서 K는 양의 정수이다.
도 31은 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(3100)은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(3110)를 포함하며, 여기서 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 현재 블록에 대한 팔레트의 최대 크기, 현재 비디오 블록의 크기, 무손실 모드의 사용 또는 양자화 파라미터(QP)에 기초한 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 여기서 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현한다.
도 32는 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(3200)은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 위해, 현재 비디오 블록이 블록 기반 차분 펄스 코드 변조(BDPCM) 모드로 코딩되고 다수의 변환 블록들 또는 서브블록들로 분할된다고 결정하는 단계(3210), 및 변환을 수행하는 것의 일부로서, 결정에 기초하여 블록 레벨에서 잔차 예측을 수행하고 서브블록 또는 변환 블록 레벨에서 하나 이상의 잔차를 비트스트림 표현에 포함시키는 것을 수행하는 단계(3220)를 포함한다.
도 33은 예시적인 비디오 프로세싱 방법에 대한 플로차트이다. 동 도면에 도시된 바와 같이, 방법(3300)은 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계(3310)를 포함하며, 여기서 비트스트림 표현은 현재 비디오 블록이 라인 기반 계수 그룹(CG) 팔레트 모드를 사용하여 코딩된다는 포맷 규칙을 준수하고, 여기서 라인 기반 CG 팔레트 모드는 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록의 각각의 코딩 유닛(CU)의 다수의 세그먼트들을 표현한다.
다음 해결책들은 일부 실시예들의 바람직한 특징들로서 이전 섹션에 나열된 항목들(예를 들면, 항목 1)에서 설명된 추가적인 기술들과 함께 구현될 수 있다.
1. 비디오 프로세싱 방법으로서, 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 비트스트림 표현은 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 현재 비디오 블록에 대한 이스케이프 심벌의 이진화는 차수 K의 지수 골롬(EG) 코드를 사용함 - 를 포함하며, K는 3과 동일하지 않은 음이 아닌 정수이고, 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
2. 해결책 1의 방법으로서, K = 0인, 방법.
3. 해결책 1의 방법으로서, K = 1인, 방법.
4. 해결책 1의 방법으로서, K = 2인, 방법.
5. 비디오 프로세싱 방법으로서, 하나 이상의 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 비트스트림 표현은 하나 이상의 비디오 블록 중 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 현재 비디오 블록에 대한 이스케이프 심벌의 이진화는 고정 길이 이진화를 사용함 - 를 포함하며, 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고, 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
6. 해결책 5의 방법으로서, 고정 길이 이진화는 N 비트를 사용하고, N은 1보다 큰 정수인, 방법.
7. 해결책 6의 방법으로서, N은 내부 비트 깊이에 기초하는, 방법.
8. 해결책 6의 방법으로서, N의 값은 슬라이스 서브픽처, 타일, 픽처 또는 비디오에서 시그널링되는, 방법.
9. 해결책 6의 방법으로서, N은 양자화 파라미터에 기초하는, 방법.
10. 해결책 9의 방법으로서, N은, f(Qp)로서 표기되는, 양자화 파라미터(Qp)의 함수(f())에 기초하는, 방법.
11. 해결책 9의 방법으로서, N은 (ibd - max(16, (Qp - 4)/6))으로 설정되고, ibd는 내부 비트 깊이인, 방법.
12. 해결책 9의 방법으로서, N은 (ibd - max(QpPrimeTsMin, (Qp - 4)/6))으로 설정되고, ibd는 내부 비트 깊이이고 QpPrimeTsMin은 변환 스킵 모드에 대한 최소 허용 양자화 파라미터인, 방법.
13. 해결책 9의 방법으로서, N은 max(A, (ibd - max(16, (QpPrimeTsMin - 4)/6)))으로 설정되고, ibd는 내부 비트 깊이이며, QpPrimeTsMin은 변환 스킵 모드에 대한 최소 허용 양자화 파라미터이고, A는 음이 아닌 정수인, 방법.
14. 해결책 13의 방법으로서, A = 0이거나 A = 1인, 방법.
15. 해결책 9 내지 해결책 14 중 어느 한 해결책의 방법으로서, 양자화 파라미터는 비디오의 슬라이스의 양자화 파라미터와 상수 값의 합이고, 상수 값은 정수인, 방법.
16. 비디오 프로세싱 방법으로서, 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 비트스트림 표현은 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 현재 비디오 블록의 이스케이프 심벌의 이진화는 가변 길이 코딩을 사용함 - 를 포함하며, 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
17. 해결책 16의 방법으로서, 가변 길이 코딩은 차수 3의 지수 골롬 코드를 제외하는, 방법.
18. 해결책 16의 방법으로서, 가변 길이 코딩은 입력 파라미터 K를 갖는 절단된 이진(TB) 코드이고, K는 정수인, 방법.
19. 해결책 18의 방법으로서, K는 (a) 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU) 행, LCU들의 그룹, 또는 브릭에서 시그널링되는 메시지, (b) 내부 비트 깊이, (c) 입력 비트 깊이, (d) 내부 비트 깊이와 입력 비트 깊이 사이의 차이, (e) 현재 비디오 블록의 치수, (f) 현재 비디오 블록의 현재 양자화 파라미터, (g) 비디오의 색상 포맷의 표시, (h) 코딩 트리 구조, 또는 (i) 비디오의 색상 성분에 기초하는, 방법.
20. 해결책 5의 방법으로서, 이스케이프 심벌의 다수의 값들은 다수의 이진화 방법들을 사용하여 시그널링되는, 방법.
21. 비디오 프로세싱 방법으로서, 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 변환은 현재 비디오 블록에 대한 양자화 또는 역양자화 프로세스의 적용을 포함하고, 비트스트림 표현은 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩되는지 여부에 기초하여 양자화 또는 역양자화 프로세스의 적용을 구성하는 포맷 규칙을 준수하며, 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하는, 방법.
22. 비디오 프로세싱 방법으로서, 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이, 현재 비디오 블록의 이스케이프 심벌이 이진 시프트 연산을 사용하여 양자화 및/또는 역양자화되도록, 표현된다는 포맷 규칙을 준수함 - 를 포함하며, 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
23. 해결책 22의 방법으로서, 양자화는 우측 비트 시프트에 대응하는, 방법.
24. 해결책 22의 방법으로서, 이스케이프 심벌은 f(p, Qp)로서 코딩되며, f()는 함수이고, p는 입력 심벌 값이며, Qp는 현재 비디오 블록을 표현하는 대응하는 색상 성분에 대한 도출된 양자화 파라미터인, 방법.
25. 해결책 24의 방법으로서, f는 p >> g(Qp)로서 정의되는, 방법.
26. 해결책 24의 방법으로서, f는 (p + (1 << (g(QP)-1))) >> g(Qp)로서 정의되는, 방법.
27. 해결책 24의 방법으로서, f는 clip(0, (1<< bd) -1, (p + (1 << (g(QP)-1))) >> g(Qp))로서 정의되고, clip(x, min, max)는 클리핑 함수이며, x, min, 및 max는 정수들인, 방법.
28. 해결책 22의 방법으로서, 이스케이프 심벌은 h(p)로서 코딩되고, h()는 함수이고 p는 입력 값 심벌인, 방법.
29. 해결책 28의 방법으로서, h는 p >> N으로서 정의되고 N은 음이 아닌 정수인, 방법.
30. 해결책 28의 방법으로서, h는 (p + (1 << (N - 1))) >> N으로서 정의되고, N은 음이 아닌 정수인, 방법.
31. 해결책 29 또는 해결책 30의 방법으로서, cu_transquant_bypass_flag = 1일 때 N = 0인, 방법.
32. 해결책 29 또는 해결책 30의 방법으로서, cu_transquant_bypass_flag = 1일 때 N = (bd-ibd)이고, bd는 내부 비트 깊이이고 ibd는 입력 비트 깊이인, 방법.
33. 해결책 28의 방법으로서, h는 clip(0, (1 << (bd-N)-1, p >> N)으로서 정의되고, bd는 현재 비디오 블록의 현재 색상 성분에 대한 내부 비트 깊이이고 N은 음이 아닌 정수이며, clip(x, min, max)는 클리핑 함수이고, x, min, 및 max는 정수들인, 방법.
34. 해결책 28의 방법으로서, h는 clip(0, (1 << (bd-N)-1, (p + (1 << (N-1))) >> N)으로서 정의되고, bd는 현재 비디오 블록의 현재 색상 성분에 대한 내부 비트 깊이이고 N은 음이 아닌 정수이며, clip(x, min, max)는 클리핑 함수이고, x, min, 및 max는 정수들인, 방법.
35. 해결책 29 내지 해결책 34 중 어느 한 해결책의 방법으로서, N은 범위 [0, (bd-1)]에 있고, bd는 현재 비디오 블록의 현재 색상 성분에 대한 내부 비트 깊이인, 방법.
36. 해결책 22의 방법으로서, 역양자화는 좌측 비트 시프트에 대응하는, 방법.
37. 해결책 36의 방법으로서, 이스케이프 심벌은 f(p, Qp)로서 역양자화되고, f()는 함수이고, p는 디코딩된 이스케이프 심벌이며, Qp는 현재 비디오 블록을 표현하는 대응하는 색상 성분에 대한 도출된 양자화 파라미터인, 방법.
38. 해결책 37의 방법으로서, f는 p << g(Qp)로서 정의되는, 방법.
39. 해결책 36의 방법으로서, 이스케이프 심벌은 f(p, Qp)로서 재구성되고, f()는 함수이고, p는 디코딩된 이스케이프 심벌이며, Qp는 현재 비디오 블록을 표현하는 대응하는 색상 성분에 대한 도출된 양자화 파라미터인, 방법.
40. 해결책 39의 방법으로서, f는 clip (0, (1 << bd) -1, p << g(Qp))로서 정의되고, bd는 현재 비디오 블록의 현재 색상 성분에 대한 내부 비트 깊이이며, clip(x, min, max)는 클리핑 함수이고, x, min, 및 max는 정수들인, 방법.
41. 해결책 27, 해결책 33, 해결책 34 또는 해결책 40의 방법으로서, 클리핑 함수 clip(x, min, max)는
Figure pct00102
로서 정의되는, 방법.
42. 해결책 36의 방법으로서, 이스케이프 심벌은 h(p)로서 재구성되고, h()는 함수이고 p는 디코딩된 이스케이프 심벌인, 방법.
43. 해결책 42의 방법으로서, h는 p << N으로서 정의되고 N은 음이 아닌 정수인, 방법.
44. 해결책 42 또는 해결책 43의 방법으로서, cu_transquant_bypass_flag = 1일 때 N = 0인, 방법.
45. 해결책 42 또는 해결책 43의 방법으로서, cu_transquant_bypass_flag = 1일 때 N = (bd-ibd)이고, bd는 내부 비트 깊이이고 ibd는 입력 비트 깊이인, 방법.
46. 해결책 42 또는 해결책 43의 방법으로서, N = (max(QpPrimeTsMin, qP)-4)/6이고, qP는 디코딩된 양자화 파라미터들이고 QpPrimeTsMin은 변환 스킵 모드에 대한 최소 허용 양자화 파라미터인, 방법.
47. 해결책 43 내지 해결책 46 중 어느 한 해결책의 방법으로서, N은 min(bd-1, N)으로서 추가로 클리핑되고, bd는 현재 비디오 블록의 현재 색상 성분에 대한 내부 비트 깊이인, 방법.
48. 해결책 43 내지 해결책 47 중 어느 한 해결책의 방법으로서, N은 범위 [0, (bd-1)]에 있고, bd는 현재 비디오 블록의 현재 색상 성분에 대한 내부 비트 깊이인, 방법.
49. 해결책 36의 방법으로서, 이스케이프 심벌의 재구성 오프셋은 비트 깊이 정보에 기초하는, 방법.
50. 해결책 49의 방법으로서, 비트 깊이 정보는 내부 비트 깊이와 입력 비트 깊이 사이의 차이(ΔBD로 표기됨)를 포함하는, 방법.
51. 해결책 50의 방법으로서, K ≤ ΔBD일 때 재구성된 오프셋은 p << K와 동일하고, p는 디코딩된 이스케이프 심벌이고 K는 정수인, 방법.
52. 해결책 49의 방법으로서, K ≤ T0일 때 재구성된 오프셋은 p << K와 동일하고, p는 디코딩된 이스케이프 심벌이고 K 및 T0는 정수들인, 방법.
53. 해결책 50의 방법으로서, T0 = 2인, 방법.
54. 해결책 50의 방법으로서, 재구성된 오프셋은 (p << K) + ((1 << (K-1)) >> ΔBD << ΔBD)와 동일하고, p는 디코딩된 이스케이프 심벌이고 K는 정수인, 방법.
55. 해결책 50의 방법으로서, ΔBD는 비트스트림 표현에서 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨, 타일 레벨, 브릭 레벨 또는 서브픽처 레벨에서 시그널링되는, 방법.
56. 해결책 22 내지 해결책 55 중 어느 한 해결책의 방법으로서, 이스케이프 심벌은 콘텍스트 코딩되는, 방법.
57. 해결책 22 내지 해결책 55 중 어느 한 해결책의 방법으로서, 이스케이프 심벌은 바이패스 코딩되는, 방법.
58. 해결책 25 내지 해결책 27, 해결책 38 또는 해결책 40 중 어느 한 해결책의 방법으로서, g(Qp)는 (Qp-4)/6으로서 정의되는, 방법.
59. 해결책 25 내지 해결책 27, 해결책 38 또는 해결책 40 중 어느 한 해결책의 방법으로서, g(Qp)는 (max(M, Qp)-4)/6으로서 정의되고, M은 정수인, 방법.
60. 해결책 59의 방법으로서, M은 시퀀스 파라미터 세트(SPS)에서 시그널링되는, 방법.
61. 해결책 58 내지 해결책 60 중 어느 한 해결책의 방법으로서, g(Qp)는 범위 [0, (bd-1)]에 있고, bd는 현재 비디오 블록의 현재 색상 성분에 대한 내부 비트 깊이인, 방법.
62. 비디오 프로세싱 방법으로서, 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 비트스트림 표현은 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 팔레트 모드 코딩 툴의 하나 이상의 팔레트 인덱스는 참조 인덱스를 사용하지 않고 코딩됨 - 를 포함하며, 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하는, 방법.
63. 해결책 62의 방법으로서, 하나 이상의 팔레트 인덱스의 이진화는 이진화 입력 파라미터로서 최대 팔레트 인덱스를 갖는 절단된 이진(TB) 코드인, 방법.
64. 비디오 프로세싱 방법으로서, 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 비트스트림 표현은 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩되고 이스케이프 심벌의 인덱스와 비-이스케이프 심벌의 인덱스 사이의 도출을 제약한다는 포맷 규칙을 준수함 - 를 포함하며, 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
65. 해결책 64의 방법으로서, 비-이스케이프 심벌의 인덱스로부터 이스케이프 심벌의 인덱스를 도출하는 것이 허용되지 않는, 방법.
66. 해결책 64의 방법으로서, 이스케이프 심벌의 인덱스로부터 비-이스케이프 심벌의 인덱스를 도출하는 것이 허용되지 않는, 방법.
67. 비디오 프로세싱 방법으로서, 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 비트스트림 표현은 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 팔레트 모드 코딩 툴의 도출된 팔레트 인덱스는 최댓값을 가짐 - 를 포함하며, 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하는, 방법.
68. 해결책 67의 방법으로서, 최댓값은 현재 팔레트 테이블 크기인, 방법.
69. 해결책 67의 방법으로서, 최댓값은 하나 이상의 이스케이프 심벌에 대한 인덱스를 제외하는 현재 팔레트 테이블 크기이고, 하나 이상의 이스케이프 심벌 중 한 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
70. 비디오 프로세싱 방법으로서, 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 이스케이프 심벌을 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 이스케이프 심벌을 나타내는 인덱스의 값은 하나 이상의 비디오 영역 각각에 대해 변경되지 않음 - 를 포함하며, 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
71. 해결책 70의 방법으로서, 인덱스가 MaxPaletteIndex와 동일한, 방법.
72. 비디오 프로세싱 방법으로서, 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 현재 인덱스 및 참조 인덱스에 기초하여 코딩되는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수함 - 를 포함하며, 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하는, 방법.
73. 해결책 72의 방법으로서, 현재 인덱스와 참조 인덱스 사이의 차이가 코딩되는, 방법.
74. 해결책 73의 방법으로서, 차이의 코딩된 표현은 0 값 차이들을 제외하는, 방법.
75. 해결책 72의 방법으로서, 현재 인덱스와 참조 인덱스 사이의 차이의 모듈로가 코딩되는, 방법.
76. 해결책 75의 방법으로서, 모듈로는 I = modulo(C-R, MaxPaletteIndex)로서 표현되고, C는 현재 인덱스이고, R은 참조 인덱스이며, MaxPaletteIndex는 미리 정의된 음이 아닌 정수인, 방법.
77. 해결책 72의 방법으로서, 참조 인덱스는 팔레트 모드 코딩 툴의 팔레트 블록의 시작 부분에서 -1로 설정되는, 방법.
78. 비디오 프로세싱 방법으로서, 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 예측 코딩되는 이스케이프 심벌을 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수함 - 를 포함하며, 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
79. 해결책 78의 방법으로서, 이스케이프 심벌은 이전에 코딩된 이스케이프 심벌들에 기초하여 예측 코딩되는, 방법.
80. 해결책 78의 방법으로서, 비디오의 색상 성분에서의 이스케이프 심벌은 동일한 색상 성분에서의 값들에 기초하여 예측 코딩되는, 방법.
81. 해결책 78의 방법으로서, 비디오의 제1 색상 성분에서의 이스케이프 심벌은 제1 색상 성분과 상이한 비디오의 제2 색상 성분에서의 값들에 기초하여 예측 코딩되는, 방법.
82. 비디오 프로세싱 방법으로서, 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 팔레트 엔트리들을 인덱싱하기 위한 팔레트 인덱스에 기초한 콘텍스트로 런 길이 코딩되는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수함 - 를 포함하며, 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하는, 방법.
83. 해결책 82의 방법으로서, 길이 요소의 프리픽스에 대한 콘텍스트는 디코더에서의 인덱스 조정 프로세스 이후의 팔레트 인덱스에 기초하는, 방법.
84. 비디오 프로세싱 방법으로서, 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 이전 팔레트 인덱스들과 독립적으로 시그널링되는 현재 팔레트 인덱스를 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수함 - 를 포함하며, 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하는, 방법.
85. 해결책 84의 방법으로서, 이전 팔레트 인덱스들을 사용하는 것은 현재 비디오 블록이 하나 이상의 이스케이프 심벌을 포함하는지 여부에 기초하고, 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
86. 비디오 프로세싱 방법으로서, 정렬 규칙에 기초하여, 비디오의 하나 이상의 비디오 영역의 현재 비디오 블록에 대한 양자화 파라미터를 예측하는 데 사용되는 제1 이웃 비디오 블록 및 현재 비디오 블록의 코딩 모드를 예측 결정하는 데 사용되는 제2 이웃 비디오 블록을 결정하는 단계; 및 결정에 기초하여, 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하는, 방법.
87. 해결책 86의 방법으로서, 제1 이웃 비디오 블록은 좌측 위쪽 이웃 비디오 블록 또는 위쪽 이웃 비디오 블록인, 방법.
88. 해결책 86 또는 해결책 87의 방법으로서, 제2 이웃 비디오 블록은 좌측 위쪽 이웃 비디오 블록 또는 위쪽 이웃 비디오 블록인, 방법.
89. 해결책 86 내지 해결책 88 중 어느 한 해결책의 방법으로서, 코딩 모드는 현재 비디오 블록에 대한 MPM(most probable mode)을 포함하는, 방법.
90. 비디오 프로세싱 방법으로서, 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이, 현재 비디오 블록이 이스케이프 심벌을 포함하는지 여부에 관계없이, 블록 레벨 양자화 파라미터(QP) 차이를 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수함 - 를 포함하며, 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
91. 해결책 90의 방법으로서, QP 차이는 임계치보다 큰 폭을 갖는 팔레트 블록에 대해 코딩되는, 방법.
92. 해결책 90의 방법으로서, QP 차이는 임계치보다 큰 높이를 갖는 팔레트 블록에 대해 코딩되는, 방법.
93. 비디오 프로세싱 방법으로서, 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 팔레트 블록에 대한 하나 이상의 코딩된 블록 플래그(CBF)를 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수함 - 를 포함하며, 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하는, 방법.
94. 해결책 93의 방법으로서, CBF들 각각은 1과 동일하게 설정되는, 방법.
95. 해결책 93의 방법으로서, 하나 이상의 CBF의 값은 현재 비디오 블록이 이스케이프 심벌을 포함하는지 여부에 기초하고, 이스케이프 심벌은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
96. 비디오 프로세싱 방법으로서, 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 하나 이상의 팔레트 인덱스를 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 하나 이상의 팔레트 인덱스의 수(NumPltIdx)는 K보다 크거나 같음 - 를 포함하며, 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하고, K는 양의 정수인, 방법.
97. 해결책 96의 방법으로서, K는 현재 팔레트 크기(S), 이스케이프 플래그(E), 또는 현재 비디오 블록의 크기(BlkS)에 기초하는, 방법.
98. 해결책 97의 방법으로서, K = S + E인, 방법.
99. 해결책 96의 방법으로서, K는 팔레트 인덱스(MaxPaletteIndex)의 최댓값에 1을 더한 것과 동일한, 방법.
100. 해결책 96의 방법으로서, 신택스 요소들 중 하나는 NumPltIdx-K를 포함하는, 방법.
101. 해결책 100의 방법으로서, (NumPltIdx-K)의 값의 이진화는 절단된 이진 코드인, 방법.
102. 해결책 100의 방법으로서, (NumPltIdx-K)의 값의 이진화는 절단된 단항 코드인, 방법.
103. 해결책 101 또는 해결책 102의 방법으로서, (BlkS-K)는 이진화 입력 파라미터이고, BlkS는 현재 비디오 블록의 크기인, 방법.
104. 비디오 프로세싱 방법으로서, 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 현재 비디오 블록이 현재 블록에 대한 팔레트의 최대 크기, 현재 비디오 블록의 크기, 무손실 모드의 사용 또는 양자화 파라미터(QP)에 기초한 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수함 - 를 포함하며, 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록을 표현하는, 방법.
105. 해결책 104의 방법으로서, 무손실 모드가 적용되었거나, QP가 임계치보다 크거나, 또는 변환 스킵이 적용되었다는 결정 시에 현재 블록에 대한 팔레트의 크기는 현재 비디오 블록의 크기와 동일한 것으로 추론되는, 방법.
106. 해결책 1 내지 해결책 105 중 어느 한 해결책의 방법으로서, 변환을 수행하는 단계는 비디오의 비디오 콘텐츠, 디코더 파라미터 세트(DPS), 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 적응 파라미터 세트(APS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU), 코딩 유닛(CU), LCU 행, LCU들의 그룹, 변환 유닛(TU), 예측 유닛(PU) 블록, 또는 비디오 코딩 유닛에서 시그널링되는 메시지, 비디오의 색상 포맷의 표시, 코딩 트리 구조, 시간 ID 계층, 또는 표준의 프로필, 레벨 또는 티어 중 하나 이상에 추가로 기초하는, 방법.
107. 비디오 프로세싱 방법으로서, 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 위해, 현재 비디오 블록이 블록 기반 차분 펄스 코드 변조(BDPCM) 모드로 코딩되고 다수의 변환 블록들 또는 서브블록들로 분할된다고 결정하는 단계; 및 변환을 수행하는 것의 일부로서, 결정에 기초하여 블록 레벨에서 잔차 예측을 수행하고 서브블록 또는 변환 블록 레벨에서 하나 이상의 잔차를 비트스트림 표현에 포함시키는 것을 수행하는 단계를 포함하는, 방법.
108. 비디오 프로세싱 방법으로서, 현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 비트스트림 표현은 현재 비디오 블록이 라인 기반 계수 그룹(CG) 팔레트 모드를 사용하여 코딩된다는 포맷 규칙을 준수함 - 를 포함하며, 라인 기반 CG 팔레트 모드는 대표 색상 값들의 팔레트를 사용하여 현재 비디오 블록의 각각의 코딩 유닛(CU)의 다수의 세그먼트들을 표현하는, 방법.
109. 해결책 108의 방법으로서, 비트스트림 표현은 각각의 계수 그룹에 대해 이스케이프 샘플이 존재하는지 여부의 표시를 포함하고, 이스케이프 샘플은 대표 색상 값들을 사용하지 않고 코딩되는 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
110. 해결책 108의 방법으로서, 비트스트림 표현은 콘텍스트 코딩되지 않은 위쪽 인덱스를 복사하는 것의 사용의 표시를 포함하는, 방법.
111. 해결책 110의 방법으로서, 표시는 바이패스 코딩되는, 방법.
112. 해결책 108의 방법으로서, 하나 이상의 복사 플래그, 하나 이상의 런 유형, 위쪽 인덱스를 복사하는 것의 사용의 하나 이상의 표시, 및 이스케이프 값들은 비트스트림 표현에서 인터리빙된 방식으로 시그널링되는, 방법.
113. 해결책 108의 방법으로서, 현재 비디오 블록의 크기가 임계치(Th)보다 작거나 같다는 결정 시에 라인 기반 CG 팔레트 모드가 디스에이블되는, 방법.
114. 해결책 107 내지 해결책 113 중 어느 한 해결책의 방법으로서, 변환을 수행하는 단계는 비디오의 비디오 콘텐츠, 디코더 파라미터 세트(DPS), 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 적응 파라미터 세트(APS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU), 코딩 유닛(CU), LCU 행, LCU들의 그룹, 변환 유닛(TU), 예측 유닛(PU) 블록, 또는 비디오 코딩 유닛에서 시그널링되는 메시지, 비디오의 색상 포맷의 표시, 코딩 트리 구조, 시간 ID 계층, 또는 표준의 프로필, 레벨 또는 티어 중 하나 이상에 추가로 기초하는, 방법.
115. 해결책 1 내지 해결책 114 중 어느 한 해결책의 방법으로서, 변환을 수행하는 단계는 하나 이상의 비디오 영역으로부터 비트스트림 표현을 생성하는 단계를 포함하는, 방법.
116. 해결책 1 내지 해결책 114 중 어느 한 해결책의 방법으로서, 변환을 수행하는 단계는 비트스트림 표현으로부터 하나 이상의 비디오 영역을 생성하는 단계를 포함하는, 방법.
117. 비디오 시스템에서의 장치로서, 프로세서 및 명령어들을 갖는 비일시적 메모리를 포함하며, 명령어들은, 프로세서에 의한 실행 시에, 프로세서로 하여금 해결책 1 내지 해결책 116 중 어느 한 해결책에서의 방법을 구현하게 하는, 장치.
118. 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램 제품으로서, 컴퓨터 프로그램 제품은 해결책 1 내지 해결책 116 중 어느 한 해결책에서의 방법을 수행하기 위한 프로그램 코드를 포함하는, 컴퓨터 프로그램 제품.
본 문서에 설명된 개시된 및 다른 해결책들, 예들, 실시예들, 모듈들 및 기능 동작들은 디지털 전자 회로로, 또는 본 문서에 개시된 구조 및 그의 구조적 등가물을 포함한, 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어로, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 개시된 및 다른 실시예들은 하나 이상의 컴퓨터 프로그램 제품으로서, 즉 데이터 프로세싱 장치에 의해 실행하기 위해 또는 데이터 프로세싱 장치의 동작을 제어하기 위해 컴퓨터 판독 가능 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독 가능 매체는 머신 판독 가능 저장 디바이스, 머신 판독 가능 저장 기판, 메모리 디바이스, 머신 판독 가능 전파 신호를 실현하는 조성물(composition of matter), 또는 이들 중 하나 이상의 조합일 수 있다. “데이터 프로세싱 장치"라는 용어는, 예로서, 프로그래밍 가능 프로세서, 컴퓨터, 또는 다수의 프로세서들 또는 컴퓨터들을 포함한, 데이터를 프로세싱하기 위한 모든 장치들, 디바이스들, 및 머신들을 포괄한다. 장치들은, 하드웨어 외에도, 문제의 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들면, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 전파 신호는 인공적으로 생성된 신호, 예를 들면, 적합한 수신기 장치로 전송하기 위한 정보를 인코딩하기 위해 생성되는 머신 생성(machine-generated) 전기, 광학, 또는 전자기 신호이다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은, 컴파일되는(compiled) 또는 인터프리트되는(interpreted) 언어들을 포함하여, 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 독립형 프로그램(stand-alone program)으로서 또는 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛으로서를 포함하여, 임의의 형태로 배포(deploy)될 수 있다. 컴퓨터 프로그램이 파일 시스템에서의 파일에 반드시 대응하는 것은 아니다. 프로그램은 다른 프로그램들 또는 데이터(예를 들면, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일 부분에, 문제의 프로그램에 전용된 단일 파일에, 또는 다수의 통합 파일들(coordinated files)(예를 들면, 하나 이상의 모듈, 서브 프로그램(sub program), 또는 코드 부분(portion of code)을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서 또는 하나의 사이트에 위치하거나 다수의 사이트들에 걸쳐 분산되고 통신 네트워크에 의해 상호연결되는 다수의 컴퓨터들 상에서 실행되도록 배포될 수 있다.
본 문서에 설명된 프로세스들 및 논리 흐름들은 입력 데이터에 대해 작동하여 출력을 생성하는 것에 의해 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능 프로세서에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들이 또한 특수 목적 논리 회로, 예를 들면, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있고, 장치들이 또한 이들로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 및 특수 목적 마이크로프로세서들 양쪽 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 양쪽 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들을 수행하기 위한 프로세서 및 명령어들과 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들면, 자기, 자기 광학 디스크들, 또는 광학 디스크들을 포함할 것이거나, 또는 이들로부터 데이터를 수신하거나 이들로 데이터를 전송하도록 작동 가능하게 결합될 것이거나, 또는 양쪽 모두일 것이다. 그렇지만, 컴퓨터가 그러한 디바이스들을 가질 필요는 없다. 컴퓨터 프로그램 명령어들과 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는, 예로서, 반도체 메모리 디바이스들, 예를 들면, EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들면, 내장형 하드 디스크들 또는 이동식 디스크들; 자기 광학 디스크들; 및 CD ROM과 DVD-ROM 디스크들을 포함한, 모든 형태들의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 그에 통합될 수 있다.
본 특허 문서가 많은 구체적 사항들을 포함하지만, 이들은 임의의 주제의 범위 또는 청구될 수 있는 것의 범위에 대한 제한으로서 해석되어서는 안 되며, 오히려 특정 기술들의 특정의 실시예들에 특정적일 수 있는 특징들에 대한 설명으로서 해석되어야 한다. 개별 실시예들의 맥락에서 본 특허 문서에 설명되는 특정 특징들이 또한 단일 실시예에서 조합하여 구현될 수 있다. 이와 달리, 단일 실시예의 맥락에서 설명되는 다양한 특징들이 또한 다수의 실시예들에서 개별적으로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 더욱이, 특징들이 특정 조합들로 기능하는 것으로 위에서 설명되고 심지어 처음에 그 자체로서 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징이 일부 경우에 그 조합으로부터 제거될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
유사하게, 동작들이 도면에서 특정의 순서로 묘사되지만, 이것은, 바람직한 결과들을 달성하기 위해, 그러한 동작들이 도시된 특정의 순서로 또는 순차적 순서로 수행되어야 하거나, 모든 예시된 동작들이 수행되어야 하는 것을 요구하는 것으로 이해되어서는 안 된다. 더욱이, 본 특허 문서에 설명된 실시예들에서 다양한 시스템 컴포넌트들의 분리가 모든 실시예들에서 그러한 분리를 요구하는 것으로서 이해되어서는 안 된다.
단지 몇 가지 구현들 및 예들이 설명되고 다른 구현들, 향상들 및 변형들이 이 특허 문서에 설명되고 예시된 것에 기초하여 이루어질 수 있다.

Claims (118)

  1. 비디오 프로세싱 방법으로서,
    현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 상기 비트스트림 표현은 상기 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 상기 현재 비디오 블록에 대한 이스케이프 심벌의 이진화는 차수 K의 지수 골롬(EG) 코드를 사용함 -
    를 포함하며,
    K는 3과 동일하지 않은 음이 아닌 정수이고,
    상기 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 상기 현재 비디오 블록을 표현하고 상기 이스케이프 심벌은 상기 대표 색상 값들을 사용하지 않고 코딩되는 상기 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
  2. 제1항에 있어서, K = 0인, 방법.
  3. 제1항에 있어서, K = 1인, 방법.
  4. 제1항에 있어서, K = 2인, 방법.
  5. 비디오 프로세싱 방법으로서,
    하나 이상의 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 상기 비트스트림 표현은 상기 하나 이상의 비디오 블록 중 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 상기 현재 비디오 블록에 대한 이스케이프 심벌의 이진화는 고정 길이 이진화를 사용함 -
    를 포함하며,
    상기 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 상기 현재 비디오 블록을 표현하고, 상기 이스케이프 심벌은 상기 대표 색상 값들을 사용하지 않고 코딩되는 상기 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
  6. 제5항에 있어서, 상기 고정 길이 이진화는 N 비트를 사용하고, N은 1보다 큰 정수인, 방법.
  7. 제6항에 있어서, N은 내부 비트 깊이에 기초하는, 방법.
  8. 제6항에 있어서, N의 값은 슬라이스 서브픽처, 타일, 픽처 또는 비디오에서 시그널링되는, 방법.
  9. 제6항에 있어서, N은 양자화 파라미터에 기초하는, 방법.
  10. 제9항에 있어서, N은, f(Qp)로서 표기되는, 상기 양자화 파라미터(Qp)의 함수(f())에 기초하는, 방법.
  11. 제9항에 있어서, N은 (ibd - max(16, (Qp - 4)/6))으로 설정되고, ibd는 내부 비트 깊이인, 방법.
  12. 제9항에 있어서, N은 (ibd - max(QpPrimeTsMin, (Qp - 4)/6))으로 설정되고, ibd는 내부 비트 깊이이고 QpPrimeTsMin은 변환 스킵 모드에 대한 최소 허용 양자화 파라미터인, 방법.
  13. 제9항에 있어서, N은 max(A, (ibd - max(16, (QpPrimeTsMin - 4)/6)))으로 설정되고, ibd는 내부 비트 깊이이며, QpPrimeTsMin은 변환 스킵 모드에 대한 최소 허용 양자화 파라미터이고, A는 음이 아닌 정수인, 방법.
  14. 제13항에 있어서, A = 0이거나 A = 1인, 방법.
  15. 제9항 내지 제14항 중 어느 한 항에 있어서, 상기 양자화 파라미터는 상기 비디오의 슬라이스의 양자화 파라미터와 상수 값의 합이고, 상기 상수 값은 정수인, 방법.
  16. 비디오 프로세싱 방법으로서,
    현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 상기 비트스트림 표현은 상기 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 상기 현재 비디오 블록의 이스케이프 심벌의 이진화는 가변 길이 코딩을 사용함 -
    를 포함하며,
    상기 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 상기 현재 비디오 블록을 표현하고 상기 이스케이프 심벌은 상기 대표 색상 값들을 사용하지 않고 코딩되는 상기 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
  17. 제16항에 있어서, 상기 가변 길이 코딩은 차수 3의 지수 골롬 코드를 제외하는, 방법.
  18. 제16항에 있어서, 상기 가변 길이 코딩은 입력 파라미터 K를 갖는 절단된 이진(TB) 코드이고, K는 정수인, 방법.
  19. 제18항에 있어서, K는 (a) 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU) 행, LCU들의 그룹, 또는 브릭에서 시그널링되는 메시지, (b) 내부 비트 깊이, (c) 입력 비트 깊이, (d) 상기 내부 비트 깊이와 상기 입력 비트 깊이 사이의 차이, (e) 상기 현재 비디오 블록의 치수, (f) 상기 현재 비디오 블록의 현재 양자화 파라미터, (g) 상기 비디오의 색상 포맷의 표시, (h) 코딩 트리 구조, 또는 (i) 상기 비디오의 색상 성분에 기초하는, 방법.
  20. 제5항에 있어서, 상기 이스케이프 심벌의 다수의 값들은 다수의 이진화 방법들을 사용하여 시그널링되는, 방법.
  21. 비디오 프로세싱 방법으로서,
    현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계
    를 포함하며,
    상기 변환은 상기 현재 비디오 블록에 대한 양자화 또는 역양자화 프로세스의 적용을 포함하고,
    상기 비트스트림 표현은 상기 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩되는지 여부에 기초하여 상기 양자화 또는 상기 역양자화 프로세스의 상기 적용을 구성하는 포맷 규칙을 준수하며,
    상기 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 상기 현재 비디오 블록을 표현하는, 방법.
  22. 비디오 프로세싱 방법으로서,
    현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 상기 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 상기 현재 비디오 블록이, 상기 현재 비디오 블록의 이스케이프 심벌이 이진 시프트 연산을 사용하여 양자화 및/또는 역양자화되도록, 표현된다는 포맷 규칙을 준수함 -
    를 포함하며,
    상기 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 상기 현재 비디오 블록을 표현하고 상기 이스케이프 심벌은 상기 대표 색상 값들을 사용하지 않고 코딩되는 상기 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
  23. 제22항에 있어서, 상기 양자화는 우측 비트 시프트에 대응하는, 방법.
  24. 제22항에 있어서, 상기 이스케이프 심벌은 f(p, Qp)로서 코딩되며, f()는 함수이고, p는 입력 심벌 값이며, Qp는 상기 현재 비디오 블록을 표현하는 대응하는 색상 성분에 대한 도출된 양자화 파라미터인, 방법.
  25. 제24항에 있어서, f는 p >> g(Qp)로서 정의되는, 방법.
  26. 제24항에 있어서, f는 (p + (1 << (g(QP)-1))) >> g(Qp)로서 정의되는, 방법.
  27. 제24항에 있어서, f는
    clip(0, (1<< bd) -1, (p + (1 << (g(QP)-1))) >> g(Qp))로서 정의되고,
    clip(x, min, max)는 클리핑 함수이며, x, min, 및 max는 정수들인, 방법.
  28. 제22항에 있어서, 상기 이스케이프 심벌은 h(p)로서 코딩되고, h()는 함수이고 p는 입력 값 심벌인, 방법.
  29. 제28항에 있어서, h는 p >> N으로서 정의되고 N은 음이 아닌 정수인, 방법.
  30. 제28항에 있어서, h는 (p + (1 << (N - 1))) >> N으로서 정의되고, N은 음이 아닌 정수인, 방법.
  31. 제29항 또는 제30항에 있어서, cu_transquant_bypass_flag = 1일 때 N = 0인, 방법.
  32. 제29항 또는 제30항에 있어서, cu_transquant_bypass_flag = 1일 때 N = (bd-ibd)이고, bd는 내부 비트 깊이이고 ibd는 입력 비트 깊이인, 방법.
  33. 제28항에 있어서, h는 clip(0, (1 << (bd-N)-1, p >> N)으로서 정의되고, bd는 상기 현재 비디오 블록의 현재 색상 성분에 대한 내부 비트 깊이이고 N은 음이 아닌 정수이며, clip(x, min, max)는 클리핑 함수이고, x, min, 및 max는 정수들인, 방법.
  34. 제28항에 있어서, h는 clip(0, (1 << (bd-N)-1, (p + (1 << (N-1))) >> N)으로서 정의되고, bd는 상기 현재 비디오 블록의 현재 색상 성분에 대한 내부 비트 깊이이고 N은 음이 아닌 정수이며, clip(x, min, max)는 클리핑 함수이고, x, min, 및 max는 정수들인, 방법.
  35. 제29항 내지 제34항 중 어느 한 항에 있어서, N은 범위 [0, (bd-1)]에 있고, bd는 상기 현재 비디오 블록의 현재 색상 성분에 대한 내부 비트 깊이인, 방법.
  36. 제22항에 있어서, 상기 역양자화는 좌측 비트 시프트에 대응하는, 방법.
  37. 제36항에 있어서, 상기 이스케이프 심벌은 f(p, Qp)로서 역양자화되고, f()는 함수이고, p는 디코딩된 이스케이프 심벌이며, Qp는 상기 현재 비디오 블록을 표현하는 대응하는 색상 성분에 대한 도출된 양자화 파라미터인, 방법.
  38. 제37항에 있어서, f는 p << g(Qp)로서 정의되는, 방법.
  39. 제36항에 있어서, 상기 이스케이프 심벌은 f(p, Qp)로서 재구성되고, f()는 함수이고, p는 디코딩된 이스케이프 심벌이며, Qp는 상기 현재 비디오 블록을 표현하는 대응하는 색상 성분에 대한 도출된 양자화 파라미터인, 방법.
  40. 제39항에 있어서, f는 clip (0, (1 << bd) -1, p << g(Qp))로서 정의되고, bd는 상기 현재 비디오 블록의 현재 색상 성분에 대한 내부 비트 깊이이며, clip(x, min, max)는 클리핑 함수이고, x, min, 및 max는 정수들인, 방법.
  41. 제27항, 제33항, 제34항 또는 제40항 중 어느 한 항에 있어서, 상기 클리핑 함수 clip(x, min, max)는
    Figure pct00103

    로서 정의되는, 방법.
  42. 제36항에 있어서, 상기 이스케이프 심벌은 h(p)로서 재구성되고, h()는 함수이고 p는 디코딩된 이스케이프 심벌인, 방법.
  43. 제42항에 있어서, h는 p << N으로서 정의되고 N은 음이 아닌 정수인, 방법.
  44. 제42항 또는 제43항에 있어서, cu_transquant_bypass_flag = 1일 때 N = 0인, 방법.
  45. 제42항 또는 제43항에 있어서, cu_transquant_bypass_flag = 1일 때 N = (bd-ibd)이고, bd는 내부 비트 깊이이고 ibd는 입력 비트 깊이인, 방법.
  46. 제42항 또는 제43항에 있어서, N = (max(QpPrimeTsMin, qP)-4)/6이고, qP는 디코딩된 양자화 파라미터들이고 QpPrimeTsMin은 변환 스킵 모드에 대한 최소 허용 양자화 파라미터인, 방법.
  47. 제43항 내지 제46항 중 어느 한 항에 있어서, N은 min(bd-1, N)으로서 추가로 클리핑되고, bd는 상기 현재 비디오 블록의 현재 색상 성분에 대한 내부 비트 깊이인, 방법.
  48. 제43항 내지 제47항 중 어느 한 항에 있어서, N은 범위 [0, (bd-1)]에 있고, bd는 상기 현재 비디오 블록의 현재 색상 성분에 대한 내부 비트 깊이인, 방법.
  49. 제36항에 있어서, 상기 이스케이프 심벌의 재구성 오프셋은 비트 깊이 정보에 기초하는, 방법.
  50. 제49항에 있어서, 상기 비트 깊이 정보는 내부 비트 깊이와 입력 비트 깊이 사이의 차이(ΔBD로 표기됨)를 포함하는, 방법.
  51. 제50항에 있어서, K ≤ ΔBD일 때 상기 재구성된 오프셋은 p << K와 동일하고, p는 디코딩된 이스케이프 심벌이고 K는 정수인, 방법.
  52. 제49항에 있어서, K ≤ T0일 때 상기 재구성된 오프셋은 p << K와 동일하고, p는 디코딩된 이스케이프 심벌이고 K 및 T0는 정수들인, 방법.
  53. 제50항에 있어서, T0 = 2인, 방법.
  54. 제50항에 있어서, 상기 재구성된 오프셋은
    (p << K) + ((1 << (K-1)) >> ΔBD << ΔBD)와 동일하고,
    p는 디코딩된 이스케이프 심벌이고 K는 정수인, 방법.
  55. 제50항에 있어서, ΔBD는 상기 비트스트림 표현에서 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨, 타일 레벨, 브릭 레벨 또는 서브픽처 레벨에서 시그널링되는, 방법.
  56. 제22항 내지 제55항 중 어느 한 항에 있어서, 상기 이스케이프 심벌은 콘텍스트 코딩되는, 방법.
  57. 제22항 내지 제55항 중 어느 한 항에 있어서, 상기 이스케이프 심벌은 바이패스 코딩되는, 방법.
  58. 제25항 내지 제27항, 제38항 또는 제40항 중 어느 한 항에 있어서, g(Qp)는 (Qp-4)/6으로서 정의되는, 방법.
  59. 제25항 내지 제27항, 제38항 또는 제40항 중 어느 한 항에 있어서, g(Qp)는 (max(M, Qp)-4)/6으로서 정의되고, M은 정수인, 방법.
  60. 제59항에 있어서, M은 시퀀스 파라미터 세트(SPS)에서 시그널링되는, 방법.
  61. 제58항 내지 제60항 중 어느 한 항에 있어서, g(Qp)는 범위 [0, (bd-1)]에 있고, bd는 상기 현재 비디오 블록의 현재 색상 성분에 대한 내부 비트 깊이인, 방법.
  62. 비디오 프로세싱 방법으로서,
    현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 상기 비트스트림 표현은 상기 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 상기 팔레트 모드 코딩 툴의 하나 이상의 팔레트 인덱스는 참조 인덱스를 사용하지 않고 코딩됨 -
    를 포함하며,
    상기 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 상기 현재 비디오 블록을 표현하는, 방법.
  63. 제62항에 있어서, 상기 하나 이상의 팔레트 인덱스의 이진화는 이진화 입력 파라미터로서 최대 팔레트 인덱스를 갖는 절단된 이진(TB) 코드인, 방법.
  64. 비디오 프로세싱 방법으로서,
    현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 상기 비트스트림 표현은 상기 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩되고 이스케이프 심벌의 인덱스와 비-이스케이프 심벌의 인덱스 사이의 도출을 제약한다는 포맷 규칙을 준수함 -
    를 포함하며,
    상기 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 상기 현재 비디오 블록을 표현하고 상기 이스케이프 심벌은 상기 대표 색상 값들을 사용하지 않고 코딩되는 상기 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
  65. 제64항에 있어서, 상기 비-이스케이프 심벌의 상기 인덱스로부터 상기 이스케이프 심벌의 상기 인덱스를 도출하는 것이 허용되지 않는, 방법.
  66. 제64항에 있어서, 상기 이스케이프 심벌의 상기 인덱스로부터 상기 비-이스케이프 심벌의 상기 인덱스를 도출하는 것이 허용되지 않는, 방법.
  67. 비디오 프로세싱 방법으로서,
    현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 상기 비트스트림 표현은 상기 현재 비디오 블록이 팔레트 모드 코딩 툴을 사용하여 코딩된다는 포맷 규칙을 준수하고, 상기 팔레트 모드 코딩 툴의 도출된 팔레트 인덱스는 최댓값을 가짐 -
    를 포함하며,
    상기 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 상기 현재 비디오 블록을 표현하는, 방법.
  68. 제67항에 있어서, 상기 최댓값은 현재 팔레트 테이블 크기인, 방법.
  69. 제67항에 있어서, 상기 최댓값은 하나 이상의 이스케이프 심벌에 대한 인덱스를 제외하는 현재 팔레트 테이블 크기이고, 상기 하나 이상의 이스케이프 심벌 중 한 이스케이프 심벌은 상기 대표 색상 값들을 사용하지 않고 코딩되는 상기 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
  70. 비디오 프로세싱 방법으로서,
    현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 상기 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 상기 현재 비디오 블록이 이스케이프 심벌을 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 상기 이스케이프 심벌을 나타내는 인덱스의 값은 상기 하나 이상의 비디오 영역 각각에 대해 변경되지 않음 -
    를 포함하며,
    상기 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 상기 현재 비디오 블록을 표현하고 상기 이스케이프 심벌은 상기 대표 색상 값들을 사용하지 않고 코딩되는 상기 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
  71. 제70항에 있어서, 상기 인덱스가 MaxPaletteIndex와 동일한, 방법.
  72. 비디오 프로세싱 방법으로서,
    현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 상기 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 상기 현재 비디오 블록이 현재 인덱스 및 참조 인덱스에 기초하여 코딩되는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수함 -
    를 포함하며,
    상기 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 상기 현재 비디오 블록을 표현하는, 방법.
  73. 제72항에 있어서, 상기 현재 인덱스와 상기 참조 인덱스 사이의 차이가 코딩되는, 방법.
  74. 제73항에 있어서, 상기 차이의 코딩된 표현은 0 값 차이들을 제외하는, 방법.
  75. 제72항에 있어서, 상기 현재 인덱스와 상기 참조 인덱스 사이의 차이의 모듈로가 코딩되는, 방법.
  76. 제75항에 있어서, 상기 모듈로는 I = modulo(C-R, MaxPaletteIndex)로서 표현되고, C는 상기 현재 인덱스이고, R은 상기 참조 인덱스이며, MaxPaletteIndex는 미리 정의된 음이 아닌 정수인, 방법.
  77. 제72항에 있어서, 상기 참조 인덱스는 상기 팔레트 모드 코딩 툴의 팔레트 블록의 시작 부분에서 -1로 설정되는, 방법.
  78. 비디오 프로세싱 방법으로서,
    현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 상기 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 상기 현재 비디오 블록이 예측 코딩되는 이스케이프 심벌을 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수함 -
    를 포함하며,
    상기 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 상기 현재 비디오 블록을 표현하고 상기 이스케이프 심벌은 상기 대표 색상 값들을 사용하지 않고 코딩되는 상기 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
  79. 제78항에 있어서, 상기 이스케이프 심벌은 이전에 코딩된 이스케이프 심벌들에 기초하여 예측 코딩되는, 방법.
  80. 제78항에 있어서, 상기 비디오의 색상 성분에서의 상기 이스케이프 심벌은 동일한 색상 성분에서의 값들에 기초하여 예측 코딩되는, 방법.
  81. 제78항에 있어서, 상기 비디오의 제1 색상 성분에서의 상기 이스케이프 심벌은 상기 제1 색상 성분과 상이한 상기 비디오의 제2 색상 성분에서의 값들에 기초하여 예측 코딩되는, 방법.
  82. 비디오 프로세싱 방법으로서,
    현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 상기 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 상기 현재 비디오 블록이 팔레트 엔트리들을 인덱싱하기 위한 팔레트 인덱스에 기초한 콘텍스트로 런 길이 코딩되는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수함 -
    를 포함하며,
    상기 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 상기 현재 비디오 블록을 표현하는, 방법.
  83. 제82항에 있어서, 길이 요소의 프리픽스에 대한 상기 콘텍스트는 디코더에서의 인덱스 조정 프로세스 이후의 상기 팔레트 인덱스에 기초하는, 방법.
  84. 비디오 프로세싱 방법으로서,
    현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 상기 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 상기 현재 비디오 블록이 이전 팔레트 인덱스들과 독립적으로 시그널링되는 현재 팔레트 인덱스를 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수함 -
    를 포함하며,
    상기 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 상기 현재 비디오 블록을 표현하는, 방법.
  85. 제84항에 있어서, 상기 이전 팔레트 인덱스들을 사용하는 것은 상기 현재 비디오 블록이 하나 이상의 이스케이프 심벌을 포함하는지 여부에 기초하고, 이스케이프 심벌은 상기 대표 색상 값들을 사용하지 않고 코딩되는 상기 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
  86. 비디오 프로세싱 방법으로서,
    정렬 규칙에 기초하여, 비디오의 하나 이상의 비디오 영역의 현재 비디오 블록에 대한 양자화 파라미터를 예측하는 데 사용되는 제1 이웃 비디오 블록 및 상기 현재 비디오 블록의 코딩 모드를 예측 결정하는 데 사용되는 제2 이웃 비디오 블록을 결정하는 단계; 및
    상기 결정에 기초하여, 상기 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계
    를 포함하는, 방법.
  87. 제86항에 있어서, 상기 제1 이웃 비디오 블록은 좌측 위쪽 이웃 비디오 블록 또는 위쪽 이웃 비디오 블록인, 방법.
  88. 제86항 또는 제87항에 있어서, 상기 제2 이웃 비디오 블록은 좌측 위쪽 이웃 비디오 블록 또는 위쪽 이웃 비디오 블록인, 방법.
  89. 제86항 내지 제88항 중 어느 한 항에 있어서, 상기 코딩 모드는 상기 현재 비디오 블록에 대한 MPM(most probable mode)을 포함하는, 방법.
  90. 비디오 프로세싱 방법으로서,
    현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 상기 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 상기 현재 비디오 블록이, 상기 현재 비디오 블록이 이스케이프 심벌을 포함하는지 여부에 관계없이, 블록 레벨 양자화 파라미터(QP) 차이를 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수함 -
    를 포함하며,
    상기 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 상기 현재 비디오 블록을 표현하고 상기 이스케이프 심벌은 상기 대표 색상 값들을 사용하지 않고 코딩되는 상기 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
  91. 제90항에 있어서, 상기 QP 차이는 임계치보다 큰 폭을 갖는 팔레트 블록에 대해 코딩되는, 방법.
  92. 제90항에 있어서, 상기 QP 차이는 임계치보다 큰 높이를 갖는 팔레트 블록에 대해 코딩되는, 방법.
  93. 비디오 프로세싱 방법으로서,
    현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 상기 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 상기 현재 비디오 블록이 팔레트 블록에 대한 하나 이상의 코딩된 블록 플래그(CBF)를 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수함 -
    를 포함하며,
    상기 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 상기 현재 비디오 블록을 표현하는, 방법.
  94. 제93항에 있어서, 상기 CBF들 각각은 1과 동일하게 설정되는, 방법.
  95. 제93항에 있어서, 상기 하나 이상의 CBF의 값은 상기 현재 비디오 블록이 이스케이프 심벌을 포함하는지 여부에 기초하고, 상기 이스케이프 심벌은 상기 대표 색상 값들을 사용하지 않고 코딩되는 상기 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
  96. 비디오 프로세싱 방법으로서,
    현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 상기 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 상기 현재 비디오 블록이 하나 이상의 팔레트 인덱스를 포함하는 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수하고, 상기 하나 이상의 팔레트 인덱스의 수(NumPltIdx)는 K보다 크거나 같음 -
    를 포함하며,
    상기 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 상기 현재 비디오 블록을 표현하고, K는 양의 정수인, 방법.
  97. 제96항에 있어서, K는 현재 팔레트 크기(S), 이스케이프 플래그(E), 또는 상기 현재 비디오 블록의 크기(BlkS)에 기초하는, 방법.
  98. 제97항에 있어서, K = S + E인, 방법.
  99. 제96항에 있어서, K는 팔레트 인덱스(MaxPaletteIndex)의 최댓값에 1을 더한 것과 동일한, 방법.
  100. 제96항에 있어서, 상기 신택스 요소들 중 하나는 NumPltIdx-K를 포함하는, 방법.
  101. 제100항에 있어서, (NumPltIdx-K)의 값의 이진화는 절단된 이진 코드인, 방법.
  102. 제100항에 있어서, (NumPltIdx-K)의 값의 이진화는 절단된 단항 코드인, 방법.
  103. 제101항 또는 제102항에 있어서, (BlkS-K)는 이진화 입력 파라미터이고, BlkS는 상기 현재 비디오 블록의 크기인, 방법.
  104. 비디오 프로세싱 방법으로서,
    현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 상기 비트스트림 표현은 팔레트 모드 코딩 툴을 사용하여 코딩되는 상기 현재 비디오 블록이 상기 현재 블록에 대한 팔레트의 최대 크기, 상기 현재 비디오 블록의 크기, 무손실 모드의 사용 또는 양자화 파라미터(QP)에 기초한 신택스 요소들을 사용하여 표현된다는 포맷 규칙을 준수함 -
    를 포함하며,
    상기 팔레트 모드 코딩 툴은 대표 색상 값들의 팔레트를 사용하여 상기 현재 비디오 블록을 표현하는, 방법.
  105. 제104항에 있어서, 상기 무손실 모드가 적용되었거나, 상기 QP가 임계치보다 크거나, 또는 변환 스킵이 적용되었다는 결정 시에 상기 현재 블록에 대한 상기 팔레트의 크기는 상기 현재 비디오 블록의 상기 크기와 동일한 것으로 추론되는, 방법.
  106. 제1항 내지 제105항 중 어느 한 항에 있어서, 상기 변환을 수행하는 단계는 상기 비디오의 비디오 콘텐츠, 디코더 파라미터 세트(DPS), 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 적응 파라미터 세트(APS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU), 코딩 유닛(CU), LCU 행, LCU들의 그룹, 변환 유닛(TU), 예측 유닛(PU) 블록, 또는 비디오 코딩 유닛에서 시그널링되는 메시지, 상기 비디오의 색상 포맷의 표시, 코딩 트리 구조, 시간 ID 계층, 또는 표준의 프로필, 레벨 또는 티어 중 하나 이상에 추가로 기초하는, 방법.
  107. 비디오 프로세싱 방법으로서,
    현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 위해, 상기 현재 비디오 블록이 블록 기반 차분 펄스 코드 변조(BDPCM) 모드로 코딩되고 다수의 변환 블록들 또는 서브블록들로 분할된다고 결정하는 단계; 및
    상기 변환을 수행하는 것의 일부로서, 상기 결정에 기초하여 블록 레벨에서 잔차 예측을 수행하고 상기 서브블록 또는 변환 블록 레벨에서 하나 이상의 잔차를 상기 비트스트림 표현에 포함시키는 것을 수행하는 단계
    를 포함하는, 방법.
  108. 비디오 프로세싱 방법으로서,
    현재 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 상기 비트스트림 표현은 상기 현재 비디오 블록이 라인 기반 계수 그룹(CG) 팔레트 모드를 사용하여 코딩된다는 포맷 규칙을 준수함 -
    를 포함하며,
    상기 라인 기반 CG 팔레트 모드는 대표 색상 값들의 팔레트를 사용하여 상기 현재 비디오 블록의 각각의 코딩 유닛(CU)의 다수의 세그먼트들을 표현하는, 방법.
  109. 제108항에 있어서, 상기 비트스트림 표현은 각각의 계수 그룹에 대해 이스케이프 샘플이 존재하는지 여부의 표시를 포함하고, 이스케이프 샘플은 상기 대표 색상 값들을 사용하지 않고 코딩되는 상기 현재 비디오 블록의 샘플에 대해 사용되는, 방법.
  110. 제108항에 있어서, 상기 비트스트림 표현은 콘텍스트 코딩되지 않은 위쪽 인덱스를 복사하는 것의 사용의 표시를 포함하는, 방법.
  111. 제110항에 있어서, 상기 표시는 바이패스 코딩되는, 방법.
  112. 제108항에 있어서, 하나 이상의 복사 플래그, 하나 이상의 런 유형, 위쪽 인덱스를 복사하는 것의 사용의 하나 이상의 표시, 및 이스케이프 값들은 상기 비트스트림 표현에서 인터리빙된 방식으로 시그널링되는, 방법.
  113. 제108항에 있어서, 상기 현재 비디오 블록의 크기가 임계치(Th)보다 작거나 같다는 결정 시에 상기 라인 기반 CG 팔레트 모드가 디스에이블되는, 방법.
  114. 제107항 내지 제113항 중 어느 한 항에 있어서, 상기 변환을 수행하는 단계는 상기 비디오의 비디오 콘텐츠, 디코더 파라미터 세트(DPS), 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 픽처 파라미터 세트(PPS), 적응 파라미터 세트(APS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU), 코딩 유닛(CU), LCU 행, LCU들의 그룹, 변환 유닛(TU), 예측 유닛(PU) 블록, 또는 비디오 코딩 유닛에서 시그널링되는 메시지, 상기 비디오의 색상 포맷의 표시, 코딩 트리 구조, 시간 ID 계층, 또는 표준의 프로필, 레벨 또는 티어 중 하나 이상에 추가로 기초하는, 방법.
  115. 제1항 내지 제114항 중 어느 한 항에 있어서, 상기 변환을 수행하는 단계는 상기 하나 이상의 비디오 영역으로부터 상기 비트스트림 표현을 생성하는 단계를 포함하는, 방법.
  116. 제1항 내지 제114항 중 어느 한 항에 있어서, 상기 변환을 수행하는 단계는 상기 비트스트림 표현으로부터 상기 하나 이상의 비디오 영역을 생성하는 단계를 포함하는, 방법.
  117. 비디오 시스템에서의 장치로서, 프로세서 및 명령어들을 갖는 비일시적 메모리를 포함하며, 상기 명령어들은, 상기 프로세서에 의한 실행 시에, 상기 프로세서로 하여금 제1항 내지 제116항 중 하나 이상의 항에 기재된 방법을 구현하게 하는, 장치.
  118. 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 프로그램 제품은 제1항 내지 제116항 중 하나 이상의 항에 기재된 방법을 수행하기 위한 프로그램 코드를 포함하는, 컴퓨터 프로그램 제품.
KR1020227004047A 2019-08-15 2020-08-15 팔레트 이스케이프 심벌에 대한 엔트로피 코딩 KR20220044279A (ko)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
CNPCT/CN2019/100850 2019-08-15
CN2019100850 2019-08-15
CN2019106700 2019-09-19
CNPCT/CN2019/106700 2019-09-19
CNPCT/CN2019/107494 2019-09-24
CN2019107494 2019-09-24
CN2019108736 2019-09-27
CNPCT/CN2019/108736 2019-09-27
CN2019109793 2019-10-01
CNPCT/CN2019/109793 2019-10-01
CN2019113931 2019-10-29
CNPCT/CN2019/113931 2019-10-29
CNPCT/CN2020/071221 2020-01-09
CN2020071221 2020-01-09
PCT/US2020/046581 WO2021030788A1 (en) 2019-08-15 2020-08-15 Entropy coding for palette escape symbol

Publications (1)

Publication Number Publication Date
KR20220044279A true KR20220044279A (ko) 2022-04-07

Family

ID=74570808

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227004047A KR20220044279A (ko) 2019-08-15 2020-08-15 팔레트 이스케이프 심벌에 대한 엔트로피 코딩

Country Status (6)

Country Link
US (3) US11503344B2 (ko)
EP (1) EP4000263A4 (ko)
JP (2) JP2022544413A (ko)
KR (1) KR20220044279A (ko)
CN (2) CN117395420A (ko)
WO (1) WO2021030788A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4000269A4 (en) 2019-08-15 2022-09-07 ByteDance Inc. PALLET MODE WITH DIFFERENT DIVISION STRUCTURES
KR102655352B1 (ko) * 2019-08-22 2024-04-04 엘지전자 주식회사 영상 디코딩 방법 및 그 장치
CN115714866A (zh) * 2019-11-01 2023-02-24 北京达佳互联信息技术有限公司 残差和系数编解码的方法和装置

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2008129855A1 (ja) 2007-04-11 2010-07-22 パナソニック株式会社 画像データ復号化装置、画像データ復号化方法
BR112012028576A2 (pt) 2010-05-12 2016-08-02 Nippon Telegraph & Telephone método de controle de codificação de vídeo, aparelho de codificação de vídeo, e programa de codificação de vídeo
CN106067973B (zh) 2010-05-19 2019-06-18 Sk电信有限公司 视频解码设备
US20130272390A1 (en) 2012-04-16 2013-10-17 Qualcomm Incorporated Uniform granularity for quantization matrix in video coding
GB2501535A (en) 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
US9426466B2 (en) 2012-06-22 2016-08-23 Qualcomm Incorporated Transform skip mode
US9426462B2 (en) 2012-09-21 2016-08-23 Qualcomm Incorporated Indication and activation of parameter sets for video coding
US9805442B2 (en) 2012-10-03 2017-10-31 Avago Technologies General Ip (Singapore) Pte. Ltd. Fine-grained bit-rate control
GB2513110A (en) 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
US10063886B2 (en) 2013-10-07 2018-08-28 Vid Scale, Inc. Combined scalability processing for multi-layer video coding
US10055189B2 (en) 2014-01-02 2018-08-21 Vid Scale, Inc. Two-dimensional palette coding for screen content coding
KR102494913B1 (ko) 2014-03-14 2023-02-06 브이아이디 스케일, 인크. 스크린 콘텐츠 코딩을 위한 팔레트 코딩
EP3117608B1 (en) 2014-03-14 2021-05-12 HFI Innovation Inc. Method for palette management
US10091512B2 (en) 2014-05-23 2018-10-02 Futurewei Technologies, Inc. Advanced screen content coding with improved palette table and index map coding methods
WO2015176685A1 (en) * 2014-05-23 2015-11-26 Mediatek Inc. Methods for palette size signaling and conditional palette escape flag signaling
US10136141B2 (en) 2014-06-11 2018-11-20 Qualcomm Incorporated Determining quantization parameter (QP) values and delta QP values for palette coded blocks in video coding
US9900617B2 (en) 2014-06-20 2018-02-20 Qualcomm Incorporated Single color palette mode in video coding
AU2014408228B2 (en) 2014-09-30 2019-09-19 Microsoft Technology Licensing, Llc Rules for intra-picture prediction modes when wavefront parallel processing is enabled
US20160100179A1 (en) 2014-10-06 2016-04-07 Vid Scale, Inc. Palette coding for screen content coding
US20160100177A1 (en) * 2014-10-06 2016-04-07 Qualcomm Incorporated Non-uniform exponential-golomb codes for palette mode coding
WO2016054765A1 (en) 2014-10-08 2016-04-14 Microsoft Technology Licensing, Llc Adjustments to encoding and decoding when switching color spaces
SG10201900004UA (en) 2014-12-19 2019-02-27 Hfi Innovation Inc Methods of palette based prediction for non-444 color format in video and image coding
TW201637448A (zh) 2015-01-14 2016-10-16 Vid衡器股份有限公司 非4:4:4螢幕內容視訊調色盤編碼
EP3251353A1 (en) 2015-01-29 2017-12-06 VID SCALE, Inc. Palette coding modes and palette flipping
EP3251352A1 (en) 2015-01-29 2017-12-06 VID SCALE, Inc. Escape color coding for palette coding mode
US20160234498A1 (en) 2015-02-05 2016-08-11 Sharp Laboratories Of America, Inc. Methods and systems for palette table coding
CN107409227B (zh) 2015-03-20 2020-01-21 联发科技(新加坡)私人有限公司 视频编解码方法及装置
US10681383B2 (en) 2015-04-08 2020-06-09 Hfi Innovation Inc. Methods for palette mode context coding and binarization in video coding
US10659783B2 (en) 2015-06-09 2020-05-19 Microsoft Technology Licensing, Llc Robust encoding/decoding of escape-coded pixels in palette mode
US11146788B2 (en) 2015-06-12 2021-10-12 Qualcomm Incorporated Grouping palette bypass bins for video coding
US10097842B2 (en) 2015-09-18 2018-10-09 Qualcomm Incorporated Restriction of escape pixel signaled values in palette mode video coding
ES2935261T3 (es) 2016-05-28 2023-03-03 Hfi Innovation Inc Método y aparato de codificación de modo de paleta para datos de video de color
JP7164535B2 (ja) 2017-06-29 2022-11-01 ドルビー ラボラトリーズ ライセンシング コーポレイション 統合された画像再構成及び映像符号化
US11290716B2 (en) 2017-08-03 2022-03-29 Sharp Kabushiki Kaisha Systems and methods for partitioning video blocks in an inter prediction slice of video data
US20190238845A1 (en) 2018-01-26 2019-08-01 Qualcomm Incorporated Adaptive loop filtering on deblocking filter results in video coding
US20190246122A1 (en) 2018-02-08 2019-08-08 Qualcomm Incorporated Palette coding for video coding
US11438590B2 (en) 2018-08-16 2022-09-06 Hfi Innovation Inc. Methods and apparatuses of chroma quantization parameter derivation in video processing system
US11025905B2 (en) 2018-09-14 2021-06-01 Tencent America LLC Method and device for decoding with palette mode
WO2020156528A1 (en) 2019-02-01 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Filtering processes based on in-loop reshaping
US11277611B2 (en) 2019-07-24 2022-03-15 Qualcomm Incorporated Delta quantization parameter (QP) signaling in palette mode
US11206413B2 (en) 2019-08-13 2021-12-21 Qualcomm Incorporated Palette predictor updates for local dual trees
EP4000269A4 (en) 2019-08-15 2022-09-07 ByteDance Inc. PALLET MODE WITH DIFFERENT DIVISION STRUCTURES
CN114424545A (zh) 2019-09-19 2022-04-29 字节跳动有限公司 用于调色板模式的量化参数推导

Also Published As

Publication number Publication date
US20220217408A1 (en) 2022-07-07
US20230051883A1 (en) 2023-02-16
CN114930822A (zh) 2022-08-19
EP4000263A1 (en) 2022-05-25
US11943481B2 (en) 2024-03-26
EP4000263A4 (en) 2022-09-07
US11503344B2 (en) 2022-11-15
WO2021030788A1 (en) 2021-02-18
JP2022544413A (ja) 2022-10-18
CN117395420A (zh) 2024-01-12
US20240056609A1 (en) 2024-02-15
JP2024023581A (ja) 2024-02-21

Similar Documents

Publication Publication Date Title
US11528497B2 (en) Palette mode with different partition structures
WO2021155834A1 (en) Deblocking parameters for chroma component
US11943481B2 (en) Entropy coding for palette escape symbol
KR20220115965A (ko) 비디오 코딩을 위한 일반적인 제약 정보
US11563946B2 (en) Quantization parameter derivation for palette mode
US20240107037A1 (en) Palette Mode For Local Dual Tree
US20230362375A1 (en) Adaptive Colour Transform in Image/Video Coding
WO2021108787A1 (en) Dictionary based coding of video data
WO2021136470A1 (en) Clustering based palette mode for video coding

Legal Events

Date Code Title Description
A201 Request for examination