KR102641796B1 - 교차-성분 코딩의 적용가능성에 대한 조건들 - Google Patents

교차-성분 코딩의 적용가능성에 대한 조건들 Download PDF

Info

Publication number
KR102641796B1
KR102641796B1 KR1020217035446A KR20217035446A KR102641796B1 KR 102641796 B1 KR102641796 B1 KR 102641796B1 KR 1020217035446 A KR1020217035446 A KR 1020217035446A KR 20217035446 A KR20217035446 A KR 20217035446A KR 102641796 B1 KR102641796 B1 KR 102641796B1
Authority
KR
South Korea
Prior art keywords
chroma
block
luma
video unit
linear model
Prior art date
Application number
KR1020217035446A
Other languages
English (en)
Other versions
KR20220006053A (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 KR20220006053A publication Critical patent/KR20220006053A/ko
Application granted granted Critical
Publication of KR102641796B1 publication Critical patent/KR102641796B1/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/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/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Landscapes

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

Abstract

비주얼 미디어 처리를 위한 방법으로서: 고정 값에 기초하여, 비주얼 미디어 데이터의 현재 비디오 유닛과 연관된 적어도 하나의 크로마 블록에 대한 크로마 잔차 스케일링 인자를 표현하는 것을 특정하는 규칙을 사용하는 단계- 고정 값은 적어도 하나 이상의 조건에 기초함 -; 및 현재 비디오 유닛과 현재 비디오 유닛의 비트스트림 표현 사이의 전환을 수행하는 단계를 포함한다.

Description

교차-성분 코딩의 적용가능성에 대한 조건들
본 출원은, 2019년 5월 8일자로 출원된 국제 특허 출원 번호 PCT/CN2019/085996에 대한 우선권 및 그의 이익을 주장하는, 2020년 5월 8일자로 출원된 PCT/CN2020/089096에 기초한다. 전술한 특허 출원들 모두는 그 전체가 참고로 본 명세서에 포함된다.
본 특허 문서는 비디오 코딩/디코딩 기법들, 디바이스들 및 시스템들에 관한 것이다.
비디오 압축에 있어서의 진보에도 불구하고, 디지털 비디오는 여전히 인터넷 및 다른 디지털 통신 네트워크들에서 가장 큰 대역폭 사용을 차지한다. 비디오를 수신 및 디스플레이할 수 있는 접속된 사용자 디바이스의 수가 증가함에 따라, 디지털 비디오 사용에 대한 대역폭 수요가 계속 성장할 것으로 예상된다.
디지털 비디오 코딩/디코딩에 관련된 디바이스들, 시스템들 및 방법들, 및 구체적으로, 비디오 코딩/디코딩에서 CCLM(cross-component linear model) 예측 모드에 대한 단순화된 선형 모델 도출들이 설명된다. 설명된 방법들은 기존의 비디오 코딩 표준들(예를 들어, HEVC(High Efficiency Video Coding))와 미래의 비디오 코딩 표준들(예를 들어, VVC(Versatile Video Coding)) 둘 다 또는 코덱들에 적용될 수 있다.
하나의 대표적인 양태에서, 개시된 기술은 비주얼 미디어 처리를 위한 방법을 포함한다. 이 예시적인 방법은: 비주얼 미디어 데이터의 대응하는 루마 블록의 이웃 루마 블록들의 이용가능성을 결정하는 것에 응답하여, 제1 파라미터가 현재 비디오 크로마 블록의 이웃 루마 샘플들의 고정 값 또는 라운딩-기반 평균 값으로서 도출되도록 비주얼 미디어 데이터의 현재 비디오 크로마 블록에 대한 제1 파라미터를 도출하는 단계- 대응하는 루마 블록은 현재 비디오 크로마 블록과 연관된 위치를 커버함 -; 제1 파라미터에 기초하여 크로마 스케일링 인자를 결정하는 단계; 크로마 스케일링 인자에 기초하여 현재 비디오 크로마 블록의 크로마 잔차 스케일링을 수행하는 단계; 및 현재 비디오 크로마 블록과 현재 비디오 크로마 블록의 비트스트림 표현 사이의 전환을 위해 크로마 스케일링 인자를 사용하는 단계를 포함한다.
하나의 대표적인 양태에서, 개시된 기술은 비주얼 미디어 처리를 위한 방법을 포함한다. 이 예시적인 방법은, 고정 값에 기초하여, 비주얼 미디어 데이터의 현재 비디오 유닛과 연관된 적어도 하나의 크로마 블록에 대한 크로마 잔차 스케일링 인자를 표현하는 것을 특정하는 규칙을 사용하는 단계- 고정 값은 적어도 하나 이상의 조건에 기초함 -; 및 현재 비디오 유닛과 현재 비디오 유닛의 비트스트림 표현 사이의 전환을 수행하는 단계를 포함한다.
하나의 대표적인 양태에서, 개시된 기술은 비주얼 미디어 처리를 위한 방법을 포함한다. 이 예시적인 방법은, 비주얼 미디어 데이터의 현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 전환 동안, 현재 비디오 블록과 연관된 차원들 및/또는 파티션 정보 및/또는 코딩 구조 타입에 적어도 부분적으로 기초하여, 현재 비디오 블록의 컬러 성분들에 대한 CCLM(cross-component linear model)의 적용을 선택적으로 인에이블 또는 디스에이블하는 결정을 실시하는 단계를 포함하고, CCLM에서, 제1 세트의 컬러 성분들은 제2 세트의 컬러 성분들의 선형 조합에 기초하여 예측된다.
다른 예시적인 양태에서, 위에 설명한 방법은 프로세서를 포함하는 비디오 인코더 장치에 의해 구현될 수 있다.
다른 예시적인 양태에서, 위에 설명한 방법은 프로세서를 포함하는 비디오 디코더 장치에 의해 구현될 수 있다.
또 다른 예시적인 양태에서, 이들 방법은 프로세서 실행가능 명령어들의 형식으로 구현되고 컴퓨터 판독가능 프로그램 매체 상에 저장될 수 있다.
이들 및 다른 양태들은 본 문서에서 추가로 설명된다.
도 1은 HEVC에서의 각도 인트라 예측 모드들의 일 예를 도시한다.
도 2는 HEVC에 없는 방향 모드들의 일 예를 도시한다.
도 3은 CCLM 모드와 관련하여 일 예를 도시한다.
도 4는 크로마 스케일링을 갖는 루마 맵핑(luma mapping with chroma scaling) 아키텍처의 일 예를 도시한다.
도 5는 상이한 컬러 포맷들에서의 루마 블록 및 크로마 블록의 일 예를 도시한다.
도 6은 동일한 컬러 포맷들에서의 루마 블록 및 크로마 블록의 일 예를 도시한다.
도 7은 다수의 포맷을 커버하는 동위치(collocated) 루마 블록의 일 예를 도시한다.
도 8은 더 큰 루마 블록 내의 루마 블록의 일 예를 도시한다.
도 9는 더 큰 루마 블록 내의 그리고 바운딩 박스 내의 루마 블록의 일 예를 도시한다.
도 10은 본 문서에서 설명된 비주얼 미디어 디코딩 또는 비주얼 미디어 인코딩 기법을 구현하기 위한 하드웨어 플랫폼의 일 예의 블록도이다.
도 11은 개시된 기술에 따른 교차-성분 예측(cross-component prediction)을 위한 선형 모델 도출들을 위한 예시적인 방법의 흐름도를 도시한다.
도 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의 최고 확률 모드(most-probable-mode) 코딩 스킴은 이 모드가 선택되는 것을 위하여 바이어싱된다.
2.2 VVC(Versatile Video Coding) 알고리즘 설명
2.2.1 VVC 코딩 아키텍처
HEVC 이후 미래의 비디오 코딩 기술들을 탐구하기 위해, JVET(Joint Video Exploration Team)가 2015년 공동으로 VCEG 및 MPEG에 의해 설립되었다. JVET 회의는 분기마다 한 번 개최되고, 새로운 코딩 표준은 HEVC와 비교하여 50% 비트레이트 감소를 목표로 하고 있다. 새로운 비디오 코딩 표준은 2018년 4월 JVET 회의에서 VVC(Versatile Video Coding)로서 공식적으로 명명되었고, 그때 VTM(VVC test model)의 첫 번째 버전이 발표되었다. VVC 표준화에 기여하는 지속적인 노력이 있음에 따라, 새로운 코딩 기법들이 JVET 회의마다 VVC 표준에 채택되고 있다. 그 후 VVC 작업 초안 및 테스트 모델 VTM은 회의 후마다 업데이트된다. VVC 프로젝트는 이제 2020년 7월 회의에서 기술적 완성(FDIS)을 목표로 하고 있다.
대부분의 이전 표준들에서와 같이, VVC는 인터-픽처 및 인트라-픽처 예측 및 변환 코딩을 엔트로피 코딩과 조합하는 블록 기반 하이브리드 코딩 아키텍처를 갖는다. 픽처 파티셔닝 구조는 입력 비디오를 CTU들(coding tree units)이라고 불리는 블록들로 나눈다. CTU는 내포된(nested) 멀티-타입 트리 구조를 갖는 쿼드트리를 사용하여 CU들로 분할되며, 리프 CU는 동일한 예측 모드(예를 들어, 인트라 또는 인터)를 공유하는 영역을 정의한다. 본 문서에서, 용어 '유닛(unit)'은 모든 컬러 성분들을 커버하는 이미지의 영역을 정의하고; 용어 '블록'은 특정 컬러 성분(예를 들어, 루마)을 커버하는 영역을 정의하기 위해 사용되고, 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에서 적색 점선 화살표들로서 묘사되고, 평면 및 DC 모드들은 동일하게 유지된다. 이들 더 조밀한 방향 인트라 예측 모드들은 모든 블록 크기들에 대해 그리고 루마 및 크로마 인트라 예측들 둘 다에 대해 적용된다.
2.2.3.2 CCLM(Cross-component linear model prediction)
교차-성분 중복(cross-component redundancy)을 감소시키기 위해, CCLM(cross-component linear model) 예측 모드가 VTM4에서 사용되며, 크로마 샘플들은 다음과 같이 선형 모델을 사용함으로써 동일한 CU의 재구성된 루마 샘플들에 기초하여 예측된다:
여기서 predC(i,j)는 CU에서 예측된 크로마 샘플들을 표현하고, recL(i,j)는 동일한 CU의 다운샘플링된 재구성된 루마 샘플들을 표현한다. 선형 모델 파라미터 α 및 β는 다운샘플링된 이웃 루마 샘플들의 세트 내부에서 최소 샘플 값 및 최대 샘플을 갖는 루마 샘플인 2개의 샘플 및 그들의 대응하는 크로마 샘플들로부터의 루마 값들과 크로마 값들 사이의 관계로부터 도출된다. 선형 모델 파라미터들 α 및 β는 다음의 수학식들에 따라 획득된다.
여기서 Ya 및 Xa는 최대 루마 샘플 값을 갖는 루마 샘플의 루마 값 및 크로마 값을 표현한다. 그리고 Xb 및 Yb는 각각 최소 루마 샘플을 갖는 루마 샘플의 루마 값 및 크로마 값을 표현한다. 도 3은 CCLM 모드에 수반되는 현재 블록의 샘플 및 왼쪽 및 위의 샘플들의 위치의 일 예를 도시한다.
파라미터 α를 계산하는 나눗셈 연산은 룩업 테이블로 구현된다. 테이블을 저장하기 위해 요구되는 메모리를 감소시키기 위해, diff 값(최대 값과 최소 값 사이의 차이) 및 파라미터 α는 지수 표기법에 의해 표현된다. 예를 들어, diff는 4-비트 유효 부분 및 지수로 근사화된다. 결과적으로, 1/diff에 대한 테이블은 다음과 같이 가수(significand)의 16개의 값에 대해 16개의 요소로 감소된다:
이것은 계산의 복잡성 뿐만 아니라 필요한 테이블들을 저장하기 위해 요구되는 메모리 크기를 감소시키는 둘 다의 이점을 가질 것이다.
위의 템플릿 및 왼쪽 템플릿이 선형 모델 계수들을 함께 계산하기 위해 사용될 수 있는 것 이외에, 그것들은 LM_A 및 LM_L 모드들이라고 불리는 다른 2개의 LM 모드에서도 대안적으로 사용될 수 있다.
LM_A 모드에서는, 위의 템플릿만이 선형 모델 계수들을 계산하기 위해 사용된다. 더 많은 샘플들을 얻기 위해, 위의 템플릿은 (W+H)로 확장된다. LM_L 모드에서는, 왼쪽 템플릿만이 선형 모델 계수들을 계산하기 위해 사용된다. 더 많은 샘플들을 얻기 위해, 왼쪽 템플릿은 (H+W)로 확장된다.
비-정사각형 블록에 대해, 위의 템플릿은 W+W로 확장되고, 왼쪽 템플릿은 H+H로 확장된다.
4:2:0 비디오 시퀀스들에 대한 크로마 샘플 위치들을 매칭시키기 위해, 수평 및 수직 방향들 둘 다에서 2 대 1 다운샘플링 비율을 달성하기 위해 루마 샘플들에 2가지 타입의 다운샘플링 필터가 적용된다. 다운샘플링 필터의 선택은 SPS 레벨 플래그에 의해 특정된다. 2개의 다운샘플링 필터는 다음과 같고, 이들은 각각 "타입-0" 및 "타입-2" 콘텐츠에 대응한다.
상부 참조 라인이 CTU 경계에 있을 때 다운샘플링된 루마 샘플들을 만들기 위해 단 하나의 루마 라인(인트라 예측에서의 일반 라인 버퍼)만이 사용된다는 점에 유의한다.
이러한 파라미터 산출은, 인코더 검색 동작으로서만이 아니고, 디코딩 프로세스의 일부로서 수행된다. 그 결과, 디코더에 α 및 β 값들을 전달하기 위해 어떤 신택스도 사용되지 않는다.
크로마 인트라 모드 코딩의 경우, 크로마 인트라 모드 코딩에 대해 총 8개의 인트라 모드가 허용된다. 이러한 모드들은 5개의 전통적인 인트라 모드 및 3개의 교차-성분 선형 모델 모드(CCLM, LM_A 및 LM_L)를 포함한다. 크로마 모드 코딩은 대응하는 루마 블록의 인트라 예측 모드에 직접 의존한다. 루마 및 크로마 성분들에 대한 개별 블록 파티셔닝 구조가 I 슬라이스들에서 인에이블되므로, 하나의 크로마 블록은 다수의 루마 블록에 대응할 수 있다. 따라서, 크로마 DM 모드의 경우, 현재 크로마 블록의 중심 포지션(center position)을 커버하는 대응하는 루마 블록의 인트라 예측 모드가 직접 승계된다.
2.2.3.2.1 대응하는 수정된 작업 초안(JVET-N0271)
다음의 사양은 JVET-M1001의 수정된 작업 초안 및 JVET-N0271에서의 채택에 기초한다. 채택된 JVET-N0220의 수정들은 굵게 그리고 밑줄로 도시된다.
신택스 테이블
시퀀스 파라미터 세트 RBSP 신택스
의미론
sps_cclm_enabled_flag가 0과 동등한 것은 루마 성분으로부터 크로마 성분으로의 교차-성분 선형 모델 인트라 예측이 디스에이블되는 것을 특정한다. sps_cclm_enabled_flag가 1과 동등한 것은 루마 성분으로부터 크로마 성분으로의 교차-성분 선형 모델 인트라 예측이 인에이블되는 것을 특정한다.
디코딩 프로세스
INTRA_LT_CCLM, INTRA_L_CCLM 및 INTRA_T_CCLM 인트라 예측 모드의 8.4.4.2.8 사양에서
이 프로세스에 대한 입력들은 다음과 같다:
- 인트라 예측 모드 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)가 다음과 같이 도출된다:
변수들 availL, availT 및 availTL은 다음과 같이 도출된다:
- 조항 6.4.X [Ed.(BB): 이웃 블록 이용가능성 검사 프로세스 tbd] 에서 특정된 바와 같은 블록에 대한 왼쪽 이웃 샘플들 도출 프로세스의 이용가능성은 입력들로서 (xTbC, yTbC)와 동등하게 설정된 현재 크로마 위치 (xCurr, yCurr) 및 이웃 크로마 위치 (xTbC-1, yTbC)로 발동(invoke)되고, 출력은 availL에 배정된다.
- 조항 6.4.X [Ed. (BB): 이웃 블록 이용가능성 검사 프로세스 tbd] 에서 특정된 바와 같은 블록에 대한 상부 이웃 샘플들 도출 프로세스의 이용가능성은 입력들로서 (xTbC, yTbC)와 동등하게 설정된 현재 크로마 위치 (xCurr, yCurr) 및 이웃 크로마 위치 (xTbC, yTbC-1)로 발동되고, 출력은 availT에 배정된다.
- 조항 6.4.X [Ed. (BB): 이웃 블록 이용가능성 검사 프로세스 tbd] 에서 특정된 바와 같은 블록에 대한 왼쪽 상단 이웃 샘플들 도출 프로세스의 이용가능성은 입력들로서 (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): 이웃 블록 이용가능성 검사 프로세스 tbd] 에서 특정된 바와 같은 블록에 대한 이용가능성 도출 프로세스는 입력들로서 (xTbC, yTbC)와 동등하게 설정된 현재 크로마 위치 (xCurr, yCurr) 및 이웃 크로마 위치 (xTbC+ x, yTbC-1)로 발동되고, 출력은 availableTR에 배정된다.
- availableTR이 TRUE와 동등할 때, numTopRight은 1만큼 증분된다.
- 이용가능한 아래 왼쪽 이웃 크로마 샘플들의 수 numLeftBelow가 다음과 같이 도출된다:
- 변수 numLeftBelow는 0과 동등하게 설정되고 availLB는 TRUE와 동등하게 설정된다.
- predModeIntra가 INTRA_L_CCLM과 동등할 때, availLB가 FALSE와 동등하거나 y가 2*nTbH-1과 동등할 때까지 y = nTbH..2*nTbH-1에 대해 다음이 적용된다:
- 조항 6.4.X [Ed. (BB): 이웃 블록 이용가능성 검사 프로세스 tbd] 에서 특정된 바와 같은 블록에 대한 이용가능성 도출 프로세스는 입력들로서 (xTbC, yTbC)와 동등하게 설정된 현재 크로마 위치 (xCurr, yCurr) 및 이웃 크로마 위치 (xTbC-1, yTbC+y)로 발동되고, 출력은 availableLB에 배정된다.
- availableLB가 TRUE와 동등할 때, numLeftBelow는 1만큼 증분된다.
상단 및 상단-우측 상의 이용가능한 이웃 크로마 샘플들의 수 nTopSamp 및 왼쪽 및 왼쪽-하부 상의 이용가능한 이웃 크로마 샘플들의 수 nLeftSamp는 다음과 같이 도출된다:
- predModeIntra가 INTRA_LT_CCLM과 동등한 경우, 다음이 적용된다:
- 그렇지 않으면, 다음이 적용된다:
변수 bCTUboundary가 다음과 같이 도출된다:
변수 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과 동등한 경우, 다음이 적용된다:
- 그렇지 않으면, 다음의 순서화된 단계들이 적용된다:
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이 다음과 같이 도출된다:
- availL이 TRUE와 동등한 경우, pDsY[0][y], y = 1..nTbH-1이 다음과 같이 도출된다:
- 그렇지 않으면, pDsY[0][y], y = 1..nTbH-1이 다음과 같이 도출된다:
- availT가 TRUE와 동등한 경우, pDsY[x][0], x = 1..nTbW-1이 다음과 같이 도출된다:
- 그렇지 않으면, pDsY[x][0], x = 1..nTbW-1은 다음과 같이 도출된다:
- availL이 TRUE와 동등하고 availT가 TRUE와 동등한 경우, pDsY[0][0]은 다음과 같이 도출된다:
- 그렇지 않고 availL이 TRUE와 동등하고 availT가 FALSE와 동등한 경우, pDsY[0][0]은 다음과 같이 도출된다:
- 그렇지 않고 availL이 FALSE와 동등하고 availT가 TRUE와 동등한 경우, pDsY[0][0]은 다음과 같이 도출된다:
- 그렇지 않으면(availL이 FALSE와 동등하고 availT가 FALSE와 동등함), pDsY[0][0]은 다음과 같이 도출된다:
- 그렇지 않으면, 다음이 적용된다:
- pDsY[x][y], x = 1..nTbW-1, y = 0..nTbH-1이 다음과 같이 도출된다:
- availL이 TRUE와 동등한 경우, pDsY[0][y], y = 0..nTbH-1이 다음과 같이 도출된다:
- 그렇지 않으면, pDsY[0][y], y = 0..nTbH-1이 다음과 같이 도출된다:
4. numSampleL이 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인 경우,
- 그렇지 않으면,
- 그렇지 않으면, 다음이 적용된다:
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와 동등한 경우, 다음이 적용된다:
- 그렇지 않으면(bCTUboundary가 TRUE와 동등함), 다음이 적용된다:
- 그렇지 않으면:
- availTL이 TRUE와 동등하고 bCTUboundary가 FALSE와 동등한 경우, 다음이 적용된다:
- 그렇지 않고 availTL이 TRUE와 동등하고 bCTUboundary가 TRUE와 동등한 경우, 다음이 적용된다:
- 그렇지 않고 availTL이 FALSE와 동등하고 bCTUboundary가 FALSE와 동등한 경우, 다음이 적용된다:
- 그렇지 않으면(availTL이 FALSE와 동등하고 bCTUboundary가 TRUE와 동등함), 다음이 적용된다:
- 그렇지 않으면, 다음이 적용된다:
- x > 0인 경우:
- bCTUboundary가 FALSE와 동등한 경우, 다음이 적용된다:
- 그렇지 않으면(bCTUboundary가 TRUE와 동등함), 다음이 적용된다:
- 그렇지 않으면:
- availTL이 TRUE와 동등하고 bCTUboundary가 FALSE와 동등한 경우, 다음이 적용된다:
- 그렇지 않고 availTL이 TRUE와 동등하고 bCTUboundary가 TRUE와 동등한 경우, 다음이 적용된다:
- 그렇지 않고 availTL이 FALSE와 동등하고 bCTUboundary가 FALSE와 동등한 경우, 다음이 적용된다:
- 그렇지 않으면(availTL이 FALSE와 동등하고 bCTUboundary가 TRUE와 동등함), 다음이 적용된다:
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.
- pSelDsY[minGrpIdx[0]] > pSelDsY[minGrpIdx[1]]인 경우, Swap(minGrpIdx[0], minGrpIdx[1]).
- pSelDsY[maxGrpIdx[0]] > pSelDsY[maxGrpIdx[1]]인 경우, Swap(maxGrpIdx[0], maxGrpIdx[1]).
- pSelDsY[minGrpIdx[0]] > pSelDsY[maxGrpIdx[1]]인 경우, Swap(minGrpIdx, maxGrpIdx ).
- 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과 동등한 경우, 다음이 적용된다:
- 그렇지 않으면, 다음이 적용된다:
- diff가 0과 동등하지 않은 경우, 다음이 적용된다:
여기서 divSigTable[]은 다음과 같이 특정된다:
그렇지 않으면(diff가 0과 동등함), 다음이 적용된다:
8. 예측 샘플들 predSamples[x][y], x = 0..nTbW-1, y = 0..nTbH-1은 다음과 같이 도출된다:
2.2.3.3 여러 종류의 인트라 예측 양태들
VTM4는 HEVC와 상이한 많은 인트라 코딩 툴들을 포함하는데, 예를 들어, bock 트리 구조에 더하여 VVC 테스트 모델 3에 다음의 특징들이 포함되어 있다.
· 광각 모드 확장을 갖는 67개의 인트라 모드
· 블록 크기 및 모드 의존 4 탭 보간 필터
· PDPC(Position dependent intra prediction combination)
· 교차-성분 선형 모델 인트라 예측
· 다중-참조 라인 인트라 예측
· 인트라 서브-파티션들
2.2.4 VVC에서의 인터 예측
2.2.4.1 조합된 인터 및 인트라 예측(CIIP)
VTM4에서, CU가 병합 모드에서 코딩될 때, 그리고 CU가 적어도 64개의 루마 샘플을 포함하는 경우(즉, CU 폭 곱하기 CU 높이가 64 이상인 경우), 조합된 인터/인트라 예측(CIIP) 모드가 현재 CU에 적용되는 경우를 표시하기 위해 추가적인 플래그가 시그널링된다.
CIIP 예측을 형성하기 위해, 먼저 2개의 추가적인 신택스 요소로부터 인트라 예측 모드가 도출된다. 최대 4개의 가능한 인트라 예측 모드가 사용될 수 있다: DC, 평면, 수평, 또는 수직. 그 후, 정규 인트라 및 인터 디코딩 프로세스들을 사용하여 인터 예측 및 인트라 예측 신호들이 도출된다. 마지막으로, 인터 및 인트라 예측 신호들의 가중 평균을 수행하여 CIIP 예측을 획득한다.
2.2.4.2 여러 종류의 인터 예측 양태들
VTM4는 HEVC와 상이한 많은 인터 코딩 툴을 포함하는데, 예를 들어, bock 트리 구조에 더하여 VVC 테스트 모델 3에 다음의 특징들이 포함되어 있다.
· 아핀 모션 인터 예측
· 서브-블록 기반 시간 모션 벡터 예측
· 적응 모션 벡터 해상도
· 시간 모션 예측을 위한 8x8 블록 기반 모션 압축
· 루마 성분에 대한 8-탭 보간 필터 및 크로마 성분에 대한 4-탭 보간 필터를 이용한 높은 정밀도(1/16 pel) 모션 벡터 저장 및 모션 보상
· 삼각형 파티션들
· 조합된 인트라 및 인터 예측
· MMVD(Merge with MVD)
· 대칭 MVD 코딩
· 양방향 광학 흐름
· 디코더 측 모션 벡터 정제
· 양방향 예측 가중 평균
2.2.5 인-루프 필터들
VTM4에는 총 3개의 인-루프 필터가 있다. 디블로킹 필터 및 SAO(HEVC에서의 2개의 루프 필터)이외에, ALF(adaptive loop filter)가 VTM4에서 적용된다. VTM4에서의 필터링 프로세스의 순서는 디블로킹 필터, SAO 및 ALF이다.
VTM4에서, SAO 및 디블로킹 필터링 프로세스들은 HEVC에서의 것들과 거의 동일하다.
VTM4에서는, 크로마 스케일링을 갖는 루마 맵핑이라고 불리는 새로운 프로세스가 추가되었다(이 프로세스는 이전에 적응 인-루프 재성형기(adaptive in-loop reshaper)라고 알려졌다). 이 새로운 프로세스는 디블로킹 전에 수행된다.
2.2.6 LMCS(Luma mapping with chroma scaling)(일명, 인-루프 재성형)
VTM4에서는, LMCS(luma mapping with chroma scaling)이라고 불리는 코딩 툴이 루프 필터들 전에 새로운 처리 블록으로서 추가된다. LMCS는 2개의 주요 성분을 갖는다: 1) 적응 구분적 선형 모델(adaptive piecewise linear model)들에 기초한 루마 성분의 인-루프 맵핑; 2) 크로마 성분들에 대해, 루마-의존 크로마 잔차 스케일링이 적용된다. 도 4는 디코더의 관점에서의 LMCS 아키텍처를 도시한다. 도 4에서 옅은 청색 음영 블록들은 맵핑된 도메인에서 처리가 적용되는 곳을 지시하고; 이들은 역양자화, 역변환, 루마 인트라 예측, 및 루마 잔차와 함께 루마 예측을 가산하는 것을 포함한다. 도 4에서 비음영 블록들은 원래의(즉, 비-맵핑된) 도메인에서 처리가 적용되는 곳을 지시하고; 이들은 디블로킹, ALF, 및 SAO와 같은 루프 필터들, 모션 보상 예측, 크로마 인트라 예측, 크로마 잔차와 함께 크로마 예측을 가산하는 것, 및 참조 픽처들로서 디코딩된 픽처들의 저장을 포함한다. 도 4에서 옅은 황색 음영 블록들은 루마 신호의 순방향 및 역방향 맵핑 및 루마-의존 크로마 스케일링 프로세스를 포함하는 새로운 LMCS 기능 블록들이다. VVC에서의 대부분의 다른 툴들과 같이, LMCS는 SPS 플래그를 사용하여 시퀀스 레벨에서 인에이블/디스에이블될 수 있다.
2.2.6.1 구분적 선형 모델을 갖는 루마 맵핑
루마 성분의 인-루프 맵핑은 압축 효율을 개선하기 위해 동적 범위(dynamic range)에 걸쳐 코드워드들을 재분배하는 것에 의해 입력 신호의 동적 범위를 조정한다. 루마 맵핑은 순방향 맵핑 함수(FwdMap) 및 대응하는 역방향 맵핑 함수(InvMap)를 이용한다. FwdMap 함수는 16개의 동등한 피스(piece)를 갖는 구분적 선형 모델(piecewise linear model)을 사용하여 시그널링된다. InvMap 함수는 시그널링될 필요가 없고 대신에 FwdMap 함수로부터 도출된다.
루마 맵핑 모델은 타일 그룹 레벨에서 시그널링된다. 존재 플래그(presence flag)가 먼저 시그널링된다. 현재 타일 그룹에 루마 맵핑 모델이 존재하는 경우, 대응하는 구분적 선형 모델 파라미터들이 시그널링된다. 구분적 선형 모델은 입력 신호의 동적 범위를 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]은 다음과 같이 계산된다:
여기서 SignalledCW[i]는 i번째 피스에 대한 시그널링된 코드워드의 수이다.
도 4에 도시된 바와 같이, 인터-코딩된 블록에 대해, 맵핑된 도메인에서 모션 보상 예측이 수행된다. 다시 말해서, 모션-보상된 예측 블록 Y pred 가 DPB에서의 참조 신호들에 기초하여 계산된 후에, 원래 도메인에서의 루마 예측 블록을 맵핑된 도메인에 맵핑하기 위해 FwdMap 함수가 적용되는데, Y' pred = FwdMap(Y pred) 이다. 인트라-코딩된 블록에 대해서는, 맵핑된 도메인에서 인트라 예측이 수행되기 때문에 FwdMap 함수가 적용되지 않는다. 재구성된 블록 Y r 이 계산된 후에, 맵핑된 도메인에서의 재구성된 루마 값들을 원래 도메인에서의 재구성된 루마 값들로 다시 전환하기 위해 InvMap 함수가 적용된다 . InvMap 함수는 인트라- 및 인터-코딩된 루마 블록들 둘 다에 적용된다.
루마 맵핑 프로세스(순방향 및/또는 역방향 맵핑)는 LUT(look-up-tables)을 사용하여 또는 온-더-플라이(on-the-fly) 산출을 사용하여 구현될 수 있다. LUT가 사용되는 경우, 타일 그룹 레벨에서의 사용을 위해 FwdMapLUTInvMapLUT가 미리 계산되어 미리 저장될 수 있고, 순방향 및 역방향 맵핑은 각각 FwdMap(Y pred ) = FwdMapLUT[Y pred ]InvMap(Y r ) = InvMapLUT[Y r ]로서 간단히 구현될 수 있다. 대안적으로, 온-더-플라이 산출이 사용될 수 있다. 순방향 맵핑 함수 FwdMap를 예로 들자. 루마 샘플이 속하는 피스를 알아내기 위해, 샘플 값은 6 비트(16개의 동등한 피스에 대응함)만큼 오른쪽 시프트된다. 그 후, 해당 피스에 대한 선형 모델 파라미터들이 검색되고 온-더-플라이로 적용되어 맵핑된 루마 값을 산출한다. i를 피스 인덱스라고 하고, a1, a2를 각각 InputPivot[i] 및 InputPivot[i+1]라고 하고, b1, b2를 각각 MappedPivot[i] 및 MappedPivot[i+1]라고 하자. FwdMap 함수는 다음과 같이 평가된다:
InvMap 함수는, 샘플 값이 속하는 피스를 알아낼 때 간단한 오른쪽 비트 시프트 대신에 조건부 검사들이 적용될 필요가 있다는 점을 제외하고는, 유사한 방식으로 온-더-플라이로 산출될 수 있는데, 그 이유는 맵핑된 도메인에서의 피스들이 동등한 크기가 아니기 때문이다.
2.2.6.2 루마-의존 크로마 잔차 스케일링
크로마 잔차 스케일링은 루마 신호와 그것의 대응하는 크로마 신호들 사이의 상호작용을 보상하도록 설계된다. 크로마 잔차 스케일링이 인에이블되는지 여부도 타일 그룹 레벨에서 시그널링된다. 루마 맵핑이 인에이블되는 경우 그리고 이중 트리 파티션(개별 크로마 트리라고도 알려짐)이 현재 타일 그룹에 적용되지 않는 경우, 루마-의존 크로마 잔차 스케일링이 인에이블되는지 여부를 지시하는 추가적인 플래그가 시그널링된다. 루마 맵핑이 사용되지 않을 때, 또는 이중 트리 파티션이 현재 타일 그룹에서 사용될 때, 루마-의존 크로마 잔차 스케일링이 디스에이블된다. 또한, 그 면적이 4와 동등하거나 그보다 작은 크로마 블록들에 대해서는 루마-의존 크로마 잔차 스케일링이 항상 디스에이블된다.
크로마 잔차 스케일링은 대응하는 루마 예측 블록의 평균 값에 의존한다(인트라- 및 인터-코딩된 블록 둘 다에 대해). 를 루마 예측 블록의 평균으로 표기하자. C ScaleInv 의 값은 다음의 단계들에서 산출된다:
1) InvMap 함수에 기초하여 avgY'가 속하는 구분적 선형 모델의 인덱스 Y Idx 를 찾는다.
2) C ScaleInv = cScaleInv[Y Idx ], 여기서 cScaleInv[]는 미리 산출된 16-피스 LUT이다.
현재 블록이 인트라, CIIP, 또는 IBC(intra block copy)(일명, 현재 픽처 참조 또는 CPR) 모드들로서 코딩되는 경우, avgY' 는 인트라-, CIIP-, 또는 IBC-예측 루마 값들의 평균으로서 산출되고; 그렇지 않으면, avgY' 는 순방향 맵핑된 인터 예측된 루마 값들(도 4에서 Y' pred )의 평균으로서 산출된다. 샘플 기반으로 수행되는 루마 맵핑과 달리, C ScaleInv 는 전체 크로마 블록에 대한 상수 값이다. C ScaleInv 를 이용하여, 크로마 잔차 스케일링은 다음과 같이 적용된다:
인코더 측:
디코더 측:
2.2.6.3 JVET-N0220에서의 채택을 갖는 JVET-M1001_v7에서의 대응하는 작업 초안
다음의 사양은 JVET-M1001의 수정된 작업 초안 및 JVET-N0220에서의 채택에 기초한다. 채택된 JVET-N0220에서의 수정은 볼드체 및 밑줄로 도시된다.
신택스 테이블들
7.3.2.1 시퀀스 파라미터 세트 RBSP 신택스에서
7.3.4.1 일반 타일 그룹 헤더 신택스에서
7.3.4.4 크로마 스케일링을 갖는 루마 맵핑 데이터 신택스에서
의미론
7.4.3.1 시퀀스 파라미터 세트 RBSP 의미론에서
sps_lmcs_enabled_flag 가 1과 동등한 것은 크로마 스케일링을 갖는 루마 맵핑이 CVS에서 사용되는 것을 특정한다. sps_lmcs_enabled_flag가 0과 동등한 것은 크로마 스케일링을 갖는 루마 맵핑이 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과 동등한 것은 크로마 스케일링을 갖는 루마 맵핑이 현재 타일 그룹에 대해 인에이블되는 것을 특정한다. tile_group_lmcs_enabled_flag가 0과 동등한 것은 크로마 스케일링을 갖는 루마 맵핑이 현재 타일 그룹에 대해 인에이블되지 않는 것을 특정한다. 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_min_bin_idx 는 크로마 스케일링을 갖는 루마 맵핑 구성 프로세스에서 사용되는 최소 빈 인덱스를 특정한다. lmcs_min_bin_idx의 값은 0 내지 15(언급된 수 포함)의 범위에 있어야 한다.
lmcs_delta_max_bin_idx 는 크로마 스케일링을 갖는 루마 맵핑 구성 프로세스에서 사용되는 최대 빈 인덱스 LmcsMaxBinIdx와 15 사이의 델타 값을 특정한다. 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가 다음과 같이 도출된다:
변수 lmcsDeltaCW[i], i = lmcs_min_bin_idx..LmcsMaxBinIdx가 다음과 같이 도출된다:
변수 lmcsCW[i]가 다음과 같이 도출된다:
- i = 0..lmcs_min_bin_idx-1에 대해, lmcsCW[i] 는 0과 동등하게 설정된다.
- i = lmcs_min_bin_idx..LmcsMaxBinIdx에 대해, 다음이 적용된다:
lmcsCW[i]의 값은 (OrgCW>>3) 내지 (OrgCW<<3 - 1)(언급된 수 포함)의 범위에 있어야 한다.
- i = LmcsMaxBinIdx + 1..15에 대해, lmcsCW[i]는 0과 동등하게 설정된다.
다음의 조건이 참이라는 것은 비트스트림 적합성의 요건이다:
변수 InputPivot[i], i = 0..16가 다음과 같이 도출된다:
변수 LmcsPivot[i], i = 0..16, 변수 ScaleCoeff[i] 및 InvScaleCoeff[i], i = 0..15가 다음과 같이 도출된다:
변수 ChromaScaleCoeff[i], i = 0…15가 다음과 같이 도출된다:
변수들 ClipRange, LmcsMinVal, 및 LmcsMaxVal은 다음과 같이 도출된다:
유의 - 어레이들 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의 동위치 루마 재구성된 샘플들에 의존한다. 이것은 이중/개별 트리에서 높은 레이턴시를 야기할 것이다.
· 이중/개별 트리의 경우에, 하나의 4x4 크로마 블록은 64x64 루마 블록에 대응할 수 있다. 따라서, 최악의 경우는 현재 크로마 블록에 대한 CCLM 프로세스가 대응하는 전체 64x64 루마 블록이 재구성될 때까지 기다릴 필요가 있을 수 있다는 것이다. 이러한 레이턴시 문제는 이중/개별 트리에서의 LMCS 크로마 스케일링과 유사하다.
4. 예시적인 기법들 및 실시예들
문제점들을 다루기 위해, 우리는 루마-의존 크로마 잔차 스케일링, CCLM, 및 상이한 컬러 성분으로부터의 정보에 의존하는 다른 코딩 툴들에서의 교차-성분 의존성을 제거/감소/제한하기 위한 수 개의 방법들을 제안한다.
아래에 설명된 상세한 실시예들은 일반적인 개념들을 설명하기 위한 예들로서 간주되어야 한다. 이들 실시예는 좁은 방식으로 해석되어서는 안 된다. 더욱이, 이들 실시예는 임의의 방식으로 조합될 수 있다.
아래에 설명된 해결책들(bullets)은 LMCS/CCLM을 명시적으로 언급하지만, 방법들은 또한 상이한 컬러 성분으로부터의 정보에 의존하는 다른 코딩 툴들에도 적용가능할 수 있다는 점에 유의한다. 또한, 아래에 언급된 용어 '루마' 및 '크로마'는 RGB 컬러 포맷의 'G 성분' 및 'B/R 성분'과 같은 '제1 컬러 성분' 및 '제2 컬러 성분'으로 각각 대체될 수 있다.
다음의 논의에서, "동위치(collocated) 샘플/블록"의 정의는 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)를 갖는다.
다음의 논의에서, "대응하는 블록"은 현재 블록과 상이한 위치를 가질 수 있다. 예를 들어, 현재 블록과 참조 프레임 내의 그것의 대응하는 블록 간에 모션 시프트가 있을 수 있다. 도 6에 예시된 바와 같이, 현재 블록이 현재 프레임 내의 (x,y)에 위치하고 모션 벡터 (mvx, mvy)를 갖는다고 가정하면, 현재 블록의 대응하는 블록은 참조 프레임 내의 (x+mvx,y+mvy)에 위치할 수 있다. 그리고 IBC 코딩된 블록에 대해, 동위치 루마 블록(제로 벡터로 지시됨) 및 대응하는 루마 블록(비-제로-BV로 지시됨)은 현재 프레임의 상이한 장소들(places)에 위치할 수 있다. 다른 예로, 루마 블록의 파티션이 (I 슬라이스들의 이중 트리 파티션에서) 크로마 블록의 파티션과 정렬되지 않을 때, 현재 크로마 블록의 동위치 루마 블록은 동위치 루마 블록의 왼쪽 상단 샘플을 커버하는 중첩된 루마 코딩 블록의 파티션 크기에 의존하는 더 큰 루마 블록에 속할 수 있다. 도 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) 또는/및 디코더에서 모션 벡터 또는/및 예측 샘플 값을 정제(refine)하는 다른 방법을 표현하기 위해 사용된다.
CCLM의 모델 산출 및 LMCS의 크로마 스케일링 레이턴시의 제거
1. 인터-코딩된 블록에 대해, 참조 프레임들 내의 현재 블록의 하나 또는 다수의 참조 샘플이 LMCS 모드에서 크로마 잔차 스케일링 인자를 도출하기 위해 사용될 수 있다는 것이 제안된다.
a) 일 예에서, 크로마 잔차 스케일링 인자를 도출하기 위해 참조 루마 샘플들이 직접 사용될 수 있다.
i. 대안적으로, 보간이 먼저 참조 샘플들에 적용될 수 있고 보간된 샘플들은 크로마 잔차 스케일링 인자를 도출하기 위해 사용될 수 있다.
ii. 대안적으로, 상이한 참조 프레임들 내의 참조 샘플들은 크로마 잔차 스케일링 인자 도출을 위해 사용되는 최종 참조 샘플들을 도출하기 위해 이용될 수 있다.
1) 일 예에서, 양방향 예측 코딩된 블록들에 대해, 위의 방법이 적용될 수 있다.
iii. 일 예에서, 참조 샘플들의 강도들은 크로마 잔차 스케일링 인자를 도출하기 위해 사용되기 전에 재성형(reshaping) 도메인으로 전환될 수 있다.
iv. 일 예에서, 참조 샘플들의 선형 조합이 크로마 잔차 스케일링 인자를 도출하기 위해 사용될 수 있다.
1) 예를 들어, 크로마 잔차 스케일링 인자를 도출하기 위해 a×S+b가 사용될 수 있고, 여기서 S는 참조 샘플이고, a 및 b는 파라미터들이다. 일 예에서, a와 b는 LIC(Localized Illuminate Compensation)에 의해 도출될 수 있다.
b) 일 예에서, 참조 프레임 내의 참조 루마 샘플들의 위치는 현재 블록의 모션 벡터(들)에 의존할 수 있다.
i. 일 예에서, 참조 샘플은, 참조 픽처에 있는, 그리고 현재 루마 블록과 동일한 폭 및 높이를 갖는, 참조 루마 블록에 속한다. 참조 픽처 내의 참조 루마 샘플의 포지션은, 모션 벡터를 추가하는, 현재 픽처 내의 그것의 대응하는 루마 샘플의 포지션으로서 계산될 수 있다.
ii. 일 예에서, 참조 루마 샘플들의 포지션은 참조 프레임 내의 대응하는 루마 샘플로 지칭되는, 현재 루마 블록 및 현재 블록의 모션 벡터의 왼쪽 상단(또는 중앙, 또는 오른쪽 하단) 샘플의 포지션에 의해 도출될 수 있다.
1) 일 예에서, 참조 프레임 내의 대응하는 루마 샘플을 도출하기 위해 정수 모션 벡터가 사용될 수 있다. 일 예에서, 하나의 블록과 연관된 모션 벡터는 제로를 향해 라운딩되거나, 제로로부터 멀어지게 라운딩되어 정수 모션 벡터를 도출할 수 있다.
2) 대안적으로, 참조 프레임 내의 대응하는 루마 샘플을 도출하기 위해 분수 모션 벡터가 사용될 수 있고, 따라서 분수 참조 샘플들을 도출하기 위해 보간 프로세스가 요구될 수 있다.
iii. 대안적으로, 참조 루마 샘플들의 포지션은 현재 루마 블록의 왼쪽 상단(또는 중앙, 또는 오른쪽 하단) 샘플의 포지션에 의해 도출될 수 있다.
iv. 대안적으로, 크로마 잔차 스케일링 인자를 계산하기 위해 참조 프레임 내의 일부 미리 정의된 포지션들에서의 다수의 대응하는 루마 샘플이 선택될 수 있다.
c) 일 예에서, 다수의 참조 루마 샘플들의 중앙값(median) 또는 평균 값이 크로마 잔차 스케일링 인자를 도출하기 위해 사용될 수 있다.
d) 일 예에서, 미리 정의된 참조 프레임들 내의 참조 루마 샘플들이 크로마 잔차 스케일링 인자를 도출하기 위해 사용될 수 있다.
i. 일 예에서, 미리 정의된 참조 프레임은 참조 픽처 리스트 0의 0과 동등한 참조 인덱스를 갖는 것일 수 있다.
ii. 대안적으로, 미리 정의된 참조 프레임에 대한 참조 인덱스 및/또는 참조 픽처 리스트는 시퀀스/픽처/타일 그룹/슬라이스/타일/CTU 행/비디오 단위 레벨에서 시그널링될 수 있다.
iii. 대안적으로, 다수의 참조 프레임 내의 참조 루마 샘플들이 도출될 수 있고 평균 또는 가중 평균 값들이 크로마 잔차 스케일링 인자를 획득하기 위해 이용될 수 있다.
2. LMCS 모드에서 루마 샘플들로부터 크로마 잔차 스케일링 인자를 도출할지 그리고 어떻게 도출할지는 현재 블록이 양방향 예측을 적용하는지에 의존할 수 있다는 것이 제안된다.
a) 일 예에서, 크로마 잔차 스케일링 인자는 각각의 예측 방향에 대해 개별적으로 도출된다.
3. LMCS 모드에서 루마 샘플들로부터 크로마 잔차 스케일링 인자를 도출할지 그리고 어떻게 도출할지는 현재 블록이 서브-블록 기반 예측을 적용하는지에 의존할 수 있다는 것이 제안된다.
a) 일 예에서, 서브-블록 기반 예측은 아핀 예측이다;
b) 일 예에서, 서브-블록 기반 예측은 대안적인 시간 모션 벡터 예측(Alternative Temporal Motion Vector Prediction, ATMVP)이다.
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) 일 예에서, 크로마 잔차 스케일링 인자를 도출하기 위해 첫 번째 MxN 루마 예측(또는 재구성) 샘플들의 평균 값이 선택될 수 있고, 여기서 MxN은 동위치 루마 블록 크기 폭x높이보다 작을 수 있다.
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) 일 예에서, N개의 이웃 샘플 중 1개가 크로마 잔차 스케일링 인자 및/또는 CCLM의 모델 산출을 도출하기 위해 선택될 수 있다. N=3, 및 3개의 이웃 샘플 (xCb-1, yCb-H-1), (xCb+ W/2, yCb-1), (xCb-1, yCb-1)의 검사 순서를 가정하면, 검사 리스트 내의 제1 이용가능 이웃 샘플이 크로마 잔차 스케일링 인자를 도출하기 위해 선택될 수 있다.
3) 일 예에서, "대응하는 루마 코딩 블록"의 왼쪽 이웃 열들 및/또는 위의 이웃 행들에 위치된 N개의 샘플의 중앙값 또는 평균 값은 CCLM의 모델 산출 및/또는 크로마 잔차 스케일링 인자를 도출하기 위해 사용될 수 있고, 여기서 N=1...2W+2H이고, W 및 H는 "대응하는 루마 코딩 블록"의 폭 및 높이이다.
d) 일 예에서, 크로마 잔차 스케일링을 수행할지는 대응하는 루마 블록의 "이용가능" 이웃 샘플들에 의존할 수 있다.
i. 일 예에서, 이웃 샘플들의 "이용가능성"은 현재 블록/서브-블록의 인코딩 모드 또는/및 이웃 샘플의 인코딩 모드에 의존할 수 있다.
1) 일 예에서, 인터 모드로 코딩된 블록에 대해, 인트라 모드 또는/및 IBC 모드 또는/및 CIIP 모드 또는/및 LIC 모드로 코딩된 이웃 샘플들은 "이용불가능한" 것으로 간주될 수 있다.
2) 일 예에서, 인터 모드로 코딩된 블록에 대해, 이웃 샘플들은 확산 필터 또는/및 양방향 필터를 이용하거나/하고 아다마르 변환 필터는 "이용불가능한" 것으로 간주될 수 있다.
ii. 일 예에서, 이웃 샘플들의 "이용가능성"은 현재 픽처/타일/타일 그룹/VPDU/슬라이스의 폭 및/또는 높이에 의존할 수 있다.
1) 일 예에서, 이웃 블록이 현재 픽처 외부에 위치하면, 그것은 "이용불가능한" 것으로 취급된다.
iii. 일 예에서, "이용가능한" 이웃 샘플이 없을 때, 크로마 잔차 스케일링이 허용되지 않을 수 있다.
iv. 일 예에서, "이용가능한" 이웃 샘플의 수가 K보다 작을 때(K>=1), 크로마 잔차 스케일링이 허용되지 않을 수 있다.
v. 대안적으로, 이용불가능한 이웃 샘플이 디폴트 고정 값, 또는 패딩, 또는 치환에 의해 채워져서, 크로마 잔차 스케일링이 항상 적용되게 할 수 있다.
1) 일 예에서, 이웃 샘플이 이용가능하지 않는 경우, 그것은 1<<(bitDepth-1)에 의해 채워질 수 있고, 여기서 bitDepth는 루마/크로마 성분들의 샘플들의 비트 심도(bit depth)를 특정한다.
2) 대안적으로, 이웃 샘플이 이용가능하지 않는 경우, 그것은 왼쪽/오른쪽/상단/하단 이웃에 위치한 주위 샘플들로부터 패딩에 의해 채워질 수 있다.
3) 대안적으로, 이웃 샘플이 이용가능하지 않는 경우, 그것은 미리 정의된 검사 순서로 제1 이용가능 인접 샘플로 치환될 수 있다.
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. 일 예에서, 필터링/맵핑 프로세스는, 인트라 블록들에 대한 참조 평활화 필터링, 양방향 필터와 같은 포스트-필터링(post-filtering), 아다마르 변환 기반 필터, 재성형기 도메인의 순방향 맵핑 등을 포함할 수 있다.
12. 현재 슬라이스/타일 그룹 내의 크로마 블록들(예컨대 CU들 또는 TU들)의 수들에 대한 크로마 잔차 스케일링 인자를 도출하기 위해 고정 값이 사용될 수 있다는 것이 제안된다.
a) 일 예에서, N개의 크로마 블록에 대한 크로마 잔차 스케일링 인자는 고정 값에 의해 도출될 수 있고, 여기서 N은 1... 현재 슬라이스/타일 그룹 내의 크로마 블록의 총 수이다.
b) 일 예에서, 고정 값은 값이 속하는 구분적 선형 모델(piecewise linear model)의 인덱스를 찾기 위해 사용될 수 있고, 크로마 잔차 스케일링 인자는 그 다음에 도출된 구분적 인덱스(piecewise index)로부터 계산될 수 있다. 일 예에서, 고정 값은 루마 샘플들에 대한 내부 비트 심도에 의존할 수 있다.
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과 동등하지 않다.
g) 일 예에서, 고정 값은 크로마 스케일링 인자를 도출하기 위해 구분적 함수 인덱스를 표현하는데 사용될 수 있다.
i. 일 예에서, 고정 값은 DPS/SPS/PPS/VPS/APS/슬라이스 헤더/타일 그룹 헤더와 같은 비디오 유닛에서 시그널링될 수 있다.
ii. 일 예에서, 고정 값은, 구분적 함수 인덱스를 식별하는데 사용될 수 있는 루마 샘플 강도를 표현할 수 있고, 식별된 구분적 함수 인덱스는 또한, 크로마 스케일링 인자를 찾는데 사용된다. 일 예에서, 고정 값은 0, 또는 (1<<lumaBitDepth)-1, 또는 1<<(lumaBitDepth-1)와 동등할 수도 있고, 여기서, lumaBitDepth는 루마 샘플들의 비트 심도를 나타낸다.
1) 일 예에서, 고정 값이 구분적 함수의 입력 범위 내에 있는 경우에 구분적 함수가 식별된다.
2) 일 예에서, 고정 값이 구분적 함수의 출력 범위 내에 있는 경우에 구분적 함수가 식별된다.
iii. 일 예에서, 고정 값은, 크로마 스케일링 인자를 찾는데 사용될 수 있는 고정된 구분적 함수 인덱스를 표현할 수 있다.
1) 일 예에서, 고정 값은 LMCS 구성 프로세스에서 사용되는 최소 빈 인덱스(예를 들어, lmcs_min_bin_idx)와 동등할 수 있다.
2) 일 예에서, 고정 값은 LMCS 구성 프로세스에서 사용되는 최대 빈 인덱스(예를 들어, LmcsMaxBinIdx)와 동등할 수 있다.
3) 일 예에서, 고정 값은 LMCS 구성 프로세스에서 사용되는 최대 빈 인덱스와 최소 빈 인덱스의 평균과 동등할 수 있다.
크로마 잔차 스케일링 및/또는 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. 위의 논의에서의 임계값들은 고정 수들일 수 있거나, 또는 시그널링될 수 있거나, 또는 표준 프로파일들/레벨들/티어들(tiers)에 의존할 수 있다.
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. 일 예에서, 동위치 루마 블록의 첫 번째 파티션 내의 모든 예측 샘플들(또는 재구성된 샘플들)의 평균이 LMCS 모드에서 크로마 잔차 스케일링 인자를 도출하기 위해 사용된다.
ii. 대안적으로, 동위치 루마 블록의 첫 번째 파티션 내의 왼쪽 상단 예측 샘플(또는 재구성된 샘플)이 LMCS 모드에서 크로마 잔차 스케일링 인자를 도출하기 위해 사용된다.
iii. 대안적으로, 동위치 루마 블록의 첫 번째 파티션 내의 중앙 예측 샘플(또는 재구성된 샘플)이 LMCS 모드에서 크로마 잔차 스케일링 인자를 도출하기 위해 사용된다.
h) CCLM 및 LMCS와 같은 교차-성분 툴들을 적용할지 그리고 어떻게 적용할지는 동위치 루마 블록의 적어도 하나의 샘플을 커버하는 하나 또는 다수의 루마 CU의 코딩 모드(들)에 의존할 수 있다는 것이 제안된다.
i. 예를 들어, 동위치 루마 블록의 적어도 하나의 샘플을 커버하는 하나 또는 다수의 루마 CU가 아핀 모드로 코딩되는 경우 교차-성분 툴들이 디스에이블되고;
ii. 예를 들어, 동위치 루마 블록의 적어도 하나의 샘플을 커버하는 하나 또는 다수의 루마 CU가 양방향 예측으로 코딩되는 경우 교차-성분 툴들이 디스에이블되고;
iii. 예를 들어, 동위치 루마 블록의 적어도 하나의 샘플을 커버하는 하나 또는 다수의 루마 CU가 BDOF로 코딩되는 경우 교차-성분 툴들이 디스에이블되고;
iv. 예를 들어, 동위치 루마 블록의 적어도 하나의 샘플을 커버하는 하나 또는 다수의 루마 CU가 DMVR로 코딩되는 경우 교차-성분 툴들이 디스에이블되고;
v. 예를 들어, 동위치 루마 블록의 적어도 하나의 샘플을 커버하는 하나 또는 다수의 루마 CU가 JVET-N0217에서 제안된 바와 같은 행렬 아핀 예측 모드로 코딩되는 경우 교차-성분 툴들이 디스에이블되고;
vi. 예를 들어, 동위치 루마 블록의 적어도 하나의 샘플을 커버하는 하나 또는 다수의 루마 CU가 인터 모드로 코딩되는 경우 교차-성분 툴들이 디스에이블되고;
vii. 예를 들어, 동위치 루마 블록의 적어도 하나의 샘플을 커버하는 하나 또는 다수의 루마 CU가 ISP 모드로 코딩되는 경우 교차-성분 툴들이 디스에이블되고;
viii. 일 예에서, "동위치 루마 블록의 적어도 하나의 샘플을 커버하는 하나 또는 다수의 루마 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. 일 예에서, 서브블록을 크로마 CU로서 취급하는 것으로서 각각의 크로마 서브블록에 대해 CCLM 또는 LMCS의 파라미터들이 도출된다.
v. 일 예에서, 크로마 서브블록에 대해 CCLM 또는 LMCS가 적용될 때, 동위치 블록의 샘플들이 사용될 수 있다.
15. CCLM과 같은 교차 성분 툴들을 적용할지 그리고 어떻게 적용할지가 블록 차원들 및/또는 파티션 정보 및/또는 파티션 구조 타입(예를 들어, 이중 트리 또는 단일 트리)에 의존할 수 있다는 것이 제안된다.
a) 일 예에서, CCLM은 크로마 이중 트리 분할에 대해 디스에이블될 수 있다.
b) 일 예에서, CCLM은 블록 차원들에 따라 조건부로 디스에이블될 수 있다.
i. 일 예에서, 현재의 블록 차원들이 WBxHB인 것으로 가정하면, 다음의 CCLM은 WB, HB, 및 2개의 정수들 T1 및 T2 사이의 관계에 따라 디스에이블될 수도 있다.
1) 일 예에서, CCLM은 WB>=T1 및 HB>=T2인 경우 디스에이블될 수 있다. 예를 들어, T1=T2=8이다.
2) 일 예에서, CCLM은 WB*HB>=T1인 경우 디스에이블될 수 있다. 예를 들어, T1=64이다.
3) 일 예에서, CCLM은 Min(WB, HB)>=T1인 경우 디스에이블될 수 있다. 예를 들어, T1=8이다.
4) 일 예에서, CCLM은 Max(WB, HB)>=T1인 경우 디스에이블될 수 있다. 예를 들어, T1=8이다.
5) 일 예에서, CCLM은 WB<=T1 및 HB<=T2인 경우 디스에이블될 수 있다. 예를 들어, T1=T2=16이다.
6) 일 예에서, CCLM은 WB*HB<=T1인 경우 디스에이블될 수 있다. 예를 들어, T1=4096이다.
7) 일 예에서, CCLM은 Min(WB, HB)<=T1인 경우 디스에이블될 수 있다. 예를 들어, T1=64이다.
8) 일 예에서, CCLM은 Max(WB, HB)<=T1인 경우 디스에이블될 수 있다. 예를 들어, T1=64이다.
c) 일 예에서, CCLM은 블록 차원들 및/또는 파티션 정보에 의해 제한될 수 있다.
i. 일 예에서, 차원들 WB×HB를 갖는 크로마 블록에 대해, 아래의 조건들 중 하나 또는 다수가 충족되는 경우, CCLM은 디스에이블된다. 예를 들어, WB=HB=32이다. 다음의 해결책들에서, 동위치 루마 블록 차원들은 (shxWB)x (svxHB)일 수 있고, 여기서 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) 예를 들어, 시퀀스 레벨에서(예를 들어, SPS에서), 픽처 레벨에서(예를 들어, PPS 또는 픽처 헤더에서), 슬라이스 레벨에서(예를 들어, 슬라이스 헤더에서), 타일 레벨에서, CTU 행 레벨에서, CTU 레벨에서, CU 레벨에서 chroma_residual_scale_flag가 시그널링될 수 있다. chroma_residual_scale_flag가 1과 동등한 것은 시그널링된 신택스 레벨 아래의 CU들에 대해 크로마 잔차 스케일링이 인에이블되는 것을 특정한다. chroma_residual_scale_flag가 0과 동등한 것은 시그널링된 신택스 레벨 아래의 CU들에 대해 크로마 잔차 스케일링이 인에이블되지 않는 것을 특정한다. chroma_residual_scale_flag가 존재하지 않을 때, 그것은 0과 동등한 것으로 추론된다.
b) 일 예에서, 파티션 노드 레벨에서 크로마 잔차 스케일링이 제약되는 경우. 그 다음에 파티션 노드에 의해 커버되는 CU들에 대해 chroma_residual_scale_flag가 시그널링되지 않고 0인 것으로 추론될 수 있다. 일 예에서, 파티션 노드는 CTU일 수 있다(CTU는 쿼터너리 트리 파티션(quaternary tree partition)의 루트 노드로서 취급된다).
c) 일 예에서, 32x32보다 작거나 그와 동등한 크로마 블록 크기에 대해 크로마 잔차 스케일링이 제약되는 경우, 32x32보다 작거나 그와 동등한 크로마 블록 크기에 대해 chroma_residual_scale_flag가 시그널링되지 않고 0인 것으로 추론될 수 있다.
CCLM 모드의 적용가능성
17. JVET-M1001에 특정된 바와 같은 sps 레벨에 더하여 다른 신택스 레벨들에서 CCLM 모드가 적용될 수 있는지가 시그널링될 수 있다는 것이 제안된다.
a) 예를 들어, 그것은 픽처 레벨에서(예를 들어, PPS 또는 픽처 헤더에서), 슬라이스 레벨에서(예를 들어, 슬라이스 헤더에서), 타일 그룹 레벨에서(예를 들어, 타일 그룹 헤더에서), 타일 레벨에서, CTU 행 레벨에서, CTU 레벨에서, CU 레벨에서 시그널링될 수 있다.
b) 일 예에서, CCLM이 적용될 수 없는 경우 cclm_flag가 시그널링되지 않고 0인 것으로 추론될 수 있다.
i. 일 예에서, 8x8보다 작거나 그와 동등한 크로마 블록 크기에 대해 크로마 잔차 스케일링이 제약되는 경우, 8x8보다 작거나 그와 동등한 크로마 블록 크기에 대해 cclm_flag가 시그널링되지 않고 0인 것으로 추론될 수 있다.
인트라 모드 및 인터 모드에 대한 크로마 잔차 스케일링 인자 도출의 통합
18. 루마 블록을 인코딩/디코딩한 후에 크로마 잔차 스케일링 인자가 도출될 수 있고 다음의 코딩된 블록들을 위해 저장되고 사용될 수 있다.
a) 일 예에서, 루마 블록에서 루프 필터링 전에(예를 들어, 디블로킹 필터 또는/및 SAO 필터 또는/및 양방향 필터 또는/및 아다마르 변환 필터 또는/및 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(선입 선출) 방식으로 업데이트될 수 있다.
ii. 크로마 블록을 디코딩/인코딩한 후에, 크로마 잔차 스케일링 인자가 도출될 수 있고(예를 들어, 루마 값들에 따라) FIFO 이력 테이블에 저장될 수 있다.
iii. 일 예에서, FIFO 이력 테이블은 많아야 1개의 엔트리를 포함할 수 있다. 이 경우, 최신 디코딩된 블록의 도출된 크로마 잔차 스케일링 인자가 현재 블록에 대해 사용된다.
iv. 일 예에서, 이력 테이블은 픽처, 및/또는 슬라이스, 및/또는 타일 그룹, 및/또는 타일, 및/또는 CTU 행 및/또는 CTU를 인코딩/디코딩하기 전에 리프레시된다.
1) 일 예에서, 이력 테이블이 리프레시될 때 디폴트 크로마 잔차 스케일링 인자가 이력 테이블에 넣어질 수 있다.
2) 일 예에서, FIFO 이력 테이블이 리프레시될 때 이력 테이블은 비도록 설정된다.
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): 이웃 블록 이용가능성 검사 프로세스 tbd]에서 특정된 바와 같은 블록에 대한 왼쪽 이웃 샘플 도출 프로세스의 이용가능성은 입력들로서 대응하는 루마 위치 (xTbCorrY, yTbCorrY) 및 이웃 루마 위치 (xTbCorrY-1, yTbCorrY)로 발동(invoke)되고, 출력은 availL에 배정된다.
availL이 TRUE와 동등할 때, 이웃 왼쪽 상단 루마 샘플 pY[x][y], x = -1, y = 0은 위치 (xTbCorrY+x, yTbCorrY+y)에서의 디블로킹 필터 프로세스 전에 재구성된 루마 샘플들과 동등하게 설정된다. 이웃 왼쪽 상단 루마 샘플의 맵핑된 값 pYMap[x][y], x = -1, y = -1가 다음과 같이 도출된다:
재구성된 크로마 픽처 샘플 recSamples는 i = 0..nCurrSw-1, j = 0..nCurrSh-1에 대해 다음과 같이 도출된다:
- TILE_GROUP_CHROMA_RESIDUAL_SCALE_FLAG가 0과 동등하거나 NCURRSW*NCURRSH가 4와 동등하거나 그보다 작은 경우, 다음이 적용된다:
- 다음 조건들 중 하나가 참인 경우, 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가 다음과 같이 도출된다:
invAvgLuma를 입력으로 하고 idxYInv를 출력으로 하여 조항 8.7.5.3.2에 특정된 바와 같은 구분적 함수 인덱스의 식별을 발동시키는 것에 의해 변수 idxYInv가 도출된다.
2. 변수 varScale이 다음과 같이 도출된다:
- recSamples가 다음과 같이 도출된다:
- tu_cbf_cIdx[xCurr][yCurr]가 1과 동등한 경우, 다음이 적용된다:
- 그렇지 않으면(tu_cbf_cIdx[xCurr][yCurr]가 0과 동등함), 다음이 적용된다:
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): 이웃 블록 이용가능성 검사 프로세스 tbd]에서 특정된 바와 같은 블록에 대한 왼쪽 상단 이웃 샘플 도출 프로세스의 이용가능성은 입력들로서 대응하는 루마 위치 (xTbCorrY, yTbCorrY) 및 이웃 루마 위치 (xTbCorrY-1, yTbCorrY-1)로 발동(invoke)되고, 출력은 availTL에 배정된다.
변수 availT가 다음과 같이 도출된다:
- 조항 6.4.X [Ed.(BB): 이웃 블록 이용가능성 검사 프로세스 tbd]에서 특정된 바와 같은 블록에 대한 상단 이웃 샘플 도출 프로세스의 이용가능성은 입력들로서 대응하는 루마 위치 (xTbCorrY, yTbCorrY) 및 이웃 루마 위치 (xTbCorrY, yTbCorrY-1)로 발동(invoke)되고, 출력은 availT에 배정된다.
numAvailNeigh는 availTL+availT와 동등하게 설정된다.
numAvailNeigh가 1과 동등하거나 그보다 큰 경우, 이웃 루마 샘플들 pY[x][y], x = -1, 0, y = -1은 위치 (xTbCorrY+x, yTbCorrY+y)에서의 디블로킹 필터 프로세스 전에 재구성된 루마 샘플들의 평균 값과 동등하게 설정된다. 이웃 루마 샘플들 pY Avg 의 평균값은 다음과 같이 도출된다.
그렇지 않고, 다음의 조건들 중 하나가 참인 경우, 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 가 다음과 같이 도출된다:
재구성된 크로마 픽처 샘플 recSamples는 i=0..nCurrSw-1, j=0..nCurrSh-1에 대해 다음과 같이 도출된다:
- tile_group_chroma_residual_scale_flag가 0과 동등하거나 nCurrSw*nCurrSh가 4와 동등하거나 그보다 작은 경우, 다음이 적용된다:
- 그렇지 않으면(tile_group_chroma_residual_scale_flag가 1과 동등하고 nCurrSw*nCurrSh가 4보다 큼), 다음이 적용된다:
- 변수 varScale의 도출을 위해 다음의 순서화된 단계들이 적용된다:
- 변수 invAvgLuma가 다음과 같이 도출된다:
invAvgLuma를 입력으로 하고 idxYInv를 출력으로 하여 조항 8.7.5.3.2에 특정된 바와 같은 구분적 함수 인덱스의 식별을 발동시키는 것에 의해 변수 idxYInv가 도출된다.
변수 varScale이 다음과 같이 도출된다:
- recSamples가 다음과 같이 도출된다:
- tu_cbf_cIdx[xCurr][yCurr]가 1과 동등한 경우, 다음이 적용된다:
- 그렇지 않으면(tu_cbf_cIdx[xCurr][yCurr]가 0과 동등함), 다음이 적용된다:
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보다 작거나 그와 동등한 경우, 다음이 적용된다:
- 그렇지 않으면(slice_chroma_residual_scale_flag가 1과 동등하고 nCurrSw*nCurrSh가 4보다 큼), 다음이 적용된다:
- 변수 varScale의 도출을 위해 다음의 순서화된 단계들이 적용된다:
1. 변수 INVAVGLUMA가 다음과 같이 도출된다:
2. INVAVGLUMA를 입력으로 하고 IDXYINV를 출력으로 하여 조항 8.7.5.3.2에 특정된 바와 같은 구분적 함수 인덱스의 식별을 발동시키는 것에 의해 변수 IDXYINV가 도출된다.
3. 변수 varScale이 다음과 같이 도출된다:
- recSamples가 다음과 같이 도출된다:
- tu_cbf_cIdx[xCurr][yCurr]가 1과 동등한 경우, 다음이 적용된다:
- 그렇지 않으면(tu_cbf_cIdx[xCurr][yCurr]가 0과 동등함), 다음이 적용된다:
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보다 작거나 그와 동등한 경우, 다음이 적용된다:
- 그렇지 않으면(slice_chroma_residual_scale_flag가 1과 동등하고 nCurrSw*nCurrSh가 4보다 큼), 다음이 적용된다:
- 변수 varScale의 도출을 위해 다음의 순서화된 단계들이 적용된다:
1. 변수 invAvgLuma가 다음과 같이 도출된다:
2. invAvgLuma를 입력으로 하고 idxYInv를 출력으로 하여 조항 8.7.5.3.2에 특정된 바와 같은 구분적 함수 인덱스의 식별을 발동시키는 것에 의해 변수 idxYInv가 도출된다.
3. 변수 varScale이 다음과 같이 도출된다:
- recSamples가 다음과 같이 도출된다:
- tu_cbf_cIdx[xCurr][yCurr]가 1과 동등한 경우, 다음이 적용된다:
- 그렇지 않으면(tu_cbf_cIdx[xCurr][yCurr]가 0과 동등함), 다음이 적용된다:
5.5 실시예 #5
아래의 실시예는 본 발명에 대한 설명의 항목 12 에서의 방법에 대한 것이다.
새로 추가된 부분들은 굵은 이탤릭체로 강조되고, VVC 작업 초안으로부터 삭제된 부분들은 대문자로 된 굵은 글꼴로 강조된다. 수정들은 최신 VVC 작업 초안(JVET-M1007-v7) 및 JVET-N220-v3에서의 새로운 채택에 기초한다.
7.4.5.4 크로마 스케일링을 갖는 루마 맵핑 데이터 의미론
변수 ChromaScaleCoeff[i], i = 0…15가 다음과 같이 도출된다:
변수 varScale는 다음과 같이 도출된다:
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보다 작거나 그와 동등한 경우, 다음이 적용된다:
- 그렇지 않으면(slice_chroma_residual_scale_flag가 1과 동등하고 nCurrSw*nCurrSh가 4보다 큼), 다음이 적용된다:
- 변수 VARSCALE의 도출을 위해 다음의 순서화된 단계들이 적용된다:
4. 변수 INVAVGLUMA가 다음과 같이 도출된다:
5. INVAVGLUMA를 입력으로 하고 IDXYINV를 출력으로 하여 조항 8.7.5.3.2에 특정된 바와 같은 구분적 함수 인덱스의 식별을 발동시키는 것에 의해 변수 IDXYINV가 도출된다.
6. 변수 VARSCALE이 다음과 같이 도출된다:
- recSamples가 다음과 같이 도출된다:
- tu_cbf_cIdx[xCurr][yCurr]가 1과 동등한 경우, 다음이 적용된다:
- 그렇지 않으면(tu_cbf_cIdx[xCurr][yCurr]가 0과 동등함), 다음이 적용된다:
6. 개시된 기술의 예시적인 구현들
도 10은 비디오 처리 장치(1000)의 블록도이다. 장치(1000)는 본 명세서에서 설명된 방법들 중 하나 이상을 구현하기 위해 사용될 수 있다. 장치(1000)는 스마트폰, 태블릿, 컴퓨터, 사물 인터넷(IoT) 수신기 등에서 구현될 수 있다. 장치(1000)는 하나 이상의 프로세서(1002), 하나 이상의 메모리(1004) 및 비디오 처리 하드웨어(1006)를 포함할 수 있다. 프로세서(들)(1002)는 본 문서에서 설명된 하나 이상의 방법(방법(800) 및 방법(900)을 포함하지만, 이에 제한되지 않음)을 구현하도록 구성될 수 있다. 메모리(메모리들)(1004)는 본 명세서에서 설명된 방법들 및 기법들을 구현하기 위해 사용되는 코드 및 데이터를 저장하기 위해 사용될 수 있다. 비디오 처리 하드웨어(1006)는 본 문서에서 설명된 일부 기법들을 하드웨어 회로로 구현하기 위해 사용될 수 있다.
일부 실시예들에서, 비디오 코딩 방법은 도 10에 관하여 기술된 바와 같은 하드웨어 플랫폼 상에 구현되는 장치를 이용하여 구현될 수 있다.
도 11은 개시된 기술에 따른 교차-성분 예측을 위한 선형 모델 도출들을 위한 예시적인 방법(1100)의 흐름도를 도시한다. 방법(1100)은, 단계 1110에서, 현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 전환을 수행하는 단계를 포함하며, 전환 동안, 하나 이상의 참조 프레임에 포함된 제1 세트의 컬러 성분 값들로부터 현재 비디오 블록의 제2 세트의 컬러 성분 값들이 도출되고, 제1 세트의 컬러 성분 값들은 비디오 코딩 단계의 선형 모델에서 사용가능하다.
일부 실시예들은 다음의 조항 기반 포맷을 사용하여 설명될 수 있다.
1. 비디오 처리를 위한 방법으로서,
현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 전환을 수행하는 단계를 포함하며, 전환 동안, 하나 이상의 참조 프레임에 포함된 제1 세트의 컬러 성분 값들로부터 현재 비디오 블록의 제2 세트의 컬러 성분 값들이 도출되고, 제1 세트의 컬러 성분 값들은 비디오 코딩 단계의 선형 모델에서 사용가능하다.
2. 조항 1의 방법으로서, 제1 세트의 컬러 성분 값들은 비디오 코딩 단계의 선형 모델에서 사용하기 전에 보간된다.
3. 조항 1-2 중 어느 하나 이상의 조항의 방법으로서, 제1 세트의 컬러 성분 값들의 선형 조합이 선형 모델에서 파라미터들로서 사용가능하다.
4. 조항 1의 방법으로서, 하나 이상의 참조 프레임에 포함된 제1 세트의 컬러 성분 값들의 위치들은 현재 비디오 블록의 모션 정보에 적어도 부분적으로 기초하여 선택된다.
5. 조항 4의 방법으로서, 하나 이상의 참조 프레임에서의 루마 성분 값의 포지션은 현재 비디오 블록 내의 대응하는 루마 성분 값의 포지션 및 현재 비디오 블록의 모션 정보로부터 계산된다.
6. 조항 5의 방법으로서, 대응하는 루마 성분 값의 포지션은 현재 비디오 블록 내의 왼쪽 상단 샘플, 중앙 샘플, 또는 오른쪽 하단 샘플이다.
7. 조항 6의 방법으로서, 현재 비디오 블록의 모션 정보는 정수 모션 벡터 또는 분수 모션 벡터에 대응한다.
8. 조항 7의 방법으로서, 분수 모션 벡터는 하나 이상의 참조 프레임에서의 분수 루마 성분 값을 사용하여 도출된다.
9. 조항 7의 방법으로서, 정수 모션 벡터는 제로를 향해 또는 제로로부터 멀어지게 라운딩하는 것에 의해 도출된다.
10. 조항 1의 방법으로서, 하나 이상의 참조 프레임에 포함된 제1 세트의 컬러 성분 값들의 위치들은 미리 정의된 포지션들이다.
11. 조항 1-10 중 어느 하나 이상의 조항의 방법으로서, 제1 세트의 컬러 성분 값들의 중앙값(median) 또는 평균(average)이 현재 비디오 블록의 제2 세트의 컬러 성분 값들을 도출하기 위해 사용된다.
12. 조항 1-11 중 어느 하나 이상의 조항의 방법으로서, 하나 이상의 참조 프레임은 미리 정의된 참조 프레임들이다.
13. 조항 12의 방법으로서, 미리 정의된 참조 프레임들은 참조 픽처 리스트의 참조 인덱스를 갖는 프레임을 포함한다.
14. 조항 13의 방법으로서, 참조 인덱스는 제로이고 참조 픽처 리스트는 제로이다.
15. 조항 13의 방법으로서, 참조 인덱스 및/또는 참조 픽처 리스트는 다음: 시퀀스, 픽처, 타일, 그룹, 슬라이스, 타일, 코딩 트리 유닛 행, 또는 비디오 블록 중 하나 이상과 연관된 비트스트림 표현에서 시그널링된다.
16. 조항 1의 방법으로서, 현재 비디오 블록의 제2 세트의 컬러 성분 값들은 하나 이상의 참조 프레임에 포함된 제1 세트의 컬러 성분 값들의 수학적 평균(mathematical mean) 또는 가중 평균(weighted average)으로부터 도출된다.
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. 조항 19-23 중 어느 하나 이상의 조항의 방법으로서, 하나 이상의 참조 프레임에 포함된 제1 세트의 컬러 성분 값들은 중간 컬러 성분 값들이다.
25. 조항 19-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의 곱(product)은 현재 비디오 블록의 동위치 루마 블록의 블록 폭과 블록 높이의 곱보다 작다.
31. 조항 27-30 중 어느 하나 이상의 조항의 방법으로서, 하나 이상의 참조 프레임에 포함된 제1 세트의 컬러 성분 값들은 동위치 루마 블록의 이웃 루마 샘플들의 포지션들에서 식별된 기준 샘플들의 적어도 일부에 대응한다.
32. 조항 1-31 중 어느 하나 이상의 조항의 방법으로서, 제1 세트의 컬러 성분 값들은 비디오 코딩 단계의 선형 모델에 사용하기 전에 다운 샘플링된다.
33. 조항 1의 방법으로서, 현재 비디오 블록의 제2 세트의 컬러 성분 값들은 현재 비디오 블록의 다음의 정보: 양자화 파라미터, 코딩 모드, 또는 POC(picture order count) 중 하나 이상에 적어도 부분적으로 기초하여 선택된다.
34. 조항 31의 방법으로서, 이웃 루마 샘플들의 포지션들은 동위치 루마 블록의 왼쪽 상단 샘플이 커버되도록 한다.
35. 조항 28의 방법으로서, 하나 이상의 참조 프레임에 포함된 제1 세트의 컬러 성분 값들은 대응하는 루마 블록 외부의 포지션들에서 식별된 기준 샘플들의 적어도 일부에 대응한다.
36. 조항 28의 방법으로서, 현재 비디오 블록의 제2 세트의 컬러 성분 값들은 대응하는 루마 블록의 이웃 샘플들의 이용가능성에 기초하여 하나 이상의 참조 프레임에 포함된 제1 세트의 컬러 성분 값들로부터 선택적으로 도출된다.
37. 조항 28의 방법으로서, 대응하는 루마 블록의 이웃 샘플들의 이용가능성은: 현재 비디오 블록의 코딩 모드의 사용, 대응하는 루마 블록의 이웃 샘플들의 코딩 모드의 사용, 대응하는 루마 블록의 코딩 모드의 사용, 하나 이상의 이웃 비디오 블록의 코딩 모드의 사용, 대응하는 루마 블록의 이웃 샘플들과 연관된 필터의 타입의 사용, 또는 현재 비디오 블록들 또는 그의 서브-블록들에 대한 대응하는 루마 블록의 이웃 샘플들의 위치 중 하나 이상에 기초한다.
38. 조항 28의 방법으로서,
대응하는 루마 블록의 이웃 샘플들의 이용가능성이 없는 것에 응답하여, 이용불가능한 샘플들을 다른 샘플들로 치환하거나, 채우거나, 패딩하는 것을 추가로 포함한다.
39. 조항 28의 방법으로서,
대응하는 루마 블록에 이웃하는 샘플들에 평활화 필터를 적용하는 것을 추가로 포함한다.
40. 비디오 처리를 위한 방법으로서,
현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 전환을 수행하는 단계- 전환 동안, 하나 이상의 참조 프레임에 포함된 제1 세트의 컬러 성분 값들로부터 현재 비디오 블록의 제2 세트의 컬러 성분 값들이 도출되고, 제1 세트의 컬러 성분 값들은 비디오 코딩 단계의 선형 모델에서 사용가능함 -; 및
하나 이상의 참조 프레임에 포함된 제1 세트의 컬러 성분 값들이 현재 비디오 블록의 동위치 루마 블록이라고 결정하는 것에 응답하여, 현재 비디오 블록의 동위치 루마 블록과 연관된 하나 이상의 조건에 기초하여, 현재 비디오 블록의 제2 세트의 컬러 성분 값들의 도출을 선택적으로 인에이블 또는 디스에이블하는 단계를 포함한다.
41. 조항 40의 방법으로서, 현재 비디오 블록의 동위치 루마 블록과 연관된 하나 이상의 조건은: 동위치 루마 블록의 파티션 크기, 임계 수를 달성하는 동위치 루마 블록의 코딩 유닛들의 수, 임계 크기를 달성하는 동위치 루마 블록의 왼쪽 상단 루마 샘플, 동위치 루마 블록의 파티션 트리 깊이, 동위치 루마 블록의 왼쪽 상단 루마 샘플을 커버하는 대응하는 루마 블록, 동위치 루마 블록 또는 현재 비디오 블록의 차원, 또는 동위치 루마 블록의 왼쪽 상단 루마 샘플을 커버하는 대응하는 루마 블록을 포함하고, 미리 정의된 크기의 바운딩 박스 내에 추가로 포함된다.
42. 조항 40의 방법으로서, 도출을 선택적으로 인에이블 또는 디스에이블하는 것을 지시하는 정보가 비트스트림 표현에 포함된다.
43. 조항 28의 방법으로서, 대응하는 루마 블록의 이웃 샘플들의 이용가능성은 미리 정의된 순서에 따라 이웃 샘플들을 체크하는 것과 연관된다.
44. 조항 41의 방법으로서, 동위치 루마 블록 및 현재 비디오 블록은 동일한 코딩 트리 유닛 또는 코딩 트리 유닛의 동일한 행과 연관된다.
45. 비디오 처리를 위한 방법으로서,
현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 전환을 수행하는 단계- 전환 동안, 하나 이상의 참조 프레임에 포함된 제1 세트의 컬러 성분 값들로부터 현재 비디오 블록의 제2 세트의 컬러 성분 값들이 도출되고, 제1 세트의 컬러 성분 값들은 비디오 코딩 단계의 선형 모델에서 사용가능함 -; 및
현재 비디오 블록 또는 현재 비디오 블록의 이웃 비디오 블록들의 하나 이상의 속성이 만족된다고 결정하는 것에 응답하여, 현재 비디오 블록의 제2 세트의 컬러 성분 값들의 도출을 선택적으로 인에이블 또는 디스에이블하는 단계를 포함한다.
46. 조항 45의 방법으로서, 현재 비디오 블록 또는 현재 비디오 블록의 이웃 비디오 블록들의 하나 이상의 속성은 현재 비디오 블록의 공간 포지션에 대한 공간 포지션을 커버하는 이웃 루마 블록에 대응한다.
47. 조항 45의 방법으로서, 현재 비디오 블록 또는 현재 비디오 블록의 이웃 비디오 블록들의 하나 이상의 속성은 현재 비디오 블록의 공간 포지션에 대한 현재 비디오 블록의 이웃 비디오 블록들의 공간 포지션들에 대응한다.
48. 조항 45의 방법으로서,
이웃 비디오 블록들의 재구성들이 현재 비디오 블록의 코딩 모드에 적어도 부분적으로 기초한다는 결정에 응답하여, 현재 비디오 블록의 제2 세트의 컬러 성분 값들의 도출을 디스에이블하는 단계를 추가로 포함한다.
49. 조항 45의 방법으로서,
현재 비디오 블록이 인터-코딩된 블록이고 조합된 인터 및 인트라 예측-코딩된 블록이 아니며, 현재 비디오 블록의 대응하는 루마 블록에 이웃하는 블록이 인트라-코딩된 블록, CIIP(combined inter and intra prediction) 블록, 또는 IBC(intra block copy) 코딩된 블록이라고 결정하는 것에 응답하여, 현재 비디오 블록의 제2 세트의 컬러 성분 값들의 도출을 디스에이블하는 단계를 추가로 포함한다.
50. 조항 45의 방법으로서,
현재 비디오 블록이 인터-코딩된 블록이고 조합된 인터 및 인트라 예측-코딩된 블록이 아니며, 현재 비디오 블록의 대응하는 루마 블록에 이웃하는 블록이 인트라-코딩된 블록, CIIP(combined inter and intra prediction) 블록, 또는 IBC(intra block copy) 코딩된 블록이라고 결정하는 것에 응답하여, 현재 비디오 블록의 제2 세트의 컬러 성분 값들의 도출을 인에이블하는 단계를 추가로 포함하고, 제1 세트의 컬러 성분 값들은 고정 값들이다.
51. 조항 45의 방법으로서, 제1 세트의 컬러 성분 값들은 고정 값들이다.
52. 조항 51의 방법으로서, 고정 값들은 비디오 코딩 단계의 선형 모델의 구분적 인덱스(piecewise index)에 대응한다.
53. 조항 1-52 중 어느 하나 이상의 조항의 방법으로서, 이웃 샘플들은 현재 비디오 블록에 인접하거나 인접하지 않을 수 있다.
54. 조항 1-52 중 어느 하나 이상의 조항의 방법으로서, 이웃 샘플들은 현재 비디오 블록에 이웃하는 크로마 블록들이거나 또는 현재 비디오 블록에 이웃하는 크로마 블록들과 연관될 수 있다.
55. 조항 1-54 중 어느 하나 이상의 조항의 방법으로서, 현재 비디오 블록은 크로마 블록, 동위치 루마 블록, 또는 동위치 크로마 블록의 왼쪽 상단 루마 샘플을 커버하는 대응하는 루마 블록에 대응한다.
56. 조항 1-54 중 어느 하나 이상의 조항의 방법으로서, 현재 비디오 블록의 제2 세트의 컬러 성분 값들은 하나 이상의 다른 비디오 블록과 관련하여 사용하기 위해 저장된다.
57. 조항 1-56 중 어느 하나 이상의 조항의 방법으로서, 선형 모델은 CCLM(cross-component linear model)에 대응하고, 비디오 코딩 단계는 LMCS(a luma mapping with chroma scaling) 모드에 대응한다.
58. 조항 1-57 중 어느 하나 이상의 조항의 방법으로서, 현재 비디오 블록은 인터 코딩된 블록, 양방향 예측 코딩된 블록, CIIP(combined inter and intra prediction) 블록 또는 IBC(intra block copy) 코딩된 블록이다.
59. 조항 1-58 중 어느 하나 이상의 조항의 방법으로서, 현재 비디오 블록의 제2 세트의 컬러 성분 값들은 비트스트림 표현에서 다른 비디오 블록들과 연관된 사용을 위해 저장된다.
60. 조항 59의 방법으로서, 현재 비디오 블록의 제2 세트의 컬러 성분 값들은 다른 비디오 블록들에 포함된 이웃 비디오 블록에 의한 선택적 이용가능성 또는 비이용가능성(unavailability)을 위해 라인 버퍼에 저장되고, 현재 비디오 블록 및 이웃 비디오 블록은 상이한 슬라이스들, 타일들, 타일 그룹들, 코딩 트리 유닛들, 또는 코딩 트리 유닛들의 행들과 연관된다.
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의 예 12g(ii)와 연계하여 설명된다. 단계 1302에서, 프로세스는, 비주얼 미디어 데이터의 대응하는 루마 블록의 이웃 루마 블록들의 이용가능성을 결정하는 것에 응답하여, 비주얼 미디어 데이터의 현재 비디오 크로마 블록에 대한 제1 파라미터를 도출하여, 제1 파라미터가 현재 비디오 크로마 블록의 이웃 루마 샘플들의 고정 값 또는 라운딩-기반 평균 값으로서 도출되게 하고, 여기서 대응하는 루마 블록은 현재 비디오 크로마 블록과 연관된 위치를 커버한다. 단계 1304에서, 프로세스는 제1 파라미터에 기초하여 크로마 스케일링 인자를 결정한다. 단계 1306에서, 프로세스는 크로마 스케일링 인자에 기초하여 현재 비디오 크로마 블록의 크로마 잔차 스케일링을 수행한다. 단계 1308에서, 프로세스는 현재 비디오 크로마 블록과 비트스트림 사이의 전환을 위해 크로마 스케일링 인자를 사용한다.
도 14는 비주얼 미디어 처리 방법을 위한 일 예에 대한 흐름도이다. 이 흐름도의 단계들은 이 문서의 섹션 4의 예 12d와 연계하여 설명된다. 단계 1402에서, 프로세스는, 고정 값에 기초하여, 비주얼 미디어 데이터의 현재 비디오 유닛과 연관된 적어도 하나의 크로마 블록에 대한 크로마 잔차 스케일링 인자를 표현하는 것을 특정하는 규칙을 사용하고, 여기서 고정 값은 적어도 하나 이상의 조건에 기초한다. 단계 1404에서, 프로세스는 현재 비디오 유닛과 현재 비디오 유닛의 비트스트림 표현 사이의 전환을 수행한다.
도 15는 비주얼 미디어 처리 방법을 위한 일 예에 대한 흐름도이다. 이 흐름도의 단계들은 이 문서의 섹션 4의 예 15와 연계하여 설명된다. 단계 1502에서, 비주얼 미디어 데이터의 현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 전환 동안, 프로세스는, 현재 비디오 블록과 연관된 차원들 및/또는 파티션 정보 및/또는 코딩 구조 타입에 적어도 부분적으로 기초하여, 현재 비디오 블록의 컬러 성분들에 대한 CCLM(cross-component linear model)의 적용을 선택적으로 인에이블 또는 디스에이블하는 결정을 실시하고, CCLM에서, 제1 세트의 컬러 성분들이 제2 세트의 컬러 성분들에 기초하여 예측된다.
본 문서의 일부 실시예들은 이제 조항 기반 포맷으로 제시된다.
X1. 비주얼 미디어 처리를 위한 방법으로서,
비주얼 미디어 데이터의 대응하는 루마 블록의 이웃 루마 블록들의 이용가능성을 결정하는 것에 응답하여, 비주얼 미디어 데이터의 현재 비디오 크로마 블록에 대한 제1 파라미터를 도출하여, 제1 파라미터가 현재 비디오 크로마 블록의 이웃 루마 샘플들의 고정 값 또는 라운딩-기반 평균 값으로서 도출되게 하는 단계- 대응하는 루마 블록은 현재 비디오 크로마 블록과 연관된 위치를 커버함 -;
제1 파라미터에 기초하여 크로마 스케일링 인자를 결정하는 단계;
크로마 스케일링 인자에 기초하여 현재 비디오 크로마 블록의 크로마 잔차 스케일링을 수행하는 단계; 및
현재 비디오 크로마 블록과 현재 비디오 크로마 블록의 비트스트림 표현 사이의 전환을 위해 크로마 스케일링 인자를 사용하는 단계.
X2. 조항 X1의 방법으로서, 제1 파라미터에 기초하여 크로마 스케일링 인자를 결정하는 단계는:
구분적 선형 함수의 인덱스를 식별하기 위해 제1 파라미터를 사용하는 단계를 포함한다.
X3. 조항 X2의 방법으로서:
구분적 선형 함수의 인덱스를 식별할 시에, 현재 비디오 크로마 블록의 크로마 잔차 스케일링에서 사용된 크로마 잔차 인자를 결정하는 단계를 추가로 포함한다.
X4. 조항 X1의 방법으로서, 크로마 잔차 스케일링 인자는 비트스트림 표현에서 필드로서 포함된다.
X5. 조항 X1-X4 중 어느 하나 이상의 조항의 방법으로서, 이웃 루마 블록들 중 적어도 하나가 이용가능한 경우, 제1 파라미터는 현재 비디오 크로마 블록의 이웃 루마 샘플들의 라운딩-기반 평균 값으로서 도출된다.
X6. 조항 X1-X4 중 어느 하나 이상의 조항의 방법으로서, 이웃 루마 블록들이 이용가능하지 않은 경우, 제1 파라미터는 고정 값으로서 도출된다.
X7. 조항 X1 또는 X6의 방법으로서, 고정 값은 0이다.
X8. 조항 X1 또는 X6의 방법으로서, 고정 값은 루마 컬러 성분 및/또는 크로마 컬러 성분들의 비트 심도에 기초한다.
X9. 조항 X8의 방법으로서, 고정 값은 (1<<BitDepth)-1, 또는 1<<(BitDepth-1)이고, BitDepth는 루마 컬러 성분들 및/또는 크로마 컬러 성분들의 비트 심도를 나타낸다.
X10. 조항 X6의 방법으로서, 고정 값은 구분적 선형 함수에서의 최대 빈 인덱스이다.
X11. 조항 X6의 방법으로서, 고정 값은 구분적 선형 함수에서의 최소 빈 인덱스이다.
X12. 조항 X6의 방법으로서, 고정 값은 적응적 구분적 선형 함수에서의 최소 빈 인덱스와 최대 빈 인덱스의 평균이다.
A1. 비주얼 미디어 처리를 위한 방법으로서,
고정 값에 기초하여, 비주얼 미디어 데이터의 현재 비디오 유닛과 연관된 적어도 하나의 크로마 블록에 대한 크로마 잔차 스케일링 인자를 표현하는 것을 특정하는 규칙을 사용하는 단계- 고정 값은 적어도 하나 이상의 조건에 기초함 -; 및
현재 비디오 유닛과 현재 비디오 유닛의 비트스트림 표현 사이의 전환을 수행하는 단계.
A2. 조항 A1의 방법으로서, 하나 이상의 조건은:
(1) 픽처/슬라이스/타일 그룹/타일/서브픽처/CTU(coding tree unit) 행/CTU/VPDU(virtual pipeline data unit)의 타입,
(2) 픽처/슬라이스/타일 그룹/타일/서브픽처/CTU 행/CTU/VPDU의 폭 및/또는 높이,
(3) 현재 비디오 유닛의 코딩 모드, 또는
(4) 현재 비디오 유닛의 이웃 샘플들을 포함한다.
A3. 조항 A2의 방법으로서, 제1 타입의 픽처/슬라이스/타일 그룹/타일/서브픽처/CTU 행/CTU/VPDU에 대해 제1 고정 값이 산출되고, 제2 타입의 픽처/슬라이스/타일 그룹/타일/서브픽처/CTU 행/CTU/VPDU에 대해 제2 고정 값이 산출된다.
B1. 비주얼 미디어 처리를 위한 방법으로서,
비주얼 미디어 데이터의 현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 사이의 전환 동안, 현재 비디오 블록과 연관된 차원들 및/또는 파티션 정보 및/또는 코딩 구조 타입에 적어도 부분적으로 기초하여, 현재 비디오 블록의 컬러 성분들에 대한 CCLM(cross-component linear model)의 적용을 선택적으로 인에이블 또는 디스에이블하는 결정을 실시하는 단계를 포함하고, CCLM에서, 제1 세트의 컬러 성분들이 제2 세트의 컬러 성분들의 선형 조합에 기초하여 예측된다.
B2. 조항 B1의 방법으로서, 코딩 구조 타입은 단일 트리 또는 이중 트리이다.
B3. 조항 B1의 방법으로서, CCLM은 현재 비디오 블록이 크로마 블록인 것 및 파티션 정보가 이중 트리 파티션을 특정하는 것에 기초하여 디스에이블된다.
B4. 조항 B1의 방법으로서, CCLM은 적어도 하나의 임계 조건을 충족시키지 못하는 현재 비디오 블록의 차원들에 기초하여 디스에이블된다.
B5. 조항 B1의 방법으로서, 적어도 하나의 임계 조건은 (i) 현재 비디오 블록의 폭 및/또는 현재 비디오 블록의 높이와 (ii) 하나 이상의 임계 파라미터 사이의 수학적 관계에 기초한다.
B6. 조항 B1의 방법으로서, 하나 이상의 임계 파라미터는 8, 16, 64, 또는 4096의 값들을 갖는다.
B7. 조항 B1의 방법으로서, CCLM은 파티션 정보가 현재 비디오 블록이 수평 분할을 갖는 리프 노드에 있고, 현재 비디오 블록과 연관된 동위치 루마 블록이 수직 분할을 갖는 리프 노드에 있다고 특정할 때 디스에이블된다.
B8. 조항 B7의 방법으로서, 현재 비디오 블록이 수평 삼진 분할(horizontal ternary split)을 갖는 크로마 블록이고, 동위치 루마 블록이 수직 삼진 분할(vertical ternary split)을 갖는 것일 때 CCLM이 디스에이블된다.
B9. 조항 B7의 방법으로서, 현재 비디오 블록이 수평 이진 분할을 갖는 크로마 블록 분할이고, 동위치 루마 블록이 수직 삼진 분할을 갖는 것일 때 CCLM이 디스에이블된다.
B10. 조항 B7의 방법으로서, 현재 비디오 블록이 수평 이진 분할을 갖는 크로마 블록 분할이고, 동위치 루마 블록이 수직 삼진 분할을 갖는 것일 때 CCLM이 디스에이블된다.
B11. 조항 B7의 방법으로서, 현재 비디오 블록이 수평 이진 분할을 갖는 크로마 블록 분할이고, 동위치 루마 블록이 수직 이진 분할을 갖는 것일 때 CCLM이 디스에이블된다.
B12. 조항 B1의 방법으로서, CCLM은 파티션 정보가 현재 비디오 블록이 수직 분할을 갖는 리프 노드에 있고, 현재 비디오 블록과 연관된 동위치 루마 블록이 수평 분할을 갖는 리프 노드에 있다고 특정할 때 디스에이블된다.
B13. 조항 B12의 방법으로서, 현재 비디오 블록이 수직 삼진 분할을 갖는 크로마 블록이고, 동위치 루마 블록이 수평 삼진 분할을 갖는 것일 때 CCLM이 디스에이블된다.
B14. 조항 B12의 방법으로서, 현재 비디오 블록이 수직 삼진 분할을 갖는 크로마 블록이고, 동위치 루마 블록이 수평 이진 분할을 갖는 것일 때 CCLM이 디스에이블된다.
B15. 조항 B12의 방법으로서, 현재 비디오 블록이 이진 수직 분할을 갖는 크로마 블록이고, 동위치 루마 블록이 수평 삼진 분할일 때 CCLM이 디스에이블된다.
B16. 조항 B11의 방법으로서, 현재 비디오 블록이 수직 이진 분할을 갖는 크로마 블록이고, 동위치 루마 블록이 수평 이진 분할을 갖는 것일 때 CCLM이 디스에이블된다.
B17. 조항 B1-B16 중 어느 하나 이상의 조항의 방법으로서:
CCLM이 현재 비디오 블록에 대해 디스에이블된다고 결정할 시에, 비트스트림 표현으로부터, CCLM의 적용을 나타내는 신택스 요소를 배제하는 단계를 추가로 포함한다.
B18. 조항 B1-B16 중 어느 하나 이상의 조항의 방법으로서:
CCLM이 현재 비디오 블록에 대해 디스에이블된다고 결정할 시에, 비트스트림 표현에, CCLM의 적용을 나타내는 신택스 요소를 포함하는 단계를 추가로 포함하고, CCLM과 연관된 하나 이상의 예측 모드의 사용은 스킵된다.
B19. 조항 B1-B16 중 어느 하나 이상의 조항의 방법으로서:
CCLM이 현재 비디오 블록에 대해 디스에이블된다고 결정할 시에, 비트스트림 표현에, CCLM의 적용을 나타내는 신택스 요소를 포함하는 단계를 추가로 포함하고, 디폴트 예측 모드가 적용된다.
B20. 조항 B19의 방법으로서, 디폴트 예측 모드는 평면 모드 또는 DC 모드이다.
B21. 조항 X1-B20 중 어느 하나 이상 조항의 방법으로서, 전환은 비디오 블록으로부터 비트스트림 표현을 생성하는 것을 포함한다.
B22. 조항 X1-B20항 중 어느 하나 이상의 조항의 방법으로서, 전환은 비트스트림 표현으로부터 비디오 블록의 픽셀 값들을 생성하는 것을 포함한다.
B23. 조항 X1-B20 중 어느 하나 이상의 조항에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코더 장치.
B24. 조항 X1-B20 중 어느 하나 이상의 조항에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코더 장치.
B25. 코드가 저장된 컴퓨터 판독가능 매체로서, 코드는 조항 X1-B20 중 어느 하나 이상의 조항에 기재된 방법을 구현하기 위한 프로세서 실행가능 명령어들을 구현한다.
본 문서에서, "비디오 처리" 또는 "비주얼 미디어 처리"라는 용어는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축해제를 지칭할 수 있다. 예를 들어, 비디오의 픽셀 표현으로부터 대응하는 비트스트림 표현으로의 또는 그 반대로의 전환 동안 비디오 압축 알고리즘들이 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스에 의해 정의되는 바와 같이, 비트스트림 내의 상이한 장소들에 확산된 또는 동위치에 있는 비트들에 대응할 수 있다. 예를 들어, 매크로블록은 변환된 그리고 코딩된 오류 잔차 값들의 관점에서 그리고 또한 헤더들 내의 비트들 및 비트스트림 내의 다른 필드들을 사용하여 인코딩될 수 있다. 더욱이, 전환 동안, 디코더는, 위의 솔루션들에서 설명된 바와 같이, 결정에 기초하여, 일부 필드들이 존재하거나 부재할 수 있다는 지식을 가지고 비트스트림을 파싱할 수 있다. 유사하게, 인코더는 특정 신택스 필드들이 포함되거나 포함되지 않아야 한다고 결정하고 그에 따라 코딩된 표현으로부터 신택스 필드들을 포함시키거나 제외시키는 것에 의해 코딩된 표현을 생성할 수 있다.
전술한 바로부터, 현재 개시된 기술의 특정 실시예들이 예시의 목적들을 위해 본 명세서에 설명되었지만, 본 발명의 범위를 벗어나지 않고 다양한 수정들이 이루어질 수 있다는 것이 이해될 것이다. 따라서, 현재 개시된 기술은 첨부된 청구항들에 의한 것을 제외하고는 제한되지 않는다.
본 특허 문서에서 설명된 주제 및 기능적 동작들의 구현들은 다양한 시스템들, 디지털 전자 회로에서, 또는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어에서 - 본 명세서에 개시된 구조들 및 그들의 구조적 등가물들을 포함하여 -, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 설명된 주제의 구현들은 하나 이상의 컴퓨터 프로그램 제품, 즉, 데이터 처리 장치에 의한 실행을 위해, 또는 데이터 처리 장치의 동작을 제어하기 위해 유형의(tangible) 비일시적 컴퓨터 판독가능 매체 상에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독가능 매체는 머신 판독가능 저장 디바이스, 머신 판독가능 저장 기판, 메모리 디바이스, 머신 판독가능 전파 신호에 영향을 주는 물질 조성, 또는 이들 중 하나 이상의 조합일 수 있다. "데이터 처리 유닛" 또는 "데이터 처리 장치"라는 용어는 예로서 프로그램 가능 프로세서, 컴퓨터, 또는 다수의 프로세서 또는 컴퓨터를 포함하는, 데이터를 처리하기 위한 모든 장치, 디바이스, 및 머신을 포함한다. 장치는, 하드웨어에 더하여, 해당 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드라고도 알려져 있음)은, 컴파일된 또는 해석된 언어들을 포함하는 임의의 형식의 프로그래밍 언어로 작성될 수 있고, 그것은 독립형 프로그램(stand-alone program)으로서, 또는 모듈, 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에서 이용하기에 적합한 다른 유닛으로서 배치되는 것을 포함하여, 임의의 형식으로 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 반드시 대응하지는 않는다. 프로그램은 다른 프로그램들 또는 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일부 내에, 해당 프로그램에 전용되는 단일 파일 내에, 또는 다수의 코디네이션된 파일들(예를 들어, 하나 이상의 모듈, 서브 프로그램들, 또는 코드의 부분들을 저장하는 파일들) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서, 또는 한 장소에 위치하거나 다수의 장소에 걸쳐 분산되어 통신 네트워크에 의해 상호연결되는 다수의 컴퓨터 상에서 실행되도록 배치될 수 있다.
본 명세서에 설명된 프로세스들 및 로직 흐름들은 입력 데이터에 대해 동작하고 출력을 생성하는 것에 의해 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한 특수 목적 로직 회로, 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있고, 장치가 또한 그것들로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 및 특수 목적 마이크로프로세서 둘 다, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들을 수행하기 위한 프로세서 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어, 자기, 광자기 디스크들, 또는 광 디스크들을 포함하거나, 또는 이들로부터 데이터를 수신하거나 데이터를 이들에 전송하거나, 또는 이들 둘 다를 수행하도록 동작적으로 결합될 것이다. 그러나, 컴퓨터는 그러한 디바이스들을 가질 필요는 없다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체는, 예로서 반도체 메모리 디바이스들, 예를 들어, EPROM, EEPROM, 및 플래시 메모리 디바이스들을 포함하는, 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보완되거나 그에 통합될 수 있다.
본 명세서는, 도면들과 함께, 단지 예시적인 것으로 간주되는 것으로 의도되고, 여기서 예시적이란 예를 의미한다. 본 명세서에서 사용되는, "또는"의 사용은, 컨텍스트가 명확하게 달리 지시하지 않는 한, "및/또는"을 포함하는 것으로 의도된다.
본 특허 문서가 많은 세부 사항들을 포함하고 있지만, 이들이 임의의 발명의 또는 청구될 수 있는 것의 범위에 대한 제한으로서 해석되어서는 안 되고, 오히려 특정 발명들의 특정 실시예들에 특정적일 수 있는 특징들의 설명으로서 해석되어야 한다. 개별 실시예들의 컨텍스트에서 본 특허 문서에서 설명되는 특정 특징들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 컨텍스트에서 설명되는 다양한 특징들은 또한 다수의 실시예에서 개별적으로 또는 임의의 적합한 부분조합으로 구현될 수 있다. 더욱이, 특징들이 특정 조합들로 작용하는 것으로 위에서 설명되고 심지어 처음에는 그와 같이 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우들에서 조합으로부터 삭제될 수 있고, 청구된 조합은 부분조합 또는 부분조합의 변형에 관한 것일 수 있다.
유사하게, 동작들이 특정 순서로 도면들에 묘사되지만, 이는 바람직한 결과들을 달성하기 위해, 그러한 동작들이 도시된 특정 순서로 또는 순차적인 순서로 수행되거나, 모든 예시된 동작들이 수행되는 것을 요구하는 것으로 이해되어서는 안 된다. 더욱이, 본 특허 문서에서 설명된 실시예들에서의 다양한 시스템 컴포넌트들의 분리는 모든 실시예들에서 그러한 분리를 요구하는 것으로 이해되어서는 안 된다.
몇몇 구현들 및 예들만이 설명되고, 본 특허 문서에서 설명되고 예시된 것에 기초하여 다른 구현들, 향상들 및 변형들이 이루어질 수 있다.

