KR20220058889A - 비디오 코딩의 크로마 양자화 파라미터 - Google Patents

비디오 코딩의 크로마 양자화 파라미터 Download PDF

Info

Publication number
KR20220058889A
KR20220058889A KR1020227005302A KR20227005302A KR20220058889A KR 20220058889 A KR20220058889 A KR 20220058889A KR 1020227005302 A KR1020227005302 A KR 1020227005302A KR 20227005302 A KR20227005302 A KR 20227005302A KR 20220058889 A KR20220058889 A KR 20220058889A
Authority
KR
South Korea
Prior art keywords
video
block
way
chroma
coding
Prior art date
Application number
KR1020227005302A
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 KR20220058889A publication Critical patent/KR20220058889A/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/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/124Quantisation
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

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

Abstract

비디오 프로세싱의 예시적인 방법은 비디오의 크로마 컴포넌트의 블록과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 변환 동안, 블록의 가장자리를 따라 적어도 일부 샘플에 디블로킹 필터링 프로세스가 적용되고, 디블로킹 필터링 프로세스에 대한 파라미터를 결정하기 위해 크로마 양자화 파라미터(QP) 오프셋이 크로마 QP 테이블의 출력에 추가된다.

Description

비디오 코딩의 크로마 양자화 파라미터
이 특허 문서는 비디오 코딩 기술, 장치 및 시스템과 관련이 있다.
파리협약에 따른 대응하는 특허법 및/또는 규칙에 따라, 이 출원은 2019년 9월 24일에 출원된 국제 특허 출원 번호 PCT/CN2019/105831의 우선권과 이익을 적시에 주장하기 위해 이루어진다. 법에 따른 모든 목적을 위해, 상기 출원의 전체 개시는 본 출원의 개시의 일부로 참조에 의해 통합된다.
현재, 더 나은 압축 비율을 제공하거나 더 낮은 복잡성 또는 병렬 구현을 허용하는 비디오 코딩 및 디코딩 방식을 제공하기 위해 현재 비디오 코덱 기술의 성능을 개선하려는 노력이 진행 중이다. 업계 전문가들은 최근 몇 가지 새로운 비디오 코딩 툴(video coding tool)을 제안했으며 효과를 확인하기 위한 테스트가 현재 진행 중이다.
디지털 비디오 코딩, 특히 모션 벡터의 관리와 관련된 장치, 시스템 및 방법이 설명된다. 설명된 방법은 기존 비디오 코딩 표준(예를 들어, 고효율 비디오 코딩(High Efficiency Video Coding)(HEVC) 또는 범용 비디오 코딩(Versatile Video Coding)) 및 향후 비디오 코딩 표준 또는 비디오 코덱에 적용될 수 있다.
하나의 대표적인 측면에서, 개시된 기술은 비디오 처리(video processing) 방법을 제공하는 데 사용될 수 있다. 이 방법은 비디오의 크로마 컴포넌트(chroma component)의 블록(block)과 비디오의 비트스트림 표현(bitstream representation) 사이의 변환(conversion)을 수행하는 단계를 포함한다. 변환 동안, 블록의 가장자리(edge)를 따라 샘플에 디블로킹 필터링 프로세스(deblocking filtering process)가 선택적으로 적용되고 디블로킹 필터링 프로세스에 대한 파라미터를 결정하기 위해 크로마 QP 테이블의 출력에 크로마 양자화 파라미터(chroma quantization parameter)(QP) 오프셋이 추가된다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은, 비디오의 크로마 컴포넌트의 블록과 비디오의 비트스트림 표현 사이의 변환을 위해, 가장자리의 일측(one side)에 있는 샘플을 포함하는 제1 비디오 영역(first video region)에 대한 제1 양자화 정보(first quantization information) 및/또는 규칙에 따라 가장자리의 타측(other side)의 샘플을 포함하는 제2 비디오 영역(second video region)에 대한 제2 양자화 정보(second quantization information)에 기초하여 블록의 가장자리에 필터링 프로세스(filtering process)를 적용할지 여부 또는 적용 방법을 결정하는 단계를 포함한다. 규칙은 가장자리의 일측 샘플 또는 타측 샘플을 코딩하기 위해 블록에 적용 가능한 코딩 모드에 기초한다. 규칙은 제1 양자화 정보 또는 제2 양자화 정보를 결정하기 위해 상이한 비디오 유닛 레벨에서 다중 QP 오프셋이 사용된다는 것을 지정한다. 방법은 또한 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은, 비디오의 현재 블록(current block)과 비디오의 비트스트림 표현 사이의 변환을 위해, 비디오 유닛의 레벨에서 신택스 요소에 따라 현재 블록에 대한 크로마 양자화 파라미터(QP) 오프셋의 사용을 가능하게 하는지 여부를 결정하는 단계를 포함한다. 비디오 유닛은 현재 블록과 비디오의 제2 블록(second block)을 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 제1 크로마 컴포넌트(first chroma component)와 제2 크로마 컴포넌트(second chroma component)를 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 제1 크로마 컴포넌트의 제1 크로마 블록과 제2 크로마 컴포넌트의 제2 크로마 블록의 잔차는 규칙에 따라 코딩 모드를 사용하여 비트스트림 표현에서 공동으로 코딩된다. 이 규칙은 변환을 위한 양자화 파라미터(QP)를 유도하는 방식이 코딩 모드와 무관함을 지정한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 비디오의 제1 블록과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비디오는 여러 컬러 컴포넌트의 컬러 포맷(color format)을 갖고 제1 블록(first block)은 비디오의 제1 컬러 컴포넌트(first color component)와 연관된다. 변환 동안, 제1 블록의 가장자리를 따라 적어도 일부 샘플에 디블로킹 필터링 프로세스가 적용된다. 방법은 또한 비디오의 나머지 컬러 컴포넌트와 비디오의 비트스트림 표현과 연관된 블록 사이에서 후속 변환(subsequent conversion)을 수행하는 단계를 포함한다. 후속 변환 동안, 디블로킹 필터 프로세스는 제1 블록의 변환과 동일한 방식으로 각 블록의 가장자리를 따라 적어도 일부 샘플에 적용된다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 비디오와 비디오의 비트스트림 표현 사이의 변환을 위해 비디오의 두 블록 사이의 경계의 경계 강도(boundary strength)를 결정하는 단계를 포함한다. 경계 강도는 두 블록 중 어느 하나가 크로마 잔차의 공동 코딩(Joint coding of chromaresidual)(JCCR) 모드로 코딩되는지 여부와 무관하게 결정된다. 방법은 또한 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 비디오와 비디오의 비트스트림 표현 사이의 변환을 위해 제1 블록과 제2 블록 사이의 경계의 경계 강도(boundary strength)를 결정하는 단계를 포함한다. 결정하는 단계는 제1 블록의 정보와 대응하는 제2 블록의 정보를 비교하지 않고 수행된다. 정보는 레퍼런스 픽처(reference picture) 및/또는 대응하는 블록의 모션 벡터(motion vector)의 수를 포함하고, 경계 강도는 디블로킹 필터링 프로세스가 경계에 적용 가능한지 여부를 결정하기 위해 사용된다. 방법은 또한 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은, 비디오의 비디오 블록과 비디오의 비트스트림 표현 사이의 변환을 위해, 규칙에 따라 비디오 블록에 디블로킹 필터링을 적용하는 데 사용되는 양자화 파라미터(QP)를 결정하는 단계를 포함한다. 규칙은 비디오 블록의 잔차가 트랜스폼의 적용을 스킵함으로서 비트스트림 표현에서 코딩되는 트랜스폼 스킵(transform skip)(TS) 모드를 사용하여 비디오 블록이 코딩되는 경우, 결정에 제1 QP가 사용됨을 지정한다. 제1 QP와 다른 제2 QP는 비디오 블록의 나머지가 트랜스폼을 적용한 후 비트스트림 표현에서 코딩되는 비트랜스폼 스킵 모드를 사용하여 비디오 블록이 코딩되는지 여부를 결정하는 데 사용된다. 방법은 또한 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은, 비디오의 비디오 블록과 비디오의 비트스트림 표현 사이의 변환을 위해, 규칙에 따라 비디오 블록의 가장자리의 적어도 일부 샘플에 대한 디블로킹 필터링 프로세스의 적용 가능성을 결정하기 위한 그레디언트(gradient)를 결정하는 단계를 포함한다. 규칙은 그레디언트가 결정되는 방식이 비디오 블록의 크기와 무관함을 지정한다. 방법은 또한 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 크로마 양자화 파라미터(QP) 테이블이 디블로킹 필터의 파라미터를 유도하기 위해 사용될 때 크로마 QP 테이블에 의한 처리가 개별 크로마 QP 값에 대해 수행되도록 디블로킹 필터가 비디오 유닛의 경계에 사용된다.
또 다른 대표적인 측면에서, 개시된 기술은 다른 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은, 비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되고, 크로마 QP 오프셋은 픽처/슬라이스/타일/브릭/서브 픽처 레벨에 있다.
또 다른 대표적인 측면에서, 개시된 기술은 다른 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되고, 여기서 동일한 루마 코딩 유닛에 관한 정보가 디블로킹 필터에서 사용되며 크로마 QP 오프셋을 유도하기 위해 사용된다.
또 다른 대표적인 측면에서, 개시된 기술은 다른 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되고, 크로마 QP 오프셋의 사용을 가능하게 하는 표시는 비트스트림 표현에서 시그널링된다.
또 다른 대표적인 측면에서, 개시된 기술은 다른 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되고, 디블로킹 필터에 사용되는 크로마 QP 오프셋은 비디오 유닛의 경계에 JCCR 코딩 방법이 적용되는지 또는 비디오 유닛의 경계에 JCCR 코딩 방법과 다른 방법이 적용되는지 여부와 동일하다.
또 다른 대표적인 측면에서, 개시된 기술은 다른 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되며, 여기서 디블로킹 필터의 경계 강도(BS)는 P 측 경계에서 비디오 유닛과 연관된 레퍼런스 픽처 및/또는 다수의 모션 벡터(MV)를 Q 측 경계에서 비디오 유닛의 레퍼런스 픽처와 비교하지 않고 계산된다.
또한, 대표적인 측면에서, 프로세서(processor) 및 명령(instruction)이 있는 비일시적 메모리(non-transitory memory)를 포함하는 비디오 시스템의 장치가 개시된다. 프로세서에 의해 실행 시 명령은 프로세서가 개시된 방법 중 임의의 하나 이상을 구현하도록 한다.
추가적으로, 대표적인 측면에서, 개시된 방법들 중 임의의 하나 이상을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
다른 대표적인 측면에서, 개시된 방법들 중 임의의 하나 이상을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
또한, 비일시적 컴퓨터 판독 가능 매체(non-transitory computer readable media)에 저장된 컴퓨터 프로그램(computer program)으로서, 개시된 방법 중 임의의 하나 이상을 수행하기 위한 프로그램 코드(program code)를 포함하는 컴퓨터 프로그램이 개시된다.
개시된 기술의 상기 및 기타 측면 및 특징은 도면, 설명 및 청구범위에서 보다 상세하게 설명된다.
도 1은 블로킹 디블로킹 필터링 프로세스의 전체적인 처리 흐름의 일 예를 나타낸다.
도 2는 Bs 계산의 흐름도의 예를 나타낸다.
도 3은 CTU 경계에서 Bs 계산에 대한 참조된 정보의 예를 나타낸다.
도 4는 필터 껴기/끄기 결정 및 강/약 필터 선택에 관련된 픽셀의 예를 나타낸다.
도 5는 VVC에서 디블로킹 필터링 프로세스의 전체 처리 흐름의 일 예를 나타낸다.
도 6은 VVC에서 루마 디블로킹 필터링 프로세스의 예를 나타낸다.
도 7은 VVC에서 크로마 디블로킹 필터링 프로세스의 예를 나타낸다.
도 8은 서브 PU 경계에 대한 필터 길이 결정의 예를 나타낸다.
도 9a는 크로마 블록의 중심 위치의 예를 나타낸다.
도 9b는 크로마 블록의 중심 위치의 다른 예를 나타낸다.
도 10은 P측 및 Q측 블록의 예를 도시한다.
도 11은 루마 블록의 복호화된 정보의 사용 예를 도시한다.
도 12는 본 문서에서 설명하는 비주얼 매체 디코딩 또는 비주얼 매체 인코딩 기술을 구현하기 위한 하드웨어 플랫폼의 일 예의 블록도이다.
도 13은 비디오 코딩을 위한 예시적인 방법의 흐름도를 도시한다.
도 14는 개시된 기술이 구현될 수 있는 예시적인 비디오 처리 시스템의 블록도이다.
도 15는 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다.
도 16은 본 기술에 따른 비디오 처리의 다른 방법의 흐름도 표현이다.
도 17은 본 기술에 따른 비디오 처리의 다른 방법의 흐름도 표현이다.
도 18은 본 기술에 따른 비디오 처리의 다른 방법의 흐름도 표현이다.
도 19는 본 기술에 따른 비디오 처리의 다른 방법의 흐름도 표현이다.
도 20은 본 기술에 따른 비디오 처리의 다른 방법의 흐름도 표현이다.
도 21은 본 기술에 따른 비디오 처리의 다른 방법의 흐름도 표현이다.
도 22는 본 기술에 따른 비디오 처리의 다른 방법의 흐름도 표현이다.
도 23은 본 기술에 따른 비디오 처리의 또 다른 방법의 흐름도 표현이다.
도 24는 예시적인 비디오 코딩 시스템을 예시하는 블록도이다.
도 25는 본 개시내용의 일부 실시예에 따른 인코더를 예시하는 블록도이다.
도 26은 본 개시의 일부 실시예들에 따른 디코더를 예시하는 블록도이다.
1. HEVC/H.265의 비디오 코딩
비디오 코딩 표준은 주로 잘 알려진 ITU-T 및 ISO/IEC 표준의 개발을 통해 발전해 왔다. ITU-T는 H.261및 H.263을 제작했으며, ISO/IEC는 MPEG-1 및 MPEG-4 비주얼을 제작했으며, 두 조직은 H.262/MPEG-2 비디오 및 H.264/MPEG-4 고급 비디오 코딩(AVC) 및 H.265/HEVC 표준을 공동 제작했다. H.262 이후, 비디오 코딩 표준은 시간(temporal) 예측과 트랜스폼(transform) 코딩이 사용되는 하이브리드 비디오 코딩 구조에 기초한다. HEVC를 넘어 미래의 비디오 코딩 기술을 연구하기 위해, 공동 비디오 연구팀(JVET: Joint Video Exploration Team)이 2015년에 VCEG와 MPEG의 공동으로 설립되었다. 그 이후로 JVET에 의해 많은 새로운 방법을 채택하고 공동 연구 모델 (JEM)이라는 레퍼런스 소프트웨어에 적용했다. 2018년 4월, VCEG(Q6/16)와 ISO/IEC JTC1 SC29/WG11(MPEG) 사이의 공동 비디오 전문가 팀(Joint Video Expert Team)(JVET)는 HEVC에 비해 50% 비트 전송률 감소를 목표로 하는 VVC 표준 작업을 위해 만들어졌다.
2.1. HEVC의 디블로킹 방식(Deblocking scheme in HEVC)
디코딩 프로세스(decoding process)와 동일한 순서로 각 CU에 대해 디블로킹 필터 프로세스가 수행된다. 먼저 수직 가장자리(vertical edge)를 필터링(수평 필터링(horizontal filtering))한 다음 수평 가장자리(horizontal edge)를 필터링(수직 필터링(vertical filtering))한다. 필터링은 루마 및 크로마 컴포넌트 모두에 대해 필터링된 것으로 결정된 8x8 블록 경계에 적용된다. 복잡성을 줄이기 위해 4x4 블록 경계는 처리되지 않는다.
도 1은 디블로킹 필터링 프로세스의 전체적인 처리 흐름을 도시한 것이다. 경계는 필터링 없음, 약한 필터링 및 강력한 필터링의 세 가지 필터링 상태를 가질 수 있다. 각 필터링 결정(filtering decision)은 경계 강도 Bs와 임계값 β 및 t C 를 기반으로 한다.
세 가지 종류의 경계가 필터링 프로세스에 포함될 수 있다: CU 경계, TU 경계 및 PU 경계이다. CU 경계는 항상 TU 경계 또는 PU 경계이기 때문에 CU의 외부 가장자리인 CU 경계는 항상 필터링에 포함된다. PU 모양이 2NxN(N > 4)이고 RQT 깊이가 1인 경우, 8x8 블록 그리드에서 TU 경계와 CU 내부의 각 PU 사이의 PU 경계가 필터링에 포함된다. 한 가지 예외는 PU 경계가 TU 내부에 있을 때 경계가 필터링되지 않는다는 것이다.
2.1.1. 경계 강도 계산(Boundary strength calculation)
일반적으로 경계 강도(B)는 경계에 대해 얼마나 강력한 필터링이 필요한지를 반영한다. B가 크면, 강력한 필터링을 고려해야 한다.
P와 Q를 필터링에 관여하는 블록으로 정의할 수 있도록 하고, 여기서 P는 경계의 왼측(수직 가장자리 케이스) 또는 위(수평 가장자리 케이스) 측에 있는 블록을 나타내고 Q는 경계의 오른측(수직 가장자리 케이스) 또는 위(수평 가장자리 케이스) 측에 있는 블록을 나타낸다. 도 2는 BS 값이 인트라 코딩 모드, 비-제로 트랜스폼 계수 및 모션 정보, 레퍼런스 픽처, 모션 벡터 수 및 모션 벡터 차이의 존재에 기초하여 계산되는 방법을 도시한다.
Bs는 4x4 블록 기반으로 계산되지만 8x8 그리드에 다시 매핑된다. 4x4 그리드의 라인으로 구성된 8픽셀에 대응하는 Bs의 두 값 중 최대값은 8x8 그리드의 경계에 대한 B로 선택된다.
라인 버퍼 메모리 요구량을 줄이기 위해, CTU 경계에 대해서만 왼측 또는 위측의 모든 제2 블록(4x4 그리드)의 정보를 도 3과 같이 재사용된다.
2.1.2. β 및 t C 결정
필터 켜짐/꺼짐 결정, 강한 필터와 약한 필터 선택 및 약한 필터링 프로세스를 포함하는 임계값 β 및 tC는 각각 P 및 Q 블록, QPP 및 QPQ의 루마 양자화 파라미터를 기반으로 유도된다. β와 tC를 유도하는데 사용되는 Q는 다음과 같이 계산된다.
Q = ( ( QPP + QPQ + 1 ) >> 1 ).
변수 β는 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
β 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
β 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
β 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
2.1.3. 네 개 라인에 대한 필터 켜기/끄기 결정
필터 켜짐/꺼짐 결정은 네 개 라인 유닛으로 수행된다. 도 4는 필터 껴기/끄기 결정에 관련된 픽셀을 도시한다. 처음 네 개 라인에 대한 두 개의 빨간색 상자에 있는 6개 픽셀은 네 개 라인에 대한 필터 켜기/끄기를 결정하는 데 사용된다. 두 번째 네 개 라인에 대한 두 개의 빨간색 상자에 있는 6픽셀은 두 번째 네 개 라인에 대한 필터 켜기/끄기를 결정하는 데 사용된다.
dp0+dq0+dp3+dq3 < β이면, 처음 네 개 라인에 대한 필터링을 켜고 강/약 필터 선택 프로세스를 적용한다. 각 변수는 다음과 같이 유도된다:
dp0 = | p2,0 - 2*p1,0 + p0,0 |, dp3 = | p2,3 - 2*p1,3 + p0,3 |, dp4 = | p2,4 - 2*p1,4 + p0,4 |, dp7 = | p2,7 - 2*p1,7 + p0,7 |
dq0 = | q2,0 - 2*q1,0 + q0,0 |, dq3 = | q2,3 - 2*q1,3 + q0,3 |, dq4 = | q2,4 - 2*q1,4 + q0,4 |, dq7 = | q2,7 - 2*q1,7 + q0,7 |
조건이 충족되지 않으면, 처음 네 개 라인에 대해 필터링이 수행되지 않는다. 또한, 조건이 충족되면, 약한 필터링 프로세스에 대해 dE, dEp1 및 dEp2가 유도된다. 변수 dE는 1로 설정된다. dp0 + dp3 < (β + ( β >> 1 )) >> 3이면 변수 dEp1은 1로 설정된다. dq0 + dq3 < (β + ( β >> 1 )) >> 3이면 변수 dEq1은 1로 설정된다.
두 번째 네 개 라인에 대해서, 위와 같은 방식으로 결정한다.
2.1.4. 네 개 라인에 대한 강/약 필터 선택(Strong/weak filter selection for 4 lines)
필터 켜짐/꺼짐 결정에서 처음 네 개 라인이 필터링 켜기로 결정된 후, 다음 두 가지 조건이 충족되면, 처음 네 개 라인의 필터링에 강력한 필터가 사용된다. 그렇지 않으면, 약한 필터가 필터링에 사용된다. 관련 픽셀은 도 4에 표시된 것처럼 필터 켜기/끄기 결정에 사용된 픽셀과 동일하다.
1) 2*(dp0+dq0) < ( β >> 2 ), | p30 - p00 | + | q00 - q30 | < ( β >> 3 ) and | p00 - q00 | < ( 5* tC  + 1 ) >> 1
2) 2*(dp3+dq3) < ( β >> 2 ), | p33 - p03 | + | q03 - q33 | < ( β >> 3 ) and | p03 - q03 | < ( 5* tC  + 1 ) >> 1
같은 방식으로, 다음 두 가지 조건이 충족되면, 두 번째 네 개 라인의 필터링에 강력한 필터를 사용한다. 그렇지 않으면, 약한 필터가 필터링에 사용된다.
1) 2*(dp4+dq4) < ( β >> 2 ), | p34 - p04 | + | q04 - q34 | < ( β >> 3 ) and | p04 - q04 | < ( 5* tC  + 1 ) >> 1
2) 2*(dp7+dq7) < ( β >> 2 ), | p37 - p07 | + | q07 - q37 | < ( β >> 3 ) and | p07 - q07 | < ( 5* tC  + 1 ) >> 1
2.1.4.1. 강력한 필터링
강력한 필터링을 위해, 필터링된 픽셀 값은 다음 방정식에 의해 구한다. 각 P 및 Q 블록에 대한 입력으로 각각 네 개의 픽셀을 사용하여 세 개의 픽셀이 수정된다는 점에 유의할 가치가 있다.
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.1.4.2. 약한 필터링(Weak filtering)
다음과 같이 정의합시다.
Δ= ( 9 * ( q0 -  p0 ) - 3 * ( q1 - p1 ) + 8 ) >> 4
abs()가 t C *10보다 작을 때,
Δ = Clip3( - tC , tC , Δ )
p0' = Clip1Y( p0 + Δ )
q0' = Clip1Y( q0 - Δ )
dEp1이 1이면,
Δp = Clip3( -( tC >> 1), tC >> 1, ( ( ( p2 + p0 + 1 ) >> 1 ) - p1 + ) >>1 )
p1' = Clip1Y( p1 + Δp )
dEq1이 1이면,
D q = Clip3( -( t C  >> 1), t C  >> 1, ( ( ( q 2  + q 0  + 1 ) >> 1 ) - q 1  -  Δ  ) >>1 )
q1' = Clip1Y( q1 + Δq )
각 P 및 Q 블록에 대해 각각 세 개의 픽셀을 입력으로 사용하여 최대 두 개의 픽셀이 수정된다는 점에 유의할 가치가 있다.
2.1.4.3. 크로마 필터링
크로마 필터링의 B는 루마에서 상속된다. Bs > 1이거나 코딩된 크로마 계수가 있는 경우, 크로마 필터링이 수행된다. 다른 필터링 결정이 없다. 그리고 크로마에는 하나의 필터만 적용된다. 크로마에 대한 필터 선택 프로세스가 사용되지 않는다. 필터링된 샘플 값 p 0 ' 및 q 0 '은 다음과 같이 유도된다:
Δ= Clip3( -tC, tC, ( ( ( ( q0 - p0 ) << 2 ) + p1 - q1 + 4 ) >> 3 ) )
p0' = Clip1C( p0 + Δ )
q0' = Clip1C( q0 - Δ )
2.2 VVC의 디블로킹 방식
VTM6에서 디블로킹 필터링 프로세스는 HEVC와 거의 동일하다. 그러나, 다음 수정 사항이 추가된다.
A) 재구성된 샘플의 평균 루마 레벨에 의존하는 디블로킹 필터의 필터 강도.
B) 디블로킹 tC 테이블 확장 및 10비트 비디오에 대한 적응.
C) 루마에 대한 4x4 그리드 디블로킹.
D) 루마에 대한 더 강력한 디블로킹 필터.
E) 크로마에 대한 더 강력한 디블로킹 필터.
F) 서브블록 경계를 위한 디블로킹 필터.
G) 모션의 더 작은 차이에 적응된 디블로킹 결정.
도 5는 코딩 유닛에 대한 VVC에서 디블로킹 필터 프로세스의 흐름도를 도시한다.
2.2.1. 재구성된 평균 루마에 따른 필터 강도
HEVC에서 디블로킹 필터의 필터 강도는 평균 양자화 파라미터 qPL에서 유도된 변수 β 및 tC에 의해 제어된다. VTM6에서 디블로킹 필터는 이 방법의 SPS 플래그가 참인 경우, 재구성된 샘플의 루마 레벨에 따라 qPL에 오프셋을 추가하여 디블로킹 필터의 강도를 제어한다. 재구성된 루마 레벨 LL은 다음과 같이 유도된다:
LL= ( ( p0,0 + p0,3 + q0,0 + q0,3 ) >> 2 ) / ( 1 << bitDepth ) (3-1)
여기서, i = 0..3 및 k = 0 및 3인 샘플 값 pi,k 및 qi,k가 유도될 수 있다. 그런 다음 LL은 SPS에서 시그널링된 임계값을 기반으로 오프셋 qpOffset을 결정하는 데 사용된다. 그 후, 다음과 같이 유도되는 qPL을 사용하여 β 및 tC를 유도한다.
qPL = ( ( QpQ + QpP +1 ) >> 1 ) + qpOffset (3-2)
여기서 QpQ 및 QpP는 각각 샘플 q0,0 및 p0,0을 포함하는 코딩 유닛의 양자화 파라미터를 나타낸다. 현재 VVC에서, 이 방법은 루마 디블로킹(루마 디블로킹) 프로세스에만 적용된다.
2.2.2. 루마(luma)용 4x4 디블로킹 그리드
HEVC는 루마와 크로마 모두에 대해 8x8 디블로킹 그리드를 사용한다. VTM6에서는 직사각형 트랜스폼 모양의 블로킹 아티팩트를 처리하기 위해 루마 경계에 대한 4x4 그리드의 디블로킹이 도입되었다. 4x4 그리드에서 병렬 친화적인 루마 디블로킹은 디블로킹할 샘플의 수를 일측의 너비가 4 이하인 수직 루마 경계의 각 면에서 1개의 샘플로 또는 일측의 높이가 4 이하인 수평 루마 경계의 각 변에 1개의 샘플로 제한함으로써 달성된다.
2.2.3. 루마에 대한 경계 강도 유도
자세한 경계 강도 유도는 표 2에서 찾을 수 있다. 표 2의 조건은 순차적으로 확인된다.
경계강도 유도
조건 Y U V
P와 Q는 BDPCM이다 0 해당 없음 해당 없음
P 또는 Q는 인트라이다 2 2 2
트랜스폼 블록 가장자리이며 P 또는 Q는 CIIP이다 2 2 2
트랜스폼 블록 가장자리이고 P 또는 Q가 0이 아닌 트랜스폼 계수를 가진다 1 1 1
트랜스폼 블록 가장자리이며 P 또는 Q는 JCCR이다. 해당 없음 1 1
P와 Q는 다른 코딩 모드에 있다. 1 1 1
다음 조건 중 하나 이상이 참이다:
1. P와 Q는 모두 IBC이고, x- 또는 y-di에서BV 거리 >= half-pel이다.
2. P와 Q는 상이한 레퍼런스 픽처*를 가지고, 또는 상이한 MV 수를 갖는다.
3. P와 Q는 모두 하나의 mv를 가지고, x 또는 y-dir에서 MV 거리 >= half -pel을 갖는다.
4. P는 두 개의 서로 다른 레퍼런스 픽처를 가리키는 두 개의 MV를 갖고, P와 Q는 목록 0에서 동일한 레퍼런스 픽처를 갖고, 목록 0 또는 목록 1의 MV 쌍은 x- 또는 y-dir에서 거리 >= half-pel을 갖는다.
5. P는 두 개의 서로 다른 레퍼런스 픽처를 가리키는 두 개의 MV를 갖고, P와 Q는 목록 0에서 서로 다른 레퍼런스 픽처를 갖고, 목록 0에서 P의 MV와 목록 1에서 Q의 MV는 x- 또는 y-dir에서 거리 >= half-pel이고, 또는 목록 1에서 P의 MV와 목록 0에서 Q의 MV는 x- 또는 y-dir에서 거리 >= half-pel을 갖는다.
6. P와 Q 모두 동일한 레퍼런스 픽처을 가리키는 두 개의 MV를 가지고, 다음 두 가지 조건이 모두 충족된다:
o 목록 0에서 P의 MV와 목록 0에서 Q의 MV는 x- 또는 y-dir에서 거리 >= half-pel를 갖거나 목록 1에서 P의 MV와 목록 1에서 Q의 MV는 x- 또는 y-dir에서 거리 >= half-pel을 갖는다.
o 목록 0에서 P의 MV와 목록 1에서 Q의 MV는 x- 또는 y-dir에서 거리 >= half-pel을 갖거나 목록 1에서 P의 MV와 목록 0에서 Q의 MV는 x- 또는 y-dir에서 거리 >= half-pel을 갖는다.
참고 : 두 개의 코딩 서브록에 사용된 레퍼런스 픽처가 동일하거나 다른지 여부의 결정은 레퍼런스 픽처 목록 0에 대한 인덱스 또는 레퍼런스 픽처 목록에 대한 인덱스를 사용하여 예측이 형성되는지 여부와 무관하게, 및 또한 레퍼런스 픽처 목록 내의 인덱스 위치가 다른지 여부와 관계 없이 어떤 픽처가 참조되는 지에만 기초한다.
1
해당 없음
해당 없음
그렇지 않으면 0 0 0
2.2.4. 루마에 대한 더 강력한 디블로킹 필터
제안은 경계의 일측에 있는 샘플이 큰 블록에 속할 때 이중선형 필터(bilinear filter)를 사용한다. 큰 블록에 속하는 샘플은 수직 모서리의 경우, 너비 >= 32, 수평 모서리의 경우, 높이>=32일 때로 정의된다.
이중 선형 필터는 다음과 같다.
i=0 ~ Sp-1에 대한 pi 및 j=0 ~ Sq-1에 대한 qi 블록 경계 샘플(pi 및 qi는 위에서 설명한 HEVC 디블로킹의 정의를 따릅니다)은 다음과 같이 선형 보간으로 대체된다:
Figure pct00001
여기서 및 항목(term)은 섹션 2.2.5 및 , , 및 아래에 설명된 위치 종속 클리핑position dependent clipping()이다.
Figure pct00002
2.2.5. 루마에 대한 디블로킹 제어
디블로킹 결정 프로세스(deblocking decision process)는 이 서브 섹션에 설명되어 있다.
Condition1, Condition2Condition 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은 다음과 같이 정의된다.
Condition1 = (bSidePisLargeBlk || bSidePisLargeBlk) ? 참(TRUE): 거짓(FALSE)
다음으로, 조건 1이 참이면, 조건 2를 더 확인한다. 먼저 다음 변수가 유도된다:
dp0, dp3, dq0, dq3은 먼저 HEVC에서와 같이 유도된다.
if(p측이 32보다 크거나 같음)
dp0 = ( dp0 + Abs( p5,0 - 2 * p4,0 + p3,0 ) + 1 ) >> 1
dp3 = ( dp3 + Abs( p5,3 - 2 * p4,3 + p3,3 ) + 1 ) >> 1
if (q 측이 32보다 크거나 같음)
dq0 = ( dq0 + Abs( q5,0 - 2 * q4,0 + q3,0 ) + 1 ) >> 1
dq3 = ( dq3 + Abs( q5,3 - 2 * q4,3 + q3,3 ) + 1 ) >> 1
dpq0, dpq3, dp, dq, d는 HEVC에서와 같이 유도된다.
그러면 조건 2는 다음과 같이 정의된다.
Condition2 = (d < β) ? 참(TRUE): 거짓(FALSE)
여기서, 섹션 2.1.4에 나타낸 것 처럼, d=dp0+dq0+dp3+dq3이다.
Condition1 및 Condition2가 유효한 경우, 블록 중 서브블록을 사용하는 블록이 있는지 확인한다.
If(bSidePisLargeBlk)
If(mode block P == SUBBLOCKMODE)
Sp =5
else
Sp =7
else
Sp = 3
If(bSideQisLargeBlk)
If(mode block Q == SUBBLOCKMODE)
Sq =5
else
Sq =7
else
Sq = 3
마지막으로, Condition 1 및 Condition 2가 모두 유효하면 제안하는 디블로킹 방법은 Condition 3(큰 블록 강력한 필터 조건)을 확인하며, 이는 다음과 같이 정의된다.
Condition3 StrongFilterCondition에서, 다음 변수가 유도된다:
dpq는 HEVC에서와 같이 유도된다.
sp3 = Abs(p3 - p0 ), HEVC에서와 같이 유도됨
if(p측이 32보다 크거나 같음)
if(Sp==5)
sp3 = ( sp3 + Abs( p5 - p3 ) + 1) >> 1
else
sp3 = ( sp3 + Abs( p7 - p3 ) + 1) >> 1
sq3 = Abs( q0 - q3 ), HEVC에서와 같이 유도됨
if (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) 보다 작다. 참(TRUE) : 거짓(FALSE)
도 6은 루마 디블로킹 필터링 프로세스의 흐름도를 도시한다.
2.2.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 크로마 샘플 그리드에서 디블로킹을 수행한다.
2.2.7. 크로마에 대한 디블로킹 제어
위의 크로마 필터는 8x8 크로마 샘플 그리드에서 디블로킹을 수행한다. 크로마 강력 필터(chroma strong filter)는 블록 경계의 양측에 사용된다. 여기서, 크로마 필터는 크로마 가장자리의 양측이 8(크로마 샘플 유닛) 이상일 때 선택되고, 다음 세 가지 조건으로 결정이 만족된다. 첫 번째는 큰 블록뿐만 아니라 경계 강도를 결정하기 위한 것이다. 두 번째와 세 번째는 기본적으로 HEVC 루마 결정과 동일하고, 각각 껴기/끄기(on/off) 결정과 강력 필터(strong filter) 결정이다.
도 7은 크로마 디블로킹 필터링 프로세스의 흐름도를 도시한다.
2.2.8. 위치 종속 클리핑
제안은 또한 경계에서 7, 5 및 3 샘플을 수정하는 강력하고 긴 필터를 포함하는 루마 필터링 프로세스의 출력 샘플에 적용되는 위치 종속 클리핑 tcPD를 도입한다. 양자화 오차 분포(quantization error distribution)를 가정하면, 양자화 잡음이 높을 것으로 예상되므로 실제 샘플 값에서 재구성된 샘플 값의 편차가 더 클 것으로 예상되는 샘플에 대해 클리핑 값을 증가시키는 것을 제안한다.
제안된 비대칭 필터로 필터링된 각 P 또는 Q 경계에 대해, 섹션 2.2에 설명된 의사 결정 프로세스의 결과에 따라 디코더에 부가 정보로 제공되는 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 는 클리핑 후 출력 샘플 값이고 tcP i tcP i 는 VVC tc 파라미터 및 tcPD 및 tcQD에서 유도된 클리핑 임계값이다. 용어 clip3은 VVC에 지정된 대로 클리핑 기능이다.
2.2.9. 서브블록 디블로킹 조정(Sub-block deblocking adjustment)
긴 필터와 서브블록 디블로킹을 모두 사용하여 병렬 친화적인 디블로킹을 활성화하기 위해 긴 필터(long filter)는 긴 필터에 대한 루마 제어에 표시된 대로 서브블록 디블로킹 (아핀 또는 ATMVP)을 사용하는 측면 상의 많아야 5 개의 샘플을 수정하도록 제한된다. 또한, CU 또는 암시적 TU 경계에 가까운 8x8 그리드의 서브블록 경계가 각 측면에서 최대 두 개의 샘플을 수정하도록 제한되도록 서브블록 디블로킹이 조정된다.
다음은 CU 경계와 정렬되지 않은 서브블록 경계에 적용된다.
If(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의 암시적 분할이 사용되는 경우, 암시적 TU는 참이다. 도 8은 TU 경계 및 서브 PU 경계에 대한 결정 프로세스의 흐름도를 나타낸다.
수평 경계의 필터링은 수평 경계가 CTU 경계와 정렬될 때, 루마의 경우, Sp=3, 크로마의 경우, Sp=1 및 Sq=1로 제한된다.
2.2.10. 모션의 더 작은 차이에 적응된 디블로킹 결정
HEVC는 경계의 각 측면에 있는 블록 사이의 적어도 하나의 모션 벡터 컴포넌트의 차이가 1 샘플의 임계값 이상인 경우, 예측 유닛 경계의 디블로킹을 가능하게 한다. VTM6에서, 모션 벡터의 차이가 작은 예측 유닛 간 경계에서 발생하는 블로킹 아티팩트도 제거할 수 있도록 1/2 루마 샘플의 임계값이 도입되었다.
2.3. 결합된 인터 및 인트라 예측(Combined inter and intra prediction)(CIIP)
VTM6에서, CU가 병합 모드로 코딩될 때, CU에 6네 개 이상의 루마 샘플이 포함되어 있고(즉, CU 너비 곱하기 CU 높이가 64보다 크거나 같은 경우), CU 너비와 CU 높이가 모두 128 루마 샘플보다 작은 경우, 결합된 인터/인트라 예측(CIIP) 모드가 현재 CU에 적용되는지 여부를 나타내기 위해 추가 플래그가 시그널링된다. 이름에서 알 수 있듯이, CIIP 예측은 인터 예측 신호와 인트라 예측 신호를 결합한다. CIIP 모드 Pinter의 인터 예측 신호는 일반 병합 모드에 적용된 동일한 인터 예측 프로세스를 사용하여 유도되고; 인트라 예측 신호 Pintra는 플라나 모드를 사용한 정규 인트라 예측 프로세스에 따라 유도된다. 그 다음, 가중 평균을 사용하여 인트라 및 인터 예측 신호를 결합하며, 여기서 가중치 값은 상단 및 왼측 주변 블록의 코딩 모드에 따라 다음과 같이 계산된다:
상단 이웃이 사용 가능하고 인트라 코딩된 경우, isIntraTop을 1로 설정하고, 그렇지 않으면, isIntraTop을 0으로 설정한다;
왼측 이웃이 사용 가능하고 인트라 코딩된 경우, isIntraLeft를 1로 설정하고 그렇지 않으면, isIntraLeft를 0으로 설정한다;
(isIntraLeft + isIntraLeft)가 2와 같으면 wt는 3으로 설정된다;
그렇지 않고, (isIntraLeft + isIntraLeft)가 1과 같으면, wt는 2로 설정된다;
그렇지 않으면, wt를 1로 설정한다.
CIIP 예측은 다음과 같이 구성된다:
PCIIP = ((4-wt) * Pinter + wt * Pintra + 2) ≫2
2.4. VTM-6.0의 Chroma QP 테이블 디자인
일부 실시예에서, 크로마 QP 테이블이 사용된다. 일부 실시예에서, 신호 메커니즘은 크로마 QP 테이블에 사용되고, 이는 인코더에 SDR 및 HDR 콘텐츠에 대한 테이블을 최적화할 기회를 유연하게 제공할 수 있게 한다. Cb 및 Cr 컴포넌트에 대해 별도로 테이블 시그널링을 지원한다. 제안된 메커니즘은 크로마 QP 테이블을 조각별 선형 함수로 시그널링 한다.
2.5. 트랜스폼 스킵(Transform Skip)(TS)
HEVC에서와 같이, 블록의 잔차(residual)는 변형 스킵 모드로 코딩 될 수 있다. 신택스 코딩(syntax coding)의 중복을 방지하려면, 변현 스킵 플래그(transform skip flag)는 CU 레벨 AMT 플래그가 0이 아닐 때 시그널링 하지 않는다. 트랜스폼 스킵(transform skip)에 대한 블록 크기 제한은 JEM4의 MTS와 동일하고, 이는 블록 너비와 높이가 32미만일 때 트랜스폼 스킵이 CU에 적용가능하다는 것을 나타낸다. 현재 CU에 대해 LFNST 또는 MIP가 활성화되면 암시적 MTS 트랜스폼이 DCT2로 설정된다. 또한, MTS가 인터 코딩된 블록에 대해 활성화된 경우에도 암시적 MTS가 활성화될 수 있다.
또한, 트랜스폼 스킵 블록의 경우, 최소 허용 양자화 파라미터(QP)는 6*(internalBitDepth - inputBitDepth) + 4로 정의된다.
2.6. 크로마 잔차의 공동 코딩(Joint coding of chroma residuals)(JCCR)
일부 실시예에서, 크로마 잔차는 공동으로 코딩된다. 공동 크로마(joint chroma) 코딩 모드의 사용(활성화)은 TU 레벨 플래그 tu_joint_cbcr_residual_flag에 의해 표시되고 선택된 모드는 크로마 CBF에 의해 암시적으로 표시된다. 플래그 tu_joint_cbcr_residual_flag는 TU에 대한 크로마 CBF 중 하나 또는 둘 모두가 1인 경우, 존재한다. PPS 및 슬라이스 헤더에서, 크로마 QP 오프셋 값은 일반 크로마 레지듀얼 코딩 모드에 대해 시그널링된 일반적인 크로마 QP 오프셋 값과 구별하기 위해 공동 크로마 레지듀얼 코딩 모드에 대해 시그널링된다. 이러한 크로마 QP 오프셋 값은 공동 크로마 잔차 코딩 모드를 사용하여 코딩된 블록에 대한 크로마 QP 값을 유도하는 데 사용된다. 대응하는 공동 크로마 코딩 모드(표 3의 모드 2)가 TU에서 활성화되면, 이 크로마 QP 오프셋은 대응하는 TU의 양자화 및 디코딩 동안 적용된 루마 유도 크로마 QP에 추가된다. 다른 모드(표 3의 모드 1 및 3, 표 3의 크로마 잔차 재구성. CSign 값은 부호 값(+1 또는 -1)으로 슬라이스 헤더에 지정되고, resJointC [] []는 전송된 잔차임)의 경우, 크로마 QP는 기존 Cb 또는 Cr 블록과 동일한 방식으로 유도된다. 전송된 트랜스폼 블록에서 크로마 잔차(resCb 및 resCr)의 재구성 프로세스가 표 3에 나와 있다. 이 모드가 활성화되면, 하나의 단일 공동 크로마 레지듀얼 블록(표 3의 resJointC[x][y])이 시그널링되고, 및 Cb에 대한 잔차 블록(resCb) 및 Cr에 대한 잔차 블록(resCr)은 슬라이스 헤더에 지정된 부호 값인 tu_cbf_cb, tu_cbf_cr, CSign 등의 정보를 고려하여 도출된다.
인코더 측에서, 공동 크로마 컴포넌트는 다음과 같이 유도된다. 모드(위의 표에 나열됨)에 따라, resJointC{1,2}는 인코더에 의해 다음과 같이 생성된다.
Figure pct00003
모드가 2(복구 Cb = C, Cr = CSign * C가 있는 단일 잔차)인 경우,공동 잔차(joint residual)는 다음과 같이 결정된다.
resJointC[ x ][ y ] = ( resCb[ x ][ y ] + CSign * resCr[ x ][ y ] ) / 2.
Figure pct00004
그렇지 않고, 모드가 1(복구 Cb = C, Cr = (CSign * C) / 2가 있는 단일 잔차)인 경우, 공동 잔차는 다음과 같이 결정된다.
resJointC[ x ][ y ] = ( 4 * resCb[ x ][ y ] + 2 * CSign * resCr[ x ][ y ] ) / 5.
Figure pct00005
그렇지 않으면(모드가 3과 동일, 즉, 단일 잔차, 재구성 Cr = C, Cb = (CSign * C) / 2), 공동 잔차는 다음과 같이 결정된다
resJointC[ x ][ y ] = ( 4 * resCr[ x ][ y ] + 2 * CSign * resCb[ x ][ y ] ) / 5.
크로마 잔차의 재구성. CSign 값은 슬라이스 헤더에 지정된 부호 값(+1 또는 -1)이고, resJointC[ ][ ]는 전송된 잔차이다.
tu_cbf_cb tu_cbf_cr Cb 및 Cr 잔차 재구성 모드
1 0 resCb[ x ][ y ] = resJointC[ x ][ y ]
resCr[ x ][ y ] = ( CSign * resJointC[ x ][ y ] ) >> 1
1
1 1 resCb[ x ][ y ] = resJointC[ x ][ y ]
resCr[ x ][ y ] = CSign * resJointC[ x ][ y ]
2
0 1 resCb[ x ][ y ] = ( CSign * resJointC[ x ][ y ] ) >> 1
resCr[ x ][ y ] = resJointC[ x ][ y ]
3
다른 QP가 위의 세 가지 모드에서 사용된다. 모드 2의 경우, JCCR 코딩된 블록용 PPS에서 시그널링된 QP 오프셋이 적용되는 반면, 다른 두 모드의 경우, 적용되지 않고 대신 JCCR 코딩되지 않은 블록용 PPS에서 시그널링된 QP 오프셋이 적용된다.
대응하는 사양은 다음과 같다:
8.7.1 양자화 파라미터에 대한 유도 프로세스
변수 QpY는 다음과 같이 유도된다:
QpY = ( ( qPY_PRED + CuQpDeltaVal + 64 + 2 * QpBdOffsetY )%( 64 + QpBdOffsetY ) ) - QpBdOffsetY (8-933)
양자화 파라미터 Qp'Y는 다음과 같이 유도된다:
Qp'Y = QpY + QpBdOffsetY (8-934)
ChromaArrayType이 0이 아니고 treeType이 SINGLE_TREE 또는 DUAL_TREE_CHROMA와 같으면 다음이 적용된다:
- treeType이 DUAL_TREE_CHROMA와 같을 때, 변수 QpY는 루마 위치( xCb + cbWidth / 2, yCb + cbHeight / 2 )를 커버하는 루마 코딩 유닛의 루마 양자화 파라미터 QpY와 동일하게 설정된다.
- 변수 qPCb, qPCr 및 qPCbCr은 다음과 같이 유도된다:
qPiChroma = Clip3( -QpBdOffsetC, 63, QpY ) (8-935)
qPiCb = ChromaQpTable[ 0 ][ qPiChroma ] (8-936)
qPiCr = ChromaQpTable[ 1 ][ qPiChroma ] (8-937)
qPiCbCr = ChromaQpTable[ 2 ][ qPiChroma ] (8-938)
- Cb 및 Cr 컴포넌트,Qp'Cb 및 Qp'Cr, 공동 Cb-Cr 코딩 Qp'CbCr에 대한 크로마 양자화 파라미터는 다음과 같이 유도된다:
Qp'Cb =  Clip3( -QpBdOffsetC, 63, qPCb + pps_cb_qp_offset + slice_cb_qp_offset +CuQpOffsetCb )
 + QpBdOffsetC (8-939)
Qp'Cr = Clip3( -QpBdOffsetC, 63, qPCr + pps_cr_qp_offset + slice_cr_qp_offset +CuQpOffsetCr )
 + QpBdOffsetC (8-940)
Qp'CbCr = Clip3( -QpBdOffsetC, 63, qPCbCr + pps_cbcr_qp_offset + slice_cbcr_qp_offset +CuQpOffsetCbCr )
 + QpBdOffsetC (8-941)
8.7.3 트랜스폼 계수를 위한 스케일링 프로세스
이 프로세스에 대한 입력은 다음과 같다:
- 현재 픽처의 왼측 상단 루마 샘플에 대한 현재 루마 트랜스폼 블록의 왼측 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
- 트랜스폼 블록 폭(width)을 지정하는 변수 nTbW,
- 트랜스폼 블록 높이를 지정하는 변수 nTbH,
- 현재 블록의 컬러 컴포넌트를 지정하는 변수 cIdx,
- 현재 컬러 컴포넌트의 비트 깊이를 지정하는 변수 bitDepth.
이 프로세스의 출력은 요소 d[ x][y]를 갖는 스케일 된 트랜스폼 계수의 (nTbW) x(nTbH) 어레이 d이다.
양자화 파라미터 qP는 다음과 같이 유도된다:
- cIdx가 0이고 transform_skip_flag[ xTbY ][ yTbY ]가 0이면, 다음이 적용된다:
qP = Qp'Y (8-950)
- 그렇지 않고, cIdx가 0이면(그리고 transform_skip_flag[ xTbY ][ yTbY ]가 1이면) 다음이 적용된다:
qP = Max( QpPrimeTsMin, Qp'Y ) (8-951)
- 그렇지 않고, TuCResMode[ xTbY ][ yTbY ]가 2와 같으면, 다음이 적용된다:
qP = Qp'CbCr (8-952)
- 그렇지 않으면(cIdx가 0이 아님), 다음이 적용된다:
qP = Qp'Cb (8-953)
- 그렇지 않으면(cIdx가 0이 아님), 다음이 적용된다:
qP = Qp'Cr (8-954)
3. 기존 구현의 단점
DMVR 및 BIO는 모션 벡터를 정제하는 동안 원래 신호를 포함하지 않으므로 부정확한 모션 정보로 블록을 코딩할 수 있다. 또한, DMVR과 BIO는 모션 리파인먼트 후에 분수 모션 벡터를 사용하는 경우가 있지만 화면 비디오는 일반적으로 정수 모션 벡터를 사용하므로 현재 모션 정보가 더 정확하지 않고 코딩 성능이 저하된다.
크로마 QP 테이블과 크로마 디블로킹 사이의 상호작용에 문제가 있을 수 있고, 예를 들어 크로마 QP 테이블은 개별 QP에 적용되어야 하지만 QP의 가중치 합은 적용되지 않는다.
루마 디블로킹 필터링 프로세스의 논리는 하드웨어 설계에 복잡하다.
경계 강도 유도의 논리는 소프트웨어와 하드웨어 설계 모두에 너무 복잡하다.
BS 결정 프로세스에서, JCCR은 JCCT가 적용되지 않고 코딩된 블록과 별도로 처리된다. 그러나, JCCR은 잔차를 코딩하는 특별한 방법일 뿐이다. 따라서, 이러한 설계는 명확한 이점 없이 추가 복잡성을 가져올 수 있다.
크로마 가장자리 결정에서, QpQ 및 QpP는 각각 샘플 q0,0 및 p0,0을 포함하는 코딩 블록을 포함하는 코딩 유닛의 QpY 값과 동일하게 설정된다. 그러나, 양자화/역양자화 프로세스에서, 크로마 샘플에 대한 QP는 현재 크로마 CU의 중심 위치의 대응하는 루마 샘플을 커버하는 루마 블록의 QP로부터 유도된다. 이중 트리(dual tree)가 활성화되면 루마 블록의 다른 위치로 인해 QP가 달라질 수 있다. 따라서, 크로마 디블로킹 프로세스에서, 잘못된 QP가 필터 결정에 사용될 수 있다. 이러한 정렬 불량으로 인해 시각적 아티팩트가 발생할 수 있다. 도 9(a) 및 도 9(b)를 포함하는 예가 도 9에 나타난다. 도 9에서, 왼측(도 9(a))은 루마 블록에 대한 대응하는 CTB 파티셔닝이고 오른측(도 9(b))은 이중 트리에서 크로마 CTB 파티셔닝이다. CUc1로 표시된 크로마 블록에 대한 QP를 결정할 때 CUc1의 중심 위치가 먼저 유도된다. 그런 다음 CUc1의 중심 위치의 대응하는 루마 샘플이 식별되고 대응하는 루마 샘플, 즉 CUY3를 커버하는 루마 CU와 연관된 루마 QP가 CUc1에 대한 QP를 유도하기 위해 그때 사용된다. 그러나, 묘사된 세 개의 샘플(실선 원 포함)에 대한 필터 결정을 내릴 때, 대응하는 세 개의 샘플을 포함하는 CU의 QP가 선택된다. 따라서,제1, 제2 및 제3 크로마 샘플(도 9(b) 참조)에 대해, 각각 CUY2, CUY3, CUY4의 QP가 사용된다. 즉, 동일한 CU의 크로마 샘플은 잘못된 결정을 초래할 수 있는 필터 결정을 위해 서로 다른 QP를 사용할 수 있다.
다른 픽처 레벨 QP 오프셋(즉, pps_joint_cbcr_qp_offset)이 JCCR 코딩된 블록에 적용되며, 이는 비-JCCR 코딩된 블록에 적용된 Cb/Cr(예를 들어, pps_cb_qp_offset 및 pps_cr_qp_offset)에 대한 픽처 레벨 오프셋과 상이하다. 그러나, 크로마 디블로킹 필터링 결정 프로세스에서, JCCR이 아닌 코딩된 블록에 대한 오프셋만 사용된다. 코딩된 모드를 고려하지 않으면 잘못된 필터 결정이 발생할 수 있다.
TS 및 비-TS 코딩된 블록은 역양자화 프로세스에서 서로 다른 QP를 사용하며, 이는 디블로킹 프로세스에서도 고려될 수 있다.
상이한 모드를 갖는 JCCR 코딩된 블록에 대한 스케일링 프로세스(양자화/역양자화)에서 상이한 QP가 사용된다. 그러한 디자인은 일관성이 없다.
4. 예시적인 기술 및 실시예
아래 나열된 세부 기술은 일반적인 개념을 설명하기 위한 예로 고려되어야 한다. 이러한 실시예는 좁은 방법으로 해석되어서는 안 된다. 또한, 이들 실시예는 임의의 방식으로 결합될 수 있다.
후술하는 방법들은 후술하는 DMVR 및 BIO 외에도 다른 디코더 모션 정보 유도 기술(decoder motion information derivation technology)에도 적용될 수 있다.
다음 예에서, MVM [i].x 및 MVM [i].y는 M(M은 P 또는 Q) 측 블록의 레퍼런스 픽처 목록 i(i는 0 또는 1임)에서 모션 벡터의 수평 및 수직 컴포넌트를 나타낸다. Abs는 입력의 절대값을 구하는 연산을 의미하며, "&&"와 "||" 논리 연산 AND 및 OR을 나타낸다. 도 10을 참조하면, P는 P 측의 샘플을 의미할 수 있고, Q는 Q 측의 샘플을 의미할 수 있다. P측 및 Q측 블록은 점선으로 표시된 블록을 의미할 수 있다.
디블로킹의 크로마 QP 관련
1. 크로마 QP 테이블이 (예를 들어, 크로마 블록 가장자리에 대한 결정 프로세스에서) 크로마 디블로킹을 제어하기 위한 파라미터를 유도하는 데 사용되는 경우, 크로마 QP 오프셋은 크로마 QP 테이블을 적용한 후에 적용될 수 있다.
a. 하나의 예에서, 크로마 QP 오프셋은 크로마 QP 테이블에 의해 출력된 값에 추가될 수 있다.
b. 대안적으로, 크로마 QP 오프셋은 크로마 QP 테이블에 대한 입력으로 고려되지 않을 수 있다.
c. 하나의 예에서, 크로마 QP 오프셋은 픽처 레벨 또는 다른 비디오 유닛 레벨(슬라이스/타일/브릭/서브픽처) 크로마 양자화 파라미터 오프셋(예를 들어, 사양에서 pps_cb_qp_offset, pps_cr_qp_offset)일 수 있다.
2. 크로마 QP 테이블의 입력에는 QP 클리핑이 적용되지 않을 수 있다.
3. 디블로킹 필터 결정 프로세스에서 서로 다른 코딩 방법에 사용되는 픽처/슬라이스/타일/브릭/서브픽처 레벨 양자화 파라미터 오프셋을 고려하는 것이 제안된다.
a. 하나의 예에서, 필터 결정(예를 들어, 디블로킹 필터링 프로세스에서 크로마 가장자리 결정)을 위한 픽처/슬라이스/타일/브릭/서브픽처 레벨 양자화 파라미터 오프셋의 선택은 각각의 측에 대한 코딩된 방법에 의존할 수 있다.
b. 하나의 예에서, 크로마 블록에 대한 양자화 파라미터를 사용할 것을 요구하는 필터링 프로세스(예를 들어, 크로마 가장자리 결정 프로세스)는 블록이 JCCR을 사용하는지 여부에 따라 달라질 수 있다.
i. 대안적으로, 또한, JCCR 코딩된 블록에 적용된 픽처/슬라이스-레벨 QP 오프셋(예를 들어, pps_joint_cbcr_qp_offset)은 디블로킹 필터링 프로세스에서 더 고려될 수 있다.
ii. 하나의 예에서, Tc 및 β 설정을 결정하는 데 사용되는 cQpPicOffset은 특정 조건에서 pps_cb_qp_offset 또는 pps_cr_qp_offset 대신 pps_joint_cbcr_qp_offset으로 설정될 수 있다.
1. 하나의 예에서, P 또는 Q 측의 블록 중 하나가 JCCR을 사용하는 경우이다.
2. 하나의 예에서, P 또는 Q 측의 두 블록이 모두 JCCR을 사용하는 경우이다.
4. 루마 블록의 디코딩된 정보에 액세스해야 하는 크로마 필터링 프로세스(예를 들어, 크로마 가장자리 결정 프로세스)는 역양자화/양자화 프로세스에서 크로마 QP를 유도하는 데 사용되는 동일한 루마 코딩 블록과 연관된 정보를 활용할 수 있다.
a. 하나의 예에서, 루마 블록에 대한 양자화 파라미터를 사용할 필요가 있는 크로마 필터링 프로세스(예를 들어, 크로마 가장자리 결정 프로세스)는 현재 크로마 CU의 중심 위치의 대응하는 루마 샘플을 커버하는 루마 코딩 유닛을 활용할 수 있다.
b. CUY3의 디코딩된 정보가 도 9(b)의 세 개의 크로마 샘플(1차, 2차 및 3차)의 필터링 결정에 사용될 수 있는 예가 도 9에 도시되어 있다.
5. 크로마 필터링 프로세스(예를 들어, 크로마 가장자리 결정 프로세스)는 크로마 블록의 스케일링 프로세스(예를 들어, 양자화/역양자화)에 적용된 양자화 파라미터에 의존할 수 있다.
a. 하나의 예에서, β 및 Tc를 유도하기 위해 사용되는 QP는 크로마 블록의 스케일링 프로세스에 적용된 QP에 의존할 수 있다.
b. 대안적으로, 또한, 크로마 블록의 스케일링 프로세스에 사용된 QP는 크로마 CU 레벨 QP 오프셋을 고려했을 수 있다.
6. 위의 글머리 기호(bullet)를 호출하는 것이 필터링될 샘플에 의존할지 여부는 P 또는 Q 측 블록에 있다.
a. 예를 들어, 현재 크로마 샘플의 대응하는 루마 샘플을 포함하는 루마 코딩 블록의 정보를 사용할지 아니면 현재 크로마 샘플을 포함하는 크로마 코딩 블록의 중심 위치의 대응하는 루마 샘플을 포함하는 루마 코딩 블록의 정보를 사용할지 여부는 블록 위치에 따라 달라질 수 있다.
i. 하나의 예에서, 현재 크로마 샘플이 Q 측의 블록에 있는 경우, 현재 크로마 샘플을 커버하는 크로마 코딩 블록의 중심 위치의 대응하는 루마 샘플을 커버하는 루마 코딩 블록의 QP 정보가 사용될 수 있다.
ii. 하나의 예에서, 현재 크로마 샘플이 P 측의 블록에 있는 경우, 크로마 샘플의 대응하는 루마 샘플을 커버하는 루마 코딩 블록의 QP 정보가 사용될 수 있다.
QP 설정에 관하여
7. 슬라이스/타일/브릭/서브픽처 레벨에서 블록 레벨 크로마 QP 오프셋(예를 들어, slice_cu_chroma_qp_offset_enabled_flag)을 활성화하는 표시를 시그널링하는 것이 제안된다.
a. 대안적으로, 그러한 표시의 시그널링은 조건부로 시그널링될 수 있다.
i. 하나의 예에서, JCCR 활성화 플래그의 조건하에 시그널링될 수 있다.
ii. 하나의 예에서, 픽처 레벨에서 블록 레벨 크로마 QP 오프셋 활성화 플래그의 조건 하에서 시그널링될 수 있다.
iii. 대안적으로, 그러한 표시가 대신 유도될 수 있다.
b. 하나의 예에서, slice_cu_chroma_qp_offset_enabled_flag는 크로마 QP의 PPS 플래그가 오프셋(예를 들어, slice_cu_chroma_qp_offset_enabled_flag)은 참이다.
c. 일례에서, slice_cu_chroma_qp_offset_enabled_flag는 크로마 QP의 PPS 플래그가 오프셋(예를 들어, slice_cu_chroma_qp_offset_enabled_flag)은 거짓이다.
d. 하나의 예에서, 블록에 대한 크로마 QP 오프셋을 사용할지 여부는 PPS 레벨 및/또는 슬라이스 레벨에서 크로마 QP 오프셋의 플래그에 기초할 수 있다.
8. 상이한 모드의 JCCR 코딩 블록에 대한 스케일링 프로세스(양자화/역양자화)에서 동일한 QP 유도 방법이 사용된다.
a. 하나의 예에서, 모드 1 및 3을 갖는 JCCR의 경우, QP는 픽처/슬라이스 레벨(예를 들어, pps_cbcr_qp_offset, slice_cbcr_qp_offset)에서 시그널링된 QP 오프셋에 의존한다.
필터링 프로세스
9. 제1 컬러 컴포넌트를 제외한 모든 컬러 컴포넌트에 대한 디블로킹은 제1 컬러 컴포넌트에 대한 디블로킹 프로세스를 따를 수 있다.
a. 하나의 예에서, 컬러 포맷이 4:4:4인 경우, 제2 및 제3 컴포넌트에 대한 디블로킹 프로세스는 제1 컴포넌트에 대한 디블로킹 프로세스를 따를 수 있다.
b. 하나의 예에서, RGB 컬러 공간에서 컬러 포맷이 4:4:4인 경우, 제2 및 제3 컴포넌트에 대한 디블로킹 프로세스는 제1 컴포넌트에 대한 디블로킹 프로세스를 따를 수 있다.
c. 하나의 예에서, 컬러 포맷이 4:2:2인 경우, 제2 및 제3 컴포넌트에 대한 수직 디블로킹 프로세스는 제1 컴포넌트에 대한 수직 디블로킹 프로세스를 따를 수 있다.
d. 위의 예에서, 디블로킹 프로세스는 디블로킹 결정 프로세스 및/또는 디블로킹 필터링 프로세스를 참조할 수 있다.
경계 강도 유도에 관하여
10. 경계 강도 결정 프로세스에서 JCCR 코딩된 블록을 비JCCR 코딩된 블록으로 처리하는 것이 제안된다.
a. 하나의 예에서, 경계 강도(BS)의 결정은 P 및 Q 측에서 두 개의 블록에 대한 JCCR의 사용 검사와 독립적일 수 있다.
a. 하나의 예에서, 블록에 대한 경계 강도(BS)는 블록이 JCCR로 코딩되는지 여부와 무관하게 결정될 수 있다.
11. P 측의 블록과 연관된 레퍼런스 픽처 및/또는 MV의 수를 Q 측의 블록의 레퍼런스 픽처와 비교하지 않고 경계 강도(BS)를 유도하는 것이 제안된다.
b. 하나의 예에서, 두 블록이 서로 다른 레퍼런스 픽처를 갖는 경우에도 디블로킹 필터가 비활성화될 수 있다.
c. 하나의 예에서, 디블로킹 필터는 두 개의 블록이 상이한 수의 MV를 갖는 경우에도 비활성화될 수 있다(예를 들어, 하나는 단일 예측되고 다른 하나는 이중 예측됨).
d. 하나의 예에서, P 측과 Q 측의 블록 사이의 하나 또는 모든 레퍼런스 픽처 목록에 대한 모션 벡터 차이가 임계값 Th보다 크거나 같을 때 BS의 값은 1로 설정될 수 있다.
i. 대안적으로, 또한, BS의 값은 P 측과 Q 측의 블록 사이의 하나 또는 모든 레퍼런스 픽처 목록에 대한 모션 벡터 차이가 임계값 Th보다 작거나 같을 때 0으로 설정될 수 있다.
e. 하나의 예에서, 임계 Th보다 큰 두 블록의 모션 벡터의 차이는 (Abs(MVP[0].x - MVQ[0].x) > Th || Abs(MVP[0].y - MVQ[0].y) > Th || Abs(MVP[1].x - MVQ[1].x) > Th) || Abs(MVP[1].y - MVQ[1].y) > Th)으로 정의 된다.
i. 대안적으로, 임계값 Th보다 큰 두 블록의 모션 벡터의 차이는 (Abs(MVP[0].x - MVQ[0].x) > Th && Abs(MVP[0].y - MVQ[0].y) > Th && Abs(MVP[1].x - MVQ[1].x) > Th) && Abs(MVP[1].y - MVQ[1].y) > Th)으로 정의된다.
ii. 대안적으로, 하나의 예에서, 임계 Th보다 큰 두 블록의 모션 벡터의 차이는 (Abs(MVP[0].x - MVQ[0].x) > Th || Abs(MVP[0].y - MVQ[0].y) > Th ) && (Abs(MVP[1].x - MVQ[1].x) > Th) || Abs(MVP[1].y - MVQ[1].y) > Th)으로 정의된다.
iii. 대안적으로, 하나의 예에서, 임계 Th보다 큰 두 블록의 모션 벡터의 차이는 (Abs(MVP[0].x - MVQ[0].x) > Th && Abs(MVP[0].y - MVQ[0].y) > Th ) || (Abs(MVP[1].x - MVQ[1].x) > Th) && Abs(MVP[1].y - MVQ[1].y) > Th)으로 정의 된다.
f. 하나의 예에서, 주어진 목록에 모션 벡터가 없는 블록은 그 목록에서 제로 모션 벡터를 갖는 것으로 취급될 수 있다.
g. 위의 예에서, Th는 정수(예를 들어, 4, 8 또는 16)이다.
h. 위의 예에서, Th는 다음에 따라 달라질 수 있다.
i. 비디오 콘텐츠(Video content)(예를 들어, 스크린 콘텐츠 또는 자연 콘텐츠)
ii. DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU(최대 코딩 유닛)/CU(코딩 유닛)/LCU 행/LCU의 그룹/TU/PU 블록/비디오 코딩 유닛에서 시그널링되는 메시지
iii. CU/PU/TU/블록/비디오 코딩 유닛의 위치
iv. 가장자리를 따라 샘플을 포함하는 블록의 코딩된 모드
v. 가장자리를 따라 샘플을 포함하는 블록에 적용된 트랜스폼 행렬
vi. 현재 블록 및/또는 인접 블록의 블록 차원(dimension)
vii. 컬러 포맷 표시(예를 들어, 4:2:0, 4:4:4, RGB 또는 YUV)
viii. 코딩 트리 구조(예를 들어, 이중 트리 또는 단일 트리)
ix. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
x. 컬러 컴포넌트(예를 들어, Cb 또는 Cr에만 적용될 수 있음)
xi. 시간적 계층 ID
xii. 표준의 프로필/레벨/계층
xiii. 대안적으로, Th는 디코더에 시그널링될 수 있다.
i. 위의 예는 특정 조건에서 적용될 수 있다.
i. 하나의 예에서, 조건은 blkP 및 blkQ가 인트라 모드로 코딩되지 않는다는 것이다.
ii. 하나의 예에서, 조건은 blkP이고 blkQ는 루마 컴포넌트에 대한 계수가 0이다.
iii. 하나의 예에서, 조건은 blkP 및 blkQ가 CIIP 모드로 코딩되지 않은 것이다.
iv. 하나의 예에서, 조건은 blkP 및 blkQ가 동일한 예측 모드(예를 들어, IBC 또는 Inter)로 코딩되는 것이다.
루마 디블로킹 필터링 프로세스에 관하여
12. 디블로킹은 TS 코딩된 블록 및 비-TS 코딩된 블록에 대해 상이한 QP를 사용할 수 있다.
a. 하나의 예에서, TS에 대한 QP는 TS 코딩된 블록에 사용될 수 있는 반면 비-TS에 대한 QP는 비-TS 코딩된 블록에 사용될 수 있다.
13. 루마 필터링 프로세스(예를 들어, 루마 가장자리 결정 프로세스)는 루마 블록의 스케일링 프로세스에 적용되는 양자화 파라미터에 의존할 수 있다.
a. 하나의 예에서, β 및 Tc를 유도하는 데 사용되는 QP는, 예를 들어 QpPrimeTsMin에 의해 표시된 바와 같이 트랜스폼 스킵의 클리핑 범위에 의존할 수 있다.
14. 큰 블록 경계와 작은 블록 경계에 대해 동일한 그레디언트 계산을 사용하는 것이 제안된다.
a. 하나의 예에서, 섹션 2.1.4에 설명된 디블로킹 필터 켜기/끄기 결정은 큰 블록 경계에도 적용될 수 있다.
i. 하나의 예에서, 결정의 임계값 β는 큰 블록 경계에 대해 수정될 수 있다.
1. 하나의 예에서, β는 양자화 파라미터에 의존할 수 있다.
2. 하나의 예에서, 큰 블록 경계에 대한 디블로킹 필터링 껴기/끄기 결정에 사용되는 β는 더 작은 블록 경계에 대한 β보다 작을 수 있다.
a. 대안적으로, 하나의 예에서, 큰 블록 경계에 대한 디블로킹 필터링 껴기/끄기 결정에 사용되는 β는 작은 블록 경계에 대한 β보다 클 수 있다.
b. 대안적으로, 하나의 예에서, 큰 블록 경계에 대한 디블로킹 필터 껴기/끄기 결정에 사용되는 β는 더 작은 블록 경계에 대한 β와 동일할 수 있다.
3. 하나의 예에서, β는 정수이며 다음을 기반으로 할 수 있다.
a. 비디오 콘텐츠(Video content)(예를 들어, 스크린 콘텐츠 또는 자연 콘텐츠)
b. DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU(최대 코딩 유닛)/CU(코딩 유닛)/LCU 행/LCU의 그룹/TU/PU 블록/비디오 코딩 유닛에서 시그널링되는 메시지
c. CU/PU/TU/블록/비디오 코딩 유닛의 위치
d. 가장자리를 따라 샘플을 포함하는 블록의 코딩된 모드
e. 가장자리를 따라 샘플을 포함하는 블록에 적용된 트랜스폼 행렬
f. 현재 블록 및/또는 인접 블록의 블록 차원(dimension)
g. 현재 블록 및/또는 인접 블록의 블록 형상(shape)
h. 컬러 포맷 표시(예를 들어, 4:2:0, 4:4:4, RGB 또는 YUV)
i. 코딩 트리 구조(예를 들어, 이중 트리 또는 단일 트리)
j. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
k. 컬러 컴포넌트(예를 들어, Cb 또는 Cr에만 적용될 수 있음)
l. 시간적 계층 ID
m. 표준의 프로필/레벨/계층
n. 대안적으로, β는 디코더에 시그널링될 수 있다.
일반
15. 위에서 제안한 방법은 특정 조건에서 적용될 수 있다.
a. 하나의 예에서, 조건은 컬러 포맷이 4:2:0 및/또는 4:2:2이다.
i. 대안적으로, 또한, 4:4:4 컬러 포맷의 경우, 두 컬러 크로마 컴포넌트에 디블로킹 필터를 적용하는 방법은 현재 디자인을 따를 수 있다.
b. 하나의 예에서, 위의 방법들의 사용 표시는 SPS/PPS/픽처 헤더/슬라이스 헤더와 같은 시퀀스/픽처/슬라이스/타일/브릭/비디오 영역 레벨로 시그널링될 수 있다.
c. 한 가지 예에서 위 방법의 사용법은 다음에 따라 달라질 수 있다.
ii. 비디오 콘텐츠(Video content)(예를 들어, 스크린 콘텐츠 또는 자연 콘텐츠)
iii. DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU(최대 코딩 유닛)/CU(코딩 유닛)/LCU 행/LCU의 그룹/TU/PU 블록/비디오 코딩 유닛에서 시그널링되는 메시지
iv. CU/PU/TU/블록/비디오 코딩 유닛의 위치
v. 가장자리를 따라 샘플을 포함하는 블록의 코딩된 모드
vi. 가장자리를 따라 샘플을 포함하는 블록에 적용된 트랜스폼 행렬
vii. 현재 블록 및/또는 인접 블록의 블록 차원(dimension)
viii. 현재 블록 및/또는 인접 블록의 블록 형상(shape)
ix. 컬러 포맷 표시(예를 들어, 4:2:0, 4:4:4, RGB 또는 YUV)
x. 코딩 트리 구조(예를 들어, 이중 트리 또는 단일 트리)
xi. 슬라이스/타일 그룹 유형 및/또는 픽처 유형
xii. 컬러 컴포넌트(예를 들어, Cb 또는 Cr에만 적용될 수 있음)
xiii. 시간적 계층 ID
xiv. 표준의 프로필/레벨/계층
xv. 대안적으로, m 및/또는 n은 디코더에 시그널링될 수 있다.
5. 추가 실시예
새로 추가된 텍스트는 밑줄이 그어진 굵은 이탤릭체로 표시된다. 삭제된 텍스트는 [[]]로 표시된다.
5.1. 디블로킹에서 크로마 QP에 대한 실시예 #1
8.8.3.6 한 방향에 대한 가장자리 필터링 프로세스
...
그렇지 않은 경우(cIdx가 0이 아님), cIdx에 의해 지정된 현재 코딩 유닛의 크로마 코딩 블록에 있는 가장자리에 대한 필터링 프로세스는 다음과 같은 순서화된 단계로 구성된다:
1. 변수 cQpPicOffset은 다음과 같이 유도된다:
cQpPicOffset = cIdx = = 1 ? pps_cb_qp_offset : pps_cr_qp_offset (8-1065)
8.8.3.6.3 크로마 블록 가장자리에 대한 결정 프로세스
...
변수 QpQ 및 QpP는 각각 샘플 q0,0 및 p0,0을 포함하는 코딩 블록을 포함하는 코딩 유닛의 QpY 값과 동일하게 설정된다.
변수 QpC는 다음과 같이 유도된다:
[[qPi = Clip3( 0, 63, ( ( QpQ + QpP + 1 )  >>  1 ) + cQpPicOffset ) (8-1132)
QpC = ChromaQpTable[ cIdx - 1 ][ qPi ] (8-1133)]]
qPi = ( QpQ + QpP + 1 )  >>  1 (8-1132)
QpC = ChromaQpTable[ cIdx - 1 ][ qPi ] + cQpPicOffset (8-1133)
참고 - 변수 cQpPicOffset은 필터링된 크로마 컴포넌트가 Cb 컴포넌트인지 Cr 컴포넌트인지에 따라 pps_cb_qp_offset 또는 pps_cr_qp_offset 값에 대한 조정을 제공한다. 그러나, 픽처 내 조정의 양을 변경할 필요를 피하기 위해, 필터링 프로세스는 slice_cb_qp_offset 또는 slice_cr_qp_offset의 값에 대한 및 (cu_chroma_qp_offset_enabled_flag가 1인 경우) CuQpOffsetCb, CuQpOffsetCr, 또는 CuQpOffsetCbCr.의 값에 대한 조정을 포함하지 않는다.
변수 β'의 값은 다음과 같이 유도된 양자화 파라미터 Q를 기반으로 표 8-18에 지정된 대로 결정된다:
Q = Clip3( 0, 63, QpC + ( slice_beta_offset_div2  <<  1 ) ) (8-1134)
여기서 slice_beta_offset_div2는 샘플 q0,0을 포함하는 슬라이스에 대한 신택스 요소 slice_beta_offset_div2의 값이다.
변수 β는 다음과 같이 유도된다:
β = β' * ( 1  <<  ( BitDepthC - 8 ) ) (8-1135)
변수 tC'의 값은 다음과 같이 유도된 크로마 양자화 파라미터 Q를 기반으로 표 8-18에 지정된 대로 결정된다:
Q = Clip3( 0, 65, QpC + 2 * ( bS - 1 ) + ( slice_tc_offset_div2  <<  1 ) ) (8-1136)
여기서 slice_tc_offset_div2는 샘플 q0,0을 포함하는 슬라이스에 대한 신택스 요소 slice_tc_offset_div2의 값이다.
변수 tC는 다음과 같이 유도된다:
tC = ( BitDepthC < 10 ) ? ( tC' + 2 ) >> ( 10 - BitDepthC ) : tC' * ( 1  <<  ( BitDepthC - 8 ) ) (8-1137)
5.2. 경계 강도 유도에 대한 실시예 #2
8.8.3.5 경계 필터링 강도의 유도 프로세스
이 프로세스에 대한 입력은 다음과 같다:
- 픽처 샘플 어레이 recPicture,
- 현재 픽처의 왼측 상단 루마 샘플에 대한 현재 코딩 블록의 왼측 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
- 현재 코딩 서브블록의 너비를 지정하는 변수 sbWidth,
- 현재 코딩 서브블록의 높이를 지정하는 변수 sbHeight,
- 수직(EDGE_VER) 또는 수평(EDGE_HOR) 가장자리가 필터링되는지 여부를 지정하는 변수 edgeType,
- 현재 블록의 컬러 컴포넌트를 지정하는 변수 cIdx.
- 2차원 (nCbW)x(nCbH) 어레이 edgeFlags.
이 프로세스의 출력은 경계 필터링 강도를 지정하는 2차원 (nCbW)x(nCbH) 어레이 bS이다.
...
i = 0..xN인 xDi 및 j = 0..yN인 yDj의 경우, 다음이 적용된다:
- edgeFlags[ xDi ][ yDj ]가 0과 같으면, 변수 bS[ xDi ][ yDj ]는 0으로 설정된다.
- 그렇지 않으면, 다음이 적용된다:
...
- 변수 bS[ xDi ][ yDj ]는 다음과 같이 유도된다:
- cIdx가 0이고 샘플 p0 및 q0이 모두 intra_bdpcm_flag가 1인 코딩 블록에 있는 경우, bS[ xDi ][ yDj ]는 0으로 설정된다.
- 그렇지 않고, 샘플 p0 또는 q0이 인트라 예측 모드로 코딩된 코딩 유닛의 코딩 블록에 있으면, bS[ xDi ][ yDj ]는 2와 동일하게 설정된다.
- 그렇지 않고, 블록 가장자리가 트랜스폼 블록 가장자리이기도 하고 샘플 p0 또는 q0이 ciip_flag가 1인 코딩 블록에 있는 경우, bS[ xDi ][ yDj ]는 2와 동일하게 설정된다.
- 그렇지 않고, 블록 가장자리가 트랜스폼 블록 가장자리이고 샘플 p0 또는 q0이 하나 이상의 0이 아닌 트랜스폼 계수 레벨을 포함하는 트랜스폼 블록에 있는 경우, bS[ xDi ][ yDj ]는 1과 동일하게 설정된다.
- 그렇지 않고, 블록 가장자리가 트랜스폼 블록 가장자리이기도 하면 cIdx는 0보다 크고, 샘플 p0 또는 q0은 tu_joint_cbcr_residual_flag가 1인 트랜스폼 유닛에 있고 bS[ xDi ][ yDj ]는 1로 설정된다.
- 그렇지 않으면, 샘플 p0을 포함하는 코딩 서브블록의 예측 모드가 샘플 q0을 포함하는 코딩 서브블록의 예측 모드와 다른 경우(즉, 코딩 서브블록 중 하나는 IBC 예측 모드로 코딩되고 다른 하나는 인터 예측 모드로 코딩됨) ), bS[ xDi ][ yDj ]는 1로 설정된다.
- 그렇지 않고, cIdx가 0이고 다음 조건 중 하나 이상이 참이면 bS[ xDi ][ yDj ]는 1로 설정된다:
- 두 개의 코딩 서브블록의 예측에 사용된 목록 0 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이가 1/16 루마 샘플에서 8 이상이거나, 또는 두 개의 코딩 서브블록의 예측에 사용된 목록 1 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/16 루마 샘플 유닛으로 8 이상이다.
- [[샘플 p0을 포함하는 코딩 서브블록과 샘플 q0을 포함하는 코딩 서브블록이 모두 IBC 예측 모드에서 코딩되고, 두 개의 코딩 서브블록의 예측에 사용된 블록 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/16 루마 샘플 유닛으로 8 이상이다.
- 샘플 p0을 포함하는 코딩 서브블록의 예측을 위해 샘플 q0을 포함하는 코딩 서브블록의 예측을 위한 것과 다른 레퍼런스 픽처 또는 다른 수의 모션 벡터가 사용된다.
참고 1 - 두 개의 코딩 서브록에 사용된 레퍼런스 픽처가 동일한지 또는 상이한지 여부의 결정은 레퍼런스 픽처 목록 0에 대한 인덱스 또는 레퍼런스 픽처 목록 1에 대한 인덱스를 사용하여 예측이 형성되는지 여부와 무관하게, 또한 레퍼런스 픽처 목록 내의 인덱스 위치가 다른지 여부와 무관하게 참조되는 픽처에만 기초한다.
참고 2 - 왼측 상단 샘플을 커버하는( xSb, ySb ) 코딩 서브블록의 예측에 사용되는 모션 벡터의 수는 PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ]와 같다.
- 하나의 모션 벡터는 샘플 p0를 포함하는 코딩 서브블록을 예측하는 데 사용되고 하나의 모션 벡터는 샘플 q0을 포함하는 코딩 서브블록을 예측하는 데 사용되고, 사용된 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/16 루마 샘플 단위로 8 이상이다.
- 두 개의 모션 벡터와 두 개의 다른 레퍼런스 픽처는 샘플 p0를 포함하는 코딩 서브블록을 예측하는 데 사용되고, 동일한 두 개의 레퍼런스 픽처에 대한 두 개의 모션 벡터는 샘플 q0 및 수평 또는 수직 컴포넌트 사이의 절대 차이를 포함하는 코딩 서브블록을 예측하는 데 사용되고, 동일한 레퍼런스 픽처에 대한 두 개의 코딩 서브블록의 예측에 사용된 두 개의 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/16 루마 샘플 단위로 8 이상이다
- 동일한 레퍼런스 픽처에 대한 두 개의 모션 벡터는 샘플 p0을 포함하는 코딩 서브블록을 예측하는 데 사용되고, 동일한 레퍼런스 픽처에 대한 두 개의 모션 벡터는 샘플 q0을 포함하는 코딩 서브블록을 예측하는 데 사용되고 다음 조건 모두가 참이다:
- 두 개의 코딩 서브블록의 예측에 사용된 목록 0 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/16 루마 샘플에서 8 이상이거나 목록의 수평 또는 수직 컴포넌트 사이의 절대 차이 두 개의 부호화 서브블록의 예측에 사용되는 1개의 모션 벡터는 1/16 루마 샘플 유닛으로 8 이상이다.
- 샘플 p0을 포함하는 코딩 서브블록의 예측에 사용된 목록 0 모션 벡터의 수평 또는 수직 컴포넌트와 샘플 q 0 을 포함하는 코딩 서브블록의 예측에 사용된 목록 1 모션 벡터 사이의 절대 차이는 1/16 루마 샘플 유닛에서 8이상 이거나, 또는 샘플 p 0 를 포함하는 코딩 서브블록의 예측에 사용된 목록 1 모션 벡터의 수평 또는 수직 컴포넌트와 샘플 q 0 을 포함하는 코딩 서브블록의 예측에 사용된 목록 0 모션 벡터 사이의 절대 차이는 1/16 루마 샘플 유닛에서 8 이상이다.]]
- 그렇지 않으면, 변수 bS[ xDi ][ yDj ]가 0으로 설정된다.
5.3. 경계 강도 유도에 대한 실시예 #3
8.8.3.5 경계 필터링 강도의 유도 프로세스
이 프로세스에 대한 입력은 다음과 같다:
- 픽처 샘플 어레이 recPicture,
- 현재 픽처의 왼측 상단 루마 샘플에 대한 현재 코딩 블록의 왼측 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
- 현재 코딩 서브블록의 너비를 지정하는 변수 sbWidth,
- 현재 코딩 서브블록의 높이를 지정하는 변수 sbHeight,
- 수직(EDGE_VER) 또는 수평(EDGE_HOR) 가장자리가 필터링되는지 여부를 지정하는 변수 edgeType,
- 현재 블록의 컬러 컴포넌트를 지정하는 변수 cIdx.
- 2차원 (nCbW)x(nCbH) 어레이 edgeFlags.
이 프로세스의 출력은 경계 필터링 강도를 지정하는 2차원 (nCbW)x(nCbH) 어레이 bS이다.
...
i = 0..xN인 xDi 및 j = 0..yN인 yDj의 경우, 다음이 적용된다:
- edgeFlags[ xDi ][ yDj ]가 0과 같으면, 변수 bS[ xDi ][ yDj ]는 0으로 설정된다.
- 그렇지 않으면, 다음이 적용된다:
...
- 변수 bS[ xDi ][ yDj ]는 다음과 같이 유도된다:
- cIdx가 0이고 샘플 p0 및 q0이 모두 intra_bdpcm_flag가 1인 코딩 블록에 있는 경우, bS[ xDi ][ yDj ]는 0으로 설정된다.
- 그렇지 않고, 샘플 p0 또는 q0이 인트라 예측 모드로 코딩된 코딩 유닛의 코딩 블록에 있으면, bS[ xDi ][ yDj ]는 2와 동일하게 설정된다.
- 그렇지 않고, 블록 가장자리가 트랜스폼 블록 가장자리이기도 하고 샘플 p0 또는 q0이 ciip_flag가 1인 코딩 블록에 있는 경우, bS[ xDi ][ yDj ]는 2와 동일하게 설정된다.
- 그렇지 않고, 블록 가장자리가 트랜스폼 블록 가장자리이고 샘플 p0 또는 q0이 하나 이상의 0이 아닌 트랜스폼 계수 레벨을 포함하는 트랜스폼 블록에 있는 경우, bS[ xDi ][ yDj ]는 1과 동일하게 설정된다.
- [[그렇지 않으면, 블록 가장자리가 트랜스폼 블록 가장자리이기도 하고 cIdx가 0보다 크고 샘플 p0 또는 q0이 tu_joint_cbcr_residual_flag가 1인 트랜스폼 유닛에 있으면, bS[ xDi ][ yDj ]가 1로 설정된다. .]]
- 그렇지 않으면, 샘플 p0을 포함하는 코딩 서브블록의 예측 모드가 샘플 q0을 포함하는 코딩 서브블록의 예측 모드와 다른 경우(즉, 코딩 서브블록 중 하나는 IBC 예측 모드로 코딩되고 다른 하나는 인터 예측 모드로 코딩됨) ), bS[ xDi ][ yDj ]는 1로 설정된다.
- 그렇지 않고, cIdx가 0이고 다음 조건 중 하나 이상이 참이면 bS[ xDi ][ yDj ]는 1로 설정된다:
- 샘플 p0를 포함하는 코딩 서브블록과 샘플 q0을 포함하는 코딩 서브블록이 모두 IBC 예측 모드에서 코딩되고, 두 코딩 서브블록의 예측에 사용된 블록 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이가 1/16 루마 샘플 유닛에서 8 이상이다.
- 샘플 p0을 포함하는 코딩 서브블록의 예측을 위해 샘플 q0을 포함하는 코딩 서브블록의 예측을 위한 것과 다른 레퍼런스 픽처 또는 다른 수의 모션 벡터가 사용된다.
참고 1 - 두 개의 코딩 서브록에 사용된 레퍼런스 픽처가 동일하거나 다른지 여부의 결정은 레퍼런스 픽처 목록 0에 대한 인덱스 또는 레퍼런스 픽처 목록에 대한 인덱스를 사용하여 예측이 형성되는지 여부와 무관하게, 및 또한 레퍼런스 픽처 목록 내의 인덱스 위치가 다른지 여부와 관계 없이 어떤 픽처가 참조되는 지에만 기초한다.
참고 2 - 왼측 상단 샘플을 커버하는( xSb, ySb ) 코딩 서브블록의 예측에 사용되는 모션 벡터의 수는 PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ]와 같다.
- 하나의 모션 벡터는 샘플 p0를 포함하는 코딩 서브블록을 예측하는 데 사용되고 하나의 모션 벡터는 샘플 q0을 포함하는 코딩 서브블록을 예측하는 데 사용되고, 사용된 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/16 루마 샘플 단위로 8 이상이다.
- 두 개의 모션 벡터와 두 개의 다른 레퍼런스 픽처는 샘플 p0를 포함하는 코딩 서브블록을 예측하는 데 사용되고, 동일한 두 개의 레퍼런스 픽처에 대한 두 개의 모션 벡터는 샘플 q0 및 수평 또는 수직 컴포넌트 사이의 절대 차이를 포함하는 코딩 서브블록을 예측하는 데 사용되고, 동일한 레퍼런스 픽처에 대한 두 개의 코딩 서브블록의 예측에 사용된 두 개의 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/16 루마 샘플 단위로 8 이상이다
- 동일한 레퍼런스 픽처에 대한 두 개의 모션 벡터는 샘플 p0을 포함하는 코딩 서브블록을 예측하는 데 사용되고, 동일한 레퍼런스 픽처에 대한 두 개의 모션 벡터는 샘플 q0을 포함하는 코딩 서브블록을 예측하는 데 사용되고 다음 조건 모두가 참이다:
- 두 개의 코딩 서브블록의 예측에 사용된 목록 0 모션 벡터의 수평 또는 수직 컴포넌트 사이의 절대 차이는 1/16 루마 샘플에서 8 이상이거나 목록의 수평 또는 수직 컴포넌트 사이의 절대 차이 두 개의 부호화 서브블록의 예측에 사용되는 1개의 모션 벡터는 1/16 루마 샘플 유닛으로 8 이상이다.
- 샘플 p0을 포함하는 코딩 서브블록의 예측에 사용된 목록 0 모션 벡터의 수평 또는 수직 컴포넌트와 샘플 q0을 포함하는 코딩 서브블록의 예측에 사용된 목록 1 모션 벡터 사이의 절대 차이는 다음보다 크거나 같다. 1/16 루마 샘플 유닛의 8, 또는 샘플 p0를 포함하는 코딩 서브블록의 예측에 사용된 목록 1 모션 벡터의 수평 또는 수직 컴포넌트와 코딩의 예측에 사용된 목록 0 모션 벡터 사이의 절대 차이 샘플 q0을 포함하는 서브블록은 1/16 루마 샘플 유닛으로 8보다 크거나 같다.
- 그렇지 않으면, 변수 bS[ xDi ][ yDj ]가 0으로 설정된다.
5.4. 루마 디블로킹 필터링 프로세스에 대한 실시예 #4
8.8.3.6.1 루마 블록 가장자리에 대한 결정 프로세스
이 프로세스에 대한 입력은 다음과 같다:
- 픽처 샘플 어레이 recPicture,
- 현재 픽처의 왼측 상단 루마 샘플에 대한 현재 코딩 블록의 왼측 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
- 현재 픽처의 왼측 상단 루마 샘플에 대한 현재 코딩 블록의 왼측 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
- 수직(EDGE_VER) 또는 수평(EDGE_HOR) 가장자리가 필터링되는지 여부를 지정하는 변수 edgeType,
- 경계 필터링 강도를 지정하는 변수 bS,
- 최대 필터 길이를 지정하는 변수 maxFilterLengthP,
- 최대 필터 길이를 지정하는 변수 maxFilterLengthQ.
이 프로세스의 출력은 다음과 같다:
- 결정을 포함하는 변수 dE, dEp 및 dEq,
- 수정된 필터 길이 변수 maxFilterLengthP 및 maxFilterLengthQ,
- 변수 tC.
...
다음 순서 단계가 적용된다:
...
1. sidePisLargeBlk 또는 sideQisLargeBlk가 0보다 크면 다음이 적용된다:
a. 변수 dp0L, dp3L이 유도되고 maxFilterLengthP가 다음과 같이 수정된다:
[[sidePisLargeBlk가 1이면 다음이 적용된다:
dp0L = ( dp0 + Abs( p5,0 - 2 * p4,0 + p3,0 ) + 1 ) >> 1 (8-1087)
dp3L = ( dp3 + Abs( p5,3 - 2 * p4,3 + p3,3 ) + 1 ) >> 1 (8-1088)
그렇지 않으면, 다음이 적용된다:]]
dp0L = dp0 (8-1089)
dp3L = dp3 (8-1090)
[[maxFilterLengthP = 3 (8-1091)]]
maxFilterLengthP = sidePisLargeBlk ? maxFilterLengthP : 3
b. 변수 dq0L 및 dq3L은 다음과 같이 유도된다:
[[sideQisLargeBlk가 1이면 다음이 적용된다:
dq0L = ( dq0 + Abs( q5,0 - 2 * q4,0 + q3,0 ) + 1 ) >> 1 (8-1092)
dq3L = ( dq3 + Abs( q5,3 - 2 * q4,3 + q3,3 ) + 1 ) >> 1 (8-1093)
그렇지 않으면, 다음이 적용된다:]]
dq0L = dq0 (8-1094)
dq3L = dq3 (8-1095)
maxFilterLengthQ = sidePisLargeBlk ? maxFilterLengthQ : 3
...
2. 변수 dE, dEp 및 dEq는 다음과 같이 유도된다:
5.5. 크로마 디블로킹 필터링 프로세스에 대한 실시예 #5
8.8.3.6.3 크로마 블록 가장자리에 대한 결정 프로세스
이 프로세스는 ChromaArrayType이 0이 아닐 때만 호출된다.
이 프로세스에 대한 입력은 다음과 같다:
- 크로마 픽처 샘플 어레이 recPicture,
- 현재 픽처의 왼측 상단 루마 샘플에 대한 현재 코딩 블록의 왼측 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
- 현재 크로마 코딩 블록의 좌측 상단 샘플에 대한 현재 크로마 블록의 좌측 상단 샘플을 지정하는 크로마 위치( xBl, yBl ),
- 수직(EDGE_VER) 또는 수평(EDGE_HOR) 가장자리가 필터링되는지 여부를 지정하는 변수 edgeType,
- 컬러 컴포넌트 인덱스를 지정하는 변수 cIdx,
- 픽처 레벨 크로마 양자화 파라미터 오프셋을 지정하는 변수 cQpPicOffset,
- 경계 필터링 강도를 지정하는 변수 bS,
- 변수 maxFilterLengthCbCr.
이 프로세스의 출력은 다음과 같다:
- 수정된 변수 maxFilterLengthCbCr,
- 변수 tC.
변수 maxK는 다음과 같이 유도된다:
- edgeType이 EDGE_VER와 같으면 다음이 적용된다:
maxK = ( SubHeightC = = 1 ) ? 3. 1 (8-1124)
- 그렇지 않으면(edgeType이 EDGE_HOR와 같음) 다음이 적용된다:
maxK = ( SubWidthC = = 1 ) ? 3. 1 (8-1125)
i = 0.. maxFilterLengthCbCr 및 k = 0..maxK인 값 pi 및 qi는 다음과 같이 유도된다:
- edgeType이 EDGE_VER와 같으면, 다음이 적용된다:
qi,k = recPicture[ xCb + xBl + i ][ yCb + yBl + k ] (8-1126)
pi,k = recPicture[ xCb + xBl - i - 1 ][ yCb + yBl + k ] (8-1127)
subSampleC = SubHeightC (8-1128)
- 그렇지 않으면(edgeType이 EDGE_HOR와 같음) 다음이 적용된다:
qi,k = recPicture[ xCb + xBl + k ][ yCb + yBl + i ] (8-1129)
pi,k = recPicture[ xCb + xBl + k ][ yCb + yBl - i - 1 ] (8-1130)
subSampleC = SubWidthC (8-1131)
ChromaArrayType이 0이 아니고 treeType이 SINGLE_TREE 또는 DUAL_TREE_CHROMA와 같으면 다음이 적용된다:
- treeType이 DUAL_TREE_CHROMA와 같을 때, 변수 QpY는 루마 위치( xCb + cbWidth / 2, yCb + cbHeight / 2 )를 커버하는 루마 코딩 유닛의 루마 양자화 파라미터 QpY와 동일하게 설정된다.
- 변수 qP Cb , qP Cr 및 qP CbCr 은 다음과 같이 유도된다:
qPi Chroma  = Clip3( -QpBdOffset C , 63, Qp Y  ) (8-935)
qPi Cb  = ChromaQpTable[ 0 ][ qPi Chroma  ] (8-936)
qPi Cr  = ChromaQpTable[ 1 ][ qPi Chroma  ] (8-937)
qPi CbCr  = ChromaQpTable[ 2 ][ qPi Chroma  ] (8-938)
- Cb 및 Cr 컴포넌트, Qp' Cb 및 Qp' Cr , 공동 Cb-Cr 코딩 Qp' CbCr 에 대한 크로마 양자화 파라미터는 다음과 같이 유도된다:
Qp' Cb  =  Clip3( -QpBdOffset C , 63, qP Cb  + pps_cb_qp_offset + slice_cb_qp_offset +CuQpOffset Cb  ) (8-939)
Qp' Cr  = Clip3( -QpBdOffset C , 63, qP Cr  + pps_cr_qp_offset + slice_cr_qp_offset +CuQpOffset Cr  ) (8-940)
Qp' CbCr  = Clip3( -QpBdOffset C , 63, qP CbCr  + pps_cbcr_qp_offset + slice_cbcr_qp_offset +CuQpOffset CbCr  ) (8-941)
변수 Qp Q 및 Qp P 는 각각 샘플 q 0,0 및 p 0,0 을 포함하는 코딩 블록을 포함하는 코딩 유닛의 대응하는 Qp'Cb 또는 Qp'Cr 또는 Qp'CbCr 값과 동일하게 설정된다.
변수 Qp C 는 다음과 같이 유도된다:
Qp C = ( Qp Q  + Qp P  + 1 )  >>  1  (8-1133)
변수 β'의 값은 다음과 같이 유도된 양자화 파라미터 Q를 기반으로 표 t-18에 지정된 대로 결정된다.
Q = Clip3( 0, 63, QpC + ( slice_beta_offset_div2  <<  1 ) ) (8-1134)
여기서 slice_beta_offset_div2는 샘플 q0,0을 포함하는 슬라이스에 대한 신택스 요소 slice_beta_offset_div2의 값이다.
변수 β는 다음과 같이 유도된다:β
β = β' * ( 1  <<  ( BitDepthC - 8 ) ) (8-1135)
변수 tC'의 값은 다음과 같이 유도된 크로마 양자화 파라미터 Q를 기반으로 표 8-18에 지정된 대로 결정된다:
Q = Clip3( 0, 65, QpC + 2 * ( bS - 1 ) + ( slice_tc_offset_div2  <<  1 ) ) (8-1136)
여기서 slice_tc_offset_div2는 샘플 q0,0을 포함하는 슬라이스에 대한 신택스 요소 slice_tc_offset_div2의 값이다.
변수 tC는 다음과 같이 유도된다:
tC = ( BitDepthC < 10 ) ? ( tC' + 2 ) >> ( 10 - BitDepthC ) : tC' * ( 1  <<  ( BitDepthC - 8 ) ) (8-1137)
maxFilterLengthCbCr이 1이고 bS가 2가 아닌 경우, maxFilterLengthCbCr은 0으로 설정된다.
5.6. 디블로킹에서 크로마 QP에 대한 실시예 #6
8.8.3.6.3 크로마 블록 가장자리에 대한 결정 프로세스
이 프로세스는 ChromaArrayType이 0이 아닐 때만 호출된다.
이 프로세스에 대한 입력은 다음과 같다:
- 크로마 픽처 샘플 어레이 recPicture,
- 현재 픽처의 왼측 상단 루마 샘플에 대한 현재 코딩 블록의 왼측 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
- 현재 크로마 코딩 블록의 좌측 상단 샘플에 대한 현재 크로마 블록의 좌측 상단 샘플을 지정하는 크로마 위치( xBl, yBl ),
- 수직(EDGE_VER) 또는 수평(EDGE_HOR) 가장자리가 필터링되는지 여부를 지정하는 변수 edgeType,
- 컬러 컴포넌트 인덱스를 지정하는 변수 cIdx,
- 픽처 레벨 크로마 양자화 파라미터 오프셋을 지정하는 변수 cQpPicOffset,
- 경계 필터링 강도를 지정하는 변수 bS,
- 변수 maxFilterLengthCbCr.
이 프로세스의 출력은 다음과 같다:
- 수정된 변수 maxFilterLengthCbCr,
- 변수 tC.
변수 maxK는 다음과 같이 유도된다:
- edgeType이 EDGE_VER와 같으면 다음이 적용된다:
maxK = ( SubHeightC = = 1 ) ? 3. 1 (8-1124)
- 그렇지 않으면(edgeType이 EDGE_HOR와 같음) 다음이 적용된다:
maxK = ( SubWidthC = = 1 ) ? 3. 1 (8-1125)
i = 0.. maxFilterLengthCbCr 및 k = 0..maxK인 값 pi 및 qi는 다음과 같이 유도된다:
- edgeType이 EDGE_VER와 같으면, 다음이 적용된다:
qi,k = recPicture[ xCb + xBl + i ][ yCb + yBl + k ] (8-1126)
pi,k = recPicture[ xCb + xBl - i - 1 ][ yCb + yBl + k ] (8-1127)
subSampleC = SubHeightC (8-1128)
- 그렇지 않으면(edgeType이 EDGE_HOR와 같음) 다음이 적용된다:
qi,k = recPicture[ xCb + xBl + k ][ yCb + yBl + i ] (8-1129)
pi,k = recPicture[ xCb + xBl + k ][ yCb + yBl - i - 1 ] (8-1130)
subSampleC = SubWidthC (8-1131)
변수 QpQ 및 QpP는 각각 샘플 q0,0 및 p0,0을 포함하는 코딩 블록을 포함하는 코딩 유닛의 QpY 값과 동일하게 설정된다.
변수 jccr_flagP 및 jccr_flagQ는 각각 샘플 q 0,0 및 p 0,0 을 포함하는 코딩 블록을 포함하는 코딩 유닛의 tu_joint_cbcr_residual_flag 값과 동일하게 설정된다.
변수 QpC는 다음과 같이 유도된다:
[[qPi = Clip3( 0, 63, ( ( QpQ + QpP + 1 )  >>  1 ) + cQpPicOffset ) (8-1132)]]
qPi = Clip3( 0, 63, ( ( Qp Q   + (jccr_flag P ? pps_joint_cbcr_qp_offset : cQpPicOffset) + Qp P  + (jccr_flag Q ? pps_joint_cbcr_qp_offset : cQpPicOffset) + 1 )  >>  1 ) )
QpC = ChromaQpTable[ cIdx - 1 ][ qPi ] (8-1133)
참고 - 변수 cQpPicOffset은 필터링된 크로마 컴포넌트가 Cb 컴포넌트인지 Cr 컴포넌트인지에 따라 pps_cb_qp_offset 또는 pps_cr_qp_offset 값에 대한 조정을 제공한다. 그러나, 픽처 내 조정의 양을 변경할 필요를 피하기 위해, 필터링 프로세스는 slice_cb_qp_offset 또는 slice_cr_qp_offset의 값에 대한 및 (cu_chroma_qp_offset_enabled_flag가 1인 경우) CuQpOffsetCb, CuQpOffsetCr, 또는 CuQpOffsetCbCr.의 값에 대한 조정을 포함하지 않는다.
??
5.7. 디블로킹에서 크로마 QP에 대한 실시예 #7
8.8.3.6.3 크로마 블록 가장자리에 대한 결정 프로세스
이 프로세스는 ChromaArrayType이 0이 아닐 때만 호출된다.
이 프로세스에 대한 입력은 다음과 같다:
- 크로마 픽처 샘플 어레이 recPicture,
- 현재 픽처의 왼측 상단 루마 샘플에 대한 현재 코딩 블록의 왼측 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
...
이 프로세스의 출력은 다음과 같다:
- 수정된 변수 maxFilterLengthCbCr,
- 변수 tC.
변수 maxK는 다음과 같이 유도된다:
- edgeType이 EDGE_VER와 같으면 다음이 적용된다:
maxK = ( SubHeightC = = 1 ) ? 3. 1 (8-1124)
- 그렇지 않으면(edgeType이 EDGE_HOR와 같음) 다음이 적용된다:
maxK = ( SubWidthC = = 1 ) ? 3. 1 (8-1125)
i = 0.. maxFilterLengthCbCr 및 k = 0..maxK인 값 pi 및 qi는 다음과 같이 유도된다:
- edgeType이 EDGE_VER와 같으면, 다음이 적용된다:
qi,k = recPicture[ xCb + xBl + i ][ yCb + yBl + k ] (8-1126)
pi,k = recPicture[ xCb + xBl - i - 1 ][ yCb + yBl + k ] (8-1127)
subSampleC = SubHeightC (8-1128)
- 그렇지 않으면(edgeType이 EDGE_HOR와 같음) 다음이 적용된다:
qi,k = recPicture[ xCb + xBl + k ][ yCb + yBl + i ] (8-1129)
pi,k = recPicture[ xCb + xBl + k ][ yCb + yBl - i - 1 ] (8-1130)
subSampleC = SubWidthC (8-1131)
[[변수 QpQ 및 QpP는 각각 샘플 q0,0 및 p0,0을 포함하는 코딩 블록을 포함하는 코딩 유닛의 QpY 값과 동일하게 설정된다.]]
변수 Qp Q 는 루마 위치(xCb + cbWidth/2, yCb + cbHeight/2)를 커버하는 루마 코딩 유닛의 루마 양자화 파라미터 Qp Y 와 동일하게 설정되고 , 여기서 cbWidth는 루마 샘플에서 현재 크로마 코딩 블록의 너비를 지정하고 cbHeight는 루마 샘플에서 현재 크로마 코딩 블록의 높이를 지정한다.
변수 Qp P 는 루마 위치( xCb' + cbWidth' / 2, yCb' + cbHeight' / 2 )를 커버하는 루마 코딩 유닛의 루마 양자화 파라미터 QpY와 동일하게 설정되고 , 여기서 (xCb ', yCb') 현재 픽처의 왼측 상단 크로마 샘플에 대해 q 0,0 을 커버하는 크로마 코딩 블록의 왼측 상단 샘플, cbWidth '는 루마 샘플에서 현재 크로마 코딩 블록의 너비를 지정하고, cbHeight는 루마 샘플에서 현재 크로마 코딩 블록의 높이를 지정한다.
변수 QpC는 다음과 같이 유도된다:
qPi = Clip3( 0, 63, ( ( QpQ + QpP + 1 )  >>  1 ) + cQpPicOffset ) (8-1132)
QpC = ChromaQpTable[ cIdx - 1 ][ qPi ] (8-1133)
참고 - 변수 cQpPicOffset은 필터링된 크로마 컴포넌트가 Cb 컴포넌트인지 Cr 컴포넌트인지에 따라 pps_cb_qp_offset 또는 pps_cr_qp_offset 값에 대한 조정을 제공한다. 그러나, 픽처 내 조정의 양을 변경할 필요를 피하기 위해, 필터링 프로세스는 slice_cb_qp_offset 또는 slice_cr_qp_offset의 값에 대한 및 (cu_chroma_qp_offset_enabled_flag가 1인 경우) CuQpOffsetCb, CuQpOffsetCr, 또는 CuQpOffsetCbCr.의 값에 대한 조정을 포함하지 않는다.
변수 β'의 값은 다음과 같이 유도된 양자화 파라미터 Q를 기반으로 표 8-18에 지정된 대로 결정된다:
Q = Clip3( 0, 63, QpC + ( slice_beta_offset_div2  <<  1 ) ) (8-1134)
여기서 slice_beta_offset_div2는 샘플 q0,0을 포함하는 슬라이스에 대한 신택스 요소 slice_beta_offset_div2의 값이다.
변수 β는 다음과 같이 유도된다:
β = β' * ( 1  <<  ( BitDepthC - 8 ) ) (8-1135)
변수 tC'의 값은 다음과 같이 유도된 크로마 양자화 파라미터 Q를 기반으로 표 8-18에 지정된 대로 결정된다:
Q = Clip3( 0, 65, QpC + 2 * ( bS - 1 ) + ( slice_tc_offset_div2  <<  1 ) ) (8-1136)
여기서 slice_tc_offset_div2는 샘플 q0,0을 포함하는 슬라이스에 대한 신택스 요소 slice_tc_offset_div2의 값이다.
5.8. 디블로킹에서 크로마 QP에 대한 실시예 #8
묘사된 세 개의 샘플(실선 원 포함)에 대한 필터 결정을 내릴 때, 세 개의 샘플을 포함하는 크로마 CU의 중심 위치를 커버하는 루마 CU의 QP가 선택된다. 따라서제1, 제2 및 제3 크로마 샘플(도 11에 표시됨)에 대해 각각 CUY3의 QP만 사용된다.
이러한 방식으로, 크로마 양자화/역양자화 프로세스를 위한 루마 CU를 선택하는 방법은 크로마 필터 결정 프로세스를 위한 것과 일치한다.
5.9. JCCR 코딩된 블록에 사용되는 QP에 대한 실시예 #9
8.7.3 트랜스폼 계수를 위한 스케일링 프로세스
이 프로세스에 대한 입력은 다음과 같다:
- 현재 픽처의 왼측 상단 루마 샘플에 대한 현재 루마 트랜스폼 블록의 왼측 상단 샘플을 지정하는 루마 위치( xCb, yCb ),
- 트랜스폼 블록 폭(width)을 지정하는 변수 nTbW,
- 트랜스폼 블록 높이를 지정하는 변수 nTbH,
- 현재 블록의 컬러 컴포넌트를 지정하는 변수 cIdx,
- 현재 컬러 컴포넌트의 비트 깊이를 지정하는 변수 bitDepth.
이 프로세스의 출력은 요소 d[ x][y]를 갖는 스케일 된 트랜스폼 계수의 (nTbW) x(nTbH) 어레이 d이다.
양자화 파라미터 qP는 다음과 같이 유도된다:
- cIdx가 0이고 transform_skip_flag[ xTbY ][ yTbY ]가 0이면, 다음이 적용된다:
qP = Qp'Y (8-950)
- 그렇지 않고, cIdx가 0이면(그리고 transform_skip_flag[ xTbY ][ yTbY ]가 1이면) 다음이 적용된다:
qP = Max( QpPrimeTsMin, Qp'Y ) (8-951)
- 그렇지 않고, TuCResMode[ xTbY ][ yTbY ]가 0[[같음 2]]과 같지 않으면, 다음이 적용된다:
qP = Qp'CbCr (8-952)
- 그렇지 않으면(cIdx가 0이 아님), 다음이 적용된다:
qP = Qp'Cb (8-953)
- 그렇지 않으면(cIdx가 0이 아님), 다음이 적용된다:
qP = Qp'Cr (8-954)
6. 개시된 기술의 예 구현
도 12는 비디오 처리 장치(1200)의 블록도이다. 장치(1200)는 여기에 설명된 방법들 중 하나 이상을 구현하는 데 사용될 수 있다. 장치(1200)는 스마트폰, 태블릿, 컴퓨터, 사물인터넷(IoT) 수신기 등으로 구현될 수 있다. 장치(1200)는 하나 이상의 프로세서(1202), 하나 이상의 메모리(1204) 및 비디오 처리 하드웨어(1206)를 포함할 수 있다. 프로세서(들)(1202)는 본 문서에 설명된 하나 이상의 방법을 구현하도록 구성될 수 있다. 메모리(메모리)(1204)는 여기에 설명된 방법 및 기술을 구현하는 데 사용되는 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 처리 하드웨어(1206)는 하드웨어 회로에서 본 문서에 설명된 일부 기술을 구현하는 데 사용될 수 있으며 프로세서(1202)의 일부 또는 전체 일 수 있다(예를 들어, 그래픽 프로세서 코어 GPU 또는 기타 신호 처리 회로).
본 문서에서 "비디오 처리(video processing)"라는 용어는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축 해제(decompression)를 의미할 수 있다. 예를 들어, 비디오 압축 알고리즘은 비디오의 픽셀 표현에서 대응하는 비트스트림 표현으로 또는 그 반대로 변환하는 동안 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스에 의해 정의된 바와 같이 비트스트림 내의 다른 위치에 함께 배치되거나 확산되는 비트에 대응할 수 있다. 예를 들어, 매크로블록(macroblock)은 트랜스폼되고 코딩된 오류 잔차 값의 관점에서 그리고 또한 헤더의 비트 및 비트스트림의 다른 필드를 사용하여 인코딩될 수 있다.
개시된 방법 및 기술은 본 문서에 개시된 기술의 사용을 허용함으로써 스마트폰, 랩탑, 데스크탑, 및 유사한 장치와 같은 비디오 프로세싱 장치 내에 통합된 비디오 인코더 및/또는 디코더 실시예에 도움이 될 것이라는 것이 이해될 것이다.
도 13은 비디오 처리의 하나의 예의 방법(1300)에 대한 순서도이다. 방법(1200)은, 1310에서, 비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 크로마 양자화 파라미터(QP) 테이블이 디블로킹 필터의 파라미터를 유도하기 위해 사용될 때 크로마 QP 테이블에 의한 처리가 개별 크로마 QP 값에 대해 수행되도록 디블로킹 필터가 비디오 유닛의 경계에 사용된다.
일부 실시예는 다음 항-기반의 포맷(clause-based format)을 사용하여 설명될 수 있다.
1. 비디오 처리 방법에 있어서,
비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 크로마 양자화 파라미터(QP) 테이블이 디블로킹 필터의 파라미터를 유도하기 위해 사용될 때 크로마 QP 테이블에 의한 처리가 개별 크로마 QP 값에 대해 수행되도록 디블로킹 필터가 비디오 유닛의 경계에 사용된다.
2. 1항의 방법에서, 크로마 QP 오프셋은 크로마 QP 테이블에 의한 처리에 후속하여 개별 크로마 QP 값에 추가된다.
3. 1항 또는 2항 중 어느 하나의 방법에서, 크로마 QP 오프셋은 크로마 QP 테이블에 의해 출력된 값에 추가된다.
4. 1항 또는 2항 중 어느 하나의 방법에서, 크로마 QP 오프셋은 크로마 QP 테이블에 대한 입력으로서 고려되지 않는다.
5. 2항의 방법에서, 크로마 QP 오프셋은 픽처 레벨 또는 비디오 유닛 레벨에 있다.
6. 비디오 처리 방법에 있어서,
비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되고, 크로마 QP 오프셋은 픽처/슬라이스/타일/브릭/서브 픽처 레벨에 있다.
7. 6항의 방법에서, 디블로킹 필터에서 사용된 크로마 QP 오프셋은 비디오 유닛의 경계에 적용된 코딩 방법과 연관된다.
8. 7항의 방법에서, 코딩 방법은 색차 잔차(chrominance residual)의공동 코딩(JCCR) 방법이다.
9. 비디오 처리 방법에 있어서,
비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되고, 여기서 동일한 루마 코딩 유닛에 관한 정보가 디블로킹 필터에서 사용되며 크로마 QP 오프셋을 유도하기 위해 사용된다.
10. 9항의 방법에서, 동일한 루마 코딩 유닛은 비디오 유닛의 중심 위치의 대응하는 루마 샘플을 커버하고, 비디오 유닛은 크로마 코딩 유닛이다.
11. 9항의 방법에서, 스케일링 프로세스는 비디오 유닛에 적용되고, 디블로킹 필터의 하나 이상의 파라미터는 스케일링 프로세스의 양자화/역양자화 파라미터에 적어도 부분적으로 의존한다.
12. 11항의 방법에서, 스케일링 프로세스의 양자화/역양자화 파라미터는 크로마 QP 오프셋을 포함한다.
13. 9항 내지 12항 중 어느 하나의 방법에서, 비디오 유닛의 루마 샘플은 P 측 또는 Q 측이다.
14. 13항의 방법에서, 동일한 루마 코딩 유닛에 관한 정보는 동일한 루마 코딩 유닛에 대한 코딩 유닛의 상대 위치에 의존한다.
15. 비디오 처리 방법에 있어서,
비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되고, 크로마 QP 오프셋의 사용을 가능하게 하는 표시는 비트스트림 표현에서 시그널링된다.
16. 15항의 방법에서, 표시는 하나 이상의 플래그를 검출하는 것에 응답하여 조건부로 시그널링된다.
17. 16항의 방법에서, 하나 이상의 플래그는 JCCR 활성화 플래그 또는 크로마 QP 오프셋 활성화 플래그와 관련된다.
18. 15항의 방법에서, 표시는 유도에 기초하여 시그널링된다.
19. 비디오 처리 방법에 있어서,
비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되고, 디블로킹 필터에 사용되는 크로마 QP 오프셋은 비디오 유닛의 경계에 JCCR 코딩 방법이 적용되는지 또는 비디오 유닛의 경계에 JCCR 코딩 방법과 다른 방법이 적용되는지 여부와 동일하다.
20. 비디오 처리 방법에 있어서,
비디오 유닛과 비디오 유닛의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 디블로킹 필터는 크로마 QP 오프셋이 디블로킹 필터에서 사용되도록 비디오 유닛의 경계에 사용되며, 여기서 디블로킹 필터의 경계 강도(BS)는 P 측 경계에서 비디오 유닛과 연관된 다수의 모션 벡터를 레퍼런스 픽처 및/또는 Q 측에서 비디오 유닛과 연관된 다수의 모션 벡터(MV)와 비교하지 않고 계산된다.
21. 20항의 방법에서, 디블로킹 필터는 하나 이상의 조건 하에서 비활성화된다.
22. 21항의 방법에서, 하나 이상의 조건은 모션 벡터(MV)의 크기 또는 임계값과 연관된다.
23. 22항에 있어서, 임계값은: i. 비디오 유닛의 콘텐츠, ii. DPS/SPS/VPS/PPS/APS/픽처 헤더/슬라이스 헤더/타일 그룹 헤더/LCU(최대 코딩 유닛)/CU(코딩 유닛)/LCU 행/LCU의 그룹/TU/PU 블록/비디오 코딩 유닛에서 시그널링되는 메시지, iii. CU/PU/TU/블록/비디오 코딩 유닛의 위치, iv. 경계를 따라 샘플이 있는 코딩된 블록 모드, v. 경계를 따라 샘플이 있는 비디오 유닛에 적용된 트랜스폼 행렬, vi. 동비디오 단위의 모양 또는 디맨전, vii. 컬러 포맷 표시, viii. 코딩 트리 구조, ix. 슬라이스/타일 그룹 유형 및/또는 픽처 유형, x. 컬러 컴포넌트, xi. 시간 계층 ID, 또는 xii. 표준의 프로필/레벨/티어 중 적어도 하나와 연관된다.
24. 20항의 방법에서, TS 코딩된 비디오 유닛 및 비-TS 코딩된 비디오 유닛에 대해 상이한 QP 오프셋이 사용된다.
25. 20항의 방법에서, 루마 필터링 단계에서 사용되는 QP는 루마 블록의 스케일링 프로세스에서 사용되는 QP와 관련된다.
26. 1항 내지 25항 중 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
27. 1항 내지 25항 중 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
28. 컴퓨터 코드가 저장되어 있는 컴퓨터 프로그램에 있어서, 코드는, 프로세서에 의해 실행될 때, 프로세서로 하여금 1항 내지 25항 중 어느 한 항에서 인용된 방법을 구현하게 하는 컴퓨터프로그램.
29. 본 문서에 기술된 방법, 장치 및 시스템.
도 14는 여기에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 처리 시스템(1400)을 도시하는 블록도이다. 다양한 구현은 시스템(1400)의 컴포넌트 중 일부 또는 전부를 포함할 수 있다. 시스템(1400)은 비디오 콘텐츠를 수신하기 위한 입력(1402)을 포함할 수 있다. 비디오 콘텐츠는 원시 또는 압축되지 않은 포맷, 예를 들어 8 또는 10비트 다중 컴포넌트 픽셀 값으로 수신될 수 있거나 압축 또는 인코딩된 포맷일 수 있다. 입력(1902)은 네트워크 인터페이스, 주변 버스 인터페이스, 또는 저장 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예로는 이더넷, 수동 광 네트워크(PON) 등과 같은 유선 인터페이스와 Wi-Fi 또는 셀룰러 인터페이스와 같은 무선 인터페이스가 있다.
시스템(1400)은 본 문서에 설명된 다양한 코딩 또는 인코딩 방법을 구현할 수 있는 코딩 컴포넌트(1404)를 포함할 수 있다. 코딩 컴포넌트(1404)는 비디오의 코딩된 비트스트림 표현을 생성하기 위해 입력(1402)으로부터 코딩 컴포넌트(1404)의 출력으로 비디오의 평균 비트레이트를 줄일 수 있다. 따라서 코딩 기술은 비디오 압축 또는 비디오 트랜스코딩 기술이라고도 한다. 코딩 컴포넌트(1404)의 출력은 컴포넌트(1406)에 의해 표현되는 바와 같이, 연결된 통신을 통해 저장되거나 전송될 수 있다. 입력(1402)에서 수신된 비디오의 저장 또는 통신된 비트스트림(또는 코딩된) 표현은 디스플레이 인터페이스(1410)로 전송되는 픽셀 값 또는 디스플레이 가능한 비디오를 생성하기 위해 컴포넌트(1408)에 의해 사용될 수 있다. 비트스트림 표현에서 사용자가 볼 수 있는 비디오를 생성하는 프로세스를 비디오 압축 해제(decompression)라고도 한다. 또한 특정 비디오 처리 작업을 "코딩" 작업 또는 툴로 지칭하지만 코딩 툴 또는 작업이 인코더에서 사용되고 코딩 결과를 되돌리는 대응하는 디코딩 툴 또는 작업은 디코더에 의해 수행된다는 점이 이해될 것이다.
주변기기 버스 인터페이스 또는 디스플레이 인터페이스의 예는 USB(Universal Serial Bus) 또는 HDMI(High Definition Multimedia Interface) 또는 Displayport 등을 포함할 수 있다. 스토리지 인터페이스의 예로는 SATA(직렬 첨단 기술 첨부 파일), PCI, IDE 인터페이스 등이 있다. 본 문서에 기재된 기술은 휴대전화, 노트북, 스마트폰 또는 디지털 데이터 처리 및/또는 비디오 디스플레이를 수행할 수 있는 기타 장치와 같은 다양한 전자 기기에 구현될 수 있다.
도 15는 본 기술에 따른 비디오 처리 방법(1500)의 흐름도 표현이다. 방법(1500)은, 동작(1510)에서, 비디오의 크로마 컴포넌트의 블록과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 변환 동안, 블록의 가장자리를 따라 적어도 일부 샘플에 디블로킹 필터링 프로세스가 적용되고, 디블로킹 필터링 프로세스에 대한 파라미터를 결정하기 위해 크로마 양자화 파라미터(QP) 오프셋이 크로마 QP 테이블의 출력에 추가된다.
일부 실시예에서, 크로마 QP 오프셋은 비트스트림 표현에서 적어도 픽처 레벨 또는 비디오 유닛 레벨에서 신택스 요소에 의해 표시된다. 일부 실시예에서, 비디오 유닛은 슬라이스, 타일, 브릭, 서브픽처, 또는 블록을 포함한다. 일부 실시예에서, 크로마 QP 오프셋은 적어도 pps_cb_qp_offset 및/또는 pps_cr_qp_offset을 포함한다. 일부 실시예에서, QP 클리핑 프로세스는 크로마 QP 테이블의 입력에 대해 비활성화된다. 일부 실시예에서, 크로마 컴포넌트는 비디오의 Cr 컴포넌트를 포함한다. 일부 실시예에서, 크로마 컴포넌트는 비디오의 Cb 컴포넌트를 포함한다.
도 16은 본 기술에 따른 비디오 처리 방법(1600)의 흐름도 표현이다. 방법(1600)은, 동작(1610)에서, 비디오의 크로마 컴포넌트의 블록과 비디오의 비트스트림 표현 사이의 변환을 위해, 가장자리의 일측(one side)에 있는 샘플을 포함하는 제1 비디오 영역에 대한 제1 양자화 정보 및/또는 규칙에 따라 가장자리의 타측(other side)의 샘플을 포함하는 제2 비디오 영역에 대한 제2 양자화 정보에 기초하여 블록의 가장자리에 필터링 프로세스를 적용할지 여부 또는 적용 방법을 결정하는 단계를 포함한다. 규칙은 가장자리의 일측 샘플 또는 타측 샘플을 코딩하기 위해 블록에 적용 가능한 코딩 모드에 기초한다. 규칙은 제1 양자화 정보 또는 제2 양자화 정보를 결정하기 위해 상이한 비디오 유닛 레벨에서 다중 QP 오프셋이 사용된다는 것을 지정한다. 방법(1600)은 또한 동작(1620)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 상이한 비디오 유닛 레벨은 적어도 픽처 레벨, 슬라이스 레벨, 타일 레벨, 브릭 레벨, 또는 서브픽처 레벨을 포함한다. 일부 실시예에서, 다중 QP 오프셋은 비디오의 Cb 컴포넌트에 대한 오프셋을 포함한다. 일부 실시예에서, 다중 QP 오프셋은 비디오의 Cr 컴포넌트에 대한 오프셋을 포함한다.
일부 실시예에서, 규칙은 다중 QP 오프셋의 선택이 코딩 모드에 기초하는 것을 지정한다. 일부 실시예에서, 코딩 모드는 크로마 잔차의공동 코딩(JCCR) 코딩 모드를 포함한다. 일부 실시예에서, 블록이 JCCR 코딩 모드에서 코딩되는 경우, 다중 QP 오프셋은 적어도 픽처 레벨 QP 오프셋 또는 슬라이스 레벨 QP 오프셋을 포함한다. 일부 실시예에서, 필터링 프로세스를 위한 임계값 β 및 tC를 결정하는 데 사용되는 다중 QP 오프셋은 제1 비디오 영역 또는 제2 비디오 영역 중 적어도 하나가 JCCR 코딩 모드를 사용하여 코딩되는 경우, JCCR 코딩 모드에 대한 QP 오프셋 값을 포함한다.
일부 실시예에서, 루마 컴포넌트의 대응하는 블록의 정보는 제1 비디오 영역에 대한 제1 양자화 정보 또는 제2 비디오 영역에 대한 제2 양자화 정보를 결정하는 데 사용된다. 일부 실시예에서, 크로마 컴포넌트의 블록에서 현재 크로마 샘플을 필터링하기 위해, 현재 크로마 샘플에 대응하는 루마 샘플을 커버하는 루마 코딩 유닛의 정보는 제1 비디오 영역에 대한 제1 양자화 정보 또는 제2 비디오 영역에 대한 제2 양자화 정보를 결정하는 데 사용된다.
일부 실시예에서, 필터링 프로세스를 적용할지 여부 또는 적용 방법은 블록에 적용 가능한 스케일링 프로세스에 기초한다. 일부 실시예에서, 임계값 β 및 tC를 결정하기 위해 사용되는 제1 비디오 영역에 대한 제1 양자화 정보 또는 제2 비디오 영역에 대한 제2 양자화 정보는 스케일링 프로세스에서 사용되는 양자화 정보에 기초한다. 일부 실시예에서, 스케일링 프로세스에서 사용되는 양자화 정보를 결정하기 위해 하나 이상의 코딩 유닛 레벨 QP 오프셋이 사용된다.
일부 실시예에서, 방법의 적용 가능성은 블록이 가장자리의 일측에 있는지 또는 가장자리의 타측에 있는지에 기초한다. 일부 실시예에서, 루마 컴포넌트의 해당 블록의 정보가 필터링 프로세스에 사용되는지 여부는 블록의 위치에 기초한다. 일부 실시예에서, 블록이 가장자리의 타측에 있는 경우, 루마 컴포넌트의 대응하는 블록의 정보가 필터링 프로세스에 사용된다. 일부 실시예에서, 블록이 가장자리의 일측에 있는 경우, 루마 컴포넌트의 대응하는 블록의 정보가 필터링 프로세스에 사용된다.
도 17은 본 기술에 따른 비디오 처리 방법(1700)의 흐름도 표현이다. 방법(1700)은, 동작(1710)에서, 비디오의 현재 블록과 비디오의 비트스트림 표현 사이의 변환을 위해, 비디오 유닛의 레벨에서 신택스 요소에 따라 현재 블록에 대한 크로마 양자화 파라미터(QP) 오프셋의 사용을 가능하게 하는지 여부를 결정하는 단계를 포함한다. 비디오 유닛은 현재 블록과 비디오의 제2 블록(second block)을 포함한다. 방법(1700)은 또한 동작(1720)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 비디오 유닛은 슬라이스를 포함한다. 일부 실시예에서, 비디오 유닛은 타일, 브릭, 또는 서브픽처를 더 포함한다.
일부 실시예에서, 신택스 요소는 비디오 유닛의 레벨에서 비트스트림 표현에 조건부로 포함된다. 일부 실시예에서, 신택스 요소는 크로마 잔차 모드의공동 코딩이 활성화되는지 여부에 기초하여 비트스트림 표현에 조건부로 포함된다. 일부 실시예에서, 신택스 요소는 블록 레벨에서 크로마 양자화 파라미터(QP) 오프셋의 사용을 표시하는 픽처 레벨에서 제2 신택스 요소에 기초하여 비디오 유닛의 레벨에서 비트스트림 표현에 포함된다. 일부 실시예에서, 신택스 요소는 비트스트림 표현에서 생략되고, 블록 레벨에서 크로마 양자화 파라미터(QP) 오프셋의 사용은, 픽처 레벨에서 제2 신택스 요소가 블록 레벨에서 크로마 양자화 파라미터(QP) 오프셋의 사용이 비활성화되는 것을 나타내는 경우, 비활성화되는 것으로 결정된다. 일부 실시예에서, 현재 블록에 대한 크로마 양자화 파라미터(QP) 오프셋의 사용은 슬라이스 레벨에서 신택스 요소 및 픽처 레벨에서 제2 신택스 요소 둘 모두에 기초하여 결정된다.
도 18은 본 기술에 따른 비디오 처리 방법(1800)의 흐름도 표현이다. 방법(1800)은, 동작(1810)에서, 제1 크로마 컴포넌트 및 제2 크로마 컴포넌트를 포함하는 비디오와 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 제1 크로마 컴포넌트의 제1 크로마 블록과 제2 크로마 컴포넌트의 제2 크로마 블록의 잔차는 규칙에 따라 코딩 모드를 사용하여 비트스트림 표현에서 공동으로 코딩된다. 이 규칙은 변환을 위한 양자화 파라미터(QP)를 유도하는 방식이 코딩 모드와 무관함을 지정한다. 일부 실시예에서, 변환을 위한 QP는 비트스트림 표현의 픽처 레벨 또는 슬라이스 레벨에서 시그널링된 QP 오프셋에 기초하여 유도된다.
도 19는 본 기술에 따른 비디오 처리 방법(1900)의 흐름도 표현이다. 방법(1900)은, 동작(1910)에서, 비디오의 제1 블록과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비디오는 여러 컬러 컴포넌트의 컬러 포맷(color format)을 갖고 제1 블록(first block)은 비디오의 제1 컬러 컴포넌트(first color component)와 연관된다. 변환 동안, 제1 블록의 가장자리를 따라 적어도 일부 샘플에 디블로킹 필터링 프로세스가 적용된다. 방법(1900)은, 동작(1920)에서, 비디오의 나머지 컬러 컴포넌트와 비디오의 비트스트림 표현과 연관된 블록 사이의 후속 변환을 수행하는 단계를 포함한다. 후속 변환 동안, 디블로킹 필터 프로세스는 제1 블록의 변환과 동일한 방식으로 각 블록의 가장자리를 따라 적어도 일부 샘플에 적용된다.
일부 실시예에서, 컬러 포맷은 4:4:4이다. 일부 실시예에서, 컬러 포맷은 적-녹-청(Red-Green-Blue)(RGB) 컬러 공간에서 4:4:4이다. 일부 실시예에서, 컬러 포맷은 4:2:2이고, 디블로킹 필터링 프로세스는 수직 방향으로 적용된다. 일부 실시예에서, 디블로킹 필터링 프로세스는 결정 프로세스 및/또는 필터링 프로세스를 포함한다.
도 20은 본 기술에 따른 비디오 처리 방법(2000)의 흐름도 표현이다. 방법(2000)은, 동작(2000)에서, 비디오와 비디오의 비트스트림 표현 사이의 변환을 위해, 비디오의 두 블록 사이의 경계의 경계 강도를 결정하는 단계를 포함한다. 경계 강도는 두 블록 중 어느 하나가 크로마 잔차의 공동 코딩(Joint coding of chromaresidual)(JCCR) 모드로 코딩되는지 여부와 무관하게 결정된다. 방법(2000)은, 동작(2020)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 두 개의 블록 중 하나의 블록이 JCCR 모드에서 코딩되는 경우, 블록은 경계 강도를 결정하기 위해 비-JCCR 모드에서 코딩된 것으로 처리된다. 일부 실시예에서, 경계 강도는 두 개의 블록에 대한 JCCR의 사용과 무관하게 결정된다.
도 21은 본 기술에 따른 비디오 처리 방법(2100)의 흐름도 표현이다. 방법(2100)은, 동작(2110)에서, 비디오와 비디오의 비트스트림 표현 사이의 변환을 위해 제1 블록과 제2 블록 사이의 경계의 경계 강도를 결정하는 단계를 포함한다. 결정하는 단계는 제1 블록의 정보와 대응하는 제2 블록의 정보를 비교하지 않고 수행된다. 정보는 레퍼런스 픽처(reference picture) 및/또는 대응하는 블록의 모션 벡터(motion vector)의 수를 포함하고, 경계 강도는 디블로킹 필터링 프로세스가 경계에 적용 가능한지 여부를 결정하기 위해 사용된다. 방법(2100)은, 또한 동작(2120)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 경계 강도는 제1 블록의 레퍼런스 픽처가 제2 블록의 레퍼런스 픽처와 상이한 경우, 디블로킹 필터링 프로세스가 비활성화되는 것을 표시한다. 일부 실시예에서, 경계 강도는 제1 블록의 모션 벡터의 수가 제2 블록의 모션 벡터의 수와 다른 경우, 디블로킹 필터링 프로세스가 비활성화되는 것을 나타낸다.
일부 실시예에서, 경계 강도는 제1 블록의 하나 이상의 모션 벡터와 제2 블록의 하나 이상의 모션 벡터 사이의 차이가 임계값보다 크거나 같은 경우에 1로 설정되고, 임계값은 정수이다. 일부 실시예에서, 제1 블록의 하나 이상의 모션 벡터는 MVP[0] 및 MVP[1]로 표시되고, 제2 블록의 하나 이상의 모션 벡터는 MVQ[0] 및 MVQ[1]로 표시된다. . (Abs(MVP[0].x - MVQ[0].x) > Th || Abs(MVP[0].y - MVQ[0].y) > Th || Abs(MVP[1].x - MVQ[1].x) > Th) || Abs(MVP[1].y - MVQ[1].y) > Th)의 경우, 차이는 임계값 Th보다 크거나 같다. 일부 실시예에서, 차이는(Abs(MVP[0].x - MVQ[0].x) > Th && Abs(MVP[0].y - MVQ[0].y) > Th && Abs(MVP[1].x - MVQ[1].x) > Th) && Abs(MVP[1].y - MVQ[1].y) > Th)의 경우, 임계값 Th보다 크거나 같다. 일부 실시예에서, 차이는 (Abs(MVP[0].x - MVQ[0].x) > Th || Abs(MVP[0].y - MVQ[0].y) > Th ) && (Abs(MVP[1].x - MVQ[1].x) > Th) || Abs(MVP[1].y - MVQ[1].y) > Th)의 경우, 임계값 Th보다 크거나 같다. 일부 실시예에서, 차이는(Abs(MVP[0].x - MVQ[0].x) > Th && Abs(MVP[0].y - MVQ[0].y) > Th ) || (Abs(MVP[1].x - MVQ[1].x) > Th) && Abs(MVP[1].y - MVQ[1].y) > Th)의 경우, 임계값 Th보다 크거나 같다. 일부 실시예에서, 경계 강도는 제1 블록의 모션 벡터와 제2 블록의 모션 벡터 사이의 차이가 임계값 이하인 경우, 0으로 설정되고, 임계값은 정수이다. 일부 실시예에서, 임계값치는 4, 8, 또는 16이다. 일부 실시예에서, 임계값은 비디오의 특성에 기초한다.
일부 실시예에서, 방법의 적용 가능성은 조건에 기초하여 결정된다. 일부 실시예에서, 방법은 제1 블록 및 제2 블록이 인트라 예측 모드로 코딩되지 않은 경우에 적용 가능하다. 일부 실시예에서, 방법은 제1 블록 및 제2 블록이 루마 컴포넌트에 대한 계수가 0인 경우에 적용 가능하다. 일부 실시예에서, 방법은 제1 블록 및 제2 블록이 결합된 인터 및 인트라 예측 모드로 코딩되지 않은 경우에 적용 가능하다. 일부 실시예에서, 방법은 제1 블록 및 제2 블록이 동일한 예측 모드로 코딩되는 경우에 적용 가능하고, 동일한 예측 모드는 인트라 블록 복사 예측 모드 또는 인터 예측 모드이다.
도 22는 본 기술에 따른 비디오 처리 방법(2200)의 흐름도 표현이다. 방법(2200)은, 동작(2210)에서, 비디오의 비디오 블록과 비디오의 비트스트림 표현 사이의 변환을 위해, 규칙에 따라 비디오 블록에 디블로킹 필터링을 적용하는데 사용되는 양자화 파라미터(QP)를 결정하는 단계를 포함한다. 규칙은 비디오 블록의 잔차가 트랜스폼의 적용을 스킵함으로서 비트스트림 표현에서 코딩되는 트랜스폼 스킵(transform skip)(TS) 모드를 사용하여 비디오 블록이 코딩되는 경우, 결정하는 단계에서 제1 QP가 사용됨을 지정한다. 제1 QP와 상이한 제2 QP는 비디오 블록의 잔차가 트랜스폼을 적용한 후 비트스트림 표현에서 코딩되는 비트랜스폼 스킵 모드를 사용하여 비디오 블록이 코딩되는지 여부를 결정하는 데 사용된다. 방법(2200)은 또한, 동작(2220)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 루마 블록의 변환을 위해, 루마 블록에 적용 가능한 필터링 프로세스는 루마 블록의 스케일링 프로세스에 적용된 QP에 기초한다. 일부 실시예에서, 필터링 프로세스가 루마 블록에 적용 가능한지 여부를 결정하기 위해 사용되는 QP는 TS 모드의 클리핑 범위에 기초하여 결정된다.
도 23은 본 기술에 따른 비디오 처리 방법(2300)의 흐름도 표현이다. 방법(2300)은, 동작(2310)에서, 비디오의 비디오 블록과 비디오의 비트스트림 표현 사이의 변환을 위해, 규칙에 따라 비디오 블록의 가장자리의 적어도 일부 샘플에 대한 디블로킹 필터링 프로세스의 적용 가능성을 결정하기 위한 그레디언트(gradient)를 결정하는 단계를 포함한다. 규칙은 그레디언트가 결정되는 방식이 비디오 블록의 크기와 무관함을 지정한다. 방법(2300)은 또한, 동작(2320)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.
일부 실시예에서, 디블로킹 필터링 프로세스가 활성화되는지 여부를 결정하기 위한 임계값은 서로 다른 경계 크기를 갖는 블록에 대해 조정되고, 임계값은 정수이다. 일부 실시예에서, 임계값은 디블로킹 필터링 프로세스를 위해 결정된 양자화 파라미터에 기초한다. 일부 실시예에서, 큰 경계를 갖는 블록에 대한 임계값은 작은 경계를 갖는 블록에 대한 제2 임계값보다 더 작다. 일부 실시예에서, 큰 경계를 갖는 블록에 대한 임계값은 작은 경계를 갖는 블록에 대한 제2 임계값보다 더 크다. 일부 실시예에서, 큰 경계를 갖는 블록에 대한 임계값은 작은 경계를 갖는 블록에 대한 제2 임계값과 동일하다. 일부 실시예에서, 임계값은 비디오의 특성에 기초한다.
일부 실시예에서, 위의 방법 중 하나 이상의 적용 가능성은 비디오의 특성을 기반으로 한다. 일부 실시예에서, 비디오의 특성은 비디오의 콘텐츠를 포함한다. 일부 실시예에서, 비디오의 특성은 디코더 파라미터 세트, 슬라이스 파라미터 세트, 비디오 파라미터 세트, 픽처 파라미터 세트, 적응 파라미터 세트, 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU), 코딩 유닛, LCU 행, LCU의 그룹, 트랜스폼 유닛, 픽처 유닛, 또는 비트스트림 표현의 비디오 코딩 유닛에서 시그널링 되는 정보를 포함한다. 일부 실시예에서, 비디오의 특성은 비디오 내의 코딩 유닛, 픽처 유닛, 트랜스폼 유닛, 블록, 또는 비디오 코딩 유닛의 위치를 포함한다. 일부 실시예에서, 비디오의 특성은 가장자리를 따라 적어도 일부 샘플을 포함하는 블록의 코딩 모드를 포함한다. 일부 실시예에서, 비디오의 특성은 가장자리를 따라 적어도 일부 샘플을 포함하는 블록에 적용되는 트랜스폼 행렬를 포함한다. 일부 실시예에서, 현재 블록 또는 현재 블록의 이웃 블록의 특성은 현재 블록의 차원 또는 현재 블록의 이웃 블록의 차원을 포함한다. 일부 실시예에서, 현재 블록 또는 현재 블록의 이웃 블록의 특성은 현재 블록의 형상 또는 현재 블록의 이웃 블록의 형상을 포함한다. 일부 실시예에서, 비디오의 특성은 비디오의 컬러 포맷의 표시를 포함한다. 일부 실시예에서, 비디오의 특성은 비디오에 적용 가능한 코딩 트리 구조를 포함한다. 일부 실시예에서, 비디오의 특성은 비디오의 슬라이스 유형, 타일 그룹 유형, 또는 픽처 유형을 포함한다. 일부 실시예에서, 비디오의 특성은 비디오의 컬러 컴포넌트를 포함한다. 일부 실시예에서, 비디오의 특성은 비디오의 시간적 계층 식별자(temporal layer identifier)를 포함한다. 일부 실시예에서, 비디오의 특성은 비디오 표준의 프로파일, 레벨 또는 티어를 포함한다.
일부 실시예에서, 변환은 비디오를 비트스트림 표현으로 인코딩하는 단계를 포함한다. 일부 실시예에서, 변환은 비트스트림 표현을 비디오로 디코딩하는 단계를 포함한다.
도 24는 본 개시물의 기법들을 이용할 수도 있는 예시적인 비디오 코딩 시스템(100)을 예시하는 블록도이다.
도 24에 도시된 바와 같이, 비디오 코딩 시스템(100)은 소스 장치(source device)(110) 및 목적 장치(destination device)(120)를 포함할 수 있다. 소스 장치(110)는 인코딩된 비디오 데이터를 생성하고, 비디오 인코딩 장치로 참조될 수 있다. 목적 장치(120)는 소스 장치(110)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있고, 비디오 디코딩 장치로 참조될 수 있다.
소스 장치(110)에는 비디오 소스(112), 비디오 인코더(114) 및 입력/출력(I/O) 인터페이스(116)가 포함될 수 있다.
비디오 소스(112)에는 비디오 캡처 장치, 비디오 컴텐츠 공급자로부터 비디오 데이터를 수신하는 인터페이스, 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템 또는 이러한 소스의 조합을 포함할 수 있다. 비디오 데이터는 하나 이상의 픽처를 포함할 수 있다. 비디오 인코더(114)는 비디오 소스(112)의 비디오 데이터를 인코딩하여 비트스트림을 생성한다. 비트스트림에는 비디오 데이터의 코딩된 표현을 형성하는 비트들의 시퀀스가 포함될 수 있다. 비트스트림에는 코딩된 픽처 및 관련 데이터가 포함될 수 있다. 코딩된 픽처는 픽처의 코딩된 표현(representation)이다. 관련 데이터에는 시퀀스 파라미터 세트, 픽처 파라미터 세트 및 기타 신택스 구조가 포함될 수 있다. 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) 표준 및 기타 현재 및/또는 추가 표준과 같은 비디오 압축 표준에 따라 동작할 수 있다.
도 25은 도 24에 도시된 시스템(100)에서 비디오 인코더(114)일 수 있는 비디오 인코더(200)의 예를 보여주는 블록도이다. 비디오 인코더(200)는 본 개시의 기술 중 어느 또는 전부를 수행하도록 구성될 수 있다. 도 25의 예에서, 비디오 인코더(200)는 복수의 기능 컴포넌트를 포함한다. 본 개시에 기재된 기술은 비디오 인코더(200)의 다양한 컴포넌트들 간에 공유될 수 있다. 일부 예에서, 프로세서는 본 개시에 기재된 임의 또는 전부를 수행하기 위해 구성될 수 있다.
비디오 인코더(200)의 기능 컴포넌트는 파티션 유닛(201)와, 모드 선택 유닛(203), 모션 추정 유닛(204), 모션 보상 유닛(205) 및 인트라 예측 유닛(206)를 포함할 수 있는 예측 유닛(202)과, 잔차 생생 유닛(207), 트랜스폼 유닛(208), 양자화 유닛(209), 역양자화 유닛(210), 역트랜스폼 유닛(211), 재구성 유닛(212), 버퍼(213), 및 엔트로피 인코딩 유닛(214)를 포함할 수 있다.
다른 예에서, 비디오 인코더(200)에는 더 많거나, 적거나, 다른 기능 컴포넌트가 포함될 수 있다. 예를 들어, 예측 유닛(202)는 인트라 블록 카피(IBC) 유닛을 포함할 수 있다. IBC 유닛은 IBC 모드에서 적어도 하나의 레퍼런스 픽처가 현재 비디오 블록이 있는 픽처인 경우, 의 예측을 수행할 수 있다.
더욱이, 모션 추정부(204) 및 모션 보정부(205)와 같은 일부 컴포넌트는 고도로(highly) 통합될 수 있으나, 도 5의 예에서는 설명의 목적을 위해 분리된 것으로 표현되었다.
파티션 장치(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)는 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 공간 변위(spatial displacement)를 나타내는 레퍼런스 비디오 블록 및 모션 벡터를 포함하는 목록 0 또는 목록 1에서 레퍼런스 픽처를 나타내는 레퍼런스 인덱스를 생성할 수 있다. 모션 추정 유닛(204)는 레퍼런스 인덱스, 예측 디렉션 표시기 및 모션 벡터를 현재 비디오 블록의 모션 정보로 출력할 수 있다. 모션 보상 유닛(205)는 현재 비디오 블록의 동작 정보에 의해 표시된 레퍼런스 비디오 블록에 기초하여 현재 블록의 예측된 비디오 블록을 생성할 수 있다.
다른 예에서, 모션 추정 유닛(204)는 현재 비디오 블록에 대한 바이-디렉셔널(bi-directional) 예측을 수행할 수 있고, 모션 추정 유닛(204)는 현재 비디오 블록에 대한 레퍼런스 비디오 블록에 대한 목록 0에서 레퍼런스 픽처를 검색할 수 있으며, 또한 현재 비디오 블록에 대한 다른 레퍼런스 비디오 블록에 대한 목록 1에서 레퍼런스 픽처를 검색할 수 있다. 그런 다음, 모션 추정 유닛(204)는 레퍼런스 비디오 블록과 현재 비디오 블록 사이의 공간 변위를 나타내는 레퍼런스 비디오 블록 및 모션 벡터를 포함하는 목록 0 및 목록 1에서 레퍼런스 픽처를 나타내는 레퍼런스 인덱스를 생성할 수 있다. 모션 추정 유닛(204)는 현재 비디오 블록의 모션 정보로서 현재 비디오 블록의 레퍼런스 인덱스 및 모션 벡터를 출력할 수 있다. 모션 보정 유닛(205)는 현재 비디오 블록의 동작 정보에 의해 표시된 레퍼런스 비디오 블록에 기초하여 현재 비디오 블록의 예측 비디오 블록을 생성할 수 있다.
일부 예에서, 모션 추정 유닛(204)는 디코더의 디코딩 처리를 위한 전체 모션 정보 세트를 출력할 수 있다.
일부 예에서, 모션 추정 유닛(204)는 현재 비디오에 대한 전체 모션 정보 세트를 출력하지 않을 수 있다. 오히려, 모션 추정 유닛(204)는 다른 비디오 블록의 동작 정보를 참조하여 현재 비디오 블록의 모션 정보를 시그널링할 수 있다. 예를 들어, 모션 추정 유닛(motion estimation unit)(204)는 현재 비디오 블록의 모션 정보가 이웃 비디오 블록의 동작 정보와 충분히 유사하다고 결정할 수 있다.
하나의 예에서, 모션 추정 유닛(204)는 현재 비디오 블록과 연결된 신텍스 구조에서 현재 비디오 블록이 다른 비디오 블록과 동일한 모션 정보를 가지고 있음을 비디오 디코더(300)에 나타내는 값을 나타낼 수 있다.
또 다른 예에서, 모션 추정 유닛(204)는 현재 비디오 블록과 연관된 신텍스 구조에서, 다른 비디오 블록 및 모션 벡터 차이(MVD)를 식별할 수 있다. 모션 벡터 차이는 현재 비디오 블록의 모션 벡터와 표시된 비디오 블록의 모션 벡터 사이의 차이를 나타낸다. 비디오 디코더(300)는 현재 비디오 블록의 모션 벡터를 결정하기 위해 표시된 비디오 블록의 모션 벡터 및 모션 벡터 차이를 사용할 수 있다.
위에서 설명한 바와 같이, 비디오 인코더(200)는 모션 벡터를 예측적으로 시그널링할 수 있다. 비디오 인코더(200)에 의해 구현될 수 있는 예측 시그널링 기술의 두 가지 예는, 어드밴스드 모션 벡터 예측(AMVP) 및 병합 모드 시그널링을 포함한다.
인트라 예측 유닛(206)은 현재 비디오 블록에 대한 인트라 예측을 수행할 수 있다. 인트라 예측 유닛(206)가 현재 비디오 블록에 대한 인트라 예측을 수행하는 경우, 인트라 예측 유닛(206)는 동일 픽처에서 다른 비디오 블록의 디코딩된 샘플에 기초하여 현재 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 현재 비디오 블록에 대한 예측 데이터에는 예측된 비디오 블록 및 다양한 신텍스 요소가 포함될 수 있다.
잔차 생성 유닛(207)는 현재 비디오 블록으로부터 예측된 비디오 블록의 예측 비디오 블록(예를 들어, 마이너스 기호로 표시)을 빼서 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 잔차 데이터는 현재 비디오 블록에서 샘플의 상이한 샘플 컴포넌트에 대응하는 잔차 비디오 블록을 포함할 수 있다.
다른 예에서, 현재 비디오 블록에 대한 현재 비디오 블록에 대한 잔차 데이터가 없을 수 있고, 예를 들어 스킵(skip) 모드에서, 잔차 생성 유닛(207)는 빼기 동작을 수행하지 않을 수 있다.
트랜스폼 처리 유닛(208)는 현재 비디오 블록과 연결된 잔차 비디오 블록에 하나 이상의 트랜스폼을 적용하여 현재 비디오 블록에 대해 하나 이상의 트랜스폼 계수 비디오 블록을 생성할 수 있다.
트랜스폼 처리 유닛(208)는 현재 비디오 블록과 관련된 트랜스폼 계수 비디오 블록을 생성한 후, 양자화 유닛(209)는 현재 비디오 블록과 연관된 하나 이상의 양자화 파라미터(QP) 값에 기초하여 현재 비디오 블록과 관련된 트랜스폼 계수 비디오 블록을 양자화할 수 있다.
역양자화 유닛(210)와 역트랜스폼부 유닛(211)는 트랜스폼 계수 비디오 블록으로부터 잔차 비디오 블록을 재구성하기 위해, 트랜스폼 계수 비디오 블록에 역양자화 및 역트랜스폼을 각각 적용할 수 있다. 재구성 유닛(212)는 예측 유닛(202)에 의해 생성된 하나 이상의 예측된 비디오 블록으로부터 대응하는 샘플에 재구성된 잔차 비디오 블록을 추가하여 버퍼(213)에 저장하기 위한 현재 블록과 연관된 재구성된 비디오 블록을 생성할 수 있다.
재구성 유닛(212)가 비디오 블록을 재구성한 후, 비디오 블록에서 비디오 차단 아티팩트를 줄이기 위해 루프 필터링 동작이 수행된다.
엔트로피 인코딩 유닛(214)은 비디오 인코더(200)의 다른 함수 컴포넌트로부터 데이터를 수신할 수 있다. 엔트로피 인코딩 유닛(214)가 데이터를 수신하는 경우, 엔트로피 인코딩 유닛(214)는 엔트로피 인코딩된 데이터를 생성하고 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력하기 위해 하나 이상의 엔트로피 인코딩 동작을 수행할 수 있다.
도 26은 도 24에 도시된 시스템(100)에서 비디오 디코더(114)일 수 있는 비디오 디코더(300)의 예를 도시하는 블록도이다.
비디오 디코더(300)는 본 개시의 기술 중 어느 또는 전부를 수행하도록 구성될 수 있다. 도 26의 예에서, 비디오 디코더(300)는 복수의 함수 컴포넌트를 포함한다. 본 개시에 기재된 기술은 비디오 디코더(300)의 다양한 컴포넌트들 간에 공유될 수 있다. 일부 예에서, 프로세서는 본 개시에 기재된 임의 또는 전부를 수행하기 위해 구성될 수 있다.
도 26의 예에서, 비디오 디코더(video decoder)(300)는 엔트로피 디코딩 유닛(entropy decoding unit)(301), 모션 보상 유닛(motion compensation unit)(302), 인트라 예측 유닛(intra prediction unit)(303), 역양자화 유닛(inverse quantization unit)(304), 역트랜스폼 유닛(inverse transformation uni)(305), 및 재구성 유닛(reconstruction unit)(306) 및 버퍼(buffer)(307)를 포함한다. 비디오 디코더(300)는, 일부 예에서, 비디오 인코더(200)(예를 들어, 도 25)에 대하여 기술된 인코딩 패스(pass)와 일반적으로 서로 주고 받는(reciprocal) 디코딩 패스를 수행할 수 있다.
엔트로피 디코딩 유닛(301)는 인코딩된 비트스트림을 검색할 수 있다. 인코딩된 비트스트림에는 엔트로피 코딩된 비디오 데이터(예를 들어, 비디오 데이터의 인코딩된 블록)가 포함될 수 있다. 엔트로피 디코딩 유닛(301)는 엔트로피 코딩된 비디오 데이터를 디코딩할 수 있고, 엔트로피 디코딩된 비디오 데이터로부터 모션 보상 유닛(302)는 모션 벡터, 모션 벡터 정밀도, 레퍼런스 픽처 목록 인덱스 및 기타 모션 정보를 포함하는 모션 정보를 결정할 수 있다. 모션 보상 유닛(302)는, 예를 들어 AMVP 및 병합 모드를 수행하여 이러한 정보를 결정할 수 있다.
모션 보상 유닛(302)는 보간 필터에 기초하여 보간(interpolation)을 수행하여 모션 보정 블록을 생성할 수 있다. 서브 픽셀 정밀도와 함께 사용되는 보간 필터에 대한 식별자가 신텍스 요소에 포함될 수 있다.
모션 보상 유닛(302)는 비디오 블록을 인코딩하는 동안 비디오 인코더(20)에서 사용하는 보간 필터를 사용하여 레퍼런스 블록의 서브 정수 픽셀에 대한 보간 값을 계산할 수 있다. 모션 보상 유닛(302)는 수신된 신텍스 정보에 따라 비디오 인코더(200)에서 사용하는 보간 필터를 결정하고 보간 필터를 사용하여 예측 블록을 생성할 수 있다.
모션 보상 유닛(302)는 인코딩된 비디오 시퀀스의 프레임 및/또는 슬라이스를 인코딩하는 데 사용되는 블록의 크기, 인코딩된 비디오 시퀀스의 각 매크로 블록이 파티셔닝되는 방식을 설명하는 파티션 정보, 각 파티션이 인코딩된 방법, 각 파티션이 인코딩되는 방식을 나타내는 모드, 각 인터-인코딩된 블록에 대한 하나 이상의 레퍼런스 프레임(및 레퍼런스 프레임 목록) 및 인코딩된 비디오 시퀀스를 디코딩하는 다른 정보들을 결정하기 위해 일부 신텍스 정보를 사용할 수 있다.
인트라 예측 유닛(303)는, 예를 들어 비트스트림에서 수신된 인트라 예측 모드를 사용하여 공간적으로 인접한 블록으로부터 예측 블록을 형성할 수 있다. 역양자화 유닛(303)는 비트스트림에서 제공되고 엔트로피 디코딩 유닛(301)에서 디코딩된 양자화된 비디오 블록 계수를 역 양자화(예를 들어, 디콴타이즈(de-quantize))한다. 역트랜스폼 유닛(Inverse transform unit)(303)은 역트랜스폼을 적용한다.
재구성 유닛(Reconstruction unit)(306)은 모션 보상 유닛(202) 또는 인트라 예측 유닛(303)에 의해 생성된 대응하는 예측 블록과 잔차 블록을 합산하여 디코딩된 블록을 형성할 수 있다. 원하는 경우, 디블로킹 필터(deblocking filter)를 적용하여 차단 아티팩트를 제거하기 위해 디코딩된 블록을 필터링할 수도 있다. 디코딩된 비디오 블록은 버퍼(307)에 저장되고, 이는 이후의 모션 보상을 위한 레퍼런스 블록을 제공한다.
개시된 기술의 일부 실시예는 비디오 프로세싱 툴 또는 모드를 활성화하기 위한 판단(decision) 또는 결정(determination)을 내리는 것을 포함한다. 예를 들어 비디오 프로세싱 툴 또는 모드가 활성화되면 인코더가 비디오 블록 프로세싱에서 툴 또는 모드를 사용하거나 구현하지만, 툴 또는 모드의 사용에 따라 결과 비트스트림을 반드시 수정할 필요는 없다. 즉, 비디오 블록에서 비디오의 비트스트림 표현으로 변환하면 판단 또는 결정에 따라 활성화될 때 비디오 프로세싱 툴 또는 모드를 사용한다. 또 다른 예에서 비디오 프로세싱 툴 또는 모드가 활성화되면 디코더는 비디오 프로세싱 툴 또는 모드에 따라 비트스트림이 수정되었다는 것을 알고 비트스트림을 프로세싱 한다. 즉, 비디오의 비트스트림 표현에서 비디오 블록으로의 변환은 판단 또는 결정에 따라 활성화된 비디오 프로세싱 툴 또는 모드를 사용하여 수행된다.
개시된 기술의 일부 실시예에는 비디오 프로세싱 툴 또는 모드를 비활성화하는 판단(decision) 또는 결정(determination)을 내리는 것이 포함된다. 예를 들어 비디오 프로세싱 툴 또는 모드가 비활성화되면, 인코더는 비디오 블록을 비트스트림 표현으로 변환하는 데 툴 또는 모드를 사용하지 않는다. 다른 예에서, 비디오 처리 툴 또는 모드가 비활성화될 때, 디코더는 판정 또는 결정에 기초하여 활성화된 비디오 처리 툴 또는 모드를 사용하여 비트스트림이 수정되지 않았다는 지식으로 비트스트림을 처리할 것이다.
본 문서에 기재된 개시 및 기타 솔루션, 예, 실시예, 모듈 및 기능적 작업은 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있으며, 여기에는 이 문서 및 그 구조적 등가물 또는 그 중 하나 이상의 조합으로 구현될 수 있다. 개시된 및 기타 실시예는 하나 이상의 컴퓨터 프로그램 제품으로 구현될 수 있고, 즉, 컴퓨터 프로그램 지침의 하나 이상의 모듈을 컴퓨터 판독 가능한 매체에 인코딩 하여 실행하거나, 데이터 처리 장치의 작동을 제어할 수 있다. 컴퓨터가 읽을 수 있는 매체는 기계가 읽을 수 있는 저장 장치, 기계가 읽을 수 있는 스토리지 기판, 메모리 장치, 기계가 읽을 수 있는 전파 신호에 영향을 미치는 물질의 조성 또는 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치"는 예를 들어 프로그래밍 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 장치, 장치 및 컴퓨터를 포함한다. 이 장치에는 대응하는 컴퓨터 프로그램에 대한 실행 환경을 만드는 코드(예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 하나 이상의 조합)가 포함될 수 있다. 전파된 신호는 인위적으로 생성된 신호, 예를 들어, 기계에서 생성된 전기, 광학 또는 전자기 신호이고, 이는 적합한 수신기 장치로 전송하기 위한 정보를 인코딩 하기 위해 생성된다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 응용 프로그램, 스크립트 또는 코드라고도 함)은 컴파일 된 언어를 비롯한 모든 형태의 프로그래밍 언어로 작성할 수 있으며 독립 실행형 프로그램 또는 컴퓨팅 환경에서 사용하기에 적합한 모듈, 컴포넌트, 서브루틴 또는 기타 유닛으로 모든 형태로 배포할 수 있다. 컴퓨터 프로그램이 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 다른 프로그램 이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트), 대응하는 프로그램에 전념하는 단일 파일 또는 여러 조정된 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 일부를 저장하는 파일)에 저장할 수 있다. 컴퓨터 프로그램은 한 컴퓨터 또는 한 사이트에 위치하거나 여러 사이트에 분산되고 통신 네트워크에 의해 상호 연결된 여러 컴퓨터에서 실행하도록 배포할 수 있다.
이 문서에 설명된 프로세스 및 논리 흐름은 하나 이상의 프로그래밍 가능한 프로세서가 하나 이상의 프로그래밍 가능한 프로세서에서 수행하여 입력 데이터에서 작동하고 출력을 생성하여 기능을 수행할 수 있다. 프로세스 및 로직 흐름도 수행될 수 있으며, 장치는 특수 목적 논리 회로, 예를 들어, FPGA(필드 프로그래밍 가능한 게이트 어레이) 또는 ASIC(응용 프로그램 별 집적 회로)로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서에는 예를 들어, 일반 및 특수 목적 마이크로프로세서와 모든 종류의 디지털 컴퓨터의 하나 이상의 프로세서가 포함된다. 일반적으로 프로세서는 읽기 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다에서 지침과 데이터를 받게 된다. 컴퓨터의 필수 요소는 지침과 데이터를 저장하기 위한 하나 이상의 메모리 장치를 수행하기 위한 프로세서이다. 일반적으로 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대량 저장 장치(예를 들어, 자기, 마그네토 광학 디스크 또는 광학 디스크)에서 데이터를 수신하거나 전송하기 위해 작동적으로 결합되거나 결합된다. 그러나, 컴퓨터에 이러한 장치가 필요하지 않다. 컴퓨터 프로그램 지침 및 데이터를 저장하는 데 적합한 컴퓨터 판독 가능한 미디어에는 반도체 메모리 장치, 예를 들어, EPROM, EEPROM 및 플래시 메모리 장치, 자기 디스크, 예를 들어, 내부 하드 디스크 또는 이동식 디스크; 마그네토 광학 디스크; 및 CD ROM 및 DVD-ROM 디스크를 비롯한 모든 형태의 비휘발성 메모리, 미디어 및 메모리 장치가 포함된다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보충되거나 통합될 수 있다.
이 특허 문서에는 많은 세부 사항이 포함되어 있지만, 이는 어떤 주제의 범위 나 청구 될 수 있는 것에 대한 제한으로 해석되어서는 안되며, 오히려 특정 기술의 특정 구현예에 특정할 수 있는 특징에 대한 설명으로 해석되어서는 안 된다. 이 특허 문서에 기재된 특정 특징은 별도의 실시예의 맥락에서 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 문맥상에 기재되는 다양한 특징은 또한 다중 실시예에서 개별적으로 또는 임의의 적합한 서브 조합에서 구현될 수 있다. 더욱이, 특징은 특정 조합에서 작용하는 것으로 설명될 수 있고 심지어 초기에 청구된 것과 같이, 청구된 조합으로부터의 하나 이상의 특징은 어떤 경우에는 조합 자체에 머물수도 있고, 청구된 조합의 서브 조합 또는 변형으로 확장될 수도 있다.
마찬가지로, 동작은 특정 순서로 도면에 도시되어 있지만, 이러한 동작이 도시된 특정 순서 또는 순차적인 순서로 수행되거나, 모든 도시된 동작을 수행하여 바람직한 결과를 달성하도록 요구하는 것으로 이해되어서는 안 된다. 더욱이, 본 특허 문서에 기재된 실시예에서 다양한 시스템 컴포넌트의 분리는 모든 실시예에서 이러한 분리를 요구하는 것으로 이해되어서는 안 된다.
몇 가지 구현 및 예제만 설명되며 이 특허 문서에 설명되고 도시된 내용에 따라 다른 구현, 개선 및 변형을 만들 수 있다.

Claims (63)

  1. 비디오 처리 방법에 있어서,
    비디오의 현재 블록과 상기 비디오의 비트스트림 표현 사이의 변환을 위해, 비디오 유닛의 레벨에서 신택스 요소에 따라 상기 현재 블록에 대한 크로마 양자화 파라미터(QP) 오프셋의 사용을 가능하게 하는지 여부를 결정하는 단계 - 상기 비디오 유닛은 상기 현재 블록과 비디오의 제2 블록을 포함함 -; 및
    상기 결정하는 단계에 기초하여 상기 변환을 수행하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 비디오 유닛은 슬라이스를 포함하는
    방법.
  3. 제2항에 있어서,
    상기 비디오 유닛은 타일, 브릭, 또는 서브픽처를 더 포함하는
    방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 신택스 요소는 상기 비디오 유닛의 레벨에서 상기 비트스트림 표현에 조건부로 포함되는
    방법.
  5. 제4항에 있어서,
    상기 신택스 요소는 크로마 잔차 모드의 공동 코딩이 활성화되는지 여부에 기초하여 상기 비트스트림 표현에 조건부로 포함되는
    방법.
  6. 제4항에 있어서,
    상기 신택스 요소는 블록 레벨에서 상기 크로마 양자화 파라미터(QP) 오프셋의 사용을 표시하는 픽처 레벨에서 제2 신택스 요소에 기초하여 상기 비디오 유닛의 레벨에서 상기 비트스트림 표현에 포함되는
    방법.
  7. 제4항에 있어서,
    상기 신택스 요소는 상기 비트스트림 표현에서 생략되고,
    상기 블록 레벨에서 상기 크로마 양자화 파라미터(QP) 오프셋의 사용은 픽처 레벨에서 제2 신택스 요소가 블록 레벨에서 상기 크로마 양자화 파라미터(QP) 오프셋의 사용이 비활성화되는 것을 나타내는 경우 비활성화되는 것으로 결정되는
    방법.
  8. 제6항 또는 제7항에 있어서,
    상기 현재 블록에 대한 상기 크로마 양자화 파라미터(QP) 오프셋의 사용은 상기 슬라이스 레벨에서 상기 신택스 요소 및 상기 픽처 레벨에서 제2 신택스 요소 둘 모두에 기초하여 결정되는
    방법.
  9. 비디오 처리 방법에 있어서,
    제1 크로마 컴포넌트 및 제2 크로마 컴포넌트을 포함하는 비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고;
    상기 제1 크로마 컴포넌트의 제1 크로마 블록과 상기 제2 크로마 컴포넌트의 제2 크로마 블록의 잔차는 규칙에 따라 코딩 모드를 사용하여 비트스트림 표현에서 공동으로 코딩되고; 및 상기 규칙은 상기 변환을 위한 양자화 파라미터(QP)를 유도하는 방식이 코딩 모드와 무관함을 지정하는
    방법.
  10. 제9항에 있어서,
    상기 변환을 위한 상기 QP는 상기 비트스트림 표현의 픽처 레벨 또는 슬라이스 레벨에서 시그널링된 QP 오프셋에 기초하여 유도되는
    방법.
  11. 비디오 처리 방법에 있어서,
    비디오의 제1 블록과 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계 - 상기 비디오는 다수의 컬러 컴포넌트의 컬러 포맷을 갖고, 상기 제1 블록은 상기 비디오의 제1 컬러 컴포넌트와 연관되고, 상기 변환 동안, 디블로킹 필터링 프로세스가 상기 제1 블록의 가장자리를 따라 적어도 일부 샘플에 적용됨 -;
    상기 비디오의 나머지 컬러 컴포넌트와 상기 비디오의 비트스트림 표현과 연관된 블록 사이의 후속 변환을 수행하는 단계 - 상기 후속 변환 동안, 상기 디블로킹 필터 프로세스는 상기 제1 블록의 변환과 동일한 방식으로 상기 블록 각각의 가장자리를 따라 적어도 일부 샘플에 적용됨 - 를 포함하는
    방법.
  12. 제11항에 있어서,
    상기 컬러 포맷은 4:4:4인
    방법.
  13. 제11항에 있어서,
    상기 컬러 포맷은 적-녹-청(RGB) 컬러 공간에서 4:4:4인
    방법.
  14. 제11항에 있어서,
    상기 컬러 포맷은 4:2:2이고, 상기 디블로킹 필터 프로세스는 수직 방향으로 적용되는
    방법.
  15. 제11항 내지 제14항 중 어느 한 항에 있어서,
    디블로킹 필터 프로세스는 판정 프로세스 및/또는 필터링 프로세스를 포함하는
    방법.
  16. 비디오 처리 방법에 있어서,
    비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 위해, 비디오의 두 블록 사이의 경계의 경계 강도를 결정하는 단계 - 상기 경계 강도는 상기 두 블록 중 어느 하나가 크로마 잔차의 공동 코딩(JCCR) 모드로 코딩되는지 여부와 무관하게 결정됨 -; 및 상기 결정하는 단계에 기초하여 상기 변환을 수행하는 단계를 포함하는
    방법.
  17. 제16항에 있어서,
    상기 두 블록 중 하나의 블록이 상기 JCCR 모드로 코딩된 경우,
    상기 블록은 상기 경계 강도를 결정하기 위해 비-JCCR 모드에서 코딩된 것으로 처리되는
    방법.
  18. 제16항 또는 제17항에 있어서,
    상기 경계 강도는 상기 두 블록에 대한 상기 JCCR의 사용과 무관하게 결정되는
    방법.
  19. 비디오 처리 장치에 있어서,
    비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 위해, 제1 블록과 제2 블록 사이의 경계의 경계 강도를 결정하는 단계 - 상기 결정하는 단계는 상기 제1 블록의 정보와 상기 제2 블록의 대응하는 정보를 비교하지 않고 수행되고, 상기 정보는 대응하는 블록의 레퍼런스 픽처 및/또는 다수의 모션 벡터를 포함하고, 및 상기 경계 강도는 디블로킹 필터링 프로세스가 상기 경계에 적용 가능한지 여부를 결정하는 데 사용됨 -; 및 상기 결정하는 단계에 기초하여 상기 변환을 수행하는 단계
    방법.
  20. 제19항에 있어서,
    상기 경계 강도는 상기 제1 블록의 레퍼런스 픽처가 상기 제2 블록의 레퍼런스 픽처와 상이한 경우 상기 디블로킹 필터링 프로세스가 비활성화됨을 나타내는
    방법.
  21. 제19항에 있어서,
    상기 경계 강도는 상기 제1 블록의 모션 벡터의 수가 상기 제2 블록의 모션 벡터의 수와 상이한 경우 상기 디블로킹 필터링 프로세스가 비활성화됨을 나타내는
    방법.
  22. 제19항에 있어서,
    상기 경계 강도는 상기 제1 블록의 하나 이상의 모션 벡터와 상기 제2 블록의 하나 이상의 모션 벡터 사이의 차이가 임계값보다 크거나 같은 경우에 1로 설정되고, 상기 임계값은 정수인
    방법.
  23. 제22항에 있어서,
    상기 제1 블록의 하나 이상의 모션 벡터는 MVP[0] 및 MVP[1]로 표시되고,
    상기 제2 블록의 하나 이상의 모션 벡터는 MVQ[0] 및 MVQ[1]로 표시되고,
    상기 차이는 (Abs(MVP[0].x - MVQ[0].x) > Th || Abs(MVP[0].y - MVQ[0].y) > Th || Abs(MVP[1].x - MVQ[1].x) > Th) || Abs(MVP[1].y - MVQ[1].y) > Th)의 경우 임계값 Th보다 크거나 같은
    방법.
  24. 제22항에 있어서,
    상기 제1 블록의 하나 이상의 모션 벡터는 MVP[0] 및 MVP[1]로 표시되고,
    상기 제2 블록의 하나 이상의 모션 벡터는 MVQ[0] 및 MVQ[1]로 표시되고,
    상기 차이는 (Abs(MVP[0].x - MVQ[0].x) > Th && Abs(MVP[0].y - MVQ[0].y) > Th && Abs(MVP[1].x - MVQ[1].x) > Th) && Abs(MVP[1].y - MVQ[1].y) > Th)의 경우 임계값 Th보다 크거나 같은
    방법.
  25. 제22항에 있어서,
    상기 제1 블록의 하나 이상의 모션 벡터는 MVP[0] 및 MVP[1]로 표시되고,
    상기 제2 블록의 하나 이상의 모션 벡터는 MVQ[0] 및 MVQ[1]로 표시되고,
    상기 차이는 (Abs(MVP[0].x - MVQ[0].x) > Th || Abs(MVP[0].y - MVQ[0].y) > Th ) && (Abs(MVP[1].x - MVQ[1].x) > Th) || Abs(MVP[1].y - MVQ[1].y) > Th)의 경우 임계값 Th보다 크거나 같은
    방법.
  26. 제22항에 있어서,
    상기 제1 블록의 하나 이상의 모션 벡터는 MVP[0] 및 MVP[1]로 표시되고,
    상기 제2 블록의 하나 이상의 모션 벡터는 MVQ[0] 및 MVQ[1]로 표시되고,
    상기 차이는 (Abs(MVP[0].x - MVQ[0].x) > Th && Abs(MVP[0].y - MVQ[0].y) > Th ) || (Abs(MVP[1].x - MVQ[1].x) > Th) && Abs(MVP[1].y - MVQ[1].y) > Th)의 경우 임계값 Th보다 크거나 같은
    방법.
  27. 제19항에 있어서,
    상기 경계 강도는 상기 제1 블록의 모션 벡터와 상기 제2 블록의 모션 벡터 사이의 차이가 임계값 이하인 경우 0으로 설정되고, 상기 임계값은 정수인
    방법.
  28. 제22항 내지 제27항 중 어느 한 항에 있어서,
    상기 임계값은 4, 8 또는 16인
    방법.
  29. 제22항 내지 제27항 중 어느 한 항에 있어서,
    상기 임계값은 상기 비디오의 특성에 기초하는
    방법.
  30. 제22항 내지 제29항 중 어느 한 항에 있어서,
    상기 방법의 적용 가능성은 조건에 기초하여 결정되는
    방법.
  31. 제30항에 있어서,
    상기 방법은 상기 제1 블록 및 상기 제2 블록이 인트라 예측 모드로 코딩되지 않은 경우에 적용 가능한
    방법.
  32. 제30항에 있어서,
    상기 방법은 상기 제1 블록 및 상기 제2 블록이 루마 컴포넌트에 대한 계수가 0인 경우에 적용 가능한
    방법.
  33. 제30항에 있어서,
    상기 방법은 상기 제1 블록 및 상기 제2 블록이 결합된 인터 및 인트라 예측 모드로 코딩되지 않은 경우에 적용 가능한
    방법.
  34. 제30항에 있어서,
    상기 방법은 상기 제1 블록 및 상기 제2 블록이 동일한 예측 모드로 코딩된 경우에 적용 가능하고, 상기 동일한 예측 모드는 인트라 블록 복사 예측 모드 또는 인터 예측 모드인
    방법.
  35. 비디오 처리 방법에 있어서,
    비디오의 비디오 블록과 상기 비디오의 비트스트림 표현 사이의 변환을 위해, 규칙에 따라 상기 비디오 블록에 디블로킹 필터링을 적용하는데 사용되는 양자화 파라미터(QP)를 결정하는 단계; 및
    상기 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함하고;
    상기 규칙은 상기 비디오 블록의 잔차가 트랜스폼의 적용을 스킵함으로서 상기 비트스트림 표현에서 코딩되는 트랜스폼 스킵(TS) 모드를 사용하여 상기 비디오 블록이 코딩되는 경우 상기 결정하는 단계에서 제1 QP가 사용됨을 지정하고, 상기 제1 QP와 상이한 제2 QP는 상기 비디오 블록의 잔차가 상기 트랜스폼을 적용한 후 상기 비트스트림 표현에서 코딩되는 비-트랜스폼 스킵 모드를 사용하여 상기 비디오 블록이 코딩되는지 여부를 결정하는 데 사용되는
    방법.
  36. 제35항에 있어서,
    루마 블록의 변환을 위해, 상기 루마 블록에 적용 가능한 필터링 프로세스는 상기 루마 블록의 스케일링 프로세스에 적용된 QP에 기초하는
    방법.
  37. 제36항에 있어서,
    상기 필터링 프로세스가 상기 루마 블록에 적용 가능한지 여부를 결정하는 데 사용되는 상기 QP는 상기 TS 모드의 클리핑 범위에 기초하여 결정되는
    방법.
  38. 비디오 처리 방법에 있어서,
    비디오의 비디오 블록과 상기 비디오의 비트스트림 표현 사이의 변환을 위해, 규칙에 따라 상기 비디오 블록의 가장자리의 적어도 일부 샘플에 대한 디블로킹 필터링 프로세스의 적용 가능성을 결정하기 위한 그레디언트를 결정하는 단계; 및 상기 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함하고; 상기 규칙은 상기 그레디언트가 결정되는 방식이 상기 비디오 블록의 크기와 무관함을 지정한하는
    방법.
  39. 제38항에 있어서,
    상기 디블로킹 필터링 프로세스가 활성화되는지 여부를 결정하기 위한 임계값은 상이한 경계 크기를 갖는 블록에 대해 조정되고, 상기 임계값은 정수인
    방법.
  40. 제39항에 있어서,
    상기 임계값은 상기 디블로킹 필터링 프로세스를 위해 결정된 양자화 파라미터에 기초하는
    방법.
  41. 제39항에 있어서,
    큰 경계를 갖는 블록에 대한 상기 임계값은 작은 경계를 갖는 블록에 대한 제2 임계값보다 작은
    방법.
  42. 제39항에 있어서,
    큰 경계를 갖는 블록에 대한 상기 임계값은 작은 경계를 갖는 블록에 대한 제2 임계값보다 큰
    방법.
  43. 제39항에 있어서,
    큰 경계를 갖는 블록에 대한 상기 임계값은 작은 경계를 갖는 블록에 대한 제2 임계값과 동일한
    방법.
  44. 제39항에 있어서,
    상기 임계값은 상기 비디오의 특성에 기초하는
    방법.
  45. 제1항 내지 제44항 중 어느 한 항에 있어서,
    상기 방법의 적용 가능성은 비디오의 특성에 기초하는
    방법.
  46. 제39항에 있어서,
    제29항, 제44항 또는 제45항 중 어느 한 항에 있어서,
    상기 비디오의 특징은 상기 비디오의 콘텐츠를 포함하는
    방법.
  47. 제29항, 제44항 또는 제45항 중 어느 한 항에 있어서,
    상기 비디오의 특성은 디코더 파라미터 세트, 슬라이스 파라미터 세트, 비디오 파라미터 세트, 픽처 파라미터 세트, 적응 파라미터 세트, 픽처 헤더, 슬라이스 헤더, 타일 그룹 헤더, 최대 코딩 유닛(LCU), 코딩 유닛, LCU 행, LCU의 그룹, 트랜스폼 유닛, 픽처 유닛, 또는 상기 비트스트림 표현의 비디오 코딩 유닛에서 시그널링 되는 정보를 포함하는
    방법.
  48. 제29항, 제44항 또는 제45항 중 어느 한 항에 있어서,
    상기 비디오의 특성은 상기 비디오 내의 코딩 유닛, 픽처 유닛, 트랜스폼 유닛, 블록, 또는 비디오 코딩 유닛의 위치를 포함하는
    방법.
  49. 제29항, 제44항 또는 제45항 중 어느 한 항에 있어서,
    상기 비디오의 특성은 상기 가장자리를 따라 적어도 일부 샘플을 포함하는 블록의 코딩 모드를 포함하는
    방법.
  50. 제29항, 제44항 또는 제45항 중 어느 한 항에 있어서,
    상기 비디오의 특성은 상기 가장자리를 따라 적어도 일부 샘플을 포함하는 블록에 적용되는 트랜스폼 행렬을 포함하는
    방법.
  51. 제29항, 제44항 또는 제45항 중 어느 한 항에 있어서,
    상기 현재 블록 또는 상기 현재 블록의 이웃 블록의 특성은 상기 현재 블록의 차원 또는 상기 현재 블록의 이웃 블록의 차원을 포함하는
    방법.
  52. 제29항, 제44항 또는 제45항 중 어느 한 항에 있어서,
    상기 현재 블록 또는 상기 현재 블록의 이웃 블록의 특성은 상기 현재 블록의 형상 또는 상기 현재 블록의 이웃 블록의 형상을 포함하는
    방법.
  53. 제29항, 제44항 또는 제45항 중 어느 한 항에 있어서,
    상기 비디오의 특성은 상기 비디오의 컬러 포맷의 표시를 포함하는
    방법.
  54. 제29항, 제44항 또는 제45항 중 어느 한 항에 있어서,
    상기 비디오의 특성은 상기 비디오에 적용가능한 코딩 트리 구조를 포함하는
    방법.
  55. 제29항, 제44항 또는 제45항 중 어느 한 항에 있어서,
    상기 비디오의 특성은 상기 비디오의 슬라이스 유형, 타일 그룹 유형, 또는 픽처 유형을 포함하는
    방법.
  56. 제29항, 제44항 또는 제45항 중 어느 한 항에 있어서,
    상기 비디오의 특성은 상기 비디오의 컬러 컴포넌트를 포함하는
    방법.
  57. 제29항, 제44항 또는 제45항 중 어느 한 항에 있어서,
    상기 비디오의 특성은 상기 비디오의 시간적 계층 식별자를 포함하는
    방법.
  58. 제29항, 제44항 또는 제45항 중 어느 한 항에 있어서,
    상기 비디오의 특성은 비디오 표준의 프로파일, 레벨, 또는 티어를 포함하는
    방법.
  59. 제1항 내지 제58항 중 어느 한 항에 있어서,
    상기 변환은 상기 비디오를 상기 비트스트림 표현으로 인코딩하는 단계를 포함하는
    방법.
  60. 제1항 내지 제58항 중 어느 한 항에 있어서,
    상기 변환은 상기 비트스트림 표현을 상기 비디오로 디코딩하는 단계를 포함하는
    방법.
  61. 제1항 내지 제60항 중 어느 한 항에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 처리 장치.
  62. 코드가 있는 컴퓨터 판독 가능 매체에 있어서.
    상기 코드는 프로세서에 의해 실행 시, 상기 프로세서로 하여금 제1항 내지 제60항 중 어느 한 항에 기재된 방법을 구현하게 하는
    컴퓨터 판독 가능 매체.
  63. 제1항 내지 제60항 중 어느 한 항에 따라 생성된 비트스트림 표현을 저장하는 컴퓨터 판독 가능 매체.
KR1020227005302A 2019-09-14 2020-09-14 비디오 코딩의 크로마 양자화 파라미터 KR20220058889A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2019/105831 2019-09-14
CN2019105831 2019-09-14
PCT/US2020/050649 WO2021051047A1 (en) 2019-09-14 2020-09-14 Chroma quantization parameter in video coding

Publications (1)

Publication Number Publication Date
KR20220058889A true KR20220058889A (ko) 2022-05-10

Family

ID=74866030

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020227005294A KR20220058888A (ko) 2019-09-14 2020-09-14 크로마 디블로킹 필터링을 위한 양자화 파라미터 오프셋
KR1020227005302A KR20220058889A (ko) 2019-09-14 2020-09-14 비디오 코딩의 크로마 양자화 파라미터
KR1020227005307A KR20220058534A (ko) 2019-09-14 2020-09-14 크로마 디블로킹 필터링을 위한 양자화 파라미터

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020227005294A KR20220058888A (ko) 2019-09-14 2020-09-14 크로마 디블로킹 필터링을 위한 양자화 파라미터 오프셋

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020227005307A KR20220058534A (ko) 2019-09-14 2020-09-14 크로마 디블로킹 필터링을 위한 양자화 파라미터

Country Status (8)

Country Link
US (4) US11985329B2 (ko)
EP (3) EP4014497A4 (ko)
JP (4) JP7322285B2 (ko)
KR (3) KR20220058888A (ko)
CN (4) CN114402609A (ko)
BR (1) BR112022004668A2 (ko)
MX (1) MX2022002815A (ko)
WO (3) WO2021051046A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021051046A1 (en) 2019-09-14 2021-03-18 Bytedance Inc. Quantization parameter for chroma deblocking filtering
CN114651442A (zh) 2019-10-09 2022-06-21 字节跳动有限公司 视频编解码中的跨分量适应性回路滤波
KR20220073745A (ko) * 2019-10-14 2022-06-03 바이트댄스 아이엔씨 비디오 처리에서 크로마 잔차 및 필터링의 공동 코딩
US20220408093A1 (en) * 2019-11-05 2022-12-22 Lg Electronics Inc. Video decoding method and device for coding chroma quantization parameter offset-related information
EP4055827A4 (en) 2019-12-09 2023-01-18 ByteDance Inc. USING QUANTIFICATION GROUPS IN VIDEO CODING
WO2021138293A1 (en) 2019-12-31 2021-07-08 Bytedance Inc. Adaptive color transform in video coding

