KR102483942B1 - 비디오 인코더, 비디오 디코더 및 대응하는 인코딩 및 디코딩 방법 - Google Patents

비디오 인코더, 비디오 디코더 및 대응하는 인코딩 및 디코딩 방법 Download PDF

Info

Publication number
KR102483942B1
KR102483942B1 KR1020217004298A KR20217004298A KR102483942B1 KR 102483942 B1 KR102483942 B1 KR 102483942B1 KR 1020217004298 A KR1020217004298 A KR 1020217004298A KR 20217004298 A KR20217004298 A KR 20217004298A KR 102483942 B1 KR102483942 B1 KR 102483942B1
Authority
KR
South Korea
Prior art keywords
luma
samples
neighboring
chroma
downsampled
Prior art date
Application number
KR1020217004298A
Other languages
English (en)
Other versions
KR20210030444A (ko
Inventor
샹 마
인 자오
하이타오 양
지안레 첸
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Priority to KR1020227046193A priority Critical patent/KR20230008896A/ko
Publication of KR20210030444A publication Critical patent/KR20210030444A/ko
Application granted granted Critical
Publication of KR102483942B1 publication Critical patent/KR102483942B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Closed-Circuit Television Systems (AREA)
  • Analogue/Digital Conversion (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Color Television Systems (AREA)

Abstract

선형 모델 예측 모드의 기법이 기술된다. N개의 재구성된 이웃 루마 샘플 및 N개의 재구성된 이웃 루마 샘플에 대응하는 N개의 재구성된 이웃 크로마 샘플, 그리고 M개의 재구성된 이웃 루마 샘플 및 M개의 재구성된 이웃 루마 샘플에 대응하는 M개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 2개의 쌍이 판정된다. N개의 재구성된 이웃 루마 샘플의 최소 값은 재구성된 이웃 루마 샘플의 세트의 나머지 재구성된 이웃 루마 샘플의 루마 값보다 작지 않다. M개의 재구성된 이웃 루마 샘플의 최대 값은 재구성된 이웃 루마 샘플의 세트의 나머지 재구성된 이웃 루마 샘플의 루마 값보다 크지 않다. M, N은 양의 정수이고 1보다 크다. 루마 값 및 크로마 값의 2개의 쌍에 기반하여 하나 이상의 선형 모델 파라미터가 판정되고, 하나 이상의 선형 모델 파라미터에 기반하여 예측 블록이 판정된다.

Description

비디오 인코더, 비디오 디코더 및 대응하는 인코딩 및 디코딩 방법
본 개시의 실시예는 일반적으로 비디오 데이터 인코딩(encoding) 및 디코딩(decoding) 기법에 관련되고, 특히 크로스 컴포넌트 선형 모델(Cross-Component Linear Model: CCLM)을 사용하는 인트라 예측(intra prediction)을 위한 기법에 관련된다.
삭제
삭제
삭제
디지털 다용도 디스크(Digital Versatile Disc: DVD)의 도입 이래로 디지털 비디오가 널리 사용되었다. DVD를 사용하여 비디오 프로그램을 배포하는 것에 더하여, 요즘 (인터넷과 같은) 유선 컴퓨터 네트워크 또는 무선 통신 네트워크를 사용하여 비디오 프로그램이 송신될 수 있다. 송신 매체를 사용하여 비디오 데이터를 송신하기 전에, 비디오는 인코딩된다. 감상자(viewer)는 인코딩된 비디오를 수신하고, 비디오를 디코딩하고 디스플레이하는 데에 감상 디바이스(viewing device)를 사용한다. 수년간, 예를 들어, 더 높은 해상도(resolution), 색상 깊이(color depth) 및 프레임 레이트(frame rate) 때문에 비디오의 품질이 개선되었다. 송신되는 비디오 데이터에서의 개선된 품질은 더 많은 데이터 스트림으로 이어졌고, 더 많은 데이터 스트림이 요즘 보통 인터넷 및 모바일 통신 네트워크를 통해 전송된다.
더 높은 해상도의 비디오는 전형적으로 그것이 더 많은 정보를 전하기에 더 많은 대역폭을 요구한다. 대역폭 요구사항을 감소시키기 위해서, 비디오의 압축을 수반하는 비디오 코딩 방안이 도입되었다. 비디오가 인코딩된 경우에, 대역폭 요구사항(또는 저장의 경우에는 대응하는 메모리 요구사항)은 인코딩되지 않은 비디오에 비해 감소된다. 흔히 이 감소는 품질을 대가로 하게 된다. 그러므로, 비디오 코딩 표준에서 대역폭 요구사항 및 품질 간의 균형을 찾고자 하는 데에 노력이 기울여진다.
품질을 개선하고 대역폭 요구사항을 감소시키는 것에 대한 계속되는 필요성이 있으므로, 감소된 대역폭 요구사항과 함께 품질을 유지하거나, 대역폭 요구사항을 유지하면서 품질을 개선하는 솔루션이 계속해서 추구된다. 때때로, 양자 간의 절충이 용인가능할 수 있다. 예를 들어, 만일 품질 개선이 상당하면 대역폭 요구사항을 증가시키는 것이 용인가능할 수 있다.
고효율 비디오 코딩(High Efficiency Video Coding: HEVC)은 통상적으로 알려진 비디오 코딩 방안이다. HEVC에서, 코딩 유닛(Coding Unit: CU)은 여러 예측 유닛(Prediction Unit: PU) 또는 변환 유닛(Transform Unit: TU)으로 나뉜다. 차세대 비디오 코딩 표준인 다용도 비디오 코딩(Versatile Video Coding: VVC) 표준은 국제 통신 연합 전기통신 표준화 섹터(International Communication Union Telecommunication Standardization Sector: ITU-T) 비디오 코딩 전문가 그룹(Video Coding Experts Group: VCEG) 및 국제 표준화 기구/국제 전기기술 위원회(International Organization for Standardization/International Electrotechnical Commission)(ISO/IEC) 동화상 전문가 그룹(Moving Picture Experts Group: MPEG)의 최근의 합동 비디오 코딩 프로젝트이다. 두 표준화 기구는 합동 비디오 탐구 팀(Joint Video Exploration Team: JVET)으로 알려진 파트너쉽에서 함께 작업하고 있다. VVC 표준은 또한 ITU-T H.266 표준 또는 차세대 비디오 코딩(Next Generation Video Coding: NGVC) 표준으로 지칭된다. VVC 표준에서, 여러 구획(partition) 타입의 개념, 즉 CU, PU 및 TU 개념의 구분은 최대 변환 길이에 있어 너무 큰 크기를 갖는 CU에 대해 필요한 때를 제외하고는 폐지되며, VVC는 CU 구획 형상을 위한 더 많은 유연성(flexibility)을 지원한다.
본 출원의 실시예는 비디오 데이터를 인코딩 및 디코딩하기 위한 장치 및 방법을 제공한다. 특히, 비디오 코딩 메커니즘의 일부로서 인트라 예측을 통해 크로마(chroma) 샘플을 예측하는 데에 루마(luma) 샘플을 사용함으로써, 크로스 컴포넌트 선형 모델을 사용하는 인트라 예측이 유연한 방식으로 달성될 수 있다.
첨부된 독립 청구항에서 특정 실시예가 개론되되, 종속 청구항에서 다른 실시예가 그러하다.
제1 측면에 따르면, 개시는 비디오 데이터를 디코딩하는 방법에 관련된다. 방법은 다음을 포함한다:
크로마 블록(block)에 대응하는 루마 블록을 판정하는 것;
다운샘플링된(down-sampled) 재구성된 이웃 루마 샘플의 세트를 판정하는 것(다운샘플링된 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 다운샘플링된 재구성된 루마 샘플 및/또는 루마 블록 좌측에 있는 복수의 다운샘플링된 재구성된 루마 샘플을 포함함);
최대 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플 및/또는 최소 값을 가진 M개의 다운샘플링된 재구성된 루마 샘플이 다운샘플링된 재구성된 이웃 루마 샘플의 세트 내에 포함된 경우에, 최대 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플 및 최대 루마 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플에 대응하는 N개의 재구성된 크로마 샘플, 그리고/또는 최소 루마 값을 가진 M개의 다운샘플링된 재구성된 루마 샘플 및 최소 값을 가진 M개의 다운샘플링된 루마 샘플에 대응하는 M개의 재구성된 크로마 샘플에 따라 루마 값 및 크로마 값의 2개의 커플을 판정하는 것(M, N은 양의 정수이고 1보다 더 큼);
루마 값 및 크로마 값의 판정된 2개의 커플에 기반하여 하나 이상의 선형 모델 파라미터를 판정하는 것;
하나 이상의 선형 모델 파라미터에 기반하여 예측 블록(predictive block)을 판정하는 것; 및
예측 블록에 기반하여 크로마 블록을 선형 모델(Linear Model: LM) 예측 디코딩하는 것(선형 모델(Linear Model: LM) 예측은 크로스 컴포넌트 선형 모델(Cross-component linear model) 예측, 다방향 선형 모델(Multi-Directional Linear Model: MDLM) 및 MMLM을 포함함).
이와 같은 제1 측면에 따른 방법의 가능한 구현 형태에서, 다운샘플링된 재구성된 이웃 루마 샘플의 세트는 다음을 더 포함한다:
루마 블록 외부의 상단 우측 이웃 루마 샘플(top-right neighboring luma sample) 및 루마 블록 외부의 상단 우측 이웃 루마 샘플의 우측에 있는 루마 샘플;
루마 블록 외부의 좌측 하단 이웃 루마 샘플(left-below neighboring luma sample) 및 루마 블록 외부의 좌측 하단 이웃 루마 샘플의 아래에 있는 루마 샘플.
이와 같은 제1 측면 또는 제1 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 루마 블록 위에 있는 복수의 재구성된 루마 샘플은 각자의 상단 경계에 인접한 재구성된 이웃 루마 샘플이고, 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플은 각자의 좌측 경계에 인접한 재구성된 이웃 루마 샘플이다.
이와 같은 제1 측면 또는 제1 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, (다운샘플링된) 재구성된 이웃 루마 샘플의 세트는 루마 블록 외부의 상단 좌측 이웃 루마 샘플의 위에 있는 루마 샘플 및/또는 루마 블록 외부의 상단 좌측 이웃 루마 샘플의 좌측에 있는 루마 샘플을 배제한다.
이와 같은 제1 측면 또는 제1 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 루마 블록의 상단 좌측 루마 샘플의 좌표는 (x0, y0)이고, (다운샘플링된) 재구성된 이웃 루마 샘플의 세트는 x0보다 작은 x 좌표 및 y0보다 작은 y 좌표를 갖는 루마 샘플을 배제한다.
이와 같은 제1 측면 또는 제1 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 최대 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플 및/또는 최소 값을 가진 M개의 다운샘플링된 재구성된 루마 샘플이 다운샘플링된 재구성된 이웃 루마 샘플의 세트 내에 포함된 경우에, 루마 값 및 크로마 값의 2개의 커플을 판정하는 단계는 다음을 포함한다:
루마 값 및 크로마 값의 제1 복수의 커플 중의 각각의 것의 크로마 값 및 루마 값 및 크로마 값의 제2 복수의 커플 중의 각각의 것의 크로마 값 간의 크로마 값 차이에 기반하여 루마 값 및 크로마 값의 2개의 커플을 판정하는 것(또는 선택하는 것)(루마 값 및 크로마 값의 제1 복수의 커플 중의 상기 각각의 것은 최대 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플 중 하나 및 대응하는 재구성된 이웃 크로마 샘플을 포함하고, 루마 값 및 크로마 값의 제2 복수의 커플 중의 상기 각각의 것은 최소 값을 가진 M개의 다운샘플링된 재구성된 루마 샘플 중 하나 및 대응하는 재구성된 이웃 크로마 샘플을 포함함).
이와 같은 제1 측면 또는 제1 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 가장 작은 크로마 값 차이는 루마 값 및 크로마 값의 제1 커플의 크로마 값 및 루마 값 및 크로마 값의 제2 커플의 크로마 값 간이고, 가장 작은 크로마 값 차이를 갖는 루마 값 및 크로마 값의 제1 커플 및 루마 값 및 크로마 값의 제2 커플이 루마 값 및 크로마 값의 상기 2개의 커플로서 선정되거나;
가장 큰 크로마 값 차이는 루마 값 및 크로마 값의 제3 커플의 크로마 값 및 루마 값 및 크로마 값의 제4 커플의 크로마 값 간이고, 가장 큰 크로마 값 차이를 갖는 루마 값 및 크로마 값의 제3 커플 및 루마 값 및 크로마 값의 제4 커플이 루마 값 및 크로마 값의 상기 2개의 커플로서 선정된다. 예를 들어, 루마 값 및 크로마 값의 제1 커플은 루마 값 및 크로마 값의 제1 복수의 커플에 포함된다. 예를 들어, 루마 값 및 크로마 값의 제2 커플은 루마 값 및 크로마 값의 제2 복수의 커플에 포함된다. 예를 들어, 루마 값 및 크로마 값의 제3 커플은 루마 값 및 크로마 값의 제1 복수의 커플에 포함된다. 예를 들어, 루마 값 및 크로마 값의 제4 커플은 루마 값 및 크로마 값의 제2 복수의 커플에 포함된다.
이와 같은 제1 측면 또는 제1 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 최대 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플 및/또는 최소 값을 가진 M개의 다운샘플링된 재구성된 루마 샘플이 다운샘플링된 재구성된 이웃 루마 샘플의 세트 내에 포함된 경우에, 루마 값 및 크로마 값의 2개의 커플을 판정하는 단계는 다음을 포함한다:
루마 값 및 크로마 값의 제5 커플 및 루마 값 및 크로마 값의 제6 커플을 루마 값 및 크로마 값의 상기 2개의 커플로서 판정하는 것
(루마 값 및 크로마 값의 제5 커플의 대응하는 크로마 값은 최대 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플에 대응하는 N개의 재구성된 크로마 샘플의 평균 크로마 값(mean chroma value)이고, 루마 값 및 크로마 값의 제6 커플의 대응하는 크로마 값은 최소 값을 가진 M개의 다운샘플링된 재구성된 루마 샘플에 대응하는 M개의 재구성된 크로마 샘플의 평균 크로마 값임). 루마 값 및 크로마 값의 제5 커플의 루마 값은 최대 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플 중의 각각의 것의 루마 값이다. 루마 값 및 크로마 값의 제6 커플의 루마 값은 최소 값을 가진 M개의 다운샘플링된 재구성된 루마 샘플 중의 각각의 것의 루마 값이다.
이와 같은 제1 측면 또는 제1 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 다운샘플링된 재구성된 이웃 루마 샘플의 세트는 다운샘플링된 재구성된 이웃 루마 샘플의 제1 세트 및 다운샘플링된 재구성된 이웃 루마 샘플의 제2 세트를 포함하고, 다운샘플링된 재구성된 이웃 루마 샘플의 제1 세트는 임계(threshold)보다 작거나 같은 루마 값을 가진 다운샘플링된 재구성된 이웃 루마 샘플을 포함하고, 다운샘플링된 재구성된 이웃 루마 샘플의 제2 세트는 임계보다 큰 루마 값을 가진 다운샘플링된 재구성된 이웃 루마 샘플을 포함한다.
이와 같은 제1 측면 또는 제1 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 예측 블록에 기반하여 크로마 블록을 LM 예측 디코딩하는 것은 크로마 블록을 재구성하기 위해 잔차 블록(residual block)에 예측 블록을 가산하는 것을 포함한다.
이와 같은 제1 측면 또는 제1 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 방법은 다음을 더 포함한다:
루마 블록 및 크로마 블록을 포함하는 현재의 블록을 위한 플래그(flag)를 디코딩하는 것(플래그는 크로마 블록을 위해 LM 예측 코딩이 인에이블됨(enabled)을 나타내고, 플래그를 디코딩하는 것은 플래그를 LM 예측 코딩이 이웃 블록을 위해 인에이블됨 여부를 나타내는 하나 이상의 플래그를 포함하는 콘테스트(context)에 기반하여 디코딩하는 것을 포함함).
제2 측면에 따르면 발명은 비디오 데이터를 디코딩하는 방법에 관련되는데, 방법은 다음을 포함한다:
크로마 블록에 대응하는 루마 블록을 판정하는 것;
(다운샘플링된) 재구성된 이웃 루마 샘플의 세트를 판정하는 것((다운샘플링된) 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 (다운샘플링된) 재구성된 루마 샘플 및/또는 루마 블록 좌측에 있는 복수의 (다운샘플링된) 재구성된 루마 샘플을 포함함);
N개의 (다운샘플링된) 재구성된 루마 샘플 및 N개의 (다운샘플링된) 재구성된 루마 샘플에 대응하는 N개의 재구성된 크로마 샘플, 그리고/또는 M개의 (다운샘플링된) 재구성된 루마 샘플 및 M개의 (다운샘플링된) 루마 샘플에 대응하는 M개의 재구성된 크로마 샘플에 따라 루마 값 및 크로마 값의 2개의 커플을 판정하는 것(N개의 (다운샘플링된) 재구성된 루마 샘플의 최소 값은 (다운샘플링된) 재구성된 이웃 루마 샘플의 세트의 나머지 (다운샘플링된) 재구성된 루마 샘플의 루마 값보다 더 작지 않고, M개의 (다운샘플링된) 재구성된 루마 샘플의 최대 값은 다운샘플링된 재구성된 이웃 루마 샘플의 세트의 나머지 (다운샘플링된) 재구성된 루마 샘플의 루마 값보다 더 크지 않고, M, N은 양의 정수이고 1보다 더 큼). 다시 말해, N개의 다운샘플링된 재구성된 루마 샘플 중의 임의의 것의 루마 값은 M개의 다운샘플링된 재구성된 루마 샘플 중의 임의의 것의 루마 값보다 더 크고 N 및 M의 합은 다운샘플링된 재구성된 이웃 루마 샘플의 세트 중의 개수와 같거나 더 작음.
루마 값 및 크로마 값의 판정된 2개의 커플에 기반하여 하나 이상의 선형 모델 파라미터를 판정하는 것;
하나 이상의 선형 모델 파라미터에 기반하여 예측 블록을 판정하는 것; 및
예측 블록에 기반하여 크로마 블록을 선형 모델(Linear Model: LM) 예측 디코딩하는 것.
이와 같은 제2 측면에 따른 방법의 가능한 구현 형태에서, 루마 값 및 크로마 값의 2개의 커플을 판정하는 단계는 다음을 포함한다:
루마 값 및 크로마 값의 제7 커플 및 루마 값 및 크로마 값의 제8 커플을 루마 값 및 크로마 값의 상기 2개의 커플로서 판정하는 것
(루마 값 및 크로마 값의 제7 커플의 루마 값은 상기 N개의 (다운샘플링된) 재구성된 루마 샘플의 평균 루마 값이고, 루마 값 및 크로마 값의 제7 커플의 크로마 값은 N개의 (다운샘플링된) 재구성된 루마 샘플에 대응하는 상기 N개의 재구성된 크로마 샘플의 평균 크로마 값이고; 루마 값 및 크로마 값의 제8 커플의 루마 값은 상기 M개의 (다운샘플링된) 재구성된 루마 샘플의 평균 루마 값이고, 루마 값 및 크로마 값의 제8 커플의 크로마 값은 M개의 (다운샘플링된) 재구성된 루마 샘플에 대응하는 상기 M개의 재구성된 크로마 샘플의 평균 크로마 값임).
이와 같은 제2 측면 또는 제2 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 루마 값 및 크로마 값의 2개의 커플을 판정하는 단계는 다음을 포함한다:
루마 값 및 크로마 값의 제9 커플 및 루마 값 및 크로마 값의 제10 커플을 루마 값 및 크로마 값의 상기 2개의 커플로서 판정하는 것
(루마 값 및 크로마 값의 제9 커플의 루마 값은 제1 루마 값 범위 내의 상기 N개의 (다운샘플링된) 재구성된 루마 샘플의 평균 루마 값이고, 루마 값 및 크로마 값의 제9 커플의 크로마 값은 제1 루마 값 범위 내의 N개의 (다운샘플링된) 재구성된 루마 샘플에 대응하는 상기 N개의 재구성된 크로마 샘플의 평균 크로마 값이고;
루마 값 및 크로마 값의 제10 커플의 루마 값은 제2 루마 값 범위 내의 상기 M개의 (다운샘플링된) 재구성된 루마 샘플의 평균 루마 값이고, 루마 값 및 크로마 값의 제10 커플의 크로마 값은 제2 루마 값 범위 내의 M개의 (다운샘플링된) 재구성된 루마 샘플에 대응하는 상기 M개의 재구성된 크로마 샘플의 평균 크로마 값이되; 제1 루마 값 범위의 임의의 값은 제2 루마 값 범위의 임의의 것보다 더 큼).
이와 같은 제2 측면 또는 제2 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 제1 루마 값은 [MaxlumaValue-T1, MaxlumaValue]의 범위 내에 있고/거나; 제2 루마 값은 [MinlumaValue, MinlumaValue+T2]의 범위 내에 있되,
MaxlumaValue 및 MinlumaValue는 각각 다운샘플링된 재구성된 이웃 루마 샘플의 세트 내의 최대 루마 값 및 최소 루마 값이고, T1, T2는 사전정의된 임계이다.
이와 같은 제2 측면 또는 제2 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, M 및 N은 같거나, 같지 않다.
이와 같은 제2 측면 또는 제2 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, M 및 N은 루마 블록의 블록 크기에 기반하여 정의된다.
이와 같은 제2 측면 또는 제2 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, M=(W+H)>>t, N=(W+H)>>r 인데, t 및 r은 우측 쉬프트(shift) 비트의 개수이다.
이와 같은 제2 측면 또는 제2 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 다운샘플링된 재구성된 이웃 루마 샘플의 세트는 다음을 더 포함한다:
루마 블록 외부의 상단 우측 이웃 루마 샘플(top-right neighboring luma sample) 및 루마 블록 외부의 상단 우측 이웃 루마 샘플 우측에 있는 루마 샘플;
루마 블록 외부의 좌측 하단 이웃 루마 샘플(left-below neighboring luma sample) 및 루마 블록 외부의 좌측 하단 이웃 루마 샘플의 아래에 있는 루마 샘플.
이와 같은 제1 측면 또는 제1 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 루마 블록 위에 있는 복수의 재구성된 루마 샘플은 각자의 상단 경계에 인접한 재구성된 이웃 루마 샘플이고, 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플은 각자의 좌측 경계에 인접한 재구성된 이웃 루마 샘플이다.
이와 같은 제2 측면 또는 제2 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, (다운샘플링된) 재구성된 이웃 루마 샘플의 세트는 루마 블록 외부의 상단 좌측 이웃 루마 샘플의 위에 있는 루마 샘플 및/또는 루마 블록 외부의 상단 좌측 이웃 루마 샘플의 좌측에 있는 루마 샘플을 배제한다.
이와 같은 제2 측면 또는 제2 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 루마 블록의 상단 좌측 루마 샘플의 좌표는 (x0, y0)이고, (다운샘플링된) 재구성된 이웃 루마 샘플의 세트는 x0보다 작은 x 좌표 및 y0보다 작은 y 좌표를 갖는 루마 샘플을 배제한다.
이와 같은 제2 측면 또는 제2 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 다운샘플링된 재구성된 이웃 루마 샘플의 세트는 다운샘플링된 재구성된 이웃 루마 샘플의 제1 세트 및 다운샘플링된 재구성된 이웃 루마 샘플의 제2 세트를 포함하고, 다운샘플링된 재구성된 이웃 루마 샘플의 제1 세트는 임계보다 작거나 같은 루마 값을 가진 다운샘플링된 재구성된 이웃 루마 샘플을 포함하고, 다운샘플링된 재구성된 이웃 루마 샘플의 제2 세트는 임계보다 큰 루마 값을 가진 다운샘플링된 재구성된 이웃 루마 샘플을 포함한다.
제3 측면에 따르면 발명은 비디오 데이터를 디코딩하기 위한 디바이스에 관련되는데, 디바이스는 다음을 포함한다:
비디오 데이터 메모리; 및
비디오 디코더(비디오 디코더는 다음을 위하여 구성됨:
크로마 블록에 대응하는 루마 블록을 판정하는 것;
(다운샘플링된) 재구성된 이웃 루마 샘플의 세트를 판정하는 것((다운샘플링된) 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 (다운샘플링된) 재구성된 루마 샘플 및/또는 루마 블록 좌측에 있는 복수의 (다운샘플링된) 재구성된 루마 샘플을 포함함);
최대 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플 및/또는 최소 값을 가진 M개의 다운샘플링된 재구성된 루마 샘플이 다운샘플링된 재구성된 이웃 루마 샘플의 세트 내에 포함된 경우에, 최대 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플 및 최대 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플에 대응하는 N개의 재구성된 크로마 샘플, 그리고/또는 최소 값을 가진 M개의 다운샘플링된 재구성된 루마 샘플 및 최소 값을 가진 M개의 다운샘플링된 루마 샘플에 대응하는 M개의 재구성된 크로마 샘플에 따라 루마 값 및 크로마 값의 2개의 커플을 판정하는 것(M, N은 양의 정수이고 1보다 더 큼);
루마 값 및 크로마 값의 판정된 2개의 커플에 기반하여 하나 이상의 선형 모델 파라미터를 판정하는 것;
하나 이상의 선형 모델 파라미터에 기반하여 예측 블록을 판정하는 것; 및
예측 블록에 기반하여 크로마 블록을 선형 모델(Linear Model: LM) 예측 디코딩하는 것).
이와 같은 제3 측면에 따른 디바이스의 가능한 구현 형태에서, 다운샘플링된 재구성된 이웃 루마 샘플의 세트는 다음을 더 포함한다:
루마 블록 외부의 상단 우측 이웃 루마 샘플 및 루마 블록 외부의 상단 우측 이웃 루마 샘플 우측에 있는 루마 샘플;
루마 블록 외부의 좌측 하단 이웃 루마 샘플 및 루마 블록 외부의 좌측 하단 이웃 루마 샘플의 아래에 있는 루마 샘플.
이와 같은 제3 측면 또는 제3 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 루마 블록 위에 있는 복수의 재구성된 루마 샘플은 각자의 상단 경계에 인접한 재구성된 이웃 루마 샘플이고, 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플은 각자의 좌측 경계에 인접한 재구성된 이웃 루마 샘플이다.
이와 같은 제3 측면 또는 제3 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, (다운샘플링된) 재구성된 이웃 루마 샘플의 세트는 루마 블록 외부의 상단 좌측 이웃 루마 샘플의 위에 있는 루마 샘플 및/또는 루마 블록 외부의 상단 좌측 이웃 루마 샘플의 좌측에 있는 루마 샘플을 배제한다.
이와 같은 제3 측면 또는 제3 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 루마 블록의 상단 좌측 루마 샘플의 좌표는 (x0, y0)이고, (다운샘플링된) 재구성된 이웃 루마 샘플의 세트는 x0보다 작은 x 좌표 및 y0보다 작은 y 좌표를 갖는 루마 샘플을 배제한다.
이와 같은 제3 측면 또는 제3 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 최대 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플 및/또는 최소 값을 가진 M개의 다운샘플링된 재구성된 루마 샘플이 다운샘플링된 재구성된 이웃 루마 샘플의 세트 내에 포함된 경우에, 루마 값 및 크로마 값의 2개의 커플을 판정하기 위해, 비디오 디코더는 다음을 위하여 구성된다:
루마 값 및 크로마 값의 제1 복수의 커플 중의 각각의 것의 크로마 값 및 루마 값 및 크로마 값의 제2 복수의 커플 중의 각각의 것의 크로마 값 간의 크로마 값 차이에 기반하여 루마 값 및 크로마 값의 2개의 커플을 판정하는 것(또는 선택하는 것)(루마 값 및 크로마 값의 제1 복수의 커플 중의 상기 각각의 것은 최대 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플 중 하나 및 대응하는 재구성된 이웃 크로마 샘플을 포함하고, 루마 값 및 크로마 값의 제2 복수의 커플 중의 상기 각각의 것은 최소 값을 가진 M개의 다운샘플링된 재구성된 루마 샘플 중 하나 및 대응하는 재구성된 이웃 크로마 샘플을 포함함).
이와 같은 제3 측면 또는 제3 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 가장 작은 크로마 값 차이는 루마 값 및 크로마 값의 제1 커플의 크로마 값 및 루마 값 및 크로마 값의 제2 커플의 크로마 값 간이고, 가장 작은 크로마 값 차이를 갖는 루마 값 및 크로마 값의 제1 커플 및 루마 값 및 크로마 값의 제2 커플이 루마 값 및 크로마 값의 상기 2개의 커플로서 선정되거나;
가장 큰 크로마 값 차이는 루마 값 및 크로마 값의 제3 커플의 크로마 값 및 루마 값 및 크로마 값의 제4 커플의 크로마 값 간이고, 가장 큰 크로마 값 차이를 갖는 루마 값 및 크로마 값의 제3 커플 및 루마 값 및 크로마 값의 제4 커플이 루마 값 및 크로마 값의 상기 2개의 커플로서 선정된다. 예를 들어, 루마 값 및 크로마 값의 제1 커플은 루마 값 및 크로마 값의 제1 복수의 커플에 포함된다. 예를 들어, 루마 값 및 크로마 값의 제2 커플은 루마 값 및 크로마 값의 제2 복수의 커플에 포함된다. 예를 들어, 루마 값 및 크로마 값의 제3 커플은 루마 값 및 크로마 값의 제1 복수의 커플에 포함된다. 예를 들어, 루마 값 및 크로마 값의 제4 커플은 루마 값 및 크로마 값의 제2 복수의 커플에 포함된다.
이와 같은 제3 측면 또는 제3 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 최대 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플 및/또는 최소 값을 가진 M개의 다운샘플링된 재구성된 루마 샘플이 다운샘플링된 재구성된 이웃 루마 샘플의 세트 내에 포함된 경우에, 루마 값 및 크로마 값의 2개의 커플을 판정하기 위해, 비디오 디코더는 다음을 위하여 구성된다:
루마 값 및 크로마 값의 제5 커플 및 루마 값 및 크로마 값의 제6 커플을 루마 값 및 크로마 값의 상기 2개의 커플로서 판정하는 것
(루마 값 및 크로마 값의 제5 커플의 대응하는 크로마 값은 최대 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플에 대응하는 N개의 재구성된 크로마 샘플의 평균 크로마 값이고, 루마 값 및 크로마 값의 제6 커플의 대응하는 크로마 값은 최소 값을 가진 M개의 다운샘플링된 재구성된 루마 샘플에 대응하는 M개의 재구성된 크로마 샘플의 평균 크로마 값임). 루마 값 및 크로마 값의 제5 커플의 루마 값은 최대 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플 중의 각각의 것의 루마 값이다. 루마 값 및 크로마 값의 제6 커플의 루마 값은 최소 값을 가진 M개의 다운샘플링된 재구성된 루마 샘플 중의 각각의 것의 루마 값이다.
이와 같은 제3 측면 또는 제3 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 다운샘플링된 재구성된 이웃 루마 샘플의 세트는 다운샘플링된 재구성된 이웃 루마 샘플의 제1 세트 및 다운샘플링된 재구성된 이웃 루마 샘플의 제2 세트를 포함하고, 다운샘플링된 재구성된 이웃 루마 샘플의 제1 세트는 임계보다 작거나 같은 루마 값을 가진 다운샘플링된 재구성된 이웃 루마 샘플을 포함하고, 다운샘플링된 재구성된 이웃 루마 샘플의 제2 세트는 임계보다 큰 루마 값을 가진 다운샘플링된 재구성된 이웃 루마 샘플을 포함한다.
이와 같은 제3 측면 또는 제3 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 예측 블록에 기반하여 크로마 블록을 LM 예측 디코딩하기 위해, 비디오 디코더는 크로마 블록을 재구성하기 위해 잔차 블록에 예측 블록을 가산하도록 구성된다.
이와 같은 제3 측면 또는 제3 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 비디오 디코더는 다음을 위하여 구성된다:
루마 블록 및 크로마 블록을 포함하는 현재의 블록을 위한 플래그를 디코딩하는 것(플래그는 크로마 블록을 위해 LM 예측 코딩이 인에이블됨을 나타내고, 플래그를 디코딩하는 것은 플래그를 LM 예측 코딩이 이웃 블록을 위해 인에이블됨 여부를 나타내는 하나 이상의 플래그를 포함하는 콘텍스트에 기반하여 디코딩하는 것을 포함함).
제4 측면에 따르면 발명은 비디오 데이터를 디코딩하기 위한 디바이스에 관련되는데, 디바이스는 다음을 포함한다:
비디오 데이터 메모리와, 비디오 디코더
(비디오 디코더는 다음을 위하여 구성됨:
크로마 블록에 대응하는 루마 블록을 판정하는 것;
(다운샘플링된) 재구성된 이웃 루마 샘플의 세트를 판정하는 것((다운샘플링된) 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 (다운샘플링된) 재구성된 루마 샘플 및/또는 루마 블록 좌측에 있는 복수의 (다운샘플링된) 재구성된 루마 샘플을 포함함);
N개의 (다운샘플링된) 재구성된 루마 샘플 및 N개의 (다운샘플링된) 재구성된 루마 샘플에 대응하는 N개의 재구성된 크로마 샘플, 그리고/또는 M개의 (다운샘플링된) 재구성된 루마 샘플 및 M개의 (다운샘플링된) 루마 샘플에 대응하는 M개의 재구성된 크로마 샘플에 따라 루마 값 및 크로마 값의 2개의 커플을 판정하는 것(N개의 (다운샘플링된) 재구성된 루마 샘플의 최소 값은 (다운샘플링된) 재구성된 이웃 루마 샘플의 세트의 나머지 (다운샘플링된) 재구성된 루마 샘플의 루마 값보다 더 작지 않고, M개의 (다운샘플링된) 재구성된 루마 샘플의 최대 값은 다운샘플링된 재구성된 이웃 루마 샘플의 세트의 나머지 (다운샘플링된) 재구성된 루마 샘플의 루마 값보다 더 크지 않고, M, N은 양의 정수이고 1보다 더 큼; 다시 말해, N개의 다운샘플링된 재구성된 루마 샘플 중의 임의의 것의 루마 값은 M개의 다운샘플링된 재구성된 루마 샘플 중의 임의의 것의 루마 값보다 더 크고 N 및 M의 합은 다운샘플링된 재구성된 이웃 루마 샘플의 세트 중의 개수와 같거나 더 작음);
루마 값 및 크로마 값의 판정된 2개의 커플에 기반하여 하나 이상의 선형 모델 파라미터를 판정하는 것;
하나 이상의 선형 모델 파라미터에 기반하여 예측 블록을 판정하는 것; 및
예측 블록에 기반하여 크로마 블록을 선형 모델(Linear Model: LM) 예측 디코딩하는 것).
이와 같은 제4 측면에 따른 방법의 가능한 구현 형태에서, 루마 값 및 크로마 값의 2개의 커플을 판정하기 위해, 비디오 디코더는 다음을 위하여 구성된다:
루마 값 및 크로마 값의 제7 커플 및 루마 값 및 크로마 값의 제8 커플을 루마 값 및 크로마 값의 상기 2개의 커플로서 판정하는 것
(루마 값 및 크로마 값의 제7 커플의 루마 값은 상기 N개의 (다운샘플링된) 재구성된 루마 샘플의 평균 루마 값이고, 루마 값 및 크로마 값의 제7 커플의 크로마 값은 N개의 (다운샘플링된) 재구성된 루마 샘플에 대응하는 상기 N개의 재구성된 크로마 샘플의 평균 크로마 값이고;
루마 값 및 크로마 값의 제8 커플의 루마 값은 상기 M개의 (다운샘플링된) 재구성된 루마 샘플의 평균 루마 값이고, 루마 값 및 크로마 값의 제8 커플의 크로마 값은 M개의 (다운샘플링된) 재구성된 루마 샘플에 대응하는 상기 M개의 재구성된 크로마 샘플의 평균 크로마 값임).
이와 같은 제4 측면 또는 제4 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 루마 값 및 크로마 값의 2개의 커플을 판정하기 위해, 비디오 디코더는 다음을 위하여 구성된다:
루마 값 및 크로마 값의 제9 커플 및 루마 값 및 크로마 값의 제10 커플을 루마 값 및 크로마 값의 상기 2개의 커플로서 판정하는 것
(루마 값 및 크로마 값의 제9 커플의 루마 값은 제1 루마 값 범위 내의 상기 N개의 (다운샘플링된) 재구성된 루마 샘플의 평균 루마 값이고, 루마 값 및 크로마 값의 제9 커플의 크로마 값은 제1 루마 값 범위 내의 N개의 (다운샘플링된) 재구성된 루마 샘플에 대응하는 상기 N개의 재구성된 크로마 샘플의 평균 크로마 값이고;
루마 값 및 크로마 값의 제10 커플의 루마 값은 제2 루마 값 범위 내의 상기 M개의 (다운샘플링된) 재구성된 루마 샘플의 평균 루마 값이고, 루마 값 및 크로마 값의 제10 커플의 크로마 값은 제2 루마 값 범위 내의 M개의 (다운샘플링된) 재구성된 루마 샘플에 대응하는 상기 M개의 재구성된 크로마 샘플의 평균 크로마 값이되; 제1 루마 값 범위의 임의의 값은 제2 루마 값 범위의 임의의 것보다 더 큼).
이와 같은 제4 측면 또는 제4 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 제1 루마 값은 [MaxlumaValue-T1, MaxlumaValue]의 범위 내에 있고/거나; 제2 루마 값은 [MinlumaValue, MinlumaValue+T2]의 범위 내에 있되, MaxlumaValue 및 MinlumaValue는 각각 다운샘플링된 재구성된 이웃 루마 샘플의 세트 내의 최대 루마 값 및 최소 루마 값이고, T1, T2는 사전정의된 임계이다.
이와 같은 제4 측면 또는 제4 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, M 및 N은 같거나, 같지 않다.
이와 같은 제4 측면 또는 제4 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, M 및 N은 루마 블록의 블록 크기에 기반하여 정의된다.
이와 같은 제4 측면 또는 제4 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, M=(W+H)>>t, N=(W+H)>>r 인데, t 및 r은 우측 쉬프트 비트의 개수이다.
이와 같은 제4 측면 또는 제4 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 다운샘플링된 재구성된 이웃 루마 샘플의 세트는 다음을 더 포함한다:
루마 블록 외부의 상단 우측 이웃 루마 샘플 및 루마 블록 외부의 상단 우측 이웃 루마 샘플 우측에 있는 루마 샘플;
루마 블록 외부의 좌측 하단 이웃 루마 샘플 및 루마 블록 외부의 좌측 하단 이웃 루마 샘플의 아래에 있는 루마 샘플.
이와 같은 제4 측면 또는 제4 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 루마 블록 위에 있는 복수의 재구성된 루마 샘플은 각자의 상단 경계에 인접한 재구성된 이웃 루마 샘플이고, 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플은 각자의 좌측 경계에 인접한 재구성된 이웃 루마 샘플이다.
이와 같은 제4 측면 또는 제4 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, (다운샘플링된) 재구성된 이웃 루마 샘플의 세트는 루마 블록 외부의 상단 좌측 이웃 루마 샘플의 위에 있는 루마 샘플 및/또는 루마 블록 외부의 상단 좌측 이웃 루마 샘플의 좌측에 있는 루마 샘플을 배제한다.
이와 같은 제4 측면 또는 제4 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 루마 블록의 상단 좌측 루마 샘플의 좌표는 (x0, y0)이고, (다운샘플링된) 재구성된 이웃 루마 샘플의 세트는 x0보다 작은 x 좌표 및 y0보다 작은 y 좌표를 갖는 루마 샘플을 배제한다.
이와 같은 제4 측면 또는 제4 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 다운샘플링된 재구성된 이웃 루마 샘플의 세트는 다운샘플링된 재구성된 이웃 루마 샘플의 제1 세트 및 다운샘플링된 재구성된 이웃 루마 샘플의 제2 세트를 포함하고, 다운샘플링된 재구성된 이웃 루마 샘플의 제1 세트는 임계보다 작거나 같은 루마 값을 가진 다운샘플링된 재구성된 이웃 루마 샘플을 포함하고, 다운샘플링된 재구성된 이웃 루마 샘플의 제2 세트는 임계보다 큰 루마 값을 가진 다운샘플링된 재구성된 이웃 루마 샘플을 포함한다.
이와 같은 제4 측면 또는 제4 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 예측 블록에 기반하여 크로마 블록을 LM 예측 디코딩하기 위해, 비디오 디코더는 크로마 블록을 재구성하기 위해 잔차 블록에 예측 블록을 가산하도록 구성된다.
이와 같은 제4 측면 또는 제4 측면의 임의의 전술한 구현에 따른 방법의 가능한 구현 형태에서, 비디오 디코더는:
루마 블록 및 크로마 블록을 포함하는 현재의 블록을 위한 플래그를 디코딩하도록 구성되는데, 플래그는 크로마 블록을 위해 LM 예측 코딩이 인에이블됨을 나타내고, 플래그를 디코딩하는 것은 플래그를 LM 예측 코딩이 이웃 블록을 위해 인에이블됨 여부를 나타내는 하나 이상의 플래그를 포함하는 콘텍스트에 기반하여 디코딩하는 것을 포함한다.
발명의 제1 측면에 따른 방법은 발명의 제3 측면에 따른 장치에 의해 수행될 수 있다. 발명의 제3 측면에 따른 장치의 추가의 특징 및 구현 형태는 발명의 제1 측면에 따른 방법의 특징 및 구현 형태에 대응한다.
발명의 제2 측면에 따른 방법은 발명의 제4 측면에 따른 장치에 의해 수행될 수 있다. 발명의 제4 측면에 따른 장치의 추가의 특징 및 구현 형태는 발명의 제2 측면에 따른 방법의 특징 및 구현 형태에 대응한다.
제5 측면에 따르면 발명은 비디오 데이터를 인코딩하는 방법에 관련되는데, 방법은 다음을 포함한다:
크로마 블록에 대응하는 루마 블록을 판정하는 것;
다운샘플링된 재구성된 이웃 루마 샘플의 세트를 판정하는 것(다운샘플링된 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 다운샘플링된 재구성된 루마 샘플 및/또는 루마 블록 좌측에 있는 복수의 다운샘플링된 재구성된 루마 샘플을 포함함);
최대 루마 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플 및/또는 최소 루마 값을 가진 M개의 다운샘플링된 재구성된 루마 샘플이 다운샘플링된 재구성된 이웃 루마 샘플의 세트 내에 포함된 경우에, 최대 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플 및 최대 루마 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플에 대응하는 N개의 재구성된 크로마 샘플, 그리고/또는 최소 값을 가진 M개의 다운샘플링된 재구성된 루마 샘플 및 최소 루마 값을 가진 M개의 다운샘플링된 루마 샘플에 대응하는 M개의 재구성된 크로마 샘플에 따라 루마 값 및 크로마 값의 2개의 커플을 판정하는 것(M, N은 양의 정수이고 1보다 더 큼);
루마 값 및 크로마 값의 판정된 2개의 커플에 기반하여 하나 이상의 선형 모델 파라미터를 판정하는 것;
하나 이상의 선형 모델 파라미터에 기반하여 예측 블록을 판정하는 것; 및
예측 블록에 기반하여 크로마 블록을 선형 모델(Linear Model: LM) 예측 인코딩하는 것.
제6 측면에 따르면 발명은 비디오 데이터를 인코딩하는 방법에 관련되는데, 방법은 다음을 포함한다:
크로마 블록에 대응하는 루마 블록을 판정하는 것;
(다운샘플링된) 재구성된 이웃 루마 샘플의 세트를 판정하는 것((다운샘플링된) 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 (다운샘플링된) 재구성된 루마 샘플 및/또는 루마 블록 좌측에 있는 복수의 (다운샘플링된) 재구성된 루마 샘플을 포함함);
N개의 (다운샘플링된) 재구성된 루마 샘플 및 N개의 (다운샘플링된) 재구성된 루마 샘플에 대응하는 N개의 재구성된 크로마 샘플, 그리고/또는 M개의 (다운샘플링된) 재구성된 루마 샘플 및 M개의 (다운샘플링된) 루마 샘플에 대응하는 M개의 재구성된 크로마 샘플에 따라 루마 값 및 크로마 값의 2개의 커플을 판정하는 것(N개의 (다운샘플링된) 재구성된 루마 샘플의 최소 값은 (다운샘플링된) 재구성된 이웃 루마 샘플의 세트의 나머지 (다운샘플링된) 재구성된 루마 샘플의 루마 값보다 더 작지 않고, M개의 (다운샘플링된) 재구성된 루마 샘플의 최대 값은 다운샘플링된 재구성된 이웃 루마 샘플의 세트의 나머지 (다운샘플링된) 재구성된 루마 샘플의 루마 값보다 더 크지 않고, M, N은 양의 정수이고 1보다 더 큼; 다시 말해, N개의 다운샘플링된 재구성된 루마 샘플 중의 임의의 것의 루마 값은 M개의 다운샘플링된 재구성된 루마 샘플 중의 임의의 것의 루마 값보다 더 크고 N 및 M의 합은 다운샘플링된 재구성된 이웃 루마 샘플의 세트 중의 개수와 같거나 더 작음).
루마 값 및 크로마 값의 판정된 2개의 커플에 기반하여 하나 이상의 선형 모델 파라미터를 판정하는 것;
하나 이상의 선형 모델 파라미터에 기반하여 예측 블록을 판정하는 것; 및
예측 블록에 기반하여 크로마 블록을 선형 모델(Linear Model: LM) 예측 인코딩하는 것.
제7 측면에 따르면 발명은 비디오 데이터를 인코딩하기 위한 디바이스에 관련되는데, 디바이스는 다음을 포함한다:
비디오 데이터 메모리; 및
비디오 인코더(비디오 인코더는 다음을 위하여 구성됨:
크로마 블록에 대응하는 루마 블록을 판정하는 것;
다운샘플링된 재구성된 이웃 루마 샘플의 세트를 판정하는 것(다운샘플링된 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 다운샘플링된 재구성된 루마 샘플 및/또는 루마 블록 좌측에 있는 복수의 다운샘플링된 재구성된 루마 샘플을 포함함);
최대 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플 및/또는 최소 값을 가진 M개의 다운샘플링된 재구성된 루마 샘플이 다운샘플링된 재구성된 이웃 루마 샘플의 세트 내에 포함된 경우에, 최대 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플 및 최대 값을 가진 N개의 다운샘플링된 재구성된 루마 샘플에 대응하는 N개의 재구성된 크로마 샘플, 그리고/또는 최소 값을 가진 M개의 다운샘플링된 재구성된 루마 샘플 및 최소 값을 가진 M개의 다운샘플링된 루마 샘플에 대응하는 M개의 재구성된 크로마 샘플에 따라 루마 값 및 크로마 값의 2개의 커플을 판정하는 것(M, N은 양의 정수이고 1보다 더 큼);
루마 값 및 크로마 값의 판정된 2개의 커플에 기반하여 하나 이상의 선형 모델 파라미터를 판정하는 것;
하나 이상의 선형 모델 파라미터에 기반하여 예측 블록을 판정하는 것; 및
예측 블록에 기반하여 크로마 블록을 선형 모델(Linear Model: LM) 예측 인코딩하는 것).
제8 측면에 따르면 발명은 비디오 데이터를 인코딩하기 위한 디바이스에 관련되는데, 디바이스는 다음을 포함한다:
비디오 데이터 메모리; 및
비디오 인코더(비디오 인코더는 다음을 위하여 구성됨:
크로마 블록에 대응하는 루마 블록을 판정하는 것;
(다운샘플링된) 재구성된 이웃 루마 샘플의 세트를 판정하는 것((다운샘플링된) 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 (다운샘플링된) 재구성된 루마 샘플 및/또는 루마 블록 좌측에 있는 복수의 (다운샘플링된) 재구성된 루마 샘플을 포함함);
N개의 (다운샘플링된) 재구성된 루마 샘플 및 N개의 (다운샘플링된) 재구성된 루마 샘플에 대응하는 N개의 재구성된 크로마 샘플, 그리고/또는 M개의 (다운샘플링된) 재구성된 루마 샘플 및 M개의 (다운샘플링된) 루마 샘플에 대응하는 M개의 재구성된 크로마 샘플에 따라 루마 값 및 크로마 값의 2개의 커플을 판정하는 것(N개의 (다운샘플링된) 재구성된 루마 샘플의 최소 값은 (다운샘플링된) 재구성된 이웃 루마 샘플의 세트의 나머지 (다운샘플링된) 재구성된 루마 샘플의 루마 값보다 더 작지 않고, M개의 (다운샘플링된) 재구성된 루마 샘플의 최대 값은 다운샘플링된 재구성된 이웃 루마 샘플의 세트의 나머지 (다운샘플링된) 재구성된 루마 샘플의 루마 값보다 더 크지 않고, M, N은 양의 정수이고 1보다 더 큼);
루마 값 및 크로마 값의 판정된 2개의 커플에 기반하여 하나 이상의 선형 모델 파라미터를 판정하는 것;
하나 이상의 선형 모델 파라미터에 기반하여 예측 블록을 판정하는 것; 및
예측 블록에 기반하여 크로마 블록을 선형 모델(Linear Model: LM) 예측 인코딩하는 것).
임의의 전술한 측면에 따른 인코딩 장치는 그 임의의 전술한 측면에 따른 인코딩 장치의 추가의 구현을 도출하기 위해 대응하는 전술한 측면 또는 이의 구현에 따른 인코딩 방법의 특징에 의해 추가로 확장될 수 있다.
임의의 전술한 측면에 따른 인코딩 방법은 그 임의의 전술한 측면에 따른 인코딩 방법의 추가의 구현을 도출하기 위해 대응하는 전술한 측면 또는 이의 구현에 따른 디코딩 방법의 특징에 의해 추가로 확장될 수 있다.
프로세서 상에서 실행되는 경우에 프로세서로 하여금 그와 같은 임의의 전술한 측면 또는 그 임의의 전술한 측면의 임의의 전술한 구현에 따라 임의의 위의 방법을 수행하게 하는 명령어를 저장하는 컴퓨터 판독가능 매체.
디코딩 장치가 제공되는데, 이는 그와 같은 임의의 전술한 측면 또는 그 임의의 전술한 측면의 임의의 전술한 구현에 따라 위의 방법의 단계의 적어도 일부를 수행하는 모듈/유닛/컴포넌트/회로를 포함한다.
디코딩 장치가 제공되는데, 이는 명령어를 저장하는 메모리; 및 메모리에 커플링된(coupled) 프로세서를 포함하되, 프로세서는 프로세서로 하여금 그와 같은 임의의 전술한 측면 또는 그 임의의 전술한 측면의 임의의 전술한 구현에 따라 위의 방법을 수행하게 하기 위해 메모리 내에 저장된 명령어를 실행하도록 구성된다.
컴퓨터 판독가능 저장 매체가 제공되는데, 이는 컴퓨터 판독가능 저장 매체 상에 기록된 프로그램을 갖되; 프로그램은 컴퓨터가 그와 같은 임의의 전술한 측면 또는 그 임의의 전술한 측면의 임의의 전술한 구현에 따라 방법을 실행하게 한다.
컴퓨터 프로그램이 제공되는데, 이는 컴퓨터로 하여금 그와 같은 임의의 전술한 측면 또는 그 임의의 전술한 측면의 임의의 전술한 구현에 따라 방법을 실행하게 하도록 구성된다.
명확성의 목적으로, 본 개시의 범위 내에서 새로운 실시예를 창출하기 위해, 전술된 실시예 중의 임의의 것은 다른 전술된 실시예 중 임의의 하나 이상과 조합될 수 있다.
이들 및 다른 특징은 첨부된 도면 및 청구항과 함께 취해지는 다음의 상세한 설명으로부터 더욱 명확하게 이해될 것이다.
다음은 본 출원의 실시예를 기술하는 데에서 사용되는 첨부된 도면의 간략한 설명이다.
도 1a는 본 개시의 실시예가 구현될 수 있는 비디오 데이터 코딩 시스템의 블록도이다.
도 1b는 본 개시의 실시예가 구현될 수 있는 다른 비디오 데이터 코딩 시스템의 블록도이다.
도 2는 본 개시의 실시예가 구현될 수 있는 비디오 데이터 인코더의 블록도이다.
도 3은 본 개시의 실시예가 구현될 수 있는 비디오 데이터 디코더의 블록도이다.
도 4는 본 개시의 실시예에 따른 비디오 코딩 디바이스의 개략도이다.
도 5는 본 개시의 다양한 실시예가 구현될 수 있는 비디오 데이터 코딩 장치의 단순화된 블록도이다.
도 6은 H.265/HEVC의 인트라 예측 모드의 예시이다.
도 7은 참조 샘플(reference sample)의 예시이다.
도 8은 루마 및 크로마 샘플의 명목상(nominal) 수직 및 수평의 상대적 위치를 보여주는 개념도이다.
도 9a 및 도 9b를 포함하는 도 9는 크로스 컴포넌트 선형 모델(Cross-Component Linear Model: CCLM) 인트라 예측을 수행하는 예시적인 메커니즘을 보여주는 개략도이다. 도 9a는 공동 위치된(co-located) 루마 블록의 이웃하는 재구성된 픽셀의 예를 보여준다. 도 9b는 크로마 블록의 이웃하는 재구성된 픽셀의 예를 보여준다.
도 10은 예측 블록을 생성하기 위해 루마 블록의 샘플을 다운샘플링하기 위한 루마 위치 및 크로마 위치의 예를 보여주는 개념도이다.
도 11은 예측 블록을 생성하기 위해 루마 블록의 샘플을 다운샘플링하기 위한 루마 위치 및 크로마 위치의 다른 예를 보여주는 개념도이다.
도 12 내지 도 15는 크로스 컴포넌트 인트라 예측을 지원하기 위한 다운샘플링의 예시적인 메커니즘을 보여주는 개략도이다.
도 16은 최소 및 최대 루마 값 간의 직선의 예시이다.
도 17은 크로스 컴포넌트 인트라 예측_A (CCIP_A) 모드의 예시이다.
도 18은 크로스 컴포넌트 인트라 예측_L (CCIP_L) 모드의 예시이다.
도 19는 다중 모델 CCLM(Multiple Model CCLM: MMLM) 인트라 예측을 지원하기 위해 선형 모델 파라미터를 판정하는 예시적인 메커니즘을 보여주는 그래프이다.
도 20은 크로스 컴포넌트 인트라 예측을 지원하기 위해 이웃 상단 및 좌측 샘플을 사용하는 예시적인 메커니즘을 보여주는 개략도이다.
도 21은 크로스 컴포넌트 인트라 예측을 지원하기 위해 확장된 샘플을 사용하는 예시적인 메커니즘을 보여주는 개략도이다.
도 22는 본 개시의 몇몇 실시예에 따른 크로스 컴포넌트 선형 모델(CCLM) 예측의 방법의 흐름도이다.
도 23은 본 개시의 실시예에 따른 크로스 컴포넌트 선형 모델(CCLM) 예측을 사용하여 비디오 데이터를 디코딩하는 방법의 흐름도이다.
도 24는 본 개시의 실시예에 따른 크로스 컴포넌트 선형 모델(CCLM) 예측을 사용하여 비디오 데이터를 인코딩하는 방법의 흐름도이다.
도 25는 본 개시의 다른 실시예에 따른 크로스 컴포넌트 선형 모델(CCLM) 예측을 사용하여 비디오 데이터를 디코딩하는 방법의 흐름도이다.
도 26은 본 개시의 다른 실시예에 따른 크로스 컴포넌트 선형 모델(CCLM) 예측을 사용하여 비디오 데이터를 인코딩하는 방법의 예시적 흐름도이다.
다양한 도면에서, 동일하거나 기능적으로 균등한 특징을 위해 동일한 참조 번호가 사용될 것이다.
하나 이상의 실시예의 예시적인 구현이 아래에서 제공되나, 개시된 시스템 및/또는 방법은, 현재 알려진 것이든 현존하는 것이든 간에 임의의 수의 기법을 사용하여 구현될 수 있음이 처음에 이해되어야 한다. 개시는 예시적인 구현, 도면 및 아래에 예시된 기법(본 문서에 예시되고 기술된 예시적 설계 및 구현을 포함함)에 결코 한정되어서는 안 되며, 부기된 청구항의 범위(더불어 그것의 균등물 전 범위) 내에서 수정될 수 있다.
도 1a는 본 개시의 실시예가 구현될 수 있는 비디오 데이터 코딩 시스템의 블록도이다. 도 1a에 도시된 바와 같이, 코딩 시스템(10)은 인코딩된 비디오 데이터를 제공하는 소스 디바이스(source device)(12)와, 인코딩 디바이스(12)에 의해 제공된 인코딩된 비디오 데이터를 디코딩하는 목적지 디바이스(destination device)(14)를 포함한다. 특히, 소스 디바이스(12)는 전송 매체(transport medium)(16)를 통해 목적지 디바이스(14)에 비디오 데이터를 제공할 수 있다. 소스 디바이스(12) 및 목적지 디바이스(14)는 데스크톱 컴퓨터(desktop computer), 노트북 컴퓨터(notebook computer)(즉 랩톱 컴퓨터(laptop computer)), 태블릿 컴퓨터(tablet computer), 셋톱 박스(set-top box), 셀룰러 전화 핸드세트(cellular telephone handset)(즉 "스마트" 폰), 텔레비전(television), 카메라(camera), 디스플레이 디바이스(display device), 디지털 미디어 플레이어(digital media player), 비디오 게이밍 콘솔(video gaming console), 비디오 스트리밍 디바이스(video streaming device), 또는 유사한 것과 같은, 광범위한 전자 디바이스 중의 임의의 것일 수 있다. 몇몇 경우에, 소스 디바이스(12) 및 목적지 디바이스(14)는 무선 통신에 대한 구비가 될 수 있다.
목적지 디바이스(14)는 인코딩된 비디오 데이터를 전송 매체(16)를 통해 수신할 수 있다. 전송 매체(16)는 인코딩된 비디오 데이터를 소스 디바이스(12)로부터 목적지 디바이스(14)로 전송하는 것이 가능한 임의의 타입의 매체 또는 디바이스일 수 있다. 하나의 예에서, 전송 매체(16)는 소스 디바이스(12)로 하여금 인코딩된 비디오 데이터를 직접적으로 목적지 디바이스(14)에 실시간으로 송신할 수 있게 하는 통신 매체일 수 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라 변조될 수 있고, 변조된 인코딩된 비디오 데이터는 목적지 디바이스(14)에 송신된다. 통신 매체는 무선 주파수(Radio Frequency: RF) 스펙트럼파(spectrum wave) 또는 하나 이상의 물리적 송신 라인(physical transmission line)과 같은 임의의 무선 또는 유선 통신 매체일 수 있다. 통신 매체는 패킷 기반 네트워크, 예를 들면 로컬 영역 네트워크(local area network), 광역 네트워크(wide-area network), 또는 인터넷과 같은 글로벌 네트워크의 일부를 형성할 수 있다. 통신 매체는 라우터(router), 스위치(switch), 기지국(base station), 또는 소스 디바이스(12)로부터 목적지 디바이스(14)로의 통신을 수월하게 하는 데에 유용할 수 있는 임의의 다른 장비를 포함할 수 있다.
소스 디바이스(12)에서, 인코딩된 데이터는 출력 인터페이스(22)로부터 (도 1a에 도시되지 않은) 저장 디바이스에 출력될 수 있다. 유사하게, 인코딩된 데이터는 목적지 디바이스(14)의 입력 인터페이스(28)에 의해 저장 디바이스로부터 액세스될(accessed) 수 있다. 저장 디바이스는 하드 드라이브(hard drive), 블루레이 디스크(Blu-rayTM disc), 디지털 비디오 디스크(Digital Video Disk: DVD), 콤팩트 디스크 판독 전용 메모리(Compact Disc Read-Only Memory: CD-ROM), 플래쉬 메모리(flash memory), 휘발성(volatile) 또는 비휘발성(non-volatile) 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체와 같은 다양한 분산된(distributed) 또는 로컬로(locally) 액세스되는 데이터 저장 매체 중의 임의의 것을 포함할 수 있다.
추가의 예에서, 저장 디바이스는 소스 디바이스(12)에 의해 생성된 인코딩된 비디오를 저장할 수 있는 파일 서버 또는 다른 중간 저장 서버에 대응할 수 있다. 목적지 디바이스(14)는 저장된 비디오 데이터를 스트리밍(streaming) 또는 다운로딩(downloading)을 통해 저장 디바이스로부터 액세스할 수 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하는 것 및 그런 인코딩된 비디오 데이터를 목적지 디바이스(14)에 송신하는 것이 가능한 임의의 타입의 서버일 수 있다. 예시적인 파일 서버는 (가령, 웹사이트를 위한) 웹 서버, 파일 전송 프로토콜(File Transfer Protocol: FTP) 서버, 네트워크 부착 저장(Network Attached Storage: NAS) 디바이스, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스(14)는 인코딩된 비디오 데이터를 인터넷 연결을 포함하는 임의의 표준 데이터 연결을 통해서 액세스할 수 있다. 이는 무선 채널(가령, 와이파이(Wi-Fi) 연결), 유선 연결(가령, 디지털 가입자 회선(Digital Subscriber Line: DSL), 케이블 모뎀 등), 또는 파일 서버 상에 저장된 인코딩된 비디오 데이터를 액세스하기에 적합한, 양자 모두의 조합을 포함할 수 있다. 저장 디바이스로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이의 조합일 수 있다.
이 개시의 기법은 반드시 무선 애플리케이션 또는 설정에 한정되지는 않는다. 기법은 공중을 통한 텔레비전 방송(over-the-air television broadcast), 케이블 텔레비전 송신, 위성 텔레비전 송신, 인터넷 스트리밍 비디오 송신, 예를 들면 HTTP를 통한 동적 적응적 스트리밍(Dynamic Adaptive Streaming over HTTP: DASH), 데이터 저장 매체 상으로 인코딩된 디지털 비디오, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션과 같은 다양한 멀티미디어 애플리케이션 중의 임의의 것을 지원하여 비디오 코딩에 적용될 수 있다. 몇몇 예에서, 코딩 시스템(10)은 비디오 스트리밍(video streaming), 비디오 재생(video playback), 비디오 방송(video broadcasting) 및/또는 비디오 전화술(video telephony)과 같은 애플리케이션을 지원하기 위해 일방(one-way) 또는 양방(two-way) 비디오 송신을 지원하도록 구성될 수 있다.
도 1a의 예에서, 소스 디바이스(12)는 비디오 소스(18), 비디오 인코더(20) 및 출력 인터페이스(22)를 포함한다. 목적지 디바이스(14)는 입력 인터페이스(28), 비디오 디코더(30) 및 디스플레이 디바이스(32)를 포함한다. 이 개시에 따르면, 소스 디바이스(12)의 비디오 인코더(20) 및/또는 목적지 디바이스(14)의 비디오 디코더(30)는 양방향 예측(bidirectional prediction)을 위해 기법을 적용하도록 구성될 수 있다. 다른 예에서, 소스 디바이스(12) 및 목적지 디바이스(14)는 다른 컴포넌트 또는 배열을 포함할 수 있다. 예를 들어, 소스 디바이스(12)는 외부 카메라와 같은 외부 비디오 소스로부터 비디오 데이터를 수신할 수 있다. 마찬가지로, 목적지 디바이스(14)는 통합된(integrated) 디스플레이 디바이스를 포함하는 것 대신에, 외부 디스플레이 디바이스와 인터페이스할 수 있다.
도 1a의 예시된 코딩 시스템(10)은 단지 예이다. 양방향 예측을 위한 방법은 임의의 디지털 비디오 인코딩 또는 디코딩 디바이스에 의해 수행될 수 있다. 비록 이 개시의 기법은 일반적으로 비디오 코딩 디바이스에 의해 사용되나, 기법은 전형적으로 "코덱"(codec)으로 지칭되는 비디오 인코더/디코더에 의해 또한 사용될 수 있다. 더욱이, 이 개시의 기법은 비디오 전처리기(preprocessor)에 의해 또한 사용될 수 있다. 비디오 인코더 및/또는 비디오 디코더는 그래픽 처리 유닛(Graphics Processing Unit: GPU) 또는 유사한 디바이스일 수 있다.
소스 디바이스(12) 및 목적지 디바이스(14)는 소스 디바이스(12)가 목적지 디바이스(14)로의 송신을 위한 인코딩된 비디오 데이터를 생성하는 비디오 데이터 코딩 시스템 내의 인코딩/디코딩 디바이스의 예일 뿐이다. 몇몇 예에서, 소스 디바이스(12) 및 목적지 디바이스(14)는 소스 디바이스(12) 및 목적지 디바이스(14) 각각이 비디오 인코딩 및 디코딩 컴포넌트를 포함하도록 실질적으로 대칭적인 방식으로 동작할 수 있다. 그러한즉, 코딩 시스템(10)은, 가령, 비디오 스트리밍, 비디오 재생, 비디오 방송 또는 비디오 전화술을 위해, 비디오 디바이스(12 및 14) 간의 일방 또는 양방 비디오 송신을 지원할 수 있다.
소스 디바이스(12)의 비디오 소스(18)는 비디오 포착 디바이스(video capture device), 예를 들면 비디오 카메라, 이전에 포착된 비디오를 담은 비디오 보관소(video archive) 및/또는 비디오 콘텐트 제공자(video content provider)로부터 비디오를 수신하는 비디오 피드 인터페이스(video feed interface)를 포함할 수 있다. 추가의 대안으로서, 비디오 소스(18)는 소스 비디오로서 컴퓨터 그래픽 기반 데이터, 또는 라이브(live) 비디오, 보관된(archived) 비디오 및 컴퓨터 생성식(computer-generated) 비디오의 조합을 생성할 수 있다.
몇몇 경우에, 비디오 소스(18)가 비디오 카메라인 경우에, 소스 디바이스(12) 및 목적지 디바이스(14)는 이른바 카메라 전화(camera phone) 또는 비디오 전화(video phone)를 형성할 수 있다. 그러나, 앞서 언급된 바와 같이, 이 개시에 기술된 기법은 일반적으로 비디오 코딩에 적용가능할 수 있고, 무선 및/또는 유선 애플리케이션에 적용될 수 있다. 각각의 경우에, 포착된, 사전포착된, 또는 컴퓨터 생성식 비디오는 비디오 인코더(20)에 의해 인코딩될 수 있다. 인코딩된 비디오 정보는 이후에 전송 매체(16) 상에 출력 인터페이스(22)에 의해 출력될 수 있다.
전송 매체(16)는 일시적(transient) 매체, 예를 들면 무선 방송 또는 유선 네트워크 송신, 또는 저장 매체(즉, 비일시적(non-transitory) 저장 매체), 예를 들면 하드 디스크, 플래쉬 드라이브, 콤팩트 디스크, 디지털 비디오 디스크, 블루레이(Blu-rayTM) 디스크, 또는 다른 컴퓨터 판독가능 매체를 포함할 수 있다. 몇몇 예에서, (도시되지 않은) 네트워크 서버가 인코딩된 비디오 데이터를 소스 디바이스(12)로부터 수신하고, 가령, 네트워크 송신을 통해, 인코딩된 비디오 데이터를 목적지 디바이스(14)에 제공할 수 있다. 유사하게, 디스크 스탬핑(stamping) 시설과 같은 매체 생산 시설의 컴퓨팅 디바이스는 인코딩된 비디오 데이터를 소스 디바이스(12)로부터 수신하고 인코딩된 비디오 데이터를 담은 디스크를 생산할 수 있다. 따라서, 전송 매체(16)는, 다양한 예에서, 다양한 형태의 하나 이상의 컴퓨터 판독가능 매체를 포함하는 것으로 이해될 수 있다.
목적지 디바이스(14)의 입력 인터페이스(28)는 전송 매체(16)로부터 정보를 수신한다. 전송 매체(16)의 정보는 비디오 인코더(20)에 의해 정의된 구문 정보(syntax information)를 포함할 수 있는데, 이는 비디오 디코더(30)에 의해 또한 사용되는 것으로서, 블록 및 다른 코딩된 유닛, 가령, 픽처의 그룹(Group of Pictures: GOP)의 특성 및/또는 처리를 기술하는 구문 요소를 포함한다. 디스플레이 디바이스(32)는 디코딩된 비디오 데이터를 사용자에게 디스플레이하며, 음극선관(Cathode Ray Tube: CRT), 액정 디스플레이(Liquid Crystal Display: LCD), 플라즈마 디스플레이, 유기 발광 다이오드(Organic Light Emitting Diode: OLED) 디스플레이, 또는 다른 타입의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스 중의 임의의 것을 포함할 수 있다.
비디오 인코더(20) 및 비디오 디코더(30)는 비디오 코딩 표준, 예를 들면 현재 개발 중인 고효율 비디오 코딩(High Efficiency Video Coding: HEVC) 표준에 따라 동작할 수 있고, HEVC 테스트 모델(HEVC Test Model: HM)에 따를 수 있다. 대안적으로, 비디오 인코더(20) 및 비디오 디코더(30)는 다른 전유(proprietary) 또는 산업 표준, 예를 들면 국제 전기통신 연합 전기통신 표준화 섹터(International Telecommunications Union Telecommunication Standardization Sector: ITU-T) H.264 표준(대안적으로 동화상 전문가 그룹(Motion Picture Expert Group: MPEG)-4, 파트 10, 고급 비디오 코딩(Advanced Video Coding: AVC)으로 지칭됨), H.265/HEVC, 또는 그러한 표준의 확장에 따라 동작할 수 있다. 그러나, 이 개시에 의해 제공되는 기법은 어떤 특정한 코딩 표준에도 한정되지 않는다. 비디오 코딩 표준의 다른 예는 MPEG-2 및 ITU-T H.263을 포함한다. 비록 도 1a에 도시되지 않으나, 몇몇 측면에서, 비디오 인코더(20) 및 비디오 디코더(30)는 각각 오디오 인코더 및 디코더와 통합될 수 있고, 공통의 데이터 스트림 또는 별개의 데이터 스트림 내의 오디오 및 비디오 양자 모두의 인코딩을 다루기 위해, 적절한 멀티플렉서-디멀티플렉서(multiplexer-demultiplexer)(MUX-DEMUX) 유닛, 또는 다른 하드웨어 및 소프트웨어를 포함할 수 있다. 적용가능한 경우, MUX-DEMUX 유닛은 ITU H.223 멀티플렉서 프로토콜, 또는 다른 프로토콜, 예를 들면 사용자 데이터그램 프로토콜(User Datagram Protocol: UDP)에 따를 수 있다.
비디오 인코더(20) 및 비디오 디코더(30)는 각각 하나 이상의 마이크로프로세서(microprocessor), 디지털 신호 프로세서(Digital Signal Processor: DSP), 애플리케이션 특정 집적 회로(Application Specific Integrated Circuit: ASIC), 필드 프로그램가능 게이트 어레이(Field Programmable Gate Array: FPGA), 이산 로직(discrete logic), 소프트웨어, 하드웨어, 펌웨어 또는 이의 임의의 조합과 같은 다양한 적합한 인코더 회로부 중의 임의의 것으로서 구현될 수 있다. 기법이 부분적으로 소프트웨어로 구현되는 경우에, 디바이스는 소프트웨어를 위한 명령어를 적합한 비일시적 컴퓨터 판독가능 매체 내에 저장하고, 이 개시의 기법을 수행하기 위해 하나 이상의 프로세서를 사용하여 하드웨어로 명령어를 실행할 수 있다. 비디오 인코더(20) 및 비디오 디코더(30) 각각은 하나 이상의 인코더 또는 디코더 내에 포함될 수 있는데, 이들 중 어느 한쪽이든 각자의 디바이스 내에 조합된 인코더/디코더(encoder/decoder)(CODEC)의 일부로서 통합될 수 있다. 비디오 인코더(20) 및/또는 비디오 디코더(30)를 포함하는 디바이스는 집적 회로(integrated circuit), 마이크로프로세서 및/또는 무선 통신 디바이스, 예를 들면 셀룰러 전화(cellular telephone)일 수 있다.
도 1b는 비디오 인코더(20) 및/또는 디코더(30)를 포함하는 예시적인 비디오 코딩 시스템(40)의 블록도이다. 도 1b에 도시된 바와 같이, 비디오 코딩 시스템(40)은 하나 이상의 촬상(imaging) 디바이스(들)(41), 비디오 인코더(20), 비디오 디코더(30), 안테나(42), 하나 이상의 프로세서(들)(43), 하나 이상의 메모리 저장부(들)(44)를 포함할 수 있고, 디스플레이 디바이스(45)를 더 포함할 수 있다.
예시된 바와 같이, 촬상 디바이스(들)(41), 안테나(42), 처리 회로부(processing circuitry)(46), 비디오 인코더(20), 비디오 디코더(30), 프로세서(들)(43), 메모리 저장부(들)(44) 및 디스플레이 디바이스(45)는 서로 통신할 수 있다. 비록 비디오 인코더(20) 및 비디오 디코더(30) 양자 모두로써 예시되나, 비디오 코딩 시스템(40)은 다양한 예에서 오직 비디오 인코더(20)를 또는 오직 비디오 디코더(30)를 포함할 수 있다.
몇몇 예에서, 비디오 코딩 시스템(40)의 안테나(42)는 비디오 데이터의 인코딩된 비트스트림(bitstream)을 송신하거나 수신하도록 구성될 수 있다. 나아가, 몇몇 예에서, 비디오 코딩 시스템(40)의 디스플레이 디바이스(45)는 비디오 데이터를 제시하도록 구성될 수 있다. 몇몇 예에서, 비디오 코딩 시스템(40)의 처리 회로부(46)는 처리 유닛(들)을 통해 구현될 수 있다. 처리 유닛(들)은 애플리케이션 특정 집적 회로(Application-Specific Integrated Circuit: ASIC) 로직, 그래픽 프로세서(들), 일반 목적(general purpose) 프로세서(들), 또는 유사한 것을 포함할 수 있다. 비디오 코딩 시스템(40)은, 유사하게 애플리케이션 특정 집적 회로(Application-Specific Integrated Circuit: ASIC) 로직, 그래픽 프로세서(들), 일반 목적 프로세서(들), 또는 유사한 것을 포함할 수 있는 선택적인 프로세서(들)(43)를 또한 포함할 수 있다. 몇몇 예에서, 처리 회로부(46)는 하드웨어, 비디오 코딩 전용 하드웨어, 또는 유사한 것을 통해 구현될 수 있다. 추가로, 메모리 저장부(들)(44)는 휘발성 메모리(가령, 정적 랜덤 액세스 메모리(Static Random Access Memory: SRAM), 동적 랜덤 액세스 메모리(Dynamic Random Access Memory: DRAM) 등) 또는 비휘발성 메모리(가령, 플래쉬 메모리 등) 및 기타 등등과 같은 임의의 타입의 메모리일 수 있다. 하나의 예에서, 메모리 저장부(들)(44)는 캐시 메모리(cache memory)에 의해 구현될 수 있다. 몇몇 예에서, 처리 회로부(46)는 (예를 들어 이미지 버퍼(image buffer)의 구현을 위해) 메모리 저장부(들)(44)를 액세스할 수 있다. 다른 예에서, 처리 회로부(46)는 이미지 버퍼 또는 유사한 것의 구현을 위해 메모리 저장부(가령, 캐시(cache) 또는 유사한 것)를 포함할 수 있다.
몇몇 예에서, 처리 회로부를 통해 구현된 비디오 인코더(20)는 도 2에 관해서 논의된 바와 같은 다양한 모듈 및/또는 본 문서에 기술된 임의의 다른 인코더 시스템 또는 서브시스템을 체현할 수 있다. 처리 회로부는 본 문서에 기술된 바와 같은 다양한 동작을 수행하도록 구성될 수 있다.
비디오 디코더(30)는 도 3의 디코더(30)에 관해서 논의된 바와 같은 다양한 모듈 및/또는 본 문서에 기술된 임의의 다른 디코더 시스템 또는 서브시스템을 체현하기 위해 처리 회로부(46)를 통해 구현되는 바와 같은 유사한 방식으로 구현될 수 있다.
몇몇 예에서, 비디오 코딩 시스템(40)의 안테나(42)는 비디오 데이터의 인코딩된 비트스트림을 수신하도록 구성될 수 있다. 인코딩된 비트스트림은 비디오 프레임을 인코딩하는 것과 연관된 데이터, 지시자(indicator) 또는 유사한 것을 포함할 수 있다. 비디오 코딩 시스템(40)은 안테나(42)에 커플링되고 인코딩된 비트스트림을 디코딩하도록 구성된 비디오 디코더(30)를 또한 포함할 수 있다. 디스플레이 디바이스(45)는 비디오 프레임을 제시하도록 구성된다.
도 2는 본 출원의 기법을 구현할 수 있는 비디오 인코더(20)의 예를 보여주는 블록도이다. 비디오 인코더(20)는 비디오 슬라이스(slice) 내의 비디오 블록의 인트라(intra) 및 인터(inter) 코딩을 수행할 수 있다. 인트라 코딩은 주어진 비디오 프레임 또는 픽처 내에서 비디오 내의 공간적 잉여성(spatial redundancy)을 감소시키거나 제거하기 위해 공간적 예측(spatial prediction)에 의존한다. 인터 코딩은 비디오 시퀀스의 인접한 프레임 또는 픽처 내에서 비디오 내의 시간적 잉여성(temporal redundancy)을 감소시키거나 제거하기 위해 시간적 예측(temporal prediction)에 의존한다. 인트라 모드(I 모드)는 몇 개의 공간적 기반 코딩 모드 중의 임의의 것을 지칭할 수 있다. 인터 모드, 예를 들면 일방향 예측(uni-directional prediction)(P 모드) 또는 양 예측(bi-prediction)(B 모드)는, 몇 개의 시간적 기반 코딩 모드 중의 임의의 것을 지칭할 수 있다.
도 2에 도시된 바와 같이, 비디오 인코더(20)는 인코딩될 비디오 프레임 내의 현재의 비디오 블록을 수신한다. 도 2의 예에서, 비디오 인코더(20)는 모드 선택 유닛(mode select unit)(40), 참조 프레임 메모리(reference frame memory)(64), 가산기(adder)(50), 변환 처리 유닛(transform processing unit)(52), 양자화 유닛(quantization unit)(54) 및 엔트로피 코딩 유닛(entropy coding unit)(56)을 포함한다. 이어서, 모든 변환 유닛(40)은 움직임 보상 유닛(motion compensation unit)(44), 움직임 추정 유닛(motion estimation unit)(42), 인트라 예측 유닛(intra-prediction unit)(46) 및 구획 유닛(partition unit)(48)을 포함한다. 비디오 블록 재구성을 위해, 비디오 인코더(20)는 역양자화 유닛(inverse quantization unit)(58), 역변환 유닛(inverse transform unit)(60) 및 가산기(adder)(62)를 또한 포함한다. 재구성된 비디오로부터 블록형체 아티팩트(blockiness artifact)를 제거하기 위해 블록 경계를 필터링하기 위해 (도 2에 도시되지 않은) 블록해제 필터(deblocking filter)가 또한 포함될 수 있다. 요망되는 경우, 블록해제 필터는 전형적으로 가산기(62)의 출력을 필터링할 것이다. 블록해제 필터에 더하여 추가적인 필터(루프 내(in loop) 또는 루프 후(post loop))가 또한 사용될 수 있다. 그러한 필터는 간결함을 위해 도시되지 않으나, 요망되는 경우, (루프 내 필터로서) 가산기(50)의 출력을 필터링할 수 있다.
인코딩 프로세스 동안에, 비디오 인코더(20)는 코딩될 비디오 프레임 또는 슬라이스를 수신한다. 프레임 또는 슬라이스는 여러 비디오 블록으로 분할될 수 있다. 움직임 추정 유닛(42) 및 움직임 보상 유닛(44)은 시간적 예측을 제공하기 위해 하나 이상의 참조 프레임 내의 하나 이상의 블록에 상대적인 수신된 비디오 블록의 인터 예측 코딩을 수행한다. 인트라 예측 유닛(46)은 대안적으로 공간적 예측을 제공하기 위해 코딩될 블록과 동일한 프레임 또는 슬라이스 내의 하나 이상의 이웃 블록에 상대적인 수신된 비디오 블록의 인트라 예측 코딩을 수행할 수 있다. 비디오 인코더(20)는, 가령, 비디오 데이터의 각각의 블록을 위한 적절한 코딩 모드를 선택하기 위해, 여러 코딩 패스(coding pass)를 수행할 수 있다.
더욱이, 구획 유닛(48)은 이전의 코딩 패스에서의 이전의 구획 방안의 평가에 기반하여, 비디오 데이터의 블록을 서브블록으로 구획할 수 있다. 예를 들어, 구획 유닛(48)은 초기에 프레임 또는 슬라이스를 최대 코딩 유닛(Largest Coding Unit: LCU)로 구획하고, 레이트-왜곡 분석(rate-distortion analysis)(가령, 레이트 왜곡 최적화)에 기반하여 LCU 각각을 서브 코딩 유닛(sub-coding unit)(서브 CU(sub-CU))으로 구획할 수 있다. 모드 선택 유닛(40)은 또한 서브 CU로의 LCU의 구획을 나타내는 쿼드트리(quadtree) 데이터 구조를 산출할 수 있다. 쿼드트리의 리프 노드(leaf-node) CU는 하나 이상의 예측 유닛(Prediction Unit: PU) 및 하나 이상의 변환 유닛(Transform Unit: TU)을 포함할 수 있다.
본 개시에서, 용어 "블록"은, HEVC의 콘텍스트에서의 코딩 유닛(Coding Unit: CU), 예측 유닛(Prediction Unit: PU), 또는 변환 유닛(Transform Unit: TU), 또는 다른 표준의 콘텍스트에서의 유사한 데이터 구조(가령, H.264/AVC에서의 매크로블록 및 이의 서브블록) 중의 임의의 것을 지칭하는 데에 사용된다. CU는 코딩 노드, PU 및 TU(코딩 노드와 연관됨)를 포함한다. CU의 크기는 코딩 노드의 크기에 대응하고 형상에 있어서 직사각형이다. CU의 크기는 8×8 픽셀에서부터 최대치가 64×64 픽셀 이상인 트리블록의 크기까지 이를 수 있다. 각각의 CU는 하나 이상의 PU 및 하나 이상의 TU를 포함할 수 있다. CU와 연관된 구문 데이터는, 예를 들어, 하나 이상의 PU로의 CU의 구획을 기술할 수 있다. 구획 모드는 CU가 스킵(skip) 또는 직접 모드 인코딩되는지, 인트라 예측 모드 인코딩되는지, 또는 인터 예측 모드 인코딩되는지에 따라서 달라질 수 있다. PU는 형상에 있어서 정사각형이 아니도록 구획될 수 있다. CU와 연관된 구문 데이터는, 예를 들어, 쿼드트리에 따라 하나 이상의 TU로의 CU의 구획을 또한 기술할 수 있다. 실시예에서, CU, PU, 또는 TU는 형상에 있어서 정사각형이거나 정사각형이 아닐(가령, 직사각형) 수 있다.
모드 선택 유닛(40)은, 가령, 에러 결과에 기반하여, 코딩 모드 중 하나인, 인트라 또는 인터를 선택할 수 있고, 결과적인 인트라 또는 인터 코딩된 블록을, 잔차 블록 데이터를 생성하기 위해 가산기(50)에, 그리고 참조 프레임으로서의 사용을 위한 인코딩된 블록을 재구성하기 위해 가산기(62)에 제공한다. 모드 선택 유닛(40)은 구문 요소, 예를 들면 움직임 벡터(motion vector), 인트라 모드 지시자, 구획 정보 및 다른 그러한 구문 정보를 엔트로피 코딩 유닛(56)에 또한 제공한다.
움직임 추정 유닛(42) 및 움직임 보상 유닛(44)은 고도로 통합될 수 있으나, 개념적 목적으로 별도로 예시된다. 움직임 추정 유닛(42)에 의해 수행되는 움직임 추정은 비디오 블록을 위해 움직임을 추정하는 움직임 벡터를 생성하는 프로세스이다. 움직임 벡터는, 예를 들어, 참조 프레임(또는 다른 코딩된 유닛) 내의 예측 블록에 상대적인 현재의 비디오 프레임(또는 픽처) 내의 비디오 블록의 PU의 변위(displacement)를 나타낼 수 있거나 또는 현재의 프레임(또는 다른 코딩된 유닛) 내의 코딩된 블록에 상대적인 현재 비디오 프레임(또는 픽처) 내의 비디오 블록의 PU의 변위(displacement)를 나타낼 수 있다. 예측 블록은, 절대 차이의 합(Sum of Absolute Difference: SAD), 제곱 차이의 합(Sum of Square Difference: SSD), 또는 다른 차이 메트릭(metric)에 의해 판정될 수 있는 픽셀 차이의 면에서, 코딩될 블록과 밀접하게 매칭된다(closely match)고 밝혀지는 블록이다. 몇몇 예에서, 비디오 인코더(20)는 참조 프레임 메모리(64) 내에 저장된 참조 픽처의 정수 세분(sub-integer) 픽셀 위치를 위한 값을 계산할 수 있다. 예를 들어, 비디오 인코더(20)는 참조 픽처의 4분의 1 픽셀 위치, 8분의 1 픽셀 위치, 또는 다른 분수(fractional) 픽셀 위치의 값을 보간할(interpolate) 수 있다. 따라서, 움직임 추정 유닛(42)은 온전한(full) 픽셀 위치 및 분수 픽셀 위치에 상대적인 움직임 탐색(motion search)을 수행하고 분수 픽셀 정밀도로써 움직임 벡터를 출력할 수 있다.
움직임 추정 유닛(42)은 PU의 위치를 참조 픽처의 예측 블록의 위치와 비교함으로써 인터 코딩된 슬라이스 내의 비디오 블록의 PU를 위한 움직임 벡터를 계산한다. 참조 픽처는, 각각 참조 프레임 메모리(64) 내에 저장된 하나 이상의 참조 픽처를 식별하는 제1 참조 픽처 리스트(가령 리스트 0) 또는 제2 참조 픽처 리스트(가령 리스트 1)로부터 선택될 수 있다. 움직임 추정 유닛(42)은 계산된 움직임 벡터를 엔트로피 인코딩 유닛(56) 및 움직임 보상 유닛(44)에 발신한다.
움직임 보상 유닛(44)에 의해 수행되는 움직임 보상은 움직임 추정 유닛(42)에 의해 판정된 움직임 벡터에 기반하여 예측 블록을 페치하는 것(fetching) 또는 생성하는 것을 수반할 수 있다. 역시, 몇몇 예에서, 움직임 추정 유닛(42) 및 움직임 보상 유닛(44)은 기능적으로 통합될 수 있다. 현재의 비디오 블록의 PU를 위한 움직임 벡터를 수신하는 때에, 움직임 보상 유닛(44)은 움직임 벡터가 참조 픽처 리스트 중 하나에서 가리키는 예측 블록의 위치를 파악할 수 있다. 가산기(50)는, 아래에서 논의되는 바와 같이, 코딩되고 있는 현재의 비디오 블록의 픽셀 값으로부터 예측 블록의 픽셀 값을 감산함으로써 잔차 비디오 블록을 형성하여, 픽셀 차이 값을 형성한다. 일반적으로, 움직임 추정 유닛(42)은 루마 컴포넌트에 상대적인 움직임 추정을 수행하고, 움직임 보상 유닛(44)은 크로마 컴포넌트 및 루마 컴포넌트 양자 모두를 위해 루마 컴포넌트에 기반하여 계산된 움직임 벡터를 사용한다. 모드 선택 유닛(40)은 비디오 슬라이스의 비디오 블록을 디코딩하는 데에서의 비디오 디코더(30)에 의한 사용을 위해 비디오 블록 및 비디오 슬라이스와 연관된 구문 요소를 또한 생성할 수 있다.
인트라 예측 유닛(46)은, 앞서 기술된 바와 같이, 움직임 추정 유닛(42) 및 움직임 보상 유닛(44)에 의해 수행되는 인터 예측에 대한 대안으로서, 현재의 블록을 인트라 예측할 수 있다. 특히, 인트라 예측 유닛(46)은 현재의 블록을 인코딩하는 데에 사용할 인트라 예측 모드를 판정할 수 있다. 몇몇 예에서, 인트라 예측 유닛(46)은, 가령 별개의 인코딩 패스 동안에, 다양한 인트라 예측 모드를 사용하여 현재의 블록을 인코딩할 수 있고, 인트라 예측 유닛(46)(또는, 몇몇 예에서, 모드 선택 유닛(40))은 테스트되는 모드로부터 사용할 적절한 인트라 예측 모드를 선택할 수 있다.
예를 들어, 인트라 예측 유닛(46)은 다양한 테스트되는 인트라 예측 모드를 위해 레이트 왜곡 분석을 사용하여 레이트 왜곡 값을 계산하고, 테스트되는 모드 중에서 최선의 레이트 왜곡 특성을 갖는 인트라 예측 모드를 선택할 수 있다. 레이트 왜곡 분석은 일반적으로 인코딩된 블록 및 인코딩된 블록을 산출하기 위해 인코딩된 원래의, 인코딩되지 않은 블록 간의 왜곡(또는 에러)의 양을, 또 인코딩된 블록을 산출하는 데에 사용된 비트레이트(bitrate)(즉, 비트의 수)도, 판정한다. 인트라 예측 유닛(46)은 어느 인트라 예측 모드가 블록을 위한 최선의 레이트 왜곡 값을 보여주는지를 판정하기 위해 다양한 인코딩된 블록을 위한 왜곡 및 레이트로부터 비율을 계산할 수 있다.
추가로, 인트라 예측 유닛(46)은 깊이 모델링 모드(Depth Modeling Mode: DMM)를 사용하여 깊이 맵(depth map)의 깊이 블록을 코딩하도록 구성될 수 있다. 모드 선택 유닛(40)은 가용 DMM 모드가, 가령, 레이트 왜곡 최적화(Rate-Distortion Optimization: RDO)를 사용하여, 인트라 예측 모드 및 다른 DMM 모드보다 더 나은 코딩 결과를 산출하는지를 판정할 수 있다. 깊이 맵에 대응하는 텍스처 이미지(texture image)를 위한 데이터가 참조 프레임 메모리(64) 내에 저장될 수 있다. 움직임 추정 유닛(42) 및 움직임 보상 유닛(44)은 깊이 맵의 깊이 블록을 인터 예측하도록 또한 구성될 수 있다.
블록을 위해 인트라 예측 모드(가령, 종래의 인트라 예측 모드 또는 DMM 모드 중 하나)를 선택한 후에, 인트라 예측 유닛(46)은 블록을 위한 선택된 인트라 예측 모드를 나타내는 정보를 엔트로피 코딩 유닛(56)에 제공할 수 있다. 엔트로피 코딩 유닛(56)은 선택된 인트라 예측 모드를 나타내는 정보를 인코딩할 수 있다. 비디오 인코더(20)는 복수의 인트라 예측 모드 인덱스 테이블 및 복수의 수정된 인트라 예측 모드 인덱스 테이블(또한 코드워드(codeword) 맵핑 테이블로 지칭됨)을 포함할 수 있는 송신되는 비트스트림 구성 데이터 내에, 다양한 블록을 위한 인코딩 콘텍스트의 정의, 그리고 콘텍스트 각각을 위해 사용할 가장 개연성 있는 인트라 예측 모드, 인트라 예측 모드 인덱스 테이블 및 수정된 인트라 예측 모드 인덱스 테이블의 표시를 포함할 수 있다.
비디오 인코더(20)는 코딩되고 있는 원래의 비디오 블록으로부터 모드 선택 유닛(40)으로부터의 예측 데이터를 감산함으로써 잔차 비디오 블록을 형성한다. 가산기(50)는 이 감산 동작을 수행하는 컴포넌트 또는 컴포넌트들을 표현한다.
변환 처리 유닛(52)은 변환, 예를 들면 이산 코사인 변환(Discrete Cosine Transform: DCT) 또는 개념적으로 유사한 변환을 잔차 블록에 적용하여, 잔차 변환 계수 값을 포함하는 비디오 블록을 산출한다. 변환 처리 유닛(52)은 DCT와 개념적으로 유사한 다른 변환을 수행할 수 있다. 웨이블릿 변환(wavelet transform), 정수 변환(integer transform), 부대역 변환(sub-band transform) 또는 다른 타입의 변환이 또한 사용될 수 있다.
변환 처리 유닛(52)은 변환을 잔차 블록에 적용하여, 잔차 변환 계수의 블록을 산출한다. 변환은 잔차 정보를 픽셀 값 도메인(pixel value domain)으로부터 변환 도메인(transform domain), 예를 들면 주파수 도메인으로 전환할(convert) 수 있다. 변환 처리 유닛(52)은 결과적인 변환 계수를 양자화 유닛(54)에 발신할 수 있다. 양자화 유닛(54)은 비트 레이트를 추가로 감소시키기 위해 변환 계수를 양자화한다. 양자화 프로세스는 계수 중 일부 또는 전부와 연관된 비트 깊이(bit depth)를 감소시킬 수 있다. 양자화의 정도는 양자화 파라미터를 조절함으로써 수정될 수 있다. 몇몇 예에서, 이후에 양자화 유닛(54)은 양자화된 변환 계수를 포함하는 행렬의 스캔(scan)을 수행할 수 있다. 대안적으로, 엔트로피 인코딩 유닛(56)이 스캔을 수행할 수 있다.
양자화에 뒤이어, 엔트로피 코딩 유닛(56)은 양자화된 변환 계수를 엔트로피 코딩한다. 예를 들어, 엔트로피 코딩 유닛(56)은 콘텍스트 적응적 가변 길이 코딩(Context Adaptive Variable Length Coding: CAVLC), 콘텍스트 적응적 이진 산술 코딩(Context Adaptive Binary Arithmetic Coding: CABAC), 구문 기반 콘텍스트 적응적 이진 산술 코딩(Syntax-Based Context-Adaptive Binary Arithmetic Coding: SBAC), 확률 간격 구획 엔트로피(Probability Interval Partitioning Entropy: PIPE) 코딩 또는 다른 엔트로피 코딩 기법을 수행할 수 있다. 콘텍스트 기반 엔트로피 코딩의 경우에, 콘텍스트는 이웃 블록에 기반할 수 있다. 엔트로피 코딩 유닛(56)에 의한 엔트로피 코딩에 뒤이어, 인코딩된 비트스트림은 다른 디바이스(가령, 비디오 디코더(30))에 송신되거나 나중의 송신 또는 인출(retrieval)을 위해 보관될 수 있다.
역양자화 유닛(58) 및 역변환 유닛(60)은, 가령, 참조 블록으로서의 나중의 사용을 위해, 픽셀 도메인 내의 잔차 블록을 재구성하기 위해, 각각 역양자화 및 역변환을 적용한다. 움직임 보상 유닛(44)은 참조 프레임 메모리(64)의 프레임 중의 하나의 프레임의 예측 블록에 잔차 블록을 가산함으로써 참조 블록을 계산할 수 있다. 움직임 보상 유닛(44)은 또한 움직임 추정에서의 사용을 위해 정수 세분 픽셀 값을 계산하기 위해 하나 이상의 보간 필터를 재구성된 잔차 블록에 적용할 수 있다. 가산기(62)는 참조 프레임 메모리(64) 내에의 저장을 위한 재구성된 비디오 블록을 산출하기 위해 움직임 보상 유닛(44)에 의해 산출된 움직임 보상된 예측 블록에 재구성된 잔차 블록을 가산한다. 재구성된 비디오 블록은 차후의 비디오 프레임 내의 블록을 인터 코딩하기 위해 참조 블록으로서 움직임 추정 유닛(42) 및 움직임 보상 유닛(44)에 의해 사용될 수 있다.
비디오 스트림을 인코딩하기 위해 비디오 인코더(20)의 다른 구조적 변형이 사용될 수 있다. 예를 들어, 비변환(non-transform) 기반 인코더(20)는 어떤 블록 또는 프레임을 위해 변환 처리 유닛(52) 없이 직접적으로 잔차 신호를 양자화할 수 있다. 다른 구현에서, 인코더(20)는 단일 유닛으로 조합된 양자화 유닛(54) 및 역양자화 유닛(58)을 가질 수 있다.
도 3은 이 본 출원의 기법을 구현할 수 있는 비디오 디코더(30)의 예를 보여주는 블록도이다. 도 3의 예에서, 비디오 디코더(30)는 엔트로피 디코딩 유닛(70), 움직임 보상 유닛(72), 인트라 예측 유닛(74), 역양자화 유닛(76), 역변환 유닛(78), 참조 프레임 메모리(82) 및 가산기(80)를 포함한다. 비디오 디코더(30)는, 몇몇 예에서, (도 2에 도시된 바와 같은) 비디오 인코더(20)에 대해서 기술된 인코딩 패스에 일반적으로 역(reciprocal)인 디코딩 패스(decoding pass)를 수행할 수 있다. 움직임 보상 유닛(72)은 엔트로피 디코딩 유닛(70)으로부터 수신된 움직임 벡터에 기반하여 예측 데이터를 생성할 수 있는 반면에, 인트라 예측 유닛(74)은 엔트로피 디코딩 유닛(70)으로부터 수신된 인트라 예측 모드 지시자에 기반하여 예측 데이터를 생성할 수 있다.
디코딩 프로세스 동안에, 비디오 디코더(30)는 인코딩된 비디오 슬라이스의 비디오 블록 및 연관된 구문 요소를 나타내는 인코딩된 비디오 비트스트림을 비디오 인코더(20)로부터 수신한다. 비디오 디코더(30)의 엔트로피 디코딩 유닛(70)은 양자화된 계수, 움직임 벡터 또는 인트라 예측 모드 지시자, 그리고 다른 구문 요소를 생성하기 위해 비트스트림을 엔트로피 디코딩한다. 엔트로피 디코딩 유닛(70)은 움직임 벡터 및 다른 구문 요소를 움직임 보상 유닛(72)에 송출한다. 비디오 디코더(30)는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨로 구문 요소를 수신할 수 있다.
비디오 슬라이스가 인트라 코딩된(I) 슬라이스로서 코딩된 경우에, 인트라 예측 유닛(74)은 현재의 프레임 또는 픽처의 이전에 디코딩된 블록으로부터의 데이터 및 시그널링된(signaled) 인트라 예측 모드에 기반하여 현재의 비디오 슬라이스의 비디오 블록을 위한 예측 데이터를 생성할 수 있다. 비디오 프레임이 인터 코딩된(즉, B, P, 또는 GPB) 슬라이스로서 코딩된 경우에, 움직임 보상 유닛(72)은 엔트로피 디코딩 유닛(70)으로부터 수신된 움직임 벡터 및 다른 구문 요소에 기반하여 현재의 비디오 슬라이스의 비디오 블록을 위한 예측 블록을 산출한다. 예측 블록은 참조 픽처 리스트 중 하나 내의 참조 픽처 중 하나로부터 산출될 수 있다. 비디오 디코더(30)는 참조 프레임 메모리(82) 내에 저장된 참조 픽처에 기반하여 디폴트(default) 구성 기법을 사용하여, 참조 프레임 리스트, 가령 리스트 0 및 리스트 1을 구성할 수 있다.
움직임 보상 유닛(72)은 움직임 벡터 및 다른 구문 요소를 파싱함(parsing)으로써 현재의 비디오 슬라이스의 비디오 블록을 위한 예측 정보를 판정하고, 디코딩되고 있는 현재의 비디오 블록을 위하여 예측 블록을 산출하는 데에 예측 정보를 사용한다. 예를 들어, 움직임 보상 유닛(72)은 수신된 구문 요소 중 몇몇을 사용하여, 비디오 슬라이스의 비디오 블록을 코딩하는 데에 사용되는 예측 모드(가령, 인트라 또는 인터 예측), 인터 예측 슬라이스 타입(가령, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스), 슬라이스를 위한 참조 픽처 리스트 중 하나 이상을 위한 구성 정보, 슬라이스의 각각의 인터 인코딩된 비디오 블록을 위한 움직임 벡터, 슬라이스의 각각의 인터 코딩된 비디오 블록을 위한 인터 예측 상태 및 다른 정보를 판정하여 현재의 비디오 슬라이스 내의 비디오 블록을 디코딩한다.
움직임 보상 유닛(72)은 보간 필터에 기반하여 또한 보간을 수행할 수 있다. 움직임 보상 유닛(72)은 참조 블록의 정수 세분 픽셀을 위한 보간된 값을 계산하기 위해 비디오 블록의 인코딩 동안에 비디오 인코더(20)에 의해 사용되는 바와 같은 보간 필터를 사용할 수 있다. 이 경우에, 움직임 보상 유닛(72)은 수신된 구문 요소로부터 비디오 인코더(20)에 의해 사용된 보간 필터를 판정하고 예측 블록을 산출하기 위해 보간 필터를 사용할 수 있다.
깊이 맵에 대응하는 텍스처 이미지를 위한 데이터가 참조 프레임 메모리(82) 내에 저장될 수 있다. 움직임 보상 유닛(72)은 깊이 맵의 깊이 블록을 인터 예측하도록 또한 구성될 수 있다.
당업자에 의해 인식될 바와 같이, 도 1a의 코딩 시스템(10)은 다양한 비디오 코딩 또는 압축 기법을 구현하기에 적합하다. 몇몇 비디오 압축 기법, 예를 들면 인터 예측, 인트라 예측 및/또는 루프 필터가 뒤에 논의될 것이다. 따라서, 비디오 압축 기법은 H.264/AVC 및 H.265/HEVC와 같은 다양한 비디오 코딩 표준 내에 채택되었다.
적응적 움직임 벡터 예측(Adaptive Motion Vector Prediction: AMVP) 및 병합 모드(MERGE)와 같은 다양한 코딩 도구가 움직임 벡터(Motion Vector: MV)를 예측하고 인터 예측 효율, 그리고 따라서, 전반적인 비디오 압축 효율을 향상시키는 데에 사용된다.
압축된 비트스트림을 디코딩하기 위해 비디오 디코더(30)의 다른 변형이 사용될 수 있다. 예를 들어, 디코더(30)는 루프 필터링 유닛 없이 출력 비디오 스트림을 산출할 수 있다. 예를 들어, 비변환 기반 디코더(30)는 어떤 블록 또는 프레임을 위해 역변환 처리 유닛(78) 없이 직접적으로 잔차 신호를 역양자화할 수 있다. 다른 구현에서, 비디오 디코더(30)는 단일 유닛으로 조합된 역양자화 유닛(76) 및 역변환 유닛(78)을 가질 수 있다.
도 4는 개시의 실시예에 따른 비디오 코딩 디바이스의 개략도이다. 비디오 코딩 디바이스(400)는 본 문서에 기술된 바와 같은 개시된 실시예를 구현하기에 적합하다. 실시예에서, 비디오 코딩 디바이스(400)는 도 1a의 비디오 디코더(30)와 같은 디코더 또는 도 1a의 비디오 인코더(20)와 같은 인코더일 수 있다. 실시예에서, 비디오 코딩 디바이스(400)는 앞서 기술된 바와 같은 도 1a의 비디오 디코더(30) 또는 도 1a의 비디오 인코더(20)의 하나 이상의 컴포넌트일 수 있다.
비디오 코딩 디바이스(400)는 유입 포트(ingress port)(410) 및 수신기 유닛(receiver unit)(Rx)(420)(데이터를 수신하기 위함), 데이터를 처리하기 위한 (로직 유닛, 또는 중앙 처리 유닛(Central Processing Unit: CPU)일 수 있는) 프로세서(430), 송신기 유닛(transmitter unit)(Tx)(440) 및 유출 포트(egress port)(450)(데이터를 송신하기 위함), 그리고 데이터를 저장하기 위한 메모리(460)를 포함한다. 비디오 코딩 디바이스(400)는 광학 또는 전기 신호의 유출 또는 유입을 위해 유입 포트(410), 수신기 유닛(420), 송신기 유닛(440) 및 유출 포트(450)에 커플링된 광학 대 전기(Optical-to-Electrical: OE) 컴포넌트 및 전기 대 광학(Electrical-to-Optical: EO) 컴포넌트를 또한 포함할 수 있다.
프로세서(430)는 하드웨어 및/또는 소프트웨어에 의해 구현된다. 프로세서(430)는 하나 이상의 CPU 칩, 코어(가령, 다중 코어 프로세서(multi-core processor)로서), FPGA, ASIC 및 DSP로서 구현될 수 있다. 프로세서(430)는 유입 포트(410), 수신기 유닛(420), 송신기 유닛(440), 유출 포트(450) 및 메모리(460)와의 통신이 된다. 프로세서(430)는 코딩 모듈(470)을 포함한다. 코딩 모듈(470)은 본 문서에 기술된 개시된 실시예를 구현하기에 적합하다. 예를 들어, 코딩 모듈(470)은 다양한 코딩 동작을 구현하거나, 처리하거나, 준비하거나, 제공한다. 따라서 코딩 모듈(470)의 포함은 비디오 코딩 디바이스(400)의 기능에 실질적인 개선을 제공하고 상이한 상태로의 비디오 코딩 디바이스(400)의 변환을 초래한다. 대안적으로, 코딩 모듈(470)은 메모리(460) 내에 저장되고 프로세서(430)에 의해 실행되는 명령어로서 구현된다.
메모리(460)는 하나 이상의 디스크, 테이프 드라이브 및 솔리드 스테이트 드라이브(solid-state drive)를 포함하며, 프로그램이 실행을 위해 선택되는 경우에 그러한 프로그램을 저장하기 위해, 그리고 프로그램 실행 동안에 판독되는 명령어 및 데이터를 저장하기 위해, 과잉(over-flow) 데이터 저장 디바이스로서 사용될 수 있다. 메모리(460)는 휘발성 및/또는 비휘발성일 수 있고 판독전용 메모리(Read-Only Memory: ROM), 랜덤 액세스 메모리(Random Access Memory: RAM), 3원 콘텐트 주소지정가능 메모리(Ternary Content-Addressable Memory: TCAM) 및/또는 정적 랜덤 액세스 메모리(Static Random-Access Memory: SRAM)일 수 있다.
도 5는 예시적인 실시예에 따라 도 1a로부터의 소스 디바이스(12) 및 목적지 디바이스(14) 중 어느 한쪽으로서든 또는 양자 모두로서 사용될 수 있는 장치(500)의 단순화된 블록도이다. 장치(500)는 이 본 출원의 기법을 구현할 수 있다. 장치(500)는 여러 컴퓨팅 디바이스를 포함하는 컴퓨팅 시스템의 형태로 되거나, 단일 컴퓨팅 디바이스, 예를 들어, 모바일 전화, 태블릿 컴퓨터, 랩톱 컴퓨터, 노트북 컴퓨터, 데스크톱 컴퓨터 및 유사한 것의 형태로 될 수 있다.
장치(500)의 프로세서(502)는 중앙 처리 유닛일 수 있다. 대안적으로, 프로세서(502)는 지금 존재하거나 이후에 개발되는 정보를 조작하거나 처리하는 것이 가능한 임의의 다른 타입의 디바이스, 또는 여러 디바이스일 수 있다. 비록 개시된 구현은 도시된 바와 같은 단일 프로세서, 가령, 프로세서(502)로써 실시될 수 있으나, 하나보다 많은 프로세서를 사용하여 속도 및 효율에서의 이점이 달성될 수 있다.
장치(500) 내의 메모리(504)는 구현에서 판독 전용 메모리(Read Only Memory: ROM) 디바이스 또는 랜덤 액세스 메모리(Random Access Memory: RAM) 디바이스일 수 있다. 임의의 다른 적합한 타입의 저장 디바이스가 메모리(504)로서 사용될 수 있다. 메모리(504)는 버스(512)를 사용하여 프로세서(502)에 의해 액세스되는 코드 및/또는 데이터를 저장하는 데에 사용될 수 있다. 메모리(504)는 또한 운영 체제(operating system)(508) 및 애플리케이션 프로그램(510)을 저장하는 데에 사용될 수 있다. 애플리케이션 프로그램(510)은 프로세서(502)로 하여금 여기에 기술된 방법을 수행하도록 허용하는 적어도 하나의 프로그램을 포함할 수 있다. 예를 들어, 애플리케이션 프로그램(510)은 여러 애플리케이션 1 내지 N을 포함하고, 여기에 기술된 방법을 수행하는 비디오 코딩 애플리케이션을 더 포함할 수 있다. 장치(500)는, 예를 들어, 모바일 컴퓨팅 디바이스와 사용되는 메모리 카드일 수 있는 부차적인 스토리지(storage)(514)의 형태로 된 추가적인 메모리를 또한 포함할 수 있다. 비디오 통신 세션이 상당한 양의 정보를 포함할 수 있기 때문에, 그것은 스토리지(514) 내에 전체로 또는 부분적으로 저장되고 처리를 위해 필요에 따라 메모리(504) 내에 로딩될(loaded) 수 있다.
장치(500)는 하나 이상의 출력 디바이스, 예를 들면 디스플레이(518)를 또한 포함할 수 있다. 디스플레이(518)는, 하나의 예에서, 디스플레이를, 터치 입력을 센싱하도록(sense) 동작가능한 터치 감응 요소(touch sensitive element)와 조합하는 터치 감응 디스플레이일 수 있다. 디스플레이(518)는 버스(512)를 통해 프로세서(502)에 커플링될 수 있다. 사용자로 하여금 장치(500)를 프로그래밍하거나 달리 사용하도록 허용하는 다른 출력 디바이스가 디스플레이(518)에 더하여 또는 이에 대한 대안으로서 제공될 수 있다. 출력 디바이스가 디스플레이이거나 이를 포함하는 경우에, 디스플레이는 액정 디스플레이(Liquid Crystal Display: LCD), 음극선관(Cathode-Ray Tube: CRT) 디스플레이, 플라즈마 디스플레이 또는 발광 다이오드(Light Emitting Diode: LED) 디스플레이, 예를 들면 유기 LED(Organic LED: OLED) 디스플레이에 의해서를 비롯하여, 다양한 방식으로 구현될 수 있다.
장치(500)는 이미지 센싱 디바이스(520), 예를 들어 카메라, 또는 장치(500)를 동작하는 사용자의 이미지와 같은 이미지를 센싱할 수 있는 지금 존재하거나 이후에 개발되는 임의의 다른 이미지 센싱 디바이스(520)를 또한 포함하거나 이와의 통신이 될 수 있다. 이미지 센싱 디바이스(520)는 그것이 장치(500)를 동작하는 사용자를 향해 지향되도록 위치될 수 있다. 예에서, 이미지 센싱 디바이스(520)의 위치 및 광학 축은 시야(field of vision)가 영역(이는 디스플레이(518)에 직접적으로 인접하고 이로부터 디스플레이(518)가 가시적임)을 포함하도록 구성될 수 있다.
장치(500)는 소리 센싱 디바이스(522), 예를 들어 마이크(microphone), 또는 장치(500) 근처의 소리를 센싱할 수 있는 지금 존재하거나 이후에 개발되는 임의의 다른 소리 센싱 디바이스를 또한 포함하거나 이와의 통신이 될 수 있다. 소리 센싱 디바이스(522)는 그것이 장치(500)를 동작하는 사용자를 향해 지향되도록 위치될 수 있고 사용자가 장치(500)를 동작하는 동안 사용자가 내는 소리, 예를 들어, 발화(speech) 또는 다른 발성(utterance)을 수신하도록 구성될 수 있다.
비록 도 5는 장치(500)의 프로세서(502) 및 메모리(504)를 단일 디바이스 내에 통합된 것으로서 묘사하나, 다른 구성이 활용될 수 있다. 프로세서(502)의 동작은 직접적으로 또는 로컬 영역 또는 다른 네트워크를 가로질러 커플링될 수 있는 여러 머신(각각의 머신은 프로세서 중 하나 이상을 가짐)에 걸쳐서 분산될 수 있다. 메모리(504)는 장치(500)의 동작을 수행하는 여러 머신 내의 메모리 또는 네트워크 기반 메모리와 같이 여러 머신에 걸쳐서 분산될 수 있다. 비록 단일 버스로서 여기에 묘사되나, 장치(500)의 버스(512)는 여러 버스를 포함할 수 있다. 또한, 부차적인 스토리지(514)는 장치(500)의 다른 컴포넌트에 직접적으로 커플링될 수 있거나 네트워크를 통해 액세스될 수 있고 메모리 카드와 같은 단일의 통합된 유닛 또는 여러 메모리 카드와 같은 여러 유닛을 포함할 수 있다. 그러므로 장치(500)는 매우 다양한 구성으로 구현될 수 있다.
본 개시는 비디오 코딩 메커니즘의 일부로서의 인트라 예측에 관련된다.
인트라 예측은 어떤 가용 참조 픽처도 없는 경우에, 또는 현재의 블록 또는 픽처를 위해 인터 예측 코딩이 사용되지 않는 경우에 사용될 수 있다. 인트라 예측의 참조 샘플은 통상적으로 동일한 픽처 내의 이전에 코딩된(또는 재구성된) 이웃 블록으로부터 도출된다. 예를 들어, H.264/AVC 및 H.265/HEVC 양자 모두에서, 인접한 블록의 경계 샘플은 인트라 예측을 위한 참조로서 사용된다. 상이한 텍스처 또는 구조적 특질을 커버하기(cover) 위해서, 많은 상이한 인트라 예측 모드가 있다. 각각의 모드에서, 상이한 예측 신호 도출 방법이 사용된다. 예를 들어, 도 6에 도시된 바와 같이, H.265/HEVC는 총 35개의 인트라 예측 모드를 지원한다.
인트라 예측을 위해, 인접한 블록의 디코딩된 경계 샘플이 참조로서 사용된다. 인코더는 35개의 옵션으로부터 각각의 블록의 최선의 루마 인트라 예측 모드를 선택한다: 33개의 방향성 예측 모드, DC 모드 및 평면(Planar) 모드. 인트라 예측 방향 및 인트라 예측 모드 번호 간의 맵핑이 도 6에 명시된다.
도 7에 도시된 바와 같이, 블록 "CUR"는 예측할 현재의 블록인데, 인접한 구성된 블록의 경계를 따른 회색 샘플이 참조 샘플로서 사용된다. 예측 신호는 인트라 예측 모드에 의해 나타내어진 특정 방법에 따라 참조 샘플을 맵핑함으로써 도출될 수 있다.
색상 공간(color space) 및 색상 포맷(color format)에 기반하여 비디오 코딩이 수행될 수 있다. 예를 들어, 색상 비디오는 멀티미디어 시스템에서 중요한 역할을 하는데, 색상을 효율적으로 표현하는 데에 다양한 색상 공간이 사용된다. 색상 공간은 여러 컴포넌트를 사용하여 수치로써 색상을 명시한다. 인기 있는 색상 공간은 RGB 색상 공간인데, 색상은 3개의 주요 색상 컴포넌트 값(즉, 빨강, 노랑 및 파랑)의 조합으로서 표현된다. 색상 비디오 압축을 위해, A. Ford 및 A. Roberts의 "Colour space conversions," (University of Westminster, London, Tech. Rep., August 1998)에 기술된 바와 같이, YCbCr 색상 공간이 널리 사용되어 왔다.
YCbCr은 선형 변환을 통해 RGB 색상 공간으로부터 쉽게 전환될 수 있고 상이한 컴포넌트 간의 잉여성, 곧 크로스 컴포넌트 잉여성이 YCbCr 색상 공간에서 상당히 감소된다. Y 신호가 휘도(luminance) 정보를 전달하므로 YCbCr의 하나의 이점은 흑백 TV와의 하위 호환가능성(backward compatibility)이다. 추가로, RGB 색상 공간에서의 서브샘플링(subsampling)보다 상당히 덜 주관적인 영향으로써 4:2:0 크로마 샘플링 포맷 내의 Cb 및 Cr 컴포넌트를 서브샘플링함으로써 색차(chrominance) 대역폭이 감소될 수 있다. 이들 이점 때문에, YCbCr은 비디오 압축에서 주된 색상 공간이었다. 비디오 압축에서 사용되는 다른 색상 공간, 예를 들면 YCoCg가 또한 있다. 이 개시에서, 사용되는 실제의 색상 공간에 상관없이, 루마(또는 L 또는 Y) 및 2개의 크로마(Cb 및 Cr)가 비디오 압축 방안에서의 3개의 색상 컴포넌트를 표현하는 데에 사용된다.
예를 들어, 크로마 포맷 샘플링 구조가 4:2:0 샘플링인 경우에, 2개의 크로마 어레이 각각은 루마 어레이의 절반의 높이 및 절반의 폭을 갖는다. 픽처 내의 루마 및 크로마 샘플의 명목상 수직 및 수평의 상대적 위치가 도 8에 도시된다.
(도 9a 및 도 9b를 포함하는) 도 9는 크로스 컴포넌트 선형 모델(Cross-Component Linear Model: CCLM) 인트라 예측(900)을 수행하는 예시적인 메커니즘을 보여주는 개략도이다. 도 9는 4:2:0 샘플링의 예를 보여준다. 도 9는 CCLM 모드에 수반된 현재의 블록의 샘플 및 좌측과 위의 샘플의 위치의 예를 도시한다. 하얀 정사각형은 현재의 블록의 샘플이고, 음영화된(shaded) 원은 재구성된 샘플이다. 도 9a는 공동 위치된 루마 블록의 이웃하는 재구성된 픽셀의 예를 보여준다. 도 9b는 크로마 블록의 이웃하는 재구성된 픽셀의 예를 보여준다. 만일 비디오 포맷이 YUV4:2:0이면, 하나의 16x16 루마 블록 및 2개의 8x8 크로마 블록이 있다.
CCLM 인트라 예측(900)은 어떤 타입의 크로스 컴포넌트 인트라 예측이다. 그러한즉, CCLM 인트라 예측(900)은 인코더(20)의 인트라 추정 유닛(46) 및/또는 디코더(30)의 인트라 예측 유닛(94)에 의해 수행될 수 있다. CCLM 인트라 예측(900)은 크로마 블록(901) 내의 크로마 샘플(903)을 예측한다. 크로마 샘플(903)은 교차하는 라인으로 도시된 정수 위치에서 나타난다. 예측은 검은 원으로서 묘사된 이웃 참조 샘플에 부분적으로 기반한다. 인트라 예측 모드(500)와는 달리, 크로마 샘플(903)은 오로지 이웃 크로마 참조 샘플(905)(재구성된 크로마 샘플(Rec'C)로서 표기됨)에 기반하여 예측되지는 않는다. 크로마 샘플(903)은 또한 루마 참조 샘플(913) 및 이웃 루마 참조 샘플(915)에 기반하여 예측된다. 구체적으로, CU는 루마 블록(911) 및 2개의 크로마 블록(901)을 포함한다. 동일한 CU 내의 크로마 샘플(903) 및 루마 참조 샘플(913)을 상관시키는(correlate) 모델이 생성된다. 이웃 루마 참조 샘플(915)을 이웃 크로마 참조 샘플(905)과 비교함으로써 모델을 위한 선형 계수가 판정된다.
루마 참조 샘플(913)이 재구성되므로, 루마 참조 샘플(913)은 재구성된 루마 샘플(Rec'L)로서 표기된다. 이웃 크로마 참조 샘플(905)이 재구성되므로, 이웃 크로마 참조 샘플(905)은 재구성된 크로마 샘플(Rec'C)로서 표기된다.
도시된 바와 같이, 루마 블록(911)은 크로마 블록(901)의 4배의 샘플을 포함한다. 구체적으로, 크로마 블록(901)은 개수 N의 샘플 곱하기 개수 N의 샘플을 포함하는 반면 루마 블록(911)은 개수 2N의 샘플 곱하기 개수 2N의 샘플을 포함한다. 그러한즉, 루마 블록(911)은 크로마 블록(901)의 4배의 해상도이다. 예측이 루마 참조 샘플(913) 및 이웃 루마 참조 샘플(915)에 대해 동작하기 위해, 루마 참조 샘플(913) 및 이웃 루마 참조 샘플(915)은 이웃 크로마 참조 샘플(905) 및 크로마 샘플(903)과의 정확한 비교를 제공하기 위해 다운샘플링된다. 다운샘플링은 샘플 값의 그룹의 해상도를 감소시키는 프로세스이다. 예를 들어, YUV4:2:0 포맷이 사용되는 경우에, 루마 샘플은 4의 인자(factor)에 의해(가령, 폭이 2만큼 및 높이가 2만큼) 다운샘플링될 수 있다. YUV는 루마 컴포넌트 Y 및 2개의 색차 컴포넌트 U 및 V의 면에서 색상 공간을 이용하는 색상 인코딩 시스템이다.
크로스 컴포넌트 잉여성을 감소시키기 위해, 크로스 컴포넌트 선형 모델(CCLM, 또한 LM 모드, CCIP 모드로 칭해질 수 있음) 예측 모드가 있는데, 이를 위해, 크로마 샘플은 다음과 같이 선형 모델을 사용함으로써 동일한 코딩 유닛(Coding Unit: CU)의 재구성된 루마 샘플에 기반하여 예측된다:
Figure 112021017322259-pct00001
(1)
여기서
Figure 112021017322259-pct00002
는 CU 내의 예측된 크로마 샘플을 나타내고
Figure 112021017322259-pct00003
는 동일한 CU의 다운샘플링된 재구성된 루마 샘플을 나타내고,
Figure 112021017322259-pct00004
Figure 112021017322259-pct00005
는 선형 모델 파라미터 또는 선형 모델 계수이다.
하나의 예에서, 파라미터
Figure 112021017322259-pct00006
Figure 112021017322259-pct00007
는 다음과 같이 현재의 루마 블록 주위의 이웃하는 재구성된 루마 샘플 및 크로마 블록 주위의 이웃하는 재구성된 크로마 샘플 간의 회귀 에러(regression error)를 최소화함으로써 도출된다:
Figure 112021017322259-pct00008
(2)
Figure 112021017322259-pct00009
(3)
여기서
Figure 112021017322259-pct00010
은 다운샘플링된 상단 및 좌측의 이웃하는 재구성된 루마 샘플을 나타내고,
Figure 112021017322259-pct00011
은 상단 및 좌측의 이웃하는 재구성된 크로마 샘플을 나타내고,
Figure 112021017322259-pct00012
의 값은 현재의 크로마 코딩 블록(가령, 크로마 블록(901))의 폭 및 높이의 합과 같다. 다른 예에서,
Figure 112021017322259-pct00013
Figure 112021017322259-pct00014
는 아래의 도 16에 관해서 논의되는 바와 같이 다운샘플링된 이웃 루마 참조 샘플의 최소 및 최대 값에 기반하여 판정된다.
본 개시는 비디오 코딩 메커니즘의 일부로서의 인트라 예측을 통해 크로마 샘플을 예측하기 위해 루마 샘플을 사용하는 것에 관련된다. 크로스 컴포넌트 선형 모델(Cross-Component Linear Model: CCLM) 예측 모드는 추가적인 크로마 인트라 예측 모드로서 추가된다. 인코더 측에서, 크로마 인트라 예측 모드를 선택하기 위하여 크로마 컴포넌트에 대한 더 많은 레이트 왜곡 비용 체크가 추가된다.
일반적으로, CCLM 예측 모드(줄여서 LM 예측 모드)가 적용되는 경우에, 비디오 인코더(20) 및 비디오 디코더(30)는 다음의 단계를 호출할 수 있다. 비디오 인코더(20) 및 비디오 디코더(30)는 이웃 루마 샘플을 다운샘플링할 수 있다. 비디오 인코더(20) 및 비디오 디코더(30)는 선형 파라미터(즉, α 및 β)(또한 크로스 컴포넌트 선형 모델(Cross-Component Linear Model: CCLM) 예측 모드의 파라미터 또는 스케일링 파라미터로 지칭됨)를 도출할 수 있다. 비디오 인코더(20) 및 비디오 디코더(30)는 현재의 루마 블록을 다운샘플링하고 다운샘플링된 루마 블록 및 선형 파라미터에 기반하여 예측(가령, 예측 블록)을 도출할 수 있다.
다운샘플링할 다양한 방식이 있을 수 있다.
도 10은 크로마 블록을 위하여 예측 블록을 생성하기 위해 루마 블록의 샘플을 다운샘플링하기 위한 루마 위치 및 크로마 위치의 예를 보여주는 개념도이다. 도 10에 묘사된 바와 같이, 채워진(즉, 검정 일색의) 삼각형에 의해 표현된 크로마 샘플은, [1, 1] 필터를 적용함으로써, 2개의 채워진 원에 의해 표현된 2개의 루마 샘플로부터 예측된다. [1, 1] 필터는 2탭 필터(2-tap 필터)의 하나의 예이다.
도 11은 예측 블록을 생성하기 위해 루마 블록의 샘플을 다운샘플링하기 위한 루마 위치 및 크로마 위치의 다른 예를 보여주는 개념도이다. 도 11에 묘사된 바와 같이, 채워진(즉, 검정 일색의) 삼각형에 의해 표현된 크로마 샘플은, 6탭 필터(6-tap filter)를 적용함으로써, 6개의 채워진 원에 의해 표현된 6개의 루마 샘플로부터 예측된다.
도 12 내지 도 15는, 예를 들어 CCLM 인트라 예측(900), 메커니즘(1600), CCIP_A 모드(1700) 및 CCIP_L 모드(1800)를 사용하는 MDLM 인트라 예측 및/또는 그래프(1900)에 묘사된 바와 같은 MMLM 인트라 예측에 따라, 크로스 컴포넌트 인트라 예측을 지원하기 위해 다운샘플링하는 예시적인 메커니즘(1200, 1300, 1400 및 1500)을 보여주는 개략도이다. 그러한즉, 메커니즘(1200, 1300, 1400 및 1500)은 코덱 시스템(10 또는 40)의 인트라 예측 유닛(46) 및/또는 인트라 예측 유닛(74), 인코더(20)의 인트라 예측 유닛(46) 및/또는 디코더(30)의 인트라 예측 유닛(74)에 의해 수행될 수 있다. 구체적으로, 메커니즘(1200, 1300, 1400 및 1500)은 각각 방법(220)의 단계(2210) 동안에, 디코더에서 방법(230)의 단계(2320) 또는 방법(250)의 단계(2520) 동안에, 그리고 인코더에서 방법(240)의 단계(2420) 또는 방법(260)의 단계(2620) 동안에 이용될 수 있다. 도 12 내지 도 15의 세부사항은 참조에 의해 본 문서에 포함되는, 2019년 12월 7일에 출원된 국제 출원 제PCT/US2019/041526호에 소개된다.
도 12의 메커니즘(1200)에서, 이웃 루마 참조 샘플의 2개의 행(1218 및 1219)이 다운샘플링되고 이웃 루마 참조 샘플의 3개의 열(1220, 1221 및 1222)이 다운샘플링된다. 행(1218 및 1219) 및 열(1220, 1221 및 1222)은 CU를 크로스 컴포넌트 인트라 예측에 따라 예측되고 있는 크로마 블록과 공유하는 루마 블록(1211)에 직접적으로 인접한다. 다운샘플링 후에, 이웃 루마 참조 샘플의 행(1218 및 1219)은 다운샘플링된 이웃 루마 참조 샘플의 단일 행(1216)이 된다. 또한, 이웃 루마 참조 샘플의 열(1220, 1221 및 1222)은 다운샘플링되어 다운샘플링된 이웃 루마 참조 샘플의 단일 열(1217)로 귀결된다. 추가로, 다운샘플링된 루마 참조 샘플(1212)을 창출하기 위해 루마 블록(1211)의 루마 샘플은 다운샘플링된다. 다운샘플링된 루마 참조 샘플(1212)과, 행(1216) 및 열(1217)로부터의 다운샘플링된 이웃 루마 참조 샘플은 이후에 식 (1)에 따라 크로스 컴포넌트 인트라 예측을 위해 이용될 수 있다. 행(1218 및 1219) 및 열(1220, 1221 및 1222)의 치수는 도 12에 도시된 바와 같이 루마 블록(1211)을 넘어서 연장될 수 있음에 유의하여야 한다. 예를 들어, 각 행(1218/1219) 내의 상단 이웃 루마 참조 샘플의 개수(이는 M으로서 표기될 수 있음)는 루마 블록(1211)의 행 내의 루마 샘플의 개수(이는 W로서 표기될 수 있음)보다 더 크다. 또한, 각 열(1220/1221/1222) 내의 좌측 이웃 루마 참조 샘플의 개수(이는 N으로서 표기될 수 있음)는 루마 블록(1211)의 열 내의 루마 샘플의 개수(이는 H로서 표기될 수 있음)보다 더 크다.
예에서, 메커니즘(1200)은 다음과 같이 구현될 수 있다. 루마 블록(1211)에 대하여, A1 및 A2로 표기된 2개의 상단 이웃 행(1218 및 1219)은 A로 표기된 다운샘플링된 이웃 행(1216)을 얻기 위해 다운샘플링을 위해 사용된다. A[i]는 A 내의 i번째 샘플이고, A1[i]는 A1 내의 i번째 샘플이고, A2[i]는 A2 내의 i번째 샘플이다. 구체적인 예에서, 식 (4)에 따라 다운샘플링된 이웃 행(1216)을 획득하기 위해 이웃 행(1218 및 1219)에 6 탭 다운샘플링 필터가 적용될 수 있다:
Figure 112021017322259-pct00015
(4)
또한, 좌측 이웃 열(1220, 1221 및 1222)은 L1, L2 및 L3로 표기되며 L로 표기된 다운샘플링된 이웃 열(1217)을 획득하기 위해 다운샘플링을 위해 사용된다. L[i]는 L 내의 i번째 샘플이고, L1[i]는 L1 내의 i번째 샘플이고, L2[i]는 L2 내의 i번째 샘플이고, L3[i]는 L3 내의 i번째 샘플이다. 구체적인 예에서, 식 (5)에 따라 다운샘플링된 이웃 열(1217)을 획득하기 위해 이웃 열(1220, 1221 및 1222)에 6 탭 다운샘플링 필터가 적용될 수 있다:
Figure 112021017322259-pct00016
(5)
도 13의 메커니즘(1300)은 도 12의 메커니즘(1200)과 실질적으로 유사하다. 메커니즘(1300)은 이웃 루마 참조 샘플의 이웃 행(1318 및 1319) 및 열(1320, 1321 및 1322)을 가진 루마 블록(1311)을 포함하는데, 이들은 행(1218 및 1219), 열(1220, 1221 및 1222) 및 루마 블록(1211)과 각각 유사하다. 차이는 행(1318 및 1319) 및 열(1320, 1321 및 1322)이 루마 블록(1211)을 지나서 연장되지 않는다는 것이다. 메커니즘(1200)에서와 같이, 다운샘플링된 이웃 루마 참조 샘플을 포함한 행(1316), 열(1317) 및 다운샘플링된 루마 참조 샘플(1312)을 창출하기 위해 루마 블록(1311), 행(1318 및 1319) 및 열(1320, 1321 및 1322)은 다운샘플링된다. 열(1317) 및 행(1316)은 다운샘플링된 루마 참조 샘플(1312)의 블록을 넘어서 연장되지 않는다. 그렇지 않으면, 다운샘플링된 루마 참조 샘플(1312), 열(1317) 및 행(1316)은 각각 다운샘플링된 루마 참조 샘플(1212), 열(1217) 및 행(1216)과 실질적으로 유사하다.
도 14의 메커니즘(1400)은 메커니즘(1200 및 1300)과 유사하나 2개의 행 대신 이웃 루마 참조 샘플의 단일 행(1418)을 이용한다. 메커니즘(1400)은 이웃 루마 참조 샘플의 3개의 열(1420, 1421 및 1422)을 또한 이용한다. 행(1418) 및 열(1420, 1421 및 1422)은 CU를 크로스 컴포넌트 인트라 예측에 따라 예측되고 있는 크로마 블록과 공유하는 루마 블록(1411)에 직접적으로 인접한다. 다운샘플링 후에, 이웃 루마 참조 샘플의 행(1418)은 다운샘플링된 이웃 루마 참조 샘플의 행(1416)이 된다. 또한, 이웃 루마 참조 샘플의 열(1420, 1421 및 1422)은 다운샘플링되어 다운샘플링된 이웃 루마 참조 샘플의 단일 열(1417)로 귀결된다. 또한, 다운샘플링된 루마 참조 샘플(1412)을 창출하기 위해 루마 블록(1411)의 루마 샘플은 다운샘플링된다. 다운샘플링된 루마 참조 샘플(1412)과, 행(1416) 및 열(1417)로부터의 다운샘플링된 이웃 루마 참조 샘플은 이후에 식 (1)에 따라 크로스 컴포넌트 인트라 예측을 위해 이용될 수 있다.
다운샘플링 동안에, 행 및 열은 라인 버퍼(line buffer) 내의 메모리 내에 저장된다. 다운샘플링 동안에 행(1319)을 생략하고 대신에 값의 단일 행(1418)을 사용함으로써 라인 버퍼 내의 메모리 사용을 상당히 감소시킨다. 그러나, 행(1316)으로부터의 다운샘플링된 이웃 루마 참조 샘플은 행(1416)으로부터의 다운샘플링된 이웃 루마 참조 샘플과 실질적으로 유사하다고 밝혀졌다. 이와 같이, 다운샘플링 동안에 행(1319)을 생략하고 대신에 단일 행(1418)을 사용하는 것은, 정확성, 그리고 따라서 코딩 효율을 희생하지 않고서, 라인 버퍼 내의 감소된 메모리 활용, 그리고 따라서 더 나은 처리 속도, 더 많은 병렬성, 더 적은 메모리 소요 등으로 귀결된다. 이에 따라, 하나의 예시적인 실시예에서, 크로스 컴포넌트 인트라 예측에서의 사용을 위해 이웃 루마 참조 샘플의 단일 행(1418)이 다운샘플링된다.
예에서, 메커니즘(1400)은 다음과 같이 구현될 수 있다. 루마 블록(1411)에 대하여, A1로 표기된 상단 이웃 행(1418)은 A로 표기된 다운샘플링된 이웃 행(1416)을 얻기 위해 다운샘플링을 위해 사용된다. A[i]는 A 내의 i번째 샘플이고 A1[i]는 A1 내의 i번째 샘플이다. 구체적인 예에서, 식 (6)에 따라 다운샘플링된 이웃 행(1416)을 획득하기 위해 이웃 행(1418)에 3 탭 다운샘플링 필터가 적용될 수 있다:
Figure 112021017322259-pct00017
(6)
또한, 좌측 이웃 열(1420, 1421 및 1422)은 L1, L2 및 L3로 표기되며 L로 표기된 다운샘플링된 이웃 열(1417)을 획득하기 위해 다운샘플링을 위해 사용된다. L[i]는 L 내의 i번째 샘플이고, L1[i]는 L1 내의 i번째 샘플이고, L2[i]는 L2 내의 i번째 샘플이고, L3[i]는 L3 내의 i번째 샘플이다. 구체적인 예에서, 식 (7)에 따라 다운샘플링된 이웃 열(1317)을 획득하기 위해 이웃 열(1320, 1321 및 1322)에 6 탭 다운샘플링 필터가 적용될 수 있다:
Figure 112021017322259-pct00018
(7)
메커니즘(1400)은 기술된 다운샘플링 필터에 한정되지 않음에 유의하여야 한다. 예를 들어, 식 (6)에 기술된 바와 같은 3 탭 다운샘플링 필터를 이용하는 것 대신에, 샘플은 또한 아래의 식 (8)에서와 같이 직접적으로 페치될 수 있다:
Figure 112021017322259-pct00019
(8)
도 15의 메커니즘(1500)은 메커니즘(1300)과 유사하나, 이웃 루마 참조 샘플의 단일 행(1518) 및 이웃 루마 참조 샘플의 단일 열(1520)을 각각 2개의 행(1318 및 1319) 및 3개의 열(1320, 1321 및 1322) 대신에 이용한다. 행(1518) 및 열(1520)은 CU를 크로스 컴포넌트 인트라 예측에 따라 예측되고 있는 크로마 블록과 공유하는 루마 블록(1511)에 직접적으로 인접한다. 다운샘플링 후에, 이웃 루마 참조 샘플의 행(1518)은 다운샘플링된 이웃 루마 참조 샘플의 행(1516)이 된다. 또한, 이웃 루마 참조 샘플의 열(1520)은 다운샘플링되어 다운샘플링된 이웃 루마 참조 샘플의 단일 열(1517)로 귀결된다. 행(1516) 및 열(1517)로부터의 다운샘플링된 이웃 루마 참조 샘플은 이후에 식 (1)에 따라 크로스 컴포넌트 인트라 예측을 위해 이용될 수 있다.
메커니즘(1500)은 다운샘플링 동안에 행(1319) 및 열(1321 및 1322)을 생략하고 대신에 값의 단일 행(1518) 및 단일 열(1520)을 사용하는데, 이는 라인 버퍼 내의 메모리 사용을 상당히 감소시킨다. 그러나, 행(1316) 및 열(1317)로부터의 다운샘플링된 이웃 루마 참조 샘플은 각각 행(1516) 및 열(1517)로부터의 다운샘플링된 이웃 루마 참조 샘플과 실질적으로 유사하다고 밝혀졌다. 이와 같이, 다운샘플링 동안에 행(1319) 및 열(1321 및 1322)을 생략하고 대신에 단일 행(1518) 및 열(1520)을 사용하는 것은, 정확성, 그리고 따라서 코딩 효율을 희생하지 않고서, 라인 버퍼 내의 감소된 메모리 활용, 그리고 따라서 더 나은 처리 속도, 더 많은 병렬성, 더 적은 메모리 소요 등으로 귀결된다. 이에 따라, 다른 예시적인 실시예에서, 크로스 컴포넌트 인트라 예측에서의 사용을 위해 이웃 루마 참조 샘플의 단일 행(1518) 및 이웃 루마 참조 샘플의 단일 열(1520)이 다운샘플링된다.
예에서, 메커니즘(1500)은 다음과 같이 구현될 수 있다. 루마 블록(1511)에 대하여, A1로 표기된 상단 이웃 행(1518)은 A로 표기된 다운샘플링된 이웃 행(1516)을 얻기 위해 다운샘플링을 위해 사용된다. A[i]는 A 내의 i번째 샘플이고 A1[i]는 A1 내의 i번째 샘플이다. 구체적인 예에서, 식 (9)에 따라 다운샘플링된 이웃 행(1516)을 획득하기 위해 이웃 행(1518)에 3 탭 다운샘플링 필터가 적용될 수 있다:
Figure 112021017322259-pct00020
(9)
또한, 좌측 이웃 열(1520)은 L1으로 표기되는데 L로 표기된 다운샘플링된 이웃 열(1517)을 획득하기 위해 다운샘플링을 위해 사용된다. L[i]는 L 내의 i번째 샘플이고 L1[i]는 L1 내의 i번째 샘플이다. 구체적인 예에서, 식 (10)에 따라 다운샘플링된 이웃 열(1517)을 획득하기 위해 이웃 열(1520)에 2 탭 다운샘플링 필터가 적용될 수 있다:
Figure 112021017322259-pct00021
(10)
대체 예에서, 메커니즘(1500)은 다운샘플링하는 경우에 L1 열(가령, 열(1520)) 대신에 L2 열(가령, 열(1321))을 이용하도록 수정될 수 있다. 그러한 경우에, 식 (11)에 따라 다운샘플링된 이웃 열(1517)을 획득하기 위해 이웃 열 L2에 2 탭 다운샘플링 필터가 적용될 수 있다. 메커니즘(1500)은 기술된 다운샘플링 필터에 한정되지 않음에 유의하여야 한다. 예를 들어, 식 (9) 및 식 (10)에 기술된 바와 같은 2 탭 및 3 탭 다운샘플링 필터를 이용하는 것 대신에, 샘플은 또한 아래의 식 (11) 및 식 (12)에서와 같이 직접적으로 페치될 수 있다.
Figure 112021017322259-pct00022
(11)
Figure 112021017322259-pct00023
(12)
나아가, 메커니즘(1400 및 1500)은 행(1418, 1416, 1518, 1516) 및/또는 열(1420, 1421, 1422, 1417, 1520 및/또는 1517)의 치수가 (가령, 도 12에 도시된 바와 같이) 대응하는 루마 블록(1411 및/또는 1511)을 넘어서 연장되는 경우에 또한 적용될 수 있음에 또한 유의하여야 한다.
합동 탐구 모델(Joint Exploration Model: JEM)에서, 2개의 CCLM 모드가 있다: 단일 모델 CCLM 모드 및 다중 모델 CCLM 모드(MMLM). 명칭에 의해 나타내어지는 바와 같이, 단일 모델 CCLM 모드는 전체 CU에 대하여 루마 샘플로부터 크로마 샘플을 예측하기 위해 하나의 선형 모델을 이용하는 반면, MMLM에서는, 2개의 선형 모델이 있을 수 있다. MMLM에서, 현재의 블록의 이웃 루마 샘플 및 이웃 크로마 샘플이 2개의 그룹으로 분류되는데, 각각의 그룹은 선형 모델을 도출하기 위해 훈련 세트로서 사용된다(즉, 특정한 그룹을 위해 특정한 α 및 특정한 β가 도출됨). 나아가, 현재의 루마 블록의 샘플은 이웃 루마 샘플의 분류를 위한 동일한 규칙에 기반하여 또한 분류된다.
도 16은 CCLM 인트라 예측을 지원하기 위해 선형 모델 파라미터를 판정하는 예시적인 메커니즘(1600)을 보여주는 그래프이다. 선형 모델 파라미터
Figure 112021017322259-pct00024
및 β를 도출하기 위해, 상단 및 좌측의 이웃하는 재구성된 루마 샘플은 상단 및 좌측의 이웃하는 재구성된 크로마 샘플과의 일대일 관계를 획득하기 위해 다운샘플링될 수 있다. 메커니즘(1200)에서, 식 (1)에서 사용되는 바와 같은
Figure 112021017322259-pct00025
Figure 112021017322259-pct00026
는 다운샘플링된 이웃 루마 참조 샘플의 최소 및 최대 값에 기반하여 판정된다. 2개의 점(루마 값 및 크로마 값의 2개의 쌍 또는 루마 값 및 크로마 값의 2개의 커플)(A, B)은 도 16에 묘사된 바와 같이 이웃 루마 샘플의 세트 내부의 최소 및 최대 값이다. 이는 회귀 에러를 최소화하는 것에 기반하여
Figure 112021017322259-pct00027
Figure 112021017322259-pct00028
를 판정하는 것에 대한 대체 접근법이다.
도 16에 도시된 바와 같이, 직선이 식 Y = αx + β 에 의해 제시되는데, 선형 모델 파라미터
Figure 112021017322259-pct00029
Figure 112021017322259-pct00030
는 다음의 식(13) 및 식(14)에 따라 획득된다:
Figure 112021017322259-pct00031
(13)
Figure 112021017322259-pct00032
(14)
여기서 (xA, yA)는 최소의 이웃 루마 참조 값 및 대응하는 크로마 참조 값에 의해 정의된 좌표의 세트이고, (xB, yB)는 최대의 이웃 루마 참조 값 및 대응하는 크로마 참조 값에 의해 정의된 좌표의 세트이다. 여기에서 2개의 점(루마 값 및 크로마 값의 2개의 쌍)(A, B)은 다운샘플링된 루마 재구성된 이웃 샘플 및 크로마 재구성된 이웃 샘플로부터 선정된다.
예시적인 메커니즘(1600)은 선형 모델 파라미터를 도출하기 위해 최대/최소 루마 값 및 대응하는 크로마 값을 사용한다. 선형 모델 파라미터를 도출하기 위해, 이웃 루마 샘플 및 이웃 크로마 샘플로부터 오직 2개의 점(점은 루마 값 및 크로마 값의 쌍에 의해 표현됨)이 선정된다. 예시적인 메커니즘(1600)은 어떤 잡음을 가진 몇몇 비디오 시퀀스를 위해 적용되지 않는다.
다방향 선형 모델
위의(또는 상단의) 이웃하는 샘플 및 좌측의 이웃하는 샘플 양자 모두가 함께 선형 모델 파라미터를 계산하는 데에 사용될 수 있는 것 외에, 그것들은 또한 대안적으로 CCIP_A 및 CCIP_L 모드로 칭해지는 다른 2개의 CCIP(Cross-Component Intra Prediction)(크로스 컴포넌트 인트라 예측) 모드에서 사용될 수 있다. CCIP_A 및 CCIP_L은 간결함을 위해 다방향 선형 모델(Multi-Directional Linear Model: MDLM)로 또한 표기될 수 있다.
도 17 및 도 18은 MDLM 인트라 예측을 수행하는 예시적인 메커니즘을 보여주는 개략도이다. MDLM 인트라 예측은 CCLM 인트라 예측(900)과 유사한 방식으로 동작한다. 구체적으로, MDLM 인트라 예측은 선형 모델 파라미터
Figure 112021017322259-pct00033
Figure 112021017322259-pct00034
를 판정하는 경우에 크로스 컴포넌트 선형 모델 예측(CCIP)_A 모드(1700) 및 CCIP_L 모드(1800) 양자 모두를 사용한다. 예를 들어, MDLM 인트라 예측은 CCIP_A 모드(1700) 및 CCIP_L 모드(1800)를 사용하여 선형 모델 파라미터
Figure 112021017322259-pct00035
Figure 112021017322259-pct00036
를 계산할 수 있다. 다른 예에서, MDLM 인트라 예측은 선형 모델 파라미터
Figure 112021017322259-pct00037
Figure 112021017322259-pct00038
를 판정하기 위해 CCIP_A 모드(1700) 또는 CCIP_L 모드(1800)를 사용할 수 있다.
CCIP_A 모드에서, 선형 모델 파라미터를 계산하기 위해 오직 상단 이웃 샘플이 사용된다. 더 많은 참조 샘플을 획득하기 위해, 통상적으로, 상단 이웃 샘플은 (W+H)로 확장된다. 도 17에 도시된 바와 같이, W=H인데, W는 각자의 루마 또는 크로마 블록의 폭을 나타내고, H는 각자의 루마 또는 크로마 블록의 높이를 나타낸다.
CCIP_L 모드에서, 선형 모델 파라미터를 계산하기 위해 오직 좌측 이웃 샘플이 사용된다. 더 많은 참조 샘플을 획득하기 위해, 통상적으로, 좌측 이웃 샘플은 (H+W)로 확장된다. 도 18에 도시된 바와 같이, W=H인데, W는 각자의 루마 또는 크로마 블록의 폭을 나타내고, H는 각자의 루마 또는 크로마 블록의 높이를 나타낸다.
CCIP 모드(즉 CCLM 또는 LM 모드) 및 MDLM(CCIP_A 및 CCIP_L)은 함께 사용될 수 있거나, 대안적으로, 가령, 오직 CCIP가 코덱에서 사용되거나, 오직 MDLM이 코덱에서 사용되거나, CCIP 및 MDLM 양자 모두가 코덱에서 사용된다.
다중 모델 CCLM
단일 모델 CCLM 외에, 다중 모델 CCLM 모드(MMLM)로 칭해지는 다른 모드가 있다. 명칭에 의해 나타내어지는 바와 같이, 단일 모델 CCLM 모드는 전체 CU에 대하여 루마 샘플로부터 크로마 샘플을 예측하기 위해 하나의 선형 모델을 이용하는 반면, MMLM에서는, 2개의 모델이 있을 수 있다. MMLM에서, 현재의 블록의 이웃 루마 샘플 및 이웃 크로마 샘플이 2개의 그룹으로 분류되는데, 각각의 그룹은 선형 모델을 도출하기 위해 훈련 세트로서 사용된다(즉, 특정한 그룹을 위해 특정한 α 및 β가 도출됨). 나아가, 현재의 루마 블록의 샘플은 이웃 루마 샘플의 분류를 위한 동일한 규칙에 기반하여 또한 분류된다.
도 19는 MMLM 인트라 예측을 지원하기 위해 선형 모델 파라미터를 판정하는 예시적인 메커니즘(1900)을 보여주는 그래프이다. 그래프(1900)에 도시된 바와 같은 MMLM 인트라 예측은 어떤 타입의 크로스 컴포넌트 인트라 예측이다. MMLM 인트라 예측은 CCLM 인트라 예측과 유사하다. 차이는 MMLM에서, 이웃하는 재구성된 루마 샘플은 관련된 루마 값(가령, Rec'L)을 임계(threshold)와 비교함으로써 2개의 그룹 내에 배치된다는 것이다. 이후 CCLM 인트라 예측은 선형 모델 파라미터
Figure 112021017322259-pct00039
Figure 112021017322259-pct00040
를 판정하고 대응하는 선형 모델을 식 (1)에 따라 작성하기 위해 각각의 그룹에 대해 수행된다. 2개의 그룹으로의 이웃하는 재구성된 루마 샘플의 분류는 아래의 식 (15)에 따라 수행될 수 있다:
예에서, 임계는 이웃하는 재구성된 루마 샘플의 평균적인 값으로서 계산된다.
Figure 112021017322259-pct00041
인 이웃하는 재구성된 루마 샘플은 그룹 1로 분류되는 반면;
Figure 112021017322259-pct00042
인 이웃하는 재구성된 루마 샘플은 그룹 2로 분류된다.
Figure 112021017322259-pct00043
(15)
여기서 식 (15)의 변수는 식 (1)과 유사하게 정의되되 1의 첨자는 제1 그룹과의 관계를 나타내고 2의 첨자는 제2 그룹과의 관계를 나타낸다.
그래프(1900)에 의해 도시된 바와 같이, 제1 그룹에 대하여 선형 모델 파라미터
Figure 112021017322259-pct00044
Figure 112021017322259-pct00045
가 계산될 수 있고 제2 그룹에 대하여 선형 모델 파라미터
Figure 112021017322259-pct00046
Figure 112021017322259-pct00047
가 계산될 수 있다. 구체적인 예로서, 그러한 값은
Figure 112021017322259-pct00048
,
Figure 112021017322259-pct00049
,
Figure 112021017322259-pct00050
Figure 112021017322259-pct00051
일 수 있는데 임계는 17의 루마 값이다. 이후 MMLM 인트라 예측은 가장 작은 잔차 샘플을 제공하고/거나 가장 큰 코딩 효율로 귀결되는 결과적인 모델을 선택할 수 있다.
앞서 지적된 바와 같이, 여기에서 논의된 상이한 CCLM 인트라 예측을 수행하는 예시적인 메커니즘은 선형 모델 파라미터를 도출하기 위해 최대/최소 루마 값 및 대응하는 크로마 값을 사용하는데, 강인한 선형 모델 파라미터를 달성하는 CCLM 인트라 예측을 수행하는 개선된 메커니즘이 바람직하다.
만일 하나보다 많은 점이 최대 값을 갖거나 하나보다 많은 점이 최소 값을 가지면, 대응하는 점의 크로마 값에 기반하여 점의 쌍이 선정될 것이다.
만일 하나보다 많은 점이 최대 값을 갖거나 하나보다 많은 점이 최소 값을 갖는 경우, 최대 값을 가진 루마 샘플의 평균 크로마 값은 최대 루마 값을 위한 대응하는 크로마 값으로서 설정될 것이고, 최소 값을 가진 루마 샘플의 평균 크로마 값은 최소 루마 값을 위한 대응하는 크로마 값으로서 설정될 것이다.
점(최소 및 최대)의 단 1개의 쌍만이 선정되지는 않을 것이다. 구체적으로, 더 큰 루마 값을 갖는 N개의 점과, 더 작은 루마 값을 갖는 M개의 점이 선형 모델 파라미터를 계산하는 데에 사용될 것이다.
점의 단 1개의 쌍만이 선정되지는 않을 것이다. 구체적으로, [MaxValue-T1, MaxValue]의 범위 내의 루마 값을 가진 N개의 점과, [MinValue, MinValue+T2]의 범위 내의 루마 값을 가진 M개의 점이 선형 모델 파라미터를 계산하기 위한 점으로서 선정될 것이다.
최대/최소 값을 획득하는 데에 위와 좌측의 이웃 샘플이 사용될 뿐만 아니라, 하단 좌측의 이웃 샘플 및 상단 우측의 이웃 샘플 같은 몇몇 확장된 이웃 샘플도 사용된다.
앞서 언급된 예시적인 개선된 메커니즘으로써, CCLM 인트라 예측의 코딩 효율을 개선함과 함께 더 강인한 선형 모델 파라미터에 도달될 수 있다.
본 개시에서, 루마 및 크로마 샘플의 커플 중에서 최대/최소 루마 값 및 대응하는 크로마 값을 획득하기 위한 개선된 메커니즘이 아래에서 상세히 기술될 것이다.
여기에서, 개선된 메커니즘은 MDLM 및 MMLM에서 또한 사용될 수 있음에 유의하시오.
본 개시에서, 개선된 메커니즘은 선형 모델 파라미터를 도출하기 위해 최대 및 최소 루마 값 및 대응하는 크로마 값을 획득하기 위해 제시된다. 개선된 메커니즘에 의해, 더 강인한 선형 모델 파라미터가 도출될 수 있다.
예에서, 여기에서 루마 샘플 및 크로마 샘플의 쌍의 세트는 {(p0, q0), (p1, q1), (p2, q2),…, (pi, qi), ..., (pV-1, qV-1)}로서 예시된다. pi가 i번째 점의 루마 값인 경우에, qi는 i번째 점의 크로마 값이다. 여기에서 루마 점의 세트는 P = {p0, p1, p2, ..., pi, …, pV-1}로서 기재되고, 크로마 점의 세트는 Q = {q0, q1, …, qi, ..., qV-1}로서 기재된다.
제1 개선된 메커니즘: 극점이 1개보다 많음, 그리고 크로마 값에 따라 점의 커플이 선정됨
제1 개선된 메커니즘에서, 만일 1개보다 많은 점이 최대/최소 값을 가지면, 대응하는 점의 크로마 값에 기반하여 점의 커플이 선정될 것이다. 선형 모델 파라미터를 도출하기 위해 점의 커플로서 가장 작은 크로마 값 차이를 갖는 점의 커플이 선정될 것이다.
예를 들어, 5번째, 7번째, 8번째 점이 최대 루마 값을 갖고, 4번째, 6번째 점이 최소 루마 값을 갖고, |q7-q4|는 |q5-q4|, |q5-q6|, |q7-q4|, |q7-q6|, |q8-q4| 및 |q8-q6| 중에서 가장 작은 값이라고 가정하자. 그러면 7번째 및 4번째 점이 선형 모델 파라미터를 도출하기 위해 선정될 것이다.
여기에서, 가장 작은 크로마 값 차이를 사용하는 것 외에, 제1 개선된 메커니즘은 가장 큰 크로마 값 차이를 또한 사용할 수 있다. 예를 들어, 5번째, 7번째, 8번째 점이 최대 루마 값을 갖고, 4번째, 6번째 점이 최소 루마 값을 갖고, |q5-q6|는 |q5-q4|, |q5-q6|, |q7-q4|, |q7-q6|, |q8-q4| 및 |q8-q6| 중에서 가장 큰 값이라고 가정하자. 그러면 5번째 및 6번째 점이 선형 모델 파라미터를 도출하기 위해 선정될 것이다.
여기에서, 개선된 메커니즘은 MDLM 및 MMLM에서 또한 사용될 수 있음에 유의하시오.
제2 개선된 메커니즘: 극점이 1개보다 많음, 평균 크로마 값을 사용함
제2 개선된 메커니즘에서, 만일 하나보다 많은 점이 최대/최소 값을 가지면, 평균 크로마 값이 사용될 것이다. 최대 루마 값에 대응하는 크로마 값은 최대 루마 값을 가진 점의 평균 크로마 값이다. 최소 루마 값에 대응하는 크로마 값은 최소 루마 값을 가진 점의 평균 크로마 값이다.
예를 들어, 만일 5번째, 7번째, 8번째 점이 최대 루마 값을 갖고, 4번째, 6번째 점이 최소 루마 값은 갖는 경우이다. 그러면 최대 루마 값에 대응하는 크로마 값은 q5, q7 및 q8의 평균 값이다. 최소 루마 값에 대응하는 크로마 값은 q4 및 q6의 평균 크로마 값이다.
여기에서, 개선된 메커니즘은 MDLM 및 MMLM에서 또한 사용될 수 있음에 유의하시오.
제3 개선된 메커니즘: (점의 개수를 기반으로 하나보다 많은 점), 1개보다 많은 더 큰/더 작은 점이 사용될 것인데, 평균 값을 사용함
제3 개선된 메커니즘에서, 최대 루마 값 및 대응하는 크로마 값을 계산하기 위해 N개의 점이 사용될 것이다. 선택된 N개의 점은 다른 점보다 더 큰 루마 값을 갖는다. 선택된 N개의 점의 평균 루마 값은 최대 루마 값으로서 사용될 것이고, 선택된 N개의 점의 평균 크로마 값은 최대 루마 값에 대응하는 크로마 값으로서 사용될 것이다.
최소 루마 값 및 대응하는 크로마 값을 계산하기 위해 M개의 점이 사용될 것이다. 선택된 M개의 점은 다른 점보다 더 작은 루마 값을 갖는다. 선택된 M개의 점의 평균 루마 값은 최소 루마 값으로서 사용될 것이고, 선택된 M개의 점의 평균 크로마 값은 최소 루마 값에 대응하는 크로마 값으로서 사용될 것이다.
예를 들어, 만일 5번째, 7번째, 8번째, 9번째, 11번째 점이 다른 점보다 큰 루마 값을 갖고, 4번째, 6번째, 14번째, 18번째 점이 더 작은 루마 값을 갖는 경우이다. 그러면 p5, p7, p8, p9 및 p11의 평균 값은 선형 모델 파라미터를 위해 사용되는 최대 루마 값이고, q5, q7, q8, q9 및 q11의 평균 값은 최대 루마 값에 대응하는 크로마 값이다. 그러면 p4, p6, p14 및 p18의 평균 값은 선형 모델 파라미터를 위해 사용되는 최소 루마 값이고, q4, q6, q14 및 q18의 평균 값은 최소 루마 값에 대응하는 크로마 값이다.
여기에서, M 및 N은 같거나, 같지 않을 수 있음에 유의하시오. 예를 들어, M = N = 2이다.
여기에서, M 및 N은 블록 크기에 기반하여 적응적으로 정의될 수 있음에 유의하시오. 예를 들어, M = (W+H) >> t, N = (W+H) >> r 이다. 여기에서 t 및 r은 2, 3 및 4와 같은, 우측 쉬프트 비트의 수량이다.
대안적인 구현에서, 만일 (W+H) > T1이면, M 및 N은 특정한 값 M1, N1으로서 설정된다. 그렇지 않으면, M 및 N은 특정한 값 M2, N2으로서 설정된다. 여기에서 M1 및 N1은 같거나, 같지 않을 수 있음에 유의하시오. M2 및 N2 는 같거나, 같지 않을 수 있다. 예를 들어, 만일 (W+H) > 16이면, M = 2, N = 2이다. 만일 (W+H)<= 16이면, M = 1, N = 1이다.
개선된 메커니즘은 MDLM 및 MMLM에서 또한 사용될 수 있음에 유의하시오.
제4 개선된 메커니즘: (능동적으로, 루마 값 임계를 기반으로 하나보다 많은 점), 하나보다 많은 더 큰/더 작은 점이 사용될 것인데, 평균 값을 사용함
제4 개선된 메커니즘에서, 최대 루마 값 및 대응하는 크로마 값을 계산하기 위해 N개의 점이 사용될 것이다. 선택된 N개의 점은 루마 값이 [MaxlumaValue-T1, MaxlumaValue]의 범위 내에 있다. 선택된 N개의 점의 평균 루마 값은 최대 루마 값으로서 사용될 것이고, 선택된 N개의 점의 평균 크로마 값은 최대 루마 값에 대응하는 크로마 값으로서 사용될 것이다. 예에서, MaxlumaValue는 세트 P 내의 최대 루마 값을 나타낸다.
제4 개선된 메커니즘에서, 최소 루마 값 및 대응하는 크로마 값을 계산하기 위해 M개의 점이 사용될 것이다. 선택된 M개의 점은 루마 값이 [MinlumaValue, MinlumaValue+T2]의 범위 내에 있다. 선택된 M개의 점의 평균 루마 값은 최소 루마 값으로서 사용될 것이고, 선택된 M개의 점의 평균 크로마 값은 최소 루마 값에 대응하는 크로마 값으로서 사용될 것이다. 예에서, MinlumaValue는 세트 P 내의 최소 루마 값을 나타낸다.
예를 들어, 만일 5번째, 7번째, 8번째, 9번째, 11번째 점이 [Lmax-T1, Lmax]의 범위 내의 루마 값을 가진 점인 경우이다. 4번째, 6번째, 14번째, 18번째 점은 [Lmin, Lmin+T2]의 범위 내의 루마 값을 가진 점이다. 예에서, Lmax는 세트 P 내의 가장 큰 루마 값을 나타내고, Lmin은 세트 P 내의 가장 작은 루마 값을 나타낸다. 그러면 p5, p7, p8, p9 및 p11의 평균 값은 선형 모델 파라미터를 위해 사용되는 최대 루마 값이고, q5, q7, q8, q9 및 q11의 평균 값은 최대 루마 값에 대응하는 최대 크로마 값이다. 그러면 p4, p6, p14 및 p18의 평균 값은 선형 모델 파라미터를 위해 사용되는 최소 루마 값이고, q4, q6, q14 및 q18의 평균 값은 최소 루마 값에 대응하는 최소 크로마 값이다.
M 및 N은 같거나, 같지 않을 수 있음에 유의하시오.
T1 및 T2는 같거나, 같지 않을 수 있음에 유의하시오.
개선된 메커니즘은 MDLM 및 MMLM에서 또한 사용될 수 있음에 유의하시오.
제5 개선된 메커니즘: 확장된 이웃 샘플을 사용함
기존의 메커니즘에서, 선형 모델 파라미터를 도출하기 위해 점의 커플을 탐색하기 위해 점의 커플을 획득하는 데에 오직 상단 및 좌측의 이웃 샘플이 사용된다. 제5 개선된 메커니즘에서, 선형 모델 파라미터의 강인성을 개선하기 위해, 점의 커플의 개수를 증가시키는 데에 몇몇 확장된 샘플이 사용될 수 있다.
예를 들어, 상단 우측 이웃 샘플 및 좌측 하단 이웃 샘플은 선형 모델 파라미터를 도출하는 데에 또한 사용될 수 있다.
예를 들어, 도 20에 도시된 바와 같이, 기존의 단일 모드 CCLM 메커니즘에서, 다운샘플링된 상단 이웃 루마 샘플은 A'에 의해 표현되고, 다운샘플링된 좌측 이웃 루마 샘플은 L'에 의해 표현된다. 상단 이웃 크로마 샘플은 Ac'에 의해 표현되고, 좌측 이웃 크로마 샘플은 Lc'에 의해 표현된다.
도 21에 도시된 바와 같이, 제5 개선된 메커니즘에서, 이웃 샘플은 상단 우측 및 좌측 하단 샘플로 확장될 것이다. 이는 최대/최소 루마 값 및 대응하는 크로마 값을 획득하는 데에 참조 샘플 A, L 및 Ac, Lc가 사용될 수 있음을 의미한다.
여기에서 M>W, N>H 이다.
여기에서, 개선된 메커니즘은 MDLM 및 MMLM에서 또한 사용될 수 있음에 유의하시오.
기존의 CCIP 또는 LM 메커니즘에서, 최대/최소 루마 값 및 대응하는 크로마 값을 획득하기 위해, 점의 단 하나의 쌍이 사용될 것이다.
제안된 개선된 메커니즘에서, 점의 단 하나의 쌍만이 사용되지는 않을 것이다.
만일 하나보다 많은 점이 최대 값을 갖거나 하나보다 많은 점이 최소 값을 가지면, 점의 쌍은 대응하는 점의 크로마 값에 기반하여 선정될 것이다.
만일 하나보다 많은 점이 최대 값을 갖거나 하나보다 많은 점이 최소 값을 가지면, 최대 루마 값을 위한 대응하는 크로마 값은 최대 값을 가진 루마 샘플의 평균 크로마 값일 것이고, 최소 루마 값을 위한 대응하는 크로마 값은 최소 값을 가진 루마 샘플의 평균 크로마 값일 것이다.
점의 단 하나의 쌍만이 선정되지는 않을 것이다. 구체적으로, 더 큰 값을 갖는 N개의 점과, 더 작은 값을 갖는 M개의 점이 선형 모델 파라미터를 계산하는 데에 사용될 것이다.
점의 단 하나의 쌍만이 선정되지는 않을 것이다. 구체적으로, [MaxValue-T1, MaxValue]의 범위 내의 값을 가진 N개의 점과, [MinValue, MinValue+T2]의 범위 내의 값을 가진 M개의 점이 선형 모델 파라미터를 계산하기 위한 점으로서 선정될 것이다.
최대/최소 값을 획득하는 데에 위와 좌측의 이웃 샘플이 사용될 뿐만 아니라, 하단 좌측의 이웃 샘플 및 상단 우측의 이웃 샘플 같은 몇몇 확장된 이웃 샘플도 사용된다.
앞서 언급된 모든 개선된 메커니즘은 더 강인한 선형 모델 파라미터를 획득할 것이다.
앞서 언급된 모든 개선된 메커니즘은 MMLM에서 또한 사용될 수 있다.
개선된 메커니즘 5를 제외하고, 앞서 언급된 모든 개선된 메커니즘은 MDLM에서 또한 사용될 수 있다.
본 개시에서 제안된 개선된 메커니즘은 크로마 인트라 예측을 위한 선형 모델 파라미터를 도출하기 위해 최대/최소 루마 값 및 대응하는 크로마 값을 획득하는 데에 사용됨에 유의하시오. 개선된 메커니즘은 인트라 예측 모듈 또는 인트라 프로세스 내에 적용된다. 따라서, 그것은 디코더 측 및 인코더 측 양자 모두에 존재한다. 또한, 최대/최소 루마 값 및 대응하는 크로마 값을 획득하는 개선된 메커니즘은 인코더 및 디코더 양자 모두에서 동일한 방식으로 구현될 수 있다.
크로마 블록에 대하여, 그것의 예측을 LM 모드를 사용하여 획득하기 위해서, 대응하는 다운샘플링된 루마 샘플이 우선 획득되고, 재구성된 이웃 샘플 내의 최대/최소 루마 값 및 대응하는 크로마 값이 선형 모델 파라미터를 도출하기 위해 이후에 획득된다. 이후에, 현재의 크로마 블록의 예측(즉 예측 블록)은 도출된 선형 모델 파라미터 및 다운샘플링된 루마 블록을 사용하여 획득된다.
본 개시의 실시예 1에 따른 블록의 크로스 컴포넌트 예측을 위한 방법은 앞서 기술된 제1 개선된 메커니즘에 관련된다.
본 개시의 실시예 2에 따른 블록의 크로스 컴포넌트 예측을 위한 방법은 앞서 기술된 제2 개선된 메커니즘에 관련된다.
본 개시의 실시예 3에 따른 블록의 크로스 컴포넌트 예측을 위한 방법은 앞서 기술된 제3 개선된 메커니즘에 관련된다.
본 개시의 실시예 4에 따른 블록의 크로스 컴포넌트 예측을 위한 방법은 앞서 기술된 제4 개선된 메커니즘에 관련된다.
본 개시의 실시예 5에 따른 블록의 크로스 컴포넌트 예측을 위한 방법은 앞서 기술된 제5 개선된 메커니즘에 관련된다.
도 22는 본 개시의 몇몇 실시예에 따른 블록(가령, 크로마 블록)의 크로스 컴포넌트 예측을 위한 다른 예시적인 방법(220)의 흐름도이다. 그러한즉, 방법은 코덱 시스템(10 또는 40)의 비디오 인코더(20) 및/또는 비디오 디코더(30)에 의해 수행될 수 있다. 특히, 방법은 비디오 인코더(20)의 인트라 예측 유닛(46) 및/또는 비디오 디코더(30)의 인트라 예측 유닛(74)에 의해 수행될 수 있다.
단계(2210)에서, 다운샘플링된 루마 블록이 획득된다. 루마 블록의 공간적 해상도는 통상적으로 크로마 블록보다 더 큰데, 다운샘플링된 루마 블록을 획득하기 위해 루마 블록(즉 재구성된 루마 블록)이 다운샘플링됨이 이해될 수 있다. 루마 블록(911, 1211, 1311, 1411 및 1511)은, 도 9, 12 내지 15에 예시된 바와 같이, 크로마 블록(901)에 대응한다.
단계(2230)에서, 최대 루마 값 및 최소 루마 값이 재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 세트로부터 판정되는데, 재구성된 이웃 루마 샘플은 루마 블록 위에 있는 복수의 재구성된 루마 샘플 및/또는 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함하며, 대응하는 크로마 값이 또한 판정된다.
단계(2250)에서, 선형 모델 파라미터가 계산된다. 예를 들어, 선형 모델 파라미터는 식 (13) 및 식 (14)를 사용하여 최대 루마 값 및 대응하는 크로마 값, 그리고 최소 루마 값 및 대응하는 크로마 값에 기반하여 계산된다.
단계(2270)에서, 크로마 블록(901)의 예측 블록이 적어도, 하나 이상의 선형 모델 파라미터에 기반하여 획득된다. 크로마 블록(901)의 예측된 크로마 값은 하나 이상의 선형 모델 파라미터 및 다운샘플링된 루마 블록(1212, 1312, 1412, 1512)에 기반하여 생성된다. 크로마 블록(901)의 예측된 크로마 값은 식 (1)을 사용하여 도출된다.
본 개시의 실시예 1(LM 모드를 위한 제1 개선된 메커니즘에 대응함)에 따른 블록의 크로스 컴포넌트 예측을 위한 방법이 도 22와의 참조에 의해 제공된다.
앞서 기술된 제1 개선된 메커니즘은 최대/최소 루마 값과, 대응하는 크로마 값을 도출하는 데에 사용될 것이다. 만일 하나보다 많은 점이 최대/최소 값을 가지면, 대응하는 점의 크로마 값에 기반하여 점의 커플이 선정될 것이다. 가장 작은 크로마 값 차이를 갖는 (최대/최소 루마 값을 갖는) 점의 커플은 선형 모델 파라미터를 도출하기 위해 점의 커플로서 선정될 것이다.
크로마 값 차이의 가장 작은 값을 사용하는 것 외에, 제1 개선된 메커니즘은 크로마 값 차이의 가장 큰 값을 또한 사용할 수 있음에 유의하시오.
세부사항에 대하여, 앞서 제시된 개선된 메커니즘 1을 참조하시오.
개선된 메커니즘 1은 MDLM 및 MMLM에서 또한 사용될 수 있다. 예를 들어, MDLM/MMLM에 대해, 선형 모델 파라미터를 도출하는 데에 오직 최대/최소 루마 값 및 대응하는 크로마 값이 사용된다. 개선된 메커니즘 1은 최대/최소 루마 값 및 대응하는 크로마 값을 도출하는 데에 사용된다.
본 개시의 실시예 2(LM 모드를 위한 제2 개선된 메커니즘에 대응함)에 따른 블록의 크로스 컴포넌트 예측을 위한 방법이 도 22와의 참조에 의해 제공된다.
실시예 2 및 실시예 1 간의 차이는 다음에 있다:
만일 하나보다 많은 점이 최대/최소 값을 가지면, 평균 크로마 값이 사용될 것이다. 최대 루마 값에 대응하는 크로마 값은 최대 루마 값을 가진 점의 평균 크로마 값이다. 최소 루마 값에 대응하는 크로마 값은 최소 루마 값을 가진 점의 평균 크로마 값이다.
세부사항에 대하여, 개선된 메커니즘 2을 참조하시오.
개선된 메커니즘은 MDLM 및 MMLM에서 또한 사용될 수 있다. 예를 들어, MDLM/MMLM에 대해, 선형 모델 파라미터를 도출하는 데에 오직 최대/최소 루마 값 및 대응하는 크로마 값이 사용된다. 개선된 메커니즘 2는 최대/최소 루마 값 및 대응하는 크로마 값을 도출하는 데에 사용된다.
본 개시의 실시예 3(제3 개선된 메커니즘에 대응함)에 따른 블록의 크로스 컴포넌트 예측을 위한 방법이 도 22와의 참조에 의해 제공된다.
실시예 3 및 실시예 1 간의 차이는 다음에 있다:
최대 루마 값 및 대응하는 크로마 값을 계산하기 위해 N개의 점이 사용될 것이다. 선택된 N개의 점은 다른 점보다 더 큰 루마 값을 갖는다. 선택된 N개의 점의 평균 루마 값은 최대 루마 값으로서 사용될 것이고, 선택된 N개의 점의 평균 크로마 값은 최대 루마 값에 대응하는 크로마 값으로서 사용될 것이다.
최소 루마 값 및 대응하는 크로마 값을 계산하기 위해 M개의 점이 사용될 것이다. 선택된 M개의 점은 다른 점보다 더 작은 루마 값을 갖는다. 선택된 M개의 점의 평균 루마 값은 최소 루마 값으로서 사용될 것이고, 선택된 M개의 점의 평균 크로마 값은 최소 루마 값에 대응하는 크로마 값으로서 사용될 것이다.
세부사항에 대하여, 앞서 기술된 개선된 메커니즘 3을 참조하시오.
개선된 메커니즘 3은 MDLM 및 MMLM에서 또한 사용될 수 있다. 예를 들어, MDLM/MMLM에 대해, 선형 모델 파라미터를 도출하기 위해 오직 최대/최소 루마 값 및 대응하는 크로마 값이 사용된다. 개선된 메커니즘 3은 최대/최소 루마 값 및 대응하는 크로마 값을 도출하기 위해 사용된다.
본 개시의 실시예 4(제4 개선된 메커니즘에 대응함)에 따른 블록의 크로스 컴포넌트 예측을 위한 방법이 도 22와의 참조에 의해 제공된다.
실시예 4 및 실시예 1 간의 차이는 다음에 있다:
최대 루마 값과, 대응하는 크로마 값을 계산하는 데에 점의 N개의 커플이 사용될 것이다. 선택된 N개의 커플의 점은 [MaxlumaValue-T1, MaxlumaValue]의 범위 내의 루마 값을 갖는다. 선택된 N개의 커플의 점의 평균 루마 값은 최대 루마 값으로서 사용될 것이고, 선택된 N개의 커플의 점의 평균 크로마 값은 최대 루마 값에 대응하는 크로마 값으로서 사용될 것이다.
최소 루마 값과, 대응하는 크로마 값을 계산하는 데에 점의 M개의 커플이 사용될 것이다. 선택된 M개의 커플의 점은 [MinlumaValue, MinlumaValue+T2]의 범위 내의 루마 값을 갖는다. 선택된 M개의 커플의 점의 평균 루마 값은 최소 루마 값으로서 사용될 것이고, 선택된 M개의 커플의 점의 평균 크로마 값은 최소 루마 값에 대응하는 크로마 값으로서 사용될 것이다.
세부사항에 대하여, 앞서 기술된 개선된 메커니즘 4를 참조하시오.
개선된 메커니즘 4는 MDLM 및 MMLM에서 또한 사용될 수 있다. 예를 들어, MDLM/MMLM에 대해, 선형 모델 파라미터를 도출하기 위해 오직 최대/최소 루마 값 및 대응하는 크로마 값이 사용된다. 개선된 메커니즘 4는 최대/최소 루마 값 및 대응하는 크로마 값을 도출하기 위해 사용된다.
본 개시의 실시예 5(제5 개선된 메커니즘에 대응함)에 따른 블록의 크로스 컴포넌트 예측을 위한 방법이 도 22와의 참조에 의해 제공된다.
실시예 5 및 실시예 1 간의 차이는 다음에 있다:
선형 모델 파라미터의 강인성을 개선하기 위해, 점의 커플의 개수를 증가시키는 데에 몇몇 확장된 샘플이 사용될 수 있다.
예를 들어, 상단 우측 이웃 샘플 및 좌측 하단 이웃 샘플은 선형 모델 파라미터를 도출하는 데에 또한 사용될 수 있다.
세부사항에 대하여, 앞서 기술된 개선된 메커니즘 5를 참조하시오.
개선된 메커니즘 5는 MMLM에서 또한 사용될 수 있다. 예를 들어, MMLM에 대해, 선형 모델 파라미터를 도출하기 위해 오직 최대/최소 루마 값 및 대응하는 크로마 값이 사용된다. 개선된 메커니즘 5는 최대/최소 루마 값 및 대응하는 크로마 값을 도출하기 위해 사용된다.
도 23은 비디오 데이터를 디코딩하는 예시적인 방법(230)의 흐름도이다. 단계(2310)에서, 크로마 블록(901)에 대응하는 루마 블록(911, 1211, 1311, 1411 및 1511)이 판정된다.
단계(2320)에서, 재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 세트가 판정되는데, 재구성된 이웃 루마 샘플은 루마 블록 위에 있는 복수의 재구성된 루마 샘플 및/또는 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함한다.
단계(2330)에서, N개의 다운샘플링된 이웃 루마 샘플 및 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 N개의 재구성된 이웃 크로마 샘플, 그리고/또는 M개의 다운샘플링된 이웃 루마 샘플 및 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 M개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 2개의 쌍이 판정된다. N개의 다운샘플링된 이웃 루마 샘플의 최소 값은 재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 세트의 나머지 다운샘플링된 이웃 루마 샘플의 루마 값보다 더 작지 않고, M개의 다운샘플링된 이웃 루마 샘플의 최대 값은 재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 세트의 나머지 다운샘플링된 이웃 루마 샘플의 루마 값보다 더 크지 않고, M, N은 양의 정수이고 1보다 더 크다. 특히, 다운샘플링된 샘플의 세트의 N개의 다운샘플링된 이웃 루마 샘플 및 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 N개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 제1 쌍이 판정되고; 다운샘플링된 샘플의 세트의 M개의 다운샘플링된 이웃 루마 샘플 및 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 M개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 제2 쌍이 판정된다.
단계(2340)에서, 루마 값 및 크로마 값의 2개의 쌍에 기반하여 하나 이상의 선형 모델 파라미터가 판정된다.
단계(2350)에서, 크로마 블록(901)의 예측 블록이 적어도, 하나 이상의 선형 모델 파라미터에 기반하여 판정되는데, 예를 들어, 크로마 블록(901)의 예측된 크로마 값은 선형 모델 파라미터 및 다운샘플링된 루마 블록(1212, 1312, 1412 및 1512)에 기반하여 생성된다.
단계(2360)에서, 크로마 블록(901)이 예측 블록에 기반하여 재구성된다. 예를 들어, 크로마 블록(901)을 재구성하기 위해 잔차 블록에 예측 블록을 가산하는 것이다.
CCIP_A 모드(1700)를 사용하는 MDLM 인트라 예측의 경우에, 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 재구성된 루마 샘플을 포함하나 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함하지 않음에 유의하여야 한다. CCIP_L 모드(1800)를 사용하는 MDLM 인트라 예측의 경우에, 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 재구성된 루마 샘플을 포함하지 않고 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함한다. CCLM 인트라 예측의 경우에, 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 재구성된 루마 샘플 및 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함한다.
도 24는 비디오 데이터를 인코딩하는 예시적인 방법(240)의 흐름도이다. 단계(2410)에서, 크로마 블록(901)에 대응하는 루마 블록(911, 1211, 1311, 1411 및 1511)이 판정된다.
단계(2420)에서, 재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 세트가 판정되는데, 재구성된 이웃 루마 샘플은 루마 블록 위에 있는 복수의 재구성된 루마 샘플 및/또는 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함한다.
단계(2430)에서, N개의 다운샘플링된 이웃 루마 샘플 및 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 N개의 재구성된 이웃 크로마 샘플, 그리고/또는 M개의 다운샘플링된 이웃 루마 샘플 및 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 M개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 2개의 쌍이 판정된다. N개의 다운샘플링된 이웃 루마 샘플의 최소 값은 재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 세트의 나머지 다운샘플링된 이웃 루마 샘플의 루마 값보다 더 작지 않다. M개의 다운샘플링된 이웃 루마 샘플의 최대 값은 재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 세트의 나머지 다운샘플링된 이웃 루마 샘플의 루마 값보다 더 크지 않고, M, N은 양의 정수이고 1보다 더 크다. 특히, 다운샘플링된 샘플의 세트의 N개의 다운샘플링된 이웃 루마 샘플 및 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 N개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 제1 쌍이 판정되고; 다운샘플링된 샘플의 세트의 M개의 다운샘플링된 이웃 루마 샘플 및 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 M개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 제2 쌍이 판정된다.
단계(2440)에서, 루마 값 및 크로마 값의 2개의 쌍에 기반하여 하나 이상의 선형 모델 파라미터가 판정된다.
단계(2450)에서, 크로마 블록(901)의 예측 블록이 하나 이상의 선형 모델 파라미터에 기반하여 판정되는데, 예를 들어, 크로마 블록(901)의 예측된 크로마 값은 선형 모델 파라미터 및 다운샘플링된 루마 블록(1212, 1312, 1412 및 1512)에 기반하여 생성된다.
단계(2460)에서, 크로마 블록(901)이 예측 블록에 기반하여 인코딩된다. 크로마 블록 및 예측 블록 간의 잔차 데이터가 인코딩되고 인코딩된 잔차 데이터를 포함하는 비트스트림이 생성된다. 예를 들어, 잔차 블록(잔차 데이터)을 획득하기 위해 크로마 블록(901)으로부터 예측 블록을 감산하는 것 및 인코딩된 잔차 데이터를 포함하는 비트스트림을 생성하는 것이다.
CCIP_A 모드(1700)를 사용하는 MDLM 인트라 예측의 경우에, 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 재구성된 루마 샘플을 포함하나 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함하지 않음에 유의하여야 한다. CCIP_L 모드(1800)를 사용하는 MDLM 인트라 예측의 경우에, 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 재구성된 루마 샘플을 포함하지 않고 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함한다. CCLM 인트라 예측의 경우에, 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 재구성된 루마 샘플 및 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함한다.
도 25는 비디오 데이터를 디코딩하는 예시적인 방법(250)의 흐름도이다. 단계(2510)에서, 크로마 블록(901)에 대응하는 루마 블록(911)이 판정된다.
단계(2520)에서, 재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 세트가 판정되는데, 재구성된 이웃 루마 샘플은 루마 블록 위에 있는 복수의 재구성된 루마 샘플 및/또는 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함한다.
단계(2530)에서, 최대 값을 가진 N개의 다운샘플링된 이웃 루마 샘플 및/또는 최소 값을 가진 M개의 다운샘플링된 이웃 루마 샘플이 재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 세트 내에 포함된 경우에, 최대 값을 가진 N개의 다운샘플링된 이웃 루마 샘플 및 최대 값을 가진 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 N개의 재구성된 이웃 크로마 샘플, 그리고/또는 최소 값을 가진 M개의 다운샘플링된 이웃 루마 샘플 및 최소 값을 가진 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 M개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 2개의 쌍이 판정되되, M, N은 양의 정수이고 1보다 크다. 특히, 다음 중 적어도 하나에 따라 루마 값 및 크로마 값의 2개의 쌍이 판정된다:
1. 최대 값을 가진 N개의 다운샘플링된 이웃 루마 샘플 및 최대 값을 가진 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 N개의 재구성된 이웃 크로마 샘플, 그리고 최소 값을 가진 하나의 다운샘플링된 이웃 루마 샘플 및 최소 값을 가진 다운샘플링된 이웃 루마 샘플에 대응하는 하나의 재구성된 이웃 크로마 샘플;
2. 최대 값을 가진 하나의 다운샘플링된 이웃 루마 샘플 및 최대 값을 가진 다운샘플링된 이웃 루마 샘플에 대응하는 하나의 재구성된 이웃 크로마 샘플, 그리고 최소 값을 가진 M개의 다운샘플링된 이웃 루마 샘플 및 최소 값을 가진 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 M개의 재구성된 이웃 크로마 샘플, 그리고
3. 최대 값을 가진 N개의 다운샘플링된 이웃 루마 샘플 및 최대 값을 가진 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 N개의 재구성된 이웃 크로마 샘플, 그리고 최소 값을 가진 M개의 다운샘플링된 이웃 루마 샘플 및 최소 값을 가진 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 M개의 재구성된 이웃 크로마 샘플, 여기서 M, N은 양의 정수이고 1보다 큼.
단계(2540)에서, 루마 값 및 크로마 값의 2개의 쌍에 기반하여 하나 이상의 선형 모델 파라미터가 판정된다.
단계(2550)에서, 예측 블록이 하나 이상의 선형 모델 파라미터에 기반하여 판정되는데, 예를 들어, 크로마 블록(901)의 예측된 크로마 값은 선형 모델 파라미터 및 다운샘플링된 루마 블록(1212, 1312, 1412 및 1512)에 기반하여 생성된다.
단계(2560)에서, 크로마 블록(901)이 예측 블록에 기반하여 재구성된다. 예를 들어, 크로마 블록(901)을 재구성하기 위해 잔차 블록에 예측 블록을 가산하는 것이다.
CCIP_A 모드(1700)를 사용하는 MDLM 인트라 예측의 경우에, 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 재구성된 루마 샘플을 포함하나 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함하지 않음에 유의하여야 한다. CCIP_L 모드(1800)를 사용하는 MDLM 인트라 예측의 경우에, 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 재구성된 루마 샘플을 포함하지 않고 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함한다. CCLM 인트라 예측의 경우에, 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 재구성된 루마 샘플 및 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함한다.
도 26는 비디오 데이터를 인코딩하는 예시적인 방법(260)의 흐름도이다. 단계(2610)에서, 크로마 블록(901)에 대응하는 루마 블록(911)이 판정된다.
단계(2620)에서, 재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 세트가 판정되는데, 재구성된 이웃 루마 샘플은 루마 블록 위에 있는 복수의 재구성된 루마 샘플 및/또는 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함한다.
단계(2630)에서, 최대 값을 가진 N개의 다운샘플링된 이웃 루마 샘플 및/또는 최소 값을 가진 M개의 다운샘플링된 이웃 루마 샘플이 재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 세트 내에 포함된 경우에, 최대 값을 가진 N개의 다운샘플링된 이웃 루마 샘플 및 최대 값을 가진 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 N개의 재구성된 이웃 크로마 샘플, 그리고/또는 최소 값을 가진 M개의 다운샘플링된 이웃 루마 샘플 및 최소 값을 가진 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 M개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 2개의 쌍이 판정되되, M, N은 양의 정수이고 1보다 크다. 특히, 다음 중 적어도 하나에 따라 루마 값 및 크로마 값의 2개의 쌍이 판정된다:
1. 최대 값을 가진 N개의 다운샘플링된 이웃 루마 샘플 및 최대 값을 가진 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 N개의 재구성된 이웃 크로마 샘플, 그리고 최소 값을 가진 하나의 다운샘플링된 이웃 루마 샘플 및 최소 값을 가진 다운샘플링된 이웃 루마 샘플에 대응하는 하나의 재구성된 이웃 크로마 샘플;
2. 최대 값을 가진 하나의 다운샘플링된 이웃 루마 샘플 및 최대 값을 가진 다운샘플링된 이웃 루마 샘플에 대응하는 하나의 재구성된 이웃 크로마 샘플, 그리고 최소 값을 가진 M개의 다운샘플링된 이웃 루마 샘플 및 최소 값을 가진 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 M개의 재구성된 이웃 크로마 샘플, 그리고
3. 최대 값을 가진 N개의 다운샘플링된 이웃 루마 샘플 및 최대 값을 가진 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 N개의 재구성된 이웃 크로마 샘플, 그리고 최소 값을 가진 M개의 다운샘플링된 이웃 루마 샘플 및 최소 값을 가진 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 M개의 재구성된 이웃 크로마 샘플, 여기서 M, N은 양의 정수이고 1보다 큼.
단계(2640)에서, 루마 값 및 크로마 값의 2개의 쌍에 기반하여 하나 이상의 선형 모델 파라미터가 판정된다
단계(2650)에서, 크로마 블록(901)의 예측 블록이 하나 이상의 선형 모델 파라미터에 기반하여 판정되는데, 예를 들어, 크로마 블록(901)의 예측된 크로마 값은 선형 모델 파라미터 및 다운샘플링된 루마 블록(1212, 1312, 1412 및 1512)에 기반하여 생성된다.
단계(2660)에서, 크로마 블록(901)이 예측 블록에 기반하여 인코딩된다. 크로마 블록 및 예측 블록 간의 잔차 데이터가 인코딩되고 인코딩된 잔차 데이터를 포함하는 비트스트림이 생성된다. 예를 들어, 잔차 블록(잔차 데이터)을 획득하기 위해 크로마 블록(901)으로부터 예측 블록을 감산하는 것 및 인코딩된 잔차 데이터를 포함하는 비트스트림을 생성하는 것이다.
CCIP_A 모드(1700)를 사용하는 MDLM 인트라 예측의 경우에, 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 재구성된 루마 샘플을 포함하나 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함하지 않음에 유의하여야 한다. CCIP_L 모드(1800)를 사용하는 MDLM 인트라 예측의 경우에, 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 재구성된 루마 샘플을 포함하지 않고 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함한다. CCLM 인트라 예측의 경우에, 재구성된 이웃 루마 샘플의 세트는 루마 블록 위에 있는 복수의 재구성된 루마 샘플 및 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함한다.
하나 이상의 예에서, 기술된 기능은 하드웨어, 소프트웨어, 펌웨어, 또는 이의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능은 컴퓨터 판독가능 매체 상에 하나 이상의 명령어 또는 코드로서 저장되거나 이를 통하여 송신되고 하드웨어 기반 처리 유닛에 의해 실행될 수 있다. 컴퓨터 판독가능 매체는 데이터 저장 매체와 같은 유형적 매체(tangible medium)에 대응하는 컴퓨터 판독가능 저장 매체, 또는, 가령, 통신 프로토콜에 따라, 하나의 장소에서 다른 장소로의 컴퓨터 프로그램의 전송을 가능하게 하는 임의의 매체를 포함하는 통신 매체를 포함할 수 있다. 이 방식으로, 컴퓨터 판독가능 매체는 일반적으로 (1) 비일시적인 유형적 컴퓨터 판독가능 저장 매체 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 이 개시에 기술된 기법의 구현을 위한 명령어, 코드 및/또는 데이터 구조를 인출하기 위해 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 액세스될 수 있는 임의의 가용 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수 있다.
한정이 아니고 예로서, 그러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기 저장 디바이스, 플래쉬 메모리, 또는 요망되는 프로그램 코드를 명령어 또는 데이터 구조의 형태로 저장하는 데에 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결이 컴퓨터 판독가능 매체로 적절히 칭해진다. 예를 들어, 동축 케이블(coaxial cable), 광섬유 케이블(fiber optic cable), 꼬임쌍선(twisted pair), 디지털 가입자 회선(Digital Subscriber Line: DSL), 또는 무선 기술, 예를 들면 적외선(infrared), 무전(radio) 및 마이크로파(microwave)를 사용하여 웹사이트, 서버, 또는 다른 원격 소스(remote source)로부터 명령어가 송신되는 경우, 동축 케이블, 광섬유 케이블, 꼬임쌍선, DSL, 또는 무선 기술, 예를 들면 적외선, 무전 및 마이크로파는 매체의 정의 내에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체 및 데이터 저장 매체는 연결, 반송파, 신호, 또는 다른 일시적 매체를 포함하지 않고, 대신에 비일시적, 유형적 저장 매체에 지향됨이 이해되어야 한다. 디스크(disk) 및 디스크(disc)는, 본 문서에서 사용되는 바와 같이, 콤팩트 디스크(Compact Disc: CD), 레이저 디스크(laser disc), 광학 디스크(optical disc), 디지털 다용도 디스크(Digital Versatile Disc: DVD), 플로피 디스크(floppy disk) 및 블루레이 디스크(Blu-ray disc)를 포함하는데, 디스크(disk)는 통상 데이터를 자기적으로 재현하는 반면, 디스크(disc)는 레이저로써 광학적으로 데이터를 재현한다. 이상의 것의 조합이 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
명령어는 하나 이상의 프로세서, 예를 들면 하나 이상의 디지털 신호 프로세서(Digital Signal Processor: DSP), 일반 목적 마이크로프로세서, 애플리케이션 특정 집적 회로(Application Specific Integrated Circuit: ASIC), 필드 프로그램가능 로직 어레이(Field Programmable Logic Array: FPGA), 또는 다른 균등한 집적 또는 이산 로직 회로부에 의해 실행될 수 있다. 이에 따라, 본 문서에서 사용되는 바와 같은 용어 "프로세서"는 전술된 구조 중 임의의 것 또는 본 문서에 기술된 기법의 구현에 적합한 임의의 다른 구조를 지칭할 수 있다. 추가로, 몇몇 측면에서, 본 문서에 기술된 기능은 조합된 코덱 내에 포함되거나, 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈 내에 제공될 수 있다. 또한, 기법은 하나 이상의 회로 또는 로직 요소 내에 온전히 구현될 수 있다.
이 개시의 기법은 무선 핸드세트, 집적 회로(Integrated Circuit: IC) 또는 IC의 세트(가령, 칩셋(chip set))를 포함하는 매우 다양한 디바이스 또는 장치 내에 구현될 수 있다. 개시된 기법을 수행하도록 구성된 디바이스의 기능적 측면을 강조하기 위해 다양한 컴포넌트, 모듈, 또는 유닛이 이 개시에서 기술되나, 상이한 하드웨어 유닛에 의한 실현을 반드시 요구하지는 않는다. 오히려, 앞서 기술된 바와 같이, 다양한 유닛이 코덱 하드웨어 유닛 내에 조합되거나, 적합한 소프트웨어 및/또는 펌웨어와 함께, 앞서 기술된 바와 같은 하나 이상의 프로세서를 포함하는, 연동되는(inter-operative) 하드웨어 유닛의 모음(collection)에 의해 제공될 수 있다.
몇 개의 실시예가 본 개시에 제공되었으나, 개시된 시스템 및 방법은 본 개시의 사상 또는 범위로부터 벗어나지 않고서 많은 다른 구체적인 형태로 체현될 수 있음이 이해되어야 한다. 본 예는 제한적이지 않고 예시적인 것으로 간주되어야 하며, 의도는 본 문서에 주어진 세부사항에 한정되지 않는다. 예를 들어, 다양한 요소 또는 컴포넌트가 다른 시스템 내에 조합되거나 통합될 수 있거나 어떤 특징은 생략될 수 있거나, 구현되지 않을 수 있다.
추가로, 이산 또는 별개인 것으로 다양한 실시예에서 기술되고 예시된 기법, 시스템, 서브시스템 및 방법은 본 개시의 범위로부터 벗어나지 않고서 다른 시스템, 모듈, 기법 또는 방법과 조합되거나 통합될 수 있다. 서로 커플링되거나 직접적으로 커플링되거나 통신하는 것으로 도시되거나 논의된 다른 아이템은 전기적으로든 기계적으로든 또는 다른 식으로든 어떤 인터페이스, 디바이스, 또는 중간 컴포넌트를 통해서 간접적으로 커플링되거나 통신할 수 있다. 변경, 대용 및 변화의 다른 예가 당업자에 의해 규명가능하고 본 문서에 개시된 사상 및 범위로부터 벗어나지 않고서 행해질 수 있다.

Claims (103)

  1. 비디오 데이터를 디코딩하는 방법으로서,
    크로마 블록(chroma block)에 대응하는 루마 블록(luma block)을 판정하는 단계와,
    재구성된 이웃 루마 샘플의 다운샘플링된(down-sampled) 샘플의 세트를 판정하는 단계 - 상기 재구성된 이웃 루마 샘플은 상기 루마 블록 위에 있는 복수의 재구성된 루마 샘플 또는 상기 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함함 - 와,
    상기 세트의 N개의 다운샘플링된 이웃 루마 샘플 및 상기 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 N개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 제1 쌍을 판정하는 단계 - N은 1보다 큰 양의 정수이고, 상기 N개의 다운샘플링된 이웃 루마 샘플의 최소 값은 상기 세트의 (상기 세트 내의 다운샘플링된 이웃 루마 샘플의 개수 마이너스 N 개의) 나머지 다운샘플링된 이웃 루마 샘플의 각각의 루마 값보다 더 작지 않음 - 와,
    상기 세트의 M개의 다운샘플링된 이웃 루마 샘플 및 상기 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 M개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 제2 쌍을 판정하는 단계 - M은 1보다 큰 양의 정수이고, 상기 M개의 다운샘플링된 이웃 루마 샘플의 최대 값은 상기 세트의 (상기 세트 내의 다운샘플링된 이웃 루마 샘플의 개수 마이너스 M 개의) 나머지 다운샘플링된 이웃 루마 샘플의 각각의 루마 값보다 더 크지 않음 - 와,
    루마 값 및 크로마 값의 상기 제1 및 제2 쌍에 기반하여 하나 이상의 선형 모델 파라미터를 판정하는 단계와,
    상기 하나 이상의 선형 모델 파라미터에 기반하여 예측 블록(predictive block)을 판정하는 단계와,
    상기 예측 블록에 기반하여 상기 크로마 블록을 재구성하는 단계를 포함하는,
    방법.
  2. 비디오 데이터를 디코딩하는 방법으로서,
    크로마 블록에 대응하는 루마 블록을 판정하는 단계와,
    재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 세트를 판정하는 단계 - 상기 재구성된 이웃 루마 샘플은 상기 루마 블록 위에 있는 복수의 재구성된 루마 샘플 및 상기 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함함 - 와,
    상기 세트의 N개의 다운샘플링된 이웃 루마 샘플 및 상기 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 N개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 제1 쌍을 판정하는 단계 - N은 1보다 큰 양의 정수이고, 상기 N개의 다운샘플링된 이웃 루마 샘플의 최소 값은 상기 세트의 (상기 세트 내의 다운샘플링된 이웃 루마 샘플의 개수 마이너스 N 개의) 나머지 다운샘플링된 이웃 루마 샘플의 각각의 루마 값보다 더 작지 않음 - 와,
    상기 세트의 M개의 다운샘플링된 이웃 루마 샘플 및 상기 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 M개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 제2 쌍을 판정하는 단계 - M은 1보다 큰 양의 정수이고, 상기 M개의 다운샘플링된 이웃 루마 샘플의 최대 값은 상기 세트의 (상기 세트 내의 다운샘플링된 이웃 루마 샘플의 개수 마이너스 M 개의) 나머지 다운샘플링된 이웃 루마 샘플의 각각의 루마 값보다 더 크지 않음 - 와,
    루마 값 및 크로마 값의 상기 제1 및 제2 쌍에 기반하여 하나 이상의 선형 모델 파라미터를 판정하는 단계와,
    상기 하나 이상의 선형 모델 파라미터에 기반하여 예측 블록을 판정하는 단계와,
    상기 예측 블록에 기반하여 상기 크로마 블록을 재구성하는 단계를 포함하는,
    방법.
  3. 제1항 또는 제2항에 있어서,
    재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 상기 세트는,
    상기 N개의 다운샘플링된 이웃 루마 샘플 및 상기 M개의 다운샘플링된 이웃 루마 샘플로 이루어지고,
    N 및 M의 합은 상기 세트 내 다운샘플링된 이웃 루마 샘플의 개수와 같은,
    방법.
  4. 제1항 또는 제2항에 있어서,
    루마 값 및 크로마 값의 상기 제1 쌍의 루마 값은 상기 N개의 다운샘플링된 이웃 루마 샘플의 평균 루마 값이고,
    루마 값 및 크로마 값의 상기 제1 쌍의 크로마 값은 상기 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 상기 N개의 재구성된 이웃 크로마 샘플의 평균 크로마 값이고,
    루마 값 및 크로마 값의 상기 제2 쌍의 루마 값은 상기 M개의 다운샘플링된 이웃 루마 샘플의 평균 루마 값이고,
    루마 값 및 크로마 값의 상기 제2 쌍의 크로마 값은 상기 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 상기 M개의 재구성된 이웃 크로마 샘플의 평균 크로마 값인,
    방법.
  5. 제1항 또는 제2항에 있어서,
    루마 값 및 크로마 값의 상기 제1 쌍의 루마 값은 제1 루마 값 범위 내의 상기 N개의 다운샘플링된 이웃 루마 샘플의 평균 루마 값이고, 루마 값 및 크로마 값의 상기 제1 쌍의 크로마 값은 상기 제1 루마 값 범위 내의 상기 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 상기 N개의 재구성된 이웃 크로마 샘플의 평균 크로마 값이고,
    루마 값 및 크로마 값의 상기 제2 쌍의 루마 값은 제2 루마 값 범위 내의 상기 M개의 다운샘플링된 이웃 루마 샘플의 평균 루마 값이고, 루마 값 및 크로마 값의 상기 제2 쌍의 크로마 값은 상기 제2 루마 값 범위 내의 상기 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 상기 M개의 재구성된 이웃 크로마 샘플의 평균 크로마 값인,
    방법.
  6. 제5항에 있어서,
    상기 제1 루마 값 범위는 [MaxLumaValue-T1, MaxLumaValue]의 범위이고,
    상기 제2 루마 값 범위는 [MinLumaValue, MinLumaValue+T2]의 범위이되,
    MaxLumaValue 및 MinLumaValue는 각각 재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 상기 세트 내의 최대 루마 값 및 최소 루마 값을 나타내고, T1, T2 는 사전정의된 임계인,
    방법.
  7. 제1항 또는 제2항에 있어서,
    M 및 N은 같은,
    방법.
  8. 제7항에 있어서,
    M=N=2인,
    방법.
  9. 제1항 또는 제2항에 있어서,
    M 및 N은 상기 루마 블록의 블록 크기에 기반하여 정의된,
    방법.
  10. 제1항 또는 제2항에 있어서,
    M=(W+H)>>t,
    N=(W+H)>>r 이되,
    t 및 r은 우측 쉬프트 비트의 개수이고, W는 상기 루마 블록의 폭을 나타내고 H는 상기 루마 블록의 높이를 나타내는,
    방법.
  11. 제1항 또는 제2항에 있어서,
    상기 재구성된 이웃 루마 샘플은,
    상기 루마 블록 외부의 상단 우측 이웃 루마 샘플 및 상기 루마 블록 외부의 상기 상단 우측 이웃 루마 샘플 우측에 있는 루마 샘플,
    상기 루마 블록 외부의 좌측 하단 이웃 루마 샘플 및 상기 루마 블록 외부의 상기 좌측 하단 이웃 루마 샘플의 아래에 있는 루마 샘플, 또는
    양측 모두를 포함하는,
    방법.
  12. 제1항 또는 제2항에 있어서,
    상기 루마 블록 위에 있는 상기 복수의 재구성된 루마 샘플은 각자의 상단 경계에 인접한 재구성된 이웃 루마 샘플이고, 상기 루마 블록 좌측에 있는 상기 복수의 재구성된 루마 샘플은 각자의 좌측 경계에 인접한 재구성된 이웃 루마 샘플인,
    방법.
  13. 제1항 또는 제2항에 있어서,
    상기 재구성된 이웃 루마 샘플은, 상기 루마 블록 외부의 상단 좌측 이웃 루마 샘플의 위에 있는 루마 샘플, 상기 상단 좌측 이웃 루마 샘플의 좌측에 있는 루마 샘플, 또는 양측 모두를 배제하는,
    방법.
  14. 제1항 또는 제2항에 있어서,
    상기 재구성된 이웃 루마 샘플은 재구성된 이웃 루마 샘플의 제1 세트 및 재구성된 이웃 루마 샘플의 제2 세트를 포함하고,
    재구성된 이웃 루마 샘플의 상기 제1 세트는 루마 값이 임계 이하인 재구성된 이웃 루마 샘플을 포함하고, 재구성된 이웃 루마 샘플의 상기 제2 세트는 루마 값이 상기 임계보다 큰 재구성된 이웃 루마 샘플을 포함하는,
    방법.
  15. 제1항 또는 제2항에 있어서,
    상기 재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 상기 세트는 상기 재구성된 이웃 루마 샘플에 대한 다운샘플링에 의해 획득되는,
    방법.
  16. 비디오 데이터를 인코딩하는 방법으로서,
    크로마 블록에 대응하는 루마 블록을 판정하는 단계와,
    재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 세트를 판정하는 단계 - 상기 재구성된 이웃 루마 샘플은 상기 루마 블록 위에 있는 복수의 재구성된 루마 샘플 또는 상기 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함함 - 와,
    상기 세트의 N개의 다운샘플링된 이웃 루마 샘플 및 상기 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 N개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 제1 쌍을 판정하는 단계 - N은 1보다 큰 양의 정수이고, 상기 N개의 다운샘플링된 이웃 루마 샘플의 최소 값은 상기 세트의 (상기 세트 내의 다운샘플링된 이웃 루마 샘플의 개수 마이너스 N 개의) 나머지 다운샘플링된 이웃 루마 샘플의 각각의 루마 값보다 더 작지 않음 - 와,
    상기 세트의 M개의 다운샘플링된 이웃 루마 샘플 및 상기 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 M개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 제2 쌍을 판정하는 단계 - M은 1보다 큰 양의 정수이고, 상기 M개의 다운샘플링된 이웃 루마 샘플의 최대 값은 상기 세트의 (상기 세트 내의 다운샘플링된 이웃 루마 샘플의 개수 마이너스 M 개의) 나머지 다운샘플링된 이웃 루마 샘플의 각각의 루마 값보다 더 크지 않음 - 와,
    루마 값 및 크로마 값의 상기 제1 및 제2 쌍에 기반하여 하나 이상의 선형 모델 파라미터를 판정하는 단계와,
    상기 하나 이상의 선형 모델 파라미터에 기반하여 예측 블록을 판정하는 단계와,
    상기 예측 블록에 기반하여 상기 크로마 블록을 인코딩하는 단계를 포함하는,
    방법.
  17. 비디오 데이터를 인코딩하는 방법으로서,
    크로마 블록에 대응하는 루마 블록을 판정하는 단계와,
    재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 세트를 판정하는 단계 - 상기 재구성된 이웃 루마 샘플은 상기 루마 블록 위에 있는 복수의 재구성된 루마 샘플 및 상기 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함함 - 와,
    상기 세트의 N개의 다운샘플링된 이웃 루마 샘플 및 상기 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 N개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 제1 쌍을 판정하는 단계 - N은 1보다 큰 양의 정수이고, 상기 N개의 다운샘플링된 이웃 루마 샘플의 최소 값은 상기 세트의 (상기 세트 내의 다운샘플링된 이웃 루마 샘플의 개수 마이너스 N 개의) 나머지 다운샘플링된 이웃 루마 샘플의 각각의 루마 값보다 더 작지 않음 - 와,
    상기 세트의 M개의 다운샘플링된 이웃 루마 샘플 및 상기 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 M개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 제2 쌍을 판정하는 단계 - M은 1보다 큰 양의 정수이고, 상기 M개의 다운샘플링된 이웃 루마 샘플의 최대 값은 상기 세트의 (상기 세트 내의 다운샘플링된 이웃 루마 샘플의 개수 마이너스 M 개의) 나머지 다운샘플링된 이웃 루마 샘플의 각각의 루마 값보다 더 크지 않음 - 와,
    루마 값 및 크로마 값의 상기 제1 및 제2 쌍에 기반하여 하나 이상의 선형 모델 파라미터를 판정하는 단계와,
    상기 하나 이상의 선형 모델 파라미터에 기반하여 예측 블록을 판정하는 단계와,
    상기 예측 블록에 기반하여 상기 크로마 블록을 인코딩하는 단계를 포함하는,
    방법.
  18. 제16항 또는 제17항에 있어서,
    재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 상기 세트는,
    상기 N개의 다운샘플링된 이웃 루마 샘플 및 상기 M개의 다운샘플링된 이웃 루마 샘플로 이루어지고,
    N 및 M의 합은 상기 세트 내 다운샘플링된 이웃 루마 샘플의 개수와 같은,
    방법.
  19. 제16항 또는 제17항에 있어서,
    루마 값 및 크로마 값의 상기 제1 쌍의 루마 값은 상기 N개의 다운샘플링된 이웃 루마 샘플의 평균 루마 값이고, 루마 값 및 크로마 값의 상기 제1 쌍의 크로마 값은 상기 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 상기 N개의 재구성된 이웃 크로마 샘플의 평균 크로마 값이고,
    루마 값 및 크로마 값의 상기 제2 쌍의 루마 값은 상기 M개의 다운샘플링된 이웃 루마 샘플의 평균 루마 값이고, 루마 값 및 크로마 값의 상기 제2 쌍의 크로마 값은 상기 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 상기 M개의 재구성된 이웃 크로마 샘플의 평균 크로마 값인,
    방법.
  20. 제16항 또는 제17항에 있어서,
    루마 값 및 크로마 값의 상기 제1 쌍의 루마 값은 제1 루마 값 범위 내의 상기 N개의 다운샘플링된 이웃 루마 샘플의 평균 루마 값이고, 루마 값 및 크로마 값의 상기 제1 쌍의 크로마 값은 상기 제1 루마 값 범위 내의 상기 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 상기 N개의 재구성된 이웃 크로마 샘플의 평균 크로마 값이고,
    루마 값 및 크로마 값의 상기 제2 쌍의 루마 값은 제2 루마 값 범위 내의 상기 M개의 다운샘플링된 이웃 루마 샘플의 평균 루마 값이고, 루마 값 및 크로마 값의 상기 제2 쌍의 크로마 값은 상기 제2 루마 값 범위 내의 상기 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 상기 M개의 재구성된 이웃 크로마 샘플의 평균 크로마 값인,
    방법.
  21. 제20항에 있어서,
    상기 제1 루마 값 범위는 [MaxLumaValue-T1, MaxLumaValue]의 범위이거나,
    상기 제2 루마 값 범위는 [MinLumaValue, MinLumaValue+T2]의 범위이거나,
    상기 제1 루마 값 범위는 [MaxLumaValue-T1, MaxLumaValue]의 범위이고 상기 제2 루마 값 범위는 [MinLumaValue, MinLumaValue+T2]의 범위이되,
    MaxLumaValue 및 MinLumaValue는 각각 재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 상기 세트 내의 최대 루마 값 및 최소 루마 값을 나타내고, T1, T2 는 사전정의된 임계인,
    방법.
  22. 제16항 또는 제17항에 있어서,
    M 및 N은 같은,
    방법.
  23. 제22항에 있어서,
    M=N=2인,
    방법.
  24. 제16항 또는 제17항에 있어서,
    M 및 N은 상기 루마 블록의 블록 크기에 기반하여 정의된,
    방법.
  25. 제16항 또는 제17항에 있어서,
    M=(W+H)>>t,
    N=(W+H)>>r 이되,
    t 및 r은 우측 쉬프트 비트의 각자의 개수이고, W는 상기 루마 블록의 폭을 나타내고 H는 상기 루마 블록의 높이를 나타내는,
    방법.
  26. 제16항 또는 제17항에 있어서,
    상기 재구성된 이웃 루마 샘플은,
    상기 루마 블록 외부의 상단 우측 이웃 루마 샘플 및 상기 루마 블록 외부의 상기 상단 우측 이웃 루마 샘플 우측에 있는 루마 샘플,
    상기 루마 블록 외부의 좌측 하단 이웃 루마 샘플 및 상기 루마 블록 외부의 상기 좌측 하단 이웃 루마 샘플의 아래에 있는 루마 샘플, 또는
    양측 모두를 포함하는,
    방법.
  27. 제16항 또는 제17항에 있어서,
    상기 루마 블록 위에 있는 상기 복수의 재구성된 루마 샘플은 각자의 상단 경계에 인접한 재구성된 이웃 루마 샘플이고, 상기 루마 블록 좌측에 있는 상기 복수의 재구성된 루마 샘플은 각자의 좌측 경계에 인접한 재구성된 이웃 루마 샘플인,
    방법.
  28. 제16항 또는 제17항에 있어서,
    상기 재구성된 이웃 루마 샘플은, 상기 루마 블록 외부의 상단 좌측 이웃 루마 샘플의 위에 있는 루마 샘플, 상기 상단 좌측 이웃 루마 샘플의 좌측에 있는 루마 샘플, 또는 양측 모두를 배제하는,
    방법.
  29. 제16항 또는 제17항에 있어서,
    상기 재구성된 이웃 루마 샘플은 재구성된 이웃 루마 샘플의 제1 세트 및 재구성된 이웃 루마 샘플의 제2 세트를 포함하고,
    재구성된 이웃 루마 샘플의 상기 제1 세트는 루마 값이 임계 이하인 재구성된 이웃 루마 샘플을 포함하고, 재구성된 이웃 루마 샘플의 상기 제2 세트는 루마 값이 상기 임계보다 큰 재구성된 이웃 루마 샘플을 포함하는,
    방법.
  30. 제16항 또는 제17항에 있어서,
    상기 재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 상기 세트는 상기 재구성된 이웃 루마 샘플에 대한 다운샘플링에 의해 획득되는,
    방법.
  31. 비디오 데이터를 디코딩하는 디바이스로서,
    비디오 데이터 메모리와, 비디오 디코더를 포함하되,
    상기 비디오 디코더는,
    크로마 블록에 대응하는 루마 블록을 판정하고,
    재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 세트를 판정 - 상기 재구성된 이웃 루마 샘플은 상기 루마 블록 위에 있는 복수의 재구성된 루마 샘플 또는 상기 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함함 - 하고,
    상기 세트의 N개의 다운샘플링된 이웃 루마 샘플 및 상기 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 N개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 제1 쌍을 판정 - N은 1보다 큰 양의 정수이고, 상기 N개의 다운샘플링된 이웃 루마 샘플의 최소 값은 상기 세트의 (상기 세트 내의 다운샘플링된 이웃 루마 샘플의 개수 마이너스 N 개의) 나머지 다운샘플링된 이웃 루마 샘플의 각각의 루마 값보다 더 작지 않음 - 하고,
    상기 세트의 M개의 다운샘플링된 이웃 루마 샘플 및 상기 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 M개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 제2 쌍을 판정 - M은 1보다 큰 양의 정수이고, 상기 M개의 다운샘플링된 이웃 루마 샘플의 최대 값은 상기 세트의 (상기 세트 내의 다운샘플링된 이웃 루마 샘플의 개수 마이너스 M 개의) 나머지 다운샘플링된 이웃 루마 샘플의 각각의 루마 값보다 더 크지 않음 - 하고,
    루마 값 및 크로마 값의 상기 제1 및 제2 쌍에 기반하여 하나 이상의 선형 모델 파라미터를 판정하고,
    상기 하나 이상의 선형 모델 파라미터에 기반하여 예측 블록을 판정하고,
    상기 예측 블록에 기반하여 상기 크로마 블록을 재구성하도록 구성되는,
    디바이스.
  32. 비디오 데이터를 디코딩하는 디바이스로서,
    비디오 데이터 메모리와, 비디오 디코더를 포함하되,
    상기 비디오 디코더는,
    크로마 블록에 대응하는 루마 블록을 판정하고,
    재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 세트를 판정 - 상기 재구성된 이웃 루마 샘플은 상기 루마 블록 위에 있는 복수의 재구성된 루마 샘플 및 상기 루마 블록 좌측에 있는 복수의 재구성된 루마 샘플을 포함함 - 하고,
    상기 세트의 N개의 다운샘플링된 이웃 루마 샘플 및 상기 N개의 다운샘플링된 이웃 루마 샘플에 대응하는 N개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 제1 쌍을 판정 - N은 1보다 큰 양의 정수이고, 상기 N개의 다운샘플링된 이웃 루마 샘플의 최소 값은 상기 세트의 (상기 세트 내의 다운샘플링된 이웃 루마 샘플의 개수 마이너스 N 개의) 나머지 다운샘플링된 이웃 루마 샘플의 각각의 루마 값보다 더 작지 않음 - 하고,
    상기 세트의 M개의 다운샘플링된 이웃 루마 샘플 및 상기 M개의 다운샘플링된 이웃 루마 샘플에 대응하는 M개의 재구성된 이웃 크로마 샘플에 따라 루마 값 및 크로마 값의 제2 쌍을 판정 - M은 1보다 큰 양의 정수이고, 상기 M개의 다운샘플링된 이웃 루마 샘플의 최대 값은 상기 세트의 (상기 세트 내의 다운샘플링된 이웃 루마 샘플의 개수 마이너스 M 개의) 나머지 다운샘플링된 이웃 루마 샘플의 각각의 루마 값보다 더 크지 않음 - 하고,
    루마 값 및 크로마 값의 상기 제1 및 제2 쌍에 기반하여 하나 이상의 선형 모델 파라미터를 판정하고,
    상기 하나 이상의 선형 모델 파라미터에 기반하여 예측 블록을 판정하고,
    상기 예측 블록에 기반하여 상기 크로마 블록을 재구성하도록 구성되는,
    디바이스.
  33. 제31항 또는 제32항에 있어서,재구성된 이웃 루마 샘플의 다운샘플링된 샘플의 상기 세트는,
    상기 N개의 다운샘플링된 이웃 루마 샘플 및 상기 M개의 다운샘플링된 이웃 루마 샘플로 이루어지고,
    N 및 M의 합은 상기 세트 내 다운샘플링된 이웃 루마 샘플의 개수와 같은,
    디바이스.
  34. 제31항 또는 제32항에 있어서,
    M 및 N은 같은,
    디바이스.
  35. 제34항에 있어서,
    M=N=2인,
    디바이스.
  36. 디코딩 장치로서,
    명령어를 포함하는 메모리 스토리지(storage)와,
    상기 메모리와 통신하는 하나 이상의 프로세서를 포함하되,
    상기 하나 이상의 프로세서는, 상기 명령어를 실행함으로써, 제1항 또는 제2항에 따른 방법을 수행하는,
    디코딩 장치.
  37. 인코딩 장치로서,
    명령어를 포함하는 메모리 스토리지와,
    상기 메모리와 통신하는 하나 이상의 프로세서를 포함하되,
    상기 하나 이상의 프로세서는, 상기 명령어를 실행함으로써, 제16항 또는 제17항에 따른 방법을 수행하는,
    인코딩 장치.
  38. 컴퓨터 판독가능 저장 매체에 기록된 컴퓨터 프로그램으로서,
    디바이스 내의 프로세서에 의해 실행되는 경우에, 상기 디바이스로 하여금 제1항, 제2항, 제16항 및 제17항 중 어느 한 항에 따른 방법을 수행하게 하는 명령어를 포함하는,
    컴퓨터 프로그램.
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
  67. 삭제
  68. 삭제
  69. 삭제
  70. 삭제
  71. 삭제
  72. 삭제
  73. 삭제
  74. 삭제
  75. 삭제
  76. 삭제
  77. 삭제
  78. 삭제
  79. 삭제
  80. 삭제
  81. 삭제
  82. 삭제
  83. 삭제
  84. 삭제
  85. 삭제
  86. 삭제
  87. 삭제
  88. 삭제
  89. 삭제
  90. 삭제
  91. 삭제
  92. 삭제
  93. 삭제
  94. 삭제
  95. 삭제
  96. 삭제
  97. 삭제
  98. 삭제
  99. 삭제
  100. 삭제
  101. 삭제
  102. 삭제
  103. 삭제
KR1020217004298A 2018-07-16 2019-07-16 비디오 인코더, 비디오 디코더 및 대응하는 인코딩 및 디코딩 방법 KR102483942B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227046193A KR20230008896A (ko) 2018-07-16 2019-07-16 비디오 인코더, 비디오 디코더 및 대응하는 인코딩 및 디코딩 방법

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862698924P 2018-07-16 2018-07-16
US62/698,924 2018-07-16
US201862698991P 2018-07-17 2018-07-17
US62/698,991 2018-07-17
PCT/CN2019/096191 WO2020015648A1 (en) 2018-07-16 2019-07-16 Video encoder, video decoder, and corresponding encoding and decoding methods

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227046193A Division KR20230008896A (ko) 2018-07-16 2019-07-16 비디오 인코더, 비디오 디코더 및 대응하는 인코딩 및 디코딩 방법

Publications (2)

Publication Number Publication Date
KR20210030444A KR20210030444A (ko) 2021-03-17
KR102483942B1 true KR102483942B1 (ko) 2022-12-30

Family

ID=69164978

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217004298A KR102483942B1 (ko) 2018-07-16 2019-07-16 비디오 인코더, 비디오 디코더 및 대응하는 인코딩 및 디코딩 방법
KR1020227046193A KR20230008896A (ko) 2018-07-16 2019-07-16 비디오 인코더, 비디오 디코더 및 대응하는 인코딩 및 디코딩 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020227046193A KR20230008896A (ko) 2018-07-16 2019-07-16 비디오 인코더, 비디오 디코더 및 대응하는 인코딩 및 디코딩 방법

Country Status (24)

Country Link
US (2) US11336907B2 (ko)
EP (2) EP4164225A1 (ko)
JP (2) JP7461925B2 (ko)
KR (2) KR102483942B1 (ko)
CN (2) CN112425173A (ko)
AU (2) AU2019303720B2 (ko)
BR (1) BR112021000694A2 (ko)
CA (2) CA3106468C (ko)
CL (1) CL2021000123A1 (ko)
DK (1) DK3815377T3 (ko)
ES (1) ES2938068T3 (ko)
FI (1) FI3815377T3 (ko)
HR (1) HRP20230288T1 (ko)
HU (1) HUE061422T2 (ko)
IL (1) IL280228B2 (ko)
LT (1) LT3815377T (ko)
MX (1) MX2021000616A (ko)
NZ (1) NZ772305A (ko)
PH (1) PH12021550112A1 (ko)
PL (1) PL3815377T3 (ko)
PT (1) PT3815377T (ko)
SG (1) SG11202100412SA (ko)
SI (1) SI3815377T1 (ko)
WO (1) WO2020015648A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112021000694A2 (pt) 2018-07-16 2021-04-13 Huawei Technologies Co., Ltd. Codificador de vídeo, decodificador de vídeo, e métodos de codificação e decodificação correspondentes
CN117880501A (zh) 2018-10-07 2024-04-12 三星电子株式会社 用于编码或解码视频信号的视频信号处理方法和设备
EP4221220A1 (en) * 2018-10-08 2023-08-02 Beijing Dajia Internet Information Technology Co., Ltd. Simplifications of cross-component linear model
WO2020076142A1 (ko) * 2018-10-12 2020-04-16 주식회사 윌러스표준기술연구소 교차성분 선형 모델을 이용한 비디오 신호 처리 방법 및 장치
CN112335245A (zh) * 2018-10-12 2021-02-05 Oppo广东移动通信有限公司 视频图像分量预测方法及装置、计算机存储介质
WO2020094061A1 (en) * 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Multi-models for intra prediction
CN113170122B (zh) 2018-12-01 2023-06-27 北京字节跳动网络技术有限公司 帧内预测的参数推导
BR112021010886A2 (pt) 2018-12-07 2021-08-31 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Decodificador para decodificação e codificador para codificação com base em bloco de dados, métodos, mídia de armazenamento digital legível por computador e fluxo de dados
AU2019391197B2 (en) 2018-12-07 2023-05-25 Beijing Bytedance Network Technology Co., Ltd. Context-based intra prediction
CN113395520B (zh) 2019-01-02 2023-05-16 Oppo广东移动通信有限公司 解码预测方法、装置及计算机存储介质
AU2020226566A1 (en) 2019-02-24 2021-08-19 Beijing Bytedance Network Technology Co., Ltd. Parameter derivation for intra prediction
CN113767631B (zh) 2019-03-24 2023-12-15 北京字节跳动网络技术有限公司 用于帧内预测的参数推导中的条件
KR20210141683A (ko) * 2019-03-25 2021-11-23 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 이미지 요소의 예측 방법, 인코더, 디코더 및 컴퓨터 저장 매체
CN113497937B (zh) * 2020-03-20 2023-09-05 Oppo广东移动通信有限公司 图像编码方法、图像解码方法及相关装置
CN113747176A (zh) 2020-05-29 2021-12-03 Oppo广东移动通信有限公司 图像编码方法、图像解码方法及相关装置
EP4324208A1 (en) * 2021-04-16 2024-02-21 Beijing Dajia Internet Information Technology Co., Ltd. Video coding using multi-model linear model

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101461501B1 (ko) 2012-01-18 2014-12-01 한국전자통신연구원 영상 부호화 및 복호화 방법 및 장치

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8000390B2 (en) 2006-04-28 2011-08-16 Sharp Laboratories Of America, Inc. Methods and systems for efficient prediction-mode selection
US8488668B2 (en) 2007-06-15 2013-07-16 Qualcomm Incorporated Adaptive coefficient scanning for video coding
CN105635737B (zh) 2010-04-09 2019-03-15 Lg电子株式会社 处理视频数据的方法和装置
US9288500B2 (en) * 2011-05-12 2016-03-15 Texas Instruments Incorporated Luma-based chroma intra-prediction for video coding
KR20120140181A (ko) * 2011-06-20 2012-12-28 한국전자통신연구원 화면내 예측 블록 경계 필터링을 이용한 부호화/복호화 방법 및 그 장치
US9693070B2 (en) * 2011-06-24 2017-06-27 Texas Instruments Incorporated Luma-based chroma intra-prediction for video coding
KR101756843B1 (ko) * 2011-06-28 2017-07-11 삼성전자주식회사 휘도 성분 영상을 이용한 색차 성분 영상의 예측 방법 및 예측 장치
CN104380741B (zh) 2012-01-19 2018-06-05 华为技术有限公司 用于lm帧内预测的参考像素缩减
CN104871537B (zh) * 2013-03-26 2018-03-16 联发科技股份有限公司 色彩间帧内预测的方法
US9648330B2 (en) 2013-07-15 2017-05-09 Qualcomm Incorporated Inter-color component residual prediction
US10455249B2 (en) * 2015-03-20 2019-10-22 Qualcomm Incorporated Downsampling process for linear model prediction mode
US9736335B2 (en) 2015-04-15 2017-08-15 Apple Inc. Techniques for advanced chroma processing
CN106559669B (zh) 2015-09-29 2018-10-09 华为技术有限公司 预测图像编解码方法及装置
WO2017139937A1 (en) * 2016-02-18 2017-08-24 Mediatek Singapore Pte. Ltd. Advanced linear model prediction for chroma coding
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
US10477240B2 (en) * 2016-12-19 2019-11-12 Qualcomm Incorporated Linear model prediction mode with sample accessing for video coding
US10231104B2 (en) 2017-06-08 2019-03-12 T-Mobile Usa, Inc. Proactive and reactive management for devices in a network
MX2020003656A (es) * 2017-10-02 2020-10-12 Arris Entpr Llc Sistema y método para reducir artefactos de bloque y proporcionar eficiencia de codificación mejorada.
GB2567249A (en) * 2017-10-09 2019-04-10 Canon Kk New sample sets and new down-sampling schemes for linear component sample prediction
EP3799428A4 (en) * 2018-07-02 2021-04-14 LG Electronics, Inc. CCLM-BASED INTRA-PREDICTION DEVICE AND PROCESS
EP3815370A4 (en) 2018-07-12 2021-08-11 Huawei Technologies Co., Ltd. INTRAPREDICTION USING COMPONENT LINEAR MODEL IN VIDEO ENCODING
BR112021000694A2 (pt) 2018-07-16 2021-04-13 Huawei Technologies Co., Ltd. Codificador de vídeo, decodificador de vídeo, e métodos de codificação e decodificação correspondentes
WO2020053804A1 (en) * 2018-09-12 2020-03-19 Beijing Bytedance Network Technology Co., Ltd. Downsampling in cross-component linear modeling
EP4221220A1 (en) * 2018-10-08 2023-08-02 Beijing Dajia Internet Information Technology Co., Ltd. Simplifications of cross-component linear model
WO2020094061A1 (en) * 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Multi-models for intra prediction
AU2019391197B2 (en) * 2018-12-07 2023-05-25 Beijing Bytedance Network Technology Co., Ltd. Context-based intra prediction
AU2020226566A1 (en) * 2019-02-24 2021-08-19 Beijing Bytedance Network Technology Co., Ltd. Parameter derivation for intra prediction

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101461501B1 (ko) 2012-01-18 2014-12-01 한국전자통신연구원 영상 부호화 및 복호화 방법 및 장치

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
- Jianle Chen et al. Algorithm Description of Joint Exploration Test Model 7 (JEM 7), Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 7th Meeting: Torino, IT, 13-21 July 2017, JVET-G1001-v1
Geert Van der Auwera et al, Description of Core Experiment 3: Intra Prediction and Mode Coding, JVET of ITU-T and ISO/IEC, JVET-J1023r2_with_markups.docx in JVET-J1023_r2(2018.06.21.)
Jianle Chen et al. Algorithm Description of Joint Exploration Test Model 4, JVET of ITU-T and ISO/IEC 4th Meeting, JVET-D1001_v1(2016.11.19.공개)

Also Published As

Publication number Publication date
ES2938068T3 (es) 2023-04-04
MX2021000616A (es) 2021-07-02
US11336907B2 (en) 2022-05-17
HRP20230288T1 (hr) 2023-05-12
EP3815377A1 (en) 2021-05-05
FI3815377T3 (fi) 2023-03-01
EP3815377B1 (en) 2022-12-28
CN115941942B (zh) 2023-09-01
CN115941942A (zh) 2023-04-07
IL280228B1 (en) 2023-10-01
AU2023204301A1 (en) 2023-07-27
JP2024023503A (ja) 2024-02-21
KR20230008896A (ko) 2023-01-16
WO2020015648A1 (en) 2020-01-23
CA3213840A1 (en) 2020-01-23
DK3815377T3 (da) 2023-04-03
CL2021000123A1 (es) 2021-05-28
CN112425173A (zh) 2021-02-26
PL3815377T3 (pl) 2023-05-08
NZ772305A (en) 2023-06-30
IL280228B2 (en) 2024-02-01
AU2019303720B2 (en) 2023-04-06
IL280228A (en) 2021-03-25
LT3815377T (lt) 2023-04-11
CA3106468A1 (en) 2020-01-23
KR20210030444A (ko) 2021-03-17
US20210136392A1 (en) 2021-05-06
JP2021530917A (ja) 2021-11-11
PT3815377T (pt) 2023-03-30
SI3815377T1 (sl) 2023-05-31
EP3815377A4 (en) 2021-09-15
EP4164225A1 (en) 2023-04-12
AU2019303720A1 (en) 2021-02-11
PH12021550112A1 (en) 2021-09-27
BR112021000694A2 (pt) 2021-04-13
SG11202100412SA (en) 2021-02-25
HUE061422T2 (hu) 2023-06-28
JP7461925B2 (ja) 2024-04-04
CA3106468C (en) 2023-11-07
US20220264123A1 (en) 2022-08-18

Similar Documents

Publication Publication Date Title
KR102483942B1 (ko) 비디오 인코더, 비디오 디코더 및 대응하는 인코딩 및 디코딩 방법
KR102288109B1 (ko) 비디오 압축에서의 양방향 예측
US10728548B2 (en) Processing reference samples used for intra-prediction of a picture block
WO2019057046A1 (en) INTRA WEIGHTED BIDIRECTIONAL PREDICTION
US20190110052A1 (en) Bidirectional intra prediction
US11917152B2 (en) Position dependent spatial varying transform for video coding
JP7201785B2 (ja) ルマ・イントラ・モード・シグナリング
JP2023104953A (ja) ビデオコーディングのための変換ユニット区分方法
KR102502604B1 (ko) 비디오 코딩에서의 경계 블록 파티셔닝
WO2019072210A1 (en) RESTRICTION ON SUB-BLOCK SIZE DEDUCTION FOR AFFINE INTERPREDITION
RU2772813C1 (ru) Видеокодер, видеодекодер и соответствующие способы кодирования и декодирования

Legal Events

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