KR20220087451A - 크로스 컴포넌트 비디오 코딩에서 선형 파라미터의 유도 - Google Patents

크로스 컴포넌트 비디오 코딩에서 선형 파라미터의 유도 Download PDF

Info

Publication number
KR20220087451A
KR20220087451A KR1020227013425A KR20227013425A KR20220087451A KR 20220087451 A KR20220087451 A KR 20220087451A KR 1020227013425 A KR1020227013425 A KR 1020227013425A KR 20227013425 A KR20227013425 A KR 20227013425A KR 20220087451 A KR20220087451 A KR 20220087451A
Authority
KR
South Korea
Prior art keywords
video
block
transform
chroma
luma
Prior art date
Application number
KR1020227013425A
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 KR20220087451A publication Critical patent/KR20220087451A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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
    • 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/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

비디오 처리 장치는, 비디오의 크로마 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해, 다운 샘플링 필터를 사용하여 상기 크로마 블록의 동위치(collocated) 루마 블록의 N개-여기서, N은 양의 정수-의 상단 이웃 라인들로부터 생성된 다운 샘플링된 루마 샘플들을 사용하여 크로스 컴포넌트 선형 모델의 파라미터들을 유도하는 단계 그리고 상기 크로스 컴포넌트 선형 모델을 사용하여 생성된 예측 크로마 블록을 사용하여 상기 변환을 실시하는 단계를 포함한다.

Description

