KR20220029594A - 크로마 잔차 스케일링의 시그널링 - Google Patents

크로마 잔차 스케일링의 시그널링 Download PDF

Info

Publication number
KR20220029594A
KR20220029594A KR1020217043038A KR20217043038A KR20220029594A KR 20220029594 A KR20220029594 A KR 20220029594A KR 1020217043038 A KR1020217043038 A KR 1020217043038A KR 20217043038 A KR20217043038 A KR 20217043038A KR 20220029594 A KR20220029594 A KR 20220029594A
Authority
KR
South Korea
Prior art keywords
video
block
chroma
level
region
Prior art date
Application number
KR1020217043038A
Other languages
English (en)
Other versions
KR102660738B1 (ko
Inventor
즈핀 덩
리 장
훙빈 류
카이 장
지정 쉬
Original Assignee
베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
바이트댄스 아이엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드, 바이트댄스 아이엔씨 filed Critical 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
Publication of KR20220029594A publication Critical patent/KR20220029594A/ko
Application granted granted Critical
Publication of KR102660738B1 publication Critical patent/KR102660738B1/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/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/136Incoming video signal characteristics or properties
    • 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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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

Landscapes

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

Abstract

비주얼 미디어 프로세싱을 위한 방법은 비주얼 미디어 데이터의 현재 비디오 유닛과 현재 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 포맷 규칙에 따라 구성되고; 여기서 포맷 규칙은 현재 비디오 유닛을 코딩하기 위해 크로마 잔차가 스케일링되는 정도인 스케일링 인자를 나타내는 하나 이상의 신택스 요소가 비트스트림 표현에 선택적으로 포함되는 비디오 세그먼트의 레벨을 지정한다.

Description

크로마 잔차 스케일링의 시그널링
관련 출원의 상호 참조
파리 협약에 따른 적용 가능한 특허법 및/또는 규칙들에 따라, 본 출원은 2019년 7월 7일에 출원된 국제 특허 출원 제PCT/CN2019/094964호에 대한 우선권 및 그 이익을 적시에 주장하기 위해 이루어졌다. 법에 따른 모든 목적들을 위해, 앞서 언급된 출원의 전체 개시는 본 출원의 개시의 일부로서 참고로 포함된다.
기술 분야
본 특허 문서는 비디오 및 이미지 코딩/디코딩 기술들, 디바이스들 및 시스템들에 관한 것이다.
비디오 압축의 발전에도 불구하고, 디지털 비디오는 여전히 인터넷 및 다른 디지털 통신 네트워크들에서 가장 많은 대역폭 사용을 차지한다. 비디오를 수신하고 디스플레이할 수 있는 연결된 사용자 디바이스들의 수가 증가함에 따라, 디지털 비디오 사용에 대한 대역폭 수요가 계속 증가할 것으로 예상된다.
디지털 비디오 코딩, 구체적으로는, 비디오 코딩에서 교차 성분 선형 모델(cross-component linear model, CCLM) 예측 모드에 대한 단순화된 선형 모델 도출들에 관련된 디바이스들, 시스템들 및 방법들이 설명된다. 설명된 방법들은 기존의 비디오 코딩 표준들(예를 들면, HEVC(High Efficiency Video Coding)) 및 미래의 비디오 코딩 표준들(예를 들면, VVC(Versatile Video Coding)) 또는 코덱들 둘 모두에 적용될 수 있다.
하나의 대표적인 양태에서, 개시된 기술은 비주얼 미디어 프로세싱을 위한 방법을 제공하는 데 사용될 수 있다. 이 방법은 비주얼 미디어 데이터의 현재 비디오 유닛과 현재 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 포맷 규칙에 따라 구성되고; 여기서 포맷 규칙은 현재 비디오 유닛을 코딩하기 위해 크로마 잔차가 스케일링되는 정도인 스케일링 인자를 나타내는 하나 이상의 신택스 요소가 비트스트림 표현에 선택적으로 포함되는 비디오 세그먼트의 레벨을 지정한다.
하나의 대표적인 양태에서, 개시된 기술은 비주얼 미디어 프로세싱을 위한 방법을 제공하는 데 사용될 수 있다. 이 방법은 하나 이상의 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비주얼 미디어 데이터와 비주얼 미디어 데이터의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 포맷 규칙을 준수하고, 여기서 포맷 규칙은 비디오 영역 내의 하나 이상의 비디오 블록이 변환의 루마 의존적 크로마 잔차 스케일링 단계에서 동일한 크로마 스케일링 인자를 갖는다는 것을 지정한다.
하나의 대표적인 양태에서, 개시된 기술은 비주얼 미디어 프로세싱을 위한 방법을 제공하는 데 사용될 수 있다. 이 방법은 비주얼 미디어 데이터의 현재 비디오 유닛과 비주얼 미디어 데이터의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림 표현은 현재 비디오 유닛의 변환의 크로마 잔차 스케일링 단계와 연관된 스케일링 인자를 나타내는 비트스트림 표현 내의 하나 이상의 신택스 요소가 비트스트림 표현에 예측 코딩된다는 것을 지정하는 포맷 규칙을 준수한다.
또 다른 대표적인 양태에서, 위에서 설명된 방법은 프로세서 실행 가능 코드의 형태로 구체화되고 컴퓨터 판독 가능 프로그램 매체에 저장된다.
또 다른 대표적인 양태에서, 위에서 설명된 방법을 수행하도록 구성되거나 작동 가능한 디바이스가 개시된다. 이 디바이스는 이 방법을 구현하도록 프로그래밍된 프로세서를 포함할 수 있다.
또 다른 예시적인 양태에서, 위에서 설명된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 및/또는 디코딩 장치가 개시된다.
또 다른 예시적인 양태에서, 컴퓨터 판독 가능 매체가 개시된다. 컴퓨터 판독 가능 매체는 위에서 설명된 방법 중 하나를 구체화하는 프로세서 실행 가능 코드를 저장한다.
개시된 기술의 상기 및 다른 양태들 및 특징들은 도면들, 설명 및 청구항들에서 보다 상세히 설명된다.
도 1은 HEVC에서의 각도 인트라 예측 모드들의 예를 도시한다.
도 2는 HEVC에 없는 방향성 모드들의 예를 도시한다.
도 3은 CCLM 모드와 관련된 예를 도시한다.
도 4는 LMCS(luma mapping with chroma scaling) 아키텍처의 예를 도시한다.
도 5는 상이한 컬러 포맷들의 루마 블록 및 크로마 블록의 예를 도시한다.
도 6은 동일한 컬러 포맷들의 루마 블록 및 크로마 블록의 예를 도시한다.
도 7은 다수의 포맷들을 커버하는 동일 위치(collocated) 루마 블록의 예를 도시한다.
도 8은 보다 큰 루마 블록 내의 루마 블록의 예를 도시한다.
도 9는 보다 큰 루마 블록 및 경계 상자 내의 루마 블록의 예를 도시한다.
도 10은 본 문서에 설명된 비주얼 미디어 디코딩 또는 비주얼 미디어 인코딩 기술을 구현하기 위한 하드웨어 플랫폼의 예의 블록 다이어그램이다.
도 11은 개시된 기술에 따른 교차 성분 예측을 위한 선형 모델 도출을 위한 예시적인 방법의 플로차트를 도시한다.
도 12는 개시된 기술들이 구현될 수 있는 예시적인 비디오 프로세싱 시스템의 블록 다이어그램이다.
도 13은 예시적인 비주얼 미디어 프로세싱 방법에 대한 플로차트이다.
도 14는 예시적인 비주얼 미디어 프로세싱 방법에 대한 플로차트이다.
도 15는 예시적인 비주얼 미디어 프로세싱 방법에 대한 플로차트이다.
2.1 HEVC에 대한 간략한 검토
2.1.1 HEVC/H.265에서의 인트라 예측
인트라 예측은 고려된 컬러 채널에서 이전에 재구성된 샘플들을 사용하여 주어진 TB(transform block)에 대한 샘플들을 생성하는 것을 포함한다. 인트라 예측 모드는 루마 및 크로마 채널들에 대해 개별적으로 시그널링되며, 크로마 채널 인트라 예측 모드는 'DM_CHROMA' 모드를 통해 루마 채널 인트라 예측 모드에 선택적으로 의존한다. 인트라 예측 모드는 PB(prediction block) 레벨에서 시그널링되지만, CU에 대한 잔차 쿼드 트리 계층구조에 따라, TB 레벨에서 인트라 예측 프로세스가 적용되어, 이에 의해 하나의 TB의 코딩이 CU 내의 다음 TB의 코딩에 영향을 미치며, 따라서 참조 값들로서 사용되는 샘플들까지의 거리를 감소시킨다.
HEVC는 35 개의 인트라 예측 모드 - DC 모드, 플래너 모드 및 33 개의 방향성 또는 '각도' 인트라 예측 모드 - 를 포함한다. 33 개의 각도 인트라 예측 모드는 도 1에 예시되어 있다.
크로마 컬러 채널들과 연관된 PB들의 경우, 인트라 예측 모드는 플래너, DC, 수평, 수직, 'DM_CHROMA' 모드 또는 때때로 대각선 모드 '34'로서 지정된다.
크로마 포맷들 4:2:2 및 4:2:0의 경우, 크로마 PB가 (제각기) 2 개 또는 4 개의 루마 PB와 중첩할 수 있으며; 이 경우에, DM_CHROMA에 대한 루마 방향은 이러한 루마 PB들의 좌측 상단으로부터 취해진다는 점에 유의한다.
DM_CHROMA 모드는 루마 컬러 채널 PB의 인트라 예측 모드가 크로마 컬러 채널 PB들에 적용된다는 것을 나타낸다. 이것이 비교적 통상적이기 때문에, intra_chroma_pred_mode의 가장 가능성 높은 모드 코딩 방식은 이 모드가 선택되는 것에 유리하게 편향되어 있다.
2.2 VVC(Versatile Video Coding) 알고리즘 설명
2.2.1 VVC 코딩 아키텍처
HEVC 이후의 미래 비디오 코딩 기술들을 탐구하기 위해, 2015년에 VCEG와 MPEG에 의해 공동으로 JVET(Joint Video Exploration Team)가 설립되었다. JVET 회의는 분기마다 1회 동시에 개최되며, 새로운 코딩 표준은 HEVC에 비해 50% 비트레이트 감소를 목표로 하고 있다. 새로운 비디오 코딩 표준은 2018년 4월 JVET 회의에서 공식적으로 VVC(Versatile Video Coding)라고 명명되었으며, 당시에 VVC 테스트 모델(VTM)의 첫 번째 버전이 출시되었다. VVC 표준화에 기여하는 지속적인 노력이 있기 때문에, 모든 JVET 회의에서 새로운 코딩 기술들이 VVC 표준에 채택되고 있다. VVC 작업 초안과 테스트 모델 VTM은 이어서 매 회의 이후에 업데이트된다. VVC 프로젝트는 현재 2020년 7월 회의에서 기술적 완성(FDIS)을 목표로 하고 있다.
대부분의 선행 표준들에서와 같이, VVC는, 인터 픽처 및 인트라 픽처 예측 및 변환 코딩을 엔트로피 코딩과 결합하는, 블록 기반 하이브리드 코딩 아키텍처를 가지고 있다. 픽처 분할 구조는 입력 비디오를 코딩 트리 유닛들(CTU들)이라고 하는 블록들로 나눈다. CTU는 내포된(nested) 다중 유형 트리 구조를 갖는 쿼드 트리를 사용하여 코딩 유닛들(CU들)로 분할되며, 리프 코딩 유닛(CU)은 동일한 예측 모드(예를 들면, 인트라 또는 인터)를 공유하는 영역을 정의한다. 이 문서에서, '유닛'이라는 용어는 모든 컬러 성분들을 커버하는 이미지의 영역을 정의하며; '블록'이라는 용어는 특정 컬러 성분(예를 들면, 루마)을 커버하는 영역을 정의하는 데 사용되며, 4:2:0과 같은 크로마 샘플링 포맷을 고려할 때 공간적 위치가 상이할 수 있다.
2.2.2 VVC에서의 이중/개별 트리 분할
루마 성분과 크로마 성분은 I 슬라이스들에 대해 개별 분할 트리들을 가질 수 있다. 개별 트리 분할은 CTU 레벨이 아닌 64x64 블록 레벨에 따라 이루어진다. VTM 소프트웨어에는, 이중 트리를 온 및 오프 제어하는 SPS 플래그가 있다.
2.2.3 VVC에서의 인트라 예측
2.2.3.1 67 개의 인트라 예측 모드
자연 비디오에 제시되는 임의의 에지 방향들을 캡처하기 위해, VTM4에서의 방향 인트라 모드들의 수가, HEVC에서 사용되는 바와 같은 33 개로부터 65 개로 확장된다. HEVC에 없는 새로운 방향성 모드들은 도 2에서 적색 점선 화살표들로서 묘사되며, 플래너(planar) 및 DC 모드들은 동일하게 유지된다. 이러한 보다 조밀한 방향성 인트라 예측 모드들은 모든 블록 크기들에 대해 그리고 루마 및 크로마 인트라 예측들 둘 모두에 대해 적용된다.
2.2.3.2 교차 성분 선형 모델 예측 (CCLM)
교차 성분 중복성을 감소시키기 위해, 교차 성분 선형 모델(CCLM) 예측 모드가 VTM4에서 사용되며, 이에 대해 다음과 같이 선형 모델을 사용하는 것에 의해 동일한 CU의 재구성된 루마 샘플들에 기초하여 크로마 샘플들이 예측되며:
Figure pct00001
여기서 predC(i,j)는 CU에서의 예측된 크로마 샘플들을 나타내고, recL(i,j)는 동일한 CU의 다운샘플링된 재구성된 루마 샘플들을 나타낸다. 선형 모델 파라미터 α 및 β는 다운샘플링된 이웃 루마 샘플 세트 내부의 최소 샘플 값과 최대 샘플 값을 갖는 2 개의 샘플 및 이들의 대응하는 크로마 샘플들로부터의 루마 값들과 크로마 값들 사이의 관계로부터 도출된다. 선형 모델 파라미터들 α 및 β는 다음 수학식들에 따라 획득된다.
Figure pct00002
여기서 Ya 및 Xa는 최대 루마 샘플 값을 갖는 루마 샘플의 루마 값과 크로마 값을 나타낸다. 그리고 Xb 및 Yb는, 제각기, 최소 루마 샘플 값을 갖는 루마 샘플의 루마 값과 크로마 값을 나타낸다. 도 3은 CCLM 모드에 수반되는 현재 블록의 샘플 및 좌측 샘플과 위쪽 샘플의 위치의 예를 도시한다.
파라미터 α를 계산하는 나눗셈 연산은 룩업 테이블로 구현된다. 테이블을 저장하는 데 필요한 메모리를 감소시키기 위해, 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 }
이것은 계산의 복잡도는 물론 필요한 테이블들을 저장하는 데 필요한 메모리 크기 둘 모두를 감소시키는 이점이 있을 것이다.
위쪽 템플릿과 좌측 템플릿은 함께 선형 모델 계수들을 계산하는 데 사용될 수 있는 것 외에도, 이들은 또한, LM_A 모드 및 LM_L 모드라고 하는, 다른 2 개의 LM 모드에서 대안적으로 사용될 수 있다.
LM_A 모드에서는, 위쪽 템플릿만이 선형 모델 계수들을 계산하는 데 사용된다. 보다 많은 샘플들을 얻기 위해, 위쪽 템플릿이 (W+H)로 확장된다. LM_L 모드에서는, 좌측 템플릿만이 선형 모델 계수들을 계산하는 데 사용된다. 보다 많은 샘플들을 얻기 위해, 좌측 템플릿이 (H+W)로 확장된다.
정사각형이 아닌 블록의 경우, 위쪽 템플릿은 W+W로 확장되고, 좌측 템플릿은 H+H로 확장된다.
4:2:0 비디오 시퀀스들에 대한 크로마 샘플 위치들을 일치시키기 위해, 수평 방향 및 수직 방향 둘 모두에서 2:1 다운샘플링 비율을 달성하도록 두 가지 유형의 다운샘플링 필터가 루마 샘플들에 적용된다. 다운샘플링 필터의 선택은 SPS 레벨 플래그에 의해 지정된다. 2 개의 다운샘플링 필터는 다음과 같으며, 제각기, "type-0" 및 "type-2" 내용에 대응한다.
Figure pct00003
Figure pct00004
상부 참조 라인이 CTU 경계에 있을 때 다운샘플링된 루마 샘플들을 만들기 위해 단지 하나의 루마 라인(인트라 예측에서의 일반 라인 버퍼)이 사용된다는 점에 유의한다.
이 파라미터 계산은 디코딩 프로세스의 일부로서 수행되며, 인코더 탐색 동작이 아니다. 그 결과, α 및 β 값들을 디코더에 전달하기 위해 신택스가 사용되지 않는다.
크로마 인트라 모드 코딩의 경우, 크로마 인트라 모드 코딩을 위해 총 8 개의 인트라 모드가 허용된다. 이러한 모드들은 5 개의 전통적인 인트라 모드와 3 개의 교차 성분 선형 모델 모드(CCLM, LM_A 및 LM_L)를 포함한다. 크로마 모드 코딩은 대응하는 루마 블록의 인트라 예측 모드에 직접 의존한다. I 슬라이스들에서 루마 및 크로마 성분들에 대한 개별 블록 분할 구조가 가능하기 때문에, 하나의 크로마 블록이 다수의 루마 블록들에 대응할 수 있다. 따라서, 크로마 DM 모드의 경우, 현재 크로마 블록의 중앙 위치를 커버하는 대응하는 루마 블록의 인트라 예측 모드가 직접 상속된다.
2.2.3.2.1 대응하는 수정된 작업 초안(JVET-N0271)
다음 사양은 JVET-M1001의 수정된 작업 초안 및 JVET-N0271에서의 채택에 기초한다. 채택된 JVET-N0220의 수정 사항들은 굵은 글꼴로 밑줄이 그어져 표시되어 있다.
신택스 테이블
시퀀스 파라미터 세트 RBSP 신택스
Figure pct00005
시맨틱스
sps_cclm_enabled_flag가 0과 동일한 것은 루마 성분으로부터 크로마 성분으로의 교차 성분 선형 모델 인트라 예측이 디스에이블된다는 것을 지정한다. sps_cclm_enabled_flag가 1과 동일한 것은 루마 성분으로부터 크로마 성분으로의 교차 성분 선형 모델 인트라 예측이 인에이블된다는 것을 지정한다.
디코딩 프로세스
8.4.4.2.8 INTRA_LT_CCLM, INTRA_L_CCLM 및 INTRA_T_CCLM 인트라 예측 모드의 사양
이 프로세스에 대한 입력들은 다음과 같다:
- 인트라 예측 모드 predModeIntra,
- 현재 픽처의 좌측 상단 샘플을 기준으로 현재 변환 블록의 좌측 상단 샘플의 샘플 위치(xTbC, yTbC),
- 변환 블록 폭을 지정하는 변수 nTbW,
- 변환 블록 높이를 지정하는 변수 nTbH,
- 크로마 이웃 샘플들 p[ x ][ y ], 단, x = -1, y = 0..2 * nTbH - 1 및 x = 0.. 2 * nTbW - 1, y = - 1.
이 프로세스의 출력은 예측된 샘플들 predSamples[ x ][ y ], 단, x = 0..nTbW - 1, y = 0..nTbH - 1이다.
현재 루마 위치(xTbY, yTbY)는 다음과 같이 도출된다:
Figure pct00006
변수들 availL, availT 및 availTL은 다음과 같이 도출된다:
- 6.4.X 절 [Ed. (BB): 이웃 블록 이용 가능성 검사 프로세스(추후 결정)] 에 명시된 바와 같은 블록에 대한 좌측 이웃 샘플 이용 가능성 도출 프로세스는 ( xTbC, yTbC )와 동일하게 설정된 현재 크로마 위치 ( xCurr, yCurr ) 및 이웃 크로마 위치 ( xTbC - 1, yTbC )를 입력들로 하여 호출되고, 출력은 availL에 할당된다.
- 6.4.X 절 [Ed. (BB): 이웃 블록 이용 가능성 검사 프로세스(추후 결정)] 에 명시된 바와 같은 블록에 대한 상단 이웃 샘플 이용 가능성 도출 프로세스는 ( xTbC, yTbC )와 동일하게 설정된 현재 크로마 위치 ( xCurr, yCurr ) 및 이웃 크로마 위치 ( xTbC, yTbC - 1 )을 입력들로 하여 호출되고, 출력은 availT에 할당된다.
- 6.4.X 절 [Ed. (BB): 이웃 블록 이용 가능성 검사 프로세스(추후 결정)] 에 명시된 바와 같은 블록에 대한 좌측 상단 이웃 샘플 이용 가능성 도출 프로세스는 ( xTbC, yTbC )와 동일하게 설정된 현재 크로마 위치 ( xCurr, yCurr ) 및 이웃 크로마 위치 ( xTbC - 1, yTbC - 1 )을 입력들로 하여 호출되고, 출력은 availTL에 할당된다.
- 이용 가능한 우측 상단 이웃 크로마 샘플들의 수 numTopRight는 다음과 같이 도출된다:
- 변수 numTopRight는 0과 동일하게 설정되고 availTR은 TRUE와 동일하게 설정된다.
- predModeIntra가 INTRA_T_CCLM과 동일할 때, availTR이 FALSE와 동일하거나 x가 2 * nTbW - 1과 동일하게 될 때까지 x = nTbW..2 * nTbW - 1에 대해 다음이 적용된다:
- 6.4.X 절 [Ed. (BB): 이웃 블록 이용 가능성 검사 프로세스(추후 결정)] 에 명시된 바와 같은 블록에 대한 이용 가능성 도출 프로세스는 ( xTbC, yTbC )와 동일하게 설정된 현재 크로마 위치 ( xCurr, yCurr ) 및 이웃 크로마 위치 ( xTbC + x, yTbC - 1 )을 입력들로 하여 호출되고, 출력은 availableTR에 할당된다.
- availableTR이 TRUE와 동일할 때, numTopRight가 1씩 증분된다.
- 이용 가능한 좌측 아래 이웃 크로마 샘플들의 수 numLeftBelow는 다음과 같이 도출된다:
- 변수 variable numLeftBelow는 0과 동일하게 설정되고 availLB는 TRUE와 동일하게 설정된다.
- predModeIntra가 INTRA_L_CCLM과 동일할 때, availLB가 FALSE와 동일하거나 y가 2 * nTbH - 1과 동일하게 될 때까지 y = nTbH..2 * nTbH - 1에 대해 다음이 적용된다:
- 6.4.X 절 [Ed. (BB): 이웃 블록 이용 가능성 검사 프로세스(추후 결정)] 에 명시된 바와 같은 블록에 대한 이용 가능성 도출 프로세스는 ( xTbC, yTbC )와 동일하게 설정된 현재 크로마 위치 ( xCurr, yCurr ) 및 이웃 크로마 위치 ( xTbC - 1, yTbC + y )를 입력들로 하여 호출되고, 출력은 availableLB에 할당된다.
- availableLB가 TRUE와 동일할 때, numLeftBelow가 1씩 증분된다.
상단 및 우측 상단에서 이용 가능한 이웃 크로마 샘플들의 수 numTopSamp와 좌측 및 좌측 아래에서 이용 가능한 이웃 크로마 샘플들의 수 nLeftSamp는 다음과 같이 도출된다:
- predModeIntra가 INTRA_LT_CCLM과 동일할 때, 다음이 적용된다:
Figure pct00007
- 그렇지 않은 경우, 다음이 적용된다:
Figure pct00008
변수 bCTUboundary는 다음과 같이 도출된다:
Figure pct00009
변수 cntN 및 어레이 pickPosN[](단, N은 L 및 T로 대체됨)은 다음과 같이 도출된다:
- 변수 numIs4N은 (( availT && availL && predModeIntra == INTRA_LT_CCLM ) ? 0 : 1)과 동일하게 설정된다.
- 변수 startPosN은 numSampN >> ( 2 + numIs4N )과 동일하게 설정된다.
- 변수 pickStepN은 Max( 1, numSampN >>  ( 1 + numIs4N ))와 동일하게 설정된다.
- availN이 TRUE와 동일하고 predModeIntra가 INTRA_LT_CCLM 또는 INTRA_N_CCLM과 동일한 경우, cntN은 Min( numSampN, ( 1 + numIs4N ) << 1 )과 동일하게 설정되고, pickPosN[ pos ]는(startPosN + pos * pickStepN)과 동일하게 설정되며, 단, pos = 0..( cntN - 1 )이다.
- 그렇지 않은 경우, cntN은 0과 동일하게 설정된다.
예측 샘플들 predSamples[ x ][ y ](단, x = 0..nTbW - 1, y = 0..nTbH - 1)는 다음과 같이 도출된다:
- numSampL 및 numSampT 둘 모두가 0과 동일한 경우, 다음이 적용된다:
Figure pct00010
- 그렇지 않은 경우, 다음과 같은 순서의 단계들이 적용된다:
1. 동일 위치 루마 샘플들 pY[ x ][ y ](단, x = 0..nTbW * 2 - 1, y= 0..nTbH * 2 - 1)는 위치들 ( xTbY + x, yTbY + y )에서 디블로킹 필터 프로세스 이전에 재구성된 루마 샘플들과 동일하게 설정된다.
2. 이웃 루마 샘플들 pY[ x ][ y ]는 다음과 같이 도출된다:
- numSampL이 0보다 클 때, 이웃하는 좌측 루마 샘플들 pY[ x ][ y ](단, x = -1..-3, y = 0..2 * numSampL - 1)는 위치들 ( xTbY + x , yTbY +y )에서 디블로킹 필터 프로세스 이전에 재구성된 루마 샘플들과 동일하게 설정된다.
- numSampT가 0보다 클 때, 이웃하는 상단 루마 샘플들 pY[ x ][ y ](단, x = 0..2 * numSampT - 1, y = -1, -2)는 위치들 ( xTbY+ x, yTbY + y )에서 디블로킹 필터 프로세스 이전에 재구성된 루마 샘플들과 동일하게 설정된다.
- availTL이 TRUE와 동일할 때, 이웃하는 좌측 상단 루마 샘플들 pY[ x ][ y ](단, x = -1, y = -1, -2)는 위치들 ( xTbY+ x, yTbY + y )에서 디블로킹 필터 프로세스 이전에 재구성된 루마 샘플들과 동일하게 설정된다.
3. 다운샘플링된 동일 위치 루마 샘플들 pDsY[ x ][ y ](단, x = 0..nTbW - 1,  y = 0..nTbH - 1)는 다음과 같이 도출된다:
- sps_cclm_colocated_chroma_flag가 1과 동일한 경우, 다음이 적용된다:
- pDsY[ x ][ y ](단, x = 1..nTbW - 1, y = 1..nTbH - 1)는 다음과 같이 도출된다:
Figure pct00011
- availL이 TRUE와 동일한 경우, pDsY[ 0 ][ y ](단, y = 1..nTbH - 1)는 다음과 같이 도출된다:
Figure pct00012
- 그렇지 않은 경우, pDsY[ 0 ][ y ](단, y = 1..nTbH - 1)는 다음과 같이 도출된다:
Figure pct00013
- availT가 TRUE와 동일한 경우, pDsY[ x ][ 0 ](단, x = 1..nTbW - 1)는 다음과 같이 도출된다:
Figure pct00014
- 그렇지 않은 경우, pDsY[ x ][ 0 ](단, x = 1..nTbW - 1)는 다음과 같이 도출된다:
Figure pct00015
- availL이 TRUE와 동일하고 availT가 TRUE와 동일한 경우, pDsY[ 0 ][ 0 ]은 다음과 같이 도출된다:
Figure pct00016
- 그렇지 않고 availL이 TRUE와 동일하고 availT가 FALSE와 동일한 경우, pDsY[ 0 ][ 0 ]은 다음과 같이 도출된다:
Figure pct00017
- 그렇지 않고 availL이 FALSE와 동일하고 availT가 TRUE와 동일한 경우, pDsY[ 0 ][ 0 ]은 다음과 같이 도출된다:
Figure pct00018
- 그렇지 않은 경우(availL이 FALSE와 동일하고 availT가 FALSE와 동일한 경우), pDsY[ 0 ][ 0 ]은 다음과 같이 도출된다:
Figure pct00019
- 그렇지 않은 경우, 다음이 적용된다:
- pDsY[ x ][ y ](단, x = 1..nTbW - 1, y = 0..nTbH - 1)는 다음과 같이 도출된다:
Figure pct00020
- availL이 TRUE와 동일한 경우, pDsY[ 0 ][ y ](단, y = 0..nTbH - 1)는 다음과 같이 도출된다:
Figure pct00021
- 그렇지 않은 경우, pDsY[ 0 ][ y ](단, y = 0..nTbH - 1)는 다음과 같이 도출된다:
Figure pct00022
4. numSampL이 0보다 클 때, 선택된 이웃하는 좌측 크로마 샘플들 pSelC[idx]는 p[ -1 ][ pickPosL[ idx ]](단, idx = 0..(cntL - 1))와 동일하게 설정되고, 선택된 다운샘플링된 이웃하는 좌측 루마 샘플 pSelDsY[ idx ] (단, idx = 0..(cntL-1) )는 다음과 같이 도출된다:
- 변수 y는 pickPosL[ idx ]와 동일하게 설정된다.
- sps_cclm_colocated_chroma_flag가 1과 동일한 경우, 다음이 적용된다:
- y > 0 || availTL == TRUE인 경우,
Figure pct00023
- 그렇지 않은 경우,
Figure pct00024
- 그렇지 않은 경우, 다음이 적용된다:
Figure pct00025
5. numSampT가 0보다 클 때, 선택된 이웃하는 상단 크로마 샘플들 pSelC[ idx ]는 p[ pickPosT[ idx - cntL ]][ -1 ](단, idx = cntL..( cntL + cntT - 1 ))과 동일하게 설정되고, 다운샘플링된 이웃하는 상단 루마 샘플들 pSelDsY[ idx ](단, idx = cntL..( cntL + cntT - 1 )) 는 다음과 같이 지정된다:
- 변수 x는 pickPosT[ idx - cntL ]과 동일하게 설정된다.
- sps_cclm_colocated_chroma_flag가 1과 동일한 경우, 다음이 적용된다:
- x > 0인 경우:
- bCTUboundary가 FALSE와 동일한 경우, 다음이 적용된다:
Figure pct00026
- 그렇지 않은 경우(bCTUboundary가 TRUE와 동일한 경우), 다음이 적용된다:
Figure pct00027
- 그렇지 않고:
- availTL이 TRUE와 동일하고 bCTUboundary가 FALSE와 동일한 경우, 다음이 적용된다:
Figure pct00028
그렇지 않고 availTL이 TRUE와 동일하고 bCTUboundary가 TRUE와 동일한 경우, 다음이 적용된다:
Figure pct00029
- 그렇지 않고, availTL이 FALSE와 동일하고 bCTUboundary가 FALSE와 동일한 경우, 다음이 적용된다:
Figure pct00030
- 그렇지 않은 경우(availTL이 FALSE와 동일하고 bCTUboundary가 TRUE와 동일한 경우), 다음이 적용된다:
Figure pct00031
- 그렇지 않은 경우, 다음이 적용된다:
- x > 0인 경우:
- bCTUboundary가 FALSE와 동일한 경우, 다음이 적용된다:
Figure pct00032
- 그렇지 않은 경우(bCTUboundary가 TRUE와 동일한 경우), 다음이 적용된다:
Figure pct00033
- 그렇지 않고:
- availTL이 TRUE와 동일하고 bCTUboundary가 FALSE와 동일한 경우, 다음이 적용된다:
Figure pct00034
- 그렇지 않고, availTL이 TRUE와 동일하고 bCTUboundary가 TRUE와 동일한 경우, 다음이 적용된다:
Figure pct00035
- 그렇지 않고, availTL이 FALSE와 동일하고 bCTUboundary가 FALSE와 동일한 경우, 다음이 적용된다:
Figure pct00036
- 그렇지 않은 경우(availTL이 FALSE와 동일하고 bCTUboundary가 TRUE와 동일한 경우), 다음이 적용된다:
Figure pct00037
6. cntT+ cntL 이 0과 동일하지 않을 때, 변수들 minY, maxY, minC 및 maxC는 다음과 같이 도출된다:
- cntT+cntL 이 2와 동일할 때, pSelComp[3]을 pSelComp[0]과 동일하게 설정하고, pSelComp[2]를 pSelComp[1]과 동일하게 설정하며, pSelComp[0]을 pSelComp[1]과 동일하게 설정하고, pSelComp[1]을 pSelComp[3]과 동일하게 설정하며, Comp는 DsY 및 C로 대체된다.
- 어레이들 minGrpIdx[] 및 maxGrpIdx[]는 다음과 같이 설정된다: minGrpIdx[0] = 0, minGrpIdx[1] = 2, maxGrpIdx[0] = 1, maxGrpIdx[1] = 3.
- If pSelDsY[minGrpIdx[0]] > pSelDsY[minGrpIdx[1]], Swap(minGrpIdx[0], minGrpIdx[1]).
- If pSelDsY[maxGrpIdx[0]] > pSelDsY[maxGrpIdx[1]], Swap(maxGrpIdx[0], maxGrpIdx[1]).
- If pSelDsY[minGrpIdx[0]] > pSelDsY[maxGrpIdx[1]], Swap(minGrpIdx, maxGrpIdx ).
- If pSelDsY[minGrpIdx[1]] > pSelDsY[maxGrpIdx[0]], Swap(minGrpIdx[1], maxGrpIdx[0]).
- maxY = ( pSelDsY[maxGrpIdx[0]] + pSelDsY[maxGrpIdx[1]] + 1 ) >> 1.
- maxC = ( pSelC[maxGrpIdx[0]] + pSelC[maxGrpIdx[1]] + 1 ) >> 1.
- minY = ( pSelDsY[minGrpIdx[0]] + pSelDsY[minGrpIdx[1]] + 1 ) >> 1.
- minC = ( pSelC[minGrpIdx[0]] + pSelC[minGrpIdx[1]] + 1 ) >> 1.
7. 변수들 a, b, 및 k는 다음과 같이 도출된다:
- numSampL이 0과 동일하고 numSampT가 0과 동일한 경우, 다음이 적용된다:
Figure pct00038
- 그렇지 않은 경우, 다음이 적용된다:
Figure pct00039
- diff가 0과 동일하지 않은 경우, 다음이 적용된다:
Figure pct00040
Figure pct00041
여기서 divSigTable[ ]은 다음과 같이 지정된다:
Figure pct00042
- 그렇지 않은 경우(diff가 0과 동일한 경우), 다음이 적용된다:
Figure pct00043
8. 예측 샘플들 predSamples[ x ][ y ](단, x = 0..nTbW - 1, y = 0.. nTbH - 1)는 다음과 같이 도출된다:
Figure pct00044
2.2.3.3 기타 인트라 예측 측면들
VTM4는 HEVC와 상이한 많은 인트라 코딩 툴들을 포함하며, 예를 들어, 다음 특징들이 블록 트리 구조 외에 VVC 테스트 모델 3에 포함되었다.
Figure pct00045
광각 모드 확장을 갖는 67 개의 인트라 모드
Figure pct00046
블록 크기 및 모드 의존적 4 탭 보간 필터
Figure pct00047
위치 의존적 인트라 예측 결합(PDPC)
Figure pct00048
교차 성분 선형 모델 인트라 예측
Figure pct00049
다중 참조 라인 인트라 예측
Figure pct00050
인트라 서브파티션
2.2.4 VVC에서의 인터 예측
2.2.4.1 인터 및 인트라 결합 예측(CIIP)
VTM4에서, CU가 병합 모드에서 코딩될 때, 그리고 CU가 적어도 64 개의 루마 샘플을 포함하는 경우(즉, CU 폭 x CU 높이가 64 이상인 경우), 인터/인트라 결합 예측(CIIP) 모드가 현재 CU에 적용되는지를 나타내기 위해 추가적인 플래그가 시그널링된다.
CIIP 예측을 형성하기 위해, 인트라 예측 모드가 먼저 2 개의 추가적인 신택스 요소로부터 도출된다. 최대 4 개의 가능한 인트라 예측 모드가 사용될 수 있다: DC, 플래너, 수평 또는 수직. 이어서, 인터 예측 및 인트라 예측 신호들이 일반 인트라 및 인터 디코딩 프로세스들을 사용하여 도출된다. 마지막으로, CIIP 예측을 획득하기 위해 인터 및 인트라 예측 신호들의 가중 평균이 수행된다.
2.2.4.2 기타 인터 예측 측면들
VTM4는 HEVC와 상이한 많은 인터 코딩 툴들을 포함하며, 예를 들어, 다음 특징들이 블록 트리 구조 외에 VVC 테스트 모델 3에 포함되었다.
Figure pct00051
아핀 모션 인터 예측
Figure pct00052
서브블록 기반 시간 모션 벡터 예측
Figure pct00053
적응적 모션 벡터 분해능
Figure pct00054
시간 모션 예측을 위한 8x8 블록 기반 모션 압축
Figure pct00055
루마 성분을 위한 8 탭 보간 필터와 크로마 성분을 위한 4 탭 보간 필터를 사용한 고정밀(1/16 펠) 모션 벡터 저장 및 모션 보상
Figure pct00056
삼각형 분할
Figure pct00057
인트라 및 인터 결합 예측
Figure pct00058
MMVD(Merge with MVD)
Figure pct00059
대칭 MVD 코딩
Figure pct00060
양방향 광학 흐름
Figure pct00061
디코더 측 모션 벡터 개선
Figure pct00062
양방향 예측 가중 평균
2.2.5 인루프 필터들
VTM4에는 총 3 개의 인루프 필터가 있다. 디블로킹 필터와 SAO(HEVC에서의 2 개의 루프 필터) 외에, VTM4에서는 적응적 루프 필터(ALF)가 적용된다. VTM4에서의 필터링 프로세스의 순서는 디블로킹 필터, SAO 및 ALF이다.
VTM4에서, SAO 및 디블로킹 필터링 프로세스들은 HEVC에서와 거의 동일하다.
VTM4에서, LMCS(luma mapping with chroma scaling)라는 새로운 프로세스가 추가되었다(이 프로세스는 이전에 적응적 인루프 리셰이퍼(adaptive in-loop reshaper)라고 알려짐). 이 새로운 프로세스는 디블로킹 이전에 수행된다.
2.2.6 LMCS(luma mapping with chroma scaling, 인루프 리셰이핑이라고도 함)
VTM4에서, LMCS(luma mapping with chroma scaling)라는 코딩 툴이 루프 필터들 이전에 새로운 프로세싱 블록으로서 추가된다. LMCS는 2 개의 주요 컴포넌트를 갖는다: 1) 적응적 구간별 선형 모델들에 기초한 루마 성분의 인루프 매핑; 2) 크로마 성분들에 대해, 루마 의존적 크로마 잔차 스케일링이 적용된다. 도 4는 디코더의 관점에서 본 LMCS 아키텍처를 도시한다. 도 4에서 도트로 음영 처리된 블록들은 매핑된 도메인에서 프로세싱이 적용되는 위치를 나타내고; 이들은 역양자화, 역변환, 루마 인트라 예측 및 루마 예측을 루마 잔차와 함께 가산하는 것을 포함한다. 도 4에서의 음영 처리되지 않은 블록들은 원래(즉, 매핑되지 않은) 도메인에서 프로세싱이 적용되는 위치를 나타내며; 이들은 디블로킹, ALF 및 SAO와 같은 루프 필터들, 모션 보상 예측, 크로마 인트라 예측, 크로마 예측을 크로마 잔차과 함께 가산하는 것, 및 디코딩된 픽처들을 참조 픽처들로서 저장하는 것을 포함한다. 도 4에서 교차 해칭으로 음영 처리된 블록들은, 루마 신호의 순방향 및 역방향 매핑과 루마 의존적 크로마 스케일링 프로세스를 포함한, 새로운 LMCS 기능 블록들이다. VVC에서의 대부분의 다른 툴들과 마찬가지로, LMCS는 SPS 플래그를 사용하여 시퀀스 레벨에서 인에이블/디스에이블될 수 있다.
2.2.6.1 구간별 선형 모델을 사용한 루마 매핑
루마 성분의 인루프 매핑은 압축 효율을 개선시키기 위해 다이내믹 레인지에 걸쳐 코드워드들을 재분배하는 것에 의해 입력 신호의 다이내믹 레인지를 조정한다. 루마 매핑은 순방향 매핑 함수 FwdMap 및 대응하는 역방향 매핑 함수 InvMap를 사용한다. FwdMap 함수는 16 개의 동일한 구간(piece)을 갖는 구간별 선형 모델을 사용하여 시그널링된다. InvMap 함수는 시그널링될 필요가 없으며, 그 대신에 FwdMap 함수로부터 도출된다.
루마 매핑 모델은 타일 그룹 레벨에서 시그널링된다. 존재 플래그가 먼저 시그널링된다. 루마 매핑 모델이 현재 타일 그룹에 존재하는 경우, 대응하는 구간별 선형 모델 파라미터들이 시그널링된다. 구간별 선형 모델은 입력 신호의 다이내믹 레인지를 16 개의 동일한 구간으로 분할하고, 각각의 구간에 대해, 그의 선형 매핑 파라미터들이 대응하는 구간에 할당된 코드워드들의 수를 사용하여 표현된다. 10-비트 입력을 예로 든다. 16 개의 구간 각각에 기본적으로 64 개의 코드워드가 할당될 것이다. 시그널링된 코드워드 수는 스케일링 인자를 계산하고 해당 구간에 대해 그에 따라 매핑 함수를 조정하는 데 사용된다. 타일 그룹 레벨에서, 도 4에 묘사된 LMCS 프로세스가 현재 타일 그룹에 적용되는지를 나타내기 위해 다른 LMCS 인에이블 플래그가 시그널링된다.
FwdMap 구간별 선형 모델의 각각의 제i 구간(단, i = 0 … 15)은 2 개의 입력 피벗 포인트 InputPivot[] 및 2 개의 출력(매핑된) 피벗 포인트 MappedPivot[]에 의해 정의된다.
InputPivot[] 및 MappedPivot[]은 다음과 같이 계산된다(10 비트 비디오를 가정함):
1) OrgCW = 64
2) i = 0:16의 경우 InputPivot[ i ] = i * OrgCW
3) i=0:16의 경우 MappedPivot[i]는 다음과 같이 계산되며:
MappedPivot[ 0 ] = 0;
for( i = 0; i <16 ; i++)
MappedPivot[ i + 1 ] = MappedPivot[ i ] + SignalledCW[ i ]
여기서 SignalledCW[ i ]는 제i 구간에 대한 시그널링된 코드워드 수이다.
도 4에 도시된 바와 같이, 인터 코딩된 블록에 대해, 매핑된 도메인에서 모션 보상 예측이 수행된다. 환언하면, 모션 보상 예측 블록 이후에, Ypred가 DPB에서의 참조 신호들에 기초하여 계산되며, FwdMap 함수는 원래 도메인에서의 루마 예측 블록을 매핑된 도메인에 매핑하기 위해 적용되며,
Figure pct00063
이다. 인트라 코딩된 블록의 경우, FwdMap 함수가 적용되지 않는데, 그 이유는 인트라 예측이 매핑된 도메인에서 수행되기 때문이다. 재구성된 블록 Yr이 계산된 후에, InvMap 함수는 매핑된 도메인에서의 재구성된 루마 값들을 원래 도메인에서의 재구성된 루마 값들로 다시 변환하는 데 적용된다
Figure pct00064
Figure pct00065
. InvMap 함수는 인트라 코딩된 루마 블록들 및 인터 코딩된 루마 블록들 둘 모두에 적용된다.
루마 매핑 프로세스(순방향 및/또는 역방향 매핑)는 룩업 테이블(LUT)을 사용하여 또는 즉석 계산(on-the-fly computation)을 사용하여 구현될 수 있다. LUT가 사용되는 경우, FwdMapLUTInvMapLUT가 타일 그룹 레벨에서 사용하기 위해 미리 계산되고 미리 저장될 수 있으며, 순방향 매핑과 역방향 매핑은, 제각기,
Figure pct00066
Figure pct00067
Figure pct00068
로서 간단하게 구현될 수 있다. 대안적으로, 즉석 계산이 사용될 수 있다. 순방향 매핑 함수 FwdMap를 예로 든다. 루마 샘플이 속하는 구간을 알아내기 위해, 샘플 값이 6 비트(16 개의 동일한 구간에 대응함)만큼 우측으로 시프트된다. 이어서, 해당 구간에 대한 선형 모델 파라미터들이 검색되고 즉석에서 적용되어 매핑된 루마 값을 계산한다. i를 구간 인덱스라고 하고, a1, a2를, 제각기, InputPivot[i] 및 InputPivot[i+1]이라고 하며, b1, b2를, 제각기, MappedPivot[i] 및 MappedPivot[i+1]이라고 한다. FwdMap 함수는 다음과 같이 평가된다:
Figure pct00069
InvMap 함수는, 매핑된 도메인에서의 구간들이 동일한 크기가 아니기 때문에, 샘플 값이 속하는 구간을 알아낼 때 간단한 우측 비트 시프트 대신에 조건부 검사가 적용될 필요가 있다는 점을 제외하고는, 유사한 방식으로 즉석에서 계산될 수 있다.
2.2.6.2 루마 의존적 크로마 잔차 스케일링
크로마 잔차 스케일링은 루마 신호와 그의 대응하는 크로마 신호들 간의 상호작용을 보상하도록 설계되어 있다. 크로마 잔차 스케일링이 인에이블되어 있는지 여부가 또한 타일 그룹 레벨에서 시그널링된다. 루마 매핑이 인에이블된 경우 그리고 이중 트리 분할(개별 크로마 트리라고도 함)이 현재 타일 그룹에 적용되지 않는 경우, 루마 의존적 크로마 잔차 스케일링이 인에이블되어 있는지 여부를 나타내기 위해 추가적인 플래그가 시그널링된다. 루마 매핑이 사용되지 않을 때 또는 현재 타일 그룹에서 이중 트리 분할이 사용될 때, 루마 의존적 크로마 잔차 스케일링이 디스에이블된다. 게다가, 루마 의존적 크로마 잔차 스케일링은 면적이 4보다 작거나 같은 크로마 블록들에 대해 항상 디스에이블된다.
크로마 잔차 스케일링은 (인트라 코딩된 블록들 및 인터 코딩된 블록들 둘 모두에 대해) 대응하는 루마 예측 블록의 평균값에 의존한다. avgY'을 루마 예측 블록의 평균으로서 표기한다. CScalenv의 값은 다음 단계들에서 계산된다:
1) InvMap 함수에 기초하여 avgY'이 속하는 구간별 선형 모델의 인덱스 YIdx를 구한다.
2) CScalenv = cScaleInv[YIdx]이고, 여기서 cScaleInv[]는 미리 계산된 16 구간 LUT이다.
현재 블록이 인트라, CIIP 또는 인트라 블록 복사(IBC, 현재 픽처 참조 또는 CPR이라고도 함) 모드들로서 코딩되는 경우, avgY'는 인트라 예측, CIIP 예측 또는 IBC 예측 루마 값들의 평균으로서 계산되고; 그렇지 않은 경우, avgY'는 순방향 매핑된 인터 예측 루마 값들의 평균으로서 계산된다(도 4에서의 Y'pred). 샘플 기반으로 수행되는 루마 매핑과 달리, cScaleInv는 전체 크로마 블록에 대한 상수 값이다. cScaleInv를 사용하여, 크로마 잔차 스케일링은 다음과 같이 적용된다:
인코더 측: C ResScale = C Res * C Scale = C Res /C Scalenv
디코더 측: C Res = C ResScale /C Scale = C ResScale * C Scalenv
2.2.6.3 JVET-N0220에서의 채택을 갖는 JVET-M1001_v7에서의 대응하는 작업 초안
다음 사양은 JVET-M1001의 수정된 작업 초안 및 JVET-N0220에서의 채택에 기초한다. 채택된 JVET-N0220에서의 수정 사항은 굵은 글꼴로 밑줄이 그어져 표시되어 있다.
신택스 테이블들
7.3.2.1 시퀀스 파라미터 세트 RBSP 신택스에서
Figure pct00070
7.3.4.1 일반 타일 그룹 헤더 신택스에서
Figure pct00071
7.3.4.4 LMCS(luma mapping with chroma scaling) 데이터 신택스에서
Figure pct00072
시맨틱스
7.4.3.1 시퀀스 파라미터 세트 RBSP 시맨틱스에서
sps_lmcs_enabled_flag 가 1과 동일한 것은 LMCS(luma mapping with chroma scaling)가 CVS에서 사용된다는 것을 지정한다. sps_lmcs_enabled_flag가 0과 동일한 것은 LMCS(luma mapping with chroma scaling)가 CVS에서 사용되지 않는다는 것을 지정한다.
tile_group_lmcs_model_present_flag 가 1과 동일한 것은 lmcs_data()가 타일 그룹 헤더에 존재한다는 것을 지정한다. tile_group_lmcs_model_present_flag가 0과 동일한 것은 lmcs_data()가 타일 그룹 헤더에 존재하지 않는다는 것을 지정한다. tile_group_lmcs_model_present_flag가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
tile_group_lmcs_enabled_flag 가 1과 동일한 것은 LMCS(luma mapping with chroma scaling)가 현재 타일 그룹에 대해 인에이블되어 있다는 것을 지정한다. tile_group_lmcs_enabled_flag가 0과 동일한 것은 LMCS(luma mapping with chroma scaling)가 현재 타일 그룹에 대해 인에이블되어 있지 않다는 것을 지정한다. tile_group_lmcs_enabled_flag가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
tile_group_chroma_residual_scale_flag 가 1과 동일한 것은 크로마 잔차 스케일링이 현재 타일 그룹에 대해 인에이블되어 있다는 것을 지정한다. tile_group_chroma_residual_scale_flag가 0과 동일한 것은 크로마 잔차 스케일링이 현재 타일 그룹에 대해 인에이블되어 있지 않다는 것을 지정한다. tile_group_chroma_residual_scale_flag가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
7.4.5.4 LMCS(luma mapping with chroma scaling) 데이터 시맨틱스에서
lmcs_min_bin_idx 는 LMCS(luma mapping with chroma scaling) 구성 프로세스에서 사용되는 최소 빈 인덱스를 지정한다. lmcs_min_bin_idx의 값은 0 내지 15(경계 포함)의 범위에 있어야 한다.
lmcs_delta_max_bin_idx 는 15와 LMCS(luma mapping with chroma scaling) 구성 프로세스에서 사용되는 최대 빈 인덱스 LmcsMaxBinIdx 사이의 델타 값을 지정한다. lmcs_delta_max_bin_idx의 값은 0 내지 15(경계 포함)의 범위에 있어야 한다. LmcsMaxBinIdx의 값은 15 - lmcs_delta_max_bin_idx와 동일하게 설정된다. LmcsMaxBinIdx의 값은 lmcs_min_bin_idx보다 크거나 같아야 한다.
lmcs_delta_cw_prec_minus1 + 1은 신택스 lmcs_delta_abs_cw[ i ]의 표현에 사용되는 비트 수를 지정한다. lmcs_delta_cw_prec_minus1의 값은 0 내지 BitDepthY - 2(경계 포함)의 범위에 있어야 한다.
lmcs_delta_abs_cw [ i ]는 제i 빈에 대한 절대 델타 코드워드 값을 지정한다.
lmcs_delta_sign_cw_flag [ i ]는 다음과 같이 변수 lmcsDeltaCW[ i ]의 부호를 지정한다.
- lmcs_delta_sign_cw_flag[ i ]가 0과 동일한 경우, lmcsDeltaCW[ i ]는 양의 값이다.
- 그렇지 않은 경우( lmcs_delta_sign_cw_flag[ i ]가 0과 동일하지 않은 경우), lmcsDeltaCW[ i ]는 음의 값이다.
lmcs_delta_sign_cw_flag[ i ]가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
변수 OrgCW는 다음과 같이 도출된다:
Figure pct00073
변수 lmcsDeltaCW[ i ](단, i = lmcs_min_bin_idx..LmcsMaxBinIdx)는 다음과 같이 도출된다:
Figure pct00074
변수 lmcsCW[ i ]는 다음과 같이 도출된다:
- i = 0.. lmcs_min_bin_idx - 1에 대해, lmcsCW[ i ]는 0과 동일하게 설정된다.
- i = lmcs_min_bin_idx..LmcsMaxBinIdx에 대해, 다음이 적용된다:
Figure pct00075
lmcsCW[ i ]의 값은 (OrgCW>>3) 내지 (OrgCW<<3 - 1)(경계 포함)의 범위에 있어야 한다.
- i = LmcsMaxBinIdx + 1..15에 대해, lmcsCW[ i ]는 0과 동일하게 설정된다.
다음 조건이 참인 것이 비트스트림 적합성의 요구사항이다:
Figure pct00076
변수 InputPivot[ i ](단, i = 0..16)는 다음과 같이 도출된다:
Figure pct00077
변수 LmcsPivot[ i ](단, i = 0..16), 변수들 ScaleCoeff[ i ] 및 InvScaleCoeff[ i ](단, i = 0..15)는 다음과 같이 도출된다:
Figure pct00078
변수 ChromaScaleCoeff[ i ](단, i = 0...15)는 다음과 같이 도출된다:
Figure pct00079
Figure pct00080
변수들 ClipRange, LmcsMinVal 및 LmcsMaxVal은 다음과 같이 도출된다:
Figure pct00081
비고 - 어레이들 InputPivot[ i ] 및 LmcsPivot[ i ], ScaleCoeff[ i ], 및 InvScaleCoeff[ i ], ChromaScaleCoeff[ i ], ClipRange, LmcsMinVal 및 LmcsMaxVal은 tile_group_lmcs_model_present_flag가 1과 동일할 때에만 업데이트된다. 따라서, lmcs 모델은, 예를 들어, IRAP 픽처와 함께 송신될 수 있지만, lmcs는 해당 IRAP 픽처에 대해 디스에이블된다.
3. 기존의 구현들의 단점들
LMCS/CCLM의 현재 설계는 다음 문제들을 가질 수 있다:
1. LMCS 코딩 툴에서, 크로마 잔차 스케일링 인자는 동일 위치 루마 예측 블록의 평균값에 의해 도출되며, 이는 LMCS 크로마 잔차 스케일링에서 크로마 샘플들을 프로세싱하기 위한 지연을 결과한다.
a) 단일/공유 트리의 경우에, 지연은 (a) 이용 가능한 전체 루마 블록의 모든 예측 샘플들을 기다리는 것, 및 (b) (a)에 의해 획득되는 모든 루마 예측 샘플들을 평균화하는 것에 의해 야기된다.
b) 이중/개별 트리의 경우에, I 슬라이스들에서 루마 및 크로마 성분들에 대한 개별 블록 분할 구조가 인에이블되어 있기 때문에 지연이 더욱 악화된다. 따라서, 하나의 크로마 블록은 다수의 루마 블록들에 대응할 수 있고, 하나의 4x4 크로마 블록은 64x64 루마 블록에 대응할 수 있다. 따라서 최악의 경우는 현재 4x4 크로마 블록의 크로마 잔차 스케일링 인자가 전체 64x64 루마 블록에서의 모든 예측 샘플들이 이용 가능할 때까지 기다릴 필요가 있을 수 있다는 것이다. 요컨대, 이중/개별 트리에서의 지연 문제는 훨씬 더 심각할 것이다.
2. CCLM 코딩 툴에서, 인트라 크로마 예측을 위한 CCLM 모델 계산은 루마 블록과 크로마 블록 둘 모두의 좌측 및 위쪽 참조 샘플들에 의존한다. 그리고 크로마 블록에 대한 CCLM 예측은 동일한 CU의 동일 위치 루마 재구성된 샘플들에 의존한다. 이는 이중/개별 트리에서의 높은 지연을 야기할 것이다.
Figure pct00082
이중/개별 트리의 경우에, 하나의 4x4 크로마 블록은 64x64 루마 블록에 대응할 수 있다. 따라서 최악의 경우는 현재 크로마 블록에 대한 CCLM 프로세스가 대응하는 전체 64x64 루마 블록이 재구성될 때까지 기다릴 필요가 있을 수 있다는 것이다. 이 지연 문제는 이중/개별 트리에서의 LMCS 크로마 스케일링과 유사하다.
4. 예시적인 기술들 및 실시예들
문제들을 해결하기 위해, 우리는 루마 의존적 크로마 잔차 스케일링, CCLM 및 상이한 컬러 성분으로부터의 정보에 의존하는 다른 코딩 툴들에서 교차 성분 의존성을 제거/축소/제한하는 여러 방법들을 제안한다.
아래에서 설명되는 상세한 실시예들은 일반 개념들을 설명하기 위한 예들로서 간주되어야 한다. 이러한 실시예들이 좁은 의미로 해석되어서는 안된다. 게다가, 이러한 실시예들은 임의의 방식으로 조합될 수 있다.
아래에 설명되는 글머리 기호들이 LMCS/CCLM을 명시적으로 언급하지만, 이 방법들이 상이한 컬러 성분으로부터의 정보에 의존하는 다른 코딩 툴들에도 적용 가능할 수 있다는 점에 유의한다. 추가적으로, 아래에서 언급되는 '루마' 및 '크로마'라는 용어는, 제각기, RGB 컬러 포맷에서의 'G 성분' 및 'B/R 성분'과 같은, '제1 컬러 성분' 및 '제2 컬러 성분'으로 대체될 수 있다.
다음 논의에서, "동일 위치 샘플/블록"이라는 정의는 VVC 작업 초안 JVET-M1001에서의 동일 위치 샘플/블록의 정의와 일치한다. 보다 구체적으로 말하면, 4:2:0 컬러 포맷에서, 크로마 블록의 좌측 상단 샘플이 위치 ( xTbC, yTbC )에 있다고 가정하면, 동일 위치 루마 블록 위치 ( xTbY, yTbY )의 좌측 상단 샘플은 다음과 같이 도출된다: ( xTbY, yTbY )  =  ( xTbC << 1, yTbC << 1 ). 도 5에 예시된 바와 같이, 현재 크로마 블록의 좌측 상단 샘플은 크로마 픽처의 (x=16,y=16)에 위치하며, 그러면 그의 동일 위치 루마 블록의 좌측 상단 샘플은, 루마 픽처에서의 동일 위치 루마 블록의 블록 분할에 관계없이, 루마 픽처에서 (x= 32,y=32)에 위치한다. 다른 예로서, 가령 동일한 컬러 성분에서, 참조 프레임에서 동일 위치 블록의 좌측 상단 샘플의 위치가, 도 6에 예시된 바와 같이, 현재 프레임에서 현재 블록의 좌측 상단 샘플의 위치와 동일해야 한다면, 현재 블록의 좌측 상단 샘플이 현재 프레임에서 (x,y)라고 가정할 때, 현재 블록의 동일 위치 블록의 좌측 상단 샘플은 참조 프레임에서 동일한 위치 (x,y)를 갖는다.
다음 논의에서, "대응하는 블록"은 현재 블록과 상이한 위치를 가질 수 있다. 예를 들어, 현재 블록과 참조 프레임에서의 그의 대응하는 블록 사이에 모션 시프트(motion shift)가 있을 수 있다. 도 6에 예시된 바와 같이, 현재 블록이 현재 프레임에서 (x,y)에 위치하고 모션 벡터 (mvx, mvy)를 갖는다고 가정할 때, 현재 블록의 대응하는 블록은 참조 프레임에서 (x+mvx,y+mvy)에 위치할 것이다. 그리고 IBC 코딩된 블록의 경우, 동일 위치 루마 블록(제로 벡터로 가리킴) 및 대응하는 루마 블록(0이 아닌 BV로 가리킴)은 현재 프레임의 상이한 위치들에 위치할 수 있다. 다른 예로서, (I 슬라이스들의 이중 트리 분할에서) 루마 블록의 분할이 크로마 블록의 분할과 정렬되지 않을 때, 현재 크로마 블록의 동일 위치 루마 블록은 동일 위치 루마 블록의 좌측 상단 샘플을 커버하는 중첩된 루마 코딩 블록의 분할 크기(partition size)에 의존하는 보다 큰 루마 블록에 속할 수 있다. 도 5에 예시된 바와 같이, 64x64 루마 블록이 먼저 BT에 의해 분할되고 이어서 64x64 루마 블록의 우측 부분이 TT에 의해 추가로 분할되어, 제각기, 32x16, 32x32, 32x16과 동일한 크기들의 3 개의 루마 블록을 결과하도록, 굵은 직사각형이 블록의 분할들을 나타낸다고 가정한다. 따라서 현재 크로마 블록의 동일 위치 루마 블록의 좌측 상단 샘플 (x=32, y=32)을 살펴보면, 이는 TT 분할의 중앙 32x32 루마 블록에 속한다. 이 경우에, 동일 위치 루마 블록의 좌측 상단 샘플을 커버하는 대응하는 루마 블록을 "대응하는 루마 블록"이라고 한다. 따라서, 이 예에서, 대응하는 루마 블록의 좌측 상단 샘플은 (x=32, y=16)에 위치한다.
이하, DMVD(decoder-side motion vector derivation)는 BDOF(BIO라고도 함) 및/또는 DMVR(decode-side motion vector refinement) 및/또는 FRUC(frame rate up-conversion) 및/또는 디코더에서의 모션 벡터 및/또는 예측 샘플 값을 개선시키는 다른 방법을 나타내는 데 사용된다.
LMCS의 크로마 스케일링 지연의 제거 및 CCLM의 모델 계산
1. 인터 코딩된 블록에 대해, 참조 프레임들에서의 현재 블록의 하나 또는 다수의 참조 샘플이 LMCS 모드에서 크로마 잔차 스케일링 인자를 도출하는 데 사용될 수 있다는 것이 제안된다.
a) 일 예에서, 참조 루마 샘플들은 크로마 잔차 스케일링 인자를 도출하는 데 직접 사용될 수 있다.
i. 대안적으로, 보간이 참조 샘플들에 먼저 적용될 수 있고 보간된 샘플들이 크로마 잔차 스케일링 인자를 도출하는 데 사용될 수 있다.
ii. 대안적으로, 크로마 잔차 스케일링 인자 도출을 위해 사용되는 최종 참조 샘플들을 도출하기 위해 상이한 참조 프레임들에서의 참조 샘플들이 활용될 수 있다.
1) 일 예에서, 양방향 예측 코딩된 블록들에 대해, 위의 방법이 적용될 수 있다.
iii. 일 예에서, 참조 샘플들의 강도들은 크로마 잔차 스케일링 인자를 도출하는 데 사용되기 전에 리셰이핑 도메인으로 변환될 수 있다.
iv. 일 예에서, 참조 샘플들의 선형 결합이 크로마 잔차 스케일링 인자를 도출하는 데 사용될 수 있다.
1) 예를 들어, a×S+b는 크로마 잔차 스케일링 인자를 도출하는 데 사용될 수 있으며, 여기서 S는 참조 샘플이고, ab는 파라미터들이다. 일 예에서, a 및 b는 LIC(Localized Illuminate Compensation)에 의해 도출될 수 있다.
b) 일 예에서, 참조 프레임에서의 참조 루마 샘플들의 위치는 현재 블록의 모션 벡터(들)에 의존할 수 있다.
i. 일 예에서, 참조 샘플은, 참조 픽처에 있고 현재 루마 블록과 동일한 폭 및 높이를 갖는, 참조 루마 블록에 속한다. 참조 픽처에서의 참조 루마 샘플의 위치는 현재 픽처에서의 그의 대응하는 루마 샘플의 위치에 모션 벡터를 가산한 것으로서 계산될 수 있다.
ii. 일 예에서, 참조 루마 샘플들의 위치는 현재 루마 블록의 좌측 상단(또는 중앙, 또는 우측 하단) 샘플의 위치와, 참조 프레임에서의 대응하는 루마 샘플이라고 지칭되는, 현재 블록의 모션 벡터에 의해 도출될 수 있다.
1) 일 예에서, 정수 모션 벡터는 참조 프레임에서의 대응하는 루마 샘플을 도출하는 데 사용될 수 있다. 일 예에서, 하나의 블록과 연관된 모션 벡터는 정수 모션 벡터를 도출하기 위해 0을 향해 반올림되거나 0에서 멀어지게 반올림될 수 있다.
2) 대안적으로, 분수 모션 벡터는 참조 프레임에서의 대응하는 루마 샘플을 도출하는 데 사용될 수 있으며, 따라서 분수 참조 샘플들을 도출하기 위해 보간 프로세스가 필요할 수 있다.
iii. 대안적으로, 참조 루마 샘플들의 위치는 현재 루마 블록의 좌측 상단(또는 중앙, 또는 우측 하단) 샘플의 위치에 의해 도출될 수 있다.
iv. 대안적으로, 참조 프레임에서의 일부 미리 정의된 위치들에 있는 다수의 대응하는 루마 샘플들이 크로마 잔차 스케일링 인자를 계산하기 위해 선택될 수 있다.
c) 일 예에서, 다수의 참조 루마 샘플들의 중앙값 또는 평균값이 크로마 잔차 스케일링 인자를 도출하는 데 사용될 수 있다.
d) 일 예에서, 미리 정의된 참조 프레임들에서의 참조 루마 샘플들이 크로마 잔차 스케일링 인자를 도출하는 데 사용될 수 있다.
i. 일 예에서, 미리 정의된 참조 프레임은 참조 픽처 리스트 0의 0과 동일한 참조 인덱스를 갖는 것일 수 있다.
ii. 대안적으로, 미리 정의된 참조 프레임에 대한 참조 인덱스 및/또는 참조 픽처 리스트는 시퀀스/픽처/타일 그룹/슬라이스/타일/CTU 행/비디오 유닛 레벨에서 시그널링될 수 있다.
iii. 대안적으로, 다수의 참조 프레임들에서의 참조 루마 샘플들이 도출될 수 있고 평균된 또는 가중 평균 값들이 크로마 잔차 스케일링 인자를 얻는 데 활용될 수 있다.
2. LMCS 모드에서 루마 샘플들로부터 크로마 잔차 스케일링 인자를 도출할지 여부 및 어떻게 도출할지가 현재 블록이 양방향 예측을 적용하는지 여부에 의존할 수 있다는 것이 제안된다.
a) 일 예에서, 크로마 잔차 스케일링 인자는 각각의 예측 방향에 대해 개별적으로 도출된다.
3. LMCS 모드에서 루마 샘플들로부터 크로마 잔차 스케일링 인자를 도출할지 여부 및 어떻게 도출할지가 현재 블록이 서브블록 기반 예측을 적용하는지 여부에 의존할 수 있다는 것이 제안된다.
a) 일 예에서, 서브블록 기반 예측은 아핀 예측이고;
b) 일 예에서, 서브블록 기반 예측은 ATMVP(Alternative Temporal Motion Vector Prediction)이다.
c) 일 예에서, 크로마 잔차 스케일링 인자는 각각의 서브블록에 대해 개별적으로 도출된다.
d) 일 예에서, 크로마 잔차 스케일링 인자는 서브블록에 의해 예측되더라도 전체 블록에 대해 도출된다.
i. 일 예에서, 하나의 선택된 서브블록(예를 들면, 좌측 상단 서브블록)의 모션 벡터는 글머리 기호 1에서 설명된 바와 같이 현재 블록의 참조 샘플들을 식별하는 데 사용될 수 있다.
4. 크로마 잔차 스케일링 인자를 도출하는 데 사용되는 루마 예측 값들이 최종 루마 예측 값 대신에 중간 루마 예측 값일 수 있다는 것이 제안된다.
a) 일 예에서, BDOF(Bi-Directional Optical Flow, BIO라고도 함)의 프로세스 이전의 루마 예측 값들이 크로마 잔차 스케일링 인자를 도출하는 데 사용될 수 있다.
b) 일 예에서, DMVR(Decoder-side Motion Vector Refinement)의 프로세스 이전의 루마 예측 값들이 크로마 잔차 스케일링 인자를 도출하는 데 사용될 수 있다.
c) 일 예에서, LIC의 프로세스 이전의 루마 예측 값들이 크로마 잔차 스케일링 인자를 도출하는 데 사용될 수 있다.
d) 일 예에서, JVET-N0236에서 제안된 바와 같은 PROF(Prediction Refinement Optical Flow)의 프로세스 이전의 루마 예측 값들이 크로마 잔차 스케일링 인자를 도출하는 데 사용될 수 있다.
5. 중간 모션 벡터들이 참조 샘플들을 식별하는 데 사용될 수 있다.
a) 일 예에서, BDOF 및/또는 DMVR 및/또는 다른 DMVD 방법들의 프로세스 이전의 모션 벡터가 참조 샘플들을 식별하는 데 사용될 수 있다.
b) 일 예에서, JVET-N0236에서 제안된 바와 같은 PROF(Prediction Refinement Optical Flow)의 프로세스 이전의 모션 벡터가 참조 샘플들을 식별하는 데 사용될 수 있다.
6. 위의 방법들은 현재 블록이 인터 모드로 코딩될 때 적용 가능할 수 있다.
7. IBC 코딩된 블록에 대해, 현재 프레임의 참조 블록에서의 하나 또는 다수의 참조 샘플이 LMCS 모드에서 크로마 잔차 스케일링 인자를 도출하는 데 사용될 수 있다는 것이 제안된다. 블록이 IBC 코딩될 때, "모션 벡터"라는 용어는 "블록 벡터"라고도 지칭될 수 있으며, 여기서 참조 픽처는 현재 픽처로서 설정된다.
a) 일 예에서, 참조 샘플은, 현재 픽처에 있고 현재 블록과 동일한 폭 및 높이를 갖는, 참조 블록에 속한다. 참조 샘플의 위치는 그의 대응하는 샘플의 위치에 모션 벡터를 가산한 것으로서 계산될 수 있다.
b) 일 예에서, 참조 루마 샘플들의 위치는 현재 루마 블록의 좌측 상단(또는 중앙, 또는 우측 하단) 샘플의 위치에 모션 벡터를 가산하는 것에 의해 도출될 수 있다.
c) 대안적으로, 참조 루마 샘플들의 위치는 현재 루마 블록의 좌측 상단(또는 중앙 또는 우측 하단) 샘플의 위치에 현재 블록의 블록 벡터를 가산하는 것에 의해 도출될 수 있다.
d) 대안적으로, 현재 루마 블록의 참조 영역에서의 일부 미리 정의된 위치들에 있는 다수의 대응하는 루마 샘플들이 크로마 잔차 스케일링 인자를 계산하기 위해 선택될 수 있다.
e) 일 예에서, 다수의 대응하는 루마 샘플들은 크로마 잔차 스케일링 인자를 도출하는 함수로 계산될 수 있다.
i. 예를 들어, 다수의 대응하는 루마 샘플들의 중앙값 또는 평균값이 크로마 잔차 스케일링 인자를 도출하기 위해 계산될 수 있다.
f) 일 예에서, 참조 샘플들의 강도들은 크로마 잔차 스케일링 인자를 도출하는 데 사용되기 전에 리셰이핑 도메인으로 변환될 수 있다.
i. 대안적으로, 참조 샘플들의 강도들은 크로마 잔차 스케일링 인자를 도출하는 데 사용되기 전에 원래 도메인으로 변환될 수 있다.
8. 현재 프레임에서 현재 루마 블록의 식별된 위치(들)에 위치하는 하나 또는 다수의 예측/재구성된 샘플이 LMCS 모드에서 현재 크로마 블록에 대한 크로마 잔차 스케일링 인자를 도출하는 데 사용될 수 있다는 것이 제안된다.
a) 일 예에서, 현재 블록이 인터 코딩되는 경우, 현재 루마 블록의 중앙에 위치하는 루마 예측(또는 재구성) 샘플이 크로마 잔차 스케일링 인자를 도출하기 위해 선택될 수 있다.
b) 일 예에서, 제1 MxN 루마 예측(또는 재구성) 샘플들의 평균 값이 크로마 잔차 스케일링 인자를 도출하기 위해 선택될 수 있으며, 여기서 MxN은 동일 위치 루마 블록 크기 widthxheight보다 작을 수 있다.
9. CCLM 모델을 계산하는 데 사용되는 절차의 전체 또는 일부가 LMCS 모드에서 현재 크로마 블록의 크로마 잔차 스케일링 인자 도출을 위해 사용될 수 있다는 것이 제안된다.
a) 일 예에서, CCLM 모델 파라미터 도출 프로세스에서 동일 위치 루마 블록의 이웃 루마 샘플들의 식별된 위치들에 위치하는 참조 샘플들이 크로마 잔차 스케일링 인자를 도출하는 데 활용될 수 있다.
i. 일 예에서, 이러한 참조 샘플들이 직접 사용될 수 있다.
ii. 대안적으로, 다운샘플링이 이러한 참조 샘플들에 적용될 수 있고, 다운샘플링된 참조 샘플들이 적용될 수 있다.
b) 일 예에서, CCLM 모델 계산을 위해 선택된 S 개의 참조 샘플들 중 K 개가 LMCS 모드에서 크로마 잔차 스케일링 인자 도출을 위해 사용될 수 있다. 예를 들면, K는 1과 동일하고 S는 4와 동일하다.
c) 일 예에서, CCLM 모드에서 동일 위치 루마 블록의 참조 샘플들의 평균값/최솟값/최댓값이 LMCS 모드에서 크로마 잔차 스케일링 인자 도출을 위해 사용될 수 있다.
10. 크로마 잔차 스케일링 인자들의 도출을 위해 샘플들을 어떻게 선택할지는 현재 블록의 코딩된 정보에 의존할 수 있다.
a) 코딩된 정보는 QP, 코딩 모드, POC, 인트라 예측 모드, 모션 정보 등을 포함할 수 있다.
b) 일 예에서, IBC 코딩된 또는 비-IBC 코딩된 블록들의 경우, 샘플들을 선택하는 방식이 상이할 수 있다.
c) 일 예에서, 참조 픽처들과 현재 픽처 사이의 POC 거리와 같은, 참조 픽처 정보에 기초하여 샘플들을 선택하는 방식이 상이할 수 있다.
11. 크로마 잔차 스케일링 인자 및/또는 CCLM의 모델 계산이 동일 위치 루마 블록의 좌측 상단 샘플을 커버하는 대응하는 루마 블록의 이웃 샘플들에 의존할 수 있다는 것이 제안된다. 본 발명에서, "코딩 블록"은 HEVC 사양에 또는 VVC 작업 초안에 지정된 바와 같이 CU/TU/PU와 같은 비디오 코딩 영역을 지칭할 수 있다.
a) "대응하는 루마 코딩 블록"은 동일 위치 루마 코딩 블록의 좌측 상단 위치를 커버하는 코딩 블록으로서 정의될 수 있다.
i. 도 5는 이중 트리 경우의 인트라 코딩된 크로마 블록에 대해, 크로마 성분의 CTU 분할이 루마 성분의 CTU 분할과 상이할 수 있는 예를 도시한다. 먼저, 현재 크로마 블록의 동일 위치 루마 블록의 좌측 상단 샘플을 커버하는 "대응하는 루마 코딩 블록"이 검색된다. 이어서 "대응하는 루마 코딩 블록"의 블록 크기 정보를 사용하는 것에 의해, "대응하는 루마 코딩 블록"의 좌측 상단 샘플이 도출될 수 있고, 동일 위치 루마 블록의 좌측 상단 샘플을 커버하는 "대응하는 루마 코딩 블록"의 좌측 상단 루마 샘플은 (x=32,y=16)에 위치한다.
b) 일 예에서, 동일 위치 루마 코딩 블록의 좌측 상단 샘플을 커버하는 "대응하는 루마 코딩 블록"의 위치를 도출하기 위해 블록 크기/분할/위치/조정이 필요할 수 있다.
i. 일 예에서, 블록 크기, 및/또는 블록 분할, 및/또는 블록 조정은, 루마 성분과 같은, 특정 컬러 성분의 각각의 블록에 대해 저장될 수 있다.
ii. 일 예에서, "대응하는 루마 코딩 블록" 및 현재 블록은 항상 동일한 CTU 또는 CTU 행 내부에 있을 수 있고, 따라서 라인 버퍼에 블록 크기/분할/위치/조정이 저장되지 않을 수 있다.
c) 일 예에서, "대응하는 루마 코딩 블록"에 없는 재구성된 샘플들은 크로마 잔차 스케일링 인자 및/또는 CCLM의 모델 계산을 도출하는 데 사용될 수 있다.
i. 일 예에서, "대응하는 루마 코딩 블록"에 인접한 재구성된 샘플들은 크로마 잔차 스케일링 인자 및/또는 CCLM의 모델 계산을 도출하는 데 사용될 수 있다.
1) 일 예에서, "대응하는 루마 코딩 블록"의 좌측 이웃 열들 및/또는 위쪽 이웃 행들에 위치하는 N 개의 샘플들은 크로마 잔차 스케일링 인자 및/또는 CCLM의 모델 계산을 도출하는 데 사용될 수 있으며, 여기서 N=1...2W+2H이고, W 및 H는 "대응하는 루마 코딩 블록"의 폭 및 높이이다.
a) "대응하는 루마 코딩 블록"의 좌측 상단 샘플이 (xCb, yCb)라고 가정하면, 일 예에서, 위쪽 이웃 루마 샘플은 (xCb + W/2, yCb - 1), 또는 (xCb -1, yCb - 1)에 위치할 수 있다. 대안적인 예에서, 좌측 이웃 루마 샘플은 (xCb+W-1, yCb-1)에 위치할 수 있다.
b) 일 예에서, 이웃 샘플(들)의 위치(들)는 고정될 수 있고/있거나 미리 정의된 검사 순서로 있을 수 있다.
2) 일 예에서, 크로마 잔차 스케일링 인자 및/또는 CCLM의 모델 계산을 도출하기 위해 N 개의 이웃 샘플들 중 1 개가 선택될 수 있다. N=3이고 3 개의 이웃 샘플 (xCb -1, yCb - H -1), (xCb + W/2, yCb - 1), (xCb -1, yCb - 1)의 검사 순서를 가정하면, 크로마 잔차 스케일링 인자를 도출하기 위해 검사 리스트에서의 첫 번째 이용 가능한 이웃 샘플이 선택될 수 있다.
3) 일 예에서, "대응하는 루마 코딩 블록"의 좌측 이웃 열들 및/또는 위쪽 이웃 행들에 위치하는 N 개의 샘플들의 중앙값 또는 평균값은 크로마 잔차 스케일링 인자 및/또는 CCLM의 모델 계산을 도출하는 데 사용될 수 있으며, 여기서 N=1...2W+2H이고, W 및 H는 "대응하는 루마 코딩 블록"의 폭 및 높이이다.
d) 일 예에서, 크로마 잔차 스케일링을 수행할지 여부는 대응하는 루마 블록의 "이용 가능한" 이웃 샘플들에 의존할 수 있다.
i. 일 예에서, 이웃 샘플들의 "이용 가능성"은 현재 블록/서브블록의 인코딩 모드 및/또는 이웃 샘플의 인코딩 모드에 의존할 수 있다.
1) 일 예에서, 인터 모드로 코딩된 블록에 대해, 인트라 모드 및/또는 IBC 모드 및/또는 CIIP 모드 및/또는 LIC 모드로 코딩된 인접 샘플들은 "이용 불가능한" 것으로 간주될 수 있다.
2) 일 예에서, 인터 모드로 코딩된 블록에 대해, 이웃 샘플들은 확산 필터 및/또는 양방향 필터를 이용하고/하거나 Hadamard 변환 필터는 "이용 불가능한" 것으로 간주될 수 있다.
ii. 일 예에서, 이웃 샘플들의 "이용 가능성"은 현재 픽처/타일/타일 그룹/VPDU/슬라이스의 폭 및/또는 높이에 의존할 수 있다.
1) 일 예에서, 이웃 블록이 현재 픽처 외부에 위치하는 경우, 이는 "이용 불가능한" 것으로 취급된다.
iii. 일 예에서, "이용 가능한" 이웃 샘플이 없을 때, 크로마 잔차 스케일링이 허용되지 않을 수 있다.
iv. 일 예에서, "이용 가능한" 이웃 샘플들의 수가 K(K >= 1)보다 작을 때, 크로마 잔차 스케일링이 허용되지 않을 수 있다.
v. 대안적으로, 크로마 잔차 스케일링이 항상 적용될 수 있도록, 이용 불가능한 이웃 샘플은 디폴트 고정 값, 패딩 또는 치환에 의해 채워질 수 있다.
1) 일 예에서, 이웃 샘플이 이용 가능하지 않은 경우, 이는 1 << ( bitDepth - 1 )에 의해 채워질 수 있으며, 여기서 bitDepth는 루마/크로마 성분들의 샘플들의 비트 깊이를 지정한다.
2) 대안적으로, 이웃 샘플이 이용 가능하지 않을 경우, 이는 좌측/우측/상단/하단 이웃에 위치하는 주변 샘플들로부터의 패딩에 의해 채워질 수 있다.
3) 대안적으로, 이웃 샘플이 이용 가능하지 않은 경우, 미리 정의된 검사 순서에서 첫 번째 이용 가능한 인접 샘플로 대체될 수 있다.
4) 대안적으로, 이웃 샘플이 이용 가능하지 않은 경우, 이는 미리 정의된 필터링된/매핑된 값(예를 들면, 1 << ( bitDepth - 1 )의 필터링된/매핑된 값, 여기서 bitDepth는 루마/크로마 성분들의 샘플들의 비트 깊이를 지정함)에 의해 채워질 수 있다.
a) 일 예에서, 필터링/매핑 프로세스는 LMCS의 순방향 매핑의 LUT 인덱싱일 수 있다.
e) 일 예에서, 크로마 잔차 스케일링을 수행할지 여부 및 어떻게 수행할지는 현재 블록의 코딩 모드 및/또는 이웃 블록들의 코딩 모드들에 의존할 수 있다.
i. "현재 블록"은 현재 크로마 블록을 지칭할 수 있거나, 동일 위치 루마 블록, 또는 동일 위치 크로마 블록의 적어도 하나의 샘플을 커버하는 대응하는 루마 블록을 지칭할 수 있다. "이웃 블록들"(인접 또는 비인접)은 현재 크로마 블록에 이웃하는 크로마 블록들을 지칭할 수 있거나 현재 루마 블록에 이웃하는 루마 블록들을 지칭할 수 있다.
ii. 일 예에서, 현재 블록의 좌측 상단 좌표를 기준으로 (-1, -1)과 같은, 주어진 위치를 커버하는 하나의 루마 이웃 블록의 코딩 모드가 활용될 수 있다.
iii. 일 예에서, 현재 블록의 좌측 상단 좌표를 기준으로 (x, -1)(예를 들면, x는 0.. 블록의 폭 - 1) 및/또는 현재 블록의 좌측 상단 좌표를 기준으로 (-1, y)(예를 들면, y는 -1... 블록의 높이 - 1)과 같은, 다수의 위치들을 커버하는 다수의 이웃 블록들의 코딩 모드들이 활용될 수 있다.
iv. 일 예에서, 하나의 이웃 블록의 재구성이, X 코딩되는 것과 같이, 현재 슬라이스/타일 그룹에서의 샘플들에 액세스하는 것을 필요로 하는 경우, 크로마 잔차 스케일링이 디스에이블된다.
1) 예를 들어, 모드 X는 인트라 모드일 수 있고;
2) 예를 들어, 모드 X는 CIIP 모드일 수 있으며;
3) 예를 들어, 모드 X는 IBC 모드일 수 있고;
4) 일 예에서, 현재 블록이 인터 코딩되고 CIIP 코딩되지 않으며, 대응하는 루마 블록에 이웃하는 이웃 블록이 모드 X로 코딩되는 경우, 크로마 잔차 스케일링이 디스에이블된다.
v. 일 예에서, 하나의 이웃 블록의 재구성이, X 코딩되는 것과 같이, 현재 슬라이스/타일 그룹에서의 샘플들에 액세스하는 것을 필요로 하는 경우, 크로마 잔차 스케일링 인자를 도출하는 데 디폴트 값이 사용될 수 있다.
1) 예를 들어, 모드 X는 인트라 모드일 수 있고;
2) 예를 들어, 모드 X는 CIIP 모드일 수 있으며;
3) 예를 들어, 모드 X는 IBC 모드일 수 있고;
4) 일 예에서, 현재 블록이 인터 코딩되고 CIIP 코딩되지 않으며, 대응하는 루마 블록의 이웃 블록이 모드 X로 코딩되는 경우, 크로마 잔차 스케일링 인자를 도출하는 데 디폴트 값이 사용될 수 있다.
5) 일 예에서, 디폴트 값은 루마/크로마 샘플들의 비트 깊이에 의존할 수 있다.
6) 일 예에서, 디폴트 값은 1 << ( bitDepth - 1 )의 필터링된/매핑된 값으로 설정될 수 있으며, 여기서 bitDepth는 루마/크로마 성분들의 샘플들의 비트 깊이를 지정한다. 일 예에서, 필터링/매핑 프로세스는 LMCS의 순방향 매핑의 LUT 인덱싱일 수 있다.
f) 일 예에서, "대응하는 루마 코딩 블록"에 이웃하는 필터링된/매핑된 재구성된 샘플들은 크로마 잔차 스케일링 인자 및/또는 CCLM의 모델 계산을 도출하는 데 사용될 수 있다.
i. 일 예에서, 필터링/매핑 프로세스는 인트라 블록들에 대한 참조 평활화 필터링, 양방향 필터와 같은 사후 필터링, hadamard 변환 기반 필터, 리셰이퍼 도메인의 순방향 매핑 등을 포함할 수 있다.
12. 현재 슬라이스/타일 그룹에서의 (CU들 또는 TU들과 같은) 크로마 블록들의 수들에 대한 크로마 잔차 스케일링 인자를 도출하기 위해 고정된 값이 사용될 수 있다는 것이 제안된다.
a) 일 예에서, N 개의 크로마 블록들에 대한 크로마 잔차 스케일링 인자는 고정된 값에 의해 도출될 수 있으며, 여기서 N은 1... 현재 슬라이스/타일 그룹 내의 크로마 블록들의 총수이다.
b) 일 예에서, 고정된 값은 값이 속하는 구간별 선형 모델의 인덱스를 찾는 데 사용될 수 있으며, 크로마 잔차 스케일링 인자가 이어서 도출된 구간별 인덱스로부터 계산될 수 있다. 일 예에서, 고정된 값은 루마 샘플들에 대한 내부 비트 깊이에 의존할 수 있다.
c) 일 예에서, 고정된 값은 크로마 잔차 스케일링 인자를 나타내는 데 직접 사용될 수 있다.
d) 일 예에서, 고정된 값 및/또는 고정된 크로마 잔차 스케일링 인자는 픽처/슬라이스/타일 그룹 유형(예를 들면, I 또는 P 또는 B 슬라이스들) 및/또는 블록의 코딩 모드(예를 들면, 인트라 모드 또는 인터 모드)에 의존할 수 있다.
e) 일 예에서, 고정된 값은 상이한 픽처들/슬라이스들/타일 그룹들/타일들에 대해 상이할 수 있다.
f) 일 예에서, 고정된 크로마 잔차 스케일링 인자는 LMCS에서 크로마 잔차들을 스케일링하기 위해 직접 사용될 수 있다.
i. 일 예에서, 고정된 크로마 잔차 스케일링 인자는 DPS/SPS/PPS/VPS/APS/슬라이스 헤더/타일 그룹 헤더와 같은 비디오 유닛에서 시그널링될 수 있다.
ii. 일 예에서, 픽처/슬라이스/타일 그룹/타일에 대한 고정된 크로마 잔차 스케일링 인자는 픽처/슬라이스/타일 그룹/타일에서의 루마 샘플 리셰이핑을 위한 매핑 함수(예를 들어, 구간별 선형 함수)에 의존할 수 있다.
1) 일 예에서, 고정된 크로마 잔차 스케일링 인자는 JVET-M1001-v7에 정의된 바와 같은 어레이 InvScaleCoeff[] 및/또는 어레이 ScaleCoeff[]에 의존할 수 있다.
a) 예를 들어, 픽처/슬라이스/타일 그룹/타일에 대한 고정된 크로마 잔차 스케일링 인자가 의존하는 어레이 InvScaleCoeff[] 및/또는 어레이 ScaleCoeff[]는 픽처/슬라이스/타일 그룹/타일에서의 루마 샘플들을 리셰이핑하는 데 사용될 수 있다.
2) 일 예에서, 고정된 크로마 잔차 스케일링 인자는 루마 샘플들을 리셰이핑하는 데 사용되는 구간별 선형 함수들의 모든 스케일링 계수들 중의 최솟값/최댓값/중앙값/평균값에 의해 도출될 수 있다.
a) 예를 들어, 고정된 크로마 잔차 스케일링 인자는 InvScaleCoeff[i]의 최솟값/최댓값/중앙값/평균값에 의해 도출될 수 있으며, 여기서 i는 최소 인덱스(예컨대, JVET-M1001-v7에서의 lmcs_min_bin_idx)부터 최대 인덱스(예컨대, JVET-M1001-v7에서의 LmcsMaxBinIdx)까지이다.
i. 예를 들어, 고정된 크로마 잔차 스케일링 인자는 InvScaleCoeff[i]의 최솟값/최댓값/중앙값/평균값과 동일할 수 있으며, 여기서 i는 최소 인덱스(예컨대, JVET-M1001-v7에 정의된 lmcs_min_bin_idx)부터 최대 인덱스(예컨대, JVET-M1001-v7에 정의된 LmcsMaxBinIdx)까지이다.
ii. 대안적으로, 고정된 크로마 잔차 스케일링 인자는 InvScaleCoeff[i]의 최솟값/최댓값/중앙값/평균값에 의해 도출될 수 있으며, 여기서 i는 최소 인덱스(예컨대, 0)부터 최대 인덱스(예컨대, 15)까지이고, JVET-M1001-v7에 정의된 바와 같은 lmcsCW[ i ]는 0과 동일하지 않다.
iii. 위의 예들에서, InvScaleCoeff[i]의 중앙값은 InvScaleCoeff[j]로서 계산될 수 있으며, 여기서 j는 유효한 인덱스이고, 예를 들면, j = (최소 인덱스 + 최대 인덱스) >>1이거나 j = (최소 인덱스 + 최대 인덱스 + 1) >>1이거나 j = (최대 인덱스 - 최소 인덱스)>>1이다. 일 예에서, InvScaleCoeff[]에 대한 최소 인덱스는 JVET-M1001-v7에 정의된 lmcs_min_bin_idx이거나 0일 수 있고, InvScaleCoeff[]에 대한 최대 인덱스는 JVET-M1001-v7에 정의된 LmcsMaxBinIdx이거나 Size-1일 수 있고, 여기서 Size는 어레이 InvScaleCoeff_sort[]의 크기를 나타낸다.
1. 대안적으로, 어레이 InvScaleCoeff 또는 그 일부(예를 들면, JVET-M1001-v7에 정의된 InvScaleCoeff [lmcs_min_bin_idx]부터 InvScaleCoeff[LmcsMaxBinIdx]까지)가 먼저 오름차순 또는 내림차순으로 정렬되어, InvScaleCoeff_sort로 표시되는, 정렬된 어레이를 형성할 수 있다. 일 예에서, 고정된 크로마 잔차 스케일링 인자는 InvScaleCoeff_sort[j]로서 도출될 수 있으며, 여기서 j는 유효한 인덱스이고, 예를 들면, j = (최소 인덱스 + 최대 인덱스) >>1이거나 j = (최소 인덱스 + 최대 인덱스 + 1) >>1이다. 일 예에서, InvScaleCoeff_sort[]에 대한 최소 인덱스는 0일 수 있고 InvScaleCoeff_sort[]에 대한 최대 인덱스는 Size-1일 수 있으며, 여기서 Size는 어레이 InvScaleCoeff_sort[]의 크기를 나타내고, 예를 들면, Size = 16이다.
iv. 위의 예들에서, InvScaleCoeff[i]의 최솟값에 대해, 이는 InvScaleCoeff[j]로서 계산될 수 있고, 여기서 j는 유효한 인덱스이며, 예를 들면, j는 최소 인덱스(예컨대, JVET-M1001-v7에 정의된 lmcs_min_bin_idx ) 또는 0과 동일하다.
1. 대안적으로, 어레이 InvScaleCoeff 또는 그 일부(예를 들면, JVET-M1001-v7에 정의된 InvScaleCoeff [lmcs_min_bin_idx]부터 InvScaleCoeff[LmcsMaxBinIdx]까지)가 먼저 오름차순 또는 내림차순으로 되도록 정렬되어, InvScaleCoeff_sort로 표시되는, 정렬된 어레이를 형성할 수 있다. 일 예에서, 고정된 크로마 잔차 스케일링 인자는 InvScaleCoeff_sort[j]로서 도출될 수 있으며, 여기서 j는 유효한 인덱스이고, 예를 들면, j는 오름차순에서 InvScaleCoeff_sort[] 어레이에 대한 최소 인덱스와 동일하거나, 또는 j는 내림차순에서 InvScaleCoeff_sort[] 어레이에 대한 최대 인덱스와 동일하다. 일 예에서, InvScaleCoeff_sort[]에 대한 최소 인덱스는 0일 수 있고 InvScaleCoeff_sort[]에 대한 최대 인덱스는 Size-1일 수 있으며, 여기서 Size는 어레이 InvScaleCoeff_sort[]의 크기를 나타내고, 예를 들면, Size = 16이다.
v. 위의 예들에서, InvScaleCoeff[i]의 최댓값은 InvScaleCoeff[j]에 의해 계산될 수 있으며, 여기서 j는 유효한 인덱스이고, 예를 들면, j는 최대 인덱스 또는 15일 수 있다.
vi. 대안적으로, 어레이 InvScaleCoeff 또는 그 일부(예를 들면, JVET-M1001-v7에 정의된 InvScaleCoeff [lmcs_min_bin_idx]부터 InvScaleCoeff[LmcsMaxBinIdx]까지)가 먼저 오름차순 또는 내림차순으로 되도록 정렬되어, InvScaleCoeff_sort로 표시되는, 정렬된 어레이를 형성할 수 있다. 일 예에서, 고정된 크로마 잔차 스케일링 인자는 InvScaleCoeff_sort[j]로부터 도출될 수 있으며, 여기서 j는 유효한 인덱스이고, 예를 들면, j는 오름차순에서 InvScaleCoeff_sort[] 어레이에 대한 최대 인덱스와 동일하거나, 또는 내림차순에서 InvScaleCoeff_sort[] 어레이에 대한 최소 인덱스 또는 0이다. 일 예에서, InvScaleCoeff_sort[]에 대한 최소 인덱스는 0일 수 있고 InvScaleCoeff_sort[]에 대한 최대 인덱스는 Size-1일 수 있으며, 여기서 Size는 어레이 InvScaleCoeff_sort[]의 크기를 나타내고, 예를 들면, Size = 16이다.
g) 일 예에서, 고정된 값은 크로마 스케일링 인자를 도출하기 위해 구간별 함수 인덱스를 나타내는 데 사용될 수 있다.
i. 일 예에서, 고정된 값은 DPS/SPS/PPS/VPS/APS/슬라이스 헤더/타일 그룹 헤더와 같은 비디오 유닛에서 시그널링될 수 있다.
ii. 일 예에서, 고정된 값은 구간별 함수 인덱스를 식별하는 데 사용될 수 있는 루마 샘플 강도를 나타낼 수 있으며, 식별된 구간별 함수 인덱스는 크로마 스케일링 인자를 찾는 데 더 사용된다.
1) 일 예에서, 고정된 값은 0, 또는 (1<<lumaBitDepth) - 1, 또는 1<<(lumaBitDepth-1)과 동일할 수 있으며, 여기서 lumaBitDepth는 루마 샘플들의 비트 깊이를 나타낸다.
2) 일 예에서, 고정된 값이 구간별 함수의 입력 범위에 있는 경우 구간별 함수가 식별된다.
3) 일 예에서, 고정된 값이 구간별 함수의 출력 범위에 있는 경우 구간별 함수가 식별된다.
4) 일 예에서, 고정된 값은 선택된 값(예를 들면, 최댓값, 최솟값, 중앙값)일 수 있거나 또는 리셰이핑된 도메인에서 선택된 샘플 값들(예를 들면, 2 개의 값의 평균)에 따라 도출될 수 있다.
a) 크로마 스케일링 인자가 InvScaleCoeff[idxYInv]와 동일하고, 여기서 idxYInv는 리셰이핑된 변수 v에 의해 도출되는 구간별 인덱스이다, 즉 idxYInv = getPWLIdxInv(v)라고 가정한다. fFwdReshaper() 함수는 원래 도메인 변수 k(즉, k는 원래 도메인 루마 샘플 값일 수 있음)를 리셰이핑된 도메인 변수 v로 변환하는 데 사용된다, 즉 v = fFwdReshaper(k)이다. minY가 JVET-M1001-v7에 정의된 lmcs_min_bin_idx에 의해 표시되는 원래 도메인 범위에서의 최소 루마 값이고 maxY가 JVET-M1001-v7에 정의된 LmcsMaxBinIdx에 의해 표시되는 원래 도메인 범위에서의 최대 루마 값이라고 가정한다.
i. 예를 들어, 고정된 구간별 함수 인덱스 idxYInv는 getPWLIdxInv (fFwdReshaper[0])과 동일할 수 있다.
ii. 예를 들어, 고정된 구간별 함수 인덱스 idxYInv는 getPWLIdxInv (fFwdReshaper[(1<<lumaBitDepth) - 1])과 동일할 수 있다.
iii. 예를 들어, 고정된 구간별 함수 인덱스 idxYInv는 getPWLIdxInv ((fFwdReshaper [0] + fFwdReshaper [(1<<lumaBitDepth) - 1]+offset) >> 1)과 동일할 수 있다. 예를 들면, offset = 0 또는 1이다.
iv. 예를 들어, 고정된 구간별 함수 인덱스 idxYInv는 getPWLIdxInv (fFwdReshaper[minY])와 동일할 수 있다.
v. 예를 들어, 고정된 구간별 함수 인덱스 idxYInv는 getPWLIdxInv (fFwdReshaper[maxY])와 동일할 수 있다.
vi. 예를 들어, 고정된 구간별 함수 인덱스 idxYInv는 getPWLIdxInv ((fFwdReshaper [minY] + fFwdReshaper [maxY] + offset) >> 1)과 동일할 수 있다. 예를 들면, offset = 0 또는 1이다.
iii. 일 예에서, 고정된 값은 크로마 스케일링 인자를 찾는 데 사용될 수 있는 고정된 구간별 함수 인덱스를 나타낼 수 있다.
1) 일 예에서, 고정된 값은 LMCS 구성 프로세스에서 사용되는 최소 빈 인덱스(예를 들면, lmcs_min_bin_idx)와 동일할 수 있다.
2) 일 예에서, 고정된 값은 LMCS 구성 프로세스에서 사용되는 최대 빈 인덱스(예를 들면, LmcsMaxBinIdx)와 동일할 수 있다.
3) 일 예에서, 고정된 값은 LMCS 구성 프로세스에서 사용되는 최대 빈 인덱스와 최소 빈 인덱스의 평균과 동일할 수 있다.
h) 일 예에서, 고정된 값은 DPS/SPS/PPS/VPS/APS/슬라이스 헤더/타일 그룹 헤더와 같은 비디오 유닛에서 시그널링되지 않고 도출될 수 있다.
i. 예를 들어, 고정된 크로마 스케일링 인자는 APS 레벨에서 시그널링되는 lmcs 데이터(예컨대, VVC 사양 JVET-M1001-v7에 정의된 lmcs_data())에서의 요소들 및/또는 SPS 레벨에서 시그널링되는 비트 깊이(예컨대, 루마 비트 깊이)에 따라 도출될 수 있다.
ii. 예를 들어, 고정된 크로마 스케일링 인자는 APS 레벨에서 도출될 수 있다.
1) 일 예에서, 상이한 APS 유닛들에서 상이한 크로마 스케일링 인자들이 도출될 수 있다.
2) 일 예에서, 크로마 스케일링 인자들의 수는 APS 유닛들의 최대 수에 의존할 수 있다, 즉, 크로마 스케일링 인자들의 수는 T, 예컨대, T = 32보다 작다.
3) 일 예에서, 하나의 슬라이스/타일/픽처에 대한 고정된 크로마 스케일링 인자는 APS 레벨에서의 모든 이용 가능한 크로마 스케일링 인자들로부터 선택될 수 있다.
4) 일 예에서, 고정된 크로마 스케일링 인자는 슬라이스/타일/픽처 레벨에서 결정되고 모든 CU/PU/TU 크로마 성분들에 사용된다.
크로마 잔차 스케일링 및/또는 CCLM이 적용되는지 여부에 대한 제한
13. 크로마 잔차 스케일링 또는 CCLM이 적용되는지 여부는 대응하는 및/또는 동일 위치 루마 블록의 분할에 의존할 수 있다는 것이 제안된다.
a) 일 예에서, 교차 성분 정보를 갖는 툴들을 인에이블 또는 디스에이블시킬지는 동일 위치 루마(예를 들면, Y 또는 G 성분) 블록 내의 CU들/PU들/TU들의 수에 의존할 수 있다.
i. 일 예에서, 동일 위치 루마(예를 들어, Y 또는 G 성분) 블록 내의 CU들/PU들/TU들의 수가 수 임계치를 초과하는 경우, 그러한 툴들은 디스에이블될 수 있다.
ii. 대안적으로, 교차 성분 정보를 갖는 툴들을 인에이블 또는 디스에이블시킬지는 분할 트리 깊이에 의존할 수 있다.
1) 일 예에서, 동일 위치 루마 블록 내의 CU들의 최대(또는 최소 또는 평균 또는 다른 변형) 쿼드 트리 깊이가 임계치를 초과하는 경우, 그러한 툴들은 디스에이블될 수 있다.
2) 일 예에서, 동일 위치 루마 블록 내의 CU들의 최대(또는 최소 또는 평균 또는 다른 변형) BT 및/또는 TT 깊이가 임계치를 초과하는 경우, 그러한 툴들은 디스에이블될 수 있다.
iii. 대안적으로, 게다가, 교차 성분 정보를 갖는 툴들을 인에이블 또는 디스에이블시킬지는 크로마 블록의 블록 치수에 의존할 수 있다.
iv. 대안적으로, 게다가, 교차 성분 정보를 갖는 툴들을 인에이블 또는 디스에이블시킬지는 동일 위치 루마가 다수의 VPDU들/미리 정의된 영역 크기들과 교차하는지 여부에 의존할 수 있다.
v. 위의 논의에서의 임계치들은 고정된 숫자들일 수 있거나, 시그널링될 수 있거나, 표준 프로필들/레벨들/티어들에 의존할 수 있다.
b) 일 예에서, 현재 크로마 블록의 동일 위치 루마 블록이 (예를 들면, 도 7에서) 다수의 분할들에 의해 나누어지는 경우, 크로마 잔차 스케일링 및/또는 CCLM이 금지될 수 있다.
i. 대안적으로, 현재 크로마 블록의 동일 위치 루마 블록이 (예를 들어, 하나의 CU/TU/PU 내에서) 분할되지 않은 경우, 크로마 잔차 스케일링 및/또는 CCLM이 적용될 수 있다.
c) 일 예에서, 현재 크로마 블록의 동일 위치 루마 블록이 M 개 초과의 CU들/PU들/TU들을 포함하는 경우, 크로마 잔차 스케일링 및/또는 CCLM이 금지될 수 있다.
i. 일 예에서, M은 1보다 큰 정수일 수 있다.
ii. 일 예에서, M은 CCLM 또는 크로마 잔차 스케일링 프로세스인지에 의존할 수 있다.
iii. M은 고정된 숫자들일 수 있거나, 시그널링될 수 있거나, 표준 프로필들/레벨들/티어들에 의존할 수 있다.
d) 동일 위치 루마 블록 내의 위에서 언급된 CU들은 동일 위치 루마 블록 내의 모든 CU들인 것으로 해석될 수 있다. 대안적으로, 동일 위치 루마 블록 내의 CU들은, 동일 위치 루마 블록의 경계를 따라 있는 CU들과 같은, 동일 위치 루마 블록 내의 부분 CU들인 것으로 해석될 수 있다.
e) 동일 위치 루마 블록 내의 위에서 언급된 CU들은 서브 CU들 또는 서브블록들인 것으로 해석될 수 있다.
i. 예를 들어, 서브 CU들 또는 서브블록들은 ATMVP에서 사용될 수 있고;
ii. 예를 들어, 서브 CU들 또는 서브블록들은 아핀 예측에 사용될 수 있으며;
iii. 예를 들어, 서브 CU들 또는 서브블록들은 ISP(Intra Sub-Partitions) 모드에서 사용될 수 있다.
f) 일 예에서, 동일 위치 루마 블록의 좌측 상단 루마 샘플을 커버하는 CU/PU/TU가 미리 정의된 루마 블록 크기보다 큰 경우, 크로마 잔차 스케일링 및/또는 CCLM이 금지될 수 있다.
i. 일 예가 도 8에 묘사되어 있으며, 동일 위치 루마 블록이 32x32이지만 64x64와 동일한 크기를 갖는 대응하는 루마 블록 내에 있으며, 그러면 미리 정의된 루마 블록 크기가 32x64인 경우, 크로마 잔차 스케일링 및/또는 CCLM이 이 경우에 금지된다.
ii. 대안적으로, 현재 크로마 블록의 동일 위치 루마 블록이 분할되지 않고 동일 위치 루마 블록들의 좌측 상단 루마 샘플을 커버하는 대응하는 루마 블록이 미리 정의된 경계 상자 내에 완전히 포함되는 경우, 현재 크로마 블록에 대한 크로마 잔차 스케일링 및/또는 CCLM이 적용될 수 있다. 경계 상자는, 도 9에 도시된 바와 같이, WxH로 나타낸, 폭 W와 높이 H를 갖는 직사각형으로서 정의될 수 있으며, 여기서 대응하는 루마 블록은 폭 32와 높이 64를 갖고, 경계 상자는 폭 40과 높이 70을 갖는다.
1) 일 예에서, 경계 상자의 크기 WxH는 CTU 폭 및/또는 높이에 따라, 또는 CU 폭 및/또는 높이에 따라, 또는 임의의 값들에 따라 정의될 수 있다.
g) 일 예에서, 현재 크로마 블록의 동일 위치 루마 블록이 다수의 분할들에 의해 나누어지는 경우, 동일 위치 루마 블록의 미리 정의된 분할 내부의 예측 샘플들(또는 재구성된 샘플들)만이 LMCS 모드에서 크로마 잔차 스케일링 인자를 도출하는 데 사용된다.
i. 일 예에서, 동일 위치 루마 블록의 제1 분할에서의 모든 예측 샘플들(또는 재구성된 샘플들)의 평균은 LMCS 모드에서 크로마 잔차 스케일링 인자를 도출하는 데 사용된다.
ii. 대안적으로, 동일 위치 루마 블록의 제1 분할에서의 좌측 상단 예측 샘플(또는 재구성된 샘플)은 LMCS 모드에서 크로마 잔차 스케일링 인자를 도출하는 데 사용된다.
iii. 대안적으로, 동일 위치 루마 블록의 제1 분할에서의 중앙 예측 샘플(또는 재구성된 샘플)은 LMCS 모드에서 크로마 잔차 스케일링 인자를 도출하는 데 사용된다.
h) CCLM 및 LMCS와 같은 교차 성분 툴들을 적용할지 여부 및 어떻게 적용할지가 동일 위치 루마 블록의 적어도 하나의 샘플을 커버하는 하나 또는 다수의 루마 CU의 코딩 모드(들)에 의존할 수 있다는 것이 제안된다.
i. 예를 들어, 동일 위치 루마 블록의 적어도 하나의 샘플을 커버하는 하나 또는 다수의 루마 CU가 아핀 모드로 코딩되는 경우 교차 성분 툴들은 디스에이블된다.
ii. 예를 들어, 동일 위치 루마 블록의 적어도 하나의 샘플을 커버하는 하나 또는 다수의 루마 CU가 양방향 예측으로 코딩되는 경우 교차 성분 툴들은 디스에이블된다.
iii. 예를 들어, 동일 위치 루마 블록의 적어도 하나의 샘플을 커버하는 하나 또는 다수의 루마 CU가 BDOF로 코딩되는 경우 교차 성분 툴들은 디스에이블된다.
iv. 예를 들어, 동일 위치 루마 블록의 적어도 하나의 샘플을 커버하는 하나 또는 다수의 루마 CU가 DMVR로 코딩되는 경우 교차 성분 툴들은 디스에이블된다.
v. 예를 들어, 동일 위치 루마 블록의 적어도 하나의 샘플을 커버하는 하나 또는 다수의 루마 CU가 JVET-N0217에서 제안된 바와 같은 행렬 아핀 예측 모드로 코딩되는 경우 교차 성분 툴들은 디스에이블된다.
vi. 예를 들어, 동일 위치 루마 블록의 적어도 하나의 샘플을 커버하는 하나 또는 다수의 루마 CU가 인터 모드로 코딩되는 경우 교차 성분 툴들은 디스에이블된다.
vii. 예를 들어, 동일 위치 루마 블록의 적어도 하나의 샘플을 커버하는 하나 또는 다수의 루마 CU가 ISP 모드로 코딩되는 경우 교차 성분 툴들은 디스에이블된다.
ⅷ. 일 예에서, "동일 위치 루마 블록의 적어도 하나의 샘플을 커버하는 하나 또는 다수의 루마 CU"는 대응하는 루마 블록을 지칭할 수 있다.
i) CCLM/LMCS가 금지될 때, CCLM/LMCS의 사용의 표시의 시그널링이 스킵될 수 있다.
j) 본 개시에서, CCLM은, LM 모드, LM-T 모드 및 LM-L 모드를 포함한, CCLM의 모드들의 임의의 변형들을 지칭할 수 있다.
14. CCLM 및 LMCS와 같은 교차 성분 툴들을 적용할지 여부 및 어떻게 적용할지는 크로마 블록의 일부에 대해 수행될 수 있다는 것이 제안된다.
a) 일 예에서, CCLM 및 LMCS와 같은 교차 성분 툴들을 적용할지 여부 및 어떻게 적용할지는 크로마 서브블록 레벨에서 수행될 수 있다.
i. 일 예에서, 크로마 서브블록은 크로마 CU에서 2x2 또는 4x4 블록으로서 정의된다.
ii. 일 예에서, 크로마 서브블록에 대해, 현재 크로마 CU의 대응하는 루마 코딩 블록이 서브블록의 대응하는 블록의 모든 샘플들을 커버할 때, CCLM이 적용될 수 있다.
iii. 일 예에서, 크로마 서브블록에 대해, 대응하는 블록의 모든 샘플들이 현재 크로마 CU의 대응하는 루마 코딩 블록에 의해 커버되는 것은 아닐 때, CCLM이 적용되지 않는다.
iv. 일 예에서, CCLM 또는 LMCS의 파라미터들은 서브블록을 크로마 CU로서 취급하는 것으로 각각의 크로마 서브블록에 대해 도출된다.
v. 일 예에서, 크로마 서브블록에 대해 CCLM 또는 LMCS가 적용될 때, 동일 위치 블록의 샘플들이 사용될 수 있다.
15. CCLM과 같은 교차 성분 툴들을 적용할지 여부와 어떻게 적용할지가 블록 치수 및/또는 분할 정보 및/또는 분할 구조 유형(예를 들면, 이중 트리 또는 단일 트리)에 의존할 수 있다.
a) 일 예에서, CCLM은 크로마 이중 트리 분할에 대해 디스에이블될 수 있다.
b) 일 예에서, CCLM은 블록 치수에 따라 조건부로 디스에이블될 수 있다.
i. 일 예에서, 현재 블록 치수가 WB×HB라고 가정하면, 다음 CCLM은 WB, HB 및 2 개의 정수 T1 및 T2 사이의 관계에 따라 디스에이블될 수 있다.
1) 일 예에서, WB>=T1이고 HB>=T2인 경우 CCLM이 디스에이블될 수 있다. 예를 들면, T1=T2=8.
2) 일 예에서, WB * HB >=T1인 경우 CCLM이 디스에이블될 수 있다. 예를 들면, T1 = 64.
3) 일 예에서, Min(WB, HB)>=T1인 경우 CCLM이 디스에이블될 수 있다. 예를 들면, T1 = 8.
4) 일 예에서, Max(WB, HB)>=T1인 경우 CCLM이 디스에이블될 수 있다. 예를 들면, T1 = 8.
5) 일 예에서, WB<=T1이고 HB<=T2인 경우 CCLM이 디스에이블될 수 있다. 예를 들면, T1=T2=16.
6) 일 예에서, WB * HB <=T1인 경우 CCLM이 디스에이블될 수 있다. 예를 들면, T1 = 4096.
7) 일 예에서, Min(WB, HB)<=T1이면 CCLM이 디스에이블될 수 있다. 예를 들면, T1 = 64.
8) 일 예에서, Max(WB, HB)<=T1인 경우 CCLM이 디스에이블될 수 있다. 예를 들면, T1 = 64.
c) 일 예에서, CCLM은 블록 치수 및/또는 분할 정보에 의해 제한될 수 있다.
i. 일 예에서, 치수 WB×HB를 갖는 크로마 블록에 대해, 아래 조건들 중 하나 또는 다수가 충족되는 경우, CCLM이 디스에이블된다. 예를 들면, WB=HB=32. 다음 글머리 기호들에서, 동일 위치 루마 블록 치수는 (sh×WB)×(sv×HB)일 수 있으며, 여기서 sh 및 sv는 스케일링 인자들이다. 예를 들어, 컬러 포맷이 4:2:0일 때 sh=sv=2이다.
1) 현재 크로마 블록은 수평 분할을 갖는 리프 노드에 있고, 동일 위치 루마 블록은 수직 분할을 갖는 리프 노드에 있다.
a) 일 예에서, 현재 크로마 블록은 SPLIT_TT_HOR 모드로 분할되고, 동일 위치 루마 블록은 SPLIT_TT_VER 모드로 분할된다.
b) 일 예에서, 현재 크로마 블록은 SPLIT_TT_HOR 모드로 분할되고, 동일 위치 루마 블록은 SPLIT_BT_VER 모드로 분할된다.
c) 일 예에서, 현재 크로마 블록은 SPLIT_BT_HOR 모드로 분할되고, 동일 위치 루마 블록은 SPLIT_TT_VER 모드로 분할된다.
d) 일 예에서, 현재 크로마 블록은 SPLIT_BT_HOR 모드로 분할되고, 동일 위치 루마 블록은 SPLIT_BT_VER 모드로 분할된다.
2) 현재 크로마 블록은 수직 분할을 갖는 리프 노드에 있고, 동일 위치 루마 블록은 수평 분할을 갖는 리프 노드에 있다.
a) 일 예에서, 현재 크로마 블록은 SPLIT_TT_VER 모드로 분할되고, 동일 위치 루마 블록은 SPLIT_TT_HOR 모드로 분할된다.
b) 일 예에서, 현재 크로마 블록은 SPLIT_TT_VER 모드로 분할되고, 동일 위치 루마 블록은 SPLIT_BT_HOR 모드로 분할된다.
c) 일 예에서, 현재 크로마 블록은 SPLIT_BT_VER 모드로 분할되고, 동일 위치 루마 블록은 SPLIT_TT_HOR 모드로 분할된다.
d) 일 예에서, 현재 크로마 블록은 SPLIT_BT_VER 모드로 분할되고, 동일 위치 루마 블록은 SPLIT_BT_HOR 모드로 분할된다.
d) 일 예에서, CCLM이 블록에 대해 디스에이블되는 경우, CCLM에 관련된 신택스 요소들이 블록에서 시그널링되지 않을 수 있다.
i. 대안적으로, CCLM이 블록에 대해 디스에이블되는 경우, CCLM에 관련된 신택스 요소들이 시그널링될 수 있지만 CCLM 모드들은 적합성 비트스트림에서의 블록에서 사용되어서는 안된다.
ii. 대안적으로, CCLM이 블록에 대해 디스에이블되는 경우, CCLM에 관련된 신택스 요소들이 시그널링될 수 있다. CCLM 모드들이 시그널링되는 경우, 플래너 또는 DC와 같은 디폴트 모드가 적용될 수 있다.
LMCS 모드에서 크로마 잔차 스케일링의 적용 가능성
16. 루마 의존적 크로마 잔차 스케일링이 적용될 수 있는지 여부가 JVET-M1001에 지정된 바와 같은 타일 그룹 헤더 외에 다른 신택스 레벨에서 시그널링될 수 있다는 것이 제안된다.
a) 예를 들어, chroma_residual_scale_flag가 시퀀스 레벨에서(예를 들면, SPS에서), 픽처 레벨에서(예를 들면, PPS 또는 픽처 헤더에서), 슬라이스 레벨에서(예를 들면, 슬라이스 헤더에서), 타일 레벨에서, CTU 행 레벨에서, CTU 레벨에서, CU 레벨에서 시그널링될 수 있다. chroma_residual_scale_flag가 1과 동일한 것은 시그널링된 신택스 레벨 아래의 CU들에 대해 크로마 잔차 스케일링이 인에이블된다는 것을 지정한다. chroma_residual_scale_flag가 0과 동일한 것은 시그널링된 신택스 레벨 아래의 CU들에 대해 크로마 잔차 스케일링이 인에이블되지 않는다는 것을 지정한다. chroma_residual_scale_flag가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
b) 일 예에서, 크로마 잔차 스케일링이 분할 노드 레벨에서 제약되는 경우. chroma_residual_scale_flag가 분할 노드에 의해 커버되는 CU들에 대해 시그널링되지 않고 0인 것으로 추론될 수 있다. 일 예에서, 분할 노드는 CTU일 수 있다(CTU는 4진 트리 분할의 루트 노드로서 취급됨).
c) 일 예에서, 크로마 잔차 스케일링이 32x32보다 작거나 같은 크로마 블록 크기에 대해 제약되는 경우, chroma_residual_scale_flag가 32x32보다 작거나 같은 크로마 블록 크기에 대해 시그널링되지 않고 0인 것으로 추론될 수 있다.
CCLM 모드의 적용 가능성
17. CCLM 모드가 적용될 수 있는지 여부가 JVET-M1001에 지정된 바와 같은 sps 레벨 외에 다른 신택스 레벨들에서 시그널링될 수 있다는 것이 제안된다.
a) 예를 들어, 이는 픽처 레벨에서(예를 들면, PPS 또는 픽처 헤더에서), 슬라이스 레벨에서(예를 들면, 슬라이스 헤더에서), 타일 그룹 레벨에서(예를 들면, 타일 그룹 헤더에서), 타일 레벨에서, CTU 행 레벨에서, CTU 레벨에서, CU 레벨에서 시그널링될 수 있다.
b) 일 예에서, CCLM이 적용될 수 없는 경우 cclm_flag가 시그널링되지 않고 0인 것으로 추론될 수 있다.
i. 일 예에서, 크로마 잔차 스케일링이 8x8보다 작거나 같은 크로마 블록 크기에 대해 제약되는 경우, cclm_flag가 8x8보다 작거나 같은 크로마 블록 크기에 대해 시그널링되지 않고 0인 것으로 추론될 수 있다.
인트라 모드 및 인터 모드에 대한 크로마 잔차 스케일링 인자 도출의 통합
18. 크로마 잔차 스케일링 인자는 루마 블록을 인코딩/디코딩한 후에 도출될 수 있고, 저장되어 다음 코딩된 블록들을 위해 사용될 수 있다.
a) 일 예에서, 루마 블록에서의 특정 예측 샘플들 및/또는 중간 예측 샘플들 및/또는 재구성된 샘플들 및/또는 루프 필터링 이전의(예를 들면, 디블로킹 필터 및/또는 SAO 필터 및/또는 양방향 필터 및/또는 Hadamard 변환 필터 및/또는 ALF 필터에 의해 프로세싱되기 전의) 재구성된 샘플들은 크로마 잔차 스케일링 인자의 도출을 위해 사용될 수 있다.
i. 예를 들어, 루마 블록의 하단 행 및/또는 우측 열에 있는 부분 샘플들은 크로마 잔차 스케일링 인자의 도출을 위해 사용될 수 있다.
b) 단일 트리의 경우에, 인트라 모드 및/또는 IBC 모드 및/또는 인터 모드로 코딩된 블록을 인코딩할 때, 현재 블록의 스케일링 인자를 도출하기 위해 이웃 블록들의 도출된 크로마 잔차 스케일링 인자가 사용될 수 있다.
i. 일 예에서, 특정 이웃 블록들이 순서대로 검사될 수 있고, 현재 블록에 대해 첫 번째 이용 가능한 크로마 잔차 스케일링 인자가 사용될 수 있다.
ii. 일 예에서, 특정 이웃 블록들이 순서대로 검사될 수 있고, 스케일링 인자가 처음 K 개의 이용 가능한 이웃 크로마 잔차 스케일링 인자들에 기초하여 도출될 수 있다.
iii. 일 예에서, 인터 모드 및/또는 CIIP 모드로 코딩된 블록의 경우, 이웃 블록이 인트라 모드 및/또는 IBC 모드 및/또는 CIIP 모드로 코딩된 경우, 이웃 블록의 크로마 잔차 스케일링 인자는 "이용 불가능한" 것으로 간주될 수 있다.
iv. 일 예에서, 이웃 블록들은 좌측(또는 좌측 위쪽) -> 위쪽(또는 우측 위쪽)의 순서로 검사될 수 있다.
1) 대안적으로, 이웃 블록들은 위쪽(또는 우측 위쪽) -> 좌측(또는 좌측 위쪽)의 순서로 검사될 수 있다.
c) 개별 트리의 경우에, 크로마 블록을 인코딩할 때, 대응하는 루마 블록이 먼저 식별될 수 있다. 이어서, 그의(예를 들면, 대응하는 루마 블록의) 이웃 블록들의 도출된 크로마 잔차 스케일링 인자가 현재 블록의 스케일링 인자를 도출하기 위해 사용될 수 있다.
i. 일 예에서, 특정 이웃 블록들이 순서대로 검사될 수 있고, 현재 블록에 대해 첫 번째 이용 가능한 크로마 잔차 스케일링 인자가 사용될 수 있다.
ii. 일 예에서, 특정 이웃 블록들이 순서대로 검사될 수 있고, 스케일링 인자가 처음 K 개의 이용 가능한 이웃 크로마 잔차 스케일링 인자들에 기초하여 도출될 수 있다.
d) 이웃 블록들이 미리 정의된 순서로 검사될 수 있다.
i. 일 예에서, 이웃 블록들은 좌측(또는 좌측 위쪽) -> 위쪽(또는 우측 위쪽)의 순서로 검사될 수 있다.
ii. 일 예에서, 이웃 블록들은 위쪽(또는 우측 위쪽) -> 좌측(또는 좌측 위쪽)의 순서로 검사될 수 있다.
iii. 일 예에서, 이웃 블록들은 좌측 아래쪽 -> 좌측 -> 우측 위쪽 -> 위쪽 -> 좌측 위쪽의 순서로 검사될 수 있다.
iv. 일 예에서, 이웃 블록들은 좌측 -> 위쪽 -> 우측 위쪽 -> 좌측 아래쪽 -> 좌측 위쪽의 순서로 검사될 수 있다.
e) 일 예에서, 크로마 잔차 스케일링을 적용할지 여부는 이웃 블록의 "이용 가능성"에 의존할 수 있다.
i. 일 예에서, "이용 가능한" 이웃 블록이 없을 때, 크로마 잔차 스케일링이 허용되지 않을 수 있다.
ii. 일 예에서, "이용 가능한" 이웃 블록들의 수가 K(K >= 1)보다 작을 때, 크로마 잔차 스케일링이 허용되지 않을 수 있다.
iii. 대안적으로, "이용 가능한" 이웃 블록이 없을 때, 크로마 잔차 스케일링 인자가 디폴트 값에 의해 도출될 수 있다.
1) 일 예에서, 디폴트 값 1<<(BitDepth -1)이 크로마 잔차 스케일링 인자를 도출하는 데 사용될 수 있다.
f) 일 예에서, 현재 크로마 블록의 크로마 잔차 스케일링 인자는 저장되어 다음 코딩된 블록들을 위해 사용될 수 있다.
g) 일 예에서, 크로마 잔차 스케일링 인자들의 저장이 라인 버퍼로부터 제거될 수 있다.
i. 일 예에서, 현재 블록과 액세스될 이웃(인접 또는 비인접) 블록이 상이한 영역들에 있을 때, 그의 크로마 잔차 스케일링 인자는 "이용 불가능한" 것으로 간주될 수 있고 현재 블록의 크로마 잔차 스케일링 인자의 도출을 위해 사용되지 않을 수 있다.
1) 영역은 슬라이스, 타일, 타일 그룹, CTU 행 또는 CTU일 수 있다.
2) 대안적으로, 그러한 경우에 크로마 잔차 스케일링 인자는 디폴트 값으로 간주될 수 있다.
3) 대안적으로, 그러한 경우에 크로마 잔차 스케일링이 적용될 수 없다.
h) 일 예에서, 현재 크로마 블록의 크로마 잔차 스케일링 인자는 즉석에서 업데이트될 수 있고 다음 블록들의 스케일링 인자 도출을 위해 히스토리 테이블에 저장될 수 있다.
i. 히스토리 테이블은 FIFO(first-in first-out) 방식으로 업데이트될 수 있다.
ii. 크로마 블록을 디코딩/인코딩한 후에, 크로마 잔차 스케일링 인자가 (예를 들면, 루마 값들에 따라) 도출될 수 있고 FIFO 히스토리 테이블에 저장될 수 있다.
iii. 일 예에서, FIFO 히스토리 테이블은 최대 1 개의 엔트리를 포함할 수 있다. 이 경우에, 가장 최근에 디코딩된 블록의 도출된 크로마 잔차 스케일링 인자가 현재 블록에 대해 사용된다.
iv. 일 예에서, 히스토리 테이블은 픽처, 및/또는 슬라이스, 및/또는 타일 그룹, 및/또는 타일, 및/또는 CTU 행 및/또는 CTU를 인코딩/디코딩하기 전에 리프레시된다.
1) 일 예에서, 히스토리 테이블이 리프레시될 때 디폴트 크로마 잔차 스케일링 인자가 히스토리 테이블에 넣어질 수 있다.
2) 일 예에서, FIFO 히스토리 테이블이 리프레시될 때 히스토리 테이블이 비어 있도록 설정된다.
크로마 잔차 스케일링을 위한 새로운 신택스 요소
19. 크로마 잔차 스케일링 프로세스에서 사용되는 스케일링 인자들을 도출하기 위해 하나 또는 다수의 새로운 신택스 요소가 시그널링될 수 있다는 것이 제안된다.
a) 일 예에서, 신택스 요소들은 LMCS 코딩 툴의 크로마 잔차 스케일링을 위한 (예를 들면, VVC 사양에서의 lmcs_data()와 같은) LMCS APS 데이터에 추가될 수 있다.
b) 일 예에서, 신택스 요소들은 SPS/슬라이스 헤더/타일 그룹 헤더/PPS/픽처 헤더/브릭/CTU 행/CTU/CU 등에 추가될 수 있다.
i. 신택스 요소들이 비디오 유닛에서 시그널링되는 경우, 이들은 비디오 유닛과 연관된 모든 블록들에서 스케일링 인자들을 제어할 수 있다. 예를 들어, 이들이 슬라이스 헤더에서 시그널링되는 경우, 이들은 슬라이스 내의 모든 블록들에서 스케일링 인자들을 제어할 수 있다.
1) 대안적으로, 신택스 요소들이 비디오 유닛에서 시그널링되는 경우, 이들은 비디오 유닛과 연관된 일부 블록들에서 스케일링 인자들을 제어할 수 있다.
ii. 일 예에서, 신택스 요소는 VPDU 레벨에서 시그널링될 수 있다.
iii. 일 예에서, 신택스 요소는 VPDU와 CTU 레벨 사이의 보다 작은 크기를 갖는 유닛에 대해 시그널링될 수 있다.
1) 일 예에서, CTU 폭이 W이고 VPDU 폭이 W'이라고 가정한다. 유닛은 min (W< W′)로 설정된다.
iv. 일 예에서, CU 크기가 VPDU보다 클 때, 신택스 요소는 하나의 레벨(예를 들면, VPDU)에서 시그널링될 수 있다. 그렇지 않은 경우, 신택스 요소는 다른 레벨(예를 들면, CU)에서 시그널링될 수 있다.
c) 일 예에서, 새로운 신택스 요소, 즉, 예를 들어, lmcs_crs_fixed_bin_idx는 크로마 잔차 스케일링을 위한 크로마 스케일링 인자를 도출하도록 코딩될 수 있다.
i. 일 예에서, lmcs_crs_fixed_bin_idx는 스케일링 인자를 도출하는 데 사용되는 대표적인 루마 값을 제시하는 데 사용될 수 있다.
ii. 대안적으로, lmcs_crs_fixed_bin_idx는, 룩업 테이블 ChromaScaleCoeff에 대한 인덱스와 같은, 스케일링 인자를 도출하는 데 사용되는 인덱스를 제시하는 데 사용될 수 있다.
iii. 대안적으로, 게다가, lmcs_crs_fixed_bin_idx의 값은 범위 [k0, k1]에 있어야 한다. 일 예에서, lmcs_crs_fixed_bin_idx의 범위는 LMCS(luma mapping with chroma scaling) 구성 프로세스에서의 최소(예를 들면, lmcs_min_bin_idx) 및/또는 최대 빈 인덱스의 범위, 예를 들면, [0, 15]와 동일하게 설정될 수 있다.
1) 일 예에서, lmcs_crs_fixed_bin_idx는 적합성 비트스트림에서 유효한 범위에 있어야 한다.
2) 일 예에서, lmcs_crs_fixed_bin_idx는 유효한 범위에 있어야 하는 방식으로 코딩된다.
iv. 대안적으로, 게다가, lmcs_crs_fixed_bin_idx는 고정 길이, 절단된 단항, 단항, 지수-골롬 코딩으로 코딩될 수 있다.
v. 대안적으로, 게다가, lmcs_crs_fixed_bin_idx는, 예컨대, LMCS(luma mapping with chroma scaling) 구성 프로세스에서 사용되는 최소 및 최대 빈 인덱스의 평균(예를 들면, (lmcs_min_bin_idx + lmcs_max_bin_idx +offset)>>1)을 사용하여, 예측적으로 코딩될 수 있으며 여기서 offset은 예측으로서 0 또는 1로 설정된다. 대안적으로, lmcs_min_bin_idx 또는 lmcs_max_bin_idx가 예측으로서 사용될 수 있다.
vi. 대안적으로, 게다가, lmcs_crs_fixed_bin_idx 조건부로 코딩된다
1) 일 예에서, 현재 컬러 포맷이 4:0:0이 아닐 때.
2) 일 예에서, 개별 플래너 코딩이 디스에이블되어 있을 때.
3) 일 예에서, ChromaArrayType이 0과 동일하지 않을 때.
4) 일 예에서, 크로마 잔차 스케일링이 인에이블되어 있을 때.
d) 일 예에서, 새로운 신택스 요소(들)에 의해 도출되는 고정된 크로마 스케일링 인자가 동일한 LMCS 모델을 공유하는 모든 크로마 잔차 스케일링 블록들에 대해 사용될 수 있다.
i. 일 예에서, lmcs_crs_fixed_bin_idx에 의해 인덱싱되는 고정된 크로마 스케일링 인자가 IDR/CRA/IRAP 픽처에 대해 한 번 계산되고 IDR/CRA/IRAP 픽처 내의 모든 블록들에 대해 사용된다.
ii. 일 예에서, lmcs_crs_fixed_bin_idx에 의해 인덱싱되는 고정된 크로마 스케일링 인자는 IDR/CRA/IRAP 픽처에 대해 한 번 계산되고 다음 IDR/CRA/IRAP 픽처 이전의 인터 코딩된 픽처들 내의 모든 블록들에 대해 사용된다.
e) 일 예에서, 비디오 유닛/영역 내의 모든 블록들(예컨대, CTU들/VPDU들/CU들)이 동일한 스케일링 인자를 공유하는지 여부를 나타내기 위해 신택스 요소(예를 들면, 플래그)가 시그널링되거나 도출될 수 있다.
i. 일 예에서, 비디오 유닛/영역은 시퀀스/픽처/슬라이스/타일/브릭/CTU 행/CTU/VPDU 등일 수 있다.
ii. 일 예에서, 신택스 요소는 SPS/슬라이스 헤더/타일 그룹 헤더/PPS/픽처 헤더/브릭/CTU 행/CTU/VPDU 레벨 등에서 시그널링될 수 있다.
iii. 일 예에서, 신택스 요소가 비디오 유닛/영역 내의 모든 블록들(예컨대, CTU들/VPDU들/CU들)이 동일한 스케일링 인자를 공유하지 않는다는 것을 나타내는 경우, 하나 또는 다수의 블록의 스케일링 인자(들)를 나타내기 위해 하나 또는 다수의 추가 신택스 요소가 시그널링되거나 도출될 수 있다.
f) 일 예에서, 동일한 스케일링 인자를 공유하는 비디오 유닛 내의 CTU들/VPDU들/CU들의 수(T로 표시됨)는, 시퀀스/픽처/슬라이스/타일/브릭/CTU 행/CTU/VPDU 등과 같은, 비디오 영역 레벨에서 시그널링되거나 도출될 수 있다.
i. 일 예에서, 동일한 스케일링 인자를 공유하는 비디오 유닛 내의 CTU들/VPDU들/CU들의 수(T로 표시됨)는, T 대신 (T-1)이 코딩되는 것과 같이, 예측 방식으로 코딩될 수 있고; 대안적으로, 그 대신에 (비디오 유닛 내의 CTU들/VPDU들/CU들의 수 - T)가 코딩될 수 있다.
ii. 일 예에서, 동일한 스케일링 인자를 공유하는 비디오 유닛 내의 CTU들/VPDU들/CU들의 수(T로 표시됨)는 SPS/슬라이스 헤더/타일 그룹 헤더/PPS/픽처 헤더/브릭/CTU 행/CTU/VPDU 레벨 등에서 시그널링될 수 있다.
iii. 일 예에서, 비디오 유닛 내의 매 T 개의 연속적인 CTU들/VPDU들/CU들은 동일한 스케일링 인자를 공유할 수 있다.
1) 제1 CTU/VPDU/CU가 디코딩된 후에 제2 CTU/VPDU/CU가 디코딩되는 경우 제1 CTU/VPDU/CU와 제2 CTU/VPDU/CU는 연속적인 것으로 정의된다.
iv. 일 예에서, T는 현재 비디오 유닛 내의 CTU들/VPDU들/CU들의 수와 동일할 수 있다.
v. 일 예에서, T는 범위 [T1, T2](경계 포함)에 있을 수 있다. 예를 들면, T1은 1과 동일하고 T2는 현재 비디오 유닛 내의 CTU들/VPDU들/CU들의 수와 동일하다.
1) 일 예에서, T는 범위에 따라 시그널링될 수 있다. 예를 들어, T-T1이 시그널링되고 T-T1의 최대 시그널링된 값은 T2-T1이다.
2) 일 예에서, T는 적합성 비트스트림으로부터 파싱되는 범위에 있어야 한다.
vi. 일 예에서, T는 예측 방식으로 코딩될 수 있다.
1) 일 예에서, T는 고정된 수에 의해 예측될 수 있다.
2) 일 예에서, T는 그의 이전에 코딩된 비디오 유닛/영역의 정보를 사용하여 예측 방식으로 코딩될 수 있다.
a) 예를 들어, 동일한 스케일링 인자를 공유하는 제1 비디오 유닛 내의 CTU들/VPDU들/CU들의 수(T1로 표시됨)는 동일한 스케일링 인자를 공유하는 제2 비디오 유닛 내의 CTU들/VPDU들/CU들의 수(T2로 표시됨)에 의해 예측될 수 있다.
vii. T(예측 이후일 수 있음)는 단항/절단된 단항/고정 길이/지수 골롬/절단된 이진 코드로서 이진화될 수 있다.
ⅷ. T(예측 이후일 수 있음)는 어떠한 콘텍스트도 사용하지 않는 바이패스 코딩 또는 하나 또는 다수의 콘텍스트를 사용하는 산술 코딩으로 코딩될 수 있다.
ix. 일 예에서, T는 시그널링될 수 있는 다수의 변수들로부터 도출될 수 있다.
1) 예를 들어, T가 MxN과 동일할 때, T 대신에 M과 N이 시그널링될 수 있다.
a) T에 대한 이 글머리 기호에 개시된 방법들은 M 및/또는 N에도 적용될 수 있다.
g) 일 예에서, 동일한 스케일링 인자를 공유하는 비디오 유닛 내의 CTU들/VPDU들/CU들의 영역은 SPS/슬라이스 헤더/타일 그룹 헤더/PPS/픽처 헤더/브릭/CTU 행 레벨/CTU/VPDU 등에서 시그널링되거나 도출될 수 있다.
i. 일 예에서, 비디오 유닛이 래스터 스캔 순서로 다수의 CTU들/VPDU들/CU들을 포함하는 경우, 동일한 스케일링 인자를 공유하는 비디오 유닛 내의 CTU들/VPDU들/CU들의 영역은 첫 번째 CTU/VPDU/CU 어드레스(또는 인덱스) 및/또는 마지막 CTU/VPDU/CU 어드레스(또는 인덱스) 및/또는 CTU들/VPDU들/CU들의 수에 의해 표현될 수 있다.
1) 일 예에서, 첫 번째 CTU/VPDU/CU 어드레스(인덱스)와 마지막 CTU/VPDU/CU 인덱스가 시그널링될 수 있다.
2) 일 예에서, 첫 번째 CTU/VPDU/CU 인덱스 및 동일한 스케일링 인자를 공유하는 CTU들/VPDU들/CU들의 수가 시그널링될 수 있다.
ii. 일 예에서, 비디오 유닛이 픽처에서 직사각형 영역을 집합적으로 형성하는 다수의 CTU들/VPDU들/CU들을 포함하는 경우, 동일한 스케일링 인자를 공유하는 비디오 유닛 내의 CTU들/VPDU들/CU들의 영역은 좌측 상단 CTU/VPDU/CU 어드레스(또는 인덱스) 및 우측 하단 CTU/VPDU/CU 어드레스(또는 인덱스)에 의해 표현될 수 있다.
1) 일 예에서, 좌측 상단 CTU/VPDU/CU 어드레스(또는 인덱스) 및 우측 하단 CTU/VPDU/CU 어드레스(또는 인덱스)가 시그널링될 수 있다.
2) 일 예에서, 첫 번째 CTU/VPDU/CU 어드레스(인덱스)와 마지막 CTU/VPDU/CU 인덱스가 시그널링될 수 있다.
3) 일 예에서, 첫 번째 CTU/VPDU/CU 어드레스(인덱스) 및 동일한 스케일링 인자를 공유하는 CTU들/VPDU들/CU들의 수가 시그널링될 수 있다.
iii. 일 예에서, 영역은 그의 폭(W로 표시됨) 및 높이(H로 표시됨)로서 정의될 수 있다. W는 비디오 유닛/영역에 W 개의 CTU/VPDU/CU가 있음을 의미할 수 있고 H는 비디오 유닛/영역에 H 개의 CTU/VPDU/CU가 있음을 의미할 수 있다.
1) 일 예에서, 동일한 크로마 스케일링 인자를 공유하는 영역에 코딩되는 CTU들/VPDU들/CU들의 수는 영역의 하나 또는 다수의 부분이 현재 픽처 또는 슬라이스 또는 타일 또는 브릭 밖에 있는 경우 WxH보다 작을 수 있다.
2) 일 예에서, W는 현재 비디오 유닛의 폭을 따른 CTU/VPDU/CU 수와 동일할 수 있다.
3) 일 예에서, H는 현재 비디오 유닛의 높이를 따른 CTU/VPDU/CU 수와 같을 수 있다.
4) 일 예에서, W는 범위 [W1, W2](경계 포함)에 있을 수 있다. 예를 들면, W1은 1과 동일하고 W2는 현재 비디오 유닛의 CTU 행에 있는 CTU들의 수와 동일하다.
a) 일 예에서, W는 범위에 따라 시그널링될 수 있다. 예를 들어, W-W1이 시그널링되고 W-W1의 최대 시그널링된 값은 W2-W1이다.
b) 일 예에서, W는 적합성 비트스트림으로부터 파싱되는 범위에 있어야 한다.
5) 일 예에서, H는 범위 [H1, H2](경계 포함)에 있을 수 있다. 예를 들면, H1은 1과 동일하고 H2는 현재 비디오 유닛의 CTU 열에 있는 CTU들의 수와 동일하다.
a) 일 예에서, H는 범위에 따라 시그널링될 수 있다. 예를 들어, H-H1이 시그널링되고 H-H1의 최대 시그널링된 값은 H2-H1이다.
b) 일 예에서, H는 적합성 비트스트림으로부터 파싱되는 범위에 있어야 한다.
6) 일 예에서, W 또는 H는 예측 방식으로 코딩될 수 있다.
a) 일 예에서, W 또는 H는 고정된 수에 의해 예측될 수 있다.
b) 일 예에서, W 또는 H는 그의 이전에 코딩된 비디오 유닛/영역의 정보를 사용하여 예측 방식으로 코딩될 수 있다.
i. 예를 들어, 동일한 스케일링 인자를 공유하는 제1 영역의 W 또는 H는 동일한 스케일링 인자를 공유하는 제2 영역의 W 또는 H에 의해 예측될 수 있다.
7) W 또는 H(예측 이후일 수 있음)는 단항/절단된 단항/고정 길이/지수 골롬/절단된 이진 코드로서 이진화될 수 있다.
8) W 또는 H(예측 이후일 수 있음)는 어떠한 콘텍스트도 사용하지 않는 바이패스 코딩 또는 하나 또는 다수의 콘텍스트를 사용하는 산술 코딩으로 코딩될 수 있다.
iv. 일 예에서, WxH 개의 CTU/VPDU/CU를 갖는 제1 영역 및 WxH 개의 CTU/VPDU/CU를 갖는 제2 영역이 순차적으로 디코딩될 수 있다.
v. 일 예에서, 2 개의 영역 내의 CTU들은 인터리빙된 방식으로 디코딩될 수 있다.
- 예를 들어, 디코딩 순서는 제1 영역의 제1 행에 있는 CTU들일 수 있다.
- 제2 영역의 제1 행에 있는 CTU들.
- 제1 영역의 제1 행에 있는 CTU들.
- 제2 영역의 제2 행에 있는 CTU들.
- 제1 영역의 제2 행에 있는 CTU들.
20. 크로마 스케일링 인자들의 표시들은 연속적인 비디오 유닛들/영역들 사이에서 예측 코딩될 수 있다.
a) 일 예에서, 크로마 잔차 스케일링 정보를 시그널링할 각각의 비디오 유닛/영역에 대해, 그것이 그의 이전에 코딩된 비디오 유닛/영역과 동일한지 여부를 나타내기 위해 신택스 요소(예를 들어, 플래그)가 시그널링되거나 도출될 수 있다.
b) 일 예에서, 현재 비디오 유닛과 이전 비디오 유닛의 크로마 스케일링 인자들 간의 차이가 시그널링될 수 있다.
i. 예를 들어, 차이를 나타내기 위해 하나 이상의 신택스 요소가 시그널링될 수 있다.
1) 일 예에서, 차이를 나타내기 위해 절대 델타 및 델타 부호 플래그와 같은 2 개의 신택스 요소가 시그널링될 수 있다.
a) 일 예에서, 델타 부호 플래그는 절대 델타에 따라 조건부로 시그널링된다. 일 예에서, 절대 델타가 0과 동일한 경우 델타 부호 플래그가 시그널링되지 않는다.
ii. 예를 들어, 차이가 시그널링되지 않는 경우, 이는 0인 것으로 추론되며, 시그널링된 크로마 스케일링 인자가 이전 크로마 스케일링 인자와 동일하다는 것을 의미할 수 있다.
21. 본 발명에서 "스케일링 인자"라는 용어는 스케일링 인자 인덱스 또는 스케일링 인자 값을 지칭할 수 있다. "동일한 스케일링 인자를 공유하는"은 "동일한 스케일링 인자 인덱스를 공유하는" 또는 "동일한 스케일링 인자 값을 공유하는"을 지칭할 수 있다.
a) 일 예에서, 블록 내의 샘플들은 동일한 스케일링 인자 인덱스를 공유할 수 있지만, 상이한 스케일링 인자 값들을 가질 수 있다.
b) 일 예에서, 블록 내의 샘플들은 동일한 스케일링 인자 인덱스를 공유할 수 있고, 동일한 스케일링 인자 값을 가질 수 있다.
22. 본 발명에서 비디오 유닛/영역은 시퀀스/GOP(Group of Pictures)/인트라 기간/픽처/슬라이스/타일/브릭/VPDU/CTU 행/CTU들의 그룹/CTU/CU를 지칭할 수 있다.
5. 실시예들
5.1 실시예 #1
아래에서 논의되는 예시적인 실시예는 섹션 4의 항목 11 에서의 예시적인 방법에 대한 것이다.
새로 추가된 부분들은 밑줄이 그어진 굵은 텍스트로 나타내어져 있고, VVC 작업 초안으로부터 삭제된 부분들은 이중 대괄호 [[..]] 및 굵게 나타내어져 있다. 수정 사항들은 최신 VVC 작업 초안(JVET-M1007-v7)과 JVET-N220-v3에서의 새로운 채택에 기초한다.
8.7.5.4 크로마 샘플들에 대한 루마 의존적 크로마 잔차 스케일링 프로세스를 사용한 픽처 재구성
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 픽처의 좌측 상단 샘플을 기준으로 현재 변환 블록의 좌측 상단 샘플의 위치( xCurr, yCurr ),
- 변환 블록 폭을 지정하는 변수 nCurrSw,
- 변환 블록 높이를 지정하는 변수 nCurrSh,
- 현재 블록의 크로마 예측 샘플들을 지정하는 (nCurrSw)x(nCurrSh) 어레이 predSamples,
- 현재 블록의 크로마 잔차 샘플들을 지정하는 (nCurrSw)x(nCurrSh) 어레이 resSamples.
이 프로세스의 출력은 재구성된 크로마 픽처 샘플 어레이 recSamples이다.
현재 루마 위치( xTbY, yTbY )는 (xCurr << 1, yCurr << 1 )로 설정된다.
대응하는 루마 위치(xTbCorrY, yTbCorrY)는 다음과 같이 도출된다:
- tile_group_type이 2(I 타일 그룹)와 동일하고 qtbtt_dual_tree_intra_flag가 1과 동일한 경우, 대응하는 루마 위치( xTbCorrY, yTbCorrY )는 현재 루마 위치( xTbY, yTbY )의 좌측 상단 샘플을 커버하는 대응하는 CU의 좌측 상단 샘플 위치로 설정된다.
- 그렇지 않은 경우, 대응하는 루마 위치( xTbCorrY, yTbCorrY )가 현재 루마 위치( xTbY, yTbY)로 설정된다.
변수 availL은 다음과 같이 도출된다:
- 6.4.X 절 [Ed. (BB): 이웃 블록 이용 가능성 검사 프로세스(추후 결정)]에 명시된 바와 같은 블록에 대한 좌측 이웃 샘플 이용 가능성 도출 프로세스는 대응하는 루마 위치 ( xTbCorrY, yTbCorrY ) 및 이웃 루마 위치 ( xTbCorrY - 1, yTbCorrY )를 입력들로 하여 호출되고, 출력은 availL에 할당된다.
- availL이 TRUE와 동일할 때, 이웃하는 좌측 상단 루마 샘플 pY[ x ][ y ](단, x = -1, y = 0)는 위치 ( xTbCorrY + x, yTbCorrY  + y )에서 디블로킹 필터 프로세스 이전에 재구성된 루마 샘플들과 동일하게 설정된다. 이웃하는 좌측 상단 루마 샘플 pYMap [ x ][ y ](단, x = -1, y = -1)의 매핑된 값은 다음과 같이 도출된다:
Figure pct00083
재구성된 크로마 픽처 샘플 recSamples는 i = 0..nCurrSw - 1, j = 0..nCurrSh - 1에 대해 다음과 같이 도출된다:
[[
- tile_group_chroma_residual_scale_flag가 0과 동일하거나 nCurrSw * nCurrSh가 4보다 작거나 같은 경우, 다음이 적용된다:
Figure pct00084
]]
- 다음 조건들 중 하나가 참인 경우, recSamples[ xCurr + i ][ yCurr + j ]는 Clip1 C ( predSamples[ i ][ j ] + resSamples[ i ][ j ] )와 동일하게 설정된다
- tile_group_chroma_residual_scale_flag가 0과 동일하다
- nCurrSw * nCurrSh가 4보다 작거나 같다
- availL이 false와 동일하다
- CuPredMode[ xCurr ][ yCurr ]이 MODE_INTER와 동일하고 ciip_flag[ xCurr ][ yCurr ]이 0과 동일하며 CuPredMode[ xTbCorrY - 1 ][ yTbCorrY ]가 MODE_INTRA와 동일하다
- CuPredMode[ xCurr ][ yCurr ]이 MODE_INTER와 동일하고 ciip_flag[ xCurr ][ yCurr ]이 0과 동일하며 CuPredMode[ xTbCorrY - 1 ][ yTbCorrY ]가 MODE_IBC와 동일하다.
- CuPredMode[ xCurr ][ yCurr ]이 MODE_INTER와 동일하고 ciip_flag[ xCurr ][ yCurr ]이 0과 동일하며 CuPredMode[ xTbCorrY - 1 ][ yTbCorrY ]가 MODE_INTER와 동일하고 ciip_flag[ xCurr ][ yCurr ]이 1과 동일하다
- 그렇지 않은 경우(tile_group_chroma_residual_scale_flag가 1과 동일하고 nCurrSw * nCurrSh가 4보다 큰 경우), 다음이 적용된다:
- 변수 varScale의 도출을 위해, 다음과 같은 순서의 단계들이 적용된다:
1. 변수 invAvgLuma는 다음과 같이 도출된다:
Figure pct00085
변수 idxYInv는 8.7.5.3.2 절에 명시된 바와 같이 invAvgLuma를 입력으로 하고 idxYInv를 출력으로 하여 구간별 함수 인덱스의 식별을 호출하는 것에 의해 도출된다.
2. 변수 varScale은 다음과 같이 도출된다:
Figure pct00086
- recSamples는 다음과 같이 도출된다:
- tu_cbf_cIdx [ xCurr ][ yCurr ]이 1과 동일한 경우, 다음이 적용된다:
Figure pct00087
그렇지 않은 경우(tu_cbf_cIdx[ xCurr ][ yCurr ]이 0과 동일한 경우), 다음이 적용된다:
Figure pct00088
5.2 실시예 #2
아래의 실시예는 발명 설명의 항목 11 에서의 방법에 대한 것이다.
새로 추가된 부분들은 밑줄이 그어져 굵게 나타내어져 있고, VVC 작업 초안으로부터 삭제된 부분들은 이중 대괄호 [[..]] 및 굵은 텍스트로 나타내어져 있다. 수정 사항들은 최신 VVC 작업 초안(JVET-M1007-v7)과 JVET-N220-v3에서의 새로운 채택에 기초한다.
실시예 #2와 실시예 #1 간의 차이점은 다음과 같다:
- 크로마 잔차 스케일링 인자를 도출하기 위해 다수의 이웃 루마 샘플들이 검사된다.
- 이웃 루마 샘플들이 이용 가능하지 않을 때 또는 이웃 루마는 INTRA/CIIP/IBC 모드로 코딩되는 반면 현재 루마는 INTER 모드로 코딩될 때, 실시예 #2는 크로마 잔차 스케일링 인자 도출을 위해 디폴트 값을 사용한다.
8.7.5.4 크로마 샘플들에 대한 루마 의존적 크로마 잔차 스케일링 프로세스를 사용한 픽처 재구성
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 픽처의 좌측 상단 샘플을 기준으로 현재 변환 블록의 좌측 상단 샘플의 위치( xCurr, yCurr ),
- 변환 블록 폭을 지정하는 변수 nCurrSw,
- 변환 블록 높이를 지정하는 변수 nCurrSh,
- 현재 블록의 크로마 예측 샘플들을 지정하는 (nCurrSw)x(nCurrSh) 어레이 predSamples,
- 현재 블록의 크로마 잔차 샘플들을 지정하는 (nCurrSw)x(nCurrSh) 어레이 resSamples.
이 프로세스의 출력은 재구성된 크로마 픽처 샘플 어레이 recSamples이다.
현재 루마 위치( xTbY, yTbY )는 (xCurr << 1, yCurr << 1 )로 설정된다.
대응하는 루마 위치(xTbCorrY, yTbCorrY)는 다음과 같이 도출된다:
- tile_group_type이 2(I 타일 그룹)와 동일하고 qtbtt_dual_tree_intra_flag가 1과 동일한 경우, 대응하는 루마 위치( xTbCorrY, yTbCorrY )는 현재 루마 위치( xTbY, yTbY )의 좌측 상단 샘플을 커버하는 대응하는 CU의 좌측 상단 샘플 위치로 설정된다.
- 그렇지 않은 경우, 대응하는 루마 위치( xTbCorrY, yTbCorrY )가 현재 루마 위치( xTbY, yTbY)로 설정된다.
변수 availTL은 다음과 같이 도출된다:
- 6.4.X 절 [Ed. (BB): 이웃 블록 이용 가능성 검사 프로세스(추후 결정)]에 명시된 바와 같은 블록에 대한 좌측 상단 이웃 샘플 이용 가능성 도출 프로세스는 대응하는 루마 위치 ( xTbCorrY, yTbCorrY ) 및 이웃 루마 위치 ( xTbCorrY - 1, yTbCorrY  - 1 )를 입력들로 하여 호출되고, 출력은 availTL에 할당된다.
변수 availT는 다음과 같이 도출된다:
- 6.4.X 절 [Ed. (BB): 이웃 블록 이용 가능성 검사 프로세스(추후 결정)]에 명시된 바와 같은 블록에 대한 상단 이웃 샘플 이용 가능성 도출 프로세스는 대응하는 루마 위치 ( xTbCorrY, yTbCorrY ) 및 이웃 루마 위치 ( xTbCorrY, yTbCorrY  - 1 )를 입력들로 하여 호출되고, 출력은 availT에 할당된다.
numAvailNeigh는 availTL availT와 동일하게 설정된다.
- numAvailNeigh가 1보다 크거나 같은 경우, 이웃 루마 샘플들 pY[ x ][ y ](단, x = -1, 0, y = -1)는 위치 ( xTbCorrY + x, yTbCorrY + y )에서 디블로킹 필터 프로세스 이전에 재구성된 루마 샘플들의 평균값과 동일하게 설정된다. 이웃 루마 샘플들의 평균값 pY Avg 는 다음과 같이 도출된다:
Figure pct00089
그렇지 않고, 다음 조건들 중 하나가 참인 경우, pY Avg 는 (1 << (BitDepth Y -1))와 동일하게 설정된다.
- availTL은 false와 동일하다.
- CuPredMode[ xCurr ][ yCurr ]은 MODE_INTER와 동일하고 ciip_flag[ xCurr ][ yCurr ]은 0과 동일하며 CuPredMode[ xTbCorrY - 1 ][ yTbCorrY - 1 ]은 MODE_INTRA와 동일하다.
- CuPredMode[ xCurr ][ yCurr ]는 MODE_INTER와 동일하고 ciip_flag[ xCurr ][ yCurr ]은 0과 동일하며 CuPredMode[ xTbCorrY - 1 ][ yTbCorrY - 1 ]은 MODE_IBC와 동일하다.
- CuPredMode[ xCurr ][ yCurr ]는 MODE_INTER와 동일하고 ciip_flag[ xCurr ][ yCurr ]은 0과 동일하며 CuPredMode[ xTbCorrY - 1 ][ yTbCorrY - 1 ]은 MODE_INTER와 동일하고 ciip_flag[ xCurr ][ yCurr ]은 1과 동일하다,
이웃하는 좌측 상단 루마 샘플의 매핑된 값 pYMap Avg 는 다음과 같이 도출된다:
Figure pct00090
재구성된 크로마 픽처 샘플 recSamples는 i = 0..nCurrSw - 1, j = 0..nCurrSh - 1에 대해 다음과 같이 도출된다:
- tile_group_chroma_residual_scale_flag가 0과 동일하거나 nCurrSw * nCurrSh가 4보다 작거나 같은 경우, 다음이 적용된다:
Figure pct00091
- 그렇지 않은 경우(tile_group_chroma_residual_scale_flag가 1과 동일하고 nCurrSw * nCurrSh가 4보다 큰 경우), 다음이 적용된다:
- 변수 varScale의 도출을 위해, 다음과 같은 순서의 단계들이 적용된다:
- 변수 invAvgLuma는 다음과 같이 도출된다:
Figure pct00092
변수 idxYInv는 8.7.5.3.2 절에 명시된 바와 같이 invAvgLuma를 입력으로 하고 idxYInv를 출력으로 하여 구간별 함수 인덱스의 식별을 호출하는 것에 의해 도출된다.
변수 varScale은 다음과 같이 도출된다:
Figure pct00093
- recSamples는 다음과 같이 도출된다:
- tu_cbf_cIdx [ xCurr ][ yCurr ]이 1과 동일한 경우, 다음이 적용된다:
Figure pct00094
- 그렇지 않은 경우(tu_cbf_cIdx[ xCurr ][ yCurr ]이 0과 동일한 경우), 다음이 적용된다:
Figure pct00095
5.3 실시예 #3
아래의 실시예는 발명 설명의 항목 12 에서의 방법에 대한 것이다.
새로 추가된 부분들은 굵은 이탤릭체 로 강조 표시되고, VVC 작업 초안으로부터 삭제된 부분들은 이중 대괄호 [[ .. ]] 및 굵은 텍스트로 강조 표시되어 있다. 수정 사항들은 최신 VVC 작업 초안(JVET-M1007-v7)과 JVET-N220-v3.에서의 새로운 채택에 기초한다.
8.7.5.4 크로마 샘플들에 대한 루마 의존적 크로마 잔차 스케일링 프로세스를 사용한 픽처 재구성
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 픽처의 좌측 상단 샘플을 기준으로 현재 변환 블록의 좌측 상단 샘플의 위치( xCurr, yCurr ),
- 변환 블록 폭을 지정하는 변수 nCurrSw,
- 변환 블록 높이를 지정하는 변수 nCurrSh,
- 현재 블록의 크로마 예측 샘플들을 지정하는 (nCurrSw)x(nCurrSh) 어레이 predSamples,
- 현재 블록의 크로마 잔차 샘플들을 지정하는 (nCurrSw)x(nCurrSh) 어레이 resSamples.
이 프로세스의 출력은 재구성된 크로마 픽처 샘플 어레이 recSamples이다.
재구성된 크로마 픽처 샘플 recSamples는 i = 0..nCurrSw - 1, j = 0..nCurrSh - 1에 대해 다음과 같이 도출된다:
- slice_chroma_residual_scale_flag가 0과 동일하거나 nCurrSw * nCurrSh가 4보다 작거나 같은 경우, 다음이 적용된다:
Figure pct00096
- 그렇지 않은 경우(slice_chroma_residual_scale_flag가 1과 동일하고 nCurrSw * nCurrSh가 4보다 큰 경우), 다음이 적용된다:
- 변수 varScale의 도출을 위해, 다음과 같은 순서의 단계들이 적용된다:
[[
1. 변수 invAvgLuma는 다음과 같이 도출된다:
Figure pct00097
2. 변수 idxYInv는 8.7.5.3.2 절에 명시된 바와 같이 invAvgLuma를 입력으로 하고 idxYInv를 출력으로 하여 구간별 함수 인덱스의 식별을 호출하는 것에 의해 도출된다.
]]
3. 변수 varScale은 다음과 같이 도출된다:
Figure pct00098
- recSamples는 다음과 같이 도출된다:
- tu_cbf_cIdx [ xCurr ][ yCurr ]이 1과 동일한 경우, 다음이 적용된다:
Figure pct00099
- 그렇지 않은 경우(tu_cbf_cIdx[ xCurr ][ yCurr ]이 0과 동일한 경우), 다음이 적용된다:
Figure pct00100
5.4 실시예 #4
아래의 실시예는 발명 설명의 항목 12 에서의 방법에 대한 것이다.
새로 추가된 부분들은 굵은 이탤릭체 로 강조 표시되고, VVC 작업 초안으로부터 삭제된 부분들은 이중 대괄호 [[ .. ]]로 강조 표시되어 있다. 수정 사항들은 최신 VVC 작업 초안(JVET-M1007-v7)과 JVET-N220-v3에서의 새로운 채택에 기초한다.
8.7.5.4 크로마 샘플들에 대한 루마 의존적 크로마 잔차 스케일링 프로세스를 사용한 픽처 재구성
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 픽처의 좌측 상단 샘플을 기준으로 현재 변환 블록의 좌측 상단 샘플의 위치( xCurr, yCurr ),
- 변환 블록 폭을 지정하는 변수 nCurrSw,
- 변환 블록 높이를 지정하는 변수 nCurrSh,
- 현재 블록의 크로마 예측 샘플들을 지정하는 (nCurrSw)x(nCurrSh) 어레이 predSamples,
- 현재 블록의 크로마 잔차 샘플들을 지정하는 (nCurrSw)x(nCurrSh) 어레이 resSamples.
이 프로세스의 출력은 재구성된 크로마 픽처 샘플 어레이 recSamples이다.
재구성된 크로마 픽처 샘플 recSamples는 i = 0..nCurrSw - 1, j = 0..nCurrSh - 1에 대해 다음과 같이 도출된다:
- slice_chroma_residual_scale_flag가 0과 동일하거나 nCurrSw * nCurrSh가 4보다 작거나 같은 경우, 다음이 적용된다:
Figure pct00101
- 그렇지 않은 경우(slice_chroma_residual_scale_flag가 1과 동일하고 nCurrSw * nCurrSh가 4보다 큰 경우), 다음이 적용된다:
- 변수 varScale의 도출을 위해, 다음과 같은 순서의 단계들이 적용된다:
1. 변수 invAvgLuma는 다음과 같이 도출된다:
Figure pct00102
2. 변수 idxYInv는 8.7.5.3.2 절에 명시된 바와 같이 invAvgLuma를 입력으로 하고 idxYInv를 출력으로 하여 구간별 함수 인덱스의 식별을 호출하는 것에 의해 도출된다.
3. 변수 varScale은 다음과 같이 도출된다:
Figure pct00103
- recSamples는 다음과 같이 도출된다:
- tu_cbf_cIdx [ xCurr ][ yCurr ]이 1과 동일한 경우, 다음이 적용된다:
Figure pct00104
- 그렇지 않은 경우(tu_cbf_cIdx[ xCurr ][ yCurr ]이 0과 동일한 경우), 다음이 적용된다:
Figure pct00105
5.5 실시예 #5
아래의 실시예는 발명 설명의 항목 12 에서의 방법에 대한 것이다.
새로 추가된 부분들은 굵은 이탤릭체 로 강조 표시되고, VVC 작업 초안으로부터 삭제된 부분들은 이중 대괄호 [[ .. ]]로 강조 표시되어 있다. 수정 사항들은 최신 VVC 작업 초안(JVET-M1007-v7)과 JVET-N220-v3에서의 새로운 채택에 기초한다.
7.4.5.4 LMCS(luma mapping with chroma scaling) 데이터 시맨틱스
변수 ChromaScaleCoeff[ i ](단, i = 0...15)는 다음과 같이 도출된다:
Figure pct00106
변수 varScale은 다음과 같이 도출된다:
Figure pct00107
8.7.5.4 크로마 샘플들에 대한 루마 의존적 크로마 잔차 스케일링 프로세스를 사용한 픽처 재구성
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 픽처의 좌측 상단 샘플을 기준으로 현재 변환 블록의 좌측 상단 샘플의 위치( xCurr, yCurr ),
- 변환 블록 폭을 지정하는 변수 nCurrSw,
- 변환 블록 높이를 지정하는 변수 nCurrSh,
- 현재 블록의 크로마 예측 샘플들을 지정하는 (nCurrSw)x(nCurrSh) 어레이 predSamples,
- 현재 블록의 크로마 잔차 샘플들을 지정하는 (nCurrSw)x(nCurrSh) 어레이 resSamples.
이 프로세스의 출력은 재구성된 크로마 픽처 샘플 어레이 recSamples이다.
재구성된 크로마 픽처 샘플 recSamples는 i = 0..nCurrSw - 1, j = 0..nCurrSh - 1에 대해 다음과 같이 도출된다:
- slice_chroma_residual_scale_flag가 0과 동일하거나 nCurrSw * nCurrSh가 4보다 작거나 같은 경우, 다음이 적용된다:
Figure pct00108
- 그렇지 않은 경우(slice_chroma_residual_scale_flag가 1과 동일하고 nCurrSw * nCurrSh가 4보다 큰 경우), 다음이 적용된다:
- [[
- 변수 varScale의 도출을 위해, 다음과 같은 순서의 단계들이 적용된다:
1. 변수 invAvgLuma는 다음과 같이 도출된다:
Figure pct00109
2. 변수 idxYInv는 8.7.5.3.2 절에 명시된 바와 같이 invAvgLuma를 입력으로 하고 idxYInv를 출력으로 하여 구간별 함수 인덱스의 식별을 호출하는 것에 의해 도출된다.
3. 변수 varScale은 다음과 같이 도출된다:
Figure pct00110
]]
- recSamples는 다음과 같이 도출된다:
- tu_cbf_cIdx [ xCurr ][ yCurr ]이 1과 동일한 경우, 다음이 적용된다:
Figure pct00111
- 그렇지 않은 경우(tu_cbf_cIdx[ xCurr ][ yCurr ]이 0과 동일한 경우), 다음이 적용된다:
Figure pct00112
5.6 실시예 #6
아래의 실시예는 이전 섹션에서의 목록의 항목 19 에서의 방법에 대한 것이다.
JVET-N1001-v8에 명시된 작업 초안은 아래와 같이 변경될 수 있다(강조 표시를 위해 밑줄 또는 굵은 이텔릭체가 사용되고, 삭제를 위해 취소선이 사용됨).
7.3.5.4 LMCS(luma mapping with chroma scaling) 데이터 신택스
Figure pct00113
7.4.6.4 LMCS(luma mapping with chroma scaling) 데이터 시맨틱스
lmcs_crs_fixed_bin_idx 는 크로마 스케일링 인자를 도출하기 위해 LMCS(luma mapping with chroma scaling) 구성 프로세스에서 사용되는 빈 인덱스를 지정한다. lmcs_crs_fixed_bin_idx 의 값은 0 내지 15(경계 포함)의 범위에 있어야 한다.
...
변수 ChromaScaleCoeff[ i ](단, i = 0...15)는 다음과 같이 도출된다:
Figure pct00114
변수 varScale은 다음과 같이 도출된다:
varScale = ChromaScaleCoeff[ lmcs_crs_fixed_bin_idx ]
8.7.5.3 크로마 샘플들에 대한 루마 의존적 크로마 잔차 스케일링 프로세스를 사용한 픽처 재구성
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 픽처의 좌측 상단 샘플을 기준으로 현재 변환 블록의 좌측 상단 샘플의 위치( xCurr, yCurr ),
- 변환 블록 폭을 지정하는 변수 nCurrSw,
- 변환 블록 높이를 지정하는 변수 nCurrSh,
- 현재 크로마 변환 블록의 코딩된 블록 플래그를 지정하는 변수 tuCbfChroma,
- 현재 블록의 크로마 예측 샘플들을 지정하는 (nCurrSw)x(nCurrSh) 어레이 predSamples,
- 현재 블록의 크로마 잔차 샘플들을 지정하는 (nCurrSw)x(nCurrSh) 어레이 resSamples.
이 프로세스의 출력은 재구성된 크로마 픽처 샘플 어레이 recSamples이다.
재구성된 크로마 픽처 샘플 recSamples는 i = 0..nCurrSw - 1, j = 0..nCurrSh - 1에 대해 다음과 같이 도출된다:
- 다음 조건들 중 하나가 참인 경우, recSamples[ xCurr + i ][ yCurr + j ]는 Clip1C ( predSamples[ i ][ j ] + resSamples[ i ][ j ] )와 동일하게 설정된다
- slice_chroma_residual_scale_flag가 0과 동일하다
- nCurrSw * nCurrSh가 4보다 작거나 같다
- tu_cbf_cb [ xCurr ][ yCurr ]이 0과 동일하고 tu_cbf_cr [ xCurr ][ yCurr ]이 0과 동일하다
- 그렇지 않은 경우, 다음이 적용된다:
- [[
- 변수 varScale의 도출을 위해, 다음과 같은 순서의 단계들이 적용된다:
1. 변수 invAvgLuma는 다음과 같이 도출된다:
Figure pct00115
2. 변수 idxYInv는 invAvgLuma와 동일하게 설정된 변수 lumaSample을 입력으로 하고 idxYInv를 출력으로 하여 8.8.2.3절에 명시된 바와 같이 루마 샘플에 대한 구간별 함수 인덱스 프로세스의 식별을 호출하는 것에 의해 도출된다.
3. 변수 varScale은 다음과 같이 도출된다:
varScale = ChromaScaleCoeff[ idxYInv]
]]
- recSamples는 다음과 같이 도출된다:
- tuCbfChroma가 1과 동일한 경우, 다음이 적용된다:
Figure pct00116
- 그렇지 않은 경우(tu_cbf가 0과 동일한 경우), 다음이 적용된다:
recSamples[ xCurr + i ][ yCurr + j ] = Clip1C(predSamples[ i ][ j ] )
5.7 실시예 #7
아래의 실시예는 발명 설명의 항목 12 에서의 방법에 대한 것이다.
JVET-N1001-v8에 명시된 작업 초안은 아래와 같이 변경될 수 있다.
7.4.6.4 LMCS(luma mapping with chroma scaling) 데이터 시맨틱스
변수 ChromaScaleCoeff[ i ](단, i = 0...15)는 다음과 같이 도출된다:
Figure pct00117
변수 varScale은 다음과 같이 도출된다:
varScale = ChromaScaleCoeff[ (lmcs_min_bin_idx + LmcsMaxBinIdx) >> 1]
8.7.5.3 크로마 샘플들에 대한 루마 의존적 크로마 잔차 스케일링 프로세스를 사용한 픽처 재구성
이 프로세스에 대한 입력들은 다음과 같다:
- 현재 픽처의 좌측 상단 샘플을 기준으로 현재 변환 블록의 좌측 상단 샘플의 위치( xCurr, yCurr ),
- 변환 블록 폭을 지정하는 변수 nCurrSw,
- 변환 블록 높이를 지정하는 변수 nCurrSh,
- 현재 크로마 변환 블록의 코딩된 블록 플래그를 지정하는 변수 tuCbfChroma,
- 현재 블록의 크로마 예측 샘플들을 지정하는 (nCurrSw)x(nCurrSh) 어레이 predSamples,
- 현재 블록의 크로마 잔차 샘플들을 지정하는 (nCurrSw)x(nCurrSh) 어레이 resSamples.
이 프로세스의 출력은 재구성된 크로마 픽처 샘플 어레이 recSamples이다.
재구성된 크로마 픽처 샘플 recSamples는 i = 0..nCurrSw - 1, j = 0..nCurrSh - 1에 대해 다음과 같이 도출된다:
- 다음 조건들 중 하나가 참인 경우, recSamples[ xCurr + i ][ yCurr + j ]는 Clip1C ( predSamples[ i ][ j ] + resSamples[ i ][ j ] )와 동일하게 설정된다
- slice_chroma_residual_scale_flag가 0과 동일하다
- nCurrSw * nCurrSh가 4보다 작거나 같다
- tu_cbf_cb [ xCurr ][ yCurr ]이 0과 동일하고 tu_cbf_cr [ xCurr ][ yCurr ]이 0과 동일하다
- 그렇지 않은 경우, 다음이 적용된다:
- [[
- 변수 varScale의 도출을 위해, 다음과 같은 순서의 단계들이 적용된다:
1. 변수 invAvgLuma는 다음과 같이 도출된다:
Figure pct00118
2. 변수 idxYInv는 invAvgLuma와 동일하게 설정된 변수 lumaSample을 입력으로 하고 idxYInv를 출력으로 하여 8.8.2.3절에 명시된 바와 같이 루마 샘플에 대한 구간별 함수 인덱스 프로세스의 식별을 호출하는 것에 의해 도출된다.
3. 변수 varScale은 다음과 같이 도출된다:
varScale = ChromaScaleCoeff[ idxYInv]
]]
- recSamples는 다음과 같이 도출된다:
- tuCbfChroma가 1과 동일한 경우, 다음이 적용된다:
Figure pct00119
- 그렇지 않은 경우(tu_cbf가 0과 동일한 경우), 다음이 적용된다:
recSamples[ xCurr + i ][ yCurr + j ] = Clip1C(predSamples[ i ][ j ] )
6. 개시된 기술의 예시적인 구현들
도 10은 비디오 프로세싱 장치(1000)의 블록 다이어그램이다. 장치(1000)는 본 명세서에 설명된 방법들 중 하나 이상을 구현하는 데 사용될 수 있다. 장치(1000)는 스마트폰, 태블릿, 컴퓨터, IoT(Internet of Things) 수신기 등에 구체화될 수 있다. 장치(1000)는 하나 이상의 프로세서(1002), 하나 이상의 메모리(1004) 및 비디오 프로세싱 하드웨어(1006)를 포함할 수 있다. 프로세서(들)(1002)는 본 문서에 설명된 하나 이상의 방법(방법들(800 및 900)을 포함하지만 이에 제한되지 않음)을 구현하도록 구성될 수 있다. 메모리(메모리들)(1004)는 본 명세서에 설명된 방법들 및 기술들을 구현하는 데 사용되는 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 프로세싱 하드웨어(1006)는, 하드웨어 회로로, 본 문서에 설명된 일부 기술들을 구현하는 데 사용될 수 있다.
일부 실시예들에서, 비디오 코딩 방법들은 도 10와 관련하여 설명된 바와 같이 하드웨어 플랫폼 상에서 구현되는 장치를 사용하여 구현될 수 있다.
도 11은 개시된 기술에 따른 교차 성분 예측을 위한 선형 모델 도출을 위한 예시적인 방법(1100)의 플로차트를 도시한다. 방법(1100)은, 단계(1110)에서, 현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서, 변환 동안, 현재 비디오 블록의 제2 컬러 성분 값 세트는 하나 이상의 참조 프레임에 포함된 제1 컬러 성분 값 세트로부터 도출되고, 여기서 제1 컬러 성분 값 세트는 비디오 코딩 단계의 선형 모델에서 사용 가능하다.
일부 실시예들은 이하의 조항 기반 포맷을 사용하여 설명될 수 있다.
1. 비디오 프로세싱을 위한 방법으로서,
현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 변환 동안, 현재 비디오 블록의 제2 컬러 성분 값 세트는 하나 이상의 참조 프레임에 포함된 제1 컬러 성분 값 세트로부터 도출되고, 제1 컬러 성분 값 세트는 비디오 코딩 단계의 선형 모델에서 사용 가능한, 방법.
2. 조항 1의 방법으로서, 제1 컬러 성분 값 세트는 비디오 코딩 단계의 선형 모델에서 사용하기 전에 보간되는, 방법.
3. 조항 1 내지 조항 2 중 어느 하나 이상의 조항의 방법으로서, 제1 컬러 성분 값 세트의 선형 결합이 선형 모델에서 파라미터들로서 사용 가능한, 방법.
4. 조항 1의 방법으로서, 하나 이상의 참조 프레임에 포함된 제1 컬러 성분 값 세트의 위치들은 현재 비디오 블록의 모션 정보에, 적어도 부분적으로, 기초하여 선택되는, 방법.
5. 조항 4의 방법으로서, 하나 이상의 참조 프레임에서의 루마 성분 값의 위치는 현재 비디오 블록에서의 대응하는 루마 성분 값의 위치 및 현재 비디오 블록의 모션 정보로부터 계산되는, 방법.
6. 조항 5의 방법으로서, 대응하는 루마 성분 값의 위치는 현재 비디오 블록에서의 좌측 상단 샘플, 중앙 샘플, 또는 우측 하단 샘플인, 방법.
7. 조항 6의 방법으로서, 현재 비디오 블록의 모션 정보는 정수 모션 벡터 또는 분수 모션 벡터에 대응하는, 방법.
8. 조항 7의 방법으로서, 분수 모션 벡터는 하나 이상의 참조 프레임에서의 분수 루마 성분 값을 사용하여 도출되는, 방법.
9. 조항 7의 방법으로서, 정수 모션 벡터는 0을 향해 또는 0에서 멀어지게 반올림하는 것에 의해 도출되는, 방법.
10. 조항 1의 방법으로서, 하나 이상의 참조 프레임에 포함된 제1 컬러 성분 값 세트의 위치들은 미리 정의된 위치들인, 방법.
11. 조항 1 내지 조항 10 중 어느 하나 이상의 조항의 방법으로서, 제1 컬러 성분 값 세트의 중앙값 또는 평균이 현재 비디오 블록의 제2 컬러 성분 값 세트를 도출하는 데 사용되는, 방법.
12. 조항 1 내지 조항 11 중 어느 하나 이상의 조항의 방법으로서, 하나 이상의 참조 프레임은 미리 정의된 참조 프레임들인, 방법.
13. 조항 12의 방법으로서, 미리 정의된 참조 프레임들은 참조 픽처 리스트의 참조 인덱스를 갖는 프레임을 포함하는, 방법.
14. 조항 13의 방법으로서, 참조 인덱스는 0이고 참조 픽처 리스트는 0인, 방법.
15. 조항 13의 방법으로서, 참조 인덱스 및/또는 참조 픽처 리스트는 시퀀스, 픽처, 타일, 그룹, 슬라이스, 타일, 코딩 트리 유닛 행, 또는 비디오 블록 중 하나 이상과 연관된 비트스트림 표현에서 시그널링되는, 방법.
16. 조항 1의 방법으로서, 현재 비디오 블록의 제2 컬러 성분 값 세트는 하나 이상의 참조 프레임에 포함된 제1 컬러 성분 값 세트의 수학적 평균 또는 가중 평균으로부터 도출되는, 방법.
17. 조항 1의 방법으로서, 현재 비디오 블록의 제2 컬러 성분 값 세트는, 현재 비디오 블록이 양방향 예측 코딩된 블록인지 여부에 기초하여, 하나 이상의 참조 프레임에 포함된 제1 컬러 성분 값 세트로부터 선택적으로 도출되는, 방법.
18. 조항 17의 방법으로서, 현재 비디오 블록의 제2 컬러 성분 값 세트는 제1 컬러 성분 값 세트의 각각의 예측 방향에 대해 개별적으로 도출되는, 방법.
19. 조항 1의 방법으로서, 현재 비디오 블록의 제2 컬러 성분 값 세트는, 현재 비디오 블록이 서브블록 기반 예측과 연관되는지 여부에 기초하여, 하나 이상의 참조 프레임에 포함된 제1 컬러 성분 값 세트로부터 선택적으로 도출되는, 방법.
20. 조항 1의 방법으로서, 서브블록 기반 예측은 아핀 예측 또는 ATMVP(alternative temporal motion vector prediction)에 대응하는, 방법.
21. 조항 19 내지 조항 20 중 어느 하나 이상의 조항의 방법으로서, 현재 비디오 블록의 제2 컬러 성분 값 세트는 개별 서브블록들에 대해 도출되는, 방법.
22. 조항 19 내지 조항 21 중 어느 하나 이상의 조항의 방법으로서, 현재 비디오 블록의 제2 컬러 성분 값 세트는 서브블록 기반 예측에 관계없이 현재 비디오 블록 전체에 대해 도출되는, 방법.
23. 조항 19 내지 조항 22 중 어느 하나 이상의 조항의 방법으로서, 하나 이상의 참조 프레임에 포함된 제1 컬러 성분 값 세트는 현재 비디오 블록의 서브블록의 모션 벡터에, 적어도 부분적으로, 기초하여 선택되는, 방법.
24. 조항 1 내지 조항 23 중 어느 하나 이상의 조항의 방법으로서, 하나 이상의 참조 프레임에 포함된 제1 컬러 성분 값 세트는 중간 컬러 성분 값들인, 방법.
25. 조항 1 내지 조항 24 중 어느 하나 이상의 조항의 방법으로서, 비디오 코딩 단계가 다른 비디오 코딩 단계에 선행하는, 방법.
26. 조항 25의 방법으로서, 하나 이상의 참조 프레임에 포함된 제1 컬러 성분 값 세트는 현재 비디오 블록 또는 현재 비디오 블록의 서브블록의 중간 모션 벡터에, 적어도 부분적으로, 기초하여 선택되고, 중간 모션 벡터는 다른 비디오 코딩 단계 이전에 계산되는, 방법.
27. 조항 24 내지 조항 26 중 어느 하나 이상의 조항의 방법으로서, 다른 비디오 코딩 단계는 다음 단계들: BDOF(Bi-Directional Optical Flow) 단계, DMVR(decoder-side motion vector refinement) 단계, PROF(prediction refinement optical flow) 단계 중 하나 또는 그 조합을 포함하는, 방법.
28. 조항 1 내지 조항 27 중 어느 하나 이상의 조항의 방법으로서, 하나 이상의 참조 프레임에 포함된 제1 컬러 성분 값 세트는 대응하는 루마 블록과 연관된 MxN 루마 성분 값들에 대응하는, 방법.
29. 조항 28의 방법으로서, 대응하는 루마 블록은 현재 비디오 블록의 동일 위치 루마 블록인, 방법.
30. 조항 29의 방법으로서, M과 N의 곱은 현재 비디오 블록의 동일 위치 루마 블록의 블록 폭과 블록 높이의 곱보다 작은, 방법.
31. 조항 27 내지 조항 30 중 어느 하나 이상의 조항의 방법으로서, 하나 이상의 참조 프레임에 포함된 제1 컬러 성분 값 세트는 동일 위치 루마 블록의 이웃 루마 샘플들의 위치들에서 식별되는 참조 샘플들의 적어도 일 부분에 대응하는, 방법.
32. 조항 1 내지 조항 31 중 어느 하나 이상의 조항의 방법으로서, 제1 컬러 성분 값 세트는 비디오 코딩 단계의 선형 모델에서 사용하기 전에 다운샘플링되는, 방법.
33. 조항 1의 방법으로서, 현재 비디오 블록의 제2 컬러 성분 값 세트는 현재 비디오 블록의 다음 정보: 양자화 파라미터, 코딩 모드, 또는 픽처 순서 카운트(POC) 중 하나 이상에, 적어도 부분적으로, 기초하여 선택되는, 방법.
34. 조항 31의 방법으로서, 이웃 루마 샘플들의 위치들은 동일 위치 루마 블록의 좌측 상단 샘플이 커버되도록 되어 있는, 방법.
35. 조항 28의 방법으로서, 하나 이상의 참조 프레임에 포함된 제1 컬러 성분 값 세트는 대응하는 루마 블록 외부의 위치들에서 식별되는 참조 샘플들의 적어도 일 부분에 대응하는, 방법.
36. 조항 28의 방법으로서, 현재 비디오 블록의 제2 컬러 성분 값 세트는, 대응하는 루마 블록의 이웃 샘플들의 이용 가능성에 기초하여, 하나 이상의 참조 프레임에 포함된 제1 컬러 성분 값 세트로부터 선택적으로 도출되는, 방법.
37. 조항 28의 방법으로서, 대응하는 루마 블록의 이웃 샘플들의 이용 가능성은 현재 비디오 블록의 코딩 모드의 사용, 대응하는 루마 블록의 이웃 샘플들의 코딩 모드의 사용, 대응하는 루마 블록의 코딩 모드의 사용, 하나 이상의 이웃 비디오 블록의 코딩 모드의 사용, 대응하는 루마 블록의 이웃 샘플들과 연관된 필터의 유형의 사용, 또는 현재 비디오 블록들 또는 그의 서브블록들을 기준으로 대응하는 루마 블록의 이웃 샘플들의 위치 중 하나 이상에 기초하는, 방법.
38. 조항 28의 방법으로서,
대응하는 루마 블록의 이웃 샘플들의 이용 가능성의 결여에 응답하여, 이용 불가능한 샘플들을 다른 샘플들로 대체하거나, 채우거나, 또는 패딩하는 단계를 더 포함하는, 방법.
39. 조항 28의 방법으로서,
대응하는 루마 블록에 이웃하는 샘플들에 평활화 필터를 적용하는 단계를 더 포함하는, 방법.
40. 비디오 프로세싱을 위한 방법으로서,
현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 변환을 수행하는 단계 - 변환 동안, 현재 비디오 블록의 제2 컬러 성분 값 세트는 하나 이상의 참조 프레임에 포함된 제1 컬러 성분 값 세트로부터 도출되고, 제1 컬러 성분 값 세트는 비디오 코딩 단계의 선형 모델에서 사용 가능함 -; 및
하나 이상의 참조 프레임에 포함된 제1 컬러 성분 값 세트가 현재 비디오 블록의 동일 위치 루마 블록이라고 결정하는 것에 응답하여, 현재 비디오 블록의 동일 위치 루마 블록과 연관된 하나 이상의 조건에 기초하여, 현재 비디오 블록의 제2 컬러 성분 값 세트의 도출을 선택적으로 인에이블 또는 디스에이블시키는 단계를 포함하는, 방법.
41. 조항 40의 방법으로서, 현재 비디오 블록의 동일 위치 루마 블록과 연관된 하나 이상의 조건은: 동일 위치 루마 블록의 분할 크기, 동일 위치 루마 블록의 코딩 유닛들의 수가 임계 수를 달성하는 것, 동일 위치 루마 블록의 좌측 상단 루마 샘플이 임계 크기를 달성하는 것, 동일 위치 루마 블록의 분할 트리 깊이, 대응하는 루마 블록이 동일 위치 루마 블록의 좌측 상단 루마 샘플을 커버하는 것, 동일 위치 루마 블록 또는 현재 비디오 블록의 치수, 또는 대응하는 루마 블록이 동일 위치 루마 블록의 좌측 상단 루마 샘플을 커버하고 미리 정의된 크기의 경계 상자 내에 추가로 포함되는 것을 포함하는, 방법.
42. 조항 40의 방법으로서, 도출을 선택적으로 인에이블 또는 디스에이블시키는 것을 표시하는 정보는 비트스트림 표현에 포함되는, 방법.
43. 조항 28의 방법으로서, 대응하는 루마 블록의 이웃 샘플들의 이용 가능성은 미리 정의된 순서에 따라 이웃 샘플들에 대해 검사하는 것과 연관되는, 방법.
44. 조항 41의 방법으로서, 동일 위치 루마 블록 및 현재 비디오 블록은 동일한 코딩 트리 유닛 또는 코딩 트리 유닛의 동일한 행과 연관되는, 방법.
45. 비디오 프로세싱을 위한 방법으로서,
현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 변환을 수행하는 단계 - 변환 동안, 현재 비디오 블록의 제2 컬러 성분 값 세트는 하나 이상의 참조 프레임에 포함된 제1 컬러 성분 값 세트로부터 도출되고, 제1 컬러 성분 값 세트는 비디오 코딩 단계의 선형 모델에서 사용 가능함 -; 및
현재 비디오 블록 또는 현재 비디오 블록의 이웃 비디오 블록들의 하나 이상의 속성이 충족된다고 결정하는 것에 응답하여, 현재 비디오 블록의 제2 컬러 성분 값 세트의 도출을 선택적으로 인에이블 또는 디스에이블시키는 단계를 포함하는, 방법.
46. 조항 45의 방법으로서, 현재 비디오 블록 또는 현재 비디오 블록의 이웃 비디오 블록들의 하나 이상의 속성은 현재 비디오 블록의 공간적 위치를 기준으로 공간적 위치를 커버하는 이웃 루마 블록에 대응하는, 방법.
47. 조항 45의 방법으로서, 현재 비디오 블록 또는 현재 비디오 블록의 이웃 비디오 블록들의 하나 이상의 속성은 현재 비디오 블록의 공간적 위치를 기준으로 현재 비디오 블록의 이웃 비디오 블록들의 공간적 위치들에 대응하는, 방법.
48. 조항 45의 방법으로서,
이웃 비디오 블록들의 재구성들이 현재 비디오 블록의 코딩 모드에, 적어도 부분적으로, 기초한다고 결정하는 것에 응답하여, 현재 비디오 블록의 제2 컬러 성분 값 세트의 도출을 디스에이블시키는 단계를 더 포함하는, 방법.
49. 조항 45의 방법으로서,
현재 비디오 블록이 인터 코딩된 블록이고 인터 및 인트라 결합 예측 코딩된 블록이 아니며, 현재 비디오 블록의 대응하는 루마 블록에 이웃하는 블록이 인트라 코딩된 블록, 인터 및 인트라 결합 예측(CIIP) 블록, 또는 인트라 블록 복사(IBC) 코딩된 블록이라고 결정하는 것에 응답하여, 현재 비디오 블록의 제2 컬러 성분 값 세트의 도출을 디스에이블시키는 단계를 더 포함하는, 방법.
50. 조항 45의 방법으로서,
현재 비디오 블록이 인터 코딩된 블록이고 인터 및 인트라 결합 예측 코딩된 블록이 아니며, 현재 비디오 블록의 대응하는 루마 블록에 이웃하는 블록이 인트라 코딩된 블록, 인터 및 인트라 결합 예측(CIIP) 블록, 또는 인트라 블록 복사(IBC) 코딩된 블록이라고 결정하는 것에 응답하여, 현재 비디오 블록의 제2 컬러 성분 값 세트의 도출을 인에이블시키는 단계를 더 포함하며, 제1 컬러 성분 값 세트는 고정된 값들인, 방법.
51. 조항 45의 방법으로서, 제1 컬러 성분 값 세트는 고정된 값들인, 방법.
52. 조항 51의 방법으로서, 고정된 값들은 비디오 코딩 단계의 선형 모델의 구간별 인덱스에 대응하는, 방법.
53. 조항 1 내지 조항 52 중 어느 하나 이상의 조항의 방법으로서, 이웃 샘플들은 현재 비디오 블록에 인접하거나 인접하지 않을 수 있는, 방법.
54. 조항 1 내지 조항 52 중 어느 하나 이상의 조항의 방법으로서, 이웃 샘플들은 현재 비디오 블록에 이웃하는 크로마 블록들 또는 현재 비디오 블록에 이웃하는 크로마 블록들과 연관될 수 있는, 방법.
55. 조항 1 내지 조항 54 중 어느 하나 이상의 조항의 방법으로서, 현재 비디오 블록은 크로마 블록, 동일 위치 루마 블록, 또는 동일 위치 크로마 블록의 좌측 상단 루마 샘플을 커버하는 대응하는 루마 블록에 대응하는, 방법.
56. 조항 1 내지 조항 54 중 어느 하나 이상의 조항의 방법으로서, 현재 비디오 블록의 제2 컬러 성분 값 세트는 하나 이상의 다른 비디오 블록과 관련하여 사용하기 위해 저장되는, 방법.
57. 조항 1 내지 조항 56 중 어느 하나 이상의 조항의 방법으로서, 선형 모델은 교차 성분 선형 모델(CCLM)에 대응하고 비디오 코딩 단계는 LMCS(luma mapping with chroma scaling) 모드에 대응하는, 방법.
58. 조항 1 내지 조항 57 중 어느 하나 이상의 조항의 방법으로서, 현재 비디오 블록은 인터 코딩된 블록, 양방향 예측 코딩된 블록, 인터 및 인트라 결합 예측(CIIP) 블록, 또는 인트라 블록 복사(IBC) 코딩된 블록인, 방법.
59. 조항 1 내지 조항 58 중 어느 하나 이상의 조항의 방법으로서, 현재 비디오 블록의 제2 컬러 성분 값 세트는 비트스트림 표현에서 다른 비디오 블록들과 연관된 사용을 위해 저장되는, 방법.
60. 조항 59의 방법으로서, 현재 비디오 블록의 제2 컬러 성분 값 세트는 다른 비디오 블록들에 포함된 이웃 비디오 블록에 의한 선택적인 이용 가능성 또는 이용 불가능성을 위해 라인 버퍼에 저장되고, 현재 비디오 블록 및 이웃 비디오 블록은 상이한 슬라이스들, 타일들, 타일 그룹들, 코딩 트리 유닛들, 또는 코딩 트리 유닛들의 행들과 연관되는, 방법.
61. 조항 60의 방법으로서, 현재 비디오 블록의 제2 컬러 성분 값 세트는 고정된 값들인, 방법.
62. 조항 60의 방법으로서, 현재 비디오 블록의 제2 컬러 성분 값 세트의 도출이 방지되는, 방법.
63. 조항 59의 방법으로서, 현재 비디오 블록의 제2 컬러 성분 값 세트의 도출이 방지되는, 방법.
64. 조항 59의 방법으로서, 현재 비디오 블록의 제2 컬러 성분 값 세트는 다른 비디오 블록들에 포함된 이웃 비디오 블록에 의한 선택적인 이용 가능성 또는 이용 불가능성을 위해 테이블에 저장되는, 방법.
65. 조항 64의 방법으로서, 현재 비디오 블록의 제2 컬러 성분 값 세트는 동적으로 업데이트되는, 방법.
66. 조항 65의 방법으로서, 현재 비디오 블록의 제2 컬러 성분 값 세트는 다른 비디오 블록들에서의 이전 비디오 블록과 동일한, 방법.
67. 조항 64의 방법으로서, 현재 비디오 블록의 제2 컬러 성분 값 세트는 FIFO(first in first out) 방식으로 동적으로 업데이트되는, 방법.
68. 조항 1 내지 조항 67 중 어느 하나 이상의 조항의 방법으로서, 제1 컬러 성분 값 세트는 루마 샘플 값들에 대응하고 제2 컬러 성분 값 세트는 크로마 스케일링 인자들에 대응하는, 방법.
69. 비디오 프로세싱을 위한 방법으로서, 규칙에 기초하여, 적어도 2 개의 성분 블록을 포함하는 비디오 블록과 비디오 블록의 비트스트림 표현 사이의 변환을 위해 교차 성분 코덱 툴의 적용 가능성을 결정하는 단계; 및 교차 성분 코덱 툴을 선택적으로 사용하는 것에 의해 변환을 수행하는 단계를 포함하는, 방법.
70. 조항 69의 방법으로서, 규칙은 현재 비디오 블록의 치수에 기초하는, 방법.
71. 조항 69 내지 조항 70의 방법으로서, 규칙은 현재 비디오 블록의 분할 정보에 기초하는, 방법.
72. 조항 69 내지 조항 71 중 어느 조항의 방법으로서, 규칙은 현재 비디오 블록의 분할 트리 구조에 기초하는, 방법.
73. 조항 72의 방법으로서, 분할 트리 구조는 이중 트리 또는 단일 트리 중 하나인, 방법.
74. 조항 72의 방법으로서, 규칙은 현재 비디오 블록이 이중 트리 분할 트리 구조를 갖는 크로마 블록인 것으로 인해 교차 성분 코덱 툴을 디스에이블시키도록 지정하는, 방법.
75. 조항 69 내지 조항 74 중 어느 조항의 방법으로서, 규칙은 비트스트림 표현에서 교차 성분 코덱 툴의 신택스 요소들을 시그널링하는 것을 생략하는 것을 지정하는, 방법.
조항 69 내지 조항 75의 추가적인 예들 및 양태들은 섹션 4의 항목 15에 설명되어 있다.
76. 비디오 시스템에서의 장치로서, 프로세서 및 명령어들을 갖는 비일시적 메모리를 포함하며, 명령어들은, 프로세서에 의한 실행 시에, 프로세서로 하여금 조항 1 내지 조항 75 중 어느 하나의 조항에서의 방법을 구현하게 하는, 장치.
77. 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램 제품으로서, 컴퓨터 프로그램 제품은 조항 1 내지 조항 75 중 어느 하나의 조항에서의 방법을 수행하기 위한 프로그램 코드를 포함하는, 컴퓨터 프로그램 제품.
도 12는 본 명세서에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 프로세싱 시스템(1200)을 도시하는 블록 다이어그램이다. 다양한 구현들은 시스템(1200)의 컴포넌트들의 일부 또는 전부를 포함할 수 있다. 시스템(1200)은 비디오 콘텐츠를 수신하기 위한 입력(1202)을 포함할 수 있다. 비디오 콘텐츠는 원시 또는 압축되지 않은 포맷, 예를 들면, 8 또는 10 비트 다중 성분 픽셀 값들로 수신될 수 있거나, 또는 압축된 또는 인코딩된 포맷으로 되어 있을 수 있다. 입력(1202)은 네트워크 인터페이스, 주변기기 버스 인터페이스, 또는 스토리지 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예들은 이더넷, PON(passive optical network) 등과 같은 유선 인터페이스들 및 Wi-Fi 또는 셀룰러 인터페이스들과 같은 무선 인터페이스들을 포함한다.
시스템(1200)은 본 문서에 설명된 다양한 코딩 또는 인코딩 방법들을 구현할 수 있는 코딩 컴포넌트(1204)를 포함할 수 있다. 코딩 컴포넌트(1204)는 비디오의 코딩된 표현을 생성하기 위해 입력(1202)으로부터 코딩 컴포넌트(1204)의 출력으로의 비디오의 평균 비트레이트를 감소시킬 수 있다. 따라서 코딩 기술들은 때때로 비디오 압축 또는 비디오 트랜스코딩 기술들이라고 불린다. 코딩 컴포넌트(1204)의 출력은, 컴포넌트(1206)에 의해 표현된 바와 같이, 저장되거나 연결된 통신을 통해 전송될 수 있다. 입력(1202)에 수신되는 비디오의 저장된 또는 통신된 비트스트림(또는 코딩된) 표현은 디스플레이 인터페이스(1210)로 송신되는 픽셀 값들 또는 디스플레이 가능한 비디오를 생성하기 위해 컴포넌트(1208)에 의해 사용될 수 있다. 비트스트림 표현으로부터 사용자가 볼 수 있는 비디오를 생성하는 프로세스는 때때로 비디오 압축 해제라고 불린다. 게다가, 특정 비디오 프로세싱 동작들이 "코딩" 동작들 또는 툴들이라고 지칭되지만, 코딩 툴들 또는 동작들이 인코더에서 사용되고 코딩의 결과들을 반대로 행하는 대응하는 디코딩 툴들 또는 동작들은 디코더에 의해 수행될 것임이 이해될 것이다.
주변기기 버스 인터페이스 또는 디스플레이 인터페이스의 예들은 USB(universal serial bus) 또는 HDMI(high definition multimedia interface) 또는 Displayport 등을 포함할 수 있다. 스토리지 인터페이스들의 예들은 SATA(serial advanced technology attachment), PCI, IDE 인터페이스 등을 포함한다. 본 문서에서 설명되는 기술들은 디지털 데이터 프로세싱 및/또는 비디오 디스플레이를 수행할 수 있는 모바일 폰들, 랩톱들, 스마트폰들 또는 다른 디바이스들과 같은 다양한 전자 디바이스들에서 구체화될 수 있다.
도 13은 예시적인 비주얼 미디어 프로세싱 방법이다. 이 플로차트의 단계들은 이 문서의 섹션 4에서 예 19bii 내지 iv와 관련하여 논의된다. 단계(1302)에서, 프로세스는 비주얼 미디어 데이터의 현재 비디오 유닛과 현재 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하며, 여기서 비트스트림 표현은 포맷 규칙에 따라 구성되고; 여기서 포맷 규칙은 현재 비디오 유닛을 코딩하기 위해 크로마 잔차가 스케일링되는 정도인 스케일링 인자를 나타내는 하나 이상의 신택스 요소가 비트스트림 표현에 선택적으로 포함되는 비디오 세그먼트의 레벨을 지정한다.
도 14는 예시적인 비주얼 미디어 프로세싱 방법에 대한 플로차트이다. 이 플로차트의 단계들은 이 문서의 섹션 4에서 예 19e와 관련하여 논의된다. 단계(1402)에서, 프로세스는 하나 이상의 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비주얼 미디어 데이터와 비주얼 미디어 데이터의 비트스트림 표현 사이의 변환을 수행하며, 여기서 비트스트림 표현은 포맷 규칙을 준수하고, 여기서 포맷 규칙은 비디오 영역 내의 하나 이상의 비디오 블록이 변환의 루마 의존적 크로마 잔차 스케일링 단계에서 동일한 크로마 스케일링 인자를 갖는다는 것을 지정한다.
도 15는 예시적인 비주얼 미디어 프로세싱 방법에 대한 플로차트이다. 이 플로차트의 단계들은 이 문서의 섹션 4에서 예 20와 관련하여 논의된다. 단계(1502)에서, 프로세스는 비주얼 미디어 데이터의 현재 비디오 유닛과 비주얼 미디어 데이터의 비트스트림 표현 사이의 변환을 수행하며, 여기서 비트스트림 표현은 현재 비디오 유닛의 변환의 크로마 잔차 스케일링 단계와 연관된 스케일링 인자를 나타내는 비트스트림 표현 내의 하나 이상의 신택스 요소가 비트스트림 표현에 예측 코딩된다는 것을 지정하는 포맷 규칙을 준수한다.
본 문서의 일부 실시예들이 이제 조항 기반 포맷으로 제시되며 바람직하게는 이 실시예들 내에 통합될 수 있다.
1. 비주얼 미디어 프로세싱 방법으로서, 하나 이상의 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비주얼 미디어 데이터와 비주얼 미디어 데이터의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 비트스트림 표현은 포맷 규칙을 준수하고, 포맷 규칙은 비디오 영역 내의 하나 이상의 비디오 블록이 변환의 루마 의존적 크로마 잔차 스케일링 단계에서 동일한 크로마 스케일링 인자를 갖는다는 것을 지정하는, 방법.
2. 조항 1의 방법으로서, 비디오 영역은 가상 파이프라인 데이터 유닛(VPDU)인, 방법.
3. 조항 1의 방법으로서, 포맷 규칙은 동일한 크로마 스케일링 인자를 갖는 블록들의 총수가 신택스 요소에 의해 표시되거나 변환에서 도출된다는 것을 더 지정하는, 방법.
4. 조항 1 내지 조항 2 중 어느 조항의 방법으로서, 비디오 영역 내의 하나 이상의 블록은 비디오 영역 내의 모든 블록들에 대응하는, 방법.
5. 조항 1 내지 조항 4 중 어느 하나 이상의 조항의 방법으로서, 변환에서 사용되는 비트스트림 표현 내의 신택스 요소는 시퀀스 파라미터 세트(SPS) 레벨 및/또는 슬라이스 헤더 레벨 및/또는 타일 그룹 헤더 레벨 및/또는 픽처 파라미터 세트(PPS) 레벨 및/또는 픽처 헤더 레벨 및/또는 브릭 레벨 및/또는 코딩 트리 유닛(CTU) 행 레벨 및/또는 코딩 트리 유닛(CTU) 레벨 및/또는 코딩 유닛(CU) 레벨 및/또는 가상 파이프라인 데이터 유닛(VPDU) 레벨 및/또는 블록 레벨 중 하나에 포함되는, 방법.
6. 조항 1 내지 조항 5 중 어느 하나 이상의 조항의 방법으로서, 하나 이상의 비디오 영역 내의 적어도 2 개의 블록이 상이한 크로마 스케일링 인자들을 갖는다는 것을 검출하는 것에 응답하여, 포맷 규칙은 비트스트림 표현에 추가적인 신택스 요소들을 포함시키는 것을 더 지정하며, 추가적인 신택스 요소들은 적어도 2 개의 블록에 대한 상이한 크로마 스케일링 인자들을 도출하는 데 사용되는, 방법.
7. 조항 1의 방법으로서, 비디오 영역 내의 하나 이상의 비디오 블록이 변환의 루마 의존적 크로마 잔차 스케일링 단계에서 동일한 크로마 스케일링 인자를 갖는다는 것을 검출하는 것에 응답하여, 포맷 규칙은 동일한 크로마 스케일링 인자를 갖는 블록들의 총수를 나타내는 변환에서 사용되는 신택스 요소의 사용을 더 지정하는, 방법.
8. 조항 7의 방법으로서, 포맷 규칙은 신택스 요소의 이전 값이 신택스 요소의 현재 값을 도출하는 데 사용되도록 비트스트림 표현에 신택스 요소를 포함시키기 위해 예측 기술을 사용하는 것을 더 지정하는, 방법.
9. 조항 8의 방법으로서, 예측 기술은 동일한 크로마 스케일링 인자를 갖는 비디오 영역 내의 블록들의 총수를 사용하는 것을 포함하는, 방법.
10. 조항 6 내지 조항 9 중 어느 하나 이상의 조항의 방법으로서, 비트스트림 표현에 포함되는 신택스 요소는 비디오 영역의 레벨과 연관되고, 비디오 영역의 레벨은 시퀀스 파라미터 세트(SPS) 레벨 및/또는 슬라이스 헤더 레벨 및/또는 타일 그룹 헤더 레벨 및/또는 픽처 파라미터 세트(PPS) 레벨 및/또는 픽처 헤더 레벨 및/또는 브릭 레벨 및/또는 코딩 트리 유닛(CTU) 행 레벨 및/또는 코딩 트리 유닛(CTU) 레벨 및/또는 코딩 유닛(CU) 레벨 및/또는 가상 파이프라인 데이터 유닛(VPDU) 레벨 및/또는 블록 레벨 중 하나를 포함하는, 방법.
11. 조항 1 내지 조항 10 중 어느 하나 이상의 조항의 방법으로서, 비디오 영역 내의 하나 이상의 블록은 비주얼 미디어 데이터에서 고정 길이의 연속적인 간격으로 이격되고, 제2 블록이 제1 블록에 후속하여 디코딩되는 경우 제2 블록은 제1 블록에 연속적인 것으로 정의되는, 방법.
12. 조항 7의 방법으로서, 동일한 크로마 스케일링 인자를 갖는 블록들의 총수는 비디오 영역 내의 모든 블록들과 동일한, 방법.
13. 조항 7의 방법으로서, 동일한 크로마 스케일링 인자를 갖는 블록들의 총수는 [T1, T2]로서 표현되는 미리 정의된 범위에 있고, 여기서 T1 및 T2는 둘 모두 미리 정의된 범위에 포함되는, 방법.
14. 조항 13의 방법으로서, T1은 1과 동일하고 T2는 비디오 영역 내의 블록들의 총수와 동일한, 방법.
15. 조항 14의 방법으로서, 비트스트림 표현에 포함되는 신택스 요소는 범위 [T1, T2]에 기초하는, 방법.
16. 조항 15의 방법으로서, 비트스트림 표현에 포함되는 신택스 요소는 비디오 영역 내의 블록들의 총수와 T1의 차이에 대응하거나, 신택스 요소의 최댓값은 T1과 T2의 차이와 동일한, 방법.
17. 조항 13 내지 조항 16 중 어느 하나 이상의 조항의 방법으로서, 포맷 규칙은, 비트스트림 표현이 포맷 규칙을 준수하도록 하기 위해, 비디오 영역 내의 블록들의 총수가 비트스트림 적합성 제약을 충족시켜야 한다는 것을 더 지정하며, 비트스트림 적합성 제약은 비디오 영역 내의 블록들의 총수가 정의된 간격 내에 있어야 한다는 것을 지정하는, 방법.
18. 조항 7의 방법으로서, 포맷 규칙은, 동일한 스케일링 인자를 갖는 2 개의 비디오 유닛에 대해, 제1 비디오 유닛의 변환에서 사용되는 신택스 요소가 제2 비디오 유닛의 변환에서 사용되는 신택스 요소를 도출하는 데 사용되도록 비트스트림 표현에 신택스 요소를 포함시키기 위해 예측 기술을 사용하는 것을 더 지정하는, 방법.
19. 조항 7 내지 조항 18 중 어느 하나 이상의 조항의 방법으로서, 신택스 요소는 코딩 기술의 적용 후에 비트스트림 표현에 포함되는, 방법.
20. 조항 19의 방법으로서, 코딩 기술은 단항 코드, 절단된 단항 코드, 고정 길이 코드, 지수 골롬 코드, 또는 절단된 이진 코드 중 하나를 포함하는, 방법.
21. 조항 19의 방법으로서, 코딩 기술은 콘텍스트를 사용하지 않는 바이패스 코딩 또는 하나 또는 다수의 콘텍스트를 사용하는 산술 코딩 중 하나를 포함하는, 방법.
22. 조항 2 또는 조항 3의 방법으로서, 비디오 영역 내의 다수의 블록들이 변환의 루마 의존적 크로마 잔차 스케일링 단계에서 동일한 크로마 스케일링 인자를 갖는다는 것을 검출하는 것에 응답하여, 포맷 규칙은 비디오 영역을 나타내는 신택스 요소의 사용을 더 지정하는, 방법.
23. 조항 22의 방법으로서, 비디오 영역에 포함되는 다수의 블록들은 래스터 스캔 순서에 따라 배열되는, 방법.
24. 조항 23의 방법으로서, 비디오 영역은 다수의 블록들 중 첫 번째 것과 연관된 인덱스 및/또는 다수의 블록들 중 마지막 것과 연관된 인덱스 및/또는 다수의 블록들의 총 카운트를 사용하여 기술되는, 방법.
25. 조항 22 내지 조항 24 중 어느 하나 이상의 조항의 방법으로서, 비디오 영역은 직사각형 형상을 갖는 영역을 포함하고, 비디오 영역은 좌측 상단 블록과 연관된 인덱스 및 우측 하단 블록과 연관된 인덱스를 사용하여 기술되는, 방법.
26. 조항 22 내지 조항 24 중 어느 하나 이상의 조항의 방법으로서, 비디오 영역은 직사각형 형상을 갖는 영역을 포함하고, 비디오 영역은 직사각형 형상을 갖는 영역의 치수를 사용하여 기술되는, 방법.
27. 조항 22 내지 조항 26 중 어느 하나 이상의 조항의 방법으로서, 비디오 영역에 대응하는 인덱스는 비트스트림 표현에 신택스 요소로서 포함되는, 방법.
28. 조항 22 내지 조항 27 중 어느 하나 이상의 조항의 방법으로서, 직사각형 형상을 갖는 영역의 치수는 폭 및/또는 높이를 포함하고, 다수의 블록들의 총 카운트는 직사각형 형상을 갖는 영역의 폭과 높이의 곱보다 작은, 방법.
29. 조항 28의 방법으로서, 직사각형 형상을 갖는 영역의 폭은 직사각형 형상을 갖는 영역의 폭을 따른 방향으로 정렬되는 다수의 블록들의 수와 동일한, 방법.
30. 조항 28의 방법으로서, 직사각형 형상을 갖는 영역의 높이는 직사각형 형상을 갖는 영역의 높이를 따른 방향으로 정렬되는 다수의 블록들의 수와 동일한, 방법.
31. 조항 26 내지 조항 27 중 어느 하나 이상의 조항의 방법으로서, 직사각형 형상을 갖는 영역의 치수는 폭 및/또는 높이를 포함하며, 폭 및/또는 높이 각각은 [T1, T2]로서 표현되는 미리 정의된 범위에 있고, 여기서 T1 및 T2는 둘 모두 미리 정의된 범위에 포함되는, 방법.
32. 조항 31의 방법으로서, T1은 1과 동일하고 T2는 비디오 영역의 CTU 열에 있는 CTU들의 총수와 동일한, 방법.
33. 조항 31 내지 조항 32 중 어느 하나 이상의 조항의 방법으로서, 비트스트림 표현에 포함되는 신택스 요소는 범위 [T1, T2]에 기초하는, 방법.
34. 조항 33의 방법으로서, 비트스트림 표현에 포함되는 신택스 요소는 직사각형 형상을 갖는 영역의 폭과 T1의 차이에 대응하는, 방법.
35. 조항 33의 방법으로서, 비트스트림 표현에 포함되는 신택스 요소는 직사각형 형상을 갖는 영역의 높이와 T1의 차이에 대응하는, 방법.
36. 조항 34 내지 조항 35 중 어느 하나 이상의 조항의 방법으로서, 신택스 요소의 최댓값은 T1과 T2의 차이와 동일한, 방법.
37. 조항 31 내지 조항 36 중 어느 하나 이상의 조항의 방법으로서, 포맷 규칙은, 비트스트림 표현이 포맷 규칙을 준수하도록 하기 위해, 직사각형 형상을 갖는 영역의 치수가 폭 및/또는 높이를 포함하고, 폭 및/또는 높이 각각이 비트스트림 적합성 제약을 충족시켜야 한다는 것을 더 지정하며, 비트스트림 적합성 제약은 직사각형 형상을 갖는 영역의 치수가 폭 및/또는 높이를 포함하고, 폭 및/또는 높이 각각이 정의된 간격 내에 있어야 한다는 것을 지정하는, 방법.
38. 조항 37의 방법으로서, 포맷 규칙은 고정된 수가 신택스 요소를 예측하는 데 사용되도록 비트스트림 표현에 신택스 요소를 포함시키기 위해 예측 기술을 사용하는 것을 더 지정하는, 방법.
39. 조항 37의 방법으로서, 포맷 규칙은, 동일한 스케일링 인자를 갖는 직사각형 형상의 2 개의 비디오 영역에 대해, 제1 영역의 변환에서 사용되는 신택스 요소가 제2 영역의 변환에서 사용되는 신택스 요소를 도출하는 데 사용되도록 비트스트림 표현에 신택스 요소를 포함시키기 위해 예측 기술을 사용하는 것을 더 지정하는, 방법.
40. 조항 25 내지 조항 39 중 어느 하나 이상의 조항의 방법으로서, 신택스 요소는 코딩 기술의 적용 후에 비트스트림 표현에 포함되는, 방법.
41. 조항 40의 방법으로서, 코딩 기술은 단항 코드, 절단된 단항 코드, 고정 길이 코드, 지수 골롬 코드, 또는 절단된 이진 코드 중 하나를 포함하는, 방법.
42. 조항 40의 방법으로서, 코딩 기술은 콘텍스트를 사용하지 않는 바이패스 코딩 또는 하나 또는 다수의 콘텍스트를 사용하는 산술 코딩 중 하나를 포함하는, 방법.
43. 조항 37의 방법으로서, 제2 영역의 변환은 제1 영역의 변환 후에 순차적으로 수행되는, 방법.
44. 조항 39의 방법으로서, 코딩 트리 유닛들(CTU들)은 제1 영역 및 제2 영역과 연관되고, 제2 영역 내의 CTU들의 변환은 제1 영역 내의 CTU들의 변환과 인터리빙되는, 방법.
45. 조항 44의 방법으로서, 변환 순서는: 제1 영역의 제1 행에 있는 CTU들, 제2 영역의 제1 행에 있는 CTU들, 제1 영역의 제1 행에 있는 CTU들, 제2 영역의 제2 행에 있는 CTU들, 및 제1 영역의 제2 행에 있는 CTU들을 포함하는, 방법.
46. 조항 7의 방법으로서, 신택스 요소의 사용은 비트스트림 표현에 신택스 요소를 포함시키는 것에 대응하는, 방법.
47. 조항 1 내지 조항 3의 방법으로서, 포맷 규칙은 동일한 크로마 스케일링 인자를 갖는 블록들의 총수가 변환과 연관된 도출에 따라 계산되는 것을 더 지정하는, 방법.
48. 조항 46 내지 조항 47 중 어느 하나 이상의 조항의 방법으로서, 동일한 크로마 스케일링 인자를 갖는 블록들의 총수는 비디오 영역의 레벨에 있는, 방법.
49. 조항 48의 방법으로서, 변환과 연관된 도출은 비디오 블록의 크기에 기초하는, 방법.
50. 조항 48의 방법으로서, 변환과 연관된 도출은 비디오 블록의 크기 및 미리 정의된 수에 의존하는 최솟값 또는 최댓값 사이의 범위에 있는, 방법.
51. 조항 26의 방법으로서, 비디오 영역의 치수는 비디오 블록의 크기에 기초하는, 방법.
52. 조항 26의 방법으로서, 비디오 영역의 치수는 비디오 블록의 크기 및 미리 정의된 수에 의존하는 최솟값 또는 최댓값 사이에 있는, 방법.
53. 조항 50 또는 조항 52의 방법으로서, 미리 정의된 수는 64인, 방법.
54. 비주얼 미디어 프로세싱 방법으로서, 비주얼 미디어 데이터의 현재 비디오 유닛과 현재 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 비트스트림 표현은 포맷 규칙에 따라 구성되고; 포맷 규칙은 현재 비디오 유닛을 코딩하기 위해 크로마 잔차가 스케일링되는 정도인 스케일링 인자를 나타내는 하나 이상의 신택스 요소가 비트스트림 표현에 선택적으로 포함되는 비디오 세그먼트의 레벨을 지정하는, 방법.
55. 조항 54의 방법으로서, 포맷 규칙은 비디오 세그먼트가 비주얼 미디어 데이터의 가상 파이프라인 데이터 유닛(VPDU)에 대응한다는 것을 지정하는, 방법.
56. 조항 54의 방법으로서, 포맷 규칙은 비디오 세그먼트가 가상 파이프라인 데이터 유닛(VPDU) 및 코딩 트리 유닛(CTU) 중 작은 쪽에 대응한다는 것을 지정하는, 방법.
57. 조항 56의 방법으로서, VPDU의 폭이 W'이고 CTU의 폭이 W인 경우에, 비디오 세그먼트의 폭은 W 및 W'의 최솟값과 동일한, 방법.
58. 조항 54의 방법으로서, 포맷 규칙은, 현재 비디오 유닛의 크기가 가상 파이프라인 데이터 유닛(VPDU)의 크기보다 작은 경우에, 하나 이상의 신택스 요소가 현재 비디오 유닛 레벨에 포함된다는 것을 지정하는, 방법.
59. 조항 54의 방법으로서, 포맷 규칙은, 현재 비디오 유닛의 크기가 가상 파이프라인 데이터 유닛(VPDU)의 크기보다 큰 경우에, 하나 이상의 신택스 요소가 VPDU 레벨에 포함된다는 것을 지정하는, 방법.
60. 조항 54 내지 조항 59 중 어느 하나 이상의 조항의 방법으로서, 포맷 규칙은 하나 이상의 신택스 요소가 비디오 세그먼트의 레벨과 연관된 모든 비디오 유닛들에 대한 스케일링 인자들을 도출하는 데 사용된다는 것을 지정하는, 방법.
61. 조항 54 내지 조항 59 중 어느 하나 이상의 조항의 방법으로서, 포맷 규칙은 하나 이상의 신택스 요소가 비디오 세그먼트의 레벨과 연관된 비디오 유닛들의 서브세트에 대한 스케일링 인자들을 도출하는 데 사용된다는 것을 지정하는, 방법.
62. 조항 54 내지 조항 61 중 어느 하나 이상의 조항의 방법으로서, 비디오 세그먼트의 레벨은 시퀀스 파라미터 세트(SPS) 레벨 및/또는 슬라이스 헤더 레벨 및/또는 타일 그룹 헤더 레벨 및/또는 픽처 파라미터 세트(PPS) 레벨 및/또는 픽처 헤더 레벨 및/또는 브릭 레벨 및/또는 코딩 트리 유닛(CTU) 행 레벨 및/또는 코딩 트리 유닛(CTU) 레벨 및/또는 코딩 유닛(CU) 레벨 및/또는 가상 파이프라인 데이터 유닛(VPDU) 레벨 및/또는 블록 레벨 중 하나를 포함하는, 방법.
63. 조항 54 내지 조항 62 중 어느 하나 이상의 조항의 방법으로서, 포맷 규칙은 비디오 세그먼트가 임계 크기 조건을 충족시킨다고 결정할 시에 하나 이상의 신택스 요소가 비트스트림 표현에 선택적으로 포함된다는 것을 지정하는, 방법.
64. 조항 54 내지 조항 63의 방법으로서, 임계 크기 조건은 코딩 트리 유닛(CTU) 폭과 가상 파이프라인 데이터 유닛(VPDU) 폭의 비교에 기초하는, 방법.
65. 비주얼 미디어 프로세싱을 위한 방법으로서, 비주얼 미디어 데이터의 현재 비디오 유닛과 비주얼 미디어 데이터의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하며, 비트스트림 표현은 현재 비디오 유닛의 변환의 크로마 잔차 스케일링 단계와 연관된 스케일링 인자를 나타내는 비트스트림 표현 내의 하나 이상의 신택스 요소가 비트스트림 표현에 예측 코딩된다는 것을 지정하는 포맷 규칙을 준수하는, 방법.
66. 조항 65의 방법으로서, 예측 코딩되는 것은:
비트스트림 표현에, 제2 비디오 유닛의 스케일링 인자가 이전에 변환된 제1 비디오 유닛의 스케일링 인자와 동일한지 여부의 표시를 포함시키는 것을 포함하는, 방법.
67. 조항 65의 방법으로서, 예측 코딩되는 것은:
비트스트림 표현에, 제2 비디오 유닛의 스케일링 인자와 이전에 변환된 제1 비디오 유닛의 스케일링 인자 사이의 코딩된 차이의 표시를 포함시키는 것을 포함하는, 방법.
68. 조항 67의 방법으로서, 표시는 코딩된 차이의 부호 및/또는 코딩된 차이의 절댓값을 포함하는, 방법.
69. 조항 67의 방법으로서, 코딩된 차이가 비트스트림 표현에 포함되지 않은 경우에, 제2 비디오 유닛의 스케일링 인자가 제1 비디오 유닛의 스케일링 인자와 동일하다고 추론하는, 방법.
70. 조항 1 내지 조항 69 중 어느 하나 이상의 조항에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코더 장치.
71. 조항 1 내지 조항 69 중 어느 하나 이상의 조항에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코더 장치.
72. 코드가 저장된 컴퓨터 판독 가능 매체로서, 코드는 조항 1 내지 조항 69 중 어느 하나 이상의 조항에 기재된 방법을 구현하기 위한 프로세서 실행 가능 명령어들을 구체화하는, 컴퓨터 판독 가능 매체.
본 문서에서, "비디오 프로세싱" 또는 "비주얼 미디어 프로세싱"이라는 용어는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축 해제를 지칭할 수 있다. 예를 들어, 비디오의 픽셀 표현으로부터 대응하는 비트스트림 표현으로 또는 그 반대로 변환하는 동안 비디오 압축 알고리즘들이 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스에 의해 정의된 바와 같이, 비트스트림 내에서 동일 위치에 있거나 상이한 위치들에 분산되는 비트들에 대응할 수 있다. 예를 들어, 매크로블록은 변환되고 코딩된 오차 잔차 값들의 관점에서 그리고 또한 헤더들 내의 비트들 및 비트스트림 내의 다른 필드들을 사용하여 인코딩될 수 있다. 게다가, 변환 동안, 디코더는, 위의 해결책들에 설명된 바와 같이, 결정에 기초하여, 일부 필드들이 존재하거나 존재하지 않을 수 있다는 것에 대한 지식으로 비트스트림을 파싱할 수 있다. 유사하게, 인코더는 특정 신택스 필드들이 포함되어야 하는지 여부를 결정할 수 있고, 그에 따라 코딩된 표현으로부터 신택스 필드들을 포함하거나 제외하는 것에 의해 코딩된 표현을 생성할 수 있다. 개시된 기술들이 서브블록 기반 모션 벡터 개선의 사용을 포함하는 기술들을 사용하여 압축 효율을 개선시키기 위해 비디오 인코더들 또는 디코더들에서 구체화될 수 있다는 것이 이해될 것이다.
전술한 내용으로부터, 현재 개시된 기술의 특정 실시예들이 예시 목적으로 본 명세서에 설명되었지만, 본 발명의 범위를 벗어나지 않고 다양한 수정들이 이루어질 수 있다는 것이 이해될 것이다. 그에 따라, 현재 개시된 기술은 첨부된 청구항들에 의한 경우를 제외하고는 제한되지 않는다.
본 특허 문서에 설명된 주제 및 기능적 동작들의 구현들은, 본 명세서에 개시된 구조들 및 이들의 구조적 등가물들을 포함한, 다양한 시스템들, 디지털 전자 회로로, 또는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어로, 또는 이들 중 하나 이상의 조합들로 구현될 수 있다. 본 명세서에 설명된 주제의 구현들은 하나 이상의 컴퓨터 프로그램 제품, 즉, 데이터 프로세싱 장치에 의해 실행하기 위한 또는 데이터 프로세싱 장치의 동작을 제어하기 위한, 유형적(tangible)이고 비일시적인 컴퓨터 판독 가능 매체 상에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독 가능 매체는 머신 판독 가능 저장 디바이스, 머신 판독 가능 저장 기판, 메모리 디바이스, 머신 판독 가능 전파 신호를 실현하는 조성물(composition of matter), 또는 이들 중 하나 이상의 조합일 수 있다. "데이터 프로세싱 유닛" 또는 “데이터 프로세싱 장치"라는 용어는, 예로서, 프로그래밍 가능 프로세서, 컴퓨터, 또는 다수의 프로세서들 또는 컴퓨터들을 포함한, 데이터를 프로세싱하기 위한 모든 장치들, 디바이스들, 및 머신들을 포괄한다. 장치는, 하드웨어 외에도, 문제의 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들면, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은, 컴파일되는(compiled) 또는 인터프리트되는(interpreted) 언어들을 포함한, 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 독립형 프로그램(stand-alone program)으로서 또는 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛으로서를 포함한, 임의의 형태로 배포(deploy)될 수 있다. 컴퓨터 프로그램이 파일 시스템에서의 파일에 반드시 대응하는 것은 아니다. 프로그램은 다른 프로그램들 또는 데이터(예를 들면, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일 부분에, 문제의 프로그램에 전용된 단일 파일에, 또는 다수의 통합 파일들(coordinated files)(예를 들면, 하나 이상의 모듈, 서브 프로그램(sub program), 또는 코드 부분(portion of code)을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터에서 또는 하나의 사이트에 위치하거나 다수의 사이트들에 걸쳐 분산되고 통신 네트워크에 의해 상호연결되는 다수의 컴퓨터들에서 실행되도록 배포될 수 있다.
본 명세서에 설명된 프로세스들 및 논리 흐름들은 입력 데이터에 대해 작동하여 출력을 생성하는 것에 의해 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능 프로세서에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들이 또한 특수 목적 로직 회로, 예를 들면, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있고, 장치가 또한 이들로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는, 예로서, 범용 및 특수 목적 마이크로프로세서들 둘 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들을 수행하기 위한 프로세서 및 명령어들과 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들면, 자기, 자기 광학 디스크, 또는 광학 디스크를 포함할 것이거나, 또는 이들로부터 데이터를 수신하거나 이들로 데이터를 전송하도록 동작 가능하게 결합될 수 있거나, 또는 둘 모두일 것이다. 그렇지만, 컴퓨터가 그러한 디바이스들을 가질 필요는 없다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는 모든 형태들의 비휘발성 메모리, 매체 및, 예로서, 반도체 메모리 디바이스들, 예를 들면, EPROM, EEPROM 및 플래시 메모리 디바이스들을 포함한, 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보완되거나 그에 통합될 수 있다.
본 명세서가, 도면과 함께, 단지 예시적인 것으로 간주되어야 하며, 여기서 예시적인은 예를 의미하는 것으로 의도된다. 본 명세서에서 사용되는 바와 같이, "또는"의 사용은, 문맥이 명확하게 달리 나타내지 않는 한, "및/또는"을 포함하는 것으로 의도된다.
본 특허 문서가 많은 구체적 사항들을 포함하지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 것의 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 특정 발명들의 특정 실시예들에 특정적일 수 있는 특징들에 대한 설명으로서 해석되어야 한다. 개별 실시예들의 맥락에서 본 특허 문서에 설명되는 특정 특징들이 또한 단일 실시예에서 조합하여 구현될 수 있다. 이와 달리, 단일 실시예의 맥락에서 설명되는 다양한 특징들이 또한 다수의 실시예들에서 개별적으로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 더욱이, 특징들이 특정 조합들로 기능하는 것으로 위에서 설명되고 심지어 처음에 그 자체로서 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징이 일부 경우에 그 조합으로부터 제거될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
유사하게, 동작들이 도면에서 특정의 순서로 묘사되지만, 이것은, 바람직한 결과를 달성하기 위해, 그러한 동작들이 도시된 특정의 순서로 또는 순차적 순서로 수행되어야 하거나, 모든 예시된 동작들이 수행되어야 하는 것을 요구하는 것으로 이해되어서는 안된다. 더욱이, 본 특허 문서에 설명된 실시예들에서 다양한 시스템 컴포넌트들의 분리가 모든 실시예들에서 그러한 분리를 요구하는 것으로서 이해되어서는 안된다.
단지 몇 가지 구현들 및 예들이 설명되고 다른 구현들, 향상들 및 변형들이 이 특허 문서에 설명되고 예시된 것에 기초하여 이루어질 수 있다.

