KR20200128588A - 재구성된 비디오 데이터에 디블록킹 필터들을 적용하기 위한 시스템들 및 방법들 - Google Patents

재구성된 비디오 데이터에 디블록킹 필터들을 적용하기 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR20200128588A
KR20200128588A KR1020207030974A KR20207030974A KR20200128588A KR 20200128588 A KR20200128588 A KR 20200128588A KR 1020207030974 A KR1020207030974 A KR 1020207030974A KR 20207030974 A KR20207030974 A KR 20207030974A KR 20200128588 A KR20200128588 A KR 20200128588A
Authority
KR
South Korea
Prior art keywords
block
filter
samples
deblocking
boundary
Prior art date
Application number
KR1020207030974A
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 KR20200128588A publication Critical patent/KR20200128588A/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/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
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/439Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using cascaded computational arrangements for performing a single operation, e.g. filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • 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/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/18Methods 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 set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

재구성된 비디오 데이터에 디블록킹 필터들을 적용하기 위한 시스템들 및 방법들이 개시된다. 인접한 재구성된 비디오 블록들 내의 샘플 값들은 디블록킹 필터의 다수의 패스들에 따라 수정된다. 필터링 패스는 디블록킹될 샘플들의 전부 또는 서브세트를 프로세싱하는 것 또는 구성하는 것에 대응할 수 있다. 주어진 패스 내의 각각의 샘플에 대한 프로세싱 또는 구성의 횟수는 패스 인덱스 또는 순서에 대응할 수 있다.

Description