크로스 컴포넌트 비디오 코딩에서 선형 파라미터의 유도
관련 출원들에 대한 상호 참조
파리협약에 따른 적용가능한 특허법 및/또는 규칙에 따라, 본 출원은 2019년 11월 1일에 제출된 국제 출원 No. PCT/CN2019/115034의 우선권과 혜택을 적시에 주장하기 위해 만들어졌다. 상기 법 하의 모든 목적을 위해, 상기 출원들의 전체 개시물은 본 출원의 개시의 일부로서 참고로 통합된다.
본 문서는 비디오 및 영상 코딩 및 디코딩 기술들에 관한 것이다.
디지털 비디오는 인터넷 및 기타 디지털 통신 네트워크에서 가장 큰 대역폭을 차지한다. 비디오를 수신하고 표시할 수 있는 접속된 사용자 디바이스의 수가 증가함에 따라, 디지털 비디오 사용을 위한 대역폭 수요가 계속 증가할 것으로 예상된다.
개시된 기술들은 크로스 컴포넌트 선형 모델 예측을 사용하여 인코딩 또는 디코딩을 실시하기 위한 비디오 또는 영상 디코더 또는 인코더 실시예들에 의해 사용될 수 있다.
일 예시적 측면에서, 비디오를 처리하는 방법이 개시된다. 상기 방법은, 비디오의 크로마 블록과 상기 비디오의 비트스트림 표현 사이의 변환을 위해, 다운 샘플링 필터를 사용하여 상기 크로마 블록의 동위치(collocated) 루마 블록의 N개의 상단 이웃 라인들로부터 생성된 다운 샘플링된 루마 샘플들을 사용하여 크로스 컴포넌트 선형 모델의 파라미터들을 유도하는 단계-여기서, N은 양의 정수이다-그리고 상기 크로스 컴포넌트 선형 모델을 사용하여 생성된 예측 크로마 블록을 사용하여 상기 변환을 실시하는 단계를 포함한다.
다른 예시적 측면에서, 비디오를 처리하는 방법이 개시된다. 상기 방법은, 비디오의 컴포넌트의 비디오 영역과 상기 비디오의 비트스트림 표현 사이의 변환을 위해, 변환 스킵 모드를 사용하여 코딩된 비디오 블록에 대한 최대 허용 블록 크기를 결정하는 단계 및 상기 결정을 기반으로 상기 변환을 실시하는 단계를 포함한다.
다른 예시적 측면에서, 비디오를 처리하는 방법이 개시된다. 상기 방법은 비디오 블록들을 포함하는 비디오와 상기 비디오의 비트스트림 표현 간의 변환을 제1 규칙 및 제2 규칙에 따라 실시하는 단계를 포함하며, 이때 변환 스킵 코딩 툴은 상기 비디오 블록들의 제1 부분(portion)을 코딩하기 위해 사용되고, 변환 스킵 코딩 툴은 상기 비디오 블록들의 제2 부분을 코딩하기 위해 사용되며, 상기 제1 규칙은 상기 비디오 블록들의 상기 제1 부분에 대해 허용된 최대 블록 크기를 명시하고 상기 제2 규칙은 상기 비디오 블록들의 상기 제2 부분에 대해 허용된 최대 블록 크기를 명시하며, 그리고 상기 비디오 블록들의 상기 제1 부분에 대해 허용된 상기 최대 블록 크기는 상기 비디오 블록들의 상기 제2 부분에 대해 허용된 상기 최대 블록 크기와 상이하다.
다른 예시적 측면에서, 비디오를 처리하는 방법이 개시된다. 상기 방법은 하나 또는 그 이상의 크로마 블록들을 포함하는 비디오와 상기 비디오의 비트스트림 표현 간의 변환을 실시하는 단계를 포함하며, 이때 상기 비트스트림 표현은, 변환 스킵 툴의 사용을 지시하기 위한 신택스 요소가 상기 비트스트림 표현에 포함되는지 여부가 상기 변환 스킵 툴을 사용하여 코딩되는 크로마 블록에 대해 허용된 최대 크기에 의존한다는 것을 명시하는 포맷 규칙을 따른다.
다른 예시적 측면에서, 비디오를 처리하는 방법이 개시된다. 상기 방법은 제1 크로마 컴포넌트의 하나 또는 그 이상의 제1 비디오 블록들 및 제2 크로마 컴포넌트의 하나 또는 그 이상의 제2 비디오 블록들을 포함하는 비디오와 상기 비디오의 비트스트림 표현 간의 변환을 실시하는 단계를 포함하고, 이때 상기 비트스트림 표현은 상기 하나 또는 그 이상의 제1 크로마 블록들 및 상기 하나 또는 그 이상의 제2 크로마 블록들을 코딩하기 위한 변환 스킵 툴의 사용가능성을 함께 지시하는 신택스 요소를 사용하도록 명시하는 포맷 규칙을 따른다.
다른 예시적 측면에서, 상기 기술된 방법은 프로세서를 포함하는 비디오 인코더 장치에 의해 구현될 수 있다.
또 다른 예시적 측면에서, 이 방법들은 프로세서에 의해 실행가능한 명령어들의 형태로 구현되어 컴퓨터 판독 가능한 프로그램 매체에 저장될 수 있다.
이러한 측면들 및 기타 측면들은 본 문서에서 추가로 설명된다.
도 1a는 픽처 내에서 4:2:2 루마 및 크로마 샘플들의 공칭 수직 및 수평 위치들을 도시한다.
도 1b는 비디오 인코더의 일 예를 도시한다.
도 2는 67개의 인트라 예측 모드들의 예들을 도시한다.
도 3은 수평 및 수직 횡단 스캔들의 예들을 도시한다.
도 4는
Figure pct00001
Figure pct00002
의 유도를 위해 사용되는 샘플들의 위치들의 예들을 도시한다.
도 5는 4x8 샘플들의 블록을 2개의 독립적인 디코딩 가능한 영역들로 분할하는 예를 도시한다.
도 6은 수직 예측기로 4xN 블록들에 대한 처리량을 최대화하기 위한 픽셀 행들(rows)의 예시적인 처리 순서를 도시한다.
도 7은 저주파수 비분리 변환(LFNST: low-Frequency Non-Separable Transform) 프로세스의 일 예를 도시한다.
도 8은 4:2:2 비디오들을 위한 CCLM 파라미터들의 유도에 사용되는 이웃 크로마 샘플들 및 다운 샘플링된 동위치 이웃 루마 샘플들의 예를 도시한다.
도 9는 비디오 처리 장치의 일 예를 도시한다.
도 10은 비디오 인코더의 블록도를 도시한다.
도 11은 개시된 기술의 일부 구현들에 기반한 비디오 처리 방법의 일 예를 위한 순서도이다.
도 12는 비디오 처리 시스템의 일 예를 위한 블록도이다.
도 13은 예시적인 비디오 코딩 시스템을 도시하는 블록도이다.
도 14는 개시된 기술의 일부 실시예들에 따른 인코더를 도시하는 블록도이다.
도 15는 개시된 기술의 일부 실시예들에 따른 디코더를 도시하는 블록도이다.
도 16a 및 도 16b는 개시된 기술의 일부 구현들에 기반한 비디오 처리 방법들의 예시들을 위한 순서도들이다.
본 문서는 압축해제되거나 디코딩된 디지털 비디오 또는 영상들의 품질을 향상시키기 위해 영상 또는 비디오 비트스트림들의 디코더에 의해 사용될 수 있는 다양한 기술들은 제공한다. 간결함을 위해, 본 문서에서 용어 "비디오"는 (전통적으로 비디오라 불리는) 픽처들의 시퀀스 및 개별적인 영상들 모두를 포함하는 의미로 사용된다. 더 나아가, 추가 인코딩을 위해 사용되는 디코딩된 프레임들을 재구성하기 위해서, 비디오 인코더 또한 이러한 기술들을 인코딩 프로세스 동안 실시할 수 있다.
본 문서에서 이해의 편의를 위해 섹션 표제들이 사용되지만 이는 실시예들 및 기술들을 해당 섹션들로 한정하는 것은 아니다. 따라서, 하나의 섹션의 실시예들은 다른 섹션들의 실시예들과 결합될 수 있다.
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))이 결성되었다.
2.1. 컬러 공간 및 크로마 서브샘플링
컬러 모델(또는 컬러 시스템)이라고도 하는, 컬러 공간은 컬러들의 범위를 숫자들의 튜플들로서, 전형적으로 3 개 또는 4 개의 값 또는 컬러 성분(예를 들면, RGB)으로서 간단히 설명하는 추상 수학적 모델이다. 기본적으로 말하면, 컬러 공간은 좌표계와 서브 공간의 정교화이다.
비디오 압축의 경우, 가장 자주 사용되는 컬러 공간들은 YCbCr 및 RGB이다.
YCBCR 또는 Y'CBCR이라고도 기술되는, YCbCr, Y'CbCr 또는 Y Pb/Cb Pr/Cr은 비디오 및 디지털 사진 시스템들에서 컬러 이미지 파이프라인의 일부로서 사용되는 컬러 공간들의 계열이다. Y'은 루마 성분이고, CB와 CR은 청색 차이 및 적색 차이 크로마 성분들이다. Y'(프라임을 가짐)은 루미넌스인 Y와 구별되며, 감마 보정된 RGB 원색들에 기초하여 광 강도가 비선형적으로 인코딩된다는 것을 의미한다.
크로마 서브샘플링은, 루미넌스에 대해서 보다 컬러 차이들에 대한 인간 시각 시스템의 더 낮은 예민성을 이용하여, 루마 정보에 대해서보다 크로마 정보에 대해 더 낮은 분해능을 구현하는 것에 의해 영상들을 인코딩하는 작업이다.
2.1.1. 4:4:4
3개의 Y'CbCr 성분들 각각은 동일한 샘플 레이트를 가지며, 따라서 크로마 서브샘플링이 없다. 이 방식은 때때로 고급 필름 스캐너들 및 영화 포스트 프로덕션에서 사용된다.
2.1.2. 4:2:2
2개의 크로마 성분은 루마의 샘플 레이트의 절반으로 샘플링된다: 수직 크로마 분해능이 변하지 않는 반면, 수평 크로마 분해능이 반으로 준다. 이것은 시각적 차이가 거의 또는 전혀 없이 압축되지 않은 비디오 신호의 대역폭을 1/3만큼 감소시킨다. 4:2:2 컬러 포맷의 공칭 수직 및 수평 위치들의 예는 VVC 작업 초안에서 도 1a에서 도시된다.
2.1.3. 4:2:0
4:2:0에서는, 수평 샘플링이 4:1:1에 비해 2배이지만, Cb 및 Cr 채널들이 이 방식에서 각각의 교호 라인에서만 샘플링되므로, 수직 분해능이 반으로 준다. 따라서 데이터 레이트는 동일하다. Cb와 Cr은 각각 수평으로 및 수직으로 둘 모두에서 팩터 2로 서브샘플링된다. 상이한 수평 및 수직 위치(siting)를 갖는, 4:2:0 방식들의 세 가지 변형이 있다.
* MPEG-2에서, Cb와 Cr은 수평으로 함께 배치된다(cosited). Cb 및 Cr은 수직 방향으로 픽셀들 사이에 배치된다(중간에 배치됨).
* JPEG/JFIF, H.261 및 MPEG-1에서, Cb와 Cr은 중간에, 즉 교호 루마 샘플들 사이의 중간에 배치된다.
* 4:2:0 DV에서, Cb와 Cr은 수평 방향으로 함께 배치된다. 수직 방향에서, 이들은 교호 라인들에 함께 배치된다.
테이블 2-1 chroma_format_idc 및 separate_colour_plane_flag로부터 유도된 SubWidthC 및 SubHeightC 값들
Figure pct00003
2.2. 전형적인 비디오 코덱의 코딩 흐름
도 1b는 3개의 인루프 필터링 블록, 즉 디블로킹 필터(DF), 샘플 적응 오프셋(SAO) 및 ALF를 포함하는 VVC의 인코더 블록 다이어그램의 예를 도시한다. 미리 정의된 필터들을 사용하는 DF와 달리, SAO 및 ALF는 오프셋을 가산하는 것 및 유한 임펄스 응답(FIR) 필터를 적용하는 것에 의해 원래 샘플들과 재구성된 샘플들 간의 평균 제곱 오차들을 감소시키기 위해 현재 픽처의 원래 샘플들을 활용하며, 부가 정보는 오프셋들 및 필터 계수들을 시그널링한다. ALF는 각각의 픽처의 마지막 프로세싱 단계에 위치하며, 이전 단계들에서 생성되는 아티팩트들을 잡아내어 정하려고 하는 툴이라고 볼 수 있다.
2.3. 67개의 인트라 예측 모드를 갖는 인트라 모드 코딩
자연 비디오에 제시되는 임의의 에지 방향들을 캡처하기 위해, 방향성 인트라 모드들의 수는, HEVC에서 사용되는 바와 같이, 33으로부터 65로 확장된다. 추가적인 방향성 모드들은 도 2에서 붉은 색 점선 화살표들로 도시되며, 평면 및 DC 모드들은 동일하게 유지된다. 이러한 더 조밀한 방향성 인트라 예측 모드들은 모든 블록 크기들에 대해 그리고 루마 및 크로마 인트라 예측들 양자 모두에 적용된다.
종래의 각도 인트라 예측 방향들(angular intra prediction directions)은 도 2에 도시된 바와 같이 시계 방향으로 45도에서 -135도까지 정의된다. VTM2에서, 기존의 몇몇 각도 인트라 예측 모드들이 정사각형이 아닌 블록들에 대한 광각 인트라 예측 모드들(wide-angle intra prediction modes)로 적응적으로 대체된다. 대체된 모드들은 원래 방법을 사용하여 시그널링 하고 파싱 후 광각 모드들의 인덱스들로 다시 매핑 된다. 인트라 예측 모드들의 총 수는 변경되지 않고, 예를 들어, 67, 인트라 모드 코딩은 변경되지 않는다.
HEVC에서, 모든 인트라 코딩 된 블록은 정사각형 형상이며 각 변의 길이는 2의 제곱이다. 따라서, DC 모드를 사용하여 인트라 예측기를 생성하기 위해 분할 작업이 필요하지 않다. VVV2에서, 블록들은 일반적인 경우 블록 당 분할 작업을 사용해야 하는 직사각형 형상을 가질 수 있다. DC 예측을 위한 분할 작업을 방지하려면, 정사각형이 아닌 블록들의 평균을 계산하는 데는 긴 변만 사용된다.
2.4. 인터 예측
각각의 인터 예측된 CU에 대해, 모션 벡터들, 참조 픽처 인덱스들 및 참조 픽처 목록 사용 인덱스로 구성되는 모션 파라미터들 및 추가 정보가 인터 예측된 샘플 생성을 위해 사용될 VVC의 새로운 코딩 특징을 위해 필요하다. 모션 파라미터는 명시적 또는 암시적 방식으로 시그널링될 수 있다. CU가 스킵 모드로 코딩되는 경우, 상기 CU는 하나의 PU와 연관되며, 중요한 차분 계수들, 코딩된 모션 벡터 델타 또는 참조 픽처 인덱스를 가지지 않는다. 머지 모드가 명시되며, 이로 인해 상기 현재 CU에 대한 상기 모션 파라미터들은 이웃 CU들로부터 획득되며, 여기에는 공간적 및 시간적 후보들 그리고 VVC에서 도입되는 추가 스케줄들을 포함한다. 상기 머지 모드는 스킵 모드에 대해서 뿐 아니라 임의의 인터 예측된 CU에 적용될 수 있다. 머지 모드의 대안은 모션 파라미터들의 명시적 전송이며, 이때 모션 벡터, 각각의 참조 픽처 리스트 및 참조 픽처 리스트 사용 플래그에 대한 해당 참조 픽처 인덱스 그리고 기타 필요한 정보가 각각의 CU에 대해 명시적으로 시그널링된다.
2.5. 인트라 블록 카피(IBC: Intra block copy)
인트라 블록 카피(IBC)는 SCC상의 HEVC 확장에 채택된 도구이다. 이것은 스크린 콘텐츠 자료의 코딩 효율을 크게 향상시키는 것으로 잘 알려져 있다. IBC 모드는 블록 레벨 코딩 모드로 구현되므로, 인코더에서 각 CU에 대해 최적의 블록 벡터(또는 모션 벡터)를 찾기 위해서 블록 매칭(block matching(BM)) 수행된다. 여기서 블록 벡터는, 현재 블록에서 현재 픽처 내부에 이미 재구성된 참조 블록으로의 변위(displacement)를 지시하기 위해 사용된다. IBC-코딩된 CU의 루마 블록 벡터는 정수 정밀도에 있다. 크로마 블록 벡터 또한 정수 정밀도로 반올림된다. AMVR과 결합된 경우, IBC 모드는 1-펠(1-pel) 과 4-펠 모션 벡터 정밀도 간에 전환할 수 있다. IBC-코딩된 CU는 인트라 또는 인터 예측 모드(inter prediction modes)이외의 제3 예측 모드로 취급된다. IBC 모드는 너비와 높이가 모두 64 루마 샘플보다 작거나 같은 CU에 적용될 수 있다.
인코더 측에서, 해쉬-기반 모션 추정이 IBC에 대해 수행된다. 상기 인코더는 너비 또는 높이가 16 휘도 샘플들보다 크지 않은 블록들에 대하여 RD 체크를 수행한다. 비 머지(non-merge) 모드에 대하여, 블록 벡터 탐색이 해쉬-기반 탐색을 먼저 사용하여 수행된다. 해쉬 탐색이 유효한 후보를 리턴시키지 않으면, 블록 매칭 기반의 로컬 탐색이 수행될 것이다.
해쉬-기반 탐색에서, 현재 블록과 참조 블록 사이의 해쉬 키 매칭(32-bit CRC)이 모든 허용된 블록 사이즈들로 확장된다. 현재 픽처 내 모든 위치들에 대한 해쉬 키 계산은 4x4 서브블록들에 기반한다. 더 큰 사이즈의 현재 블록에 대하여, 모든 4x4 서브블록들에서의 모든 해쉬 키들이 모든 대응하는 참조 위치들에서의 해쉬 키들과 매칭되면, 참조 블록의 해쉬 키와 매칭되도록 해쉬 키가 결정된다. 다중 참조 블록들의 해쉬 키들이 현재 블록의 해쉬 키와 매치되는 것으로 발견되면, 각 매칭된 참조 블록의 블록 벡터 비용들이 계산되고 최소의 비용을 갖는 것이 선택된다. 블록 매칭 탐색에서, 탐색 범위는 이전 및 현재 CTU들을 포함하는 것으로 설정된다. CTU 레벨에서, IBC 모드는 플래그로 시그널링되며, 아래와 같이 IBC AMVP 모드 또는 IBC 스킵/머지 모드로 시그널링될 수 있다.
-IBC 스킵/머지 모드: 머지 후보 인덱스는 이웃하는 후보 IBC 코딩된 블록들에서 리스트 중의 블록 벡터 후보들 가운데 어느 것이 현재 블록을 예측하는 데에 사용되는가를 지시하기 위하여 사용된다. 머지 리스트는 공간적, HMVP 및 IBC 머지 후보 리스트는 공간적, HMVP 및 쌍을 이루는 후보들로 구성된다.
- IBC AMVP 모드: 블록 벡터 차이는 모션 벡터 차이와 동일한 방식으로 코딩된다. 블록 벡터 예측 방법은 두 개의 후보들을 예측기로 사용하는데, 하나는 좌측 이웃 블록 벡터이고, 다른 하나는 상단 이웃 블록 벡터이다(IBC 코딩된 경우). 이웃 중 어느 하나를 사용할 수 없는 경우, 디폴트 블록 벡터가 예측기로 사용될 것이다. 블록 벡터 예측기 인덱스를 지시하기 위하여 플래그가 시그널링된다.
2.6. 팔레트 모드
팔레트 모드 시그널링을 위해, 팔레트 모드는 코딩 유닛을 위한 예측 모드로 코딩된다. 즉, 코딩 유닛을 위한 예측 모드들은 MODE_INTRA, MODE_INTER, MODE_IBC 그리고 MODE_PLT일 수 있다. 팔레트 모드가 활용되는 경우, CU 내의 픽셀 값들은 대표 컬러 값들의 작은 세트로 표시된다. 이 세트는 팔레트라 불린다. 팔레트 컬러들에 근접하는 값들을 가지는 픽셀들에 대해, 팔레트 인덱스들이 시그널링된다. 팔레트 바깥의 값들을 가지는 픽셀들에 대해, 픽셀은 이스케이프(escape) 심볼로 표시되며, 양화된 픽셀 값들은 직접적으로 시그널링된다.
팔레트 인코딩된 블록을 디코딩하기 위해, 디코더는 팔레트 컬러들 및 인덱스들을 디코딩할 필요가 있다. 팔레트 컬러들은 팔레트 테이블로 기술되고, 팔레트 테이블 코딩 툴들로 인코딩된다. 이스케이프 플래그는 각각의 CU에 대해 시그널링되어 이스케이프 심볼들이 현재 CU에 존재하는지 여부를 지시한다. 만약 이스케이프 심볼들이 존재한다면, 상기 팔레트 테이블은 하나씩 증가하고, 마지막 인덱스는 이스케이프 모드에 할당된다. CU 내의 모든 픽셀들의 팔레트 인덱스들은 팔레트 인덱스 맵을 형성하며 팔레트 인덱스 맵 코딩 툴들로 인코딩된다.
상기 팔레트 테이블의 코딩을 위해, 팔레트 예측기가 유지된다. 상기 예측기는 각 슬라이스의 시작에서 초기화되며, 이때 예측기는 0으로 재설정된다. 상기 팔레트 예측기 내의 각 엔트리에 대해, 재사용 플래그가 시그널링되어 그것이 현재 팔레트의 부분인지 여부를 지시한다. 재사용 플래그들은 제로들(zeros)의 런 길이 코딩을 사용하여 전송된다. 이 다음에, 새로운 팔레트 엔트리들의 수는 0차 지수 골롬 코드를 사용하여 시그널링된다. 마지막으로, 상기 새로운 팔레트 엔트리들에 대한 성분 값들이 시그널링된다. 현재 CU를 인코딩한 후에, 상기 팔레트 예측기는 현재 팔레트를 사용하여 업데이트될 것이며, 현재 팔레트에서 재사용되지 않은 이전 팔레트 예측기로부터의 엔트리들은 허용된 최대 크기에 도달할 때까지 새로운 팔레트 예측기의 종단에 추가된다(팔레트 충전(stuffing)).
상기 팔레트 인덱스 맵을 코딩하기 위해, 상기 인덱스들은 도 3에 도시된 것과 같은 수평 및 수직 횡단 스캔들을 사용하여 코딩된다. 스캔 순서는 palette_transpose_flag를 사용하여 비트스트림에서 명시적으로 시그널링된다.
도 3은 수평 및 수직 횡단 스캔들의 예들을 도시한다.
팔레트 인덱스들은 2개의 주요 팔레트 샘플 모드들 'INDEX' 및 'COPY_ABOVE'를 사용하여 코딩된다. 모드는, 수평 스캔이 사용되는 경우 상단 행을 제외한 플래그를 사용하여 시그널링되며, 수직 스캔이 사용되거나 이전 모드가 'COPY_ABOVE'인 경우 첫 번째 열을 제외한 플래그를 사용하여 시그널링된다. 'COPY_ABOVE' 모드에서, 상기 행에 있는 샘플의 팔레트 인덱스가 복사된다. 'INDEX' 모드에서는, 팔레트 인덱스가 명시적으로 시그널링된다. 'INDEX' 및 'COPY_ABOVE' 모드들 모두에 대해, 동일한 모드를 사용하여 코딩되는 픽셀들의 수를 명시하는 런 값이 시그널링된다.
인덱스 맵을 위한 인코딩 순서는 다음과 같다. 우선, CU에 대한 인덱스 값들의 수가 시그널링된다. 그 다음으로, 절단된 이항 코딩을 사용하여 전체 CU에 대한 실제 인덱스 값들의 시그널링이 온다. 상기 인덱스 값들 뿐 아니라 인덱스들의 수 모두 바이패스 모드에서 코딩된다. 이것은 인덱스 관련한 바이패스 빈들(bins)을 함께 그룹화한다. 그 다음으로, 팔레트 모드(INDEX 또는 COPY_ABOVE) 및 런은 인터리브(interleaved) 방식으로 시그널링된다. 마지막으로, 상기 전체 CU에 대한 이스케이프 샘플들에 해당하는 성분 이스케이프 값들이 함께 그룹화되고 바이패스 모드로 코딩된다. 추가적인 신택스 요소 last_run_type_flag는 상기 인덱스 값들을 시그널링한 후에 시그널링된다. 이 신택스 요소는, 인덱스들의 수와 결합하여, 블록의 마지막 런에 해당하는 런 값을 시그널링할 필요성을 제거한다.
VTM에서, 듀얼 트리는 루마 및 크로마에 대한 코딩 유닛 파티셔닝을 분리하는 I 슬라이스에 대해 활성화된다. 이로 인해, 본 제안에서, 팔레트는 루마 (Y 성분) 및 크로마 (Cb 및 Cr 성분들)에 개별적으로 적용된다. 만약 듀얼 트리가 비활성화되면, HEVC 팔레트에서와 같이, 팔레트는 Y, Cb 및 Cr 성분들에 함께 적용될 것이다.
2.7. 크로스 컴포넌트 선형 모델 예측
크로스 컴포넌트 선형 모델(CCLM: cross-component linear model) 예측 모드가 VVC에서 사용되며, 이를 위해 크로마 샘플들은 다음과 같이 선형 모델을 이용하여 동일한 CU의 재구성된 루마 샘플들에 기초하여 예측된다.
Figure pct00004
여기서 predC(i, j)는 CU 내의 예측된 크로마 샘플들을 나타내고, recL(i, j)는 상기 동일한 CU의 다운샘플링된 재구성된 루마 샘플들을 나타낸다.
도 4는 LM 모드에 관련된 현재 블록의 샘플 및 좌측 및 상단 샘플들의 위치의 예를 도시한다.
도 4는
Figure pct00005
Figure pct00006
의 유도를 위해 사용되는 샘플들의 위치들의 예들을 도시한다.
상단 템플릿 및 좌측 템플릿들이 LM 모드에서 선형 모델 계수들을 계산하는 데에 함께 사용될 수 있는 것 외에, 그것들은 LM_A 및 LM_B 모드들이라 불리는, 다른 2개의 LM 모드들에서 교대로 사용될 수도 있다. LM_A 모드에서는 오직 상단 템플릿만이 선형 모델 계수들을 계산하는 데에 사용된다. 더 많은 샘플들을 얻기 위해서, 상단 템플릿은 (W+H)까지 연장된다. LM-L 모드에서는 오직 좌측 템플릿 만이 선형 모델 계수들을 계산하는 데에 사용된다. 더 많은 샘플들을 얻기 위해서, 좌측 템플릿은 (H+W)까지 연장된다. 비-정방형 블록의 경우, 상단 템플릿은 W+W까지 연장되고, 좌측 템플릿은 H+H까지 연장된다.
상기 CCLM 파라미터들(
Figure pct00007
Figure pct00008
)는 최대 4개의 이웃 크로마 샘플들 및 그것들에 상응하는 다운 샘플링된 루마 샘플들로 유도된다. 현재 크로마 블록 치수가 WxH라 하면, W' 및 H'는 다음과 같이 설정된다.
- LM 모드가 적용되는 경우, W'=W, H'=H;
- LM-A 모드가 적용되는 경우, W'=W+H;
- LM-L 모드가 적용되는 경우, H'=H+W;
상단 이웃 위치들은 S[0, -1]??S[W'-1, -1]로 표시되며, 좌측 이웃 위치들은 S[-1, 0]??S[-1, H'-1]로 표시된다. 그 다음으로, 4개의 샘플들이 아래와 같이 선택된다.
- LM 모드가 적용되고 상단 및 좌측 이웃 샘플들이 모두 이용가능한 경우, S[W'/4, -1], S[3W'/4, -1], S[-1, H'/4], S[-1, 3H'/4];
- LM-A 모드가 적용되거나 또는 오직 상단 이웃 샘플들만이 이용가능한 경우, S[W'/8, -1], S[3W'/8, -1], S[5W'/8, -1], S[7W'/8, -1];
- LM-L 모드가 적용되거나 또는 오직 좌측 이웃 샘플들만이 이용가능한 경우, S[-1, H'/8], S[-1, 3H'/8], S[-1, 5H'/8], S[-1, 7H'/8];
선택된 위치들에 있는 4개의 이웃 루마 샘플들은 다운 샘플링되며 2개의 더 작은 값들 x0 A 및 x1 A 그리고 2개의 더 큰 값들 x0 B 및 x1 B을 찾기 위해 4번 비교된다. 이것들에 상응하는 크로마 샘플 값들은 y 0 A , y 1 A , y 0 B y 1 B 로 표시된다. 그 다음에, x A , x B , y A y B 가 다음과 같이 유도된다.
Figure pct00009
마지막으로, 상기 선형 모델 파라미터들
Figure pct00010
Figure pct00011
는 다음 수학식들에 따라 획득된다.
Figure pct00012
파라미터α를 산출하는 나눗셈 연산은 룩업 테이블로 구현된다. 테이블을 저장하기 위해 필요한 메모리를 감소시키기 위해, diff 값(최대 값과 최소 값 간의 차이) 및 파라미터α는 지수 표기법에 의해 표현된다. 예를 들어, diff는 4-비트 유효 부분 및 지수로 근사화된다. 결과적으로, 1/diff에 대한 테이블은 다음과 같이 가수(significand)의 16개의 값에 대해 16개의 요소로 감소된다.
DivTable [ ] = { 0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0 } (2-5)
이것은 산출의 복잡성뿐만 아니라 필요한 테이블들을 저장하기 위해 필요한 메모리 크기를 감소시키는 둘 다의 이점을 가질 것이다.
4:2:0 비디오 시퀀스들에 대한 크로마 샘플 위치들을 매칭시키기 위해, 수평 및 수직 방향들 둘 다에서 2 대 1 다운샘플링 비율을 달성하기 위해 루마 샘플들에 2가지 타입의 다운샘플링 필터가 적용된다. 다운샘플링 필터의 선택은 SPS 레벨 플래그에 의해 특정된다. 2개의 다운샘플링 필터들은 다음과 같고, 이들은 각각 "타입-0" 및 "타입-2" 콘텐츠에 대응한다.
Figure pct00013
상단 참조 라인이 CTU 경계에 있을 때 다운샘플링된 루마 샘플들을 만들기 위해 단 하나의 루마 라인(인트라 예측에서의 일반 라인 버퍼)만이 이용된다는 점에 유의한다.
이러한 파라미터 계산은, 인코더 탐색 동작으로서만 수행되는 것이 아니고, 디코딩 프로세스의 일부로서 수행된다. 그 결과, 디코더에 상기
Figure pct00014
Figure pct00015
값들을 전달하기 위해 어떤 신택스도 사용되지 않는다.
크로마 인트라 모드 코딩에 대해, 크로마 인트라 모드 코딩에 대해 총 8개의 인트라 모드가 허용된다. 해당 모드들은 5개의 전통적인 인트라 모드 및 3개의 크로스 컴포넌트 선형 모델 모드(CCLM, LM_A 및 LM_L)를 포함한다. 크로마 모드 시그널링 및 유도 프로세스는 테이블 2-2에 제시된다. 크로마 모드 코딩은 대응하는 루마 블록의 인트라 예측 모드에 직접 의존한다. 루마 및 크로마 성분들에 대한 개별 블록 파티셔닝 구조가 I 슬라이스들에서 활성화되므로, 하나의 크로마 블록은 다수의 루마 블록들에 대응할 수 있다. 따라서, 크로마 DM 모드에 대해, 현재 크로마 블록의 중앙 위치를 커버하는 대응하는 루마 블록의 인트라 예측 모드가 직접 상속된다.
테이블 2-2. cclm_가 활성화되는 경우 루마 모드로부터 크로마 예측 모드의 유도
Figure pct00016
2.8. 블록 차분 펄스-코드 변조 코딩(Block differential pulse-code modulation coding: BDPCM)
BDPCM는 JVET-M0057에서 제안된다. 현재 픽셀의 예측에 대해 좌측(A) (상단(B)) 픽셀을 (각각) 사용하는 수평(수직) 예측기들의 모양으로 인해, 블록을 처리하는 가장 처리량-효율적인 방식은 하나의 열의 모든 픽셀들을 병렬 처리하고, 이 열들을(라인들을 각각) 순차적으로 처리하는 것이다. 처리량을 늘리기 위해, 우리는 다음 프로세스를 도입한다. 너비가 4인 블록은, 이 블록에 대해 선택된 예측기가 수직인 경우, 수직 프론티어로 절반씩 2개로 분할되며, 높이가 4인 블록은, 이 블록에 대해 선택된 예측기가 수평인 경우, 수직 프론티어로 절반씩 2개로 분할된다.
블록이 분할될 때, 하나의 영역(area)로부터의 샘플들은 예측을 산출하기 위하여 또 다른 구역으로부터의 픽셀들을 사용하도록 허용되지 않는다. 이 상황이 발생하면, 예측 픽셀이 예측 방향에서 참조 픽셀에 의하여 대체된다. 이는 수직적으로 예측된 4x8 블록에서 현재 픽셀 X의 다른 위치들에 대하여 도 5에 도시된.
도 5는 4x8 샘플들의 블록을 2개의 독립적인 디코딩 가능한 영역들로 분할하는 예를 도시한다.
도 6에서 나타난 바와 같이, 이러한 특성 때문에, 2개의 주기들에서 4x4 블록 및 4개의 주기에서 4x8 또는 8x4블록 등을 처리하는 것이, 이제 가능하게 되었다.
도 6은 수직 예측기로 4xN 블록들에 대한 처리량을 최대화하기 위한 픽셀 행들(rows)의 예시적인 처리 순서를 도시한다.
테이블 2-3은 블록 크기에 따라 블록을 처리하는 데에 요구되는 주기의 수를 요약한다. 8보다 크거나 같은 치수들을 모두 가지는 블록의 경우 주기 당 8 픽셀 이상으로 처리될 수 있음을 보이는 것은 간단한 일이다.
테이블 2-3 4xN 및 Nx4 크기의 블록들에 대한 가장 낮은 처리량
Figure pct00017
2.9. 양자화된 잔차 도메인 BDPCM
JVET-N0413에서, 양자화된 잔차 도메인 BDPCM(RBDPCM으로 이후에 표시됨)이 제안된다. 인트라 예측은, 인트라 예측과 유사한 예측 방향(수평 또는 수직 예측)에서의 샘플 카피에 의하여 전체 블록에 대해 행해진다. 잔차는 양자화되고, 상기 양자화된 잔차 및 그것의 (수평 또는 수직) 예측기 양자화 값 간의 델타는 코딩된다.
크기가 M(행) x N(열)인 블록에 대해,
Figure pct00018
가 상단 또는 좌측 블록 경계 샘플들 중 필터링되지 않은 샘플들을 사용하여 수평으로(예측된 블록 내에서 상단 이웃 라인을 각 라인으로 카피) 또는 수직으로(예측된 블록 전체에 걸쳐 좌측 이웃 픽셀 값을 라인 별로 카피) 인트라 예측을 실시한 후의 예측 잔차라 하자.
Figure pct00019
을 상기 잔차
Figure pct00020
의 양자화된 버전이라 하고, 이때 잔차는 원본 블록 및 예측된 블록 값들 사이의 차이이다. 그 다음으로, 블록 DPCM은 양자화된 잔차 샘플들에 적용되며, 그 결과는
Figure pct00021
요소들을 가지는 수정된 M Х N 어레이 R이다. 수직 BDPCM이 시그널링되는 경우, 아래와 같다.
Figure pct00022
수평 예측에 대해, 유사한 규칙들이 적용되며, 잔차 양자화된 샘플들은 아래와 같이 획득된다.
Figure pct00023
잔차 양자화된 샘플들
Figure pct00024
은 디코더로 전송된다.
디코더 측에서, 상기 계산들은 반전되어
Figure pct00025
를 산출한다. 수직 예측의 경우는 아래와 같다.
Figure pct00026
수평 예측의 경우는 아래와 같다.
Figure pct00027
역 양자화된 잔차들
Figure pct00028
은 인트라 블록 예측 값들에 가산되어 재구성된 샘플 값들을 산출한다.
이 방식의 주요한 장점은, 계수들이 파싱됨에 따라 예측기를 단순히 추가하기만 하면 계수 파싱 동안 즉석에서 인버트 DPCM이 행해질 수 있거나, 파싱 이후에 수행될 수 있다는 것이다.
변환 스킵은 양자화된 잔차 도메인 BDPCM에서 항상 사용된다.
2.10. VVC에서 다중 변환 세트(Multiple Transform Set: MTS)
VTM4에서, 크기 64x64 까지의, 큰 블록-크기 변환들이 활성화되고, 이는 더 높은 해상도 비디오, 예를 들어, 1080p 및 4K 시퀀스들의 경우에 주로 유용하다. 저-주파수 계수들이 유지되도록, 고 주파수 변환 계수들은 64와 동일한 크기(너비 또는 높이, 또는 너비 및 높이 모두)를 갖는 변환 블록들에 대하여 0으로 맞춘다. 예를 들어, 블록 너비가 M이고 블록 높이가 N인 MxN 변환 블록의 경우, M이 64와 같은 경우, 변환 계수들 중 좌측 32개 열들만이 유지된다. 유사하게, N이 64와 같은 경우, 변환 계수들 중 상단 32개 행들만이 유지된다. 변환 스킵 모드가 큰 블록을 위해 사용되는 경우, 전체 블록은 어떤 값들도 0으로 하지 않고서 사용된다. VTM은 또한 SPS에서 구성가능한 최대 변환 크기를 지원하고 그 결과 인코더는 구체적인 구현의 필요에 따라 16-길이, 32-길이 또는 64-길이 변환 크기까지 선택할 수 있는 융통성을 가진다.
HEVC에서 채택된 DCT-II에 추가로, 다중 변환 선택(Multiple Transform Selection: MTS) 방식은 인터 및 인트라 코딩된 블록들 모두를 잔차 코딩하는 데에 사용된다. 그것은 DCT8/DST7으로부터 다중 선택된 변환들을 사용한다. 새롭게 도입된 변환 행렬들은 DST-VII 및 DCT-VIII이다. 테이블 2-4는 상기 선택된 DST/DCT의 기본 함수들을 보여준다.
테이블 2-4 N-포인트 입력을 위한 DCT-II/ VIII 및 DSTVII의 변환 기본 함수들
Figure pct00029
변환 행렬의 직교성을 유지하기 위하여, 변환 행렬들은 HEVC에서의 변환 행렬들보다 더 정확하게 양자화된다. 16-비트 범위 내의 변환된 계수들의 중간 값들을 유지하기 위하여, 수평 변환 이후 및 수직 변환 이후에, 모든 계수들은 10-비트를 가져야 한다.
MTS 방식을 제어하기 위하여, 별도의 활성화 플래그들은 인트라 및 인터 각각에 대하여 SPS 레벨에서 특정된다. MTS가 SPS에서 활성화(enabled), CU 레벨 플래그는 MTS가 적용되는지 또는 아닌지 여부를 지시하기 위하여 시그널링된다. 여기서, MTS는 루마에 대해서만 적용된다. MTS CU 레벨 플래그는, 다음 조건들이 충족될 때, 시그널링된다.
- 너비와 높이 모두 32 이하
- CBF 플래그가 1과 동일
MTS CU 플래그가 0과 같은 경우, DCT2는 두 방향 모두에 적용된다. 그러나, MTS CU 플래그가 1과 같은 경우, 2개의 다른 플래그들이 각각 수평 및 수직 방향들에 대한 변환 타입을 지시하기 위하여 추가적으로 시그널링된다. 테이블 2-5에 제시된 것과 같은 변환 및 시그널링 매핑 테이블은 ISP 및 암묵적 MTS에 대한 변환 선택을 통일하였으며, 인트라 모드 및 블록 모양 의존성을 제거함으로써 사용된다. 현재 블록이 ISP 모드이거나 상기 현재 블록이 인트라 블록이고 인트라 및 인터 모두의 명시적 MTS가 on일 경우, 오직 DST7만이 수평 및 수직 변환 코어들에 대해 사용된다. 변환 행렬 예측에 관한 한, 8-비트 일차 변환 코어들이 사용된다. 그러므로, HEVC에서 사용된, 4-포인트 DCT-2 및 DST-7, 8-포인트, 16-포인트 및 32-포인트 DCT-2를 포함하는 모든 변환 코어들은 같게 유지된다. 또한, 64-포인트 DCT-2, 4-포인트 DCT-8, 8-포인트, 16-포인트, 32-포인트 DST-7 및 DCT-8를 포함하는 다른 변환 코어들은 8-비트 일차 변환 코어들을 사용한다.
테이블 2-5. 변환 및 시그널링 매핑 테이블
Figure pct00030
대형 DST-7 및 DCT-8의 복잡성을 줄이기 위해, 고주파 변형 계수들은 크기(너비 또는 높이 또는 너비와 높이 모두)가 32와 같은 DST-7 및 DCT-8 블록들에 대해 제로아웃된다. 오직 16x16 저주파 영역 내의 계수들만이 유지된다.
HEVC에서와 같이, 블록의 잔차는 변형 스킵 모드로 코딩된다. 신택스 코딩의 중복을 피하기 위해, 변환 스킵 플래그는 CU 레벨 MTS_CU_flag가 0과 같지 않은 경우 시그널링되지 않는다. 변환 스킵에 대한 블록 크기 제한은 JEM4에서 MTS에 대한 제한과 동일하며, 이것이 지시하는 바는 블록 너비 및 높이 모두가 32 이하인 경우 변환 스킵이 CU에 대해 적용가능하다는 것이다. LFNST 또는 MIP가 현재 블록에 대해 활성화되는 경우 암묵적 MTS 변환이 DCT2에 설정된다는 것에 유의하라. 또한, 상기 암묵적 MTS는 MTS가 인터 코딩된 블록들에 활성화되는 경우 여전히 활성화될 수 있다.
2.11. 저주파 비분리 변환(Low-Frequency Non-Separable Transform: LFNST)
VVC에서, 감축된 2차 변환으로 알려진, 저주파 비분리 변환(LFNST)은, 도 7에 도시된 것과 같이, 순방향 1차 변환 및 양자화 사이에(인코더 측에서) 그리고 역양자화 및 역1차 변환 사이에(디코더 측에서) 적용된다. LFNST에서 4x4 비분리 변환 또는 8x8 비분리 변환은 블록 크기에 따라 적용된다. 예를 들어, 4x4 LFNST는 작은 블록들 (즉, 최소 크기(너비, 높이) < 8)에 대해 적용되며, 8x8 LFNST는 더 큰 블록들 (즉, 최소 크기(너비, 높이) > 4)에 대해 적용된다.
도 7은 저주파수 비분리 변환(LFNST) 프로세스의 일 예를 도시한다.
LFNST에서 사용되고 있는 비분리 변환의 적용은 아래와 같이 입력을 예로 사용하여 기술된다.
Figure pct00031
4x4 LENST를 적용하기 위해, 4x4 입력 블록 X는 우선 벡터
Figure pct00032
로 표현된다.
Figure pct00033
비분리 변환은
Figure pct00034
으로 계산되며, 여기서
Figure pct00035
는 변환 계수 벡터를 지시하고, T는 16x16 변환 행렬이다. 16x1 계수 벡터
Figure pct00036
는 해당 블록에 대한 스캐닝 순서(수평, 수직 또는 대각선)를 사용하여 후에 4x4 블록으로 재구성된다. 더 작은 인덱스를 가지는 계수들은 상기 4x4 계수 블록에서 더 작은 스캐닝 인덱스로 배치될 것이다.
2.11.1. 감축된 비분리 변환
LFNST (저주파 비분리 변환)은 비분리 변환을 적용하기 위한 직접 행렬 곱셈 접근법에 기반하여 다수의 반복 없이 단일 단계에서 실시될 수 있다. 하지만, 비분리 변환 행렬 차원은 계산 복잡성 및 변환 계수들을 저장할 메모리 공간을 최소화하기 위해 감소될 필요가 있다. 따라서, 감축된 비분리 변환(또는 RST) 방법이 LFNST에서 사용된다. 상기 감축된 비분리 변환의 주요 아이디어는 N차 벡터(8x8 NSST에 대해 N은 통상적으로 64와 같음)를 상이한 공간에 있는 R차 벡터에 매핑시키는 것이고, 이때 N/R(R < N)은 감축 인자이다. 따라서, NxN 행렬 대신에, RST 행렬이 아래와 같이 RxN 행렬이 된다.
Figure pct00037
여기서 상기 변환의 R행들은N 차원 공간의 R 기수들이다. RT에 대한 역방향 변환 행렬은 그것의 순방향 변환의 전치 행렬이다. 8x8 LFNST에 대해, 감축 인자 4가 적용되며, 종래의 8x8 비분리 변환 행렬 크기인, 64x64 직접 행렬은 16x48 직접 행렬로 감축된다. 그러므로, 48x16 역 RST 행렬은 디코더 측에서 사용되어 8x8 좌상단 영역들에서 코어 (1차) 변환 계수들을 생성한다. 16x48 행렬들이 동일한 변환 세트 구성을 가지는 16x64 대신 적용되는 경우, 그것들 각각은 우하단 4x4 블록을 제외한 좌상단 8x8 블록내 3개의 4x4 블록들 로부터 48개의 입력 데이터를 얻는다. 상기 감축된 차원으로, 모든 LFNST 행렬들을 저장하기 위한 메모리 사용은 합당한 성능 감소와 함께 10KB에서 8KB로 감소된다. 복잡성을 줄이기 위해서, LFNST는 제1 계수 서브 그룹 외부의 모든 계수들이 유효하지 않는 경우에만 적용 가능하도록 제한된다. 따라서, LFNST가 적용되는 경우, 모든 1차 전용 변환 계수들은 0이어야 한다. 이로 인해 최종 유효 위치에서 LFNST 인덱스 시그널링 상황을 가능하게 하며, 그 결과 현재 LFNST 설계에서 추가 계수 스캐닝을 방지하게 되며, 이는 오직 특정 위치에서의 유효 계수들에 대한 검사를 위해 필요하다. (픽셀 당 곱셈의 측면에서) LFNST의 최악의 처리는 4x4 및 8x8 블록들에 대한 비분리 변환들을 8x16 및 8x48 변환들로 각각 제한하게 된다. 이러한 경우, 16 미만의 다른 크기들에 대해, 최종 유효 스캔 위치는 LFNST가 적용되는 경우 8 미만이어야 한다. 4xN 및 Nx4 모양 그리고 N > 8인 블록들에 대해, 상기 제안된 제약은 LFNST가 이제 오직 한 번만 적용되며, 오직 좌상단 4x4 영역에만 적용된다는 것을 함축한다. LFNST가 적용되는 경우, 모든 1차 전용 계수들이 0이므로, 1차 변환들에 필요한 동작들의 수는 이와 같은 경우에 감소된다. 인코더의 관점에서 보면, LFNST 변환들이 검사되는 경우 계수들의 양자화는 상당히 단순화된다. 율-왜곡 최적화된 양자화는 (스캔 순서에 따른) 최대 첫 16개의 계수들에 대해 실시되어야 하며, 나머지 계수들은 0로 된다.
2.11.2. LFNST 변환 선택
총 4개의 변환 세트들이 있으며, 변환 세트당 2개의 비분리 변환 행렬들(커널들)이 LFNST에서 사용된다. 인트라 예측 모드로부터 변환 세트로의 매핑은 테이블 2-6에 보이는 것과 같이 미리 정의된다. 3개의 CCLM 모드들 (INTRA_LT_CCLM, INTRA_T_CCLM또는 INTRA_L_CCLM) 중 하나가 현재 블록에 대해 사용되는 경우(81 <= predModeIntra <= 83), 변환 세트 0가 현재 크로마 블록에 대해 선택된다. 각각의 변환 세트에 대해, 선택된 비분리 2차 변환 후보는 명시적으로 시그널링된 LFNST 인덱스에 의해 더 명시된다. 상기 인덱스는 비트스트림에서 변환 계수들 다음에 인트라 CU 당 1회 시그널링된다.
테이블 2-6. 변환 선택 테이블
Figure pct00038
2.11.3. LFNST 인덱스 시그널링 및 다른 툴들과의 상호작용
제1 계수 서브 그룹 외부의 모든 계수들이 유효하지 않는 경우에만 LFNST가 적용가능하도록 제한되기 때문에, LFNST 인덱스 코딩은 최종 유효 계수의 위치에 의존한다. 또한, LFNST 인덱스는 문맥 코딩되지만 인트라 예측 모드에 의존하지 않으며, 오직 첫 번째 빈만이 문맥 코딩된다. 더 나아가, LFNST는 인트라 및 인터 슬라이스들 모두에서 인트라 CU에 대해 적용되며 그리고 루마 및 크로마 모두에 대해 적용된다. 듀얼 트리가 활성화되는 경우, 루마 및 크로마에 대한 LFNST 인덱스들은 별개로 시그널링된다. 인터 슬라이스의 경우(상기 듀얼 트리가 비활성화), 단일 LFNST 인덱스가 루마 및 크로마 모두에 대해 시그널링되어 사용된다.
RST가 모든 가능한 파티션 블록에 적용되더라도 성능 개선은 미미하기 때문에, ISP 모드가 선택되는 경우, LFNST는 비활성화되고 RST 인덱스가 시그널링되지 않는다. 더 나아가, ISP 예측된 잔차에 대해 RST를 비활성화하는 것은 인코딩 복잡성을 감소시킬 수 있을 것이다. MIP 모드가 선택되는 경우, LFNST 또한 비활성화되며 인덱스는 시그널링되지 않는다.
64x64 보다 큰 대형 CU가 기존의 최대 변환 크기 제한(64x64)으로 인해 암묵적으로 분할(TU 타일링)됨을 고려할 때, LFNST 인덱스 탐색은 디코드 파이프라인 단계들의 특정 수에 대한 데이터 버퍼링을 4배로 증가시킬 수 있다. 따라서, LFNST에 허용되는 최대 크기는 64x64로 제한된다. LFNST는 오직 DCT2와 함께 활성화된다는 사실에 주의하라.
2.12. 크로마에 대한 변환 스킵
크로마 변환 스킵(Chroma transform skip: TS)이 VVC에 도입되었다. 도입의 동기는 transform_skip_flag와 mts_idx를 residual_coding 부분으로 재배치함로써 루마와 크로마 사이의 TS 및 MTS 시그널링을 통일시키는 것이다. 크로마 TS에 대해 하나의 문맥 모델이 추가된다. 상기 mts_idx에 대해서는 어떠한 문맥 모델도 어떠한 이진화도 변경되지 않는다. 또한, 크로마 TS가 사용되는 경우, TS 잔차 코딩 또한 적용된다.
시멘틱스 (Semantics)
transform_skip_flag[ x0 ][ y0 ][ cIdx ]는 변환이 연관된 루마 변환 블록에 적용되는지 여부를 명시한다. 어레이 인덱스들 x0 및 y0는 픽처의 좌상단 루마 샘플에 대하여 고려되는 변환 블록의 좌상단 루마 샘플의 위치 (x0, y0)를 명시한다. 1과 같은 transform_skip_flag[ x0 ][ y0 ][ cIdx ]은 현재 루마 변환 블록에 어떤 변환도 적용되지 않음을 명시한다. 어레이 인덱스 cIdx는 색 성분에 대한 지시자(indicator)를 명시하며, 그것은 루마에 대해 0과 같고, Cb에 대해 1과 같으며, Cr에 대해 2와 같다. 0과 같은 transform_skip_flag[ x0 ][ y0 ][ cIdx ]는 변환이 현재 변환 블록에 적용되는지 여부에 관한 결정이 다른 신택스 요소들에 의존한다는 것을 명시한다. transform_skip_flag[ x0 ][ y0 ][ cIdx ]가 존재하지 않는 경우, 0과 같은 것으로 추론된다.
2.13. 크로마에 대한 BDPCM
크로마 TS 지원에다, BDPCM이 크로마 성분들에 추가된다. sps_bdpcm_enable_flag가 1인 경우, 추가 신택스 요소 sps_bdpcm_chroma_enable_flag가 SPS에 추가된다. 플래그들은 테이블 2-7에 지시된 것과 같은 동작을 가진다.
테이블 2-7. 루마 및 크로마 BDPCM에 대한 sps 플래그들
Figure pct00039
BDPCM이 루마에 대해서만 사용가능한 경우, 현재 동작은 변경되지 않는다. BDPCM이 크로마에 대해서도 사용가능한 경우, bdpcm_chroma_flag이 각 크로마 블록에 대해 전송된다. 이것은 BDPCM이 크로마 블록들에 대해 사용되는지 여부를 지시한다. 사용되는 경우, BDPCM은 크로마 성분들 모두에 대해 사용되며, 추가적인 bdpcm_dir_chroma 플래그가 코딩되어, 크로마 성분들에 대해 사용되는 예측 방향을 지시한다.
디블로킹 필터는 2개의 Block-DPCM 블록들 사이의 경계에 대해 비활성화되며, 이는 상기 블록들 중 어느 것도 블로킹 아티팩트에 대해 대개의 경우 책임이 있는 변환 단계를 사용하기 때문이다. 이러한 비활성화는 루마 및 크로마 성분들에 독립적으로 발생한다.
3. 개시된 해결수단들에 의해 해결되는 기술적 문제들의 예들
CCLM에서 선형 파라미터 유도의 현재 설계는 다음과 같은 문제들을 가지고 있다.
1. 비 4:4:4 컬러 포맷에 대해, CCLM에서의 선형 파라미터의 유도는 이웃 크로마 샘플들 및 다운샘플링된 동위치 이웃 루마 샘플들을 포함한다. 도 8에 도시된 것과 같이, 현재 VVC에서, 가장 가까운 라인이 CTU 경계에 있지 않는 경우, 다운샘플링된 동위치 이웃 상단 루마 샘플들은 4:2:2 비디오들에 대한 현재 블록 상단의 두 번째 라인을 사용하여 유도된다. 하지만, 상기 4:2:2 비디오들에 대해, 수직 분해능은 변경되지 않는다. 따라서, 상기 다운샘플링된 동위치 이웃 상단 루마 샘플들 및 상기 이웃 크로마 샘플들 사이에 위상 변이가 있다.
도 8은 4:2:2 비디오들을 위한 CCLM 파라미터들의 유도에 사용되는 이웃 크로마 샘플들 및 다운 샘플링된 동위치 이웃 루마 샘플들의 예를 도시한다.
2. 현재 VVC에서, 동일한 최대 블록 크기는 루마 변환 스킵 플래그의 시그널링 및 크로마 변환 스킵 플래그의 시그널링을 위한 조건 검사에 사용된다. 이와 같은 설계는 원치 않는 컬러 포맷을 고려하지 않는다.
a. 유사한 문제가 루마 BDPCM 플래그를 시그널링하고 크로마 BDPCM 플래그를 시그널링하는 것에 있어도 존재하며, 이때 상기 동일한 최대 블록 크기는 조건 검사에 사용된다.
4. 실시예들 및 기술들의 목록
아래의 목록은 일반적인 개념들을 설명하기 위한 예들로서 고려되어야 한다. 이 항목들은 좁은 의미로 해석되어서는 안 된다. 또한, 이 항목들은 어떠한 방식으로든 결합될 수 있다.
본 문서에서 용어 'CCLM'은 현재 색 성분에 대한 샘플들/잔차들을 예측하거나 현재 색 성분 내에서 샘플들의 재구성을 유도하기 위해서 크로스 컬러 컴포넌트 정보를 활용하는 코딩 툴을 나타낸다. 그것은 VVC에서 설명되는 CCLM 기술들에 제한되지 않는다.
CCLM에서 선형 파라미터들의 유도
1. 크로마 블록에 대한 CCLM 파라미터들을 유도할 때, 그것의 동위치(collocated) 루마 블록의 하나 또는 복수의 상단 이웃 라인들이 사용되어 그것의 다운샘플링된 동위치 이웃 상단 루마 샘플들을 유도할 수 있다.
a. 일 예에서, 현재 크로마 블록이 상단 CTU 경계에 있지 않는 경우, 동위치 루마 블록의 가장 가까운 상단 라인이 두 번째 상단 라인 대신에 상기 다운샘플링된 동위치 이웃 상단 루마 샘플들의 유도를 위해 사용될 수 있다.
i. 일 예에서, 다운샘플링된 동위치 이웃 상단 루마 샘플들 및 다운샘플링된 동위치 이웃 좌측 루마 샘플들을 유도하기 위해 하나의 동일한 다운샘플링 필터가 사용될 수 있다.
1) 예를 들어, [1 2 1] 필터가 사용될 수 있다. 더 구체적으로, pDsY[x] = (pY[2*x - 1][-1] + 2 * pY[2 * x][-1] + pY[2 * x + 1][-1] + 2) >> 2이며, 이때 pY[2*x][-1], pY[2*x - 1][-1] 및 pY[2*x + 1][-1]은 가장 가까운 이웃 라인으로부터 온 루마 샘플들이며, pDstY[x]는 다운샘플링된 동위치 이웃 상단 루마 샘플들을 나타낸다.
ii. 일 예에서, 다운샘플링된 동위치 이웃 상단 루마 샘플들 및 다운샘플링된 동위치 이웃 좌측 루마 샘플들을 유도하기 위해 상이한 다운샘플링 필터들(예를 들어, 상이한 필터 탭들/상이한 필터 계수들)이 사용될 수 있다.
iii. 일 예에서, 크로마 블록의 위치와 상관없이, 하나의 동일한 다운샘플링 필터가 다운샘플링된 동위치 이웃 상단 루마 샘플들을 유도하는 데에 사용될 수 있다(예를 들어, 크로마 블록은 상단 CUT 경계에 있을 수도 있고 있지 않을 수도 있다).
iv. 일 예에서, 상기 방법들은 4:2:2 포맷의 영상들/비디오들에만 적용될 수 있다.
b. 일 예에서, 현재 크로마 블록이 상단 CTU 경계에 있지 않는 경우, 동위치 루마 블록의 가장 가까운 상단 라인을 포함하지만 두 번째 상단 라인은 포함하지 않는 상단 이웃 루마 샘플들이 다운샘플링된 동위치 이웃 상단 루마 샘플들의 유도를 위해 사용될 수 있다.
c. 일 예에서, 다운샘플링된 동위치 이웃 상단 루마 샘플들의 유도는 복수의 라인들에 위치한 샘플들에 의존할 수 있다.
i. 일 예에서, 그것은 동위치 루마 블록 상단의 두 번째 가장 가까운 라인 및 가장 가까운 라인 모두에 의존할 수 있다.
ii. 일 예에서, 다운샘플링된 동위치 이웃 상단 루마 샘플들은 상이한 컬러 포맷들(예를 들어, 4:2:0 및 4:2:2)에 대해 하나의 동일한 다운샘플링 필터를 사용하여 유도될 수 있다.
1) 일 예에서, 6-탭 필터(예를 들어, [1 2 1; 1 2 1])가 활용될 수 있다.
a) 일 예에서, 다운샘플링된 동위치 이웃 상단 루마 샘플들은 다음과 같이 유도될 수 있다. pDsY[x] = (pY[2*x - 1][-2] + 2 * pY[2 * x][-2] + pY[2 * x + 1][-2] + pY[2*x - 1][-1] + 2 * pY[2 * x][-1] + pY[2 * x + 1][-1] + 4) >> 3. 여기서 pY는 해당 루마 샘플들이고, pDstY[x]는 다운샘플링된 동위치 이웃 상단 루마 샘플들을 나타낸다.
b) 또는, 더 나아가, 상기 방법은 sps_cclm_colocated_chroma_flag가 0과 같은 경우에 적용될 수 있다.
2) 일 예에서, 5-탭 필터(예를 들어, [0 1 0; 1 4 1; 0 1 0])가 활용될 수 있다.
a) 일 예에서, 다운샘플링된 동위치 이웃 상단 루마 샘플들은 다음과 같이 유도될 수 있다. pDsY[x] = (pY[2 * x][-2] + pY[2 * x - 1][-1] + 4 * pY[2 * x][-1] + pY[2 * x + 1][-1] + pY[2 * x][0] + 4) >> 3. 여기서 pY해당 루마 샘플들이고, pDstY[x]는 다운샘플링된 동위치 이웃 상단 루마 샘플들을 나타낸다.
b) 또는, 더 나아가, 상기 방법은 sps_cclm_colocated_chroma_flag가 1과 같은 경우에 적용될 수 있다.
iii. 일 예에서, 상기 방법들은 4:2:2 포맷의 영상들/비디오들에만 적용될 수 있다.
변환 스킵 코딩된 블록들의 최대 블록 크기 (예를 들어, 1과 같은 transform_skip_flag, 변환 프로세스를 우회하는/아이덴티티 변환을 사용하는 BDPCM 또는 기타 모드들)
2. 변환 스킵 코딩된 블록들의 최대 블록 크기는 색 성분에 의존할 수 있다. 루마 및 크로마에 대해 변환 스킵 코딩된 블록들의 최대 블록 크기를 MaxTsSizeY 및 MaxTsSizeC로 각각 표기한다.
a. 일 예에서, 루마 및 크로마 성분들에 대한 최대 블록 크기들은 상이할 수 있다.
b. 일 예에서, 2개의 크로마 성분들에 대한 최대 블록 크기들은 상이할 수 있다.
c. 일 예에서, 루마 및 크로마 성분들 또는 각각의 색 성분에 대한 최대 블록 크기들은 별개로 시그널링될 수 있다.
i. 일 예에서, MaxTsSizeC/MaxTsSizeY는 시퀀스 헤더/픽처 헤더/SPS/VPS/DPS/PPS/APS/슬라이스 헤더/타일 그룹 헤더와 같은 시퀀스 레벨/픽처 레벨/슬라이스 레벨/타일 그룹 레벨에서 시그널링될 수 있다.
ii. 일 예에서, 상기 MaxTsSizeY는, 변환 스킵이 활성화되는지 여부/BDPCM이 활성화되는지 여부와 같이 조건부로 시그널링될 수 있다.
iii. 일 예에서, 상기 MaxTsSizeC는 컬러 포맷/변환 스킵이 활성화되는지 여부/BDPCM이 활성화되는지 여부와 같이 조건부로 시그널링될 수 있다.
iv. 또는, 루마 및 크로마 성분들에 대한 최대 블록 크기들 간의 예측적 코딩이 활용될 수 있다.
d. 일 예에서, MaxTsSizeC는 MaxTsSizeY에 의존할 수 있다.
i. 일 예에서, MaxTsSizeC는 MaxTsSizeY와 같게 설정될 수 있다.
ii. 일 예에서, MaxTsSizeC는 MaxTsSizeY/N와 같게 설정될 수 있다(N은 정수). 예를 들어, N = 2.
e. 일 예에서, MaxTsSizeC는 크로마 샘플링 비율들에 따라 설정될 수 있다.
i. 일 예에서, MaxTsSizeC는 MaxTsSizeY >> SubWidthC와 같게 설정될 수 있으며, 이때 SubWidthC는 표 2-1에서 정의된다.
ii. 일 예에서, MaxTsSizeC는 MaxTsSizeY >> SubHeightC와 같게 설정될 수 있으며, 이때 SubHeightC는 표 2-1에서 정의된다.
iii. 일 예에서, MaxTsSizeC는 MaxTsSizeY >> max (SubWidthC, SubHeightC)와 같게 설정될 수 있다.
iv. 일 예에서, MaxTsSizeC는 MaxTsSizeY >> min (SubWidthC, SubHeightC)와 같게 설정될 수 있다.
3. 변환 코딩된 블록에 대한 최대 허용 블록 크기 너비 및 높이는 상이하게 정의될 수 있다.
a. 일 예에서, 상기 최대 허용 블록 크기 너비 및 높이는 별개로 시그널링 될 수 있다.
b. 일 예에서, 크로마 변환 코딩된 블록에 대한 상기 최대 허용 블록 크기 너비 및 높이는 MaxTsSizeWC 및 MaxTsSizeHC로 각각 표시될 수 있다. MaxTsSizeWC는 MaxTsSizeY >> SubWidthC와 같게 설정될 수 있고, MaxTsSizeHC는 MaxTsSizeY >> SubHeightC와 같게 설정될 수 있다.
i. 일 예에서, 상기 MaxTsSizeY는 단락 2에서 정의된 것이다.
4. 크로마 블록에 대한 변환 스킵 플래그(예를 들어, transform_skip_flag[x0][y0][1] 및/또는 transform_skip_flag[x0][y0][2])를 시그널링 할지 여부는 크로마 변환 스킵 코딩된 블록들에 대한 최대 허용 치수에 의존한다.
a. 일 예에서, 크로마 변환 스킵 플래그는 다음 조건들에 따라 조건부로 시그널링 될 수 있다.
i. 일 예에서, 상기 조건들은 다음과 같다. tbW가 MaxTsSizeC 이하이고, tbH는 MaxTsSizeC 이하이다. 이때 tbW 및 tbH는 현재 크로마 블록의 너비 및 높이이다.
1) 일 예에서, MaxTsSizeC는 단락 2내지 3에서와 같이 정의될 수 있다.
ii. 일 예에서, 상기 조건들은 다음과 같다. tbW가 MaxTsSizeWC 이하이고, tbH는 MaxTsSizeHC 이하이다. 이때 tbW 및 tbH는 현재 크로마 블록의 너비 및 높이이고, MaxTsSizeWC 및 MaxTsSizeHC는 크로마 변환 스킵 코딩된 블록들에 대한 최대 허용 블록 크기 너비 및 높이를 각각 나타낸다.
1) 일 예에서, MaxTsSizeWC 및/또는 MaxTsSizeHC는 단락 3에서와 같이 정의될 수 있다.
b. 일 예에서, 상기 방법들은 'transform skip'을 'BDPCM'로 대체함으로써 크로마 BDPCM 플래그들(예를 들어, intra_bdpcm_chroma_flag)의 코딩에 적용될 수 있다.
5. 2개의 크로마 색 성분에 대해 2개의 TS 플래그를 코딩하는 대신, 하나의 신택스를 사용하여 상기 2개의 크로마 색 성분들에 대한 TS의 사용을 지시할 것이 제안된다.
a. 일 예에서, transform_skip_flag[x0][y0][1] 및/또는 transform_skip_flag[x0][y0][2]를 코딩하는 대신, 단일 신택스 요소(예를 들어, TS_chroma_flag)가 코딩될 수 있다.
i. 일 예에서, 상기 단일 신택스 요소의 값은 이진 값이다.
1) 또는, 더 나아가, 상기 두 크로마 성분 블록들은 상기 단일 신택스 요소에 따라 TS 모드의 동일한 on/off 제어를 공유한다.
a) 일 예에서, 상기 단일 신택스 요소의 값이 0과 같으면, TS가 둘 다에 대해 비활성화되었음을 지시한다.
b) 일 예에서, 상기 단일 신택스 요소의 값이 0과 같으면, TS가 둘 다에 대해 활성화되었음을 지시한다.
2) 또는, 더 나아가, 상기 단일 신택스 요소의 값이 K와 같은지 여부(예를 들어, K = 1)에 기반하여 제2 신택스 요소가 더 시그널링 될 수 있다.
a) 일 예에서, 상기 단일 신택스 요소의 값이 0과 같으면, TS가 둘 다에 대해 비활성화되었음을 지시하고, 상기 단일 신택스 요소의 값이 0과 같으면, TS가 상기 두 크로마 성분들 중 적어도 하나에 대해 활성화되었음을 지시한다.
b) 상기 제2 신택스 요소는 상기 두 크로마 성분들 중 어느 것에 TS가 적용되는지 및/또는 TS가 둘 다에 적용됨을 지시하는 데에 사용된다.
ii. 일 예에서, 상기 단일 신택스 요소의 값은 비-이진 값이다.
1) 일 예에서, 상기 단일 신택스 요소의 값이 K0과 같으면 TS가 둘 다에 대해 비활성화됨을 지시한다.
2) 일 예에서, 상기 단일 신택스 요소의 값이 K1과 같으면 TS가 제1 크로마 색 성분에 대해 활성화되고 제2 크로마 색 성분에 대해서는 비활성화됨을 지시한다.
3) 일 예에서, 상기 단일 신택스 요소의 값이 K2와 같으면 TS가 제1 크로마 색 성분에 대해 비활성화되고 제2 크로마 색 성분에 대해서는 활성화됨을 지시한다.
4) 일 예에서, 상기 단일 신택스 요소의 값이 K3과 같으면 TS가 둘 다에 대해 활성화됨을 지시한다.
5) 일 예에서, 상기 단일 신택스 요소는 고정 길이, 단항, 절단된 단항, k차 EG 이진화 방법들로 코딩될 수 있다.
iii. 일 예에서, 상기 단일 신택스 요소 및/또는 제2 신택스 요소는 문맥 코딩되거나 바이패스 코딩될 수 있다.
보편적 주장 (General claims)
6. 상기 개시된 방법들을 적용할지 여부 및/또는 어떻게 적용할지는 시퀀스 헤더/픽처 헤더/SPS/VPS/DPS/PPS/APS/슬라이스 헤더/타일 그룹 헤더와 같은 시퀀스 레벨/픽처 레벨/슬라이스 레벨/타일 그룹 레벨에서 시그널링될 수 있다.
7. 상기 개시된 방법들을 적용할지 여부 및/또는 어떻게 적용할지는 컬러 포맷 및 싱글/듀얼 트리 파티셔닝과 같은 코딩된 정보에 의존할 수 있다.
5. 실시예들
본 섹션은 예시적 실시예들 및 이 실시예들을 설명하기 위해 현재 VVC 표준을 수정하는 방식들을 보여준다. VVC 규정에 대한 변경들은 굵은 이탤릭체로 강조되었다. 삭제된 텍스트들은 이중 괄호로 표시된다(예를 들어, [[a]]는 문자 "a"의 삭제를 표시한다.).
5.1. 실시예 1
JVET-P2001-v9에 명시된 작업 초안은 아래와 같이 변경될 수 있다.
8.4.5.2.13 INTRA_LT_CCLM, INTRA_L_CCLM 및 INTRA_T_CCLM 인트라 예측 모드의 규정
...
3. x = 0..nTbW - 1 및 y = 0..nTbH - 1인 다운샘플링된 동위치 샘플들pDsY[ x ][ y ]은 다음과 같이 유도된다.
- SubWidthC 및 SubHeightC가 모두 1과 같으면, 다음이 적용된다.
- x = 1..nTbW - 1 및 y = 1..nTbH - 1인 pDsY[ x ][ y ]은 아래와 같이 유도된다.
pDstY[ x ][ y ] = pY[ x ][ y ] (8-159)
- 그 외의 경우, 다음이 적용된다.
- 1차원 필터 계수 어레이 F1 및 F2 그리고 2차원 필터 계수 어레이 F3 및 F4는 아래와 같이 명시된다.
F1[ i ] = 1, with i = 0..1 (8-160)
F2[ 0 ] = 1, F2[ 1 ] = 2, F2[ 2 ] = 1 (8-161)
F3[ i ][ j ] = F4[ i ][ j ] = 0, with i = 0..2, j = 0..2 (8-162)
- SubWidthC 및 SubHeightC가 모두 2와 같으면, 다음이 적용된다.
F1[ 0 ] = 1, F1[ 1 ] = 1 (8-163)
F3[ 0 ][ 1 ] = 1, F3[ 1 ][ 1 ] = 4, F3[ 2 ][ 1 ] = 1, F3[ 1 ][ 0 ] = 1, F3[ 1 ][ 2 ] = 1 (8-164)
F4[ 0 ][ 1 ] = 1, F4[ 1 ][ 1 ] = 2, F4[ 2 ][ 1 ] = 1 (8-165)
F4[ 0 ][ 2 ] = 1, F4[ 1 ][ 2 ] = 2, F4[ 2 ][ 2 ] = 1 (8-166)
- 그 외의 경우, 다음이 적용된다.
F1[ 0 ] = 2, F1[ 1 ] = 0 (8-167)
F3[ 1 ][ 1 ] = 8 (8-168)
F4[ 0 ][ 1 ] = 2, F4[ 1 ][ 1 ] = 4, F4[ 2 ][ 1 ] = 2, (8-169)
...
5. numSampT가 0보다 큰 경우, 선택된 이웃 상단 크로마 샘플들pSelC[ idx ]은 p[ pickPosT[ idx - cntL ] ][ -1 ] (idx = cntL..cntL + cntT - 1)와 같게 설정되고, 다운샘플링된 이웃 상단 루마 샘플들pSelDsY[ idx ] (idx = 0..cntL + cntT - 1)은 다음과 같이 명시된다.
...
- 그 외의 경우(sps_cclm_colocated_chroma_flag가 0과 같은 경우), 다음이 적용된다.
- x가 0보다 큰 경우, 다음이 적용된다.
- bCTUboundary가 FALSE와 같으면, 다음이 적용된다.
Figure pct00040
- 그 외의 경우(bCTUboundary가 TRUE와 같으면), 다음이 적용된다.
Figure pct00041
- 그 외의 경우(x가 0과 같으면), 다음이 적용된다.
- availTL가 TRUE와 같고, bCTUboundary가 FALSE와 같으면, 다음이 적용된다.
Figure pct00042
- 그렇지 않고, availTL가 TRUE와 같고, bCTUboundary가 TRUE와 같으며, 다음이 적용된다.
Figure pct00043
- 그렇지 않고, availTL가 FALSE와 같고, bCTUboundary가 FALSE와 같으며, 다음이 적용된다.
Figure pct00044
- 그 외의 경우(availTL가 FALSE와 같고 bCTUboundary가 TRUE와 같은 경우), 다음이 적용된다.
pSelDsY[ idx ] = pY[ 0 ][ -1 ] (8-198)
...
5.2. 실시예 2
본 실시예는 최대 허용 변환 스킵 코딩된 블록 크기들에 따른 크로마 변환 스킵 플래그 코딩의 일 예를 보여준다. JVET-P2001-v9에 명시된 작업 초안은 아래와 같이 변경될 수 있다.
7.3.9.10 변환 유닛 신택스
...
Figure pct00045
5.3. 실시예 3
본 실시예는 최대 허용 크로마 변환 스킵 코딩된 블록 크기들에 따른 크로마 BDPCM 플래그 코딩의 일 예를 보여준다. JVET-P2001-v9에 명시된 작업 초안은 아래와 같이 변경될 수 있다.
7.3.9.5 코딩 유닛 신택스
Figure pct00046
...
도 9는 비디오 처리 장치(900)의 블록도이다. 상기 장치(900)는 본 명세서에서 개시되는 하나 또는 그 이상의 방법들을 실시하는 데에 사용될 수 있다. 장치(900)는 스마트폰, 테블릿, 컴퓨터, 사물인터넷(IoT) 수신기 등에서 구현될 수 있다. 장치(900)는 하나 또는 그 이상의 프로세서들(902), 하나 또는 그 이상의 메모리들(904), 그리고 비디오 처리 하드웨어(906)을 포함할 수 있다. 프로세서(들)(902)는 본 문서에서 개시되는 하나 또는 그 이상의 방법들을 실시하도록 구성될 수 있다. 메모리(메모리들)(904)은 본 명세서에 개시된 방법들 및 기술들을 실시하는 데에 사용되는 데이터 및 코드를 저장하는 데에 사용될 수 있다. 비디오 처리 하드웨어(906)는 본 문서에서 개시되는 일부 기술들을 하드웨어 회로에서 실행할 수 있다. 일부 실시예들에서, 비디오 처리 하드웨어(906)는 그래픽 프로세서와 같은 프로세서들(902)에 부분적으로 또는 완전히 포함될 수 있다.
도 10은 비디오 인코더의 블록도를 보여준다.
도 11은 비디오를 처리하는 방법(1100)에 대한 순서도이다. 방법(1100)은, 비디오의 크로마 블록과 상기 비디오의 코딩된 표현 간의 변환을 위해, 다운 샘플링 필터를 사용하여 동위치(collocated) 루마 블록의 N개의 상단 이웃 라인들로부터 생성된 다운샘플링된 동위치 이웃 상단 루마 샘플들을 사용하여 크로스 컴포넌트 선형 모델의 파라미터들을 유도하는 단계(1102)-여기서, N은 양의 정수이다-및 상기 크로스 컴포넌트 선형 모델을 사용하여 생성된 예측 크로마 블록을 사용하여 상기 변환을 실시하는 단계(1104)를 포함한다.
도 12는 개시된 기술들이 구현될 수 있는 예시적인 비디오 처리 시스템의 블록도이다.
도 12는 본 문서에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 처리 시스템(1200)을 도시하는 블록도이다. 다양한 구현들은 시스템(1200)의 일부 또는 전체 구성요소들을 포함할 수 있다. 시스템(1200)은 비디오 콘텐트를 수신하기 위한 입력을 포함할 수 있다. 비디오 콘텐트는 8 또는 10 비트 다중 컴포넌트 픽셀 값들과 같은 로(raw) 또는 비압축 포맷으로 수신될 수 있다. 입력(1202)은 네트워크 인터페이스, 주변 버스 인터페이스 또는 스토리지 인터페이스를 표시할 수 있다. 네트워크 인터페이스의 예들은 이더넷, 수동 광학 네트워크 (PON: passive optical network) 등과 같은 유선 인터페이스들 및 와이파이 또는 셀룰러 인터페이스들과 같은 무선 인터페이스들을 포함할 수 있다.
시스템(1200)은 본 문서에 기술된 다양한 코딩 또는 인코딩 방법들을 구현할 수 있는 코딩 구성요소(1204)를 포함할 수 있다. 코딩 구성요소(1204)는 상기 비디오의 코딩된 표현을 산출하기 위해 코딩 구성요소(1204)의 입력(1202)으로부터 출력까지의 비디오의 평균 비트레이트를 감소시킬 수 있다. 따라서, 코딩 기술들은 종종 비디오 압축 또는 비디오 트랜스코딩 기술로 불린다. 코딩 구성요소(1204)의 출력은 컴포넌트(1206)의 의해 표현되는 것처럼, 저장되거나 또는 연결된 통신을 통해 전송될 수 있다. 입력(1202)에서 수신된 상기 비디오의 저장되거나 통신된 (또는 코딩된) 비트스트림 표현은 컴포넌트(1208)에 의해 사용되어 픽셀 값들을 생성하거나 또는 디스플레이 인터페이스(1210)에 전송되는 디스플레이 가능한 비디오를 생성할 수 있다. 상기 비트스트림 표현으로부터 사용자가 시청가능한 비디오를 생성하는 프로세스는 종종 비디오 압축해제라 불린다. 더 나아가, 특정 비디오 처리 동작들이 "코딩" 동작 또는 툴로 불리는 반면, 상기 코딩 툴 또는 동작들은 인코더 측에서 사용되며 상기 코딩의 결과들을 반전시키는 대응하는 디코딩 툴 또는 동작들은 디코더가 실시할 것이라는 것이 이해될 것이다.
주변 버스 인터페이스 또는 디스플레이 인터페이스의 예들은 범용 직렬 버스(USB: universal serial bus) 또는 고해상도 멀티미디어 인터페이스 (HDMI: high definition multimedia interface) 또는 디스플레이포트 등을 포함할 수 있다. 스토리지 인터페이스의 예들은 SATA(직렬 고급 기술 연결), PCI, IDE 인터페이스 등을 포함한다. 본 문서에서 개시되는 기술들은 이동 전화, 노트북, 스마트폰, 또는 디지털 데이터 처리 및/또는 비디오 디스플레이를 실행할 수 있는 기타 디바이스들과 같은 다양한 전자 디바이스들에서 구현될 수 있다.
개시된 기술의 일부 실시예들은 비디오 처리 툴 또는 모드를 활성화하는 것에 대한 결정 또는 판단하는 단계를 포함한다. 일 예에서, 상기 비디오 처리 툴 또는 모드가 활성화되면, 인코더는 비디오의 블록의 처리에서 상기 툴 또는 모드를 사용하거나 구현할 것이지만, 상기 툴 또는 모드의 사용에 기초하여 비트스트림 결과를 반드시 수정할 필요는 없다. 즉, 상기 비디오의 블록으로부터 상기 비디오의 비트스트림 표현으로의 변환은 상기 결정 또는 판단에 기초하여 활성화될 때 상기 비디오 처리 툴 또는 모드를 사용할 것이다. 다른 예에서, 상기 비디오 처리 툴 또는 모드가 활성화되면, 디코더는 상기 비트스트림이 상기 비디오 처리 툴 또는 모드에 기초하여 수정되었다는 지식으로 상기 비트스트림을 처리할 것이다. 즉, 상기 비디오의 비트스트림 표현으로부터 상기 비디오의 블록으로의 변환은 상기 결정 또는 판단에 기초하여 활성화된 상기 비디오 처리 툴 또는 모드를 이용하여 수행될 것이다.
개시된 기술의 일부 실시예들은 비디오 처리 툴 또는 모드를 비활성화하는 것에 대한 결정 또는 판단을 포함한다. 일 예에서, 상기 비디오 처리 툴 또는 모드가 비활성화되면, 인코더는 상기 비디오의 비트스트림 표현으로의 상기 비디오의 블록의 변환에 상기 툴 또는 모드를 사용하지 않을 것이다. 다른 예에서, 상기 비디오 처리 툴 또는 모드가 비활성화되면, 상기 결정 또는 판단에 기초하여 활성화된 상기 비디오 프로세싱 툴 또는 모드를 이용하여 상기 비트스트림이 수정되지 않았다는 지식으로 디코더가 상기 비트스트림을 처리할 것이다.
개시된 그리고 기타 솔루션들, 예들, 실시예들, 모듈들 및 본 문서에 기술된 기능적 동작들은 디지털 전자 회로, 본 문서에 개시된 구조들, 그것들의 구조적 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어 또는 이들 중의 하나 이상의 조합으로 구현될 수 있다. 개시된 그리고 기타 실시예들은 하나 이상의 컴퓨터 프로그램 제품, 즉, 데이터 프로세싱 장치에 의한 실행 또는 그의 동작의 제어를 위해 컴퓨터 판독가능 매체 상에 인코딩되는 컴퓨터 프로그램 명령들의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독가능 매체는 머신-판독가능 저장 장치, 머신-판독가능 저장 기판, 메모리 장치, 머신-판독가능 전파 신호에 영향을 주는 물질의 구성 또는 그들 중의 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치"는 데이터 처리를 위한 모든 장치, 디바이스 및 머신을 포함하며, 예를 들어 프로그램 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 포함한다. 장치는 하드웨어에 더하여 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나의 조합을 구성하는 코드를 포함할 수 있다. 전파되는 신호는 인공적으로 생성된 신호, 예를 들어, 머신 생성 전기, 광, 또는 전자기 신호이며, 이는 적절한 수신기 장치로의 전송을 위한 정보를 인코딩하기 위해 생성된다.
컴퓨터 프로그램 (프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 알려짐)은 컴파일 되거나 해석된 언어를 포함하여 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램 또는 컴퓨터 환경에서 사용되기에 적합한 모듈, 컴포넌트, 서브루틴 또는 다른 유닛으로서 임의의 형태로 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 반드시 대응되는 것은 아니다. 프로그램은 다른 프로그램들 또는 데이터를 보유하는 파일의 일부(예를 들어 마크업 언어 문서에 저장된 하나 이상의 스크립트) 또는 문제의 프로그램 전용인 단일 파일 또는 다중 편성(coordinated) 파일들(예를 들어, 하나 이상의 모듈들, 서브 프로그램들 또는 코드의 부분들을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은, 하나의 컴퓨터 상에서 또는 한 사이트에 위치하거나 다수의 사이트에 걸쳐 분배되고 통신 네트워크에 의해 상호 접속되는 다수의 컴퓨터 상에서 실행되도록 배치될 수 있다.
본 문서에 설명된 프로세스들 및 논리 흐름들은 입력 데이터에 대해 작동하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그래밍가능한 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들 그리고 장치는 FPGA (필드 프로그래밍 가능 게이트 어레이) 또는 ASIC (애플리케이션 특정 집적 회로)와 같은 특수 목적 논리회로로 실시될 수 있고, 구현될 수도 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은 예를 들어 범용 및 특수 목적의 마이크로 프로세서들과 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리(ROM), 또는 랜덤 액세스 메모리(RAM), 또는 둘 다로부터 명령어들과 데이터를 수신할 것이다.
컴퓨터의 필수 구성요소는 명령들을 실행하는 프로세서 및 명령들 및 데이터를 저장하는 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들, 예를 들어, 자기 디스크, 광자기 디스크, 또는 광디스크를 포함하거나, 또는 이 디바이스들과 데이터를 송수신하기 위하여 동작적으로(operatively) 결합될 것이다. 하지만 컴퓨터는 이러한 디바이스를 구비할 필요는 없다. 컴퓨터 프로그램 명령어들과 데이터를 저장하기 적합한 컴퓨터 판독가능 매체에는, 예를 들어, 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM, 플래시 메모리 디바이스), 자기 디스크(예를 들어, 내부 하드디스크, 착탈식 디스크), 광자기 디스크 및 CD ROM과 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스가 포함된다. 프로세서와 메모리는 전용 논리 회로에 의해 보완되거나 또는 전용 논리 회로에 통합될 수 있다.
도 13은 본 개시의 기술들을 구현할 수 있는 예시적인 비디오 코딩 시스템(100)을 도시하는 블록도이다.
도 13에서 보이는 바와 같이, 비디오 코딩 시스템(100)은 소스 디바이스(110) 및 목적지 디바이스(120)를 포함할 수 있다. 소스 디바이스(110)는 인코딩된 비디오 데이터를 생성시키며, 비디오 인코딩 디바이스로 불릴 수 있다. 목적지 디바이스(120)는 소스 디바이스(110)에 의해 생성된 상기 인코딩된 비디오 데이터를 디코딩 할 수 있으며, 비디오 디코딩 디바이스로 불릴 수 있다.
소스 디바이스(110)는 비디오 소스(112), 비디오 인코더(114) 및 입력/출력(I/O) 인터페이스(116)를 포함할 수 있다.
비디오 소스(112)는 비디오 캡처 디바이스, 비디오 콘텐트 제공기로부터 비디오 데이터를 수신하기 위한 인터페이스, 그리고/또는 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템과 같은 소스, 또는 이러한 소스들의 조합을 포함할 수 있다. 상기 비디오 데이터는 하나 또는 그 이상의 픽처들을 포함할 수 있다. 비디오 인코더(114)는 비디오 소스(112)로부터의 상기 비디오 데이터를 인코딩하여 비트스트림을 생성한다. 상기 비트스트림은 상기 비디오 데이터의 코딩된 표현을 형성하는 비트들의 시퀀스를 포함할 수 있다. 상기 비트스트림은 코딩된 픽처들 및 연관된 데이터를 포함할 수 있다. 코딩된 픽처는 픽처의 코딩된 표현이다. 연관된 데이터는 시퀀스 파라미터 세트들, 픽처 파라미터 세트들 및 기타 신택스 구조들을 포함할 수 있다. I/O 인터페이스(116)는 변조기/복조기 (모뎀) 및/또는 송신기를 포함할 수 있다. 인코딩된 비디오 데이터는 네트워크(130a)를 통해 I/O 인터페이스(116)를 거쳐 목적지 디바이스(120)로 직접 전송될 수 있다. 상기 인코딩된 비디오 데이터는 또한 목적지 디바이스(120)에 의한 접근을 위해 스토리지 매체/서버(130b)에 저장될 수 있다.
목적지 디바이스(120)는 I/O 인터페이스(126), 비디오 디코더(124) 및 디스플레이 디바이스(122)를 포함할 수 있다.
I/O 인터페이스(126)는 수신기 및/또는 모뎀을 포함할 수 있다. I/O 인터페이스(126)는 소스 디바이스(110) 또는 스토리지 매체/서버(130b)로부터 인코딩된 비디오 데이터를 획득할 수 있다. 비디오 디코더(124)는 상기 인코딩된 비디오 데이터를 디코딩할 수 있다. 디스플레이 디바이스(122)는 상기 디코딩된 비디오 데이터를 사용자에게 보여줄 수 있다. 디스플레이 디바이스(122)는 목적지 디바이스(120)와 통합될 수 있거나 또는 외부 디스플레이 디바이스와 접속하도록 구성될 목적지 디바이스(120)의 외부에 있을 수 있다.
비디오 인코더(114) 및 비디오 디코더(124)는 HEVC(고효율 비디오 코딩) 표준, VVC(다기능 비디오 코딩) 표준 및 기타 현행 및/또는 추가 표준들과 같은 비디오 압축 표준에 따라 작동할 수 있다.
도 14는 도 13에 도시된 시스템(110) 내의 비디오 인코더(114)일 수 있는 비디오 인코더(200)의 일 예를 도시하는 블록도이다.
비디오 인코더(200)는 본 개시의 기술들 중 어느 하나 또는 전부를 실시하도록 구성될 수 있다. 도 14의 예에서, 비디오 인코더(200)는 복수의 기능적 구성요소들을 포함한다. 본 개시에서 설명되는 기술들은 비디오 인코더(200)의 다양한 구성요소들 사이에 공유될 수 있다. 일부 예들에서, 프로세서는 본 개시에서 설명되는 기술들 중 어느 하나 또는 전부를 실시하도록 구성될 수 있다.
비디오 인코더(200)의 기능적 구성요소들은 분할부(201), 모드 선택부(203), 모션 추정부(204), 모션 보상부(205) 및 인트라 예측부(206)를 포함할 수 있는 예측부(202), 잔차 생성부(207), 변환부(208), 양자화부(209), 역양자화부(210), 역변환부(211), 복원부(212), 버퍼(213), 그리고 엔트로피 인코딩부(214)를 포함할 수 있다.
다른 예들에서, 비디오 인코더(200)는 더 많은 수의, 적은 수의 또는 상이한 기능적 구성요소들을 포함할 수 있다. 일 예에서, 예측부(202)는 인트라 블록 카피(IBC) 유닛을 포함한다. 상기 IBC 유닛은 적어도 하나의 참조 픽처가 현재 비디오 블록이 위치하는 픽처인 IBC 모드로 예측을 수행할 수 있다.
게다가, 모션 추정부(204) 및 모션 보상부(205)와 같은 몇몇 구성요소들은 고도로 통합될 수 있지만, 설명의 목적을 위해 도5의 예에서는 별도로 도시되었다.
분할부(201)는 픽처를 하나 또는 그 이상의 비디오 블록들로 분할할 수 있다. 비디오 인코더(200) 및 비디오 디코더(300)는 다양한 비디오 블록 크기들을 지원할 수 있다.
모드 선택부(203)는 예를 들어 오류 결과들에 기반하여, 인터 또는 인트라 코딩 모드들 중 하나를 선택할 수 있으며, 그 결과로 인트라 또는 인터 코딩된 블록을 잔차 생성부(207)에 제공하여 잔차 블록 데이터를 생성하도록 하고, 복원부(212)에 제공하여 인코딩된 블록을 참조 픽처로 사용하기 위해 복원하도록 할 수 있다. 몇몇 예들에서, 모드 선택부(203)는 예측이 인트라 예측 신호 및 인터 예측 신호에 기반하는 인트라 인터 결합 예측(CIIP) 모드를 선택할 수 있다. 모드 선택부(203)는 또한 인터 예측의 경우 블록에 대한 모션 벡터를 위한 해상도(예를 들어, 서브 픽셀 또는 정수 픽셀 정밀도)를 선택할 수 있다.
현재 비디오 블록에 인터 예측을 실시하기 위해, 모션 추정부(204)는 버퍼(213)에서부터 상기 현재 비디오 블록까지 하나 또는 그 이상의 참조 프레임들을 비교하여 상기 현재 비디오 블록에 대한 모션 정보를 생성할 수 있다. 모션 보상부(205)는 상기 모션 정보 및 버퍼(213)로부터 상기 현재 블록에 관련된 픽처가 아닌 픽처들의 디코딩된 샘플들에 기반하여 상기 현재 비디오에 대한 예측 비디오 블록을 결정할 수 있다.
모션 추정부(204) 및 모션 보상부(205)는 현재 비디오 블록에 대해, 예를 들어 상기 현재 비디오 블록이 I 슬라이스, P 슬라이스 또는 B 슬라이스에 있는지 여부에 의존하여, 상이한 동작들을 실시할 수 있다.
일부 예들에서, 모션 추정부(204)는 현재 비디오 블록에 대해 단방향(uni-directional) 예측을 실시할 수 있으며, 모션 추정부(204)는 현재 비디오 블록을 위한 참조 비디오 블록에 대해 리스트 0 또는 리스트 1의 참조 픽처들을 탐색할 수 있다. 그리고 나서, 모션 추정부(204)는 참조 비디오 블록을 포함하는 리스트 0 또는 리스트 0에서 참조 픽처를 지시하는 참조 인덱스를 그리고 상기 현재 비디오 블록과 상기 참조 비디오 블록 사이의 공간적 이동(displacement)을 지시하는 모션 벡터를 생성할 수 있다. 모션 추정부(204)는 상기 참조 인덱스, 예측 방향 지시자 그리고 상기 모션 벡터를 상기 비디오 블록의 모션 정보로 출력할 수 있다. 모션 보상부(205)는 상기 현재 비디오 블록의 상기 모션 정보에 의해 지시되는 상기 참조 비디오 블록에 기반하여 상기 현재 블록의 예측 비디오 블록을 생성할 수 있다.
다른 예들에서, 모션 추정부(204)는 현재 비디오 블록에 대해 양방향(bi-directional) 예측을 실시할 수 있으며, 모션 추정부(204)는 현재 비디오 블록을 위한 참조 비디오 블록에 대해 리스트 0의 참조 픽처들을 탐색할 수 있고, 현재 비디오 블록을 위한 다른 참조 비디오 블록에 대해 리스트 1의 참조 픽처들을 탐색할 수 있다. 그리고 나서, 모션 추정부(204)는 참조 비디오 블록들을 포함하는 리스트 0 또는 리스트 0에서 참조 픽처들을 지시하는 참조 인덱스를 그리고 상기 현재 비디오 블록과 상기 참조 비디오 블록들 사이의 공간적 이동들(displacements)을 지시하는 모션 벡터들을 생성할 수 있다. 모션 추정부(204)는 상기 참조 인덱스들 및 상기 현재 비디오 블록의 상기 모션 벡터들을 상기 비디오 블록의 모션 정보로 출력할 수 있다. 모션 보상부(205)는 상기 현재 비디오 블록의 상기 모션 정보에 의해 지시되는 상기 참조 비디오 블록들에 기반하여 상기 현재 블록의 예측 비디오 블록을 생성할 수 있다.
일부 예들에서, 모션 추정부(204)는 디코더의 디코딩 처리를 위한 모션 정보의 풀 세트를 출력할 수 있다.
일부 예들에서, 모션 추정부(204)는 현재 비디오에 대한 모션 정보의 풀 세트를 출력하지 않을 수 있다. 오히려, 모션 추정부(204)는 다른 비디오 블록의 모션 정보를 참조하여 현재 비디오 블록의 모션 정보를 시그널링할 수 있다. 예를 들어, 모션 추정부(204)는 현재 비디오 블록의 모션 정보가 이웃 비디오 블록의 모션 정보와 충분히 유사하다고 판단할 수 있다.
일 예에서, 모션 추정부(204)는 현재 비디오 블록과 관련된 신택스 구조에서 현재 비디오 블록이 다른 비디오 블록과 동일한 모션 정보를 가지고 있다는 것을 비디오 디코더(300)에게 지시하는 값을 지시할 수 있다.
다른 예에서, 모션 추정부(204)는 현재 비디오 블록과 관련된 신택스 구조에서 다른 비디오 블록 및 모션 벡터 차분(MVD: motion vector difference)을 식별할 수 있다. 상기 모션 벡터 차분은 현재 비디오 블록과 지시되는 비디오 블록의 모션 벡터 사이의 차분을 지시한다. 비디오 디코더(300)는 지시되는 비디오 블록의 모션 벡터 및 모션 벡터 차분을 이용하여 현재 비디오 블록의 모션 벡터를 결정할 수 있다.
위에서 논의된 것처럼, 비디오 인코더(200)는 모션 벡터를 예측적으로 시그널링할 수 있다. 비디오 인코더(200)에 의해 실시될 수 있는 예측적 시그널링 기술들의 두 가지 예에는 향상된 모션 벡터 예측(AMVP: advanced motion vector prediction)과 머지 모드 시그널링이 있다.
인트라 예측부(206)는 현재 비디오 블록에 대해 인트라 예측을 실시할 수 있다. 인트라 예측부(206)가 현재 비디오 블록에 대해 인트라 예측을 실시하는 경우, 인트라 예측부(206)는 동일한 픽처의 다른 비디오 블록들의 디코딩된 샘플들에 기반하여 현재 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 현재 비디오 블록에 대한 예측 데이터는 예측된 비디오 블록 및 다양한 신택스 요소들을 포함할 수 있다.
잔차 생성부(207)는 현재 비디오 블록에서 현재 비디오 블록의 예측 비디오 블록(들)을 차감하여(예를 들어, 마이너스 기호로 지시) 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 상기 잔차 데이터는 현재 비디오 블록의 샘플들의 상이한 샘플 구성요소들에 해당하는 잔차 비디오 블록들을 포함할 수 있다.
다른 예들에서, 가령 스킵 모드에서, 현재 비디오 블록에 대한 잔차 데이터가 없을 수 있으며, 잔차 생성부(207)는 감산 작업을 실시하지 않을 수 있다.
변환 처리부(208)는 하나 또는 그 이상의 변환들을 현재 비디오 블록과 관련된 잔차 비디오 블록에 적용하여 현재 비디오 블록에 대한 하나 또는 그 이상의 변환 계수 비디오 블록들을 생성할 수 있다.
변환 처리부(208)가 현재 비디오 블록과 관련된 변환 계수 비디오 블록을 생성한 후, 양자화부(209)는 현재 비디오 블록과 관련된 하나 또는 그 이상의 양자화 파라미터(QP: quantization parameter) 값들에 기반하여 현재 비디오 블록과 관련된 상기 변환 계수 비디오 블록을 양자화 할 수 있다.
역양자화부(210) 및 역변환부(211)는 역양자화 및 역변환을 상기 변환 계수 비디오 블록에 각각 적용하여 상기 변환 계수 비디오 블록으로부터 잔차 비디오 블록을 복원할 수 있다. 복원부(212)는 상기 복원된 잔차 비디오 블록을 예측부(202)에 의해 생성된 하나 또는 그 이상의 예측 비디오 블록들에 해당하는 샘플들에 더하여 버퍼(213)에 저장하기 위해 현재 블록과 관련된 복원 비디오 블록을 생성할 수 있다.
복원부(212)가 상기 비디오 블록을 복원한 후에, 루프 필터링 동작이 상기 비디오 블록에서 비디오 블로킹 아티팩트들을 감소시키기 위해 실시될 수 있다.
엔트로피 인코딩부(214)는 비디오 인코더(200)의 다른 기능적 구성요소들로부터 데이터를 수신할 수 있다. 엔트로피 인코딩부(214)가 상기 데이터를 수신할 때, 엔트로피 인코딩부(214)는 하나 또는 그 이상의 엔트로피 인코딩 동작들을 실시하여 엔트로피 인코딩된 데이터를 생성하고 상기 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력할 수 있다.
도 15는 도 13에 도시된 시스템(100) 내의 비디오 디코더(114)일 수 있는 비디오 디코더(300)의 일 예를 도시하는 블록도이다.
비디오 디코더(300)는 본 개시의 기술들 중 어느 하나 또는 전부를 실시하도록 구성될 수 있다. 도 15의 예에서, 비디오 디코더(300)는 복수의 기능적 구성요소들을 포함한다. 본 개시에서 설명되는 기술들은 비디오 디코더(300)의 다양한 구성요소들 사이에 공유될 수 있다. 일부 예들에서, 프로세서는 본 개시에서 설명되는 기술들 중 어느 하나 또는 전부를 실시하도록 구성될 수 있다.
도 15의 예에서, 비디오 디코더(300)는 엔트로피 디코딩부(301), 모션 보상부(302), 인트라 예측부(303), 역양자화부(304), 역변환부(305), 복원부(306), 그리고 버퍼(307)를 포함한다. 일부 예들에서, 비디오 디코더(300)는 비디오 인코더(200)(예를 들어, 도 14)와 관련하여 설명된 인코딩 패스에 일반적으로 상반된 디코딩 패스를 실시할 수 있다.
엔트로피 디코딩부(301)는 인코딩된 비트스트림을 검색할 수 있다. 상기 인코딩된 비트스트림은 엔트로피 코딩된 비디오 데이터(예를 들어, 비디오 데이터의 인코딩된 블록들)을 포함할 수 있다. 엔트로피 디코딩부(301)는 상기 엔트로피 코딩된 비디오 데이터를 디코딩할 수 있으며, 엔트로피 디코딩된 비디오 데이터로부터, 모션 보상부(302)는 모션 벡터들, 모션 벡터 정밀도 및 참조 픽처 리스트 인덱스들을 포함하는 모션 정보 및 기타 모션 정보를 결정할 수 있다. 예를 들어, 모션 보상부(302)는 AMVP 및 머지 모드를 실행하여 이러한 정보를 결정할 수 있다.
모션 보상부(302)는 가능한 경우 보간 필터들에 기반한 보간을 실시하여 움직임 보상된 블록들을 산출할 수 있다. 서브 픽셀 정밀도와 함께 사용될 보간 필터들에 대한 식별자들은 신택스 요소들에 포함될 수 있다.
모션 보상부(302)는 비디오 엔코더(200)가 비디오 블록의 인코딩 동안 사용한 것과 같이 보간 필터들을 사용하여 참조 블록의 서브-정수 픽셀들에 대한 보간된 값들을 계산할 수 있다. 모션 보상부(302)는 비디오 인코더(200)가 사용한 상기 보간 필터들을 검색된 신택스 정보에 따라 결정할 수 있으며, 상기 보간 필터들을 사용하여 예측적 블록들을 생성할 수 있다.
모션 보상부(302)는 인코딩된 비디오 시퀀스의 프레임(들) 및/또는 슬라이스(들)을 인코딩 하는 데에 사용된 블록들의 크기들을 판단하기 위한 일부 신택스 정보, 인코딩된 비디오 시퀀스의 픽처의 각 매크로블록이 어떻게 분할되는지를 기술하는 분할 정보, 각 파티션이 어떻게 인코딩되었는지를 지지하는 모드들, 각각의 인트라 인코딩된 블록에 대한 하나 또는 그 상의 참조 프레임들 (및 참조 프레임 리스트들), 그리고 인코딩된 비디오 시퀀스를 디코딩하기 위한 기타 정보를 이용할 수 있다.
인트라 예측부(303)는 공간적으로 인접한 블록들로부터 예측 블록을 형성하기 위해 예를 들어 비트스트림에서 수신된 인트라 예측 모드들을 이용할 수 있다. 역양자화부(303)는 비트스트림에서 제공되며 엔트로피 디코딩부(301)에 의해 디코딩된 양자화된 비디오 블록 계수들을 역 양자화(즉 양자화 해제)한다.
역변환부(305)는 역변환을 적용한다.
복원부(306)는 모션 보상부(202) 또는 인트라 예측부(303)에 의해 생성된 해당 예측 블록들과 잔차 블록들을 합계하여 디코딩된 블록들을 형성할 수 있다. 요구되는 경우, 디블로킹 필터 또한 블록화 아티팩트(blockiness artifacts)를 제거하기 위해 디코딩된 블록들의 필터링에 적용될 수 있다. 그리고 나서, 디코딩된 비디오 블록들은 버퍼(307)에 저장되며, 버퍼는 후속 모션 보상을 위한 참조 블록들을 제공한다.
개시된 기술의 일부 실시예들은 비디오 처리 툴 또는 모드를 활성화하는 것에 대한 결정 또는 판단하는 단계를 포함한다. 일 예에서, 상기 비디오 처리 툴 또는 모드가 활성화되면, 인코더는 비디오의 블록의 처리에서 상기 툴 또는 모드를 사용하거나 구현할 것이지만, 상기 툴 또는 모드의 사용에 기초하여 비트스트림 결과를 반드시 수정할 필요는 없다. 즉, 상기 비디오의 블록으로부터 상기 비디오의 비트스트림 표현으로의 변환은 상기 결정 또는 판단에 기초하여 활성화될 때 상기 비디오 처리 툴 또는 모드를 사용할 것이다. 다른 예에서, 상기 비디오 처리 툴 또는 모드가 활성화되면, 디코더는 상기 비트스트림이 상기 비디오 처리 툴 또는 모드에 기초하여 수정되었다는 지식으로 상기 비트스트림을 처리할 것이다. 즉, 상기 비디오의 비트스트림 표현으로부터 상기 비디오의 블록으로의 변환은 상기 결정 또는 판단에 기초하여 활성화된 상기 비디오 처리 툴 또는 모드를 이용하여 수행될 것이다.
본 문서에서, 용어 "비디오 처리”는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축 해제를 가리킬 수 있다. 예를 들어, 비디오 압축 알고리즘들은 비디오의 픽셀 표현으로부터 상응하는 비트스트림 표현으로 변환하거나 그 반대의 경우에 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스의 의해 정의되는 대로, 비트스트림 내에서 같은 위치에 있거나(co-located) 상이한 곳에 분산되어 있는 비트들에 해당할 수 있다. 예를 들어, 매크로블록은 변환되고 코딩된 오류 잔차 값들로 그리고 헤더들 및 비트스트림의 다른 필드들의 비트들을 사용하여 인코딩될 수 있다.
다음으로, 일부 실시예들에 의해 선호되는 조항(clauses)의 리스트가 제공된다.
첫 번째 세트의 조항들은 이전 섹션들에서 논의된 기술들의 예시적 실시예들을 보여준다.
1. 비디오 처리 방법으로서, 비디오의 크로마 블록과 상기 비디오의 코딩된 표현 간의 변환을 위해, 다운 샘플링 필터를 사용하여 동위치(collocated) 루마 블록의 N개의 상단 이웃 라인들로부터 생성된 다운샘플링된 동위치 이웃 상단 루마 샘플들을 사용하여 크로스 컴포넌트 선형 모델의 파라미터들을 유도하는 단계-여기서, N은 양의 정수-및 상기 크로스 컴포넌트 선형 모델을 사용하여 생성된 예측 크로마 블록을 사용하여 상기 변환을 실시하는 단계를 포함하는, 비디오 처리 방법.
2. 조항 1에 있어서, 상기 크로마 블록이 상단 코딩 트리 유닛 경계에 있지 않는 이유로, 상기 N개의 상단 이웃 라인들이 상기 동위치 루마 블록의 가장 가까운 상단 라인에 해당하는, 비디오 처리 방법.
3. 조항 1 내지 조항 2 중 어느 것에 있어서, 상기 다운샘플링 필터가 다운샘플링된 동위치 이웃 좌측 루마 샘플들을 생성하기 위해서도 적용되는, 비디오 처리 방법.
4. 조항 1 내지 조항 2 중 어느 것에 있어서, 상기 다운샘플링 필터는 다운샘플링된 동위치 이웃 좌측 루마 샘플들을 생성하기 위해 사용되는 다른 다운샘플링 필터와 상이한, 비디오 처리 방법.
5. 조항 1 내지 어느 것에 있어서, 상기 다운샘플링 필터는 상기 코딩 트리 유닛의 상단 경계에 대하여 상기 크로마 블록의 위치에 독립적인, 비디오 처리 방법.
6. 조항 1 내지 어느 것에 있어서, 상기 방법은 상기 비디오가 4:2:2 포맷을 가지는 관계로 선택적으로 적용되는, 비디오 처리 방법.
7. 조항 1에 있어서, N은 1 보다 큰, 비디오 처리 방법.
8. 조항 7에 있어서, 상기 N개의 상단 이웃 라인들은 상기 가장 가까운 상단 라인 및 두 번째로 가까운 상단 라인을 포함하는, 비디오 처리 방법.
9. 조항 1에 있어서, 상기 다운샘플링 필터는 상기 비디오의 컬러 포맷에 의존하는, 비디오 처리 방법.
10. 조항 1 내지 조항 9 중 어느 것에 있어서, 상기 다운샘플링 필터가 6-탭 필터인, 비디오 처리 방법.
11. 조항 1 내지 조항 9 중 어느 것에 있어서, 상기 다운샘플링 필터가 5-탭 필터인, 비디오 처리 방법.
12. 조항 1 내지 조항 11 중 어느 것에 있어서, 상기 변환은 상기 비디오를 상기 코딩된 표현으로 인코딩하는 단계를 포함하는, 비디오 처리 방법.
13. 조항 1 내지 조항 11 중 어느 것에 있어서, 상기 변환은 상기 비디오의 픽셀 값들을 생성하기 위해 상기 코딩된 표현을 디코딩하는 단계를 포함하는, 비디오 처리 방법.
14. 비디오 디코딩 장치로서, 조항 1 내지 조항 13 중 하나 또는 그 이상에서의 방법을 실시하도록 구성되는 프로세서를 포함하는 비디오 디코딩 장치.
15. 비디오 인코딩 장치로서, 조항 1 내지 조항 13 중 하나 또는 그 이상에서의 방법을 구현하도록 구성되는 프로세서를 포함하는 비디오 인코딩 장치.
16. 컴퓨터 프로그램 제품으로, 코드를 안에 저장하며, 상기 코드는, 프로세서에 의해 실행시에, 상기 프로세서로 하여금 조항 1 내지 조항 13 중 어느 것에서의 방법을 실시하도록 하는, 컴퓨터 프로그램 제품.
17. 본 문서에 기술되는 방법, 장치 또는 시스템.
두 번째 세트의 조항들은 이전 섹션(예를 들어, 항목 1)에서 개시된 기술들의 일부 특성들 및 측면들을 설명한다.
1. 비디오 처리 방법으로서, 비디오의 크로마 블록과 상기 비디오의 코딩된 표현 간의 변환을 위해, 다운 샘플링 필터를 사용하여 상기 크로마 블록의 동위치 루마 블록의 N개의 상단 이웃 라인들로부터 생성된 다운 샘플링된 루마 샘플들을 사용하여 크로스 컴포넌트 선형 모델의 파라미터들을 유도하는 단계(1602)-여기서, N은 양의 정수이다-그리고 상기 크로스 컴포넌트 선형 모델을 사용하여 생성된 예측 크로마 블록을 사용하여 상기 변환을 실시하는 단계를 포함하는, 비디오 처리 방법.
2. 조항 1에 있어서, 상기 크로마 블록이 상단 코딩 트리 유닛 경계에 있지 않기 때문에, 상기 N개의 상단 이웃 라인들이 상기 동위치 루마 블록의 가장 가까운 상단 라인에 해당하는, 비디오 처리 방법.
3. 조항 1 내지 조항 2 중 어느 것에 있어서, 상기 다운샘플링 필터는 상기 동위치 루마 블록의 좌측 이웃 라인들로부터 생성된 다른 다운샘플링된 루마 샘플들을 생성하기 위해서도 적용되는, 비디오 처리 방법.
4. 조항 1 내지 조항 2 중 어느 것에 있어서, 상기 동위치 루마 블록의 좌측 이웃 라인들로부터 생성되는 다른 다운샘플링된 루마 샘플들을 생성하기 위해 다른 다운샘플링 필터가 적용되는, 비디오 처리 방법.
5. 조항 1 내지 조항 4 중 어느 것에 있어서, 상기 다운샘플링 필터는 필터 계수들 [1, 2, 1]을 가지는, 비디오 처리 방법.
6. 조항 1 내지 조항 5 중 어느 것에 있어서, 다운샘플링된 루마 샘플 pDsY[x]이 수학식 pDsY[x] = (pY[2*x - 1][-1] + 2 * pY[2 * x][-1] + pY[2 * x + 1][-1] + 2) >> 2를 만족시키며, pY[2*x][-1], pY[2*x - 1][-1] 및 pY[2*x + 1][-1](x는 정수)는 상기 가장 가까운 상단 이웃 라인으로부터 생성된 루마 샘플들인, 비디오 처리 방법.
7. 조항 1 내지 조항 6 중 어느 것에 있어서, 상기 다운샘플링 필터는 상기 코딩 트리 유닛의 상단 경계에 대하여 상기 크로마 블록의 위치에 독립적인, 비디오 처리 방법.
8. 조항 1 내지 조항 6 중 어느 것에 있어서, 상기 방법은 상기 비디오가 4:2:2 컬러 포맷으로 인해 선택적으로 적용되는, 비디오 처리 방법.
9. 조항 1에 있어서, 상기 크로마 블록이 상단 코딩 트리 유닛 경계에 있지 않기 때문에, 상기 N개의 상단 이웃 라인들이 상기 동위치 루마 블록의 가장 가까운 상단 라인은 포함하지만 두 번째 가까운 상단 라인은 배제하는, 비디오 처리 방법.
10. 조항 1에 있어서, N은 1 보다 큰, 비디오 처리 방법.
11. 조항 10에 있어서, 상기 N개의 상단 이웃 라인들은 상기 가장 가까운 상단 라인 및 두 번째로 가까운 상단 라인을 포함하는, 비디오 처리 방법.
12. 조항 1에 있어서, 상기 다운샘플링 필터는 상기 비디오의 컬러 포맷에 의존하는, 비디오 처리 방법.
13. 조항 1 내지 조항 12 중 어느 것에 있어서, 상기 다운샘플링 필터가 6-탭 필터인, 비디오 처리 방법.
14. 조항 1 내지 조항 12 중 어느 것에 있어서, 상기 다운샘플링 필터가 5-탭 필터인, 비디오 처리 방법.
15. 조항 1 내지 조항 14 중 어느 것에 있어서, 상기 변환은 상기 비디오를 상기 비트스트림 표현으로 인코딩하는 단계를 포함하는, 비디오 처리 방법.
16. 조항 1 내지 조항 14 중 어느 것에 있어서, 상기 변환은 상기 비트스트림 표현으로부터 상기 비디오를 디코딩하는 단계를 포함하는, 비디오 처리 방법.
17. 비디오 처리 장치로서, 조항 1 내지 조항 16 중 하나 또는 그 이상에서의 방법을 실시하도록 구성되는 프로세서를 포함하는 비디오 처리 장치.
18. 컴퓨터 판독가능 매체로서, 프로세서에 의해 실행시에, 상기 프로세서로 하여금 조항 1 내지 조항 16 중 어느 것에서의 방법을 실시하도록 하는 프로그램 코드를 저장하는, 컴퓨터 판독가능 매체.
19. 상기 기술된 방법들 중 어느 것에 따라 생성된 비트스트림 표현을 저장하는 컴퓨터 판독가능 매체.
세 번째 세트의 조항들은 이전 섹션들(예를 들어, 항목 2 내지 7)에서 개시된 기술들의 일부 특성들 및 측면들을 설명한다.
1. 비디오 처리 방법으로서(예를 들어, 도 16a에 도시된 방법(1610)), 비디오의 컴포넌트의 비디오 영역과 상기 비디오의 비트스트림 표현 사이의 변환을 위해, 변환 스킵 모드를 사용하여 코딩된 비디오 블록에 대한 최대 허용 블록 크기를 결정하는 단계(1612) 및 상기 결정을 기반으로 상기 변환을 실시하는 단계(1614)를 포함하는, 비디오 처리 방법.
2. 조항 1에 있어서, 상기 변환 스킵 모드는, 인코딩 동안, 비-아이덴티티(non-identity) 변환을 적용하지 않고 상기 비디오 블록의 잔차를 코딩하거나 또는, 디코딩 동안, 상기 비트스트림 표현에서 코딩된 잔차들에 비-아이덴티티 역 변환을 적용하지 않고 디코딩된 비디오 블록을 결정하는 단계를 포함하는, 비디오 처리 방법.
3. 조항 1에 있어서, 상기 변환 스킵 모드는 블록 레벨에서 차분 펄스 코드 변조(DPCM: differential pulse-code modulation)를 사용하는 인트라 코딩 툴에 해당하는 BDPCM (블록 차분 펄스 코드 변조)를 포함하는, 비디오 처리 방법.
4. 조항 1에 있어서, 상기 최대 허용 블록 크기는 상기 변환 스킵된 블록이 크로마 블록인지 루마 블록인지 여부에 의존하는, 비디오 처리 방법.
5. 조항 1에 있어서, 상기 최대 허용 블록 크기는 상기 변환 스킵된 블록의 크로마 성분에 의존하는, 비디오 처리 방법.
6. 조항 1에 있어서, 루마 블록에 대한 최대 허용 블록 크기(MaxTsSizeY)와 크로마 블록에 대한 최대 허용 블록 크기(MaxTsSizeC)가 상기 비트스트림 표현에서 별도로 시그널링되는, 비디오 처리 방법.
7. 조항 6에 있어서, 상기 MaxTsSizeC 및/또는 the MaxTsSizeY는 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨 또는 타일 그룹 레벨에서 시그널링되는, 비디오 처리 방법.
8. 조항 6에 있어서, 상기 MaxTsSizeY는 상기 변환 스킵 모드의 활성화(enablement) 상태에 기반하여 조건적으로 시그널링되는, 비디오 처리 방법.
9. 조항 6에 있어서, 상기 MaxTsSizeY는 상기 변환 스킵 모드의 컬러 포맷 및/또는 활성화(enablement) 상태에 기반하여 조건적으로 시그널링되는, 비디오 처리 방법.
10. 조항 1에 있어서, 상기 변환은 루마 성분 및 크로마 성분에 대한 최대 블록 크기들 간의 예측 코딩을 활용하여 실시되는, 비디오 처리 방법.
11. 조항 1에 있어서, 상기 비디오 블록은 크로마 비디오 블록이고, 상기 비디오 블록에 대한 상기 최대 허용 블록 크기(MaxTsSizeC)는 루마 성분의 다른 비디오 블록에 대한 최대 허용 블록 크기(MaxTsSizeY)에 의존하는, 비디오 처리 방법.
12. 조항 11에 있어서, 상기 MaxTsSizeC는 상기 MaxTsSizeY와 같게 설정되는, 비디오 처리 방법.
13. 조항 11에 있어서, 상기 MaxTsSizeC는 MaxTsSizeY/N와 같게 설정되고, N은 정수인, 비디오 처리 방법.
14. 조항 1에 있어서, 상기 비디오 블록은 크로마 블록이고, 상기 비디오 블록에 대한 상기 최대 허용 블록 크기(MaxTsSizeC)는 크로마 서브샘플링 비율들에 따라 설정되는, 비디오 처리 방법.
15. 조항 14에 있어서, 상기 MaxTsSizeC가 i) MaxTsSizeY >> SubWidthC, ii) MaxTsSizeY >> SubHeightC, iii) MaxTsSizeY >> max (SubWidthC, SubHeightC) 및 iv) MaxTsSizeY >> min (SubWidthC, SubHeightC)와 같게 설정되며, MaxTsSiZeY는 루마 비디오 블록의 최대 블록 크기를 지시하고, SubWidthC 및 SubHeightC는 미리 정의되는, 비디오 처리 방법.
16. 비디오 처리 방법으로서(예를 들어, 도 16a에 도시된 방법(1610)), 비디오 블록들을 포함하는 비디오와 상기 비디오의 비트스트림 표현 간의 변환을 제1 규칙 및 제2 규칙에 따라 실시하는 단계를 포함하며, 변환 스킵 코딩 툴은 상기 비디오 블록들의 제1 부분(portion)을 코딩하기 위해 사용되고, 변환 스킵 코딩 툴은 상기 비디오 블록들의 제2 부분을 코딩하기 위해 사용되며, 상기 제1 규칙은 상기 비디오 블록들의 상기 제1 부분에 대한 최대 허용 블록 크기를 명시하고 상기 제2 규칙은 상기 비디오 블록들의 상기 제2 부분에 대한 최대 허용 블록 크기를 명시하며, 그리고 상기 비디오 블록들의 상기 제1 부분에 대한 상기 최대 허용 블록 크기는 상기 비디오 블록들의 상기 제2 부분에 대한 상기 최대 허용 블록 크기와 상이한, 비디오 처리 방법.
17. 조항 16에 있어서, 상기 최대 허용 블록 크기는 해당 블록의 너비 및 높이에 일치하는, 비디오 처리 방법.
18. 조항 17에 있어서, 상기 최대 허용 블록 크기의 상기 너비 및 상기 높이는 별개로 시그널링되는, 비디오 처리 방법.
19. 조항 17에 있어서, 크로마 블록들인 상기 비디오 블록들의 상기 제2 부분에 대해, 상기 너비MaxTsSizeWC는 MaxTsSizeY >> SubWidthC와 같게 설정되고, 상기 높이MaxTsSizeHC는 MaxTsSizeY >> SubHeightC와 같게 설정되며, MaxTsSizeY는 루마 블록에 대한 최대 허용 블록 크기를 지시하는, 비디오 처리 방법.
20. 비디오 처리 방법으로서(예를 들어, 도 16a에 도시된 방법(1610)), 하나 또는 그 이상의 크로마 블록들을 포함하는 비디오와 상기 비디오의 비트스트림 표현 간의 변환을 실시하는 단계를 포함하며, 상기 비트스트림 표현은, 변환 스킵 툴의 사용을 지시하기 위한 신택스 요소가 상기 비트스트림 표현에 포함되는지 여부가 상기 변환 스킵 툴을 사용하여 코딩되는 크로마 블록에 대한 최대 허용 크기에 의존한다는 것을 명시하는 포맷 규칙을 따르는, 비디오 처리 방법.
21. 조항 20에 있어서, 상기 변환 스킵 툴은 변환을 우회하거나(bypassing) 또는 아이덴티티 변환을 적용하는 단계를 포함하는, 비디오 처리 방법.
22. 조항 20에 있어서, 상기 신택스 요소는 tbW가 MaxTsSizeC 이하이고 tbH가 MaxTsSizeC 이하인 경우 시그널링되고, tbW 및 tbH는 상기 크로마 블록의 각각 너비 및 높이이며, MaxTsSizeC는 상기 크로마 블록에 대한 상기 최대 허용 크기인, 비디오 처리 방법.
23. 조항 20에 있어서, 상기 신택스 요소는 tbW가 MaxTsSizeWC 이하이고 tbH가 MaxTsSizeHC 이하인 경우 시그널링되고, tbW 및 tbH는 상기 크로마 블록의 각각 너비 및 높이이며, MaxTsSizeWC 및 MaxTsSizeHC는 상기 크로마 블록에 대한 상기 최대 허용 크기의 너비 및 높이를 각각 나타내는, 비디오 처리 방법.
24. 조항 20에 있어서, 상기 변환 스킵 툴은 블록 레벨에서 차분 펄스 코드 변조(DPCM) 를 사용하는 인트라 코딩 툴에 해당하는 BDPCM (블록 차분 펄스 코드 변조)를 포함하는, 비디오 처리 방법.
25. 비디오 처리 방법으로서(예를 들어, 도 16a에 도시된 방법(1610)), 제1 크로마 성분의 하나 또는 그 이상의 제1 비디오 블록들 및 제2 크로마 성분의 하나 또는 그 이상의 제2 비디오 블록들을 포함하는 비디오와 상기 비디오의 비트스트림 표현 간의 변환을 실시하는 단계를 포함하고, 상기 비트스트림 표현은 상기 하나 또는 그 이상의 제1 크로마 블록들 및 상기 하나 또는 그 이상의 제2 크로마 블록들을 코딩하기 위한 변환 스킵 툴의 사용가능성을 함께 지시하는 신택스 요소를 사용할 것을 명시하는 포맷 규칙에 부합하는, 비디오 처리 방법.
26. 조항 25에 있어서, 상기 신택스 요소는 이진 값을 가지는, 비디오 처리 방법.
27. 조항 25에 있어서, 상기 변환 스킵 툴은 상기 신택스 요소에 따라 상기 하나 또는 그 이상의 제1 비디오 블록들 및 상기 하나 또는 그 이상의 제2 비디오 블록들에서 활성화되거나 비활성화되는, 비디오 처리 방법.
28. 조항 25에 있어서, 상기 포맷 규칙은 상기 신택스 요소의 값이 K와 같은지 여부-여기서, K는 정수-에 기반하여 추가 신택스 요소가 상기 비트스트림 표현에 포함된다고 더 명시하는, 비디오 처리 방법.
29. 조항 28에 있어서, 상기 제2 신택스 요소는 상기 변환 스킵 툴이 상기 하나 또는 그 이상의 제1 비디오 블록들 및 상기 하나 또는 그 이상의 제2 비디오 블록들 중 어느 것에 적용되는지를 지시하기 위해 사용되는, 비디오 처리 방법.
30. 조항 25에 있어서, 상기 신택스 요소는 비-이진 값을 가지는, 비디오 처리 방법.
31. 조항 30에 있어서, 상기 신택스 요소는 고정 길이, 단항, 절단된 단항, 또는 k차 EG 이진화 방법으로 코딩되는, 비디오 처리 방법.
32. 조항 25에 있어서, 상기 신택스 요소는 문맥 코딩되거나 바이패스 코딩되는, 비디오 처리 방법.
33. 이전 조항들 중 어느 하나의 방법으로서, 상기 방법의 적용여부 및/또는 어떻게 적용할지는 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨 또는 타일 그룹 레벨에서 시그널링되는, 방법.
34. 이전 조항들 중 어느 하나의 방법으로서, 상기 방법은 코딩된 정보에 더 기반하는, 방법.
35. 조항 1 내지 조항 34 중 어느 것의 방법으로서, 상기 변환이 상기 비디오를 상기 비트스트림 표현으로 인코딩하는 단계를 포함하는, 방법.
36. 조항 1 내지 조항 34 중 어느 것의 방법으로서, 상기 변환이 상기 비디오를 상기 비트스트림 표현으로부터 디코딩하는 단계를 포함하는, 방법.
37. 비디오 처리 장치로서, 조항 1 내지 조항 36 중 하나 또는 그 이상에서의 방법을 실시하도록 구성된 프로세서를 포함하는, 비디오 처리 장치.
38. 프로그램 코드를 저장하는 컴퓨터 판독가능 매체로서, 상기 프로그램 코드는 실행시에 상기 프로세서로 하여금 조항 1 내지 조항 36 중 하나 또는 그 이상에서의 방법을 실시하도록 하는, 컴퓨터 판독가능 매체.
39. 상기 기술된 방법들 중 어느 것에 따라 생성된 코딩된 표현 또는 비트스트림 표현을 저장하는 컴퓨터 판독가능 매체.
본 특허문서가 다수의 특정한 세부사항을 포함하고 있지만, 이는 주제의 범위나 청구할 사항의 범위에 대한 어떠한 제한으로도 이해되어서는 안 되며, 특정한 기술들의 특정한 실시예들에 고유할 수 있는 특징들의 설명으로서 이해되어야 한다. 별개의 실시예들의 맥락에서 본 특허 문서에서 설명된 소정의 특징들은 조합되어 단일 실시예로 구현될 수도 있다. 반대로, 단일 실시예의 맥락에서 설명한 다양한 특징들은 복수의 실시예에서 별개로 구현되거나 어떤 적당한 하위 조합으로도 구현 가능하다. 또한, 앞에서 특징들이 특정 조합에서 동작하는 것으로서 설명되고 그와 같이 청구되기까지 하였지만, 청구된 조합으로부터의 하나 또는 그 이상의 특징들은 일부 경우에 해당 조합으로부터 삭제될 수 있으며, 청구된 조합은 하위 조합이나 하위 조합의 변형으로 될 수 있다.
마찬가지로, 동작들이 도면들에서 특정한 순서로 묘사되고 있지만, 이는 그러한 동작들이 바람직한 결과를 얻기 위해, 도시한 특정 순서나 순차적인 순서로 수행되어야 한다거나, 도시된 모든 동작들이 수행되어야 한다는 것을 의미하지 않는다. 더욱이, 본 특허 문서에 기재된 실시예에 있어서 다양한 시스템 구성요소들의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안 된다.
단지 몇 가지 구현들 및 예시들이 설명되었으며, 기타 구현, 개선 및 변형은 본 특허 문서에 설명되고 도시된 것에 기초하여 이루어질 수 있다.

