KR20210064366A - 인트라 예측 방법 및 디바이스 - Google Patents

인트라 예측 방법 및 디바이스 Download PDF

Info

Publication number
KR20210064366A
KR20210064366A KR1020217012967A KR20217012967A KR20210064366A KR 20210064366 A KR20210064366 A KR 20210064366A KR 1020217012967 A KR1020217012967 A KR 1020217012967A KR 20217012967 A KR20217012967 A KR 20217012967A KR 20210064366 A KR20210064366 A KR 20210064366A
Authority
KR
South Korea
Prior art keywords
chroma
luma
block
mode
samples
Prior art date
Application number
KR1020217012967A
Other languages
English (en)
Other versions
KR102608366B1 (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 KR1020237040883A priority Critical patent/KR20230169407A/ko
Publication of KR20210064366A publication Critical patent/KR20210064366A/ko
Application granted granted Critical
Publication of KR102608366B1 publication Critical patent/KR102608366B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/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
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/182Methods 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 pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Color Television Systems (AREA)
  • Image Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

크로스 컴포넌트 선형 예측 모드(CCLM)을 사용하는 인트라 예측 방법은, 현재 크로마 블록에 대응하는 루마 블록을 결정하는 단계와, 현재 크로마 블록의 L개의 이용 가능한 크로마 참조 샘플을 결정하는 것에 기초하여 루마 블록의 루마 참조 샘플을 획득하는 - 루마 블록의 획득된 루마 참조 샘플은 다운샘플링된 루마 참조 샘플임 - 단계와, 루마 참조 샘플 및 루마 참조 샘플에 대응하는 크로마 참조 샘플에 기초하여 선형 모델 계수를 계산하는 단계와, 선형 모델 계수 및 루마 블록의 다운샘플링된 루마 블록의 값에 기초하여 현재 크로마 블록에 대한 예측을 획득하는 단계를 포함한다.

Description

인트라 예측 방법 및 디바이스
관련 출원에 대한 상호 참조
본 특허 출원은 2018년 10월 5일에 출원된 미국 가출원 No. 62/742,266, 2018년 10월 6일에 출원된 미국 가출원 No. 62/742,355, 2018년 10월 6일에 출원된 미국 가출원 No. 62/742,275 및 2018년 10월 6일에 출원된 미국 가출원 No. 62/742,356에 대한 우선권의 이득을 주장한다. 이에 전술한 특허 출원은 그 전문이 참조로 포함된다.
기술 분야
본 개시내용의 실시예는 일반적으로 비디오 코딩 분야에 관한 것으로, 보다 상세하게는 크로스-컴포넌트 선형 모델 예측(Cross-component linear model prediction)(CCLM)을 사용하는 인트라-예측 분야에 관한 것이다.
비교적 짧기도 한 비디오를 묘사하는데 필요한 비디오 데이터의 양은 상당할 수 있으며, 이것은 데이터가 스트리밍되거나 또는 그와 달리 대역폭 용량이 제한된 통신 네트워크를 통해 통신될 때 어려움을 초래할 수 있다. 따라서, 비디오 데이터는 일반적으로 현대 통신 네트워크를 통해 통신되기 전에 압축된다. 메모리 자원이 제한될 수 있기 때문에 비디오가 저장 디바이스에 저장될 때 비디오의 크기가 또한 문제가 될 수 있다. 비디오 압축 디바이스는 전송 또는 저장 전에 종종 소스에서 소프트웨어 및/또는 하드웨어를 사용하여 비디오 데이터를 코딩하여, 디지털 비디오 이미지를 표현하는데 필요한 데이터의 양을 줄인다. 그런 다음 압축된 데이터는 목적지에서 비디오 데이터를 디코딩하는 압축 해제 디바이스에 의해 수신된다. 네트워크 자원이 제한되어 있고 더 높은 비디오 품질의 요구가 계속 증가함에 따라, 이미지 품질을 거의 또는 전혀 희생하지 않고 압축 비율을 개선하는 개선된 압축 및 압축 해제 기술이 바람직하다. 고효율 비디오 코딩(High Efficiency Video Coding)은 ISO/IEC Moving Picture Experts Group 및 ITU-T Video Coding Experts Group에 의해 ISO/IEC 23008-2 MPEG-H Part 2 또는 ITU-T H.265로서 발행된 최신의 비디오 압축이며, 동일한 레벨의 비디오 품질에서 데이터 압축율을 약 두 배로 늘려 제공하거나 또는 동일한 비트 전송율에서 크게 개선된 비디오 품질을 제공한다.
본 개시내용은 크로스-컴포넌트 선형 모델 예측(Cross-Component Linear Model Prediction)(CCLM)의 효율을 개선하고, 그럼으로써 비디오 신호의 코딩 효율을 개선할 수 있는, 이미지를 인코딩 및 디코딩하기 위한 인트라 예측 장치 및 방법을 제공한다. 본 개시내용은 본 파일에 포함된 예 및 청구항에서 자세히 설명된다.
전술한 목적 및 다른 목적은 독립 청구항의 주제에 의해 달성된다. 추가의 구현 형태는 종속 청구항, 상세한 설명 및 도면으로부터 명백해진다.
특정 실시예는 첨부된 독립 청구항에서 개요를 서술하고, 다른 실시예는 종속 청구항에서 개요를 서술한다.
제 1 양태에 따르면, 본 개시내용은 선형 모델을 사용하여 인트라 예측을 수행하기 위한 방법에 관한 것으로, 방법은, 현재 크로마 블록에 대응하는 루마 블록을 결정하는 단계와, 현재 크로마 블록의 L개의 이용 가능한 크로마 참조 샘플을 결정하는 것에 기초하여 루마 블록의 루마 참조 샘플을 획득하는 - 루마 블록의 획득된 루마 참조 샘플은 다운샘플링된 루마 참조 샘플임 - 단계와, 루마 참조 샘플 및 루마 참조 샘플에 대응하는 크로마 참조 샘플에 기초하여 선형 모델 계수를 계산하는 단계와, 선형 모델 계수 및 루마 블록의 다운샘플링된 루마 블록의 값에 기초하여 현재 크로마 블록에 대한 예측을 획득하는 단계를 포함한다. 현재 크로마 블록의 크로마 참조 샘플은 현재 크로마 블록의 인접한 복원된 샘플을 포함한다. L개의 이용 가능한 크로마 참조 샘플은 인접한 복원된 샘플로부터 결정된다. 마찬가지로, 루마 블록의 인접한 샘플 또한 루마 블록의 인접한 복원된 샘플(즉, 인접한 복원된 루마 샘플)을 포함한다. 예에서, 루마 블록의 획득된 루마 참조 샘플은 이용 가능한 크로마 참조 샘플에 기초하여 선택되는 인접한 복원된 루마 샘플을 다운샘플링함으로써 획득된다.
기존의 방법에서, 루마 참조 샘플은 선형 모델 계수를 결정하기 위한 참조 샘플의 이용 가능성을 결정하는데 사용된다. 그러나, 일부 시나리오에서, 이용 가능한 루마 참조 샘플에는 대응하는 크로마 참조 샘플이 없으며, 이것은 코딩 에러에 이르게 할 수 있다. 본 명세서에서 제시된 기술은 크로마 참조 샘플의 이용 가능성을 검사하는 것을 통해 참조 샘플의 이용 가능성을 결정함으로써 이러한 문제를 해결한다. 일부 예에서, 크로마 참조 샘플이 현재 픽처, 슬라이스 또는 타일 외부에 있지 않으며 참조 샘플이 복원되었다면, 크로마 참조 샘플은 이용 가능하다. 일부 예에서, 크로마 참조 샘플이 현재 픽처, 슬라이스 또는 타일 외부에 있지 않고, 참조 샘플이 복원되었고, 인코딩 결정에 기초하여 참조 샘플이 누락되지 않으면, 크로마 참조 샘플은 이용 가능하다. 현재 크로마 블록의 이용 가능한 참조 샘플은 크로마 블록의 이용 가능한 복원된 인접한 샘플일 수 있다. 이용 가능한 크로마 참조 샘플에 대응하는 루마 참조 샘플은 선형 모델 계수를 결정하는데 이용된다.
이와 같은 제 1 양태에 따른 방법의 가능한 구현 형태에서, L개의 이용 가능한 크로마 참조 샘플을 결정하는 단계는, 현재 크로마 블록의 L개의 상측의 인접한 크로마 샘플이 이용 가능하다는 것을 결정하는 단계를 포함하고, 여기서 1 <= L <= W2 이고, W2는 상측 참조 샘플 범위를 표시하고, L 및 W2는 양의 정수이고, L개의 상측의 인접한 크로마 샘플은 이용 가능한 크로마 참조 샘플로서 사용된다.
이와 같은 제 1 양태의 임의의 선행 구현예 또는 제 1 양태에 따른 방법의 가능한 구현 형태에서, W2는 2*W 또는 W+H와 동일하고, W는 현재 크로마 블록의 폭을 나타내고, H는 현재 크로마 블록의 높이를 나타낸다.
이와 같은 제 1 양태의 임의의 선행 구현예 또는 제 1 양태에 따른 방법의 가능한 구현 형태에서, L개의 이용 가능한 크로마 참조 샘플을 결정하는 단계는, 현재 크로마 블록의 L개의 좌측의 인접한 크로마 샘플이 이용 가능하다는 것을 결정하는 단계를 포함하고, 여기서 1 <= L <= H2 이고, H2은 좌측 참조 샘플 범위를 나타내고, L 및 H2는 양의 정수이고, L개의 좌측의 인접한 크로마 샘플은 이용 가능한 크로마 참조 샘플로서 사용된다.
이와 같은 제 1 양태의 임의의 선행 구현예 또는 제 1 양태에 따른 방법의 가능한 구현 형태에서, H2는 2*H 또는 W+H와 동일하고, W는 현재 크로마 블록의 폭을 나타내고, H는 현재 크로마 블록의 높이를 나타낸다.
이와 같은 제 1 양태의 임의의 선행 구현예 또는 제 1 양태에 따른 방법의 가능한 구현 형태에서, L개의 이용 가능한 크로마 참조 샘플을 결정하는 단계는, 현재 크로마 블록의 L1개의 상측의 인접한 크로마 샘플 및 L2개의 좌측의 인접한 크로마 샘플이 이용 가능하다는 것을 결정하는 단계를 포함하고, 여기서 1<= L1<= W2 이고, 1 <= L2 <= H2 이고, W2는 상측 참조 샘플 범위를 표시하고, H2는 좌측 참조 샘플 범위를 표시하고, L1, L2, W2 및 H2는 양의 정수이고, L1+L2=L 이고, L1개의 상측의 인접한 크로마 샘플 및 L2개의 좌측의 인접한 크로마 샘플은 이용 가능한 크로마 참조 샘플로서 사용된다.
이와 같은 제 1 양태의 임의의 선행 구현예 또는 제 1 양태에 따른 방법의 가능한 구현 형태에서, 루마 참조 샘플은 루마 블록 위쪽에 있고 그리고 L개의 이용 가능한 크로마 참조 샘플에 기초하여 선택되는 인접한 샘플만을 다운샘플링함으로써, 또는 루마 블록 좌측에 있고 그리고 L개의 이용 가능한 크로마 참조 샘플에 기초하여 선택되는 인접한 샘플만을 다운샘플링함으로써 획득된다. 예를 들어, L이 4이면, 루마 참조 샘플은 루마 블록 위쪽에 있고 그리고 4개의 이용 가능한 크로마 참조 샘플에 기초하여 선택되는 24개의 인접한 샘플만을 다운샘플링함으로써, 또는 루마 블록 좌측에 있고 그리고 4개의 이용 가능한 크로마 참조 샘플에 기초하여 선택되는 24개의 인접한 샘플만을 다운샘플링함으로써 획득되며, 여기서 다운샘플링 프로세스를 위해 6 탭 필터가 사용된다.
이와 같은 제 1 양태의 임의의 선행 구현예 또는 제 1 양태에 따른 방법의 가능한 구현 형태에서, 루마 블록의 다운샘플링된 루마 블록은 현재 크로마 블록에 대응하는 루마 블록의 복원된 루마 블록을 다운샘플링함으로써 획득된다.
이와 같은 제 1 양태의 임의의 선행 구현예 또는 제 1 양태에 따른 방법의 가능한 구현 형태에서, 루마 참조 샘플이 루마 블록의 위쪽에 있는 인접한 샘플에만 기초하여 획득될 때 및 현재 크로마 블록의 상측 행이 현재 코딩 트리 유닛(coding tree unit)(CTU)의 상측 행과 중첩될 때 루마 블록의 복원된 버전의 인접한 복원된 루마 샘플의 하나의 행만이 루마 참조 샘플을 획득하는데 사용된다.
이와 같은 제 1 양태의 임의의 선행 구현예 또는 제 1 양태에 따른 방법의 가능한 구현 형태에서, 루마 참조 샘플 및 루마 참조 샘플에 대응하는 크로마 참조 샘플에 기초하여 선형 모델 계수를 계산하는 단계는, 루마 참조 샘플에 기초하여 최대 루마 값 및 최소 루마 값을 결정하는 단계와, 최대 루마 값과 연관된 루마 참조 샘플의 위치에 적어도 부분적으로 기초하여 제 1 크로마 값을 획득하는 단계와, 최소 루마 값과 연관된 루마 참조 샘플의 위치에 적어도 일부에 기초하여 제 2 크로마 값을 획득하는 단계와, 제 1 크로마 값, 제 2 크로마 값, 최대 루마 값 및 최소 루마 값에 기초하여 선형 모델 계수를 계산하는 단계를 포함한다.
이와 같은 제 1 양태의 임의의 선행 구현예 또는 제 1 양태에 따른 방법의 가능한 구현 형태에서, 최대 루마 값과 연관된 루마 참조 샘플의 위치에 적어도 부분적으로 기초하여 제 1 크로마 값을 획득하는 단계는 최대 루마 값과 연관된 하나 이상의 루마 참조 샘플의 하나 이상의 위치에 적어도 부분적으로 기초하여 제 1 크로마 값을 획득하는 단계를 포함하고; 최소 루마 값과 연관된 루마 참조 샘플의 위치에 적어도 부분적으로 기초하여 제 2 크로마 값을 획득하는 단계는 최소 루마 값과 연관된 하나 이상의 루마 참조 샘플의 하나 이상의 위치에 적어도 부분적으로 기초하여 제 2 크로마 값을 획득하는 단계를 포함한다.
이와 같은 제 1 양태의 임의의 선행 구현예 또는 제 1 양태에 따른 방법의 가능한 구현 형태에서, 선형 모델 계수(α 및 β)는 아래의 수학식에 기초하여 계산되고
Figure pct00001
여기서
Figure pct00002
는 최대 루마 값을 나타내고,
Figure pct00003
는 제 1 크로마 값을 나타내고,
Figure pct00004
는 최소 루마 값을 나타내며,
Figure pct00005
는 제 2 크로마 값을 나타낸다.
이와 같은 제 1 양태의 임의의 선행 구현예 또는 제 1 양태에 따른 방법의 가능한 구현 형태에서, 현재 크로마 블록에 대한 예측은 아래의 수학식에 기초하여 획득되고,
Figure pct00006
여기서
Figure pct00007
는 현재 크로마 블록의 크로마 샘플의 예측된 값을 나타내고,
Figure pct00008
는 루마 블록의 복원된 루마 블록의 다운샘플링된 루마 블록의 대응하는 루마 샘플의 샘플 값을 나타낸다.
이와 같은 제 1 양태의 임의의 선행 구현예 또는 제 1 양태에 따른 방법의 가능한 구현 형태에서, 루마 참조 샘플이 루마 블록에 남아 있는 인접한 샘플에만 기초하여 획득되고 현재 크로마 블록이 현재 코딩 트리 유닛(CTU)의 좌측 경계에 있을 때 복원된 루마 블록의 인접한 복원된 루마 샘플의 하나의 열만이 루마 참조 샘플을 획득하는데 사용된다.
이와 같은 제 1 양태의 임의의 선행 구현예 또는 제 1 양태에 따른 방법의 가능한 구현 형태에서, 선형 모델은 다중 방향 선형 모델(multi-directional linear model)(MDLM)을 포함한다.
제 2 양태에 따르면, 본 개시내용은 선형 모델을 사용하여 인트라 예측을 수행하기 위한 방법에 관한 것으로, 방법은, 현재 크로마 블록에 대응하는 루마 블록을 결정하는 단계와, 현재 크로마 블록의 L개의 이용 가능한 크로마 참조 샘플을 결정하는 것에 기초하여 루마 블록의 루마 참조 샘플을 획득 - 루마 블록의 획득된 루마 참조 샘플은 L개의 이용 가능한 크로마 참조 샘플에 대응하는 루마 블록의 인접한 샘플(즉, 인접한 복원된 루마 샘플)을 다운샘플링함으로써 획득되는 다운샘플링된 루마 참조 샘플임 - 하는 단계와, 루마 참조 샘플 및 루마 참조 샘플에 대응하는 크로마 참조 샘플에 기초하여 선형 모델 계수를 계산하는 단계와, 선형 모델 계수 및 루마 블록의 다운샘플링된 루마 블록의 값에 기초하여 현재 크로마 블록에 대한 예측을 획득하는 단계를 포함한다. 현재 크로마 블록의 크로마 참조 샘플은 현재 크로마 블록의 인접한 복원된 샘플을 포함한다. L개의 이용 가능한 크로마 참조 샘플은 인접한 복원된 샘플로부터 결정된다. 마찬가지로, 루마 블록의 인접한 샘플 또한 루마 블록의 인접한 복원된 샘플(즉, 인접한 복원된 루마 샘플)을 포함한다. 루마 블록의 획득된 루마 참조 샘플은 이용 가능한 크로마 참조 샘플에 대응하는 인접한 복원된 루마 샘플을 다운샘플링함으로써 획득된다.
"이용 가능한 크로마 참조 샘플에 대응하는 인접한 복원된 루마 샘플"에 대해, "인접한 복원된 루마 샘플과 이용 가능한 크로마 참조 샘플" 간의 대응 관계는 "일대일 대응관계"로 제한되지 않고, 인접한 복원된 루마 샘플과 이용 가능한 크로마 참조 샘플 간의 대응 관계는 "M 대 N 대응관계"일 수 있다는 것이 또한 이해될 수 있다. 예를 들어, 다운샘플링을 위해 6 탭 필터가 사용된다면, M=24이고, N=4이다.
제 3 양태에 따르면, 본 발명은 비디오 데이터를 인코딩하기 위한 디바이스에 관한 것으로, 디바이스는, 비디오 데이터 메모리와, 비디오 인코더를 포함하고, 비디오 인코더는, 현재 크로마 블록에 대응하는 루마 블록을 결정하고, 현재 크로마 블록의 L개의 이용 가능한 크로마 참조 샘플을 결정하는 것에 기초하여 (또는 현재 크로마 블록의 L개의 이용 가능한 크로마 참조 샘플을 결정함으로써) 루마 블록의 루마 참조 샘플을 획득 - 루마 블록의 획득된 루마 참조 샘플은 L개의 이용 가능한 크로마 참조 샘플에 대응하는 루마 블록의 인접한 샘플(즉, 인접한 복원된 루마 샘플)을 다운샘플링함으로써 획득되는 다운샘플링된 루마 참조 샘플임 - 하고, 루마 참조 샘플 및 루마 참조 샘플에 대응하는 크로마 참조 샘플에 기초하여 선형 모델에 대한 선형 모델 계수를 계산하고, 선형 모델 계수 및 루마 블록의 다운샘플링된 버전의 값에 기초하여 현재 크로마 블록에 대한 예측을 획득하도록 구성된다. 예를 들어, L이 4이면, 루마 블록의 획득된 루마 참조 샘플은 4개의 이용 가능한 크로마 참조 샘플에 대응하는 루마 블록의 24개 인접한 샘플(즉, 인접한 복원된 루마 샘플)을 다운샘플링함으로써 획득되는 4개의 다운샘플링된 루마 참조 샘플이고, 여기서 다운샘플링 프로세스를 위해 6 탭 필터가 사용된다.
제 4 양태에 따르면, 본 발명은 비디오 데이터를 디코딩하기 위한 디바이스에 관한 것으로, 디바이스는, 비디오 데이터 메모리와, 비디오 디코더를 포함하고, 비디오 디코더는, 현재 크로마 블록에 대응하는 루마 블록을 결정하고, 현재 크로마 블록의 L개의 이용 가능한 크로마 참조 샘플을 결정하는 것에 기초하여 루마 블록의 루마 참조 샘플을 획득 - 루마 블록의 획득된 루마 참조 샘플은 다운샘플링된 루마 참조 샘플임 - 하고, 루마 참조 샘플 및 루마 참조 샘플에 대응하는 크로마 참조 샘플에 기초하여 선형 모델 계수를 계산하고, 선형 모델 계수 및 루마 블록의 다운샘플링된 루마 블록의 값에 기초하여 현재 크로마 블록에 대한 예측을 획득하도록 구성된다.
기존의 접근 방식에서, 루마 참조 샘플은 선형 모델 계수를 결정하기 위한 참조 샘플의 이용 가능성을 결정하는데 사용된다. 그러나, 일부 시나리오에서, 이용 가능한 루마 참조 샘플에는 대응하는 크로마 참조 샘플이 없으며, 이것은 코딩 에러에 이르게 할 수 있다. 본 명세서에서 제시된 기술은 크로마 참조 샘플의 이용 가능성을 검사하는 것을 통해 참조 샘플의 이용 가능성을 결정함으로써 이러한 문제를 해결한다. 일부 예에서, 크로마 참조 샘플이 현재 픽처, 슬라이스 또는 타일 외부에 있지 않으며 참조 샘플이 복원되었다면, 크로마 참조 샘플은 이용 가능하다. 일부 예에서, 크로마 참조 샘플이 현재 픽처, 슬라이스 또는 타일 외부에 있지 않고, 참조 샘플이 복원되었고, 인코딩 결정에 기초하여 참조 샘플이 누락되지 않으면, 크로마 참조 샘플은 이용 가능하다. 현재 크로마 블록의 이용 가능한 참조 샘플은 크로마 블록의 이용 가능한 복원된 인접한 샘플(즉, 이용 가능한 복원된 인접한 크로마 샘플)일 수 있다. 이용 가능한 크로마 참조 샘플에 대응하는 루마 참조 샘플은 선형 모델 계수를 결정하는데 활용된다.
이와 같은 제 3 또는 제4 양태에 따른 디바이스의 가능한 구현 형태에서, L개의 이용 가능한 크로마 참조 샘플을 결정하는 것은, 현재 크로마 블록의 L개의 상측의 인접한 크로마 샘플이 이용 가능하다는 것을 결정하는 것을 포함하고, 여기서 1 <= L <= W2 이고, W2는 상측 참조 샘플 범위를 표시하고, L 및 W2는 양의 정수이고, L개의 상측의 인접한 크로마 샘플은 이용 가능한 크로마 참조 샘플로서 사용된다.
이와 같은 제 3 또는 제 4 양태의 임의의 선행 구현예 또는 제 3 또는 제 4 양태에 따른 디바이스의 가능한 구현 형태에서, W2는 2*W 또는 W+H와 동일하고, W는 현재 크로마 블록의 폭을 나타내고, H는 현재 크로마 블록의 높이를 나타낸다.
이와 같은 제 3 또는 제 4 양태의 임의의 선행 구현예 또는 제 3 또는 제 4 양태에 따른 디바이스의 가능한 구현 형태에서, L개의 이용 가능한 크로마 참조 샘플을 결정하는 것은, 현재 크로마 블록의 L개의 좌측의 인접한 크로마 샘플이 이용 가능하다는 것을 결정하는 것을 포함하고, 여기서 1 <= L <= H2 이고, H2은 좌측 참조 샘플 범위를 나타내고, L 및 H2는 양의 정수이고, L개의 좌측의 인접한 크로마 샘플은 이용 가능한 크로마 참조 샘플로서 사용된다.
이와 같은 제 3 또는 제 4 양태의 임의의 선행 구현예 또는 제 3 또는 제 4 양태에 따른 디바이스의 가능한 구현 형태에서, H2는 2*H 또는 W+H와 동일하고, W는 현재 크로마 블록의 폭을 나타내고, H는 현재 크로마 블록의 높이를 나타낸다.
이와 같은 제 3 또는 제 4 양태의 임의의 선행 구현예 또는 제 3 또는 제 4 양태에 따른 디바이스의 가능한 구현 형태에서, L 개의 이용 가능한 크로마 참조 샘플을 결정하는 것은, 현재 크로마 블록의 L1개의 상측의 인접한 크로마 샘플 및 L2개의 좌측의 인접한 크로마 샘플이 이용 가능하다는 것을 결정하는 단계를 포함하고, 여기서 1<= L1<= W2 이고, 1 <= L2 <= H2 이고, W2는 상측 참조 샘플 범위를 표시하고, H2는 좌측 참조 샘플 범위를 표시하고, L1, L2, W2 및 H2는 양의 정수이고, L1+L2=L 이고, L1개의 상측의 인접한 크로마 샘플 및 L2개의 좌측의 인접한 크로마 샘플은 이용 가능한 크로마 참조 샘플로서 사용된다.
이와 같은 제 3 또는 제 4 양태의 임의의 선행 구현예 또는 제 3 또는 제 4 양태에 따른 디바이스의 가능한 구현 형태에서, 루마 참조 샘플은 루마 블록 위쪽에 있고 그리고 L개의 이용 가능한 크로마 참조 샘플에 기초하여 선택되는 인접한 샘플만을 다운샘플링함으로써, 또는 루마 블록 좌측에 있고 그리고 L개의 이용 가능한 크로마 참조 샘플에 기초하여 선택되는 인접한 샘플만을 다운샘플링함으로써 획득된다.
이와 같은 제 3 또는 제 4 양태의 임의의 선행 구현예 또는 제 3 또는 제 4 양태에 따른 디바이스의 가능한 구현 형태에서, 루마 블록의 다운샘플링된 루마 블록은 현재 크로마 블록에 대응하는 루마 블록의 복원된 루마 블록을 다운샘플링함으로써 획득된다.
이와 같은 제 3 또는 제 4 양태의 임의의 선행 구현예 또는 제 3 또는 제 4 양태에 따른 디바이스의 가능한 구현 형태에서, 루마 참조 샘플이 루마 블록의 위쪽에 있는 인접한 샘플에만 기초하여 획득될 때 및 현재 크로마 블록의 상측 행이 현재 코딩 트리 유닛(CTU)의 상측 행과 중첩될 때 루마 블록의 복원된 버전의 인접한 복원된 루마 샘플의 하나의 행만이 루마 참조 샘플을 획득하는데 사용된다.
이와 같은 제 3 또는 제 4 양태의 임의의 선행 구현예 또는 제 3 또는 제 4 양태에 따른 방법의 가능한 구현 형태에서, 선형 모델 계수(α 및 β)는 아래의 수학식에 기초하여 계산되고
Figure pct00009
여기서
Figure pct00010
는 최대 루마 값을 나타내고,
Figure pct00011
는 제 1 크로마 값을 나타내고,
Figure pct00012
는 최소 루마 값을 나타내며,
Figure pct00013
는 제 2 크로마 값을 나타낸다.
이와 같은 제 3 또는 제 4 양태의 임의의 선행 구현예 또는 제 3 또는 제 4 양태에 따른 방법의 가능한 구현 형태에서, 현재 크로마 블록에 대한 예측은 아래의 수학식에 기초하여 획득되고,
Figure pct00014
여기서
Figure pct00015
는 현재 크로마 블록의 크로마 샘플의 예측된 값을 나타내고,
Figure pct00016
는 루마 블록의 복원된 루마 블록의 다운샘플링된 루마 블록의 대응하는 루마 샘플의 샘플 값을 나타낸다.
이와 같은 제 3 또는 제 4 양태의 임의의 선행 구현예 또는 제 3 또는 제 4 양태에 따른 방법의 가능한 구현 형태에서, 루마 참조 샘플이 루마 블록에 남아 있는 인접한 샘플에만 기초하여 획득되고 현재 크로마 블록이 현재 코딩 트리 유닛(CTU)의 좌측 경계에 있을 때 복원된 루마 블록의 인접한 복원된 루마 샘플의 하나의 열만이 루마 참조 샘플을 획득하는데 사용된다.
이와 같은 제 3 또는 제 4 양태의 임의의 선행 구현예 또는 제 3 또는 제 4 양태에 따른 디바이스의 가능한 구현 형태에서, 선형 모델은 다중 방향 선형 모델(MDLM)을 포함한다.
제5 양태에 따르면, 본 발명은 비디오 신호에 대한 비트스트림에서 인트라 크로마 예측 모드를 코딩하기 위한 방법에 관한 것으로, 방법은, 인트라 크로마 예측 모드에 기초하여 비디오 신호의 크로마 블록에 대한 인트라 예측을 수행하는 - 인트라 크로마 예측 모드는 제 1 세트의 모드, CCLM_L 모드 또는 CCLM_T 모드 중 적어도 하나를 포함하는 제 2 세트의 모드, 또는 제3 세트의 모드 중 하나로부터 결정됨 - 단계와, 인트라 크로마 예측 모드를 표시하는 신택스 요소를 포함시킴으로써 비디오 신호에 대한 비트스트림을 생성하는 단계를 포함하고, 인트라 크로마 예측 모드가 제 1 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수는 인트라 크로마 예측 모드가 제 2 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수보다 적고, 인트라 크로마 예측 모드가 제 2 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수는 인트라 크로마 예측 모드가 제3 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수보다 적다.
인트라 크로마 예측 모드를 인코딩하기 위한 제안된 방법은 CCLM_L 및 CCLM_T가 이진 스트링을 사용하여 표현될 수 있게 하고 비디오 신호의 비트스트림에 포함될 수 있게 한다.
이와 같은 제 5 양태에 따른 방법의 가능한 구현 형태에서, 제 1 세트의 모드는 도출 모드(derived mode)(DM) 또는 크로스 컴포넌트 선형 모델(CCLM) 예측 모드 중 적어도 하나를 포함하고, 제3 세트의 모드는 수직 모드, 수평 모드, DC 모드 또는 평면 모드를 포함한다.
이와 같은 제 5 양태의 임의의 선행 구현예 또는 제 5 양태에 따른 방법의 가능한 구현 형태에서, DM 모드에 대한 신택스 요소는 0이고; CCLM 모드에 대한 신택스 요소는 10이고; CCLM _L 모드에 대한 신택스 요소는 1110이고; CCLM _T 모드에 대한 신택스 요소는 1111이고; 평면 모드에 대한 신택스 요소는 11000이고; 수직 모드에 대한 신택스 요소는 11001이고; 수평 모드에 대한 신택스 요소는 11010이며; DC 모드에 대한 신택스 요소는 11011이다.
이와 같은 제 5 양태의 임의의 선행 구현예 또는 제 5 양태에 따른 방법의 가능한 구현 형태에서, DM 모드에 대한 신택스 요소는 00이고; CCLM 모드에 대한 신택스 요소는 10이고; CCLM _L 모드에 대한 신택스 요소는 110이고; CCLM _T 모드에 대한 신택스 요소는 111이고; 평면 모드에 대한 신택스 요소는 0100이고; 수직 모드에 대한 신택스 요소는 0101이고; 수평 모드에 대한 신택스 요소는 0110이며; DC 모드에 대한 신택스 요소는 0111이다.
제 6 양태에 따르면, 본 발명은 비디오 신호에 대한 비트스트림에서 인트라 크로마 예측 모드를 디코딩하기 위한 방법에 관한 것으로, 방법은, 비디오 신호의 비트스트림으로부터 복수의 신택스 요소를 파싱하는 단계와, 복수의 신택스 요소로부터의 신택스 요소에 기초하여 인트라 크로마 예측 모드를 결정하는 - 인트라 크로마 예측 모드는 제 1 세트의 모드, CCLM_L 모드 또는 CCLM_T 모드 중 적어도 하나를 포함하는 제 2 세트의 모드 또는 제3 세트의 모드 중 하나로부터 결정되고, 인트라 크로마 예측 모드가 제 1 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수는 인트라 크로마 예측 모드가 제 2 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수보다 적고, 인트라 크로마 예측 모드가 제 2 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수는 인트라 크로마 예측 모드가 제3 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수보다 적음 - 단계와, 인트라 크로마 예측 모드에 기초하여 비디오 신호의 현재 크로마 블록에 대한 인트라 예측을 수행하는 단계를 포함한다.
제 7 양태에 따르면, 본 발명은 비디오 데이터를 인코딩하기 위한 디바이스에 관한 것으로, 디바이스는, 비디오 데이터 메모리와, 비디오 인코더를 포함하고, 비디오 인코더는, 인트라 크로마 예측 모드에 기초하여 비디오 신호의 크로마 블록에 대한 인트라 예측을 수행 - 인트라 크로마 예측 모드는 제 1 세트의 모드, CCLM_L 모드 또는 CCLM_T 모드 중 적어도 하나를 포함하는 제 2 세트의 모드 또는 제3 세트의 모드 중 하나로부터 결정됨 - 하고, 인트라 크로마 예측 모드를 표시하는 신택스 요소를 포함시킴으로써 비디오 신호에 대한 비트스트림을 생성하도록 구성되고, 인트라 크로마 예측 모드가 제 1 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수는 인트라 크로마 예측 모드가 제 2 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수보다 적고, 인트라 크로마 예측 모드가 제 2 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수는 인트라 크로마 예측 모드가 제3 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수보다 적다.
제 8 양태에 따르면, 본 발명은 비디오 데이터를 디코딩하기 위한 디바이스에 관한 것으로, 디바이스는, 비디오 데이터 메모리와, 비디오 디코더를 포함하고, 비디오 디코더는, 비디오 신호의 비트스트림으로부터 복수의 신택스 요소를 파싱하고, 복수의 신택스 요소로부터의 신택스 요소에 기초하여 인트라 크로마 예측 모드를 결정 - 인트라 크로마 예측 모드는 제 1 세트의 모드, CCLM_L 모드 또는 CCLM_T 모드 중 적어도 하나를 포함하는 제 2 세트의 모드, 또는 제3 세트의 모드 중 하나로부터 결정되고, 인트라 크로마 예측 모드가 제 1 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수가 인트라 크로마 예측 모드가 제 2 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수보다 적고, 인트라 크로마 예측 모드가 제 2 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수가 인트라 크로마 예측 모드가 제 3 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수보다 적음 - 하고, 인트라 크로마 예측 모드에 기초하여 비디오 신호의 현재 크로마 블록에 대한 인트라 예측을 수행하도록 구성된다.
비디오 데이터를 인코딩하기 위한 제안된 디바이스 및 비디오 데이터를 디코딩하기 위한 디바이스는 CCLM_L 또는 CCLM_T가 이진 스트링을 사용하여 표현될 수 있게 하고 인코딩 디바이스에서 비디오 신호의 비트스트림에 포함될 수 있게 하고 디코딩 디바이스에서 디코딩될 수 있게 한다. 이와 같은 제 7 또는 제 8 양태에 따른 디바이스의 가능한 구현 형태에서, 제 1 세트의 모드는 도출 모드(DM) 또는 크로스 컴포넌트 선형 모델(CCLM) 예측 모드 중 적어도 하나를 포함하고, 제3 세트의 모드는 수직 모드, 수평 모드, DC 모드 또는 평면 모드를 포함한다.
이와 같은 제 7 및 제 8 양태의 임의의 선행 구현예 또는 제 7 및 제 8 양태에 따른 디바이스의 가능한 구현 형태에서, DM 모드에 대한 신택스 요소는 0이고; CCLM 모드에 대한 신택스 요소는 10이고; CCLM _L 모드에 대한 신택스 요소는 1110이고; CCLM _T 모드에 대한 신택스 요소는 1111이고; 평면 모드에 대한 신택스 요소는 11000이고; 수직 모드에 대한 신택스 요소는 11001이고; 수평 모드에 대한 신택스 요소는 11010이며; DC 모드에 대한 신택스 요소는 11011이다.
이와 같은 제 7 및 제 8 양태의 임의의 선행 구현예 또는 제 7 및 제 8 양태에 따른 디바이스의 가능한 구현 형태에서, DM 모드에 대한 신택스 요소는 00이고; CCLM 모드에 대한 신택스 요소는 10이고; CCLM _L 모드에 대한 신택스 요소는 110이고; CCLM _T 모드에 대한 신택스 요소는 111이고; 평면 모드에 대한 신택스 요소는 0100이고; 수직 모드에 대한 신택스 요소는 0101이고; 수평 모드에 대한 신택스 요소는 0110이며; DC 모드에 대한 신택스 요소는 0111이다.
제 9 양태에 따르면, 본 발명은 크로스 컴포넌트 선형 모델(CCLM) 예측 모드를 사용하여 인트라 예측을 수행하기 위한 방법에 관한 것으로, 방법은, 현재 크로마 블록에 대응하는 루마 블록을 결정하는 단계와, 루마 블록의 인접한 샘플을 다운샘플링함으로써 루마 블록의 루마 참조 샘플을 획득하는 - 루마 참조 샘플은 루마 블록 위쪽에 있는 인접한 샘플에 기초하여 획득되는 루마 참조 샘플만 또는 루마 블록에 남아 있는 인접한 샘플에 기초하여 획득되는 루마 참조 샘플만을 포함함 - 단계와, 루마 참조 샘플에 기초하여 최대 루마 값 및 최소 루마 값을 결정하는 단계와, 최대 루마 값과 연관된 하나 이상의 루마 참조 샘플의 하나 이상의 위치에 적어도 부분적으로 기초하여 제 1 크로마 값을 획득하는 단계와, 최소 루마 값과 연관된 하나 이상의 루마 참조 샘플의 하나 이상의 위치에 적어도 부분적으로 기초하여 제 2 크로마 값을 획득하는 단계와, 제 1 크로마 값, 제 2 크로마 값, 최대 루마 값 및 최소 루마 값에 기초하여 선형 모델 계수를 계산하는 단계와, 선형 모델 계수 및 루마 블록의 다운샘플링된 버전의 값에 기초하여 현재 크로마 블록에 대한 예측을 획득하는 단계를 포함한다.
이와 같은 제 9 양태에 따른 방법의 가능한 구현 형태에서, 루마 참조 샘플의 수는 현재 크로마 블록의 폭보다 크거나 동일하고 또는 현재 크로마 블록의 높이보다 크거나 동일하다.
이와 같은 제 9 양태의 임의의 선행 구현예 또는 제 9 양태에 따른 방법의 가능한 구현 형태에서, 최대 루마 값 및 최소 루마 값을 결정하는데 사용되는 루마 참조 샘플은 루마 블록의 이용 가능한 루마 참조 샘플이다.
이와 같은 제 9 양태의 임의의 선행 구현예 또는 제 9 양태에 따른 방법의 가능한 구현 형태에서, 루마 블록의 이용 가능한 루마 참조 샘플은 현재 크로마 블록의 이용 가능한 크로마 참조 샘플에 기초하여 결정된다.
이와 같은 제 9 양태의 임의의 선행 구현예 또는 제 9 양태에 따른 방법의 가능한 구현 형태에서, 최대 2*W 개의 루마 참조 샘플은 루마 참조 샘플이 루마 블록 위쪽에 있는 인접한 샘플에만 기초하여 획득될 때 선행 모델 계수를 도출하는데 사용되며, 여기서 W는 현재 크로마 블록의 폭을 나타낸다.
이와 같은 제 9 양태의 임의의 선행 구현예 또는 제 9 양태에 따른 방법의 가능한 구현 형태에서, 최대 2*H 개의 루마 참조 샘플은 루마 참조 샘플이 루마 블록에 남아 있는 인접한 샘플에만 기초하여 획득될 때 선행 모델 계수를 도출하는데 사용되며, 여기서 H는 현재 크로마 블록의 높이를 나타낸다.
이와 같은 제 9 양태의 임의의 선행 구현예 또는 제 9 양태에 따른 방법의 가능한 구현 형태에서, 최대 N개의 이용 가능한 루마 참조 샘플은 선형 모델 계수를 도출하는데 사용되고; N은 W와 H의 합이고; W는 현재 크로마 블록의 폭을 나타내며; H는 현재 크로마 블록의 높이를 나타낸다.
이와 같은 제 9 양태의 임의의 선행 구현예 또는 제 9 양태에 따른 방법의 가능한 구현 형태에서, 여기서 선형 모델 계수(α 및 β)는 아래의 수학식에 기초하여 계산되고
Figure pct00017
여기서
Figure pct00018
는 최대 루마 값을 나타내고,
Figure pct00019
는 제 1 크로마 값을 나타내고,
Figure pct00020
는 최소 루마 값을 나타내며,
Figure pct00021
는 제 2 크로마 값을 나타낸다.
이와 같은 제 9 양태의 임의의 선행 구현예 또는 제 9 양태에 따른 방법의 가능한 구현 형태에서, 현재 크로마 블록에 대한 예측은 아래의 수학식에 기초하여 획득되고,
Figure pct00022
여기서
Figure pct00023
는 현재 크로마 블록의 크로마 샘플의 예측된 값을 나타내고,
Figure pct00024
는 루마 블록의 복원된 버전의 다운샘플링된 버전의 대응하는 루마 샘플의 샘플 값을 나타낸다.
이와 같은 제 9 양태의 임의의 선행 구현예 또는 제 9 양태에 따른 방법의 가능한 구현 형태에서, 루마 블록의 다운샘플링된 버전은 현재 크로마 블록에 대응하는 루마 블록의 복원된 버전을 다운샘플링함으로써 획득된다.
이와 같은 제 9 양태의 임의의 선행 구현예 또는 제 9 양태에 따른 방법의 가능한 구현 형태에서, 루마 참조 샘플이 루마 블록의 위쪽에 있는 인접한 샘플에만 기초하여 획득될 때 및 현재 크로마 블록의 상측 행이 현재 코딩 트리 유닛(CTU)의 상측 행과 중첩될 때 또는 현재 크로마 블록이 현재 코딩 트리 유닛(CTU)의 상측 경계에 있을 때 루마 블록의 복원된 버전의 인접한 복원된 루마 샘플의 하나의 행만이 루마 참조 샘플을 획득하는데 사용된다.
이와 같은 제 9 양태의 임의의 선행 구현예 또는 제 9 양태에 따른 방법의 가능한 구현 형태에서, 루마 참조 샘플이 루마 블록에 남아 있는 인접한 샘플에만 기초하여 획득되고 현재 크로마 블록이 현재 코딩 트리 유닛(CTU)의 좌측 경계에 있을 때 복원된 루마 블록의 인접한 복원된 루마 샘플의 하나의 열만이 루마 참조 샘플을 획득하는데 사용된다.
이와 같은 제 9 양태의 임의의 선행 구현예 또는 제 9 양태에 따른 방법의 가능한 구현 형태에서, CCLM은 다중 방향 선형 모델(MDLM)을 포함한다.
제 10 양태에 따르면, 본 발명은 이와 같은 제 9 양태의 임의의 선행 구현예 또는 제 9 양태에 따른 방법을 수행하도록 구성된 인코더에 관한 것이다.
제 11 양태에 따르면, 본 발명은 이와 같은 제 9 양태의 임의의 선행 구현예 또는 제 9 양태에 따른 방법을 수행하도록 구성된 디코더에 관한 것이다.
제 11 양태에 따르면, 본 발명은 크로스 컴포넌트 선형 예측 모드(CCLM)을 사용하는 인트라 예측 방법에 관한 것으로, 방법은,
현재 루마 블록의 참조 샘플을 획득하는 - 참조 샘플은 현재 루마 블록의 상측 템플릿에만 속함 - 단계와,
참조 샘플에 기초하여 최대 루마 값 및 최소 루마 값을 획득하는 단계와,
최대 루마 값의 샘플 위치에 기초하여 제 1 크로마 값을 획득하는 단계와,
최소 루마 값의 샘플 위치에 기초하여 제 2 크로마 값을 획득하는 단계와,
제 1 크로마 값, 제 2 크로마 값, 최대 루마 값 및 최소 루마 값에 기초하여 선형 모델 계수를 계산하는 단계와,
선형 모델 계수에 기초하여 현재 크로마 블록에 대한 예측기를 획득하는 단계를 포함하고, 현재 크로마 블록은 현재 루마 블록에 대응한다.
이와 같은 제 11 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플의 수는 현재 크로마 블록의 폭보다 크거나 동일하다.
이와 같은 제 11 양태의 임의의 선행 구현예 또는 제 11 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플이 이용 가능하다.
이와 같은 제 11 양태의 임의의 선행 구현예 또는 제 11 양태에 따른 방법의 가능한 구현 형태에서, 방법은,
범위 내에서 참조 샘플의 이용 가능성을 체크하는 단계를 더 포함하며, 범위의 길이는 2*W이거나, 또는 범위의 길이는 W와 H의 합이고, 여기서 W는 현재 크로마 블록의 폭을 나타내고, H는 현재 크로마 블록의 높이를 나타낸다.
이와 같은 제 11 양태의 임의의 선행 구현예 또는 제 11 양태에 따른 방법의 가능한 구현 형태에서, 최대 2*W개의 이용 가능한 참조 샘플은 선형 모델 계수를 도출하는데 사용되며, 여기서 W는 현재 크로마 블록의 폭을 나타낸다.
이와 같은 제 11 양태의 임의의 선행 구현예 또는 제 11 양태에 따른 방법의 가능한 구현 형태에서, 최대 N개의 이용 가능한 참조 샘플은 선형 모델 계수를 도출하는데 사용되고, 여기서 N은 W와 H의 합이고, W는 현재 크로마 블록의 폭을 나타내며, H는 현재 크로마 블록의 높이를 나타낸다.
이와 같은 제 11 양태의 임의의 선행 구현예 또는 제 11 양태에 따른 방법의 가능한 구현 형태에서, 선형 모델 계수(α 및 β)는 아래의 수학식에 기초하여 계산되고
Figure pct00025
여기서
Figure pct00026
는 최대 루마 값을 나타내고,
Figure pct00027
는 제 1 크로마 값을 나타내고,
Figure pct00028
는 최소 루마 값을 나타내며,
Figure pct00029
는 제 2 크로마 값을 나타낸다.
이와 같은 제 11 양태의 임의의 선행 구현예 또는 제 11 양태에 따른 방법의 가능한 구현 형태에서, 현재 크로마 블록에 대한 예측기는 아래의 수학식에 기초하여 획득되고,
Figure pct00030
여기서
Figure pct00031
는 크로마 샘플을 나타내고,
Figure pct00032
는 대응하는 복원된 루마 샘플을 나타낸다.
이와 같은 제 11 양태의 임의의 선행 구현예 또는 제 11 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플의 수는 현재 크로마 블록의 크기와 같거나 크다.
이와 같은 제 11 양태의 임의의 선행 구현예 또는 제 11 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플은 다운샘플링된 루마 샘플이다.
이와 같은 제 11 양태의 임의의 선행 구현예 또는 제 11 양태에 따른 방법의 가능한 구현 형태에서, 현재 크로마 블록이 상측 경계에 있을 때 인접한 복원된 루마 샘플의 하나의 행만이 참조 샘플을 획득하는데 사용된다.
이와 같은 제 11 양태의 임의의 선행 구현예 또는 제 11 양태에 따른 방법의 가능한 구현 형태에서, CCLM은 다중 방향 선형 모델(MDLM)이고, 선형 모델 계수는 MDLM을 획득하는데 사용된다.
이와 같은 제 11 양태의 임의의 선행 구현예 또는 제 11 양태에 따른 방법의 가능한 구현 형태에서, 방법은 CCIP_T라고 부른다.
제 12 양태에 따르면, 본 발명은 크로스 컴포넌트 선형 예측 모드(CCLM)를 사용하는 인트라 예측 방법에 관한 것으로, 방법은,
현재 루마 블록의 참조 샘플을 획득하는 - 참조 샘플은 현재 루마 블록의 좌측 템플릿에만 속함 - 단계와,
참조 샘플에 기초하여 최대 루마 값 및 최소 루마 값을 획득하는 단계와,
최대 루마 값의 샘플 위치에 기초하여 제 1 크로마 값을 획득하는 단계와,
최소 루마 값의 샘플 위치에 기초하여 제 2 크로마 값을 획득하는 단계와,
제 1 크로마 값, 제 2 크로마 값, 최대 루마 값 및 최소 루마 값에 기초하여 선형 모델 계수를 계산하는 단계와,
선형 모델 계수에 기초하여 현재 크로마 블록에 대한 예측기를 획득하는 단계를 포함하고, 현재 크로마 블록은 현재 루마 블록에 대응한다.
이와 같은 제 12 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플의 수는 현재 크로마 블록의 높이보다 크거나 같다.
이와 같은 제 12 양태의 임의의 선행 구현예 또는 제 12 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플이 이용 가능하다.
이와 같은 제 12 양태의 임의의 선행 구현예 또는 제 12 양태에 따른 방법의 가능한 구현 형태에서, 방법은,
범위 내에서 참조 샘플의 이용 가능성을 체크하는 단계를 더 포함하며, 범위의 길이는 2*H이거나, 또는 범위의 길이는 W와 H의 합이고, 여기서 W는 현재 크로마 블록의 폭을 나타내고, H는 현재 크로마 블록의 높이를 나타낸다.
이와 같은 제 12 양태의 임의의 선행 구현예 또는 제 12 양태에 따른 방법의 가능한 구현 형태에서, 최대 2*H개의 이용 가능한 참조 샘플은 선형 모델 계수를 도출하는데 사용되며, 여기서 H는 현재 크로마 블록의 높이를 나타낸다.
이와 같은 제 12 양태의 임의의 선행 구현예 또는 제 12 양태에 따른 방법의 가능한 구현 형태에서, 최대 N개의 이용 가능한 참조 샘플은 선형 모델 계수를 도출하는데 사용되고, 여기서 N은 W와 H의 합이고, W는 현재 크로마 블록의 폭을 나타내며, H는 현재 크로마 블록의 높이를 나타낸다.
이와 같은 제 12 양태의 임의의 선행 구현예 또는 제 12 양태에 따른 방법의 가능한 구현 형태에서, 여기서 선형 모델 계수(α 및 β)는 아래의 수학식에 기초하여 계산되고
Figure pct00033
여기서
Figure pct00034
는 최대 루마 값을 나타내고,
Figure pct00035
는 제 1 크로마 값을 나타내고,
Figure pct00036
는 최소 루마 값을 나타내며,
Figure pct00037
는 제 2 크로마 값을 나타낸다.
이와 같은 제 12 양태의 임의의 선행 구현예 또는 제 12 양태에 따른 방법의 가능한 구현 형태에서, 현재 크로마 블록에 대한 예측기는 아래의 수학식에 기초하여 획득되고,
Figure pct00038
여기서
Figure pct00039
는 크로마 샘플을 나타내고,
Figure pct00040
는 대응하는 복원된 루마 샘플을 나타낸다.
이와 같은 제 12 양태의 임의의 선행 구현예 또는 제 12 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플의 수는 현재 크로마 블록의 크기와 같거나 크다.
이와 같은 제 12 양태의 임의의 선행 구현예 또는 제 12 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플은 다운샘플링된 루마 샘플이다.
이와 같은 제 12 양태의 임의의 선행 구현예 또는 제 12 양태에 따른 방법의 가능한 구현 형태에서, 현재 크로마 블록의 현재 블록이 좌측 경계에 있을 때 인접한 복원된 루마 샘플의 하나의 열만이 참조 샘플을 획득하는데 사용된다.
이와 같은 제 12 양태의 임의의 선행 구현예 또는 제 12 양태에 따른 방법의 가능한 구현 형태에서, CCLM은 다중 방향 선형 모델(MDLM)이고, 선형 모델 계수는 MDLM을 획득하는데 사용된다.
이와 같은 제 12 양태의 임의의 선행 구현예 또는 제 12 양태에 따른 방법의 가능한 구현 형태에서, 방법은 CCIP_L이라고 부른다.
제 13 양태에 따르면, 본 발명은 크로스 컴포넌트 선형 예측 모드(CCLM)을 사용하는 인트라 예측 방법에 관한 것으로, 방법은,
현재 루마 블록의 참조 샘플을 획득하는 - 참조 샘플은 현재 루마 블록의 상측 템플릿에만 속하거나, 또는 현재 루마 블록의 좌측 템플릿에만 속함 - 단계와,
현재 크로마 블록의 크로마 샘플을 획득하는 - 현재 크로마 블록은 현재 루마 블록에 대응함 - 단계와,
참조 샘플 및 크로마 샘플에 기초하여 선형 모델 계수를 획득하는 단계와,
선형 모델 계수에 기초하여 현재 크로마 블록에 대한 예측기를 획득하는 단계를 포함한다.
이와 같은 제 13 양태에 따른 방법의 가능한 구현 형태에서, 최대 N개의 참조 샘플은 선형 모델 계수를 도출하는데 사용되고, 여기서 N은 W와 H의 합이고, W는 현재 크로마 블록의 폭을 나타내며, H는 현재 크로마 블록의 높이를 나타낸다.
이와 같은 제 13 양태의 임의의 선행 구현예 또는 제 13 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플이 현재 루마 블록의 상측 템플릿에만 속할 때, 참조 샘플의 수는 현재 크로마 블록의 폭보다 크거나 같다.
이와 같은 제 13 양태의 임의의 선행 구현예 또는 제 13 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플이 현재 루마 블록의 상측 템플릿에만 속할 때, 최대 2*W개의 참조 샘플이 선형 모델 계수를 도출하는데 사용되며, 여기서 W는 현재 크로마 블록의 폭을 나타낸다.
이와 같은 제 13 양태의 임의의 선행 구현예 또는 제 13 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플이 현재 루마 블록의 좌측 템플릿에만 속할 때, 참조 샘플의 수는 현재 크로마 블록의 높이보다 크거나 같다.
이와 같은 제 13 양태의 임의의 선행 구현예 또는 제 13 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플이 현재 루마 블록의 좌측 템플릿에만 속할 때, 최대 2*H개의 참조 샘플이 선형 모델 계수를 도출하는데 사용되며, 여기서 H는 현재 크로마 블록의 높이를 나타낸다.
이와 같은 제 13 양태의 임의의 선행 구현예 또는 제 13 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플의 수는 현재 크로마 블록의 크기와 같거나 크다.
이와 같은 제 13 양태의 임의의 선행 구현예 또는 제 13 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플은 다운샘플링된 루마 샘플이다.
이와 같은 제 13 양태의 임의의 선행 구현예 또는 제 13 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플이 현재 루마 블록의 상측 템플릿에만 속하고 현재 크로마 블록의 현재 블록이 상측 경계에 있을 때 인접한 복원된 루마 샘플의 하나의 행만이 참조 샘플을 획득하는데 사용된다.
이와 같은 제 13 양태의 임의의 선행 구현예 또는 제 13 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플이 현재 루마 블록의 좌측 템플릿에만 속하고 현재 크로마 블록의 현재 블록이 좌측 경계에 있을 때 인접한 복원된 루마 샘플의 하나의 열만이 참조 샘플을 획득하는데 사용된다.
이와 같은 제 13 양태의 임의의 선행 구현예 또는 제 13 양태에 따른 방법의 가능한 구현 형태에서, CCLM은 다중 방향 선형 모델(MDLM)이고, 선형 모델 계수는 MDLM을 획득하는데 사용된다.
이와 같은 제 13 양태의 임의의 선행 구현예 또는 제 13 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플이 이용 가능하다.
제 14 양태에 따르면, 본 발명은 이와 같은 제 11 양태의 선행 구현예 또는 제 11 양태 중 어느 하나에 따른 방법을 수행하기 위한 프로세싱 회로를 포함하는 디코더에 관한 것이다.
제 15 양태에 따르면, 본 발명은 이와 같은 제 12 양태의 선행 구현예 또는 제 12 양태 중 어느 하나에 따른 방법을 수행하기 위한 프로세싱 회로를 포함하는 디코더에 관한 것이다.
제 16 양태에 따르면, 본 발명은 이와 같은 제 13 양태의 선행 구현예 또는 제 13 양태 중 어느 하나에 따른 방법을 수행하기 위한 프로세싱 회로를 포함하는 디코더에 관한 것이다.
제 17 양태에 따르면, 본 발명은 크로스 컴포넌트 선형 예측 모드(CCLM)를 사용하는 인트라 예측 방법에 관한 것으로, 방법은,
현재 루마 블록의 참조 샘플을 획득하는 - 참조 샘플은 현재 루마 블록의 상측 템플릿에만 속함 - 단계와,
참조 샘플에 기초하여 최대 루마 값 및 최소 루마 값을 획득하는 단계와,
최대 루마 값 및 최소 루마 값에 기초하여 제 1 크로마 값 및 제 2 크로마 값을 획득하는 단계와,
제 1 크로마 값, 제 2 크로마 값, 최대 루마 값 및 최소 루마 값에 기초하여 선형 모델 계수를 계산하는 단계와,
선형 모델 계수에 기초하여 현재 블록에 대한 예측기를 획득하는 단계를 포함한다.
이와 같은 제 17 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플의 수는 현재 크로마 블록의 폭보다 크거나 같다.
이와 같은 제 17 양태의 임의의 선행 구현예 또는 제 17 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플이 이용 가능하다.
이와 같은 제 17 양태의 임의의 선행 구현예 또는 제 17 양태에 따른 방법의 가능한 구현 형태에서, 최대 2*W개의 참조 샘플이 모델 계수를 도출하는데 사용된다.
이와 같은 제 17 양태의 임의의 선행 구현예 또는 제 17 양태에 따른 방법의 가능한 구현 형태에서, 방법은 CCIP_T라고 부른다.
제 18 양태에 따르면, 본 발명은 크로스 컴포넌트 선형 예측 모드(CCLM)를 사용하는 인트라 예측 방법에 관한 것으로, 방법은,
현재 루마 블록의 참조 샘플을 획득하는 - 참조 샘플은 현재 루마 블록의 좌측 템플릿에만 속함 - 단계와,
참조 샘플에 기초하여 최대 루마 값 및 최소 루마 값을 획득하는 단계와,
최대 루마 값 및 최소 루마 값에 기초하여 제 1 크로마 값 및 제 2 크로마 값을 획득하는 단계와,
제 1 크로마 값, 제 2 크로마 값, 최대 루마 값 및 최소 루마 값에 기초하여 선형 모델 계수를 계산하는 단계와,
선형 모델 계수에 기초하여 현재 블록에 대한 예측기를 획득하는 단계를 포함한다.
이와 같은 제 18 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플의 수는 현재 크로마 블록의 높이보다 크거나 같다.
이와 같은 제 18 양태의 임의의 선행 구현예 또는 제 18 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플이 이용 가능하다.
이와 같은 제 18 양태의 임의의 선행 구현예 또는 제 18 양태에 따른 방법의 가능한 구현 형태에서, 최대 2*H개의 참조 샘플이 모델 계수를 도출하는데 사용된다.
이와 같은 제 18 양태의 임의의 선행 구현예 또는 제 18 양태에 따른 방법의 가능한 구현 형태에서, 방법은 CCIP_L이라고 부른다.
제 19 양태에 따르면, 본 발명은 이와 같은 제 17 양태의 임의의 선행 구현예 또는 제 17 양태에 따른 방법을 수행하는 디코더에 관한 것이다.
제 20 양태에 따르면, 본 발명은 이와 같은 제 18 양태의 임의의 선행 구현예 또는 제 18 양태에 따른 방법을 수행하는 디코더에 관한 것이다.
제 21 양태에 따르면, 본 발명은 선형 모델을 사용하여 인트라 예측을 위한 방법에 관한 것으로, 현재 루마 블록의 참조 샘플을 획득하는 단계와, 참조 샘플에 기초하여 최대 루마 값 및 최소 루마 값을 획득하는 단계와, 최대 루마 값을 갖는 루마 샘플의 위치 및 최소 루마 값을 갖는 루마 샘플의 위치에 기초하여 제 1 크로마 값 및 제 2 크로마 값을 획득하는 단계와, 제 1 크로마 값, 제 2 크로마 값, 최대 루마 값 및 최소 루마 값에 기초하여 선형 모델 계수를 계산하는 단계와, 선형 모델 계수에 기초하여 현재 블록에 대한 예측기를 획득하는 단계를 포함하고, 여기서 현재 루마 블록의 참조 샘플을 획득하는 단계는, 현재 크로마 블록의 L개의 이용 가능한 크로마 템플릿 샘플을 결정하는 - 현재 루마 블록의 참조 샘플은 L°의 이용 가능한 크로마 템플릿 샘플에 대응하는 L개의 루마 템플릿 샘플임 - 단계, 또는 현재 크로마 블록의 L개의 이용 가능한 인접한 크로마 샘플을 결정하는 단계를 포함하고, 여기서 현재 루마 블록의 참조 샘플은 L개의 이용 가능한 인접한 크로마 샘플에 대응하는 L개의 인접한 루마 샘플이며, L>=1이고 양의 정수이다.
이와 같은 제 21 양태에 따른 방법의 가능한 구현 형태에서, 현재 크로마 블록의 L개의 이용 가능한 크로마 템플릿 샘플을 결정하는 단계는,
현재 크로마 블록의 상측의 인접한 크로마 샘플의 이용 가능성을 체크하는 단계와,
L개의 상측의 인접한 크로마 샘플이 이용 가능하면, 현재 루마 블록의 참조 샘플은 L개의 상측의 인접한 크로마 샘플에 대응하는 L개의 인접한 루마 샘플이고, 여기서 L>=1이고 L<=W2이고, W2는 상측 템플릿 샘플 범위를 나타내고, L 및 W2는 양의 정수이다.
이와 같은 제 21 양태의 임의의 선행 구현예 또는 제 21 양태에 따른 방법의 가능한 구현 형태에서, 현재 크로마 블록의 L개의 이용 가능한 크로마 템플릿 샘플을 결정하는 단계는,
현재 크로마 블록의 좌측의 인접한 크로마 샘플의 이용 가능성을 체크하는 단계와,
L개의 좌측의 인접한 크로마 샘플이 이용 가능하면, 현재 루마 블록의 참조 샘플은 L개의 좌측의 인접한 크로마 샘플에 대응하는 L개의 인접한 루마 샘플이고, 여기서 L>=1이고 L<=H2이며, H2는 좌측 템플릿 샘플 범위를 나타내고, L 및 H2는 양의 정수이다.
이와 같은 제 21 양태의 임의의 선행 구현예 또는 제 21 양태에 따른 방법의 가능한 구현 형태에서, 현재 크로마 블록의 L개의 이용 가능한 크로마 템플릿 샘플을 결정하는 단계는,
현재 크로마 블록의 상측의 인접한 크로마 샘플의 이용 가능성 및 현재 크로마 블록의 좌측의 인접한 크로마 샘플의 이용 가능성을 체크하는 단계와,
L1개의 상측의 인접한 크로마 샘플이 이용 가능하고 L2개의 좌측의 인접한 크로마 샘플이 이용 가능하면, 현재 루마 블록의 참조 샘플은 L1개의 상측의 인접한 크로마 샘플에 대응하는 L1개의 인접한 루마 샘플 및 L2개의 좌측의 인접한 크로마 샘플에 대응하는 L2개의 인접한 루마 샘플이고, 여기서 L2>=1이고 L2<=H2이고, H2는 좌측 템플릿 샘플 범위를 나타내고, L 및 H2는 양의 정수이고; L1>=1이고 L1<=W2이고, W2는 상측 템플릿 샘플 범위를 나타내고, L1 및 W2는 양의 정수이고, L= L1+L2이다.
이와 같은 제 21 양태의 임의의 선행 구현예 또는 제 21 양태에 따른 방법의 가능한 구현 형태에서, L개의 인접한 크로마 샘플이 템플릿 범위에서 이용 가능하면, L개의 템플릿 루마 샘플 및 L개의 템플릿 크로마 샘플은 모델 계수를 획득하는데 사용된다.
이와 같은 제 21 양태의 임의의 선행 구현예 또는 제 21 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플이 이용 가능하다.
이와 같은 제 21 양태의 임의의 선행 구현예 또는 제 21 양태에 따른 방법의 가능한 구현 형태에서, 선형 모델 계수(α 및 β)는 아래의 수학식에 기초하여 계산되고
Figure pct00041
여기서
Figure pct00042
는 최대 루마 값을 나타내고,
Figure pct00043
는 제 1 크로마 값을 나타내고,
Figure pct00044
는 최소 루마 값을 나타내며,
Figure pct00045
는 제 2 크로마 값을 나타낸다.
이와 같은 제 21 양태의 임의의 선행 구현예 또는 제 21 양태에 따른 방법의 가능한 구현 형태에서, 현재 크로마 블록에 대한 예측기는 아래의 수학식에 기초하여 획득되고,
Figure pct00046
여기서
Figure pct00047
는 크로마 샘플을 나타내고,
Figure pct00048
는 대응하는 복원된 루마 샘플을 나타낸다.
이와 같은 제 21 양태의 임의의 선행 구현예 또는 제 21 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플의 수는 현재 루마 블록의 크기와 같거나 크다.
이와 같은 제 21 양태의 임의의 선행 구현예 또는 제 21 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플은 다운샘플링된 루마 샘플이다.
이와 같은 제 21 양태의 임의의 선행 구현예 또는 제 21 양태에 따른 방법의 가능한 구현 형태에서, 현재 크로마 블록의 현재 블록이 상측 경계에 있을 때 인접한 복원된 루마 샘플의 하나의 행만이 참조 샘플을 획득하는데 사용된다.
이와 같은 제 21 양태의 임의의 선행 구현예 또는 제 21 양태에 따른 방법의 가능한 구현 형태에서, 선형 모델은 다중 방향 선형 모델(MDLM)이고, 선형 모델 계수는 MDLM을 획득하는데 사용된다.
이와 같은 제 21 양태의 임의의 선행 구현예 또는 제 21 양태에 따른 방법의 가능한 구현 형태에서, 방법은 CCIP_T 라고 부르거나, 또는 방법은 CCIP_L 이라고 부른다.
이와 같은 제 21 양태의 임의의 선행 구현예 또는 제 21 양태에 따른 방법의 가능한 구현 형태에서, 참조 샘플은 현재 루마 블록의 상측 템플릿에만 속하거나, 현재 루마 블록의 좌측 템플릿에만 속하고, 또는 참조 샘플은 현재 루마 블록의 상측 템플릿 및 현재 루마 블록의 좌측 템플릿에만 속한다.
제 22 양태에 따르면, 본 발명은 이와 같은 제 21 양태의 선행 구현예 또는 제 21 양태에 따른 방법을 수행하기 위한 프로세싱 회로를 포함하는 디코더에 관한 것이다.
제 23 양태에 따르면, 본 발명은 이와 같은 제 21 양태의 선행 구현예 또는 제 21 양태에 따른 방법을 수행하기 위한 프로세싱 회로를 포함하는 인코더에 관한 것이다.
제 24 양태에 따르면, 본 발명은 크로마 모드에 대한 이진화 방법에 관한 것으로, 방법은,
(다중 방향 선형 모델(MDLM)과 같은) 선형 모델을 사용하여 인트라 예측을 수행하는 단계와,
복수의 신택스 요소를 포함하는 비트스트림을 생성하는 단계를 포함하며, 복수의 신택스 요소는 CCLM 모드, CCIP_L 모드 또는 CCIP_T 모드를 표시하거나 이것을 포함한다.
이와 같은 제 24 양태에 따른 방법의 가능한 구현 형태에서,
제 1 표시자(77)는 CCLM 모드를 표시하고, intra_chroma_pred_mode 인덱스는 4이고,
제 2 표시자(78)는 CCIP_L 모드를 표시하고, intra_chroma_pred_mode 인덱스는 5이고,
제 3 표시자(79)는 CCIP_T 모드를 표시하고, intra_chroma_pred_mode 인덱스는 6이다.
이와 같은 제 24 양태의 임의의 선행 구현예 또는 제 24 양태에 따른 방법의 가능한 구현 형태에서, IntraPredModeC[xCb][yCb]는 sps_cclm_enabled_flag가 1일 때 intra_chroma_pred_mode[xCb] [yCb] 및 IntraPredModeY[xCb] [yCb]에 따라 다르다.
제 25 양태에 따르면, 본 발명은 디코딩 디바이스에 의해 구현되는 디코딩의 방법에 관한 것으로,
비트스트림으로부터 복수의 신택스 요소를 파싱하는 - 복수의 신택스 요소는 CCLM 모드, CCIP_L 모드 또는 CCIP_T 모드를 표시하거나 이것을 포함함 - 단계와,
표시된 선형 모델을 사용하여 인트라 예측을 수행하는 단계를 포함한다.
이와 같은 제 25 양태에 따른 방법의 가능한 구현 형태에서,
제 1 표시자(77)는 CCLM 모드를 표시하고, intra_chroma_pred_mode 인덱스는 4이고,
제 2 표시자(78)는 CCIP_L 모드를 표시하고, intra_chroma_pred_mode 인덱스는 5이고,
제 3 표시자(79)는 CCIP_T 모드를 표시하고, intra_chroma_pred_mode 인덱스는 6이다.
이와 같은 제 25 양태의 임의의 선행 구현예 또는 제 25 양태에 따른 방법의 가능한 구현 형태에서, IntraPredModeC[xCb][yCb]는 sps_cclm_enabled_flag가 1일 때 intra_chroma_pred_mode[xCb] [yCb] 및 IntraPredModeY[xCb] [yCb]에 따라 다르다.
제 26 양태에 따르면, 본 발명은 이와 같은 제 24 및 제 25 양태의 선행 구현예 또는 제 24 및 제 25 양태에 따른 방법을 수행하기 위한 프로세싱 회로를 포함하는 디코더에 관한 것이다.
제 27 양태에 따르면, 본 발명은 이와 같은 제 24 및 제 25 양태의 선행 구현예 또는 제 24 및 제 25 양태에 따른 방법을 수행하기 위한 프로세싱 회로를 포함하는 인코더에 관한 것이다.
제 28 양태에 따르면, 본 발명은 프로세서에서 실행될 때 프로세서로 하여금 이와 같은 제 24 및 제 25 양태의 선행 구현예 또는 제 24 및 제 25 양태에 따른 방법을 수행하게 하는 명령어들을 저장하는 컴퓨터 판독 가능 매체에 관한 것이다.
제 28 양태에 따르면, 본 발명은 디코더에 관한 것으로,
하나 이상의 프로세서와,
프로세서에 결합되고 프로세서에 의해 실행하기 위한 프로그래밍을 저장하는 비 일시적 컴퓨터 판독 가능 저장 매체를 포함하고, 프로그래밍은, 프로세서에 의해 실행될 때, 이와 같은 제 24 및 제 25 양태의 선행 구현예 또는 제 24 및 제 25 양태에 따른 방법을 수행하도록 디코더를 구성한다.
제 28 양태에 따르면, 본 발명은 인코더에 관한 것으로, 인코더는,
하나 이상의 프로세서와,
프로세서에 결합되고 프로세서에 의해 실행하기 위한 프로그래밍을 저장하는 비 일시적 컴퓨터 판독 가능 저장 매체를 포함하고, 프로그래밍은, 프로세서에 의해 실행될 때, 이와 같은 제 24 및 제 25 양태의 선행 구현예 또는 제 24 및 제 25 양태에 따른 방법을 수행하도록 인코더를 구성한다.
제 29 양태에 따르면, 본 발명은 크로스 컴포넌트 선형 예측 모드(CCLM)를 사용하는 인트라 예측 방법에 관한 것으로, 방법은,
현재 루마 블록의 참조 샘플을 획득하는 단계와,
참조 샘플에 기초하여 최대 루마 값 및 최소 루마 값을 획득하는 단계와,
최대 루마 값 및 최소 루마 값에 기초하여 제 1 크로마 값 및 제 2 크로마 값을 획득하는 단계와,
제 1 크로마 값, 제 2 크로마 값, 최대 루마 값 및 최소 루마 값에 기초하여 선형 모델 계수를 계산하는 단계와,
선형 모델 계수에 기초하여 현재 블록에 대한 예측기를 획득하는 단계를 포함하며,
여기서 템플릿 샘플의 이용 가능성은 인접한 크로마 샘플을 체크하는 것이다.
제 30 양태에 따르면, 본 발명은 이와 같은 제 29 양태에 따른 방법을 수행하는 디코더에 관한 것이다.
제 31 양태에 따르면, 본 발명은 이와 같은 제 29 양태에 따른 방법을 수행하는 디코더에 관한 것이다.
제 32 양태에 따르면, 본 발명은 이와 같은 제 28 양태 또는 제 29 양태에 따른 방법을 수행하는 디코더에 관한 것이다.
제 33 양태에 따르면, 이와 같은 임의의 선행 양태의 임의의 선행 구현예 또는 임의의 선행 양태에 따른 위의 방법의 단계의 적어도 일부를 수행하는 모듈/유닛/컴포넌트/회로를 포함하는 장치가 제공된다.
제 33 양태에 따른 장치는 임의의 선행 양태에 따른 방법의 구현 형태에 대응하는 구현 형태로 확장될 수 있다. 따라서 장치의 구현 형태는 임의의 선행 양태에 따른 방법의 대응하는 구현 형태의 특징(들)을 포함한다.
임의의 선행 양태에 따른 장치의 장점은 임의의 선행 양태에 따른 방법의 대응하는 구현 형태의 장점과 동일하다.
명료성을 위해, 임의의 하나의 전술한 예는 임의의 하나 이상의 다른 전술한 예와 결합되어 본 개시내용의 범위 내에 드는 새로운 예를 만들어 낼 수 있다.
이러한 특징 및 다른 특징은 첨부된 도면 및 청구 범위와 함께 취해진 다음의 상세한 설명으로부터 보다 명확하게 이해될 것이다.
본 개시내용의 보다 완전한 이해를 위해, 이제 동일한 참조 번호가 동일한 부분을 나타내는 첨부 도면들 및 상세한 설명과 관련하여 취해진 다음의 간단한 설명이 참조된다.
도 1a는 본 발명의 예를 구현할 수 있는 예시적인 코딩 시스템을 예시하는 블록도이다.
도 1b는 본 발명의 예를 구현할 수 있는 다른 예시적인 코딩 시스템을 예시하는 블록도이다.
도 2는 본 발명의 예를 구현할 수 있는 예시적인 비디오 인코더를 예시하는 블록도이다.
도 3은 본 발명의 예를 구현할 수 있는 비디오 디코더의 예를 예시하는 블록도이다.
도 4는 비디오 코딩 디바이스의 개략도이다.
도 5는 예시적인 예에 따른 도 1a의 소스 디바이스(12) 및 목적지 디바이스(14) 중 어느 하나 또는 둘 모두로서 사용될 수 있는 장치(500)의 간략화된 블록도이다.
도 6a는 루마 및 크로마 샘플의 정상적인 수직 및 수평 상대 위치를 예시하는 개념도이다.
도 6b는 예측 블록의 생성을 위한 루마 블록의 샘플을 다운샘플링하기 위한 루마 위치 및 크로마 위치의 예를 예시하는 개념도이다.
도 6c는 예측 블록의 생성을 위한 루마 블록의 샘플을 다운샘플링하기 위한 루마 위치 및 크로마 위치의 다른 예를 예시하는 개념도이다.
도 6d는 H.256/HEVC의 인트라-예측 모드의 예시이다.
도 7은 현재 블록의 참조 샘플의 예시이다.
도 8은 CCLM 모드에 관여되는 현재 루마 및 크로마 블록의 좌측 및 상측 참조 샘플의 위치의 예시이다.
도 9는 최소와 최대 루마 값 사이의 직선의 예시이다.
도 10은 (참조 샘플을 포함하는) 크로마 블록 및 대응하는 다운샘플링된 루마 블록의 템플릿의 예시이다.
도 11은 이용 가능하지 않은 참조 샘플을 포함하는 템플릿의 예의 예시이다.
도 12는 CCLM_T에서 사용되는 참조 샘플의 예시이다.
도 13은 CCLM_T에서 사용되는 참조 샘플의 예시이다.
도 14는 현재 루마 블록의 다운샘플링된 루마 블록의 폭보다 큰 상측 템플릿 또는 현재 루마 블록의 다운샘플링된 루마 블록의 높이보다 큰 좌측 템플릿을 사용하여 모델 계수를 결정하는 예를 예시하는 개략도이다. 상측 템플릿은 다운샘플링된 루마 블록 위쪽에 위치하는 참조 샘플을 포함한다. 좌측 템플릿은 다운샘플링된 루마 블록 좌측에 위치하는 참조 샘플을 포함한다.
도 15는 현재 루마 블록의 다운샘플링된 루마 블록의 폭과 동일한 크기의 상측 템플릿 또는 현재 루마 블록의 다운샘플링된 루마 블록의 높이와 동일한 크기의 좌측 템플릿을 사용하여 모델 계수를 결정하는 예를 예시하는 개략도이다.
도 16은 이용 가능한 참조 샘플을 사용하여 인트라 예측을 위한 모델 계수를 결정하는 예를 예시하는 개략도이다.
도 17은 인접한 루마 샘플의 다수의 행 및 열을 사용하여 루마 샘플을 다운샘플링하는 예를 예시하는 개략도이다.
도 18은 인접한 루마 샘플의 다수의 행 및 열을 사용하여 루마 샘플을 다운샘플링하는 다른 예를 예시하는 개략도이다.
도 19는 CTU의 상측 경계에 있는 루마 블록에 대한 인접한 루마 샘플의 단일 행을 사용하여 다운샘플링하는 예를 예시하는 개략도이다.
도 20은 본 개시내용의 일부 양태에 따른 선형 모델을 사용하여 인트라 예측을 수행하기 위한 방법의 흐름도이다.
도 21은 본 개시내용의 다른 양태에 따른 선형 모델을 사용하여 인트라 예측을 수행하기 위한 방법의 흐름도이다.
도 22는 선행 모델을 사용하여 인트라 예측을 수행하기 위한 장치의 예시적인 구조를 도시하는 블록도이다.
도 23은 본 개시내용의 일부 양태에 따른 비디오 신호에 대한 비트스트림에서 크로마 인트라-코딩 모드를 코딩하는 방법의 흐름도이다.
도 24는 본 개시내용의 일부 양태에 따른 비디오 신호에 대한 비트스트림에서 크로마 인트라-코딩 모드를 디코딩하는 방법의 흐름도이다.
도 25는 비디오 비트스트림을 생성하기 위한 장치의 예시적인 구조를 도시하는 블록도이다.
도 26은 비디오 비트스트림을 디코딩하기 위한 장치의 예시적인 구조를 도시하는 블록도이다.
도 27은 콘텐츠 배포 서비스를 제공하는 콘텐츠 공급 시스템의 예시적인 구조를 도시하는 블록도이다.
도 28은 단말 디바이스의 예의 구조를 도시하는 블록도이다.
아래에서 하나 이상의 예의 예시적인 구현예가 제공되지만, 개시된 시스템 및/또는 방법은 현재 알려져 있거나 존재하는지에 관계없이, 임의의 개수의 기술을 사용하여 구현될 수 있다는 점을 처음부터 이해해야 한다. 본 개시내용은 본 명세서에 도시되고 설명된 예시적인 설계 및 구현예를 비롯하여 아래에서 도시된 예시적인 구현예, 도면 및 기술로 결코 제한되지 않아 야하며, 첨부의 청구항의 범위 내에서 그 등가물의 전체 범위와 함께 수정될 수 있다.
도 1a는 양방향 예측 기술을 이용할 수 있는 예시적인 코딩 시스템(10)을 예시하는 블록도이다. 도 1a에 도시된 바와 같이, 코딩 시스템(10)은 나중에 목적지 디바이스(14)에 의해 디코딩될 인코딩된 비디오 데이터를 제공하는 소스 디바이스(12)를 포함한다. 특히, 소스 디바이스(12)는 비디오 데이터를 컴퓨터 판독 가능 매체(16)를 통해 목적지 디바이스(14)에 제공할 수 있다. 소스 디바이스(12) 및 목적지 디바이스(14)는 데스크톱 컴퓨터, 노트북(즉, 랩톱) 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, 소위 "스마트" 폰, 소위 "스마트" 패드와 같은 전화 핸드셋, 텔레비전, 카메라, 디스플레이 디바이스, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 디바이스 등을 비롯한 임의의 넓은 범위의 디바이스를 포함할 수 있다. 일부 경우에, 소스 디바이스(12) 및 목적지 디바이스(14)는 무선 통신을 위해 구비될 수 있다.
목적지 디바이스(14)는 디코딩될 인코딩된 비디오 데이터를 컴퓨터 판독 가능 매체(16)를 통해 수신할 수 있다. 컴퓨터 판독 가능 매체(16)는 인코딩된 비디오 데이터를 소스 디바이스(12)로부터 목적지 디바이스(14)로 이동할 수 있는 임의의 타입의 매체 또는 디바이스를 포함할 수 있다. 일 예에서, 컴퓨터 판독 가능 매체(16)는 소스 디바이스(12)가 인코딩된 비디오 데이터를 실시간으로 목적지 디바이스(14)로 직접 전송할 수 있도록 하는 통신 매체를 포함할 수 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라 변조되어 목적지 디바이스(14)로 전송될 수 있다. 통신 매체는 라디오 주파수(radio frequency)(RF) 스펙트럼 또는 하나 이상의 물리적 전송 라인과 같은 임의의 무선 또는 유선 통신 매체를 포함할 수 있다. 통신 매체는 근거리 네트워크, 광역 네트워크 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷 기반 네트워크의 일부를 형성할 수 있다. 통신 매체는 소스 디바이스(12)로부터 목적지 디바이스(14)로의 통신을 용이하게 하는데 유용할 수 있는 라우터, 스위치, 기지국 또는 임의의 다른 장비를 포함할 수 있다.
일부 예에서, 인코딩된 데이터는 출력 인터페이스(22)로부터 저장 디바이스로 출력될 수 있다. 마찬가지로, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스로부터 액세스될 수 있다. 저장 디바이스는 하드 드라이브, 블루-레이(Blu-ray) 디스크, 디지털 비디오 디스크(digital video disk)(DVD), 콤팩트 디스크 판독 전용 메모리(Compact Disc Read-Only Memory)(CD-ROM), 플래시 메모리, 휘발성 또는 비 휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하는데 적합한 디지털 저장 매체와 같은 임의의 다양한 분산되거나 국부적으로 액세스되는 데이터 저장 매체를 포함할 수 있다. 추가 예에서, 저장 디바이스는 파일 서버 또는 소스 디바이스(12)에 의해 생성된 인코딩된 비디오를 저장할 수 있는 또 다른 중간 저장 디바이스에 대응할 수 있다. 목적지 디바이스(14)는 스트리밍 또는 다운로드를 통해 저장 디바이스로부터의 저장된 비디오 데이터에 액세스할 수 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 인코딩된 비디오 데이터를 목적지 디바이스(14)로 전송할 수 있는 임의의 타입의 서버일 수 있다. 예시적인 파일 서버는 웹 서버(예를 들어, 웹 사이트 용), 파일 전송 프로토콜(file transfer protocol)(FTP) 서버, 네트워크 연결 저장소(network attached storage)(NAS) 디바이스 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스(14)는 인터넷 연결을 비롯한 임의의 표준 데이터 연결을 통해 인코딩된 비디오 데이터에 액세스할 수 있다. 이것은 무선 채널(예를 들어, Wi-Fi 연결), 유선 연결(예를 들어, 디지털 가입자 회선(digital subscriber line)(DSL), 케이블 모뎀 등) 또는 파일 서버상에 저장된 인코딩된 비디오 데이터에 액세스하는데 적합한 둘 모두의 조합을 포함할 수 있습니다. 저장 디바이스로부터의 인코딩된 비디오 데이터의 전송은 스트리밍 전송, 다운로드 전송 또는 이들의 조합일 수 있다.
본 개시내용의 기술은 반드시 무선 애플리케이션 또는 설정으로 제한되는 것은 아니다. 기술은 공중파 텔레비전 방송, 케이블 텔레비전 전송, 위성 텔레비전 전송, HTTP를 통한 동적 적응 스트리밍(dynamic adaptive streaming over HTTP)(DASH)과 같은 인터넷 스트리밍 비디오 전송, 데이터 저장 매체에 인코딩된 디지털 비디오, 데이터 저장 매체에 저장된 디지털 비디오의 디코딩 또는 다른 애플리케이션과 같은 임의의 다양한 멀티미디어 애플리케이션을 지원하여 비디오 코딩에 적용될 수 있다. 일부 예에서, 코딩 시스템(10)은 단방향 또는 양방향 비디오 전송을 지원하여 비디오 스트리밍, 비디오 재생, 비디오 방송 및/또는 비디오 전화와 같은 애플리케이션을 지원하도록 구성될 수 있다.
도 1a의 예에서, 소스 디바이스(12)는 비디오 소스(18), 비디오 인코더(20) 및 출력 인터페이스(22)를 포함한다. 목적지 디바이스(14)는 입력 인터페이스(28), 비디오 디코더(300) 및 디스플레이 디바이스(32)를 포함한다. 본 개시내용에 따르면, 소스 디바이스(12)의 비디오 인코더(200) 및/또는 목적지 디바이스(14)의 비디오 디코더(300)는 양방향 예측을 위한 기술을 적용하도록 구성될 수 있다. 다른 예에서, 소스 디바이스 및 목적지 디바이스는 다른 컴포넌트 또는 배열을 포함할 수 있다. 예를 들어, 소스 디바이스(12)는 외부 카메라와 같은 외부 비디오 소스로부터 비디오 데이터를 수신할 수 있다. 마찬가지로, 목적지 디바이스(14)는 통합된 디스플레이 디바이스를 포함하는 대신, 외부 디스플레이 디바이스와 인터페이스할 수 있다.
도 1a의 예시된 코딩 시스템(10)은 단지 하나의 예일 뿐이다. 양방향 예측을 위한 기술은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수 있다. 본 개시내용의 기술은 일반적으로 비디오 코딩 디바이스에 의해 수행되지만, 기술은 전형적으로 "CODEC"으로 지칭되는 비디오 인코더/디코더에 의해 수행될 수도 있다. 더욱이, 본 개시내용의 기술은 또한 비디오 프리프로세서에 의해 수행될 수 있다. 비디오 인코더 및/또는 디코더는 그래픽 프로세싱 유닛(graphics processing unit)(GPU) 또는 유사한 디바이스일 수 있다.
소스 디바이스(12) 및 목적지 디바이스(14)는 소스 디바이스(12)가 목적지 디바이스(14)에 전송하기 위한 코딩된 비디오 데이터를 생성하는 그러한 코딩 디바이스의 예일 뿐이다. 일부 예에서, 소스 디바이스(12) 및 목적지 디바이스(14)는 소스 및 목적지 디바이스(12, 14) 각각이 비디오 인코딩 및 디코딩 컴포넌트를 포함하도록 실질적으로 대칭적인 방식으로 동작할 수 있다. 따라서, 코딩 시스템(10)은 비디오 디바이스(12, 14) 사이에서, 예를 들면, 비디오 스트리밍, 비디오 재생, 비디오 방송 및/또는 비디오 전화를 위한 단방향 또는 양방향 비디오 전송을 지원할 수 있다.
비디오 디바이스(12)의 비디오 소스(18)는 비디오 카메라, 이전에 캡처된 비디오를 간직하는 비디오 아카이브 및/또는 비디오 콘텐트 공급업체로부터 비디오를 수신하는 비디오 공급 인터페이스와 같은 비디오 캡처 디바이스를 포함할 수 있다. 추가의 대안으로서, 비디오 소스(18)는 소스 비디오로서 또는 라이브 비디오, 보관된 비디오 및 컴퓨터에 의해 생성된 비디오의 조합으로서 컴퓨터 그래픽 기반 데이터를 생성할 수 있다.
일부 경우에, 비디오 소스(18)가 비디오 카메라일 때, 소스 디바이스(12) 및 목적지 디바이스(14)는 소위 카메라 폰 또는 비디오 폰을 형성할 수 있다. 그러나, 위에서 언급한 바와 같이, 본 개시 내용에서 설명된 기술은 일반적으로 비디오 코딩에 적용될 수 있고, 무선 및/또는 유선 애플리케이션에 적용될 수 있다. 각각의 경우에, 캡처되거나, 미리 캡처되거나, 또는 컴퓨터에 의해 생성된 비디오는 비디오 인코더(20)에 의해 인코딩될 수 있다. 그런 다음에 인코딩된 비디오 정보는 출력 인터페이스(22)에 의해 컴퓨터 판독 가능 매체(16)로 출력될 수 있다.
컴퓨터 판독 가능 매체(16)는 무선 방송 또는 유선 네트워크 전송과 같은 일시적 매체, 또는 하드 디스크, 플래시 드라이브, 콤팩트 디스크, 디지털 비디오 디스크, 블루- 레이(Blu-ray) 디스크, 또는 다른 컴퓨터 판독 가능 매체와 같은 저장 매체(즉, 비 일시적 저장 매체)를 포함할 수 있다. 일부 예에서, 네트워크 서버(도시되지 않음)는 소스 디바이스(12)로부터 인코딩된 비디오 데이터를 수신하고 인코딩된 비디오 데이터를, 예를 들어, 네트워크 전송을 통해 목적지 디바이스(14)에 제공할 수 있다. 유사하게, 디스크 스탬핑 설비(disc stamping facility)와 같은 매체 생산 설비의 컴퓨팅 디바이스는 소스 디바이스(12)로부터 인코딩된 비디오 데이터를 수신하고 인코딩된 비디오 데이터를 담은 디스크를 생성할 수 있다. 그러므로, 다양한 예에서, 컴퓨터 판독 가능 매체(16)는 다양한 형태의 하나 이상의 컴퓨터 판독 가능 매체를 포함하는 것으로 이해될 수 있다.
목적지 디바이스(14)의 입력 인터페이스(28)는 컴퓨터 판독 가능 매체(16)로부터 정보를 수신한다. 컴퓨터 판독 가능 매체(16)의 정보는 비디오 인코더(20)에 의해 정의되는 신택스 정보를 포함할 수 있으며, 신택스 정보는 또한 비디오 디코더(30)에 의해서도 사용되며, 특징 및/또는 블록 및 다른 코딩된 유닛, 예를 들면, 픽처 그룹(Group of Picture)(GOP)의 처리를 서술하는 신택스 요소를 포함한다. 디스플레이 디바이스(32)는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 음극선관(cathode ray tube)(CRT), 액정 디스플레이(liquid crystal display)(LCD), 플라즈마 디스플레이, 유기 발광 다이오드(organic light emitting diode)(OLED) 디스플레이 또는 다른 타입의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스 중 임의의 것을 포함할 수 있다.
비디오 인코더(200) 및 비디오 디코더(300)는 현재 개발 중인 고효율 비디오 코딩(High Efficiency Video Coding)(HEVC) 표준과 같은 비디오 코딩 표준에 따라 동작할 수 있으며 HEVC 테스트 모델(HEVC Test Model)(HM)을 준수할 수 있다. 대안적으로, 비디오 인코더(200) 및 비디오 디코더(300)는 MPEG(Motion Picture Expert Group)-4, Part 10, AVC(Advanced Video Coding)으로도 지칭되는 ITU-T(International Telecommunications Union Telecommunication Standardization Sector) H.264 표준, H.265/HEVC 또는 이러한 표준의 확장과 같은 다른 독점적 또는 산업적 표준에 따라 동작할 수 있다. 그러나, 본 개시내용의 기술은 임의의 특정 코딩 표준으로 제한되지 않는다. 비디오 코딩 표준의 다른 예는 MPEG-2 및 ITU-T H.263을 포함한다. 도 1a에 도시되지 않았지만, 일부 양태에서, 비디오 인코더(200) 및 비디오 디코더(300)는 각각 오디오 인코더 및 디코더와 통합될 수 있고, 적절한 멀티플렉서-디멀티플렉서(MUX-DEMUX) 유닛 또는 다른 하드웨어 및 소프트웨어를 포함하여, 공통 데이터 스트림 또는 별도의 데이터 스트림의 오디오 및 비디오 둘 모두의 인코딩을 처리할 수 있다. 해당한다면, MUX-DEMUX 유닛은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜(User Datagram Protocol)(UDP)과 같은 다른 프로토콜을 준수할 수 있다.
비디오 인코더(200) 및 비디오 디코더(300)는 각각 하나 이상의 마이크로프로세서, 디지털 신호 프로세서(digital signal processor)(DSP), 주문형 집적 회로(application specific integrated circuit)(ASIC), 필드 프로그램 가능 게이트 어레이(field programmable gate array)(FPGA), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합과 같은 다양한 적합한 인코더 회로 중 임의의 것으로 구현될 수 있다. 기술이 부분적으로 소프트웨어로 구현될 때, 디바이스는 적합한 비일시적 컴퓨터 판독 가능 매체에 소프트웨어의 명령어를 저장하고, 명령어를 하나 이상의 프로세서를 사용하는 하드웨어로 실행하여 본 개시내용의 기술을 수행할 수 있다. 비디오 인코더(200) 및 비디오 디코더(300) 각각은 하나 이상의 인코더 또는 디코더에 포함될 수 있으며, 이들 중 어느 하나는 각각의 디바이스에서 결합된 인코더/디코더(CODEC)의 일부로서 통합될 수 있다. 비디오 인코더(200) 및/또는 비디오 디코더(300)를 포함하는 디바이스는 집적 회로, 마이크로프로세서 및/또는 셀룰러 텔레폰과 같은 무선 통신 디바이스를 포함할 수 있다.
도 1b는 예시적인 실시예에 따른 도 2의 인코더(200) 및/또는 도 3의 디코더(300)를 포함하는 비디오 코딩 시스템(40)의 예의 예시적인 다이어그램이다. 시스템(40)은 본 출원의 기술, 예를 들면, 인터 예측의 병합 추정을 구현할 수 있다. 예시된 구현예에서, 비디오 코딩 시스템(40)은 이미징 디바이스(들)(41), 비디오 인코더(20), 비디오 디코더(300)(및/또는 프로세싱 유닛(들)(46)의 로직 회로(47)를 통해 구현된 비디오 코더), 안테나(42), 하나 이상의 프로세서(들)(43), 하나 이상의 메모리 스토어(들)(44) 및/또는 디스플레이 디바이스(45)를 포함할 수 있다.
예시된 바와 같이, 이미징 디바이스(들)(41), 안테나(42), 프로세싱 유닛(들)(46), 로직 회로(47), 비디오 인코더(200), 비디오 디코더(300), 프로세서(들)(43), 메모리 스토어(들)(44) 및/또는 디스플레이 디바이스(45)는 서로 통신할 수 있다. 논의된 바와 같이, 비디오 인코더(200)와 비디오 디코더(300) 모두 함께 예시되었지만, 다양한 실제 시나리오에서 비디오 코딩 시스템(40)은 비디오 인코더(200)만 또는 비디오 디코더(300)만 포함할 수 있다.
도시된 바와 같이, 일부 예에서, 비디오 코딩 시스템(40)은 안테나(42)를 포함할 수 있다. 안테나(42)는, 예를 들면, 비디오 데이터의 인코딩된 비트스트림을 송신 또는 수신하도록 구성될 수 있다. 또한, 일부 예에서, 비디오 코딩 시스템(40)은 디스플레이 디바이스(45)를 포함할 수 있다. 디스플레이 디바이스(45)는 비디오 데이터를 제공하도록 구성될 수 있다. 도시된 바와 같이, 일부 예에서, 로직 회로(47)는 프로세싱 유닛(들)(46)을 통해 구현될 수 있다. 프로세싱 유닛(들)(46)은 주문형 집적 회로(ASIC) 로직, 그래픽 프로세서(들), 범용 프로세서(들) 등을 포함할 수 있다. 비디오 코딩 시스템(40)은 또한 유사하게 주문형 집적 회로(ASIC) 로직, 그래픽 프로세서(들), 범용 프로세서(들) 등을 포함할 수 있는 선택적인 프로세서(들)(43)를 포함할 수 있다. 일부 예에서, 로직 회로(47)는 하드웨어, 비디오 코딩 전용 하드웨어 등을 통해 구현될 수 있고, 프로세서(들)(43)는 범용 소프트웨어, 운영 체제 등을 통해 구현될 수 있다. 또한, 메모리 스토어(들)(44)는 휘발성 메모리(예를 들어, 정적 랜덤 액세스 메모리(Static Random Access Memory)(SRAM), 동적 랜덤 액세스 메모리(Dynamic Random Access Memory)(DRAM) 등) 또는 비 휘발성 메모리(예를 들어, 플래시 메모리 등) 등과 같은 임의의 타입의 메모리일 수 있다. 비제한적인 예에서, 메모리 스토어(들)(44)는 캐시 메모리에 의해 구현될 수 있다. 일부 예에서, 로직 회로(47)는 (예를 들어 이미지 버퍼의 구현을 위한) 메모리 스토어(들)(44)에 액세스 할 수 있다. 다른 예에서, 로직 회로(47) 및/또는 프로세싱 유닛(들)(46)은 이미지 버퍼 등의 구현을 위한 메모리 스토어(예를 들어, 캐시 등)를 포함할 수 있다.
일부 예에서, 로직 회로를 통해 구현되는 비디오 인코더(200)는 (예를 들어, 프로세싱 유닛(들)(46) 또는 메모리 스토어(들)(44)를 통해) 이미지 버퍼 및 (예를 들어, 프로세싱 유닛(들)(46)을 통해) 그래픽 프로세싱 유닛을 포함할 수 있다. 그래픽 프로세싱 유닛은 이미지 버퍼에 통신 가능하게 결합될 수 있다. 그래픽 프로세싱 유닛은 도 2를 참조하여 논의된 바와 같은 다양한 모듈 및/또는 본 명세서에 설명된 임의의 다른 인코더 시스템 또는 서브시스템을 구현하기 위해 로직 회로(47)를 통해 구현되는 비디오 인코더(200)를 포함할 수 있다. 로직 회로는 본 명세서에서 논의되는 바와 같은 다양한 동작을 수행하도록 구성될 수 있다.
비디오 디코더(300)는 도 3의 디코더(300)와 관련하여 논의된 바와 같은 다양한 모듈 및/또는 본 명세서에 설명된 임의의 다른 디코더 시스템 또는 서브시스템을 구현하기 위해 로직 회로(47)를 통해 구현되는 것과 유사한 방식으로 구현될 수 있다. 일부 예에서, 로직 회로를 통해 구현될 수 있는 비디오 디코더(300)는 (예를 들어, 프로세싱 유닛(들)(46) 또는 메모리 스토어(들)(44)를 통해) 이미지 버퍼 및 (예를 들어, 프로세싱 유닛(들)(46)을 통해) 그래픽 프로세싱 유닛을 포함할 수 있다. 그래픽 프로세싱 유닛은 이미지 버퍼에 통신 가능하게 결합될 수 있다. 그래픽 프로세싱 유닛은 도 3과 관련하여 논의된 바와 같은 다양한 모듈을 구현하기 위해 로직 회로(47)에 의해 구현되는 비디오 디코더(300) 및/또는 본 명세서에 설명된 임의의 다른 디코더 시스템 또는 서브시스템을 포함할 수 있다.
일부 예에서, 비디오 코딩 시스템(40)의 안테나(42)는 비디오 데이터의 인코딩된 비트스트림을 수신하도록 구성될 수 있다. 논의된 바와 같이, 인코딩된 비트 스트림은 본 명세서에서 논의된 바와 같이 비디오 프레임을 인코딩하는 것과 연관된 데이터, 표시자, 인덱스 값, 모드 선택 데이터 등, 이를테면 코딩 파티션과 연관된 데이터(예를 들어, 변환 계수 또는 양자화된 변환 계수, 또는 (논의된 바와 같은) 선택적인 표시자 및/또는 코딩 파티션을 정의하는 데이터)를 포함할 수 있다. 비디오 코딩 시스템(40)은 또한 안테나(42)에 결합되고 인코딩된 비트스트림을 디코딩하도록 구성된 디코더(300)를 포함할 수 있다. 디스플레이 디바이스(45)는 비디오 프레임을 제공하도록 구성된다.
도 2는 본 출원의 기술을 구현할 수 있는 비디오 인코더(200)의 예를 예시하는 블록도이다. 비디오 인코더(200)는 비디오 슬라이스 내의 비디오 블록의 인트라- 및 인터-코딩을 수행할 수 있다. 인트라-코딩은 공간적 예측에 의존하여 주어진 비디오 프레임 또는 픽처 내에서 비디오의 공간적 중복을 줄이거나 제거한다. 인터-코딩은 시간적 예측에 의존하여 비디오 시퀀스의 인접한 프레임 또는 픽처 내의 비디오에서 시간적 중복성을 줄이거나 제거한다. 인트라 모드(I 모드)는 여러 공간 기반 코딩 모드 중 임의의 것을 지칭할 수 있다. 단방향 예측(P 모드) 또는 양방향 예측(B 모드)과 같은 인터-모드는 여러 시간 기반 코딩 모드 중 임의의 것을 지칭할 수 있다.
도 2는 본 개시내용의 기술을 구현하도록 구성된 예시적인 비디오 인코더(200)의 개략적/개념적 블록도를 도시한다. 도 2의 예에서, 비디오 인코더(200)는 잔차 계산 유닛(204), 변환 프로세싱 유닛(206), 양자화 유닛(208), 역 양자화 유닛(210) 및 역 변환 프로세싱 유닛(212), 복원 유닛(214), 버퍼(216), 루프 필터 유닛(220), 디코딩된 픽처 버퍼(decoded picture buffer)(DPB)(230), 예측 프로세싱 유닛(260) 및 엔트로피 인코딩 유닛(270)을 포함한다. 예측 프로세싱 유닛(260)은 인터 추정(242), 인터 예측 유닛(244), 인트라 추정(252), 인트라 예측 유닛(254) 및 모드 선택 유닛(262)을 포함할 수 있다. 인터 예측 유닛(244)는 움직임 보상 유닛(도시되지 않음)을 더 포함할 수 있다. 도 2에 도시된 인코더(200)는 또한 하이브리드 비디오 인코더 또는 하이브리드 비디오 코덱에 따라 비디오 인코더라고도 지칭될 수 있다.
예를 들어, 잔차 계산 유닛(204), 변환 프로세싱 유닛(206), 양자화 유닛(208), 예측 프로세싱 유닛(260) 및 엔트로피 인코딩 유닛(270)은 인코더(200)의 순방향 신호 경로를 형성하는 반면, 예를 들어, 역 양자화 유닛(210), 역 변환 프로세싱 유닛(212), 복원 유닛(214), 버퍼(216), 루프 필터(220), 디코딩된 픽처 버퍼(DPB)(260), 예측 프로세싱 유닛(260)은 인코더의 역방향 신호 경로를 형성하며, 여기서 인코더의 역방향 신호는 디코더의 신호 경로에 대응한다(도 3의 디코더(300) 참조).
인코더(200)는, 예를 들어, 입력(202)에 의해, 픽처(201) 또는 픽처(201)의 블록(203), 예를 들어, 비디오 또는 비디오 시퀀스를 형성하는 픽처 시퀀스의 픽처를 수신하도록 구성된다. 픽처 블록(203)은 또한 현재 픽처 블록 또는 코딩될 픽처 블록으로 지칭될 수 있고, 픽처(201)는 현재 픽처 또는 코딩될 픽처(특히, 현재 픽처를 다른 픽처와 구별하는 비디오 코딩에서, 예를 들면, 동일한 비디오 시퀀스의 이전에 인코딩된 및/또는 디코딩된 픽처, 즉, 현재 픽처를 또한 포함하는 비디오 시퀀스)로 지칭될 수 있다.
파티셔닝(PARTITIONING)
인코더(200)의 실시예는 픽처(201)를 예를 들어 블록(203)과 같은 복수의 블록으로, 전형적으로는 중첩하지 않는 복수의 블록으로 파티션하도록 구성된 파티셔닝 유닛(도 2에 도시되지 않음)을 포함할 수 있다. 파티셔닝 유닛은 비디오 시퀀스의 모든 픽처에 대해 동일한 블록 크기 및 블록 크기를 정의하는 대응하는 그리드를 사용하거나 또는 픽처 또는 픽처의 서브세트 또는 그룹 사이에서 블록 크기를 변경하고, 각 픽처를 대응하는 블록으로 파티션하도록 구성될 수 있다.
HEVC 및 다른 비디오 코딩 사양서에서, 픽처의 인코딩된 표현을 생성하기 위해, 한 세트의 코딩 트리 유닛(coding tree unit)(CTU)이 생성될 수 있다. CTU 각각은 루마 샘플의 코딩 트리 블록, 크로마 샘플의 대응하는 두 개의 코딩 트리 블록, 및 코딩 트리 블록의 샘플을 코딩하는데 사용되는 신택스 구조를 포함할 수 있다. 모노크롬 픽처 또는 세 개의 별개 컬러 평면을 갖는 픽처에서, CTU는 단일 코딩 트리 블록 및 코딩 트리 블록의 샘플을 코딩하는데 사용되는 신택스 구조를 포함할 수 있다. 코딩 트리 블록은 NxN 샘플 블록일 수 있다. CTU는 또한 "트리 블록" 또는 "최대 코딩 유닛(largest coding unit)”(LCU)으로 지칭될 수 있다. HEVC의 CTU는 H.264/AVC와 같은 다른 표준의 매크로블록과 대체로 유사할 수 있다. 그러나 CTU는 반드시 특정 크기로 제한되는 것은 아니고 하나 이상의 코딩 유닛(coding unit)(CU)을 포함할 수 있다. 슬라이스는 래스트 주사 순서로 연속적으로 정렬되는 정수 개의 CTU를 포함할 수 있다.
HEVC에서, CTU는 다양한 로컬 특성에 적응하기 위해 코딩 트리라고 표시된 쿼드 트리 구조를 사용하여 CU로 분할된다. 인터-픽처(시간적) 또는 인트라-픽처(공간적) 예측을 사용하여 픽처를 코딩할지의 여부는 CU 레벨에서 결정된다. CU는 루마 샘플의 코딩 블록 및 루마 샘플 어레이, Cb 샘플 어레이, Cr 샘플 어레이를 갖는 픽처의 크로마 샘플의 두 개의 대응하는 코딩 블록, 그리고 코딩 블록의 샘플을 코딩하는 데 사용되는 신택스 구조를 포함할 수 있다. 모노크롬 픽처 또는 세 개의 별개 컬러 평면을 갖는 픽처에서, CU는 단일 코딩 블록 및 코딩 블록의 샘플을 코딩하는데 사용되는 신택스 구조를 포함할 수 있다. 코딩 블록은 NxN 샘플 블록이다. 일부 예에서, CU는 동일한 크기의 CTU일 수 있다. 각각의 CU는 예를 들어, 인트라 코딩 모드 또는 인터 코딩 모드일 수도 있는 하나의 코딩 모드로 코딩된다. 다른 코딩 모드가 또한 가능하다. 인코더(200)는 비디오 데이터를 수신한다. 인코더(200)는 비디오 데이터의 픽처의 슬라이스 내 각각의 CTU 를 인코딩할 수 있다. CTU의 인코딩의 일부로서, 인코더(200)의 예측 프로세싱 유닛(260) 또는 다른 프로세싱 유닛(도 2에 도시된 인코더(200)의 유닛을 포함하지만, 이것으로 제한되지 않음)은 파티셔닝을 수행하여 CTU의 CTB를 점진적으로 더 작은 블록(203)으로 나눌 수 있다. 더 작은 블록은 CU의 코딩 블록일 수 있다.
비트스트림 내 신택스 데이터는 또한 CTU의 크기를 정의할 수 있다. 슬라이스는 코딩 순서에서 연속적인 다수의 CTU를 포함한다. 비디오 프레임 또는 이미지 또는 픽처는 하나 이상의 슬라이스로 파티션될 수 있다. 위에서 언급한 바와 같이, 각각의 트리 블록은 쿼드-트리에 따라 코딩 유닛(CU)으로 분할될 수 있다. 일반적으로, 쿼드-트리 데이터 구조는 CU당 하나의 노드를 포함하고, 루트 노드는 트리블록(예를 들면, CTU)에 대응한다. CU가 4개의 하위 CU(sub-CU)로 분할되면, CU에 대응하는 노드는 4개의 차일드 노드(child node)를 포함하고, 각 차일드 노드는 하위 CU 중 하나에 대응한다. 쿼드-트리 구조에서 복수의 노드는 리프 노드(leaf node) 및 비 리프 노드(non-leaf node)를 포함한다. 리프 노드는 트리 구조에서 차일드 노드를 갖지 않는다(즉, 리프 노드는 더 이상 분할되지 않는다). 비 리프 노드는 트리 구조의 루트 노드를 포함한다. 복수의 노드 중 각각의 비 루트 노드의 경우, 각각의 비 루트 노드는 각각의 비 루트 노드의 트리 구조에서 페어런트 노드(parent node)에 대응하는 CU의 하위 CU에 대응한다. 각각의 비 리프 노드는 트리 구조에서 하나 이상의 차일드 노드를 갖는다.
쿼드-트리 데이터 구조의 각각의 노드는 대응하는 CU에 대한 신택스 데이터를 제공할 수 있다. 예를 들어, 쿼드-트리에서 노드는 노드에 대응하는 CU가 하위 CU로 분할되어 있는지를 표시하는 분할 플래그(split flag)를 포함할 수 있다. CU에 대한 신택스 요소는 재귀적으로 정의될 수 있고, CU가 하위 CU로 분할되어 있는지에 따라 달라질 수 있다. CU가 더 이상 분할되지 않으면, 이것은 리프-CU라고 지칭된다. CU의 블록이 더 분할되면, 이것은 일반적으로 비 리프-CU라고 지칭될 수 있다. 파티셔닝의 각 레벨은 4개의 하위 CU로 분할된 쿼드-트리이다. 블랙 CU는 리프-노드(즉, 더 이상 분할되지 않는 블록)의 예이다.
CU는 CU가 크기 구분이 없다는 점을 제외하고는 H.264 표준의 매크로블록과 유사한 목적을 갖고 있다. 예를 들어, 트리 블록은 4개의 차일드 노드(하위 CU라고도 함)로 분할되고, 각각의 차일드 노드는 차례로 페어런트 노드일 수 있고 다른 4개의 차일드 노드로 분할될 수 있다. 쿼드트리의 리프 노드라고 하는 최종의 분할되지 않은 차일드 노드는 리프-CU라고도 하는 코딩 노드를 포함한다. 코딩된 비트스트림 과 연관된 신택스 데이터는 트리 블록이 분할될 수 있는, 최대 CU 깊이라고 하는, 최대 횟수를 정의할 수 있고, 또한 코딩 노드의 최소 크기를 정의할 수 있다. 따라서, 비트스트림은 또한 최소 코딩 유닛(smallest coding unit)(SCU)을 정의할 수 있다. "블록"이라는 용어는 HEVC의 맥락에서 CU, PU 또는 TU 중 임의의 것을 지칭하거나, 또는 다른 표준의 맥락에서는 유사한 데이터 구조(예를 들어, H.264/AVC 에서 매크로블록 및 그의 하위 블록)을 지칭하는데 사용된다.
HEVC 에서, 각각의 CU는 PU 분할 타입에 따라 한 개, 두 개 또는 네 개의 PU로 더 분할될 수 있다. 하나의 PU 내에서, 동일한 예측 프로세스가 적용되고 관련 정보가 PU 기반으로 디코더로 전송된다. PU 분할 타입에 기초하여 예측 프로세스를 적용함으로써 잔차 블록을 획득한 후에, CU는 CU에 대한 코딩 트리와 유사한 다른 쿼드-트리 구조에 따라 변환 유닛(transform unit)(TU)으로 파티션될 수 있다. HEVC 구조의 주요 특징 중 하나는 이것이 CU, PU 및 TU를 포함하는 다수의 파티션 개념을 갖고 있다는 것이다. PU는 정사각형이 아닌 형상으로 파티션될 수 있다. CU와 연관된 신택스 데이터는 또한, 예를 들어, CU를 하나 이상의 PU로 파티션하는 것을 서술할 수 있다. TU는 정사각형 또는 정사각형이 아닌(예를 들어, 직사각형) 형상일 수 있고, CU와 연관된 신택스 데이터는, 예를 들어, CU가 쿼드-트리에 따라 하나 이상의 TU로 파티션되는 것을 서술할 수 있다. 파티셔닝 모드는 CU가 스킵이거나 또는 직접 모드로 인코딩되거나, 인트라-예측 모드로 인코딩되거나, 또는 인터-예측 모드로 인코딩되는지 여부마다 상이할 수 있다.
범용 비디오 코딩(Versatile Video Coding)(VVC)는 PU와 TU 개념의 분리를 없애고, CU 파티션 형상에 대해 보다 많은 유연성을 지원한다. CU의 크기는 코딩 노드의 크기에 대응하고, 정사각형 또는 정사각형이 아닌(예를 들어, 직사각형) 형상일 수 있다. CU의 크기는 4x4 픽셀(또는 8x8 픽셀)부터 최대 128x128 픽셀 이상(예를 들면, 256x 256 픽셀)의 트리 블록의 크기까지를 범위로 할 수 있다.
인코더(200)가 CU에 대한 예측 블록(예를 들어, 루마, Cb 및 Cr 예측 블록)을 생성한 후에, 인코더(200)는 CU에 대한 잔차 블록을 생성할 수 있다. 예를 들어, 인코더(200)는 CU에 대한 루마 잔차 블록을 생성할 수 있다. CU의 루마 잔차 블록 내 각 샘플은 CU의 예측 루마 블록 내 루마 샘플과 CU의 원래 루마 코딩 블록 내 대응하는 샘플 간의 차를 표시한다. 또한, 인코더(200)는 CU에 대한 Cb 잔차 블록을 생성할 수 있다. CU의 Cb 잔차 블록 내 각 샘플은 CU의 예측 Cb 블록 내 Cb 샘플과 CU의 원래 Cb 코딩 블록 내 대응하는 샘플 간의 차를 표시할 수 있다. 인코더(200)는 또한 CU에 대한 Cr 잔차 블록을 생성할 수 있다. CU의 Cr 잔차 블록 내 각 샘플은 CU의 예측 Cr 블록 내 Cr 샘플과 CU의 원래 Cr 코딩 블록 내 대응하는 샘플 간의 차를 표시할 수 있다.
일부 예에서, 인코더(200)는 변환 블록에 변환을 적용하는 것을 스킵한다. 이러한 예에서, 인코더(200)는 변환 계수와 동일한 방식으로 잔차 샘플 값을 처리할 수 있다. 따라서, 인코더(200)가 변환을 적용하는 것을 스킵하는 예에서, 변환 계수 및 계수 블록에 관한 다음과 같은 논의가 잔차 샘플의 변환 블록에 적용될 수 있다.
계수 블록(예를 들어, 루마 계수 블록, Cb 계수 블록 또는 Cr 계수 블록)을 생성한 후에, 인코더(200)는 계수 블록을 양자화하여 가능하게는 계수 블록을 나타내는데 사용되는 데이터의 양을 감소시켜 잠재적으로 추가 압축을 제공할 수 있다. 양자화는 일반적으로 값 범위가 단일 값으로 압축되는 프로세스를 말한다. 인코더(200)가 계수 블록을 양자화한 후에, 인코더(200)는 양자화된 변환 계수를 표시하는 신택스 요소를 엔트로피 인코딩할 수 있다. 예를 들어, 인코더(200)는 양자화된 변환 계수를 표시하는 신택스 요소에 대해 컨텍스트 적응 이진 산술 코딩(Context-Adaptive Binary Arithmetic Coding)(CABAC) 또는 다른 엔트로피 코딩 기술을 수행할 수 있다.
인코더(200)는 코딩된 픽처 및 연관된 데이터의 표현을 형성하는 비트 시퀀스를 포함하는 인코딩된 픽처 데이터(271)의 비트스트림을 출력할 수 있다. 따라서, 비트스트림은 비디오 데이터의 인코딩된 표현을 포함한다.
J. An et al., "Block partitioning structure for next generation video coding", International Telecommunication Union, COM16-C966, 2015년 9월(이하 "VCEG 제안 COM16-C966")에서, HEVC를 넘어서는 미래의 비디오 코딩 표준을 위해 쿼드-트리-이진-트리(quad-tree-binary-tree)(QTBT) 파티셔닝 기술이 제안되었다. 시뮬레이션은 제안된 QTBT 구조가 사용된 HEVC에서 쿼드-트리 구조보다 더 효율적이라는 것을 보여주었다. HEVC에서, 움직임 보상의 메모리 액세스를 줄이기 위해 작은 블록에 대한 인터 예측이 제한되어, 4x8 및 8x4 블록에 대해서는 양방향 예측이 지원되지 않고 4x4 블록에 대해서는 인터 예측이 지원되지 않도록 한다. JEM의 QTBT에서는 이러한 제한사항이 제거된다.
QTBT에서, CU는 정사각형 또는 직사각형 형상을 가질 수 있다. 예를 들어, 코딩 트리 유닛(CTU)은 먼저 쿼드트리 구조에 의해 파티션된다. 쿼드트리 리프 노드는 이진 트리 구조에 의해 더 파티션될 수 있다. 이진 트리 분할에서, 대칭적 수평 분할 및 대칭적 수직 분할의 두 개의 분할 타입이 있다. 각각의 경우, 노드는 노드를 수평 또는 수직으로 중간을 양분함으로써 분할된다. 이진 트리 리프 노드는 코딩 유닛(CU)이라고 부르며, 그 세분화는 임의의 추가 파티셔닝 없이 예측 및 변환 처리를 위해 사용된다. 이것은 CU, PU 및 TU가 QTBT 코딩 블록 구조에서 동일한 블록 크기를 갖는다는 것을 의미한다. CU는 때때로 다른 상이한 컬러 컴포넌트의 코딩 블록(coding block)(CB)으로 구성되고, 예를 들면, 하나의 CU는 4:2:0 크로마 포맷의 P 및 B 슬라이스의 경우에 하나의 루마 CB와 두 개의 크로마 CB를 포함하고, 때로는 단일 컴포넌트의 CB로 구성되며, 예를 들면, 하나의 CU는 I 슬라이스의 경우에 하나의 루마 CB만 포함하거나 또는 두 개의 크로마 CB만 포함한다.
다음의 파라미터는 QTBT 파티셔닝 방식에 대해 정의된다.
- CTU 크기: 쿼드트리의 루트 노드 크기, HEVC에서와 동일한 개념임
- MinQTSize: 허용된 최소 쿼드트리 리프 노드 크기
- MaxBTSize : 허용된 최대 이진 트리 루트 노드 크기
- MaxBTDepth: 허용된 최대 이진 트리 깊이
- MinBTSize: 허용된 최소 이진 트리 리프 노드 크기
QTBT 파티셔닝 구조의 한 예에서, (폭과 높이 모두에 대해) CTU 크기는 두 개의 64x64 크로마 샘플 블록에 대응하는 128x128 루마 샘플로 설정되고, MinQTSize는 16x16으로 설정되고, MaxBTSize는 64x64로 설정되고, MinBTSize는 4x4로 설정되며, MaxBTDepth는 4로 설정된다. 쿼드트리 파티셔닝이 먼저 CTU에 적용되어 쿼드트리 리프 노드를 생성한다. 쿼드트리 리프 노드는 16x16(즉, MinQTSize)로부터 128x128(즉, CTU 크기)까지의 크기를 가질 수 있다. 쿼드트리 노드가 MinQTSize와 동일한 크기를 가질 때, 더 이상의 쿼드트리가 고려되지 않는다. 리프 쿼드트리 노드가 128x128이면, 이것은 크기가 MaxBTSize(즉, 64x64)를 초과하므로 이진 트리에 의해 더 이상 분할되지 않는다. 그러하지 않으면, 리프 쿼드트리 노드는 이진 트리에 의해 더 파티션될 수 있다. 그러므로 쿼드트리 리프 노드 역시 이진 트리의 루트 노드이고, 0의 이진 트리 깊이를 갖는다. 이진 트리 깊이가 MaxBTDepth(즉, 4)에 도달할 때, 더 이상의 분할은 고려되지 않는다. 이진 트리 노드가 MinBTSize(즉, 4)와 동일한 폭을 가질 때, 더 이상의 수평 분할은 고려되지 않는다. 유사하게, 이진 트리 노드가 MinBTSize와 동일한 높이를 가질 때, 더 이상의 수직 분할은 고려되지 않는다. 이진 트리의 리프 노드는 임의의 추가 파티셔닝 없이 예측 및 변환 처리에 의해 추가 처리된다. JEM에서, 최대 CTU 크기는 256×256 루마 샘플이다. 이진 트리의 리프 노드(CU)는 임의의 추가 파티셔닝없이 (예를 들어, 예측 프로세스 및 변환 프로세스를 수행함으로써) 추가 처리될 수 있다.
또한, QTBT 방식은 루마 및 크로마가 별도의 QTBT 구조를 가질 수 있도록 지원한다. 현재, P 및 B 슬라이스의 경우, 하나의 CTU 내 루마 및 크로마 CTB는 동일한 QTBT 구조를 공유할 수 있다. 그러나, I 슬라이스의 경우, 루마 CTB는 QTBT 구조에 의해 CU로 파티션되고, 크로마 CTB는 다른 QTBT 구조에 의해 크로마 CU로 파티션될 수 있다. 이것은 I 슬라이스 내 CU가 루마 컴포넌트의 코딩 블록 또는 두 개의 크로마 컴포넌트의 코딩 블록으로 구성되고, P 또는 B 슬라이스 내 CU가 모두 세 개의 컬러 컴포넌트의 코딩 블록으로 구성된다는 것을 의미한다.
인코더(200)는 블록 파티셔닝을 결정하기 위해 QTBT 구조에 대한 레이트 왜곡 최적화(rate-distortion Optimization)(RDO) 프로세스를 적용한다.
또한, QT, BT 및/또는 QTBT 기반 CU 구조를 대체하기 위해 MTT(multi-type-tree)라고 명명된 블록 파티셔닝 구조가 미국 특허 출원 공개 번호 20170208336에 제안되어있다. MTT 파티셔닝 구조는 여전히 재귀적 트리 구조이다. MTT에서, 다수의 상이한 파티션 구조(예를 들어, 세 개 이상)이 사용된다. 예를 들어, MTT 기술에 따르면, 트리 구조의 각각의 깊이에서, 트리 구조의 각각의 비 리프 노드에 대해 3 개 이상의 상이한 파티션 구조가 사용될 수 있다. 트리 구조에서 노드의 깊이는 노드에서부터 트리 구조의 루트까지의 경로의 길이(예를 들어, 분할의 수)를 지칭할 수 있다. 파티션 구조는 일반적으로 블록이 몇 개의 상이한 블록으로 나누어질 수 있는지를 말할 수 있다. 파티션 구조는 블록을 4 개의 블록으로 나눌 수 있는 쿼드트리 파티셔닝 구조, 블록을 2 개의 블록으로 나눌 수 있는 이진 트리 파티셔닝 구조, 또는 블록을 3 개의 블록으로 나눌 수 있는 트리플 트리 파티셔닝 구조일 수 있고, 뿐만 아니라, 트리플 트리 파티셔닝 구조는 중앙을 통해 블록을 나누지 않을 수 있다. 파티션 구조는 다수의 상이한 파티션 타입을 가질 수 있다. 파티션 타입은 또한 대칭 또는 비대칭 파티셔닝, 균일 또는 비 균일 파티셔닝, 및/또는 수평 또는 수직 파티셔닝을 비롯하여 블록이 나누어지는 방법을 정의할 수 있다.
MTT에서, 트리 구조의 각각의 깊이에서, 인코더(200)는 3 개 더 많은 파티셔닝 구조 중 하나로부터의 특정 파티션 타입을 사용하여 서브 트리를 더 분할하도록 구성될 수 있다. 예를 들어, 인코더(200)는 QT, BT, 트리플 트리(triple-tree)(TT) 및 다른 파티셔닝 구조로부터 특정 파티션 타입을 결정하도록 구성될 수 있다. 일 예에서, QT 파티셔닝 구조는 정사각형 쿼드트리 또는 직사각형 쿼드트리 파티셔닝 타입을 포함할 수 있다. 인코더(200)는 정사각형 쿼드트리 파티셔닝을 사용하여 블록을 수평 및 수직 양쪽으로 중앙을 4 개의 동일한 크기의 정사각형 블록으로 나눔으로써 정사각형 블록을 파티션할 수 있다. 마찬가지로, 인코더(200)는 직사각형 쿼드트리 파티션을 사용하여 블록을 수평 및 수직 양쪽으로 중앙을 4 개의 동일한 크기의 직사각형 블록으로 나눔으로써 직사각형 블록(비 정사각형)을 파티션할 수 있다.
BT 파티셔닝 구조는 수평 대칭 이진 트리, 수직 대칭 이진 트리, 수평 비대칭 이진 트리, 또는 수직 비대칭 이진 트리 파티션 타입 중 적어도 하나를 포함할 수 있다. 수평 대칭 이진 트리 파티션 타입의 경우, 인코더(200)는 블록을 동일한 크기의 두 개의 대칭 블록으로 수평으로 양분하도록 구성될 수 있다. 수직 대칭 이진 트리 파티션 타입의 경우, 인코더(200)는 블록을 동일한 크기의 두 개의 대칭 블록으로 수직으로 양분하도록 구성될 수 있다. 수평 비대칭 이진 트리 파티션 타입의 경우, 인코더(200)는 블록을 상이한 크기의 두 개의 블록으로 수평으로 양분하도록 구성될 수 있다. 예를 들어, PART_2N×nU 또는 PART_2N×nD 파티션 타입과 유사하게, 하나의 블록은 페어런트 블록의 크기의 1/4이고 다른 블록은 페어런트 블록의 크기의 3/4일 수 있다. 수직 비대칭 이진 트리 파티션 타입의 경우, 인코더(200)는 블록을 상이한 크기의 두 개의 블록으로 수직으로 양분하도록 구성될 수 있다. 예를 들어, PART_nL×2N 또는 PART_nR×2N 파티션 타입과 유사하게, 하나의 블록은 페어런트 블록의 크기의 1/4이고 다른 블록은 페어런트 블록의 크기의 3/4일 수 있다. 다른 예에서, 비대칭 이진 트리 파티션 타입은 페어런트 블록을 상이한 크기 부분으로 나눌 수 있다. 예를 들어, 하나의 서브 블록은 페어런트 블록의 3/8일 수 있고 다른 서브 블록은 페어런트 블록의 5/8일 수 있다. 물론, 이러한 파티션 타입은 수직 또는 수평 중 어느 것일 수 있다.
TT 파티션 구조는 TT 파티션 구조가 블록을 양분하지 않는다는 점에서 QT 또는 BT 구조와 다르다. 블록의 중앙 영역은 동일한 서브 블록에서 함께 유지된다. 4 개의 블록을 생성하는 QT 또는 2 개의 블록을 생성하는 이진 트리와 달리, TT 파티션 구조에 따른 분할은 3 개의 블록을 생성한다. TT 파티션 구조에 따른 예시적인 파티션 타입은 대칭 파티션 타입(수평 및 수직 모두)은 물론이고, 비대칭 파티션 타입(수평 및 수직 모두)을 포함된다. 뿐만 아니라, TT 파티션 구조에 따른 대칭 파티션 타입은 불균일/비균일 또는 균등/균일일 수 있다. TT 파티션 구조에 따른 비대칭 파티션 타입은 불균일/비균일이다. 일 예에서, TT 파티션 구조는 다음과 같은 파티션 타입: 수평 균등/균일 대칭 트리플 트리, 수직 균등/균일 대칭 트리플 트리, 수평 불균일/비균일 대칭 트리플 트리, 수직 불균일/비균일 대칭 트리플 트리, 수평 불균일/비균일 비대칭 트리플 트리 또는 수직 불균일/비균일 비대칭 트리플 트리 파티션 타입 중 적어도 하나를 포함할 수 있다.
일반적으로, 불균일/비균일 대칭 트리플 트리 파티션 타입은 블록의 중심선을 중심으로 대칭적인 파티션 타입이지만, 이 경우 결과적인 3 개의 블록 중 적어도 하나는 다른 두 개와 동일한 크기가 아니다. 하나의 바람직한 예는 측면 블록이 블록 크기의 14이고 중앙 블록이 블록 크기의 12 인 경우이다. 균등/균일 대칭 트리플 트리 파티션 타입은 블록의 중심 선을 중심으로 대칭적인 파티션 타입이고, 결과적인 블록은 모두 동일한 크기이다. 이러한 파티션은 수직 분할 또는 수평 분할에 따른 블록 높이 또는 폭이 3의 배수이면 가능하다. 불균일/비균일 비대칭 트리플 트리 파티션 타입은 블록의 중심선을 중심으로 대칭적이 아닌 파티션 타입이고, 이 경우 결과적인 블록 중 적어도 하나는 다른 두 개와 동일한 크기가 아니다.
(예를 들어, 서브 트리 노드에서) 블록이 비대칭 트리플 트리 파티션 타입으로 분할되는 예에서, 인코더(200) 및/또는 디코더(300)는 3 개의 파티션 중 2 개가 동일한 크기를 갖도록 하는 제한 사항을 적용할 수 있다. 이러한 제한 사항은 인코더(200)가 비디오 데이터를 인코딩 할 때 준수해야하는 제한에 대응할 수 있다. 또한, 일부 예에서, 인코더(200) 및 디코더(300)는 비대칭 트리플 트리 파티션 타입에 따라 분할할 때 두 파티션의 면적의 합이 나머지 파티션의 면적과 동일한 제한 사항을 적용할 수 있다.
일부 예에서, 인코더(200)는 QT, BT 및 TT 파티션 구조 각각에 대해 전술한 모든 파티션 타입 중에서 선택하도록 구성될 수 있다. 다른 예에서, 인코더(200)는 전술한 파티션 타입의 서브 세트 중에서 파티션 타입을 결정하도록만 구성될 수 있다. 예를 들어, 위에서 논의된 파티션 타입(또는 다른 파티션 타입)의 서브 세트는 특정 블록 크기 또는 쿼드트리 구조의 특정 깊이에 대해 사용될 수 있다. 지원되는 파티션 타입의 서브 세트는 디코더(200)에 의해 사용하기 위해 비트스트림에서 시그널링될 수 있거나 또는 인코더(200) 및 디코더(300)가 임의의 시그널링없이 서브 세트를 결정할 수 있도록 미리 정의될 수 있다.
다른 예에서, 지원되는 파티셔닝 타입의 수는 모든 CTU의 모든 깊이에 대해 고정될 수 있다. 즉, 인코더(200) 및 디코더(300)는 CTU의 임의의 깊이에 대해 동일한 수의 파티셔닝 타입을 사용하도록 미리 구성될 수 있다. 다른 예에서, 지원되는 파티셔닝 타입의 수는 다양할 수 있고 깊이, 슬라이스 타입 또는 다른 이전에 코딩된 정보에 따라 달라질 수 있다. 일 예에서, 트리 구조의 깊이 0 또는 깊이 1에서는 QT 파티션 구조만 사용된다. 1보다 큰 깊이에서는 각각의 QT, BT 및 TT 파티션 구조가 사용될 수 있다.
일부 예에서, 인코더(200) 및/또는 디코더(300)는 비디오 픽처의 특정 영역 또는 CTU의 영역에 대해 중복된 파티셔닝을 피하기 위해 지원되는 파티셔닝 타입에 대해 미리 구성된 제약 사항을 적용할 수 있다. 일 예에서, 블록이 비대칭 파티션 타입으로 분할될 때, 인코더(200) 및/또는 디코더(300)는 현재 블록으로부터 분할된 가장 큰 서브 블록을 더 이상 분할하지 않도록 구성될 수 있다. 예를 들어, 정사각형 블록이 (PART_2N×nU 파티션 타입과 유사한) 비대칭 파티션 타입에 따라 분할될 때, (PART_2N×nU 파티션 타입의 가장 큰 서브 블록과 유사한) 모든 서브 블록 중 가장 큰 서브 블록은 언급된 리프 노드이고 더 이상 분할될 수 없다. 그러나 (PART_2NxnU 파티션 타입의 더 작은 서브 블록과 유사한) 더 작은 서브 블록은 더 분할될 수 있다.
지원되는 파티셔닝 타입에 대한 제약 사항이 특정 영역에 대해 중복 분할을 피하기 위해 적용될 수 있는 다른 예로서, 블록이 비대칭 파티션 타입으로 분할될 때, 현재 블록으로부터 분할된 가장 큰 서브 블록은 동일한 방향으로 더 분할될 수 없다. 예를 들어, 정사각형 블록이 (PART_2NxnU 파티션 타입과 유사한) 분할된 비대칭 파티션 타입일 때, 인코더(200) 및/또는 디코더(300)는 수평 방향으로 (PART_2N×nU 파티션 타입의 가장 큰 서브 블록에 유사한) 모든 서브 블록 중 가장 큰 서브 블록을 수평 방향으로 분할하지 않도록 구성될 수 있다.
지원되는 파티셔닝 타입에 대한 제약 사항이 추가 분할의 어려움을 피하기 위해 적용될 수 있는 다른 예로서, 인코더(200) 및/또는 디코더(300)는 블록의 폭/높이가 2의 거듭 제곱이 아닐 때(예를 들어, 폭/높이가 2, 4, 8, 16 등이 아닐 때) 블록을 수평 또는 수직으로 분할하지 않도록 구성될 수 있다.
위의 예는 인코더(200)가 MTT 파티셔닝을 수행하도록 구성될 수 있는 방법을 설명한다. 디코더(300)는 또한 인코더(200)에 의해 수행되었던 것과 동일한 MTT 파티셔닝을 적용할 수 있다. 일부 예에서, 비디오 데이터의 픽처가 인코더(200)에 의해 파티션되는 방법은 디코더(300)에서 동일한 세트의 미리 정의된 규칙을 적용함으로써 결정될 수 있다. 그러나, 많은 상황에서, 인코더(200)는 코딩되는 비디오 데이터의 특정 픽처에 대한 레이트 왜곡 기준에 기초하여 사용할 특정 파티션 구조 및 파티션 타입을 결정할 수 있다. 이와 같이, 디코더(300)가 특정 픽처에 대한 파티셔닝을 결정하기 위해, 인코더(200)는 픽처 및 픽처의 CTU가 파티션되는 방법을 표시하는 신택스 요소를 인코딩된 비트스트림에서 시그널링할 수 있다. 디코더(200)는 이러한 신택스 요소를 파싱하고 이에 따라 픽처 및 CTU를 파티션할 수 있다.
일 예에서, 비디오 인코더(200)의 예측 프로세싱 유닛(260)은 특히 움직임 추정을 위해 위에서 설명된 파티셔닝 기술의 임의의 조합을 수행하도록 구성될 수 있으며, 세부 사항은 나중에 설명될 것이다.
픽처(201)보다 작은 치수를 갖지만, 되풀이 하자면 픽처(201) 처럼, 블록(203)은 강도 값(샘플 값)을 갖는 샘플의 2 차원 어레이 또는 매트릭스로서 간주되거나 간주될 수 있다. 다시 말해, 블록(203)은, 예를 들어, 하나의 샘플 어레이(예를 들어, 모노크롬 픽처(201)의 경우 루마 어레이) 또는 세 개의 샘플 어레이(예를 들어, 컬러 픽처의 경우 하나의 루마 어레이 및 2 개의 크로마 어레이) 또는 적용되는 컬러 포맷에 따라 임의의 다른 수 및/또는 타입의 어레이를 포함할 수 있다. 블록(203)의 수평 및 수직 방향(또는 축)에 있는 샘플의 수는 블록(203)의 크기를 정의한다.
도 2에 도시된 바와 같은 인코더(200)는 픽처(201)를 블록 단위로 인코딩하도록 구성되는데, 예를 들어, 인코딩 및 예측은 블록(203)별로 수행된다.
잔차 계산(RESIDUAL CALCULATION)
잔차 계산 유닛(204)은, 예를 들어, 픽처 블록(203)의 샘플 값으로부터 예측 블록(265)의 샘플 값을 감산하여, 샘플 단위로(픽셀 단위로) 샘플 도메인에서 잔차 블록(205)을 획득함으로써, 픽처 블록(203) 및 예측 블록(265)에 기초하여 잔차 블록(205)을 계산하도록 구성된다(예측 블록(265)에 관한 추가 세부 사항은 나중에 제공된다).
변환(TRANSFORM)
변환 프로세싱 유닛(206)은 변환, 예를 들어, 이산 코사인 변환(discrete cosine transform)(DCT) 또는 이산 사인 변환(discrete sine transform)(DST)을 잔차 블록(205)의 샘플 값에 적용하여, 변환 도메인에서 변환 계수(207)를 획득하도록 구성된다. 변환 계수(207)는 또한 변환 잔차 계수라고도 지칭될 수 있고 변환 도메인에서 잔차 블록(205)을 나타낼 수 있다.
변환 프로세싱 유닛(206)은 HEVC/H.265에 대해 명시된 변환과 같은, DCT/DST의 정수 근사(integer approximation)를 적용하도록 구성될 수 있다. 직교 DCT 변환과 비교할 때, 이러한 정수 근사는 전형적으로 특정 팩터에 의해 스케일링된다. 순방향 및 역방향 변환에 의해 처리되는 잔차 블록의 표준을 보존하기 위해, 추가 스케일링 팩터가 변환 프로세스의 일부로서 적용된다. 스케일링 팩터는 일반적으로 시프트 연산을 위한 2의 거듭 제곱, 변환 계수의 비트 심도, 정확도와 구현 비용 사이의 트레이드오프 등의 스케일 팩터와 같은 특정 제약 조건에 따라 선택된다. 특정 스케일링 팩터는, 예를 들어, 디코더(300)에서 역 변환 프로세싱 유닛(212)에 의한 역 변환(및 예를 들어, 디코더(300)에서 역 변환 프로세싱 유닛(212)에 의한 대응하는 역 변환)에 대해 명시되며, 이에 따라, 예를 들어, 인코더(20)에서 변환 프로세싱 유닛(206)에 의한 순방향 변환에 대한 대응하는 스케일링 팩터가 명시될 수 있다.
양자화(QUANTIZATION)
양자화 유닛(208)은, 예를 들어, 스칼라 양자화 또는 벡터 양자화를 적용함으로써, 변환 계수(207)를 양자화하여 양자화된 변환 계수(209)를 획득하도록 구성된다. 양자화된 변환 계수(209)는 또한 양자화된 잔차 계수(209)라고도 지칭될 수 있다. 양자화 프로세스는 변환 계수(207)의 일부 또는 전부와 연관된 비트 심도를 감소시킬 수 있다. 예를 들어, n-비트 변환 계수는 양자화 동안 m-비트 변환 계수로 내림 반올림될 수 있으며, 여기서 n은 m보다 크다. 양자화의 정도는 양자화 파라미터(quantization parameter)(QP)를 조정함으로써 수정될 수 있다. 예를 들어, 스칼라 양자화의 경우, 더 미세하거나 더 거친 양자화를 달성하기 위해 상이한 스케일링이 적용될 수 있다. 더 작은 양자화 스텝 크기는 더 미세한 양자화에 대응하는 반면, 더 큰 양자화 스텝 크기는 더 거친 양자화에 대응한다. 적용 가능한 양자화 스텝 크기는 양자화 파라미터(QP)에 의해 표시될 수 있다. 양자화 파라미터는, 예를 들어, 미리 정의된 세트의 적용 가능한 양자화 스텝 크기를 가리키는 인덱스일 수 있다. 예를 들어, 작은 양자화 파라미터는 미세한 양자화(작은 양자화 스텝 크기)에 대응할 수 있고 큰 양자화 파라미터는 거친 양자화(큰 양자화 스텝 크기)에 대응할 수 있거나 또는 그 반대의 경우도 가능할 수 있다. 양자화는 양자화 스텝 크기에 의한 나눗셈 및 예를 들어, 역 양자화 유닛(210)에 의한 대응하는 역 양자화 해제(inverse dequantization)를 포함할 수 있고, 양자화 스텝 크기에 의한 곱셈을 포함할 수 있다. 일부 표준에 따른 실시예, 예를 들면, HEVC는 양자화 파라미터를 사용하여 양자화 스텝 크기를 결정하도록 구성될 수 있다. 일반적으로, 양자화 스텝 크기는 양자화 파라미터에 기초하여 나눗셈을 포함하는 방정식의 고정 소수점 근사를 사용하여 계산될 수 있다. 양자화 및 양자화 해제에 추가 스케일링 팩터가 도입되어 잔차 블록의 표준을 복원할 수 있으며, 잔차 블록의 표준은 양자화 스텝 크기 및 양자화 파라미터에 대한 방정식의 고정 소수점 근사에 사용된 스케일링으로 인해 수정될 수 있다. 하나의 예시적인 구현에서, 역 변환 및 양자화 해제의 스케일링은 조합될 수 있다. 대안적으로, 맞춤형 양자화 테이블이 사용되어, 예를 들어, 비트스트림에서 인코더로부터 디코더로 시그널링될 수 있다. 양자화는 손실이 있는 연산으로, 손실은 양자화 스텝 크기가 증가함에 따라 증가한다.
역 양자화 유닛(210)은, 예를 들어, 양자화 유닛(208)과 동일한 양자화 스텝에 기초하여 또는 이를 사용하여, 양자화 유닛(208)에 의해 적용된 양자화 방식의 역 방식을 적용함으로써, 양자화된 계수에 대해 양자화 유닛(208)의 역 양자화를 적용하여 양자화 해제된 계수(211)를 획득하도록 구성된다. 양자화 해제된 계수(211)는 또한 양자화 해제된 잔차 계수(211)로도 지칭될 수 있으며 - 양자화에 의한 손실로 인한 변환 계수와 전형적으로 동일하지는 않지만 - 변환 계수(207)에 대응할 수 있다.
역 변환 프로세싱 유닛(212)은 변환 프로세싱 유닛(206)에 의해 적용된 변환의 역 변환, 예를 들어, 역 이산 코사인 변환(DCT) 또는 역 이산 사인 변환(DST)을 적용하여, 샘플 도메인에서 역 변환 블록(213)을 획득하도록 구성된다. 역 변환 블록(213)은 또한 역 변환 양자화 해제된 블록(213) 또는 역 변환 잔차 블록(213)으로 지칭될 수 있다.
복원 유닛(214)(예를 들어, 합산기(214))은, 예를 들어, 복원된 잔차 블록(213)의 샘플 값과 예측 블록(265)의 샘플 값을 더함으로써, 역 변환 블록(213)(즉, 복원된 잔차 블록(213))을 예측 블록(265)에 더하여 샘플 도메인에서 복원된 블록(215)을 획득하도록 구성된다.
선택적인 버퍼 유닛(216)(줄여서 "버퍼"(216)), 예를 들어, 라인 버퍼(216)는 복원된 블록(215) 및 각각의 샘플 값을, 예를 들어, 인트라 예측을 위해, 버퍼링하거나 저장하도록 구성된다. 추가 실시예에서, 인코더는 임의의 타입의 추정 및/또는 예측을 위해, 예를 들어, 인트라 예측을 위해, 버퍼 유닛(216)에 저장되는 필터링되지 않은 복원된 블록 및/또는 각각의 샘플 값을 사용하도록 구성될 수 있다.
인코더(200)의 실시예는, 예를 들어, 버퍼 유닛(216)이 인트라 예측(254)을 위해 복원된 블록(215)을 저장하기 위해 사용될뿐만 아니라, 루프 필터 유닛(220)에 대해서도 사용되도록 구성될 수 있고(도 2에 도시되지 않음), 및/또는 예를 들어, 버퍼 유닛(216) 및 디코딩된 픽처 버퍼 유닛(230)이 하나의 버퍼를 형성하도록 구성될 수 있다. 추가 실시예는 필터링된 블록(221) 및/또는 디코딩된 픽처 버퍼(230)로부터의 블록 또는 샘플(둘 모두 도 2에 도시되지 않음)을 인트라 예측(254)에 대한 입력으로서 또는 기준으로서 사용하도록 구성될 수 있다.
루프 필터 유닛(220)(줄여서 "루프 필터"(220))은 복원된 블록(215)을 필터링하여 필터링된 블록(221)을 획득하고, 픽셀 전이를 매끄럽게 하거나 또는 그렇지 않으면 비디오 품질을 개선하도록 구성된다. 루프 필터 유닛(220)은, 예를 들어, 디블로킹 필터(de-blocking filter), 적응적 샘플 오프셋(sample-adaptive offset)(SAO) 필터 또는 다른 필터, 예를 들면, 양방향 필터(bilateral filter), 적응적 루프 필터(adaptive loop filter)(ALF), 선명화(sharpening) 또는 평활화(smoothing) 필터 또는 협업 필터(collaborative filter)와 같은 하나 이상의 루프 필터를 나타내는 것으로 의도된다. 루프 필터 유닛(220)이 도 2에서 인 루프 필터(in loop filter)로서 도시되어 있지만, 다른 구성에서, 루프 필터 유닛(220)은 포스트 루프 필터(post loop filter)로서 구현될 수 있다. 필터링된 블록(221)은 또한 필터링된 복원된 블록(221)으로도 지칭될 수 있다. 디코딩된 픽처 버퍼(230)는 루프 필터 유닛(220)이 복원된 코딩된 블록에 대해 필터링 동작을 수행한 후에 복원된 코딩된 블록을 저장할 수 있다.
인코더(200)의 실시예(각기 루프 필터 유닛(220))는, 예를 들어, 직접 인코딩되는 또는 엔트로피 인코딩 유닛(270) 또는 임의의 다른 엔트로피 인코딩 유닛을 통해 인코딩되는 루프 필터 파라미터(이를테면, 적응적 샘플 오프셋 정보)를 출력하도록 구성되어, 예를 들어, 디코더(300)가 동일한 루프 필터 파라미터를 수신하고 동일한 루프 필터 파라미터를 디코딩에 적용할 수 있도록 할 수 있다.
디코딩된 픽처 버퍼(DPB)(230)는 비디오 인코더(20)에 의해 비디오 데이터를 인코딩하는데 사용하기 위한 참조 픽처 데이터를 저장하는 참조 픽처 메모리일 수 있다. DPB(230)는 동기식 동적 랜덤 액세스 메모리(synchronous dynamic random access memory(SDRAM), 자기 저항성 RAM(magnetoresistive RAM)(MRAM), 저항성 RAM(resistive RAM)(RRAM) 또는 다른 타입의 메모리 디바이스를 비롯한 동적 랜덤 액세스 메모리(DRAM)과 같은 다양한 메모리 디바이스 중 임의의 것에 의해 형성될 수 있다. DPB(230) 및 버퍼(216)는 동일한 메모리 디바이스 또는 별개의 메모리 디바이스에 의해 제공될 수 있다. 일부 예에서, 디코딩된 픽처 버퍼(DPB)(230)는 필터링된 블록(221)을 저장하도록 구성된다. 디코딩된 픽처 버퍼(230)는 또한 동일한 현재 픽처 또는 상이한 픽처, 예를 들어, 이전에 복원된 픽처의 다른 이전에 필터링된 블록, 예를 들어, 이전에 복원되고 필터링된 블록(221)을 저장하도록 구성될 수 있고, 완전히 이전에 재구성된 픽처, 즉, 디코딩된 픽처(및 대응하는 참조 블록 및 샘플) 및/또는 부분적으로 복원된 현재 픽처(및 대응하는 참조 블록 및 샘플)를, 예를 들어, 인터 예측을 위해 제공할 수 있다. 일부 예에서, 복원된 블록(215)이 다만 루프 필터링 없이 복원되더라도, 디코딩된 픽처 버퍼(DPB)(230)는 복원된 블록(215)을 저장하도록 구성된다.
블록 예측 프로세싱 유닛(260)이라고도 지칭되는 예측 프로세싱 유닛(260)은 블록(203)(현재 픽처(201)의 현재 블록(203)) 및 복원된 픽처 데이터, 예를 들어, 버퍼(216)로부터의 동일한 (현재) 픽처의 참조 샘플 및/또는 디코딩된 픽처 버퍼(230)로부터의 하나 또는 복수의 이전에 디코딩된 픽처로부터의 참조 픽처 데이터(231)를 수신 또는 획득하고, 이러한 데이터를 예측을 위해 처리하도록, 즉, 인터-예측된 블록(245) 또는 인트라-예측된 블록(255)일 수 있는 예측 블록(265)을 제공하도록 구성된다.
모드 선택 유닛(262)은 예측 모드(예를 들어, 인트라 또는 인터 예측 모드) 및/또는 잔차 블록(205)의 계산 및 복원된 블록(215)의 복원을 위한 예측 블록(265)으로서 사용될 대응하는 예측 블록(245 또는 255)을 선택하도록 구성될 수 있다.
모드 선택 유닛(262)의 실시예는 최상의 매칭을 제공하거나 또는 다른 말로 하여 최소 잔차(최소 잔차는 전송 또는 저장을 위한 더 나은 압축을 의미함) 또는 최소 시그널링 오버 헤드(최소 시그널링 오버 헤드는 전송 또는 저장을 위한 더 나은 압축을 의미함) 또는 둘 모두를 고려하거나 둘 모두가 균형을 이루는, 예측 모드를 (예를 들어, 예측 프로세싱 유닛(260)에 의해 지원되는 모드로부터) 선택하도록 구성될 수 있다. 모드 선택 유닛(262)은 레이트 왜곡 최적화(RDO)에 기초하여 예측 모드를 결정하도록, 즉, 최소 레이트 왜곡 최적화를 제공하는 예측 모드를 선택하거나 또는 연관된 레이트 왜곡이 예측 모드 선택 기준을 적어도 충족시키는 예측 모드를 선택하도록 구성될 수 있다.
다음에는 예시적인 인코더(200)에 의해 수행되는 (예를 들어, 예측 프로세싱 유닛(260)에 의한) 예측 처리 및 (예를 들어, 모드 선택 유닛(262)에 의한) 모드 선택이 더 상세히 설명될 것이다.
위에서 설명한 바와 같이, 인코더(200)는 한 세트의 (미리 결정된) 예측 모드로부터 최상 또는 최적의 예측 모드를 결정하거나 선택하도록 구성된다. 예측 모드의 세트는, 예를 들어, 인트라-예측 모드 및/또는 인터-예측 모드를 포함할 수 있다.
인트라-예측 모드의 세트는 35 개의 상이한 인트라-예측 모드, 예를 들면, H.265에서 정의된 바와 같은, 예를 들어, DC(또는 평균) 모드 및 평면 모드와 같은 비방향 모드 또는 방향 모드를 포함할 수 있거나, 또는 67 개의 상이한 인트라-예측 모드, 예를 들면, 개발 중인 H.265에서 정의된 바와 같은, 예를 들어, DC(또는 평균) 모드 및 평면 모드와 같은 또는 비방향 모드 또는 방향 모드를 포함할 수 있다.
인터-예측 모드의(또는 가능한) 세트는 이용 가능한 참조 픽처(즉, 예를 들어, DBP(230)에 저장된 이전의 적어도 부분적으로 디코딩된 픽처) 및 다른 인터-예측 파라미터에 따라 다른데, 예를 들면, 전체 참조 픽처 또는 단지 일부, 예를 들어, 참조 픽처의 현재 블록의 영역 주변의 탐색 윈도우 영역이 최상 매칭의 참조 블록을 탐색하는데 사용되는지의 여부, 및/또는 예를 들어, 픽셀 보간, 예를 들어, 절반/반(semi)-픽셀 및/또는 1/4 픽셀 보간이 적용되는지의 여부에 따라 다르다.
위의 예측 모드 외에도, 스킵 모드 및/또는 직접 모드가 적용될 수 있다.
예측 프로세싱 유닛(260)은 또한, 예를 들어, 쿼드 트리 파티셔닝(QT), 바이너리 파티셔닝(BT) 또는 트리플 트리 파티셔닝(TT) 또는 이들의 조합을 반복적으로 사용하여 블록(203)을 더 작은 블록 파티션 또는 서브-블록으로 파티션하고, 예를 들어, 블록 파티션 또는 서브-블록 각각에 대한 예측을 수행하도록 구성될 수 있으며, 여기서, 모드 선택은 파티션된 블록(203)의 트리 구조의 선택 및 각각의 블록 파티션 또는 서브-블록에 적용되는 예측 모드를 포함한다.
인터 예측 유닛(244)은 움직임 추정(motion estimation)(ME) 유닛 및 움직임 보상(motion compensation)(MC) 유닛(도 2에 도시되지 않음)을 포함할 수 있다. 움직임 추정 유닛은 픽처 블록(203)(현재 픽처(201)의 현재 픽처 이미지 블록(203)) 및 디코딩된 픽처(331) 또는 적어도 하나 또는 복수의 이전에 복원된 블록, 예를 들어, 하나 또는 복수의 다른/상이한 이전에 디코딩된 픽처(331)의 복원된 블록을 움직임 추정을 위해 수신하거나 획득하도록 구성된다. 예를 들어, 비디오 시퀀스는 현재 픽처 및 이전에 디코딩된 픽처(331)를 포함할 수 있거나, 또는 다시 말해, 현재 픽처 및 이전에 디코딩된 픽처(331)는 비디오 시퀀스를 형성하는 픽처의 시퀀스의 일부이거나 이를 형성할 수 있다. 인코더(200)는, 예를 들어, 복수의 다른 픽처의 동일 또는 상이한 픽처의 복수의 참조 블록으로부터 참조 블록을 선택하고, 참조 픽처(또는 참조 픽처 인덱스,…) 및/또는 참조 블록의 위치(x, y 좌표)와 인터 예측 파라미터로서 현재 블록의 위치 사이의 오프셋(공간 오프셋)을 움직임 추정 유닛(도 2에 도시되지 않음)에 제공하도록 구성될 수 있다. 이러한 오프셋은 움직임 벡터(motion vector)(MV)라고도 부른다. 병합은 HEVC에서 사용되는 중요한 움직임 추정 도구이며 VVC에 상속된다. 병합 추정을 수행하기 위해, 먼저 해야 할 일은 병합 후보 리스트를 구성하는 것이고, 여기서 각각의 후보에는 하나 또는 두 개의 참조 픽처 리스트가 사용되는지에 관한 정보뿐만 아니라 각 리스트에 대한 참조 인덱스 및 움직임 벡터를 포함하는 모든 움직임 데이터가 담겨 있다. 병합 후보 리스트는 다음과 같은 후보: a. 5 개의 공간적 인접 블록으로부터 도출되는 최대 4 개의 공간 병합 후보; b. 2 개의 시간적 동일 위치에 배치된 블록으로부터 도출되는 하나의 시간적 병합 후보; c. 조합된 양방향 예측 후보와 제로 움직임 벡터 후보를 포함하는 추가 병합 후보에 기초하여 구성된다.
인트라 예측 유닛(254)은 또한 인트라 예측 파라미터, 예를 들어, 선택된 인트라 예측 모드에 기초하여 인트라 예측 블록(255)을 결정하도록 구성된다. 어느 경우든, 블록에 대한 인트라 예측 모드를 선택한 후에, 인트라 예측 유닛(254)은 또한 인트라 예측 파라미터, 즉, 블록에 대해 선택된 인트라 예측 모드를 표시하는 정보를 엔트로피 인코딩 유닛(270)에 제공하도록 구성된다. 일 예에서, 인트라 예측 유닛(254)은 나중에 설명되는 인터 예측 기술의 임의의 조합을 수행하도록 구성될 수 있다.
엔트로피 인코딩 유닛(270)은 엔트로피 인코딩 알고리즘 또는 방식(예를 들어, 가변 길이 코딩(variable length coding)(VLC) 방식, 컨텍스트 적응 VLC 방식(context adaptive VLC scheme)(CALVC), 산술 코딩 방식, 컨텍스트 적응 이진 산술 코딩(context adaptive binary arithmetic coding)(CABAC), 신택스 기반 컨텍스트 적응 이진 산술 코딩(syntax-based context-adaptive binary arithmetic coding(SBAC), 확률 간격 파티셔닝 엔트로피(probability interval partitioning entropy)(PIPE) 코딩 또는 다른 엔트로피 인코딩 방법론 또는 기술)을 양자화된 잔차 계수(209), 인터 예측 파라미터, 인트라 예측 파라미터 및/또는 루프 필터 파라미터에 개별적으로 또는 공동으로 적용하여(또는 전혀 적용하지 않아), 출력(272)에 의해 출력될 수 있는 인코딩된 픽처 데이터(21)를, 예를 들어, 인코딩된 비트스트림(271)의 형태로 획득하도록 구성된다. 인코딩된 비트스트림은 비디오 디코더(30)에 전송되거나, 또는 비디오 디코더(30)에 의한 향후 전송 또는 검색을 위해 보관될 수 있다. 엔트로피 인코딩 유닛(270)은 또한 코딩되는 현재 비디오 슬라이스에 대한 다른 신택스 요소를 엔트로피 인코딩하도록 구성될 수 있다.
비디오 스트림을 인코딩하기 위해 비디오 인코더(200)의 다른 구조적인 변형이 사용될 수 있다. 예를 들어, 비 변환 기반 인코더(non-transform based encoder)(200)가 특정 블록 또는 프레임에 대해 변환 프로세싱 유닛(206) 없이 잔차 신호를 직접 양자화할 수 있다. 다른 구현예에서, 인코더(200)는 단일 유닛으로 조합된 양자화 유닛(208) 및 역 양자화 유닛(210)을 가질 수 있다.
도 3은 본 출원의 기술을 구현하도록 구성된 예시적인 비디오 디코더(300)를 도시한다. 비디오 디코더(30)는, 예를 들어, 인코더(200)에 의해 인코딩된 픽처 데이터(예를 들어, 인코딩된 비트스트림)(271)를 수신하여, 디코딩된 픽처(331)를 획득하도록 구성된다. 디코딩 프로세스 동안, 비디오 디코더(300)는 비디오 인코더(200)로부터 비디오 데이터, 예를 들면, 인코딩된 비디오 슬라이스 및 연관된 신택스 요소의 픽처 블록을 나타내는 인코딩된 비디오 비트스트림을 수신한다.
도 3의 예에서, 디코더(300)는 엔트로피 디코딩 유닛(304), 역 양자화 유닛(310), 역 변환 프로세싱 유닛(312), 복원 유닛(314)(예를 들어, 합산기(314)), 버퍼(316), 루프 필터(320), 디코딩된 픽처 버퍼(330) 및 예측 프로세싱 유닛(360)을 포함한다. 예측 프로세싱 유닛(360)은 인터 예측 유닛(344), 인트라 예측 유닛(354) 및 모드 선택 유닛(362)을 포함할 수 있다. 비디오 디코더(300)는, 일부 예에서, 도 2의 비디오 인코더(200)에 대해 설명된 인코딩 패스(encoding pass)와 일반적으로 상반적인 디코딩 패스를 수행한다.
엔트로피 디코딩 유닛(304)은 인코딩된 픽처 데이터(271)에 대해 엔트로피 디코딩을 수행하여, 예를 들어, 양자화된 계수(309) 및/또는 디코딩된 코딩 파라미터(도 3에 도시되지 않음), 예를 들어, (디코딩된) 임의의 또는 모든 인터 예측 파라미터, 인트라 예측 파라미터, 루프 필터 파라미터 및/또는 다른 신택스 요소를 획득하도록 구성된다. 엔트로피 디코딩 유닛(304)은 또한 인터 예측 파라미터, 인트라 예측 파라미터 및/또는 다른 신택스 요소를 예측 프로세싱 유닛(360)에 포워딩하도록 구성된다. 비디오 디코더(300)는 신택스 요소를 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 수신할 수 있다.
역 양자화 유닛(310)은 기능면에서 역 양자화 유닛(110)과 동일할 수 있고, 역 변환 프로세싱 유닛(312)은 기능면에서 역 변환 프로세싱 유닛(112)과 동일할 수 있고, 복원 유닛(314)은 기능면에서 복원 유닛(114)과 동일할 수 있고, 버퍼(316)는 기능면에서 버퍼(116)와 동일할 수 있고, 루프 필터(320)는 기능면에서 루프 필터(120)와 동일할 수 있으며, 디코딩된 픽처 버퍼(330)는 기능면에서 디코딩된 픽처 버퍼(130)와 동일할 수 있다.
예측 프로세싱 유닛(360)은 인터 예측 유닛(344) 및 인트라 예측 유닛(354)을 포함할 수 있으며, 여기서 인터 예측 유닛(344)은 기능면에서 인터 예측 유닛(144)과 유사할 수 있고, 인트라 예측 유닛(354)은 기능면에서 인트라 예측 유닛(154)과 유사할 수 있다. 예측 프로세싱 유닛(360)은 전형적으로 블록 예측을 수행하고 및/또는 인코딩된 데이터(21)로부터 예측 블록(365)을 획득하고, 예를 들어, 엔트로피 디코딩 유닛(304)으로부터, 예측 관련 파라미터 및/또는 선택된 예측 모드에 관한 정보를(명시적으로 또는 묵시적으로) 수신 또는 획득하도록 구성된다.
비디오 슬라이스가 인트라 코딩된(I) 슬라이스로 코딩될 때, 예측 프로세싱 유닛(360)의 인트라 예측 유닛(354)은 시그널링된 인트라 예측 모드 및 현재 프레임 또는 픽처의 이전에 디코딩된 블록으로부터의 데이터에 기초하여 현재 비디오 슬라이스의 픽처 블록에 대한 예측 블록(365)을 생성하도록 구성된다. 비디오 프레임이 인터 코딩된(B 또는 P) 슬라이스로서 코딩될 때, 예측 프로세싱 유닛(360)의 인터 예측 유닛(344)(예를 들어, 움직임 보상 유닛)은 움직임 벡터 및 엔트로피 디코딩 유닛(304)으로부터 수신된 다른 신택스 요소에 기초하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 블록(365)을 생성하도록 구성된다. 인터 예측을 위해, 예측 블록은 하나의 참조 픽처 리스트 내 하나의 참조 픽처로부터 생성될 수 있다. 비디오 디코더(300)는 DPB(330)에 저장된 참조 픽처에 기초하여 디폴트 구성 기술을 사용하여, 참조 프레임 리스트, List 0 및 List 1을 구성할 수 있다.
예측 프로세싱 유닛(360)은 움직임 벡터 및 다른 신택스 요소를 파싱함으로써 현재 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 예측 정보를 사용하여 디코딩되는 현재 비디오 블록에 대한 예측 블록을 생성하도록 구성된다. 예를 들어, 예측 프로세싱 유닛(360)은 수신된 신택스 요소의 일부를 사용하여 비디오 슬라이스의 비디오 블록을 코딩하는데 사용되는 예측 모드(예를 들어, 인트라 또는 인터 예측), 인터 예측 슬라이스 타입(예를 들어, B 슬라이스, P 슬라이스 또는 GPB 슬라이스), 슬라이스에 대한 참조 픽처 리스트 중 하나 이상에 대한 구성 정보, 슬라이스의 각 인터 인코딩된 비디오 블록에 대한 움직임 벡터, 슬라이스의 각 인터 코딩된 비디오 블록에 대한 인터 예측 상태, 및 현재 비디오 슬라이스 내의 비디오 블록을 디코딩하는 다른 정보를 결정한다.
역 양자화 유닛(310)은 비트스트림에서 제공되고 엔트로피 디코딩 유닛(304)에 의해 디코딩되는 양자화된 변환 계수를 역 양자화, 즉, 양자화 해제하도록 구성될 수 있다. 역 양자화 프로세스는 인코더(200)에 의해 계산되는 비디오 슬라이스 내 각 비디오 블록에 대한 양자화 파라미터를 사용하여, 적용되어야 하는 양자화의 정도 및 마찬가지로 적용되어야 하는 역 양자화의 정도를 결정하는 것을 포함할 수 있다.
역 변환 프로세싱 유닛(312)은 역 변환, 예를 들어, 역 DCT, 역 정수 변환 또는 개념적으로 유사한 역 변환 프로세스를 변환 계수에 적용하여 픽셀 도메인에서 잔차 블록을 생성하도록 구성된다.
복원 유닛(314)(예를 들어, 합산기(314))은, 예를 들어, 복원된 잔차 블록(213)의 샘플 값과 예측 블록(365)의 샘플 값을 더함으로써, 역 변환 블록(313)(즉, 복원된 잔차 블록(313))을 예측 블록(365)에 더하여 샘플 도메인에서 복원된 블록(315)을 획득하도록 구성된다.
루프 필터 유닛(320)은 (코딩 루프에서 또는 코딩 루프 후에) 복원된 블록(315)을 필터링하여 필터링된 블록(321)을 획득하여, 예를 들어, 픽셀 전이를 매끄럽게 하거나 또는 그렇지 않으면 비디오 품질을 개선하도록 구성된다. 일 예에서, 루프 필터 유닛(320)은 나중에 설명되는 필터링 기술의 임의의 조합을 수행하도록 구성될 수 있다. 루프 필터 유닛(320)은, 예를 들어, 디블로킹 필터, 적응적 샘플 오프셋(SAO) 필터 또는 다른 필터, 예를 들면, 양방향 필터, 적응적 루프 필터(ALF), 선명화 또는 평활화 필터 또는 협업 필터와 같은 하나 이상의 루프 필터를 나타내는 것으로 의도된다. 루프 필터 유닛(320)이 도 3에서 인 루프 필터로서 도시되어 있지만, 다른 구성에서, 루프 필터 유닛(320)은 포스트 루프 필터로서 구현될 수 있다.
그 다음에 주어진 프레임 또는 픽처의 디코딩된 비디오 블록(321)은 후속 움직임 보상을 위해 사용되는 참조 픽처를 저장하는 디코딩된 픽처 버퍼(330)에 저장된다.
디코더(300)는 디코딩된 픽처(311)를, 예를 들어, 사용자에게 제시하기 위해 또는 사용자가 시청하도록 하기 위해 출력(312)을 통해 출력하도록 구성된다.
압축된 비디오스트림을 디코딩하기 위해 비디오 디코더(300)의 다른 변형이 사용될 수 있다. 예를 들어, 디코더(300)는 루프 필터 유닛(320) 없이 출력 비디오 스트림을 생성할 수 있다. 예를 들어, 비 변환 기반 디코더(non-transform based decoder)(300)는 특정 블록 또는 프레임에 대해 역 변환 프로세싱 유닛(312) 없이 잔차 신호를 직접 역 양자화할 수 있다. 다른 구현예에서, 비디오 디코더(300)는 단일 유닛으로 조합된 양자화 유닛(310) 및 역 변환 프로세싱 유닛(312)을 가질 수 있다.
도 4는 본 개시내용의 실시예에 따른 네트워크 디바이스(400)(예를 들어, 코딩 디바이스)의 개략도이다. 네트워크 디바이스(400)는 본 명세서에 설명된 바와 같은 개시된 실시예를 구현하기에 적합하다. 실시예에서, 네트워크 디바이스(400)는 도 1a의 비디오 디코더(300)와 같은 디코더 또는 도 1a의 비디오 인코더(200)와 같은 인코더일 수 있다. 실시예에서, 네트워크 디바이스(400)는 도 1a의 디코더(300) 또는 도 1a의 인코더(200)의 하나 이상의 컴포넌트일 수 있다.
네트워크 디바이스(400)는, 데이터를 수신하기 위한 입구 포트(410) 및 수신기 유닛(Rx)(420); 데이터를 처리하기 위한 프로세서, 로직 유닛 또는 중앙 프로세싱 유닛(central processing unit)(CPU)(430); 데이터를 송신하기 위한 송신기 유닛(Tx)(440) 및 출구 포트(450); 및 데이터를 저장하기 위한 메모리(460)를 포함한다. 네트워크 디바이스(400)는 또한 광학 또는 전기 신호의 진입 또는 진출을 위한 입구 포트(410), 수신기 유닛(420), 송신기 유닛(440) 및 출구 포트(450)에 결합된 광전(optical-to-electrical) 컴포넌트 및 전광(electrical-to-optical)(EO) 컴포넌트를 포함할 수 있다.
프로세서(430)는 하드웨어 및 소프트웨어에 의해 구현된다. 프로세서(430)는 하나 이상의 CPU 칩, 코어(예를 들어, 멀티-코어 프로세서), FPGA, ASIC 및 DSP로서 구현될 수 있다. 프로세서(430)는 입구 포트(410), 수신기 유닛(420), 송신기 유닛(440), 출구 포트(450) 및 메모리(460)와 통신한다. 프로세서(430)는 코딩 모듈(470)을 포함한다. 코딩 모듈(470)은 위에서 설명한 개시된 실시예를 구현한다. 예를 들어, 코딩 모듈(470)은 다양한 코딩 동작을 구현하거나, 처리하거나, 준비하거나 또는 제공한다. 그러므로 코딩 모듈(470)이 포함되면 네트워크 디바이스(400)의 기능성에 실질적인 개선을 제공하고 네트워크 디바이스(400)의 상이한 상태로의 변환에 영향을 미친다. 대안적으로, 코딩 모듈(470)은 메모리(460)에 저장되고 프로세서(430)에 의해 실행되는 명령어로서 구현된다.
메모리(460)는 디스크, 테이프 드라이브 또는 솔리드-스테이트 드라이브 중 하나 이상을 포함하고 오버-플로우 데이터 저장 디바이스로서 사용되어, 프로그램들이 실행을 위해 선택될 때 그러한 프로그램을 저장하고, 프로그램 실행 동안 판독되는 명령어 및 데이터를 저장할 수 있다. 메모리(460)는 휘발성 및 비 휘발성일 수 있고 판독 전용 메모리(read-only memory)(ROM), 랜덤 액세스 메모리(random-access memory)(RAM), TCAM(ternary content-addressable memory) 및 정적 랜덤 액세스 메모리(/ static random-access memory)(SRAM)일 수 있다.
도 5는 예시적인 실시예에 따른 도 1a의 소스 디바이스(12) 및 목적지 디바이스(14) 중 어느 하나 또는 둘 모두로서 사용될 수 있는 장치(500)의 간략화된 블록도이다. 장치(500)는 본 출원의 기술을 구현할 수 있다. 장치(500)는 다수의 컴퓨팅 디바이스를 포함하는 컴퓨팅 시스템의 형태일 수 있거나, 또는 단일 컴퓨팅 디바이스, 예를 들면, 이동 전화, 태블릿 컴퓨터, 랩톱 컴퓨터, 노트북 컴퓨터, 데스크톱 컴퓨터 등의 형태일 수 있다.
장치(500)의 프로세서(502)는 중앙 프로세싱 유닛일 수 있다. 대안적으로, 프로세서(502)는 현재 존재하거나 나중에 개발될 정보를 조작하거나 처리할 수 있는 임의의 다른 타입의 디바이스 또는 다수의 디바이스일 수 있다. 개시된 구현예는 도시된 바와 같은 단일 프로세서, 예를 들면, 프로세서(502)로 실시될 수 있기는 하지만, 하나를 초과하는 프로세서를 사용하여 속도 및 효율성의 장점이 달성될 수 있다.
장치(500)의 메모리(500)는 구현예에서 판독 전용 메모리(ROM) 디바이스 또는 랜덤 액세스 메모리(RAM) 디바이스일 수 있다. 임의의 다른 적합한 타입의 저장 디바이스가 메모리(504)로서 사용될 수 있다. 메모리(504)는 버스(512)를 사용하여 프로세서(502)에 의해 액세스되는 코드 및 데이터(506)를 포함할 수 있다. 메모리(504)는 운영 체제(508) 및 애플리케이션 프로그램(510)을 더 포함할 수 있고, 애플리케이션 프로그램(510)은 프로세서(502)가 본 명세서에서 설명된 방법을 수행하게 하는 적어도 하나의 프로그램을 포함한다. 예를 들어, 애플리케이션 프로그램(510)은 애플리케이션 1 내지 N을 포함할 수 있고, 애플리케이션 1 내지 N은 본 명세서에서 설명되는 방법을 수행하는 비디오 코딩 애플리케이션을 더 포함할 수 있다. 장치(500)는 또한 예를 들어 이동 컴퓨팅 디바이스와 함께 사용되는 메모리 카드일 수 있는 보조 저장소(514) 형태의 추가 메모리를 포함할 수 있다. 비디오 통신 세션은 상당한 양의 정보를 포함할 수 있기 때문에, 비디오 통신 세션은 전체적으로 또는 부분적으로 보조 저장소(514)에 저장될 수 있고 필요에 따라 처리를 위해 메모리(504)에 로드될 수 있다.
장치(500)는 또한 디스플레이(518)와 같은 하나 이상의 출력 디바이스를 포함할 수 있다. 일 예에서, 디스플레이(518)는 터치 입력을 감지하도록 동작 가능한 터치 감지 요소와 디스플레이를 결합한 터치 감지 디스플레이일 수 있다. 디스플레이(518)는 버스(512)를 통해 프로세서(502)에 결합될 수 있다. 사용자가 장치(500)를 프로그램하게 하거나 또는 그렇지 않고 장치(500)를 사용하게 하는 다른 출력 디바이스가 디스플레이(518)에 추가로 또는 그 대안으로서 제공될 수 있다. 출력 디바이스가 디스플레이일 때 또는 디스플레이를 포함할 때, 디스플레이는 액정 디스플레이(liquid crystal display)(LCD), 음극선관(cathode-ray tube)(CRT) 디스플레이, 플라즈마 디스플레이 또는 유기 발광 다이오드(light emitting diode)(OLED) 디스플레이와 같은 발광 다이오드(light emitting diode)(LED) 디스플레이를 비롯하여 다양한 방식으로 구현될 수 있다.
장치(500)는 또한 이미지 감지 디바이스(520), 예를 들어, 카메라 또는 장치(500)를 동작시키는 사용자의 이미지와 같은 이미지를 감지할 수 있는 현재 존재하거나 이후에 개발될 임의의 다른 이미지 감지 디바이스(520)를 포함하거나 그와 통신할 수 있다. 이미지 감지 디바이스(520)는 장치(500)를 동작시키는 사용자를 향하도록 배치될 수 있다. 일 예에서, 이미지 감지 디바이스(520)의 위치 및 광학 축은 시야가 디스플레이(518)에 직접 인접하고 디스플레이(518)가 보이는 영역을 포함하도록 구성될 수 있다.
장치(500)는 또한 사운드 감지 디바이스(520), 예를 들어, 마이크로폰 또는 장치(500) 근처의 사운드를 감지할 수 있는 현재 존재하거나 이후에 개발될 임의의 다른 사운드 감지 디바이스를 포함하거나 그와 통신할 수 있다. 사운드 감지 디바이스(522)는 장치(500)를 동작시키는 사용자를 향하도록 위치될 수 있고, 사용자가 장치(500)를 동작시키는 동안 사용자에 의해 만들어진 사운드, 예를 들어, 음성 또는 다른 발화를 수신하도록 구성될 수 있다.
도 5는 장치(500)의 프로세서(502) 및 메모리(504)가 단일 유닛으로 통합되는 것으로 도시되지만, 다른 구성이 이용될 수 있다. 프로세서(502)의 동작은 직접적으로 또는 근거리 네트워크 또는 다른 네트워크를 통해 결합될 수 있는 다수의 머신(각각의 머신은 하나 이상의 프로세서를 가짐)에 걸쳐 분산될 수 있다. 메모리(504)는 네트워크 기반 메모리 또는 장치(500)의 동작을 수행하는 다수의 머신의 메모리와 같이 다수의 머신에 분산될 수 있다. 본 명세서에서 단일 버스로 도시되었지만, 장치(500)의 버스(512)는 다수의 버스로 구성될 수 있다. 또한, 보조 저장소(514)는 장치(500)의 다른 컴포넌트에 직접 결합될 수 있거나 또는 네트워크를 통해 액세스될 수 있고 메모리 카드와 같은 단일의 통합 유닛 또는 다수의 메모리 카드와 같은 다수의 유닛을 포함할 수 있다. 따라서 장치(500)는 다양한 구성으로 구현될 수 있다.
4:2:0 샘플링에서, 2 개의 크로마 어레이 각각은 루마 어레이의 절반 높이와 절반 너비를 갖는다. 픽처 내 루마 및 크로마 샘플의 공칭 수직 및 수평의 상대 위치가 도 6a에 도시된다.
도 8은 다운샘플링되고 복원된 루마 블록을 스케일링하기 위해 사용되는 스케일링 파라미터가 도출되는 예시적인 위치를 예시하는 개념도이다. 예를 들어, 도 8은 4:2:0 샘플링의 예를 예시하며, 스케일링 파라미터는 α 및 β이다.
일반적으로, LM 예측 모드가 적용될 때, 비디오 인코더(20) 및 비디오 디코더(30)는 다음과 같은 단계를 호출할 수 있다. 비디오 인코더(20) 및 비디오 디코더(30)는 인접한 루마 샘플을 다운샘플링할 수 있다. 비디오 인코더(20) 및 비디오 디코더(30)는 선형 파라미터(즉, α 및 β)(스케일링 파라미터라고도 함)를 도출할 수 있다. 비디오 인코더(20) 및 비디오 디코더(30)는 현재 루마 블록을 다운샘플링하고 다운샘플링된 루마 블록 및 선형 파라미터로부터 예측(예를 들어, 예측 블록)을 도출할 수 있다. 다운샘플링하는 방법은 다양할 수 있다.
도 6b는 크로마 블록에 대한 예측 블록의 생성을 위한 루마 블록의 샘플을 다운샘플링하기 위한 루마 위치 및 크로마 위치의 예를 예시하는 개념도이다. 도 6b에 도시된 바와 같이, 채워진(즉, 단일 흑색의) 삼각형으로 표시되는 크로마 샘플은 [1, 1] 필터를 적용함으로써 채워진 2 개의 원으로 표시되는 2 개의 루마 샘플로부터 예측된다. [1, 1] 필터는 2-탭 필터의 한 예이다.
도 6c는 예측 블록의 생성을 위한 루마 블록의 샘플을 다운샘플링하기 위한 루마 위치 및 크로마 위치의 다른 예를 예시하는 개념도이다. 도 6c에 도시된 바와 같이, 채워진(즉, 단일 흑색의) 삼각형으로 표시되는 크로마 샘플은 6-탭 필터를 적용함으로써 6 개의 채워진 원으로 표시되는 6 개의 루마 샘플로부터 예측된다.
하나 이상의 예에서, 설명된 기능은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되면, 기능은 컴퓨터 판독 가능 매체에 하나 이상의 명령어 또는 코드로서 저장되거나 전송되고 하드웨어 기반 프로세싱 유닛에 의해 실행될 수 있다. 컴퓨터 판독 가능 매체는 데이터 저장 매체와 같은 유형의 매체에 대응하는 컴퓨터 판독 가능 저장 매체, 또는 예를 들어, 통신 프로토콜에 따라 한 장소에서 다른 장소로 컴퓨터 프로그램의 이송을 용이하게 하는 임의의 매체를 포함하는 통신 매체를 포함할 수 있다. 이러한 방식으로, 컴퓨터 판독 가능 매체는 일반적으로 (1) 비일시적 유형의 컴퓨터 판독 가능 저장 매체 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 본 개시내용에서 설명된 기술의 구현을 위한 명령어, 코드 및/또는 데이터 구조를 검색하기 위해 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 매체를 포함할 수 있다.
움직임 보상, 인트라 예측 및 루프 필터와 같은 비디오 압축 기술이 효과적인 것으로 입증되었고 그래서 H.264/AVC 및 H.265/HEVC와 같은 다양한 비디오 코딩 표준으로 채택되었다. 인트라 예측은 사용 가능한 참조 픽처가 없거나, 또는 인터 예측 코딩이, 예를 들어, I 프레임 또는 I 슬라이스의 현재 블록 또는 픽처에 대해 사용되지 않을 때 사용할 수 있다. 인트라 예측의 참조 샘플은 보통 동일한 픽처에서 이전에 코딩된(또는 복원된) 인접 블록으로부터 도출된다. 예를 들어, H.264/AVC 및 H.265/HEVC 둘 모두에서, 인접 블록의 경계 샘플은 인트라 예측을 위한 참조로서 사용된다. 상이한 텍스처 또는 구조적 특성을 다루기 위해, 상이한 인트라 예측 모드가 있다. 각각의 모드에서, 상이한 예측 신호 도출 방법이 사용된다. 예를 들어, H.265/HEVC는 도 6d에 도시된 바와 같이, 총 35 개의 인트라 예측 모드를 지원한다.
H.265/HEVC의 인트라 예측 알고리즘 설명
인트라 예측을 위해, 디코딩된 인접 블록의 경계 샘플이 참조로 사용된다. 인코더는 35 개의 옵션: 33 개의 방향 예측 모드, DC 모드 및 평면 모드 중에서 각 블록의 최선의 루마 인트라 예측 모드(즉, 현재 블록에 대해 가장 정확한 예측을 제공하는 모드)를 선택한다. 인트라 예측 방향과 인트라 예측 모드 번호 사이의 매핑은 도 6d에 명시된다. 65 개 이상의 인트라 예측 모드가 자연 비디오(natural video)에서 제공되는 임의의 에지 방향을 캡처할 수 있는 최신 비디오 코딩 기술, 예를 들어 다목적 비디오 코딩(versatile video coding)(VVC)에서 개발된다는 점에 유의해야 한다. 이러한 예측 모드 중에서, 수평 방향을 갖는 모드(예를 들어, 도 6d의 모드 10)는 "수평 모드"라고도 지칭되고, 수직 방향을 갖는 모드(예를 들어, 도 6d의 모드 26)는 "수직 모드"라고도 지칭된다.
도 7은 블록의 참조 샘플을 예시한다. 도 7에 도시된 바와 같이, 블록 "CUR"은 예측할 현재 블록이고, 현재 블록 경계를 따라 있는 어두운 샘플은 현재 블록을 예측하는데 사용되는 참조 샘플이다. 이러한 참조 샘플은 인접 블록이라고도 하는 현재 블록에 인접한 복원된 블록 내의 샘플이다. 블록 "CUR"은 예측될 블록의 타입에 따라 루마 블록 또는 크로마 블록일 수 있다. 예측 신호는 인트라 예측 모드에 의해 지시되는 특정 방법에 따라 참조 샘플을 매핑함으로서 도출될 수 있다.
참조 샘플 대체
일부 또는 모든 참조 샘플은 몇 가지 이유로 인해 인트라 예측에 이용 가능하지 않을 수 있다. 예를 들어, 픽처, 슬라이스 또는 타일 외부의 샘플은 예측에 사용 가능하지 않은 것으로 간주된다. 또한, 제한된 인트라 예측(constrained intra prediction)이 실시 가능할 때, 잠재적으로 잘못 수신되고 복원된 과거 픽처로부터 생기는 오류 전파를 피하기 위해 인터-예측된 PU에 속하는 참조 샘플은 생략된다. 본 명세서에서 사용된 바와 같이, 현재 코딩 블록의 참조 샘플이 현재 픽처, 슬라이스 또는 타일 외부에 있지 않으면, 현재 코딩 블록이 디코딩되기 전에 참조 샘플이 복원되었을 수 있었다면 및/또는 참조 샘플이 인코더에서의 코딩 결정으로 인해 생략되지 않으면, 현재 코딩 블록의 참조 샘플은 이용 가능하다. HEVC에서는 이용 가능하지 않은 참조 샘플을 대체한 후에 모든 예측 모드를 사용할 수 있도록 한다. 이용 가능한 참조 샘플이 없는 극단적인 경우, 모든 참조 샘플은 주어진 비트 심도에 대한 공칭 평균 샘플 값(예를 들어 8 비트 데이터의 경우 128)으로 대체된다. 인트라 예측에 이용 가능하지 않은 것으로 표시된 적어도 하나의 참조 샘플이 있다면, 이용 가능하지 않은 참조 샘플은 이용 가능한 참조 샘플을 사용함으로써 대체된다. 이용 가능하지 않은 참조 샘플은 참조 샘플을 시계 방향으로 스캔하고 이용 가능하지 않은 샘플에 대해 가장 최근의 이용 가능한 샘플 값을 사용함으로써 대체된다. 시계 방향 스캔으로 제 1 샘플이 이용 가능하지 않으면, 이것은 샘플을 시계 방향 순서로 스캔할 때 처음 만나는 이용 가능한 참조 샘플로 대체된다. 여기서 "대체"는 패딩이라고도 부를 수 있으며, 대체된 샘플은 패딩된 샘플이라고도 부를 수 있다.
제한된 인트라 예측
제한된 인트라 예측은 인코더-디코더 간 미스매칭 참조 픽셀(encoder-decoder mismatched reference pixels)을 이용한 공간 인트라 예측에 의해 야기되는 공간 노이즈 전파를 방지하려는 도구이다. 인코더-디코더 간 미스매칭 참조 픽셀은 인터-코딩된 슬라이스의 전송시 패킷 손실이 발생할 때 나타날 수 있다. 인코더-디코더 간 미스매칭 참조 픽셀은 손실이 있는 디코더 측 메모리 압축이 사용되는 때에도 나타날 수 있다. 제한된 인트라 예측이 가능해질 때, 인터-예측된 샘플은 인트라 예측에 이용 가능하지 않거나 이용 불가능한 것으로 표시되며, 이러한 이용 가능하지 않은 샘플은 인코딩 측에서 전체 인트라 예측 추정 또는 디코딩 측에서 인트라 예측을 수행하기 위한 위에서 설명한 바와 같은 패딩 방법으로 패딩될 수 있다.
크로스 컴포넌트 선형 모델 예측(CCLM)
크로스 컴포넌트 인트라-예측(cross-component intra-prediction)(CCIP)이라고도 지칭하는 크로스 컴포넌트 선형 모델 예측(CCLM)은 인트라 예측 모드 동안 크로스 컴포넌트 중복성을 줄이기 위해 사용되는 인트라 예측 모드의 한 타입이다. 도 8(도 8a 및 도 8b를 포함)은 CCLM 인트라-예측을 수행하는 예시적인 메커니즘을 예시하는 개략도이다. 도 8은 4:2:0 샘플링의 예를 예시한다. 도 8은 CCLM 모드에 관여된 현재 블록의 샘플 및 그 좌측 및 상측의 인접한 샘플의 위치의 예를 도시한다. 흰색 정사각형은 현재 블록의 샘플이고, 음영 처리된 원은 인접 블록의 복원된 샘플이다. 도 8a는 크로마 블록의 인접한 복원된 픽셀의 예를 예시한다. 도 8b는 동일 위치에 배치된 루마 블록의 인접한 복원된 픽셀의 예를 예시한다. 비디오 포맷이 YUV 4:2:0이면, 하나의 16x16 루마 블록과 두 개의 8x8 크로마 블록이 있다.
CCLM 인트라-예측은 인코더(200)의 인트라 추정 유닛(254) 및/또는 디코더(300)의 인트라 예측 유닛(354)에 의해 수행될 수 있다. CCLM 인트라-예측은 크로마 블록(801)의 크로마 샘플(803)을 예측한다. 크로마 샘플(803)은 정사각형으로 표시된 정수 위치에 나타난다. 예측은 검은 색 원으로 표시된 인접한 참조 샘플에 부분적으로 기초한다. 크로마 샘플(803)은 또한 인접한 크로마 참조 샘플(805)만을 기초로 하여 예측되지 않는다. 크로마 샘플(803)은 또한 루마 참조 샘플(813) 및 인접한 루마 참조 샘플(815)에 기초하여 예측된다. 구체적으로, CU는 루마 블록(811)과 2 개의 크로마 블록(801)을 포함한다. 동일한 CU에서 크로마 샘플(803)과 루마 참조 샘플(813)을 상관시키는 모델이 생성된다. 모델에 대한 선형 계수는 인접한 루마 참조 샘플(815)을 인접한 크로마 참조 샘플(805)과 비교함으로써 결정된다.
루마 참조 샘플(813)이 복원됨에 따라, 루마 참조 샘플(813)은 복원된 루마 샘플(Rec'L)로 표시된다. 인접한 크로마 참조 샘플(805)이 복원됨에 따라, 인접한 크로마 참조 샘플(805)은 복원된 인접한 크로마 샘플(Rec'C)로 표시된다.
도시된 바와 같이, 루마 블록(811)은 크로마 블록(801)보다 4 배의 샘플을 포함한다. 도 8에서, 크로마 블록(801)은 N x N 샘플을 포함하는 반면, 루마 블록(811)은 2N x 2N 샘플을 포함한다. 따라서, 루마 블록(811)은 크로마 블록(801)의 해상도의 4 배이다. 루마 참조 샘플(813) 및 인접한 루마 참조 샘플(815)에 대해 예측을 수행하기 위해, 인접한 크로마 참조 샘플(805)과 크로마 샘플(803)의 정확한 비교를 제공하기 위해 루마 참조 샘플(813) 및 인접한 루마 참조 샘플(815)은 다운샘플링된다. 다운샘플링은 샘플 값 그룹의 해상도를 줄이는 프로세스이다. 예를 들어, YUV 4:2:0 포맷이 사용될 때, 루마 샘플은 4 배(예를 들어, 폭 2 배, 높이 2 배)의 인자로 다운샘플링될 수 있다. YUV는 루마 컴포넌트 Y와 두 개의 크로마 컴포넌트 U 및 V의 측면에서 컬러 공간을 사용하는 컬러 인코딩 시스템이다.
CCLM 예측에서, 크로마 샘플은 다음과 같이 선형 모델을 사용하여 다운샘플링된 대응하는 복원된 루마 샘플(현재 루마 블록)에 기초하여 예측된다.
Figure pct00049
여기서
Figure pct00050
는 예측된 크로마 샘플을 나타내고
Figure pct00051
는 다운샘플링된 대응하는 복원된 루마 샘플을 나타낸다. 파라미터(α 및 β)는 다음과 같이 현재 루마 블록 및 현재 크로마 블록 주변 주변의 인접한 복원된 루마 및 크로마 샘플 간의 회귀 오류를 최소화함으로써 도출할 수 있다.
Figure pct00052
Figure pct00053
여기서
Figure pct00054
은 다운샘플링된 상측 및 좌측의 인접한 복원된 루마 샘플을 나타내고,
Figure pct00055
은 상측 및 좌측의 인접한 복원된 크로마 샘플을 나타내며, N의 값은 계수를 도출하는데 사용된 샘플과 동일하다. 정사각형 형상의 코딩 블록의 경우, 위의 2 개의 수학식이 직접 적용된다. 이러한 회귀 오류 최소화 계산은 인코더 검색 동작뿐만 아니라 디코딩 프로세스의 일부로서도 수행되며, 그래서 α 및 β값을 전달하는데 신택스가 사용되지 않는다.
회귀 오류를 최소화하는 위의 방법(최소 제곱(least square)(LS) 방법이라고도 함)을 사용하는 것 외에도, 선형 모델 계수(α 및 β)는 또한 최대 및 최소 루마 샘플 값을 사용하여 도출될 수 있다. 이러한 후자의 방법은 최대최소(MaxMin) 방법이라고도 한다. 최대최소 방법에서, 상측 및 좌측의 인접한 복원된 루마 샘플이 다운샘플링된 후에, 상측 및 좌측의 인접한 복원된 크로마 샘플과 함께 이러한 인접한 복원된 루마 샘플 각각에 대해 일대일 관계가 획득된다. 따라서 선형 모델 계수 파라미터(α 및 β)는 일대일 관계에 기초한 루마와 크로마 샘플의 쌍을 사용하여 도출될 수 있다. 루마와 크로마 샘플의 쌍은 다운샘플링된 인접한 복원된 상측 및 좌측 루마 샘플에서 최소 및 최대 값을 식별한 다음 인접한 복원된 상측 및 좌측 크로마 템플릿에서 대응하는 샘플을 식별함으로써 획득된다. 루마와 크로마 샘플의 쌍은 도 9의 (A, B)와 같이 도시된다. 선형 모델 파라미터(α 및 β)는 다음의 수학식에 따라 획득된다:
Figure pct00056
Figure pct00057
여기서
Figure pct00058
는 도 9의 A의 좌표이고
Figure pct00059
는 도 9의 B의 좌표이다.
CCLM 루마 대 크로마 예측 모드는 하나의 추가적인 크로마 인트라 예측 모드로서 추가된다. 인코더 측에서, 크로마 인트라 예측 모드를 선택하기 위해 크로마 컴포넌트에 대한 레이트 왜곡(RD) 비용 검사가 하나 더 추가된다.
간략화를 위해, 본 문서에서, "템플릿"이라는 용어는 인접한 복원된 크로마 샘플 및 다운샘플링된 인접한 복원된 루마 샘플을 나타내는데 사용된다. 이러한 인접한 복원된 크로마 샘플 및 다운샘플링된 인접한 복원된 루마 샘플은 템플릿의 참조 샘플이라고도 지칭된다. 도 10은 크로마 블록 및 대응하는 다운샘플링된 루마 블록의 템플릿의 예시이다. 도 10에 도시된 예에서, 루마'(1020)은 현재 루마 블록의 다운샘플링된 버전이며 크로마 블록(1040)과 동일한 공간 해상도를 갖는다. 다시 말해, 루마'(1020)은 크로마 블록(1040)의 다운샘플링된 동일 위치의(down-sampled collocated) 루마 블록이다. 상측 템플릿(1002)은 현재 크로마 블록(1040) 위쪽의 상측의 인접한 복원된 크로마 샘플 및 루마'(1020)의 대응하는 다운샘플링된 상측의 인접한 복원된 루마 샘플을 포함한다. 루마'(1020)의 다운샘플링된 상측의 인접한 복원된 루마 샘플은 루마 블록 위쪽의 인접한 샘플에 기초하여 획득된다. 여기에서 사용되는 바와 같이, 루마 블록 위쪽의 인접한 샘플은 루마 블록 바로 위쪽의 인접한 샘플, 루마 블록에 인접하지 않은 인접한 샘플 또는 둘 다를 포함할 수 있다. 좌측 템플릿(1004)은 좌측의 인접한 복원된 크로마 샘플 및 대응하는 다운샘플링된 좌측의 인접한 복원된 루마 샘플을 포함한다. 상측의 인접한 복원된 크로마 샘플은 또한 상측 크로마 템플릿(1006)과 같은 "상측 크로마 템플릿"이라고도 지칭된다. 대응하는 다운샘플링된 상측의 인접한 복원된 루마 샘플은 상측 루마 템플릿(1008)과 같은 "상측 루마 템플릿"이라고 지칭된다. 좌측의 인접한 복원된 크로마 샘플은 또한 좌측 크로마 템플릿(1010)과 같은 "좌측 크로마 템플릿"이라고 지칭된다. 대응하는 다운샘플링된 좌측의 인접한 복원 루마 샘플은 좌측 루마 템플릿(1012)와 같은 "좌측 루마 템플릿"이라고 지칭된다. 템플릿에 포함된 요소는 해당 템플릿의 참조 샘플로 지칭된다.
기존의 CCLM 애플리케이션에서, 상측 또는 좌측 템플릿의 경우, 이용 가능하지 않은 것으로 표시되는 참조 샘플 하나가 존재하면, 전체 템플릿이 사용되지 않을 것이다. 도 11은 이용 가능하지 않은 참조 샘플을 포함하는 템플릿의 예의 예시이다. 도 11에 도시된 예에서, 크로마 블록(1140)에 대해, A2(1102)의 참조 샘플과 같이, 상측 템플릿에서 이용 가능하지 않은 참조 샘플이 존재하면, 상측 템플릿은 선형 모델 계수 도출에 사용되지 않을 것이다. 유사하게, B2(1104)의 참조 샘플처럼, 좌측 템플릿에서 이용 가능하지 않은 참조 샘플 하나가 존재하면, 좌측 템플릿은 선형 모델 계수 도출에 사용되지 않을 것이다. 이것은 인트라 예측의 코딩 성능을 저하시킬 것이다.
다중 방향 선형 모델
선형 모델 계수를 함께 계산하는데 사용되는 것 외에도, 상측 템플릿 및 좌측 템플릿 내 참조 샘플은 또 다른 두 CCLM 모드, 즉, CCLM_T 및 CCLM_L 모드에서도 사용할 수 있다. CCLM_T 및 CCLM_L은 일괄하여 다중 방향 선형 모델(multi-directional linear model)(MDLM)이라고도 지칭된다. 도 12는 CCLM_T 모드에서 사용되는 참조 샘플의 예시이고, 도 13은 CCLM_L 모드에서 사용되는 참조 샘플의 예시이다. 도 12에 도시된 바와 같이, CCLM_T 모드에서, 참조 샘플(1202 및 1204)과 같은 상측 템플릿 내 참조 샘플만이 선형 모델 계수를 계산하는데 사용된다. 도 13에 도시된 바와 같이, CCLM_L 모드에서, 참조 샘플(1212 및 1214)과 같은 좌측 템플릿 내 참조 샘플만이 선형 모델 계수를 계산하는데 사용된다. 이러한 각각의 모드에서 사용되는 참조 샘플의 수는 W+H 이며, 여기서 W는 크로마 블록의 폭이고 H는 크로마 블록의 높이이다.
CCLM 모드 및 MDLM 모드(즉, CCLM_T 모드 및 CCLM_L 모드)는 함께 사용되거나 또는 대안적으로 사용될 수 있다. 예를 들어, 코덱에서 CCLM 모드만 사용되거나, 코덱에서 MDLM 만 사용되거나, 또는 코덱에서 CCLM과 MDLM이 둘 모두 사용된다. CCLM과 MDLM이 둘 모두 사용되는 마지막 경우에 있어서, 3 개 모드(즉, CCLM, CCLM_T, CCLM_L)가 3 개의 추가적인 크로마 인트라 예측 모드로서 추가된다. 인코더 측에서, 크로마 인트라 예측 모드를 선택하기 위해 크로마 컴포넌트에 대한 RD 비용 검사가 3 개 더 추가된다. 기존의 MDLM 방법에서, 모델 파라미터 또는 모델 계수는 LS 방법을 사용하여 도출된다. 이용 가능한 참조 샘플의 수가 충분하지 않으면, 패딩 작업이 사용되어 가장 먼 픽셀 값을 복사하거나 또는 이용 가능한 참조 샘플에 있는 샘플 값을 가져온다.
그러나 MDLM 모드에 대한 선형 모델 계수를 획득하기 위해 LS 방법을 사용하면 계산 복잡성이 높아지게 된다. 또한, 기존의 MDLM 모드에서, 일부 템플릿 샘플의 위치는, 특히 정사각형이 아닌 블록의 경우, 현재 블록에서 멀리 떨어져 있을 수 있다. 예를 들어, 상측 템플릿 내 맨 오른쪽 참조 샘플 및 좌측 템플릿 내 하단 참조 샘플은 현재 블록에서 멀리 떨어져 있다. 이와 같이, 이들 참조 샘플은 현재 블록과의 상관 관계가 더 적어, 크로마 블록의 예측의 효율성은 더 적을 것이다. 본 명세서에 제시된 기술은 MDLM의 복잡성을 줄이고, 템플릿 샘플과 현재 블록 간의 상관 관계를 개선할 수 있다.
하나의 예에서, 최대최소 방법을 사용하여 모델 계수를 결정할 때, 상측 템플릿과 좌측 템플릿로부터의 참조 샘플을 함께 사용하는 것 외에도, 좌측 템플릿 또는 상측 템플릿의 한쪽 부분에만 있는 참조 샘플이 사용된다. 예를 들어, 최대최소 방법에서, 상측 루마 템플릿 내의 참조 샘플만이 최대 루마 값 및 최소 루마 값을 결정하기 위해 검사된다. 대안적으로, 좌측 루마 템플릿 내의 참조 샘플만이 최대 루마 값 및 최소 루마 값을 결정하기 위해 검사된다. 최대 및 최소 루마 값의 샘플 위치가 결정된 후에, 최소 및 최대 루마 값의 위치에 기초하여 대응하는 크로마 샘플 값이 획득될 수 있다.
도 14는 최대 및 최소 루마 값을 결정하는데 사용되는 참조 샘플의 예를 예시하는 개략도이다. 도 14에 도시된 예에서, W1으로 표시된 상측 루마 템플릿 내 참조 샘플의 수는 W로 표시된 현재 크로마 블록의 폭보다 크다. H1으로 표시된 좌측 루마 템플릿 내 참조 샘플의 수는 H로 표시된 현재 크로마 블록의 높이 보다 크다. 도 15는 최대 및 최소 루마 값을 결정하는데 사용되는 참조 샘플의 다른 예를 예시하는 개략도이다. 도 15에 도시된 예에서, 상측 루마 참조 샘플의 수는 현재 크로마 블록(W)의 폭과 동일하고 좌측 루마 참조 샘플의 수는 현재 크로마 블록(H)의 높이와 같다.
요약하면, LS 모드 외에도, 최대최소 방법이 또한 MDLM 모드에 대해서도 사용될 수 있다. 다시 말해, 최대최소 방법은 CCLM_T 모드 및 CCLM_L 모드에 대한 모델 계수를 도출하는데 사용될 수 있다. 최대최소 방법이 LS 방법보다 계산 복잡도가 낮기 때문에, 제안된 방법은 계산 복잡도를 줄여줌으로써 MDLM을 개선한다. 또한, 기존의 최대최소 방법은 CCLM 모드에 대해 상측 템플릿과 좌측 템플릿을 둘 모두 사용한다. 제안된 방법은 모델 계수를 도출하기 위해 상측 템플릿 또는 좌측 템플릿을 사용하며, 이것은 모드의 계산 복잡도를 더 줄여준다.
본 명세서에 제시된 기술의 추가 예에 따르면, 템플릿 내 참조 샘플은 참조 샘플과 현재 블록 사이의 상관 관계를 높이기 위해 선택된다. 상측 템플릿의 경우, 최대 W2개의 참조 샘플이 사용될 것이다. 좌측 템플릿의 경우, 최대 H2개의 참조 샘플이 사용될 것이다. 이러한 방식으로, 상측 템플릿 내 W2개의 참조 샘플 또는 좌측 템플릿 내 H2개의 참조 샘플을 초과하는 참조 샘플은 이들 샘플이 현재 블록과 상관 관계가 더 적기 때문에 사용되지 않는다.
또한, 최대최소 방법이 모델 계수를 도출하는데 사용될 때, 단지 이용 가능한 참조 샘플만 사용되고 이용 가능하지 않은 참조 샘플을 대체하는 패딩은 사용되지 않는다. 예를 들어, 상측 루마 템플릿 내 이용 가능한 샘플만이 검사되어 CCLM_T 모드에 대한 최대 및 최소 루마 값을 결정할 것이다. 상측 템플릿 내 W2개의 참조 샘플이 사용되기 때문에, W3으로 표시된 이용 가능한 샘플의 수는 W2와 같거나 적을 것이다. 마찬가지로, 좌측 루마 템플릿 내 이용 가능한 샘플이 검사되어 CCLM_L 모드에 대한 최대 및 최소 값을 결정할 것이고, H3로 표시된 이용 가능한 샘플의 수는 H2와 같거나 적을 것이다. W2와 W3 및 H2와 H3 간의 관계는 도 16에 도시되며, 여기서 W3<=W2 and H3 <=H2 이다. 일 예에서, W2 = 2 x W 이고 H2 = 2 x H 이다.
대안적으로, W2 및 H2는 각각 W + H의 값을 취할 수 있다. 다시 말해, 상측 루마 템플릿 내 W+H 개의 참조 샘플은 CCLM_T 모드에 대한 모델 계수를 도출하는데 사용될 수 있고, 좌측 루마 템플릿 내 W+H 개의 참조 샘플은 CCLM_L 모드에 대한 모델 계수를 도출하는데 사용될 수 있다. 이러한 참조 샘플 중에서, 이러한 범위 안에 있는 이용 가능한 루마 템플릿 샘플(즉, CCLM_T 및 CCLM_L 둘 모두에 대해 W+H)만이 검사되어 최대 및 최소 루마 값을 결정할 것이다. 이 예에서, (W+H와 같거나 적은) 상측 루마 템플릿 내 이용 가능한 샘플이 검사되어 CCLM_T 모드에 대한 최대 및 최소 루마 값을 결정할 것이다. (W+H와 같거나 적은) 좌측 루마 템플릿 내 이용 가능한 샘플이 검사되어 CCLM_L 모드에 대한 최대 및 최소 루마 값을 결정할 것이다.
정확하게 W+H 개 참조 샘플이 CCLM_T 및 CCLM_L 모드에 대한 모델 계수를 도출하는데 사용되는 기존 MDLM 방법과 비교하여, 제안된 방법에서 최대 2xW 또는 W+H 개 참조 샘플은 CCLM_T 모드에 대한 모델 계수를 도출하는데 사용되고, 최대 2xH 또는 W+H 개 참조 샘플은 CCLM_L 모드에 대한 모델 계수를 도출하는데 사용된다. 또한, 검사된 샘플 범위에 드는 이용 가능한 루마 참조 샘플(CCLM_T의 경우 2xW 또는 W+H, 그리고 CCLM_L의 경우 2xH 또는 W+H) 만이 최대 및 최소 값을 결정하는데 사용될 것이다. 위의 제안된 방법에서, 루마 템플릿에서 최대 및 최소 루마 값을 결정하는 것은 스텝 크기가 2, 4 또는 다른 값과 같이 1을 초과하는 참조 샘플을 샘플링함으로써 속도를 높일 수 있다.
다운샘플링 방법
위에서 논의한 바와 같이, 픽처의 루마 컴포넌트의 공간 해상도는 크로마 컴포넌트의 공간 해상도보다 크기 때문에, MDLM 모드의 경우 루마 컴포넌트는 크로마 부분의 해상도로 다운샘플링되어야 한다. 예를 들어, YUV 4:2:0 포맷의 경우, 루마 컴포넌트는 크로마 컴포넌트의 해상도와 매칭하기 위해 4(폭에서 2 그리고 높이에서 2)로 다운샘플링되어야 한다. (크로마 블록과 공간 해상도가 동일한) 크로마 블록에 대응하는 다운샘플링된 루마 블록은 MDLM 모드를 사용하여 크로마 블록에 대한 예측을 수행하는데 이용될 수 있다. 다운샘플링된 루마 블록의 크기는 (루마 블록이 크로마 블록의 크기로 다운샘플링되기 때문에) 크로마 블록의 크기와 동일하다.
마찬가지로 루마 템플릿 내 참조 샘플은 MDLM 모드에 대한 선형 모델 계수를 도출하기 위해 다운샘플링되어야 한다. CCLM_T 모드의 경우, 상측의 인접한 복원된 루마 샘플은 다운샘플링되어 상측의 크로마 템플릿 내 참조 샘플, 즉, 상측의 인접한 복원된 크로마 샘플에 대응하는 상측 템플릿에 대한 참조 샘플을 생성한다. 상측의 인접한 복원된 루마 샘플의 다운샘플링에는 전형적으로 상측의 인접한 복원된 루마 샘플의 다수의 행이 관여된다. 도 17은 인접한 루마 샘플의 다수의 행 및 열을 사용하여 루마 샘플을 다운샘플링하는 예를 예시하는 개략도이다. 도 17에 도시된 바와 같이, 루마 블록의 경우, 2개의 상측의 인접한 행(A1 및 A2)이 다운샘플링하는 동안 사용되어 다운샘플링된 인접한 행(A)을 획득할 수 있다. A[i]를 A의 i 번째 샘플로, A1[i]를 A1의 i 번째 샘플로, A2[i]를 A2의 i 번째 샘플로 표시하면, 6-탭 다운샘플링 필터는 다음과 같이 사용할 수 있다:
Figure pct00060
인접한 샘플의 수는 또한 현재 블록의 크기보다 클 수 있다. 예를 들어, 도 18에 도시된 바와 같이, 다운샘플링된 루마 블록의 상측의 인접한 샘플의 수는 M일 수 있으며, 여기서 M은 다운샘플링된 블록의 폭(W)보다 크다.
위에서 설명된 바와 같이 기존의 다운샘플링 방법에서, 상측의 인접한 복원된 루마 샘플의 다수의 행은 다운샘플링된 상측의 인접한 복원된 루마 샘플을 생성하는데 사용된다. 이것은 정규의 인트라 모드 예측과 비교할 때 라인 버퍼의 크기를 증가시키며, 따라서 메모리 비용을 증가시킨다.
본 명세서에 제시된 기술은 현재 블록이 현재 코딩 트리 유닛(CTU)의 상측 경계에 있다면(즉, 현재 크로마 블록의 상측 행이 현재 CTU의 상측 행과 중첩된다면) CCLM_T 모드에 대해 상측의 인접한 복원된 루마 샘플의 하나의 행만을 사용하여 다운샘플링의 메모리 사용을 줄여준다. 도 19는 CTU의 상측 경계에 있는 루마 블록에 대한 인접한 루마 샘플의 단일 행을 사용하여 다운샘플링하는 예를 예시하는 개략도이다. 도 19에 도시된 바와 같이, (인접한 복원된 루마 샘플의 하나의 행을 포함하는) A1만이 사용되어 A 내 다운샘플링된 상측의 인접한 복원된 루마 샘플을 생성한다.
위의 설명이 CCLM_T 모드에 대한 상측의 인접한 복원된 루마 샘플에 초점을 맞추지만, 유사한 방법이 CCLM_L 모드에 대한 좌측의 인접한 복원된 루마 샘플에 적용될 수 있다는 것을 이해해야 한다. 예를 들어, 다운샘플링을 위해 좌측의 인접한 복원된 루마 샘플의 다수의 열을 사용하는 대신, 현재 블록이 CTU의 좌측 경계에 있다면(즉, 현재 크로마 블록의 좌측 행이 CTU의 좌측 행과 중첩된다면), 다운샘플링할 때 좌측의 인접한 복원된 루마 샘플의 단일 열이 사용되어 다운샘플링된 루마 블록의 좌측 템플릿 내 참조 샘플을 생성한다.
참조 샘플의 이용 가능성 결정
위의 예에서, 루마 템플릿은 최대 및 최소 루마 값을 결정하기 위한 참조 샘플의 이용 가능성을 결정하는데 사용된다. 그러나, 일부 시나리오에서, 이용 가능한 루마 참조 샘플에는 대응하는 크로마 참조 샘플이 없다. 예를 들어, 루마 블록 및 크로마 블록은 별도로 코딩될 수 있다. 따라서 이것은 복원된 루마 블록이 이용 가능할 때, 대응하는 크로마 블록은 여전히 이용 가능하지 않다는 것과 같다. 결과적으로, 이용 가능한 루마 참조 샘플에는 대응하는 크로마 참조 샘플이 없고, 이것은 코딩 에러에 이르게 할 수 있다.
본 명세서에서 제시된 기술은 크로마 템플릿 내 참조 샘플의 이용 가능성을 검사하는 것을 통해 템플릿 내 참조 샘플의 이용 가능성을 결정함으로써 이러한 문제를 해결한다. 일부 예에서, 크로마 참조 샘플이 현재 픽처, 슬라이스 또는 타일 외부에 있지 않고, 참조 샘플이 복원되었다면, 크로마 참조 샘플은 이용 가능하다. 일부 예에서, 크로마 참조 샘플이 현재 픽처, 슬라이스 또는 타일 외부에 있지 않고, 참조 샘플이 복원되었고, 인코딩 결정에 기초하여 참조 샘플이 누락되지 않으면, 크로마 참조 샘플은 이용 가능하다. 현재 크로마 블록의 이용 가능한 참조 샘플은 크로마 블록의 이용 가능한 복원된 인접 샘플일 수 있다. 이용 가능한 크로마 참조 샘플에 대응하는 루마 참조 샘플은 최대 및 최소 루마 값을 결정하는데 활용된다. 예를 들어, 크로마 템플릿 내 L 개의 참조 샘플이 이용 가능하면, L 개의 이용 가능한 크로마 참조 샘플에 대응하는 루마 템플릿 내 참조 샘플은 최대 및 최소 루마 값을 결정하는데 사용될 것이다. 크로마 참조 샘플에 대응하는 루마 참조 샘플(들)은 크로마 템플릿 내에 있는 크로마 참조 샘플과 루마 템플릿 내의 동일한 위치에 있는 루마 참조 샘플(예를 들어, 동일 위치의 루마 참조 샘플(위치(x, y))을 식별함으로써 결정될 수 있고, 이를테면 크로마 참조 샘플에 대응하는 루마 참조 샘플(들)은 인접한 루마 참조 샘플(위치(x-1, y)), 루마 참조 샘플(위치(x, y)) 및 인접한 루마 참조 샘플(위치(x + 1, y))를 포함할 수 있다. 그 다음에 최대 및 최소 루마 값을 갖는 루마 참조 샘플 및 최대 및 최소 루마 값과 연관된 루마 참조 샘플에 대응하는 크로마 참조 샘플은 위에서 설명한 바와 같이 모델 계수를 결정하는데 사용된다.
예에서, L 개의 이용 가능한 크로마 참조 샘플은 모델 계수, 예를 들어 L=4를 결정하는데 사용될 수 있다. 다른 예에서, L 개의 이용 가능한 크로마 참조 샘플의 일부 또는 L 개의 크로마 참조 샘플의 일부는 모델 계수를 결정하는데 사용된다. 예를 들어, 고정된 수의 이용 가능한 크로마 참조 샘플이 L 개의 이용 가능한 크로마 참조 샘플로부터 선택된다. 선택된 크로마 참조 샘플에 대응하는 루마 참조 샘플이 식별되고 선택된 크로마 참조 샘플과 함께 모델 계수를 결정하는데 사용된다. 예를 들어, 선택된 크로마 참조 샘플이 4 개의 이용 가능한 크로마 참조 샘플이면, 4 개의 이용 가능한 크로마 참조 샘플에 대응하는 인접한 복원된 루마 샘플이 식별된다. 모델 계수를 결정하는데 사용되는 루마 참조 샘플은 24개의 인접한 복원된 루마 샘플을 다운샘플링함으로써 획득되며, 여기서 다운샘플링 프로세스를 위해 6 탭 필터가 사용된다.
도 16에 도시된 예에서, CCLM_T 모드의 상측 템플릿 샘플 범위는 W2이다. 그 다음에, 현재 크로마 블록의 상측 크로마 템플릿 내 참조 샘플의 이용 가능성이 결정된다. W3 개의 크로마 참조 샘플이 이용 가능하면(W3<=W2 이면), 대응하는 W3 개 또는 그 보다 적은 수의 참조 샘플이 획득될 것이다. 이러한 획득된 루마 참조 샘플 및 크로마 참조 샘플은 CCLM_T 모드의 모델 계수를 도출하는데 사용될 것이다.
유사하게, 도 16에 도시된 예는 CCLM_L 모드에 대해 H2로서 좌측 템플릿 샘플 범위를 갖는다. 현재 크로마 블록의 좌측 크로마 템플릿 내 참조 샘플의 이용 가능성이 검사된다. H3 개의 크로마 참조 샘플이 이용 가능하면(H3<=H2 이면), 대응하는 H3 개 또는 그 보다 적은 수의 참조 샘플이 획득될 것이다. 이러한 획득된 루마 참조 샘플 및 크로마 참조 샘플은 CCLM_L 모드의 모델 계수를 도출하는데 사용될 것이다. CCLM_L 모드에 대한 참조 샘플의 이용 가능성은 유사하게 결정될 수 있는데, 즉, 상측 및 좌측 크로마 템플릿 둘 모두의 참조 샘플의 이용 가능성을 결정한 다음 대응하는 루마 참조 샘플을 찾아 위에서 논의한 바와 같이 모델 계수를 결정한다.
제안된 방법의 상세 내용은 표 1에서 INTRA_CCLM, INTRA_CCLM_L, or INTRA_CCLM_T 인트라 예측 모드의 설명서의 형식으로 설명된다. 표 2는 본 명세서에서 제안된 방법의 대안적인 구현예를 보여준다.
이 프로세스로의 입력은 다음과 같다:

- 인트라 예측 모드 predModeIntra,
- 현재 픽처의 상측-좌측 샘플에 대한 현재 변환 블록의 상측-좌측 샘플의 샘플 위 치(xTbC, yTbC),
- 변환 블록 폭을 명시하는 변수 nTbW,
- 변환 블록 높이를 명시하는 변수 nTbH,
- 크로마 인접 샘플 p[x][y].

- predModeIntra가 INTRA_CCLM과 같으면, x = -1, y = 0..nTbH - 1이고 x = 0..nTbW-1, y =-1이다.

- 그렇지 않고, predModeIntra가 INTRA_CCLM_L과 같으면, x = -1, y = 0..nTbH*2-1 이다.

- 그렇지 않고, predModeIntra가 INTRA_CCLM_T와와 같으면, x = 0..nTbW*2-1, y =-1 이다.

이러한 프로세스의 출력은 예측된 샘플 predSamples[x][y]이고, 이때 x = 0..nTbW-1, y = 0..nTbH-1이다.

현재 루마 위치(xTbY, yTbY)는 다음과 같이 도출된다:
(xTbY, yTbY) = (xTbC << 1, yTbC << 1) (1)

변수 availL, availT 및 availT는 다음과 같이 도출된다:

- 블록에 대한 좌측의 인접한 샘플 도출 프로세스의 이용가능성은 현재 크로마 위치(xCurr, yCurr)가 입력으로서 (xTbC, yTbC) 및 인접한 크로마 위치(xTbC-1, yTbC)와 동일하게 설정되어 호출되며, 출력은 availL에 할당된다.

- 블록에 대한 상측의 인접한 샘플 도출 프로세스의 이용가능성은 현재 크로마 위치(xCurr, yCurr)가 입력으로서 (xTbC, yTbC) 및 인접한 크로마 위치(xTbC-1, yTbC)와 동일하게 설정되어 호출되며, 출력은 availT에 할당된다.

- 블록에 대한 상측-좌측의 인접한 샘플 도출 프로세스의 이용가능성은 현재 크로마 위치(xCurr, yCurr)가 입력으로서 (xTbC, yTbC) 및 인접한 크로마 위치(xTbC-1, yTbC)와 동일하게 설정되어 호출되며, 출력은 availTL에 할당된다.

- predModeIntra가 INTRA_CCLM_T와 같으면, 블록에 대한 이용 가능한 상측-우측의 인접한 샘플 도출 프로세스의 수는 현재 크로마 위치(xCurr, yCurr)가 입력으로서 (xTbC, yTbC)및 nTbW와 동일하게 설정되어 호출되며, 출력은 nSampTopRight에 할당되어, (xTbC+nTbW, yTbC-1) 내지 (xTbC+2*nTbW-1, yTbC-1)범위의 이용 가능한 수의 샘플을 얻는다. 그렇지 않으면, nSamplesTopRight은 0이다.

- predModeIntra가 INTRA_CCLM_L과 같으면, 블록에 대한 이용 가능한 좌측-아래의 인접한 샘플 도출 프로세스의 수는 현재 크로마 위치(xCurr, yCurr)가 입력으로서 (xTbC, yTbC)및 nTbH와 동일하게 설정되어 호출되며, 출력은 nSampLeftBelow에 할당된다. (xTbC-1, yTbC+ nTbH)내지 (xTbC -1, yTbC+2* nTbH -1)의 범위의 이용 가능한 수의 샘플을 얻는다. 그렇지 않으면, nSampLeftBelow는 0이다.

상측 및 상측-우측의 이용 가능한 인접한 크로마 샘플의 수는 nTopSamp이고, 좌측 및 좌측-아래의 이용 가능한 인접한 크로마 샘플의 수는 nLeftSamp이며, 이것은 다음과 같이 도출된다:

- predModeIntra가 INTRA_CCLM과 같으면:
nTopSamp = (availT ? nTbW : 0) (2)
nLeftSamp = (availL ? nTbH : 0) (3)

- 그렇지 않고, predModeIntra가 INTRA_CCLM_L과 같으면:
nTopSamp = 0  (4)
nLeftSamp = (availL ? nTbH + nSampLeftBelow : 0) (5)

- 그렇지 않고, predModeIntra가 INTRA_CCLM_T와 같으면:
nTopSamp = (availT ? nTbW + nSampTopRight : 0) (6)
nLeftSamp = 0  (7)

예측 샘플 predSamples[x][y](x = 0..nTbW-1, y = 0..nTbH-1임)은 다음과 같이 도출된다:

- nTopSamp와 nLeftSamp 둘 모두 0과 같으면, 다음과 같이 적용한다:
predSamples[x][y] = 1 << (BitDepthC-1) (8)

- 그렇지 않으면, 다음 순서의 단계가 적용된다:

1. 동일 위치의 루마 샘플 pY[x][y] (x = 0..nTbW*2-1, y= 0..nTbH*2-1임)은 위 치(xTbY + x, yTbY + y)에서 디블록킹 필터 프로세스에 앞서 복원된 루마 샘플과 동일하게 설정된다.

2. 인접한 루마 샘플 pY[x][y]은 다음과 같이 도출된다:
- 인접한 좌측의 루마 샘플 pY[x][y] (x = -1..-3, y = 0..2*nLeftSamp-1임)은 위치(xTbY + x, yTbY + y)에서 디블록킹 필터 프로세스에 앞서 복원된 루마 샘플과 동일하게 설정된다.

- 인접한 상측의 루마 샘플 pY[x][y] (x = 0..2*nTopSamp-1, y = -1, -2임)은 위치(xTbY+ x, yTbY + y)에서 디블록킹 필터 프로세스에 앞서 복원된 루마 샘플과 동일하게 설정된다.
- availTL가 TRUE일 때, 상측-좌측 루마 샘플 pY[x][y](x = -1, y = -1, -2임)은 위치(xTbY+ x, yTbY + y)에서 디블록킹 필터 프로세스에 앞서 복원된 루마 샘플과 동일하게 설정된다.

3. 다운샘플링된 동일 위치의 루마 샘플 pDsY[x][y] (x = 0..nTbW-1, y = 0..nTbH-1임)은 다음과 같이 도출된다:
- pDsY[x][y](x = 1..nTbW-1, y = 0..nTbH-1임)은 다음과 같이 도출된다:
pDsY[x][y] =  pY[2*x-1][2*y] + pY[2*x-1][2*y + 1] + 
2*pY[2*x][2*y] + 2*pY[2*x][2*y + 1] + pY[2*x + 1][2*y] + 
pY[2*x + 1][2*y + 1] + 4 )>> 3 (9)

- availL이 TRUE일 때, pDsY[0][y] (y = 0..nTbH-1임)는 다음과 같이 도출된다:
pDsY[0][y] = (pY[-1][2*y] + pY[-1][2*y + 1] + 
2* pY[0][2*y] + 2*pY[0][2*y + 1] +  (10)
pY[1][2*y] + pY[1][2*y + 1] + 4 )>> 3

- 그렇지 않으면, pDsY[0][y] (y = 0..nTbH-1임)은 다음과 같이 도출된다:
pDsY[0][y] = (pY[0][2*y] + pY[0][2*y + 1] + 1 )>> 1 (11)

4. 다운샘플링된 인접한 좌측 루마 샘플 pLeftDsY[y] (y = 0..nLeftSamp-1임)은 다음과 같이 도출된다:
pLeftDsY[y] = (pY[-1][2*y] +  pY[-1][2*y + 1] + 
2* pY[-2][2*y] + 2*pY[-2][2*y + 1] +  (12)
pY[-3][2*y] + pY[-3][2*y + 1] + 4 )>> 3

5. 다운샘플링된 인접한 상측 루마 샘플 pTopDsY[x] (x = 0..nTopSamp-1임)은 다음과 같이 명시된다:
- pTopDsY[x] (x = 1..nTbW-1임)은 다음과 같이 도출된다:
pTopDsY[x] = (pY[2*x-1][-2] + pY[2*x-1][-1] + 
2* pY[2*x][-2] + 2*pY[2*x][-] +  (13)
pY[2*x + 1][-2] + pY[2*x + 1][-1] + 4 )>> 3

- availTL가 TRUE일 때, pTopDsY[0]은 다음과 같이 도출된다:
pTopDsY[0] = (pY[- 1][-2] + pY[- 1][-1] + 
2* pY[0][-] + 2*pY[0][-] +  (14)
pY[1][-2] + pY[1][-1] + 4) >> 3

- 그렇지 않으면, pTopDsY[0]는 다음과 같이 도출된다:
pTopDsY[0] = (pY[0][-2] + pY[0][-1] + 1)>> 1 (15)

6. 변수 nS, xS, yS, k0, k1는 다음과 같이 도출된다:
- predModeIntra가 INTRA_CCLM과 같으면:
nS = ((availL && availT)? Min(nTbW, nTbH): (availL ? nTbH : nTbW))
xS = 1 << (((nTbW > nTbH)&& availL && availT)? (Log2(nTbW)-Log2(nTbH )): 0)
yS = 1 << (((nTbH > nTbW)&& availL && availT)? (Log2(nTbH)-Log2(nTbW)): 0)

- 그렇지 않고, predModeIntra가 INTRA_CCLM_L과 같으면:
nS = nLeftSamp
xS = 1
yS = 1

- 그렇지 않고, predModeIntra가 INTRA_CCLM_T와 같으면:
nS = nTopSamp
xS = 1
yS = 1

7. 변수 MinLuma, MaxLuma, ChromaForMinLuma 및 ChromaForMaxLuma는 다음과 같이 도출된다:
- 변수 MinLuma는 1 << (BitDepthY)+1과 같게 설정되고 변수 MaxLuma는 -1과 같게 설정된다.
- availT가 TRUE일 때, 변수 MinLuma, MaxLuma, ChromaForMinLuma 및 ChromaForMaxLuma(x = 0..nS - 1 임)는 다음과 같이 도출된다:
- (MinLuma > pTopDsY[x * xS])이면, 다음과 같이 적용한다:
MinLuma = pTopDsY[x*xS]
ChromaForMinLuma = p[x*xS][-1] 

- (MaxC < pTopDsY[x*xS])이면, 다음과 같이 적용한다:
MaxLuma = pTopDsY[x*xS]
ChromaForMaxLuma = p[x*xS][-1]

- availL가 TRUE이면, 변수 MinLuma, MaxLuma, ChromaForMinLuma 및 ChromaForMaxLuma (y = 0..nS-1임)는 다음과 같이 도출된다:
(MinLuma > pTopDsY[y*yS])이면, 다음과 같이 적용한다:
MinLuma = pTopDsY[y*yS]
ChromaForMinLuma = p[-1] [y*yS] 

- (MaxLuma < pTopDsY[y*yS])이면, 다음과 같이 적용한다:
MaxLuma = pTopDsY[y*yS]
ChromaForMaxLuma = p[-1][y*yS] 

8. 변수 a, b 및 k는 다음과 같이 도출된다:
shift = (BitDepthC > 8)? BitDepthC-9 : 0
add = shift ? 1 << (shift-1): 0
diff = (MaxLuma-MinLuma + add)>> shift
k = 16

- (diff > 0)이면
div = ((ChromaForMaxLuma-ChromaForMinLuma)* (Floor((65536*65536)/
diff)-Floor(65536 / diff)* 65536)+ 32768)>> 16 (16)
a = (((ChromaForMaxLuma-ChromaForMinLuma)* Floor(65536 / diff)+ div +
add)>> shift) (17)

- 그렇지 않으면
a = 0
b = ChromaForMinLuma-((a*MinLuma)>> k) (18)

9. 예측 샘플 predSamples[x][y] (x = 0..nTbW-1, y = 0..nTbH-1)은 다음과 같이 도출된다:
predSamples[x][y] = Clip1C(((pDsY[x][y]*a )>> k )+ b ) (19)
이 프로세스로의 입력은 다음과 같다:

- 인트라 예측 모드 predModeIntra,
- 현재 픽처의 상측-좌측 샘플에 대비한 현재 변환 블록의 상측-좌측 샘플의 샘플 위 치 (xTbC, yTbC),
- 변환 블록 폭을 명시하는 변수 nTbW,
- 변환 블록 높이를 명시하는 변수 nTbH,
- 크로마 인접 샘플 p[x][y].

- predModeIntra가 INTRA_CCLM와 같으면, x = -1, y = 0..nTbH-1이고 x = 0..nTbW-1, y =-1이다.

- 그렇지 않고, predModeIntra가 INTRA_CCLM_L과 같으면, x = 1, y = 0..nTbH+-1이다.

- 그렇지 않고, predModeIntra가 INTRA_CCLM_T와 같으면, x = 0..nTbW 0+ nTbW -1, y =-1이다.

- predModeIntra가 INTRA_CCLM_T와 같으면, 블록에 대한 이용 가능한 상측-우측의 인접한 샘플 도출 프로세스의 수는 현재 크로마 위치(xCurr, yCurr)가 입력으로서 (xTbC, yTbC) 및 nTbH+ nTbW와 동일하게 설정되어 호출되며, 출력은 nSampTopRight에 할당되어, (xTbC+ nTbW, yTbC-1) 내지 (xTbC+ nTbW+ nTbH -1, yTbC-1)의 범위의 이용 가능한 수의 샘플을 얻는다. 그렇지 않으면, nSamplesTopRight은 0이다.

- predModeIntra가 INTRA_CCLM_L과 같으면, 블록에 대한 이용 가능한 좌측-아래의 인접한 샘플 도출 프로세스의 수는 현재 크로마 위치(xCurr, yCurr)가 입력으로서 (xTbC, yTbC) 및 nTbH+nTbW와 동일하게 설정되어 호출되며, 출력은 nSampLeftBelow에 할당된다. (xTbC-1, yTbC+ nTbH) 내지 (xTbC-1, yTbC+ nTbW+nTbH-1)의 범위의 이용 가능한 수의 샘플을 얻는다. 그렇지 않으면, nSampLeftBelow는 0이다.
MDLM 모드의 이진화 비디오 신호의 비트스트림에서 MDLM 모드를 인코딩하기 위해, MDLM 모드의 이진화가 수행되어 선택된 MDLM 모드가 비트스트림에 인코딩되고 디코더가 디코딩을 위해 선택된 모드를 결정할 수 있도록 해야 한다. 기존의 이진화 방법은 MDLM의 두 가지 크로마 모드, 즉, CCLM_L 및 CCLM_T를 포함하고 있지 않다. 여기서, 새로운 크로마 모드 코딩 방법이 제안된다.
표 3 및 표 4는 이러한 두 개의 크로마 모드의 이진화의 세부 사항을 제공한다. 표 3에서, 77은 CCLM 모드를 표시하고 intra_chroma_pred_mode 인덱스는 is 4이고; 78은 CCLM_L 모드를 표시하고 intra_chroma_pred_mode 인덱스는 5이고; 79는 CCLM_T 모드를 표시하고 intra_chroma_pred_mode 인덱스는 6이다. intra_chroma_pred_mode 인덱스가 7이면, 선택된 모드는 DM 모드이다. 나머지 인덱스 값 0, 1, 2, 3은 각각 평면 모드, 수직 모드, 수평 모드 및 DC 모드를 나타낸다.
Figure pct00061
Figure pct00062
표 4는 각각의 크로마 인트라-예측 모드에 대해 사용되는 비트 스트링 또는 신택스 요소의 예를 보여준다. 표 4에서 보는 바와 같이, DM 모드(인덱스 7)에 대한 신택스 요소는 0이고; CCLM 모드(인덱스 4)에 대한 신택스 요소는 10이고; CCLM_L 모드(인덱스 5)에 대한 신택스 요소는 1110이고; CCLM_T 모드(인덱스 6)에 대한 신택스 요소는 1111이고; 평면 모드(인덱스 0)에 대한 신택스 요소는 11000이고; 수직 모드(인덱스 1)에 대한 신택스 요소는 11001이고; 수평 모드(인덱스 2)에 대한 신택스 요소는 11010이며; DC 모드(인덱스 3)에 대한 신택스 요소는 11011이다. 표 5는 크로마 인트라-예측 모드 각각에 대해 사용되는 비트 스트링 또는 신택스 요소의 다른 예를 보여준다. 인코더에 의해 선택된 코딩 모드에 따라, 대응하는 신택스 요소는 인코딩된 비디오의 비트스트림에 포함된다.
Figure pct00063
도 1의 비디오 인코더(200)와 같은 비디오 인코더가 인트라 크로마 예측 모드에 기초하여 비디오 신호의 크로마 블록에 대해 인트라 예측을 수행할 때, 비디오 인코더는 인트라 크로마 예측 모드를 선택하고 선택된 인트라 크로마 예측 모드를 표시하는 신택스 요소를 비트스트림에 포함시킴으로써 비디오 신호에 대한 비트스트림을 생성한다. 비디오 인코더는 여러 세트의 모드로부터 인트라 크로마 예측 모드를 선택할 수 있다. 예를 들어, 모드는 도출 모드(DM) 또는 크로스 컴포넌트 선형 모델(CCLM) 예측 모드 또는 둘 모두를 포함하는 제 1 세트의 모드를 선택할 수 있다. 모드는 또한 CCLM_L 모드 또는 CCLM_T 모드 중 적어도 하나를 포함하는 제 2 세트의 모드를 포함할 수 있다. 모드는 수직 모드, 수평 모드, DC 모드 또는 평면 모드 중 적어도 하나를 포함할 수 있는 제 3 세트의 모드를 더 포함할 수 있다.일부 예에서, 인트라 크로마 예측 모드가 제 1 세트의 모드로부터 선택되는 경우의 인트라 크로마 예측 모드의 신택스 요소의 비트의 수는 인트라 크로마 예측 모드가 제 2 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수보다 적다. 또한, 인트라 크로마 예측 모드가 제 2 세트의 모드로부터 선택되는 경우의 인트라 크로마 예측 모드의 신택스 요소의 비트의 수는 인트라 크로마 예측 모드가 제 3 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수보다 적다. 일부 예에서, 다양한 인트라 크로마 예측 모드에 대한 신택스 요소는 표 4 또는 표 5에 보이는 예에 따라 선택된다.
디코더가 비디오 신호의 인코딩된 비트스트림을 수신하여 비디오를 디코딩할 때, 도 1의 비디오 디코더(30)와 같은 디코더는 비디오 신호의 비트스트림으로부터 신택스 요소를 파싱하고 파싱된 신택스 요소로부터 선택된 신택스 요소에 기초하여 크로마 블록에 대해 사용된 인트라 크로마 예측 모드를 결정한다. 결정된 인트라 크로마 예측 모드에 기초하여, 디코더는 비디오 신호의 현재 크로마 블록에 대한 인트라 예측을 수행한다.
도 20은 본 개시내용의 일부 양태에 따른 선형 모델을 사용하여 인트라 예측을 수행하기 위한 방법의 흐름도이다. 블록(2002)에서, 현재 크로마 블록(예컨대 크로마 블록(801))에 대응하는 루마 블록(예컨대 루마 블록(811))이 결정된다.
블록(2004)에서, 현재 크로마 블록의 L개의 이용 가능한 크로마 참조 샘플을 결정하는 것에 기초하여 루마 블록의 루마 참조 샘플이 획득된다. 루마 블록의 획득된 루마 참조 샘플은 다운샘플링된 루마 참조 샘플이다. 일부 예에서, 루마 블록의 획득된 루마 참조 샘플은 L개의 이용 가능한 크로마 참조 샘플에 기초하여(이를테면, L개의 이용 가능한 크로마 참조 샘플의 일부 또는 전부에 기초하여) 선택되는 다운샘플링된 인접한 루마 샘플에 의해 획득되는 다운샘플링된 루마 참조 샘플이다. 다시 말해, 루마 블록의 획득된 루마 참조 샘플은 이용 가능한 크로마 참조 샘플에 대응하는 인접한 루마 샘플을 다운샘플링함으로써 획득되는 다운샘플링된 루마 참조 샘플이다. 일부 예에서, 획득된 루마 참조 샘플은 L 개의 이용 가능한 크로마 참조 샘플에 대응한다. 추가 예에서, 획득된 루마 참조 샘플은 L 개의 이용 가능한 크로마 참조 샘플의 일부에 대응한다. 획득된 루마 참조 샘플(즉, 다운샘플링된 루마 참조 샘플)과 L 개의 이용 가능한 크로마 참조 샘플 간의 대응 관계는 "일대일 대응관계"로 제한되지 않을 수 있다는 것이 이해될 수 있고, 또한 획득된 루마 참조 샘플(즉, 다운샘플링된 루마 참조 샘플)과 L 개의 이용 가능한 크로마 참조 샘플 간의 대응 관계는 "M 대 N 대응 관계"일 수 있다는 것이 이해될 수 있다. 예를 들어, M=4, N=4, 또는 M=4, N>4 이다.
일부 예에서, 현재 크로마 블록의 크로마 참조 샘플은 현재 크로마 블록의 인접한 복원된 샘플을 포함한다. L개의 이용 가능한 크로마 참조 샘플은 인접한 복원된 샘플로부터 결정된다. 마찬가지로, 루마 블록의 인접한 샘플은 또한 루마 블록의 인접한 복원된 샘플이다. 루마 블록의 획득된 루마 참조 샘플은 L개의 이용 가능한 크로마 참조 샘플에 기초하여 선택되는 인접한 복원된 루마 샘플을 다운샘플링함으로써 획득된다. 이를테면 L=4이다.
일부 예에서, 크로마 참조 샘플이 현재 픽처, 슬라이스 또는 타일 외부에 있지 않으며 참조 샘플이 복원되었다면, 크로마 참조 샘플은 이용 가능하다. 일부 예에서, 크로마 참조 샘플이 현재 픽처, 슬라이스 또는 타일 외부에 있지 않고, 참조 샘플이 복원되었고, 인코딩 결정에 기초하여 참조 샘플이 누락되지 않으면, 크로마 참조 샘플은 이용 가능하다. 현재 크로마 블록의 이용 가능한 참조 샘플은 크로마 블록의 이용 가능한 복원된 인접한 샘플일 수 있다. 이용 가능한 크로마 참조 샘플에 대응하는 루마 참조 샘플이 획득된다.
일부 예에서, L개의 이용 가능한 크로마 참조 샘플은 이용 가능한 현재 크로마 블록의 L개의 상측의 인접한 크로마 샘플을 결정함으로써 결정되며, 여기서 1 <= L <= W2이고 L 및 W2는 양의 정수이다. W2는 상측 참조 샘플 범위를 표시하고, L개의 상측의 인접한 크로마 샘플은 이용 가능한 크로마 참조 샘플로서 사용된다. 일부 예에서, W2는 2*W 또는 W+H와 동일하다. 여기서, W는 현재 크로마 블록의 폭을 나타내고, H는 현재 크로마 블록의 높이를 나타낸다.
다른 예에서, L개의 이용 가능한 크로마 참조 샘플은 이용 가능한 현재 크로마 블록의 L개의 좌측의 인접한 크로마 샘플을 결정함으로써 결정된다. 여기서, 1 <= L <= H2 이고, L 및 H2는 양의 정수이다. H2는 좌측 참조 샘플 범위를 표시한다. L개의 좌측의 인접한 크로마 샘플은 이용 가능한 크로마 참조 샘플로서 사용된다. 일부 예에서, H2는 2*H 또는 W+H와 동일하다. W는 현재 크로마 블록의 폭을 나타내고, H는 현재 크로마 블록의 높이를 나타낸다.
추가 예에서, L개의 이용 가능한 크로마 참조 샘플은 이용 가능한 현재 크로마 블록의 L1개의 상측의 인접한 크로마 샘플 및 L2개의 좌측의 인접한 크로마 샘플을 결정함으로써 결정된다. 여기서, 1 <= L1 <= W2이고, 1 <= L2 <= H2이다. W2는 상측 참조 샘플 범위를 표시하고, H2는 좌측 참조 샘플 범위를 표시한다. L1, L2, W2 및 H2는 양의 정수이고, L1+L2=L 이다. 이러한 예에서, L1개의 상측의 인접한 크로마 샘플 및 L2개의 좌측의 인접 크로마 샘플은 이용 가능한 크로마 참조 샘플로서 사용된다.
일 예에서, 루마 참조 샘플은 루마 블록 위쪽에 있고 L개의 이용 가능한 크로마 참조 샘플에 기초하여 선택되는 인접한 샘플만을 다운샘플링함으로써 획득된다. 다른 예에서, 루마 참조 샘플은 루마 블록 좌측에 있고 L개의 이용 가능한 크로마 참조 샘플에 기초하여 선택되는 인접한 샘플만을 다운샘플링함으로써 획득된다.
위의 예에서, 루마 블록의 다운샘플링된 루마 블록은 현재 크로마 블록에 대응하는 루마 블록의 복원된 루마 블록을 다운샘플링함으로써 획득된다. 일부 경우에, 이를테면 루마 참조 샘플이 루마 블록 위쪽의 인접한 샘플만을 기초로 하여 획득될 때 그리고 현재 크로마 블록의 상측 행이 현재 코딩 트리 유닛(CTU)의 상측 행과 중첩될 때, 루마 블록의 복원된 버전의 인접한 복원된 루마 샘플의 하나의 행만이 루마 참조 샘플을 획득하는데 사용된다.
블록(2006)에서, 단계(2004)에서 획득되는 루마 참조 샘플 및 루마 참조 샘플에 대응하는 크로마 참조 샘플에 기초하여 크로스 컴포넌트 예측에 사용되는 선형 모델 계수가 계산된다. 일부 예에서, 루마 참조 샘플에 대응하는 크로마 참조 샘플은 루마 참조 샘플과 동일 위치의 크로마 참조 샘플이다.
블록(2008)에서, 계산된 선형 모델 계수 및 루마 블록(예컨대 루마 블록(811))을 다운샘플링함으로써 획득되는 다운샘플링된 루마 블록의 값에 기초하여 현재 크로마 블록의 예측이 생성된다.
도 21은 본 개시내용의 다른 양태에 따른 크로스 컴포넌트 선형 모델(CCLM)의 방법의 흐름도이다. 블록(2102)에서, 현재 크로마 블록(예컨대 크로마 블록(801))에 대응하는 루마 블록(예컨대 루마 블록(811))이 결정된다.
블록(2104)에서, 루마 블록의 인접한 샘플을 다운샘플링함으로써 루마 블록의 루마 참조 샘플이 획득된다. 일부 예에서, 루마 참조 샘플은 루마 블록 위쪽의 인접한 샘플에 기초하여 획득되는 루마 참조 샘플만을 포함한다. 다른 예에서, 루마 참조 샘플은 루마 블록 좌측의 인접한 샘플에 기초하여 획득되는 루마 참조 샘플만을 포함한다.
블록(2106)에서, 루마 참조 샘플에 기초하여 최대 루마 값 및 최소 루마 값이 결정된다.
블록(2108)에서, 최대 루마 값과 연관된 하나 이상의 루마 참조 샘플의 하나 이상의 위치에 적어도 부분적으로 기초하여 제 1 크로마 값이 획득된다. 최소 루마 값과 연관된 하나 이상의 루마 참조 샘플의 하나 이상의 위치에 적어도 부분적으로 기초하여 제 2 크로마 값이 획득된다.
블록(2110)에서, 제 1 크로마 값, 제 2 크로마 값, 최대 루마 값 및 최소 루마 값에 기초하여 선형 모델 계수가 계산된다.
블록(2112)에서, 선형 모델 계수 및 루마 블록의 다운샘플링된 루마 블록의 값에 기초하여 현재 크로마 블록에 대한 예측이 생성된다.
도 22는 선행 모델을 사용하여 인트라 예측을 수행하기 위한 장치(2200)의 예시적인 구조를 도시하는 블록도이다. 장치(2200)는 결정 유닛(2202) 및 인트라 예측 프로세싱 유닛(2204)을 포함할 수 있다. 예에서, 장치(2200)는 도 2의 인트라 예측 유닛(254)에 대응할 수 있다. 다른 예에서, 장치(2200)는 도 3의 인트라 예측 유닛(354)에 대응할 수 있다.
결정 유닛(2202)은 현재 크로마 블록(예컨대 크로마 블록(801))에 대응하는 루마 블록(예컨대 루마 블록(811))을 결정하도록 구성된다. 결정 유닛(2202)은 또한 현재 크로마 블록의 L개의 이용 가능한 크로마 참조 샘플을 결정하는 것에 기초하여 루마 블록의 루마 참조 샘플을 획득하도록 구성된다. 루마 블록의 획득된 루마 참조 샘플은 다운샘플링된 루마 참조 샘플이다.
일부 예에서, 현재 크로마 블록의 크로마 참조 샘플은 현재 크로마 블록의 인접한 복원된 샘플을 포함한다. L개의 이용 가능한 크로마 참조 샘플은 인접한 복원된 샘플로부터 결정된다. 마찬가지로, 루마 블록의 인접한 샘플은 또한 루마 블록의 인접한 복원된 샘플이다. 루마 블록의 획득된 루마 참조 샘플은 루마 블록의 인접한 복원된 샘플을 다운샘플링함으로써 획득된다. 일부 예에서, 루마 블록의 획득된 루마 참조 샘플은 L개의 이용 가능한 크로마 참조 샘플에 기초하여 선택되는 루마 블록의 인접한 복원된 샘플을 다운샘플링함으로써 획득되는 다운샘플링된 루마 참조 샘플이다. 일부 예에서, 루마 블록의 획득된 루마 참조 샘플은 L°의 이용 가능한 크로마 참조 샘플에 대응하는 인접한 복원된 샘플을 다운샘플링함으로써 획득되는 다운샘플링된 루마 참조 샘플이다.
일부 예에서, 크로마 참조 샘플이 현재 픽처, 슬라이스 또는 타일 외부에 있지 않고, 참조 샘플이 복원되었고, 인코딩 결정에 기초하여 참조 샘플이 누락되지 않으면, 크로마 참조 샘플은 이용 가능하다. 현재 크로마 블록의 이용 가능한 참조 샘플은 크로마 블록의 이용 가능한 복원된 인접 샘플일 수 있다. 이용 가능한 크로마 참조 샘플에 대응하는 루마 참조 샘플이 획득된다.
일부 예에서, L개의 이용 가능한 크로마 참조 샘플은 이용 가능한 현재 크로마 블록의 L개의 상측의 인접한 크로마 샘플을 결정함으로써 결정되며, 여기서 1 <= L <= W2이고 L 및 W2는 양의 정수이다. W2는 상측 참조 샘플 범위를 표시하고, L개의 상측의 인접한 크로마 샘플은 이용 가능한 크로마 참조 샘플로서 사용된다. 일부 예에서, W2는 2*W 또는 W+H와 동일하다. 여기서, W는 현재 크로마 블록의 폭을 나타내고, H는 현재 크로마 블록의 높이를 나타낸다.
다른 예에서, L개의 이용 가능한 크로마 참조 샘플은 이용 가능한 현재 크로마 블록의 L개의 좌측의 인접한 크로마 샘플을 결정함으로써 결정된다. 여기서, 1 <= L <= H2 이고, L 및 H2는 양의 정수이다. H2는 좌측 참조 샘플 범위를 표시한다. L개의 좌측의 인접한 크로마 샘플은 이용 가능한 크로마 참조 샘플로서 사용된다. 일부 예에서, H2는 2*H 또는 W+H와 동일하다. W는 현재 크로마 블록의 폭을 나타내고, H는 현재 크로마 블록의 높이를 나타낸다.
추가 예에서, L개의 이용 가능한 크로마 참조 샘플은 이용 가능한 현재 크로마 블록의 L1개의 상측의 인접한 크로마 샘플 및 L2개의 좌측 인접 크로마 샘플을 결정함으로써 결정된다. 여기서, 1 <= L1 <= W2이고, 1 <= L2 <= H2이다. W2는 상측 참조 샘플 범위를 표시하고, H2는 좌측 참조 샘플 범위를 표시한다. L1, L2, W2 및 H2는 양의 정수이고, L1+L2=L 이다. 이러한 예에서, L1개의 상측의 인접한 크로마 샘플 및 L2개의 좌측의 인접 크로마 샘플은 이용 가능한 크로마 참조 샘플로서 사용된다.
일 예에서, 루마 참조 샘플은 루마 블록 위쪽에 있고 L개의 이용 가능한 크로마 참조 샘플에 기초하여 선택되는 인접한 샘플만을 다운샘플링함으로써 획득된다. 다른 예에서, 루마 참조 샘플은 루마 블록 좌측에 있고 L개의 이용 가능한 크로마 참조 샘플에 기초하여 선택되는 인접한 샘플만을 다운샘플링함으로써 획득된다.
위의 예에서, 루마 블록의 다운샘플링된 루마 블록은 현재 크로마 블록에 대응하는 루마 블록의 복원된 루마 블록을 다운샘플링함으로써 획득된다. 일부 경우에, 이를테면 루마 참조 샘플이 루마 블록 위쪽의 인접한 샘플만을 기초로 하여 획득될 때 그리고 현재 크로마 블록의 상측 행이 현재 코딩 트리 유닛(CTU)의 상측 행과 중첩될 때, 루마 블록의 복원된 버전의 인접한 복원된 루마 샘플의 하나의 행만이 루마 참조 샘플을 획득하는데 사용된다.
인트라 예측 프로세싱 유닛(2204)은 루마 참조 샘플 및 루마 참조 샘플에 대응하는 크로마 참조 샘플에 기초하여 (α 및 β와 같은) 선형 모델 계수를 계산하도록 구성된다. 인트라 예측 프로세싱 유닛(2204)은 또한 선형 모델 계수 및 루마 블록의 다운샘플링된 루마 블록의 값에 기초하여 현재 크로마 블록에 대한 예측을 획득하도록 구성된다.
도 23은 본 개시내용의 일부 양태에 따른 비디오 신호에 대한 비트스트림에서 크로마 인트라-코딩 모드를 코딩하는 방법의 흐름도이다.
블록(2302)에서, 인트라 크로마 예측 모드에 기초하여 비디오 신호의 크로마 블록에 대한 인트라 예측이 수행된다. 인트라 크로마 예측 모드는 다수의 모드로부터 선택될 수 있다. 일부 예에서, 다수의 모드는 세 개의 세트: 도출 모드(DM) 또는 크로스 컴포넌트 선형 모델(CCLM) 예측 모드 중 적어도 하나를 포함하는 제 1 세트의 모드, CCLM_L 모드 또는 CCLM_T 모드 중 적어도 하나를 포함하는 제 2 세트의 모드, 또는 수직 모드, 수평 모드, DC 모드 또는 평면 모드를 포함하는 제 3 세트의 모드를 포함한다.
블록(2304)에서, 인트라 크로마 예측 모드를 표시하는 신택스 요소를 비트스트림에 포함시킴으로써 비디오 신호에 대한 비트스트림이 생성된다. 일부 예에서, 인트라 크로마 예측 모드가 제 1 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수는 인트라 크로마 예측 모드가 제 2 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수보다 적다. 인트라 크로마 예측 모드가 제 2 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수는 인트라 크로마 예측 모드가 제 3 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수보다 적다.
일 예에서, DM 모드에 대한 신택스 요소는 0이다. CCLM 모드에 대한 신택스 요소는 10이다. CCLM_L 모드에 대한 신택스 요소는 1110이다. CCLM_T 모드에 대한 신택스 요소는 1111이다. 평면 모드에 대한 신택스 요소는 11000이다. 수직 모드에 대한 신택스 요소는 11001이다. 수평 모드에 대한 신택스 요소는 11010이다. DC 모드에 대한 신택스 요소는 11011이다.
다른 예에서, DM 모드에 대한 신택스 요소는 00이다. CCLM 모드에 대한 신택스 요소는 10이다. CCLM_L 모드에 대한 신택스 요소는 110이다. CCLM_T 모드에 대한 신택스 요소는 111이다. 평면 모드에 대한 신택스 요소는 0100이다. 수직 모드에 대한 신택스 요소는 0101이다. 수평 모드에 대한 신택스 요소는 0110이다. DC 모드에 대한 신택스 요소는 0111이다.
도 24는 본 개시내용의 일부 양태에 따른 비디오 신호에 대한 비트스트림에서 크로마 인트라-코딩 모드를 디코딩하는 방법의 흐름도이다.
블록(2402)에서, 비디오 신호의 비트스트림으로부터 다수의 신택스 요소가 파싱된다. 블록(2404)에서, 인트라 크로마 예측 모드를 표시하는 다수의 신택스 요소로부터의 신택스 요소에 기초하여 인트라 크로마 예측 모드가 결정된다. 일부 예에서, 다수의 모드로부터 인트라 크로마 예측 모드가 결정된다. 예를 들어, 다수의 모드는 세 개의 세트: 도출 모드(DM) 또는 크로스 컴포넌트 선형 모델(CCLM) 예측 모드 중 적어도 하나를 포함하는 제 1 세트의 모드, CCLM_L 모드 또는 CCLM_T 모드 중 적어도 하나를 포함하는 제 2 세트의 모드, 또는 수직 모드, 수평 모드, DC 모드 또는 평면 모드를 포함하는 제 3 세트의 모드를 포함한다. 이러한 인트라 크로마 예측 모드의 세트 중에서, 인트라 크로마 예측 모드가 제 1 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수는 인트라 크로마 예측 모드가 제 2 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수보다 적다. 인트라 크로마 예측 모드가 제 2 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수는 인트라 크로마 예측 모드가 제 3 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수보다 적다.
블록(2406)에서, 인트라 크로마 예측 모드에 기초하여 비디오 신호의 크로마 블록에 대한 인트라 예측이 수행된다.
도 25는 비디오 비트스트림을 생성하기 위한 장치(2500)의 예시적인 구조를 도시하는 블록도이다. 장치(2500)는 인트라 예측 프로세싱 유닛(2502) 및 이진화 유닛(2504)을 포함할 수 있다. 예에서, 인트라 예측 프로세싱 유닛(2502)은 도 2의 인트라 예측 유닛(254)에 대응할 수 있다. 예에서, 이진화 유닛(2504)은 도 2의 엔트로피 인코딩 유닛(270)에 대응할 수 있다.
인트라 예측 프로세싱 유닛(2502)은 인트라 크로마 예측 모드에 기초하여 비디오 신호의 크로마 블록에 대한 인트라 예측을 수행하도록 구성된다. 인트라 크로마 예측 모드는 제 1 세트의 모드, 제 2 세트의 모드, 또는 제3 세트의 모드로부터 선택된다. 제 1 세트의 모드는 도출 모드(DM) 또는 크로스 컴포넌트 선형 모델(CCLM) 예측 모드 중 적어도 하나를 포함한다. 제 2 세트의 모드는 CCLM_L 모드 또는 CCLM_T 모드 중 적어도 하나를 포함한다. 제 3 세트의 모드는 수직 모드, 수평 모드, DC 모드 또는 평면 모드 중 적어도 하나를 포함한다.
이진화 유닛(2504)은 인트라 크로마 예측 모드를 표시하는 신택스 요소를 포함시킴으로써 비디오 신호에 대한 비트스트림을 생성하도록 구성된다. 인트라 크로마 예측 모드가 제 1 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수는 인트라 크로마 예측 모드가 제 2 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수보다 적고, 인트라 크로마 예측 모드가 제 2 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수는 인트라 크로마 예측 모드가 제3 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수보다 적다.
일 예에서, DM 모드에 대한 신택스 요소는 0이다. CCLM 모드에 대한 신택스 요소는 10이다. CCLM_L 모드에 대한 신택스 요소는 1110이다. CCLM_T 모드에 대한 신택스 요소는 1111이다. 평면 모드에 대한 신택스 요소는 11000이다. 수직 모드에 대한 신택스 요소는 11001이다. 수평 모드에 대한 신택스 요소는 11010이다. DC 모드에 대한 신택스 요소는 11011이다.
다른 예에서, DM 모드에 대한 신택스 요소는 00이다. CCLM 모드에 대한 신택스 요소는 10이다. CCLM_L 모드에 대한 신택스 요소는 110이다. CCLM_T 모드에 대한 신택스 요소는 111이다. 평면 모드에 대한 신택스 요소는 0100이다. 수직 모드에 대한 신택스 요소는 0101이다. 수평 모드에 대한 신택스 요소는 0110이다. DC 모드에 대한 신택스 요소는 0111이다.
도 26은 비디오 비트스트림을 디코딩하기 위한 장치(2600)의 예시적인 구조를 도시하는 블록도이다. 장치는 파싱 유닛(2602), 결정 유닛(2604) 및 인트라 예측 프로세싱 유닛(2606)을 포함할 수 있다. 예에서, 파싱 유닛(2602)은 도 3의 엔트로피 인코딩 유닛(304)에 대응할 수 있다. 예에서, 결정 유닛(2604) 및 인트라 예측 프로세싱 유닛(2606)은 도 3의 인트라 예측 유닛(354)에 대응할 수 있다.
파싱 유닛(2602)은 비디오 신호의 비트스트림으로부터 신택스 요소를 파싱하도록 구성된다. 결정 유닛(2604)은 복수의 신택스 요소로부터의 신택스 요소에 기초하여 인트라 크로마 예측 모드를 결정하도록 구성된다. 인트라 크로마 예측 모드는 제 1 세트의 모드, 제 2 세트의 모드, 또는 제3 세트의 모드 중 하나로부터 결정된다. 제 1 세트의 모드는 도출 모드(DM) 또는 크로스 컴포넌트 선형 모델(CCLM) 예측 모드 중 적어도 하나를 포함한다. 제 2 세트의 모드는 CCLM_L 모드 또는 CCLM_T 모드 중 적어도 하나를 포함한다. 제 3 세트의 모드는 수직 모드, 수평 모드, DC 모드 또는 평면 모드 중 적어도 하나를 포함한다.
인트라 크로마 예측 모드가 제 1 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수는 인트라 크로마 예측 모드가 제 2 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수보다 적고, 인트라 크로마 예측 모드가 제 2 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수는 인트라 크로마 예측 모드가 제3 세트의 모드로부터 선택되는 경우의 신택스 요소의 비트의 수보다 적다.
일 예에서, DM 모드에 대한 신택스 요소는 0이다. CCLM 모드에 대한 신택스 요소는 10이다. CCLM_L 모드에 대한 신택스 요소는 1110이다. CCLM_T 모드에 대한 신택스 요소는 1111이다. 평면 모드에 대한 신택스 요소는 11000이다. 수직 모드에 대한 신택스 요소는 11001이다. 수평 모드에 대한 신택스 요소는 11010이다. DC 모드에 대한 신택스 요소는 11011이다.
다른 예에서, DM 모드에 대한 신택스 요소는 00이다. CCLM 모드에 대한 신택스 요소는 10이다. CCLM_L 모드에 대한 신택스 요소는 110이다. CCLM_T 모드에 대한 신택스 요소는 111이다. 평면 모드에 대한 신택스 요소는 0100이다. 수직 모드에 대한 신택스 요소는 0101이다. 수평 모드에 대한 신택스 요소는 0110이다. DC 모드에 대한 신택스 요소는 0111이다.
인트라 예측 프로세싱 유닛(2606)은 인트라 크로마 예측 모드에 기초하여 비디오 신호의 현재 크로마 블록에 대한 인트라 예측을 수행하도록 구성된다.
다음의 참조 문헌은 본 개시내용을 보다 잘 이해하기 위한 참조로 포함된다: MDLM에 대한 설명인 JCTVC-H0544, CCLM 또는 LM에 대한 설명인 섹션 2.2.4의 JVET-G1001, 그리고 최대 및 최소 값을 이용하여 모델 계수를 도출하기 위한 설명인 JVET-K0204.
다음은 위에서 언급된 실시예 및 이를 이용한 시스템에 도시된 바와 같은 인코딩 방법 및 디코딩 방법의 적용에 관한 설명이다.
도 27은 콘텐츠 배포 서비스를 실현하기 위한 콘텐츠 공급 시스템(3100)을 도시하는 블록도이다. 이러한 콘텐츠 공급 시스템(3100)은 캡처 디바이스(3102), 단말 디바이스(3106)를 포함하고, 선택적으로는 디스플레이(3126)를 포함한다. 캡처 디바이스(3102)는 통신 링크(3104)를 통해 단말 디바이스(3106)와 통신한다. 통신 링크는 위에서 설명한 통신 채널(13)을 포함할 수 있다. 통신 링크(3104)는 이것으로 제한되는 것은 아니지만 WIFI, 이더넷, 케이블, 무선(3G/4G/5G), USB, 이들의 임의의 종류의 조합 등을 포함한다.
캡처 디바이스(3102)는 데이터를 생성하고, 위의 실시예에 도시된 바와 같은 인코딩 방법에 의해 데이터를 인코딩할 수 있다. 대안적으로, 캡처 디바이스(3102)는 데이터를 스트리밍 서버(도면에 도시되지 않음)에 배포할 수 있고, 서버는 데이터를 인코딩하고 인코딩된 데이터를 단말 디바이스(3106)로 전송한다. 캡처 디바이스(3102)는 이것으로 제한되는 것은 아니지만, 스마트 폰 또는 패드, 컴퓨터 또는 랩톱, 비디오 회의 시스템, PDA, 차량 탑재 디바이스, 또는 이들 중 임의의 것의 조합 등을 포함한다. 예를 들어, 캡처 디바이스(3102)는 위에서 설명한 바와 같은 소스 디바이스(12)를 포함할 수 있다. 데이터가 비디오를 포함할 때, 캡처 디바이스(3102)에 포함된 비디오 인코더(20)는 실제로 비디오 인코딩 처리를 수행할 수 있다. 데이터가 오디오(즉, 음성)를 포함할 때, 캡처 디바이스(3102)에 포함된 오디오 인코더는 실제로 오디오 인코딩 처리를 수행할 수 있다. 일부 실제 시나리오의 경우, 캡처 디바이스(3102)는 인코딩된 비디오 및 오디오 데이터를 함께 다중화하여 배포한다. 다른 실제 시나리오의 경우, 예를 들어, 비디오 회의 시스템에서, 인코딩된 오디오 데이터와 인코딩된 비디오 데이터는 다중화되지 않는다. 캡처 디바이스(3102)는 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터를 별개로 단말 디바이스(3106)에 배포한다.
콘텐츠 공급 시스템(3100)에서, 단말 디바이스(310)는 인코딩된 데이터를 수신하여 재생한다. 단말 디바이스(3106)는 데이터 수신 및 복원 능력이 있는 디바이스, 이를테면, 스마트폰 또는 패드(3108), 컴퓨터 또는 랩톱(3110), 네트워크 비디오 레코더(network video recorder)(NVR)/디지털 비디오 레코더(digital video recorder)(DVR)(3112), TV(3114), 셋톱 박스(set top box)(STB)(3116), 비디오 회의 시스템(3118), 비디오 감시 시스템(3120), 개인용 정보 단말기(personal digital assistant)(PDA)(3122), 차량 탑재 디바이스(3124), 또는 위에서 언급된 인코딩된 데이터를 디코딩할 수 있는 이들 중 임의의 것의 조합일 수 있다. 예를 들어, 단말 디바이스(3106)는 위에서 설명한 바와 같은 목적지 디바이스(14)를 포함할 수 있다. 인코딩된 데이터가 비디오를 포함할 때, 단말 디바이스에 포함된 비디오 디코더(30)는 비디오 디코딩을 수행하도록 우선순위가 지정된다. 인코딩된 데이터가 오디오를 포함할 때, 단말 디바이스에 포함된 오디오 디코더는 오디오 디코딩 처리를 수행하도록 우선순위가 지정된다.
자체 디스플레이를 구비한 단말 디바이스, 예를 들어, 스마트 폰 또는 패드(3108), 컴퓨터 또는 랩톱(3110), 네트워크 비디오 레코더(NVR)/디지털 비디오 레코더(DVR)(3112), TV(3114), 개인 휴대 정보 단말(PDA)(3122), 또는 차량 탑재 디바이스(3124)의 경우, 단말 디바이스는 디코딩된 데이터를 자체 디스플레이에 공급할 수 있다. 디스플레이가 구비되지 않은 단말 디바이스, 예를 들어, STB(3116), 비디오 회의 시스템(3118) 또는 비디오 감시 시스템(3120)의 경우, 디코딩된 데이터를 수신하고 디스플레이하도록 외부 디스플레이(3126)가 접속된다.
이러한 시스템의 각각의 디바이스가 인코딩 또는 디코딩을 수행할 때, 위에서 언급된 실시예에 도시된 바와 같은 픽처 인코딩 디바이스 또는 픽처 디코딩 디바이스가 사용될 수 있다.
도 28은 단말 디바이스(3106)의 예의 구조를 도시하는 다이어그램이다. 단말 디바이스(3106)가 캡처 디바이스(3102)로부터 스트림을 수신한 후에, 프로토콜 프로세싱 유닛(3202)은 스트림의 전송 프로토콜을 분석한다. 프로토콜은 이것으로 제한되는 것은 아니지만, 실시간 스트리밍 프로토콜(Real Time Streaming Protocol)(RTSP), 하이퍼 텍스트 전송 프로토콜(Hyper Text Transfer Protocol)(HTTP), HTTP 라이브 스트리밍 프로토콜(HTTP Live streaming protocol)(HLS), MPEG-DASH, 실시간 전송 프로토콜(Real-time Transport protocol)(RTP), 실시간 메시징 프로토콜(Real Time Messaging Protocol)(RTMP), 또는 이들의 임의의 종류의 조합 등을 포함한다.
프로토콜 프로세싱 유닛(3202)이 스트림을 처리한 후에, 스트림 파일이 생성된다. 파일은 디멀티플렉싱 유닛(3204)으로 출력된다. 디멀티플렉싱 유닛(3204)은 다중화된 데이터를 인코딩된 오디오 데이터와 인코딩된 비디오 데이터로 분리할 수 있다. 위에서 설명한 바와 같이, 일부 시나리오의 경우, 예를 들면, 비디오 회의 시스템에서, 인코딩된 오디오 데이터와 인코딩된 비디오 데이터는 다중화되지 않는다. 이러한 상황에서, 인코딩된 데이터는 디멀티플렉싱 유닛(3204)을 통하지 않고 비디오 디코더(3206) 및 오디오 디코더(3208)로 전송된다.
역다중화 처리를 통해, 비디오 엘리멘트리 스트림(elementary stream)(ES), 오디오 ES, 및 선택적으로 자막이 생성된다. 위에서 언급한 실시예에 설명된 바와 같은 비디오 디코더(30)를 포함하는 비디오 디코더(3206)는 위에서 언급한 실시예에 도시된 바와 같은 디코딩 방법에 의해 비디오 ES를 디코딩하여 비디오 프레임을 생성하고, 이 데이터를 동기 유닛(3212)에 공급한다. 오디오 디코더(3208)는 오디오 ES를 디코딩하여 오디오 프레임을 생성하고, 이 데이터를 동기 유닛(3212)에 공급한다. 대안적으로, 비디오 프레임은 비디오 프레임이 동기 유닛(3212)에 공급되기 전에 버퍼(도 28에 도시되지 않음)에 저장될 수 있다. 마찬가지로, 오디오 프레임은 오디오 프레임이 동기 유닛(3212)에 공급되기 전에 버퍼(도 28에 도시되지 않음)에 저장될 수 있다.
동기 유닛(3212)은 비디오 프레임과 오디오 프레임을 동기화하고, 비디오/오디오를 비디오/오디오 디스플레이(3214)에 공급한다. 예를 들어, 동기 유닛(3212)은 비디오 및 오디오 정보의 프리젠테이션을 동기화한다. 정보는 코딩된 오디오 및 시각 데이터의 표현에 관한 타임 스탬프 및 데이터 스트림 자체의 전달에 관한 타임 스탬프를 사용하여 신택스에 코딩될 수 있다.
자막이 스트림에 포함되면, 자막 디코더(3210)는 자막을 디코딩하고, 이것을 비디오 프레임 및 오디오 프레임과 동기화하고, 비디오/오디오/자막을 비디오/오디오/자막 디스플레이(3216)에 공급한다.
본 발명은 위에서 언급한 시스템으로 제한되지 않으며, 위에서 언급한 실시예의 픽처 인코딩 디바이스 또는 픽처 디코딩 디바이스는 다른 시스템, 예를 들어, 차량 시스템에 통합될 수 있다.
예로서, 제한 없이, 이러한 컴퓨터 판독 가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 디바이스, 플래시 메모리, 또는 원하는 프로그램 코드를 명령어 또는 데이터 구조의 형태로 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결은 적절히 컴퓨터 판독 가능 매체라고 지칭된다. 예를 들어, 명령어가 동축 케이블, 광섬유 케이블, 트위스트 페어, 디지털 가입자 회선(DSL) 또는 적외선, 라디오 및 마이크로웨이브와 무선 기술을 사용하여 웹사이트, 서버 또는 다른 원격 소스로부터 전송된다면, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL 또는 적외선, 라디오 및 마이크로웨이브와 같은 무선 기술은 매체의 정의에 포함된다. 그러나, 컴퓨터 판독 가능 저장 매체 및 데이터 저장 매체는 연결, 반송파, 신호 또는 다른 일시적 매체를 포함하지 않는 대신, 비일시적인 타입의 저장 매체를 의미한다는 것을 이해해야 한다. 본 명세서에서 사용된 바와 같은 디스크(disk) 및 디스크(disc)는 콤팩트 디스크(compact disc)(CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크(digital versatile disc)(DVD) 및 블루 레이(Blu-ray) 디스크를 포함하고, 여기서 디스크(disk)는 보통 데이터를 자기적으로 재생하는 반면에, 디스크(disc)는 데이터를 레이저를 사용하여 광학적으로 재생한다. 위의 것의 조합이 또한 컴퓨터 판독 가능 매체의 범위에 포함되어야 한다.
명령어는 하나 이상의 디지털 신호 프로세서(DSP), 범용 마이크로프로세서, 주문형 집적회로(ASIC), 필드 프로그램 가능 게이트 어레이(FPGA) 또는 다른 동등한 집적 또는 이산 로직 회로와 같은 하나 이상의 프로세서에 의해 실행될 수 있다. 따라서, "프로세서"라는 용어는 전술한 구조 또는 본 명세서에 설명된 기술의 구현에 적합한 임의의 다른 구조 중 어느 것을 지칭할 수 있다. 또한, 일부 양태에서, 본 명세서에 설명된 기능성은 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈 내에 제공될 수 있거나, 또는 결합된 코덱에 통합될 수 있다. 또한, 기술은 하나 이상의 회로 또는 로직 요소에서 완전히 구현될 수 있다.
본 개시내용의 기술은 무선 핸드셋, 집적 회로(integrated circuit)(IC) 또는 한 세트의 IC(예를 들어, 칩 세트)를 비롯한 다양한 디바이스 또는 장치에서 구현될 수 있다. 다양한 컴포넌트, 모듈 또는 유닛이 개시된 기술을 수행하도록 구성된 디바이스의 기능적 양태를 강조하기 위해 본 개시내용에서 설명되지만, 반드시 상이한 하드웨어 유닛에 의해 실현될 필요는 없다. 오히려, 위에서 설명한 바와 같이, 다양한 유닛이 코덱 하드웨어 유닛으로 결합되거나 또는 적합한 소프트웨어 및/또는 펌웨어와 함께, 위에서 설명된 바와 같은 하나 이상의 프로세서를 포함하는 상호작용 하드웨어 유닛의 집합에 의해 제공될 수 있다.
본 개시내용에서 여러 실시예가 제공되었지만, 개시된 시스템 및 방법은 본 개시내용의 사상 또는 범위를 벗어나지 않고 많은 다른 특정 형태로 구현될 수 있다는 것을 이해해야 한다. 본 예는 제한적인 것이 아니라 예시적인 것으로 간주되어야 하며, 의도는 본 명세서에서 주어진 세부 사항으로 제한되지 않는다. 예를 들어, 다양한 요소 또는 컴포넌트가 조합되거나 다른 시스템에 통합될 수 있거나, 또는 특정한 특징이 누락되거나 수행되지 않을 수 있다.
또한, 다양한 실시예에서 개별적으로 또는 별도로 설명되고 예시된 기술, 시스템, 서브시스템 및 방법들은 본 개시내용의 범위를 벗어나지 않고 다른 시스템, 모듈, 기술 또는 방법과 조합되거나 통합될 수 있다. 결합되거나 또는 직접 결합되거나 또는 서로 통신하는 것으로 도시되거나 논의되는 다른 항목은 간접적으로 결합되거나 또는 전기적으로든, 기계적으로든 또는 다른 방식으로든 일부 인터페이스, 디바이스 또는 중간 컴포넌트를 통해 통신할 수 있다. 변경, 대체 및 변동의 다른 예가 관련 기술분야의 통상의 기술자에 의해 확인될 수 있고 본 명세서에 개시된 사상 및 범위를 벗어나지 않고 이루어질 수 있다.

Claims (46)

  1. 선형 모델을 사용하여 인트라 예측을 수행하기 위한 방법으로서,
    현재 크로마 블록에 대응하는 루마 블록을 결정하는 단계와,
    상기 현재 크로마 블록의 L개의 이용 가능한 크로마 참조 샘플을 결정하는 것에 기초하여 상기 루마 블록의 루마 참조 샘플을 획득하는 - 상기 루마 블록의 상기 획득된 루마 참조 샘플은 다운샘플링된 루마 참조 샘플임 - 단계와,
    상기 루마 참조 샘플 및 상기 루마 참조 샘플에 대응하는 크로마 참조 샘플에 기초하여 선형 모델 계수를 계산하는 단계와,
    상기 선형 모델 계수 및 상기 루마 블록의 다운샘플링된 루마 블록의 값에 기초하여 상기 현재 크로마 블록에 대한 예측을 획득하는 단계를 포함하는,
    방법.
  2. 제 1 항에 있어서,
    L개의 이용 가능한 크로마 참조 샘플을 결정하는 상기 단계는,
    상기 현재 크로마 블록의 L개의 상측의 인접한 크로마 샘플이 이용 가능하다는 것을 결정하는 단계를 포함하고, 1 <= L <= W2 이고, W2는 상측 참조 샘플 범위를 표시하고, L 및 W2는 양의 정수이고, 상기 L개의 상측의 인접한 크로마 샘플은 상기 이용 가능한 크로마 참조 샘플로서 사용되는,
    방법.
  3. 제 2항에 있어서,
    W2는 2*W 또는 W+H와 동일하고, W는 상기 현재 크로마 블록의 폭을 나타내고, H는 상기 현재 크로마 블록의 높이를 나타내는,
    방법.
  4. 제 1항에 있어서,
    L개의 이용 가능한 크로마 참조 샘플을 결정하는 상기 단계는,
    상기 현재 크로마 블록의 L개의 좌측의 인접한 크로마 샘플이 이용 가능하다는 것을 결정하는 단계를 포함하고, 1 <= L <= H2 이고, H2는 좌측 참조 샘플 범위를 표시하고, L 및 H2는 양의 정수이고, 상기 L개의 좌측의 인접한 크로마 샘플은 상기 이용 가능한 크로마 참조 샘플로서 사용되는,
    방법.
  5. 제4항에 있어서,
    H2는 2*H 또는 W+H와 동일하고, W는 상기 현재 크로마 블록의 폭을 나타내고, H는 상기 현재 크로마 블록의 높이를 나타내는,
    방법.
  6. 제 1항에 있어서,
    상기 L개의 이용 가능한 크로마 참조 샘플을 결정하는 단계는,
    상기 현재 크로마 블록의 L1개의 상측의 인접한 크로마 샘플 및 L2개의 좌측의 인접한 크로마 샘플이 이용 가능하다는 것을 결정하는 단계를 포함하고, 1<= L1 <= W2 이고, 1 <= L2 <= H2 이고, W2는 상측 참조 샘플 범위를 표시하고, H2는 좌측 참조 샘플 범위를 표시하고, L1, L2, W2 및 H2는 양의 정수이고 L1+L2=L 이고, L1개의 상측의 인접한 크로마 샘플 및 L2개의 좌측의 인접한 크로마 샘플은 상기 이용 가능한 크로마 참조 샘플로서 사용되는,
    방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 루마 참조 샘플은,
    상기 루마 블록 위쪽에 있고 상기 L개의 이용 가능한 크로마 참조 샘플에 기초하여 선택되는 상기 인접한 샘플만을 다운샘플링함으로써 획득되거나, 또는
    상기 루마 블록 좌측에 있고 상기 L개의 이용 가능한 크로마 참조 샘플에 기초하여 선택되는 상기 인접한 샘플만을 다운샘플링함으로써 획득되는,
    방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 루마 블록의 상기 다운샘플링된 루마 블록은 상기 현재 크로마 블록에 대응하는 상기 루마 블록의 복원된 루마 블록을 다운샘플링함으로써 획득되는,
    방법.
  9. 제8항에 있어서,
    상기 루마 참조 샘플이 상기 루마 블록의 위쪽에 있는 인접한 샘플에만 기초하여 획득될 때 및 상기 현재 크로마 블록의 상측의 행이 현재 코딩 트리 유닛(coding tree unit)(CTU)의 상측의 행과 겹칠 때 상기 루마 블록의 상기 복원된 버전의 인접한 복원된 루마 샘플의 하나의 행만이 상기 루마 참조 샘플을 획득하는데 사용되는,
    방법.
  10. 제 1 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 루마 참조 샘플 및 상기 루마 참조 샘플에 대응하는 상기 크로마 참조 샘플에 기초하여 선형 모델 계수를 계산하는 단계는,
    상기 루마 참조 샘플에 기초하여 최대 루마 값 및 최소 루마 값을 결정하는 단계와,
    상기 최대 루마 값과 연관된 루마 참조 샘플의 위치에 적어도 부분적으로 기초하여 제 1 크로마 값을 획득하는 단계와,
    상기 최소 루마 값과 연관된 루마 참조 샘플의 위치에 적어도 부분적으로 기초하여 제 2 크로마 값을 획득하는 단계와,
    상기 제 1 크로마 값, 상기 제 2 크로마 값, 상기 최대 루마 값 및 상기 최소 루마 값에 기초하여 선형 모델 계수를 계산하는 단계를 포함하는,
    방법.
  11. 제 10항에 있어서,
    상기 최대 루마 값과 연관된 루마 참조 샘플의 위치에 적어도 부분적으로 기초하여 제 1 크로마 값을 획득하는 단계는 상기 최대 루마 값과 연관된 하나 이상의 루마 참조 샘플의 하나 이상의 위치에 적어도 부분적으로 기초하여 제 1 크로마 값을 획득하는 단계를 포함하고,
    상기 최소 루마 값과 연관된 루마 참조 샘플의 위치에 적어도 부분적으로 기초하여 제 2 크로마 값을 획득하는 단계는 상기 최소 루마 값과 연관된 하나 이상의 루마 참조 샘플의 하나 이상의 위치에 적어도 부분적으로 기초하여 제 2 크로마 값을 획득하는 단계를 포함하는,
    방법.
  12. 선형 모델을 사용하여 인트라 예측을 수행하기 위한 방법으로서,
    현재 크로마 블록에 대응하는 루마 블록을 결정하는 단계와,
    상기 현재 크로마 블록의 L개의 이용 가능한 크로마 참조 샘플을 결정하는 것에 기초하여 상기 루마 블록의 루마 참조 샘플을 획득하는 - 상기 루마 블록의 상기 획득된 루마 참조 샘플은 상기 L개의 이용 가능한 크로마 참조 샘플에 대응하는 상기 루마 블록의 인접한 샘플을 다운샘플링함으로써 획득되는 다운샘플링된 루마 참조 샘플임 - 단계와,
    상기 루마 참조 샘플 및 상기 루마 참조 샘플에 대응하는 크로마 참조 샘플에 기초하여 선형 모델 계수를 계산하는 단계와,
    상기 선형 모델 계수 및 상기 루마 블록의 다운샘플링된 루마 블록의 값에 기초하여 상기 현재 크로마 블록에 대한 예측을 획득하는 단계를 포함하는,
    방법.
  13. 비디오 데이터를 인코딩하기 위한 디바이스로서,
    비디오 데이터 메모리와,
    비디오 인코더를 포함하고, 상기 비디오 인코더는,
    현재 크로마 블록에 대응하는 루마 블록을 결정하고,
    상기 현재 크로마 블록의 L개의 이용 가능한 크로마 참조 샘플을 결정함으로써 상기 루마 블록의 루마 참조 샘플을 획득 - 상기 루마 블록의 상기 획득된 루마 참조 샘플은 상기 L개의 이용 가능한 크로마 참조 샘플에 대응하는 상기 루마 블록의 인접한 샘플을 다운샘플링함으로써 획득되는 다운샘플링된 루마 참조 샘플임 - 하고,
    상기 루마 참조 샘플 및 상기 루마 참조 샘플에 대응하는 크로마 참조 샘플에 기초하여 선형 모델에 대한 선형 모델 계수를 계산하고,
    상기 선형 모델 계수 및 상기 루마 블록의 다운샘플링된 버전의 값에 기초하여 상기 현재 크로마 블록에 대한 예측을 획득하도록 구성되는
    디바이스.
  14. 비디오 데이터를 디코딩하기 위한 디바이스로서,
    비디오 데이터 메모리와,
    비디오 디코더를 포함하고, 상기 비디오 디코더는,
    현재 크로마 블록에 대응하는 루마 블록을 결정하고,
    상기 현재 크로마 블록의 L개의 이용 가능한 크로마 참조 샘플을 결정하는 것에 기초하여 상기 루마 블록의 루마 참조 샘플을 획득 - 상기 루마 블록의 상기 획득된 루마 참조 샘플은 다운샘플링된 루마 참조 샘플임 - 하고,
    상기 루마 참조 샘플 및 상기 루마 참조 샘플에 대응하는 크로마 참조 샘플에 기초하여 선형 모델 계수를 계산하고,
    상기 선형 모델 계수 및 상기 루마 블록의 다운샘플링된 루마 블록의 값에 기초하여 상기 현재 크로마 블록에 대한 예측을 획득하도록 구성되는,
    디바이스.
  15. 제 13항 또는 제 14항에 있어서,
    L개의 이용 가능한 크로마 참조 샘플을 결정하는 것은,
    상기 현재 크로마 블록의 L개의 상측의 인접한 크로마 샘플이 이용 가능하다는 것을 결정하는 것을 포함하고, 1 <= L <= W2 이고, W2는 상측의 참조 샘플 범위를 표시하고, L 및 W2는 양의 정수이고, 상기 L개의 상측의 인접한 크로마 샘플은 상기 이용 가능한 크로마 참조 샘플로서 사용되는,
    디바이스.
  16. 제 15항에 있어서,
    W2는 2*W 또는 W+H와 동일하고, W는 현재 크로마 블록의 폭을 나타내고, H는 현재 크로마 블록의 높이를 나타내는,
    디바이스.
  17. 제 13항 또는 제 14항에 있어서,
    L개의 이용 가능한 크로마 참조 샘플을 결정하는 것은,
    상기 현재 크로마 블록의 L개의 좌측의 인접한 크로마 샘플이 이용 가능하다는 것을 결정하는 것을 포함하고, 1 <= L <= H2 이고, H2는 좌측 참조 샘플 범위를 표시하고, L 및 H2는 양의 정수이고, 상기 L개의 좌측의 인접한 크로마 샘플은 상기 이용 가능한 크로마 참조 샘플로서 사용되는,
    디바이스.
  18. 제 17항에 있어서,
    H2는 2*H 또는 W+H와 동일하고, W는 현재 크로마 블록의 폭을 나타내고, H는 현재 크로마 블록의 높이를 나타내는,
    디바이스.
  19. 제 13항 또는 제 14항에 있어서,
    L개의 이용 가능한 크로마 참조 샘플을 결정하는 것은,
    상기 현재 크로마 블록의 L1개의 상측의 인접한 크로마 샘플 및 L2개의 좌측의 인접한 크로마 샘플이 이용 가능하다는 것을 결정하는 것을 포함하고, 1<= L1<= W2 이고, 1 <= L2 <= H2 이고, W2는 상측 참조 샘플 범위를 표시하고, H2는 좌측 참조 샘플 범위를 표시하고, L1, L2, W2 및 H2는 양의 정수이고 L1+L2=L 이고, L1개의 상측의 인접한 크로마 샘플 및 L2개의 좌측의 인접한 크로마 샘플은 상기 이용 가능한 크로마 참조 샘플로서 사용되는,
    디바이스.
  20. 제 13 항 내지 제 19 항 중 어느 한 항에 있어서,
    상기 루마 참조 샘플은
    상기 루마 블록 위쪽에 있고 상기 L개의 이용 가능한 크로마 참조 샘플에 기초하여 선택되는 상기 인접한 샘플만을 다운샘플링함으로써 획득되거나, 또는
    상기 루마 블록 좌측에 있고 상기 L개의 이용 가능한 크로마 참조 샘플에 기초하여 선택되는 상기 인접한 샘플만을 다운샘플링함으로써 획득되는,
    디바이스.
  21. 제 13 항 내지 제 20 항 중 어느 한 항에 있어서,
    상기 루마 블록의 상기 다운샘플링된 루마 블록은 상기 현재 크로마 블록에 대응하는 상기 루마 블록의 복원된 루마 블록을 다운샘플링함으로써 획득되는,
    디바이스.
  22. 제 21항에 있어서,
    상기 루마 참조 샘플이 상기 루마 블록의 위쪽에 있는 인접한 샘플에만 기초하여 획득될 때 및 상기 현재 크로마 블록의 상측의 행이 현재 코딩 트리 유닛(coding tree unit)(CTU)의 상측의 행과 겹칠 때 상기 루마 블록의 상기 복원된 버전의 인접한 복원된 루마 샘플의 하나의 행만이 상기 루마 참조 샘플을 획득하는데 사용되는,
    디바이스.
  23. 선형 모델을 사용하여 인트라 예측을 수행하기 위한 장치로서,
    현재 크로마 블록에 대응하는 루마 블록을 결정하고 상기 현재 크로마 블록의 L개의 이용 가능한 크로마 참조 샘플을 결정하는 것에 기초하여 상기 루마 블록의 루마 참조 샘플을 획득 - 상기 루마 블록의 상기 획득된 루마 참조 샘플은 다운샘플링된 루마 참조 샘플임 - 하도록 구성된 결정 유닛과,
    상기 루마 참조 샘플 및 상기 루마 참조 샘플에 대응하는 크로마 참조 샘플에 기초하여 선형 모델 계수를 계산하고, 상기 선형 모델 계수 및 상기 루마 블록의 다운샘플링된 루마 블록의 값에 기초하여 상기 현재 크로마 블록에 대한 예측을 획득하도록 구성된 인트라 예측 프로세싱 유닛을 포함하는,
    장치.
  24. 제 23 항에 있어서,
    상기 결정 유닛은,
    상기 현재 크로마 블록의 L개의 상측의 인접한 크로마 샘플이 이용 가능하다는 것을 결정하도록 구성되고, 1 <= L <= W2 이고, W2는 상측의 참조 샘플 범위를 표시하고, L 및 W2는 양의 정수이고, 상기 L개의 상측의 인접한 크로마 샘플은 상기 이용 가능한 크로마 참조 샘플로서 사용되는,
    장치.
  25. 제 24항에 있어서,
    W2는 2*W 또는 W+H와 동일하고, W는 현재 크로마 블록의 폭을 나타내고, H는 현재 크로마 블록의 높이를 나타내는,
    장치.
  26. 제 23 항에 있어서,
    상기 결정 유닛은,
    상기 현재 크로마 블록의 L개의 좌측의 인접한 크로마 샘플이 이용 가능하다는 것을 결정하도록 구성되고, 1 <= L <= H2 이고, H2는 좌측 참조 샘플 범위를 표시하고, L 및 H2는 양의 정수이고, 상기 L개의 좌측의 인접한 크로마 샘플은 상기 이용 가능한 크로마 참조 샘플로서 사용되는,
    장치.
  27. 제 26항에 있어서,
    H2는 2*H 또는 W+H와 동일하고, W는 현재 크로마 블록의 폭을 나타내고, H는 현재 크로마 블록의 높이를 나타내는,
    장치.
  28. 제 23항에 있어서,
    상기 결정 유닛은 상기 현재 크로마 블록의 L1개의 상측의 인접한 크로마 샘플 및 L2개의 좌측의 인접한 크로마 샘플이 이용 가능하다는 것을 결정하도록 구성되고, 1<= L1<= W2 이고, 1 <= L2 <= H2 이고, W2는 상측 참조 샘플 범위를 표시하고, H2는 좌측 참조 샘플 범위를 표시하고, L1, L2, W2 및 H2는 양의 정수이고 L1+L2=L 이고, L1개의 상측의 인접한 크로마 샘플 및 L2개의 좌측의 인접한 크로마 샘플은 상기 이용 가능한 크로마 참조 샘플로서 사용되는,
    장치.
  29. 제 23 항 내지 제 28 항 중 어느 한 항에 있어서,
    상기 루마 참조 샘플은
    상기 루마 블록 위쪽에 있고 상기 L개의 이용 가능한 크로마 참조 샘플에 기초하여 선택되는 상기 인접한 샘플만을 다운샘플링함으로써 획득되거나, 또는
    상기 루마 블록 좌측에 있고 상기 L개의 이용 가능한 크로마 참조 샘플에 기초하여 선택되는 상기 인접한 샘플만을 다운샘플링함으로써 획득되는,
    장치.
  30. 제 23 항 내지 제 29 항 중 어느 한 항에 있어서,
    상기 루마 블록의 상기 다운샘플링된 루마 블록은 상기 현재 크로마 블록에 대응하는 상기 루마 블록의 복원된 루마 블록을 다운샘플링함으로써 획득되는,
    장치.
  31. 제30항에 있어서,
    상기 루마 참조 샘플이 상기 루마 블록의 위쪽에 있는 인접한 샘플에만 기초하여 획득될 때 및 상기 현재 크로마 블록의 상측의 행이 현재 코딩 트리 유닛(CTU)의 상측의 행과 겹칠 때 상기 루마 블록의 상기 복원된 버전의 인접한 복원된 루마 샘플의 하나의 행만이 상기 루마 참조 샘플을 획득하는데 사용되는,
    장치.
  32. 비디오 신호에 대한 비트스트림에서 인트라 크로마 예측 모드를 코딩하기 위한 방법으로서,
    인트라 크로마 예측 모드에 기초하여 상기 비디오 신호의 크로마 블록에 대한 인트라 예측을 수행하는 - 상기 인트라 크로마 예측 모드는 제 1 세트의 모드, CCLM_L 모드 또는 CCLM_T 모드 중 적어도 하나를 포함하는 제 2 세트의 모드 또는 제3 세트의 모드로부터 선택됨 - 단계와,
    상기 인트라 크로마 예측 모드를 표시하는 신택스 요소를 포함시킴으로써 상기 비디오 신호에 대한 비트스트림을 생성하는 단계를 포함하고,
    상기 인트라 크로마 예측 모드가 상기 제 1 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수는 상기 인트라 크로마 예측 모드가 상기 제 2 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수보다 적고, 상기 인트라 크로마 예측 모드가 상기 제 2 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수는 상기 인트라 크로마 예측 모드가 상기 제3 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수보다 적은,
    방법.
  33. 제32항에 있어서,
    상기 제 1 세트의 모드는 도출 모드(derived mode)(DM) 또는 크로스 컴포넌트 선형 모델(cross component linear model)(CCLM) 예측 모드 중 적어도 하나를 포함하고, 상기 제3 세트의 모드는 수직 모드, 수평 모드, DC 모드 또는 평면 모드를 포함하는,
    방법.
  34. 제33항에 있어서,
    상기 DM 모드에 대한 신택스 요소는 0이고;
    상기 CCLM 모드에 대한 신택스 요소는 10이고;
    상기 CCLM_L 모드에 대한 신택스 요소는 1110이고;
    상기 CCLM_T 모드에 대한 신택스 요소는 1111이고;
    상기 평면 모드에 대한 신택스 요소는 11000이고;
    상기 수직 모드에 대한 신택스 요소는 11001이고;
    상기 수평 모드에 대한 신택스 요소는 11010이고;
    상기 DC 모드에 대한 신택스 요소는 11011인,
    방법.
  35. 제33항에 있어서,
    상기 DM 모드에 대한 신택스 요소는 00이고;
    상기 CCLM 모드에 대한 신택스 요소는 10이고;
    상기 CCLM_L 모드에 대한 신택스 요소는 110이고;
    상기 CCLM_T 모드에 대한 신택스 요소는 111이고;
    상기 평면 모드에 대한 신택스 요소는 0100이고;
    상기 수직 모드에 대한 신택스 요소는 0101이고;
    상기 수평 모드에 대한 신택스 요소는 0110이고;
    상기 DC 모드에 대한 신택스 요소는 0111인,
    방법.
  36. 비디오 신호에 대한 비트스트림에서 인트라 크로마 예측 모드를 디코딩하기 위한 방법으로서,
    비디오 신호의 비트스트림으로부터 복수의 신택스 요소를 파싱하는 단계와,
    상기 복수의 신택스 요소로부터의 신택스 요소에 기초하여 인트라 크로마 예측 모드를 결정하는 - 상기 인트라 크로마 예측 모드는 제 1 세트의 모드, CCLM_L 모드 또는 CCLM_T 모드 중 적어도 하나를 포함하는 제 2 세트의 모드, 또는 제3 세트의 모드 중 하나로부터 결정되고,
    상기 인트라 크로마 예측 모드가 상기 제 1 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수는 상기 인트라 크로마 예측 모드가 상기 제 2 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수보다 적고, 상기 인트라 크로마 예측 모드가 상기 제 2 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수는 상기 인트라 크로마 예측 모드가 상기 제3 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수보다 적음 - 단계와,
    상기 인트라 크로마 예측 모드에 기초하여 상기 비디오 신호의 현재 크로마 블록에 대한 인트라 예측을 수행하는 단계를 포함하는,
    방법.
  37. 비디오 데이터를 인코딩하기 위한 디바이스로서,
    비디오 데이터 메모리와,
    비디오 인코더를 포함하고, 상기 비디오 인코더는,
    인트라 크로마 예측 모드에 기초하여 상기 비디오 신호의 크로마 블록에 대한 인트라 예측을 수행 - 상기 인트라 크로마 예측 모드는 제 1 세트의 모드, CCLM_L 모드 또는 CCLM_T 모드 중 적어도 하나를 포함하는 제 2 세트의 모드 또는 제3 세트의 모드로부터 선택됨 - 하고,
    상기 인트라 크로마 예측 모드를 표시하는 신택스 요소를 포함시킴으로써 상기 비디오 신호에 대한 비트스트림을 생성하도록 구성되며,
    상기 인트라 크로마 예측 모드가 상기 제 1 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수는 상기 인트라 크로마 예측 모드가 상기 제 2 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수보다 적고, 상기 인트라 크로마 예측 모드가 상기 제 2 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수는 상기 인트라 크로마 예측 모드가 상기 제3 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수보다 적은,
    디바이스.
  38. 비디오 데이터를 디코딩하기 위한 디바이스로서,
    비디오 데이터 메모리와,
    비디오 디코더를 포함하고, 상기 비디오 디코더는,
    비디오 신호의 비트스트림으로부터 복수의 신택스 요소를 파싱하고,
    상기 복수의 신택스 요소로부터의 신택스 요소에 기초하여 인트라 크로마 예측 모드를 결정 - 상기 인트라 크로마 예측 모드는 제 1 세트의 모드, CCLM_L 모드 또는 CCLM_T 모드 중 적어도 하나를 포함하는 제 2 세트의 모드, 또는 제3 세트의 모드 중 하나로부터 결정되고,
    상기 인트라 크로마 예측 모드가 상기 제 1 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수는 상기 인트라 크로마 예측 모드가 상기 제 2 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수보다 적고, 상기 인트라 크로마 예측 모드가 상기 제 2 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수는 상기 인트라 크로마 예측 모드가 상기 제3 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수보다 적음 - 하고,
    상기 인트라 크로마 예측 모드에 기초하여 상기 비디오 신호의 현재 크로마 블록에 대한 인트라 예측을 수행하도록 구성되는,
    디바이스.
  39. 제37항 또는 제38항에 있어서,
    상기 제 1 세트의 모드는 도출 모드(derived mode(DM) 또는 크로스 컴포넌트 선형 모델(cross component linear model)(CCLM) 예측 모드 중 적어도 하나를 포함하고, 상기 제3 세트의 모드는 수직 모드, 수평 모드, DC 모드 또는 평면 모드를 포함하는,
    디바이스.
  40. 제39항에 있어서,
    상기 DM 모드에 대한 신택스 요소는 0이고;
    상기 CCLM 모드에 대한 신택스 요소는 10이고;
    상기 CCLM_L 모드에 대한 신택스 요소는 1110이고;
    상기 CCLM_T 모드에 대한 신택스 요소는 1111이고;
    상기 평면 모드에 대한 신택스 요소는 11000이고;
    상기 수직 모드에 대한 신택스 요소는 11001이고;
    상기 수평 모드에 대한 신택스 요소는 11010이고;
    상기 DC 모드에 대한 신택스 요소는 11011인,
    디바이스.
  41. 제39항에 있어서,
    상기 DM 모드에 대한 신택스 요소는 00이고;
    상기 CCLM 모드에 대한 신택스 요소는 10이고;
    상기 CCLM_L 모드에 대한 신택스 요소는 110이고;
    상기 CCLM_T 모드에 대한 신택스 요소는 111이고;
    상기 평면 모드에 대한 신택스 요소는 0100이고;
    상기 수직 모드에 대한 신택스 요소는 0101이고;
    상기 수평 모드에 대한 신택스 요소는 0110이고;
    상기 DC 모드에 대한 신택스 요소는 0111인,
    디바이스.
  42. 비디오 신호에 대한 비트스트림에서 인트라 크로마 예측 모드를 코딩하기 위한 장치로서,
    인트라 크로마 예측 모드에 기초하여 상기 비디오 신호의 크로마 블록에 대한 인트라 예측을 수행 - 상기 인트라 크로마 예측 모드는 제 1 세트의 모드, CCLM_L 모드 또는 CCLM_T 모드 중 적어도 하나를 포함하는 제 2 세트의 모드 또는 제3 세트의 모드로부터 선택됨 - 하도록 구성된 인트라 예측 프로세싱 유닛과,
    상기 인트라 크로마 예측 모드를 표시하는 신택스 요소를 포함시킴으로써 상기 비디오 신호에 대한 비트스트림을 생성하도록 구성된 이진화 유닛을 포함하며,
    상기 인트라 크로마 예측 모드가 상기 제 1 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수는 상기 인트라 크로마 예측 모드가 상기 제 2 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수보다 적고, 상기 인트라 크로마 예측 모드가 상기 제 2 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수는 상기 인트라 크로마 예측 모드가 상기 제3 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수보다 적은,
    장치.
  43. 제42항에 있어서,
    상기 제 1 세트의 모드는 도출 모드(DM) 또는 크로스 컴포넌트 선형 모델(CCLM) 예측 모드 중 적어도 하나를 포함하고, 상기 제3 세트의 모드는 수직 모드, 수평 모드, DC 모드 또는 평면 모드를 포함하는
    장치.
  44. 제43항에 있어서,
    상기 DM 모드에 대한 신택스 요소는 0이고;
    상기 CCLM 모드에 대한 신택스 요소는 10이고;
    상기 CCLM_L 모드에 대한 신택스 요소는 1110이고;
    상기 CCLM_T 모드에 대한 신택스 요소는 1111이고;
    상기 평면 모드에 대한 신택스 요소는 11000이고;
    상기 수직 모드에 대한 신택스 요소는 11001이고;
    상기 수평 모드에 대한 신택스 요소는 11010이고;
    상기 DC 모드에 대한 신택스 요소는 11011인,
    장치.
  45. 제43항에 있어서,
    상기 DM 모드에 대한 신택스 요소는 00이고;
    상기 CCLM 모드에 대한 신택스 요소는 10이고;
    상기 CCLM_L 모드에 대한 신택스 요소는 110이고;
    상기 CCLM_T 모드에 대한 신택스 요소는 111이고;
    상기 평면 모드에 대한 신택스 요소는 0100이고;
    상기 수직 모드에 대한 신택스 요소는 0101이고;
    상기 수평 모드에 대한 신택스 요소는 0110이고;
    상기 DC 모드에 대한 신택스 요소는 0111인,
    장치.
  46. 비디오 신호에 대한 비트스트림에서 인트라 크로마 예측 모드를 디코딩하기 위한 장치로서,
    비디오 신호의 비트스트림으로부터 복수의 신택스 요소를 파싱하도록 구성된 파싱 유닛과,
    상기 복수의 신택스 요소로부터의 신택스 요소에 기초하여 인트라 크로마 예측 모드를 결정 - 상기 인트라 크로마 예측 모드는 제 1 세트의 모드, CCLM_L 모드 또는 CCLM_T 모드 중 적어도 하나를 포함하는 제 2 세트의 모드, 또는 제3 세트의 모드 중 하나로부터 결정되고,
    상기 인트라 크로마 예측 모드가 상기 제 1 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수는 상기 인트라 크로마 예측 모드가 상기 제 2 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수보다 적고, 상기 인트라 크로마 예측 모드가 상기 제 2 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수는 상기 인트라 크로마 예측 모드가 상기 제3 세트의 모드로부터 선택되는 경우의 상기 신택스 요소의 비트의 수보다 적음 - 하도록 구성된 결정 유닛과,
    상기 인트라 크로마 예측 모드에 기초하여 상기 비디오 신호의 현재 크로마 블록에 대한 인트라 예측을 수행하도록 구성된 인트라 예측 프로세싱 유닛을 포함하는,
    장치.
KR1020217012967A 2018-10-05 2019-09-30 인트라 예측 방법 및 디바이스 KR102608366B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237040883A KR20230169407A (ko) 2018-10-05 2019-09-30 인트라 예측 방법 및 디바이스

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201862742266P 2018-10-05 2018-10-05
US62/742,266 2018-10-05
US201862742356P 2018-10-06 2018-10-06
US201862742275P 2018-10-06 2018-10-06
US201862742355P 2018-10-06 2018-10-06
US62/742,275 2018-10-06
US62/742,355 2018-10-06
US62/742,356 2018-10-06
PCT/CN2019/109733 WO2020069667A1 (en) 2018-10-05 2019-09-30 Intra prediction method and device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237040883A Division KR20230169407A (ko) 2018-10-05 2019-09-30 인트라 예측 방법 및 디바이스

Publications (2)

Publication Number Publication Date
KR20210064366A true KR20210064366A (ko) 2021-06-02
KR102608366B1 KR102608366B1 (ko) 2023-11-29

Family

ID=70054969

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217012967A KR102608366B1 (ko) 2018-10-05 2019-09-30 인트라 예측 방법 및 디바이스
KR1020237040883A KR20230169407A (ko) 2018-10-05 2019-09-30 인트라 예측 방법 및 디바이스

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020237040883A KR20230169407A (ko) 2018-10-05 2019-09-30 인트라 예측 방법 및 디바이스

Country Status (10)

Country Link
US (2) US11743451B2 (ko)
EP (1) EP3850853A4 (ko)
JP (2) JP7364669B2 (ko)
KR (2) KR102608366B1 (ko)
CN (3) CN112789863B (ko)
AU (2) AU2019353560B2 (ko)
BR (1) BR112021006412A2 (ko)
CA (1) CA3115177A1 (ko)
MX (1) MX2021003853A (ko)
WO (1) WO2020069667A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 北京字节跳动网络技术有限公司 帧内预测的参数推导
AU2019391197B2 (en) 2018-12-07 2023-05-25 Beijing Bytedance Network Technology Co., Ltd. Context-based intra prediction
EP3900347A2 (en) * 2018-12-21 2021-10-27 Vid Scale, Inc. Methods, architectures, apparatuses and systems directed to improved linear model estimation for template based video coding
CN116456082A (zh) * 2018-12-25 2023-07-18 Oppo广东移动通信有限公司 编码预测方法、装置及计算机存储介质
US20220116636A1 (en) * 2018-12-28 2022-04-14 Electronics And Telecommunications Research Institute Video encoding/decoding method, device, and recording medium storing bitstream therein
CN113395520B (zh) * 2019-01-02 2023-05-16 Oppo广东移动通信有限公司 解码预测方法、装置及计算机存储介质
KR20210092308A (ko) * 2019-01-12 2021-07-23 엘지전자 주식회사 영상 코딩 시스템에서 cclm 예측을 사용하는 영상 디코딩 방법 및 그 장치
AU2020226566A1 (en) 2019-02-24 2021-08-19 Beijing Bytedance Network Technology Co., Ltd. Parameter derivation for intra prediction
CN113545064B (zh) * 2019-03-04 2024-05-10 阿里巴巴集团控股有限公司 用于处理视频内容的方法和装置及计算机可读存储介质
CN113767631B (zh) 2019-03-24 2023-12-15 北京字节跳动网络技术有限公司 用于帧内预测的参数推导中的条件
JPWO2021100450A1 (ko) * 2019-11-21 2021-05-27
CN113891074B (zh) * 2021-11-18 2023-08-01 北京达佳互联信息技术有限公司 视频编码方法和装置、电子装置和计算机可读存储介质
CA3185916A1 (en) * 2022-01-05 2023-07-05 Comcast Cable Communications, Llc Video compression using boundary based template refinement
WO2023138627A1 (en) * 2022-01-21 2023-07-27 Mediatek Inc. Method and apparatus of cross-component linear model prediction with refined parameters in video coding system
US20230247203A1 (en) * 2022-01-31 2023-08-03 Tencent America LLC Cross-component planar prediction in image and video compression
WO2023197190A1 (zh) * 2022-04-12 2023-10-19 Oppo广东移动通信有限公司 编解码方法、装置、编码设备、解码设备以及存储介质
EP4262206A1 (en) * 2022-04-14 2023-10-18 FG Innovation Company Limited Method for determining specific linear model and video processing device
WO2023230152A1 (en) * 2022-05-26 2023-11-30 Beijing Dajia Internet Information Technology Co., Ltd Method and apparatus for cross-component prediction for video coding
WO2024011074A1 (en) * 2022-07-04 2024-01-11 Bytedance Inc. Method, apparatus, and medium for video processing

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180176594A1 (en) * 2016-12-19 2018-06-21 Qualcomm Incorporated Linear model prediction mode with sample accessing for video coding

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9288500B2 (en) * 2011-05-12 2016-03-15 Texas Instruments Incorporated Luma-based chroma intra-prediction for video coding
KR101756843B1 (ko) * 2011-06-28 2017-07-11 삼성전자주식회사 휘도 성분 영상을 이용한 색차 성분 영상의 예측 방법 및 예측 장치
WO2013006986A1 (en) * 2011-07-12 2013-01-17 Intel Corporation Luma-based chroma intra prediction
CN103096055B (zh) * 2011-11-04 2016-03-30 华为技术有限公司 一种图像信号帧内预测及解码的方法和装置
CN103096057B (zh) * 2011-11-08 2016-06-29 华为技术有限公司 一种色度帧内预测方法和装置
CN103918269B (zh) * 2012-01-04 2017-08-01 联发科技(新加坡)私人有限公司 色度帧内预测方法及装置
WO2013102293A1 (en) * 2012-01-04 2013-07-11 Mediatek Singapore Pte. Ltd. Improvements of luma-based chroma intra prediction
CN104871537B (zh) * 2013-03-26 2018-03-16 联发科技股份有限公司 色彩间帧内预测的方法
WO2015005418A1 (ja) * 2013-07-10 2015-01-15 Kddi株式会社 動画像符号化装置、動画像復号装置、動画像システム、動画像符号化方法、動画像復号方法、およびプログラム
US10455249B2 (en) * 2015-03-20 2019-10-22 Qualcomm Incorporated Downsampling process for linear model prediction mode
CN113810691A (zh) * 2015-07-08 2021-12-17 交互数字麦迪逊专利控股公司 用于使用交叉平面滤波的增强色度编码的方法和装置
US10200719B2 (en) 2015-11-25 2019-02-05 Qualcomm Incorporated Modification of transform coefficients for non-square transform units in video coding
US10419757B2 (en) * 2016-08-31 2019-09-17 Qualcomm Incorporated Cross-component filter
US10652575B2 (en) * 2016-09-15 2020-05-12 Qualcomm Incorporated Linear model chroma intra prediction for video coding
GB2571313B (en) * 2018-02-23 2022-09-21 Canon Kk New sample sets and new down-sampling schemes for linear component sample prediction
WO2020053804A1 (en) * 2018-09-12 2020-03-19 Beijing Bytedance Network Technology Co., Ltd. Downsampling in cross-component linear modeling
US11463686B2 (en) * 2018-09-22 2022-10-04 Lg Electronics Inc. Method and device for decoding images using CCLM prediction in image coding system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180176594A1 (en) * 2016-12-19 2018-06-21 Qualcomm Incorporated Linear model prediction mode with sample accessing for video coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Adarsh K. Ramasubramonian, Cross-check of JVET-K0204: On cross-component linear model simplification, JVET of ITU-T and ISO/IEC, JVET-K0512 version 2 (2018.07.16.) 1부.* *
Xiang Ma et al, CE3-related: Improved multi-directional LM, JVET of ITU-T and ISO/IEC, JVET-K0336 version 2 (2018.07.13.) 1부.* *

Also Published As

Publication number Publication date
EP3850853A4 (en) 2022-08-10
AU2019353560A1 (en) 2021-05-13
CN112789863B (zh) 2022-08-19
JP2024001165A (ja) 2024-01-09
WO2020069667A1 (en) 2020-04-09
MX2021003853A (es) 2021-09-08
US20240107005A1 (en) 2024-03-28
KR20230169407A (ko) 2023-12-15
BR112021006412A2 (pt) 2021-07-06
JP2022504297A (ja) 2022-01-13
JP7364669B2 (ja) 2023-10-18
CN115334302A (zh) 2022-11-11
US20210297656A1 (en) 2021-09-23
US11743451B2 (en) 2023-08-29
CN115334303A (zh) 2022-11-11
EP3850853A1 (en) 2021-07-21
AU2023248166A1 (en) 2023-11-02
KR102608366B1 (ko) 2023-11-29
CN112789863A (zh) 2021-05-11
CA3115177A1 (en) 2020-04-09
AU2019353560B2 (en) 2023-07-13

Similar Documents

Publication Publication Date Title
KR102608366B1 (ko) 인트라 예측 방법 및 디바이스
US9832467B2 (en) Deblock filtering for intra block copying
US11563948B2 (en) Apparatus and method for conditional decoder-side motion vector refinement in video coding
US20150373362A1 (en) Deblocking filter design for intra block copy
US20210227229A1 (en) Intra prediction method and device
KR102606414B1 (ko) 디블로킹 필터의 경계 강도를 도출하는 인코더, 디코더 및 대응 방법
US11659175B2 (en) Coding method, device, system with merge mode
US9270991B2 (en) Inter-layer reference picture generation for HLS-only scalable video coding
WO2020041306A1 (en) Intra prediction method and device
WO2020182196A1 (en) Coding method, device, system with shared mpm list
US20210274198A1 (en) Intra prediction method and device

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant