KR20220036911A - 예측 과정에서 팔레트 모드 코딩 - Google Patents

예측 과정에서 팔레트 모드 코딩 Download PDF

Info

Publication number
KR20220036911A
KR20220036911A KR1020217039825A KR20217039825A KR20220036911A KR 20220036911 A KR20220036911 A KR 20220036911A KR 1020217039825 A KR1020217039825 A KR 1020217039825A KR 20217039825 A KR20217039825 A KR 20217039825A KR 20220036911 A KR20220036911 A KR 20220036911A
Authority
KR
South Korea
Prior art keywords
mode
block
flag
palette
intra
Prior art date
Application number
KR1020217039825A
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 KR20220036911A publication Critical patent/KR20220036911A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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
    • 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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

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

Abstract

비디오 처리를 위한 디바이스들, 시스템들 및 장치들이 기술된다. 비디오 처리를 위한 예시적 방법은, 비디오의 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해, 인터 인트라 결합 예측 모드에 대해 인트라 코딩된 주변 블록들의 수를 카운팅할 때 팔레트 코딩 모드를 사용하여 코딩된 블록을 처리하는 방법을 명시하는 규칙에 따라, 상기 인터 인트라 결합 예측 모드에 대해 상기 현재 블록의 인트라 코딩된 주변 블록들의 수를 결정하는 단계를 포함한다. 상기 방법은 또한 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.

Description

예측 과정에서 팔레트 모드 코딩
관련 출원들에 대한 상호 참조
파리협약에 따른 적용가능한 특허법 및/또는 규칙에 따라, 본 출원은 2019년 7월 29일에 제출된 국제출원 번호 PCT/CN2019/098204의 우선권과 혜택을 적시에 주장하기 위해 만들어졌다. 상기 법 하의 모든 목적을 위해, 상기 출원의 전체 개시물은 본 출원의 개시의 일부로서 참고로 통합된다.
본 문서는 비디오 및 영상 코딩 및 디코딩 기술들에 관한 것이다.
디지털 비디오는 인터넷 및 기타 디지털 통신 네트워크에서 가장 큰 대역폭을 차지한다. 비디오를 수신하고 표시할 수 있는 접속된 사용자 장치의 수가 증가함에 따라, 디지털 비디오 사용을 위한 대역폭 수요가 계속 증가할 것으로 예상된다.
개시된 기술들은 팔레트 모드 코딩이 사용되는 비디오 또는 영상 디코더 또는 인코더의 실시예들에 의해 사용될 수 있다.
일 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 비디오 영역의 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다. 상기 비트스트림 표현은 팔레트 모드의 사용에 대한 제1 지시가 상기 블록에 대해 시그널링되는지 여부를 명시하는 제1 포맷 규칙 및 상기 블록의 예측 모드의 사용에 대한 제2 지시와 관련한 상기 제1 지시의 위치를 명시하는 제2 포맷 규칙에 따라 처리된다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 적어도 상기 블록의 팔레트 모드를 포함하는 하나 또는 그 이상의 허용된 예측 모드들에 기반하여, 비디오 내의 비디오 영역의 블록과 상기 비디오의 비트스트림 표현 간의 변환에 대해 예측 모드를 결정하는 단계를 포함한다. 상기 팔레트 모드의 사용에 대한 지시는 상기 예측 모드에 따라 결정된다. 상기 방법은 또한 상기 하나 또는 그 이상의 허용된 예측 모드들에 기반하여 상기 변환을 수행하는 단계를 포함한다. 다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다. 상기 비트스트림 표현은, 팔레트 모드의 사용의 제1 지시와 인트라 블록 카피(IBC: intra block copy) 모드의 사용의 제2 지시가 상호 의존적으로 시그널링된다고 명시하는 포맷 규칙에 따라 처리된다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 블록과 상기 비디오의 비트스트림 표현 간의 변환에 대해, 상기 블록의 크기(dimension)에 기반하여 상기 비트스트림 표현에서 팔레트 모드의 사용의 지시의 존재를 결정하는 단계 및 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 블록과 상기 비디오의 비트스트림 표현 간의 변환에 대해, 상기 블록의 크기에 기반하여 상기 비트스트림 표현에서 인트라 블록 카피(IBC) 모드의 사용의 지시의 존재를 결정하는 단계 및 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 블록과 상기 비디오의 비트스트림 표현 간의 변환에 대해, 상기 블록을 포함하는 비디오 영역의 제2 지시에 기반하여 팔레트 모드가 상기 블록에 대해 허용되는지 여부를 결정하는 단계 및 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 블록과 상기 비디오의 비트스트림 표현 간의 변환에 대해, 상기 블록을 포함하는 비디오 영역의 제2 지시에 기반하여 인트라 블록 카피(IBC) 모드가 상기 블록에 대해 허용되는지 여부를 결정하는 단계 및 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 블록과 상기 비디오의 비트스트림 표현 간의 변환에 대해, 팔레트 모드에서 팔레트 엔트리와 관련된 제1 샘플의 제1 비트 뎁스를 결정하는 단계를 포함한다. 상기 제1 비트 뎁스는 상기 블록과 관련된 제2 비트 뎁스와 다르다. 상기 방법은 또한 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환에 대해, 주변 블록이 상기 현재 블록의 상단 또는 좌측에 위치하는 경우, 팔레트 모드로 코딩된 상기 현재 블록의 상기 주변 블록이 상기 현재 블록의 가장 가능성 있는 모드(MPM: most probable modes) 후보들의 리스트를 구성하는 동안 디폴트 모드를 가지는 인트라 코딩된 블록으로 처리되는 것으로 결정하는 단계를 포함한다. 또한, 상기 방법은 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 비트스트림 표현에서 팔레트 모드 코딩된 블록으로 코딩된 상기 비디오의 블록에 대해, 규칙에 따라 디블로킹 필터링을 위한 파라미터를 결정하는 단계를 포함한다. 또한, 상기 방법은 디블로킹 필터링을 위한 상기 파라미터를 사용하여 상기 블록과 상기 비디오의 비트스트림 간의 변환을 수행하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환에 대해, 팔레트 모드로 코딩된 상기 현재 블록의 주변 블록이 상기 현재 블록의 가장 가능성 있는 모드(MPM) 후보들의 리스트를 구성하는 동안 비(non) 인트라 코딩된 블록으로 처리되는 것으로 결정하는 단계를 포함한다. 또한, 상기 방법은 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 블록에 대해 상기 블록과 관련된 양자화 파라미터를 결정하는 단계, 상기 양자화 파라미터의 수정된 값에 부분적으로 기반하여 상기 비디오의 상기 블록을 팔레트 코딩된 블록으로서 상기 비디오의 비트스트림 표현으로 코딩하는 단계 및 상기 비트스트림 표현 내의 상기 양자화 파라미터와 관련된 코딩된 정보를 시그널링하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 비트스트림 표현에 기반하여 양자화 파라미터를 유도하는 단계 및 상기 양자화 파라미터를 변형하여 결정된 변형된 양자화 파라미터에 부분적으로 기반하여 팔레트 코딩된 블록을 디코딩하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 비트스트림 표현에서 팔레트 코딩된 블록으로 코딩된 상기 비디오의 블록에 대해, 상기 블록에 대해 바이패스 모드가 활성화되는지 여부와 무관하게, 상기 비트스트림 표현 내에서 상기 블록의 이스케이프(escape) 샘플의 표현을 결정하는 단계를 포함한다. 또한, 상기 방법은 상기 결정에 기초하여 상기 블록과 상기 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 비트스트림 표현에서 팔레트 코딩된 블록으로 코딩된 상기 비디오의 블록에 대해, 제1 양자화 과정을 결정하는 단계를 포함한다. 상기 제1 양자화 과정은 비(non) 팔레트 모드로 코딩된 블록에 적용되는 제2 양자화 과정과 다르다. 또한, 상기 방법은 상기 결정에 기초하여 상기 블록과 상기 비트스트림 표현 간에 변환을 수행하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은 휘도 블록들 및 상응하는 색차 블록들을 포함하는 비디오와 상기 비디오의 비트스트림 표현 간에 규칙에 따라 변환을 수행하는 단계를 포함한다. 상기 규칙은, 현재 휘도 블록이 유도된 모드로 코딩된 상응하는 현재 색차 블록 및 팔레트 코딩 모드를 사용하여 코딩되는 경우에 대해, 상기 휘도 블록이 디폴트 인트라 예측 모드를 가지는 것으로 취급되고 상기 색차 블록이 상기 디폴트 인트라 예측 모드로 코딩된다는 것을 명시한다. 상기 팔레트 코딩 모드는 대표적인 샘플 값들의 팔레트를 사용하여 상기 휘도 블록을 코딩하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은 하나 또는 그 이상의 블록들을 포함하는 비디오와 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다. 상기 변환을 위해, 모션 후보들의 리스트가 규칙에 따라 각 블록에 대해 구성된다. 상기 규칙은 팔레트 코딩 모드를 사용하여 코딩된 블록의 모션 정보가 연속적인 블록들을 코딩하는 데에는 사용될 수 없거나 무효한 것으로 취급된다고 명시한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 비트스트림 표현에서 팔레트 모드 코딩된 블록으로 코딩되는 상기 비디오의 블록에 대해, 규칙에 기반하여 상기 블록의 문맥 코딩된 빈들의 수를 결정하는 단계를 포함한다. 또한, 상기 방법은 상기 결정에 기초하여 상기 비디오의 상기 블록과 상기 비디오의 상기 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 현재 휘도 블록이 유도된 모드로 코딩된 상응하는 현재 색차 블록 및 팔레트 코딩 모드를 사용하여 코딩되는 경우 상기 휘도 블록이 디폴트 인트라 예측 모드를 가지는 것으로 취급되고 상기 색차 블록이 상기 디폴트 인트라 예측 모드로 코딩된다는 것을 명시하는 규칙에 따라, 휘도 블록들 및 상응하는 색차 블록들을 포함하는 비디오와 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다. 상기 팔레트 코딩 모드는 대표적인 샘플 값들의 팔레트를 사용하여 상기 현재 휘도 블록을 코딩하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은 하나 또는 그 이상의 블록들을 포함하는 비디오와 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하며, 이때 상기 변환을 위해, 팔레트 코딩 모드를 사용하여 코딩된 블록의 모션 정보가 연속적인 블록들을 코딩하는 데에는 사용될 수 없거나 무효한 것으로 취급된다고 명시하는 규칙에 기반하여, 모션 후보들의 리스트가 각 블록에 대해 구성된다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 비트스트림 표현에서 팔레트 모드 코딩된 블록으로 코딩되는 상기 비디오의 블록에 대해, 규칙에 기반하여 상기 블록의 문맥 코딩된 빈들의 수를 결정하는 단계를 포함한다. 또한, 상기 방법은 상기 결정에 기초하여 상기 비디오의 상기 블록과 상기 비디오의 상기 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해, 규칙에 기반하여 인터 인트라 결합 예측 모드에 대한 상기 현재 블록의 인트라 코딩된 주변 블록들의 수를 결정하는 단계를 포함한다. 상기 규칙은 상기 인터 인트라 결합 예측 모드에 대한 인트라 코딩된 주변 블록들의 수를 세는 데에 있어 팔레트 코딩 모드를 사용하여 코딩된 블록을 취급하는 방식을 명시하며, 이때 상기 팔레트 모드를 사용하는 것은 대표적인 샘플 값들의 팔레트를 사용하여 블록을 코딩하는 것을 포함한다. 또한, 상기 방법은 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환에 대해, 필터링 과정에서 연산(operation)이 상기 현재 블록의 샘플에 대해 스킵된다는 것을 결정하는 단계를 포함한다. 상기 샘플은 팔레트 코딩 모드를 사용하여 코딩되며, 이때 상기 팔레트 코딩 모드를 사용하는 것은 대표적인 샘플 값들의 팔레트를 사용하여 블록을 코딩하는 것을 포함한다. 또한, 상기 방법은 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 블록과 상기 비디오의 비트스트림 표현 간의 변환에 대해, 3개 이상의 스캐닝 순서들로부터 선택된 스캐닝 순서를 결정하는 단계를 포함한다. 상기 블록은 대표적인 샘플 값들의 팔레트를 사용하는 팔레트 모드로 코딩된다. 또한, 상기 방법은 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 블록과 상기 비디오의 비트스트림 표현 간의 변환에 대해, 상기 블록의 계수들이 상기 블록의 모양에 기반하여 스캐닝되는 하나 또는 그 이상의 스캐닝 순서들을 결정하는 단계를 포함한다. 또한, 상기 방법은 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 블록과 상기 비디오의 비트스트림 표현 간의 변환에 대해, 상기 블록의 계수들이 스캐닝되는 오직 하나의 스캐닝 순서만이 상기 블록의 인트라 예측의 양자화된 잔차와 상기 양자화된 잔차의 예측 사이의 차분이 차분 펄스 코딩 변조(DPCM: differential pulse coding modulation)를 사용하여 상기 블록의 상기 비트스트림 표현에 제시되는(represented) 블록 기반 양자화 잔차 영역 차분 펄스 코딩 변조(BDPCM: block-based quantized residual domain differential pulse coding modulation) 과정을 위해 상기 블록에 적용된다는 것을 결정하는 단계를 포함한다. 또한, 상기 방법은 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은 예측 모드와 별도로 사용이 코딩되는 팔레트 모드가 변환 유닛, 코딩 블록 또는 영역을 처리하기 위해 사용되어야 하며, 함을 결정하는 단계 및 상기 변환 유닛, 상기 코딩 유닛 또는 상기 영역에 대한 추가 처리를 상기 팔레트 모드를 사용하여 수행하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 현재 비디오 블록에 대해, 팔레트 모드의 하나의 팔레트 엔트리와 관련된 샘플이 상기 현재 비디오 블록과 관련된 제2 비트 뎁스와는 다른 제1 비트 뎁스를 가지고 있음을 결정하는 단계 및 상기 하나의 팔레트 엔트리에 기반하여 상기 현재 비디오 블록의 추가 처리를 수행하는 단계를 포함한다.
다른 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 픽처의 현재 비디오 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하고, 이때 인트라 블록 카피 모드가 상기 변환에 사용되는지 여부에 관한 정보는 상기 비트스트림 표현에서 시그널링되거나 상기 현재 비디오 블록의 코딩 조건에 기반하여 유도되고, 상기 인트라 블록 카피 모드는 상기 픽처 내의 다른 비디오 블록으로부터 상기 현재 비디오 블록을 코딩하는 단계를 포함한다.
또 다른 예시적 양상에서, 비디오 처리의 다른 방법이 개시된다. 상기 방법은 디블로킹 필터가 비디오의 픽처의 현재 비디오 블록의 변환 동안 적용되어야 하는지 여부를 결정하는 단계-이때, 상기 현재 비디오 블록은 상기 현재 비디오 블록의 총 픽셀들 보다 작은 대표 샘플 값들을 사용하여 표현되는 팔레트 모드 코딩으로 코딩된다-와 상기 디블로킹 필터가 적용되어야 한다고 결정되는 경우 상기 디블로킹 필터가 적용되도록 상기 변환을 수행하는 단계를 포함한다.
또 다른 예시적 양상에서, 비디오 처리의 다른 방법이 개시된다. 상기 방법은 비디오의 픽처의 현재 비디오 블록과 상기 비디오의 비트스트림 표현 간의 반환 동안 사용할 양자화 또는 역양자화 과정을 결정하는 단계-이때, 상기 현재 비디오 블록은 상기 현재 비디오 블록의 총 픽셀들 보다 작은 대표 샘플 값들을 사용하여 표현되는 팔레트 모드 코딩으로 코딩된다-와 상기 양자화 또는 상기 역양자화 과정을 결정하는 단계에 기반하여 상기 변환을 수행하는 단계를 포함한다.
또 다른 예시적 양상에서, 비디오 처리의 다른 방법이 개시된다. 상기 방법은, 다수의 비디오 블록들을 포함하는 비디오의 현재 비디오 블록과 상기 비디오의 비트스트림 표현 간의 변환에 대해, 상기 현재 비디오 블록이 팔레트 코딩된 블록임을 결정하는 단계, 상기 결정에 기초하여, 상기 현재 비디오 블록을 인트라 코딩된 블록으로 간주하여 가장 가능성 있는 모드의 리스트 구성 과정을 수행하는 단계, 그리고 상기 리스트 구성 과정의 결과에 기반하여 상기 변환을 수행하는 단계를 포함한다. 이때, 상기 팔레트 코딩된 블록은 팔레트 또는 대표 샘플 값들을 사용하여 코딩되거나 디코딩된다.
또 다른 예시적 양상에서, 비디오 처리의 다른 방법이 개시된다. 상기 방법은, 다수의 비디오 블록들을 포함하는 비디오의 현재 비디오 블록과 상기 비디오의 비트스트림 표현 간의 변환에 대해, 상기 현재 비디오 블록이 팔레트 코딩된 블록임을 결정하는 단계, 상기 결정에 기초하여, 상기 현재 비디오 블록을 비(non)인트라 코딩된 블록으로 간주하여 가장 가능성 있는 모드의 리스트 구성 과정을 수행하는 단계, 그리고 상기 리스트 구성 과정의 결과에 기반하여 상기 변환을 수행하는 단계를 포함한다. 이때, 상기 팔레트 코딩된 블록은 팔레트 또는 대표 샘플 값들을 사용하여 코딩되거나 디코딩된다.
또 다른 예시적 양상에서, 비디오 처리의 다른 방법이 개시된다. 상기 방법은, 다수의 비디오 블록들을 포함하는 비디오의 현재 비디오 블록과 상기 비디오의 비트스트림 표현 간의 변환에 대해, 상기 현재 비디오 블록이 팔레트 코딩된 블록임을 결정하는 단계, 상기 결정에 기초하여, 상기 현재 비디오 블록을 가용하지 않은(unavailable) 블록으로 간주하여 리스트 구성 과정을 수행하는 단계, 그리고 상기 리스트 구성 과정의 결과에 기반하여 상기 변환을 수행하는 단계를 포함한다. 이때, 상기 팔레트 코딩된 블록은 팔레트 또는 대표 샘플 값들을 사용하여 코딩되거나 디코딩된다.
또 다른 예시적 양상에서, 비디오 처리의 다른 방법이 개시된다. 상기 방법은, 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환 동안, 상기 현재 비디오 블록이 팔레트 코딩된 블록임을 결정하는 단계, 상기 팔레트 코딩된 블록인 상기 현재 비디오 블록에 기반하여, 상기 변환을 위해 사용되는 문맥 코딩된 빈들의 범위를 결정하는 단계, 그리고 문맥 코딩된 빈들의 상기 범위에 기반하여 상기 변환을 수행하는 단계를 포함한다.
또 다른 예시적 양상에서, 상기 기술된 방법은 프로세서를 포함하는 비디오 인코더 장치에 의해 실시될 수 있다.
또 다른 예시적 양상에서, 이 방법들은 프로세서에 의해 실행 가능하고 컴퓨터 판독 가능한 프로그램 매체에 저장된 명령들의 형태로 구현될 수 있다.
이러한 그리고 다른 양상들은 본 문서에서 더 설명된다.
도 1은 인트라 블록 카피의 일 예를 도시한다.
도 2는 팔레트 모드로 코딩된 블록의 일 예를 도시한다.
도 3은 팔레트 엔트리들을 시그널링하기 위해 팔레트 예측자를 사용하는 일 예를 도시한다.
도 4는 수평 및 수직 횡단(traverse) 스캔들의 일 예를 도시한다.
도 5는 팔레트 인덱스들의 코딩의 일 예를 도시한다.
도 6은 비디오 처리 장치의 일 예를 보여주는 블록도이다.
도 7은 비디오 인코더의 예시적 구현을 보여주는 블록도이다.
도 8은 비디오 처리 방법의 일 예에 대한 순서도이다.
도 9는 필터 온/오프 결정 및 강한/약한 필터 선택과 관련된 픽셀들의 예를 도시한다.
도 10은 4개의 모드들의 이진화의 예를 도시한다.
도 11은 4개의 모드들의 이진화의 예를 도시한다.
도 12는 67개의 인트라 모드 예측 방향들의 예들을 도시한다.
도 13은 주변 비디오 블록들의 예들을 도시한다.
도 14는 ALF 필터 형상 (색차: 5Х5 다이아몬드, 휘도: 7Х7 다이아몬드)의 예들을 도시한다.
도 15a는 수직 그래디언트에 대한 서브샘플링된 라플라시안 계산의 예를 도시한다.
도 15b는 수평 그래디언트에 대한 서브샘플링된 라플라시안 계산의 예를 도시한다.
도 15c는 대각선 그래디언트에 대한 서브샘플링된 라플라시안 계산의 예를 도시한다.
도 15d는 대각선 그래디언트에 대한 서브샘플링된 라플라시안 계산의 예를 도시한다.
도 16은 가상 경계들에서의 수정된 블록 분류의 예를 도시한다.
도 17은 가상 경계들에서의 휘도 성분에 대한 수정된 ALF 필터링의 예를 도시한다.
도 18은 EO에서의 픽셀 분류를 위한 4개의 1-D 3픽셀 패턴들의 예를 도시한다.
도 19는 4개의 밴드가 함께 그룹화되고 그 시작 밴드 위치에 의해 표현되는 예를 도시한다.
도 20은 CIIP 가중치 유도에 사용되는 상단 및 좌측 주변 블록들의 예를 도시한다.
도 21은 휘도 매핑 및 색차 스케일링(LMCS: luma mapping with chroma scaling) 아키텍쳐의 예를 도시한다.
도 22는 4x4 블록에 대한 스캐닝 순서에 일 예를 도시한다.
도 23은 4x4 블록에 대한 스캐닝 순서에 다른 예를 도시한다.
도 24는 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 처리 시스템(2400)을 도시하는 블록도이다.
도 25는 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 26은 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 27은 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 28은 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 29는 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 30은 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 31은 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 32는 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 33은 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 34는 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 35는 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 36a는 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 36b는 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 37은 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 38은 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 39는 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 40은 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 41은 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 42는 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 43은 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 44는 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 45는 본 기술에 따른 비디오 처리를 위한 다른 방법의 다른 순서도 표현이다.
도 46은 본 기술에 따른 비디오 처리를 위한 다른 방법의 또 다른 순서도 표현이다.
본 문서는, 압축해제되거나 디코딩된 디지털 비디오 또는 영상들의 품질을 개선하기 위해 영상 또는 비디오 비트스트림들의 디코더에 의해 사용될 수 있는 다양한 기술들을 제공한다. 간결함을 위해, 여기에 사용되는 용어 “비디오”는 픽처들의 시퀀스 (전통적으로 비디오라 함) 및 개별 영상들을 모두 포함한다. 게다가, 비디오 인코더는 또한 추가 인코딩을 위해 사용되는 디코딩된 프레임들을 재구성하기 위하여 인코딩 과정 동안 이 기술들을 구현할 수 있다.
본 문서에서 이해의 편의를 위해 섹션 표제들이 사용되지만 이는 실시예들 및 기술들을 해당 섹션들로 한정하는 것은 아니다. 따라서, 하나의 섹션의 실시예들은 다른 섹션들의 실시예들과 결합될 수 있다.
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 Advanced Video Coding (AVC) 그리고 H.265/HEVC 표준들을 공동으로 제작하였다. H.262 이후, 비디오 코딩 표준들은 시간 예측과 변환 코딩이 함께 활용되는 하이브리드 비디오 코딩 구조를 기반으로 한다. HEVC를 넘어서는 미래형 비디오 코딩 기술들을 탐구하기 위해, 2015년에 VCEG와 MPEG는 공동 비디오 탐사 팀 (Joint Video Exploration Team (JVET))를 공동 설립하였다. 그 이후로, 많은 새로운 기법들이 JVET에 의해 채택되어 공동 탐사 모델 (Joint Exploration Model (JEM))이라는 참조 소프트웨어에 포함되었다. 2018년 4월, HEVC 대비 비트 레이트 50% 감소를 목표로하는 VVC 표준 작업을 위해, VCEG(Q6/16)와 ISO/IEC JTC1 SC29/WG11(MPEG) 간의 공동 비디오 전문가 팀 (Joint Video Expert Team (JVET))이 결성되었다.
도 7은 비디오 인코더의 예시적인 구현의 블록도이다. 도 7은 인코더 구현예가 내장 피드백 경로를 갖는 것을 보여주며, 비디오 인코더는 또한 (다음 비디오 데이터의 인코딩에 사용될 비디오 데이터의 압축된 표현을 재구성하는) 비디오 디코딩 기능을 수행한다.
2.1 인트라 블록 카피
현재 픽처 참조라 불리는 인트라 블록 카피(IBC)는 HEVC-SCC(HEVC Screen Content Coding extensions) 및 현재 VVC 테스트 모델(VTM-4.0)에 채택되었다. IBC는 모션 보상의 개념을 인터 프레임 코딩으로부터 인트라 프레임 코딩으로 확장한다. 도 1에 도시된 바와 같이, 현재 블록은, IBC가 적용될 때 동일한 픽처 내의 참조 블록에 의해 예측된다. 상기 참조 블록 내의 샘플들은 상기 현재 블록이 코딩 또는 디코딩되기 전에 이미 재구성되어 있어야 한다. IBC가 대부분의 카메라 캡처 시퀀스들에 대해 그렇게 효율적이지 않지만, 화면 콘텐츠에 대해 상당한 코딩 이득을 보여준다. 그 이유는 화면 콘텐츠 픽처에 아이콘 및 텍스트 문자 등의 반복 패턴들이 많기 때문이다. IBC는 이들 반복 패턴들 간의 중복(redundancy)을 효과적으로 제거할 수 있다. HEVC-SCC에서, 현재 픽처를 그 참조 픽처로서 선택하면, 인터 코딩된 코딩 유닛(CU)이 IBC를 적용할 수 있다. MV는 이 경우 블록 벡터(BV)로 재명명되고, BV는 항상 정수 픽셀 정밀도를 갖는다. 메인 프로파일 HEVC와 호환되도록, 현재 픽처는 디코딩된 픽처 버퍼(DPB: Decoded Picture Buffer)에서 "장기(long-term)" 참조 픽처로서 마킹된다. 유사하게, 다수의 뷰/3D 비디오 코딩 표준들에서, 시점간(inter-view) 참조 픽처가 또한 "장기” 참조 픽처로 마킹되는 것에 주의해야 한다.
BV를 추종하여 그것의 참조 블록을 찾으면, 상기 참조 블록을 카피함으로써 예측이 생성될 수 있다. 잔차(residual)는 원본 신호들로부터 참조 픽셀들을 뺌으로써 얻어질 수 있다. 그리고 나서, 변환(transform) 및 양자화는 다른 코딩 모드에서처럼 적용될 수 있다.
그러나, 참조 블록이 픽처의 밖에 있거나 현재 블록과 중첩되거나 재구성된 영역의 밖에 있거나 일부 제약조건에 의해 제한된 유효 영역 밖에 있으면, 픽셀 값의 일부 또는 전부가 정의되지 않는다. 기본적으로, 이러한 문제를 처리하는 2가지 솔루션이 있다. 하나는, 예를 들어, 비트스트림 적합성(bitstream conformance)에서 이러한 상황을 허용하지 않는 것이고, 다른 하나는 정의되지 않은 픽셀 값들에 패딩을 적용하는 것이다. 다음의 하위 세션들은 솔루션들을 상세히 설명한다.
2.2 HEVC 화면 컨텐츠 코딩(Screen Content Coding) 확장에서의 IBC
HEVC의 화면 컨텐츠 확장에서, 블록이 현재 픽처를 참조로 사용하면, 다음의 사양 텍스트로 표시된 바와 같이, 전체 참조 블록이 이용가능한 재구성 영역 내에 있음이 보장되어야 한다.
변수들 offsetX 및 offsetY는 다음과 같이 유도된다.
offsetX = ( ChromaArrayType = = 0 ) ? 0 : ( mvCLX[ 0 ] & 0x7 ? 2 : 0 ) (8-106)
offsetY = ( ChromaArrayType = = 0 ) ? 0 : ( mvCLX[ 1 ] & 0x7 ? 2 : 0 ) (8-107)
참조 픽처가 현재 픽처일 때, 휘도 모션 벡터 mvLX가 다음의 제약조건을 따라야 하는 것은 비트스트림 적합성의 요구사항이다.
- 6.4.1절에 명시된 바와 같이 z-스캔 순서 블록 이용가능성에 대한 유도 절차를 ( xCb, yCb )와 동일하게 설정된 ( xCurr, yCurr ) 및 ( xPb + (mvLX[ 0 ] >> 2) - offsetX, yPb + ( mvLX[ 1 ] >> 2 ) - offsetY )와 동일하게 설정된 주변 휘도 위치 ( xNbY, yNbY )를 입력들로 하여 불러오면, 출력은 참(TRUE)와 같아야 한다.
- 6.4.1 절에 명시된 바와 같이 z-스캔 순서 블록 이용가능성에 대한 유도 절차를 ( xCb, yCb )와 동일하게 설정된 ( xCurr, yCurr )과 ( xPb + (mvLX[ 0 ] >> 2) + nPbW 1 + offsetX, yPb + (mvLX[ 1 ] >> 2) + nPbH 1 + offsetY)와 동일하게 설정된 주변 휘도 위치( xNbY, yNbY )를 입력으로 하여 불러오면, 출력은 참(TRUE)과 같아야 한다.
- 다음 조건 중의 하나 또는 둘다가 참이어야 한다.
- ( mvLX[ 0 ] >> 2 ) + nPbW + xB1 + offsetX 의 값은 0보다 작거나 같다.
- ( mvLX[ 1 ] >> 2 ) + nPbH + yB1 + offsetY의 값은 0보다 작거나 같다.
- 다음 조건이 참이어야 한다.
( xPb + ( mvLX[ 0 ] >> 2 ) + nPbSw - 1 + offsetX) / CtbSizeY <= xCurr / CtbSizeY <= yCurr/CtbSizeY - ( yPb + ( mvLX[ 1 ] >> 2 ) + nPbSh - 1 + offsetY ) / CtbSizeY (8-108)
따라서, 참조 블록이 현재 블록과 중첩되거나 참조 블록이 픽처 밖에 있는 경우는 발생하지 않는다. 참조 또는 예측 블록을 패딩할 필요가 없다.
2.3 VVC 테스트 모델에서의 IBC
현재 VVC 테스트 모델(예를 들어, VTM-4.0 설계)에서, 전체 참조 블록은 현재 코딩 트리 유닛(CTU)과 함께 있어야 하고 현재 블록과 중첩되지 않는다. 따라서, 참조 또는 예측 블록을 패딩할 필요가 없다. IBC 플래그는 현재 CU의 예측 모드로서 코딩된다. 따라서, 각 CU에 대하여 총 3개의 예측 모드들, 즉, MODE_INTRA, MODE_INTER 및 MODE_IBC가 존재한다.
2.3.1 IBC 머지 모드
IBC 머지 모드에서, IBC 머지 후보 리스트 내의 엔트리를 나타내는 인덱스는 비트스트림으로부터 파싱된다. IBC 머지 리스트의 구성은 다음과 같은 단계들의 순서에 따라 요약될 수 있다.
단계 1:공간적 후보들의 유도
단계 2: HMVP 후보들의 삽입
단계 3:쌍별(pairwise) 평균 후보들의 삽입
공간적 머지 후보들의 유도에서, 도면들에 도시된 위치들에 있는 후보들로부터 최대 4개의 머지 후보들이 선택된다. 유도의 순서는 A1, B1, B0, A0 및 B2이다. 위치(B2)는, 위치(A1, B1, B0, A0)의 임의의 PU가 이용가능하지 않거나 (예를 들어, 다른 슬라이스 또는 타일에 속하기 때문) IBC 모드로 코딩되지 않을 때에만 고려된다. 위치(A1)의 후보가 추가된 후, 나머지 후보들의 삽입은 중복성 체크를 거치게 되고, 이는 동일한 모션 정보를 갖는 후보들이 리스트로부터 제외되어 코딩 효율이 개선되도록 한다. 계산 복잡성을 줄이기 위해, 언급된 중복성 체크에서 모든 가능한 후보쌍들이 고려되는 것은 아니다. 대신, 도면들에 도시된 화살표로 링크된 쌍들만이 고려되고, 중복성 체크에 사용되는 해당 후보가 동일한 모션 정보를 갖지 않는 경우에만 후보가 리스트에 추가된다.
공간적 후보들의 삽입 후, IBC 머지 리스트 크기가 여전히 최대 IBC 머지 리스트 크기보다 작으면, HMVP 테이블로부터의 IBC 후보들이 삽입될 수 있다. 상기 HMVP 후보들을 삽입할 때 중복성 체크가 수행된다.
마지막으로, 쌍별(pairwise) 평균 후보들이 IBC 머지 리스트에 삽입된다.
머지 후보에 의해 식별된 참조 블록이 픽처 밖에 있거나 현재 블록과 중첩되거나 재구성된 영역 밖에 있거나 일부 제약 조건에 의해 제한된 유효 영역 밖에 있으면, 머지 후보는 무효 머지 후보라 불리운다.
무효 머지 후보들은 IBC 머지 리스트에 삽입될 수 있다.
2.3.2 IBC AMVP 모드
IBC AMVP 모드에서, IBC AMVP 리스트 내의 엔트리를 나타내는 AMVP 인덱스는 비트스트림으로부터 파싱된다. IBC AMVP 리스트의 구성은 다음과 같은 단계들의 순서에 따라 요약될 수 있다.
단계 1: 공간적 후보들의 유도
이용가능한 후보가 발견될 때까지 A0, A1을 체크한다.
이용가능한 후보가 발견될 때까지 B0, B1, B2를 체크한다.
단계 2: HMVP 후보들의 삽입
단계 3: 제로 후보들의 삽입
공간적 후보들의 삽입 후에, IBC AMVP 리스트 크기가 여전히 최대 IBC AMVP 리스트 크기보다 작으면, HMVP 테이블로부터의 IBC 후보들이 삽입될 수 있다.
마지막으로, 제로 후보들이 IBC AMVP 리스트에 삽입된다.
2.4 팔레트 모드
팔레트 모드의 기본 아이디어는 CU의 샘플들이 대표 칼라 값들의 작은 세트에 의해 표현되는 것이다. 이 세트를 팔레트라 한다. (어쩌면 양자화된) 성분 값들이 뒤따르는 이스케이프(escape) 심볼을 시그널링함으로써 팔레트 밖에 있는 샘플을 나타낼 수 있다. 이것은 도 2에 도시된다.
2.5 HEVC 화면 컨텐츠 코딩 확장 (HEVC-SCC)에서의 팔레트 모드
HEVC-SCC에서의 팔레트 모드에서, 팔레트 및 인덱스 맵을 코딩하는데 예측 방식이 사용된다.
2.5.1 팔레트 엔트리들의 코딩
팔레트 엔트리들의 코딩을 위해, 팔레트 예측자가 유지된다. 팔레트 예측자 뿐만 아니라 팔레트의 최대 크기는 SPS에서 시그널링된다. HEVC-SCC에서, palette_predictor_initializer_present_flag는 PPS에서 도입된다. 이 플래그가 1이면, 팔레트 예측자를 초기화하기 위한 엔트리들은 비트스트림에서 시그널링된다. 팔레트 예측자는 각 CTU 행, 각 슬라이스 및 각 타일의 시작 부분에서 초기화된다. palette_predictor_initializer_present_flag의 값에 따라, 팔레트 예측자는 PPS에서 시그널링되는 팔레트 예측자 이니셜라이저 엔트리들을 이용하여 초기화되거나 0으로 리셋된다. HEVC-SCC에서, 크기 0의 팔레트 예측자 이니셜라이저가 활성화되어 PPS 레벨에서의 팔레트 예측자 초기화의 명시적 비활성화를 허용한다.
팔레트 예측자의 각각의 엔트리에 대해, 재사용 플래그가 시그널링되어 현재 팔레트의 일부인지를 나타낸다. 이것은 도 3에 도시된다. 재사용 플래그는 제로의 런-길이(run-length) 코딩을 이용하여 전송된다. 이후, 새로운 팔레트 엔트리들의 수는 차수 0의 지수 골롬(Golomb) 코드를 이용하여 시그널링된다. 마지막으로, 상기 새로운 팔레트 엔트리들에 대한 성분 값들이 시그널링된다.
2.5.2 팔레트 인덱스들의 코딩
팔레트 인덱스들은 도 4에 도시된 바와 같이 수평 및 수직 횡단 스캔을 이용하여 코딩된다. 스캔 순서는 palette_transpose_flag를 이용하여 비트스트림에서 명시적으로 시그널링된다. 하위 섹션의 나머지에 대해서는, 스캔이 수평인 것으로 가정한다.
팔레트 인덱스들은 2개의 주요 팔레트 샘플 모드들, 즉, 'INDEX' 및 'COPY_ABOVE'를 이용하여 코딩된다. 상술한 바와 같이, 이스케이프 심볼은 또한 'INDEX' 모드로서 시그널링되고, 최대 팔레트 크기와 동일한 인덱스가 할당된다. 모드는 이전 모드가 'COPY_ABOVE'일 때 또는 맨 위 행을 제외하고 플래그를 사용하여 시그널링된다. 'COPY_ABOVE' 모드에서, 위의 행에 있는 샘플의 팔레트 인덱스가 카피된다. 'INDEX' 모드에서, 팔레트 인덱스가 명시적으로 시그널링된다. 'INDEX' 및 'COPY_ABOVE' 모드 모두에 대해, 동일한 모드를 이용하여 코딩되는 후속 샘플들의 수를 명시하는 런(run) 값이 시그널링된다. 이스케이프 심볼이 'INDEX' 또는 'COPY_ABOVE' 모드에서 런의 일부이면, 이스케이프 성분 값들은 각 이스케이프 심볼에 대하여 시그널링된다. 팔레트 인덱스들의 코딩은 도 5에 도시된다.
이 신택스 순서는 다음과 같이 달성된다. 먼저, CU에 대한 인덱스 값들의 수가 시그널링된다. 이 다음에 절단된(truncated) 바이너리 코딩을 이용하여 전체 CU에 대한 실제 인덱스 값들의 시그널링이 뒤따른다. 인덱스 값들 뿐만 아니라 인덱스들의 수가 바이패스 모드에서 코딩된다. 이것은 인덱스 관련 바이패스 빈들(index-related bypass bins)을 함께 그룹화한다. 그 후, 팔레트 샘플 모드(필요하다면) 및 런(run)이 인터리빙(interleaved) 방식으로 시그널링된다. 마지막으로, 전체 CU에 대한 이스케이프 샘플들에 대응하는 성분 이스케이프 값들은 함께 그룹화되고 바이패스 모드에서 코딩된다.
추가 신택스 요소 last_run_type_flag는 인덱스 값들을 시그널링한 후에 시그널링된다. 이 신택스 요소는, 인덱스들의 수와 함께, 블록의 마지막 런(run)에 대응하는 런 값을 시그널링할 필요성을 제거한다.
HEVC-SCC에서, 팔레트는 4:2:2, 4:2:0 및 모노크롬 색차 포맷에 대해서도 활성화된다. 팔레트 엔트리들 및 팔레트 인덱스들의 시그널링은 모든 색차 포맷에 대해 거의 동일하다. 비(non)모노크롬 포맷의 경우, 각각의 팔레트 엔트리는 3개의 성분들로 구성된다. 모노크롬 포맷의 경우, 각각의 팔레트 엔트리는 단일 성분으로 구성된다. 서브샘플링된 색차 방향들에 대해서는, 색차 샘플들이 2로 나누어질 수 있는 휘도 샘플 인덱스들과 연관된다. CU에 대한 팔레트 인덱스들을 재구성한 후에, 샘플이 그와 연관된 단일 성분만을 가지면, 팔레트 엔트리의 제1 성분만이 사용된다. 시그널링에서의 유일한 차이점은 이스케이프 성분 값들에 대한 것이다. 각각의 이스케이프 샘플에 대해, 시그널링되는 이스케이프 성분 값들의 수는 그 샘플과 연관된 성분들의 수에 따라 다를 수 있다.
VVC에서, 듀얼 트리 코딩 구조는 인트라 슬라이스들을 코딩하는데 사용되어, 휘도 성분 및 2개의 색차 성분들이 상이한 팔레트 및 팔레트 인덱스들을 가질 수 있다. 또한, 2개의 색차 성분들은 동일한 팔레트 및 팔레트 인덱스들을 공유한다.
2.6 VVC에서의 디블로킹 방식
다음 설명에서, pNM은 수직 에지에 대하여 M번째 행의 좌측 N번째 샘플 또는 수평 에지에 대하여 M번째 열의 상측 N번째 샘플을 나타내고, qNM은 수직 에지에 대하여 M번째 행의 우측 N번째 샘플 또는 수평 에지에 대하여 M번째 열의 하측 N번째 샘플을 나타낸다. pNM 및 qNM의 예는 도9에 도시된다.
다음 설명에서, pN은 수직 에지에 대하여 행의 좌측 N번째 샘플 또는 수평 에지에 대하여 열의 상측 N번째 샘플을 나타내고, qN은 수직 에지에 대하여 행의 우측 N번째 샘플 또는 수평 에지에 대하여 열의 하측 N번째 샘플을 나타낸다.
필터 온/오프 결정은 유닛으로서 4개의 라인에 대해 수행된다. 도 9는 필터 온/오프 결정에 관련된 픽셀들을 도시한다. 처음 4개의 라인에 대한 2개의 적색 박스 내의 6개의 픽셀들은 4개의 라인에 대한 필터 온/오프를 결정하는데 사용된다. 두번째 4개의 라인에 대한 2개의 적색 박스 내의 6개의 픽셀들은 두번째 4개의 라인에 대한 필터 온/오프를 결정하는데 사용된다.
일부 실시예들에서, 픽처의 수직 에지들이 먼저 필터링된다. 그 후, 픽처의 수평 에지들이 입력으로서의 수직 에지 필터링 과정에 의해 수정된 샘플들로 필터링된다. 각 CTU의 CTB들에서의 수직 및 수평 에지들은 코딩 유닛 별로 별도로 처리된다. 코딩 유닛 내의 코딩 블록들의 수직 에지들은, 기하학적 순서로 코딩 블록들의 우측을 향해 에지들을 통해 진행하는 코딩 블록들의 좌측의 에지로 시작하여 필터링된다. 코딩 유닛 내의 코딩 블록들의 수평 에지들은 기하학적 순서로 코딩 블록들의 하단을 향해 에지들을 통해 진행하는 코딩 블록들의 상단의 에지에서 시작하여 필터링된다.
2.6.1 경계 결정
필터링은 8x8 블록 경계들에 적용된다. 또한, 이는 (예를 들어, 어파인 모션 예측(ATMVP)의 사용에 의해) 변환 블록 경계 또는 코딩 서브블록 경계이어야 한다. 이러한 경계가 아닌 경우에는, 필터가 비활성화된다.
2.6.2 경계 강도 계산
변환 블록 경계/코딩 서브블록 경계의 경우, 8x8 그리드에 위치하면, 필터링될 수 있으며, 이 에지에 대한 bS[xDi][yDj] ([xDi][yDj]는 좌표들을 나타냄)의 설정은 다음과 같이 정의된다.
- 샘플 p0 또는 q0가 인트라 예측 모드로 코딩된 코딩 유닛의 블록에 있으면, bS[xDi][yDj]는 2와 동일하게 설정된다.
- 그렇지 않고, 블록 에지가 변환 블록 에지이고 샘플p0 또는 q0가 하나 이상의 넌제로 변환 계수 레벨들을 포함하는 변환 블록에 있는 경우, bS[xDi][yDj]는 1과 동일하게 설정된다.
- 그렇지 않고, 샘플p0을 포함하는 코딩 서브블록의 예측 모드가 샘플q0을 포함하는 코딩 서브블록의 예측 모드와 다르면, bS[xDi][yDj]는 1과 동일하게 설정된다.
- 그렇지 않고, 다음의 조건 중의 하나 이상이 참이면, bS[xDi][yDj]는 1과 동일하게 설정된다.
- 샘플 p0을 포함하는 코딩 서브블록 및 샘플 q0을 포함하는 코딩 서브블록은 둘 다 IBC 예측 모드에서 코딩되고, 2개의 코딩 서브블록들의 예측에 사용되는 모션 벡터들의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플의 단위로 4보다 크거나 같다.
- 샘플 p0을 포함하는 코딩 서브블록의 예측을 위해, 샘플q0을 포함하는 코딩 서브블록의 예측에 사용되는 것과는 상이한 참조 픽처들 또는 상이한 수의 모션 벡터들이 사용된다.
노트 1 - 2개의 코딩 서브블록들에 사용되는 참조 픽처들가 동일한지 상이한지를 결정하는 것은, 예측이 참조 픽처 리스트 0으로의 인덱스를 이용하여 형성되는지 아니면 참조 픽처 릭스트 1로의 인덱스를 이용하여 형성되는지 그리고 참조 픽처 리스트 내의 인덱스 위치가 상이한지 여부에 관계없이, 어떤 픽처들이 참조되는지에만 의존한다.
노트 2 - (xSb, ySb)를 커버하는 좌측 상단 샘플을 갖는 코딩 서브블록의 예측에 사용되는 모션 벡터들의 수는 PredFlagL0[xSb][ySb] + PredFlagL1[xSb][ySb]와 동일하다.
- 하나의 모션 벡터는 샘플p0을 포함하는 코딩 서브블록를 예측하는데 사용되고, 하나의 모션 벡터는 샘플q0을 포함하는 코딩 서브블록을 예측하는데 사용되고, 모션 벡터들의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플의 단위로 4보다 크거나 같다.
- 2개의 모션 벡터들 및 2개의 상이한 참조 픽처들은 샘플p0을 포함하는 코딩 서브블록을 예측하는데 사용되고, 동일한 2개의 참조 픽처들에 대한 2개의 모션 벡터들은 샘플q0을 포함하는 코딩 서브블록를 예측하는데 사용되고, 동일한 참조 픽처에 대한 2개의 코딩 서브블록들의 예측에 사용되는 2개의 모션 벡터들의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플 단위로 4보다 크거나 같다.
- 동일한 참조 픽처에 대한 2개의 모션 벡터들은 샘플p0을 포함하는 코딩 서브블록을 예측하는데 사용되고, 동일한 참조 픽처에 대한 2개의 모션 벡터들은 샘플q0을 포함하는 코딩서브블록을 예측하는데 사용되고, 다음의 조건들은 모두 참이다.
- 2개의 코딩 서브블록들의 예측에 이용되는 list 0 모션 벡터들의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플의 단위로 4보다 크거나 같거나, 2개의 코딩 서브블록들의 예측에 사용되는 list 1 모션 벡터들의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플 단위로 4보다 크거나 같다.
- 샘플 p0을 포함하는 코딩 서브블록의 예측에 사용되는 list 0 모션 벡터 및 샘플q0을 포함하는 코딩 서브블록의 예측에 사용되는 list 1 모션 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플 단위로 4보다 크거나 같거나, 샘플p0을 포함하는 코딩 서브블록의 예측에 사용되는 list 1 모션 벡터 및 샘플q0을 포함하는 코딩 서브블록의 예측에 사용되는 list 0 모션 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플의 단위로 4보다 크거나 같다.
- 그렇지 않으면, 변수 bS[xDi][yDj]는 0과 동일하게 설정된다.
테이블 2-1 및 2-2는 BS 계산 규칙들을 요약한다.
우선
순위
조건 Y U V
5 인접 블록들 중 적어도 하나가 인트라이다. 2 2 2
4 변환 유닛(TU) 경계 및 적어도 하나의 인접 블록이 넌제로(non-zero) 변환 계수들을 가진다. 1 1 1
3 참조 픽처들 또는 인접 블록들의 MV들의 수(단-예측은 1, 양-예측은 2)가 다르다. 1 N/A N/A
2 인접 블록들에 속하는 동일한 참조 픽처의 모션 벡터들 간의 절대차가 하나의 정수 휘도 샘플 보다 크거나 같다. 1 N/A N/A
1 그 외의 경우 0 0 0
테이블 2-1. 경계 강도 (SPS IBC가 비활성화될 때)
우선
순위
조건 Y U V
8 인접 블록들 중 적어도 하나가 인트라이다. 2 2 2
7 TU 경계 및 적어도 하나의 인접 블록이 넌제로(non-zero) 변환 계수들을 가진다. 1 1 1
6 인접 블록들의 예측 모드가 다르다(예를 들어, 하나는 IBC, 하나는 인터). 1
5 IBC 및 인접 블록들에 속하는 모션 벡터들 사이의 절대차가 하나의 정수 휘도 샘플 보다 크거나 같다. 1 N/A N/A
4 참조 픽처들 또는 인접 블록들의 MV들의 수(단-예측은 1, 양-예측은 2)가 다르다. 1 N/A N/A
3 인접 블록들에 속하는 동일한 참조 픽처의 모션 벡터들 간의 절대차가 하나의 정수 휘도 샘플 보다 크거나 같다. 1 N/A N/A
1 그 외의 경우 0 0 0
테이블 2-2. 경계 강도 (SPS IBC가 활성화될 때)
2.6.3 휘도 성분에 대한 디블록킹 결정
디블록킹 결정 과정은 본 하위 섹션에서 기술된다.
조건 1, 조건 2조건 3 모두가 참(TRUE)인 경우에만 더 넓고 더 강한 휘도 필터 또는 필터들이 사용된다.
조건 1은 "큰 블록 조건"이다. 이 조건은 P측과 Q 측의 샘플들이 큰 블록들에 속하는지를 검출하며, 이것들은 각각 변수 bSidePisLargeBlk 및 bSideQisLargeBlk에 의해 표현된다. bSidePisLargeBlk 및 bSideQisLargeBlk은 다음과 같이 정의된다.
bSidePisLargeBlk = ((에지 타입은 수직이고, p0은 폭 >= 32을 갖는 CU에 속한다) | | (에지 타입은 수평이고 p0는 높이 >= 32를 갖는 CU에 속한다))? TRUE: FALSE
bSideQisLargeBlk = ((에지 타입은 수직이고 p0는 폭 >= 32를 갖는 CU에 속한다) | | (에지 타입은 수평이고 q0는 높이 >= 32를 갖는 CU에 속한다))? TRUE: FALSE
bSidePisLargeBlk 및 bSideQisLargeBlk에 기초하여, 조건 1은 다음과 같이 정의된다.
조건 1 = (bSidePisLargeBlk || bSidePisLargeBlk) ? TRUE: FALSE
다음으로, 조건 1 이 참이면, 조건 2가 추가로 확인될 것이다. 먼저, 다음의 변수들이 유도된다.
- HEVC에서처럼, dp0, dp3, dq0, dq3가 먼저 유도된다.
- if (p측이 32보다 크거나 같다)
dp0 = ( dp0 + Abs( p50 - 2 * p40 + p30 ) + 1 ) >> 1
dp3 = ( dp3 + Abs( p53 - 2 * p43 + p33 ) + 1 ) >> 1
- if (q측이 32보다 크거나 같다)
dq0 = ( dq0 + Abs( q50 - 2 * q40 + q30 ) + 1 ) >> 1
dq3 = ( dq3 + Abs( q53 - 2 * q43 + q33 ) + 1 ) >> 1
조건 2 =
Figure pct00001
여기서, 섹션 2.2.4에서처럼, d= dp0 + dq0 + dp3 + dq3.
조건 1조건 2가 유효하면, 블록들 중의 임의의 것이 서브블록들을 사용하는지를 추가로 체크한다.
If (bSidePisLargeBlk)
If (mode block P == SUBBLOCKMODE)
Sp =5
Else
Sp =7
Else
Sp = 3
If (bSideQisLargeBlk)
If (mode block Q == SUBBLOCKMODE)
Sq =5
Else
Sq =7
Else
Sq = 3
마지막으로, 조건 1조건 2 모두가 유효하면, 제안된 디블록킹 방법은 조건 3(큰 블록 강한 필터 조건)을 확인할 것이며, 이는 다음과 같이 정의된다.
StrongFilterCondition 인 조건 3에서, 다음 변수들이 유도된다.
HEVC에서처럼, dpq가 유도된다.
sp3 = Abs( p3 - p0 ), HEVC에서처럼 유도됨
if (p측이 32보다 크거나 같다)
if(Sp==5)
sp3 = ( sp3 + Abs( p5 - p3 ) + 1) >> 1
Else
sp3 = ( sp3 + Abs( p7 - p3 ) + 1) >> 1
sq3 = Abs( q0 - q3 ), HEVC에서처럼 유도됨
if (q측이 32보다 크거나 같다)
If(Sq==5)
sq3 = ( sq3 + Abs( q5 - q3 ) + 1) >> 1
Else
sq3 = ( sq3 + Abs( q7 - q3 ) + 1) >> 1
HEVC에서처럼, StrongFilterCondition = (dpq 는 (
Figure pct00002
>>2)보다 작고, sp3+sq3는 (3*
Figure pct00003
>>5) 보다 작고, Abs(p0-q0)는 (5*tC+1)>>1)보다 작다 ? TRUE : FALSE 이다.
2.6.4 (더 큰 블록들을 위해 설계된) 더 강한 디블록킹 필터
바이리니어 필터는 경계의 일측에 있는 샘플들이 큰 블록에 속할 때 사용된다. 큰 블록에 속하는 샘플은 수직 에지에 대하여 폭 >= 32일 때 및 수평 에지에 대하여 높이 >= 32일 때로 정의된다.
바이리니어 필터는 아래와 같이 열거된다.
상술한 HEVC 디블록킹의 블록 경계 샘플들 pi (i=0 내지 Sp-1) 및 qi (j=0 내지 Sq-1)(pi 및 qi는 수직 에지를 필터링하는 행 내의 i번째 샘플 또는 수평 에지를 필터링하는 열 내의 i번째 샘플이다)는 다음과 같이 선형 보간으로 대체된다.
Figure pct00004
여기서, 항
Figure pct00005
는 섹션 2.3.6에 기재된 위치 종속 클리핑이고,
Figure pct00006
Figure pct00007
는 테이블 2-3에 기재된다.
Sp, Sq
7, 7
(p 측: 7,
q측: 7)
Figure pct00008

Figure pct00009

Figure pct00010

Figure pct00011
7, 3 (p 측: 7
q측: 3)
Figure pct00012

Figure pct00013

 
Figure pct00014

Figure pct00015
3, 7 (p측: 3
q측: 7)
Figure pct00016

Figure pct00017

 
Figure pct00018

Figure pct00019
7, 5
(p측: 7
q측: 5)
Figure pct00020
Figure pct00021
Figure pct00022
Figure pct00023
5, 7 (p측: 5
q측: 7)
Figure pct00024
Figure pct00025
Figure pct00026
Figure pct00027
5, 5 (p측: 5
q측: 5)
Figure pct00028
Figure pct00029
Figure pct00030
Figure pct00031
5, 3 (p측: 5
q측: 3)
Figure pct00032
Figure pct00033
Figure pct00034
Figure pct00035
3, 5 (p측: 3
q측: 5)
Figure pct00036
Figure pct00037
Figure pct00038
Figure pct00039
테이블 2-3. 롱 탭 디블록킹 필터들
2.6.5 색차에 대한 디블록킹 제어
색차 강 필터들은 블록 경계의 양쪽에 사용된다. 여기서, 색차 필터는 색차 에지의 양쪽이 8(색차 위치)보다 크거나 같을 때 선택되고, 3개의 조건을 갖는 다음 결정이 만족된다. 첫번째 것은 큰 블록 뿐 아니라 경계 강도의 결정에 대한 것이다. 제안된 블록은 블록 에지를 직교하는 블록 폭 또는 높이가 색차샘플 도메인에서 8보다 크거나 같을 때 적용될 수 있다. 두번째 및 세번째 것들은 기본적으로 HEVC 휘도 디블록킹 결정에 대한 것과 동일하고, 이들은 각각 온/오프 결정 및 강 필터 결정이다.
첫번째 결정에서, 테이블 2-2에 도시된 바와 같이, 경계 강도(bS)는 색차 필터링을 위해 수정된다. 테이블 2-2의 조건들은 순차적으로 확인된다. 조건이 만족되면, 더 낮은 우선순위를 갖는 나머지 조건들이 스킵된다.
색차 디블록킹은 bS가 2와 동일할 때 수행되거나 큰 블록 경계가 검출될 때 bS가 1과 같다.
두번째 및 세번째 조건은 다음과 같이 기본적으로 HEVC 휘도 강 필터 결정과 동일하다.
두 번째 조건에서, d는 HEVC 휘도 디블록킹에서처럼 유도된다.
두번째 조건은
Figure pct00040
보다 작을 때 참이다.
세번째 조건에서, StrongFilterCondition는 다음과 같이 유도된다.
dpq는 HEVC에서처럼 유도된다.
sp3 = Abs( p3 - p0 ), HEVC에서처럼 유도됨.
sq3 = Abs( q0 - q3 ), HEVC에서처럼 유도됨.
HEVC 설계에서처럼, StrongFilterCondition = (dpq는 (
Figure pct00041
>> 2 ) 보다 작고, sp3 + sq3는 (
Figure pct00042
>> 3 ) 보다 작고, Abs( p0 - q0 )는 ( 5 * tC + 1 ) >> 1)보다 작다.
2.6.6 색차용 강 디블록킹 필터
다음의 색차용 강 디블록킹 필터가 정의된다.
Figure pct00043
제안된 색차 필터는 4x4 색차 샘플 그리드에 디블록킹을 수행한다.
2.6.7 위치 종속 클리핑
위치 종속 클리핑(tcPD)은 경계에서 7, 5 및 3개의 샘플들을 수정하는 강하고 긴 필터들(strong and long filters)를 포함하는 휘도 필터링 과정의 출력 샘플들에 적용된다. 양자화 에러 분포를 가정하면, 더 높은 양자화 노이즈를 가질 것으로 예상되는 샘플들에 대한 클리핑 값을 증가시키도록 제안되어, 참(true)인 샘플 값으로부터의 재구성된 샘플 값의 편차가 더 높을 것으로 예상된다.
비대칭 필터로 필터링된 각각의 P 또는 Q 경계에 대해, 섹션 2.3.3의 의사 결정 과정의 결과에 따라, 위치 종속 임계값 표는 부가 정보(side information)로서 디코더에 제공되는 2개의 표들(즉, 아래에 표로 작성된 Tc7 및 Tc3)으로부터 선택된다.
Tc7 = { 6, 5, 4, 3, 2, 1, 1};
Tc3 = { 6, 4, 2 };
tcPD = (Sp == 3) ? Tc3 : Tc7;
tcQD = (Sq == 3) ? Tc3 : Tc7;
짧은 대칭 필터로 필터링되는 P 또는 Q 경계들에 대하여, 더 작은 크기의 위치 종속 임계값이 적용된다.
Tc3 = { 3, 2, 1 };
임계값을 정의한 후, 필터링된
Figure pct00044
샘플 값들은 tcP 및 tcQ 클리핑 값들에 따라 클리핑된다.
Figure pct00045
여기서
Figure pct00046
Figure pct00047
는 필터링된 샘플 값들이고,
Figure pct00048
Figure pct00049
는 클리핑 후의 출력 샘플 값이고,
Figure pct00050
는 VVC tc 파라미터 및 tcPDtcQD으로부터 유도된 클리핑 임계값이다. 함수 Clip3는 VVC에서 명시된 바와 같이 클리핑 함수이다.
2.6.8 서브블록 디블록킹 조정
긴 필터들 및 상기 긴 필터들을 디블록킹하는 서브블록을 모두 이용하여 병렬 친화 디블록킹을 활성화하는 것은 긴 필터들에 대한 휘도 제어에서 나타낸 바와 같이 서브블록 디블록킹(AFFINE 또는 ATMVP 또는 DMVR)을 사용하는 측에서 최대 5개의 샘플들을 수정하도록 제한된다. 추가적으로, 서브블록 디블록킹이 조정되어, CU 또는 암시적 TU 경계에 근접한 8x8 그리드 상의 서브블록 경계들이 각 측 상의 최대 2개의 샘플들을 수정하도록 제한된다.
CU 경계와 정렬되지 않은 서브블록 경계들에 다음이 적용된다.
If (mode block Q == SUBBLOCKMODE && edge !=0) {
if (!(implicitTU && (edge == (64 / 4))))
if (edge == 2 || edge == (orthogonalLength - 2) || edge == (56 / 4) || edge == (72 / 4))
Sp = Sq = 2;
Else
Sp = Sq = 3;
Else
Sp = Sq = bSideQisLargeBlk ? 5:3
}
0과 같은 에지가 CU 경계에 해당하는 경우, 2와 동일하거나 orthogonalLength-2와 동일한 에지는, TU의 암시적 분할이 사용되는 경우 암시적 TU가 참인 CU 경계 등으로부터의 서브블록 경계 8 샘플에 대응한다.
2.6.9 휘도/색차용 4CTU/2CTU 라인 버퍼들에 대한 제한
수평 에지가 CTU 경계와 정렬될 때 상기 수평 에지의 필터링은 휘도에 대하여 Sp = 3를 제한하고 색차에 대하여 Sp=1 및 Sq=1를 제한하는 것이다.
2.7 VVC에서의 인트라 모드 코딩
자연 비디오에서 제시되는 임의의 에지 방향들을 캡처하기 위해, VTM5의 방향성 인트라 모드들의 수는 HEVC에서 사용된 것처럼 33에서 65로 확장된다. HEVC에 없는 새로운 방향성 모드들은 도 12의 적색 점선 화살표들로 표시되고, 플래너(planar) 및 DC 모드들은 동일하게 유지된다. 밀도가 높은 이들 방향성 인트라 예측 모드들은 모든 블록 크기 및 휘도 및 색차 인트라 예측 모두에 적용된다.
VTM5에서, 종래의 몇몇 방향성(angular) 인트라 예측 모드들이 정사각형이 아닌 블록들에 대한 광각 인트라 예측 모드들로 적응적으로 대체된다. 광각 인트라 예측은 섹션 3.3.1.2에 설명된다.
HEVC에서, 모든 인트라 코딩된 블록은 정사각형 모양을 갖고, 그것의 각 변의 길이는 2의 거듭제곱이다. 따라서, DC 모드를 이용하여 인트라 예측자를 생성하는데 나눗셈 연산이 필요하지 않다. VTM5에서, 블록들은 일반적인 경우 블록당 나눗셈 연산의 사용을 필요로 하는 직사각형 형상을 가질 수 있다. DC 예측에 대한 나눗셈 연산을 피하기 위하여, 정사각형이 아닌 블록에 대한 평균을 계산하는데 더 긴 변 만이 사용된다.
MPM (most probable mode) 리스트 생성의 복잡도를 낮게 유지하기 위해, 6개의 MPM들을 갖는 인트라 모드 코딩 방법은 2개의 이용가능한 주변 인트라 모드들을 고려함으로써 사용된다. MPM 리스트를 구성하기 위하여 다음의 3개의 양태가 고려된다.
1. 디폴트 인트라 모드들
2. 주변 인트라 모드들
3. 유도된 인트라 모드들
MRL 및 ISP 코딩 툴들의 적용 여부와 무관하게 통합된 6-MPM 리스트가 인트라 블록들에 사용된다. 상기 MPM 리스트는 좌측 및 상측 주변 블록의 인트라 모드들에 기초하여 구성된다. 좌측 블록의 모드는 Left 로 표기되고 상측 블록의 모드는 Above로 표기되는 것으로 가정하면, 상기 통합된 MPM 리스트는 다음과 같이 구성된다(좌측 및 상측 블록들은 도 13에 도시된다).
- 주변 블록이 이용가능하지 않으면, 그것의 인트라 모드는 디폴트로 플래너(planar)로 설정된다.
- LeftAbove 모드 모두 비-방향성(non-angular) 모드이면,
* MPM 리스트 -> {플래너, DC, V, H, V-4, V+4}
- LeftAbove 모드 중 하나가 방향성(angular) 모드이고, 다른 하나가 비-방향성이면,
* Left Above에서, 모드 Max를 더 큰 모드로 설정
* MPM 리스트 -> {플래너, Max, DC, Max -1, Max +1, Max -2}
- Left Above 모두가 방향성이고 다르면,
* Left Above에서, 모드 Max를 더 큰 모드로 설정
* 모드(LeftAbove) 의 차가 2 이상 62 이하의 범위 내에 있으면
MPM 리스트 -> {플래너, Left, Above, DC, Max -1, Max +1}
* 그렇지 않으면,
MPM 리스트 -> {플래너, Left, Above, DC, Max -2, Max +2}
- Left Above 모두가 방향성이고 동일하면,
* MPM 리스트 -> {플래너, Left, Left -1, Left +1, DC, Left -2}
게다가, mpm 인덱스 코드 워드의 제1 빈(bin)은 CABAC 코딩된다. 현재 인트라 블록이 MRL 활성화, ISP 활성화 또는 노멀 인트라 블록인지에 대응하여, 통틀어 3개의 문맥들이 사용된다.
6 MPM 리스트 생성 과정 동안, 중복 모드들을 제거하기 위해 프루닝(pruning)이 사용되어, 고유 모드들만이 MPM 리스트에 포함될 수 있다. 61가지의 비-MPM 모드들의 엔트로피 코딩을 위해 절삭 이진 코드(TBC: Truncated Binary Code)가 사용된다.
색차 인트라 모드 코딩에 대하여 총 8개의 인트라 모드들이 허용된다. 이 모드들은 5개의 전통적인 인트라 모드들 및 3개의 교차 성분 선형 모델 모드들(CCLM, LM_A, 및 LM_L)을 포함한다. 색차 모드 시그널링 및 유도 과정이 테이블 2-4에 도시된다. 색차 모드 코딩은 해당 휘도 블록의 인트라 예측 모드에 직접적으로 의존한다. 휘도 및 색차 성분들에 대한 별도의 블록 분할 구조가 I 슬라이스들에서 활성화되므로, 하나의 색차 블록은 다수의 휘도 블록들에 대응할 수 있다. 그러므로, 색차 DM 모드의 경우, 현재 색차 블록의 중심 위치를 커버하는 해당 휘도 블록의 인트라 예측 모드가 직접적으로 상속된다.
색차 예측 모드 해당 휘도 인트라 예측 모드
0 50 18 1 X ( 0  <=  X  <=  66 )
0 66 0 0 0 0
1 50 66 50 50 50
2 18 18 66 18 18
3 1 1 1 66 1
4 81 81 81 81 81
5 82 82 82 82 82
6 83 83 83 83 83
7 0 50 18 1 X
테이블 2-4 -cclm_is 이 활성화되는 경우 휘도 모드로부터 색차 예측 모드의 유도
2.8 양자화된 잔차 블록 차분 펄스-코드 변조(QR-BDPCM: Quantized residual Block Differential Pulse-code Modulation)
일부 실시예들에서, 화면 컨텐츠를 효율적으로 코딩하기 위해 양자화된 잔차 블록 차분 펄스-코드 변조(QR-BDPCM: quantized residual block differential pulse-code modulation)가 제안된다.
QR-BDPCM에서 사용되는 예측 방향들은 수직 및 수평 예측 모드들일 수 있다. 인트라 예측과 유사한 예측 방향(수평 또는 수직 예측)의 샘플 카피에 의해 전체 블록에 인트라 예측이 수행된다. 잔차는 양자화되고, 양자화된 잔차 및 그 예측자(수평 또는 수직) 양자화된 값 간의 델타가 코딩된다. 이것은 다음에 의해 설명될 수 있다. 크기 M (행) Х N (열)의 블록에 대하여,
Figure pct00051
는 상측 또는 좌측 블록 경계 샘플들로부터의 필터링되지 않은 샘플들을 이용하여 (예측된 블록을 가로질러 좌측 인접 픽셀 값을 라인별로 카피하는) 수평으로 또는 (예측된 블록에서 각 라인에 상단 인접 라인을 카피하는) 수직으로 인트라 예측을 수행한 후의 예측 잔차인 것으로 한다.
Figure pct00052
는 잔차
Figure pct00053
의 양자화된 버전을 나타내고, 잔차는 원본 블록 및 예측된 블록 값 간의 차이다. 그 후, 블록 DPCM이 양자화된 잔차 샘플들에 적용되어, 요소
Figure pct00054
를 갖는 수정된 M Х N 어레이(
Figure pct00055
)가 생성된다. 수직 BDPCM가 시그널링되면,
Figure pct00056
(2-7-1)
수평 예측을 위해, 유사한 규칙이 적용되고, 잔차 양자화된 샘플들은 다음에 의해 획득된다.
Figure pct00057
(2-7-2)
잔차 양자화 샘플들(
Figure pct00058
)은 디코더로 전송된다.
디코더측에서, 상기 계산들이 역으로 수행되어
Figure pct00059
가 산출된다. 수직 예측의 경우,
Figure pct00060
(2-7-3)
수평의 경우,
Figure pct00061
(2-7-4)
역양자화 잔차
Figure pct00062
는 인트라 블록 예측 값들에 더해져 재구성된 샘플 값들을 산출한다.
이 방식의 주요 이점은, 계수들이 파싱됨에 따라 예측자를 단순히 더하는 계수 파싱 동안 역 DPCM이 즉시 수행되거나 파싱 후에 수행될 수 있다는 것이다.
2.9 적응적 루프 필터
VTM5에서, 블록 기반 필터 적응을 갖는 적응적 루프 필터(ALF: Adaptive Loop Filter)가 적용된다. 휘도 성분에 대하여, 로컬 그래디언트의 방향 및 액티비티에 기초하여 각각의 4Х4 블록에 대해 25개의 필터 중 하나가 선택된다.
2.9.1 필터 형상
VTM5에서, (도 14에 도시된 바와 같이) 2개의 다이아몬드 필터 형상들이 사용된다. 휘도 성분에 7Х7 다이아몬드 형상이 적용되고 색차 성분에 5Х5 다이아몬드 형상이 적용된다.
2.9.2 블록 분류
휘도 성분의 경우, 각 4 x 4 블록이 25 클래스들 중 하나로 분류된다. 분류 인덱스(C)는 다음과 같이 그 방향성(
Figure pct00063
) 및 액티비티(
Figure pct00064
)의 양자화된 값에 기초하여 아래와 같이 유도된다.
Figure pct00065
(2-9-1)
Figure pct00066
를 계산하기 위해, 수평, 수직 및 2개의 대각선 방향의 그래디언트가 1-D 라플라시안을 이용하여 먼저 계산된다.
Figure pct00067
여기서 인덱스들
Figure pct00068
는4 x 4 블록 내의 좌측 상단 샘플의 좌표들을 나타내고,
Figure pct00069
의 재구성된 샘플을 나타낸다.
블록 분류의 복잡성을 감소시키기 위하여, 서브샘플링된 1-D 라플라시안 계산이 적용된다. 도 15a 내지 d에 도시된 바와 같이, 모든 방향의 그래디언트 계산에 동일한 서브샘플링된 위치들이 사용된다.
그 후, 수평 및 수직 방향의 그래디언트의 최대 및 최소 값들(
Figure pct00070
)은 다음과 같이 설정된다.
Figure pct00071
(2-9-6)
2개의 대각선 방향의 그래디언트의 최대 및 최소 값은 다음과 같이 설정된다.
Figure pct00072
(2-9-7)
방향성(
Figure pct00073
)의 값을 유도하기 위해, 이들 값은 서로 비교되고 2개의 임계값
Figure pct00074
Figure pct00075
를 갖는다.
단계 1.
Figure pct00076
가 모두 참이면,
Figure pct00077
는 0으로 설정된다.
단계 2.
Figure pct00078
이면, 단계 3부터 계속되고, 그렇지 않으면 단계 4부터 계속된다.
단계 3.
Figure pct00079
이면,
Figure pct00080
는 0으로 설정되고, 그렇지 않으면,
Figure pct00081
는 1로 설정된다.
단계 4.
Figure pct00082
이면,
Figure pct00083
는 4로 설정되고, 그렇지 않으면,
Figure pct00084
는 3으로 설정된다.
액티비티 값(
Figure pct00085
)는 다음과 같이 계산된다.
Figure pct00086
(2-9-8)
Figure pct00087
는 0 이상이고 4 이하의 범위로 더 양자화되고, 양자화된 값은
Figure pct00088
로 표기된다.
픽처의 색차 성분들의 경우, 분류 방법은 적용되지 않는다. 즉, ALF 계수들의 단일한 세트가 각 색차 성분마다 적용된다.
2.9.3. 필터 계수들 및 클리핑 값들의 기하학적 변환들
각 4Х4 휘도 블록을 필터링하기 전에, 회전 또는 대각선 및 수직 플리핑(flipping) 등의 기하학적 변환들이 그 블록에 대하여 산출된 그래디언트 값들에 따라 필터 계수들
Figure pct00089
및 해당 필터 클리핑 값들
Figure pct00090
에 적용된다. 이것은 필터 지원 영역에서 이들 변환들을 샘플들에 적용하는 것과 동등하다. 아이디어는 그것들의 방향성을 정렬함으로써 더 유사하게 ALF가 적용되는 상이한 블록들을 만드는 것이다.
대각선, 수직 플립 및 회전을 포함하는 3개의 기하학적 변환들이 도입된다.
Figure pct00091
여기서
Figure pct00092
는 필터의 크기이고,
Figure pct00093
는 계수 좌표들이어서, 위치 (0,0)는 좌측 상단 코너에 있고, 위치
Figure pct00094
는 우측 하단 코너에 있다. 상기 변환들은 그 블록에 대하여 산출된 그래디언트 값들에 따라 필터 계수들 f (k, l) 및 클리핑 값들
Figure pct00095
에 적용된다. 4개의 방향의 4개의 그래디언트 및 변환 간의 관계가 다음 테이블에 요약된다.
그래디언트 값 변환
gd2 < gd1 and gh < gv 변환 없음
gd2 < gd1 and gv < gh 대각선
gd1 < gd2 and gh < gv 수직 플립
gd1 < gd2 and gv < gh 회전
테이블 2-5 - 하나의 블록에 대하여 산출된 그래디언트 및 변환의 맵핑
2.9.4 필터 파라미터 시그널링
VTM5에서, ALF 필터 파라미터들은 적응 파라미터 세트(APS: Adaptation Parameter Set)에서 시그널링된다. 하나의 APS에서, 최대 25 세트의 휘도 필터 계수들 및 클리핑 값 인덱스들 및 최대 1 세트의 색차 필터 계수들 및 클리핑 값 인덱스들이 시그널링될 수 있다. 비트 오버헤드를 줄이기 위해, 상이한 분류의 필터 계수들이 병합될 수 있다. 슬라이스 헤더에서, 현재 슬라이스에 사용되는 APS들의 인덱스들이 시그널링된다.
APS로부터 디코딩된 클리핑 값 인덱스들은 클리핑 값들의 휘도 표 및 클리핑 값들의 색차 표를 이용한 클리핑 값들의 결정을 허용한다. 이들 클리핑 값은 내부 비트뎁스(bitdepth)에 의존한다. 더 정밀하게, 클리핑 값들의 휘도 표와 클리핑 값의 색차 표는 다음의 식에 의해 획득된다.
Figure pct00096
B는 내부 비트뎁스와 동일하고, N은 VTM5.0에서 허용된 클리핑 값들의 수인 4와 동일하다.
필터링 과정은 CTB 레벨에서 제어될 수 있다. 플래그는 항상 ALF가 휘도 CTB에 적용되는지 여부를 나타내기 위해 시그널링된다. 휘도 CTB는 16개의 고정 필터 세트들 및 APS로부터의 필터 세트들 중에서 필터 세트를 선택할 수 있다. 필터 세트 인덱스는 휘도 CTB에 대하여 시그널링되어 어떤 필터 세트가 적용되는지를 나타낸다. 상기 16개의 고정 필터 세트들이 인코더 및 디코더 양쪽에서 미리 정의되고 하드 코딩(hard-coded)된다.
필터 계수는 128과 동일한 기준(norm)으로 양자화된다. 승산 복잡성을 제한하기 위하여, 비트스트림 적합성이 적용되어, 비중심(non-central) 위치의 계수 값이 -27 내지 27 -1의 범위에 있어야 한다. 중심 위치 계수는 비트스트림에서 시그널링되지 않고 128과 동일한 것으로 간주된다.
2.9.5 필터링 과정
디코더 측에서, ALF이 CTB에 대하여 활성화되면, CU 내의 각 샘플
Figure pct00097
이 필터링되어, 이하에 도시된 샘플 값
Figure pct00098
이 산출된다.
Figure pct00099
(2-9-14)
여기서
Figure pct00100
는 디코딩된 필터 계수들을 나타내고,
Figure pct00101
는 클리핑 함수이고,
Figure pct00102
는 디코딩된 클리핑 파라미터를 나타낸다. 변수들 k 및 l은
Figure pct00103
사이에서 변화한다. 여기서 L은 필터 길이를 나타낸다. 클리핑 함수
Figure pct00104
는 함수
Figure pct00105
에 대응한다.
2.9.6 라인 버퍼 감소를 위한 가상 경계 필터링 과정
VTM5에서, ALF의 라인 버퍼 요구사항을 줄이기 위해, 수평 CTU 경계들 근처의 샘플들에 수정된 블록 분류 및 필터링이 채용된다. 이 목적으로, 가상 경계는, 도 16에 도시된 바와 같이 "N"개의 샘플들을 갖는 수평 CTU 경계를 시프트함으로써 라인으로서 정의되고, 여기서, N은 휘도 성분에 대하여 4와 동일하고 색차 성분에 대하여 2와 동일하다.
도 2-11에 도시된 바와 같이 휘도 성분에 수정된 블록 분류가 적용된다. 가상 경계 위의 4x4 블록의 1D 라플라시안 그래디언트 계산을 위해, 가상 경계 위의 샘플들만이 사용된다. 마찬가지로, 가상 경계 아래의 4x4 블록의 1D 라플라시안 그래디언트 계산을 위해, 가상 경계 아래의 샘플들만이 사용된다. 액티비티 값(A)의 양자화는 1D 라플라시안 그래디언트 계산에 사용되는 감소된 수의 샘플들을 고려하여 그에 따라 스케일링된다.
필터링 처리를 위해, 가상 경계들에서의 대칭 패딩(padding) 동작은 휘도 및 색차 성분들 모두에 사용된다. 도 17에 도시된 바와 같이, 필터링되는 샘플이 가상 경계 아래에 위치하면, 가상 경계 위에 위치하는 인접 샘플들이 패딩된다. 한편, 다른 쪽의 해당 샘플들이 또한 대칭적으로 패딩된다.
2.10 샘플 적응적 오프셋 (SAO)
샘플 적응적 오프셋(SAO)은 인코더에 의해 각 CTB에 대하여 명시된 오프셋들을 이용함으로써 디블록킹 필터 후의 재구성된 신호에 적용된다. HM 인코더는 먼저 SAO 프로세스가 현재 슬라이스에 적용되는지의 여부를 결정한다. SAO가 슬라이스에 적용되면, 각 CTB는 테이블 2-6에 도시된 바와 같이 5개의 SAO 타입들 중의 하나로 분류된다. SAO의 개념은 픽셀들을 카테고리들로 분류하는 것이고, 각각의 카테고리의 픽셀들에 오프셋을 더함으로써 왜곡을 감소시킨다. SAO 동작은 SAO 타입 1-4에서 픽셀 분류를 위해 에지 특성들을 이용하는 에지 오프셋(EO) 및 SAO 타입 5에서 픽셀 분류를 위한 픽셀 강도를 사용하는 밴드 오프셋(BO)을 포함한다. 각각의 적용가능한 CTB은 sao_merge_left_flag, sao_merge_up_flag, SAO 타입 및 4개의 오프셋들을 포함하는 SAO 파라미터들를 갖는다. sao_merge_left_flag가 1과 동일하면, 현재 CTB는 SAO 타입 및 왼쪽으로의 CTB의 오프셋을 재사용할 것이다. sao_merge_up_flag가 1과 동일하면, 현재 CTB는 SAO 타입 및 CTB의 상단으로의 오프셋을 재사용할 것이다.
SAO 타입 사용될 샘플 적응적 오프셋 타입 카테고리의 수
0 없음 0
1 1-D 0-도 패턴 에지 오프셋 4
2 1-D 90-도 패턴 에지 오프셋 4
3 1-D 135-도 패턴 에지 오프셋 4
4 1-D 45-도 패턴 에지 오프셋 4
5 밴드 오프셋 4
테이블 2-6 - SAO 타입의 사양
2.10.1.각 SAO 타입의 동작
에지 오프셋은 도 18에 도시된 바와 같이 에지 방향 정보를 고려하여 현재 픽셀(p)의 분류를 위한 4개의 1-D 3-픽셀 패턴들을 사용한다. 왼쪽에서 오른쪽으로, 이것들은 0도, 90도, 135도, 그리고 45도이다.
각각의 CTB는 표 2-7에 따라 5개의 카테고리 중 하나로 분류된다.
카테고리 조건 의미
0 아래의 어느 것도 아님 대체로 단조로운(monotonic)
1 p < 2 이웃들 로컬 미니멈
2 p < 1 이웃 && p == 1 이웃 에지
3 p > 1 이웃 && p == 1 이웃 에지
4 p > 2 이웃들 로컬 맥시멈
테이블 2-7 -EO에 대한 픽셀 분류 규칙
밴드 오프셋(BO)은 픽셀 값의 5개의 최상위 비트들을 밴드 인덱스로 사용함으로써 하나의 CTB 영역의 모든 픽셀들을 32개의 균일한 밴드들로 분류한다. 즉, 픽셀 강도 범위는 0에서 최대 강도 값(예를 들어, 8비트 픽셀들의 경우 255)까지 32개의 동일한 세그먼트들로 분리된다. 4개의 인접 밴드들이 함께 그룹화되고, 각각의 그룹은 도 19에 도시된 바와 같이 그 가장 왼쪽 위치로 표시된다. 인코더는 각각의 밴드의 오프셋을 보상함으로써 최대 왜곡 감소를 갖는 그룹을 얻는 모든 위치를 탐색한다.
2.11 인터 인트라 결합 예측 (CIIP: Combined Inter and Intra Prediction)
VTM5에서, CU가 머지 모드로 코딩되는 경우, CU가 적어도 64개의 휘도 샘플들을 포함하면(즉, CU 폭 * CU 높이는 64보다 크거나 같고) 양 CU 폭 및 CU 높이가 128개 미만의 휘도 샘플들이면, 추가적인 플래그는 인터 인트라 결합 예측(CIIP: combined inter/intra prediction) 모드가 현재 CU에 적용되는지를 나타내도록 시그널링된다. 그 이름에서 알 수 있듯이, CIIP 예측은 인터 예측 신호를 인트라 예측 신호와 결합한다. CIIP 모드의 인터 예측 신호
Figure pct00106
는 레귤러 머지 모드에 적용된 동일한 인터 예측 과정을 이용하여 유도되고, 인트라 예측 신호
Figure pct00107
는 플래너 모드를 갖는 레귤러 인트라 예측 과정에 따라 유도된다. 그 후, 인트라 및 인터 예측 신호들은 가중 평균을 이용하여 결합되고, 여기서, 가중치는 다음과 같이 상단 및 좌측 주변 블록들(도 20에 도시됨)의 코딩 모드들에 따라 산출된다.
- 상단 이웃이 이용가능하고 인트라 코딩되면, isIntraTop를 1로 설정하고, 그렇지 않으면, isIntraTop를 0으로 설정한다.
- 좌측 이웃이 이용가능하고 인트라 코딩되면, isIntraLeft를 1로 설정하고, 그렇지 않으면, isIntraLeft를 0으로 설정한다.
- (isIntraLeft + isIntraLeft)가 2와 같으면, wt는 3으로 설정된다.
- 그렇지 않고, (isIntraLeft + isIntraLeft)가 1과 동일하면, wt는 2로 설정된다.
- 그렇지 않으면, wt를 1로 설정한다.
CIIP 예측은 다음과 같이 형성된다.
Figure pct00108
2.12 휘도 매핑 및 색차 스케일링 (LMCS: Luma Mapping with Chroma Scaling)
VTM5에서, LMCS라 불리우는 코딩 툴이 루프 필터들 앞에 새로운 프로세싱 블록으로서 추가된다. LMCS는 2개의 주요 성분들을 갖는다: 1) 적응적 조각별(piecewise) 선형 모델에 기초한 휘도 성분의 인-루프(in-loop) 맵핑 및 2) 색차 성분에 대해, 휘도 종속 색차 잔차 스케일링이 적용된다. 도 21은 디코더 관점에서의 LMCS 아키텍처를 나타낸다. 도 21의 연파랑 음영 블록들은 맵핑된 도메인에서 프로세싱이 적용되는 곳을 나타내고, 이들은 역 양자화, 역변환, 휘도 인트라 예측 및 휘도 잔차와 함께 휘도 예측의 추가를 포함한다. 도 21의 비음영 블록은 원본 (즉, 맵핑되지 않은) 도메인에서 프로세싱이 적용되는 곳을 나타내고, 이들은 디블록킹 등의 루프 필터,들 ALF 및 SAO, 모션 보상 예측, 색차 인트라 예측, 색차 잔차와 함께 색차 예측의 추가 및 참조 픽처로서의 디코딩된 픽처의 저장을 포함한다. 도 21의 연노랑 음영 블록들은 휘도 신호의 순방향 및 역 맵핑 및 휘도 종속 색차 스케일링 과정을 포함하는 새로운 LMCS 기능 블록들이다. VVC에서의 대부분의 다른 툴들처럼, LMCS는 SPS 플래그를 이용하여 시퀀스 레벨에서 활성화/비활성화될 수 있다.
3. 실시예들에 의해 해결되는 문제들의 예
하나의 팔레트 플래그는 통상 팔레트 모드가 현재 CU에 채용되는지를 나타내는데 사용되고, 이는 그것의 엔트로피 코딩에 대해 상이한 제한 및 변동을 가질 수 있다. 그러나, 팔레트 플래그를 더 잘 코딩하는 방법은 이전 비디오 코딩 표준에서 완전히 연구되지 않았다.
팔레트 샘플들은 포스트 루프 필터링 과정에 의해 처리되는 경우 시각적 아티팩트(visual artifact)를 가질 수 있다.
팔레트 스캐닝 순서는 정사각형이 아닌 블록에 대하여 개선될 수 있다.
4. 실시예들의 예
이하의 상세한 발명들은 일반적인 개념들을 설명하기 위한 예들로서 고려되어야 한다. 이 발명들은 좁은 의미로 해석되어서는 안된다. 또한, 이 발명들은 임의의 방식으로 결합될 수 있다.
1. 변환 유닛/예측 유닛/코딩 블록/영역에 대한 팔레트 모드의 사용의 지시는 예측 모드와 별도로 코딩될 수 있다.
a. 일 예에서, 예측 모드는 팔레트의 이용의 지시 전에 코딩될 수 있다.
i. 대안으로, 더욱이, 팔레트의 사용의 지시는 예측 모드에 기초하여 조건적으로 시그널링될 수 있다.
1. 일 예에서, 예측 모드가 인트라 블록 카피 모드(즉, MODE_IBC)이면, 팔레트 모드의 사용의 지시의 시그널링은 스킵된다. 대안으로, 더욱이, 팔레트의 사용의 지시는 현재 예측 모드가 MODE_IBC일 때 거짓으로 추론될 수 있다.
2. 일 예에서, 예측 모드가 인터 모드 (즉, MODE_INTER)이면, 팔레트 모드의 사용의 지시의 시그널링이 스킵될 수 있다. 대안으로, 더욱이, 팔레트 모드의 사용의 지시는 현재 예측 모드가 MODE_INTER일 때 거짓으로 추론될 수 있다.
3. 일 예에서, 예측 모드가 인트라 모드(즉, MODE_INTRA)이면, 팔레트 모드의 사용의 지시의 시그널링은 스킵될 수 있다. 대안으로, 더욱이, 팔레트 모드의 사용의 지시는 현재 예측 모드가 MODE_INTRA일 때 거짓으로 추론될 수 있다.
4. 일 예에서, 예측 모드가 스킵 모드이면 (즉, 스킵 플래그가 1과 동일하면), 팔레트 모드의 사용의 지시의 시그널링은 스킵될 수 있다. 대안으로, 더욱이, 팔레트 모드의 사용의 지시는 스킵 모드가 현재 CU에 채용될 때 거짓으로 추론될 수 있다.
5. 일 예에서, 예측 모드가 인트라 모드(예를 들어, MODE_INTRA)이면, 팔레트 모드의 사용의 지시가 시그널링될 수 있다. 대안으로, 더욱이, 예측 모드가 인터 모드 또는 인트라 블록 카피 모드이면, 팔레트 모드의 사용의 지시의 시그널링은 스킵될 수 있다.
a) 대안으로, 더욱이, 예측 모드가 인트라 모드이고 펄스 코드 변조(PCM: Pulse-code modulation) 모드가 아니면, 팔레트 모드의 사용의 지시가 시그널링될 수 있다.
b) 대안으로, 더욱이, 예측 모드가 인트라 모드이면, PCM 모드의 사용의 지시 전에 팔레트 모드의 사용의 지시가 시그널링될 수 있다. 일 예에서, 팔레트 모드가 적용되면, PCM 모드의 사용의 시그널링은 스킵될 수 있다.
c) 대안으로, 더욱이, 예측 모드가 인터 모드 또는 인트라 블록 카피 모드이면, 팔레트 모드의 사용의 지시의 시그널링은 스킵될 수 있다.
6. 일 예에서, 예측 모드가 인터 모드(예를 들어, MODE_INTER)이면, 팔레트 모드의 사용의 지시가 시그널링될 수 있다.
a) 대안으로, 예측 모드가 인트라 모드이면 팔레트 모드의 사용의 지시의 시그널링은 스킵될 수 있다.
7. 일 예에서, 예측 모드가 인트라 블록 카피 모드이면, 팔레트 모드의 사용의 지시가 시그널링될 수 있다. 대안으로, 더욱이, 예측 모드가 인터 모드 또는 인트라 모드이면, 팔레트 모드의 사용의 지시의 시그널링은 스킵될 수 있다.
ii. 대안으로, 더욱이, 팔레트 모드의 사용의 지시는 픽처/슬라이스/타일 그룹 타입에 기초하여 조건적으로 시그널링될 수 있다.
b. 일 예에서, 예측 모드는 팔레트 모드의 사용의 지시 후에 코딩될 수 있다.
c. 일 예에서, 예측 모드가 INTRA 모드 또는INTER_MODE이면, 팔레트 모드의 사용의 지시가 시그널링될 수 있다.
i. 일 예에서, 팔레트 모드의 사용의 지시는 스킵 플래그, 예측 모드 및 PCM 모드의 플래그 후에 코딩될 수 있다.
ii. 일 예에서, 팔레트 모드의 사용의 지시는 스킵 플래그, 예측 모드 후, PCM 모드의 플래그 전에 코딩될 수 있다.
iii. 일 예에서, 현재 블록이 인트라 모드로 코딩되면, 팔레트 및 IBC 모드들의 지시들이 더 시그널링될 수 있다.
1. 일 예에서, 팔레트 또는 IBC 모드가 시그널링되는지를 나타내기 위해 1비트 플래그가 시그널링될 수 있다.
2. 일 예에서, 비트 플래그의 시그널링은, IBC 또는 팔레트 모드가 하나의 타일/타일 그룹/슬라이스/픽처/시퀀스에 대하여 활성화되든 아니든 블록 크기 등의 어떤 조건 하에서 스킵될 수 있다.
d. 일 예에서, 예측 모드 (인트라 또는 인터 모드이든)가 먼저 코딩된 후에, 팔레트 모드인지 아닌지의 조건적 시그널링이 뒤따를 수 있다.
i. 일 예에서, 예측 모드가 인트라 모드이면, 다른 플래그가 추가로 시그널링되어 팔레트 모드인지를 나타낼 수 있다.
1. 일 예에서, 팔레트 모드가 하나의 비디오 데이터 유닛(예를 들어, 시퀀스/픽처/타일 그룹/타일)에 대하여 활성화되면,'상기 '다른 플래그'가 시그널링될 수 있다.
2. 일 예에서, 블록 크기의 조건 하에서 상기 '다른 플래그'가 시그널링될 수 있다.
3. 대안으로, 더욱이, 팔레트 모드가 아니면, 하나의 플래그가 추가로 시그널링되어 PCM 모드 인지를 지시할 수 있다.
4. 일 예에서, 상기 '다른 플래그'는 주변 블록들의 정보에 따라 문맥 코딩될 수 있다. 대안으로, 상기 '다른 플래그'는 단 하나의 문맥으로 문맥 코딩될 수 있다. 대안으로, 상기 '다른 플래그'는 바이패스 코딩, 즉, 문맥 없이 코딩될 수 있다.
ii. 대안으로, 예측 모드가 인터 모드이면, 다른 플래그가 추가로 시그널링되어 IBC 모드인지를 나타낼 수 있다.
1. 일 예에서, IBC 모드가 하나의 비디오 데이터 유닛(예를 들어, 시퀀스/픽처/타일 그룹/타일)에 대하여 활성화되면 상기 '다른 플래그'가 시그널링될 수 있다.
2. 일 예에서, 블록 크기의 조건 하에서 상기 '다른 플래그'가 시그널링될 수 있다.
2. 예측 모드에 대한 추가적인 후보로서 팔레트 모드를 추가하는 것을 제안한다. 따라서, 팔레트 모드의 사용의 지시를 예측 모드와 별도로 시그널링할 필요가 없다.
a. 일 예에서, 예측 모드는 인트라 슬라이스들/I 픽처들/인트라 타일 그룹들에 대한 인트라, 인트라 블록 카피 및 팔레트 모드들을 포함할 수 있다.
b. 대안으로, 예측 모드들은 인트라 슬라이스들/I 픽처들/인트라 타일 그룹들에 대한 인트라 및 팔레트 모드들을 포함할 수 있다.
c. 일 예에서, 예측 모드들은 4x4 블록들에 대한 인트라, 인트라 블록 카피 및 팔레트 모드들을 포함할 수 있다.
d. 일 예에서, 예측 모드들은 인터 슬라이스들/P 및/또는 B 픽처들/인터 타일그룹들에 대한 인트라, 인터, 인트라 블록 카피 및 팔레트 모드들을 포함할 수 있다.
e. 일 예에서, 예측 모드들은 인터 슬라이스들/P 및/또는 B 픽처들/인터 타일그룹들에 대한 인트라, 인터, 인트라 블록 카피 모드들을 포함할 수 있다.
f. 대안으로, 예측 모드들은 인트라, 인터, 인트라 블록 카피 및 팔레트 모드들 중의 적어도 2개를 포함할 수 있다.
g. 일 예에서, 인터 모드는 4x4 블록들에 대한 예측 모드들에 포함되지 않을 수 있다.
h. 일 예에서, 블록이 (인터 모드에 대한 특별한 경우인) 스킵 모드로서 코딩되지 않으면, 예측 모드 인덱스는 코딩될 수 있다.
i. 일 예에서, 4개의 모드들의 이진화는 인트라(1), 인터(00), IBC (010) 및 팔레트(011)로서 정의된다.
ii. 일 예에서, 4개의 모드들의 이진화는, 도 10에 도시된 바와 같이, 인트라(10), 인터(00), IBC (01) 및 팔레트(11)로서 정의된다.
iii. 일 예에서, 현재 슬라이스가 인트라 슬라이스이고 IBC가 SPS에서 활성화되지 않으면, 팔레트 및 인트라 모드들의 이진화는 팔레트(1) 및 인트라(0)로서 정의된다.
iv. 일 예에서, 현재 슬라이스가 인트라 슬라이스가 아니고 IBC가 SPS에서 활성화되지 않으면, 팔레트, 인터 및 인트라 모드들의 이진화는 인트라(1), 인터(00) 및 팔레트(01)로서 정의된다.
v. 일 예에서, 현재 슬라이스가 인트라 슬라이스이고 IBC가 SPS에서 활성화되면, 팔레트 및 인트라 모드들의 이진화는 IBC (1), 팔레트(01) 및 인트라(00)로서 정의된다.
vi. 일 예에서, 4개의 모드들의 이진화는 인터(1), 인트라(01), IBC (001) 및 팔레트(000)로서 정의된다.
vii. 일 예에서, 4개의 모드들의 이진화는 인터(1), 인트라(01), IBC (001) 및 팔레트(000)로서 정의된다.
viii. 일 예에서, 4개의 모드들의 이진화는, 도 11에 도시된 바와 같이, 인터(0), 인트라(10), IBC (111) 및 팔레트(110)로서 정의된다.
3. 팔레트/IBC 모드의 사용의 지시의 시그널링이 다른 모드의 정보에 의존할 수 있다.
a. 일 예에서, 현재 예측 모드가 인트라 모드이고 IBC 모드가 아니면, 팔레트 모드의 사용의 지시가 시그널링될 수 있다.
b. 일 예에서, 현재 예측 모드가 인트라 모드이고 팔레트 모드가 아니면, IBC 모드의 사용의 지시가 시그널링될 수 있다.
4. 모드 정보를 시그널링하는 방법은 슬라이스/픽처 타일 그룹 타입에 의존할 수 있다.
a. 일 예에서, I-슬라이스/인트라 타일 그룹인 경우, IBC 모드인지를 나타내기 위해 하나의 플래그가 시그널링될 수 있다. IBC 모드가 아니면, 팔레트 또는 인트라 모드인지를 나타내기 위해 다른 플래그가 더 시그널링될 수 있다.
b. 일 예에서, I-슬라이스/인트라 타일 그룹인 경우, 인트라 모드인지를 나타내기 위해 하나의 플래그가 시그널링될 수 있다. 인트라 모드가 아니면, 팔레트 또는 IBC 모드인지를 나타내기 위해 다른 플래그가 더 시그널링될 수 있다.
5. 팔레트 모드의 사용의 지시가 다음의 조건에 기초하여 시그널링 및/또는 유도될 수 있다.
a. 현재 블록의 블록 크기(dimension)
i. 일 예에서, 64*64 등의 임계값보다 작거나 같은 폭 * 높이를 갖는 블록들에 대해서만 팔레트 모드의 사용의 지시가 시그널링될 수 있다.
ii. 일 예에서, 64 등의 임계값보다 크거나 같은 폭 * 높이를 갖는 블록들에 대해서만 팔레트 모드의 사용의 지시가 시그널링될 수 있다.
iii. 일 예에서, 아래의 모든 조건이 참인 블록들에 대해서만 팔레트 모드의 사용의 지시가 시그널링될 수 있다.
1. 폭 및/또는 높이가 16 등의 임계값보다 크거나 같다.
2. 폭 및/또는 높이가 32 또는 64 등의 임계값보다 작거나 같다.
iv. 일 예에서, 폭이 높이와 같은 블록들(즉, 정사각형 블록들)에 대해서만 팔레트 모드의 사용의 지시가 시그널링될 수 있다.
b. 현재 블록의 예측 모드
c. 현재 블록의 현재 양자화 파라미터
d. 주변 블록들의 팔레트 플래그
e. 주변 블록들의 인트라 블록 카피 플래그들
f. (4:2:0, 4:4:4 등의) 칼라 포맷의 지시
g. 개별/듀얼 코딩 트리 구조
h. 슬라이스/타일 그룹 타입 및/또는 픽처 타입
6. IBC 모드의 사용의 지시가 다음의 조건들에 기초하여 시그널링 및/또는 유도될 수 있다.
a. 현재 블록의 블록 크기
i. 일 예에서, 폭 또는 높이가 128보다 작은 블록들에 대해서만 IBC 모드의 사용의 지시가 시그널링될 수 있다.
b. 현재 블록의 예측 모드
c. 현재 블록의 현재 양자화 파라미터
d. 주변 블록들의 팔레트 플래그
e. 주변 블록들의 인트라 블록 카피 플래그들
f. (4:2:0, 4:4:4 등의) 칼라 포맷의 지시
g. 개별/듀얼 코딩 트리 구조
h. 슬라이스/타일 그룹 타입 및/또는 픽처 타입
7. 디블록킹 결정 과정에서 팔레트 모드가 인트라 모드(예를 들어, MODE_INTRA)로서 처리될 수 있다.
a. 일 예에서, p 측 또는 q 측의 샘플들이 팔레트 모드로 코딩되면, 경계 강도는 2로 설정된다.
b. 일 예에서, p 측 및 q 측의 샘플들이 팔레트 모드로 코딩되면, 팔레트 강도는 2로 설정된다.
c. 대안으로, 디블록킹 결정 과정에서 팔레트 모드가 인터 모드(예를 들어, MODE_INTER)로서 처리될 수 있다.
8. 디블록킹 결정 과정에서 팔레트 모드가 개별 모드(예를 들어, MODE_PLT)로서 처리될 수 있다.
a. 일 예에서, p 측 및 q 측의 샘플들이 팔레트 모드로 코딩되면, 경계 강도는 0으로 설정된다.
i. 대안으로, 한쪽의 샘플들이 팔레트 모드로 코딩되면, 경계 강도는 0으로 설정된다.
b. 일 예에서, p 측의 샘플들이 IBC 모드로 코딩되고 q 측의 샘플들이 팔레트 모드로 코딩되면, 경계 강도는 1으로 설정되고, 그 역도 같다.
c. 일 예에서, p 측의 샘플들이 인트라 모드로 코딩되고 q 측의 샘플들이 팔레트 모드로 코딩되면, 경계 강도는 2으로 설정되고, 그 역도 같다.
9. 디블록킹 결정 과정에서 팔레트 모드가 변환 스킵 블록으로서 처리될 수 있다.
a. 대안으로, 디블록킹 결정 과정에서 팔레트 모드가 BDPCM 블록으로서 처리될 수 있다.
10. 블록에 대한 팔레트 모드의 사용의 지시가 슬라이스/타일 그룹/픽처 레벨 플래그에 기초하여 시그널링 및/또는 유도될 수 있다.
a. 일 예에서, 플래그는 분수 모션 벡터 차(MVD)가 모션 벡터 차와의 병합 (MMVD: merge with motion vector difference, UMVE로도 알려짐) 및/또는 적응적 모션 벡터 해상도 (AMVR: adaptive motion vector resolution) (예를 들어, slice_fracmmvd_flag)에서 허용되는지를 나타낸다. 대안으로, 더욱이, slice_fracmmvd_flag가 분수 MVD가 활성화되는 것을 나타내면, 팔레트 모드의 사용의 지시의 시그널링은 스킵되고 팔레트 모드는 비활성화되는 것으로 추론된다.
b. 일 예에서, 플래그는 팔레트 모드가 슬라이스/타일 그룹/픽처에 대하여 활성화되는지를 나타낸다. 대안으로, 더욱이, 이러한 플래그가 팔레트 모드가 비활성화되는 것을 나타내면, 블록에 대한 팔레트 모드의 사용의 시그널링은 스킵되고 팔레트 모드가 비활성화되는 것으로 추론된다.
11. 슬라이스/타일 그룹/픽처 레벨 플래그에 기초하여 블록에 대한 IBC의 사용의 지시가 시그널링 및/또는 유도될 수 있다.
a. 일 예에서, 플래그는 분수 모션 벡터 차(MVD)가 MMVD(UMVE로도 알려짐) 및/또는 AMVR (예를 들어, slice_fracmmvd_flag)에서 허용되는지를 나타낸다. 대안으로, 더욱이, slice_fracmmvd_flag가 분수 MVD가 활성화되는 것을 나타내면, IBC 모드의 사용의 지시의 시그널링은 스킵되고 IBC 모드는 비활성화되는 것으로 추론된다.
b. 일 예에서, 플래그는 슬라이스/타일 그룹/픽처에 대하여 IBC 모드가 활성화되는지를 나타낸다. 대안으로, 더욱이, 이러한 플래그가 IBC 모드가 비활성화되는 것을 지시하면, 블록에 대한 IBC 모드의 사용의 시그널링이 스킵되고, IBC 모드가 비활성화되는 것으로 추론된다.
12. 하나의 팔레트 엔트리와 연관된 샘플은 내부 비트 뎁스 및/또는 원본/재구성 샘플들의 비트 뎁스와는 다른 비트 뎁스들을 가질 수 있다.
a. 일 예에서, 하나와 연관된 샘플은 N과 동일한 비트 뎁스를 가질 수 있고, 다음이 적용될 수 있다.
i. 일 예에서, N은 정수(예를 들어, 8)일 수 있다.
ii. 일 예에서, N은 내부 비트 뎁스 및/또는 원본 및 재구성 샘플의 비트 뎁스보다 클 수 있다.
iii. 일 예에서, N 은 내부 비트 뎁스 및/또는 원본 및 재구성 샘플들의 비트 뎁스보다 작을 수 있다.
iv. 일 예에서, N은 다음에 의존할 수 있다:
1. 현재 블록의 블록 크기
2. 현재 블록의 현재 양자화 파라미터
3. (4:2:0, 4:4:4 등의) 칼라 포맷의 지시
4. 개별/듀얼 코딩 트리 구조
5. 슬라이스/타일 그룹 타입 및/또는 픽처 타입
6. 팔레트 엔트리들의 수
7. 예측 팔레트 엔트리들의 수
8. 칼라 성분의 인덱스
b. 일 예에서, 다수의 팔레트 엔트리들과 연관된 샘플은 상이한 비트 뎁스들을 가질 수 있다.
i. 일 예에서, C0, C1는 현재 팔레트의 2개의 팔레트 엔트리들이라 하고, 이것들은 각각 b0 및 b1과 동일한 비트 뎁스를 갖고, b0는 b1과 동일하지 않다.
1. 일 예에서, b0는 내부 비트 뎁스 및/또는 원본/재구성 샘플들의 비트 뎁스보다 클/작을 수 있고 및/또는 b1는 내부 비트 뎁스 및/또는 원본/재구성 샘플들의 비트 뎁스보다 클/작을 수 있다.
c. 일 예에서, 팔레트 모드에서, 샘플들은 팔레트 엔트리들과 연관된 샘플들의 시프트된 값들에 따라 재구성될 수 있다.
i. 일 예에서, 샘플들은, 팔레트 엔트리들의 샘플들을 M 비트 만큼 좌측으로 시프트함으로써 재구성될 수 있다.
ii. 일 예에서, 재구성된 값은 (C<<M) + (1<<(M-1))일 수 있고, 여기서, C는 팔레트 엔트리이다.
iii. 일 예에서, 샘플들은, 팔레트 엔트리들의 샘플들을 M 비트 만큼 우측으로 시프트함으로써 재구성될 수 있다.
iv. 일 예에서, 재구성된 값은 clip((C+(1<<(M-1)))>>M, 0, (1<<N)-1)일 수 있고, 여기서, C는 팔레트 엔트리이고 N은 재구성의 비트 뎁스이다.
v. 대안으로, 더욱이, 일 예에서, M은 팔레트 엔트리들과 연관된 샘플들 간의 비트 뎁스 차 및 재구성 샘플들/원본 샘플들의 내부 비트 뎁스에 의존할 수 있다.
1. 일 예에서, M은 내부 비트 뎁스 - 팔레트 엔트리의 샘플들의 비트 뎁스와 동일할 수 있다.
2. 일 예에서, M은 팔레트 엔트리들의 샘플들의 비트 뎁스 - 내부 비트 뎁스와 동일할 수 있다.
3. 일 예에서, M은 원본 샘플들의 비트 뎁스 - 팔레트 엔트리들의 샘플들의 비트 뎁스와 동일할 수 있다.
4. 일 예에서, M은 팔레트 엔트리들의 샘플들의 비트 뎁스 - 원본 샘플들의 비트 뎁스와 동일할 수 있다.
5. 일 예에서, M은 재구성 샘플들의 비트 뎁스 - 팔레트 엔트리들의 샘플들의 비트 뎁스와 동일할 수 있다.
6. 일 예에서, M은 팔레트 엔트리들의 샘플들의 비트 뎁스 - 재구성 샘플들의 비트 뎁스와 동일하다.
vi. 일 예에서, M은 정수(예를 들어, 2)일 수 있다.
vii. 대안으로, 더욱이, 일 예에서, M은 다음에 의존할 수 있다:
1. 현재 블록의 블록 크기
2. 현재 블록의 현재 양자화 파라미터
3. (4:2:0, 4:4:4 등의) 칼라 포맷의 지시
4. 개별/듀얼 코딩 트리 구조
5. 슬라이스/타일 그룹 타입 및/또는 픽처 타입
6. 팔레트 엔트리들의 수
7. 예측 팔레트 엔트리들의 수
8. 블록/픽처/슬라이스/타일 내의 샘플 위치
9. 칼라 성분의 인덱스
viii. 일 예에서, 팔레트 엔트리들의 샘플들에 기초한 룩업 동작은 샘플의 재구성 동안 사용될 수 있다.
1. 일 예에서, 룩업 테이블의 값들이 SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU들의 그룹에서 시그널링될 수 있다.
2. 일 예에서, 룩업 테이블의 값들은 SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU의 그룹에서 추론될 수 있다.
13. 팔레트 코딩 블록들에 대한 시그널링/유도된 양자화 파라미터(QP)는 클리핑되는 것과 같은 이스케이프 픽셀/샘플들을 유도하는데 사용되기 전에 먼저 수정될 수 있다.
a. 일 예에서, 팔레트 코딩된 블록들에 대한 적용된 QP 범위는 변환 스킵 모드 및/또는 BDPCM 모드와 동일한 방식으로 처리될 수 있다.
b. 일 예에서, 팔레트 코딩된 블록들에 대한 적용된 QP는 max(Qp, 4 + T)로 변경될 수 있고, 여기서, T는 정수이고, Qp 는 블록에 대한 시그널링 또는 유도된 양자화 파라미터이다.
i. 일 예에서, T는 미리 정의된 임계값일 수 있다.
ii. 일 예에서, T는 (4 + min_qp_prime_ts_ minus4)와 동일할 수 있고, 여기서, min_qp_prime_ts_ minus4가 시그널링될 수 있다.
14. 이스케이프 샘플들/심볼들을 코딩하는 방법은 트랜스퀀트(transquant) 바이패스가 활성화되는지 아닌지에 관계없이 통합될 수 있다.
a. 일 예에서, 이스케이프 샘플이 고정 길이로 시그널링될 수 있다.
b. 일 예에서, 이스케이프 샘플은 N개의 비트들을 이용하여 고정 길이로 시그널링될 수 있다.
i. 일 예에서, N은 정수(예를 들어, 8 또는 10)이고 다음에 의존할 수 있다.
1. SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU들의 그룹에서 시그널링된 메시지
2. 내부 비트 뎁스
3. 입력 비트 뎁스
4. 현재 블록의 블록 크기
5. 현재 블록의 현재 양자화 파라미터
6. (4:2:0, 4:4:4 등의) 칼라 포맷의 지시
7. 개별/듀얼 코딩 트리 구조
8. 슬라이스/타일 그룹 타입 및/또는 픽처 타입
c. 일 예에서, 이스케이프 픽셀/샘플을 시그널링하는 코드 길이는 내부 비트 뎁스에 의존할 수 있다.
i. 대안으로, 이스케이프 픽셀/샘플을 시그널링하는 코드 길이는 입력 비트 뎁스에 의존할 수 있다.
d. 일 예에서, 이스케이프 픽셀/샘플을 시그널링하는 코드 길이는 양자화 파라미터에 의존할 수 있다.
i. 일 예에서, 이스케이프 픽셀/샘플을 시그널링하는 코드 길이는 f(Qp)일 수 있다.
1. 일 예에서, 함수(f)는 (내부 비트 뎁스 - (Qp - 4)/6)로 정의될 수 있다.
15. 팔레트 코딩된 블록 및 팔레트 코딩되지 않은 블록에 대한 양자화 및/또는 역 양자화 과정은 상이한 방식들로 정의될 수 있다.
a. 일 예에서, 우측 비트 시프팅은 변환 계수들 또는 잔차들에 대한 양자화 과정을 이용하는 대신 이스케이프 샘플을 양자화하는데 사용될 수 있다.
b. 일 예에서, 좌측 비트 시프팅은 변환 계수들 또는 잔차들에 대한 역양자화 과정을 이용하는 대신 이스케이프 샘플을 역양자화하는데 사용될 수 있다.
c. 인코더 측에서, 다음을 적용할 수 있다.
i. 일 예에서, 이스케이프 픽셀/샘플 값이 f(p, Qp)로서 시그널링될 수 있다. 여기서, p는 픽셀/샘플 값이다.
ii. 일 예에서, 함수(f)는 p>>((Qp-4)/6)로 정의될 수 있고, 여기서, p는 픽셀/샘플 값이고, Qp 는 양자화 파라미터이다.
iii. 일 예에서, 이스케이프 픽셀/샘플 값이 p>>N 로서 시그널링될 수 있다. 여기서, p는 픽셀/샘플 값이다.
1. 일 예에서, N는 정수(예를 들어, 2)일 수 있고 다음에 의존할 수 있다.
a) SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU 행/LCU들의 그룹에서 시그널링된 메시지
b) 내부 비트 뎁스
c) 입력 비트 뎁스
d) 현재 블록의 블록 크기
e) 현재 블록의 현재 양자화 파라미터
f) (4:2:0, 4:4:4 등의) 칼라 포맷의 지시
g) 개별/듀얼 코딩 트리 구조
h) 슬라이스/타일 그룹 타입 및/또는 픽처 타입
d. 디코더측에서, 다음을 적용할 수 있다.
i. 일 예에서, 이스케이프 픽셀/샘플 값이 f(bd,p,Qp)로서 시그널링될 수 있다.
1. 일 예에서, 함수(f)는 clip(0, (1<<(bd-(Qp-4)/6))-1, (p + (1<<(bd-1)))>>((Qp-4)/6))로서 정의될 수 있다.
ii. 일 예에서, 이스케이프 픽셀/샘플 값이 f(p,Qp)로서 재구성될 수 있다. 여기서, p는 디코딩된 이스케이프 픽셀/샘플 값이다.
1. 일 예에서, f는 p<<((Qp-4)/6)로서 정의될 수 있다.
iii. 일 예에서, 이스케이프 픽셀/샘플 값이 f(bd,p,Qp)로서 재구성될 수 있다. 여기서, p는 디코딩된 이스케이프 픽셀/샘플 값이다.
1. 일 예에서, 함수(clip)는 clip(0, (1<<bd)-1, p<<((Qp-4)/6))로서 정의될 수 있다.
iv. 상기 예에서, 클립 함수(clip(a,i,b))는 (i < a ? a : (i > b ? b : i))로서 정의될 수 있다.
v. 상기 예에서, 클립 함수(clip(a,i,b))는 (i <= a ? a : (i >= b ? b : i))로서 정의될 수 있다.
vi. 상기 예에서, p는 픽셀/샘플 값일 수 있고, bd는 내부 비트 뎁스 또는 입력 비트 뎁스일 수 있고, Qp는 양자화 파라미터이다.
16. 가장 가능성 있는 모드(MPM)의 리스트 구성 과정 동안 팔레트 코딩된 블록은 인트라 블록(예를 들어, MODE_INTRA)로서 처리될 수 있다.
a. 일 예에서, MPM 리스트의 구성 동안 주변(인접 또는 비인접) 블록들의 인트라 모드들을 가져오는(fetch) 경우, 주변 블록(예를 들어, 좌측 및/또는 상단)이 팔레트 모드로 코딩되면, 디폴트 모드로 종래의 인트라 코딩된 블록(예를 들어, MODE_INTRA)로 처리될 수 있다.
i. 일 예에서, 디폴트 모드는 DC/PLANAR/VER/HOR 모드일 수 있다.
ii. 일 예에서, 디폴트 모드는 임의의 하나의 인트라 예측 모드일 수 있다.
iii. 일 예에서, 디폴드 모드가 종속 파라미터 세트(DPS: dependency parameter set)/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/최대 코딩 유닛(LCU: largest coding unit)/코딩 유닛(CU: coding unit)/LCU 행/ LCU들의 그룹/TU/PU 블록/비디오 코딩 유닛으로 시그널링될 수 있다.
17. 팔레트 코딩된 블록은 가장 가능성 있는 모드들(MPM)의 리스트 구성 과정 동안 비-인트라 블록으로서 처리될 수 있다(예를 들어, MODE_PLT와 동일한 예측 모드를 갖는 블록으로서 처리된다).
a. 일 예에서, MPM 리스트의 구성 동안 주변 블록들의 인트라 모드들을 가져오는 경우, 인접 블록(예를 들어, 좌측 및/또는 상단)이 팔레트 모드로 코딩되면, 인터 모드로 코딩된 것들과 동일 또는 유사한 방식으로 처리될 수 있다.
b. 일 예에서, MPM 리스트의 구성 동안 주변 블록들의 인트라 모드들을 가져오는 경우, 주변 블록(예를 들어, 좌측 및/또는 상단)이 팔레트 모드로 코딩되면, IBC 모드로 코딩된 것들과 동일 또는 유사한 방식으로 처리될 수 있다.
18. DM 모드로 코딩된 색차 블록에 대응하는 팔레트 모드로 코딩된 휘도 블록은 디폴트 인트라 예측 모드를 갖는 것으로 해석될 수 있다.
a. 일 예에서, 색차 블록이 DM 모드로 코딩되면, 팔레트 모드로 코딩된 해당 휘도 블록은 인트라 블록(예를 들어, MODE_INTRA) 또는 팔레트 블록(예를 들어, MODE_PLT)로 처리될 수 있다.
b. 일 예에서, 디폴트 예측 모드는 DC/PLANAR/VER/HOR 모드일 수 있다.
c. 일 예에서, 디폴트 예측 모드는 임의의 하나의 인트라 예측 모드일 수 있다.
d. 일 예에서, 디폴트 예측 모드가 DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU/CU/LCU 행/ LCU들의 그룹/TU/PU 블록/비디오 코딩 유닛으로 시그널링될 수 있다.
19. 팔레트 코딩된 블록은 히스토리 기반 모션 벡터 예측(HMVP: history-based motion vector prediction), 머지(MERGE) 및 향상된 모션 벡터 예측(AMVP: advanced motion vector prediction) 모드의 리스트 구성 동안 이용불가능한 블록으로서 처리될 수 있다.
a. 일 예에서, 이용불가능한 블록은 임의의 모션 정보를 갖지 않는 블록을 나타내거나 그것의 모션 정보가 다른 블록들에 대한 예측으로서 사용될 수 없다.
b. 일 예에서, 팔레트 모드로 코딩된 블록은 HMVP, MERGE 및/또는 AMVP 모드들로 리스트 구성 과정에서 인트라 블록(예를 들어, MODE_INTRA) 또는 팔레트 블록(예를 들어, MODE_PLT)으로서 처리될 수 있다.
i. 대안으로, 일 예에서, HMVP, MERGE 및/또는 AMVP 리스트의 구성 동안 주변 블록들의 모션 정보를 가져오는 경우, 팔레트 모드로 코딩된 인접 블록은 무효 참조 인덱스를 갖는 블록으로 처리될 수 있다.
ii. 대안으로, 일 예에서, HMVP, MERGE 및/또는 AMVP 리스트의 구성 동안 주변 블록들의 모션 정보를 가져오는 경우, 팔레트 모드로 코딩된 주변 블록은 0과 동일한 참조 인덱스를 갖는 인터 블록으로 처리될 수 있다.
iii. 대안으로, 일 예에서, HMVP, MERGE 및/또는 AMVP 리스트의 구성 동안 주변 블록들의 모션 정보를 가져오는 경우, 팔레트 모드로 코딩된 주변 블록은 제로-모션 벡터를 가진 인터 블록으로 처리될 수 있다.
20. 팔레트 모드로 코딩된 블록을 처리하는 방법(예를 들어, 상술한 방법들을 적용하는지 여부 및/또는 적용하는 방법)은 다음에 기초할 수 있다.
a. 비디오 컨텐츠 (예를 들어, 스크린 컨텐츠 또는 자연 컨텐츠)
b. DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU/CU/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. 표준의 프로파일/레벨/단(tier)
21. 팔레트 코딩된 블록들에 대해 문맥 코딩된 빈들은 일정 범위 내로 제한될 수 있다.
a. 일 예에서, 얼마나 많은 빈들이 문맥 코딩되었는지를 기록하기 위하여 카운터가 블록에 할당된다. 상기 카운터가 임계값을 초과하면, 문맥 코딩을 이용하는 대신 바이패스 코딩이 적용된다.
1. 대안으로, 각 칼라 성분에 대하여 얼마나 많은 빈들이 문맥 코딩되었는지를 기록하기 위하여 NumColorComp 카운터가 할당될 수 있다. NumColorComp는 하나의 블록에서 코딩될 칼라 성분들의 수이다(예를 들어, YUV 포맷의 하나의 CU의 경우, NumColorComp가 3으로 설정된다).
ii. 대안으로, 카운터는 0으로 초기화될 수 있고, 하나의 빈을 문맥으로 코딩한 후, 카운터는 1씩 증가한다.
b. 대안으로, 카운터는 0보다 큰 어떤 값(예를 들어, W*H*K)으로 초기화될 수 있고, 하나의 빈을 문맥으로 코딩한 후, 카운터는 1씩 감소한다. 카운터가 T보다 작거나 같으면, 문맥 코딩을 사용하는 대신 바이패스 코딩이 적용된다.
i. 일 예에서, T는 0 또는 1로 설정된다.
ii. 일 예에서, T는 디코딩된 정보 또는 코딩 패스들(passes)의 수 등에 따라 설정된다.
c. 일 예에서, 팔레트 코딩된 블록은 문맥 코딩된 빈들에 있어서 TS 코딩된 블록들 또는 비-TS 코딩된 블록들과 비교하여 동일 또는 다른 임계값을 가질 수 있다.
i. 일 예에서, 팔레트 코딩된 블록에 대한 문맥 코딩된 빈들의 수는 (W*H*T)로 설정될 수 있고, 여기서, W 및 H는 각각 하나의 블록의 폭 및 높이이고, T는 정수이다. 일 예에서, T는 1.75 또는 2 등의 TS 코딩된 블록에 사용된 것과 동일하게 설정된다.
ii. 일 예에서, 팔레트 코딩된 블록에 대한 문맥 코딩된 빈들의 수는 (W*H*NumColorComp*T)로 설정될 수 있고, 여기서, W 및 H는 각각 하나의 블록의 폭 및 높이이고, NumColorComp는 하나의 블록에서 코딩될 칼라 성분들의 수(예를 들어, YUV 포맷의 하나의 CU의 경우, NumColorComp가 3으로 설정된다)이고, T는 정수이다. 일 예에서, T는 1.75 또는 2 등의 TS 코딩된 블록에 사용된 것과 동일하게 설정된다.
d. 일 예에서, 팔레트 코딩된 블록의 임계값은 문맥 코딩된 빈들에 있어서 TS 코딩된 블록들 또는 비-TS 코딩된 블록들보다 작을 수 있다.
e. 일 예에서, 팔레트 코딩된 블록들의 임계값은 문맥 코딩된 빈들에 있어서 TS 코딩된 블록들 또는 비-TS 코딩된 블록들보다 클 수 있다.
22. 팔레트 코딩된 블록은 CIIP 모드에서 주변 인트라 블록들을 카운팅하는 과정 동안 비-인트라 블록으로 처리될 수 있다(예를 들어, MODE_PLT와 동일한 예측 모드를 갖는 블록으로서 처리될 수 있다).
a. 일 예에서, CIIP 모드에서 주변 인트라 블록들을 카운팅하는 과정 동안 인접 블록들의 인트라 모드들을 가져오는 경우, 주변 블록(예를 들어, 좌측 및/또는 상단)이 팔레트 모드로 코딩되면, 인터 모드로 코딩된 것들과 동일하거나 유사한 방식으로 처리될 수 있다.
b. 일 예에서, CIIP 모드에서 주변 인트라 블록들을 카운팅하는 동안 인접 블록들의 인트라 모드들을 가져오는 경우, 인접 블록(예를 들어, 좌측 및/또는 상단)이 팔레트 모드로 코딩되면, IBC 모드로 코딩된 것들과 동일하거나 유사한 방식으로 처리될 수 있다.
c. 대안으로, 팔레트 코딩된 블록은 CIIP 모드에서 주변 인트라 블록들을 카운팅하는 과정 동안 인트라 블록으로 처리될 수 있다.
23. 팔레트 코딩된 샘플들에 대한 사전 및/또는 사후 필터링 과정을 스킵할 것을 제안한다.
a. 일 예에서, 팔레트 코딩된 샘플들은 디블록킹되지 않을 수 있다.
b. 일 예에서, 팔레트 코딩된 샘플들은 SAO 과정에서 오프셋이 보상되지 않을 수 있다.
c. 일 예에서, 팔레트 코딩된 샘플들은 ALF 과정에서 필터링되지 않을 수 있다.
i. 일 예에서, ALF 과정의 분류는 팔레트 코딩된 샘플들을 스킵할 수 있다.
d. 일 예에서, LMCS는 팔레트 코딩된 샘플들에 대하여 비활성화될 수 있다.
24. 팔레트 모드에서 더 많은 스캐닝 순서들을 추가할 것을 제안한다.
a. 일 예에서, 다음과 같이 정의된 역 수평 횡단 스캐닝 순서가 사용될 수 있다.
i. 일 예에서, 홀수 행들에 대한 스캐닝 방향은 좌측으로부터 우측일 수 있다.
ii. 일 예에서, 짝수 행들에 대한 스캐닝 방향은 우측으로부터 좌측일 수 있다.
iii. 일 예에서, 4x4 블록에 대한 스캐닝 순서는 도 22에 도시된 바와 같을 수 있다.
b. 일 예에서, 다음과 같이 정의된 역 수직 횡단 스캐닝 순서가 사용될 수 있다.
i. 일 예에서, 홀수 행들에 대한 스캐닝 방향은 상단으로부터 하단일 수 있다.
ii. 일 예에서, 짝수 행들에 대한 스캐닝 방향은 하단으로부터 상단일 수 있다.
iii. 일 예에서, 4x4 블록에 대한 스캐닝 순서는 도 23에 도시된 바와 같을 수 있다.
25. 허용된 스캐닝 순서들의 조합은 블록 형상에 의존할 수 있다.
a. 일 예에서, 블록의 폭 과 높이 간의 비가 임계값보다 크면, 수평 횡단 및 역 수평 횡단 스캐닝 순서들만이 적용될 수 있다.
i. 일 예에서, 임계값은 1과 동일하다.
ii. 일 예에서, 임계값은 4와 동일하다.
b. 일 예에서, 블록의 폭 과 높이 간의 비가 임계값보다 크면, 수직 횡단 및 역 수직 횡단 스캐닝 순서들만이 적용될 수 있다.
i. 일 예에서, 임계값은 1과 동일하다.
ii. 일 예에서, 임계값은 4와 동일하다.
26. QR-BDPCM 과정에서 하나의 인트라 예측 방향 및/또는 하나의 스캐닝 방향만을 허용하는 것을 제안된다.
a. 일 예에서, 폭이 높이보다 큰 블록에 대하여 수직 방향만이 허용된다.
b. 일 예에서, 폭이 높이보다 작은 블록에 대하여 수평 방향만이 허용된다.
c. 일 예에서, QR-BDPCM의 방향의 지시는 정사각형이 아닌 블록에 대하여 추론될 수 있다.
i. 일 예에서, 더욱이, QR-BDPCM의 방향의 지시는 폭이 높이보다 큰 블록에 대하여 수직 방향으로 추론될 수 있다.
ii. 일 예에서, 더욱이, QR-BDPCM의 방향의 지시는 폭이 높이보다 작은 블록에 대하여 수평 방향으로 추론될 수 있다.
27. 24, 25 및 26항의 방법들은 w*Th >= h 또는 h*Th >= w를 갖는 블록에 대해서만 적용될 수 있고, 여기서, w 및 h는 각각 블록 폭 및 높이를 나타내고, Th는 임계값이다.
a. 일 예에서, Th는 정수(예를 들어, 4 또는 8)이고 다음에 기초할 수 있다.
i. 비디오 컨텐츠 (예를 들어, 스크린 컨텐츠 또는 자연 컨텐츠)
ii. DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU/CU/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. 표준의 프로파일/레벨/단(tier)
5. 추가 실시예들
아래의 실시예들에서, 새롭게 추가된 텍스트들은 굵은 이탤릭체로 표시되며, 삭제된 텍스트들은 "[[ ]]"로 표시된다.
5.1 실시예 1
이 섹션은 비디오의 비트스트림 표현이 베이스라인 비트스트림 신택스와 비교하여 변경되는 예시적인 실시예를 나타낸다.
seq_parameter_set_rbsp( ) { 기술어
sps_max_sub_layers_minus1 u(3)
...
sps_gbi_enabled_flag u(1)
sps_ibc_enabled_flag u(1)
sps_plt_enabled_flag u(1)
...
}
1과 동일한 sps_plt_enabled_flag는 팔레트 모드가 CVS에서 픽처의 디코딩에 사용될 수 있다는 것을 나타낸다. 0과 동일한 sps_plt_enabled_flag는 팔레트 모드가 CVS에서 사용되지 않는다는 것을 나타낸다. sps_plt_enabled_flag가 존재하지 않으면, 0인 것으로 추론된다.
coding_unit( x0, y0, cbWidth, cbHeight, treeType ) { 기술어
if( tile_group_type != I | | sps_ibc_enabled_flag || sps_plt_enabled_flag) {
if( treeType != DUAL_TREE_CHROMA )
cu_skip_flag[ x0 ][ y0 ] ae(v)
if( cu_skip_flag[ x0 ][ y0 ] = = 0 && tile_group_type != I )
pred_mode_flag ae(v)
if( ( ( tile_group_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( tile_group_type != I && CuPredMode[ x0 ][ y0 ] != MODE_INTRA ) ) &&
(sps_ibc_enabled_flag || sps_plt_enabled_flag )
pred_mode_scc_flag ae(v)
if(scc_mode_flag){
if(sps_ibc_enabled_flag) { ae(v)
pred_mode_ibc_flag
}
if(sps_plt_enabled_flag) {
pred_mode_plt_flag ae(v)
}
}
}
...
}
1과 동일한 pred_mode_scc_flag는 현재 코딩 유닛이 스크린 컨텐츠 코딩 모드로 코딩된다는 것을 나타낸다. 0과 동일한 pred_mode_scc_flag는 현재 코딩 유닛이 스크린 컨텐츠 모드에 의해 코딩되지 않는다는 것을 나타낸다. pred_mode_scc_flag이 존재하지 않으면, 0인 것으로 추론된다.
1과 동일한 pred_mode_plt_flag는 현재 코딩 유닛이 팔레트 모드로 코딩된다는 것을 나타낸다. 0과 동일한 pred_mode_plt_flag는 현재 코딩 유닛이 팔레트 모드로 코딩되지 않는다는 것을 나타낸다.
pred_mode_plt_flag이 존재하지 않으면, I 타일 그룹을 디코딩할 때 sps_plt_enabled_flag의 값과 동일하고 P 또는 B 타일 그룹을 디코딩할 때 0과 동일한 것으로 추론된다.
pred_mode_scc_flag가 1과 동일하고 sps_ibc_enabled_flag가 0과 동일하면, pred_mode_plt_flag는 1과 같은 것으로 추론된다.
pred_mode_ibc_flag가 1과 동일하면, 변수 CuPredMode[x][y]는 x=x0..x0+cbWidth1 및 y=y0..y0+cbHeight-1에 대해 MODE_PLT과 동일한 것으로 설정된다.
coding_unit( x0, y0, cbWidth, cbHeight, treeType ) { 기술어
if( tile_group_type != I | | sps_ibc_enabled_flag || sps_plt_enabled_flag ) {
if( treeType != DUAL_TREE_CHROMA )
cu_skip_flag[ x0 ][ y0 ] ae(v)
if( cu_skip_flag[ x0 ][ y0 ] = = 0 && tile_group_type != I )
pred_mode_flag ae(v)
if( ( ( tile_group_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( tile_group_type != I && CuPredMode[ x0 ][ y0 ] != MODE_INTRA ) ) &&
(sps_ibc_enabled_flag)
pred_mode_ibc_flag ae(v)
if( ( ( tile_group_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( tile_group_type != I && CuPredMode[ x0 ][ y0 ] != MODE_INTRA ) ) &&
sps_plt_enabled_flag &&
CuPredMode[ x0 ][ y0 ] != MODE_IBC
pred_mode_plt_flag ae(v)
}
...
}
coding_unit( x0, y0, cbWidth, cbHeight, treeType ) { 기술어
if( tile_group_type != I | | sps_ibc_enabled_flag || sps_plt_enabled_flag ) {
if( treeType != DUAL_TREE_CHROMA )
cu_skip_flag[ x0 ][ y0 ] ae(v)
if( cu_skip_flag[ x0 ][ y0 ] = = 0 && tile_group_type != I )
pred_mode_flag ae(v)
if( ( ( tile_group_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( tile_group_type != I && CuPredMode[ x0 ][ y0 ] != MODE_INTRA ) ) &&
(sps_ibc_enabled_flag)
pred_mode_ibc_flag ae(v)
if( CuPredMode[ x0 ][ y0 ] == MODE_INTRA &&
sps_plt_enabled_flag )
pred_mode_plt_flag ae(v)
}
...
}
1과 동일한 pred_mode_plt_flag는 현재 코딩 유닛이 팔레트 모드로 코딩되는 것을 나타낸다. 0과 동일한 pred_mode_plt_flag는 현재 코딩 유닛이 팔레트 모드로 코딩되지 않는다는 것을 나타낸다.pred_mode_plt_flag가 존재하지 않으면, I 타일 그룹을 디코딩할 때 sps_plt_enabled_flag 의 값과 동일하고 P 또는 B 타일 그룹을 디코딩할 때 0과 동일한 것으로 추론된다.
pred_mode_ibc_flag가 1과 동일하면, 변수 CuPredMode[x][y]는 x=x0..x0+cbWidth1 및 y=y0..y0+cbHeight-1에 대해 MODE_PLT과 동일한 것으로 설정된다.
coding_unit( x0, y0, cbWidth, cbHeight, treeType ) { 기술어
if( tile_group_type != I | | sps_ibc_enabled_flag || sps_plt_enabled_flag ) {
if( treeType != DUAL_TREE_CHROMA )
cu_skip_flag[ x0 ][ y0 ] ae(v)
if( cu_skip_flag[ x0 ][ y0 ] = = 0 && tile_group_type != I )
pred_mode_flag ae(v)
if( ( ( tile_group_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( tile_group_type != I && CuPredMode[ x0 ][ y0 ] == MODE_INTRA ) ) &&
(sps_ibc_enabled_flag)
pred_mode_ibc_flag ae(v)
if( ( ( tile_group_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( tile_group_type != I && CuPredMode[ x0 ][ y0 ] == MODE_INTRA && (sps_ibc_enabled_flag? CuPredMode[ x0 ][ y0 ] != MODE_IBC : TRUE) ) ) &&
sps_plt_enabled_flag )
pred_mode_plt_flag ae(v)
}
...
}
1과 동일한 pred_mode_plt_flag는 현재 코딩 유닛이 팔레트 모드로 코딩되는 것을 나타낸다. 0과 동일한 pred_mode_plt_flag는 현재 코딩 유닛이 팔레트 모드로 코딩되지 않는 것을 나타낸다.
pred_mode_plt_flag가 존재하지 않으면, I 타일 그룹을 디코딩할 때 sps_plt_enabled_flag 의 값과 동일하고 P 또는 B 타일 그룹을 디코딩할 때 0과 동일한 것으로 추론된다.
pred_mode_ibc_flag가 1과 동일하면, 변수 CuPredMode[x][y]는 x=x0..x0+cbWidth-1 및 y=y0..y0+cbHeight-1에 대해 MODE_PLT 와 동일 한 것으로 설정된다.
coding_unit( x0, y0, cbWidth, cbHeight, treeType ) { 기술어
if( tile_group_type != I | | sps_ibc_enabled_flag || sps_plt_enabled_flag ) {
if( treeType != DUAL_TREE_CHROMA )
cu_skip_flag[ x0 ][ y0 ] ae(v)
if( cu_skip_flag[ x0 ][ y0 ] = = 0 )
pred_modes(x0, y0, cbWidth, cbHeight)
...
}
pred_modes ( x0, y0, cbWidth, cbHeight) { 기술어
if(tile_group_type == I ) {
if(sps_ibc_enabled_flag)
pred_mode_ibc_flag ae(v)
if(CuPredMode[ x0 ][ y0 ] != MODE_IBC){
if(sps_plt_enabled_flag && cbWidth <=64 && cbHeight <= 64)
plt_mode_flag ae(v)
}
else{
pred_mode_flag ae(v)
if(CuPredMode[ x0 ][ y0 ] == MODE_INTRA || (CuPredMode[ x0 ][ y0 ] != MODE_INTRA && ! sps_ibc_enabled_flag)){
if(sps_plt_enabled_flag && cbWidth <=64 && cbHeight <= 64)
plt_mode_flag ae(v)
}
else{
if(sps_ibc_enabled_flag)
pred_mode_ibc_flag ae(v)
}
}
}
pred_modes ( x0, y0, cbWidth, cbHeight) { 기술어
if(tile_group_type == I ) {
if(sps_ibc_enabled_flag || sps_plt_enabled_flag)
pred_mode_ flag ae(v)
if(CuPredMode[ x0 ][ y0 ] != MODE_INTRA){
if(sps_plt_enabled_flag && cbWidth <=64 && cbHeight <= 64)
plt_mode_flag ae(v)
}
else{
pred_mode_flag ae(v)
if(CuPredMode[ x0 ][ y0 ] == MODE_INTRA || (CuPredMode[ x0 ][ y0 ] != MODE_INTRA && ! sps_ibc_enabled_flag)){
if(sps_plt_enabled_flag && cbWidth <=64 && cbHeight <= 64)
plt_mode_flag ae(v)
}
else{
if(sps_ibc_enabled_flag)
pred_mode_ibc_flag ae(v)
}
}
}
pred_modes ( x0, y0, cbWidth, cbHeight) { 기술어
if(tile_group_type == I ) {
if(sps_ibc_enabled_flag || sps_plt_enabled_flag)
pred_mode_ flag ae(v)
if(CuPredMode[ x0 ][ y0 ] != MODE_INTRA){
if(sps_plt_enabled_flag)
plt_mode_flag ae(v)
}
else{
pred_mode_flag ae(v)
if(CuPredMode[ x0 ][ y0 ] == MODE_INTRA || (CuPredMode[ x0 ][ y0 ] != MODE_INTRA && ! sps_ibc_enabled_flag)){
if(sps_plt_enabled_flag)
plt_mode_flag ae(v)
}
else{
if(sps_ibc_enabled_flag) ae(v)
pred_mode_ibc_flag
}
}
}
1과 동일한 plt_mode_flag는 현재 코딩 유닛이 팔레트 모드로 코딩되는 것을 나타낸다. 0과 동일한 intra_mode_plt_flag는 현재 코딩 유닛이 팔레트 모드로 코딩되는 것을 나타낸다.
plt_mode_flag이 존재하지 않으면, 거짓과 동일한 것으로 추론된다.
pred_mode_scc_flag가 1과 동일하면, 변수 CuPredMode[x][y]는 x=x0..x0+cbWidth-1 및 y=y0..y0+cbHeight-1에 대해 MODE_PLT와 동일한 것으로 설정된다.
0과 동일한 pred_mode_flag는 현재 코딩 유닛이 인터 예측 모드 또는 IBC 예측 모드로 코딩되는 것을 나타낸다. 1과 동일한 pred_mode_flag는 현재 코딩 유닛이 인트라 예측 모드 또는 PLT 모드로 코딩되는 것을 나타낸다. 변수 CuPredMode[x][y]는 x=x0..x0+cbWidth-1 및 y=y0..y0+cbHeight-1에 대해 다음과 같이 유도된다.
- pred_mode_flag가 0과 동일하면, CuPredMode[x][y]는 MODE_INTER과 동일한 것으로 설정된다.
- 그렇지 않으면 (pred_mode_flag가 1과 동일하면), CuPredMode[x][y]는 MODE_INTRA과 동일한 것으로 설정된다.
pred_mode_flag가 존재하지 않으면, I 타일 그룹을 디코딩할 때 1과 동일하고 P 또는 B 타일 그룹을 디코딩할 때 0과 동일한 것으로 추론된다.
신택스 구조 신택스 요소 이진화
프로세스 입력 파라미터
pred_modes( ) PLT_mode_flag FL cMax = 1
테이블 9-4 신택스 요소들 및 연관된 이진화
신택스 요소 binIdx
0 1 2 3 4 >= 5
PLT_mode_flag 0 na na na na na
테이블 9-10 - 문맥 코딩된 빈들을 갖는 신택스 요소들로 ctxInc의 할당
5.2 실시예 #2
본 실시예는 modeType을 기술한다.
코딩 트리 노드 내의 코딩 유닛들에 대하여 인트라, IBC, 팔레트 및 인터 코딩 모드들이 사용되는지(MODE_TYPE_ALL), 인트라, 팔레트 및 IBC 코딩 모드들만이 사용될 수 있는지 (MODE_TYPE_INTRA), 또는 인터 코딩 모드들만이 사용될 수 있는지 (MODE_TYPE_INTER)를 나타내는 변수 modeType.
5.3 실시예 #3
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, pred_mode_plt_flag는 pred_mode_ibc_flag 후에 시그널링된다.
7.3.7.5 코딩 유닛 신택스
coding_unit( x0, y0, cbWidth, cbHeight, treeType , modeType  ) { 기술어
if( slice_type != I | | sps_ibc_enabled_flag | | sps_plt_enabled_flag ) {
if( treeType != DUAL_TREE_CHROMA &&
!( [[cbWidth = = 4 && cbHeight = = 4 && !sps_ibc_enabled_flag ) ]] ( ( cbWidth = = 4 && cbHeight = = 4 ) | | modeType = = MODE_TYPE_INTRA )
&& !sps_ibc_enabled_flag ))
cu_skip_flag[ x0 ][ y0 ] ae(v)
if( cu_skip_flag[ x0 ][ y0 ] = = 0 && slice_type != I
&& !( cbWidth = = 4 && cbHeight = = 4 ) && modeType = = MODE_TYPE_ALL)
pred_mode_flag ae(v)
[[if( ( ( slice_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( slice_type != I && ( CuPredMode[ x0 ][ y0 ] != MODE_INTRA | |
( cbWidth = = 4 && cbHeight = = 4 && cu_skip_flag[ x0 ][ y0 ] = = 0 ) ) ) ) &&
sps_ibc_enabled_flag && ( cbWidth != 128 | | cbHeight != 128 ) )[[==]]
if( ( ( slice_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( slice_type != I && ( CuPredMode[ x0 ][ y0 ] != MODE_INTRA | |
( cbWidth = = 4 && cbHeight = = 4 && cu_skip_flag[ x0 ][ y0 ] = = 0 ) ) ) ) &&
cbWidth <= 64 && cbHeight <= 64 ) && modeType != MODE_TYPE_INTER ) {
if( sps_ibc_enabled_flag && treeType != DUAL_TREE_CHROMA )
pred_mode_ibc_flag ae(v)
}
if( CuPredMode[ x0 ][ y0 ] == MODE_INTRA  || (slice_type != I && !(cbWidth = = 4 && cbHeight = = 4 ) && !sps_ibc_enabled_flag && CuPredMode[ x0 ][ y0 ] !=
MODE_INTRA )) && cbWidth <= 64 && cbHeight <= 64 && sps_plt_enabled_flag
&& cu_skip_flag[ x0 ][ y0 ] = = 0 && modeType != MODE_INTER)
pred_mode_plt_flag ae(v)
}
...
}
5.4 실시예 #4
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, pred_mode_plt_flag는 pred_mode_ibc_flag 후에 시그널링되고 pred_mode_plt_flag는 현재 예측 모드가 MODE_INTRA일 때만 시그널링된다.
7.3.7.5 코딩 유닛 신택스
coding_unit( x0, y0, cbWidth, cbHeight, treeType , modeType ) { 기술어
if( slice_type != I | | sps_ibc_enabled_flag | | sps_plt_enabled_flag ) {
if( treeType != DUAL_TREE_CHROMA &&
!( [[cbWidth = = 4 && cbHeight = = 4 && !sps_ibc_enabled_flag ) ]] ( ( cbWidth = = 4 && cbHeight = = 4 ) | | modeType = = MODE_TYPE_INTRA )
&& !sps_ibc_enabled_flag ) )
cu_skip_flag[ x0 ][ y0 ] ae(v)
if( cu_skip_flag[ x0 ][ y0 ] = = 0 && slice_type != I
&& !( cbWidth = = 4 && cbHeight = = 4 ) && modeType = = MODE_TYPE_ALL )
pred_mode_flag ae(v)
[[ if( ( ( slice_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( slice_type != I && ( CuPredMode[ x0 ][ y0 ] != MODE_INTRA | |
( cbWidth = = 4 && cbHeight = = 4 && cu_skip_flag[ x0 ][ y0 ] = = 0 ) ) ) ) &&
sps_ibc_enabled_flag && ( cbWidth != 128 | | cbHeight != 128 ) )]]
if( ( ( slice_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( slice_type != I && ( CuPredMode[ x0 ][ y0 ] != MODE_INTRA | |
( cbWidth = = 4 && cbHeight = = 4 && cu_skip_flag[ x0 ][ y0 ] = = 0 ) ) ) ) &&
cbWidth <= 64 && cbHeight <= 64 ) && modeType != MODE_ TYPE_INTER ) {
if( sps_ibc_enabled_flag && treeType != DUAL_TREE_CHROMA )
pred_mode_ibc_flag ae(v)
}
if(cu_skip_flag[ x0 ][ y0 ] = = 0 && CuPredMode[ x0 ][ y0 ] == MODE_INTRA && cbWidth <= 64 && cbHeight <= 64 && sps_plt_enabled_flag && modeType !=
MODE_ TYPE_INTER )
pred_mode_plt_flag ae(v)
}
...
}
5.5 실시예 #5
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, pred_mode_ibc_flag는 pred_mode_plt_flag 후에 시그널링된다.
7.3.7.5 코딩 유닛 신택스
coding_unit( x0, y0, cbWidth, cbHeight, treeType , modeType  ) { 기술어
if( slice_type != I | | sps_ibc_enabled_flag | | sps_plt_enabled_flag ) {
if( treeType != DUAL_TREE_CHROMA &&
!( [[cbWidth = = 4 && cbHeight = = 4 && !sps_ibc_enabled_flag ) ]] ( ( cbWidth = = 4 && cbHeight = = 4 ) | | modeType = = MODE_TYPE_INTRA )
&& !sps_ibc_enabled_flag ) )
cu_skip_flag[ x0 ][ y0 ] ae(v)
if( cu_skip_flag[ x0 ][ y0 ] = = 0 && slice_type != I
&& !( cbWidth = = 4 && cbHeight = = 4 ) && modeType = = MODE_TYPE_ALL )
pred_mode_flag ae(v)
[[ if( ( ( slice_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( slice_type != I && ( CuPredMode[ x0 ][ y0 ] != MODE_INTRA | |
( cbWidth = = 4 && cbHeight = = 4 && cu_skip_flag[ x0 ][ y0 ] = = 0 ) ) ) ) &&
sps_ibc_enabled_flag && ( cbWidth != 128 | | cbHeight != 128 ) ) ]]
if( CuPredMode[ x0 ][ y0 ] == MODE_INTRA  || (slice_type != I && !(cbWidth = = 4 && cbHeight = = 4 ) && !sps_ibc_enabled_flag && CuPredMode[ x0 ][ y0 ] !=
MODE_INTRA )) && cbWidth <= 64 && cbHeight <= 64 && sps_plt_enabled_flag
&& cu_skip_flag[ x0 ][ y0 ] = = 0 && modeType != MODE_INTER)
pred_mode_plt_flag ae(v)
if( ( ( slice_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( slice_type != I && ( CuPredMode[ x0 ][ y0 ] != MODE_INTRA | |
( cbWidth = = 4 && cbHeight = = 4 && cu_skip_flag[ x0 ][ y0 ] = = 0 ) ) ) ) &&
cbWidth <= 64 && cbHeight <= 64 ) && modeType != MODE_ TYPE_INTER ) {
if( sps_ibc_enabled_flag && treeType != DUAL_TREE_CHROMA )
pred_mode_ibc_flag ae(v)
}
}
...
}
5.6 실시예 #6
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, pred_mode_ibc_flag 는 pred_mode_plt_flag 후에 시그널링되고, pred_mode_plt_flag 는 현재 예측 모드가 MODE_INTRA일 때에만 시그널링된다.
7.3.7.5 코딩 유닛 신택스
Figure pct00109
Figure pct00110
5.7 실시예 #7
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, pred_mode_plt_flag 및 pred_mode_ibc_flag는 예측 모드가 MODE_INTRA일 때 시그널링된다.
7.3.7.5 코딩 유닛 신택스
coding_unit( x0, y0, cbWidth, cbHeight, treeType , modeType  ) { 기술어
if( slice_type != I | | sps_ibc_enabled_flag | | sps_plt_enabled_flag ) {
if( treeType != DUAL_TREE_CHROMA &&
!( [[cbWidth = = 4 && cbHeight = = 4 && !sps_ibc_enabled_flag ) ]] ( ( cbWidth = = 4 && cbHeight = = 4 ) | | modeType = = MODE_TYPE_INTRA )
&& !sps_ibc_enabled_flag ) )
cu_skip_flag[ x0 ][ y0 ] ae(v)
if( cu_skip_flag[ x0 ][ y0 ] = = 0 && slice_type != I
&& !( cbWidth = = 4 && cbHeight = = 4 ) && modeType = = MODE_TYPE_ALL )
pred_mode_flag ae(v)
[[ if( ( ( slice_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( slice_type != I && ( CuPredMode[ x0 ][ y0 ] != MODE_INTRA | |
( cbWidth = = 4 && cbHeight = = 4 && cu_skip_flag[ x0 ][ y0 ] = = 0 ) ) ) ) &&
sps_ibc_enabled_flag && ( cbWidth != 128 | | cbHeight != 128 ) )]]
if( ( ( slice_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( slice_type != I && ( CuPredMode[ x0 ][ y0 ] == MODE_INTRA | |
( cbWidth = = 4 && cbHeight = = 4 && cu_skip_flag[ x0 ][ y0 ] = = 0 ) ) ) ) &&
cbWidth <= 64 && cbHeight <= 64 ) && modeType != MODE_TYPE_INTER ) {
if( sps_ibc_enabled_flag && treeType != DUAL_TREE_CHROMA )
pred_mode_ibc_flag ae(v)
}
if( CuPredMode[ x0 ][ y0 ] == MODE_INTRA && cbWidth <= 64 && cbHeight <= 64 && sps_plt_enabled_flag && cu_skip_flag[ x0 ][ y0 ] = = 0 && modeType !=
MODE_INTER)
pred_mode_plt_flag ae(v)
}
...
}
5.8 실시예 #8
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, pred_mode_plt_flag 및 pred_mode_ibc_flag 는 예측 모드가 MODE_INTRA가 아닐 때 시그널링된다.
7.3.7.5 코딩 유닛 신택스
coding_unit( x0, y0, cbWidth, cbHeight, treeType , modeType  ) { 기술어
if( slice_type != I | | sps_ibc_enabled_flag | | sps_plt_enabled_flag ) {
if( treeType != DUAL_TREE_CHROMA &&
!( [[cbWidth = = 4 && cbHeight = = 4 && !sps_ibc_enabled_flag ) ]] ( ( cbWidth = = 4 && cbHeight = = 4 ) | | modeType = = MODE_TYPE_INTRA )
&& !sps_ibc_enabled_flag ) )
cu_skip_flag[ x0 ][ y0 ] ae(v)
if( cu_skip_flag[ x0 ][ y0 ] = = 0 && slice_type != I
&& !( cbWidth = = 4 && cbHeight = = 4 ) && modeType = = MODE_TYPE_ALL )
pred_mode_flag ae(v)
[[ if( ( ( slice_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( slice_type != I && ( CuPredMode[ x0 ][ y0 ] != MODE_INTRA | |
( cbWidth = = 4 && cbHeight = = 4 && cu_skip_flag[ x0 ][ y0 ] = = 0 ) ) ) ) &&
sps_ibc_enabled_flag && ( cbWidth != 128 | | cbHeight != 128 ) )]]
if( ( ( slice_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( slice_type != I && ( CuPredMode[ x0 ][ y0 ] != MODE_INTRA | |
( cbWidth = = 4 && cbHeight = = 4 && cu_skip_flag[ x0 ][ y0 ] = = 0 ) ) ) ) &&
cbWidth <= 64 && cbHeight <= 64 ) && modeType != MODE_TYPE_INTER ) {
if( sps_ibc_enabled_flag && treeType != DUAL_TREE_CHROMA )
pred_mode_ibc_flag ae(v)
}
if( CuPredMode[ x0 ][ y0 ] != MODE_INTRA && cbWidth <= 64 && cbHeight <= 64 && sps_plt_enabled_flag && cu_skip_flag[ x0 ][ y0 ] = = 0 && modeType !=
MODE_INTER)
pred_mode_plt_flag ae(v)
}
...
}
5.9 실시예 #9
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, pred_mode_plt_flag 및 pred_mode_ibc_flag 는 예측 모드가 MODE_INTER 일 때 시그널링된다.
7.3.7.5 코딩 유닛 신택스
coding_unit( x0, y0, cbWidth, cbHeight, treeType , modeType  ) { 기술어
if( slice_type != I | | sps_ibc_enabled_flag | | sps_plt_enabled_flag ) {
if( treeType != DUAL_TREE_CHROMA &&
!( [[cbWidth = = 4 && cbHeight = = 4 && !sps_ibc_enabled_flag ) ]] ( ( cbWidth = = 4 && cbHeight = = 4 ) | | modeType = = MODE_TYPE_INTRA )
&& !sps_ibc_enabled_flag ) )
cu_skip_flag[ x0 ][ y0 ] ae(v)
if( cu_skip_flag[ x0 ][ y0 ] = = 0 && slice_type != I
&& !( cbWidth = = 4 && cbHeight = = 4 ) && modeType = = MODE_TYPE_ALL )
pred_mode_flag ae(v)
[[ if( ( ( slice_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( slice_type != I && ( CuPredMode[ x0 ][ y0 ] != MODE_INTRA | |
( cbWidth = = 4 && cbHeight = = 4 && cu_skip_flag[ x0 ][ y0 ] = = 0 ) ) ) ) &&
sps_ibc_enabled_flag && ( cbWidth != 128 | | cbHeight != 128 ) )]]
if( ( ( slice_type = = I && cu_skip_flag[ x0 ][ y0 ] = =0 ) | |
( slice_type != I && ( CuPredMode[ x0 ][ y0 ] == MODE_INTER | |
( cbWidth = = 4 && cbHeight = = 4 && cu_skip_flag[ x0 ][ y0 ] = = 0 ) ) ) ) &&
cbWidth <= 64 && cbHeight <= 64 ) && modeType != MODE_TYPE_INTER ) {
if( sps_ibc_enabled_flag && treeType != DUAL_TREE_CHROMA )
pred_mode_ibc_flag ae(v)
}
if( CuPredMode[ x0 ][ y0 ] == MODE_INTER && cbWidth <= 64 && cbHeight <= 64 && sps_plt_enabled_flag && cu_skip_flag[ x0 ][ y0 ] = = 0 && modeType !=
MODE_INTER)
pred_mode_plt_flag ae(v)
}
...
}
5.10 실시예 #10
본 실시예는 pred_mode_plt_flag의 시맨틱스를 기술한다.
pred_mode_plt_flag는 현재 코딩 유닛에서의 팔레트 모드의 사용을 나타낸다. pred_mode_plt_flag = = 1는 현재 코딩 유닛에서 팔레트 모드가 적용되는 것을 나타낸다. pred_mode_plt_flag = = 0는 현재 코딩 유닛에 팔레트 모드가 적용되지 않는다는 것을 나타낸다. pred_mode_plt_flag가 존재하지 않으면, 0과 동일한 것으로 추론된다.
5.11 실시예 #11
본 실시예는 pred_mode_plt_flag의 시맨틱스를 기술한다.
pred_mode_plt_flag는 현재 코딩 유닛에서의 팔레트의 사용을 나타낸다. pred_mode_plt_flag = = 1는 현재 코딩 유닛에서 팔레트 모드가 적용된다는 것을 나타낸다. pred_mode_plt_flag = = 0는 현재 코딩 유닛에 팔레트 모드가 적용되지 않는다는 것을 나타낸다. pred_mode_plt_flag가 존재하지 않으면, 0과 동일한 것으로 추론된다.
pred_mode_plt_flag가 1과 같으면, 변수 CuPredMode[x][y]가 x=x0..x0+cbWidth-1 및 y=y0..y0+cbHeight-1에 대해 MODE_PLT 와 같은 것으로 설정된다.
5.12 실시예 #12
본 실시예는 경계 강도 유도를 기술한다.
8.8.3.5 경계 필터링 강도의 유도 과정
이 과정의 입력들은 아래와 같다.
픽처 샘플 어레이(recPicture),
현재 픽처의 좌측 상단 샘플에 대하여 현재 코딩 블록의 좌측 상단 샘플을 나타내는 위치(xCb, yCb),
현재 코딩 블록의 폭을 나타내는 변수(nCbW),
현재 코딩 블록의 높이를 나타내는 변수(nCbH),
수직(EDGE_VER) 또는 수평 (EDGE_HOR) 에지가 필터링되는지를 나타내는 변수(edgeType),
현재 코딩 블록의 칼라 성분을 나타내는 변수(cIdx),
2차원 (nCbW)x(nCbH) 어레이(edgeFlags).
이 과정의 출력은 경계 필터링 강도를 나타내는 2차원 (nCbW)x(nCbH) 어레이(bS)이다.
...
변수 bS[ xDi ][ yDj ] 는 다음과 같이 유도된다.
cIdx가 0과 동일하고, 샘플p0 및 q0가 모두 1과 동일한 intra_bdpcm_flag을 갖는 코딩 블록에 있으면, bS[ xDi ][ yDj ]는 0과 동일하게 설정된다.
그렇지 않고, 샘플p0 또는 q0가 인트라 예측 모드로 코딩된 코딩 유닛의 코딩 블록에 있으면, bS[ xDi ][ yDj ]는 2와 동일하게 설정된다.
그렇지 않고, 블록 에지가 또한 변환 블록 에지이고 샘플p0 또는 q0가 1과 동일한 ciip_flag를 갖는 코딩 블록에 있으면, bS[ xDi ][ yDj ]는 2와 동일하게 설정된다.
그렇지 않고, 블록 에지가 또한 변환 블록 에지이고 샘플p0 또는 q0가 하나 이상의 넌-제로 변환 계수 레벨들을 포함하는 변환 블록에 있으면, bS[ xDi ][ yDj ]는 1과 동일하게 설정된다.
그렇지 않고, 블록 에지가 또한 변환 블록 에지이고 샘플들 p 0 및 q 0 가 1과 동일한 pred_mode_plt_flag를 갖는 2개의 코딩 블록들에 있으면, bS[ xD i ][ yD j ]는 0와 동일하게 설정된다.
그렇지 않고, 샘플p0를 포함하는 코딩 서브블록의 예측 모드가 샘플q0를 포함하는 코딩 서브블록의 예측 모드와 다르면, bS[ xDi ][ yDj ]는 1과 동일하게 설정된다.
그렇지 않고, cIdx가 0과 동일하고 다음의 조건 중의 하나 이상이 참이면, bS[ xDi ][ yDj ]는 1과 동일하게 설정된다.
샘플p0를 포함하는 코딩 서브블록 및 샘플q0를 포함하는 코딩 서브블록이 둘다 IBC 예측 모드로 코딩되고, 상기 2개의 코딩 서브블록의 예측에 사용되는 모션 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플 단위로 4보다 크거나 같다.
샘플p0를 포함하는 코딩 서브블록의 예측을 위해, 샘플q0를 포함하는 코딩 서브블록의 예측을 위한 것과는 다른 참조 픽처들 또는 상이한 수의 모션 벡터들이 사용된다.
노트 1 - 2개의 코딩 서브블록들에 대해 사용되는 참조 픽쳐들이 동일한지 상이한지의 결정은 참조 픽처 리스트 0으로의 인덱스 또는 참조 픽처 리스트 1로의 인덱스를 이용하여 예측이 형성되는지 그리고 참조 픽처 리스트 내의 인덱스 위치가 상이한지에 상관없이 어떤 픽처들이 참조되는지에만 기초한다.
노트 2 - ( xSb, ySb )를 커버하는 좌측 상단 샘플을 갖는 코딩 서브블록의 예측에 사용되는 모션 벡터들의 수는 PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ]와 동일하다.
하나의 모션 벡터가 샘플p0를 포함하는 코딩 서브블록을 예측하는데 사용되고, 하나의 모션 벡터가 샘플q0를 포함하는 코딩 서브블록을 예측하는데 사용되고, 상기 사용되는 모션 벡터들의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플 단위로 4보다 크거나 같다.
2개의 모션 벡터들 및 2개의 상이한 참조 픽쳐들이 샘플p0를 포함하는 코딩 서브블록을 예측하는데 사용되고, 동일한 2개의 참조 픽처들에 대한 2개의 모션 벡터들이 샘플q0를 포함하는 코딩 서브블록을 예측하는데 사용되고, 동일한 참조 픽처에 대한 2개의 코딩 서브블록들의 예측에 사용되는 2개의 모션 벡터들의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플 단위로 4보다 크거나 같다.
동일한 참조 픽처에 대한 2개의 모션 벡터들은 샘플p0를 포함하는 코딩 서브블록을 예측하는데 사용되고, 동일한 참조 픽처에 대한 2개의 모션 벡터들은 샘플q0를 포함하는 코딩 서브블록을 예측하는데 사용되고, 다음 조건 둘다가 참이다.
2개의 코딩 서브블록의 예측에 사용되는 list 0 모션 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플 단위로 4보다 크거나 같거나 또는 2개의 코딩 서브블록의 예측에 사용되는 list 1 모션 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플 단위로 4보다 크거나 같다.
샘플p0를 포함하는 코딩 서브블록의 예측에 사용되는 list 0 모션 벡터및 샘플q0를 포함하는 코딩 서브블록의 예측에 사용되는 list 1 모션 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플 단위로 4보다 크거나 같거나, 또는 샘플p0를 포함하는 코딩 서브블록의 예측에 사용되는 list 1 모션 벡터 및 샘플q0를 포함하는 코딩 서브블록의 예측에 사용되는 list 0 모션 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플 단위로 4보다 크거나 같다.
그렇지 않으면, 변수 bS[ xDi ][ yDj ]가 0과 동일하게 설정된다.
5.13a 실시예 #13a
본 실시예는 경계 강도 유도를 기술한다.
8.8.3.5 경계 필터링 강도의 유도 과정
이 과정의 입력들은 아래와 같다.
픽처 샘플 어레이(recPicture),
현재 픽처의 좌측 상단 샘플에 대하여 현재 코딩 블록의 좌측 상단 샘플을 나타내는 위치(xCb, yCb),
현재 코딩 블록의 폭을 나타내는 변수(nCbW),
현재 코딩 블록의 높이를 나타내는 변수(nCbH),
수직(EDGE_VER) 또는 수평 (EDGE_HOR) 에지가 필터링되는지를 나타내는 변수(edgeType),
현재 코딩 블록의 칼라 성분을 나타내는 변수(cIdx),
2차원 (nCbW)x(nCbH) 어레이(edgeFlags).
이 과정의 출력은 경계 필터링 강도를 나타내는 2차원 (nCbW)x(nCbH) 어레이(bS)이다.
...
변수 bS[ xDi ][ yDj ] 는 다음과 같이 유도된다.
cIdx가 0과 동일하고, 샘플p0 및 q0가 모두 1과 동일한 intra_bdpcm_flag을 갖는 코딩 블록에 있으면, bS[ xDi ][ yDj ]는 0과 동일하게 설정된다.
그렇지 않고, 샘플p0 또는 q0가 인트라 예측 모드로 코딩된 코딩 유닛의 코딩 블록에 있으면, bS[ xDi ][ yDj ]는 2와 동일하게 설정된다.
그렇지 않고, 블록 에지가 또한 변환 블록 에지이고 샘플p0 또는 q0가 1과 동일한 ciip_flag를 갖는 코딩 블록에 있으면, bS[ xDi ][ yDj ]는 2와 동일하게 설정된다.
그렇지 않고, 블록 에지가 또한 변환 블록 에지이고 샘플p0 또는 q0가 하나 이상의 비(non)-제로 변환 계수 레벨들을 포함하는 변환 블록에 있으면, bS[ xDi ][ yDj ]는 1과 동일하게 설정된다.
그렇지 않고, 블록 에지가 또한 변환 블록 에지이고 샘플들 p 0 및 q 0 가 1과 동일한 pred_mode_plt_flag를 갖는 2개의 코딩 블록들에 있으면, bS[ xD i ][ yD j ]는 0와 동일하게 설정된다.
그렇지 않고, 샘플p0를 포함하는 코딩 서브블록의 예측 모드가 샘플q0를 포함하는 코딩 서브블록의 예측 모드와 다르면, bS[ xDi ][ yDj ]는 1과 동일하게 설정된다.
그렇지 않고, cIdx가 0과 동일하고 다음의 조건 중의 하나 이상이 참이면, bS[ xDi ][ yDj ]는 1과 동일하게 설정된다.
샘플p0를 포함하는 코딩 서브블록 및 샘플q0를 포함하는 코딩 서브블록이 둘다 IBC 예측 모드로 코딩되고, 상기 2개의 코딩 서브블록의 예측에 사용되는 모션 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플 단위로 4보다 크거나 같다.
샘플p0를 포함하는 코딩 서브블록의 예측을 위해, 샘플q0를 포함하는 코딩 서브블록의 예측을 위한 것과는 다른 참조 픽처들 또는 상이한 수의 모션 벡터들이 사용된다.
노트 1 - 2개의 코딩 서브블록들에 대해 사용되는 참조 픽쳐들이 동일한지 상이한지의 결정은 참조 픽처 리스트 0으로의 인덱스 또는 참조 픽처 리스트 1로의 인덱스를 이용하여 예측이 형성되는지 그리고 참조 픽처 리스트 내의 인덱스 위치가 상이한지에 상관없이 어떤 픽처들이 참조되는지에만 기초한다.
노트 2 - ( xSb, ySb )를 커버하는 좌측 상단 샘플을 갖는 코딩 서브블록의 예측에 사용되는 모션 벡터들의 수는 PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ]와 동일하다.
하나의 모션 벡터가 샘플p0를 포함하는 코딩 서브블록을 예측하는데 사용되고, 하나의 모션 벡터가 샘플q0를 포함하는 코딩 서브블록을 예측하는데 사용되고, 상기 사용되는 모션 벡터들의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플 단위로 4보다 크거나 같다.
2개의 모션 벡터들 및 2개의 상이한 참조 픽쳐들이 샘플p0를 포함하는 코딩 서브블록을 예측하는데 사용되고, 동일한 2개의 참조 픽처들에 대한 2개의 모션 벡터들이 샘플q0를 포함하는 코딩 서브블록을 예측하는데 사용되고, 동일한 참조 픽처에 대한 2개의 코딩 서브블록들의 예측에 사용되는 2개의 모션 벡터들의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플 단위로 4보다 크거나 같다.
동일한 참조 픽처에 대한 2개의 모션 벡터들은 샘플p0를 포함하는 코딩 서브블록을 예측하는데 사용되고, 동일한 참조 픽처에 대한 2개의 모션 벡터들은 샘플q0를 포함하는 코딩 서브블록을 예측하는데 사용되고, 다음 조건 둘다가 참이다.
2개의 코딩 서브블록의 예측에 사용되는 list 0 모션 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플 단위로 4보다 크거나 같거나 또는 2개의 코딩 서브블록의 예측에 사용되는 list 1 모션 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플 단위로 4보다 크거나 같다.
샘플p0를 포함하는 코딩 서브블록의 예측에 사용되는 list 0 모션 벡터및 샘플q0를 포함하는 코딩 서브블록의 예측에 사용되는 list 1 모션 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플 단위로 4보다 크거나 같거나, 또는 샘플p0를 포함하는 코딩 서브블록의 예측에 사용되는 list 1 모션 벡터 및 샘플q0를 포함하는 코딩 서브블록의 예측에 사용되는 list 0 모션 벡터의 수평 또는 수직 성분 간의 절대차는 1/4 휘도 샘플 단위로 4보다 크거나 같다.
그렇지 않으면, 변수 bS[ xDi ][ yDj ]가 0과 동일하게 설정된다.
5.13b 실시예 #13b
본 실시예는 이스케이프 샘플 코딩 및 재구성을 기술한다.
palette_coding( x0, y0, cbWidth, cbHeight, startComp, numComps ) { 기술어
...
/* Parsing escape values */
if( palette_escape_val_present_flag ) {
for( cIdx = startComp; cIdx < ( startComp + numComps ); cIdx++ )
for( sPos = 0; sPos < cbWidth* cbHeight; sPos++ ) {
xC = TraverseScanOrder[ cbWidth][ cbHeight ][ sPos ][ 0 ]
yC = TraverseScanOrder[ cbWidth][ cbHeight ][ sPos ][ 1 ]
if( PaletteIndexMap[ cIdx ] [ xC ][ yC ] = = ( MaxPaletteIndex - 1 ) ) {
palette_escape_val [[ae(v) ]] u(v)
PaletteEscapeVal[ cIdx ][ xC ][ yC ] = palette_escape_val
}
}
}
}
팔레트 모드에 대한 디코딩 과정
이 과정의 입력들은 아래와 같다.
현재 픽처의 좌측 상단 휘도 샘플에 대하여 현재 블록의 좌측 상단 휘도 샘플을 나타내는 위치(xCb, yCb),
팔레트 테이블의 제1 칼라 성분을 나타내는 변수(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이고, recSamples[ x ][ y ]의 값(각 x는 0 이상 nCbW - 1 이하의 범위 내이고 각 y는 0 이상 nCbH - 1의 범위 내임)이 다음과 같이 유도된다.
변수xL 및 yL는 다음과 같이 유도된다.
xL = palette_transpose_flag ? x * nSubHeight : x * nSubWidth (8-69)
yL = palette_transpose_flag ? y * nSubWidth : y * nSubHeight (8-70)
변수bIsEscapeSample는 다음과 같이 유도된다.
PaletteIndexMap[ xCb + xL ][ yCb + yL ]가 MaxPaletteIndex와 동일하고 palette_escape_val_present_flag가 1과 동일하면, bIsEscapeSample는 1과 동일하게 설정된다.
그렇지 않으면, bIsEscapeSample는 0와 동일하게 설정된다.
bIsEscapeSample가 0과 동일하면, 다음이 적용된다.
recSamples[ x ][ y ] = CurrentPaletteEntries[ cIdx ][ PaletteIndexMap[ xCb + xL ][ yCb + yL ] ] (8-71)
그렇지 않고, cu_transquant_bypass_flag가 1과 동일하면, 다음이 적용된다.
recSamples[ x ][ y ] = PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] (8-72)
그렇지 않으면 (bIsEscapeSample가 1과 동일하고 cu_transquant_bypass_flag가 0과 동일하면), 다음 순서의 단계들이 적용된다.
8.7.1 절에 명시된 양자화 파라미터들에 대한 유도 과정은 현재 픽처의 좌측 상단 샘플에 대하여 현재 블록의 좌측 상단 샘플을 나타내는 위치( xCb, yCb )로 호출된다.
양자화 파라미터qP는 다음과 같이 유도된다.
cIdx가 0과 동일하면,
qP =
Figure pct00111
이다. (8-73)
그렇지 않고, cIdx가 1과 동일하면,
qP =
Figure pct00112
이다. (8-74)
그렇지 않으면(cIdx가 2와 동일하면),
qP =
Figure pct00113
이다. (8-75)
변수bitDepth는 아래와 같이 유도된다.
bitDepth =
Figure pct00114
(8-76)
[[리스트 levelScale[ ]는 levelScale[ k ] = { 40, 45, 51, 57, 64, 72 }로서 명시되고, 여기서, k = 0..5이다]]
다음이 적용된다.
[[tmpVal = ( PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] *
levelScale[ qP%6 ] ) << ( qP / 6 ) + 32 ) >> 6 (8-77)
recSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) - 1, tmpVal ) (8-78)]]
recSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) - 1, PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ]) (8-78)
cIdx가 0과 동일하고 numComps가 1과 동일하거나
cIdx가 3과 동일하다는 조건 중 하나가 참이면,
변수PredictorPaletteSize[startComp] 및 어레이PredictorPaletteEntries는 다음과 같이 유도되고 수정된다.
for( i = 0; i < CurrentPaletteSize[ startComp ]; i++ )
for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++ )
newPredictorPaletteEntries[ cIdx ][ i ] = CurrentPaletteEntries[ cIdx ][ i ]
newPredictorPaletteSize = CurrentPaletteSize[ startComp ]
for( i = 0; i < PredictorPaletteSize && newPredictorPaletteSize < PaletteMaxPredictorSize; i++ )
if( !PalettePredictorEntryReuseFlags[ i ] ) {
for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++ ) (8-79)
newPredictorPaletteEntries[ cIdx ][ newPredictorPaletteSize ] =
PredictorPaletteEntries[ cIdx ][ i ]
newPredictorPaletteSize++
}
for( cIdx = startComp; cIdx < ( startComp + numComps ); cIdx++ )
for( i = 0; i < newPredictorPaletteSize; i++ )
PredictorPaletteEntries[ cIdx ][ i ] = newPredictorPaletteEntries[ cIdx ][ i ]
PredictorPaletteSize[ startComp ] = newPredictorPaletteSize
PredictorPaletteSize[ startComp ]의 값이 0 이상 PaletteMaxPredictorSize 이하의 범위에 있어야 한다는 것이 비트스트림 적합성의 요구사항이다.
5.14 실시예 #14
8.4.5.3 팔레트 모드에 대한 디코딩 과정
이 과정의 입력들은 아래와 같다.
- 현재 픽처의 좌측 상단 휘도 샘플에 대하여 현재 블록의 좌측 상단 휘도 샘플을 나타내는 위치(xCb, yCb),
- 팔레트 테이블의 제1 칼라 성분을 나타내는 변수(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이고, recSamples[ x ][ y ]의 값(각 x는 0 이상 nCbW - 1 이하의 범위 내이고 각 y는 0 이상 nCbH - 1의 범위 내임)이 다음과 같이 유도된다.
- 변수xL 및 yL는 다음과 같이 유도된다.
xL = palette_transpose_flag ? x * nSubHeight : x * nSubWidth (8-234)
yL = palette_transpose_flag ? y * nSubWidth : y * nSubHeight (8-235)
- 변수bIsEscapeSample는 다음과 같이 유도된다.
- PaletteIndexMap[ xCb + xL ][ yCb + yL ]가 MaxPaletteIndex와 동일하고 palette_escape_val_present_flag가 1과 동일하면, bIsEscapeSample는 1과 동일하게 설정된다.
- 그렇지 않으면, bIsEscapeSample는 0와 동일하게 설정된다.
bIsEscapeSample가 0과 동일하면, 다음이 적용된다.
recSamples[ x ][ y ] = CurrentPaletteEntries[ cIdx ][ PaletteIndexMap[ xCb + xL ][ yCb + yL ] ] (8-236)
- 그렇지 않고, cu_transquant_bypass_flag가 1과 동일하면, 다음이 적용된다.
recSamples[ x ][ y ] = PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] (8-237)
그렇지 않으면 (bIsEscapeSample가 1과 동일하고 cu_transquant_bypass_flag가 0과 동일하면), 다음 순서의 단계들이 적용된다.
1. 8.7.1 절에 명시된 양자화 파라미터들에 대한 유도 과정은 현재 픽처의 좌측 상단 샘플에 대하여 현재 블록의 좌측 상단 샘플을 나타내는 위치( xCb, yCb )로 호출된다.
[Ed. (BB): QP는 CU 내 디코딩 프로세스의 시작 부분에서 이미 파생되었으므로 이 하위 절 내에서 다시 파생할 필요가 없다. HEVC v4 SCC에서와 비슷하지만 이 중복성은 제거될 수 있다고 생각한다. 확인되어야함. ]
2. 양자화 파라미터qP는 다음과 같이 유도된다.
cIdx가 0과 동일하면,
qP =
Figure pct00115
이다. (8-238)
그렇지 않고, cIdx가 1과 동일하면,
qP =
Figure pct00116
이다. (8-239)
그렇지 않으면(cIdx가 2와 동일하면),
qP =
Figure pct00117
이다. (8-240)
min_qp_prime_ts_minus4는 다음과 같이 변환 스킵 모드에 대한 최소 허용 양자화 파라미터를 나타낸다.
QpPrimeTsMin = 4 + min_qp_prime_ts_ minus4
3. 변수bitDepth는 다음과 같이 유도된다.
bitDepth =
Figure pct00118
(8-241)
4. 리스트 levelScale[ ]는 levelScale[ k ] = { 40, 45, 51, 57, 64, 72 }로서 명시되고, 여기서 k = 0..5이다.
[Ed. (BB): 비-팔레트 CU들의 경우, levelScale는 rectNonTsFlag에 의존한다. 이것이 여기에도 적용되어야 하는가?]
5. 다음이 적용된다.
tmpVal = ( PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] *
levelScale[ qP%6 ] ) << ( qP / 6 ) + 32 ) >> 6 (8-242)
recSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) - 1, tmpVal ) (8-243)
다음 조건들 중 하나가 참이면
cIdx이 0과 동일하고 numComps이 1과 동일
cIdx이 3과 동일
변수PredictorPaletteSize[startComp] 및 어레이PredictorPaletteEntries는 다음과 같이 유도되거나 수정된다.
for( i = 0; i < CurrentPaletteSize[ startComp ]; i++ )
for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++ )
newPredictorPaletteEntries[ cIdx ][ i ] = CurrentPaletteEntries[ cIdx ][ i ]
newPredictorPaletteSize = CurrentPaletteSize[ startComp ]
for( i = 0; i < PredictorPaletteSize && newPredictorPaletteSize < PaletteMaxPredictorSize; i++ )
if( !PalettePredictorEntryReuseFlags[ i ] ) {
for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++ ) (8-244)
newPredictorPaletteEntries[ cIdx ][ newPredictorPaletteSize ] =
PredictorPaletteEntries[ cIdx ][ i ]
newPredictorPaletteSize++
}
for( cIdx = startComp; cIdx < ( startComp + numComps ); cIdx++ )
for( i = 0; i < newPredictorPaletteSize; i++ )
PredictorPaletteEntries[ cIdx ][ i ] = newPredictorPaletteEntries[ cIdx ][ i ]
PredictorPaletteSize[ startComp ] = newPredictorPaletteSize
PredictorPaletteSize[ startComp ]의 값이 0 이상 PaletteMaxPredictorSize 이하의 범위에 있어야 한다는 것이 비트스트림 적합성의 요구사항이다.
5.15 실시예 # 15
8.4.2 휘도 인트라 예측 모드에 대한 유도 과정
...
그렇지 않으면 (skip_intra_flag[ xPb ][ yPb ] 및 DimFlag[ xPb ][ yPb ] 모두 0과 동일하면), IntraPredModeY[ xPb ][ yPb ]는 다음 순서의 단계들에 의해 유도된다:
1. 주변 위치들( xNbA, yNbA ) 및 ( xNbB, yNbB )는 각각 ( xPb - 1, yPb ) 및 ( xPb, yPb - 1 )과 동일하게 설정된다.
2. A 또는 B로 대체되는 X에 대해, 변수candIntraPredModeX는 다음과 같이 유도된다.
§ - 6.4.1절에 명시된 z-스캔 순서의 블록에 대한 이용가능성 유도 과정은 입력으로서 ( xPb, yPb )와 동일하게 설정된 위치 ( xCurr, yCurr ) 및 ( xNbX, yNbX )와 동일하게 설정된 주변 위치 ( xNbY, yNbY )로 호출되고(invoke), 출력은 availableX에 할당된다.
§ - 후보 인트라 예측 모드candIntraPredModeX는 다음과 같이 유도된다.
§ - availableX가 거짓(FALSE)이면, candIntraPredModeX는 INTRA_DC와 동일하게 설정된다.
§ [[- 그렇지 않고, CuPredMode[ xNbX ][ yNbX ]가 MODE_INTRA와 동일하지 않거나 pcm_flag[ xNbX ][ yNbX ]가 1과 동일하면, candIntraPredModeX가 INTRA_DC과 동일하게 설정되고, ]]
§ - 그렇지 않고, CuPredMode[ xNbX ][ yNbX ]가 MODE_INTRA과 동일하지 않거나, pcm_flag[ xNbX ][ yNbX ]가 1과 동일하거나 palette_mode_flag가 1과 동일하면, candIntraPredModeX가 INTRA_DC와 동일하게 설정되고,
§ - 그렇지 않고, X가 B와 동일하고 yPb - 1가 ( ( yPb >> CtbLog2SizeY ) << CtbLog2SizeY )보다 작으면, candIntraPredModeB는 INTRA_DC과 동일하게 설정된다.
§ - 그렇지 않고, IntraPredModeY[ xNbX ][ yNbX ]가 34보다 크면, candIntraPredModeX는 INTRA_DC과 동일하게 설정된다.
5.16 실시예 #16
8.4.2 휘도 인트라 예측 모드에 대한 유도 과정
이 과정의 입력들은 아래와 같다.
- 현재 픽처의 좌측 상단 휘도 샘플에 대하여 현재 휘도 코딩 블록의 좌측 상단 샘플을 나타내는 위치(xCb, yCb),
- 휘도 샘플들에서 현재 코딩 블록의 폭을 나타내는 변수cbWidth
- 휘도 샘플들에서 현재 코딩 블록의 높이를 나타내는 변수cbHeight
이 과정에서, 휘도 인트라 예측 모드IntraPredModeY[ xCb ][ yCb ])가 유도된다.
1. A 또는 B로 대체되는 X에 대해, 변수candIntraPredModeX는 다음과 같이 유도된다.
- 6.4.X절 [Ed. (BB): 주변 블록 이용가능성 확인 과정 tbd] 에 명시된 블록에 대한 이용가능성 유도 과정은 입력으로서 ( xCb, yCb )와 동일하게 설정된 위치( xCurr, yCurr ) 및 ( xNbX, yNbX )와 동일하게 설정된 주변 위치( xNbY, yNbY )로 호출되고, 출력은 availableX에 할당된다.
- 후보 인트라 예측 모드candIntraPredModeX는 다음과 같이 유도된다.
- 다음 조건 중의 하나 이상이 참이면, candIntraPredModeX는 INTRA_PLANAR와 동일하게 설정된다.
- 변수availableX는 거짓(FALSE)과 동일하다.
- CuPredMode[ xNbX ][ yNbX ]는 MODE_INTRA와 동일하지 않다.
- pred_mode_plt_flag는 1과 동일하지 않다.
- intra_mip_flag[ xNbX ][ yNbX ]는 1과 동일하다.
- X가 B와 동일하고 yCb - 1는 ( ( yCb >> CtbLog2SizeY ) << CtbLog2SizeY )보다 작다.
- 그렇지 않으면, candIntraPredModeX는 IntraPredModeY[ xNbX ][ yNbX ]와 동일하게 설정된다.
...
변수IntraPredModeY[ x ][ y ])(여기서, x = xCb..xCb + cbWidth - 1 및 y = yCb..yCb + cbHeight - 1)는 IntraPredModeY[ xCb ][ yCb ]와 동일하게 설정된다.
5.17 실시예 #17
8.4.3 휘도 인트라 예측 모드에 대한 유도 과정
이 과정의 입력들은 아래와 같다.
- 현재 픽처의 좌측 상단 휘도 샘플에 대하여 현재 휘도 코딩 블록의 좌측 상단 샘플을 나타내는 위치(xCb, yCb),
- 휘도 샘플들에서 현재 코딩 블록의 폭을 나타내는 변수cbWidth
- 휘도 샘플들에서 현재 코딩 블록의 높이를 나타내는 변수cbHeight
이 과정에서, 휘도 인트라 예측 모드IntraPredModeY[ xCb ][ yCb ])가 유도된다.
2. A 또는 B로 대체되는 X에 대해, 변수candIntraPredModeX는 다음과 같이 유도된다.
- 6.4.X절 [Ed. (BB): 주변 블록 이용가능성 확인 과정 tbd] 에 명시된 블록에 대한 이용가능성 유도 과정은 입력으로서 ( xCb, yCb )와 동일하게 설정된 위치( xCurr, yCurr ) 및 ( xNbX, yNbX )와 동일하게 설정된 주변 위치( xNbY, yNbY )로 호출되고, 출력은 availableX에 할당된다.
- 후보 인트라 예측 모드candIntraPredModeX는 다음과 같이 유도된다.
- 다음 조건 중의 하나 이상이 참이면, candIntraPredModeX는 [[INTRA_PLANAR]] INTRA_DC 와 동일하게 설정된다.
- 변수availableX는 거짓(FALSE)과 동일하다.
- CuPredMode[ xNbX ][ yNbX ]는 MODE_INTRA와 동일하지 않다.
- intra_mip_flag[ xNbX ][ yNbX ]는 1과 동일하다.
- X가 B와 동일하고 yCb - 1는 ( ( yCb >> CtbLog2SizeY ) << CtbLog2SizeY )보다 작다.
- 그렇지 않으면, candIntraPredModeX는 IntraPredModeY[ xNbX ][ yNbX ]와 동일하게 설정된다.
...
변수IntraPredModeY[ x ][ y ])(여기서, x = xCb..xCb + cbWidth - 1 및 y = yCb..yCb + cbHeight - 1)는 IntraPredModeY[ xCb ][ yCb ]와 동일하게 설정된다.
5.18 실시예 #18
8.4.3 휘도 인트라 예측 모드에 대한 유도 과정
이 과정의 입력들은 아래와 같다.
- 현재 픽처의 좌측 상단 휘도 샘플에 대하여 현재 휘도 코딩 블록의 좌측 상단 샘플을 나타내는 위치(xCb, yCb),
- 휘도 샘플들에서 현재 코딩 블록의 폭을 나타내는 변수cbWidth
- 휘도 샘플들에서 현재 코딩 블록의 높이를 나타내는 변수cbHeight
이 과정에서, 휘도 인트라 예측 모드IntraPredModeY[ xCb ][ yCb ])가 유도된다.
3. A 또는 B로 대체되는 X에 대해, 변수candIntraPredModeX는 다음과 같이 유도된다.
- 6.4.X절 [Ed. (BB): 주변 블록 이용가능성 확인 과정 tbd] 에 명시된 블록에 대한 이용가능성 유도 과정은 입력으로서 ( xCb, yCb )와 동일하게 설정된 위치( xCurr, yCurr ) 및 ( xNbX, yNbX )와 동일하게 설정된 주변 위치( xNbY, yNbY )로 호출되고, 출력은 availableX에 할당된다.
- 후보 인트라 예측 모드candIntraPredModeX는 다음과 같이 유도된다.
- 다음 조건 중의 하나 이상이 참이면, candIntraPredModeX는 [[INTRA_PLANAR]] INTRA_DC 와 동일하게 설정된다.
- 변수availableX는 거짓(FALSE)과 동일하다.
- CuPredMode[ xNbX ][ yNbX ]는 MODE_INTRA와 동일하지 않다.
- intra_mip_flag[ xNbX ][ yNbX ]는 1과 동일하다.
- pred_mode_plt_flag는 1과 동일하다.
- X가 B와 동일하고 yCb - 1는 ( ( yCb >> CtbLog2SizeY ) << CtbLog2SizeY )보다 작다.
- 그렇지 않으면, candIntraPredModeX는 IntraPredModeY[ xNbX ][ yNbX ]와 동일하게 설정된다.
...
변수IntraPredModeY[ x ][ y ])(여기서, x = xCb..xCb + cbWidth - 1 및 y = yCb..yCb + cbHeight - 1)는 IntraPredModeY[ xCb ][ yCb ]와 동일하게 설정된다.
5.19 실시예 #19
Figure pct00119
Figure pct00120
5.20 실시예 #20
Figure pct00121
Figure pct00122
5.21 실시예 #21
Figure pct00123
Figure pct00124
5.22 실시예 #22
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, pred_mode_plt_flag는 pred_mode_ibc_flag 이후에 시그널링된다.
7.3.7.5 코딩 유닛 신택스
Figure pct00125
Figure pct00126
5.23 신택스 #23
Figure pct00127
Figure pct00128
5.24 실시예 #24
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, pred_mode_plt_flag는 pred_mode_ibc_flag 후에 시그널링된다.
7.3.7.5 코딩 유닛 신택스
Figure pct00129
Figure pct00130
5.25 실시예 #25
본 실시예는 코딩 유닛 신택스를 기술한다. 본 실시예에서, 팔레트 신택스는 현재 예측 모드가 MODE_PLT이면 시그널링된다.
7.3.7.5 코딩 유닛 신택스
Figure pct00131
Figure pct00132
5.26 실시예 #26
본 실시예는 색차 인트라 예측 모드의 유도 과정을 기술한다
색차 인트라 예측 모드에 대한 유도 과정
이 과정의 입력들은 아래와 같다.
- 현재 픽처의 좌측 상단 휘도 샘플에 대하여 현재 색차 코딩 블록의 좌측 상단 샘플을 나타내는 위치(xCb, yCb),
- 휘도 샘플들에서 현재 코딩 블록의 폭을 나타내는 변수cbWidth
- 휘도 샘플들에서 현재 코딩 블록의 높이를 나타내는 변수cbHeight
이 과정에서, 색차 인트라 예측 모드IntraPredModeC[ xCb ][ yCb ])가 유도된다.
해당 휘도 인트라 예측 모드lumaIntraPredMode는 다음과 같이 유도된다.
- intra_mip_flag[ xCb ][ yCb ]가 1과 동일하면, lumaIntraPredMode는 INTRA_PLANAR과 동일하게 설정된다.
- 그렇지 않고, CuPredMode[ 0 ][ xCb ][ yCb ]가 MODE_IBC 또는 MODE_PLT 과 동일하면, lumaIntraPredMode는 INTRA_DC과 동일하게 설정된다.
- 그렇지 않으면, lumaIntraPredMode는 IntraPredModeY[ xCb + cbWidth / 2 ][ yCb + cbHeight / 2 ]와 동일하게 설정된다.
...
5.27 실시예 #27
본 실시예는 휘도 샘플들에 대한 맵핑 절차를 갖는 픽처 과정을 기술한다.
휘도 샘플에 대한 맵핑 과정을 갖는 픽처 재구성 과정. 이 과정의 입력은 아래와 같다.
- 현재 픽처의 좌측 상단 샘플에 대하여 현재 블록의 좌측 상단 샘플의 위치( xCurr, yCurr ),
- 블록 폭을 나타내는 변수nCurrSw,
- 블록 높이를 나타내는 변수nCurrSh,
- 현재 블록의 휘도 예측 샘플을 나타내는 (nCurrSw)x(nCurrSh) 어레이predSamples,
- 현재 블록의 휘도 잔차 샘플들을 나타내는 (nCurrSw)x(nCurrSh) 어레이resSamples.
이 과정의 출력은 재구성된 휘도 픽처 샘플 어레이recSamples 이다.
맵핑된 예측 휘도 샘플들predMapSamples의 (nCurrSw)x(nCurrSh) 어레이는 다음과 같이 유도된다.
- 다음의 조건 중의 하나가 참이면, predMapSamples[ i ][ j ]는 predSamples[ i ][ j ]와 동일하게 설정되고, 여기서, i = 0..nCurrSw - 1, j = 0..nCurrSh- 1이다.
- CuPredMode[ 0 ][ xCurr ][ yCurr ]는 MODE_INTRA와 동일하다.
- CuPredMode[ 0 ][ xCurr ][ yCurr ]는 MODE_IBC와 동일하다.
- CuPredMode[ 0 ][ xCurr ][ yCurr ]는 MODE_PLT와 동일하다.
- CuPredMode[ 0 ][ xCurr ][ yCurr ]는 MODE_INTER와 동일하고 ciip_flag[ xCurr ][ yCurr ]는 1과 동일하다.
- 그렇지 않으면(CuPredMode[ 0 ][ xCurr ][ yCurr ]가 MODE_INTER와 동일하고 ciip_flag[ xCurr ][ yCurr ]가 0과 동일하면), 다음이 적용된다.
...
5.28 실시예 #28
본 실시예는 섹션 4의 예 24에 대응하는 예시적인 스캐닝 순서들을 기술한다
이 과정의 입력은 블록 폭blkWidth 및 블록 높이blkHeight이다
이 과정의 출력들은 어레이들hReverScan[ sPos ][ sComp ] 및 vReverScan[ sPos ][ sComp ])이다. 어레이hReverScan은 수평 횡단 스캔 순서를 나타내고, 어레이vReverScan은 수직 횡단 스캔 순서를 나타낸다. 어레이 인덱스sPos는 0 이상이고 ( blkWidth * blkHeight ) - 1 이하의 스캔 위치 범위를 나타낸다. 0과 동일한 어레이 인덱스sComp는 수평 성분을 나타내고, 1과 동일한 어레이 인덱스sComp는 수직 성분을 나타낸다. blkWidth 및 blkHeight의 값에 따라, 어레이hTravScan 및 vTravScan는 다음과 같이 유도된다.
i = 0
for(y = 0; y < blkHeight; y++ )
{
if( y % 2 != 0 ) {
for( x = 0; x < blkWidth; x++ ) {
hReverScan[ i ][ 0 ] = x
hReverScan [ i ][ 1 ] = y
i++
}
}
else
{
for( x = blkWidth - 1; x >= 0; x-- ) {
hReverScan [ i ][ 0 ] = x
hReverScan [ i ][ 1 ] = y
i++
}
}
}
i = 0
for( x = 0; x < blkWidth; x++ )
{
if( x % 2 != 0 )
{
for( y = 0; y < blkHeight; y++ ) {
vReverScan[ i ][ 0 ] = x
vReverScan [ i ][ 1 ] = y
i++
}
}
else
{
for( y = blkHeight - 1; y >= 0; y--) {
vReverScan [ i ][ 0 ] = x
vReverScan [ i ][ 1 ] = y
i++
}
}
}
도 6은 비디오 처리 장치(600)의 블록도이다. 장치(600)은 여기에 기재된 방법들 중의 하나 이상을 구현하는데 사용될 수 있다. 장치(600)은 스마트폰, 태블릿, 컴퓨터, 사물인터넷(IoT: Internet of Things) 수신기 등에서 구현될 수 있다. 장치(600)은 하나 이상의 프로세서(602), 하나 이상의 메모리(604) 및 비디오 처리 하드웨어(606)를 포함할 수 있다. 프로세서(들)(602)는 본 문서에 기재된 하나 이상의 방법들을 구현하도록 구성될 수 있다. 메모리(메모리들)(604)는 여기에 기재된 방법들 및 기술들을 구현하는데 사용되는 데이터 및 코드를 저장하는데 사용될 수 있다. 비디오 처리 하드웨어(606)는 하드웨어 회로에서 본 문서에 기술된 일부 기술들을 구현하는데 사용될 수 있다. 일부 실시예에서, 하드웨어(606)은 프로세서(602) (예를 들어, 그래픽 코프로세서)에 적어도 부분적으로 내장될 수 있다.
도 8은 비디오 처리 방법(800)에 대한 순서도이다. 방법(800)은 팔레트 모드가 변환 유닛, 코딩 블록 또는 영역을 프로세싱하는데 사용될 것임을 결정하는 단계(805) - 팔레트 모드의 사용은 예측 모드와 별도로 코딩됨 - 및 상기 팔레트 모드를 이용하여 상기 변환 유닛, 상기 코딩 블록 또는 상기 영역의 추가의 프로세싱을 수행하는 단계(810)를 포함한다.
방법(800)을 참조하여, 팔레트 모드 코딩 및 그 사용의 일부 예들이 본 문서의 섹션 4에 기재되어 있다.
방법(800)을 참조하여, 비디오 블록은, 팔레트 모드 코딩과 관련된 비트스트림 생성 규칙을 사용함으로써 비트 효율이 달성될 수 있는 비디오 비트스트림에 인코딩될 수 있다.
상기 방법들은, 예측 모드가 팔레트 모드의 사용의 지시 전에 코딩되는 것을 포함할 수 있다.
상기 방법들은, 팔레트 모드의 사용이 예측 모드에 기초하여 조건적으로 시그널링되는 것을 포함할 수 있다.
상기 방법들은, 예측 모드가 인트라 블록 카피 모드이고 팔레트 모드의 사용의 지시의 시그널링이 스킵되는 것을 포함할 수 있다.
상기 방법들은, 현재 예측 모드가 인트라 블록 카피 모드인 것에 기초하여 팔레트 모드의 사용의 지시가 거짓인 것으로 결정되는 것을 포함할 수 있다.
상기 방법들은, 예측 모드가 인터 모드이고 팔레트 모드의 사용의 지시의 시그널링이 스킵되는 것을 포함할 수 있다.
상기 방법들은, 현재 예측 모드가 인터 모드인 것에 기초하여 팔레트 모드의 사용의 지시가 거짓인 것으로 결정되는 것을 포함할 수 있다.
상기 방법들은, 예측 모드가 인트라 모드이고 팔레트 모드의 사용의 지시의 시그널링이 스킵되는 것을 포함할 수 있다.
상기 방법들은, 현재 예측 모드가 인트라 모드인 것에 기초하여 팔레트 모드의 사용의 지시가 거짓인 것으로 결정되는 것을 포함할 수 있다.
상기 방법들은, 예측 모드가 인트라 모드이고 팔레트 모드의 사용의 지시의 시그널링이 스킵되는 것으로 포함할 수 있다.
상기 방법들은, 예측 모드가 인트라 블록 카피 모드이고 팔레트 모드의 사용의 지시의 시그널링이 수행되는 것을 포함할 수 있다.
상기 방법들은, 픽처, 슬라이스 또는 타일 그룹 타입에 기초하여 팔레트 모드의 사용의 지시가 시그널링되는 것을 포함할 수 있다.
상기 방법들은, 팔레트 모드가 예측 모드에 대한 후보로서 추가되는 것을 포함할 수 있다.
상기 방법들은, 인트라 슬라이스들, 인터 슬라이스들, I 픽처들, P 픽처들, B 픽처들 또는 인트라 타일 그룹들에 대하여 예측 모드가 인트라 모드, 인트라 블록 카피 모드 또는 팔레트 모드 중의 하나 이상을 포함하는 것을 포함할 수 있다.
상기 방법들은, 예측 모드가 인트라 모드, 인터 모드, 인트라 블록 카피 모드, 또는 팔레트 모드 중의 2개 이상을 포함하는 것을 포함할 수 있다.
상기 방법들은, 팔레트 모드의 사용이 조건에 기초하여 유도되거나 시그널링을 통해 지시되는 것을 포함할 수 있다.
상기 방법들은, 조건이 현재 블록의 블록 크기, 상기 현재 블록의 예측 모드, 상기 현재 블록의 양자화 파라미터(QP), 주변 블록들의 팔레트 플래그, 주변 블록들의 인트라 블록 카피 플래그, 칼라 포맷의 지시, 개별 또는 듀얼 코딩 트리 구조 또는 슬라이스 타입 또는 그룹 타입 또는 픽처 타입 중 하나 이상을 포함하는 것을 포함할 수 있다.
상기 방법들은, 팔레트 모드의 사용이 슬라이스 레벨 플래그, 타일 그룹 레벨 플래그 또는 픽처 레벨 플래그에 기초하여 시그널링 또는 유도되는 것을 포함할 수 있다.
상기 방법들은, 인트라 블록 카피 모드의 사용의 지시가 슬라이스 레벨 플래그, 타일 그룹 레벨 플래그 또는 픽처 레벨 플래그에 기초하여 시그널링 또는 유도되는 것을 포함할 수 있다.
이전 섹션에 개시된 항목 6 내지 9를 참조하여, 일부 실시예는 바람직하게 다음 솔루션들을 사용할 수 있다.
하나의 솔루션은 비디오 처리 방법을 포함할 수 있으며, 상기 비디오 처리 방법은 비디오의 픽처의 현재 비디오 블록 상기 비디오의 비트스트림 간의 변환을 수행하는 단계를 포함하며, 이때 인트라 블록 카피 모드가 변환에 사용되는지에 관한 정보가 상기 비트스트림 표현에서 시그널링되거나 현재 비디오 블록의 코딩 조건에 기초하여 유도되며, 상기 인트라 블록 카피 모드는 상기 픽처 내의 다른 비디오 블록으로부터 상기 현재 비디오 블록을 코딩하는 것을 포함한다. 다음의 특징들은 다양한 실시예들에서 구현될 수 있다.
- 상기 코딩 조건은 상기 현재 비디오 블록의 블록 크기들을 포함한다.
- 상기 코딩 조건은 상기 현재 비디오 블록의 예측 모드 또는 상기 현재 비디오 블록에 대한 상기 변환에 사용되는 양자화 파라미터를 포함한다.
이전 섹션에 개시된 항목 13 내지 15를 참조하여, 일부 실시예는 바람직하게 다음 솔루션을 구현할 수 있다.
솔루션은 디블록킹 필터가 비디오의 픽처의 현재 비디오 블록의 변환 동안 적용될지를 결정하고 - 상기 현재 비디오 블록이 상기 현재 비디오 블록의 전체 픽셀보다 적은 대표 샘플 값들을 이용하여 표현되는 팔레트 모드 코딩을 이용하여 코딩됨 -; 및 상기 디블록킹 필터가 적용되는 것으로 결정되는 경우 상기 디블록킹 필터가 적용되도록 상기 변환을 수행하기 위한 방법을 포함할 수 있다.
다른 솔루션은 비디오의 픽처의 현재 비디오 블록과 상기 비디오의 비트스트림 표현 간의 변환 동안 사용될 양자화 또는 역양자화 과정을 결정하는 단계-상기 현재 비디오 블록은 상기 현재 비디오 블록의 전체 픽셀보다 적은 대표 샘플 값들을 이용하여 표현되는 팔레트 모드 코딩을 이용하여 코딩됨-및 상기 양자화 또는 역양자화 과정의 결정에 기초하여 상기 변환을 수행하는 단계를 포함하는 비디오 처리 방법을 포함할 수 있다. 추가적인 특징들은 다음을 포함할 수 있다.
- 상기 현재 비디오블록에 대하여 결정된 상기 양자화 또는 역양자화 과정은 상기 팔레트 코딩 모드와 상이하게 코딩된 다른 비디오 블록에 적용된 다른 양자화 또는 다른 역양자화 과정과 다르다.
- 상기 변환은 상기 현재 비디오 블록을 상기 비트스트림 표현으로 인코딩하는 것을 포함한다.
- 상기 변환은 상기 비트스트림 표현을 디코딩하여 상기 비디오의 상기 현재 비디오 블록을 생성하는 것을 포함한다.
- 상기 결정은 인트라 코딩된 다른 비디오 블록의 변환을 위해 사용되는 다른 결정 과정과 동일한 결정 과정을 이용한다.
개시된 기술들은 비디오 인코더들 또는 디코더들에서 구현되어 향상된 코딩 트리 구조들을 이용하여 압축 효율을 개선할 수 있음이 이해될 것이다.
이전 섹션의 항목 16 내지 21을 참조하여, 일부 솔루션들은 다음과 같을 수 있다.
비디오 처리 방법으로서, 다수 비디오 블록들을 포함하는 비디오의 현재 비디오 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 현재 비디오 블록이 팔레트 코딩 블록인 것을 결정하는 단계, 상기 결정에 기초하여, 상기 현재 비디오 블록이 인트라 코딩된 블록인 것으로 간주함으로써 가장 가능성 있는 모드 (MPM: most probable mode)의 리스트 구성 과정를 수행하는 단계, 그리고 상기 리스트 구성 과정의 결과에 기초하여 상기 변환을 수행하는 단계를 포함하고, 상기 팔레트 코딩된 블록은 팔레트 또는 대표 샘플 값들을 이용하여 코딩 또는 디코딩되는, 비디오 처리 방법.
상기 방법에 있어서, 상기 리스트 구성 과정은 주변 팔레트 코딩된 블록을 디폴트 모드를 갖는 인트라 블록으로서 처리하는, 비디오 처리 방법.
비디오 처리 방법으로서, 다수 비디오 블록들을 포함하는 비디오의 현재 비디오 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 현재 비디오 블록이 팔레트 코딩된 블록인 것을 결정하는 단계; 상기 결정에 기초하여 상기 현재 비디오 블록이 비-인트라 코딩된 블록인 것으로 간주함으로써 MPM의 리스트 구성 과정을 수행하는 단계; 및 상기 리스트 구성 단계의 결과에 기초하여 상기 변환을 수행하는 단계를 포함하고, 상기 팔레트 코딩된 블록은 팔레트 또는 대표 샘플 값들을 이용하여 코딩 또는 디코딩되는, 비디오 처리 방법.
상기 방법에 있어서, 상기 리스트 구성 과정은, 주변 팔레트 코딩된 블록의 인트라 모드를 불러올 때, 상기 주변 팔레트 코딩된 블록을 인터 코딩 블록으로서 처리하는, 비디오 처리 방법.
비디오 처리 방법으로서, 다수 비디오 블록들을 포함하는 비디오의 현재 비디오 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 현재 비디오 블록이 팔레트 코딩된 블록임을 결정하는 단계, 상기 결정에 기초하여 상기 현재 비디오 블록이 이용불가능한 블록인 것으로 간주함으로써 리스트 구성 과정을 수행하는 단계 그리고 상기 리스트 구성 과정의 결과에 기초하여 상기 변환을 수행하는 단계를 포함하고, 상기 팔레트 코딩된 블록은 팔레트 또는 대표 샘플 값을 이용하여 코딩 또는 디코딩되는, 비디오 처리 방법.
상기 방법에 있어서, 상기 리스트 구성 과정은 히스토리 기반 모션 벡터 예측을 위한 것인, 비디오 처리 방법.
상기 방법에 있어서, 상기 리스트 구성 과정은 머지 또는 향상된 모션 벡터 예측 모드를 위한 것인, 비디오 처리 방법.
상기 방법들에 있어서, 상기 결정하는 단계는 상기 비디오의 컨텐트에 기초하여 결정하는 단계를 더 포함하는, 비디오 처리 방법.
상기 방법들에 있어서, 상기 결정하는 단계는 상기 비트스트림 표현의 필드에 대응하는, 비디오 처리 방법.
비디오 처리 방법으로서, 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환 동안, 상기 현재 비디오 블록이 팔레트 코딩된 블록임을 결정하는 단계, 현재 비디오 블록이 상기 팔레트 코딩된 블록인 것에 기초하여, 상기 변환에 사용되는 문맥 코딩 빈들의 범위를 결정하는 단계 그리고 상기 문맥 코딩 빈들의 범위에 기초하여 상기 변환을 수행하는 단계를 포함하는, 비디오 처리 방법.
상기 방법에 있어서, 상기 범위 밖에 있는 상기 현재 비디오 블록의 빈들은 상기 변환 동안 바이패스 코딩 기술을 이용하여 코딩되거나 바이패스 디코딩 기술을 이용하여 디코딩되는, 비디오 처리 방법.
상기 방법들에 있어서, 상기 변환은 상기 비디오를 상기 비트스트림 표현으로 인코딩하는 것을 포함하는, 비디오 처리 방법.
상기 방법들에 있어서, 상기 변환은 상기 비트스트림 표현을 디코딩하여 상기 비디오를 생성하는 것을 포함하는, 비디오 처리 방법.
도 24는 여기에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 처리 시스템(2400)을 나타내는 블록도이다. 다양한 구현예들은 시스템(2400)의 구성요소들을 일부 또는 전부를 포함할 수 있다. 시스템(2400)은 비디오 컨텐츠를 수신하는 입력(2402)을 포함할 수 있다. 상기 비디오 컨텐츠는 로우(raw) 또는 압축되지 않은 포맷, 예를 들어 8 또는 10비트 멀티 컴포넌트 픽셀 값들로 수신되거나 압축 또는 인코딩된 포맷일 수 있다. 입력(1902)은 네트워크 인터페이스, 주변 버스 인터페이스 또는 스토리지 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예들로는 이더넷, PON(passive optical network) 등의 유선 인터페이스 및 Wi-Fi 또는 셀룰러 인터페이스 등의 무선 인터페이스를 포함한다.
시스템(2400)은 본 문서에 기술된 다양한 코딩 또는 인코딩 방법들을 구현할 수 있는 코딩 구성요소(2404)를 포함할 수 있다. 코딩 구성요소(2404)는 입력(2402)으로부터의 비디오의 평균 비트레이트를 코딩 구성요소(2404)의 출력으로 감소시켜 상기 비디오의 코딩된 표현을 생성할 수 있다. 그러므로, 코딩 기술은 종종 비디오 압축 또는 비디오 트랜스코딩 기술이라 불리운다. 코딩 구성요소(2404)의 출력은 구성요소 2406로 표현된 바와 같이 연결된 통신을 통해 전송되거나 저장될 수 있다. 입력(2402)에서 수신된 상기 비디오의 저장 또는 통신된 비트스트림(또는 코딩된) 표현은 디스플레이 인터페이스(2410)로 전송된 디스플레이가능한 비디오 또는 픽셀 값들을 생성하기 위한 구성요소(2408)에 의해 사용될 수 있다. 상기 비트스트림 표현으로부터 사용자 시청가능 비디오를 생성하는 과정은 종종 비디오 압축해제라 불리운다. 더욱이, 어떤 비디오 처리 동작들은 "코딩" 동작 또는 툴로 지칭되지만, 코딩 툴 또는 동작들은 인코더에서 사용되고 코딩의 결과를 반전시키는 대응 디코딩 툴 또는 동작들은 디코더에 의해 수행될 것이다.
주변 버스 인터페이스 또는 디스플레이 인터페이스의 예들은 범용 직렬 버스(universal serial bus(USB)) 또는 고해상도 멀티미디어 인터페이스 (high definition multimedia interface (HDMI)) 또는 디스플레이포트 등을 포함할 수 있다. 스토리지 인터페이스의 예들은 SATA(직렬 고급 기술 연결), PCI, IDE 인터페이스 등을 포함한다. 본 문서에서 개시되는 기술들은 이동 전화, 노트북, 스마트폰, 또는 디지털 데이터 처리 및/또는 비디오 디스플레이를 실행할 수 있는 기타 디바이스들과 같은 다양한 전자 디바이스들에서 구현될 수 있다.
도 25는 본 기술에 따른 비디오 처리 방법(2500)을 위한 순서도 표현이다. 방법(2500)은, 동작(2510)에서, 비디오의 비디오 영역의 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다. 상기 비트스트림 표현은 팔레트 모드의 사용의 제1 지시가 상기 블록에 대하여 시그널링되는지를 명시하는 제1 포맷 규칙 및 상기 블록에 대한 예측 모드의 사용의 제2 지시에 대해 상기 제1 지시의 위치를 명시하는 제2 포맷 규칙에 따라 처리된다.
일부 실시예들에서, 상기 비디오 영역은 변환 유닛, 코딩 유닛, 예측 유닛 또는 상기 비디오의 영역을 포함한다. 일부 실시예들에서, 상기 예측 모드의 사용의 상기 제2 지시는 상기 비트스트림 표현에서 상기 팔레트 모드의 사용의 상기 제1 지시에 앞서 위치한다.
일부 실시예들에서, 상기 팔레트 모드의 사용의 상기 제1 지시는 상기 예측 모드의 사용의 상기 제2 지시에 기초하여 상기 비트스트림 표현에 조건적으로 포함된다. 일부 실시예들에서, 상기 팔레트 모드의 사용의 상기 제1 지시는, 상기 예측 모드의 사용의 상기 제2 지시가 인트라 블록 카피(IBC) 예측 모드를 지시하는 경우 상기 비트스트림 표현에서 스킵된다. 일부 실시예들에서, 상기 팔레트 모드의 사용의 상기 제1 지시는, 상기 예측 모드의 사용의 상기 제2 지시가 인터 예측 모드를 지시하는 경우 상기 비트스트림 표현에서 스킵된다. 일부 실시예들에서, 상기 팔레트 모드의 사용의 상기 제1 지시는, 상기 예측 모드의 사용의 상기 제2 지시가 인트라 예측 모드를 지시하는 경우 상기 비트스트림 표현에서 스킵된다. 일부 실시예들에서, 상기 팔레트 모드의 사용의 상기 제1 지시는, 상기 예측 모드의 사용의 상기 제2 지시가 스킵 모드를 지시하는 경우 상기 비트스트림 표현에서 스킵된다. 일부 실시예들에서, 상기 비트스트림 표현에서 상기 팔레트 모드의 사용의 상기 제1 지시를 스킵하는 것은 상기 팔레트 모드가 사용되지 않는다는 것을 지시한다.
일부 실시예들에서, 상기 팔레트 모드의 사용의 상기 제1 지시는, 예측 모드의 사용의 상기 제2 지시가 IBC 예측 모드를 지시하는 경우 상기 비트스트림에 코딩된다. 일부 실시예들에서, 상기 팔레트 모드의 사용의 상기 제1 지시는, 예측 모드의 사용의 상기 제2 지시가 인트라 예측 모드를 지시하는 경우 상기 비트스트림에 코딩된다. 일부 실시예들에서, 상기 예측 모드는 펄스 코드 변조(PCM: Pulse-Code Modulation) 모드가 아니다. 일부 실시예들에서, 상기 팔레트 모드의 사용의 상기 제1 지시는 상기 비트스트림 표현에서 PCM 모드의 사용의 지시 이전에 코딩된다. 일부 실시예들에서, PCM 모드의 사용의 지시는 상기 비트스트림 표현에서 스킵된다. 일부 실시예들에서, 상기 IBC 모드의 지시는 상기 비트스트림 표현에서 코딩된다. 일부 실시예들에서, 인트라 예측 모드가 사용되는 경우, 상기 비트스트림 표현들의 플래그는 상기 팔레트 모드 또는 상기 IBC 모드가 상기 비트스트림 표현에서 시그널링되는지를 지시한다. 일부 실시예들에서, 상기 플래그는 상기 블록의 조건에 기초하여 스킵되고, 상기 조건은 상기 블록의 크기, 상기 IBC 모드가 상기 블록과 연관된 영역에 대하여 활성화되는지 여부 또는 상기 팔레트 모드가 상기 블록과 연관된 영역에 대하여 활성화되는지 여부를 포함한다.
일부 실시예들에서, 상기 팔레트 모드의 사용의 상기 제1 지시는, 예측 모드의 사용의 상기 제2 지시가 인터 예측 모드를 지시하는 경우 상기 비트스트림에 코딩된다. 일부 실시예들에서, 상기 팔레트 모드의 사용의 상기 제1 지시는 스킵 모드의 지시, 상기 예측 모드 또는 PCM 모드의 사용의 지시 중의 적어도 하나 후에 코딩된다. 일부 실시예들에서, 상기 팔레트 모드의 사용의 제1 지시는 스킵 모드의 지시 또는 상기 예측 모드 후에 코딩되거나 PCM 모드의 사용의 지시 전에 코딩된다.
일부 실시예들에서, 상기 팔레트 모드의 사용의 상기 제1 지시는 상기 비트스트림 표현에서 상기 예측 모드의 사용의 상기 제2 지시 전에 위치한다. 일부 실시예들에서, 상기 팔레트 모드의 사용의 상기 제1 지시는 상기 예측 모드의 사용의 상기 제2 지시 후에 위치하고, 상기 예측 모드의 사용의 상기 제2 지시는 상기 비트스트림 표현에서 인트라 또는 인터 예측 모드를 지시한다. 일부 실시예들에서, 상기 팔레트 모드의 사용의 상기 제1 지시는 픽처, 슬라이스 또는 타일 그룹 타입에 기초하여 시그널링된다. 일부 실시예들에서, 상기 팔레트 모드의 사용의 상기 제1 지시는 상기 팔레트 모드가 상기 블록에 대하여 활성화되는 것을 지시하는 제1 플래그를 포함한다. 일부 실시예들에서, 상기 팔레트 모드의 사용의 상기 제1 지시는, 상기 팔레트 모드가 시퀀스 레벨, 픽처 레벨, 타일 그룹 레벨 또는 타일 레벨에서 활성화되는 것을 지시하는 제1 플래그에 기초하여 상기 비트스트림 표현에 조건적으로 포함된다. 일부 실시예들에서, 상기 팔레트 모드가 상기 블록에 대하여 비활성화되는 경우 상기 블록의 PCM 모드를 나타내는 다른 플래그가 상기 비트스트림 표현에 포함된다. 일부 실시예들에서, 상기 제1 플래그는 상기 현재 블록의 하나 이상의 주변 블록들의 정보에 기초하여 문맥 코딩된다. 일부 실시예들에서, 상기 제1 플래그는 상기 현재 블록의 하나 이상의 주변 블록들로부터의 문맥 정보 없이 코딩된다.
일부 실시예들에서, 예측 모드의 사용의 상기 제2 지시는 상기 예측 모드를 나타내는 제2 플래그를 포함한다. 일부 실시예들에서, 상기 비트스트림 표현의 상기 제2 플래그가 상기 예측 모드가 인터 모드인 것을 지시하는 경우, 상기 비트스트림 표현은 인트라 블록 카피 모드가 활성화되는지를 나타내는 제3 플래그를 더 포함한다. 일부 실시예들에서, 상기 비트스트림 표현의 상기 제2 플래그가 상기 예측 모드가 인트라 모드인 것을 지시하는 경우, 상기 비트스트림 표현은 인트라 블록 카피 모드가 활성화되는지를 나타내는 제3 플래그를 더 포함한다. 일부 실시예들에서, 상기 제3 플래그는 상기 블록의 크기에 기초하여 상기 비트스트림 표현에 조건적으로 포함된다.
일부 실시예들에서, 상기 블록은 코딩 유닛이고, 상기 비트스트림 표현의 상기 제2 플래그는 상기 예측 모드가 인트라 모드인 것을 지시한다. 일부 실시예들에서, 상기 제1 플래그는 상기 블록의 크기에 기초하여 상기 비트스트림 표현에 조건적으로 포함된다.
도 26은 본 기술에 따른 비디오 처리 방법(2600)의 순서도 표현이다. 방법(2600)은, 동작(2610)에서, 비디오의 비디오 영역의 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 블록의 적어도 팔레트 모드를 포함하는 하나 이상의 허용된 예측 모드들에 기초하여 예측 모드를 결정하는 단계를 포함한다. 상기 팔레트 모드의 사용의 지시는 상기 예측 모드에 따라 결정된다. 방법(2600)은, 동작(2620)에서, 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
일부 실시예들에서, 상기 하나 이상의 허용된 예측 모드들은 인트라 모드를 포함한다. 일부 실시예들에서, 상기 하나 이상의 허용된 예측 모드들은 인트라 블록 카피(IBC) 모드를 포함한다. 일부 실시예들에서, 상기 하나 이상의 허용된 예측 모드들은 인터 모드를 포함한다.
일부 실시예들에서, 상기 비디오 영역은 인트라 슬라이스, 인트라 픽처 또는 인트라 타일그룹을 포함한다. 일부 실시예들에서, 상기 하나 이상의 허용된 예측 모드들은 상기 인트라 모드, 상기 인트라 블록 카피 모드 및 상기 팔레트 모드를 포함한다.
일부 실시예들에서, 상기 비디오 영역은 인터 슬라이스, 인터 픽처, 인터 타일 그룹, P 슬라이스, B 슬라이스, P 픽처 또는 B 픽처를 포함한다. 일부 실시예들에서, 상기 하나 이상의 허용된 예측 모드들은 상기 인트라 모드, 상기 인트라 블록 카피 모드, 상기 팔레트 모드 및 상기 인터 모드를 포함한다.
일부 실시예들에서, 상기 블록은 4x4의 크기를 갖는다. 일부 실시예들에서, 상기 하나 이상의 허용된 예측 모드들은, 상기 블록이 4x4의 크기를 갖는 경우, 상기 인터 모드를 배제한다.
일부 실시예들에서, 상기 비트스트림 표현은, 상기 블록이 스킵 모드로 코딩되지 않는 경우 상기 하나 이상의 허용된 예측 모드들을 나타내는 적어도 예측 모드 인덱스를 포함하고, 상기 예측 모드 인덱스는 하나 이상의 이진 빈들(bins)을 이용하여 표현된다.
일부 실시예들에서, 상기 예측 모드 인덱스는 3개의 이진 빈들을 이용하여 표현되고, '1'인 제1 빈 값은 인트라 모드를 지시하고, '0'인 제1 빈 값 및 '0'인 제2 빈 값은 인터 모드를 지시하고, '0'인 제1 빈 값, '1'인 제2 빈 값 및 '0'인 제3 빈 값은 IBC 모드를 지시하고, '0'인 제1 빈 값, '1'인 제2 값, 및‘1'인 제3 빈 값은 팔레트 모드를 지시한다.
일부 실시예들에서, 상기 예측 모드 인덱스는 2개의 이진 빈들을 이용하여 표현되고, '1'인 제1 빈 값 및 '0'인 제2 빈 값은 인트라 모드를 지시하고, '0'인 제1 빈 값 및‘0'인 제2 빈 값은 인터 모드를 지시하고, '0'인 제1 빈 값 및 '1'인 제2 빈 값은 IBC 모드를 지시하고, '1'인 제1 빈 값 및‘1'인 제2 빈 값은 팔레트 모드를 지시한다.
일부 실시예들에서, 상기 예측 모드 인덱스는, 상기 비디오의 현재 슬라이스가 인트라 슬라이스이고 IBC 모드가 비활성화되는 경우 하나의 이진 빈을 이용하여 표현되고, '0'인 제1 빈 값은 인트라 모드를 지시하고, '1'인 제2 빈 값은 팔레트 모드를 지시한다.
일부 실시예들에서, 상기 예측 모드 인덱스는, 상기 비디오의 현재 슬라이스가 인트라 슬라이스가 아니고 IBC 모드가 활성화되는 경우 2개의 이진 빈들을 이용하여 표현되고, '1'인 제1 빈 값은 인트라 모드를 지시하고, '0'인 제1 빈 값 및 '0'인 제2 빈 값은 인터 모드를 지시하고, '0'인 제1 빈 값 및 '1'인 제2 빈 값은 팔레트 모드를 지시한다. 일부 실시예들에서, 상기 예측 모드 인덱스는, 상기 비디오의 현재 슬라이스가 인트라 슬라이스이고 IBC 모드가 활성화되는 경우 2개의 이진 빈들을 이용하여 표현되고, '1'인 제1 빈 값은 IBC 모드를 지시하고, '0'인 제1 빈 값 및 '1'인 제2 빈 값은 팔레트 모드를 지시하고, '0'인 제1 빈 값 및 '0'인 제2 빈 값은 인트라 모드를 지시한다. 일부 실시예에서, 상기 IBC 모드의 사용의 상기 지시는 비트스트림 표현의 시퀀스 파라미터 세트(SPS: Sequence Parameter Set)에서 시그널링된다.
일부 실시예들에서, 상기 예측 모드 인덱스는 3개의 이진 빈들을 이용하여 표현되고,
'1'인 제1 빈 값은 인터 모드를 지시하고, '0'인 제1 빈 값 및 '1'인 제2 빈 값은 인트라 모드를 지시하고, '0'인 제1 빈 값, '0'인 제2 빈 값, 및 '1'인 제3 빈 값은 IBC 모드를 지시하고, '0'인 제1 빈 값, '0'인 제2 빈 값, 및 '0'인 제3 빈 값은 팔레트 모드를 지시한다.
일부 실시예들에서, 상기 예측 모드 인덱스는 3개의 이진 빈들을 이용하여 표현되고,
‘1'인 제1 빈 값은 인트라 모드를 지시하고, '0'인 제1 빈 값 및‘1'인 제2 빈 값은 인터 모드를 지시하고, '0'인 제1 빈 값, '0'인 제2 빈 값, 및 '1'인 제3 빈 값은 IBC 모드를 지시하고, '0'인 제1 빈 값, '0'인 제2 빈 값, 및‘0'인 제3 빈 값은 팔레트 모드를 지시한다.
일부 실시예들에서, 상기 예측 모드 인덱스는 3개의 이진 빈들을 이용하여 표현되고, '0'인 제1 빈 값은 인터 모드를 지시하고, '1'인 제1 빈 값 및 '0'인 제2 빈 값은 인트라 모드를 지시하고, '1'인 제1 빈 값, '1'인 제2 빈 값, 및 '1'인 제3 빈 값은 IBC 모드를 지시하고, '1'인 제1 빈 값, '1'인 제2 빈 값, 및‘0'인 제3 빈 값은 팔레트 모드를 지시한다.
일부 실시예들에서, 하나 이상의 이진 빈들 중의 하나의 시그널링은 조건이 만족되는 경우 상기 비스스트림 표현에서 스킵된다. 일부 실시예들에서, 상기 조건은 상기 블록의 크기를 포함한다. 일부 실시예들에서, 상기 조건은 예측 모드가 비활성화되는 것을 포함하고, 상기 예측 모드에 대응하는 이진 빈은 상기 비트스트림 표현에서 스킵된다.
도 27은 본 기술에 따른 비디오 처리 방법(2700)의 순서도 표현이다. 방법(2700)은, 동작(2710)에서, 비디오의 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다. 상기 비트스트림 표현은, 서로 의존적으로 시그널링되는 팔레트 모드의 사용의 제1 지시 및 인트라 블록 카피(IBC) 모드의 사용의 제2 지시를 명시하는 포맷 규칙에 따라 처리된다.
일부 실시예들에서, 상기 포맷 규칙은, 상기 블록의 예측 모드가 IBC 모드가 아닌 제1 예측 모드와 동일한 경우 상기 제1 지시가 상기 비트스트림 표현에서 시그널링되는 것을 명시한다. 일부 실시예들에서, 상기 포맷 규칙은, 상기 블록의 예측 모드가 상기 팔레트 모드가 아닌 제1 예측 모드와 동일한 경우 상기 제2 지시가 상기 비트스트림 표현에서 시그널링되는 것을 명시한다. 일부 실시예들에서, 상기 제1 예측 모드는 인트라 모드이다.
도 28은 본 기술에 따른 비디오 처리 방법(2800)의 순서도 표현이다. 방법(2800)은, 동작(2810)에서, 비디오의 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 블록의 크기에 기초하여 상기 비트스트림 표현에서의 팔레트 모드의 사용의 지시의 존재를 결정하는 단계를 포함한다. 방법(2800)은, 동작(2820)에서, 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
도 29는 본 기술에 따른 비디오 처리 방법(2900)의 순서도 표현이다. 방법(2900)은, 동작(2910)에서, 비디오의 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 블록의 크기에 기초하여 상기 비트스트림 표현에서의 IBC 모드의 사용의 지시의 존재를 결정하는 단계를 포함한다. 방법(2900)은, 동작(2920)에서, 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다. 일부 실시예들에서, 상기 블록의 크기는 상기 블록 내의 샘플들의 수, 상기 블록의 폭 또는 상기 블록의 높이 중의 적어도 하나를 포함한다.
일부 실시예들에서, 상기 블록의 폭이 임계값 보다 작거나 같은 경우 상기 지시가 상기 비트스트림 표현에서 시그널링된다. 일부 실시예들에서, 상기 블록의 높이가 임계값 보다 작거나 같은 경우 상기 지시가 상기 비트스트림 표현에서 시그널링된다. 일부 실시예들에서, 상기 임계값은 64이다.
일부 실시예들에서, 상기 블록의 폭과 높이가 임계값 보다 큰 경우 상기 지시가 상기 비트스트림 표현에서 시그널링된다. 일부 실시예들에서, 임계값은 4이다. 일부 실시예들에서, 상기 블록 내의 샘플들의 수가 임계값 보다 큰 경우 상기 지시가 상기 비트스트림 표현에서 시그널링된다. 일부 실시예들에서, 임계값은 16이다. 일부 실시예들에서, 상기 블록의 폭이 상기 블록의 높이와 동일한 경우 상기 지시가 상기 비트스트림 표현에서 시그널링된다.
일부 실시예들에서, (1) 상기 블록의 폭이 제1 임계값보다 크거나, (2) 상기 블록의 높이가 제2 임계값 보다 크거나 (3) 상기 블록 내의 샘플들의 수가 제3 임계값 보다 작거나 같은 경우, 상기 지시가 상기 비트스트림 표현 내에 존재하지 않는다. 일부 실시예들에서, 상기 제1 임계값 및 상기 제2 임계값은 64이다. 일부 실시예들에서, 상기 제3 임계값은 16이다.
일부 실시예들에서, 상기 결정은 또한 상기 블록과 연관된 특성에 더 기초한다. 일부 실시예들에서, 상기 특성은 상기 블록의 예측 모드를 포함한다. 일부 실시예들에서, 상기 특성은 상기 블록의 양자화 파라미터를 포함한다. 일부 실시예들에서, 상기 특성은 상기 블록의 주변 블록의 팔레트 플래그를 포함한다. 일부 실시예들에서, 상기 특성은 상기 블록의 주변 블록의 IBC 플래그를 포함한다. 일부 실시예들에서, 상기 특성은 상기 블록의 칼라 포맷의 지시를 포함한다. 일부 실시예들에서, 상기 특성은 상기 블록의 코딩 트리 구조를 포함한다. 일부 실시예들에서, 상기 특성은 상기 블록의 슬라이스 그룹 타입, 타일 그룹 타입, 또는 픽처 타입을 포함한다.
도 30은 본 기술에 따른 비디오 처리 방법(3000)의 순서도 표현이다. 방법(3000)은, 동작(3010)에서, 비디오의 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 블록을 포함하는 비디오 영역의 제2 지시에 기초하여 팔레트 모드가 상기 블록에 대하여 허용되는지를 결정하는 단계를 포함한다. 방법(3000)은 또한, 동작(3020)에서, 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
일부 실시예들에서, 상기 비디오 영역은 슬라이스, 타일 그룹 또는 픽처를 포함한다. 일부 실시예들에서, 상기 제2 지시가 분수 모션 벡터차가 활성화되는 것을 지시하는 경우, 상기 비트스트림 표현은 상기 팔레트 모드가 허용되는지 여부에 대한 명시적인 지시를 제외한다. 일부 실시예들에서, 상기 제2 지시는 상기 비트스트림 표현에 존재하는 플래그로서 표현된다. 일부 실시예들에서, 상기 제2 지시는 상기 팔레트 모드가 상기 비디오 영역에 대하여 활성화되는지여부를 지시한다. 일부 실시예들에서, 상기 제2 지시가 상기 팔레트 모드가 상기 비디오 영역에 대하여 비활성화되는 것을 지시하는 경우, 상기 비트스트림 표현은 상기 팔레트 모드가 허용되는지 여부에 대한 명시적인 지시를 제외한다. 일부 실시예들에서, 상기 비트스트림 표현이 상기 팔레트 모드가 허용되는지 여부에 대한 명시적 지시를 제외하는 경우, 상기 팔레트 모드는 상기 블록에 대하여 허용되지 않는다.
도 31은 본 기술에 따른 비디오 처리 방법(3100)의 순서도 표현이다. 방법(3100)은, 동작(3110)에서, 비디오의 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 블록을 포함하는 비디오 영역의 제2 지시에 기초하여 IBC 모드가 상기 블록에 대하여 허용되는지를 결정하는 단계를 포함한다. 방법(3100)은 또한, 동작(3120)에서, 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
일부 실시예들에서, 상기 비디오 영역은 슬라이스, 타일 그룹 또는 픽처를 포함한다. 일부 실시예들에서, 상기 제2 지시가 분수 모션 벡터차가 활성화되는 것을 지시하는 경우, 상기 비트스트림 표현은 IBC 모드가 허용되는지에 대한 명시적인 지시를 제외한다. 일부 실시예들에서, 상기 제2 지시는 상기 비트스트림 표현에 존재하는 플래그로서 표현된다. 일부 실시예들에서, 상기 제2 지시는 상기 IBC 모드가 상기 비디오 영역에 대하여 활성화되는지 여부를 지시한다. 일부 실시예들에서, 상기 제2 지시가 상기 IBC 모드가 상기 비디오 영역에 대하여 비활성화되는 것을 나타내는 경우, 상기 비트스트림 표현은 상기 IBC 모드가 허용되는지 여부에 대한 명시적인 지시를 제외한다. 일부 실시예들에서, 상기 비트스트림 표현이 상기 IBC 모드가 허용되는지 여부에 대한 명시적 지시를 제외하는 경우, 상기 IBC 모드는 상기 블록에 대하여 허용되지 않는다.
도 32는 본 기술에 따른 비디오 처리 방법(3200)의 순서도 표현이다. 방법(3200)은, 동작(3210)에서, 비디오의 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해, 팔레트 모드에서의 팔레트 엔트리와 관련된 제1 샘플의 제1 비트 뎁스를 결정하는 단계를 포함한다. 상기 제1 비트 뎁스는 상기 블록과 관련된 제2 비트 뎁스와 상이하다. 방법(3200)은 또한, 동작(3220)에서, 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
일부 실시예들에서, 상기 제2 비트 뎁스는 상기 블록에 대한 초기 비트 뎁스를 포함한다. 일부 실시예들에서, 상기 제2 비트 뎁스는 상기 블록의 원본 샘플과 관련된 비트 뎁스를 포함한다. 일부 실시예들에서, 상기 제2 비트 뎁스는 상기 블록의 재구성된 샘플과 관련된 비트 뎁스를 포함한다. 일부 실시예들에서, 상기 제1 비트 뎁스는 양의 정수이다. 일부 실시예들에서, 상기 제1 비트 뎁스는 8과 같다. 일부 실시예들에서, 상기 제1 비트 뎁스는 상기 제2 비트 뎁스 보다 크다. 일부 실시예들에서, 상기 제1 비트 뎁스는 상기 제2 비트 뎁스 보다 작다. 일부 실시예들에서, 상기 제1 비트 뎁스는 상기 블록의 크기에 기초하여 결정된다. 일부 실시예들에서, 상기 제1 비트 뎁스는 상기 블록의 양자화 파라미터에 기초하여 결정된다. 일부 실시예들에서, 상기 제1 비트 뎁스는 상기 블록의 칼라 포맷의 지시에 기초하여 결정된다. 일부 실시예들에서, 상기 제1 비트 뎁스는 상기 블록의 코딩 트리 구조에 기초하여 결정된다. 일부 실시예들에서, 상기 제1 비트 뎁스는 상기 블록의 슬라이스 그룹 타입, 타일 그룹 타입 또는 픽처 타입에 기초하여 결정된다.
일부 실시예들에서, 상기 제1 비트 뎁스는 상기 블록과 관련된 팔레트 엔트리들의 수에 기초하여 결정된다. 일부 실시예들에서, 상기 제1 비트 뎁스는 상기 블록과 관련된 팔레트 예측자 내의 엔트리들의 수에 기초하여 결정된다. 일부 실시예들에서, 상기 제1 비트 뎁스는 상기 블록의 칼라 구성요소의 하나 이상의 인덱스들에 기초하여 결정된다.
일부 실시예들에서, 제2 샘플은 상기 팔레트 모드의 다른 팔레트 엔트리와 관련되며, 상기 제2 샘플은 상기 제1 비트 뎁스와는 다른 제3 비트 뎁스를 가진다. 일부 실시예들에서, 상기 제3 비트 뎁스는 상기 제2 비트 뎁스 보다 크다. 일부 실시예들에서, 상기 제3 비트 뎁스는 상기 제2 비트 뎁스 보다 작다.
일부 실시예들에서, 상기 블록의 제3 샘플은 M개의 비트들로 상기 제1 샘플의 값을 시프팅하는 것에 기초하여 재구성되며, M은 양의 정수이다. 일부 실시예들에서, 상기 제1 샘플의 값을 시프팅하는 것은 M개의 비트들로 상기 제1 샘플을 좌측 시프팅하는 것을 포함한다. 일부 실시예들에서, 상기 제1 샘플은 C 값을 가지며, 상기 재구성된 제2 샘플은 (C<<M) + (1<<(M-1)) 값을 가진다. 일부 실시예들에서, 상기 제1 샘플의 값을 시프팅하는 것은 M개의 비트들로 상기 제1 샘플을 우측 시프팅하는 것을 포함한다. 일부 실시예들에서, 상기 제1 샘플은 C 값을 가지며, 상기 재구성된 제2 샘플은 (C + (1 << (M-1))) >> M에 기초하여 결정된 값을 가지며, 상기 값은 최소 값 0와 최대 값 (1<<N)-1에 의해 제한된다. 일부 실시예들에서, M은 상기 제1 비트 뎁스와 상기 제2 비트 뎁스 사이의 차이에 기초하여 결정된다. 일부 실시예들에서, M은 상기 제2 비트 뎁스에서 상기 제1 비트 뎁스를 뺀 것과 같다. 일부 실시예들에서, M은 상기 제1 비트 뎁스에서 상기 제2 비트 뎁스를 뺀 것과 같다. 일부 실시예들에서, M은 2와 같다. 일부 실시예들에서, M은 상기 블록의 크기에 기초하여 결정된다. 일부 실시예들에서, M은 상기 블록의 양자화 파라미터에 기초하여 결정된다. 일부 실시예들에서, M은 상기 블록의 칼라 포맷의 지시에 기초하여 결정된다. 일부 실시예들에서, M은 상기 블록의 코딩 트리 구조에 기초하여 결정된다. 일부 실시예들에서, M은 상기 블록의 슬라이스 그룹 타입, 타일 그룹 타입 또는 픽처 타입에 기초하여 결정된다. 일부 실시예들에서, M은 상기 블록과 관련된 팔레트 엔트리들의 수에 기초하여 결정된다. 일부 실시예들에서, M은 상기 블록과 관련된 예측 팔레트 엔트리들의 수에 기초하여 결정된다. 일부 실시예들에서, M은 상기 블록에서 상기 제1 샘플 및 상기 제3 샘플의 위치에 기초하여 결정된다. 일부 실시예들에서, M은 상기 블록의 칼라 구성요소의 인덱스에 기초하여 결정된다.
일부 실시예들에서, 상기 방법은 샘플들의 테이블에 수행되는 룩업(look-up) 동작에 기초하는 상기 팔레트 엔트리와 관련된 제1 샘플을 결정하는 단계를 포함한다. 일부 실시예들에서, 샘플들의 상기 테이블의 값들은 상기 비트스트림 표현에서 시퀀스 파라미터 세트(SPS: Sequence Parameter Set), 비디오 파라미터 세트(VPS: Video Parameter Set), 픽처 파라미터 세트(PPS: Picture Parameter Set), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU: Largest Coding Unit)의 행, 또는 LCU들의 그룹에서 시그널링된다. 일부 실시예들에서, 샘플들의 상기 표의 값들은 상기 비트스트림 표현에서 시퀀스 파라미터 세트(SPS: Sequence Parameter Set), 비디오 파라미터 세트(VPS: Video Parameter Set), 픽처 파라미터 세트(PPS: Picture Parameter Set), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU: Largest Coding Unit)의 행, 또는 LCU들의 그룹에서의 정보에 기초하여 유도된다.
도 33은 본 기술에 따른 비디오 처리 방법(3300)의 순서도 표현이다. 방법(3300)은, 동작(3310)에서, 비디오의 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해, 팔레트 모드로 코딩된 상기 현재 블록의 주변 블록이, 상기 주변 블록이 상기 현재 블록의 상단 또는 좌측에 위치하는 경우, 상기 현재 블록의 가장 가능성 있는 모드(MPM: most probable modes) 후보들의 리스트를 구성하는 동안 디폴트 모드를 가지는 인트라 코딩된 블록으로 처리됨을 결정하는 단계를 포함한다. 방법(3300)은, 동작(3320)에서, 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
일부 실시예들에서, 상기 디폴트 모드는 플래너 모드를 포함한다. 일부 실시예들에서, 상기 디폴트 모드는 DC 모드, 수직 모드 또는 수평 모드를 포함한다. 일부 실시예들에서, 상기 디폴트 모드는 상기 비트스트림 표현에서 종속 파라미터 세트, 시퀀스 파라미터 세트, 비디오 파라미터 세트, 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU), 코딩 유닛(CU), LCU 행, LCU들의 그룹, 변환 유닛(TU), 예측 유닛(PU) 블록 또는 비디오 코딩 유닛에서 시그널링된다.
도 34는 본 기술에 따른 비디오 처리 방법(3400)의 순서도 표현이다. 방법(3400)은, 동작(3410)에서, 비디오의 비트스트림 표현에서 팔레트 모드로 코딩된 블록으로 코딩되는 상기 비디오의 블록에 대해, 규칙에 따른 디블로킹 필터링을 위한 파라미터를 결정하는 단계를 포함한다. 방법(3400)은 또한, 동작(3420)에서, 디블로킹 필터링을 위한 상기 파라미터를 사용하여 상기 블록과 상기 블록의 상기 비트스트림 간의 변환을 수행하는 단계를 포함한다.
일부 실시예들에서, 상기 규칙은, 디블로킹 필터링을 위한 상기 파라미터를 결정하는 상기 단계를 위해, 상기 블록이 상기 비디오의 인트라 코딩된 블록으로 처리됨을 명시한다.
일부 실시예들에서, 상기 블록의 경계의 제1 측면(side) 또는 상기 블록의 상기 경계의 제2 측면이 상기 팔레트 모드로 코딩되는 경우, 상기 디블로킹 필터링에 대한 경계 강도는 2이다. 일부 실시예들에서, 상기 블록의 경계의 제1 측면 및 상기 블록의 상기 경계의 제2 측면이 상기 팔레트 모드로 코딩되는 경우, 상기 디블로킹 필터링에 대한 경계 강도는 2로 결정된다. 일부 실시예들에서, 상기 규칙은, 디블로킹 필터링을 위한 상기 파라미터를 결정하는 상기 단계를 위해, 상기 블록이 상기 비디오의 인터 코딩된 블록으로 처리됨을 명시한다.
일부 실시예들에서, 상기 규칙은, 디블로킹 필터링을 위한 상기 파라미터를 결정하는 상기 단계를 위해, 상기 팔레트 모드가 상기 디블로킹 필터링에서의 다른 모드들과 별개로 처리됨을 명시한다. 일부 실시예들에서, 상기 블록의 경계의 제1 측면이 또는 상기 블록의 상기 경계의 제2 측면이 상기 팔레트 모드로 코딩되는 경우, 상기 디블로킹 필터링에 대한 경계 강도는 0으로 결정된다. 일부 실시예들에서, 상기 블록의 경계의 제1 측면이 상기 팔레트 모드로 코딩되고 상기 블록의 상기 경계의 제2 측면이 인트라 블록 카피(IBC) 모드로 코딩되는 경우, 상기 디블로킹 필터링에 대한 경계 강도는 1이다. 일부 실시예들에서, 상기 블록의 경계의 제1 측면이 상기 팔레트 모드로 코딩되고 상기 블록의 상기 경계의 제2 측면이 인트라 모드로 코딩되는 경우, 상기 디블로킹 필터링에 대한 경계 강도는 2이다.
일부 실시예들에서, 상기 규칙은, 디블로킹 필터링을 위한 상기 파라미터를 결정하는 상기 단계를 위해, 상기 팔레트 모드가 상기 디블로킹 필터링에서 변환 스킵 모드로 처리됨을 명시한다. 일부 실시예들에서, 상기 규칙은, 디블로킹 필터링을 위한 상기 파라미터를 결정하는 상기 단계를 위해, 상기 팔레트 모드가 상기 디블로킹 필터링에서 블록 기반 델타 펄스 코드 변조(BDPCM) 모드로 처리됨을 명시한다.
도 35는 본 기술에 따른 비디오 처리 방법(3500)의 순서도 표현이다. 방법(3500)은, 동작(3510)에서, 비디오의 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해, 팔레트 모드로 코딩된 상기 현재 블록의 주변 블록이 상기 현재 블록의 가장 가능성 있는 모드(MPM) 후보들의 리스트를 구성하는 동안 비(non) 인트라 코딩된 블록으로 처리되는 것으로 결정하는 단계를 포함한다. 또한, 방법(3500)은, 동작(3520)에서, 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
일부 실시예들에서, 상기 주변 블록이 상기 현재 블록의 상단 또는 좌측에 위치하는 경우 인터 코딩된 블록으로 처리된다. 일부 실시예들에서, 상기 주변 블록이 상기 현재 블록의 상단 또는 좌측에 위치하는 경우 인트라 블록 카피(IBC) 코딩된 블록으로 처리된다.
도 36a는 본 기술에 따른 비디오 처리 방법(3600)의 순서도 표현이다. 방법(3600)은, 동작(3610)에서, 비디오의 블록에 대해, 상기 비디오와 관련된 양자화 파라미터를 결정하는 단계를 포함한다. 방법(3600)은, 동작(3620)에서, 상기 비디오의 상기 블록을 상기 양자화 파라미터의 수정된 값에 부분적으로 기초하여 팔레트 코딩된 블록으로서 상기 비디오의 비트스트림 표현으로 코딩하는 단계를 포함한다. 또한, 상기 방법은, 동작(3630)에서, 상기 양자화 파라미터와 관련되는 코딩된 정보를 상기 비트스트림 표현에서 시그널링하는 단계를 포함한다.
도 36b는 본 기술에 따른 비디오 처리 방법(3650)의 순서도 표현이다. 방법(3650)은, 동작(3660)에서, 비디오의 비트스트림 표현에 기초하여 양자화 파라미터를 유도하는 과정을 포함한다. 또한, 방법(3650)은, 동작(3670)에서, 상기 양자화 파라미터를 수정하여 결정된 수정된 양자화 파라미터에 부분적으로 기초하여 팔레트 코딩된 블록을 디코딩하는 단계를 포함한다.
일부 실시예들에서, 상기 양자화 파라미터는 상기 양자화 파라미터에 대한 상한(highest limit)을 설정하는 것에 기초하여 수정될 수 있다. 일부 실시예들에서, 상기 양자화 파라미터는 상기 양자화 파라미터에 대한 하한(lowest limit)을 설정하는 것에 기초하여 수정될 수 있다. 일부 실시예들에서, 상기 양자화 파라미터는 변환 스킵 모드에서 코딩된 블록과 관련된 제2 양자화 파라미터와 같은 방식으로 수정된다. 일부 실시예들에서, 상기 양자화 파라미터는 블록 기반 델타 펄스 코드 변조(BDPCM) 모드에서 코딩된 블록과 관련된 제3 양자화 파라미터와 같은 방식으로 수정된다.
일부 실시예들에서, 상기 양자화 파라미터는 Qp로 표시되며, 상기 양자화 파라미터를 수정하는 단계는 Qp의 값을 max (Qp, 4+T)가 되도록 변경하는 것을 포함하며, T는 비-음의 정수 값이다. 일부 실시예들에서, T는 미리 정의된 임계값에 기반한다. 일부 실시예들에서, T는 4 + Ts이며, Ts는 상기 비트스트림 표현에서 시그널링된다. 일부 실시예들에서, Ts는 상기 비트스트림 표현에서 신택스 요소 min_qp_prime_ts_ minus4에서 시그널링된다.
도 37은 본 기술에 따른 비디오 처리 방법(3700)의 순서도 표현이다. 방법(3700)은, 동작(3710)에서, 비디오의 비트스트림 표현에서 팔레트 코딩된 블록으로 코딩된 상기 비디오의 블록에 대해, 바이패스 모드가 상기 블록에 대해 활성화되는지 여부와 무관하게 상기 비트스트림 표현에서 이스케이프 샘플의 표현을 결정하는 단계를 포함한다. 또한, 방법(3700)은, 동작(3720)에서, 상기 결정에 기초하여 상기 블록과 상기 비트스트림간의 변환을 수행하는 단계를 포함한다.
일부 실시예들에서, 상기 이스케이프 샘플은 고정된 길이를 사용하여 상기 비트스트림 표현에서 표현된다. 일부 실시예들에서, 상기 고정된 길이는 N개의 비트들을 포함하며, N은 양의 정수이다. 일부 실시예들에서, N은 8 또는 10이다.
일부 실시예들에서, 상기 이스케이프 샘플은 상기 블록의 내적(internal) 비트 뎁스에 기초하여 결정된 길이를 사용하여 상기 비트스트림 표현에서 표현된다. 일부 실시예들에서, 상기 이스케이프 샘플은 상기 블록의 입력 비트 뎁스에 기초하여 결정된 길이를 사용하여 상기 비트스트림 표현에서 표현된다. 일부 실시예들에서, 상기 이스케이프 샘플은 상기 블록의 양자화 파라미터에 기초하여 결정된 길이를 사용하여 상기 비트스트림 표현에서 표현된다. 일부 실시예들에서, 상기 길이는 f(Qp)로 표시되는 상기 양자화 파라미터의 함수로 정의된다. 일부 실시예들에서, 상기 블록의 내적 비트 뎁스는 d이고, f(Qp) = (d - (Qp-4)/6)이다.
도 38은 본 기술에 따른 비디오 처리 방법(3800)의 순서도 표현이다. 방법(3800)은, 동작(3810)에서, 비디오의 비트스트림 표현에서 팔레트 코딩된 블록으로 코딩된 상기 비디오의 블록에 대해, 제1 양자화 과정을 결정하는 단계를 포함한다. 상기 제1 양자화 과정은 비-팔레트 모드 코딩된 블록에 적용가능한 제2 양자화 과정과는 상이하다. 방법(3800)는 또한, 동작(3820)에서, 상기 결정에 기초하여 상기 블록과 상기 비트스트림간의 변환을 수행하는 단계를 포함한다.
일부 실시예들에서, 상기 제1 양자화 과정은 상기 블록의 이스케이프 샘플을 양자화하기 위해 상기 이스케이프 샘플을 우측 비트 시프팅하는 단계를 포함한다. 일부 실시예들에서, 상기 제1 양자화 과정은 상기 블록의 이스케이프 샘플을 역양자화하기 위해 상기 이스케이프 샘플을 좌측 비트 시프팅하는 단계를 포함한다. 일부 실시예들에서, 샘플은 p로 표시되며, 양자화 샘플은 Qp로 표시되며, 상기 이스케이프 샘플의 값은 f(p, Qp)로 표시되는 p와 Qp의 함수로 코딩된다. 일부 실시예들에서, f(p, Qp) = p >> ((Qp-4)/6)이다. 일부 실시예들에서, 샘플은 p로 표시되며, 상기 이스케이프 샘플의 값은 p>>N으로 코딩되고, N은 정수이다. 일부 실시예들에서, N은 2이다. 일부 실시예들에서, N은 상기 블록과 관련된 특징에 기초하여 결정된다.
일부 실시예들에서, 상기 특징은 시퀀스 파라미터 세트, 비디오 파라미터 세트, 픽처 파라미터 세트(PPS), 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU)의 행, 또는 LCU들의 그룹에서 시그널링되는 값을 포함한다. 일부 실시예들에서, 상기 특징은 상기 블록의 내적 비트 뎁스를 포함한다. 일부 실시예들에서, 상기 특징은 상기 블록의 입력 비트 뎁스를 포함한다. 일부 실시예들에서, 상기 특징은 상기 블록의 크기를 포함한다. 일부 실시예들에서, 상기 특징은 상기 블록의 양자화 파라미터를 포함한다. 일부 실시예들에서, 상기 특징은 상기 블록의 칼라 포맷의 지시를 포함한다. 일부 실시예들에서, 상기 특징은 상기 블록의 코딩 트리 구조를 포함한다. 일부 실시예들에서, 상기 특징은 상기 블록과 관련된 슬라이스 타입, 타일 그룹 타입, 또는 픽처 타입을 포함한다.
일부 실시예들에서, 샘플은 p로 표시되며, 상기 블록과 관련된 비트 뎁스는 bd로 표시되고, 양자화 샘플은 Qp로 표시되고, 상기 이스케이프 샘플의 값은 f(bd, p, Qp)로 표시되는 bd, p 및 Qp의 함수로 시그널링된다. 일부 실시예들에서, f(bd, p, Qp) = clip (0, (1<<(bd-(Qp-4)/6))-1, (p + (1<<(bd-1)))>>((Qp-4)/6))이다. 일부 실시예들에서, f(bd, p, Qp) = clip(0, (1<<bd)-1, p<<((Qp-4)/6))이다. 일부 실시예들에서, 클립은 clip(a, i, b) = (i < a ? a : (i > b ? b : i))로 정의된다. 일부 실시예들에서, 클립은 clip(a, i, b) = (i <= a ? a : (i >= b ? b : i))로 정의된다. 일부 실시예들에서, 상기 비트 뎁스는 내적 비트 뎁스 또는 입력 비트 뎁스를 포함한다.
도 39은 본 기술에 따른 비디오 처리 방법(3900)의 순서도 표현이다. 방법(3900)은, 동작(3910)에서, 휘도 블록들 및 해당 색차 블록들을 포함하는 비디오와 상기 비디오의 비트스트림 표현 간의 변환을 규칙에 따라 수행하는 단계를 포함한다. 상기 규칙은, 현재 휘도 블록이 팔레트 코딩 모드를 사용하여 코딩되고 해당 현재 색차 블록이 유도된 모드로 코딩되는 경우에 대해, 상기 현재 휘도 블록이 디폴트 인트라 예측 모드를 가지는 것으로 처리되고 상기 현재 색차 블록이 상기 디폴트 인트라 예측 모드로 코딩된다고 명시한다. 상기 팔레트 코딩 모드는 상기 현재 휘도 블록을 대표 샘플 값들의 팔레트를 사용하여 코딩하는 단계를 포함한다.
일부 실시예들에서, 상기 팔레트 코딩 모드를 사용하여 코딩된 상기 현재 휘도 블록은 인트라 블록으로 처리된다. 일부 실시예들에서, 상기 팔레트 코딩 모드를 사용하여 코딩된 상기 현재 휘도 블록은 팔레트 블록으로 처리된다. 일부 실시예들에서, 상기 디폴트 인트라 예측 모드는 DC 모드, 플래너 모드, 수직 모드 또는 수평 모드를 포함한다. 일부 실시예들에서, 상기 디폴트 인트라 예측 모드는 임의의 인트라 예측 모드를 포함한다. 일부 실시예들에서, 상기 디폴트 인트라 예측 모드는 종속 파라미터 세트, 시퀀스 파라미터 세트, 비디오 파라미터 세트, 픽처 파라미터 세트, 적응 파라미터 세트, 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU), 코딩 유닛(CU), LCU 행, LCU들의 그룹, 변환 유닛(TU), 예측 유닛(PU) 블록 또는 비디오 코딩 유닛에서 시그널링된다.
도 40은 본 기술에 따른 비디오 처리 방법(4000)의 순서도 표현이다. 방법(4000)은, 동작(4010)에서, 하나 이상의 블록들을 포함하는 비디오와 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다. 상기 변환을 위해, 모션 후보들의 리스트가 각 블록에 대해 규칙에 따라 구성된다. 상기 규칙은 팔레트 코딩 모드를 사용하여 코딩되는 블록의 모션 정보가 연속적인 블록들을 코딩하는 데에 이용할 수 없거나 무효한 것으로 처리됨을 명시한다.
일부 실시예들에서, 모션 후보들의 상기 리스트는 히스토리 기반 모션 벡터 예측 후보 리스트를 포함한다. 일부 실시예들에서, 모션 후보들의 상기 리스트는 머지 후보 리스트를 포함한다. 일부 실시예들에서, 모션 후보들의 상기 리스트는 모션 벡터 예측 후보를 포함한다.
일부 실시예들에서, 상기 블록은 무효한 참조 인덱스를 가지는 것으로 처리된다. 일부 실시예들에서, 상기 블록은 0의 참조 인덱스를 가지는 것으로 처리된다. 일부 실시예들에서, 상기 블록은 제로-모션 벡터를 가지는 것으로 처리된다.
일부 실시예들에서, 상기 규칙이 적용가능한지여부는 상기 블록과 관련된 특징에 기반한다. 일부 실시예들에서, 상기 특징은 상기 블록 내의 비디오 콘텐트를 포함한다. 일부 실시예들에서, 상기 특징은 종속 파라미터 세트, 시퀀스 파라미터 세트, 비디오 파라미터 세트, 픽처 파라미터 세트, 적응 파라미터 세트, 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU), 코딩 유닛(CU), LCU 행, LCU들의 그룹, 변환 유닛(TU), 예측 유닛(PU) 블록 또는 상기 블록과 관련되는 비디오 코딩 유닛에서 시그널링되는 메시지를 포함한다. 일부 실시예들에서, 상기 특징은 상기 블록과 관련된 비디오 영역의 위치를 포함하며, 상기 비디오 영역은 CU, PU, TU 또는 비디오 코딩 유닛을 포함한다. 일부 실시예들에서, 상기 특징은 상기 블록 또는 주변 블록의 크기를 포함한다. 일부 실시예들에서, 상기 특징은 상기 블록 또는 주변 블록의 모양을 포함한다. 일부 실시예들에서, 상기 특징은 상기 블록의 코딩 트리 구조를 포함한다. 일부 실시예들에서, 상기 특징은 슬라이스 타입, 타일 그룹 타입, 또는 픽처 타입을 포함한다. 일부 실시예들에서, 상기 특징은 상기 블록의 칼라 구성요소를 포함한다. 일부 실시예들에서, 상기 특징은 상기 블록의 시간적 레이어 식별자를 포함한다.
도 41은 본 기술에 따른 비디오 처리 방법(4100)의 순서도 표현이다. 방법(4100)은, 동작(4110)에서, 비디오의 비트스트림 표현에서 팔레트 모드 코딩된 블록으로 코딩된 상기 비디오의 블록에 대해, 규칙에 기반하여 상기 블록의 문맥 코딩된 빈들(bins)의 수를 결정하는 단계를 포함한다. 또한, 방법(4100)은, 동작(4120)에서, 상기 결정에 기초하여 상기 비디오의 상기 블록과 상기 비디오의 상기 비트스트림 간의 변환을 수행하는 단계를 포함한다.
일부 실시예들에서, 상기 문맥 코딩된 빈들의 수를 결정하는 단계는 상기 블록에 카운터를 할당하여 상기 문맥 코딩된 빈들의 수를 추적하는 단계를 포함한다. 일부 실시예들에서, 상기 카운터는 상기 블록에서 코딩될 구성요소들의 수를 추적하기 위한 카운터를 포함한다. 일부 실시예들에서, 상기 카운터는 0으로 초기화되고, 문맥 코딩을 사용하여 코딩된 각각의 빈에 대해 하나씩 증가한다. 일부 실시예들에서, 상기 카운터는 N으로 초기화되며, N은 양의 정수이다. 상기 카운터는 문맥 코딩을 사용하여 코딩된 각각의 빈에 대해 하나씩 감소한다.
일부 실시예들에서, 상기 규칙은 임계값을 명시하고, 상기 방법은 상기 임계값을 초과하거나 미달하는 빈들의 추가적인 수에 바이패스 코딩을 적용하는 단계를 더 포함한다. 일부 실시예들에서, 상기 임계값은 0 또는 1이다. 일부 실시예들에서, 상기 임계값은 상기 블록 또는 상기 블록의 디코딩된 정보에 대한 코딩 패스들의 수에 기초하여 결정된다.
일부 실시예들에서, 상기 임계값은 트랜스포트 스트림(TS: transport stream) 코딩된 블록들 또는 비-TS 코딩된 블록들에 대한 문맥 코딩된 빈들의 수와 관련한 제2 임계값에 기초하여 결정된다. 일부 실시예들에서, 상기 제2 임계값은 T로 표기되며, T는 양의 수이다. 상기 규칙은 상기 임계값이 WХHХT이고, W는 상기 블록의 폭, H는 상기 블록의 높이임을 명시한다. 일부 실시예들에서, 상기 제2 임계값은 T로 표기되며, T는 양의 수이다. 상기 규칙은 상기 임계값이 WХHХCХT이고, W는 상기 블록의 폭, H는 상기 블록의 높이, 그리고 C는 상기 블록에서 코딩될 칼라 구성요소들의 수임을 명시한다. 일부 실시예들에서, T는 1.75 또는 2이다. 일부 실시예들에서, 상기 임계값은 상기 제2 임계값 보다 작다. 일부 실시예들에서, 상기 임계값은 상기 제2 임계값 보다 크다.
도 42는 본 기술에 따른 비디오 처리 방법(4200)의 순서도 표현이다. 방법(4200)은, 동작(4210)에서, 비디오의 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해, 인터 인트라 결합 예측 모드에 대한 상기 현재 블록의 인트라 코딩된 주변 블록들의 수를 규칙에 따라 결정하는 단계를 포함한다. 상기 규칙은 상기 인터 인트라 결합 예측 모드에 대해 상기 인트라 코딩된 주변 블록들의 수를 카운팅함에 있어 팔레트 코딩 모드를 사용하여 코딩된 블록을 처리하는 방식을 명시하며, 상기 팔레트 코딩 모드를 사용하는 것은 대표 샘플 값들의 팔레트를 사용하여 블록을 코딩하는 것을 포함한다. 또한, 방법(4200)은, 동작(4220)에서, 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
일부 실시예들에서, 상기 방식은 상기 팔레트 코딩 모드를 사용하여 코딩된 블록이 비-인트라 코딩된 블록으로 처리되어 상기 인트라 코딩된 주변 블록들의 수를 카운팅하는 것으로부터 배제됨을 명시한다. 일부 실시예들에서, 상기 팔레트 코딩 모드를 사용하여 코딩된 상기 블록은 MODE_PLT의 예측 모드를 가지는 블록으로 처리된다. 일부 실시예들에서, 상기 팔레트 코딩 모드를 사용하여 코딩된 상기 블록은 인터 코딩된 블록으로 처리된다. 일부 실시예들에서, 상기 팔레트 코딩 모드를 사용하여 코딩된 상기 블록은 상기 현재 블록이 상기 현재 블록의 현재 픽처의 샘플들로 코딩되는 인트라 블록 카피(IBC) 코딩 모드로 코딩된 블록으로 처리된다. 일부 실시예들에서, 상기 팔레트 코딩 모드를 사용하여 코딩된 상기 블록은 상기 현재 블록 상단 또는 상기 현재 블록 좌측의 주변 블록이다.
일부 실시예들에서, 상기 방식은 상기 팔레트 코딩 모드를 사용하여 코딩된 블록이 인트라 코딩된 블록으로 처리되어 상기 인트라 코딩된 주변 블록들의 카운팅에 포함되어야 함을 명시한다.
도 43은 본 기술에 따른 비디오 처리 방법(4300)의 순서도 표현이다. 방법(4300)은, 동작(4310)에서, 비디오의 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해, 필터링 과정에서 상기 현재 블록의 샘플에 대해 동작이 스킵됨을 결정하는 단계를 포함한다. 상기 샘플은 팔레트 코딩 모드를 사용하여 코딩되며, 상기 팔레트 코딩 모드를 사용하는 것은 대표 샘플 값들의 팔레트를 사용하여 블록을 코딩하는 것을 포함한다. 또한, 방법(4300)은, 동작(4320)에서, 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
일부 실시예들에서, 상기 동작은 상기 현재 블록의 하나 이상의 경계들을 매끄럽게 하는(smooths) 디블로킹 동작을 포함한다. 일부 실시예들에서, 상기 동작은 샘플들이 왜곡을 줄이기 위해 분류되는 샘플 적응적 오프셋 과정에서 오프셋을 보상하는 단계를 포함한다. 일부 실시예들에서, 상기 동작은 적응적 루프 필터링 과정에서의 필터링 동작을 포함한다. 일부 실시예들에서, 상기 동작은 적응적 루프 필터링 과정에서의 분류 동작을 포함한다. 일부 실시예들에서, 상기 동작은, 휘도 샘플들이 적응적 조각별(piecewise) 선형 모델을 사용하여 매핑되고 색차 샘플들이 휘도 종속적인 색차 잔차 스케일링 동작으로 처리되는, 휘도 매핑 및 색차 스케일링 동작을 포함한다.
도 44는 본 기술에 따른 비디오 처리 방법(4400)의 순서도 표현이다. 방법(4400)은, 동작(4410)에서, 비디오의 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해, 3개 이상의 스캐닝 순서들로부터 선택된 스캐닝 순서를 결정하는 단계를 포함한다. 상기 블록은 대표 샘플 값들의 팔레트를 사용하여 팔레트 모드로 코딩된다. 방법(4400)은, 동작(4420)에서, 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
일부 실시예들에서, 상기 3개 이상의 스캐닝 순서들은 역 수평 횡단 스캐닝 순서를 포함한다. 일부 실시예들에서, 상기 역 수평 횡단 스캐닝 순서는 상기 블록을 홀수 인덱스들을 가지는 행들에 대해 좌측에서 우측으로 스캐닝하는 단계를 포함하며, 상기 블록의 첫 번째 행에는 인덱스 0이 할당된다. 일부 실시예들에서, 상기 역 수평 횡단 스캐닝 순서는 상기 블록을 짝수 인덱스들을 가지는 행들에 대해 우측에서 좌측으로 스캐닝하는 단계를 포함하며, 상기 블록의 첫 번째 행에는 인덱스 0이 할당된다.
일부 실시예들에서, 상기 3개 이상의 스캐닝 순서들은 역 수직 횡단 스캐닝 순서를 포함한다. 일부 실시예들에서, 상기 역 수직 횡단 스캐닝 순서는 상기 블록을 홀수 인덱스들을 가지는 열들에 대해 상단에서 하단으로 스캐닝하는 단계를 포함하며, 상기 블록의 첫 번째 열에는 인덱스 0이 할당된다. 일부 실시예들에서, 상기 역 수직 횡단 스캐닝 순서는 상기 블록을 짝수 인덱스들을 가지는 열들에 대해 하단에서 상단으로 스캐닝하는 단계를 포함하며, 상기 블록의 첫 번째 열에는 인덱스 0이 할당된다.
일부 실시예들에서, 상기 3개 이상의 스캐닝 순서들은 짝수 인덱스들을 가지는 행들에 대해 좌측에서 우측으로 홀수 인덱스들을 가지는 행들에 대해 우측에서 좌측으로 상기 블록의 계수들을 스캔하는 수평 횡단 스캐닝 순서를 포함한다. 상기 3개 이상의 스캐닝 순서들은 짝수 인덱스들을 가지는 열들에 대해 상단에서 하단으로 홀수 인덱스들을 가지는 열들에 대해 하단에서 상단으로 상기 블록의 상기 계수들을 스캔하는 수직 횡단 스캐닝 순서를 더 포함하며, 상기 블록의 첫 번째 행에는 인덱스 0이 할당되고, 상기 블록의 첫 번째 열에는 인덱스 0이 할당된다.
도 45는 본 기술에 따른 비디오 처리 방법(4500)의 순서도 표현이다. 방법(4500)은, 동작(4510)에서, 비디오의 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 블록의 계수들이 상기 블록의 모양에 기초하여 스캔되는 하나 이상의 스캐닝 순서들을 결정하는 단계를 포함한다. 또한, 방법(4500)은, 동작(4520)에서, 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
일부 실시예들에서, 상기 하나 이상의 스캐닝 순서들은 상기 블록의 높이에 대한 폭의 비율이 임계값 보다 큰 경우 적용된다. 일부 실시예들에서, 상기 하나 이상의 스캐닝 순서들은 상기 블록의 폭에 대한 높이의 비율이 임계값 보다 큰 경우 적용된다. 일부 실시예들에서, 상기 임계값은 1과 같다. 일부 실시예들에서, 임계값은 4와 같다.
도 46은 본 기술에 따른 비디오 처리 방법(4600)의 순서도 표현이다. 방법(4600)은, 동작(4610)에서, 비디오의 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해, 상기 블록의 인트라 예측의 양자화된 잔차와 상기 양자화된 잔차의 예측간의 차이가 차분 펄스 코딩 변조(DPCM: differential pulse coding modulation)를 사용하여 상기 블록의 상기 비트스트림 표현에서 표현되는 블록 기반 양자화 잔차 도메인 차분 펄스 코딩 변조(BDPCM: block-based quantized residual domain differential pulse coding modulation) 과정을 위해, 상기 블록의 계수들이 스캔되는 오직 하나의 스캐닝 순서만이 상기 블록에 적용된다고 결정하는 단계를 포함한다. 또한, 방법(4600)은, 동작(4620)에서, 상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함한다.
일부 실시예들에서, 상기 오직 하나의 스캐닝 순서는 상기 블록의 폭이 상기 블록의 높이 보다 더 큰 경우 수직 방향으로 상기 블록을 스캐닝하는 단계를 포함한다. 일부 실시예들에서, 상기 오직 하나의 스캐닝 순서는 상기 블록의 폭이 상기 블록의 높이 보다 더 작은 경우 수평 방향으로 상기 블록을 스캐닝하는 단계를 포함한다. 일부 실시예들에서, 상기 오직 하나의 스캐닝 순서는 상기 블록의 모양에 기초하여 유도된다.
일부 실시예들에서, W로 표시되는 상기 블록의 폭과 H로 표시되는 상기 블록의 높이가 조건을 만족하는 경우, 적어도 하나의 스캐닝 순서가 적용가능하다. 일부 실시예들에서, 상기 조건은 W×Th ≥ H 혹은 H×Th≥W를 포함하며, Th는 정수인 임계값이다. 일부 실시예들에서, Th는 4 또는 8이다. 일부 실시예들에서, Th는 상기 비디오의 특징에 기초하여 결정된다. 일부 실시예들에서, 상기 특징은 상기 비디오의 콘텐트를 포함한다. 일부 실시예들에서, 상기 특징은 디코더 파라미터 세트, 슬라이스 파라미터 세트, 비디오 파라미터 세트, 픽처 파라미터 세트, 적응 파라미터 세트, 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU: largest coding unit), 코딩 유닛(CU: coding unit), LCU의 행, LCU들의 그룹, 트리 유닛(TU: tree unit), 픽처 유닛(PU: picture unit) 블록, 또는 상기 비트스트림 표현의 비디오 코딩 유닛에서 시그널링되는 정보를 포함한다. 일부 실시예들에서, 상기 특징은 상기 비디오의 비디오 픽처에서의 상기 블록의 위치를 포함한다. 일부 실시예들에서, 상기 특징은 상기 블록의 크기 또는 상기 블록의 주변 블록의 크기를 포함한다. 일부 실시예들에서, 상기 특징은 상기 블록의 모양 또는 상기 블록의 주변 블록의 모양을 포함한다. 일부 실시예들에서, 상기 특징은 상기 블록의 칼라 포맷을 포함한다. 일부 실시예들에서, 상기 특징은 상기 블록의 코딩 트리 구조를 포함한다. 일부 실시예들에서, 상기 특징은 상기 비디오의 슬라이스 타입, 타일 그룹 타입 또는 픽처 타입을 포함한다. 일부 실시예들에서, 상기 특징은 상기 블록의 칼라 구성요소를 포함한다. 일부 실시예들에서, 상기 특징은 상기 비디오의 시간적 레이어 아이덴티티를 포함한다. 일부 실시예들에서, 상기 특징은 상기 비디오에 대한 프로파일, 레벨 및 단(tier)을 포함한다.
일부 실시예들에서, 상기 변환은 상기 비트스트림 표현으로부터 상기 현재 블록을 생성한다. 일부 실시예들에서, 상기 변환은 상기 현재 블록으로부터 상기 비트스트림 표현을 생성한다.
개시된 기술의 일부 실시예들은 비디오 처리 툴 또는 모드를 활성화하는 것에 대한 결정 또는 판단하는 단계를 포함한다. 일 예에서, 상기 비디오 처리 툴 또는 모드가 활성화되면, 인코더는 비디오의 블록의 처리에서 상기 툴 또는 모드를 사용하거나 구현할 것이지만, 상기 툴 또는 모드의 사용에 기초하여 결과적인 비트스트림을 반드시 수정할 필요는 없다. 즉, 상기 비디오의 블록으로부터 상기 비디오의 비트스트림 표현으로의 변환은 상기 결정 또는 판단에 기초하여 활성화될 때 상기 비디오 처리 툴 또는 모드를 사용할 것이다. 또 다른 예에서, 상기 비디오 처리 툴 또는 모드가 활성화되면, 디코더는 상기 비트스트림이 상기 비디오 처리 툴 또는 모드에 기초하여 수정되었다는 지식으로 상기 비트스트림을 처리할 것이다. 즉, 상기 비디오의 비트스트림 표현으로부터 상기 비디오의 블록으로의 변환은 상기 결정 또는 판단에 기초하여 활성화된 상기 비디오 처리 툴 또는 모드를 이용하여 수행될 것이다.
개시된 기술의 일부 실시예들은 비디오 처리 툴 또는 모드를 비활성화하는 것에 대한 결정 또는 판단을 포함한다. 일 예에서, 상기 비디오 처리 툴 또는 모드가 비활성화되면, 인코더는 상기 비디오의 비트스트림 표현으로의 상기 비디오의 블록의 변환에 상기 툴 또는 모드를 사용하지 않을 것이다. 또다른 예에서, 상기 비디오 프로세싱 툴 또는 모드가 비활성화되면, 상기 결정 또는 판단에 기초하여 활성화된 상기 비디오 프로세싱 툴 또는 모드를 이용하여 상기 비트스트림이 수정되지 않았다는 지식으로 디코더가 상기 비트스트림을 처리할 것이다.
개시된 그리고 기타 솔루션들, 예들, 실시예들, 모듈들 및 본 문서에 기술된 기능적 동작들은 디지털 전자 회로, 본 문서에 개시된 구조들, 그것들의 구조적 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어 또는 이들 중의 하나 이상의 조합으로 구현될 수 있다. 개시된 그리고 기타 실시예들은 하나 이상의 컴퓨터 프로그램 제품, 즉, 데이터 프로세싱 장치에 의한 실행 또는 그의 동작의 제어를 위해 컴퓨터 판독가능 매체 상에 인코딩되는 컴퓨터 프로그램 명령들의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독가능 매체는 머신-판독가능 저장 장치, 머신-판독가능 저장 기판, 메모리 장치, 머신-판독가능 전파 신호에 영향을 주는 물질의 구성 또는 그들 중의 하나 이상의 조합일 수 있다. 용어 "데이터 프로세싱 장치"는 데이터 처리를 위한 모든 장치, 디바이스 및 머신을 포함하며, 예를 들어 프로그램 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 포함한다. 장치는 하드웨어에 더하여 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나의 조합을 구성하는 코드를 포함할 수 있다. 전파되는 신호는 인공적으로 생성된 신호, 예를 들어, 머신 생성 전기, 광, 또는 전자기 신호이며, 이는 적절한 수신기 장치로의 전송을 위한 정보를 인코딩하기 위해 생성된다.
컴퓨터 프로그램 (프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은 컴파일된 언어 또는 해석된 언어를 포함하여 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램 또는 컴퓨터 환경에서 사용되기에 적합한 모듈, 컴포넌트, 서브루틴 또는 다른 유닛으로서 임의의 형태로 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 반드시 대응되는 것은 아니다. 프로그램은 다른 프로그램들 또는 데이터를 보유하는 파일의 일부(예를 들어 마크업 언어 문서에 저장된 하나 이상의 스크립트) 또는 문제의 프로그램의 전용인 단일 파일 또는 다중 편성(coordinated) 파일들(예를 들어, 하나 이상의 모듈들, 서브 프로그램들 또는 코드의 부분들을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은, 하나의 컴퓨터 상에서 또는 한 사이트에 위치하거나 다수의 사이트에 걸쳐 분배되고 통신 네트워크에 의해 상호 접속되는 다수의 컴퓨터 상에서 실행되도록 배치될 수 있다.
본 명세서에 설명된 과정들 및 논리 흐름들은 입력 데이터에 대해 작동하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그래밍가능한 프로세서들에 의해 수행될 수 있다. 과정들 및 논리 흐름들은 또한 FPGA (필드 프로그래밍 가능 게이트 어레이) 또는 ASIC (애플리케이션 특정 집적 회로)와 같은 특수 목적 논리회로로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은 예를 들어 범용 및 특수 목적의 마이크로 프로세서들과 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리(ROM), 또는 랜덤 액세스 메모리(RAM), 또는 둘 다로부터 명령어들과 데이터를 수신할 것이다. 컴퓨터의 필수 구성요소는 명령들을 실행하는 프로세서 및 명령들 및 데이터를 저장하는 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들, 예를 들어, 자기 디스크, 광자기 디스크, 또는 광디스크를 포함하거나, 또는 이 디바이스들와 데이터를 송수신하기 위하여 동작적으로(operatively) 결합될 것이다. 하지만 컴퓨터는 이러한 디바이스를 구비할 필요는 없다. 컴퓨터 프로그램 명령어들과 데이터를 저장하기 적합한 컴퓨터 판독가능 매체에는, 예를 들어, 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM, 플래시 메모리 디바이스), 자기 디스크(예를 들어, 내부 하드디스크, 착탈식 디스크), 광자기 디스크 및 CD ROM과 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스가 포함된다. 프로세서와 메모리는 전용 논리 회로에 의해 보완되거나 또는 전용 논리 회로에 통합될 수 있다.
본 특허문서가 다수의 특정한 구현 세부사항을 포함하고 있지만, 이는 임의 발명의 범위나 청구할 사항의 범위에 대한 어떠한 제한으로도 이해되어서는 안 되며, 특정한 기술들의 특정한 실시예들에 고유할 수 있는 특징들의 설명으로서 이해되어야 한다. 별개의 실시예들의 맥락에서 본 특허 문서에서 설명된 소정의 특징들은 조합되어 단일 실시예로 구현될 수도 있다. 반대로, 단일 실시예의 맥락에서 설명한 다양한 특징들은 복수의 실시예에서 별개로 구현되거나 어떤 적당한 하위 조합으로도 구현 가능하다. 또한, 앞에서 특징들이 특정 조합에서 동작하는 것으로서 설명되고 그와 같이 청구되기까지 하였지만, 청구된 조합으로부터의 하나 또는 그 이상의 특징들은 일부 경우에 해당 조합으로부터 삭제될 수 있으며, 청구된 조합은 하위 조합이나 하위 조합의 변형으로 될 수 있다.
마찬가지로, 동작들이 도면들에서 특정한 순서로 묘사되고 있지만, 이는 그러한 동작들이 바람직한 결과를 얻기 위해, 도시한 특정 순서나 순차적인 순서로 수행되어야 한다거나, 도시된 모든 동작들이 수행되어야 한다는 것을 의미하지 않는다. 더욱이, 본 특허 문서에 기재된 실시예들에 있어서 다양한 시스템 구성요소들의 분리는 모든 실시예들에서 그러한 분리를 요구하는 것으로 이해되어서는 안 된다.
단지 몇 가지 구현들 및 예시들이 설명되었으며, 기타 구현, 개선 및 변형은 본 특허 문서에 설명되고 도시된 것에 기초하여 이루어질 수 있다.

Claims (17)

  1. 비디오 처리 방법에 있어서,
    비디오의 현재 블록과 상기 비디오의 비트스트림 표현간의 변환을 위해, 인터 인트라 결합 예측 모드에 대한 상기 현재 블록의 인트라 코딩된 주변 블록들의 수를 규칙에 따라 결정하는 단계; 및
    상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함하되,
    상기 규칙은 상기 인터 인트라 결합 예측 모드에 대해 인트라 코딩된 주변 블록들의 수를 카운팅함에 있어 팔레트 코딩 모드를 사용하여 코딩된 블록을 처리하는 방식을 명시하고, 상기 팔레트 코딩 모드를 사용하는 것은 대표 샘플 값들의 팔레트를 사용하여 블록을 코딩하는 것을 포함하는, 비디오 처리 방법.
  2. 제1항에 있어서,
    상기 방식은 상기 팔레트 코딩 모드를 사용하여 코딩된 블록이 비-인트라 코딩된(non-intra-coded) 블록으로 처리되어 상기 인트라 코딩된 주변 블록들의 수를 카운팅하는 것으로부터 배제됨을 명시하는, 비디오 처리 방법.
  3. 제2항에 있어서,
    상기 팔레트 코딩 모드를 사용하여 코딩된 상기 블록이 MODE_PLT의 예측 모드를 가지는 블록으로 처리되는, 비디오 처리 방법.
  4. 제2항에 있어서,
    상기 팔레트 코딩 모드를 사용하여 코딩된 상기 블록은 인터 코딩된 블록으로 처리되는, 비디오 처리 방법.
  5. 제2항에 있어서,
    상기 팔레트 코딩 모드를 사용하여 코딩된 상기 블록은, 상기 현재 블록이 상기 현재 블록의 현재 픽처의 샘플들로 코딩되는, 인트라 블록 카피(IBC: intra-block copy) 코딩 모드로 코딩된 블록으로 처리되는, 비디오 처리 방법.
  6. 제3항 내지 제5항 중 어느 한 항에 있어서,
    상기 팔레트 코딩 모드를 사용하여 코딩된 상기 블록은 상기 현재 블록 상단 또는 상기 현재 블록 좌측의 주변 블록인, 비디오 처리 방법.
  7. 제1항에 있어서,
    상기 방식은 상기 팔레트 코딩 모드를 사용하여 코딩된 블록이 인트라 코딩된 블록으로 처리되어 상기 인트라 코딩된 주변 블록들의 카운팅에 포함됨을 명시하는, 비디오 처리 방법.
  8. 비디오 처리 방법에 있어서,
    비디오의 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해, 필터링 과정에서 상기 현재 블록의 샘플에 대해 동작이 스킵됨을 결정하는 단계; 및
    상기 결정에 기초하여 상기 변환을 수행하는 단계를 포함하되,
    상기 샘플은 팔레트 코딩 모드를 사용하여 코딩되며, 상기 팔레트 코딩 모드를 사용하는 것은 대표 샘플 값들의 팔레트를 사용하여 블록을 코딩하는 것을 포함하는, 비디오 처리 방법.
  9. 제8항에 있어서,
    상기 동작은 상기 현재 블록의 하나 이상의 경계들을 매끄럽게 하는(smooths) 디블로킹 동작을 포함하는, 비디오 처리 방법.
  10. 제8항에 있어서,
    상기 동작은 샘플들이 왜곡을 줄이기 위해 분류되는 샘플 적응적 오프셋 과정에서 오프셋을 보상하는 단계를 포함하는, 비디오 처리 방법.
  11. 제8항에 있어서,
    상기 동작은 적응적 루프 필터링 과정에서의 필터링 동작을 포함하는, 비디오 처리 방법.
  12. 제8항에 있어서,
    상기 동작은 적응적 루프 필터링 과정에서의 분류 동작을 포함하는, 비디오 처리 방법.
  13. 제8항에 있어서,
    상기 동작은, 휘도 샘플들이 적응적 조각별(piecewise) 선형 모델을 사용하여 매핑되고 색차 샘플들이 휘도 종속적인 색차 잔차 스케일링 동작으로 처리되는, 휘도 매핑 및 색차 스케일링(luma mapping with chroma scaling) 동작을 포함하는, 비디오 처리 방법.
  14. 제1항 내지 제13항 중 어느 하나 이상에 있어서,
    상기 변환이 상기 비트스트림 표현으로부터 상기 현재 블록을 생성시키는, 비디오 처리 방법.
  15. 제1항 내지 제13항 중 어느 하나 이상에 있어서,
    상기 변환이 상기 현재 블록으로부터 상기 비트스트림 표현을 생성시키는, 비디오 처리 방법.
  16. 비디오 처리 장치로서, 제1항 내지 제15항 중 어느 하나 이상에서의 방법을 구현하기 위해 구성된 프로세서를 포함하는, 비디오 처리 장치.
  17. 코드를 저장하는 컴퓨터 판독 가능한 매체로서, 상기 코드는, 실행되는 경우, 프로세서로 하여금 제1항 내지 제15항 가운데 어느 하나 이상에서의 방법을 구현하도록 하는, 컴퓨터 판독 가능한 매체.

KR1020217039825A 2019-07-29 2020-07-29 예측 과정에서 팔레트 모드 코딩 KR20220036911A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2019098204 2019-07-29
CNPCT/CN2019/098204 2019-07-29
PCT/CN2020/105405 WO2021018167A1 (en) 2019-07-29 2020-07-29 Palette mode coding in prediction process

Publications (1)

Publication Number Publication Date
KR20220036911A true KR20220036911A (ko) 2022-03-23

Family

ID=74228199

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217039825A KR20220036911A (ko) 2019-07-29 2020-07-29 예측 과정에서 팔레트 모드 코딩

Country Status (6)

Country Link
US (2) US20220159241A1 (ko)
EP (1) EP3991411A4 (ko)
JP (2) JP2022543009A (ko)
KR (1) KR20220036911A (ko)
CN (2) CN114208174B (ko)
WO (2) WO2021018166A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020169104A1 (en) 2019-02-24 2020-08-27 Beijing Bytedance Network Technology Co., Ltd. Joint coding of palette mode usage indication
JP7305810B2 (ja) * 2019-06-24 2023-07-10 エルジー エレクトロニクス インコーポレイティド ルーママッピング及びクロマスケーリングに基づくビデオまたは画像コーディング
CN111602396B (zh) * 2019-06-25 2022-04-29 北京大学 一种视频图像处理方法、设备及存储介质
JP7359936B2 (ja) 2019-07-20 2023-10-11 北京字節跳動網絡技術有限公司 パレットモードの使用の指示の条件依存符号化
CN117221536A (zh) 2019-07-23 2023-12-12 北京字节跳动网络技术有限公司 调色板模式编解码的模式确定
WO2021018166A1 (en) * 2019-07-29 2021-02-04 Beijing Bytedance Network Technology Co., Ltd. Scanning order improvements for palette mode coding
US11627327B2 (en) * 2019-08-05 2023-04-11 Qualcomm Incorporated Palette and prediction mode signaling
KR20220047834A (ko) * 2019-09-23 2022-04-19 엘지전자 주식회사 팔레트 모드를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
US20230049298A1 (en) * 2019-12-31 2023-02-16 Lg Electronics Inc. Image encoding/decoding method and apparatus for performing prediction on basis of reconfigured prediction mode type of leaf node, and bitstream transmission method
US11968360B2 (en) * 2020-03-31 2024-04-23 Alibaba Group Holding Limited Methods for palette prediction

Family Cites Families (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9094658B2 (en) * 2010-05-10 2015-07-28 Mediatek Inc. Method and apparatus of adaptive loop filtering
US9143795B2 (en) 2011-04-11 2015-09-22 Texas Instruments Incorporated Parallel motion estimation in video coding
US9374578B1 (en) * 2013-05-23 2016-06-21 Google Inc. Video coding using combined inter and intra predictors
GB2519070A (en) * 2013-10-01 2015-04-15 Sony Corp Data encoding and decoding
JP6254294B2 (ja) 2013-10-14 2017-12-27 寰發股▲ふん▼有限公司HFI Innovation Inc. Hevc範囲拡張の剰余差分パルス符号変調の方法
WO2015074047A1 (en) 2013-11-18 2015-05-21 Arris Enterprises, Inc. Intra block copy for intra slices in high efficiency video coding (hevc)
US10972742B2 (en) 2013-12-19 2021-04-06 Canon Kabushiki Kaisha Encoding process using a palette mode
EP3078194B1 (en) * 2014-01-02 2019-09-11 HFI Innovation Inc. Method and apparatus for intra prediction coding with boundary filtering control
CN104853209B (zh) 2014-02-16 2020-09-29 同济大学 图像编码、解码方法及装置
WO2015136693A1 (ja) 2014-03-14 2015-09-17 富士通株式会社 画像符号化装置、画像復号装置、画像符号化方法、及び画像復号方法
EP4044602A1 (en) 2014-03-14 2022-08-17 Vid Scale, Inc. Palette coding for screen content coding
RU2668723C2 (ru) 2014-03-17 2018-10-02 Нокиа Текнолоджиз Ой Способ и оборудование для кодирования и декодирования видеосигналов
US10264285B2 (en) 2014-05-22 2019-04-16 Qualcomm Incorporated Coding runs in palette-based video coding
US10382749B2 (en) * 2014-05-23 2019-08-13 Qualcomm Incorporated Coding run values based on palette index in palette-based video coding
AU2014202921B2 (en) * 2014-05-29 2017-02-02 Canon Kabushiki Kaisha Method, apparatus and system for de-blocking a block of video samples
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
US20150373327A1 (en) 2014-06-20 2015-12-24 Qualcomm Incorporated Block adaptive color-space conversion coding
CN110278437B (zh) 2014-06-20 2022-03-08 寰发股份有限公司 一种视频数据块的编码方法
US9900617B2 (en) 2014-06-20 2018-02-20 Qualcomm Incorporated Single color palette mode in video coding
US10477204B2 (en) * 2014-06-20 2019-11-12 Sharp Kabushiki Kaisha Harmonized palette coding
US9860560B2 (en) 2014-07-02 2018-01-02 Qualcomm Incorporated Method for palette mode coding
AU2014216056A1 (en) * 2014-08-25 2016-03-10 Canon Kabushiki Kaisha Method, apparatus and system for predicting a block of video samples
CA2959682C (en) 2014-09-30 2022-12-06 Microsoft Technology Licensing, Llc Rules for intra-picture prediction modes when wavefront parallel processing is enabled
TW201626798A (zh) * 2014-10-06 2016-07-16 Vid Scale Inc 用於螢幕內容編碼之改良調色編碼
US9877029B2 (en) 2014-10-07 2018-01-23 Qualcomm Incorporated Palette index binarization for palette-based video coding
US9854237B2 (en) 2014-10-14 2017-12-26 Qualcomm Incorporated AMVP and merge candidate list derivation for intra BC and inter prediction unification
WO2016070845A1 (en) 2014-11-06 2016-05-12 Mediatek Inc. Method for sub-block based palette coding
CN105704491B (zh) 2014-11-28 2020-03-13 同济大学 图像编码方法、解码方法、编码装置和解码装置
US10462475B2 (en) 2014-12-19 2019-10-29 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螢幕內容視訊調色盤編碼
WO2016115728A1 (en) 2015-01-23 2016-07-28 Mediatek Singapore Pte. Ltd. Improved escape value coding methods
US10484686B2 (en) 2015-01-29 2019-11-19 Vid Scale, Inc. Palette coding modes and palette flipping
EP3251358B1 (en) 2015-01-29 2019-11-13 Canon Kabushiki Kaisha Palette predictor initializer when encoding or decoding self-contained coding structures
KR102051723B1 (ko) 2015-01-29 2019-12-03 브이아이디 스케일, 인크. 팔레트 코딩 모드를 위한 이스케이프 컬러 코딩
GB2534606A (en) 2015-01-29 2016-08-03 Canon Kk Method and device for encoding or decoding an image comprising encoding of decoding information representing prediction modes
US10425659B2 (en) 2015-01-30 2019-09-24 Qualcomm Incorporated Coding escape pixels for palette coding
US10212434B2 (en) 2015-01-30 2019-02-19 Qualcomm Incorporated Palette entries coding in video coding
US10057587B2 (en) 2015-01-31 2018-08-21 Qualcomm Incorporated Coding escape pixels for palette mode coding
WO2016150343A1 (en) * 2015-03-20 2016-09-29 Mediatek Singapore Pte. Ltd. Methods of palette coding with inter-prediction in video coding
JP2018514142A (ja) 2015-04-08 2018-05-31 寰發股▲ふん▼有限公司HFI Innovation Inc. ビデオ符号化におけるパレットモードコンテキスト符号化、および、2値化の方法
CN115134591A (zh) * 2015-06-05 2022-09-30 杜比实验室特许公司 图像编解码方法、比特流存储方法
KR102390073B1 (ko) 2015-06-08 2022-04-25 브이아이디 스케일, 인크. 스크린 콘텐츠 코딩을 위한 인트라 블록 카피 모드
WO2016197314A1 (en) 2015-06-09 2016-12-15 Microsoft Technology Licensing, Llc Robust encoding/decoding of escape-coded pixels in palette mode
GB2539488B8 (en) 2015-06-18 2020-08-19 Gurulogic Microsystems Oy Encoder, decoder and method employing palette utilization and compression
US10356432B2 (en) 2015-09-14 2019-07-16 Qualcomm Incorporated Palette predictor initialization and merge for video coding
US10097842B2 (en) 2015-09-18 2018-10-09 Qualcomm Incorporated Restriction of escape pixel signaled values in palette mode video coding
US20170099490A1 (en) 2015-10-02 2017-04-06 Qualcomm Incorporated Constrained intra-prediction for block copy mode
CN107710760A (zh) 2015-10-15 2018-02-16 富士通株式会社 图像编码方法、装置以及图像处理设备
CN105791824B (zh) * 2016-03-09 2018-08-31 西安电子科技大学 基于边缘点密度的屏幕内容编码预测模式快速选择方法
US10547854B2 (en) 2016-05-13 2020-01-28 Qualcomm Incorporated Neighbor based signaling of intra prediction modes
CN113727109B (zh) 2016-05-28 2023-12-29 寰发股份有限公司 用于彩色视频数据的调色板模式编解码的方法及装置
US11039147B2 (en) 2016-05-28 2021-06-15 Mediatek Inc. Method and apparatus of palette mode coding for colour video data
CN117412036A (zh) * 2016-08-31 2024-01-16 株式会社Kt 用于处理视频信号的方法和设备
US20190215521A1 (en) 2016-09-22 2019-07-11 Mediatek Inc. Method and apparatus for video coding using decoder side intra prediction derivation
US10812795B2 (en) 2016-09-30 2020-10-20 Lg Electronic Inc. Method for processing picture based on intra-prediction mode and apparatus for same
CN106534846B (zh) 2016-11-18 2019-01-29 天津大学 一种屏幕内容与自然内容划分及快速编码方法
WO2018173798A1 (ja) 2017-03-23 2018-09-27 ソニー株式会社 画像処理装置および方法
KR102558015B1 (ko) * 2017-04-13 2023-07-21 엘지전자 주식회사 영상의 부호화/복호화 방법 및 이를 위한 장치
EP3399754A1 (en) 2017-05-04 2018-11-07 Thomson Licensing Method and apparatus for most probable mode (mpm) reordering for intra prediction
US10757420B2 (en) * 2017-06-23 2020-08-25 Qualcomm Incorporated Combination of inter-prediction and intra-prediction in video coding
US11070847B2 (en) 2017-12-05 2021-07-20 Qualcomm Incorporated Intra-prediction with far neighboring pixels
US20190246122A1 (en) 2018-02-08 2019-08-08 Qualcomm Incorporated Palette coding for video coding
CN111869216B (zh) 2018-02-12 2024-05-28 联发科技股份有限公司 用于视频编解码系统的语法处理的方法和装置
US10694195B2 (en) 2018-03-07 2020-06-23 Tencent America LLC Methods and apparatus for palette coding
CN108495135B (zh) 2018-03-14 2020-11-10 宁波大学 一种屏幕内容视频编码的快速编码方法
MX2023002949A (es) 2018-07-18 2023-11-07 Beijing Dajia Internet Information Tech Co Ltd Métodos y aparato de codificación de video que usa el campo técnico de predicción de vectores de movimiento basado en el historial.
CA3108468A1 (en) 2018-08-06 2020-02-13 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium storing bitstream
US11025905B2 (en) 2018-09-14 2021-06-01 Tencent America LLC Method and device for decoding with palette mode
EP3866468A4 (en) * 2018-10-12 2022-07-27 Wilus Institute of Standards and Technology Inc. VIDEO SIGNAL PROCESSING METHOD AND APPARATUS USING MULTI-ASSUMPTION PREDICTION
US11652984B2 (en) * 2018-11-16 2023-05-16 Qualcomm Incorporated Position-dependent intra-inter prediction combination in video coding
US11184633B2 (en) 2018-11-27 2021-11-23 Qualcomm Incorporated Simplification of history-based motion vector prediction
US10951895B2 (en) 2018-12-31 2021-03-16 Alibaba Group Holding Limited Context model selection based on coding unit characteristics
US11595662B2 (en) 2019-02-06 2023-02-28 Tencent America LLC Method and apparatus for neighboring block availability in video coding
CN113491124B (zh) 2019-02-14 2024-06-25 Lg电子株式会社 基于dmvr的帧间预测方法和设备
BR112021016235A2 (pt) 2019-02-24 2021-10-13 Beijing Bytedance Network Technology Co., Ltd. Método de processamento de dados de vídeo, aparelho para processar dados de vídeo, meio de armazenamento não transitório legível por computador, meio de gravação não transitório legível por computador e método para armazenar um bitstream de um vídeo
WO2020169104A1 (en) 2019-02-24 2020-08-27 Beijing Bytedance Network Technology Co., Ltd. Joint coding of palette mode usage indication
CN112514380A (zh) 2019-02-26 2021-03-16 株式会社 Xris 用于对视频信号进行编码/解码的方法及其设备
US11825120B2 (en) 2019-02-28 2023-11-21 Qualcomm Incorporated Subblock coding by generalized intra prediction in video coding
US20200288175A1 (en) 2019-03-06 2020-09-10 Qualcomm Incorporated Signaling of triangle merge mode indexes in video coding
CN111698506B (zh) 2019-03-11 2022-04-26 杭州海康威视数字技术股份有限公司 运动信息候选者列表构建方法、三角预测解码方法及装置
US11202101B2 (en) 2019-03-13 2021-12-14 Qualcomm Incorporated Grouped coding for palette syntax in video coding
CN118118654A (zh) 2019-03-13 2024-05-31 Lg 电子株式会社 基于dmvr的帧间预测方法和设备
WO2020197038A1 (ko) 2019-03-22 2020-10-01 엘지전자 주식회사 영상 코딩 시스템에서 인트라 서브 파티션 기반의 인트라 예측 방법 및 장치
US11451826B2 (en) 2019-04-15 2022-09-20 Tencent America LLC Lossless coding mode and switchable residual coding
US11350083B2 (en) 2019-04-19 2022-05-31 Qualcomm Incorporated Intra block copy merging data syntax for video coding
EP3959880A4 (en) * 2019-05-10 2023-04-26 HFI Innovation Inc. METHOD AND APPARATUS FOR DERIVING A LIST OF MOST LIKELY LUMINANCE MODES FOR VIDEO CODING
KR20210133301A (ko) 2019-06-06 2021-11-05 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
US11509931B2 (en) 2019-06-07 2022-11-22 Tencent America LLC Method and apparatus for video coding
CN114080812A (zh) 2019-06-13 2022-02-22 Lg 电子株式会社 使用sbtmvp的基于帧间预测的图像或视频编译
TWI781416B (zh) 2019-06-14 2022-10-21 弗勞恩霍夫爾協會 具有基於尺度之改良變換之編碼器、解碼器、方法及電腦程式
WO2020256389A1 (ko) 2019-06-18 2020-12-24 엘지전자 주식회사 Bdpcm 기반 영상 디코딩 방법 및 그 장치
US20200402546A1 (en) * 2019-06-24 2020-12-24 Seagate Technology Llc Reducing base deck porosity
US11336900B2 (en) * 2019-06-26 2022-05-17 Qualcomm Incorporated Combined inter and intra prediction mode for video coding
US11218700B2 (en) 2019-07-01 2022-01-04 Qualcomm Incorporated Minimum allowed quantization parameter for transform skip mode and palette mode in video coding
JP7359936B2 (ja) 2019-07-20 2023-10-11 北京字節跳動網絡技術有限公司 パレットモードの使用の指示の条件依存符号化
CN117221536A (zh) 2019-07-23 2023-12-12 北京字节跳动网络技术有限公司 调色板模式编解码的模式确定
WO2021018166A1 (en) * 2019-07-29 2021-02-04 Beijing Bytedance Network Technology Co., Ltd. Scanning order improvements for palette mode coding

Also Published As

Publication number Publication date
EP3991411A1 (en) 2022-05-04
WO2021018166A1 (en) 2021-02-04
CN114208174B (zh) 2023-11-28
EP3991411A4 (en) 2022-08-24
WO2021018167A1 (en) 2021-02-04
US20230127932A1 (en) 2023-04-27
WO2021018167A8 (en) 2021-11-18
CN114208174A (zh) 2022-03-18
JP2024026218A (ja) 2024-02-28
JP2022543009A (ja) 2022-10-07
CN114208188A (zh) 2022-03-18
US20220159241A1 (en) 2022-05-19

Similar Documents

Publication Publication Date Title
US20230127932A1 (en) Palette mode coding in prediction process
US11677935B2 (en) Mode determination for palette mode coding
US11677953B2 (en) Independent coding of palette mode usage indication
KR102624456B1 (ko) 팔레트 모드의 양자화 프로세스
WO2021013120A1 (en) Quantization process for palette mode
US20240048710A1 (en) Independent coding of palette mode usage indication
KR20210132662A (ko) 팔레트 모드 사용 지시의 조인트 코딩
WO2020207421A1 (en) Entry construction for palette mode coding
WO2021013210A1 (en) Mode determining for palette mode in prediction process
RU2810950C2 (ru) Совместное кодирование индикации использования режима палитры
RU2803621C2 (ru) Процедура квантования для режима палитры

Legal Events

Date Code Title Description
A201 Request for examination