재구성된 비디오 데이터에 디블록킹 필터들을 적용하기 위한 시스템들 및 방법들
본 발명은 비디오 코딩에 관한 것으로, 보다 구체적으로는, 재구성된 비디오 데이터의 디블록킹(deblocking)을 수행하기 위한 기술들에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전들, 랩톱 또는 데스크톱 컴퓨터들, 태블릿 컴퓨터들, 디지털 기록 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 소위 스마트폰들을 포함하는 셀룰러 전화들, 의료 이미징 디바이스들 등을 포함하는, 광범위한 디바이스들 내에 통합될 수 있다. 디지털 비디오는 비디오 코딩 표준에 따라 코딩될 수 있다. 비디오 코딩 표준들은 비디오 압축 기술들을 통합할 수 있다. 비디오 코딩 표준들의 예는 ISO/IEC MPEG-4(Moving Picture Experts Group-4) 비주얼 및 ITU-T H.264(ISO/IEC MPEG-4 AVC로도 알려짐) 및 HEVC(High-Efficiency Video Coding)를 포함한다. HEVC는 문헌[High Efficiency Video Coding (HEVC), Rec. ITU-T H.265, December 2016]에 설명되어 있는데, 이는 참고로 통합되고, 본 명세서에서 ITU-T H.265로 지칭된다. 차세대 비디오 코딩 표준들의 개발을 위해 ITU-T H.265에 대한 확장들 및 개선들이 현재 고려되고 있다. 예를 들어, ITU-T VCEG(Video Coding Experts Group) 및 ISO/IEC(MPEG)(JVET(Joint Video Exploration Team)로 총칭됨)는 현재 HEVC 표준의 압축 능력을 현저히 초과하는 압축 능력을 갖는 향후 비디오 코딩 기술의 표준화에 대한 잠재적 필요성을 연구하고 있다. 본 명세서에서 참고로 통합되는 문헌[Joint Exploration Model 7 (JEM 7), Algorithm Description of Joint Exploration Test Model 7 (JEM 7), ISO/IEC JTC1/SC29/WG11 Document: JVET-G1001, July 2017, Torino, IT]은 JVET에 의한 조정된 테스트 모델 연구 하에 있는 코딩 특징들을, ITU-T H.265의 능력들 이상으로 비디오 코딩 기술을 잠재적으로 향상시키는 것으로서 설명한다. JEM7의 코딩 특징들은 JEM 기준 소프트웨어로 구현된다는 것에 유의해야 한다. 본 명세서에서 사용되는 바와 같이, 용어 JEM은 JEM 7에 포함된 알고리즘들 및 JEM 기준 소프트웨어의 구현예들을 총칭할 수 있다.
비디오 압축 기술들은 비디오 시퀀스 내의 고유 리던던시(redundancy)들을 활용함으로써 비디오 데이터를 저장 및 송신하기 위한 데이터 요구 사항들을 감소시킨다. 비디오 압축 기술들은 비디오 시퀀스를 연속하게 더 작은 부분들(즉, 비디오 시퀀스 내의 프레임들의 그룹들, 프레임들의 그룹 내의 프레임, 프레임 내의 슬라이스(slice)들, 슬라이스 내의 코딩 트리 유닛들(예컨대, 매크로블록들), 코딩 트리 유닛 내의 코딩 블록들 등)로 세분할 수 있다. 인트라 예측 코딩 기술(intra prediction coding technique)들(예컨대, 인트라-픽처(공간적)) 및 인터 예측 기술(inter prediction technique)들(즉, 인터-픽처(시간적))은 코딩될 비디오 데이터의 유닛과 비디오 데이터의 기준 유닛 사이의 차이 값들을 생성하는 데 이용될 수 있다. 차이 값들은 잔차 데이터로 지칭될 수 있다. 잔차 데이터는 양자화된 변환 계수들로서 코딩될 수 있다. 신택스 요소(syntax element)들은 잔차 데이터 및 기준 코딩 유닛(예컨대, 인트라-예측 모드 인덱스들, 모션 벡터들, 및 블록 벡터들)과 관련될 수 있다. 잔차 데이터 및 신택스 요소들은 엔트로피 코딩될 수 있다. 엔트로피 인코딩된 잔차 데이터 및 신택스 요소들은 컴플라이언트 비트스트림(compliant bitstream) 내에 포함될 수 있다. 컴플라이언트 비트스트림들 및 관련 메타데이터는 데이터 구조들에 따라 포맷화될 수 있다.
일례에서, 재구성된 비디오 데이터를 필터링하는 방법은 비디오 데이터의 성분에 대한 인접한 재구성된 비디오 블록들을 포함하는 샘플 값들의 어레이를 수신하는 단계, 및 디블록킹 필터의 다수의 패스(pass)들에 따라 인접한 재구성된 비디오 블록들 내의 샘플 값들을 수정하는 단계를 포함한다.
도 1은 본 발명의 하나 이상의 기술들에 따른, 쿼드트리 이진 트리 분할(quad tree binary tree partitioning)에 따라 코딩되는 픽처들의 그룹의 일례를 도시한 개념도이다.
도 2는 본 발명의 하나 이상의 기술들에 따른 비디오 성분 샘플링 포맷의 일례를 도시한 개념도이다.
도 3은 본 발명의 하나 이상의 기술들에 따른, 비디오 데이터의 블록에 대한 가능한 코딩 구조들을 도시한 개념도이다.
도 4a는 본 발명의 하나 이상의 기술들에 따라 비디오 데이터의 블록을 코딩하는 예들을 도시한 개념도이다.
도 4b는 본 발명의 하나 이상의 기술들에 따라 비디오 데이터의 블록을 코딩하는 예들을 도시한 개념도이다.
도 5a는 본 발명의 하나 이상의 기술들에 따른, 디블록킹 경계를 포함하는 비디오 데이터의 블록들을 도시한 개념도이다.
도 5b는 본 발명의 하나 이상의 기술들에 따른, 디블록킹 경계를 포함하는 비디오 데이터의 블록들을 도시한 개념도이다.
도 6은 본 발명의 하나 이상의 기술들에 따른, 디블록킹 파라미터들을 결정하는 데 이용될 수 있는 표의 일례이다.
도 7은 본 발명의 하나 이상의 기술들에 따른, 비디오 데이터를 인코딩 및 디코딩하도록 구성될 수 있는 시스템의 일례를 도시한 블록도이다.
도 8은 본 발명의 하나 이상의 기술들에 따른, 비디오 데이터를 인코딩하도록 구성될 수 있는 비디오 인코더의 일례를 도시한 블록도이다.
도 9는 본 발명의 하나 이상의 기술들에 따른, 비디오 데이터를 디코딩하도록 구성될 수 있는 비디오 디코더의 일례를 도시한 블록도이다. 도 10은 본 발명의 하나 이상의 기술들에 따라 디블록킹을 수행하는 일례를 도시한 흐름도이다.
도 11은 본 발명의 하나 이상의 기술들에 따라 디블록킹을 수행하는 일례를 도시한 흐름도이다.
도 12는 본 발명의 하나 이상의 기술들에 따라 디블록킹을 수행하는 일례를 도시한 흐름도이다.
도 13은 본 발명의 하나 이상의 기술들에 따른, 디블록킹 파라미터들을 결정하는 데 이용될 수 있는 표의 일례이다.
도 14a는 본 발명의 하나 이상의 기술들에 따른, 디블록킹 경계를 포함하는 비디오 데이터의 블록들을 도시한 개념도이다.
도 14b는 본 발명의 하나 이상의 기술들에 따른, 디블록킹 경계를 포함하는 비디오 데이터의 블록들을 도시한 개념도이다.
대체적으로, 본 발명은 비디오 데이터를 코딩하기 위한 다양한 기술들을 설명한다. 구체적으로, 본 발명은 재구성된 비디오 데이터의 디블록킹을 수행하기 위한 기술들을 설명한다. 본 발명의 기술들이 ITU-T H.264, ITU-T H.265, 및 JEM과 관련하여 설명되어 있지만, 본 발명의 기술들은 대체로 비디오 코딩에 적용가능하다는 것에 유의해야 한다. 예를 들어, 본 명세서에서 설명되는 코딩 기술들은 ITU-T H.265에 포함되는 것들 이외의 블록 구조들, 인트라 예측 기술들, 인터 예측 기술들, 변환 기술들, 필터링 기술들, 및/또는 엔트로피 코딩 기술들을 포함하는 비디오 코딩 시스템들(향후 비디오 코딩 표준들에 기초하는 비디오 코딩 시스템들을 포함함)에 통합될 수 있다. 따라서, ITU-T H.264, ITU-T H.265, 및 JEM에 대한 언급은 설명 목적을 위한 것이며, 본 명세서에서 설명되는 기술들의 범주를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에 문헌들을 참고로 통합하는 것은 본 명세서에서 사용되는 용어들과 관련하여 불명료성을 제한하거나 생성하는 것으로 해석되어서는 안 된다는 것에 유의해야 한다. 예를 들어, 통합된 참고문헌이 다른 통합된 참고문헌과는 상이한 정의의 용어를 제공하는 경우에 그리고/또는 그 용어가 본 명세서에서 사용될 때, 이 용어는 개개의 정의 각각을 광범위하게 포함하는 방식으로 그리고/또는 대안에서의 특정 정의 각각을 포함하는 방식으로 해석되어야 한다.
일례에서, 비디오 코딩을 위한 디바이스는, 비디오 데이터의 성분에 대한 인접한 재구성된 비디오 블록들을 포함하는 샘플 값들의 어레이를 수신하도록, 그리고 디블록킹 필터의 다수의 패스들에 따라 인접한 재구성된 비디오 블록들 내의 샘플 값들을 수정하도록 구성된 하나 이상의 프로세서들을 포함한다.
일례에서, 비-일시적 컴퓨터-판독가능 저장 매체에는 명령어들이 저장되어 있고, 상기 명령어들은 실행될 때, 디바이스의 하나 이상의 프로세서들이 비디오 데이터의 성분에 대한 인접한 재구성된 비디오 블록들을 포함하는 샘플 값들의 어레이를 수신하게 하고, 디블록킹 필터의 다수의 패스들에 따라 인접한 재구성된 비디오 블록들 내의 샘플 값들을 수정하게 한다.
일례에서, 장치는 비디오 데이터의 성분에 대한 인접한 재구성된 비디오 블록들을 포함하는 샘플 값들의 어레이를 수신하기 위한 수단, 및 디블록킹 필터의 다수의 패스들에 따라 인접한 재구성된 비디오 블록들 내의 샘플 값들을 수정하기 위한 수단을 포함한다.
하나 이상의 예의 세부사항들이 첨부 도면들 및 다음의 설명에 기재된다. 다른 특징들, 목적들 및 이점들이 설명 및 도면들로부터 그리고 청구범위로부터 명백해질 것이다.
비디오 콘텐츠는, 전형적으로 일련의 프레임들로 구성된 비디오 시퀀스들을 포함한다. 일련의 프레임들은 또한 GOP(group of pictures)로 지칭될 수 있다. 각각의 비디오 프레임 또는 픽처는 복수의 슬라이스들 또는 복수의 타일들을 포함할 수 있으며, 여기서 슬라이스 또는 타일은 복수의 비디오 블록들을 포함한다. 본 명세서에서 사용되는 바와 같이, 용어 "비디오 블록"은 대체적으로 픽처의 영역을 지칭할 수 있거나, 또는 더 구체적으로, 예측적으로 코딩될 수 있는 샘플 값들의 최대 어레이, 그의 서브분할부(sub-division)들, 및/또는 대응하는 구조들을 지칭할 수 있다. 또한, 용어 "현재 비디오 블록"은 인코딩 또는 디코딩되고 있는 픽처의 영역을 지칭할 수 있다. 비디오 블록은 예측적으로 코딩될 수 있는 샘플 값들의 어레이로서 정의될 수 있다. 일부 경우들에서, 픽셀 값들은, 컬러 성분들(예컨대, 루마(Y) 및 크로마(Cb 및 Cr) 성분들 또는 적색, 녹색, 및 청색 성분들)로도 지칭될 수 있는, 비디오 데이터의 각각의 성분들의 샘플 값들을 포함하는 것으로서 설명될 수 있다는 것에 유의해야 한다. 일부 경우에, 용어들 픽셀 값들 및 샘플 값들은 상호교환가능하게 사용된다는 것에 유의하여야 한다. 비디오 블록들은 스캔 패턴(예컨대, 래스터 스캔)에 따라 픽처 내에 순서화될 수 있다. 비디오 인코더는 비디오 블록들 및 그의 서브분할부들에 대해 예측 인코딩을 수행할 수 있다. 비디오 블록들 및 그의 서브분할부들은 노드들로 지칭될 수 있다.
ITU-T H.264는 16x16개의 루마 샘플들을 포함하는 매크로블록 구조를 특정한다. 즉, ITU-T H.264에서, 픽처는 매크로블록들로 세그먼트화된다. ITU-T H.265는, 최대 코딩 유닛(Largest Coding Unit, LCU)으로도 지칭될 수 있는 유사한 코딩 트리 유닛(Coding Tree Unit, CTU) 구조를 특정한다. ITU-T H.265에서, 픽처들은 CTU들로 세그먼트화된다. ITU-T H.265에서, 픽처에 대해, CTU 크기는 16x16, 32x32, 또는 64x64개의 루마 샘플들을 포함하는 것으로 설정될 수 있다. ITU-T H.265에서, CTU는 비디오 데이터의 각각의 성분(예컨대, 루마(Y) 및 크로마(Cb 및 Cr))에 대한 각각의 코딩 트리 블록(Coding Tree Block, CTB)들로 구성된다. 또한, ITU-T H.265에서, CTU는 쿼드트리(QT) 분할 구조에 따라 분할될 수 있고, 이는 CTU의 CTB들이 코딩 블록(Coding Block; CB)들로 분할되는 결과를 야기한다. 즉, ITU-T H.265에서, CTU는 쿼드트리 리프 노드(quadtree leaf node)들로 분할될 수 있다. ITU-T H.265에 따르면, 2개의 대응하는 크로마 CB들 및 연관된 신택스 요소들과 함께, 하나의 루마 CB는 코딩 유닛(coding unit, CU)으로 지칭된다. ITU-T H.265에서, CB의 최소 허용 크기가 시그널링될 수 있다. ITU-T H.265에서, 루마 CB의 가장 작은 최소 허용 크기는 8x8개의 루마 샘플들이다. ITU-T H.265에서, 인트라 예측 또는 인터 예측을 이용하여 픽처 영역을 코딩하는 결정이 CU 레벨에서 이루어진다.
ITU-T H.265에서, CU는 CU에 루트(root)를 갖는 예측 유닛(PU) 구조와 연관된다. ITU-T H.265에서, PU 구조들은 루마 및 크로마 CB들이 대응하는 기준 샘플들을 생성할 목적으로 분할되게 한다. 즉, ITU-T H.265에서, 루마 및 크로마 CB들은 각각의 루마 및 크로마 예측 블록(Prediction Block, PB)들로 분할될 수 있으며, 여기서 PB는 동일한 예측이 적용되는 샘플 값들의 블록을 포함한다. ITU-T H.265에서, CB는 1개, 2개 또는 4개의 PB들로 분할될 수 있다. ITU-T H.265는 64x64개의 샘플들로부터 4x4개의 샘플들에 이르기까지의 PB 크기들을 지원한다. ITU-T H.265에서, 정사각형 PB들이 인트라 예측을 위해 지지되며, 여기서 CB가 PB를 형성할 수 있거나 CB가 4개의 정사각형 PB들로 분할될 수 있다(즉, 인트라 예측 PB 크기 타입들은 MxM 또는 M/2xM/2을 포함하고, 이때 M은 정사각형 CB의 높이 및 폭임). ITU-T H.265에서, 정사각형 PB들 이외에, 직사각형 PB들이 인터 예측을 위해 지지되며, 여기서 CB는 수직으로 또는 수평으로 반분되어 PB들을 형성할 수 있다(즉, 인터 예측 PB 타입들은 MxM, M/2xM/2, M/2xM, 또는 MxM/2을 포함함). 또한, ITU-T H.265에서, 인터 예측을 위해, 4개의 비대칭 PB 분할부들이 지지되며, 여기서 CB는 CB의 높이(상부 또는 하부에서) 또는 폭(좌측 또는 우측에서)의 1/4에서 2개의 PB들로 분할된다(즉, 비대칭 분할부들은 M/4xM 좌측, M/4xM 우측, MxM/4 상부, 및 MxM/4 하부를 포함함)는 것에 유의해야 한다. PB에 대응하는 인트라 예측 데이터(예컨대, 인트라 예측 모드 신택스 요소들) 또는 인터 예측 데이터(예컨대, 모션 데이터 신택스 요소들)가 PB에 대한 기준 및/또는 예측된 샘플 값들을 생성하는 데 사용된다.
JEM은 최대 크기가 256x256개의 루마 샘플들인 CTU를 특정한다. JEM은 쿼드트리 플러스 이진 트리(quadtree plus binary tree, QTBT) 블록 구조를 특정한다. JEM에서, QTBT 구조는 쿼드트리 리프 노드들이 이진 트리(BT) 구조에 의해 추가로 분할되는 것을 가능하게 한다. 즉, JEM에서, 이진 트리 구조는 쿼드트리 리프 노드들이 수직으로 또는 수평으로 재귀적으로 분할되는 것을 가능하게 한다. 도 1은 CTU(예컨대, 크기가 256x256개의 루마 샘플들인 CTU)가 쿼드트리 리프 노드들로 분할되는 것 및 쿼드트리 리프 노드들이 이진 트리에 따라 추가로 분할되는 일례를 도시한다. 즉, 도 1에서 파선은 쿼드트리에서 추가적인 이진 트리 분할부들을 나타낸다. 따라서, JEM에서 이진 트리 구조는 정사각형 및 직사각형 리프 노드들을 가능하게 하며, 여기서 각각의 리프 노드는 CB를 포함한다. 도 1에 도시된 바와 같이, GOP에 포함된 픽처는 슬라이스들을 포함할 수 있으며, 여기서 각각의 슬라이스는 CTU들의 시퀀스를 포함하고, 각각의 CTU는 QTBT 구조에 따라 분할될 수 있다. 도 1은 슬라이스에 포함된 하나의 CTU에 대한 QTBT 분할의 일례를 도시한다. 따라서, JEM에서 이진 트리 구조는 정사각형 및 직사각형 리프 노드들을 가능하게 하며, 여기서 각각의 리프 노드는 CB를 포함한다. JEM에서, CB들은 임의의 추가적인 분할 없이 예측을 위해 사용된다. 즉, JEM에서, CB는 동일한 예측이 적용되는 샘플 값들의 블록일 수 있다. 따라서, JEM QTBT 리프 노드는 ITU-T H.265에서의 PB와 유사할 수 있다.
크로마 포맷으로도 지칭될 수 있는 비디오 샘플링 포맷은 CU에 포함된 루마 샘플들의 개수와 관련하여 CU에 포함된 크로마 샘플들의 개수를 정의할 수 있다. 예를 들어, 4:2:0 샘플링 포맷에 대하여, 루마 성분에 대한 샘플링 레이트는 수평 방향 및 수직 방향 양측 모두에 대해 크로마 성분들의 샘플링 레이트의 2배이다. 그 결과, 4:2:0 포맷에 따라 포맷화된 CU에 대하여, 루마 성분에 대한 샘플들의 어레이의 폭 및 높이는 크로마 성분들에 대한 샘플들의 각각의 어레이의 폭 및 높이의 2배이다. 도 2는 4:2:0 샘플 포맷에 따라 포맷화된 코딩 유닛의 일례를 도시한 개념도이다. 도 2는 CU 내에서 루마 샘플들에 대한 크로마 샘플들의 상대적인 위치를 도시한다. 전술된 바와 같이, CU는 전형적으로 수평 루마 샘플들 및 수직 루마 샘플들의 개수에 따라 정의된다. 따라서, 도 2에 도시된 바와 같이, 4:2:0 샘플 포맷에 따라 포맷화된 16x16 CU는 루마 성분들의 16x16개의 샘플들 및 각각의 크로마 성분에 대한 8x8개의 샘플들을 포함한다. 또한, 도 2에 도시된 예에서, 16x16 CU에 이웃하는 비디오 블록들에 대한 루마 샘플들에 대한 크로마 샘플들의 상대적인 위치가 도시되어 있다. 4:2:2 포맷에 따라 포맷화된 CU에 대하여, 루마 성분에 대한 샘플들의 어레이의 폭은 각각의 크로마 성분에 대한 샘플들의 어레이의 폭의 2배이지만, 루마 성분에 대한 샘플들의 어레이의 높이는 각각의 크로마 성분에 대한 샘플들의 어레이의 높이와 같다. 또한, 4:4:4 포맷에 따라 포맷화된 CU에 대하여, 루마 성분에 대한 샘플들의 어레이는 각각의 크로마 성분에 대한 샘플들의 어레이와 동일한 폭 및 높이를 갖는다.
전술된 바와 같이, 인트라 예측 데이터 또는 인터 예측 데이터는 샘플 값들의 블록에 대한 기준 샘플 값들을 생성하는 데 사용된다. 현재 PB 또는 다른 타입의 픽처 영역 구조에 포함된 샘플 값들과, 연관된 기준 샘플들(예컨대, 예측을 사용하여 생성된 것들) 사이의 차이는 잔차 데이터로 지칭될 수 있다. 잔차 데이터는 비디오 데이터의 각각의 성분에 대응하는 차이 값들의 각각의 어레이들을 포함할 수 있다. 잔차 데이터는 픽셀 도메인 내에 있을 수 있다. 이산 코사인 변환(discrete cosine transform, DCT), 이산 사인 변환(discrete sine transform, DST), 정수 변환(integer transform), 웨이블릿 변환(wavelet transform), 또는 개념적으로 유사한 변환과 같은 변환이 차이 값들의 어레이에 적용되어 변환 계수들을 생성할 수 있다. ITU-T H.265에서, CU는 CU 레벨에 루트를 갖는 변환 유닛(TU) 구조와 연관된다는 것에 유의하여야 한다. 즉, ITU-T H.265에서, 차이 값들의 어레이는 변환 계수들을 생성할 목적으로 세분될 수 있다(예컨대, 4개의 8x8 변환들이 잔차 값들의 16x16 어레이에 적용될 수 있음). 비디오 데이터의 각각의 성분에 대해, 차이 값들의 그러한 서브분할부들은 변환 블록(Transform Block, TB)들로 지칭될 수 있다. ITU-T H.265에서, TB들이 반드시 PB들과 정렬되는 것은 아니라는 것에 유의하여야 한다. 도 3은 특정 CB를 코딩하는 데 이용될 수 있는 대안의 PB와 TB 조합들의 예들을 도시한다. 또한, ITU-T H.265에서, TB들은 다음의 크기들, 4x4, 8x8, 16x16, 32x32를 가질 수 있다는 것에 주목하여야 한다. JEM에서, CB에 대응하는 잔차 값들이 추가적인 분할 없이 변환 계수들을 생성하는 데 이용된다는 것에 유의해야 한다. 즉, JEM에서, QTBT 리프 노드는 ITU-T H.265에서 PB 및 TB 양측 모두와 유사할 수 있다. JEM에서, 코어 변환 및 후속 2차 변환이 (비디오 인코더에서) 적용되어 변환 계수들을 생성할 수 있다는 것에 유의하여야 한다. 비디오 디코더의 경우, 변환 순서가 반전된다. 또한, JEM에서, 변환 계수들을 생성하기 위해 2차 변환이 적용되는지의 여부는 예측 모드에 의존할 수 있다.
변환 계수들은 양자화 프로세스에 따라 양자화될 수 있다. 양자화는 특정된 값들의 세트로 제한된 진폭들에 의해 변환 계수들을 근사화한다. 양자화는 변환 계수들의 그룹을 표현하는 데 필요한 데이터의 양을 변화시키기 위해 이용될 수 있다. 양자화는 대체적으로 스케일링 팩터 및 임의의 연관된 반올림 함수(rounding function)들(예컨대, 가장 가까운 정수로 반올림)에 의한 변환 계수들의 나눗셈을 통해 실현될 수 있는 것으로 설명될 수 있다. 역양자화(inverse quantization)(또는 "탈양자화")는 스케일링 팩터에 의한 계수 레벨 값들의 곱셈을 포함할 수 있다. 본 명세서에서 사용되는 바와 같이, 일부 경우들에서의 용어 "양자화 프로세스"는, 대체적으로, 일부 경우들에서, 레벨 값들을 생성하기 위한 스케일링 팩터에 의한 나눗셈, 또는 변환 계수들을 복구하기 위한 스케일링 팩터에 의한 곱셈을 지칭할 수 있다는 것에 유의해야 한다. 즉, 양자화 프로세스는, 일부 경우들에서는 양자화를 그리고 일부 경우들에서는 역양자화를 지칭할 수 있다. 비디오 데이터의 현재 블록은, 레벨 값들에 대해 역양자화를 수행하고, 역변환을 수행하고, 예측 값들의 세트를 생성된 잔차에 가산함으로써 재구성된다. 재구성된 블록의 샘플 값들은 인코딩 프로세스에 입력된 현재 비디오 블록의 샘플 값들과는 상이할 수 있다. 이러한 방식에서, 코딩은 손실이 있다고 할 수 있다. 그러나, 샘플 값들의 차이는 재구성된 비디오의 뷰어(viewer)에게 허용가능한 것으로 간주될 수 있다는 것에 유의해야 한다.
양자화된 변환 계수들(이들은 레벨 값들로 지칭될 수 있음)은 엔트로피 인코딩 기술(예컨대, 콘텐츠 적응적 가변 길이 코딩(content adaptive variable length coding, CAVLC), 콘텍스트 적응적 이진 산술 코딩(context adaptive binary arithmetic coding, CABAC), 확률 간격 분할 엔트로피 코딩(probability interval partitioning entropy coding, PIPE) 등)에 따라 엔트로피 코딩될 수 있다. 또한, 예측 모드를 나타내는 신택스 요소와 같은 신택스 요소들이 또한 엔트로피 코딩될 수 있다. 엔트로피 인코딩된 양자화된 변환 계수들 및 대응하는 엔트로피 인코딩된 신택스 요소들은 비디오 데이터를 복원하는 데 사용될 수 있는 컴플라이언트 비트스트림을 형성할 수 있다. 이진화 프로세스는 엔트로피 코딩 프로세스의 일부로서 신택스 요소들에 대해 수행될 수 있다. 이진화는 신택스 값을 일련의 하나 이상의 비트로 변환하는 프로세스를 지칭한다. 이러한 비트들은 "빈(bin)"들로 지칭될 수 있다. 도 4a 및 도 4b는 비디오 데이터의 블록을 코딩하는 예들을 도시한 개념도들이다. 도 4a에 도시된 바와 같이, 비디오 데이터의 현재 블록(예컨대, 비디오 성분에 대응하는 CB)은, 비디오 데이터의 현재 블록으로부터 예측 값들의 세트를 감산하여 잔차를 생성하고, 그 잔차에 대해 변환을 수행하고, 변환 계수들을 양자화하여 레벨 값들을 생성함으로써 인코딩된다. 도 4b에 도시된 바와 같이, 비디오 데이터의 현재 블록은, 레벨 값들에 대해 역양자화를 수행하고, 역변환을 수행하고, 예측 값들의 세트를 생성된 잔차에 가산함으로써 디코딩된다. 도 4a 및 도 4b의 예들에서, 재구성된 블록의 샘플 값들은 인코딩되는 현재 비디오 블록의 샘플 값들과는 상이하다는 것에 유의해야 한다. 이러한 방식에서, 코딩은 손실이 있다고 할 수 있다. 그러나, 샘플 값들의 차이는 재구성된 비디오의 뷰어에게 허용가능하거나 인지불가능한 것으로 간주될 수 있다.
도 4a에 도시된 바와 같이, 양자화된 변환 계수들은 비트스트림으로 코딩된다. 양자화된 변환 계수들 및 신택스 요소들(예컨대, 비디오 블록에 대한 코딩 구조를 나타내는 신택스 요소들)은 엔트로피 코딩 기술에 따라 엔트로피 코딩될 수 있다. 엔트로피 코딩 기술들의 예들은 콘텐츠 적응적 가변 길이 코딩(CAVLC), 콘텍스트 적응적 이진 산술 코딩(CABAC), 확률 간격 분할 엔트로피 코딩(PIPE) 등을 포함한다. 엔트로피 인코딩된 양자화된 변환 계수들 및 대응하는 엔트로피 인코딩된 신택스 요소들은 비디오 디코더에서 비디오 데이터를 복원하는 데 사용될 수 있는 컴플라이언트 비트스트림을 형성할 수 있다. 엔트로피 코딩 프로세스는 신택스 요소들에 대해 이진화를 수행하는 것을 포함할 수 있다. 이진화는 신택스 값의 값을 일련의 하나 이상의 비트들로 변환하는 프로세스를 지칭한다. 이러한 비트들은 "빈"들로 지칭될 수 있다. 이진화는 무손실 프로세스이며, 다음의 코딩 기술들 중 하나 또는 이들의 조합을 포함할 수 있다: 고정 길이 코딩(fixed length coding), 일진 코딩(unary coding), 트런케이트형 일진 코딩(truncated unary coding), 트런케이트형 라이스 코딩(truncated Rice coding), 골룸 코딩(Golomb coding), k-차 지수 골룸 코딩(k-th order exponential Golomb coding), 및 골룸-라이스 코딩(Golomb-Rice coding). 예를 들어, 이진화는, 8 비트 고정 길이 이진화 기술을 이용하여 신택스 요소에 대한 5의 정수 값을 00000101로서 표현하는 것 또는 일진 코딩 이진화 기술을 이용하여 5의 정수 값을 11110으로서 표현하는 것을 포함할 수 있다. 본 명세서에서 사용되는 바와 같이, 용어들 "고정 길이 코딩", "일진 코딩", "트런케이트형 일진 코딩", "트런케이트형 라이스 코딩", "골룸 코딩", "k-차 지수 골룸 코딩", 및 "골룸-라이스 코딩" 각각은 이러한 코딩 기술들의 일반적인 구현예 및/또는 이러한 코딩 기술들의 더 구체적인 구현예를 지칭할 수 있다. 예를 들어, 골룸-라이스 코딩 구현예는 비디오 코딩 표준, 예를 들어 ITU-T H.265에 따라 구체적으로 정의될 수 있다. 엔트로피 코딩 프로세스는 무손실 데이터 압축 알고리즘들을 사용하여 빈 값들을 코딩하는 것을 추가로 포함한다. CAB AC의 예에서, 특정 빈에 대해, 콘텍스트 모델은 빈과 연관된 이용가능한 콘텍스트 모델들의 세트로부터 선택될 수 있다. 일부 예들에서, 콘텍스트 모델은 이전 신택스 요소들의 값들 및/또는 이전 빈에 기초하여 선택될 수 있다. 콘텍스트 모델은 빈이 특정 값을 가질 확률을 식별할 수 있다. 예를 들어, 콘텍스트 모델은 0-값 빈(0-valued bin)을 코딩하는 확률 0.7 및 1-값 빈(1-valued bin)을 코딩하는 확률 0.3을 나타낼 수 있다. 일부 경우에, 0-값 빈을 코딩하는 확률 및 1-값 빈을 코딩하는 확률은 합이 1이 아닐 수 있다는 것에 유의하여야 한다. 이용가능한 콘텍스트 모델을 선택한 후, CAB AC 엔트로피 인코더는 식별된 콘텍스트 모델에 기초하여 빈을 산술적으로 코딩할 수 있다. 콘텍스트 모델은 코딩된 빈의 값에 기초하여 업데이트될 수 있다. 콘텍스트 모델은 콘텍스트와 함께 저장된 연관된 변수, 예컨대, 적응적 윈도우 크기, 콘텍스트를 이용하여 코딩된 빈들의 개수에 기초하여 업데이트될 수 있다. ITU-T H.265에 따르면, CABAC 엔트로피 인코더는 일부 신택스 요소들이 명시적으로 할당된 콘텍스트 모델의 사용 없이 산술 인코딩을 이용하여 엔트로피 인코딩될 수 있도록 구현될 수 있다는 것에 유의해야 하며, 그러한 코딩은 바이패스 코딩으로 지칭될 수 있다.
전술된 바와 같이, 인트라 예측 데이터 또는 인터 예측 데이터는 픽처(예컨대, PB 또는 CB)의 영역을 대응하는 기준 샘플들과 연관시킬 수 있다. 인트라 예측 코딩에 대하여, 인트라 예측 모드는 픽처 내의 기준 샘플들의 위치를 특정할 수 있다. ITU-T H.265에서, 정의된 가능한 인트라 예측 모드들은 평면(즉, 표면 피팅) 예측 모드(predMode: 0), DC(즉, 편평한 전체 평균) 예측 모드(predMode: 1), 및 33개의 각도 예측 모드들(predMode: 2 내지 34)을 포함한다. JEM에서, 정의된 가능한 인트라 예측 모드들은 평면 예측 모드(predMode: 0), DC 예측 모드(predMode: 1), 및 65개의 각도 예측 모드들(predMode: 2 내지 66)을 포함한다. 평면 및 DC 예측 모드들이 비-방향성 예측 모드들로 지칭될 수 있고 각도 예측 모드들이 방향성 예측 모드들로 지칭될 수 있다는 것에 유의해야 한다. 본 명세서에서 설명되는 기술들은 정의된 가능한 예측 모드들의 개수와는 무관하게 일반적으로 적용가능할 수 있다는 것에 유의해야 한다.
인터 예측 코딩에 대하여, 모션 벡터(MV)는 코딩될 비디오 블록의 픽처 이외의 픽처에서 기준 샘플들을 식별하고, 이에 의해, 비디오에서 시간 리던던시를 활용한다. 예를 들어, 현재 비디오 블록은 이전에 코딩된 프레임(들)에 위치된 기준 블록(들)으로부터 예측될 수 있고, 모션 벡터는 기준 블록의 위치를 나타내는 데 사용될 수 있다. 모션 벡터 및 연관된 데이터는, 예를 들어, 모션 벡터의 수평 성분, 모션 벡터의 수직 성분, 모션 벡터에 대한 해상도(예컨대, 1/4 픽셀 정밀도, 1/2 픽셀 정밀도, 1 픽셀 정밀도, 2 픽셀 정밀도, 4 픽셀 정밀도), 예측 방향 및/또는 기준 픽처 인덱스 값을 설명할 수 있다. 또한, 예를 들어 ITU-T H.265와 같은 코딩 표준이 모션 벡터 예측을 지원할 수 있다. 모션 벡터 예측은 모션 벡터가 이웃하는 블록들의 모션 벡터들을 이용하여 특정되는 것을 가능하게 한다. 모션 벡터 예측의 예들은 AMVP(advanced motion vector prediction), TMVP(temporal motion vector prediction), 소위 "병합(merge)" 모드, 및 "스킵(skip)" 및 "직접" 모션 추론을 포함한다. 또한, JEM은 ATMVP(advanced temporal motion vector prediction), STMVP(Spatial-temporal motion vector prediction), FRUC(Frame-Rate Up Conversion) 기술들에 기초한 특수 병합 모드인 PMMVD(Pattern matched motion vector derivation) 모드, 아핀(affine) 변형 모션 보상 예측 기술들을 지원한다.
전술된 바와 같이, 양자화는 스케일링 팩터로 변환 계수들을 나눔으로써 실현될 수 있고, 또한 변환 계수들의 그룹을 표현하는 데 필요한 데이터의 양을 변화시키기 위해 이용될 수 있다. 즉, 스케일링 팩터(또는 양자화의 정도)를 증가시키는 것은 그룹 계수들을 표현하는 데 필요한 데이터의 양을 감소시킨다. ITU-T H.265에서, 양자화의 정도는 양자화 파라미터(QP)에 의해 결정될 수 있다. ITU-T H.265에서, 8-비트의 비트-깊이에 대하여, QP는 0 내지 51의 52개의 값들을 취할 수 있고, QP에 대한 1의 변화는, 대체적으로, 대략 12%만큼의 양자화 스케일링 팩터의 값의 변화에 대응한다. 보다 대체적으로, ITU-T H.265에서, 소스 비트-깊이에 대한 QP 값들의 유효 범위는 -6*(비트 깊이 -8) 내지 +51(종점 포함)이라는 점에 유의해야 한다. 이로써, 예를 들어, 비트-깊이가 10-비트인 경우에, QP는 -12 내지 51의 64개의 값들을 취할 수 있고, 이는 탈양자화 동안 값들 0 내지 63에 맵핑될 수 있다. ITU-T H.265에서, 양자화 파라미터는 각각의 CU에 대해 업데이트될 수 있고, 각각의 양자화 파라미터는 루마 및 크로마 성분들 각각에 대해 유도될 수 있다. 양자화의 정도가 증가함에 따라(예컨대, 변환 계수들을 더 큰 스케일링 팩터 값으로 나눔으로써), 왜곡의 양이 증가될 수 있다(예컨대, 재구성된 비디오 데이터는 이용자에게 더 "블록형(blocky)"으로 보일 수 있음)는 것에 유의해야 한다.
일부 경우들에서, 블록킹 아티팩트(artifact)들은 재구성된 비디오 데이터의 코딩 블록 경계들이 이용자에게 시각적으로 인지가능해지게 할 수 있다. 블록킹 아티팩트들을 감소시키기 위해, 재구성된 샘플 값들은 비디오 코딩 프로세스에 의해 도입되는 아티팩트들을 최소화하도록 수정될 수 있다. 그러한 수정들은 대체적으로 필터링으로 지칭될 수 있다. 필터링은 인-루프 필터링 프로세스(in-loop filtering process) 또는 포스트-루프 필터링 프로세스(post-loop filtering process)의 일부로서 발생할 수 있음에 유의해야 한다. 인-루프 필터링 프로세스에 대하여, 필터링 프로세스의 생성된 샘플 값들은 예측 비디오 블록들에 이용될 수 있다(예컨대, 비디오 인코더에서의 후속 인코딩 및 비디오 디코더에서의 후속 디코딩을 위해 기준 프레임 버퍼에 저장될 수 있음). 포스트-루프 필터링 프로세스에 대하여, 필터링 프로세스의 생성된 샘플 값들은 단지 디코딩 프로세스의 일부로서 출력된다(예컨대, 후속 코딩을 위해 이용되지 않음). 예를 들어, 인-루프 필터링 프로세스에 대하여, 재구성된 블록을 필터링한 결과로 생성된 샘플 값들은 후속 디코딩을 위해 이용될 것이고(예컨대, 기준 버퍼에 저장될 것임), (예컨대, 디스플레이로) 출력될 것이다. 포스트-루프 필터링 프로세스에 대하여, 수정 없이 재구성된 블록은 후속 디코딩을 위해 이용될 것이고, 재구성된 블록을 필터링한 결과로 생성된 샘플 값들이 출력될 것이다.
본 명세서에서 사용되는 수학식들과 관련하여, 다음의 산술 연산자들이 이용될 수 있다:
+ 가산
- 감산
* 행렬 곱셈을 포함한 곱셈
/ 0을 향해 결과를 트런케이션하는 정수 나눗셈 예를 들어, 7/4 및 -7/-4는 1로 트런케이션되고 -7/4 및 7/-4는 -1로 트런케이션된다.
Figure pct00001
f(i)의 합, i는 x에서부터 y까지(y도 포함함)의 모든 정수 값들을 취함
또한, 아래의 수학 함수들이 이용될 수 있다:
Figure pct00002
Clip 1c(x)= Clip3(0, (1 << BitDepthc) - 1, x), 여기서 BitDepthc는 크로마 채널의 비트 깊이임
abs(x)는 x의 절대값임.
Figure pct00003
또한, 논리 연산자들에 대한 다음의 정의들이 적용될 수 있다:
x && y x 및 y의 부울 논리 "논리곱"
x | | y x 및 y의 부울 논리 "논리합"
! 부울 논리 "논리부정"
x ? y : z x가 참이거나 0과 같지 않으면, y의 값으로 평가되고; 그렇지 않으면, z의 값으로 평가됨.
또한, 다음의 관계 연산자들이 적용될 수 있다:
> 보다 크다
>= 보다 크거나 같다
< 보다 작다
<= 보다 작거나 같다
== 같다
!= 같지 않다
또한, 아래의 비트 연산자들이 적용될 수 있다:
x >> y y개의 이진 자리수만큼 x의 2의 보수 표현의 산술 우측 시프트 이 함수는 음이 아닌 정수 값들 y에 대해서만 정의됨. 오른쪽 시프트의 결과로서 MSB(most significant bit)들로 시프트된 비트들은 시프트 동작 이전에 x의 MSB와 같은 값을 가짐.
x << y y개의 이진 자리수만큼 x의 2의 보수 표현의 산술 좌측시프트 이 함수는 음이 아닌 정수 값들 y에 대해서만 정의됨. 좌측 시프트의 결과로서 LSB(least significant bit)들로 시프트된 비트들은 0과 같은 값을 가짐.
디블록킹(또는 디-블록킹), 디블록 필터링(deblock filtering), 디블록킹 수행, 또는 디블록킹 필터 적용은 이웃하는 재구성된 비디오 블록들의 비디오 블록 경계들을 평활화시키는 프로세스(즉, 경계들이 뷰어에게 덜 인지가능해지게 함)를 지칭한다. 이웃하는 재구성된 비디오 블록들의 경계들을 평활화시키는 것은 경계에 인접한 행들 또는 열들에 포함된 샘플 값들을 수정하는 것을 포함할 수 있다. ITU-T H.265는, 디블록킹 필터가 인-루프 필터링 프로세스의 일부로서 재구성된 샘플 값들에 적용되는 곳을 제공한다. ITU-T H.265는 루마 샘플들을 수정하는 데 이용될 수 있는 두 가지 타입의 디-블록킹 필터들을 포함한다: 경계에 인접한 3개의 행 또는 3개의 열의 샘플 값들을 수정하는 강한 필터(Strong Filter), 및 경계에 바로 인접한 행 또는 열의 샘플 값들을 수정하고 경계로부터 제2 행 또는 제2 열에 있는 샘플 값들을 조건부로 수정하는 약한 필터(Weak Filter). 또한, ITU-T H.265는 크로마 샘플들을 수정하는 데 이용될 수 있는 한 가지 타입의 필터, 즉, 정상 필터(Normal Filter)를 포함한다.
도 5a 및 도 5b는 경계를 갖는 비디오 블록들 P 및 Q에 포함된 샘플 값들을 도시한다. 본 명세서에서 사용되는 바와 같이, 비디오 블록들 P 및 Q는, 디블록킹이 적용될 수 있는 블록 경계를 갖는 인접한 비디오 블록들을 지칭하는 데 이용된다. 샘플 값들이 수정되는 방식은 정의된 필터들에 기초할 수 있는데, 여기서 pi 및 qi는 수직 경계에 대한 열의 개개의 샘플 값들 및 수평 경계에 대한 행의 샘플 값들을 표현하고, pi' 및 qi'은 수정된 샘플 값들을 표현한다. 정의된 필터들은 수정될(또는 필터링될) 샘플들, 및 샘플들이 어떻게 수정될지를 결정하는 데 이용되는 샘플들을 정의할 수 있다. 예를 들어, 도 5a에 도시된 바와 같이, 일례에서, 디블록킹 경계에 인접한 처음 3개의 열 각각에서의 샘플 값들은 디블록킹 경계에 인접한 처음 4개의 열 각각에 포함된 샘플 값(지지 샘플들로서 도시됨)에 기초하여 수정(필터링된 샘플로서 예시됨)될 수 있다.
전술된 바와 같이, ITU-T H.265는 루마 샘플들을 수정하는 데 이용될 수 있는 2 가지 타입의 필터들을 포함한다: 강한 필터 및 약한 필터. 루마 샘플 값들을 수정하기 위한 강한 필터 및 약한 필터 수학식들의 단순화된 정의가 하기에 제공된다. 정의들은 그들이 ITU-T H.265에서 제공되는 클리핑 동작(clipping operation)들을 포함하지 않는다는 점에서 단순화되지만(즉, ITU-T H.265에서, 필터링된 값들은 후술되는 값 tC에 기초하여 클리핑됨), 완전한 정의들을 제공하는 ITU-T H.265의 섹션 8.7.2.5.7을 참조한다.
강한 필터
Figure pct00004
약한 필터
Figure pct00005
여기서, p1 및 q1은, 후술되는 바와 같이, 아래와 같이 조건부로 수정됨
Figure pct00006
또한, ITU-T H.265는 크로마 샘플들을 수정하는 데 이용될 수 있는 한 가지 타입의 필터를 포함한다: 정상 필터. 크로마 샘플 값들을 수정하기 위한 정상 필터 수학식들에 대한 단순화된 정의가 하기에 제공된다.
정상 필터
Figure pct00007
디블록킹은 디블록킹 입도에 기초하여 수행될 수 있다. ITU-T H.265는 8x8 디블록킹 입도를 제공한다. 즉, ITU-T H.265에서, 픽처의 영역에 대하여, 8x8 그리드(grid) 상에 놓인 각각의 에지는, 경계가 존재하는지의 여부를 결정하기 위해 평가된다. 또한, ITU-T H.265에서, 경계 강도(Boundary strength, Bs)가 각각의 경계에 대해 결정된다. ITU-T H.265에서, Bs는 아래와 같이 0, 1, 또는 2 중 하나로서 결정된다:
P 및 Q는 2개의 인접한 코딩 블록들이고, 이어서, 필터 강도 Bs는 아래와 같이 특정됨:
블록들 중 하나(P 또는 Q)가 인트라-예측 모드를 가지면, Bs = 2이고;
달리, P 및 Q가 상이한 TB들에 속하고 P 또는 Q가 적어도 하나의 비-제로 변환 계수를 가지면, Bs = 1이고;
달리, P 및 Q의 기준 픽처들이 같지 않으면, Bs = 1이고;
달리, P의 x 또는 y 모션 벡터 성분과 Q의 x 또는 y 모션 벡터 성분 사이의 차이가 1과 같거나 보다 큰 정수 샘플이면, Bs = 1이고;
그렇지 않으면, Bs = 0이다.
ITU-T H.265에서, 비디오 블록들 P 및 Q(이들은 QPp 및 QPq로 지칭될 수 있음)를 포함하는 CB들을 코딩하는 데 이용되는 QP에 기초하여, 변수들 tC' 및 β'이 결정된다. 도 6은 tC' 및 β'을 결정하기 위한 표를 제공한다. ITU-T H.265에서, 인덱스 Q는 아래와 같이 결정된다:
루마에 대하여:
β'에 대하여:
Q = Clip3(0, 51, qPL+(slice_beta_offset_div2 << 1))
tC'에 대하여
Q = Clip3(0, 53, qPL+2*(bS-1)+(slice_tc_offset_div2 << 1)),
여기서,
qPL = (QPq + QPP + l)/2;
slice_beta_offset_div2는 샘플 q0,0을 포함하는 비디오 데이터의 슬라이스에 적용되는 오프셋 값이고;
slice_tc_offset_div2는 샘플 q0,0을 포함하는 비디오 데이터의 슬라이스에 적용되는 오프셋 값임.
ITU-T H.265에서, 변수 β 및 Q는 아래와 같이 도출된다:
Figure pct00008
여기서 BitDepthy는 루마 샘플들의 비트 깊이를 특정한다.
ITU-T H.265는 변수 d를 정의하는데, 여기서 d는 아래와 같이 루마 샘플 값들에 기초하여 결정된다:
Figure pct00009
또한, ITU-T H.265에서, 변수 dpq는 d 및 β의 값들에 기초한 값으로 설정된다. 마지막으로, ITU-T H.265에서, Bs, tC, β, 및 d 각각은 적용할 필터 타입(예컨대, 강한 필터 또는 약한 필터)을 결정하는 데 이용된다. 또한, ITU-T H.265에서, 크로마 성분에 대하여, 정상 필터는 Bs가 2와 같을 때에만 적용된다. 즉, ITU-T H.265에서, 블록들 P 또는 Q 중 하나가 인트라-예측 모드를 이용하여 생성되면, 크로마 성분에 대한 디블록킹만이 일어난다.
필터 파라미터들의 세트에 따라 디블록킹 필터를 대체적으로 설명하는 것이 유용할 수 있음에 유의해야 한다. 예를 들어, 행 또는 열에 포함된 샘플 값들 {a...b]의 세트에 대하여, 대응하는 디블록킹된 샘플 값 y[n]은 아래의 수학식에 기초하여 특정될 수 있다:
Figure pct00010
여기서,
필터 길이는 abs(a-b+1)로서 결정되고;
coeff[m]은 필터 탭 값(필터 계수로도 지칭됨)을 제공함. 예를 들어,{a... b}= {0..4}에 대하여, 탭 값들의 세트는 {1, 2, 3, 2, 1}일 수 있음;
x[n+ m]은 지지 샘플들에 대응하는 입력 샘플 값들을 제공하며, 지지부 크기는 필터 길이보다 크거나 같을 수 있다는 것에 유의해야 함.
또한, ITU-T H.265에서, 디블록킹 필터는 슬라이스 및 타일 경계들과 일치하지 않는 CTU 경계들과 비교하여 슬라이스 및 타일 경계들과 일치하는 CTU 경계들에 상이하게 적용될 수 있다. 구체적으로, ITU-T H.265는 상부 슬라이스 경계 및 좌측 슬라이스 경계와 일치하는 CTU 경계들에 걸쳐 디블록킹 필터를 인에이블링(enabling)/디스에이블링(disabling)하는 슬라이스 세그먼트 헤더 내에 존재하는 플래그 slice_loop_filter_across_slices_enabled_flag를 특정한다. ITU-T H.265는 slice_loop_filter_across_slices_enabled_flag에 대한 아래의 정의를 제공한다:
1과 같은 slice_loop_filter_across_slices_enabled_flag는, 인-루프 필터링 동작들이 현재 슬라이스의 좌측 경계 및 상부 경계에 걸쳐 수행될 수 있음을 특정한다. 0과 같은 slice_loop_filter_across_slices_enabled_flag는, 인-루프 동작들이 현재 슬라이스의 좌측 경계 및 상부 경계에 걸쳐 수행되지 않음을 특정한다. 인-루프 필터링 동작들은 디블록킹 필터 및 샘플 적응적 오프셋 필터를 포함한다. slice_loop_filter_across_slices_enabled_flag가 존재하지 않을 때, 그것은 pps_loop_filter_across_slices_enabled_flag와 같을 것으로 추론된다.
pps_loop_filter_across_slices_enabled_flag가 PPS(picture parameter set) 내에 존재하고, ITU-T H.265가 pps_loop_filter_across_slices_enabled_flag에 대한 다음의 정의를 제공하는 경우:
1과 같은 pps_loop_filter_across_slices_enabled_flag는, 인-루프 필터링 동작들이 PPS를 참조하는 슬라이스들의 좌측 경계 및 상부 경계에 걸쳐 수행될 수 있음을 특정한다. 0과 같은 pps_loop_filter_across_slices_enabled_flag는, 인-루프 필터링 동작들이 PPS를 참조하는 슬라이스들의 좌측 경계 및 상부 경계에 걸쳐 수행되지 않음을 특정한다. 인-루프 필터링 동작들은 디블록킹 필터 및 샘플 적응적 오프셋 필터 동작들을 포함한다.
주의 - 타일 경계들에 걸친 루프 필터링이 디스에이블링되는 동안에는 슬라이스 경계들에 걸친 루프 필터링이 인에이블링될 수 있고, 그 역도 성립할 수 있다.
유사하게, PPS 내에 존재하는 플래그 loop_filter_across_tiles_enabled_flag는 타일 경계들과 일치하는 CTU 경계들에 걸쳐 디블록킹 필터를 인에이블링/디스에이블링한다. ITU-T H.265는 loop_filter_across_tiles_enabled_flag에 대한 다음의 정의를 제공한다: 1과 같은 loop_filter_across_tiles_enabled_flag는, 인-루프 필터링 동작들이 PPS를 참조하는 픽처들 내의 타일 경계들에 걸쳐 수행될 수 있음을 특정한다. 0과 같은 loop_filter_across_tiles_enabled_flag는, 인-루프 필터링 동작들이 PPS를 참조하는 픽처들 내의 타일 경계들에 걸쳐 수행되지 않음을 특정한다. 인-루프 필터링 동작들은 디블록킹 필터 및 샘플 적응적 오프셋 필터 동작들을 포함한다. loop_filter_across_tiles_enabled_flag의 값은, 존재하지 않을 때, 1과 같을 것으로 추론된다.
전술된 바와 같이, 디블록킹을 위해, 인덱스 Q는 slice_beta_offset_div2 및 slice_tc_offset_div2에 기초하여 결정된다. ITU-T H.265에서, slice_beta_offset_div2 및 slice_tc_offset_div2의 값들은 슬라이스 세그먼트 헤더 내에 포함될 수 있고, 다음의 정의들을 가질 수 있다:
slice_beta_offset_div2 및 slice_tc_offset_div2는 현재 슬라이스에 대한 β 및 tC(2로 나누어짐)에 대한 디블록킹 파라미터 오프셋들을 특정한다. slice_beta_offset_div2 및 slice_tc_offset_div2의 값들 둘 모두는 -6 내지 6의 범위(종점 포함) 내에 있을 것이다. slice_beta_offset_div2 및 slice_tc_offset_div2의 값들은, 존재하지 않을 때, 각각 pps_beta_offset_div2 및 pps_tc_offset_div2와 같을 것으로 추론된다.
pps_beta_offset_div2 및 pps_tc_offset_div2가 PPS 내에 존재하고, ITU-T H.265가 pps_beta_offset_div2 및 pps_tc_offset_div2에 대한 다음의 정의를 제공하는 경우:
디폴트 디블록킹 파라미터 오프셋들이 PPS를 참조하는 슬라이스들의 슬라이스 헤더들 내에 존재하는 디블록킹 파라미터 오프셋들에 의해 오버라이드되지 않는 한, pps_beta_offset_div2 및 pps_tc_offset_div2는 PPS를 참조하는 슬라이스들에 적용되는 β 및 tC(2로 나누어짐)에 대한 디폴트 디블록킹 파라미터 오프셋들을 특정한다. pps_beta_offset_div2 및 pps_tc_offset_div2의 값들 둘 모두는 -6 내지 6의 범위(종점 포함) 내에 있을 것이다. pps_beta_offset_div2 및 pps_tc_offset_div2의 값은, 존재하지 않을 때, 0과 같을 것으로 추론된다.
전술된 바와 같이, ITU-T H.265는 8x8 디블록킹 입도를 제공한다. JEM에서, 디블록킹은 수평 경계에 대한 변수 minCUWidth 또는 수직 경계에 대한 변수 minCUHeight에 의해 특정되는 그리드에 따라 수행되는데, 여기서 minCUWidth 및 minCUHeight의 디폴트 값들은 4이다. d의 계산이 ITU-T H.265에서의 계산과 동일한 JEM에서, d의 값이 또한 결정된다. 상기 d의 값에 기초하여, 경계 상에서 디블록킹을 수행할지 여부가 결정된다. 즉, d < β이면, 현재 경계에 대해 디블록킹 필터가 이용되고, 다른 경우에는, 경계 상에서 어떠한 디블록킹도 수행되지 않는다. 또한, JEM에서, 강한 필터를 이용할지 또는 약한 필터를 이용할지에 대한 결정은 ITU-T H.265 에서의 결정과 동일하다. 마지막으로, JEM 기준 소프트웨어에서, 강한 디블록킹 필터들에 대한 루마 필터 계수들은 ITU-T H.265에서 이용되는 계수들과 동일하다. ITU-T H.265 및 JEM에서 수행되는 바와 같은 디블록킹은 이상적인 것에 미치지 못할 수도 있다. 구체적으로, ITU-T H.265 및 JEM에서 수행되는 바와 같은 디블록킹은, 디블록킹을 수행할 때, 재구성된 비디오 데이터의 다양한 코딩 파라미터들 및 속성들을 고려하지 못한다.
도 7은 본 발명의 하나 이상의 기술들에 따라 비디오 데이터를 코딩하도록(즉, 인코딩하고/하거나 디코딩하도록) 구성될 수 있는 시스템의 일례를 도시한 블록도이다. 시스템(100)은 본 발명의 하나 이상의 기술들에 따른, 비디오 데이터를 캡슐화할 수 있는 시스템의 일례를 표현한다. 도 7에 도시된 바와 같이, 시스템(100)은 소스 디바이스(102), 통신 매체(110), 및 목적지 디바이스(120)를 포함한다. 도 7에 도시된 예에서, 소스 디바이스(102)는 비디오 데이터를 인코딩하도록, 그리고 인코딩된 비디오 데이터를 통신 매체(110)에 송신하도록 구성된 임의의 디바이스를 포함할 수 있다. 목적지 디바이스(120)는 인코딩된 비디오 데이터를 통신 매체(110)를 통하여 수신하도록 그리고 인코딩된 비디오 데이터를 디코딩하도록 구성된 임의의 디바이스를 포함할 수 있다. 소스 디바이스(102) 및/또는 목적지 디바이스(120)는 유선 및/또는 무선 통신을 위해 구비된 컴퓨팅 디바이스들을 포함할 수 있고, 예를 들어, 셋톱박스들, 디지털 비디오 레코더들, 텔레비전들, 데스크톱, 랩톱 또는 태블릿 컴퓨터들, 게이밍 콘솔들, 의료용 이미징 디바이스들, 및, 예를 들어, 스마트폰들, 셀룰러 폰들, 개인 게이밍 디바이스들을 포함하는 모바일 디바이스들을 포함할 수 있다.
통신 매체(110)는 무선 및 유선 통신 매체, 및/또는 저장 디바이스들의 임의의 조합을 포함할 수 있다. 통신 매체(110)는 동축 케이블들, 광섬유 케이블들, 연선 케이블들, 무선 송신기들 및 수신기들, 라우터들, 스위치들, 리피터들, 기지국들, 또는 다양한 디바이스들 및 장소들 사이의 통신을 용이하게 하는 데 유용할 수 있는 임의의 다른 장비를 포함할 수 있다. 통신 매체(110)는 하나 이상의 네트워크들을 포함할 수 있다. 예를 들어, 통신 매체(110)는 월드 와이드 웹, 예를 들어, 인터넷에의 액세스를 가능하게 하도록 구성된 네트워크를 포함할 수 있다. 네트워크는 하나 이상의 통신 프로토콜들의 조합에 따라 동작할 수 있다. 통신 프로토콜들은 독점적인 태양들을 포함할 수 있고/있거나 표준화된 통신 프로토콜들을 포함할 수 있다. 표준화된 통신 프로토콜들의 예들은 DVB(Digital Video Broadcasting) 표준, ATSC(Advanced Television Systems Committee) 표준, ISDB(Integrated Services Digital Broadcasting) 표준, DOCSIS(Data Over Cable Service Interface Specification) 표준, GSM(Global System Mobile Communications) 표준, CDMA(code division multiple access) 표준, 3GPP(3rd Generation Partnership Project) 표준, ETSI(European Telecommunications standards Institute) 표준, IP(Internet Protocol) 표준, WAP(Wireless Application Protocol) 표준, 및 IEEE(Institute of Electrical and Electronics Engineers) 표준을 포함한다.
저장 디바이스들은 데이터를 저장할 수 있는 임의의 타입의 디바이스 또는 저장 매체를 포함할 수 있다. 저장 매체는 유형적인(tangible) 또는 비-일시적 컴퓨터-판독가능 매체를 포함할 수 있다. 컴퓨터 판독가능 매체는 광학 디스크, 플래시 메모리, 자기 메모리, 또는 임의의 다른 적합한 디지털 저장 매체들을 포함할 수 있다. 일부 예들에서, 메모리 디바이스 또는 그의 부분들은 비-휘발성 메모리로서 설명될 수 있고, 다른 예들에서, 메모리 디바이스들의 부분들은 휘발성 메모리로서 설명될 수 있다. 휘발성 메모리들의 예들은 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 및 정적 랜덤 액세스 메모리(SRAM)를 포함할 수 있다. 비-휘발성 메모리들의 예들은 자기 하드 디스크들, 광 디스크들, 플로피 디스크들, 플래시 메모리들, 또는 EPROM(electrically programmable memory) 또는 EEPROM(electrically erasable and programmable memory)의 형태들을 포함할 수 있다. 저장 디바이스(들)는 메모리 카드(예컨대, SD(Secure Digital) 메모리 카드), 내장형/외장형 하드 디스크 드라이브, 및/또는 내장형/외장형 솔리드 스테이트 드라이브(solid state drive)를 포함할 수 있다. 데이터는 정의된 파일 포맷에 따라 저장 디바이스 상에 저장될 수 있다.
도 7을 다시 참조하면, 소스 디바이스(102)는 비디오 소스(104), 비디오 인코더(106), 데이터 캡슐화기(107), 및 인터페이스(108)를 포함한다. 비디오 소스(104)는 비디오 데이터를 캡처하고/하거나 저장하도록 구성된 임의의 디바이스를 포함할 수 있다. 예를 들어, 비디오 소스(104)는 비디오 카메라 및 그에 동작가능하게 커플링된 저장 디바이스를 포함할 수 있다. 비디오 인코더(106)는 비디오 데이터를 수신하도록, 그리고 비디오 데이터를 표현하는 컴플라이언트 비트스트림을 생성하도록 구성된 임의의 디바이스를 포함할 수 있다. 컴플라이언트 비트스트림은 비디오 디코더가 그로부터 비디오 데이터를 수신 및 복원할 수 있는 비트스트림을 지칭할 수 있다. 컴플라이언트 비트스트림의 태양들은 비디오 코딩 표준에 따라 정의될 수 있다. 컴플라이언트 비트스트림을 생성할 때, 비디오 인코더(106)는 비디오 데이터를 압축할 수 있다. 압축은 (뷰어에게 식별가능하거나 또는 식별불가능한) 손실이 있을 수도 있고 또는 손실이 없을 수도 있다.
도 8은 본 명세서에서 설명된 비디오 데이터를 인코딩하기 위한 기술들을 구현할 수 있는 비디오 인코더(200)의 일례를 도시한 블록도이다. 예시적인 비디오 인코더(200)가 별개의 기능 블록들을 갖는 것으로 도시되어 있지만, 그러한 도시는 설명의 목적을 위한 것이고 비디오 인코더(200) 및/또는 그의 서브컴포넌트들을 특정 하드웨어 또는 소프트웨어 아키텍처로 제한하지 않는다는 것에 유의하여야 한다. 비디오 인코더(200)의 기능들은 하드웨어, 펌웨어, 및/또는 소프트웨어 구현의 임의의 조합을 이용하여 실현될 수 있다. 일례에서, 비디오 인코더(200)는 본 명세서에서 설명된 기술들에 따라 비디오 데이터를 인코딩하도록 구성될 수 있다. 비디오 인코더(200)는 픽처 영역들의 인트라 예측 코딩 및 인터 예측 코딩을 수행할 수 있고, 이 때문에, 하이브리드 비디오 인코더로 지칭될 수 있다. 도 8에 도시된 예에서, 비디오 인코더(200)는 소스 비디오 블록들을 수신한다. 일부 예들에서, 소스 비디오 블록들은 코딩 구조에 따라 분할되었던 픽처의 영역들을 포함할 수 있다. 예를 들어, 소스 비디오 데이터는 매크로블록들, CTU들, CB들, 그의 서브분할부들, 및/또는 다른 등가 코딩 유닛을 포함할 수 있다. 일부 예들에서, 비디오 인코더는 소스 비디오 블록들의 추가적인 서브분할들을 수행하도록 구성될 수 있다. 본 명세서에서 설명되는 기술은, 대체적으로, 인코딩 전에 그리고/또는 인코딩 동안에 소스 비디오 데이터가 어떻게 분할되는지와는 무관하게, 비디오 코딩에 적용가능하다는 것에 유의해야 한다. 도 9에 도시된 예에서, 비디오 인코더(200)는 합산기(202), 변환 계수 생성기(204), 계수 양자화 유닛(206), 역양자화/역변환 프로세싱 유닛(208), 합산기(210), 인트라 예측 프로세싱 유닛(212), 인터 예측 프로세싱 유닛(214), 필터 유닛(216), 및 엔트로피 인코딩 유닛(218)을 포함한다. 도 8에 도시된 바와 같이, 비디오 인코더(200)는 소스 비디오 블록들을 수신하고 비트스트림을 출력한다.
도 8에 도시된 예에서, 비디오 인코더(200)는 소스 비디오 블록으로부터 예측 비디오 블록을 감산함으로써 잔차 데이터를 생성할 수 있다. 합산기(202)는 이러한 감산 연산을 수행하도록 구성된 컴포넌트를 표현한다. 일례에서, 비디오 블록들의 감산은 픽셀 도메인에서 발생한다. 변환 계수 생성기(204)는 이산 코사인 변환(DCT), 이산 사인 변환(DST), 또는 개념적으로 유사한 변환과 같은 변환을, 잔차 블록 또는 그의 서브분할부들에 적용하여(예컨대, 4개의 8x8 변환이 잔차 값들의 16x16 어레이에 적용될 수 있음), 잔차 변환 계수들의 세트를 생성한다. 변환 계수 생성기(204)는 이산 삼각함수 변환(discrete trigonometric transform)의 계열에 포함되는 변환들의 임의의 그리고 모든 조합들을 수행하도록 구성될 수 있다. 변환 계수 생성기(204)는 변환 계수들을 계수 양자화 유닛(206)으로 출력할 수 있다.
계수 양자화 유닛(206)은 변환 계수들의 양자화를 수행하도록 구성될 수 있다. 전술된 바와 같이, 양자화의 정도는 양자화 파라미터들에 의해 결정될 수 있는 양자화 스케일링 팩터를 조정함으로써 수정될 수 있다. 계수 양자화 유닛(206)은, 추가로, 양자화 값들을 결정하도록 그리고 비디오 디코딩 동안에 역양자화를 수행하기 위해 비디오 디코더가 양자화 파라미터를 재구성하는 데 이용할 수 있는 QP 데이터를 출력하도록 구성될 수 있다. 예를 들어, 시그널링된 QP 데이터는 QP 델타 값들을 포함할 수 있다. ITU-T H.265에서, 변환 계수들의 세트에 적용되는 양자화의 정도는 슬라이스 레벨 파라미터들, 이전 코딩 유닛으로부터 인계된 파라미터들, 및/또는 선택적으로 시그널링된 CU 레벨 델타 값들에 의존할 수 있다.
도 8에 도시된 바와 같이, 양자화된 변환 계수들은 역양자화/역변환 프로세싱 유닛(208)으로 출력된다. 역양자화/역변환 프로세싱 유닛(208)은 재구성된 잔차 데이터를 생성하기 위해 역양자화 및/또는 역변환을 적용하도록 구성될 수 있다. 도 8에 도시된 바와 같이, 합산기(210)에서, 재구성된 잔차 데이터가 예측 비디오 블록에 가산될 수 있다. 이러한 방식으로, 인코딩된 비디오 블록은 재구성될 수 있고, 생성된 재구성된 비디오 블록은 주어진 예측, 변환 타입, 및/또는 양자화 레벨에 대한 주어진 품질에 대한 인코딩 품질을 평가하는 데 사용될 수 있다. 비디오 인코더(200)는 다수의 코딩 패스들을 수행하도록 (예를 들어, 하나 이상의 코딩 파라미터들을 변경하면서 인코딩을 수행하도록) 구성될 수 있다. 비트스트림 또는 다른 시스템 파라미터들의 레이트 왜곡은 재구성된 비디오 블록들의 평가에 기초하여 최적화될 수 있다. 또한, 재구성된 비디오 블록들은 후속 블록들을 예측하기 위한 기준으로서 저장 및 사용될 수 있다.
전술된 바와 같이, 비디오 블록은 인트라 예측을 사용하여 코딩될 수 있다. 인트라 예측 프로세싱 유닛(212)은 비디오 블록이 코딩될 인트라 예측 모드를 선택하도록 구성될 수 있다. 인트라 예측 프로세싱 유닛(212)은 프레임 및/또는 그의 영역을 평가하도록 그리고 현재 블록을 인코딩하는 데 사용할 인트라 예측 모드를 결정하도록 구성될 수 있다. 도 8에 도시된 바와 같이, 인트라 예측 프로세싱 유닛(212)은 인트라 예측 데이터(예컨대, 신택스 요소들)를 필터 유닛(216) 및 엔트로피 인코딩 유닛(218)에 출력한다.
인터 예측 프로세싱 유닛(214)은 현재 비디오 블록에 대한 인터 예측 코딩을 수행하도록 구성될 수 있다. 인터 예측 프로세싱 유닛(214)은 소스 비디오 블록들을 수신하도록 그리고 비디오 블록의 PU들 등에 대한 모션 벡터를 계산하도록 구성될 수 있다. 모션 벡터는 기준 프레임 내의 예측 블록에 대한 현재 비디오 프레임 내의 비디오 블록의 PU 등의 변위를 나타낼 수 있다. 인터 예측 코딩은 하나 이상의 기준 픽처들을 사용할 수 있다. 또한, 모션 예측은 단방향 예측(하나의 모션 벡터를 사용) 또는 양방향 예측(2개의 모션 벡터들을 사용함)일 수 있다. 인터 예측 프로세싱 유닛(214)은, 예를 들어 절대차의 합(SAD), 제곱차의 합(SSD), 또는 다른 차이 메트릭(metric)들에 의해 결정된 픽셀차를 계산함으로써 예측 블록을 선택하도록 구성될 수 있다. 모션 벡터 및 연관된 데이터는, 예를 들어, 모션 벡터의 수평 성분, 모션 벡터의 수직 성분, 모션 벡터에 대한 해상도(예컨대, 1/4 픽셀 정밀도), 예측 방향 및/또는 기준 픽처 인덱스 값을 설명할 수 있다. 또한, 예를 들어 ITU-T H.265와 같은 코딩 표준이 모션 벡터 예측을 지원할 수 있다. 모션 벡터 예측은 모션 벡터가 이웃하는 블록들의 모션 벡터들을 이용하여 특정되는 것을 가능하게 한다. 모션 벡터 예측의 예들은 AMVP, TMVP, 소위 "병합" 모드, 및 "스킵" 및 "직접" 모션 추론을 포함한다. 인터 예측 프로세싱 유닛(214)은 전술된 기술들 중 하나 이상에 따라 모션 벡터 예측을 수행하도록 구성될 수 있다. 인터 예측 프로세싱 유닛(214)은 모션 예측 데이터를 사용하여 예측 블록을 생성하도록 구성될 수 있다. 예를 들어, 인터 예측 프로세싱 유닛(214)은 프레임 버퍼(도 8에 도시되지 않음) 내에 예측 비디오 블록을 위치시킬 수 있다. 인터 예측 프로세싱 유닛(214)은, 추가로, 하나 이상의 보간 필터를 재구성된 잔차 블록에 적용하여 모션 추정에 사용하기 위한 서브-정수 픽셀 값들을 계산하도록 구성될 수 있다는 것에 유의하여야 한다. 인터 예측 프로세싱 유닛(214)은 계산된 모션 벡터에 대한 모션 예측 데이터를 필터 유닛(216) 및 엔트로피 인코딩 유닛(218)에 출력할 수 있다.
전술된 바와 같이, 디블록킹은 재구성된 비디오 블록들의 경계들을 평활화시키는 프로세스를 지칭한다. 도 8에 도시된 바와 같이, 필터 유닛(216)은 재구성된 비디오 블록들 및 코딩 파라미터들(예컨대, 인트라 예측 데이터, 인터 예측 데이터, 및 QP 데이터)을 수신하고, 수정된 재구성된 비디오 데이터를 출력한다. 필터 유닛(216)은 디블록킹 및/또는 SAO(Sample Adaptive Offset) 필터링을 수행하도록 구성될 수 있다. SAO 필터링은 재구성된 비디오 데이터에 오프셋을 추가함으로써 재구성을 개선하는 데 사용될 수 있는 비선형 진폭 맵핑이다. 도 8에 도시된 바와 같이, 인트라 예측 프로세싱 유닛(212) 및 인터 예측 프로세싱 유닛(214)은 수정된 재구성된 비디오 블록을 필터 유닛(216)을 통해 수신할 수 있다는 것에 유의해야 한다. 즉, 일부 경우들에서, 디블록킹은 인-루프로 발생할 수 있는데, 즉, 기준 버퍼에 저장된 예측 비디오 블록들이 필터링될 수 있다. 일부 경우들에서, 디블록킹은 포스트-루프로 발생할 수 있는데, 즉, 예를 들어, 비디오 데이터가 재구성된 후에 그리고 디스플레이로 출력되기 전에 발생할 수 있다. 본 명세서에서 설명되는 기술들은 인-루프 디블록킹(in-loop deblocking), 포스트-루프 디블록킹(post-loop deblocking), 및/또는 이들의 조합으로 적용가능할 수 있다.
전술된 바와 같이, ITU-T H.265 및 JEM에서 수행되는 것과 같은 디블록킹은 이상적인 것에 미치지 못할 수도 있다. 일례에서, 본 발명의 기술들에 따르면, 필터 유닛(216)은 다음 중 하나 이상에 기초하여 상이한 필터링 라인들을 선택하도록 구성될 수 있다(일부 경우들에서, 경계의 각각의 측 상에서 디블록킹되는 샘플들의 개수는 상이할 수 있음): 경계의 각각의 측(하나 또는 둘 모두) 상의 블록 크기, 경계 강도, 경계의 각각의 측 상의 블록들에 의해 이용되는 예측 모드, 디블록킹되는 샘플의 예측 모드(예컨대, 인트라, 인터, 스킵)(예컨대, 기준 샘플들에 근접한 경계에 대해서는 약한 필터를 이용함), 디블록킹되는 샘플의 QP 값, 디블록킹되는 샘플에 대응하는 블록 크기, 디블록킹에 이용되는 샘플들에 대응하는 블록 크기, 디블록킹되는 경계의 각각의 측 상의 블록들에 대한 모션 벡터들, 디블록킹되는 샘플에 대한 모션 벡터들, 및/또는 디블록킹에 이용되는 샘플에 대한 모션 벡터들.
(경계 에지에 수직한) 블록 경계의 각각의 측 상의 샘플들은 하기와 같이 표현될 수 있다:
...p8 p7 p6 p5 p4 p3 p2 p1 p0 | q0 q1 q2 q3 q4 q5 q6 q7 q8
여기서,
|는 블록 경계 에지를 표현함.
샘플들 px(여기서, x는 0에서 시작하는 양의 정수)는 경계의 P-측을 표현함. 샘플들 qy(여기서, y는 0에서 시작하는 양의 정수)는 경계의 Q-측을 표현함.
일례에서, P-측은 현재 CU 외부의 샘플들을 표현하고, Q-측은 현재 CU 내부의 샘플들을 표현한다.
일례에서, P-측은 현재 CU 내부의 샘플들을 표현하고, Q-측은 현재 CU 외부의 샘플들을 표현한다.
일례에서, P-측은 현재 블록 외부의 샘플들을 표현하고, Q-측은 현재 블록 내부의 샘플들을 표현한다.
일례에서, P-측은 현재 블록 내부의 샘플들을 표현하고, Q-측은 현재 블록 외부의 샘플들을 표현한다.
도 5a를 참조하면, 샘플들(py>x 및 qy>x)은, 수직 에지를 디블록킹할 때의 라인 R[x]에 대응한다.
도 5b를 참조하면, 샘플들(py>x 및 qy>x)은, 수평 에지를 디블록킹할 때의 라인 R[y]에 대응한다.
WS00P P-측 필터로 지칭되는, 경계의 P-측에 대한 더 넓고(즉, 더 많은 개수의 샘플들이 디블록킹됨), 더 강한 필터의 일례는 아래와 같다:
Figure pct00011
여기서, px'은 px에 대응하는 위치에서의 디블록킹 후의 샘플 값을 표현한다.
WS00Q Q-측 필터로 지칭되는, 경계의 Q-측에 대한 더 넓고(즉, 더 많은 개수의 샘플들이 디블록킹됨), 더 강한 필터의 일례는 아래와 같다:
Figure pct00012
여기서, qx'은 qx에 대응하는 위치에서의 디블록킹 후의 샘플 값을 표현한다.
HEVC_P P-측 필터로 지칭되는, 경계의 P-측에 대한 좁고(즉, 더 적은 개수의 샘플들이 디블록킹됨), 강한 필터의 일례는 아래와 같다:
Figure pct00013
여기서, px'은 px에 대응하는 위치에서의 디블록킹 후의 샘플 값을 표현한다.
HEVC_Q Q-측 필터로 지칭되는, 경계의 Q-측에 대한 좁고(즉, 더 적은 개수의 샘플들이 디블록킹됨), 강한 필터의 일례는 아래와 같다:
Figure pct00014
여기서, qx'은 qx에 대응하는 위치에서의 디블록킹 후의 샘플 값을 표현한다.
NS00P P-측 필터로 지칭되는, 경계의 P-측에 대한 좁고(더 적은 개수의 샘플들이 디블록킹됨), 강한 필터의 일례는 아래와 같다:
Figure pct00015
여기서, px'은 px에 대응하는 위치에서의 디블록킹 후의 샘플 값을 표현한다.
NS00Q Q-측 필터로 지칭되는, 경계의 Q-측에 대한 좁고(더 적은 개수의 샘플들이 디블록킹됨), 강한 필터의 일례는 아래와 같다:
Figure pct00016
여기서, qx'은 qx에 대응하는 위치에서의 디블록킹 후의 샘플 값을 표현한다.
NS00P P-측 필터로 지칭되는, 경계의 P-측에 대한 좁고(더 적은 개수의 샘플들이 디블록킹됨), 강한 필터의 일례는 아래와 같다:
Figure pct00017
NS00Q Q-측 필터로 지칭되는, 경계의 Q-측에 대한 좁고(더 적은 개수의 샘플들이 디블록킹됨), 강한 필터의 일례는 아래와 같다:
Figure pct00018
NS00P P-측 필터로 지칭되는, 경계의 P-측에 대한 좁고(더 적은 개수의 샘플들이 디블록킹됨), 강한 필터의 일례는 아래와 같다:
Figure pct00019
NS00Q Q-측 필터로 지칭되는, 경계의 Q-측에 대한 좁고(더 적은 개수의 샘플들이 디블록킹됨), 강한 필터의 일례는 아래와 같다:
Figure pct00020
NW00P P-측 필터로 지칭되는, 경계의 P-측에 대한 좁고(더 적은 개수의 샘플들이 디블록킹됨), 약한 필터의 일례는 아래와 같다:
Figure pct00021
여기서, px'은 px에 대응하는 위치에서의 디블록킹 후의 샘플 값을 표현한다.
NW00Q Q-측 필터로 지칭되는, 경계의 Q-측에 대한 좁고(더 적은 개수의 샘플들이 디블록킹됨), 약한 필터의 일례는 아래와 같다:
Figure pct00022
여기서, qx'은 qx에 대응하는 위치에서의 디블록킹 후의 샘플 값을 표현한다.
F0P P-측 필터로 지칭되는, 경계의 P-측에 대한 필터의 일례는 아래와 같다:
Figure pct00023
F0Q Q-측 필터로 지칭되는, 경계의 Q-측에 대한 필터의 일례는 아래와 같다:
Figure pct00024
F1P P-측 필터로 지칭되는, 경계의 P-측에 대한 필터의 일례는 아래와 같다:
Figure pct00025
F1Q Q-측 필터로 지칭되는, 경계의 Q-측에 대한 필터의 일례는 아래와 같다:
Figure pct00026
일례에서, 경계로부터 디블록킹되는 샘플의 거리는 가장 큰 탭 값을 할당받은 지지 샘플과 디블록킹되는 샘플 사이의 거리에 반비례할 수 있다. 또한, 디블록킹되는 샘플로부터 두 번째로 큰 탭 값의 거리는 경계로부터의 샘플의 거리에 비례할 수 있다. 후술되는 필터들(F2P, F2Q)은 그러한 필터링의 예시적인 구현예를 제공한다. F2P P-측 필터로 지칭되는, 경계의 P-측에 대한 필터의 일례는 아래와 같다:
Figure pct00027
F2Q Q-측 필터로 지칭되는, 경계의 Q-측에 대한 필터의 일례는 아래와 같다:
Figure pct00028
F4P P-측 필터로 지칭되는, 경계의 P-측에 대한 필터의 일례는 아래와 같다:
Figure pct00029
F4Q Q-측 필터로 지칭되는, 경계의 Q-측에 대한 필터의 일례는 아래와 같다:
Figure pct00030
일례에서, 본 발명의 기술들에 따르면, 기울기 계산이 필터 파라미터들, 블록 경계의 일측(또는 양측 모두)에서 디블록킹될 샘플들의 개수를 선택하는 데 이용될 수 있다. 기울기는 라인 R[x] 내의 샘플을 이용하여 계산될 수 있다.
일례에서, 다수의 기울기들이 라인 R[x] 내의 샘플들을 이용하여 계산될 수 있고, 필터 파라미터들, 블록 경계의 일측(또는 양측 모두)에서 디블록킹될 샘플들의 개수를 선택하는 데 이용될 수 있다. 다른 예에서, 다수의 기울기들이 라인 R[x] 내의 샘플들을 이용하여 계산될 수 있고, 기울기의 평균화, 최대 기울기, 최소 기울기와 같은 연산들이 필터 파라미터들, 블록 경계의 일측(또는 양측 모두)에서 디블록킹될 샘플들의 개수를 선택하는 데 이용될 수 있다.
일례에서, 함수 호출 xCalDQp(R[x])는 아래와 같이 기울기를 계산한다:
Figure pct00031
일례에서, 함수 호출 xCalDQq(R[x])는 아래와 같이 기울기를 계산한다:
Figure pct00032
일례에서, 함수 호출 xCalDQpLargeBlock(R[x])는 아래와 같이 기울기를 계산한다:
Figure pct00033
일례에서, 함수 호출 xCalDQqLargeBlock(R[x])는 아래와 같이 기울기를 계산한다:
Figure pct00034
일례에서, 함수 호출 xCalDQpLargeBlock(R[x])는 아래와 같이 기울기를 계산한다:
Figure pct00035
일례에서, 함수 호출 xCalDQqLargeBlock(R[x])는 아래와 같이 기울기를 계산한다:
Figure pct00036
일례에서, 함수 호출 xCalDQpLargeBlock(R[x])는 아래와 같이 기울기를 계산한다:
Figure pct00037
일례에서, 함수 호출 xCalDQqLargeBlock(R[x])는 아래와 같이 기울기를 계산한다:
Figure pct00038
일례에서, 함수 호출 xCalDQpLargeBlock(R[x])는 아래와 같이 기울기를 계산한다:
Figure pct00039
일례에서, 함수 호출 xCalDQqLargeBlock(R[x])는 아래와 같이 기울기를 계산한다:
Figure pct00040
일례에서, 함수 호출 xCalDQpLargeBlock(R[x])는 아래와 같이 기울기를 계산한다:
Figure pct00041
일례에서, 함수 호출 xCalDQqLargeBlock(R[x])는 아래와 같이 기울기를 계산한다:
Figure pct00042
일례에서, 함수 호출 xCalDQpLargeBlock(R[x])는 아래와 같이 기울기를 계산한다:
Figure pct00043
일례에서, 함수 호출 xCalDQqLargeBlock(R[x])는 아래와 같이 기울기를 계산한다:
Figure pct00044
일례에서, p1, p2,..., p6에서 계산된 2차 차이들의 서브세트는 xCalDQpLargeBlock(R[x])을 계산하는 데 이용될 수 있는데, 여기서 pn에서의 2차 차이는 abs(pn-1 - 2*pn + pn+1)이다. 유사하게, q1, q2,…,q6에서 계산된 2차 차이들의 서브세트는 xCalDQqLargeBlock(R[x])을 계산하는 데 이용될 수 있다. 일례에서, 함수 호출 xCalDQpLargeBlock(R[x]) 및 xCalDQqLargeBlock(R[x])에서의 반올림 오프셋은 버려질 수 있다.
일례에서, 함수 호출 xUseStrongFilteringLargeBlock (R[x0, d, bSidePisLargeBlk, bSideQisLargeBlk)은 아래와 같이 부울 변수를 계산하는데, 여기서 결정된 bSidePisLargeBlk, bSideQisLargeBlk에 대한 예들이 하기에 제공된다:
((abs((bSidePisLargeBlk ? p7: p4) - p0) + abs((bSideQisLargeBlk ? q7: q4) - q0)< (β>> 3)) && (d < (β>> 2)) && (abs(q0 - p0) < ((tC * 5 + 1) >> 1)))? TRUE:FALSE, 여기서 β 및 tC는 임계치들이다.
일례에서, 함수 호출 xUseStrongFilteringLargeBlock (R[x], d, bSidePisLargeBlk, bSideQisLargeBlk)은 아래와 같이 부울 변수를 계산한다:
Figure pct00045
일례에서, 함수 호출 xUseStrongFilteringLargeBlock (R[x], d, bSidePisLargeBlk, bSideQisLargeBlk)은 아래와 같이 부울 변수를 계산한다:
Figure pct00046
일례에서, 함수 호출 xUseStrongFilteringLargeBlock (R[x], d, bSidePisLargeBlk, bSideQisLargeBlk)은 아래와 같이 부울 변수를 계산한다:
Figure pct00047
일례에서, 함수 호출 xUseStrongFilteringLargeBlock에서의 반올림 오프셋은 버려질 수 있다.
일례에서, 경계의 일측(또는 양측 모두)에서 디블록킹될 샘플들의 개수를 선택하는 데 이용되는 조건은 블록 경계에 수직인, 임계치를 초과하는 (현재의 블록의 및/또는 이웃하는 블록의) 치수에 대응한다. 일부 경우들에서, 변환 계수들의 서브세트가 블록 크기에 기초하여 블록에 대해 0으로 설정될 때, 비교에 이용되는 임계치는 제로 계수들의 서브세트의 속성들에 기초할 수 있다. 예를 들어, 변환 계수들이 32 이상의 열 위치 및 32 이상의 행 위치 내의 계수들에 대해 0으로 설정될 때(행, 열 인덱싱이 0에서 시작함), 블록 경계에 수직한 치수는 32의 임계 값과 비교된다.
일례에서, 모든 변환 계수들이 샘플들의 블록에 대해 0인지 여부를 나타내는 신호가 비트스트림으로 수신될 수 있다. 그러한 신호는, 예컨대, 각각의 컬러 성분에 대해, 컬러 성분들의 그룹에 대해, 샘플들의 일부 공간적 분할에 대해, 샘플들의 일부 공간적-시간적 분할에 대해 수신될 수 있다. HEVC에서, 각각의 컬러 성분에 대하여, 코딩된 블록 플래그(coded block flag;,CBF)가 (명시적인 신호가 없는 경우에 간섭 규칙(inference rule)을 이용하여 명시적으로 또는 암시적으로) 시그널링되었고 - cbf_luma, cbf_cb, cbf_cr; 더욱이, 또한 변환 트리 내의 컬러 성분들 중 임의의 것이 비-제로 변환 계수들을 포함했는지 여부를 나타내는 플래그가 (명시적으로 또는 암시적으로) 시그널링되었고, 그 플래그는 잔차 쿼드트리 루트(CBF - rqt_root_cbf)로 지칭되었다.
일례에서, 경계의 일측(또는 양측 모두)에서 디블록킹될 샘플들의 개수는 디블록킹되는 에지의 타입(예컨대, 수직 블록 에지, 수평 블록 에지), 채널 타입(예컨대, 루마, 크로마), 경계의 일측(또는 양측 모두)의 샘플들의 블록에 대해 모든 변환 계수들이 0인지 여부, 경계의 일측(또는 양측 모두)의 샘플들의 블록이 조명 변화들에 대한 선형 모델에 기초할 수 있는 LIC(Local Illumination Compensation)와 같은 코딩 모드들을 이용하는지 여부, 경계의 일측(또는 양측 모두)의 샘플들의 블록이 교차 성분 예측(선형 모델에 기초할 수 있음)을 이용하는지 여부, 경계의 일측(또는 양측 모두)의 샘플들의 블록이 변환보다 작은 블록들에 대해 결정되는 예측을 이용하는지 여부, 경계의 일측(또는 양측 모두)의 샘플들의 블록이 큰 블록(예컨대, CU)이 서브-블록들(예컨대, 서브-CU들)로 분할되고 모션 정보가 이들 서브-블록들에 대해 도출되는 기술들을 이용하는지의 여부에 기초할 수 있다.
일례에서, 본 발명의 기술들에 따르면, 블록 경계에 수직한 현재 블록의 치수가 임계치(예컨대, 32) 이상일 때, 더 많은 개수(예컨대, 7개)의 샘플들이 블록 경계의 각각의 측에서 디블록킹되고, 블록 경계에 수직한 현재 블록의 치수가 임계치(예컨대, 32)보다 작을 때, 더 적은 개수(예컨대, 3개)의 샘플들이 블록 경계의 각각의 측에서 디블록킹된다. 예를 들어, if ((현재 블록의 폭 >= 32이고 에지 타입이 수직) 또는 (현재 블록의 높이 >= 32이고 에지 타입이 수평))이면, 블록 경계의 각각의 측에서 더 많은 개수의 샘플들이 디블록킹된다.
일례에서, 본 발명의 기술들에 따르면, 블록 경계에 수직한 블록의 치수가 임계치(예컨대, 32) 이상이면, 더 많은 개수(예컨대, 7개)의 샘플들이 블록 경계의 측에서 디블록킹되고, 블록 경계에 수직한 블록의 치수가 임계치(예컨대, 32)보다 작으면, 더 적은 개수(예컨대, 3개)의 샘플들이 블록 경계의 측에서 디블록킹된다. 예를 들어, if ((하나의 블록의 폭 >= 32이고 에지 타입이 수직) 또는 (하나의 블록의 높이 >= 32이고 에지 타입이 수평))이면, 블록 경계에서의 그 블록에 대해 더 많은 개수의 샘플들이 디블록킹된다. 여기서, 수직 경계 에지의 좌-측이 블록 크기 4(행)x 64(열)를 갖고 우-측이 블록 크기 4(행)x 16(열)을 가지면, 우-측에 비해 좌-측에서 더 많은 개수의 샘플들이 디블록킹될 수 있다.
일례에서, 본 발명의 기술들에 따르면, 필터 유닛(216)은 하기 중 하나 이상에 기초하여 디블록킹에 이용되는 필터 파라미터들(예컨대, 계수들의 개수를 포함함)을 선택하도록 구성될 수 있다: 경계로부터 디블록킹되는 샘플의 (샘플들의 개수로의) 거리, 경계의 각각의 측의 블록 크기(들), 경계 강도, 경계의 각각의 측의 블록들에 의해 이용되는 예측 모드, 디블록킹되는 샘플의 예측 모드(예컨대, 기준 샘플들에 가까운 경계를 위해 약한 필터를 이용함), 디블록킹되는 샘플의 QP(예컨대, 더 큰 QP를 위해 더 강한 필터들을 이용함), 디블록킹되는 샘플에 대응하는 블록 크기(예컨대, 더 큰 블록 크기를 위해 더 강한 필터들을 이용함), 디블록킹을 위해 이용되는 샘플들에 대응하는 블록 크기, 디블록킹되는 경계의 각각의 측의 블록들에 대한 모션 벡터들(예컨대, MV 차이가 임계치보다 크면, 경계의 상이한 측의 샘플들이 상이한 객체들에 속할 수 있기 때문에 어떠한 디블록킹도 수행하지 않음), 및/또는 디블록킹되는 샘플에 대한 모션 벡터들; 디블록킹에 이용되는 샘플에 대한 모션 벡터들. 샘플에 대응하는 블록 크기는 샘플이 속하는 CU의 블록 크기, 샘플이 속하는 TU의 블록 크기, 또는 샘플이 속하는 PU의 블록 크기를 포함할 수 있음에 유의해야 한다.
일례에서, 본 발명의 기술들에 따르면, 필터 유닛(216)은 디블록킹되는 에지의 타입(예컨대, 수직 블록 에지, 수평 블록 에지), 채널 타입(예컨대, 루마, 크로마), 경계의 일측(또는 양측 모두)의 샘플들의 블록에 대해 모든 변환 계수들이 0인지 여부, 경계의 일측(또는 양측 모두)의 샘플들의 블록이 조명 변화들에 대한 선형 모델들에 기초할 수 있는 LIC와 같은 코딩 모드들을 이용하는지 여부, 경계의 일측(또는 양측 모두)의 샘플들의 블록이 교차 성분 예측(선형 모델에 기초할 수 있음)을 이용하는지 여부, 경계의 일측(또는 양측 모두)의 샘플들의 블록이 변환보다 작은 블록들에 대해 결정되는 예측을 이용하는지 여부, 경계의 일측(또는 양측 모두)의 샘플들의 블록이 큰 블록(예컨대, CU)이 서브-블록들(예컨대, 서브-CU들)로 분할되고 모션 정보가 이들 서브-블록들에 대해 도출되는 기술들을 이용하는지의 여부에 기초하여 디블록킹에 이용되는 필터 파라미터들(예컨대, 계수들의 개수를 포함함)을 선택하도록 구성될 수 있다.
일례에서, 본 발명의 기술들에 따르면, 필터 유닛(216)은 디블록킹되는 에지의 타입(예컨대, 수직 블록 에지, 수평 블록 에지), 채널 타입(예컨대, 루마, 크로마), 경계의 일측(또는 양측 모두)의 샘플들의 블록에 대해 모든 변환 계수들이 0인지 여부, 경계의 일측(또는 양측 모두)의 샘플들의 블록이 조명 변화들에 대한 선형 모델들에 기초할 수 있는 LIC와 같은 코딩 모드들을 이용하는지 여부, 경계의 일측(또는 양측 모두)의 샘플들의 블록이 교차 성분 예측(선형 모델에 기초할 수 있음)을 이용하는지 여부, 경계의 일측(또는 양측 모두)의 샘플들의 블록이 변환보다 작은 블록들에 대해 결정되는 예측을 이용하는지 여부, 경계의 일측(또는 양측 모두)의 샘플들의 블록이 큰 블록(예컨대, CU)이 서브-블록들(예컨대, 서브-CU들)로 분할되고 모션 정보가 이들 서브-블록들에 대해 도출되는 기술들을 이용하는지의 여부에 기초하여 디블록킹에 이용되는 필터 파라미터들(예컨대, 계수들의 개수를 포함함)을 선택하도록 구성될 수 있다.
일례에서, 필터 파라미터들을 선택하는 것은 더 넓고 더 강한 필터링을 선택하는 것을 포함할 수 있다.
일례에서, 본 발명의 기술들에 따르면, 필터 유닛(216)은, 블록 경계에 수직한, 현재 블록의 치수가 임계치(예컨대, 32) 이상일 때, 양측 모두에 대한 디블록킹 필터 파라미터들(예컨대, 더 넓고 더 강한 필터링)의 세트를 선택하도록 구성될 수 있다. 예를 들어, if ((현재 블록의 폭 >= 32이고 에지 타입이 수직) 또는 (현재 블록의 높이 >= 32이고 에지 타입이 수평))이면, 블록 경계의 각각의 측에 대해 더 넓고 더 강한 필터링이 선택된다.
일례에서, 본 발명의 기술들에 따르면, 필터 유닛(216)은, 대응하는 측에 대한, 블록 경계에 수직한 블록의 치수에 독립적으로 기초하여 블록 경계의 각각의 측에 대한 필터 파라미터들을 선택하도록 구성될 수 있다. 예를 들어, 하나의 측의 블록 경계에 수직한 블록의 치수가 임계치(예컨대, 32) 이상일 때, 디블록킹 필터 파라미터들(예컨대, 더 넓고 더 강한 필터링)의 세트가 그 측에 대해 선택될 수 있다. 예를 들어, ((하나의 블록의 폭 >= 32이고 에지 타입이 수직이면) 또는 (하나의 블록의 높이 >= 32이고 에지 타입이 수평이면)), 그 블록에 대응하는 블록 경계의 측에 대해 더 넓고 더 강한 필터링이 선택된다.
일례에서, 본 발명의 기술들에 따르면, 모든 변환 계수들이 경계의 일측(또는 양측 모두)의 블록들(예컨대, CU)에 대해 0인지 여부에 기초하여, 서브-CU 경계가 디블록킹될 수 있다. 예를 들어, CU에 대한 모든 변환 계수들이 0일 때, 서브-CU 경계가 디블록킹된다.
일례에서, 본 발명의 기술들에 따르면, 모든 변환 계수들이 경계의 일측(또는 양측 측) 상의 블록에 대해 0인지 여부에 기초하여, 서브-블록 경계가 디블록킹될 수 있다. 예를 들어, 블록에 대한 모든 변환 계수들이 0일 때, 서브-블록 경계가 디블록킹된다.
일례에서, 본 발명의 기술들에 따르면, 모든 변환 계수들이 경계의 일측(또는 양측 모두)의 블록들(예컨대, CU)에 대해 0인지 여부 그리고 양자화 단계 크기가 큰지(예컨대, QP가 임계치 이상인지) 여부에 기초하여, 서브-CU 경계가 디블록킹될 수 있다. 예를 들어, CU에 대한 모든 변환 계수들이 0이고 QP가 임계치보다 클 때, 서브-CU 경계가 디블록킹된다.
일례에서, 본 발명의 기술들에 따르면, 모든 변환 계수들이 경계의 일측(또는 양측 측)의 블록에 대해 0인지 여부 그리고 양자화 단계 크기가 큰지(예컨대, QP가 임계치 이상인지) 여부에 기초하여, 서브-블록 경계가 디블록킹될 수 있다. 예를 들어, 블록에 대한 모든 변환 계수들이 0이고 QP가 임계치보다 클 때, 서브-블록 경계가 디블록킹된다.
일례에서, 본 발명의 기술들에 따르면, LIC가 경계의 일측(또는 양측 모두)의 블록들에 대해 이용되고 그 블록에 대한 모든 변환 계수들이 0일 때, 블록 경계가 디블록킹될 수 있다.
일례에서, 본 발명의 기술들에 따르면, LIC가 블록에 대해 이용되고 그 블록에 대한 모든 변환 계수들이 0일 때, 블록의 4개의 경계들 모두(즉, 좌측, 우측, 상부, 하부)가 디블록킹될 수 있다.
일례에서, 본 발명의 기술들에 따르면, LIC가 경계의 일측(또는 양측 모두)의 블록들에 대해 이용되고 그 블록에 대한 모든 변환 계수들이 0이고 양자화 단계 크기가 크면(예컨대, QP가 임계치 이상이면), 블록 경계가 디블록킹될 수 있다.
일례에서, 본 발명의 기술들에 따르면, LIC가 블록에 대해 이용되고 그 블록에 대한 모든 변환 계수들이 0이고 양자화 단계 크기가 크면(예컨대, QP가 임계치 이상이면), 블록의 4개의 경계들 모두(즉, 좌측, 우측, 상부, 하부)가 디블록킹될 수 있다.
일례에서, 본 발명의 기술들에 따르면, 교차 성분 예측이 경계의 일측(또는 양측 모두)의 블록들에 대해 이용되고 그 블록에 대한 모든 변환 계수들이 0일 때, 블록 경계가 디블록킹될 수 있다.
일례에서, 본 발명의 기술들에 따르면, 교차 성분 예측이 경계의 일측(또는 양측 모두)의 블록들에 대해 이용되고 그 블록에 대한 모든 변환 계수들이 0이고 양자화 단계 크기가 크면(예컨대, QP가 임계치 이상이면), 블록 경계가 디블록킹될 수 있다.
일례에서, 본 발명의 기술들에 따르면, 필터 유닛(216)은 다수의 필터링 패스들에 따라 디블록킹을 수행하도록 구성될 수 있다. 일례에서, 필터링 패스는 디블록킹될 샘플들의 전부/서브세트를 프로세싱하는 것/구성하는 것에 대응할 수 있다. 주어진 패스 내의 각각의 샘플에 대한 프로세싱/구성(들)의 횟수는 패스 인덱스/순서에 대응할 수 있다. 디블록킹될 샘플들의 서브세트는 패스 인덱스/순서에 대응할 수 있다. 일례에서, 모든 패스는 정확히 한 번 디블록킹될 모든 샘플들을 프로세싱하는 것/구성하는 것에 대응할 수 있다. 이러한 경우의 일례에서, 이전 반복으로부터의 디블록킹된 샘플들(뿐만 아니라 디블록킹되지 않은 샘플들)은 현재 반복을 위한 디블록킹된 샘플들을 구성하는 데 이용될 수 있다. 그러한 경우의 일례에서, 이전 반복 및 현재 반복으로부터의 디블록킹된 샘플들(뿐만 아니라 디블록킹되지 않은 샘플들)이 디블록킹된 샘플들을 구성하는 데 이용될 수 있다. 이 경우에, 디블록킹된 샘플들을 구성하기 위한 순서화가 특정될 수 있다. 일례에서, 반복들의 횟수는 다음 중 하나 이상에 기초하여 결정될 수 있다: 슬라이스 타입; 블록 크기; 현재 CU 및 그의 이웃하는 CU들의 스킵 플래그들; 현재 CU 및 그의 이웃하는 CU들의 예측 모드(인트라\인터); 디블록킹될 샘플 위치; d < β인지 여부; 및/또는 전술된 JEM에서 제공되는 강한 필터 또는 약한 필터 결정 조건; 경계로부터의 디블록킹되는 샘플의 (샘플들의 개수로의) 거리; 경계의 각각의 측의 블록 크기(들); 경계 강도; 경계의 각각의 측의 블록들에 의해 이용되는 예측 모드; 디블록킹되는 샘플의 예측 모드; 디블록킹되는 샘플의 QP; 디블록킹되는 샘플에 대응하는 블록 크기; 디블록킹에 이용되는 샘플들에 대응하는 블록 크기; 디블록킹되는 경계의 각각의 측의 블록들에 대한 모션 벡터들; 디블록킹되는 샘플에 대한 모션 벡터들; 및/또는 디블록킹하는 데 이용되는 샘플에 대한 모션 벡터. 일례에서, 반복 횟수는 하나 이상의 필터 파라미터들을 결정할 수 있다.
일례에서, 사전-결정된 디블록킹 지지부를 갖는 N-패스 디블록킹은 아래와 같이 표현될 수 있다:
iterIdx=0 내지 (N-1)에 대하여
pos = posM 내지 posN에 대하여 // 디블록킹되는 샘플
temp[pos] = f_pos(디블록킹 지지부 내의 패스 iterldx에서의 샘플들 값들)
pos = posM 내지 posN에 대하여
sampleValue[pos]를 temp[pos]로 업데이트함
여기서, f_pos()는 하기의 형태의 선형 변환인데:
Figure pct00048
여기서, coeff_pos[]는 디블록킹되는 샘플의 위치 pos에 의존하는 값들의 어레이이다. 이용되는 각각의 sampleValue[]는 이전 반복 내의 디블록킹을 이용하여 생성될 수 있음에 유의해야 한다. 또한, 디블록킹 지지부는 1회 반복에서 다음 반복으로 변하지 않는다.
반복별(iteration-by-iteration) 분석을 수행하는 것은 하기를 제공한다:
iterldx 0에 대하여, 사용된 샘플들은 각각의 pos에 대하여 디블록킹되지 않은 샘플들임:
temp[pos] = f_pos(디블록킹 지지부 내의 패스 0에서의 샘플들 값들).
iterldx 1에 대하여,
temp[pos] = f_pos(디블록킹 지지부 내의 패스 1에서의 샘플들 값들).
f_pos()가 선형 변환들이고 디블록킹 지지부가 변하지 않기 때문에, 상기는 아래와 같이 다시-작성될 수 있다:
iterldx 1에 대하여,
temp[pos] = g_pos(디블록킹 지지부 내의 패스 0에서의 샘플들 값들).
여기서 g_pos()는 위치 pos에 의존하는 f_pos()와 유사한 선형 변환이지만, 상이한 계수 값들을 갖는다.
이러한 단순화는 각각의 반복에 대해 재귀적으로 수행되어, 반복 0에서의 원래의 샘플 값들에만 의존하는 필터링 동작들을 등가의 단일-패스로 리딩(leading) 할 수 있다. 일부 경우들에 이용되는 유한 정밀도로 인해, 최종 계수 값들은 근사화되어, 멀티-패스 필터링 동작의 대략적인 단일-패스 표현으로 리딩할 수 있다.
일례에서, 본 발명의 기술들에 따르면, 필터 유닛(216)은 필터 라인들 및 대응하는 필터 계수들을 확장시키도록 구성될 수 있다. 일례에서, 필터링될 샘플 라인들은 하나의 측에서 8개로 확장될 수 있다. 일례에서, 라인 0 및 라인 1에 대해, 필터 계수들은 { 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1 }/l6일 수 있고; 라인 2 및 라인 3에 대해, 필터 계수들은 {1, 1, 1, 1, 1, 1, 1, 1}/8일 수 있고; 다른 라인들에 대한 필터 계수들은 {1, 2, 2, 2, 1}/8일 수 있는데, 여기서, 라인 0은 경계에 가장 가까운 샘플 라인을 나타낸다.
JEM에서, 재구성된 샘플들은 디블록킹 프로세스에서 샘플들을 필터링하는 데 항상 이용된다는 것에 유의해야 한다. 일례에서, 본 발명의 기술들에 따르면, 필터 유닛(216)은 다른 샘플들 값들을 필터링하기 위해 디블록킹함으로써 생성된 수정된 샘플 값들을 이용하도록 구성될 수 있다. 일례에서, 수정된 샘플 값들은 다른 샘플들 값을 필터링할 때 입력들로서 이용될 수 있다. 일례에서, 필터링 순서가 특정될 수 있다. 일례에서, 필터 순서는 경계로부터 가장 먼 라인에서부터 가장 가까운 라인으로 디블록킹을 수행할 수 있다.
전술된 바와 같이, 디블록킹된 샘플들을 전형적으로 일정 범위의 값들 내에 있도록 클리핑된다. 그 범위의 값들은 원래의 샘플 값 및 비트스트림에서 수신된 다른 파라미터들에 기초할 수 있다. 일례에서, 그 범위의 값들은 [원래의 샘플 값 - t_c, 원래의 샘플 값 + t_c]이다. 일례에서, 본 발명의 기술들에 따르면, 필터 유닛(216)은 하기 중 하나 이상에 기초하여 클리핑 함수를 조정하도록 구성될 수 있다: 다수의 패스 디블록킹에서의 마지막 하나 이상의 라운드들에서의 샘플 값들; QP 값; 슬라이스 타입; 현재 예측 모드(인트라/인터); 현재 스킵 플래그 값; 디블록킹될 샘플들의 인트라 예측 모드들; 디블록킹될 샘플들의 모션 벡터; 샘플 위치(예컨대, 상이한 샘플들은 상이한 클리핑 함수들을 이용할 수 있음); CU 위치(예를 들어, 상이한 CU는 상이한 클리핑 함수들을 이용할 수 있음); 및/또는 전술된 다른 조건들 중 임의의 것.
일례에서, 본 발명의 기술들에 따르면, 필터 유닛(216)은 블록 크기에 기초하여 여기에 설명된 필터링 기술들을 수행하도록 구성될 수 있다. 예를 들어, 본 명세서에서 설명된 하나 이상의 필터링 기술들이 경계에서 적용될 수 있는데, 여기서, 경계 주위의 블록 크기는 임계치보다 크다. 예를 들어, 필터링 기술들을 수행할지 여부의 결정은 다음과 같을 수 있다: (1) 경계의 각각의 측의 4x4 샘플들의 각각의 세트를 확인함(즉, 최소 CU 크기가 4x4 루마 샘플들이기 때문임); (2) 4x4 샘플들의 임의의 한 세트가 임계치들보다 큰 크기(예컨대, 64)를 갖는 CU에 속하면, 필터링 기술은 현재 경계에서 수행될 것임. 일례에서, 본 발명의 기술들에 따르면, 필터 유닛(216)은 하기 중 하나 이상에 기초하여 본 명세서에서 설명된 필터링 기술들을 수행하도록 구성될 수 있다: 슬라이스 타입; 블록 형상이 직사각형인지 여부; 블록 형상이 정사각형인 곳; 현재 CU 및 그의 이웃하는 CU들의 스킵 플래그들; 현재 CU 및 그의 이웃하는 CU들의 예측 모드(인트라\인터); 디블록킹될 샘플 위치.
일례에서, 본 발명의 기술들에 따르면, 필터 유닛(216)은 아래와 같이 더 넓고-더 강한 루마 필터링을 수행하도록 구성될 수 있다:
우선, P-측이 아래와 같이 큰 블록들을 이용하는지 여부를 결정함:
bSidePisLargeBlk = ((에지 타입이 수직이고 p0가 폭이 >= 32인 블록(예컨대, CU)에 속함) | | (에지 타입이 수평이고 p0가 높이가 >= 32인 블록(예컨대, CU)에 속함))? TRUE : FALSE
다음으로, Q-측이 아래와 같이 큰 블록들을 이용하는지 여부를 결정함:
bSideQisLargeBlk = ((에지 타입이 수직이고 q0가 폭이 >= 32인 블록(예컨대, CU)에 속함) | | (에지 타입이 수평이고 q0가 높이가 >= 32인 블록(예컨대, CU)에 속함))? TRUE : FALSE
다음으로, 아래의 변수들이 유도됨:
Figure pct00049
다음으로, 조건 1 및 조건 2가 아래와 같이 평가됨:
Condition1 = (dL < β)? TRUE : FALSE
Condition2 = (xUseStrongFilteringLargeBlock(R[0], d0L, bSidePisLargeBlk, bSideQisLargeBlk) && xUseStrongFilteringLargeBlock(R[3], d3L, bSidePisLargeBlk, bSideQisLargeBlk)) ? TRUE:FALSE
조건 1, 조건 2, 및 bSidePisLargeBlk가 참이면, 더 넓고-더 강한 필터가 경계의 P-측에 적용된다(예컨대, WS00P).
조건 1, 조건 2, 및 bSideQisLargeBlk가 참이면, 더 넓고-더 강한 필터가 경계의 Q-측에 적용된다(예컨대, WS00Q).
일례에서, 조건 2는 아래와 같이 수정될 수 있다:
Condition2 = (경계의 한 측의 블럭이 LIC를 이용하고 그 블록의 CBF가 0일 때) ? TRUE :
((xUseStrongFilteringLargeBlock(R[0], d0L, bSidePisLargeBlk, bSideQisLargeBlk) && xUseStrongFilteringLargeBlock(R[3], d3L, bSidePisLargeBlk, bSideQisLargeBlk)) ? TRUE:FALSE)
일례에서, 본 발명의 기술들에 따르면, 필터 유닛(216)은 아래와 같이 크로마 필터링을 수행하도록 구성될 수 있다:
(에지 타입이 수직이고 p0가 폭이 >= 32인 CU에 속함) || (에지 타입이 수평이고 p0가 높이가 >= 32인 CU에 속함) && (에지 타입이 수직이고 q0가 폭이 >= 32인 CU에 속함) || (에지 타입이 수평이고 q0가 높이가 >= 32인 CU에 속함)일 때, 좁고 강한 필터(예컨대, NS00P 및 NS00Q)가 이용될 수 있고, 그렇지 않으면, 좁고 약한 필터(예컨대, NW00P 및 NW00Q)가 이용될 수 있다.
일례에서, 본 발명의 기술들에 따르면, 필터 유닛(216)은 아래와 같이 크로마 필터링을 수행하도록 구성될 수 있다:
(p0가 폭이 >= 32인 CU에 속하고 p0가 높이가 >= 32인 CU에 속함) || (q0가 폭이 >= 32인 CU에 속하고 q0가 높이가 >= 32인 CU에 속함)일 때, 좁고 강한 필터(예컨대, NS00P 및 NS00Q)가 이용될 수 있고, 그렇지 않으면, 좁고 약한 필터(예컨대, NW00P 및 NW00Q)가 이용될 수 있다.
일례에서, 본 발명의 기술들에 따르면, 필터 유닛(216)은 도 10에 도시된 예시적인 흐름도에 따라 디블록 필터링을 수행하도록 구성될 수 있다. 일례에서, 필터 유닛(216)은 루마 샘플들에 대해 도 10에 도시된 흐름도에 따라 디블록 필터링을 수행하도록 구성될 수 있다. 도 10은 현재 블록(예컨대, P 블록 또는 Q 블록 중 하나)에 대하여, 다음의 타입들의 디블록킹 중 하나가 적용될 수 있는 예를 도시한다: 넓고 더 강한 필터, 강한 필터, 약한 필터, 또는 필터링 없음. 일례에서, 넓고 더 강한 필터를 적용하는 것은 전술된 WS00P 및 WS00Q 필터들을 적용하는 것을 포함할 수 있다. 일례에서, 강한 필터를 적용하는 것은 전술된 HEVC_P 및 HEVC_Q 필터들을 적용하는 것을 포함할 수 있다. 일례에서, 약한 필터를 적용하는 것은 약한 필터로서 전술된 HEVC의 약한 필터를 적용하는 것을 포함할 수 있다. 도 10에 도시된 바와 같이, 402에서 큰 블록 조건이 참인지 여부, 404에서 큰 블록 기울기 조건이 참인지 여부, 406에서 큰 블록 강한 필터 조건이 참인지 여부, 410에서 기울기 조건이 참인지 여부, 그리고 414에서 강한 필터 조건이 참인지 여부에 기초하여, 408에서 더 넓고 더 강한 필터가 적용되고, 412에서 필터가 적용되지 않고, 416에서 강한 필터가 적용되고, 418에서 약한 필터가 적용된다.
일례에서, 큰 블록 조건은 아래가 참인지 여부를 포함할 수 있다: If ((EDGE_VER && (cur_block_width>=32 ll adjacent_block_width>=32)) || (EDGE_HOR &&(cur_block_height>=32 || adjacent_block_height>=32)))
여기서,
EDGE_VER은 수직 경계 타입이고,
EDGE_HOR은 수평 경계 타입이고,
cur_block_width는, 예컨대, 루마 샘플들 내의 현재 블록 폭이고,
cur_block_height는, 예컨대, 루마 샘플들 내의 현재 블록 높이이고,
adjacent_block_width는, 예컨대, 루마 샘플들 내의 인접한 블록 폭이고,
adjacent_block_height는, 예컨대, 루마 샘플들 내의 인접한 블록 높이이다.
일례에서, 큰 블록 기울기 조건은 전술된 조건 1이 참인지 여부를 포함할 수 있다. 일례에서, 큰 블록의 강한 필터 조건은 전술된 예시적인 조건 2 중 하나가 참인지 여부를 포함할 수 있다.
일례에서, 기울기 조건은 d < β인지 여부를 포함할 수 있으며, 여기서 d는 아래와 같이 결정된다:
Figure pct00050
일례에서, 강한 필터 조건은 아래가 참인지 여부를 포함할 수 있다: (xUseStrongFilteringLargeBlock(R[0], d0, false, false) && xUseStrongFilteringLargeBlock(R[3], d3, false, false)) ? TRUE:FALSE
일례에서, 본 발명의 기술들에 따르면, 필터 유닛(216)은 도 11에 도시된 예시적인 흐름도에 따라 디블록 필터링을 수행하도록 구성될 수 있다. 일례에서, 필터 유닛(216)은 크로마 샘플들에 대해 도 11에 도시된 흐름도에 따라 디블록 필터링을 수행하도록 구성될 수 있다. 도 11은, 현재 블록(예컨대, P 블록 또는 Q 블록)에 대해, 다음 타입들의 디블록킹중 하나가 적용될 수 있는 예를 도시한다: 넓고 더 강한 필터, 또는 약한 필터. 일례에서, 넓고 더 강한 필터를 적용하는 것은 전술된 NS00P 및 NS00Q 필터들을 적용하는 것을 포함할 수 있다. 일례에서, 약한 필터를 적용하는 것은 전술된 NW00P 및 NW00Q 필터들을 적용하는 것을 포함할 수 있다. 도 11에 도시된 바와 같이, 502에서 큰 블록 조건이 참인지 여부에 기초하여, 504에서 더 넓고 더 강한 필터가 적용되고, 506에서 약한 필터가 적용된다.
일례에서, 큰 블록 조건은 아래가 참인지 여부를 포함할 수 있다: If ((EDGE_VER && (cur_block_width>=32 || adjacent_block_width>=32)) || (EDGE_HOR &&(cur_block_height>=32 || adjacent_block_height>=32)))
여기서,
EDGE_VER은 수직 경계 타입이고,
EDGE_HOR은 수평 경계 타입이고,
cur_block_width는, 예컨대, 크로마 샘플들 내의, 현재 블록 폭이고,
cur_block_height는, 예컨대, 크로마 샘플들 내의, 현재 블록 높이이고,
adjacent_block_width는, 예컨대, 크로마 샘플들 내의, 인접한 블록 폭이고,
adjacent_block_height는, 예컨대, 크로마 샘플들 내의, 인접한 블록 높이이다.
일례에서, 필터 유닛(216)은 아래의 조건 세트에 기초하여 P 블록 또는 Q 블록의 크로마 샘플들에 대하여 디블록 필터링을 수행하도록 구성될 수 있다: If ((EDGE_VER && (cur_Q_block_width>= TH_w)) || (EDGE_HOR && (cur_Q_block_height >= TH_h))이 참이면, Q 샘플들에 NS00Q를 적용한다. 그렇지 않으면, Q 샘플들에 약한 필터(예컨대, NW00Q Q-측 필터)를 적용한다.
if ((EDGE_VER && (cur_P_block_width>= TH_w)) || (EDGE_HOR && (cur_P_block_height >= TH_h))가 참이면, P 샘플들에 NS00P를 적용한다. 그렇지 않으면, P 샘플들에 약한 필터(예컨대, NW00P P-측 필터)를 적용한다.
여기서,
EDGE_VER은 수직 경계 타입이고,
EDGE_HOR은 수평 경계 타입이고,
cur_Q_block_width는, 예컨대, 크로마 샘플들 내의, 현재 Q 블록 폭이고,
cur_Q_block_height는, 예컨대, 크로마 샘플들 내의, 현재 Q 블록 높이이고,
cur_P_block_width는, 예컨대, 크로마 샘플들 내의, 현재 P 블록 폭이고,
cur_P_block_height는, 예컨대, 크로마 샘플들 내의, 현재 P 블록 높이이고,
TH_w는 폭 임계치(예컨대, 32개의 샘플들)이고,
TH_h는 높이 임계치(예를 들어, 32개의 샘플)이다.
임계 값(예컨대, TH_w 및/또는 TH_h)은, 일부 예들에서는, 사전정의된 값(예컨대, 16 또는 32)을 포함할 수 있고, 일부 예들에서는, 파라미터 세트에서 시그널링될 수 있고, 일부 예들에서는, 슬라이스 헤더에서 시그널링될 수 있고, 일부 예들에서는, 비디오의 현재 부분 내의 CTU 크기일 수 있음에 유의해야 한다.
도 11을 참조하면, 일례에서, 큰 블록 조건은 루마 필터 조건으로 대체될 수 있다. 즉, 예를 들어, 강한 필터가 루마 블록에 적용되면, 504에서 넓고 더 강한 필터가 병치된(collocated) 크로마 블록에 적용될 수 있고, 그렇지 않으면, 506에서 약한 필터가 병치된 크로마 블록에 적용될 수 있다.
일례에서, 본 발명의 기술들에 따르면, 필터 유닛(216)은 도 12에 도시된 예시적인 흐름도에 따라 디블록 필터링을 수행하도록 구성될 수 있다. 일례에서, 필터 유닛(216)은 크로마 샘플들에 대해 도 12에 도시된 흐름도에 따라 디블록 필터링을 수행하도록 구성될 수 있다. 도 12는, 현재 블록(예컨대, P 블록 또는 Q 블록)에 대해, 다음 타입들의 디블록킹 중 하나가 적용될 수 있는 예를 도시한다: 넓고 더 강한 필터, 또는 약한 필터. 일례에서, 넓고 더 강한 필터를 적용하는 것은 전술된 NS00P 및 NS00Q 필터들을 적용하는 것을 포함할 수 있다. 일례에서, 약한 필터를 적용하는 것은 전술된 NW00P 및 NW00Q 필터들을 적용하는 것을 포함할 수 있다. 도 12에 도시된 바와 같이, 602에서 큰 블록 조건이 참인지 여부, 그리고 604에서 큰 블록 강한 필터 조건이 참인지 여부에 기초하여, 608에서 더 넓고 더 강한 필터가 적용되고, 606에서 약한 필터가 적용된다.
일례에서, 큰 블록 조건은 아래가 참인지 여부를 포함할 수 있다: If ((EDGE_VER && (cur_block_width>=TH_w && adjacent_block_width>= TH_w)) ||
(EDGE_HOR && (cur_block_height>=TH_h || adjacent_block_height>=TH_h)))
여기서,
EDGE_VER은 수직 경계 타입이고,
EDGE_HOR은 수평 경계 타입이고,
cur_block_width는, 예컨대, 크로마 샘플들 내의, 현재 블록 폭이고,
cur_block_height는, 예컨대, 크로마 샘플들 내의, 현재 블록 높이이고,
adjacent_block_width는, 예컨대, 크로마 샘플들 내의, 인접한 블록 폭이고,
adjacent_block_height는, 예컨대, 크로마 샘플들 내의, 인접한 블록 높이이다.
TH_w는 폭 임계치(예컨대, 32개의 샘플들)이고,
TH_h는 높이 임계치(예를 들어, 32개의 샘플)이다.
임계 값(예컨대, TH_w 및/또는 TH_h)은, 일부 예들에서는, 사전정의된 값(예컨대, 16 또는 32)을 포함할 수 있고, 일부 예들에서는, 파라미터 세트에서 시그널링될 수 있고, 일부 예들에서는, 슬라이스 헤더에서 시그널링될 수 있고, 일부 예들에서는, 비디오의 현재 부분 내의 CTU 크기일 수 있음에 유의해야 한다. 일례에서, 임계값은 4보다 크다.
일례에서, 더 넓고 강한 필터 조건은, 제1 조건 및 제2 조건 둘 모두가 참인지 여부를 포함할 수 있다. 즉, 강한 필터 조건은, 제1 조건 및 제2 조건 둘 모두가 참일 때 참일 수 있다. 일례에서, d < β일 때 제1 조건이 참일 수 있는데, 여기서 d는 아래와 같이 결정된다:
Figure pct00051
여기서,
RC[N]은, 디블록킹되는 에지에 수직하고, 디블록킹되는 현재 크로마 세그먼트의 상부로부터 거리 N에 있는 크로마 라인들에 대응하고;
일례에서, 제2 조건은,
Rc[0] 및 Rc[1]에 대해, ((abs(p3 - p0) + abs(q3 - q0)< (β>3)) && (d < ([β>>2)) && (abs(q0 - p0) < ((tC * 5 + 1)>> 1)))가 참일 때, 참일 수 있다.
일례에서, 제2 조건은,
Rc[0]에 대해, ((abs(p3 - p0) + abs(q3 - q0)< (β>3)) && (d < (β>>2)) && (abs(q0 - p0) < ((tC * 5 + 1)>> 1)))가 참일 때, 참일 수 있다.
일례에서, 에지는 세그먼트들로서 디블록킹되는데, 여기서, 세그먼트 길이는 CU/TU/PU/서브-PU에 대해 허용되는 최소 치수의 함수일 수 있음에 유의해야 한다. 또한, 2xN 및 Nx2 CU가 크로마 채널에서 허용되는 가장 짧고 가장 얇은 블록들일 때, 크로마 세그먼트 길이는 2일 수 있다.
상기 크로마 필터링에 따라, 디블록킹되는 에지에 수직한 2개의 라인들이 기본 세그먼트로서 프로세싱된다는 것에 유의해야 한다. 일례에서, 4개의 라인들이 기본 세그먼트로서 프로세싱될 수 있다. 일례에서, 4개의 라인들이 기본 세그먼트로서 프로세싱될 때, 제1 조건은 d < β일 때 참일 수 있는데, 여기서, d는 아래와 같이 결정된다:
Figure pct00052
또한, 일례에서, 4개의 라인들이 기본 세그먼트로서 프로세싱될 때, 제2 조건은,
Rc[0]및 Rc[3]에 대해, ((abs(p3 - p0) + abs(q3 - q0)< (β>3)) && (d < (β>>2)) && (abs(q0 - p0) < ((tC * 5 + 1)>> 1)))가 참일 때, 참일 수 있다.
전술된 바와 같이, ITU-T H.265에서, 디블록킹 필터는 슬라이스 및 타일 경계들과 일치하지 않는 CTU 경계들과 비교하여, 슬라이스 및 타일 경계들과 일치하는 CTU 경계들에 상이하게 적용될 수 있다. 구체적으로, ITU-T H.265에서, slice_loop_filter_across_slices_enabled_flag는 상부 슬라이스 경계 및 좌측 슬라이스 경계와 일치하는 CTU 경계들에 걸쳐 디블록킹 필터를 인에이블링/디스에이블링한다. 일례에서, 본 발명의 기술들에 따르면, 디블록킹 필터의 지지 샘플들이 경계(예컨대, 픽처/슬라이스/타일)를 초과할 때, 지지 샘플들을 이용하는 디블록킹 필터는 허용되지 않을 수 있다. 일례에서, 본 발명의 기술들에 따르면, 디블록킹 필터의 지지 샘플들이 경계(예컨대, 픽처/슬라이스/타일)를 초과하고 경계(예컨대, 슬라이스)에 걸친 샘플 값들을 이용하는 것이 디스에이블링될 때, 패딩(padding) 동작이 이용되어 지지 샘플 값들을 생성할 수 있다. 예를 들어, 숫자 스칼라(scalar), 원형(circular), 복제물, 또는 대칭 패딩 중 하나가 지지 샘플을 생성하는 데 이용될 수 있는데, 여기서, 숫자 스칼라 패딩 동작은 상수 값에 따라 패딩하고, 원형 패딩 동작은 샘플 값들의 원형 반복으로 패딩하고, 복제물 패딩 동작은 경계 샘플 값들의 반복에 의해 패딩하고, 대칭 패딩 동작은 샘플 값들의 거울 반사(mirror reflection)로 패딩한다.
전술된 바와 같이, ITU-T H.265에서, 필터링된 값들은 값 tC에 기초하여 클리핑된다. 구체적으로, 전술된 ITU-T H.265의 강한 필터에 대하여, pi' 값들은 (pi - 2* tC, pi + 2* tC)에 클리핑되고, qi' 값들은 (qi - 2* tC, qi + 2* tC)에 클리핑된다. 전술된 바와 같이, ITU-T H.265에서, 변수 tC'(및 따라서, tC의 값)은 qPL에 기초하여 결정되는 인덱스 Q에 기초하여 결정되는데, 이는 다음과 같다: (QPq + QPP + 1)/2. 비디오 코딩의 일부 경우들에서, (예컨대, HDR(high dynamic range) 비디오를 코딩하기 위해 제안된 기술들), QP의 값들은 CU-레벨 또는 CTU-레벨에서 변할 수 있다. 이들 경우에, 인덱스 Q에 기초하는, ITU-T H.265에서 제공되는 클리핑 동작의 범위는 부적절할 수 있다. 일례에서, 본 발명의 기술들에 따르면, 상이한 값들의 tC'이 P 측 샘플들 및 Q 측 샘플들에 대해 결정될 수 있다. 즉, P 측 tC' 값(tCP') 및 대응하는 P 측 tC 값(tCp')이 pi' 값들을 클리핑하는 데 이용될 수 있고, Q 측 tC' 값(tCQ') 및 대응하는 Q 측 tC값(tCQ)이 qi' 값들을 클리핑하는 데 이용될 수 있다. 일례에서, 각각의 P 측 인덱스 Q(Qp) 및 Q 측 인덱스 Q(Qq)는 상기 Q 인덱스 수학식에서 qPL을 각각의 값들 QPP 및 QPq으로 대체함으로써 결정될 수 있다. 따라서, 본 발명의 기술들에 따르면, pi' 값들은 (pi - 2* tCP, pi + 2* tCP)에 클리핑되고, qi' 값들은 (qi - 2* tCQ, qi + 2* tCQ)에 클리핑될 수 있다. pi' 값들 및 qi' 값들은 본 명세서에서 설명된 임의의 필터에 따라 생성된 필터링된 값들을 포함할 수 있다는 것에 유의해야 한다. 따라서, 각각의 tCP 및 tCQ에 기초하여 pi' 값들 및 qi' 값들을 클리핑하기 위한 기술들은 본 명세서에서 설명된 임의의 필터에 적용가능할 수 있다.
일부 경우들에서, 비디오 블록(예컨대, CU)은 내부 TU 경계들을 포함할 수 있고, 블록킹 아티팩트들은 비디오 블록 내에 나타날 수 있다는 것에 유의해야 한다. 일부 경우들에서, 비디오 블록이 64보다 더 큰 치수를 가질 때, 내부 TU 경계들의 디블록킹은 디스에이블링될 수 있다. 일례에서, 본 발명의 기술들에 따르면, 비디오 블록이 64보다 더 큰 치수를 갖는 경우에도, 디블록킹은 비디오 블록 경계들을 따라 그리고 또한 임의의 내부 TU 경계들을 따라 수행될 수 있다.
도 5a 및 도 5b를 참조하면, 일부 경우들에서, P 블록 또는 Q 블록은 다수의 객체들을 포함할 수 있다. 예를 들어, 도 5a를 참조하면, 일례에서, 열들 p7 내지 p3은 제1 객체에 대응할 수 있고, 열들 p2 내지 p0은 제2 객체에 대응할 수 있고, 열들 q0 내지 q7은 제3 객체에 대응할 수 있다. 그러한 경우에, 열들 p2 내지 p0 내의 샘플들이, 지지 샘플들로서, 하나 이상의 열 p3 및 q0 내지 q3 내의 샘플들을 이용하여 필터링될 때, 열들 p2 내지 p0 내의 생성된 필터 샘플 값들은 블러링(blurring)되어 보일 수 있다. 또한, 일부 경우들에서, 디블록킹은 우세한 샘플 값(들)의 스미어링(smearing)을 리딩할 수 있고/있거나 다른 시각적 아티팩트들을 도입시킬 수 있다.
전술된 바와 같이, 지지 샘플들을 갖는 대응하는 디블록킹된 샘플 값 y[n]은 아래의 수학식에 기초하여 특정될 수 있다:
Figure pct00053
여기서,
필터 길이는 abs(a-b+1)로서 결정됨;
coeff[m]은 필터 탭 값(필터 계수로도 지칭됨)을 제공함;
x[n+ m]은 지지 샘플들에 대응하는 입력 샘플 값들을 제공함.
일례에서, 본 발명의 기술들에 따르면, 개별 객체들이 필터링된 샘플들 및 지지 샘플들 내에 포함됨으로써 야기되는 블러링 또는 아티팩트를 피하기 위해, 하나 이상의 클리핑 동작들이 항 x[n+ m]에 적용될 수 있다. 일례에서, 항 x[n+m]은 Clip3(x[n] - 2* tC, x[n] + 2* tC, x[n+m])으로 대체될 수 있다.
일례에서, 항 x[n+m]은, abs(x[n+m] - x[n])가 임계치보다 크면, 지지 샘플 x[n+m]이 합계로부터 배제되도록 수정될 수 있다. coeff[m]이 평균 분포에 대응하는 경우(즉, coeff[m]= 1/필터 길이, 여기서, 필터 길이는 (abs(a-b+1))과 같음), coeff[m]은 1/(필터 길이-배제된 샘플들)로서 계산됨에 유의해야 한다. coeff[m]가 가우시안 분포(즉,
Figure pct00054
,
여기서, 필터 길이는 abs(a-b+1)와 같음)에 대응하는 경우에 유의해야 한다. 일례에서, 항 x[n+m]은, 임계치보다 큰 abs(x[n+m] - x[n])가 만족되는 모든 지지 샘플 x[n+ m]에 대해, 지지 샘플 x[n+m]의 값이 x[n]의 값으로 대체되도록 수정될 수 있다. 임계 값은 다음 중 하나 이상의 것의 조합에 기초할 수 있다는 것에 유의해야 한다: 사전정의된 값(예컨대, 2 또는 4), 파라미터 세트에서 시그널링된 값, 슬라이스 헤더에서 시그널링된 값, QP 값에 기초한 값(예컨대, 현재 샘플 및/또는 지지 샘플의 QP 값), 및/또는 예측 정보에 기초한 값(예컨대, 현재 샘플 및/또는 지지 샘플의 인트라 예측 모드 및/또는 모션 정보).
일례에서, 상이한 필터들이 경계에 관련하여 상이한 샘플 위치들에 적용될 수 있다. 예를 들어, 경계에 가까운 샘플들은 강한 필터들을 이용하여 필터링될 수 있고, 경계로부터 먼 샘플들은 약한 필터들을 이용하여 필터링될 수 있다. 예를 들어, 열 p0 내지 p1 내의 샘플들은 강한 필터에 따라 필터링될 수 있고, 열 p2 내지 p4 내의 샘플들은 약한 필터에 따라 필터링될 수 있다. 일례에서, 크로마 디블록킹(또는 루마 디블록킹)에 대하여, 임계치(예컨대, 2, 3, 4)는, 현재 샘플과 경계에 가장 가까운 샘플 사이의 위치 거리가 임계치보다 작으면, 강한 필터가 적용되도록 이용될 수 있다. 일례에서, 임계치는 다음 중 하나 이상에 기초할 수 있다: 경계의 각각의 측의 블록 크기(하나 또는 둘 모두); 경계 강도; 경계의 각각의 측의 블록들에 의해 이용되는 예측 모드; 디블록킹되는 샘플의 예측 모드; 디블록킹되는 샘플의 QP; 디블록킹되는 샘플에 대응하는 블록 크기; 디블록킹에 이용되는 샘플들에 대응하는 블록 크기; 디블록킹되는 경계의 각각의 측의 블록들에 대한 모션 벡터들; 디블록킹되는 샘플에 대한 모션 벡터들; 및/또는 디블록킹하는 데 이용되는 샘플에 대한 모션 벡터들.
비디오 코딩의 일부 경우들에서, CU에 대응하는 (예컨대, 양자화 후의) 휘도 변환 계수들은 0일 수 있고, CU는 모션 보상(예컨대, ATMVP)을 위해 서브-PU들로 분할될 수 있음에 유의해야 한다. 그러한 경우에, 본 발명의 기술들에 따르면, 휘도 디블록킹은 일부 예들에서 서브-PU 경계들을 따라 그리고 또한 CU 경계들을 따라 수행될 수 있다.
비디오 코딩의 일부 경우들에서, CU에 대응하는 (예컨대, 양자화 후의) 크로미넌스(chrominance) 변환 계수들은 0일 수 있고, CU는 모션 보상(예컨대, ATMVP)을 위해 서브-PU들로 분할될 수 있음에 유의해야 한다. 그러한 경우에, 본 발명의 기술들에 따르면, 크로미넌스 디블록킹은 일부 예들에서 서브-PU 경계들을 따라 그리고 또한 CU 경계들을 따라 수행될 수 있다.
전술된 바와 같이, ITU-T H.265에서, 루마에 대해, Bs, tC, β, 및 d 각각은 적용할 필터 타입(예컨대, 강한 필터 또는 약한 필터)을 결정하는 데 이용된다. 구체적으로, d가 β보다 작으면, 변수 dStrong은 아래와 같이 결정된다:
d_strong = abs(p3 - p0) + abs(q0 - q3)
강한 필터가 적용되는지 또는 약한 필터가 적용되는지 여부는 아래와 같이 d_strong의 값에 기초하여 결정된다:
- If ((d_strong < (β>>3)) && (d < (β>>2)) && (abs(p0_ q0) < than (5 * tC + 1) >> 1)이면,
- 강한 필터가 적용됨;
- 그렇지 않으면,
- 약한 필터가 적용됨.
일례에서, 본 발명의 기술들에 따르면, dStrong은 아래와 같이 결정될 수 있다:
d_strong = (bSidePisLarge ? max(abs(p0 - p7), max(abs(p3 - p0), abs(p7 - p3))) : abs(p3 -p0)) + (bSideQisLarge ? Max(abs(q0 - q7), max(abs(q3 - q0), abs(q7 - q3))) : abs(q3 - q0));
JEM에서의 디블록킹 필터 구현예들에 관련하여, 다음의 조건들 중 하나가 유효할 때, 루마 디블록킹은 아래에 나타낸 바와 같이 병렬로 수행될 수 없다. 즉, 예를 들어, 디블록킹은 블록의 좌측 수직 경계 및 우측 수직 경계 둘 모두 상에서 병렬로 또는 블록의 상부 수평 경계 및 하부 수평 경계 둘 모두 상에서 병렬로 수행되지 않을 수 있다. 즉, 하나의 경계에 대한 필터링 프로세스가 다른 경계에 대한 필터링 프로세스에 의해 샘플들이 디블록킹되는 것을 수반할 수 있기 때문에, 디블록킹은 2개의 블록 경계들에서 병렬로 수행될 수 없다. 따라서, 블록의 중심에 있는 샘플들은 각각의 대응하는 에지에 있는 디블록킹 필터들 둘 모두에 의해 커버될 수 있다.
If (Cur_EDGE_VER && cur_block_width == 4)이면, 현재 블록 수직 경계들의 병렬 디블록킹이 수행되지 않고;
If (Cur_EDGE_VER && adjacent_block_width == 4)이면, 인접한 블록 수직 경계들의 병렬 디블록킹이 수행되지 않고;
If (Cur_EDGE_HOR && cur_block_height == 4)이면, 현재 블록 수평 경계들의 병렬 디블록킹이 수행되지 않고;
(Cur_EDGE_HOR && adjacent_block_width == 4)이면, 인접한 블록 수평 경계들의 병렬 디블록킹이 수행되지 않는데;
여기서,
Cur_EDGE_VER은 현재 수직 경계이고, Cur_EDGE_HOR은 현재 수평 경계이고, cur_block_width는, 예컨대, 루마 샘플들 내의, 현재 블록 폭이고, cur_block_height는, 예컨대, 루마 샘플들 내의, 현재 블록 높이이고, adjacent_block_width는, 예컨대, 루마 샘플들 내의, 인접한 블록 폭이고, adjacent_block_height는, 예컨대, 루마 샘플들 내의, 인접한 블록 높이이다.
일례에서, 본 발명의 기술들에 따르면, 상기의 조건들 각각에 대하여, 디블록킹은 아래와 같이 경계의 루마 샘플들에서 수행될 수 있다:
If (Cur_EDGE_VER && cur_block_width == 4 && adjacent_block_width > 4)이면, Cur_EDGE_VER에 대해서만, 인접한 블록 샘플들에서 디블록킹을 수행하고;
If (Cur_EDGE_VER && cur_block_width == 4 && adjacent_block_width == 4)이면, Cur_EDGE_VER에 대해서, 디블록킹을 수행하지 않고;
If (Cur_EDGE_VER && cur_block_width > 4 && adjacent_block_width == 4)이면, Cur_EDGE_VER에 대해서만, 현재 블록 샘플들에서 디블록킹을 수행하고;
If (Cur_EDGE_VER && cur_block_width > 4 && adjacent_block_width > 4)이면, Cur_EDGE_VER에 대해서, 현재 블록 샘플들 및 인접한 블록 샘플들에서 디블록킹을 수행하고;
If (Cur_EDGE_HOR && cur_block_height == 4 && adjacent_block_height > 4)이면, Cur_EDGE_HOR에 대해서만, 인접한 블록 샘플들에서 디블록킹을 수행하고;
If (Cur_EDGE_HOR && cur_block_height == 4 && adjacent_block_height == 4)이면, Cur_EDGE_HOR에 대해서, 디블록킹을 수행하지 않고;
If (Cur_EDGE_HOR && cur_block_height > 4 && adjacent_block_height == 4)이면, Cur_EDGE_HOR에 대해서만, 현재 블록 샘플들에서 디블록킹을 수행하고;
If (Cur_EDGE_HOR && cur_block_height > 4 && adjacent_block_height > 4)이면, Cur_EDGE_HOR에 대해서, 현재 블록 샘플들 및 인접한 블록 샘플들에서 디블록킹을 수행한다.
전술된 것과 유사한 방식으로, 크로마 디블록킹에 대하여, 각각의 블록 cur_block_height, adjacent_block_height, cur_block_width, adjacent_block_width가 2의 임계치와 같을 때, 병렬 디블록킹이 제한되는 경우들이 발생한다. 따라서, 본 발명의 기술들에 따르면, 크로마 샘플들에 대하여, 디블록킹은 전술된 바와 같이 수행될 수 있고, 여기서 조건문에서 임계값 4는 2의 임계값으로 대체된다.
일례에서, 본 발명의 기술에 따르면, 임계 값 이하의 치수를 갖는 블록에 대해 에지에서 디블록킹을 수행하지 않는 대신에, 더 좁은 필터가 에지에서 샘플들에 적용될 수 있다. 예를 들어, (Cur_EDGE_VER && cur_block_width == 4 && adjacent_block_width > 4)인 경우에, 디블록킹은 아래와 같이 수행될 수 있다:
Cur_EDGE_VER에 대하여, 필터 폭에 따라 인접한 블록 샘플들에서 디블록킹을 수행하고 현재 블록에 대해 Cur_EDGE_VER의 샘플들의 하나의 인접한 열에서 디블록킹을 수행함.
유사한 방식으로, 더 좁은 필터가 전술된 경우들 각각에 대하여 에지의 샘플들에 적용될 수 있다. 따라서, 대체적으로, 본 발명의 기술들에 따르면, 비디오 인코더(및/또는 비디오 디코더)는, 예를 들어, 중첩하는 디블록킹 필터들(예컨대, 필터 폭이 블록의 폭(또는 높이)의 절반보다 큼)로 인해, 병렬 디블록킹이 제한될 때를 결정하도록, 그리고, 그렇지 않으면 디블록킹될 샘플들을 수정하도록 구성될 수 있다. 일부 경우들에서, 병렬 디블록킹은 디블록킹 지지를 위해 이용되는 샘플들에 기초하여 제한될 수 있음에 유의해야 한다. 본 발명의 기술들에 따르면, 비디오 인코더(및/또는 비디오 디코더)는, 병렬 디블록킹이 블록 내의 샘플들로 제한되는 때를 결정하도록 구성될 수 있고, 다수의 디블록킹 필터들에 대한 디블록킹 지지를 위해 이용될 수 있다.
전술된 바와 같이, F4P P-측 필터에 대하여, 하나의 계산은 다음을 포함한다:
Figure pct00055
q-측의 크기가 8이고 현재 에지의 반대편 에지가 강한 HEVC 필터를 이용하면, 샘플들 q5 및 q6은 반대측에 대한 강한 HEVC 디블록킹 동작에 의해 수정될 수 있음에 유의해야 한다. 서로 평행한 디블록킹 에지(deblocking edge)들에 병렬 프로세싱이 일어날 수 없다. 일례에서, 이를 방지하기 위해, p-측은, (에지에 수직한) q-측 길이가 16 이상인 경우에만, 긴 필터들(즉, 더 강한 필터들)을 이용하여야 한다. 이 조건(예컨대, LargeBlk 조건)은 아래의 방식들 중 하나로 확인된다:
LargeBlk 조건: (에지의 양 측들이 에지에 수직한 >= 16의 길이를 가짐) ? TRUE : FALSE;
LargeBlk 조건: (에지의 양 측들이 에지에 수직한 >= 32의 길이를 가짐) ? TRUE : FALSE;
OR
LargeBlk 조건: (에지의 큰 블록 측이 에지에 수직한 >= 32의 길이를 가짐 AND 에지의 다른 블록 측이 에지에 수직한 >= 16의 길이를 가짐)) ? TRUE: FALSE. 모두의 블록 크기 길이가 동일할 때, 둘 모두가 >= 32일 것을 요구할 것임에 유의해야 함. 더 넓고-더 강한 필터들은 길이가 >= 32 인 측에 대해서만 이용됨.
일례에서, 본 발명의 기술들에 따르면, 디블록킹 필터들의 세트는 쌍일차(bilinear) 동작을 이용할 수 있다. 일례에서, i = 0 내지 S-1에 대한 블록 경계 샘플들 pi 및 qi는 아래와 같이 선형 보간법에 의해 대체된다.
pi' =(fi *Middles,t + (64 - fi) * Ps + 32)>> 6), pi ± tC에 클리핑됨
qi' = (gi * Middles,t + (64 - gi) * Qt + 32) >> 6), qi± tC에 클리핑됨
일례에서, fi, Middles,t, Ps, gi, 및 Qt는 표 1에 제공된 바와 같이 결정될 수 있다.
[표 1]
Figure pct00056
표 1과 관련하여, 7,5; 7,3; 5,3; 5,7; 및 3,7에 대해서, Middle에 대한 pi 및 qi의 가중치들은 동일하지 않고 추가적인 항들을 추가함으로써 7,7로부터 유도된다.
일례에서, 본 발명의 기술들에 따르면, 디블록킹 필터들의 세트는, 한 측이 32 이상이면, 쌍일차 동작을 이용할 수 있다.
일례에서, 기술들에 따르면, 한 측이 32 이상일 때, 쌍일차 디블록킹이 표 2에 제공된 바와 같이 수행될 수 있다.
[표 2]
Figure pct00057
일례에서, 기술들에 따르면, 한 측이 32 이상일 때, 쌍일차 디블록킹이 표 3에 제공된 바와 같이 수행될 수 있다.
[표 3]
Figure pct00058
일례에서, 기술들에 따르면, 한 측이 32 이상일 때, 쌍일차 디블록킹이 표 4에 제공된 바와 같이 수행될 수 있다.
[표 4]
Figure pct00059
일례에서, 기술들에 따르면, 한 측이 32 이상일 때, 쌍일차 디블록킹이 표 5에 제공된 바와 같이 수행될 수 있다.
[표 5]
Figure pct00060
일례에서, 기술들에 따르면, 한 측이 32 이상일 때, 쌍일차 디블록킹이 표 6에 제공된 바와 같이 수행될 수 있다.
[표 6]
Figure pct00061
일례에서, 기술들에 따르면, 한 측이 32 이상일 때, 쌍일차 디블록킹이 표 7에 제공된 바와 같이 수행될 수 있다.
[표 7]
Figure pct00062
일례에서, 본 발명의 기술들에 따르면, 한 측이 16 이상이면, 디블록킹 필터들의 세트는 쌍일차 동작을 이용할 수 있다. 그러한 경우에, 표 2 내지 표 7에서, 32는 16으로 대체될 수 있다. 표 5, 표 6, 및 표 7에 대한 일례에서, P-측 길이가 Q-측 길이와 같지 않은 행들의 마지막 열(s, t)은 (3,3),(5,5),(3,3) 각각의 필터링을 이용할 수 있다. 일례에서, 디블록킹 필터들의 세트가 쌍일차 동작을 이용하는지 여부는, 강한 필터 조건이 참인지 여부에 추가로 영향을 받을 수 있다. 예를 들어, 임의의 강한 필터 조건들이 전술되어 있다. 일례에서, 디블록킹 필터들의 세트가 쌍일차 동작을 이용하는지 여부는 추가적으로 아래와 같이 영향을 받을 수 있다:
변수들 dpq0, dpq3, dp, dq, 및 d 는 아래와 같이 유도됨:
Figure pct00063
이어서,
if (p 측이 16 이상)이면
Figure pct00064
if (q 측이 16 이상)이면
Figure pct00065
Figure pct00066
d가 β보다 작을 때, 아래의 순서화된 단계들이 적용됨:
변수 dpq는 2*dpq0와 같게 설정됨.
sp3 = Abs(p3 - p0)
if (p 측이 16 이상)이면
sp3 = (sp3 + abs(p7 - p3) + 1) >> 1
sq3 = abs(q3 - q0)
if (q 측이 16 이상)이면
sq3= (sq3+ abs(q7 - q3) + 1) >> 1
StrongFilterCondition = (dpq가 (β>> 2)보다 작고, sp3 + sq3이 (β>> 3)보다 작고, abs(p0 - q0)가 (5 * tC + 1) >> 1보다 작음) ? TRUE : FALSE
일부 예들에서, 루마 및 크로마에 대한 제어 파라미터 값들(예컨대, β, tC 등)은 동일하지 않고 신택스 요소들의 상이한 세트를 이용하여 시그널링될 수 있고; 크로마에 대한 제어 파라미터 값들은 루마에 대한 제어 파라미터 값들로부터 유도될 수 있고; 디블록킹은 8x8(루마) 및 4x4(크로마) 경계와 정렬된 서브-PU 에지들 상에서만 수행될 수 있고; 현재 블록의 에지들의 디블록킹은 선형 모델(linear model, LM) 크로마의 이용에 기초할 수 있고; 현재 블록의 에지들의 디블록킹은 개별 분할 트리들의 이용에 기초할 수 있고; 현재 블록의 에지들의 디블록킹은 펄스 코드 변조(PCM)의 이용에 기초할 수 있고; 그리고/또는 현재 블록의 에지들의 디블록킹은 변환 양자화 바이패스 모드(transform quantization bypass mode)의 이용에 기초할 수 있다는 것에 유의해야 한다. PCM은 샘플들의 블록에 대한 무손실 코딩 모드임에 유의해야 한다. PCM 코딩의 예에서, 샘플들은 사전정의된 개수의 비트들에 의해 직접 표현된다. PCM에 이용되는 비트 깊이는 파라미터 세트(들)에서 시그널링될 수 있다.
현재 블록의 에지들의 디블록킹이 LM 크로마의 이용에 기초한다는 것 및/또는 현재 블록의 에지들의 디블록킹이 개별 분할 트리들의 이용에 기초할 수 있다는 것에 관련하여, 일례에서, 디블록킹은, LM 크로마가 크로마 블록에 대해 이용되고/되거나 개별 트리들이 루마 및 크로마에 대해 이용되고/되거나 수신된 변환 계수들이 0일 때, 현재 블록의 에지들에서 수행될 수 있다. 일례에서, 개별 트리들에 관련하여, 디블록킹은 4x4 크로마 그리드와 일치하는 크로마 에지(예컨대, TU 에지들, PU 에지들, 서브-PU 에지들, CU 에지들)에서만 수행될 수 있다.
일례에서, 큰 블록 조건이 참이 아니고 강한 필터 조건이 참이면, NS00P 및 NS00Q가 에지를 디블록킹하기 위해 이용된다.
일례에서, 큰 블록 조건이 참이 아니고 강한 필터 조건이 참이면, (s, t)= 3,3 필터들이 에지를 디블록킹하는 데 이용된다.
일부 경우들에서, 디블록킹 경계는 수평 CTU 경계를 포함할 수 있음에 유의해야 한다. 예를 들어, 도 5b를 참조하면, 일부 경우들에서, 샘플들 py,x는, 샘플들 qy,x를 포함하는 CTU 위에 있는 CTU 내에 포함될 수 있다. 현재 CTU 내의 상부 라인을 코딩하기 위해, 전형적인 비디오 코더 구현예는 현재 CTU 위의 CTU의 하부 라인들 내의 N개의 행들의 샘플들을 저장한다. 예를 들어, 도 5b에서의 디블록킹 경계가 CTU 경계인 경우에, 비디오 코더는 라인 qx,0의 인트라 예측 코딩을 수행하기 위한 값들 px,0을 저장한다. CTU 라인 버퍼는 현재 CTU를 코딩하기 위해 저장된 현재 CTU 위의 샘플 값들의 라인들을 참조한다. CTU 라인 버퍼 내에 포함된 라인들의 개수가 증가함에 따라, 비디오 코더 구현예의 메모리 비용이 증가한다. 일부 경우들에서, 샘플 값들에 대응하는 데이터(예컨대, 예측 모드(및 연관된 정보, 예컨대, 인트라 예측 모드, 바이-프레드(bi-pred)/유니-프레드(uni-pred), 모션 벡터들, 기준 인덱스 등), 블록 크기, 계수 코딩 플래그들 등)가 또한 저장된다는 것에 유의해야 한다. 따라서, 구현 비용의 증가를 피하기 위하여, 디블록킹을 수행할 목적으로만 CTU 라인 버퍼 내에 포함되는 라인들의 개수를 증가시키는 것을 피하는 것이 바람직하다. 예를 들어, 제안된 비디오 코딩 표준의 모든 코딩 특징들이 CTU 라인 버퍼가 샘플 값들의 4개의 라인들을 저장하는 것을 필요로 하면, CTU 라인 버퍼가 샘플 값들의 7개의 라인들을 저장하도록 증가될 것을 필요로 하는 디블록킹 필터는 구현 비용을 증가시킬 것이다.
전술된 바와 같이, JEM은, JVET에 의한 조정된 테스트 모델 연구 하에 있는 코딩 특징들을, ITU-T H.265의 능력들을 넘어서 비디오 코딩 기술을 잠재적으로 향상시키는 것으로서 설명한다. 또한, VCEG 및 MPEG에 의해 공동으로 발표된 "Joint Call for Proposals on Video Compression with Capabilities beyond HEVC"에 대하여, 2018년 4월 16일 내지 20일에 캘리포니아 샌디에이고에서 열린 ISO/IEC JTC1/SC29/WG11의 제10차 회의에서 비디오 코딩에 대한 여러 설명들이 다양한 그룹들로부터 제안되었다. 비디오 코딩에 대한 여러 설명의 결과로서, 비디오 코딩 규격의 초안이 문헌["Versatile Video Coding (Draft 1)," 10th Meeting of ISO/IEC JTC1/SC29/WG11 16-20 April 2018, San Diego, CA, document JVET-J1001-v2]에 설명되어 있으며, 이는 참고로 본 명세서에 통합되고, JVET-J1001로 지칭된다.
문헌["Versatile Video Coding (Draft 2)," 11th Meeting of ISO/IEC JTC1/SC29/WG11 10-18 July 2018, Ljubljana, SI, document JVET-K1001-v4]은 참조로 본 명세서에 통합되고, JVET-K1001로 지칭되고, JVET-J1001의 업데이트이다. JVET-J1001 및 JVET-K1001 각각에서 제안된 기술들은 테스트 모델(VTM) 및 벤치마크 세트(BMS)를 이용하여 구현 및 평가되고 있다. BMS 내의 기존의 디블록킹 필터는 에지들에 수직한 최대 3개의 샘플들을 수정한다.
본 명세서에서 JVET-K0369로 지칭되는 문헌["CE2-related: Longer Tap Deblocking Filter," 11th Meeting of ISO/IEC JTC1/SC29/WG11 10-18 July 2018, Ljubljana, SI, document JVET-K0369-r3]은 디블록킹되는 에지들에 수직한 최대 7개의 샘플들을 수정하는 디블록킹 필터를 설명한다. 또한, CTU 라인 버퍼 크기를 제한하기 위해, JVET-K0369에 설명된 필터는 CTU 경계들과 중첩하는 수평 에지에 대한 필터링 동작들을 제한한다. 구체적으로, JVET-K0369는 표 8A에 따라 샘플 값을 수정하고, CTU 경계들과 중첩하는 수평 에지들에 대해, 디블록킹 필터가 표 8B에 나타낸 바와 같이 수정되는 곳을 제공하는 디블록킹 필터를 설명한다.
[표 8A]
Figure pct00067
[표 8B]
Figure pct00068
CTU 경계들과 중첩하는 수평 에지들에 대한, JVET-K0369에 제공되는, 디블록킹 필터를 수정하는 것은 크로마 샘플 값들에 대한 라인 버퍼 요건들을 감소시키지 않는다는 것에 유의해야 한다. 또한, 표 8B에 나타낸 바와 같이, p7 내지 p4에 대한 "제로 아웃(zeroing out)" 필터 계수들 이외에, 필터 계수 값들은 p3 내지 q7에 대해 변한다. 따라서, JVET-K0369는 CTU 경계들을 필터링하는 데 이용될 추가적인 필터 세트들을 저장하는 것을 필요로 하며, 이는 계수들을 저장하기 위한 추가적인 메모리를 필요로 한다.
일례에서, 본 발명의 기술들에 따르면, px,0 내지 px,i로부터 적어도 3개 이상의 라인들을 포함하는 필터 지지부를 수정하고/하거나 갖는 필터를 포함할 수 있는 긴 탭 필터의 이용이 제한될 수 있다. 일례에서, 루마 및/또는 크로마 디블록킹에 대해, 다음의 조건이 충족되면(EDGE_TYPE은 EDGE_HOR && 현재 경계가 CTU 경계와 정렬), 긴 탭 필터는 측면 P에 적용되지 않고, 여기서 EDGE_TYPE은 EDGE_HOR이고, 이는 현재 경계가 수평 경계임을 나타낸다. 일례에서, 루마 및/또는 크로마 디블록킹에 대하여, 다음의 조건이 충족되면(EDGE_TYPE은 EDGE_HOR && 루마 샘플들 내의 curPos.y % CTUSize == 0), 긴 탭 필터는 P에 적용되지 않고, 여기서 curPos.y는 디블록킹될 현재 블록의 수직 루마 위치이다. 일례에서, 루마 및/또는 크로마 디블록킹에 대해, 다음의 조건이 충족되면(EDGE_TYPE은 EDGE_HOR && 크로마 샘플들 내의 curPosC.y % CTUSize == 0), 긴 탭 필터는 P에 적용되지 않고, 여기서 curPosC.y는 디블록킹될 현재 블록의 수직 크로마 위치이다. 일례에서, 루마 및/또는 크로마 디블록킹에 대해, 다음의 조건이 충족되면(EDGE_TYPE은 EDGE_HOR && 현재 경계가 CTU 경계와 정렬), 긴 탭 필터는 측면 Q 및 측면 P에 적용되지 않는다. 일례에서, 루마 및/또는 크로마 디블록킹에 대해, 다음의 조건이 충족되면(EDGE_TYPE은 EDGE_HOR && 루마 샘플들 내의 curPos.y % CTUSize == 0), 긴 탭 필터는 측면 Q 및 측면 P에 적용되지 않는다. 일례에서, 루마 및/또는 크로마 디블록킹에 대해, 다음의 조건이 충족되면(EDGE_TYPE은 EDGE_HOR && 크로마 샘플들 내의 curPosC.y % CTUSize == 0), 긴 탭 필터는 측면 Q 및 측면 P에 적용되지 않는다. 일례에서, 긴 탭 필터가 적용되지 않을 때, 더 적은 샘플들을 수정하고/하거나 px,0 내지 px,i의 더 적은 라인들(예컨대, 1개, 2개, 또는 3개의 라인들)을 활용하는 필터 지지부를 포함하는 다른 필터가 적용된다. 예를 들어, 긴 탭 필터가 적용되도록 허용되지 않는 경우에, 본 명세서에서 설명된 약한 또는 강한 필터들이 적용될 수 있다. ITU-T H.265에서 제공되는 바와 같이, % 피연산자는 x를 y로 나눈 나머지를 제공하는 나머지 피연산자라는 것에 유의해야 한다.
일례에서, 긴 탭 필터가 적용되지 않을 때, 타깃 라인 버퍼 임계치(예컨대, 3 또는 4)를 초과하는 샘플 값들은 이용 불가능할 수 있고, 대응하는 샘플 위치들에 대해 사전 결정된 값들이 이용될 수 있다. 표 9는, 긴 탭 필터가 표 8A에 관하여 전술된 긴 탭 필터를 포함하고 타깃 라인 버퍼 임계치가 4인 예를 나타낸다. 따라서, p4 내지 p7에 대한 샘플 값은 이용 불가능하다. 표 9에 나타낸 바와 같이, p4 내지 p7에 대한 값들은 디블록킹을 위해 수정되지 않는다. 또한, 표 9에 나타낸 바와 같이, p4 내지 p7 필터 계수들은 NA로 표시되며, 이는 p4 내지 p7 각각에 대한 샘플 값이 라인 버퍼 내에서 이용 불가능함을 나타낸다. 일례에서, p4 내지 p7 각각에 대해, 샘플 값은 p3의 샘플 값으로 설정될 수 있고, 표 8A 내의 필터 계수들은 p3' 내지 q2'에 대한 수정된 샘플 값을 유도해내는 데 이용될 수 있다.
[표 9]
Figure pct00069
또한, 일례에서, 이용가능한 샘플 값들로부터 유도된 값들이 대응하는 샘플 위치들에 대해 이용될 수 있다. 일례에서, p4 내지 p7 각각에 대해, 샘플 값은 p3 및 p2의 평균 샘플 값으로 설정될 수 있고, 표 8A 내의 필터 계수들은 p3' 내지 q2'에 대한 수정된 샘플 값을 유도해내 데 이용될 수 있다.
일례에서, 긴 탭 필터가 적용되지 않을 때, 필터링 프로세스는 디블록킹되는 샘플의 위치에 기초하여(예컨대, 샘플 값이 CTU 수평 경계 위에 있는지 OR CTU 수평 경계의 소정 거리 내에 있는지에 기초하여) 수정될 수 있고, 타깃 라인 버퍼 임계치를 초과하는 샘플들에 액세스/디블록킹하지 않는 대응하는 필터가 선택될 수 있다. 예를 들어, 표 9에 나타낸 예에 관련하여, p3' 및 p2'에 대해, p4 내지 p7에 대한 샘플 값들을 유도해내는 것으로부터 상이한 규칙들이 적용될 수 있다.
일례에서, 긴 탭 필터가 적용되지 않을 때, 제어 프로세스는 디블록킹되는 샘플의 위치에 기초하여 수정될 수 있고, 타깃 라인 버퍼 임계치를 초과하는 샘플들에 액세스/디블록킹하지 않는 대응하는 필터가 선택될 수 있다. 예를 들어, 루마에 대한 표 1의 (s=3, t=7) 필터, 루마에 대한 표 1의 (s=3, t=5) 필터, 루마에 대한 F1P, 및/또는 크로마에 대한 크로마 약한 필터가 선택될 수 있다.
일례에서, 긴 탭 필터가 적용되지 않을 때, 디블록킹 그리드가 변하여, 타깃 라인 버퍼 임계치를 초과하는 샘플들이 액세스/디블록킹되지 않게 할 수 있다. 예를 들어, 디블록킹 그리드는, 수평 에지가 수평 CTU 에지 아래로 4의 거리에 있도록 이동될 수 있다.
전술된 바와 같이, ITU-T H.265에서, 비디오 블록들 P 및 Q를 포함하는 CB들을 코딩하는 데 이용되는 QP 값들(이들은 QPP 및 QPQ로 지칭될 수 있음)에 기초하여, 변수들 tC' 및 β'이 결정된다. 루마 채널에 대한 인덱스 Q의 유도는 전술되어 있다. 크로마 채널에 대하여, ITU-T H.265는 크로마가 4:2:0과 같은지 여부를 제공하고, 변수 QpC는 아래와 같이 인덱스 qPi에 기초하여 도 13에 나타낸 표에 특정된 바와 같이 결정된다:
Figure pct00070
여기서,
cQpPicOffset은 픽처-레벨 크로마 양자화 파라미터 오프셋을 특정하는 변수이고,
Cb에 대해 cQpPicOffset = pps_cb_qp_offset이고,
Cr에 대해 cQpPicOffset = pps_cr_qp_offset임.
ITU-T H.265에서, 크로마 포맷이 4:2:2 또는 4:4:4와 같으면, QpC는 Min(qPi, 51)과 같게 설정된다는 점에 유의해야 한다.
크로마에 대하여, tC'은 도 6에 도시된 표 및 tC'에 대해 아래와 같이 결정된 인덱스 Q를 이용하여 결정된다:
Figure pct00071
JVET-J1001 및 JVET-K1001 각각에 제안된 기술들은, 루마 채널 및 크로마 채널을 분할하기 위해 개별 분할 트리들이 이용될 수 있는 경우를 제공한다. 개별 분할 트리들이 루마 채널 및 크로마 채널을 분할하기 위해 이용되는 경우에, 크로마 채널에 대한 QP 값이 루마 채널에 대한 QP 값에 관련하여 변경될 수 있는 양을 증가시키는 것이 유용할 수 있다. 즉, 예를 들어, 크로마 채널의 각각의 성분에 대해, 슬라이스 레벨 상에서 시그널링될 수 있는, 각각의 QP 오프셋 값들이 증가될 수 있다. ITU-H. 265는 다음의 크로마 채널 QP 오프셋 신택스 요소들을 제공한다는 점에 유의해야 한다: pps_cb_qp_offset 및 pps_cr_qp_offset은 각각 Qp'Cb 및 Qp'Cr을 유도하기 위해 이용되는 루마 양자화 파라미터 Qp'Y에 대한 오프셋들을 특정한다. pps_cb_qp_offset 및 pps_cr_qp_offset의 값들은 -12 내지 +12의 범위(종점 포함) 내에 있을 것이다. ChromaArrayType이 0과 같을 때, pps_cb_qp_offset 및 pps_cr_qp_offset은 디코딩 프로세스에서 이용되지 않고, 디코더들은 그들의 값을 무시할 것이다.
slice_cb_qp_offset은, Qp'Cb 양자화 파라미터의 값을 결정할 때 pps_cb_qp_offset의 값에 가산될 차이를 특정한다. slice_cb_qp_offset의 값은 -12 내지 +12의 범위(종점 포함) 내에 있을 것이다. slice_cb_qp_offset이 존재하지 않을 때, 그것은 0과 같을 것으로 추론된다. pps_cb_qp_offset + slice_cb_qp_offset의 값은 -12 내지 +12 범위(종점 포함) 내에 있을 것이다.
slice_cr_qp_offset은, Qp'Cr 양자화 파라미터의 값을 결정할 때 pps_cr_qp_offset의 값에 가산될 차이를 특정한다. slice_cr_qp_offset의 값은 -12 내지 +12의 범위(종점 포함) 내에 있을 것이다. slice_cr_qp_offset이 존재하지 않을 때, 그것은 0과 같을 것으로 추론된다. pps_cr_qp_offset + slice_cr_qp_offset의 값은 -12 내지 +12 범위(종점 포함) 내에 있을 것이다.
디블록킹 파라미터들이 QP 값에 기초하는 경우에, 크로마 QP 값들의 유도에 대한 변화들은 크로마 채널 디블록킹을 수행할 수 있다. 본 발명의 기술들에 따르면, QP 값(들)에 기초한 디블록킹 파라미터들의 유도는, 예컨대, 개별 분할 트리들이 루마 채널 및 크로마 채널을 분할하기 위해 이용될 수 있는 경우들에 수정될 수 있다.
본 발명의 기술들에 따른 일례에서, cQpPicOffset은 아래와 같이 유도될 수 있다:
Cb에 대해 cQpPicOffset = pps_cb_qp_offset + slice_cb_qp_offset, 그리고
Cr에 대해 cQpPicOffset = pps_cr_qp_offset + slice_cr_qp_offset
일례에서, CU 레벨 크로마 QP 오프셋 값은 (예컨대, 팔레트(palette) 모드 코딩 동안) 시그널링될 수 있다. 디블록킹에 이용되는 크로마 QP 유도는 CU 레벨 크로마 QP 오프셋을 이용할 수 있다. 예를 들어, 변수들 CuQpOffsetCb 및 CuQpOffsetCr이 Cb 및 Cr 오프셋을 표현하면, 크로마 QP 오프셋은 아래와 같이 유도될 수 있다:
Cb에 대해 cQpPicOffset = pps_cb_qp_offset + slice_cb_qp_offset + CuQpOffsetcb
Cr에 대해 cQpPicOffset = pps_cr_qp_offset + slice_cr_qp_offset + CuQpOffsetcr
일부 경우들에서, 추가적인 루마 및 크로마 QP 오프셋 값은 일정 타입의 프로세싱(예컨대, 적응적 컬러 변환)을 겪는 블록들에 대해 이용될 수 있다. 이들 QP 오프셋들은 루마 및 크로마에 대한 QP를 유도하기 위해 이용될 수 있다. 그 결과, 디블록킹 프로세스들은 추가적인 루마 및 크로마 QP 오프셋들에 의존할 수 있다.
일부 예들에서, 개별 분할 트리들이 루마 채널 및 크로마 채널을 분할하기 위해 이용될 때, 크로마 QP 값은 분할 트리 타입에 기초하여 계산될 수 있다. 예를 들어, 일례에서, 크로마 QP 값은 아래와 같이 결정될 수 있다:
qPi = ((Qpbik _Q + Qpblk _P + 1) >> 1) + cQpPicOffset
여기서, Qpblk _P, Qpbik _Q는 각각 P-측의 크로마 블록 및 Q-측의 크로마 블록에 대응하는 루마 양자화 파라미터들이다.
일례에서, Qpblk _P 및/또는 Qpbik _Q는 다음 중 하나 이상의 것의 조합으로부터 유도될 수 있다: 다수의 대응하는 루마 블록들의 QP 값들; 크로마 블록에 대응하는 루마 블록의 샘플들의 개수; 사전 결정된 크로마 위치에 대응하는 루마 QP 값. 일부 예들에서, Qpblk_P 및/또는 Qpbik_Q는, 예를 들어, 반올림 함수, 최대값 함수를 이용한 정수 평균화와 같은 함수를 이용하여 유도될 수 있다. 크로마 블록에 대응하는 부분적인 루마 블록을 갖는 것이 가능하다는 것에 유의해야 한다. 도 14a 및 도 14b는 크로마 블록들 P 및 Q에 대응하는 가능한 루마 분할들의 예들을 도시하고, 루마 블록들 각각은 QP 값들 QP_X를 가진다. 도 14a에 도시된 예에서, 크로마 블록 P는 QP 값들 QP_1 및 QP_3을 가진 루마 블록들과 병치되고, 크로마 블록 Q는 QP 값들 QP_2 및 QP_4를 가진 루마 블록들과 병치된다. 도 14b에 도시된 예에서, 크로마 블록 P는 QP 값들 QP_1, QP_3, 및 QP_5를 갖는 루마 블록들과 병치되고, 크로마 블록 Q는 QP 값들 QP_2 및 QP_4를 갖는 루마 블록들과 병치된다. 일례에서, 도 14a에 도시된 예에 대하여, Qpblk_P 및 Qpbik_Q는 아래와 같이 유도될 수 있다:
Figure pct00072
일례에서, 도 14b에 도시된 예에 대하여, Qpblk_P 및 Qpbik_Q는 아래와 같이 유도될 수 있다:
Figure pct00073
일례에서, Qpblk_P 및/또는 Qpbik_Q는, 한 세트의 크로마 위치들을 식별하고, 각각의 크로마 위치에 대해, 대응하는 루마 위치들을 식별함으로써 유도될 수 있다. 각각의 대응하는 루마 위치에 대해, 대응하는 QP 값이 결정될 수 있다. 대응하는 QP 값들은 Qpblk_P 및/또는 Qpbik_Q를 유도하기 위해 이용될 수 있다.
전술된 바와 같이, 일례에서, 더 넓고 강한 필터 조건은 제1 조건 및 제2 조건 둘 모두가 참인지 여부를 포함할 수 있으며, 여기서, 제1 조건은 d < β일 때 참일 수 있고, 여기서, d는 아래와 같이 결정된다:
Figure pct00074
여기서,
RC[N]은, 디블록킹되는 에지에 수직하고, 디블록킹되는 현재 크로마 세그먼트의 상부로부터 거리 N에 있는 크로마 라인들에 대응하고; 일례에서, 필터 조건은 d < β일 시에 참인 조건을 포함할 수 있고, 여기서, d는 아래와 같이 결정된다:
Figure pct00075
일부 예들에서, 조건은 크로마 디블록킹 경계의 x개의 샘플 세그먼트들(예컨대, x= 2)에 대해 확인될 수 있다. 이는, 최악의 경우에 기울기가 계산될 필요가 있는 라인들의 개수를 감소시킨다. 최악의 경우에 있어서, 제1 조건은 기울기들(모든 라인에 대한 xCalcDQP)을 계산할 것인 반면, 위의 조건은 2개의 라인들마다 한 번의 기울기들을 계산할 것임에 유의해야 한다.
전술된 바와 같이, ITU-T H.265, 변수들 β 및 tC는 필터링 결정들 및 클리핑 동작들에 이용된다. 예를 들어, β 및/또는 tC는, 강한 필터가 이용되는지 여부를 결정하고/하거나 필터링된 샘플 값들을 클리핑하는 데 이용된다. JVET-K1001에서 피크 신호 대 잡음비(peak signal to noise ratio, PSNR)는 ITU-T H.265와 비교하여 주어진 양자화 레벨보다 더 높다는 것에 유의해야 한다. 따라서, 일부 경우들에서, 디블록킹 강도를 수정하기 위해 β 및/또는 tC를 수정하는 것이 유용할 수 있다. 즉, 주어진 양자화 레벨에서의 왜곡의 레벨이 낮으면, 인지된 블록성의 양은 더 낮고, 따라서 디블록킹이 덜 필요로 된다. 일례에서, β는 다음과 같이 수정될 수 있다: β = β << n. 일례에서, β는 다음과 같이 수정될 수 있다: β = β >> n. 일례에서, tC는 다음과 같이 수정될 수 있다: tC = tC << n. 일례에서, tC는 다음과 같이 수정될 수 있다: tC = tC >> n. 일례에서, n은 다음 중 하나 이상의 것의 조합에 기초하여 결정될 수 있다: 슬라이스 타입, QP 값, 블록 크기, 비트 깊이, 인트라 예측 모드, 모션 벡터들(예컨대, 크기), 채널 타입, 및/또는 성분 타입. 예를 들어, 일례에서, tC = tC >> 2는 인트라 슬라이스들에 대해 이용될 수 있고, tC = tC >> 4는 인터 슬라이스들에 대해 이용될 수 있다. 일례에서, tC = tC >> 2는 루마 성분에 대해 이용될 수 있고, tC = tC >> 4는 크로마 성분들에 대해 이용될 수 있다.
본 명세서에서 JVET-K0307로 지칭되는 문헌["CE2-2.1.1: Long deblocking filters and fixes," 11th Meeting of ISO/IEC JTC1/SC29/WG11 10-18 July 2018, Ljubljana, SI, document JVET-K0307-vl]은 루마 성분에 대한 결정들 및 긴 필터들을 설명한다. 전술된 필터링 기술들에 기초하여, JVET-K0307에서의 필터링 기술들은 긴 비대칭 필터들의 이용을 가능하게 하도록 수정될 수 있다. 긴 비대칭 필터들에 대하여, 더 큰 블록 측에서 디블록킹된 샘플들의 개수는 더 작은 블록 측에서 디블록킹된 샘플들의 개수보다 많다. 이러한 확장된 필터 세트로부터 선택하기 위한 디블록킹 결정 프로세스들은 하기에서 상세히 설명되어 있다. 확장된 필터 세트는 디블록킹 전체에 걸쳐 강한 디블록킹을 위해 이용될 수 있다.
일례에서, 본 발명의 기술들에 따르면, 한 측이 큰 블록을 갖고 수정된 강한 필터 조건이 충족될 때, 루마 더 강한 필터들이 이용된다. 일례에서, 루마 큰 블록은 수직 에지에 대해 폭 >= 32, 및 수평 에지에 대해 높이 >= 32에 대응한다.
일례에서, 루마 더 강한 필터는 아래와 같이 정의될 수 있다:
이어서, i= 0 내지 S-1에 대한 블록 경계 샘플들 pi 및 qi는 아래와 같이 선형 보간법에 의해 대체된다:
.'=+ * +32) >> 6), ± tC에 클리핑됨
.'=+ * +32) >> 6), ± tC에 클리핑됨
여기서, f_i, Middle_s,t, P_s, 및 Q_s는 하기 표 10에 주어져 있다:
[표 10]
Figure pct00076
일례에서, 제어 프로세스는 4개의 샘플 세그먼트들의 2개의 라인들에 대해 계산된 기울기들; 절대 픽셀 값 차이와 tC의 비교; 및 다른 절대 픽셀 값 차이들과 β의 비교에 또한 기초한다. 큰 블록 측에 대해서는 더 많은 기울기들이 계산된다. 제어 프로세스는 아래와 같을 수 있다:
1. 변수들 dpq0, dpq3, dp, dq, 및 d가 아래와 같이 유도됨:
dp0, dp3, dq0, dq3이 우선 ITU-T H.265에서와 같이 유도됨
이어서, dpq0, dpq3, dp, dq, d가 ITU-T H.265 에서와 같이 유도됨
ITU-T H.265에서와 같이, d가 6보다 작을 때, 아래의 순서화된 단계들이 적용됨:
a. dpq가 ITU-T H.265에서와 같이 유도됨
b. sp3 = Abs(p3 - p0), ITU-T H.265에서와 같이 유도됨
if (p 측이 32 이상)이면
sp3 = (sp3 + Abs(p7 - p3) + 1) >> 1
c. sp3 = Abs(q0 - q3), ITU-T H.265에서와 같이 유도됨
if (q 측이 32 이상)이면
sq3 = (sq3 + Abs(q7 - q3) + 1)>> 1
d. ITU-T H.265에서와 같이 유도됨, StrongFilterCondition = (dpq가 (β>> 2)보다 작고, sp3 + sq3이 ((p 또는 q측이 32 이상) ? (3* β>> 5) : (β>> 3))보다 작고, Abs(p0 - q0)가 (5 * tC + 1) >> 1보다 작음) ? TRUE : FALSE
e. if (p 측 또는 q 측이 32 이상)이면
dSpl, dSp2를 Abs(p3 - p0)로 설정함
dSql, dSq2를 Abs(q3 - q0)로 설정함
if (q 측이 32 이상)이면
dSql = abs(q4 - 2 * q2 + q0)
dSq2 = abs(q6 - 2 * q3 + q0)
if (p 측이 32 이상)이면
dSp1 = abs(p4 - 2 * p2 + p0)
dSp2 = abs(p6 - 2 * p3 + p0)
d_strongl 및 d_strong2를 아래와 같이 계산함:
d_strong1= dSp1+dSq1
d_strong2= dSp2+dSq2
StrongFilterCondition = (StrongFilterCondition && ((d_strongl < ((3 * beta) >> 5)) && (d_strong2 < ((3 * beta) >> 5)))) ? TRUE : FALSE를 계산함
f. StrongFilterCondition이 참일 때, 루마 더 강한 필터(에지 경계에서의 블록-크기들에 기초하여 선택될 수 있음)를 이용함
일례에서, 제어 프로세스는 아래와 같을 수 있다:
변수들 dpq0, dpq3, dp, dq, 및 d는 아래와 같이 유도됨:
dp0, dp3, dq0, dq3이 우선 ITU-T H.265에서와 같이 유도됨
그 후, dpq0, dpq3, dp, dq, d가 ITU-T H.265 에서와 같이 유도됨
ITU-T H.265에서와 같이, d가 p보다 작을 때, 아래의 순서화된 단계들이 적용됨:
dpq는 ITU-T H.265에서와 같이 유도됨
sp3 = Abs(p3 - p0), ITU-T H.265에서와 같이 유도됨
if (p 측이 32 이상 && q 측이16 이상)
sp3 = (sp3 + Abs(p7 - p3) + 1) >> 1
sq3 = Abs(q0 - q3), ITU-T H.265에서와 같이 유도됨
if (q 측이 32 이상 && p 측이16 이상)
sq3 = (sq3 + Abs(q7 - q3) + 1)>> 1
ITU-T H.265에서와 같이 유도됨, StrongFilterCondition = (dpq가 (β >> 2)보다 작고, sp3 + sq3이 (((p 측이 32 이상 && q 측이16 이상)) OR (q 측이 32 이상 && p 측이16 이상)) ? (3*β >> 5) : (β >> 3))보다 작고, Abs(p0 - q0)가 (5 * tC + 1) >> 1보다 작음) ? TRUE : FALSE
조건(p 측이 32 이상 && q 측이16 이상) 및 조건(q 측이 32 이상 && p 측이16 이상)은 루마 더 강한 필터가 적용될 수 있는지 여부를 결정한다는 것에 유의해야 한다. 다른 예들에서, 추가적인 조건들(예컨대, 하나 이상의 선행 조건들)이, 루마 더 강한 필터가 적용될 수 있는지 여부를 결정하는 데 이용될 수 있다는 것에 유의해야 한다. 일례에서, 추가적인 조건들은 아래와 같을 수 있다:
if (p 측이 32 이상 && q 측이16 이상) || (q 측이 32 이상 && p 측이 16 이상); 그러나, (7,7, 7,3, 3,7)에 대하여, 결정 프로세스는 (p 측이 32 이상 || q 측이 32 이상)임. 아이디어는, β >> 3 대신 3 * β >> 5의 더 낮은 임계치 선택이 결정 프로세스에 선행하여 이들 루마 더 강한 필터 중 임의의 것에 적용된다는 것임.
일례에서, 본 명세서에서 설명된 기술들에 따르면, 루마는 4x4 루마 샘플 그리드에 따라(또는 일부 예들에서는 8x8 루마 샘플 그리드에 따라) 디블록킹될 수 있다. 이 예에서, WS00P P-측 필터 및 WS00Q Q-측 필터로서 전술된 루마 더 강한 필터들은 큰 블록들에 대해 이용될 수 있는데, 여기서 큰 블록은 수직 에지에 대해 폭 >= 32, 및 수평 에지에 대해 높이 >= 32에 대응하고 인접한 블록이 16 이상이다. 제어 프로세스는 4개의 샘플 세그먼트들의 2개의 라인들에 대해 계산된 기울기들; 절대 픽셀 값 차이와 tC의 비교; 및 다른 절대 픽셀 값 차이들과 β의 비교에 또한 기초할 수 있는데, 이는 하기에 더욱 상세히 설명되어 있다. 또한, p0이 현재 CTU 위의 CTU에 속할 때, 상기 표 8B에 제공된 다음의 제한된 지지 루마 필터가 이용될 수 있다.
일부 경우들에서, 샘플들의 서브세트는 액세스 불가능하다. 그러한 경우들에, 샘플들의 이러한 서브세트를 이용하는 제어 프로세스가 영향을 받을 수 있다. 이는 기울기의 계산 시에 비대칭을 리딩할 수 있다. 일부 예들에서, 이러한 경우들에, 다른 제어 프로세스가 이용될 수 있다.
일례에서, 제어 프로세스는 아래와 같을 수 있다:
변수들 dpq0, dpq3, dp, dq, 및 d가 아래와 같이 유도됨:
dp0, dp3, dq0, dq3이 우선ITU-T H.265에서와 같이 유도됨
LongTapDeblocking = ((p 측 >= 32 && q 측 >= 16) | | (p 측 >= 16 && q 측 >=32)))? TRUE : FALSE
ControlSamplesAccessible = p0이 현재 CTU 위의 CTU에 속하는가? FALSE : TRUE
if (LongTapDeblocking)
if (p 측이 32 이상 && ControlSamplesAccessible)
dp0 = (dp0 + Abs(p5.0 - 2 * p4,0 + p3,0) + 1)>> 1
dp3 = (dp3 + Abs(p5,3 - 2 * p4,3 + p3,5) + 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가 ITU-T H.265 에서와 같이 유도됨
ITU-T H.265 에서와 같이, d가 B보다 작을 때, 아래의 순서화된 단계들이 적용됨:
dpq가 ITU-T H.265에서와 같이 유도됨
sp3 = Abs(p3 - p0), ITU-T H.265에서와 같이 유도됨
if (p 측이 32 이상 && LongTapDeblocking && ControlSamplesAccessible)
sp3 = (sp3 + Abs(p7 - p3) + 1) >> 1
sq3 = Abs(q0 - q3), ITU-T H.265에서와 같이 유도됨
if (q 측이 32 이상 && LongTapDeblocking)
sq3 = (sq3 + Abs(q7 ~ q3) + 1) >> 1
ITU-T H.265에서와 같이 유도됨, StrongFilterCondition = (dpq가 (β>> 2)보다 작고, sp3 + sq3이 (LongTapDeblocking) ? (3* β >> 5) : (β >> 3))보다 작고, Abs(p0 - q0)가 (5 * tC + 1) >> 1보다 작음) ? TRUE : FALSE
StrongFilterCondition이 참이고 LongTapDeblocking이 참일 때, 경계 에지에 수직인 길이가 32 이상인 측에서 루마 더 강한 필터를 이용함.
그렇지 않으면, StrongFilterCondition이 참이고 LongTapDeblocking이 거짓일 때, 다른 강한 필터(예컨대, HEVC 강한 필터 HEVC_P, HEVC_Q)를 이용함.
일례에서, 비교들에 이용되는 임계치들은 또한 위치에 기초할 수 있다. 예를 들어, 디블록킹되는 에지가 CTU 경계와 정렬되어 있는지의 여부.
일례에서, 아래 중 하나가 4x4 루마 디블록킹 그리드에 필요할 수 있다:
수직 에지/수평 에지 각각에 대해 블록 폭/높이가 4와 같을 때, 그리고 HEVC 필터 온/오프 조건(즉, d < 베타, 여기서 d= d0+ d3이고 d0= dp0+ dq0이고 d3= dp3+ dq3)이 각각의 에지에 대해 참인 것으로 평가되면, 이 방법은 최대 1개의 샘플 수정을 갖는 HEVC 정상/약한 필터를 강제할 것임. 따라서, 다음의 HEVC 조건은 [δ] < 10(tC)을 확인하는데, 여기서 δ = (9 << (q0 - p0) - (3 * (q1 - p1) + 8 >> 4이고, 조건이 참으로 평가되면, 샘플들 p0 및 q0은 수정되고, 그렇지 않으면, 어떠한 필터링도 적용되지 않음.
수직 에지/수평 에지 각각에 대해 블록 폭/높이가 4와 같을 때, 최대 3개의 샘플들이 필터 결정에 이용되고, 단지 하나의 샘플만이 필터에 의해 수정됨. 즉,
Figure pct00077
가 강한/약한 필터 조건 확인들에서
Figure pct00078
를 대체하기 위해 이용되고, 두 강한 필터 및 약한 필터 모두가 p0 및 q0을 수정하기 위해서만 허용됨.
일례에서, 본 명세서에서 설명된 기술들에 따르면, 크로마는 2x2 크로마 샘플 그리드에 따라(또는 일부 예들에서는 4x4 루마 샘플 그리드에 따라) 디블록킹될 수 있다. 이 예에서, 전술한 HEVC_P P-측 및 HEVC_Q Q-측 필터들이 이용될 수 있다. 또한, p0이 현재 CTU 위의 CTU에 속할 때, NW00P로서 전술된 크로마 약한 필터가 이용될 수 있다. 일례에서, 강한 필터는, 크로마에 대해 계산된 HEVC 루마 강한 필터 조건이 참이고 다음의 조건들 중 임의의 조건이 참일 때 이용될 수 있다:
- 에지 타입은 수직이고, p0은 폭이 >= 16 인 CU(크로마 샘플들)에 속하고, q0은 폭이 >= 16 인 CU(크로마 샘플들)에 속함.
- 에지 타입은 수평이고, p0은 높이가 >= 16 인 CU(크로마 샘플들)에 속하고, q0은 높이가 >= 16 인 CU(크로마 샘플들)에 속함.
도 8을 다시 참조하면, 엔트로피 인코딩 유닛(218)은 양자화된 변환 계수들 및 예측 신택스 데이터(즉, 인트라 예측 데이터 및 모션 예측 데이터)를 수신한다. 일부 예들에서, 계수 양자화 유닛(206)은, 계수들이 엔트로피 인코딩 유닛(218)으로 출력되기 전, 양자화된 변환 계수들을 포함하는 행렬의 스캔을 수행할 수 있다는 것에 유의하여야 한다. 다른 예들에서, 엔트로피 인코딩 유닛(218)은 스캔을 수행할 수 있다. 엔트로피 인코딩 유닛(218)은 본 명세서에서 설명된 기술들 중 하나 이상에 따라 엔트로피 인코딩을 수행하도록 구성될 수 있다. 이러한 방식으로, 비디오 인코더(200)는, 비디오 데이터의 성분에 대한 인접한 재구성된 비디오 블록들을 포함하는 샘플 값들의 어레이를 수신하도록, 그리고 디블록킹 필터의 다수의 패스들에 따라 인접한 재구성된 비디오 블록들 내의 샘플 값들을 수정하도록 구성된 디바이스의 일례를 표현한다.
도 7을 다시 참조하면, 데이터 캡슐화기(107)는 인코딩된 비디오 데이터를 수신하고, 정의된 데이터 구조에 따라 컴플라이언트 비트스트림, 예컨대, NAL 유닛들의 시퀀스를 생성할 수 있다. 컴플라이언트 비트스트림을 수신하는 디바이스는 그로부터 비디오 데이터를 복원할 수 있다. 또한, 컴플라이언트 비트스트림을 수신하는 디바이스는 서브-비트스트림 추출 프로세스를 수행할 수 있는데, 여기서, 서브-비트스트림 추출은 컴플라이언트 비트스트림을 수신하는 디바이스가 수신된 비트스트림에서 데이터를 폐기하고/하거나 수정함으로써 새로운 컴플라이언트 비트스트림을 형성하는 프로세스를 지칭한다. 컨퍼밍 비트스트림(conforming bitstream)이라는 용어는 컴플라이언트 비트스트림이라는 용어 대신에 이용될 수 있다는 것에 유의해야 한다.
도 7을 다시 참조하면, 인터페이스(108)는 데이터 캡슐화기(107)에 의해 생성된 데이터를 수신하도록, 그리고 데이터를 통신 매체에 송신 및/또는 저장하도록 구성된 임의의 디바이스를 포함할 수 있다. 인터페이스(108)는 이더넷 카드와 같은 네트워크 인터페이스 카드를 포함할 수 있고, 광학 송수신기, 무선 주파수 송수신기, 또는 정보를 전송하고/하거나 수신할 수 있는 임의의 다른 타입의 디바이스를 포함할 수 있다. 또한, 인터페이스(108)는 파일이 저장 디바이스에 저장되는 것을 가능하게 할 수 있는 컴퓨터 시스템 인터페이스를 포함할 수 있다. 예를 들어, 인터페이스(108)는 PCI(Peripheral Component Interconnect) 및 PCIe(Peripheral Component Interconnect Express) 버스 프로토콜들, 독점적인 버스 프로토콜들, USB(Universal Serial Bus) 프로토콜들, FC, 또는 피어(peer) 디바이스들을 상호접속시키는 데 이용될 수 있는 임의의 다른 논리적 및 물리적 구조를 지원하는 칩셋을 포함할 수 있다.
도 7을 다시 참조하면, 목적지 디바이스(120)는 인터페이스(122), 데이터 캡슐화해제기(123), 비디오 디코더(124), 및 디스플레이(126)를 포함한다. 인터페이스(122)는 통신 매체로부터 데이터를 수신하도록 구성된 임의의 디바이스를 포함할 수 있다. 인터페이스(122)는 이더넷 카드와 같은 네트워크 인터페이스 카드를 포함할 수 있고, 광학 송수신기, 무선 주파수 송수신기, 또는 정보를 수신하고/하거나 전송할 수 있는 임의의 다른 타입의 디바이스를 포함할 수 있다. 또한, 인터페이스(122)는 컴플라이언트 비디오 비트스트림이 저장 디바이스로부터 인출되는(retrieved) 것을 가능하게 하는 컴퓨터 시스템 인터페이스를 포함할 수 있다. 예를 들어, 인터페이스(122)는 PCI 및 PCIe 버스 프로토콜들, 독점적인 버스 프로토콜들, USB 프로토콜들, FC, 또는 피어 디바이스들을 상호접속시키는 데 이용될 수 있는 임의의 다른 논리적 및 물리적 구조를 지원하는 칩셋을 포함할 수 있다. 데이터 캡슐화해제기(123)는 본 명세서에서 설명된 예시적인 파라미터 세트들 중 임의의 것을 수신하고 파싱하도록 구성될 수 있다.
비디오 디코더(124)는 비트스트림 및/또는 그의 허용가능한 변형들을 수신하도록 그리고 이들로부터 비디오 데이터를 복원하도록 구성된 임의의 디바이스를 포함할 수 있다. 디스플레이(126)는 비디오 데이터를 디스플레이하도록 구성된 임의의 디바이스를 포함할 수 있다. 디스플레이(126)는 액정 디스플레이(LCD), 플라즈마 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 다른 타입의 디스플레이와 같은 다양한 디스플레이 디바이스들 중 하나를 포함할 수 있다. 디스플레이(126)는 고화질 디스플레이 또는 초고화질 디스플레이를 포함할 수 있다. 도 7에 도시된 예에서, 비디오 디코더(124)가 디스플레이(126)에 데이터를 출력하는 것으로 설명되어 있지만, 비디오 디코더(124)는 비디오 데이터를 다양한 타입의 디바이스들 및/또는 그의 서브컴포넌트들로 출력하도록 구성될 수 있다는 것에 유의해야 한다. 예를 들어, 비디오 디코더(124)는, 본 명세서에서 설명된 바와 같이, 비디오 데이터를 임의의 통신 매체에 출력하도록 구성될 수 있다.
도 9는 본 발명의 하나 이상의 기술들에 따른, 비디오 데이터를 디코딩하도록 구성될 수 있는 비디오 디코더의 일례를 도시한 블록도이다.
일례에서, 비디오 디코더(300)는 변환 데이터를 디코딩하도록, 그리고 디코딩된 변환 데이터에 기초하여 변환 계수들로부터 잔차 데이터를 재구성하도록 구성될 수 있다. 비디오 디코더(300)는 인트라 예측 디코딩 및 인터 예측 디코딩을 수행하도록 구성될 수 있고, 이 때문에, 하이브리드 디코더로 지칭될 수 있다. 도 9에 도시된 예에서, 비디오 디코더(300)는 엔트로피 디코딩 유닛(302), 역양자화 유닛(304), 역변환 계수 프로세싱 유닛(306), 인트라 예측 프로세싱 유닛(308), 인터 예측 프로세싱 유닛(310), 합산기(312), 필터 유닛(314), 및 기준 버퍼(316)를 포함한다. 비디오 디코더(300)는 비디오 코딩 시스템과 일치하는 방식으로 비디오 데이터를 디코딩하도록 구성될 수 있다. 예시적인 비디오 디코더(300)가 별개의 기능 블록들을 갖는 것으로 예시되지만, 그러한 예시는 설명의 목적을 위한 것이고 비디오 디코더(300) 및/또는 그의 서브컴포넌트들을 특정 하드웨어 또는 소프트웨어 아키텍처로 제한하지 않는다는 것에 유의해야 한다. 비디오 디코더(300)의 기능들은 하드웨어, 펌웨어, 및/또는 소프트웨어 구현의 임의의 조합을 이용하여 실현될 수 있다.
도 9에 도시된 바와 같이, 엔트로피 디코딩 유닛(302)은 엔트로피 인코딩된 비트스트림을 수신한다. 엔트로피 디코딩 유닛(302)은 엔트로피 인코딩 프로세스에 상반되는 프로세스에 따라 비트스트림으로부터 신택스 요소들 및 양자화된 계수들을 디코딩하도록 구성될 수 있다. 엔트로피 디코딩 유닛(302)은 전술된 엔트로피 코딩 기술들 중 임의의 것에 따라 엔트로피 디코딩을 수행하도록 구성될 수 있다. 엔트로피 디코딩 유닛(802)은 비디오 코딩 표준과 일치하는 방식으로, 인코딩된 비트스트림 내의 신택스 요소들에 대한 값들을 결정할 수 있다. 도 9에 도시된 바와 같이, 엔트로피 디코딩 유닛(302)은 비트스트림으로부터 양자화된 계수 값들 및 예측 데이터를 결정할 수 있다. 도 9에 도시된 예에서, 역양자화 유닛(304)은 양자화된 계수 값들을 수신하고 변환 계수들을 출력한다. 역변환 프로세싱 유닛(306)은 변환 계수들을 수신하고 재구성된 잔차 데이터를 출력한다.
도 9를 다시 참조하면, 재구성된 잔차 데이터가 합산기(312)에 제공될 수 있다. 합산기(312)는 재구성된 잔차 데이터를 예측 비디오 블록에 추가할 수 있고, 재구성된 비디오 데이터를 생성할 수 있다. 예측 비디오 블록은 예측 비디오 기술(즉, 인트라 예측 및 인터 프레임 예측)에 따라 결정될 수 있다. 인트라 예측 프로세싱 유닛(308)은 인트라 예측 신택스 요소들을 수신하도록 그리고 기준 버퍼(316)로부터 예측 비디오 블록을 인출하도록 구성될 수 있다. 기준 버퍼(316)는 비디오 데이터의 하나 이상의 프레임을 저장하도록 구성된 메모리 디바이스를 포함할 수 있다. 인트라 예측 신택스 요소들은 전술된 인트라 예측 모드들과 같은 인트라 예측 모드를 식별할 수 있다. 인터 예측 프로세싱 유닛(308)은 인터 예측 신택스 요소들을 수신할 수 있고, 모션 벡터들을 생성하여 기준 버퍼(316)에 저장된 하나 이상의 기준 프레임들 내의 예측 블록을 식별할 수 있다. 인터 예측 프로세싱 유닛(310)은 모션 보상된 블록들을 생성하여, 가능하게는 보간 필터들에 기초하여 보간을 수행할 수 있다. 서브-픽셀 정밀도의 모션 추정에 사용될 보간 필터들에 대한 식별자들이 신택스 요소들에 포함될 수 있다. 인터 예측 프로세싱 유닛(310)은 보간 필터들을 사용하여 기준 블록의 서브-정수 픽셀들에 대한 보간된 값들을 계산할 수 있다.
필터 유닛(314)은 재구성된 비디오 데이터에 대해 필터링을 수행하도록 구성될 수 있다. 예를 들어, 필터 유닛(314)은, 예컨대, 비트스트림 내의 특정된 파라미터들에 기초하여, 디블록킹 및/또는 SAO(Sample Adaptive Offset) 필터링을 수행하도록 구성될 수 있다. 또한, 일부 예들에서, 필터 유닛(314)은 독점적인 임의적 필터링(예컨대, 모기 잡음 감소와 같은 시각적 향상)을 수행하도록 구성될 수 있다는 것에 유의해야 한다. 필터 유닛(314)은 필터 유닛(216)과 유사한 방식으로 동작할 수 있다. 도 9에 도시된 바와 같이, 재구성된 비디오 블록은 비디오 디코더(300)에 의해 출력될 수 있다. 이러한 방식으로, 비디오 디코더(300)는 비디오 데이터의 성분에 대한 인접한 재구성된 비디오 블록들을 포함하는 샘플 값들의 어레이를 수신하도록, 그리고 디블록킹 필터의 다수의 패스들에 따라 인접한 재구성된 비디오 블록들 내의 샘플 값들을 수정하도록 구성될 수 있다.
하나 이상의 예들에서, 기술된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능들은 컴퓨터-판독가능 매체 상에 저장될 수 있거나 또는 그 매체 상의 하나 이상의 명령어 또는 코드로서 송신될 수 있고, 하드웨어-기반 프로세싱 유닛에 의해 실행될 수 있다. 컴퓨터-판독가능 매체는 데이터 저장 매체와 같은 유형적 매체에 대응하는 컴퓨터-판독가능 저장 매체, 또는 예컨대 통신 프로토콜에 따라 하나의 장소에서 다른 장소로의 컴퓨터 프로그램의 이송을 용이하게 하는 임의의 매체를 포함하는 통신 매체를 포함할 수 있다. 이러한 방식으로, 컴퓨터-판독가능 매체는, 대체적으로, (1) 비-일시적인 유형적인 컴퓨터-판독가능 저장 매체 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스되어 본 명세서에 설명된 기술들의 구현을 위한 명령어들, 코드 및/또는 데이터 구조들을 인출하게 할 수 있는 임의의 이용가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터-판독가능 매체를 포함할 수 있다.
제한이 아닌 예로서, 그러한 컴퓨터-판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장소, 자기 디스크 저장소, 또는 다른 자기 저장 디바이스, 플래시 메모리, 또는 명령어들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는 데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 사실상 컴퓨터-판독가능 매체로 지칭된다. 예를 들어, 명령어들이 동축 케이블, 광섬유 케이블, 연선, DSL(digital subscriber line), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술을 이용하여 웹사이트, 서버 또는 다른 원격 소스로부터 송신되는 경우, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들이 매체의 정의에 포함된다. 그러나, 컴퓨터-판독가능 저장 매체 및 데이터 저장 매체는 접속, 반송파, 신호들, 또는 다른 일시적 매체를 포함하는 것이 아니라, 그 대신, 비-일시적인 유형적 저장 매체에 관한 것이라는 것을 이해해야 한다. 본 명세서에서 사용되는 바와 같이, 디스크(disk) 및 디스크(disc)는 CD(compact disc), 레이저 디스크, 광 디스크, DVD(digital versatile disc), 플로피 디스크 및 블루-레이 디스크를 포함하는데, 여기서 디스크(disk)들은 보통 데이터를 자기적으로 재생하는 반면 디스크(disc)들을 레이저들을 사용하여 광학적으로 데이터를 재생한다. 상기의 것들의 조합이 또한 컴퓨터-판독가능 매체의 범주 내에 포함되어야 한다.
명령어들은 하나 이상의 DSP(digital signal processor)들, 범용 마이크로프로세서들, ASIC(application specific integrated circuit)들, FPGA(field programmable logic array)들, 또는 다른 등가의 집적 또는 이산 로직 회로부와 같은 하나 이상의 프로세서들에 의해 실행될 수 있다. 따라서, 본 명세서에서 사용되는 바와 같이, "프로세서"라는 용어는 상기 구조물 중 임의의 구조물 또는 본 명세서에서 설명된 기술들의 구현에 적합한 임의의 다른 구조물을 지칭할 수 있다. 또한, 일부 태양들에서, 본 명세서에서 설명된 기능은, 인코딩 및 디코딩을 위해 구성되거나, 또는 조합된 코덱에 통합된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수 있다. 또한, 기술들은 하나 이상의 회로 또는 로직 요소들에서 완전하게 구현될 수 있다.
본 발명의 기술들은 무선 핸드셋, 집적회로(IC), 또는 IC들의 세트(예컨대, 칩셋)를 포함하는 매우 다양한 디바이스들 또는 장치들에서 구현될 수 있다. 개시된 기술들을 수행하도록 구성된 디바이스들의 기능적 태양들을 강조하기 위해 다양한 컴포넌트들, 모듈들, 또는 유닛들이 본 명세서에 설명되어 있지만, 반드시 상이한 하드웨어 유닛들에 의한 실현을 요구하는 것은 아니다. 오히려, 전술된 바와 같이, 다양한 유닛들이 코덱 하드웨어 유닛에서 조합될 수 있거나, 또는 적합한 소프트웨어 및/또는 펌웨어와 함께, 전술된 바와 같은 하나 이상의 프로세서를 포함하는 상호운용성 하드웨어 유닛들의 집합에 의해 제공될 수 있다.
더욱이, 전술한 실시예들 각각에서 사용되는 기지국 디바이스 및 단말기 디바이스의 각각의 기능 블록 또는 다양한 특징부는, 전형적으로 집적회로 또는 복수의 집적회로인 회로부에 의해 구현되거나 실행될 수 있다. 본 명세서에 기술된 기능들을 실행하도록 설계된 회로부는 범용 프로세서, DSP, ASIC(application specific or general application integrated circuit), FPGA, 또는 다른 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 또는 이산 하드웨어 컴포넌트, 또는 이들의 조합을 포함할 수 있다. 범용 프로세서는 마이크로프로세서일 수 있거나, 또는, 대안으로, 프로세서는 종래의 프로세서, 제어기, 마이크로제어기 또는 상태 머신일 수 있다. 전술된 범용 프로세서 또는 각각의 회로는 디지털 회로에 의해 구성될 수 있거나, 또는 아날로그 회로에 의해 구성될 수 있다. 또한, 반도체 기술의 발전으로 인해, 현시대의 집적회로들을 대체하는 집적회로를 제조하는 기술이 나타날 때, 이러한 기술에 의한 집적회로가 또한 사용될 수 있다.
다양한 예들이 기술되었다. 이들 및 다른 예들은 다음의 청구범위의 범주 내에 있다.
<교차 참조>
이 정규 출원은 2018년 3월 30일자로 출원된 가출원 제62/651,058호, 2018년 4월 7일자로 출원된 가출원 제62/654,379호, 2018년 4월 9일자로 출원된 가출원 제62/655,029호, 2018년 4월 11일자로 출원된 가출원 제62/656,291호, 2018년 5월 29일자로 출원된 가출원 제62/677,629호, 2018년 6월 1일자로 출원된 가출원 제62/679,716호, 2018년 7월 10일자로 출원된 가출원 제62/696,309호, 2018년 7월 27일자로 출원된 가출원 제62/711,420호, 2018년 8월 5일자로 출원된 가출원 제62/714,755호, 2018년 9월 17일자로 출원된 가출원 제62/732,556호, 2018년 9월 18일자로 출원된 가출원 제62/733,067호, 2018년 9월 22일자로 출원된 가출원 제62/735,090호, 2018년 9월 27일자로 출원된 가출원 제62/737,596호에 대해 35 U.S.C. § 119 하에서 우선권을 주장하며, 이들의 전체 내용은 여기에 참고로 통합된다.

Claims (8)

  1. 재구성된 비디오 데이터를 필터링하는 방법으로서, 비디오 데이터의 성분에 대한 인접한 재구성된 비디오 블록들을 포함하는 샘플 값들의 어레이를 수신하는 단계; 및 디블록킹 필터의 다수의 패스(pass)들에 따라 상기 인접한 재구성된 비디오 블록들 내의 샘플 값들을 수정하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 각각의 패스에서의 디블록킹 필터의 필터 파라미터들은 하나 이상의 코딩 파라미터들에 기초하여 결정되는, 방법.
  3. 비디오 데이터를 코딩하기 위한 디바이스로서, 제1항 및 제2항의 단계들의 임의의 조합 및 모든 조합들을 수행하도록 구성된 하나 이상의 프로세서들을 포함하는, 디바이스.
  4. 제3항에 있어서, 상기 디바이스는 비디오 인코더를 포함하는, 디바이스.
  5. 제3항에 있어서, 상기 디바이스는 비디오 디코더를 포함하는, 디바이스.
  6. 시스템으로서,
    제4항의 디바이스; 및
    제5항의 디바이스를 포함하는, 시스템.
  7. 비디오 데이터를 코딩하기 위한 장치로서, 제1항 및 제2항의 단계들의 임의의 조합 및 모든 조합들을 수행하기 위한 수단을 포함하는, 장치.
  8. 명령어들이 저장되는 비-일시적 컴퓨터-판독가능 저장 매체로서, 상기 명령어들은, 실행될 때, 비디오 데이터를 코딩하기 위한 디바이스의 하나 이상의 프로세서들이 제1항 및 제2항의 단계들의 임의의 조합 및 모든 조합들을 수행하게 하는, 비-일시적 컴퓨터-판독가능 저장 매체.
KR1020207030974A 2018-03-30 2019-03-25 재구성된 비디오 데이터에 디블록킹 필터들을 적용하기 위한 시스템들 및 방법들 KR20200128588A (ko)

Applications Claiming Priority (27)

Application Number Priority Date Filing Date Title
US201862651058P 2018-03-30 2018-03-30
US62/651,058 2018-03-30
US201862654379P 2018-04-07 2018-04-07
US62/654,379 2018-04-07
US201862655029P 2018-04-09 2018-04-09
US62/655,029 2018-04-09
US201862656291P 2018-04-11 2018-04-11
US62/656,291 2018-04-11
US201862677629P 2018-05-29 2018-05-29
US62/677,629 2018-05-29
US201862679716P 2018-06-01 2018-06-01
US62/679,716 2018-06-01
US201862696309P 2018-07-10 2018-07-10
US62/696,309 2018-07-10
US201862711420P 2018-07-27 2018-07-27
US62/711,420 2018-07-27
US201862714755P 2018-08-05 2018-08-05
US62/714,755 2018-08-05
US201862732556P 2018-09-17 2018-09-17
US62/732,556 2018-09-17
US201862733067P 2018-09-18 2018-09-18
US62/733,067 2018-09-18
US201862735090P 2018-09-22 2018-09-22
US62/735,090 2018-09-22
US201862737596P 2018-09-27 2018-09-27
US62/737,596 2018-09-27
PCT/JP2019/012422 WO2019188944A1 (en) 2018-03-30 2019-03-25 Systems and methods for applying deblocking filters to reconstructed video data

Publications (1)

Publication Number Publication Date
KR20200128588A true KR20200128588A (ko) 2020-11-13

Family

ID=68060571

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207030974A KR20200128588A (ko) 2018-03-30 2019-03-25 재구성된 비디오 데이터에 디블록킹 필터들을 적용하기 위한 시스템들 및 방법들

Country Status (10)

Country Link
US (3) US11259019B2 (ko)
EP (1) EP3782371A4 (ko)
JP (2) JP7382951B2 (ko)
KR (1) KR20200128588A (ko)
CN (3) CN112042203B (ko)
AU (2) AU2019242247B2 (ko)
CA (1) CA3095549A1 (ko)
MX (1) MX2020010140A (ko)
RU (2) RU2768016C1 (ko)
WO (1) WO2019188944A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022191526A1 (ko) * 2021-03-09 2022-09-15 현대자동차주식회사 세그멘테이션 정보 기반 디블록킹 필터링을 이용하는 비디오 코딩방법 및 장치

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11259019B2 (en) * 2018-03-30 2022-02-22 Sharp Kabushiki Kaisha Systems and methods for applying deblocking filters to reconstructed video data
WO2020005031A1 (ko) * 2018-06-28 2020-01-02 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US10567752B2 (en) * 2018-07-02 2020-02-18 Tencent America LLC Method and apparatus for intra prediction for non-square blocks in video compression
CN110225339A (zh) * 2019-05-10 2019-09-10 上海德衡数据科技有限公司 一种hevc视频序列编解码加速方法
CN114270848A (zh) 2019-08-23 2022-04-01 北京字节跳动网络技术有限公司 在去方块滤波中使用边界强度
BR112022004056A2 (pt) * 2019-09-06 2022-05-24 Ericsson Telefon Ab L M Método para filtrar valores de amostra associados a uma imagem, portador, e, aparelho
EP4014492A4 (en) 2019-09-14 2023-01-11 ByteDance Inc. QUANTIZATION PARAMETER OFFSET FOR CHROMA UNLOCK FILTERING
WO2021072177A1 (en) 2019-10-09 2021-04-15 Bytedance Inc. Cross-component adaptive loop filtering in video coding
KR20220073746A (ko) 2019-10-14 2022-06-03 바이트댄스 아이엔씨 비디오 처리에서 크로마 양자화 파라미터 사용
WO2021086023A1 (ko) * 2019-10-28 2021-05-06 엘지전자 주식회사 적응적 변환을 이용하여 레지듀얼 처리를 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
KR20220106116A (ko) 2019-12-09 2022-07-28 바이트댄스 아이엔씨 비디오 코딩에서 양자화 그룹 사용
WO2021117091A1 (ja) * 2019-12-09 2021-06-17 日本電信電話株式会社 符号化方法、符号化装置、及びプログラム
WO2021134700A1 (zh) * 2019-12-31 2021-07-08 北京大学 视频编解码的方法和装置
WO2021138293A1 (en) 2019-12-31 2021-07-08 Bytedance Inc. Adaptive color transform in video coding
EP4128763A4 (en) 2020-04-29 2023-08-30 ByteDance Inc. REPORTING FILTER PARAMETERS IN VIDEO IMAGE HEADER
CN113992915B (zh) * 2021-12-28 2022-05-17 康达洲际医疗器械有限公司 一种可适用于vvc帧内预测的编码单元划分方法与系统

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0159559B1 (ko) * 1994-10-31 1999-01-15 배순훈 디지탈 화상의 적응적인 후처리 방법
JP3785711B2 (ja) * 1996-12-24 2006-06-14 ソニー株式会社 画像再生装置及び画像再生方法
KR100244290B1 (ko) * 1997-09-09 2000-02-01 구자홍 저속 전송에서의 동영상을 위한 디블록킹 필터링 방법
US6285801B1 (en) * 1998-05-29 2001-09-04 Stmicroelectronics, Inc. Non-linear adaptive image filter for filtering noise such as blocking artifacts
US6983079B2 (en) * 2001-09-20 2006-01-03 Seiko Epson Corporation Reducing blocking and ringing artifacts in low-bit-rate coding
US7227901B2 (en) * 2002-11-21 2007-06-05 Ub Video Inc. Low-complexity deblocking filter
KR100679035B1 (ko) * 2005-01-04 2007-02-06 삼성전자주식회사 인트라 bl 모드를 고려한 디블록 필터링 방법, 및 상기방법을 이용하는 다 계층 비디오 인코더/디코더
KR101457396B1 (ko) * 2010-01-14 2014-11-03 삼성전자주식회사 디블로킹 필터링을 이용한 비디오 부호화 방법과 그 장치, 및 디블로킹 필터링을 이용한 비디오 복호화 방법 및 그 장치
CA2785036A1 (en) * 2010-02-05 2011-08-11 Telefonaktiebolaget L M Ericsson (Publ) De-blocking filtering control
KR20110123651A (ko) * 2010-05-07 2011-11-15 한국전자통신연구원 생략 부호화를 이용한 영상 부호화 및 복호화 장치 및 그 방법
TWI508534B (zh) * 2010-05-18 2015-11-11 Sony Corp Image processing apparatus and image processing method
US9872019B2 (en) * 2010-07-20 2018-01-16 Sk Telecom Co., Ltd. Method and device for deblocking-filtering, and method and device for encoding and decoding using same
CA2824739C (en) * 2011-01-14 2017-06-20 Telefonaktiebolaget L M Ericsson (Publ) Deblocking filtering
WO2012096614A2 (en) * 2011-01-14 2012-07-19 Telefonaktiebolaget L M Ericsson (Publ) A method for filter control and a filtering control device
WO2012134046A2 (ko) * 2011-04-01 2012-10-04 주식회사 아이벡스피티홀딩스 동영상의 부호화 방법
US9232237B2 (en) * 2011-08-05 2016-01-05 Texas Instruments Incorporated Block-based parallel deblocking filter in video coding
PL3306921T3 (pl) * 2011-09-09 2021-05-04 Sun Patent Trust Wykorzystanie decyzji o niskim stopniu złożoności do filtrowania deblokującego
US9167269B2 (en) * 2011-10-25 2015-10-20 Qualcomm Incorporated Determining boundary strength values for deblocking filtering for video coding
KR101892329B1 (ko) * 2011-11-03 2018-08-27 톰슨 라이센싱 이미지 정교화에 기초한 비디오 인코딩 및 디코딩
EP3654647A1 (en) * 2011-11-03 2020-05-20 Sun Patent Trust Efficient rounding for deblocking
US9906790B2 (en) * 2014-03-14 2018-02-27 Qualcomm Incorporated Deblock filtering using pixel distance
EP3414901A4 (en) * 2016-02-08 2018-12-26 Sharp Kabushiki Kaisha Systems and methods for transform coefficient coding
WO2018123423A1 (ja) * 2016-12-28 2018-07-05 ソニー株式会社 画像処理装置及び画像処理方法
US10708591B2 (en) * 2017-03-20 2020-07-07 Qualcomm Incorporated Enhanced deblocking filtering design in video coding
JP6964780B2 (ja) * 2017-12-29 2021-11-10 テレフオンアクチーボラゲット エルエム エリクソン(パブル) 参照値と関係するデバイスとを使用するビデオの符号化および/または復号を行う方法
WO2019137751A1 (en) * 2018-01-10 2019-07-18 Telefonaktiebolaget Lm Ericsson (Publ) Determining filter length for deblocking during encoding and/or decoding of video
US11259019B2 (en) * 2018-03-30 2022-02-22 Sharp Kabushiki Kaisha Systems and methods for applying deblocking filters to reconstructed video data
WO2020007747A1 (en) * 2018-07-05 2020-01-09 Telefonaktiebolaget Lm Ericsson (Publ) Deblocking of intra-reference samples
AU2019359490B2 (en) * 2018-10-12 2023-03-16 Huawei Technologies Co., Ltd. Apparatus and method for deblocking filter in video coding
EP3878185A4 (en) * 2018-11-08 2021-12-29 Telefonaktiebolaget Lm Ericsson (Publ) Asymmetric deblocking in a video encoder and/or video decoder
KR20220073746A (ko) * 2019-10-14 2022-06-03 바이트댄스 아이엔씨 비디오 처리에서 크로마 양자화 파라미터 사용

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022191526A1 (ko) * 2021-03-09 2022-09-15 현대자동차주식회사 세그멘테이션 정보 기반 디블록킹 필터링을 이용하는 비디오 코딩방법 및 장치

Also Published As

Publication number Publication date
AU2019242247B2 (en) 2022-12-22
US20230344997A1 (en) 2023-10-26
US20210409701A1 (en) 2021-12-30
CA3095549A1 (en) 2019-10-03
CN116567230A (zh) 2023-08-08
MX2020010140A (es) 2020-10-20
US11259019B2 (en) 2022-02-22
AU2023201754B2 (en) 2023-11-23
US20210120239A1 (en) 2021-04-22
US11750805B2 (en) 2023-09-05
AU2023201754A1 (en) 2023-04-20
AU2019242247A1 (en) 2020-11-19
EP3782371A4 (en) 2021-12-22
WO2019188944A1 (en) 2019-10-03
CN116405700A (zh) 2023-07-07
RU2768016C1 (ru) 2022-03-23
EP3782371A1 (en) 2021-02-24
JP2021520107A (ja) 2021-08-12
JP2024010188A (ja) 2024-01-23
CN112042203A (zh) 2020-12-04
JP7382951B2 (ja) 2023-11-17
RU2022105685A (ru) 2022-04-04
CN112042203B (zh) 2023-04-21

Similar Documents

Publication Publication Date Title
US11750805B2 (en) Systems and methods for applying deblocking filters to reconstructed video data
AU2018311926B2 (en) Systems and methods for partitioning video blocks in an inter prediction slice of video data
AU2019278991B2 (en) Block-based adaptive loop filter (ALF) design and signaling
WO2019230670A1 (en) Systems and methods for partitioning video blocks in an inter prediction slice of video data
EP3987813A1 (en) Systems and methods for reducing a reconstruction error in video coding based on a cross-component correlation
US11870984B2 (en) Systems and methods for applying deblocking filters to reconstructed video data
WO2021049126A1 (en) Systems and methods for reducing a reconstruction error in video coding based on a cross-component correlation
US20200236355A1 (en) Systems and methods for filtering reconstructed video data using adaptive loop filtering techniques
WO2021070427A1 (en) Systems and methods for reducing a reconstruction error in video coding based on a cross-component correlation
WO2018066242A1 (en) Systems and methods for adaptively clipping sample values

Legal Events

Date Code Title Description
A201 Request for examination