KR20170129750A - 선형 모델 예측 모드를 위한 다운샘플링 프로세스 - Google Patents

선형 모델 예측 모드를 위한 다운샘플링 프로세스 Download PDF

Info

Publication number
KR20170129750A
KR20170129750A KR1020177026244A KR20177026244A KR20170129750A KR 20170129750 A KR20170129750 A KR 20170129750A KR 1020177026244 A KR1020177026244 A KR 1020177026244A KR 20177026244 A KR20177026244 A KR 20177026244A KR 20170129750 A KR20170129750 A KR 20170129750A
Authority
KR
South Korea
Prior art keywords
block
luma
chroma
filter
boundary
Prior art date
Application number
KR1020177026244A
Other languages
English (en)
Other versions
KR102520295B1 (ko
Inventor
리 장
지안레 천
마르타 카르체비츠
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20170129750A publication Critical patent/KR20170129750A/ko
Application granted granted Critical
Publication of KR102520295B1 publication Critical patent/KR102520295B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/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/117Filters, e.g. for pre-processing or post-processing
    • 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/167Position within a video image, e.g. region of interest [ROI]
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Landscapes

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

Abstract

선형 모델 (LM) 예측 디코딩 또는 인코딩에 관련된 예시적인 기법들이 설명된다. 비디오 디코더 또는 비디오 인코더는 루마 블록의 샘플들을 다운샘플링하기 위해 필터들의 세트로부터 어느 필터를 적용할지를 결정하고, 크로마 블록의 특성들에 기초하여 대응하는 크로마 블록에 대한 예측 블록을 생성한다.

Description

선형 모델 예측 모드를 위한 다운샘플링 프로세스{DOWNSAMPLING PROCESS FOR LINEAR MODEL PREDICTION MODE}
본 출원은 2015년 3월 20일자로 출원된 미국 가특허출원 제62/136,344호의 이익을 주장하며, 그 전체 내용은 본 명세서에 참조로 통합된다.
본 개시는 비디오 인코딩 및 디코딩에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전들, 디지털 직접 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인용 디지털 보조기들 (PDA들), 랩탑 또는 데스크탑 컴퓨터들, 태블릿 컴퓨터들, e-북 리더들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화기들, 소위 "스마트 폰들", 비디오 텔레컨퍼런싱 디바이스들, 비디오 스트리밍 디바이스들 등을 포함한, 광범위한 디바이스들에 통합될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, 파트 10, 어드밴스드 비디오 코딩 (AVC), ITU-T H.265, 고 효율 비디오 코딩 (HEVC) 에 의해 정의된 표준들, 및 그러한 표준들의 확장들에서 설명된 기법들과 같은 비디오 압축 기법들을 구현한다. 비디오 디바이스들은 그러한 비디오 압축 기법들을 구현함으로써 디지털 비디오 정보를 더 효율적으로 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수도 있다.
비디오 압축 기법들은 비디오 시퀀스들에 고유한 리던던시를 감소 또는 제거하기 위해 공간 (인트라-픽처) 예측 및/또는 시간 (인터-픽처) 예측을 수행한다. 블록 기반 비디오 코딩에 대해, 비디오 슬라이스 (즉, 비디오 프레임 또는 비디오 프레임의 부분) 는 비디오 블록들로 파티셔닝될 수도 있다. 픽처의 인트라-코딩된 (I) 슬라이스에서의 비디오 블록들은 동일 픽처의 이웃 블록들에서의 레퍼런스 샘플들에 대한 공간 예측을 이용하여 인코딩된다. 픽처의 인터-코딩된 (P 또는 B) 슬라이스에서의 비디오 블록들은 동일 픽처의 이웃 블록들에서의 레퍼런스 샘플들에 대한 공간 예측, 또는 다른 레퍼런스 픽처들에서의 레퍼런스 샘플들에 대한 시간 예측을 이용할 수도 있다. 공간 또는 시간 예측은 코딩될 블록에 대한 예측 블록을 발생시킨다. 잔차 데이터는 코딩될 오리지널 블록과 예측 블록 간의 픽셀 차이들을 나타낸다. 인터-코딩된 블록은 예측 블록을 형성하는 레퍼런스 샘플들의 블록을 포인팅하는 모션 벡터에 따라 인코딩되고, 잔차 데이터는 코딩된 블록과 예측 블록 간의 차이를 나타낸다. 인트라-코딩된 블록은 인트라-코딩 모드 및 잔차 데이터에 따라 인코딩된다. 추가적인 압축을 위해, 잔차 데이터는 픽셀 도메인으로부터 변환 도메인으로 변환되어, 잔차 계수들을 발생시킬 수도 있으며, 그 후, 이 잔차 계수들은 양자화될 수도 있다.
본 개시는 선형 모델 (LM) 예측 디코딩 및 인코딩에 관련된 기법들을 설명한다. 컬러 포맷이 4:4:4 가 아닐 경우 (즉, 루마 및 크로마 컴포넌트들이 상이한 해상도들을 가짐), LM 예측에 있어서, 크로마 블록에 대한 예측 블록은, 필터에 기초하여 대응하는 루마 블록을 다운샘플링하고 그리고 하기에서 설명되는 알파 및 베타 파라미터들을 다운샘플링된 루마 블록에 적용함으로써 결정된다. 그 기법들은, 루마 블록을 다운샘플링하기 위해 적용될 필터를 결정한다. 예를 들어, 루마 블록을 다운샘플링하기 위한 모든 경우들에 적용되는 하나의 필터가 존재하는 것보다는, 비디오 디코더 또는 비디오 인코더는 필터들의 세트로부터 어느 필터가 적용될지를 동적으로 결정할 수도 있다. 어느 필터가 적용될지의 결정은, 예를 들어, 경계에 대한 크로마 블록의 위치와 같은 크로마 블록의 특성에 기초할 수도 있다. 일부 예들에 있어서, 본 명세서에서 설명된 기법들은 또한, 크로마가 루마 블록들로부터 예측되고 루마 블록의 다운샘플링이 필요한 다른 코딩 방법들에도 적용될 수 있다.
일 예에 있어서, 본 개시는 비디오 데이터를 선형 모델 (LM) 예측 디코딩하는 예시적인 방법을 설명하며, 그 방법은 디코딩되고 있는 비디오 데이터의 크로마 블록에 대응하는 비디오 데이터의 루마 블록을 결정하는 단계, 크로마 블록의 특성에 기초하여 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정하는 단계, 결정된 필터에 기초하여 루마 블록을 다운샘플링하는 단계, 다운샘플링된 루마 블록에 기초하여 예측 블록을 결정하는 단계, 및 예측 블록 및 잔차 블록에 기초하여 크로마 블록을 복원하는 단계를 포함한다.
일 예에 있어서, 본 개시는 비디오 데이터를 선형 모델 (LM) 예측 인코딩하는 예시적인 방법을 설명하며, 그 방법은 인코딩되고 있는 비디오 데이터의 크로마 블록에 대응하는 비디오 데이터의 루마 블록을 결정하는 단계, 크로마 블록의 특성에 기초하여 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정하는 단계, 결정된 필터에 기초하여 루마 블록을 다운샘플링하는 단계, 다운샘플링된 루마 블록에 기초하여 예측 블록을 결정하는 단계, 및 크로마 블록 및 예측 블록에 기초하여 잔차 블록을 생성하는 단계를 포함한다.
일 예에 있어서, 본 개시는 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 예시적인 디바이스를 설명하며, 그 디바이스는 비디오 데이터를 저장하도록 구성된 비디오 데이터 메모리 및 집적 회로부를 포함하는 비디오 디코더를 포함한다. 비디오 디코더는 디코딩되고 있는 비디오 데이터의 크로마 블록에 대응하는 비디오 데이터 메모리에 저장된 비디오 데이터의 루마 블록을 결정하고, 크로마 블록의 특성에 기초하여 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정하고, 결정된 필터에 기초하여 루마 블록을 다운샘플링하고, 다운샘플링된 루마 블록에 기초하여 예측 블록을 결정하고, 그리고 예측 블록 및 잔차 블록에 기초하여 크로마 블록을 복원하도록 구성된다.
일 예에 있어서, 본 개시는 비디오 데이터를 선형 모델 (LM) 예측 인코딩하기 위한 예시적인 디바이스를 설명하며, 그 디바이스는 비디오 데이터를 저장하도록 구성된 비디오 데이터 메모리 및 집적 회로부를 포함하는 비디오 인코더를 포함한다. 비디오 인코더는 인코딩되고 있는 비디오 데이터의 크로마 블록에 대응하는 비디오 데이터 메모리에 저장된 비디오 데이터의 루마 블록을 결정하고, 크로마 블록의 특성에 기초하여 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정하고, 결정된 필터에 기초하여 루마 블록을 다운샘플링하고, 다운샘플링된 루마 블록에 기초하여 예측 블록을 결정하고, 그리고 크로마 블록 및 예측 블록에 기초하여 잔차 블록을 생성하도록 구성된다.
일 예에 있어서, 본 개시는 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 예시적인 디바이스를 설명하며, 그 디바이스는 디코딩되고 있는 비디오 데이터의 크로마 블록에 대응하는 비디오 데이터의 루마 블록을 결정하는 수단, 크로마 블록의 특성에 기초하여 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정하는 수단, 결정된 필터에 기초하여 루마 블록을 다운샘플링하는 수단, 다운샘플링된 루마 블록에 기초하여 예측 블록을 결정하는 수단, 및 예측 블록 및 잔차 블록에 기초하여 크로마 블록을 복원하는 수단을 포함한다.
일 예에 있어서, 본 개시는 비디오 데이터를 선형 모델 (LM) 예측 인코딩하기 위한 예시적인 디바이스를 설명하며, 그 디바이스는 인코딩되고 있는 비디오 데이터의 크로마 블록에 대응하는 비디오 데이터의 루마 블록을 결정하는 수단, 크로마 블록의 특성에 기초하여 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정하는 수단, 결정된 필터에 기초하여 루마 블록을 다운샘플링하는 수단, 다운샘플링된 루마 블록에 기초하여 예측 블록을 결정하는 수단, 및 크로마 블록 및 예측 블록에 기초하여 잔차 블록을 생성하는 수단을 포함한다.
일 예에 있어서, 본 개시는 명령들을 저장하는 예시적인 컴퓨터 판독가능 저장 매체를 설명하고, 그 명령들은, 실행될 경우, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 디바이스의 하나 이상의 프로세서들로 하여금 디코딩되고 있는 비디오 데이터의 크로마 블록에 대응하는 비디오 데이터의 루마 블록을 결정하게 하고, 크로마 블록의 특성에 기초하여 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정하게 하고, 결정된 필터에 기초하여 루마 블록을 다운샘플링하게 하고, 다운샘플링된 루마 블록에 기초하여 예측 블록을 결정하게 하고, 그리고 예측 블록 및 잔차 블록에 기초하여 크로마 블록을 복원하게 한다.
일 예에 있어서, 본 개시는 명령들을 저장하는 예시적인 컴퓨터 판독가능 저장 매체를 설명하고, 그 명령들은, 실행될 경우, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하기 위한 디바이스의 하나 이상의 프로세서들로 하여금 인코딩되고 있는 비디오 데이터의 크로마 블록에 대응하는 비디오 데이터의 루마 블록을 결정하게 하고, 크로마 블록의 특성에 기초하여 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정하게 하고, 결정된 필터에 기초하여 루마 블록을 다운샘플링하게 하고, 다운샘플링된 루마 블록에 기초하여 예측 블록을 결정하게 하고, 그리고 크로마 블록 및 예측 블록에 기초하여 잔차 블록을 생성하게 한다.
본 개시의 하나 이상의 예들의 상세들은 첨부 도면들 및 하기의 설명에 기재된다. 다른 특징들, 목적들, 및 이점들은 그 설명, 도면들, 및 청구항들로부터 명백할 것이다.
도 1 은 본 개시에서 설명된 기법들을 활용할 수도 있는 예시적인 비디오 코딩 시스템을 도시한 블록 다이어그램이다.
도 2 는 본 개시에서 설명된 기법들을 구현할 수도 있는 예시적인 비디오 인코더를 도시한 블록 다이어그램이다.
도 3 은 본 개시에서 설명된 기법들을 구현할 수도 있는 예시적인 비디오 디코더를 도시한 블록 다이어그램이다.
도 4 는 루마 및 크로마 샘플들의 공칭 수직 및 수평 상대 위치들을 도시한 개념 다이어그램이다.
도 5 는 다운샘플링된 복원된 루마 블록을 스케일링하기 위해 사용된 스케일링 파라미터들이 도출되는 예시적인 위치들을 도시한 개념 다이어그램이다.
도 6 은 예측 블록을 생성하기 위한 루마 블록의 다운샘플링 샘플들에 대한 루마 포지션들 및 크로마 포지션들의 일 예를 도시한 개념 다이어그램이다.
도 7 은 예측 블록을 생성하기 위한 루마 블록의 다운샘플링 샘플들에 대한 루마 포지션들 및 크로마 포지션들의 다른 예를 도시한 개념 다이어그램이다.
도 8 은 비디오 데이터를 선형 모델 (LM) 예측 인코딩하는 하나의 예시적인 기법을 도시한 플로우차트이다.
도 9 는 비디오 데이터를 선형 모델 (LM) 예측 디코딩하는 하나의 예시적인 기법을 도시한 플로우차트이다.
본 개시는 비디오 데이터의 비디오 코딩 및 압축을 위한 기법들을 설명한다. 특히, 본 개시는 선형 모델 (LM) 예측 비디오 코딩 모드를 위한 기법들을 설명한다. LM 예측 모드에서의 비디오 코딩은 비디오 데이터의 루마 샘플과 크로마 샘플 간의 컴포넌트간 리던던시를 감소시키는 경향이 있다. LM 예측 비디오 코딩 모드에 있어서 그리고 샘플링이 4:4:4 가 아닌 경우, 크로마 블록은 스케일링된 다운샘플링된 복원된 대응하는 루마 블록으로부터 예측된다 (즉, 이러한 스케일링된 다운샘플링된 복원된 대응하는 루마 블록은 크로마 블록을 예측하기 위해 사용되는 예측 블록을 형성함).
일부 예들에 있어서, 복원된 대응하는 루마 블록의 다운샘플링은 필터링을 포함한다. 본 개시는 그러한 필터링을 수행하기 위한 예시적인 방식들을 설명한다. 본 개시에서 설명된 기법들은 또한, LM 예측 모드에서 사용된 루마 샘플들이 상이한 타일들에 위치되는 상황들에 대해 적용할 수도 있다. 본 개시에서 설명된 기법들은 ITU-T H.265 고효율 비디오 코딩 (HEVC) 비디오 코딩 표준의 확장들 또는 차세대 또는 미래 세대들의 비디오 코딩 표준들과 같은 진보한 비디오 코덱들의 맥락에서 사용될 수도 있다.
도 1 은 본 개시의 기법들을 활용할 수도 있는 예시적인 비디오 코딩 시스템 (10) 을 도시한 블록 다이어그램이다. 본 명세서에서 사용된 바와 같이, 용어 "비디오 코더" 는 일반적으로 비디오 인코더들 및 비디오 디코더들 양자 모두를 지칭한다. 본 개시에 있어서, 용어들 "비디오 코딩" 또는 "코딩" 은 일반적으로 비디오 인코딩 또는 비디오 디코딩을 지칭할 수도 있다. 비디오 코딩 시스템 (10) 의 비디오 인코더 (20) 및 비디오 디코더 (30) 는, 본 개시에서 설명된 다양한 예들에 따른 선형 모델 (LM) 예측 기반 비디오 코딩을 위한 기법들을 수행하도록 구성될 수도 있는 디바이스들의 예들을 나타낸다. 예를 들어, 비디오 인코더 (20) 및 비디오 디코더 (30) 는, 본 개시에서 설명된 바와 같은 샘플링이 4:4:4 가 아닌 예들 (예를 들어, 크로마가 루마에 대해 서브샘플링됨) 에서와 같이 대응하는 루마 블록의 스케일링된 다운샘플링된 복원된 루마 샘플들을 활용하는 크로마 블록을 코딩하도록 구성될 수도 있다.
도 1 에 도시된 바와 같이, 비디오 코딩 시스템 (10) 은 소스 디바이스 (12) 및 목적지 디바이스 (14) 를 포함한다. 소스 디바이스 (12) 는 인코딩된 비디오 데이터를 생성한다. 이에 따라, 소스 디바이스 (12) 는 비디오 인코딩 디바이스 또는 비디오 인코딩 장치로서 지칭될 수도 있다. 목적지 디바이스 (14) 는 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수도 있다. 이에 따라, 목적지 디바이스 (14) 는 비디오 디코딩 디바이스 또는 비디오 디코딩 장치로서 지칭될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 비디오 코딩 디바이스들 또는 비디오 코딩 장치들의 예들일 수도 있다.
소스 디바이스 (12) 및 목적지 디바이스 (14) 는 데스크탑 컴퓨터들, 모바일 컴퓨팅 디바이스들, 노트북 (예를 들어, 랩탑) 컴퓨터들, 태블릿 컴퓨터들, 셋탑 박스들, 소위 "스마트" 폰들과 같은 전화기 핸드셋들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 차량내 컴퓨터들 등을 포함하여 광범위한 디바이스들을 포함할 수도 있다.
목적지 디바이스 (14) 는 소스 디바이스 (12) 로부터의 인코딩된 비디오 데이터를 채널 (16) 을 통해 수신할 수도 있다. 채널 (16) 은 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 이동 가능한 하나 이상의 매체들 또는 디바이스들을 포함할 수도 있다. 일 예에 있어서, 채널 (16) 은, 소스 디바이스 (12) 로 하여금 인코딩된 비디오 데이터를 직접 목적지 디바이스 (14) 로 실시간으로 송신할 수 있게 하는 하나 이상의 통신 매체들을 포함할 수도 있다. 이 예에 있어서, 소스 디바이스 (12) 는 인코딩된 비디오 데이터를 무선 통신 프로토콜과 같은 통신 표준에 따라 변조할 수도 있고, 변조된 비디오 데이터를 목적지 디바이스 (14) 로 송신할 수도 있다. 하나 이상의 통신 매체들은 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들과 같은 무선 및/또는 유선 통신 매체들을 포함할 수도 있다. 하나 이상의 통신 매체들은 로컬 영역 네트워크, 광역 네트워크, 또는 글로벌 네트워크 (예를 들어, 인터넷) 와 같은 패킷 기반 네트워크의 부분을 형성할 수도 있다. 하나 이상의 통신 매체들은 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는 다른 장비를 포함할 수도 있다.
다른 예에 있어서, 채널 (16) 은, 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오 데이터를 저장하는 저장 매체를 포함할 수도 있다. 이 예에 있어서, 목적지 디바이스 (14) 는 예를 들어, 디스크 액세스 또는 카드 액세스를 통해 저장 매체에 액세스할 수도 있다. 저장 매체는 블루-레이 디스크들, DVD들, CD-ROM들, 플래시 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 적합한 디지털 저장 매체들과 같은 다양한 국부적으로 액세스된 데이터 저장 매체들을 포함할 수도 있다.
추가의 예에 있어서, 채널 (16) 은, 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오 데이터를 저장하는 파일 서버 또는 다른 중간 저장 디바이스를 포함할 수도 있다. 이 예에 있어서, 목적지 디바이스 (14) 는 파일 서버 또는 다른 중간 저장 디바이스에 저장된 인코딩된 비디오 데이터에 스트리밍 또는 다운로드를 통해 액세스할 수도 있다. 파일 서버는, 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 송신하는 것이 가능한 타입의 서버일 수도 있다. 예시적인 파일 서버들은 웹 서버들 (예를 들어, 웹 사이트용), 파일 전송 프로토콜 (FTP) 서버들, 네트워크 어태치형 저장 (NAS) 디바이스들, 및 로컬 디스크 드라이브들을 포함한다.
목적지 디바이스 (14) 는 인코딩된 비디오 데이터에 인터넷 커넥션과 같은 표준 데이터 커넥션을 통해 액세스할 수도 있다. 예시적인 타입들의 데이터 커넥션들은 파일 서버 상에 저장되는 인코딩된 비디오 데이터에 액세스하기에 적합한 무선 채널들 (예를 들어, Wi-Fi 커넥션들), 유선 커넥션들 (예를 들어, DSL, 케이블 모뎀 등), 또는 이들 양자 모두의 조합들을 포함할 수도 있다. 인코딩된 비디오 데이터의 파일 서버로부터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이들 양자 모두의 조합일 수도 있다.
본 개시의 기법들은 무선 어플리케이션들 또는 설정들로 한정되지 않는다. 그 기법들은, 공중 경유 (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 예를 들어, 인터넷을 통한 스트리밍 비디오 송신들, 데이터 저장 매체 상의 저장을 위한 비디오 데이터의 인코딩, 데이터 저장 매체 상에 저장된 비디오 데이터의 디코딩, 또는 다른 어플리케이션들과 같은 다양한 멀티미디어 어플리케이션들의 지원으로 비디오 코딩에 적용될 수도 있다. 일부 예들에 있어서, 비디오 코딩 시스템 (10) 은 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 비디오 전화와 같은 어플리케이션들을 지원하기 위해 일방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.
도 1 에 도시된 비디오 코딩 시스템 (10) 은 단지 일 예일 뿐이고, 본 개시의 기법들은, 인코딩 디바이스와 디코딩 디바이스 간의 임의의 데이터 통신을 반드시 포함하지는 않는 비디오 코딩 설정들 (예를 들어, 비디오 인코딩 또는 비디오 디코딩) 에 적용할 수도 있다. 일부 예들에 있어서, 데이터는 로컬 메모리로부터 취출되거나 네트워크 상으로 스트리밍되는 등등이다. 비디오 인코딩 디바이스는 데이터를 인코딩하고 메모리에 저장할 수도 있고/있거나 비디오 디코딩 디바이스는 데이터를 메모리로부터 취출하고 디코딩할 수도 있다. 다수의 예들에 있어서, 인코딩 및 디코딩은, 서로 통신하지 않지만 단순히 데이터를 메모리로 인코딩하고/하거나 데이터를 메모리로부터 취출하고 디코딩하는 디바이스들에 의해 수행된다.
도 1 의 예에 있어서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 및 출력 인터페이스 (22) 를 포함한다. 일부 예들에 있어서, 출력 인터페이스 (22) 는 변조기/복조기 (모뎀) 및/또는 송신기를 포함할 수도 있다. 비디오 소스 (18) 는 비디오 캡쳐 디바이스 (예를 들어, 비디오 카메라), 이전에 캡쳐된 비디오 데이터를 포함하는 비디오 아카이브, 비디오 컨텐츠 제공자로부터 비디오 데이터를 수신하기 위한 비디오 피드 인터페이스, 및/또는 비디오 데이터를 생성하기 위한 컴퓨터 그래픽스 시스템, 또는 비디오 데이터의 그러한 소스들의 조합을 포함할 수도 있다.
비디오 인코더 (20) 는 비디오 소스 (18) 로부터의 비디오 데이터를 인코딩할 수도 있다. 일부 예들에 있어서, 소스 디바이스 (12) 는 인코딩된 비디오 데이터를 출력 인터페이스 (22) 를 통해 목적지 디바이스 (14) 로 직접 송신한다. 다른 예들에 있어서, 인코딩된 비디오 데이터는 또한, 디코딩 및/또는 플레이백을 위한 목적지 디바이스 (14) 에 의한 나중의 액세스를 위해 저장 매체 또는 파일 서버 상에 저장될 수도 있다.
도 1 의 예에 있어서, 목적지 디바이스 (14) 는 입력 인터페이스 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 일부 예들에 있어서, 입력 인터페이스 (28) 는 수신기 및/또는 모뎀을 포함한다. 입력 인터페이스 (28) 는 인코딩된 비디오 데이터를 채널 (16) 상으로 수신할 수도 있다. 디스플레이 디바이스 (32) 는 목적지 디바이스 (14) 와 통합될 수도 있거나 또는 그 외부에 있을 수도 있다. 일반적으로, 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 디스플레이한다. 디스플레이 디바이스 (32) 는 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 타입의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들을 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 주문형 집적회로들 (ASIC들), 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 이산 로직, 하드웨어, 또는 이들의 임의의 조합들과 같은 다양한 적합한 회로부 중 임의의 회로부로서 구현될 수도 있다. 기법들이 부분적으로 소프트웨어에서 구현되면, 디바이스는 적합한 비-일시적인 컴퓨터 판독가능 저장 매체에 소프트웨어에 대한 명령들을 저장할 수도 있으며, 본 개시의 기법들을 수행하기 위해 하나 이상의 프로세서들을 사용하여 하드웨어에서 명령들을 실행할 수도 있다. (하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함한) 임의의 전술한 바는 하나 이상의 프로세서들인 것으로 고려될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 이들 중 어느 하나는 개별 디바이스에 있어서 결합된 인코더/디코더 (CODEC) 의 부분으로서 통합될 수도 있다.
본 개시는 일반적으로 특정 정보를, 비디오 디코더 (30) 와 같은 다른 디바이스로 "시그널링" 또는 "송신"하는 비디오 인코더 (20) 를 언급할 수도 있다. 용어 "시그널링" 또는 "송신" 은 일반적으로, 압축된 비디오 데이터를 디코딩하는데 사용되는 다른 데이터 및/또는 신택스 엘리먼트들의 통신을 지칭할 수도 있다. 그러한 통신은 실시간 또는 준-실시간으로 발생할 수도 있다. 대안적으로, 그러한 통신은, 신택스 엘리먼트들을 인코딩 시 인코딩된 비트스트림으로 컴퓨터 판독가능 저장 매체에 저장할 경우 (그 후, 이 매체에 저장된 이후 임의의 시간에서 디코딩 디바이스에 의해 취출될 수도 있음) 에 발생할 수도 있는 것과 같이, 시간 범위에 걸쳐 발생할 수도 있다.
일부 예들에 있어서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 비디오 압축 표준에 따라 동작한다. 비디오 코딩 표준들의 예들은, 그 스케일러블 비디오 코딩 (SVC) 및 멀티-뷰 비디오 코딩 (MVC) 확장들을 포함하여, ITU-T H.261, ISO/IEC MPEG-1 비주얼, ITU-T H.262 또는 ISO/IEC MPEG-2 비주얼, ITU-T H.263, ISO/IEC MPEG-4 비주얼 및 ITU-T H.264 (ISO/IEC MPEG-4 AVC 로서도 또한 공지됨) 를 포함한다.
부가적으로, 새로운 비디오 코딩 표준, 즉, 고효율 비디오 코딩 (HEVC) 은 ITU-T 비디오 코딩 전문가 그룹 (VCEG) 및 ISO/IEC 모션 픽처 전문가 그룹 (MPEG) 의 JCT-VC (Joint Collaboration Team on Video Coding) 에 의해 최근 개발되었다. 최신의 HEVC 드래프트 사양 (및, 이하 HEVC WD 로서 지칭됨) 는 Wang 등의 "High Efficiency Video Coding (HEVC) Defect Report", ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11 의 JCT-VC (Joint Collaborative Team on Video Coding), 제14차 회의: 비엔나, AT, 2013년 7월 25일-8월 2일이고, http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zip 으로부터 입수가능하다. HEVC 및 포맷 범위 (RExt), 스케일러빌리티 (SHVC), 및 멀티-뷰 (MV-HEVC) 확장들을 포함한 그 확장들의 사양은 Boyce 등의 "Draft high efficiency video coding (HEVC) version 2, combined format range extensions (RExt), scalability (SHVC), and multi-view (MV-HEVC) extentions", ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11 의 JCT-VC (Joint Collaborative Team on Video Coding), 제14차 회의: 비엔나, AT, 2014년 6월 30일-7월 9일이고, http://phenix.int-evry.fr/jct/doc_end_user/documents/18_Sapporo/wg11/JCTVC-R1013-v6.zip 으로부터 입수가능하다.
비디오 코딩은 컬러 공간 및 컬러 포맷에 기초하여 수행될 수도 있다. 예를 들어, 컬러 비디오는 멀티미디어 시스템들에서 필수적인 역할을 하며, 여기서, 다양한 컬러 공간들은 컬러를 효율적으로 나타내기 위해 사용된다. 컬러 공간은 다중의 컴포넌트들을 사용한 수치 값들로 컬러를 명시한다. 대중적인 컬러 공간은 RGB 컬러 공간이며, 여기서, 컬러는 3원색 컴포넌트 값들 (즉, 적색, 녹색 및 청색) 의 조합으로서 표현된다. 컬러 비디오 압축을 위해, A.Ford 및 A.Roberts, “Colour space conversions,” University of Westminster, London, Tech.Rep., 1998년 8월에서 설명된 바와 같은 YCbCr 컬러 공간이 널리 이용되었다.
YCbCr 은 RGB 컬러 공간으로부터 선형 변환을 통해 용이하게 변환될 수 있고, 상이한 컴포넌트들 간의 리던던시, 즉, 크로스 컴포넌트 리던던시는 YCbCr 컬러 공간에서 현저히 감소된다. YCbCr 의 하나의 이점은, Y 신호가 루미넌스 정보를 전달할 때 흑백 TV 와의 역방향 호환성이다. 부가적으로, 크로미넌스 대역폭은, RGB 에서의 서브샘플링보다 현저하게 더 적은 주관적 임팩트를 갖는 4:2:0 크로마 샘플링 포맷에서 Cb 및 Cr 컴포넌트들을 서브샘플링함으로써 감소될 수 있다. 이들 이점들 때문에, YCbCr 은 비디오 압축에 있어서 주요 컬러 공간이 되었다. 비디오 압축에 있어서 사용되는 YCoCg 와 같은 다른 컬러 공간이 또한 존재한다. 본 개시에 있어서, 사용된 실제 컬러 공간에 무관하게, 비디오 압축 스킴에 있어서 3개의 컬러 컴포넌트들을 나타내기 위해 Y, Cb, Cr 이 사용된다.
4:2:0 샘플링에 있어서, 2개의 크로마 어레이들 각각은 루마 어레이의 절반 높이 및 절반 폭을 갖는다. 픽처들에 있어서 루마 및 크로마 샘플들의 공칭 수직 및 수평 상대 위치들이 도 4 에 도시된다.
HEVC 및 다른 비디오 코딩 표준들에 있어서, 비디오 시퀀스는 통상적으로 픽처들의 시리즈를 포함한다. 픽처들은 또한 "프레임들" 로서 지칭될 수도 있다. 픽처는 SL, SCb, 및 SCr 로 표기되는 3개의 샘플 어레이들을 포함할 수도 있다. SL 은 루마 샘플들의 2차원 어레이 (즉, 블록) 이다. SCb 는 Cb 크로미넌스 샘플들의 2차원 어레이이다. SCr 는 Cr 크로미넌스 샘플들의 2차원 어레이이다. 크로미넌스 샘플들은 또한, 본 명세서에서 "크로마" 샘플들로서 지칭될 수도 있다. 다른 예들에 있어서, 픽처는 단색일 수도 있으며 오직 루마 샘플들의 어레이만을 포함할 수도 있다.
픽처의 인코딩된 표현을 생성하기 위해, 비디오 인코더 (20) 는 코딩 트리 유닛들 (CTU들) 의 세트를 생성할 수도 있다. CTU들 각각은 루마 샘플들의 코딩 트리 블록, 크로마 샘플들의 2개의 대응하는 코딩 트리 블록들, 및 코딩 트리 블록들의 샘플들을 코딩하는데 사용된 신택스 구조들일 수도 있다. 코딩 트리 블록은 샘플들의 NxN 블록일 수도 있다. CTU 는 또한 "트리 블록" 또는 "최대 코딩 유닛" (LCU) 로서 지칭될 수도 있다. HEVC 의 CTU들은 H.264/AVC 와 같은 다른 표준들의 매크로블록들과 대체로 유사할 수도 있다. 하지만, CTU 는 반드시 특정 사이즈로 한정되지는 않으며, 하나 이상의 코딩 유닛들 (CU들) 을 포함할 수도 있다. 슬라이스는 래스터 스캔에 있어서 연속적으로 순서화된 정수 개수의 CTU들을 포함할 수도 있다.
코딩된 CTU 를 생성하기 위해, 비디오 인코더 (20) 는 CTU 의 코딩 트리 블록들에 대해 쿼드 트리 파티셔닝을 재귀적으로 수행하여, 코딩 트리 블록들을 코딩 블록들로 분할할 수도 있다. 코딩 블록은 샘플들의 NxN 블록이다. CU 는 루마 샘플 어레이, Cb 샘플 어레이, 및 Cr 샘플 어레이를 갖는 픽처의 루마 샘플들의 코딩 블록 및 크로마 샘플들의 2개의 대응하는 코딩 블록들, 그리고 코딩 블록들의 샘플들을 코딩하는데 사용된 신택스 구조들일 수도 있다. 비디오 인코더 (20) 는 CU 의 코딩 블록을 하나 이상의 예측 블록들로 파티셔닝할 수도 있다. 예측 블록은, 동일한 예측이 적용되는 샘플들의 직사각형 (즉, 정사각형 또는 비-정사각형) 블록일 수도 있다. CU 의 예측 유닛 (PU) 은 루마 샘플들의 예측 블록, 픽처의 크로마 샘플들의 2개의 대응하는 예측 블록들, 및 예측 블록 샘플들을 예측하는데 사용된 신택스 구조들일 수도 있다. 비디오 인코더 (20) 는 CU 의 각각의 PU 의 루마, Cb 및 Cr 예측 블록들에 대한 예측 루마, Cb, 및 Cr 블록들을 생성할 수도 있다.
비디오 인코더 (20) 는, 몇몇 예들로서, 인트라 예측, 인터 예측, 또는 선형 모델 (LM) 예측을 이용하여 PU 에 대한 예측 블록들을 생성 (예를 들어, 결정) 할 수도 있다. 비디오 인코더 (20) 가 인트라 예측을 이용하여 PU 의 예측 블록들을 생성하면, 비디오 인코더 (20) 는 PU 와 연관된 픽처의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다.
비디오 인코더 (20) 가 인터 예측을 이용하여 PU 의 예측 블록들을 생성 (예를 들어, 결정) 하면, 비디오 인코더 (20) 는 PU 와 연관된 픽처 이외의 하나 이상의 픽처들의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다. 비디오 인코더 (20) 는 단방향 예측 또는 양방향 예측을 이용하여 PU 의 예측 블록들을 생성할 수도 있다. 비디오 인코더 (20) 가 단방향 예측을 이용하여 PU 에 대한 예측 블록들을 생성할 경우, PU 는 단일의 모션 벡터 (MV) 를 가질 수도 있다. 비디오 인코더 (20) 가 양방향 예측을 이용하여 PU 에 대한 예측 블록들을 생성할 경우, PU 는 2개의 MV들을 가질 수도 있다.
비디오 인코더 (20) 가 CU 의 하나 이상의 PU들에 대한 예측 루마, Cb, 및 Cr 블록들을 생성한 후, 비디오 인코더 (20) 는 CU 에 대한 루마 잔차 블록을 생성할 수도 있다. CU 의 루마 잔차 블록에서의 각각의 샘플은 CU 의 예측 루마 블록들 중 하나에서의 루마 샘플과 CU 의 오리지널 루마 코딩 블록에서의 대응하는 샘플 간의 차이를 나타낸다. 부가적으로, 비디오 인코더 (20) 는 CU 에 대한 Cb 잔차 블록을 생성할 수도 있다. CU 의 Cb 잔차 블록에서의 각각의 샘플은 CU 의 예측 Cb 블록들 중 하나에서의 Cb 샘플과 CU 의 오리지널 Cb 코딩 블록에서의 대응하는 샘플 간의 차이를 나타낼 수도 있다. 비디오 인코더 (20) 는 또한, CU 에 대한 Cr 잔차 블록을 생성할 수도 있다. CU 의 Cr 잔차 블록에서의 각각의 샘플은 CU 의 예측 Cr 블록들 중 하나에서의 Cr 샘플과 CU 의 오리지널 Cr 코딩 블록에서의 대응하는 샘플 간의 차이를 나타낼 수도 있다.
일부 예들에 있어서, 크로마 블록에 대해, 인트라- 또는 인터-예측을 위한 예측 블록을 결정하는 것보다는, 비디오 인코더 (20) 는 예측 블록을, LM 예측 모드에 대해 복원된 대응하는 루마 블록에 기초하여 결정할 수도 있다. 비디오 디코더 (30) 는, 유사하게, 예측 블록을, 복원된 대응하는 루마 블록에 기초하여 결정할 수도 있다. 대응하는 루마 블록은, 현재의 크로마 블록이 결정되었던 유닛 (예를 들어, 코딩 유닛 또는 예측 유닛) 의 부분이었던 루마 블록을 지칭한다. 비디오 인코더 (20) 는 크로마 블록과, 복원된 대응하는 루마 블록으로부터 생성된 이러한 예측 블록과의 사이의 잔차를 결정할 수도 있다.
더욱이, 비디오 인코더 (20) 는 쿼드 트리 파티셔닝을 이용하여, CU 의 루마, Cb, 및 Cr 잔차 블록들을 하나 이상의 루마, Cb, 및 Cr 변환 블록들로 분해할 수도 있다. 변환 블록은, 동일한 변환이 적용되는 샘플들의 직사각형 블록일 수도 있다. CU 의 변환 유닛 (TU) 은 루마 샘플들의 변환 블록, 크로마 샘플들의 2개의 대응하는 변환 블록들, 및 변환 블록 샘플들을 변환하는데 사용된 신택스 구조들일 수도 있다. 따라서, CU 의 각각의 TU 는 루마 변환 블록, Cb 변환 블록, 및 Cr 변환 블록과 연관될 수도 있다. TU 와 연관된 루마 변환 블록은 CU 의 루마 잔차 블록의 서브-블록일 수도 있다. Cb 변환 블록은 CU 의 Cb 잔차 블록의 서브-블록일 수도 있다. Cr 변환 블록은 CU 의 Cr 잔차 블록의 서브-블록일 수도 있다.
비디오 인코더 (20) 는 TU 의 루마 변환 블록에 하나 이상의 변환들을 적용하여 TU 에 대한 루마 계수 블록을 생성할 수도 있다. 계수 블록은 변환 계수들의 2차원 어레이일 수도 있다. 변환 계수는 스칼라량일 수도 있다. 비디오 인코더 (20) 는 TU 의 Cb 변환 블록에 하나 이상의 변환들을 적용하여 TU 에 대한 Cb 계수 블록을 생성할 수도 있다. 비디오 인코더 (20) 는 TU 의 Cr 변환 블록에 하나 이상의 변환들을 적용하여 TU 에 대한 Cr 계수 블록을 생성할 수도 있다.
계수 블록 (예를 들어, 루마 계수 블록, Cb 계수 블록 또는 Cr 계수 블록) 을 생성한 후, 비디오 인코더 (20) 는 계수 블록을 양자화할 수도 있다. 양자화는 일반적으로, 변환 계수들이 그 변환 계수들을 나타내는데 사용되는 데이터의 양을 가능하게는 감소시키도록 양자화되어 추가 압축을 제공하는 프로세스를 지칭한다. 비디오 인코더 (20) 가 계수 블록을 양자화한 후, 비디오 인코더 (20) 는 양자화된 변환 계수들을 나타내는 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 양자화된 변환 계수들을 나타내는 신택스 엘리먼트들에 대해 컨텍스트-적응형 바이너리 산술 코딩 (CABAC) 을 수행할 수도 있다. 비디오 인코더 (20) 는 엔트로피 인코딩된 신택스 엘리먼트를 비트스트림으로 출력할 수도 있다.
비디오 인코더 (20) 는, 엔트로피 인코딩된 신택스 엘리먼트들을 포함하는 비트스트림을 출력할 수도 있다. 비트스트림은 비디오 데이터의 인코딩된 표현을 포함할 수도 있다. 예를 들어, 비트스트림은 코딩된 픽처들 및 관련 데이터의 표현을 형성하는 비트들의 시퀀스를 포함할 수도 있다. 비트스트림은 네트워크 추상화 계층 (NAL) 유닛들의 시퀀스를 포함할 수도 있다. NAL 유닛들 각각은 NAL 유닛 헤더를 포함하고 원시 바이트 시퀀스 페이로드 (RBSP) 를 캡슐화한다. NAL 유닛 헤더는, NAL 유닛 타입 코드를 나타내는 신택스 엘리먼트를 포함할 수도 있다. NAL 유닛의 NAL 유닛 헤더에 의해 명시된 NAL 유닛 타입 코드는 NAL 유닛의 타입을 나타낸다. RBSP 는, NAL 유닛 내에서 캡슐화되는 정수 개수의 바이트들을 포함하는 신택스 구조일 수도 있다. 일부 예들에 있어서, RBSP 는 제로 비트들을 포함한다.
상이한 타입들의 NAL 유닛들은 상이한 타입들의 RBSP들을 캡슐화할 수도 있다. 예를 들어, NAL 유닛의 제 1 타입은 시퀀스 파라미터 세트 (SPS) 에 대한 RBSP 를 캡슐화할 수도 있고, NAL 유닛의 제 2 타입은 픽처 파라미터 세트 (PPS) 에 대한 RBSP 를 캡슐화할 수도 있고, NAL 유닛의 제 3 타입은 코딩된 슬라이스에 대한 RBSP 를 캡슐화할 수도 있으며, NAL 유닛의 제 4 타입은 SEI 에 대한 RBSP 를 캡슐화할 수도 있는 등등이다. (파라미터 세트들 및 SEI 메시지들에 대한 RBSP들과 대조적으로) 비디오 코딩 데이터에 대한 RBSP들을 캡슐화하는 NAL 유닛들은 비디오 코딩 계층 (VCL) NAL 유닛들로서 지칭될 수도 있다.
비디오 디코더 (30) 는 비디오 인코더 (20) 에 의해 생성된 비트스트림을 수신할 수도 있다. 부가적으로, 비디오 디코더 (30) 는 비트스트림을 파싱하여, 비트스트림으로부터 신택스 엘리먼트들을 디코딩할 수도 있다. 비디오 디코더 (30) 는 비트스트림으로부터 디코딩된 신택스 엘리먼트들에 적어도 부분적으로 기초하여 비디오 데이터의 픽처들을 복원할 수도 있다. 비디오 데이터를 복원하기 위한 프로세스는 일반적으로, 비디오 인코더 (20) 에 의해 수행된 프로세스에 역일 수도 있다. 예를 들어, 비디오 디코더 (30) 는 PU들의 MV들을 이용하여 현재 CU 의 PU들에 대한 예측 블록들을 결정할 수도 있다. 다른 예로서, LM 예측 모드에 대해, 비디오 디코더 (30) 는 크로마 블록에 대한 예측 블록을, 대응하는 루마 블록의 복원된 샘플들에 기초하여 결정할 수도 있다. 부가적으로, 비디오 디코더 (30) 는 현재 CU 의 TU들과 연관된 변환 계수 블록들을 역양자화할 수도 있다. 비디오 디코더 (30) 는 변환 계수 블록들에 대해 역변환들을 수행하여 현재 CU 의 TU들과 연관된 변환 블록들을 복원할 수도 있다.
비디오 디코더 (30) 는 현재 CU 의 PU들에 대한 예측 블록들의 샘플들을, 현재 CU 의 TU들의 변환 블록들의 대응하는 샘플들에 부가함으로써, 현재 CU 의 코딩 블록들을 복원할 수도 있다. 픽처의 각각의 CU 에 대한 코딩 블록들을 복원함으로써, 비디오 디코더 (30) 는 픽처를 복원할 수도 있다.
일부 예들에 있어서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 선형 모델 (LM) 기반 코딩을 수행하도록 구성될 수도 있다. 다음은 LM 기반 예측 코딩의 설명이다. 예를 들어, 비록 크로스 컴포넌트 리던던시가 YCbCr 컬러 공간에서 현저히 감소되더라도, 3개 컬러 컴포넌트들 간의 상관은 여전히 존재한다. 상관을 추가로 감소함으로써 비디오 코딩 성능을 개선하기 위해, 다양한 방법들이 연구되었다.
4:2:0 크로마 비디오 코딩에 있어서, 선형 모델 (LM) 예측 모드로 명명된 방법이 HEVC 표준의 개발 동안 잘 연구되었다. http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=2196 으로부터 입수가능하고 이하 JCTVC-E266 으로서 지칭되는, J.Chen, V.Seregin, W.-J.Han, J.-S.Kim, B.-M.Joen, "CE6.a.4: Chroma intra prediction by reconstructed luma samples", ITU-T SG16 WP3 및 ISO/IEC JTC1/SC29/WG11 의 JCT-VC (Joint Collaborative Team on Video Coding), 제5차 회의: 제네바, 2011년 3월 16일-23일을 참고한다.
LM 예측 모드에 있어서, 크로마 샘플들은 다음과 같은 선형 모델을 사용함으로써 동일한 블록의 복원된 루마 샘플들에 기초하여 예측된다:
Figure pct00001
여기서, predc(i,j) 는 블록에서의 크로마 샘플들의 예측을 나타내고, recL(i,j) 은 동일한 블록의 다운샘플링된 복원된 루마 샘플들을 나타낸다. 파라미터들
Figure pct00002
및 β 는 현재 블록 주변의 코절 (causal) 복원된 샘플들로부터 도출된다. 크로마 블록 사이즈가 NxN 에 의해 표기되면, i 및 j 양자 모두는 범위 [0, N) 이내이다.
수학식 (1) 에서의 파라미터들
Figure pct00003
및 β 는 현재 블록 주변의 이웃한 복원된 루마 및 크로마 샘플들 간의 회귀 (regression) 에러를 최소화함으로써 도출된다.
Figure pct00004
그리고 파라미터들
Figure pct00005
및 β 는 다음과 같이 풀린다.
Figure pct00006
여기서, xi 는 다운샘플링된 복원된 루마 레퍼런스 샘플들이고, yi 는 복원된 크로마 레퍼런스 샘플들이고, I 는 레퍼런스 샘플들의 양이다. 타깃 N×N 크로마 블록에 대해, 좌측 및 상부 양자의 코절 샘플들이 이용가능할 경우, 총 관련된 샘플들의 수 (I) 는 2N 과 동일하고; 오직 좌측 또는 상부만의 코절 샘플들이 이용가능할 경우, 총 관련된 샘플들의 수 (I) 는 N 과 동일하다.
도 5 는 다운샘플링된 복원된 루마 블록의 샘플들을 스케일링하기 위해 사용된 스케일링 파라미터들이 도출되는 예시적인 위치들을 도시한 개념 다이어그램이다. 예를 들어, 도 5 는 4:2:0 샘플링의 일 예를 도시하고, 스케일링 파라미터들은
Figure pct00007
및 β 이다.
일반적으로, LM 예측 모드가 적용될 경우, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 다음의 단계들을 호출할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 이웃 루마 샘플들을 다운샘플링할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 선형 파라미터들 (즉,
Figure pct00008
및 β) (스케일링 파라미터들로서도 또한 지칭됨) 을 도출할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 현재 루마 블록을 다운샘플링하고, 다운샘플링된 루마 블록 및 선형 파라미터들 (즉, 스케일링 파라미터들) 로부터 예측 (예를 들어, 예측 블록) 을 도출할 수도 있다.
다운샘플링하기 위한 다양한 방식들이 존재할 수도 있다. 다음은, 다운샘플링이 수행될 수도 있는 예시적인 방식들을 설명한다.
JCTVC-E266 에 있어서, 상기 설명된 바와 같이, LM 예측 모드를 수행할 경우, 다운샘플링된 현재 루마 블록 및 다운샘플링된 이웃 루마 블록이 요구된다. 다운샘플링된 현재 루마 블록은 크로마 코딩을 위한 예측 블록을 도출하기 위해 사용되는 한편, 다운샘플링된 이웃 루마 블록은 파라미터들 (즉,
Figure pct00009
및 β) 의 도출을 위해 사용된다.
크로마 컴포넌트들의 통상적인 샘플링 비율이 루마 컴포넌트의 샘플링 비율의 절반이고 4:2:0 샘플링에 있어서 수직 방향으로 0.5 샘플 위상차를 갖기 때문에, 현재 블록의 복원된 루마는, 다음과 같이, 크로마 신호의 사이즈 및 위상에 매칭하기 위해 수직 방향으로 다운샘플링되고 수평 방향으로 서브샘플링된다:
Figure pct00010
여기서, RecLOrig[] 는 오리지널 복원된 루마 샘플을 나타낸다.
도 6 은 예측 블록을 생성하기 위한 루마 블록의 다운샘플링 샘플들에 대한 루마 포지션들 및 크로마 포지션들의 일 예를 도시한 개념 다이어그램이다. 도 6 에 도시된 바와 같이, 채워진 삼각형에 의해 표현된 크로마 샘플은, [1, 1] 필터를 적용함으로써, 2개의 채워진 원들에 의해 표현된 2개의 루마 샘플들로부터 예측된다. [1, 1] 필터는 2-탭 필터의 일 예이다. 즉, 복원된 루마 블록을 다운샘플링하기 위해, 수학식 (5) 는, 일 탭인 Re cLOrig[2i, 2j] 및 다른 탭인 Re cLOrig[2i, 2j+1] 에 의해 표현된 바와 같은 내장형 [1, 1] 2-탭 필터를 포함한다. 필터의 탭은 다운샘플링을 위해 사용된 입력 샘플들의 값을 나타내며, 수학식 (5) 에서, 복원된 루마 블록으로부터의 2개 값들은 함께 가산되고 우측-시프트되어, 다운샘플링된 루마 블록을 생성한다. 이에 따라, 일 예로서, 비디오 인코더 (20) 또는 비디오 디코더 (30) 는 수학식 (5) 의 연산들을 수행하여 다운샘플링된 루마 블록을 결정할 수도 있다.
이웃 루마 블록의 다운샘플링을 위해, 이웃 샘플들이 현재 루마 블록의 상부에 있을 경우, 다운샘플링 프로세스는 다음과 같이 정의된다:
Figure pct00011
이웃 샘플들이 현재 루마 블록의 좌측에 있을 경우, 다운샘플링 프로세스는 다음과 같이 정의된다:
Figure pct00012
2-탭 필터, 즉, [1, 1] 필터는 도 6 에 도시된 예에서 사용되었던 것과 동일할 수도 있다. 이에 따라, 일 예로서, 비디오 인코더 (20) 또는 비디오 디코더 (30) 는 수학식들 (6) 및 (7) 의 연산들을 수행하여 루마 블록에 이웃한 다운샘플링된 이웃 루마 블록들을 결정할 수도 있다.
다른 다운샘플링 기법들이 또한 제안되었다. http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=2979 로부터 입수가능하고 JCTVC-F502 로서 지칭되는 Yi-Jen Chiu, Yu Han, Lidong Xu, Wenhao Zhang, Hong Jiang, “Cross-channel techniques to improve intra chroma prediction”, ITU-T SG16 WP3 및 ISO/IEC JTC1/SC29/WG11 의 JCT-VC (Joint Collaborative Team on Video Coding), JCTVC-F502, 제6차 회의: 토리노, IT, 2011년 7월 14일-22일에 있어서, 2-탭 필터를 사용하는 대신, 2차원 6-탭 필터링이 현재 루마 블록 및 이웃 루마 블록 양자 모두에 적용된다. 2차원 필터 계수 세트는
Figure pct00013
이다.
다운샘플링된 루마 샘플들은 수학식 (9):
Figure pct00014
에 의해 도출된다.
예를 들어, 비디오 인코더 (20) 또는 비디오 디코더 (30) 는 수학식 (9) 의 연산들을 수행하여 다운샘플링된 루마 블록을 결정할 수도 있다. 수학식 (9) 는, 6개 입력 샘플들로서 Re cLOrig[2i, 2j], Re cLOrig[2i, 2j+1], Re cLOrig[2i, 2j-1], Re cLOrig[2i+1, 2j], Re cLOrig[2i+1, 2j+1], 및 Re cLOrig[2i+1, 2j-1] 을 갖는 [1, 2, 1; 1, 2, 1] 에 의해 표현된 바와 같은 내장형 6-탭 필터를 포함한다. 필터의 탭은 다운샘플링을 위해 사용된 입력 샘플들의 수를 나타내며, 수학식 (9) 에서, 복원된 루마 블록으로부터의 6개 값들은 다운샘플링된 루마 블록을 생성하기 위해 사용된다.
도 7 은 예측 블록을 생성하기 위한 루마 블록의 다운샘플링 샘플들에 대한 루마 포지션들 및 크로마 포지션들의 다른 예를 도시한 개념 다이어그램이다. 도 7 에 도시된 바와 같이, 채워진 삼각형에 의해 표현된 크로마 샘플은, 6-탭 필터를 적용함으로써, 6개의 채워진 원들에 의해 표현된 6개의 루마 샘플들로부터 예측된다.
하나의 크로마 샘플의 예측자가 수학식 (1) 에서 정의된 바와 같은 선형 함수를 이용하여 도출되기 때문에, 6-탭 필터가 적용될 경우, 하나의 크로마 샘플의 예측자는 6개의 이웃 루마 샘플들에 의존함을 알 수 있다. 수학식들 (1) 과 (9) 를 조합할 경우, 그 결과는 다음의 수학식 (10):
Figure pct00015
이다.
다음의 텍스트에 있어서, 다운샘플링된 샘플 recL(i, j) 은 (i, j) 에 위치된 크로마 샘플에 대한 대응하는 다운샘플링된 루마 샘플로서 명명된다. 예를 들어, 4:2:0 샘플링 때문에, 2Nx2N 루마 블록은 NxN 크로마 블록에 대응한다. 다운샘플링으로, 2Nx2N 루마 블록들은 NxN 다운샘플링된 루마 블록이 된다. 이 NxN 다운샘플링된 루마 블록은 recL(i, j) 로서 지칭되고, NxN 크로마 블록에 대응한다.
더욱이, 비록 상기 예들이 4:2:0 샘플링에 관하여 설명되더라도, 본 개시에서 설명된 기법들은 이에 한정되지 않는다. 예를 들어, 본 개시에서 설명된 기법들은 또한 4:2:2 샘플링에도 적용가능할 수도 있다. 이에 따라, 4:2:0 에 관한 예들은 단지 이해를 돕기 위한 방식으로서 제공될 뿐이다.
더욱이, 일부 예들에 있어서, 본 개시에서 설명된 기법들은 4:4:4 샘플링에도 물론 적용가능할 수도 있다. 예를 들어, 4:4:4 샘플링에 있어서, 크로마 블록은 루마 블록에 대해 서브샘플링되지 않는다. 하지만, 그러한 예들에서도 물론 크로마 블록에 대한 예측 블록을 결정하는 것이 가능할 수도 있다. 예를 들어, 루마 블록은 필터링될 수도 있고, 필터링된 블록이 크로마 블록에 대한 예측 블록으로서 사용될 수도 있다. 이들 예들에 있어서, 루마 블록의 다운샘플링은 필요하지 않을 수도 있다. 더 상세히 설명된 바와 같이, 예시적인 기법들은 크로마 블록의 위치에 기초하여 루마 블록의 샘플들에 적용된 필터의 선택을 설명한다. 루마 블록의 샘플들에 적용된 필터를 선택하기 위한 기법들은 4:4:4 샘플링을 위한 것 같이 LM 예측을 위해 다운샘플링이 필요없는 예들로 확장될 수도 있다. 그러한 예들에 있어서, 필터는, 4:4:4 샘플링이 보존되도록 어떠한 다운샘플링도 포함하지 않을 수도 있다. 이에 따라, 4:2:0 샘플링에 대한 설명은 일 예이고, 그 기법들은 4:4:4 샘플링에도 물론 적용가능하다.
더욱이, HEVC 에 있어서, 픽처를 타일들로 지칭되는 직사각형 영역들로 파티셔닝하기 위한 옵션이 명시되었다. 타일들의 주 목적은 에러 내성을 제공하는 것보다는 병렬 프로세싱을 위한 능력을 증가시키는 것이다. 타일들은, 일부 공유된 헤더 정보로 인코딩되는 픽처의 독립적으로 디코딩가능한 영역들이다. 타일들은, 부가적으로, 비디오 픽처들의 로컬 영역들로의 공간 랜덤 액세스의 목적으로 사용될 수 있다. 픽처의 통상적인 타일 구성은 픽처를, 각각의 타일에서 대략적으로 동일한 수들의 CTU들을 갖는 직사각형 영역들로 세그먼트화하는 것으로 이루어진다. 타일들은 더 조악한 레벨의 입도 (픽처/서브픽처) 에서의 병렬성을 제공하고, 스레드들의 복잡한 동기화는 그 이용을 위해 필요하지 않다.
LM 예측 모드를 위한 기법들의 특정 이슈들/문제들이 존재할 수도 있다. 예를 들어, LM 예측 모드에서 호출되는 다운샘플링 프로세스는 코딩 성능 개선을 위해 중요하다. 하지만, 2-탭 필터 및 6-탭 필터들과 같은 고정된 필터들은 코딩 성능을 제한한다. 하나의 픽처 내의 상이한 시퀀스들 또는 영역들은 상이한 특성들을 가질 수도 있고, 모든 픽처들에 적용된 동일한 필터는 준최적일 수도 있다. LM 예측 모드에서 사용되는 복원된 루마 샘플들이 상이한 타일에 위치될 경우, 이러한 경우를 핸들링하는 방법은 알려지지 않았다.
상기 언급된 문제들을 해결하기 위해, 본 개시는 다음의 기법들을 설명한다. 그 기법들은 개별적으로 적용할 수도 있거나 또는 그 기법들의 임의의 조합이 적용될 수도 있다. 일반적으로, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 이들 예시적인 기법들을, 선형 모델 (LM) 예측 모드에서 크로마 블록을 인코딩하는 것 또는 디코딩하는 것의 부분으로서 수행할 수도 있다. 용이를 위해, 그 기법들은 비디오 코더에 관하여 설명되고, 그 예들은 비디오 인코더 (20) 및 비디오 디코더 (30) 를 포함한다.
예를 들어, 루마 블록을 다운샘플링하기 위해 오직 2-탭 필터 또는 6-탭 필터만을 사용하는 것으로 제한되는 대신, 비디오 코더 (예를 들어, 비디오 인코더 (20) 또는 비디오 디코더 (30)) 는, 루마 블록을 다운샘플링하기 위해 사용되는 필터들의 세트로부터 필터를 결정할 수도 있다. 일 예로서, 비디오 코더가 다운샘플링을 위해 사용할 수 있는 다수(X개)의 상이한 필터들이 존재할 수도 있다. 예를 들어, 1-탭 필터, 2-탭 필터, 3-탭 필터 등이 존재할 수도 있다. 더욱이, 각각의 필터에 대해, 특정 탭들은 상이할 수도 있다 (예를 들어, 제 1 의 2-탭 필터를 위해 사용된 루마 샘플들은 제 2 의 2-탭 필터를 위해 사용된 루마 샘플들과 상이함). 본 개시에서 설명된 예들 중 일부에 있어서, 필터들의 세트는 2개의 필터들을 포함하며; 하지만, 루마 블록을 다운샘플링하기 위해 어느 필터를 적용할지를 비디오 코더가 결정하는 2개 초과의 필터들이 가능하다.
비디오 코더는, 비디오 코더가 적용할 필터를 결정하는 다양한 기준들을 사용할 수도 있다. 일 예로서, 비디오 코더는, 크로마 블록의 위치에 기초하여 필터들의 세트로부터 어느 필터를 적용할지를 결정한다. 크로마 블록이 픽처, CU, PU, 또는 TU 의 좌측 경계와 경계를 이루면 (예를 들어, 픽처, CU, PU, 또는 TU 의 좌측 경계가 크로마 블록 에지와 동일하면), 비디오 코더는, 좌측 경계 상에 있는 크로마 블록의 크로마 샘플들에 대응하는 루마 블록의 루마 샘플들을 다운샘플링하기 위한 제 1 필터를 사용할 수도 있다. 좌측 경계 상에 있는 크로마 블록의 샘플들은, 경계 바로 위에 있는 샘플들을 포함하는 좌측 경계에 가장 가까운 크로마 블록의 샘플들을 지칭한다. 제 1 필터는 경계에 가장 가까운 N개 샘플들 (예를 들어, 경계에 가장 가까운 샘플, 그 샘플 다음의 샘플, 및 N개의 그러한 샘플들) 에 적용될 수도 있다.
일부 경우들에 있어서, 비디오 코더는, 좌측 경계에 이웃하는 크로마 샘플들에 대응하는 단지 그러한 샘플들보다는, 루마 블록의 모든 루마 샘플들에 대해 제 1 필터를 적용할 수도 있으며, 하지만, 본 개시에서 설명된 기법들은 이에 한정되지 않는다. 모든 다른 경우들에 대해, 비디오 코더는 루마 블록을 다운샘플링하기 위한 제 2 의 상이한 필터를 사용할 수도 있다.
예를 들어, 4:2:0 샘플링에 있어서, 4개의 루마 샘플들이 하나의 크로마 샘플에 대응한다. 이에 따라, 비디오 코더는 어느 크로마 샘플이 어느 루마 샘플들에 대응하는지를 결정할 수도 있다. 더 큰 탭을 갖는 필터들이 사용될 경우, 하나의 크로마 샘플이 4 초과의 루마 샘플들에 대응할 수도 있다. 좌측 경계 상의 (바로 인접한 또는 다수의 샘플들 내의) 크로마 샘플에 대응하는 루마 샘플들에 대해, 비디오 코더는 루마 블록을 다운샘플링하기 위해 제 1 필터를 대응하는 루마 샘플들에 적용할 수도 있고, 좌측 경계 상에 있지 않은 (바로 인접하지 않은 또는 다수의 샘플들 내에 있지 않은) 크로마 샘플에 대응하는 루마 샘플들에 대해, 비디오 코더는 루마 블록을 다운샘플링하기 위해 제 2 필터를 대응하는 루마 샘플들에 적용할 수도 있다.
일부 예들에 있어서, 제 1 필터는 제 2 필터보다 더 적은 탭들 (예를 들어, 필터가 확장되는 샘플들의 수) 을 포함할 수도 있다. 일 예로서, 제 1 필터는 2-탭 필터이고 제 2 필터는 6-탭 필터이다. 이 예에 있어서, 비디오 코더는, 크로마 블록의 대응하는 크로마 샘플들이 좌측 경계 상에 있는 경우 수학식 (5) 의 연산들을 수행하여 루마 블록의 다운샘플링된 루마 샘플들을 결정할 수도 있고, 크로마 블록의 대응하는 크로마 샘플들이 좌측 경계 상에 있지 않은 경우 수학식 (9) 의 연산들을 수행하여 루마 블록의 다운샘플링된 루마 샘플들을 결정할 수도 있다. 이에 따라, 크로마 샘플들의 대응하는 다운샘플링된 루마 샘플들의 도출 프로세스 동안, 비디오 코더는, 코딩 유닛 (CU), 예측 유닛 (PU), 또는 변환 유닛 (TU) 의 좌측 경계 또는 좌측 픽처 경계에 있지 않은 크로마 샘플들에 대응하는 루마 블록의 다른 샘플들에 적용된 필터에 비교할 때, CU/PU/TU 의 좌측 경계 또는 좌측 픽처 경계에 위치된 크로마 블록의 크로마 샘플들에 대응하는 루마 블록의 루마 샘플들에 상이한 필터를 적용할 수도 있다. 좌측 경계에 있는 크로마 샘플들은, 좌측 경계에 바로 인접한 또는 좌측 경계로부터 특정 수의 샘플들 내의 크로마 샘플들을 지칭한다.
상이한 필터들을 사용하는 것은 비디오 코더로 하여금 가용 샘플 값들을 적절하게 사용하게 한다. 예를 들어, 픽처, CU, PU, 또는 TU 의 좌측 경계에서의 크로마 샘플들에 대응하는 루마 샘플들에 대해 6-탭 필터를 사용하는 것은 다운샘플링을 위해 루마 블록의 부분이 아닌 루마 샘플 값들을 사용하도록 비디오 코더에게 요구하는 것을 초래할 수도 있고, 비디오 코더로 하여금 루마 샘플들의 부족을 다루기 위해 일부 부가적인 프로세싱 (예를 들어, 루마 블록의 부분이 아닌 샘플들에 대한 값들을 생성하기 위해 루마 샘플 값들을 패딩하는 것) 을 수행해야 할 것을 초래할 수도 있다. 하지만, 좌측 경계에서 2-탭 필터를 사용하는 것은, 다운샘플링을 위해 루마 블록의 부분이 아닌 루마 샘플 값들을 사용하도록 비디오 코더에게 요구하지 않을 수도 있다. 이에 따라, 비록 2-탭 및 6-탭 필터들이 설명되더라도, 루마 블록의 부분이 아닌 루마 샘플들을 요구할 필요성을 회피하는 것 (예를 들어, 좌측 경계 상에 루마 샘플들을 패딩할 필요성을 회피하는 것) 을 고려하여, 다운샘플링을 위한 다른 사이징된 필터들이 가능할 수도 있다.
일 예로서, 크로마 샘플들의 대응하는 다운샘플링된 루마 샘플들의 도출 프로세스 동안, 비디오 코더는, 좌측 픽처 경계에 위치되지 않은 크로마 샘플들에 대응하는 다른 루마 샘플들에 적용된 필터에 비교할 때, 좌측 픽처 경계에 위치된 크로마 샘플들에 대응하는 루마 샘플들에 상이한 필터를 적용한다. 일 예에 있어서, 좌측 픽처 경계에서의 크로마 샘플들의 대응하는 다운샘플링된 루마 샘플들을 도출하기 위한 필터의 길이 (예를 들어, 탭) (즉, 필터가 확장하는 샘플들의 수) 는, 좌측 픽처 경계에 있지 않은 크로마 샘플들의 대응하는 다운샘플링된 루마 샘플들을 도출하기 위한 필터의 길이보다 작다 (예를 들어, 좌측 경계에 대한 2-탭 및 모든 다른 것들에 대한 6-탭).
일 예로서, 크로마 샘플들의 대응하는 다운샘플링된 루마 샘플들의 도출 프로세스 동안, 비디오 코더는, 현재 CU 내의 다른 루마 샘플들에 적용된 필터에 비교할 때, 좌측 CU 경계에 위치된 크로마 샘플들의 루마 샘플들에 대해 상이한 필터를 적용한다. 일 예에 있어서, 좌측 CU 경계에서의 크로마 샘플들의 대응하는 다운샘플링된 루마 샘플들을 도출하기 위한 필터의 길이 (예를 들어, 탭들) (즉, 필터가 확장하는 샘플들의 수) 는, 좌측 CU 경계에 있지 않은 크로마 샘플들의 대응하는 다운샘플링된 루마 샘플들을 도출하기 위한 필터의 길이보다 작다 (예를 들어, 좌측 경계에 대한 2-탭 및 모든 다른 것들에 대한 6-탭).
일 예로서, 크로마 샘플들의 대응하는 다운샘플링된 루마 샘플들의 도출 프로세스 동안, 비디오 코더는, 현재 PU 내의 다른 샘플들에 적용된 필터에 비교할 때, 좌측 PU 경계에 위치된 크로마 샘플들에 대해 상이한 필터를 적용한다. 일 예에 있어서, 좌측 PU 경계에서의 크로마 샘플들의 대응하는 다운샘플링된 루마 샘플들을 도출하기 위한 필터의 길이 (예를 들어, 탭들) (즉, 필터가 확장하는 샘플들의 수) 는, 좌측 PU 경계에 있지 않은 크로마 샘플들의 대응하는 다운샘플링된 루마 샘플들을 도출하기 위한 필터의 길이보다 작다 (예를 들어, 좌측 경계에 대한 2-탭 및 모든 다른 것들에 대한 6-탭).
일 예로서, 크로마 샘플들의 대응하는 다운샘플링된 루마 샘플들의 도출 프로세스 동안, 비디오 코더는, 현재 TU 내의 다른 샘플들에 적용된 필터에 비교할 때, 좌측 TU 경계에 위치된 크로마 샘플들에 대해 상이한 필터를 적용할 수도 있다. 일 예에 있어서, 좌측 TU 경계에서의 크로마 샘플들의 대응하는 다운샘플링된 루마 샘플들을 도출하기 위한 필터의 길이 (예를 들어, 탭들) (즉, 필터가 확장하는 샘플들의 수) 는, 좌측 TU 경계에 있지 않은 크로마 샘플들의 대응하는 다운샘플링된 루마 샘플들을 도출하기 위한 필터의 길이보다 작다 (예를 들어, 좌측 경계에 대한 2-탭 및 모든 다른 것들에 대한 6-탭).
일부 경우들에 있어서, 동일한 픽처에서 대응하는 루마 샘플들이 존재하지 않을 수도 있다. 다음은 그러한 상황들을 다루기 위한 일부 예시적인 기법들을 설명한다. 예를 들어, 비록 패딩을 회피하는 것이 일부 경우들에서 유리할 수 있더라도, 일부 예들에 있어서는, 패딩을 회피하는 것이 가능하지 않을 수도 있다. 예를 들어, 일부 루마 샘플들이 이용불가능하기 때문에 (예를 들어, 오프 픽처 때문에), 비디오 코더는 이들 이용불가능한 샘플들 대신 패딩 샘플 값들로 대체하고 이들 패딩 샘플 값들로 다운샘플링을 수행할 수도 있다 (예를 들어, 이용가능한 루마 샘플들에 대해 실제 루마 샘플 값들을 사용하고 이용불가능한 루마 샘플들에 대해 패딩 샘플 값들을 사용하여 다운샘플링함). 패딩 샘플 값들은 디폴트 값들 (예를 들어, 2bitdepth, 여기서, bitdepth 는 루마 컴포넌트의 비트 심도를 나타냄), 비디오 인코더 (20) 에 의해 결정되고 비디오 디코더 (30) 에 시그널링된 값들, 또는 정보의 시그널링을 요구하지 않는 일부 암시적 기법에 기초하여 결정된 값들일 수도 있다. 패딩 샘플 값들을 부가하는 것은, 별도의 필터들에 대한 필요성이 존재하지 않을 수도 있기 때문에 복잡도를 감소시킬 수도 있다.
크로마 샘플들의 대응하는 다운샘플링된 루마 샘플들의 도출 프로세스 동안, 루마 샘플들이 픽처의 외부에 있거나 CU/PU/TU 가 다운샘플링 프로세스에 관련될 필요가 있을 경우, 비디오 코더는 먼저 패딩 동작을 적용하고 그 다음에 다운샘플링 프로세스를 적용할 수도 있다. 샘플들의 패딩에 있어서, 비디오 코더는 오프 스크린인 그들 샘플들을 패딩 샘플 값들로 대체할 수도 있다.
일 예로서, 크로마 샘플들의 대응하는 다운샘플링된 루마 샘플들의 도출 프로세스 동안, 비디오 코더는, 현재 픽처의 외부에 위치된 루마 샘플들 (예를 들어, 오직 루마 샘플들만) 을 패딩할 수도 있다. 모든 다른 포지션들에 대해, 복원된 샘플들이 사용된다. 일 예로서, 크로마 샘플들의 대응하는 다운샘플링된 루마 샘플들의 도출 프로세스 동안, 비디오 코더는, 현재 CU 의 외부에 위치된 루마 샘플들을 패딩할 수도 있다. 모든 다른 포지션들에 대해, 복원된 샘플들이 사용된다. 일 예로서, 크로마 샘플들의 대응하는 다운샘플링된 루마 샘플들의 도출 프로세스 동안, 비디오 코더는, 현재 PU 의 외부에 위치된 루마 샘플들을 패딩할 수도 있다. 모든 다른 포지션들에 대해, 복원된 샘플들이 사용된다. 일 예로서, 크로마 샘플들의 대응하는 다운샘플링된 루마 샘플들의 도출 프로세스 동안, 비디오 코더는, 현재 TU 의 외부에 위치된 루마 샘플들을 패딩할 수도 있다. 모든 다른 포지션들에 대해, 복원된 샘플들이 사용된다. 패딩에 대한 상기 예들에 있어서, 동일한 다운샘플링 프로세스가 모든 포지션들에 적용된다.
LM 예측 모드에서 사용된 루마 복원된 샘플들의 포지션이 현재 슬라이스 또는 현재 타일 외부에 위치될 경우, 비디오 코더는 그러한 샘플들을 이용불가능으로 마킹할 수도 있다 (예를 들어, 비디오 코더는 그러한 샘플들을 이용불가능으로 결정할 수도 있음). 샘플이 이용불가능으로 마킹될 경우, 비디오 코더는 다음 중 하나 이상을 수행할 수도 있다.
이는 (예를 들어, 이용불가능한 샘플들), 이웃 루마 블록에 대한 다운샘플링 프로세스에서 사용되면, 이웃 루마 블록에 대한 다운샘플링 프로세스에서 사용되지 않는다. 대안적으로 또는 부가적으로, 필터는 다른 샘플들에 대해 사용된 필터와는 상이할 수도 있다. 이는 (예를 들어, 이용불가능한 샘플들), 현재 루마 블록에 대한 다운샘플링 프로세스에서 사용되면, 현재 루마 블록에 대한 다운샘플링 프로세스에서 사용되지 않는다. 대안적으로 또는 부가적으로, 필터는 다른 샘플들에 대해 사용된 필터와는 상이할 수도 있다. 이는 (예를 들어, 이용불가능한 샘플들) 이용가능으로 재-마킹되며; 하지만, 샘플 값은 패딩된 샘플 값 또는 디폴트 값으로 수정된다. 대안적으로 또는 부가적으로, 필터는 다른 샘플들에 대해 사용된 필터와 동일하게 유지된다. 일 예에 있어서, 디폴트 값은 비트 심도에 의존한다. 다른 예에 있어서, 패딩은, 이용가능으로 마킹되는 좌/우/상/하 샘플로부터 될 수 있다.
일반적으로, 다른 타일에 있는 루마 샘플들에 대해, 비디오 코더는 타일 경계 외부의 픽셀들을 이용불가능으로 마킹하고, 이들을 다운샘플링 프로세스에 포함하지 않을 수도 있다. 일부 예들에 있어서, 비디오 코더는 다른 타일에서의 루마 샘플들을 이용가능으로 마킹하지만 다른 타일에서의 그러한 루마 샘플들에 대해 패딩된 픽셀들을 사용할 수도 있다. 다른 예로서, 비디오 코더는 다른 타일에서의 루마 샘플들에 대해, 그 샘플들을 이용불가능으로 마킹하는 것보다는, 패딩된 "확장된" 값들을 사용할 수도 있다 (예를 들어, 비트 심도에 기초한 1/2 가능한 값, 따라서, 8 비트는 128 을 사용함).
일부 예들에 있어서, 비디오 코더는 특정 조건들 하에서 상기 예시적인 기법들 중 하나 이상을 인에이블할 수도 있다. 일 예로서, 그 조건은 슬라이스 타입에 의존할 수도 있다 (예를 들어, 현재 슬라이스가 인트라-코딩된 슬라이스가 아닐 경우, 비디오 코더는 본 개시에서 설명된 예들에 따른 기법들을 인에이블함). 대안적으로 또는 부가적으로, 그 조건은 그 이웃 CU 의 코딩 타입에 의존할 수도 있다. 예를 들어, 이웃 CU 가 인터-코딩될 경우, 비디오 코더는 상기 기법들 중 하나 이상을 인에이블할 수도 있다. 대안적으로 또는 부가적으로, 그 조건은 현재 CU/PU 를 포함한 슬라이스의 레퍼런스 픽처들에 의존할 수도 있다. 예를 들어, 레퍼런스 픽처들 모두가 현재 픽처의 POC (Picture Order Count) 값보다 더 작은 POC 값들을 가질 경우, 비디오 코더는 상기 기법들 중 하나 이상을 인에이블할 수도 있다.
일부 예들에 있어서, 비디오 코더는 상이한 크로마 컬러 컴포넌트들 (Cb 또는 Cr) 에 상이한 필터들을 적용할 수도 있다. 일부 예들에 있어서, LM 예측 모드가 인에이블될 경우, 다운샘플링 필터의 하나 이상의 세트들은 추가로, 시퀀스 파라미터 세트 (SPS), 픽처 파라미터 세트 (PPS), 또는 슬라이스 헤더 중 어느 하나에서 시그널링될 수도 있다. 대안적으로 또는 부가적으로, 보충 강화 정보 (SEI) 메시지 신택스가 다운샘플링 필터를 설명하기 위해 도입된다. 대안적으로 또는 부가적으로, 더욱이, 디폴트 다운샘플링 필터가, 예를 들어, 시그널링없이 6-탭 필터 [1, 2, 1; 1, 2, 1] 로 정의된다. 대안적으로 또는 부가적으로, 하나의 PU/CU/최대 CU 는, LM 예측 모드에서 사용되는 필터의 인덱스를 시그널링할 수도 있다. 대안적으로 또는 부가적으로, 필터 탭의 사용은 시그널링없이 비디오 디코더 (30) 에 의해 즉석에서 (on-the-fly) 도출될 수도 있다. 필터 지원을 제공하기 위한 다른 방식들이 물론 존재할 수도 있다.
일부 예들에 있어서, 다운샘플링된 이웃한 복원된 루마 샘플들을 사용하여 선형 모델의 파라미터들을 도출하는 대신, 비디오 코더는 오리지널 이웃한 복원된 루마 샘플들을 이용하여 파라미터들을 도출할 수도 있다. 이 경우, 크로마 예측이, 일 예로서, 다음의 수학식 11:
Figure pct00016
로 도출될 수 있다.
여기서, 파라미터들 (
Figure pct00017
i (i 는 0 내지 5) 및 β) 은 이웃한 복원된 루마 및 크로마 블록들로부터 획득된다.
일 예에 있어서, 더욱이,
Figure pct00018
i
Figure pct00019
(i+3) 과 동일하다는 제약이 적용된다. 일 예에 있어서, 더욱이,
Figure pct00020
i
Figure pct00021
(i+2) 와 동일 (i 는 0 또는 3 과 동일) 하다는 제약이 적용된다. 일 예에 있어서, 이러한 예시적인 기법은 오직 더 큰 코딩된 CU들에 대해서만, 예를 들어, 16x16보다 더 큰 CU 사이즈에 대해 인에이블될 수도 있다. 일 예에 있어서, 파라미터들 중 하나 이상은 0 인 것으로 제약된다.
더욱이, 비디오 코더는, 다운샘플링된 루마 잔차가 크로마 잔차를 예측하는데 사용되는 크로스 컴포넌트 잔차 예측을 위해 또한 상기 기법들 중 하나 이상을 적용할 수도 있다. 이 경우, 다운샘플링 프로세스는, 일 예로서, 복원된 루마 잔차에 적용된다.
다음은, 본 개시에서 설명된 기법들이 비디오 코더에 의해 구현될 수도 있는 예시적인 방식이다. 예시적인 구현 기법은 한정하는 것으로 고려되지 않아야 한다.
하기는 좌측 픽처 경계에서의 샘플들에 대해 상이한 다운샘플링 프로세스들을 적용하기 위한 일 예이다. 현재 루마 블록에 대한 다운샘플링 프로세스는 다음과 같이 정의된다:
- 크로마 샘플이 픽처의 좌측 경계에 위치되지 않으면, 6-탭 필터, 예를 들어, [1 2 1; 1 2 1] 이 대응하는 다운샘플링된 루마 샘플을 도출하기 위해 적용된다:
Figure pct00022
- 그렇지 않고 크로마 샘플이 픽처의 좌측 경계에 위치되면, 2-탭 필터, 예를 들어, [1; 1] 이 대응하는 다운샘플링된 루마 샘플을 도출하기 위해 적용된다:
Figure pct00023
일 예에 있어서, offset0 및 offset1 은 양자 모두 0 과 동일하게 설정된다. 다른 예에 있어서, offset0 은 4 와 동일하게 설정되고 offset1 은 1 과 동일하게 설정된다.
도 2 는 본 개시의 기법들을 구현할 수도 있는 예시적인 비디오 인코더 (20) 를 도시한 블록 다이어그램이다. 도 2 는 설명의 목적들로 제공되며, 본 개시에서 대체로 예시화되고 설명된 바와 같은 기법들의 한정으로서 고려되지 않아야 한다. 설명의 목적들로, 본 개시는 HEVC 코딩의 맥락에서 비디오 인코더 (20) 를 설명한다. 하지만, 본 개시의 기법들은 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다.
비디오 인코더 (20) 는 프로세싱 회로부를 포함하고, 비디오 인코더 (20) 는 본 개시에서 설명된 예시적인 기법들 중 하나 이상을 수행하도록 구성된다. 예를 들어, 비디오 인코더 (20) 는 집적 회로부를 포함하고, 도 2 에 도시된 다양한 유닛들은, 회로 버스와 상호접속되는 하드웨어 회로 블록들로서 형성될 수도 있다. 이들 하드웨어 회로 블록들은 별도의 회로 블록들일 수도 있거나, 또는 그 유닛들 중 2 이상은 공통 하드웨어 회로 블록으로 결합될 수도 있다. 하드웨어 회로 블록들은 산술 로직 유닛들 (ALU들), 기본 함수 유닛들 (EFU들) 뿐 아니라 AND, OR, NAND, NOR, XOR, XNOR, 및 다른 유사한 로직 블록들과 같은 로직 블록들과 같은 연산 블록들을 형성하는 전기 컴포넌트들의 조합으로서 형성될 수도 있다.
일부 예들에 있어서, 도 2 에 도시된 유닛들 중 하나 이상은 프로세싱 회로부 상에서 실행하는 소프트웨어 유닛들에 의해 제공될 수도 있다. 그러한 예들에 있어서, 이들 소프트웨어 유닛들에 대한 오브젝트 코드는 메모리에 저장된다. 오퍼레이팅 시스템은 비디오 인코더 (20) 로 하여금 오브젝트 코드를 취출하고 오브젝트 코드를 실행하게 할 수도 있으며, 이 오브젝트 코드는 비디오 인코더 (20) 로 하여금 예시적인 기법들을 구현하기 위한 동작들을 수행하게 한다. 일부 예들에 있어서, 소프트웨어 유닛들은, 비디오 인코더 (20) 가 시동 시에 실행하는 펌웨어일 수도 있다. 이에 따라, 비디오 인코더 (20) 는 예시적인 기법들을 수행하는 하드웨어를 갖는 구조적 컴포넌트이거나, 또는 예시적인 기법들을 수행하도록 하드웨어를 특수화하기 위해 하드웨어 상에서 실행하는 소프트웨어/펌웨어를 갖는다.
비디오 인코더 (20) 는, 본 개시에서 설명된 다양한 예들에 따른 LM 기반 비디오 코딩을 위한 기법들을 수행하도록 구성될 수도 있는 디바이스의 일 예를 나타낸다. 예를 들어, 비디오 인코더 (20) 는 LM 비디오 인코딩을 이용하여 하나 이상의 블록들을 인코딩하도록 구성될 수도 있다.
도 2 의 예에 있어서, 비디오 인코더 (20) 는 예측 프로세싱 유닛 (100), 비디오 데이터 메모리 (101), 잔차 생성 유닛 (102), 변환 프로세싱 유닛 (104), 양자화 유닛 (106), 역양자화 유닛 (108), 역변환 프로세싱 유닛 (110), 복원 유닛 (112), 필터 유닛 (114), 디코딩된 픽처 버퍼 (116), 및 엔트로피 인코딩 유닛 (118) 을 포함한다. 예측 프로세싱 유닛 (100) 은 인터-예측 프로세싱 유닛 (120) 및 인트라-예측 프로세싱 유닛 (126) 을 포함한다. 인터-예측 프로세싱 유닛 (120) 은 모션 추정 유닛 및 모션 보상 유닛을 포함한다 (도시 안됨). 비디오 인코더 (20) 또한, 본 개시에서 설명된 선형 모델 (LM) 기반 코딩 기법들의 다양한 양태들을 수행하도록 구성된 LM 기반 인코딩 유닛 (122) 을 포함한다. 다른 예들에 있어서, 비디오 인코더 (20) 는 더 많거나, 더 적거나, 또는 상이한 컴포넌트들을 포함할 수도 있다.
비디오 데이터 메모리 (101) 는, 비디오 인코더 (20) 의 컴포넌트들에 의해 인코딩될 비디오 데이터를 저장할 수도 있다. 비디오 데이터 메모리 (101) 에 저장된 비디오 데이터는, 예를 들어, 비디오 소스 (18) 로부터 획득될 수도 있다. 디코딩된 픽처 버퍼 (116) 는 (예를 들어, 인트라- 또는 인터-코딩 모드들에서) 비디오 인코더 (20) 에 의해 비디오 데이터를 인코딩함에 있어서 사용하기 위한 레퍼런스 비디오 데이터를 저장하는 레퍼런스 픽처 메모리일 수도 있다. 비디오 데이터 메모리 (101) 및 디코딩된 픽처 버퍼 (116) 는 동기식 DRAM (SDRAM) 을 포함한 동적 랜덤 액세스 메모리 (DRAM), 자기저항성 RAM (MRAM), 저항성 RAM (RRAM), 또는 다른 타입들의 메모리 디바이스들과 같은 다양한 메모리 디바이스들 중 임의의 메모리 디바이스에 의해 형성될 수도 있다. 비디오 데이터 메모리 (101) 및 디코딩된 픽처 버퍼 (116) 는 동일한 메모리 디바이스 또는 별도의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에 있어서, 비디오 데이터 메모리 (101) 는 비디오 인코더 (20) 의 다른 컴포넌트들과 온-칩형이거나 또는 그 컴포넌트들에 대하여 오프-칩형일 수도 있다.
비디오 인코더 (20) 는 비디오 데이터를 수신할 수도 있다. 비디오 인코더 (20) 는, 예측 프로세싱 유닛 (100) 을 통해, 비디오 데이터의 픽처의 슬라이스에서 각각의 CTU 를 인코딩할 수도 있다. CTU들 각각은, 픽처의 동일하게 사이징된 루마 코딩 트리 블록들 (CTB들) 및 대응하는 CTB들과 연관될 수도 있다. CTU 를 인코딩하는 부분으로서, 예측 프로세싱 유닛 (100) 은 쿼드 트리 파티셔닝을 수행하여, CTU 의 CTB들을 점진적으로 더 작은 블록들로 분할할 수도 있다. 더 작은 블록은 CU들의 코딩 블록들일 수도 있다. 예를 들어, 예측 프로세싱 유닛 (100) 은 CTU 와 연관된 CTB 를 4개의 동일하게 사이징된 서브-블록들로 파티셔닝할 수도 있고, 그 서브-블록들 중 하나 이상을 4개의 동일하게 사이징된 서브-블록들로 파티셔닝할 수도 있는 등등이다.
비디오 인코더 (20) 는 CTU 의 CU들을 인코딩하여 CU들의 인코딩된 표현들 (즉, 코딩된 CU들) 을 생성할 수도 있다. CU 를 인코딩하는 부분으로서, 예측 프로세싱 유닛 (100) 은 CU 의 하나 이상의 PU들 중에서 CU 와 연관된 코딩 블록들을 파티셔닝할 수도 있다. 따라서, 각각의 PU 는 루마 예측 블록 및 대응하는 크로마 예측 블록들과 연관될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 다양한 사이즈들을 갖는 PU들을 지원할 수도 있다. 상기 나타낸 바와 같이, CU 의 사이즈는 CU 의 루마 코딩 블록의 사이즈를 지칭할 수도 있으며, PU 의 사이즈는 PU 의 루마 예측 블록의 사이즈를 지칭할 수도 있다. 특정 CU 의 사이즈가 2Nx2N 이라고 가정하면, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 인트라 예측을 위해 2Nx2N 또는 NxN 의 PU 사이즈들을 지원하고, 인터 예측을 위해 2Nx2N, 2NxN, Nx2N, NxN 등의 대칭적인 PU 사이즈들을 지원할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 또한, 인터 예측을 위해 2NxnU, 2NxnD, nLx2N, 및 nRx2N 의 PU 사이즈들에 대한 비대칭적인 파티셔닝을 지원할 수도 있다.
인터-예측 프로세싱 유닛 (120) 은 CU 의 각각의 PU 에 대해 인터 예측을 수행함으로써 PU 에 대한 예측 데이터를 생성할 수도 있다. PU 에 대한 예측 데이터는, PU 의 예측 블록들 및 PU 에 대한 모션 정보를 포함할 수도 있다. 인터-예측 유닛 (121) 은, PU 가 I 슬라이스인지 P 슬라이스인지 또는 B 슬라이스인지에 의존하여 CU 의 PU 에 대해 상이한 동작들을 수행할 수도 있다. I 슬라이스에 있어서, 모든 PU들은 인트라 예측된다. 따라서, PU 가 I 슬라이스에 있으면, 인터-예측 유닛 (121) 은 PU 에 대해 인터 예측을 수행하지 않는다. 따라서, I-모드로 인코딩된 블록들에 대해, 예측 블록은 동일 프레임 내의 이전에 인코딩된 이웃 블록들로부터의 공간 예측을 이용하여 형성된다.
PU 가 P 슬라이스에 있으면, 인터-예측 프로세싱 유닛 (120) 의 모션 추정 유닛은 PU 에 대한 레퍼런스 영역을 위해 레퍼런스 픽처들의 리스트 (예를 들어, "RefPicList0") 에서 레퍼런스 픽처들을 탐색할 수도 있다. PU 에 대한 레퍼런스 영역은, 레퍼런스 픽처 내에서, PU 의 샘플 블록들에 가장 근접하게 대응하는 샘플 블록들을 포함하는 영역일 수도 있다. 모션 추정 유닛은, PU 에 대한 레퍼런스 영역을 포함하는 레퍼런스 픽처의 RefPicList0 에서의 포지션을 표시하는 레퍼런스 인덱스를 생성할 수도 있다. 부가적으로, 모션 추정 유닛은, 레퍼런스 영역과 연관된 레퍼런스 위치와 PU 의 코딩 블록 간의 공간 변위를 표시하는 MV 를 생성할 수도 있다. 예를 들어, MV 는, 현재 디코딩된 픽처에서의 좌표들로부터 레퍼런스 픽처에서의 좌표들까지의 오프셋을 제공하는 2차원 벡터일 수도 있다. 모션 추정 유닛은 PU 의 모션 정보로서 레퍼런스 인덱스 및 MV 를 출력할 수도 있다. 인터-예측 프로세싱 유닛 (120) 의 모션 보상 유닛은 PU 의 모션 벡터에 의해 표시된 레퍼런스 위치에서의 실제 또는 보간된 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다.
PU 가 B 슬라이스에 있으면, 인터-예측 프로세싱 유닛 (120) 의 모션 추정 유닛은 PU 에 대해 단방향 예측 또는 양방향 예측을 수행할 수도 있다. PU 에 대해 단방향 예측을 수행하기 위해, 모션 추정 유닛은 PU 에 대한 레퍼런스 영역을 위해 RefPicList0 또는 제 2 레퍼런스 픽처 리스트 ("RefPicList1") 의 레퍼런스 픽처들을 탐색할 수도 있다. 모션 추정 유닛은, PU 의 모션 정보로서, 레퍼런스 영역을 포함하는 레퍼런스 픽처의 RefPicList0 또는 RefPicList1 에서의 포지션을 표시하는 레퍼런스 인덱스, PU 의 예측 블록과 레퍼런스 영역과 연관된 레퍼런스 위치 간의 공간 변위를 표시하는 MV, 및 레퍼런스 픽처가 RefPicList0 에 있는지 또는 RefPicList1 에 있는지를 표시하는 하나 이상의 예측 방향 표시자들을 출력할 수도 있다. 인터-예측 프로세싱 유닛 (120) 의 모션 보상 유닛은 PU 의 모션 벡터에 의해 표시된 레퍼런스 영역에서의 실제 또는 보간된 샘플들에 적어도 부분적으로 기초하여 PU 의 예측 블록들을 생성할 수도 있다.
PU 에 대해 양방향 인터 예측을 수행하기 위해, 모션 추정 유닛은 PU 에 대한 레퍼런스 영역을 위해 RefPicList0 에 있어서의 레퍼런스 픽처들을 탐색할 수도 있고, 또한 PU 에 대한 다른 레퍼런스 영역을 위해 RefPicList1 에 있어서의 레퍼런스 픽처들을 탐색할 수도 있다. 모션 추정 유닛은, 레퍼런스 영역들을 포함하는 레퍼런스 픽처들의 RefPicList0 및 RefPicList1 에서의 포지션들을 표시하는 레퍼런스 픽처 인덱스들을 생성할 수도 있다. 부가적으로, 모션 추정 유닛은, PU 의 샘플 블록과 레퍼런스 영역들과 연관된 레퍼런스 위치 간의 공간 변위들을 표시하는 MV들을 생성할 수도 있다. PU 의 모션 정보는 PU 의 MV들 및 레퍼런스 인덱스들을 포함할 수도 있다. 인터-예측 프로세싱 유닛 (120) 의 모션 보상 유닛은 PU 의 모션 벡터들에 의해 표시된 레퍼런스 영역들에서의 실제 또는 보간된 샘플들에 적어도 부분적으로 기초하여 PU 의 예측 블록들을 생성할 수도 있다.
LM 기반 인코딩 유닛 (122) 은 선형 모델 (LM) 예측 인코딩을 수행할 수도 있다. 예를 들어, LM 기반 인코딩 유닛 (122) 은, 인코딩되고 있는 현재 크로마 블록에 대응하는 루마 블록의 복원된 루마 샘플들을 다운샘플링할 수도 있다. 예를 들어, 4:2:0 샘플링에 있어서, 4개의 루마 샘플들이 하나의 크로마 블록에 대응한다. 루마 픽처의 좌상부 코너에서 2x2 블록을 형성하는 4개의 루마 샘플들은 크로마 픽처의 좌상부 코너에 위치된 하나의 크로마 샘플에 대응한다. LM 기반 인코딩 유닛 (122) 은 루마 블록의 다운샘플링된 복원된 루마 샘플들을 스케일링하여 예측 블록을 생성할 수도 있다. 잔차 생성 유닛 (102) 은 크로마 블록과 예측 블록 간의 잔차 블록을 결정할 수도 있다. 일부 예들에 있어서, LM 기반 인코딩 유닛 (122) 은 그러한 기법들을 크로스 컴포넌트 잔차 예측의 부분으로서 적용할 수도 있다. 이 경우, 크로마 블록은 크로마 잔차 블록이고, 루마 블록은 루마 잔차 블록이다.
본 개시에서 설명된 기법들에 있어서, LM 기반 인코딩 유닛 (122) 은 상기 예시적인 기법들 중 하나 이상을 루마 블록의 루마 샘플들의 다운샘플링의 부분으로서 구현할 수도 있다. 예를 들어, LM 기반 인코딩 유닛 (122) 은, 인코딩되는 크로마 블록의 특성들에 기초하여 대응하는 루마 블록을 다운샘플링하기 위해 상이한 필터들을 적용할 수도 있다. 디코딩되는 크로마 블록의 특성들의 예들은 디코딩되는 크로마 블록의 포지션을 포함한다. 다른 예로서, LM 기반 인코딩 유닛 (122) 은, 특정 경계 (예를 들어, 픽처, CU, PU, 또는 TU) 외부에 있는 루마 샘플들에 기초하여 루마 블록에 패딩을 적용할 수도 있다.
인트라-예측 프로세싱 유닛 (126) 은 PU 에 대해 인트라 예측을 수행함으로써 PU 에 대한 예측 데이터를 생성할 수도 있다. PU 에 대한 예측 데이터는, PU 에 대한 예측 블록들 및 다양한 신택스 엘리먼트들을 포함할 수도 있다. 인트라-예측 프로세싱 유닛 (126) 은 I 슬라이스들, P 슬라이스들, 및 B 슬라이스들에 있어서 PU들에 대해 인트라 예측을 수행할 수도 있다.
PU 에 대해 인트라 예측을 수행하기 위해, 인트라-예측 프로세싱 유닛 (126) 은 다중의 인트라 예측 모드들을 이용하여, PU 에 대한 예측 데이터의 다중의 세트들을 생성할 수도 있다. 인트라-예측 프로세싱 유닛 (126) 은 이웃 PU들의 샘플 블록들로부터의 샘플들을 이용하여 PU 에 대한 예측 블록을 생성할 수도 있다. 이웃 PU들은, PU들, CU들, 및 CTU들에 대한 좌-우로, 상부-저부로의 인코딩 순서를 가정할 때, PU 의 상위, 상위 및 우측으로, 상위 및 좌측으로, 또는 좌측으로일 수도 있다. 인트라-예측 프로세싱 유닛 (126) 은 다양한 개수들의 인트라 예측 모드들, 예를 들어, 33개의 지향성 인트라 예측 모드들을 이용할 수도 있다. 일부 예들에 있어서, 인트라 예측 모드들의 수는 PU 와 연관된 영역의 사이즈에 의존할 수도 있다.
예측 프로세싱 유닛 (100) 은 PU들에 대한 인터-예측 프로세싱 유닛 (120) 에 의해 생성된 예측 데이터, PU들에 대한 인트라-예측 프로세싱 유닛 (126) 에 의해 생성된 예측 데이터, 또는 LM 기반 인코딩 유닛 (122) 에 의해 생성된 예측 데이터 중으로부터 CU 의 PU들에 대한 예측 데이터를 선택할 수도 있다. 일부 예들에 있어서, 예측 프로세싱 유닛 (100) 은 예측 데이터의 세트들의 레이트/왜곡 메트릭들에 기초하여 CU 의 PU들에 대한 예측 데이터를 선택한다. 선택된 예측 데이터의 예측 블록들은 본 명세서에서 선택된 예측 블록들로서 지칭될 수도 있다.
잔차 생성 유닛 (102) 은, CU 의 루마, Cb, 및 Cr 코딩 블록 및 CU 의 PU들의 선택된 예측 루마, Cb, 및 Cr 블록들에 기초하여, CU 의 루마, Cb, 및 Cr 잔차 블록들을 생성할 수도 있다. 예를 들어, 잔차 생성 유닛 (102) 은, 잔차 블록들에서의 각각의 샘플이 CU 의 코딩 블록에서의 샘플과 CU 의 PU 의 대응하는 선택된 예측 블록에서의 대응하는 샘플 간의 차이와 동일한 값을 갖도록 CU 의 잔차 블록들을 생성할 수도 있다.
변환 프로세싱 유닛 (104) 은 쿼드 트리 파티셔닝을 수행하여, CU 와 연관된 잔차 블록들을 CU 의 TU들과 연관된 변환 블록들로 파티셔닝할 수도 있다. 따라서, TU 는 루마 변환 블록 및 2개의 크로마 변환 블록들과 연관될 수도 있다. CU 의 TU들의 루마 및 크로마 변환 블록들의 사이즈들 및 포지션들은 CU 의 PU들의 예측 블록들의 사이즈들 및 포지션들에 기초할 수도 있거나 기초하지 않을 수도 있다. "잔차 쿼드 트리" (RQT) 로서 공지된 쿼드 트리 구조는 영역들 각각과 연관된 노드들을 포함할 수도 있다. CU 의 TU들은 RQT 의 리프 노드들에 대응할 수도 있다.
변환 프로세싱 유닛 (104) 은 TU 의 변환 블록들에 하나 이상의 변환들을 적용함으로써 CU 의 각각의 TU 에 대한 변환 계수 블록들을 생성할 수도 있다. 변환 프로세싱 유닛 (104) 은 TU 와 연관된 변환 블록에 다양한 변환들을 적용할 수도 있다. 예를 들어, 변환 프로세싱 유닛 (104) 은 이산 코사인 변환 (DCT), 지향성 변환, 또는 개념적으로 유사한 변환을 변환 블록에 적용할 수도 있다. 일부 예들에 있어서, 변환 프로세싱 유닛 (104) 은 변환 블록에 변환들을 적용하지 않는다. 그러한 예들에 있어서, 변환 블록은 변환 계수 블록으로서 처리될 수도 있다.
양자화 유닛 (106) 은 계수 블록에 있어서의 변환 계수들을 양자화할 수도 있다. 양자화 프로세스는 변환 계수들의 일부 또는 그 모두와 연관된 비트 심도를 감소시킬 수도 있다. 예를 들어, n비트 변환 계수는 양자화 동안 m비트 변환 계수로 라운드-다운될 수도 있으며, 여기서, n 은 m 보다 크다. 양자화 유닛 (106) 은 CU 와 연관된 양자화 파라미터 (QP) 값에 기초하여 CU 의 TU 와 연관된 계수 블록을 양자화할 수도 있다. 비디오 인코더 (20) 는 CU 와 연관된 QP 값을 조정함으로써 CU 와 연관된 계수 블록들에 적용된 양자화도를 조정할 수도 있다. 양자화는 정보의 손실을 도입할 수도 있으며, 따라서, 양자화된 변환 계수들은 오리지널 계수들보다 더 낮은 정확도를 가질 수도 있다.
역양자화 유닛 (108) 및 역변환 프로세싱 유닛 (110) 은, 각각, 계수 블록에 역양자화 및 역변환을 적용하여, 그 계수 블록으로부터 잔차 블록을 복원할 수도 있다. 복원 유닛 (112) 은 복원된 잔차 블록을, 예측 프로세싱 유닛 (100) 에 의해 생성된 하나 이상의 예측 블록들로부터의 대응하는 샘플들에 가산하여, TU 와 연관된 복원된 변환 블록을 생성할 수도 있다. 이러한 방식으로 CU 의 각각의 TU 에 대한 변환 블록들을 복원함으로써, 비디오 인코더 (20) 는 CU 의 코딩 블록들을 복원할 수도 있다.
필터 유닛 (114) 은 하나 이상의 디블록킹 (deblocking) 동작들을 수행하여, CU 와 연관된 코딩 블록들에서의 블록킹 아티팩트들을 감소시킬 수도 있다. 디코딩된 픽처 버퍼 (116) 는, 필터 유닛 (114) 이 복원된 코딩 블록들에 대해 하나 이상의 디블록킹 동작들을 수행한 이후 복원된 코딩 블록들을 저장할 수도 있다. 인터-예측 프로세싱 유닛 (120) 은 복원된 코딩 블록들을 포함하는 레퍼런스 픽처를 이용하여, 다른 픽처들의 PU들에 대해 인터 예측을 수행할 수도 있다. 부가적으로, 인트라-예측 프로세싱 유닛 (126) 은 디코딩된 픽처 버퍼 (116) 에 있어서의 복원된 코딩 블록들을 이용하여, CU 와 동일한 픽처에 있어서의 다른 PU들에 대해 인트라 예측을 수행할 수도 있다. 더욱이, LM 기반 인코딩 유닛 (122) 은 크로마 블록을 선형 모델 (LM) 예측 인코딩하기 위해 디코딩된 픽처 버퍼 (116) 에 있어서의 복원된 루마 블록들을 활용할 수도 있다 (여기서, 루마 블록은 일부 예들에 있어서 비디오 데이터를 포함할 수도 있거나 잔차 루마 블록일 수도 있으며, 크로마 블록은 일부 예들에 있어서 비디오 데이터를 포함할 수도 있거나 잔차 크로마 블록일 수도 있음).
엔트로피 인코딩 유닛 (118) 은 비디오 인코더 (20) 의 다른 기능 컴포넌트들로부터 데이터를 수신할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (118) 은 양자화 유닛 (106) 으로부터 계수 블록들을 수신할 수도 있고, 예측 프로세싱 유닛 (100) 으로부터 신택스 엘리먼트들을 수신할 수도 있다. 엔트로피 인코딩 유닛 (118) 은 데이터에 대해 하나 이상의 엔트로피 인코딩 동작들을 수행하여 엔트로피 인코딩된 데이터를 생성할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (118) 은 컨텍스트 적응형 바이너리 산술 코딩 (CABAC) 동작, 컨텍스트 적응형 가변 길이 코딩 (CAVLC) 동작, V2V (variable-to-variable) 길이 코딩 동작, 신택스 기반 컨텍스트 적응형 바이너리 산술 코딩 (SBAC) 동작, 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩 동작, 지수-골롬 인코딩 동작, 또는 다른 타입의 엔트로피 인코딩 동작을 데이터에 대해 수행할 수도 있다. 비디오 인코더 (20) 는 엔트로피 인코딩 유닛 (118) 에 의해 생성된 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력할 수도 있다. 예를 들어, 그 비트스트림은 CU 에 대한 RQT 를 나타내는 데이터를 포함할 수도 있다.
본 개시의 도 2 의 예는, 인코딩되고 있는 크로마 블록에 대한 대응하는 루마 블록을 결정하고, 크로마 블록의 특성에 기초하여 루마 블록에 적용하기 위한 필터를 결정하고, 결정된 필터에 기초하여 루마 블록을 다운샘플링하고, 다운샘플링된 루마 블록에 기초하여 예측 블록을 결정하고, 그리고 예측 블록에 기초하여 크로마 블록을 선형 모델 (LM) 예측 인코딩하도록 구성된 비디오 인코더 (20) 를 설명한다. 예를 들어, LM 기반 인코딩 유닛 (122) 은 크로마 블록을 LM 예측 인코딩하기 위한 예시적인 동작들을 수행할 수도 있다.
LM 기반 인코딩 유닛 (122) 은, 인코딩되고 있는 비디오 데이터의 크로마 블록에 대응하는 비디오 데이터의 루마 블록을 결정할 수도 있다. 예측 프로세싱 유닛 (100) 은, 예컨대 픽처의 CTU들, CU들, 및 PU들로의 분할 동안 어느 루마 블록 및 크로마 블록들이 서로에 대응하는지를 추적하도록 구성될 수도 있다.
LM 기반 인코딩 유닛 (122) 은 크로마 블록의 특성에 기초하여 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정한다. 예를 들어, LM 기반 인코딩 유닛 (122) 은 픽처, CU, PU, 또는 TU 의 경계에 대한 크로마 블록의 위치를 결정할 수도 있다. 예측 프로세싱 유닛 (100) 이 픽처들을 CTU들, CU들, 및 PU들로 분할하였기 때문에, LM 기반 인코딩 유닛 (122) 은 픽처, CU, PU, 또는 TU 에 대한 크로마 블록의 위치를 결정할 수도 있다.
LM 기반 인코딩 유닛 (122) 은, 경계에 위치되는 크로마 블록의 크로마 샘플들에 대응하는 루마 블록의 루마 샘플들에 제 1 필터를 적용하도록 결정한다. 이에 따라, 경계에 위치되는 크로마 샘플들에 기초하여, LM 기반 인코딩 유닛 (122) 은 대응하는 루마 샘플들에 제 1 필터를 적용하도록 결정할 수도 있다 (예를 들어, 수학식 (12)). LM 기반 인코딩 유닛 (122) 은, 경계에 위치되지 않은 크로마 블록의 크로마 샘플들에 대응하는 루마 블록의 루마 샘플들에 제 2 의 상이한 필터를 적용하도록 결정한다. 이에 따라, 경계에 위치되지 않은 크로마 샘플들에 기초하여, LM 기반 인코딩 유닛 (122) 은 루마 블록의 대응하는 루마 샘플들에, 제 1 필터와는 상이한 제 2 필터를 적용하도록 결정할 수도 있다 (예를 들어, 수학식 (13)).
LM 기반 인코딩 유닛 (122) 은 복원된 루마 블록을 DPB (116) 로부터 취출하고, 결정된 필터에 기초하여 루마 블록을 다운샘플링한다. 다운샘플링된 루마 블록은 recL(i,j) 로서 지칭된다. 예를 들어, 크로마 샘플들이 좌측 경계에 있으면, LM 기반 인코딩 유닛 (122) 은 2-탭 필터를 이용하여 루마 샘플들의 다운샘플링을 수행한다 (예를 들어, 수학식 (12) 의 연산들). 크로마 샘플들이 좌측 경계에 있지 않으면, LM 기반 인코딩 유닛 (122) 은 6-탭 필터를 이용하여 루마 샘플들의 다운샘플링을 수행한다 (예를 들어, 수학식 (13) 의 연산들). 일반적으로, 제 1 필터는 제 2 필터보다 더 적은 탭들을 포함한다.
다운샘플링된 루마 블록으로부터, LM 기반 인코딩 유닛 (122) 은 예측 블록을 결정한다. 예를 들어, LM 기반 인코딩 유닛 (122) 은 수학식 1 의 연산들을 수행할 수도 있다. 예측 블록을 결정하기 위해, LM 기반 인코딩 유닛 (122) 은
Figure pct00024
및 β 에 대한 값들을 결정한다. LM 기반 인코딩 유닛 (122) 은 수학식들 2-4 의 연산들을 수행하여
Figure pct00025
및 β 값들을 결정할 수도 있다.
Figure pct00026
및 β 값들로, LM 기반 인코딩 유닛 (122) 은 수학식 1 에 따라 recL(i,j) 를 스케일링하고 예측 블록을 결정한다.
Figure pct00027
및 β 값들을 결정함에 있어서, LM 기반 인코딩 유닛 (122) 은 (예를 들어, 수학식들 (6) 및 (7) 의 연산들을 수행하여) 하나 이상의 이웃 루마 블록들을 다운샘플링하고, 하나 이상의 이웃 크로마 블록들에 대한 다운샘플링된 이웃 루마 블록들에 기초하여 제 1 파라미터 (예를 들어,
Figure pct00028
) 및 제 2 파라미터 (예를 들어, β) 를 결정할 수도 있다. 하지만, 이웃 블록들의 다운샘플링은 모든 예에서 필요하진 않다. 예를 들어, LM 기반 인코딩 유닛 (122) 은 수학식 (11) 의 연산들을 수행할 수도 있다.
일부 예들에 있어서, LM 기반 인코딩 유닛 (122) 은 크로마 블록의 타입에 기초하여 어느 다운샘플링 필터를 적용할지를 결정할 수도 있다. 예를 들어, 크로마 블록이 제 1 타입 (예를 들어, Cr 또는 Cb) 인 하나의 인스턴스에 있어서, LM 기반 인코딩 유닛 (122) 은 크로마 블록이 제 1 타입인 것에 기초하여 루마 블록에 제 1 필터를 적용하도록 결정할 수도 있다. 크로마 블록이 제 2 타입 (예를 들어, Cr 또는 Cb 중 다른 하나) 인 다른 인스턴스에 있어서, LM 기반 인코딩 유닛 (122) 은 크로마 블록이 제 2 타입인 것에 기초하여 루마 블록에 제 2 의 상이한 필터 (즉, 제 1 필터와는 상이함) 를 적용하도록 결정할 수도 있다. LM 기반 인코딩 유닛 (122) 이 크로마 블록들의 제 1 및 제 2 타입에 대해 선택하는 필터들은 또한, 경계에 대한 크로마 샘플들의 위치에 기초할 수도 있지만, 모든 예들에서 필수적인 것은 아니다.
상기 설명된 바와 같이, 일부 예들에 있어서, LM 기반 인코딩 유닛 (122) 은, 루마 블록의 루마 샘플들이 픽처, 슬라이스, CU, PU, 또는 TU 중 하나 이상의 외부에 있음을 결정할 수도 있다. 그러한 예들에 있어서, LM 기반 인코딩 유닛 (122) 은 외부에 있는 하나 이상의 루마 샘플들에 대한 루마 샘플 값들을 패딩 값들로 대체할 수도 있다. 예를 들어, LM 기반 인코딩 유닛 (122) 은 미리 구성될 수도 있거나, 또는 패딩 값들이 비디오 데이터 메모리 (101) 에 저장될 수도 있다. LM 기반 인코딩 유닛 (122) 은 외부에 있는 루마 샘플들을 이들 패딩 값들로 대체하고, 결과적인 루마 블록을 비디오 데이터 메모리 (101) 에 저장할 수도 있다. 그 후, LM 기반 인코딩 유닛 (122) 은 패딩 값들을 갖는 루마 블록을 다운샘플링할 수도 있다 (예를 들어, 수학식 (5) 또는 (9) 를 수행함).
본 개시는 또한, 인코딩되고 있는 크로마 블록에 대한 대응하는 루마 블록을 결정하고, 루마 블록이 경계를 넘어서 확장하는 것에 기초하여, 경계를 넘어서 확장하고 그리고 루마 블록의 나머지에 대해 복원된 샘플들을 유지하는 루마 블록의 부분에 패딩을 적용하여 패딩된 루마 블록을 생성하고, 패딩된 루마 블록을 다운샘플링하고, 다운샘플링된 패딩된 루마 블록에 기초하여 예측 블록을 결정하고, 그리고 예측 블록에 기초하여 크로마 블록을 선형 모델 (LM) 예측 인코딩하도록 구성된 비디오 인코더 (20) 를 설명한다.
비록 상기 예시적인 기법들이 루마 샘플들의 블록인 루마 블록에 관하여 설명되었더라도, 본 개시에서 설명된 기법들은 이에 한정되지 않는다. 일부 예들에 있어서, 루마 블록은, 루마 블록이 루마 샘플들의 블록과 루마 샘플들의 예측 블록 간의 차이를 나타냄을 의미하는 루마 잔차 블록이다. 이러한 루마 잔차 블록은 대응하는 크로마 잔차 블록에 대한 예측 크로마 잔차 블록을 생성하는데 사용될 수도 있다. LM 기반 인코딩 유닛 (122) 은 루마 잔차 블록에 대해 유사한 기능들을 수행하여, 크로마 잔차 블록에 대한 예측 크로마 잔차 블록을 생성할 수도 있다. 예를 들어, 루마 블록이 루마 잔차 블록인 경우들에 대해, LM 기반 인코딩 유닛 (122) 은, 루마 블록이 루마 샘플들의 블록인 예들에 관하여 상기 설명된 기법들과 유사한 기법들을 이용하여 예측 크로마 잔차 블록을 생성하기 위해 루마 잔차 블록을 다운샘플링할 수도 있다. 그러한 기법들은 상기 설명된 예시적인 다운샘플링 필터들을 이용하여 4:2:0 및 4:2:2 샘플링 양자 모두에 (및 가능하게는 필터링으로 4:4:4 에 대해, 단, 다운샘플링에 필수적인 것은 아님) 적용가능할 수도 있다.
LM 기반 인코딩 유닛 (122) 에 관하여 상기 설명된 예시적인 기법들은 특정 조건들 하에서 적용가능할 수도 있지만, 이것이 모든 경우에 대해 필수조건은 아니다. 예를 들어, 현재 슬라이스가 인트라-코딩된 슬라이스가 아니면, LM 기반 인코딩 유닛 (122) 은 크로마 예측을 수행할 수도 있다. 다른 예로서, 이웃 CU 가 인터-코딩되면, LM 기반 인코딩 유닛 (122) 은 크로마 예측을 수행할 수도 있다. 다른 예로서, RefPicList0 및/또는 RefPicList1 에서의 레퍼런스 픽처들이 현재 픽처의 POC 값보다 작은 POC 값들을 가지면, LM 기반 인코딩 유닛 (122) 은 크로마 예측을 수행할 수도 있다. 하지만, 이들 조건들은 단지 예들로서 설명된 것 뿐이다. LM 기반 인코딩 유닛 (122) 이 모든 경우들에 있어서 크로마 예측을 수행하는 것이 가능할 수도 있으며, 크로마 예측이 LM 기반 인코딩 유닛 (122) 에 기초하여 수행되는지 여부는 결국 어느 코딩이 최적의 비디오 코딩을 제공하는지에 기초하여 결정된다.
LM 기반 인코딩 유닛 (122) 은 예측 블록을 잔차 생성 유닛 (102) 에 출력할 수도 있다. 잔차 생성 유닛 (102) 은 예측 블록 및 크로마 블록으로부터 잔차 블록을 생성한다. 결과적인 잔차 블록은 변환 프로세싱 유닛 (103) 에 의해 변환되고, 양자화 유닛 (106) 에 의해 양자화되고, 엔트로피 인코딩 유닛 (118) 에 의해 엔트로피 인코딩된다. 그 후, 그 결과는 비트스트림을 통해 시그널링되고, 비디오 디코더 (30) 는 비트스트림에서의 정보를 이용하여 크로마 블록을 복원한다.
도 3 은 본 개시의 기법들을 구현하도록 구성된 예시적인 비디오 디코더 (30) 를 도시한 블록 다이어그램이다. 도 3 은 설명의 목적들로 제공되며, 본 개시에서 대체로 예시화되고 설명된 바와 같은 기법들에 대해 한정하는 것은 아니다. 설명의 목적들로, 본 개시는 HEVC 코딩의 맥락에서 비디오 디코더 (30) 를 설명한다. 하지만, 본 개시의 기법들은 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다.
비디오 디코더 (30) 는 프로세싱 회로부를 포함하고, 비디오 디코더 (30) 는 본 개시에서 설명된 예시적인 기법들 중 하나 이상을 수행하도록 구성된다. 예를 들어, 비디오 디코더 (30) 는 집적 회로부를 포함하고, 도 3 에 도시된 다양한 유닛들은, 회로 버스와 상호접속되는 하드웨어 회로 블록들로서 형성될 수도 있다. 이들 하드웨어 회로 블록들은 별도의 회로 블록들일 수도 있거나, 또는 그 유닛들 중 2 이상은 공통 하드웨어 회로 블록으로 결합될 수도 있다. 하드웨어 회로 블록들은 산술 로직 유닛들 (ALU들), 기본 함수 유닛들 (EFU들) 뿐 아니라 AND, OR, NAND, NOR, XOR, XNOR, 및 다른 유사한 로직 블록들과 같은 로직 블록들과 같은 연산 블록들을 형성하는 전기 컴포넌트들의 조합으로서 형성될 수도 있다.
일부 예들에 있어서, 도 3 에 도시된 유닛들 중 하나 이상은 프로세싱 회로부 상에서 실행하는 소프트웨어 유닛들에 의해 제공될 수도 있다. 그러한 예들에 있어서, 이들 소프트웨어 유닛들에 대한 오브젝트 코드는 메모리에 저장된다. 오퍼레이팅 시스템은 비디오 디코더 (30) 로 하여금 오브젝트 코드를 취출하고 오브젝트 코드를 실행하게 할 수도 있으며, 이 오브젝트 코드는 비디오 디코더 (30) 로 하여금 예시적인 기법들을 구현하기 위한 동작들을 수행하게 한다. 일부 예들에 있어서, 소프트웨어 유닛들은, 비디오 디코더 (30) 가 시동 시에 실행하는 펌웨어일 수도 있다. 이에 따라, 비디오 디코더 (30) 는 예시적인 기법들을 수행하는 하드웨어를 갖는 구조적 컴포넌트이거나, 또는 예시적인 기법들을 수행하도록 하드웨어를 특수화하기 위해 하드웨어 상에서 실행하는 소프트웨어/펌웨어를 갖는다.
비디오 디코더 (30) 는, 본 개시에서 설명된 다양한 예들에 따른 LM 기반 비디오 코딩을 위한 기법들을 수행하도록 구성될 수도 있는 디바이스의 일 예를 나타낸다. 예를 들어, 비디오 디코더 (30) 는 LM 비디오 코딩 모드를 활용하여 하나 이상의 블록들을 디코딩하도록 (즉, 하나 이상의 블록들을 선형 모델 (LM) 예측 디코딩하도록) 구성될 수도 있다.
도 3 의 예에 있어서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (150), 비디오 데이터 메모리 (151), 예측 프로세싱 유닛 (152), 역양자화 유닛 (154), 역변환 프로세싱 유닛 (156), 복원 유닛 (158), 필터 유닛 (160), 및 디코딩된 픽처 버퍼 (162) 를 포함한다. 예측 프로세싱 유닛 (152) 은 모션 보상 유닛 (164) 및 인트라-예측 프로세싱 유닛 (166) 을 포함한다. 비디오 디코더 (30) 또한, 본 개시에서 설명된 선형 모델 (LM) 기반 코딩 기법들의 다양한 양태들을 수행하도록 구성된 LM 기반 디코딩 유닛 (165) 을 포함한다. 다른 예들에 있어서, 비디오 디코더 (30) 는 더 많거나, 더 적거나, 또는 상이한 기능 컴포넌트들을 포함할 수도 있다.
비디오 데이터 메모리 (151) 는, 비디오 디코더 (30) 의 컴포넌트들에 의해 디코딩될 인코딩된 비디오 비트스트림과 같은 비디오 데이터를 저장할 수도 있다. 비디오 데이터 메모리 (151) 에 저장된 비디오 데이터는, 예를 들어, 컴퓨터 판독가능 매체 (16) 로부터 (예컨대, 카메라와 같은 로컬 비디오 소스로부터, 비디오 데이터의 유선 또는 무선 네트워크 통신을 통해, 또는 물리적 데이터 저장 매체들에 액세스함으로써) 획득될 수도 있다. 비디오 데이터 메모리 (151) 은, 인코딩된 비디오 비트스트림으로부터 인코딩된 비디오 데이터를 저장하는 코딩된 픽처 버퍼 (CPB) 를 형성할 수도 있다. 디코딩된 픽처 버퍼 (162) 는, 예를 들어, 인트라- 또는 인터-코딩 모드들에서 비디오 디코더 (30) 에 의해 비디오 데이터를 디코딩함에 있어서 사용하기 위한 레퍼런스 비디오 데이터를 저장하는 레퍼런스 픽처 메모리일 수도 있다. 비디오 데이터 메모리 (151) 및 디코딩된 픽처 버퍼 (162) 는 동기식 DRAM (SDRAM) 을 포함한 동적 랜덤 액세스 메모리 (DRAM), 자기저항성 RAM (MRAM), 저항성 RAM (RRAM), 또는 다른 타입들의 메모리 디바이스들과 같은 다양한 메모리 디바이스들 중 임의의 메모리 디바이스에 의해 형성될 수도 있다. 비디오 데이터 메모리 (151) 및 디코딩된 픽처 버퍼 (162) 는 동일한 메모리 디바이스 또는 별도의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에 있어서, 비디오 데이터 메모리 (151) 는 비디오 디코더 (30) 의 다른 컴포넌트들과 온-칩형이거나 또는 그 컴포넌트들에 대하여 오프-칩형일 수도 있다.
코딩된 픽처 버퍼 (CPB) 는 비트스트림의 인코딩된 비디오 데이터 (예를 들어, NAL 유닛들) 를 수신 및 저장할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 인코딩된 비디오 데이터 (예를 들어, NAL 유닛들) 를 CPB 로부터 수신하고, NAL 유닛들을 파싱하여 신택스 엘리먼트들을 디코딩할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 NAL 유닛들에 있어서의 엔트로피 인코딩된 신택스 엘리먼트들을 엔트로피 디코딩할 수도 있다. 예측 프로세싱 유닛 (152), 역양자화 유닛 (154), 역변환 프로세싱 유닛 (156), 복원 유닛 (158), 및 필터 유닛 (160) 은 비트스트림으로부터 추출된 신택스 엘리먼트들에 기초하여 디코딩된 비디오 데이터를 생성할 수도 있다.
비트스트림의 NAL 유닛들은 코딩된 슬라이스 NAL 유닛들을 포함할 수도 있다. 비트스트림을 디코딩하는 부분으로서, 엔트로피 디코딩 유닛 (150) 은 코딩된 슬라이스 NAL 유닛들로부터 신택스 엘리먼트들을 추출 및 엔트로피 디코딩할 수도 있다. 코딩된 슬라이스들 각각은 슬라이스 헤더 및 슬라이스 데이터를 포함할 수도 있다. 슬라이스 헤더는 슬라이스에 관련된 신택스 엘리먼트들을 포함할 수도 있다. 슬라이스 헤더에 있어서의 신택스 엘리먼트들은, 슬라이스를 포함하는 픽처와 연관된 PPS 를 식별하는 신택스 엘리먼트를 포함할 수도 있다.
비트스트림으로부터 신택스 엘리먼트들을 디코딩하는 것에 부가하여, 비디오 디코더 (30) 는 비-파티셔닝된 CU 에 대해 복원 동작을 수행할 수도 있다. 비-파티셔닝된 CU 에 대해 복원 동작을 수행하기 위해, 비디오 디코더 (30) 는 CU 의 각각의 TU 에 대해 복원 동작을 수행할 수도 있다. CU 의 각각의 TU 에 대해 복원 동작을 수행함으로써, 비디오 디코더 (30) 는 CU 의 잔차 블록들을 복원할 수도 있다.
CU 의 TU 에 대해 복원 동작을 수행하는 부분으로서, 역양자화 유닛 (154) 은 TU 와 연관된 계수 블록들을 역양자화, 즉, 탈양자화할 수도 있다. 역양자화 유닛 (154) 은 TU 의 CU 와 연관된 QP 값을 이용하여, 양자화도 및 유사하게, 적용할 역양자화 유닛 (154) 에 대한 역양자화도를 결정할 수도 있다. 즉, 압축 비율, 즉, 오리지널 시퀀스 및 압축된 시퀀스를 나타내는데 사용된 비트들의 수의 비율은, 변환 계수들을 양자화할 경우에 사용된 QP 의 값을 조정함으로써 제어될 수도 있다. 압축 비율은 또한, 채용된 엔트로피 코딩의 방법에 의존할 수도 있다.
역양자화 유닛 (154) 이 계수 블록을 역양자화한 이후, 역변환 프로세싱 유닛 (156) 은 TU 와 연관된 잔차 블록을 생성하기 위하여 계수 블록에 하나 이상의 역변환들을 적용할 수도 있다. 예를 들어, 역변환 프로세싱 유닛 (156) 은 역 DCT, 역 정수 변환, 역 KLT (Karhunen-Loeve transform), 역 회전 변환, 역 지향성 변환, 또는 다른 역변환을 계수 블록에 적용할 수도 있다.
PU 가 인트라 예측을 이용하여 인코딩되면, 인트라-예측 프로세싱 유닛 (166) 은 인트라 예측을 수행하여 PU 에 대한 예측 블록들을 생성할 수도 있다. 인트라-예측 프로세싱 유닛 (166) 은 인트라 예측 모드를 이용하여, 공간적으로 이웃한 PU들의 예측 블록들에 기초하여 PU 에 대한 예측 루마, Cb, 및 Cr 블록들을 생성할 수도 있다. 인트라-예측 프로세싱 유닛 (166) 은 비트스트림으로부터 디코딩된 하나 이상의 신택스 엘리먼트들에 기초하여 PU 에 대한 인트라 예측 모드를 결정할 수도 있다.
예측 프로세싱 유닛 (152) 은 비트스트림으로부터 추출된 신택스 엘리먼트들에 기초하여 제 1 레퍼런스 픽처 리스트 (RefPicList0) 및 제 2 레퍼런스 픽처 리스트 (RefPicList1) 를 구성할 수도 있다. 더욱이, PU 가 인터 예측을 이용하여 인코딩되면, 엔트로피 디코딩 유닛 (150) 은 PU 에 대한 모션 정보를 추출할 수도 있다. 모션 보상 유닛 (164) 은, PU 의 모션 정보에 기초하여, PU 에 대한 하나 이상의 레퍼런스 영역들을 결정할 수도 있다. 모션 보상 유닛 (164) 은, PU 에 대한 하나 이상의 레퍼런스 블록들에서의 샘플들 블록들에 기초하여, PU 에 대한 예측 루마, Cb, 및 Cr 블록들을 생성할 수도 있다.
복원 유닛 (158) 은 CU 의 TU들과 연관된 루마, Cb, 및 Cr 변환 블록들 및 CU 의 PU들의 예측 루마, Cb, 및 Cr 블록들, 즉, 적용가능할 때 인트라-예측 데이터 또는 인터-예측 데이터 중 어느 하나를 이용하여, CU 의 루마, Cb, 및 Cr 코딩 블록들을 복원할 수도 있다. 예를 들어, 복원 유닛 (158) 은 루마, Cb, 및 Cr 변환 블록들의 샘플들을 예측 루마, Cb, 및 Cr 블록들의 대응하는 샘플들에 가산하여, CU 의 루마, Cb, 및 Cr 코딩 블록들을 복원할 수도 있다.
필터 유닛 (160) 은 디블록킹 동작을 수행하여, CU 의 루마, Cb, 및 Cr 코딩 블록들과 연관된 블록킹 아티팩트들을 감소시킬 수도 있다. 비디오 디코더 (30) 는 CU 의 루마, Cb, 및 Cr 코딩 블록들을 디코딩된 픽처 버퍼 (162) 에 저장할 수도 있다. 디코딩된 픽처 버퍼 (162) 는 후속 모션 보상, 인트라 예측, 및 도 1 의 디스플레이 디바이스 (32) 와 같은 디스플레이 디바이스 상으로의 프리젠테이션을 위한 레퍼런스 픽처들을 제공할 수도 있다. 예를 들어, 비디오 디코더 (30) 는, 디코딩된 픽처 버퍼 (162) 에서의 루마, Cb, 및 Cr 블록들에 기초하여, 다른 CU들의 PU들에 대해 인트라 예측 또는 인터 예측 동작들을 수행할 수도 있다.
본 개시의 다양한 예들에 따르면, 비디오 디코더 (30) 는 LM 기반 코딩을 수행하도록 구성될 수도 있다. LM 기반 디코딩 유닛 (165) 은 선형 모델 (LM) 예측 디코딩을 수행할 수도 있다. 예를 들어, LM 기반 디코딩 유닛 (165) 은, 디코딩되고 있는 현재 크로마 블록에 대응하는 루마 블록의 복원된 루마 샘플들을 다운샘플링할 수도 있다. LM 기반 디코딩 유닛 (165) 은 루마 블록의 다운샘플링된 복원된 루마 샘플들을 스케일링하여 크로마 블록에 대한 예측 블록을 생성할 수도 있다. 그 후, 복원 유닛 (158) 은 생성된 예측 블록을 디코딩된 잔차 데이터에 가산할 수도 있다. 일부 예들에 있어서, LM 기반 디코딩 유닛 (165) 은 그러한 기법들을 크로스 컴포넌트 잔차 예측의 부분으로서 적용할 수도 있다. 이 경우, 크로마 블록은 크로마 잔차 블록이고, 루마 블록은 루마 잔차 블록이다.
본 개시에서 설명된 기법들에 있어서, LM 기반 디코딩 유닛 (165) 은 상기 예시적인 기법들 중 하나 이상을 루마 블록의 루마 샘플들의 다운샘플링의 부분으로서 구현할 수도 있다. 예를 들어, LM 기반 디코딩 유닛 (165) 은, 디코딩되는 크로마 블록의 특성들에 기초하여 대응하는 루마 블록을 다운샘플링하기 위해 상이한 필터들을 적용할 수도 있다. 디코딩되는 크로마 블록의 특성들의 예들은 디코딩되는 크로마 블록의 포지션을 포함한다. 다른 예로서, LM 기반 디코딩 유닛 (165) 은, 특정 경계 (예를 들어, 픽처, 슬라이스, CU, PU, 또는 TU) 외부에 있는 루마 샘플들에 기초하여 루마 블록에 패딩을 적용할 수도 있다.
이러한 방식으로, 본 개시는, 디코딩되고 있는 크로마 블록에 대한 대응하는 루마 블록을 결정하고, 크로마 블록의 특성에 기초하여 루마 블록에 적용하기 위한 필터를 결정하고, 결정된 필터에 기초하여 루마 블록을 다운샘플링하고, 다운샘플링된 루마 블록에 기초하여 예측 블록을 결정하고, 그리고 예측 블록에 기초하여 크로마 블록을 선형 모델 (LM) 예측 디코딩하도록 구성된 비디오 디코더 (30) 를 설명한다.
본 개시는 또한, 디코딩되고 있는 크로마 블록에 대한 대응하는 루마 블록을 결정하고, 루마 블록이 경계를 넘어서 확장하는 것에 기초하여, 경계를 넘어서 확장하고 그리고 루마 블록의 나머지에 대해 복원된 샘플들을 유지하는 루마 블록의 부분에 패딩을 적용하여 패딩된 루마 블록을 생성하고, 패딩된 루마 블록을 다운샘플링하고, 다운샘플링된 패딩된 루마 블록에 기초하여 예측 블록을 결정하고, 그리고 예측 블록에 기초하여 크로마 블록을 선형 모델 (LM) 예측 디코딩하도록 구성된 비디오 디코더 (30) 를 설명한다.
LM 기반 디코딩 유닛 (165) 은, 디코딩되고 있는 비디오 데이터의 크로마 블록에 대응하는 비디오 데이터의 루마 블록을 결정할 수도 있다. 예측 프로세싱 유닛 (152) 은, 비디오 인코더 (20) 가 비트스트림에서 시그널링하는 신택스 엘리먼트들에 기초하여, 어느 루마 블록 및 크로마 블록들이 서로에 대응하는지를 추적한다.
LM 기반 디코딩 유닛 (165) 은 크로마 블록의 특성에 기초하여 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정한다. 예를 들어, LM 기반 디코딩 유닛 (165) 은 픽처, 슬라이스, CU, PU, 또는 TU 의 경계에 대한 크로마 블록의 위치를 결정할 수도 있다. 비트스트림이 어떻게 픽처들이 CTU들, CU들, 및 PU들로 분할되었는지를 표시하였기 때문에, LM 기반 디코딩 유닛 (165) 은 픽처, CU, PU, 또는 TU 에 대한 크로마 블록의 위치를 결정할 수도 있다.
LM 기반 디코딩 유닛 (165) 은, 경계에 위치되는 크로마 블록의 크로마 샘플들에 대응하는 루마 블록의 루마 샘플들에 제 1 필터를 적용하도록 결정한다. 이에 따라, 경계에 위치되는 크로마 샘플들에 기초하여, LM 기반 디코딩 유닛 (165) 은 대응하는 루마 샘플들에 제 1 필터를 적용하도록 결정할 수도 있다 (예를 들어, 수학식 (12)). LM 기반 디코딩 유닛 (165) 은, 경계에 위치되지 않은 크로마 블록의 크로마 샘플들에 대응하는 루마 블록의 루마 샘플들에 제 2 의 상이한 필터를 적용하도록 결정한다. 이에 따라, 경계에 위치되지 않은 크로마 샘플들에 기초하여, LM 기반 디코딩 유닛 (165) 은 대응하는 루마 샘플들에, 제 1 필터와는 상이한 제 2 필터를 적용하도록 결정할 수도 있다 (예를 들어, 수학식 (13)).
LM 기반 디코딩 유닛 (165) 은 복원된 루마 블록을 DPB (162) 로부터 취출하고, 결정된 필터에 기초하여 루마 블록을 다운샘플링한다. 다운샘플링된 루마 블록은 recL(i,j) 로서 지칭된다. 예를 들어, 크로마 샘플들이 좌측 경계에 있으면, LM 기반 디코딩 유닛 (165) 은 2-탭 필터를 이용하여 다운샘플링을 수행한다 (예를 들어, 수학식 (12) 의 연산들). 크로마 샘플들이 좌측 경계에 있지 않으면, LM 기반 디코딩 유닛 (165) 은 6-탭 필터를 이용하여 다운샘플링을 수행한다 (예를 들어, 수학식 (13) 의 연산들). 일반적으로, 제 1 필터는 제 2 필터보다 더 적은 탭들을 포함한다.
다운샘플링된 루마 블록으로부터, LM 기반 디코딩 유닛 (165) 은 예측 블록을 결정한다. 예를 들어, LM 기반 디코딩 유닛 (165) 은 수학식 (1) 의 연산들을 수행할 수도 있다. 예측 블록을 결정하기 위해, LM 기반 디코딩 유닛 (165) 은
Figure pct00029
및 β 에 대한 값들을 결정한다. LM 기반 디코딩 유닛 (165) 은 수학식들 2-4 의 연산들을 수행하여
Figure pct00030
및 β 값들을 결정할 수도 있다.
Figure pct00031
및 β 값들로, LM 기반 디코딩 유닛 (165) 은 수학식 (1) 에 따라 recL(i,j) 를 스케일링하고 예측 블록을 결정한다.
Figure pct00032
및 β 값들을 결정함에 있어서, LM 기반 디코딩 유닛 (165) 은 (예를 들어, 수학식들 (6) 및 (7) 의 연산들을 수행하여) 하나 이상의 이웃 루마 블록들을 다운샘플링하고, 하나 이상의 이웃 크로마 블록들에 대한 다운샘플링된 이웃 루마 블록들에 기초하여 제 1 파라미터 (예를 들어,
Figure pct00033
) 및 제 2 파라미터 (예를 들어, β) 를 결정할 수도 있다. 하지만, 이웃 블록들의 다운샘플링은 모든 예에서 필요하진 않다. 예를 들어, LM 기반 디코딩 유닛 (165) 은 수학식 (11) 의 연산들을 수행할 수도 있다.
일부 예들에 있어서, LM 기반 디코딩 유닛 (165) 은 크로마 블록의 타입에 기초하여 어느 다운샘플링 필터를 적용할지를 결정할 수도 있다. 예를 들어, 크로마 블록이 제 1 타입 (예를 들어, Cr 또는 Cb) 인 하나의 인스턴스에 있어서, LM 기반 디코딩 유닛 (165) 은 크로마 블록이 제 1 타입인 것에 기초하여 루마 블록에 제 1 필터를 적용하도록 결정할 수도 있다. 크로마 블록이 제 2 타입 (예를 들어, Cr 또는 Cb 중 다른 하나) 인 다른 인스턴스에 있어서, LM 기반 디코딩 유닛 (165) 은 크로마 블록이 제 2 타입인 것에 기초하여 루마 블록에 제 2 의 상이한 필터를 적용하도록 결정할 수도 있다. LM 기반 디코딩 유닛 (165) 이 크로마 블록들의 제 1 및 제 2 타입에 대해 선택하는 필터들은 또한, 경계에 대한 크로마 샘플들의 위치에 기초할 수도 있지만, 모든 예들에서 필수적인 것은 아니다.
상기 설명된 바와 같이, 일부 예들에 있어서, LM 기반 디코딩 유닛 (165) 은, 루마 블록의 루마 샘플들이 픽처, 슬라이스, CU, PU, 또는 TU 중 하나 이상의 외부에 있음을 결정할 수도 있다. 그러한 예들에 있어서, LM 기반 디코딩 유닛 (165) 은 외부에 있는 하나 이상의 루마 샘플들에 대한 루마 샘플 값들을 패딩 값들로 대체할 수도 있다. 예를 들어, LM 기반 디코딩 유닛 (165) 은 미리 구성될 수도 있거나, 또는 패딩 값들이 비디오 데이터 메모리 (151) 에 저장될 수도 있다. LM 기반 디코딩 유닛 (165) 은 외부에 있는 루마 샘플들을 이들 패딩 값들로 대체하고, 결과적인 루마 블록을 비디오 데이터 메모리 (151) 에 저장할 수도 있다. 그 후, LM 기반 디코딩 유닛 (165) 은 패딩 값들을 갖는 루마 블록을 다운샘플링할 수도 있다 (예를 들어, 수학식 (5) 또는 (9) 를 수행함).
비록 상기 예시적인 기법들이 루마 샘플들의 블록인 루마 블록에 관하여 설명되었더라도, 본 개시에서 설명된 기법들은 이에 한정되지 않는다. 일부 예들에 있어서, 루마 블록은, 루마 블록이 루마 샘플들의 블록과 루마 샘플들의 예측 블록 간의 차이를 나타냄을 의미하는 루마 잔차 블록이다. 이러한 루마 잔차 블록은 대응하는 크로마 잔차 블록에 대한 예측 크로마 잔차 블록을 생성하는데 사용될 수도 있다. LM 기반 디코딩 유닛 (165) 은 루마 잔차 블록에 대해 유사한 기능들을 수행하여, 크로마 잔차 블록에 대한 예측 크로마 잔차 블록을 생성할 수도 있다. 예를 들어, 루마 블록이 루마 잔차 블록인 경우들에 대해, LM 기반 디코딩 유닛 (165) 은, 루마 블록이 루마 샘플들의 블록인 예들에 관하여 상기 설명된 기법들과 유사한 기법들을 이용하여 예측 크로마 잔차 블록을 생성하기 위해 루마 잔차 블록을 다운샘플링할 수도 있다. 그러한 기법들은 상기 설명된 예시적인 다운샘플링 필터들을 이용하여 4:2:0 및 4:2:2 샘플링 양자 모두에 (및 가능하게는 필터링으로 4:4:4 에 대해, 단, 다운샘플링에 필수적인 것은 아님) 적용가능할 수도 있다.
LM 기반 디코딩 유닛 (165) 에 관하여 상기 설명된 예시적인 기법들은 특정 조건들 하에서 적용가능할 수도 있지만, 이것이 모든 경우에 대해 필수조건은 아니다. 예를 들어, 현재 슬라이스가 인트라-코딩된 슬라이스가 아니면, LM 기반 디코딩 유닛 (165) 은 크로마 예측을 수행할 수도 있다. 다른 예로서, 이웃 CU 가 인터-코딩되면, LM 기반 디코딩 유닛 (165) 은 크로마 예측을 수행할 수도 있다. 다른 예로서, RefPicList0 및/또는 RefPicList1 에서의 레퍼런스 픽처들이 현재 픽처의 POC 값보다 작은 POC 값들을 가지면, LM 기반 디코딩 유닛 (165) 은 크로마 예측을 수행할 수도 있다. 하지만, 이들 조건들은 단지 예들로서 설명된 것 뿐이다. LM 기반 디코딩 유닛 (165) 이 모든 경우들에 있어서 크로마 예측을 수행하는 것이 가능할 수도 있으며, 크로마 예측이 LM 기반 디코딩 유닛 (165) 에 기초하여 수행되는지 여부는 결국 어느 코딩이 최적의 비디오 코딩을 제공하는지에 기초하여 결정된다.
LM 기반 디코딩 유닛 (152) 은 예측 블록을 복원 유닛 (158) 에 출력할 수도 있다. 복원 유닛 (158) 은 또한, (예를 들어, 잔차 블록에 대한 비트스트림에서의 정보가 엔트로피 디코딩 유닛 (150) 으로 엔트로피 디코딩되고, 역양자화 유닛 (154) 으로 역양자화되고, 역변환 프로세싱 유닛 (156) 으로 역변환된 이후) 잔차 블록을 수신한다. 복원 유닛 (158) 은 잔차 블록을 예측 블록과 가산하여 크로마 블록을 복원한다.
도 8 은 비디오 데이터를 선형 모델 (LM) 예측 인코딩하는 하나의 예시적인 기법을 도시한 플로우차트이다. 도시된 바와 같이, LM 기반 인코딩 유닛 (122) 은, 인코딩되고 있는 비디오 데이터의 크로마 블록에 대응하는 비디오 데이터의 루마 블록을 결정한다 (200). 예를 들어, 예측 프로세싱 유닛 (100) 은 픽처를 CTU들, CU들, 및 PU들로 분할하고, 비디오 데이터 메모리 (101) 로의 저장을 위해 루마 블록들 및 크로마 블록들을 구축하며, 이로부터, LM 기반 인코딩 유닛 (122) 은 어느 루마 블록이 어느 크로마 블록에 대응하는지를 결정할 수 있다. 부가적으로, 어느 루마 블록이 어느 크로마 블록에 대응하는지의 결정에 기초하여, LM 기반 인코딩 유닛 (122) 은 또한, 루마 블록의 어느 루마 샘플들이 크로마 블록의 어느 크로마 샘플들에 대응하는지를 결정할 수도 있다. 예를 들어, 4:2:0 샘플링에 있어서, 4개의 루마 샘플들이 하나의 크로마 샘플에 대응한다.
LM 기반 인코딩 유닛 (122) 은 크로마 블록의 특성에 기초하여 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정한다 (202). 예를 들어, LM 기반 인코딩 유닛 (122) 은, 픽처, 슬라이스, CU, PU, 또는 TU 의 경계 (예를 들어, 좌측 경계) 에 위치되는 크로마 블록의 크로마 샘플들에 대응하는 루마 블록의 루마 샘플들에 제 1 필터 (예를 들어, 2-탭 필터) 를 적용하도록 결정한다. LM 기반 인코딩 유닛 (122) 은, 경계에 위치되지 않은 크로마 블록의 크로마 샘플들에 대응하는 루마 블록의 루마 샘플들에 제 2 필터 (예를 들어, 6-탭 필터) 를 적용하도록 결정한다.
LM 기반 인코딩 유닛 (122) 은 결정된 필터에 기초하여 루마 블록을 다운샘플링한다 (204). 예를 들어, 결정된 필터에 기초하여 루마 블록을 다운샘플링하기 위해, LM 기반 인코딩 유닛 (122) 은, 픽처, 슬라이스, CU, PU, 또는 TU 의 경계 (예를 들어, 좌측 경계) 에 있는 크로마 블록의 크로마 샘플에 대응하는 루마 블록의 루마 샘플들에 대해 수학식 12 의 연산들을 수행하고, 픽처, 슬라이스, CU, PU, 또는 TU 의 경계에 있지 않은 크로마 블록의 크로마 샘플에 대응하는 루마 블록의 루마 샘플들에 대해 수학식 13 의 연산들을 수행할 수도 있다.
LM 기반 인코딩 유닛 (122) 은 다운샘플링된 루마 블록에 기초하여 예측 블록을 결정할 수도 있다 (206). 예를 들어, LM 기반 인코딩 유닛 (122) 은, 루마 블록에 이웃하는 하나 이상의 이웃 루마 블록들을 다운샘플링할 수도 있다. 하지만, 이웃 블록들의 다운샘플링은 모든 예들에서 필요하진 않을 수도 있다. LM 기반 인코딩 유닛 (122) 은, 다운샘플링된 하나 이상의 이웃 루마 블록들 및 인코딩되는 크로마 블록에 이웃하는 하나 이상의 이웃 크로마 블록들에 기초하여 제 1 파라미터 (
Figure pct00034
) 및 제 2 파라미터 (β) 를 결정할 수도 있다. LM 기반 인코딩 유닛 (122) 은 (예를 들어, 수학식 (1) 의 연산들을 수행함으로써) 다운샘플링된 루마 블록 그리고 제 1 파라미터 및 제 2 파라미터에 기초하여 예측 블록을 결정할 수도 있다.
비디오 인코더 (20) 는 크로마 블록 및 예측 블록에 기초하여 잔차 블록을 생성한다 (208). 예를 들어, 잔차 생성 유닛 (102) 은 크로마 블록과 예측 블록 간의 잔차를 결정하고, 이 잔차 블록은 변환되고, 양자화되고, 엔트로피 인코딩된다. 비디오 인코더 (20) 는, 비디오 디코더 (30) 가 크로마 블록을 복원하는데 사용하는 잔차 블록을 나타내는 정보를 시그널링한다.
도 9 는 비디오 데이터를 선형 모델 (LM) 예측 디코딩하는 하나의 예시적인 기법을 도시한 플로우차트이다. 도시된 바와 같이, LM 기반 디코딩 유닛 (165) 은, 디코딩되고 있는 비디오 데이터의 크로마 블록에 대응하는 비디오 데이터의 루마 블록을 결정한다 (210). 예를 들어, 예측 프로세싱 유닛 (152) 은 픽처가 CTU들, CU들, 및 PU들로 분할되는 방식을 표시하는 정보를 수신하고, 이에 따라, 루마 블록들 및 크로마 블록들을 구축하며, 이로부터, LM 기반 디코딩 유닛 (165) 은 어느 루마 블록이 어느 크로마 블록에 대응하는지를 결정할 수 있다. 부가적으로, 어느 루마 블록이 어느 크로마 블록에 대응하는지의 결정에 기초하여, LM 기반 디코딩 유닛 (165) 은 또한, 루마 블록의 어느 루마 샘플들이 크로마 블록의 어느 크로마 샘플들에 대응하는지를 결정할 수도 있다. 예를 들어, 4:2:0 샘플링에 있어서, 4개의 루마 샘플들이 하나의 크로마 샘플에 대응한다.
LM 기반 디코딩 유닛 (165) 은 크로마 블록의 특성에 기초하여 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정한다 (212). 예를 들어, LM 기반 디코딩 유닛 (165) 은, 픽처, 슬라이스, CU, PU, 또는 TU 의 경계 (예를 들어, 좌측 경계) 에 위치되는 크로마 블록의 크로마 샘플들에 대응하는 루마 블록의 루마 샘플들에 제 1 필터 (예를 들어, 2-탭 필터) 를 적용하도록 결정하며, 여기서, 경계에 위치된 크로마 샘플들은 경계 바로 위에, 경계에 인접하게, 그리고 가능하게는, 특정 수의 샘플들 내에 위치된 샘플들이다. LM 기반 디코딩 유닛 (165) 은, 경계에 위치되지 않은 크로마 블록의 크로마 샘플들에 대응하는 루마 블록의 루마 샘플들에 제 2 필터 (예를 들어, 6-탭 필터) 를 적용하도록 결정한다.
LM 기반 디코딩 유닛 (165) 은 결정된 필터에 기초하여 루마 블록을 다운샘플링한다 (214). 예를 들어, 결정된 필터에 기초하여 루마 블록을 다운샘플링하기 위해, LM 기반 디코딩 유닛 (165) 은, 픽처, 슬라이스, CU, PU, 또는 TU 의 경계 (예를 들어, 좌측 경계) 에 있는 크로마 블록의 크로마 샘플에 대응하는 루마 블록의 루마 샘플들에 대해 수학식 12 의 연산들을 수행하고, 픽처, CU, PU, 또는 TU 의 경계에 있지 않은 크로마 블록의 크로마 샘플에 대응하는 루마 블록의 루마 샘플들에 대해 수학식 13 의 연산들을 수행할 수도 있다.
LM 기반 디코딩 유닛 (165) 은 다운샘플링된 루마 블록에 기초하여 예측 블록을 결정할 수도 있다 (216). 예를 들어, LM 기반 디코딩 유닛 (165) 은, 루마 블록에 이웃하는 하나 이상의 이웃 루마 블록들을 다운샘플링할 수도 있다. 하지만, 이웃 블록들의 다운샘플링은 모든 예들에서 필요하진 않을 수도 있다. LM 기반 디코딩 유닛 (165) 은, 다운샘플링된 하나 이상의 이웃 루마 블록들 및 디코딩되는 크로마 블록에 이웃하는 하나 이상의 이웃 크로마 블록들에 기초하여 제 1 파라미터 (
Figure pct00035
) 및 제 2 파라미터 (β) 를 결정할 수도 있다. LM 기반 디코딩 유닛 (165) 은 (예를 들어, 수학식 (1) 의 연산들을 수행함으로써) 다운샘플링된 루마 블록 그리고 제 1 파라미터 및 제 2 파라미터에 기초하여 예측 블록을 결정할 수도 있다.
비디오 디코더 (30) 는 예측 블록 및 잔차 블록에 기초하여 크로마 블록을 복원한다 (218). 비디오 디코더 (30) 는 잔차 블록에 대한 비트스트림으로부터의 정보를 엔트로피 디코딩하고, 역양자화하고, 그리고 역변환한 이후 잔차 블록을 생성한다. 예를 들어, 복원 유닛 (158) 은 LM 예측에 의해 생성된 예측 블록을 비디오 인코더 (20) 로부터 수신된 잔차 블록과 합산하여, DPB (162) 에 저장되는 디코딩된 크로마 블록을 복원한다.
상기 설명된 기법들은 비디오 인코더 (20) (도 1 및 도 2) 및/또는 비디오 디코더 (30) (도 1 및 도 3) 에 의해 수행될 수도 있고, 이들 양자 모두는 일반적으로 비디오 코더로서 지칭될 수도 있다. 유사하게, 비디오 코딩은, 적용가능할 때, 비디오 인코딩 또는 비디오 디코딩을 지칭할 수도 있다. 부가적으로, 비디오 인코딩 및 비디오 디코딩은 일반적으로, 비디오 데이터를 "프로세싱하는 것" 으로서 지칭될 수도 있다.
본 명세서에서 설명된 기법들 모두는 개별적으로 또는 조합하여 사용될 수도 있음이 이해되어야 한다. 본 개시는, 블록 사이즈, 슬라이스 타입 등과 같은 특정 팩터들에 의존하여 변할 수도 있는 수개의 시그널링 방법들을 포함한다. 신택스 엘리먼트들을 시그널링하거나 또는 추론함에 있어서의 그러한 변동은 인코더 및 디코더에 선험적으로 공지될 수도 있거나, 또는 비디오 파라미터 세트 (VPS), 시퀀스 파라미터 세트 (SPS), 픽처 파라미터 세트 (PPS), 슬라이스 헤더에서, 타일 레벨 등등에서, 명시적으로 시그널링될 수도 있다.
예에 의존하여, 본 명세서에서 설명된 기법들의 임의의 특정 작동들 또는 이벤트들은 상이한 시퀀스로 수행될 수 있고, 전체적으로 부가되거나 병합되거나 또는 제거될 수도 있음 (예를 들어, 설명된 모든 작동들 또는 이벤트들이 그 기법들의 실시를 위해 필수적인 것은 아님) 이 인식되어야 한다. 더욱이, 특정 예들에 있어서, 작동들 또는 이벤트들은 순차적인 것보다는, 예를 들어, 다중-스레딩된 프로세싱, 인터럽트 프로세싱, 또는 다중의 프로세서들을 통해 동시에 수행될 수도 있다. 부가적으로, 본 개시의 특정 양태들이 명료화를 위해 단일 모듈 또는 유닛에 의해 수행되는 것으로서 설명되지만, 본 개시의 기법들은 비디오 코더와 연관된 유닛들 또는 모듈들의 조합에 의해 수행될 수도 있음이 이해되어야 한다.
기법들의 다양한 양태들의 특정 조합들이 상기 설명되지만, 이들 조합들은 단지 본 개시에서 설명된 기법들의 예들을 예시하기 위해 제공될 뿐이다. 이에 따라, 본 개시의 기법들은 이들 예시적인 조합들로 한정되지 않아야 하며, 본 개시에서 설명된 기법들의 다양한 양태들의 임의의 상상가능한 조합을 포괄할 수도 있다.
하나 이상의 예들에 있어서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 소프트웨어에서 구현된다면, 그 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상으로 저장 또는 전송되고 하드웨어 기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체들은 데이터 저장 매체들과 같은 유형의 매체에 대응하는 컴퓨터 판독가능 저장 매체들, 또는 예를 들어, 통신 프로토콜에 따라 일 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수도 있다. 이러한 방식으로, 컴퓨터 판독가능 매체들은 일반적으로 (1) 비-일시적인 유형의 컴퓨터 판독가능 저장 매체들 또는 (2) 신호 또는 캐리어파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체들은 본 개시에서 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 가용 매체들일 수도 있다. 컴퓨터 프로그램 제품이 컴퓨터 판독가능 매체를 포함할 수도 있다.
한정이 아닌 예로서, 그러한 컴퓨터 판독가능 저장 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장부, 자기 디스크 저장부 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 이용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 커넥션이 컴퓨터 판독가능 매체로 적절히 명명된다. 예를 들어, 동축 케이블, 광섬유 케이블, 꼬임쌍선, 디지털 가입자 라인 (DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 이용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 명령들이 송신된다면, 동축 케이블, 광섬유 케이블, 꼬임쌍선, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의에 포함된다. 하지만, 컴퓨터 판독가능 저장 매체들 및 데이터 저장 매체들은 커넥션들, 캐리어파들, 신호들, 또는 다른 일시적 매체를 포함하지 않지만 대신 비-일시적인 유형의 저장 매체들로 지향됨이 이해되어야 한다. 본 명세서에서 사용된 바와 같은 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루레이 디스크를 포함하며, 여기서, 디스크 (disk) 는 통상적으로 데이터를 자기적으로 재생하지만 디스크 (disc) 는 레이저들을 이용하여 데이터를 광학적으로 재생한다. 상기의 조합들이 또한, 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 주문형 집적회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 등가의 집적된 또는 별도의 로직 회로부와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 이에 따라, 본 명세서에서 사용된 바와 같은 용어 "프로세서" 는 본 명세서에서 설명된 기법들의 구현에 적합한 전술한 구조 또는 임의의 다른 구조 중 임의의 구조를 지칭할 수도 있다. 부가적으로, 일부 양태들에 있어서, 본 명세서에서 설명된 기능은 인코딩 및 디코딩을 위해 구성되거나 또는 결합된 코덱에서 통합된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수도 있다. 또한, 그 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들에서 완전히 구현될 수 있다.
본 개시의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC들의 세트 (예를 들어, 칩 세트) 를 포함하여 매우 다양한 디바이스들 또는 장치들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들 또는 유닛들이 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시에서 설명되지만, 반드시 상이한 하드웨어 유닛들에 의한 실현을 요구하지는 않는다. 오히려, 상기 설명된 바와 같이, 다양한 유닛들은 적합한 소프트웨어 및/또는 펌웨어와 함께 상기 설명된 바와 같은 하나 이상의 프로세서들을 포함하여 코덱 하드웨어 유닛으로 결합되거나 또는 상호운용식 하드웨어 유닛들의 집합에 의해 제공될 수도 있다.
다양한 예들이 설명되었다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.

Claims (47)

  1. 비디오 데이터를 선형 모델 (LM) 예측 디코딩하는 방법으로서,
    디코딩되고 있는 상기 비디오 데이터의 크로마 블록에 대응하는 상기 비디오 데이터의 루마 블록을 결정하는 단계;
    상기 크로마 블록의 특성에 기초하여 상기 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정하는 단계;
    결정된 상기 필터에 기초하여 상기 루마 블록을 다운샘플링하는 단계;
    다운샘플링된 상기 루마 블록에 기초하여 예측 블록을 결정하는 단계; 및
    상기 예측 블록 및 잔차 블록에 기초하여 상기 크로마 블록을 복원하는 단계를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 크로마 블록의 특성은 픽처, 슬라이스, 코딩 유닛 (CU), 예측 유닛 (PU), 또는 변환 유닛 (TU) 중 하나의 경계에 대한 상기 크로마 블록의 크로마 샘플들의 위치를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하는 방법.
  3. 제 2 항에 있어서,
    상기 경계는 좌측 픽처 경계, 좌측 슬라이스 경계, 좌측 CU 경계, 좌측 PU 경계, 또는 좌측 TU 경계 중 하나를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하는 방법.
  4. 제 1 항에 있어서,
    적용하기 위한 상기 필터를 결정하는 단계는,
    경계에 위치되는 상기 크로마 블록의 크로마 샘플들에 대응하는 상기 루마 블록의 루마 샘플들에 제 1 필터를 적용하도록 결정하는 단계; 및
    상기 경계에 위치되지 않은 상기 크로마 블록의 크로마 샘플들에 대응하는 상기 루마 블록의 루마 샘플들에, 상기 제 1 필터와는 상이한 제 2 필터를 적용하도록 결정하는 단계를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하는 방법.
  5. 제 4 항에 있어서,
    상기 제 1 필터는 2-탭 필터를 포함하고 상기 제 2 필터는 6-탭 필터를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하는 방법.
  6. 제 1 항에 있어서,
    상기 루마 블록에 이웃하는 하나 이상의 이웃 루마 블록들을 다운샘플링하는 단계; 및
    다운샘플링된 상기 하나 이상의 이웃 루마 블록들 및 상기 크로마 블록에 이웃하는 하나 이상의 이웃 크로마 블록들에 기초하여 제 1 파라미터 및 제 2 파라미터를 결정하는 단계를 더 포함하고,
    상기 예측 블록을 결정하는 단계는 다운샘플링된 상기 루마 블록 그리고 상기 제 1 파라미터 및 상기 제 2 파라미터에 기초하여 상기 예측 블록을 결정하는 단계를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하는 방법.
  7. 제 1 항에 있어서,
    상기 루마 블록에 이웃하는 하나 이상의 이웃 루마 블록들 및 상기 크로마 블록에 이웃하는 하나 이상의 이웃 크로마 블록들에 기초하여 파라미터들의 제 1 세트 및 제 2 파라미터를 결정하는 단계를 더 포함하고,
    상기 예측 블록을 결정하는 단계는 다운샘플링된 상기 루마 블록, 상기 파라미터들의 제 1 세트, 및 상기 제 2 파라미터에 기초하여 상기 예측 블록을 결정하는 단계를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하는 방법.
  8. 제 1 항에 있어서,
    적용하기 위한 상기 필터를 결정하는 단계는,
    상기 크로마 블록이 Cb 인 하나의 인스턴스에 있어서, 상기 크로마 블록이 제 1 타입인 것에 기초하여 상기 루마 블록에 제 1 필터를 적용하도록 결정하는 단계; 및
    상기 크로마 블록이 Cr 인 다른 인스턴스에 있어서, 상기 크로마 블록이 제 2 타입인 것에 기초하여 상기 루마 블록에, 상기 제 1 필터와는 상이한 제 2 필터를 적용하도록 결정하는 단계를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하는 방법.
  9. 제 1 항에 있어서,
    상기 루마 블록의 하나 이상의 루마 샘플들은 픽처, 코딩 유닛 (CU), 예측 유닛 (PU), 또는 변환 유닛 (TU) 중 하나 이상의 외부에 있고,
    상기 비디오 데이터를 선형 모델 (LM) 예측 디코딩하는 방법은,
    외부에 있는 상기 하나 이상의 루마 샘플들에 대한 루마 샘플 값들을 패딩 값들로 패딩하는 단계를 더 포함하고,
    상기 루마 블록을 다운샘플링하는 단계는 상기 패딩 값들을 갖는 상기 루마 블록을 다운샘플링하는 단계를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하는 방법.
  10. 제 1 항에 있어서,
    상기 루마 블록은 루마 잔차 블록을 포함하고, 상기 크로마 블록은 크로마 잔차 블록을 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하는 방법.
  11. 비디오 데이터를 선형 모델 (LM) 예측 인코딩하는 방법으로서,
    인코딩되고 있는 상기 비디오 데이터의 크로마 블록에 대응하는 상기 비디오 데이터의 루마 블록을 결정하는 단계;
    상기 크로마 블록의 특성에 기초하여 상기 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정하는 단계;
    결정된 상기 필터에 기초하여 상기 루마 블록을 다운샘플링하는 단계;
    다운샘플링된 상기 루마 블록에 기초하여 예측 블록을 결정하는 단계; 및
    상기 크로마 블록 및 상기 예측 블록에 기초하여 잔차 블록을 생성하는 단계를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하는 방법.
  12. 제 11 항에 있어서,
    상기 크로마 블록의 특성은 픽처, 슬라이스, 코딩 유닛 (CU), 예측 유닛 (PU), 또는 변환 유닛 (TU) 중 하나의 경계에 대한 상기 크로마 블록의 크로마 샘플들의 위치를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하는 방법.
  13. 제 12 항에 있어서,
    상기 경계는 좌측 픽처 경계, 좌측 슬라이스 경계, 좌측 CU 경계, 좌측 PU 경계, 또는 좌측 TU 경계 중 하나를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하는 방법.
  14. 제 11 항에 있어서,
    적용하기 위한 상기 필터를 결정하는 단계는,
    경계에 위치되는 상기 크로마 블록의 크로마 샘플들에 대응하는 상기 루마 블록의 루마 샘플들에 제 1 필터를 적용하도록 결정하는 단계; 및
    상기 경계에 위치되지 않은 상기 크로마 블록의 크로마 샘플들에 대응하는 상기 루마 블록의 루마 샘플들에 제 2 필터를 적용하도록 결정하는 단계를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하는 방법.
  15. 제 14 항에 있어서,
    상기 제 1 필터는 2-탭 필터를 포함하고 상기 제 2 필터는 6-탭 필터를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하는 방법.
  16. 제 11 항에 있어서,
    상기 루마 블록에 이웃하는 하나 이상의 이웃 루마 블록들을 다운샘플링하는 단계; 및
    다운샘플링된 상기 하나 이상의 이웃 루마 블록들 및 상기 크로마 블록에 이웃하는 하나 이상의 이웃 크로마 블록들에 기초하여 제 1 파라미터 및 제 2 파라미터를 결정하는 단계를 더 포함하고,
    상기 예측 블록을 결정하는 단계는 다운샘플링된 상기 루마 블록 그리고 상기 제 1 파라미터 및 상기 제 2 파라미터에 기초하여 상기 예측 블록을 결정하는 단계를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하는 방법.
  17. 제 11 항에 있어서,
    상기 루마 블록에 이웃하는 하나 이상의 이웃 루마 블록들 및 상기 크로마 블록에 이웃하는 하나 이상의 이웃 크로마 블록들에 기초하여 파라미터들의 제 1 세트 및 제 2 파라미터를 결정하는 단계를 더 포함하고,
    상기 예측 블록을 결정하는 단계는 다운샘플링된 상기 루마 블록, 상기 파라미터들의 제 1 세트, 및 상기 제 2 파라미터에 기초하여 상기 예측 블록을 결정하는 단계를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하는 방법.
  18. 제 11 항에 있어서,
    적용하기 위한 상기 필터를 결정하는 단계는,
    상기 크로마 블록이 Cb 인 하나의 인스턴스에 있어서, 상기 크로마 블록이 제 1 타입인 것에 기초하여 상기 루마 블록에 제 1 필터를 적용하도록 결정하는 단계; 및
    상기 크로마 블록이 Cr 인 다른 인스턴스에 있어서, 상기 크로마 블록이 제 2 타입인 것에 기초하여 상기 루마 블록에 제 2 의 상이한 필터를 적용하도록 결정하는 단계를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하는 방법.
  19. 제 11 항에 있어서,
    상기 루마 블록의 하나 이상의 루마 샘플들은 픽처, 코딩 유닛 (CU), 예측 유닛 (PU), 또는 변환 유닛 (TU) 중 하나 이상의 외부에 있고,
    상기 비디오 데이터를 선형 모델 (LM) 예측 인코딩하는 방법은,
    외부에 있는 상기 하나 이상의 루마 샘플들에 대한 루마 샘플 값들을 패딩 값들로 패딩하는 단계를 더 포함하고,
    상기 루마 블록을 다운샘플링하는 단계는 상기 패딩 값들을 갖는 상기 루마 블록을 다운샘플링하는 단계를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하는 방법.
  20. 제 11 항에 있어서,
    상기 루마 블록은 루마 잔차 블록을 포함하고, 상기 크로마 블록은 크로마 잔차 블록을 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하는 방법.
  21. 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 디바이스로서,
    상기 비디오 데이터를 저장하도록 구성된 비디오 데이터 메모리; 및
    집적 회로부를 포함하는 비디오 디코더를 포함하고,
    상기 비디오 디코더는,
    디코딩되고 있는 상기 비디오 데이터의 크로마 블록에 대응하는 상기 비디오 데이터 메모리에 저장된 상기 비디오 데이터의 루마 블록을 결정하고;
    상기 크로마 블록의 특성에 기초하여 상기 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정하고;
    결정된 상기 필터에 기초하여 상기 루마 블록을 다운샘플링하고;
    다운샘플링된 상기 루마 블록에 기초하여 예측 블록을 결정하고; 그리고
    상기 예측 블록 및 잔차 블록에 기초하여 상기 크로마 블록을 복원하도록
    구성되는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 디바이스.
  22. 제 21 항에 있어서,
    상기 크로마 블록의 특성은 픽처, 슬라이스, 코딩 유닛 (CU), 예측 유닛 (PU), 또는 변환 유닛 (TU) 중 하나의 경계에 대한 상기 크로마 블록의 크로마 샘플들의 위치를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 디바이스.
  23. 제 22 항에 있어서,
    상기 경계는 좌측 픽처 경계, 좌측 슬라이스 경계, 좌측 CU 경계, 좌측 PU 경계, 또는 좌측 TU 경계 중 하나를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 디바이스.
  24. 제 21 항에 있어서,
    적용하기 위한 상기 필터를 결정하기 위해, 상기 비디오 디코더는,
    경계에 위치되는 상기 크로마 블록의 크로마 샘플들에 대응하는 상기 루마 블록의 루마 샘플들에 제 1 필터를 적용하도록 결정하고; 그리고
    상기 경계에 위치되지 않은 상기 크로마 블록의 크로마 샘플들에 대응하는 상기 루마 블록의 루마 샘플들에, 상기 제 1 필터와는 상이한 제 2 필터를 적용하도록 결정하기 위해
    구성되는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 디바이스.
  25. 제 24 항에 있어서,
    상기 제 1 필터는 2-탭 필터를 포함하고 상기 제 2 필터는 6-탭 필터를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 디바이스.
  26. 제 21 항에 있어서,
    상기 비디오 디코더는,
    상기 루마 블록에 이웃하는 하나 이상의 이웃 루마 블록들을 다운샘플링하고; 그리고
    다운샘플링된 상기 하나 이상의 이웃 루마 블록들 및 상기 크로마 블록에 이웃하는 하나 이상의 이웃 크로마 블록들에 기초하여 제 1 파라미터 및 제 2 파라미터를 결정하도록
    구성되고,
    상기 예측 블록을 결정하기 위해, 상기 비디오 디코더는, 다운샘플링된 상기 루마 블록 그리고 상기 제 1 파라미터 및 상기 제 2 파라미터에 기초하여 상기 예측 블록을 결정하도록 구성되는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 디바이스.
  27. 제 21 항에 있어서,
    상기 비디오 디코더는,
    상기 루마 블록에 이웃하는 하나 이상의 이웃 루마 블록들 및 상기 크로마 블록에 이웃하는 하나 이상의 이웃 크로마 블록들에 기초하여 파라미터들의 제 1 세트 및 제 2 파라미터를 결정하도록 구성되고,
    상기 예측 블록을 결정하기 위해, 상기 비디오 디코더는, 다운샘플링된 상기 루마 블록, 상기 파라미터들의 제 1 세트, 및 상기 제 2 파라미터에 기초하여 상기 예측 블록을 결정하도록 구성되는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 디바이스.
  28. 제 21 항에 있어서,
    적용하기 위한 상기 필터를 결정하기 위해, 상기 비디오 디코더는,
    상기 크로마 블록이 Cb 인 하나의 인스턴스에 있어서, 상기 크로마 블록이 제 1 타입인 것에 기초하여 상기 루마 블록에 제 1 필터를 적용하도록 결정하고; 그리고
    상기 크로마 블록이 Cr 인 다른 인스턴스에 있어서, 상기 크로마 블록이 제 2 타입인 것에 기초하여 상기 루마 블록에, 상기 제 1 필터와는 상이한 제 2 필터를 적용하도록 결정하기 위해
    구성되는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 디바이스.
  29. 제 21 항에 있어서,
    상기 루마 블록의 하나 이상의 루마 샘플들은 픽처, 코딩 유닛 (CU), 예측 유닛 (PU), 또는 변환 유닛 (TU) 중 하나 이상의 외부에 있고,
    상기 비디오 디코더는,
    외부에 있는 상기 하나 이상의 루마 샘플들에 대한 루마 샘플 값들을 패딩 값들로 패딩하도록 구성되고,
    상기 루마 블록을 다운샘플링하기 위해, 상기 비디오 디코더는 상기 패딩 값들을 갖는 상기 루마 블록을 다운샘플링하도록 구성되는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 디바이스.
  30. 제 21 항에 있어서,
    상기 루마 블록은 루마 잔차 블록을 포함하고, 상기 크로마 블록은 크로마 잔차 블록을 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 디바이스.
  31. 비디오 데이터를 선형 모델 (LM) 예측 인코딩하기 위한 디바이스로서,
    상기 비디오 데이터를 저장하도록 구성된 비디오 데이터 메모리; 및
    집적 회로부를 포함하는 비디오 인코더를 포함하고,
    상기 비디오 인코더는,
    인코딩되고 있는 상기 비디오 데이터의 크로마 블록에 대응하는 상기 비디오 데이터 메모리에 저장된 상기 비디오 데이터의 루마 블록을 결정하고;
    상기 크로마 블록의 특성에 기초하여 상기 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정하고;
    결정된 상기 필터에 기초하여 상기 루마 블록을 다운샘플링하고;
    다운샘플링된 상기 루마 블록에 기초하여 예측 블록을 결정하고; 그리고
    상기 크로마 블록 및 상기 예측 블록에 기초하여 잔차 블록을 생성하도록
    구성되는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하기 위한 디바이스.
  32. 제 31 항에 있어서,
    상기 크로마 블록의 특성은 픽처, 슬라이스, 코딩 유닛 (CU), 예측 유닛 (PU), 또는 변환 유닛 (TU) 중 하나의 경계에 대한 상기 크로마 블록의 크로마 샘플들의 위치를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하기 위한 디바이스.
  33. 제 32 항에 있어서,
    상기 경계는 좌측 픽처 경계, 좌측 슬라이스 경계, 좌측 CU 경계, 좌측 PU 경계, 또는 좌측 TU 경계 중 하나를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하기 위한 디바이스.
  34. 제 31 항에 있어서,
    적용하기 위한 상기 필터를 결정하기 위해, 상기 비디오 인코더는,
    경계에 위치되는 상기 크로마 블록의 크로마 샘플들에 대응하는 상기 루마 블록의 루마 샘플들에 제 1 필터를 적용하도록 결정하고; 그리고
    상기 경계에 위치되지 않은 상기 크로마 블록의 크로마 샘플들에 대응하는 상기 루마 블록의 루마 샘플들에 제 2 필터를 적용하도록 결정하기 위해
    구성되는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하기 위한 디바이스.
  35. 제 34 항에 있어서,
    상기 제 1 필터는 2-탭 필터를 포함하고 상기 제 2 필터는 6-탭 필터를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하기 위한 디바이스.
  36. 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 디바이스로서,
    디코딩되고 있는 상기 비디오 데이터의 크로마 블록에 대응하는 상기 비디오 데이터의 루마 블록을 결정하는 수단;
    상기 크로마 블록의 특성에 기초하여 상기 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정하는 수단;
    결정된 상기 필터에 기초하여 상기 루마 블록을 다운샘플링하는 수단;
    다운샘플링된 상기 루마 블록에 기초하여 예측 블록을 결정하는 수단; 및
    상기 예측 블록 및 잔차 블록에 기초하여 상기 크로마 블록을 복원하는 수단을 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 디바이스.
  37. 제 36 항에 있어서,
    상기 크로마 블록의 특성은 픽처, 슬라이스, 코딩 유닛 (CU), 예측 유닛 (PU), 또는 변환 유닛 (TU) 중 하나의 경계에 대한 상기 크로마 블록의 크로마 샘플들의 위치를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 디바이스.
  38. 제 37 항에 있어서,
    상기 경계는 좌측 픽처 경계, 좌측 슬라이스 경계, 좌측 CU 경계, 좌측 PU 경계, 또는 좌측 TU 경계 중 하나를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 디바이스.
  39. 제 36 항에 있어서,
    적용하기 위한 상기 필터를 결정하는 수단은,
    경계에 위치되는 상기 크로마 블록의 크로마 샘플들에 대응하는 상기 루마 블록의 루마 샘플들에 제 1 필터를 적용하도록 결정하는 수단; 및
    상기 경계에 위치되지 않은 상기 크로마 블록의 크로마 샘플들에 대응하는 상기 루마 블록의 루마 샘플들에, 상기 제 1 필터와는 상이한 제 2 필터를 적용하도록 결정하는 수단을 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 디바이스.
  40. 제 39 항에 있어서,
    상기 제 1 필터는 2-탭 필터를 포함하고 상기 제 2 필터는 6-탭 필터를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 디바이스.
  41. 비디오 데이터를 선형 모델 (LM) 예측 인코딩하기 위한 디바이스로서,
    인코딩되고 있는 상기 비디오 데이터의 크로마 블록에 대응하는 상기 비디오 데이터의 루마 블록을 결정하는 수단;
    상기 크로마 블록의 특성에 기초하여 상기 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정하는 수단;
    결정된 상기 필터에 기초하여 상기 루마 블록을 다운샘플링하는 수단;
    다운샘플링된 상기 루마 블록에 기초하여 예측 블록을 결정하는 수단; 및
    상기 크로마 블록 및 상기 예측 블록에 기초하여 잔차 블록을 생성하는 수단을 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하기 위한 디바이스.
  42. 제 41 항에 있어서,
    상기 크로마 블록의 특성은 픽처, 슬라이스, 코딩 유닛 (CU), 예측 유닛 (PU), 또는 변환 유닛 (TU) 중 하나의 경계에 대한 상기 크로마 블록의 크로마 샘플들의 위치를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하기 위한 디바이스.
  43. 제 42 항에 있어서,
    상기 경계는 좌측 픽처 경계, 좌측 슬라이스 경계, 좌측 CU 경계, 좌측 PU 경계, 또는 좌측 TU 경계 중 하나를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하기 위한 디바이스.
  44. 제 41 항에 있어서,
    적용하기 위한 상기 필터를 결정하는 수단은,
    경계에 위치되는 상기 크로마 블록의 크로마 샘플들에 대응하는 상기 루마 블록의 루마 샘플들에 제 1 필터를 적용하도록 결정하는 수단; 및
    상기 경계에 위치되지 않은 상기 크로마 블록의 크로마 샘플들에 대응하는 상기 루마 블록의 루마 샘플들에 제 2 필터를 적용하도록 결정하는 수단을 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하기 위한 디바이스.
  45. 제 44 항에 있어서,
    상기 제 1 필터는 2-탭 필터를 포함하고 상기 제 2 필터는 6-탭 필터를 포함하는, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하기 위한 디바이스.
  46. 명령들을 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 실행될 경우, 비디오 데이터를 선형 모델 (LM) 예측 디코딩하기 위한 디바이스의 하나 이상의 프로세서들로 하여금,
    디코딩되고 있는 상기 비디오 데이터의 크로마 블록에 대응하는 상기 비디오 데이터의 루마 블록을 결정하게 하고;
    상기 크로마 블록의 특성에 기초하여 상기 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정하게 하고;
    결정된 상기 필터에 기초하여 상기 루마 블록을 다운샘플링하게 하고;
    다운샘플링된 상기 루마 블록에 기초하여 예측 블록을 결정하게 하고; 그리고
    상기 예측 블록 및 잔차 블록에 기초하여 상기 크로마 블록을 복원하게 하는, 컴퓨터 판독가능 저장 매체.
  47. 명령들을 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 실행될 경우, 비디오 데이터를 선형 모델 (LM) 예측 인코딩하기 위한 디바이스의 하나 이상의 프로세서들로 하여금,
    인코딩되고 있는 상기 비디오 데이터의 크로마 블록에 대응하는 상기 비디오 데이터의 루마 블록을 결정하게 하고;
    상기 크로마 블록의 특성에 기초하여 상기 루마 블록에 적용하기 위한 필터들의 세트로부터 필터를 결정하게 하고;
    결정된 상기 필터에 기초하여 상기 루마 블록을 다운샘플링하게 하고;
    다운샘플링된 상기 루마 블록에 기초하여 예측 블록을 결정하게 하고; 그리고
    상기 크로마 블록 및 상기 예측 블록에 기초하여 잔차 블록을 생성하게 하는, 컴퓨터 판독가능 저장 매체.
KR1020177026244A 2015-03-20 2016-03-18 선형 모델 예측 모드를 위한 다운샘플링 프로세스 KR102520295B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562136344P 2015-03-20 2015-03-20
US62/136,344 2015-03-20
US15/073,171 2016-03-17
US15/073,171 US10455249B2 (en) 2015-03-20 2016-03-17 Downsampling process for linear model prediction mode
PCT/US2016/023157 WO2016154008A1 (en) 2015-03-20 2016-03-18 Downsampling process for linear model prediction mode

Publications (2)

Publication Number Publication Date
KR20170129750A true KR20170129750A (ko) 2017-11-27
KR102520295B1 KR102520295B1 (ko) 2023-04-10

Family

ID=56924068

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177026244A KR102520295B1 (ko) 2015-03-20 2016-03-18 선형 모델 예측 모드를 위한 다운샘플링 프로세스

Country Status (10)

Country Link
US (1) US10455249B2 (ko)
EP (1) EP3272121B1 (ko)
JP (1) JP6827944B2 (ko)
KR (1) KR102520295B1 (ko)
CN (1) CN107409209B (ko)
AR (1) AR104854A1 (ko)
BR (1) BR112017020102B1 (ko)
CA (1) CA2976820C (ko)
TW (1) TWI693821B (ko)
WO (1) WO2016154008A1 (ko)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019194496A1 (ko) * 2018-04-01 2019-10-10 엘지전자 주식회사 비디오 신호의 컬러 컴포넌트에 대한 병렬 처리 방법 및 이를 위한 장치
WO2019221465A1 (ko) * 2018-05-14 2019-11-21 인텔렉추얼디스커버리 주식회사 영상 복호화 방법/장치, 영상 부호화 방법/장치 및 비트스트림을 저장한 기록 매체
WO2020009357A1 (ko) * 2018-07-02 2020-01-09 엘지전자 주식회사 Cclm에 기반한 인트라 예측 방법 및 그 장치
WO2020060258A1 (ko) * 2018-09-20 2020-03-26 엘지전자 주식회사 영상 코딩 시스템에서 cclm 예측에 기반한 영상 디코딩 방법 및 그 장치
WO2020071617A1 (ko) * 2018-10-04 2020-04-09 엘지전자 주식회사 Cclm에 기반한 인트라 예측 방법 및 그 장치
WO2020071616A1 (ko) * 2018-10-04 2020-04-09 엘지전자 주식회사 Cclm에 기반한 인트라 예측 방법 및 그 장치
WO2020105925A1 (ko) * 2018-11-23 2020-05-28 엘지전자 주식회사 영상 코딩 시스템에서 cclm 예측 기반 영상 디코딩 방법 및 그 장치
WO2020145792A1 (ko) * 2019-01-12 2020-07-16 엘지전자 주식회사 영상 코딩 시스템에서 cclm 예측을 사용하는 영상 디코딩 방법 및 그 장치
WO2021040458A1 (ko) * 2019-08-28 2021-03-04 주식회사 케이티 비디오 신호 처리 방법 및 장치
KR20210113422A (ko) * 2019-03-12 2021-09-15 퀄컴 인코포레이티드 비디오 코딩에서의 계수 도메인 블록 차동 펄스-코드 변조
KR20210116618A (ko) * 2019-02-22 2021-09-27 엘지전자 주식회사 영상 코딩 시스템에서 cclm 예측에 기반한 영상 디코딩 방법 및 그 장치
US11765348B2 (en) 2018-06-12 2023-09-19 Kwangwoon University Industry-Academic Collaboration Foundation Method and an apparatus for processing a video signal based on inter-component reference
US11973954B2 (en) 2018-07-02 2024-04-30 Lg Electronics Inc. CCLM-based intra-prediction method and device

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9979960B2 (en) 2012-10-01 2018-05-22 Microsoft Technology Licensing, Llc Frame packing and unpacking between frames of chroma sampling formats with different chroma resolutions
US9854201B2 (en) 2015-01-16 2017-12-26 Microsoft Technology Licensing, Llc Dynamically updating quality to higher chroma sampling rate
ES2677193B1 (es) 2015-08-28 2019-06-19 Kt Corp Procedimiento y dispositivo para procesar señales de vídeo
US20170150176A1 (en) 2015-11-25 2017-05-25 Qualcomm Incorporated Linear-model prediction with non-square prediction units in video coding
CN109804625A (zh) 2016-10-04 2019-05-24 韩国电子通信研究院 对图像编码/解码的方法和装置及存储比特流的记录介质
US10368080B2 (en) 2016-10-21 2019-07-30 Microsoft Technology Licensing, Llc Selective upsampling or refresh of chroma sample values
US10477240B2 (en) * 2016-12-19 2019-11-12 Qualcomm Incorporated Linear model prediction mode with sample accessing for video coding
CN109565604A (zh) * 2016-12-30 2019-04-02 华为技术有限公司 图像滤波方法、装置以及设备
KR20180135414A (ko) * 2017-06-12 2018-12-20 주식회사 케이티 비디오 신호 처리 방법 및 장치
WO2019004664A1 (ko) * 2017-06-26 2019-01-03 주식회사 케이티 비디오 신호 처리 방법 및 장치
CN109257605B (zh) * 2017-07-13 2021-11-19 华为技术有限公司 图像处理方法、设备及系统
CN109274969B (zh) * 2017-07-17 2020-12-22 华为技术有限公司 色度预测的方法和设备
JP2021005741A (ja) * 2017-09-14 2021-01-14 シャープ株式会社 画像符号化装置及び画像復号装置
GB2567249A (en) * 2017-10-09 2019-04-10 Canon Kk New sample sets and new down-sampling schemes for linear component sample prediction
CN115955562A (zh) * 2017-11-29 2023-04-11 韩国电子通信研究院 采用环内滤波的图像编码/解码方法和装置
CN108172168B (zh) * 2017-12-22 2019-11-15 深圳市华星光电半导体显示技术有限公司 一种补偿表压缩方法
MX2020007868A (es) * 2018-01-26 2020-09-07 Interdigital Vc Holdings Inc Metodo y aparato para codificacion y decodificacion de video basado en un modelo lineal receptivo a muestras vecinas.
CN116527899A (zh) 2018-04-01 2023-08-01 Oppo广东移动通信有限公司 使用帧内预测的图像编码/解码方法和装置
EP3785437A4 (en) * 2018-04-24 2022-04-20 HFI Innovation Inc. METHOD AND APPARATUS FOR RESTRICTED LINEAR MODEL PARAMETER DERIVATION IN VIDEO CODING
US20190364295A1 (en) * 2018-05-25 2019-11-28 Tencent America LLC Method and apparatus for video coding
CN108769681B (zh) * 2018-06-20 2022-06-10 腾讯科技(深圳)有限公司 视频编码、解码方法、装置、计算机设备和存储介质
CN110650337B (zh) * 2018-06-26 2022-04-01 中兴通讯股份有限公司 一种图像编码方法、解码方法、编码器、解码器及存储介质
TW202015409A (zh) * 2018-06-29 2020-04-16 財團法人工業技術研究院 影像資料解碼方法、影像資料解碼器、影像資料編碼方法與影像資料編碼器
WO2020014563A1 (en) 2018-07-12 2020-01-16 Futurewei Technologies, Inc. Intra-prediction using a cross-component linear model in video coding
WO2020015433A1 (en) * 2018-07-15 2020-01-23 Huawei Technologies Co., Ltd. Method and apparatus for intra prediction using cross-component linear model
EP3815377B1 (en) * 2018-07-16 2022-12-28 Huawei Technologies Co., Ltd. Video encoder, video decoder, and corresponding encoding and decoding methods
GB2590844B (en) * 2018-08-17 2023-05-03 Beijing Bytedance Network Tech Co Ltd Simplified cross component prediction
WO2020041306A1 (en) * 2018-08-21 2020-02-27 Futurewei Technologies, Inc. Intra prediction method and device
CN110858903B (zh) * 2018-08-22 2022-07-12 华为技术有限公司 色度块预测方法及装置
CN117915101A (zh) * 2018-09-05 2024-04-19 华为技术有限公司 色度块预测方法以及设备
CN110896480A (zh) * 2018-09-12 2020-03-20 北京字节跳动网络技术有限公司 交叉分量线性模型中的尺寸相关的下采样
MX2021003853A (es) * 2018-10-05 2021-09-08 Huawei Tech Co Ltd Método y dispositivo de intrapredicción.
JP7053954B2 (ja) 2018-10-08 2022-04-12 ベイジン ダージャー インターネット インフォメーション テクノロジー カンパニー リミテッド クロスコンポーネント線形モデルの簡略化
US10939118B2 (en) * 2018-10-26 2021-03-02 Mediatek Inc. Luma-based chroma intra-prediction method that utilizes down-sampled luma samples derived from weighting and associated luma-based chroma intra-prediction apparatus
KR20210089133A (ko) * 2018-11-06 2021-07-15 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인트라 예측에 대한 단순화된 파라미터 유도
US11197005B2 (en) 2018-11-08 2021-12-07 Qualcomm Incorporated Cross-component prediction for video coding
US20210392321A1 (en) * 2018-11-23 2021-12-16 Intellectual Discovery Co., Ltd. Inter-image component prediction method, and image encoding and decoding method and device using same
WO2020108591A1 (en) 2018-12-01 2020-06-04 Beijing Bytedance Network Technology Co., Ltd. Parameter derivation for intra prediction
CN117319670A (zh) * 2018-12-13 2023-12-29 华为技术有限公司 色度块的预测方法和装置
CN111083486A (zh) * 2019-01-03 2020-04-28 北京达佳互联信息技术有限公司 一种确定编码单元的色度信息的方法和装置
CN117041552A (zh) * 2019-02-22 2023-11-10 华为技术有限公司 使用线性模型进行帧内预测的方法及装置
JP2022521698A (ja) * 2019-02-22 2022-04-12 北京字節跳動網絡技術有限公司 イントラ予測のための隣接サンプル選択
US20200288159A1 (en) 2019-03-08 2020-09-10 Qualcomm Incorporated Combined residual coding in video coding
US11889085B2 (en) * 2019-03-08 2024-01-30 Telefonaktiebolaget Lm Ericsson (Publ) Methods providing encoding/decoding of dependent/independent partitions and related devices
US20220360799A1 (en) * 2019-03-12 2022-11-10 Xianglin Wang Video coding using multi-model linear model
WO2020192180A1 (zh) * 2019-03-25 2020-10-01 Oppo广东移动通信有限公司 图像分量的预测方法、编码器、解码器及计算机存储介质
WO2020192084A1 (zh) * 2019-03-25 2020-10-01 Oppo广东移动通信有限公司 图像预测方法、编码器、解码器以及存储介质
KR20200127897A (ko) * 2019-05-03 2020-11-11 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020236038A1 (en) * 2019-05-21 2020-11-26 Huawei Technologies Co., Ltd. Method and apparatus of cross-component prediction
US11330298B2 (en) * 2019-06-25 2022-05-10 Qualcomm Incorporated Simplified intra chroma mode coding in video coding
JP7460748B2 (ja) 2019-07-07 2024-04-02 北京字節跳動網絡技術有限公司 クロマ残差スケーリングのシグナリング
MX2022000354A (es) * 2019-07-11 2022-02-03 Samsung Electronics Co Ltd Metodo y aparato de decodificacion de video, y metodo y aparato de codificacion de video.
JP7324940B2 (ja) 2019-09-19 2023-08-10 北京字節跳動網絡技術有限公司 ビデオコーディングにおけるスケーリングウインドウ
EP4018671A4 (en) 2019-09-19 2022-12-07 Beijing Bytedance Network Technology Co., Ltd. DERIVING REFERENCE SAMPLE POSITIONS IN VIDEO CODING
MX2022003836A (es) 2019-10-05 2022-05-12 Beijing Bytedance Network Tech Co Ltd Se?alizacion basada en los niveles de las herramientas de codificacion de video.
JP7391203B2 (ja) 2019-10-12 2023-12-04 北京字節跳動網絡技術有限公司 ビデオコーディングツールを洗練する使用およびシグナリング
KR20220073740A (ko) 2019-10-13 2022-06-03 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 레퍼런스 픽처 리샘플링 및 비디오 코딩 툴 사이의 상호 작용
KR20230107417A (ko) * 2019-12-30 2023-07-14 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 비디오 데이터의 크로마 및 루마 성분의 교차 성분결정
CN115462081A (zh) 2020-04-18 2022-12-09 抖音视界有限公司 4:2:0或4:2:2视频的交叉分量编解码

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130188705A1 (en) * 2012-01-24 2013-07-25 Futurewei Technologies, Inc. Simplification of LM Mode

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9693070B2 (en) * 2011-06-24 2017-06-27 Texas Instruments Incorporated Luma-based chroma intra-prediction for video coding
TW201309036A (zh) * 2011-06-28 2013-02-16 Samsung Electronics Co Ltd 使用亮度成分影像的預測色度成分影像用的裝置與方法
US8724711B2 (en) * 2011-07-12 2014-05-13 Intel Corporation Luma-based chroma intra prediction
JP2013110502A (ja) * 2011-11-18 2013-06-06 Sony Corp 画像処理装置及び画像処理方法
CN103918269B (zh) 2012-01-04 2017-08-01 联发科技(新加坡)私人有限公司 色度帧内预测方法及装置
US9307237B2 (en) 2012-01-19 2016-04-05 Futurewei Technologies, Inc. Reference pixel reduction for intra LM prediction
US9313495B2 (en) * 2012-05-14 2016-04-12 Luca Rossato Encoding and decoding based on blending of sequences of samples along time

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130188705A1 (en) * 2012-01-24 2013-07-25 Futurewei Technologies, Inc. Simplification of LM Mode

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Francosis E et al: "Use of chroma phase in LM mode", JCTVC-I0188, 2012.4.16. *

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019194496A1 (ko) * 2018-04-01 2019-10-10 엘지전자 주식회사 비디오 신호의 컬러 컴포넌트에 대한 병렬 처리 방법 및 이를 위한 장치
US11190790B2 (en) 2018-04-01 2021-11-30 Lg Electronics Inc. Parallel processing method for color component of video signal, and device therefor
WO2019221465A1 (ko) * 2018-05-14 2019-11-21 인텔렉추얼디스커버리 주식회사 영상 복호화 방법/장치, 영상 부호화 방법/장치 및 비트스트림을 저장한 기록 매체
US11758159B2 (en) 2018-05-14 2023-09-12 Intellectual Discovery Co., Ltd. Image decoding method/device, image encoding method/device, and recording medium in which bitstream is stored
US11765348B2 (en) 2018-06-12 2023-09-19 Kwangwoon University Industry-Academic Collaboration Foundation Method and an apparatus for processing a video signal based on inter-component reference
US11973954B2 (en) 2018-07-02 2024-04-30 Lg Electronics Inc. CCLM-based intra-prediction method and device
WO2020009357A1 (ko) * 2018-07-02 2020-01-09 엘지전자 주식회사 Cclm에 기반한 인트라 예측 방법 및 그 장치
US10887596B2 (en) 2018-07-02 2021-01-05 Lg Electronics Inc. CCLM-based intra-prediction method and device
KR20210006993A (ko) * 2018-07-02 2021-01-19 엘지전자 주식회사 Cclm에 기반한 인트라 예측 방법 및 그 장치
US11356668B2 (en) 2018-07-02 2022-06-07 Lg Electronics Inc. CCLM-based intra-prediction method and device
US11290713B1 (en) 2018-09-20 2022-03-29 Lg Electronics Inc. Method and device for image decoding on basis of CCLM prediction in image coding system
WO2020060258A1 (ko) * 2018-09-20 2020-03-26 엘지전자 주식회사 영상 코딩 시스템에서 cclm 예측에 기반한 영상 디코딩 방법 및 그 장치
CN112806004A (zh) * 2018-09-20 2021-05-14 Lg电子株式会社 图像编码系统中基于cclm预测的图像解码的方法及装置
US11943434B2 (en) 2018-09-20 2024-03-26 Lg Electronics Inc. Method and device for image decoding on basis of CCLM prediction in image coding system
CN112806004B (zh) * 2018-09-20 2024-03-05 Lg电子株式会社 图像编码系统中基于cclm预测的图像解码的方法及装置
US11805244B2 (en) 2018-10-04 2023-10-31 Lg Electronics Inc. CCLM-based intra-prediction method and apparatus therefor
WO2020071617A1 (ko) * 2018-10-04 2020-04-09 엘지전자 주식회사 Cclm에 기반한 인트라 예측 방법 및 그 장치
US11394961B2 (en) 2018-10-04 2022-07-19 Lg Electronics Inc. CCLM-based intra-prediction method and apparatus therefor
WO2020071616A1 (ko) * 2018-10-04 2020-04-09 엘지전자 주식회사 Cclm에 기반한 인트라 예측 방법 및 그 장치
US11012699B2 (en) 2018-11-23 2021-05-18 Lg Electronics Inc. Method for decoding image on basis of CCLM prediction in image coding system, and device therefor
US11412236B2 (en) 2018-11-23 2022-08-09 Lg Electronics Inc. Method for decoding image on basis of CCLM prediction in image coding system, and device therefor
US11706426B2 (en) 2018-11-23 2023-07-18 Lg Electronics Inc. Method for decoding image on basis of CCLM prediction in image coding system, and device therefor
WO2020105925A1 (ko) * 2018-11-23 2020-05-28 엘지전자 주식회사 영상 코딩 시스템에서 cclm 예측 기반 영상 디코딩 방법 및 그 장치
WO2020145792A1 (ko) * 2019-01-12 2020-07-16 엘지전자 주식회사 영상 코딩 시스템에서 cclm 예측을 사용하는 영상 디코딩 방법 및 그 장치
KR20210116618A (ko) * 2019-02-22 2021-09-27 엘지전자 주식회사 영상 코딩 시스템에서 cclm 예측에 기반한 영상 디코딩 방법 및 그 장치
KR20210113422A (ko) * 2019-03-12 2021-09-15 퀄컴 인코포레이티드 비디오 코딩에서의 계수 도메인 블록 차동 펄스-코드 변조
WO2021040458A1 (ko) * 2019-08-28 2021-03-04 주식회사 케이티 비디오 신호 처리 방법 및 장치
US11973977B2 (en) 2020-02-21 2024-04-30 Lg Electronics Inc. CCLM prediction-based image decoding method and apparatus in image coding system

Also Published As

Publication number Publication date
KR102520295B1 (ko) 2023-04-10
TW201639365A (zh) 2016-11-01
WO2016154008A1 (en) 2016-09-29
EP3272121B1 (en) 2021-07-07
JP6827944B2 (ja) 2021-02-10
CN107409209A (zh) 2017-11-28
CA2976820A1 (en) 2016-09-29
EP3272121A1 (en) 2018-01-24
US20160277762A1 (en) 2016-09-22
BR112017020102A2 (pt) 2018-05-29
US10455249B2 (en) 2019-10-22
TWI693821B (zh) 2020-05-11
BR112017020102B1 (pt) 2023-10-31
JP2018514119A (ja) 2018-05-31
CN107409209B (zh) 2020-11-10
CA2976820C (en) 2023-08-29
AR104854A1 (es) 2017-08-23

Similar Documents

Publication Publication Date Title
KR102520295B1 (ko) 선형 모델 예측 모드를 위한 다운샘플링 프로세스
KR102574560B1 (ko) 비디오 코딩을 위해 액세스하는 샘플을 갖는 선형 모델 예측 모드
US10484712B2 (en) Implicit coding of reference line index used in intra prediction
CN107113436B (zh) 用于解码视频数据的方法和装置以及计算机可读存储媒体
EP3205092B1 (en) Intra block copy prediction restrictions for parallel processing
KR101977450B1 (ko) 팔레트 코딩 모드에서의 비디오 블록의 이스케이프 픽셀들의 양자화
CA2951569C (en) Determining application of deblocking filtering to palette coded blocks in video coding
KR20180056687A (ko) 팔레트 모드 비디오 코딩에서의 이스케이프 픽셀 시그널링된 값들의 제한
WO2015191838A1 (en) Determining quantization parameter (qp) values and delta qp values for palette coded blocks in video coding
KR20170057312A (ko) 비디오 코딩에서 교차 구성 예측과 적응형 컬러 변환의 조화
JP7275270B2 (ja) エンコーダ、デコーダ、及びデブロッキングフィルタの境界強度導出の対応する方法
KR20160013890A (ko) 컬러 컴포넌트들 간의 샘플 예측을 이용한 비디오 코딩
WO2016057534A2 (en) Diagonal copy for palette mode coding

Legal Events

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