KR20230029670A - 적응적 루프 필터링을 위한 경계 위치 - Google Patents

적응적 루프 필터링을 위한 경계 위치 Download PDF

Info

Publication number
KR20230029670A
KR20230029670A KR1020227045426A KR20227045426A KR20230029670A KR 20230029670 A KR20230029670 A KR 20230029670A KR 1020227045426 A KR1020227045426 A KR 1020227045426A KR 20227045426 A KR20227045426 A KR 20227045426A KR 20230029670 A KR20230029670 A KR 20230029670A
Authority
KR
South Korea
Prior art keywords
alf
luma
boundary
chroma
variable
Prior art date
Application number
KR1020227045426A
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 KR20230029670A publication Critical patent/KR20230029670A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

적응적 루프 필터링을 구현하기 위한 기술들이 개시된다. 비디오 처리의 일 예시적 방법은, 비디오의 비디오 유닛과 상기 비디오의 비트스트림 간의 변환을 위해, 루마 적응적 루프 필터가 상기 비디오 유닛의 루마 성분에 선택적으로 적용될 때 가로지르는 제1 루마 적응적 루프 필터(ALF)) 경계 및 제2 루마 ALF 경계에 대해 제1 결정을 내리는 단계, 상기 제2 루마 ALF 경계로부터, 크로마 적응적 루프 필터가 상기 비디오 유닛의 크로마 성분에 대해 선택적으로 적용될 때 가로지르는 크로마 ALF 경계에 대해 제2 결정을 내리는 단계, 그리고 상기 제1 결정 및 제2 결정에 기반하여 상기 변환을 실시하는 단계를 포함한다.

Description

적응적 루프 필터링을 위한 경계 위치
관련 출원들에 대한 상호 참조
파리협약에 따른 적용가능한 특허법 및/또는 규칙에 따라, 본 출원은 2020년 6월 30일에 제출된 국제 특허 출원 No. PCT/CN2020/099604의 우선권과 혜택을 적시에 주장하기 위해 만들어졌다. 상기 법 하의 모든 목적을 위해, 상기 출원의 전체 개시물은 본 출원의 개시의 일부로서 참고로 통합된다.
본 특허 문서는 영상 및 비디오 코딩에 관한 것이다.
디지털 비디오는 인터넷 및 기타 디지털 통신 네트워크에서 가장 큰 대역폭을 차지한다. 비디오를 수신하고 표시할 수 있는 접속된 사용자 디바이스들의 수가 증가함에 따라, 디지털 비디오 사용을 위한 대역폭 수요가 계속 증가할 것으로 예상된다.
본 문서는 비디오 인코딩 또는 디코딩 동안 적응적 루프 필터링을 실시하기 위해 비디오 인코더들 및 디코더들에 의해 사용될 수 있는 기술들을 개시한다.
일 예시적 양상에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 비디오 유닛과 상기 비디오의 비트스트림 간의 변환을 위해, 루마 적응적 루프 필터가 상기 비디오 유닛의 루마 성분(luma component)에 선택적으로 적용될 때 가로지르는 제1 루마 적응적 루프 필터(adaptive loop filter (ALF)) 경계 및 제2 루마 ALF 경계에 대해 제1 결정을 내리는 단계; 상기 제2 루마 ALF 경계로부터, 크로마 적응적 루프 필터가 상기 비디오 유닛의 크로마 성분(chroma component)에 대해 선택적으로 적용될 때 가로지르는 크로마 ALF 경계에 대해 제2 결정을 내리는 단계; 그리고 상기 제1 결정 및 제2 결정에 기반하여 상기 변환을 실시하는 단계를 포함한다.
또 다른 예시적 양상에서, 비디오 인코더 장치가 개시된다. 상기 비디오 인코더는 상기 기술된 방법들을 구현하도록 구성된 프로세서를 포함한다.
또 다른 예시적 양상에서, 비디오 디코더 장치가 개시된다. 상기 비디오 인코더는 상기 기술된 방법들을 구현하도록 구성된 프로세서를 포함한다.
또 다른 예시적 양상에서, 저장된 코드를 그 안에 가지고 있는 컴퓨터 판독가능 매체가 개시된다. 상기 코드는 프로세서로 실행가능한 코드의 형태로 여기에서 기술된 방법들 중 하나를 구현한다.
이러한 특성들 및 기타 특성들은 본 문서 전체에 걸쳐 기술된다.
도 1은 픽처에서 4:2:2:1 루마 및 크로마 샘플들의 수직 및 수평 위치들을 보여준다.
도 2는 인코더 블록도의 일 예이다.
도 3은 12개의 타일과 3개의 래스터 스캔 슬라이스로 분할되는 18 x 12 루마 코딩 트리 유닛들(CTU들)을 갖는 픽처를 보여준다.
도 4는 24개의 타일과 9개의 직사각형 슬라이스로 분할되는 18 x 12 루마 CTU들을 갖는 픽처를 보여준다.
도 5는 4개의 타일 및 4 개의 직사각형 슬라이스로 분할되는 픽처를 보여준다.
도 6은 15개의 타일, 24개의 슬라이스 및 24개의 서브픽처로 분할되는 픽처를 도시한다.
도 7A 내지 도 7C가 보여주는 것은 다음과 같다: 도 7A - 하단 픽처 경계를 가로지르는 CTB들; 도 7B - 우측 픽처 경계를 가로지르는 CTB들; 도 7C - 우측 하단 픽처 경계를 가로지르는 CTB들.
도 8은 픽처 샘플들, 8x8 그리드 상의 수평 및 수직 블록 경계들, 그리고 병렬로 디블로킹될 수 있는 8x8 샘플들의 비중첩 블록들의 도시이다.
도 9는 필터 ON/OFF 결정 및 강/약 필터 선택에 관련된 픽셀들을 보여준다.
도 10은 EO 샘플 분류 즉, 수평 방향(E0 클래스 = 0), 수직 방향(EO 클래스 = 1), 135도 대각 방향(E0 클래스 = 2) 및 45도 대각 방향(E0 클래스 = 3)에 대한 네 개의 1D 방향성 패턴들을 보여준다.
도 11은 ALF 필터 모양들(크로마: 5 X 5 다이아몬드, 루마 7 X 7 다이아몬드)의 예들을 보여준다.
도 12a 내지 도 12d는 다음을 보여준다: 도 12a - 수직 그래디언트에 대해 서브샘플링된 위치들; 도 12b - 수평 그래디언트에 대해 서브샘플링된 위치들; 도 12c - 대각 그래디언트에 대해 서브샘플링된 위치들; 및 도 12d - 대각 그래디언트에 대해 서브샘플링된 위치들.
도 13은 루마 성분에 대한 VTM-4.0에서 루프 필터 라인 버퍼 요건의 일 예를 보여준다.
도 14는 크로마 성분에 대한 VTM-4.0에서 루프 필터 라인 버퍼 요건의 일 예를 도시한다.
도 15는 가상 경계들에서의 수정된 블록 분류의 일 예를 보여준다.
도 16은 가상 경계들에서의 루마 성분에 대한 수정된 ALF 필터링의 일 예를 보여준다.
도 17a 내지 도 17c는 다음을 보여준다: 도 17a - (각 변에서) 패딩될 필요가 있는 VB 위/아래에서 요청되는 하나의 라인; 도 17b - (각 변에서) 패딩될 필요가 있는 VB 위/아래에서 요청되는 두 개의 라인; 도 17c - (각 변에서) 패딩될 필요가 있는 VB 위/아래에서 요청되는 세 개의 라인.
도 18은 픽처/서브픽처/슬라이스/타일 경계에서 루마 ALF 필터링을 위한 반복적 패딩의 예들을 보여준다.
도 19는 VVC에서의 수평 랩 어라운드 모션 보상의 일 예를 보여준다.
도 20은 3x2 배치에서 HEC의 영상을 보여준다.
도 21a는 다른 루프 필터들과 관련한 CC-ALF의 배치를 보여준다.
도 21b는 다이아몬드 모양 필터를 보여준다.
도 22는 JVET-P0080에서 CC-ALF를 위한 ALF 가상 경계에서의 반복적 패딩의 일 예를 보여준다.
도 23은 8개의 고유한 계수들을 가지는 3x4 다이아몬드 모양 필터를 보여준다.
도 24는 JVET-P1008에서 CC-ALF를 위한 ALF 가상 경계에서의 반복적 패딩의 일 예를 보여준다.
도 25는 JVET-P0106에서 8개의 계수들의 CC-ALF 필터 모양을 보여준다.
도 26은 JVET-P0173에서 6개의 계수들의 CC-ALF 필터 모양을 보여준다.
도 27은 JVET-P0251에서 6개의 계수들의 CC-ALF 필터 모양을 보여준다.
도 28은 JC-CCALF 워크 플로우의 일 예를 보여준다.
도 29는 8 탭 4x3 필터 모양을 사용한 CC-ALF 필터링 방법을 위해 패딩될 샘플들의 예시적 위치들을 보여준다.
도 30은 미러링된 패딩 방법 1의 일 예를 보여준다.
도 31은 미러링된 패딩 방법 2의 일 예를 보여준다.
도 32는 개시된 기술들이 실시될 수 있는 예시적인 비디오 처리 시스템의 블록도이다.
도 33은 비디오 처리를 위해 사용되는 예시적인 하드웨어 플랫폼의 블록도이다.
도 34는 개시된 기술의 일부 실시예들에 기반한 비디오 처리의 예시적 방법을 위한 흐름도이다.
도 35는 본 개시의 일부 실시예들에 따른 비디오 코딩 시스템을 도시하는 블록도이다.
도 36은 본 개시의 일부 실시예들에 따른 인코더를 도시하는 블록도이다.
도 37는 본 개시의 일부 실시예들에 따른 디코더를 도시하는 블록도이다.
도 38은 개시된 기술의 일부 실시예들에 기반하는 비디오 처리의 일 예시적 방법을 위한 흐름도이다
본 문서에서 사용된 섹션 제목들은 이해를 용이하게 하기 위한 것으로 각 섹션에서 개시된 기술들 및 실시예들의 적용 가능성을 해당 섹션에 제한하지 않는다. 더 나아가, H.266 용어들은 이해를 용이하게 하기 위해 일부 설명에서 사용되며, 개시된 기술들의 범위를 제한하기 위한 것이 아니다. 본 문서에서 개시된 기술들은 그 자체로 다른 비디오 코덱 프로토콜들 및 설계들에도 적용 가능하다.
1. 간략한 소개
본 문서는 비디오 코딩 기술들에 관한 것이다. 구체적으로, 영상/비디오 코딩에서 특별히 크로스 컴포넌트 적응적 루프 필터(CC-ALF: cross component adaptive loop filter) 및 기타 코딩 툴들을 위한, 픽처/서브픽처/슬라이스/타일 경계, 360도 비디오 가상 경계 및 ALF 가상 경계 코딩에 관한 것이다. 본 문서는 HEVC와 같은 기존의 비디오 코딩 표준 또는 완결될 표준(Versatile Video coding)에 적용될 수 있다. 또한 미래의 비디오 코딩 표준들 또는 비디오 코덱에도 적용될 수 있다.
2. 비디오 코딩 소개
비디오 코딩 표준들은 잘 알려진 ITU-T 및 ISO/IEC 표준들의 개발을 통해 주로 발전해 왔다. ITU-T는 H.261및 H.263을 제작했으며, ISO/IEC는 MPEG-1 및 MPEG-4 Visual을 제작하였다. 그리고 두 기관은 H.262/MPEG-2 Video, H.264/MPEG-4 Advanced Video Coding (AVC) 그리고 H.265/HEVC 표준들을 공동으로 제작하였다. H.262 이후, 비디오 코딩 표준들은 시간 예측과 변환 코딩이 함께 활용되는 하이브리드 비디오 코딩 구조를 기반으로 한다. HEVC를 넘어서는 미래형 비디오 코딩 기술들을 탐구하기 위해, 2015년에 VCEG와 MPEG는 공동 비디오 탐사 팀 (Joint Video Exploration Team (JVET))를 공동 설립하였다. 그 이후로, 많은 새로운 방법들이 JVET에 의해 채택되어 공동 탐사 모델 (Joint Exploration Model (JEM))이라는 참조 소프트웨어에 포함되었다. 2018년 4월, HEVC 대비 비트 레이트 50% 감소를 목표로하는 VVC 표준 작업을 위해, VCEG(Q6/16)와 ISO/IEC JTC1 SC29/WG11(MPEG) 간의 공동 비디오 전문가 팀 (Joint Video Expert Team (JVET))이 결성되었다.
VVC 초안의 최신 버전, 즉, Versatile Video Coding (Draft 7)은 다음 사이트에서 확인할 수 있다.
http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/16_Geneva/wg11/JVET-P2001-v14.zip
VTM이라 불리는, VVC의 최신 참조 소프트웨어는 다음 사이트에서 확인할 수 있다.
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/-/tags/VTM-7.0
2.1. 컬러 공간 및 크로마 서브샘플링
컬러 모델(또는 컬러 시스템)이라고도 하는, 컬러 공간은 색들의 범위를 숫자들의 튜플들로서, 대표적으로 3 개 또는 4 개의 값 또는 컬러 성분들(예를 들면, RGB)으로서 간단히 설명하는 추상적인 수학 모델이다. 기본적으로, 컬러 공간은 좌표계와 서브 공간의 정교화이다.
비디오 압축의 경우, 가장 자주 사용되는 컬러 공간들은 YCbCr 및 RGB이다.
YCBCR 또는 Y'CBCR이라고도 기술되는, YCbCr, Y'CbCr 또는 Y Pb/Cb Pr/Cr은 비디오 및 디지털 사진 시스템들에서 컬러 이미지 파이프라인의 일부로서 사용되는 컬러 공간들의 계열이다. Y'은 루마 성분이고, CB와 CR은 청색 차이 및 적색 차이 크로마 성분들이다. Y'(프라임을 가짐)은 루미넌스인 Y와 구별되며, 감마 보정된 RGB 원색들에 기초하여 광 강도가 비선형적으로 인코딩된다는 것을 의미한다.
크로마 서브샘플링은, 루미넌스에 대해서보다 컬러 차이들에 대한 인간 시각 시스템의 더 낮은 예민성을 이용하여, 루마 정보에 대해서보다 크로마 정보에 대해 더 낮은 해상도를 구현하여 이미지들을 인코딩하는 방식이다.
2.1.1. 4:4:4
3개의 Y'CbCr 성분 각각은 동일한 샘플 레이트를 가지며, 따라서 크로마 서브샘플링이 없다. 이 방식은 때때로 고급 필름 스캐너들 및 영화 포스트 프로덕션에서 사용된다.
2.1.2. 4:2:2
2개의 크로마 성분들은 루마의 샘플 레이트의 절반으로 샘플링된다: 수평 크로마 해상도가 절반이 되는 반면에, 수직 크로마 해상도는 변하지 않는다. 이것은 시각적 차이가 거의 또는 전혀 없이 압축되지 않은 비디오 신호의 대역폭을 1/3만큼 감소시킨다. 4:2:2 컬러 포맷의 공칭 수직 및 수평 위치들의 일 예는 VVC 규격 초안에서 도 1에 도시된다.
2.1.3. 4:2:0
4:2:0에서는, 수평 샘플링이 4:1:1에 비해 2배이지만, Cb 및 Cr 채널들이 이 방식에서 각각의 교호 라인에서만 샘플링되므로, 수직 해상도가 절반이 된다. 따라서 데이터 레이트는 동일하다. Cb와 Cr은 각각 수평 및 수직 모두에서 2의 인자로 서브샘플링된다. 상이한 수평 및 수직 위치(siting)를 갖는, 4:2:0 방식들의 세 가지 변형이 있다.
* MPEG-2에서, Cb와 Cr은 수평으로 함께 배치된다. Cb 및 Cr은 수직 방향으로 픽셀들 사이에 배치된다(중간에 배치됨).
*· JPEG/JFIF, H.261 및 MPEG-1에서, Cb와 Cr은 중간에, 즉 교호 루마 샘플들 사이의 중간에 배치된다.
* 4:2:0 DV에서, Cb와 Cr은 수평 방향으로 함께 배치된다. 수직 방향에서, 이것들은 교호 라인들에 함께 배치된다
표 2-1. chroma_format_idc 및 separate_colour_plane_flag로부터 유도된 SubWidthC 및 SubHeightC 값들
Figure pct00001
2.2. 전형적인 비디오 코덱의 코딩 흐름
도 2는 3 개의 인루프 필터링 블록들, 즉 디블로킹 필터(DF: deblocking filter), 샘플 적응 오프셋(SAO: sample adaptive offset) 및 ALF를 포함하는 VVC의 인코더 블록도의 일 예를 도시한다. 미리 정의된 필터들을 사용하는 DF와 달리, SAO 및 ALF는 오프셋을 가산하는 것 및 유한 임펄스 응답(FIR: finite impulse response) 필터를 적용하는 것에 의해 원샘플들과 재구성된 샘플들 간의 평균 제곱 오차들을 감소시키기 위해 현재 픽처의 원샘플들을 활용하며, 코딩된 부가 정보는 오프셋들 및 필터 계수들을 시그널링한다. ALF는 각 픽처의 마지막 프로세싱 단계에 위치하며, 이전 단계들에서 생성되는 아티팩트들을 잡아내어 수정하려고 하는 툴이라고 볼 수 있다.
2.3. 비디오 유닛들의 예시적 정의들
픽처는 하나 또는 그 이상의 타일 행들 및 하나 또는 그 이상의 타일 열들로 분할된다. 타일은 픽처의 직사각형 영역을 덮는 CTU들의 시퀀스이다. 타일 내의 CTU들은 해당 타일 내에서 래스터 스캔 순서로 스캐닝된다.
슬라이스는 정수 개의 완전한 타일들 또는 픽처의 타일 내에서 정수개의 연속적인 완전한 CTU 행들로 구성된다.
슬라이스들의 두 모드, 즉, 래스터 스캔 슬라이스 모드 및 직사각형 슬라이스 모드가 지원된다. 래스터 스캔 슬라이스 모드에서, 슬라이스는 픽처의 타일 래스터 스캔에서 완전한 타일들의 시퀀스를 포함한다. 직사각형 슬라이스 모드에서, 슬라이스는 상기 픽처의 직사각형 영역을 함께 형성하는 다수의 완전한 타일들을 포함하거나 또는 상기 픽처의 직사각형 영역을 함께 형성하는, 하나의 타일의 다수의 연속적인 완전한 CTU 행들을 포함한다. 직사각형 슬라이스 내의 타일들은 해당 슬라이스에 상응하는 상기 직사각형 영역 내에서 타일 래스터 스캔 순서로 스캐닝된다.
서브픽처는 픽처의 직사각형 영역을 함께 덮는 하나 또는 그 이상의 슬라이스들을 포함한다.
도 3은 12개의 타일과 3개의 래스터 스캔 슬라이스로 분할되는 픽처의 래스터 스캔 슬라이스 분할의 일 예를 보여준다.
VVC 사양에서 도 4는 24개의 타일 (6개의 타일 열 및 4개의 타일 행)과 9개의 직사각형 슬라이스로 분할되는 픽처의 직사각 슬라이스 분할의 일 예를 보여준다.
도 4는 24개의 타일과 9개의 직사각형 슬라이스로 분할되는 18x12 루마 CTU들을 갖는 픽처를 보여준다(정보 전달).
도 5는 타일 및 직사각형 슬라이스로 분할되는 픽처의 일 예를 보여주며, 여기서 상기 픽처는 4개의 타일(2개의 타일 열 및 2개의 타일 행)과 4개의 직사각형 슬라이스로 분할된다.
도 6은 픽처의 서브픽처 분할의 일 예를 보여주며, 여기서 상기 픽처는 4x4 CTU들을 덮는 15개의 타일들, 24개의 슬라이스들 및 다양한 크기를 갖는 24개의 서브픽처들로 분할된다.
2.3.1. CTU/CTB 크기들
VVC에서, 신택스 요소 log2_ctu_size_minus2에 의해 SPS에서 시그널링되는 CTU 크기는 4x4만큼 작을 수 있다.
7.3.2.3 시퀀스 파라미터 세트 RBSP 신택스
Figure pct00002
Figure pct00003
Figure pct00004
log2_ctu_size_minus2 플러스 2는 각 CTU의 루마 코딩 트리 블록 크기를 명시한다.
log2_min_luma_coding_block_size_minus2 플러스 2는 최소 루마 코딩 블록 크기를 명시한다.
변수들 CtbLog2SizeY, CtbSizeY, MinCbLog2SizeY, MinCbSizeY, MinTbLog2SizeY, MaxTbLog2SizeY, MinTbSizeY, MaxTbSizeY, PicWidthInCtbsY, PicHeightInCtbsY, PicSizeInCtbsY, PicWidthInMinCbsY, PicHeightInMinCbsY, PicSizeInMinCbsY, PicSizeInSamplesY, PicWidthInSamplesC 및 PicHeightInSamplesC는 다음과 같이 유도된다.
Figure pct00005
2.3.2. 픽처에서의 CTU들
MxN으로 표시되는 CTB/LCU 크기(HEVC/VVC에 정의된 바와 같이, 일반적으로 M은 N과 동일함)를 가정하고, 픽처(또는 타일 또는 슬라이스 또는 다른 종류들의 유형들, 픽처 경계는 예로서 취해짐) 경계에 위치하는 CTB의 경우, KxL 개의 샘플들이 픽처 경계 내에 있으며 여기서 K < M이거나 L < N이다. 도 7A 내지 도 7C에 도시된 바와 같은 해당 CTB들에 대해, CTB 크기는 여전히 MxN과 동일하지만, CTB의 하단 경계/우측 경계는 픽처 외부에 있다.
도 7은 픽처 경계들에 걸쳐 있는 CTB들의 예들을 도시한다. (a) K=M, L<N, (b) K<M, L=N 그리고 (c) K<M, L<N이다. 또한, (a) 하단 픽처 경계에 걸쳐 있는 CTB들, (b) 우측 픽처 경계에 걸쳐 있는 CTB들, (c) 우측 하단 픽처 경계에 걸쳐 있는 CTB들
2.4. 디블로킹 필터(DB: Deblocking Filter)
DB의 입력은 인루프 필터들 이전의 재구성된 샘플들이다.
픽처에서의 수직 에지들이 먼저 필터링된다. 이어서 픽처에서의 수평 에지들이 수직 에지 필터링 과정에 의해 수정된 샘플들을 입력으로 하여 필터링된다. 각 CTU의 CTB들에서의 수직 및 수평 에지들은 코딩 유닛 기반으로 별도로 프로세싱된다. 코딩 유닛에서의 코딩 블록들의 수직 에지들은 그것들의 기하학적 순서에서 코딩 블록들의 좌측에 있는 에지에서 시작하여 에지들을 통해 코딩 블록들의 우측을 향해 진행하면서 필터링된다. 코딩 유닛에서의 코딩 블록들의 수평 에지들은 그것들의 기하학적 순서에서 코딩 블록들의 상단에 있는 에지에서 시작하여 에지들을 통해 코딩 블록들의 하단을 향해 진행하면서 필터링된다.
도 8은 병렬로 디블로킹될 수 있는, 8x8 그리드 상의 픽처 샘플들과 수평 및 수직 블록 경계들 그리고 8x8 샘플들의 비중첩 블록들의 예시이다.
2.4.1. 경계 결정
필터링이 8x8 블록 경계들에 적용된다. 추가적으로, 이는 (예를 들면, 어파인 모션 예측, ATMVP의 사용으로 인해) 변환 블록 경계 또는 코딩 서브블록 경계여야 한다. 그러한 경계들이 아닌 것들에 대해, 필터가 비활성화된다.
2.4.2. 경계 강도 계산
변환 블록 경계/코딩 서브블록 경계에 대해, 8x8 그리드 내에 위치하는 경우, 그것은 필터링될 수 있으며, 이 에지에 대한 bS[ xDi ][ yDj ](여기서 [ xDi ][ yDj ]는 좌표를 나타냄)의 설정은, 표 2-2 및 표 2-3에 각각 정의되어 있다.
표 2-2. 경계 강도 (SPS IBC가 비활성화되는 경우)
Figure pct00006
표 2-3. 경계 강도 (SPS IBC가 활성화되는 경우)
Figure pct00007
2.4.3. 루마 성분에 대한 디블로킹 결정
디블로킹 결정 과정은 본 서브 섹션에서 설명된다.
조건 1, 조건 2 및 조건 3 모두가 TRUE인 경우에만, 보다 넓고 보다 강한 루마 필터들이 사용되는 필터들이다.
조건 1은 "큰 블록 조건"이다. 이 조건은 P 측과 Q 측에 있는 샘플들이, 제각기, 변수 bSidePisLargeBlk 및 bSideQisLargeBlk에 의해 표현되는, 큰 블록들에 속하는지 여부를 검출한다. bSidePisLargeBlk 및 bSideQisLargeBlk는 다음과 같이 정의된다.
bSidePisLargeBlk = ((엣지 타입이 수직이고, p0는 폭이 32 보다 크거나 같은 CU에 속한다.) | | (엣지 타입이 수평이고, p0는 높이가 32 보다 크거나 같은 CU에 속한다.))? TRUE: FALSE
bSideQisLargeBlk = ((엣지 타입이 수직이고, q0는 폭이 32 보다 크거나 같은 CU에 속한다.) | | (엣지 타입이 수평이고, q0는 높이가 32 보다 크거나 같은 CU에 속한다))? TRUE: FALSE
bSidePisLargeBlk 및 bSideQisLargeBlk에 기반하여, 조건 1은 다음과 같이 정의된다.
조건 1 = (bSidePisLargeBlk || bSidePisLargeBlk) ? TRUE: FALSE
다음으로, 만약 조건 1이 참이면, 조건 2가 더 검사될 것이다. 우선 다음 변수들이 유도된다.
Figure pct00008
조건 2 = (d <
Figure pct00009
) ? TRUE: FALSE
여기서, d= dp0 + dq0 + dp3 + dq3.
만약 조건 1 및 조건 2가 유효하면, 블록들 중 임의의 것이 서브 블록들을 사용하는지 여부가 더 검사된다.
Figure pct00010
마지막으로, 만약 조건 1조건 2가 모두 유효하면, 제안된 디블로킹 방법은 다음과 같이 정의되는 조건 3 (큰 블록 강한 필터 조건)을 검사할 것이다.
조건 3 StrongFilterCondition에서, 다음 변수들이 유도된다.
Figure pct00011
HEVC에서와 같이, StrongFilterCondition = (dpq is less than ( 
Figure pct00012
  >>  2 ), sp3 + sq3는 ( 3*
Figure pct00013
  >>  5 ) 미만이고, Abs( p0 - q0 )는 ( 5 * tC + 1 )  >>  1) 미만 ? TRUE : FALSE.
2.4.4. 루마에 대한 보다 강한 디블로킹 필터(보다 큰 블록들을 위해 설계됨)
경계의 어느 한쪽 측면에 있는 샘플들이 큰 블록에 속할 때 이중선형 필터가 사용된다. 큰 블록에 속하는 샘플은 수직 에지의 경우 폭 >= 32일 때와 같이 정의되고, 수평 에지의 경우 높이 >= 32일 때와 같이 정의된다.
이중선형 필터는 아래에 열거된다.
블록 경계 샘플들 pi (i는 0 내지 Sp-1) 및 qi (j는 0 내지 Sq-1)(pi 및 qi는 위에서 설명된 HEVC 디블로킹에서 수직 에지를 필터링하기 위한 한 행 내에서의 i 번째 샘플 또는 수평 에지를 필터링하기 위한 한 열 내에서의 i 번째 샘플)는 이어서 다음과 같이 선형 보간으로 대체된다.
Figure pct00014
여기서 항
Figure pct00015
Figure pct00016
는 항은 섹션 2.4.7에서 설명된 위치 의존적 클리핑이고,
Figure pct00017
,
Figure pct00018
,
Figure pct00019
,
Figure pct00020
Figure pct00021
는 아래에 주어진다.
2.4.5. 크로마에 대한 디블로킹 제어
크로마 강필터들은 블록 경계의 양측에서 사용된다. 여기서, 크로마 필터는 크로마 에지의 양측이 8(크로마 위치) 보다 크거나 같고, 세 가지 조건에 대한 다음 결정이 충족될 때 선택된다. 첫 번째 조건은 큰 블록 뿐 아니라 경계 강도의 결정을 위한 것이다. 크로마 샘플 도메인에서 블록 에지와 직교하는 블록 폭 또는 높이가 8 보다 크거나 같을 때 제안된 필터가 적용될 수 있다. 두 번째 조건 및 세 번째 조건은 HEVC 루마 디블로킹 결정에 대한 것과 기본적으로 동일하며, 각기 온/오프 결정 및 강한 필터 결정이다.
첫 번째 결정에서, 경계 강도(bS)는 크로마 필터링을 위해 수정되고 상기 조건들이 순차적으로 검사된다. 조건이 충족되는 경우, 보다 낮은 우선순위들을 갖는 나머지 조건들은 스킵된다.
bS가 2와 같을 때, 또는 큰 블록 경계가 검출되는 경우 bS가 1과 같을 때, 크로마 디블로킹이 수행된다.
두 번째 조건 및 세 번째 조건은 다음과 같이 HEVC 루마 강필터 결정과 기본적으로 동일하다.
두 번째 조건에서.
d는 이어서 HEVC 루마 디블로킹에서와 같이 유도된다.
두 번째 조건은 d가
Figure pct00022
보다 작을 때 TRUE일 것이다.
세 번째 조건에서, StrongFilterCondition은 다음과 같이 유도된다
dpq는 HEVC에서와 같이 유도된다.
sp3 = Abs( p3 - p0 ), HEVC에서와 같이 유도.
sq3 = Abs( q0 - q3 ), HEVC에서와 같이 유도
HEVC 설계에서와 같이, StrongFilterCondition = (dpq is less than (
Figure pct00023
>> 2 ), sp3 + sq3는 (
Figure pct00024
>> 3 ) 미만이고, Abs( p0 - q0 )는 ( 5 * tC + 1 ) >> 1) 미만이다.
2.4.6. 크로마를 위한 강한 디블로킹 필터
크로마를 위한 아래의 강한 디블로킹 필터는 다음과 같이 정의된다.
Figure pct00025
제안된 크로마 필터는 4X4 크로마 샘플 그리드 상에서 디블로킹을 실시한다.
2.4.7. 위치 의존적 클리핑
위치 의존적 클리핑(position dependent clipping) tcPD는 경계에서 7개, 5개 및 3개의 샘플을 수정하는 강하고 긴 필터들을 수반하는 루마 필터링 과정의 출력 샘플들에 적용된다. 양자화 오차 분포를 가정할 때, 보다 높은 양자화 잡음을 가질 것으로 예상되고, 따라서 재구성된 샘플 값과 실제 샘플 값 간의 보다 높은 편차를 가질 것으로 예상되는 샘플들에 대해 클리핑 값을 증가시키는 것이 제안된다.
섹션 2.4.2에서의 의사결정 과정의 결과에 따라, 비대칭 필터로 필터링되는 각각의 P 또는 Q 경계에 대해, 위치 의존적 임계치 테이블이 디코더에 부가 정보로서 제공되는 2 개의 테이블(예를 들면, 아래에 표로 작성된 Tc7 및 Tc3)로부터 선택된다.
Figure pct00026
짧은 대칭 필터로 필터링되는 P 또는 Q 경계들에 대해, 보다 낮은 크기의 위치 의존적 임계치가 적용된다.
Figure pct00027
임계치를 정의한 후에, 필터링된 p' i 및 q' i 샘플 값들이 tcP 및 tcQ 클리핑 값들에 따라 클리핑된다.
Figure pct00028
여기서, p' i q' i 는 필터링된 샘플 값들이고, p'' i q'' j 는 상기 클리핑 이후의 출력 샘플 값이며, tcP i 는 VVC tc 파라미터 및 tcPD 및 tcQD로부터 유도되는 클리핑 임계치들이다. 함수 Clip3은 VVC에 명시된 바와 같이 클리핑 함수이다.
2.4.8. 서브블록 디블로킹 조정
긴 필터들 및 서브블록 디블로킹 둘 모두를 사용하여 병렬 친화적인 디블로킹을 가능하게 하기 위해, 긴 필터들에 대한 루마 제어에 나와 있는 바와 같이 서브블록 디블로킹(AFFINE 또는 ATMVP 또는 DMVR)을 사용하는 측면에서 최대 5 개의 샘플을 수정하도록 긴 필터들이 제한된다. 추가적으로, CU에 가까운 8X8 그리드 상의 서브블록 경계들 또는 묵시적 TU 경계가 각각의 측면에서 최대 2 개의 샘플을 수정하게 제한되도록 서브블록 디블로킹이 조정된다.
다음은 CU 경계와 정렬되지 않은 서브블록 경계들에 적용된다.
Figure pct00029
0과 동일한 에지가 CU 경계에 해당하는 경우, 2와 동일하거나 orthogonalLength-2와 동일한 에지는 CU 경계 등으로부터 8개 샘플 떨어져 있는 서브블록 경계에 해당한다. 여기서 TU의 묵시적 분할이 사용되는 경우 묵시적 TU는 참이다.
2.5. 샘플 적응 오프세트(SAO: Sample Adaptive Offset)
SAO의 입력은 DB 이후의 재구성된 샘플들이다. SAO의 개념은 먼저 선택된 분류기로 영역 샘플들을 다수의 카테고리들로 분류하는 것, 각각의 카테고리에 대한 오프셋을 획득하는 것 및 그 다음으로 카테고리의 각각의 샘플에 오프셋을 가산하는 것에 의해 영역의 평균 샘플 왜곡을 감소시키는 것이며, 여기서 분류기 인덱스 및 영역의 오프셋들은 비트스트림으로 코딩된다. HEVC 및 VVC에서, 영역(SAO 파라미터 시그널링을 위한 유닛)은 CTU로 정의된다.
낮은 복잡도의 요건들을 충족시킬 수 있는 두 가지 SAO 유형이 HEVC에서 채택된다. 이러한 두 가지 유형은 에지 오프셋(EO) 및 밴드 오프셋(BO)이며, 이에 대해서는 아래에서 더 상세히 논의된다. SAO 유형의 인덱스가 코딩된다(이는 [0, 2]의 범위에 있음). EO의 경우, 샘플 분류는 1-D 방향성 패턴들, 즉 수평, 수직, 135° 대각선 및 45° 대각선에 따라 현재 샘플들과 이웃 샘플들 간의 비교에 기초한다.
도 10A 내지 도 10D는 EO 샘플 분류를 위한 4 개의 1-D 방향성 패턴들, 즉 수평(EO 클래스 = 0), 수직(EO 클래스 = 1), 135° 대각선(EO 클래스 = 2), 및 45° 대각선(EO 클래스 = 3)을 보여준다.
주어진 EO 클래스에 대해, CTB 내부의 각각의 샘플은 5가지 카테고리 중 하나로 분류된다. "c"로 라벨링된 현재 샘플 값은 선택된 1-D 패턴을 따라 ("a" 및 "b"로 라벨링된) 그것의 2개의 이웃들과 비교된다. 각각의 샘플에 대한 분류 규칙들은 표 2-4에 요약되어 있다. 카테고리 1 및 카테고리 4는 선택된 1-D 패턴을 따라 로컬 밸리 및 로컬 피크와 각각 연관된다. 카테고리 2와 카테고리 3은 선택된 1-D 패턴을 따라 오목 코너 및 볼록 코너와 각각 연관된다. 현재 샘플이 EO 카테고리 1 내지 EO 카테고리 4에 속하지 않는 경우, 그것은 카테고리 0이며 SAO가 적용되지 않는다.
표 2-4. 에지 오프세트에 대한 샘플 분류 규칙들
Figure pct00030
2.6. 적응적 루프 필터(ALF: Adaptive Loop Filter)
In VVC, an Adaptive Loop Filter (ALF) with block-based filter adaption is applied. For the luma component, one among 25 filters is selected for each 4Х4 block, based on the direction and activity of local gradients. VVC에서는 블록 기반 필터 적응을 가진 적응적 루프 필터(ALF)가 적용된다. 루마 성분에 대해, 로컬 그래디언트들의 방향 및 활성도에 기반하여, 25개 필터들 중 하나가 각 4x4 블록을 위해 선택된다.
2.6.1. 필터 모양
(도 11에 보이는 바와 같은) 2개의 다이아몬드 필터 모양들이 사용된다. 7x7 다이아몬드 형상이 루마 성분에 대해 적용되고, 5x5 다이아몬드 형상이 크로마 성분에 대해 적용된다.
도 11은 ALF 필터 모양들을(크로마: 5x5 다이아몬드, 루마: 7x7 다이아몬드) 보여준다.
2.6.2. 블록 분류
루마 성분에 대해, 각 4x4 블록은 25개의 클래스들 중 하나로 분류된다. 분류 인덱스 C 는 그것의 방향성
Figure pct00031
및 활성도
Figure pct00032
의 양자화된 값에 기반하여 아래와 같이 유도된다.
Figure pct00033
Figure pct00034
Figure pct00035
를 계산하기 위해, 수평, 수직 그리고 두 대각선 방향의 그래디언트들이 1-D 라플라스(Laplacian)을 이용하여 먼저 계산된다.
Figure pct00036
여기서, 인덱스들
Figure pct00037
Figure pct00038
는 4x4 블록 내 좌측 상단 샘플의 좌표들을 가리키고,
Figure pct00039
는 좌표
Figure pct00040
에서의 재구성된 샘플을 지시한다.
블록 분류의 복잡성을 줄이기 위해, 서브샘플링된 1-D 라플라스 계산이 적용된다. 도 2-1에서 보이는 것처럼, 동일한 서브 샘플링된 위치들이 모든 방향의 그래디언트 계산을 위해 사용된다.
Figure pct00041
그 다음으로 수평 및 수직 방향들의 그래디언트들의 D 최대 및 최소 값들은 다음과 같이 설정된다.
Figure pct00042
두 대각 방향의 그래디언트의 최대 및 최소 값들은 아래와 같이 설정된다.
Figure pct00043
방향성 D의 값을 유도하기 위해, 이 값들은 서로서로 그리고 2개의 임계치들 t 1 t 2 와 비교된다.
Figure pct00044
활성화도 값
Figure pct00045
는 다음과 같이 계산된다.
Figure pct00046
Figure pct00047
는 0 내지 4의 범위로(경계값 포함) 더 양자화되고, 상기 양자화된 값은
Figure pct00048
로 표시된다.
픽처 내의 크로마 성분들에 대해서는 분류 방법이 적용되지 않는다. 즉, ALF 계수들의 단일한 세트가 각 크로마 성분에 대해 적용된다.
2.6.3. 필터 계수들 및 클리핑 값들의 기하학적 변환들
각 4x4 루마 블록을 필터링하기 전에, 회전 또는 대각선 방향 및 수직 플리핑(flipping) 등의 기하학적 변환들이 상기 블록에 대하여 산출된 그래디언트 값들에 따라 필터 계수들
Figure pct00049
및 해당 필터 클리핑 값들
Figure pct00050
에 적용된다. 이것은 필터 지원 영역에서 이들 변환들을 샘플들에 적용하는 것과 동등하다. 아이디어는 그것들의 방향성을 정렬함으로써 더 유사하게 ALF가 적용되는 상이한 블록들을 만드는 것이다.
대각선 방향(Diagonal), 수직 플립(Vertical flip) 및 회전(Rotation)을 포함하는 3개의 기하학적 변환들이 도입된다.
Figure pct00051
여기서
Figure pct00052
는 는 필터의 크기이고,
Figure pct00053
는 계수 좌표들이어서, 위치(0,0)는 좌측 상단 코너에 있고, 위치
Figure pct00054
는 우측 하단 코너에 있다. 상기 변환들은 상기 블록에 대하여 산출된 그래디언트 값들에 따라 필터 계수들 f(k, l) 및 클리핑 값들
Figure pct00055
에 적용된다. 4개의 방향의 4개의 그래디언트 및 변환 간의 관계가 아래 표에 요약된다.
표 2-5. 하나의 블록에 대해 산출된 그래디언트와 변환의 매핑
Figure pct00056
2.6.4. 필터 파라미터 시그널링
ALF 필터 파라미터들은 적응 파라미터 세트(APS: Adaptation Parameter Set)에서 시그널링된다. 하나의 APS에서, 최대 25 세트의 루마 필터 계수들 및 클리핑 값 인덱스들, 그리고 최대 8 세트의 크로마 필터 계수들 및 클리핑 값 인덱스들이 시그널링될 수 있다. 비트 오버헤드를 줄이기 위해, 루마 성분에 대한 상이한 분류의 필터 계수들이 병합될 수 있다. 슬라이스 헤더에서, 현재 슬라이스에 사용되는 APS들의 인덱스들이 시그널링된다.
APS로부터 디코딩된 클리핑 값 인덱스들은 루마 및 크로마 성분 모두에 대해 클리핑 값들의 표를 사용하여 클리핑 값을 결정하도록 허용한다. 이 클리핑 값들은 내부 비트뎁스(bitdepth)에 의존한다. 더 상세히 말하면, 상기 클리핑 값들은 아래 식에 의해 획득된다.
Figure pct00057
B는 내부 bitdepth와 동일하고, a는 미리 정의된 상수로 2.35와 같으며, N은 VVC에서 허용된 클리핑 값들의 수인 4와 동일하다.
슬라이스 헤더에서, 최대 7개의 APS 인덱스들이 현재 슬라이스를 위해 사용되는 루마 필터 세트들을 명시하기 위해 시그널링될 수 있다. 필터링 과정은 CTB 레벨에서 더 제어될 수 있다. ALF가 루마 CTB에 적용되는지 여부를 지시하기 위해 플래그가 항상 시그널링된다. 루마 CTB는 16개의 고정된 필터 세트들 및 APS들로부터의 필터 세트들 중 하나의 필터 세트를 선택할 수 있다. 필터 세트 인덱스는 어느 필터 세트가 적용되는지 지시하도록 루마 CTB를 위해 시그널링된다. 상기 16개의 고정된 필터 세트들은 미리 정의되고 인코더와 디코더 양쪽에 모두 하드코딩된다(hard-coded).
크로마 성분을 위해, APS 인덱스는 현재 슬라이스를 위해 사용되는 크로마 필터 세트들을 지시하기 위해 슬라이스 헤더에서 시그널링된다. CTB 레벨에서, APS에 두개 이상의 크로마 필터 세트가 있는 경우에 필터 인덱스는 각 크로마 CTB를 위해 시그널링된다.
필터 계수들은 128을 기저(norm)로 양자화된다. 곱셈 복잡도를 제한하기 위해, 비트스트림 적합도(bitstream conformance)가 적용될 수 있고 따라서 중심 위치에 있지 않은(non-central position) 계수 값은-27부터 27-1까지의 범위 내에(경계값 포함) 있어야 한다. 중심 위치 계수는 비트스트림에서 시그널링되지 않으며 128과 같은 것으로 간주된다.
2.6.5. 필터링 과정
디코더 측에서, ALF가 CTB에 대해 활성화되는 경우, CU 내의 각 샘플
Figure pct00058
가 필터링되며, 아래와 같은 샘플 값
Figure pct00059
이 산출된다.
Figure pct00060
여기서
Figure pct00061
는 디코딩된 필터 계수들을 나타내고,
Figure pct00062
는 클리핑 함수이며,
Figure pct00063
는 디코딩된 클리핑 파라미터들을 나타낸다. 변수 k 및 l은
Figure pct00064
Figure pct00065
사이에서 변동하며, 이때 L은 필터 길이를 나타낸다. 클리핑 함수
Figure pct00066
는 함수
Figure pct00067
에 상응한다.
2.6.6. 라인 버퍼 감소를 위한 가상 경계 필터링 과정
하드웨어 및 임베디드 소프트웨어에서, 픽처 기반 프로세싱은 그것의 높은 픽처 버퍼 요건으로 인해 실제로 용인 가능하지 않다. 온칩 픽처 버퍼들을 사용하는 것은 매우 비싸고 오프칩 픽처 버퍼들을 사용하는 것은 외부 메모리 액세스, 전력 소비 및 데이터 액세스 지연시간을 상당히 증가시킨다. 따라서, 실제 제품들에서는 DF, SAO 및 ALF가 픽처 기반 디코딩으로부터 LCU 기반 디코딩으로 변경될 것이다. LCU 기반 프로세싱이 DF, SAO 및 ALF에 사용될 때, 전체 디코딩 과정은 다수의 LCU들의 병렬 프로세싱을 위한 LCU 파이프라이닝 방식으로 래스터 스캔에서 LCU별로 행해질 수 있다. 이 경우에, 하나의 LCU 행을 프로세싱하는 것이 상단 LCU 행으로부터의 픽셀들을 필요로 하기 때문에 DF, SAO 및 ALF에 대해 라인 버퍼들이 필요하다. 오프칩 라인 버퍼들(예를 들면, DRAM)이 사용되는 경우, 외부 메모리 대역폭과 전력 소비가 증가될 것이며, 온칩 라인 버퍼들(예를 들면, SRAM)이 사용되는 경우, 칩 면적이 증가될 것이다. 따라서, 라인 버퍼들이 이미 픽처 버퍼들보다 훨씬 더 작더라도, 라인 버퍼들을 감소시키는 것이 여전히 바람직하다.
VTM-4.0에서, 도 13에 도시된 바와 같이, 필요한 라인 버퍼들의 총수는 루마 성분의 경우 11.25 라인이다. 라인 버퍼 요건에 대한 설명은 다음과 같다: 결정 및 필터링이 첫 번째 CTU로부터의 라인들 K, L, M, M 및 하단 CTU로부터의 라인들 O, P를 필요로 하기 때문에 CTU 에지와 중첩하는 수평 에지의 디블로킹이 수행될 수 없다. 따라서, CTU 경계와 중첩하는 수평 에지들의 디블로킹은 하위 CTU가 올 때까지 연기된다. 따라서, 라인들 K, L, M, N에 대해, 재구성된 루마 샘플들은 라인 버퍼(4개의 라인)에 저장되어야 한다. 이어서 라인들 A 내지 J에 대해 SAO 필터링이 수행될 수 있다. 디블로킹이 라인 K에 있는 샘플들을 변경하지 않기 때문에 라인 J는 SAO 필터링될 수 있다. 라인 K의 SAO 필터링의 경우, 에지 오프셋 분류 결정은 (0.25 루마 라인인) 라인 버퍼에만 저장된다. ALF 필터링은 라인들 A 내지 F에 대해서만 수행할 수 있다. 도 13에 도시된 바와 같이, 각각의 4X4 블록에 대해 ALF 분류가 수행된다. 각각의 4X4 블록 분류는 8X8 크기의 활성도 윈도우를 필요로 하며, 이는 차례로 그래디언트를 결정하기 위해 1d 라플라시안을 계산하기 위해 9x9 윈도우를 필요로 한다.
따라서, 라인들 G, H, I, J와 중첩하는 4X4 블록의 블록 분류를 위해, 가상 경계 아래의 SAO 필터링된 샘플들이 필요하다. 또한, ALF 분류를 위해 라인들 D, E, F의 SAO 필터링된 샘플들이 필요하다. 더욱이, 라인 G의 ALF 필터링은 위쪽 라인들로부터의 3 개의 SAO 필터링된 라인 D, E, F를 필요로 한다. 따라서, 총 라인 버퍼 요건은 다음과 같다.
- 라인들 K 내지 N(수평 DF 픽셀들): 4 개의 라인
- 라인들 D 내지 J(SAO 필터링된 픽셀들): 7 개의 라인
- 라인 J와 라인 K 사이의 SAO 에지 오프셋 분류기 값들: 0.25 라인
따라서, 필요한 루마 라인들의 총수는 7 + 4 + 0.25 = 11.25이다.
유사하게, 크로마 성분의 라인 버퍼 요건은 도 14에 도시되어 있다. 크로마 성분에 대한 라인 버퍼 요건은 6.25개의 라인인 것으로 평가된다.
도 13은 루마 성분에 대한 VTM-4.0에서의 루프 필터 라인 버퍼 요건을 보여준다.
도 14은 크로마 성분에 대한 VTM-4.0에서의 루프 필터 라인 버퍼 요건을 보여준다.
SAO 및 ALF의 라인 버퍼 요건들을 제거하기 위해, 최신 VVC에서 가상 경계(VB)의 개념이 도입된다. 수정된 블록 분류 및 필터링이 수평 CTU 경계들 근처의 샘플들에 대해 채용된다. 도 13에 보이는 바와 같이, VB들은 N개의 픽셀만큼 상향 시프트된 수평 LCU 경계들이다. 각각의 LCU에 대해, SAO 및 ALF는 하위 LCU가 오기 전에 VB 위쪽의 픽셀들을 처리할 수 있지만, 하위 LCU가 올 때까지 VB 아래의 픽셀들을 처리할 수 없으며, 이는 DF에 의해 야기된다. 하드웨어 구현 비용을 고려하여, 제안된 VB와 수평 LCU 경계 사이의 공간은 루마 성분의 경우 4개의 픽셀로서 설정되고(예를 들면, 도 13 또는 도 15에서 N=4) 크로마 성분의 경우 2개의 픽셀로서 설정된다(예를 들면, N=2).
도 15는 가상 경계들에서 수정된 블록 분류를 보여준다.
수정된 블록 분류는 도 16에 도시된 것과 같이 루마 성분에 대해 적용된다. 가상 경계 상단의 4x4 블록의 1D 라플라스 그래디언트 계산을 위해, 오직 가상 경계 상단의 샘플들만이 사용된다. 유사하게, 가상 경계 하단의 4x4 블록의 1D 라플라스 그래디언트 계산을 위해, 오직 가상 경계 하단의 샘플들만이 사용된다. 활성화 값 A의 양자화는 1D 라플라스 그래디언트 계산에 사용되는 샘플들의 감소된 수를 고려하여 그에 맞게 스케일링 된다.
필터링 처리를 위해, 가상 경계들에서의 미러링된 (대칭) 패딩 동작이 루마 및 크로마 성분들 모두에 대해 사용된다. 도 16에 보이는 바와 같이, 필터링되는 샘플이 가상 경계 아래에 위치하는 경우, 가상 경계 위에 위치하는 이웃 샘플들이 패딩된다. 한편, 다른 변들에서 상응하는 샘플들 또한 대칭적으로 패딩된다.
도 16은 가상 경계들에서의 루마 성분을 위한 수정된 ALF 필터링을 보여준다.
다른 예로서, (i, j)에 위치한 하나의 샘플이 패딩되는 경우(예를 들어, 도 17b에서 점선으로 표시된 P0A), (m, n)에 위치하는 대응 샘플(예를 들어, 도 17b에서 동일한 필터 계수를 공유하는 점선으로 표시된 P3B) 또한 패딩되며, 도 17a 내지 도17c에 도시되는 것과 같이 해당 샘플도 이용가능하다.
도 17a는 (각 변별로) 패딩되어야 할 VB 위/아래에 요구되는 하나의 라인을 보여준다.
도 17b는 (각 변별로) 패딩되어야 할 VB 위/아래에 요구되는 두 개의 라인을 보여준다.
도 17c는 (각 변별로) 패딩되어야 할 VB 위/아래에 요구되는 세 개의 라인을 도시한다.
도 27은 가상 경계에서의 수정된 루마 ALF 필터링의 예들을 도시한다.
수평 CTU 경계들에서 사용되는 미러링된 (대칭) 패딩 방법과는 달리, 경계들을 가로지르는 필터가 비활성화되는 경우, 반복적인 (단변) 패딩 과정이 슬라이스, 타일 및 서브픽처 경계들에 대해 적용된다. 상기 반복적인 (단변) 패딩 과정은 픽처 경계에서도 적용된다. 패딩된 샘플들은 분류 및 필터링 과정에 모두 사용된다. 도 18은 픽처/서브픽처/슬라이스/타일 경계에서 루마 ALF 필터링에 대한 반복 패딩 방법의 일 예를 도시한다.
도 18은 픽처/서브픽처/슬라이스/타일 경계에서 루마 ALF 필터링을 위한 반복 패딩의 예들을 도시한다
2.7. 360도 비디오 코딩
VTM5에서의 수평 랩 어라운드 모션 보상은 등장방형 (equi-rectangular (ERP)) 투영 포맷의 재구성된 360도 비디오의 시각적 품질을 개선시키도록 설계된 360 전용 코딩 툴이다. 종래의 모션 보상에서는, 모션 벡터가 참조 픽처의 픽처 경계들 너머의 샘플들을 참조할 때, 대응하는 픽처 경계 상의 해당 최근접 이웃들로부터 복사하는 것에 의해 범위 밖의(out-of-bounds) 샘플들의 값들을 유도하기 위해 반복적인 패딩이 적용된다. 360도 비디오의 경우, 이 반복적인 패딩 방법은 적합하지 않으며, 재구성된 뷰포트 비디오에서 "이음매 아티팩트(seam artefact)"라는 시각적 아티팩트를 야기할 수 있다. 360도 비디오는 구면 상에서 캡처되고 본질적으로 "경계"를 갖지 않기 때문에, 투영된 도메인에서 참조 픽처의 경계들을 벗어난 참조 샘플들은 항상 구면 도메인에서 이웃 샘플들로부터 획득될 수 있다. 일반적인 투영 포맷의 경우, 2D에서 3D로 및 3D에서 2D로의 좌표 변환은 물론 분수 샘플 위치들에 대한 샘플 보간을 수반하기 때문에, 구면 도메인에서 대응하는 이웃 샘플들을 유도하기 어려울 수 있다. 이 문제는 ERP 투영 포맷의 좌측 및 우측 경계들에 대해 훨씬 더 간단한데, 그 이유는 좌측 픽처 경계 외부의 구면 이웃들이 우측 픽처 경계 내부의 샘플들로부터 획득될 수 있고 그 반대도 마찬가지이기 때문이다. 도 19는 VVC에서의 수평 랩 어라운드 모션 보상의 일 예를 보여준다.
수평 랩 어라운드 모션 보상 과정은 도 19에 묘사된 바와 같다. 참조 블록의 일부가 투영된 도메인에서 참조 픽처의 좌측(또는 우측) 경계 외부에 있을 때, 반복적인 패딩 대신에, "경계 외부" 부분이 투영된 도메인에서 우측(또는 좌측) 경계 쪽에 있는 참조 픽처의 대응하는 구면 이웃들로부터 취해진다. 반복적인 패딩은 상단 및 하단 픽처 경계들에 대해서만 사용된다. 도 19에 도시된 바와 같이, 수평 랩 어라운드 모션 보상은 360도 비디오 코딩에서 종종 사용되는 비규범적(non-normative) 패딩 방법과 결합될 수 있다. VVC에서, 이것은 패딩 이전에 ERP 픽처 폭으로 설정되어야 하는 랩 어라운드 오프셋을 나타내기 위해 상위 레벨 신택스 요소를 시그널링하는 것에 의해 달성되며; 이 신택스는 그에 따라 수평 랩 어라운드의 위치를 조정하는 데 사용된다. 이 신택스는 좌측 및 우측 픽처 경계들에서의 특정 패딩 양에 의해 영향을 받지 않으며, 따라서, 예를 들면, 좌측 및 우측 패딩이 상이할 때, ERP 픽처의 비대칭 패딩을 자연스럽게 지원한다. 수평 랩 어라운드 모션 보상은 참조 샘플들이 참조 픽처의 좌측 및 우측 경계들 외부에 있을 때 모션 보상에 대한 보다 의미 있는 정보를 제공한다.
복수의 면들로 구성된 투영 포맷들의 경우, 어떤 종류의 콤팩트한 프레임 패킹 배열이 사용되더라도, 프레임 패킹된 픽처에서 2개 이상의 인접한 면 사이에 불연속부들이 나타난다. 예를 들어, 도 20에 도시된 3x2 프레임 패킹 구성을 고려할 때, 상반부에 있는 3개의 면은 3D 지오메트리에서 연속적이고, 하반부에 있는 3개의 면은 3D 지오메트리에서 연속적이지만, 프레임 패킹된 픽처의 상반부 및 하반부는 3D 지오메트리에서 불연속적이다. 인루프 필터링 동작들이 이러한 불연속부에 걸쳐 수행되는 경우, 재구성된 비디오에서 면 이음매 아티팩트들이 보일 수 있다.
면 이음매 아티팩트들 (face seam artifacts)을 완화시키기 위해, 프레임 패킹된 픽처에서의 불연속부들에 걸쳐 인루프 필터링 동작들이 비활성화될 수 있다. 인루프 필터링 동작들이 비활성화되는 수직 및/또는 수평 가상 경계들을 시그널링하기 위해 신택스가 제안되었다. 연속적인 면들의 각각의 세트에 대해 하나씩 사용하여 2개의 타일을 사용하는 것과 비교하여, 그리고 타일들에 걸친 인루프 필터링 동작들을 비활성화시키기 위한 면에서 볼 때, 제안된 시그널링 방법은, 면 크기가 CTU 크기의 배수일 것을 요구하지 않기 때문에, 더 유연하다.
도 20은 3x2 레이아웃에서 HEC의 이미지를 도시한다
2.8. JVET-P0080: CE5-2.1, CE5-2.2: 크로스 컴포넌트 적응적 루프 필터
도 21a는 다른 루프 필터들에 대한 CC-ALF [1]의 배치를 도시한다. CC-ALF는 도 21b의 선형 다이아몬드 모양 필터를 각 크로마 성분에 대한 루마 채널에 적용하여 작동하며, 이는 다음과 같이 표현된다.
Figure pct00068
Figure pct00069
도 21a는 다른 루프 필터들에 대한 CC-ALF의 예시적 배치를 보여준다. 도 21b는 다이아몬드 모양 필터를 보여준다.
서포트 영역의 중심인 루마 위치
Figure pct00070
는 루마 및 크로마 평면들 사이의 공간적 스케일링 팩터에 기반하여 계산된다. 모든 필터 계수들은 APS에서 전송되고 8 비트 동적 범위를 가진다. APS는 슬라이스 헤더에서 참조될 수 있다. 슬라이스의 각 크로마 성분에 대해 사용되는 CC-ALF 계수들 또한 시간적 서브계층에 해당하는 버퍼에 저장된다. 시간적 서브계층 필터 계수들의 이러한 세트들의 재사용은 슬라이스 레벨 플래그들을 사용하여 촉진된다. CC-ALF 필터들의 적용은 가변 블록 크기 (즉, 16x16, 32x32, 64x64, 128x128)에 기반하여 제어되고 샘플들의 각 블록에 대해 수신된 문맥 코딩된 플래그로 시그널링된다. CC-ALF 활성화 플래그와 함께 블록 크기가 각 크로마 성분에 대한 슬라이스 레벨에서 수신된다. 수평 가상 경계들에 대한 경계 패딩은 반복을 이용한다. 나머지 경계들에 대해, 동일한 유형의 패딩이 정규 ALF에 대해서와 같이 사용된다.
2.8.1. JVET-P0080에서 CC-ALF에 관한 규정
x.x.x.x 크로마 샘플들의 블록에 대한 크로스 컴포넌트 필터링 과정
이 과정의 입력들은 아래와 같다.
루마 적응적 루프 필터링 과정 이전의 재구성된 루마 픽처 샘플 어레이 recPictureL,
필터링되고 재구성된 크로마 픽처 샘플 어레이 alfPictureC,
현재 픽처의 좌측 상단 샘플에 상대적인 크로마 샘플들의 현재 블록의 좌측 상단 샘플을 명시하는 크로마 위치 (xC, yC),
크로마 샘플들의 블록의 폭 ccAlfWidth
크로마 샘플들의 블록의 높이 ccAlfHeight
크로스 컴포넌트 필터 계수들 CcAlfCoeff[j] (j = 0..13)
이 과정의 출력은 수정 및 필터링되고 재구성된 크로마 픽처 샘플 어레이ccAlfPicture이다.
코딩 트리 블록 루마 위치(xCtb, yCtb)는 아래와 같이 유도된다
Figure pct00071
필터링된 재구성된 크로마 샘플들 ccAlfPicture[ xC + x ][ yC + y ]의 유도를 위해, 샘플들의 현재 크로마 블록 내의 재구성된 크로마 샘플 각각은 alfPictureC[ xC + x ][ yC + y ] with x = 0..ccAlfWidth - 1, y = 0..ccAlfHeight - 1 아래와 같이 필터링 된다.
- 크로마 위치( xC + x, yC + y )의 현재 크로마 샘플에 상응하는 루마 위치(xL, yL)는 ( (xC + x ) * SubWidthC, ( yC + y ) * SubHeightC )와 같게 설정된다.
- 어레이 recPictureL 내부의 루마 위치들( hxL + i, vyL + j ) (i = -2..2, j = -2..3)은 다음과 같이 유도된다.
- 만약 pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_ver_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosX[ n ] % CtbSizeY가 0과 같지 않으며, xL - PpsVirtualBoundariesPosX[ n ]가 0 이상 3 미만인 경우, 다음이 적용된다.
Figure pct00072
- 그렇지 않고, pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_ver_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosX[ n ] % CtbSizeY가 0과 같지 않고, PpsVirtualBoundariesPosX[ n ]- xL는 0 보다 크고 4 미만이면, 다음이 적용된다
Figure pct00073
- 그렇지 않으면, 다음이 적용된다.
Figure pct00074
- pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_hor_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosY[ n ] % CtbSizeY가 0과 같지 않고, yL - PpsVirtualBoundariesPosY[ n ]가 0 이상 3 미만인 경우, 다음이 적용된다
Figure pct00075
- 그렇지 않고, 만약 pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_hor_virtual_boundaries - 1에 대해 PpsVirtualBoundariesPosY[ n ] % CtbSizeY가 0과 같지 않고 PpsVirtualBoundariesPosY[ n ] - yL이 0 보다 크고 4 미만인 경우, 다음이 적용된다
Figure pct00076
- 그렇지 않은 경우, 다음이 적용된다.
Figure pct00077
- 변수들 clipLeftPos, clipRightPos, clipTopPos 및 clipBottomPos는 (xCtb, yCtb) 및 (xL - xCtb, yL - yCtb)를 입력들로 하여 8.8.5.5 절에 명시된 바와 같이 ALF 경계 위치 유도 과정을 원용하는 것에 의해 유도된다.
- 수직 샘플 위치 오프셋들 yM2, yM1, yP1, yP2 및 yP3는 수직 루마 샘플 위치 yL, clipLeftPos 및 clipRightPos에 따라 표 2-6에 명시된다.
- 수평 샘플 위치 오프셋들 xM1, xM2, xP1 및 xP2는 수평 루마 샘플 위치 xL, clipLeftPos 및 clipRightPos에 따라 표 2-7에 명시된다.
변수 curr는 다음과 같이 유도된다
Figure pct00078
- 크로스 컴포넌트 필터 계수들f[ j ]의 어레이는 j = 0..13으로 다음과 같이 유도된다.
Figure pct00079
- 변수 sum은 다음과 같이 유도된다.
Figure pct00080
수정된 필터링된 재구성된 크로마 픽처 샘플 어레이 ccAlfPicture[ xC + x ][ yC + y ]는 다음과 같이 유도된다.
Figure pct00081
표 2-6. 수직 루마 샘플 위치 yL, clipTopPos 및 clipBottomPos에 따른 yM1, yM2, yP1, yP2 및 yP3의 사양
Figure pct00082
표 2-7. 수평 루마 샘플 위치 xL, clipLeftPos 및 clipRightPos에 따른 xM1, xM2, xP1 및 xP2의 사양
Figure pct00083
2.8.2. JVET-P0080에서 가상 경계에서의 패딩 방법
루마 ALF/크로마 ALF와 유사하게, 반복적 패딩은 JVET-P0080에서 CC-ALF에 대해 ALF 가상 경계에서 활용된다. 도 22에서와 같이, 만약 상기 ALF 가상 경계 위 또는 아래의 루마 샘플들이 가용하지 않는 경우, 최근접 샘플 라인은 패딩에 대해 활용된다. 상세한 패딩 방법은 표 2-6에서도 제시된다.
2.9. JVET-P1008: CE5 관련: CC-ALF의 설계에 관하여
JVET-O0636 [1] 및 CE5-2.1 [2]에서, 크로스 컴포넌트 적응적 루프 필터(CC-ALF: Cross Component Adaptive Loop Filter)가 도입되어 연구되었다. 상기 필터는 선형 필터를 사용하여 루마 샘플 값들을 필터링하고 동 위치의 필터링된 출력으로부터 크로마 채널들에 대한 잔여 교정을 생성한다. 상기 필터는 기존 루마 ALF와 나란히 작동하도록 설계되었다.
CC-ALF 설계는 단순화됨과 동시에 기존 ALF와 더 잘 정렬되는 것으로 제안되었다. 상기 설계는 8개의 고유한 계수들을 가지는 3x4 다이아몬드 모양을 사용한다. 이는 CE5-2.1에서 연구된 5x6 설계와 비교하여 배수들의 수를 43% 감소시킨다. CTU의 크로마 성분에 대해 크로마 ALF 또는 CC-ALF를 활성화시키는 제약이 부가되는 경우, 우리는 픽셀 당 배수의 수를 16(현재 ALF는 15)으로 제한한다. 필터 계수 동적 범위는 부호를 가진 6 비트로 제한된다. 제안되고 CE5-2.1 해결책에 대한 필터들의 예시는 도 23에 제시된다.
기존 ALF 설계와 더 잘 정렬되도록, 필터 계수들은 APS에서 시그널링된다. 최대 4개의 필터들의 지원되며, 필터 선택은 CTU 레벨에서 지시된다. 대칭 라인 선택은 ALF와 더 조화롭도록 가상 경제에서 사용된다. 마지막으로, 교정 출력에 의해 필요한 스토리지의 양을 제한하기 위해, CC-ALF 잔여 출력은 -2BitDepthC-1 내지 2BitDepthC-1-1(경계값 포함)으로 클리핑된다.
JVET-P1008에서 CC-ALF에 관한 사양
x.x.x.x크로마 샘플들의 블록에 대한 크로스 컴포넌트 필터링 과정
이 과정의 입력들은 아래와 같다.
- 루마 적응적 루프 필터링 과정 이전의 재구성된 루마 픽처 샘플 어레이 recPictureL,
- 필터링된 재구성된 크로마 픽처 샘플 어레이 alfPictureC,
- 현재 픽처의 좌측 상단 샘플에 상대적인 현재 크로마 코딩 트리 블록의 좌측 상단 샘플을 명시하는 크로마 위치 ( xCtbC, yCtbC ),
- 크로마 샘플들의 블록의 폭 ccAlfWidth,
- 크로마 샘플들의 블록의 높이 ccAlfHeight,
- 크로스 컴포넌트 필터 계수들 CcAlfCoeff[j], with j = 0..7
이 과정의 출력은 수정된 필터링된 재구성된 크로마 픽처 샘플 어레이ccAlfPicture이다.
코딩 트리 블록 루마 위치( xCtb, yCtb )는 아래와 같이 유도된다
Figure pct00084
필터링된 재구성된 크로마 샘플들ccAlfPicture[ xCtbC + x ][ yCtbC + y ]의 유도를 위해, 샘플들의 현재 크로마 블록 내의 각 재구성된 크로마 샘플 alfPictureC[ xCtbC + x ][ yCtbC + y ] with x = 0..ccAlfWidth - 1, y = 0..ccAlfHeight - 1은 아래와 같이 필터링된다.
- 크로마 위치 ( xCtbC + x, yCtbC + y )의 현재 크로마 샘플에 상응하는 루마 위치(xL, yL)는 ( (xCtbC + x ) * SubWidthC, ( yCtbC + y ) * SubHeightC )와 동일하게 설정된다.
- 어레이 recPictureL 내부의 루마 위치들( hxL + i, vyL + j ) (i = -1..1, j = -1..2)은 아래와 같이 유도된다.
만약 pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_ver_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosX[ n ] % CtbSizeY가 0과 같지 않고, xL - PpsVirtualBoundariesPosX[ n ]이 0 이상 3 미만인 경우, 다음이 적용된다.
Figure pct00085
- 그렇지 않고, 만약 pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_ver_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosX[ n ] % CtbSizeY가 0과 같지 않고, PpsVirtualBoundariesPosX[ n ]- xL이 0 보다 크고 4 보다 작으면, 다음이 적용된다.
Figure pct00086
- 그렇지 않으면, 다음이 적용된다.
Figure pct00087
- 만약 pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_hor_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosY[ n ] % CtbSizeY가 0과 같지 않고, yL - PpsVirtualBoundariesPosY[ n ]이 0 이상 3 미만이면, 다음이 적용된다.
Figure pct00088
- 그렇지 않고, 만약 pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_hor_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosY[ n ] % CtbSizeY가 0과 같지 않고, PpsVirtualBoundariesPosY[ n ] - yL이 0 보다 크고 4 보다 작으면, 다음이 적용된다.
Figure pct00089
- 그렇지 않으면, 다음이 적용된다.
Figure pct00090
- 변수들 clipLeftPos, clipRightPos, clipTopPos 및 clipBottomPos는 ( xCtb, yCtb ) 및 ( xL - xCtb, yL - yCtb )를 입력들로 하여 8.8.5.5 절에 명시된 바와 같은 ALF 경계 위치 유도 과정을 원용하여 유도된다.
- 수직 샘플 위치 오프셋들 yM1, yP1 및 yP2는 수직 루마 샘플 위치 yL, clipLeftPos 및 clipRightPos에 따라 표 2-8에서 명시된다.
- 수평 샘플 위치 오프셋들 xM1 및 xP1는 수평 루마 샘플 위치 xL, clipLeftPos 및 clipRightPos에 따라 표 2-9에서 명시된다.
- 변수 curr은 다음과 같이 유도된다.
Figure pct00091
- 크로스 컴포넌트 필터 계수들의 어레이 f[ j ]는 j = 0..7에 대해 아래와 같이 유도된다
Figure pct00092
- 변수 sum은 다음과 같이 유도된다.
Figure pct00093
- 수정된 필터링된 재구성된 크로마 픽처 샘플 어레이 ccAlfPicture[ xCtbC + x ][ yCtbC + y ]는 다음과 같이 유도된다.
Figure pct00094
표 2-8. 수직 루마 샘플 위치 yL, clipTopPos 및 clipBottomPos에 따른 yM1, yP1 및 yP2의 사양
Figure pct00095
표 2-9. 수직 루마 샘플 위치 xL, clipLeftPos 및 clipRightPos에 따른 xM1 및 xP1의 사양
Figure pct00096
2.9.1. JVET-P1008에서 가상 경계에서의 패딩 방법
미러링된 (대칭) 패딩은 JVET-P1008에서 CC-ALF에 대해 ALF 가상 경계에서 활용된다. 도 24에서와 같이, 만약 상기 ALF 가상 경계 위 또는 아래의 루마 샘플들이 가용하지 않는 경우, 최근접 샘플 라인은 패딩에 대해 활용되고, 해당 샘플들 또한 패딩될 필요가 있다. 상세한 패딩 방법은 표 2-9에서도 제시된다.
2.10. JVET-P2025에서 CC-ALF의 단순화된 방법들
2.10.1. 대안적인 필터 모양들
CC-ALF 필터 모양은 아래 수치와 같이 8개 또는 6개의 계수들을 가지도록 수정된다.
도 25는 JVET-P0106에서 8개의 계수들의 CC-ALF 필터 모양을 보여준다.
도 26은 JVET-P0173에서 6개의 계수들의 CC-ALF 필터 모양을 도시한다.
도 27은 JVET-P0251에서 6개의 계수들의 CC-ALF 필터 모양을 도시한다.
2.10.2. 결합 크로마 크로스 컴포넌트 적응적 필터링
결합 크로마 크로스 컴포넌트 적응적 필터링(JC-CCALF: Joint Chroma Cross-Component Adaptive Loop Filter)은 인코더에서 훈련된 CCALF 필터 계수들의 오직 하나의 세트만을 사용하여 하나의 필터링된 출력을 개선 신호(refinement signal)로 생성하며, 이것은 Cb 성분에 직접적으로 가산되고 적절하게 가중치를 받은 후에 Cr 성분으로 가산될 것이다. 필터들은 CTU 레벨에서 지시되거나 블록 크기와 함께 지시되며, 이것은 슬라이스마다 시그널링된다.
지지되는 이와 같은 크로마 블록 크기들의 범위는 최소 크로마 CTU 크기부터 현재 크로마 CTU 크기까지 이다. 최소 크로마 CTU 크기는 크로마 CTU의 가능한 최소한의 폭 및 높이 가운데 최소값, 즉, Min( 32 / SubWidthC, 32 / SubHeightC )인 반면에, 현재 크로마 CTU 크기는 현재 크로마 CTU의 폭 및 높이 가운데 최소값, 즉, Min( CtbWidthC, CtbHeightC )이다. 예를 들어, 만약 CTU 크기가 최대 128x128에 설정된다면, 슬라이스의 JC-CCALF 크로마 블록 크기는 4:4:4 비디오의 경우 32x32, 64x64 그리고 128x128 중 하나일 것이며, 4:2:0 및 4:2:2 비디오의 경우 16x16, 32x32 그리고 64x64 중 하나일 것이다.
도 28은 JC-CCALF 워크플로우를 보여준다.
3. 여기에 기술된 기술적 해결수단들에 의해 해결되는 기술적 문제들
CC-ALF를 위한 경계 패딩의 현재 설계는 다음과 같은 문제들을 가진다.
1. CC-ALF에서 ALF 가상 경계에서의 패딩 방법은 차선의 방법일 수 있는데, 이는 덜 효율적일 수 있는 패딩된 샘플들이 활용되기 때문이다.
2. ALF 가상 경계 및 비디오 유닛 경계 (예를 들어, 픽처/서브픽처/슬라이스/타일 경계) 그리고 360도 가상 경계를 다루는 상이한 방식들, 즉, 상이한 패딩 방법들이 존재한다.
3. ALF에서, 미러 패딩이 적용되는데, 이때 현재 샘플까지의 거리가 계산되어 어떤 대응하는 샘플이 패딩될 필요가 있는지를 판단한다. 그러나, CC-ALF에서, 특히 4:2:0의 경우, 하나의 크로마 샘플을 필터링하기 위해, 복수의 루마 샘플들이 관련된다. 어떤 대응하는 샘플이 패딩될 필요가 있는지를 어떻게 판단할지는 알려지지 않았다.
4. 기술들 및 실시예들의 예시적 리스트
아래 리스트는 일반적인 개념을 설명하기 위한 예로서 고려되어야 한다. 이러한 항목들은 좁은 의미로 해석해서는 안 된다. 또한 이러한 항목들은 임의의 방식으로 결합될 수 있다.
본 개시에 기술된 일부 실시예들에서, 용어 "CC-ALF"는 제1 컬러 성분 (예를 들어, Cb)에서 샘플들을 개선하기 위해 제2 컬러 성분 (예를 들어, Y) 또는 복수의 컬러 성분들 (예를 들어, Y 및 Cr 모두)에서의 샘플 값들을 활용하는 코딩 툴을 나타낸다. 이것은 [1] 내지 [4]에서 설명된 CC-ALF 기술들에 제한되지 않는다. "해당 필터링 샘플 세트"는 필터 서포트에 포함되는 샘플들을 나타내는 데에, 즉 CC-ALF를 위해 사용될 수 있으며, 상기 "해당 필터링 샘플 세트"는 크로마 샘플의 개선/오프셋을 유도하는 데에 활용되는, 크로마 샘플의 동일 위치(collocated, 콜로케이티드) 루마 샘플 및 동일 위치 루마 샘플의 이웃 루마 샘플들을 나타내는 데에 사용될 수 있다.
ALF 가상 경계들을 위해 사용되는 패딩 방법은 '미러링된 패딩'으로 표시될 수 있으며, 이때 (i, j)에 위치한 제1 비가용 샘플이 패딩되고, 필터 서포트에 있는 '상기 제1 샘플의 해당 샘플'로 정의되는, ALF내의 제2 샘플 (예를 들어, 현재 루마 샘플로부터 동일한 거리를 공유하는 (m, n)에 위치한 해당 샘플) 또한, 비록 상기 제2 샘플이 가용함에도 불구하고 패딩된다.
일 예에서, 수직 패딩이 활용되어, (x, y1)에 위치하여 패딩될 샘플은 (x, y2)에 위한 샘플과 같은 것으로 설정되며, 이때 y1은 상기 샘플 또는 상응하는 샘플의 y 좌표를 나타내고, y2는 패딩을 위해 활용되는 샘플의 y 좌표를 나타낸다.
일 예에서, 수평 패딩이 활용되어, (x, y1)에 위치하여 패딩될 샘플은 (x2, y)에 위치한 샘플과 같은 것으로 설정되며, 이때 x1은 상기 샘플 또는 상응하는 샘플의 x 좌표를 나타내고, x2는 패딩을 위해 활용되는 샘플의 x 좌표를 나타낸다.
픽처/서브픽처/슬라이스/타일 경계들/360도 비디오 가상 경계들, 정상 경계들(예를 들어, 상단 및 하단 경계들)에 대해 사용되는 패딩 방법은 '반복 패딩'으로 지칭될 수 있으며, 이때 사용될 하나의 샘플이 상기 경계들 밖에 있는 경우, 그것은 상기 경계 내에 있는 가용한 것으로부터 복사된다.
본 개시에서, 이웃(인접하거나 인접하지 않는) 샘플이 상이한 비디오 처리 유닛에 (예를 들어, 현재 픽처, 현재 서브픽처, 현재 타일, 현재 슬라이스, 현재 브릭, 현재 CTU, 현재 프로세싱 유닛 (ALF 프로세싱 유닛 또는 좁은 ALF 프로세싱 유닛과 같은) 또는 기타 현재 비디오 유닛의 외부에) 위치하거나 재구성되지 않거나, 또는 크로스 필터링 비디오 처리가 허용되지 않는 경우, 상기 이웃 샘플은 "가용하지 않다"
"ALF 경계" 위치들은 ALF 샘플 패딩 과정에서 사용되는 클리핑된 샘플들이 어디서 획득되는지를 정의하는 데에 사용된다. ALF에서(예를 들어, 필터링 과정 또는/및 분류 과정에서) 사용되는 하나의 샘플이 상단/하단/좌측/우측 경계를 가로지르는 경우, 상기 샘플은 클리핑되어 상단/하단/좌측/우측 경계를 가로지르지 않게 될 것이다. "ALF 경계"는 "루마 ALF 경계" 및 "크로마 ALF 경계"를 포함한다. "크로마 ALF 경계"를 유도하는 경우, "루마 ALF 경계"가 먼저 유도되고 나서 컬러 포맷에 따라 "크로마 ALF 경계"에 매핑 된다.
CC-ALF를 위한 ALF 가상 경계 처리
1. 가용하지 않은 루마 샘플이 ALF 가상 경계에서 패딩되도록, 미러링된 패딩이 활용되어 상기 가용하지 않은 루마 샘플 및 상기 가용하지 않은 루마 샘플에 상응하는 하나 또는 복수의 상응하는 루마 샘플들을, CC-ALF에서 필터링을 위해, 유도할 수 있다. 다시 말해, 상기 가용하지 않은 루마 샘플에 상응하는 적어도 하나의 루마 샘플은 그것이 가용함에도 여전히 패딩될 필요가 있다.
a. 일 예에서, 가용하지 않은 루마 샘플에 상응하는 샘플로 판단되는 루마 샘플이 미러링된 패딩 방법을 사용하여 패딩될 수 있다.
b. 일 예에서, (해당 필터링 샘플 세트 내의) 루마 샘플이 가용하지 않은 샘플에 상응하는 샘플로 판단되는지 여부는 대표 루마 샘플에 대한 상기 샘플의 거리 또는/및 상기 대표 루마 샘플에 대한 상기 가용하지 않은 샘플의 거리에 의존적일 수 있다. 상기 대표 루마 샘플이 위치하는 중심을 C로 표시한다. 샘플들의 K개 행들 및 샘플들의 L개 열들을 활용하는 K x L 필터 모양이 CC-ALF에서 사용된다고 가정한다.
i. 일 예에서, 상기 대표 루마 샘플은 필터링되어야 하는 현재 크로마 샘플의 동일 위치(collocated) 루마 샘플로 정의된다.
1) 일 예에서, 현재 크로마 샘플의 동일 위치 루마 샘플의 위치는 컬러 포맷에 의존할 수 있다.
a) 일 예에서, (x, y)에 위치한 크로마 샘플의 동일 위치 루마 샘플은 4:2:0 크로마 포맷에서 (2x, 2y)에 위치하는 것으로 정의된다.
b) 일 예에서, (x, y)에 위치한 크로마 샘플의 동일 위치 루마 샘플은 4:2:2 크로마 포맷에서 (2x, y)에 위치하는 것으로 정의된다.
c) 일 예에서, (x, y)에 위치한 크로마 샘플의 동일 위치 루마 샘플은 4:4:4 크로마 포맷에서 (x, y)에 위치하는 것으로 정의된다.
ii. 일 예에서, 거리는 루마 샘플을 포함하는 행과 상기 대표 루마 샘플을 포함하는 행 사이의 수직 거리를 가리킨다. 예를 들어, 상기 거리는 루마 샘플과 상기 대표 루마 샘플 간의 절대 y 좌표 차이로 계산될 수 있다.
1) 도 29에서와 같이, 대표 루마 샘플이 위치하는 가운데 행, 가용하지 않은 샘플의 행, 그리고 상응하는 샘플들의 행을 각각 C, M 및 N 으로 표시하면, M 은 N 과 같지 않다. d(x, y)를 x와 y 사이의 절대 y 좌표 차이로 표시하고, 이는 행 x와 행 y 간의 거리를 의미한다.
iii. 일 예에서, 미러링된 패딩에서 패딩되어야 하는 해당 샘플들의 판단은 샘플들의 얼마나 많은 행들이 필터 모양에 의해 활용될 것인지에 의존할 수 있다.
iv. 일 예에서, 만약 가용하지 않은 샘플이 행 M 에 위치하면(예를 들어, M < C < N 또는 M > C > N), 행 N 에 위치하는 샘플들은 패딩되어야 하는 해당 샘플들로 판단되며, 이때 d(C, M) = d(N, C) 이다.
1) 일 예에서, 만약 값 K (예를 들어, KxL CC-ALF 필터 모양)가 홀수이면, ALF(예를 들어, 도 16)에 대한 미러링된 패딩 방법은 CC-ALF에 대해 활용될 수 있으며, 이때 중앙 루마 샘플이 대표 루마 샘플로 선택된다.
a) 일 예에서, K = 5라고 가정하고, yM2 = -2, yM1 = -1, yL = 0, yP1 = 1, yP2 = 2를 각각 표 4-5에 제시되는 5개의 샘플 행들의 y 좌표를 나타낸다. ALF 가상 경계는 CtbSizeY - 4와 같다.
i. 일 예에서, ALF 가상 경계가 대표 루마 샘플 위에 있는 경우, 가용하지 않은 샘플들이 ALF 가상 경계 아래의 최근접 행을 사용하여 패딩될 수 있다. 한편으로, 해당 샘플들은 그것들이 위치하는 행 위의 최근접 행을 사용하여 패딩될 수 있다.
1. 일 예에서, yL이 CtbSizeY - 3과 같고 행 yM2가 가용하지 않는 경우, 행 yM2에서의 샘플들 (x, yM2)은 행 yM1에서의 샘플들 (x, yM1)을 사용하여 패딩될 수 있다. 한편으로, 대응하는(corresponding) 행 yP2에서의 샘플들(x, yP2)은 행 yP1의 샘플들(x, yP1)을 사용하여 패딩될 수 있다.
2. 일 예에서, yL이 CtbSizeY - 4와 같고 행 yM2 및 행 yM1이 가용하지 않는 경우, 행 yM2 및 yM1에서의 샘플들 (x, yM2) 및 (x, yM1)은 행 yL에서의 샘플들 (x, yL)을 사용하여 패딩될 수 있다. 한편으로, 대응하는(corresponding) 행 yP2 및 yP1에서의 샘플들(x, yP2) 및 (x, yP1)은 행 yL에서의 샘플들(x, yL)을 사용하여 패딩될 수 있다.
ii. 일 예에서, ALF 가상 경계가 대표 루마 샘플 아래에 있는 경우, 가용하지 않은 샘플들이 ALF 가상 경계 위의 최근접 행을 사용하여 패딩될 수 있다. 한편으로, 해당 샘플들은 그것들이 위치하는 행 아래의 최근접 행을 사용하여 패딩될 수 있다.
1. 일 예에서, yL이 CtbSizeY - 6과 같고 행 yP2가 가용하지 않는 경우, 행 yP2에서의 샘플들 (x, yP2)은 행 yP1에서의 샘플들 (x, yP1)을 사용하여 패딩될 수 있다. 한편으로, 대응하는(corresponding) 행 yM2에서의 샘플들(x, yM2)은 행 yM1에서의 샘플들(x, yM1)을 사용하여 패딩될 수 있다.
2. 일 예에서, yL이 CtbSizeY - 5와 같고 행 yP2 및 행 yP1이 가용하지 않는 경우, 행 yP2 및 yP1에서의 샘플들 (x, yP2) 및 (x, yP1)은 행 yL에서의 샘플들 (x, yL)을 사용하여 패딩될 수 있다. 한편으로, 대응하는 행 yM2 및 yM1에서의 샘플들(x, yM2) 및 (x, yM1)은 행 yL에서의 샘플들(x, yL)을 사용하여 패딩될 수 있다.
2) 일 예에서, 만약 값 K (예를 들어, KxL CC-ALF 필터 모양)가 짝수이면, 도 30에 정의된 미러링된 패딩 방법이 활용될 수 있다. 가용하지 않은 샘플들이 ALF 가상 경계 위(아래)의 행 M(N)에 위치하는 경우, 그것들은 ALF 가상 경계 위(아래)의 최근접 샘플로부터 패딩된다. AFL 가상 경계 아래(위)의 행 N(M)에 위치한 해당 샘플들은 행 N(M) 위(아래)의 최근접 샘플로부터 패딩될 수 있음이 제안된다.
a) 일 예에서, K = 2라고 가정하고, yL = 0 및 yP1 = 1을 각각 표 4-1에 제시되는 2개의 샘플 행들의 y 좌표로 나타낸다. ALF 가상 경계는 CtbSizeY - 4와 같다.
i. 일 예에서, ALF 가상 경계가 대표 루마 샘플 위에 있는 경우, 가용하지 않은 샘플들이 ALF 가상 경계 아래의 최근접 행을 사용하여 패딩될 수 있다. 한편으로, 해당 샘플들은 그것들이 위치하는 행 위의 최근접 행을 사용하여 패딩될 수 있다.
1. 일 예에서, yL이 CtbSizeY - 4와 같고 yL 위의 행이 가용하지 않는 경우, 행 yP1에서의 샘플들 (x, yP1)은 행 yL에서의 샘플들 (x, yL)을 사용하여 패딩될 수 있다.
ii. 일 예에서, ALF 가상 경계가 대표 루마 샘플 아래에 있는 경우, 가용하지 않은 샘플들이 ALF 가상 경계 위의 최근접 행을 사용하여 패딩될 수 있다. 한편으로, 해당 샘플들은 그것들이 위치하는 행 아래의 최근접 행을 사용하여 패딩될 수 있다.
1. 일 예에서, yL이 CtbSizeY - 5와 같고 행 yP1이 가용하지 않는 경우, 행 yP1에서의 샘플들 (x, yP1)은 행 yL에서의 샘플들 (x, yL)을 사용하여 패딩될 수 있다.
b) 일 예에서, K = 4라고 가정하고, yM1 = -1, yL = 0, yP1 = 1, yP2 = 2을 각각 표 4-3에 제시되는 4개의 샘플 행들의 y 좌표로 나타낸다. ALF 가상 경계는 CtbSizeY - 4와 같다.
i. 일 예에서, ALF 가상 경계가 대표 루마 샘플 위에 있는 경우, 가용하지 않은 샘플들이 ALF 가상 경계 아래의 최근접 행을 사용하여 패딩될 수 있다. 한편으로, 해당 샘플들은 그것들이 위치하는 행 위의 최근접 행을 사용하여 패딩될 수 있다.
1. 일 예에서, yL이 CtbSizeY - 3과 같고 yM1 위의 행이 가용하지 않는 경우, 해당 행 yP2에서의 샘플들 (x, yP2)는 행 yP1에서의 샘플들 (x, yP1)을 사용하여 패딩될 수 있다.
2. 일 예에서, yL이 CtbSizeY - 4와 같고 yM1위의 행 및 행 yM1이 가용하지 않는 경우, 행 yM1에서의 샘플들 (x, yM1)은 행 yL에서의 샘플들 (x, yL)을 사용하여 패딩될 수 있다. 한편으로, 대응하는 행 yP2 및 yP1에서의 샘플들(x, yP2) 및 (x, yP1)은 행 yL에서의 샘플들(x, yL)을 사용하여 패딩될 수 있다.
ii. 일 예에서, ALF 가상 경계가 대표 루마 샘플 아래에 있는 경우, 가용하지 않은 샘플들이 ALF 가상 경계 위의 최근접 행을 사용하여 패딩될 수 있다. 한편으로, 해당 샘플들은 그것들이 위치하는 행 아래의 최근접 행을 사용하여 패딩될 수 있다.
1. 일 예에서, yL이 CtbSizeY - 6와 같고 행 yP2이 가용하지 않는 경우, 행 yP2에서의 샘플들 (x, yP2)은 행 yP1에서의 샘플들 (x, yP1)을 사용하여 패딩될 수 있다.
2. 일 예에서, yL이 CtbSizeY - 5와 같고 행 yP2 및 행 yP1이 가용하지 않는 경우, 행 yP2 및 yP1에서의 샘플들 (x, yP2) 및 (x, yP1)은 행 yL에서의 샘플들 (x, yL)을 사용하여 패딩될 수 있다. 한편으로, 대응하는 행 yM1에서의 샘플들(x, yM1)은 행 yL에서의 샘플들(x, yL)을 사용하여 패딩될 수 있다.
c) 일 예에서, K = 6이라 가정하고, yM2 = -2, yM1 = -1, yL = 0, yP1 = 1, yP2 = 2, yP3 =3을 각각 표 4-6에 제시되는 6개의 샘플 행들의 y 좌표로 나타낸다. ALF 가상 경계는 CtbSizeY - 4와 같다.
i. 일 예에서, ALF 가상 경계가 대표 루마 샘플 위에 있는 경우, 가용하지 않은 샘플들이 ALF 가상 경계 아래의 최근접 행을 사용하여 패딩될 수 있다. 한편으로, 해당 샘플들은 그것들이 위치하는 행 위의 최근접 행을 사용하여 패딩될 수 있다.
1. 일 예에서, yL이 CtbSizeY - 2와 같고 yM2위의 행이 가용하지 않는 경우, 상응하는 행 yP3에서의 샘플들 (x, yP3)은 행 yP2에서의 샘플들 (x, yP2)를 사용하여 패딩될 수 있다.
2. 일 예에서, yL이 CtbSizeY - 3과 같고, yM2 위의 행 및 행 yM2가 가용하지 않는 경우, 행 yM2에서의 샘플들 (x, yM2)는 행 yM1에서의 샘플들 (x, yM1)을 사용하여 패딩될 수 있다. 한편으로, 대응하는 행 yP3 및 yP2에서의 샘플들 (x, yP3) 및 (x, yP2)는 행 yP1의 샘플들(x, yP1)을 사용하여 패딩될 수 있다.
3. 일 예에서, yL이 CtbSizeY - 4와 같고 yM2위의 행, yM2 및 yM1이 가용하지 않는 경우, 행 yM2 및 yM1에서의 샘플들 (x, yM2) 및 (x, yM1)은 행 yL에서의 샘플들 (x, yL)을 사용하여 패딩될 수 있다. 한편으로, 대응하는 행 yP3, yP2 및 yP1에서의 샘플들 (x, yP2), (x, yP2) 및 (x, yP1)은 행 yL에서의 샘플들(x, yL)을 사용하여 패딩될 수 있다.
ii. 일 예에서, ALF 가상 경계가 대표 루마 샘플 아래에 있는 경우, 가용하지 않은 샘플들이 ALF 가상 경계 위의 최근접 행을 사용하여 패딩될 수 있다. 한편으로, 해당 샘플들은 그것들이 위치하는 행 아래의 최근접 행을 사용하여 패딩될 수 있다.
1. 일 예에서, yL이 CtbSizeY - 7과 같고 행 yP3이 가용하지 않는 경우, 행 yP3에서의 샘플들 (x, yP3)은 행 yP2에서의 샘플들 (x, yP2)을 사용하여 패딩될 수 있다.
2. 일 예에서, yL이 CtbSizeY - 6과 같고, 행 yP3 및 yP2가 가용하지 않는 경우, 행 yP3 및 yP2에서의 샘플들 (x, yP3) 및 (x, yP2)는 상기 행에서의 샘플들 (x, yP1)을 사용하여 패딩될 수 있다. 한편으로, 대응하는 행 yM2에서의 샘플들 (x, yM2)는 행 yM1에서의 샘플들(x, yM1)을 사용하여 패딩될 수 있다.
3. 일 예에서, yL이 CtbSizeY - 5와 같고 행 yP3, yP2 및 yP1이 가용하지 않는 경우, 행 yP3, yP2 및 yP1에서의 샘플들 (x, yP3), (x, yP2) 및 (x, yP1)은 행 yL에서의 샘플들 (x, yL)을 사용하여 패딩될 수 있다. 한편으로, 대응하는 행 yM2 및 yM1에서의 샘플들 (x, yM2) 및 (x, yM1)은 행 yL에서의 샘플들(x, yL)을 사용하여 패딩될 수 있다.
v. 일 예에서, 만약 가용하지 않은 샘플이 행 M에 위치하면(예를 들어, M < C), d(C, M) = d(N, C) - 오프셋(이때, 오프셋은 정수 값, 예를 들어 1과 같다) 또는 d(C, M) < d(N, C) 일 때, 행 N에 위치하는 샘플들은 패딩되어야 하는 해당 샘플들로 판단된다.
1) 일 예에서, 만약 가용하지 않은 샘플이 행 M (예를 들어, M > C)에 위치한다면, d(M, C) = d(C, N) - 오프셋 (이때, 오프셋은 정수 값, 예를 들어 1과 같다) 또는 d(C, M) < d(N, C)일 때, 행 N 에 위치한 샘플들이 패딩되어야 하는 해당 샘플들로 취급된다.
2) 일 예에서, 도 31에 정의된 미러링된 패딩 방법이 활용될 수 있다. 가용하지 않은 샘플들이 ALF 가상 경계 위(아래)의 행 M (N)에 위치하는 경우, 그것들은 ALF 가상 경계 위(아래)의 최근접 샘플로부터 패딩된다. AFL 가상 경계 아래(위)의 행 N (M)에 위치한 해당 샘플들은 행 N (M) 위(아래)의 최근접 샘플로부터 패딩될 수 있음이 제안된다.
a) 일 예에서, K = 2라고 가정하고, yL = 0 및 yP1 = 1을 각각 표 4-2에 제시되는 2개의 샘플 행들의 y 좌표로 나타낸다. ALF 가상 경계는 CtbSizeY - 4와 같다.
i. 일 예에서, ALF 가상 경계가 대표 루마 샘플 아래에 있는 경우, 가용하지 않은 샘플들이 ALF 가상 경계 위의 최근접 행을 사용하여 패딩될 수 있다. 한편으로, 해당 샘플들은 그것들이 위치하는 행 아래의 최근접 행을 사용하여 패딩될 수 있다.
1. 일 예에서, yL이 CtbSizeY - 5와 같고 행 yP1이 가용하지 않는 경우, 행 yP1에서의 샘플들 (x, yP1)은 행 yL에서의 샘플들 (x, yL)을 사용하여 패딩될 수 있다.
b) 일 예에서, K = 4라고 가정하고, yM1 = -1, yL = 0, yP1 = 1, yP2 = 2을 각각 표 4-4에 제시되는 4개의 샘플 행들의 y 좌표로 나타낸다. ALF 가상 경계는 CtbSizeY - 4와 같다.
i. 일 예에서, ALF 가상 경계가 대표 루마 샘플 위에 있는 경우, 가용하지 않은 샘플들이 ALF 가상 경계 아래의 최근접 행을 사용하여 패딩될 수 있다. 한편으로, 해당 샘플들은 그것들이 위치하는 행 위의 최근접 행을 사용하여 패딩될 수 있다.
1. 일 예에서, yL이 CtbSizeY - 4와 같고 yM1 위의 행 및 yM1이 가용하지 않는 경우, 행 yM1에서의 샘플들 (x, yM1)은 행 yL에서의 샘플들 (x, yL)을 사용하여 패딩될 수 있다. 한편으로, 행 yP2에서의 샘플들 (x, yP2)은 행 yP1에서의 샘플들 (x, yP1)을 사용하여 패딩될 수 있다.
ii. 일 예에서, ALF 가상 경계가 대표 루마 샘플 아래에 있는 경우, 가용하지 않은 샘플들이 ALF 가상 경계 위의 최근접 행을 사용하여 패딩될 수 있다. 한편으로, 해당 샘플들은 그것들이 위치하는 행 아래의 최근접 행을 사용하여 패딩될 수 있다.
1. 일 예에서, yL이 CtbSizeY - 6와 같고 행 yP2이 가용하지 않는 경우, 행 yP2에서의 샘플들 (x, yP2)은 행 yP1에서의 샘플들 (x, yP1)을 사용하여 패딩될 수 있다.
2. 일 예에서, yL이 CtbSizeY - 5와 같고 행 yP2 및 행 yP1이 가용하지 않는 경우, 행 yP2 및 yP1에서의 샘플들 (x, yP2) 및 (x, yP1)은 행 yL에서의 샘플들 (x, yL)을 사용하여 패딩될 수 있다. 한편으로, 대응하는 행 yM1에서의 샘플들(x, yM1)은 행 yL에서의 샘플들(x, yL)을 사용하여 패딩될 수 있다.
c) 일 예에서, K = 6이라 가정하고, yM2 = -2, yM1 = -1, yL = 0, yP1 = 1, yP2 = 2, yP3 =3을 각각 표 4-7에 제시되는 6개의 샘플 행들의 y 좌표로 나타낸다. ALF 가상 경계는 CtbSizeY - 4와 같다.
i. 일 예에서, ALF 가상 경계가 대표 루마 샘플 위에 있는 경우, 가용하지 않은 샘플들이 ALF 가상 경계 아래의 최근접 행을 사용하여 패딩될 수 있다. 한편으로, 해당 샘플들은 그것들이 위치하는 행 위의 최근접 행을 사용하여 패딩될 수 있다.
1. 일 예에서, yL이 CtbSizeY - 3와 같고 yM2 위의 행 및 yM2가 가용하지 않는 경우, 행 yM2에서의 샘플들 (x, yM2)는 행 yM1에서의 샘플들 (x, yM1)을 사용하여 패딩될 수 있다. 한편으로, 대응하는 행 yP3에서의 샘플들 (x, yP3)는 행 yP2에서의 샘플들 (x, yP2)을 사용하여 패딩될 수 있다.
2. 일 예에서, yL이 CtbSizeY - 4와 같고 yM2 위의 행, yM2 및 yM1이 가용하지 않는 경우, 행 yM2 및 yM1에서의 샘플들 (x, yM2) 및 (x, yM1)은 행 yL에서의 샘플들 (x, yL)을 사용하여 패딩될 수 있다. 한편, 대응하는 행 yP3 및 yP2에서의 샘플들 (x, yP3) 및 (x, yP2)는 행 yP1에서의 샘플들 (x, yP1)을 사용하여 패딩될 수 있다.
ii. 일 예에서, ALF 가상 경계가 대표 루마 샘플 아래에 있는 경우, 가용하지 않은 샘플들이 ALF 가상 경계 위의 최근접 행을 사용하여 패딩될 수 있다. 한편, 해당 샘플들은 그것들이 위치하는 행 아래의 최근접 행을 사용하여 패딩될 수 있다.
1. 일 예에서, yL이 CtbSizeY - 7과 같고 행 yP3가 가용하지 않는 경우, 행 yP3에서의 샘플들 (x, yP3)는 행 yP2에서의 샘플들 (x, yP2)를 사용하여 패딩될 수 있다. 한편으로, 대응하는 행 yM2에서의 샘플들 (x, yM2)는 행 yM1에서의 샘플들 (x, yM1)을 사용하여 패딩될 수 있다.
2. 일 예에서, yL이 CtbSizeY - 6과 같고 행 yP3 및 yP2가 가용하지 않는 경우, 행 yP3 및 yP2에서의 샘플들 (x, yP3) 및 (x, yP2)는 행 yP1에서의 샘플들 (x, yP1)을 사용하여 패딩될 수 있다. 한편, 대응하는 행 yM2 및 yM1에서의 샘플들 (x, yM2) 및 (x, yM1)은 행 yL에서의 샘플들 (x, yL)을 사용하여 패딩될 수 있다.
3. 일 예에서, yL이 CtbSizeY - 5와 같고 행 yP3, yP2 및 yP1이 가용하지 않는 경우, 행 yP3, yP2 및 yP1에서의 샘플들 (x, yP3), (x, yP2) 및 (x, yP1)은 행 yL에서의 샘플들 (x, yL)을 사용하여 패딩될 수 있다. 한편, 대응하는 행 yM2 및 yM1에서의 샘플들 (x, yM2) 및 (x, yM1)은 행 yL에서의 샘플들 (x, yL)을 사용하여 패딩될 수 있다.
c. 도 29는 (Xc, Yc)에 위치한 현재 크로마 샘플을 필터링하는 경우 가용하지 않은 샘플(ALF 가상 경계 위, C0에 의해 표시) 및 그것에 대응하는 샘플(C7에 의해 표시)의 위치의 예를 도시한다.
d. 일 예에서, CC-ALF/크로마 ALF/루마 ALF/기타 종류의 필터링 방법들을 위해 ALF 가상 경계에서 미러링된 패딩을 활성화할지 비활성화할지 여부는 시퀀스 헤더/픽처 헤더/SPS/VPS/DPS/PPS/APS/슬라이스 헤더/타일 그룹 헤더와 같은 시퀀스 레벨/픽처 레벨/슬라이스 레벨/타일 그룹 레벨에서 시그널링될 수 있다.
e. 일 예에서, ALF 가상 경계에서 반복 패딩 및/또는 미러링된 패딩을 활성화할지 또는 비활성화할지 여부는 코딩된 정보에 의존적일 수 있다.
i. 일 예에서, 상기 코딩된 정보는 CTU/CTB 크기 같은 블록 크기를 가리킬 수 있다.
1) 일 예에서, CTU/CTB 크기가 T = 32/64/128와 같은 T 이상인 경우, 미러링된 패딩은 ALF 가상 경계에서 활용될 수 있다.
2) 일 예에서, CTU/CTB 크기가 T = 4/8/16과 같은 T 이하인 경우, 반복 패딩은 ALF 가상 경계에서 활용될 수 있다.
2. 상기 항에서, 수직 패딩은 수평 패딩으로 대체될 수 있다.
a. 또는, 더 나아가, 어느 패딩 방향(수직 또는 수평)이 사용될 것인지는 경계가 수평 경계인지 수직 경계인지 여부에 의존할 수 있다.
b. 또는, 더 나아가, 수직 거리는 수평 거리로 대체될 수 있다
3. 1항의 미러링된 패딩 방법은 픽처/서브픽처/슬라이스/타일/경계 및/또는 360도 경계에 대해 활용될 수 있다.
ALF 경계 위치들이 정의되는 방식과 관련하여
4. 제1 "루마 ALF 경계"는 상기 루마 성분에 대해 유도될 수 있고, 제2 "루마 ALF 경계"는 크로마 성분에 대해 유도된 뒤에 "크로마 ALF 경계"에 매핑될 수 있으며, 이때 상기 제1 "루마 ALF 경계"는 상기 제2 "루마 ALF 경계"와 상이할 수 있다.
a. 일 예에서, 상기 제1 "루마 ALF 경계"는 루마 ALF 또는/및 CC-ALF에 대해 유도되고 사용될 수 있다.
i. 일 예에서, 상기 제1 "루마 ALF 경계"의 유도 동안, CC-ALF는 루마 ALF로 취급될 수 있다.
b. 일 예에서, 상기 "루마 ALF 경계"는 크로마 ALF에 대해 유도되고 사용될 수 있다.
c. 일 예에서, 상기 제2 "루마 ALF 경계"는 상기 컬러 포맷 또는/및 상기 필터링 방법들에 의존할 수 있다.
i. 예를 들어, 상기 제2 "루마 ALF 경계"는 4:2:0 컬러 포맷에 대한 크로마 ALF에서 그리고 4:2:2/4:4:4 컬러 포맷에 대한 크로마 ALF에서 상이하게 유도될 수 있다.
ii. 예를 들어, 4:2:0 컬러 포맷에 대한 크로마 ALF에서 상기 제2 "루마 ALF 경계"는 상기 제1 "루마 ALF 경계"와 동일하게 유도될 수 있다.
iii. 예를 들어, 상기 제2 "루마 ALF 경계"의 유도 동안, 4:2:0 컬러 포맷에 대한 크로마 ALF는 루마 AFL로 취급될 수 있다.
iv. 예를 들어, 상기 제2 "루마 ALF 경계"의 유도 동안, 4:2:0 컬러 포맷에 대한 크로마 ALF는 CC-AFL로 취급될 수 있다.
v. 예를 들어, 4:2:2/4:4:4 컬러 포맷에 대한 크로마 ALF에서 제2 "루마 ALF 경계"는 루마 ALF에서의 상기 제1 "루마 ALF 경계"와 상이하게 유도될 수 있다.
vi. 예를 들어, 4:2:2/4:4:4 컬러 포맷에 대한 크로마 ALF에서 제2 "루마 ALF 경계"는 CC-ALF에서의 상기 제1 "루마 ALF 경계"와 상이하게 유도될 수 있다.
d. 상기 "루마 ALF 경계" 위치는 상단 경계 위치 또는/및 하단 경계 위치 또는/및 좌측 경계 위치 또는/및 우측 경계 위치를 가리킬 수 있다.
e. 일 예에서, "루마 ALF 경계" 위치의 유도는 ALF 가상 경계 (또는 ALF 가상 경계와 현재 CTU의 하당 경계 사이의 거리)에 대한 오프셋을 명시하는 변수 vbOffset 및/또는 현재 CTU의 상단 경계로부터의 오프셋을 명시하는 변수 M에 의존할 수 있다. 현재 루마 CTB의 좌측 상단 샘플에 대한 현재 샘플의 루마 위치를 (x, y)로 표시하고, 현재 픽처의 좌측 상단 샘플에 대한 현재 루마 CTB의 좌측 상단 샘플의 루마 위치를 (xCtb, yCtb)로 표시하고, 현재 루마 CTB의 크기를 CtbSizeY로 표시한다.
i. 일 예에서, 만약 y - ( CtbSizeY - vbOffset )가 0 보다 크거나 같으면, 상단 경계 위치는 yCtb + CtbSizeY - vbOffset와 같도록 설정될 수 있다.
ii. 일 예에서, 만약 현재 CTB의 상단 경계가 타일/슬라이스/서브픽처의 상단 경계이고 타일/슬라이스/서브픽처를 가로지르는 루프 필터가 비활성화되면, y가 M 미만인 경우, 상단 경계 위치는 yCtb와 같게 설정될 수 있다.
iii. 일 예에서, CtbSizeY - vbOffset - y가 0 보다 크고 N 보다 작은 경우, 하단 경계 위치는 yCtb + CtbSizeY - vbOffset와 같게 설정될 수 있다.
iv. 일 예에서, 만약 현재 CTB의 하단 경계가 타일/슬라이스/서브픽처의 하단 경계이고 타일/슬라이스/서브픽처를 가로지르는 루프 필터가 비활성화되면, CtbSizeY - y가 L 미만인 경우, 하단 경계 위치는 yCtb + CtbSizeY와 같게 설정될 수 있다.
f. 일 예에서, CC-ALF에서의 제1 "ALF 루마 경계"는 루마 ALF에서의 "ALF 루마 경계"와 같게 유도된다.
i. 일 예에서, 상단 경계 위치 또는/및 하단 경계 위치의 유도 동안, vbOffset의 동일한 값이 CC-ALF 및 루마 ALF에 대해 사용될 수 있다.
ii. 일 예에서, 상단 경계 위치 또는/및 하단 경계 위치의 유도 동안, M, N 및 L의 동일한 값이 CC-ALF 및 루마 ALF에 대해 사용될 수 있다.
g. 일 예에서, 4:2:0 포맷을 가지는 크로마 ALF에서 사용되는 제2 "ALF 루마 경계는 제1 "ALF 루마 경계"와 같게 유도된다.
i. 일 예에서, 크로마 포맷이 4:2:0인 경우, 상단 경계 위치 또는/및 하단 경계 위치의 유도 동안, vbOffset의 동일한 값이 크로마 ALF 및 루마 ALF에 대해 사용될 수 있다.
1) 일 예에서, vbOffset은 정수로, 가령 4이다.
ii. 일 예에서, 크로마 포맷이 4:2:0인 경우, 상단 경계 위치 또는/및 하단 경계 위치의 유도 동안, M, N 및 L의 동일한 값이 크로마 ALF 및 루마 ALF에 대해 사용될 수 있다.
1) 일 예에서, M, N 및 L은 정수들로, 가령 M = 3, N = 5, L = 5이다.
h. 일 예에서, 4:2:2/4:4:4 크로마 포맷을 가지는 크로마 ALF에서 사용되는 제2 "ALF 루마 경계"는 제1 "ALF 루마 경계"와 상이하게 유도된다.
i. 일 예에서, 크로마 포맷이 4:2:2/4:4:4인 경우, 상단 경계 위치 또는/및 하단 경계 위치의 유도 동안, vbOffset의 상이한 값들이 크로마 ALF 및 루마 ALF에 대해 사용될 수 있다.
1) 일 예에서, vbOffset1는 크로마 ALF에 대해 사용되고 andvbOffset2는 루마 ALF에 대해 사용된다. vbOffset1는 vbOffset2와 같지 않을 수 있으며, 가령 vbOffset1= 2 및 vbOffset2 = 4일 수 있다.
ii. 일 예에서, 크로마 포맷이 4:2:2/4:4:4인 경우, 상단 경계 위치 또는/및 하단 경계 위치의 유도 동안, vbOffset의 상이한 값들이 크로마 ALF 및 4:2:0 크로마 포맷을 가지는 크로마 ALF에 대해 사용될 수 있다.
iii. 일 예에서, 크로마 포맷이 4:2:2/4:4:4인 경우, 상단 경계 위치 또는/및 하단 경계 위치의 유도 동안, M, N 및 L의 상이한 값들이 크로마 ALF 및 루마 ALF에 대해 사용될 수 있다.
1) 일 예에서, M1, N1 및 L1은 4:2:2/4:4:4 크로마 포맷을 가지는 크로마 ALF에 대해 사용되고, M2, N2 및 L2는 루마 ALF에 대해 사용되며, 이때 M1은 M2와 같지 않을 수 있고, N1은 N2와 같지 않을 수 있으며, L1은 L2와 같지 않을 수 있다.
a) 일 예에서, M1 = 2, N1 = 3, L1 = 3 및 M2 = 3, N2 = 5, L2 = 5이다.
iv. 일 예에서, 크로마 포맷이 4:2:2/4:4:4인 경우, 상단 경계 위치 또는/및 하단 경계 위치의 유도 동안, M, N 및 L의 상이한 값들이 크로마 ALF 및 4:2:0 크로마 포맷을 가지는 크로마 ALF에 대해 사용될 수 있다.
i. 일 예에서, 4:2:2/4:4:4 크로마 포맷을 가지는 크로마 ALF에서 사용되는 제2 "ALF 루마 경계"는 CC-ALF에서 사용되는 제1 "ALF 루마 경계"와 상이하게 유도된다.
i. 일 예에서, 크로마 포맷이 4:2:2/4:4:4인 경우, 상단 경계 위치 또는/및 하단 경계 위치의 유도 동안, vbOffset의 상이한 값들이 크로마 ALF 및 CC-ALF에 대해 사용될 수 있다.
1) 일 예에서, vbOffset3\1은 크로마 ALF에 대해 사용되고, vbOffset2는 CC-ALF에 대해 사용된다. vbOffset1은 vbOffset2와 같지 않을 수 있으며, vbOffset1= 2 및 vbOffset2 = 4일 수 있다.
ii. 일 예에서, 크로마 포맷이 4:2:2/4:4:4인 경우, 상단 경계 위치 또는/및 하단 경계 위치의 유도 동안, M, N 및 L의 상이한 값들이 크로마 ALF 및 CC-ALF에 대해 사용될 수 있다.
1) 일 예에서, M1, N1 및 L1은 4:2:2/4:4:4 크로마 포맷을 가지는 크로마 ALF에 대해 사용되며, M2, N2 및 L2는 CC-ALF에 대해 사용되고, 이때 M1은 M2와 같지 않을 수 있고, N1은 N2와 같지 않을 수 있고, L1은 L2와 같지 않을 수 있다.
a) 일 예에서, M1 = 2, N1 = 3, L1 = 3 및 M2 = 3, N2 = 5, L2 = 5이다.
j. 상기 제안된 방법들은 360도 경계들에 적용될 수 있다.
일반 개념들
5. 상기 개시된 방법들을 적용할지 여부 및/또는 어떻게 적용할지는 시퀀스 헤더/픽처 헤더/SPS/VPS/DPS/PPS/APS/슬라이스 헤더/타일 그룹 헤더와 같은 시퀀스 레벨/픽처 레벨/슬라이스 레벨/타일 그룹 레벨에서 시그널링될 수 있다.
6. 상기 개시된 방법들을 적용할지 여부 및/또는 어떻게 적용할지는 컬러 포맷, 싱글/듀얼 트리 분할, 샘플의 위치(가령, CU/CTU에 상대적인 위치)와 같은 코딩된 정보에 의존할 수 있다.
표 4-1. 수직 루마 샘플 위치 yL 및 applyAlfLineBufBoundary에 따른 yP1의 사양
Figure pct00097
표 4-2. 수직 루마 샘플 위치 yL 및 applyAlfLineBufBoundary에 따른 yP1의 사양
Figure pct00098
표 4-3. 수직 루마 샘플 위치 yL 및 applyAlfLineBufBoundary에 따른 yM1, yP1 및 yP2의 사양
Figure pct00099
표 4-4. 수직 루마 샘플 위치 yL 및 applyAlfLineBufBoundary에 따른 yM1, yP1 및 yP2의 사양
Figure pct00100
표 4-5. 수직 루마 샘플 위치 yL 및 applyAlfLineBufBoundary에 따른 yM2, yM1, yP1 및 yP2의 사양
Figure pct00101
표 4-6. 수직 루마 샘플 위치 yL 및 applyAlfLineBufBoundary에 따른 yM2, yM1, yP1, yP2 및 yP3의 사양
Figure pct00102
표 4-7. 수직 루마 샘플 위치 yL 및 applyAlfLineBufBoundary에 따른 yM2, yM1, yP1, yP2 및 yP3의 사양
Figure pct00103
5. 실시예들
삭제 및 추가들을 보여줌으로써 변경사항들이 강조된다
5.1. 실시예#1
JVET-P0080에 명시된 초안은 아래와 같이 변경될 수 있다.
x.x.x.x 크로마 샘플들의 블록에 대한 크로스 컴포넌트 필터링 과정
이 과정의 입력들은 아래와 같다.
루마 적응적 루프 필터링 과정 이전의 재구성된 루마 픽처 샘플 어레이 recPictureL,
필터링되고 재구성된 크로마 픽처 샘플 어레이 alfPictureC,
현재 픽처의 좌측 상단 샘플에 상대적인 크로마 샘플들의 현재 블록의 좌측 상단 샘플을 명시하는 크로마 위치 (xC, yC),
크로마 샘플들의 블록의 폭 ccAlfWidth
크로마 샘플들의 블록의 높이 ccAlfHeight
크로스 컴포넌트 필터 계수들 CcAlfCoeff[j] (j = 0..13)
이 과정의 출력은 수정 및 필터링되고 재구성된 크로마 픽처 샘플 어레이ccAlfPicture이다.
코딩 트리 블록 루마 위치(xCtb, yCtb)는 아래와 같이 유도된다
Figure pct00104
필터링된 재구성된 크로마 샘플들 ccAlfPicture[ xC + x ][ yC + y ]의 유도를 위해, 샘플들의 현재 크로마 블록 내의 재구성된 크로마 샘플 각각은 alfPictureC[ xC + x ][ yC + y ] with x = 0..ccAlfWidth - 1, y = 0..ccAlfHeight - 1 아래와 같이 필터링 된다.
- 크로마 위치( xC + x, yC + y )의 현재 크로마 샘플에 상응하는 루마 위치(xL, yL)는 ( (xC + x ) * SubWidthC, ( yC + y ) * SubHeightC )와 같게 설정된다.
- 어레이 recPictureL 내부의 루마 위치들( hxL + i, vyL + j ) (i = -2..2, j = -2..3)은 다음과 같이 유도된다.
- 만약 pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_ver_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosX[ n ] % CtbSizeY가 0과 같지 않으며, xL - PpsVirtualBoundariesPosX[ n ]가 0 이상 3 미만인 경우, 다음이 적용된다.
Figure pct00105
- 그렇지 않고, pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_ver_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosX[ n ] % CtbSizeY가 0과 같지 않고, PpsVirtualBoundariesPosX[ n ]- xL는 0 보다 크고 4 미만이면, 다음이 적용된다
Figure pct00106
- 그렇지 않으면, 다음이 적용된다.
Figure pct00107
- pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_hor_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosY[ n ] % CtbSizeY가 0과 같지 않고, yL - PpsVirtualBoundariesPosY[ n ]가 0 이상 3 미만인 경우, 다음이 적용된다
Figure pct00108
- 그렇지 않고, 만약 pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_hor_virtual_boundaries - 1에 대해 PpsVirtualBoundariesPosY[ n ] % CtbSizeY가 0과 같지 않고 PpsVirtualBoundariesPosY[ n ] - yL이 0 보다 크고 4 미만인 경우, 다음이 적용된다
Figure pct00109
- 그렇지 않은 경우, 다음이 적용된다.
Figure pct00110
- 변수들 clipLeftPos, clipRightPos, clipTopPos 및 clipBottomPos는 (xCtb, yCtb) 및 (xL - xCtb, yL - yCtb)를 입력들로 하여 8.8.5.5 절에 명시된 바와 같이 ALF 경계 위치 유도 과정을 원용하는 것에 의해 유도된다.
- 수직 샘플 위치 오프셋 yM2, yM1, yP1, yP2 및 yP3는 표 4-1. 수직 루마 샘플 위치 yL 및 applyAlfLineBufBoundary에 따른 yP1의 사양 에 명시된다.
Figure pct00111
표 4 2. 수직 루마 샘플 위치 yL 및 applyAlfLineBufBoundary에 따른 yP1의 사양
Figure pct00112
- 수직 루마 샘플 위치 yL, clipLeftPos 및 clipRightPos에 의거
- 수평 샘플 위치 오프셋들 xM1, xM2, xP1 및 xP2는 수평 루마 샘플 위치 xL, clipLeftPos 및 clipRightPos에 따라 표 y yyyy에 명시된다.
- 변수 curr은 아래와 같이 유도된다
Figure pct00113
- 크로스 컴포넌트 필터 계수들f[ j ]의 어레이는 j = 0..13으로 다음과 같이 유도된다.
Figure pct00114
- 변수 sum은 다음과 같이 유도된다.
Figure pct00115
- 수정된 필터링된 재구성된 크로마 픽처 샘플 어레이 ccAlfPicture[ xC + x ][ yC + y ]는 다음과 같이 유도된다.
Figure pct00116
표 x xx - 수직 루마 샘플 위치 yL, clipTopPos 및 clipBottomPos에 따른 yM1, yM2, yP1, yP2 및 yP3의 사양
아래 표는 삭제한다
Figure pct00117
상기 표를 대신하여 아래 표를 추가한다.
Figure pct00118
표 y-yy - 수평 루마 샘플 위치 xL, clipLeftPos 및 clipRightPos에 따른 xM1, xM2, xP1 및 xP2의 사양
Figure pct00119
5.2. 실시예#2
JVET-P0080에 명시된 초안은 아래와 같이 변경될 수 있다.
x.x.x.x 크로마 샘플들의 블록에 대한 크로스 컴포넌트 필터링 과정
이 과정의 입력들은 아래와 같다.
루마 적응적 루프 필터링 과정 이전의 재구성된 루마 픽처 샘플 어레이 recPictureL,
필터링되고 재구성된 크로마 픽처 샘플 어레이 alfPictureC,
현재 픽처의 좌측 상단 샘플에 상대적인 크로마 샘플들의 현재 블록의 좌측 상단 샘플을 명시하는 크로마 위치 (xC, yC),
크로마 샘플들의 블록의 폭 ccAlfWidth
크로마 샘플들의 블록의 높이 ccAlfHeight
크로스 컴포넌트 필터 계수들 CcAlfCoeff[j] (j = 0..13)
이 과정의 출력은 수정 및 필터링되고 재구성된 크로마 픽처 샘플 어레이ccAlfPicture이다.
코딩 트리 블록 루마 위치(xCtb, yCtb)는 아래와 같이 유도된다
Figure pct00120
필터링된 재구성된 크로마 샘플들 ccAlfPicture[ xC + x ][ yC + y ]의 유도를 위해, 샘플들의 현재 크로마 블록 내의 재구성된 크로마 샘플 각각은 alfPictureC[ xC + x ][ yC + y ] with x = 0..ccAlfWidth - 1, y = 0..ccAlfHeight - 1 아래와 같이 필터링 된다.
- 크로마 위치( xC + x, yC + y )의 현재 크로마 샘플에 상응하는 루마 위치(xL, yL)는 ( (xC + x ) * SubWidthC, ( yC + y ) * SubHeightC )와 같게 설정된다.
- 어레이 recPictureL 내부의 루마 위치들( hxL + i, vyL + j ) (i = -2..2, j = -2..3)은 다음과 같이 유도된다.
- 만약 pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_ver_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosX[ n ] % CtbSizeY가 0과 같지 않으며, xL - PpsVirtualBoundariesPosX[ n ]가 0 이상 3 미만인 경우, 다음이 적용된다.
Figure pct00121
- 그렇지 않고, pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_ver_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosX[ n ] % CtbSizeY가 0과 같지 않고, PpsVirtualBoundariesPosX[ n ]- xL는 0 보다 크고 4 미만이면, 다음이 적용된다
Figure pct00122
- 그렇지 않으면, 다음이 적용된다.
Figure pct00123
- pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_hor_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosY[ n ] % CtbSizeY가 0과 같지 않고, yL - PpsVirtualBoundariesPosY[ n ]가 0 이상 3 미만인 경우, 다음이 적용된다
Figure pct00124
- 그렇지 않고, 만약 pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_hor_virtual_boundaries - 1에 대해 PpsVirtualBoundariesPosY[ n ] % CtbSizeY가 0과 같지 않고 PpsVirtualBoundariesPosY[ n ] - yL이 0 보다 크고 4 미만인 경우, 다음이 적용된다
Figure pct00125
- 그렇지 않은 경우, 다음이 적용된다.
Figure pct00126
- 변수들 clipLeftPos, clipRightPos, clipTopPos 및 clipBottomPos는 (xCtb, yCtb) 및 (xL - xCtb, yL - yCtb)를 입력들로 하여 8.8.5.5 절에 명시된 바와 같이 ALF 경계 위치 유도 과정을 원용하는 것에 의해 유도된다.
- 수직 샘플 위치 오프셋 yM2, yM1, yP1, yP2 및 yP3는 표 4-1. 수직 루마 샘플 위치 yL 및 applyAlfLineBufBoundary에 따른 yP1의 사양 에 명시된다.
Figure pct00127
표 4 2. 수직 루마 샘플 위치 yL 및 applyAlfLineBufBoundary에 따른 yP1의 사양
Figure pct00128
- 수직 루마 샘플 위치 yL, clipLeftPos 및 clipRightPos에 의거
- 수평 샘플 위치 오프셋들 xM1, xM2, xP1 및 xP2는 수평 루마 샘플 위치 xL, clipLeftPos 및 clipRightPos에 따라 표 y yyyy에 명시된다.
- 변수 curr은 아래와 같이 유도된다
Figure pct00129
- 크로스 컴포넌트 필터 계수들f[ j ]의 어레이는 j = 0..13으로 다음과 같이 유도된다.
Figure pct00130
- 변수 sum은 다음과 같이 유도된다.
Figure pct00131
- 수정된 필터링된 재구성된 크로마 픽처 샘플 어레이 ccAlfPicture[ xC + x ][ yC + y ]는 다음과 같이 유도된다.
Figure pct00132
표 x xx - 수직 루마 샘플 위치 yL, clipTopPos 및 clipBottomPos에 따른 yM1, yM2, yP1, yP2 및 yP3의 사양
아래 표는 삭제한다.
Figure pct00133
아래 표를 추가한다.
Figure pct00134
표 y-yy - 수평 루마 샘플 위치 xL, clipLeftPos 및 clipRightPos에 따른 xM1, xM2, xP1 및 xP2의 사양
Figure pct00135
5.3. 실시예#3
JVET-P1008에 명시된 작업 초안은 아래와 같이 변경될 수 있다.
x.x.x.x크로마 샘플들의 블록에 대한 크로스 컴포넌트 필터링 과정
이 과정의 입력들은 아래와 같다.
- 루마 적응적 루프 필터링 과정 이전의 재구성된 루마 픽처 샘플 어레이 recPictureL,
- 필터링된 재구성된 크로마 픽처 샘플 어레이 alfPictureC,
- 현재 픽처의 좌측 상단 샘플에 상대적인 현재 크로마 코딩 트리 블록의 좌측 상단 샘플을 명시하는 크로마 위치 ( xCtbC, yCtbC ),
- 크로마 샘플들의 블록의 폭 ccAlfWidth,
- 크로마 샘플들의 블록의 높이 ccAlfHeight,
- 크로스 컴포넌트 필터 계수들 CcAlfCoeff[j], with j = 0..7
이 과정의 출력은 수정된 필터링된 재구성된 크로마 픽처 샘플 어레이ccAlfPicture이다.
코딩 트리 블록 루마 위치( xCtb, yCtb )는 아래와 같이 유도된다
Figure pct00136
필터링된 재구성된 크로마 샘플들ccAlfPicture[ xCtbC + x ][ yCtbC + y ]의 유도를 위해, 샘플들의 현재 크로마 블록 내의 각 재구성된 크로마 샘플 alfPictureC[ xCtbC + x ][ yCtbC + y ] with x = 0..ccAlfWidth - 1, y = 0..ccAlfHeight - 1은 아래와 같이 필터링된다.
- 크로마 위치 ( xCtbC + x, yCtbC + y )의 현재 크로마 샘플에 상응하는 루마 위치(xL, yL)는 ( (xCtbC + x ) * SubWidthC, ( yCtbC + y ) * SubHeightC )와 동일하게 설정된다.
- 어레이 recPictureL 내부의 루마 위치들( hxL + i, vyL + j ) (i = -1..1, j = -1..2)은 아래와 같이 유도된다.
- 만약 pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_ver_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosX[ n ] % CtbSizeY가 0과 같지 않고, xL - PpsVirtualBoundariesPosX[ n ]이 0 이상 3 미만인 경우, 다음이 적용된다.
Figure pct00137
- 그렇지 않고, 만약 pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_ver_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosX[ n ] % CtbSizeY가 0과 같지 않고, PpsVirtualBoundariesPosX[ n ]- xL이 0 보다 크고 4 보다 작으면, 다음이 적용된다.
Figure pct00138
- 그렇지 않으면, 다음이 적용된다.
Figure pct00139
- 만약 pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_hor_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosY[ n ] % CtbSizeY가 0과 같지 않고, yL - PpsVirtualBoundariesPosY[ n ]이 0 이상 3 미만이면, 다음이 적용된다.
Figure pct00140
- 그렇지 않고, 만약 pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_hor_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosY[ n ] % CtbSizeY가 0과 같지 않고, PpsVirtualBoundariesPosY[ n ] - yL이 0 보다 크고 4 보다 작으면, 다음이 적용된다.
Figure pct00141
- 그렇지 않으면, 다음이 적용된다.
Figure pct00142
- 변수들 clipLeftPos, clipRightPos, clipTopPos 및 clipBottomPos는 ( xCtb, yCtb ) 및 ( xL - xCtb, yL - yCtb )를 입력들로 하여 8.8.5.5 절에 명시된 바와 같은 ALF 경계 위치 유도 과정을 원용하여 유도된다.
- 수직 샘플 위치 오프셋 yM1, yP1 및 yP2는 표 4-1. 수직 루마 샘플 위치 yL 및 applyAlfLineBufBoundary에 따른 yP1의 사양에 명시된다.
Figure pct00143
표 4 2. 수직 루마 샘플 위치 yL 및 applyAlfLineBufBoundary에 따른 yP1의 사양
Figure pct00144
수직 루마 샘플 위치 yL, clipLeftPos 및 clipRightPos에 의거.
수평 샘플 위치 오프셋들 xM1 및 xP1는 수평 루마 샘플 위치 xL, clipLeftPos 및 clipRightPos에 따라 표 y-yyyy에 명시된다.
- 변수 curr는 다음과 같이 유도된다
Figure pct00145
- 크로스 컴포넌트 필터 계수들의 어레이 f[ j ]는 j = 0..7에 대해 아래와 같이 유도된다
Figure pct00146
- 변수 sum은 다음과 같이 유도된다.
Figure pct00147
- 수정된 필터링된 재구성된 크로마 픽처 샘플 어레이 ccAlfPicture[ xCtbC + x ][ yCtbC + y ]는 다음과 같이 유도된다.
Figure pct00148
표 x-xx - 수직 루마 샘플 위치 yL, clipTopPos 및 clipBottomPos에 따른 yM1, yP1 및 yP2의 사양
아래 표는 삭제한다.
Figure pct00149
아래 표를 추가한다.
Figure pct00150
표 y-yy - 수평 루마 샘플 위치 xL, clipLeftPos 및 clipRightPos에 따른 xM1 및 xP1의 사양
Figure pct00151
5.4. 실시예#4
JVET-P1008에 명시된 작업 초안은 아래와 같이 변경될 수 있다. 변경들은 굵은 기울여 쓰기로 강조되며, 삭제된 텍스트들은 이중 꺾쇠로 표시된다(예를 들어, [[a]]는 문자 "a"의 삭제를 표시한다).
x.x.x.x크로마 샘플들의 블록에 대한 크로스 컴포넌트 필터링 과정
이 과정의 입력들은 아래와 같다.
- 루마 적응적 루프 필터링 과정 이전의 재구성된 루마 픽처 샘플 어레이 recPictureL,
- 필터링된 재구성된 크로마 픽처 샘플 어레이 alfPictureC,
- 현재 픽처의 좌측 상단 샘플에 상대적인 현재 크로마 코딩 트리 블록의 좌측 상단 샘플을 명시하는 크로마 위치 ( xCtbC, yCtbC ),
- 크로마 샘플들의 블록의 폭 ccAlfWidth,
- 크로마 샘플들의 블록의 높이 ccAlfHeight,
- 크로스 컴포넌트 필터 계수들 CcAlfCoeff[j], with j = 0..7
이 과정의 출력은 수정된 필터링된 재구성된 크로마 픽처 샘플 어레이ccAlfPicture이다.
코딩 트리 블록 루마 위치( xCtb, yCtb )는 아래와 같이 유도된다
Figure pct00152
필터링된 재구성된 크로마 샘플들ccAlfPicture[ xCtbC + x ][ yCtbC + y ]의 유도를 위해, 샘플들의 현재 크로마 블록 내의 각 재구성된 크로마 샘플 alfPictureC[ xCtbC + x ][ yCtbC + y ] with x = 0..ccAlfWidth - 1, y = 0..ccAlfHeight - 1은 아래와 같이 필터링된다.
- 크로마 위치 ( xCtbC + x, yCtbC + y )의 현재 크로마 샘플에 상응하는 루마 위치(xL, yL)는 ( (xCtbC + x ) * SubWidthC, ( yCtbC + y ) * SubHeightC )와 동일하게 설정된다.
- 어레이 recPictureL 내부의 루마 위치들( hxL + i, vyL + j ) (i = -1..1, j = -1..2)은 아래와 같이 유도된다.
만약 pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_ver_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosX[ n ] % CtbSizeY가 0과 같지 않고, xL - PpsVirtualBoundariesPosX[ n ]이 0 이상 3 미만인 경우, 다음이 적용된다.
Figure pct00153
- 그렇지 않고, 만약 pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_ver_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosX[ n ] % CtbSizeY가 0과 같지 않고, PpsVirtualBoundariesPosX[ n ]- xL이 0 보다 크고 4 보다 작으면, 다음이 적용된다.
Figure pct00154
- 그렇지 않으면, 다음이 적용된다.
Figure pct00155
- 만약 pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_hor_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosY[ n ] % CtbSizeY가 0과 같지 않고, yL - PpsVirtualBoundariesPosY[ n ]이 0 이상 3 미만이면, 다음이 적용된다.
Figure pct00156
- 그렇지 않고, 만약 pps_loop_filter_across_virtual_boundaries_disabled_flag가 1과 같고, 임의의 n = 0..pps_num_hor_virtual_boundaries - 1에 대해, PpsVirtualBoundariesPosY[ n ] % CtbSizeY가 0과 같지 않고, PpsVirtualBoundariesPosY[ n ] - yL이 0 보다 크고 4 보다 작으면, 다음이 적용된다.
Figure pct00157
- 그렇지 않으면, 다음이 적용된다.
Figure pct00158
- 변수들 clipLeftPos, clipRightPos, clipTopPos 및 clipBottomPos는 ( xCtb, yCtb ) 및 ( xL - xCtb, yL - yCtb )를 입력들로 하여 8.8.5.5 절에 명시된 바와 같은 ALF 경계 위치 유도 과정을 원용하여 유도된다.
- 수직 샘플 위치 오프셋 yM1, yP1 및 yP2는 표 4-1. 수직 루마 샘플 위치 yL 및 applyAlfLineBufBoundary에 따른 yP1의 사양에 명시된다.
Figure pct00159
표 4-2. 수직 루마 샘플 위치 yL 및 applyAlfLineBufBoundary에 따른 yP1의 사양
Figure pct00160
- 수직 루마 샘플 위치 yL, clipLeftPos 및 clipRightPos에 의거
- 수평 샘플 위치 오프셋들 xM1 및 xP1는 수평 루마 샘플 위치 xL, clipLeftPos 및 clipRightPos에 따라 표 y yyyy에 명시된다.
- 변수 curr은 다음과 같이 유도된다.
Figure pct00161
- 크로스 컴포넌트 필터 계수들의 어레이 f[ j ]는 j = 0..7에 대해 아래와 같이 유도된다
Figure pct00162
- 변수 sum은 다음과 같이 유도된다.
Figure pct00163
- 수정된 필터링된 재구성된 크로마 픽처 샘플 어레이 ccAlfPicture[ xCtbC + x ][ yCtbC + y ]는 다음과 같이 유도된다.
Figure pct00164
표 x-xx - 수직 루마 샘플 위치 yL, clipTopPos 및 clipBottomPos에 따른 yM1, yP1 및 yP2의 사양
아래 표는 삭제한다.
Figure pct00165
아래 표를 추가한다.
Figure pct00166
표 y-yy - 수평 루마 샘플 위치 xL, clipLeftPos 및 clipRightPos에 따른 xM1 및 xP1의 사양
Figure pct00167
5.5.실시예#5
JVET-S2001-v5에 명시된 작업 초안은 아래와 같이 변경될 수 있다.
8.8.5 적응적 루프 필터 과정
8.8.5.2 루마 샘플들에 대한 코딩 트리 블록 필터링 과정
변수들 clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag는 ( xCtb, yCtb ) [[및]], ( x, y ) 및 4와 같게 설정된 변수 vbOffset을 입력들로 하여 8.8.5.5절에 명시된 ALF 경계 위치 유도 과정을 원용하여 유도된다.
- 변수들 hx + i 및 vy + j는 ( xCtb, yCtb ), ( hx + i, vy + j ), 0, clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag를 입력으로 하여 8.8.5.6절에 명시된 ALF 샘플 패딩 과정을 원용하여 수정된다.
8.8.5.3 루마 샘플들에 대한 ALF 트랜스포즈 및 필터 인덱스를 위한 유도 과정
- 변수들 clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag는 ( xCtb, yCtb ) [[및]], ( x4, y4 ) 및 4와 같도록 설정된 변수 vbOffset를 입력들로 하여 8.8.5.5절에서 명시된 ALF 경계 위치 유도 과정을 원용하여 유도된다.
8.8.5.4 크로마 샘플들에 대한 코딩 트리 블록 필터링 과정
- 변수들 clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag은 ( xCtbC * SubWidthC, yCtbC * SubHeightC ) [[및]], ( x * SubWidthC, y *SubHeightC ) 및 2 * SubHeightC와 같게 설정된 변수 vbOffset 를 입력들로 하여 8.8.5.5절에서 명시된 ALF 경계 위치 유도 과정을 원용하여 유도된다.
- 변수들 hx + i 및 vy + j는 ( xCtbC * SubWidthC, yCtbC * SubHeightC ), ( hx + i, vy + j ), 1과 같게 설정된 변수 isChroma, clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag를 입력으로하여 8.8.5.6절에서 명시된 ALF 샘플 패딩 과정을 원용하여 수정된다.
8.8.5.5 ALF 경계 위치 유도 과정
이 과정의 입력들은 아래와 같다.
- 현재 픽처의 좌측 상단 샘플에 대한 현재 루마 코딩 트리 블록의 좌측 상단 샘플을 명시하는 루마 위치 ( xCtb, yCtb ),
- 현재 루마 코딩 트리 블록의 좌측 상단 샘플에 대해 현재 샘플을 명시하는 루마 위치 ( x, y )[[.]],
- ALF 가상 경계에 대한 오프셋을 명시하는 변수 vbOffset.
변수 clipTopPos는 다음과 같이 수정된다.
- 만약 y - ( CtbSizeY - [[4]] vbOffset  )이 0 보다 크거나 같으면, 변수 clipTopPos는 yCtb + CtbSizeY - [[4]] vbOffset 와 같게 설정된다.
- 그렇지 않고, 만약 VirtualBoundariesPresentFlag가 1과 같고, 임의의 n = 0..NumHorVirtualBoundaries - 1에 대해, yCtb + y - VirtualBoundaryPosY[ n ]가 0 이상 [[3]] (vbOffset >>1 ) + 1 미만이면, 다음이 적용된다.
Figure pct00168
- 그렇지 않고, 만약 y가 3 미만이고, 다음 조건들 중 하나 또는 그 이상이 참이면, 변수 clipTopPos는 yCtb와 같게 설정된다.
- 현재 코딩 트리 블록의 상단 경계는 타일의 상단 경계이고, pps_loop_filter_across_tiles_enabled_flag는 0과 같다.
- 현재 코딩 트리 블록의 상단 경계가 슬라이스의 상단 경계이고, pps_loop_filter_across_slices_enabled_flag는 0과 같다.
- 현재 코딩 트리 블록의 상단 경계가 서브픽처의 상단 경계이고, sps_loop_filter_across_subpic_enabled_flag[ CurrSubpicIdx ]가 0과 같다.
변수 clipBottomPos는 다음과 같이 수정된다.
- 만약 VirtualBoundariesPresentFlag가 1과 같고, 임의의 n = 0..NumHorVirtualBoundaries - 1에 대해, VirtualBoundaryPosY[ n ]이 pps_pic_height_in_luma_samples - 1과 같지 않거나 0이고, VirtualBoundaryPosY[ n ] - yCtb - y가 0 보다 크고 5 보다 작으면, 다음이 적용된다.
Figure pct00169
그렇지 않고, 만약 CtbSizeY - [[4]] vbOffset  - y가 0 보다 크고 5 보다 작으면, 변수 clipBottomPos는 yCtb + CtbSizeY - [[4]] vbOffset 과 같게 설정된다.
- 그렇지 않고, 만약 CtbSizeY - y가 5 미만이고, 다음 조건들 중 하나 또는 그 이상이 참이면, 변수 clipBottomPos는 yCtb + CtbSizeY과 같게 설정된다.
- 현재 코딩 트리 블록의 하단 경계는 타일의 하단 경계이고, pps_loop_filter_across_tiles_enabled_flag가 0과 같다.
- 현재 코딩 트리 블록의 하단 경계는 슬라이스의 하단 경계이고, pps_loop_filter_across_slices_enabled_flag가 0과 같다.
- 현재 코딩 트리 블록의 하단 경계는 서브픽처의 하단 경계이고, sps_loop_filter_across_subpic_enabled_flag[ CurrSubpicIdx ]가 0과 같다.
8.8.5.6 ALF 샘플 패딩 과정
이 과정의 입력들은 아래와 같다.
- 현재 픽처의 좌측 상단 샘플에 대한 현재 루마 코딩 트리 블록의 좌측 상단 샘플을 명시하는 [[루마]] 샘플 위치 ( xCtb, yCtb ),
- 현재 픽처의 좌측 상단 샘플에 대해 이웃 샘플을 명시하는 루마 위치 ( x, y ),
- 컬러 성분이 크로마 성분인지 여부를 명시하는 플래그 isChroma,
- 좌측 수직 경계 위치 clipLeftPos,
- 우측 수직 경계 위치 clipRightPos,
- 상단 수평 경계 위치 clipTopPos,
- 하단 수평 경계 위치 clipBottomPos,
- 좌측 상단 경계 플래그 clipTopLeftFlag,
- 우측 하단 경계 플래그 clipBotRightFlag.
이 과정의 출력들은 아래와 같다.
- 현재 픽처의 좌측 상단 샘플에 대한 이웃 샘플을 명시하는 수정된 [[루마]] 샘플 위치 ( x, y ),
8.8.5.7 크로스 컴포넌트 필터링 과정
- 변수들 clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag는 ( xCtbC * SubWidthC, yCtbC * SubHeightC ) [[및]] ( x * SubWidthC, y *SubHeightC ) 및 4와 같게 설정된 변수 vbOffset를 입력들로 하여 8.8.5.5절에서 명시된 ALF 경계 위치 유도 과정을 원용하여 유도된다.
- 변수들 hx + i 및 vy + j는 ( xCtbC * SubWidthC, yCtbC * SubHeightC ), ( hx + i, vy + j ), 0과 같게 설정된 변수 isChroma, clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag를 입력으로 하여 8.8.5.6절에서 명시된 ALF 샘플 패딩 과정을 원용하여 수정된다.
5.6. 실시예#6
JVET-S2001-v5에 명시된 작업 초안은 아래와 같이 변경될 수 있다.
8.8.5 적응적 루프 필터 과정
8.8.5.2 루마 샘플들에 대한 코딩 트리 블록 필터링 과정
- 변수들 clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag는 ( xCtb, yCtb ) [[및]], ( x, y ) 및 4와 같게 설정된 변수 vbOffset을 입력들로 하여 8.8.5.5절에 명시된 ALF 경계 위치 유도 과정을 원용하여 유도된다.
- 변수들 hx + i 및 vy + j는 ( xCtb, yCtb ), ( hx + i, vy + j ), 0, clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag를 입력으로 하여 8.8.5.6절에 명시된 ALF 샘플 패딩 과정을 원용하여 수정된다.
8.8.5.3 루마 샘플들에 대한 ALF 트랜스포즈 및 필터 인덱스를 위한 유도 과정
- 변수들 clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag는 ( xCtb, yCtb ) [[및]], ( x4, y4 ) 4와 같도록 설정된 변수 vbOffset를 입력들로 하여 8.8.5.5절에서 명시된 ALF 경계 위치 유도 과정을 원용하여 유도된다.
8.8.5.4 크로마 샘플들에 대한 코딩 트리 블록 필터링 과정
- 변수들 clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag은 ( xCtbC * SubWidthC, yCtbC * SubHeightC ) [[및]], ( x * SubWidthC, y *SubHeightC ) 및 2 * SubHeightC와 같게 설정된 변수 vbOffset 를 입력들로 하여 8.8.5.5절에서 명시된 ALF 경계 위치 유도 과정을 원용하여 유도된다.
- 변수들 hx + i 및 vy + j는 ( xCtbC * SubWidthC, yCtbC * SubHeightC ), ( hx + i, vy + j ), 1과 같게 설정된 변수 isChroma, clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag를 입력으로 하여 8.8.5.6절에서 명시된 ALF 샘플 패딩 과정을 원용하여 수정된다.
8.8.5.5 ALF 경계 위치 유도 과정
이 과정의 입력들은 아래와 같다.
- 현재 픽처의 좌측 상단 샘플에 대한 현재 루마 코딩 트리 블록의 좌측 상단 샘플을 명시하는 루마 위치 ( xCtb, yCtb ),
- 현재 루마 코딩 트리 블록의 좌측 상단 샘플에 대해 현재 샘플을 명시하는 루마 위치 ( x, y )[[.]],
- ALF 가상 경계에 대한 오프셋을 명시하는 변수 vbOffset.
변수 clipTopPos는 다음과 같이 수정된다.
- 만약 y - ( CtbSizeY - [[4]] vbOffset  )이 0 보다 크거나 같으면, 변수 clipTopPos는 yCtb + CtbSizeY - [[4]] vbOffset 와 같게 설정된다.
- 그렇지 않고, 만약 VirtualBoundariesPresentFlag가 1과 같고, 임의의 n = 0..NumHorVirtualBoundaries - 1에 대해, yCtb + y - VirtualBoundaryPosY[ n ]가 0 이상 3 미만이면, 다음이 적용된다.
Figure pct00170
- 그렇지 않고, 만약 y가 [[3]] (vbOffset >>1 ) + 1 미만이고, 다음 조건들 중 하나 또는 그 이상이 참이면, 변수 clipTopPos는 yCtb와 같게 설정된다.
- 현재 코딩 트리 블록의 상단 경계는 타일의 상단 경계이고, pps_loop_filter_across_tiles_enabled_flag는 0과 같다.
- 현재 코딩 트리 블록의 상단 경계가 슬라이스의 상단 경계이고, pps_loop_filter_across_slices_enabled_flag는 0과 같다.
- 현재 코딩 트리 블록의 상단 경계가 서브픽처의 상단 경계이고, sps_loop_filter_across_subpic_enabled_flag[ CurrSubpicIdx ]가 0과 같다.
변수 clipBottomPos는 다음과 같이 수정된다.
- 만약 VirtualBoundariesPresentFlag가 1과 같고, 임의의 n = 0..NumHorVirtualBoundaries - 1에 대해, VirtualBoundaryPosY[ n ]이 pps_pic_height_in_luma_samples - 1과 같지 않거나 0이고, VirtualBoundaryPosY[ n ] - yCtb - y가 0 보다 크고 5 보다 작으면, 다음이 적용된다.
Figure pct00171
- 그렇지 않고, 만약 CtbSizeY - [[4]] vbOffset  - y가 0 보다 크고 [[5]] vbOffset + 1 보다 작으면, 변수 clipBottomPos는 yCtb + CtbSizeY - [[4]] vbOffset 과 같게 설정된다.
- 그렇지 않고, 만약 CtbSizeY - y가 [[5]] vbOffset + 1 미만이고, 다음 조건들 중 하나 또는 그 이상이 참이면, 변수 clipBottomPos는 yCtb + CtbSizeY과 같게 설정된다.
- 현재 코딩 트리 블록의 하단 경계는 타일의 하단 경계이고, pps_loop_filter_across_tiles_enabled_flag가 0과 같다.
- 현재 코딩 트리 블록의 하단 경계는 슬라이스의 하단 경계이고, pps_loop_filter_across_slices_enabled_flag가 0과 같다.
- 현재 코딩 트리 블록의 하단 경계는 서브픽처의 하단 경계이고, sps_loop_filter_across_subpic_enabled_flag[ CurrSubpicIdx ]가 0과 같다.
8.8.5.6 ALF 샘플 패딩 과정
이 과정의 입력들은 아래와 같다.
- 현재 픽처의 좌측 상단 샘플에 대한 현재 루마 코딩 트리 블록의 좌측 상단 샘플을 명시하는 [[루마]] 샘플 위치 ( xCtb, yCtb ),
- 현재 픽처의 좌측 상단 샘플에 대해 이웃 샘플을 명시하는 루마 위치 ( x, y ),
- 컬러 성분이 크로마 성분인지 여부를 명시하는 플래그 isChroma,
- 좌측 수직 경계 위치 clipLeftPos,
- 우측 수직 경계 위치 clipRightPos,
- 상단 수평 경계 위치 clipTopPos,
- 하단 수평 경계 위치 clipBottomPos,
- 좌측 상단 경계 플래그 clipTopLeftFlag,
- 우측 하단 경계 플래그 clipBotRightFlag.
이 과정의 출력들은 아래와 같다.
- 현재 픽처의 좌측 상단 샘플에 대한 이웃 샘플을 명시하는 수정된 [[루마]] 샘플 위치 ( x, y ).
8.8.5.7 크로스 컴포넌트 필터링 과정
- 변수들 clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag는 ( xCtbC * SubWidthC, yCtbC * SubHeightC ) [[및]] ( x * SubWidthC, y *SubHeightC ) 및 4와 같게 설정된 변수 vbOffset를 입력들로 하여 8.8.5.5절에서 명시된 ALF 경계 위치 유도 과정을 원용하여 유도된다.
- 변수들 hx + i 및 vy + j는 ( xCtbC * SubWidthC, yCtbC * SubHeightC ), ( hx + i, vy + j  ), 0과 같게 설정된 변수 isChroma, clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag를 입력으로 하여 8.8.5.6절에서 명시된 ALF 샘플 패딩 과정을 원용하여 수정된다.
5.7. 실시예#7
JVET-S2001-v5에 명시된 작업 초안은 아래와 같이 변경될 수 있다.
8.8.5 적응적 루프 필터 과정
8.8.5.2 루마 샘플들에 대한 코딩 트리 블록 필터링 과정
- 변수들 clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag는 ( xCtb, yCtb ) [[및]], ( x, y ) 및 4와 같게 설정된 변수 vbOffset을 입력들로 하여 8.8.5.5절에 명시된 ALF 경계 위치 유도 과정을 원용하여 유도된다.
- 변수들 hx + i 및 vy + j는 ( xCtb, yCtb ), ( hx + i, vy + j ), 0, clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag를 입력으로 하여 8.8.5.6절에 명시된 ALF 샘플 패딩 과정을 원용하여 수정된다.
8.8.5.3 루마 샘플들에 대한 ALF 트랜스포즈 및 필터 인덱스를 위한 유도 과정
- 변수들 clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag는 ( xCtb, yCtb ) [[및]], ( x4, y4 ) 4와 같도록 설정된 변수 vbOffset를 입력들로 하여 8.8.5.5절에서 명시된 ALF 경계 위치 유도 과정을 원용하여 유도된다.
8.8.5.4 크로마 샘플들에 대한 코딩 트리 블록 필터링 과정
- 변수들 clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag은 ( xCtbC * SubWidthC, yCtbC * SubHeightC ) [[및]], ( x * SubWidthC, y *SubHeightC ) 및 2 * SubHeightC와 같게 설정된 변수 vbOffset 를 입력들로 하여 8.8.5.5절에서 명시된 ALF 경계 위치 유도 과정을 원용하여 유도된다.
- 변수들 hx + i 및 vy + j는 ( xCtbC * SubWidthC, yCtbC * SubHeightC ), ( hx + i, vy + j ), 1과 같게 설정된 변수 isChroma, clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag를 입력으로하여 8.8.5.6절에서 명시된 ALF 샘플 패딩 과정을 원용하여 수정된다.
8.8.5.5 ALF 경계 위치 유도 과정
이 과정의 입력들은 아래와 같다.
- 현재 픽처의 좌측 상단 샘플에 대한 현재 루마 코딩 트리 블록의 좌측 상단 샘플을 명시하는 루마 위치 ( xCtb, yCtb ),
- 현재 루마 코딩 트리 블록의 좌측 상단 샘플에 대해 현재 샘플을 명시하는 루마 위치 ( x, y )[[.]],
- ALF 가상 경계에 대한 오프셋을 명시하는 변수 vbOffset.
변수 clipTopPos는 다음과 같이 수정된다.
- 만약 y - ( CtbSizeY - [[4]] vbOffset  )이 0 보다 크거나 같으면, 변수 clipTopPos는 yCtb + CtbSizeY - [[4]] vbOffset 와 같게 설정된다.
- 그렇지 않고, 만약 VirtualBoundariesPresentFlag가 1과 같고, 임의의 n = 0..NumHorVirtualBoundaries - 1에 대해, yCtb + y - VirtualBoundaryPosY[ n ]가 0 이상 [[3]] (vbOffset >>1 ) + 1 미만이면, 다음이 적용된다
Figure pct00172
- 그렇지 않고, 만약 y가 [[3]] (vbOffset >>1 ) + 1 미만이고, 다음 조건들 중 하나 또는 그 이상이 참이면, 변수 clipTopPos는 yCtb와 같게 설정된다.
- 현재 코딩 트리 블록의 상단 경계는 타일의 상단 경계이고, pps_loop_filter_across_tiles_enabled_flag는 0과 같다.
- 현재 코딩 트리 블록의 상단 경계가 슬라이스의 상단 경계이고, pps_loop_filter_across_slices_enabled_flag는 0과 같다.
- 현재 코딩 트리 블록의 상단 경계가 서브픽처의 상단 경계이고, sps_loop_filter_across_subpic_enabled_flag[ CurrSubpicIdx ]가 0과 같다.
변수 clipBottomPos는 다음과 같이 수정된다.
- 만약 VirtualBoundariesPresentFlag가 1과 같고, 임의의 n = 0..NumHorVirtualBoundaries - 1에 대해, VirtualBoundaryPosY[ n ]이 pps_pic_height_in_luma_samples - 1과 같지 않거나 0이고, VirtualBoundaryPosY[ n ] - yCtb - y가 0 보다 크고 5vbOffset + 1 보다 작으면, 다음이 적용된다.
Figure pct00173
- 그렇지 않고, 만약 CtbSizeY - [[4]] vbOffset  - y가 0 보다 크고 [[5]] vbOffset + 1 보다 작으면, 변수 clipBottomPos는 yCtb + CtbSizeY - [[4]] vbOffset 과 같게 설정된다.
- 그렇지 않고, 만약 CtbSizeY - y가 [[5]] vbOffset + 1 미만이고, 다음 조건들 중 하나 또는 그 이상이 참이면, 변수 clipBottomPos는 yCtb + CtbSizeY과 같게 설정된다.
- 현재 코딩 트리 블록의 하단 경계는 타일의 하단 경계이고, pps_loop_filter_across_tiles_enabled_flag는 0과 같다.
- 현재 코딩 트리 블록의 하단 경계는 슬라이스의 하단 경계이고, pps_loop_filter_across_slices_enabled_flag는 0과 같다.
- 현재 코딩 트리 블록의 하단 경계는 서브 픽처의 하단 경계이고, sps_loop_filter_across_subpic_enabled_flag[ CurrSubpicIdx ]는 0과 같다.
8.8.5.6 ALF 샘플 패딩 과정
이 과정의 입력들은 아래와 같다.
- 현재 픽처의 좌측 상단 샘플에 대한 현재 루마 코딩 트리 블록의 좌측 상단 샘플을 명시하는 [[루마]] 샘플 위치 ( xCtb, yCtb ),
- 현재 픽처의 좌측 상단 샘플에 대해 이웃 샘플을 명시하는 루마 위치 ( x, y ),
- 컬러 성분이 크로마 성분인지 여부를 명시하는 플래그 isChroma,
- 좌측 수직 경계 위치 clipLeftPos,
- 우측 수직 경계 위치 clipRightPos,
- 상단 수평 경계 위치 clipTopPos,
- 하단 수평 경계 위치 clipBottomPos,
- 좌측 상단 경계 플래그 clipTopLeftFlag,
- 우측 하단 경계 플래그 clipBotRightFlag.
이 과정의 출력들은 아래와 같다.
- 현재 픽처의 좌측 상단 샘플에 대한 이웃 샘플을 명시하는 수정된 [[루마]] 샘플 위치 ( x, y ).
8.8.5.7 크로스 컴포넌트 필터링 과정
- 변수들 clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag는 ( xCtbC * SubWidthC, yCtbC * SubHeightC ) [[및]] ( x * SubWidthC, y *SubHeightC ) 및 4와 같게 설정된 변수 vbOffset를 입력들로 하여 8.8.5.5절에서 명시된 ALF 경계 위치 유도 과정을 원용하여 유도된다.
- 변수들 hx + i 및 vy + j는 ( xCtbC * SubWidthC, yCtbC * SubHeightC ), ( hx + i, vy + j  ), 0과 같게 설정된 변수 isChroma, clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag를 입력으로 하여 8.8.5.6절에서 명시된 ALF 샘플 패딩 과정을 원용하여 수정된다.
도 32는 본 문서에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 처리 시스템(1900)을 도시하는 블록도이다. 다양한 구현들은 시스템(1900)의 일부 또는 전체 구성요소들을 포함할 수 있다. 시스템(1900)은 비디오 콘텐트를 수신하기 위한 입력(1902)을 포함할 수 있다. 상기 비디오 콘텐트는 8 또는 10 비트 다중 컴포넌트 픽셀 값들과 같은 로(raw) 또는 비압축 포맷으로 수신될 수 있거나 또는 압축 또는 인코딩된 포맷일 수 있다. 입력(1902)은 네트워크 인터페이스, 주변 버스 인터페이스 또는 스토리지 인터페이스를 표시할 수 있다. 네트워크 인터페이스의 예들은 이더넷, 수동 광학 네트워크 (PON: passive optical network) 등과 같은 유선 인터페이스들 및 와이파이 또는 셀룰러 인터페이스들과 같은 무선 인터페이스들을 포함할 수 있다.
시스템(1900)은 본 문서에 기술된 다양한 코딩 또는 인코딩 방법들을 구현할 수 있는 코딩 구성요소(1904)를 포함할 수 있다. 코딩 구성요소(1904)는 상기 비디오의 코딩된 표현을 산출하기 위해 코딩 구성요소(1904)의 입력(1902)으로부터 출력까지의 비디오의 평균 비트레이트를 감소시킬 수 있다. 따라서, 코딩 기술들은 종종 비디오 압축 또는 비디오 트랜스코딩 기술로 불린다. 코딩 구성요소(1904)의 출력은 컴포넌트(1906)에 의해 표현되는 것처럼, 저장되거나 또는 연결된 통신을 통해 전송될 수 있다. 입력(1902)에서 수신된 상기 비디오의 저장되거나 통신된 (또는 코딩된) 비트스트림 표현은 컴포넌트(1908)에 의해 사용되어 픽셀 값들을 생성하거나 또는 디스플레이 인터페이스(1910)에 전송되는 디스플레이 가능한 비디오를 생성할 수 있다. 상기 비트스트림 표현으로부터 사용자가 시청가능한 비디오를 생성하는 프로세스는 종종 비디오 압축해제라 불린다. 더 나아가, 특정 비디오 처리 동작들이 "코딩” 동작 또는 툴로 불리는 반면, 상기 코딩 툴 또는 동작들은 인코더 측에서 사용되며 상기 코딩의 결과들을 반전시키는 대응하는 디코딩 툴 또는 동작들은 디코더가 실시할 것이라는 것이 이해될 것이다.
주변 버스 인터페이스 또는 디스플레이 인터페이스의 예들은 범용 직렬 버스(USB: universal serial bus) 또는 고해상도 멀티미디어 인터페이스 (HDMI: high definition multimedia interface) 또는 디스플레이포트 등을 포함할 수 있다. 스토리지 인터페이스의 예들은 SATA(직렬 고급 기술 연결), PCI, IDE 인터페이스 등을 포함한다. 본 문서에서 개시되는 기술들은 이동 전화, 노트북, 스마트폰, 또는 디지털 데이터 처리 및/또는 비디오 디스플레이를 실행할 수 있는 기타 디바이스들과 같은 다양한 전자 디바이스들에서 구현될 수 있다.
도 33은 비디오 처리 장치(3600)의 블록도이다. 상기 장치(3600)는 본 명세서에서 개시되는 하나 또는 그 이상의 방법들을 실시하는 데에 사용될 수 있다. 장치(3600)는 스마트폰, 테블릿, 컴퓨터, 사물인터넷(IoT) 수신기 등에서 구현될 수 있다. 장치(3600)는 하나 또는 그 이상의 프로세서들(3602), 하나 또는 그 이상의 메모리들(3604), 그리고 비디오 처리 하드웨어(3606)을 포함할 수 있다. 프로세서(들)(3602)는 본 문서에서 개시되는 하나 또는 그 이상의 방법들을 실시하도록 구성될 수 있다. 메모리(메모리들)(3604)은 본 명세서에 개시된 방법들 및 기술들을 실시하는 데에 사용되는 데이터 및 코드를 저장하는 데에 사용될 수 있다. 비디오 처리 하드웨어(3606)는 본 문서에서 개시되는 일부 기술들을 하드웨어 회로에서 실행할 수 있다.
도 35는 본 개시의 기술들을 활용할 수 있는 예시적인 비디오 코딩 시스템(100)을 도시하는 블록도이다.
도 35에서 보이는 바와 같이, 비디오 코딩 시스템(100)은 소스 디바이스(110) 및 목적지 디바이스(120)를 포함할 수 있다. 소스 디바이스(110)는 인코딩된 비디오 데이터를 생성시키며, 비디오 인코딩 디바이스로 불릴 수 있다. 목적지 디바이스(120)는 소스 디바이스(110)에 의해 생성된 상기 인코딩된 비디오 데이터를 디코딩 할 수 있으며, 비디오 디코딩 디바이스로 불릴 수 있다.
소스 디바이스(110)는 비디오 소스(112), 비디오 인코더(114) 및 입력/출력(I/O) 인터페이스(116)를 포함할 수 있다.
비디오 소스(112)는 비디오 캡처 디바이스, 비디오 콘텐트 제공기로부터 비디오 데이터를 수신하기 위한 인터페이스, 그리고/또는 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템과 같은 소스, 또는 이러한 소스들의 조합을 포함할 수 있다. 상기 비디오 데이터는 하나 또는 그 이상의 픽처들을 포함할 수 있다. 비디오 인코더(114)는 비디오 소스(112)로부터의 상기 비디오 데이터를 인코딩하여 비트스트림을 생성한다. 상기 비트스트림은 상기 비디오 데이터의 코딩된 표현을 형성하는 비트들의 시퀀스를 포함할 수 있다. 상기 비트스트림은 코딩된 픽처들 및 연관된 데이터를 포함할 수 있다. 코딩된 픽처는 픽처의 코딩된 표현이다. 연관된 데이터는 시퀀스 파라미터 세트들, 픽처 파라미터 세트들 및 기타 신택스 구조들을 포함할 수 있다. I/O 인터페이스(116)는 변조기/복조기 (모뎀) 및/또는 송신기를 포함할 수 있다. 인코딩된 비디오 데이터는 네트워크(130a)를 통해 I/O 인터페이스(116)를 거쳐 목적지 디바이스(120)로 직접 전송될 수 있다. 상기 인코딩된 비디오 데이터는 또한 목적지 디바이스(120)에 의한 접근을 위해 스토리지 매체/서버(130b)에 저장될 수 있다.
목적지 디바이스(120)는 I/O 인터페이스(126), 비디오 디코더(124) 및 디스플레이 디바이스(122)를 포함할 수 있다.
I/O 인터페이스(126)는 수신기 및/또는 모뎀을 포함할 수 있다. I/O 인터페이스(126)는 소스 디바이스(110) 또는 스토리지 매체/서버(130b)로부터 인코딩된 비디오 데이터를 획득할 수 있다. 비디오 디코더(124)는 상기 인코딩된 비디오 데이터를 디코딩할 수 있다. 디스플레이 디바이스(122)는 상기 디코딩된 비디오 데이터를 사용자에게 보여줄 수 있다. 디스플레이 디바이스(122)는 목적지 디바이스(120)와 통합될 수 있거나 또는 외부 디스플레이 디바이스와 접속하도록 구성될 목적지 디바이스(120)의 외부에 있을 수 있다.
비디오 인코더(114) 및 비디오 디코더(124)는 HEVC(고효율 비디오 코딩) 표준, VVC(다기능 비디오 코딩) 표준 및 기타 현행 및/또는 추가 표준들과 같은 비디오 압축 표준에 따라 작동할 수 있다.
도 36은 도 35에 도시된 시스템(100) 내의 비디오 인코더(114)일 수 있는 비디오 인코더(200)의 일 예를 도시하는 블록도이다.
비디오 인코더(200)는 본 개시의 기술들 중 어느 하나 또는 전부를 실시하도록 구성될 수 있다. 도 36의 예에서, 비디오 인코더(200)는 복수의 기능적 구성요소들을 포함한다. 본 개시에서 설명되는 기술들은 비디오 인코더(200)의 다양한 구성요소들 사이에 공유될 수 있다. 일부 예들에서, 프로세서는 본 개시에서 설명되는 기술들 중 어느 하나 또는 전부를 실시하도록 구성될 수 있다.
비디오 인코더(200)의 기능적 구성요소들은 분할부(201), 모드 선택부(203), 모션 추정부(204), 모션 보상부(205) 및 인트라 예측부(206)를 포함할 수 있는 예측부(202), 잔차 생성부(207), 변환부(208), 양자화부(209), 역양자화부(210), 역변환부(211), 복원부(212), 버퍼(213), 그리고 엔트로피 인코딩부(214)를 포함할 수 있다.
다른 예들에서, 비디오 인코더(200)는 더 많은 수의, 적은 수의 또는 상이한 기능적 구성요소들을 포함할 수 있다. 일 예에서, 예측부(202)는 인트라 블록 카피(IBC) 유닛을 포함한다. 상기 IBC 유닛은 적어도 하나의 참조 픽처가 현재 비디오 블록이 위치하는 픽처인 IBC 모드로 예측을 수행할 수 있다.
게다가, 모션 추정부(204) 및 모션 보상부(205)와 같은 몇몇 구성요소들은 고도로 통합될 수 있지만, 설명의 목적을 위해 도36의 예에서는 별도로 도시되었다.
분할부(201)는 픽처를 하나 또는 그 이상의 비디오 블록들로 분할할 수 있다. 비디오 인코더(200) 및 비디오 디코더(300)는 다양한 비디오 블록 크기들을 지원할 수 있다.
모드 선택부(203)는 예를 들어 오류 결과들에 기반하여, 인터 또는 인트라 코딩 모드들 중 하나를 선택할 수 있으며, 그 결과로 인트라 또는 인터 코딩된 블록을 잔차 생성부(207)에 제공하여 잔차 블록 데이터를 생성하도록 하고, 복원부(212)에 제공하여 인코딩된 블록을 참조 픽처로 사용하기 위해 복원하도록 할 수 있다. 몇몇 예들에서, 모드 선택부(203)는 예측이 인트라 예측 신호 및 인터 예측 신호에 기반하는 인트라 인터 결합 예측(CIIP) 모드를 선택할 수 있다. 모드 선택부(203)는 또한 인터 예측의 경우 블록에 대한 모션 벡터를 위한 해상도(예를 들어, 서브 픽셀 또는 정수 픽셀 정밀도)를 선택할 수 있다.
현재 비디오 블록에 인터 예측을 실시하기 위해, 모션 추정부(204)는 버퍼(213)에서부터 상기 현재 비디오 블록까지 하나 또는 그 이상의 참조 프레임들을 비교하여 상기 현재 비디오 블록에 대한 모션 정보를 생성할 수 있다. 모션 보상부(205)는 상기 모션 정보 및 버퍼(213)로부터 상기 현재 블록에 관련된 픽처가 아닌 픽처들의 디코딩된 샘플들에 기반하여 상기 현재 비디오에 대한 예측 비디오 블록을 결정할 수 있다.
모션 추정부(204) 및 모션 보상부(205)는 현재 비디오 블록에 대해, 예를 들어 상기 현재 비디오 블록이 I 슬라이스, P 슬라이스 또는 B 슬라이스에 있는지 여부에 의존하여, 상이한 동작들을 실시할 수 있다.
일부 예들에서, 모션 추정부(204)는 현재 비디오 블록에 대해 단방향(uni-directional) 예측을 실시할 수 있으며, 모션 추정부(204)는 현재 비디오 블록을 위한 참조 비디오 블록에 대해 리스트 0 또는 리스트 1의 참조 픽처들을 탐색할 수 있다. 그리고 나서, 모션 추정부(204)는 참조 비디오 블록을 포함하는 리스트 0 또는 리스트 0에서 참조 픽처를 지시하는 참조 인덱스를 그리고 상기 현재 비디오 블록과 상기 참조 비디오 블록 사이의 공간적 이동(displacement)을 지시하는 모션 벡터를 생성할 수 있다. 모션 추정부(204)는 상기 참조 인덱스, 예측 방향 지시자 그리고 상기 모션 벡터를 상기 비디오 블록의 모션 정보로 출력할 수 있다. 모션 보상부(205)는 상기 현재 비디오 블록의 상기 모션 정보에 의해 지시되는 상기 참조 비디오 블록에 기반하여 상기 현재 블록의 예측 비디오 블록을 생성할 수 있다.
다른 예들에서, 모션 추정부(204)는 현재 비디오 블록에 대해 양방향(bi-directional) 예측을 실시할 수 있으며, 모션 추정부(204)는 현재 비디오 블록을 위한 참조 비디오 블록에 대해 리스트 0의 참조 픽처들을 탐색할 수 있고, 현재 비디오 블록을 위한 다른 참조 비디오 블록에 대해 리스트 1의 참조 픽처들을 탐색할 수 있다. 그리고 나서, 모션 추정부(204)는 참조 비디오 블록들을 포함하는 리스트 0 또는 리스트 0에서 참조 픽처들을 지시하는 참조 인덱스를 그리고 상기 현재 비디오 블록과 상기 참조 비디오 블록들 사이의 공간적 이동들(displacements)을 지시하는 모션 벡터들을 생성할 수 있다. 모션 추정부(204)는 상기 참조 인덱스들 및 상기 현재 비디오 블록의 상기 모션 벡터들을 상기 비디오 블록의 모션 정보로 출력할 수 있다. 모션 보상부(205)는 상기 현재 비디오 블록의 상기 모션 정보에 의해 지시되는 상기 참조 비디오 블록들에 기반하여 상기 현재 블록의 예측 비디오 블록을 생성할 수 있다.
일부 예들에서, 모션 추정부(204)는 디코더의 디코딩 처리를 위한 모션 정보의 풀 세트를 출력할 수 있다.
일부 예들에서, 모션 추정부(204)는 현재 비디오에 대한 모션 정보의 풀 세트를 출력하지 않을 수 있다. 오히려, 모션 추정부(204)는 다른 비디오 블록의 모션 정보를 참조하여 현재 비디오 블록의 모션 정보를 시그널링할 수 있다. 예를 들어, 모션 추정부(204)는 현재 비디오 블록의 모션 정보가 이웃 비디오 블록의 모션 정보와 충분히 유사하다고 판단할 수 있다.
일 예에서, 모션 추정부(204)는 현재 비디오 블록과 관련된 신택스 구조에서 현재 비디오 블록이 다른 비디오 블록과 동일한 모션 정보를 가지고 있다는 것을 비디오 디코더(300)에게 지시하는 값을 지시할 수 있다.
다른 예에서, 모션 추정부(204)는 현재 비디오 블록과 관련된 신택스 구조에서 다른 비디오 블록 및 모션 벡터 차분(MVD: motion vector difference)을 식별할 수 있다. 상기 모션 벡터 차분은 현재 비디오 블록과 지시되는 비디오 블록의 모션 벡터 사이의 차분을 지시한다. 비디오 디코더(300)는 지시되는 비디오 블록의 모션 벡터 및 모션 벡터 차분을 이용하여 현재 비디오 블록의 모션 벡터를 결정할 수 있다.
위에서 논의된 것처럼, 비디오 인코더(200)는 모션 벡터를 예측적으로 시그널링할 수 있다. 비디오 인코더(200)에 의해 실시될 수 있는 예측적 시그널링 기술들의 두 가지 예에는 향상된 모션 벡터 예측(AMVP: advanced motion vector prediction)과 머지 모드 시그널링이 있다.
인트라 예측부(206)는 현재 비디오 블록에 대해 인트라 예측을 실시할 수 있다. 인트라 예측부(206)가 현재 비디오 블록에 대해 인트라 예측을 실시하는 경우, 인트라 예측부(206)는 동일한 픽처의 다른 비디오 블록들의 디코딩된 샘플들에 기반하여 현재 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 현재 비디오 블록에 대한 예측 데이터는 예측된 비디오 블록 및 다양한 신택스 요소들을 포함할 수 있다.
잔차 생성부(207)는 현재 비디오 블록에서 현재 비디오 블록의 예측 비디오 블록(들)을 차감하여(예를 들어, 마이너스 기호로 지시) 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 상기 잔차 데이터는 현재 비디오 블록의 샘플들의 상이한 샘플 구성요소들에 해당하는 잔차 비디오 블록들을 포함할 수 있다.
다른 예들에서, 가령 스킵 모드에서, 현재 비디오 블록에 대한 잔차 데이터가 없을 수 있으며, 잔차 생성부(207)는 감산 동작을 실시하지 않을 수 있다.
변환 처리부(208)는 하나 또는 그 이상의 변환들을 현재 비디오 블록과 관련된 잔차 비디오 블록에 적용하여 현재 비디오 블록에 대한 하나 또는 그 이상의 변환 계수 비디오 블록들을 생성할 수 있다.
변환 처리부(208)가 현재 비디오 블록과 관련된 변환 계수 비디오 블록을 생성한 후, 양자화부(209)는 현재 비디오 블록과 관련된 하나 또는 그 이상의 양자화 파라미터(QP: quantization parameter) 값들에 기반하여 현재 비디오 블록과 관련된 상기 변환 계수 비디오 블록을 양자화 할 수 있다.
역양자화부(210) 및 역변환부(211)는 역양자화 및 역변환을 상기 변환 계수 비디오 블록에 각각 적용하여 상기 변환 계수 비디오 블록으로부터 잔차 비디오 블록을 복원할 수 있다. 복원부(212)는 상기 복원된 잔차 비디오 블록을 예측부(202)에 의해 생성된 하나 또는 그 이상의 예측 비디오 블록들에 해당하는 샘플들에 더하여 버퍼(213)에 저장하기 위해 현재 블록과 관련된 복원 비디오 블록을 생성할 수 있다.
복원부(212)가 상기 비디오 블록을 복원한 후에, 루프 필터링 동작이 상기 비디오 블록에서 비디오 블로킹 아티팩트들을 감소시키기 위해 실시될 수 있다.
엔트로피 인코딩부(214)는 비디오 인코더(200)의 다른 기능적 구성요소들로부터 데이터를 수신할 수 있다. 엔트로피 인코딩부(214)가 상기 데이터를 수신할 때, 엔트로피 인코딩부(214)는 하나 또는 그 이상의 엔트로피 인코딩 동작들을 실시하여 엔트로피 인코딩된 데이터를 생성하고 상기 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력할 수 있다.
도 37은 도 35에 도시된 시스템(100) 내의 비디오 디코더(114)일 수 있는 비디오 디코더(300)의 일 예를 도시하는 블록도이다.
비디오 디코더(300)는 본 개시의 기술들 중 어느 하나 또는 전부를 실시하도록 구성될 수 있다. 도 37의 예에서, 비디오 디코더(300)는 복수의 기능적 구성요소들을 포함한다. 본 개시에서 설명되는 기술들은 비디오 디코더(300)의 다양한 구성요소들 사이에 공유될 수 있다. 일부 예들에서, 프로세서는 본 개시에서 설명되는 기술들 중 어느 하나 또는 전부를 실시하도록 구성될 수 있다.
도 37의 예에서, 비디오 디코더(300)는 엔트로피 디코딩부(301), 모션 보상부(302), 인트라 예측부(303), 역양자화부(304), 역변환부(305), 복원부(306), 그리고 버퍼(307)를 포함한다. 일부 예들에서, 비디오 디코더(300)는 비디오 인코더(200) (도 36)과 관련하여 설명된 인코딩 패스에 일반적으로 상반된 디코딩 패스를 실시할 수 있다.
엔트로피 디코딩부(301)는 인코딩된 비트스트림을 검색할 수 있다. 상기 인코딩된 비트스트림은 엔트로피 코딩된 비디오 데이터(예를 들어, 비디오 데이터의 인코딩된 블록들)을 포함할 수 있다. 엔트로피 디코딩부(301)는 상기 엔트로피 코딩된 비디오 데이터를 디코딩할 수 있으며, 엔트로피 디코딩된 비디오 데이터로부터, 모션 보상부(302)는 모션 벡터들, 모션 벡터 정밀도 및 참조 픽처 리스트 인덱스들을 포함하는 모션 정보 및 기타 모션 정보를 결정할 수 있다. 예를 들어, 모션 보상부(302)는 AMVP 및 머지 모드를 실행하여 이러한 정보를 결정할 수 있다.
모션 보상부(302)는 가능한 경우 보간 필터들에 기반한 보간을 실시하여 모션 보상된 블록들을 산출할 수 있다. 서브 픽셀 정밀도와 함께 사용될 보간 필터들에 대한 식별자들은 신택스 요소들에 포함될 수 있다.
모션 보상부(302)는 비디오 엔코더(200)가 비디오 블록의 인코딩 동안 사용한 것과 같이 보간 필터들을 사용하여 참조 블록의 서브-정수 픽셀들에 대한 보간된 값들을 계산할 수 있다. 모션 보상부(302)는 비디오 인코더(200)가 사용한 상기 보간 필터들을 검색된 신택스 정보에 따라 결정할 수 있으며, 상기 보간 필터들을 사용하여 예측적 블록들을 생성할 수 있다.
모션 보상부(302)는 인코딩된 비디오 시퀀스의 프레임(들) 및/또는 슬라이스(들)을 인코딩 하는 데에 사용된 블록들의 크기들을 판단하기 위한 일부 신택스 정보, 인코딩된 비디오 시퀀스의 픽처의 각 매크로블록이 어떻게 분할되는지를 기술하는 분할 정보, 각 파티션이 어떻게 인코딩되었는지를 지지하는 모드들, 각각의 인트라 인코딩된 블록에 대한 하나 또는 그 상의 참조 프레임들 (및 참조 프레임 리스트들), 그리고 인코딩된 비디오 시퀀스를 디코딩하기 위한 기타 정보를 이용할 수 있다.
인트라 예측부(303)는 공간적으로 인접한 블록들로부터 예측 블록을 형성하기 위해 예를 들어 비트스트림에서 수신된 인트라 예측 모드들을 이용할 수 있다. 역양자화부(303)는 비트스트림에서 제공되며 엔트로피 디코딩부(301)에 의해 디코딩된 양자화된 비디오 블록 계수들을 역 양자화(즉 양자화 해제)한다. 역변환부(305)는 역변환을 적용한다.
복원부(306)는 모션 보상부(202) 또는 인트라 예측부(303)에 의해 생성된 해당 예측 블록들과 잔차 블록들을 합계하여 디코딩된 블록들을 형성할 수 있다. 요구되는 경우, 디블로킹 필터 또한 블록화 아티팩트(blockiness artifacts)를 제거하기 위해 디코딩된 블록들의 필터링에 적용될 수 있다. 그리고 나서, 디코딩된 비디오 블록들은 버퍼(307)에 저장되며, 버퍼는 후속 모션 보상/인트라 예측을 위한 참조 블록들을 제공하고, 또한 디스플레이 장치상에 제시하기 위한 디코딩된 비디오를 산출한다.
다음으로, 일부 실시예들에 의해 선호되는 해결 수단들의 목록이 제시된다.
해결 수단들의 첫 번째 세트가 아래에 제공된다. 아래 해결 수단들은 이전 섹션에서(가령, 항목 1)에서 논의된 기술들의 예시적 실시예들을 보여준다.
1. 비디오 처리의 방법에 있어서(가령, 도 34의 방법(3400)), 비디오의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 위해, 기준에 기반하여, 크로스 컴포넌트 적응적 루프 필터 동작을 사용할 것을 결정하는 단계(3402)를 포함하며, 이때 상기 크로스 컴포넌트 적응적 루프 필터는 가용하지 않은 루마 샘플들에 대한 미러링된 패딩 기술을 사용하며, 그리고 상기 결정에 기반하여 상기 변환을 실시하는 단계(3404)를 포함하는 비디오 처리의 방법. 본 문서는 크로스 컴포넌트 적응적 루프 필터 및 그것의 동작 그리고 미러링된 패딩 기술들의 다양한 실시예들을 개시하며, 또한 그것들과 가상 버퍼 경계 간의 관계를 개시한다.
2. 해결수단 1에 있어서, 상기 미러링된 패딩 기술은 상기 가용하지 않은 루마 샘플로부터 하나 또는 그 이상의 상응하는 루마 샘플들을 유도하기 위해 더 사용되는, 비디오 처리의 방법.
3. 해결 수단 2에 있어서, 상기 하나 또는 그 이상의 상응하는 루마 샘플들은 대표 루마 샘플로부터 상기 하나 또는 그 이상의 상응하는 루마 샘플들 까지의 거리 또는 상기 대표 루마 샘플로부터 상기 가용하지 않은 샘플 까지의 거리에 기반하여 결정되는, 비디오 처리의 방법.
4. 해결 수단 3에 있어서, 상기 대표 루마 샘플은 상기 크로스 컴포넌트 적응적 루프 필터링 기술이 사용되는 크로마 샘플의 위치에 해당하는, 비디오 처리의 방법.
5. 해결 수단 3에 있어서, 상기 대표 루마 샘플의 위치는 상기 비디오의 컬러 포맷에 의존하는, 비디오 처리의 방법.
6. 해결 수단 3 내지 4 중 임의의 것에 있어서, 상기 거리는 상기 하나 또는 그 이상의 루마 샘플들을 포함하는 제2 방향을 따르는 픽셀 라인과 상기 대표 샘플을 포함하는 행 사이의 제1 방향 상의 거리에 해당하는, 비디오 처리의 방법.
7. 해결 수단 6에 있어서, C는 상기 대표 루마 샘플이 위치하는 상기 제2 방향을 따르는 중앙 라인을 표현하고, M은 상기 가용하지 않은 샘플이 위치하는 상기 제2 방향을 따르는 라인을 표현하고, N은 상기 하나 또는 그 이상의 루마 샘플들이 위치하는 상기 제2 방향을 따르는 라인을 표현하며, 이때 C, M 및 N은 양의 정수들이며, M은 N과 같지 않으며, 그 다음으로 상기 미러링된 패딩 기술이 상기 크로스 컴포넌트 적응적 루프 필터의 크기 및 모양에 기반하여 적용되는, 비디오 처리의 방법.
8. 해결 수단 1에 있어서, 상기 크로스 컴포넌트 적응적 루프 필터는 K x L 필터 모양을 가지며, 이때 K는 짝수이고 L은 양의 정수이고, 그리고 상기 미러링된 패딩 기술은 제2 방향 M을 따르는 라인에서 상기 크로스 컴포넌트 적응적 루프 필터로부터 M 또는 N 떨어져 위치하며 상기 가상 경계 주변의 최근접 샘플 라인으로부터 패딩되는 가용하지 않은 샘플들을 패딩하는 단계를 포함하는, 비디오 처리의 방법.
9. 해결 수단 3에 있어서, 상기 크로스 컴포넌트 적응적 루프 필터의 가상 경계가 상기 제2 방향에서 상기 대표 루마 샘플 보다 아래에 있는 경우, 상기 가상 경계 보다 위에 있는 상기 제2 방향 상의 최근접 라인을 사용하여 상기 가용하지 않은 샘플들을 패딩하는 단계를 포함하는, 비디오 처리의 방법.
10. 해결 수단 3에 있어서, 가용하지 않은 샘플이 행 M에 위치하는 경우, 이때 M은 C 보다 작은 정수이며, C는 상기 대표 루마 샘플의 상기 제2 방향을 따르는 중앙 라인을 지시하는 정수인데, 상기 제2 방향 상의 라인 N에 위치하는 샘플은 d(C, M) = d(N, C) - 오프셋이고, 오프셋은 정수 값일 때 또는 d(C, M) < d(N, C) 일 때 상기 상응하는 샘플들로 결정되며, 이때 d( )는 거리 함수인, 비디오 처리의 방법.
아래 해결 수단들은 이전 섹션에서(가령, 항목 2)에서 논의된 기술들의 예시적 실시예들을 보여준다.
11. 해결 수단 1 내지 해결 수단 10 중 어느 것에 있어서, 상기 제1 방향은 수직 방향이고, 상기 제2 방향은 수평 방향인, 비디오 처리의 방법.
12. 해결 수단 1 내지 해결 수단 10 중 어느 것에 있어서, 상기 제1 방향은 수평 방향이고, 상기 제2 방향은 수직 방향인, 비디오 처리의 방법.
13. 해결 수단 11 내지 해결 수단 12 중 어느 것에 있어서, 상기 제1 방향 및 상기 제2 방향의 오리엔테이션이 상기 가상 버퍼의 경계의 오리엔테이션에 의존하는, 비디오 처리의 방법.
아래 해결 수단들은 이전 섹션에서(가령, 항목 3)에서 논의된 기술들의 예시적 실시예들을 보여준다.
14. 해결 수단 1 내지 해결 수단 13 중 어느 것에 있어서, 상기 비디오 유닛은 비디오의 비디오 픽처, 비디오 서브 픽처, 비디오 슬라이스, 비디오 타일, 또는 360도 경계를 포함하는, 비디오 처리의 방법.
15. 해결 수단 1 내지 해결 수단 14 중 어느 것에 있어서, 상기 변환을 실시하는 단계는 상기 비디오를 인코딩하여 상기 코딩된 표현을 생성하는 단계를 포함하는, 비디오 처리의 방법.
16. 해결 수단 1 내지 해결 수단 14 중 어느 것에 있어서, 상기 변환을 실시하는 단계는 상기 코딩된 표현을 파싱하고 디코딩하여 상기 비디오를 생성하는 단계를 포함하는, 비디오 처리의 방법.
상기 기술된 해결 수단들에서, 상기 오리엔테이션은 수평 또는 수직 일 수 있으며, 따라서 상기 제1 방향 및 상기 제2 방향은 픽셀 열들 및 픽셀 행들에 의해 참조되는 수직 또는 수평 방향들 일 수 있다.
17. 해결 수단 1 내지 해결 수단 16 중 하나 또는 그 이상에서 열거되는 방법을 구현하도록 구성되는 프로세서를 포함하는 비디오 디코딩 장치.
18. 해결 수단 1 내지 해결 수단 16 중 하나 또는 그 이상에서 열거되는 방법을 구현하도록 구성되는 프로세서를 포함하는 비디오 인코딩 장치.
19. 컴퓨터 코드를 그 안에 저장하는 컴퓨터 프로그램 제품으로, 상기 코드는, 프로세서에 의해 실행 시에, 상기 프로세서로 하여금 해결 수단 1 내지 해결 수단 16 중 어느 것에서 열거된 방법을 구현하도록 하는, 컴퓨터 프로그램 제품.
20. 본 문서에 기술된 방법, 장치 또는 시스템.
해결 수단들의 두 번째 세트는 이전 섹션에서(가령, 항목 4)에서 논의된 기술들의 예시적 실시예들을 보여준다.
1. 비디오 처리의 방법(가령, 도 38A에 보이는 방법(3800))에 있어서, 비디오의 비디오 유닛과 상기 비디오의 비트스트림 간의 변환을 위해, 루마 적응적 루프 필터가 상기 비디오 유닛의 루마 성분에 선택적으로 적용될 때 가로지르는 제1 루마 적응적 루프 필터(adaptive loop filter (ALF)) 경계 및 제2 루마 ALF 경계에 대한 제1 결정을 내리는 단계(3802), 상기 제2 루마 ALF 경계로부터, 크로마 적응적 루프 필터가 상기 비디오 유닛의 크로마 성분에 대해 선택적으로 적용될 때 가로지르는 크로마 ALF 경계에 대한 제2 결정을 내리는 단계(3804), 그리고 상기 제1 결정 및 상기 제2 결정에 기반하여 상기 변환을 실시하는 단계(3806)를 포함하는, 비디오 처리의 방법.
2. 해결 수단 1에 있어서, 상기 제2 루마 ALF 경계는 상기 제1 루마 ALF 경계와 상이한, 비디오 처리의 방법.
3. 해결 수단 1에 있어서, 상기 제1 루마 ALF 경계는 크로스 컴포넌트 ALF (CC-ALF) 및/또는 루마 ALF에 대해 사용되는, 비디오 처리의 방법.
4. 해결 수단 3에 있어서, 상기 제1 결정을 내리는 단계 동안, 상기 CC-ALF가 상기 루마 ALF로 취급되는, 비디오 처리의 방법.
5. 해결 수단 1에 있어서, 상기 제2 루마 ALF 경계는 크로마 ALF에 대해 사용되는, 비디오 처리의 방법.
6. 해결 수단 1에 있어서, 상기 제2 루마 ALF 경계는 컬러 포맷 및/또는 필터링 방법들에 기반하여 결정되는, 비디오 처리의 방법.
7. 해결 수단 1에 있어서, 4:2:0 컬러 포맷에 대한 크로마 ALF에서의 상기 제2 루마 ALF 경계는 상기 제1 루마 ALF 경계와 같은 것으로 결정되는, 비디오 처리의 방법.
8. 해결 수단 1에 있어서, 상기 제1 결정을 내리는 단계 동안, 4:2:0 컬러 포맷에 대한 크로마 ALF는 루마 ALF 또는 크로스 컴포넌트 ALF (CC-ALF)로 취급되는, 비디오 처리의 방법.
9. 해결 수단 1에 있어서, 4:2:2 또는 4:4:4 컬러 포맷에 대한 크로마 ALF에서의 상기 제2 루마 ALF 경계는 루마 ALF 또는 상기 CC-ALF에서의 상기 제1 루마 ALF 경계와 상이하게 결정되는, 비디오 처리의 방법.
10. 해결 수단 1에 있어서, 상기 제1 루마 ALF 경계 및/또는 상기 제2 루마 ALF 경계는 상단 경계 위치, 하단 경계 위치, 좌측 경계 위치, 또는 우측 경계 위치를 가리키는, 비디오 처리의 방법.
11. 해결 수단 10에 있어서, 상기 제1 루마 ALF 경계 및/또는 상기 제2 루마 ALF 경계는 i) ALF 가상 경계에 대한 또는 상기 ALF 가상 경계와 현재 코딩 트리 유닛(CTU)의 하단 경계 간의 거리에 대한 오프셋을 명시하는 제1 변수 vbOffset 또는/및 ii) 상기 현재 CTU의 상단 경계로부터의 오프셋을 명시하는 제2 변수 M에 기반하는, 비디오 처리의 방법.
12. 해결 수단 11에 있어서, (x, y)는 현재 루마 코딩 트리 블록(CTB)의 좌측 상단 샘플에 대한 현재 샘플의 루마 위치를 가리키고, (xCtb, yCtb)는 현재 픽처의 좌측 상단 샘플에 대한 상기 현재 루마 CTB의 좌측 상단 샘플의 루마 위치를 가리키며, 그리고 CtbSizeY는 상기 현재 루마 CTB의 크기를 가리키는, 비디오 처리의 방법.
13. 해결 수단 12에 있어서, y - ( CtbSizeY - vbOffset )가 0 보다 크거나 같은 경우, 상기 상단 경계 위치는 yCtb + CtbSizeY - vbOffset와 같게 설정되는, 비디오 처리의 방법.
14. 해결 수단 12에 있어서, i) 상기 현재 루마 CTB의 상단 경계가 타일, 슬라이스, 또는 서브 픽처의 상단 경계이고, ii) 상기 타일, 상기 슬라이스 또는 상기 서브 픽처를 가로지르는 상기 적응적 루프 필터링이 비활성화되며, 그리고 iii) y가 상기 제2 변수 M 보다 작은 경우, 상기 상단 경계 위치는 yCtb와 같은 것으로 설정되는, 비디오 처리의 방법.
15. 해결 수단 12에 있어서, CtbSizeY - vbOffset - y가 0 보다 크고 제3 변수 N 보다 작은 경우, 상기 하단 경계 위치는 yCtb + CtbSizeY - vbOffset와 같게 설정되는, 비디오 처리의 방법.
16. 해결 수단 15에 있어서, 상기 제3 변수 N이 정수인, 비디오 처리의 방법.
17. 해결 수단 15에 있어서, 상기 제3 변수 N이 3 또는 5와 같은, 비디오 처리의 방법.
18. 해결 수단 12에 있어서, i) 상기 현재 루마 CTB의 하단 경계가 타일, 슬라이스 또는 서브 픽처의 하단 경계이고 ii) 상기 타일, 상기 슬라이스 또는 상기 서브 픽처를 가로지르는 상기 적응적 루프 필터링이 비활성화되고, 그리고 iii) CtbSizeY - y가 제4 변수 L 보다 작은 경우, 상기 하단 경계 위치는 yCtb + CtbSizeY와 같게 설정되는, 비디오 처리의 방법.
19. 해결 수단 18에 있어서, 상기 제4 변수 L은 정수인, 비디오 처리의 방법.
20. 해결 수단 18에 있어서, 상기 제4 변수 L이 3 또는 5와 같은, 비디오 처리의 방법.
21. 해결 수단 11 내지 20 중 어느 것에 있어서, 상기 제1 루마 ALF 경계가 크로스 컴포넌트 ALF (CC-ALF) 또는 루마 ALF에 대해 동일하게 결정되는, 비디오 처리의 방법.
22. 해결 수단 21에 있어서, 상기 제1 변수 vbOffset은 상기 크로스 컴포넌트 ALF (CC-ALF) 및 상기 루마 ALF에 대해 동일한, 비디오 처리의 방법.
23. 해결 수단 21에 있어서, 상기 제2 변수 M은 상기 CC-ALF 및 상기 루마 ALF에 대해 동일한, 비디오 처리의 방법.
24. 해결 수단 21에 있어서, 상기 제3 변수 N은 상기 CC-ALF 및 상기 루마 ALF에 대해 동일한, 비디오 처리의 방법.
25. 해결 수단 21에 있어서, 상기 제4 변수 L은 상기 CC-ALF 및 상기 루마 ALF에 대해 동일한, 비디오 처리의 방법.
26. 해결 수단 11 내지 해결 수단 20 중 어느 것에 있어서, 크로마 ALF에서 사용되는 상기 제2 루마 ALF 경계는 상기 크로마 ALF의 컬러 포맷에 기반하여 결정되는, 비디오 처리의 방법.
27. 해결 수단 26에 있어서, 4:2:0인 상기 컬러 포맷에 대해, 상기 제2 루마 ALF 경계가 상기 제1 루마 ALF 경계와 같다고 결정되는, 비디오 처리의 방법.
28. 해결 수단 26 또는 해결 수단 27에 있어서, 4:2:0인 상기 컬러 포맷에 대해, 상기 제1 변수 vbOffset은 크로마 ALF 및 루마 ALF에 대해 동일한, 비디오 처리의 방법.
29. 해결 수단 28에 있어서, 상기 제1 변수 vbOffset은 정수인, 비디오 처리의 방법.
30. 해결 수단 28에 있어서, 상기 제1 변수 vbOffset은 4인, 비디오 처리의 방법.
31. 해결 수단 26 또는 해결 수단 27에 있어서, 4:2:0인 상기 컬러 포맷에 대해, 상기 제2 변수 M이 크로마 ALF 및 루마 ALF에 대해 동일한, 비디오 처리의 방법.
32. 해결 수단 31에 있어서, 상기 변수 M이 정수인, 비디오 처리의 방법.
33. 해결 수단 31에 있어서, 상기 변수 M이 3인, 비디오 처리의 방법.
34. 해결 수단 26 또는 해결 수단 27에 있어서, 상기 제3 변수 N은 크로마 ALF 및 루마 ALF에 대해 동일한, 비디오 처리의 방법.
35. 해결 수단 26 또는 해결 수단 27에 있어서, 상기 제4 변수 L이 크로마 ALF 및 루마 ALF에 대해 동일한, 비디오 처리의 방법.
36. 해결 수단 26에 있어서, 4:2:2 또는 4:4:4인 상기 컬러 포맷에 대해, 상기 제2 루마 ALF 경계가 상기 제1 루마 ALF 경계와 상이하다고 결정되는, 비디오 처리의 방법.
37. 해결 수단 36에 있어서, 4:2:2 또는 4:4:4인 상기 컬러 포맷에 대해, 상기 제1 변수 vbOffset가 크로마 ALF 및 루마 ALF에 대해 상이한 값들을 가지는, 비디오 처리의 방법.
38. 해결 수단 37에 있어서, vbOffset1이 상기 크로마 ALF에 대해 사용되고, vbOffset2는 상기 루마 ALF에 대해 사용되며, vbOffset1은 vbOffset2와 같지 않은, 비디오 처리의 방법.
39. 해결 수단 38에 있어서, vbOffset1= 2 및 vbOffset2 = 4인 비디오 처리의 방법.
40. 해결 수단 36에 있어서, 상기 제1 변수 vbOffset은 상기 컬러 포맷이 4:2:0과 같거나 상이한지 여부에 따라 상이한 값들을 가지는, 비디오 처리의 방법.
41. 해결 수단 36에 있어서, 4:2:2 또는 4:4:4인 상기 컬러 포맷에 대해, 제2 변수 M, 제3 변수 N, 그리고 제4 변수 L 각각은 크로마 ALF 및 루마 ALF에 대해 상이한 값들을 가지는, 비디오 처리의 방법.
42. 해결 수단 41에 있어서, M1은 상기 크로마 ALF에 대해 사용되고, M2는 상기 루마 ALF에 대해 사용되고, M1은 M2와 같지 않은, 비디오 처리의 방법.
43. 해결 수단 42에 있어서, M1= 2 및 M2 =3인, 비디오 처리의 방법.
44. 해결 수단 41에 있어서, N1은 상기 크로마 ALF에 대해 사용되고, N2는 상기 루마 ALF에 대해 사용되고, N1은 N2와 같지 않은, 비디오 처리의 방법.
45. 해결 수단 44에 있어서, N1=3 및 N2 =5인, 비디오 처리의 방법.
46. 해결 수단 41에 있어서, L1은 상기 크로마 ALF에 대해 사용되고, L2는 상기 루마 ALF에 대해 사용되고, L1은 L2와 같지 않은, 비디오 처리의 방법.
47. 해결 수단 46에 있어서, L1=3 및 L2 =5인, 비디오 처리의 방법.
48. 해결 수단 36에 있어서, 상기 제2 변수 M, 상기 제3 변수 N, 그리고 상기 제4 변수 L 각각은 상기 컬러 포맷이 4:2:0과 같거나 상이한지 여부에 의존하여 상이한 값들을 가지는, 비디오 처리의 방법.
49. 해결 수단 26에 있어서, 4:2:2 또는 4:4:4인 상기 컬러 포맷에 대해, 상기 제2 루마 ALF 경계는 크로스 컴포넌트 ALF (CC-ALF)에서 사용되는 상기 제1 ALF 루마 경계와 상이한 것으로 결정되는, 비디오 처리의 방법.
50. 해결 수단 49에 있어서, 4:2:2 또는 4:4:4인 상기 컬러 포맷에 대해, 상기 제1 변수 vbOffset은 크로마 ALF 및 상기 CC-ALF에 대해 상이한 값들을 가지는, 비디오 처리의 방법.
51. 해결 수단 50에 있어서, vbOffset1은 상기 크로마 ALF에 대해 사용되고, vbOffset2는 상기 CC-ALF에 대해 사용되며, 상기 vbOffset1은 상기 vbOffset2와 같지 않은, 비디오 처리의 방법.
52. 해결 수단 51에 있어서, vbOffset1=2 및 vbOffset2=4인, 비디오 처리의 방법.
53. 해결 수단 49에 있어서, 4:2:2 또는 4:4:4인 상기 컬러 포맷에 대해, 상기 제2 변수 M, 상기 제3 변수 N, 그리고 상기 제4 변수 L이 크로마 ALF 및 상기 CC-ALF에 대해 상이한 값들을 가지는, 비디오 처리의 방법.
54. 해결 수단 53에 있어서, M1은 4:2:2 또는 4:4:4 컬러 포맷을 가지는 상기 크로마 ALF에 대해 사용되고, M2는 상기 CC-ALF에 대해 사용되며, M2는 M1과 같지 않은, 비디오 처리의 방법.
55. 해결 수단 54에 있어서, M1=2 및 M2=3인, 비디오 처리의 방법.
56. 해결 수단 53에 있어서, N1은 4:2:2 또는 4:4:4 컬러 포맷을 가지는 상기 크로마 ALF에 대해 사용되고, N2는 상기 CC-ALF에 대해 사용되며, N1은 N2와 같지 않은, 비디오 처리의 방법.
57. 해결 수단 56에 있어서, N1=3 및 N2 =5인, 비디오 처리의 방법.
58. 해결 수단 53에 있어서, L1은 4:2:2 또는 4:4:4 컬러 포맷을 가지는 상기 크로마 ALF에 대해 사용되고, L2는 상기 CC-ALF에 대해 사용되며, L1은 L2와 같지 않은, 비디오 처리의 방법.
59. 해결 수단 58에 있어서, L1=3 및 L2 =5인, 비디오 처리의 방법.
60. 상기 해결 수단들 중 어느 것에 있어서, 상기 방법이 360도 가상 경계들에 적용되는, 비디오 처리의 방법.
61. 해결 수단 1 내지 해결 수단 60 중 어느 것에 있어서, 상기 변환은 상기 비디오를 상기 비트스트림으로 인코딩하는 단계를 포함하는, 비디오 처리의 방법.
62. 해결 수단 1 내지 해결 수단 60 중 어느 것에 있어서, 상기 변환은 상기 비디오를 상기 비트스트림으로부터 디코딩하는 단계를 포함하는, 비디오 처리의 방법.
63. 해결 수단 1 내지 해결 수단 60 중 어느 것에 있어서, 상기 변환은 상기 비트스트림을 상기 비디오로부터 생성하는 단계를 포함하고, 상기 방법은 상기 비트스트림을 비일시적이고 컴퓨터 판독가능한 기록 매체에 저장하는 단계를 더 포함하는, 비디오 처리의 방법.
64. 비디오 처리 장치로서, 해결 수단 1 내지 해결 수단 63 중 어느 하나 또는 그 이상에서 열거된 방법을 구현하도록 구성되는 프로세서를 포함하는 비디오 처리 장치.
65. 비디오의 비트스트림을 저장하는 방법에 있어서, 해결 수단 1 내지 해결 수단 63 중 어느 하나에서 열거된 방법을 포함하며, 상기 비트스트림을 비일시적인 컴퓨터 판독가능한 기록 매체에 저장하는 단계를 더 포함하는, 방법.
66. 프로그램 코드를 저장하는 컴퓨터 판독가능한 기록 매체로, 실행 시에 상기 프로그램 코드는 프로세서로 하여금 해결 수단 1 내지 해결 수단 63 중 어느 하나 또는 그 이상에서 열거된 방법을 구현하도록 하는, 기록 매체.
67. 상기 기술된 방법들 중 어느 것에 따라 생성된 비트스트림을 저장하는 컴퓨터 판독가능한 매체.
68. 비트스트림을 저장하기 위한 비디오 처리 장치로서, 상기 비디오 처리 장치는 해결 수단 1 내지 해결 수단 63 중 어느 하나 또는 그 이상에서 열거된 방법을 구현하도록 구성되는, 비디오 처리 장치.
본 문서에서, 용어 "비디오 처리”는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축 해제를 가리킬 수 있다. 예를 들어, 비디오 압축 알고리즘들은 비디오의 픽셀 표현으로부터 상응하는 비트스트림 표현으로 변환하거나 그 반대의 경우에 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스의 의해 정의되는 대로, 비트스트림 내에서 동 위치에 있거나 상이한 곳에 분산되어 있는 비트들에 해당할 수 있다. 예를 들어, 매크로블록은 변환되고 코딩된 오류 잔차 값들로 그리고 헤더들 및 비트스트림의 다른 필드들의 비트들을 사용하여 인코딩될 수 있다.
개시된 그리고 기타 솔루션들, 예들, 실시예들, 모듈들 및 본 문서에 기술된 기능적 동작들은 디지털 전자 회로, 본 문서에 개시된 구조들, 그것들의 구조적 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어 또는 이들 중의 하나 이상의 조합으로 구현될 수 있다. 개시된 그리고 기타 실시예들은 하나 이상의 컴퓨터 프로그램 제품, 즉, 데이터 프로세싱 장치에 의한 실행 또는 그의 동작의 제어를 위해 컴퓨터 판독가능 매체 상에 인코딩되는 컴퓨터 프로그램 명령들의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독가능 매체는 머신-판독가능 저장 장치, 머신-판독가능 저장 기판, 메모리 장치, 머신-판독가능 전파 신호에 영향을 주는 물질의 구성 또는 그들 중의 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치"는 데이터 처리를 위한 모든 장치, 디바이스 및 머신을 포함하며, 예를 들어 프로그램 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 포함한다. 장치는 하드웨어에 더하여 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나의 조합을 구성하는 코드를 포함할 수 있다. 전파되는 신호는 인공적으로 생성된 신호, 예를 들어, 머신 생성 전기, 광, 또는 전자기 신호이며, 이는 적절한 수신기 장치로의 전송을 위한 정보를 인코딩하기 위해 생성된다.
컴퓨터 프로그램 (프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 알려짐)은 컴파일 되거나 해석된 언어를 포함하여 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램 또는 컴퓨터 환경에서 사용되기에 적합한 모듈, 컴포넌트, 서브루틴 또는 다른 유닛으로서 임의의 형태로 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 반드시 대응되는 것은 아니다. 프로그램은 다른 프로그램들 또는 데이터를 보유하는 파일의 일부(예를 들어 마크업 언어 문서에 저장된 하나 이상의 스크립트) 또는 문제의 프로그램 전용인 단일 파일 또는 다중 편성(coordinated) 파일들(예를 들어, 하나 이상의 모듈들, 서브 프로그램들 또는 코드의 부분들을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은, 하나의 컴퓨터 상에서 또는 한 사이트에 위치하거나 다수의 사이트에 걸쳐 분배되고 통신 네트워크에 의해 상호 접속되는 다수의 컴퓨터 상에서 실행되도록 배치될 수 있다.
본 문서에 설명된 프로세스들 및 논리 흐름들은 입력 데이터에 대해 작동하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그래밍가능한 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들 그리고 장치는 FPGA (필드 프로그래밍 가능 게이트 어레이) 또는 ASIC (애플리케이션 특정 집적 회로)와 같은 특수 목적 논리회로로 실시될 수 있고, 구현될 수도 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은 예를 들어 범용 및 특수 목적의 마이크로 프로세서들과 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리(ROM), 또는 랜덤 액세스 메모리(RAM), 또는 둘 다로부터 명령어들과 데이터를 수신할 것이다. 컴퓨터의 필수 구성요소는 명령들을 실행하는 프로세서 및 명령들 및 데이터를 저장하는 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들, 예를 들어, 자기 디스크, 광자기 디스크, 또는 광디스크를 포함하거나, 또는 이 디바이스들과 데이터를 송수신하기 위하여 동작적으로(operatively) 결합될 것이다. 하지만 컴퓨터는 이러한 디바이스를 구비할 필요는 없다. 컴퓨터 프로그램 명령어들과 데이터를 저장하기 적합한 컴퓨터 판독가능 매체에는, 예를 들어, 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM, 플래시 메모리 디바이스), 자기 디스크(예를 들어, 내부 하드디스크, 착탈식 디스크), 광자기 디스크 및 CD ROM과 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스가 포함된다. 프로세서와 메모리는 전용 논리 회로에 의해 보완되거나 또는 전용 논리 회로에 통합될 수 있다.
본 특허문서가 다수의 특정한 세부사항을 포함하고 있지만, 이는 주제의 범위나 청구할 사항의 범위에 대한 어떠한 제한으로도 이해되어서는 안 되며, 특정한 기술들의 특정한 실시예들에 고유할 수 있는 특징들의 설명으로서 이해되어야 한다. 별개의 실시예들의 맥락에서 본 특허 문서에서 설명된 소정의 특징들은 조합되어 단일 실시예로 구현될 수도 있다. 반대로, 단일 실시예의 맥락에서 설명한 다양한 특징들은 복수의 실시예에서 별개로 구현되거나 어떤 적당한 하위 조합으로도 구현 가능하다. 또한, 앞에서 특징들이 특정 조합에서 동작하는 것으로서 설명되고 그와 같이 애초에 청구되기까지 하였지만, 청구된 조합으로부터의 하나 또는 그 이상의 특징들은 일부 경우에 해당 조합으로부터 삭제될 수 있으며, 청구된 조합은 하위 조합이나 하위 조합의 변형으로 될 수 있다.
마찬가지로, 동작들이 도면들에서 특정한 순서로 묘사되고 있지만, 이는 그러한 동작들이 바람직한 결과를 얻기 위해, 도시한 특정 순서나 순차적인 순서로 수행되어야 한다거나, 도시된 모든 동작들이 수행되어야 한다는 것을 의미하지 않는다. 더욱이, 본 특허 문서에 기재된 실시예들에 있어서 다양한 시스템 구성요소들의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안 된다.
단지 몇 가지 구현들 및 예시들이 설명되었으며, 기타 구현, 개선 및 변형은 본 특허 문서에 설명되고 도시된 것에 기초하여 이루어질 수 있다.

Claims (68)

  1. 비디오 처리 방법에 있어서,
    비디오의 비디오 유닛과 상기 비디오의 비트스트림 간의 변환을 위해,
    루마 적응적 루프 필터가 상기 비디오 유닛의 루마 성분에 선택적으로 적용될 때 가로지르는 제1 루마 적응적 루프 필터(adaptive loop filter (ALF)) 경계 및 제2 루마 ALF 경계에 대한 제1 결정을 내리는 단계,
    상기 제2 루마 ALF 경계로부터, 크로마 적응적 루프 필터가 상기 비디오 유닛의 크로마 성분에 대해 선택적으로 적용될 때 가로지르는 크로마 ALF 경계에 대한 제2 결정을 내리는 단계, 그리고
    상기 제1 결정 및 상기 제2 결정에 기반하여 상기 변환을 실시하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제2 루마 ALF 경계는 상기 제1 루마 ALF 경계와 상이한, 방법.
  3. 제1항에 있어서,
    상기 제1 루마 ALF 경계는 크로스 컴포넌트 ALF (CC-ALF) 및/또는 루마 ALF에 대해 사용되는, 방법.
  4. 제3항에 있어서,
    상기 제1 결정을 내리는 단계 동안, 상기 CC-ALF가 상기 루마 ALF로 취급되는, 방법.
  5. 제1항에 있어서,
    상기 제2 루마 ALF 경계는 크로마 ALF에 대해 사용되는, 방법.
  6. 제1항에 있어서,
    상기 제2 루마 ALF 경계는 컬러 포맷 및/또는 필터링 방법들에 기반하여 결정되는, 방법.
  7. 제1항에 있어서,
    4:2:0 컬러 포맷에 대한 크로마 ALF에서의 상기 제2 루마 ALF 경계는 상기 제1 루마 ALF 경계와 같은 것으로 결정되는, 방법.
  8. 제1항에 있어서,
    상기 제1 결정을 내리는 단계 동안, 4:2:0 컬러 포맷에 대한 크로마 ALF는 루마 ALF 또는 크로스 컴포넌트 ALF (CC-ALF)로 취급되는, 방법.
  9. 제1항에 있어서,
    4:2:2 또는 4:4:4 컬러 포맷에 대한 크로마 ALF에서의 상기 제2 루마 ALF 경계는 루마 ALF 또는 상기 CC-ALF에서의 상기 제1 루마 ALF 경계와 상이하게 결정되는, 방법.
  10. 제1항에 있어서,
    상기 제1 루마 ALF 경계 및/또는 상기 제2 루마 ALF 경계는 상단 경계 위치, 하단 경계 위치, 좌측 경계 위치, 또는 우측 경계 위치를 가리키는, 방법.
  11. 제10항에 있어서,
    상기 제1 루마 ALF 경계 및/또는 상기 제2 루마 ALF 경계는 i) ALF 가상 경계에 대한 또는 상기 ALF 가상 경계와 현재 코딩 트리 유닛(CTU)의 하단 경계 간의 거리에 대한 오프셋을 명시하는 제1 변수 vbOffset 또는/및 ii) 상기 현재 CTU의 상단 경계로부터의 오프셋을 명시하는 제2 변수 M에 기반하는, 방법.
  12. 제11항에 있어서,
    (x, y)는 현재 루마 코딩 트리 블록(CTB)의 좌측 상단 샘플에 대한 현재 샘플의 루마 위치를 가리키고, (xCtb, yCtb)는 현재 픽처의 좌측 상단 샘플에 대한 상기 현재 루마 CTB의 좌측 상단 샘플의 루마 위치를 가리키며, 그리고 CtbSizeY는 상기 현재 루마 CTB의 크기를 가리키는, 방법.
  13. 제12항에 있어서,
    y - ( CtbSizeY - vbOffset )가 0 보다 크거나 같은 경우, 상기 상단 경계 위치는 yCtb + CtbSizeY - vbOffset와 같게 설정되는, 방법.
  14. 제12항에 있어서,
    i) 상기 현재 루마 CTB의 상단 경계가 타일, 슬라이스, 또는 서브 픽처의 상단 경계이고, ii) 상기 타일, 상기 슬라이스 또는 상기 서브 픽처를 가로지르는 상기 적응적 루프 필터링이 비활성화되며, 그리고 iii) y가 상기 제2 변수 M 보다 작은 경우, 상기 상단 경계 위치는 yCtb와 같은 것으로 설정되는, 방법.
  15. 제12항에 있어서,
    CtbSizeY - vbOffset - y가 0 보다 크고 제3 변수 N 보다 작은 경우, 상기 하단 경계 위치는 yCtb + CtbSizeY - vbOffset와 같게 설정되는, 방법.
  16. 제15항에 있어서,
    상기 제3 변수 N이 정수인, 방법.
  17. 제15항에 있어서,
    상기 제3 변수 N이 3 또는 5와 같은, 방법.
  18. 제12항에 있어서,
    i) 상기 현재 루마 CTB의 하단 경계가 타일, 슬라이스 또는 서브 픽처의 하단 경계이고 ii) 상기 타일, 상기 슬라이스 또는 상기 서브 픽처를 가로지르는 상기 적응적 루프 필터링이 비활성화되고, 그리고 iii) CtbSizeY - y가 제4 변수 L 보다 작은 경우, 상기 하단 경계 위치는 yCtb + CtbSizeY와 같게 설정되는, 방법.
  19. 제18항에 있어서,
    상기 제4 변수 L이 정수인, 방법.
  20. 제18항에 있어서,
    상기 제4 변수 L이 3 또는 5와 같은, 방법.
  21. 제11항 내지 제20항 중 어느 것에 있어서,
    상기 제1 루마 ALF 경계가 크로스 컴포넌트 ALF (CC-ALF) 또는 루마 ALF에 대해 동일하게 결정되는, 방법.
  22. 제21항에 있어서,
    상기 제1 변수 vbOffset은 상기 크로스 컴포넌트 ALF (CC-ALF) 및 상기 루마 ALF에 대해 동일한, 방법.
  23. 제21항에 있어서,
    상기 제2 변수 M은 상기 CC-ALF 및 상기 루마 ALF에 대해 동일한, 방법.
  24. 제21항에 있어서,
    상기 제3 변수 N은 상기 CC-ALF 및 상기 루마 ALF에 대해 동일한, 방법.
  25. 제21항에 있어서,
    상기 제4 변수 L은 상기 CC-ALF 및 상기 루마 ALF에 대해 동일한, 방법.
  26. 제11항 내지 제20항 중 어느 것에 있어서,
    크로마 ALF에서 사용되는 상기 제2 루마 ALF 경계는 상기 크로마 ALF의 컬러 포맷에 기반하여 결정되는, 방법.
  27. 제26항에 있어서,
    4:2:0인 상기 컬러 포맷에 대해, 상기 제2 루마 ALF 경계가 상기 제1 루마 ALF 경계와 같다고 결정되는, 방법.
  28. 제26항 또는 제27항에 있어서,
    4:2:0인 상기 컬러 포맷에 대해, 상기 제1 변수 vbOffset은 크로마 ALF 및 루마 ALF에 대해 동일한, 방법.
  29. 제28항에 있어서,
    상기 제1 변수 vbOffset은 정수인, 방법.
  30. 제28항에 있어서,
    상기 제1 변수 vbOffset은 4인, 방법.
  31. 제26항 또는 제27항에 있어서,
    4:2:0인 상기 컬러 포맷에 대해, 상기 제2 변수 M이 크로마 ALF 및 루마 ALF에 대해 동일한, 방법.
  32. 제31항에 있어서,
    상기 변수 M이 정수인, 방법.
  33. 제31항에 있어서,
    상기 변수 M이 3인, 방법.
  34. 제26항 또는 제27항에 있어서,
    상기 제3 변수 N은 크로마 ALF 및 루마 ALF에 대해 동일한, 방법.
  35. 제26항 또는 제27항에 있어서,
    상기 제4 변수 L이 크로마 ALF 및 루마 ALF에 대해 동일한, 방법.
  36. 제26항에 있어서,
    4:2:2 또는 4:4:4인 상기 컬러 포맷에 대해, 상기 제2 루마 ALF 경계가 상기 제1 루마 ALF 경계와 상이하다고 결정되는, 방법.
  37. 제36항에 있어서,
    4:2:2 또는 4:4:4인 상기 컬러 포맷에 대해, 상기 제1 변수 vbOffset가 크로마 ALF 및 루마 ALF에 대해 상이한 값들을 가지는, 방법.
  38. 제37항에 있어서,
    vbOffset1이 상기 크로마 ALF에 대해 사용되고, vbOffset2는 상기 루마 ALF에 대해 사용되며, vbOffset1은 vbOffset2와 같지 않은, 방법.
  39. 제38항에 있어서,
    vbOffset1= 2 및 vbOffset2 = 4인, 방법.
  40. 제36항에 있어서,
    상기 제1 변수 vbOffset은 상기 컬러 포맷이 4:2:0과 같거나 상이한지 여부에 따라 상이한 값들을 가지는, 방법.
  41. 제36항에 있어서,
    4:2:2 또는 4:4:4인 상기 컬러 포맷에 대해, 제2 변수 M, 제3 변수 N, 그리고 제4 변수 L 각각은 크로마 ALF 및 루마 ALF에 대해 상이한 값들을 가지는, 방법.
  42. 제41항에 있어서,
    M1은 상기 크로마 ALF에 대해 사용되고, M2는 상기 루마 ALF에 대해 사용되고, M1은 M2와 같지 않은, 방법.
  43. 제42항에 있어서,
    M1= 2 및 M2 =3인, 방법.
  44. 제41항에 있어서,
    N1은 상기 크로마 ALF에 대해 사용되고, N2는 상기 루마 ALF에 대해 사용되고, N1은 N2와 같지 않은, 방법.
  45. 제44항에 있어서,
    N1=3 및 N2 =5인, 방법.
  46. 제41항에 있어서,
    L1은 상기 크로마 ALF에 대해 사용되고, L2는 상기 루마 ALF에 대해 사용되고, L1은 L2와 같지 않은, 방법.
  47. 제46항에 있어서,
    L1=3 및 L2 =5인, 방법.
  48. 제36항에 있어서,
    상기 제2 변수 M, 상기 제3 변수 N, 그리고 상기 제4 변수 L 각각은 상기 컬러 포맷이 4:2:0과 같거나 상이한지 여부에 의존하여 상이한 값들을 가지는, 방법.
  49. 제26항에 있어서,
    4:2:2 또는 4:4:4인 상기 컬러 포맷에 대해, 상기 제2 루마 ALF 경계는 크로스 컴포넌트 ALF (CC-ALF)에서 사용되는 상기 제1 ALF 루마 경계와 상이한 것으로 결정되는, 방법.
  50. 제49항에 있어서,
    4:2:2 또는 4:4:4인 상기 컬러 포맷에 대해, 상기 제1 변수 vbOffset은 크로마 ALF 및 상기 CC-ALF에 대해 상이한 값들을 가지는, 방법.
  51. 제50항에 있어서,
    vbOffset1은 상기 크로마 ALF에 대해 사용되고, vbOffset2는 상기 CC-ALF에 대해 사용되며, 상기 vbOffset1은 상기 vbOffset2와 같지 않은, 방법.
  52. 제51항에 있어서,
    vbOffset1=2 및 vbOffset2=4인, 방법.
  53. 제49항에 있어서,
    4:2:2 또는 4:4:4인 상기 컬러 포맷에 대해, 상기 제2 변수 M, 상기 제3 변수 N, 그리고 상기 제4 변수 L이 크로마 ALF 및 상기 CC-ALF에 대해 상이한 값들을 가지는, 방법.
  54. 제53항에 있어서,
    M1은 4:2:2 또는 4:4:4 컬러 포맷을 가지는 상기 크로마 ALF에 대해 사용되고, M2는 상기 CC-ALF에 대해 사용되며, M2는 M1과 같지 않은, 방법.
  55. 제54항에 있어서,
    M1=2 및 M2=3인, 방법.
  56. 제53항에 있어서,
    N1은 4:2:2 또는 4:4:4 컬러 포맷을 가지는 상기 크로마 ALF에 대해 사용되고, N2는 상기 CC-ALF에 대해 사용되며, N1은 N2와 같지 않은, 방법.
  57. 제56항에 있어서,
    N1=3 및 N2 =5인, 방법.
  58. 제53항에 있어서,
    L1은 4:2:2 또는 4:4:4 컬러 포맷을 가지는 상기 크로마 ALF에 대해 사용되고, L2는 상기 CC-ALF에 대해 사용되며, L1은 L2와 같지 않은, 방법.
  59. 제58항에 있어서,
    L1=3 및 L2 =5인, 방법.
  60. 상기 항들 중 어느 것에 있어서,
    상기 방법이 360도 가상 경계들에 적용되는, 방법.
  61. 제1항 내지 제60항 중 어느 것에 있어서,
    상기 변환은 상기 비디오를 상기 비트스트림으로 인코딩하는 단계를 포함하는, 방법.
  62. 제1항 내지 제60항 중 어느 것에 있어서,
    상기 변환은 상기 비디오를 상기 비트스트림으로부터 디코딩하는 단계를 포함하는, 방법.
  63. 제1항 내지 제60항 중 어느 것에 있어서,
    상기 변환은 상기 비트스트림을 상기 비디오로부터 생성하는 단계를 포함하고, 상기 방법은 상기 비트스트림을 비일시적이고 컴퓨터 판독가능한 기록 매체에 저장하는 단계를 더 포함하는, 방법.
  64. 비디오 처리 장치로서,
    제1항 내지 제63항 중 중 어느 하나 또는 그 이상에서 열거된 방법을 구현하도록 구성되는 프로세서를 포함하는 비디오 처리 장치.
  65. 비디오의 비트스트림을 저장하는 방법에 있어서,
    제1항 내지 제63항 중 어느 하나에서 열거된 방법을 포함하며, 상기 비트스트림을 비일시적인 컴퓨터 판독가능한 기록 매체에 저장하는 단계를 더 포함하는, 방법.
  66. 프로그램 코드를 저장하는 컴퓨터 판독가능한 기록 매체로,
    실행 시에 상기 프로그램 코드는 프로세서로 하여금 제1항 내지 제63항 중 어느 하나 또는 그 이상에서 열거된 방법을 구현하도록 하는, 기록 매체.
  67. 상기 기술된 방법들 중 어느 것에 따라 생성된 비트스트림을 저장하는 컴퓨터 판독가능한 매체.
  68. 비트스트림을 저장하기 위한 비디오 처리 장치에 있어서,
    상기 비디오 처리 장치는 제1항 내지 제63항 중 어느 하나 또는 그 이상에서 열거된 방법을 구현하도록 구성되는, 비디오 처리 장치.
KR1020227045426A 2020-06-30 2021-06-29 적응적 루프 필터링을 위한 경계 위치 KR20230029670A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2020/099604 2020-06-30
CN2020099604 2020-06-30
PCT/CN2021/102938 WO2022002007A1 (en) 2020-06-30 2021-06-29 Boundary location for adaptive loop filtering

Publications (1)

Publication Number Publication Date
KR20230029670A true KR20230029670A (ko) 2023-03-03

Family

ID=79317459

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227045426A KR20230029670A (ko) 2020-06-30 2021-06-29 적응적 루프 필터링을 위한 경계 위치

Country Status (6)

Country Link
US (2) US11979568B2 (ko)
EP (1) EP4173290A4 (ko)
JP (2) JP7522237B2 (ko)
KR (1) KR20230029670A (ko)
CN (1) CN116325728A (ko)
WO (1) WO2022002007A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220394309A1 (en) * 2021-05-20 2022-12-08 Lemon Inc. On Padding Methods For Neural Network-Based In-Loop Filter
WO2023198075A1 (en) * 2022-04-13 2023-10-19 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing

Family Cites Families (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991236B2 (en) 2006-10-16 2011-08-02 Nokia Corporation Discardable lower layer adaptations in scalable video coding
EP3101897B1 (en) 2010-04-09 2021-10-20 Xylene Holding S.A. Moving image encoding device and method, moving image decoding device and method, bitstream
US9094658B2 (en) * 2010-05-10 2015-07-28 Mediatek Inc. Method and apparatus of adaptive loop filtering
US9462298B2 (en) 2011-10-21 2016-10-04 Qualcomm Incorporated Loop filtering around slice boundaries or tile boundaries in video coding
US9247258B2 (en) 2011-10-26 2016-01-26 Qualcomm Incorporated Unified design for picture partitioning schemes
US9077998B2 (en) 2011-11-04 2015-07-07 Qualcomm Incorporated Padding of segments in coded slice NAL units
WO2014107709A2 (en) 2013-01-07 2014-07-10 Vid Scale, Inc. Enhanced deblocking filters for video coding
US9294776B2 (en) 2013-03-05 2016-03-22 Qualcomm Incorporated Parallel processing for video coding
US9578328B2 (en) 2013-07-15 2017-02-21 Qualcomm Incorporated Cross-layer parallel processing and offset delay parameters for video coding
JP6866157B2 (ja) 2013-09-27 2021-04-28 クゥアルコム・インコーポレイテッドQualcomm Incorporated 深度イントラ予測モードのための残差コーディング
US9807406B2 (en) 2014-03-17 2017-10-31 Qualcomm Incorporated Picture flushing and decoded picture buffer parameter inference for multi-layer bitstreams
US10200700B2 (en) 2014-06-20 2019-02-05 Qualcomm Incorporated Cross-component prediction in video coding
JP2017531382A (ja) 2014-09-12 2017-10-19 ヴィド スケール インコーポレイテッド ビデオ符号化のための成分間相関解除
KR20200051831A (ko) 2014-10-28 2020-05-13 미디어텍 싱가폴 피티이. 엘티디. 비디오 코딩을 위한 가이드된 크로스-컴포넌트 예측 방법
US9591325B2 (en) 2015-01-27 2017-03-07 Microsoft Technology Licensing, Llc Special case handling for merged chroma blocks in intra block copy prediction mode
CN106416254B (zh) 2015-02-06 2019-08-02 微软技术许可有限责任公司 在媒体编码期间跳过评估阶段
US10057574B2 (en) 2015-02-11 2018-08-21 Qualcomm Incorporated Coding tree unit (CTU) level adaptive loop filter (ALF)
US10306246B2 (en) * 2015-02-13 2019-05-28 Mediatek Inc. Method and apparatus of loop filters for efficient hardware implementation
US20160241881A1 (en) * 2015-02-13 2016-08-18 Mediatek Inc. Method and Apparatus of Loop Filters for Efficient Hardware Implementation
WO2016204531A1 (ko) * 2015-06-16 2016-12-22 엘지전자(주) 블록 경계에 따라 적응적으로 필터링을 수행하는 방법 및 장치
CN107750459B (zh) * 2015-06-18 2020-09-15 Lg电子株式会社 图像编码系统中的基于图像特性的自适应滤波方法和装置
WO2017045101A1 (en) 2015-09-14 2017-03-23 Mediatek Singapore Pte. Ltd. Advanced deblocking filter in video coding
US10531111B2 (en) 2015-11-06 2020-01-07 Microsoft Technology Licensing, Llc Flexible reference picture management for video encoding and decoding
US11563938B2 (en) 2016-02-15 2023-01-24 Qualcomm Incorporated Geometric transforms for filters for video coding
WO2017190288A1 (en) 2016-05-04 2017-11-09 Microsoft Technology Licensing, Llc Intra-picture prediction using non-adjacent reference lines of sample values
CN109417632B (zh) 2016-07-08 2023-08-04 Vid拓展公司 使用几何图形投影的360度视频编码
US11095922B2 (en) 2016-08-02 2021-08-17 Qualcomm Incorporated Geometry transformation-based adaptive loop filtering
US20180054613A1 (en) * 2016-08-22 2018-02-22 Mediatek Inc. Video encoding method and apparatus with in-loop filtering process not applied to reconstructed blocks located at image content discontinuity edge and associated video decoding method and apparatus
US10419757B2 (en) 2016-08-31 2019-09-17 Qualcomm Incorporated Cross-component filter
US20180184127A1 (en) 2016-12-22 2018-06-28 Qualcomm Incorporated Determining neighboring samples for bilateral filtering in video coding
US10506230B2 (en) 2017-01-04 2019-12-10 Qualcomm Incorporated Modified adaptive loop filter temporal prediction for temporal scalability support
US20200120359A1 (en) 2017-04-11 2020-04-16 Vid Scale, Inc. 360-degree video coding using face continuities
US10778974B2 (en) 2017-07-05 2020-09-15 Qualcomm Incorporated Adaptive loop filter with enhanced classification methods
US10728573B2 (en) 2017-09-08 2020-07-28 Qualcomm Incorporated Motion compensated boundary pixel padding
JP7343487B2 (ja) 2017-09-20 2023-09-12 ヴィド スケール インコーポレイテッド 360度ビデオ符号化におけるフェイス不連続の処理
US10965941B2 (en) 2017-10-09 2021-03-30 Qualcomm Incorporated Position-dependent prediction combinations in video coding
US11425418B2 (en) 2017-11-01 2022-08-23 Vid Scale, Inc. Overlapped block motion compensation
JP7390300B2 (ja) 2017-11-01 2023-12-01 ヴィド スケール インコーポレイテッド ビデオコーディングにおける適応ループフィルタを簡略化する方法
CN107801024B (zh) 2017-11-09 2019-07-12 北京大学深圳研究生院 一种用于帧内预测的边界滤波方法
US10721469B2 (en) 2017-11-28 2020-07-21 Qualcomm Incorporated Line buffer reduction for adaptive loop filtering in video coding
US11432010B2 (en) 2017-12-19 2022-08-30 Vid Scale, Inc. Face discontinuity filtering for 360-degree video coding
US11259021B2 (en) 2017-12-29 2022-02-22 Sharp Kabushiki Kaisha Systems and methods for partitioning video blocks at a boundary of a picture for video coding
US10972729B2 (en) 2018-01-20 2021-04-06 Qualcomm Incorporated Deblocking filter selection and application in video coding
US20190238845A1 (en) 2018-01-26 2019-08-01 Qualcomm Incorporated Adaptive loop filtering on deblocking filter results in video coding
CN110337811A (zh) 2018-02-14 2019-10-15 北京大学 运动补偿的方法、装置和计算机系统
US10708592B2 (en) 2018-04-02 2020-07-07 Qualcomm Incorporated Deblocking filter for video coding and processing
US20190306502A1 (en) 2018-04-02 2019-10-03 Qualcomm Incorporated System and method for improved adaptive loop filtering
CN116347109A (zh) 2018-08-17 2023-06-27 北京字节跳动网络技术有限公司 一种处理视频数据的方法和装置
TWI824006B (zh) 2018-09-12 2023-12-01 大陸商北京字節跳動網絡技術有限公司 交叉分量線性建模中的下採樣
HUE066947T2 (hu) 2018-09-14 2024-09-28 Huawei Tech Co Ltd Feldarabolás és csempézés a videokódolásban
TWI822863B (zh) 2018-09-27 2023-11-21 美商Vid衡器股份有限公司 360度視訊寫碼樣本導出
CN112913247B (zh) 2018-10-23 2023-04-28 北京字节跳动网络技术有限公司 使用局部照明补偿的视频处理
WO2020094057A1 (en) 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Position based intra prediction
CN109600611B (zh) 2018-11-09 2021-07-13 北京达佳互联信息技术有限公司 环路滤波方法、环路滤波装置、电子设备和可读介质
WO2020094154A1 (en) 2018-11-09 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Improvements for region based adaptive loop filter
CN113170122B (zh) 2018-12-01 2023-06-27 北京字节跳动网络技术有限公司 帧内预测的参数推导
BR112021010428A2 (pt) 2018-12-07 2021-08-24 Beijing Bytedance Network Technology Co., Ltd. Método para processamento de vídeo, aparelho em um sistema de vídeo, e, produto de programa de computador
WO2020125794A1 (en) 2018-12-22 2020-06-25 Beijing Bytedance Network Technology Co., Ltd. Two step cross-component prediction mode
BR112021013521A2 (pt) 2019-01-09 2021-09-14 Huawei Technologies Co., Ltd. Codificador de vídeo, decodificador de vídeo e métodos correspondentes
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
US11089335B2 (en) * 2019-01-14 2021-08-10 Mediatek Inc. Method and apparatus of in-loop filtering for virtual boundaries
WO2020169101A1 (en) 2019-02-22 2020-08-27 Beijing Bytedance Network Technology Co., Ltd. Neighbouring sample selection for intra prediction
CN113491121B (zh) 2019-02-24 2022-12-06 北京字节跳动网络技术有限公司 对视频数据进行编解码的方法、设备及计算机可读介质
BR112021016953A2 (pt) 2019-02-27 2021-11-23 Huawei Tech Co Ltd Codificador, decodificador e métodos correspondentes
WO2020177664A1 (en) 2019-03-02 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Restrictions on in-loop filtering
PT3931748T (pt) 2019-03-11 2024-06-27 Huawei Tech Co Ltd Endereços de parcela baseados em subgravura na codificação vídeo
CN113574889B (zh) 2019-03-14 2024-01-12 北京字节跳动网络技术有限公司 环路整形信息的信令和语法
CN113632490B (zh) 2019-03-24 2022-12-23 北京字节跳动网络技术有限公司 视频处理中的非线性自适应环路滤波
CN117880494A (zh) 2019-03-24 2024-04-12 北京字节跳动网络技术有限公司 用于帧内预测的参数推导的条件
WO2020211769A1 (en) 2019-04-15 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Clipping parameter derivation in adaptive loop filter
KR20210145749A (ko) 2019-04-16 2021-12-02 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩을 위한 적응형 루프 필터링
WO2020256467A1 (ko) * 2019-06-19 2020-12-24 한국전자통신연구원 비디오 영상 부/복호화를 위한 가상 경계 시그널링 방법 및 장치
KR102648121B1 (ko) 2019-07-11 2024-03-18 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 적응적 루프 필터링에서의 샘플 패딩
WO2021036977A1 (en) 2019-08-23 2021-03-04 Beijing Bytedance Network Technology Co., Ltd. Clipping in reference picture resampling
JP7401666B2 (ja) 2019-11-04 2023-12-19 北京字節跳動網絡技術有限公司 クロス成分適応ループフィルタ
US11425405B2 (en) * 2019-11-15 2022-08-23 Qualcomm Incorporated Cross-component adaptive loop filter in video coding
WO2021147981A1 (en) * 2020-01-24 2021-07-29 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods for adaptive loop filtering

Also Published As

Publication number Publication date
WO2022002007A1 (en) 2022-01-06
JP2023531223A (ja) 2023-07-21
EP4173290A1 (en) 2023-05-03
EP4173290A4 (en) 2024-01-10
JP2024020420A (ja) 2024-02-14
CN116325728A (zh) 2023-06-23
US20240114132A1 (en) 2024-04-04
US20230156186A1 (en) 2023-05-18
JP7522237B2 (ja) 2024-07-24
US11979568B2 (en) 2024-05-07

Similar Documents

Publication Publication Date Title
KR102669852B1 (ko) 적응적 루프 필터링을 위한 샘플 결정
KR102648121B1 (ko) 적응적 루프 필터링에서의 샘플 패딩
KR20220020268A (ko) 비디오 유닛 경계들 및 가상 경계들의 처리
WO2021155778A1 (en) Cross-component adaptive loop filter
KR102619404B1 (ko) 크로스 컴포넌트 적응적 루프 필터링을 위한 샘플 패딩
JP7560227B2 (ja) 適応ループフィルタリングにおけるパディングプロセス
JP7454042B2 (ja) 適応ループ・フィルタリングにおける利用可能でないサンプル位置でのパディング・プロセス
KR20220032520A (ko) 팔레트 모드 사용 지시의 조건 종속적인 코딩
US11979568B2 (en) Boundary location for adaptive loop filtering
JP2022550337A (ja) 異なるビデオユニット間の適応ループフィルタリング
KR20210129647A (ko) 팔레트 모드 사용 지시의 독립적인 코딩
KR20210132662A (ko) 팔레트 모드 사용 지시의 조인트 코딩
KR102718068B1 (ko) 적응적 루프 필터링에서의 패딩 프로세스
KR102721536B1 (ko) 상이한 비디오 유닛들 간의 적응적 루프 필터링
WO2021134048A1 (en) Control of filtering across boundaries in video coding

Legal Events

Date Code Title Description
A201 Request for examination