Family Cites Families (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5512953A (en) 1994-08-09 1996-04-30 At&T Corp. Method and apparatus for conversion of compressed bit stream representation of video signal
US7123655B2 (en) 2001-08-09 2006-10-17 Sharp Laboratories Of America, Inc. Method for reduced bit-depth quantization
US7190723B2 (en) 2002-03-27 2007-03-13 Scientific-Atlanta, Inc. Digital stream transcoder with a hybrid-rate controller
US7227901B2 (en) 2002-11-21 2007-06-05 Ub Video Inc. Low-complexity deblocking filter
US20040146108A1 (en) 2003-01-23 2004-07-29 Shih-Chang Hsia MPEG-II video encoder chip design
US7227585B1 (en) 2003-12-30 2007-06-05 Conexant Systems, Inc. Luminance and chrominance separation system
US8953673B2 (en) 2008-02-29 2015-02-10 Microsoft Corporation Scalable video coding and decoding with sample bit depth and chroma high-pass residual layers
US9185426B2 (en) * 2008-08-19 2015-11-10 Broadcom Corporation Method and system for motion-compensated frame-rate up-conversion for both compressed and decompressed video bitstreams
MX353107B (es) 2010-04-09 2017-12-19 Mitsubishi Electric Corp Dispositivo codificador de imagen en movimiento y dispositivo decodificador de imagen en movimiento.
JP2011259362A (ja) * 2010-06-11 2011-12-22 Sony Corp 画像処理装置および方法
KR20120035096A (ko) 2010-10-04 2012-04-13 한국전자통신연구원 쿼드 트리 변환 구조에서 부가 정보의 시그널링 방법 및 장치
US8891617B2 (en) 2011-01-18 2014-11-18 Google Inc. Method and system for processing video data
US10409892B2 (en) 2011-01-26 2019-09-10 Microsoft Technology Licensing, Llc Formatting data by example
KR101566366B1 (ko) * 2011-03-03 2015-11-16 한국전자통신연구원 색차 성분 양자화 매개 변수 결정 방법 및 이러한 방법을 사용하는 장치
GB2488816A (en) 2011-03-09 2012-09-12 Canon Kk Mapping motion vectors from a plurality of reference frames to a single reference frame
US9143805B2 (en) * 2011-07-14 2015-09-22 Panasonic Intellectual Property Corporation Of America Method of image coding chrominance signal and method of image decoding chrominance signal
US8964833B2 (en) 2011-07-19 2015-02-24 Qualcomm Incorporated Deblocking of non-square blocks for video coding
WO2013042884A1 (ko) * 2011-09-19 2013-03-28 엘지전자 주식회사 영상 부호화/복호화 방법 및 그 장치
US9510020B2 (en) 2011-10-20 2016-11-29 Qualcomm Incorporated Intra pulse code modulation (IPCM) and lossless coding mode deblocking for video coding
US9807403B2 (en) 2011-10-21 2017-10-31 Qualcomm Incorporated Adaptive loop filtering for chroma components
US9161046B2 (en) 2011-10-25 2015-10-13 Qualcomm Incorporated Determining quantization parameters for deblocking filtering for video coding
US20130107973A1 (en) 2011-10-28 2013-05-02 Qualcomm Incorporated Loop filtering control over tile boundaries
US9807401B2 (en) 2011-11-01 2017-10-31 Qualcomm Incorporated Transform unit partitioning for chroma components in video coding
WO2013074365A1 (en) 2011-11-18 2013-05-23 Dolby Laboratories Licensing Corporation Subjective based post-filter optimization
US9538200B2 (en) 2012-01-19 2017-01-03 Qualcomm Incorporated Signaling of deblocking filter parameters in video coding
CN108449602A (zh) 2012-01-19 2018-08-24 寰发股份有限公司 编码块旗标的编码及视频比特流的解码方法与装置
US9451258B2 (en) * 2012-04-03 2016-09-20 Qualcomm Incorporated Chroma slice-level QP offset and deblocking
US10009612B2 (en) 2012-04-12 2018-06-26 Hfi Innovation Inc. Method and apparatus for block partition of chroma subsampling formats
US20150043637A1 (en) 2012-04-13 2015-02-12 Sony Corporation Image processing device and method
GB2501535A (en) * 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
US9414054B2 (en) 2012-07-02 2016-08-09 Microsoft Technology Licensing, Llc Control and use of chroma quantization parameter values
US9591302B2 (en) * 2012-07-02 2017-03-07 Microsoft Technology Licensing, Llc Use of chroma quantization parameter offsets in deblocking
US10448032B2 (en) 2012-09-04 2019-10-15 Qualcomm Incorporated Signaling of down-sampling location information in scalable video coding
GB2506852B (en) 2012-09-28 2015-09-30 Canon Kk Method and device for determining the value of a quantization parameter
TWI610574B (zh) 2012-09-29 2018-01-01 微軟技術授權有限責任公司 於解塊中色度量化參數偏移之使用
JP2014116733A (ja) * 2012-12-07 2014-06-26 Canon Inc 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
AU2013200051B2 (en) 2013-01-04 2016-02-11 Canon Kabushiki Kaisha Method, apparatus and system for de-blocking video data
EP2941871A2 (en) 2013-01-07 2015-11-11 VID SCALE, Inc. Enhanced deblocking filters for video coding
US9225991B2 (en) 2013-05-30 2015-12-29 Apple Inc. Adaptive color space transform coding
US11323747B2 (en) 2013-06-05 2022-05-03 Qualcomm Incorporated Residual differential pulse code modulation (DPCM) extensions and harmonization with transform skip, rotation, and scans
US20140376611A1 (en) 2013-06-21 2014-12-25 Qualcomm Incorporated Adaptive color transforms for video coding
US9294766B2 (en) 2013-09-09 2016-03-22 Apple Inc. Chroma quantization in video coding
EP3058736B1 (en) 2013-10-14 2019-02-27 Microsoft Technology Licensing, LLC Encoder-side options for intra block copy prediction mode for video and image coding
WO2015054811A1 (en) 2013-10-14 2015-04-23 Microsoft Corporation Features of intra block copy prediction mode for video and image coding and decoding
BR122022001646B1 (pt) 2014-03-04 2023-03-07 Microsoft Technology Licensing, Llc Dispositivo de memória ou armazenamento legível por computador, método e sistema de computador
KR20200014945A (ko) 2014-03-14 2020-02-11 브이아이디 스케일, 인크. Rgb 비디오 코딩 향상을 위한 시스템 및 방법
US9948933B2 (en) 2014-03-14 2018-04-17 Qualcomm Incorporated Block adaptive color-space conversion coding
AU2014202921B2 (en) 2014-05-29 2017-02-02 Canon Kabushiki Kaisha Method, apparatus and system for de-blocking a block of video samples
US10038919B2 (en) 2014-05-29 2018-07-31 Apple Inc. In loop chroma deblocking filter
US10142642B2 (en) 2014-06-04 2018-11-27 Qualcomm Incorporated Block adaptive color-space conversion coding
US9924175B2 (en) 2014-06-11 2018-03-20 Qualcomm Incorporated Determining application of deblocking filtering to palette coded blocks in video coding
US10136141B2 (en) 2014-06-11 2018-11-20 Qualcomm Incorporated Determining quantization parameter (QP) values and delta QP values for palette coded blocks in video coding
US20150373327A1 (en) * 2014-06-20 2015-12-24 Qualcomm Incorporated Block adaptive color-space conversion coding
CN107079157B (zh) 2014-09-12 2020-12-22 Vid拓展公司 用于视频编码的分量间去相关
JP6194427B2 (ja) * 2014-10-06 2017-09-06 テレフオンアクチーボラゲット エルエム エリクソン(パブル) 量子化パラメータのコーディング及び導出
US9883184B2 (en) 2014-10-07 2018-01-30 Qualcomm Incorporated QP derivation and offset for adaptive color transform in video coding
US20160179521A1 (en) * 2014-12-23 2016-06-23 Intel Corporation Method and apparatus for expanding a mask to a vector of mask values
US9854201B2 (en) 2015-01-16 2017-12-26 Microsoft Technology Licensing, Llc Dynamically updating quality to higher chroma sampling rate
US10057574B2 (en) 2015-02-11 2018-08-21 Qualcomm Incorporated Coding tree unit (CTU) level adaptive loop filter (ALF)
CN107534783B (zh) 2015-02-13 2020-09-08 联发科技股份有限公司 图像中区块的调色板索引图编解码方法
US20160286226A1 (en) * 2015-03-24 2016-09-29 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
US20180115787A1 (en) 2015-04-12 2018-04-26 Lg Electronics Inc. Method for encoding and decoding video signal, and apparatus therefor
WO2016172314A1 (en) 2015-04-21 2016-10-27 Vid Scale, Inc. Artistic intent based video coding
EP3354019A4 (en) * 2015-09-23 2019-05-22 Telefonaktiebolaget LM Ericsson (publ) DETERMINATION OF QUANTIZATION PARAMETER VALUES
US20170105014A1 (en) 2015-10-08 2017-04-13 Qualcomm Incorporated Luma-driven chroma scaling for high dynamic range and wide color gamut contents
WO2017093189A1 (en) 2015-11-30 2017-06-08 Telefonaktiebolaget Lm Ericsson (Publ) Encoding of pictures in a video
US11064195B2 (en) 2016-02-15 2021-07-13 Qualcomm Incorporated Merging filters for multiple classes of blocks for video coding
US10419755B2 (en) * 2016-05-16 2019-09-17 Qualcomm Incorporated Confusion of multiple filters in adaptive loop filtering in video coding
EP3453172B1 (en) 2016-05-28 2023-08-09 HFI Innovation Inc. Methods and apparatuses of video data processing with conditionally quantization parameter information signaling
US11089323B2 (en) 2016-05-28 2021-08-10 Mediatek Inc. Method and apparatus of current picture referencing for video coding
WO2018018486A1 (en) 2016-07-28 2018-02-01 Mediatek Inc. Methods of reference quantization parameter derivation for signaling of quantization parameter in quad-tree plus binary tree structure
US11095922B2 (en) 2016-08-02 2021-08-17 Qualcomm Incorporated Geometry transformation-based adaptive loop filtering
US10200698B2 (en) 2016-08-09 2019-02-05 Intel Corporation Determining chroma quantization parameters for video coding
US10419757B2 (en) 2016-08-31 2019-09-17 Qualcomm Incorporated Cross-component filter
US20180091812A1 (en) 2016-09-23 2018-03-29 Apple Inc. Video compression system providing selection of deblocking filters parameters based on bit-depth of video data
US10506230B2 (en) 2017-01-04 2019-12-10 Qualcomm Incorporated Modified adaptive loop filter temporal prediction for temporal scalability support
US20180199057A1 (en) 2017-01-12 2018-07-12 Mediatek Inc. Method and Apparatus of Candidate Skipping for Predictor Refinement in Video Coding
US10554974B2 (en) 2017-01-13 2020-02-04 Mediatek Inc. Method and apparatus enabling adaptive multiple transform for chroma transport blocks using control flags
US10708591B2 (en) 2017-03-20 2020-07-07 Qualcomm Incorporated Enhanced deblocking filtering design in video coding
US10212456B2 (en) 2017-06-02 2019-02-19 Apple Inc. Deblocking filter for high dynamic range (HDR) video
JP7406378B2 (ja) * 2017-06-21 2023-12-27 ヴィド スケール インコーポレイテッド 360度ビデオ符号化のための適応的量子化
FR3067918B1 (fr) 2017-06-23 2019-07-19 Laboratoires M&L Capsule deformable a usage unique comprenant une quantite predeterminee d'une phase d'un produit cosmetique
EP3649782A4 (en) 2017-07-05 2021-04-14 Telefonaktiebolaget LM Ericsson (PUBL) DECODING A BLOCK OF VIDEO SAMPLE
US10778974B2 (en) 2017-07-05 2020-09-15 Qualcomm Incorporated Adaptive loop filter with enhanced classification methods
US11019339B2 (en) * 2017-07-12 2021-05-25 Futurewei Technologies, Inc. Fractional quantization parameter offset in video compression
GB2575090A (en) 2018-06-28 2020-01-01 Canon Kk Method and apparatus for deblocking filtering a block of pixels
US10616577B2 (en) 2017-10-16 2020-04-07 Intel Corporation Adaptive video deblocking
US10812798B2 (en) * 2017-10-19 2020-10-20 Qualcomm Incorporated Chroma quantization parameter (QP) offset
EP3704858A1 (en) 2017-11-01 2020-09-09 Vid Scale, Inc. Methods for simplifying adaptive loop filter in video coding
US10972729B2 (en) 2018-01-20 2021-04-06 Qualcomm Incorporated Deblocking filter selection and application in video coding
EP3744092A1 (en) 2018-01-26 2020-12-02 InterDigital VC Holdings, Inc. Method and apparatus for video encoding and decoding based on a linear model responsive to neighboring samples
US20190238845A1 (en) 2018-01-26 2019-08-01 Qualcomm Incorporated Adaptive loop filtering on deblocking filter results in video coding
CN116567230A (zh) 2018-03-30 2023-08-08 夏普株式会社 用于将解块滤波器应用于重构视频数据的方法和设备
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
EP3554074A1 (en) * 2018-04-13 2019-10-16 Thomson Licensing Methods and apparatus for depth encoding and decoding
KR101997681B1 (ko) 2018-06-11 2019-07-08 광운대학교 산학협력단 양자화 파라미터 기반의 잔차 블록 부호화/복호화 방법 및 장치
US11051036B2 (en) * 2018-07-14 2021-06-29 Mediatek Inc. Method and apparatus of constrained overlapped block motion compensation in video coding
US20200213570A1 (en) 2019-01-02 2020-07-02 Mediatek Inc. Method for processing projection-based frame that includes at least one projection face and at least one padding region packed in 360-degree virtual reality projection layout
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
EP3931746A4 (en) 2019-02-27 2022-05-11 Huawei Technologies Co., Ltd. CHANNEL ILLUSTRATION WITH COLOR SCALING ADJUSTMENT PARAMETERS IN VIDEO ENCODING
CN113545036B (zh) 2019-03-02 2023-11-28 北京字节跳动网络技术有限公司 对环路内滤波的限制
CN113574889B (zh) 2019-03-14 2024-01-12 北京字节跳动网络技术有限公司 环路整形信息的信令和语法
JP7234406B2 (ja) 2019-03-24 2023-03-07 北京字節跳動網絡技術有限公司 ビデオ処理における非線形適応ループフィルタリング
WO2020192726A1 (en) 2019-03-27 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. History-based motion vector prediction
TWI739386B (zh) 2019-04-11 2021-09-11 聯發科技股份有限公司 具有適應性參數集之適應性迴路濾波器
JP7405865B2 (ja) 2019-04-15 2023-12-26 北京字節跳動網絡技術有限公司 非線形適応ループフィルタにおけるパラメータの時間的予測
WO2020211809A1 (en) 2019-04-16 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. On adaptive loop filtering for video coding
CN114026868A (zh) 2019-04-25 2022-02-08 Op方案有限责任公司 帧间预测中全局运动约束的运动矢量
US11381819B2 (en) * 2019-07-05 2022-07-05 Qualcomm Incorporated Chroma delta quantization parameter (QP) in video coding
EP3868101B1 (en) 2019-08-23 2024-04-10 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods for performing chroma deblocking for blocks which use joint chroma coding
CN113632471B (zh) 2019-08-23 2024-02-27 腾讯美国有限责任公司 视频编解码的方法和装置
WO2021040481A1 (ko) 2019-08-29 2021-03-04 엘지전자 주식회사 크로스 컴포넌트 필터링 기반 영상 코딩 장치 및 방법
US20210076032A1 (en) 2019-09-09 2021-03-11 Qualcomm Incorporated Filter shapes for cross-component adaptive loop filter with different chroma formats in video coding
WO2021051046A1 (en) 2019-09-14 2021-03-18 Bytedance Inc. Quantization parameter for chroma deblocking filtering
BR112022005394A2 (pt) 2019-09-24 2022-06-21 Huawei Tech Co Ltd Simplificação de dependência de mensagem sei em codificação de vídeo
CN114651442A (zh) 2019-10-09 2022-06-21 字节跳动有限公司 视频编解码中的跨分量适应性回路滤波
KR20220073745A (ko) 2019-10-14 2022-06-03 바이트댄스 아이엔씨 비디오 처리에서 크로마 잔차 및 필터링의 공동 코딩
CA3162821A1 (en) 2019-12-23 2021-07-01 Anand Meher Kotra Cross-component adaptive loop filtering for video coding
US11375200B2 (en) 2019-12-24 2022-06-28 Tencent America LLC Video coding method and device for controlling color component processing
WO2021138293A1 (en) 2019-12-31 2021-07-08 Bytedance Inc. Adaptive color transform in video coding

Also Published As

Publication number Publication date
US20220210408A1 (en) 2022-06-30
US11985329B2 (en) 2024-05-14
EP4014497A4 (en) 2022-11-30
US20240073426A1 (en) 2024-02-29
JP7321365B2 (ja) 2023-08-04
EP4014495A1 (en) 2022-06-22
WO2021051044A1 (en) 2021-03-18
US20220210433A1 (en) 2022-06-30
CN114402609A (zh) 2022-04-26
EP4014495A4 (en) 2022-11-02
CN114402601A (zh) 2022-04-26
US20220210448A1 (en) 2022-06-30
US11973959B2 (en) 2024-04-30
JP2022547571A (ja) 2022-11-14
WO2021051046A1 (en) 2021-03-18
JP2022548008A (ja) 2022-11-16
KR20220058534A (ko) 2022-05-09
JP2022548007A (ja) 2022-11-16
EP4014492A1 (en) 2022-06-22
EP4014492A4 (en) 2023-01-11
JP7321364B2 (ja) 2023-08-04
CN117294846A (zh) 2023-12-26
JP7322285B2 (ja) 2023-08-07
BR112022004668A2 (pt) 2022-05-31
WO2021051047A1 (en) 2021-03-18
CN114402601B (zh) 2024-02-27
CN114402611A (zh) 2022-04-26
KR20220058888A (ko) 2022-05-10
EP4014497A1 (en) 2022-06-22
MX2022002815A (es) 2022-04-06
JP2023143946A (ja) 2023-10-06

Similar Documents

Publication Publication Date Title
KR20220073745A (ko) 비디오 처리에서 크로마 잔차 및 필터링의 공동 코딩
KR20220058889A (ko) 비디오 코딩의 크로마 양자화 파라미터
WO2021138293A1 (en) Adaptive color transform in video coding
US11785260B2 (en) Cross-component adaptive loop filtering in video coding
KR20220115951A (ko) 비디오 코딩을 위한 크로스 컴포넌트 적응형 루프 필터링
KR20220106116A (ko) 비디오 코딩에서 양자화 그룹 사용
CN114503597B (zh) 视频编解码中的色度去方块方法