KR101719971B1 - 비디오 코딩을 위한 크로마 데이터의 디블록킹 - Google Patents

비디오 코딩을 위한 크로마 데이터의 디블록킹 Download PDF

Info

Publication number
KR101719971B1
KR101719971B1 KR1020147023153A KR20147023153A KR101719971B1 KR 101719971 B1 KR101719971 B1 KR 101719971B1 KR 1020147023153 A KR1020147023153 A KR 1020147023153A KR 20147023153 A KR20147023153 A KR 20147023153A KR 101719971 B1 KR101719971 B1 KR 101719971B1
Authority
KR
South Korea
Prior art keywords
filter
chroma
edges
sample values
apply
Prior art date
Application number
KR1020147023153A
Other languages
English (en)
Other versions
KR20140120346A (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 KR20140120346A publication Critical patent/KR20140120346A/ko
Application granted granted Critical
Publication of KR101719971B1 publication Critical patent/KR101719971B1/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/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
    • 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
    • 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/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/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

Landscapes

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

Abstract

비디오 코딩 디바이스는 샘플 값들의 어레이를 획득하도록 구성된다. 샘플 값들은 4:2:0, 4:2:2, 또는 4:4:4 크로마 포맷에 따라 포맷될 수도 있다. 비디오 코딩 디바이스는 어레이 내의 정의된 수평 에지들과 연관된 크로마 샘플 값들의 행들 (rows) 에 제 1 필터를 적용할지 여부를 결정한다. 비디오 코딩 디바이스는 정의된 수직 에지들과 연관된 크로마 샘플 값들의 열들 (columns) 에 제 2 필터를 적용할지 여부를 결정한다. 수평 및 수직 에지들은 디블록킹 그리드에 따라 다수의 크로마 샘플들에 의해 분리될 수도 있다.

Description

비디오 코딩을 위한 크로마 데이터의 디블록킹{DEBLOCKING CHROMA DATA FOR VIDEO CODING}
본 출원은:
2012년 1월 19일자로 출원된 미국 가출원 제 61/588,554 호; 및
2012년 9월 25일자로 출원된 미국 가출원 제 61/705,525 호의 이익을 주장하며, 각각의 전체 내용들이 참조로 여기에 포함된다.
본 개시는 비디오 코딩에 관한 것으로서, 특히 비디오 데이터를 재구성하기 위한 기법들에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비젼들, 디지털 다이렉트 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인용 휴대정보단말 (PDS) 들, 랩톱 또는 데스크톱 컴퓨터들, 태블릿 컴퓨터들, e-북 판독기들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화들, 소위 "스마트 폰들", 화상 회의 디바이스들, 비디오 스트리밍 디바이스들 등을 포함하여, 광범위한 디바이스들로 통합될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, AVC (Advanced Video Coding) 에 의해 정의된 표준들, 현재 개발중인 HEVC (High Efficiency Video Coding), 및 그러한 표준들의 확장들에 기술된 것들과 같은 비디오 압축 기법들을 구현한다. H.264 표준은 여기에서 H.264 표준 또는 H.264 사양, 또는 H.264/AVC 표준 또는 사양으로서 지칭될 수도 있는, 2005 년 3월자로, ITU-T 연구 그룹에 의한, ITU-T 추천 H.264, Advanced Video Coding for generic audiovisual services 에 기술되어 있다. 조인트 비디오 팀 (JVT) 는 H.264/MPEG-4 AVC 에 대한 확장들에 대해 계속해서 작업하고 있다. 비디오 디바이스들은 그러한 비디오 압축 기법들을 구현함으로써 더욱 효율적으로 디지털 비디오 정보를 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수도 있다.
HEVC (High Efficiency Video Coding) 테스트 모델 (HM) 은 코딩 단위들 (CUs) 로서 지칭되는 비디오 데이터의 블록들을 프로세싱한다. 최대 코딩 단위 (LCU) 는 4 개의 서브 CU 들로 파티셔닝될 수도 있으며, 이들 각각은 또한 4 개의 서브 CU 들로 EJJ 파티셔닝될 수도 있다. LCU 들 및 이들의 서브 CU 들은 일반적으로 간단히 CU 들로서 지칭된다. LCU 및 이들의 서브 CU 들의 파티셔닝은 쿼드트리 데이터 구조에서 시그널링된다. 따라서, LCU 의 파티셔닝되지 않은 CU 들은 쿼드트리 데이터 구조의 리프 (leaf) 노드들에 대응한다.
일반적으로, 본 개시는 비디오 데이터를 디블록킹 (deblocking) 하는 기법들을 기술한다. 특히, 본 개시는 4:2:2 또는 4:4:4 크로마 포맷에 따라 포맷된 비디오 데이터를 필터링하는데 유용할 수도 있는 기법들을 기술한다.
하나의 예에서, 재구성된 비디오 데이터를 필터링하는 방법은, 샘플 값들의 어레이를 획득하는 단계로서, 어레이는 4:2:2 크로마 포맷에 따라 포맷되는, 상기 어레이를 획득하는 단계; 어레이 내의 정의된 수평 에지들과 연관된 크로마 샘플 값들의 행들 (rows) 에 제 1 필터를 적용할지 여부를 결정하는 단계로서, 상기 정의된 수평 에지들은 16 개의 크로마 샘플 값들에 의해 분리되는, 상기 제 1 필터를 적용할지 여부를 결정하는 단계; 및 어레이 내의 정의된 수직 에지들과 연관된 크로마 샘플 값들의 열들 (columns) 에 제 2 필터를 적용할지 여부를 결정하는 단계로서, 상기 정의된 수직 에지들은 8 개의 크로마 샘플 값들에 의해 분리되는, 상기 제 2 필터를 적용할지 여부를 결정하는 단계를 포함한다.
하나의 예에서, 재구성된 비디오 데이터를 필터링하는 장치는, 샘플 값들의 어레이를 획득하는 것으로서, 어레이는 4:2:2 크로마 포맷에 따라 포맷되는, 상기 어레이를 획득하고; 어레이 내의 정의된 수평 에지들과 연관된 크로마 샘플 값들의 행들 (rows) 에 제 1 필터를 적용할지 여부를 결정하는 것으로서, 상기 정의된 수평 에지들은 16 개의 크로마 샘플 값들에 의해 분리되는, 상기 제 1 필터를 적용할지 여부를 결정하며; 어레이 내의 정의된 수직 에지들과 연관된 크로마 샘플 값들의 열들 (columns) 에 제 2 필터를 적용할지 여부를 결정하는 것으로서, 상기 정의된 수직 에지들은 8 개의 크로마 샘플 값들에 의해 분리되는, 상기 제 2 필터를 적용할지 여부를 결정하도록 구성된 비디오 코딩 디바이스를 포함한다.
하나의 예에서, 컴퓨터 프로그램 제품은 저장된 명령들을 갖는 컴퓨터 판독가능 저장 매체를 포함하고, 명령들은 실행 시에 재구성된 비디오 데이터를 필터링하는 디바이스의 하나 이상의 프로세서들로 하여금: 샘플 값들의 어레이를 획득하게 하는 것으로서, 어레이는 4:2:2 크로마 포맷에 따라 포맷되는, 상기 어레이를 획득하게 하고; 어레이 내의 정의된 수평 에지들과 연관된 크로마 샘플 값들의 행들 (rows) 에 제 1 필터를 적용할지 여부를 결정하게 하는 것으로서, 상기 정의된 수평 에지들은 16 개의 크로마 샘플 값들에 의해 분리되는, 상기 제 1 필터를 적용할지 여부를 결정하게 하며; 어레이 내의 정의된 수직 에지들과 연관된 크로마 샘플 값들의 열들 (columns) 에 제 2 필터를 적용할지 여부를 결정하게 하는 것으로서, 상기 정의된 수직 에지들은 8 개의 크로마 샘플 값들에 의해 분리되는, 상기 제 2 필터를 적용할지 여부를 결정하게 한다.
하나의 예에서, 재구성된 비디오 데이터를 필터링하는 장치는, 샘플 값들의 어레이를 획득하는 수단으로서, 어레이는 4:2:2 크로마 포맷에 따라 포맷되는, 상기 어레이를 획득하는 수단; 어레이 내의 정의된 수평 에지들과 연관된 크로마 샘플 값들의 행들 (rows) 에 제 1 필터를 적용할지 여부를 결정하는 수단으로서, 상기 정의된 수평 에지들은 16 개의 크로마 샘플 값들에 의해 분리되는, 상기 제 1 필터를 적용할지 여부를 결정하는 수단; 및 어레이 내의 정의된 수직 에지들과 연관된 크로마 샘플 값들의 열들 (columns) 에 제 2 필터를 적용할지 여부를 결정하는 수단으로서, 상기 정의된 수직 에지들은 8 개의 크로마 샘플 값들에 의해 분리되는, 상기 제 2 필터를 적용할지 여부를 결정하는 수단을 포함한다.
하나의 예에서, 재구성된 비디오 데이터를 필터링하는 방법은, 비디오 블록이 4:2:0, 4:2:2, 또는 4:4:4 크로마 포맷들 중 하나에 따라 포맷되는지를 결정하는 단계; 및 결정된 크로마 포맷에 기초하여 크로마 에지들을 디블록킹하는 단계를 포함하며, 여기서 디블록킹은 비디오 블록이 4:2:0 크로마 포맷에 따라 포맷되는 경우 8 x 8 디블록킹 그리드에, 비디오 블록이 4:2:2 크로마 포맷에 따라 포맷되는 경우 8 x 16 디블록킹 그리드에, 및 비디오 블록이 4:4:4 크로마 포맷에 따라 포맷되는 경우 16 x 16 디블록킹 그리드에 기초한다.
하나의 예에서, 재구성된 비디오 데이터를 필터링하는 장치는, 비디오 블록이 4:2:0, 4:2:2, 또는 4:4:4 크로마 포맷들 중 하나에 따라 포맷되는지를 결정하고; 결정된 크로마 포맷에 기초하여 크로마 에지들을 디블록킹하도록 구성된 비디오 코딩 디바이스를 포함하며, 여기서 디블록킹은 비디오 블록이 4:2:0 크로마 포맷에 따라 포맷되는 경우 8 x 8 디블록킹 그리드에, 비디오 블록이 4:2:2 크로마 포맷에 따라 포맷되는 경우 8 x 16 디블록킹 그리드에, 및 비디오 블록이 4:4:4 크로마 포맷에 따라 포맷되는 경우 16 x 16 디블록킹 그리드에 기초한다.
하나의 예에서, 컴퓨터 프로그램 제품은 저장된 명령들을 갖는 컴퓨터 판독가능 저장 매체를 포함하고, 명령들은 실행 시에 재구성된 비디오 데이터를 필터링하는 디바이스의 하나 이상의 프로세서들로 하여금: 비디오 블록이 4:2:0, 4:2:2, 또는 4:4:4 크로마 포맷들 중 하나에 따라 포맷되는지를 결정하게 하고; 및 결정된 크로마 포맷에 기초하여 크로마 에지들을 디블록킹하게 하며, 여기서 디블록킹은 비디오 블록이 4:2:0 크로마 포맷에 따라 포맷되는 경우 8 x 8 디블록킹 그리드에, 비디오 블록이 4:2:2 크로마 포맷에 따라 포맷되는 경우 8 x 16 디블록킹 그리드에, 및 비디오 블록이 4:4:4 크로마 포맷에 따라 포맷되는 경우 16 x 16 디블록킹 그리드에 기초한다.
하나의 예에서, 재구성된 비디오 데이터를 필터링하는 장치는, 비디오 블록이 4:2:0, 4:2:2, 또는 4:4:4 크로마 포맷들 중 하나에 따라 포맷되는지를 결정하는 수단; 및 결정된 크로마 포맷에 기초하여 크로마 에지들을 디블록킹하는 수단을 포함하며, 여기서 디블록킹은 비디오 블록이 4:2:0 크로마 포맷에 따라 포맷되는 경우 8 x 8 디블록킹 그리드에, 비디오 블록이 4:2:2 크로마 포맷에 따라 포맷되는 경우 8 x 16 디블록킹 그리드에, 및 비디오 블록이 4:4:4 크로마 포맷에 따라 포맷되는 경우 16 x 16 디블록킹 그리드에 기초한다.
하나 이상의 예들의 상세들이 첨부하는 도면들 및 이하의 상세한 설명에서 진술된다. 다른 특징들, 목적들, 및 이점들은 상세한 설명 및 도면들, 및 청구범위로부터 명백할 것이다.
도 1a 내지 도 1c 는 비디오 데이터에 대한 상이한 샘플 포맷들을 예시하는 개념도들이다.
도 2 는 4:2:0 샘플 포맷에 따라 포맷된 16 x 16 코딩 단위를 예시하는 개념도이다.
도 3 은 4:2:2 샘플 포맷에 따라 포맷된 16 x 16 코딩 단위를 예시하는 개념도이다.
도 4 는 디블록킹 그리드를 예시하는 개념도이다.
도 5 는 H.264 표준 추천에 포함된 도면의 재현이다.
도 6 은 2 개의 이웃하는 비디오 블록들 사이의 경계를 예시하는 개념도이다.
도 7 은 여기에 기술된 비디오 데이터의 재구성된 블록을 필터링하는 기법들을 사용할 수도 있는 예시의 비디오 인코딩 및 디코딩 시스템을 예시하는 블록도이다.
도 8 은 여기에 기술된 비디오 데이터의 재구성된 블록을 필터링하는 기법들을 사용할 수도 있는 예시의 비디오 인코더를 예시하는 블록도이다.
도 9 는 여기에 기술된 비디오 데이터의 재구성된 블록을 필터링하는 기법들을 사용할 수도 있는 예시의 비디오 디코더를 예시하는 블록도이다.
도 10 은 예시의 디블록커의 컴포넌트들을 예시하는 블록도이다.
도 11 은 여기에 기술된 기법들에 따라 비디오 데이터의 재구성된 블록을 필터링하는 것을 예시하는 개념도이다.
도 12 는 여기에 기술된 비디오 데이터의 재구성된 블록을 필터링하는 기법을 예시하는 흐름도이다.
일반적으로, HEVC 는 4:2:0 크로마 포맷에 따라 포맷된 비디오 데이터에 대해 디블록킹 필터들을 정의한다. 그러나, HEVC 는 4:2:2 또는 4:4:4 크로마 포맷들 중 어느 것에 따라 포맷된 비디오 데이터에 대해 디블록킹 필터들을 정의하지 않는다. HEVC 에서 정의된 디블록킹 필터들은 4:2:2 또는 4:4:4 크로마 포맷들 중 어느 것에 따라 포맷된 재구성된 비디오 데이터에 대해 충분한 주관적 품질을 전달하지 않을 수도 있다. 또, 이전의 비디오 코딩 포준들에서 정의된 디블록킹 필터들 및 HEVC 에 대해 제안된 디블록킹 필터들은 HEVC 에 따라 재구성된 비디오 데이터를 디블록 필터링 (deblock filtering) 하는데 비효율적일 수도 있다. 예를 들어, 4:2:2 및/또는 4:4:4 크로마 포맷들에 대해 재구성된 비디오 데이터를 디블록 필터링하는데 사용될 수도 있는 기법들이 여기에 기술된다.
HEVC (High Efficiency Video Coding) 로서 현재 지칭되는, 새로운 비디오 코딩 표준을 개발하려는 노력들이 현재 진행중이다. 다가오는 표준은 또한 H.265 로서 지칭된다. HEVC 표준은 또한 HEVC 의 전달된 버전에 대한 표준 넘버이도록 의도되는 ISO/IEC 23008-HEVC 로서 지칭될 수도 있다. HEVC 표준화 노력들은 HEVC 테스트 모델 (HM) 로 지칭되는 비디오 코딩 디바이스의 모델에 기초한다. HM 은 이전의 비디오 코딩 표준들의 개발 동안 이용가능한 비디오 코딩 디바이스들에 대한 비디오 코딩 디바이스들의 능력들에서의 개선들을 상정한다. 예를 들어, H.264 는 9 개의 인트라 예측 인코딩 모드들을 제공하는 반면, HEVC 는 35 개 정도의 인트라 예측 인코딩 모드들을 제공한다.
"HEVC Working Draft5" 또는 "WD5" 로서 지칭되는, HEVC 의 최근의 워킹 드래프트 (WD) 는 문서 JCT-VC G1103_d3, Bross et al., "High Efficiency Video Coding (HEVC) text specification draft 5", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 7th Meeting, Geneva, CH 에 기술되어 있다. "HEVC Working Draft 8" 또는 "WD8" 로서 지칭되는, HEVC 의 다른 최근의 워킹 드래프트 (WD), 워킹 드래프트 8 은 문서 HCTVC-J1003_d7, Bross et al., "High Efficiency Video Coding (HEVC) text specification draft 8", JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 10th Meeting: Stockholm, Sweden, July, 2012 에 기술되어 있다. HEVC 테스트 모델은 특별한 HEVC 워킹 드래프트에 대응할 수도 있다. 이 경우에, 테스트 모델은 넘버로 식별될 것이다. 예를 들어, HM5 는 HEVC WD5 에 대응할 수도 있다.
다가오는 HEVC 표준과 같은 비디오 코딩 표준에 따라 동작하는 통상의 비디오 인코더는 오리지널 비디오 시퀀스의 각 프레임 (즉, 화상) 을 "블록들" 또는 "코딩 단위들" 로 불리는 연속적인 직사각형 영역들로 파티셔닝한다. 이들 블록들은 비디오 시퀀스들에 고유한 리던던시를 감소시키거나 제거하기 위해 공간 (인트라-프레임) 예측 및/또는 시간 (인터-프레임) 예측 기법들을 적용함으로써 인코딩될 수도 있다. 공간 예측은 "인트라 모드" (I-모드) 로 지칭될 수도 있고, 시간 예측은 "인터 모드" (P-모드 또는 B-모드) 로서 지칭될 수도 있다. 예측 기법들은 참조 샘플들의 블록으로서 지칭될 수도 있는, 비디오 데이터의 예측 블록을 생성한다. 코딩될 오리지널 비디오 데이터의 블록은 예측 블록과 비교된다. 비디오 데이터의 오리지널 블록과 예측 블록 사이의 차이는 레지듀얼 데이터로서 지칭될 수도 있다. 레지듀얼 데이터는 통상 예측 블록과 비디오 데이터의 오리지널 블록의 화소 값들 사이의 차이의 어레이이다.
변환, 예를 들어, 이산 코사인 변환 (DCT), 인티저 변환, 웨이블릿 변환, 또는 개념적으로 유사한 변환이 변환 계수들의 대응하는 세트를 생성하기 위해 코딩 프로세스 동안 레지듀얼 데이터에 적용될 수도 있다. 따라서, 비디오의 오리지널 블록은 변환 계수들에 대한 역변환을 수행하고 예측 블록에 레지듀얼 데이터를 가산함으로써 재구성될 수 있다. 변환 계수들은 또한 양자화될 수도 있다. 즉, 변환 계수들의 값들은 정의된 비트 심도에 따라 비트 스트링으로서 표현될 수도 있다. 일부 경우들에서, 양자화는 제로로서의 낮은 값 변환 계수들의 표현을 야기할 수도 있다. 양자화된 변환 계수들은 변환 계수 레벨들로서 지칭될 수도 있다. 추가의 압축을 위해, 양자화된 변환 계수들은 무손실 엔트로피 인코딩 방법에 따라 엔트로피 인코딩될 수도 있다.
HEVC 에 따른 비디오 코딩의 경우, 비디오 프레임은 코딩 단위들로 파티셔닝될 수도 있다. 코딩 단위 (CU) 는 일반적으로 비디오 압축을 위해 여러 코딩 툴들이 적용되는 기본 단위로서 작용하는 직사각형 이미지 영역을 지칭한다. CU 는 통상 정사각형이고, 예를 들어, ITU-T H.264 와 같은 다른 비디오 코딩 표준들에 기술된 소위 "매크로블록" 과 유사한 것으로 고려될 수도 있다. 그러나, 매크로블록과 달리, CU 는 16 x 16 사이즈로 제한되지 않는다. CU 는 비디오 샘플 값들의 어레이로서 고려될 수도 있다. 비디오 샘플 값들은 또한 화소들, 픽셀들, 또는 펠 (pel) 들로서 지칭될 수도 있다. CU 의 사이즈는 수평 및 수직 샘플들의 수에 따라 정의될 수도 있다. 따라서, CU 는 N x N 또는 N x M CU 로서 기술될 수도 있다.
본 개시에서, "N x N" 및 "N by N" 은 수직 및 수평 차원들, 예를 들어 16 x 16 화소들 또는 16 by 16 화소들로 비디오 블록의 화소 차원들을 지칭하기 위해 상호교환적으로 사용될 수도 있다. 일반적으로, 16 x 16 블록은 수직 방향으로 16 개의 화소들 (y=16) 및 수평 방향으로 16 개의 화소들 (x=16) 을 가질 것이다. 마찬가지로, N x N 블록은 일반적으로 수직 방향으로 N 개의 화소들 및 수평 방향으로 N 개의 화소들을 가지며, 여기서 N 은 음수 아닌 정수 값을 나타낸다. 블록 내의 화소들은 행들 및 열들로 배열될 수도 있다. 또한, 블록들은 반드시 수직 방향에서와 동일한 수의 수평 방향에서의 화소들을 가질 필요는 없다. 예를 들어, 블록들은 N x M 화소들을 포함할 수도 있으며, 여기서 M 은 반드시 N 과 동일하지는 않다.
더 양호한 코딩 효율을 달성하기 위해, 쳐 는 비디오 컨텐츠에 따라 가변적인 사이즈들을 가질 수도 있다. CU 는 보통 Y 로 표시되는 루미넌스 컴포넌트, 및 U 및 V 로 표시되는 2 개의 크로마 컴포넌트들을 갖는다. 2 개의 크로마 컴포넌트들은 적색 휴 (hue) 들 및 청색 휴들에 대응할 수도 있고, Cb 및 Cr 에 의해 표시될 수도 있다. HEVC 에 따르면, 비트스트림 내의 신택스 데이터는 샘플들의 수에 의해 프레임 또는 화상에 대해 가장 큰 CU 인 최대 코딩 단위 (LCU) 을 정의할 수도 있다. CU 의 사이즈는 보통 수평 및 수직 루마 샘플들의 수에 따라 정의된다. 통상, LCU 는 64 x 64 또는 32 x 32 루마 샘플들을 포함한다. 다른 차원들의 CU 들은 LCU 를 서브 CU 들로 재귀적으로 파티셔닝함으로써 생성될 수도 있다. 비트스트림에 대한 신택스 데이터는 CU 심도로 지칭되는 LCU 가 분할될 수도 있는 최대 회수를 정의할 수도 있다. 이에 따라, 비트스트림은 또한 최소 코딩 단위 (SCU) 를 정의할 수도 있다. 통상, SCU 는 8 x 8 루마 샘플들을 포함한다. 따라서, 하나의 예에서, 4 개의 32 x 32 CU 들은 64 x 64 LCU 를 4 개의 서브 CU 들로 파티셔닝함으로써 생성될 수도 있고, 32 x 32 CU 들 각각은 16 개의 8 x 8 CU 들로 더 파티셔닝될 수도 있다. 일반적으로, 용어 코딩 단위 (CU) 는 LCU 또는 그의 임의의 서브 CU (예를 들어, LCU 의 서브 CU 또는 다른 서브 CU 의 서브 CU) 를 지칭할 수도 있다.
LCU 는 하나 이상의 노드들을 포함하는 쿼드트리 데이터 구조에 대응할 수도 있고, 여기서 쿼드트리의 루트 노드는 LCU 자신에 대응하고, 다른 노드들은 LCU 의 서브 CU 들에 대응한다. 따라서, LCU 는 또한 코딩 트리 단위 (coding tree unit: CTU) 로서 지칭될 수도 있다. 쿼드트리 데이터 구조는 레지듀얼 쿼드트리 (RQT) 로서 지칭될 수도 있다. 파티셔닝되지 않은 CU 는 일반적으로 쿼드트리의 리프 노드 (즉, 임의의 차일드 노드들을 갖지 않는 쿼드트리의 노드) 에 대응한다.
리프 노드 CU 들은 일반적으로 CU 에 대해 데이터가 예측되는 방법을 기술하는 하나 이상의 예측 단위들 (PUs), 및 하나 이상의 변환 단위들 (TUs) 을 포함한다. PU 는 대응하는 CU 의 전부 또는 일부를 나타낼 수도 있고, PU 에 대해 참조 샘플을 취출하기 위한 데이터를 포함할 수도 있다. PU 들은 정사각형 또는 직사각형 형상들을 가질 수도 있다. 예를 들어, CU 가 인터 예측을 사용하여 코딩되는 경우, 그것은 4 개의 직사각형 PU 들로 포함될 수도 있고, 각각의 PU 는 시간적으로 인접한 프레임 내의 세트 참조 샘플들을 식별하는 정보를 포함한다. 참조 샘플들의 세트들은 예측 비디오 블록을 형성하도록 결합될 수도 있다. 상술된 바와 같이, 예측 비디오 블록은 레지듀얼 데이터를 형성하기 위해 CU 로부터 감산될 수도 있다. HEVC WD5 는 다음의 정의된 PU 타입들을 포함한다: 2N x 2N, N x N, 2N x N, N x 2N, 2N x nU, 2N x nD, nR x 2N, 및 nL x 2N. 또, ITU-T H.264 표준은 루마 컨포넌트들에 대해 16 바이 16, 8 바이 8, 또는 4 바이 4, 및 크로마 컴포넌트들에 대해 8 바이 8 과 같은 여러 블록 사이즈들에서의 인트라 예측 뿐아니라, 루마 컴포넌트들에 대해 16 x 16, 16 x 8, 8 x 16, 8 x 8, 8 x 4, 4 x 8 및 4 x 4 및 크로마 컴포넌트들에 대해 대응하는 스케일링된 사이즈들과 같은 여러 블록 사이즈들에서의 인터 예측을 지원한다.
상술된 바와 같이, 변환은 화소 도메인으로부터 변환 도메인으로 레지듀얼 데이터를 변환하기 위해 레지듀얼 데이터에 적용될 수도 있다. TU 또는 변환 블록은 변환이 적용되는 레지듀얼 데이터의 세트에 대응할 수도 있다. TU 들은 변환을 수행하고 변환 계수들의 대응하는 세트를 생성할 목적으로 화소 차이 값들의 세트의 사이즈를 나타낸다. TU 의 사이즈는 CU 의 사이즈와 동일할 수도 있거나, 또는 CU 는 복수의 TU 들로 파티셔닝될 수도 있다. 예를 들어, 하나의 변환이 루마 샘플들의 16 x 16 어레이와 연관된 레지듀얼 값들에 대해 수행될 수도 있고, 또는 변환이 루마 샘플들의 4 개의 8 x 8 어레이들에 대해 수행될 수도 있다. 더 큰 TU들은 일반적으로 재구성된 이미지 내에 더 지각가능한 "블록키니스 (blockiness)" 를 갖는 더 많은 압축을 제공하는 반면, 더 작은 TU 들은 일반적으로 덜 지각가능한 "블록키니스" 를 갖는 더 적은 압축을 제공한다. TU 사이즈들의 선택은 레이트-왜곡 최적화 분석에 기초할 수도 있다. 레이트-왜곡 분석은 일반적으로 재구성된 블록과 오리지널 (즉, 인코딩되지 않은 블록) 사이의 왜곡 (또는 에러) 의 양 뿐아니라 블록을 인코딩하는데 사용되는 비트레이트 (즉, 비트들의 수) 를 결정한다.
LCU 와 유사하게, TU 는 더 작은 TU 들로 재귀적으로 파티셔닝될 수도 있다. TU 들을 더 작은 TU 들로 파티셔닝하는 것으로부터 야기되는 TU 들은 변환 블록 구조로서 지칭될 수도 있다. 변환 블록 구조의 예는 소위 트리 구조이다. 트리 구조는 변환 블록을 전체의 TU 인 것으로서 또는 다수의 더 작은 TU 들로 분할되는 것으로서 코딩할 수도 있다. 이러한 프로세스는 매 상이한 분해 레벨들에서 각 블록에 대해 재귀적으로 행해질 수 있다.
따라서, HEVC 에 따르면, CU 는 하나 이상의 예측 단위들 (PU 들) 및/또는 하나 이상의 변환 단위들 (TU 들) 을 포함할 수도 있다. 본 개시는 또한 CU, PU 또는 TU 의 임의의 것을 지칭하기 위해 용어 "블록", "파티션", 또는 "부분" 을 사용한다. 일반적으로, "부분" 은 비디오 프레임의 임의의 서브 세트를 지칭할 수도 있다. 또, 본 개시는 통상적으로 CU 의 코딩 노드를 지칭하기 위해 용어 "비디오 블록" 을 사용한다. 일부 특정의 경우들에서, 본 개시는 또한 코딩 노드 및 PU 들 및 TU 들을 포함하는 트리블록, 즉 LCU 또는 CU 를 지칭하기 위해 용어 "비디오 블록" 을 사용할 수도 있다. 따라서, 비디오 블록은 CU 내의 코딩 노드에 대응할 수도 있고, 비디오 블록들은 고정되거나 변화하는 사이즈들을 가질 수도 있으며, 특정된 코딩 표준에 따라 사이즈에 있어서 상이할 수도 있다.
크로마 포맷으로도 지칭될 수도 있는 비디오 샘플링 포맷은 CU 에 포함된 루마 샘플들의 수에 대한 CU 에 포함된 크로마 샘플들의 수를 정의할 수도 있다. 크로마 컴포넌트들에 대한 비디오 샘플링 포맷에 따라, U 및 V 컴포넌트들의, 샘플들의 수에 의한 사이즈는 Y 컴포넌트의 사이즈와 동일하거나 상이할 수도 있다. H.264/AVC 및 HEVC WD5 비디오 코딩 표준들에서, chroma_format_idc 로 불리는 값은 루마 컴포넌트에 대해, 크로마 컴포넌트들의 상이한 샘플링 포맷들을 나타내도록 정의된다. HEVC WD8 에서, chroma_format_idc 는 시퀀스 파라미터 세트 (SPS) 를 사용하여 시그널링된다. 표 1 은 chroma_format_idc 의 값들과 연관된 크로마 포맷들 사이의 관계를 예시한다.
chroma_format_idc 크로마 포맷 SubWidthC SubHeightC
0 모노크롬 - -
1 4:2:0 2 2
2 4:2:2 2 1
3 4:4:4 1 1
표 1: H.264/AVC 에서 정의된 상이한 크로마 포맷들
표 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 크로마 포맷" 은 YUV 칼라 공간 또는 RGB 칼라 공간 중 어느 것을 참조할 수도 있고, 여기서 샘플들의 수는 모든 칼라 컴포넌트들에 대해 동일하다.
도 1a 내지 도 1c 는 비디오 데이터에 대한 상이한 샘플 포맷들을 예시하는 개념도들이다. 도 1a 는 4:2:0 샘플 포맷을 예시하는 개념도이다. 도 1a 에 예시된 바와 같이, 4:2:0 샘플 포맷의 경우, 크로마 컴포넌트들은 루마 컴포넌트의 사이즈의 1/4 이다. 따라서, 4:2:0 샘플 포맷에 따라 포맷된 CU 의 경우, 크로마 컴포넌트의 모든 샘플에 대해 4 개의 루마 샘플들이 존재한다. 도 1b 는 4:2:2 샘플 포맷을 예시하는 개념도이다. 도 1b 에 예시된 바와 같이, 4:2:2 샘플 포맷의 경우, 크로마 컴포넌트들은 루마 컴포넌트들의 사이즈의 1/2 이다. 따라서, 4:2:2 샘플 포맷에 따라 포맷된 CU 의 경우, 크로마 컴포넌트의 모든 샘플에 대해 2 개의 루마 샘플들이 존재한다. 도 1c 는 4:4:4 샘플 포맷을 예시하는 개념도이다. 도 1c 에 예시된 바와 같이, 4:4:4 샘플 포맷의 경우, 크로마 컴포넌트들은 루마 컴포넌트와 동일한 사이즈이다. 따라서, 4:4:4 샘플 포맷에 따라 포맷된 CU 의 경우, 크로마 컴포넌트의 모든 샘플에 대해 1 개의 루마 샘플이 존재한다.
도 2 는 4:2:0 샘플 포맷에 따라 포맷된 16 x 16 코딩 단위의 예를 예시하는 개념도이다. 도 2 는 CU 내의 루마 샘플들에 대한 크로마 샘플들의 상대 위치를 도시한다. 상술된 바와 같이, CU 는 통상적으로 수평 및 수직 루마 샘플들의 수에 따라 정의된다. 따라서, 도 2 에 예시된 바와 같이, 4:2:0 샘플 포맷에 따라 포맷된 16 x 16 CU 는 루마 컴포넌트들의 16 x 16 샘플들 및 각 크로마 컴포넌트에 대해 8 x 8 샘플들을 포함한다. 또, 상술된 바와 같이, CU 는 더 작은 CU 들로 파티셔닝될 수도 있다. 예를 들어, 도 2 에 예시된 CU 는 4 개의 8 x 8 CU 들로 파티셔닝될 수도 있고, 여기서 각각의 8 x 8 CU 는 루마 컴포넌트에 대해 8 x 8 샘플들 및 각각의 크로마 컴포넌트에 대해 4 x 4 샘플들을 포함한다.
도 3 은 4:2:2 샘플 포맷에 따라 포맷된 16 x 16 코딩 단위의 예를 예시하는 개념도이다. 도 3 은 CU 내의 루마 샘플들에 대한 크로마 샘플들의 상대 위치를 도시한다. 상술된 바와 같이, CU 는 통상적으로 수평 및 수직 루마 샘플들의 수에 따라 정의된다. 따라서, 도 3 에 예시된 바와 같이, 4:2:2 샘플 포맷에 따라 포맷된 16 x 16 CU 는 루마 컴포넌트들의 16 x 16 샘플들 및 각 크로마 컴포넌트에 대해 8 x 16 샘플들을 포함한다. 또, 상술된 바와 같이, CU 는 더 작은 CU 들로 파티셔닝될 수도 있다. 예를 들어, 도 3 에 예시된 CU 는 4 개의 8 x 8 CU 들로 파티셔닝될 수도 있고, 여기서 각각의 CU 는 루마 컴포넌트에 대해 8 x 8 샘플들 및 각각의 크로마 컴포넌트에 대해 4 x 8 샘플들을 포함한다.
HEVC 는 "블록키니스" 아티팩트들을 제거하기 위해 디블록킹 필터들을 사용하여 디블록킹하는 것을 제공한다. 프레임을 블록들 (LCU 들 및 그것의 서브 CU 들) 로 분할하고, 블록들을 코딩하며, 그 후 블록들을 디코딩한 후, 블록들 사이의 경계들에서 지각가능한 아티팩트들이 발생할 수도 있다. 블록킹 아티팩트들은 통상적으로 TU 또는 PU 경계들에서 발생한다. 디블록킹 또는 디블록 필터링은 프레임에 대해 블록키니스 아티팩트들의 출현을 제거하기 위해 재구성된 비디오 블록들의 경계 샘플들의 값들을 변경하는 프로세스를 지칭한다. 예를 들어, CU 의 경계 샘플들 및 인접한 CU 의 경계 샘플들은 하나의 CU 로부터 다른 CU 로의 천이가 뷰어에게 덜 명백하도록 "평활화" 될 수도 있다.
또한, 비디오 인코더들은 프레임의 비디오 데이터를 인코딩하고, 후속하여 인코딩된 비디오 데이터를 디코딩하며, 그 후 참조 비디오 데이터로서 사용하기 위해 디코딩된 비디오 데이터에 디블록킹 필터들을 적용할 수도 있다. 참조 데이터는 예를 들어 후속하여 코딩된 비디오 데이터의 인터-예측을 위해 비디오 인코더가 사용할 수도 있는 하나 이상의 프레임들로부터의 데이터일 수도 있다. 비디오 인코더는 인터-예측을 위해 참조 화상 기억장치 내에 하나 이상의 프레임들을 저장할 수도 있다. 참조 데이터로서 사용하기 위해 디코딩된 비디오 데이터를 저장하기 전에, 비디오 인코더 또는 비디오 디코더와 같은 비디오 코딩 디바이스에 의해 수행된 그러한 디블록킹 필터링은 일반적으로 "인-루프 (in-loop)" 필터링으로 지칭된다. "인-루프" 필터링에서, 비디오 인코더 또는 디코더는 비디오 루프 내에서 디블록킹을 수행할 수도 있다. 비디오 인코더들은 미가공 (raw) 비디오 데이터를 수신하는 것으로 시작하여, 비디오 데이터를 인코딩하고, 그 데이터를 디블록킹하며, 참조 화상 기억장치 내에 디블록킹된 프레임들을 저장한다.
비디오 디코더들은 수신된 비디오 데이터를 디코딩하고, 그 후 디코딩될 후속 비디오 데이터에 대해 참조로서 사용하기 위해 디코딩된 비디오 데이터에 동일한 디블록킹 필터들을 적용하도록 구성될 수도 있다. 인코더들 및 디코드들 양자 모두를 동일한 디블록킹 기법들을 적용하도록 구성함으로써, 인코더들 및 디코더들은 동기화될 수 있어, 디블록킹이 참조를 위해 디블록킹된 비디오 데이터를 사용하는 후속하여 코딩된 비디오 데이터에 대해 에러를 도입하지 않도록 한다. 또한, 비디오 디코더들은 비디오 데이터를 디스플레이할 목적으로 재구성된 비디오 데이터를 디블록킹하도도록 구성될 수도 있다. 이 경우에, 비디오 디코더는 재구성된 비디오 데이터의 주관적 품질을 향상시키기 위해 디블록킹을 수행할 수도 있다. 이러한 경우에, 비디오 디코더는 디블록킹을 수행할 방법을 결정하기 위해 인코딩된 비디오 데이터에 포함된 정보에 의존할 수도 있다. 또, 비디오 디코더는 재구성된 비디오 데이터를 분석하고 포스트 (post) 프로세싱 동작에 따라 디블록킹을 수행할 수도 있다. 이러한 타입의 디블록킹은 포스트 루프 디블록킹으로서 지칭될 수도 있다.
디블록킹은 수직 경계들, 수평 경계들, 또는 수직 및 수평 경계들 양자 모두에 대해 수행될 수도 있다. HEVC 에서, 경계에 대해 필터링해야 할지 여부에 대한 결정은 소위 경계 필터링 강도 변수, bS 에 기초한다. bS 는 주로 CU 를 재구성하기 위해 사용된 예측 모드에 기초하여 결정된다. 예를 들어, 경계에 이웃하는 블록의 루마 컴포넌트가 인트라인 경우, bS 의 값은 적어도 2 이다. HEVC 는 단지 4:2:0 샘플 포맷에 따라 포맷된 CU 들에 대해 디블록킹하는 것만을 기술하고, 4:2:2 또는 4:4:4 샘플 포맷들 중 어느 것에 따라 포맷된 CU 들에 대해 디블록킹하는 것을 기술하지 않는다.
디블록킹 그리드는 디블록킹될 수도 있는 에지들을 정의할 수도 있다. 도 4 는 샘플 값들의 어레이 및 디블록킹될 수도 있는 가능한 에지들을 예시하는 개념도이다. 도 4 에 예시된 어레이는 상술된 바와 같이 CU 들의 조합에 대응할 수도 있다. 예를 들어, 다음의 크로마 포맷들 4:2:0, 4:2:2, 또는 4:4:4 중 임의의 것에 따라 포맷된 다음의 사이즈들 4 x 4, 8 x 8, 16 x 16, 32 x 32 또는 64 x 64 중 임의의 것의 CU 들의 조합은 N x N 샘플 값들의 어레이를 형성할 수도 있다. 도 4 에 예시된 바와 같이, 5 개의 수직 에지들 (즉, V0-V4) 및 5 개의 수평 에지들 (즉, H0-H4) 이 어레이에 대해 정의된다. 디블록킹 그리드는 경계들 (V0-V4 및 H0-H4) 중 어느 것이 디블록킹되는지를 나타낼 수도 있다.
도 5 는 H.264 표준 추천 ("Recommendation ITU-T H.264: Advanced video coding for generic audiovisual services," ITU-T, Mar. 2010) 에 포함된 도 8-10 의 재현이며, 이것은 그 전체가 참조로 포함된다. 도 8-10 은 매크로블록의 경계들이 디블록킹되는 때를 나타내기 위해 H.264 표준 추천에서 사용된다. 상술된 바와 같이, H.264 에서의 매크로블록은 16 x 16 화소들이다. 따라서, 도 8-10 에 예시된 각 블록은 4 x 4 루마 샘플들을 포함한다. 각 블록 내의 크로마 샘플들의 수는 매크로블록이 각각 4:2:0, 4:2:2, 및 4:4:4 크로마 포맷들에 따라 포맷되는지 여부에 기초하여 2 x 2, 2 x 4, 또는 4 x 4 중 하나이다. H.264 표준 추천은 인-루프 디블록킹 필터가 크로마 포맷 및 변환 사이즈들에 따라 경계들에 적용될 수도 있다는 것을 특정한다. H.264 에서, 이용가능한 변환 사이즈들은 4 x 4 및 8 x 8 을 포함한다. 아래는 H.264 표준 추천으로부터의 발췌이다.
transform_size_8x8_flag 에 따라, [도 5] 에서의 에지들을 루마 에지들로서 해석할 때, 다음이 적용된다.
- transform_size_8x8_flag 가 0 과 동일한 경우, 양 타입들, 굵은 실선 및 굵은 점선 루마 에지들이 필터링된다.
- 그렇지 않은 경우 (transform_size_8x8_flag 가 1 과 동일한 경우), 굵은 실선 루마 에지들만이 필터링된다.
ChromaArrayType 에 따라, [도 5] 에서의 에지들을 크로마 에지들로서 해석할 때, 다음이 적용된다.
- ChromaArrayType 이 1 (4:2:0 포맷) 과 동일한 경우, 굵은 실선 크로마 에지들만이 필터링된다.
- 그렇지 않고, ChromaArrayType 이 2 (4:2:2 포맷) 과 동일한 경우, 굵은 실선 수직 크로마 에지들이 필터링되고, 양 타입들, 굵은 실선 및 굵은 점선 수평 크로마 에지들이 필터링된다.
- 그렇지 않고, ChromaArrayType 이 3 (4:4:4 포맷) 과 동일한 경우, 다음이 적용된다.
- transform_size_8x8_flag 가 0 과 동일한 경우, 양 타입들, 굵은 실선 및 굵은 점선 크로마 에지들이 필터링된다.
- 그렇지 않은 경우 (transform_size_8x8_flag 가 1 과 동일한 경우), 굵은 실선 크로마 에지들만이 필터링된다.
- 그렇지 않은 경우 (ChromaArrayType 이 0 과 동일한 경우), 어떠한 크로마 에지들도 필터링되지 않는다.
표 2 는 H.264 에 대해 사용되는 디블록 그리드 사이즈들의 개요를 제공한다. 표 2 에 예시된 바와 같이, H.264/AVC 디블록킹 필터는 4:2:0 및 4:2:2 크로마 포맷들에 대해 크로마 에지들을 프로세싱하는 경우 크로마 샘플들의 4 x 4 그리드를 사용한다.
크로마
포맷
디블록킹 그리드 (수평x수직 루마) 디블록킹 드리드 (수평x수직 서브샘플링된 크로마)
4 x 4 변환 8 x 8 변환
4:2:0 4 x 4 8 x 8 4 x 4
4:2:2 4 x 4 8 x 8 4 x 4
4:4:4
4 x 4
8 x 8
4 x 4 변환 8 x 8 변환
4 x 4 8 x 8
표 2: H.264 디블록킹 요약
역으로, HEVC WD5 에 대해 제안된 HM5 인-루프 디블록킹 필터는 4:2:0 크로마 포맷에 대해 루마 샘플을 프로세싱하는 경우에 루마 샘플들의 8 x 8 그리드를, 및 크로마 에지들을 프로세싱하는 경우에는 크로마 샘플들의 8 x 8 그리드를 사용한다. HM5 인-루프 디블록킹 필터는 bS 의 값이 2 와 같을 때 루마 및 크로마 에지들을 프로세싱한다. 상술된 바와 같이, 4:2:2 및 4:4:4 크로마 포맷들의 디블록킹은 JCT-VC 에 의해 HEVC 에 대해 채택되지 않았다.
그 전체가 여기에 포함되는, A. Norkin, K. Andersson, R. Sjoberg, Q. Huang, J. An, X. Guo, S. Lei, "CE12: Ericsson's and Mediatek's deblocking filter," 6th JCT-VC Meeting, Torino, Italy, July 2011, Doc. JCTVC-F118 (이하, "노킨 (Norkin)") 은 4:2:2 및 4:4:4 크로마 포맷들에 대한 HM5 디블록킹 필터의 확장을 제안한다. 노킨은 루마 컴포넌트에 대해 8 x 8 디블록킹 그리드 및 CU 가 각각의 4:2:0, 4:2:2 및 4:4:4 크로마 포맷들에 따라 포맷되는지 여부에 기초하여 크로마 샘플들에 대해 각각의 4 x 4, 4 x 8, 및 8 x 8 디블록킹 그리드들을 사용하는 것을 제안했다. 실제로는, 노킨 제안은 크로마 컴포넌트들이 루마 해상도로 업샘플링되는 경우 등가의 8 x 8 루마 그리드에 대해 크로마 디블록킹을 적용할 것이다. 표 3 은 크로마 필터링 그리드에 관한 노킨의 제안을 요약한다.
크로마
포맷
디블록킹 그리드
(수평x수직 루마)
디블록킹 그리드
(수평x수직 서브샘플링된 크로마)
4:2:0 8 x 8 4 x 4
4:2:2 8 x 8 4 x 8
4:4:4 8 x 8 8 x 8
표 3: 노킨 디블록킹 요약
표 3 에 대해 기술된 기법들은 HM5 와 비교할 때 디블록킹 필터링될 크로마 에지들의 수를 증가시킬 수도 있다. 즉, HM5 는 4:2:0 포맷의 경우에 8 x 8 그리드를 사용하여 크로마 에지들을 프로세싱하도록 구성되는 반면, 노킨은 4 x 4 그리드를 사용하여 크로마 에지들을 프로세싱하는 것을 제안한다. 따라서, 표 3 에 대해 기술된 기법들은 HM5 와 비교할 때 디블록 필터링될 크로마 에지들의 수를 증가시킬 수도 있다. 또한, 4:2:2 크로마 포맷의 경우에, 노킨은 루마 컴포넌트에 대해 8 x 8 디블록킹 그리드를, 그리고 크로마 컴포넌트들에 대해 4 x 8 디블록킹 그리드를 제안한다. 일부 경우들에서, 노킨에 기술된 그러한 필터링 기법들은 비효율적일 수도 있다. 즉, 디블록킹을 적용함으로써 달성된 지각된 비디오 품질에서의 임의의 향상들은 필터링 동작들의 수를 적용하는데 사용되는 계산상 비용에 의해 정당화되지 않을 수도 있다.
HEVC 에서, 어느 경계들이 필터링되는지가 결정된 후, 어느 타입의 디블록킹 필터가 각 경계에 적용되는지에 대한 결정이 행해진다. HEVC WD8 은 2 가지 타입들의 디블록킹 필터들, 노르말 (Normal) 필터 (약한 필터로도 지칭됨) 및 스트롱 필터를 포함한다. 노르말 및 스트롱 필터가 상이한 하나의 방식은 경계의 각 사이드에서 변경될 수도 있는 샘플들의 수에 있어서이다. 노르말 필터는 경계의 각 사이드에서 1 내지 2 개의 샘플들을 변경하는 반면, 스트롱 필터는 경계의 각 사이드에서 최대 3 개의 샘플들을 변경한다. HEVC WD8 에서, 경계에 노르말 또는 스트롱 필터를 적용할지 여부에 대한 결정은 일반적으로 bS 에 기초하며지만, 그 결정은 다른 변수들에 기초한 수개의 논리적 동작들을 수반한다. 간결성을 위해, HEVC WD8 에서 노르말 또는 스트롱 필터를 적용할지 여부를 결정하는 프로세스에 대한 완전한 논의는 여기에서 논의되지 않는다. 그러나, HEVC WD8 의 관련 부분들에 대한 참조가 행해진다.
도 6 은 2 개의 이웃하는 비디오 블록들 사이의 경계를 예시하는 개념도이다. 도 6 에 예시된 예에서는 나란한 블록들이 도시되지만, 유사한 디블록킹 기법들이 상하로 이웃하는 블록들에 대해 적용될 수도 있다는 것이 이해되어야 한다. 도 6 은 에지 (606) 를 갖는 블록들 (602, 604) 를 도시한다. 도 6 에 예시된 예에서, 블록들 (602 및 604) 은 양자 모두 정사각형이고 샘플값들 (p 및 q) 의 각각의 8 x 8 어레이들을 포함한다. 샘플값들 (p 및 q) 은 루마 샘플 값들에 대응할 수도 있고, 이 경우에 블록들 (602 및 604) 은 8 x 8 CU 들에 대응할 수도 있다. 또한, 샘플값들 (p 및 q) 은 크로마 샘플 값들에 대응할 수도 있고, 이 경우에 블록들 (602 및 604) 은 크로마 샘플들의 8 x 8 어레이들을 야기하는 특정의 크로마 포맷에 따라 포맷된 여러 사이즈들의 CU 들의 조합에 대응할 수도 있다. 표 4 는 HEVC WD8 에 개시된 스트롱 및 노르말 필터들의 단순화된 버전들을 제공한다. 즉, 간결성과 명확성을 위해, HEVC WD8 에 기술된 양자화 파라미터에 기초한 여러 클립핑 기능들은 표 4 에서의 필터들로부터 제거되었다. HEVC WD8 에서의 여러 클립핑 기능들은 표 4 에 포함된 필터들에 의해 변경된 샘플 값들의 전부보다 더 적은 샘플 값들이 변경되는 것을 허용한다.
표 4 는 블록들 (602 및 604) 에서의 각각의 샘플 값들이 스트롱 필터 또는 노르말 필터 중 어느 하나에 의해 변경되는 방법을 예시한다. 표 4 에서의 스트롱 필터는 루마 컴포넌트에 적용되는 HEVC WD8 에서의 정의된 스트롱 필터에 대응한다. 표 4 에서의 노르말 필터 (1) 는 루마 컴포넌트에 적용되는 HEVC WD8 에서의 정의된 노르말 필터에 대응한다. 표 4 에서의 노르말 필터 (2) 는 크로마 컴포넌트에 적용되는 HEVC WD8 에서의 정의된 노르말 필터에 대응한다. 표 4 에 예시된 바와 같이, 스트롱 필터는 경계의 각 사이드에서 3 개의 화소 값들을 변경하고, 노르말 필터 (1) 는 경계의 각 사이드에서 2 개의 샘플 값들을 변경하며, 노르말 필터 (2) 는 경계의 각 사이드에서 1 개의 샘플 값을 변경한다.
Figure 112014078506106-pct00001
현재, HEVC WD8 메인 프로파일은 4:2:0 크로파 포맷에 제한된다. 또한, HEVC WD8 에서의 크로마 디블록킹 필터는, 그것이 인트라 코딩된 블록 에지들 및 서브샘플링된 크로마 컴포넌트들에 대해 8 x 8 샘플 그리드로 제한되기 때문에, H.264/AVC 디블록킹 필터보다 더 낮은 복잡도를 갖는다. HEVC WD8 에서 정의된 디블록킹 필터들은 4:2:0 비디오 데이터에 적용되는 경우 적당한 주관적 품질을 제공할 수도 있는 반면, HEVC WD8 에서 정의된 단순화된 크로마 디블록킹 필터는 4:2:2 또는 4:4:4 크로마 포맷들을 포함하는 장래의 HEVC 프로파일들에 대해 충분한 품질을 전달하지 않을 수도 있다.
본 개시의 기법들은 4:2:2 또는 4:4:4 크로마 포맷들 중 어느 것에 따라 포맷된 재구성된 비디오 데이터의 개선된 디블록킹을 제공할 수도 있다. 상술된 바와 같이, 노킨은 4:2:2 크로마 포맷에 따라 포맷된 비디오 데이터에 대해 루마 컴포넌트들에 대해 8 x 8 디블록킹 그리드를, 그리고 크로마 컴포넌트들에 대해 4 x 8 디블록킹 그리드를 사용하는 것을 제안한다. 따라서, 4:2:2 크로마 포맷에 따라 포맷된 4 개의 이웃하는 8 x 8 블록들의 경우에, 노킨은 각각의 칼라 컴포넌트에 대해 3 개의 수직 에지들 및 3 개의 수평 에지들을 디블록 필터링하는 것을 제안하여, 18 개의 총 필터링 동작들을 산출한다. 일부 경우들에서, 그러한 필터링은 비효율적일 수도 있다. 즉, 디블록킹을 적용함으로써 달성된 지각된 비디오 품질에서의 임의의 개선들은 필터링 동작들의 수를 적용하는데 사용되는 계산상 비용에 의해 정당화되지 않을 수도 있다. 또, 노킨은 일 타입의 디블록킹 필터가 적용되는지 여부를 결정할 때 수평 및 수직 경계들 사이를 구별하지 않는다. 비디오 블록의 수평 에지들에 노르말 또는 스트롱 필터 중 어느 것을 적용하는 것은 블록키니스의 출현을 상당히 감소시킬 수도 있어서 수직 에지들에 동일한 필터 또는 임의의 디블록킹 필터를 적용하는 것이 비효율적일 수도 있다. 본 개시는 노킨에 비해 필터 동작들의 수를 감소시키고 수평 디블록킹에 기초하여 수직 디블록킹을 수행할지 여부를 결정함으로써 비디오 데이터에 대해 더욱 효율적인 필터링을 제공할 수도 있는 기법들을 기술한다.
도 7 은 재구성된 비디오 데이터의 어레이를 디블록킹하도록 구성될 수도 있는 예시의 비디오 인코딩 및 디코딩 시스템 (10) 을 도시하는 블록도이며, 여기서 비디오 데이터는 4:2:0, 4:2:2, 또는 4:4:4 크로마 포맷들 중 하나에 따라 포맷된다. 도 7 에 도시된 바와 같이, 시스템 (10) 은 통신 채널 (16) 을 통해 목적지 디바이스 (14) 로 인코딩된 비디오를 송신하는 소스 디바이스 (12) 를 포함한다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 광범위한 디바이스들의 임의의 것을 포함할 수도 있다. 일부 경우들에서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 무선 핸드셋들, 소위 셀룰러 또는 위성 무선전화들과 같은 무선 통신 디바이스들, 또는 통신 채널 (16) 을 통해 비디오 정보를 통신할 수 있는 임의의 무선 디바이스들을 포함할 수도 있으며, 이 경우에 통신 채널 (16) 은 무선이다. 그러나, 본 개시의 기법들은 반드시 무선 애플리케이션들 또는 세팅들에 제한되지는 않는다. 예를 들어, 이들 기법들은 공중 텔레비젼 브로드캐스트들, 케이블 텔레비젼 송신들, 위성 텔레비전 송신들, 인터넷 비디오 송신들, 저장 매체로 인코딩되는 인코딩된 디지털 비디오, 또는 다른 시나리오들에 적용될 수도 있다. 이에 따라, 통신 채널 (16) 은 인코딩된 비디오 데이터의 송신 또는 저장에 적합한 무선, 유선 또는 저장 매체의 임의의 조합을 포함할 수도 있다.
도 7 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 변조기/복조기 (모뎀) (22), 및 송신기 (24) 를 포함한다. 목적지 디바이스 (14) 는 수신기 (26), 모뎀 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 본 개시에 따르면, 소스 디바이스 (12) 의 비디오 인코더 (20) 는 재구성된 비디오 데이터의 어레이를 디블록킹하는 기법들을 적용하도록 구성될 수도 있으며, 여기서 비디오 데이터는 4:2:0, 4:2:2, 또는 4:4:4 크로마 포맷들 중 하나에 따라 포맷된다. 다른 예들에서, 소스 디바이스 및 목적지 디바이스는 다른 컴포넌트들 및 배열들을 포함할 수도 있다. 예를 들어, 소스 디바이스 (12) 는 외부 카메라와 같은 외부 비디오 소스 (18) 로부터 비디오 데이터를 수신할 수도 있다. 마찬가지로, 목적지 디바이스 (14) 는 통합된 디스플레이 디바이스를 포함하기 보다는, 외부 디스플레이 디바이스와 인터페이싱할 수도 있다.
도 7 의 예시된 시스템 (10) 은 단지 하나의 예시일 뿐이다. 4:2:0, 4:2:2, 또는 4:4:4 크로마 포맷들 중 하나에 따라 포맷되는 재구성된 비디오 데이터의 어레이를 디블록킹하기 위한 기법들은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수도 있다. 일반적으로 본 개시의 기법들은 비디오 인코딩 디바이스 및/또는 비디오 디코딩 디바이스에 의해 수행되지만, 그 기법들은 또한 통상 "코덱" 으로서 지칭되는 비디오 인코더/디코더에 의해 수행될 수도 있다. 또한, 본 개시의 기법들은 또한 비디오 프로세서 또는 포스트 프로세서에 의해 수행될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 단순히 소스 디바이스 (12) 가 목적지 디바이스 (14) 로의 송신을 위해 코딩된 비디오 데이터를 생성하는 그러한 코딩 디바이스들의 예들이다. 일부 예들에서, 디바이스들 (12, 14) 은 디바이스들 (12, 14) 각각이 비디오 인코딩 및 디코딩 컴포넌트들을 포함하도록 실질적으로 대칭인 방식으로 동작할 수도 있다. 이리하여, 시스템 (10) 은 예를 들어 비디오 스트리밍, 비디오 재생, 비디오 브로드캐스팅, 또는 화상 전화를 위해 비디오 디바이스들 (12, 14) 사이에서 일방향 또는 양방향 비디오 송신을 지원할 수도 있다.
소스 디바이스 (12) 의 비디오 소스 (18) 는 비디오 카메라와 같은 비디오 캡쳐 디바이스, 이전에 캡쳐된 비디오를 포함하는 비디오 아카이브 및/또는 비디오 컨텐츠 제공자로부터의 비디오 공급을 포함할 수도 있다. 다른 대안으로서, 비디오 소스 (18) 는 소스 비디오, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터 생성 비디오의 조합으로서 컴퓨터 그래픽 기반 데이터를 생성할 수도 있다. 일부 경우들에서, 비디오 소스 (18) 가 비디오 카메라인 경우, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 캡쳐된, 미리 캡쳐된, 또는 컴퓨터에 의해 생성된 비디오는 상술된 샘플 포맷들 (예를 들어, 4:2:0, 4:2:2 또는 4:4:4) 중 임의의 것에 따라 포맷될 수도 있다. 그러나, 상술된 바와 같이, 본 개시에 기술된 기법들은 일반적으로 비디오 코딩에 적용가능할 수도 있고, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다. 각각의 경우에, 캡쳐된, 미리 캡쳐된, 또는 컴퓨터에 의해 생성된 비디오는 비디오 인코더 (20) 에 의해 인코딩될 수도 있다. 인코딩된 비디오 정보는 그 후 통신 표준에 따라 모뎀 (22) 에 의해 변조되고, 송신기 (24) 를 통해 목적지 디바이스 (14) 로 송신될 수도 있다. 모뎀 (22) 은 여러 믹서들, 필터들, 증폭기들, 또는 신호 변조를 위해 설계된 다른 컴포넌트들을 포함할 수도 있다. 송신기 (24) 는 증폭기들, 필터들 및 하나 이상의 안테나들을 포함하여, 데이터를 송신하기 위해 설계된 회로들을 포함할 수도 있다.
목적지 디바이스 (14) 의 수신기 (26) 는 통신 채널 (16) 을 통해 정보를 수시하고, 모뎀 (28) 은 그 정보를 복조한다. 채널 (16) 을 통해 통신된 정보는 블록들 및 다른 코딩된 단위들, 예를 들어 GOP 들의 특징들 및/또는 프로세싱을 기술하는 신택스 엘리먼트들을 포함하는, 비디오 디코더 (30) 에 의해 또한 사용되는, 비디오 인코더 (20) 에 의해 정의된 신택스 정보를 포함할 수도 있다. 디스플레이 디바이스 (32) 는 사용자에게 디코딩된 비디오 데이터를 디스플레이하고, 음극선관 (CRT), 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광다이오드 (OLED) 디스플레이, 또는 다른 타입의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들의 임의의 것을 포함할 수도 있다.
도 7 의 예에서, 통신 채널 (16) 은 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들과 같은 임의의 무선 또는 유선 통신 매체, 또는 무선 및 유선 매체들의 임의의 조합을 포함할 수도 있다. 통신 채널 (16) 은 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷 기반 네트워크의 부분을 형성할 수도 있다. 통신 채널 (16) 은 일반적으로 유선 또는 무선 매체들의 임의의 적합한 조합을 포함하여, 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 비디오 데이터를 송신하기 위해 임의의 적합한 통신 매체, 또는 상이한 통신 매체들의 집합을 나타낸다. 통신 채널 (16) 은 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 등가물을 포함할 수도 있다. 다른 예들에서, 소스 디바이스 (12) 는 데이터를 송신하기 보다는, 저장 매체에 인코딩된 데이터를 저장할 수도 있다. 마찬가지로, 목적지 디바이스 (14) 는 저장 매체로부터 인코딩된 데이터를 취출하도록 구성될 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 일반적으로 MPEG-4, Part 10, Advanced Video Coding (AVC) 로 대안적으로 지칭되는 ITU-T H.264 표준과 같은 비디오 압축 표준에 따라 동작할 수도 있다. 또, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 일반적으로 다가오는 HEVC 표준에 따라 동작할 수도 있다. 그러나, 본 개시의 기법들은 임의의 특정의 코딩 표준에 제한되지 않는다. 도 7 에 도시되지는 않았지만, 일부 양태들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 각각 오디오 인코더 및 디코더와 통합될 수도 있고, 적절한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있어, 공통 데이터 스크림 또는 분리된 데이터 스트림들에서 오디오 및 비디오 양자 모두의 인코딩을 핸들링한다. 적용가능한 경우, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜 (UDP) 과 같은 다른 프로토콜들에 따를 수도 있다. 일부 양태들에서, 본 개시에서 기술된 기법들은 일반적으로 H.264 표준 또는 HEVC 표준에 따르는 디바이스들에 적용될 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSPs), 주문형 반도체들 (ASICs), 필드 프로그래머블 게이트 어레이들 (FPGAs), 이산 논리 회로, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합들과 같은, 적용가능한 것처럼, 다양한 적합한 인코더 또는 디코더 회로의 임의의 것으로서 구현될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 의 각각은 하나 이상의 인코더들 및 디코더들에 포함될 수도 있으며, 이들 중 어느 것이 결합된 비디오 인코더/디코더 (코덱) 의 부분으로서 통합될 수도 있다. 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 를 포함하는 장치는 집적 회로, 마이크로프로세서 및/또는 무선 통신 디바이스를 포함할 수도 있다. 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 를 포함하는 장치는 셀룰러 전화, 카메라, 컴퓨터, 모바일 디바이스, 가입자 디바이스, 브로드캐스트 디바이스, 셋톱 박스, 서버 등을 포함할 수도 있다.
비디오 시퀀스는 통상적으로 비디오 프레임들의 시리즈를 포함한다. 화상들의 그룹 (GOP) 은 일반적으로 하나 이상의 비디오 프레임들의 시리즈를 포함한다. GOP 는 GOP 의 헤더, GOP 의 하나 이상의 프레임들의 헤더, 또는 다른 장소에, GOP 에 포함된 프레임들의 수를 기술하는 신택스 데이터를 포함할 수도 있다. 각각의 프레임은 각각의 프레임에 대한 인코딩 모드를 기술하는 프레임 신택스 데이터를 포함할 수도 있다. 각각의 비디오 프레임은 복수의 슬라이스들을 포함할 수도 있다. 각각의 슬라이스는 서브 블록들로서도 지칭되는, 파티션들로 배열될 수도 있는 복수의 비디오 블록들을 포함할 수도 있다. 비디오 블록들은 고정되거나 변화하는 사이즈들을 가질 수도 있고, 특정된 코딩 표준에 따라 사이즈에서 상이할 수도 있다. 상술된 바와 같이, 비디오 블록들은 HEVC WD5 에 기술된 가변 사이즈를 갖는 CU 들을 포함할 수도 있다. 또, 비디오 블록은 매크로블록 또는 매크로블록의 파티션에 대응할 수도 있다. 비디오 인코더 (20) 는 통상적으로 비디오 데이터를 인코딩하기 위해 개개의 비디오 프레임들 내의 비디오 블록들에 대해 동작한다.
상술된 바와 같이, 비디오 블록들은 화소 도메인에서 화소 데이터의 어레이들을 포함할 수도 있다. 비디오 블록들은 또한 예를 들어 코딩된 비디오 블록들과 예측 비디오 블록들 사이의 화소 차이들을 나타내는 레지듀얼 비디오 블록 데이터에 이산 코사인 변환 (DCT), 인티저 변환, 웨이블릿 변환, 또는 개념적으로 유사한 변환과 같은 변환의 적용에 후속하여, 변환 도메인에서 변환 계수들의 어레이들을 포함할 수도 있다. 일부 경우들에서, 비디오 블록은 변환 도메인에서 양자화된 변환 계수들의 블록들을 포함할 수도 있다.
상술된 바와 같이, 예측 데이터 및 레지듀얼 데이터를 생성하는 인트라-예측 또는 인터-예측 코딩에 후속하여, 그리고 변환 계수들을 생성하는 (H.264/AVC 에서 사용되는 4 x 4 또는 8 x 8 인티저 변환 또는 이산 코사인 변환 (DCT) 과 같은) 임의의 변환들에 후속하여, 변환 계수들의 양자화가 수행될 수도 있다. 양자화는 일반적으로 변환 계수들이 아마도 그 계수들을 표현하는데 사용되는 데이터의 양을 감소시도록 양자화되는 프로세스를 지칭한다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 심도를 감소시킬 수도 있다. 예를 들어, n-비트 값은 양자화 동안 m-비트 값으로 내림될 수도 있고, 여기서 n 은 m 보다 크다. 일부 경우들에서, 양자화는 제로로서 표현되는 낮은 값 변환 계수들을 야기할 수도 있다. TU 사이즈들의 선택에 더하여, 재구성된 이미지에서의 지각가능한 블록키니스가 또한 변환 계수들에 대한 양자화 프로세스 수행에 기초할 수도 있다. 일반적으로 m 의 값이 더 낮을 수록, 더욱 지각가능한 블록키니스를 야기한다.
양자화에 후속하여, 양자화된 데이터의 엔트로피 코딩이, 예를 들어 컨텐츠 적응형 가변 길이 코딩 (CAVLC), 콘텍스트 적응형 이진 산술 코딩 (CABAC), 또는 다른 엔트로피 코딩 방법론에 따라 수행될 수도 있다. 엔트로피 코딩을 위해 구성된 프로세싱 유닛, 또는 다른 프로세싱 유닛은 양자화된 계수들의 제로 런 (run) 길이 코딩 및/또는 코딩된 블록 패턴 (CBP) 값들, 매크로블록 타입, 코딩 모드, (프레임, 슬라이스, 매크로블록 또는 시퀀스와 같은) 코딩된 단위에 대한 최대 매크로블록 사이즈와 같은 신택스 정보의 생성과 같은 다른 프로세싱 기능들을 수해할 수도 있다.
비디오 인코더 (20) 는 예를 들어 프레임 헤더, 블록 헤더, 슬라이스 헤더, 또는 GOP 헤더에서, 비디오 디코더 (30) 로 블록 기반 신택스 데이터, 프레임 기반 신택스 데이터, 및 GOP 기반 신택스 데이터와 같은 신택스 데이터를 더 전송할 수도 있다. GOP 신택스 데이터는 각각의 GOP 내의 프레임들의 수를 기술할 수도 있고, 프레임 신택스 데이터는 대응하는 프레임을 인코딩하는데 사용된 인코딩/예측 모드를 나타낼 수도 있다.
도 8 은 재구성된 비디오 데이터를 필터링하기 위한 기법들을 구현할 수도 있는 비디오 인코더 (20) 의 예를 도시하는 블록도이다. 비디오 인코더 (20) 는 블록들, 또는 블록들의 파티션들 또는 서브파티션들을 포함하여, 비디오 프레임들 내의 블록들의 인트라 코딩 및 인터 코딩을 수행할 수도 있다. 상술한 바와 같이, 인트라 코딩은 주어진 비디오 프레임 내의 비디오에서의 공간적 리던던시를 감소시키거나 제거하기 위해 공간 예측에 의존하고, 인터 코딩은 비디오 시퀀스의 인접한 프레임들 내의 비디오에서의 시간적 리던던시를 감소시키거나 제거하기 위해 시간 예측에 의존한다. 인트라 모드 (I-모드) 는 수개의 공간 기반 비디오 압축 모드들의 임의의 것을 지칭할 수도 있고, 단방향 예측 (P-모드) 또는 양방향 예측 (B-모드) 와 같은 인터 모드들은 수개의 시간 기반 압축 모드들의 임의의 것을 지칭할 수도 있다.
도 8 에 도시된 바와 같이, 비디오 인코더 (20) 는 인코딩될 비디오 프레임 내의 현재의 비디오 블록을 수신한다. 현재의 비디오 블록은 4:2:0, 4:2:2 또는 4:4:4 크로마 포맷들 중 임의의 것에 따라 포맷될 수도 있다. 도 8 의 예에서, 비디오 인코더 (20) 는 모드 선택 유닛 (40), 모션 추정 유닛 (42), 모션 보상 유닛 (44), 인트라 예측 유닛 (46), 참조 화상 메모리 (64), 합산기 (50), 변환 유닛 (52), 양자화 유닛 (54), 및 엔트로피 인코딩 유닛 (56) 을 포함한다. 비디오 블록 재구성을 위해, 비디오 인코더 (20) 는 또한 역양자화 유닛 (58), 역변환 유닛 (60), 및 합산기 (62), 참조 화상 메모리 (64) 및 디블록커 (66) 를 포함한다. 본 개시의 기법들에 따르면, 비디오 인코더 (20) 는 합산기 (62) 의 출력을 선택적으로 필터링하는 디블록커 (66) 를 포함한다. 디블록커 (66) 는 여기에 기술된 기법들에 따라 디블록킹을 수행할 수도 있다.
인코딩 프로세스 동안, 비디오 인코더 (20) 는 코딩될 비디오 프레임 또는 슬라이스를 수신한다. 프레임 또는 슬라이스는 다수의 비디오 블록들로 분할될 수도 있다. 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 하나 이상의 참조 프레임들 내의 하나 이상의 블록들에 대해 수신된 비디오 블록의 인터 예측 코딩을 수행할 수도 있다. 인트라 예측 유닛 (46) 은 대안적으로 공간 압축을 제공하기 위해 코딩될 블록과 동일한 프레임 또는 슬라이스 내의 하나 이상의 이웃 블록들에 대해 수신된 비디오 블록의 인트라 예측 코딩을 수행할 수도 있다. 비디오 인코더 (20) 는 예를 들어 비디오 데이터의 각 블록에 대해 적절한 코딩 모드를 선택하기 위해 다수의 코딩 패스들 (passes) 을 수행할 수도 있다. 모드 선택 유닛 (40) 은 예를 들어 에러 결과들 또는 미리 정의된 코딩 구조에 기초하여 코딩 모드들, 인트라 또는 인터 중 하나를 선택할 수도 있고, 레지듀얼 블록 데이터를 생성하기 위해 합산기 (50) 에 그리고 참조 프레임으로서의 사용을 위해 인코딩된 블록을 복구하기 위해 합산기 (62) 에 결과의 인트라 또는 인터 코딩된 블록을 제공한다.
모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 고도로 집적되고 상술된 비디오 코딩 표준들 중 임의의 것에 따라 동작할 수도 있다. 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 개념적 목적들로 분리되어 도시된다. 모션 추정은 비디오 블록들에 대한 모션을 추정하는 모션 벡터들을 생성하는 프로세스이다. 모션 벡터는 예를 들어 현재의 프레임 내에서 코딩되는 현재의 블록 (또는 다른 코딩된 단위) 에 대한 예측 참조 프레임 (또는 다른 코딩된 단위) 내의 예측 블록의 변위를 나타낼 수도 있다. 예측 블록은 SAD (sum of absolute difference), SSD (sum of squared difference), 또는 다른 차이 메트릭들에 의해 결정될 수도 있는 픽셀 차이에 의해 코딩되는 블록과 근사하게 매칭하는 것으로 발견되는 블록이다. 모션 보상은 모션 추정에 의해 결정된 모션 벡터에 기초하여 예측 블록을 페치하거나 생성하는 것을 수반할 수도 있다. 또, 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 일부 예시들에서 기능적으로 통합될 수도 있다.
모션 추정 유닛 (42) 은 비디오 블록을 참조 화상 메모리 (64) 내의 참조 프레임의 비디오 블록들과 비교함으로써 인터 코딩된 프레임의 비디오 블록에 대한 모션 벡터를 계산한다. 참조 화상 메모리 (64) 에 저장된 참조 프레임들은 비디오 코딩 표준에 따라 정의된 리스트에 따라 조직화될 수도 있다. 모션 보상 유닛 (44) 은 또한 참조 프레임의 서브-인티저 화소들을 내삽할 수도 있다. 모션 추정 유닛 (42) 은 참조 화상 메모리 (64) 로부터의 하나 이상의 참조 프레임들의 블록들을 현재의 프레임의 인코딩될 블록과 비교한다. 참조 화상 메모리 (64) 내의 참조 프레임들이 서브-인티저 화소들에 대한 값들을 포함하는 경우, 모션 추정 유닛 (42) 에 의해 계산된 모션 벡터는 참조 프레임의 서브-인티저 화소 로케이션을 지칭할 수도 있다. 모션 추정 유닛 (42) 및/또는 모션 보상 유닛 (44) 은 또한, 서브-인티저 화소 포지션들에 대한 어떠한 값들도 참조 화상 메모리 (64) 에 저장되지 않은 경우, 참조 화상 메모리 (64) 에 저장된 참조 프레임들의 서브-인티저 화소 포지션들에 대한 값들을 계산하도록 구성될 수도 있다. 모션 추정 유닛 (42) 은 엔트로피 코딩 유닛 (56) 및 모션 보상 유닛 (44) 으로 그 계산된 모션 벡터를 전송한다. 모션 벡터에 의해 식별된 참조 프레임 블록은 예측 블록으로서 지칭될 수도 있다. 모션 보상 유닛 (44) 은 예측 블록에 기초하여 예측 데이터를 계산할 수도 있다.
인트라 예측 유닛 (46) 은 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 수행되는 인터 예측에 대한 대안으로서, 현재의 블록을 인트라 예측할 수도 있다. 특히, 인트라 예측 유닛 (46) 은 현재의 블록을 인코딩하는데 사용할 인트라 예측 모드를 결정할 수도 있다. 일부 예들에서, 인트라 예측 유닛 (46) 은 예를 들어 개별적인 인코딩 패스들 동안 여러 인트라 예측 모드들을 사용하여 현재의 블록을 인코딩할 수도 있고, 인트라 예측 유닛 (46) (또는, 일부의 예들에서 모드 선택 유닛 (40)) 은 예를 들어 레이트 왜곡 분석에 기초하여 테스트된 모드들로부터 사용할 적절한 인트라 예측 모드를 선택할 수도 있다. HEVC WD5 에 따르면, 가능한 인트라 예측 모드들은 평면 예측 모드들, DC 예측, 및 각 (angular) 예측 모드들을 포함할 수도 있다.
또, 하나의 예에서, 모션 추정 유닛 (42) 및/또는 인트라 예측 유닛 (46) 은 여러 테스트된 예측 모드들에 대해 레이트 왜곡 분석을 사용하여 레이트 왜곡 값들을 계산하고, 테스트된 모드들 중 최선의 레이트 왜곡 특징들을 갖는 예측 모드를 선택할 수도 있다. 비디오 인코더 (20) 는 인코딩되는 오리지널 비디오 블록으로부터 예측 비디오 블록을 감산함으로써 레지듀얼 비디오 블록을 형성한다. 합산기 (50) 는 이러한 감산 동작을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다.
변환 유닛 (52) 은 레지듀얼 블록에 이산 코사인 변환 (DCT) 또는 개념적으로 유사한 변환과 같은 변환을 적용하여 레지듀얼 변환 계수 값들을 포함하는 비디오 블록을 생성한다. 변환 유닛 (52) 은 DCT 와 개념적으로 유사한, H.264 표준에 의해 정의된 것들과 같은 다른 변환들을 수행할 수도 있다. 웨이블릿 변환들, 인티저 변환들, 서브 밴드 변환들 또는 다른 타입들의 변환들이 또한 사용될 수 있을 것이다. 어느 경우라도, 변환 유닛 (52) 은 레지듀얼 블록에 변환을 적용하여, 레지듀얼 변환 계수들의 블록을 생성한다. 변환은 레지듀얼 정보를 화소 값 도메인으로부터 주파수 도메인과 같은 변환 도메인으로 변환할 수도 있다. 양자화 유닛 (54) 은 비트 레이트를 더 감소시키기 위해 레지듀얼 변환 계수들을 양자화한다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 심도를 감소시킬 수도 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 변경될 수도 있다. 따라서, 지각된 "블록키니스" 또는 재구성된 비디오 데이터는 양자화 파라미터에 기초할 수도 있다.
양자화에 후속하여, 엔트로피 인코딩 유닛 (56) 은 양자화된 변환 계수들을 엔트로피 코딩한다. 예를 들어, 엔트로피 인코딩 유닛 (56) 은 컨텐츠 적응형 가변 길이 코딩 (CAVLC), 콘텍스트 적응형 이진 산술 코딩 (CABAC), 또는 다른 엔트로피 코딩 기법을 수행할 수도 있다. 콘텍스트 적응형 이진 산술 코딩의 경우에, 콘텍스트는 이웃하는 비디오 블록들에 기초할 수도 있다. 엔트로피 인코딩 유닛 (56) 에 의한 엔트로피 코딩에 후속하여, 인코딩된 비디오는 다른 디바이스로 송신되거나 나중의 송신 또는 취출을 위해 아카이브될 수도 있다.
일부 경우들에서, 엔트로피 인코딩 유닛 (56) 또는 비디오 인코더 (20) 의 다른 유닛은 엔트로피 인코딩에 더하여, 다른 코딩 기능들을 수행하도록 구성될 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (56) 은 블록들 및 파티션들에 대한 CBP 값들을 결정하도록 구성될 수도 있다. 또한, 일부 경우들에서, 엔트로피 인코딩 유닛 (56) 은 비디오 블록에서의 계수들의 런 길이 코딩을 수행할 수도 있다. 또, 엔트로피 인코딩 유닛 (56) 은 비디오 블록에서의 변환 계수들을 스캔하기 위해 지그 재그 스캔 또는 다른 스캔 패턴을 적용할 수도 있다. 엔트로피 인코딩 유닛 (56) 은 또한 인코딩된 비디오 비트스트림에서의 송신을 위해 적적한 신택스 엘리먼트들로 헤더 정보를 구성할 수도 있다.
역양자화 유닛 (58) 및 역변환 유닛 (60) 은 예를 들어 참조 블록으로서의 나중의 사용을 위해, 화소 도메인에서 레지듀얼 블록을 재구성하기 위해, 각각 역양자화 및 역변환을 적용한다. 예를 들어, 모션 보상 유닛 (44) 은 참조 화상 메모리 (64) 의 프레임들 중 하나의 프레임의 예측 블록에 재구성된 레지듀얼 블록을 가산함으로써 참조 블록을 계산할 수도 있다. 모션 보상 유닛 (44) 은 또한 모션 추정에서의 사용을 위한 서브-인티저 화소 값들을 계산하기 위해 재구성된 레지듀얼 블록에 하나 이상의 내삽 필터들을 적용할 수도 있다. 합산기 (62) 는 참조 화상 메모리 (64) 에의 저장을 위한 재구성된 비디오 블록을 생성하기 위해 참조 블록에 재구성된 레지듀얼 블록을 가산한다. 저장된 재구성된 비디오 블록은 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 사용될 수도 있다. 상술된 바와 같이, 인-루프 디블록킹은 비디오 인코더 (20) 와 같은 비디오 인코더에 의해 수행될 수도 있다. 디블록커 (66) 는 여기에 기술된 디블록킹 기법들 중 임의의 것에 따라 루마 및 크로마 에지들을 디블록킹할 수도 있다. 디블록커 (66) 에 의해 수행될 수도 있는 디블록킹 기법들의 예들은 도 10 에 대해 상세히 기술된다.
도 9 는 재구성된 비디오 데이터를 필터링하는 기법들을 구현할 수도 있는 비디오 디코더 (30) 의 예를 도시하는 블록도이다. 도 9 의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (70), 모션 보상 유닛 (72), 인트라 예측 유닛 (74), 역양자화 유닛 (76), 역변환 유닛 (78), 합산기 (80), 참조 화상 메모리 (82) 및 디블록커 (84) 를 포함한다. 비디오 디코더 (30) 는 일부 예들에서 비디오 인코더 (20) (도 8) 에 대해 기술된 인코딩 패스에 대해 일반적으로 역인 디코딩 패스를 수행할 수도 있다.
모션 보상 유닛 (72) 은 엔트로피 디코딩 유닛 (70) 으로부터 수신된 모션 벡터들에 기초하여 예측 데이터를 생성할 수도 있다. 모션 보상 유닛 (72) 은 참조 화상 메모리 (82) 내의 참조 프레임들에서의 예측 블록을 식별하기 위해 비트스트림에서 수신된 모션 벡터들을 사용할 수도 있다. 인트라 예측 유닛 (74) 은 공간적으로 인접한 블록들로부터 예측 블록을 형성하기 위해 비트스트림에서 수신된 인트라 예측 모드들을 사용할 수도 있다. 역양자화 유닛 (76) 은 비트스트림에서 제공되고 엔트로피 디코딩 유닛 (70) 에 의해 디코딩된 양자화된 블록 계수들을 역양자화한다 (즉, 탈양자화한다(dequantize)). 역양자화 프로세스는 예를 들어 HEVC WD5 의 H.264 디코딩 표준에 의해 정의된 바와 같은 종래의 프로세스를 포함할 수도 있다.
역변환 유닛 (78) 은 화소 도메인에서 레지듀얼 블록들을 생성하기 위해 변환 계수들에 역변환, 예를 들어 역 DCT, 역 인티저 변환, 또는 개념적으로 유사한 역변환 프로세스를 적용한다. 모션 보상 유닛 (72) 은, 아마도 내삽 필터들에 기초하여 내삽을 수행하여 모션 보상된 블록들을 생성한다. 서브 픽셀 정밀도를 갖는 모션 추정을 위해 사용될 내삽 필터들에 대한 식별자들은 신택스 엘리먼트들에 포함될 수도 있다. 모션 보상 유닛 (72) 은 참조 블록의 서브 인티저 화소들에 대한 내삽된 값들을 계산하기 위해 비디오 블록의 인코딩 동안 비디오 인코더 (20) 에 의해 사용된 바와 같은 내삽 필터들을 사용할 수도 있다. 모션 보상 유닛 (72) 은 수신된 신택스 정보에 따라 비디오 인코더 (20) 에 의해 사용된 내삽 필터들을 결정하고 내삽 필터들을 사용하여 예측 블록을 생성할 수도 있다.
모션 보상 유닛 (72) 은 인코딩된 비디오 시퀀스의 프레임(들) 을 인코딩하는데 사용된 블록들의 사이즈들을 결정하는 신택스 정보, 인코딩된 비디오 시퀀스의 프레임의 각 비디오 블록이 파티션되는 방법을 기술하는 파티션 정보, 각 파티션이 인코딩되는 방법을 나타내는 모드들, 각 인터 인코딩된 비디오 블록 또는 파티션에 대한 하나 이상의 참조 프레임들 (및 참조 프레임 리스트들), 및 인코딩된 비디오 시퀀스를 디코딩하는 다른 정보 중 일부를 사용한다.
합산기 (80) 는 레지듀얼 블록들을, 재구성된 비디오 블록들을 형성하기 위해 모션 보상 유닛 (72) 또는 인트라 예측 유닛에 의해 생성된 대응하는 예측 블록들과 합산한다. 재구성된 비디오 블록들은 그 후 후속하는 모션 보상을 위한 참조 블록들을 제공하고 또한 (도 7 의 디스플레이 디바이스 (32) 와 같은) 디스플레이 디바이스에의 제시를 위해 디코딩된 비디오를 생성하는 참조 화상 메모리 (82) 에 저장된다. 상술된 바와 같이, 인-루프 또는 포스트-루프 디블록킹은 비디오 디코더 (30) 와 같은 비디오 디코더에 의해 수행될 수도 있다. 디블록커 (84) 는 여기에 기술된 디블록킹 기법들 중 임의의 것에 따라 루마 및 크로마 에지들을 디블록킹할 수도 있다. 디블록커 (84) 는 인-루프 디블록킹 프로세스의 일부로서 디블록커 (66) 에 의해 수행된 디블록킹 기법들 중 임의의 것에 따라 에지들을 디블록킹할 수도 있다. 대안적으로, 디블록커 (84) 는, 디블록킹 기법들이 디블록커 (66) 에 의해 수행되지 않을 지라도, 포스트 루프 디블록킹 프로세스의 일부로서 에지들을 디블록킹할 수도 있다. 또, 일부의 경우들에서, 비디오 디코더 (30) 는 4:2:0 크로마 포맷에 따라 포맷된 비디오 데이터를 재구성하고 그 비디오 데이터에 대해 상향 변환 동작을 수행하여 4:2:2 또는 4:4:4 크로마 포맷에 따라 포맷된 비디오 데이터를 생성한다.
도 10 은 예시의 디블록커 (90) 의 컴포넌트들을 도시하는 블록도이다. 일반적으로, 디블록커 (66) (도 8) 및 디블록커 (84) (도 9) 중 어느 하나 또는 양자 모두는 디블록커 (90) 의 그것들과 실질적으로 유사한 컴포넌트들을 포함할 수도 있다. 비디오 인코더들, 비디오 디코더들, 비디오 인코더/디코더들 (코덱들), 비디오 포스트프로세서들 등과 같은 다른 비디오 코딩 디바이스들은 또한 디블록커 (90) 와 실질적으로 유사한 컴포넌트들을 포함할 수도 있다. 디블록커 (90) 는 하드웨어, 소프트웨어, 또는 펌웨어로 구현될 수도 있다. 소프트웨어 또는 펌웨어로 구현되는 경우, (하나 이상의 프로세서들 또는 프로세싱 유닛들 및 소프트웨어 또는 펌웨어를 위한 명령들을 저장하는 메모리와 같은) 대응하는 하드웨어가 또한 제공될 수도 있다.
도 10 의 예에서, 디블록커 (90) 는 서포트 정의들을 저장하는 메모리 (92), 에지 로케이팅 유닛 (93), 디블록킹 결정 유닛 (94), 에지 로케이션 데이터 구조에 따라 데이터를 저장하는 메모리 (95), 디블록킹 필터링 유닛 (96) 및 디블록킹 필터 정의들을 저장하는 메모리 (98) 를 포함한다. 디블록커 (90) 의 컴포넌트들의 임의의 것 또는 모두는 기능적으로 통합될 수도 있다. 디블록커 (90) 의 컴포넌트들은 예시의 목적으로 개별적으로 도시된다. 일반적으로, 디블록커 (90) 는, 예를 들어 블록들에 대한 레지듀얼 데이터와 예측 데이터를 결합하는 합산 컴포넌트로부터 재구성된 비디오 블록들의 샘플 값들을 수신한다. 예를 들어, 디블록커 (90) 는 4:2:0, 4:2:2 또는 4:4:4 크로마 포맷들 중 하나에 따라 포맷된 비디오 블록을 수신할 수도 있다. 어느 경우이든, 디블록커 (90) 는 루마 샘플 값들의 어레이 및 크로마 샘플 값들의 대응하는 어레이들을 수신한다. 디블록커 (90) 는 또한 블록들이 예측되었던 방법, 즉 인트라-모드 또는 인터-모드를 나타내는 데이터를 수신할 수도 있다. 후술되는 예시에서, 디블록커 (90) 는 LCU 에 대한 재구성된 샘플 값들을 포함하는 데이터, LCU 가 CU 들로 파티셔닝되는 방법을 기술하는, LCU 에 대한 CU 쿼드트리, 리프-노드 CU 들에 대한 예측 모드들을 나타내는 정보, 및 CU 들에 대한 TU 구조를 나타내는 정보를 수신하도록 구성된다.
디블록커 (90) 는 디블록커 (90) 의 메모리에, 또는 대응하는 비디오 코딩 디바이스에 의해 제공된 외부 메모리에 에지 로케이션 데이터 구조 (95) 를 유지할 수도 있다. 상술된 바와 같이, 디블록킹은 정의된 디블록킹 그리드들에 따라 수행될 수도 있다. 에지 로케이션 데이터 구조 (95) 는 비디오 데이터를 디블록킹하기 위해 사용될 수도 있는 하나 이상의 디블록킹 그리드들을 포함할 수도 있다. 예를 들어, 에지 로케이션 데이터 구조 (95) 는 상술된 표 2 및 표 3 에 대응하는 디블록킹 그리드들을 저장할 수도 있다. 하나의 예에서, 에지 로케이션 데이터 구조 (95) 는 표 5 에 대응하는 디블록킹 그리드를 포함할 수도 있고, 디블록커 (90) 는 표 5 에 예시된 디블록킹 그리드들에 따라 비디오 데이터를 디블록킹하도록 구성될 수도 있다.
크로마
포맷
디블록킹 그리드
(수평 x 수직 루마)
디블록킹 그리드
(수평 x 수직 서브샘플링된 크로마)
4:2:0 8 x 8 8 x 8
4:2:2 8 x 8 8 x 16
4:4:4 8 x 8 16 x 16
표 5: 디블록킹 요약
상술된 바와 같이, 노킨은 4:2:2 크로마 포맷에 따라 포맷된 비디오 데이터에 대해 루마 컴포넌트들에 대해 8 x 8 디블록킹 그리드를, 및 크로마 컴포넌트들에 대해 4 x 8 디블록킹 그리드를 사용하는 것을 제안한다. 노킨과 대조적으로, 표 5 에 예시된 바와 같이, 4:2:2 샘플 포맷에 따라 포맷된 비디오 데이터에 대해, 8 x 8 디블록킹 그리드가 루마 컴포넌트에 대해 사용될 수도 있고, 8 x 16 디블록킹 그리드가 크로마 컴포넌트들에 대해 사용될 수도 있다. 따라서, 노킨에 비해, 표 5 의 디블록킹 그리드는 디블록커 (90) 에 의해 수행된 필터링 동작들의 총 수를 감소시킬 것이다. 일부 경우들에서, 수행된 디블록킹 동작들의 총 수는 적어도 25% 만큼 감소될 수 있을 것이다. 그러한 감소는 1920 x 1080 해상도 비디오 데이터를 디블록킹하는 계산들의 수를 상당히 감소시켜 적절한 주관적 품질을 제공할 수도 있다. 루마 해상도에서 16 x 16 등가 그리드를 보존하는 크로마 디블록킹 그리드들을 제공하는 것에 더하여, 표 5 의 디블록킹 그리드들은 또한 파트 (part) 당 루마 및 크로마 경계 강도들 사이의 HM5 로부터의 다이렉트 맵핑 관계 (크로마 에지 당 4 개의 파트들) 를 보존한다.
상술된 디블록킹 그리드들의 임의의 및 모든 조합들을 적용하는 것에 더하여, 디블록커 (90) 는, 비디오 블록이 4:4:4 크로마 포맷을 사용하여 포맷되는 경우, 디블록키 그리드 해상도가 컴포넌트들의 임의의 것에 대해 4 x 4, 8 x 8, 또는 16 x 16 샘플들의 임의의 또는 모든 조합들일 수 있도록 구성될 수도 있다. 하나의 예에서, 디블록커 (90) 는 4:4:4 크로마 컴포넌트들에 HEVC WD8 의 메인 프로파일에 기술된 루마 컴포넌트 디블록킹 필터 방법을 적용하도록 구성될 수도 있다. 또, 디블록커 (90) 는 비디오 데이터가 4:2:2 포맷에 따라 포맷되는 경우 크로마 컴포넌트들에 대한 샘플들에 대해 4 x 4, 4 x 8, 8 x 8, 8 x 16, 또는 16 x 16 의 디블록킹 그리드를 사용하도록 구성될 수도 있다.
상술된 바와 같이, 신택스 엘리먼트 chroma_format_idc 는 크로마 포맷을 나타낼 수도 있다. 디블록커 (90) 는 chroma_format_idc 또는 현재의 비디오 데이터에 대한 크로마 포맷을 나타내는 데이터를 수신하고, chroma_format_idc 의 값에 기초하여 디블록킹 그리드 사이즈를 결정하도록 구성될 수도 있다. 이러한 방식으로, 디블록커 (90) 는 비디오 블록이 4:2:0, 4:2:2, 또는 4:4:4 크로마 포맷들 중 하나에 따라 포맷되는지 여부를 결정하고, 비디오 블록이 4:2:0 크로마 포맷에 따라 포맷되는 경우, 8 x 8 디블록킹 그리드를 사용하여 크로마 에지들을 디블록킹하고, 비디오 블록이 4:2:2 크로마 포맷에 따라 포맷되는 경우, 8 x 16 디블록킹 그리드를 사용하여 크로마 에지들을 디블록킹하며, 비디오 블록이 4:4:4 크로마 포맷에 따라 포맷되는 경우, 16 x 16 디블록킹 그리드를 사용하여 크로마 에지들을 디블록킹한다.
상술된 바와 같이, LCU 는 가변 사이즈를 갖는 CU 들로 파티셔닝될 수도 있고, CU 들은 PU 들 및 CU 들을 포함할 수도 있다. 따라서, 디블록킹 그리드에 따라 정의된 에지는 실제의 파티션 경계에 대응할 수도, 또는 대응하지 않을 수도 있다. 에지 로케이팅 유닛 (93) 은 디블록킹 그리드에 따라 정의된 에지가 CU, PU, 또는 TU 경계와 대응하는지 여부를 결정할 수도 있다. 일부 예들에서, 에지 로케이팅 유닛 (93) 은 LCU 가 CU 들로 파티셔닝되는 방법을 나타내는, LCU 에 대응하는 CU 쿼드트리를 수신할 수도 있다. 에지 로케이팅 유닛 (93) 은 정의된 디블록킹 그리드에 기초하여 디블록킹하기 위한 후부들인, LCU 내의 CU 들 사이의 경계들을 결정하기 위해 CU 쿼드트리를 분석할 수도 있다.
일반적으로, 디블록킹 결정 유닛 (94) 은 하나 이상의 디블록킹 결정 함수들을 갖도록 구성될 수도 있다. 상술된 바와 같이, HEVC 는 소위 경계 필터링 강도 변수, bS 를 포함한다. 하나의 예에서, 디블록킹 결정 유닛 (94) 은 재구성된 샘플들의 값들 및 재구성된 비디오 데이터와 연관된 데이터에 기초하여 bS 를 결정하는 함수들로 구성될 수도 있다. 서포트 정의들 (92) 은 bS 와 같은 변수들 (즉, 서포트들) 을 결정하는 정의들을 포함할 수도 있다. 디블록킹 결정 유닛 (94) 은 비디오 데이터의 2 개의 블록들 사이의 특정의 에지가 디블록킹되어야 하는지를 결정하기 위해 서포트의 하나 이상의 세트들에 하나 이상의 디블록킹 결정 함수들을 적용하도록 구성될 수도 있다. 그러나, 일부 예들에서, 디블록킹 결정 유닛 (94) 은 특정의 에지에 대한 디블록킹 결정 함수들의 적용을 스킵하도록 구성된다. 디블록킹 결정 유닛 (94) 으로부터 기원하는 점선은 필터링되는 것 없이 출력되는 블록들에 대한 데이터를 나타낸다. 디블록킹 결정 유닛 (94) 이 2 개의 블록들 사이의 경계가 필터링되지 않아야 한다고 결정하는 경우들에서, 디블록커 (90) 는 데이터를 변경하지 않고 블록들에 대한 데이터를 출력할 수도 있다. 즉, 데이터는, 데이터가 디블록 필터링되지 않도록, 디블록킹 결정 유닛 (94) 을 우회할 수도 있다. 한편, 디블록킹 결정 유닛 (94) 이 에지가 디블록킹되어야 한다고 결정하는 경우, 디블록킹 결정 유닛 (94) 은 디블록킹 필터링 유닛 (96) 으로 하여금 에지 근처의 화소들에 대한 값을 필터링하여, 에지를 디블록킹하게 할 수도 있다.
표 4 에 대해 상술된 바와 같이, HEVC 는 노르말 및 스트롱 필터들을 포함한다. 디블록킹 필터 정의들 (98) 은 HEVC WD8 에 따라 정의된 노르말 및 스트롱 필터들과 같은 디블록킹 필터들의 정의들을 저장할 수도 있다. 디블록킹 필터링 유닛 (96) 은 디블록킹 결정 유닛 (94) 에 의해 표시된 바와 같이, 디블록킹될 에지들에 대해 디블록킹 필터 정의들 (98) 로부터 디블록킹 필터들의 정의들을 취출한다. 더욱 상술된 바와 같이, 비디오 블록의 수평 에지들에 노르말 또는 스트롱 필터중 어느 하나를 적용하는 것은 블록키니스의 출현을 상당히 감소시켜, 수직 에지에 동일한 필터를 적용하는 것이 비효율적이게 한다. 디블록커 (90) 는, 노르말 또는 스트롱 필터가 수평 에지에 적용되는 경우, 수직 에지에 감소된 폭의 필터가 적용되거나 어떤 필터도 적용되지 않도록, 구성될 수도 있다. 또, 일부 경우들에서, 크로마 컴포넌트들에 적용된 필터는 루마 컴포넌트들에 적용된 필터에 기초할 수도 있다.
4:4:4 크로마 포맷의 경우에, 크로마 컴포넌트들이 서브샘플링되지 않기 때문에, 일부 예들에서, 크로마 컴포넌트들의 필터링은 루마 컴포넌트들에 대한 필터링에 기초할 수도 있다. 하나의 예에서, 디블록커는, 비디오 데이터가 4:4:4 크로마 포맷에 따라 포맷되는 경우, 디블록킹 조건들 (예를 들어, 온/오프, 노르말/스트롱 등) 이 단일의 칼라 컴포넌트, 예를 들어 루마에 기초하여 컴퓨팅되고, 다른 컴포넌트들과 공유되도록 구성될 수도 있다. 하나의 예에서, 디블록커 (90) 는 노르말 루마 디블록킹 필터 및 연관된 디블록킹 조건들만이 4:4:4 크로마 컴포넌트들에 적용되도록 구성될 수도 있다. 다른 예에서, 스트롱 루마 디블록킹 필터 및 연관된 디블록킹 조건들만이 4:4:4 크로마 컴포넌트들에 적용될 수도 있다. 대안으로서, 디블록커 (90) 는, 비디오 데이터가 4:4:4 크로마 포맷에 따라 포맷되는 경우, 디블록킹 조건들이 각각의 컴포넌트에 대해 독립적으로 컴퓨팅되도록 구성될 수도 있다.
4:2:2 크로마 포맷의 경우에, 디블록커 (90) 는 어느 것이 수직 경계들에 적용되는 경우 노르말 또는 스트롱 필터를 변경하도록 구성될 수도 있다. 하나의 예에서, 필터 폭은 수직 에지들을 필터링할 때 감소될 수도 있다. 하나의 예에서, 노르말 필터 폭은 수직 에지의 각 사이드 상의 최대 하나의 샘플을 변경하도록 감소될 수도 있다. 다른 예에서, 스트롱 필터 폭은 수직 에지의 각 사이드 상에 최대 두개 또는 하나의 샘플을 변경하도록 감소될 수도 있다. 다른 예에서, 스트롱 또는 노르말 필터는 수직 에지들에 대해 디스에이블될 수도 있다. 디블록커 (90) 는 크로마 컴포넌트의 수평 에지들에 적용된 필터에 기초하여 수직 경계의 각 사이드에서 변경된 샘플들의 수를 감소시키도록 구성될 수도 있다. 예를 들어, 스트롱 필터가 크로마 컴포넌트의 수평 에지들에 적용되는 경우, 필터링은 수직 에지들에 대해 디스에이블될 수도 있다. 다른 예에서, 변경된 샘플들의 열들의 수는 수평 에지가 필터링되는 경우 하나 또는 2 개의 열들에 의해 감소될 수도 있다.
도 11 은 여기에 기술된 기법들에 따라 비디오 데이터의 개구성된 블록을 필터링하는 것을 도시하는 개념도이다. 도 11 은 4:2:2 크로마 포맷에 따라 포맷된 대응하는 크로마 샘플들을 갖는 루마 샘플들의 16 x 16 어레이를 도시한다. 도 11 의 어레이는 상술된 상이한 사이즈를 갖는 CU 들의 임의의 조합을 결합함으로써 형성될 수도 있다. 도 11 에 도시된 바와 같이, 2 개의 수평 크로마 에지들이 정의되며, 여기서 에지들은 16 개의 크로마 샘플 값들에 의해 분리된다. 또한, 2 개의 수직 에지들이 정의된다. 이러한 경우에, 수직 에지들은 8 개의 크로마 샘플 값들에 의해 분리된다. 도 11 은 스트롱 필터가 수평 에지들에 대응하는 크로마 샘플들의 행들에 적용되는 경우를 도시한다. 도 11 에 도시된 바와 같이, 상부 및 하부 수형 에지들과 연관된 이웃하는 어레이 내의 샘플 값들이 또한 필터링될 수도 있다. 스트롱 필터는 HEVC WD8 에 따라 정의된 스트롱 필터일 수도 있다. 또, 도 11 은 감소된 폭 필터가 수직 에지들에 대응하는 크로마 샘플들의 열들에 적용되는 경우를 도시한다. 수직 에지와 연관된 이웃하는 어레이 (도시하지 않음) 내의 샘플 값들이 또한 필터링된다. 도 11 에 도시된 예에서, 감소된 폭 필터는 2 개의 열들 (즉, p0 및 q0) 에만 적용된 스트롱 필터일 수도 있다. 디블록커 (90) 는 도 11 에 도시된 개념도에 따라 샘플 값들의 어레이를 필터링하도록 구성될 수도 있다.
도 12 는 비디오 데이터의 재구성된 블록을 필터링하는 기법을 도시하는 흐름도이다. 도 12 에 도시된 기법은 디블록커 (90) 에 의해 수행되는 것으로 기술되지만, 비디오 인코더 (20), 비디오 디코더 (30), 디블록커 (66), 또는 디블록커 (84) 에 의해 수행될 수도 있다. 디블록커 (90) 는 재구성된 샘플 값들의 어레이를 획득한다 (1202). 재구성된 샘플 값들의 어레이는 4:2:0, 4:2:2, 4:4:4 크로마 포맷들 중 임의의 것에 따라 포맷될 수도 있다. 어레이는 예를 들어 CU 들을 디코딩한 후, 복수의 여러 사이즈를 갖는 CU 들을 결합함으로써 획득될 수도 있다. 디블록커 (90) 는 수평 크로마 에지들에 제 1 필터를 적용할지 여부를 결정한다 (1204). 제 1 필터는 여기에 기술된 필터들 중 임의의 것 (예를 들어, 스트롱, 노르말, HEVC 크로마 필터 또는 이것의 감소된 폭 버전들) 일 수도 있다. 수평 크로마 에지들은 크로마 샘플 값들의 임의의 수 (예를 들어, 4, 8 또는 16) 에 의해 분리될 수도 있다. 디블록커 (90) 는 수직 크로마 에지들에 제 2 필터를 적용할지 여부를 결정한다 (1206). 제 2 필터는 여기에 기술된 필터들 중 임의의 것 (예를 들어, 스트롱, 노르말, 또는 이것의 감소된 폭 버전들) 일 수도 있다. 수직 크로마 에지들은 크로마 샘플 값들의 임의의 수 (예를 들어, 4, 8 또는 16) 에 의해 분리될 수도 있다. 수직 크로마 에지들에 제 2 필터를 적용할지 여부에 대한 결정은 제 1 필터를 적용할지 여부에 대한 결정에 기초할 수도 있다. 예를 들어, 제 1 필터를 적용하기로 결정한 후, 디블록커 (90) 는 제 2 필터를 적용하지 않기로 결정할 수도 있다. 디블록커 (90) 는 재구성된 샘플 값들을 필터링한다 (1208). 필터링된 재구성된 값들은 참조 값들로서 사용 (예를 들어, 참조 화상 메모리 (64) 또는 참조 화상 메모리 (82) 와 같은 참조 화상 메모리에 저장) 되고 및/또는 디스플레이에 출력될 수도 있다.
이러한 방식으로, 디블록커 (90), 비디오 인코더 (20), 및 비디오 디코더 (30) 는, 샘플 값들의 어레이를 획득하는 것으로서, 여기서 어레이는 4:2:2 크로마 포맷에 따라 포맷되는, 상기 샘플 값들의 어레이를 획득하고; 상기 어레이 내의 정의된 수평 에지들과 연관된 크로마 샘플의 행들에 제 1 필터를 적용할지를 결정하는 것으로서, 여기서 정의된 수평 에지들은 16 개의 크로마 샘플 값들에 의해 분리되는, 상기 제 1 필터를 적용할지를 결정하며; 상기 어레이 내의 정의된 수직 에지들과 연관된 크로마 샘플 값들의 열들에 제 2 필터를 적용할지를 결정하는 것으로서, 여기서 정의된 수직 에지들은 8 개의 크로마 샘플 값들에 의해 분리되는, 상기 제 2 필터를 적용할지를 결정하도록 구성된 비디오 코딩 디바이스들의 예들을 나타낸다.
일반적으로, 본 개시의 기법들은 비디오 인코더 및 비디오 디코더에 의해 수행될 수도 있다. 하나 이상의 예들에서, 기술된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상에 저장 및 송신되고, 하드웨어 기반 프로세싱 유닛에 의해 실행될 수도 있다. 하드웨어 기반 프로세싱 유닛은 셀룰러 전화, 스마트폰, 랩톱 컴퓨터, 태블릿 컴퓨터, 개인용 휴대정보단말 (PDA), 모바일 비디오 디스플레이 디바이스 또는 다른 그러한 모다일 디바이스들과 같은 모바일 디바이스에 포함될 수도 있다. 컴퓨터 판독가능 매체는 데이터 저장 매체와 같은 유형의 매체에 대응하는 컴퓨터 판독가능 저장 매체, 또는 예를 들어 통신 프로토콜에 따라 한 장소로부터 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체를 포함할 수도 있다. 이러한 방식으로, 컴퓨터 판독가능 매체는 일반적으로 (1) 비일시적인 유형의 컴퓨터 판독가능 저장 매체 또는 (2) 신호나 반송파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체는 본 개시에 기술된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.
제한이 아닌 예시로써, 그러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광디스크 기억장치, 자기 디스크 기억장치, 또는 다른 자기적 저장 디바이스들, 플래시 메모리, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결은 적절하게 컴퓨터 판독가능 매체로 명명된다. 예를 들어, 명령들이 동축 케이블, 광섬유 케이블, 트위스티드 페어, 디지털 가입자 라인 (DSL), 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들을 사용하여 웹사이트, 서버, 다른 원격 소스로부터 송신되는 경우, 동축 케이블, 광섬유 케이블, 트위스티드 페어, 디지털 가입자 라인 (DSL), 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들은 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체 및 데이터 저장 매체가 연결들, 반송파들, 신호들, 또는 다른 트랜지언트 매체를 포함하지 않고, 대신에 비일시적 유형의 저장 매체에 지향되는 것이 이해되어야 한다. 여기서 사용된 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크, 레이저 디스크, 광디스크, DVD, 플로피 디스크, 및 블루레이 디스크를 포함하고, 여기서 디스크 (disk) 는 통상 자기적으로 데이터를 재생하는 반면, 디스크 (disc) 는 레이저로 광학적으로 데이터를 재생한다. 상술한 것들의 조합들이 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서들 (DSPs), 범용 마이크로프로세서들, 주문형 반도체 (ASIC) 들, 필드 프로그래머블 로직 어레이들 (FPGAs), 또는 다른 등가의 집적되거나 이산의 로직 회로와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 이에 따라, 여기서 사용된 용어 "프로세서" 는 여기에 기술된 기법들의 구현에 적합한 임의의 상술된 구조 또는 임의의 다른 구조를 지칭할 수도 있다. 또, 일부 양태들에서, 여기에 기술된 기능성은 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공되거나, 결합된 코덱에 포함될 수도 있다. 또한, 그 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들로 완전히 구현될 수 있을 것이다.
본 개시의 기법들은 무선 핸드셋, 집적회로 (IC) 또는 IC 들의 세트 (예를 들어, 칩셋) 를 포함하여 매우 다양한 디바이스들 또는 장치들로 구현될 수도 있다. 여러 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시에 기술되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 필요로하지는 않는다. 오히려, 상술된 바와 같이, 여러 유닛들이 코덱 하드웨어 유닛에서 결합되거나, 적합한 소프트웨어 및/또는 펌웨어와 결합하여 상술된 하나 이상의 프로세서들을 포함하여 상호동작가능한 하드웨어 유닛들의 집합에 의해 제공될 수도 있다.
구현에 따라, 여기에 기술된 방법들 중 임의의 것의 소정의 액션들 또는 이벤트들이 상이한 시퀀스로 수행될 수 있고, 부가, 병합, 또는 함께 배제될 수도 있다 (예를 들어, 모든 기술된 액션들 또는 이벤트들이 방법의 실시에 필요한 것은 아니다). 또한, 소정의 예들에서, 액션들 또는 이벤트들은 예를 들어 순차적이라기 보다는 멀티 스레디드 프로세싱, 인터럽트 프로세싱 또는 다수의 프로세서들을 통해 동시적으로 수행될 수도 있다.