Claims (72)

  1. 비주얼 미디어 프로세싱 방법으로서,
    하나 이상의 비디오 블록을 포함하는 하나 이상의 비디오 영역을 포함하는 비주얼 미디어 데이터와 상기 비주얼 미디어 데이터의 비트스트림 표현 사이의 변환을 수행하는 단계
    를 포함하며,
    상기 비트스트림 표현은 포맷 규칙을 준수하고,
    상기 포맷 규칙은 비디오 영역 내의 하나 이상의 비디오 블록이 상기 변환의 루마 의존적 크로마 잔차 스케일링 단계에서 동일한 크로마 스케일링 인자를 갖는다는 것을 지정하는, 방법.
  2. 제1항에 있어서, 상기 비디오 영역은 가상 파이프라인 데이터 유닛(VPDU)인, 방법.
  3. 제1항에 있어서, 상기 포맷 규칙은 상기 동일한 크로마 스케일링 인자를 갖는 블록들의 총수가 신택스 요소에 의해 표시되거나 상기 변환에서 도출된다는 것을 더 지정하는, 방법.
  4. 제1항 또는 제2항에 있어서, 상기 비디오 영역 내의 상기 하나 이상의 블록은 상기 비디오 영역 내의 모든 블록들에 대응하는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 변환에서 사용되는 상기 비트스트림 표현 내의 상기 신택스 요소는 시퀀스 파라미터 세트(SPS) 레벨 및/또는 슬라이스 헤더 레벨 및/또는 타일 그룹 헤더 레벨 및/또는 픽처 파라미터 세트(PPS) 레벨 및/또는 픽처 헤더 레벨 및/또는 브릭 레벨 및/또는 코딩 트리 유닛(CTU) 행 레벨 및/또는 코딩 트리 유닛(CTU) 레벨 및/또는 코딩 유닛(CU) 레벨 및/또는 가상 파이프라인 데이터 유닛(VPDU) 레벨 및/또는 블록 레벨 중 하나에 포함되는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 하나 이상의 비디오 영역 내의 적어도 2 개의 블록이 상이한 크로마 스케일링 인자들을 갖는다는 것을 검출하는 것에 응답하여, 상기 포맷 규칙은 상기 비트스트림 표현에 추가적인 신택스 요소들을 포함시키는 것을 더 지정하며, 상기 추가적인 신택스 요소들은 상기 적어도 2 개의 블록에 대한 상기 상이한 크로마 스케일링 인자들을 도출하는 데 사용되는, 방법.
  7. 제1항에 있어서, 상기 비디오 영역 내의 상기 하나 이상의 비디오 블록이 상기 변환의 상기 루마 의존적 크로마 잔차 스케일링 단계에서 상기 동일한 크로마 스케일링 인자를 갖는다는 것을 검출하는 것에 응답하여, 상기 포맷 규칙은 상기 동일한 크로마 스케일링 인자를 갖는 블록들의 총수를 나타내는 상기 변환에서 사용되는 신택스 요소의 사용을 더 지정하는, 방법.
  8. 제7항에 있어서, 상기 포맷 규칙은 상기 신택스 요소의 이전 값이 상기 신택스 요소의 현재 값을 도출하는 데 사용되도록 상기 비트스트림 표현에 상기 신택스 요소를 포함시키기 위해 예측 기술을 사용하는 것을 더 지정하는, 방법.
  9. 제8항에 있어서, 상기 예측 기술은 상기 동일한 크로마 스케일링 인자를 갖는 상기 비디오 영역 내의 상기 블록들의 총수를 사용하는 것을 포함하는, 방법.
  10. 제6항 내지 제9항 중 어느 한 항에 있어서, 상기 비트스트림 표현에 포함되는 상기 신택스 요소는 상기 비디오 영역의 레벨과 연관되고, 상기 비디오 영역의 상기 레벨은 시퀀스 파라미터 세트(SPS) 레벨 및/또는 슬라이스 헤더 레벨 및/또는 타일 그룹 헤더 레벨 및/또는 픽처 파라미터 세트(PPS) 레벨 및/또는 픽처 헤더 레벨 및/또는 브릭 레벨 및/또는 코딩 트리 유닛(CTU) 행 레벨 및/또는 코딩 트리 유닛(CTU) 레벨 및/또는 코딩 유닛(CU) 레벨 및/또는 가상 파이프라인 데이터 유닛(VPDU) 레벨 및/또는 블록 레벨 중 하나를 포함하는, 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 상기 비디오 영역 내의 상기 하나 이상의 블록은 상기 비주얼 미디어 데이터에서 고정 길이의 연속적인 간격으로 이격되고, 제2 블록이 제1 블록에 후속하여 디코딩되는 경우 상기 제2 블록은 상기 제1 블록에 연속적인 것으로 정의되는, 방법.
  12. 제7항에 있어서, 상기 동일한 크로마 스케일링 인자를 갖는 상기 블록들의 총수는 상기 비디오 영역 내의 모든 블록들과 동일한, 방법.
  13. 제7항에 있어서, 상기 동일한 크로마 스케일링 인자를 갖는 상기 블록들의 총수는 [T1, T2]로서 표현되는 미리 정의된 범위에 있고, 여기서 T1 및 T2는 둘 모두 상기 미리 정의된 범위에 포함되는, 방법.
  14. 제13항에 있어서, T1은 1과 동일하고 T2는 상기 비디오 영역 내의 블록들의 총수와 동일한, 방법.
  15. 제14항에 있어서, 상기 비트스트림 표현에 포함되는 상기 신택스 요소는 상기 범위 [T1, T2]에 기초하는, 방법.
  16. 제15항에 있어서, 상기 비트스트림 표현에 포함되는 상기 신택스 요소는 상기 비디오 영역 내의 상기 블록들의 총수와 T1의 차이에 대응하거나, 상기 신택스 요소의 최댓값은 T1과 T2의 차이와 동일한, 방법.
  17. 제13항 내지 제16항 중 어느 한 항에 있어서, 상기 포맷 규칙은, 상기 비트스트림 표현이 상기 포맷 규칙을 준수하도록 하기 위해, 상기 비디오 영역 내의 상기 블록들의 총수가 비트스트림 적합성 제약을 충족시켜야 한다는 것을 더 지정하며, 상기 비트스트림 적합성 제약은 상기 비디오 영역 내의 상기 블록들의 총수가 정의된 간격 내에 있어야 한다는 것을 지정하는, 방법.
  18. 제7항에 있어서, 상기 포맷 규칙은, 상기 동일한 스케일링 인자를 갖는 2 개의 비디오 유닛에 대해, 제1 비디오 유닛의 변환에서 사용되는 신택스 요소가 제2 비디오 유닛의 변환에서 사용되는 신택스 요소를 도출하는 데 사용되도록 상기 비트스트림 표현에 상기 신택스 요소를 포함시키기 위해 예측 기술을 사용하는 것을 더 지정하는, 방법.
  19. 제7항 내지 제18항 중 어느 한 항에 있어서, 상기 신택스 요소는 코딩 기술의 적용 후에 상기 비트스트림 표현에 포함되는, 방법.
  20. 제19항에 있어서, 상기 코딩 기술은 단항 코드, 절단된 단항 코드, 고정 길이 코드, 지수 골롬 코드, 또는 절단된 이진 코드 중 하나를 포함하는, 방법.
  21. 제19항에 있어서, 상기 코딩 기술은 콘텍스트를 사용하지 않는 바이패스 코딩 또는 하나 또는 다수의 콘텍스트를 사용하는 산술 코딩 중 하나를 포함하는, 방법.
  22. 제2항 또는 제3항에 있어서, 상기 비디오 영역 내의 상기 다수의 블록들이 상기 변환의 상기 루마 의존적 크로마 잔차 스케일링 단계에서 상기 동일한 크로마 스케일링 인자를 갖는다는 것을 검출하는 것에 응답하여, 상기 포맷 규칙은 상기 비디오 영역을 나타내는 신택스 요소의 사용을 더 지정하는, 방법.
  23. 제22항에 있어서, 상기 비디오 영역에 포함되는 상기 다수의 블록들은 래스터 스캔 순서에 따라 배열되는, 방법.
  24. 제23항에 있어서, 상기 비디오 영역은 상기 다수의 블록들 중 첫 번째 것과 연관된 인덱스 및/또는 상기 다수의 블록들 중 마지막 것과 연관된 인덱스 및/또는 상기 다수의 블록들의 총 카운트를 사용하여 기술되는, 방법.
  25. 제22항 내지 제24항 중 어느 한 항에 있어서, 상기 비디오 영역은 직사각형 형상을 갖는 영역을 포함하고, 상기 비디오 영역은 좌측 상단 블록과 연관된 인덱스 및 우측 하단 블록과 연관된 인덱스를 사용하여 기술되는, 방법.
  26. 제22항 내지 제24항 중 어느 한 항에 있어서, 상기 비디오 영역은 직사각형 형상을 갖는 영역을 포함하고, 상기 비디오 영역은 상기 직사각형 형상을 갖는 상기 영역의 치수를 사용하여 기술되는, 방법.
  27. 제22항 내지 제26항 중 어느 한 항에 있어서, 상기 비디오 영역에 대응하는 인덱스는 상기 비트스트림 표현에 신택스 요소로서 포함되는, 방법.
  28. 제22항 내지 제27항 중 어느 한 항에 있어서, 상기 직사각형 형상을 갖는 상기 영역의 상기 치수는 폭 및/또는 높이를 포함하고, 상기 다수의 블록들의 총 카운트는 상기 직사각형 형상을 갖는 상기 영역의 상기 폭과 상기 높이의 곱보다 작은, 방법.
  29. 제28항에 있어서, 상기 직사각형 형상을 갖는 상기 영역의 상기 폭은 상기 직사각형 형상을 갖는 상기 영역의 상기 폭을 따른 방향으로 정렬되는 상기 다수의 블록들의 수와 동일한, 방법.
  30. 제28항에 있어서, 상기 직사각형 형상을 갖는 상기 영역의 상기 높이는 상기 직사각형 형상을 갖는 상기 영역의 상기 높이를 따른 방향으로 정렬되는 상기 다수의 블록들의 수와 동일한, 방법.
  31. 제26항 또는 제27항에 있어서, 상기 직사각형 형상을 갖는 상기 영역의 상기 치수는 폭 및/또는 높이를 포함하며, 상기 폭 및/또는 상기 높이 각각은 [T1, T2]로서 표현되는 미리 정의된 범위에 있고, 여기서 T1 및 T2는 둘 모두 상기 미리 정의된 범위에 포함되는, 방법.
  32. 제31항에 있어서, T1은 1과 동일하고 T2는 상기 비디오 영역의 CTU 열에 있는 CTU들의 총수와 동일한, 방법.
  33. 제31항 또는 제32항에 있어서, 상기 비트스트림 표현에 포함되는 상기 신택스 요소는 상기 범위 [T1, T2]에 기초하는, 방법.
  34. 제33항에 있어서, 상기 비트스트림 표현에 포함되는 상기 신택스 요소는 상기 직사각형 형상을 갖는 상기 영역의 상기 폭과 T1의 차이에 대응하는, 방법.
  35. 제33항에 있어서, 상기 비트스트림 표현에 포함되는 상기 신택스 요소는 상기 직사각형 형상을 갖는 상기 영역의 상기 높이와 T1의 차이에 대응하는, 방법.
  36. 제34항 또는 제35항에 있어서, 상기 신택스 요소의 최댓값은 T1과 T2의 차이와 동일한, 방법.
  37. 제31항 내지 제36항 중 어느 한 항에 있어서, 상기 포맷 규칙은, 상기 비트스트림 표현이 상기 포맷 규칙을 준수하도록 하기 위해, 상기 직사각형 형상을 갖는 상기 영역의 상기 치수가 폭 및/또는 높이를 포함하고, 상기 폭 및/또는 상기 높이 각각이 비트스트림 적합성 제약을 충족시켜야 한다는 것을 더 지정하며, 상기 비트스트림 적합성 제약은 상기 직사각형 형상을 갖는 상기 영역의 상기 치수가 폭 및/또는 높이를 포함하고, 상기 폭 및/또는 상기 높이 각각이 정의된 간격 내에 있어야 한다는 것을 지정하는, 방법.
  38. 제37항에 있어서, 상기 포맷 규칙은 고정된 수가 상기 신택스 요소를 예측하는 데 사용되도록 상기 비트스트림 표현에 상기 신택스 요소를 포함시키기 위해 예측 기술을 사용하는 것을 더 지정하는, 방법.
  39. 제37항에 있어서, 상기 포맷 규칙은, 상기 동일한 스케일링 인자를 갖는 직사각형 형상의 2 개의 비디오 영역에 대해, 제1 영역의 변환에서 사용되는 신택스 요소가 제2 영역의 변환에서 사용되는 신택스 요소를 도출하는 데 사용되도록 상기 비트스트림 표현에 상기 신택스 요소를 포함시키기 위해 예측 기술을 사용하는 것을 더 지정하는, 방법.
  40. 제25항 내지 제39항 중 어느 한 항에 있어서, 상기 신택스 요소는 코딩 기술의 적용 후에 상기 비트스트림 표현에 포함되는, 방법.
  41. 제40항에 있어서, 상기 코딩 기술은 단항 코드, 절단된 단항 코드, 고정 길이 코드, 지수 골롬 코드, 또는 절단된 이진 코드 중 하나를 포함하는, 방법.
  42. 제40항에 있어서, 상기 코딩 기술은 콘텍스트를 사용하지 않는 바이패스 코딩 또는 하나 또는 다수의 콘텍스트를 사용하는 산술 코딩 중 하나를 포함하는, 방법.
  43. 제37항에 있어서, 상기 제2 영역의 상기 변환은 상기 제1 영역의 상기 변환 후에 순차적으로 수행되는, 방법.
  44. 제39항에 있어서, 코딩 트리 유닛들(CTU들)은 상기 제1 영역 및 상기 제2 영역과 연관되고, 상기 제2 영역 내의 상기 CTU들의 변환은 상기 제1 영역 내의 상기 CTU들의 변환과 인터리빙되는, 방법.
  45. 제44항에 있어서, 변환 순서는: 상기 제1 영역의 제1 행에 있는 CTU들, 상기 제2 영역의 제1 행에 있는 CTU들, 상기 제1 영역의 제1 행에 있는 CTU들, 상기 제2 영역의 제2 행에 있는 CTU들, 및 상기 제1 영역의 제2 행에 있는 CTU들을 포함하는, 방법.
  46. 제7항에 있어서, 상기 신택스 요소의 상기 사용은 상기 비트스트림 표현에 상기 신택스 요소를 포함시키는 것에 대응하는, 방법.
  47. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 포맷 규칙은 상기 동일한 크로마 스케일링 인자를 갖는 상기 블록들의 총수가 상기 변환과 연관된 도출에 따라 계산되는 것을 더 지정하는, 방법.
  48. 제46항 또는 제47항에 있어서, 상기 동일한 크로마 스케일링 인자를 갖는 상기 블록들의 총수는 상기 비디오 영역의 레벨에 있는, 방법.
  49. 제48항에 있어서, 상기 변환과 연관된 상기 도출은 비디오 블록의 크기에 기초하는, 방법.
  50. 제48항에 있어서, 상기 변환과 연관된 상기 도출은 상기 비디오 블록의 상기 크기 및 미리 정의된 수에 의존하는 최솟값 또는 최댓값 사이의 범위에 있는, 방법.
  51. 제26항에 있어서, 상기 비디오 영역의 상기 치수는 비디오 블록의 크기에 기초하는, 방법.
  52. 제26항에 있어서, 상기 비디오 영역의 상기 치수는 상기 비디오 블록의 상기 크기 및 미리 정의된 수에 의존하는 최솟값 또는 최댓값 사이에 있는, 방법.
  53. 제50항 또는 제52항에 있어서, 상기 미리 정의된 수는 64인, 방법.
  54. 비주얼 미디어 프로세싱 방법으로서,
    비주얼 미디어 데이터의 현재 비디오 유닛과 상기 현재 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계
    를 포함하며,
    상기 비트스트림 표현은 포맷 규칙에 따라 구성되고;
    상기 포맷 규칙은 상기 현재 비디오 유닛을 코딩하기 위해 크로마 잔차가 스케일링되는 정도인 스케일링 인자를 나타내는 하나 이상의 신택스 요소가 상기 비트스트림 표현에 선택적으로 포함되는 비디오 세그먼트의 레벨을 지정하는, 방법.
  55. 제54항에 있어서, 상기 포맷 규칙은 상기 비디오 세그먼트가 상기 비주얼 미디어 데이터의 가상 파이프라인 데이터 유닛(VPDU)에 대응한다는 것을 지정하는, 방법.
  56. 제54항에 있어서, 상기 포맷 규칙은 상기 비디오 세그먼트가 가상 파이프라인 데이터 유닛(VPDU) 및 코딩 트리 유닛(CTU) 중 작은 쪽에 대응한다는 것을 지정하는, 방법.
  57. 제56항에 있어서, 상기 VPDU의 폭이 W'이고 상기 CTU의 폭이 W인 경우에, 상기 비디오 세그먼트의 폭은 W 및 W'의 최솟값과 동일한, 방법.
  58. 제54항에 있어서, 상기 포맷 규칙은, 상기 현재 비디오 유닛의 크기가 가상 파이프라인 데이터 유닛(VPDU)의 크기보다 작은 경우에, 상기 하나 이상의 신택스 요소가 현재 비디오 유닛 레벨에 포함된다는 것을 지정하는, 방법.
  59. 제54항에 있어서, 상기 포맷 규칙은, 상기 현재 비디오 유닛의 크기가 가상 파이프라인 데이터 유닛(VPDU)의 크기보다 큰 경우에, 상기 하나 이상의 신택스 요소가 VPDU 레벨에 포함된다는 것을 지정하는, 방법.
  60. 제54항 내지 제59항 중 어느 한 항에 있어서, 상기 포맷 규칙은 상기 하나 이상의 신택스 요소가 상기 비디오 세그먼트의 상기 레벨과 연관된 모든 비디오 유닛들에 대한 스케일링 인자들을 도출하는 데 사용된다는 것을 지정하는, 방법.
  61. 제54항 내지 제59항 중 어느 한 항에 있어서, 상기 포맷 규칙은 상기 하나 이상의 신택스 요소가 상기 비디오 세그먼트의 상기 레벨과 연관된 비디오 유닛들의 서브세트에 대한 스케일링 인자들을 도출하는 데 사용된다는 것을 지정하는, 방법.
  62. 제54항 내지 제61항 중 어느 한 항에 있어서, 상기 비디오 세그먼트의 상기 레벨은 시퀀스 파라미터 세트(SPS) 레벨 및/또는 슬라이스 헤더 레벨 및/또는 타일 그룹 헤더 레벨 및/또는 픽처 파라미터 세트(PPS) 레벨 및/또는 픽처 헤더 레벨 및/또는 브릭 레벨 및/또는 코딩 트리 유닛(CTU) 행 레벨 및/또는 코딩 트리 유닛(CTU) 레벨 및/또는 코딩 유닛(CU) 레벨 및/또는 가상 파이프라인 데이터 유닛(VPDU) 레벨 및/또는 블록 레벨 중 하나를 포함하는, 방법.
  63. 제54항 내지 제62항 중 어느 한 항에 있어서, 상기 포맷 규칙은 상기 비디오 세그먼트가 임계 크기 조건을 충족시킨다고 결정할 시에 상기 하나 이상의 신택스 요소가 상기 비트스트림 표현에 선택적으로 포함된다는 것을 지정하는, 방법.
  64. 제54항 내지 제63항 중 어느 한 항에 있어서, 상기 임계 크기 조건은 코딩 트리 유닛(CTU) 폭과 가상 파이프라인 데이터 유닛(VPDU) 폭의 비교에 기초하는, 방법.
  65. 비주얼 미디어 프로세싱을 위한 방법으로서,
    비주얼 미디어 데이터의 현재 비디오 유닛과 상기 비주얼 미디어 데이터의 비트스트림 표현 사이의 변환을 수행하는 단계
    를 포함하며,
    상기 비트스트림 표현은 상기 현재 비디오 유닛의 상기 변환의 크로마 잔차 스케일링 단계와 연관된 스케일링 인자를 나타내는 상기 비트스트림 표현 내의 하나 이상의 신택스 요소가 상기 비트스트림 표현에 예측 코딩된다는 것을 지정하는 포맷 규칙을 준수하는, 방법.
  66. 제65항에 있어서, 상기 예측 코딩되는 것은:
    상기 비트스트림 표현에, 제2 비디오 유닛의 스케일링 인자가 이전에 변환된 제1 비디오 유닛의 스케일링 인자와 동일한지 여부의 표시를 포함시키는 것을 포함하는, 방법.
  67. 제65항에 있어서, 상기 예측 코딩되는 것은:
    상기 비트스트림 표현에, 제2 비디오 유닛의 스케일링 인자와 이전에 변환된 제1 비디오 유닛의 스케일링 인자 사이의 코딩된 차이의 표시를 포함시키는 것을 포함하는, 방법.
  68. 제67항에 있어서, 상기 표시는 상기 코딩된 차이의 부호 및/또는 상기 코딩된 차이의 절댓값을 포함하는, 방법.
  69. 제67항에 있어서, 상기 코딩된 차이가 상기 비트스트림 표현에 포함되지 않은 경우에, 상기 제2 비디오 유닛의 상기 스케일링 인자가 상기 제1 비디오 유닛의 상기 스케일링 인자와 동일하다고 추론하는, 방법.
  70. 비디오 인코더 장치로서,
    제1항 내지 제69항 중 어느 한 항에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코더 장치.
  71. 비디오 디코더 장치로서,
    제1항 내지 제69항 중 어느 한 항에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코더 장치.
  72. 코드가 저장된 컴퓨터 판독 가능 매체로서, 상기 코드는 제1항 내지 제69항 중 어느 한 항에 기재된 방법을 구현하기 위한 프로세서 실행 가능 명령어들을 구체화하는, 컴퓨터 판독 가능 매체.
KR1020217043038A 2019-07-07 2020-07-07 크로마 잔차 스케일링의 시그널링 KR102660738B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2019/094964 2019-07-07
CN2019094964 2019-07-07
PCT/CN2020/100573 WO2021004445A1 (en) 2019-07-07 2020-07-07 Signaling of chroma residual scaling

Publications (2)

Publication Number Publication Date
KR20220029594A true KR20220029594A (ko) 2022-03-08
KR102660738B1 KR102660738B1 (ko) 2024-04-26

Family

ID=74115055

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217043038A KR102660738B1 (ko) 2019-07-07 2020-07-07 크로마 잔차 스케일링의 시그널링

Country Status (6)

Country Link
US (2) US11533487B2 (ko)
EP (1) EP3977738A4 (ko)
JP (2) JP7460748B2 (ko)
KR (1) KR102660738B1 (ko)
CN (2) CN117395396A (ko)
WO (1) WO2021004445A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2020235190B2 (en) 2019-03-08 2023-06-01 Beijing Bytedance Network Technology Co., Ltd. Constraints on model-based reshaping in video processing
CN117528068A (zh) 2019-04-18 2024-02-06 北京字节跳动网络技术有限公司 视频编解码中的跨分量模式中的选择性使用
EP3935855A4 (en) 2019-04-23 2022-09-21 Beijing Bytedance Network Technology Co., Ltd. METHOD OF CROSS-COMPONENT DEPENDENCE REDUCTION
EP3949395A4 (en) 2019-05-08 2022-06-29 Beijing Bytedance Network Technology Co., Ltd. Conditions for applicability of cross-component coding
CN117478908A (zh) * 2019-06-22 2024-01-30 北京字节跳动网络技术有限公司 色度残差缩放的语法元素
JP7460748B2 (ja) 2019-07-07 2024-04-02 北京字節跳動網絡技術有限公司 クロマ残差スケーリングのシグナリング
MX2022001595A (es) * 2019-08-06 2022-03-11 Op Solutions Llc Método de señalización implícita de gestión de resolución adaptativa basada en el tipo de trama.
US11425405B2 (en) * 2019-11-15 2022-08-23 Qualcomm Incorporated Cross-component adaptive loop filter in video coding
JPWO2021100450A1 (ko) * 2019-11-21 2021-05-27
WO2021136498A1 (en) * 2019-12-31 2021-07-08 Beijing Bytedance Network Technology Co., Ltd. Multiple reference line chroma prediction
US20210400257A1 (en) * 2020-06-18 2021-12-23 Lg Electronics Inc. Image encoding/decoding method and apparatus for signaling high level information for tool control based on colour representation format, and computer-readable recording medium strong bitstream
US20230396799A1 (en) * 2022-06-06 2023-12-07 Tencent America LLC Signaling method for scaling parameter in chroma from luma intra prediction mode

Family Cites Families (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5281752B2 (ja) 2007-02-28 2013-09-04 日本無機株式会社 フィルタパック及びそれを用いたエアフィルタ
EP2051524A1 (en) * 2007-10-15 2009-04-22 Panasonic Corporation Image enhancement considering the prediction error
US9571856B2 (en) 2008-08-25 2017-02-14 Microsoft Technology Licensing, Llc Conversion operations in scalable video encoding and decoding
WO2011126272A2 (en) 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using dynamic-range transformation, and method and apparatus for decoding video by using dynamic-range transformation
CN108462874B (zh) 2010-04-09 2022-06-07 三菱电机株式会社 运动图像编码装置以及运动图像解码装置
FI3955579T3 (fi) 2010-04-13 2023-08-16 Ge Video Compression Llc Videokoodaus käyttäen kuvien monipuurakenteen alaosioita
SI2860980T1 (sl) 2010-09-30 2017-08-31 Samsung Electronics Co., Ltd Postopek interpoliranja podob z uporabo gladilnega interpolacijskega filtra
MX2013007314A (es) 2010-12-23 2013-10-25 Samsung Electronics Co Ltd Metodo y aparato de codificacion de modo de intra-prediccion para unidad de prediccion de imagen, metodo y aparato de decodificacion de modo de intra-prediccion para unidad de prediccion de imagen.
WO2012090504A1 (en) 2010-12-28 2012-07-05 Panasonic Corporation Methods and apparatuses for coding and decoding video stream
CN103688533B (zh) 2011-06-20 2015-12-23 联发科技(新加坡)私人有限公司 可减少行存储器的色度帧内预测方法及装置
KR20130058524A (ko) 2011-11-25 2013-06-04 오수미 색차 인트라 예측 블록 생성 방법
JP5375938B2 (ja) 2011-12-14 2013-12-25 ソニー株式会社 復号装置及び方法
CN103227917B (zh) 2012-01-31 2016-12-14 华为技术有限公司 解码方法和装置
US9451258B2 (en) 2012-04-03 2016-09-20 Qualcomm Incorporated Chroma slice-level QP offset and deblocking
CN104471940B (zh) 2012-04-16 2017-12-15 联发科技(新加坡)私人有限公司 色度帧内预测方法及装置
GB2501535A (en) 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
CN115065823A (zh) 2012-07-02 2022-09-16 韩国电子通信研究院 视频编码/解码方法和非暂时性计算机可读记录介质
US9516309B2 (en) 2012-07-09 2016-12-06 Qualcomm Incorporated Adaptive difference domain spatial and temporal reference reconstruction and smoothing
US9350899B2 (en) 2012-09-14 2016-05-24 Qualcomm Incorporated Methods and device for efficient resampling and resizing of digital images
AU2012232992A1 (en) 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
US9648319B2 (en) 2012-12-12 2017-05-09 Qualcomm Incorporated Device and method for scalable coding of video information based on high efficiency video coding
GB2513111A (en) 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
US9503732B2 (en) 2013-04-10 2016-11-22 Arris Enterprises, Inc. Re-sampling with phase offset adjustment for luma and chroma to select filters in scalable video coding
US10015515B2 (en) 2013-06-21 2018-07-03 Qualcomm Incorporated Intra prediction from a predictive block
EP2843949B1 (en) 2013-06-28 2020-04-29 Velos Media International Limited Methods and devices for emulating low-fidelity coding in a high-fidelity coder
US9648330B2 (en) * 2013-07-15 2017-05-09 Qualcomm Incorporated Inter-color component residual prediction
US9648333B2 (en) 2013-10-11 2017-05-09 Vid Scale, Inc. High level syntax for HEVC extensions
US9648332B2 (en) 2013-10-28 2017-05-09 Qualcomm Incorporated Adaptive inter-color component residual prediction
US10397607B2 (en) 2013-11-01 2019-08-27 Qualcomm Incorporated Color residual prediction for video coding
WO2015100522A1 (en) 2013-12-30 2015-07-09 Mediatek Singapore Pte. Ltd. Methods for inter-component residual prediction
US9948933B2 (en) 2014-03-14 2018-04-17 Qualcomm Incorporated Block adaptive color-space conversion coding
CN106464890A (zh) 2014-03-14 2017-02-22 三星电子株式会社 可伸缩视频编码/解码方法和设备
US9930348B2 (en) 2014-03-14 2018-03-27 Qualcomm Incorporated Coefficient level coding in a video coding process
US10142642B2 (en) 2014-06-04 2018-11-27 Qualcomm Incorporated Block adaptive color-space conversion coding
US20150373350A1 (en) 2014-06-20 2015-12-24 Qualcomm Incorporated Temporal motion vector prediction (tmvp) indication in multi-layer codecs
US10200700B2 (en) 2014-06-20 2019-02-05 Qualcomm Incorporated Cross-component prediction in video coding
EP3192261A1 (en) 2014-09-12 2017-07-19 VID SCALE, Inc. Inter-component de-correlation for video coding
US9918105B2 (en) * 2014-10-07 2018-03-13 Qualcomm Incorporated Intra BC and inter unification
EP3198874A4 (en) 2014-10-28 2018-04-04 MediaTek Singapore Pte Ltd. Method of guided cross-component prediction for video coding
US9998742B2 (en) 2015-01-27 2018-06-12 Qualcomm Incorporated Adaptive cross component residual prediction
GB2539845B (en) 2015-02-19 2017-07-12 Magic Pony Tech Ltd Offline training of hierarchical algorithms
US10455249B2 (en) 2015-03-20 2019-10-22 Qualcomm Incorporated Downsampling process for linear model prediction mode
GB201603144D0 (en) 2016-02-23 2016-04-06 Magic Pony Technology Ltd Training end-to-end video processes
CN107439012B (zh) 2015-04-06 2018-09-25 杜比实验室特许公司 用于环内转换的方法、装置和计算机可读存储介质
US20180115787A1 (en) 2015-04-12 2018-04-26 Lg Electronics Inc. Method for encoding and decoding video signal, and apparatus therefor
EP3304912A4 (en) 2015-06-07 2018-06-06 Sharp Kabushiki Kaisha Systems and methods for optimizing video coding based on a luminance transfer function or video color component values
TWI764870B (zh) 2015-07-28 2022-05-21 法商內數位麥德遜專利控股有限公司 視訊訊號處理裝置及方法
US10652588B2 (en) 2015-09-21 2020-05-12 Vid Scale, Inc. Inverse reshaping for high dynamic range video coding
US20170105014A1 (en) 2015-10-08 2017-04-13 Qualcomm Incorporated Luma-driven chroma scaling for high dynamic range and wide color gamut contents
JP2017538381A (ja) 2015-10-09 2017-12-21 テレフオンアクチーボラゲット エルエム エリクソン(パブル) ビデオ符号化における成分間予測
US10200719B2 (en) 2015-11-25 2019-02-05 Qualcomm Incorporated Modification of transform coefficients for non-square transform units in video coding
EP3414901A4 (en) 2016-02-08 2018-12-26 Sharp Kabushiki Kaisha Systems and methods for transform coefficient coding
GB2548358A (en) 2016-03-15 2017-09-20 Nokia Technologies Oy A method, an apparatus and a computer program product for coding a 360-degree panoramic images and video
US10455228B2 (en) 2016-03-21 2019-10-22 Qualcomm Incorporated Determining prediction parameters for non-square blocks in video coding
CN108885783B (zh) 2016-03-23 2022-02-15 杜比实验室特许公司 编码和解码可逆制作质量单层视频信号
CN109417620B (zh) 2016-03-25 2021-04-27 松下知识产权经营株式会社 用于使用信号依赖型自适应量化将运动图像编码及解码的方法及装置
EP3459248A1 (en) 2016-05-19 2019-03-27 Dolby Laboratories Licensing Corporation Chroma reshaping for high dynamic range images
JP6846442B2 (ja) 2016-05-19 2021-03-24 ドルビー ラボラトリーズ ライセンシング コーポレイション ハイダイナミックレンジ画像のためのクロマ再構成
CN109196862B (zh) 2016-05-28 2021-01-22 联发科技股份有限公司 视频数据处理方法、装置及相应可读存储介质
RU2710667C1 (ru) 2016-05-28 2019-12-30 МедиаТек Инк. Способ и устройство привязки к текущему изображению для кодирования видео
US10484712B2 (en) 2016-06-08 2019-11-19 Qualcomm Incorporated Implicit coding of reference line index used in intra prediction
CN113452999B (zh) * 2016-07-22 2023-12-05 夏普株式会社 使用自适应分量缩放对视频数据进行编码的系统和方法
US10390015B2 (en) 2016-08-26 2019-08-20 Qualcomm Incorporated Unification of parameters derivation procedures for local illumination compensation and cross-component linear model prediction
US10419757B2 (en) 2016-08-31 2019-09-17 Qualcomm Incorporated Cross-component filter
EP3510772B1 (en) 2016-09-09 2020-12-09 Dolby Laboratories Licensing Corporation Coding of high dynamic range video using segment-based reshaping
US10652575B2 (en) 2016-09-15 2020-05-12 Qualcomm Incorporated Linear model chroma intra prediction for video coding
JP2018056685A (ja) 2016-09-27 2018-04-05 株式会社ドワンゴ 画像符号化装置、画像符号化方法、及び画像符号化プログラム、並びに、画像復号装置、画像復号方法、及び画像復号プログラム
KR20180037575A (ko) 2016-10-04 2018-04-12 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US10477240B2 (en) 2016-12-19 2019-11-12 Qualcomm Incorporated Linear model prediction mode with sample accessing for video coding
WO2018116925A1 (ja) 2016-12-21 2018-06-28 シャープ株式会社 イントラ予測画像生成装置、画像復号装置、および画像符号化装置
JP2020031252A (ja) 2016-12-22 2020-02-27 シャープ株式会社 画像復号装置及び画像符号化装置
US20180199062A1 (en) 2017-01-11 2018-07-12 Qualcomm Incorporated Intra prediction techniques for video coding
US11025903B2 (en) 2017-01-13 2021-06-01 Qualcomm Incorporated Coding video data using derived chroma mode
US10694181B2 (en) 2017-01-27 2020-06-23 Qualcomm Incorporated Bilateral filters in video coding with reduced complexity
EP3386198A1 (en) 2017-04-07 2018-10-10 Thomson Licensing Method and device for predictive picture encoding and decoding
US11190799B2 (en) 2017-06-21 2021-11-30 Lg Electronics Inc. Intra-prediction mode-based image processing method and apparatus therefor
EP4064701A1 (en) 2017-06-29 2022-09-28 Dolby Laboratories Licensing Corporation Integrated image reshaping and video decoding
EP3425911A1 (en) 2017-07-06 2019-01-09 Thomson Licensing A method and a device for picture encoding and decoding
US10778978B2 (en) 2017-08-21 2020-09-15 Qualcomm Incorporated System and method of cross-component dynamic range adjustment (CC-DRA) in video coding
BR112020004557A2 (pt) 2017-09-15 2020-09-08 Sony Corporation dispositivo e método de processamento de imagem.
JP2021010046A (ja) 2017-10-06 2021-01-28 シャープ株式会社 画像符号化装置及び画像復号装置
US20190116376A1 (en) 2017-10-12 2019-04-18 Qualcomm Incorporated Motion vector predictors using affine motion model in video coding
KR102487032B1 (ko) 2018-02-14 2023-01-11 돌비 레버러토리즈 라이쎈싱 코오포레이션 레이트 왜곡 최적화를 이용한 비디오 코딩에서의 이미지 재성형
WO2019194496A1 (ko) 2018-04-01 2019-10-10 엘지전자 주식회사 비디오 신호의 컬러 컴포넌트에 대한 병렬 처리 방법 및 이를 위한 장치
CN109005408B (zh) 2018-08-01 2020-05-29 北京奇艺世纪科技有限公司 一种帧内预测方法、装置及电子设备
GB2590844B (en) 2018-08-17 2023-05-03 Beijing Bytedance Network Tech Co Ltd Simplified cross component prediction
WO2020053804A1 (en) 2018-09-12 2020-03-19 Beijing Bytedance Network Technology Co., Ltd. Downsampling in cross-component linear modeling
WO2020084512A1 (en) 2018-10-23 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Affine motion information derivation from neighboring block
WO2020093999A1 (en) 2018-11-05 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Inter prediction with refinement in video processing
WO2020094061A1 (en) 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Multi-models for intra prediction
AU2019391197B2 (en) 2018-12-07 2023-05-25 Beijing Bytedance Network Technology Co., Ltd. Context-based intra prediction
US20220086428A1 (en) 2018-12-31 2022-03-17 Electronics And Telecommunications Research Institute Image encoding/decoding method and apparatus, and recording medium storing bitstream
WO2020156528A1 (en) 2019-02-01 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Filtering processes based on in-loop reshaping
MX2021009788A (es) 2019-02-22 2021-09-08 Beijing Bytedance Network Tech Co Ltd Seleccion de muestra colindante para intraprediccion.
EP3928519B1 (en) 2019-02-22 2024-04-03 Huawei Technologies Co., Ltd. Method and apparatus for affine based inter prediction of chroma subblocks
AU2020226566A1 (en) 2019-02-24 2021-08-19 Beijing Bytedance Network Technology Co., Ltd. Parameter derivation for intra prediction
EP3932063A1 (en) 2019-02-28 2022-01-05 InterDigital VC Holdings, Inc. Method and device for picture encoding and decoding
EP3703366A1 (en) 2019-02-28 2020-09-02 InterDigital VC Holdings, Inc. Method and device for picture encoding and decoding
WO2020177703A1 (en) 2019-03-04 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Signaling of filtering information in video processing
CN113545064B (zh) * 2019-03-04 2024-05-10 阿里巴巴集团控股有限公司 用于处理视频内容的方法和装置及计算机可读存储介质
AU2020235190B2 (en) 2019-03-08 2023-06-01 Beijing Bytedance Network Technology Co., Ltd. Constraints on model-based reshaping in video processing
US20200288126A1 (en) * 2019-03-08 2020-09-10 Qualcomm Incorporated Reshaping filter average calculation for video coding
US20200288159A1 (en) * 2019-03-08 2020-09-10 Qualcomm Incorporated Combined residual coding in video coding
CN113574889B (zh) 2019-03-14 2024-01-12 北京字节跳动网络技术有限公司 环路整形信息的信令和语法
US11582454B2 (en) 2019-03-25 2023-02-14 Hfi Innovation Inc. Method and apparatus of the quantization matrix computation and representation for video coding
WO2020204413A1 (ko) 2019-04-03 2020-10-08 엘지전자 주식회사 복원 픽처를 수정하는 비디오 또는 영상 코딩
CN117528068A (zh) 2019-04-18 2024-02-06 北京字节跳动网络技术有限公司 视频编解码中的跨分量模式中的选择性使用
WO2020216176A1 (en) 2019-04-20 2020-10-29 Beijing Bytedance Network Technology Co., Ltd. Signaling of chroma syntax elements in video coding
EP3935855A4 (en) 2019-04-23 2022-09-21 Beijing Bytedance Network Technology Co., Ltd. METHOD OF CROSS-COMPONENT DEPENDENCE REDUCTION
CN111866510A (zh) 2019-04-30 2020-10-30 华为技术有限公司 视频序列的帧内预测方法及装置
EP3949395A4 (en) 2019-05-08 2022-06-29 Beijing Bytedance Network Technology Co., Ltd. Conditions for applicability of cross-component coding
US11930191B2 (en) 2019-05-16 2024-03-12 Lg Electronics Inc. Luma mapping—and chroma scaling-based video or image coding
US11388406B2 (en) 2019-05-20 2022-07-12 Dolby Laboratories Licensing Corporation Piece-wise-linear mapping for in-loop reshaping in image coding
JP2021002780A (ja) 2019-06-21 2021-01-07 シャープ株式会社 動画像復号装置および動画像符号化装置
CN117478908A (zh) 2019-06-22 2024-01-30 北京字节跳动网络技术有限公司 色度残差缩放的语法元素
JP7460748B2 (ja) 2019-07-07 2024-04-02 北京字節跳動網絡技術有限公司 クロマ残差スケーリングのシグナリング
EP3981146A4 (en) 2019-07-11 2022-08-03 Beijing Bytedance Network Technology Co., Ltd. BITSTREAM CONFORMITY RESTRICTIONS FOR INTRA-BLOCK COPY IN VIDEO ENCODING
WO2021201515A1 (ko) 2020-04-02 2021-10-07 엘지전자 주식회사 Hls를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체
US11601657B2 (en) 2020-04-02 2023-03-07 Qualcomm Incorporated LUMA mapping with chroma scaling (LMCS) in video coding
US11375212B2 (en) 2020-04-18 2022-06-28 Qualcomm Incorporated Flexible chroma processing for dynamic range adjustment
US20230214959A1 (en) 2020-06-15 2023-07-06 Sony Group Corporation Information processing apparatus, information processing method, and information processing program
US20210400257A1 (en) 2020-06-18 2021-12-23 Lg Electronics Inc. Image encoding/decoding method and apparatus for signaling high level information for tool control based on colour representation format, and computer-readable recording medium strong bitstream
EP4252418A4 (en) 2020-11-30 2024-05-22 Beijing Dajia Internet Information Tech Co Ltd CHROMACODING IMPROVEMENT WITH ADAPTIVE OFFSET OF CROSS-COMPONENT SAMPLES

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Chen J et al: "Non-CE2: unification of chroma residual scaling design", JVET-O1109, 2019.7.6. *
Taoran Lu et al., "Non-CE2: alternative solutions for chroma residual scaling factors derivation for dual tree. JVET-O0429, ver2, 2019.7.4.* *

Also Published As

Publication number Publication date
US11533487B2 (en) 2022-12-20
JP2024019443A (ja) 2024-02-09
US20220124340A1 (en) 2022-04-21
WO2021004445A1 (en) 2021-01-14
CN117395396A (zh) 2024-01-12
CN114128280A (zh) 2022-03-01
US20230096945A1 (en) 2023-03-30
EP3977738A1 (en) 2022-04-06
JP2022540117A (ja) 2022-09-14
US11956439B2 (en) 2024-04-09
CN114128280B (zh) 2023-11-14
KR102660738B1 (ko) 2024-04-26
JP7460748B2 (ja) 2024-04-02
EP3977738A4 (en) 2022-08-17

Similar Documents

Publication Publication Date Title
KR102660738B1 (ko) 크로마 잔차 스케일링의 시그널링
JP7418478B2 (ja) クロマ残差スケーリングのためのシンタックス要素
AU2020260285B2 (en) Restriction on applicability of cross component mode
KR102641796B1 (ko) 교차-성분 코딩의 적용가능성에 대한 조건들
JP7317991B2 (ja) クロスコンポーネント依存性を低減するための方法
JPWO2020216246A5 (ko)

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant