KR20220006054A - 비디오 코딩을 위한 필터 디블로킹 - Google Patents

비디오 코딩을 위한 필터 디블로킹 Download PDF

Info

Publication number
KR20220006054A
KR20220006054A KR1020217035465A KR20217035465A KR20220006054A KR 20220006054 A KR20220006054 A KR 20220006054A KR 1020217035465 A KR1020217035465 A KR 1020217035465A KR 20217035465 A KR20217035465 A KR 20217035465A KR 20220006054 A KR20220006054 A KR 20220006054A
Authority
KR
South Korea
Prior art keywords
video
filter
block
way
video block
Prior art date
Application number
KR1020217035465A
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 KR20220006054A publication Critical patent/KR20220006054A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

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

Abstract

예시적 측면에서, 영상 미디어 처리 방법은 두 개의 비디오 블록의 수직 가장자리 및/또는 수평 가장자리에서 경계를 식별하는 단계; 수직 가장자리 또는 수평 가장자리를 가로지르는 결합된 인트라-인터 예측(CIIP) 모드를 사용하여 코딩 된 두 개의 비디오 블록 중 하나 이상에 기초하여 필터의 경계 강도를 계산하는 단계; 필터를 켜거나 끌지 여부를 결정하는 단계; 필터가 켜져 있는 경우 필터의 강도를 선택하는 단계; 및 선택하는 단계에 기초하여, 비디오 블록에 디블로킹 필터(DB) 프로세스를 수행하는 단계를 포함한다.

Description

비디오 코딩을 위한 필터 디블로킹
이 특허 문서는 비디오 코딩/디코딩 기술, 장치 및 시스템과 관련이 있다.
파리협약에 따른 대응하는 특허법 및/또는 규칙에 따라, 이 출원은 2019년 5월 11일에 출원된 국제 특허 출원 번호 PCT/CN2019/086488의 우선권과 이익을 적시에 주장하기 위해 이루어진다. 법에 따른 모든 목적을 위해, 앞서 언급한 애플리케이션의 전체 공개는 이 출원의 공개의 일부로 참조로 포함된다.
비디오 압축의 발전에도 불구하고 디지털 비디오는 여전히 인터넷 및 기타 디지털 통신 네트워크에서 가장 큰 대역폭 사용을 차지한다. 비디오를 수신하고 표시할 수 있는 연결된 사용자 장치의 수가 증가함에 따라 디지털 비디오 사용에 대한 대역폭 수요가 계속 증가할 것으로 예상된다.
비디오 코딩/디코딩 기술과 관련된 장치, 시스템 및 방법, 특히 이미지/비디오 코딩의 디블로킹 필터(deblocking filter)와 방법에 대해 설명한다. 기술된 방법은 개발 중인 표준(예를 들어, 다용도 비디오 코딩(Versatile Video Coding) 및 미래 비디오 코딩 표준 또는 비디오 코덱)에 적용될 수 있다.
하나의 측면에서, 개시된 기술은 영상 미디어 처리(visual media processing)를 위한 방법을 제공하기 위하여 사용될 수 있다. 이 방법은 두 개의 비디오 블록의 수직 가장자리(vertical edge) 및/또는 수평 가장자리(horizontal edge)에서 경계를 식별하는 단계; 수직 가장자리 또는 수평 가장자리를 가로지르는 결합된 인트라-인터 예측(combined intra-inter prediction)(CIIP) 모드를 사용하여 코딩 된 두 개의 비디오 블록 중 하나 이상에 기초하여 필터의 경계 강도(boundary strength)를 계산하는 단계; 필터를 켜거나 끌지 여부를 결정(deciding)하는 단계; 필터가 켜져 있는 경우 필터의 강도를 선택하는 단계; 및 선택하는 단계에 기초하여, 비디오 블록에 디블로킹 필터(DB) 프로세스(deblocking filter (DB) process)를 수행하는 단계를 포함한다.
또 다른 측면에서, 개시된 기술은 영상 미디어 처리를 위한 방법을 제공하기 위하여 사용될 수 있다. 이 방법은 영상 미디어 데이터의 비디오 블록과 비디오 블록(video block)의 비트스트림 표현(bitstream representation) 사이의 변환에 적용가능한 코딩 방식(coding scheme)를 결정하는 단계; 및 코딩 방식의 결정에 기초하여, 비디오 블록의 변환(conversion) 동안 비디오 블록에 인루프 필터(in-loop filter)의 적용을 선택적으로 활성화하거나 비활성화하는 단계를 포함한다.
또 다른 측면에서, 개시된 기술은 영상 미디어 처리를 위한 방법을 제공하기 위하여 사용될 수 있다. 이 방법은 영상 미디어 데이터의 비디오 블록과 비디오 블록의 비트스트림 표현 사이의 변환에 적용가능한 변환 매트릭스(transform matrix)의 유형을 결정하는 단계; 및 변환 매트릭스의 유형의 결정에 기초하여, 비디오 블록을 변환하는 동안 비디오 블록에 디블로킹(DB) 필터 프로세스의 적용을 선택적으로 활성화 또는 비활성화하는 단계를 포함한다.
또 다른 측면에서, 개시된 기술은 영상 미디어 처리를 위한 방법을 제공하기 위하여 사용될 수 있다. 이 방법은, 영상 미디어 데이터의 비디오 블록과 비디오 블록의 비트스트림 표현 사이의 변환 동안, 비디오 블록에 인루프 필터링 단계(in-loop filtering step)의 적용을 결정하는 단계 - 인루프 필터링 단계는 필터링될 비디오 블록내의 샘플에 적용된 클리핑 작업(clipping operation)을 포함함 -; 및 비디오 블록과 연관된 하나 이상의 조건을 결정하는 단계에 대응하여, 클리핑 작업을 선택적으로 활성화하거나 비활성화하는 단계를 포함한다.
또 다른 측면에서, 전술한 방법은 프로세서 실행 코드 형태로 구현되고 컴퓨터 판독 가능 프로그램 매체(computer-readable program medium)에 저장된다.
또 다른 측면에서, 전술한 방법을 수행하도록 구성되거나 작업 가능한 장치가 개시된다. 장치는 이 방법을 구현하도록 프로그래밍 된 프로세서(processor)를 포함할 수 있다.
또 다른 측면에서, 비디오 디코더 장치는 여기에 기재된 바와 같은 방법을 구현할 수 있다.
또 다른 측면에서, 비디오 인코더 장치는 여기에 기재된 바와 같은 방법을 구현할 수 있다.
상기 및 개시된 기술의 다른 측면 및 특징은 도면, 설명 및 클레임에서 더 자세히 설명된다.
도 1은 다용도 비디오 코딩(VVC)의 인코더 블록도의 예를 보여준다.
도 2는 디블로킹 필터 프로세스의 예제 처리 흐름도를 보여준다.
도 3은 BS 값이 인트라 코딩 모드, 비-제로 변환 계수(non-zero transform coefficient) 및 모션 정보, 레퍼런스 픽처, 모션 벡터 수 및 모션 벡터 차이의 존재에 기초하여 계산되는 방법을 보여준다.
도 4는 CTU 경계에서 Bs 계산에 대한 참조된 정보의 예를 보여준다.
도 5는 필터 켜기/끄기 결정(decision))에 포함된 픽셀의 예를 보여준다.
도 6a는 4Х8 및 8Х4 블록의 분할의 예를 보여준다. 도 6b는 4Х8, 8Х4 및 4Х4를 제외한 모든 블록의 분할의 예를 보여준다.
도 7a는 4Х4 블록에 대한 아핀 선형 가중 인트라 예측(affine linear weighted intra prediction)(ALWIP)의 예를 보여준다. 도 7b는 8Х8 블록에 대한 ALWIP의 예를 보여준다. 도 7c는 8Х4 블록에 대한 ALWIP의 예를 보여준다. 도 7d는 16Х16 블록에 대한 ALWIP의 예를 보여준다.
도 8은 JEM에서 2차 변환의 예를 보여준다.
도 9는 개시된 기술의 실시예에 기초하여 감소된 2차 변환(RST)의 예를 보여준다.
도 10은 서브블록 변환 모드 SBT-V 및 SBT-H의 예를 보여준다.
도 25는 서브블록 MV VSB 및 픽셀 Δv(i,j)의 예를 보여준다.
도 12는 개시된 기술의 일부 실시예에 기초하여 비디오 처리를 위한 예제 방법의 순서도를 보여준다.
도 13은 개시된 기술의 일부 실시예에 기초하여 비디오 처리를 위한 예제 방법의 순서도를 보여준다.
도 14는 개시된 기술의 일부 실시예에 기초하여 비디오 처리를 위한 예제 방법의 순서도를 보여준다.
도 15는 개시된 기술의 일부 실시예에 기초하여 비디오 처리를 위한 예제 방법의 순서도를 보여준다.
도 16은 개시된 기술의 일부 실시예에 기초하여 비디오 처리를 위한 예제 방법의 순서도를 보여준다.
도 17은 개시된 기술의 일부 실시예에 기초하여 비디오 처리를 위한 예제 방법의 순서도를 보여준다.
도 18은 개시된 기술의 일부 실시예에 기초하여 비디오 처리를 위한 예제 방법의 순서도를 보여준다.
도 19는 개시된 기술의 일부 실시예에 기초하여 비디오 처리를 위한 예제 방법의 순서도를 보여준다.
도 12는 본 문서에서 설명하는 영상 미디어 디코딩 또는 영상 미디어 인코딩 기술을 구현하기 위한 하드웨어 플랫폼의 일 예의 블록도이다.
도 13은 개시된 기술이 구현될 수 있는 예시적인 비디오 처리 시스템의 블록도이다.
도 11은 영상 미디어 처리를 위한 예제 방법의 순서도를 보여준다.
도 11은 영상 미디어 처리를 위한 예제 방법의 순서도를 보여준다.
도 11은 영상 미디어 처리를 위한 예제 방법의 순서도를 보여준다.
도 11은 영상 미디어 처리를 위한 예제 방법의 순서도를 보여준다.
고해상도 비디오의 수요가 증가함에 따라 비디오 코딩 방법과 기술은 현대 기술에서 유비쿼터스이다. 비디오 코덱에는 일반적으로 디지털 비디오를 압축하거나 압축 해제하는 전자 회로 또는 소프트웨어가 포함되며 코딩 효율성을 높이기 위해 지속적으로 개선되고 있다. 비디오 코덱은 압축되지 않은 비디오를 압축 형식으로 변환하거나 그 반대의 경우도 마찬가지이다. 비디오 품질, 비디오(비트 전송률에 의해 결정됨), 인코딩 및 디코딩 알고리즘의 복잡성, 데이터 손실 및 오류에 대한 민감도, 편집 용이성, 무작위 액세스 및 종단 간 지연(대기 시간)사이에는 복잡한 관계가 있다. 압축 형식은 일반적으로 표준 비디오 압축 사양(예를 들어, HEVC) 표준(H.265 또는 MPEG-H 파트 2라고도 함), 범용 비디오 코딩(VVC) 표준또는 기타 현재 및/또는 미래의 비디오 코딩 표준을 준수한다.
일부 실시예에서는 공동 연구 모델(JEM)으로 알려진 참조 소프트웨어를 사용하여 향후 비디오 코딩 기술을 탐구한다. JEM에서, 서브블록 기반 예측은 아핀 예측(아핀 prediction), 대체 시간적 모션 벡터 예측(alternative temporal motion vector prediction)(ATMVP), 공간-시간적 모션 벡터 예측(spatial-temporal motion vector prediction)(STMVP), 양방향 광학 흐름(bi-directional optical flow)(BIO), 프레임 속도 업 변환(Frame-Rate Up Conversion)(FRUC), 로컬 적응형 모션 벡터 해상도(Locally Adaptive Motion Vector Resolution)(LAMVR), 오버랩 블록 모션 보상(Overlapped Block Motion Compensation)(OBMC), 로컬 조명 모션 보상(Local Illumination Compensation) 및 디코더측 모션 벡터 정제(Decoder-side Motion Vector Refinement (DMVR))(DMVR)과 같은 여러 코딩 툴에서 채택된다.
개시된 기술의 실시예는 런타임 성능을 향상시키기 위해 기존 비디오 코딩 표준(예를 들어, HEVC, H.265)과 미래 표준에 적용될 수 있다. 본 문서는 압축해제 또는 디코딩 된 디지털 비디오 또는 이미지들의 품질을 개선하기 위해 이미지 또는 비디오 비트스트림의 디코더에 의해 사용될 수 있는 다양한 기술을 제공한다. 간결함을 위해, "비디오"라는 용어는 연속적인 픽처(전통적으로 비디오라고 함)와 개별 이미지를 모두 포함하는 데 사용된다. 또한, 비디오 인코더는 추가 인코딩에 사용되는 디코딩 된 프레임을 재구성하기 위해 인코딩 프로세스(encoding process) 동안 이러한 기술을 구현할 수도 있다.
섹션 제목은 설명의 가독성을 향상시키기 위해 본 문서에서 사용되며, 토론 또는 실시예(및/또는 구현)를 각 섹션으로만 제한하지 않는다.
1 일반적인 비디오 코덱의 부호화 흐름의 예
도 1은 3개의 인루프 필터링 블록을 포함하는 VVC의 인코더 블록도의 예를 보여준다: 디블로킹 필터(deblocking filter)(DF), 샘플 적응형 오프셋(sample adaptive offset)(SAO) 및 ALF. 미리 정의된 필터를 사용하는 DF와 달리, SAO 및 ALF는 오프셋(offset)을 추가하고 오프셋 및 필터 계수(filter coefficient)를 시그널링 하는 코딩된 부가 정보와 함께 유한 임펄스 응답(finite impulse response)(FIR) 필터를 각각 적용하여 원래 샘플과 재구성된 샘플 사이의 평균 제곱 오류를 줄이기 위해 현재 픽처의 원래 샘플을 활용한다. ALF는 각 픽처의 마지막 처리 단계에 위치하며 이전 단계에서 만든 아티팩트를 포착하고 수정하려는 툴(tool)로 간주될 수 있다.
2 HEVC에서 디블로킹 구성(deblocking scheme)의 예
디블로킹 필터 프로세스는 디코딩 프로세스와 동일한 순서로 각 CU에 대해 수행된다. 먼저, 수직 가장자리가 필터링된(수평 필터링) 다음 수평 가장자리가 필터링된다(수직 필터링). 필터링은 루마 및 크로마 컴포넌트 모두에 대해 필터링될 것으로 판단되는 8x8 블록 경계에 적용된다. 복잡성을 줄이기 위해 4x4 블록 경계가 처리되지 않는다.
도 2는 디블로킹 필터 프로세스의 전체 처리 흐름도를 보여 준다. 경계는: 필터링 없음, 약한 필터링 및 강한 필터링의 세 가지 필터링 상태가 있을 수 있다. 각 필터링 결정(decision)은 경계 강도, Bs 및 임계값,
Figure pct00001
및 tC에 기초한다.
2.1 경계 결정(decision)
세 가지 종류의 경계가 필터링 프로세스에 포함될 수 있다: CU 경계, TU 경계 및 PU 경계이다. CU 경계는 항상 TU 경계 또는 PU 경계이기 때문에 CU 경계의 외부 가장자리인 CU 경계는 항상 필터링에 관여한다. PU 형상이 2NxN(N > 4)이고 RQT 깊이가 1과 같을 때, 8x8 블록 그리드의 TU 경계와 CU 내부의 각 PU 경계가 필터링에 포함된다. 한 가지 예외는 PU 경계가 TU 내부에 있을 때 경계가 필터링되지 않는다는 것이다.
2.2 경계 강도 계산
도 3은 Bs 계산에 대한 흐름도를 보여 준다. 일반적으로 얘기할 때, 경계 강도(Bs)는 경계에 얼마나 강한 필터링이 필요한지 반영한다. Bs가 큰 경우 강한 필터링을 고려해야 한다. P와 Q를 필터링에 관여하는 블록으로 정의할 수 있도록 하고, 여기서 P는 경계의 왼쪽(수직 가장자리 케이스) 또는 위(수평 가장자리 케이스) 쪽에 있는 블록을 나타내고 Q는 경계의 오른쪽(수직 가장자리 케이스) 또는 위(수평 가장자리 케이스) 쪽에 있는 블록을 나타낸다. 도 3은 Bs 값이 인트라 코딩 모드, 비-제로 변환 계수 및 모션 정보, 레퍼런스 픽처, 모션 벡터 수 및 모션 벡터 차이의 존재에 기초하여 계산되는 방법을 도시한다.
Bs는 4x4 블록 기준으로 계산되지만 8x8 그리드로 다시 매핑된다. 4x4 그리드의 라인으로 구성된 8픽셀에 해당하는 Bs의 최대 값은 8x8 그리드의 경계에 대한 Bs로 선택된다.
도 4는 CTU 경계에서 Bs 계산에 대한 참조된 정보의 예를 보여준다. 라인 버퍼 메모리 요구 사항을 줄이기 위해, CTU 경계에 대해서만 왼쪽 또는 위쪽의 모든 두 번째 블록(4x4 그리드)의 정보가 도 4에 묘사된 대로 다시 사용된다.
2.3
Figure pct00002
및 t C 결정(decision)
필터 켜기/끄기 결정(decision)에 포함된 임계값
Figure pct00003
및 tC 임계값, 강력하고 약한 필터 선택 및 약한 필터링 프로세스는 각각 P 및Q 블록, QPP 및 QPQ의 루마 양자화 파라미터에 기초하여 유도된다.
Figure pct00004
및 tC를 유도하는 데 사용되는 Q는 다음과 같이 계산된다.
Q = ( ( QPP + QPQ + 1 ) >> 1 ).
변수
Figure pct00005
는 Q에 기초하여 표 1에 표시된 대로 유도된다. Bs가 1보다 큰 경우 가변 tC는 Clip3(0, 55, Q + 2)를 입력으로 표 1로 지정한다. 그렇지 않으면(BS가 같거나 1 미만이면 변수 tC가 Q를 입력으로 표 1로 지정한다.
입력 Q에서 임계값 변수 β 및 tC의 유도
Q 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Figure pct00006
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 7 8
t C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Q 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
Figure pct00007
9 10 11 12 13 14 15 16 17 18 20 22 24 26 28 30 32 34 36
t C 1 1 1 1 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4
Q 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
Figure pct00008
38 40 42 44 46 48 50 52 54 56 58 60 62 64 64 64 64 64
t C 5 5 6 6 7 8 9 9 10 10 11 11 12 12 13 13 14 14
1.2.4 각 4라인에 대한 켜기/끄기 결정(decision) 필터링
도 5는 필터 켜기/끄기 결정(decision)에 포함된 픽셀의 예를 보여준다. 다음 설명에서, pNM은 수직 가장자리를 기준으로 M 번째 행의 왼쪽 N 번째 샘플을 나타내고, 또는 수평 가장자리를 기준으로 M 번째 열의 상단 N 번째 샘플을 나타내는 것을 유의하고, qNM은 수직 가장자리를 기준으로 M 번째 행의 오른쪽 N 번째 샘플 또는 수평 가장자리를 기준으로 M 번째 열의 아래쪽 N 번째 샘플을 나타내는 것을 유의하라. pNM 및 qNM의 예는 도 5에 묘사된다.
다음 설명에서, pN은 수직 가장자리를 기준으로 한 행의 왼쪽 N번째 샘플 또는 수평 가장자리를 기준으로 한 열의 상단 N 번째 샘플을 나타내고, 또는 qN은 세로 가장자리를 기준으로 한 행의 오른쪽 N번째 샘플 또는 가로 가장자리를 기준으로 한 열의 아래쪽 N번째 샘플을 나타내는 것을 유의하라.
필터 켜기/끄기 결정(decision)은 유닛으로 네 라인에 대해 수행된다. 도 5는 필터 켜기/끄기 결정(decision)에 관련된 픽셀을 보여 준다. 처음 네 라인에 대한 두 개의 빨간색 상자의 6 픽셀은 4 라인의 필터 온 /오프를 결정하는 데 사용된다. 두 번째 4줄에 대한 두 개의 빨간색 상자의 6픽셀은 두 번째 4개의 라인에 대한 필터 켜기/끄기를 결정하는 데 사용된다.
dp0 + dq0 + dp3 + dq3 < β 경우 처음 네 라인에 대한 필터링이 켜져 있고 강한 / 약한 필터 선택 프로세스가 적용된다. 각 변수는 다음과 같이 유도된다.
dp0 = | p20 - 2*p10 + p00 |, dp3 = | p23 - 2*p13 + p03 |, dp4 = | p24 - 2*p14 + p04 |, dp7 = | p27 - 2*p17 + p07 |
dq0 = | q20 - 2*q10 + q00 |, dq3 = | q23 - 2*q13 + q03 |, dq4 = | q24 - 2*q14 + q04 |, dq7 = | q27 - 2*q17 + q07 |
조건이 충족되지 않으면 처음 4라인에 대해 필터링이 수행되지 않는다. 또한 조건이 충족되면 dE, dEp1 및 dEp2는 약한 필터링 프로세스에 대해 유도된다. 변수 dE는 1과 동일하게 설정된다. dp0 + dp3 <(β +(β >> 1)) >> 3의 경우, 변수 dEp1은 1과 동일하게 설정된다. dq0 + dq3 < (β + (β >> 1)) >> 3인 경우, 변수 dEq1은 1과 동일하게 설정된다. 두 번째 네 라인의 경우, 위와 동일한 방식으로 결정(decision)이 내려지므로 결정된다.
2.5 4라인에 대한 강/약한 필터 선택
처음 네 라인이 필터가 활성화되었는지 결정(decide)하기 위해 검사된 후, 다음 두 조건이 충족되면, 처음 네 라인을 필터링하는 데 강한 필터가 사용된다. 그렇지 않으면, 필터에 약한 필터가 사용된다. 관련 픽셀은 도 5에 묘사된 대로 켜기/끄기 결정(decision)을 필터링하는 데 사용되는 픽셀과 동일하다.
2*(dp0+dq0) < ( β >> 2 ), | p30 - p00 | + | q00 - q30 | < ( β >> 3 ) and | p00 - q00 | < ( 5* tC + 1 ) >> 1
2*(dp3+dq3) < ( β >> 2 ), | p33 - p03 | + | q03 - q33 | < ( β
Figure pct00009
>> 3 ) and | p03 - q03 | < ( 5* tC + 1 ) >> 1
마찬가지로 두 가지 조건을 따르는 경우 두 번째 4라인을 필터링하는 데 강한 필터가 사용된다. 그렇지 않으면, 필터에 약한 필터가 사용된다.
2*(dp4+dq4) < ( β >> 2 ), | p34 - p04 | + | q04 - q34 | < ( β >> 3 ) and | p04 - q04 | < ( 5* tC + 1 ) >> 1
2*(dp7+dq7) < ( β >> 2 ), | p37 - p07 | + | q07 - q37 | < (β >> 3 ) and | p07 - q07 | < ( 5* tC + 1 ) >> 1
2.5.1 강한 필터링
강한 필터링의 경우 필터링된 픽셀 값은 다음 식에 의해 가져온다. 각 P 및 Q 블록에 대한 입력으로 각각 4픽셀을 사용하여 3픽셀을 수정한다.
p0'= ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3
q0'= ( p1 + 2*p0 + 2*q0 + 2*q1 + q2 + 4 ) >> 3
p1'= ( p2 + p1 + p0 + q0 + 2 ) >> 2
q1'= ( p0 + q0 + q1 + q2 + 2 ) >> 2
p2'= ( 2*p3 + 3*p2 + p1 + p0 + q0 + 4 ) >> 3
q2'= ( p0 + q0 + q1 + 3*q2 + 2*q3 + 4 ) >> 3
2.5.2 약한 필터링
다음과 같이 △를 정의해 보자.
△ = ( 9 * ( q0 -  p0 ) - 3 * ( q1 - p1 ) + 8 ) >> 4
abs(△)이 tC*10 미만인 경우,
△ = Clip3( - tC , tC , △ )
p0' = Clip1Y( p0 + △ )
q0' = Clip1Y( q0 - △ )
dEp1이 1과 같으면
△p = 클립3 (t  C >> 1), tC  >> 1, (((p2 + p0 + 1) >> 1 ) - p1 + ) △ >>1)
p1'=lip1Y( p1 + △p )
dEq1이 1과 같으면,
△q = 클립3 (-(tC  >> 1), tC  >> 1, (((q2 + q0 + 1) >> 1) - q1 - ) △ >>1)
q1' = Clip1Y( q1 + Dq )
각 P 및 Q 블록에 대한 입력으로 최대 2픽셀을 수정할 필요가 있다.
2.5.3 크로마 필터링
크로마 여과B는 루마에서 상속된다. Bs > 1 또는 코딩된 크로마 계수 기존 케이스의 경우, 크로마 필터링이 수행된다. 다른 필터링 결정(decision)이 없다. 그리고 크로마에는 하나의 필터만 적용된다. 크로마에 대한 필터 선택 프로세스가 사용되지 않는다. 필터링된 샘플 값 p0'및 q0'은 다음과 같이 유도된다.
△ = Clip3 ( -tC, tC, ( ( ( ( q0 - p0 ) << 2 ) + p1 - q1 + 4 ) >> 3 ) )
p0'= Clip1C ( p0 + △ )
q0'= Clip1C ( q0 - △ )
3 VTM-4.0에서 디블로킹 구성의 예
현재 VTM에서, 즉, VTM-4.0, JVET-M0471에 기재된 디블로킹 방식이 사용된다. 픽처의 수직 가장자리가 먼저 필터링된다. 그런 다음 픽처의 수평 가장자리는 수직 가장자리 필터링 프로세스에 의해 입력으로 수정된 샘플로 필터링된다. 각 CTU의 CTB의 수직 및 수평 가장자리는 코딩 유닛 기준으로 별도로 처리된다. 코딩 유닛의 코딩 블록의 수직 가장자리는 기하학적 순서로 코딩 블록의 오른쪽을 향해 가장자리를 통과하는 코딩 블록의 왼쪽 가장자리로 시작하여 필터링된다. 코딩 유닛의 코딩 블록의 수평 가장자리는 기하학적 순서로 코딩 블록의 아래쪽을 향해 가장자리를 통과하는 코딩 블록의 상단가장자리로 시작하여 필터링된다.
3.1 경계 결정(decision)
필터링은 8x8 블록 경계에 적용된다. 또한, 변환 블록 경계 또는 코딩 서브블록 경계(예를 들어, 아핀 모션 예측, ATMVP 사용으로 인해)여야 한다. 이러한 경계가 아닌 경우 필터가 비활성화된다.
3.2 경계 강도 계산
변환 블록 경계/코딩 서브블록 경계의 경우, 8x8 그리드에 있는 경우, 필터링 될 수 있고, 이 가장자리에 대한 bS[ xDi][yDj]의 설정이 다음과 같이 정의된다.
- 샘플 p0 또는 q0이 인트라 예측 모드로 코딩된 코딩 유닛의 코딩블록에 있는 경우, bS[xDi][[yDj]는 2와 동일하게 설정된다.
- 그렇지 않으면, 블록 엣지가 변혁 블록 가장자리고 샘플 p0 또는 q0이 하나 이상의 비-제로 변환 계수 레벨을 포함하는 변환 블록에 있는 경우, bS[xDi][yDj]는 1과 동일하게 설정된다.
- 그렇지 않으면, 샘플 p0을 포함하는 코딩 서브블록의 예측 모드가 샘플 q0를 포함하는 코딩 서브블록의 예측 모드와 상이한 경우, bS[xDi][[yDj]는 1과 동일하게 설정된다.
- 그렇지 않으면, 다음 조건 중 하나 이상이 사실인 경우, bS[ xDi][yDj]는 1과 동일하게 설정된다:
-- 샘플 p0을 포함하는 코딩 서브블록과 샘플 q0을 포함하는 코딩 서브블록은 모두 IBC 예측 모드에서 코딩되고, 두 개의 코딩 서브블록의 예측에 사용되는 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 분기 루마 샘플 유닛에서 4개 보다 크거나 동일하다.
-- 샘플 p0를 포함하는 코딩 서브블록의 예측을 위해 상이한 레퍼런스 픽처 또는 모션 벡터의 상이한 숫자는 샘플 q0을 포함하는 코딩 서브블록의 예측을 위해 사용된다.
--- 노트1(NOTE 1) - 두 코딩 서브블록에 사용되는 레퍼런스 픽처이 동일하거나 다른지 여부에 대한 결정은, 픽처 리스트 0에 대한 인덱스 또는 레퍼런스 픽처 목록 1에 대한 인덱스를 사용하여 예측이 형성되는지 여부에 관계없이, 및 또한 레퍼런스 픽처 목록 내의 인덱스 위치가 다른지 여부에 관계없이, 참조되는 픽처에만 기초한다.
--- 노트 2(NOTE 2) - 왼쪽 상단 샘플 커버링(xSb, ySb)를 사용하여 코딩 서브블록의 예측에 사용되는 모션 벡터의 수는 PredFlagL0[xSb] [ ySb] + PredFlagL1[ xSb][ ySb]와 동일하다.
-- 하나의 모션 벡터는 샘플 p0을 포함하는 코딩 서브블록을 예측하는 데 사용되고, 하나의 모션 벡터는 샘플 q0를 포함하는 코딩 서브블록을 예측하는 데 사용되고, 사용된 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/4 루마 샘플(quarter luma sample) 유닛에서 4 보다 크거나 동일하다.
-- 2개의 모션 벡터및 2개의 상이한 레퍼런스 픽처는 샘플 p0을 포함하는 코딩 서브블록을 예측하기 위하여 사용되고, 동일한 두 개의 레퍼런스 픽처에 대한 두 개의 모션 벡터는 샘플 q0을 포함하는 코딩 서브블록을 예측하는데 사용되고 동일한 레퍼런스 픽처에 대한 두 개의 코딩 서브블록의 예측에 사용된 두 개의 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대차이는 1/4 루마 샘플 유닛에서 4 보다 크거나 동일하다.
-- 동일한 레퍼런스 픽처에 대한 두 개의 모션 벡터는 샘플 p0을 포함하는 코딩 서브블록을 예측하는 데 사용되고, 동일한 레퍼런스 픽처에 대한 두 개의 모션 벡터는 샘플 q0을 포함하는 코딩 서브블록을 예측하는 데 사용되고 다음 조건 모두 참(true)이다:
--- 두 코딩 서브블록의 예측에 사용되는 목록 0 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/4 루마 샘플에서 4 보다 크거나 같고, 또는 두 개의 코딩 서브블록의 예측에 사용되는 목록1 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/4 루마 샘플 유닛에서 4 보다 크거나 동일하다.
--- 샘플 p0을 포함하는 코딩 서브블록의 예측에 사용되는 목록 0 모션 벡터 및 샘플 q0을 포함하는 코딩 서브블록의 예측에 사용되는 목록 1 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/4 루마 샘플 유닛에서 4 보다 크거나 동일하거나, 또는 샘플 p0을 포함하는 코딩 서브블록의 예측에 사용되는 목록 1 모션 벡터 및 샘플 q0을 포함하는 코딩 서브블록의 예측에 사용되는 목록 0 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/4 루마 샘플 유닛에서 4 보다 크거나 동일하다.
- 그렇지 않으면, 변수 bS [xDi][yDj]는 0과 동일하게 설정된다.
표 2 및 표 3은 BS 계산 규칙을 요약한다.
경계 강도(SPS IBC가 비활성화된 경우)
우선순위 조건 Y U V
5 적어도 하나의 이웃 블록이 인트라이다. 2 2 2
4 TU 경계와 인접한 블록의 적어도 하나가 비-제로 변환 계수(non-zero transform coefficient)를 가지고 있다. 1 1 1
3 이웃 블록의 레퍼런스 픽처 또는 MV(단일 예측1개, 이중 예측 2개)는 상이하다. 1 N/A N/A
2 인접한 블록에 속하는 동일한 레퍼런스 픽처의 모션 벡터 사이의 절대 차이는 하나의 정수 루마 샘플보다 크거나 동일하다. 1 N/A N/A
1 그렇지 않으면 0 0 0
경계 강도(SPS IBC가 활성화된 경우)
우선순위 조건 Y U V
8 적어도 하나의 이웃 블록이 인트라이다. 2 2 2
7 TU 경계와 인접한 블록의 적어도 하나가 비-제로 변환 계수(non-zero transform coefficient)를 가지고 있다. 1 1 1
6 이웃 블록의 예측 모드는 상이하다(예를 들어, 하나는 IBC, 하나는 인터) 1
5 인접한 블록에 속하는 모션 벡터 사이의 IBC 및 절대 차이는 하나의 정수 루마 샘플보다 크거나 동일하다. 1 N/A N/A
4 이웃 블록의 레퍼런스 픽처 또는 MV(단일 예측1개, 이중 예측 2개)는 상이하다. 1 N/A N/A
3 인접한 블록에 속하는 동일한 레퍼런스 픽처의 모션 벡터 사이의 절대 차이는 하나의 정수 루마 샘플보다 크거나 동일하다. 1 N/A N/A
1 그렇지 않으면 0 0 0
3.3 루마 컴포넌트에 대한 디블로킹 결정(decision)
디블로킹 결정(decision) 프로세스는 이 서브 섹션에 설명되어 있다. 더 넓고 강한 루마 필터(Wider-stronger luma filter)는 모든 조건1, 조건2조건 3이 참(TRUE)인 경우에만 필터가 사용된다.
조건 1은 "큰 블록 조건"이다. 이 조건은 P 측과 Q 측의 샘플이 각각 가변 bSidePisLargeBlk 및 bSideQisLargeBlk로 표시되는 큰 블록에 속하는지 여부를 검출한다. bSidePisLargeBlk 및 bSideQisLargeBlk는 다음과 같이 정의된다.
bSidePisLargeBlk = ((가장자리 유형은 수직이고 p0은 너비 >= 32인 CU에 속한다| | (가장자리 유형은 수평이고 p0은 높이 > = 32인 CU에 속한다)? 참: 거짓
bSideQisLargeBlk = ((가장자리 유형은 수직이고 q0은 너비 > = 32인 CU에 속한다) | | (가장자리 유형은 수평이고 q0은 높이 > = 32인 CU에 속한다)? 참: 거짓
bSidePisLargeBlk 및 bSideQisLargeBlk에 기초하여, 조건 1은 다음과 같이 정의된다.
조건1 = (bSidePisLargeBlk || bSidePisLargeBlk) ? 참: 거짓
다음으로 조건1이 사실인 경우 조건2가 더 검사된다. 우선, 다음 변수가 유도된다:
dp0, dp3, dq0, dq3는 HEVC에서와 같이 먼저 유도된다.
(p측이 32보다 크거나 같으면)
dp0 = ( dp0 + Abs(p50-2*p40+p30) + 1 ) >> 1
dp3 = ( dp3 + Abs(p53-2*p43+p33) + 1 ) >> 1
(q측이 32보다 크거나 같으면)
dq0 = ( dq0 + Abs(q50-2*q40+q30) + 1 ) >> 1
dq3 = ( dq3 + Abs(q53-2*q43+q33) + 1 ) >> 1
조건 2 = (d < β) ? 참: 거짓
여기서, 섹션 2.4에서 보는 바와 같이, d= dp0 + dq0 + dp3 + dq3이다.
조건1과 조건2가 유효한 경우 서브블록을 사용하는 블록 중 어느 블록이 있는지 여부를 추가로 검사한다:
(bSidePisLargeBlk)
If(mode block P == SUBBLOCKMODE)
Sp =5
else
Sp =7
else
Sp = 3
(bSideQisLargeBlk)
(mode block P == SUBBLOCKMODE)
Sq =5
else
Sq =7
else
Sq = 3
마지막으로, 조건 1과 조건 2가 모두 유효한 경우 제안된 디블로킹 방법은 다음과 같이 정의된 조건 3(큰 블록 강한 필터 조건)을 검사하고, 이는 다음과 같이 정의 된다.
조건3 StrongFilter조건에서 다음 변수가 유도된다:
dpq는 HEVC에서와 같이 유도된다.
HEVC에서 유도된 SP3 = Abs(p3-p0),
(p측이 32보다 크거나 같을 경우)
if(Sp==5)
sp3 = ( sp3 + Abs( p5-p3 ) + 1) >> 1
else
sp3 = ( sp3 + Abs( p7-p3 ) + 1) >> 1
평방3 = Abs (q0- q3), HEVC에서유도
(q측이 32보다 크거나 같을 경우)
If(Sq==5)
sq3 = ( sq3 + Abs( q5-q3 ) + 1) >> 1
else
sq3 = ( sq3 + Abs( q7-q3 ) + 1) >> 1
HEVC에서와 같이, StrongFilterCondition = (dpq는 (β >> 2) 미만), sp3 + sq3 보다 적다 (3 *β >> 5), 및 Abs(p0 - q0) 미만 (5 * tC + 1) >> 1) ? 참: 거짓
3.4 루마용 더 강한 디블로킹 필터(더 큰 블록을 위해 설계)
이중선형 필터(Bilinear filter)는 경계의 양쪽에 있는 샘플이 큰 블록에 속하는 경우에 사용된다. 큰 블록에 속하는 샘플은 너비가 수직 가장자리에 대해 >= 32, 수평 가장자리의 높이 >=32로 정의된다. 이중선형 필터는 아래에 나열되어 있다.
i = 0 ~ Sp-1에 대한 블록 경계 샘플 pi 및 j = 0 ~ Sq-1에 대한 qi(pi 및 qi는 수직 가장자리를 필터링하기 위한 행 내의 i 번째 샘플 또는 위에서 설명한 HEVC 디블로킹에서 수평 가장자리 필터링)은 다음과 같이 선형 보간으로 대체된다.
pi´=(fi*Middles,t+(64-fi)*Ps+32)≫6),clipped to pi±tcPDi
qj´=(gj*Middles,t+(64-gj)*Qs+32)≫6),clipped to qj±tcPDj
{tcPD}_i 및 {tcPD}_j\용어는 섹션 3.6 및 g_j f_i, {Middle}_{s,t}, P_s\, Q_s\에 설명된 위치 의존 클리핑인 경우 다음과 같다.
Sp, Sq
7, 7
(p 측: 7,
q 측: 7)
Figure pct00010
7, 3 (p 측: 7
q 측: 3)
Figure pct00011
3, 7 (p 측: 3
q 측: 7)
Figure pct00012
7, 5
(p 측: 7
q 측: 5)
Figure pct00013
5, 7 (p 측: 5
q 측: 7)
Figure pct00014
5, 5 (p 측: 5
q 측: 5)
Figure pct00015
5, 3 (p 측: 5
q 측: 3)
Figure pct00016
3, 5 (p 측: 3
q 측: 5)
Figure pct00017
3.5 크로마에 대한 디블로킹 제어
크로마 강한 필터(chroma strong filter)는 블록 경계의 양쪽에 사용된다. 여기서, 크로마 필터는 크로마 엣지의 양면이 8(크로마 위치)보다 크거나 같을 때 선택되고, 세 가지 조건이 충족되는 다음과 같은 결정(decision)이 만족된다: 첫 번째는 경계 강도뿐만 아니라 큰 블록의 결정(decision)을 위한 것이다. 제안된 필터는 블록 가장자리를 직교적으로 가로지르는 블록 너비 또는 높이가 크로마 샘플 도메인에서 8보다 크거나 클 때 적용될 수 있다. 두 번째와 세 번째는 기본적으로 HEVC 루마 디블로킹 결정(decision)과 동일하고, 이는 각각 켜기/끄기 결정(decision)과 강한 필터 결정(decision)이다.
첫 번째 결정(decision)에서, 경계 강도(bS)는 표 2에 나타난 바와 같이 크로마 필터링을 위해 수정된다. 표 2의 조건은 순차적으로 검사된다. 조건이 충족되면 우선 순위가 낮은 나머지 조건을 스킵 한다.
크로마 디블로킹은 bS가 2와 같을 때 수행되거나 큰 블록 경계가 검출될 때 bS가 1과 같을 때 수행된다.
두 번째 및 세 번째 조건은 기본적으로 HEVC 루마 강한 필터 결정(decision)과 동일하다. 두 번째 조건에서:
d는 HEVC 루마 디블로킹에서와 같이 유도된다. d가 β 미만일 때 두 번째 조건은 참(TRUE)이 된다.
세 번째 조건에서 StrongFilterCondition은 다음과 같이 유도된다:
dpq는 HEVC에서와 같이 유도된다.
HEVC에서 유도된 sp3 = Abs (p3 - p0),
HEVC에서 유도된 sq3 = Abs (q0 - q3 ),
HEVC 디자인에서와 같이, StrongFilterCondition = (dpq는 (β >> 2) 미만), sp3 + sq3는 (β >> 3) 보다 작고, 및 Abs (p0 - q0)는 (5 * tC + 1) >> 1)보다 작다.
3.6 크로마를 위한 강한 디블로킹 필터
크로마에 대한 다음 강한 디블로킹 필터가 정의된다.
p2'= (3*p3+2*p2+p1+p0+q0+4)>>3
p1'= (2*p3+p2+2*p1+p0+q0+q1+4)>>3
p0'= (p3+p2+p1+2*p0+q0+q1+q2+4)>>3
제안된 크로마 필터는 4x4 크로마 샘플 그리드에서 디블로킹을 수행한다.
3.7 위치 의존 클리핑
위치 의존 클리핑(position dependent clipping) tcPD는 경계에서 7, 5 및 3 샘플을 수정하는 강력하고 긴 필터를 포함하는 루마 필터링 프로세스의 출력 샘플에 적용된다. 정량화 오류 분포를 가정하면, 더 높은 정량화 노이즈가 예상되는 샘플에 대한 클리핑 값을 증가시켜 실제 샘플 값으로부터 재구성된 샘플 값의 편차가 높을 것으로 예상된다.
비대칭 필터로 필터링된 각 P 또는 Q 경계에 대해 섹션 3.2의 의사 결정(decision) 프로세스 결과에 따라 위치 의존 임계값 표가 사이드 정보로 디코더에 제공되는 두 개의 표(예를 들어, 아래 표로 표시된 Tc7 및 Tc3)에서 선택된다.
Tc7 = { 6, 5, 4, 3, 2, 1, 1};
Tc3 = { 6, 4, 2 };
tcPD = (Sp == 3) ? Tc3 : Tc7;
tcQD = (Sq == 3) ? Tc3 : Tc7;
짧은 대칭 필터로 필터링되는 P 또는 Q 경계의 경우 낮은 크기의 위치 의존 임계값이 적용된다.
Tc3 = { 3, 2, 1 };
임계값을 정의 한 다음 필터링 된 p'i 및 q'i 샘플 값은 tcP 및 tcQ 클리핑 값에 따라 잘린다.
P" i = Clip3(p' i + tcP i , p' i - tcP i , p' i );
Q" j = Clip3(q' j + tcQ j , q' j - tcQ j , q' j );
여기서 p'i와 q'i는 필터링 된 샘플 값이고, p'i 및 q'j는 클리핑 후 출력 샘플 값이고, 그리고 tcPi, tcQi는 VVC tC 파라미터 및 tcPD 및 tcQD에서 유도된 클리핑 임계값이다. 함수 Clip3는 VVC에 지정된 클리핑 함수이다.
3.8 서브블록 디블로킹 해제 조정
긴 필터와 서브블록 디블로킹을 모두 사용하여 병렬 친화적인 디블로킹을 활성화하기 위해 긴 필터(long filter)는 긴 필터에 대한 루마 제어에 표시된 대로 서브블록 디블로킹 (아핀 또는 ATMVP 또는 DMVR)을 사용하는 측면 상의 많아야 5 개의 샘플을 수정하도록 제한된다. 또한, 서브블록 디블로킹은 CU 또는 암시적 TU 경계에 가까운 8x8 그리드의 서브블록 경계가 각 측면의 최대 두 개의 샘플에서 수정하도록 제한하도록 조정된다.
다음은 CU 경계와 정렬되지 않는 서브블록 경계에 적용된다.
(mode block Q == SUBBLOCKMODE && edge !=0) {
if (!(implicitTU && (edge == (64 / 4))))
if (edge == 2 || edge == (orthogonalLength - 2) || edge == (56 / 4) || edge == (72 / 4))
Sp = Sq = 2;
else
Sp = Sq = 3;
else
Sp = Sq = bSideQisLargeBlk ? 5:3
}
0과 동일한 가장자리가 CU 경계에 해당되는 경우, 2 또는 orthogonalLength-2와 같거나 동일한 가장자리는 CU 경계 등에서 서브블록 경계 8 개의 샘플에 해당한다. TU의 암시적 분할(implicit split)을 사용하는 경우 암시적 TU가 참(true)이다.
3.9 루마/크로마를 위한 4CTU/2CTU 라인 버퍼에 대한 제한
수평 가장자리의 필터링은 수평 가장자리가 CTU 경계와 정렬될 때, 루마의 경우 Sp = 3, 크로마의 경우 Sp=1 및 Sq=1을 제한한다.
4 인트라 서브블록 분할(intra subblock partitioning)(ISP)의 예
도 6a는 4Х8 및 8Х4 블록의 분할의 예를 보여준다. 도 6b는 4Х8, 8Х4 및 4Х4를 제외한 모든 블록의 분할의 예를 보여준다.
JVET-M0102에서는 ISP가 제안되며, 이는 표 3에 도시된 바와 같이, 블록 크기 치수에 따라 루마 인트라 예측 블록을 수직 또는 수평으로 2 또는 4개의 서브 파티션(sub-partition)으로 나눈다. 도 6a 및 도 6b는 두 가지 가능성의 예를 보여준다. 모든 서브 파티션은 최소 16개의 샘플을 갖는 조건을 충족한다. 블록 크기의 경우, 4 × N 또는 N × 4(N> 8 포함), 허용되는 경우 1 × N 또는 N × 1 서브 파티션이 존재할 수 있다.
분할 방향 블록 크기 서브 파티션 수
N/A 최소 변환 크기 분할되지 않음
4x8: 수평8x4: 수직 4x8 및 8x4 2
신호 4x8도 8x4도 아니고 W <= maxTBSize 및 H <= maxTBSize인 경우 4
수평 위의 경우 및 H> maxTBSize 4
수직 위의 경우 및 H> maxTBSize 4
이러한 각 서브 파티션에 대해, 인코더에 의해 전송된 계수를 엔트로피 디코딩한 다음 역양자화 및 역방향 변환하여 잔차 신호가 생성된다. 이어서, 서브 파티션은 인트라 예측되고 마지막으로 대응하는 재구성된 샘플(reconstructed sample)은 예측 신호에 잔차 신호를 추가하여 얻어진다. 따라서 각 서브 파티션의 재구성된 값을 사용하여 다음 서브 파티션의 예측을 생성할 수 있으며, 이 값은 프로세스 등을 반복한다. 모든 서브 파티션은 동일한 인트라 모드를 공유한다.
predModeIntra trTypeHor trTypeVer
INTRA_PLANAR,
INTRA_ANGULAR31,
INTRA_ANGULAR32,
INTRA_ANGULAR34,
INTRA_ANGULAR36,
INTRA_ANGULAR37
( nTbW >= 4 &&
nTbW <= 16 ) ?
DST-VII : DCT-II
( nTbH >= 4 &&
nTbH <= 16 ) ?
DST-VII : DCT-II
INTRA_ANGULAR33,
INTRA_ANGULAR35
DCT-II DCT-II
INTRA_ANGULAR2,
INTRA_ANGULAR4,??,INTRA_ANGULAR28,
INTRA_ANGULAR30,
INTRA_ANGULAR39,
INTRA_ANGULAR41,??,INTRA_ANGULAR63,
INTRA_ANGULAR65
( nTbW >= 4 &&
nTbW <= 16 ) ?
DST-VII : DCT-II
DCT-II
INTRA_ANGULAR3,
INTRA_ANGULAR5,??, INTRA_ANGULAR27,
INTRA_ANGULAR29,
INTRA_ANGULAR38,
INTRA_ANGULAR40,??,INTRA_ANGULAR64,
INTRA_ANGULAR66
DCT-II ( nTbH >= 4 &&
nTbH <= 16 ) ?
DST-VII : DCT-II
5 아핀 선형 가중 인트라 예측의 예(ALWIP, 일명. 매트릭스 기반 인트라 예측.
아핀 선형 가중 인트라 예측(ALWIP, 일명. 매트릭스 기반 인트라 예측(MIP))은 JVET-N0217에서 제안된다.
5.1 매트릭스 벡터 곱셈에 의한 감소된 예측 신호의 생성
이웃 레퍼런스 샘플은 감소된 레퍼런스 신호를 bdryred를 생성하기 위해 먼저 평균을 통해 다운 샘플링 된다. 그런 다음, 감소된 예측 predred 신호는 매트릭스 벡터 생성물을 계산하고 오프셋을 추가하여 계산된다.
predred=A·bdryred+b.
여기서, A는 W = H = 4이면 Wred·Hred 행과 4개의 열을 갖고 다른 모든 경우에는 8개의 열을 갖는 매트릭스이다. b는 Wred·Hred 크기의 벡터이다.
5.2 전체 ALWIP 프로세스의 도시
평균화, 매트릭스 벡터 곱셈 및 선형 보간의 전체 프로세스는 도 7a-7d의 다양한 형상에 대해 도시된다. 나머지 형상은 묘사된 사례 중 하나로 처리된다.
도 7a는 4x4 블록에 대한 아핀 선형 가중 인트라 예측(affine linear weighted intra prediction)(ALWIP)의 예를 보여준다. 4x4 블록이 주어지면, ALWIP는 경계의 각 축을 따라 두 개의 평균을 취한다. 결과로 생성된 4개의 입력 샘플은 매트릭스 벡터 곱에 들어간다. 매트릭스는 세트 S0에서 가져온다. 오프셋을 추가한 후 16개의 최종 예측 샘플을 생성한다. 선형 보간은 예측 신호를 생성할 필요가 없다. 따라서 샘플당 (4
Figure pct00018
16) / (4
Figure pct00019
4) = 4개의 곱셈이 수행된다.
도 7b는 8Х8 블록에 대한 ALWIP의 예를 보여준다. 8x8 블록이 주어지면 ALWIP는 경계의 각 축을 따라 4개의 평균을 취한다. 결과로 생성된 8개의 입력 샘플은 매트릭스 벡터 곱셈에 들어간다. 매트릭스는 세트 S1에서 가져온다. 이것은 예측 블록의 홀수 위치에서 16개의 샘플을 생성한다. 따라서 샘플당 총 (8
Figure pct00020
16) / (8
Figure pct00021
8) = 2개의 곱셈이 수행된다. 오프셋을 추가한 후 이러한 샘플은 축소된 상단 경계를 사용하여 수직으로 보간된다. 수평 보간은 원래의 왼쪽 경계를 사용함으로써 따른다.
도 7c는 8Х4 블록에 대한 ALWIP의 예를 보여준다. 8x4 블록이 주어지면, ALWIP는 경계의 수평 축을 따라 4개의 평균을 취하고 왼쪽 경계에서 4개의 원래 경계 값을 취한다. 결과로 생성된 8개의 입력 샘플은 매트릭스 벡터 곱셈에 들어간다. 매트릭스는 세트 S1에서 가져온다. 이것은 예측 블록의 수평 홀수 및 각 수직 위치에 대해 16개의 샘플을 생성한다. 따라서 샘플당 총 (8
Figure pct00022
16) / (8
Figure pct00023
4) = 4개의 곱셈이 수행된다. 오프셋을 추가한 후, 이 샘플은 원래 왼쪽 경계를 사용하여 수평으로 보간된다. 전치된(transposed) 케이스는 그에 따라 처리된다.
도 7d는 16Х16 블록에 대한 ALWIP의 예를 보여준다. 16x16 블록이 주어지면, ALWIP은 경계의 각 축을 따라 4개의 평균을 취한다. 결과로 생성된 8개의 입력 샘플은 매트릭스 벡터 곱셈에 들어간다. 매트릭스는 세트 S2에서 가져온다. 이것은 예측 블록의 홀수 위치에서 64개의 샘플을 생성한다. 따라서 샘플당 총 (8
Figure pct00024
64) / (16
Figure pct00025
16) = 2개의 곱셈이 수행된다. 오프셋을 추가한 후, 이 샘플은 상단 경계의 평균 8개를 사용하여 수직으로 보간된다. 수평 보간은 원래의 왼쪽 경계를 사용함으로써 따른다. 이 경우 보간 프로세스는 곱셈을 추가하지 않는다. 따라서, ALWIP 예측을 계산하려면 샘플당 총 2회의 곱셈이 필요하다.
큰 형상의 경우, 절차는 본질적으로 동일하며 샘플당 곱셈 수가 4개 미만인지 쉽게 검사할 수 있다.
W>8인 Wx8블록의 경우, 샘플이 홀수 수평 및 각 수직 위치에 주어지므로 수평 보간만 필요하다.
마지막으로 W>8 인 Wx4블록인 경우, 다운 샘플링된 블록의 수평 축을 따라 홀수 항목에 해당하는 모든 행을 생략하여 발생하는 행렬을 Ak로 둔다. 따라서, 출력 크기는 32이고 다시, 수평 보간만 수행된다. 전치된 케이스는 그에 따라 취급된다.
6 VVC의 여러 변환 세트(multiple Transform Set)(MTS)의 예
6.1 명시적 다중 변환 세트(Multiple Transform Set)(MTS)
VTM4에서, 최대 64Х64의 크기의 대형 블록 크기 변환이 활성화되고, 예를 들어 1080p 및 4K 시퀀스와 같은 고해상도 비디오에 유용하다. 고주파 변환 계수(High frequency transform coefficient)는 크기(너비 또는 높이 또는 너비와 높이 모두)가 64와 동일한 변환 블록에 대해 제로 아웃 되므로 더 낮은 주파수 계수만 유지되도록 한다. 예를 들어, MХN 변환 블록의 경우, M을 블록 너비로, N을 블록 높이로, M이 64와 같을 때 변환 계수의 왼쪽 32열만 유지된다. 마찬가지로 N이 64와 같으면 변환 계수의 상위 32열만 유지된다. 변환 스킵 모드가 큰 블록에 사용되면 전체 블록이 값을 제로화 아웃 하지 않고 사용된다.
HEVC에 사용된 DCT-II 외에도 MTS(다중 변환 선택) 체계는 인터 및 인트라 코딩 된 블록 모두 잔차 코딩에 사용된다. DCT8/DST7에서 선택한 여러 변환을 사용한다. 새로 도입된 변형 매트릭스는 DST-VII 및 DCT-VIII이다. 표 7은 선택된 DST/DCT의 기본 함수를 보여준다.
변형 매트릭스(transform matrix)의 직교성을 유지하기 위해, 변형 매트릭스는 HEVC의 변형 매트릭스보다 더 정확하게 양자화 된다. 변환된 계수의 중간 값을 16비트 범위 내에서 유지하기 위해서는 수평 및 수직 변환 후 모든 계수는 10비트가 되어야 한다.
MTS 구성을 제어하려면, SPS 레벨에서 각각 인트라 및 인터에 대해 별도의 사용 플래그가 지정된다. MTS가 SPS에서 활성화 되면, CU 레벨 플래그가 신호를 보내 MTS가 적용되는지 여부를 나타낸다. 여기서, MTS는 루마에만 적용된다. MTS CU 레벨 플래그는 다음 조건이 충족되면 신호된다.
너비와 높이가 32보다 작거나 같음
CBF 플래그는 하나와 동일하다.
변환 유형 기본 함수(basis function) T i (j), i, j = 0, 1,..., N-1
DCT-II
Figure pct00026

여기서,
Figure pct00027
DCT-VIII
Figure pct00028
DST-VII
Figure pct00029
MTS CU 플래그가 0과 같으면 DCT2가 양방향으로 적용된다. 그러나 MTS CU 플래그가 1과 같으면 수평 및 수직 방향에 대한 변환 유형을 각각 나타내기 위해 두 개의 다른 플래그가 추가로 시그널링 된다. 표 8에 표시된 대로 변환 및 스그널링 매핑 표이다. 매트릭스 정밀도를 변환할 때 8비트 1차 변환 코어가 사용된다. 따라서, HEVC에 사용되는 모든 변환 코어는 4포인트 DCT-2 및 DST-7, 8 포인트, 16 포인트 및 32 포인트 DCT-2를 포함하여 동일하게 유지된다. 또한 64포인트 DCT-2, 4 포인트 DCT-8, 8 포인트, 16 포인트, 32 포인트 DST-7 및 DCT-8을 포함한 다른 변환 코어는 8비트 1차 변환 코어를 사용한다.
tu_mts_idx의 디코딩 된 값과 수평 및 수직 방향에 대한 대응하는 변환 매트릭스의 매핑
tu_mts_idx 빈 스트링(Bin string) tu_mts_idx 인트라/인터
수평 수직
0 0 DCT2
1 0 1 DST7 DST7
1 1 0 2 DCT8 DST7
1 1 1 0 3 DST7 DCT8
1 1 1 1 4 DCT8 DCT8
큰 크기의 DST-7 및 DCT-8의 복잡성을 줄이기 위해, 고주파 변환 계수는 32와 동일한 크기(너비 또는 높이, 또는 너비와 높이 모두)를 갖는 DST-7 및 DCT-8 블록에 대해 0이 된다. 16x16 저주파 영역 내의 계수만 유지된다. 다른 변환이 적용되는 경우 외에도 VVC는 HEVC에서 TS의 개념과 같은 변환 스킵(TS)이라는 모드도 지원한다. TS는 MTS의 특별한 경우로 처리된다.6.2 암시적 다중 변환 세트(MTS)
ISP, SBT 및 MTS를 사용하도록 설정했지만 암시적 신호는 모두 암시적 MTS로 처리된다.
이 특허 문서에서는 implicitMtsEnabled가 암시적 MTS가 활성화되어 있는지 여부를 정의하는 데 사용된다.
8.7.4 스케일링 된 변환 계수를 위한 변환 프로세스
8.7.4.1 일반
변수 implicitMtsEnabled는 다음과 같이 유도된다:
- sps_mts_enabled_flag 1과 같고 다음 조건 중 하나가 참(true)인 경우 implicitMtsEnabled는 1과 동일하게 설정된다:
- IntraSubPartitionsSplitType은 ISP_NO_SPLIT와 같지 않다.
- cu_sbt_flag는 1과 같고 Max(nTbW, nTbH)는 32보다 적거나 동일하다.
- sps_explicit_mts_intra_enabled_flag 및 sps_explicit_mts_inter_enabled_flag 모두 0과 같고 cuPredMode[xTbY][ yTbY]는 MODE_INTRA 동일하다.
- 그렇지 않으면, implicitMtsEnabled가 0과 동일하게 설정된다.
수평 변환 커널과 수직 변환 커널을 지정하는 변수 trTypeHor는 다음과 같이 유도된다:
- cIdx가 0보다 크면, trTypeHor 및 trTypeVer가 0과 동일하게 설정된다.
- 그렇지 않으면, implicitMtsEnabled가 1과 같으면, 다음이 적용된다:
- IntraSubPartitionsSplitType이 ISP_NO_SPLIT와 같지 않은 경우, trTypeHor와 trTypeVer는 intraPredMode에 의존하는 표 8-14 에서 지정된다.
- 그렇지 않으면, cu_sbt_flag 1과 같으면, trTypeHor 및 trTypeVer는 cu_sbt_horizontal_flag 및 cu_sbt_pos_flag에 의존하는 표 8-15에서 지정된다.
- 그렇지 않으면 (sps_explicit_mts_intra_enabled_flag 및 sps_explicit_mts_inter_enabled_flag이 0과 같음), trTypeHor 및 trTypeVer는 다음과 같이 유도된다:
trTypeHor = ( nTbW >= 4 && nTbW <= 16 && nTbW <= nTbH ) ? 1 : 0 (8-1030)
trTypeVer = ( nTbH >= 4 && nTbH <= 16 && nTbH <= nTbW ) ? 1 : 0 (8-1031)
- 그렇지 않으면, trTypeHor 및 trTypeVer는 tu_mts_idx[xTbY][ yTbY]에 의존하는 표 8-13에서 지정된다.
표 8-13 - tu_mts_idx[x][y] 에 의존하는 trTypeHor 및 trTypeVer의 사양
Figure pct00030
표 8-14 - cu_sbt_horizontal_flag 및 cu_sbt_pos_flag에 의존하는 trTypeHor 및 trTypeVer의 사양
Figure pct00031
7 JVET-N0193에서 제안된 감소된 2차 변환(RST)의 예
7.1 JEM에서 분리할 수 없는 2차 변환(NSST)
도 8은 JEM에서 2차 변환의 예를 보여준다. JEM에서 2차 변환은 순방향 1차 변환(forward primary transformation) 및 양자화(인코더에서)와 정량화 해제 및 역방향 1차 변환(inverse primary transformation) (디코더 측)사이에 적용된다. 도 8에 도시된 바와 같이, 4x4(또는 8x8) 2차 변환이 수행되는 것은 블록 크기에 따라 다르다. 예를 들어, 4x4 2차 변환은 작은 블록(즉, 최소(너비, 높이) < 8) 및 8x8 2차 변환에 적용되어 8x8 블록당 더 큰 블록(즉, 최소(너비, 높이) > 4)에 적용된다.
비분리 변환(non-separable transform)의 적용은 입력을 예로 사용하여 다음과 같이 설명된다. 비분리 변환을 적용하려면 4x4 입력 블록 X
Figure pct00032
는 첫째로 벡터
Figure pct00033
로 표현 된다:
Figure pct00034
비분리 변환은
Figure pct00035
로 계산되고 여기서
Figure pct00036
는 변환 계수 벡터를 나타내고 T는 16x16 변환 매트릭스이다. 16x1 계수 벡터
Figure pct00037
는 그 블록에 대한 스캐닝 순서(수평, 수직 또는 대각선)를 사용하여 4x4 블록으로 재구성된다. 더 작은 인덱스를 가진 계수는 4x4 계수 블록에서 더 작은 스캐닝 인덱스와 함께 배치된다. 총 35개의 변환 세트가 있으며 변환 세트당 3개의 비분리 환 매트릭스(커널)가 사용된다. 인트라 예측 모드에서 변환 세트로의 매핑은 미리 정의된다. 각 변환 세트에 대해 선택된 NSST(비분리형 2차 변환) 후보는 명시적으로 시그널링된 2차 변환 인덱스에 의해 추가로 지정된다. 인덱스는 변환 계수 후 인트라 CU당 한 번 비트스트림에서 시그널링 된다.
7.2 JVET-N0193의 감소된 차 변환(Reduced Secondary Transform)(RST)
도 9는 개시된 기술의 실시예에 기초하여 감소된 2차 변환(RST)의 예를 보여준다. RST(저주파 비분리 변환(LFNST)는 JVET-K0099에 도입되었고 4변환 세트(35개의 변환 세트 대신) 매핑은 JVET-L0133도입되었다. 이 JVET-N0193에서,각각 8x8 및 4x4 블록에 16x48 및 16x16 매트릭스가 사용된다. 표기상의 편의를 위해 16x48 변환은 RST8x8로 및 16x16 변환을 RST4x4로 표시한다.
7.3 RST 의 적용
RST 의 선택은 다음과 같이 정의된다:
- 4*N 또는 N*4 블록(N<=8)의 경우, 왼쪽 상단 4Х4 CG(예를 들어, 4x4, 4x8, 8x4)에 RST4x4를 적용한다.
- 4*N 또는 N*4 블록(N>8)의 경우, RST4x4를 인접한 두 개의 왼쪽 상단 4*4 CG(예를 들어, 4x16, 16x4 등)에 두 번 적용한다.
- 다른 모든 경우, 왼쪽 상단 4x4 CG와 계수가 모두 0인 다른 두 개의 CG를 생성하기 위하여 왼쪽 상단 3개의 4x4 CG에 2차 변환을 적용한다.
8 서브블록 변환의 예
cu_cbf 1과 동일한 상호 예측된 CU의 경우, cu_sbt_flag 전체 잔차 블록 또는 잔차 블록의 서브 부분이 디코딩되는지 여부를 나타내도록 시그널링 될 수 있다. 이전의 경우, MTS 간 정보는 CU의 변환 유형을 결정하기 위해 더 파싱 된다. 후자의 경우 잔차 블록의 일부가 유추된 적응형 변환으로 코딩되고 잔차 블록의 다른 부분이 제로 아웃 된다. SBT는 결합된 인터트라 모드에 적용되지 않는다.
도 10은 서브블록 변환 모드 SBT-V 및 SBT-H의 예를 보여준다. 서브블록 변환에서 위치에 의존하는 변환은 SBT-V 및 SBT-H(항상 DCT-2를 사용하는 크로마 TB)의 루마 변환 블록에 적용된다. SBT-H와 SBT-V의 두 위치는 서로 다른 코어 변환과 연관된다. 보다 구체적으로, 각 SBT 위치에 대한 수평 및 수직 변환은 도 10에 명시된다. 예를 들어, SBT-V 위치 0의 수평 및 수직 변환은 각각 DCT-8 및 DST-7이다. 잔차 TU의 한쪽면이 32보다 크면 해당 변환이 DCT-2로 설정된다. 따라서, 서브블록 변환은 TU 타일링, cbf 및 수평 및 수직 변환을 잔차 블록의 공동으로 지정하고, 이는 블록의 주요 잔차가 블록의 한쪽에 있는 경우의 신택스 지름길(syntax shortcut)로 간주될 수 있다.
9 JVET-N0054에서 조인트 크로마 잔차 코딩의 예
Cb 와 Cr 잔차가 서로 반비례하는 것처럼 보이므로, 이 현상을 활용하고 크로도 잔차물의 조인트 코딩 모드를 도입하는 것이 제안된다. 이 모드에서는 변환 장치의 두 크로도 블록에 대해 표시된 단일 잔차가 있다. 표시된 잔차는 제1 채널(일반적으로 Cb를 나타내는)의 예측 블록에 추가되고 제2 채널(일반적으로 Cr을 나타내는)의 예측 블록에서 공제된다.
공동 잔차 모드(joint residual mode)는 Cb와 Cr 모두에 대한 코딩된 블록 플래그(cbf)가 참(true)인 경우 비트스트림에 플래그로 표시된다. 모드가 활성화되면 단일 잔차 블록이 디코딩된다. 조인트 잔차 블록의 비트스트림 구문 및 디코딩 프로세스는 VTM-4의 Cb 잔차를 따른다. Cr 블록의 잔차는 디코딩된 조인트 잔차를 무효화 하여 생성된다. 단일 잔차가 두 개의 블록록의 잔차를 나타내는 데 사용되므로, 이 모드가 크로마 잔차의 분리 코딩에 사용되는 것보다 낮은 QP를 사용하는 것이 바람직할 수 있다. CE 테스트에서 -1의 크로마 QP 오프셋은 조인트 모드에 사용되었고 +1은 별도의 크로마 코딩에 사용되었다(JVET 공통 테스트 조건에 명시된 대로).
10 JVET-N0236의 예
이 기여는 광학 흐름으로 서브블록 기반 아핀 모션 보상 예측을 구체화하는 방법을 제안한다. 서브블록 기반 아핀 모션 보상이 수행된 후, 예측 샘플은 광학 흐름(PROF)을 사용하여 예측 정제라고 하는 광학 흐름 식(optical flow equation)에 의해 유도된 차이를 추가하여 정제된다. 제안된 방법는 메모리 액세스 대역폭을 증가하지 않고도 픽셀 레벨 세분성으로 인터 예측을 달성할 수 있다.
모션 보상의 세분성을 달성하기 위해, 이 기여는 광학 흐름으로 예측을 보상하는 서브블록 기반 아핀 모션을 정제하는 방법을 제안한다. 서브블록 기반 아핀 모션 보상이 수행된 후, 루마 예측 샘플은 광학 흐름 식에 의해 유도된 차이를 추가하여 정제된다. 제안된 PROF(광학 흐름으로 예측 정제)는 다음 4단계로 설명된다.
1단계) 서브블록 기반 아핀 모션 보상은 서브블록 예측 I(i,j)를 생성하기 위해 수행된다.
2단계) 서브블록 예측의 공간 그레디언트 g x (i,j)g y (i,j)은 3탭 필터[-1, 0, 1]를 사용하여 각 샘플 위치에서 계산된다.
g x (i,j)=I(i+1,j)-I(i-1,j)
g y (i,j)=I(i,j+1)-I(i,j-1)
도 11은 서브블록 MV VSB및 픽셀
Figure pct00038
의 예를 보여준다. 그 서브블록 예측이 그레디언트 계산을 위해 각 면에서 1픽셀씩 확장되는 예를 보여준다. 메모리 대역폭과 복잡성을 줄이기 위해, 확장된 테두리의 픽셀은 레퍼런스 픽처에서 가장 가까운 정수 픽셀 위치에서 복사된다. 따라서, 패딩 영역(padding region)에 대한 추가 보간을 피할 수 있다.
3단계) 루마 예측 정제(
Figure pct00039
로 표시됨)는 광학 흐름 식에 의해 계산된다.
Figure pct00040
여기서 델타 MV(
Figure pct00041
로 표시됨)는 도 11에 도시된 바와 같이, v(i,j)로 표시되는 샘플 위치(i,j)에 대해 계산된 픽셀 MV와 픽셀 (i,j)가 속하는 서브블록의 MV사이의 차이이다.
아핀 모델 파라미터와 서브블록 중심에 대한 픽셀 위치는 서브블록에서 서브블록으로 변경되지 않으므로,
Figure pct00042
는 제1 서브블록에 대해 계산될 수 있고 동일한 CU의 다른 서브블록에 대해 재사용될 수 있다. x 및 y를 픽셀 위치에서 서브 블록의 중심까지의 수평 및 수직 오프셋이라고 하면,
Figure pct00043
는 다음 방정식에 의해 유도될 수 있다,
Figure pct00044
4파라미터 아핀 모델의 경우
Figure pct00045
6 파라미터 아핀 모델의 경우
Figure pct00046
여기서, (v0x,v0y), (v1x,v1y), (v2x,v2y)는 왼쪽 상단, 오른쪽 상단 및 왼쪽 하단 제어점 모션 벡터이고, w와 h는 CU의 너비 및 높이다.
단계 4) 마지막으로, 루마 예측 구체화가 서브블록 예측 I(i,j)에 추가된다. 최종 예측I'는 다음 식으로 생성된다:
Figure pct00047
11 기존 구현의 단점
일부 기존 구현(예를 들어, 현재 VVC/VTM 디블로킹 설계)에서 다음과 같은 문제가 발생한다.
(1) BDOF는 각 예측 샘플을 정제한다. 따라서, 디블로킹 프로세스에서 다시 필터링할 필요가 없을 수 있다.
(2) CIIP 코딩된 블록은 여전히 *?*인트라 예측 프로세스를 수행해야 하는 동안 디블로킹 필터 프로세스에서 인터 예측 모드로 처리된다.
12 디블로킹 필터링(DB)의 개선을 위한 모범적인 방법
현재 개시된 기술의 실시예는 기존 구현의 단점을 극복하고, 따라서 더 높은 코딩 효율성을 가진 비디오 코딩을 제공한다. 개시된 기술에 기초하여 디블로킹 필터링(DB)의 개선은 기존 및 향후 비디오 코딩 표준을 모두 향상시킬 수 있으며, 다양한 구현에 대해 설명된 다음 예제에서 설명된다. 아래에 제공된 개시된 기술의 예는 일반적인 개념을 설명하고 제한으로 해석되지 않는다. 예를 들어, 반대로 명시적으로 표시되지 않는 한, 이러한 예에 기재된 다양한 특징이 결합될 수 있다.
개시된 기술의 일부 실시예에서, 여러 가지 방법으로 디블로킹 필터(DB) 프로세스를 수정할 것을 제안된다. 그러나, 이 문서에 제시된 방법은 다른 종류의 인루프 필터링 방법(예를 들어, SAO, ALF) 및 사후 재구성 필터(예를 들어, 예를 들어, 이중층 필터, 확산 필터, 디블로킹 필터 이전에 예측 신호 또는 재구성 신호에 적용되는 하다마르드 변환(Hadamard transform) 도메인 필터)에 적용될 수 있다는 점에 유의해야 한다.
크로마 컴포넌트는 RGB 형식의 Cb/Cr 컬러 컴포넌트 또는 B/R 컬러 컴포넌트를 나타낼 수 있음에 유의해야 한다. 다음 설명에서는 'Cb/Cr'을 예를 들어 설명한다.
1. DB 및/또는 DB 프로세스에서 필터링을 적용하는 방법은 BDOF 및/또는 광학 흐름을 사용하여 모션/예측 샘플/재구성 샘플을 구체화하는 다른 코딩 툴의 사용에 따라 달라질 수 있다.
(a) 하나의 예에서, BDOF 코딩된 블록 내에 있는 샘플의 경우 DB를 적용할 필요가 없다.
(b) 대안적으로, 경계 강도/필터 강도는 BDOF의 사용에 따라 달라질 수 있다.
(i) BDOF 코딩 블록 내에 위치한 샘플의 경우 약한 필터가 적용될 수 있다.
2. DB 및/또는 DB 프로세스에서 필터링을 적용하는 방법은 변환 매트릭스 유형(예를 들어, DCT-II, DST-VII, DCT-VIII, 변환 스킵 모드(식별 매트릭스 포함), RDPCM / QR-BDPCM 모드와 같이 변환을 적용하지 않는 코딩 방법)에 따라 달라질 수 있다.
(a) 하나의 예에서, 특정 변환 유형(예를 들어, 변환 코드 블록)으로 코딩된 블록에 샘플이 필터링될 수 있도록 위치 의존 클리핑이 비활성화될 수 있다.
(i) 또한 필터링할 모든 샘플은 동일한 클리핑 파라미터를 사용한다.
(b) 하나의 예에서, 위치 의존 클리핑 파라미터는 해당 블록에 적용된 변환 매트릭스에 기초하여 달라질 수 있다.
(c) 하나의 예에서, DB는 RDPCM 모드와 같이 변환을 적용하지 않는 변환 스킵 모드 또는 코딩 방법의 블록에서 수행되지 않을 수 있다.
3. 클리핑 작업 및/또는 위치 의존 클리핑은 다음을 기반으로 비활성화될 수 있다:
(a) 비디오 컨텐츠(예를 들어, 화면 컨텐츠 또는 자연 컨텐츠)
(b) SPS/VPS/PPS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/최대 코딩 유닛(LCU)/LCU 행/LcU 그룹에서 시그널링 된 메시지
4. DB를 활성화할지 또는 DB 프로세스에서 필터링을 적용하는 방법은 결합된 인트라-인터 예측(CIIP)의 사용에 따라 달라질 수 있다.
(a) 하나의 예에서, CIIP 코딩된 블록은 인트라 코딩 된 블록과 유사하게 처리 될 수 있다.
(b) 하나의 예에서, 가장자리를 가로지르는 두 개의 블록록 중 하나 이상이 CIIP 모드로 코딩되면 경계 강도가 2로 설정된다.
(c) 또는 가장자리를 가로지르는 두 개의 블록록 중 하나만 CIIP 모드로 코딩되고 다른 블록이 인터코딩되면 경계 강도가 1로 설정된다.
(d) 또는 가장자리를 가로지르는 두 개의 블록록 중 하나만 CIIP 모드로 코딩되고 다른 블록이 인터 또는 IBC 코딩되면 경계 강도가 1로 설정된다.
5. IBC 코딩 된 블록의 경계 강도(boundary strength)(BS)는 모션 벡터 차이로부터 독립적 일 수 있다.
(a) 하나의 예에서, 인접한 블록이 모두 IBC 코딩된 경우, 경계 강도는 MV 차이에 관계없이 MV 차이에 관계없이 M(예를 들어, M=0/1/2)으로 설정되고 0이 아닌 계수가 있는지 여부에 관계없이 설정된다.
(b) 대안적으로, BS는 수평 및/또는 수직 MV 차이가 M0/M1-펠(pels)(M>1)보다 큰지에 의존한다.
(i) 하나의 예에서, M0과 M1은 모두 4로 설정된다.
(ii) 하나의 예에서, M0은 수평 컴포넌트의 MV 차이에 대한 최소 CU 너비로 설정되고, M1은 수평 컴포넌트의 MV 차이에 대한 최소 CU 높이로 설정된다.
(iii) 하나의 예에서, M0은 수평 성분의 MV 차이에 대해 허용되는 최소 IBC 코딩 CU 너비로 설정되고, M1은 수평 성분의 MV 차이에 대해 허용되는 최소 IBC 코딩 CU 높이로 설정된다.
(c) 대안적으로, DB는 두 개의 IBC 코딩 된 블록 사이의 경계에 적용되지 않을 수 있다.
(d) 대안적으로, DB는 IBC 코딩 블록의 샘플에 적용되지 않을 수 있다.
6. P측 또는 Q측의 경계 강도(BS) 값이 상이할 수 있다.
(a) 하나의 예에서, P 측 또는 Q 측의 블록은 자체 경계 강도를 가질 수 있다. P측 및 Q측에서 수행되는 디블로킹은 P측 및 Q측의 BS 값을 각각 기반으로 할 수 있다.
(i) 하나의 예에서, P측의 블록이 인트라 블록이고 Q측의 블록이 RDPCM 코드 블록인 경우, 디블로킹 조건은 P 측에서 검사할 수 있으며 디블로킹 조건은 P측에서만 수행될 수 있다.
(ii) 하나의 예에서, P 측 및 Q 측에 대한 BS는 양측의 QP에 의존할 수 있다.
(iii) 하나의 예에서, P 측 및 Q 측에 대한 BS는 양면에서 사용되는 LMCS 계수에 의존할 수 있다.
7. RDPCM 코딩 블록은 디블로킹의 인트라 블록으로 처리될 수 있다.
(a) 하나의 예에서, RDPCM 코딩 블록이 P 측 및/또는 Q 측에 있는 경우 경계 강도(BS) 값이 1 또는 2로 설정될 수 있다.
8. 삼각형 모드 코딩 블록의 대각선 가장자리가 디블로킹 될 수 있다.
(a) 하나의 예에서, 현재 VVC의 디블로킹 필터 및/또는 디블로킹 제어 논리도 삼각형 모드 코딩 블록의 대각선 가장자리에 적용될 수 있다.
9.
(a) 하나의 예에서, 팔레트 코딩 블록이 Q 측에 있고 팔레트 모드에서 코딩되지 않은 블록이 P 측에 있는 경우, 디블로킹을 P 측에 적용할 수 있다.
(b) 하나의 예에서, 팔레트 코딩 블록이 P 측에 있고 팔레트 모드에서 코딩되지 않은 블록이 Q 측에 있는 경우, 디블로킹을 Q 측에 적용할 수 있다.
(c) 하나의 예에서, P측과 Q측이 모두 팔레트 코딩 된 블록인 경우, 디블로킹이 양쪽에 적용되지 않을 수 있다.
예 10. DMVR 또는 기타 디코더 사이드 모션 개선 코딩 툴로 코딩된 블록 1개 내의 서브 영역은 서브블록 경계로 처리될 수 있으며 필터링될 수 있다.
(a) 하나의 예에서, 서브 영역은 모션 벡터 구체화가 적용되는 서브 유닛으로 정의된다.
(i) 하나의 예에서, 서브 영역은 DMVR 코딩 블록 내에서 MxN 서브블록으로 정의되며, 여기서 M 및 N은 64 또는 16으로 설정될 수 있다.
예 11. DB 및/또는 DB 프로세스에서 필터링을 적용하는 방법은 2차 변환(일명 NSST 또는 RST 또는 LFNST)이 적용되는지 여부에 따라 달라질 수 있다.
(a) 하나의 예에서, RST가 적용되는 서브 영역의 경계는 변환 블록 경계 또는 코딩 서브블록 경계로 처리될 수 있다.
(i) 대안적으로, RST 적용 서브 영역에 위치한 샘플도 필터링 될 수 있다.
(ii) 대안적으로, RST 적용 서브 영역에 대해 위치 의존 클리핑이 비활성화될 수 있다.
예 12. 아핀 모드 블록 내의 서브블록 경계(예를 들어, 내부 서브블록 경계) 상에 디블로킹이 수행되는지 여부는 인터위브 예측(interweave prediction) 및/또는 위상-변이 아핀 서브블록 모션 보상이 블록에 적용되는지 여부에 의존한다.
하나의 예에서, 디블로킹은 블록에 적용된 예측 및/및 PROF 및/및 위상 변종 아핀 서브블록 모션 보상을 삽입할 때 비활성화될 수 있다.
하나의 예에서, 디블로킹은 상호 연관된 예측 또는/및 PROF 및/및 위상 변종 아핀 서브블록 모션 보상이 블록에 적용되지 않을 때 활성화될 수 있다.
도 12는 개시된 기술의 일부 실시예에 기초하여 비디오 처리를 위한 예제 방법(1200)의 순서도를 나타낸다. 비디오 처리 방법(1200)은, 단계(1210)에서, 비디오 블록(video block)과 비디오 블록의 비트스트림 표현(bitstream representation) 사이의 변환에 적용가능한 코딩 방식(coding scheme)의 결정을 수행하는 단계, 단계(1220)에서, 코딩 방식의 결정에 기초하여, 디블로킹 필터(DB) 프로세스(deblocking filter (DB) process), 샘플 적응형 오프셋(sample adaptive offset)(SAO) 및 적응형 루프 필터링(adaptive loop filtering)(ALF) 중 적어도 하나를 포함하는 인루프 필터링 프로세스(in-loop filtering process)의 모드를 결정하는 단계, 및, 단계(1230)에서, 인루프 필터링 모드를 사용하여 변환을 수행하는 단계를 포함한다. 비디오 처리 방법(1200)과 관련된 추가 특징은 위에서 설명한 예제 1, 예제 2, 예제 3, 예제 11에서 찾을 수 있다.
도 13은 개시된 기술의 일부 실시예에 기초하여 비디오 처리를 위한 또 다른 예제 방법(1300)의 순서도를 나타낸다. 비디오 처리 방법(1300)은, 단계(1310)에서, 결합된 인트라-인터 예측(CIIP) 코딩(combined intra-inter prediction (CIIP) coding)이 현재 블록(current block)에 적용가능하다는 것을 결정하는 단계, 및, 단계(1320)에서, 현재 블록과 현재 블록의 비트스트림 표현 사이의 변환을 수행하는 단계, 및, CIIP의 사용에 기초하여, 블록과 수직 및 수평 가장자리 사이의 경계를 식별하고; 경계 강도를 계산하고; 필터를 켜거나 끌지 여부를 결정(deciding)하고; 필터의 강도를 선택함:으로써 디블로킹 필터(DB) 프로세스를 수행하는 단계를 포함한다. 비디오 처리를 위한 방법(1300)와 관련된 추가 기능은 위에서 설명한 예제 4에서 찾을 수 있다.
도 14는 개시된 기술의 일부 실시예에 기초하여 비디오 처리를 위한 또 다른 예제 방법(1400)의 순서도를 나타낸다. 비디오 처리 방법(1400)은, 단계(1410)에서, 인접한 블록이 모두 코딩 된 인트라 블록 복사(intra block copy)(IBC)인지 여부를 결정하는 단계, 및, 단계(1420)에서, 결정에 기초하여, 블록과 수직 및 수평 가장자리 사이의 경계를 식별하고, 경계 강도를 계산하고, 필터를 켜거나 끌지 여부를 결정(deciding)하고, 필터의 강도를 선택함으로써 디블로킹 필터(DB) 프로세스를 수행하는 단계를 포함한다. 경계 강도는 모션 벡터 차이와 무관한다. 비디오 처리를 위한 방법(1400)와 관련된 추가 기능은 위에서 설명한 예제 5에서 찾을 수 있다.
도 15는 개시된 기술의 일부 실시예에 기초하여 비디오 처리를 위한 또 다른 예제 방법(1500)의 순서도를 나타낸다. 비디오 처리 방법(1500)은, 단계(1510)에서, P 측 및 Q 측에서 경계 강도를 결정하는 단계, 및, 단계(1520)에서, 결정에 기초하여, 블록과 수직 및 수평 가장자리 사이의 경계를 식별하고, 경계 강도를 계산하고, 필터를 켜거나 끌지 여부를 결정(deciding)하고, 필터의 강도를 선택함으로써 P 측 및 Q 측에서 디블로킹 필터(DB) 프로세스를 수행하는 단계를 포함한다. 비디오 처리를 위한 방법(1500)와 관련된 추가 특징은 위에서 설명한 예제 6에서 찾을 수 있다.
도 16은 개시된 기술의 일부 실시예에 기초하여 비디오 처리를 위한 또 다른 예제 방법(1600)의 순서도를 나타낸다. 비디오 처리 방법(1600)은, 단계(1610)에서, 잔차 차동 펄스 코드 변조(residue differential pulse-code modulation)(RDPCM) 코딩 블록을 결정하는 단계, 및, 단계(1620)에서, 결정에 기초하여, 블록과 수직 및 수평 가장자리 사이의 경계를 식별하고, 경계 강도를 계산하고, 필터를 켜거나 끌지 여부를 결정(deciding)하고, 필터의 강도를 선택함으로써 P 측 및 Q 측에서 디블로킹 필터(DB) 프로세스를 수행하는 단계를 포함한다. RDPCM 코딩 블록은 디블로킹 필터(DB) 프로세스에서 인트라 블록으로 처리된다. 비디오 처리를 위한 방법(1600)와 관련된 추가 특징은 위에서 설명한 예제 7에서 찾을 수 있다.
도 17은 개시된 기술의 일부 실시예에 기초하여 비디오 처리를 위한 또 다른 예제 방법(1700)의 순서도를 나타낸다. 비디오 처리 방법(1700)은, 단계(1710)에서, 삼각형 모드 코딩 블록(triangle mode coded block)에서 대각선 가장자리를 결정하는 단계, 단계(1720)에서, 결정에 기초하여, 블록과 수직 및 수평 가장자리 사이의 경계를 식별하고, 경계 강도를 계산하고, 필터를 켜거나 끌지 여부를 결정(deciding)하고, 필터의 강도를 선택함으로써 대각선 가장자리 상의 디블로킹 필터(DB) 프로세스를 수행하는 단계를 포함한다. 비디오 처리를 위한 방법(1700)와 관련된 추가 특징은 위에서 설명한 예제 8에서 찾을 수 있다.
도.18은 개시된 기술의 일부 실시예에 기초하여 비디오 처리를 위한 또 다른 예제 방법(1800)의 순서도를 나타낸다. 비디오 처리 방법(1800)은, 단계(1810)에서, 팔레트 코딩 블록(palette coded block)이 P 측 또는 Q 측에 있는지 여부를 결정하는 단계, 단계(1820)에서, 결정에 기초하여, 블록과 수직 및 수평 가장자리 사이의 경계를 식별하고, 경계 강도를 계산하고, 필터를 켜거나 끌지 여부를 결정(deciding)하고, 필터의 강도를 선택함으로써 대각선 가장자리 상의 디블로킹 필터(DB) 프로세스를 수행하는 단계를 포함한다. 디블로킹 필터(DB) 프로세스는 팔레트 코딩 블록이 P 측 또는 Q측에 있는 경우 일측에 적용된다. 비디오 처리 방법(1800)과 관련된 추가 특징은 위에서 설명한 예제 9에서 찾을 수 있다.
도 19는 개시된 기술의 일부 실시예에 기초하여 비디오 처리를 위한 또 다른 예제 방법(1900)의 순서도를 나타낸다. 비디오 처리 방법(1900)은, 단계(1910)에서, 디코더 측 모션 벡터 정제(decoder-side motion vector refinement)(DMVR) 또는 기타 디코더 측 모션 정제 코딩 툴(decoder side motion refinement coding tool)로 코딩된 한 블록 내의 서브 영역을 결정하는 단계, 및, 단계(1920)에서, 결정에 기초하여, 블록과 수직 및 수평 가장자리 사이의 경계를 식별하고, 경계 강도를 계산하고, 필터를 켜거나 끌지 여부를 결정(deciding)하고, 필터의 강도를 선택함으로써 서브 영역(sub-region) 상의 디블로킹 필터(DB) 프로세스를 수행하는 단계를 포함한다.. 비디오 처리 방법(1900)과 관련된 추가 특징은 위에서 설명한 예제 10에서 찾을 수 있다.
도 20는 비디오 처리 장치(video processing apparatus)(1400)의 블록도이다. 장치(2000)는 여기에 설명된 하나 이상의 방법을 구현하는 데 사용될 수 있다. 장치(2000)는 스마트 폰, 태블릿, 컴퓨터, 사물 인터넷(IoT) 수신기 등으로 구현될 수 있다. 상기 장치(2000)는 하나 이상의 프로세서(processor)(2002), 하나 이상의 메모리(memory)(2004) 및 비디오 처리 하드웨어(video processing hardware)(2006)를 포함할 수 있다. 프로세서(들)(2002)는 본 문서에 기재된 하나 이상의 방법(방법(1200 내지 1900)을 포함하되 이에 국한되지 않음)을 구현하도록 구성될 수 있다. 메모리(메모리들)(2004)는 여기에 설명된 방법 및 기술을 구현하는 데 사용되는 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 처리 회로(video processing circuitry)(2006)은 하드웨어 회로에서 본 문서에 설명된 일부 기술을 구현하는 데 사용될 수 있다.
일부 실시예에서, 비디오 코딩 방법은 도 20과 관련하여 설명된 바와 같이 하드웨어 플랫폼 상에서 구현되는 장치를 사용하여 구현될 수 있다.
도 21은 여기에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 처리 시스템(video processing system)(2100)을 도시하는 블록도이다. 다양한 구현에는 시스템(2100)의 컴포넌트의 일부 또는 전부가 포함될 수 있다. 시스템(2100)은 비디오 컨텐츠를 수신하기 위한 입력(input)(2102)을 포함할 수 있다. 비디오 컨텐츠는 원시(raw) 또는 압축되지 않은 형식(예를 들어, 8 또는 10비트 다중 컴포넌트 픽셀 값)으로 수신될 수 있고 또는 압축 또는 인코딩 된 형식이 될 수 있다. 입력(2102)은 네트워크 인터페이스(network interface), 주변 버스 인터페이스(peripheral bus interface) 또는 스토리지 인터페이스(storage interface)를 나타낼 수 있다. 네트워크 인터페이스(network interface)의 예로는 이더넷(Ethernet), 수동 광 네트워크(PON) 등과 같은 유선 인터페이스와 와이파이(Wi-Fi) 또는 셀룰러 인터페이스와 같은 무선 인터페이스가 있다.
시스템(2100)은 본 문서에 기재된 다양한 코딩 또는 인코딩 방법을 구현할 수 있는 코딩 컴포넌트(coding component)(2104)을 포함할 수 있다. 코딩 컴포넌트(2104)는 비디오의 코딩된 표현을 생성하기 위해 입력(2102)에서 코딩 컴포넌트(2104)의 출력으로 비디오의 평균 비트레이트를 감소시킬 수 있다. 따라서 코딩 기술(coding technique)을 비디오 압축(video compression) 또는 비디오 트랜스코딩 기술(video transcoding technique)이라고도 한다. 코딩 컴포넌트(2104)의 출력은 컴포넌트(2106)로 표현되는 바와 같이 연결된 통신을 통해 저장되거나 전송될 수 있다. 입력(2102)에서 수신된 비디오의 저장 또는 통신 비트스트림(또는 코딩 된) 표현은 디스플레이 인터페이스(display interface)(2110)로 전송되는 픽셀 값 또는 디스플레이 가능한 비디오를 생성하기 위해 컴포넌트(2108)에 의해 사용될 수 있다. 비트스트림 표현에서 사용자가 볼 수 있는 비디오를 생성하는 프로세스를 비디오 압축해제(video decompression)라고도 한다. 또한, 특정 비디오 처리 작업을 "코딩" 작업 또는 툴로 지칭하지만 코딩 툴 또는 작업이 인코더에서 사용되고 코딩 결과를 되돌리는 대응하는 디코딩 툴 또는 작업이 디코더에 의해 수행된다는 점을 이해할 것이다.
주변 버스 인터페이스 또는 디스플레이 인터페이스의 예로는 범용 직렬 버스(Universal Serial Bus)(USB) 또는 고화질 멀티미디어 인터페이스 (High Definition Multimedia Interface)(HDMI) 또는 디스플레이포트(Displayport) 등이 포함될 수 있다. 스토리지 인터페이스의 예로는 SATA(직렬 첨단 기술 첨부 파일 (Serial Advanced Technology Attachment)), PCI, IDE 인터페이스 등이 있다. 본 문서에 기재된 기술은 휴대전화, 노트북, 스마트폰 또는 디지털 데이터 처리 및/또는 비디오 디스플레이를 수행할 수 있는 기타 장치와 같은 다양한 전자 기기에 구현될 수 있다.
도 22는 영상 미디어 처리를 위한 예제 방법의 순서도를 나타낸다. 이 순서도의 단계는 이 문서의 섹션 12절의 예 4와 관련하여 설명된다. 단계(2202)에서, 프로세스는 두 개의 비디오 블록의 수직 에지 및/또는 수평 에지에서 경계를 식별한다. 단계(2204)에서, 프로세스는 수직 가장자리를 가로지르는 두 개의 비디오 블록 중 적어도 하나를 기반으로 필터의 경계 강도를 계산하거나 또는 수평 가장자리는 결합된 인트라-인터 예측(CIIP) 모드를 사용하여 코딩된다. 단계(2206)에서, 프로세스는 필터를 켜거나 끌지 여부를 결정(decide)한다. 단계(2208)에서, 필터가 켜져 있는 경우 필터의 강도를 선택한다. 단계(2210)에서, 프로세스는, 선택하는 단계에 기초하여, 비디오 블록에 대한 디블로킹 필터(DB) 프로세스를 수행한다.
도 23은 영상 미디어 처리를 위한 예제 방법의 순서도를 보여준다. 이 순서도의 단계는 이 문서의 섹션 12의 예 1과 관련하여 설명한다. 단계(2302)에서, 영상 미디어 데이터의 비디오 블록과 비디오 블록의 비트스트림 표현 사이의 변환에 적용가능한 코딩 방식의 결정을 내린다. 단계(2304)에서, 코딩 방식의 결정에 기초하여, 프로세스는 비디오 블록을 변환하는 동안 비디오 블록에 인루프 필터의 적용을 선택적으로 활성화하거나 비활성화한다.
도 24는 영상 미디어 처리를 위한 예제 방법의 순서도를 나타낸다. 이 순서도의 단계는 이 문서의 섹션 12의 예 2와 관련하여 설명한다. 단계(2402)에서, 프로세스는 영상 미디어 데이터의 비디오 블록과 비디오 블록의 비트스트림 표현 사이의 변환에 적용가능한 변환 매트릭스 유형의 결정을 내린다. 단계(2404)에서, 변환 매트릭스 유형의 결정에 기초하여, 프로세스는 비디오 블록의 변환 동안 비디오 블록에 디블로킹 (DB) 필터 프로세스의 적용을 선택적으로 활성화하거나 비활성화한다.
도 25는 영상 미디어 처리를 위한 예제 방법의 순서도를 나타낸다. 이 순서도의 단계는 이 문서의 섹션 12의 예 3과 관련하여 설명한다.단계(2502)에서, 영상 미디어 데이터의 비디오 블록과 비디오 블록의 비트스트림 표현 사이의 변환 동안, 프로세스는 비디오 블록으로 인루프 필터링 단계의 적용을 결정하고, 여기서 인루프 필터링 단계는 필터링 될 비디오 블록의 샘플에 적용된 클리핑 작업을 포함한다. 단계(2504)에서, 비디오 블록과 연관된 하나 이상의 조건을 결정하는 데 응답하여, 프로세스는 클리핑 작업을 선택적으로 사용하거나 비활성화한다.
본 명세서에 개시된 일부 실시예는 이제 절 기반 형식으로 제시된다.
X1. 영상 미디어 처리 방법에 있어서,
두 개의 비디오 블록의 수직 가장자리(vertical edge) 및/또는 수평 가장자리(horizontal edge)에서 경계를 식별하는 단계;
수직 가장자리 또는 수평 가장자리를 가로지르는 결합된 인트라-인터 예측(combined intra-inter prediction)(CIIP) 모드를 사용하여 코딩 된 두 개의 비디오 블록 중 하나 이상에 기초하여 필터의 경계 강도(boundary strength)를 계산하는 단계;
필터를 켜거나 끌지 여부를 결정(deciding)하는 단계;
필터가 켜져 있는 경우 필터의 강도를 선택하는 단계; 및
선택하는 단계에 기초하여, 비디오 블록에 디블로킹 필터(DB) 프로세스(deblocking filter (DB) process)를 수행하는 단계를 포함한다.
X2. X1의 방법에서, CIIP 코딩 된 블록이 경계 강도를 계산하는 데 내 코딩 된 블록으로 처리된다.
X3. X1의 방법에서, 경계 강도는 수직 또는 수평 가장자리(edge)를 가로지르는 두 개의 비디오 블록(video block) 중 하나 이상이 CIIP로 코딩되는 경우 2로 선택된다.
X4. X1의 방법에서, 경계 강도는 수직 또는 수평 가장자리를 가로지르는 두 개의 블록 중 하나만 CIIP로 코딩되고 다른 비디오 블록이 인터 코딩된 경우 1로 선택된다.
X5. X1의 방법에서, 경계 강도는 가장자리를 가로지르는 두 개의 블록록 중 하나만 CIIP로 코딩되고 다른 비디오 블록은 코딩 된 인터 또는 인트라 블록 복사 (intra block copy) (IBC)인 경우 1로 선택된다.
A1. 영상 미디어 처리 방법에 있어서,
영상 미디어 데이터의 비디오 블록과 비디오 블록(video block)의 비트스트림 표현(bitstream representation) 사이의 변환에 적용가능한 코딩 방식(coding scheme)를 결정하는 단계; 및
코딩 방식의 결정에 기초하여, 비디오 블록의 변환(conversion) 동안 비디오 블록에 인루프 필터(in-loop filter)의 적용을 선택적으로 활성화하거나 비활성화하는 단계를 포함한다.
A2. A1의 방법에서, 인루프 필터는: 디블로킹 필터(DB), 샘플 적응형 오프셋(SAO) 필터, 및/또는 적응형 루프 필터(ALF) 중 하나를 포함한다.
A3. A1 내지 A2의 어느 한 방법에서, 코딩 방식은 예측 샘플(prediction sample) 및/또는 모션 정보(motion information) 및/또는 재구성된 샘플(reconstructed sample)을 정제하기 위한 광학 흐름(optical flow)의 사용을 포함한다.
A4. A3의 방법에서, 예측 샘플을 정제하기 위해 광학 흐름을 사용하는 코딩 방식은 양방향 광학 흐름(bi-directional optical flow)(BDOF)을 포함한다.
A5. A4의 방법에서, 코딩 방식의 결정은 예측 샘플이 양방향 광학 흐름(BDOF) 내에 있는지 여부를 식별하는 단계를 포함하고, 인루프 필터의 적용은 예측 샘플이 양방향 광학 흐름(BDOF) 내에 위치된다는 결정에 응답으로 비활성화된다.
A6. A5의 방법에서, 인루프 필터의 경계 강도 및/또는 필터 강도 중 적어도 하나 이상이 양방향 광학 흐름(BDOF)의 사용에 기초하여 결정된다.
A7. A4의 방법에서, 코딩 방식의 결정은 예측 샘플이 양방향 광학 흐름(BDOF) 내에 있는지 여부를 식별하는 단계를 포함하고, 인루프 필터의 적용은 예측 샘플이 양방향 광학 흐름(BDOF) 내에 위치된다는 결정에 응답으로 활성화되고, 및 추가로 인루프 필터는 BDOF 내에 위치하지 않는 예측 샘플과 연관된 다른 인루프 필터보다 약한 강도를 가진다.
B1. 영상 미디어 처리 방법에 있어서,
영상 미디어 데이터의 비디오 블록과 비디오 블록의 비트스트림 표현 사이의 변환에 적용가능한 변환 매트릭스(transform matrix)의 유형을 결정하는 단계; 및
변환 매트릭스의 유형의 결정에 기초하여, 비디오 블록을 변환하는 동안 비디오 블록에 디블로킹(DB) 필터 프로세스의 적용을 선택적으로 활성화 또는 비활성화하는 단계를 포함한다.
B2. B1의 방법에서, 변환 매트릭스의 유형은 DCT-II, DST-VII, DCT-VIII 및/또는 변환 스킵 모드를 포함한다.
B3. B1 내지 B2에서 어느 하나의 이상의 방법에서, 디블로킹 필터링 프로세스의 적용은 클리핑 작업을 더 포함한다.
B4. B3의 방법에서, 클리핑 작업은 DB 필터와 관련하여 비디오 블록내의 샘플 위치에 기초하여 위치의존이다.
B5. B4의 방법에서, 클리핑 작업은 변환 스킵 코딩 비디오 블록에 위치된 샘플에 대해 비활성화된다.
B6. B5의 방법에서, 디블로킹 필터(DB) 프로세스는 변환 스킵 코딩 블록 상에 비활성화되거나, 비디오 블록 코딩이 변환 기반 코딩 기술에서 제외된다는 결정에 따라 비활성화된다.
B7. B6의 방법에서, 변환 기반 코딩 기술은 잔차 차동 펄스 코드 변조(residue differential pulse-code modulation)(RDPCM) 또는 정량화된 잔차 차동 펄스 코드 변조(quantized residue differential pulse-code modulation)(QR-BDPCM)를 포함한다.
B8. B3의 방법에서, DB 필터 프로세스가 샘플 세트에서 활성화되면, 세트에 포함된 모든 샘플은 클리핑 작업의 동일한 파라미터를 받는다.
B9. B4의 방법에서, 위치 의존 클리핑 작업의 파라미터는 변환에 적용가능한 변환 매트릭스의 기본 함수(basis function)와 관련된다.
C1. 영상 미디어 처리 방법에 있어서,
영상 미디어 데이터의 비디오 블록과 비디오 블록의 비트스트림 표현 사이의 변환 동안, 비디오 블록에 인루프 필터링 단계(in-loop filtering step)의 적용을 결정하는 단계 - 인루프 필터링 단계는 필터링될 비디오 블록내의 샘플에 적용된 클리핑 작업(clipping operation)을 포함함 -; 및
비디오 블록과 연관된 하나 이상의 조건을 결정하는 단계에 응답하여, 클리핑 작업을 선택적으로 활성화하거나 비활성화하는 단계를 포함한다.
C2. C1의 방법에서, 비디오 블록과 연관된 하나 이상의 조건은:
(a) 비디오 블록의 컨텐츠(content), 또는
(b) 시퀀스 파라미터 세트(SPS)/비디오 파라미터 세트(VPS)/픽처 파라미터 세트(PPS)/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/최대 코딩 유닛(LCU)/LCU 행/LCU 행/LCU 그룹에 포함된 필드를 포함한다.
C3. X1 내지 C2의 어느 하나 이상의 방법에서, 변환은 비디오 블록에서 비트스트림 표현을 생성하는 단계를 포함한다.
C4. X1 내지 C2의 어느 하나 이상의 방법에서, 변환은 비트스트림 표현에서 비디오 블록의 픽셀 값을 생성하는 단계를 포함한다.
C5. X1 내지 C2의 어느 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코더 장치.
C6. X1 내지 C2의 어느 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코더 장치.
C7. 코드가 저장된 컴퓨터 판독 가능 매체로서, 코드는 X1 내지 C2의 어느 하나 이상에 인용된 방법을 구현하기 위한 프로세서 실행 가능 명령을 구현한다.
본 문서에서 "비디오 처리" 또는 "영상 미디어 처리"라는 용어는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축 해제를 의미할 수 있다. 예를 들어 비디오 압축 알고리즘은 비디오의 픽셀 표현에서 대응하는 비트스트림 표현으로 변환하는 동안 적용될 수 있거나 그 반대의 경우도 마찬가지이다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스에 의해 정의된 바와 같이 비트스트림 내의 다른 위치에 함께 배치되거나 확산되는 비트에 대응할 수 있다. 예를 들어 블록은 변환 및 코딩된 오류 잔차 값과 비트스트림의 헤더 및 기타 필드에 비트를 사용하여 인코딩될 수 있다. 본 명세서에서, 블록은 코딩 유닛, 또는 예측 유닛 또는 변환 유닛 등과 같이 수행된 작업에 따른 픽셀의 그룹화일 수 있다. 또한, 변환 동안 디코더는 위의 솔루션에서 설명된 바와 같이 결정에 기초하여 일부 필드가 존재하거나 없을 수 있다는 지식으로 비트스트림을 파싱할 수 있다. 유사하게, 인코더는 특정 신택스 필드가 포함되는지 여부를 결정할 수 있고, 이에 따라 코딩된 표현으로부터 신택스 필드를 포함하거나 제외함으로써 코딩된 표현을 생성할 수 있다.
상기로부터, 현재 개시된 기술의 구체적인 실시예는 일러스트레이션의 목적을 위해 본원에 기재되어 있으나, 본 발명의 범위에서 벗어나지 않고 다양한 수정이 이루어질 수 있다는 점을 평가할 것이다. 이에 따라, 현재 개시된 기술은 추가된 청구에 의한 경우를 제외하고는 한정되지 않는다.
본 특허 문서에 기재된 주제의 구현 및 기능적 작업은 본 사양 및 구조상 등가물 또는 그 중 하나 이상의 조합으로 다양한 시스템, 디지털 전자 회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있다. 본 명세서에 기재된 주제의 구현은 하나 이상의 컴퓨터 프로그램 제품, 즉, 데이터 처리 장치의 작동을 제어하기 위해 실물 및 비일시적 컴퓨터 판독 가능한 매체에 인코딩 된 컴퓨터 프로그램 지침의 하나 이상의 모듈로 구현될 수 있다. 컴퓨터가 읽을 수 있는 매체는 기계가 읽을 수 있는 스토리지 장치, 기계가 읽을 수 있는 스토리지 기판, 메모리 장치, 기계가 읽을 수 있는 전파 신호에 영향을 미치는 물질의 조성 또는 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치" 또는 "데이터 처리 장치"는 예를 들어 프로그래밍 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 장치, 장치 및 기계를 포함한다. 이 장치에는 대응하는 컴퓨터 프로그램에 대한 실행 환경을 만드는 코드(예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 하나 이상의 조합)가 포함될 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은 컴파일 된 언어를 비롯한 모든 형태의 프로그래밍 언어로 작성할 수 있으며 독립 실행형 프로그램 또는 컴퓨팅 환경에서 사용하기에 적합한 모듈, 컴포넌트, 서브루틴 또는 기타 유닛으로 모든 형태로 배포할 수 있다. 컴퓨터 프로그램이 파일 시스템의 파일에 반드시 해당하는 것은 아니다. 프로그램은 다른 프로그램 이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트), 대응하는 프로그램에 전념하는 단일 파일 또는 여러 조정된 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 일부를 저장하는 파일)에 저장할 수 있다. 컴퓨터 프로그램은 한 컴퓨터 또는 한 사이트에 위치하거나 여러 사이트에 분산되고 통신 네트워크에 의해 상호 연결된 여러 컴퓨터에서 실행하도록 배포할 수 있다.
이 사양에 설명된 프로세스 및 논리 흐름은 하나 이상의 프로그래밍 가능한 프로세서가 하나 이상의 프로그래밍 가능한 프로세서에서 수행하여 입력 데이터에서 작동하고 출력을 생성하여 기능을 수행할 수 있다. 프로세스 및 로직 흐름도 수행될 수 있으며, 장치는 특수 목적 논리 회로, 예를 들어, FPGA(필드 프로그래밍 가능한 게이트 어레이) 또는 ASIC(애플리케이션 별 집적 회로)로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서에는 예를 들어, 일반 및 특수 목적 마이크로프로세서와 모든 종류의 디지털 컴퓨터의 하나 이상의 프로세서가 포함된다. 일반적으로 프로세서는 읽기 전용 메모리 또는 임의 액세스 메모리 또는 둘 다에서 지침과 데이터를 받게 된다. 컴퓨터의 필수 요소는 지침과 데이터를 저장하기 위한 하나 이상의 메모리 장치를 수행하기 위한 프로세서이다. 일반적으로 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대량 저장 장치(예를 들어, 자기, 마그네토 광학 디스크 또는 광학 디스크)에서 데이터를 수신하거나 전송하기 위해 작동적으로 결합되거나 결합된다. 그러나 컴퓨터에 이러한 장치가 필요하지 않는다. 컴퓨터 프로그램 지침 및 데이터를 저장하는 데 적합한 컴퓨터 판독 가능한 미디어에는 반도체 메모리 장치(예를 들어, EPROM, EEPROM 및 플래시 메모리 장치)를 비롯한 모든 형태의 비휘발성 메모리, 미디어 및 메모리 장치가 포함된다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보충되거나 통합될 수 있다.
이 사양은 도면과 함께 예시적인 예로 간주되며, 예시적인 예시가 예를 의미한다. 본 명세서에서 사용되는 바와 같이, 단수 형태 "하나(a)", "한(an)" 및 "그(the)"는 문맥이 명확하게 달리 나타내지 않는 한 복수 형태도 포함시키기 위한 것이다. 또한 컨텍스트가 달리 명확하게 나타내지 않는 한 "또는"을 사용하려면 "및/또는"을 포함하기 위한 것이다.
본 특허문서에는 여러 가지 구체적인 내용이 포함되어 있지만, 이는 발명의 범위 나 주장될 수 있는 것의 한계로 해석되어서는 안 되며, 오히려 특정 발명의 특정 실시예에 특정할 수 있는 특징에 대한 설명으로 해석되어서는 안 된다. 이 특허 문서에 기재된 특정 특징은 별도의 실시예의 맥락에서 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 문맥상에 기재되는 다양한 특징은 또한 다중 실시예에서 개별적으로 또는 임의의 적합한 서브 조합에서 구현될 수 있다. 더욱이, 상기 특징은 특정 조합에서 작용하는 것으로 설명될 수 있고 심지어 처음에는 주장된 바와 같이, 청구된 조합으로부터 하나 이상의 특징은 어떤 경우에는 조합으로부터 절제될 수 있고, 주장된 조합의 서브 조합 또는 변형으로 향할 수 있다.
마찬가지로, 작업은 특정 순서로 도면에 묘사되는 동안, 이러한 작업이 표시된 특정 순서 또는 순차순서로 수행되거나, 모든 일러스트레이션 작업을 수행하여 바람직한 결과를 달성하도록 요구하는 것으로 이해되어서는 안 된다. 더욱이, 본 특허 문서에 기재된 실시예에서 다양한 시스템 컴포넌트의 분리는 모든 실시예에서 이러한 분리를 요구하는 것으로 이해되어서는 안 된다.
몇 가지 구현 및 예제만 설명되며 이 특허 문서에 설명되고 설명된 내용에 따라 다른 구현, 개선 및 변형을 만들 수 있다.

Claims (28)

  1. 영상 미디어 처리 방법에 있어서,
    두 개의 비디오 블록의 수직 가장자리 및/또는 수평 가장자리에서 경계를 식별하는 단계;
    수직 가장자리 또는 수평 가장자리를 가로지르는 결합된 인트라-인터 예측(CIIP) 모드를 사용하여 코딩 된 상기 두 개의 비디오 블록 중 하나 이상에 기초하여 필터의 경계 강도를 계산하는 단계;
    상기 필터를 켜거나 끌지 여부를 결정하는 단계;
    상기 필터가 켜져 있는 경우 상기 필터의 강도를 선택하는 단계; 및
    상기 선택하는 단계에 기초하여, 상기 비디오 블록에 디블로킹 필터(DB) 프로세스를 수행하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    CIIP 코딩 된 블록이 상기 경계 강도를 계산하는 데 내 코딩 된 블록으로 처리되는
    방법.
  3. 제1항에 있어서,
    상기 경계 강도는 수직 또는 수평 가장자리를 가로지르는 두 개의 비디오 블록 중 하나 이상이 CIIP로 코딩되는 경우 2로 선택된다
    방법.
  4. 제1항에 있어서,
    상기 경계 강도는 수직 또는 수평 가장자리를 가로지르는 두 개의 블록 중 하나만 CIIP로 코딩되고 다른 비디오 블록이 인터 코딩된 경우 1로 선택되는
    방법.
  5. 제1항에 있어서,
    상기 경계 강도는 상기 가장자리를 가로지르는 두 개의 블록 중 하나만 CIIP로 코딩되고 다른 비디오 블록은 코딩 된 인터 또는 인트라 블록 복사(IBC)인 경우 1로 선택되는
    방법.
  6. 영상 미디어 처리 방법에 있어서,
    영상 미디어 데이터의 비디오 블록과 비디오 블록의 비트스트림 표현 사이의 변환에 적용가능한 코딩 방식를 결정하는 단계; 및
    코딩 방식의 결정에 기초하여, 비디오 블록의 변환 동안 비디오 블록에 인루프 필터의 적용을 선택적으로 활성화하거나 비활성화하는 단계를 포함하는
    방법.
  7. 제6항에 있어서,
    상기 인루프 필터는: 디블로킹 필터(DB), 샘플 적응형 오프셋(SAO) 필터, 및/또는 적응형 루프 필터(ALF) 중 하나를 포함하는
    방법.
  8. 제6항 내지 제7항 중 어느 하나 또는 하나 이상의 항에 있어서,
    상기 코딩 방식은 예측 샘플 및/또는 모션 정보 및/또는 재구성된 샘플을 정제하기 위한 광학 흐름의 사용을 포함하는
    방법.
  9. 제8항에 있어서,
    상기 예측 샘플을 정제하기 위해 상기 광학 흐름을 사용하는 상기 코딩 방식은 양방향 광학 흐름(BDOF)을 포함하는
    방법.
  10. 제9항에 있어서,
    상기 코딩 방식의 결정은 상기 예측 샘플이 상기 양방향 광학 흐름(BDOF) 내에 있는지 여부를 식별하는 단계를 포함하고, 상기 인루프 필터의 적용은 상기 예측 샘플이 상기 양방향 광학 흐름(BDOF) 내에 위치된다는 결정에 응답으로 비활성화되는
    방법.
  11. 제10항에 있어서,
    상기 인루프 필터의 경계 강도 및/또는 필터 강도 중 적어도 하나 이상이 상기 양방향 광학 흐름(BDOF)의 사용에 기초하여 결정되는
    방법.
  12. 제9항에 있어서,
    상기 코딩 방식의 결정은 상기 예측 샘플이 상기 양방향 광학 흐름(BDOF) 내에 있는지 여부를 식별하는 단계를 포함하고, 상기 인루프 필터의 적용은 상기 예측 샘플이 상기 양방향 광학 흐름(BDOF) 내에 위치된다는 결정에 응답으로 활성화되고, 및 추가로 상기 인루프 필터는 상기 BDOF 내에 위치하지 않는 예측 샘플과 연관된 다른 인루프 필터보다 약한 강도를 가지는
    방법.
  13. 영상 미디어 처리 방법에 있어서,
    영상 미디어 데이터의 비디오 블록과 상기 비디오 블록의 비트스트림 표현 사이의 변환에 적용가능한 변환 매트릭스의 유형을 결정하는 단계; 및
    변환 매트릭스의 유형의 결정에 기초하여, 상기 비디오 블록을 변환하는 동안 상기 비디오 블록에 디블로킹(DB) 필터 프로세스의 적용을 선택적으로 활성화 또는 비활성화하는 단계를 포함하는
    방법.
  14. 제13항에 있어서,
    상기 변환 매트릭스의 유형은 DCT-II, DST-VII, DCT-VIII 및/또는 변환 스킵 모드를 포함하는
    방법.
  15. 제13항 내지 제14항 중 어느 하나 또는 하나 이상의 항에 있어서,
    상기 디블로킹 필터링 프로세스의 적용은 클리핑 작업을 더 포함하는
    방법.
  16. 제15항에 있어서,
    상기 클리핑 작업은 상기 DB 필터와 관련하여 상기 비디오 블록내의 샘플 위치에 기초하여 위치 의존인
    방법.
  17. 제16항에 있어서,
    상기 클리핑 작업은 변환 스킵 코딩 비디오 블록에 위치된 샘플에 대해 비활성화되는
    방법.
  18. 제17항에 있어서,
    상기 디블로킹 필터(DB) 프로세스는 상기 변환 스킵 코딩 블록 상에 비활성화되거나, 상기 비디오 블록 코딩이 변환 기반 코딩 기술에서 제외된다는 결정에 따라 비활성화되는
    방법.
  19. 제18항에 있어서,
    상기 변환 기반 코딩 기술은 잔차 차동 펄스 코드 변조(RDPCM) 또는 정량화된 잔차 차동 펄스 코드 변조(QR-BDPCM)를 포함하는
    방법.
  20. 제15항에 있어서,
    상기 DB 필터 프로세스가 샘플 세트에서 활성화되면, 상기 세트에 포함된 모든 샘플은 상기 클리핑 작업의 동일한 파라미터를 받는
    방법.
  21. 제16항에 있어서,
    위치 의존 클리핑 작업의 파라미터는 상기 변환에 적용가능한 변환 매트릭스의 기본 함수와 관련되는
    방법.
  22. 영상 미디어 처리 방법에 있어서,
    영상 미디어 데이터의 비디오 블록과 상기 비디오 블록의 비트스트림 표현 사이의 변환 동안, 상기 비디오 블록에 인루프 필터링 단계의 적용을 결정하는 단계 - 상기 인루프 필터링 단계는 필터링될 상기 비디오 블록 내의 샘플에 적용된 클리핑 작업을 포함함 -; 및
    상기 비디오 블록과 연관된 하나 이상의 조건을 결정하는 단계에 응답하여, 상기 클리핑 작업을 선택적으로 활성화하거나 비활성화하는 단계를 포함하는
    방법.
  23. 제22항에 있어서,
    상기 비디오 블록과 연관된 상기 하나 이상의 조건은:
    (a) 상기 비디오 블록의 컨텐츠, 또는
    (b) 시퀀스 파라미터 세트(SPS)/비디오 파라미터 세트(VPS)/픽처 파라미터 세트(PPS)/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/최대 코딩 유닛(LCU)/LCU 행/LCU 행/LCU 그룹에 포함된 필드를 포함하는
    방법.
  24. 제1항 내지 제23항 중 어느 하나 또는 하나 이상의 항에 있어서,
    상기 변환은 비디오 블록에서 상기 비트스트림 표현을 생성하는 단계를 포함하는
    방법.
  25. 제1항 내지 제23항 중 어느 하나 또는 하나 이상의 항에 있어서,
    상기 변환은 상기 비트스트림 표현에서 비디오 블록의 픽셀 값을 생성하는 단계를 포함하는
    방법.
  26. 제1항 내지 제23항 중 어느 하나 또는 하나 이상의 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코더 장치.
  27. 제1항 내지 제23항 중 어느 하나 또는 하나 이상의 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코더 장치.
  28. 코드가 저장된 컴퓨터 판독 가능 매체에 있어서,
    상기 코드는 제1항 내지 제23항의 어느 하나 이상의 방법을 구현하기 위한 프로세서 실행 가능 명령을 구현하는 컴퓨터 판독 가능 매체.
KR1020217035465A 2019-05-11 2020-05-11 비디오 코딩을 위한 필터 디블로킹 KR20220006054A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2019/086488 2019-05-11
CN2019086488 2019-05-11
PCT/CN2020/089557 WO2020228661A1 (en) 2019-05-11 2020-05-11 Deblocking filter for video coding

Publications (1)

Publication Number Publication Date
KR20220006054A true KR20220006054A (ko) 2022-01-14

Family

ID=73289773

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217035465A KR20220006054A (ko) 2019-05-11 2020-05-11 비디오 코딩을 위한 필터 디블로킹

Country Status (6)

Country Link
US (2) US12003711B2 (ko)
EP (1) EP3954128A4 (ko)
JP (2) JP7271723B2 (ko)
KR (1) KR20220006054A (ko)
CN (2) CN113812163B (ko)
WO (1) WO2020228661A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114041285B (zh) * 2019-05-11 2024-04-19 北京字节跳动网络技术有限公司 视频处理中去方块滤波器的边界强度确定
JP7505869B2 (ja) * 2019-09-20 2024-06-25 日本放送協会 符号化装置、復号装置、及びプログラム

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8085845B2 (en) 2003-08-26 2011-12-27 Thomson Licensing Method and apparatus for encoding hybrid intra-inter coded blocks
US9001899B2 (en) * 2006-09-15 2015-04-07 Freescale Semiconductor, Inc. Video information processing system with selective chroma deblock filtering
US8787443B2 (en) * 2010-10-05 2014-07-22 Microsoft Corporation Content adaptive deblocking during video encoding and decoding
US9729879B2 (en) * 2011-03-10 2017-08-08 Hfi Innovation Inc. Method and apparatus of deblocking filter
US9167269B2 (en) * 2011-10-25 2015-10-20 Qualcomm Incorporated Determining boundary strength values for deblocking filtering for video coding
US20130107973A1 (en) 2011-10-28 2013-05-02 Qualcomm Incorporated Loop filtering control over tile boundaries
CA2844761C (en) * 2011-10-31 2016-11-29 Mediatek Singapore Pte. Ltd. Method and apparatus of deblocking filter with simplified boundary strength decision
KR102138907B1 (ko) 2011-11-04 2020-07-29 엘지전자 주식회사 영상 정보 인코딩/디코딩 방법 및 장치
US20140321552A1 (en) 2011-11-18 2014-10-30 Dolby Laboratories Licensing Corporation Optimization of Deblocking Filter Parameters
US9538200B2 (en) 2012-01-19 2017-01-03 Qualcomm Incorporated Signaling of deblocking filter parameters in video coding
KR20130090465A (ko) * 2012-02-06 2013-08-14 삼성전자주식회사 순차 주사 기반의 디블록킹 필터링 장치 및 방법
EP2941871A2 (en) 2013-01-07 2015-11-11 VID SCALE, Inc. Enhanced deblocking filters for video coding
CN103491373B (zh) * 2013-09-06 2018-04-27 复旦大学 一种适用于hevc标准的去方块滤波器的四级流水滤波方法
EP3058739B1 (en) 2013-10-14 2019-08-07 Microsoft Technology Licensing, LLC Features of intra block copy prediction mode for video and image coding and decoding
JP2015144423A (ja) * 2013-12-25 2015-08-06 三星電子株式会社Samsung Electronics Co.,Ltd. 画像符号化装置、画像復号化装置、それらの方法、プログラム及び画像処理システム
AU2014202921B2 (en) * 2014-05-29 2017-02-02 Canon Kabushiki Kaisha Method, apparatus and system for de-blocking a block of video samples
WO2016043933A1 (en) * 2014-09-15 2016-03-24 Mediatek Inc. Method of deblocking for intra block copy in video coding
CN115134608A (zh) * 2015-06-11 2022-09-30 杜比实验室特许公司 使用自适应去块滤波编码和解码图像的方法及其装置
CN116320498A (zh) * 2016-11-28 2023-06-23 韩国电子通信研究院 用于滤波的方法和装置
WO2018132043A1 (en) 2017-01-10 2018-07-19 Telefonaktiebolaget Lm Ericsson (Publ) Deblocking filtering control
US10708591B2 (en) 2017-03-20 2020-07-07 Qualcomm Incorporated Enhanced deblocking filtering design in video coding
WO2018180841A1 (en) * 2017-03-29 2018-10-04 Sharp Kabushiki Kaisha Systems and methods for filtering reconstructed video data using bilateral filtering techniques
CN107172423B (zh) * 2017-03-31 2018-08-21 武汉斗鱼网络科技有限公司 一种对视频帧进行滤波的方法及装置
CN117956195A (zh) * 2018-01-08 2024-04-30 三星电子株式会社 编码方法及其设备以及解码方法及其设备
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
RU2768016C1 (ru) 2018-03-30 2022-03-23 Шарп Кабусики Кайся Системы и способы применения фильтров деблокирования к восстановленным видеоданным
US10708592B2 (en) 2018-04-02 2020-07-07 Qualcomm Incorporated Deblocking filter for video coding and processing
CA3103003A1 (en) * 2018-06-21 2019-12-26 Telefonaktiebolaget Lm Ericsson (Publ) Deblocking of video picture boundaries
MX2021001607A (es) 2018-12-07 2021-04-19 Huawei Tech Co Ltd Un codificador, un decodificador y metodos correspondientes de derivacion de la intensidad de limite del filtro de desbloqueo.
CN113545036B (zh) 2019-03-02 2023-11-28 北京字节跳动网络技术有限公司 对环路内滤波的限制
CN114041285B (zh) 2019-05-11 2024-04-19 北京字节跳动网络技术有限公司 视频处理中去方块滤波器的边界强度确定

Also Published As

Publication number Publication date
CN117176969A (zh) 2023-12-05
US12003711B2 (en) 2024-06-04
JP7271723B2 (ja) 2023-05-11
CN113812163A (zh) 2021-12-17
EP3954128A1 (en) 2022-02-16
CN113812163B (zh) 2022-11-25
JP2023103284A (ja) 2023-07-26
WO2020228661A1 (en) 2020-11-19
EP3954128A4 (en) 2022-06-15
US20220070454A1 (en) 2022-03-03
US12003715B2 (en) 2024-06-04
JP2022533074A (ja) 2022-07-21
US20230032798A1 (en) 2023-02-02

Similar Documents

Publication Publication Date Title
KR20220073746A (ko) 비디오 처리에서 크로마 양자화 파라미터 사용
CN114390288A (zh) 在视频编解码中使用神经网络滤波
JP7322285B2 (ja) クロマデブロックフィルタリングのための量子化パラメータオフセット
JP7326600B2 (ja) 異なるビデオユニット間の適応ループフィルタリング
US12003715B2 (en) Deblocking filter for video coding
WO2021138293A1 (en) Adaptive color transform in video coding
US11785260B2 (en) Cross-component adaptive loop filtering in video coding
US20220070455A1 (en) Boundary strength determination for deblocking filters in video processing
WO2021036981A1 (en) Deblocking filtering at coding block or subblock boundary
WO2021055896A1 (en) Chroma deblocking in video coding