Claims (38)

  1. 재구성된 비디오 데이터를 필터링하는 방법으로서,
    샘플 값들의 어레이를 획득하는 단계로서, 상기 어레이는 4:2:2 크로마 포맷에 따라 포맷되는, 상기 샘플 값들의 어레이를 획득하는 단계;
    상기 어레이 내의 정의된 수평 에지들과 연관된 크로마 샘플 값들의 행들 (rows) 에 제 1 필터를 적용할지 여부를 결정하는 단계로서, 상기 정의된 수평 에지들은, 상기 어레이의 상기 정의된 수평 에지들 이외의 임의의 수평 에지들에 상기 제 1 필터를 적용할지 여부를 결정하지 않고, 16 개의 크로마 샘플 값들에 의해 분리되는, 상기 제 1 필터를 적용할지 여부를 결정하는 단계;
    상기 어레이 내의 정의된 수직 에지들과 연관된 크로마 샘플 값들의 열들 (columns) 에 상기 제 1 필터와는 상이한 제 2 필터를 적용할지 여부를 결정하는 단계로서, 상기 정의된 수직 에지들은, 상기 어레이의 상기 정의된 수직 에지들 이외의 임의의 수직 에지들에 상기 제 2 필터를 적용할지 여부를 결정하지 않고, 8 개의 크로마 샘플 값들에 의해 분리되고, 상기 제 2 필터는 상기 제 1 필터의 필터 폭보다 작은 필터 폭을 갖는, 상기 제 2 필터를 적용할지 여부를 결정하는 단계;
    임의의 상기 행들에 상기 제 2 필터를 적용하지 않고, 상기 행들 중 하나 이상의 행들에 상기 제 1 필터를 적용하기로 결정하는 것에 응답하여 상기 하나 이상의 행들에 상기 제 1 필터를 적용하는 단계; 및
    임의의 상기 열들에 상기 제 1 필터를 적용하지 않고, 상기 열들 중 하나 이상의 열들에 상기 제 2 필터를 적용하기로 결정하는 것에 응답하여 상기 하나 이상의 열들에 상기 제 2 필터를 적용하는 단계를 포함하는, 재구성된 비디오 데이터를 필터링하는 방법.
  2. 제 1 항에 있어서,
    상기 제 2 필터를 적용할지 여부를 결정하는 단계는 상기 제 1 필터를 적용할지 여부에 대한 결정에 적어도 부분적으로 기초하는, 재구성된 비디오 데이터를 필터링하는 방법.
  3. 제 2 항에 있어서,
    상기 제 1 필터는 정의된 수평 에지와 연관된 크로마 샘플 값들의 최대 6 개의 행들을 변경하고,
    상기 제 2 필터는 상기 제 1 필터가 적용되는 경우 적용되지 않는, 재구성된 비디오 데이터를 필터링하는 방법.
  4. 제 1 항에 있어서,
    상기 제 1 필터는 정의된 수평 에지와 연관된 크로마 샘플 값들의 최대 6 개의 행들을 변경하고,
    상기 제 2 필터는 정의된 수직 에지와 연관된 크로마 샘플 값들의 최대 4 개의 열들을 변경하는, 재구성된 비디오 데이터를 필터링하는 방법.
  5. 제 1 항에 있어서,
    상기 제 1 필터는 정의된 수평 에지와 연관된 크로마 샘플 값들의 최대 6 개의 행들을 변경하고,
    상기 제 2 필터는 정의된 수직 에지와 연관된 크로마 샘플 값들의 최대 2 개의 열들을 변경하는, 재구성된 비디오 데이터를 필터링하는 방법.
  6. 제 1 항에 있어서,
    상기 제 1 필터는 정의된 수평 에지와 연관된 크로마 샘플 값들의 최대 4 개의 행들을 변경하고,
    상기 제 2 필터는 정의된 수직 에지와 연관된 크로마 샘플 값들의 최대 2 개의 열들을 변경하는, 재구성된 비디오 데이터를 필터링하는 방법.
  7. 제 1 항에 있어서,
    상기 샘플 값들의 어레이를 획득하는 단계는 비디오 데이터의 레지듀얼 블록들과 비디오 데이터의 대응하는 예측 블록들을 합산하는 단계를 포함하는, 재구성된 비디오 데이터를 필터링하는 방법.
  8. 재구성된 비디오 데이터를 필터링하는 장치로서,
    비디오 데이터를 저장하도록 구성된 메모리; 및
    비디오 코딩 디바이스를 포함하고,
    상기 비디오 코딩 디바이스는,
    상기 비디오 데이터의 샘플 값들의 어레이를 획득하는 것으로서, 상기 어레이는 4:2:2 크로마 포맷에 따라 포맷되는, 상기 샘플 값들의 어레이를 획득하고;
    상기 어레이 내의 정의된 수평 에지들과 연관된 크로마 샘플 값들의 행들 (rows) 에 제 1 필터를 적용할지 여부를 결정하는 것으로서, 상기 정의된 수평 에지들은, 상기 어레이의 상기 정의된 수평 에지들 이외의 임의의 수평 에지들에 상기 제 1 필터를 적용할지 여부를 결정하지 않고, 16 개의 크로마 샘플 값들에 의해 분리되는, 상기 제 1 필터를 적용할지 여부를 결정하며;
    상기 어레이 내의 정의된 수직 에지들과 연관된 크로마 샘플 값들의 열들 (columns) 에 상기 제 1 필터와는 상이한 제 2 필터를 적용할지 여부를 결정하는 것으로서, 상기 정의된 수직 에지들은, 상기 어레이의 상기 정의된 수직 에지들 이외의 임의의 수직 에지들에 상기 제 2 필터를 적용할지 여부를 결정하지 않고, 8 개의 크로마 샘플 값들에 의해 분리되고, 상기 제 2 필터는 상기 제 1 필터의 필터 폭보다 작은 필터 폭을 갖는, 상기 제 2 필터를 적용할지 여부를 결정하고;
    임의의 상기 행들에 상기 제 2 필터를 적용하지 않고, 상기 행들 중 하나 이상의 행들에 상기 제 1 필터를 적용하기로 결정하는 것에 응답하여 상기 하나 이상의 행들에 상기 제 1 필터를 적용하며; 및
    임의의 상기 열들에 상기 제 1 필터를 적용하지 않고, 상기 열들 중 하나 이상의 열들에 상기 제 2 필터를 적용하기로 결정하는 것에 응답하여 상기 하나 이상의 열들에 상기 제 2 필터를 적용하도록
    구성된, 재구성된 비디오 데이터를 필터링하는 장치.
  9. 제 8 항에 있어서,
    상기 제 2 필터를 적용할지 여부를 결정하는 것은 상기 제 1 필터를 적용할지 여부에 대한 결정에 적어도 부분적으로 기초하는, 재구성된 비디오 데이터를 필터링하는 장치.
  10. 제 9 항에 있어서,
    상기 제 1 필터는 정의된 수평 에지와 연관된 크로마 샘플 값들의 최대 6 개의 행들을 변경하고,
    상기 제 2 필터는 상기 제 1 필터가 적용되는 경우 적용되지 않는, 재구성된 비디오 데이터를 필터링하는 장치.
  11. 제 8 항에 있어서,
    상기 제 1 필터는 정의된 수평 에지와 연관된 크로마 샘플 값들의 최대 6 개의 행들을 변경하고,
    상기 제 2 필터는 정의된 수직 에지와 연관된 크로마 샘플 값들의 최대 4 개의 열들을 변경하는, 재구성된 비디오 데이터를 필터링하는 장치.
  12. 제 8 항에 있어서,
    상기 제 1 필터는 정의된 수평 에지와 연관된 크로마 샘플 값들의 최대 6 개의 행들을 변경하고,
    상기 제 2 필터는 정의된 수직 에지와 연관된 크로마 샘플 값들의 최대 2 개의 열들을 변경하는, 재구성된 비디오 데이터를 필터링하는 장치.
  13. 제 8 항에 있어서,
    상기 제 1 필터는 정의된 수평 에지와 연관된 크로마 샘플 값들의 최대 4 개의 행들을 변경하고,
    상기 제 2 필터는 정의된 수직 에지와 연관된 크로마 샘플 값들의 최대 2 개의 열들을 변경하는, 재구성된 비디오 데이터를 필터링하는 장치.
  14. 제 8 항에 있어서,
    상기 샘플 값들의 어레이를 획득하는 것은 비디오 데이터의 레지듀얼 블록들과 비디오 데이터의 대응하는 예측 블록들을 합산하는 것을 포함하는, 재구성된 비디오 데이터를 필터링하는 장치.
  15. 제 8 항에 있어서,
    상기 비디오 코딩 디바이스는 비디오 디코딩 디바이스이고,
    집적 회로; 또는
    마이크로프로세서 중 적어도 하나를 더 포함하는, 재구성된 비디오 데이터를 필터링하는 장치.
  16. 제 8 항에 있어서,
    상기 비디오 코딩 디바이스는 비디오 인코딩 디바이스이고,
    집적 회로; 또는
    마이크로프로세서 중 적어도 하나를 더 포함하는, 재구성된 비디오 데이터를 필터링하는 장치.
  17. 저장된 명령들을 갖는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 실행 시에, 재구성된 비디오 데이터를 필터링하는 디바이스의 하나 이상의 프로세서들로 하여금:
    샘플 값들의 어레이를 획득하게 하는 것으로서, 상기 어레이는 4:2:2 크로마 포맷에 따라 포맷되는, 상기 샘플 값들의 어레이를 획득하게 하고;
    상기 어레이 내의 정의된 수평 에지들과 연관된 크로마 샘플 값들의 행들 (rows) 에 제 1 필터를 적용할지 여부를 결정하게 하는 것으로서, 상기 정의된 수평 에지들은, 상기 어레이의 상기 정의된 수평 에지들 이외의 임의의 수평 에지들에 상기 제 1 필터를 적용할지 여부를 결정하지 않고, 16 개의 크로마 샘플 값들에 의해 분리되는, 상기 제 1 필터를 적용할지 여부를 결정하게 하며;
    상기 어레이 내의 정의된 수직 에지들과 연관된 크로마 샘플 값들의 열들 (columns) 에 상기 제 1 필터와는 상이한 제 2 필터를 적용할지 여부를 결정하게 하는 것으로서, 상기 정의된 수직 에지들은, 상기 어레이의 상기 정의된 수직 에지들 이외의 임의의 수직 에지들에 상기 제 2 필터를 적용할지 여부를 결정하지 않고, 8 개의 크로마 샘플 값들에 의해 분리되고, 상기 제 2 필터는 상기 제 1 필터의 필터 폭보다 작은 필터 폭을 갖는, 상기 제 2 필터를 적용할지 여부를 결정하게 하고;
    임의의 상기 행들에 상기 제 2 필터를 적용하지 않고, 상기 행들 중 하나 이상의 행들에 상기 제 1 필터를 적용하기로 결정하는 것에 응답하여 상기 하나 이상의 행들에 상기 제 1 필터를 적용하게 하며; 및
    임의의 상기 열들에 상기 제 1 필터를 적용하지 않고, 상기 열들 중 하나 이상의 열들에 상기 제 2 필터를 적용하기로 결정하는 것에 응답하여 상기 하나 이상의 열들에 상기 제 2 필터를 적용하게 하는, 컴퓨터 판독가능 저장 매체.
  18. 제 17 항에 있어서,
    상기 제 2 필터를 적용할지 여부를 결정하는 것은 상기 제 1 필터를 적용할지 여부에 대한 결정에 적어도 부분적으로 기초하는, 컴퓨터 판독가능 저장 매체.
  19. 제 18 항에 있어서,
    상기 제 1 필터는 정의된 수평 에지와 연관된 크로마 샘플 값들의 최대 6 개의 행들을 변경하고,
    상기 제 2 필터는 상기 제 1 필터가 적용되는 경우 적용되지 않는, 컴퓨터 판독가능 저장 매체.
  20. 제 17 항에 있어서,
    상기 제 1 필터는 정의된 수평 에지와 연관된 크로마 샘플 값들의 최대 6 개의 행들을 변경하고,
    상기 제 2 필터는 정의된 수직 에지와 연관된 크로마 샘플 값들의 최대 4 개의 열들을 변경하는, 컴퓨터 판독가능 저장 매체.
  21. 제 17 항에 있어서,
    상기 제 1 필터는 정의된 수평 에지와 연관된 크로마 샘플 값들의 최대 6 개의 행들을 변경하고,
    상기 제 2 필터는 정의된 수직 에지와 연관된 크로마 샘플 값들의 최대 2 개의 열들을 변경하는, 컴퓨터 판독가능 저장 매체.
  22. 제 17 항에 있어서,
    상기 제 1 필터는 정의된 수평 에지와 연관된 크로마 샘플 값들의 최대 4 개의 행들을 변경하고,
    상기 제 2 필터는 정의된 수직 에지와 연관된 크로마 샘플 값들의 최대 2 개의 열들을 변경하는, 컴퓨터 판독가능 저장 매체.
  23. 제 17 항에 있어서,
    재구성된 샘플 값들의 복수의 이웃하는 어레이들을 획득하는 명령들은 비디오 데이터의 레지듀얼 블록들과 비디오 데이터의 대응하는 예측 블록들을 합산하는 명령들을 포함하는, 컴퓨터 판독가능 저장 매체.
  24. 재구성된 비디오 데이터를 필터링하는 장치로서,
    샘플 값들의 어레이를 획득하는 수단으로서, 상기 어레이는 4:2:2 크로마 포맷에 따라 포맷되는, 상기 샘플 값들의 어레이를 획득하는 수단;
    상기 어레이 내의 정의된 수평 에지들과 연관된 크로마 샘플 값들의 행들 (rows) 에 제 1 필터를 적용할지 여부를 결정하는 수단으로서, 상기 정의된 수평 에지들은, 상기 어레이의 상기 정의된 수평 에지들 이외의 임의의 수평 에지들에 상기 제 1 필터를 적용할지 여부를 결정하지 않고, 16 개의 크로마 샘플 값들에 의해 분리되는, 상기 제 1 필터를 적용할지 여부를 결정하는 수단;
    상기 어레이 내의 정의된 수직 에지들과 연관된 크로마 샘플 값들의 열들 (columns) 에 상기 제 1 필터와는 상이한 제 2 필터를 적용할지 여부를 결정하는 수단으로서, 상기 정의된 수직 에지들은, 상기 어레이의 상기 정의된 수직 에지들 이외의 임의의 수직 에지들에 상기 제 2 필터를 적용할지 여부를 결정하지 않고, 8 개의 크로마 샘플 값들에 의해 분리되고, 상기 제 2 필터는 상기 제 1 필터의 필터 폭보다 작은 필터 폭을 갖는, 상기 제 2 필터를 적용할지 여부를 결정하는 수단;
    임의의 상기 행들에 상기 제 2 필터를 적용하지 않고, 상기 행들 중 하나 이상의 행들에 상기 제 1 필터를 적용하기로 결정하는 것에 응답하여 상기 하나 이상의 행들에 상기 제 1 필터를 적용하는 수단; 및
    임의의 상기 열들에 상기 제 1 필터를 적용하지 않고, 상기 열들 중 하나 이상의 열들에 상기 제 2 필터를 적용하기로 결정하는 것에 응답하여 상기 하나 이상의 열들에 상기 제 2 필터를 적용하는 수단을 포함하는, 재구성된 비디오 데이터를 필터링하는 장치.
  25. 제 24 항에 있어서,
    상기 제 2 필터를 적용할지 여부를 결정하는 것은 상기 제 1 필터를 적용할지 여부에 대한 결정에 적어도 부분적으로 기초하는, 재구성된 비디오 데이터를 필터링하는 장치.
  26. 제 25 항에 있어서,
    상기 제 1 필터는 정의된 수평 에지와 연관된 크로마 샘플 값들의 최대 6 개의 행들을 변경하고,
    상기 제 2 필터는 상기 제 1 필터가 적용되는 경우 적용되지 않는, 재구성된 비디오 데이터를 필터링하는 장치.
  27. 제 24 항에 있어서,
    상기 제 1 필터는 정의된 수평 에지와 연관된 크로마 샘플 값들의 최대 6 개의 행들을 변경하고,
    상기 제 2 필터는 정의된 수직 에지와 연관된 크로마 샘플 값들의 최대 4 개의 열들을 변경하는, 재구성된 비디오 데이터를 필터링하는 장치.
  28. 제 24 항에 있어서,
    상기 제 1 필터는 정의된 수평 에지와 연관된 크로마 샘플 값들의 최대 6 개의 행들을 변경하고,
    상기 제 2 필터는 정의된 수직 에지와 연관된 크로마 샘플 값들의 최대 2 개의 열들을 변경하는, 재구성된 비디오 데이터를 필터링하는 장치.
  29. 제 24 항에 있어서,
    상기 제 1 필터는 정의된 수평 에지와 연관된 크로마 샘플 값들의 최대 4 개의 행들을 변경하고,
    상기 제 2 필터는 정의된 수직 에지와 연관된 크로마 샘플 값들의 최대 2 개의 열들을 변경하는, 재구성된 비디오 데이터를 필터링하는 장치.
  30. 제 24 항에 있어서,
    상기 샘플 값들의 어레이를 획득하는 수단은 비디오 데이터의 레지듀얼 블록들과 비디오 데이터의 대응하는 예측 블록들을 합산하는 수단을 포함하는, 재구성된 비디오 데이터를 필터링하는 장치.
  31. 재구성된 비디오 데이터를 필터링하는 방법으로서,
    비디오 블록이 4:2:2 또는 4:4:4 크로마 포맷들 중 하나에 따라 포맷되는지를 결정하는 단계; 및
    결정된 크로마 포맷에 기초하여 상기 비디오 블록의 크로마 에지들을 디블록킹하는 단계를 포함하고,
    상기 디블록킹하는 단계는:
    상기 비디오 블록이 4:2:2 크로마 포맷에 따라 포맷되는 경우, 제 2 필터가 제 1 필터의 필터 폭보다 작은 필터 폭을 갖는 상기 제 1 필터 및 상기 제 2 필터를 포함하는, 필터들의 제 1 세트를 사용하여 상기 크로마 에지들을 디블록킹하는 단계로서, 하나 이상의 필터들의 상기 제 1 세트는 8x16 디블록킹 그리드에 기초하고, 상기 비디오 블록이 4:2:0 크로마 포맷에 따라 포맷되는 경우 사용될 8x8 디블록킹 그리드에 기초한 필터들의 제 2 세트와는 상이하며, 상기 필터들의 제 1 세트를 사용하여 상기 크로마 에지들을 디블록킹하는 단계는:
    상기 비디오 블록의 정의된 수평 크로마 에지들 이외의 임의의 수평 에지들에 상기 제 1 필터를 적용할지 여부를 결정하지 않고, 16 개의 크로마 샘플 값들에 의해 분리되는, 상기 비디오 블록의 상기 정의된 수평 크로마 에지들과 연관된 크로마 샘플 값들의 하나 이상의 행들 (rows) 에 상기 제 1 필터를 적용할지 여부를 결정하는 단계; 및
    상기 비디오 블록의 상기 정의된 수평 크로마 에지들 이외의 임의의 수직 에지들에 상기 제 2 필터를 적용할지 여부를 결정하지 않고, 8 개의 크로마 샘플 값들에 의해 분리되는, 상기 비디오 블록의 정의된 수직 크로마 에지들과 연관된 크로마 샘플 값들의 하나 이상의 열들 (columns) 에 상기 제 2 필터를 적용할지 여부를 결정하는 단계를 포함하는, 상기 필터들의 제 1 세트를 사용하여 상기 크로마 에지들을 디블록킹하는 단계, 또는
    상기 비디오 블록이 4:4:4 크로마 포맷에 따라 포맷되는 경우 16x16 디블록킹 그리드에 기초하는, 필터들의 상기 제 1 세트 및 필터들의 상기 제 2 세트와는 상이한, 하나 이상의 필터들의 제 3 세트를 사용하여 상기 크로마 에지들을 디블록킹하는 단계를 포함하는, 재구성된 비디오 데이터를 필터링하는 방법.
  32. 제 31 항에 있어서,
    상기 비디오 블록이 4:2:2 또는 4:4:4 크로마 포맷들 중 하나에 따라 포맷되는지를 결정하는 단계는 시퀀스 파라미터 세트 (SPS) 에 포함된 크로마 포맷 인덱스 값의 값을 결정하는 단계를 포함하는, 재구성된 비디오 데이터를 필터링하는 방법.
  33. 재구성된 비디오 데이터를 필터링하는 장치로서,
    비디오 데이터를 저장하도록 구성된 메모리; 및
    비디오 코딩 디바이스를 포함하고,
    상기 비디오 코딩 디바이스는,
    상기 비디오 데이터의 비디오 블록이 4:2:0, 4:2:2, 또는 4:4:4 크로마 포맷들 중 하나에 따라 포맷되는지를 결정하고;
    상기 비디오 블록이 4:2:0 포맷에 따라 포맷되는 경우 하나 이상의 필터들의 제 1 세트를 사용하여 상기 비디오 블록의 크로마 에지들을 디블록킹하는 것으로서, 필터들의 상기 제 1 세트는 8x8 디블록킹 그리드에 기초하는, 상기 제 1 세트를 사용하여 상기 비디오 블록의 크로마 에지들을 디블록킹하며;
    상기 비디오 블록이 4:2:2 크로마 포맷에 따라 포맷되는 경우 8x16 디블록킹 그리드에 기초하는, 필터들의 상기 제 1 세트와는 상이한, 제 2 필터가 상기 제 1 필터의 필터 폭보다 작은 필터 폭을 갖는 상기 제 1 필터 및 상기 제 2 필터를 포함하는, 필터들의 제 2 세트를 사용하여 상기 크로마 에지들을 디블록킹하는 것으로서, 필터들의 상기 제 2 세트를 사용하여 상기 크로마 에지들을 디블록킹하기 위해, 상기 비디오 코딩 디바이스는:
    상기 비디오 블록의 정의된 수평 크로마 에지들 이외의 임의의 수평 에지들에 상기 제 1 필터를 적용할지 여부를 결정하지 않고, 16 개의 크로마 샘플 값들에 의해 분리되는, 상기 비디오 블록의 상기 정의된 수평 크로마 에지들과 연관된 크로마 샘플 값들의 하나 이상의 행들 (rows) 에 상기 제 1 필터를 적용할지 여부를 결정하고; 및
    상기 비디오 블록의 상기 정의된 수평 크로마 에지들 이외의 임의의 수직 에지들에 상기 제 2 필터를 적용할지 여부를 결정하지 않고, 8 개의 크로마 샘플 값들에 의해 분리되는, 상기 비디오 블록의 정의된 수직 크로마 에지들과 연관된 크로마 샘플 값들의 하나 이상의 열들 (columns) 에 상기 제 2 필터를 적용할지 여부를 결정하도록 구성되는, 상기 필터들의 제 2 세트를 사용하여 상기 크로마 에지들을 디블록킹하고; 및
    상기 비디오 블록이 4:4:4 크로마 포맷에 따라 포맷되는 경우 16x16 디블록킹 그리드에 기초하는, 필터들의 상기 제 1 세트 및 필터들의 상기 제 2 세트와는 상이한, 하나 이상의 필터들의 제 3 세트를 사용하여 상기 크로마 에지들을 디블록킹하도록 구성된, 재구성된 비디오 데이터를 필터링하는 장치.
  34. 제 33 항에 있어서,
    상기 비디오 블록이 상기 4:2:0, 4:2:2, 또는 4:4:4 크로마 포맷들 중 하나에 따라 포맷되는지를 결정하기 위해, 상기 비디오 코딩 디바이스는 시퀀스 파라미터 세트 (SPS) 에 포함된 크로마 포맷 인덱스 값의 값을 결정하도록 구성되는, 재구성된 비디오 데이터를 필터링하는 장치.
  35. 저장된 명령들을 갖는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 실행 시에, 재구성된 비디오 데이터를 필터링하는 디바이스의 하나 이상의 프로세서들로 하여금:
    비디오 블록이 4:2:0, 4:2:2, 또는 4:4:4 크로마 포맷 중 하나에 따라 포맷되는지를 결정하게 하고;
    결정된 크로마 포맷에 기초하여 상기 비디오 블록의 크로마 에지들을 디블록킹하게 하며,
    상기 프로세서로 하여금 크로마 에지들을 디블록킹하게 하는 명령들은, 상기 프로세서로 하여금:
    상기 비디오 블록이 4:2:0 크로마 포맷에 따라 포맷되는 경우 8x8 디블록킹 그리드에 기초하는 하나 이상의 필터들의 제 1 세트를 사용하여 상기 크로마 에지들을 디블록킹하게 하고,
    상기 비디오 블록이 4:2:2 크로마 포맷에 따라 포맷되는 경우 8x16 디블록킹 그리드에 기초하는, 필터들의 상기 제 1 세트와는 상이한, 제 2 필터가 상기 제 1 필터의 필터 폭보다 작은 필터 폭을 갖는 상기 제 1 필터 및 상기 제 2 필터를 포함하는, 필터들의 제 2 세트를 사용하여 상기 크로마 에지들을 디블록킹하게 하는 것으로서, 상기 프로세서로 하여금 필터들의 제 2 세트를 사용하여 상기 크로마 에지들을 디블록킹하게 하는 명령들은 상기 프로세서로 하여금:
    상기 비디오 블록의 정의된 수평 크로마 에지들 이외의 임의의 수평 에지들에 상기 제 1 필터를 적용할지 여부를 결정하지 않고, 16 개의 크로마 샘플 값들에 의해 분리되는, 상기 비디오 블록의 상기 정의된 수평 크로마 에지들과 연관된 크로마 샘플 값들의 하나 이상의 행들 (rows) 에 상기 제 1 필터를 적용할지 여부를 결정하게 하고; 및
    상기 비디오 블록의 상기 정의된 수평 크로마 에지들 이외의 임의의 수직 에지들에 상기 제 2 필터를 적용할지 여부를 결정하지 않고, 8 개의 크로마 샘플 값들에 의해 분리되는, 상기 비디오 블록의 정의된 수직 크로마 에지들과 연관된 크로마 샘플 값들의 하나 이상의 열들 (columns) 에 상기 제 2 필터를 적용할지 여부를 결정하게 하는 명령들을 포함하는, 상기 필터들의 제 2 세트를 사용하여 상기 크로마 에지들을 디블록킹하게 하며; 및
    상기 비디오 블록이 4:4:4 크로마 포맷에 따라 포맷되는 경우 16x16 디블록킹 그리드에 기초하는, 필터들의 상기 제 1 세트 및 필터들의 상기 제 2 세트와는 상이한, 하나 이상의 필터들의 제 3 세트를 사용하여 상기 크로마 에지들을 디블록킹하게 하는 명령들을 포함하는, 컴퓨터 판독가능 저장 매체.
  36. 제 35 항에 있어서,
    상기 프로세서로 하여금 상기 비디오 블록이 4:2:0, 4:2:2, 또는 4:4:4 크로마 포맷들 중 하나에 따라 포맷되는지를 결정하게 하는 명령들은, 상기 프로세서로 하여금 시퀀스 파라미터 세트 (SPS) 에 포함된 크로마 포맷 인덱스 값의 값을 결정하게 하는 명령들을 포함하는, 컴퓨터 판독가능 저장 매체.
  37. 재구성된 비디오 데이터를 필터링하는 장치로서,
    비디오 블록이 4:2:0, 4:2:2, 또는 4:4:4 크로마 포맷들 중 하나에 따라 포맷되는지를 결정하는 수단; 및
    결정된 크로마 포맷에 기초하여 상기 비디오 블록의 크로마 에지들을 디블록킹하는 수단을 포함하고,
    상기 디블록킹하는 수단은:
    상기 비디오 블록이 4:2:0 크로마 포맷에 따라 포맷되는 경우 8x8 디블록킹 그리드에 기초하는 하나 이상의 필터들의 제 1 세트를 사용하여 상기 크로마 에지들을 디블록킹하는 수단,
    상기 비디오 블록이 4:2:2 크로마 포맷에 따라 포맷되는 경우 8x16 디블록킹 그리드에 기초하는, 필터들의 상기 제 1 세트와는 상이한, 제 2 필터가 제 1 필터의 필터 폭보다 작은 필터 폭을 갖는 상기 제 1 필터 및 상기 제 2 필터를 포함하는, 필터들의 제 2 세트를 사용하여 상기 크로마 에지들을 디블록킹하는 수단으로서, 상기 필터들의 제 1 세트를 사용하여 상기 크로마 에지들을 디블록킹하는 수단은:
    상기 비디오 블록의 정의된 수평 크로마 에지들 이외의 임의의 수평 에지들에 상기 제 1 필터를 적용할지 여부를 결정하지 않고, 16 개의 크로마 샘플 값들에 의해 분리되는, 상기 비디오 블록의 상기 정의된 수평 크로마 에지들과 연관된 크로마 샘플 값들의 하나 이상의 행들 (rows) 에 상기 제 1 필터를 적용할지 여부를 결정하는 수단; 및
    상기 비디오 블록의 상기 정의된 수평 크로마 에지들 이외의 임의의 수직 에지들에 상기 제 2 필터를 적용할지 여부를 결정하지 않고, 8 개의 크로마 샘플 값들에 의해 분리되는, 상기 비디오 블록의 정의된 수직 크로마 에지들과 연관된 크로마 샘플 값들의 하나 이상의 열들 (columns) 에 상기 제 2 필터를 적용할지 여부를 결정하는 수단을 포함하는, 상기 필터들의 제 2 세트를 사용하여 상기 크로마 에지들을 디블록킹하는 수단; 및
    상기 비디오 블록이 4:4:4 크로마 포맷에 따라 포맷되는 경우 16x16 디블록킹 그리드에 기초하는, 필터들의 상기 제 1 세트 및 필터들의 상기 제 2 세트와는 상이한, 하나 이상의 필터들의 제 3 세트를 사용하여 상기 크로마 에지들을 디블록킹하는 수단을 포함하는, 재구성된 비디오 데이터를 필터링하는 장치.
  38. 제 37 항에 있어서,
    상기 비디오 블록이 4:2:0, 4:2:2, 또는 4:4:4 크로마 포맷들 중 하나에 따라 포맷되는지를 결정하는 수단은 시퀀스 파라미터 세트 (SPS) 에 포함된 크로마 포맷 인덱스 값의 값을 결정하는 수단을 포함하는, 재구성된 비디오 데이터를 필터링하는 장치.
KR1020147023153A 2012-01-19 2013-01-18 비디오 코딩을 위한 크로마 데이터의 디블록킹 KR101719971B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201261588554P 2012-01-19 2012-01-19
US61/588,554 2012-01-19
US201261705525P 2012-09-25 2012-09-25
US61/705,525 2012-09-25
US13/744,019 US9363516B2 (en) 2012-01-19 2013-01-17 Deblocking chroma data for video coding
US13/744,019 2013-01-17
PCT/US2013/022211 WO2013109936A1 (en) 2012-01-19 2013-01-18 Deblocking chroma data for video coding

Publications (2)

Publication Number Publication Date
KR20140120346A KR20140120346A (ko) 2014-10-13
KR101719971B1 true KR101719971B1 (ko) 2017-03-27

Family

ID=48797205

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147023153A KR101719971B1 (ko) 2012-01-19 2013-01-18 비디오 코딩을 위한 크로마 데이터의 디블록킹

Country Status (6)

Country Link
US (1) US9363516B2 (ko)
EP (1) EP2805502B1 (ko)
JP (1) JP6133330B2 (ko)
KR (1) KR101719971B1 (ko)
CN (1) CN104054344B (ko)
WO (1) WO2013109936A1 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012090334A1 (ja) * 2010-12-29 2012-07-05 富士通株式会社 映像信号符号化装置、映像信号符号化方法およびプログラム
US9008180B2 (en) * 2011-04-21 2015-04-14 Intellectual Discovery Co., Ltd. Method and apparatus for encoding/decoding images using a prediction method adopting in-loop filtering
US8913656B2 (en) * 2011-10-14 2014-12-16 Mediatek Inc. Method and apparatus for in-loop filtering
GB2501535A (en) * 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
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
AU2013200051B2 (en) * 2013-01-04 2016-02-11 Canon Kabushiki Kaisha Method, apparatus and system for de-blocking video data
US20140205025A1 (en) * 2013-01-22 2014-07-24 Microsoft Corporation Adaptive filter application to video data
US9294766B2 (en) 2013-09-09 2016-03-22 Apple Inc. Chroma quantization in video coding
US20150124873A1 (en) * 2013-11-01 2015-05-07 Microsoft Corporation Chroma Down-Conversion and Up-Conversion Processing
US10230992B2 (en) 2014-03-03 2019-03-12 Sony Corporation Strong intra smoothing for in RExt
WO2015131404A1 (en) * 2014-03-07 2015-09-11 Mediatek Singapore Pte. Ltd. Methods for depth map coding
US20150382016A1 (en) * 2014-06-27 2015-12-31 Mitsubishi Electric Research Laboratories, Inc. Method for Processing Multi-Component Video and Images
JP6579393B2 (ja) * 2014-10-06 2019-09-25 ソニー株式会社 画像処理装置および方法
US9749646B2 (en) 2015-01-16 2017-08-29 Microsoft Technology Licensing, Llc Encoding/decoding of high chroma resolution details
US9854201B2 (en) 2015-01-16 2017-12-26 Microsoft Technology Licensing, Llc Dynamically updating quality to higher chroma sampling rate
WO2017045101A1 (en) * 2015-09-14 2017-03-23 Mediatek Singapore Pte. Ltd. Advanced deblocking filter in video coding
US10440391B2 (en) * 2016-08-05 2019-10-08 Mediatek Inc. Method and apparatus of video coding
US10368080B2 (en) 2016-10-21 2019-07-30 Microsoft Technology Licensing, Llc Selective upsampling or refresh of chroma sample values
WO2018171888A1 (en) 2017-03-23 2018-09-27 Huawei Technologies Co., Ltd. Apparatus and method for de-blocking filtering
US10531085B2 (en) * 2017-05-09 2020-01-07 Futurewei Technologies, Inc. Coding chroma samples in video compression
EP3454556A1 (en) * 2017-09-08 2019-03-13 Thomson Licensing Method and apparatus for video encoding and decoding using pattern-based block filtering
US10965941B2 (en) * 2017-10-09 2021-03-30 Qualcomm Incorporated Position-dependent prediction combinations in video coding
CN111971961A (zh) 2018-03-28 2020-11-20 华为技术有限公司 图像处理设备和执行有效去块效应的方法技术领域
WO2020100764A1 (en) * 2018-11-14 2020-05-22 Sharp Kabushiki Kaisha Systems and methods for applying deblocking filters to reconstructed video data
WO2020141880A1 (ko) * 2019-01-02 2020-07-09 엘지전자 주식회사 영상 코딩 시스템에서 디블록킹 필터링을 사용하는 영상 디코딩 방법 및 장치
AU2019201653A1 (en) 2019-03-11 2020-10-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a tree of blocks of video samples
EP4107962A4 (en) * 2020-02-21 2023-07-26 Alibaba Group Holding Limited METHODS OF PROCESSING CHROMA SIGNALS
EP4131971A4 (en) 2020-04-02 2024-04-17 LG Electronics, Inc. IMAGE CODING METHODS BASED ON CHROMA DEBLOCKING PARAMETER INFORMATION FOR SINGLE COLOR FORMAT IN A VIDEO OR IMAGE CODING SYSTEM

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7227901B2 (en) * 2002-11-21 2007-06-05 Ub Video Inc. Low-complexity deblocking filter
US8116379B2 (en) * 2004-10-08 2012-02-14 Stmicroelectronics, Inc. Method and apparatus for parallel processing of in-loop deblocking filter for H.264 video compression standard
KR20060060919A (ko) 2004-12-01 2006-06-07 삼성전자주식회사 H.264/mpeg-4 에서의 블록킹 효과를 제거하기 위한디블록 필터 및 필터링 방법
KR100843196B1 (ko) * 2004-12-17 2008-07-02 삼성전자주식회사 H.264/avc 비디오 디코더의 디블록킹 필터
TWI319291B (en) * 2006-07-25 2010-01-01 Novatek Microelectronics Corp Self-adaptive image processing device and method
JP4712642B2 (ja) * 2006-08-17 2011-06-29 富士通セミコンダクター株式会社 デブロッキングフィルタ、画像符号化装置および画像復号化装置
US9001899B2 (en) * 2006-09-15 2015-04-07 Freescale Semiconductor, Inc. Video information processing system with selective chroma deblock filtering
US20080123750A1 (en) * 2006-11-29 2008-05-29 Michael Bronstein Parallel deblocking filter for H.264 video codec
US8204129B2 (en) * 2007-03-27 2012-06-19 Freescale Semiconductor, Inc. Simplified deblock filtering for reduced memory access and computational complexity
KR20090013513A (ko) * 2007-08-02 2009-02-05 삼성전자주식회사 영상처리방법 및 이를 적용한 영상처리장치
CN101472173B (zh) * 2007-12-29 2012-07-25 安凯(广州)微电子技术有限公司 一种去块滤波方法、系统及去块滤波器
GB0807804D0 (en) * 2008-04-29 2008-06-04 Imagination Tech Ltd Interlaced video edge filtering
JP5183664B2 (ja) * 2009-10-29 2013-04-17 財團法人工業技術研究院 ビデオ圧縮のためのデブロッキング装置及び方法
US8761545B2 (en) * 2010-11-19 2014-06-24 Rovi Technologies Corporation Method and apparatus for identifying video program material or content via differential signals
US9565436B2 (en) * 2011-01-14 2017-02-07 Telefonaktiebolaget Lm Ericsson (Publ) Method for filter control and a filtering control device
US20120213438A1 (en) * 2011-02-23 2012-08-23 Rovi Technologies Corporation Method and apparatus for identifying video program material or content via filter banks
US20120230423A1 (en) * 2011-03-10 2012-09-13 Esenlik Semih Line memory reduction for video coding and decoding
US20120257702A1 (en) * 2011-04-11 2012-10-11 Matthias Narroschke Order of deblocking
TW201309036A (zh) * 2011-06-28 2013-02-16 Samsung Electronics Co Ltd 使用亮度成分影像的預測色度成分影像用的裝置與方法
US9167269B2 (en) * 2011-10-25 2015-10-20 Qualcomm Incorporated Determining boundary strength values for deblocking filtering for video coding

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A. Norkin, K. Andersson, R. Sjoberg, Q. Huang, J. An, X. Guo, S. Lei, "CE12: Ericsson's and Mediatek's deblocking filter" (JCTVC-F118), 6th JCT-VC Meeting, Torino, Italy, 14-22 July, 2011
A. Norkin, K. Andersson, R. Sjoberg, Q. Huang, J. An, X. Guo, S. Lei, "Description of Core Experiment 12: Deblocking filtering" (JCTVC-F912), 6th JCT-VC Meeting, Torino, Italy, 14-22 July, 2011
Bross B., et al., "High Efficiency Video Coding (HEVC) text specification Working Draft 5" (JCTVC-G1103), 7th JCT-VC Meeting, Geneva, 19. December 2011.
Geert Van der Auwera, et al., "CE6.b: SDIP Harmonization with Deblocking, MDIS and HE Residual Coding" (JCTVC-F556), 6th JCT-VC Meeting, Torino, Italy, 14-22 July, 2011

Also Published As

Publication number Publication date
JP2015504294A (ja) 2015-02-05
CN104054344A (zh) 2014-09-17
US20130188744A1 (en) 2013-07-25
WO2013109936A1 (en) 2013-07-25
CN104054344B (zh) 2017-10-17
KR20140120346A (ko) 2014-10-13
JP6133330B2 (ja) 2017-05-24
EP2805502B1 (en) 2016-08-31
US9363516B2 (en) 2016-06-07
EP2805502A1 (en) 2014-11-26

Similar Documents

Publication Publication Date Title
KR101719971B1 (ko) 비디오 코딩을 위한 크로마 데이터의 디블록킹
KR101726484B1 (ko) 크로마 슬라이스-레벨 qp 오프셋 및 디블록킹
KR102493839B1 (ko) 비디오 코딩에서의 적응적 컬러 변환을 위한 qp 도출 및 오프셋
US10412419B2 (en) Adaptive filtering in video coding
KR101854893B1 (ko) 비디오 코딩에서 4:2:2 샘플 포맷에 대한 인트라 코딩
KR101613858B1 (ko) 화상 구획화 체계들에 대한 통합된 설계
US10313682B2 (en) Determining regions when performing intra block copying
KR101619004B1 (ko) 인트라 예측 코딩에 있어서의 최빈 변환
KR101632776B1 (ko) 비디오 코딩에 대한 구문 엘리먼트들의 공동 코딩
US10694214B2 (en) Multi-type parallelized sample adaptive offset in video coding
US20160105685A1 (en) Boundary filtering and cross-component prediction in video coding
US20110249754A1 (en) Variable length coding of coded block pattern (cbp) in video compression
EP2984827B1 (en) Sample adaptive offset scaling based on bit-depth
KR20140074979A (ko) 변환 의존적 디블록킹 필터링의 수행

Legal Events

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