Claims (40)

  1. 비디오 데이터를 처리하는 방법으로서,
    비디오의 크로마 블록과 상기 비디오의 비트스트림 사이의 전환을 위해, 상기 크로마 블록의 대응하는 루마 영역의 적어도 하나의 샘플을 커버하는 루마 비디오 유닛 및 대응하는 크로마 영역의 적어도 하나의 샘플을 커버하는 크로마 비디오 유닛의 블록 차원 및 파티션 정보에 기초하여, 상기 크로마 블록에 대한 교차-성분 선형 모델 인트라 예측을 인에이블할지 또는 디스에이블할지를 결정하는 단계- 상기 크로마 블록은 루마 성분 및 적어도 하나의 크로마 성분이 개별 파티션 트리 구조들을 갖는 이중 트리 구조 내에 있음 -;
    상기 교차-성분 선형 모델 인트라 예측이 인에이블된 것에 응답하여, 적어도 상기 크로마 블록의 이웃 크로마 샘플들에 기초하여 상기 교차 성분 선형 모델의 파라미터들을 결정하는 단계;
    상기 파라미터들에 기초하여 상기 크로마 블록의 예측 값들을 도출하기 위해 상기 교차 성분 선형 모델을 적용하는 단계; 및
    상기 예측 값들에 기초하여 상기 전환을 수행하는 단계를 포함하고,
    상기 교차-성분 선형 모델 인트라 예측은, 상기 크로마 비디오 유닛의 차원이 32×32이고 상기 루마 비디오 유닛의 차원이 64×64일 때 디스에이블되고, 상기 파티션 정보는 상기 크로마 비디오 유닛이 쿼드트리 분할 연산이 아닌 수평 분할 연산으로 분할되고 상기 루마 비디오 유닛이 쿼드트리 분할 연산이 아닌 수직 분할 연산으로 분할되는 것을 특정하는, 방법.
  2. 제1항에 있어서,
    상기 교차-성분 선형 모델 인트라 예측이 현재 크로마 블록에 대해 디스에이블되는 것으로 결정되면, 상기 비트스트림으로부터, 상기 교차-성분 선형 모델 인트라 예측과 관련된 신택스 요소를 배제하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서, 상기 교차-성분 선형 모델 인트라 예측은, 상기 크로마 비디오 유닛이 수평 삼진 분할 연산으로 분할되고 상기 루마 비디오 유닛이 수직 삼진 분할 연산으로 분할될 때 디스에이블되는 방법.
  4. 제1항에 있어서, 상기 교차-성분 선형 모델 인트라 예측은, 상기 크로마 비디오 유닛이 수평 삼진 분할 연산으로 분할되고 상기 루마 비디오 유닛이 수직 이진 분할 연산으로 분할될 때 디스에이블되는 방법.
  5. 제1항에 있어서, 상기 교차-성분 선형 모델 인트라 예측은 상기 크로마 비디오 유닛이 수평 이진 분할 연산으로 분할되고 상기 루마 비디오 유닛이 수직 삼진 분할 연산으로 분할될 때 디스에이블되는 방법.
  6. 제1항에 있어서, 상기 교차-성분 선형 모델 인트라 예측은 상기 크로마 비디오 유닛이 수평 이진 분할 연산으로 분할되고 상기 루마 비디오 유닛이 수직 이진 분할 연산으로 분할될 때 디스에이블되는 방법.
  7. 제1항에 있어서, 상기 교차-성분 선형 모델 인트라 예측은 상기 루마 비디오 유닛의 차원이 64x64일 때 디스에이블되고, 상기 파티션 정보는 상기 크로마 비디오 유닛이 쿼드트리 분할 연산이 아닌 수직 분할 연산으로 분할되고 상기 루마 비디오 유닛이 쿼드트리 분할 연산이 아닌 수평 분할 연산으로 분할되는 것을 특정하는 방법.
  8. 제7항에 있어서, 상기 교차-성분 선형 모델 인트라 예측은, 상기 크로마 비디오 유닛이 수직 삼진 분할 연산으로 분할되고 상기 루마 비디오 유닛이 수평 삼진 분할 연산으로 분할될 때 디스에이블되는 방법.
  9. 제7항에 있어서, 상기 교차-성분 선형 모델 인트라 예측은, 상기 크로마 비디오 유닛이 수직 삼진 분할 연산으로 분할되고 상기 루마 비디오 유닛이 수평 이진 분할 연산으로 분할될 때 디스에이블되는 방법.
  10. 제7항에 있어서, 상기 교차-성분 선형 모델 인트라 예측은, 상기 크로마 비디오 유닛이 이진 수직 분할 연산으로 분할되고 상기 루마 비디오 유닛이 수평 삼진 분할 연산으로 분할될 때 디스에이블되는 방법.
  11. 제7항에 있어서, 상기 교차-성분 선형 모델 인트라 예측은, 상기 크로마 비디오 유닛이 수직 이진 분할 연산으로 분할되고 상기 루마 비디오 유닛이 수평 이진 분할 연산으로 분할될 때 디스에이블되는 방법.
  12. 제1항에 있어서, 상기 전환은 상기 크로마 블록을 상기 비트스트림으로 인코딩하는 것을 포함하는 방법.
  13. 제1항에 있어서, 상기 전환은 상기 비트스트림으로부터 상기 크로마 블록을 디코딩하는 것을 포함하는 방법.
  14. 비디오 데이터를 처리하기 위한 장치로서,
    프로세서 및 명령어들을 갖는 비일시적 메모리를 포함하고, 상기 명령어들은 상기 프로세서에 의한 실행시에 상기 프로세서로 하여금,
    비디오의 크로마 블록과 상기 비디오의 비트스트림 사이의 전환을 위해, 상기 크로마 블록의 대응하는 루마 영역의 적어도 하나의 샘플을 커버하는 루마 비디오 유닛 및 대응하는 크로마 영역의 적어도 하나의 샘플을 커버하는 크로마 비디오 유닛의 블록 차원 및 파티션 정보에 기초하여, 상기 크로마 블록에 대한 교차-성분 선형 모델 인트라 예측을 인에이블할지 또는 디스에이블할지를 결정하게 하고- 상기 크로마 블록은 루마 성분 및 적어도 하나의 크로마 성분이 개별 파티션 트리 구조들을 갖는 이중 트리 구조 내에 있음 -;
    상기 교차-성분 선형 모델 인트라 예측이 인에이블된 것에 응답하여, 적어도 상기 크로마 블록의 이웃 크로마 샘플들에 기초하여 상기 교차-성분 선형 모델의 파라미터들을 결정하게 하고;
    상기 파라미터들에 기초하여 상기 크로마 블록의 예측 값들을 도출하기 위해 상기 교차-성분 선형 모델을 적용하게 하고;
    상기 예측 값들에 기초하여 상기 전환을 수행하게 하고,
    상기 교차-성분 선형 모델 인트라 예측은, 상기 크로마 비디오 유닛의 차원이 32×32이고 상기 루마 비디오 유닛의 차원이 64×64일 때 디스에이블되고, 상기 파티션 정보는 상기 크로마 비디오 유닛이 쿼드트리 분할 연산이 아닌 수평 분할 연산으로 분할되고 상기 루마 비디오 유닛이 쿼드트리 분할 연산이 아닌 수직 분할 연산으로 분할되는 것을 특정하는, 장치.
  15. 명령어들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령어들은, 프로세서로 하여금,
    비디오의 크로마 블록과 상기 비디오의 비트스트림 사이의 전환을 위해, 상기 크로마 블록의 대응하는 루마 영역의 적어도 하나의 샘플을 커버하는 루마 비디오 유닛 및 대응하는 크로마 영역의 적어도 하나의 샘플을 커버하는 크로마 비디오 유닛의 블록 차원 및 파티션 정보에 기초하여, 상기 크로마 블록에 대한 교차-성분 선형 모델 인트라 예측을 인에이블할지 또는 디스에이블할지를 결정하게 하고- 상기 크로마 블록은 루마 성분 및 적어도 하나의 크로마 성분이 개별 파티션 트리 구조들을 갖는 이중 트리 구조 내에 있음 -;
    상기 교차-성분 선형 모델 인트라 예측이 인에이블된 것에 응답하여, 적어도 상기 크로마 블록의 이웃 크로마 샘플들에 기초하여 상기 교차-성분 선형 모델의 파라미터들을 결정하게 하고;
    상기 파라미터들에 기초하여 상기 크로마 블록의 예측 값들을 도출하기 위해 상기 교차-성분 선형 모델을 적용하게 하고;
    상기 예측 값들에 기초하여 상기 전환을 수행하게 하고,
    상기 교차-성분 선형 모델 인트라 예측은, 상기 크로마 비디오 유닛의 차원이 32×32이고 상기 루마 비디오 유닛의 차원이 64×64일 때 디스에이블되고, 상기 파티션 정보는 상기 크로마 비디오 유닛이 쿼드트리 분할 연산이 아닌 수평 분할 연산으로 분할되고 상기 루마 비디오 유닛이 쿼드트리 분할 연산이 아닌 수직 분할 연산으로 분할되는 것을 특정하는, 비일시적 컴퓨터 판독가능 저장 매체.
  16. 비디오 처리 장치에 의해 수행되는 방법에 의해 생성되는 비디오의 비트스트림을 저장하는 비일시적 컴퓨터 판독가능 기록 매체로서,
    상기 방법은,
    크로마 블록의 대응하는 루마 영역의 적어도 하나의 샘플을 커버하는 루마 비디오 유닛 및 대응하는 크로마 영역의 적어도 하나의 샘플을 커버하는 크로마 비디오 유닛의 블록 차원 및 파티션 정보에 기초하여, 상기 크로마 블록에 대한 교차-성분 선형 모델 인트라 예측을 인에이블할지 또는 디스에이블할지를 결정하는 단계- 상기 크로마 블록은 루마 성분 및 적어도 하나의 크로마 성분이 개별 파티션 트리 구조들을 갖는 이중 트리 구조 내에 있음 -;
    상기 교차-성분 선형 모델 인트라 예측이 인에이블된 것에 응답하여, 적어도 상기 크로마 블록의 이웃 크로마 샘플들에 기초하여 상기 교차-성분 선형 모델의 파라미터들을 결정하는 단계;
    상기 파라미터들에 기초하여 상기 크로마 블록의 예측 값들을 도출하기 위해 상기 교차-성분 선형 모델을 적용하는 단계; 및
    상기 예측 값들에 기초하여 상기 비트스트림을 생성하는 단계를 포함하고,
    상기 교차-성분 선형 모델 인트라 예측은, 상기 크로마 비디오 유닛의 차원이 32×32이고 상기 루마 비디오 유닛의 차원이 64×64일 때 디스에이블되고, 상기 파티션 정보는 상기 크로마 비디오 유닛이 쿼드트리 분할 연산이 아닌 수평 분할 연산으로 분할되고 상기 루마 비디오 유닛이 쿼드트리 분할 연산이 아닌 수직 분할 연산으로 분할되는 것을 특정하는, 비일시적 컴퓨터 판독가능 기록 매체.
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
KR1020217035446A 2019-05-08 2020-05-08 교차-성분 코딩의 적용가능성에 대한 조건들 KR102641796B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2019085996 2019-05-08
CNPCT/CN2019/085996 2019-05-08
PCT/CN2020/089096 WO2020224629A1 (en) 2019-05-08 2020-05-08 Conditions for applicability of cross-component coding

Publications (2)

Publication Number Publication Date
KR20220006053A KR20220006053A (ko) 2022-01-14
KR102641796B1 true KR102641796B1 (ko) 2024-03-04

Family

ID=73050582

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217035446A KR102641796B1 (ko) 2019-05-08 2020-05-08 교차-성분 코딩의 적용가능성에 대한 조건들

Country Status (8)

Country Link
US (2) US11463713B2 (ko)
EP (1) EP3949395A4 (ko)
JP (1) JP7407206B2 (ko)
KR (1) KR102641796B1 (ko)
CN (2) CN117221558A (ko)
BR (1) BR112021021661A2 (ko)
SG (1) SG11202111961SA (ko)
WO (1) WO2020224629A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI820212B (zh) * 2018-09-12 2023-11-01 大陸商北京字節跳動網絡技術有限公司 單行交叉分量線性模型預測模式
KR102639936B1 (ko) 2019-03-08 2024-02-22 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 처리에서 모델-기반 변형에 대한 제약들
CA3135968C (en) 2019-04-18 2024-05-14 Beijing Bytedance Network Technology Co., Ltd. Restriction on applicability of cross component mode
JP7317991B2 (ja) 2019-04-23 2023-07-31 北京字節跳動網絡技術有限公司 クロスコンポーネント依存性を低減するための方法
WO2020256510A1 (ko) * 2019-06-21 2020-12-24 현대자동차주식회사 코딩 툴들을 제어하는 방법 및 장치
JP7418478B2 (ja) * 2019-06-22 2024-01-19 北京字節跳動網絡技術有限公司 クロマ残差スケーリングのためのシンタックス要素
US20220360767A1 (en) * 2019-06-25 2022-11-10 Interdigital Vc Holdings France, Sas Method and apparatus for coding/decoding picture data
CN117241024A (zh) * 2019-07-05 2023-12-15 Lg电子株式会社 解码设备和编码设备、存储介质及发送图像的数据的设备
WO2021006582A1 (ko) * 2019-07-05 2021-01-14 엘지전자 주식회사 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩
CN117395396A (zh) 2019-07-07 2024-01-12 北京字节跳动网络技术有限公司 色度残差缩放的信令通知
JPWO2021100450A1 (ko) * 2019-11-21 2021-05-27
US20210409706A1 (en) * 2020-06-30 2021-12-30 Tencent America LLC Low latency cross component intra prediction mode
WO2023133443A2 (en) * 2022-01-05 2023-07-13 Bytedance Inc. Method, apparatus, and medium for video processing
CN115118982B (zh) * 2022-06-24 2024-05-24 腾讯科技(深圳)有限公司 一种视频处理方法、设备、存储介质及计算机程序产品

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020220884A1 (zh) 2019-04-30 2020-11-05 华为技术有限公司 视频序列的帧内预测方法及装置

Family Cites Families (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN103238320B (zh) 2010-09-30 2016-06-01 三星电子株式会社 通过使用平滑插值滤波器对图像进行插值的方法和装置
WO2012090504A1 (en) 2010-12-28 2012-07-05 Panasonic Corporation Methods and apparatuses for coding and decoding video stream
WO2012175003A1 (en) * 2011-06-20 2012-12-27 Mediatek Singapore Pte. Ltd. Method and apparatus of chroma intra prediction with reduced line memory
KR20130058524A (ko) * 2011-11-25 2013-06-04 오수미 색차 인트라 예측 블록 생성 방법
CN114786016A (zh) 2012-07-02 2022-07-22 韩国电子通信研究院 图像编码/解码方法和非暂时性计算机可读记录介质
US9854259B2 (en) 2012-07-09 2017-12-26 Qualcomm Incorporated Smoothing of difference reference picture
US9503733B2 (en) 2013-04-10 2016-11-22 ARRIS Enterprises, LLC Re-sampling with phase offset adjustment for luma and chroma to signal adaptive filters in scalable video coding
US9648330B2 (en) 2013-07-15 2017-05-09 Qualcomm Incorporated Inter-color component residual prediction
MY178305A (en) 2013-10-11 2020-10-07 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
US10200700B2 (en) * 2014-06-20 2019-02-05 Qualcomm Incorporated Cross-component prediction in video coding
US20150373343A1 (en) 2014-06-20 2015-12-24 Qualcomm Incorporated Representation format update in multi-layer codecs
CN107079157B (zh) 2014-09-12 2020-12-22 Vid拓展公司 用于视频编码的分量间去相关
KR20200051831A (ko) 2014-10-28 2020-05-13 미디어텍 싱가폴 피티이. 엘티디. 비디오 코딩을 위한 가이드된 크로스-컴포넌트 예측 방법
US9998742B2 (en) 2015-01-27 2018-06-12 Qualcomm Incorporated Adaptive cross component residual prediction
GB2543429B (en) 2015-02-19 2017-09-27 Magic Pony Tech Ltd Machine learning for visual processing
GB201603144D0 (en) 2016-02-23 2016-04-06 Magic Pony Technology Ltd Training end-to-end video processes
WO2016164235A1 (en) 2015-04-06 2016-10-13 Dolby Laboratories Licensing Corporation In-loop block-based image reshaping in high dynamic range video coding
US20180167615A1 (en) 2015-06-07 2018-06-14 Sharp Kabushiki Kaisha Systems and methods for optimizing video coding based on a luminance transfer function or video color component values
WO2017019818A1 (en) 2015-07-28 2017-02-02 Vid Scale, Inc. High dynamic range video coding architectures with multiple operating modes
WO2017053432A1 (en) 2015-09-21 2017-03-30 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
US20170150186A1 (en) 2015-11-25 2017-05-25 Qualcomm Incorporated Flexible transform tree structure in video 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
CN109417620B (zh) 2016-03-25 2021-04-27 松下知识产权经营株式会社 用于使用信号依赖型自适应量化将运动图像编码及解码的方法及装置
CN109155853B (zh) 2016-05-19 2023-03-28 杜比实验室特许公司 用于高动态范围图像的色度整形
JP6846442B2 (ja) 2016-05-19 2021-03-24 ドルビー ラボラトリーズ ライセンシング コーポレイション ハイダイナミックレンジ画像のためのクロマ再構成
WO2017206826A1 (en) * 2016-05-28 2017-12-07 Mediatek Inc. Methods and apparatuses of video data processing with conditionally quantization parameter information signaling
EP3488610A4 (en) * 2016-07-22 2019-07-17 Sharp Kabushiki Kaisha SYSTEMS AND METHOD FOR CODING VIDEO DATA BY ADAPTIVE COMPONENT CALING
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
JP2018056685A (ja) * 2016-09-27 2018-04-05 株式会社ドワンゴ 画像符号化装置、画像符号化方法、及び画像符号化プログラム、並びに、画像復号装置、画像復号方法、及び画像復号プログラム
WO2018066849A1 (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
JP2020031252A (ja) * 2016-12-22 2020-02-27 シャープ株式会社 画像復号装置及び画像符号化装置
US11025903B2 (en) * 2017-01-13 2021-06-01 Qualcomm Incorporated Coding video data using derived chroma mode
JP7164535B2 (ja) 2017-06-29 2022-11-01 ドルビー ラボラトリーズ ライセンシング コーポレイション 統合された画像再構成及び映像符号化
US11070824B2 (en) * 2017-09-15 2021-07-20 Sony Corporation Image processing device and method
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
EP3753253A1 (en) 2018-02-14 2020-12-23 Dolby Laboratories Licensing Corporation Image reshaping in video coding using rate distortion optimization
US11190790B2 (en) * 2018-04-01 2021-11-30 Lg Electronics Inc. Parallel processing method for color component of video signal, and device therefor
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
TWI820212B (zh) 2018-09-12 2023-11-01 大陸商北京字節跳動網絡技術有限公司 單行交叉分量線性模型預測模式
CN111357294B (zh) 2018-10-23 2022-12-30 北京字节跳动网络技术有限公司 基于子块的运动信息列表的简化熵编解码
JP7231727B2 (ja) 2018-11-05 2023-03-01 北京字節跳動網絡技術有限公司 精緻化を伴うインター予測のための補間
CN113039791B (zh) 2018-11-06 2024-02-23 北京字节跳动网络技术有限公司 帧内预测的参数推导中的复杂度降低
EP3871415A4 (en) 2018-12-07 2022-04-13 Beijing Bytedance Network Technology Co., Ltd. CONTEXT-BASED INTRAPREDICTION
CN113273213A (zh) 2018-12-31 2021-08-17 韩国电子通信研究院 图像编码/解码方法和设备以及存储比特流的记录介质
WO2020156528A1 (en) 2019-02-01 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Filtering processes based on in-loop reshaping
EP3928519B1 (en) 2019-02-22 2024-04-03 Huawei Technologies Co., Ltd. Method and apparatus for affine based inter prediction of chroma subblocks
AU2020226565C1 (en) 2019-02-22 2024-01-11 Beijing Bytedance Network Technology Co., Ltd. Neighbouring sample selection for intra prediction
KR102472756B1 (ko) 2019-02-24 2022-12-01 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인트라 예측을 위한 파라미터 유도
EP3703366A1 (en) 2019-02-28 2020-09-02 InterDigital VC Holdings, Inc. Method and device for picture encoding and decoding
KR20210130153A (ko) * 2019-02-28 2021-10-29 인터디지털 브이씨 홀딩스 인코포레이티드 픽처 인코딩 및 디코딩을 위한 방법 및 디바이스
JP2022523925A (ja) 2019-03-04 2022-04-27 アリババ グループ ホウルディング リミテッド 映像コンテンツを処理するための方法及びシステム
KR102639936B1 (ko) 2019-03-08 2024-02-22 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 처리에서 모델-기반 변형에 대한 제약들
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
CA3135968C (en) 2019-04-18 2024-05-14 Beijing Bytedance Network Technology Co., Ltd. Restriction on applicability of cross component mode
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 シャープ株式会社 動画像復号装置および動画像符号化装置
JP7418478B2 (ja) 2019-06-22 2024-01-19 北京字節跳動網絡技術有限公司 クロマ残差スケーリングのためのシンタックス要素
CN117395396A (zh) 2019-07-07 2024-01-12 北京字节跳动网络技术有限公司 色度残差缩放的信令通知
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
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020220884A1 (zh) 2019-04-30 2020-11-05 华为技术有限公司 视频序列的帧内预测方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Edouard François et al, AHG16/non-CE3: Study of CCLM restrictions in case of separate luma/chroma tree, JVET of ITU-T and ISO/IEC, JVET-N0390 version 5 (2019.03.23.) 1부.*
Jianle Chen et al, Algorithm description for Versatile Video Coding and Test Model 4 (VTM 4), JVET of ITU-T and ISO/IEC, JVET-M1002 version 2 (2019.3.19.) 1부.*

Also Published As

Publication number Publication date
EP3949395A4 (en) 2022-06-29
BR112021021661A2 (pt) 2021-12-21
SG11202111961SA (en) 2021-12-30
KR20220006053A (ko) 2022-01-14
WO2020224629A1 (en) 2020-11-12
CN117221558A (zh) 2023-12-12
JP2022531216A (ja) 2022-07-06
US20220030257A1 (en) 2022-01-27
EP3949395A1 (en) 2022-02-09
CN113796072A (zh) 2021-12-14
US20220385926A1 (en) 2022-12-01
JP7407206B2 (ja) 2023-12-28
CN113796072B (zh) 2023-10-03
US11463713B2 (en) 2022-10-04

Similar Documents

Publication Publication Date Title
KR102641796B1 (ko) 교차-성분 코딩의 적용가능성에 대한 조건들
JP7418478B2 (ja) クロマ残差スケーリングのためのシンタックス要素
AU2020260285B2 (en) Restriction on applicability of cross component mode
KR102660738B1 (ko) 크로마 잔차 스케일링의 시그널링
KR102660668B1 (ko) 크로스 컴포넌트 의존성 감소를 위한 방법들
JP7482220B2 (ja) サブピクチャのパラメータセットシグナリングにおける構文制約
CN114208174B (zh) 预测过程中的调色板模式编解码
CN114145013B (zh) 调色板模式编解码的模式确定
CN114556924A (zh) 视频处理中色度残差的联合编解码与滤波
CN114145018B (zh) 调色板模式的量化处理
CN114402601B (zh) 色度去块滤波的量化参数偏移的方法及装置
CN113475077B (zh) 调色板模式使用指示的独立编解码
WO2020253864A1 (en) Selective enablement of adaptive in-loop color-space transform in video coding
CN114208187A (zh) 帧内块复制虚拟缓冲区的映射限制
JP2022532800A (ja) イントラブロックコピー予測を備えたパレットモード
CN115088192A (zh) 视频数据的基于字典的编解码

Legal Events

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