KR20230170146A - 컨텍스트 기반 인트라 예측 - Google Patents
컨텍스트 기반 인트라 예측 Download PDFInfo
- Publication number
- KR20230170146A KR20230170146A KR1020237042214A KR20237042214A KR20230170146A KR 20230170146 A KR20230170146 A KR 20230170146A KR 1020237042214 A KR1020237042214 A KR 1020237042214A KR 20237042214 A KR20237042214 A KR 20237042214A KR 20230170146 A KR20230170146 A KR 20230170146A
- Authority
- KR
- South Korea
- Prior art keywords
- chroma
- sample
- samples
- luma
- neighboring
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 634
- 241000023320 Luma <angiosperm> Species 0.000 claims abstract description 440
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 claims abstract description 440
- 230000009466 transformation Effects 0.000 claims abstract description 95
- 238000006243 chemical reaction Methods 0.000 claims abstract description 81
- 230000008569 process Effects 0.000 claims description 64
- 238000012545 processing Methods 0.000 claims description 57
- 101150067055 minC gene Proteins 0.000 claims description 33
- 101150076173 cntL gene Proteins 0.000 claims description 21
- 229910052739 hydrogen Inorganic materials 0.000 claims description 19
- 230000015654 memory Effects 0.000 claims description 19
- 229910052717 sulfur Inorganic materials 0.000 claims description 14
- 238000003491 array Methods 0.000 claims description 13
- 238000012935 Averaging Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims 27
- 230000001939 inductive effect Effects 0.000 claims 2
- 238000013507 mapping Methods 0.000 claims 1
- 238000003672 processing method Methods 0.000 abstract description 51
- 238000005070 sampling Methods 0.000 abstract description 22
- 239000000523 sample Substances 0.000 description 552
- 238000005516 engineering process Methods 0.000 description 49
- 238000010586 diagram Methods 0.000 description 42
- 238000004590 computer program Methods 0.000 description 35
- 230000006870 function Effects 0.000 description 25
- 238000009795 derivation Methods 0.000 description 14
- 229910052698 phosphorus Inorganic materials 0.000 description 13
- 238000005286 illumination Methods 0.000 description 10
- 229910052760 oxygen Inorganic materials 0.000 description 9
- 239000013074 reference sample Substances 0.000 description 8
- 230000001419 dependent effect Effects 0.000 description 6
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 229910052757 nitrogen Inorganic materials 0.000 description 4
- 238000010187 selection method Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 101100149023 Bacillus subtilis (strain 168) secA gene Proteins 0.000 description 1
- 241000947853 Vibrionales Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 229910052799 carbon Inorganic materials 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000000746 purification Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/59—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Color Television Systems (AREA)
Abstract
비디오 처리 방법이 제공된다. 방법은 현재 비디오 블록의 이웃 블록의 크로마 및 루마 샘플에 대해 다운 샘플링을 수행하는 단계; 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 다운 샘플링 된 크로마 및 다운 샘플링으로부터 획득된 루마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계; 현재 비디오 블록의 예측 값을 유도하기 위해 현재 비디오 블록에 대응하는 루마 블록에 위치한 루마 샘플에 CCLM을 적용하는 단계; 및 예측 값에 기초하여 상기 변환을 수행하는 단계를 포함한다.
Description
이 특허 문헌은 비디오 처리 기술, 장치 및 시스템에 관한 것이다.
파리 협약에 따른 적용 가능한 특허법 및/또는 규칙에 따라, 본 출원은 2018년 12월 7일에 출원된 국제 특허 출원 번호 PCT/CN2018/119709, 2018년 12월 29일에 출원된 국제 특허 출원 번호 PCT/CN2018/125412, 2019년 1월 1일에 출원된 국제 특허 출원 번호 PCT/CN2019/070002, 2019년 2월 22일에 출원된 국제 특허 출원 번호 PCT/CN2019/075874, 2019년 2월 24일에 출원된 국제 특허 출원 번호 PCT/CN2019/075993, 2019년 2월 26일에 출원된 국제 특허 출원 번호 PCT/CN2019/076195, 2019년 3월 24일에 출원된 국제 특허 출원 번호 PCT/CN2019/079396, 2019년 3월 25일에 출원된 국제 특허 출원 번호 PCT/CN2019/079431, 및 2019년 3월 26일에 출원된 국제 특허 출원 번호 PCT/CN2019/079769에 대한 우선권 및 이익을 주장한다. 미국 법률에 따른 모든 목적을 위해, 앞서 언급한 출원의 전체 공개는 본 출원 공개의 일부로 참조로 통합된다.
비디오 압축의 발전에도 불구하고, 디지털 비디오는 여전히 인터넷 및 기타 디지털 통신 네트워크에서 가장 큰 대역폭 사용을 차지한다. 영상을 수신하고 표시할 수 있는 연결된 사용자 장치의 수가 증가함에 따라, 디지털 비디오 사용에 대한 대역폭 수요는 계속해서 증가할 것으로 예상된다.
디지털 비디오 처리와 관련된 장치, 시스템 및 방법, 예를 들어 비디오 코딩에서 크로스 컴포넌트 선형 모델(Cross-Component Linear Model)(CCLM) 예측 모드(prediction mode)에 대한 단순화된 선형 모델 유도(linear model derivation)가 설명된다. 설명된 방법은 기존 비디오 코딩 표준(예를 들어, 고효율 비디오 코딩(High Efficiency Video Coding)(HEVC)) 및 향후 비디오 코딩 표준(예를 들어, 다용도 비디오 코딩(Versatile Video Coding)(VVC)) 또는 코덱 모두에 적용될 수 있다.
하나의 대표적인 측면에서, 개시된 기술은 비디오 처리(video processing)를 위한 방법을 제공하기 위해 사용될 수 있다. 이 방법은 크로마 블록(chroma block) 인 비디오의 현재 비디오 블록(current video block)과 비디오의 코딩 된 표현(coded representation) 사이의 변환(conversion)을 위해, 이웃 크로마 샘플 그룹으로부터의 두 개의 크로마 샘플에 기초하여 크로스 컴포넌트 선형 모델의 파라미터를 결정하는 단계 - 두 개의 크로마 샘플은 위치 규칙에 기초하여 그룹으로부터 선택됨 -; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
하나의 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 상기 방법은 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 크로마 샘플의 위치에 기초하여 선택된 크로마 샘플에 기초하여 크로스 컴포넌트 선형 모델의 파라미터 결정하는 단계 - 선택된 크로마 샘플은 이웃 크로마 샘플의 그룹으로부터 선택됨 -; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 이 방법은 현재 비디오 블록에 대해, 선형 모델의 파라미터에 대한 값의 세트를 유도하는 데 사용되는 이웃 크로마 샘플 그룹을 결정하는 단계 - 현재 비디오 블록의 너비와 높이는 각각 W와 H이고, 및 이웃 크로마 샘플의 그룹은 이웃 크로마 샘플보다 2xW 위쪽 또는 이웃 크로마 샘플보다 2xH 왼쪽에 위치하는 적어도 하나의 샘플을 포함함 -; 및 선형 모델에 기초하여, 현재 비디오 블록과 현재 비디오 블록을 포함하는 비디오의 코딩 된 표현 사이의 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 방법은: 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 다중 파라미터 세트를 결정하는 단계 - 각각의 파라미터 세트는 크로스 컴포넌트 선형 모델(cross-component linear model)(CCLM)을 정의하고 및 대응하는 크로마 샘플 위치에서 대응하는 크로마 샘플 그룹으로부터 유도됨 -; 다중 파라미터 세트에 기초하여, 최종 CCLM에 대한 파라미터를 결정하는 단계; 및 최종 CCLM에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 방법은 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 이웃 루마(luma) 및 크로마(chroma) 샘플에서 선택된 N 개 그룹의 크로마 및 루마 샘플의 최대 및 최소 값에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계; 및 CCLM을 사용하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 방법은 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 두 개의 크로마 샘플과 대응하는 두 개의 루마 샘플에 의해 완전히 결정 가능한 크로스 컴포넌트 선형 모델의 파라미터를 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 방법은 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 두 개의 크로마 샘플 값과 두 개의 루마 샘플 값에 따라 엔트리가 검색되는 파라미터 테이블을 사용하여 크로스 컴포넌트 선형 모델의 파라미터를 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 방법은 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 다중 크로스 컴포넌트 선형 모델(MCCLM)의 예측 결과의 조합으로 현재 비디오 블록의 위치(x, y)에서 크로마 샘플의 최종 예측 P(x, y)를 결정하는 단계 - MCCLM은 크로마 샘플의 위치(x, y)에 기초하여 선택됨 -; 및 최종 예측에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 방법은 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 왼쪽 이웃 샘플만을 사용하는 제1 크로스 컴포넌트 선형 모델(CCLM)이 현재 비디오 블록의 샘플을 예측하는 데 사용되는지 여부에 대한 제1 결정 및/또는 현재 비디오 블록의 샘플을 예측하기 위해 위쪽 이웃 샘플만을 사용하는 제2 크로스 컴포넌트 선형 모델(CCLM)이 사용되는지 여부에 관한 제2 결정을 수행하는 단계; 및 제1 결정 및/또는 제2 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 상기 방법은 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 코딩 된 표현에서 산술 코딩(arithmetic coding)을 사용하여 플래그(flag)를 코딩하는 데 사용되는 컨텍스트(context)를 결정하는 단계 - 컨텍스트는 현재 비디오 블록의 왼쪽 상단 이웃 블록이 크로스 컴포넌트 선형 모델(CCLM) 예측 모드를 사용하여 코딩 되는지 여부에 기초함 -; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함하고, 여기서 플래그는 CCLM 예측 모드가 현재 비디오 블록에 적용되는지 여부를 나타 내기 위해 시그널링되고, 및 CCLM 예측 모드는 다른 컴포넌트로부터 크로마 컴포턴트의 예측 값을 유도하기 위해 선형 모드를 사용한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 방법은 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 하나 이상의 이웃 블록의 코딩 모드에 기초하여 유도 모드(derived mode)(DM 모드) 및 선형 모드(linear mode)(LM 모드)의 하나 이상의 표시에 대한 코딩 순서를 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함하고, LE 모드는 다른 컴포넌트로부터 크로마 컴포넌트의 예측 값을 유도하기 위해 선형 모드를 사용하고, 및 DM 모드는 다른 컴포넌트로부터 크로마 컴포넌트의 인트라 예측 모드를 유도한다
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 이 방법은 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 정제된 이웃 루마 샘플 및 크로마 샘플에 기초하여 선형 모델 예측 또는 크로스 컬러 컴포넌트 예측을 위한 파라미터를 결정하는 단계; 현재 비디오 블록의 파라미터 및 정제된 내부 루마 샘플에 기초하여 현재 비디오 블록의 크로마 컴포넌트의 예측 값을 유도하는 단계; 및 예측 값에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 이 방법은 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 가장 큰 또는 가장 작은 이웃 샘플의 위치에 기초하여 이웃 샘플을 선택함으로써 선형 모델 예측 또는 크로스 컬러 컴포넌트 예측(cross-color component prediction)을 위한 파라미터를 결정하는 단계; 현재 비디오 블록의 파라미터 및 내부 루마 샘플에 기초하여 현재 비디오 블록의 크로마 샘플의 예측 값을 유도하는 단계; 및 예측 값에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 이 방법은 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 메인 컬러 컴포넌트(main color component)와 종속 컬러 컴포넌트(dependent color component)에 기초하여 선형 모델 예측 또는 크로스 컬러 컴포넌트 예측을 위한 파라미터를 결정하는 단계 - 메인 컬러 컴포넌트는 루마 컬러 컴포넌트 및 크로마 컬러 컴포넌트 중 하나로 선택되고 및 종속 컬러 컴포넌트는 루마 컬러 컴포넌트 및 크로마 컬러 컴포넌트 중 다른 것으로 선택됨 -; 및 예측 값에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 이 방법은 현재 비디오 블록의 이웃 블록의 크로마 및 루마 샘플에 대해 다운 샘플링을 수행하는 단계; 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 다운 샘플링 된 크로마 및 다운 샘플링으로부터 획득된 루마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계; 현재 비디오 블록의 예측 값을 유도하기 위해 현재 비디오 블록에 대응하는 루마 블록에 위치한 루마 샘플에 CCLM을 적용하는 단계; 현재 비디오 블록의 예측 값을 유도하기 위해 현재 비디오 블록에 대응하는 루마 블록에 위치한 루마 샘플에 CCLM을 적용하는 단계; 및 예측 값에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 이 방법은: 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 이웃 크로마 샘플 그룹에서 두 개 이상의 크로마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계 - 두 개 이상의 크로마 샘플은 현재 비디오 블록의 코딩 모드에 기초하여 선택됨 -; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 이 방법은: 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, W 개의 이용 가능한 위쪽 이웃 샘플에 기초하여, W는 정수인, 선택된 크로마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 이 방법은: 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 H 개의 이용 가능한 왼쪽 이웃 샘플에 기초하여 선택된 크로마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 이 방법은: 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 두 개 또는 네 개의 크로마 샘플 및/또는 대응하는 루마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리를 한 방법을 제공하기 위해 사용될 수 있다. 이 방법은: 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 위치 규칙에 기초하여 크로마 샘플을 선택하는 단계 - 크로마 샘플은 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 유도하는 데 사용됨 -; 및 결정하는 단계에 기초하여 변환을 수행하는 단계 - 위치 규칙은 현재 비디오 블록의 위쪽 행 및/또는 왼쪽 열 내에 위치한 크로마 샘플을 선택하도록 지정함 - 를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 이 방법은: 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 루마 샘플이 다운 샘플링 되는 위치를 결정하는 단계 - 다운 샘플링 된 루마 샘플은 크로마 샘플 및 다운 샘플링 된 루마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 데 사용되고, 다운 샘플링 된 루마 샘플은 CCLM의 파라미터를 유도하는데 사용되는 크로마 샘플의 위치에 대응하는 위치에 있음 -; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 이 방법은 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록과 연관된 코딩 조건에 기초하여 크로마 샘플 및 루마 샘플을 사용하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 유도하는 방법을 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 이 방법은: 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 이웃 블록의 왼쪽 이웃 블록 및 위쪽 이웃 블록의 가용성에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 유도하는 데 사용되는 루마 컴포넌트 및 크로마 컴포넌트의 최대 값 및/또는 최소 값을 유도할지 여부를 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 이 방법은 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 선택된 이웃 샘플 및 레퍼런스 블록의 대응하는 이웃 샘플에 기초하여 선형 모델을 사용하여 코딩 툴의 파라미터를 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 이 방법은 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 N 개의 이웃 샘플 및 레퍼런스 블록의 N 개의 대응하는 이웃 샘플에 기초하여 로컬 조명 보상(local illumination compensation)(LIC) 툴의 파라미터를 결정하는 단계 - 현재 비디오 블록의 N 개의 이웃 샘플은 N 개의 이웃 샘플의 위치에 기초하여 선택됨 -; 및 결정하는 단계에 기초하여 변환을 수행하는 단계 - LIC 툴은 변환 동안 현재 비디오 블록에서 조명 변화의 선형 모델을 사용함 - 를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하기 위해 사용될 수 있다. 이 방법은 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 크로마 샘플 및 대응하는 루마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계 - 크로마 샘플 중 일부는 패딩 연산에 의해 획득되고 크로마 샘플 및 대응하는 루마 샘플은 두 개의 어레이 G0 및 G1로 그룹화되고, 각 어레이는 두 개의 크로마 샘플과 대응하는 루마 샘플을 포함 - 를 포함한다.
또 다른 대표적인 양태에서, 전술한 방법은 프로세서 실행 가능 코드의 형태로 구현되고 컴퓨터 판독 가능 프로그램 매체에 저장된다.
또 다른 대표적인 양태에서, 전술한 방법을 수행하도록 구성되거나 동작할 수 있는 장치가 개시된다. 장치는 이 방법을 구현하도록 프로그래밍 된 프로세서를 포함할 수 있다.
또 다른 대표적인 측면에서, 비디오 디코더 장치는 여기에 설명된 방법을 구현할 수 있다.
개시된 기술의 상기 및 다른 측면 및 특징은 도면, 설명 및 청구 범위에서 보다 상세히 설명된다.
도 1은 크로스 컴포넌트 예측에 사용되는 선형 모델의 가중치 유도에 사용되는 샘플 위치의 예를 보여준다.
도 2는 이웃 샘플을 두 그룹으로 분류하는 예를 보여준다.
도 3a는 크로마 샘플과 그에 대응하는 루마 샘플의 예를 보여준다.
도 3b는 공동 탐구 모델(JEM)(Joint Exploration Model)에서 크로스 컴포넌트 선형 모델(CCLM)에 대한 다운 필터링의 예를 보여준다.
도 4a 및 4b는 각각 선형 모델에 기초하여 예측에 사용되는 위쪽 이웃 샘플 및 왼쪽 이웃 샘플만을 보여준다.
도 5는 대응하는 크로마 샘플의 함수로서 최소 및 최대 루마 값 사이의 직선의 예를 보여준다.
도 6은 현재 크로마 블록 및 그 이웃 샘플의 예를 보여준다.
도 7은 왼쪽 이웃 샘플(LM-L)만을 사용하는 선형 모델에 의해 예측된 크로마 블록의 상이한 부분의 예를 보여주고, 이웃 샘플만을 사용하는 선형 모델(LM-A)을 보여준다.
도 8은 왼쪽 상단 이웃 블록의 예를 보여준다.
도 9는 선형 모델을 유도하기 위해 사용되는 샘플의 예를 보여준다.
도 10은 현재 블록에 대한 왼쪽 및 왼쪽 아래 열과 위쪽 및 오른쪽 위쪽 행의 예를 보여준다.
도 11은 현재 블록과 그 레퍼런스 샘플의 예를 보여준다.
도 12는 왼쪽 및 위쪽 이웃 레퍼런스 샘플이 모두 이용 가능한 경우 두 개의 이웃 샘플의 예를 보여준다.
도 13은 위쪽 이웃 레퍼런스 샘플 만 이용 가능할 때 두 개의 이웃 샘플의 예를 보여준다.
도 14는 왼쪽 이웃 레퍼런스 샘플 만이 이용 가능한 경우 두 개의 이웃 샘플의 예를 보여준다.
도 15는 왼쪽 및 위쪽 이웃 레퍼런스 샘플이 모두 이용 가능할 때 네 개의 이웃 샘플의 예를 보여준다.
도 16은 LM 유도에 사용되는 룩업 테이블의 예를 보여준다.
도 17은 6네 개의 엔트리를 갖는 LM 파라미터 유도 프로세스의 예를 보여준다.
도 18은 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 19a 및 19b는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 20a 및 20b는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 다른 예시적인 방법의 흐름도를 보여준다.
도 21은 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 다른 예시적인 방법의 흐름도를 보여준다.
도 22는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 23a 및 23b는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 24a-24e는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 25a 및 25b는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 26a 및 26b는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 27a 및 27b는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 28a 내지 28c는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 29a 내지 29c는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 30a 및 30b는 본 문서에 설명된 비주얼 미디어 디코딩 또는 비주얼 미디어 인코딩 기술을 구현하기 위한 하드웨어 플랫폼의 예의 블록도이다.
도 31a 및 31b는 네 개의 엔트리를 갖는 LM 파라미터 유도 프로세스의 예를 보여준다.
도 31a는 위쪽과 왼쪽의 이웃 샘플이 모두 사용 가능한 경우의 예를 보여준다.
31b는 위쪽 이웃 샘플 만 사용 가능하고 오른쪽 위는 사용 불가능한 경우의 예를 보여준다.
도 32는 LIC 파라미터를 유도하기 위해 이웃 샘플의 예를 보여준다.
도 2는 이웃 샘플을 두 그룹으로 분류하는 예를 보여준다.
도 3a는 크로마 샘플과 그에 대응하는 루마 샘플의 예를 보여준다.
도 3b는 공동 탐구 모델(JEM)(Joint Exploration Model)에서 크로스 컴포넌트 선형 모델(CCLM)에 대한 다운 필터링의 예를 보여준다.
도 4a 및 4b는 각각 선형 모델에 기초하여 예측에 사용되는 위쪽 이웃 샘플 및 왼쪽 이웃 샘플만을 보여준다.
도 5는 대응하는 크로마 샘플의 함수로서 최소 및 최대 루마 값 사이의 직선의 예를 보여준다.
도 6은 현재 크로마 블록 및 그 이웃 샘플의 예를 보여준다.
도 7은 왼쪽 이웃 샘플(LM-L)만을 사용하는 선형 모델에 의해 예측된 크로마 블록의 상이한 부분의 예를 보여주고, 이웃 샘플만을 사용하는 선형 모델(LM-A)을 보여준다.
도 8은 왼쪽 상단 이웃 블록의 예를 보여준다.
도 9는 선형 모델을 유도하기 위해 사용되는 샘플의 예를 보여준다.
도 10은 현재 블록에 대한 왼쪽 및 왼쪽 아래 열과 위쪽 및 오른쪽 위쪽 행의 예를 보여준다.
도 11은 현재 블록과 그 레퍼런스 샘플의 예를 보여준다.
도 12는 왼쪽 및 위쪽 이웃 레퍼런스 샘플이 모두 이용 가능한 경우 두 개의 이웃 샘플의 예를 보여준다.
도 13은 위쪽 이웃 레퍼런스 샘플 만 이용 가능할 때 두 개의 이웃 샘플의 예를 보여준다.
도 14는 왼쪽 이웃 레퍼런스 샘플 만이 이용 가능한 경우 두 개의 이웃 샘플의 예를 보여준다.
도 15는 왼쪽 및 위쪽 이웃 레퍼런스 샘플이 모두 이용 가능할 때 네 개의 이웃 샘플의 예를 보여준다.
도 16은 LM 유도에 사용되는 룩업 테이블의 예를 보여준다.
도 17은 6네 개의 엔트리를 갖는 LM 파라미터 유도 프로세스의 예를 보여준다.
도 18은 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 19a 및 19b는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 20a 및 20b는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 다른 예시적인 방법의 흐름도를 보여준다.
도 21은 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 다른 예시적인 방법의 흐름도를 보여준다.
도 22는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 23a 및 23b는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 24a-24e는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 25a 및 25b는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 26a 및 26b는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 27a 및 27b는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 28a 내지 28c는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 29a 내지 29c는 개시된 기술의 일부 구현에 기초하여 비디오 처리를 위한 예시적인 방법의 흐름도를 보여준다.
도 30a 및 30b는 본 문서에 설명된 비주얼 미디어 디코딩 또는 비주얼 미디어 인코딩 기술을 구현하기 위한 하드웨어 플랫폼의 예의 블록도이다.
도 31a 및 31b는 네 개의 엔트리를 갖는 LM 파라미터 유도 프로세스의 예를 보여준다.
도 31a는 위쪽과 왼쪽의 이웃 샘플이 모두 사용 가능한 경우의 예를 보여준다.
31b는 위쪽 이웃 샘플 만 사용 가능하고 오른쪽 위는 사용 불가능한 경우의 예를 보여준다.
도 32는 LIC 파라미터를 유도하기 위해 이웃 샘플의 예를 보여준다.
고해상도 비디오에 대한 수요가 증가함에 따라 비디오 코딩 방법과 기술은 현대 기술에서 어디에나 있다. 비디오 코덱은 일반적으로 디지털 비디오를 압축 또는 압축 해제하는 전자 회로 또는 소프트웨어를 포함하며 더 높은 코딩 효율성을 제공하기 위해 지속적으로 개선되고 있다. 비디오 코덱은 압축되지 않은 비디오를 압축된 형식으로 또는 그 반대로 전환한다. 비디오 품질, 비디오를 나타내는 데 사용되는 데이터 양(비트 전송률에 따라 결정), 인코딩 및 디코딩 알고리즘의 복잡성, 데이터 손실 및 오차에 대한 민감도, 편집 용이성, 임의 액세스 및 종단 간 지연(대기 시간) 사이에 복잡한 관계가 있다. 압축 형식은 일반적으로 확정될 예정이거나, 또는 현재 및/또는 미래의 비디오 코딩 표준인 고효율 비디오 코딩(High Efficiency Video Coding)(HEVC) 표준(H.265 또는 MPEG-H Part 2라고도 함), 다용도 비디오 코딩(Versatile Video Coding)(VVC) 표준과 같은 표준 비디오 압축 사양을 준수한다.
개시된 기술의 실시 예는 런타임 성능을 개선하기 위해 기존 비디오 코딩 표준(예를 들어, HEVC, H.265) 및 미래 표준에 적용될 수 있다. 섹션 표제는 설명의 가독성을 향상시키기 위해 본 문서에서 사용되며, 논의 또는 실시 예(및/또는 구현)를 각각의 섹션으로만 제한하지 않는다.
1 크로스 컴포넌트 예측의 실시 예
크로스 컴포넌트 예측(Cross-component prediction)은 복잡성과 압축 효율성 향상 사이에 균형이 잘 잡힌 크로마-루마 예측 접근 방식의 한 형태이다.
1.1 CCLM(크로스 컴포넌트 선형 모델)의 예
일부 실시 예에서, 크로스 컴포넌트 중복성을 감소시키기 위해, CCLM(cross-component linear model) 예측 모드(LM이라고도 함)는 다음과 같이 선형 모델을 사용하여 동일한 CU의 재구성된 루마 샘플에 기초하여 크로마 샘플을 예측하는 JEM에서 사용된다:
(1)
여기서 는 CU에서 예측된 크로마 샘플을 나타내고 는 컬러 형식 4: 2: 0 또는 4: 2: 2에 대해 동일한 CU의 다운 샘플링 된 재구성된 루마 샘플을 나타내고, 는 컬러 형식 4: 4: 4에 대해 동일한 CU의 재구성된 루마 샘플을 나타낸다. CCLM 파라미터 α 및 β는 다음과 같이 현재 블록 주위에 이웃하는 재구성된 루마 및 크로마 샘플 사이의 회귀 오차(regression error)를 최소화하여 유도된다:
(2)
및
(3)
이다.
여기서 L(n)은 다운 샘플링 된(컬러 형식 4: 2: 0 또는 4: 2: 2) 또는 원본(컬러 형식 4: 4: 4) 상단 및 왼쪽 이웃 재구성된 루마 샘플, C(n )는 상단 및 왼쪽 이웃 재구성된 크로마 샘플을 나타내며, N 값은 현재 크로마 코딩 블록의 너비 및 높이 최소값의 두 배와 같다. 일부 실시 예에서, 그리고 정사각형 모양의 코딩 블록에 대해, 상기 두 식이 직접 적용된다. 다른 실시 예에서, 그리고 정사각형이 아닌 코딩 블록의 경우, 더 긴 경계의 이웃 샘플은 더 짧은 경계와 동일한 수의 샘플을 갖도록 먼저 서브 샘플링 된다. 도 1은 CCLM 모드에 포함된 현재 블록의 왼쪽 및 위쪽 재구성된 샘플의 위치와 샘플을 보여준다. 일부 실시 예에서, 이 회귀 오차 최소화 계산(regression error minimization computation)은 인코더 검색 연산(search operation)뿐만 아니라 디코딩 프로세스의 일부로서 수행되므로 α 및 β 값을 전달하는 데 신택스가 사용되지 않는다. 일부 실시 예에서, CCLM 예측 모드는 또한 두 개의 크로마 컴포넌트 사이의 예측을 포함하며, 예를 들어 Cr(적색 차이) 컴포넌트는 Cb(청색 차이) 컴포넌트로부터 예측된다. 재구성된 샘플 신호를 사용하는 대신 CCLM Cb-to-Cr 예측이 잔여 도메인(residual domain)에 적용된다. 이것은 최종 Cr 예측을 형성하기 위해 원래 Cr 내부 예측에 가중 재구성된 Cb 잔여(residual)를 추가하여 구현된다:
(4)
여기서, 는 (i, j) 위치에 재구성된 Cb 잔여 샘플을 나타낸다. 일부 실시 예에서, 스케일링 인자 α는 CCLM 루마-크로마 예측에서와 유사한 방식으로 유도될 수 있다. 유일한 차이점은 오차 함수(error function)의 기본 α 값에 상대적인 회귀 비용(regression cost)을 추가하여 유도된 스케일링 계수가 다음과 같이 기본값 인 -0.5로 편향된다는 것이다:
(5)
여기서, Cb(n)는 이웃 재구성된 Cb 샘플을 나타내고, Cr(n)은 이웃 재구성된 Cr 샘플을 나타내며, λ는 Σ(Cb(n)·Cb(n)) ≫9와 같다. 일부 실시 예에서, CCLM 루마-크로마 예측 모드는 하나의 추가적인 크로마 내부 예측 모드로서 추가된다. 인코더 측에서는 크로마 내부 예측 모드를 선택하기 위해 크로마 컴포넌트에 대한 RD 비용 확인이 하나 더 추가된다. CU의 크로마 컴포넌트에 CCLM 루마-크로마 예측 모드 이외의 내부 예측 모드를 사용하는 경우, Cr 컴포넌트 예측에 CCLM Cb-Cr 예측이 사용된다.
1.2 다중 모델 CCLM의 예
JEM에는 단일 모델 CCLM 모드와 다중 모델 CCLM 모드(MMLM)의 두 가지 CCLM 모드가 있다. 이름에서 알 수 있듯이, 단일 모델 CCLM 모드는 전체 CU의 루마 샘플에서 크로마 샘플을 예측하기 위해 하나의 선형 모델을 사용하는 반면 MMLM에서는 두 가지 모델이 있을 수 있다.
MMLM에서, 현재 블록의 이웃 루마 샘플과 이웃 크로마 샘플은 두 그룹으로 분류되며, 각 그룹은 선형 모델을 유도하기 위한 학습 세트로 사용된다(즉, 특정 α 및 β는 특정 그룹에 대해 유도된다). 또한, 현재 루마 블록의 샘플도 이웃 루마 샘플의 분류에 대해 동일한 규칙에 기초하여 분류된다.
도 2는 이웃 샘플을 두 그룹으로 분류한 예를 보여준다. 임계 값은 이웃 재구성된 루마 샘플의 평균값으로 계산된다. Rec'L [x, y] <= 임계 값을 갖는 이웃 샘플은 그룹 1로 분류되고; Rec'L [x, y]> Threshold를 갖는 이웃 샘플은 그룹 2로 분류된다.
(6)
1.3 CCLM에서 다운 샘플링 필터의 예
일부 실시 예에서, 4 : 2 : 0 크로마 포맷에 대해 크로스 컴포넌트 예측을 수행하기 위해, 네 개의 루마 샘플은 한 개의 크로마 샘플에 대응하고, 재구성된 루마 블록은 크로마 신호의 크기와 일치하도록 다운 샘플링 되어야 한다. CCLM 모드에서 사용되는 기본 다운 샘플링 필터는 다음과 같다:
(7)
여기서, 다운 샘플링은 루마 샘플의 위치에 대한 크로마 샘플의 위치에 대해 도 3a에 도시된 바와 같이 "유형 0" 위상 관계, 예를 들어 수평으로 병치된 샘플링 및 수직으로의 삽입 샘플링을 가정한다.
식(6)에서 정의된 예시적인 6 탭 다운 샘플링 필터는 단일 모델 CCLM 모드와 다중 모델 CCLM 모드 모두에 대한 기본 필터로 사용된다.
일부 실시 예에서, 그리고 MMLM 모드에 대해, 인코더는 대안적으로 CU에서 예측을 위해 적용될 네 개의 추가 루마 다운 샘플링 필터 중 하나를 선택하고 이들 중 어느 것이 사용되는지를 나타내는 필터 인덱스를 전송할 수 있다. 도 3b에 도시된 바와 같이 MMLM 모드를 위한 네 개의 선택 가능한 루마 다운 샘플링 필터는 다음과 같다:
*(8)
(9)
(10)
(11)
1.4 다중 방향(Multi-directional) LM(MDLM)
이 기존 구현은 다중 방향(Multi-directional LM)(MDLM)을 제안한다. MDLM에서는 두 가지 추가 CCLM 모드가 제안된다: LM-A, 선형 모델 파라미터는 도 4a에 도시된 바와 같이 위쪽 이웃(또는 위쪽 이웃) 샘플만에 기초하여 유도되며, LM-L, 여기서 선형 모델 파라미터는 도 4b에 도시된 바와 같이 왼쪽 이웃 샘플만에 기초하여 유도된다.
1.5 크로스 컴포넌트 선형 모델 단순화(Cross-component linear model simplification)
이 기존 구현은 선형 모델 파라미터 α 및 β의 LMS 알고리즘을 소위 두 점 방법이라고 하는 직선 방정식으로 대체할 것을 제안한다. 두 개의 포인트(루마와 크로마의 커플)(A, B)는 도 5에 묘사된 바와 같이 이웃 루마 샘플 세트 내의 최소 및 최대 값이다. 여기서, 선형 모델 파라미터 α와 β는 다음 식에 따라 구해진다:
.
일부 실시 예에서, α의 유도에 필요한 나눗셈 연산은 피하고 아래와 같이 곱셈 및 시프트로 대체된다:
a = 0;
iShift = 16;
int shift =(uiInternalBitDepth > 8) uiInternalBitDepth - 9: 0;
int add = shift ? 1 <<(shift - 1): 0;
int diff =(MaxLuma- MinLuma+add) >> shift;
if(diff > 0)
{
int div =((MaxChroma- MinChroma) * g_aiLMDivTableLow[diff - 1]+32768) >> 16;
a =(((MaxChroma- MinChroma) * g_aiLMDivTableHigh[diff - 1]+div+add) >> shift);
}
b = MinLuma[1] -((a * MinLuma[0]) >> iShift);
여기서 S는 iShift와 같게, α는 a와 같고, β는 b와 같게 설정된다. 또한, g_aiLMDivTableLow 및 g_aiLMDivTableHigh는 각각 51두 개의 엔트리가 있는 두 개의 테이블이고, 각 엔트리는 16 비트 정수를 저장한다.
현재 VTM 구현의 경우, 크로마 예측자(chroma predictor)를 유도하기 위해, 곱셈이 다음과 같이 정수 연산으로 대체된다.
이 구현은 또한 시프트 S가 항상 동일한 값을 갖기 때문에 현재 VTM 구현보다 간단하다.
1.6 VVC에서 CCLM의 예
JEM에서와 같이 CCLM은 VTM-2.0에서 채택되지만, JEM의 MM-CCLM은 VTM-2.0에서 채택되지 않는다. MDLM 및 단순화된 CCLM이 VTM-3.0에 채택되었다.
1.7 JEM에서 로컬 조명 보상의 예
로컬 조명 보상(Local Illumination Compensation)(LIC)은 스케일링 계수 a와 오프셋 b를 사용하여 조명 변경에 대한 선형 모델에 기초한다. 그리고 각 인터 모드(inter-mode) 코딩 된 코딩 유닛(coding unit)(CU)에 대해 적응적으로 활성화 또는 비활성화된다.
LIC가 CU에 대해 적용하면, 최소 제곱 오차 방법(least square error method)은 현재 CU의 이웃 샘플(neighbouring sample)과 대응하는 레퍼런스 샘플(reference sample)을 사용하여 파라미터 a와 b를 유도하는 데 사용된다. 보다 구체적으로, 도 32에 도시된 바와 같이, CU의 서브 샘플링 된(2: 1 서브 샘플링) 이웃 샘플과 레퍼런스 픽쳐(reference picture) 내의 대응 픽셀들(현재 CU 또는 서브 CU의 모션 정보(motion information)에 의해 식별됨)이 사용된다. IC 파라미터는 각 예측 방향에 대해 개별적으로 유도되고 적용된다.
CU가 2Nx2N 병합 모드(merge mode)로 코딩 되면, LIC 플래그는 병합 모드의 모션 정보 복사와 유사한 방식으로 이웃 블록에서 복사되며; 그렇지 않으면, LIC 플래그가 CU에 대해 신호를 보내 LIC 적용 여부를 나타낸다.
LIC가 픽쳐에 대해 활성화되면, LIC가 CU에 적용되는지 여부를 결정하기 위해 추가 CU 레벨 RD 확인이 필요하다. CU에 대해 LIC가 활성화된 경우, SAD 및 SATD 대신, 정수 화소 모션 검색과 분수 화소 모션 검색에 대해 각각, 평균 제거 절대 차이 합(mean-removed sum of absolute diffefference) (MR-SAD) 및 절대 아다 마르 변형 차이(absolute Hadamard-transformed difference)의 평균 제거 합(mean-removed sum) (MR-SATD)이 사용된다.
인코딩 복잡성을 줄이기 위해 다음 인코딩 체계가 JEM에 적용된다. LIC는 현재 픽쳐와 레퍼런스 픽쳐 사이에 분명한 조명 변화가 없는 경우 전체 픽쳐에 대해 비활성화된다. 이러한 상황을 식별하기 위해 현재 영상의 히스토그램과 현재 영상의 모든 레퍼런스 픽쳐가 인코더에서 계산된다. 현재 픽쳐와 현재 픽쳐의 모든 레퍼런스 픽쳐 사이의 히스토그램 차이가 주어진 임계 값보다 작은 경우, LIC는 현재 픽쳐에 대해 비활성화되며; 그렇지 않으면, 현재 그림에 대해 LIC가 활성화된다.
2 기존 구현의 단점 예
현재 구현에서는 JEM에서 LM 모드의 LMS 접근 방식을 대체하는 두 점 방식을 도입했다. 새로운 방법은 CCLM에서 더하기 및 곱하기의 수를 줄이지 만 다음과 같은 문제가 있다.
1) 단일 명령 다중 데이터(Single Instruction Multiple Data)(SIMD) 소프트웨어 설계에 적합하지 않은 최소 및 최대 루마 값을 찾기 위해 비교가 도입되었다.
2) 총 102네 개의 엔트리가 16 비트 숫자를 저장하는 두 개의 룩업 테이블(lookup-table)이 도입되었으며, 2K ROM 메모리 요구 사항은 하드웨어 설계에서 바람직하지 않다.
3 비디오 코딩에서 크로스 컴포넌트 예측을 위한 하나의 예시적인 방법
현재 개시된 기술의 실시 예는 기존 구현의 단점을 극복하고, 따라서 더 높은 코딩 효율성과 더 낮은 계산 복잡성으로 비디오 코딩을 제공한다. 개시된 기술에 기초하여 크로스 컴포넌트 예측을 위한 단순화된 선형 모델 유도는 기존 및 미래의 비디오 코딩 표준 모두를 향상시킬 수 있으며, 다양한 구현에 대해 설명된 다음의 예에서 설명된다. 아래에 제공된 개시된 기술의 예는 일반적인 개념을 설명하며 제한하는 것으로 해석되지 않는다. 예에서, 명시적으로 반대로 표시되지 않는 한, 이러하나의 예에서 설명된 다양한 특징이 결합될 수 있다.
다음 예 및 방법에서, 용어 "LM 방법"은 JEM 또는 VTM의 LM 모드 및 JEM의 MMLM 모드, 왼쪽 이웃 샘플 만 사용하여 선형 모델을 유도하는 왼쪽 LM 모드를 포함하지만 이에 제한되지 않는다. 위쪽 이웃 샘플 만 사용하여 선형 모델을 유도하거나 루마 재구성된 샘플을 사용하여 크로마 예측 블록을 유도하는 다른 종류의 방법을 유도한다. LM-L 또는 LM-A가 아닌 모든 LM 모드를 일반 LM 모드라고 한다.
다음 예 및 메서드에서, Shift(x, s)는 Shift(x, s) =(x+off) >> s로 정의되고 SignShift(x, s)는 다음과 같이 정의된다.
여기서, off는 0 또는 2s-1과 같은 정수이다.
현재 크로마 블록의 높이와 너비는 각각 H와 W로 표시된다.
도 6은 현재 크로마 블록의 이웃 샘플의 예를 보여준다. 현재 크로마 블록의 왼쪽 상단 샘플 좌표를 (x, y)로 표시한다. 그런 다음(도 6에 도시된 바와 같이) 이웃 크로마 샘플은 다음과 같이 표시된다.
A: 왼쪽 상단 샘플: [x-1, y],
B: 왼쪽 상단 중간 샘플: [x-1, y+H/2-1],
C: 왼쪽 하단 중간 샘플: [x-1, y+H/2],
D: 왼쪽 하단 샘플: [x-1, y+H-1],
E: 왼쪽 확장 하단 상단 샘플: [x-1, y+H],
F: 왼쪽 확장 하단 상단 중간 샘플: [x-1, y+H+H/2-1],
G: 왼쪽 확장 하단 하단 중간 샘플: [x-1, y+H+H/2],
I: 왼쪽 확장 하단 하단 샘플: [x-1, y+H+H-1],
J: 위쪽 왼쪽 샘플: [x, y-1],
K: 위쪽 왼쪽 중간 샘플: [x+W/2-1, y-1],
*L: 위쪽 오른쪽 중간 샘플: [x+W/2, y-1],
M: 위쪽 오른쪽 샘플: [x+W-1, y-1],
N: 위에서 왼쪽 위쪽 샘플 확장: [x+W, y-1],
O: 위쪽 왼쪽 중간 샘플 위쪽 확장: [x+W+W/2-1, y-1],
P: 위쪽 오른쪽 중간 샘플 위쪽 확장: [x+W+W/2, y-1] 및
Q: 위쪽 오른쪽 위쪽 확장 샘플: [x+W+W-1, y-1].
예 1. LM 방법의 파라미터 α 및 β는 두 개 이상의 특정 위치에 있는 크로마 샘플에서 유도된다.
a. 유도는 또한 선택한 크로마 샘플의 대응하는 다운 샘플링 된 루마 샘플에 의존한다. 대안적으로, 유도는 4: 4: 4 컬러 형식인 경우와 같이 선택한 크로마 샘플의 대응하는 루마 샘플에 의존한다.
b. 예를 들어, CCLM의 파라미터 α 및 β는 다음과 같은 2S(예를 들어, S = 2 또는 3) 위치의 크로마 샘플에서 유도된다.
i. 위치 {A, D, J, M};
ii. 위치 {A, B, C, D, J, K, L, M};
iii. 위치 {A, I, J, Q};
iv. 위치 {A, B, D, I, J, K, M, Q};
v. 위치 {A, B, D, F, J, K, M, O};
vi. 위치 {A, B, F, I, J, K, O, Q};
vii. 위치 {A, C, E, I, J, L, N, Q};
viii. 위치 {A, C, G, I, J, L, P, Q};
ix. 위치 {A, C, E, G, J, L, N, P};
x. 위치 {A, B, C, D};
xi. 위치 {A, B, D, I};
xii. 위치 {A, B, D, F};
xiii. 위치 {A, C, E, I};
xiv. 위치 {A, C, G, I};
xv. 위치 {A, C, E, G};
xvi. 위치 {J, K, L, M};
xvii. 위치 {J, K, M, Q};
xviii. 위치 {J, K, M, O};
xix. 위치 {J, K, O, Q};
xx. 위치 {J, L, N, Q};
xxi. 위치 {J, L, P, Q};
xxii. 위치 {J, L, N, P};
xxiii. 위치 {A, B, C, E, E, F, G, I};
xxiv. 위치 {J, K, L, M, N, O, P, Q};
c. 예를 들어, CCLM의 파라미터 α 및 β는 다음 위치의 크로마 샘플에서 유도된다.
i. {A, B, C, D, E, F, G, I} 및 {J, K, L, M, N, O, P, Q} 사이의 모든 조합, 예를 들어
(a) 위치 A와 J;
(b) 위치 B와 K;
(c) 위치 C 및 L;
(d) 위치 D 및 M;
(e) 위치 E와 N;
(f) 위치 F 및 O;
(g) 위치 G 및 P;
(h) 위치 I 및 Q;
ii. {A, B, C, D, E, F, G, }에서 가져온 두 개의 다른 위치
(a) 위치 A와 B;
(b) 위치 A와 C;
(c) 위치 A와 D;
(d) 위치 A와 E;
(e) 위치 A와 F;
(f) 위치 A와 G;
(g) 위치 A와 I;
(h) 위치 D 및 B;
(i) 위치 D 및 C;
(j) 위치 E와 B;
(k) 위치 E와 C;
(l) 위치 I 및 B;
(m) 위치 I 및 C;
(n) 위치 I 및 D;
(o) 위치 I 및 E;
(p) 위치 I 및 F;
(q) 위치 I 및 G;
iii. {J, K, L, M, N, O, P, Q }에서 가져온 두 개의 다른 위치
(a) 위치 J와 K;
(b) 위치 J와 L;
(c) 위치 J 및 M;
(d) 위치 J와 N;
(e) 위치 J 및 O;
(f) 위치 J와 P;
(g) 위치 J와 Q;
(h) 위치 M 및 K;
(i) 위치 M 및 L;
(j) 위치 N 및 K;
(k) 위치 N 및 L;
(l) 위치 Q 및 K;
(m) 위치 Q와 L;
(n) 위치 Q 및 M;
(o) 위치 Q 및 N;
(p) 위치 Q와 O;
(q) 위치 Q 및 P;
(r) 위치 Q 및 Q;
iv. 하나의 예에서, 선택된 두 위치가 동일한 루마 값을 갖는 경우, 더 많은 위치가 추가로 확인될 수 있다.
d. 예를 들어, 사용 가능한 모든 크로마 샘플을 검색하여 최소 및 최대 루마 값을 찾아 CCLM에서 두 점 방식(two-point method)으로 파라미터 α 및 β를 유도하는 것은 아니다.
i. K 개의 크로마 샘플(및 대응하는 다운 샘플링 된 루마 샘플) 중 하나의 크로마 샘플이 검색 세트에 포함된다. K는 2, 4, 6 또는 8 일 수 있다.
(a) 예를 들어, Rec [x, y]가 위쪽 이웃 샘플 인 경우 x % K == 0 인 경우에만 검색 세트에 포함된다. Rec [x, y]가 왼쪽 이웃 샘플이면 y % K == 0 인 경우에만 검색 세트에 포함된다.
ii. 1.a.i ~ 1.a.xxiv에 정의된 특정 위치에 있는 크로마 샘플 만 검색 세트에 포함된다.
e. LM-L 모드의 경우, 선택한 모든 샘플은 왼쪽 이웃 샘플이어야 한다.
f. 모드 LM-A의 경우, 선택한 모든 샘플이 이웃 샘플보다 높아야 한다.
*g. 선택한 위치는 고정되거나 가변적 일 수 있다.
i. 일례에서, 어떤 위치가 선택되는지는 현재 크로마 블록의 폭과 높이에 의존할 수 있다.
ii. 하나의 예에서, 선택된 위치는 VPS/SPS/PPS/슬라이스 헤더/타일 그룹 헤더/타일/CTU/CU/PU에서와 같이 인코더로부터 디코더로 시그널링 될 수 있다.
h. 선택한 크로마 샘플은 식(2) 및 식(3)에 표시된 최소 평균 제곱 법으로 파라미터 α 및 β를 유도하는 데 사용된다. 식(2)와 식(3)에서 N은 선택된 샘플의 수로 설정된다.
i. 선택된 한 쌍의 크로마 샘플은 두 점 방법으로 파라미터 α 및 β를 유도하는 데 사용된다.
j. 일례에서, 샘플을 선택하는 방법은 이웃 블록의 가용성에 의존할 수 있다.
i. 예를 들어, 왼쪽 및 위쪽 이웃 블록을 모두 사용할 수 있는 경우 위치 A, D, J 및 M이 선택된다. 왼쪽 이웃 블록 만 사용할 수 있는 경우 위치 A와 D가 선택된다. 위쪽 이웃 블록 만 사용할 수 있는 경우 위치 J 및 M이 선택된다.
예 2. CCLM 모드의 파라미터 세트는 먼저 유도된 다음 결합되어 하나의 블록을 코딩하는 데 사용되는 최종 선형 모델 파라미터를 형성할 수 있다. α1과 β1이 그룹 1로 표시된 특정 위치의 크로마 샘플 그룹에서 유도되었다고 가정하면 α2 및 β2는 그룹 2로 표시된 특정 위치의 크로마 샘플 그룹에서 유도된다. ..., αN 및 βN은 다음 그룹에서 유도된다. 그룹 N으로 표시된 특정 위치의 크로마 샘플, 최종 α 및 β는 (α1, β1), ...(αN, βN)에서 유도될 수 있다.
a. 하나의 예에서, α는 α1, ..., αN의 평균으로 계산되고 β는 β1, ..., βN의 평균으로 계산된다.
i. 하나의 예에서, α = SignShift(α1+α2, 1), β = SignShift(β1+β2, 1) 이다.
ii. 하나의 예에서, α = Shift(α1+α2, 1), β = Shift(β1+β2, 1) 이다.
iii. (α1, β1) 및(α2, β2)의 정밀도가 다른 경우, 예를 들어 대응하는 다운 샘플링 된 루마 샘플(LR)에서 크로마 예측(CP)을 얻으려면 다음과 같이 계산된다.
(α1, β1)에서 이고, 그러나
(α2, β2)에서 이고 Sh1이 Sh2와 같지 않으면 파라미터를 결합하기 전에 이동해야 한다. Sh1> Sh2를 가정하고 결합하기 전에 파라미터를 다음과 같이 이동해야 한다:
*
(a) . 그러면 최종 정밀도는 (α2, β2)이다.
(b). . 그러면 최종 정밀도는 (α2, β2)이다.
(c) . 그러면 최종 정밀도는 (α1, β1)이다.
b. 그룹 1 및 그룹 2의 위치에 대한 몇 가지 예:
i. 그룹 1: 위치 A 및 D, 그룹 2: 위치 J 및 M.
ii. 그룹 1: 위치 A 및 I, 그룹 2: 위치 J 및 Q.
iii. 그룹 1: 위치 A 및 D, 그룹 2: 위치 E 및 I. 여기서 두 개의 그룹이 LM-L 모드에 사용된다.
iv. 그룹 1: 위치 J 및 M, 그룹 2: 위치 N 및 Q. 여기서 두 개의 그룹이 LM-A 모드에 사용된다.
v. 그룹 1: 위치 A 및 B, 그룹 2: 위치 C 및 D. 여기서 두 개의 그룹이 LM-L 모드에 사용된다.
vi. 그룹 1: 위치 J 및 K, 그룹 2: 위치 L 및 M. 여기서 두 개의 그룹이 LM-A 모드에 사용된다.
예 3. C0 및 C1로 표시된 두 개의 크로마 샘플 값과 L0 및 L1(L0 <L1)로 표시된 대응하는 루마 샘플 값 이 입력이라고 가정한다. 두 점 방식은 다음과 같은 입력 값으로 α와 β를 유도할 수 있다.
.
루마 샘플 및 크로마 샘플의 비트 심도(bit depth)는 BL 및 BC로 표시된다. 이 구현에 대한 하나 이상의 단순화는 다음을 포함한다:
a. L1이 L0과 같으면 α는 0으로 출력된다. 대안적으로, L1이 L0과 같을 때, 예측 블록을 유도하기 위해 CCLM 모드를 사용하는 대신 특정 내부 예측 모드(예를 들어, DM 모드, DC 또는 평면)가 사용된다.
b. 나누기 연산은 룩업 테이블이 없는 다른 연산으로 대체된다. log2 연산은 최상위 자리의 위치를 확인하여 구현할 수 있다.
i. 또는
ii. 또는
iii. 예 i 또는 예 ii는 L1-L0의 값에 기초하여 선택될 수 있다.
(a) 예를 들어, L1-L0 < T이면 Example i가 사용되고, 그렇지 않으면, Example ii가 사용된다. 예를 들어, T는
(b) 예를 들어, 이면, 예 i가 사용되고,
그렇지 않으면, 예 ii가 사용된다.
(c) 예를 들어, 이면, 예 i가 사용되고,
그렇지 않으면, 예 ii가 사용된다.
c. 나누기 연산은 M [k]로 표시된 하나의 룩업 테이블로 대체된다.
i. V로 표시된 룩업 테이블의 크기는 2P보다 작으며 여기서 P는 5, 6 또는 7과 같은 정수이다.
ii. 룩업 테이블의 각 엔트리는 F 비트 정수(예를 들어, F = 8 또는 16)를 저장한다.
(a) 하나의 예에서, M [k-Z] =((1 << S)+Off)/k, 여기서 S는 정밀도를 정의하는 정수이다(예를 들어, S = F). Off는 오프셋이고, 예를 들어, Off =(k+Z) >> 1이다. Z는 테이블의 시작 값을 정의하고, 예를 들어, Z = 1, Z = 8 또는 Z = 32이다. 테이블을 조회하는 유효한 키 k는 k> = Z를 충족해야 한다.
iii. k = Shift(L1-L0, W)는 룩업 테이블을 조회하기 위한 키로 사용된다.
(a) 하나의 예에서, W는 BL, V 및 Z에 의존한다.
(b) 하나의 예에서, W는 L1-L0의 값에도 의존한다.
iv. k가 룩업 테이블(k-Z <0 또는 k-Z> = V)을 조회하는 데 유효한 키가 아닌 경우 α는 0으로 출력된다.
v. 예,
, 또는
vi. 대응하는 (예를 들어, 4: 2: 0 다운 샘플링 된) 루마 샘플(LR)에서 크로마 예측(CP)을 얻으려면 다음과 같이 계산된다.
, 또는
vii. Sh는 고정된 수이거나, α와 β를 계산하는 데 사용되는 C0, C1, L0, L1의 값에 의존할 수 있다.
(a) Sh는 BL, BC, V, S 및 D에 의존할 수 있다.
(b) D는 Sh에 의존할 수 있다.
viii. V로 표시된 룩업 테이블의 크기는 2P와 같으며, 여기서 P는 5, 6, 7 또는 8과 같은 정수이다. 대안적으로, V는 2P-M으로 설정된다(예를 들어, M은 0과 동일).
ix. α = P/Q(예를 들어, Q = L1-L0, P = C1-C0 또는 다른 방식으로 유도됨)라고 가정하면, 룩업 테이블을 사용하여 α = Shift(P Х M [k-Z], D) 또는 α = SignShift(P Х M [k-Z], D), 여기서 k는 룩업 테이블의 엔트리를 조회하는 키(인덱스)이다.
(a) 하나의 예에서, k는 k = f(Q) 함수를 사용하여 Q에서 유도된다.
(b) 하나의 예에서, k는 함수 k = f(Q, P)와 함께 Q와 P에서 유도된다.
(c) 하나의 예에서, k는 특정 범위 [kMin, kMax]에서 유효한다. 예를 들어, kMin = Z 및 kMax = V+Z이다.
(d) 하나의 예에서, k = Shift(Q, W),
a. W는 BL, V 및 Z에 의존할 수 있다.
b. W는 Q의 값에 의존할 수 있다.
c. 하나의 예에서, k가 Shift(Q, W)로 계산되면, α는 룩업 테이블을 사용하여 α =(Shift(P Х M [k-Z], D)) << W 또는 α =(SignShift(P Х M [k-Z], D)) << W으로 계산된다.
(e) 하나의 예에서, k는 Q의 다른 값을 사용하여 다른 방식으로 유도된다.
a. 예를 들어, Q <= kMax 일 때 k = Q, Q> kMax 일 때 k = Shift(Q, W) 이다. 예를 들어, W는 Shift(Q, W)가 kMax보다 크지 않게 만드는 가장 작은 양의 정수로 선택된다.
b. 예를 들어, k = Min(kMax, Q).
c. 예를 들어, k = Max(kMin, Min(kMax, Q)).
(f) 하나의 예에서, Q < 0이면, -Q가 계산에서 Q를 대체하는 데 사용된다. 그러면 -α가 출력된다.
(g) 하나의 예에서, Q가 0이면, α는 0 또는 1과 같은 기본값으로 설정된다.
(h) 하나의 예에서, Q가 2E E > = 0과 같으면 α = Shift(P, E) 또는 α = SignShift(P, E)이다.
d. LM 파라미터를 유도하기 위한 모든 연산은 K 비트 내에 있어야 하며, K는 8, 10, 12, 16, 24 또는 32 일 수 있다.
i. 중간 변수가 제한된 비트가 나타내는 범위를 초과할 수 있는 경우, 제한된 비트 내에 있도록 자르거나 오른쪽으로 이동해야 한다.
예 4. 하나의 단일 크로마 블록은 다중 선형 모델을 사용할 수 있으며 다중 선형 모델의 선택은 크로마 블록 내의 크로마 샘플의 위치에 의존한다.
a. 하나의 예에서, LM-L 및 LM-A 모드는 단일 크로마 블록에서 결합될 수 있다.
*b. 하나의 예에서, 일부 샘플은 LM-L 모드에 의해 예측되고 다른 샘플은 LM-A 모드에 의해 예측된다.
i. 도 7은 예를 보여준다. 왼쪽 상단 샘플이(0,0) 위치에 있다고 가정한다. X > y(또는 x > = y) 위치(x, y)의 샘플은 LM-A에 의해 예측되고 다른 샘플은 LM-L에 의해 예측된다.
c. (x, y) 위치의 샘플에 대해 LM-L 및 LM-A를 사용한 예측이 각각 P1 (x, y) 및 P2 (x, y)로 표시된다고 가정하고, 그런 다음 최종 예측 P (x, y)는 P1 (x, y) 및 P2 (x, y)의 가중 합계로 계산된다.
i. P(x, y) = w1 * P1(x, y)+w2 * P2(x, y)
(a) w1+w2 = 1.
ii. P(x, y) =(w1 * P1(x, y)+w2 * P2(x, y)+Offset) >> shift, 여기서 오프셋은 0 또는 1 <<(shift-1) 일 수 있고, shift는 1, 2, 3 ...과 같은 정수이다.
(a) w1+w2 = 1 << shift.
iii. P(x, y) =(w1 * P1(x, y)+((1 << shift) -w1) * P2(x, y)+Offset) >> shift, 여기서 오프셋은 0 또는 1 <<(shift-1) 일 수 있고, shift는 1, 2, 3 ...과 같은 정수이다.
iv. w1 및 w2는 위치(x, y)에 의존할 수 있다.
(a) 예를 들어, x < y 이면 w1 > w2(예를 들어, w1 = 3, w2 = 1,
(b) 예를 들어, x > y 이면 w1 < w2(예를 들어, w1 = 1, w2 = 3)이고,
(c) 예를 들어, x == y 이면 w1 = w2(예를 들어, w1 = 2, w2 = 2)이고,
(d) 예를 들어, x < y 일 때 y-x가 증가하면 w1 - w2가 증가하고,
(e) 예를 들어, x > y 일 때 x-y가 증가하면 w2 - w1이 증가한다.
예 5. 이웃 샘플(크로마 샘플 및 다운 샘플링 될 수 있는 대응하는 루마 샘플 포함하는)이 N 그룹으로 분할되는 것이 제안된다. k 번째 그룹(k = 0, 1, ... , N-1)에 대한 최대 루마 값과 최소 루마 값은 MaxLk 및 MinLk로 표시되고 대응하는 크로마 값은 각각 MaxCk 및 MinCk로 표시된다.
a. 하나의 예에서, MaxL은 MaxL = f1(MaxLS0, MaxLS1, ... , MaxLSm); MaxC는 MaxC = f2(MaxCS0, MaxCS1, ... , MaxCSm); MinL은 MinL = f3(MinLS0, MinLS1, ... , MinLSm), MinC는 MinC = f3(MinCS0, MinCS1, ... , MinCSm)로 계산된다. f1, f2, f3 및 f4는 함수이다. 두 점 방식은 다음과 같은 입력 값을 사용하여 α와 β를 유도한다:
i. 하나의 예에서, f1, f2, f3, f4는 모두 평균화 함수를 나타낸다.
ii. S0, S1, ... Sm은 α와 β를 계산하는 데 사용되는 선택된 그룹의 인덱스이다.
(1) 예를 들어, S0 = 0, S1 = 1, ... Sm = N-1과 같은 모든 그룹이 사용된다.
(2) 예를 들어, m = 1, S0 = 0, S1 = N-1과 같은 두 개의 그룹이 사용된다.
(3) 예를 들어, 모든 그룹이 사용되는 것은 아니고, 예를 들어 m <N-1, S0 = 0, S1 = 2, S3 = 4, ...이다.
b. 하나의 예에서, 위쪽 행에 위치한 샘플(또는 다운 샘플링 된 샘플)은 하나의 그룹으로 분류될 수 있고 블록의 왼쪽 열에 위치한 샘플(또는 다운 샘플링 된 샘플)은 다른 그룹으로 분류될 수 있다.
c. 하나의 예에서, 샘플(또는 다운 샘플링 된 샘플)은 위치 또는 좌표에 따라 분류된다.
i. 예를 들어, 샘플은 두 그룹으로 분류될 수 있다.
(1) 위쪽 행에 좌표 (x, y)가 있는 샘플의 경우, x % P = Q이면 그룹 S0으로 분류되며, 여기서 P와 Q는 정수이고, 예를 들어 P = 2, Q = 1, P = 2, Q = 0 또는 P = 4, Q = 0; 그렇지 않으면, 그룹 S1로 분류된다.
(2) 왼쪽 열에 좌표 (x, y)가 있는 샘플의 경우, y % P = Q이면 그룹 S0으로 분류되며, 여기서 P와 Q는 정수이고, 예를 들어, P = 2, Q = 1, P = 2, Q = 0 또는 P = 4, Q = 0; 그렇지 않으면, 그룹 S1로 분류된다.
(3) MaxC 및 MaxL을 찾기 위해 S0과 같은 한 그룹의 샘플 만 사용된다. 예를 들어, MaxL = MaxLS0 및 MaxC = MaxCS0이다.
d. 하나의 예에서, 이웃 샘플(또는 다운 샘플링 된 샘플)의 일부만 N 그룹으로 분할하는 데 사용된다.
e. 그룹 수(예를 들어, N) 및/또는 선택된 그룹 인덱스 및/또는 함수(f1/f2/f3/f4)은 SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU/LCU/CU에서 미리 정의되거나 시그널링 될 수 있다.
f. 하나의 예에서, 각 그룹에 대한 샘플을 선택하는 방법은 이웃 블록의 가용성에 의존할 수 있다.
i. 예를 들어, MaxL0/MaxC0 및 MinL0/MinC0은 위치 A와 D에서 찾을 수 있고; MaxL1/MaxC1 및 MinL1/MinC1은 위치 J 및 M에서 찾은 다음, 왼쪽 및 위쪽 이웃 블록을 모두 사용할 수 있는 경우 MaxL =(MaxL0+MaxL1)/2, MaxC =(MaxC0+MaxC1)/2, MinL =(MinL0+MinL1)/2, MinC =(MinC0+MinC1)/2이다.
ii. 예를 들어 MaxL/MaxC 및 MinL/MinC는 왼쪽 이웃 블록 만 사용할 수 있는 경우 위치 A와 D에서 직접 찾는다.
(1) 대안적으로, 위쪽 이웃 블록을 사용할 수 없는 경우 α와 β는 일부 기본값과 동일하게 설정된다. 예를 들어 α = 0 및 β = 1 <<(bitDepth -1)이고, 여기서 bitDepth는 크로마 샘플의 비트 심도다.
iii. 예를 들어, 위쪽 이웃 블록 만 사용할 수 있는 경우 MaxL/MaxC 및 MinL/MinC는 위치 J 및 M에서 직접 찾는다.
(1) 대안적으로, 왼쪽 이웃 블록을 사용할 수 없는 경우 α 및 β는 일부 기본값과 동일하게 설정된다. 예를 들어 α = 0 및 β = 1 <<(bitDepth -1)이고, 여기서 bitDepth는 크로마 샘플의 비트 심도다.
g. 하나의 예에서, 각 그룹에 대한 샘플을 선택하는 방법은 블록의 너비와 높이에 의존할 수 있다.
h. 하나의 예에서, 각 그룹에 대한 샘플을 선택하는 방법은 샘플 값에 의존할 수 있다.
i, 하나의 예에서 가장 큰 루마 값과 최소 루마 값을 가진 두 개의 샘플이 제1 그룹에 포함되도록 선발된다. 그리고 다른 모든 샘플은 제2 그룹에 있다.
예 6. LM-L 및 LM-A 모드 적용 여부 및 적용 방법은 현재 블록의 폭(W) 및 높이(H)에 의존할 수 있음을 제안한다.
(a) 예를 들어, W> K Х H이면 LM-L을 적용할 수 없다. 예를 들어, K = 2.
(b) 예를 들어 H> K Х W이면 LM-A를 적용할 수 없다. 예를 들어, K = 2.
(c) LM-L 및 LM-A 중 하나를 적용할 수 없는 경우, LM-L 또는 LM-A 사용 여부를 나타내는 플래그를 시그널링 하지 않아야 한다.
예 7. CCLM 모드가 적용되는지 여부를 나타내는 플래그가 신호를 보낸다. 플래그를 코딩 하기 위해 산술 코딩에 사용되는 컨텍스트는 도 8에 도시된 바와 같이 왼쪽 상단 이웃 블록이 CCLM 모드를 적용하는지 여부에 의존할 수 있다.
(a) 하나의 예에서, 왼쪽 상단 이웃 블록이 CCLM 모드를 적용하면 제1 컨텍스트가 사용되고; 왼쪽 상단 이웃 블록이 CCLM 모드를 적용하지 않는 경우 제2 컨텍스트가 사용된다.
(b) 일례로, 왼쪽 상단 이웃 블록을 사용할 수 없는 경우 CCLM 모드를 적용하지 않는 것으로 간주한다.
(c) 일례로, 왼쪽 상단 이웃 블록을 사용할 수 없는 경우 CCLM 모드를 적용한 것으로 간주한다.
(d) 하나의 예에서, 왼쪽 상단 이웃 블록이 내부 코딩 되지 않은 경우 CCLM 모드를 적용하지 않는 것으로 간주된다.
(e) 일례로, 왼쪽 상단 이웃 블록이 내부 코딩 되지 않은 경우 CCLM 모드를 적용한 것으로 간주한다.
예 8. DM 및 LM 모드의 표시 또는 코드 워드는 시퀀스에서 시퀀스/픽처/픽처/타일에서 타일/블록에서 블록으로 서로 다른 순서로 코딩 될 수 있다.
(a) LM 및 DM 표시의 코딩 순서(예를 들어, 먼저 LM 모드인지 여부를 코딩 하고, 그렇지 않은 경우에는 DM 모드인지 코딩 하고, 아니면 먼저 DM 모드인지 여부를 코딩 한 다음 코드가 LM 모드인지 여부)는 하나 또는 여러 이웃 블록의 모드 정보에 의존할 수 있다.
(b) 하나의 예에서, 현재 블록의 왼쪽 상단 블록이 이용 가능하고 LM 모드로 코딩 될 때, LM 모드의 표시가 먼저 코딩 된다.
(c) 대안적으로, 현재 블록의 왼쪽 상단 블록이 이용 가능하고 DM 모드로 코딩 될 때, DM 모드의 표시가 먼저 코딩 된다.
(d) 대안적으로, 현재 블록의 왼쪽 상단 블록이 사용 가능하고 non-LM(예를 들어, DM 모드 또는 LM을 제외한 다른 내부 예측 모드)으로 코딩 된 경우 먼저 DM 모드의 표시가 코딩 된다.
(e) 하나의 예에서, 순서의 표시는 SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU/LCU/CU에서 시그널링 될 수 있다.
예 9. 상기 예에서, 샘플(또는 다운 샘플링 된 샘플)은 도 6에 도시된 바와 같이 이웃 샘플 위쪽 2xW 또는 2xH 왼쪽 이웃 샘플의 범위를 넘어 위치할 수 있다.
(a) LM 모드 또는 LM-L 모드에서는 이웃 샘플 RecC [x-1, y+d]를 사용할 수 있으며, 여기서 d는 [T, S]의 범위에 있다. T는 0보다 작고, S는 2H-1보다 클 수 있고, 예를 들어, T = -4 및 S = 3H 이다. 다른 예에서, T = 0, S = max(2H, W+H)이다. 또 다른 예에서, T = 0 및 S = 4H이다.
(b) LM 모드 또는 LM-A 모드에서는 이웃 샘플 RecC [x+d, y]를 사용할 수 있으며, 여기서 d는 [T, S] 범위에 있다. T는 0보다 작을 수 있고 S는 2W-1보다 클 수 있다. 예를 들어, T = -4 및 S = 3W이다. 다른 예에서는 T = 0, S = max(2W, W+H)이다. 또 다른 예에서, T = 0 및 S = 4W이다.
예 10. 하나의 예에서, 크로마 이웃 샘플 및 그에 대응하는 루마 샘플(다운 샘플링 될 수 있음)은 실시 예 1-7에 개시된 바와 같이 선형 모델 파라미터 α 및 β를 유도하기 전에 다운 샘플링 된다. 현재 크로마 블록의 너비와 높이가 W와 H라고 가정한다.
(a) 하나의 예에서, 다운 샘플링을 수행할지 여부 및 방법은 W 및 H에 의존할 수 있다.
(b) 하나의 예에서, 현재 블록에 남아있는 파라미터를 유도하는 데 사용되는 이웃 샘플의 수와 현재 블록에 대한 위쪽 파라미터를 유도하는 데 사용되는 이웃 샘플의 수는 다운 샘플링 프로세스 후에 동일해야 한다.
(c) 하나의 예에서, W가 H와 같으면 크로마 이웃 샘플 및 그에 대응하는 루마 샘플(다운 샘플링 될 수 있음)은 다운 샘플링 되지 않는다.
(d) 하나의 예에서, W < H 인 경우, 현재 블록에 남겨진 크로마 이웃 샘플 및 그에 대응하는 루마 샘플(다운 샘플링 될 수 있음)이 다운 샘플링 된다.
(i) 하나의 예에서, 각 H/W 크로마 샘플에서 하나의 크로마 샘플이 선발되어 α 및 β를 유도하는 데 사용된다. 다른 크로마 샘플은 폐기된다. 예를 들어, R [0, 0]이 현재 블록의 왼쪽 상단 샘플을 나타낸다고 가정하면, R, [-1, K * H/W]는, K는 0에서 W-1까지, 선발되어 α 및 β를 유도하는 데 사용된다.
(e) 하나의 예에서, W > H 인 경우, 현재 블록 위쪽 크로마 이웃 샘플 및 그에 대응하는 루마 샘플(다운 샘플링 될 수 있음)이 다운 샘플링 된다.
(ii) 하나의 예에서, 각 W/H 크로마 샘플에서 하나의 크로마 샘플이 선발되어 α 및 β를 유도하는 데 사용된다. 다른 크로마 샘플은 폐기된다. 예를 들어, R [0, 0]이 현재 블록의 왼쪽 상단 샘플을 나타낸다고 가정하면, R [K * W/H, -1]는, K는 0에서 H-1까지, 선발되어 α 및 β를 유도하는 데 사용된다.
(ii) 도 9는 도 6에서 위치 D 및 위치 M을 사용하여 α 및 β를 유도할 때 선발되는 샘플 및 W > H 일 때 수행되는 다운 샘플링의 예를 보여준다.
예 11. 이웃하는 다운 샘플링 된/원래 재구성된 샘플 및/또는 다운 샘플링 된/원래 재구성된 샘플은 선형 모델 예측 프로세스 또는 크로스-컬러 컴포넌트 예측 프로세스(cross-color component prediction process)에 사용되기 전에 추가로 정제될 수 있다.
(a) "정제될 것"은 필터링 처리를 의미할 수 있다.
(b) "정제될 것"은 임의의 비선형 처리를 지칭할 수 있다.
(c) α 및 β를 유도하기 위해 C1, C0, L1 및 L0을 계산하기 위해 여러 이웃 샘플(크로마 샘플 및 그에 대응하는 루마 샘플 포함)을 선발하는 것이 제안되며, 예를 들어, α =(C1-C0)/(L1-L0) 및 β = C0-αL0 이다.
(d) 하나의 예에서, Lx1, Lx2, ... , LxS로 표시된 S 이웃 루마 샘플(다운 샘플링 될 수 있음)과 Cx1, Cx2, ... , CxS로 표시된 대응하는 크로마 샘플이 C0 및 L0 및 T를 유도하는 데 사용되고, 및 Ly1, Ly2, ... , LyT로 표시된 이웃 루마 샘플(다운 샘플링 될 수 있음)과 Cy1, Cy2, ... , CyT로 표시된 대응하는 크로마 샘플은 다음과 같이 C1 및 L1을 유도하는 데 사용된다:
(i) C0 = f0(Cx1, Cx2, ... , CxS), L0 = f1(Lx1, Lx2, ... , LxS), C1 = f2(Cy1, Cy2, ... , CyT), L1 = f4(Ly1, Ly2, ... , LyT). f0, f1, f2 및 f3은 모든 함수이다.
(ii) 하나의 예에서, f0은 f1과 동일하다.
(iii) 하나의 예에서, f2는 f3과 동일하다.
(iv) 하나의 예에서, f0 f1 f2 f3은 동일하다.
1. 예를 들어, 그것들은 모두 평균화 함수이다.
(v) 하나의 예에서, S는 T와 같다.
1. 하나의 예에서, {x1, x2, ... , xS} 집합은 {y1, y2, ..., yT} 집합과 동일하다.
(vi) 하나의 예에서, Lx1, Lx2, ... , LxS는 루마 샘플 그룹의 가장 작은 S 루마 샘플로 선택된다.
1. 예를 들어, 루마 샘플 그룹은 CCLM 선형 파라미터를 유도하기 위해 VTM-3.0에서 사용되는 모든 이웃 샘플을 포함한다.
2. 예를 들어, 루마 샘플 그룹은 CCLM 선형 파라미터를 유도하기 위해 VTM-3.0에서 사용되는 부분 이웃 샘플을 포함한다.
a. 예를 들어, 루마 샘플 그룹은 도 2-5에 도시된 바와 같이 sp 개의 샘플을 포함한다.
(vii) 하나의 예에서 Ly1, Ly2, ..., LyS는 루마 샘플 그룹 중 가장 큰 S 루마 샘플로 선택된다.
1. 예를 들어, 루마 샘플 그룹은 CCLM 선형 파라미터를 유도하기 위해 VTM-3.0에서 사용되는 모든 이웃 샘플을 포함한다.
2. 예를 들어, 루마 샘플 그룹은 CCLM 선형 파라미터를 유도하기 위해 VTM-3.0에서 사용되는 부분 이웃 샘플을 포함한다.
a. 예를 들어, 루마 샘플 그룹은 도 2-5에 도시된 바와 같이 네 개의 샘플을 포함한다.
예 12. 주어진 이웃 또는 다운 샘플링 된 이웃 샘플 세트에서 가장 큰 이웃 또는 다운 샘플링 된 이웃 샘플에 기초하여 다른 이웃 또는 다운 샘플링 된 이웃 샘플을 선택하는 것이 제안된다.
(a) 하나의 예에서, 가장 큰 이웃 또는 다운 샘플링 된 이웃 샘플이 위치(x0, y0)에 위치함을 나타낸다. 그런 다음(x0-d1, y0), (x0, y0-d2), (x0+d3, y0), (x0, y0+d4) 영역의 샘플을 사용하여 다른 샘플을 선택할 수 있다. 정수 {d1, d2, d3, d4}는 위치(x0, y0)에 의존할 수 있다. 예를 들어, (x0, y0)이 현재 블록에 남아 있으면 d1 = d3 = 1이고 d2 = d4 = 0이다. (x0, y0)이 현재 블록보다 높으면 d1 = d3 = 0 및 d2 = d4 = 1이다.
(b) 하나의 예에서, 가장 작은 이웃 또는 다운 샘플링 된 이웃 샘플이 위치(x1, y1)에 위치함을 나타낸다. 그런 다음(x1-d1, y1), (x1, y1-d2), (x1+d3, y1), (x1, y1+d4) 영역의 샘플을 사용하여 다른 샘플을 선택할 수 있다. 정수 {d1, d2, d3, d4}는 위치(x1, y1)에 의존할 수 있다. 예를 들어, (x1, y1)이 현재 블록에 남아 있으면 d1 = d3 = 1이고 d2 = d4 = 0이다. (x1, y1)이 현재 블록보다 위에 있으면 d1 = d3 = 0 및 d2 = d4 = 1이다.
(c) 하나의 예에서, 위쪽 샘플은 하나의 컬러 컴포넌트(예를 들어, 루마 컬러 컴포넌트)의 샘플을 나타낸다. CCLM/크로스 컬러 컴포넌트 프로세스에 사용되는 샘플은 제2 컬러 컴포넌트의 대응하는 좌표에 의해 유도될 수 있다.
(d) 유사한 방법을 사용하여 가장 작은 샘플을 유도할 수 있다.
예 13: 상기 예에서 루마와 크로마가 전환될 수 있다. 대안적으로, 루마 컬러 컴포넌트는 메인 컬러 컴포넌트(예를 들어, G)으로 대체될 수 있고, 크로마 컬러 컴포넌트는 종속 컬러 컴포넌트(예를 들어, B 또는 R)으로 대체될 수 있다.
예 14. 크로마 샘플(및/또는 대응하는 루마 샘플)의 위치의 선택은 코딩 된 모드 정보에 의존할 수 있다.
(a) 대안적으로, 왼쪽 열 또는 행 위쪽 또는 오른쪽 위쪽 행 또는 왼쪽 아래 열이 사용 가능한지 여부와 같은 이웃 샘플의 가용성에 의존할 수 있다. 도 10은 블록에 대한 왼쪽 열/행 위쪽/오른쪽 행 위쪽/왼쪽 아래 열의 개념을 도시한다.
(b) 대안적으로, 첫 번째 오른쪽 상단 샘플 및/또는 첫 번째 왼쪽 아래 샘플을 사용할 수 있는지 여부와 같이 특정 위치에 위치한 샘플의 가용성에 의존할 수 있다.
(c) 대안적으로, 또한 블록 치수에 의존할 수 있다.
(i) 대안적으로, 현재 크로마(및/또는 루마) 블록의 폭과 높이 사이의 비율에 의존할 수 있다.
(ii) 대안적으로, 폭 및/또는 높이가 K와 같은지 여부(예를 들어, K = 2)에 의존할 수 있다.
(d) 하나의 예에서, 현재 모드가 일반 LM 모드 인 경우, 크로마 샘플(및/또는 다운 샘플링 되거나 다운 샘플링 되지 않은 루마 샘플)을 선택하기 위해 다음과 같은 방식이 적용될 수 있다.
(i) 왼쪽 열과 위쪽 행을 모두 사용할 수 있는 경우, 왼쪽 열의 두 샘플과 위쪽 행의 두 샘플이 선택될 수 있다. 다음 위치에 있을 수 있다(현재 블록의 왼쪽 상단 좌표가 (x, y)라고 가정):
1. (x-1, y), (x, y-1), (x-1, y+H-1) 및(x+W-1, y-1)
2. (x-1, y), (x, y-1), (x-1, y+H-H/W -1) 및(x+W-1, y-1). 예를 들어 H가 W보다 클 때.
3. (x-1, y), (x, y-1), (x-1, y+H -1) 및(x+W-W/H-1, y-1). 예를 들어 H가 W보다 작을 때.
4. (x-1, y), (x, y-1), (x-1, y+H - max(1, H/W)) 및(x+W- max(1, W/H), y-1).
(ii) 위쪽 행만 가능하면 위쪽 행에서만 샘플을 선택한다.
1. 예를 들어, 위쪽 행의 네 개의 샘플이 선택될 수 있다.
2. 예를 들어, 두 개의 샘플이 선택될 수 있다.
3. 샘플 선택 방법은 너비/높이에 의존할 수 있다. 예를 들어, W> 2 일 때 네 개의 샘플이 선택되고 W = 2 일 때 두 개의 샘플이 선택된다.
4. 선택된 샘플은 다음 위치에 있을 수 있다(현재 블록의 왼쪽 상단 좌표가 (x, y)라고 가정):
a. (x, y-1), (x+W/4, y-1), (x+2 * W/4, y-1), (x+3 * W/4, y - 1)
b. (x, y-1), (x+W/4, y-1), (x+3 * W/4, y - 1), (x+W-1, y -1)
c. (x, y-1), (x+(2W)/4, y-1), (x+2 *(2W)/4, y-1), (x+3 *(2W)/4, y - 1).
예를 들어, 오른쪽 상단 행을 사용할 수 있거나 첫 번째 오른쪽 상단 샘플을 사용할 수 있는 경우이다.
d. (x, y-1), (x+(2W)/4, y-1), (x+3 *(2W)/4, y - 1), (x+(2W) -1, y -1 ).
예를 들어, 오른쪽 상단 행이 사용 가능할 때 또는 첫 번째 오른쪽 상단 샘플이 사용 가능할 때.
(iii) 왼쪽 열만 사용 가능한 경우 왼쪽 열에서만 샘플이 선택될 수 있다.
1. 예를 들어, 왼쪽 열의 네 개의 샘플이 선택될 수 있다.
2. 예를 들어, 왼쪽 열의 두 샘플이 선택될 수 있다.
3. 샘플 선택 방법은 너비/높이에 의존할 수 있다. 예를 들어, H> 2 일 때 네 개의 샘플이 선택되고 H = 2 일 때 두 개의 샘플이 선택된다.
4. 선택된 샘플은 다음 위치에 있을 수 있다.
a. (x-1, y), (x -1, y+H/4), (x -1, y+2 * H/4), (x -1, y+3 * H/4)
b. (x-1, y), (x-1, y+2 * H/4), (x -1, y+3 * H/4), (x -1, y+H-1)
c. (x-1, y), (x -1, y+(2H)/4), (x -1, y+2 *(2H)/4), (x -1, y+3 *(2H)/4).
예를 들어, 왼쪽 아래 열이 사용 가능할 때 또는 첫 번째 왼쪽 아래 샘플이 사용 가능할 때.
d. (x-1, y), (x-1, y+2 *(2H)/4), (x -1, y+3 *(2H)/4), (x -1, y+(2H)- 1).
예를 들어, 왼쪽 아래 열이 사용 가능하거나 첫 번째 왼쪽 아래 샘플이 사용 가능할 때.
(iv) 상기 예에서 네 개의 샘플 중 두 개만 선택될 수 있다.
(e) 하나의 예에서, 현재 모드가 LM-A 모드 인 경우, 예 11 (d) (ii)에 따라 샘플을 선택할 수 있다.
(f) 하나의 예에서, 현재 모드가 LM-L 모드 인 경우, 예 11 (d) (iii)에 따라 샘플을 선택할 수 있다.
(g) 루마 선택된 샘플(예를 들어, 선택된 크로마 위치에 따라)은 두 개의 그룹으로 그룹화될 수 있으며, 하나는 모든 선택된 샘플 중 가장 큰 값과 가장 작은 값을 가지며, 다른 그룹은 나머지 모든 샘플을 갖는다.
(i) 두 개 그룹의 두 개의 최대 값을 두 점 방식에서 최대 값으로 평균화 된다. 두 개 그룹의 두 최소값은 LM 파라미터를 유도하기 위한 두 점 방식에서 최소값으로 평균화 된다.
(ii) 선택된 네 개의 샘플 만 있는 경우, 두 개의 큰 샘플 값이 평균화 되고, 두 개의 작은 샘플 값이 평균화 되며, 평균 값이 LM 파라미터를 유도하기 위한 두 점 방식에 대한 입력으로 사용된다.
예 15. 상기 예에서 루마와 크로마가 전환될 수 있다. 대안적으로, 루마 컬러 컴포넌트는 메인 컬러 컴포넌트(예를 들어, G)으로 대체될 수 있고, 크로마 컬러 컴포넌트는 종속 컬러 컴포넌트(예를 들어, B 또는 R)으로 대체될 수 있다.
예 16. 제1 위치 오프셋 값(F로 표시됨) 및 단계 값(S로 표시됨)에 기초하여 위쪽 이웃 크로마 샘플(및/또는 다운 샘플링 될 수 있는 대응하는 루마 샘플)을 선택하는 것이 제안된다. 사용 가능한 위쪽 이웃 샘플의 사용 가능한 너비가 W라고 가정한다.
a. 하나의 예에서, W는 현재 블록의 너비로 설정될 수 있다.
b. 하나의 예에서, W는 (현재 블록의 L * 너비)로 설정될 수 있으며, 여기서 L은 정수 값이다.
c. 하나의 예에서, 위쪽 블록과 왼쪽 블록이 모두 사용 가능할 때 W는 현재 블록의 너비로 설정될 수 있다.
i. 대안적으로, 왼쪽 블록을 사용할 수 없는 경우, W는 (현재 블록의 L * 너비)로 설정될 수 있다. 여기서 L은 정수 값이다.
ii. 하나의 예에서, L은 우측 상단 블록의 가용성에 의존할 수 있다. 대안적으로, L은 왼쪽 상단 샘플 하나의 가용성에 의존할 수 있다.
d. 하나의 예에서, W는 코딩 된 모드에 의존할 수 있다.
i. 하나의 예에서, W는 현재 블록이 LM 모드로 코딩 된 경우, 현재 블록의 폭으로 설정될 수 있다.
ii. W는 (현재 블록의 L * 너비)로 설정될 수 있으며, 여기서 현재 블록이 LM-A 모드로 코딩 된 경우 L은 정수 값이다.
(a) L은 오른쪽 상단 블록의 가용성에 의존할 수 있다. 대안적으로, L은 왼쪽 상단 샘플 하나의 가용성에 의존할 수 있다.
e. 현재 블록의 왼쪽 상단 좌표가 (x0, y0)이라고 가정하면, 위쪽 이웃 샘플 위치(x0+F+K Х S, y0-1)에서 K = 0, 1, 2, ... , kMax가 선택된다.
f. 하나의 예에서, F = W/P이다. P는 정수이다.
i. 예를 들어 P = 2i이다. 여기서 i는 1 또는 2와 같은 정수이다.
ii. 대안적으로, F = W/P+offset.
g. 하나의 예에서, S = W/Q이다. Q는 정수이다.
i. 예를 들어 Q = 2j이다. 여기서 j는 1 또는 2와 같은 정수이다.
h. 하나의 예에서, F = S/R이다. R은 정수이다.
i. 예를 들어 R = 2m이다. 여기서 m은 1 또는 2와 같은 정수이다.
i. 하나의 예에서, S = F/Z이다. Z는 정수이다.
i. 예를 들어 Z = 2n이다. 여기서 n은 1 또는 2와 같은 정수이다.
j. kMax 및/또는 F 및/또는 S 및/또는 오프셋은 현재 블록의 예측 모드(예를 들어, LM, LM-A 또는 LM-L)에 의존할 수 있다.
k. kMax 및/또는 F 및/또는 S 및/또는 오프셋은 현재 블록의 너비 및/또는 높이에 의존할 수 있다.
l. kMax 및/또는 F 및/또는 S 및/또는 오프셋은 이웃 샘플의 가용성에 의존할 수 있다.
m. kMax 및/또는 F 및/또는 S 및/또는 오프셋은 W에 의존할 수 있다.
n. 예를 들어, kMax = 1, F = W/4, S = W/2, offset = 0이다. 대안적으로, 현재 블록이 LM 코딩 된 경우 설정이 수행되고, 왼쪽 및 위쪽 이웃 샘플을 모두 사용할 수 있고 및 W > = 4이다.
o. 예를 들어, kMax = 3, F = W/8, S = W/4, 오프셋 = 0이다. 대안적으로, 현재 블록이 LM 코딩 된 경우 설정이 수행되고, 위쪽 이웃 샘플 만 사용할 수 있고, 및 W> = 4이다.
p. 예를 들어, kMax = 3, F = W/8, S = W/4, 오프셋 = 0이다. 대안적으로, 현재 블록이 LM-A 코딩 되고 W > = 4이면 설정이 수행된다.
q. 예를 들어, kMax = 1, F = 0, S = 1, 오프셋 = 0이다. 대안적으로, W가 2와 같으면 설정이 수행된다.
예 17. 제1 위치 오프셋 값(F로 표시됨) 및 단계 값(S로 표시됨)에 기초하여 왼쪽 이웃 크로마 샘플(및/또는 다운 샘플링 될 수 있는 대응하는 루마 샘플)을 선택하는 것이 제안된다. 사용 가능한 왼쪽 이웃 샘플의 높이가 H라고 가정한다.
a. 하나의 예에서, H는 현재 블록의 높이로 설정될 수 있다.
b. 하나의 예에서, H는 (현재 블록의 L * 높이)로 설정될 수 있으며, 여기서 L은 정수 값이다.
c. 하나의 예에서, 위쪽 블록과 왼쪽 블록이 모두 사용 가능한 경우 H는 현재 블록의 높이로 설정 될 수 있다.
i. 대안적으로, 위쪽 블록을 사용할 수 없는 경우, H를 (현재 블록의 L * 높이)로 설정할 수 있다. 여기서 L은 정수 값이다.
ii. 하나의 예에서, L은 왼쪽 아래 블록의 가용성에 의존할 수 있다. 대안적으로, L은 왼쪽 아래 샘플 하나의 가용성에 의존할 수 있다.
iii. 대안적으로, 필요한 오른쪽 위쪽 이웃 블록을 사용할 수 있는 경우, H를 (현재 블록의 높이+현재 블록의 너비)로 설정할 수 있다.
(a) 하나의 예에서, 왼쪽 이웃 샘플을 사용할 수 없는 경우 LM-A 모드 및 LM 모드에 대해 위쪽 이웃 샘플 동일한 H가 선발된다.
d. 하나의 예에서, H는 코딩 된 모드에 의존할 수 있다.
i. 하나의 예에서, H는 현재 블록이 LM 모드로 코딩 되면 현재 블록의 높이로 설정될 수 있다.
ii. W는 (현재 블록의 L * 높이)로 설정될 수 있으며, 여기서 현재 블록이 LM-L 모드로 코딩 된 경우 L은 정수 값이다.
(a) L은 왼쪽 아래 블록의 가용성에 의존할 수 있다. 대안적으로, L은 왼쪽 상단 샘플 하나의 가용성에 의존할 수 있다.
(b) 대안적으로, 필요한 왼쪽 아래 이웃 블록을 사용할 수 있는 경우, W를 (현재 블록의 높이+현재 블록의 너비)로 설정할 수 있다.
(c) 하나의 예에서, 위쪽 이웃 샘플을 사용할 수 없는 경우, LM-L 모드 및 LM 모드에 대해 동일한 W 왼쪽 이웃 샘플이 선발된다.
e. 현재 블록의 왼쪽 상단 좌표가 (x0, y0)이라고 가정하면 K = 0, 1, 2, ... kMax 인 위치(x0-1, y0+F+K Х S)에 있는 왼쪽 이웃 샘플이 선택된다.
f. 하나의 예에서, F = H/P. P는 정수이다.
i. 예를 들어, P = 2i이다. 여기서 i는 1 또는 2와 같은 정수이다.
ii. 대안적으로, F = H/P+offset이다.
g. 하나의 예에서, S = H/Q이다. Q는 정수이다.
i. 예를 들어, Q = 2j이다. 여기서 j는 1 또는 2와 같은 정수이다.
h. 하나의 예에서, F = S/R이다. R은 정수이다.
i. 예를 들어, R = 2m이다. 여기서 m은 1 또는 2와 같은 정수이다.
i. 하나의 예에서, S = F/Z이다. Z는 정수이다.
i. 예를 들어, Z = 2n이다. 여기서 n은 1 또는 2와 같은 정수이다.
j. kMax 및/또는 F 및/또는 S 및/또는 오프셋은 현재 블록의 예측 모드(예를 들어, LM, LM-A 또는 LM-L)에 의존할 수 있다.
k. kMax 및/또는 F 및/또는 S 및/또는 오프셋은 현재 블록의 너비 및/또는 높이에 의존할 수 있다.
l. kMax 및/또는 F 및/또는 S 및/또는 오프셋은 H에 의존할 수 있다.
m. kMax 및/또는 F 및/또는 S 및/또는 오프셋은 이웃 샘플의 가용성에 의존할 수 있다.
n. 예를 들어, kMax = 1, F = H/4, S = H/2, offset = 0이다. 또는, 현재 블록이 LM 코딩 된 경우, 설정이 수행되고 왼쪽 및 위쪽 이웃 샘플을 모두 사용할 수 있고, 및 H > = 4이다.
o. 예를 들어, kMax = 3, F = H/8, S = H/4, 오프셋 = 0이다. 대안적으로, 현재 블록이 LM 코딩 된 경우, 설정이 수행되고 위쪽 이웃 샘플 만 사용할 수 있고, 및 H> = 4이다.
p. 예를 들어, kMax = 3, F = H/8, S = H/4, 오프셋 = 0이다. 대안적으로, 현재 블록이 LM-L 코딩 되고 H > = 4이면 설정이 수행된다.
q. 예를 들어, H가 2와 같으면 kMax = 1, F = 0, S = 1, offset = 0이다.
예 18: 선형 모델 파라미터를 유도하기 위해 두 개 또는 네 개의 이웃 크로마 샘플(및/또는 다운 샘플링 될 수 있는 대응하는 루마 샘플)이 선택되는 것이 제안된다.
a. 하나의 예에서, maxY/maxC 및 minY/minC는 두 개 또는 네 개의 이웃 크로마 샘플(및/또는 다운 샘플링 될 수 있는 대응하는 루마 샘플)에서 유도된 다음, 두 점 방식을 사용하여 선형 모델 파라미터를 유도하는 데 사용된다.
b. 하나의 예에서, maxY/maxC 및 minY/minC를 유도하기 위해 두 개의 이웃 크로마 샘플(및/또는 다운 샘플링 될 수 있는 대응하는 루마 샘플)이 선택되면, minY는 더 작은 루마 샘플 값으로 설정되고 minC는 대응하는 크로마 샘플 값이다. maxY는 더 큰 루마 샘플 값으로 설정되고 maxC는 대응하는 크로마 샘플 값이다.
c. 하나의 예에서, maxY/maxC 및 minY/minC를 유도하기 위해 네 개의 이웃 크로마 샘플(및/또는 다운 샘플링 될 수 있는 대응하는 루마 샘플)이 선택되면 루마 샘플 및 대응하는 크로마 샘플은 다음과 같이 분할된다. 두 개의 어레이 G0 및 G1은 각각 두 개의 루마 샘플과 대응하는 루마 샘플을 포함한다.
i. 네 개의 루마 샘플과 대응하는 크로마 샘플이 S0, S1, S2, S3로 표시되어 있다고 가정하면, 순서에 상관없이 두 그룹으로 나눌 수 있다. 예를 들면:
(a) G0 = {S0, S1}, G1 = {S2, S3};
(b) G0 = {S1, S0}, G1 = {S3, S2};
(c) G0 = {S0, S2}, G1 = {S1, S3};
(d) G0 = {S2, S0}, G1 = {S3, S1};
(e) G0 = {S1, S2}, G1 = {S0, S3};
(f) G0 = {S2, S1}, G1 = {S3, S0};
(g) G0 = {S0, S3}, G1 = {S1, S2};
(h) G0 = {S3, S0}, G1 = {S2, S1};
(i) G0 = {S1, S3}, G1 = {S0, S2};
(j) G0 = {S3, S1}, G1 = {S2, S0};
(k) G0 = {S3, S2}, G1 = {S0, S1};
(l) G0 = {S2, S3}, G1 = {S1, S0};
(m) G0과 G1은 서로 교환될 수 있다.
ii. 하나의 예에서, G0 [0]의 루마 샘플 값과 G0 [1]이 비교되고, 만약 G0 [0]의 루마 샘플 값이 G0 [1]의 루마 샘플 값보다 크면, 루마 샘플과 그에 대응하는 크로마 샘플은 G0 [0]은 G0 [1]의 샘플과 교환된다.
(a) 대안적으로, G0 [0]의 루마 샘플 값이 G0 [1]의 루마 샘플 값보다 크거나 같으면, 루마 샘플 및 G0 [0]의 대응하는 크로마 샘플은 G0 [1]의 샘플과 교환된다.
(b) 대안적으로, G0 [0]의 루마 샘플 값이 G0 [1]의 루마 샘플 값보다 작은 경우, 루마 샘플과 G0 [0]의 대응하는 크로마 샘플은 G0 [1]의 루마 샘플과 교환된다.
(c) 대안적으로, G0 [0]의 루마 샘플 값이 G0 [1]의 루마 샘플 값보다 작거나 같으면, 루마 샘플 및 G0 [0]의 대응하는 크로마 샘플은 G0 [1]의 샘플과 교환된다.
iii. 하나의 예에서, G1 [0]의 루마 샘플 값이 G1 [1]의 루마 샘플 값보다 크면 G1 [0]과 G1 [1]의 루마 샘플 값이 비교되고, 루마 샘플 및 G1 [0]의 대응하는 크로마 샘플은 G1 [1]의 샘플과 교환된다.
(a) 대안적으로, G1 [0]의 루마 샘플 값이 G1 [1]의 루마 샘플 값보다 크거나 같으면, 루마 샘플 및 G1 [0]의 대응하는 크로마 샘플은 G1 [1]의 샘플과 교환된다.
(b) 대안적으로, G1 [0]의 루마 샘플 값이 G1 [1]의 루마 샘플 값보다 작은 경우, 루마 샘플 및 G1 [0]의 대응하는 크로마 샘플은 G1 [1]의 샘플과 교환된다.
(c) 대안적으로, G1 [0]의 루마 샘플 값이 G1 [1]의 루마 샘플 값보다 작거나 같으면, 루마 샘플 및 G1 [0]의 대응하는 크로마 샘플은 G1 [1]의 샘플과 교환된다.
iv. 하나의 예에서, G0 [0]과 G1 [1]의 루마 샘플 값이 비교되고, G0 [0]의 루마 샘플 값이 G1 [1]의 루마 샘플 값보다 크면(또는 작거나, 또는 크지 않거나, 또는 작지 않으면), 그러면 G0와 G1이 교환된다.
(a) 하나의 예에서, G0 [0] 및 G1 [0]의 루마 샘플 값이 비교되고, G0 [0]의 루마 샘플 값이 G1 [0]의 루마 샘플 값 다음보다 크면(또는 작거나, 또는 크지 않거나, 또는 더 작지 않으면), 그러면 G0와 G1이 교환된다.
(b) 하나의 예에서, G0 [1] 및 G1 [0]의 루마 샘플 값이 비교되고, G0 [1]의 루마 샘플 값이 값 G1 [0]의 루마 샘플 값보다 크면(또는 작거나, 또는 크지 않거나, 또는 더 작지 않으면), 그러면 G0와 G1이 교환된다.
(c) 하나의 예에서, G0 [1]과 G1 [1]의 루마 샘플 값이 비교되고, G0 [1]의 루마 샘플 값이 G1 [1]의 루마 샘플 값 보다 크면(또는 작거나, 또는 크지 않거나, 또는 더 작지 않으면), 그러면 G0와 G1이 교환된다.
v. 하나의 예에서, G0 [0] 및 G1 [1]의 루마 샘플 값이 비교되고, G0 [0]의 루마 샘플 값이 G1 [1]의 루마 샘플 값 보다 크면(또는 작거나, 또는 크지 않거나, 또는 더 작지 않으면), 그러면 G0 [0]와 G1 [1]이 교환된다.
(a) 하나의 예에서, G0 [0] 및 G1 [0]의 루마 샘플 값이 비교되고, G0 [0]의 루마 샘플 값이 G1 [0]의 루마 샘플 값 보다 크면(또는 작거나, 또는 크지 않거나, 또는 더 작지 않으면), 그러면 G0 [0]와 G1 [0]이 교환된다.
(b) 하나의 예에서, G0 [1] 및 G1 [0]의 루마 샘플 값이 비교되고, G0 [1]의 루마 샘플 값이 G1 [0]의 루마 샘플 값 보다 크면(또는 작거나, 또는 크지 않거나, 또는 더 작지 않으면), 그러면 G0 [1]와 G1 [0]이 교환된다.
(c) 하나의 예에서, G0 [1] 및 G1 [1]의 루마 샘플 값이 비교되고, G0 [1]의 루마 샘플 값이 G1 [1]의 루마 샘플 값 보다 크면(또는 작거나, 또는 크지 않거나, 또는 더 작지 않으면), 그러면 G0 [1]와 G1 [1]이 교환된다.
vi. 하나의 예에서, maxY는 G0 [0] 및 G0 [1]의 루마 샘플 값의 평균으로 계산되고, maxC는 G0 [0] 및 G0 [1]의 크로마 샘플 값의 평균으로 계산된다.
(a) 대안적으로, maxY는 G1 [0] 및 G1 [1]의 루마 샘플 값의 평균으로 계산되고, maxC는 G1 [0] 및 G1 [1]의 크로마 샘플 값의 평균으로 계산된다.
vii. 하나의 예에서, minY는 G0 [0] 및 G0 [1]의 루마 샘플 값의 평균으로 계산되고, minC는 G0 [0] 및 G0 [1]의 크로마 샘플 값의 평균으로 계산된다. 대안적으로, minY는 G1 [0] 및 G1 [1]의 루마 샘플 값의 평균으로 계산되고 minC는 G1 [0] 및 G1 [1]의 크로마 샘플 값의 평균으로 계산된다.
d. 하나의 예에서, 두 개의 이웃 크로마 샘플(및/또는 다운 샘플링 될 수 있는 대응하는 루마 샘플) 만 사용할 수 있는 경우 먼저 네 개의 크로마 샘플(및/또는 대응하는 루마 샘플)이 되도록 패딩 된 다음 네 개의 크로마 샘플(및/또는 대응하는 루마 샘플)은 CCLM 파라미터를 유도하는 데 사용된다.
i. 하나의 예에서, 두 개의 패딩 크로마 샘플(및/또는 대응하는 루마 샘플)이 두 개의 사용 가능한 이웃 크로마 샘플(및/또는 다운 샘플링 될 수 있는 대응하는 루마 샘플)에서 복사된다.
예 19: 상기 모든 예에서, 선택된 크로마 샘플은 도 10에 묘사된 바와 같이 위쪽 행(즉, W 샘플과 함께) 및/또는 왼쪽 열(즉, H 샘플과 함께) 내에 위치해야 하고, 여기서 W와 H는 현재 블록의 너비와 높이이다.
a. 대안적으로, 현재 블록이 일반 LM 모드로 코딩 된 경우 상기 제한이 적용될 수 있다.
b. 대안적으로, 선택된 크로마 샘플은 위쪽 행(즉, W 샘플) 및 H 샘플이 있는 오른쪽 위쪽 행 내에 위치해야 한다.
i. 대안적으로, 현재 블록이 LM-A 모드로 코딩 될 때 상기 제한이 적용될 수 있다.
ii. 대안적으로, 현재 블록이 LM-A 모드로 코딩 된 경우 또는 위쪽 행이 사용 가능하지만 왼쪽 열이 사용 불가능한 일반 LM 모드로 코딩 된 경우 상기 제한이 적용될 수 있다.
c. 대안적으로, 선택한 크로마 샘플은 왼쪽 열(즉, H 샘플) 및 W 샘플이 있는 왼쪽 아래 열에 위치해야 한다.
i. 대안적으로, 현재 블록이 LM-L 모드로 코딩 될 때 상기 제한이 적용될 수 있다.
ii. 대안적으로, 현재 블록이 LM-L 모드로 코딩 된 경우 또는 위쪽 행은 사용할 수 없지만 왼쪽 열은 사용할 수 있는 일반 LM 모드로 코딩 된 경우 상기 제한이 적용될 수 있다.
예 20
하나의 예에서, CCLM 파라미터를 유도하기 위해 대응하는 크로마 샘플이 필요한 위치에 있는 이웃 루마 샘플 만 다운 샘플링 될 필요가 있다.
예 21
이 문서에 설명된 방법을 수행하는 방법은 컬러 형식(예를 들어, 4: 2: 0 또는 4: 4: 4)에 의존할 수 있다.
a. 대안적으로, 이 문서에 설명된 방법을 수행하는 방법은 비트 심도(bit-dpeth)(예를 들어, 8 비트 또는 10 비트)에 의존할 수 있다.
b. 대안적으로, 이 문서에 설명된 방법을 수행하는 방법은 컬러 표현 방법(color representation method)(예를 들어, RGB 또는 YCbCr)에 의존할 수 있다.
c. 대안적으로, 이 문서에 설명된 방법을 수행하는 방법은 컬러 표현 방법(예를 들어, RGB 또는 YCbCr)에 의존할 수 있다.
d. 대안적으로, 이 문서에 설명된 방법을 수행하는 방법은 크로마 다운 샘플링 위치(chroma down-sampling location)에 의존할 수 있다.
예 22
CCLM 파라미터를 유도하는 데 사용되는 루마 및 크로마 컴포넌트의 최대/최소 값을 유도할지 여부는 왼쪽 및 위쪽 이웃의 가용성에 의존할 수 있다. 예를 들어, CCLM 파라미터를 유도하는 데 사용되는 루마 및 크로마 컴포넌트의 최대/최소값은 왼쪽 및 위쪽 이웃 블록을 모두 사용할 수 없는 경우 유도되지 않을 수 있다.
a. CCLM 파라미터를 유도하는 데 사용되는 루마 및 크로마 컴포넌트의 최대/최소 값을 유도할지 여부는 사용 가능한 이웃 샘플의 수에 의존할 수 있다. 예를 들어 numSampL == 0 및 numSampT == 0 인 경우 CCLM 파라미터를 유도하는 데 사용되는 루마 및 크로마 컴포넌트의 최대/최소 값이 유도되지 않을 수 있다. 다른 예에서, CCLM 파라미터를 유도하는 데 사용되는 루마 및 크로마 컴포넌트에 대한 최대/최소 값은 numSampL+numSampT == 0 인 경우 유도되지 않을 수 있다. 두 가지 예에서 numSampL 및 numSampT는 왼쪽 및 위쪽 이웃 블록에서 사용 가능한 이웃 샘플의 수이다.
b. CCLM 파라미터를 유도하는 데 사용되는 루마 및 크로마 컴포넌트의 최대/최소 값을 유도할지 여부는 파라미터를 유도하는 데 사용되는 선발된 샘플 수에 의존할 수 있다. 예를 들어, cntL == 0 및 cntT == 0 인 경우 CCLM 파라미터를 유도하는 데 사용되는 루마 및 크로마 컴포넌트의 최대/최소 값은 유도되지 않을 수 있다. 또 다른 예에서, cntL+cntT == 0 인 경우 CCLM 파라미터를 유도하는 데 사용되는 루마 및 크로마 컴포넌트에 대한 최대/최소 값이 유도되지 않을 수 있다. 두 가지 예에서 cntL 및 cntT는 왼쪽 및 위쪽 이웃 블록의 선발된 샘플 수이다.
예 23
하나의 예에서, CCLM에서 사용되는 파라미터를 유도하기 위해 제안된 방법은 선형 모델에 의존하는 LIC 또는 다른 코딩 툴에서 사용되는 파라미터를 유도하는 데 사용될 수 있다.
a. 위에서 개시된 예는 "크로마 이웃 샘플"을 "현재 블록의 이웃 샘플"로 대체하고 "대응하는 루마 샘플"을 "레퍼런스 블록의 이웃 샘플"로 대체함으로써 LIC에 적용될 수 있다.
b. 하나의 예에서, LIC 파라미터 유도에 사용되는 샘플은 위쪽 행 및/또는 왼쪽 열의 특정 위치 샘플을 제외할 수 있다.
i. 하나의 예에서, LIC 파라미터 유도에 사용된 샘플은 위쪽 행의 제1 샘플을 제외할 수 있다.
*
(a) 왼쪽 상단 샘플의 좌표가 (x0, y0)이라고 가정하면, LIC 파라미터 사용에 대해(x0, y0-1)을 제외하도록 제안된다.
ii. 하나의 예에서, LIC 파라미터 유도에 사용되는 샘플은 왼쪽 열의 제1 샘플을 제외할 수 있다.
(a) 왼쪽 상단 샘플의 좌표가 (x0, y0)이라고 가정하면, LIC 파라미터 사용에 대해(x0-1, y0)을 제외할 것을 제안한다.
iii. 상기 방법을 적용할지 여부 및/또는 특정 위치를 정의하는 방법은 왼쪽 열/위쪽 행의 가용성에 의존할 수 있다.
iv. 상기 방법을 적용할지 여부 및/또는 특정 위치를 정의하는 방법은 블록 치수에 의존할 수 있다.
c. 하나의 예에서, 현재 블록의 N 개의 이웃 샘플(다운 샘플링 될 수 있음) 및 레퍼런스 블록의 N 개의 대응하는 이웃 샘플(대응적으로 다운 샘플링 될 수 있음)이 LIC에 사용되는 파라미터를 유도하기 위해 사용될 수 있다.
i. 예를 들어, N은 4이다.
ii. 하나의 예에서, N 개의 이웃 샘플은 위쪽 행으로부터 N/두 개의 샘플; 및 왼쪽 열에서 N/2 샘플로 정의될 수 있다.
(a) 또는 이웃하는 N 개의 샘플을 위쪽 행 또는 왼쪽 열에서 N 개의 샘플로 정의할 수 있다.
iii. 다른 예에서, N은 최소(L, T)와 같으며, 여기서 T는 현재 블록의 사용 가능한 이웃 샘플(다운 샘플링 될 수 있음)의 총 수이다.
(a) 하나의 예에서, L은 4로 설정된다.
iv. 하나의 예에서, N 샘플의 좌표의 선택은 CCLM 프로세스에서 N 샘플을 선택하기 위한 규칙을 따를 수 있다.
v. 하나의 예에서, N 개의 샘플의 좌표 선택은 LM-A 프로세스에서 N 개의 샘플을 선택하기 위한 규칙을 따를 수 있다.
vi. 하나의 예에서, N 개의 샘플의 좌표 선택은 LM-L 프로세스에서 N 개의 샘플을 선택하기 위한 규칙을 따를 수 있다.
vii. 하나의 예에서, N 개의 샘플을 선택하는 방법은 위쪽 행/왼쪽 열의 가용성에 의존할 수 있다.
d. 하나의 예에서, 현재 블록의 N 개의 이웃 샘플(다운 샘플링 될 수 있음) 및 레퍼런스 블록의 N 개의 대응하는 이웃 샘플(대응하여 다운 샘플링 될 수 있음)은 LIC에서 사용되는 파라미터를 유도하는 데 사용되며, 샘플 위치에 따라 선발된다.
i. 선발 방법은 현재 블록의 너비와 높이에 의존할 수 있다.
ii. 선발 방법은 이웃 블록의 가용성에 의존할 수 있다.
iii. 예를 들어, K1 이웃 샘플은 왼쪽 이웃 샘플에서 선발될 수 있고 K2 이웃 샘플은 위와 왼쪽 이웃 샘플이 모두 사용 가능한 경우 위쪽 이웃 샘플에서 선발되고, 예를 들어, K1 = K2 = 2이다.
iv. 예를 들어, K1 이웃 샘플은 왼쪽 이웃 샘플 만 사용할 수 있는 경우 왼쪽 이웃 샘플에서 선발될 수 있고, 예를 들어, K1 = 4이다.
v. 예를 들어, 위쪽 이웃 샘플 만 사용할 수 있는 경우 위쪽 이웃 샘플에서 K2 이웃 샘플을 선발할 수 있고, 예를 들어, K2 = 4이다.
vi. 예를 들어, 위쪽 샘플은 현재 블록의 차원 및 이웃 블록의 가용성에 의존할 수 있는 제1 위치 오프셋 값(F로 표시) 및 단계 값(S로 표시)으로 선발될 수 있다.
(a) 예를 들어, 실시 예 16에 개시된 방법은 F 및 S를 유도하기 위해 적용될 수 있다.
vii. 예를 들어, 왼쪽 샘플은 현재 블록의 차원과 이웃 블록의 가용성에 의존할 수 있는 제1 위치 오프셋 값(F로 표시) 및 단계 값(S로 표시)으로 선발될 수 있다.
(a) 예를 들어, 실시 예 17에 개시된 방법은 F 및 S를 유도하기 위해 적용될 수 있다.
e. 하나의 예에서, 제안된 CCLM에서 사용되는 파라미터를 유도하는 방법은 현재 블록이 아핀 코딩 된 경우 LIC에서 사용되는 파라미터를 유도하는 데에도 사용될 수 있다.
f. 상기 방법은 선형 모델에 의존하는 다른 코딩 툴에서 사용되는 파라미터를 유도하는 데 사용할 수 있다.
또 다른 예에서, 크로스 컴포넌트 예측 모드가 제안되며, 여기서 크로마 샘플은 예측 모델에 따라 대응하는 재구성된 루마 샘플로 예측된다. 식(12)에서, PredC(x, y)는 다음을 의미한다. 크로마의 예측 샘플. α와 β는 두 가지 모델 파라미터다. Rec'L(x, y)은 다운 샘플링 된 루마 샘플이다.
(12)
식 13에 도시된 바와 같이, 도 11의 블록 A에 대한 루마 다운 샘플링 된 프로세스를 위해 6 탭 필터가 도입된다.
(13)
도 11에 음영 처리된 위쪽 주변 루마 레퍼런스 샘플은 식(14)에 나타낸 바와 같이 3 탭 필터로 다운 샘플링 된다. 왼쪽 주변 루마 레퍼런스 샘플은 식(15)에 따라 다운 샘플링 된다. 왼쪽 또는 위쪽 샘플을 사용할 수 없는 경우 식(16) 및 식(17)에 정의된 2 탭 필터가 사용된다.
특히 주변 루마 레퍼런스 샘플은 크로마 레퍼런스 샘플과 동일한 크기로 다운 샘플링 된다. 크기는 너비와 높이로 표시된다. α와 β를 유도하기 위해 두 개 또는 네 개의 이웃 샘플 만 포함된다. α와 β를 유도할 때 나눗셈 연산을 피하기 위해 룩업 테이블이 적용된다. 유도 방법은 다음과 같다.
3.1 최대 두 개의 샘플을 사용한 예시적인 방법
(1) 폭과 높이의 비율 r은 식 18과 같이 계산된다.
(18)
(2) 위와 왼쪽 블록이 모두 사용 가능한 경우 제1 위쪽 라인의 posA에 위치한 두 개의 샘플과 제1 왼쪽 라인의 posL이 선택된다. 설명을 단순화하기 위해 너비는 긴 변으로 가정한다. posA 및 posL의 유도는 식(19)에 나와 있다(위치 인덱스는 0부터 시작). 도 12는 상이한 폭 및 높이 비율(각각 1, 2, 4 및 8)의 일부 예를 보여준다. 선택한 샘플이 음영 처리된다.
(19)
(3) 왼쪽 블록이 없는 상태에서 위쪽 블록을 사용할 수 있는 경우, 도 13과 같이 위쪽 라인의 제1 및 posA 포인트가 선택된다.
(4) 위쪽 블록을 사용할 수 없는 상태에서 왼쪽 블록을 사용할 수 있는 경우, 도 14와 같이 왼쪽 라인의 제1 지점과 posL 지점을 선택한다.
(5) 선택된 샘플의 휘도 및 색차 값에 따라 색도 예측 모델이 유도된다.
*(6) 왼쪽 및 위쪽 블록 중 어느 것도 사용할 수 없는 경우, 기본 예측 모델이 사용되며, α는 0, β는 1 <<(BitDepth-1)이며, BitDepth는 크로마 샘플의 비트 심도를 나타낸다.
3.2 최대 네 개의 샘플을 사용한 예시 방법
(1) 너비와 높이의 비율 r은 식(18)과 같이 계산된다.
(2) 위쪽 블록과 왼쪽 블록이 모두 사용 가능하면 첫 번째 위쪽 라인의 첫 번째와 posA에 위치한 네 개의 샘플, 첫 번째 왼쪽 라인의 제1 및 posL이 선택된다. posA 및 posL의 유도는 식(19)에 예시되어 있다. 도 15는 상이한 폭 및 높이 비율(각각 1, 2, 4 및 8)의 일부 예를 보여준다. 선택한 샘플이 음영 처리된다.
(3) 왼쪽 블록이 없는 상태에서 위쪽 블록을 사용할 수 있는 경우, 도 13과 같이 위쪽 라인의 첫 번째와 posA 포인트가 선택된다.
(4) 위쪽 블록을 사용할 수 없는 상태에서 왼쪽 블록을 사용할 수 있는 경우, 도 14와 같이 왼쪽 라인의 첫 번째 지점과 위치 지점을 선택한다.
(5) 왼쪽 및 위쪽 블록 중 어느 것도 사용할 수 없는 경우, 기본 예측 모델이 사용되며, α는 0, β는 1 <<(BitDepth-1)이며, BitDepth는 크로마 샘플의 비트 심도를 나타낸다.
3.3 LM 유도에서 룩업 테이블을 사용하는 예시적인 방법
도 16은 128, 64 및 32 엔트리가 있는 룩업 테이블의 예를 보여주며 각 엔트리는 16 비트로 표시된다. 두 점 LM 유도 프로세스는 64 개의 엔트리가 있는 표 1 및 도 17과 같이 단순화된다. 첫 번째 엔트리는 테이블에 저장되지 않을 수 있다.
또한 예시적인 테이블의 각 엔트리는 16 비트로 설계되었지만 더 적은 비트(예를 들어, 8 비트 또는 12 비트)를 가진 숫자로 쉽게 변형될 수 있다. 예를 들어, 8 비트 엔트리 테이블은 다음과 같이 얻을 수 있다:
g_aiLMDivTableHighSimp_64_8 [i] =(g_aiLMDivTableHighSimp_64 [i] +128) >> 8.
예를 들어, 12 비트의 엔트리 테이블은 다음과 같이 얻을 수 있다:
g_aiLMDivTableHighSimp_64_12 [i] =(g_aiLMDivTableHighSimp_64 [i] +8) >> 4.
int iDeltaLuma = maxLuma - minLuma; const int TABLE_PRECISION = 16; // It may be 8 or 12. const int BIT_DEPTH = 10; // Bit depth for samples. int shift = TABLE_PRECISION; if( iDeltaLuma > 64) { int depthshift = BIT_DEPTH - 6; // 64 is equal to 2^6. iDeltaLuma =( iDeltaLuma+(1<<(depthshift-1)))>> depthshift; shift -= depthshift; } a =(((maxChroma - minChroma)*g_aiLMDivTableHighSimp_64[iDeltaLuma-1]+(1<<(shift-1)))>>shift; |
maxLuma 및 minLuma는 선택한 위치의 최대 및 최소 루마 샘플 값을 나타낼 수 있다. 대안적으로, 평균화와 같은 선택된 위치의 최대 및 최소 루마 샘플 값의 함수를 나타낼 수 있다. 네 개의 위치 만 선택한 경우 두 개의 큰 루마 값의 평균과 두 개의 작은 루마 값의 평균을 나타낼 수도 있다. 대안적으로, 도 17에서 maxChroma 및 minChroma는 maxLuma 및 minLuma에 대응하는 크로마 값을 나타낸다.3.3 최대 네 개의 샘플을 사용하는 방법 # 4
현재 크로마 블록의 블록 폭과 높이가 각각 W와 H라고 가정한다. 그리고 현재 크로마 블록의 왼쪽 상단 좌표는 [0, 0]이다.
위쪽과 왼쪽 블록이 모두 사용 가능하고 현재 모드가 일반 LM 모드(LM-A 및 LM-L 제외) 인 경우, 위쪽 행에 위치한 두 개의 크로마 샘플과 왼쪽 열에 위치한 두 개의 크로마 샘플이 선택된다.
위의 두 샘플 좌표는 [층(W/4), -1] 및 [층(3 * W/4), -1]이다.
두 개의 왼쪽 샘플 좌표는 [-1, 바닥(H/4)] 및 [-1, 바닥(3 * H/4)]이다.
선택된 샘플은 도 31a에 도시된 바와 같이 빨간색으로 칠해진다.
그 후, 네 개의 샘플은 루마 샘플 강도에 따라 분류되고 두 개의 그룹으로 분류된다. 두 개의 큰 샘플과 두 개의 작은 샘플이 각각 평균화 된다. 크로스 컴포넌트 예측 모델은 두 개의 평균 포인트로 유도된다. 대안적으로, 네 개 샘플의 최대 값과 최소값을 사용하여 LM 파라미터를 유도한다.
왼쪽 블록이 없는 상태에서 위쪽 블록을 사용할 수 있는 경우, W> 2 일 때 위쪽 블록에서 네 개의 크로마 샘플을 선택하고 W = 2 일 때 두 개의 크로마 샘플을 선택한다.
상기 선택된 네 개의 샘플 좌표는 [W/8, -1], [W/8+W/4, -1], [W/8+2 * W/4, -1], 및 [W/8+3 * W/4, -1]이다.
선택된 샘플은 도 31b에 도시된 바와 같이 빨간색으로 칠해진다.
위의 블록을 사용할 수 없는 상태에서 왼쪽 블록을 사용할 수 있는 경우, H > 2 일 때 왼쪽 블록에서 네 개의 크로마 샘플을 선택하고 H = 2 일 때 두 개의 크로마 샘플을 선택한다.
선택된 네 개의 왼쪽 샘플의 좌표는 [-1, H/8], [-1, H/8+H/4], [-1, H/8+2 * H/4, -1]이고, 및 [-1, H/8+3 * H/4]이다.
왼쪽 및 위쪽 블록을 모두 사용할 수 없는 경우 기본 예측이 사용된다. α가 0이고 β는 1 <<(BitDepth-1)이고, 여기서 BitDepth는 크로마 샘플의 비트 심도를 나타낸다.
현재 모드가 LM-A 모드 인 경우, W'> 2 일 때 위쪽 블록에서 네 개의 크로마 샘플이 선택되고 W'= 2 일 때 두 개의 크로마 샘플이 선택된다. W'는 위쪽 이웃 샘플의 사용 가능한 수이며 2 * W 일 수 있다.
상기 선택된 네 개의 샘플 좌표는 [W'/ 8, -1], [W'/ 8+W'/ 4, -1], [W'/ 8+2 * W'/ 4,- 1] 및 [W'/ 8+3 * W'/ 4, -1]이다.
현재 모드가 LM-L 모드 인 경우, H' > 2 일 때 왼쪽 블록에서 네 개의 크로마 샘플이 선택되고, H'= 2 일 때 두 개의 크로마 샘플이 선택된다. H'는 사용 가능한 왼쪽 이웃 샘플 수이며 2 * H 일 수 있다.
선택된 네 개의 왼쪽 샘플 좌표는 [-1, H'/ 8], [-1, H'/ 8+H'/ 4], [-1, H'/ 8+2 * H'/ 4, -1] 및 [-1, H'/ 8+3 * H'/ 4]이다.
3.5 CCLM 예측을 사용하기 위해 현재 VVC 표준을 수정하기 위한 예시적인 실시 예.
8.3.4.2.8 INTRA_LT_CCLM, INTRA_L_CCLM 및 INTRA_T_CCLM 내부 예측 모드의 사양
식은 VVC 표준의 현재 드래프트에 대응하는 식 번호를 사용하여 이 섹션에서 설명된다.
이 프로세스에 대한 입력은 다음과 같다.
- 내부 예측 모드 predModeIntra,
- 현재 그림의 왼쪽 상단 샘플에 대한 현재 변형 블록(transform block)의 왼쪽 상단 샘플의 샘플 위치(xTbC, yTbC)
- 변형 블록 너비를 지정하는 변수 nTbW,
- 변형 블록 높이를 지정하는 변수 nTbH,
- x = -1, y = 0..2 * nTbH-1 및 x = 0 .. 2 * nTbW-1, y =-1 인 크로마 이웃 샘플 p [x] [y]
이 프로세스의 출력은 x = 0..nTbW-1, y = 0..nTbH-1 인 예측 샘플 predSamples [x] [y]이다. 현재 루마 위치(xTbY, yTbY)는 다음과 같이 유도된다:
(xTbY, yTbY) =(xTbC << 1, yTbC << 1)
(8-155)
availL, availT 및 availTL 변수는 다음과 같이 유도된다:
…
- predModeIntra가 INTRA_LT_CCLM과 같으면 다음이 적용된다:
numSampT = availT nTbW: 0
(8-156)
numSampL = avail ? nTbH: 0
(8-157)
- 그렇지 않으면, 다음이 적용된다:
numSampT =(availT && predModeIntra = = INTRA_T_CCLM) ?(nTbW+numTopRight): 0
(8-158)
numSampL =(availL && predModeIntra = = INTRA_L_CCLM) ?(nTbH+numLeftBelow): 0
(8-159)
bCTUboundary 변수는 다음과 같이 유도된다:
bCTUboundary =(yTbC &(1 <<(CtbLog2SizeY-1)-1) = = 0)? TRUE: FALSE.
(8-160)
x = 0..nTbW-1, y = 0..nTbH-1 인 예측 샘플 predSamples [x] [y]는 다음과 같이 유도된다:
- numSampL 및 numSampT가 모두 0이면 다음이 적용된다:
predSamples [x] [y] = 1 <<(BitDepthC-1)
(8-161)
- 그렇지 않으면, 다음 순서대로 적용된다:
1. ... [현재 사양 변경 없음]
2. ...
3. ...
4. ...
5. ...
6. ... ... [현재 사양 변경 없음]
7. 변수 minY, maxY, minC 및 maxC는 다음과 같이 유도된다:
- 변수 minY는 1 <<(BitDepthY)+1로 설정되고, 변수 maxY는 -1로 설정된다.
- availL이 TRUE이고 predModeIntra가 INTRA_LT_CCLM이면, 변수 aboveIs4는 0으로 설정되고; 그렇지 않으면, 1로 설정된다.
- availT가 TRUE이고 predModeIntra가 INTRA_LT_CCLM이면, 변수 LeftIs4는 0으로 설정되고; 그렇지 않으면, 1로 설정된다.
- 변수 어레이 startPos [] 및 pickStep []은 다음과 같이 유도된다:
- startPos [0] = actualTopTemplateSampNum >>(2+aboveIs4);
- pickStep [0] = std:: max(1, actualTopTemplateSampNum >>(1+aboveIs4));
- startPos [1] = actualLeftTemplateSampNum >>(2+leftIs4);
- pickStep [1] = std:: max(1, actualLeftTemplateSampNum >>(1+leftIs4));
- 변수 cnt는 0으로 설정된다.
- predModeIntra가 INTRA_LT_CCLM과 같으면, 변수 nSX는 nTbW와 같고, nSY는 nTbH와 같게 설정된다; 그렇지 않으면, nSX는 numSampLT와 동일하게 설정되고 nSY는 numSampL과 동일하게 설정된다.
- availT가 TRUE이고 predModeIntra가 INTRA_L_CCLM과 같지 않으면, 변수 selectLumaPix, selectChromaPix는 다음과 같이 유도된다:
- startPos [0]+cnt * pickStep [0] <nSX 및 cnt <4 인 동안 다음이 적용된다:
- selectLumaPix [cnt] = pTopDsY [startPos [0]+cnt * pickStep [0]];
- selectChromaPix [cnt] = p [startPos [0]+cnt * pickStep [0]] [-1];
- cnt ++;
- availL이 TRUE이고 predModeIntra가 INTRA_T_CCLM과 같지 않으면, 변수 selectLumaPix, selectChromaPix는 다음과 같이 유도된다:
- startPos [1]+cnt * pickStep [1] <nSY 및 cnt <4 인 동안 다음이 적용된다:
- selectLumaPix [cnt] = pLeftDsY [startPos [1]+cnt * pickStep [1]];
- selectChromaPix [cnt] = p [-1] [startPos [1]+cnt * pickStep [1]];
- cnt ++;
- cnt가 2 인 경우 다음이 적용된다:
- selectLumaPix [0]> selectLumaPix [1] 인 경우, minY는 selectChromaPix [1]과 동일하게 설정되고 maxY는 selectLumaPix [0]과 동일하게 설정되며 maxC는 selectChromaPix [0]과 동일하게 설정된다; 그렇지 않으면, maxY는 selectLumaPix [1]과 동일하게 설정되고 maxC는 selectChromaPix [1]과 동일하게 설정되고 minY는 selectLumaPix [0]과 동일하게 설정되고 minC는 selectChromaPix [0]과 동일하게 설정된다.
- 그렇지 않으면, cnt가 4이면 다음이 적용된다:
- 변수 어레이 minGrpIdx 및 maxGrpIdx는 다음과 같이 초기화된다:
- minGrpIdx [0] = 0, minGrpIdx [1] = 1, maxGrpIdx [0] = 2, maxGrpIdx [1] = 3;
- 다음 사항이 적용된다:
- selectLumaPix [minGrpIdx [0]]> selectLumaPix [minGrpIdx [1]]이면, minGrpIdx [0]와 minGrpIdx [1]을 교환한다.
- selectLumaPix [maxGrpIdx [0]]> selectLumaPix [maxGrpIdx [1]]이면, maxGrpIdx [0]와 maxGrpIdx [1]을 교환한다.
- selectLumaPix [minGrpIdx [0]]> selectLumaPix [maxGrpIdx [1]]이면, minGrpIdx와 maxGrpIdx를 교환한다.
- selectLumaPix [minGrpIdx [1]]> selectLumaPix [maxGrpIdx [0]] 인 경우 minGrpIdx [1]와 maxGrpIdx [0]을 교환한다.
- maxY, maxC, minY 및 minC는 다음과 같이 유도된다:
- maxY =(selectLumaPix [maxGrpIdx [0]]+selectLumaPix [maxGrpIdx [1]]+1) >> 1;
- maxC =(selectChromaPix [maxGrpIdx [0]]+selectChromaPix [maxGrpIdx [1]+1) >> 1;
- maxY =(selectLumaPix [minGrpIdx [0]]+selectLumaPix [minGrpIdx [1]]+1) >> 1;
- maxC =(selectChromaPix [minGrpIdx [0]]+selectChromaPix [minGrpIdx [1]]+1) >> 1;
-
8. 변수 a, b 및 k는 다음과 같이 유도된다:
[변경 종료]
3.6 제안된 CCLM 예측에 대한 또 다른 예시적인 연산 드래프트
이 섹션에서, VVC 표준의 현재 연산 드래프트에 만들어질 수 있는 수정을 보여주는 다른 예시적인 실시 예가 설명된다. 여기서 식 번호는 VVC 표준의 대응하는 식 번호를 나타낸다.
INTRA_LT_CCLM, INTRA_L_CCLM 및 INTRA_T_CCLM 내부 예측 모드의 사양.
[아래와 같이 현재 VVC 연산 드래프트에 추가]
상단 및 오른쪽 상단 numTopSamp에서 사용 가능한 이웃 크로마 샘플 수와 nLeftSamp 왼쪽 및 왼쪽 아래에서 사용 가능한 이웃 크로마 샘플 수는 다음과 같이 유도된다.
- predModeIntra가 INTRA_LT_CCLM과 같으면 다음이 적용된다:
numSampT = availT? nTbW: 0
(8-157)
numSampL = availL? nTbH: 0
(8-158)
- 그렇지 않으면, 다음이 적용된다:
numSampT =(availT && predModeIntra = = INTRA_T_CCLM) ?
(nTbW+최소(numTopRight, nTbH)): 0
(8-159)
numSampL =(availL && predModeIntra = = INTRA_L_CCLM) ?
(nTbH+최소(numLeftBelow, nTbW)): 0
(8-160)
bCTUboundary 변수는 다음과 같이 유도된다:
bCTUboundary =(yTbC &(1 <<(CtbLog2SizeY-1)-1) = = 0)? TRUE : FALSE.
(8-161)
*변수 cntN 및 어레이 pickPosN [](N이 L 및 T로 대체됨)은 다음과 같이 유도된다:
- 변수 numIs4N은 ((availN && 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은 (1+numIs4N) << 1로 설정되고, pickPosN [pos]는 (startPosN+pos * pickStepN)과 동일하게 설정되며, pos = 0 .. (cntN-1)이다.
- 그렇지 않으면, cntN은 0으로 설정된다.
x = 0..nTbW-1, y = 0..nTbH-1 인 예측 샘플 predSamples [x] [y]는 다음과 같이 유도된다:
- numSampL 및 numSampT가 모두 0이면, 다음이 적용된다:
predSamples [x] [y] = 1 <<(BitDepthC-1)
(8-162)
- 그렇지 않으면, 다음 순서대로 적용된다:
1. x = 0..nTbW * 2-1, y = 0..nTbH * 2-1 인 병치된 루마 샘플 pY [x] [y]는 위치(xTbY+x, yTbY+y)에서 디 블로킹 필터 프로세스(deblocking filter process) 이전에 재구성된 루마 샘플과 동일하게 설정된다.
2. 이웃 루마 샘플 샘플 pY [x] [y]는 다음과 같이 유도된다:
- numSampL이 0보다 크면, x = -1 ..- 3, y = 0..2 * numSampL-1 인 이웃 왼쪽 루마 샘플 pY [x] [y]는 (xTbY+x, yTbY+y) 위치에서 디 블로킹 필터 프로세스 이전에 재구성된 루마 샘플과 동일하게 설정된다.
- numSampT가 0보다 크면, x = 0..2 * numSampT-1, y = -1, -2 인 이웃 위쪽 루마 샘플 pY [x] [y]는 위치(xTbY+x, yTbY+y)에서 디 블로킹 필터 프로세스 이전에 재구성된 루마 샘플과 동일하게 설정된다.
- availTL이 TRUE 인 경우, x = -1, y = -1, -2 인 이웃 왼쪽 상단 루마 샘플 pY [x] [y]는 위치(xTbY+x, yTbY+y)에서 디 블로킹 필터 프로세스 이전에 재구성된 루마 샘플과 동일하게 설정된다.
3. x = 0..nTbW-1, y = 0..nTbH-1 인 다운 샘플링 된 병치된 루마 샘플 pDsY [x] [y]는 다음과 같이 유도된다:
- sps_cclm_colocated_chroma_flag가 1이면 다음이 적용된다:
- x = 1..nTbW-1, y = 1..nTbH-1 인 pDsY [x] [y]는 다음과 같이 유도된다:
pDsY [x] [y] =(pY [2 * x] [2 * y-1] +
pY [2 * x-1] [2 * y]+4 * pY [2 * x] [2 * y]+pY [2 * x+1] [2 * y] +
(8-163)
pY [2 * x] [2 * y+1]+4) >> 3
- availL이 TRUE이면, y = 1..nTbH-1 인 pDsY [0] [y]는 다음과 같이 유도된다:
pDsY [0] [y] =(pY [0] [2 * y-1] +
pY [-1] [2 * y]+4 * pY [0] [2 * y]+pY [1] [2 * y]+
(8-164)
pY [0] [2 * y+1]+4) >> 3
- 그렇지 않으면, y = 1..nTbH-1 인 pDsY [0] [y]는 다음과 같이 유도된다:
pDsY [0] [y] =(pY [0] [2 * y-1]+2 * pY [0] [2 * y]+pY [0] [2 * y+1]+2) >> 2
(8-165)
- availT가 TRUE이면 x = 1..nTbW-1 인 pDsY [x] [0]은 다음과 같이 유도된다:
pDsY [x] [0] =(pY [2 * x] [-1] +
pY [2 * x-1] [0]+4 * pY [2 * x] [0]+pY [2 * x+1] [0]+
(8-166)
pY [2 * x] [1]+4) >> 3
- 그렇지 않으면, x = 1..nTbW-1 인 pDsY [x] [0]은 다음과 같이 유도된다:
pDsY [x] [0] =(pY [2 * x-1] [0]+2 * pY [2 * x] [0]+pY [2 * x+1] [0]+2) >> 2
(8-167)
- availL이 TRUE이고 availT가 TRUE이면 pDsY [0] [0]은 다음과 같이 유도된다:
pDsY [0] [0] =(pY [0] [-1] +
pY [-1] [0]+4 * pY [0] [0]+pY [1] [0]+
(8-168)
pY [0] [1]+4) >> 3
- 그렇지 않으면, availL이 TRUE이고 availT가 FALSE이면 pDsY [0] [0]은 다음과 같이 유도된다:
pDsY [0] [0] =(pY [-1] [0]+2 * pY [0] [0]+pY [1] [0]+2) >> 2
(8-169)
- 그렇지 않으면, availL이 FALSE이고 availT가 TRUE이면 pDsY [0] [0]은 다음과 같이 유도된다:
pDsY [0] [0] =(pY [0] [-1]+2 * pY [0] [0]+pY [0] [1]+2) >> 2
(8-170)
- 그렇지 않으면(availL은 FALSE와 availT는 FALSE와 같음), pDsY [0] [0]은 다음과 같이 유도된다:
pDsY [0] [0] = pY [0] [0]
(8-171)
- 그렇지 않으면, 다음이 적용된다:
- x = 1..nTbW-1, y = 0..nTbH-1 인 pDsY [x] [y]는 다음과 같이 유도된다:
pDsY [x] [y] =(pY [2 * x-1] [2 * y]+pY [2 * x-1] [2 * y+1] +
2 * pY [2 * x] [2 * y]+2 * pY [2 * x] [2 * y+1]+
(8-172)
pY [2 * x+1] [2 * y]+pY [2 * x+1] [2 * y+1]+4) >> 3
- availL이 TRUE이면 y = 0..nTbH-1 인 pDsY [0] [y]는 다음과 같이 유도된다:
pDsY [0] [y] =(pY [-1] [2 * y]+pY [-1] [2 * y+1] +
2 * pY [0] [2 * y]+2 * pY [0] [2 * y+1]+
(8-173)
pY [1] [2 * y]+pY [1] [2 * y+1]+4) >> 3
- 그렇지 않으면, y = 0..nTbH-1 인 pDsY [0] [y]는 다음과 같이 유도된다:
pDsY [0] [y] =(pY [0] [2 * y]+pY [0] [2 * y+1]+1) >> 1
(8-174)
4. numSampL이 0보다 크면, 선택된 이웃 왼쪽 크로마 샘플 pSelC [idx]는 idx = 0 .. (cntL-1) 인 p [-1] [pickPosL [idx]]와 동일하게 설정되고, 및 선택된 다운 샘플링 된 이웃 왼쪽 루마 샘플 pSelDsY [idx](idx = 0 .. (cntL-1))는 다음과 같이 유도된다:
- 변수 y는 pickPosL [idx]와 동일하게 설정된다.
- sps_cclm_colocated_chroma_flag가 1이면 다음이 적용된다:
- 만약 y> 0 || availTL == TRUE,
pSelDsY [idx] =(pY [-2] [2 * y-1] +
pY [-3] [2 * y]+4 * pY [-2] [2 * y]+pY [-1] [2 * y]+ (8-175)
pY [-2] [2 * y+1]+4) >> 3
- 그렇지 않으면,
pSelDsY [idx] =(pY [-3] [0]+2 * pY [-2] [0]+pY [-1] [0]+2) >> 2 (8-177)
- 그렇지 않으면, 다음이 적용된다:
pSelDsY [idx] =(pY [-1] [2 * y]+pY [-1] [2 * y+1] +
2 * pY [-2] [2 * y]+2 * pY [-2] [2 * y+1]+ (8-178)
pY [-3] [2 * y]+pY [-3] [2 * y+1]+4) >> 3
5. numSampT가 0보다 크면, 선택된 이웃 상단 크로마 샘플 pSelC [idx]는 idx = 0 .. (cntT-1) 인 p [pickPosT [idx]] [-1]과 동일하게 설정되고 idx = cntL .. (cntL+cntT-1) 인 샘플링 된 이웃 위쪽 루마 샘플 pSelDsY [idx]는 다음과 같이 지정된다.
- 변수 x는 pickPosT [idx-cntL]과 동일하게 설정된다.
- sps_cclm_colocated_chroma_flag가 1이면 다음이 적용된다:
- x> 0 인 경우:
- bCTUboundary가 FALSE 인 경우 다음이 적용된다:
pSelDsY [idx] =(pY [2 * x] [-3] +
pY [2 * x-1] [-2]+4 * pY [2 * x] [-2]+pY [2 * x+1] [-2]+(8-179)
pY [2 * x] [-1]+4) >> 3
- 그렇지 않으면(bCTUboundary가 TRUE와 같음), 다음이 적용된다:
pSelDsY [idx] =(pY [2 * x-1] [-1] +
2 * pY [2 * x] [-1]+ (8-180)
pY [2 * x+1] [-1]+2) >> 2
- 그렇지 않으면:
- availTL이 TRUE이고 bCTUboundary가 FALSE 인 경우 다음이 적용된다:
pSelDsY [idx] =(pY [0] [-3] +
pY [-1] [-2]+4 * pY [0] [-2]+pY [1] [-2]+ (8-181)
pY [0] [-1]+4) >> 3
- 그렇지 않으면, availTL이 TRUE이고 bCTUboundary가 TRUE이면 다음이 적용된다:
pSelDsY [idx] =(pY [-1] [-1] +
2 * pY [0] [-1]+
(8-182)
pY [1] [-1]+2) >> 2
- 그렇지 않으면, availTL이 FALSE이고 bCTUboundary가 FALSE이면 다음이 적용된다:
pSelDsY [idx] =(pY [0] [-3]+2 * pY [0] [-2]+pY [0] [-1]+2) >> 2 (8-183)
- 그렇지 않으면(availTL은 FALSE와 bCTUboundary는 TRUE와 같음) 다음이 적용된다:
pSelDsY [idx] = pY [0] [-1]
(8-184)
- 그렇지 않으면, 다음이 적용된다:
- x> 0 인 경우:
- bCTUboundary가 FALSE 인 경우 다음이 적용된다:
pSelDsY [idx] =(pY [2 * x-1] [-2]+pY [2 * x-1] [-1] +
2 * pY [2 * x] [-2]+2 * pY [2 * x] [-1]+ (8-185)
pY [2 * x+1] [-2]+pY [2 * x+1] [-1]+4) >> 3
- 그렇지 않으면(bCTUboundary가 TRUE와 같음), 다음이 적용된다:
pSelDsY [idx] =(pY [2 * x-1] [-1] +
2 * pY [2 * x] [-1]+ (8-186)
pY [2 * x+1] [-1]+2) >> 2
- 그렇지 않으면:
- availTL이 TRUE이고 bCTUboundary가 FALSE 인 경우 다음이 적용된다:
pSelDsY [idx] =(pY [-1] [-2]+pY [-1] [-1] +
2 * pY [0] [-2]+2 * pY [0] [-1]+
(8-187)
pY [1] [-2]+pY [1] [-1]+4) >> 3
- 그렇지 않으면, availTL이 TRUE이고 bCTUboundary가 TRUE이면 다음이 적용된다:
pSelDsY [idx] =(pY [-1] [-1] +
2 * pY [0] [-1]+
(8-188)
pY [1] [-1]+2) >> 2
- 그렇지 않으면, availTL이 FALSE이고 bCTUboundary가 FALSE이면 다음이 적용된다:
pSelDsY [idx] =(pY [0] [-2]+pY [0] [-1]+1) >> 1
(8-189)
- 그렇지 않으면(availTL은 FALSE와 bCTUboundary는 TRUE와 같음), 다음이 적용된다:
pSelDsY [idx] = pY [0] [-1]
(8-190)
6. 변수 minY, maxY, minC 및 maxC는 다음과 같이 유도된다:
-
- cntT+cntL이 2 인 경우, pSelC [idx+2] = pSelC [idx] 및 pSelDsY [idx+2] = pSelDsY [idx]를 idx = 0 및 1로 설정한다.
- minGrpIdx [] 및 maxGrpIdx [] 어레이는 minGrpIdx [0] = 0, minGrpIdx [1] = 1, maxGrpIdx [0] = 2, 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이면 다음이 적용된다:
k = 0
(8-208)
a = 0
(8-209)
b = 1 <<(BitDepthC-1)
(8-210)
- 그렇지 않으면, 다음이 적용된다:
diff = maxY-minY
(8-211)
- diff가 0이 아닌 경우, 다음이 적용된다:
diffC = maxC-minC (8-212)
x = 바닥(Log2(차이)) (8-213)
normDiff =((diff << 4) >> x) & 15 (8-214)
x+=(normDiff! = 0)? 1: 0 (8-215)
y = 바닥(Log2(Abs(diffC)))+1 (8-216)
a =(diffC *(divSigTable [normDiff] | 8)+2y-1) >> y (8-217)
k =((3+x-y) <1)? 1: 3+x-y (8-218)
a =((3+x-y) <1)? Sign(a) * 15: a (8-219)
b = minC-((a * minY) >> k) (8-220)
여기서 divSigTable []은 다음과 같이 지정된다.
divSigTable [] = {0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0} (8-221)
- 그렇지 않으면(diff가 0), 다음이 적용된다:
k = 0
(8-222)
a = 0 (8-223)
b = minC (8-224)
8. x = 0..nTbW-1, y = 0 .. nTbH-1 인 예측 샘플 predSamples [x] [y]는 다음과 같이 유도된다:
predSamples [x] [y] = Clip1C((((pDsY [x] [y] * a) >> k)+b) (8-225)
[실시 예 종료]
3.7 제안된 CCLM 예측에 대한 또 다른 예시적인 연산 드래프트
이 섹션에서, VVC 표준의 현재 연산 드래프트에 만들어질 수 있는 수정을 보여주는 다른 예시적인 실시 예가 설명된다. 여기서 식 번호는 VVC 표준의 대응하는 식 번호를 나타낸다.
INTRA_LT_CCLM, INTRA_L_CCLM 및 INTRA_T_CCLM 내부 예측 모드의 사양
…
상단 및 오른쪽 상단 numTopSamp에서 사용 가능한 이웃 크로마 샘플 수와 nLeftSamp 왼쪽 및 왼쪽 아래에서 사용 가능한 이웃 크로마 샘플 수는 다음과 같이 유도된다.
- predModeIntra가 INTRA_LT_CCLM과 같으면 다음이 적용된다:
numSampT = availT? nTbW: 0 (8-157)
numSampL = availL? nTbH: 0 (8-158)
- 그렇지 않으면, 다음이 적용된다:
numSampT =(availT && predModeIntra = = INTRA_T_CCLM)?
(nTbW+최소(numTopRight, nTbH)): 0 (8-159)
numSampL =(availL && predModeIntra = = INTRA_L_CCLM)?
(nTbH+최소(numLeftBelow, nTbW)): 0 (8-160)
bCTUboundary 변수는 다음과 같이 유도된다:
bCTUboundary =(yTbC &(1 <<(CtbLog2SizeY-1)-1) = = 0)? 허위 사실. (8-161)
변수 cntN 및 어레이 pickPosN [](N이 L 및 T로 대체됨)은 다음과 같이 유도된다:
- 변수 numIs4N은 ((availN && 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으로 설정된다.
x = 0..nTbW-1, y = 0..nTbH-1 인 예측 샘플 predSamples [x] [y]는 다음과 같이 유도된다:
- numSampL 및 numSampT가 모두 0이면 다음이 적용된다:
predSamples [x] [y] = 1 <<(BitDepthC-1) (8-162)
- 그렇지 않으면, 다음 순서대로 적용된다:
1. x = 0..nTbW * 2-1, y = 0..nTbH * 2-1 인 병치된 루마 샘플 pY [x] [y]는 위치(xTbY+x, yTbY+y)에서 디 블로킹 필터 프로세스 이전에 재구성된 루마 샘플과 동일하게 설정된다.
2. 이웃 루마 샘플 샘플 pY [x] [y]는 다음과 같이 유도된다:
- numSampL이 0보다 크면, x = -1 ..- 3, y = 0..2 * numSampL-1 인 이웃 왼쪽 루마 샘플 pY [x] [y]는 위치(xTbY+x, yTbY+y)에서 디 블로킹 필터 프로세스 이전에 재구성된 루마 샘플과 동일하게 설정된다.
- numSampT가 0보다 크면, x = 0..2 * numSampT-1, y = -1, -2 인 이웃 상단 루마 샘플 pY [x] [y]는 위치(xTbY+x, yTbY+y)에서 디 블로킹 필터 프로세스 이전에 재구성된 루마 샘플과 동일하게 설정된다.
- availTL이 TRUE 인 경우, x = -1, y = -1, -2 인 이웃 왼쪽 상단 루마 샘플 pY [x] [y]는 위치(xTbY+x, yTbY+y)에서 디 블로킹 필터 프로세스 이전에 재구성된 루마 샘플과 동일하게 설정된다..
3. x = 0..nTbW-1, y = 0..nTbH-1 인 다운 샘플링 된 병치된 루마 샘플 pDsY [x] [y]는 다음과 같이 유도된다:
- sps_cclm_colocated_chroma_flag가 1이면 다음이 적용된다:
- x = 1..nTbW-1, y = 1..nTbH-1 인 pDsY [x] [y]는 다음과 같이 유도된다:
pDsY [x] [y] =(pY [2 * x] [2 * y-1] +
pY [2 * x-1] [2 * y]+4 * pY [2 * x] [2 * y]+pY [2 * x+1] [2 * y]+ (8-163)
pY [2 * x] [2 * y+1]+4) >> 3
- availL이 TRUE이면 y = 1..nTbH-1 인 pDsY [0] [y]는 다음과 같이 유도된다.
pDsY [0] [y] =(pY [0] [2 * y-1] +
pY [-1] [2 * y]+4 * pY [0] [2 * y]+pY [1] [2 * y]+ (8-164)
pY [0] [2 * y+1]+4) >> 3
- 그렇지 않으면, y = 1..nTbH-1 인 pDsY [0] [y]는 다음과 같이 유도된다:
pDsY [0] [y] =(pY [0] [2 * y-1]+2 * pY [0] [2 * y]+pY [0] [2 * y+1]+2) >> 2 (8-165)
- availT가 TRUE이면 x = 1..nTbW-1 인 pDsY [x] [0]은 다음과 같이 유도된다:
pDsY [x] [0] =(pY [2 * x] [-1] +
pY [2 * x-1] [0]+4 * pY [2 * x] [0]+pY [2 * x+1] [0]+ (8-166)
pY [2 * x] [1]+4) >> 3
- 그렇지 않으면, x = 1..nTbW-1 인 pDsY [x] [0]은 다음과 같이 유도된다:
pDsY [x] [0] =(pY [2 * x-1] [0]+2 * pY [2 * x] [0]+pY [2 * x+1] [0]+2) >> 2 (8-167)
- availL이 TRUE이고 availT가 TRUE이면 pDsY [0] [0]은 다음과 같이 유도된다:
pDsY [0] [0] =(pY [0] [-1] +
pY [-1] [0]+4 * pY [0] [0]+pY [1] [0]+ (8-168)
pY [0] [1]+4) >> 3
- 그렇지 않으면, availL이 TRUE이고 availT가 FALSE이면 pDsY [0] [0]은 다음과 같이 유도된다:
pDsY [0] [0] =(pY [-1] [0]+2 * pY [0] [0]+pY [1] [0]+2) >> 2 (8-169)
- 그렇지 않으면, availL이 FALSE이고 availT가 TRUE이면 pDsY [0] [0]은 다음과 같이 유도된다:
pDsY [0] [0] =(pY [0] [-1]+2 * pY [0] [0]+pY [0] [1]+2) >> 2 (8-170)
- 그렇지 않으면(availL은 FALSE와 availT는 FALSE와 같음), pDsY [0] [0]은 다음과 같이 유도된다:
pDsY [0] [0] = pY [0] [0] (8-171)
- 그렇지 않으면, 다음이 적용된다:
- x = 1..nTbW-1, y = 0..nTbH-1 인 pDsY [x] [y]는 다음과 같이 유도된다:
pDsY [x] [y] =(pY [2 * x-1] [2 * y]+pY [2 * x-1] [2 * y+1] +
2 * pY [2 * x] [2 * y]+2 * pY [2 * x] [2 * y+1]+ (8-172)
pY [2 * x+1] [2 * y]+pY [2 * x+1] [2 * y+1]+4) >> 3
- availL이 TRUE이면, y = 0..nTbH-1 인 pDsY [0] [y]는 다음과 같이 유도된다:
pDsY [0] [y] =(pY [-1] [2 * y]+pY [-1] [2 * y+1] +
2 * pY [0] [2 * y]+2 * pY [0] [2 * y+1]+ (8-173)
pY [1] [2 * y]+pY [1] [2 * y+1]+4) >> 3
- 그렇지 않으면, y = 0..nTbH-1 인 pDsY [0] [y]는 다음과 같이 유도된다:
pDsY [0] [y] =(pY [0] [2 * y]+pY [0] [2 * y+1]+1) >> 1 (8-174)
4. numSampL이 0보다 크면, 선택된 이웃 왼쪽 크로마 샘플 pSelC [idx]는 idx = 0 .. (cntL-1) 인 p [-1] [pickPosL [idx]]와 동일하게 설정되고 선택된 다운 샘플링 된 이웃 왼쪽 루마 샘플 pSelDsY [idx](idx = 0 .. (cntL-1))는 다음과 같이 유도된다:
- 변수 y는 pickPosL [idx]와 동일하게 설정된다.
- sps_cclm_colocated_chroma_flag가 1이면 다음이 적용된다:
- 만약 y> 0 || availTL == TRUE이면,
pSelDsY [idx] =(pY [-2] [2 * y-1] +
pY [-3] [2 * y]+4 * pY [-2] [2 * y]+pY [-1] [2 * y]+
(8-175)
pY [-2] [2 * y+1]+4) >> 3
- 그렇지 않으면,
pSelDsY [idx] =(pY [-3] [0]+2 * pY [-2] [0]+pY [-1] [0]+2) >> 2 (8-177)
- 그렇지 않으면, 다음이 적용된다:
pSelDsY [idx] =(pY [-1] [2 * y]+pY [-1] [2 * y+1] +
2 * pY [-2] [2 * y]+2 * pY [-2] [2 * y+1]+ (8-178)
pY [-3] [2 * y]+pY [-3] [2 * y+1]+4) >> 3
5. numSampT가 0보다 크면, 선택된 이웃 상단 크로마 샘플 pSelC [idx]는 idx = 0 .. (cntT-1) 인 p [pickPosT [idx]] [-1]과 동일하게 설정되고 idx = cntL .. (cntL+cntT-1) 인 샘플링 된 이웃 위쪽 루마 샘플 pSelDsY [idx]는 다음과 같이 지정된다:
- 변수 x는 pickPosT [idx-cntL]과 동일하게 설정된다.
- sps_cclm_colocated_chroma_flag가 1이면 다음이 적용된다:
- x > 0 인 경우:
- bCTUboundary가 FALSE 인 경우 다음이 적용된다:
pSelDsY [idx] =(pY [2 * x] [-3] +
pY [2 * x-1] [-2]+4 * pY [2 * x] [-2]+pY [2 * x+1] [-2]+ (8-179)
pY [2 * x] [-1]+4) >> 3
- 그렇지 않으면(bCTUboundary가 TRUE와 같음), 다음이 적용된다:
pSelDsY [idx] =(pY [2 * x-1] [-1] +
2 * pY [2 * x] [-1]+
(8-180)
pY [2 * x+1] [-1]+2) >> 2
- 그렇지 않으면:
- availTL이 TRUE이고 bCTUboundary가 FALSE 인 경우 다음이 적용된다:
pSelDsY [idx] =(pY [0] [-3] +
pY [-1] [-2]+4 * pY [0] [-2]+pY [1] [-2]+ (8-181)
pY [0] [-1]+4) >> 3
- 그렇지 않으면, availTL이 TRUE이고 bCTUboundary가 TRUE이면 다음이 적용된다:
pSelDsY [idx] =(pY [-1] [-1] +
2 * pY [0] [-1]+ (8-182)
pY [1] [-1]+2) >> 2
- 그렇지 않으면, availTL이 FALSE이고 bCTUboundary가 FALSE이면 다음이 적용된다:
pSelDsY [idx] =(pY [0] [-3]+2 * pY [0] [-2]+pY [0] [-1]+2) >> 2 (8-183)
- 그렇지 않으면(availTL은 FALSE와 bCTUboundary는 TRUE와 같음), 다음이 적용된다:
pSelDsY [idx] = pY [0] [-1] (8-184)
- 그렇지 않으면, 다음이 적용된다:
- x> 0 인 경우:
- bCTUboundary가 FALSE 인 경우 다음이 적용된다:
pSelDsY [idx] =(pY [2 * x-1] [-2]+pY [2 * x-1] [-1] +
2 * pY [2 * x] [-2]+2 * pY [2 * x] [-1]+
(8-185)
pY [2 * x+1] [-2]+pY [2 * x+1] [-1]+4) >> 3
- 그렇지 않으면(bCTUboundary가 TRUE와 같음), 다음이 적용된다:
pSelDsY [idx] =(pY [2 * x-1] [-1] +
2 * pY [2 * x] [-1]+
(8-186)
pY [2 * x+1] [-1]+2) >> 2
- 그렇지 않으면:
- availTL이 TRUE이고 bCTUboundary가 FALSE 인 경우, 다음이 적용된다:
pSelDsY [idx] =(pY [-1] [-2]+pY [-1] [-1] +
2 * pY [0] [-2]+2 * pY [0] [-1]+ (8-187)
pY [1] [-2]+pY [1] [-1]+4) >> 3
- 그렇지 않으면, availTL이 TRUE이고 bCTUboundary가 TRUE이면 다음이 적용된다:
pSelDsY [idx] =(pY [-1] [-1] +
2 * pY [0] [-1]+ (8-188)
pY [1] [-1]+2) >> 2
- 그렇지 않으면, availTL이 FALSE이고 bCTUboundary가 FALSE이면 다음이 적용된다:
pSelDsY [idx] =(pY [0] [-2]+pY [0] [-1]+1) >> 1 (8-189)
- 그렇지 않으면(availTL은 FALSE와 bCTUboundary는 TRUE와 같음), 다음이 적용된다:
pSelDsY [idx] = pY [0] [-1] (8-190)
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] = 1, maxGrpIdx [0] = 2, 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이면, 다음이 적용된다:
k = 0 (8-208)
a = 0 (8-209)
b = 1 <<(BitDepthC-1) (8-210)
- 그렇지 않으면, 다음이 적용된다:
diff = maxY-minY
(8-211)
- diff가 0이 아닌 경우 다음이 적용된다:
diffC = maxC-minC (8-212)
x = Floor(Log2(차이)) (8-213)
normDiff =((diff << 4) >> x) & 15 (8-214)
x+=(normDiff! = 0)? 1: 0 (8-215)
y = Floor(Log2(Abs(diffC)))+1 (8-216)
a =(diffC *(divSigTable [normDiff] | 8)+2y-1) >> y (8-217)
k =((3+x-y) <1)? 1: 3+x-y (8-218)
a =((3+x-y) <1)? Sign(a) * 15: a (8-219)
b = minC-((a * minY) >> k) (8-220)
여기서 divSigTable []은 다음과 같이 지정된다:
divSigTable [] = {0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0} (8-221)
- 그렇지 않으면(diff가 0과 같음), 다음이 적용된다:
k = 0
(8-222)
a = 0 (8-223)
b = minC (8-224)
8. x = 0..nTbW-1, y = 0 .. nTbH-1 인 예측 샘플 predSamples [x] [y]는 다음과 같이 유도된다:
predSamples [x] [y] = Clip1C((((pDsY [x] [y] * a) >> k)+b) (8-225)
3.8 제안된 CCLM 예측에 대한 대안 연산 드래프트
이 섹션에서, VVC 표준의 현재 연산 드래프트에 만들어질 수 있는 또 다른 수정을 보여주는 대안적인 예시적인 실시 예가 설명된다. 여기서 식 번호는 VVC 표준의 대응하는 식 번호를 나타낸다.
INTRA_LT_CCLM, INTRA_L_CCLM 및 INTRA_T_CCLM 내부 예측 모드 지정.
…
상단 및 오른쪽 상단 numTopSamp에서 사용 가능한 이웃 크로마 샘플 수와 nLeftSamp 왼쪽 및 왼쪽 아래에서 사용 가능한 이웃 크로마 샘플 수는 다음과 같이 유도된다:
- predModeIntra가 INTRA_LT_CCLM과 같으면, 다음이 적용된다:
numSampT = availT? nTbW: 0 (8-157)
numSampL = availL? nTbH: 0 (8-158)
- 그렇지 않으면, 다음이 적용된다:
numSampT =(availT && predModeIntra = = INTRA_T_CCLM)?
(nTbW+Min(numTopRight, nTbH)): 0 (8-159)
numSampL =(availL && predModeIntra = = INTRA_L_CCLM)?
(nTbH+Min(numLeftBelow, nTbW)): 0 (8-160)
bCTUboundary 변수는 다음과 같이 유도된다:
bCTUboundary =(yTbC &(1 <<(CtbLog2SizeY-1)-1) = = 0)? TRUE: FALSE. (8-161)
변수 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으로 설정된다.
x = 0..nTbW-1, y = 0..nTbH-1 인 예측 샘플 predSamples [x] [y]는 다음과 같이 유도된다:
- numSampL 및 numSampT가 모두 0이면, 다음이 적용된다:
predSamples [x] [y] = 1 <<(BitDepthC-1) (8-162)
- 그렇지 않으면, 다음 순서대로 적용된다:
1. x = 0..nTbW * 2-1, y = 0..nTbH * 2-1 인 병치된 루마 샘플 pY [x] [y]는 위치(xTbY+x, yTbY+y)에서 디 블로킹 필터 프로세스 이전에 재구성된 루마 샘플과 동일하게 설정된다.
2. 이웃 루마 샘플 샘플 pY [x] [y]는 다음과 같이 유도된다:
- numSampL이 0보다 크면, x = -1 ..- 3, y = 0..2 * numSampL-1 인 이웃 왼쪽 루마 샘플 pY [x] [y]는 위치(xTbY+x, yTbY+y)에서 디 블로킹 필터 프로세스 이전에 재구성된 루마 샘플과 동일하게 설정된다.
- numSampT가 0보다 크면, x = 0..2 * numSampT-1, y = -1, -2 인 이웃 위쪽 루마 샘플 pY [x] [y]는 위치(xTbY+x, yTbY+y)에서 디 블로킹 필터 프로세스 이전에 재구성된 루마 샘플과 동일하게 설정된다.
- availTL이 TRUE 인 경우, x = -1, y = -1, -2 인 이웃 왼쪽 상단 루마 샘플 pY [x] [y]는 위치(xTbY+x, yTbY+y)에서 디 블로킹 필터 프로세스 이전에 재구성된 루마 샘플과 동일하게 설정된다.
3. x = 0..nTbW-1, y = 0..nTbH-1 인 다운 샘플링 된 병치된 루마 샘플 pDsY [x] [y]는 다음과 같이 유도된다:
- sps_cclm_colocated_chroma_flag가 1이면, 다음이 적용된다:
- x = 1..nTbW-1, y = 1..nTbH-1 인 pDsY [x] [y]는 다음과 같이 유도된다:
pDsY [x] [y] =(pY [2 * x] [2 * y-1] +
pY [2 * x-1] [2 * y]+4 * pY [2 * x] [2 * y]+pY [2 * x+1] [2 * y]+ (8-163)
pY [2 * x] [2 * y+1]+4) >> 3
- availL이 TRUE이면, y = 1..nTbH-1 인 pDsY [0] [y]는 다음과 같이 유도된다:
pDsY [0] [y] =(pY [0] [2 * y-1] +
pY [-1] [2 * y]+4 * pY [0] [2 * y]+pY [1] [2 * y]+ (8-164)
pY [0] [2 * y+1]+4) >> 3
- 그렇지 않으면, y = 1..nTbH-1 인 pDsY [0] [y]는 다음과 같이 유도된다:
pDsY [0] [y] =(pY [0] [2 * y-1]+2 * pY [0] [2 * y]+pY [0] [2 * y+1]+2) >> 2 (8-165)
- availT가 TRUE이면, x = 1..nTbW-1 인 pDsY [x] [0]은 다음과 같이 유도된다:
pDsY [x] [0] =(pY [2 * x] [-1] +
pY [2 * x-1] [0]+4 * pY [2 * x] [0]+pY [2 * x+1] [0]+ (8-166)
pY [2 * x] [1]+4) >> 3
- 그렇지 않으면, x = 1..nTbW-1 인 pDsY [x] [0]은 다음과 같이 유도된다:
pDsY [x] [0] =(pY [2 * x-1] [0]+2 * pY [2 * x] [0]+pY [2 * x+1] [0]+2) >> 2 (8-167)
- availL이 TRUE이고 availT가 TRUE이면 pDsY [0] [0]은 다음과 같이 유도된다:
pDsY [0] [0] =(pY [0] [-1] +
pY [-1] [0]+4 * pY [0] [0]+pY [1] [0]+ (8-168)
pY [0] [1]+4) >> 3
- 그렇지 않으면, availL이 TRUE이고 availT가 FALSE이면 pDsY [0] [0]은 다음과 같이 유도된다:
pDsY [0] [0] =(pY [-1] [0]+2 * pY [0] [0]+pY [1] [0]+2) >> 2 (8-169)
- 그렇지 않으면, availL이 FALSE이고 availT가 TRUE이면 pDsY [0] [0]은 다음과 같이 유도된다:
pDsY [0] [0] =(pY [0] [-1]+2 * pY [0] [0]+pY [0] [1]+2) >> 2 (8-170)
- 그렇지 않으면(availL은 FALSE와 availT는 FALSE와 같음), pDsY [0] [0]은 다음과 같이 유도된다:
pDsY [0] [0] = pY [0] [0] (8-171)
- 그렇지 않으면, 다음이 적용된다:
- x = 1..nTbW-1, y = 0..nTbH-1 인 pDsY [x] [y]는 다음과 같이 유도된다:
pDsY [x] [y] =(pY [2 * x-1] [2 * y]+pY [2 * x-1] [2 * y+1] +
2 * pY [2 * x] [2 * y]+2 * pY [2 * x] [2 * y+1]+ (8-172)
pY [2 * x+1] [2 * y]+pY [2 * x+1] [2 * y+1]+4) >> 3
- availL이 TRUE이면 y = 0..nTbH-1 인 pDsY [0] [y]는 다음과 같이 유도된다:
pDsY [0] [y] =(pY [-1] [2 * y]+pY [-1] [2 * y+1] +
2 * pY [0] [2 * y]+2 * pY [0] [2 * y+1]+ (8-173)
pY [1] [2 * y]+pY [1] [2 * y+1]+4) >> 3
- 그렇지 않으면, y = 0..nTbH-1 인 pDsY [0] [y]는 다음과 같이 유도된다:
pDsY [0] [y] =(pY [0] [2 * y]+pY [0] [2 * y+1]+1) >> 1 (8-174)
4. numSampL이 0보다 크면, 선택된 이웃 왼쪽 크로마 샘플 pSelC [idx]는 idx = 0 .. (cntL-1) 인 p [-1] [pickPosL [idx]]와 동일하게 설정되고 선택된 다운 샘플링 된 이웃 왼쪽 루마 샘플 pSelDsY [idx](idx = 0 .. (cntL-1))는 다음과 같이 유도된다:
- 변수 y는 pickPosL [idx]와 동일하게 설정된다.
- sps_cclm_colocated_chroma_flag가 1이면 다음이 적용된다:
- y> 0 || availTL == TRUE이면,
pSelDsY [idx] =(pY [-2] [2 * y-1] +
pY [-3] [2 * y]+4 * pY [-2] [2 * y]+pY [-1] [2 * y]+ (8-175)
pY [-2] [2 * y+1]+4) >> 3
- 그렇지 않으면,
pSelDsY [idx] =(pY [-3] [0]+2 * pY [-2] [0]+pY [-1] [0]+2) >> 2 (8-177)
- 그렇지 않으면, 다음이 적용된다:
pSelDsY [idx] =(pY [-1] [2 * y]+pY [-1] [2 * y+1] +
2 * pY [-2] [2 * y]+2 * pY [-2] [2 * y+1]+ (8-178)
pY [-3] [2 * y]+pY [-3] [2 * y+1]+4) >> 3
5. numSampT가 0보다 크면, 선택된 이웃 상단 크로마 샘플 pSelC [idx]가 p [pickPosT [idx-cntL]] [-1]과 동일하게 설정되며, idx = cntL .. (cntL+cntT-1)이고, 그리고 idx = cntL .. (cntL+cntT-1) 인 다운 샘플링 된 이웃 위쪽 루마 샘플 pSelDsY [idx]는 다음과 같이 지정된다:
- 변수 x는 pickPosT [idx-cntL]과 동일하게 설정된다.
- sps_cclm_colocated_chroma_flag가 1이면 다음이 적용된다:
- x> 0 인 경우:
- bCTUboundary가 FALSE 인 경우 다음이 적용된다:
pSelDsY [idx] =(pY [2 * x] [-3] +
pY [2 * x-1] [-2]+4 * pY [2 * x] [-2]+pY [2 * x+1] [-2]+ (8-179)
pY [2 * x] [-1]+4) >> 3
- 그렇지 않으면(bCTUboundary가 TRUE와 같음), 다음이 적용된다:
pSelDsY [idx] =(pY [2 * x-1] [-1] +
2 * pY [2 * x] [-1]+ (8-180)
pY [2 * x+1] [-1]+2) >> 2
- 그렇지 않으면:
- availTL이 TRUE이고 bCTUboundary가 FALSE 인 경우 다음이 적용된다:
pSelDsY [idx] =(pY [0] [-3] +
pY [-1] [-2]+4 * pY [0] [-2]+pY [1] [-2]+ (8-181)
pY [0] [-1]+4) >> 3
- 그렇지 않으면, availTL이 TRUE이고 bCTUboundary가 TRUE이면 다음이 적용된다:
pSelDsY [idx] =(pY [-1] [-1] +
2 * pY [0] [-1]+ (8-182)
pY [1] [-1]+2) >> 2
- 그렇지 않으면, availTL이 FALSE이고 bCTUboundary가 FALSE이면 다음이 적용된다:
pSelDsY [idx] =(pY [0] [-3]+2 * pY [0] [-2]+pY [0] [-1]+2) >> 2 (8-183)
- 그렇지 않으면(availTL은 FALSE와 bCTUboundary는 TRUE와 같음) 다음이 적용된다:
pSelDsY [idx] = pY [0] [-1] (8-184)
- 그렇지 않으면, 다음이 적용된다:
- x> 0 인 경우:
- bCTUboundary가 FALSE 인 경우 다음이 적용된다:
pSelDsY [idx] =(pY [2 * x-1] [-2]+pY [2 * x-1] [-1] +
2 * pY [2 * x] [-2]+2 * pY [2 * x] [-1]+ (8-185)
pY [2 * x+1] [-2]+pY [2 * x+1] [-1]+4) >> 3
- 그렇지 않으면(bCTUboundary가 TRUE와 같음) 다음이 적용된다:
pSelDsY [idx] =(pY [2 * x-1] [-1] +
2 * pY [2 * x] [-1]+ (8-186)
pY [2 * x+1] [-1]+2) >> 2
- 그렇지 않으면:
-availTL이 TRUE이고 bCTUboundary가 FALSE 인 경우 다음이 적용된다:
pSelDsY [idx] =(pY [-1] [-2]+pY [-1] [-1] +
2 * pY [0] [-2]+2 * pY [0] [-1]+ (8-187)
pY [1] [-2]+pY [1] [-1]+4) >> 3
- 그렇지 않으면, availTL이 TRUE이고 bCTUboundary가 TRUE이면 다음이 적용된다:
pSelDsY [idx] =(pY [-1] [-1] +
2 * pY [0] [-1]+ (8-188)
pY [1] [-1]+2) >> 2
- 그렇지 않으면, availTL이 FALSE이고 bCTUboundary가 FALSE이면 다음이 적용된다:
pSelDsY [idx] =(pY [0] [-2]+pY [0] [-1]+1) >> 1 (8-189)
- 그렇지 않으면(availTL은 FALSE와 bCTUboundary는 TRUE와 같음) 다음이 적용된다:
pSelDsY [idx] = pY [0] [-1] (8-190)
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이면 다음이 적용된다:
k = 0 (8-208)
a = 0 (8-209)
b = 1 <<(BitDepthC-1)
(8-210)
- 그렇지 않으면, 다음이 적용된다:
diff = maxY-minY (8-211)
- diff가 0이 아닌 경우 다음이 적용된다:
diffC = maxC-minC (8-212)
x = 바닥(Log2(차이)) (8-213)
normDiff =((diff << 4) >> x) & 15 (8-214)
x+=(normDiff! = 0)? 1: 0 (8-215)
y = 바닥(Log2(Abs(diffC)))+1 (8-216)
a =(diffC *(divSigTable [normDiff] | 8)+2y-1) >> y (8-217)
k =((3+x-y) <1)? 1: 3+x-y (8-218)
a =((3+x-y) <1)? Sign(a) * 15: a (8-219)
b = minC-((a * minY) >> k) (8-220)
여기서 divSigTable []은 다음과 같이 지정된다:
divSigTable [] = {0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0} (8-221)
- 그렇지 않으면(diff가 0과 같음) 다음이 적용된다:
k = 0 (8-222)
a = 0 (8-223)
b = minC (8-224)
8. x = 0..nTbW-1, y = 0 .. nTbH-1 인 예측 샘플 predSamples [x] [y]는 다음과 같이 유도된다:
predSamples [x] [y] = Clip1C((((pDsY [x] [y] * a) >> k)+b) (8-225)
위에서 설명된 예는 비디오 인코더 및/또는 디코더에서 구현될 수 있는 방법(1800 내지 2930)과 같은 아래 설명된 방법의 맥락에서 통합될 수 있다.
도 18은 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(1800)은 단계(1802)에서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환(conversion)을 위해, 이웃 크로마 샘플 그룹으로부터의 두 개의 크로마 샘플에 기초하여 크로스 컴포넌트 선형 모델의 파라미터를 결정하는 단계 - 두 개의 크로마 샘플은 위치 규칙에 기초하여 그룹으로부터 선택됨 - 를 포함한다. 방법(1800)은 단계(1804)에서 결정하는 단계에 기초하여 변환을 수행하는 단계를 더 포함한다.
도 19a는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(1900)은 단계(1902)에서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 크로마 샘플의 위치에 기초하여 선택된 크로마 샘플에 기초하여 크로스 컴포넌트 선형 모델의 파라미터 결정하는 단계 - 선택된 크로마 샘플은 이웃 크로마 샘플의 그룹으로부터 선택됨 - 를 포함한다. 방법(1900)은 단계(1804)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 더 포함한다.
도 19b는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(1910)은 단계(1912)에서, 현재 비디오 블록에 대해, 선형 모델의 파라미터에 대한 값의 세트를 유도하는 데 사용되는 이웃 크로마 샘플 그룹을 결정하는 단계 - 현재 비디오 블록의 너비와 높이는 각각 W와 H이고, 및 이웃 크로마 샘플의 그룹은 이웃 크로마 샘플보다 2xW 위쪽 또는 이웃 크로마 샘플보다 2xH 왼쪽에 위치하는 적어도 하나의 샘플을 포함함 - 를 포함한다. 방법(1910)은 단계(1914)에서, 선형 모델에 기초하여, 현재 비디오 블록과 현재 비디오 블록을 포함하는 비디오의 코딩 된 표현 사이의 변환을 수행하는 단계를 더 포함한다.
도 20a는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2000)은 단계(2002)에서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 다중 파라미터 세트를 결정하는 단계 - 각각의 파라미터 세트는 크로스 컴포넌트 선형 모델(CCLM)을 정의하고 및 대응하는 크로마 샘플 위치에서 대응하는 크로마 샘플 그룹으로부터 유도됨 - 를 포함한다. 방법(2000)은 단계(2006)에서, 다중 파라미터 세트에 기초하여, 최종 CCLM에 대한 파라미터를 결정하는 단계를 더 포함한다. 방법(2000)은 단계(2006)에서, 최종 CCLM에 기초하여 변환을 수행하는 단계를 더 포함한다.
도 20b는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2010)은 단계(2012)에서, 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 이웃 루마 및 크로마 샘플에서 선택된 N 개의 그룹의 크로마 및 루마 샘플의 최대 및 최소 값에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계를 포함한다. 방법(2010)은 단계(2014)에서, CCLM을 사용하여 변환을 수행하는 단계를 더 포함한다.
도 21은 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2100)은 단계(2102)에서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 두 개의 크로마 샘플과 대응하는 두 개의 루마 샘플에 의해 완전히 결정 가능한 크로스 컴포넌트 선형 모델의 파라미터를 결정하는 단계를 포함한다. 방법(2100)은 단계(2104)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 더 포함한다.
도 22는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2200)은 단계(2202)에서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 두 개의 크로마 샘플 값과 두 개의 루마 샘플 값에 따라 엔트리가 검색되는 파라미터 테이블을 사용하여 크로스 컴포넌트 선형 모델의 파라미터를 결정하는 단계를 포함한다. 방법(220)은 단계(2204)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 더 포함한다.
도 23a는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2310)은 단계(2312)에서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 다중 크로스 컴포넌트 선형 모델(MCCLM)의 예측 결과의 조합으로 현재 비디오 블록의 위치(x, y)에서 크로마 샘플의 최종 예측 P(x, y)를 결정하는 단계 - MCCLM은 크로마 샘플의 위치(x, y)에 기초하여 선택됨 - 를 포함한다. 방법(2310)은 단계(2314)에서, 최종 예측에 기초하여 변환을 수행하는 단계를 더 포함한다.
도 23b는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2320)은 단계(2322)에서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 왼쪽 이웃 샘플만을 사용하는 제1 크로스 컴포넌트 선형 모델(CCLM)이 현재 비디오 블록의 샘플을 예측하는 데 사용되는지 여부에 대한 제1 결정 및/또는 현재 비디오 블록의 샘플을 예측하기 위해 위쪽 이웃 샘플만을 사용하는 제2 크로스 컴포넌트 선형 모델(CCLM)이 사용되는지 여부에 관한 제2 결정을 수행하는 단계를 포함한다. 방법(2320)은 단계(2324)에서, 제1 결정 및/또는 제2 결정에 기초하여 변환을 수행하는 단계를 더 포함한다.
도 24a는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2410)은 단계(2412)에서, 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 코딩 된 표현에서 산술 코딩(arithmetic coding)을 사용하여 플래그(flag)를 코딩하는 데 사용되는 컨텍스트(context)를 결정하는 단계 - 컨텍스트는 현재 비디오 블록의 왼쪽 상단 이웃 블록이 크로스 컴포넌트 선형 모델(CCLM) 예측 모드를 사용하여 코딩 되는지 여부에 기초함 - 를 포함한다. 방법(2410)은 단계(2414)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다. 일부 구현에서, 플래그는 CCLM 예측 모드가 현재 비디오 블록에 적용되는지 여부를 나타내기 위해 시그널링되고, 및 CCLM 예측 모드는 다른 컴포넌트로부터 크로마 컴포넌트의 예측 값을 유도하기 위해 선형 모드를 사용한다.
도 24b는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2420)은 단계(2422)에서, 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 하나 이상의 이웃 블록의 코딩 모드에 기초하여 유도 모드(derived mode)(DM 모드) 및 선형 모드(linear mode)(LM 모드)의 하나 이상의 표시에 대한 코딩 순서를 결정하는 단계를 포함한다. 방법(2420)은 단계(2424)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다. 일부 구현에서, 선형 모드는 다른 컴포넌트로부터 크로마 컴포넌트의 예측 값을 유도하고, DM 모드는 다른 컴포넌트로부터 크로마 컴포넌트의 인트라 예측 모드를 유도한다.
도 24c는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2430)은 단계(2432)에서, 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 정제된 이웃 루마 샘플 및 크로마 샘플에 기초하여 선형 모델 예측 또는 크로스 컬러 컴포넌트 예측을 위한 파라미터를 결정하는 단계를 포함한다. 방법(2430)은 단계(2434)에서, 현재 비디오 블록의 파라미터 및 정제된 내부 루마 샘플에 기초하여 현재 비디오 블록의 크로마 컴포넌트의 예측 값을 유도하는 단계를 포함한다. 방법 (2430)은 단계(2436)에서 예측 값에 기초하여 변환을 수행하는 단계를 포함한다.
도 24d는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2440)은 단계(2442)에서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 가장 큰 또는 가장 작은 이웃 샘플의 위치에 기초하여 이웃 샘플을 선택함으로써 선형 모델 예측 또는 크로스 컬러 컴포넌트 예측(cross-color component prediction)을 위한 파라미터를 결정하는 단계를 포함한다. 방법 (2440)은 단계(2444)에서, 현재 비디오 블록의 파라미터 및 내부 루마 샘플에 기초하여 현재 비디오 블록의 크로마 샘플의 예측 값을 유도하는 단계를 더 포함한다. 방법 (2440)은 단계(2446)에서 예측 값에 기초하여 변환을 수행하는 단계를 더 포함한다.
도 24e는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2450)은 단계(2452)에서, 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 메인 컬러 컴포넌트(main color component)와 종속 컬러 컴포넌트(dependent color component)에 기초하여 선형 모델 예측 또는 크로스 컬러 컴포넌트 예측을 위한 파라미터를 결정하는 단계 - 메인 컬러 컴포넌트는 루마 컬러 컴포넌트 및 크로마 컬러 컴포넌트 중 하나로 선택되고 및 종속 컬러 컴포넌트는 루마 컬러 컴포넌트 및 크로마 컬러 컴포넌트 중 다른 것으로 선택됨 - 를 포함한다. 방법(2450)은 단계(2454)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 더 포함한다.
도 25a는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2510)은 단계(2512)에서, 현재 비디오 블록의 이웃 블록의 크로마 및 루마 샘플에 대해 다운 샘플링을 수행하는 단계를 포함한다. 방법(2510)은 단계(2514)에서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 다운 샘플링 된 크로마 및 다운 샘플링으로부터 획득된 루마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계를 포함한다. 방법(2510)은 단계(2516)에서, 현재 비디오 블록의 예측 값을 유도하기 위해 현재 비디오 블록에 대응하는 루마 블록에 위치한 루마 샘플에 CCLM을 적용하는 단계를 더 포함한다. 방법 (2015)은 단계(2518)에서 예측 값에 기초하여 변환을 수행하는 단계를 더 포함한다.
도 25b는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2520)은 단계(2522)에서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 이웃 크로마 샘플 그룹에서 두 개 이상의 크로마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계 - 두 개 이상의 크로마 샘플은 현재 비디오 블록의 코딩 모드에 기초하여 선택됨 - 를 포함한다. 방법(2520)은 단계(2524)에서, 현재 비디오 블록의 예측 값을 유도하기 위해 현재 비디오 블록에 대응하는 루마 블록에 위치한 루마 샘플에 CCLM을 적용하는 단계를 더 포함한다. 방법(2520)은 단계(2526)에서 예측 값에 기초하여 변환을 수행하는 단계를 더 포함한다.
도 26a는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2610)은 단계(2612)에서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, W 개의 이용 가능한 위쪽 이웃 샘플에 기초하여, W는 정수인, 선택된 크로마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계를 포함한다. 방법(2610)은 단계(2614)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 더 포함한다.
도 26b는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2620)은 단계(2622)에서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 H 개의 이용 가능한 왼쪽 이웃 샘플에 기초하여 선택된 크로마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계를 포함한다. 방법(2620)은 단계(2622)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 더 포함한다.
도 27a는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2710)은 단계(2712)에서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 두 개 또는 네 개의 크로마 샘플 및/또는 대응하는 루마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계를 포함한다. 방법(2710)은 단계(2714)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 더 포함한다.
도 27b는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2720)은 단계(2722)에서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 위치 규칙에 기초하여 크로마 샘플을 선택하는 단계 - 크로마 샘플은 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 유도하는 데 사용됨 - 를 포함한다. 방법(2720)은 단계(2724)에서, 결정하는 단계 기초하여 변환을 수행하는 단계를 더 포함한다. 예에서, 위치 규칙은 현재 비디오 블록의 위쪽 행 및/또는 왼쪽 열 내에 위치한 크로마 샘플을 선택하도록 지정한다.
도 28a는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2810)은 단계(2812)에서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 루마 샘플이 다운 샘플링 되는 위치를 결정하는 단계 - 다운 샘플링 된 루마 샘플은 크로마 샘플 및 다운 샘플링 된 루마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 데 사용되고, 다운 샘플링 된 루마 샘플은 CCLM의 파라미터를 유도하는데 사용되는 크로마 샘플의 위치에 대응하는 위치에 있음 - 를 포함한다. 방법(2810)은 단계(2814)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 더 포함한다.
도 28b는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2820)은 단계(2822)에서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록과 연관된 코딩 조건에 기초하여 크로마 샘플 및 루마 샘플을 사용하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 유도하는 방법을 결정하는 단계를 포함한다. 방법(2820)은 단계(2824)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 더 포함한다.
도 28c는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2830)은 단계(2832)에서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 이웃 블록의 왼쪽 이웃 블록 및 위쪽 이웃 블록의 가용성에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 유도하는 데 사용되는 루마 컴포넌트 및 크로마 컴포넌트의 최대 값 및/또는 최소 값을 유도할지 여부를 결정하는 단계를 포함한다. 방법(2830)은 단계(2834)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 더 포함한다.
도 29a는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2910)은 단계(2912)에서, 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 선택된 이웃 샘플 및 레퍼런스 블록의 대응하는 이웃 샘플에 기초하여 선형 모델을 사용하여 코딩 툴의 파라미터를 결정하는 단계를 포함한다. 방법(2910)은 단계(2914)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 더 포함한다.
도 29b는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2920)은 단계(2922)에서, 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 N 개의 이웃 샘플 및 레퍼런스 블록의 N 개의 대응하는 이웃 샘플에 기초하여 로컬 조명 보상(local illumination compensation)(LIC) 툴의 파라미터를 결정하는 단계 - 현재 비디오 블록의 N 개의 이웃 샘플은 N 개의 이웃 샘플의 위치에 기초하여 선택됨 - 를 포함한다. 방법(2920)은 단계(2924)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 더 포함한다. LIC 툴은 변환 동안 현재 비디오 블록에서 조명 변화의 선형 모델을 사용한다.
도 29c는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(2930)은 단계(2932)에서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 크로마 샘플 및 대응하는 루마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계를 포함한다. 방법(2930)은 단계(2934)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 더 포함한다. 예에서, 크로마 샘플 중 일부는 패딩 연산에 의해 획득되고 크로마 샘플 및 대응하는 루마 샘플은 두 개의 어레이 G0 및 G1로 그룹화되고, 각 어레이는 두 개의 크로마 샘플과 대응하는 루마 샘플을 포함한다.
4 공개된 기술의 구현 예
도 30a는 비디오 처리 장치(3000)의 블록도이다. 장치(3000)는 여기에 설명된 방법 중 하나 이상을 구현하는 데 사용될 수 있다. 장치(3000)는 스마트 폰, 태블릿, 컴퓨터, 사물 인터넷(IoT) 수신기 등으로 구현될 수 있다. 장치(3000)는 하나 이상의 프로세서(3002), 하나 이상의 메모리(3004) 및 비디오 처리 하드웨어(3006)를 포함할 수 있다. 프로세서(들)(3002)는 본 문서에 설명된 하나 이상의 방법(도 18 내지 29c에 도시된 방법을 포함하지만 이에 제한되지 않음)을 구현하도록 구성될 수 있다. 메모리(메모리)(3004)는 여기에 설명된 방법 및 기술을 구현하는 데 사용되는 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 처리 하드웨어(3006)는 본 문서에 설명된 일부 기술을 하드웨어 회로에서 구현하는 데 사용될 수 있다.
도 30b는 개시된 기술이 구현될 수 있는 비디오 처리 시스템의 블록도의 다른 예이다. 도 30b는 여기에 개시된 다양한 기술이 구현될 수 있는 예시적인 비디오 처리 시스템(3100)을 보여주는 블록도이다. 다양한 구현은 시스템(3100)의 구성 요소의 일부 또는 전부를 포함할 수 있다. 시스템(3100)은 비디오 콘텐츠를 수신하기 위한 입력(3102)을 포함할 수 있다. 비디오 콘텐츠는 원시 또는 압축되지 않은 형식, 예를 들어 8 비트 또는 10 비트 다중 구성 요소 픽셀 값으로 수신될 수 있거나 압축 또는 인코딩 된 형식 일 수 있다. 입력(3102)은 네트워크 인터페이스, 주변 버스 인터페이스 또는 스토리지 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예로는 이더넷, 수동 광 네트워크(PON) 등과 같은 유선 인터페이스 및 Wi-Fi 또는 셀룰러 인터페이스와 같은 무선 인터페이스가 있다.
시스템(3100)은 본 문서에 설명된 다양한 코딩 또는 인코딩 방법을 구현할 수 있는 코딩 컴포넌트(3104)를 포함할 수 있다. 코딩 컴포넌트(3104)는 비디오의 코딩 된 표현을 생성하기 위해 입력(3102)으로부터 코딩 컴포넌트(3104)의 출력으로 비디오의 평균 비트 레이트를 감소시킬 수 있다. 따라서 코딩 기술은 비디오 압축 또는 비디오 트랜스 코딩 기술이라고도 한다. 코딩 컴포넌트(3104)의 출력은 컴포넌트(3106)에 의해 표현된 바와 같이 연결된 통신을 통해 저장되거나 전송될 수 있다. 입력(3102)에서 수신된 비디오의 저장 또는 통신된 비트 스트림(또는 코딩 된) 표현은 디스플레이 인터페이스(3110)로 전송되는 픽셀 값 또는 디스플레이 가능한 비디오를 생성하기 위해 컴포넌트(3108)에 의해 사용될 수 있다. 비트 스트림 표현에서 사용자가 볼 수 있는 비디오를 생성하는 프로세스를 비디오 압축 해제라고 한다. 또한, 특정 비디오 처리 연산을 "코딩" 연산 또는 툴이라 한다. 코딩 툴 또는 연산은 인코더에서 사용되고, 코딩의 결과를 역전시키는 대응하는 디코딩 툴 또는 연산은 디코더에 의해 수행될 것임을 알 것이다.
주변 장치 버스 인터페이스 또는 디스플레이 인터페이스의 예로는 범용 직렬 버스(Universal Serial Bus)(USB), 고선명 멀티미디어 인터페이스(High Definition Multimedia Interface)(HDMI) 또는 디스플레이 포트(Displayport) 등이 있다. 스토리지 인터페이스의 예로는 SATA(Serial Advanced Technology Attachment), PCI, IDE 인터페이스 등이 있다. 본 문서에 설명된 기술은 디지털 데이터 처리 및/또는 비디오 디스플레이를 수행할 수 있는 휴대 전화, 랩톱, 스마트 폰 또는 기타 장치와 같은 다양한 전자 장치에 구현될 수 있다.
일부 실시 예에서, 비디오 코딩 방법은 도 30a 또는 30b와 관련하여 설명된 하드웨어 플랫폼상에서 구현되는 장치를 사용하여 구현될 수 있다.
다양한 기술 및 실시 예는 다음 항목 기반 형식을 사용하여 설명될 수 있다.
제1 항목 세트는, 예를 들어 예 1.a 내지 d 및 j를 포함하여 이전 섹션에 나열된 개시된 기술의 특정 특징 및 측면을 설명한다.
1. 비디오 처리 방법에 있어서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환(conversion)을 위해, 이웃 크로마 샘플 그룹으로부터의 두 개의 크로마 샘플에 기초하여 크로스 컴포넌트 선형 모델의 파라미터를 결정하는 단계 - 두 개의 크로마 샘플은 위치 규칙에 기초하여 그룹으로부터 선택됨 -; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
2. 제1항목의 방법에 있어서, 파라미터는 두 개의 크로마 샘플의 루마 샘플에 기초하여 결정되는 값을 가진다.
3. 제2항목의 방법에 있어서, 루마 샘플은 크로스 컴포넌트 선형 모델의 파라미터를 유도하는 데 사용되는 다운 샘플링 된다.
4. 제1항목의 방법에 있어서, 파라미터는 2S 위치에서 크로마 샘플에 기초하여 결정되는 값을 가지며, S는 정수이다.
5. 제1항목의 방법에 있어서, 크로마 블록의 왼쪽 상단 샘플은 (x, y)이고, 크로마 블록의 너비와 높이는 각각 W 및 H이며, 이웃 크로마 샘플 그룹은: 좌표 (x-1, y)의 샘플 A, 좌표 (x-1, y+H/2-1)의 샘플 B, 좌표 (x-1, y+H/2)의 샘플 C, 좌표 (x-1, y+H-1)의 샘플 D, 좌표 (x-1, y+H)의 샘플 E, 좌표 (x-1, y+H+H/2-1)의 샘플 F, 좌표 (x-1, y+H+H/2)의 샘플 G, 좌표 (x-1, y+H+H-1)의 샘플 I, 좌표 (x, y-1)의 샘플 J, 좌표 (x+W/2-1, y-1)의 샘플 K, 좌표 (x+W/2, y-1)의 샘플 L, 좌표 (x+W-1, y-1)의 샘플 M, 좌표 (x+W, y-1)의 샘플 N, 좌표 (x+W+W/2-1, y-1)의 샘플 O, 좌표 (x+W+W/2, y-1)의 샘플 P, 및 좌표 (x+W+W-1, y-1)의 샘플 Q를 포함한다.
6. 제5항목의 방법에 있어서, 위치 규칙은 R 개의 크로마 샘플이 샘플 A, D, J 및 M에서 선택되도록 지정한다.
7. 제5항목의 방법에 있어서, 위치 규칙은 R 개의 크로마 샘플이 샘플 A, B, C, D, J, K, L 및 M에서 선택되도록 지정한다.
8. 제5항목의 방법에 있어서, 위치 규칙은 R 개의 크로마 샘플이 샘플 A, I, J 및 Q에서 선택되도록 지정한다.
9. 제5항목의 방법에 있어서, 위치 규칙은 R 개의 크로마 샘플이 샘플 A, B, D, I, J, K, M 및 Q에서 선택되도록 지정한다.
10. 제5항목의 방법에 있어서, 위치 규칙은 R 개의 크로마 샘플이 샘플 A, B, D, F, J, K, M 및 O에서 선택되도록 지정한다.
11. 제5항목의 방법에 있어서, 위치 규칙은 R 개의 크로마 샘플이 샘플 A, C, G, I, J, L, P 및 Q에서 선택되도록 지정한다.
12. 제5항목의 방법에 있어서, 위치 규칙은 R 개의 크로마 샘플이 샘플 A, C, E, G, J, L, N 및 P에서 선택되도록 지정한다.
13. 제5항목의 방법에 있어서, 위치 규칙은 R 개의 크로마 샘플이 샘플 J, K, L 및 M에서 선택되도록 지정한다.
14. 제5항목의 방법에 있어서, 위치 규칙은 R 개의 크로마 샘플이 샘플 J, L, N 및 Q에서 선택되도록 지정한다.
15. 제5항목의 방법에 있어서, 위치 규칙은 R 개의 크로마 샘플이 샘플 J, K, L, M, N, O, P 및 Q에서 선택되도록 지정한다.
16. 제5항목의 방법에 있어서, 위치 규칙은 R 개의 크로마 샘플이 샘플 A, B, C, D, E, F, G 및 I에서 선택되도록 지정한다.
17. 제5항목의 방법에 있어서, 위치 규칙은 R 개의 크로마 샘플이 샘플 J, K, L, M, N, O, P 및 Q에서 선택되도록 지정한다.
18. 제5항목의 방법에 있어서, 위치 규칙은 R 개의 크로마 샘플이 샘플 A, B, C, D, E, F, G 및 I에서 선택되도록 지정하고 및 R 개의 크로마 샘플의 나머지는 샘플 J, K, L, M, N, O, P 및 Q에서 선택된다.
19. 제5항목 내지 제18항목 중 어느 한 항목의 방법에 있어서, R 개의 크로마 샘플은 동일한 대응하는 루마 값을 가지고, 방법은 추가 크로마 샘플을 확인하는 단계를 더 포함한다.
20. 제1항목의 방법에 있어서, 이웃 크로마 샘플 그룹의 크로마 샘플은 파라미터에 대한 제1 값의 세트를 결정하기 위해 최소 및 최대 대응하는 루마 값을 갖는 두 개의 크로마 샘플을 검색한다.
21. 제1항목의 방법에 있어서, 좌표(x, y)의 위쪽 이웃 샘플은 x % K = 0, K가 2, 4, 6 또는 8이고 %가 모듈 연산자인 경우에만 그룹에 있다.
22. 제1항목의 방법에 있어서, 좌표(x, y)의 왼쪽 이웃 샘플은 x % K = 0, K가 2, 4, 6 또는 8이고 %가 모듈 연산자인 경우에만 그룹에 있다.
23. 제1항목의 방법에 있어서, 두 개의 크로마 샘플은 이웃 블록의 가용성에 기초하여 선택된다.
24. 제1항목 내지 제23항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 현재 블록으로부터 코딩 된 표현을 생성하는 단계를 포함한다.
25. 제1항목 내지 제23항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 코딩 된 표현으로부터 현재 블록을 생성하는 단계를 포함한다.
26. 프로세서 및 명령을 갖는 비 일시적 메모리를 포함하는 비디오 시스템 장치에 있어서, 명령이 프로세서에 의해 실행될 때, 명령은 프로세서로 하여금 제1항목 내지 제25항목 중 어느 한 항목의 방법을 구현하게 한다.
27. 비 일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램에 있어서, 컴퓨터 프로그램은 제1항목 내지 제25항목 중 어느 한 항목의 방법을 수행하기 위한 프로그램 코드를 포함한다.
28. 비 일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램에 있어서, 컴퓨터 프로그램은 제1항목 내지 제26항목 중 어느 한 항목의 방법을 수행하기 위한 프로그램 코드를 포함한다.
두 번째 항목 세트는 예를 들어 예 1.e-i 및 예 9를 포함하여 이전 섹션에 나열된 개시된 기술의 특정 특징 및 측면을 설명한다.
1. 비디오 처리 방법에 있어서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 크로마 샘플의 위치에 기초하여 선택된 크로마 샘플에 기초하여 크로스 컴포넌트 선형 모델의 파라미터 결정하는 단계 - 선택된 크로마 샘플은 이웃 크로마 샘플의 그룹으로부터 선택됨 -; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
2. 제1항목의 방법에 있어서, 적어도 하나의 이웃 크로마 샘플은 선택된 크로마 샘플에 속하지 않는다.
3. 제1항목의 방법에 있어서, 모든 선택된 크로마 이웃 샘플은, 현재 비디오 블록의 예측 모드가 왼쪽 이웃 샘플만을 사용하는 제1 선형 모드 인 경우, 현재 블록의 왼쪽에 있다.
4. 제1항목의 방법에 있어서, 모든 선택된 크로마 이웃 샘플은, 현재 비디오 블록의 예측 모드가 위쪽 이웃 샘플만을 사용하는 제2 선형 모드 인 경우, 현재 블록의 위쪽에 있다.
5. 제1항목 내지 제4항목 중 어느 한 항목의 방법에 있어서, 크로마 샘플의 위치는 크로마 블록의 폭 또는 높이에 기초하여 선택된다.
6. 제1항목의 방법에 있어서, 크로마 샘플의 위치는 비디오 파라미터 세트(VPS), 시퀀스 파라미터 세트(SPS), 픽처 파라미터 세트(PPS), 슬라이스 헤더, 타일 그룹 헤더, 타일, 코딩 유닛(CU), 코딩 트리 유닛(CTU) 또는 예측 유닛(PU)의 시그널링에 대응한다.
7. 제1항목의 방법에 있어서, 파라미터를 결정하는 단계는 최소 평균 제곱 방법에 추가로 기초한다.
8. 제1항목의 방법에 있어서, 파라미터를 결정하는 단계는 두 점 방법에 더 기초한다.
9. 비디오 처리 방법에 있어서, 현재 비디오 블록에 대해, 선형 모델의 파라미터에 대한 값의 세트를 유도하는 데 사용되는 이웃 크로마 샘플 그룹을 결정하는 단계 - 현재 비디오 블록의 너비와 높이는 각각 W와 H이고, 및 이웃 크로마 샘플의 그룹은 이웃 크로마 샘플보다 2xW 위쪽 또는 이웃 크로마 샘플보다 2xH 왼쪽에 위치하는 적어도 하나의 샘플을 포함함 -; 및 선형 모델에 기초하여, 현재 비디오 블록과 현재 비디오 블록을 포함하는 비디오의 코딩 된 표현 사이의 변환을 수행하는 단계를 포함한다.
10. 제8항목의 방법에 있어서, 현재 비디오 블록은 선형 내부 예측 모드를 사용하여 코딩 되고, 현재 비디오 블록의 왼쪽 상단 샘플은 (x, y)이고, 적어도 하나의 샘플은 (x-1, y+d)이고, d는 [T, S] 범위의 정수이고, 및 T 및 S는 정수이다.
11. 제9항목의 방법에 있어서, T <0 및 S>(2xH-1)이다.
12. 제9항목의 방법에 있어서, T = -4 및 S = 3 Х H이다.
13. 제9항목의 방법에 있어서, T = 0 및 S = max(2 Х W, W+H)이다.
14. 제9항목의 방법에 있어서, T = 0이고 S = 4 Х H이다.
15. 제8항목의 방법에 있어서, 현재 비디오 블록은 선형 내부 예측 모드를 사용하여 코딩 되고, 현재 비디오 블록의 왼쪽 상단 샘플은 (x, y)이고, 적어도 하나의 샘플은 (x+d, y-1)이고, d는 [T, S] 범위의 정수이고, 및 T 및 S는 정수이다.
16. 제15항목의 방법에 있어서, T <0 및 S>(2 Х W-1)이다
17. 제15항목의 방법에 있어서, T = -4 및 S = 3 Х W이다.
18. 제15항목의 방법에 있어서, T = 0 및 S = max(2 Х W, W+H)이다.
19. 제15항목의 방법에 있어서, T = 0 및 S = 4 Х W이다.
20. 제1항목 내지 제19항목 중 한 항목의 방법에 있어서, 변환을 수행하는 단계는 현재 블록으로부터 코딩 된 표현을 생성하는 단계를 포함한다.
21. 제1항목 내지 제19항목 중 한 항목의 방법에 있어서, 변환을 수행하는 단계는 코딩 된 표현으로부터 현재 블록을 생성하는 단계를 포함한다.
22. 프로세서 및 명령을 갖는 비 일시적 메모리를 포함하는 비디오 시스템 장치에 있어서, 명령이 프로세서에 의해 실행될 때, 명령은 프로세서로 하여금 제1항목 내지 제21항목 중 어느 한 항목의 방법을 구현하게 한다.
23. 비 일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램에 있어서, 컴퓨터 프로그램은 제1항목 내지 제21항목 중 어느 한 항목의 방법을 수행하기 위한 프로그램 코드를 포함한다.
세 번째 항목 세트는, 예를 들어 예 2 및 예 5를 포함하여 이전 섹션에 나열된 개시된 기술의 특정 특징 및 측면을 설명한다.
1. 비디오 처리 방법에 있어서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 다중 파라미터 세트를 결정하는 단계 - 각각의 파라미터 세트는 크로스 컴포넌트 선형 모델(CCLM)을 정의하고 및 대응하는 크로마 샘플 위치에서 대응하는 크로마 샘플 그룹으로부터 유도됨 -; 다중 파라미터 세트에 기초하여, 최종 CCLM에 대한 파라미터를 결정하는 단계; 및 최종 CCLM에 기초하여 변환을 수행하는 단계를 포함한다.
2. 제1항목의 방법에 있어서, 최종 CCLM에 대한 파라미터는 다중 파라미터 세트에서 대응하는 파라미터의 평균으로 결정된다.
3. 제1항목의 방법에 있어서, 다중 파라미터 세트는 제1 세트(α1, β1) 및 제2 세트(α2, β2)를 포함하고 및 크로마 예측은 α1, β1, α2, β2의 파라미터에 기초하여 계산된다.
4. 제1항목의 방법에 있어서, 다중 파라미터 세트가 시프트 되고 결합되어 최종 CCLM을 형성한다.
5. 제1항목의 방법에 있어서, 다중 파라미터 세트에는 제1 크로마 샘플 그룹에서 유도된(α1, β1)의 제1 세트와 제2 크로마 샘플 그룹에서 유도된(α2, β2)의 제2 세트가 포함되고, 제1 그룹과 제2 그룹은 서로 다른 크로마 샘플 위치에 대응하는된다.
6. 제4항목의 방법에 있어서, 크로마 블록의 왼쪽 상단 샘플은 (x, y)이고 크로마 블록의 너비와 높이는 각각 W 및 H이고, 및 크로마 샘플 그룹은:
좌표 (x-1, y)를 갖는 샘플 A,
좌표 (x-1, y+H/2-1)를 갖는 샘플 B,
좌표 (x-1, y+H/2)를 갖는 샘플 C,
좌표 (x-1, y+H-1)를 갖는 샘플 D,
좌표 (x-1, y+H)를 갖는 샘플 E,
좌표 (x-1, y+H+H/2-1)를 갖는 샘플 F,
좌표 (x-1, y+H+H/2)를 갖는 샘플 G,
좌표 (x-1, y+H+H-1)를 갖는 샘플 I,
좌표 (x, y-1)를 갖는 샘플 J,
좌표 (x+W/2-1, y-1)를 갖는 샘플 K,
좌표 (x+W/2, y-1)를 갖는 샘플 L,
좌표 (x+W-1, y-1)를 갖는 샘플 M,
좌표 (x+W, y-1)를 갖는 샘플 N,
좌표 (x+W+W/2-1, y-1)를 갖는 샘플 O,
좌표 (x+W+W/2, y-1)를 갖는 샘플 P, 또는
좌표 (x+W+W-1, y-1)를 갖는 샘플 Q
중 적어도 하나를 포함한다.
7. 제6항목의 방법에 있어서, 제1 그룹은 샘플 A와 D를 포함하고 제2 그룹은 샘플 J와 M 또는 샘플 E와 I를 포함한다.
8. 제6항목의 방법에 있어서, 제1 그룹은 샘플 A와 I를 포함하고 제2 그룹은 샘플 J와 Q를 포함한다.
9. 제6항목의 방법에 있어서, 제1 그룹은 샘플 A와 B를 포함되고 제2 그룹은 샘플 C와 D를 포함한다.
10. 제6항목의 방법에 있어서, 제1 그룹은 J와 M을 포함하고 제2 그룹은 N과 Q를 포함한다.
11. 제6항목의 방법에 있어서, 제1 그룹은 J와 K를 포함하고 제2 그룹은 L과 M을 포함한다.
12. 비디오 처리 방법에 있어서, 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 이웃 루마 및 크로마 샘플에서 선택된 N 개의 그룹의 크로마 및 루마 샘플의 최대 및 최소 값에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계; 및 CCLM을 사용하여 변환을 수행하는 단계를 포함한다.
13. 제12항목의 방법에 있어서, N 개의 그룹의 크로마 및 루마 샘플은 S0, S1, ..., Sm으로 구성되며, 여기서 1 ≤ m ≤ N-1이고, m 및 N은 음이 아닌 정수이고, 최대 루마 값은 maxL = f1(maxLS0, maxLS1, ..., maxLSm)으로 계산되고, f1은 제1 함수이고 maxLSi는 복수의 그룹 중 그룹 Si의 최대 루마 값이고, 최대 크로마 값은 maxC = f2(maxCS0, maxCS1, ..., maxCSm)로 계산되고, f2는 제2 함수이고 maxCSi는 maxLSi에 대응하는 그룹 Si의 크로마 값이고, 최소 루마 값은 minL = f3(minLS0, minLS1, ..., minLSm)로 계산되고, f3은 제3 함수이고 minLSi는 그룹 Si의 최소 루마 값이고, 최소 크로마 값은 minC = f4(minCS0, minCS1, ..., minCSm)로 계산되고, f4는 제4 함수이고 minCSi는 minLSi에 대응하는 그룹 Si의 크로마 값이고, 및 선형 모델의 파라미터는 α =(maxC-minC)/(maxL-minL) 및 β = minC-αxminL로 계산되는 α 및 β를 포함한다.
14. 제13항목의 방법에 있어서, f1, f2, f3 및 f4는 평균화 함수이다.
15. 제13항목 또는 제14항목의 방법에 있어서, m = N-1이다.
16. 제13항목 또는 제14항목의 방법에 있어서, m = 1, S1 = SN-1이다.
17. 제13항목 또는 제14항목의 방법에 있어서, m = 0이다.
18. 제13항목 또는 제14항목의 방법에 있어서, S0은 현재 비디오 블록의 위쪽 행의 샘플을 포함하고, S1은 현재 비디오 블록의 왼쪽 행의 샘플을 포함한다.
19. 제13항목 또는 제14항목의 방법에 있어서, 현재 비디오 블록의 위쪽 행의 샘플에는 좌표 (x, y)가 있고, S0은 샘플의 제1 부분을 포함하고, 제1 부분의 각 샘플은 x % P = Q를 충족하고, S1은 샘플의 제2 부분을 포함하고, 제2 부분의 각 샘플은 x % P Q를 충족하고, 및 %는 모듈로 연산자(modulo operator)이고 P와 Q는 음이 아닌 정수이다.
20. 제13항목 또는 제14항목의 방법에 있어서, 현재 비디오 블록의 왼쪽 행의 샘플은 좌표 (x, y)를 가지고, S0은 샘플의 제1 부분을 포함하고, 제1 부분의 각 샘플은 y % P = Q를 충족하고, S1은 샘플의 제2 부분을 포함하고, 제2 부분의 각 샘플은 y % P Q를 충족하고, 및 %는 모듈로 연산자이고 P와 Q는 음이 아닌 정수이다.
21. 제19항목 또는 제20항목의 방법에 있어서, P = 2 및 Q = 1, 또는 P = 2 및 Q = 0, 또는 P = 4 및 Q = 0이다.
22. 제12항목 내지 제14항목 중 어느 한 항목의 방법에 있어서, 크로마 및 루마 샘플은 이웃 블록의 크로마 및 루마 샘플의 일부만을 포함한다.
23. 제13항목 내지 제22항목 중 어느 한 항목의 방법에 있어서, N은 미리 결정된다.
24. 제13항목 내지 제23항목 중 어느 한 항목의 방법에 있어서, N은 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 영상 파라미터 세트(PPS), 영상 헤더, 슬라이스 헤더, 타일 그룹 헤더, 하나 이상의 가장 큰 코딩 유닛 또는 하나 또는 더 많은 코딩 유닛에서 시그널링 된다.
25. 제12항목의 방법에 있어서, 각 그룹에 대한 크로마 및 루마 샘플은 현재 비디오 블록의 이웃 블록의 가용성에 기초하여 선택된다.
26. 제12항목의 방법에 있어서, 각 그룹에 대한 크로마 및 루마 샘플은 현재 비디오 블록의 너비와 높이에 기초하여 선택된다.
27. 제12항목의 방법에 있어서, 각 그룹에 대한 크로마 및 루마 샘플은 크로마 및 루마 샘플의 값에 기초하여 선택된다.
28. 제1항목 내지 제27항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 현재 블록으로부터 코딩 된 표현을 생성하는 단계를 포함한다.
29. 제1항목 내지 제27항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 코딩 된 표현으로부터 현재 블록을 생성하는 단계를 포함한다.
30. 프로세서 및 명령을 갖는 비 일시적 메모리를 포함하는 비디오 시스템 장치에 있어서, 명령이 프로세서에 의해 실행될 때, 명령은 프로세서로 하여금 제1항목 내지 제29항목 중 어느 한 항목의 방법을 구현하게 한다.
31. 비 일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램에 있어서, 컴퓨터 프로그램은 제1항목 내지 제29항목 중 어느 한 항목의 방법을 수행하기 위한 프로그램 코드를 포함한다.
네 번째 항목 세트는 예를 들어, 예 3.a-b 및 3.d를 포함하여 이전 섹션에 나열된 개시된 기술의 특정 특징 및 측면을 설명한다.
1. 비디오 처리 방법에 있어서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 두 개의 크로마 샘플과 대응하는 두 개의 루마 샘플에 의해 완전히 결정 가능한 크로스 컴포넌트 선형 모델의 파라미터를 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
2. 제1항목의 방법에 있어서, 두 개의 크로마 샘플은 C0 및 C1로 표시되고, 대응하는 루마 샘플은 L0 및 L1로 표시되고, 크로스 컴포넌트 선형 모델의 파라미터는 α 및 β로 표시되고, 및 α 및 β는 식: α =(C1 - C0)/(L1 - L0) 및 β = C0 α Х L0로 정의된다.
3. 제2항목의 방법에 있어서, L1이 L0과 같으면, α = 0이다.
4. 제2항목의 방법에 있어서, L1이 L0과 같으면, 크로스 컴포넌트 선형 모델 모드가 아닌 다른 내부 예측 모드가 사용된다.
5. 제2항목의 방법에 있어서, α는 나누기 연산을 제외하여 결정된다.
6. 제2항목의 방법에 있어서, α는 룩업 테이블이 없는 연산 - 연산은 나누기 연산을 제외한 연산임 - 을 사용하여 결정된다.
7. 제2항목의 방법에 있어서, 크로스 컴포넌트 선형 모델의 파라미터는 (L1-L0) 값에 기초하여 결정되는 값이다.
8. 제2항목의 방법에 있어서, α = Shift(C1 - C0, Floor(log2(L1 - L0)))이고, Shift(x, s) =(x+off) >> s 및 off는 정수이고, Floor(x)는 x의 정수 부분을 출력하는 플로어 함수이다.
9. 제2항목의 방법에 있어서, α = Shift(C1 - C0, Ceiling(log2(L1 - L0)))이고, Shift(x, s) =(x+off) >> s 및 off는 정수이고, Ceiling(x)는 x보다 크거나 같은 최소 정수를 출력하는 천장 함수이다.
10. 제8항목 또는 제9항목의 방법에 있어서, log2(x)의 값을 구하는 연산은 x의 최상위 자리의 위치를 확인함으로써 수행된다.
11. 제1항목의 방법에 있어서, 파라미터를 결정하는 단계는 K 비트 내에서 수행되고, K는 8, 10, 12, 16, 24 또는 32이다.
12. 제11항목의 방법에 있어서, 중간 변수는 K 비트 내에 있도록 잘리거나 오른쪽으로 시프트 한다.
13. 제1항목 내지 제12항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 현재 블록으로부터 코딩 된 표현을 생성하는 단계를 포함한다.
14. 제1항목 내지 제12항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 코딩 된 표현으로부터 현재 블록을 생성하는 단계를 포함한다.
15. 프로세서 및 명령을 갖는 비 일시적 메모리를 포함하는 비디오 시스템 장치에 있어서, 명령이 프로세서에 의해 실행될 때, 명령은 프로세서로 하여금 제1항목 내지 제14항목 중 어느 한 항목의 방법을 구현하게 한다.
16. 비 일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램에 있어서, 컴퓨터 프로그램은 제1항목 내지 제14항목 중 어느 한 항목의 방법을 수행하기 위한 프로그램 코드를 포함한다.
다섯 번째 항목 세트는 예를 들어 예 3.c를 포함하여 이전 섹션에 나열된 개시된 기술의 특정 특징 및 측면을 설명한다.
1. 비디오 처리 방법에 있어서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 두 개의 크로마 샘플 값과 두 개의 루마 샘플 값에 따라 엔트리가 검색되는 파라미터 테이블을 사용하여 크로스 컴포넌트 선형 모델의 파라미터를 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
2. 제1항목의 방법에 있어서, 파라미터 테이블의 크기는 2P보다 작은 V이고 P는 정수이다.
3. 제1항목의 방법에 있어서, 파라미터 테이블은 엔트리가 있으며, 각 엔트리는 F 비트 정수를 저장하고 F는 8 또는 16이다.
4. 제1항목의 방법에 있어서, 파라미터 테이블 M [k]는 M [k-Z] =((1 << S)+Off)/k, S는 정밀도를 정의하는 정수, Off는 오프셋, Z는 파라미터 테이블의 첫 번째 값이다.
5. 제1항목의 방법에 있어서, 두 개의 크로마 샘플은 C0 및 C1로 표시되고, 루마 샘플은 L0 및 L1로 표시되고, 크로스 컴포넌트 선형 모델의 파라미터는 α 및 β로 표시되고, α 및 β는 식: α =(C1- C0)/(L1-L0) 및 β = C0-α Х L0로 정의된다.
6. 제5항목의 방법에 있어서, k = Shift(L1 - L0, W) 및 k는 파라미터 테이블의 엔트리를 조회하는 데 사용되고, Shift(x, s) =(x+off) >> s이고, off는 정수이고, 및 W는 현재 비디오 블록의 너비이다.
7. 제6항목의 방법에 있어서, k-Z <0 또는 k-Z ≥V 일 때 α는 0이고, V는 파라미터 테이블의 크기를 나타내고 Z는 파라미터 테이블의 첫 번째 값을 나타낸다.
8. 제5항목의 방법에 있어서, 또는 , 및 Shift(x, s) (x+off) >> s 이고 SignShift(x, s) =(x+off) >> s, x≥0 이면, 또는 -(-x+off) >> s이고, x <0이면, off는 정수이고 k는 파라미터 테이블의 엔트리를 조회하기 위한 인덱스를 나타낸다.
9. 제8항목의 방법에 있어서, k는 (C1-C0) 값이 아니라(L1-L0) 값에 기초하여 유도된다.
10. 제8항목의 방법에 있어서, k는 (L1-L0) 및(C1-C0)의 두 값에 기초하여 유도된다.
11. 제6항목의 방법에 있어서, k는 kMin과 kMax 사이의 범위 내에서 유효한다.
12. 제8항목의 방법에 있어서, k Shift(L1 - L0, W) 및 k는 파라미터 테이블의 엔트리를 조회하기 위한 인덱스이며, Shift(x, s) =(x+off) >> s이고, off는 정수, 및 W는 현재 비디오 블록의 너비이다.
13. 제8항목의 방법에 있어서, k는 kMin과 kMax 사이의 범위 내에서 유효하고, 및 (L1 = L0)> kMax이면 k=(L1-L0)>kMax이고 k = Shift(L1-L0, W)이다.
14. 제8항목의 방법에 있어서, k는 kMin과 kMax 사이의 범위 내에서 유효하고, 및 k = Min(kMax, L1-L0) 또는 k = Max(kMin, Min(kMax, L1-L0))이다.
15. 제5항목의 방법에 있어서, (L1-L0) <0이고, α 대신 '-α' 값을 유도하기 위해 결정하는 단계가 수행된다.
16. 제5항목의 방법에 있어서, (L1-L0) = 0이고, α는 기본값 인 0 또는 1로 설정된다.
17. 제5항목의 방법에 있어서, (L1-L0) = 2E이고, E≥0, α = Shift((C1-C0), E) 또는 Singshift((C1-C0), E)이고, 및 Shift(x, s) (x+off) >> s이고 SignShift(x, s) =(x+off) >> s(x≥0 인 경우) 또는 -(-x+off) >> s(x <0 인 경우)이다.
18. 제1항목 내지 제17항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 현재 블록으로부터 코딩 된 표현을 생성하는 단계를 포함한다.
19. 제1항목 내지 제17항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 코딩 된 표현으로부터 현재 블록을 생성하는 단계를 포함한다.
20. 프로세서 및 명령을 갖는 비 일시적 메모리를 포함하는 비디오 시스템 장치에 있어서, 명령이 프로세서에 의해 실행될 때, 명령은 프로세서로 하여금 제1항목 내지 제19항목 중 어느 한 항목의 방법을 구현하게 한다.
21. 비 일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램에 있어서, 컴퓨터 프로그램은 제1항목 내지 제19항목 중 어느 한 항목의 방법을 수행하기 위한 프로그램 코드를 포함한다.
여섯 번째 항목 세트는 예를 들어 예 4 및 예 6을 포함하여 이전 섹션에 나열된 개시된 기술의 특정 특징 및 측면을 설명한다.
1. 비디오 처리 방법에 있어서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 다중 크로스 컴포넌트 선형 모델(MCCLM)의 예측 결과의 조합으로 현재 비디오 블록의 위치(x, y)에서 크로마 샘플의 최종 예측 P(x, y)를 결정하는 단계 - MCCLM은 크로마 샘플의 위치(x, y)에 기초하여 선택됨 -; 및 최종 예측에 기초하여 변환을 수행하는 단계를 포함한다.
2. 제1항목의 방법에 있어서, 다중 크로스 컴포넌트 선형 모델에는 파라미터가 왼쪽 이웃 샘플에서만 유도된 제1 선형 모델과 파라미터가 위쪽 이웃 샘플에서만 유도된 제2 선형 모델이 포함된다.
3. 제1항목의 방법에 있어서, 일부 크로마 샘플은 왼쪽 이웃 샘플에만 기초하여 예측되고 일부 크로마 샘플은 위쪽 이웃 샘플에만 기초하여 예측된다.
4. 제2항목 또는 제3항목의 방법에 있어서, 크로마 샘플의 최종 예측 P(x, y)는 제1 선형 모델에 의한 예측 P1(x, y) 및 제2 선형 모델에 의한 예측 P2(x, y)의 가중 평균에 기초한다.
5. 제4항목의 방법에 있어서, P(x, y) = w1 Х P1(x, y)+w2 Х P2(x, y)이고, w1 및 w2는 w1+w2 = 1로 제한되는 가중치이다.
6. 제4항목의 방법에 있어서, P(x, y) =(w1 * P1(x, y)+w2 * P2(x, y)+Offset) >> shift이고, offset은 0 또는 1<<(shift-1)을 포함하는 정수이고, shift 는 정수이고, 및 w1 및 w2는 w1+w2 = 1 << shift로 제한되는 가중치이다.
7. 제4항목의 방법에 있어서, P(x, y) =(w1 * P1(x, y)+((1 << shift) -w1) * P2(x, y)+Offset) >> shift이고, offset은 0 또는 1<<(shift-1)을 포함하는 정수이고, shift는 정수이고 w1과 w2는 가중치이다.
8. 제5항목 내지 제7항목 중 어느 한 항목의 방법에 있어서, w1 및 w2의 값은 위치(x, y)에 의존한다.
9. 제5항목 내지 제7항목 중 어느 한 항목의 방법에 있어서, x> y이면 w1 <w2이고, x <y이면 w1> w2이고, x = y이면 w1 = w2이다.
10. 제5항목 내지 제7항목 중 어느 한 항목의 방법에 있어서, x <y의 경우, (y-x) 값이 증가하면(w1-w2) 값이 증가한다.
11. 제5항목 내지 제7항목 중 어느 한 항목의 방법에 있어서, x> y의 경우, (x-y) 값이 증가하면(w2-w1) 값이 증가한다.
12. 비디오 처리 방법에 있어서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 왼쪽 이웃 샘플만을 사용하는 제1 크로스 컴포넌트 선형 모델(CCLM)이 현재 비디오 블록의 샘플을 예측하는 데 사용되는지 여부에 대한 제1 결정 및/또는 현재 비디오 블록의 샘플을 예측하기 위해 위쪽 이웃 샘플만을 사용하는 제2 크로스 컴포넌트 선형 모델(CCLM)이 사용되는지 여부에 관한 제2 결정을 수행하는 단계; 및 제1 결정 및/또는 제2 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
13. 제12항목의 방법에 있어서, 제1 CCLM은 W> K Х H이고, K가 음이 아닌 정수를 만족하는 경우에 적용되지 않는다.
14. 제12항목의 방법에 있어서, 제2 CCLM은 H> K Х W이고, K가 음이 아닌 정수를 만족하는 경우에 적용되지 않는다.
15. 제12항목의 방법에 있어서, 제1 CCLM 및 제2 CCLM 중 어느 하나가 적용되지 않는 경우에는 제1 CCLM 또는 제2 CCLM의 적용을 나타내는 플래그가 시그널링 되지 않는다.
16. 제1항목 내지 제15항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 현재 블록으로부터 코딩 된 표현을 생성하는 단계를 포함한다.
17. 제1항목 내지 제15항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 코딩 된 표현으로부터 현재 블록을 생성하는 단계를 포함한다.
18. 프로세서 및 명령을 갖는 비 일시적 메모리를 포함하는 비디오 시스템 장치에 있어서, 명령이 프로세서에 의해 실행될 때, 명령은 프로세서로 하여금 제1항목 내지 제17항목 중 어느 한 항목의 방법을 구현하게 한다.
19. 비 일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램에 있어서, 컴퓨터 프로그램은 제1항목 내지 제17항목 중 어느 한 항목의 방법을 수행하기 위한 프로그램 코드를 포함한다.
일곱 번째 항목 세트는 예를 들어, 예 7, 8, 11-13을 포함하여 이전 섹션에 나열된 개시된 기술의 특정 특징 및 측면을 설명한다.
1. 비디오 처리 방법에 있어서, 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 코딩 된 표현에서 산술 코딩(arithmetic coding)을 사용하여 플래그(flag)를 코딩하는 데 사용되는 컨텍스트(context)를 결정하는 단계 - 컨텍스트는 현재 비디오 블록의 왼쪽 상단 이웃 블록이 크로스 컴포넌트 선형 모델(CCLM) 예측 모드를 사용하여 코딩 되는지 여부에 기초함 -; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함하고, 플래그는 CCLM 예측 모드가 현재 비디오 블록에 적용되는지 여부를 나타 내기 위해 시그널링되고, 및 CCLM 예측 모드는 다른 컴포넌트로부터 크로마 컴포넌트의 예측 값을 유도하기 위해 선형 모드를 사용한다.
2. 제1항목의 방법에 있어서, 컨텍스트는 CCLM 예측 모드를 사용하는 왼쪽 상단 이웃 블록의 제1 컨텍스트를 포함하고, 왼쪽 상단 이웃 블록이 CCLM 예측 모드를 사용하지 않는 경우 제1 컨텍스트와 다른 제2 컨텍스트를 포함한다.
3. 제1항목의 방법에 있어서, 왼쪽 상단 이웃 블록은 사용할 수 없고, 및 CCLM 예측 모드는 활성화된 것으로 간주된다.
4. 제1항목의 방법에 있어서, 왼쪽 상단 이웃 블록은 사용할 수 없고, 및 CCLM 예측 모드는 비활성화된 것으로 간주된다.
5. 제1항목의 방법에 있어서, 왼쪽 상단 이웃 블록은 내부 코딩 되고, 및 CCLM 예측 모드는 활성화된 것으로 간주된다.
6. 제1항목의 방법에 있어서, 왼쪽 상단 이웃 블록은 내부 코딩되고 CCLM 예측 모드는 비활성화 된 것으로 간주된다.
7. 비디오 처리 방법에 있어서, 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 하나 이상의 이웃 블록의 코딩 모드에 기초하여 유도 모드(derived mode)(DM 모드) 및 선형 모드(linear mode)(LM 모드)의 하나 이상의 표시에 대한 코딩 순서를 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함하고, LM 모드는다른 컴포넌트로부터 크로마 컴포넌트의 예측 값을 유도하기 위해 선형 모드를 사용하고, DM 모드는 다른 컴포넌트로부터 크로마 컴포넌트의 인트라 예측 모드를 유도한다.
8. 제7항목의 방법에 있어서, 하나 이상의 이웃 블록의 왼쪽 상단 이웃 블록이 LM 모드로 코딩 되고, 및 LM 모드의 표시가 먼저 코딩 된다.
9. 제7항목의 방법에 있어서, 하나 이상의 이웃 블록의 왼쪽 상단 이웃 블록이 DM 모드로 코딩 되고, 및 DM 모드의 표시가 먼저 코딩 된다.
10. 제7항목의 방법에 있어서, 하나 이상의 이웃 블록의 왼쪽 상단 이웃 블록은 LM 모드와 다른 코딩 모드로 코딩 되고, 및 DM 모드의 표시가 먼저 코딩 된다.
11. 제7항목 내지 제10항목 중 어느 한 항목의 방법에 있어서, 하나 이상의 표시는 시퀀스 파라미터 세트(SPS), 비디오 파라미터 세트(VPS), 영상 파라미터 세트(PPS), 영상 헤더, 슬라이스 헤더, 타일 그룹 헤더, 하나 이상의 최대 코딩 유닛 또는 하나 이상의 코딩 유닛으로 시그널링 된다.
12. 비디오 처리 방법에 있어서, 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 정제된 이웃 루마 샘플 및 크로마 샘플에 기초하여 선형 모델 예측 또는 크로스 컬러 컴포넌트 예측을 위한 파라미터를 결정하는 단계; 현재 비디오 블록의 파라미터 및 정제된 내부 루마 샘플에 기초하여 현재 비디오 블록의 크로마 컴포넌트의 예측 값을 유도하는 단계; 및 예측 값에 기초하여 변환을 수행하는 단계를 포함한다.
13. 제12항목의 방법에 있어서, 이웃 루마 샘플 및 내부 루마 샘플은 정제 프로세스 이전에 다운 샘플링 된다.
14. 제12항목의 방법에 있어서, 정제 프로세스는 필터링 프로세스 또는 비선형 프로세스를 포함한다.
15. 제12항목의 방법에 있어서, 파라미터 또는 선형 모델 예측은 α 및 β이고, α =(C1-C0)/(L1-L0) 및 β = C0-αL0이고, C0 및 C1은 이웃 크로마 샘플에서 유도되고, 및 L0 및 L1은 이웃 루마 샘플에서 유도된다.
16. 제15항목의 방법에 있어서, C0 및 L0은 각각 {Cx1, Cx2, ..., CxS} 및 {Lx1, Lx2, ..., LxS}로 표시된 S 이웃 크로마 및 루마 샘플에 기초하고, C1 및 L1은 각각 {Cy1, Cy2, ..., CyT} 및 {Ly1, Ly2, ..., LyT}로 표시된 T 이웃 크로마 및 루마 샘플에 기초하고, {Cx1, Cx2, ..., CxS}는 {Lx1, Lx2, ..., LxS}에 대응하고, {Cy1, Cy2, ..., CyT}는 {Ly1, Ly2, ..., LyT}에 대응하고, C0 = f0(Cx1, Cx2, ..., CxS), L0 = f1(Lx1, Lx2, ..., LxS), C1 = f2(Cy1, Cy2, ..., CyT) 및 L1 = f1(Ly1, Ly2, ..., LyT)이고, 및 f0, f1, f2 및 f3은 함수이다.
17. 제16항목의 방법에 있어서, f0 및 f1은 제1 함수이다.
18. 제16항목의 방법에 있어서, f2 및 f3은 제2 함수이다.
19. 제17항목의 방법에 있어서, f0, f1, f2 및 f3은 제3 함수이다.
20. 제19항목의 방법에 있어서, 제3 함수는 평균화 함수이다.
21. 제16항목의 방법에 있어서, S = T이다.
22. 제16항목의 방법에 있어서, {Lx1, Lx2, ..., LxS}는 루마 샘플 그룹에서 가장 작은 샘플이다.
23. 제16항목의 방법에 있어서, {Ly1, Ly2, ..., LyT}는 루마 샘플 그룹에서 가장 큰 샘플이다.
24. 제22항목 또는 제23항목의 방법에 있어서, 루마 샘플 그룹은 선형 모델 예측의 파라미터를 유도하기 위해 VTM-3.0에서 사용되는 모든 이웃 샘플을 포함한다.
25. 제22항목 또는 제23항목의 방법에 있어서, 루마 샘플 그룹은 선형 모델 예측의 파라미터를 유도하기 위해 VTM-3.0에서 사용되는 이웃 샘플의 서브 세트를 포함하고, 및 서브 집합은 모든 이웃 샘플과 동일하지 않다.
26. 비디오 처리 방법에 있어서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 가장 큰 또는 가장 작은 이웃 샘플의 위치에 기초하여 이웃 샘플을 선택함으로써 선형 모델 예측 또는 크로스 컬러 컴포넌트 예측(cross-color component prediction)을 위한 파라미터를 결정하는 단계; 현재 비디오 블록의 파라미터 및 내부 루마 샘플에 기초하여 현재 비디오 블록의 크로마 샘플의 예측 값을 유도하는 단계; 및 예측 값에 기초하여 변환을 수행하는 단계를 포함한다.
27. 제26항목의 방법에 있어서, 가장 큰 이웃 샘플은 위치(x0, y0)에 위치되고, 영역(x0-d1, y0), (x0, y0-d2), (x0+d3, y0), (x0, y0+d4)의 샘플은 이웃 샘플을 선택하는 데 사용되고, {d1, d2, d3, d4}는 위치(x0, y0)에 의존한다.
28. 제26항목의 방법에 있어서, 가장 작은 이웃 샘플은 위치(x1, y1)에 위치하고, 영역(x1-d1, y1), (x1, y1-d2), (x1+d3, y1), (x1, y1+d4)의 샘플은 이웃 샘플을 선택하는 데 사용되고, {d1, d2, d3, d4}는 위치(x1, y1)에 의존한다.
29. 제26항목 내지 제28항목 중 어느 한 항목의 방법에 있어서, 이웃 샘플은 컬러 컴포넌트를 나타낸다.
30. 비디오 처리 방법에 있어서, 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 메인 컬러 컴포넌트(main color component)와 종속 컬러 컴포넌트(dependent color component)에 기초하여 선형 모델 예측 또는 크로스 컬러 컴포넌트 예측을 위한 파라미터를 결정하는 단계 - 메인 컬러 컴포넌트는 루마 컬러 컴포넌트 및 크로마 컬러 컴포넌트 중 하나로 선택되고 및 종속 컬러 컴포넌트는 루마 컬러 컴포넌트 및 크로마 컬러 컴포넌트 중 다른 것으로 선택됨 -; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
31. 제1항목 내지 제30항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 현재 블록으로부터 코딩 된 표현을 생성하는 단계를 포함한다.
32. 제1항목 내지 제30항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 코딩 된 표현으로부터 현재 블록을 생성하는 단계를 포함한다.
33. 프로세서 및 명령을 갖는 비 일시적 메모리를 포함하는 비디오 시스템 장치에 있어서, 명령이 프로세서에 의해 실행될 때, 명령은 프로세서로 하여금 제1항목 내지 제32항목 중 어느 한 항목의 방법을 구현하게 한다.
34. 비 일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램에 있어서, 컴퓨터 프로그램은 제1항목 내지 제32항목 중 어느 한 항목의 방법을 수행하기 위한 프로그램 코드를 포함한다.
여덟 번째 항목 세트는 예를 들어 실시 예 10 및 14를 포함하여 이전 섹션에 나열된 개시된 기술의 특정 특징 및 측면을 설명한다.
1. 비디오 처리 방법에 있어서, 현재 비디오 블록의 이웃 블록의 크로마 및 루마 샘플에 대해 다운 샘플링을 수행하는 단계; 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 다운 샘플링 된 크로마 및 다운 샘플링으로부터 획득된 루마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계; 현재 비디오 블록의 예측 값을 도출하기 위해 현재 비디오 블록에 대응하는 루마 블록에 위치한 루마 샘플에 CCLM을 적용하는 단계; 및 예측 값에 기초하여 변환을 수행하는 단계를 포함한다.
2. 제1항목의 방법에 있어서, 현재 비디오 블록은 높이(H)와 너비(W)를 가지고 다운 샘플링은 높이 또는 너비에 기초한다.
3. 제1항목의 방법에 있어서, 다운 샘플링 된 크로마 및 루마 샘플은 α 및 컬러β를 포함하는 CCLM의 파라미터를 유도하기 전에 획득되고, 및 α 및 컬러β는 α =(C1-C0)/(L1-L0) 및 컬러β = C0-α Х L0으로 정의된다.
4. 제1항목의 방법에 있어서, CCLM의 파라미터를 유도하는 데 사용되는 왼쪽 이웃 샘플의 수는 CCLM의 파라미터를 유도하는 데 사용된 위쪽 이웃 샘플의 수와 동일하다.
5. 제2항목의 방법에 있어서, W <H 또는 W> H이다.
6. 제2항목의 방법에 있어서, 왼쪽 이웃 블록 또는 위쪽 블록의 크로마 및 루마 샘플을 다운 샘플링 할지 여부는 W 및 H의 상대적 크기에 의존한다.
7. 제6항목의 방법에 있어서, 다운 샘플링은 H> W의 경우 왼쪽 이웃 블록의 크로마 및 루마 샘플에서 수행된다.
8. 제6항목의 방법에 있어서, 다운 샘플링은 W> H의 경우 위쪽 이웃 블록의 크로마 및 루마 샘플에서 수행된다.
9. 제7항목의 방법에 있어서, 현재 비디오 블록의 왼쪽 상단 샘플은 R [0, 0]이고, 다운 샘플링 된 크로마 샘플은 샘플 R [-1, K Х H/W]를 포함하고, 및 K는 0에서 W-1 범위의 음이 아닌 정수이다.
10. 제8항목의 방법에 있어서, 현재 비디오 블록의 왼쪽 상단 샘플은 R [0, 0]이고, 다운 샘플링 된 크로마 샘플은 샘플 R [K Х H/W, -1]을 포함하고, 및 K는 0에서 H-1 범위의 음이 아닌 정수이다.
11. 비디오 처리 방법에 있어서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 이웃 크로마 샘플 그룹에서 두 개 이상의 크로마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계 - 두 개 이상의 크로마 샘플은 현재 비디오 블록의 코딩 모드에 기초하여 선택됨 -; 현재 비디오 블록의 예측 값을 도출하기 위해 현재 비디오 블록에 대응하는 루마 블록에 위치한 루마 샘플에 CCLM을 적용하는 단계; 및 예측 값에 기초하여 변환을 수행하는 단계를 포함한다.
12. 제11항목의 방법에 있어서, 두 개 이상의 크로마 샘플에 대응하는 두 개 이상의 루마 샘플은 크로스 컴포넌트 선형 모델의 파라미터를 유도하는 데 사용된다.
13. 제12항목의 방법에 있어서, 두 개 이상의 루마 샘플은 크로스 컴포넌트 선형 모델의 파라미터를 유도하기 위해 다운 샘플링 된다.
14. 제11항목의 방법에 있어서, 두 개 이상의 크로마 샘플은 이웃 샘플의 가용성에 따라 선택된다.
15. 제11항목의 방법에 있어서, 두 개 이상의 크로마 샘플은 현재 비디오 블록을 기준으로 왼쪽 열, 위쪽 행, 오른쪽 위쪽 행 또는 왼쪽 아래 열 중 하나 이상에서 선택된다.
16. 제11항목의 방법에 있어서, 두 개 이상의 크로마 샘플은 현재 비디오 블록의 폭에 대한 현재 비디오 블록의 높이의 비율에 기초하여 선택된다.
17. 제11항목의 방법에 있어서, 두 개 이상의 크로마 샘플은 현재 비디오 블록의 너비 또는 높이가 K와 같은지 여부에 따라 선택되며, K는 정수이다.
18. 제17항목의 방법에 있어서, K = 2 이다.
19. 제11항목의 방법에 있어서, 현재 비디오 블록의 코딩 모드는 왼쪽 이웃 샘플 및 두 개의 위쪽 이웃 샘플로부터 두 개의 샘플을 사용하는 제1 선형 모드, 왼쪽 이웃 샘플 만 사용하는 제2 선형 모드 및 이웃 샘플 만 사용하는 제3 선형 모드 중 하나이고, 현재 비디오 블록의 왼쪽 상단 샘플의 좌표는 (x, y)이고, 및 현재 비디오 블록의 너비와 높이는 각각 W와 H이다.
20. 제19항목의 방법에 있어서, 두 개 이상의 크로마 샘플은 제1 선형 모드에서 좌표 (x-1, y), (x, y-1), (x-1, y+H-1) 및 (x+W-1, y-1)를 갖는 샘플을 포함한다.
21. 제19항목의 방법에 있어서, 두 개 이상의 크로마 샘플은 제1 선형 모드에서 좌표 (x-1, y), (x, y-1), (x-1, y+H-H/W -1) 및 (x+W-1, y -1)를 갖는 샘플을 포함하고, 여기서 H> W이다.
22. 제19항목의 방법에 있어서, 두 개 이상의 크로마 샘플은 제1 선형 모드에서 좌표 (x-1, y), (x, y-1), (x-1, y+H -1) 및(x+W-W/H-1, y -1)를 갖는 샘플을 포함하고, 여기서 H <W이다.
23. 제19항목의 방법에 있어서, 두 개 이상의 크로마 샘플은 제1 선형 모드에서 좌표 (x-1, y), (x, y-1), (x-1, y+H-max(1, H/W)) 및 (x+W- max(1, W/H), y-1)를 갖는 샘플을 포함한다.
24. 제19항목의 방법에 있어서, 두 개 이상의 크로마 샘플은 제3 선형 모드에서 좌표 (x, y-1), (x+W/4, y-1), (x+2 * W/4, y-1) 및 (x+3 * W/4, y-1)를 갖는 샘플을 포함한다.
25. 제19항목의 방법에 있어서, 두 개 이상의 크로마 샘플은 제3 선형 모드에서 좌표 (x, y-1), (x+W/4, y-1), (x+3 * W/4, y-1) 및 (x+W-1, y -1)를 갖는 샘플을 포함한다.
26. 제19항목의 방법에 있어서, 두 개 이상의 크로마 샘플은 제3 선형 모드에서 좌표 (x, y-1), (x+(2W)/4, y-1), (x+2 *(2W)/4, y-1) 및 (x+3 *(2W)/4, y-1)를 갖는 샘플을 포함한다.
27. 제19항목의 방법에 있어서, 두 개 이상의 크로마 샘플은 제3 선형 모드에서 좌표 (x, y-1), (x+(2W)/4, y-1), (x+3 *(2W)/4, y-1) 및 (x+(2W) -1, y-1)를 갖는 샘플을 포함한다.
28. 제19항목의 방법에 있어서, 두 개 이상의 크로마 샘플은 제2 선형 모드에서 좌표 (x-1, y), (x -1, y+H/4), (x -1, y+2 * H/4) 및 (x -1, y+3 * H/4)를 갖는 샘플을 포함한다.
29. 제19항목의 방법에 있어서, 두 개 이상의 크로마 샘플은 제2 선형 모드에서 좌표 (x-1, y), (x-1, y+2 * H/4), (x -1, y+3 * H/4) 및 (x -1 , y+H-1)를 갖는 샘플을 포함한다.
30. 제19항목의 방법에 있어서, 두 개 이상의 크로마 샘플은 제2 선형 모드에서 좌표 (x-1, y), (x -1, y+(2H)/4), (x -1, y+2 *(2H)/4) 및 (x -1, y+3 *(2H)/4)를 갖는 샘플을 포함한다.
31. 제19항목의 방법에 있어서, 두 개 이상의 크로마 샘플은 제2 선형 모드에서 좌표 (x-1, y), (x-1, y+2 *(2H)/4), (x -1, y+3 *(2H)/4) 및 (x -1, y+(2H) -1)를 갖는 샘플을 포함한다.
32. 제20항목 내지 제31항목 중 어느 한 항목의 방법에 있어서, CCLM의 파라미터를 결정하기 위해 정확히 두 개의 샘플이 선택된다.
33. 제1항목 내지 제32항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 현재 블록으로부터 코딩 된 표현을 생성하는 단계를 포함한다.
34. 제1항목 내지 제32항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 코딩 된 표현으로부터 현재 블록을 생성하는 단계를 포함한다.
35. 프로세서 및 명령을 갖는 비 일시적 메모리를 포함하는 비디오 시스템 장치에 있어서, 명령이 프로세서에 의해 실행될 때, 명령은 프로세서로 하여금 제1항목 내지 제34항목 중 어느 한 항목의 방법을 구현하게 한다.
36. 비 일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램에 있어서, 컴퓨터 프로그램은 제1항목 내지 제34항목 중 어느 한 항목의 방법을 수행하기 위한 프로그램 코드를 포함한다.
아홉 번째 항목 세트는 예를 들어 실시 예 16 및 17을 포함하여 이전 섹션에 나열된 개시된 기술의 특정 특징 및 측면을 설명한다.
1. 비디오 처리 방법에 있어서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, W 개의 이용 가능한 위쪽 이웃 샘플에 기초하여, W는 정수인, 선택된 크로마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
2. 제1항목의 방법에 있어서, W는 i) 현재 비디오 블록의 너비, ii) L 곱하기 현재 비디오 블록의 너비, L은 정수, iii) 현재 비디오 블록의 높이와 현재 비디오 블록의 너비의 합, 또는 iv) 현재 비디오 블록의 너비와 사용 가능한 오른쪽 상단 이웃 샘플 수의 합계로 설정된다.
3. 제1항목의 방법에 있어서, W는 현재 비디오 블록의 위쪽 이웃 블록 또는 왼쪽 이웃 블록 중 적어도 하나의 가용성에 의존한다.
4. 제1항목의 방법에 있어서, W는 현재 비디오 블록의 코딩 모드에 의존한다.
5. 제2항목의 방법에 있어서, L은 현재 비디오 블록에 인접하여 위치된 오른쪽 상단 블록 또는 왼쪽 상단 샘플의 가용성에 기초하여 다른 값을 가진다.
6. 제1항목의 방법에 있어서, 크로마 샘플은 W에 의존하는 제1 위치 오프셋 값(F) 및 단계 값(S)을 기초하여 선택된다.
7. 제1항목의 방법에 있어서, 왼쪽 상단 샘플은 좌표 (x0, y0)를 가지고, 선택된 크로마 샘플은 좌표 (x0+F+K Х S, y0-1)을 가지며 K는 0과 kMax 사이의 정수이다.
8. 제6항목의 방법에 있어서, F = W/P 또는 F = W/P+오프셋, P는 정수이다.
9. 제8항목의 방법에 있어서, F = W >>(2+numIs4T)이고, numIs4T는 위쪽 이웃 행 내에서 네 개의 이웃 샘플이 선택된 경우 1과 같고, 그렇지 않으면 numIs4T가 0과 같다.
10. 제6항목의 방법에 있어서, S = W/Q이고, Q는 정수이다.
11. 제6항목의 방법에 있어서, S는 1보다 작지 않다.
12. 제10항목 또는 제11항목의 방법에 있어서, S = Max(1, W >>(1+numIs4T))이고, numIs4T는 위쪽 이웃 행 내에 네 개의 이웃 샘플이 선택되어 있는 경우 1이고 그렇지 않으면 numIs4T가 0 과 같다.
13. 제9항목 또는 제12항목의 방법에 있어서, numIs4T는 위쪽 이웃 샘플을 사용할 수 있고 왼쪽 이웃 샘플을 사용할 수 있고 현재 비디오 블록이 왼쪽 이웃 샘플 만 사용하는 제1 CCLM과 다르고 위쪽 이웃 샘플 만 사용하는 제2 CCLM과 다른 일반 CCLM으로 코딩 된 경우 1과 같다.
14. 제6항목의 방법에 있어서, F = S/R이고, R은 정수이다.
15. 제6항목의 방법에 있어서, S = F/Z이고, Z는 정수이다.
16. 제7항목 내지 제15항목 중 어느 한 항목의 방법에 있어서, Kmax, F, S 또는 오프셋 중 적어도 하나는 왼쪽 이웃 샘플 만 사용하는 제1 CCLM, 이웃 위쪽 샘플 만 사용하는 제2 CCLM, 왼쪽 이웃 및 이웃 샘플 모두를 사용하는 제3 CCLM 중 하나 인 현재 비디오 블록의 예측 모드 또는 제1 CCLM, 제2 CCLM 및 제3 CCLM과 상이한 다른 모드에 의존한다.
17. 제7항목 내지 제15항목 중 어느 한 항목의 방법에 있어서, Kmax, F, S 또는 오프셋 중 적어도 하나는 현재 비디오 블록의 너비 및/또는 높이에 의존한다.
18. 제7항목 내지 제15항목 중 어느 한 항목의 방법에 있어서, Kmax, F, S 또는 오프셋 중 적어도 하나는 이웃 샘플의 가용성에 의존한다.
19. 제7항목 내지 제15항목 중 어느 한 항목의 방법에 있어서, Kmax, F, S 또는 오프셋 중 적어도 하나는 W에 의존한다.
20. 비디오 처리 방법에 있어서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 H 개의 이용 가능한 왼쪽 이웃 샘플에 기초하여 선택된 크로마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
21. 제6항목의 방법에 있어서, H는 i) 현재 비디오 블록의 높이, ii) L 곱하기 현재 비디오 블록의 높이, L은 정수, iii) 현재 비디오 블록의 높이와 현재 비디오 블록의 너비의 합, 또는 iv) 현재 비디오 블록의 높이와 사용 가능한 왼쪽 하단 이웃 샘플 수의 합계 중 하나로 설정된다.
22. 제20항목의 방법에 있어서, H는 현재 비디오 블록의 위쪽 이웃 블록 또는 왼쪽 이웃 블록 중 적어도 하나의 가용성에 의존한다.
23. 제20항목의 방법에 있어서, H는 현재 비디오 블록의 코딩 모드에 의존한다.
24. 제21항목의 방법에 있어서, L은 현재 비디오 블록에 인접하여 위치된 왼쪽 아래 블록 또는 왼쪽 아래 샘플의 가용성에 의존하는 값을 가진다.
25. 제20항목의 방법에 있어서, 크로마 샘플은 H에 의존하는 제1 위치 오프셋 값(F) 및 단계 값(S)에 기초하여 선택된다.
26. 제25항목의 방법에 있어서, 왼쪽 상단 샘플은 좌표 (x0, y0)를 갖고 선택된 크로마 샘플은 좌표 (x0-1, y0+F+K Х S)을 갖고, K는 0과 kMax 사이의 정수이다.
27. 제25항목의 방법에 있어서, F = H/P 또는 F = H/P+오프셋, P는 정수이다.
28. 제27항목의 방법에 있어서, F = H >>(2+numIs4L)이고, numIs4L은 왼쪽 이웃 열 내에서 선택된 네 개의 이웃 샘플이 있는 경우 1과 같고, 그렇지 않으면 0과 같다.
29. 제25항목의 방법에 있어서, S = H/Q, Q는 정수이다.
30. 제25항목의 방법에 있어서, S는 1보다 작지 않다.
31. 제29항목 또는 제30항목의 방법에 있어서, S = Max(1, H >>(1+numIs4L))이고, numIs4L은 왼쪽 이웃 열 내에서 네 개의 이웃 샘플이 선택된 경우 1과 같고 그렇지 않으면 numIs4L이 0과 같다.
32. 제28항목 또는 제31항목의 방법에 있어서, numIs4T는 위쪽 이웃 샘플을 사용할 수 있고 왼쪽 이웃 샘플을 사용할 수 있고 현재 비디오 블록이 왼쪽 이웃 샘플 만 사용하는 제1 CCLM과 다르고 위쪽 이웃 샘플 만 사용하는 제2 CCLM과 다른 일반 CCLM으로 코딩 된 경우 1과 같다.
33. 제25항목의 방법에 있어서, F = S/R, R은 정수이다.
34. 제25항목의 방법에 있어서, S = F/Z, Z는 정수이다.
35. 제26항목 내지 제34항목 중 어느 한 항목의 방법에 있어서, Kmax, F, S 또는 오프셋 중 적어도 하나는 왼쪽 이웃 샘플 만 사용하는 제1 CCLM, 이웃 위쪽 샘플 만 사용하는 제2 CCLM, 왼쪽 이웃 및 이웃 샘플 모두를 사용하는 제3 CCLM 중 하나 인 현재 비디오 블록의 예측 모드 또는 제1 CCLM, 제2 CCLM 및 제3 CCLM과 상이한 다른 모드에 의존한다.
36. 제26항목 내지 제34항목 중 어느 한 항목의 방법에 있어서, Kmax, F, S 또는 오프셋 중 적어도 하나는 현재 비디오 블록의 너비 및/또는 높이에 기초하여 의존한다.
37. 제26항목 내지 제34항목 중 어느 한 항목의 방법에 있어서, Kmax, F, S 또는 오프셋 중 하나 이상은 H에 의존한다.
38. 제26항목 내지 제34항목 중 어느 한 항목의 방법에 있어서, Kmax, F, S 또는 오프셋 중 하나 이상은 이웃 샘플의 가용성에 의존한다.
39. 제20항목의 방법에 있어서, H는 현재 비디오 블록의 오른쪽 위쪽 이웃 블록이 가능한 경우 현재 비디오 블록의 높이와 현재 비디오 블록의 너비의 합으로 설정된다.
40. 제20항목의 방법에 있어서, 왼쪽 이웃 샘플을 사용할 수 없는 경우, 선택된 크로마 샘플은 현재 비디오 블록이 위쪽 이웃 샘플 만을 사용하는 제1 CCLM을 갖는지 여부에 관계없이 높이 H를 갖는다.
41. 제1항목의 방법에 있어서, W는 현재 비디오 블록의 왼쪽 아래쪽 이웃 블록이 있는 경우 현재 비디오 블록의 높이와 현재 비디오 블록의 너비의 합으로 설정된다.
42. 제1항목의 방법에 있어서, 위쪽 이웃 샘플을 사용할 수 없는 경우, 현재 비디오 블록에 왼쪽 이웃 샘플 만 사용하는 제1 CCLM이 있는지 여부에 관계없이 선택된 크로마 샘플의 개수는 W이다.
43. 제1항목 내지 제42항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 현재 블록으로부터 코딩 된 표현을 생성하는 단계를 포함한다.
44. 제1항목 내지 제42항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 코딩 된 표현으로부터 현재 블록을 생성하는 단계를 포함한다.
45. 프로세서 및 명령을 갖는 비 일시적 메모리를 포함하는 비디오 시스템 장치에 있어서, 명령이 프로세서에 의해 실행될 때, 명령은 프로세서로 하여금 제1항목 내지 제44항목 중 어느 한 항목의 방법을 구현하게 한다.
46. 비 일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램에 있어서, 컴퓨터 프로그램은 제1항목 내지 제44항목 중 어느 한 항목의 방법을 수행하기 위한 프로그램 코드를 포함한다.
열 번째 항목의 세트는 예를 들어, 예 18 및 19를 포함하여 이전 섹션에 나열된 개시된 기술의 특정 특징 및 측면을 설명한다.
1. 비디오 처리 방법에 있어서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 두 개 또는 네 개의 크로마 샘플 및/또는 대응하는 루마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
2. 제1항목의 방법에 있어서, 대응하는 루마 샘플은 다운 샘플링을 통해 획득된다.
3. 제1항목의 방법에 있어서, CCLM의 파라미터는 maxY/maxC 및 minY/minC가 포함한다.
4. 제3항목의 방법에 있어서, 두 개의 크로마 샘플은 maxY/maxC 및 minY/minC를 유도하기 위해 선택되고, 및 minY는 더 작은 루마 샘플 값으로 설정되고, minC는 대응하는 크로마 샘플 값이고, maxY는 더 큰 루마 샘플 값으로 설정되고, 및 maxC는 대응하는하는 크로마 샘플 값이다.
5. 제3항목의 방법에 있어서, 네 개의 크로마 샘플은 maxY/maxC 및 minY/minC를 유도하기 위해 선택되며, 및 네 개의 크로마 샘플과 대응하는 루마 샘플은 두 개의 어레이 G0 및 G1로 분할되고, 각 어레이는 두 개의 크로마 샘플과 대응하는 루마 샘플을 포함한다.
6. 제5항목의 방법에 있어서, 두 개의 어레이 G0 및 G1은:
i) G0 = {S0, S1}, G1 = {S2, S3},
ii) G0 = {S1, S0}, G1 = {S3, S2},
iii) G0 = {S0, S2}, G1 = {S1, S3},
iv) G0 = {S2, S0}, G1 = {S3, S1},
v) G0 = {S1, S2}, G1 = {S0, S3},
vi) G0 = {S2, S1}, G1 = {S3, S0},
vii) G0 = {S0, S3}, G1 = {S1, S2},
viii) G0 = {S3, S0}, G1 = {S2, S1},
ix) G0 = {S1, S3}, G1 = {S0, S2},
x) G0 = {S3, S1}, G1 = {S2, S0},
xi) G0 = {S3, S2}, G1 = {S0, S1}, 또는
xii) G0 = {S2, S3}, G1 = {S1, S0}의 세트 중 하나를 포함하고 및
S0, S1, S2, S3은 각각 네 개의 크로마 샘플을 포함하고, 및 각각 대응하는 루마 샘플을 더 포함한다.
7. 제6항목의 방법에 있어서, G0 [0] 및 G0 [1]의 두 개의 루마 샘플 값을 비교하면 크로마 샘플과 G0 [0]의 대응하는 루마 샘플이 G0 [1]의 샘플로 뒤덮인다.
8. 제7항목의 방법에 있어서, G0 [0]의 루마 샘플 값이 G0 [1]의 루마 샘플 값보다 큰 경우 크로마 샘플 및 G0 [0]의 대응하는 루마 샘플은 G0 [1]의 샘플로 뒤덮인다.
9. 제6항목의 방법에 있어서, G1 [0] 및 G1 [1]의 두 개의 루마 샘플 값을 비교하면 크로마 샘플과 G1 [0]의 대응하는 루마 샘플이 G1 [1]의 샘플로 뒤덮인다.
10. 제9항목의 방법에 있어서, G1 [0]의 루마 샘플 값이 G1 [1]의 루마 샘플 값보다 큰 경우 크로마 샘플 및 G1 [0]의 대응하는 루마 샘플은 G1 [1]의 샘플로 뒤덮인다.
11. 제6항목의 방법에 있어서, G0 [0] 및 G1 [1]의 두 개의 루마 샘플 값을 비교하면, 크로마 샘플 및 G0 [0] 또는 G0 [1]의 대응하는 루마 샘플은 G1 [0] 또는 G1 [1]의 샘플로 뒤덮인다.
12. 제11항목의 방법에 있어서, G0 [0]의 루마 샘플 값이 G1 [1]의 루마 샘플 값보다 큰 경우 크로마 샘플 및 G0 [0] 또는 G0 [1]의 대응하는 루마 샘플은 G1 [0] 또는 G1 [1]의 루마 샘플로 뒤덮인다.
13. 제6항목의 방법에 있어서, G0 [1] 및 G1 [0]의 두 개의 루마 샘플 값을 비교하면 크로마 샘플과 G0 [1]의 대응하는 루마 샘플이 G1 [0]의 샘플로 뒤덮인다.
14. 제13항목의 방법에 있어서, G0 [1]의 루마 샘플 값이 G1 [0]의 루마 샘플 값보다 큰 경우 크로마 샘플 및 G0 [1]의 대응하는 루마 샘플은 G1 [0]의 샘플로 뒤덮인다.
15. 제6항목의 방법에 있어서, G0 [0], G0 [1], G1 [0] 및 G1 [1]의 두 루마 샘플 값을 비교하면, 다음과 같은 뒤덮임 연산이 순서대로 실행된다: i) 크로마 샘플 및 G0 [0]의 대응하는 루마 샘플과 G0 [1]의 뒤덮임 연산, ii) 크로마 샘플 및 G1 [0]의 대응하는 루마 샘플과 G1 [1]의 광도 샘플의 뒤덮임 연산, iii) 크로마 샘플 및 G0 [0] 또는 G0 [1]의 대응하는 루마 샘플과 G1 [0] 또는 G1 [1]의 뒤덮임 연산, 및 iv) 크로마 샘플 및 G0 [1]의 루마 샘플과 G1 [0]의 대응하는 루마 샘플의 뒤덮임 연산.
16. 제6항목의 방법에 있어서, maxY는 G0 [0] 및 G0 [1]의 루마 샘플 값의 평균 또는 G1 [0] 및 G1 [1]의 루마 샘플 값의 평균으로 계산되고, 및 maxC는 G0 [0] 및 G0 [1]의 크로마 샘플 값의 평균 또는 G1 [0] 및 G1 [1]의 크로마 샘플 값의 평균으로 계산된다.
17. 제6항목의 방법에 있어서, minY는 G0 [0] 및 G0 [1]의 루마 샘플 값의 평균 또는 G1 [0] 및 G1 [1]의 루마 샘플 값의 평균으로 계산되고, 및 minC는 G0 [0] 및 G0 [1]의 크로마 샘플 값의 평균 또는 G1 [0] 및 G1 [1]의 크로마 샘플 값의 평균으로 계산된다.
18. 제16항목 또는 제17항목의 방법에 있어서, maxY 및 maxC의 계산 또는 minY 및 minC의 계산은 G0 [0], G0 [1], G1 [0] 및 G1 [1]의 두 개의 루마 샘플 값을 비교하여 수행되는 뒤덮임 연산 중 하나 후에 수행된다. 뒤덮임 연산은: i) 크로마 샘플 및 G1 [0]의 루마 샘플과 G1 [1]의 대응하는 루마 샘플의 뒤덮임 연산, ii) 크로마 샘플 및 G0 [0] 또는 G0 [1]의 대응하는 루마 샘플과 G1 [0] 또는 G1 [1]의 늪 연산, 및 iii) 크로마 샘플 및 G0 [1]의 루마 샘플과 G1 [0]의 대응하는 루마 샘플의 뒤덮임 연산.
19. 제1항목의 방법에 있어서, 사용 가능한 크로마 샘플이 두 개뿐인 경우 사용 가능한 두 개의 크로마 샘플에 패딩을 수행하여 네 개의 크로마 샘플을 제공한다.
20. 제19항목의 방법에 있어서, 네 개의 크로마 샘플은 두 개의 사용 가능한 크로마 샘플과 두 개의 사용 가능한 크로마 샘플에서 복사된 두 개의 패딩 크로마 샘플을 포함한다.
21. 제6항목의 방법에 있어서, S0, S1, S2, S3은 크로마 샘플이고 대응하는 루마 샘플은 현재 비디오 블록의 위쪽 행 및/또는 왼쪽 열 내에서 지정된 순서로 선택된다.
22. 비디오 처리 방법에 있어서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 위치 규칙에 기초하여 크로마 샘플을 선택하는 단계 - 크로마 샘플은 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 유도하는 데 사용됨 -; 및 결정하는 단계에 기초하여 변환을 수행하는 단계 - 위치 규칙은 현재 비디오 블록의 위쪽 행 및/또는 왼쪽 열 내에 위치한 크로마 샘플을 선택하도록 지정함 - 를 포함한다.
23. 제22항목의 방법에 있어서, 위쪽 행과 왼쪽 열에는 각각 W 샘플과 H 샘플이 있으며, W와 H는 각각 현재 비디오 블록의 너비와 높이이다.
24. 제22항목의 방법에 있어서, 위치 규칙은 CCLM을 유도하기 위해 이웃 샘플 만 사용하는 제1 CCLM 모드 및 CCLM을 유도하기 위해 왼쪽 이웃 샘플 만 사용하는 제2 CCLM 모드와 다른 일반 CCLM 모드로 코딩 된 현재 비디오 블록에 적용된다.
25. 제22항목의 방법에 있어서, 위치 규칙은 현재 비디오 블록의 위쪽 행과 오른쪽 위쪽 행에 있는 크로마 샘플을 선택하도록 지정하고, 및 위쪽 행과 오른쪽 위쪽 행에는 각각 W 샘플과 H 샘플이 갖고, W 및 H는 각각 현재 비디오 블록의 너비와 높이이다.
26. 제25항목의 방법에 있어서, 위쪽 행과 오른쪽 위쪽 행에서 사용 가능한 샘플 만 선택된다.
27. 제25항목의 방법에 있어서, 위치 규칙은 CCLM을 유도하기 위해 이웃 샘플 만 사용하는 제1 CCLM 모드로 코딩 된 현재 비디오 블록에 적용된다.
28. 제25항목의 방법에 있어서, 위치 규칙은, 위쪽 행을 사용할 수 있고 왼쪽 열을 사용할 수 없는 경우 및 현재 비디오 블록이 CCLM을 유도하기 위해 이웃 샘플 만 사용하는 제1 CCLM 모드와 CCLM을 유도하기 위해 왼쪽 이웃 샘플 만 사용하는 제2 CCLM 모드와 다른 일반 CCLM 모드로 코딩되는 경우, 적용된다.
29. 제23항목 내지 제28항목 중 어느 한 항목의 방법에 있어서, numSampT는 위쪽 이웃 샘플을 사용할 수 있는 경우 numSampT가 nTbW와 동일하게 설정되고 및 위쪽 이웃 샘플을 사용할 수 없는 경우 numSampT이 0으로 설정되도록 지정하는 규칙에 기초하여 설정되고, 및 numSampT는 크로스 컴포넌트 선형 모델의 파라미터를 유도하는 데 사용되는 위쪽 이웃 행 내의 크로마 샘플의 수를 나타내고 nTbW는 현재 비디오 블록의 폭을 나타낸다.
30. 제29항목의 방법에 있어서, 규칙은 CCLM을 유도하기 위해 이웃 샘플 만 사용하는 제1 CCLM 모드 및 CCLM을 유도하기 위해 왼쪽 이웃 샘플 만 사용하는 제2 CCLM 모드와 다른 일반 CCLM 모드로 코딩 된 현재 비디오 블록에 적용된다.
31. 제23항목 내지 제28항목 중 어느 한 항목의 방법에 있어서, numSampT는 위쪽 이웃 샘플을 사용할 수 있고 현재 비디오 블록이 CCLM을 유도하기 위해 이웃 샘플 만 사용하는 제1 CCLM 모드로 코딩 된 경우 numSampT이 nTbW+Min(numTopRight, nTbH)과 동일하게 설정되고, 및 그렇지 않으면 numSampT이 0으로 설정되도록 지정하는 규칙에 기초하여 설정되고, 및 numSampT는 크로스 컴포넌트 선형 모델의 파라미터를 유도하는 데 사용되는 위쪽 이웃 행 내의 크로마 샘플 수를 나타내고, nTbW 및 nTbH는 각각 현재 블록의 너비와 높이를 나타내고, numTopRight는 사용 가능한 상단 오른쪽 이웃 샘플의 수를 나타낸다.
32. 제31항목의 방법에 있어서, 규칙은 CCLM을 유도하기 위해 위쪽 이웃 샘플 만 사용하는 제1 CCLM 모드 및 CCLM을 유도하기 위해 왼쪽 이웃 샘플 만 사용하는 제2 CCLM 모드와 다른 일반 CCLM 모드로 코딩 되지 않은 현재 비디오 블록에 적용된다.
33. 제22항목의 방법에 있어서, 위치 규칙은 현재 비디오 블록의 왼쪽 열과 왼쪽 아래 열에 있는 크로마 샘플을 선택하도록 지정하고, 및 왼쪽 열과 왼쪽 아래 열은 각각 H 샘플과 W 샘플을 갖고, W 및 H는 각각 현재 비디오 블록의 너비와 높이이다.
34. 제33항목의 방법에 있어서, 왼쪽 열 및 왼쪽 아래 열 내에서 이용 가능한 샘플 만 선택된다.
35. 제33항목의 방법에 있어서, 위치 규칙은 CCLM을 유도하기 위해 왼쪽 이웃 샘플 만 사용하는 두 번째 CCLM 모드로 코딩 된 현재 비디오 블록에 적용된다.
36. 제33항목의 방법에 있어서, 위치 규칙은, 위쪽 행을 사용할 수 없고 왼쪽 열을 사용할 수 있는 경우 및 현재 비디오 블록이 CCLM을 유도하기 위해 위쪽 이웃 샘플 만을 사용하는 제1 CCLM 모드 및 CCLM을 유도하기 위해 왼쪽 이웃 샘플 만을 사용하는 제2 CCLM 모드와 다른 일반 CCLM 모드로 코딩 된 경우에 적용된다.
37. 제33항목 내지 제36항목 중 어느 한 항목의 방법에 있어서, numSampL은 왼쪽 이웃 샘플을 사용할 수 있는 경우 numSampL이 nTbH와 동일하게 설정되고 및 그렇지 않으면 numSampL이 0으로 설정되도록 지정하는 규칙에 기초하여 설정되고, numSampL은 크로스 컴포넌트 선형 모델의 파라미터를 유도하기 위해 사용되는 왼쪽 이웃 열 내의 크로마 샘플 수를 나타내고, nTbH는 현재 비디오 블록의 높이를 나타낸다.
38. 제37항목의 방법에 있어서, 규칙은 CCLM을 유도하기 위해 이웃 샘플 만 사용하는 제1 CCLM 모드 및 CCLM을 유도하기 위해 왼쪽 이웃 샘플 만 사용하는 제2 CCLM 모드와 다른 일반 CCLM 모드로 코딩 된 현재 비디오 블록에 적용된다.
39. 제33항목 내지 제36항목 중 어느 한 항목의 방법에 있어서, numSampL은 왼쪽 이웃 샘플을 사용할 수 있고 및 현재 비디오 블록이 CCLM을 유도하기 위해 왼쪽 이웃 샘플 만 사용하는 제2 CCLM 모드로 코딩 된 경우 numSampL이 nTbH+Min(numLeftBelow, nTbW)과 동일하게 설정되고 및 그렇지 않으면 numSampL이 0으로 설정되도록 지정하는 규칙에 기초하여 설정되고, 및 numSampL은 크로스 컴포넌트 선형 모델의 파라미터를 유도하기 위해 사용되는 왼쪽 이웃 열 내의 크로마 샘플 수를 나타내고, nTbW 및 nTbH는 각각 현재 블록의 너비와 높이를 나타내고, 및 numLeftBelow는 사용 가능한 왼쪽 아래 이웃 샘플 수를 나타낸다.
40. 제39항목의 방법에 있어서, 규칙은 CCLM을 유도하기 위해 이웃 샘플 만 사용하는 첫 번째 CCLM 모드 및 유도를 위해 왼쪽 이웃 샘플 만 사용하는 두 번째 CCLM 모드와 다른 일반 CCLM 모드로 코딩되지 않은 현재 비디오 블록에 적용된다. CCLM.
41. 제22항목 내지 제40항목 중 어느 한 항목의 방법에 있어서, 선택된 크로마 샘플에 대응하는하는 루마 샘플은 크로스 컴포넌트 선형 모델의 파라미터를 유도하는 데 사용된다.
42. 제41항목의 방법에 있어서, 루마 샘플은 다운 샘플링에 의해 유도된다.
43. 제1항목 내지 제42항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 현재 블록으로부터 코딩 된 표현을 생성하는 단계를 포함한다.
44. 제1항목 내지 제42항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 수행은 코딩 된 표현으로부터 현재 블록을 생성하는 단계를 포함한다.
45. 프로세서 및 명령을 갖는 비 일시적 메모리를 포함하는 비디오 시스템 장치에 있어서, 명령이 프로세서에 의해 실행될 때, 명령은 프로세서로 하여금 제1항목 내지 제44항목 중 어느 한 항목의 방법을 구현하게 한다.
46. 비 일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램에 있어서, 컴퓨터 프로그램은 제1항목 내지 제44항목 중 어느 한 항목의 방법을 수행하기 위한 프로그램 코드를 포함한다.
열한 번째 항목의 세트는 예를 들어 예 20, 21, 22를 포함하여 이전 섹션에 나열된 개시된 기술의 특정 특징 및 측면을 설명한다.
1. 비디오 처리 방법에 있어서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 루마 샘플이 다운 샘플링 되는 위치를 결정하는 단계 - 다운 샘플링 된 루마 샘플은 크로마 샘플 및 다운 샘플링 된 루마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 데 사용되고, 다운 샘플링 된 루마 샘플은 CCLM의 파라미터를 유도하는데 사용되는 크로마 샘플의 위치에 대응하는 위치에 있음 -; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
2. 제1항목의 방법에 있어서, luma 샘플은 현재 비디오 블록을 벗어난 위치에서 다운 샘플링 되지 않고 및 CCLM의 파라미터를 결정하는 데 사용되지 않는다.
3. 비디오 처리 방법에 있어서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록과 연관된 코딩 조건에 기초하여 크로마 샘플 및 루마 샘플을 사용하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 유도하는 방법을 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
4. 제3항목의 방법에 있어서, 코딩 조건은 현재 비디오 블록의 컬러 형식에 대응한다.
5. 제4항목의 방법에 있어서, 컬러 형식은 4: 2: 0 또는 4: 4: 4이다.
6. 제3항목의 방법에 있어서, 코딩 조건은 현재 비디오 블록의 컬러 표현 방법에 대응한다.
7. 제6항목의 방법에 있어서, 컬러 표현 방법은 RGB 또는 YCbCr이다.
8. 제3항목의 방법에 있어서, 크로마 샘플은 다운 샘플링 되고 및 결정하는 단계는 다운 샘플링 된 크로마 샘플의 위치에 의존한다.
9. 제3항목의 방법에 있어서, 파라미터를 유도하는 방법은 크로마 샘플 및 위치 규칙에 기초하여 이웃 크로마 샘플 그룹으로부터 선택된 루마 샘플에 기초하여 CCLM의 파라미터를 결정하는 단계를 포함한다.
10. 제3항목의 방법에 있어서, 파라미터를 유도하는 방법은 크로마 샘플과 루마 샘플의 최대 값과 최소값에 기초하여 CCLM의 파라미터를 결정하는 단계를 포함한다.
11. 제3항목의 방법에 있어서, 파라미터를 유도하는 방법은 두 개의 크로마 샘플 및 대응하는 두 개의 루마 샘플에 의해 완전히 결정 가능한 CCLM의 파라미터를 결정하는 단계를 포함한다.
12. 제3항목의 방법에 있어서, 파라미터를 유도하는 방법은 두 개의 크로마 샘플 값과 두 개의 루마 샘플 값에 따라 엔트리가 검색되는 파라미터 테이블을 사용하여 CCLM의 파라미터를 결정하는 단계를 포함한다.
13. 비디오 처리 방법에 있어서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 이웃 블록의 왼쪽 이웃 블록 및 위쪽 이웃 블록의 가용성에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 유도하는 데 사용되는 루마 컴포넌트 및 크로마 컴포넌트의 최대 값 및/또는 최소 값을 유도할지 여부를 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
14. 제13항목의 방법에 있어서, 최대 값 및/또는 최소값은 왼쪽 이웃 블록과 위쪽 이웃 블록을 사용할 수 없는 경우 유도되지 않는다.
15. 제13항목의 방법에 있어서, 결정하는 단계는 현재 비디오 블록의 이용 가능한 이웃 샘플의 수에 기초하여 결정하고, 및 이용 가능한 이웃 샘플은 크로스 컴포넌트 선형 모델의 파라미터를 유도하는 데 사용된다.
16. 제15항목의 방법에 있어서, 최대 값 및/또는 최소값은 numSampL == 0 및 numSampT == 0의 경우 유도되지 않고, numSampL 및 numSampT는 각각 왼쪽 이웃 블록에서 사용 가능한 이웃 샘플 수와 위쪽 이웃 블록에서 사용 가능한 이웃 샘플 수를 나타내고, 및 왼쪽 이웃 블록으로부터의 이용 가능한 이웃 샘플 및 위쪽 이웃 블록으로부터 이용 가능한 이웃 샘플은 크로스 컴포넌트 선형 모델의 파라미터를 유도하기 위해 사용된다.
17. 제15항목의 방법에 있어서, 최대 값 및/또는 최소값은 numSampL+numSampT == 0의 경우 유도되지 않고, numSampL 및 numSampT는 각각 왼쪽 이웃 블록에서 사용 가능한 이웃 샘플 수와 위쪽 이웃 블록에서 사용 가능한 이웃 샘플 수를 나타내고, 및 왼쪽 이웃 블록으로부터의 이용 가능한 이웃 샘플 및 위쪽 이웃 블록으로부터 이용 가능한 이웃 샘플은 크로스 컴포넌트 선형 모델의 파라미터를 유도하기 위해 사용된다.
18. 제1항목 내지 제17항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 현재 블록으로부터 코딩 된 표현을 생성하는 단계를 포함한다.
19. 제1항목 내지 제42항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 코딩 된 표현으로부터 현재 블록을 생성하는 단계를 포함한다.
20. 프로세서 및 명령을 갖는 비 일시적 메모리를 포함하는 비디오 시스템 장치에 있어서, 명령이 프로세서에 의해 실행될 때, 명령은 프로세서로 하여금 제1항목 내지 제19항목 중 어느 한 항목의 방법을 구현하게 한다.
21. 비 일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램에 있어서, 컴퓨터 프로그램은 제1항목 내지 제19항목 중 어느 한 항목의 방법을 수행하기 위한 프로그램 코드를 포함한다.
열두 번째 항목은 예를 들어 예 23을 포함하여 이전 섹션에 나열된 개시된 기술의 특정 특징 및 측면을 설명한다.
1. 비디오 처리 방법에 있어서, 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 선택된 이웃 샘플 및 레퍼런스 블록의 대응하는 이웃 샘플에 기초하여 선형 모델을 사용하여 코딩 툴의 파라미터를 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
2. 제1항목의 방법에 있어서, 코딩 툴은 변환 동안 현재 비디오 블록에서 조명 변화의 선형 모델을 사용하는 단계를 포함하는 로컬 조명 보상(LIC) 툴이다.
3. 제2항목의 방법에 있어서, 현재 비디오 블록의 이웃 샘플과 레퍼런스 블록의 이웃 샘플은 위치 규칙에 기초하여 선택된다.
4. 제2항목의 방법에 있어서, 코딩 툴의 파라미터는 현재 비디오 블록의 이웃 샘플과 레퍼런스 블록의 이웃 샘플의 최대 값과 최소값에 기초하여 결정된다.
5. 제2항목의 방법에 있어서, 코딩 툴의 파라미터는 현재 비디오 블록의 두 개의 이웃 샘플과 레퍼런스 블록의 두 개의 이웃 샘플에 따라 엔트리가 검색되는 파라미터 테이블을 사용하여 결정된다.
6. 제2항목의 방법에 있어서, 현재 비디오 블록의 이웃 샘플 및 레퍼런스 블록의 이웃 샘플은 코딩 툴의 파라미터를 유도하기 위해 다운 샘플링 된다.
7. 제2항목의 방법에 있어서, LIC 툴의 파라미터를 유도하는 데 사용되는 이웃 샘플은 현재 비디오 블록의 위쪽 행 및/또는 왼쪽 열의 특정 위치에 있는 샘플을 제외한다.
8. 제2항목의 방법에 있어서, 현재 비디오 블록의 왼쪽 상단 샘플은 (x0, y0) 좌표를 갖고, 좌표 (x0, y0-1)를 갖는 샘플은 LIC 툴의 파라미터를 유도하는 데 사용되지 않는다.
9. 제2항목의 방법에 있어서, 현재 비디오 블록의 왼쪽 상단 샘플은 (x0, y0) 좌표를 갖고, 좌표 (x0-1, y0)를 갖는 샘플은 LIC 툴의 파라미터를 유도하는 데 사용되지 않는다.
10. 제7항목의 방법에 있어서, 특정 위치는 위쪽 행 및/또는 왼쪽 열의 가용성에 의존한다.
11. 제7항목의 방법에 있어서, 특정 위치는 현재 비디오 블록의 블록 차원에 의존한다.
12. 제1항목의 방법에 있어서, 결정하는 단계는 위쪽 행 및/또는 왼쪽 열의 가용성에 의존한다.
13. 제2항목의 방법에 있어서, 현재 비디오 블록의 N 개의 이웃 샘플과 레퍼런스 블록의 N 개의 이웃 샘플은 LIC 툴의 파라미터를 유도하는 데 사용된다.
14. 제13항목의 방법에 있어서, N은 4이다.
15. 제13항목의 방법에 있어서, 현재 비디오 블록의 N 개의 이웃 샘플은 현재 비디오 블록의 위쪽 행에서 N/두 개의 샘플과 현재 비디오 블록의 왼쪽 열에서 N/두 개의 샘플을 포함한다.
16. 제13항목의 방법에 있어서, N은 최소(L, T)와 같고, T는 현재 비디오 블록의 사용 가능한 이웃 샘플의 총 수이고 L은 정수이다.
17. 제13항목의 방법에 있어서, N 개의 이웃 샘플은 CCLM의 파라미터를 유도하기 위해 샘플을 선택하는 데 적용할 수 있는 동일한 규칙에 기초하여 선택된다.
18. 제13항목의 방법에 있어서, N 개의 이웃 샘플은 위쪽 샘플만을 사용하는 CCLM의 제1 모드의 파라미터를 유도하기 위해 샘플을 선택하는 데 적용할 수 있는 동일한 규칙에 기초하여 선택된다.
19. 제13항목의 방법에 있어서, N 개의 이웃 샘플은 왼쪽 이웃 샘플 만 사용하는 CCLM의 제2 모드의 파라미터를 유도하기 위해 샘플을 선택하는 데 적용할 수 있는 동일한 규칙에 기초하여 선택된다.
20. 제13항목의 방법에 있어서, 현재 비디오 블록의 N 개의 이웃 샘플은 현재 비디오 블록의 위쪽 행 또는 왼쪽 열의 가용성에 기초하여 선택된다.
21. 비디오 처리 방법에 있어서, 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 현재 비디오 블록의 N 개의 이웃 샘플 및 레퍼런스 블록의 N 개의 대응하는 이웃 샘플에 기초하여 로컬 조명 보상(local illumination compensation)(LIC) 툴의 파라미터를 결정하는 단계 - 현재 비디오 블록의 N 개의 이웃 샘플은 N 개의 이웃 샘플의 위치에 기초하여 선택됨 -; 및 결정하는 단계에 기초하여 변환을 수행하는 단계 - LIC 툴은 변환 동안 현재 비디오 블록에서 조명 변화의 선형 모델을 사용함 - 를 포함한다.
22. 제21항목의 방법에 있어서, 현재 비디오 블록의 N 개의 이웃 샘플은 현재 비디오 블록의 너비와 높이에 기초하여 선택된다.
23. 제21항목의 방법에 있어서, 현재 비디오 블록의 N 개의 이웃 샘플은 현재 비디오 블록의 이웃 블록의 가용성에 기초하여 선택된다.
24. 제21항목의 방법에 있어서, 현재 비디오 블록의 N 개의 이웃 샘플은 현재 비디오 블록의 차원 및 이웃 블록의 가용성에 의존하는 제1 위치 오프셋 값(F) 및 단계 값(S)으로 선택된다.
25. 제1항목 내지 제24항목 중 어느 한 항목의 방법에 있어서, 현재 비디오 블록은 아핀 코딩 된다.
26. 비디오 처리 방법에 있어서, 크로마 블록 인 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 크로마 샘플 및 대응하는 루마 샘플에 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터를 결정하는 단계; 및 결정하는 단계에 기초하여 변환을 수행하는 단계 - 크로마 샘플 중 일부는 패딩 연산에 의해 획득되고 크로마 샘플 및 대응하는 루마 샘플은 두 개의 어레이 G0 및 G1로 그룹화되고, 각 어레이는 두 개의 크로마 샘플과 대응하는 루마 샘플을 포함 - 를 포함한다.
27. 제26항목의 방법에 있어서, cntT와 cntL의 합이 2 인 경우, 다음 연산은: i) pSelComp [3]은 pSelComp [0]과 동일하게 설정되고, ii) pSelComp [2]는 pSelComp [1]과 동일하게 설정되고, iii) pSelComp [0]이 pSelComp [1]과 동일하게 설정되고, 및 iv) pSelComp [1]은 pSelComp [3]과 동일하게 설정되는 순서대로 수행되고, cntT 및 cntL은 각각 위쪽 이웃 블록과 왼쪽 이웃 블록에서 선택된 샘플의 수를 나타내고, 및 pSelComp [0] 내지 pSelComp [3]은 선택된 해당 샘플의 컬러 컴포넌트의 픽셀 값을 나타낸다.
28. 제26항목의 방법에 있어서, 파라미터 결정하는 단계는 G0 [0], G0 [1], G1 [0] 및 G1 [1]의 초기화 값이 포함한다.
29. 제28항목의 방법에 있어서, G0 [0] = 0이고, G0 [1] = 2이고, 및 G1 [0] = 1, G1 [1] = 3이다.
30. 제28항목의 방법에 있어서, 파라미터를 결정하는 단계는, 값을 초기화 한 후, G0 [0] 및 G0 [1]의 두 루마 샘플 값을 비교하여, 크로마 샘플과 G0 [0]의 대응하는 루마 샘플을 G0 [1]의 샘플로 뒤덮는 단계를 더 포함한다.
31. 제30항목의 방법에 있어서, 크로마 샘플과 G0 [0]의 대응하는 루마 샘플은, G0 [0]의 루마 샘플 값이 G0 [1]의 루마 샘플 값보다 큰 경우, G0 [1]의 샘플로 뒤덮인다.
32. 제28항목의 방법에 있어서, 파라미터를 결정하는 단계는, 값을 초기화 한 후, G1 [0] 및 G1 [1]의 두 루마 샘플 값을 비교하여, 크로마 샘플 및 G1 [0]의 대응하는 루마 샘플을 G1 [1]의 샘플로 뒤덮는다.
33. 제32항목의 방법에 있어서, G1 [0]의 루마 샘플 값이 G1 [1]의 루마 샘플 값보다 큰 경우 크로마 샘플 및 G1 [0]의 대응하는 루마 샘플은 G1 [1]의 샘플로 뒤덮인다.
34. 제28항목의 방법에 있어서, 파라미터를 결정하는 단계는, 값을 초기화 한 후, G0 [0]와 G1 [1]의 두 루마 샘플 값을 비교하여, 크로마 샘플 및 G0 [0]의 대응하는 루마 샘플을 G1 [0] 또는 G1 [1]의 샘플로 뒤덮는 단계를 더 포함한다.
35. 제34항목의 방법에 있어서, 크로마 샘플 및 G0 [0] 또는 G0 [1]의 대응하는 루마 샘플은 G0 [0]의 루마 샘플 값이 G1 [1]의 루마 샘플 값보다 큰 경우 G1 [0] 또는 G1 [1]의 루마 샘플로 뒤덮인다.
36. 제28항목의 방법에 있어서, 파라미터를 결정하는 단계는, 값을 초기화 한 후, G0 [1] 및 G1 [0]의 두 루마 샘플 값을 비교하여, 크로마 샘플과 G0[1]의 대응하는 루마 샘플을 G1 [0]의 샘플로 뒤덮는 단계는 더 포함한다.
37. 제36항목의 방법에 있어서, G0 [1]의 루마 샘플 값이 G1 [0]의 루마 샘플 값보다 큰 경우 크로마 샘플 및 G0 [1]의 대응하는 루마 샘플은 G1 [0]의 샘플로 뒤덮인다.
38. 제28항목의 방법에 있어서, 파라미터를 결정하는 단계는, 값을 초기화 한 후, G0 [0], G0 [1], G1 [0] 및 G1 [1]의 두 루마 샘플 값을 비교하여, 다음의 순서: i) 크로마 샘플 및 G0 [0]의 대응하는 루마 샘플을 G0 [1]의 샘플로 뒤덮는 연산, ii) 크로마 샘플 및 G1 [0]의 해당 루마 샘플을 G1 [1]의 샘플로 뒤덮는 연산, iii) 크로마 샘플 및 G0 [0] 또는 G0 [1]의 해당 루마 샘플을 G1 [0] 또는 G1 [1]의 샘플로 뒤덮는 연산, 및 iv) 크로마 샘플 및 G0 [1]의 대응하는 루마 샘플을 G1 [0]의 샘플로 뒤덮는 연산의 순서로 뒤덮는 연산을 더 수행하는 단계를 포함한다.
39. 제1항목 내지 제38항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 현재 블록으로부터 코딩 된 표현을 생성하는 단계를 포함한다.
40. 제1항목 내지 제38항목 중 어느 한 항목의 방법에 있어서, 변환을 수행하는 단계는 코딩 된 표현으로부터 현재 블록을 생성하는 단계를 포함한다.
41. 프로세서 및 명령을 갖는 비 일시적 메모리를 포함하는 비디오 시스템 장치에 있어서, 명령이 프로세서에 의해 실행될 때, 명령은 프로세서로 하여금 제1항목 내지 제40항목 중 어느 한 항목의 방법을 구현하게 한다.
42. 비 일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램에 있어서, 컴퓨터 프로그램은 제1항목 내지 제40항목 중 어느 한 항목의 방법을 수행하기 위한 프로그램 코드를 포함한다.
앞서 말한 것에서, 현재 개시된 기술의 특정 실시 예가 예시의 목적으로 여기에 설명되었지만, 본 발명의 범위를 벗어나지 않고 다양한 수정이 이루어질 수 있다는 것이 이해될 것이며, 따라서, 현재 개시된 기술은 첨부된 청구 범위를 제외하고는 제한되지 않는다.
이 특허 문서에 설명된 주제 및 기능적 작업의 구현은 본 명세서에 개시된 구조 및 그 구조적 등가물을 포함하거나, 이들 중 하나 이상의 조합을 포함하는 다양한 시스템, 디지털 전자 회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있다. 이 명세서에 설명된 주제의 구현은 하나 이상의 컴퓨터 프로그램 제품으로 구현될 수 있으며, 즉 데이터 처리 장치에 의한 실행을 위해 또는 데이터 처리 장치의 동작을 제어하기 위해 유형의 비 일시적 컴퓨터 판독 가능 매체에 인코딩 된 컴퓨터 프로그램 명령의 하나 이상의 모듈이다. 컴퓨터 판독 가능 매체는 기계 판독 가능 저장 장치, 기계 판독 가능 저장 기판, 메모리 장치, 기계 판독 가능 전파 신호에 영향을 미치는 물질의 구성, 또는 이들 중 하나 이상의 조합 일 수 있다. 용어 "데이터 처리 유닛(data processing unit)" 또는 "데이터 처리 장치(data processing apparatus)"는 데이터 처리를 위한 모든 장치, 장치 및 기계를 포함하며, 예를 들어 프로그램 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 포함한다. 이 장치는 하드웨어 외에도 해당 컴퓨터 프로그램의 실행 환경을 생성하는 코드를 포함할 수 있으며, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 이들 중 하나 이상의 조합을 구성하는 코드이다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 응용 프로그램, 스크립트 또는 코드라고도 함)은 컴파일 된 언어 나 해석된 언어를 포함하여 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램 또는 모듈, 구성 요소, 서브 루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 유닛을 포함하는 모든 형태로 배포될 수 있다. 컴퓨터 프로그램이 반드시 파일 시스템의 파일에 해당하는 것은 아니다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크 업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일부, 해당 프로그램 전용의 단일 파일, 또는 여러 조정 파일(예를 들어, 하나 이상의 모듈, 하위 프로그램 또는 코드 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 위치하거나 여러 사이트에 분산되고 통신 네트워크로 상호 연결된 여러 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에 설명된 프로세스 및 로직 흐름은 입력 데이터에 대해 작동하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능한 프로세서에 의해 수행될 수 있다. 프로세스 및 로직 흐름은 또한 FPGA(필드 프로그래밍 가능 게이트 어레이) 또는 ASIC(애플리케이션 특정 집적 회로)와 같은 특수 목적 로직 회로로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예를 들어 범용 및 특수 목적의 마이크로 프로세서와 모든 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로 프로세서는 읽기 전용 메모리 나 랜덤 액세스 메모리 또는 둘 다에서 명령과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령을 수행하기 위한 프로세서와 명령과 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치, 예를 들어 자기, 광 자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 데이터를 전송하거나 둘 모두를 포함하거나 작동 가능하게 결합된다. 그러나 컴퓨터에는 이러한 장치가 필요하지 않다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는 예를 들어 EPROM, EEPROM 및 플래시 메모리 장치와 같은 반도체 메모리 장치를 포함하는 모든 형태의 비 휘발성 메모리, 매체 및 메모리 장치를 포함한다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
도면과 함께 명세서는 단지 예시적인 것으로 간주되는 것으로 의도되며, 여기서 예시는 예를 의미한다. 본 명세서에서 사용된 바와 같이, "또는"의 사용은 문맥이 달리 명시하지 않는 한 "및/또는"을 포함하는 것으로 의도된다.
이 특허 문서에는 많은 세부 사항이 포함되어 있지만, 이는 모든 발명의 범위 또는 청구 대상에 대한 제한으로 해석되어서는 안되며, 특정 발명의 특정 실시 예에 특정할 수 있는 특징에 대한 설명으로 해석되어야 한다. 개별 실시 예의 맥락에서 본 특허 문서에 설명된 특정 특징은 또한 단일 실시 예에서 조합하여 구현될 수 있다. 반대로, 단일 실시 예의 맥락에서 설명된 다양한 특징은 또한 다중 실시 예에서 개별적으로 또는 임의의 적절한 하위 조합으로 구현될 수 있다. 더욱이, 특징이 특정 조합으로 작용하는 것으로 위에서 설명될 수 있고 심지어 처음에 그렇게 주장될 수도 있지만, 청구된 조합에서 하나 이상의 특성이 경우에 따라 조합에서 제외될 수 있다. 청구된 조합은 하위 조합 또는 하위 조합의 변형에 대한 것일 수 있다.
마찬가지로, 작업은 특정 순서로 도면에 표시되지만, 이는 바람직한 결과를 달성하기 위해 그러한 동작이 도시된 특정 순서 또는 순차적 인 순서로 수행되거나 모든 예시된 동작이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 더욱이, 이 특허 문헌에 설명된 실시 예에서 다양한 시스템 구성 요소들의 분리는 모든 실시 예에서 그러한 분리를 요구하는 것으로 이해되어서는 안된다.
단지 몇 가지 구현 및 예가 설명되고 다른 구현, 향상 및 변형은이 특허 문서에서 설명되고 예시된 것에 기초하여 이루어질 수 있다.
Claims (27)
- 비디오 데이터의 처리 방법에 있어서,
크로마 블록인 비디오의 현재 비디오 블록과 상기 비디오의 비트스트림 사이의 변환을 위해, R 크로마 샘플 및 다운샘플링된 이웃 루마 샘플에 적어도 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터의 값(values)를 결정하는 단계 - 상기 R 크로마 샘플은 위치 규칙에 기초하여 이웃 크로마 샘플의 그룹으로부터 선택되고, R은 2보다 크거나 같고, 상기 다운샘플링된 이웃 루마 샘플은 상기 현재 비디오 블록의 컬러 포맷에 기초한 다운샘플링 프로세스로 생성됨 -; 및
상기 파라미터의 상기 값에 기초하여 상기 변환을 수행하는 단계
를 포함하고,
이웃 크로마 샘플의 상기 그룹의 적어도 하나의 이웃 크로마 샘플은 상기 현재 비디오 블록의 크기에 기초한 상기 R 크로마 샘플에 속하지 않고, 및 상기 R 크로마 샘플에 속하지 않는 상기 적어도 하나의 이웃 크로마 샘플에 대응하는 이웃 루마 샘플은 상기 다운샘플링 프로세스에 적용되지 않는,
비디오 데이터 처리 방법.
- 제1항에 있어서,
상기 위치 규칙에서, 상기 R 선택된 크로마 샘플의 위치는 제1 위치 오프셋 값(F) 및 스텝 값(S)에 기초하여 선택되고, 상기 F 및 상기 S는 이웃 크로마 샘플의 상기 그룹의 가용성(availability) 및 상기 현재 비디오 블록의 상기 크기에 적어도 기초하여 유도되는,
비디오 데이터 처리 방법.
- 제1항에 있어서,
이웃 크로마 샘플의 상기 그룹은 왼쪽-이웃 크로마 샘플 및 위쪽-이웃 크로마 샘플을 포함하고,
루마 컴포넌트 및 크로마 컴포넌트의 최대 값 및/또는 최소 값은, 상기 파라미터의 상기 값을 생성하도록 도출되고, 상기 최대 값 및/또는 상기 최소 값은 상기 윈쪽-이웃 크로마 샘플 및 상기 위쪽-이웃 크로마 샘플에 기초하여 유도되는.
비디오 데이터 처리 방법.
- 제3항에 있어서,
상기 최대 값 및/또는 상기 최소 값은, 상기 윈쪽-이웃 크로마 샘플 및 상기 위쪽-이웃 크로마 샘플이 사용될 수 없는 경우 유도되지 않고,
상기 최대 값 및/또는 상기 최소 값은, numSampL == 0 및 numSampT == 0 - 상기 numSampL 및 상기 numSampT가 사용가능한 왼쪽-이웃 크로마 샘플의 수 및 사용가능한 위쪽-이웃 크로마 샘플의 수를 각각 나타냄 - 인 경우 유도되지 않고,
상기 최대 값 및/또는 상기 최소 값은, numSampL + numSampT == 0 - 상기 numSampL 및 상기 numSampT가 사용가능한 왼쪽-이웃 크로마 샘플의 수 및 사용가능한 위쪽-이웃 크로마 샘플의 수를 각각 나타냄 - 인 경우 유도되지 않는,
비디오 데이터 처리 방법.
- 제3항에 있어서,
상기 최대 값 및/또는 상기 최소 값은, ncntL == 0 및 cntT == 0 - 상기 cntL 및 상기 cntT는 상기 왼쪽-이웃 크로마 샘플로부터 선택된 크로마 샘플의 수 및 상기 위쪽-이웃 크로마 샘플로부터 선택된 크로마 샘플의 수를 각각 나타냄 - 인 경우 유도되지 않고,
상기 최대 값 및/또는 상기 최소 값은, cntL + cntT == 0 - 상기 cntL 및 상기 cntT는 상기 왼쪽-이웃 크로마 샘플로부터 선택된 크로마 샘플의 수 및 상기 위쪽-이웃 크로마 샘플로부터 선택된 크로마 샘플의 수를 각각 나타냄 - 인 경우 유도되지 않는,
비디오 데이터 처리 방법.
- 제2항에 있어서,
F= Floor (numSampL /2i) 또는 F= Floor (numSampT /2i) - 상기 numSampL 및 상기 numSampT는 사용가능한 왼쪽-이웃 크로마 샘플의 수 및 사용가능한 위쪽-이웃 크로마 샘플의 수를 각각 나타냄 - 이고, 상기 플로어(Floor) 연산은 넘부(number)의 정수부를 획득하는데 사용되고,
S=Max(1, Floor (numSampL /2j)) 또는 S=Max(1, Floor (numSampT /2j))이고, 맥스(Max) 연산은 멀티플(multiple) 넘버의 최대(maximum)를 획득하는데 사용되고, 및
i는 2 또는 3과 같고, j는 1 또는 2와 같은,
비디오 데이터 처리 방법.
- 제1항에 있어서,
상기 변환을 위해, 상기 현재 비디오 블록의 이웃 크로마 샘플로부터의 2개 이상의 크로마 샘플에 적어도 기초하여 상기 CCLM의 상기 파라미터를 결정하는 단계 - 상기 2개 이상의 크로마 샘플은 상기 현재 비디오 블록의 CCLM 모드 및 상기 이웃 크로마 샘플의 가용성에 기초하여 선택됨 -;
상기 현재 비디오 블록의 예측 값을 유도하기 위해 상기 현재 비디오 블록에 대응하는 루마 블록에 위치한 루마 샘플에 상기 CCLM을 적용하는 단계; 및
상기 예측 값에 더 기초하여 상기 변환을 수행하는 단계
를 더 포함하는,
비디오 데이터 처리 방법.
- 제7항에 있어서,
상기 이웃 크로마 샘플은, 상기 현재 비디오 블록에 대하여(relative to), 왼쪽-이웃 크로마 샘플, 위쪽-이웃 크로마 샘플, 위쪽-오른쪽 이웃 크로마 샘플, 또는 아래쪽-외쪽 이웃 크로마 샘플을 포함하는,
비디오 데이터 처리 방법.
- 재7항에 있어서,
상기 현재 비디오 블록의 상기 CCLM 모드는, 왼쪽-이웃 크로마 샘플 및 위쪽-이웃 크로마 샘플에 기초하여 CCLM의 상기 파라미터를 도출하는 제1 CCLM 모드, 왼쪽-이웃 크로마 샘플 및 아래쪽-왼쪽-이웃 크로마 샘플에 기초하여 CCLM의 상기 파라미터를 도출하는 제2 CCLM 모드, 및 위쪽-이웃 크로마 샘플 및 위쪽-오른쪽-이웃 크로마 샘플에 기초하여 CCLM의 상기 파라미터를 도출하는 제3 CCLM 모드 중 어느 하나이고, 상기 비디오 블록의 폭과 높이는 각각 W 및 H인,
비디오 데이터 처리 방법.
- 제9항에 있어서,
상기 2개 이상의 크로마 샘플은 상기 W 및 상기 H에 더 기초하여 선택되고,
정확히 2개의 크로마 샘플은, 상기 위쪽-이웃 크로마 샘플만 사용가능한 것, 상기 현재 비디오 블록의 상기 CCLM 모드가 상기 제1 CCLM 모드인 것, 및 상기 W가 2와 같은 것에 응답하여 상기 위쪽-이웃 크로마 샘플로부터 선택되고, 또는
정확히 2개의 크로마 샘플은, 상기 왼쪽-이웃 크로마 샘플만 사용가능한 것, 상기 현재 비디오 블록의 상기 CCLM 모드가 상기 제1 CCLM 모드인 것, 및 상기 H가 2와 같은 것에 응답하여 상기 왼쪽-이웃 크로마 샘플로부터 선택되고, 또는
정확히 4개의 크로마 샘플은, 상기 위쪽-이웃 크로마 샘플만 사용가능한 것, 상기 현재 비디오 블록의 상기 CCLM 모드가 상기 제1 CCLM 모드인 것, 및 상기 W가 2보다 큰 것에 응답하여 상기 위쪽-이웃 크로마 샘플로부터 선택되고, 또는
정확히 4개의 크로마 샘플은, 상기 왼쪽-이웃 크로마 샘플만 사용가능한 것, 상기 현재 비디오 블록의 상기 CCLM 모드가 상기 제1 CCLM 모드인 것, 및 상기 H가 2보다 큰 것에 응답하여 상기 왼쪽-이웃 크로마 샘플로부터 선택되고, 또는
정확히 2개의 크로마 샘플은, 상기 왼쪽-이웃 크로마 샘플만 사용가능한 것, 상기 현재 비디오 블록의 상기 CCLM 모드가 상기 제2 CCLM 모드인 것, 및 상기 H가 2와 같은 것에 응답하여 상기 왼쪽-이웃 크로마 샘플로부터 선택되고, 또는
정확히 4개의 크로마 샘플은, 상기 왼쪽-이웃 크로마 샘플만 사용가능한 것, 상기 현재 비디오 블록의 상기 CCLM 모드가 상기 제2 CCLM 모드인 것, 및 상기 H가 2보다 큰 것에 응답하여 상기 왼쪽-이웃 크로마 샘플로부터 선택되고, 또는
정확히 2개의 크로마 샘플은, 상기 위쪽-이웃 크로마 샘플만 사용가능한 것, 상기 현재 비디오 블록의 상기 CCLM 모드가 상기 제3 CCLM 모드인 것, 및 상기 W가 2와 같은 것에 응답하여 상기 위쪽-이웃 크로마 샘플로부터 선택되고, 또는
정확히 4개의 크로마 샘플은, 상기 위쪽-이웃 크로마 샘플만 사용가능한 것, 상기 현재 비디오 블록의 상기 CCLM 모드가 상기 제3 CCLM 모드인 것, 및 상기 ㅉ가 2보다 큰 것에 응답하여 상기 위쪽-이웃 크로마 샘플로부터 선택되는,
비디오 데이터 처리 방법.
- 제9항에 있어서,
상기 왼쪽-이웃 크로마 샘플 및 상기 위쪽-이웃 크로마 샘플 모두 사용 가능한 것 및 상기 현재 비디오 블록의 상기 CCLM 모드가 상기 제1 CCLM 모드인 것에 응답하여, 2개의 크로마 샘플은 상기 왼쪽-이웃 크로마 샘플로부터 선택되고, 다른 2개의 크로마 샘플은 상기 위쪽-이웃 크로마 샘플로부터 선택되고, 또는
상기 왼쪽-이웃 크로마 샘플 및 상기 아래쪽-왼쪽-이웃 크로마 샘플 모두 사용 가능한 것 및 상기 현재 비디오 블록의 상기 CCLM 모드가 상기 제2 CCLM 모드인 것에 응답하여, 정확히 4개의 크로마 샘플은 상기 왼쪽-이웃 크로마 샘플 및 상기 아래쪽-왼쪽 이웃 크로마 샘플로부터 선택되고, 또는
상기 위쪽-이웃 크로마 샘플 및 상기 위쪽-오른쪽-이웃 크로마 샘플 모두 사용 가능한 것 및 상기 현재 비디오 블록의 상기 CCLM 모드가 상기 제3 CCLM 모드인 것에 응답하여, 정확히 4개의 크로마 샘플은 상기 위쪽-이웃 크로마 샘플 및 상기 위쪽-오른쪽-이웃 크로마 샘플로부터 선택되는,
비디오 데이터 처리 방법.
- 제7항에 있어서,
상기 2개 이상의 크로마 샘플에 대응하는 2개 이상의 루마 샘플을 결정하는 단계
를 더 포함하고,
4개의 루마 샘플이 결정된 것에 응답하여, 각각, 제1 평균 루마 값이 상기 4개의 루마 샘플의 2개의 최대 값을 평균한 것에 기초하여 유도되고, 및 제2 평균 루마 값이 상기 4개의 루마 샘플의 2개의 최소 값을 평균한 것에 기초하여 유도되고,
상기 제1 평균 루마 값 및 상기 제2 평균 루마 값은 CCLM의 상기 파라미터를 유도하는데 사용되는,
비디오 데이터 처리 방법.
- 제1항에 있어서,
상기 변환을 위해, 상기 현재 비디오 블록의 이웃 크로마 샘플로부터의 선택된, 선택된 크로마 샘플에 적어도 기초하여 상기 CCLM의 상기 파라미터를 결정하는 단계 - 상기 선택된 크로마 샘플의 상기 위치는 제1 위치 오프셋 값(F) 및 스탭 값(S)으로부터 유도되고, 상기 F 및 상기 S는 상기 이웃 크로마 샘플의 가용성(availability) 및 상기 현재 비디오 블록의 상기 디멘전(dimension)에 적어도 기초하여 유도됨 -;
상기 현재 비디오 블록의 예측 값을 유도하기 위해 상기 현재 비디오 블록에 대응하는 루마 블록에 위치한 루마 샘플에 상기 CCLM을 적용하는 단계; 및
상기 예측 값에 더 기초하여 상기 변환을 수행하는 단계
를 더 포함하는,
비디오 데이터 처리 방법.
- 제13항에 있어서,
상기 이웃 크로마 샘플은, 상기 현재 비디오 블록에 대하여(relative to), 왼쪽-이웃 크로마 샘플, 위쪽-이웃 크로마 샘플, 위쪽-오른쪽 이웃 크로마 샘플, 또는 아래쪽-외쪽 이웃 크로마 샘플을 포함하고, 및
F= Floor(M/2i) - M은 수평(horizontal) 방향에서 상기 선택된 크로마 샘플을 유도하는데 사용되는 상기 이웃 크로마 샘플의 수임 - 또는 F= Floor(N/2i) - N은 수직(vertical) 방향에서 상기 선택된 크로마 샘플을 유도하는데 사용되는 상기 이웃 크로마 샘플의 수임 - 이고,
i는 2 또는 3과 같고, 상기 Floor 연산은 넘버의 정수부를 획득하는데 사용되는,
비디오 데이터 처리 방법.
- 제14힝에 있어서,
S=Max(1, Floor (M/2j)) 또는 S=Max(1, Floor (N/2j)) - j는 1 또는 2와 같고, 맥스(Max) 연산은 멀티플(multiple) 넘버의 최대(maximum)를 획득하는데 사용됨 - 이고,
상기 M 및 상기 N은 모두 W+H 보다 작거나 같고, 상기 현재 비디오 블록의 CCLM 모드에 기초하여 결정되고, W 및 H는 각각 상기 현재 비디오 블록의 폭과 높이 이고, 및
상기 현재 비디오 블록의 상기 CCLM 모드는, 왼쪽-이웃 크로마 샘플 및 위쪽-이웃 크로마 샘플에 기초하여 CCLM의 상기 파라미터를 도출하는 제1 CCLM 모드, 왼쪽-이웃 크로마 샘플 및 아래쪽-왼쪽-이웃 크로마 샘플에 기초하여 CCLM의 상기 파라미터를 도출하는 제2 CCLM 모드, 및 위쪽-이웃 크로마 샘플 및 위쪽-오른쪽-이웃 크로마 샘플에 기초하여 CCLM의 상기 파라미터를 도출하는 제3 CCLM 모드 중 어느 하나인.
비디오 데이터 처리 방법.
- 제14항에 있어서,
수평 방향에서 2개의 크로마 셈플을 선택하는 것에 응답하여, 수평 방향에서 2개의 선택된 크로마 샘플의 위치는 Floor(M/4) 및 Floor (M/4) + Floor (M/2)이고, 또는
수직 방향에서 2개의 크로마 셈플을 선택하는 것에 응답하여, 수직 방향에서 2개의 선택된 크로마 샘플의 위치는 Floor(N/4) 및 Floor (N/4) + Floor(N/2)이고, 또는
수평 방향에서 4개의 크로마 셈플을 선택하는 것에 응답하여, 수평 방향에서 4개의 선택된 크로마 샘플의 위치는 Floor(M/8), Floor (M/8) + Floor (M/4), Floor (M/8) + 2*Floor (M/4), 및 Floor (M/8) + 3*Floor (M/4)이고, 또는
수직 방향에서 4개의 크로마 셈플을 선택하는 것에 응답하여, 수직 방향에서 4개의 선택된 크로마 샘플의 위치는 Floor(N/8), Floor(N/8)+Floor (N/4), Floor(N/8)+2*Floor (N/4), 및 Floor(N/8)+3*Floor (N/4)인,
비디오 데이터 처리 방법.
- 제15항에 있어서,
상기 CCLM 모드가 상기 제1 CCLM 모드인 것 및 상기 위쪽-이웃 크로마 샘플이 사용가능한 것에 응답하여, M은 W와 같고, 또는
상기 CCLM 모드가 상기 제3 CCLM 모드인 것, 상기 위쪽-이웃 크로마 샘플이 사용가능한 것, 및 상기 위쪽-오른쪽 크로마 샘플이 사용가능하지 않은 것에 응답하여, M은 W와 같고, 또는
상기 CCLM 모드가 상기 제1 CCLM 모드인 것 및 상기 왼쪽-이웃 크로마 샘플이 사용가능한 것에 응답하여, N은 H와 같고, 또는
상기 CCLM 모드가 상기 제2 CCLM 모드인 것, 상기 왼쪽-이웃 크로마 샘플이 사용가능한 것, 및 상기 아래쪽-왼쪽 크로마 샘플이 사용가능하지 않은 것에 응답하여, N은 H와 같은,
비디오 데이터 처리 방법.
- 제13항에 있어서,
상기 현재 비디오 블록의 상기 이웃 크로마 샘플이 사용가능하지 않은 것에 응답하여, 상기 현재 비디오 블록의 상기 예측 값은 디폴트 값으로 설정되고,
상기 디폴트 값은 1<<(BitDepth-1)와 같고, BitDepth는 상기 크로마 샘플의 비트-깊이를 표현하는,
비디오 데이터 처리 방법.
- 제1항에 있어서,
상기 변환을 위해, maxY, maxC, minY, 및 minC에 기초하여 상기 CCLM의 상기 파라미터를 결정하는 단계 - 상기 maxY, 상기 maxC, 상기 minY, 및 상기 minC는 2개 또는 4개의 인덱스로부터 유도되고, 인덱스는 크로마 샘플 및 대응하는 루마 샘플과 매핑됨 -; 및
상기 결정에 더 기초하여 상기 변환을 수행하는 단계
를 더 포함하는,
비디오 데이터 처리 방법.
- 제19항에 있어서,
상기 현재 비디오 블록의 상기 컬러 포맷이 4:2:0 또는 4:2:2인 경우, 상기 대응하는 루마 샘플은 다운샘플링에 의해 획득되고, 상기 현재 비디오 블록의 상기 컬러 포맷이 4:4:4인 경우, 상기 대응하는 루마 샘플은 다운샘플링 없이 획득되는.
비디오 데이터 처리 방법.
- 제19항에 있어서,
크로마 샘플 및 상기 maxY, 상기 maxC, 상기 minY, 및 상기 minC를 유도하는데 사용되는 2개의 원래(original) 인덱스와 매핑되는 2개의 대응하는 루마 샘플에 응답하여, 2개의 패딩된(padded) 크로마 샘플 및 2개의 패딩된 루마 샘플을 생성하도록 패딩 연산을 적용하고,
상기 maxY는 상기 2개의 원래 인덱스와 매핑되는 상기 2개의 루마 샘플 중 더 큰 것과 같고, 상기 maxC는 상기 더 큰 루마 샘플에 대응하는 크로마 샘플과 같고, 상기 minY는 기 2개의 원래 인덱스와 매핑되는 상기 2개의 루마 샘플 중 더 작은 것과 같고, 상기 minC는 상기 더 작은 루마 샘플에 대응하는 크로마 샘플과 같고, 및
상기 2개의 원래 인덱스는 S0 및 S1으로 표시되고, 상기 패딩된 크로마 샘플 및 상기 2개의 패딩된 루마 샘플과 매핑되는 2개의 매핑된 인덱스는 S2 및 S3로 표시되고, 상기 패딩 연산은 아래의 순서대로 수행되는:
1) S0과 매핑된 상기 크로마 샘플 및 상기 대응하는 루마 샘플은, 각각 S3와 매핑된 상기 크로마 샘플 및 상기 대응하는 루마 샘플에 복사(copy)됨;
2) S1과 매핑된 상기 크로마 샘플 및 상기 대응하는 루마 샘플은, 각각 S2와 매핑된 상기 크로마 샘플 및 상기 대응하는 루마 샘플에 복사(copy)됨;
3) S1과 매핑된 상기 크로마 샘플 및 상기 대응하는 루마 샘플은, 각각 S0와 매핑된 상기 크로마 샘플 및 상기 대응하는 루마 샘플에 복사(copy)됨;
4) S3과 매핑된 상기 크로마 샘플 및 상기 대응하는 루마 샘플은, 각각 S1와 매핑된 상기 크로마 샘플 및 상기 대응하는 루마 샘플에 복사(copy)됨;
비디오 데이터 처리 방법.
- 제19항에 있어서,
4개의 크로마 샘플 및 상기 maxY, 상기 maxC, 상기 minY, 및 상기 minC를 유도하는데 사용되는 4개의 인덱스와 매핑되는 4개의 대응하는 루마 샘플에 응답하여, 상기 4개의 인덱스는 2개의 어레이 G0 및 G1으로 분할되고, 각 어레이는 2개의 인덱스를 포함하고,
G0[0]= S0, G0[1]= S2, G1[0]=S1, 및 G1[1]=S3 이고, 각 S0, S1, S2, 및 S3는, 크로마 샘플 및 대응하는 루마 샘플과 매핑되는 하나의 인덱스를 나타내고,
상기 방법은, 상기 루마 샘플 G0[0] 및 상기 루마 샘플 G0[1] 간의 제1 비교를 적용하는 단계; 및 상기 제1 비교에 기초하여 G0[0] 및 G0[1]을 선택적으로 스왑(swap)하는 단계를 더 포함하고,
상기 방법은, 상기 루마 샘플 G0[0]이 상기 루마 샘플 G0[1] 보다 큰 것에 응답하여 G0[0] 및 G0[1]을 스왑(swap)하는 단계를 더 포함하고,
상기 방법은, 상기 제1 비교 이후 상기 루마 샘플 G1[0] 및 상기 루마 샘플 G1[1] 간의 제2 비교를 적용하는 단계; 및 상기 제2 비교에 기초하여 G1[0] 및 G1[1]을 선택적으로 스왑(swap)하는 단계를 더 포함하고,
상기 방법은, 상기 루마 샘플 G1[0]이 상기 루마 샘플 G1[1] 보다 큰 것에 응답하여 G1[0] 및 G1[1]을 스왑(swap)하는 단계를 더 포함하고,
상기 방법은, 상기 제2 비교 이후 상기 루마 샘플 G0[0] 및 상기 루마 샘플 G1[1] 간의 제3 비교를 적용하는 단계; 및 상기 제3 비교에 기초하여 G0 및 G1을 선택적으로 스왑(swap)하는 단계를 더 포함하고, G0 및 G1을 스왑하는 단계는 G0[0] 및 G1[0]을 스왑하는 단계 및 G0[1] 및 G1[1]을 스왑하는 단계를 포함하고,
상기 방법은, 상기 루마 샘플 G0[0]이 상기 루마 샘플 G1[1] 보다 큰 것에 응답하여 G0 및 G1을 스왑(swap)하는 단계를 더 포함하고,,
상기 방법은, 상기 제3 비교 이후 상기 루마 샘플 G0[1] 및 상기 루마 샘플 G1[0] 간의 제4 비교를 적용하는 단계; 및 상기 제4 비교에 기초하여 G0[1] 및 G1[0]를 선택적으로 스왑하는 단계를 더 포함하고,
상기 방법은, 상기 루마 샘플 G0[1]이 상기 루마 샘플 G1[0] 보다 큰 것에 응답하여 G0[1] 및 G1[0]을 스왑(swap)하는 단계를 더 포함하고,
상기 방법은, 상기 제4 비교 이후, 상기 루마 샘플 G0[1] 및 G1[0]의 평균에 기초하여 상기 maxY를, 상기 크로마 샘플 G0[1] 및 G1[0]의 평균에 기초하여 상기 maxC를 유도하는 단계를 더 포함하고, 및
상기 방법은, 상기 제4 비교 이후, 상기 루마 샘플 G0[0] 및 G0[1]의 평균에 기초하여 상기 maxY를, 상기 크로마 샘플 G0[0] 및 G0[1]의 평균에 기초하여 상기 maxC를 유도하는 단계를 더 포함하는,
비디오 데이터 처리 방법.
- 제1항 내지 제22항 중 어느 하나의 항에 있어서,
상기 변환은 상기 현재 비디오 블록을 상기 비트스트림으로 인코딩하는 단계
를 포함하는,
비디오 데이터 처리 방법.
- 제1항 내지 제22항 중 어느 하나의 항에 있어서,
상기 변환은 상기 현재 비디오 블록을 상기 비트스트림으로부터 디코딩하는 단계
를 포함하는,
비디오 데이터 처리 방법.
- 프로세서 및 명령어들을 저장하는 비일시적 메모리를 포함하는 비디오 데이터 처리 장치에 있어서,
상기 명령어들이 상기 프로세서세 의해 실행되는 경우, 상기 프로세서로 하여금:
크로마 블록인 비디오의 현재 비디오 블록과 상기 비디오의 비트스트림 사이의 변환을 위해, R 크로마 샘플 및 다운샘플링된 이웃 루마 샘플에 적어도 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터의 값(values)를 결정하는 동작 - 상기 R 크로마 샘플은 위치 규칙에 기초하여 이웃 크로마 샘플의 그룹으로부터 선택되고, R은 2보다 크거나 같고, 상기 다운샘플링된 이웃 루마 샘플은 상기 현재 비디오 블록의 컬러 포맷에 기초한 다운샘플링 프로세스로 생성됨 -; 및
상기 파라미터의 상기 값에 기초하여 상기 변환을 수행하는 동작
를 하도록 하고,
이웃 크로마 샘플의 상기 그룹의 적어도 하나의 이웃 크로마 샘플은 상기 현재 비디오 블록의 크기에 기초한 상기 R 크로마 샘플에 속하지 않고, 및 상기 R 크로마 샘플에 속하지 않는 상기 적어도 하나의 이웃 크로마 샘플에 대응하는 이웃 루마 샘플은 상기 다운샘플링 프로세스에 적용되지 않는,
비디오 데이터 처리 장치.
- 명령어들을 저장하는 비일시적 컴퓨터 판독가능 저장매체에 있어서,
상기 명령어들은 프로세서로 하여금:
크로마 블록인 비디오의 현재 비디오 블록과 상기 비디오의 비트스트림 사이의 변환을 위해, R 크로마 샘플 및 다운샘플링된 이웃 루마 샘플에 적어도 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터의 값(values)를 결정하는 동작 - 상기 R 크로마 샘플은 위치 규칙에 기초하여 이웃 크로마 샘플의 그룹으로부터 선택되고, R은 2보다 크거나 같고, 상기 다운샘플링된 이웃 루마 샘플은 상기 현재 비디오 블록의 컬러 포맷에 기초한 다운샘플링 프로세스로 생성됨 -; 및
상기 파라미터의 상기 값에 기초하여 상기 변환을 수행하는 동작
를 하도록 하고,
이웃 크로마 샘플의 상기 그룹의 적어도 하나의 이웃 크로마 샘플은 상기 현재 비디오 블록의 크기에 기초한 상기 R 크로마 샘플에 속하지 않고, 및 상기 R 크로마 샘플에 속하지 않는 상기 적어도 하나의 이웃 크로마 샘플에 대응하는 이웃 루마 샘플은 상기 다운샘플링 프로세스에 적용되지 않는,
비일시적 컴퓨터 판독가능 저장매체.
- 비디오의 비트스트림을 저장하는 비일시적 컴퓨터 판독가능 저장매체에 있어서,
상기 비트스트림은 비디오 처리 장치에 의해서 수행되는 방법에 의해 생성되고, 상기 방법은:
크로마 블록인 비디오의 현재 비디오 블록과 상기 비디오의 비트스트림 사이의 변환을 위해, R 크로마 샘플 및 다운샘플링된 이웃 루마 샘플에 적어도 기초하여 크로스 컴포넌트 선형 모델(CCLM)의 파라미터의 값(values)를 결정하는 단계 - 상기 R 크로마 샘플은 위치 규칙에 기초하여 이웃 크로마 샘플의 그룹으로부터 선택되고, R은 2보다 크거나 같고, 상기 다운샘플링된 이웃 루마 샘플은 상기 현재 비디오 블록의 컬러 포맷에 기초한 다운샘플링 프로세스로 생성됨 -; 및
상기 파라미터의 상기 값에 기초하여 상기 변환을 수행하는 단계
를 포함하고,
이웃 크로마 샘플의 상기 그룹의 적어도 하나의 이웃 크로마 샘플은 상기 현재 비디오 블록의 크기에 기초한 상기 R 크로마 샘플에 속하지 않고, 및 상기 R 크로마 샘플에 속하지 않는 상기 적어도 하나의 이웃 크로마 샘플에 대응하는 이웃 루마 샘플은 상기 다운샘플링 프로세스에 적용되지 않는,
비일시적 컴퓨터 판독가능 저장매체.
Applications Claiming Priority (20)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2018119709 | 2018-12-07 | ||
CNPCT/CN2018/119709 | 2018-12-07 | ||
CNPCT/CN2018/125412 | 2018-12-29 | ||
CN2018125412 | 2018-12-29 | ||
CN2019070002 | 2019-01-01 | ||
CNPCT/CN2019/070002 | 2019-01-01 | ||
CN2019075874 | 2019-02-22 | ||
CNPCT/CN2019/075874 | 2019-02-22 | ||
CNPCT/CN2019/075993 | 2019-02-24 | ||
CN2019075993 | 2019-02-24 | ||
CN2019076195 | 2019-02-26 | ||
CNPCT/CN2019/076195 | 2019-02-26 | ||
CN2019079396 | 2019-03-24 | ||
CNPCT/CN2019/079396 | 2019-03-24 | ||
CN2019079431 | 2019-03-25 | ||
CNPCT/CN2019/079431 | 2019-03-25 | ||
CNPCT/CN2019/079769 | 2019-03-26 | ||
CN2019079769 | 2019-03-26 | ||
KR1020217015768A KR102676917B1 (ko) | 2018-12-07 | 2019-12-05 | 컨텍스트 기반 인트라 예측 |
PCT/CN2019/123229 WO2020114445A1 (en) | 2018-12-07 | 2019-12-05 | Context-based intra prediction |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217015768A Division KR102676917B1 (ko) | 2018-12-07 | 2019-12-05 | 컨텍스트 기반 인트라 예측 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230170146A true KR20230170146A (ko) | 2023-12-18 |
Family
ID=70974944
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217015768A KR102676917B1 (ko) | 2018-12-07 | 2019-12-05 | 컨텍스트 기반 인트라 예측 |
KR1020237042214A KR20230170146A (ko) | 2018-12-07 | 2019-12-05 | 컨텍스트 기반 인트라 예측 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217015768A KR102676917B1 (ko) | 2018-12-07 | 2019-12-05 | 컨텍스트 기반 인트라 예측 |
Country Status (12)
Country | Link |
---|---|
US (2) | US11057642B2 (ko) |
EP (1) | EP3871415A4 (ko) |
JP (2) | JP7317965B2 (ko) |
KR (2) | KR102676917B1 (ko) |
CN (2) | CN113170168B (ko) |
AU (1) | AU2019391197B2 (ko) |
BR (1) | BR112021010428A2 (ko) |
CA (1) | CA3121671C (ko) |
MX (1) | MX2021006254A (ko) |
SG (1) | SG11202105759QA (ko) |
WO (1) | WO2020114445A1 (ko) |
ZA (1) | ZA202103763B (ko) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2571313B (en) * | 2018-02-23 | 2022-09-21 | Canon Kk | New sample sets and new down-sampling schemes for linear component sample prediction |
WO2020016748A1 (en) | 2018-07-15 | 2020-01-23 | Beijing Bytedance Network Technology Co., Ltd. | Cross-component motion information derivation |
CA3213840A1 (en) * | 2018-07-16 | 2020-01-23 | Huawei Technologies Co., Ltd. | Video encoder, video decoder, and corresponding encoding and decoding methods |
TWI814890B (zh) | 2018-08-17 | 2023-09-11 | 大陸商北京字節跳動網絡技術有限公司 | 簡化的跨分量預測 |
WO2020053804A1 (en) * | 2018-09-12 | 2020-03-19 | Beijing Bytedance Network Technology Co., Ltd. | Downsampling in cross-component linear modeling |
CN111083489B (zh) | 2018-10-22 | 2024-05-14 | 北京字节跳动网络技术有限公司 | 多次迭代运动矢量细化 |
EP3861736A4 (en) | 2018-11-06 | 2022-03-30 | Beijing Bytedance Network Technology Co., Ltd. | POSITION DEPENDENT INTRAPREDICTION |
WO2020098643A1 (en) | 2018-11-12 | 2020-05-22 | Beijing Bytedance Network Technology Co., Ltd. | Simplification of combined inter-intra prediction |
CN117319644A (zh) | 2018-11-20 | 2023-12-29 | 北京字节跳动网络技术有限公司 | 基于部分位置的差计算 |
WO2020108591A1 (en) | 2018-12-01 | 2020-06-04 | Beijing Bytedance Network Technology Co., Ltd. | Parameter derivation for intra prediction |
KR102676917B1 (ko) | 2018-12-07 | 2024-06-19 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 컨텍스트 기반 인트라 예측 |
KR20210073597A (ko) * | 2018-12-21 | 2021-06-18 | 삼성전자주식회사 | 부호화 방법 및 그 장치, 복호화 방법 및 그 장치 |
WO2020125796A1 (en) | 2018-12-22 | 2020-06-25 | Beijing Bytedance Network Technology Co., Ltd. | Two step cross-component prediction mode based on multiple parameter |
CN112970257A (zh) | 2019-01-02 | 2021-06-15 | Oppo广东移动通信有限公司 | 解码预测方法、装置及计算机存储介质 |
SG11202108209YA (en) | 2019-02-22 | 2021-08-30 | Beijing Bytedance Network Technology Co Ltd | Neighbouring sample selection for intra prediction |
JP7123268B2 (ja) | 2019-02-24 | 2022-08-22 | 北京字節跳動網絡技術有限公司 | イントラ予測のためのパラメータ導出 |
WO2020177756A1 (en) | 2019-03-06 | 2020-09-10 | Beijing Bytedance Network Technology Co., Ltd. | Size dependent inter coding |
EP3918800A4 (en) | 2019-03-08 | 2022-07-06 | Beijing Bytedance Network Technology Co., Ltd. | SIGNALING TRANSFORMATION INFORMATION IN VIDEO PROCESSING |
JP7379518B2 (ja) * | 2019-03-11 | 2023-11-14 | フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン | プロファイルおよびレベル依存コーディングオプションによる符号化器および復号器、符号化方法および復号方法 |
WO2020192642A1 (en) | 2019-03-24 | 2020-10-01 | Beijing Bytedance Network Technology Co., Ltd. | Conditions in parameter derivation for intra prediction |
BR112021019564A2 (pt) | 2019-04-18 | 2021-12-07 | Beijing Bytedance Network Tech Co Ltd | Método para processamento de mídia visual, aparelho codificador de vídeo, aparelho decodificador de vídeo, e, mídia legível por computador |
AU2020263199B2 (en) | 2019-04-23 | 2023-10-19 | Beijing Bytedance Network Technology Co., Ltd. | Methods for cross component dependency reduction |
CN117221558A (zh) | 2019-05-08 | 2023-12-12 | 北京字节跳动网络技术有限公司 | 跨分量编解码的适用性条件 |
EP3973707A4 (en) | 2019-06-22 | 2022-08-31 | Beijing Bytedance Network Technology Co., Ltd. | CHROMA REST SCALE SYNTAX ELEMENT |
JP7460748B2 (ja) | 2019-07-07 | 2024-04-02 | 北京字節跳動網絡技術有限公司 | クロマ残差スケーリングのシグナリング |
JP7485761B2 (ja) | 2019-10-29 | 2024-05-16 | 北京字節跳動網絡技術有限公司 | クロスコンポーネント適応ループフィルタの信号通知 |
MX2022006734A (es) | 2019-12-11 | 2022-06-09 | Beijing Bytedance Network Tech Co Ltd | Relleno de muestra para filtrado de circuito adaptivo de componente cruzado. |
CN115176475A (zh) | 2019-12-31 | 2022-10-11 | 抖音视界有限公司 | 多参考线色度预测 |
CN116325728A (zh) | 2020-06-30 | 2023-06-23 | 抖音视界有限公司 | 自适应环路滤波的边界位置 |
WO2023084155A1 (en) * | 2021-11-15 | 2023-05-19 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
US12052422B2 (en) * | 2022-01-31 | 2024-07-30 | Tencent America LLC | Cross-component planar prediction in image and video compression |
WO2024081291A1 (en) * | 2022-10-12 | 2024-04-18 | Beijing Dajia Internet Information Technology Co., Ltd | Method and apparatus for cross-component prediction for video coding |
WO2024138169A2 (en) * | 2022-12-23 | 2024-06-27 | Bytedance Inc. | Method, apparatus, and medium for video processing |
Family Cites Families (104)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101138392B1 (ko) | 2004-12-30 | 2012-04-26 | 삼성전자주식회사 | 색차 성분의 상관관계를 이용한 컬러 영상의 부호화,복호화 방법 및 그 장치 |
US20080089411A1 (en) | 2006-10-16 | 2008-04-17 | Nokia Corporation | Multiple-hypothesis cross-layer prediction |
JP2010135864A (ja) | 2007-03-29 | 2010-06-17 | Toshiba Corp | 画像符号化方法及び装置並びに画像復号化方法及び装置 |
CN101877785A (zh) | 2009-04-29 | 2010-11-03 | 祝志怡 | 一种基于混合预测的视频编码方法 |
US9288500B2 (en) | 2011-05-12 | 2016-03-15 | Texas Instruments Incorporated | Luma-based chroma intra-prediction for video coding |
JP2013034162A (ja) * | 2011-06-03 | 2013-02-14 | Sony Corp | 画像処理装置及び画像処理方法 |
JP2013034163A (ja) * | 2011-06-03 | 2013-02-14 | Sony Corp | 画像処理装置及び画像処理方法 |
US9693070B2 (en) * | 2011-06-24 | 2017-06-27 | Texas Instruments Incorporated | Luma-based chroma intra-prediction for video coding |
EP2725799B1 (en) | 2011-06-27 | 2020-04-29 | Sun Patent Trust | Image encoding method, image decoding method, image encoding device, image decoding device, and image encoding/decoding device |
CA2840488A1 (en) | 2011-06-28 | 2013-01-03 | Samsung Electronics Co., Ltd. | Prediction method and apparatus for chroma component of image using luma component of image |
CN103583048B (zh) | 2011-06-30 | 2017-05-17 | 太阳专利托管公司 | 图像解码方法、图像编码方法、图像解码装置、图像编码装置及图像编码解码装置 |
EP2732624A4 (en) | 2011-07-12 | 2015-07-15 | Intel Corp | LUMBASED CHROMAINTRAPREDICTION |
GB2495942B (en) | 2011-10-25 | 2014-09-03 | Canon Kk | Method and apparatus for processing components of an image |
CN103096055B (zh) | 2011-11-04 | 2016-03-30 | 华为技术有限公司 | 一种图像信号帧内预测及解码的方法和装置 |
US9344722B2 (en) | 2011-11-18 | 2016-05-17 | Futurewei Technologies, Inc. | Scanning of prediction residuals in high efficiency video coding |
WO2013102293A1 (en) | 2012-01-04 | 2013-07-11 | Mediatek Singapore Pte. Ltd. | Improvements of luma-based chroma intra prediction |
CN109218730B (zh) | 2012-01-19 | 2023-07-28 | 华为技术有限公司 | 用于lm帧内预测的参考像素缩减 |
WO2013155662A1 (en) | 2012-04-16 | 2013-10-24 | Mediatek Singapore Pte. Ltd. | Methods and apparatuses of simplification for intra chroma lm mode |
CN103379321B (zh) | 2012-04-16 | 2017-02-01 | 华为技术有限公司 | 视频图像分量的预测方法和装置 |
CN103916673B (zh) | 2013-01-06 | 2017-12-22 | 华为技术有限公司 | 基于双向预测的编码方法、解码方法和装置 |
CA2896637C (en) | 2013-03-26 | 2018-02-13 | Mediatek Inc. | Method of cross color intra prediction |
US10003815B2 (en) | 2013-06-03 | 2018-06-19 | Qualcomm Incorporated | Hypothetical reference decoder model and conformance for cross-layer random access skipped pictures |
CN105874793B (zh) | 2013-10-07 | 2019-10-11 | Vid拓展公司 | 用于多层视频编码的组合可分级性处理的方法和设备 |
BR112016029843A8 (pt) | 2014-06-19 | 2021-07-06 | Vid Scale Inc | método para decodificar parâmetros de tabela de consulta tridimensional para uso na decodificação de vídeo e unidade de transmissão / recepção sem fio |
US10200700B2 (en) | 2014-06-20 | 2019-02-05 | Qualcomm Incorporated | Cross-component prediction in video coding |
KR20200051831A (ko) | 2014-10-28 | 2020-05-13 | 미디어텍 싱가폴 피티이. 엘티디. | 비디오 코딩을 위한 가이드된 크로스-컴포넌트 예측 방법 |
JP2017537539A (ja) | 2014-11-05 | 2017-12-14 | サムスン エレクトロニクス カンパニー リミテッド | サンプル単位予測符号化装置及びその方法 |
MX2017008774A (es) | 2014-12-31 | 2018-02-13 | Nokia Technologies Oy | Prediccion inter-capa para codificacion y decodificacion de video escalable. |
WO2016115708A1 (en) | 2015-01-22 | 2016-07-28 | Mediatek Singapore Pte. Ltd. | Methods for chroma component coding with separate intra prediction mode |
US10321140B2 (en) | 2015-01-22 | 2019-06-11 | Mediatek Singapore Pte. Ltd. | Method of video coding for chroma components |
WO2016200100A1 (ko) | 2015-06-10 | 2016-12-15 | 삼성전자 주식회사 | 적응적 가중치 예측을 위한 신택스 시그널링을 이용하여 영상을 부호화 또는 복호화하는 방법 및 장치 |
US10148977B2 (en) | 2015-06-16 | 2018-12-04 | Futurewei Technologies, Inc. | Advanced coding techniques for high efficiency video coding (HEVC) screen content coding (SCC) extensions |
US20180139469A1 (en) | 2015-06-19 | 2018-05-17 | Nokia Technologies Oy | An Apparatus, A Method and A Computer Program for Video Coding and Decoding |
EP4404572A3 (en) | 2015-07-08 | 2024-10-16 | InterDigital Madison Patent Holdings, SAS | Enhanced chroma coding using cross plane filtering |
US20170016972A1 (en) | 2015-07-13 | 2017-01-19 | Siemens Medical Solutions Usa, Inc. | Fast Prospective Motion Correction For MR Imaging |
KR102432085B1 (ko) | 2015-09-23 | 2022-08-11 | 노키아 테크놀로지스 오와이 | 360도 파노라마 비디오를 코딩하는 방법, 장치 및 컴퓨터 프로그램 제품 |
US10045023B2 (en) | 2015-10-09 | 2018-08-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Cross component prediction in video coding |
US10200719B2 (en) | 2015-11-25 | 2019-02-05 | Qualcomm Incorporated | Modification of transform coefficients for non-square transform units in video coding |
WO2017139937A1 (en) | 2016-02-18 | 2017-08-24 | Mediatek Singapore Pte. Ltd. | Advanced linear model prediction for chroma coding |
FI20165256A (fi) | 2016-03-24 | 2017-09-25 | Nokia Technologies Oy | Laitteisto, menetelmä ja tietokoneohjelma videokoodaukseen ja -dekoodaukseen |
CA3024900C (en) | 2016-05-17 | 2021-02-16 | Arris Enterprises Llc | Template matching for jvet intra prediction |
US20190306516A1 (en) | 2016-05-24 | 2019-10-03 | Sharp Kabushiki Kaisha | Systems and methods for intra prediction coding |
CA3025488A1 (en) | 2016-05-25 | 2017-11-30 | Arris Enterprises Llc | Weighted angular prediction for intra coding |
US10567808B2 (en) | 2016-05-25 | 2020-02-18 | Arris Enterprises Llc | Binary ternary quad tree partitioning for JVET |
WO2017205621A1 (en) | 2016-05-25 | 2017-11-30 | Arris Enterprises Llc | Jvet coding block structure with asymmetrical partitioning |
US10326989B2 (en) | 2016-05-25 | 2019-06-18 | Arris Enterprises Llc | General block partitioning method |
CA3025520A1 (en) | 2016-05-25 | 2017-11-30 | Arris Enterprises Llc | Improved weighted angular prediction coding for intra coding |
CN115037949A (zh) | 2016-05-27 | 2022-09-09 | 松下电器(美国)知识产权公司 | 编码方法、解码方法、及编码和解码方法 |
US10484712B2 (en) | 2016-06-08 | 2019-11-19 | Qualcomm Incorporated | Implicit coding of reference line index used in intra prediction |
FI20165547A (fi) | 2016-06-30 | 2017-12-31 | Nokia Technologies Oy | Laitteisto, menetelmä ja tietokoneohjelma videokoodausta ja videokoodauksen purkua varten |
US10944976B2 (en) | 2016-07-22 | 2021-03-09 | Sharp Kabushiki Kaisha | Systems and methods for coding video data using adaptive component scaling |
WO2018021374A1 (ja) | 2016-07-29 | 2018-02-01 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
EP3499888A1 (en) | 2016-08-10 | 2019-06-19 | Panasonic Intellectual Property Corporation of America | Encoding device, decoding device, encoding method and decoding method |
WO2018030294A1 (ja) | 2016-08-10 | 2018-02-15 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
WO2018030293A1 (ja) | 2016-08-10 | 2018-02-15 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
US10326986B2 (en) | 2016-08-15 | 2019-06-18 | Qualcomm Incorporated | Intra video coding using a decoupled tree structure |
US10368107B2 (en) | 2016-08-15 | 2019-07-30 | Qualcomm Incorporated | Intra video coding using a decoupled tree structure |
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 |
US10652575B2 (en) | 2016-09-15 | 2020-05-12 | Qualcomm Incorporated | Linear model chroma intra prediction for video coding |
US10382781B2 (en) | 2016-09-28 | 2019-08-13 | Qualcomm Incorporated | Interpolation filters for intra prediction in video coding |
GB2555788A (en) | 2016-11-08 | 2018-05-16 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
US10477240B2 (en) | 2016-12-19 | 2019-11-12 | Qualcomm Incorporated | Linear model prediction mode with sample accessing for video coding |
US10873746B2 (en) | 2016-12-21 | 2020-12-22 | Sharp Kabushiki Kaisha | Intra prediction image generation device using cross-component liner model, image decoding apparatus, and image coding apparatus using same |
US10674165B2 (en) | 2016-12-21 | 2020-06-02 | Arris Enterprises Llc | Constrained position dependent intra prediction combination (PDPC) |
CA3048242C (en) | 2016-12-28 | 2023-10-31 | Arris Enterprises Llc | Improved video bitstream coding |
US10277895B2 (en) | 2016-12-28 | 2019-04-30 | Arris Enterprises Llc | Adaptive unequal weight planar prediction |
US20180199062A1 (en) | 2017-01-11 | 2018-07-12 | Qualcomm Incorporated | Intra prediction techniques for video coding |
US11025903B2 (en) * | 2017-01-13 | 2021-06-01 | Qualcomm Incorporated | Coding video data using derived chroma mode |
US10694181B2 (en) | 2017-01-27 | 2020-06-23 | Qualcomm Incorporated | Bilateral filters in video coding with reduced complexity |
US10542264B2 (en) | 2017-04-04 | 2020-01-21 | Arris Enterprises Llc | Memory reduction implementation for weighted angular prediction |
US10939137B2 (en) | 2017-04-28 | 2021-03-02 | Sharp Kabushiki Kaisha | Image decoding device and image encoding device |
US10602180B2 (en) | 2017-06-13 | 2020-03-24 | Qualcomm Incorporated | Motion vector prediction |
US11190799B2 (en) | 2017-06-21 | 2021-11-30 | Lg Electronics Inc. | Intra-prediction mode-based image processing method and apparatus therefor |
WO2019004283A1 (ja) | 2017-06-28 | 2019-01-03 | シャープ株式会社 | 動画像符号化装置及び動画像復号装置 |
US10992941B2 (en) | 2017-06-29 | 2021-04-27 | Dolby Laboratories Licensing Corporation | Integrated image reshaping and video coding |
WO2019006363A1 (en) | 2017-06-30 | 2019-01-03 | Vid Scale, Inc. | LOCAL LIGHTING COMPENSATION USING GENERALIZED BI-PREDICTION |
WO2019010267A1 (en) | 2017-07-05 | 2019-01-10 | Arris Enterprises Llc | POST-FILTERING FOR WEIGHTED ANGULAR PREDICTION |
CN109274969B (zh) | 2017-07-17 | 2020-12-22 | 华为技术有限公司 | 色度预测的方法和设备 |
CN115174911A (zh) | 2017-07-24 | 2022-10-11 | 艾锐势有限责任公司 | 帧内模式jvet编译方法 |
US10863172B2 (en) | 2017-07-24 | 2020-12-08 | Arris Enterprises Llc | Intra mode JVET coding |
JP6994868B2 (ja) | 2017-08-09 | 2022-01-14 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法、および復号方法 |
WO2019070770A1 (en) | 2017-10-02 | 2019-04-11 | Arris Enterprises Llc | SYSTEM AND METHOD FOR REDUCING BLOCKED ARTIFACTS AND PRODUCING ENHANCED ENCODING EFFICIENCY |
GB2567249A (en) | 2017-10-09 | 2019-04-10 | Canon Kk | New sample sets and new down-sampling schemes for linear component sample prediction |
US10965941B2 (en) | 2017-10-09 | 2021-03-30 | Qualcomm Incorporated | Position-dependent prediction combinations in video coding |
US10575023B2 (en) | 2017-10-09 | 2020-02-25 | Arris Enterprises Llc | Adaptive unequal weight planar prediction |
DE112018005899T5 (de) | 2017-12-18 | 2020-08-13 | Arris Enterprises Llc | System und Verfahren zum Konstruieren einer Ebene für planare Prädiktion |
US20190313108A1 (en) | 2018-04-05 | 2019-10-10 | Qualcomm Incorporated | Non-square blocks in video coding |
US10609402B2 (en) | 2018-05-02 | 2020-03-31 | Tencent America LLC | Method and apparatus for prediction and transform for small blocks |
US20190342546A1 (en) * | 2018-05-03 | 2019-11-07 | FG Innovation Company Limited | Device and method for coding video data based on different reference sets in linear model prediction |
KR102646649B1 (ko) | 2018-06-29 | 2024-03-13 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | Lut에서의 모션 후보들의 검사 순서 |
CN116708833A (zh) | 2018-07-02 | 2023-09-05 | Lg电子株式会社 | 编解码和发送方法及存储介质 |
CA3213840A1 (en) | 2018-07-16 | 2020-01-23 | Huawei Technologies Co., Ltd. | Video encoder, video decoder, and corresponding encoding and decoding methods |
CN109005408B (zh) | 2018-08-01 | 2020-05-29 | 北京奇艺世纪科技有限公司 | 一种帧内预测方法、装置及电子设备 |
JP7364669B2 (ja) | 2018-10-05 | 2023-10-18 | 華為技術有限公司 | イントラ予測の方法及び装置 |
EP3861736A4 (en) | 2018-11-06 | 2022-03-30 | Beijing Bytedance Network Technology Co., Ltd. | POSITION DEPENDENT INTRAPREDICTION |
US11197005B2 (en) * | 2018-11-08 | 2021-12-07 | Qualcomm Incorporated | Cross-component prediction for video coding |
US11178396B2 (en) * | 2018-11-14 | 2021-11-16 | Tencent America LLC | Constrained intra prediction and unified most probable mode list generation |
WO2020108591A1 (en) | 2018-12-01 | 2020-06-04 | Beijing Bytedance Network Technology Co., Ltd. | Parameter derivation for intra prediction |
KR102676917B1 (ko) | 2018-12-07 | 2024-06-19 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 컨텍스트 기반 인트라 예측 |
US11095921B2 (en) | 2018-12-18 | 2021-08-17 | Tencent America LLC | Method and apparatus for video encoding or decoding |
JP2021513755A (ja) | 2019-01-15 | 2021-05-27 | エルジー エレクトロニクス インコーポレイティド | 変換スキップフラグを利用した映像コーディング方法及び装置 |
SG11202108209YA (en) | 2019-02-22 | 2021-08-30 | Beijing Bytedance Network Technology Co Ltd | Neighbouring sample selection for intra prediction |
JP7123268B2 (ja) | 2019-02-24 | 2022-08-22 | 北京字節跳動網絡技術有限公司 | イントラ予測のためのパラメータ導出 |
-
2019
- 2019-12-05 KR KR1020217015768A patent/KR102676917B1/ko active IP Right Grant
- 2019-12-05 JP JP2021531144A patent/JP7317965B2/ja active Active
- 2019-12-05 AU AU2019391197A patent/AU2019391197B2/en active Active
- 2019-12-05 CN CN201980078549.3A patent/CN113170168B/zh active Active
- 2019-12-05 KR KR1020237042214A patent/KR20230170146A/ko active Application Filing
- 2019-12-05 CN CN202311527606.6A patent/CN117336503A/zh active Pending
- 2019-12-05 WO PCT/CN2019/123229 patent/WO2020114445A1/en active Application Filing
- 2019-12-05 EP EP19892183.5A patent/EP3871415A4/en active Pending
- 2019-12-05 BR BR112021010428-3A patent/BR112021010428A2/pt unknown
- 2019-12-05 SG SG11202105759QA patent/SG11202105759QA/en unknown
- 2019-12-05 CA CA3121671A patent/CA3121671C/en active Active
- 2019-12-05 MX MX2021006254A patent/MX2021006254A/es unknown
-
2020
- 2020-08-07 US US16/987,670 patent/US11057642B2/en active Active
-
2021
- 2021-06-01 ZA ZA2021/03763A patent/ZA202103763B/en unknown
- 2021-06-03 US US17/338,601 patent/US11595687B2/en active Active
-
2023
- 2023-04-13 JP JP2023065710A patent/JP2023083395A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
CA3121671C (en) | 2024-06-18 |
US11057642B2 (en) | 2021-07-06 |
CN113170168B (zh) | 2023-12-08 |
AU2019391197B2 (en) | 2023-05-25 |
US20210297694A1 (en) | 2021-09-23 |
US20200366933A1 (en) | 2020-11-19 |
CA3121671A1 (en) | 2020-06-11 |
AU2019391197A1 (en) | 2021-06-17 |
MX2021006254A (es) | 2021-07-06 |
CN117336503A (zh) | 2024-01-02 |
EP3871415A4 (en) | 2022-04-13 |
JP2023083395A (ja) | 2023-06-15 |
US11595687B2 (en) | 2023-02-28 |
EP3871415A1 (en) | 2021-09-01 |
SG11202105759QA (en) | 2021-06-29 |
JP2022508294A (ja) | 2022-01-19 |
BR112021010428A2 (pt) | 2021-08-24 |
KR20210091182A (ko) | 2021-07-21 |
KR102676917B1 (ko) | 2024-06-19 |
ZA202103763B (en) | 2022-10-26 |
WO2020114445A1 (en) | 2020-06-11 |
JP7317965B2 (ja) | 2023-07-31 |
CN113170168A (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102676917B1 (ko) | 컨텍스트 기반 인트라 예측 | |
KR102653562B1 (ko) | 위치에 따른 인트라 예측 | |
KR102628086B1 (ko) | 인트라 예측을 위한 이웃 샘플 선택 | |
KR102472756B1 (ko) | 인트라 예측을 위한 파라미터 유도 | |
CN113170122B (zh) | 帧内预测的参数推导 | |
CN113767631B (zh) | 用于帧内预测的参数推导中的条件 | |
RU2806083C2 (ru) | Контекстно-ориентированное внутреннее предсказание |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent |