KR20160032118A - 비디오 코딩에서의 넌-루마 컴포넌트들에 대한 적응형 디블록킹 필터링 - Google Patents

비디오 코딩에서의 넌-루마 컴포넌트들에 대한 적응형 디블록킹 필터링 Download PDF

Info

Publication number
KR20160032118A
KR20160032118A KR1020167001490A KR20167001490A KR20160032118A KR 20160032118 A KR20160032118 A KR 20160032118A KR 1020167001490 A KR1020167001490 A KR 1020167001490A KR 20167001490 A KR20167001490 A KR 20167001490A KR 20160032118 A KR20160032118 A KR 20160032118A
Authority
KR
South Korea
Prior art keywords
diblock
filtering
video data
luma
diblock filtering
Prior art date
Application number
KR1020167001490A
Other languages
English (en)
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 KR20160032118A publication Critical patent/KR20160032118A/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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • 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/136Incoming video signal characteristics or properties
    • 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/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
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

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

Abstract

비디오 데이터에 대해 디블록 필터링을 수행하는 것은 비디오 데이터의 제 1 넌-루마 컬러 컴포넌트에 대해, 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부를 결정하는 것을 포함할 수도 있다. 다음에, 디블록 필터링은 결정된 디블록 필터링 프로세스에 따라 제 1 넌-루마 컬러 컴포넌트에 대해 수행될 수도 있다.

Description