Claims (19)

  1. 비디오 처리 방법에 있어서,
    비디오의 크로마 블록과 상기 비디오의 비트스트림 표현간의 변환을 위해,
    다운 샘플링 필터를 사용하여 상기 크로마 블록의 동위치(collocated) 루마 블록의 N개-여기서, N은 양의 정수-의 상단 이웃 라인들로부터 생성된 다운 샘플링된 루마 샘플들을 사용하여 크로스 컴포넌트 선형 모델의 파라미터들을 유도하는 단계; 및
    상기 크로스 컴포넌트 선형 모델을 사용하여 생성된 예측 크로마 블록을 사용하여 상기 변환을 실시하는 단계를 포함하는, 비디오 처리 방법.
  2. 제1항에 있어서,
    상기 크로마 블록이 상단 코딩 트리 유닛 경계에 있지 않기 때문에, 상기 N개의 상단 이웃 라인들이 상기 동위치 루마 블록의 가장 가까운 상단 라인에 해당하는, 비디오 처리 방법.
  3. 제1항 내지 제2항 중 어느 항에 있어서,
    상기 다운샘플링 필터는 상기 동위치 루마 블록의 좌측 이웃 라인들로부터 생성된 다른 다운샘플링된 루마 샘플들을 생성하기 위해서도 적용되는, 비디오 처리 방법.
  4. 제1항 내지 제2항 중 어느 항에 있어서,
    다른 다운샘플링 필터가 상기 동위치 루마 블록의 좌측 이웃 라인들로부터 생성되는 다른 다운샘플링된 루마 샘플들을 생성하기 위해 적용되는, 비디오 처리 방법.
  5. 제1항 내지 제4항 중 어느 항에 있어서,
    상기 다운샘플링 필터는 필터 계수들 [1, 2, 1]을 가지는, 비디오 처리 방법.
  6. 제1항 내지 제5항 중 어느 항에 있어서,
    다운샘플링된 루마 샘플pDsY[x]이 수학식 pDsY[x] = (pY[2*x - 1][-1] + 2 * pY[2 * x][-1] + pY[2 * x + 1][-1] + 2) >> 2를 만족시키고,
    pY[2*x][-1], pY[2*x - 1][-1] 및 pY[2*x + 1][-1](x는 정수)는 상기 가장 가까운 상단 이웃 라인으로부터 생성된 루마 샘플들인, 비디오 처리 방법.
  7. 제1항 내지 제6항 중 어느 항에 있어서,
    상기 다운샘플링 필터는 상기 코딩 트리 유닛의 상단 경계에 대하여 상기 크로마 블록의 위치에 독립적인, 비디오 처리 방법.
  8. 제1항 내지 제6항 중 어느 항에 있어서,
    상기 방법은 상기 비디오가 4:2:2 컬러 포맷으로 인해 선택적으로 적용되는, 비디오 처리 방법.
  9. 제1항에 있어서,
    상기 크로마 블록이 상단 코딩 트리 유닛 경계에 있지 않기 때문에, 상기 N개의 상단 이웃 라인들이 상기 동위치 루마 블록의 가장 가까운 상단 라인은 포함하지만 두 번째 가까운 상단 라인은 배제하는, 비디오 처리 방법.
  10. 제1항에 있어서,
    N은 1 보다 큰, 비디오 처리 방법.
  11. 제10항에 있어서,
    상기 N개의 상단 이웃 라인들은 상기 가장 가까운 상단 라인 및 두 번째로 가까운 상단 라인을 포함하는, 비디오 처리 방법.
  12. 제1항에 있어서,
    상기 다운샘플링 필터는 상기 비디오의 컬러 포맷에 의존하는, 비디오 처리 방법.
  13. 제1항 내지 제12항 중 어느 항에 있어서,
    상기 다운샘플링 필터가 6-탭 필터인, 비디오 처리 방법.
  14. 제1항 내지 제12항 중 어느 항에 있어서,
    상기 다운샘플링 필터가 5-탭 필터인, 비디오 처리 방법.
  15. 제1항 내지 제14항 중 어느 항에 있어서,
    상기 변환은 상기 비디오를 상기 비트스트림 표현으로 인코딩하는 단계를 포함하는, 비디오 처리 방법.
  16. 제1항 내지 제14항 중 어느 항에 있어서,
    상기 변환은 상기 비트스트림 표현으로부터 상기 비디오를 디코딩하는 단계를 포함하는, 비디오 처리 방법.
  17. 비디오 처리 장치로서, 제1항 내지 제16항 중 하나 또는 그 이상에서의 방법을 실시하도록 구성되는 프로세서를 포함하는 비디오 처리 장치.
  18. 프로그램 코드를 저장하는 컴퓨터 판독 가능한 매체로서, 상기 프로그램 코드는, 실행 시에, 프로세서로 하여금 제1항 내지 제16항 중 하나 또는 그 이상에서의 방법을 실시하도록 하는, 컴퓨터 판독 가능한 매체.
  19. 상기 기술된 방법들 중 어느 것에 따라 생성된 비트스트림 표현을 저장하는 컴퓨터 판독 가능한 매체.
KR1020227013425A 2019-11-01 2020-11-02 크로스 컴포넌트 비디오 코딩에서 선형 파라미터의 유도 KR20220087451A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2019115034 2019-11-01
CNPCT/CN2019/115034 2019-11-01
PCT/CN2020/125796 WO2021083376A1 (en) 2019-11-01 2020-11-02 Derivation of linear parameter in cross-component video coding

Publications (1)

Publication Number Publication Date
KR20220087451A true KR20220087451A (ko) 2022-06-24

Family

ID=75715851

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227013425A KR20220087451A (ko) 2019-11-01 2020-11-02 크로스 컴포넌트 비디오 코딩에서 선형 파라미터의 유도

Country Status (8)

Country Link
US (2) US11496751B2 (ko)
EP (1) EP4042696A4 (ko)
JP (2) JP7534399B2 (ko)
KR (1) KR20220087451A (ko)
CN (2) CN115066901A (ko)
BR (1) BR112022008369A2 (ko)
MX (1) MX2022004896A (ko)
WO (2) WO2021083376A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024080828A1 (ko) * 2022-10-13 2024-04-18 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117579830A (zh) 2019-06-21 2024-02-20 北京字节跳动网络技术有限公司 自适应环内颜色空间转换和其他编解码工具的选择性使用
WO2021088951A1 (en) * 2019-11-07 2021-05-14 Beijing Bytedance Network Technology Co., Ltd. Quantization properties of adaptive in-loop color-space transform for video coding
WO2021141462A1 (ko) * 2020-01-10 2021-07-15 성균관대학교산학협력단 Bdpcm을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR20220110835A (ko) * 2020-01-10 2022-08-09 엘지전자 주식회사 Bdpcm 을 사용하는 영상 디코딩 방법 및 그 장치
CN117596409A (zh) 2020-04-18 2024-02-23 抖音视界有限公司 用于处理视频数据的方法、装置以及计算机可读存储介质
US20230336748A1 (en) * 2022-04-19 2023-10-19 Tencent America LLC Chroma from luma prediction using mapping and different types
US20240031566A1 (en) * 2022-07-20 2024-01-25 Tencent America LLC Signaling of downsampling filters for chroma from luma intra prediction mode
WO2024017006A1 (en) * 2022-07-22 2024-01-25 Mediatek Inc. Accessing neighboring samples for cross-component non-linear model derivation

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009047109A1 (de) 2007-10-09 2009-04-16 Basf Se Verfahren zur abtrennung von trioxan aus einem trioxan/formaldehyd/wasser-gemisch mittels druckwechsel-rektifikation
CN103096057B (zh) 2011-11-08 2016-06-29 华为技术有限公司 一种色度帧内预测方法和装置
JP6125215B2 (ja) 2012-09-21 2017-05-10 株式会社東芝 復号装置、及び符号化装置
CN105684442B (zh) * 2013-07-23 2020-02-21 英迪股份有限公司 用于编码/解码图像的方法
WO2017088093A1 (en) * 2015-11-23 2017-06-01 Mediatek Singapore Pte. Ltd. On the smallest allowed block size in video coding
US10484712B2 (en) * 2016-06-08 2019-11-19 Qualcomm Incorporated Implicit coding of reference line index used in intra prediction
US10554974B2 (en) * 2017-01-13 2020-02-04 Mediatek Inc. Method and apparatus enabling adaptive multiple transform for chroma transport blocks using control flags
US10779007B2 (en) * 2017-03-23 2020-09-15 Mediatek Inc. Transform coding of video data
WO2019047883A1 (en) * 2017-09-08 2019-03-14 Fg Innovation Ip Company Limited DEVICE AND METHOD FOR ENCODING VIDEO DATA BASED ON MULTIPLE REFERENCE LINES
GB2567249A (en) * 2017-10-09 2019-04-10 Canon Kk New sample sets and new down-sampling schemes for linear component sample prediction
CN118413666A (zh) * 2017-11-28 2024-07-30 Lx 半导体科技有限公司 图像编码/解码方法、图像数据的传输方法和存储介质
GB2571314A (en) * 2018-02-23 2019-08-28 Canon Kk Methods and devices for linear component sample prediction using a double classification
EP3738309A1 (en) 2018-03-07 2020-11-18 Huawei Technologies Co., Ltd. Method and apparatus for detecting blocks suitable for multiple sign bit hiding
CN116708833A (zh) 2018-07-02 2023-09-05 Lg电子株式会社 编解码和发送方法及存储介质
CN116405688A (zh) 2018-07-12 2023-07-07 华为技术有限公司 视频译码中使用交叉分量线性模型进行帧内预测
CN110999290B (zh) 2018-07-15 2021-07-16 华为技术有限公司 使用跨分量线性模型进行帧内预测的方法和装置
TWI814890B (zh) 2018-08-17 2023-09-11 大陸商北京字節跳動網絡技術有限公司 簡化的跨分量預測
KR20200028860A (ko) 2018-09-07 2020-03-17 김기백 인트라 예측을 이용한 영상 부호화/복호화 방법 및 장치
WO2020053804A1 (en) 2018-09-12 2020-03-19 Beijing Bytedance Network Technology Co., Ltd. Downsampling in cross-component linear modeling
EP4422175A2 (en) 2018-09-14 2024-08-28 Huawei Technologies Co., Ltd. Slicing and tiling in video coding
CN112913235B (zh) 2018-10-04 2023-07-14 Lg电子株式会社 基于cclm的帧内预测方法及其设备
WO2020073904A1 (en) 2018-10-08 2020-04-16 Huawei Technologies Co., Ltd. An image processing device and method for performing deblocking
JP2021513755A (ja) * 2019-01-15 2021-05-27 エルジー エレクトロニクス インコーポレイティド 変換スキップフラグを利用した映像コーディング方法及び装置
KR20210145123A (ko) * 2019-04-23 2021-12-01 주식회사 윌러스표준기술연구소 다중 변환 커널을 사용하는 비디오 신호 처리 방법 및 장치
US20210076074A1 (en) * 2019-09-11 2021-03-11 Qualcomm Incorporated Maximum and minimum block sizes signaling at high level syntax for video coding and transform units

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024080828A1 (ko) * 2022-10-13 2024-04-18 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체

Also Published As

Publication number Publication date
JP7534399B2 (ja) 2024-08-14
US20220264120A1 (en) 2022-08-18
JP2024012428A (ja) 2024-01-30
EP4042696A4 (en) 2023-07-19
WO2021083376A1 (en) 2021-05-06
CN114667730A (zh) 2022-06-24
US20230073705A1 (en) 2023-03-09
BR112022008369A2 (pt) 2022-07-12
MX2022004896A (es) 2022-05-26
US11496751B2 (en) 2022-11-08
EP4042696A1 (en) 2022-08-17
CN115066901A (zh) 2022-09-16
JP2023501191A (ja) 2023-01-18
WO2021083377A1 (en) 2021-05-06

Similar Documents

Publication Publication Date Title
JP7534399B2 (ja) クロス成分映像コーディングにおける線形パラメータの導出
KR20220006059A (ko) 비디오 처리를 위한 이차 변환 행렬의 선택
CN113728642A (zh) 编解码视频的量化残差差分脉冲编解码调制表示
US12081758B2 (en) Block dimension settings of transform skip mode
JP7372449B2 (ja) スキップしたブロックを変換するための残差コーディング
WO2021190440A1 (en) Using neighboring samples in cross-component video coding
WO2021104409A1 (en) Cross-component adaptive filtering and subblock coding
US11546595B2 (en) Sub-block based use of transform skip mode
CN115066899A (zh) 编解码视频的可分二次变换处理
JP2024023524A (ja) クロスコンポーネント映像コーディングの信号通知のための構文
WO2024174979A1 (en) Transform for intra block copy