비디오 코딩에서의 넌-루마 컴포넌트들에 대한 적응형 디블록킹 필터링{ADAPTIVE DEBLOCKING FILTERING FOR NON-LUMA COMPONENTS IN VIDEO CODING}
본 출원은 2013년 7월 12일자로 출원된 미국 가출원 번호 제61/845,508호 및 2013년 7월 15일자로 출원된 미국 가출원 번호 제61/846,586호의 이익을 주장하며, 이들 각각의 전체 내용은 본 명세서에 참조로 통합된다.
기술분야
본 개시물은 비디오 코딩과 관련되며, 보다 특히 비디오 데이터를 필터링하기 위한 기법들과 관련된다.
디지털 비디오 능력들은 디지털 텔레비전들, 디지털 직접 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인 휴대 정보 단말기들 (PDA들), 랩톱 또는 데스크톱 컴퓨터들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 라디오 전화기들, 비디오 화상회의 디바이스들 등을 포함하는 광범위한 디바이스들에 통합될 수 있다. 디지털 비디오 디바이스들은 디지털 비디오 정보를 더 효율적으로 송신, 수신 및 저장하기 위해, MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, 파트 10, 어드밴스드 비디오 코딩 (Advanced Video Coding; AVC) 에 의해 정의된 표준들, 현재 개발 중인 고효율 비디오 코딩 (High Efficiency Video Coding; HEVC) 표준, 및 이러한 표준들의 확장들에서 설명되는 것들과 같은 비디오 압축 기법들을 구현한다.
비디오 압축 기법들은 비디오 시퀀스들에 내재하는 리던던시를 감소 또는 제거하기 위해 공간 예측 및/또는 시간 예측을 포함한다. 블록 기반 비디오 코딩의 경우, 비디오 픽처 또는 슬라이스는 블록들로 파티셔닝될 수도 있다. 각각의 블록은 추가 파티셔닝될 수 있다. 인트라-코딩된 (I) 픽처 또는 슬라이스에서의 블록들은 동일한 픽처 또는 슬라이스의 이웃하는 블록들에서의 참조 샘플들에 대한 공간 예측을 이용하여 인코딩된다. 인터-코딩된 (P 또는 B) 픽처 또는 슬라이스에서의 블록들은 동일한 픽처 또는 슬라이스의 이웃하는 블록들에서의 참조 샘플들에 대한 공간 예측 또는 다른 참조 픽처들에서의 참조 샘플들에 대한 시간 예측을 이용할 수도 있다. 공간 또는 시간 예측은 코딩될 블록에 대한 예측 블록을 초래한다. 잔차 데이터는 코딩될 오리지널 블록과 예측 블록 간의 픽셀 차이들을 나타낸다.
인터-코딩된 블록은 예측 블록을 형성하는 참조 샘플들의 블록을 가리키는 모션 벡터, 및 코딩된 블록과 예측 블록 간의 차이를 나타내는 잔차 데이터에 따라 인코딩된다. 인트라-코딩된 블록은 인트라-코딩 모드 및 잔차 데이터에 따라 인코딩된다. 추가의 압축을 위해, 잔차 데이터는 픽셀 도메인으로부터 변환 도메인으로 변환되어, 후에 양자화될 수도 있는 잔차 변환 계수들을 초래할 수도 있다.
본 개시물의 기법들은 일반적으로 비디오 코딩 프로세스에서의 필터링과 관련된다. 예를 들어, 본 개시물의 양태들은 일반적으로 비디오 코딩에서 디블록킹 필터를 적용하기 위한 포맷-적응형 필터링 스킴을 제공하는 것과 관련된다. 본 개시물의 기법들은 코딩되는 비디오 데이터의 컬러 공간에 기초하여 크로마 컴포넌트들에 대해 가변 디블록킹 필터링을 인에이블하는 것 (예를 들어, 강한 디블록킹 필터링을 인에이블하는 것 또는 디스에이블하는 것) 을 포함한다.
하나의 예에서, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법은 비디오 데이터의 제 1 넌-루마 컬러 컴포넌트에 대해, 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부를 결정하는 단계, 및 결정된 디블록 필터링 프로세스에 따라 제 1 넌-루마 컬러 컴포넌트에 대해 디블록 필터링을 수행하는 단계를 포함한다.
다른 예에서, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 장치는 비디오 데이터를 저장하도록 구성되는 메모리; 및 적어도 하나의 프로세서를 포함하며, 그 적어도 하나의 프로세서는 : 비디오 데이터의 제 1 넌-루마 컬러 컴포넌트에 대해, 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부를 결정하며, 결정된 디블록 필터링 프로세스에 따라 제 1 넌-루마 컬러 컴포넌트에 대해 디블록 필터링을 수행하도록 구성된다.
다른 예에서, 유형의 비일시적 프로세서 판독가능 저장 매체는 명령들을 저장하며, 그 명령들은, 실행될 때, 하나 이상의 프로세서들로 하여금 : 비디오 데이터의 제 1 넌-루마 컬러 컴포넌트에 대해, 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부를 결정하게 하며, 결정된 디블록 필터링 프로세스에 따라 제 1 넌-루마 컬러 컴포넌트에 대해 디블록 필터링을 수행하게 한다.
다른 예에서, 비디오 데이터에 대해 디블록 필터링하기 위한 방법으로서, 그 방법은 : 비디오 데이터의 제 1 넌-루마 컬러 컴포넌트에 대해, 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부를 결정하는 단계, 및 제 1 넌-루마 컬러 컴포넌트에 대한 결정된 디블록 필터링 프로세스를 나타내는 신택스 엘리먼트를 코딩하는 단계를 포함한다.
본 개시물의 하나 이상의 양태들의 상세들은 첨부한 도면들 및 이하의 설명에서 기재된다. 본 개시물에서 설명된 기법들의 다른 특징들, 목적들, 및 이점들은 설명 및 도면들로부터, 및 청구항들로부터 명백할 것이다.
도 1 은 본 개시물의 기법들을 구현할 수도 있는 일 예의 비디오 인코딩 및 디코딩 시스템을 예시하는 블록도이다.
도 2 는 본 개시물의 기법들을 구현할 수도 있는 일 예의 비디오 인코더를 예시하는 블록도이다.
도 3 은 본 개시물의 기법들을 구현할 수도 있는 일 예의 비디오 디코더를 예시하는 블록도이다.
도 4a 내지 도 4c 는 비디오 데이터에 대한 상이한 샘플 포맷들을 예시하는 개념도들이다.
도 5 는 4:2:0 샘플 포맷에 따라 포맷팅된 16x16 코딩 유닛을 예시하는 개념도이다.
도 6 은 4:2:2 샘플 포맷에 따라 포맷팅된 16x16 코딩 유닛을 예시하는 개념도이다.
도 7 은 본 개시물의 기법들에 따른 비디오 데이터를 디블록킹하기 위한 프로세스를 예시하는 플로우도이다.
도 8 은 본 개시물의 기법들에 따른 비디오 데이터를 코딩하기 위한 프로세스를 예시하는 플로우도이다.
도 9 는 본 개시물의 기법들에 따른 비디오 데이터를 코딩하기 위한 다른 프로세스를 예시하는 플로우도이다.
도 10 은 본 개시물의 기법들 및 HEVC 와 일치하는 경계 강도를 계산하기 위한 기법을 예시하는 플로우도이다.
본 개시물의 양태들은 일반적으로 비디오 코딩 및 압축과 관련된다. 일부 예들에서, 기법들은 고효율 비디오 코딩 (HEVC) 레인지 확장에 관련될 수도 있으며, 여기서 YCbCr 4:2:0 과 다른 컬러 공간들이 지원될 수도 있다.
본 개시물의 양태들은, 비디오 데이터의 제 1 넌-루마 컬러 컴포넌트에 대해, 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부를 결정하는 것을 포함할 수도 있는 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법, 장치, 및 제조와 관련될 수도 있다. 다음에, 디블록 필터링이 결정된 디블록 필터링 프로세스에 따라 제 1 넌-루마 컬러 컴포넌트에 대해 수행될 수도 있다.
비디오 데이터는 YCbCr 및 RGB 와 같은 다양한 컬러 공간들에서 존재할 수 있다. 비디오 데이터는 컬러 컴포넌트들이라고도 지칭되는 컴포넌트들을 포함한다 - 예를 들어, Y, Cb 및 Cr 은 YCbCr 비디오 데이터의 각각의 컴포넌트들이고; R, G, 및 B 는 RGB 비디오 데이터의 각각의 컴포넌트들이다. YCbCr 컬러 공간에서의 비디오 데이터의 경우, Y 는 루마 컴포넌트이고 Cb 및 Cr 은 크로마 컴포넌트들이다. 용어 넌-루마 컴포넌트는 본 명세서에서 루마 컴포넌트가 아닌 비디오 데이터의 임의의 컴포넌트를 기술하는데 사용된다. 이에 따라, YCbCr 컬러 공간에서의 비디오 데이터의 경우, Y 는 루마 컴포넌트이고, Cb 및 Cr 은 넌-루마 컴포넌트들이다. RBG 컬러 공간에서의 비디오 데이터의 경우, R, G, 및 B 는 모두 넌-루마 컴포넌트들이다.
HEVC 는 ITU-T WP3/16 및 ISO/IEC JTC 1/SC 29/WG 11 의 JCT-VC (Joint Collaborative Team on Video Coding) 에 의해 최근에 개발된 비디오 코딩 표준이다. HEVC 의 레인지 확장은 YCbCr 4:2:2, YCbCr 4:4:4, 및 RGB 와 같이, YCbCr 4:2:0 이 아닌 컬러 공간들에 대해 비디오 코딩을 확대하는 것을 포함한다.
예를 들어, 코딩 유닛 (CU) 또는 변환 유닛 (TU) 의 픽셀들의 루마 및 크로마 컴포넌트들은 상이한 서브-샘플링 포맷들로 코딩될 수도 있다. 예에서, 픽셀의 루마 및 크로마 컴포넌트들은 4:2:0 포맷으로 코딩될 수도 있다. 4:2:0 픽셀 포맷에서, 픽셀들의 매 2x2 블록에 대해, 4 개의 루마 컴포넌트들 및 2 개의 크로마 컴포넌트들 (예를 들어, 1 개의 Cr 크로마 컴포넌트 및 1 개의 Cb 크로마 컴포넌트) 이 있다. 이로써, 픽셀들의 2x2 블록에서, 크로마 컴포넌트들은 ½ 수평 해상도 및 ½ 수직 해상도로 샘플링된다. 4:2:2 픽셀 포맷에서, 픽셀들의 매 2x2 블록에 대해, 4 개의 루마 컴포넌트들 및 4 개의 크로마 컴포넌트들 (예를 들어, 2 개의 Cr 크로마 컴포넌트들 및 2 개의 Cb 크로마 컴포넌트들) 이 있다. 이로써, 4:2:2 포맷에 대해, 크로마 컴포넌트들은 이분의 일 (½) 수평 해상도 및 풀 수직 해상도로 샘플링된다. 4:4:4 픽셀 포맷은 크로마 컴포넌트들의 어떤 서브-샘플링도 수반하지 않는다. 즉, 4:4:4 포맷의 경우에는, 픽셀들의 2x2 블록에 대해, 4 개의 루마 컴포넌트들, 4 개의 Cr 컴포넌트들, 및 4 개의 Cb 컴포넌트들이 있다. RGB 포맷에서, 4:4:4 포맷의 경우에는, 레드 샘플들의 수, 그린 샘플들의 수, 및 블루 샘플들의 수가 통상 동일하다.
소정의 비디오 코딩 기법들은 비디오 신호의 복원 동안 복원 에러를 초래할 수도 있다. 일부 인스턴스들에서, 필터링은 복원 에러를 보상하기 위해 비디오 코딩 프로세스에서 적용될 수도 있다. 예를 들어, 샤프 에지들이 블록 코딩 기법들이 이용될 때 블록들 사이에 발생할 수 있다. 오리지널 비디오 신호에는 존재하지 않는 샤프 에지들과 같은 블록킹 아티팩트들을 다루기 위해, 비디오 코더 (비디오 인코더 및/또는 비디오 디코더) 는 블록 에지들을 평활화하기 위한 픽셀 에지 필터링 동작들을 수행할 수도 있다.
필터링 동작들은 통상 블록 에지들과 연관된 경계 강도들 및 에지 임계값들과 같은 필터 파라미터들에 의해 특정된다. 용어 "에지 임계값" 은 에지 선명도의 임계값을 지칭한다. 예를 들어, 디블록킹 필터링은 에지들이 경계에서 얼마나 선명한지에 기초하여 복원된 비디오의 특정 블록 경계에 적용될 수도 있거나 적용되지 않을 수도 있거나 둘 중 어느 하나이다. 에지 임계값이 클수록, 복원된 비디오의 블록 경계에서의 에지는, 그 에지가 필터링되도록 하기 위하여 선명해져야 한다.
용어 "경계 강도" 는 이하 더 상세히 설명된다. "경계 강도" 는 복원된 비디오의 블록 경계의 속성인 비음의 (non-negative) 정수 값이며, 여기서 블록킹 아티팩트들을 가질 가능성이 더 큰 블록 에지들에는 경계 강도에 대한 더 큰 값이 할당된다.
필터 파라미터들은 하나의 픽셀 에지로부터 다음 픽셀 에지로 그리고 하나의 비디오 코딩 표준으로부터 다른 것으로 동적으로 바뀔 수 있다. 이로써, 비디오 코더는 실제 필터링 동작을 수행하기 이전에 블록 에지들의 경계 강도들 및 에지 임계값들을 계산한다. 이들 경계 강도 및 에지 임계값 계산들은 ("인 루프" 로 지칭되는) 비디오 코딩 프로세스의 필터링 동작들과 동일한 파이프라인 스테이지에서 또는 필터링 동작들 이전의 스테이지에서 일어날 수도 있다.
경계 강도들을 생성한 후, 비디오 코더는 실제 픽셀 필터링을 수행할 수도 있다. 일부 디블록킹 구현들은 관련 픽셀들을 (비디오 코더에 대하여) 외부 및/또는 내부 저장 엘리먼트들로부터 전송하고, 정확한 디블록킹 파라미터들을 선택하며, 디블록킹된 픽셀을 다시 외부 및/또는 내부 저장 엘리먼트들에 저장하기 위해 하드와이어링된 제어 로직을 이용할 수도 있다.
임의의 경우에, HEVC 버전 1, H.265: 고효율 비디오 코딩 (2013년 4월 13일) (완결된 HEVC 표준의 제 1 버전) 에서, 인-루프 디블록킹 필터링은 양자화해제 및 역변환 후 복원된 신호에 적용된다. 용어 "인-루프" 디블록킹 필터링은 당업계에 잘 알려져 있고 인코딩 경로 및 디코딩 경로 중 어느 하나 또는 양자 내에서 수행되는 디블록킹 필터링을 지칭한다. 디블록킹된, 필터링된 신호는 인터 예측을 위한 참조 프레임으로서 저장된다. YCbCr 4:2:0 포맷에 대해, 상기 언급한 바와 같이, Cb 컴포넌트 또는 Cr 컴포넌트와 비교하여 더 많은 정보가 Y 컴포넌트에 존재하며, Cb 및 Cr 컴포넌트들은 Y 컴포넌트에 대하여 다운샘플링된다. Y 컴포넌트의 것과 Cb 컴포넌트 또는 Cr 컴포넌트 중 어느 하나의 것 간의 특성들의 차이로 인해, Cb 컴포넌트 또는 Cr 컴포넌트 중 어느 하나에 적용된 디블록킹 필터 스킴에 대하여 상이한 디블록킹 필터링 스킴이 Y 컴포넌트에 대해 적용된다.
HEVC 에서, 강한 필터 및 약한 필터 (이는 또한 강한 디블록킹 모드 및 약한 디블록킹 모드로 각각 지칭될 수도 있다) 를 포함한 2 개의 필터들이 Y 컴포넌트에 대해 정의된다. 강한 필터는 강한 디블록킹을 위해 이용되며 약한 필터는 약한 디블록킹을 위해 이용된다.
약한 디블록 필터링 또는 강한 디블록 필터링 중 어느 하나로, 비디오 블록의 에지 픽셀들은, 인접한 비디오 블록들 간의 천이 (transition) 들이 뷰어가 인지하기 더 어렵도록 인접한 비디오 블록의 에지 픽셀들에 대하여 필터링될 수도 있다. 예를 들어, 약한 디블록 필터링 또는 강한 디블록킹 필터링 중 어느 하나에 따르면, 필터링은 인접한 비디오 블록들 간의 경계들을 "평활화" 하기 위하여 에지 픽셀들의 값들을, 그들을 (예를 들어, 인접한 픽셀들을 포함하는) 인근의 픽셀들의 값들과 더 유사하게 만들도록 조정함으로써 수행될 수도 있다. 강한 필터링의 경우, 에지 픽셀 값들은 예를 들어 더 큰 평균 팩터 (averaging factor) 를 이용함으로써, 약한 필터링보다 인근의 픽셀들의 값들에 더 강하게 기초한다. 다양한 예들에서는, 에지 픽셀 값들이 인근의 픽셀들의 값들에 더 강하게 기초하게 하는 것과 다른 팩터들이 필터를 더 강하게 하기 위하여 채용될 수도 있다.
예를 들어, 강한 필터는 통상 약한 필터에 의해 고려된 비디오 데이터의 라인들의 수보다 더 많은 비디오 데이터의 라인들을 고려하며, 및/또는 약한 필터의 것보다 더 긴 필터 탭 사이즈를 가질 수도 있다. HEVC 버전 1 에서, Cb 및 Cr 컴포넌트들이 Y 컴포넌트와 비교하여 더 적은 에너지를 갖기 때문에, 그 Cb 및 Cr 컴포넌트들에는 단지 약한 필터만이 적용된다.
예를 들어, HEVC 버전 1 에 따르면, 루마 컴포넌트들에 대해 강한 디블록킹 필터 및 약한 디블록킹 필터가 있다. 루마 컴포넌트들에 대한 강한 디블록킹 필터는 경계를 평활하게 만들기 위해 필터링되는 에지의 쌍방 측의 3 개의 픽셀들을 수정한다. 루마 컴포넌트들에 대한 약한 필터는 필터링되는 에지의 쌍방 측의 단 2 개의 픽셀들만을 수정한다. 이런 이유로, 루마 컴포넌트들에 대한 강한 디블록킹 필터는 약한 디블록킹 필터보다 필터링된 경계를 덜 평활하게 만든다. HEVC 버전 1 에 따른 넌-루마 컴포넌트들에 대한 디블록킹 필터는 에지의 쌍방 측의 단 하나의 픽셀만을 수정한다. 이에 따라, HEVC 버전 1 에 따르면, 디블록킹 필터는 루마 컴포넌트들에 대한 약한 디블록킹 필터보다 더 약하다.
필터 강도는 다음과 같이 트레이드-오프이다. 디블록 필터링이 더 강하게 적용될수록, 블록 아티팩트 제거가 우수할 것이다. 그러나, 필터의 강도가 증가되기 때문에, 뷰어에 의해 인지되는 바와 같이, 복원된 이미지의 선명도는 감소하기 시작할 수도 있다.
HEVC 버전 1 에서, 비디오 데이터의 루마 컴포넌트들에 대한 디블록킹 필터링 프로세스는 여러 방식들에서 넌-루마 컴포넌트들에 대한 디블록킹 필터링 프로세스와는 상이하다. 본 개시물의 양태들에 따른 일부 예들에서, 비디오 데이터의 넌-루마 컴포넌트들에 대한 디블록킹 필터링 프로세스가 HEVC 버전 1 에서 루마 컴포넌트들에 대해서만 이용되는 디블록킹 필터링 프로세스들의 하나 이상의 양태들을 적용해야 하는지 여부에 관한 결정이 행해진다.
다양한 예들에서, 이 결정은 이하 더 상세히 논의되는 하나 이상의 팩터들에 기초하여 행해질 수도 있다. 하나의 특정 예에서, 플래그 "deblock_chroma_as_luma" 의 값은 HEVC 버전 1 에 따른 루마 컴포넌트들에 대해서만 이용되는 디블록킹 필터링 프로세스들의 하나 이상의 양태들이 본 개시물에 따라, 하나 이상의 넌-루마 컴포넌트들에 적용되어야 한다면 1 로 설정될 수도 있다. 즉, 다양한 예들에서, 1 로 설정되는 "deblock_chroma_as_luma" 플래그의 값에 기초하여, 하나 이상의 넌-루마 컴포넌트들의 디블록 필터링이 HEVC 버전 1 에서의 루마 컴포넌트들의 디블록킹 필터링과 동일한 방식으로 수행된다 (즉, 동일하다). 일부 인스턴스들에서, 1 로 설정되는 "deblock_chroma_as_luma" 플래그의 값은 강한 필터링이 넌-루마 컴포넌트들에 적용될 수도 있다는 표시를 초래한다.
더욱이, 본 개시물에 따르면, deblock_chroma_as_luma 플래그의 값은 하나 이상의 넌-루마 컴포넌트들에 대한 디블록킹 필터링이 HEVC 버전 1 에서 특정되는 바와 같이 수행되어야 한다면 0 으로 설정된다. 즉, 일부 예들에서, 0 으로 설정되는 "deblock_chroma_as_luma" 플래그의 값에 기초하여, 넌-루마 컴포넌트들의 디블록 필터링은 예를 들어, 강한 필터가 넌-루마 컴포넌트들의 디블록 필터링을 위해 허용되지 않도록 HEVC 버전 1 에 따른 종래의 방식으로 수행된다.
하나의 특정 예에서, 플래그의 값은 비디오 데이터의 컬러 공간에 의존하여 0 또는 1 중 어느 하나로 설정될 수도 있다. 다른 예들에서는, 다른 팩터들이 이하 더 상세히 논의한 바와 같이, HEVC 버전 1 에 따른 루마 컴포넌트들에 대해서만 활용된 디블록킹 필터링 프로세스의 하나 이상의 양태들이 하나 이상의 넌-루마 컴포넌트들에 적용되어야 하는지 여부를 결정하는데 있어서 이용될 수도 있다. 또한, deblock_chroma_as_luma 플래그의 값이 1 로 설정될 때 본 개시물에 따라 넌-루마 컴포넌트들에 적용될 수도 있는 HEVC 버전 1 에 따른 루마 컴포넌트들에 대해서만 이용되는 디블록킹 필터링 프로세스의 하나 이상의 양태들은 이하 더 상세히 논의된다.
HEVC 버전 1 에 따르면, 루마 컴포넌트들에 대해, 어떤 필터도 적용하지 않을지, 약한 필터를 적용할지, 또는 강한 필터를 적용할지 여부에 대한 결정이 각각의 블록에 대해 행해진다. 이 결정은 예를 들어, 개별의 블록들의 에지 특성들에 기초할 수도 있다. 루마 강한 필터는 상기 논의한 바와 같이 루마 약한 필터보다 더 큰 필터링 강도를 갖는다. 또한, HEVC 버전 1 에 따르면, 넌-루마 컴포넌트들에 대해, 어떤 필터도 적용하지 않을지 또는 약한 필터를 적용할지 여부에 대한 결정이 각각의 블록에 대해 행해진다. 이 결정은 예를 들어, 넌-루마 컴포넌트들 내의 개별의 블록들의 에지 특성들에 기초할 수도 있다. HEVC 버전 1 에 따르면, 강한 필터링은 절대 넌-루마 컴포넌트들에 대해 수행되지 않는다. 게다가, HEVC 버전 1 에 따르면, 넌-루마 컴포넌트들에 대해 수행될 수도 있는 "약한" 필터링은 HEVC 버전 1 에 따라 루마 컴포넌트들에 대해 수행되는 "약한" 필터링보다 필터링 강도에 있어서 더 약하다.
크로마 컴포넌트들에 대해 약한 필터만을 적용하는 것은 다양한 다른 컬러 공간들에서의 크로마 컴포넌트들이 상기 설명된 YCbCr 4:2:0 포맷에서의 크로마 컴포넌트들과 연관된 에너지보다 더 많은 에너지를 가질 수도 있기 때문에, RGB 또는 YCbCr 4:4:4 와 같이, YCbCr 4:2:0 이 아닌 컬러 공간들에 대한 시각 품질을 해칠 수도 있다.
본 개시물의 일부 양태들은 일반적으로 포맷-적응형 필터링 스킴을 제공하는 것과 관련된다. 예를 들어, 본 개시물의 기법들은, 예를 들어, 코딩되는 비디오 데이터의 컬러 공간에 적어도 기초하여 크로마 컴포넌트들에 대해 가변 (즉, 하나 이상의 팩터들에 기초하여 적응형) 디블록킹 필터링을 인에이블하는 것을 포함한다. 본 명세서에서 설명한 바와 같이, 용어 "컬러 공간" 은 일반적으로 컬러 컴포넌트들 (예를 들어, RGB, YCbCr 등) 및/또는 비디오 데이터를 형성하는 각각의 컴포넌트의 샘플링 레이트를 지칭한다. 본 명세서에서 사용한 바와 같이, 용어 "컬러 공간" 은 컬러 컴포넌트들을 지칭할 뿐만 아니라 컬러 컴포넌트들의 연관된 샘플링 포맷을 지칭하여, 예를 들어, 컬러 공간들 YCbCr 4:4:4 및 YCbCr 4:2:0 이 상이한 컬러 공간들인 것으로 간주된다. 컬러 공간은 또한, 비디오 포맷, 또는 더 단순히, 포맷으로 지칭될 수도 있다.
일부 예들에서, 디블록 필터링의 결과로서 달성된 시각 품질을 개선시키기 위해, 강한 필터링이 크로마 컴포넌트들에 대해 또는 모든 컬러 컴포넌트들 (예를 들어, RGB 컬러 공간의 경우 R, G, 및 B) 에 대해 허용된다 (즉, 적용될 수도 있다).
상기 논의한 바와 같이, 플래그 "deblock_chroma_as_luma" 와 같은 표시는 HEVC 버전 1 에 따른 루마 컴포넌트들에 대해서만 이용되는 디블록킹 필터링 프로세스들의 하나 이상의 양태들이 넌-루마 컴포넌트들에 적용되어야 하는지 여부를 나타내기 위해 시그널링될 수도 있다. HEVC 버전 1 에 따른 루마 컴포넌트들에 대해서만 이용되는 디블록킹 필터링 프로세스의 양태들 중 하나는 강한 필터링이다. 강한 필터링은 HEVC 버전 1 에 따라 넌-루마 컴포넌트들에 적용될 수 없다. 본 개시물에 따라 동작하는 일부 예들에서, deblock_chroma_as_luma 플래그가 1 의 값을 가질 때, 강한 필터링이 복원된 신호의 모든 컬러 컴포넌트들에 적용될 수 있다. 본 개시물에 따른 다른 예들에서, deblock_chroma_as_luma 플래그가 1 의 값을 가질 때, 강한 필터링은 복원된 신호의 넌-루마 컴포넌트들에 대해 인에이블되지 않고, 이하 더 상세히 논의한 바와 같이, HEVC 버전 1 에 따른 루마 컴포넌트들에 대해서만 이용되는 디블록킹 필터링 프로세스들의 다른 양태들이 복원된 비디오의 넌-루마 컴포넌트들의 디블록킹 필터링에 적용된다.
예를 들어, 플래그 "deblock_chroma_as_luma" 와 같은 표시는 강한 필터링이 복원된 신호의 모든 컬러 컴포넌트들에 적용될 수 있는지 여부를 나타내기 위해 비디오 인코더에 의해 시그널링될 수도 있다. 플래그의 값이 "0" 으로 설정된다면, 디블록 필터링이 HEVC 버전 1 에 따라 수행된다. 플래그의 값이 "1" 로 설정된다면, HEVC 버전 1 에서의 루마에 대해 정의된 디블록 필터링이 복원된 신호의 모든 컬러 컴포넌트들에 추가 적용된다. 이 프로세스의 일 예가 이하 더 상세히 논의된다.
상기 설명된 플래그의 값은 비디오 코더의 사용자의 재량으로 설정될 수도 있다. 예를 들어, RGB 시퀀스들의 경우, deblock_chroma_as_luma 플래그는 1 의 값으로 설정될 수 있고, YCbCr 4:4:4 시퀀스들의 경우, 이 플래그는 사용자가 비디오 코더가 크로마 컴포넌트들에 강한 필터링을 적용하는 것을 원하지 않는다면 0 의 값으로 설정될 수 있다.
일 예에서, 플래그는 비디오 인코더에 의해, 시퀀스 레벨에서 시퀀스 파라미터 세트 (SPS) 의 일부로서 시그널링될 수 있다. 이 예에서는, 비디오 인코더에 의해 생성된 시퀀스 파라미터 세트 (SPS) 또는 다른 시퀀스-레벨 파라미터 세트가 강한 필터링이 복원된 신호의 모든 컬러 컴포넌트들에 적용될 수 있는지 여부를 나타내는 플래그 (예를 들어, deblock_chroma_as_luma 플래그) 를 포함할 수도 있다.
다른 예에서, 플래그는 비디오 인코더에 의해 픽처 레벨에서 픽처 파라미터 세트 (PPS) 의 일부로서 시그널링될 수 있다. 다른 예에서, 플래그는 비디오 인코더에 의해 슬라이스 레벨에서 슬라이스 헤더의 일부로서 시그널링될 수 있다. 각각의 경우에, 비디오 디코더는 인코딩된 비트스트림에서 비디오 인코더에 의해 생성된 시그널링을 수신한다.
일부 예들에서, 상기 논의한 바와 같이, 표시, 예를 들어, deblock_chroma_as_luma 플래그는 HEVC 버전 1 에 따른 루마 컴포넌트들에 대해서만 이용되는 디블록킹 필터링 프로세스의 하나 이상의 양태들이 본 개시물에 따라, 넌-루마 컴포넌트들에 적용되어야 하는지 여부를 나타내는데 이용될 수도 있다. 이들 예들에서, 플래그의 값은 디블록킹 필터링 이전에 설정되며, 디블록킹 필터링 프로세스는 플래그의 값에 기초하여 HEVC 버전 1 에 따른 루마 컴포넌트들에 대해서만 이용되는 디블록킹 필터링 프로세스의 하나 이상의 양태들을 넌-루마 컴포넌트들에 적용할 수도 있다. 다른 예들에서, 이러한 플래그는 존재하지 않으며 (즉, 이러한 플래그는 코딩 또는 시그널링되지 않는다), HEVC 버전 1 에 따른 루마 컴포넌트들에 대해서만 이용되는 디블록킹 필터링 프로세스들의 하나 이상의 양태들이 본 개시물에 따라 넌-루마 컴포넌트들에 적용되어야 하는지 여부에 대한 결정이 디블록킹 필터링 프로세스 그 자체 동안 행해질 수도 있다. 이들 예들에서, (HEVC 버전 1 에서의 루마 컴포넌트들에 대한 디블록킹 필터링의 하나 이상의 양태들을 하나 이상의 넌-루마 컴포넌트들에 적용할지 여부에 대한) 결정은 플래그의 값에 기초하는 것 보다는 본 개시물 내에서 논의된 하나 이상의 팩터들에 기초하여 행해진다.
본 개시물의 양태들에 따르면, 일부 예들에서, (HEVC 버전 1 에서의 루마 컴포넌트들에 대한 디블록킹 필터링의 하나 이상의 양태들을 하나 이상의 넌-루마 컴포넌트들에 적용할지 여부에 대한) 결정은 코딩되는 비디오 데이터의 프로파일에 기초하여 행해질 수도 있다. "프로파일" 은 알고리즘들, 피처들, 및/또는 툴들의 서브세트는 물론 그 알고리즘들, 피처들, 및/또는 툴들에 적용하는 임의의 제약들에도 대응한다. 보다 구체적으로, "프로파일" 은 비디오 코딩 표준에 의해 특정되는 전체 비트스트림 신택스의 서브세트이다. "티어 (tier) 들" 및 "레벨들" 은 각각의 프로파일 내에서 특정될 수도 있다. "레벨" 은 디코더의 리소스들의 소비 한계에 대응한다. 디코더의 리소스들의 예들은 디코더의 메모리 및 디코더의 컴퓨테이션 능력을 포함하며, 이는 픽처들의 해상도, 비트 레이트, 및 블록 프로세싱 레이트에 영향을 미친다.
프로파일은 프로파일 표시자, 예를 들어, "profile_idc" 를 가지며, 여기서 하이 프로파일 4:4:4 및 스크린 콘텐츠 4:4:4 프로파일이 profile_idc 의 개별의 값에 의해 나타내질 수도 있는 2 개의 타입들의 프로파일들의 예들이다. 유사하게, 레벨은 레벨 표시자 (예를 들어, "level_idc") 의 값으로 시그널링될 수도 있다. 티어의 레벨은 비트스트림에서의 신택스 엘리먼트들의 값에 부과된 특정 세트의 제약들일 수도 있다. 이들 제약들은 값들에 대한 단순 한계일 수도 있다. 대안적으로, 특정 세트의 제약들은 값들의 산술 조합들 (예를 들어, 픽처 폭 곱하기 픽처 높이 곱하기 초당 디코딩된 픽처들의 수) 에 대한 제약들의 형태를 취할 수도 있다. 하위 티어에 대해 특정된 레벨은 상위 티어에 대해 특정된 레벨보다 더 많이 제약된다.
일부 예들에서, 비디오 데이터의 프로파일이 하이 프로파일 4:4:4 라면, HEVC 버전 1 에서의 루마 컴포넌트들에 대한 디블록킹 필터링의 하나 이상의 양태들을 비디오 데이터의 하나 이상의 넌-루마 컴포넌트들에 적용하라는 결정이 행해진다. 이들 예들 중 일부에서, 비디오 데이터의 프로파일이 스크린 콘텐츠 4:4:4 프로파일이라면, HEVC 버전 1 에서의 넌-루마 컴포넌트들에 대해 특정한 바와 같이 하나 이상의 넌-루마 컴포넌트들에 대해 디블록킹 필터링을 수행하라는 결정이 행해진다.
다른 예에서, 상이한 디블록킹 필터링은 비디오 데이터의 크로마 포맷에 의존하여 적용될 수 있다. HEVC 에 대한 레인지 확장에서, 크로마 포맷은 신호가 4:4:4 에 있는지, 4:2:2 에 있는지, 또는 4:2:0 에 있는지 여부를 나타내기 위해 시그널링될 수도 있다. 이 예에서, 포맷이 4:4:4 에 있다면, HEVC 버전 1 에서의 루마에 대해 정의된 디블록킹 필터링은 모든 컬러 컴포넌트들에 대해 적용된다. 포맷이 4:2:2, 4:2:0, 또는 4:0:0 에 있다면, 하나 이상의 넌-루마 컴포넌트들에 대한 디블록킹 필터링이 HEVC 버전 1 에 따라 수행된다.
또 다른 예에서, HEVC 버전 1 에 따른 루마 컴포넌트들에 적용된 필터링은 강한 디블록킹 필터링을 제외하고 넌-루마 컴포넌트들에 적용될 수도 있다. 예를 들어, HEVC 버전 1 에 따르면, 넌-루마 컴포넌트들의 경우 (루마 컴포넌트들의 경우가 아님), 블록 경계는 이 경계를 형성하는 블록들 중 어느 하나 또는 그 블록들 양자가 인트라-예측 모드로 코딩될 때에만 필터링된다. 이에 따라, HEVC 버전 1 에 따른 루마 컴포넌트들에 대한 디블록킹 필터링의 하나 이상의 양태들을 비디오 데이터의 하나 이상의 넌-루마 컴포넌트들에 적용하라는 결정이 행해질 때 비디오 데이터의 하나 이상의 넌-루마 컴포넌트들에 적용될 수도 있는 HEVC 버전 1 에 따른 루마 컴포넌트들에 대한 디블록킹 필터링의 하나 이상의 양태들 중 하나는, 디블록킹 필터링이 경계를 형성하는 블록들 중 어느 블록도 인트라-예측 모드로 코딩되지 않는 경계들의 경우조차 비디오 데이터의 넌-루마 컴포넌트들에 대해 수행될 수도 있다는 것이다.
상기 예에서, 넌-루마 컴포넌트들에 강한 필터를 적용하는 것을 억제하기 위한 근거는 강한 필터가 통상 약한 필터에 비하여 더 긴 필터 탭 사이즈로 인해 더 많은 픽셀들의 라인들을 저장하는 것을 요구하기 때문에, 강한 필터가 더 많은 구현 리소스들을 요구할 수도 있다는 것이다. 따라서, 구현 복잡도를 감소시키기 위해, HEVC 버전 1 에 따른 루마 컴포넌트들에 적용하는 디블록킹 필터링의 모든 양태들은 HEVC 버전 1 에 따른 루마 컴포넌트들에 대해 이용된 강한 필터링을 제외하고는 넌-루마 컴포넌트들에 적용될 수도 있다. 즉, 본 개시물의 다양한 예들에 따르면, HEVC 버전 1 에서의 루마 컴포넌트들에 대해서만 이용되는 디블록킹 필터링 프로세스의 하나 이상의 양태들을 넌-루마 컴포넌트들에 적용하라는 결정이 행해질 때, HEVC 버전 1 에서의 루마 컴포넌트들에 대해 특정된 디블록킹 필터링 프로세스의 모든 양태들은 강한 필터링이 넌-루마 컴포너트들에 대해 허용되지 않는다는 것을 제외하고는 넌-루마 컴포넌트들에 대해 적용될 수도 있다.
또 다른 예에서, 상이한 임계값들
Figure pct00001
및 tC 가 상기 설명된 플래그 또는 크로마 포맷에 따라 이용될 수도 있다. 예를 들어, HEVC 에서, 임계값들,
Figure pct00002
및 tC 는 디블록킹 강도를 제어하기 위해 정의된다. 즉,
Figure pct00003
및 tC 의 값들이 클수록 디블록킹 강도가 커지며, 그 역도 또한 마찬가지이다.
Figure pct00004
및 tC 의 분명한 정의는 HEVC 사양에서 주어진다. 테이블 (8-11) 은 이하에 도시한 바와 같이, QP 에 따른 이들 임계값들을 포함한 HEVC 에서 정의된다:
테이블 8-11 - 입력 Q 로부터의 임계값들
Figure pct00005
Figure pct00006
의 도출
Figure pct00007
테이블은 변수들
Figure pct00008
' 및 tC' 에 대한 값들을 제공한다. 변수들
Figure pct00009
및 tC 는 다음과 같이 변수들
Figure pct00010
' 및 tC' 로부터 도출될 수 있다.
Figure pct00011
본 개시물의 양태들에 따르면, 강한 필터링이 크로마 컴포넌트들에 대해 적용될 수 있도록 추가적인 테이블이 정의될 수도 있다. 이 예에서, HEVC 버전 1 에서의 루마 컴포넌트들에 대해서만 이용되는 디블록킹 필터링 프로세스들의 하나 이상의 양태들을 넌-루마 컴포넌트들에 적용하라는 결정이 행해졌다면, 강한 필터링이 넌-루마 컴포넌트들에 대해 인에이블되도록 이 새로운 테이블이 이용된다.
HEVC 버전 1 에서, 디블록킹 필터링은 인터-코딩된 블록들에 대한 비디오 데이터의 넌-루마 컴포넌트들에 적용될 수 없고, 디블록킹 필터링은 인터-코딩된 블록들의 루마 컴포넌트들에 적용될 수 있다.
일부 예들에서, 본 개시물의 기법들은 인터-코딩된 블록들에 크로마 디블록킹 필터링을 적용할 수도 있다. HEVC 에 대한 현재의 사양에서, 크로마 필터는 경계 강도가 "2" 와 동일할 때 적용되며, 이는 경계를 형성하는 블록들 중 하나가 인트라-코딩된다는 것을 나타낸다. 본 개시물에 따르면, 크로마 필터링은 또한, 경계의 경계 강도가 "0" 보다 더 클 때 (이는 디블록킹 필터링이 넌-루마 컴포넌트들 간에 인터-코딩된 블록들에 대해 수행되는 것을 허용한다) 적용될 수도 있다. 일부 예들에서, 넌-루마 컴포넌트들에 대한 경계 강도는 경계 강도가 루마 컴포넌트에 대해 계산되는 것과 동일한 방식으로 계산될 수 있다. 또는, 일부 예들에서, 루마 컴포넌트에 대해 계산되는 동일한 경계 강도가 크로마 컴포넌트에 대해 적용될 수 있다. 도 10 은 이하 더 상세히 설명한 바와 같이, 경계 강도가 본 개시물의 기법들과 일치하는, HEVC 에 따라 계산될 수도 있는 방법을 예시하는 플로우도이다.
도 1 은 비디오 데이터를 필터링하기 위한 기법들을 활용할 수도 있는 일 예의 비디오 인코딩 및 디코딩 시스템 (10) 을 예시하는 블록도이다. 도 1 에 도시한 바와 같이, 시스템 (10) 은 목적지 디바이스 (14) 에 의해 추후에 디코딩될 인코딩된 비디오 데이터를 제공하는 소스 디바이스 (12) 를 포함한다. 특히, 소스 디바이스 (12) 는 컴퓨터 판독가능 매체 (16) 를 통해 비디오 데이터를 목적지 디바이스 (14) 에 제공한다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 데스크톱 컴퓨터들, 노트북 (즉, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋-톱 박스들, 전화기 핸드셋들, 이를 테면 소위 "스마트" 폰들, 소위 "스마트" 패드들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 비디오 스트리밍 디바이스 등을 포함한 광범위한 디바이스들 중 임의의 것을 포함할 수도 있다. 일부 경우들에서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 무선 통신을 위해 장비될 수도 있다.
목적지 디바이스 (14) 는 컴퓨터 판독가능 매체 (16) 를 통해 디코딩될 인코딩된 비디오 데이터를 수신할 수도 있다. 컴퓨터 판독가능 매체 (16) 는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 인코딩된 비디오 데이터를 이동시키는 것이 가능한 임의의 타입의 매체 또는 디바이스를 포함할 수도 있다. 하나의 예에서, 컴퓨터 판독가능 매체 (16) 는 소스 디바이스 (12) 가 인코딩된 비디오 데이터를 직접 실시간으로 목적지 디바이스 (14) 에 송신하는 것을 가능하게 하기 위해 통신 매체를 포함할 수도 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라 변조되고 목적지 디바이스 (14) 에 송신될 수도 있다. 통신 매체는 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리 송신 라인들과 같은 임의의 무선 또는 유선 통신 매체를 포함할 수도 있다. 통신 매체는 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷 기반 네트워크의 부분을 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
일부 예들에서, 인코딩된 데이터는 출력 인터페이스 (22) 로부터 저장 디바이스로 출력될 수도 있다. 유사하게, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스로부터 액세스될 수도 있다. 저장 디바이스는 하드 드라이브, 블루-레이 디스크들, DVD들, CD-ROM들, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체들과 같은 다양한 분산된 또는 로컬로 액세스된 데이터 저장 매체들 중 임의의 것을 포함할 수도 있다. 추가 예에서, 저장 디바이스는 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오를 저장할 수도 있는 파일 서버 또는 다른 중간 저장 디바이스에 대응할 수도 있다.
목적지 디바이스 (14) 는 스트리밍 또는 다운로드를 통해 저장 디바이스로부터의 저장된 비디오 데이터에 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 에 송신하는 것이 가능한 임의의 타입의 서버일 수도 있다. 예시적인 파일 서버들은 (예를 들어, 웹사이트용의) 웹 서버, FTP 서버, NAS (network attached storage) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스 (14) 는 인터넷 접속을 포함하는 임의의 표준 데이터 접속을 통하여 인코딩된 비디오 데이터에 액세스할 수도 있다. 이것은 무선 채널 (예를 들어, Wi-Fi 접속), 유선 접속 (예를 들어, DSL, 케이블 모뎀 등), 또는 파일 서버 상에 저장된 인코딩된 비디오 데이터에 액세스하기에 적합한 양자의 조합을 포함할 수도 있다. 인코딩된 비디오 데이터의 저장 디바이스로부터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이들의 조합일 수도 있다.
본 개시물의 기법들은 무선 애플리케이션들 또는 세팅들에 반드시 제한되는 것은 아니다. 기법들은 공중 경유 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 인터넷 스트리밍 비디오 송신들, 이를 테면 HTTP 를 통한 동적 적응형 스트리밍 (DASH), 데이터 저장 매체로 인코딩되는 디지털 비디오, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션들과 같은 다양한 멀티미디어 애플리케이션들 중 임의의 것의 지원 하에 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 시스템 (10) 은 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 비디오 텔레포니와 같은 애플리케이션들을 지원하기 위해 일방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 및 출력 인터페이스 (22) 를 포함한다. 목적지 디바이스 (14) 는 입력 인터페이스 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 본 개시물에 따르면, 소스 디바이스 (12) 의 비디오 인코더 (20) 는 비디오 코딩에서 변환을 수행하기 위한 기법들을 적용하도록 구성될 수도 있다. 다른 예들에서, 소스 디바이스 및 목적지 디바이스는 다른 컴포넌트들 또는 어레인지먼트들을 포함할 수도 있다. 예를 들어, 소스 디바이스 (12) 는 외부 비디오 소스 (18), 이를 테면 외부 카메라로부터 비디오 데이터를 수신할 수도 있다. 마찬가지로, 목적지 디바이스 (14) 는 통합된 디스플레이 디바이스를 포함하는 것 보다는, 외부 디스플레이 디바이스와 인터페이스할 수도 있다.
도 1 의 예시된 시스템 (10) 은 단지 하나의 예일 뿐이다. 비디오 코딩에서 필터링을 수행하기 위한 기법들이 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수도 있다. 일반적으로 본 개시물의 기법들이 비디오 인코딩 디바이스에 의해 수행되지만, 그 기법들은 또한 비디오 코덱에 의해 수행될 수도 있다. 더욱이, 본 개시물의 기법들은 또한 비디오 프리프로세서에 의해 수행될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 소스 디바이스 (12) 가 목적지 디바이스 (14) 로의 송신을 위해 코딩된 비디오 데이터를 생성하는 그러한 코딩 디바이스들의 예들일 뿐이다. 일부 예들에서, 디바이스들 (12, 14) 은 디바이스들 (12, 14) 각각이 비디오 인코딩 및 디코딩 컴포넌트들을 포함하도록 실질적으로 대칭 방식으로 동작할 수도 있다. 이런 이유로, 시스템 (10) 은 예를 들어, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 또는 비디오 텔레포니를 위해, 비디오 디바이스들 (12, 14) 간의 일방향 또는 양방향 비디오 송신을 지원할 수도 있다.
소스 디바이스 (12) 의 비디오 소스 (18) 는 비디오 캡처 디바이스, 이를 테면 비디오 카메라, 이전에 캡처된 비디오를 포함한 비디오 아카이브, 및/또는 비디오를 비디오 콘텐츠 제공자로부터 수신하기 위한 비디오 피드 인터페이스를 포함할 수도 있다. 추가 대안으로서, 비디오 소스 (18) 는 소스 비디오로서, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터-생성된 비디오의 조합으로서 컴퓨터 그래픽스 기반 데이터를 생성할 수도 있다. 일부 경우들에서, 비디오 소스 (18) 가 비디오 카메라이면, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 그러나, 상기 언급한 바와 같이, 본 개시물에서 설명된 기법들은 일반적으로 비디오 코딩에 적용가능할 수도 있으며, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다. 각각의 경우에, 캡처된, 프리-캡처된, 또는 컴퓨터-생성된 비디오는 비디오 인코더 (20) 에 의해 인코딩될 수도 있다. 인코딩된 비디오 정보는 그 후 출력 인터페이스 (22) 에 의해 컴퓨터 판독가능 매체 (16) 로 출력될 수도 있다.
컴퓨터 판독가능 매체 (16) 는 순시적 (transient) 매체들, 이를 테면 무선 브로드캐스트 또는 유선 네트워크 송신, 또는 유형의 저장 매체들, 이를 테면 하드 디스크, 플래시 드라이브, 콤팩트 디스크, 디지털 비디오 디스크, 블루-레이 디스크, 또는 다른 컴퓨터 판독가능 매체들을 포함할 수도 있다. 일부 예들에서, 네트워크 서버 (미도시) 는 소스 디바이스 (12) 로부터 인코딩된 비디오 데이터를 수신하고 인코딩된 비디오 데이터를 예를 들어, 네트워크 송신을 통해 목적지 디바이스 (14) 에 제공할 수도 있다. 유사하게, 디스크 스탬핑 시설과 같은 매체 생산 시설의 컴퓨팅 디바이스는 소스 디바이스 (12) 로부터 인코딩된 비디오 데이터를 수신하고 인코딩된 비디오 데이터를 포함하는 디스크를 생산할 수도 있다. 따라서, 컴퓨터 판독가능 매체 (16) 는 다양한 예들에서, 다양한 형태들의 하나 이상의 컴퓨터 판독가능 매체들을 포함하는 것으로 이해될 수도 있다. 명세서 및 청구항들을 통하여, 용어 "유형의 프로세서 판독가능 저장 매체" 및/또는 "비일시적 프로세서 판독가능 매체" 는 전파 신호들을 그 자체로 배제하도록 분명히 정의되지만, 용어 "유형의 프로세서 판독가능 저장 매체" 및/또는 "비일시적 프로세서 판독가능 매체" 는 랜덤 액세스 메모리 (RAM), 레지스터 메모리, 프로세서 캐시 등을 포함한다.
목적지 디바이스 (14) 의 입력 인터페이스 (28) 는 컴퓨터 판독가능 매체 (16) 로부터 정보를 수신한다. 컴퓨터 판독가능 매체 (16) 의 정보는 블록들 및 다른 코딩된 유닛들, 예를 들어, GOP들의 특성들 및/또는 프로세싱을 기술하는 신택스 엘리먼트들을 포함하는, 비디오 디코더 (30) 에 의해서 또한 이용되는 비디오 인코더 (20) 에 의해 정의된 신택스 정보를 포함할 수도 있다. 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 음극선관 (CRT), 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 타입의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중 임의의 것을 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 적용가능한 대로, 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 주문형 집적 회로들 (ASIC들), 필드 프로그램가능 게이트 어레이들 (FPGA들), 이산 로직 회로, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합들과 같은 다양한 적합한 인코더 또는 디코더 회로 중 임의의 것으로서 구현될 수도 있다. 기법들이 소프트웨어에서 부분적으로 구현될 때, 디바이스는 적합한 비일시적 프로세서 판독가능 매체에 소프트웨어에 대한 명령들을 저장하고 그 명령들을 본 개시물의 기법들을 수행하기 위해 하나 이상의 프로세서들을 이용하여 하드웨어에서 실행할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 각각은, 어느 하나가 결합된 비디오 인코더/디코더 (코덱) 의 부분으로서 통합될 수도 있는, 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있다. 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 를 포함하는 디바이스는 집적 회로, 마이크로프로세서, 및/또는 무선 통신 디바이스, 이를 테면 셀룰러 전화기를 포함할 수도 있다.
도 1 에 도시하지 않았지만, 일부 양태들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 오디오 인코더 및 디코더와 각각 통합될 수도 있으며, 공통 데이터 스트림 또는 별개의 데이터 스트림에서의 오디오와 비디오 양자의 인코딩을 핸들링하기 위해, 적절한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 적용가능하다면, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜 (UDP) 과 같은 다른 프로토콜들에 따를 수도 있다.
본 개시물은 일반적으로 비디오 인코더 (20) 가 다른 디바이스, 이를 테면 비디오 디코더 (30) 에 소정의 정보를 "시그널링하는 것" 과 관련될 수도 있다. 그러나, 비디오 인코더 (20) 는 소정의 신택스 엘리먼트들을 비디오 데이터의 다양한 인코딩된 부분들과 연관시킴으로써 정보를 시그널링할 수도 있다는 것이 이해되어야 한다. 즉, 비디오 인코더 (20) 는 소정의 신택스 엘리먼트들을 비디오 데이터의 다양한 인코딩된 부분들의 헤더들에 저장함으로써 데이터를 "시그널링할" 수도 있다. 일부 경우들에서, 이러한 신택스 엘리먼트들은 비디오 디코더 (30) 에 의해 수신 및 디코딩되기 이전에 인코딩 및 저장 (예를 들어, 저장 디바이스 (24) 에 저장) 될 수도 있다. 따라서, 용어 "시그널링하는 것" 은 일반적으로, 압축된 비디오 데이터를 디코딩하기 위한 신택스 또는 다른 데이터의 통신이 실시간 또는 근 실시간으로 일어나든 또는 인코딩 시에 매체에 신택스 엘리먼트들을 저장할 때 일어날 수도 있고 그 후 이 매체에 저장된 후 언제라도 디코딩 디바이스에 의해 취출될 수도 있는 바와 같이 어떤 기간에 걸쳐 일어나든 간에 이러한 통신을 지칭할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 MPEG-4, 파트 10, 어드밴스드 비디오 코딩 (AVC) 으로 대안적으로 지칭된 ITU-T H.264 표준, 또는 이러한 표준들의 확장들과 같은 비디오 압축 표준에 따라 동작할 수도 있다. ITU-T H.264/MPEG-4 (AVC) 표준은 JVT (Joint Video Team) 로 알려진 집합적 파트너십 (collective partnership) 의 산물로서 ISO/IEC 동화상 전문가 그룹 (MPEG) 과 함께 ITU-T 비디오 코딩 전문가 그룹 (VCEG) 에 의해 공식화되었다. 일부 양태들에서, 본 개시물에서 설명된 기법들은 H.264 표준에 일반적으로 따르는 디바이스들에 적용될 수도 있다. H.264 표준은 2005년 3월에, ITU-T 연구 그룹에 의한, ITU-T Recommendation H.264, Advanced Video Coding for generic audiovisual services 에 기재되어 있으며, 이는 H.264 표준 또는 H.264 사양, 또는 H.264/AVC 표준 또는 사양으로 본 명세서에서 지칭될 수도 있다. 비디오 압축 표준들의 다른 예들은 MPEG-2 및 ITU-T H.263 을 포함한다.
본 개시물의 기법들은 임의의 특정 코딩 표준에 제한되지 않지만, 그 기법들은 HEVC 표준에 관련될 수도 있다. HEVC 표준화 노력들은 HEVC 테스트 모델 (HM) 로 지칭된 비디오 코딩 디바이스의 모델에 기초한다. HM 은 예를 들어, ITU-T H.264/AVC 에 따라 기존 디바이스들에 대한 비디오 코딩 디바이스들의 여러 추가적인 능력들을 추정한다. 예를 들어, H.264 는 9 개의 인트라-예측 인코딩 모드들을 제공하지만, HM 은 무려 35 개나 되는 인트라-예측 인코딩 모드들을 제공할 수도 있다.
일반적으로, HM 의 작업 모델은 비디오 픽처가 루마와 크로마 양자의 샘플들을 포함하는 일 시퀀스의 트리블록들 또는 최대 코딩 유닛들 (LCU) 로 분할될 수도 있다는 것을 설명한다. 비트스트림 내의 신택스 데이터는 픽셀들의 수의 관점에서 최대 코딩 유닛인 LCU 에 대한 사이즈를 정의할 수도 있다. 슬라이스는 다수의 연속적인 코딩 트리 유닛들 (CTU들) 을 포함한다. CTU들 각각은 루마 샘플들의 코딩 트리 블록, 크로마 샘플들의 2 개의 대응하는 코딩 트리 블록들, 및 코딩 트리 블록들의 샘플들을 코딩하는데 이용된 신택스 구조들을 포함할 수도 있다. 모노크롬 픽처 또는 3 개의 별개의 컬러 평면들을 갖는 픽처에서, CTU 는 단일 코딩 트리 블록 및 그 코딩 트리 블록의 샘플들을 코딩하는데 이용된 신택스 구조들을 포함할 수도 있다.
비디오 픽처는 하나 이상의 슬라이스들로 파티셔닝될 수도 있다. 각각의 트리블록은 쿼드트리에 따라 코딩 유닛들 (CU들) 로 스플리팅될 수도 있다. 일반적으로, 쿼드트리 데이터 구조는 CU 당 하나의 노드를 포함하며, 여기서 루트 노드가 트리블록에 대응한다. CU 가 4 개의 서브-CU들로 스플리팅된다면, CU 에 대응하는 노드는 각각이 서브-CU들 중 하나에 대응하는 4 개의 리프 노드들을 포함한다. CU 는 루마 샘플 어레이, Cb 샘플 어레이 및 Cr 샘플 어레이를 갖는 픽처의 루마 샘플들의 코딩 블록 및 크로마 샘플들의 2 개의 대응하는 코딩 블록들, 및 코딩 블록들의 샘플들을 코딩하는데 이용된 신택스 구조들을 포함할 수도 있다. 모노크롬 픽처 또는 3 개의 별개의 컬러 평면들을 갖는 픽처에서, CU 는 단일 코딩 블록 및 그 코딩 블록의 샘플들을 코딩하는데 이용된 신택스 구조들을 포함할 수도 있다. 코딩 블록은 샘플들의 NxN 블록이다.
쿼드트리 데이터 구조의 각각의 노드는 대응하는 CU 에 대한 신택스 데이터를 제공할 수도 있다. 예를 들어, 쿼드트리에서의 노드는 노드에 대응하는 CU 가 서브-CU들로 스플리팅되는지 여부를 나타내는 스플릿 플래그를 포함할 수도 있다. CU 에 대한 신택스 엘리먼트들은 재귀적으로 정의될 수도 있으며, CU 가 서브-CU들로 스플리팅되는지 여부에 의존할 수도 있다. CU 가 추가 스플리팅되지 않는다면, 리프-CU 로 지칭된다. 본 개시물에서, 리프-CU 의 4 개의 서브-CU들은 또한, 오리지널 리프-CU 의 명시적 스플리팅이 없는 경우라도 리프-CU들로 지칭될 것이다. 예를 들어, 16x16 사이즈의 CU 가 추가 스플리팅되지 않는다면, 4 개의 8x8 서브-CU들은 또한 16x16 CU 가 결코 스플리팅되지 않았지만 리프-CU들로 지칭될 것이다.
CU 는 CU 가 사이즈 구분을 갖지 않는다는 것을 제외하고는 H.264 표준의 매크로블록과 유사한 목적을 갖는다. 예를 들어, 트리블록은 4 개의 자식 노드들 (서브-CU들로도 지칭됨) 로 스플리팅될 수도 있으며, 각각의 자식 노드는 결국 부모 노드일 수도 있고 다른 4 개의 자식 노드들로 스플리팅될 수도 있다. 쿼드트리의 리프 노드로 지칭되는, 최종, 미스플리팅된 자식 노드는 리프-CU 로 또한 지칭된 코딩 노드를 포함한다. 코딩된 비트스트림과 연관된 신택스 데이터는 최대 CU 깊이로 지칭되는 트리블록이 스플리팅될 수도 있는 최대 횟수를 정의할 수도 있고, 또한 코딩 노드들의 최소 사이즈를 정의할 수도 있다. 이에 따라, 비트스트림은 또한 최소 코딩 유닛 (SCU) 을 정의할 수도 있다. 본 개시물은 HEVC 의 콘텍스트에서 CU, PU, 또는 TU 중 임의의 것, 또는 다른 표준들의 콘텍스트에서 유사한 데이터 구조들 (예를 들어, H.264/AVC 에서 매크로블록들 및 그의 서브-블록들) 을 지칭하기 위해 용어 "블록" 을 사용한다.
CU 는 코딩 노드 및 그 코딩 노드와 연관된 예측 유닛들 (PU들) 및 변환 유닛들 (TU들) 을 포함한다. CU 의 사이즈는 코딩 노드의 사이즈에 대응하며 형상이 정사각형이어야 한다. CU 의 사이즈는 8x8 픽셀들에서 최대 64x64 픽셀들 이상을 가진 트리블록의 사이즈까지의 범위에 이를 수도 있다. 각각의 CU 는 하나 이상의 PU들 및 하나 이상의 TU들을 포함할 수도 있다.
일반적으로, PU 는 대응하는 CU 의 전부 또는 일부에 대응하는 공간 영역을 나타내며, PU 에 대한 참조 샘플을 취출하기 위한 데이터를 포함할 수도 있다. 더욱이, PU 는 예측에 관한 데이터를 포함한다. 예를 들어, PU 가 인트라-모드 인코딩될 때, PU 에 대한 데이터는 잔차 쿼드트리 (RQT) 에 포함될 수도 있으며, 이는 PU 에 대응하는 TU 에 대한 인트라-예측 모드를 기술하는 데이터를 포함할 수도 있다. 다른 예로서, PU 가 인트라-모드 인코딩될 때, PU 는 그 PU 에 대한 하나 이상의 모션 벡터들을 정의하는 데이터를 포함할 수도 있다. 예측 블록은 동일한 예측이 적용되는 샘플들의 직사각형 (즉, 정사각형 또는 비-정사각형) 블록일 수도 있다. CU 의 PU 는 루마 샘플들의 예측 블록, 픽처의 크로마 샘플들의 2 개의 대응하는 예측 블록들, 및 예측 블록 샘플들을 예측하는데 이용된 신택스 구조들을 포함할 수도 있다. 모노크롬 픽처 또는 3 개의 별개의 컬러 평면들을 갖는 픽처에서, PU 는 단일 예측 블록 및 예측 블록 샘플들을 예측하는데 이용된 신택스 구조들을 포함할 수도 있다.
TU들은 변환, 예를 들어, 이산 코사인 변환 (DCT), 정수 변환, 웨이블릿 변환, 또는 개념상 유사한 변환의, 잔차 비디오 데이터에의 적용에 후속하는 변환 도메인에서의 계수들을 포함할 수도 있다. 잔차 데이터는 미인코딩된 픽처의 픽셀들과 PU들에 대응하는 예측 값들 간의 픽셀 차이들에 대응할 수도 있다. 비디오 인코더 (20) 는 CU 에 대한 잔차 데이터를 포함한 TU들을 형성한 후 그 TU들을 변환하여 CU 에 대한 변환 계수들을 생성할 수도 있다. 변환 블록은 동일한 변환이 적용되는 샘플들의 직사각형 블록일 수도 있다. CU 의 변환 유닛 (TU) 은 루마 샘플들의 변환 블록, 크로마 샘플들의 2 개의 대응하는 변환 블록들, 및 변환 블록 샘플들을 변환하는데 이용된 신택스 구조들을 포함할 수도 있다. 모노크롬 픽처 또는 3 개의 별개의 컬러 평면들을 갖는 픽처에서, TU 는 단일 변환 블록 및 변환 블록 샘플들을 변환하는데 이용된 신택스 구조들을 포함할 수도 있다.
변환에 후속하여, 비디오 인코더 (20) 는 변환 계수들의 양자화를 수행할 수도 있다. 양자화는 일반적으로 변환 계수들이 계수들을 나타내는데 이용되는 데이터의 양을 가능한 대로 감소시키기 위해 양자화되어, 추가 압축을 제공하는 프로세스를 지칭한다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 심도를 감소시킬 수도 있다. 예를 들어, n-비트 값은 양자화 동안 m-비트 값으로 라운드 다운될 수도 있으며, 여기서 nm 보다 더 크다.
비디오 인코더 (20) 는 변환 계수들을 스캔하여, 양자화된 변환 계수들을 포함한 2 차원 매트릭스로부터 1 차원 벡터를 생성할 수도 있다. 스캔은 더 높은 에너지 (및 그에 따른 더 낮은 주파수) 계수들을 어레이의 전방에 배치하고 더 낮은 에너지 (및 그에 따른 더 높은 주파수) 계수들을 그 어레이의 후방에 배치하도록 설계될 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 미리 정의된 스캔 순서를 활용하여 양자화된 변환 계수들을 스캔하여 엔트로피 인코딩될 수 있는 직렬화된 벡터를 생성할 수도 있다. 다른 예들에서, 비디오 인코더 (20) 는 적응형 스캔을 수행할 수도 있다.
1 차원 벡터를 형성하기 위해 양자화된 변환 계수들을 스캔한 후, 비디오 인코더 (20) 는 예를 들어, 콘텍스트-적응형 가변 길이 코딩 (CAVLC), 콘텍스트-적응형 이진 산술 코딩 (CABAC), 신택스-기반 콘텍스트-적응형 이진 산술 코딩 (SBAC), 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩 또는 다른 엔트로피 인코딩 방법론에 따라 1 차원 벡터를 엔트로피 인코딩할 수도 있다. 비디오 인코더 (20) 는 또한, 비디오 데이터를 디코딩하는데 있어서의 비디오 디코더 (30) 에 의한 이용을 위해 인코딩된 비디오 데이터와 연관된 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다.
비디오 인코더 (20) 는 블록-기반 신택스 데이터, 픽처-기반 신택스 데이터, 및 픽처들의 그룹 (GOP)-기반 신택스 데이터와 같은 신택스 데이터를 예를 들어, 픽처 헤더, 블록 헤더, 슬라이스 헤더, 또는 GOP 헤더에서 비디오 디코더 (30) 로추가 전송할 수도 있다. GOP 신택스 데이터는 개별의 GOP 에서의 다수의 픽처들을 기술할 수도 있으며, 픽처 신택스 데이터는 대응하는 픽처를 인코딩하는데 이용되는 인코딩/예측 모드를 나타낼 수도 있다.
비디오 디코더 (30) 는, 코딩된 비디오 데이터의 획득 시, 비디오 인코더 (20) 에 대하여 설명된 인코딩 패스와 일반적으로 상반된 디코딩 패스를 수행할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 비디오 인코더 (20) 로부터 인코딩된 비디오 슬라이스의 비디오 블록들 및 연관된 신택스 엘리먼트들을 나타내는 인코딩된 비디오 비트스트림을 획득할 수도 있다. 비디오 디코더 (30) 는 비트스트림에 포함된 데이터를 이용하여 오리지널, 미인코딩된 비디오 시퀀스를 복원할 수도 있다.
일부 인스턴스들에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 예를 들어, 코딩 프로세스에 의해 도입된 에러들을 보상하기 위해, 코딩 동안 비디오 데이터에 대해 하나 이상의 필터링 프로세스들을 수행할 수도 있다. 예를 들어, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 디블록킹 필터링으로 지칭될 수도 있는, 블록 에지들을 평활화하기 위한 픽셀 에지 필터링 동작들을 수행할 수도 있다.
상기 언급한 바와 같이, 본 개시물의 일부 양태들은 일반적으로 포맷-적응형 필터링 스킴을 제공하는 것과 관련된다. 예를 들어, 본 개시물의 기법들은 코딩되는 비디오 데이터의 컬러 공간에 기초하여 크로마 컴포넌트들에 대해 가변 디블록킹 필터링 (예를 들어, 약한 디블록킹 또는 강한 디블록킹) 을 인에이블하는 것을 포함한다.
본 개시물의 양태들에 따르면, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 컬러 컴포넌트들의 서브세트 (예를 들어, YCbCr 컬러 공간의 경우 Cr, Cr) 또는 일부 컬러 공간들에 대한 모든 컬러 컴포넌트들 (예를 들어, RGB 공간의 경우 R, G, 및 B) 일 수도 있는 넌-루마 컴포넌트들에 대한 강한 필터링의 적용을 인에이블할 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 HEVC 버전 1 에서의 루마 컴포넌트들에 대한 디블록킹 필터링의 하나 이상의 양태들이 비디오 데이터의 하나 이상의 넌-루마 컴포넌트들에 적용되어야 하는지 여부를 나타내기 위해 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 에 의해 디코딩될 수도 있는 플래그 (예를 들어, deblock_chroma_as_luma) 를 시그널링한다. 일부 인스턴스들에서, 1 로 설정되는 "deblock_chroma_as_luma" 플래그는 강한 필터링이 하나 이상의 넌-루마 컴포넌트들에 적용될 수도 있다는 표시를 초래한다.
일부 예들에서, 비디오 인코더 (20) 는 임의의 디블록킹 필터링이 수행되기 이전에 플래그를 시그널링하며, 디블록킹 필터링은 인코딩 루프와 디코딩 루프 양자 동안 수행된다. 인코딩 루프와 디코딩 루프 양자 동안, 플래그는 디블록킹 필터링 동안 디코딩된다. 비디오 인코더 (20) 가 플래그의 값을 0 으로 설정한다면, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 HEVC 버전 1 에서 설명된 스킴에 따라 디블록킹 필터링을 수행할 수도 있다.
예를 들어, HEVC 버전 1 에서 설명된 스킴에 따르면, 루마 컴포넌트들은 (예를 들어, 디블록킹되는 블록들의 에지 특성들에 의존하여) 강한 또는 약한 중 어느 하나의 디블록킹 필터를 이용하여 디블록킹될 수도 있는 한편, 크로마 컴포넌트들은 약한 디블록킹 필터만을 이용하여 디블록킹될 수도 있다. 비디오 인코더 (20) 가 플래그의 값을 1 로 설정한다면, 플래그는 루마 컴포넌트들에 대한 HEVC 버전 1 에서 특정된 디블록킹 필터링이 하나 이상의 넌-루마 컴포넌트들에 적용된다는 것을 나타낸다.
이 경우에, 플래그에 응답하여, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 루마 컴포넌트들에 대한 HEVC 버전 1 에 따른 디블록킹 필터링을 모든 컬러 컴포넌트들에 적용할 수도 있다. 즉, HEVC 버전 1 에 의해 루마 컴포넌트들에 대해 특정된 동일한 디블록킹 필터링 스킴은 또한 플래그가 1 로 설정될 때 크로마 컴포넌트들에 적용될 수도 있다. (이하 더 상세히 논의한 바와 같이, 일부 예들에서, HEVC 버전 1 에 의해 루마 컴포넌트에 대해 특정된 디블록킹 필터링 스킴의 일부 양태들은 넌-루마 컴포넌트들에 적용되고 일부는 적용되지 않는다.) 예를 들어, 플래그의 값이 1 로 설정될 때, 루마 및 크로마 양자의 컬러 컴포넌트들 (또는 모든 RBG 컴포넌트들) 은 (예를 들어, 코딩되는 (적용가능한 대로) 루마 또는 크로마 블록들의 에지 특성들에 의존하여) 강한 또는 약한 중 어느 하나의 디블록킹 필터를 이용하여 디블록킹될 수도 있다.
일부 예들에서, 플래그는 상이한 컬러 공간들에 대해 상이하게 설정될 수도 있다. 예를 들어, 비디오 인코더 (20) 는 RGB 시퀀스들에 대해 그리고 YCbCr 4:4:4 시퀀스들에 대해 플래그의 값을 1 로 설정할 수도 있다. 이 경우에, 플래그가 1 로 설정됨에 따라, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 RGB 시퀀스들 및 YCbCr 4:4:4 시퀀스들 양자의 모든 컴포넌트들에 대해 HEVC 버전 1 에 의한 루마 컴포넌트들에 대해 특정된 디블록킹 필터링 스킴의 일부 또는 전부를 이용할 수도 있다. (다른 예에서, 비디오 인코더 (20) 는 RGB 시퀀스들에 대해 그리고 YCbCr 4:4:4 시퀀스들에 대해 플래그를 0 으로 설정할 수도 있으며, 이는 컬러 컴포넌트들에 대한 디블록킹 필터링이 HEVC 버전 1 에 따라 수행된다는 것을 나타낸다.)
YCbCr 4:2:2 및 4:2:0 시퀀스들과 같은 다른 시퀀스들의 경우, 비디오 인코더 (20) 는 플래그의 값을 0 으로 설정할 수도 있다. 이 경우에, 플래그의 값이 0 으로 설정됨에 따라, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 YCbCr 4:2:2 및 4:2:0 양자의 시퀀스들에 대한 HEVC 버전 1 에 따라 컬러 컴포넌트들에 대해 디블록킹 필터링을 수행한다. 이들 예들 및 다른 예들은 이하 더 상세히 설명된다.
비디오 인코더 (20) 는 시퀀스 파라미터 세트 (SPS) 의 일부로서 시퀀스 레벨에서 플래그를 시그널링할 수도 있다. 다른 예에서, 비디오 인코더 (20) 는 픽처 파라미터 세트 (PPS) 의 일부로서 픽처 레벨에서 플래그를 시그널링할 수도 있다. 다른 예에서, 비디오 인코더 (20) 는 슬라이스 헤더의 일부로서 슬라이스 레벨에서 플래그를 시그널링할 수도 있다.
일부 예들에서, 비디오 디코더 (30) 는 코딩되는 비디오 데이터의 프로파일을 이용하여 (HEVC 버전 1 에서의 루마 컴포넌트들에 적용된 디블록킹 필터링의 하나 이상의 양태들을 하나 이상의 넌-루마 컴포넌트들에 적용할지 여부에 대한) 결정을 행한다. 본 개시물의 양태들에 따르면, 하나의 예에서, 코딩되는 비디오 데이터의 프로파일이 하이 프로파일 4:4:4 이라면, 비디오 디코더 (30) 는 HEVC 버전 1 에서의 루마 컴포넌트들에 적용된 디블록킹 필터링의 하나 이상의 양태들을 하나 이상의 넌-루마 컴포넌트들에 적용하라는 결정을 행할 수도 있다. 대안적으로, 코딩되는 비디오 데이터의 프로파일이 스크린 콘텐츠 4:4:4 프로파일이라면, 비디오 디코더 (30) 는 HEVC 버전 1 에 따라 비디오의 컴포넌트들에 대해 디블록킹 필터링을 수행할 수도 있다.
다른 예에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 코딩되는 비디오 데이터의 크로마 포맷에 기초하여 상이한 디블록킹 필터링을 적용할 수도 있다. 예를 들어, HEVC 에 대한 레인지 확장을 이용할 때, 비디오 인코더 (20) 는 코딩되는 비디오 데이터가 4:4:4, 4:2:2, 또는 4:2:0 YCbCr 컬러 공간인지 여부를 나타내기 위해 크로마 포맷을 시그널링할 수도 있다. 본 개시물의 양태들에 따르면, 4:4:4 컬러 공간이 시그널링되고 이용된다면, 비디오 디코더 (30) 는 모든 컬러 컴포넌트들에 대해 HEVC 버전 1 에서의 루마 컴포넌트들에 대해 정의한 바와 같은 디블록킹 필터링을 수행할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 HEVC 버전 1 이 Y 컴포넌트에 대해 특정하는 방식으로 각각의 컴포넌트 (Y, Cb 및 Cr) 에 대해 강한 디블록킹 필터링을 이용할지 약한 디블록킹 필터링을 이용할지 여부를 결정할 수도 있다. 다른 컬러 공간들에 대해, 비디오 디코더 (30) 는 HEVC 버전 1 에서 수행되는 것과 동일한 방식으로 디블록킹 필터링을 수행할 수도 있다.
일부 예들에서, 플래그가 1 로 설정될 때, HEVC 버전 1 에서의 루마 컴포넌트에 대해 특정되는 디블록킹 필터링의 모든 양태들이 비디오의 모든 컴포넌트들에 적용된다. 그러나, 다른 예들에서, 플래그가 1 로 설정될 때, HEVC 버전 1 에서의 루마 컴포넌트에 대해 특정되는 디블록킹 필터링의 일부 양태들은 넌-루마 컴포넌트들에 적용되며 일부는 적용되지 않는다. 예를 들어, 일부 예들에서, 플래그가 1 로 설정될 때, 강한 디블록킹 필터링은 넌-루마 컴포넌트들에 대해 인에이블되지 않고, HEVC 버전 1 에서의 루마 컴포넌트에 대해 특정되는 디블록킹 필터링의 모든 다른 양태들이 하나 이상의 넌-루마 컴포넌트들에 적용된다.
이에 따라, 일부 예들에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 루마 디블록킹 프로세스를 크로마 컴포넌트들에 적용할 수도 있지만, 루마 디블록킹 프로세스의 강한 디블록킹 필터를 크로마 컴포넌트들에 적용하는 것을 억제할 수도 있다. 예를 들어, HEVC 버전 1 에서, 크로마 컴포넌트들에 대한 디블록킹 필터링은 예측 의존적일 수도 있다. 즉, HEVC 버전 1 에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 단지 디블록킹되는 경계를 형성하는 하나 또는 양자의 블록들이 (예를 들어 이하의 도 2 및 도 3 에 대하여 더 상세히 설명한 바와 같이) 인트라-예측 모드를 이용하여 코딩되었을 때 넌-루마 컴포넌트들에 대해 디블록킹 필터링을 수행할 수도 있다.
본 개시물의 양태들에 따르면, 일부 인스턴스들에서, 크로마 컴포넌트들에 대한 이 디블록킹 예측 한정 (즉, 디블록킹되는 경계를 형성하는 하나 또는 양자의 블록들이 인트라-예측 모드를 이용하여 코딩되었을 때에만 크로마 컴포넌트들에 대해 디블록킹을 수행) 이 제거될 수도 있다. 따라서, 이 예에서, 루마 필터링 프로세스가 크로마 컴포넌트들에 적용된다면, 인터-코딩된 크로마 블록 경계들은 인터-코딩된 루마 블록들과 함께 필터링될 수도 있다. 상기 논의한 바와 같이, 플래그가 1 로 설정될 때, HEVC 버전 1 에서의 루마 컴포넌트들에 대해 특정되는 디블록킹 필터링의 일부 또는 모든 양태들은 넌-루마 컴포넌트들에 적용된다. HEVC 버전 1 에서의 루마 컴포넌트들에 대해 특정되고 플래그가 1 로 설정될 때 넌-루마 컴포넌트들에 적용되는 디블록킹 필터링의 양태들 중 하나는 인터-코딩된 블록 경계들이 필터링되는 것을 허용하는 것이다.
강한 디블록킹 필터링을 적용하는 것은 강한 필터가 통상 더 긴 필터 탭 사이즈로 인해 더 많은 픽셀들의 라인들을 저장하는 것을 요구하기 때문에 더 많은 구현 리소스들을 요구할 수도 있다. 따라서, 구현 복잡도를 감소시키기 위해, 일부 예들에 따르면, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 (예를 들어, 예측 모드에 상관없이) 루마와 크로마 양자의 컴포넌트들에 루마 디블록킹 필터링 프로세스를 적용할 수도 있지만, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 크로마 컴포넌트들에 대해 강한 디블록킹 필터링을 수행하는 것을 억제할 수도 있다. 그러나, 다른 예들에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 루마와 크로마 양자의 컴포넌트들에 대해 강한 디블록킹 필터링을 수행할 수도 있다.
상기 논의한 바와 같이, 플래그가 1 로 설정될 때, HEVC 버전 1 에서의 루마 컴포넌트들에 대해 특정되는 디블록킹 필터링의 일부 또는 모든 양태들이 넌-루마 컴포넌트들에 적용된다. HEVC 버전 1 에서의 루마 컴포넌트들에 대해 특정되는 디블록킹 필터링의 하나의 양태는 강한 필터링이 루마 컴포넌트들에 대해 인에이블된다는 것이다. HEVC 버전 1 에서의 루마 컴포넌트들에 대해 특정되는 디블록킹 필터링의 다른 양태는 인터-코딩된 블록 경계들의 필터링이 인에이블된다는 것이다. HEVC 버전 1 에서의 루마 컴포넌트에 대해 특정되는 디블록킹 필터링의 다른 양태는 루마 컴포넌트들에 대한 약한 필터링이 넌-루마 컴포넌트들에 대한 약한 필터링보다 더 강하다는 것이다. 다양한 예들에서, 플래그가 1 로 설정될 때, 이들 양태들 중 하나, 일부, 또는 전부가 비디오의 넌-루마 컴포넌트들에 대해 인에이블될 수도 있다.
일부 예들에서, 비디오 인코더 (20) 는 상기 설명된 플래그와 유사한 하나 이상의 신택스 엘리먼트들을 이용하여 루마 디블록킹 필터링을 크로마 컴포넌트들에 적용할지 여부를 시그널링할 수도 있다. 즉, 비디오 인코더 (20) 는 루마 디블록킹 필터링이 크로마 컴포넌트들에 적용되지 않을 때 플래그를 0 으로 설정하고 (디블록킹 필터링이 HEVC 버전 1 에 따라 모든 컴포넌트들에 적용된다는 것을 나타낸다) 루마 디블록킹 필터링이 크로마 컴포넌트들에 적용될 때 플래그를 1 로 설정 (HEVC 버전 1 에서의 루마 컴포넌트들에 적용된 디블록킹 필터링의 양태들 중 일부 또는 전부가 넌-루마 컴포넌트들에 적용된다는 것을 나타낸다) 할 수도 있다.
또 다른 예에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 상이한 컬러 공간들에 대해, 상이한 임계값들,
Figure pct00012
및 tC 를 적용할 수도 있다. 예를 들어, 본 개시물의 양태들에 따르면, 강한 필터링이 크로마 컴포넌트들에 적용되는 것을 허용하는 임계값들이 (예를 들어, 임계값들의 테이블에 따라) 확립될 수도 있다. 이 예에서, 비디오 인코더 (20) 는 강한 디블록킹 필터링이 임계값들에 따라 크로마 컴포넌트들에 적용된다는 것을 나타내기 위해 플래그를 1 로 설정할 수도 있다. 다른 예에서, 플래그의 값은 컬러 공간에 기초하여 추론될 수도 있다 (예를 들어, 4:4:4 포맷은 강한 디블록킹 필터링이 임계값들에 따라 크로마 컴포넌트들에 적용된다는 것을 나타내는 반면, 4:2:2 포맷은 강한 필터링이 인에이블되지 않는다는 것을 나타낸다).
도 2 는 본 개시물에서 설명한 바와 같은 변환을 위한 기법들을 이용할 수도 있는 비디오 인코더 (20) 의 일 예를 예시하는 블록도이다. 비디오 인코더 (20) 는 예시의 목적들을 위해, 그러나 다른 코딩 표준들에 대한 본 개시물의 제한 없이 HEVC 코딩의 콘텍스트에서 설명될 것이다.
비디오 인코더 (20) 는 비디오 슬라이스들 내의 비디오 블록들의 인트라- 및 인터-코딩을 수행할 수도 있다. 인트라-코딩은 주어진 비디오 픽처 내의 비디오에서의 공간적 리던던시를 감소 또는 제거하기 위해 공간 예측에 의존한다. 인터-코딩은 비디오 시퀀스의 인접한 픽처들 내의 비디오에서의 시간적 리던던시를 감소 또는 제거하기 위해 시간 예측에 의존한다. 인트라-모드 (I 모드) 는 여러 공간 기반 압축 모드들 중 임의의 것을 지칭할 수도 있다. 인터-모드들, 이를 테면 단방향 예측 (P 모드) 또는 양예측 (B 모드) 은 여러 시간 기반 압축 모드들 중 임의의 것을 지칭할 수도 있다.
도 2 의 예에서, 비디오 인코더 (20) 는 모드 선택 유닛 (40), 참조 픽처 메모리 (64), 합산기 (50), 변환 프로세싱 유닛 (52), 양자화 유닛 (54), 및 엔트로피 인코딩 유닛 (56) 을 포함한다. 모드 선택 유닛 (40) 은 결국, 모션 보상 유닛 (44), 모션 추정 유닛 (42), 인트라 예측 유닛 (46), 및 파티션 유닛 (48) 을 포함한다. 비디오 블록 복원을 위해, 비디오 인코더 (20) 는 또한 역양자화 유닛 (58), 역변환 유닛 (60), 합산기 (62), 및 필터링 유닛 (66) 을 포함한다.
인코딩 프로세스 동안, 비디오 인코더 (20) 는 코딩될 비디오 픽처 또는 슬라이스를 수신한다. 도 2 에 문자 그대로 도시하지 않았지만, 비디오 인코더 (20) 는 코딩될 인입 비디오 데이터를 저장하기 위해 메모리 또는 다른 컴포넌트를 포함할 수도 있다. 픽처 또는 슬라이스는 다수의 비디오 블록들로 분할될 수도 있다. 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 시간 압축을 제공하기 위해 하나 이상의 참조 픽처들에서의 하나 이상의 블록들에 대하여 수신된 비디오 블록의 인터-예측 코딩을 수행한다. 인트라 예측 유닛 (46) 은 대안적으로 공간 압축을 제공하기 위해 코딩될 블록과 동일한 픽처 또는 슬라이스에서의 하나 이상의 이웃하는 블록들에 대하여 수신된 비디오 블록의 인트라-예측 코딩을 수행할 수도 있다. 비디오 인코더 (20) 는 예를 들어, 비디오 데이터의 각각의 블록에 대한 적절한 코딩 모드를 선택하기 위해, 다수의 코딩 패스들을 수행할 수도 있다.
더욱이, 파티션 유닛 (48) 은 이전의 코딩 패스들에서의 이전의 파티셔닝 스킴들의 평가에 기초하여, 비디오 데이터의 블록들을 서브-블록들로 파티셔닝할 수도 있다. 예를 들어, 파티션 유닛 (48) 은 초기에는 픽처 또는 슬라이스를 LCU들로 파티셔닝하고 LCU들 각각을 레이트-왜곡 분석 (예를 들어, 레이트-왜곡 최적화) 에 기초하여 서브-CU들로 파티셔닝할 수도 있다. 모드 선택 유닛 (40) 은 LCU 를 서브-CU들로 파티셔닝하는 것을 나타내는 쿼드트리 데이터 구조를 추가 생성할 수도 있다. 쿼드트리의 리프-노드 CU들은 하나 이상의 PU들 및 하나 이상의 TU들을 포함할 수도 있다.
모드 선택 유닛 (40) 은 예를 들어, 에러 결과들에 기초하여 코딩 모드들, 인트라 또는 인터 중 하나를 선택하고, 결과의 인트라- 또는 인터-코딩된 블록을, 잔차 블록 데이터를 생성하기 위해 합산기 (50) 에, 그리고 참조 픽처로서의 이용을 위한 인코딩된 블록을 복원하기 위해 합산기 (62) 에 제공할 수도 있다. 모드 선택 유닛 (40) 은 또한, 신택스 엘리먼트들, 이를 테면 모션 벡터들, 인트라-모드 표시자들, 파티션 정보, 및 다른 이러한 신택스 정보를 엔트로피 인코딩 유닛 (56) 에 제공한다.
모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 고도로 통합될 수도 있지만, 개념적 목적들을 위해 별도로 예시된다. 모션 추정 유닛 (42) 에 의해 수행되는 모션 추정은, 비디오 블록들에 대한 모션을 추정하는 모션 벡터들을 생성하는 프로세스이다. 모션 벡터는, 예를 들어, 현재의 픽처 (또는 다른 코딩된 유닛) 내에서 코딩되는 현재의 블록에 대한 참조 픽처 (또는 다른 코딩된 유닛) 내의 예측 블록에 대한 현재의 비디오 픽처 내의 비디오 블록의 PU 의 변위를 나타낼 수도 있다. 예측 블록은 절대차의 합 (SAD), 제곱차의 합 (SSD), 또는 다른 차이 메트릭들에 의해 결정될 수도 있는, 픽셀 차이의 관점에서, 코딩될 블록에 밀접하게 매칭하는 것으로 확인되는 블록이다. 일부 예들에서, 비디오 인코더 (20) 는 참조 픽처 메모리 (64) 에 저장된 참조 픽처들의 서브-정수 픽셀 포지션들에 대한 값들을 계산할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 참조 픽처의 1/4 픽셀 포지션들, 1/8 픽셀 포지션들, 또는 다른 분수 픽셀 포지션들의 값들을 보간할 수도 있다. 따라서, 모션 추정 유닛 (42) 은 전체 픽셀 포지션들 및 분수 픽셀 포지션들에 대해 모션 탐색을 수행하고 분수 픽셀 정밀도를 가진 모션 벡터를 출력할 수도 있다.
모션 추정 유닛 (42) 은 PU 의 포지션을 참조 픽처의 예측 블록의 포지션과 비교함으로써 인터-코딩된 슬라이스에서의 비디오 블록의 PU 에 대한 모션 벡터를 계산한다. 참조 픽처는 각각이 참조 픽처 메모리 (64) 에 저장된 하나 이상의 참조 픽처들을 식별하는 제 1 참조 픽처 리스트 (List 0) 또는 제 2 참조 픽처 리스트 (List 1) 로부터 선택될 수도 있다. 모션 추정 유닛 (42) 은 계산된 모션 벡터를 엔트로피 인코딩 유닛 (56) 및 모션 보상 유닛 (44) 으로 전송한다.
모션 보상 유닛 (44) 에 의해 수행되는 모션 보상은, 모션 추정 유닛 (42) 에 의해 결정된 모션 벡터에 기초하여 예측 블록을 페치 또는 생성하는 것을 수반할 수도 있다. 다시, 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 일부 예들에서, 기능상 통합될 수도 있다. 현재의 비디오 블록의 PU 에 대한 모션 벡터를 수신 시, 모션 보상 유닛 (44) 은 참조 픽처 리스트들 중 하나에서 모션 벡터가 가리키는 예측 블록을 로케이팅할 수도 있다. 합산기 (50) 는 이하 논의한 바와 같이, 코딩되는 현재의 비디오 블록의 픽셀 값들에서 예측 블록의 픽셀 값들을 감산하여, 픽셀 차이 값들을 형성함으로써 잔차 비디오 블록을 형성한다. 일반적으로, 모션 추정 유닛 (42) 은 루마 컴포넌트들에 대해 모션 추정을 수행하고, 모션 보상 유닛 (44) 은 크로마 컴포넌트들과 루마 컴포넌트들 양자에 대해 루마 컴포넌트들에 기초하여 계산된 모션 벡터들을 이용한다. 모드 선택 유닛 (40) 은 또한 비디오 슬라이스의 비디오 블록들을 디코딩하는데 있어서의 비디오 디코더 (30) 에 의한 이용을 위해 비디오 블록들 및 비디오 슬라이스와 연관된 신택스 엘리먼트들을 생성할 수도 있다.
인트라 예측 유닛 (46) 은 상기 설명한 바와 같이, 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 수행된 인터-예측에 대한 대안으로서, 현재의 블록을 인트라-예측할 수도 있다. 특히, 인트라 예측 유닛 (46) 은 현재의 블록을 인코딩하기 위해 이용할 인트라-예측 모드를 결정할 수도 있다. 일부 예들에서, 인트라 예측 유닛 (46) 은 예를 들어, 별개의 인코딩 패스들 동안 다양한 인트라-예측 모드들을 이용하여 현재의 블록을 인코딩할 수도 있고, 인트라 예측 유닛 (46) (또는 일부 예들에서 모드 선택 유닛 (40)) 은 테스트된 모드들로부터 이용하기 위한 적절한 인트라-예측 모드를 선택할 수도 있다.
예를 들어, 인트라 예측 유닛 (46) 은 다양한 테스트된 인트라-예측 모드들에 대한 레이트-왜곡 분석을 이용하여 레이트-왜곡 값들을 계산하고, 테스트된 모드들 중에서 최적의 레이트-왜곡 특성들을 갖는 인트라-예측 모드를 선택할 수도 있다. 레이트-왜곡 분석은 일반적으로 인코딩된 블록과 그 인코딩된 블록을 생성하기 위해 인코딩되었던 오리지널, 미인코딩된 블록 간의 왜곡 (또는 에러) 의 양은 물론, 인코딩된 블록을 생성하는데 이용된 비트레이트 (즉, 비트들의 수) 를 결정한다. 인트라 예측 유닛 (46) 은 어느 인트라-예측 모드가 블록에 대한 최적의 레이트-왜곡 값을 보이는지를 결정하기 위해 다양한 인코딩된 블록들에 대한 왜곡들 및 레이트들로부터의 비율들을 계산할 수도 있다.
비디오 인코더 (20) 는 코딩되는 오리지널 비디오 블록에서 모드 선택 유닛 (40) 으로부터의 예측 데이터를 감산함으로써 잔차 비디오 블록을 형성한다. 합산기 (50) 는 이 감산 동작을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다.
변환 프로세싱 유닛 (52) 은 변환, 이를 테면 이산 코사인 변환 (DCT) 또는 개념상 유사한 변환을 잔차 블록에 적용하여, 잔차 변환 계수 값들을 포함하는 비디오 블록을 생성한다. 변환 프로세싱 유닛 (52) 은 DCT 와 개념상 유사한 다른 변환들을 수행할 수도 있다. 웨이블릿 변환들, 정수 변환들, 서브-대역 변환들 또는 다른 타입들의 변환들이 또한 이용될 수 있다. 임의의 경우에, 변환 프로세싱 유닛 (52) 은 잔차 블록에 변환을 적용하여 잔차 변환 계수들의 블록을 생성한다. 변환은 잔차 정보를 픽셀 값 도메인으로부터 변환 도메인, 이를 테면 주파수 도메인으로 컨버팅할 수도 있다.
변환 프로세싱 유닛 (52) 은 결과의 변환 계수들을 양자화 유닛 (54) 으로 전송할 수도 있다. 양자화 유닛 (54) 은 변환 계수들을 양자화하여 비트 레이트를 추가 감소시킨다. 양자화 프로세스는 계수들 중 일부 또는 전부와 연관된 비트 심도를 감소시킬 수도 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 수정될 수도 있다. 일부 예들에서, 양자화 유닛 (54) 은 그 후 양자화된 변환 계수들을 포함한 매트릭스의 스캔을 수행할 수도 있다. 대안적으로는, 엔트로피 인코딩 유닛 (56) 이 스캔을 수행할 수도 있다.
양자화에 후속하여, 엔트로피 인코딩 유닛 (56) 은 양자화된 변환 계수들을 엔트로피 코딩한다. 예를 들어, 엔트로피 인코딩 유닛 (56) 은 콘텍스트 적응형 가변 길이 코딩 (CAVLC), 콘텍스트 적응형 이진 산술 코딩 (CABAC), 신택스-기반 콘텍스트-적응형 이진 산술 코딩 (SBAC), 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩 또는 다른 엔트로피 코딩 기법을 수행할 수도 있다. 콘텍스트-기반 엔트로피 코딩의 경우에, 콘텍스트는 이웃하는 블록들에 기초할 수도 있다. 엔트로피 인코딩 유닛 (56) 에 의한 엔트로피 코딩에 후속하여, 인코딩된 비트스트림은 다른 디바이스 (예를 들어, 비디오 디코더 (30)) 에 송신되거나 또는 추후 송신 또는 취출을 위해 아카이브될 수도 있다.
역양자화 유닛 (58) 및 역변환 유닛 (60) 은 예를 들어, 참조 블록으로서의 추후 이용을 위해 픽셀 도메인에서의 잔차 블록을 복원하기 위해, 각각 역양자화 및 역변환을 적용한다.
모션 보상 유닛 (44) 은 잔차 블록을 참조 픽처 메모리 (64) 의 픽처들 중 하나의 픽처의 예측 블록에 가산함으로써 참조 블록을 계산할 수도 있다. 모션 보상 유닛 (44) 은 또한, 모션 추정에서의 이용을 위한 서브-정수 픽셀 값들을 계산하기 위해 복원된 잔차 블록에 하나 이상의 보간 필터들을 적용할 수도 있다. 합산기 (62) 는 참조 픽처 메모리 (64) 에의 저장을 위한 복원된 비디오 블록을 생성하기 위해 복원된 잔차 블록을 모션 보상 유닛 (44) 에 의해 생성된 모션 보상된 예측 블록에 가산한다. 복원된 비디오 블록은 후속의 비디오 픽처에서의 블록을 인터-코딩하기 위한 참조 블록으로서 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 이용될 수도 있다.
필터링 유닛 (66) 은 다양한 필터링 프로세스들을 수행할 수도 있다. 예를 들어, 필터링 유닛 (66) 은 디블록킹 필터링을 수행할 수도 있다. 즉, 필터링 유닛 (66) 은 슬라이스 또는 프레임으로부터 블록키니스 아티팩트 (blockiness artifact) 들을 제거하기 위해 복원된 비디오 및 필터 블록 경계들의 슬라이스 또는 프레임을 형성하는 복수의 복원된 비디오 블록들을 수신할 수도 있다. 하나의 예에서, 필터링 유닛 (66) 은 비디오 블록의 소위 "경계 강도" 를 평가한다. 비디오 블록의 경계 강도에 기초하여, 비디오 블록의 에지 픽셀들은 하나의 비디오 블록으로부터 다른 비디오 블록으로의 천이들이 뷰어가 인지하기 더 어렵도록 인접한 비디오 블록의 에지 픽셀들에 대하여 필터링될 수도 있다.
일부 인스턴스들에서, 디블록킹 필터에 의해 이용된 변수들은 복원된 비디오 블록들의 오리지널 소스 비디오 블록들과의 비교 없이 복원된 비디오 블록들로부터 도출될 수도 있다. 따라서, 비디오 인코더 (20) 및 비디오 디코더 (30) (도 3) 는 비트스트림으로 코딩된 오리지널 비디오 프레임에 관한 최소 추가적인 정보로 복원된 비디오 블록들에 대해 동일한 디블록킹 프로세스를 수행하도록 각각 프로그램될 수도 있다. 그러나, 일부 경우들에서, 필터링 유닛 (66) 은 디블록킹이 수행되어야하는지 여부 및/또는 특정 타입의 디블록킹 모드들 중 하나가 수행되어야 하는지 여부를 나타내는 신택스 엘리먼트들을 비트스트림에 포함할 수도 있다.
본 개시물의 양태들에 따르면, 필터링 유닛 (66) 은 상기 설명한 바와 같이, 포맷-적응형 필터링 스킴을 구현할 수도 있다. 예를 들어, 필터링 유닛 (66) 은 코딩되는 비디오 데이터의 컬러 공간에 기초하여 복원된 비디오의 크로마 블록들에 디블록킹 필터링을 적용할 수도 있다. 따라서, 일부 인스턴스들에서, 필터링 유닛 (66) 은 비디오 데이터의 크로마 블록들에 강한 디블록킹 필터링을 적용하도록 인에이블될 수도 있다.
상기 언급한 바와 같이, 필터링 유닛 (66) (또는 비디오 인코더 (20) 의 다른 유닛, 이를 테면 엔트로피 인코딩 유닛 (56)) 은 적응형 크로마 디블록킹 필터링이 구현되고 있는지 여부를 나타내는 하나 이상의 신택스 엘리먼트들을 생성할 수도 있다. 다른 예들에서, 필터링 유닛 (66) 은 인코딩되는 비디오 데이터의 컬러 공간에 기초하여 적절한 크로마 디블록킹 스킴을 추론하여, 이러한 시그널링의 필요성을 무효화할 수도 있다.
이에 따라, 비디오 인코더 (20) 는 본 개시물에서 설명된 필터링 기법들 중 임의의 것을 수행할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 디블록킹 필터링 프로세스가 복원된 비디오 데이터의 루마 컴포넌트에만 적용되는지, 또는 비디오 데이터의 루마 컴포넌트에 더하여 비디오 데이터의 적어도 하나의 다른 비디오 컴포넌트에 적용되는지 여부를 나타내는 하나 이상의 신택스 엘리먼트들을 인코딩하고, 하나 이상의 신택스 엘리먼트들에 기초하여 비디오 데이터를 디블록킹할 수도 있는 비디오 인코더의 일 예를 나타낸다.
도 3 은 본 개시물에서 설명한 바와 같은 변환을 위한 기법들을 구현할 수도 있는 비디오 디코더 (30) 의 일 예를 예시하는 블록도이다. 다시, 비디오 디코더 (30) 는 예시의 목적들을 위해, 그러나 다른 코딩 표준들에 대한 본 개시물의 제한 없이 HEVC 코딩의 콘텍스트에서 설명될 것이다.
도 3 의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (70), 모션 보상 유닛 (72), 인트라 예측 유닛 (74), 역양자화 유닛 (76), 역변환 유닛 (78), 참조 픽처 메모리 (82), 합산기 (80), 및 필터링 유닛 (84) 을 포함한다.
디코딩 프로세스 동안, 비디오 디코더 (30) 는 비디오 인코더 (20) 로부터 인코딩된 비디오 슬라이스의 비디오 블록들 및 연관된 신택스 엘리먼트들을 나타내는 인코딩된 비디오 비트스트림을 수신한다. 도 3 에 문자 그대로 도시하고 있지는 않지만, 비디오 디코더 (20) 는 디코딩될 인입 비디오 데이터를 저장하기 위해 메모리 또는 다른 컴포넌트를 포함할 수도 있다. 비디오 디코더 (30) 의 엔트로피 디코딩 유닛 (70) 은 비트스트림을 엔트로피 디코딩하여 양자화된 계수들, 모션 벡터들 또는 인트라-예측 모드 표시자들, 및 다른 신택스 엘리먼트들을 생성한다. 엔트로피 디코딩 유닛 (70) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 모션 보상 유닛 (72) 으로 포워딩한다. 비디오 디코더 (30) 는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 신택스 엘리먼트들을 수신할 수도 있다.
비디오 슬라이스가 인트라-코딩된 (I) 슬라이스로서 코딩될 때, 인트라 예측 유닛 (74) 은 현재의 픽처의 이전에 디코딩된 블록들로부터의 시그널링된 인트라-예측 모드 및 데이터에 기초하여 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 데이터를 생성할 수도 있다. 비디오 픽처가 인터-코딩된 (즉, B, P 또는 GPB) 슬라이스로서 코딩될 때, 모션 보상 유닛 (72) 은 엔트로피 디코딩 유닛 (70) 으로부터 수신된 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 블록들을 생성한다. 예측 블록들은 참조 픽처 리스트들 중 하나 내의 참조 픽처들 중 하나로부터 생성될 수도 있다. 비디오 디코더 (30) 는 참조 픽처 메모리 (82) 에 저장된 참조 픽처들에 기초한 디폴트 구성 기법들을 이용하여, 참조 픽처 리스트들, List 0 및 List 1 을 구성할 수도 있다.
모션 보상 유닛 (72) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 파싱함으로써 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 그 예측 정보를 이용하여 디코딩되는 현재의 비디오 블록에 대한 예측 블록들을 생성한다. 예를 들어, 모션 보상 유닛 (72) 은 수신된 신택스 엘리먼트들 중 일부를 이용하여 비디오 슬라이스의 비디오 블록들을 코딩하는데 이용되는 예측 모드 (예를 들어, 인트라- 또는 인터-예측), 인터-예측 슬라이스 타입 (예를 들어, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스), 슬라이스에 대한 참조 픽처 리스트들 중 하나 이상에 대한 구성 정보, 슬라이스의 각각의 인터-인코딩된 비디오 블록에 대한 모션 벡터들, 슬라이스의 각각의 인터-코딩된 비디오 블록에 대한 인터-예측 상태, 및 현재의 비디오 슬라이스에서의 비디오 블록들을 디코딩하기 위한 다른 정보를 결정한다.
모션 보상 유닛 (72) 은 또한 보간 필터들에 기초하여 보간을 수행할 수도 있다. 모션 보상 유닛 (72) 은 참조 블록들의 서브-정수 픽셀들에 대한 보간된 값들을 계산하기 위해 비디오 블록들의 인코딩 동안 비디오 인코더 (20) 에 의해 이용된 바와 같이 보간 필터들을 이용할 수도 있다. 이 경우에, 모션 보상 유닛 (72) 은 수신된 신택스 엘리먼트들로부터 비디오 인코더 (20) 에 의해 이용된 보간 필터들을 결정하고 그 보간 필터들을 이용하여 예측 블록들을 생성할 수도 있다.
역양자화 유닛 (76) 은 비트스트림에서 제공되고 엔트로피 디코딩 유닛 (70) 에 의해 디코딩된 양자화된 변환 계수들을 역양자화, 즉, 양자화해제 (de-quantize) 한다. 역양자화 프로세스는 양자화의 정도, 및 마찬가지로 적용되어야 하는 역양자화의 정도를 결정하기 위해, 비디오 슬라이스에서의 각각의 비디오 블록에 대해 비디오 디코더 (30) 에 의해 계산된 양자화 파라미터 (QPY) 의 이용을 포함할 수도 있다.
역변환 유닛 (78) 은, 픽셀 도메인에서의 잔차 블록들을 생성하기 위하여 역 변환, 예를 들어, 역 DCT, 역정수 변환, 또는 개념상 유사한 역변환 프로세스를 변환 계수들에 적용한다. 비디오 디코더 (30) 는 역변환 유닛 (78) 으로부터의 잔차 블록들을 모션 보상 유닛 (72) 에 의해 생성된 대응하는 예측 블록들과 합산함으로써 디코딩된 비디오 블록을 형성한다. 합산기 (80) 는 이 합산 동작을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다.
필터링 유닛 (84) 은 일부 예들에서, 비디오 인코더 (20) (도 2) 의 필터링 유닛 (66) 과 유사하게 구성될 수도 있다. 예를 들어, 필터링 유닛 (84) 은 인코딩된 비트스트림으로부터 비디오 데이터를 디코딩 및 복원할 때 디블록킹, SAO, 또는 다른 필터링 동작들을 수행하도록 구성될 수도 있다.
본 개시물의 양태들에 따르면, 필터링 유닛 (84) 은 상기 설명한 바와 같이, 포맷-적응형 필터링 스킴을 구현할 수도 있다. 예를 들어, 필터링 유닛 (84) 은 디블록킹 필터링 프로세스가 코딩되는 비디오 데이터의 컬러 공간에 기초하여 가변하도록 크로마 블록들에 디블록킹 필터링을 적용할 수도 있다. 따라서, 일부 인스턴스들에서, 필터링 유닛 (84) 은 강한 디블록킹 필터링을 비디오 데이터의 크로마 블록들에 적용하도록 인에이블될 수도 있다.
상기 언급한 바와 같이, 필터링 유닛 (84) (또는 비디오 디코더 (30) 의 다른 유닛, 이를 테면 엔트로피 디코딩 유닛 (70)) 은 적응형 크로마 디블록킹 필터링이 비트스트림에 포함된 하나 이상의 파싱된 및 디코딩된 신택스 엘리먼트들에 기초하여 복원된 비디오에 대해 이용될지 여부를 결정할 수도 있다. 다른 예들에서, 필터링 유닛 (84) 은 코딩되는 비디오 데이터의 컬러 공간에 기초하여 적절한 크로마 디블록킹 스킴을 추론하여, 이러한 시그널링의 필요성을 무효화할 수도 있다.
이에 따라, 비디오 디코더 (30) 는 본 개시물에서 필터링 기법들 중 임의의 것을 수행할 수도 있다. 예를 들어, 도 3 의 비디오 디코더 (30) 는 디블록킹 필터링 프로세스가 비디오 데이터의 루마 컴포넌트에만 적용되는지, 또는 비디오 데이터의 루마 컴포넌트에 더하여 비디오 데이터의 적어도 하나의 다른 비디오 컴포넌트에 적용되는지 여부를 나타내는 하나 이상의 신택스 엘리먼트들을 디코딩하고, 하나 이상의 신택스 엘리먼트들에 기초하여 비디오 데이터를 디블록킹할 수도 있는 비디오 디코더의 일 예를 나타낸다.
도 4a 내지 도 4c 는 비디오 데이터에 대한 상이한 컬러 샘플링 포맷들을 예시하는 개념도들이다. 예를 들어, 크로마 포맷으로 또한 지칭될 수도 있는 비디오 샘플링 포맷은 CU 에 포함된 루마 샘플들의 수에 대한 CU 에 포함된 크로마 샘플들의 수를 정의할 수도 있다. 크로마 컴포넌트들에 대한 비디오 샘플링 포맷에 의존하여, U 및 V 컴포넌트들의, 샘플들의 수의 관점에서의 사이즈는 Y 컴포넌트의 사이즈와 동일하거나 상이할 수도 있다. H.264/AVC 표준 및 HEVC 표준의 제 1 버전 (HEVC 버전 1 로 지칭됨) 에서, chroma_format_idc 라 불리는 값이 루마 컴포넌트에 대한, 크로마 컴포넌트들의 상이한 샘플링 포맷들을 나타내기 위해 정의된다. 테이블 1 은 chroma_format_idc 의 값들과 연관된 크로마 포맷들 간의 관계를 예시한다.
Figure pct00013
테이블 1 에서, 변수들 SubWidthC 및 SubHeightC 는 비디오 데이터의 각각의 크로마 컴포넌트에 대한 샘플들의 수와 루마 컴포넌트에 대한 샘플들의 수 간의 수평 및 수직 샘플링 레이트비를 나타내는데 이용될 수 있다. 테이블 1 에서 설명된 크로마 포맷들에서, 2 개의 크로마 컴포넌트들은 동일한 샘플링 레이트를 갖는다.
테이블 1 의 예에서, 4:2:0 포맷의 경우, 루마 컴포넌트에 대한 샘플링 레이트는 수평과 수직 양자의 방향들에 대한 비디오 데이터의 크로마 컴포넌트들의 샘플링 레이트의 2 배이다. 그 결과, 4:2:0 포맷에 따라 포맷팅된 코딩 유닛의 경우, 루마 컴포넌트에 대한 샘플들의 어레이의 폭 및 높이는 비디오 데이터의 크로마 컴포넌트들에 대한 샘플들의 각각의 어레이의 폭 및 높이의 2 배이다. 유사하게, 4:2:2 포맷에 따라 포맷팅된 코딩 유닛의 경우, 루마 컴포넌트에 대한 샘플들의 어레이의 폭은 각각의 크로마 컴포넌트에 대한 샘플들의 어레이의 폭의 2 배지만, 루마 컴포넌트에 대한 샘플들의 어레이의 높이는 비디오 데이터의 각각의 크로마 컴포넌트에 대한 샘플들의 어레이의 높이와 동일하다. 4:4:4 포맷에 따라 포맷팅된 코딩 유닛의 경우, 루마 컴포넌트에 대한 샘플들의 어레이는 비디오 데이터의 각각의 크로마 컴포넌트에 대한 샘플들의 어레이와 동일한 폭 및 높이를 갖는다.
YUV 컬러 공간에 더하여, 비디오 데이터는 RGB 컬러 공간에 따라 정의될 수 있다는 것에 주목해야 한다. 이 방식으로, 본 명세서에서 설명된 크로마 포맷들은 YUV 또는 RGB 중 어느 하나의 컬러 공간에 적용할 수도 있다. RGB 크로마 포맷들은 통상 레드 샘플들의 수, 그린 샘플들의 수 및 블루 샘플들의 수가 동일하도록 샘플링된다. 따라서, 용어 "4:4:4 크로마 포맷" 은 본 명세서에서 사용한 바와 같이, 샘플들의 수가 모든 컬러 컴포넌트들에 대해 동일한, 즉 Y, U 및 V 에 대해 동일한 또는 R, G 및 B 에 대해 동일한 YUV 컬러 공간 또는 RGB 컬러 공간 중 어느 하나를 지칭할 수도 있다.
도 4a 는 4:2:0 샘플 포맷을 예시하는 개념도이다. 도 4a 에 예시한 바와 같이, 4:2:0 샘플 포맷의 경우, 크로마 컴포넌트들은 비디오 데이터의 루마 컴포넌트의 사이즈의 1/4 이다. 따라서, 4:2:0 샘플 포맷에 따라 포맷팅된 CU 의 경우, 비디오 데이터의 크로마 컴포넌트의 매 샘플에 대해 4 개의 루마 샘플들이 있다.
도 4b 는 4:2:2 샘플 포맷을 예시하는 개념도이다. 도 4b 에 예시한 바와 같이, 4:2:2 샘플 포맷의 경우, 크로마 컴포넌트들은 비디오 데이터의 루마 컴포넌트의 사이즈의 1/2 이다. 따라서, 4:2:2 샘플 포맷에 따라 포맷팅된 CU 의 경우, 비디오 데이터의 크로마 컴포넌트의 매 샘플에 대해 2 개의 루마 샘플들이 있다.
도 4c 는 4:4:4 샘플 포맷을 예시하는 개념도이다. 도 4c 에 예시한 바와 같이, 4:4:4 샘플 포맷의 경우, 크로마 컴포넌트들은 비디오 데이터의 루마 컴포넌트의 동일한 사이즈이다. 따라서, 4:4:4 샘플 포맷에 따라 포맷팅된 CU 의 경우, 비디오 데이터의 크로마 컴포넌트의 매 샘플에 대해 하나의 루마 샘플이 있다.
도 5 는 4:2:0 샘플 포맷에 따라 포맷팅된 16x16 코딩 유닛의 일 예를 예시하는 개념도이다. 도 5 는 CU 내의 루마 샘플들에 대한 크로마 샘플들의 상대적 포지션을 예시한다. 상기 설명한 바와 같이, CU 는 통상 수평 및 수직 루마 샘플들의 수에 따라 정의된다. 따라서, 도 5 에 예시한 바와 같이, 4:2:0 샘플 포맷에 따라 포맷팅된 16x16 CU 는 비디오 데이터의 각각의 크로마 컴포넌트에 대해 8x8 샘플들 및 루마 컴포넌트들의 16x16 샘플들을 포함한다. 더욱이, 상기 설명한 바와 같이, CU 는 더 작은 CU들로 파티셔닝될 수도 있다. 예를 들어, 도 5 에 예시된 CU 는 4 개의 8x8 CU들로 파티셔닝될 수도 있으며, 각각의 8x8 CU 는 각각의 크로마 컴포넌트에 대해 4x4 샘플들 및 루마 컴포넌트에 대해 8x8 샘플들을 포함한다.
도 6 은 4:2:2 샘플 포맷에 따라 포맷팅된 16x16 코딩 유닛의 일 예를 예시하는 개념도이다. 도 6 은 CU 내의 루마 샘플들에 대한 크로마 샘플들의 상대적 포지션들을 예시한다. 상기 설명한 바와 같이, CU 는 통상 수평 및 수직 루마 샘플들의 수에 따라 정의된다. 따라서, 도 6 에 예시한 바와 같이, 4:2:2 샘플 포맷에 따라 포맷팅된 16x16 CU 는 각각의 크로마 컴포넌트에 대해 8x16 샘플들 및 루마 컴포넌트의 16x16 샘플들을 포함한다. 더욱이, 상기 설명한 바와 같이, CU 는 더 작은 CU들로 파티셔닝될 수도 있다. 예를 들어, 도 6 에 예시된 CU 는 4 개의 8x8 CU들로 파티셔닝될 수도 있으며, 각각의 CU 는 각각의 크로마 컴포넌트에 대해 4x8 샘플들 및 루마 컴포넌트에 대해 8x8 샘플들을 포함한다.
도 7 은 본 개시물의 기법들에 따른, 비디오 데이터를 필터링하기 위한 일 예의 프로세스를 예시하는 플로우도이다. 도 7 의 예는 비디오 인코더 (20), 비디오 디코더 (30), 또는 다양한 다른 프로세서들에 의해 수행될 수도 있다.
시작 블록 후, 프로세스는 비디오 데이터의 넌-루마 컴포넌트에 대해, 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부에 대한 결정이 행해지는 판정 블록 791 로 진행하며, 여기서 제 1 및 제 2 디블록 필터링 프로세스들은 서로 상이하다. 제 1 및 제 2 디블록 필터링 프로세스들 간의 일부 예시적인 차이들이 이하 논의된다.
판정 블록 791 에서, 그 결정이 디블록 필터링이 제 1 디블록 필터링 프로세스에 기초하여 수행되어야 한다는 것이면, 프로세스는 넌-루마 컬러 컴포넌트에 대한 디블록 필터링이 제 1 디블록 필터링 프로세스에 따라 수행되는 블록 792 로 이동한다. 프로세스는 그 후 다른 프로세싱이 재개되는 리턴 블록으로 나아간다.
판정 블록 791 에서, 그 결정이 디블록 필터링이 제 2 디블록 필터링 프로세스에 기초하여 수행되어야 한다는 것이면, 프로세스는 넌-루마 컬러 컴포넌트에 대한 디블록 필터링이 제 2 디블록 필터링 프로세스에 따라 수행되는 블록 793 으로 이동한다. 프로세스는 그 후 다른 프로세싱이 재개되는 리턴 블록으로 나아간다.
본 개시물이 그렇게 제한되지는 않지만, 일부 예들에서, 제 1 디블록 필터링 프로세스는 제 1 레벨의 디블록 필터링 및 제 2 레벨의 디블록 필터링을 제공하고, 제 1 레벨의 디블록 필터링은 제 2 레벨의 디블록 필터링보다 상대적으로 더 강하며, 제 2 디블록 필터링 프로세스는 정확히 하나의 레벨의 디블록 필터링을 제공한다. 예를 들어, 제 1 디블록 필터링 프로세스는 강한 디블록 필터링과 약한 디블록 필터링 양자를 허용할 수도 있지만, 제 2 디블록 필터링 프로세스는 단지 약한 디블록 필터링만을 허용한다. 추가적으로, 다양한 예들에서, 제 2 디블록 필터링 프로세스에 의해 이용된 정확히 하나의 레벨의 디블록 필터링은 제 1 디블록 필터링 프로세스에서 이용된 어느 하나의 레벨의 필터링과 동일하거나 상이할 수도 있다.
예를 들어, 일부 예들에서, 제 1 디블록 필터링 프로세스는 블록 단위 기반으로, 각각의 블록에 대해 강한 필터링을 적용하거나, 약한 필터링을 적용하거나, 또는 어떤 필터링도 적용하지 않도록 결정될 수도 있도록, HEVC 버전 1 사양에서의 루마 컴포넌트들에 대해서와 동일한 방식으로, 강한 디블록 필터링과 약한 디블록킹 필터 양자를 허용할 수도 있다. 강한 필터링을 적용할지, 약한 필터링을 적용할지, 또는 어떤 필터링도 적용하지 않을지 여부의 결정은, 예를 들어, 비디오 블록의 경계 강도에 기초하여 행해질 수도 있다. 이 제 1 디블록 필터링 프로세스에서, 경계 강도가 임계값보다 낮은 경우에는, 어떤 필터링도 적용되지 않는다. 경계 강도가 임계값보다 높은 경우에는, 약한 또는 강한 필터링이 적용된다. 약한 필터링을 적용할지 또는 강한 필터링을 적용할지 여부는 경계 강도를 포함한 다수의 팩터들에 기초할 수도 있으며, 여기서 더 큰 경계 강도는 강한 필터링을 적용하는 것을 지지하는 팩터이고, 더 낮은 경계 강도는 약한 필터링을 적용하는 것을 지지하는 팩터이다. 이 제 1 디블록 필터링 프로세스는 비디오 블록의 컴포넌트들 각각에 개별적으로 적용될 수도 있다.
일부 예들에서, 제 2 디블록 필터링 프로세스는 블록 단위 기준으로, 각각의 블록에 대해 약한 필터링을 적용하거나 어떤 필터링도 적용하지 않도록 결정될 수도 있도록, HEVC 버전 1 사양에서의 크로마 컴포넌트들에 대해서와 동일한 방식으로, (즉, 제 1 디블록 필터링 프로세스에서 약한 또는 강한 필터링을 선택적 기반으로 허용하는 것 보다는) 약한 필터링만을 허용할 수도 있다. 이 예에서, 강한 필터링은 허용되지 않으며, 따라서 제 2 디블록 필터링 프로세스에는 강한 필터링이 가능하지 않다.
본 개시물이 그렇게 제한되지는 않지만, 일부 예들에서, 제 1 디블록 필터링 프로세스는 인트라-예측된 데이터와 인터-예측된 데이터 양자에 디블록 필터링을 수행하는 것을 포함하며, 제 2 디블록 필터링 프로세스는 인트라-예측된 데이터에 대해 디블록 필터링을 수행하고 인터-예측된 데이터에 대해 어떤 디블록 필터링도 수행하지 않는 것을 포함한다. 이런 이유로, 제 1 디블록 필터링 프로세스에서, 디블록 필터링은 선택적 기반으로, 예를 들어, 경계 강도에 기초하여, 인터-코딩 또는 인트라-코딩되는 비디오 블록들에 적용될 수도 있다. 제 2 디블록 필터링 프로세스의 경우, 디블록 필터링은 인트라-코딩된 비디오 블록들에 대해서만 적용되고 인터-코딩된 비디오 블록들에 대해서는 적용되지 않는다. 일부 예들에서, 디블록 필터링은 비디오 데이터의 루마 컴포넌트와 비디오 데이터의 넌-루마 컴포넌트들 양자에 대해 수행된다. 이들 예들에서, 디블록킹 필터링은 루마 디블록 필터링 프로세스에 기초하여 비디오 데이터의 루마 컴포넌트에 대해 수행될 수도 있다. 제 1 디블록 필터링 프로세스는 루마 디블록 필터링 프로세스의 하나 이상의 양태들을 포함한다. 일부 예들에서, 제 1 디블록 필터링 프로세스는 루마 디블록 필터링 프로세스와 동일하다. 다른 예들에서, 제 1 필터링 프로세스는 루마 디블록 필터링 프로세스의 양태들 중 하나 이상을 포함하지만 전부 다를 포함하지는 않는다. 일부 예들에서, 강한 필터링은 루마 디블록킹 필터링 프로세스에 대해 인에이블되고 제 1 디블록 필터링 프로세스에 대해서는 인에이블되지 않지만, 제 1 디블록 필터링 프로세스는 강한 필터링이 제 1 디블록 필터링 프로세스에 대해 인에이블되지 않는다는 사실을 제외하고는 루마 디블록 필터링 프로세스와 동일하다.
일부 예들에서, 판정 블록 791 에서의 결정은 비디오 인코더 (20) 에 의해 비트스트림에서 인코딩되는 신택스 엘리먼트에 기초하여 행해진다. 일부 예들에서, 신택스 엘리먼트는 플래그이다. 일부 예들에서, 신택스 엘리먼트는 비디오 데이터의 시퀀스 파라미터 세트 (SPS), 비디오 데이터의 픽처 파라미터 세트 (PPS), 또는 비디오 데이터의 슬라이스 헤더에서 인코더 (20) 에 의해 인코딩되는 플래그이다. 일부 예들에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 예를 들어, SPS, PPS 또는 슬라이스 헤더에서의 신택스 엘리먼트를 수신하고, 그 신택스 엘리먼트를 디코딩하여 블록 791 의 결정을 행한다. 일부 예들에서, 플래그는 deblock_chroma_as_luma 플래그이며, 플래그가 참 값, 예를 들어, 1 의 값을 갖는다면 제 1 디블록 필터링 프로세스를 수행하고, 플래그가 거짓 값, 예를 들어 0 의 값을 갖는다면 제 2 디블록 필터링 프로세스를 수행하라는 결정이 행해진다. 그러나, 본 개시물은 그렇게 제한되지 않으며, 다른 예들이 신택스 엘리먼트에 대해 채용될 수도 있다.
일부 예들에서, 신택스 엘리먼트가 SPS 에서 수신된다면, 선택된 디블록 필터링 프로세스는 시퀀스에서의 모든 블록들에 적용되며; 마찬가지로, 선택된 디블록 필터링 프로세스는 PPS 에서의 시그널링의 경우를 위해 픽처에서의 모든 블록들에 또는 슬라이스 헤더에서의 시그널링의 경우를 위해 슬라이스에서의 모든 블록들에 적용된다.
일부 예들에서, 비디오 데이터는 YCbCr 포맷에 있으며, 넌-루마 컴포넌트들은 크로마 컴포넌트들 Cb 및 Cr 이다. 다른 예들에서, 비디오 데이터는 RGB 포맷에 있으며, 컴포넌트들 모두는 넌-루마 컴포넌트들이다. 일부 예들에서, 도 7 의 프로세스는 각각의 넌-루마 컴포넌트에 대해 별도로 채용될 수도 있다. 예를 들어, 별개의 플래그들이 제 1 디블록 필터링 프로세스 또는 제 2 디블록 필터링 프로세스가 개별의 넌-루마 컴포넌트에 대해 이용될지 여부를 나타내기 위해 넌-루마 컴포넌트들 (예를 들어, 제 1 넌-루마 컴포넌트 및 제 2 넌-루마 컴포넌트로 지칭될 수도 있는 Cb 및 Cr) 각각에 대해 개별적으로 설정될 수도 있다. 다른 예들에서, 비디오 데이터에서의 넌-루마 컴포넌트들 모두에 적용하는 하나의 결정이 행해진다. 예를 들어, 일부 예들에서, 비디오 데이터에서의 넌-루마 컴포넌트들 모두에 적용하는 하나의 플래그가 설정된다. 특히, 각각의 넌-루마 컴포넌트에 대해 별개의 플래그를 시그널링하는 대신에, 비디오 인코더 (20) 는 넌-루마 컴포넌트들 모두에 적용하는 하나의 결정을 행하고, 넌-루마 컴포넌트들에 대한 결정 (예를 들어, 제 1 디블록 필터링 프로세스를 적용할지 또는 제 2 디블록 필터링 프로세스를 적용할지 여부) 를 나타내는 단일 플래그를 생성할 수도 있다.
일부 예들에서, 판정 블록 791 에서의 결정은 넌-루마 컬러 컴포넌트들의 에너지 레벨에 기초하여 행해진다. 예를 들어, 일부 예들에서, 판정 블록 791 에서의 결정은 비디오 데이터의 넌-루마 컬러 컴포넌트의 에너지 레벨이 에너지 레벨 임계값보다 더 클 때 비디오 데이터의 넌-루마 컴포넌트에 대한 결정된 디블록 필터링 프로세스로서 제 1 디블록 필터링 프로세스를 선택하는 것, 및 비디오 데이터의 넌-루마 컬러 컴포넌트의 에너지 레벨이 에너지 레벨 임계값보다 더 작을 때 비디오 데이터의 넌-루마 컴포넌트에 대한 결정된 디블록 필터링 프로세스로서 제 2 디블록 필터링 프로세스를 선택하는 것을 포함한다.
일반적으로는 비디오 컴포넌트의 에너지 레벨이 상대적으로 낮을 때 비디오 컴포넌트의 강한 필터링의 이용을 회피하는 것이 선호된다. 그러나, 비디오 컴포넌트의 에너지 레벨이 상대적으로 높을 때는, 적절할 때 단지 약한 필터만을 적용하고 강한 필터를 이용하지 않는 것은 시각 품질을 해칠 수 있다. 예를 들어, YCbCr 4:2:0 포맷에서, Cb 및 Cr 컴포넌트들의 경우, 크로마 컴포넌트들이 Y 와 비교하여 더 적은 에너지를 갖기 때문에 Cb 및 Cr 컴포넌트들에 대해서만 약한 필터를 이용하는 것이 선호될 수도 있다. 그러나, 크로마에 대해 약한 필터만을 적용하는 것은 크로마 컴포넌트들이 YCbCr 4:2:0 포맷에서보다 더 많은 에너지를 가질 수도 있기 때문에 YCbCr 4:4:4 와 같은 다른 컬러 공간 또는 포맷에 대한 시각 품질을 해칠 수 있다. 일부 예들에서, 791 에서의 결정은 에너지 레벨들에 관한 기대에 기초하여, 컬러 공간에 단순히 기초하여 행해질 수도 있다. 다른 예들에서, 에너지 레벨들은 실제로 측정될 수도 있고, 비디오 데이터의 넌-루마 컬러 컴포넌트의 에너지 레벨이 에너지 레벨 임계값보다 더 클 때 비디오 데이터의 넌-루마 컴포넌트에 대한 결정된 디블록 필터링 프로세스로서 제 1 디블록 필터링 프로세스를 선택하고, 비디오 데이터의 넌-루마 컬러 컴포넌트의 에너지 레벨이 에너지 레벨 임계값보다 더 작을 때 비디오 데이터의 넌-루마 컴포넌트에 대한 결정된 디블록 필터링 프로세스로서 제 2 디블록 필터링 프로세스를 선택하기로 결정이 행해질 수도 있다.
일부 예들에서, 판정 블록 791 에서의 결정은 비디오 데이터의 컬러 공간에 기초하여 행해진다. 예를 들어, 일부 예들에서, 판정 블록 791 에서의 결정에서는, 비디오 데이터의 컬러 공간이 YCbCr 4:4:4 또는 RBG 라면 제 1 디블록 필터링 프로세스가 결정된 디블록 필터링 프로세스로서 선택되고 비디오 데이터의 컬러 공간이 YCbCr 4:2:2 또는 YCbCr 4:2:0 이라면 제 2 디블록 필터링 프로세스가 결정된 디블록 필터링 프로세스로서 선택된다.
다른 예로서, 일부 예들에서, 판정 블록 791 에서의 결정에서는, 비디오 데이터의 각각의 컴포넌트의 샘플링 레이트가 비디오 데이터의 각각의 다른 컴포넌트의 샘플링 레이트와 동일하다면 제 1 디블록 필터링 프로세스가 넌-루마 컬러 컴포넌트에 대한 결정된 디블록 필터링 프로세스로서 선택된다. 예를 들어, 크로마 컴포넌트들의 샘플링 레이트는 YCbCr 4:2:2 또는 YCbCr 4:2:0 에서의 루마 컴포넌트들과 상이하며, 제 2 디블록 필터링 프로세스는 비디오 데이터가 이들 포맷들 중 하나에 있다면 채용된다. 대안적으로, 샘플링 레이트는 YCbCr 4:4:4 또는 RBG 에서 모든 비디오 컴포넌트들에 대해 동일하며, 제 1 디블록 필터링 프로세스는 비디오 데이터가 이들 포맷들 중 하나에 있다면 채용된다.
상기 논의한 바와 같이, 다양한 예들에서, 다양한 기준들이 선택된 디블록킹 필터링 프로세스를 결정하는데 이용될 수도 있다. 일부 예들에서, 상기 논의된 기준들 또는 다른 적합한 기준들 중 하나가 채용될 수도 있으며, 다른 예들에서는, 2 개 이상의 기준들이 이용될 수도 있어, 상기 논의된 기준들은 하나 보다 더 많은 기준들이 일부 예들에서의 결정을 행하는데 채용될 수도 있다는 점에서 반드시 상호 배타적인 것은 아니다. 더욱이, 상기 논의한 바와 같이, 일부 예들에서, 결정은 플래그에 기초하여 행해지며, 플래그에 의해 시그널링되며, 다른 실시형태들에서는, 그 결정은 인코더로부터의 시그널링 없이 디코더에 의해 저절로 행해진다.
상기 논의한 바와 같이, 일부 예들에서, 도 7 의 프로세스는 비디오 인코더 (20), 비디오 디코더 (30), 또는 다양한 다른 프로세서들에 의해 수행될 수도 있다. 일부 예들에서, 프로세스는 코드를 저장하도록 구성되는 메모리, 및 프로세스의 액션들을 인에이블하기 위해 코드를 실행하도록 구성되는 적어도 하나의 프로세서를 포함하는 디바이스에 의해 수행될 수도 있다. 일부 예들에서, 프로세스의 액트들은 하나 이상의 프로세서들에 의해 실행될 때, 프로세스의 액션들을 인에이블하는 프로세서 판독가능 코드를 인코딩하도록 배열되는 비일시적 프로세서 판독가능 매체 상에 인코딩될 수도 있다.
상기 논의한 바와 같이, 일부 예들에서, 판정 블록 791 에서의 결정은 비디오 인코더 (20) 에 의해 생성된 신택스 엘리먼트에 기초하여 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 에 의해 행해진다. 일부 예들에서, 신택스 엘리먼트는 비디오 인코더 (20) 에 의해 생성된다. 일부 예들에서, 신택스 엘리먼트는 제 1 넌-루마 컬러 컴포넌트에 대한 결정된 디블록 필터링 프로세스를 나타내기 위해 코딩될 수도 있다. 예를 들어, 일부 예들에서, 인코딩 경로 동안 그러나, 디블록킹 이전에, 비디오 인코더 (20) 에 의해, 비디오 데이터의 하나 이상의 넌-루마 컬러 컴포넌트들에 대해, 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부의 결정이 행해질 수도 있다. 그 결정은 비디오 데이터의 컬러 공간, 사용자 입력, 또는 다양한 예들에서의 다른 팩터들에 기초할 수도 있다. 신택스 엘리먼트는 그 후 하나 이상의 넌-루마 컬러 컴포넌트들에 대한 결정된 디블록 필터링 프로세스를 나타내기 위해 비디오 인코더 (20) 에 의해 인코딩될 수도 있다. 일부 예들에서, 디블록킹 동안, 도 7 의 프로세스가 채용될 수도 있으며, 판정 블록 791 에서의 결정이 이 신택스 엘리먼트에 기초하여 행해질 수도 있다. 일부 예들에서, 신택스 엘리먼트는 비디오 데이터의 시퀀스 파라미터 세트 (SPS), 비디오 데이터의 픽처 파라미터 세트 (PPS), 또는 비디오 데이터의 슬라이스 헤더에 저장되는 deblock_chroma_as_luma 플래그이다.
도 7 의 프로세스의 예들이 예를 들어, 비디오 데이터의 인코딩 경로 및/또는 디코딩 경로 동안 채용될 수도 있다. 일부 예들에서, 도 7 의 프로세스의 디블록 필터링은 비디오 인코더 (20) 의 인코딩 경로와 비디오 디코더 (30) 의 디코딩 경로 양자 동안 인-루프 필터로서 채용될 수도 있다. 예들에서, 디블록 필터링은 포스트-프로세싱 동안과 같이 언젠가 다른 시간에 수행될 수도 있다. 일부 예들에서, 결정된 디블록킹 필터링 프로세스는 비디오 데이터의 각각의 넌-루마 컴포넌트에 대해 채용될 수도 있다. 다른 예들에서, 넌-루마 컴포넌트들에 대해 어느 디블록킹 필터링 프로세스를 채용할지에 관한 별개의 결정들이 행해질 수도 있다.
도 8 은 본 개시물의 기법들에 따른, 비디오 코딩 프로세스에서 비디오 데이터를 필터링하기 위한 일 예의 프로세스를 예시하는 플로우도이다. 도 8 의 예는 비디오 인코더 (20), 비디오 디코더 (30), 또는 다양한 다른 프로세서들에 의해 수행될 수도 있다.
상기 언급한 바와 같이, 본 개시물의 양태들에 따르면, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 크로마 컴포넌트들 또는 다른 컬러 컴포넌트들 (예를 들어, RGB 공간의 경우 R, G, 및 B) 을 포함한 모든 비디오 컴포넌트들에 루마 컴포넌트들에 대한 디블록킹 스킴을 적용할 수도 있다. 따라서, 일부 인스턴스들에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 크로마 컴포넌트들 또는 다른 컬러 컴포넌트들에 강한 필터링을 적용할 수도 있다. 일부 예들에서, 이러한 기능성은 하나 이상의 신택스 엘리먼트들 (예를 들어, deblock_chroma_as_luma 플래그) 을 이용하여 시그널링될 수도 있다.
도 8 의 예에서, 비디오 코더 (이를 테면 비디오 인코더 (20) 또는 비디오 디코더 (30)) 는 현재 디코딩되는 블록이 루마 블록인지 여부를 결정할 수도 있다 (100). 루마 비디오 컴포넌트가 코딩되고 있다면, 비디오 코더는 블록에 루마 디블록킹 스킴을 적용할 수도 있다 (102). 예를 들어, HEVC 표준에 따르면, 비디오 코더는 예를 들어, 블록 또는 주위의 블록들의 에지 또는 다른 특성들에 기초하여, 강한 디블록킹 필터 또는 약한 디블록킹 필터가 블록에 적용되는 루마 디블록킹 스킴을 적용할 수도 있다.
현재 디코딩되는 블록이 루마 블록이 아니라면 (단계 100 의 "아니오" 브랜치), 비디오 코더는 적응형 디블록킹 필터링이 인에이블되는지 여부를 결정할 수도 있다. 예를 들어, 비디오 코더는 deblock_chroma_as_luma 플래그가 0 또는 1 로 설정되었는지 여부를 결정할 수도 있다 (104). 플래그가 1 로 설정된다면, 비디오 코더는 블록에 루마 디블록킹 스킴 (예를 들어, 하나 이상의 기준들에 기초하여 강한 또는 약한 중 어느 하나의 디블록킹 필터) 을 적용할 수도 있다 (102). 플래그가 0 으로 설정된다면, 비디오 코더는 정규의 크로마 디블록킹 (예를 들어, 약한 디블록킹만) 을 수행할 수도 있다 (106).
일부 예들에서, 상기 설명된 플래그는 상이한 컬러 공간들에 대해 상이하게 설정될 수도 있다. 예를 들어, 비디오 인코더 (20) 는 RGB 시퀀스들에 대해 그리고 적용가능한 대로 YCbCr 4:4:4 시퀀스들, 픽처들 또는 슬라이스들에 대해 플래그를 1 로 설정하고, YCbCr 4:2:2 및 4:2:0 시퀀스들, 픽처들 또는 슬라이스들에 대해 플래그를 0 으로 설정할 수도 있다. 다른 예에서, 비디오 인코더 (20) 는 이러한 시퀀스들 중 어느 하나 또는 양자에 대해 플래그를 0 으로 설정할 수도 있다.
도 9 는 본 개시물의 기법들에 따른, 비디오 코딩 프로세스에서 비디오 데이터를 필터링하기 위한 일 예의 프로세스를 예시하는 플로우도이다. 도 9 의 예는 비디오 인코더 (20), 비디오 디코더 (30), 또는 다양한 다른 프로세서들에 의해 수행될 수도 있다.
상기 언급한 바와 같이, 일부 인스턴스들에서, 비디오 코더 (이를 테면 비디오 인코더 (20) 또는 비디오 디코더 (30)) 는 넌-루마, 예를 들어, 크로마, 컴포넌트들에 대해 루마-타입 디블록킹을 수행할 수도 있지만, 크로마 컴포넌트들에 강한 필터링을 적용하는 것을 억제할 수도 있다. 즉, 비디오 코더는 넌-루마 블록들에 약한 디블록 필터링을 적용하거나 어떤 디블록 필터링도 적용하지 않으며, 넌-루마 블록들에 강한 디블록 필터링을 적용하지 않는다. 이러한 인스턴스들에서, 비디오 코더는 인터- 및 인트라-코딩된 크로마 컴포넌트들 양자에 디블록킹을 적용할 수도 있다. 예를 들어, HEVC 버전 1 에서, 크로마 컴포넌트들에 대한 디블록킹 필터링은 예측 의존적일 수도 있어, 디블록킹되는 경계를 형성하는 하나 또는 양자의 블록들이 인트라-예측 모드를 이용하여 코딩되었을 때 디블록킹 필터링이 크로마 컴포넌트들에 대해만 수행될 수도 있다.
본 개시물의 양태들에 따르면, 일부 인스턴스들에서, 크로마 컴포넌트들에 대한 이 디블록킹 예측 한정은 제거될 수도 있다 (즉, 디블록킹되는 경계를 형성하는 하나 또는 양자의 블록들이 인트라-예측 모드를 이용하여 코딩되었을 때 디블록킹 필터링이 단지 크로마 컴포넌트들에 대해 수행될 수도 있다는 한정이 제거될 수도 있다). 예를 들어, 디블록킹 필터링은 경계를 형성하는 하나 또는 양자의 블록들이 인터-예측 모드를 이용하여 코딩될 때 크로마 컴포넌트들에 대해 수행될 수도 있다. 그러나, 강한 필터는 통상 더 긴 필터 탭 사이즈로 인해 더 많은 픽셀들의 라인들을 저장하는 것을 요구하기 때문에, 강한 디블록킹 필터를 적용하는 것은 더 많은 구현 리소스들을 요구할 수도 있다. 따라서, 구현 복잡도를 감소시키기 위해, 일부 예들에 따르면, 비디오 코더는 크로마 컴포넌트들에 대해 강한 디블록킹 필터링을 수행하는 것을 억제할 수도 있다. 그러나, 다른 예들에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 루마와 크로마 양자의 컴포넌트들에 대해 강한 디블록킹 필터링을 수행할 수도 있다.
도 9 의 예에서, 비디오 코더는 현재 코딩되는 블록이 루마 블록인지 여부를 결정할 수도 있다 (110). 블록이 비디오 데이터의 루마 컴포넌트이라면, 비디오 코더는 루마 필터링 프로세스를 적용하고 강한 디블록킹 필터링을 적용할지 여부를 결정할 수도 있다 (112). 비디오 코더는 그 결정에 기초하여 강한 디블록킹 필터링을 적용하거나 (114) 또는 약한 디블록킹 필터링을 적용 (116) 할 수도 있다.
현재 코딩되는 블록이 루마 블록이 아니라면 (단계 110 의 "아니오" 브랜치), 비디오 코더는 적응형 디블록킹 필터링이 인에이블되는지 여부를 결정할 수도 있다. 예를 들어, 비디오 코더는 인코딩된 비트스트림에서 (예를 들어, SPS, PPS, 또는 슬라이스 헤더에서) 수신된 deblock_chroma_as_luma 플래그가 0 또는 1 로 설정되었는지 여부를 결정할 수도 있다 (118). 플래그가 1 로 설정된다면, 비디오 코더는 블록이 인트라- 또는 인터-예측되는지 여부에 상관없이, 블록에 약한 루마 디블록킹 스킴을 적용할 수도 있다 (116). 플래그가 0 으로 설정된다면, 비디오 코더는 정규의 크로마 디블록킹을 수행 (예를 들어, 인트라-예측된 블록들에 디블록킹 필터링만을 적용) 할 수도 있다 (120).
도 10 은 경계 강도가 본 개시물의 기법들과 일치하는, HEVC 에 따라 계산될 수도 있는 방법을 예시하는 플로우도이다. 일부 예들에서, 상기 언급한 바와 같이, 경계 강도 계산들은 디블록킹 필터링을 적용할지 여부 및/또는 강한 또는 약한 디블록킹 필터링을 적용할지 여부를 결정할 때 고려될 수도 있다. 더욱이, 본 개시물과 일치하여, 필터링은 경계 강도가 0 보다 더 클 때 인터-코딩된 크로마 블록들에 대해 적용될 수도 있다.
하나의 예에서, 도 10 에 도시한 바와 같이, "p" 는 블록의 좌측 또는 상부 에지 상의 4x4 부분을 지칭하고, "q" 는 블록의 우측 또는 하부 에지 상의 4x4 부분을 지칭한다. 인코더 (20) (도 2) 의 필터링 유닛 (66) 또는 디코더 (30) (도 3) 의 필터링 유닛 (84) 은 p 또는 q 가 인트라 CU 에 있는지 여부를 결정할 수도 있다 (901). 만약 그렇다면 (901 의 예 브랜치), 경계 강도는 2 로 설정된다 (902). 이에 따라, 일부 예들에서, 필터링 유닛 (66) 및/또는 필터링 유닛 (84) 은 블록의 크로마 컴포넌트들에 디블록킹 필터링을 적용할 수도 있다.
만약 아니라면 (901 의 아니오 브랜치), 필터링 유닛 (66 또는 84) 은 데이터가 TU 에지에 대응하는지 여부 및 p 또는 q 가 넌-제로 변환 계수 레벨을 가진 TU 에 있는지 여부를 고려할 수도 있다 (903). 데이터가 TU 에지에 대응하고 p 또는 q 가 넌-제로 변환 계수 레벨을 가진 TU 에 있다면 (903 의 예 브랜치), 경계 강도는 1 로 설정될 수도 있다 (904). 만약 아니라면 (903 의 아니오 브랜치), 필터링 유닛 (66 또는 84) 은 다음을 고려할 수도 있다:
p 또는 q 가 상이한 참조 픽처들 또는 상이한 수들의 모션 벡터들을 갖는지 여부; 또는
p 및 q 가 하나의 모션 벡터를 각각 갖고
Figure pct00014
또는
Figure pct00015
인지 여부; 또는
p 및 q 가 2 개의 모션 벡터들을 각각 갖고, 적어도 하나의 모션 벡터 쌍이
Figure pct00016
또는
Figure pct00017
을 충족하는지 여부 (905).
판정 박스 (905) 에 대한 응답이 예라면, 경계 강도는 1 로 설정될 수도 있고 (904), 판정 박스 (905) 에 대한 응답이 아니오라면, 경계 강도는 0 으로 설정될 수도 있다 (906).
다시, 이러한 경계 강도 계산들은 필터링 유닛 (66) 및/또는 필터링 유닛 (84) 이 비디오 데이터의 크로마 컴포넌트들에 디블록킹 필터링을 포함한 디블록킹 필터링을 적용하는 방식을 제어할 수도 있다. 예를 들어, 필터링 유닛 (66) 및/또는 필터링 유닛 (84) 은 (단계 902 및 단계 904 에서와 같이) 경계 강도 계산들이 0 보다 더 클때마다 디블록킹 필터링을 적용할 수도 있다.
HEVC 버전 1 의 경우, 넌-루마 컴포넌트들에 대해서는, Bs<2 인 경우 어떤 필터링도 적용되지 않고 Bs>1 인 경우에는 약한 필터링이 적용된다. HEVC 버전 1 의 경우, 루마 컴포넌트들에 대해서는, Bs=0 인 경우 어떤 필터링도 적용되지 않고, Bs>0 인 경우에는 약한 또는 강한 필터링이 적용되며, 여기서 경계 강도가 약한 필터링을 적용할지 또는 강한 필터링을 적용할지 여부를 결정하는데 있어서 이용되는 팩터일 수도 있다. 본 개시물에 따르면, 플래그가 0 으로 설정될 때, 모든 컴포넌트들은 HEVC 버전 1 에 따라 필터링하고 있을 수도 있다. 본 개시물에 따르면, 일부 예들에서, 플래그가 0 으로 설정될 때, 루마 및 넌-루마 컴포넌트들을 포함한 모든 컴포넌트들은 HEVC 버전 1 에서 루마 컴포넌트들로서 필터링될 수도 있다. 즉, 이들 예들에서, 플래그가 1 로 설정될 때, 루마 및 넌-루마 양자의 컴포넌트들에 대해서는, Bs=0 인 경우 어떤 필터링도 적용되지 않고, Bs>0 인 경우에는 약한 또는 강한 필터링이 적용되며, 여기서 경계 강도가 약한 필터링을 적용할지 또는 강한 필터링을 적용할지 여부를 결정하는데 있어서 이용되는 팩터일 수도 있다.
본 개시물의 소정의 양태들은 예시의 목적들을 위해 개발중인 HEVC 표준에 대하여 설명되었다. 그러나, 본 개시물에서 설명된 기법들은 아직 개발되지 않은 다른 표준 또는 사유 비디오 코딩 프로세스들을 포함한 다른 비디오 코딩 프로세스들을 위해 유용할 수도 있다.
본 개시물에서 설명한 바와 같이 비디오 코더는 비디오 인코더 또는 비디오 디코더를 지칭할 수도 있다. 유사하게, 비디오 코딩 유닛은 비디오 인코더 또는 비디오 디코더를 지칭할 수도 있다. 마찬가지로, 비디오 코딩은 적용가능한 대로, 비디오 인코딩 또는 비디오 디코딩을 지칭할 수도 있다.
예에 의존하여, 본 명세서에서 설명된 기법들 중 임의의 기법들의 소정의 액트들 또는 이벤트들이 상이한 시퀀스로 수행될 수 있고, 함께 추가, 병합, 또는 배제될 수도 있다는 것이 인정될 것이다 (예를 들어, 모든 설명된 액트들 또는 이벤트들이 기법들의 실시를 위해 필요한 것은 아니다). 더욱이, 소정의 예들에서, 액트들 또는 이벤트들은 순차적으로라기 보다는, 예를 들어, 멀티-스레디드 프로세싱, 인터럽트 프로세싱, 또는 다수의 프로세서들을 통하여 동시적으로 수행될 수도 있다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 소프트웨어에서 구현된다면, 기능들은 컴퓨터 판독가능 매체 상에 하나 이상의 명령들 또는 코드로서 저장 또는 송신될 수도 있고 하드웨어 기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체들은 예를 들어, 통신 프로토콜에 따라 하나의 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체들, 또는 데이터 저장 매체들과 같은 유형의 매체에 대응하는 컴퓨터 판독가능 저장 매체들을 포함할 수도 있다.
이 방식으로, 컴퓨터 판독가능 매체들은 일반적으로 (1) 전파 신호를 그 자체로 포함하지 않는 유형의 컴퓨터 판독가능 저장 매체들 또는 (2) 신호 또는 캐리어파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체들은 본 개시물에서 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.
제한이 아닌 일 예로, 이러한 컴퓨터 판독가능 저장 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 저장, 자기 디스크 저장, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는데 이용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체라 적절히 불리게 된다. 예를 들어, 명령들이 동축 케이블, 광섬유 케이블, 트위스티드 페어, 디지털 가입자 회선 (DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 이용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 송신된다면, 매체의 정의에는 동축 케이블, 광섬유 케이블, 트위스티드 페어, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들이 포함된다.
그러나, 컴퓨터 판독가능 저장 매체들 및 데이터 저장 매체들은 접속들, 캐리어파들, 신호들 등을 포함하지 않고 그 대신 유형의 저장 매체들을 향하게 된다는 것이 이해되어야 한다. 디스크 (disk) 및 디스크 (disc) 는 본 명세서에서 사용한 바와 같이, 콤팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루-레이 디스크를 포함하며, 여기서 디스크 (disk) 들은 보통 데이터를 자기적으로 재생시키는 한편, 디스크 (disc) 들은 보통 레이저를 이용하여 데이터를 광학적으로 재생시킨다. 상기의 조합들이 또한 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 프로세서들, 이를 테면 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 주문형 집적 회로들 (ASIC들), 필드 프로그램가능 로직 어레이들 (FPGA들), 또는 다른 등가의 집적 또는 이산 로직 회로에 의해 실행될 수도 있다. 이에 따라, 용어 "프로세서" 는 본 명세서에서 사용한 바와 같이, 전술한 구조 또는 본 명세서에서 설명된 기법들의 구현에 적합한 임의의 다른 구조 중 임의의 것을 지칭할 수도 있다. 또한, 일부 양태들에서, 본 명세서에서 설명된 기능성은 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공되거나, 또는 결합된 코덱에 통합될 수도 있다. 또한, 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들에서 완전히 구현될 수 있다.
본 개시물의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC들의 세트 (예를 들어, 칩 세트) 를 포함한 광범위한 디바이스들 또는 장치들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시물에서 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구하지는 않는다. 오히려, 상기 설명한 바와 같이, 다양한 유닛들은 코덱 하드웨어 유닛에 결합되거나 또는 상기 설명한 바와 같은 하나 이상의 프로세서들을 적합한 소프트웨어 및/또는 펌웨어와 함께 포함한, 상호운용적 하드웨어 유닛들의 콜렉션에 의해 제공될 수도 있다.
다양한 예들이 설명되었다. 이들 및 다른 예들이 다음의 청구항들의 범위 내에 있다.

Claims (30)

  1. 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법으로서,
    상기 비디오 데이터의 제 1 넌-루마 컬러 컴포넌트에 대해, 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부를 결정하는 단계; 및
    결정된 디블록 필터링 프로세스에 따라 상기 제 1 넌-루마 컬러 컴포넌트에 대해 디블록 필터링을 수행하는 단계를 포함하는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 제 1 디블록 필터링 프로세스는 제 1 레벨의 디블록 필터링 및 제 2 레벨의 디블록 필터링을 제공하고, 상기 제 1 레벨의 디블록 필터링은 상기 제 2 레벨의 디블록 필터링보다 상대적으로 더 강하며, 상기 제 2 디블록 필터링 프로세스는 정확히 하나의 레벨의 디블록 필터링을 제공하는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법.
  3. 제 1 항에 있어서,
    상기 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부를 결정하는 단계는 상기 비디오 데이터의 상기 제 1 넌-루마 컬러 컴포넌트와 연관된 에너지 레벨이 에너지 레벨 임계값보다 더 클 때 상기 비디오 데이터의 상기 제 1 넌-루마 컬러 컴포넌트에 대한 상기 결정된 디블록 필터링 프로세스로서 상기 제 1 디블록 필터링 프로세스를 선택하는 단계, 및 상기 비디오 데이터의 상기 제 1 넌-루마 컬러 컴포넌트와 연관된 상기 에너지 레벨이 상기 에너지 레벨 임계값보다 더 작을 때 상기 비디오 데이터의 상기 제 1 넌-루마 컬러 컴포넌트에 대한 상기 결정된 디블록 필터링 프로세스로서 상기 제 2 디블록 필터링 프로세스를 선택하는 단계를 포함하는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법.
  4. 제 1 항에 있어서,
    상기 결정된 디블록 필터링 프로세스에 기초하여 디블록킹 강도를 제어하기 위한 디블록킹 임계값들
    Figure pct00018
    및 tC 를 결정하는 단계를 더 포함하는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법.
  5. 제 1 항에 있어서,
    상기 제 1 넌-루마 컬러 컴포넌트에 대한 상기 결정된 디블록 필터링 프로세스에 따라 제 2 넌-루마 컬러 컴포넌트에 대해 디블록 필터링을 수행하는 단계를 더 포함하는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법.
  6. 제 1 항에 있어서,
    상기 비디오 데이터의 제 2 넌-루마 컬러 컴포넌트에 대해, 디블록 필터링을 상기 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 상기 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부를 결정하는 단계; 및
    상기 제 2 넌-루마 컬러 컴포넌트에 대해 결정된 디블록 필터링 프로세스에 따라 상기 제 2 넌-루마 컬러 컴포넌트에 대해 디블록 필터링을 수행하는 단계
    를 더 포함하는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법.
  7. 제 1 항에 있어서,
    YCbCr 포맷의 상기 비디오 데이터를 수신하는 단계를 더 포함하며,
    상기 제 1 넌-루마 컬러 컴포넌트는 Cb 또는 Cr 인, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법.
  8. 제 1 항에 있어서,
    RGB 포맷의 상기 비디오 데이터를 수신하는 단계를 더 포함하며,
    상기 제 1 넌-루마 컬러 컴포넌트는 레드 (Red), 그린 (Green), 또는 블루 (Blue) 인, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법.
  9. 제 1 항에 있어서,
    상기 비디오 데이터를 인코딩하는 단계를 더 포함하며,
    상기 디블록 필터링을 수행하는 단계는 인코딩 경로 동안 인-루프 필터링을 제공하는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법.
  10. 제 1 항에 있어서,
    상기 비디오 데이터를 디코딩하는 단계를 더 포함하며,
    상기 디블록 필터링을 수행하는 단계는 디코딩 경로 동안 인-루프 필터링을 제공하는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법.
  11. 제 1 항에 있어서,
    상기 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부를 결정하는 단계는 상기 결정을, 상기 비디오 데이터의 적어도 상기 제 1 넌-루마 컬러 컴포넌트에 대해 어느 디블록 필터링 프로세스를 채용할지를 나타내는 신택스 엘리먼트에 기초하여 행하는 단계를 포함하는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법.
  12. 제 11 항에 있어서,
    상기 신택스 엘리먼트는 deblock_chroma_as_luma 신택스 엘리먼트를 포함하는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법.
  13. 제 11 항에 있어서,
    상기 비디오 데이터의 시퀀스 파라미터 세트, 상기 비디오 데이터의 픽처 파라미터 세트, 또는 상기 비디오 데이터의 슬라이스 헤더 중 하나에서 상기 신택스 엘리먼트를 수신하는 단계를 더 포함하는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법.
  14. 제 1 항에 있어서,
    상기 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부를 결정하는 단계는 상기 결정을, 상기 비디오 데이터의 컬러 공간에 기초하여 행하는 단계를 포함하는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법.
  15. 제 14 항에 있어서,
    상기 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부를 결정하는 단계는 상기 비디오 데이터의 상기 컬러 공간이 YCbCr 4:4:4 일 때 상기 비디오 데이터의 상기 제 1 넌-루마 컬러 컴포넌트에 대해 상기 제 1 디블록 필터링 프로세스를 선택하는 단계, 상기 컬러 공간이 RGB 일 때 상기 비디오 데이터의 상기 제 1 넌-루마 컬러 컴포넌트에 대해 상기 제 1 디블록 필터링 프로세스를 선택하는 단계, 상기 컬러 공간이 YCbCr 4:2:2 일 때 상기 비디오 데이터의 상기 제 1 넌-루마 컬러 컴포넌트에 대해 상기 제 2 디블록 필터링 프로세스를 선택하는 단계, 및 상기 컬러 공간이 YCbCr 4:2:0 일 때 상기 비디오 데이터의 상기 제 1 넌-루마 컬러 컴포넌트에 대해 상기 제 2 디블록 필터링 프로세스를 선택하는 단계를 포함하는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법.
  16. 제 14 항에 있어서,
    상기 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부를 결정하는 단계는 상기 비디오 데이터의 각각의 컴포넌트의 샘플링 레이트가 상기 비디오 데이터의 각각의 다른 컴포넌트의 샘플링 레이트와 동일할 때 상기 비디오 데이터의 상기 제 1 넌-루마 컬러 컴포넌트에 대해 상기 제 1 디블록 필터링 프로세스를 선택하는 단계를 포함하는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법.
  17. 제 1 항에 있어서,
    상기 제 1 디블록 필터링 프로세스는 인트라-예측된 데이터와 인터-예측된 데이터 양자에 디블록 필터링을 수행하는 것을 포함하며, 상기 제 2 디블록 필터링 프로세스는 인트라-예측된 데이터에 대해 디블록 필터링을 수행하고 인터-예측된 데이터에 대해서는 어떤 디블록 필터링도 수행하지 않는 것을 포함하는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법.
  18. 제 1 항에 있어서,
    루마 디블록 필터링 프로세스에 기초하여 상기 비디오 데이터의 루마 컴포넌트에 대해 디블록 필터링을 수행하는 단계를 더 포함하며,
    상기 제 1 디블록 필터링 프로세스는 상기 루마 디블록 필터링 프로세스의 하나 이상의 양태들을 포함하는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법.
  19. 제 18 항에 있어서,
    상기 제 1 디블록 필터링 프로세스는 상기 루마 디블록 필터링 프로세스와 동일한, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 방법.
  20. 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 장치로서,
    상기 비디오 데이터를 저장하도록 구성되는 메모리; 및
    적어도 하나의 프로세서를 포함하며,
    상기 적어도 하나의 프로세서는 :
    상기 비디오 데이터의 제 1 넌-루마 컬러 컴포넌트에 대해, 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부를 결정하며;
    결정된 디블록 필터링 프로세스에 따라 상기 제 1 넌-루마 컬러 컴포넌트에 대해 디블록 필터링을 수행하도록
    구성되는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 장치.
  21. 제 20 항에 있어서,
    상기 적어도 하나의 프로세서는 또한 :
    상기 제 1 디블록 필터링 프로세스가 제 1 레벨의 디블록 필터링 및 제 2 레벨의 디블록 필터링을 제공하고, 상기 제 1 레벨의 디블록 필터링이 상기 제 2 레벨의 디블록 필터링보다 상대적으로 더 강하며, 상기 제 2 디블록 필터링 프로세스가 정확히 하나의 레벨의 디블록 필터링을 제공하도록
    구성되는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 장치.
  22. 제 20 항에 있어서,
    상기 적어도 하나의 프로세서는 또한, 상기 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부를 결정하는 것이 상기 결정을, 상기 비디오 데이터의 적어도 상기 제 1 넌-루마 컬러 컴포넌트에 대해 어느 디블록 필터링 프로세스를 채용할지를 나타내는 신택스 엘리먼트에 기초하여 행하는 것을 포함하도록 구성되는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 장치.
  23. 제 20 항에 있어서,
    상기 적어도 하나의 프로세서는 또한, 상기 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부를 결정하는 것이 상기 결정을, 상기 비디오 데이터의 컬러 공간에 기초하여 행하는 것을 포함하도록 구성되는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 장치.
  24. 제 20 항에 있어서,
    상기 적어도 하나의 프로세서는 또한 :
    상기 제 1 디블록 필터링 프로세스가 인트라-예측된 데이터와 인터-예측된 데이터 양자에 디블록 필터링을 수행하는 것을 포함하며, 상기 제 2 디블록 필터링 프로세스가 인트라-예측된 데이터에 대해 디블록 필터링을 수행하고 인터-예측된 데이터에 대해서는 어떤 디블록 필터링도 수행하지 않는 것을 포함하도록
    구성되는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 장치.
  25. 제 20 항에 있어서,
    상기 적어도 하나의 프로세서는 또한 :
    상기 비디오 데이터를 인코딩하도록 구성되며,
    상기 적어도 하나의 프로세서는 또한, 상기 제 1 넌-루마 컬러 컴포넌트에 대해 디블록 필터링을 수행하는 것이 인코딩 경로 동안 인-루프 필터링을 제공하도록 구성되는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 장치.
  26. 제 20 항에 있어서,
    상기 적어도 하나의 프로세서는 또한 :
    상기 비디오 데이터를 디코딩하도록 구성되며,
    상기 적어도 하나의 프로세서는 또한, 상기 제 1 넌-루마 컬러 컴포넌트에 대해 디블록 필터링을 수행하는 것이 디코딩 경로 동안 인-루프 필터링을 제공하도록 구성되는, 비디오 데이터에 대해 디블록 필터링을 수행하기 위한 장치.
  27. 명령들을 저장하는 비일시적 프로세서 판독가능 매체로서,
    상기 명령들은, 실행될 때, 하나 이상의 프로세서들로 하여금 :
    비디오 데이터의 제 1 넌-루마 컬러 컴포넌트에 대해, 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부를 결정하게 하며;
    결정된 디블록 필터링 프로세스에 따라 상기 제 1 넌-루마 컬러 컴포넌트에 대해 디블록 필터링을 수행하게 하는, 비일시적 프로세서 판독가능 매체.
  28. 비디오 데이터에 대해 디블록 필터링하기 위한 방법으로서,
    상기 비디오 데이터의 제 1 넌-루마 컬러 컴포넌트에 대해, 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부를 결정하는 단계; 및
    상기 제 1 넌-루마 컬러 컴포넌트에 대한 결정된 디블록 필터링 프로세스를 나타내는 신택스 엘리먼트를 코딩하는 단계
    를 포함하는, 비디오 데이터에 대해 디블록 필터링하기 위한 방법.
  29. 제 28 항에 있어서,
    상기 비디오 데이터를 인코딩하는 단계를 더 포함하는, 비디오 데이터에 대해 디블록 필터링하기 위한 방법.
  30. 제 28 항에 있어서,
    상기 디블록 필터링을 제 1 디블록 필터링 프로세스에 기초하여 수행할지 또는 제 2 디블록 필터링 프로세스에 기초하여 수행할지 여부를 결정하는 단계는 상기 결정을, 상기 비디오 데이터의 컬러 공간에 기초하여 행하는 단계를 포함하는, 비디오 데이터에 대해 디블록 필터링하기 위한 방법.
KR1020167001490A 2013-07-12 2014-07-11 비디오 코딩에서의 넌-루마 컴포넌트들에 대한 적응형 디블록킹 필터링 KR20160032118A (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201361845508P 2013-07-12 2013-07-12
US61/845,508 2013-07-12
US201361846586P 2013-07-15 2013-07-15
US61/846,586 2013-07-15
US14/328,545 US10412419B2 (en) 2013-07-12 2014-07-10 Adaptive filtering in video coding
US14/328,545 2014-07-10
PCT/US2014/046301 WO2015006662A2 (en) 2013-07-12 2014-07-11 Adaptive filtering in video coding

Publications (1)

Publication Number Publication Date
KR20160032118A true KR20160032118A (ko) 2016-03-23

Family

ID=52277097

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167001490A KR20160032118A (ko) 2013-07-12 2014-07-11 비디오 코딩에서의 넌-루마 컴포넌트들에 대한 적응형 디블록킹 필터링

Country Status (6)

Country Link
US (1) US10412419B2 (ko)
EP (1) EP3020200A2 (ko)
JP (1) JP2016526857A (ko)
KR (1) KR20160032118A (ko)
CN (1) CN105532007B (ko)
WO (1) WO2015006662A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190089426A (ko) * 2018-01-22 2019-07-31 삼성전자주식회사 아티팩트 감소 필터를 이용한 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015076634A1 (en) * 2013-11-24 2015-05-28 Lg Electronics Inc. Method and apparatus for encoding and decoding video signal using adaptive sampling
US10038919B2 (en) 2014-05-29 2018-07-31 Apple Inc. In loop chroma deblocking filter
US20150382016A1 (en) * 2014-06-27 2015-12-31 Mitsubishi Electric Research Laboratories, Inc. Method for Processing Multi-Component Video and Images
WO2016056398A1 (ja) * 2014-10-06 2016-04-14 ソニー株式会社 画像処理装置および方法
US10432961B2 (en) * 2015-03-10 2019-10-01 Apple Inc. Video encoding optimization of extended spaces including last stage processes
US20170134732A1 (en) * 2015-11-05 2017-05-11 Broadcom Corporation Systems and methods for digital media communication using syntax planes in hierarchical trees
KR102573577B1 (ko) * 2016-02-15 2023-08-31 세종대학교산학협력단 영상 처리 방법, 프레임 율 변환 방법 및 그 장치
CN109076241B (zh) 2016-05-04 2023-06-23 微软技术许可有限责任公司 利用样本值的非相邻参考线进行帧内图片预测
US10425640B2 (en) * 2016-06-16 2019-09-24 Peking University Shenzhen Graduate School Method, device, and encoder for controlling filtering of intra-frame prediction reference pixel point
US10419757B2 (en) * 2016-08-31 2019-09-17 Qualcomm Incorporated Cross-component filter
KR102257829B1 (ko) * 2017-04-13 2021-05-28 엘지전자 주식회사 영상의 부호화/복호화 방법 및 이를 위한 장치
US10298895B1 (en) * 2018-02-15 2019-05-21 Wipro Limited Method and system for performing context-based transformation of a video
GB2573797A (en) * 2018-05-17 2019-11-20 Canon Kk A filter
GB2573798A (en) * 2018-05-17 2019-11-20 Canon Kk A filter
US10750171B2 (en) * 2018-06-25 2020-08-18 Google Llc Deblocking filtering
US11140418B2 (en) * 2018-07-17 2021-10-05 Qualcomm Incorporated Block-based adaptive loop filter design and signaling
CN116781880A (zh) 2018-08-31 2023-09-19 寰发股份有限公司 视频编解码中的子块去块方法及装置
WO2020085278A1 (ja) * 2018-10-22 2020-04-30 日本放送協会 符号化装置、復号装置、及びプログラム
CN113170206A (zh) * 2018-11-02 2021-07-23 索尼集团公司 图像处理装置和图像处理方法
US11240497B2 (en) * 2018-11-15 2022-02-01 Telefonaktiebolaget Lm Ericsson (Publ) Deblocking in a video encoder and/or video decoder
CN113316938B (zh) * 2019-01-02 2023-12-15 Lg 电子株式会社 使用去块滤波的图像编译方法和装置
KR20230156456A (ko) 2019-01-10 2023-11-14 후아웨이 테크놀러지 컴퍼니 리미티드 인트라 서브파티션 코딩 툴로 인한 서브파티션 경계를 위한 디블로킹 필터
US20220078416A1 (en) * 2019-02-27 2022-03-10 Sony Group Corporation Image processing device and image processing method
CN113661708B (zh) 2019-04-02 2023-12-15 北京字节跳动网络技术有限公司 基于双向光流的视频编解码和解码
KR102662024B1 (ko) 2019-04-19 2024-05-21 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 상이한 모션 벡터 정제의 그레디언트 계산
WO2020211866A1 (en) 2019-04-19 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Applicability of prediction refinement with optical flow process
CN113711609B (zh) 2019-04-19 2023-12-01 北京字节跳动网络技术有限公司 利用光流的预测细化过程中的增量运动矢量
CN114503596B (zh) * 2019-06-05 2023-12-29 北京字节跳动网络技术有限公司 运动矢量细化和其他编解码工具之间的相互作用
CN118214863A (zh) * 2019-09-11 2024-06-18 夏普株式会社 用于基于交叉分量相关性来减小视频编码中的重构误差的系统和方法
JP2023512694A (ja) * 2020-02-04 2023-03-28 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 高レベルシンタックスのシグナリングについてのエンコーダ、デコーダ、および対応する方法
KR20220138864A (ko) * 2020-02-26 2022-10-13 에이치에프아이 이노베이션 인크. 이미지 또는 비디오 프로세싱 시스템에서의 루프 필터 파라미터 시그널링 방법 및 장치

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7319415B2 (en) 2002-05-01 2008-01-15 Thomson Licensing Chroma deblocking filter
EP1507415A3 (en) 2003-07-16 2005-05-04 Samsung Electronics Co., Ltd. Video encoding/decoding apparatus and method for color image
CA2534695C (en) 2003-08-19 2011-10-25 Matsushita Electric Industrial Co., Ltd. Method for encoding moving image and method for decoding moving image
KR100896290B1 (ko) 2006-11-17 2009-05-07 엘지전자 주식회사 비디오 신호의 디코딩/인코딩 방법 및 장치
US9185430B2 (en) * 2010-03-15 2015-11-10 Mediatek Singapore Pte. Ltd. Deblocking filtering method and deblocking filter
US9094658B2 (en) * 2010-05-10 2015-07-28 Mediatek Inc. Method and apparatus of adaptive loop filtering
CN103404147B (zh) * 2011-03-10 2016-08-31 联发科技(新加坡)私人有限公司 去区块滤波器方法及装置
ES2715782T3 (es) * 2011-04-21 2019-06-06 Hfi Innovation Inc Procedimiento y aparato para un filtrado en bucle mejorado
ES2694301T3 (es) * 2011-10-31 2018-12-19 Hfi Innovation Inc. Procedimiento y aparato de desbloqueo de filtro con decisión de intensidad de límite simplificada
WO2013102293A1 (en) * 2012-01-04 2013-07-11 Mediatek Singapore Pte. Ltd. Improvements of luma-based chroma intra prediction
US20140078394A1 (en) * 2012-09-17 2014-03-20 General Instrument Corporation Selective use of chroma interpolation filters in luma interpolation process
WO2014107709A2 (en) * 2013-01-07 2014-07-10 Vid Scale, Inc. Enhanced deblocking filters for video coding

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190089426A (ko) * 2018-01-22 2019-07-31 삼성전자주식회사 아티팩트 감소 필터를 이용한 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치

Also Published As

Publication number Publication date
CN105532007B (zh) 2018-11-27
WO2015006662A2 (en) 2015-01-15
EP3020200A2 (en) 2016-05-18
US10412419B2 (en) 2019-09-10
JP2016526857A (ja) 2016-09-05
CN105532007A (zh) 2016-04-27
WO2015006662A3 (en) 2015-03-26
US20150016550A1 (en) 2015-01-15

Similar Documents

Publication Publication Date Title
US10412419B2 (en) Adaptive filtering in video coding
US11064195B2 (en) Merging filters for multiple classes of blocks for video coding
US10313682B2 (en) Determining regions when performing intra block copying
KR101726484B1 (ko) 크로마 슬라이스-레벨 qp 오프셋 및 디블록킹
KR102334126B1 (ko) 인트라 블록 복사를 위한 레지듀얼 예측
US9756327B2 (en) Quantization matrix and deblocking filter adjustments for video coding
KR101864910B1 (ko) 화소 레벨 적응 인트라-평활화
KR101719971B1 (ko) 비디오 코딩을 위한 크로마 데이터의 디블록킹
US20160105685A1 (en) Boundary filtering and cross-component prediction in video coding
KR20210015819A (ko) 블록-기반 적응 루프 필터 (alf) 설계 및 시그널링
US20130163664A1 (en) Unified partition mode table for intra-mode coding
KR20190089890A (ko) 비디오 코딩에서의 양방향 필터 사용의 표시
KR20160132915A (ko) 픽셀 거리를 이용한 디블록 필터링
CN107258081B (zh) 对使用非正方形分割编码视频数据的优化
BR112014024749B1 (pt) Método e aparelho para processar dados de vídeo e mídia de armazenamento não transitória legível por computador

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination