KR20220141897A - 비디오 코딩을 위한 예측 의존적 잔차 스케일링을 위한 방법들 및 디바이스들 - Google Patents

비디오 코딩을 위한 예측 의존적 잔차 스케일링을 위한 방법들 및 디바이스들 Download PDF

Info

Publication number
KR20220141897A
KR20220141897A KR1020227033622A KR20227033622A KR20220141897A KR 20220141897 A KR20220141897 A KR 20220141897A KR 1020227033622 A KR1020227033622 A KR 1020227033622A KR 20227033622 A KR20227033622 A KR 20227033622A KR 20220141897 A KR20220141897 A KR 20220141897A
Authority
KR
South Korea
Prior art keywords
samples
luma
prediction
reconstructed
chroma
Prior art date
Application number
KR1020227033622A
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 KR20220141897A publication Critical patent/KR20220141897A/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/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/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for 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/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

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

Abstract

LMCS에 의해 도입된 디코딩 레이턴시를 감소시키기 위한 방법들 및 디바이스들이 제공된다. 하나의 방법에서, 코딩 유닛(CU)의 디코딩 동안, 복수의 재구성된 루마 샘플들이 제 1 미리-결정된 영역으로부터 선택되고, 제 1 미리-결정된 영역은 CU가 위치하고 있는 제 2 미리-결정된 영역에 이웃하여 있으며, 복수의 재구성된 루마 샘플들의 평균이 계산되고, 그리고 CU를 디코딩하기 위한 크로마 잔차 스케일링 인자를 도출할 때, 어떠한 클립핑도 없이, 복수의 재구성된 루마 샘플들의 평균이 직접적으로 사용된다.

Description

비디오 코딩을 위한 예측 의존적 잔차 스케일링을 위한 방법들 및 디바이스들
본 출원은 2020년 3월 27일자로 출원된 미국 가특허 출원 일련번호 제63/001,229호에 대한 혜택을 주장한다. 앞서언급된 출원의 전체 개시내용은 모든 목적들을 위해 그 전체가 참조로 본 명세서에 통합된다.
본 개시내용은 일반적으로 비디오 코딩 및 압축(video coding and compression)에 관한 것이다. 더 구체적으로, 본 개시내용은 코드 유닛(code unit)들에 대한 예측 의존적 잔차 스케일링(prediction dependent residual scaling)을 사용하여 비디오 코딩을 수행하기 위한 시스템들 및 방법들에 관한 것이다.
본 섹션은 본 개시내용에 관한 배경 정보를 제공한다. 본 섹션 내에 포함되는 정보가 반드시 선행 기술로서 해석돼야 하는 것은 아니다.
다양한 비디오 코딩 기법들 중 임의의 기법이 비디오 데이터를 압축하기 위해 사용될 수 있다. 비디오 코딩은 하나 이상의 비디오 코딩 표준들에 따라 수행될 수 있다. 일부 예시적 비디오 코딩 표준들은, 다용도 비디오 코딩(Versatile Video Coding)(VVC), 공동 탐색 테스트 모델(Joint Exploration test Model)(JEM) 코딩, 고-효율 비디오 코딩(High-Efficiency Video Coding)(H.265/HEVC), 고급 비디오 코딩(Advanced Video Coding)(H.264/AVC), 및 동영상 전문가 그룹(Moving Picture Experts Group)(MPEG) 코딩을 포함한다.
비디오 코딩은 일반적으로 비디오 이미지들 혹은 시퀀스들에 내재된 리던던시(redundancy)를 이용하는 예측 방법(predictive method)들(예컨대, 인터-예측(inter-prediction), 인트라-예측(intra-prediction), 등)을 활용한다. 비디오 코딩 기법들의 하나의 목표는 비디오 품질에 대한 저하(degradations)를 피하거나 최소화시키면서 더 낮은 비트 레이트(bit rate)를 사용하는 형태로 비디오 데이터를 압축하는 것이다.
HEVC 표준의 제 1 버전(version)은 2013년 10월에 마무리되었고, 이것은 이전 세대 비디오 코딩 표준인 H.264/MPEG AVC와 비교해 대략 50% 비트-레이터 절감된 혹은 동등한 지각 품질(perceptual quality)을 제공한다. HEVC 표준이 그 이전의 것보다 상당한 코딩 향상을 제공하지만, 추가적인 코딩 툴(coding tool)들로 HEVC보다 더 우수한 코딩 효율이 성취될 수 있는 증거가 있다. 이에 근거하여, VCEG 및 MPEG 양쪽 모두는 미래의 비디오 코딩 표준화를 위한 새로운 코딩 기술들의 탐색 작업을 시작했다. 코딩 효율의 실질적 증진을 가능하게 할 수 있는 고급 기술들의 중요한 연구를 시작하기 위해 하나의 공동 비디오 탐색 팀(Joint Video Exploration Team, JVET)이 ITU-T VECG 및 ISO/IEC MPEG에 의해 2015년 10월에 형성되었다. 공동 탐색 모델(Joint Exploration Model, JEM)로 지칭되는 하나의 참조 소프트웨어(reference software)가 HEVC 테스트 모델(HEVC test Model)(HM)의 위에 수 개의 추가적인 코딩 툴들을 통합시킴으로써 JVET에 의해 유지되었다.
2017년 10월에, HEVC를 넘어서는 능력을 갖는 비디오 압축에 관한 공동 제안 요청(Call for Proposals, CfP)이 ITU-T 및 ISO/IEC에 의해 발표되었다. 2018년 4월에, 23개의 CfP 응답들이 10-차 JVET 미팅에서 접수 및 평가되었고, 이것은 HEVC보다 대략 40% 더 좋은 압축 효율 이득을 입증했다. 이러한 평가 결과들에 근거하여, JVET는 다용도 비디오 코딩(VVC)으로서 명명된 새로운 세대 비디오 코딩 표준을 개발하기 위해 새로운 프로젝트를 착수했다. 같은 달에, VVC 테스트 모델(VVC Test Model, VTM)로 지칭되는 하나의 참조 소프트웨어가 VVC 표준의 참조 구현을 입증하기 위해 확립되었다.
비디오 코딩에서 활용되는 예측 방법들은 전형적으로, 비디오 데이터에 내재된 리던던시를 감소시키거나 제거하기 위해 공간적 예측(인트라 프레임 예측) 및 시간적 예측(인터 프레임 예측)을 수행하는 것을 포함하고, 그리고 전형적으로 블록-기반 비디오 코딩(block-based video coding)과 관련된다. HEVC와 마찬가지로, VVC는 블록-기반 하이브리드 비디오 코딩 프레임워크(block-based hybrid video coding framework) 상에 구축된다.
블록-기반 비디오 코딩에서, 입력 비디오 신호는 블록별로 프로세싱된다. 각각의 블록(이것은 또한 코딩 유닛(Coding Unit, CU)으로 알려져 있음)에 대해, 공간적 예측 및/또는 시간적 예측이 수행될 수 있다. 지금-현재의 VVC 설계와 같은 더 새로운 비디오 코딩 표준들에서, 블록들은 4진-트리(quad-tree)들을 포함할 뿐만 아니라 2진-트리(binary-tree) 및/또는 3진-트리(ternary-tree)도 포함하는 다중-타입 트리 구조(multi-type tree structure)에 근거하여 더 파티션(partition)될 수 있다. 이것은 다양한 로컬 특성(local characteristic)들을 더 잘 수용할 수 있게 한다.
공간적 예측(이것은 또한 "인트라 예측"으로 알려져 있음)은 현재의 블록을 예측하기 위해 동일한 비디오 픽처(picture)/슬라이스(slice)에서 (참조 샘플(reference sample)들로 지칭되는) 이미 코딩된 이웃하는 블록들의 샘플들로부터의 픽셀(pixel)들을 사용한다. 공간적 예측은 비디오 신호에 내재된 공간적 리던던시를 감소시킨다.
디코딩 프로세스 동안, 비디오 비트-스트림(video bit-stream)은 엔트로피 디코딩 유닛(entropy decoding unit)에서 먼저 엔트로피 디코딩된다. 코딩 모드 및 예측 정보가 예측 블록을 형성하기 위해 (인트라 코딩되는 경우) 공간적 예측 유닛으로 보내지거나 (인터 코딩되는 경우) 시간적 예측 유닛으로 보내진다. 잔차 변환 계수(residual transform coefficient)들이 잔차 블록(residual block)을 재구성(reconstruct)하기 위해 역 양자화 유닛(inverse quantization unit) 및 역 변환 유닛(inverse transform unit)으로 보내진다. 그 다음에, 예측 블록과 잔차 블록이 함께 더해진다. 재구성된 블록은 또한 참조 픽처 저장소(reference picture store)에 저장되기 전에 인-루프 필터링(in-loop filtering)을 통과할 수 있다. 그 다음에, 참조 픽처 저장소 내의 재구성된 비디오는 디스플레이 디바이스를 구동시키기 위해 내보내지고, 뿐만 아니라 미래의 비디오 블록들을 예측하기 위해 사용된다.
지금-현재의 VVC 설계와 같은 더 새로운 비디오 코딩 표준들에서, 크로마 스케일링을 갖는 루마 맵핑(Luma Mapping with Chroma Scaling, LMCS)의 코딩 툴이 인-루프 필터링 전에 적용될 수 있다. LMCS는 코딩 효율을 향상시키기 위해 입력 신호의 동적 범위를 조정하는 것을 목표로 한다.
하지만, LMCS의 지금-현재의 설계는 다양한 디코딩 모듈들에서 상이한 도메인 맵핑(domain mapping)들을 사용하기 때문에 컴퓨팅연산 복잡성(computation complexity) 및 온-칩 메모리(on-chip memory)의 추가 요건을 초래한다. 더욱이, LMCS의 지금-현재의 설계는 루마 스케일링 인자(luma scaling factor) 및 크로마 스케일링 인자(chroma scaling factor)를 도출하기 위해 상이한 루마 예측 샘플 값(luma prediction sample value)들을 사용하고, 이것은 추가 복잡성을 도입한다. 게다가, LMCS의 지금-현재의 설계는, 루마 예측 샘플들의 성공적인 완료 이후까지 크로마 잔차 샘플들의 재구성의 연기를 요구하기 때문에(이것은 또한 디코더-측 모션 벡터 도출(Decoder-side Motion Vector Derivation)(DMVR), 양-방향성 광학 흐름(Bi-Directional Optical Flow, BDOF) 및 결합형 인터 및 인트라 예측(Combined Inter and Intra Prediction, CIIP)과 같은 복합 인터 모드 코딩 툴들의 순차적 적용들의 성공적인 완료를 요구하기 때문에) 크로마 잔차 샘플들의 재구성의 레이턴시를 증가시킨다. LMCS의 지금-현재의 설계는 또한, 크로마 잔차 스케일링 인자 도출 프로세스 동안 불필요한 클립핑 동작(clipping operation)을 수행하고. 이것은 컴퓨팅연산 복잡성 및 온-칩 메모리의 추가 요건을 더 증가시킨다.
본 섹션은 본 개시내용의 일반적인 개요를 제공하는 것이지 본 개시내용의 전체 범위 또는 모든 특징들의 포괄적 개시가 아니다.
본 출원의 제 1 실시형태에 따르면, 제 1 미리-결정된 영역으로부터의 복수의 재구성된 루마 샘플들이 CU의 디코딩 동안 선택되고, 제 1 미리-결정된 영역은 CU가 위치하고 있는 제 2 미리-결정된 영역에 이웃하여 있으며, 복수의 재구성된 루마 샘플들의 평균이 계산되고, 그리고 CU를 디코딩하기 위한 크로마 잔차 스케일링 인자를 도출할 때, 어떠한 클립핑도 없이, 복수의 재구성된 루마 샘플들의 평균이 직접적으로 사용된다.
본 출원의 제 2 실시형태에 따르면, 컴퓨팅 디바이스가 하나 이상의 프로세서들과, 메모리와, 그리고 메모리 내에 저장된 복수의 프로그램들을 포함한다. 프로그램들은, 하나 이상의 프로세서들에 의해 실행될 때, 컴퓨팅 디바이스로 하여금 본 출원의 제 1 실시형태에서 앞서 설명된 바와 같은 동작들을 수행하도록 한다.
본 출원의 제 3 실시형태에 따르면, 비-일시적 컴퓨터 판독가능 저장 매체가 하나 이상의 프로세서들을 갖는 컴퓨팅 디바이스에 의한 실행을 위한 복수의 프로그램들을 저장한다. 프로그램들은, 하나 이상의 프로세서들에 의해 실행될 때, 컴퓨팅 디바이스로 하여금 본 출원의 제 1 실시형태에서 앞서 설명된 바와 같은 동작들을 수행하도록 한다.
이후에는, 본 개시내용의 예시적인 비-한정적 실시예들의 세트들이, 수반되는 도면들과 연계되어 설명될 것이다. 본 명세서에서 제시되는 예들에 근거하여 관련 기술분야에서 통상의 기술을 가진 자들에 의해 구조, 방법, 또는 기능의 변형들이 구현될 수 있고, 이러한 변형들은 모두 본 개시내용의 범위 내에 포함된다. 충돌이 존재하지 않는 경우, 상이한 실시예들의 가르침들은 서로 결합될 수 있는데, 하지만 반드시 그럴 필요는 없다.
도 1은 많은 비디오 코딩 표준들과 연계되어 사용될 수 있는 예시적 블록-기반 하이브리드 비디오 인코더를 제시하는 블록도이다.
도 2는 많은 비디오 코딩 표준들과 연계되어 사용될 수 있는 예시적 비디오 디코더를 제시하는 블록도이다.
도 3은 많은 비디오 코딩 표준들과 연계되어 사용될 수 있는 다중-타입 트리 구조에서의 블록 파티션들의 예시이다.
도 4는 LMCS가 적용되는 디코딩 프로세스를 예시하는 흐름도이다.
도 5는 BDOF 프로세스의 예시이다.
도 6은 DMVR, BDOF 및 CIIP가 모두 활성화된 경우 LMCS에서의 크로마 잔차 스케일링의 작업흐름을 예시하는 흐름도이다.
도 7은 예측 의존적 잔차 스케일링(Prediction Dependent Residual Scaling, PDRS) 절차의 단계들을 예시하는 흐름도이다.
도 8은 PDRS 절차가 LMCS 프로세스에서 적용되는 경우 디코딩 프로세스의 작업흐름을 예시하는 흐름도이다.
도 9는 스케일링 인자를 도출하기 위해 단지 예측 샘플을 사용함으로써 초래되는 잔차 맵핑 에러(residual mapping error)의 예시이다.
도 10은 하나의 크로마 샘플 재구성 절차의 단계들을 예시하는 흐름도이다.
도 11은 제 2 크로마 샘플 재구성 절차의 단계들을 예시하는 흐름도이다.
도 12는 제 2 크로마 샘플 재구성 절차의 하나의 예에서 LMCS 디코딩 프로세스의 작업흐름을 예시하는 흐름도이고, 여기서는 DMVR, BDOF 및 CIIP가 크로마 스케일링을 위한 루마 예측 샘플들을 발생시키기 위해 적용되지 않는다.
도 13은 제 2 크로마 샘플 재구성 절차의 제 2 예에서 LMCS 디코딩 프로세스의 작업흐름을 예시하는 흐름도이고, 여기서는 초기 단방향-예측 신호(uni-prediction signal)가 크로마 스케일링을 위한 루마 예측 샘플들을 발생시키기 위해 적용된다.
도 14는 하나의 크로마 잔차 샘플 재구성 절차의 단계들을 예시하는 흐름도이다.
도 15는 크로마 잔차 샘플 재구성 절차의 하나 이상의 실시예들에서 LMCS 디코딩 프로세스의 작업흐름을 예시하는 흐름도이다.
도 16은 크로마 잔차 샘플 재구성 절차의 하나의 다른 실시예에서 LMCS 디코딩 프로세스의 작업흐름을 예시하는 흐름도이다.
도 17은 제 2 크로마 잔차 샘플 재구성 절차의 단계들을 예시하는 흐름도이다.
도 18은 본 개시내용의 제 1 실시형태의 단계들을 예시하는 흐름도이다.
도 19는 본 개시내용의 제 1 실시형태의 실시예에 관련된 영역들의 예시이다.
본 개시내용에서 사용되는 용어들은 본 개시내용을 한정하려는 것이라기 보다는 특정 예들을 예시하려는 것이다. 본 개시내용뿐만 아니라 첨부된 청구항들에서 사용되는 바와 같은 단수 형태들은 또한 문맥에서 다른 의미가 명확히 포함되어 있지 않다면 복수 형태들도 지칭한다. 본 명세서에서 사용되는 바와 같은 용어 "및/또는"은 하나 이상의 나열된 관련 항목들 중 어느 하나 혹은 모든 가능한 조합들을 지칭함이 이해돼야 한다.
비록 "제1", "제2", "제3", 등의 용어들이 다양한 정보를 설명하기 위해 본 명세서에서 사용될 수 있지만, 이러한 용어들에 의해 해당 정보가 제한돼서는 안됨이 이해될 것이다. 이러한 용어들은 정보의 하나의 범주를 또 하나의 다른 범주로부터 구분시키기 위해서만 단지 사용된다. 예를 들어, 본 개시내용의 범위로부터 벗어남이 없이, 제 1 정보는 제 2 정보로서 명명될 수 있고, 유사하게, 제 2 정보는 또한 제 1 정보로서 명명될 수 있다. 본 명세서에서 사용되는 바와 같이, 용어 "만약 ~"은 문맥에 따라 "~ 때" 또는 "~ 경우", 또는 "~에 응답하여"를 의미하는 것으로 이해될 수 있다.
본 명세서 전반에 걸쳐 단수 또는 복수로 "일 실시예", "실시예", "또 하나의 다른 실시예", 등으로 언급하는 것은 실시예와 연결되어 설명되는 하나 이상의 특정 특징들, 구조들, 또는 특성들이 본 개시내용의 적어도 하나의 실시예에 포함됨을 의미한다. 따라서, 본 명세서 전반에 걸쳐 다양한 곳에서 단수 또는 복수로 어구들 "일 실시예에서" 또는 "실시예에서", "또 하나의 다른 실시예에서", 등의 출현이 모두 반드시 동일한 실시예를 지칭하는 것은 아니다. 게다가, 하나 이상의 실시예들에서의 특정 특징들, 구조들, 또는 특성들은 임의의 적절한 방식으로 결합될 수 있다.
개념적으로, 배경 섹션에서 이전에 언급된 것들을 포함하는 많은 비디오 코딩 표준들은 유사하다. 예를 들어, 사실상 모든 비디오 코딩 표준들은 블록-기반 프로세싱을 사용하고, 그리고 비디오 압축을 달성하기 위해 유사한 비디오 코딩 블록도들을 공유한다.
도 1은 많은 비디오 코딩 표준들과 연계되어 사용될 수 있는 예시적 블록-기반 하이브리드 비디오 인코더(100)의 블록도를 보여준다. 인코더(100)에서, 비디오 프레임은 프로세싱을 위해 복수의 비디오 블록들로 파티션된다. 각각의 주어진 비디오 블록에 대해, 인터 예측 접근법 또는 인트라 예측 접근법에 근거하여 예측이 형성된다. 인터 예측에서, 이전의 재구성된 프레임들로부터의 픽셀들에 근거하여 모션 추정(motion estimation) 및 모션 보상(motion compensation)을 통해 하나 이상의 예측기(predictor)들이 형성된다. 인트라 예측에서, 현재의 프레임에서의 재구성된 픽셀들에 근거하여 예측기들이 형성된다. 모드 결정을 통해, 최상의 예측기가 현재의 블록을 예측하기 위해 선택될 수 있다.
현재의 비디오 블록과 그 예측기 간의 차이를 나타내는 예측 잔차(prediction residual)가 변환 회로(Transform circuitry)(102)로 보내진다. 그 다음에, 변환 계수들이 엔트로피 감소를 위해 변환 회로(102)로부터 양자화 회로(Quantization circuitry)(104)로 보내진다. 그 다음에, 양자화된 계수들이, 압축된 비디오 비트스트림을 발생시키기 위해 엔트로피 코딩 회로(Entropy Coding circuitry)(106)에 공급된다. 도 1에서 보여지는 바와 같이, 인터 예측 회로 및/또는 인트라 예측 회로(112)로부터의 예측-관련 정보(110), 예컨대, 비디오 블록 파티션 정보(video block partition info), 모션 벡터(motion vector)들, 참조 픽처 인덱스(reference picture index), 및 인트라 예측 모드(intra prediction mode)와 같은 것이 또한 엔트로피 코딩 회로(106)를 통해 공급되고, 그리고 압축된 비디오 비트스트림(114)에 저장된다.
인코더(100)에서, 예측의 목적으로 픽셀들을 재구성하기 위해서 디코터-관련 회로들이 또한 필요하다. 먼저, 예측 잔차가 역 양자화(Inverse Quantization)(116) 및 역 변환 회로(Inverse Transform circuitry)(118)를 통해 재구성된다. 이러한 재구성된 예측 잔차는 현재의 비디오 블록에 대한 필터링되지 않은 재구성된 픽셀들을 발생시키기 위해 블록 예측기(120)와 결합된다.
시간적 예측(이것은 또한 "인터 예측" 또는 "모션 보상된 예측"으로 지칭됨)은 현재의 비디오 블록을 예측하기 위해 이미-코딩된 비디오 픽처들로부터의 재구성된 픽셀들을 사용한다. 시간적 예측은 비디오 신호에 내재된 시간적 리던던시를 감소시킨다. 주어진 CU에 대한 시간적 예측 신호는 현재의 CU와 그 시간적 참조 사이의 모션의 양(amount) 및 방향(direction)을 표시하는 하나 이상의 모션 벡터(Motion Vector, MV)들에 의해 일반적으로 시그널링(signaling)된다. 또한, 만약 다수의 참조 픽처들이 지원된다면, 하나의 참조 픽처 인덱스가 추가적으로 보내지는데, 이러한 참조 픽처 인덱스는 시간적 예측 신호가 참조 픽처 저장소 내의 어떤 참조 픽처로부터 온 것인지를 식별시키기 위해 사용된다.
공간적 및/또는 시간적 예측이 수행된 이후, 인코더(100) 내의 인트라/인터 모드 결정 회로(121)는 예를 들어, 레이트-왜곡 최적화 방법(rate-distortion optimization method)에 근거하여 최상의 예측 모드를 선택한다. 그 다음에, 블록 예측기(120)는 현재의 비디오 블록으로부터 공제(subtract)되고, 그리고 결과적인 예측 잔차가 변환 회로(102) 및 양자화 회로(104)를 사용하여 역-상관(de-correlate)된다. 결과적인 양자화된 잔차 계수들이 역 양자화 회로(116)에 의해 역 양자화되고 역 변환 회로(118)에 의해 역 변환되어 재구성된 잔차를 형성하게 되며, 그 다음에 이러한 재구성된 잔차는 예측 블록에 다시 더해져 CU의 재구성된 신호를 형성하게 된다. 디블록킹 필터(deblocking filter), 샘플 적응형 오프셋(Sample Adaptive Offset, SAO) 및/또는 적응형 인-루프 필터(Adaptive in-Loop Filter, ALF)와 같은 추가 인-루프 필터링(115)이, 재구성된 CU가 픽처 버퍼(117)의 참조 픽처 저장소 내에 놓이고 미래의 비디오 블록들을 코딩하기 위해 사용되기 전에, 재구성된 CU에 적용될 수 있다. 출력 비디오 비트스트림(114)을 형성하기 위해, 코딩 모드(인터 또는 인트라), 예측 모드 정보, 모션 정보, 및 양자화된 잔차 계수들이 모두 엔트로피 코딩 유닛(106)으로 보내져 비트-스트림을 형성하기 위해 더 압축되고 패킹(packing)된다.
예를 들어, 디블록킹 필터는 AVC, HEVC에서 이용가능하고, 뿐만 아니라 VVC의 지금-현재의 버전에서 이용가능하다. HEVC에서, SAO(Sample Adaptive Offset; 샘플 적응형 오프셋)로 지칭되는 추가적인 인-루프 필터가 코딩 효율을 더 향상시키기 위해 정의된다. VVC 표준의 지금-현재의 버전에서, ALF(Adaptive Loop Filter; 적응형 루프 필터)로 지칭되는 또 다른 인-루프 필터가 활발히 연구되고 있고 최종 표준에 포함될 좋은 기회를 갖는다.
이러한 인-루프 필터 동작들은 선택적(optional)이다. 이러한 동작들을 수행하는 것은 코딩 효율 및 시각적 품질을 향상시키는 것을 돕는다. 이러한 동작들은 또한 컴퓨팅연산 복잡성을 줄이기 위해 인코더(100)에 의해 행해지는 결정으로서 턴오프(turn off)될 수 있다.
인트라 예측이 일반적으로, 필터링되지 않은 재구성된 픽셀들에 기반을 두고 있음에 반해 인터 예측은 이러한 필터 옵션들이 인코더(100)에 의해 턴온(turn on)된 경우, 필터링된 재구성된 픽셀들에 기반을 두고 있음에 유의해야 한다.
도 2는 많은 비디오 코딩 표준들과 연계되어 사용될 수 있는 예시적 비디오 디코더(200)를 제시하는 블록도이다. 이러한 디코더(200)는 도 1의 인코더(100)에 상주하는 재구성-관련 섹션과 유사하다. 디코더(200)(도 2)에서, 유입되는 비디오 비트스트림(201)은 양자화된 계수 레벨들 및 예측-관련 정보를 도출하기 위해 엔트로피 디코딩(202)을 통해 먼저 디코딩된다. 그 다음에, 양자화된 계수 레벨들은 재구성된 예측 잔차를 획득하기 위해 역 양자화(204) 및 역 변환(206)을 통해 프로세싱된다. 인트라/인터 모드 선택기(212)에서 구현되는 블록 예측기 메커니즘은 디코딩된 예측 정보에 근거하여 인트라 예측(206)을 수행하거나 모션 보상(210)을 수행하도록 구성된다. 역 변환(206)으로부터의 재구성된 예측 잔차와 블록 예측기 메커니즘에 의해 발생된 예측 출력을 합산기(summer)(214)를 사용하여 합산함으로써, 필터링되지 않은 재구성된 픽셀들의 세트가 획득된다.
재구성된 블록은 또한 참조 픽처 저장소로서 기능하는 픽처 버퍼(213)에 저장되기 전에 인-루프 필터(209)를 통과할 수 있다. 그 다음에, 픽처 버퍼(213) 내의 재구성된 비디오는 디스플레이 디바이스를 구동시키기 위해 내보내질 수 있고, 뿐만 아니라 미래의 비디오 블록들을 예측하기 위해 사용될 수 있다. 인-루프 필터(209)가 턴온되는 상황에서, 최종 재구성된 비디오 출력(222)을 도출하기 위해 이러한 재구성된 픽셀들에 필터링 동작이 수행된다.
HEVC와 같은 비디오 코딩 표준들에서, 블록들은 4진-트리들에 근거하여 파티션될 수 있다. 지금-현재의 VVC와 같은 더 새로운 비디오 코딩 표준들에서, 더 많은 파티션 방법들이 이용될 수 있고, 그리고 하나의 코딩 트리 유닛(Coding Tree Unit, CTU)은 4진-트리, 2진-트리, 또는 3진-트리에 근거하여 다양한 로컬 특성들에 적응하기 위해 CU들로 분할될 수 있다. CU, 예측 유닛(Prediction Unit, PU), 및 변환 유닛(Transform Unit, TU)의 분리는 지금-현재의 VVC에서 대부분의 코딩 모드들에서는 존재하지 않고, 그리고 각각의 CU는 추가 파티션들 없이 예측 및 변환 양쪽 모두에 대한 기본 유닛(basic unit)으로서 항상 사용된다. 하지만, 인트라 서브-파티션 코딩 모드(intra sub-partition coding mode)와 같은 일부 특정 코딩 모드들에서, 각각의 CU는 여전히 다수의 TU들을 포함할 수 있다. 다중-타입 트리 구조에서, 하나의 CTU는 먼저 4진-트리 구조에 의해 파티션된다. 그 다음에, 각각의 4진-트리 리프 노드(quad-tree leaf node)는 2진 및 3진 트리 구조에 의해 더 파티션될 수 있다.
도 3은 지금-현재의 VVC에서 이용되는 5개의 분할 타입들을 보여주는데, 즉, 4분 파티션(quaternary partitioning)(301), 수평 2진 파티션(horizontal binary partitioning)(302), 수직 2진 파티션(vertical binary partitioning)(303), 수평 3진 파티션(horizontal ternary partitioning)(304), 및 수직 3진 파티션(vertical ternary partitioning)(305)을 보여준다. 다중-타입 트리 구조가 활용되는 상황에서, 하나의 CTU가 먼저 4진-트리 구조에 의해 파티션된다. 그 다음에, 각각의 4진-트리 리프 노드는 2진 및 3진 트리 구조에 의해 더 파티션될 수 있다.
도 3의 예시적 블록 파티션들(301, 302, 303, 304, 또는 305) 중 하나 이상을 사용하여, 공간적 예측 및/또는 시간적 예측이 도 1에서 보여지는 구성을 사용하여 수행될 수 있다. 공간적 예측(또는 "인트라 예측")은 현재의 비디오 블록을 예측하기 위해 동일한 비디오 픽처/슬라이스에서 (참조 샘플들로 지칭되는) 이미-코딩된 이웃하는 블록들의 샘플들로부터의 픽셀들을 사용한다. 공간적 예측은 비디오 신호에 내재된 공간적 리던던시를 감소시킨다.
지금-현재의 VVC와 같은 더 새로운 비디오 코딩 표준들에서는, 새로운 코딩 툴, 크로마 스케일링을 갖는 루마 맵핑(LMCS)이 더해졌다. LMCS는 루프 필터들(예컨대, 디-블록킹 필터, SAO, 및 ALF) 전에 적용되는 하나의 새로운 코딩 툴로서 더해진다.
일반적으로, LMCS는 두 개의 주요 모듈들을 갖는데, 첫 번째는 적응형 단편별 선형 모델(adaptive piecewise linear model)들에 근거하는 루마 컴포넌트의 인-루프 맵핑이고, 두 번째는 루마-의존적 크로마 잔차 스케일링이다.
도 4는 LMCS가 적용되는 수정된 디코딩 프로세스를 보여준다. 도 4에서, 특정 블록들은 맵핑된 도메인에서 수행되는 디코딩 모듈들을 나타내며, 이들은 엔트로피 디코딩(401), 역 양자화(402), 역 변환(403), 루마 인트라 예측(404), 및 루마 샘플 재구성(405)(즉, 재구성된 루마 샘플(Y'recon)을 생성하기 위해 루마 예측 샘플들(Y'pred)과 루마 잔차 샘플들(Y'res)을 더하는 것)을 포함한다. 특정된 다른 블록들은 본래 도메인(즉, 맵핑되지 않은 도메인)에서 수행되는 디코딩 모듈들을 표시하며, 이들은 모션 보상된 예측(409), 크로마 인트라 예측(412), 크로마 샘플 재구성(413)(즉, 재구성된 크로마 샘플(Crecon)을 생성하기 위해 크로마 예측 샘플들(Cpred)과 크로마 잔차 샘플들(Cres)을 더하는 것), 및 인-루프 필터 프로세스(407)(여기에는 디블록킹, SAO, 및 ALF가 포함됨)를 포함한다. 블록들의 추가 그룹은 LMCS에 의해 도입된 새로운 동작 모듈들을 나타내며, 여기에는 루마 샘플들의 순방향 맵핑(forward mapping)(410) 및 역 맵핑(inverse mapping)(또는 역방향 맵핑(backward mapping))(406), 그리고 크로마 잔차 스케일링(411)이 포함된다. 추가적으로, 도 4에서 보여지는 바와 같이, (루마를 위한) 디코딩된 픽처 버퍼(Decoded Picture Buffer, DPB)(408) 및 (크로마를 위한) 디코딩된 픽처 버퍼(DPB)(415)에 저장되는 모든 참조 픽처들은 본래 도메인에 있다.
LMCS의 인-루프 맵핑은 코딩 효율을 향상시키기 위해 입력 신호의 동적 범위를 조정하는 것을 목표로 한다. 기존의 LMCS 설계에서 루마 샘플들의 인-루프 맵핑은 두 개의 맵핑 기능들 상에 구축되는데, 하나의 순방향 맵핑 기능(FwdMap) 및 하나의 대응하는 역 맵핑 기능(InvMap) 상에 구축된다. 순방향 맵핑 기능은 16개의 동등-크기 단편들을 갖는 하나의 단편별 선형 모델을 사용하여 인코더로부터 디코더로 시그널링된다. 역 맵핑 기능은 순방향 맵핑 기능으로부터 직접적으로 도출될 수 있고, 따라서 시그널링될 필요가 없다.
루마 맵핑 모델의 파라미터들이 슬라이스 레벨에서 시그널링된다. 루마 맵핑 모델이 현재의 슬라이스에 대해 시그널링돼야 하는지를 표시하기 위해 존재 플래그(presence flag)가 먼저 시그널링된다. 만약 루마 맵핑 모델이 현재의 슬라이스에 존재한다면, 대응하는 단편별 선형 모델 파라미터들이 더 시그널링된다. 단편별 선형 모델에 근거하여, 입력 신호의 동적 범위가 본래 도메인에서 동등한 크기를 갖는 16개의 세그먼트(segment)들로 파티션되고, 그리고 각각의 세그먼트는 대응하는 세그먼트에 맵핑된다. 본래 도메인에서의 주어진 세그먼트에 대해, 맵핑된 도메인에서의 그 대응하는 세그먼트는 동일한 크기 또는 상이한 크기를 가질 수 있다. 맵핑된 도메인에서의 각각의 세그먼트의 크기는 해당 세그먼트의 코드워드(codeword)들의 수(즉, 맵핑된 샘플 값들)에 의해 표시된다. 본래 도메인에서의 각각의 세그먼트에 대해, 맵핑된 도메인에서의 그 대응하는 세그먼트 내의 코드워드들의 수에 근거하여 선형 맵핑 파라미터들이 도출될 수 있다. 예를 들어, 입력이 10-비트 깊이인 경우, 본래 도메인에서의 16개의 세그먼트들 각각은 64개의 픽셀 값들을 갖고, 만약 맵핑된 도메인에서의 세그먼트들 각각이 또한 그 각각에 할당된 64개의 코드워드들을 갖는다면, 이것은 단순한 1-대-1 맵핑(즉, 각각의 샘플 값이 변경되지 않는 맵핑)을 표시한다. 맵핑된 도메인에서의 각각의 세그먼트에 대한 시그널링된 코드워드들의 수는 스케일링 인자를 계산하기 위해 사용되고, 이에 따라 해당 세그먼트에 대한 맵핑 기능을 조정하기 위해 사용된다. 추가적으로, 슬라이스 레벨에서, 슬라이스에 대한 LMCS를 활성화/비활성화시키기 위해 또 하나의 다른 LMCS 제어 플래그가 시그널링된다.
각각의 세그먼트에 대해, 대응하는 단편-별 선형 모델은 본 단락 바로 아래의 상자에서 설명되는 바와 같이 정의된다.
Figure pct00001
도 4에서 예시되는 바와 같이, LMCS 프로세스 동안 두 개의 상이한 도메인들에서의 동작의 필요성이 존재한다. 인터-예측 모드를 통해 코딩된 각각의 CU("인터 CU")에 대해, 그 모션 보상된 예측은 본래 도메인에서 수행된다. 하지만, 루마 컴포넌트의 재구성(즉, 루마 예측 샘플들과 루마 잔차 샘플들을 더하는 것)이 맵핑된 도메인에서 수행되기 때문에, 모션 보상된 루마 예측(Ypred)은 순방향 맵핑 기능(410)을 통해 본래 도메인으로부터 맵핑된 도메인에서의 값(Y'pred)으로, Y'pred가 픽셀 재구성(405)을 위해 사용되기 전에, 맵핑될 필요가 있다(즉, Y'pred = FwdMap(Ypred)). 반면, 인트라-예측 모드를 통해 코딩된 각각의 CU("인트라 CU")에 대해, Y'pred가 픽셀 재구성(405)을 위해 사용되기 전에 (도 4에서 보여지는 바와 같이) 인트라 예측(404)이 맵핑된 도메인에서 수행되는 것을 고려하면 예측 샘플들의 맵핑은 필요하지 않다. 최종적으로, 재구성된 루마 샘플들(Y'recon)을 발생시킨 이후, 재구성된 루마 샘플(Y'recon)을, 루마 DPB(408)로 진행하기 전에, 본래 도메인에서의 값(Yrecon)으로 다시 전환시키기 위해 역방향 맵핑 기능(406)이 적용된다(즉, Yrecon = InvMap(Y'recon)). 인터 CU들에 대해서만 적용될 필요가 있는 예측 샘플들의 순방향 맵핑(410)과는 달리, 재구성된 샘플들의 역방향 맵핑(406)은 인터 CU 및 인트라 CU 양쪽 모두에 적용될 필요가 있다.
요약하면, 디코터 측에서, 지금-현재의 LMCS의 인-루프 루마 맵핑은, 루마 예측 샘플들(Ypred)이, 필요하다면, 맵핑된 도메인으로 먼저 전환되는 방식으로 수행된다(Y'pred = FwdMap(Ypred)). 그 다음에, 맵핑된 예측 샘플들은, 맵핑된 도메인에서, 재구성된 루마 샘플들을 형성하기 위해, 디코딩된 루마 잔차들과 더해진다(Y'recon = Y'pred + Y'res). 최종적으로, 재구성된 루마 샘플들(Y'recon)을 본래 도메인으로 다시 전환시키기 위해 역 맵핑이 적용된다(Yrecon = InvMap(Y'recon)). 인코더 측에서, 루마 잔차들은 맵핑된 도메인에서 코딩되기 때문에, 이들은 맵핑된 루마 본래 샘플들과 맵핑된 루마 예측 샘플들 사이의 차이로서 발생된다(Y'res = FwdMap(Yorg) - FwdMap(Ypred)).
LMCS의 제 2 단계인 루마-의존적 크로마 잔차 스케일링은 인-루프 맵핑이 루마 신호에 적용될 때 루마 신호와 그 대응하는 크로마 신호들 사이의 양자화 정밀도(quantization precision)의 상호작용을 보상하도록 설계된다. 크로마 잔차 스케일링이 활성화되는지 아니면 비활성화되는지가 또한 슬라이스 헤더(slice header)에서 시그널링된다. 만약 루마 맵핑이 활성화된다면, 그리고 만약 루마 및 크로마 컴포넌트들의 이중-트리 파티션(dual-tree partition)이 현재의 슬라이스에 대해 비활성화된다면, 루마-의존적 크로마 잔차 스케일링이 적용되는지 아니면 적용되지 않는지를 표시하기 위해 추가적인 플래그가 시그널링된다. 루마 맵핑이 사용되지 않을 때, 또는 이중-트리 파티션이 현재의 슬라이스에 대해 활성화될 때, 루마-의존적 크로마 잔차 스케일링은 항상 비활성화된다. 추가적으로, 4개 이하의 크로마 샘플들을 포함하는 CU들에 대해 크로마 잔차 스케일링은 항상 비활성화된다.
인트라 CU 및 인터 CU 양쪽 모두에 대해, 크로마 잔차를 스케일링하기 위해 사용되는 스케일링 파라미터들은 대응하는 맵핑된 루마 예측 샘플들의 평균에 의존한다. 스케일링 파라미터들은 본 단락 바로 아래의 상자에서 설명되는 바와 같이 도출된다.
Figure pct00002
도 4는 또한 루마-의존적 크로마 잔차 스케일링을 위한 루마 예측 샘플들의 평균의 컴퓨팅연산을 예시한다. 인터 CU들에 대해, 순방향-맵핑된 루마 예측(Y'pred)이 크로마 잔차들(Cres)을 도출하기 위해, 스케일링된 크로마 잔차들(CresScale)과 함께 크로마 잔차 스케일링(411)에 공급되고, 크로마 잔차들(Cres)은 재구성된 크로마 값들(Crecon)을 도출하기 위해 크로마 예측들(Cpred)과 함께 크로마 재구성(413)에 공급된다. 인트라 CU들에 대해, 인트라 예측(404)은 맵핑된 도메인에 이미 있는 Y'pred를 생성하고, Y'pred는 인터 CU들에 대한 것과 유사한 방식으로 크로마 잔차 스케일링(411)에 공급된다.
샘플 기반으로 수행되는 루마 맵핑과는 달리, CScaleInv는 전체 크로마 CU에 대해 고정된다. CScaleInv가 주어지면, 크로마 잔차 스케일링은 본 단락 바로 아래의 상자에서 설명되는 바와 같이 적용된다.
Figure pct00003
지금-현재의 VVC와 같은 더 새로운 비디오 코딩 표준들에서, 새로운 코딩 툴들이 도입되었고, 이러한 새로운 코딩 툴들의 일부 예들은, 양-방향성 광학 흐름(BDOF), 디코더-측 모션 벡터 정제(Decoder-side Motion Vector Refinement, DMVR), 결합형 인터 및 인트라 예측(Combined Inter and Intra Prediction, CIIP), 아핀 모드(Affine Mode), 그리고 아핀 모드에 대한 광학 흐름을 갖는 예측 정제(Prediction Refinement with Optical Flow, PROF)이다.
지금-현재의 VVC에서, 양-방향성 광학 흐름(BDOF)이 양방향-예측된 코딩 블록들의 예측 샘플들을 정제하기 위해 적용된다.
도 5는 BDOF 프로세스의 예시이다. BDOF는 양방향-예측이 사용될 때 블록-기반 모션-보상된 예측들의 위에서 수행되는 샘플-별 모션 정제이다. 각각의 4×4 서브-블록(501)의 모션 정제(vx, vy)는 BDOF가 서브-블록 주변의 하나의 6×6 윈도우(window)(Ω) 내에서 적용된 이후 참조 픽처 리스트(reference picture list) 0(LO) 및 참조 픽처 리스트 1(L1) 예측 샘플들(502 및 503) 사이의 차이를 최소화시킴으로써 계산된다.
구체적으로, 모션 정제(vx, vy)의 값은 본 단락 바로 아래의 상자에서 설명되는 바와 같이 도출된다.
Figure pct00004
바로 위에 있는 상자에서의 값들인 S1, S2, S3, S5, 및 S6은 또한 본 단락 바로 아래의 상자에서 설명되는 바와 같이 계산된다.
Figure pct00005
바로 위에 있는 상자에서의 값들인 I(k)(i,j)는 리스트 k(k = 0,1) 내의 예측 신호의 좌표 (i,j)에서의 샘플 값이고, 이들은 중간 고정밀도(즉, 16-비트)에서 발생되고, 값들인
Figure pct00006
Figure pct00007
는 샘플의 두 개의 이웃하는 샘플 사이의 차이를 직접적으로 계산함으로써 획득되는 해당 샘플의 수평 구배(horizontal gradient) 및 수직 구배(vertical gradient)이다. 값들인
Figure pct00008
Figure pct00009
는 본 단락 바로 아래의 상자에서 설명되는 바와 같이 계산된다.
Figure pct00010
본 단락 바로 위의 상자에서 설명되는 바와 같이 도출되는 도출된 모션 정제에 근거하여, CU의 최종 양방향-예측 샘플들이, 본 단락 바로 아래의 상자에서 표시되는 바와 같이, 광학 흐름 모델에 근거하여 모션 궤적을 따라 L0/L1 예측 샘플들을 보간(interpolating)함으로써 계산된다.
Figure pct00011
앞에서 설명된 비트-깊이 제어 방법에 근거하여, 전체 BDOF 프로세스의 중간 파라미터들의 최대 비트-깊이는 32-비트를 초과하지 않는다는 것, 그리고 곱셈에 대한 가장 큰 입력은 15-비트 내에 있다는 것, 즉 하나의 15-비트 곱셈기가 BDOF 구현을 위해 충분하다는 것이 보장된다.
DMVR은 양측 매칭 예측(bilateral matching prediction)을 사용함으로써 더 정제될 수 있는 두 개의 초기 시그널링된 MV들로 블록들을 병합하기 위해 사용되는 양방향-예측 기법이다.
구체적으로, DMVR에서, 두 개의 상이한 참조 픽처들에서 현재의 CU의 모션 궤적을 따라 두 개의 블록들 간의 최상의 매칭을 찾음으로써 현재의 CU의 모션 정보를 도출하기 위해 양측 매칭이 사용된다. 매칭 프로세스에서 사용되는 비용 함수(cost function)는 행-서브샘플링된(row-subsampled) SAD(Sum of Absolute Difference; 절대 차이의 합)이다. 매칭 프로세스가 행해진 이후, 정제된 MV들은 예측 스테이지(prediction stage)(후속 픽처에 대한 시간적 모션 벡터 예측)에서 모션 보상을 위해 사용되고, 그리고 정제되지 않은 MV들은 현재의 CU의 모션 벡터와 현재의 CU의 공간적 이웃들의 모션 벡터 사이의 모션 벡터 예측을 위해 사용된다.
연속적인 모션 궤적의 가정 하에, 두 개의 참조 블록들을 가리키는 모션 벡터들(MV0 및 MV1)은 현재의 픽처와 두 개의 참조 픽처들 사이의 시간적 거리(Temporal Distance)들, 즉, TD0 및 TD1에 비례할 것이다. 특별한 경우로서, 현재의 픽처가 시간적으로 두 개의 참조 픽처들 사이에 있고 현재의 픽처로부터 두 개의 참조 픽처들까지의 시간적 거리가 동일한 경우, 양측 매칭은 미러 기반 양-방향성 MV(mirror based bi-directional MV)가 된다.
지금-현재의 VVC에서는, 인터 및 인트라 예측 방법들이 하이브리드 비디오 코딩 방식에서 사용되는데, 여기서 각각의 PU는 시간적 도메인 또는 공간적 도메인에서 상관(correlation)을 이용하기 위해 인터 예측 또는 인트라 예측만을 선택하도록 허용된다(반면 양쪽 모두에서는 결코 안됨). 하지만, 이전의 문헌에서 지적된 바와 같이, 인터-예측된 블록들 및 인트라-예측된 블록들에 의해 발생된 잔차 신호는 서로 매우 다른 특성들을 제시할 수 있다. 따라서, 만약 두 종류의 예측들이 효율적인 방식으로 결합될 수 있다면, 예측 잔차의 에너지를 감소시키고 따라서 코딩 효율을 향상시키기 위해 하나의 더 정확한 예측이 기대될 수 있다. 추가적으로, 사실상 비디오 콘텐츠에서, 움직이는 객체(object)들의 모션은 복잡할 수 있다. 예를 들어, 오래된 콘텐츠(예컨대, 이전에 코딩된 픽처들에 포함된 객체들) 및 출현하는 새로운 콘텐츠(예컨대, 이전에 코딩된 픽처들에서 배제된 객체들) 양쪽 모두를 포함하는 영역들이 존재할 수 있다. 이러한 시나리오에서, 인터 예측 또는 인트라 예측 그 어느 것도 현재의 블록의 하나의 정확한 예측을 제공할 수 없다.
예측 효율을 더 향상시키기 위해, 병합 모드(merge mode)에 의해 코딩되는 하나의 CU의 인트라 예측 및 인터 예측을 결합하는 결합형 인터 및 인트라 예측(CIIP)이 VVC 표준에서 채택된다. 구체적으로, 각각의 병합 CU에 대해, 현재의 CU에 대해 CIIP가 활성화되는지 여부를 표시하기 위해 하나의 추가적인 플래그가 시그널링된다. 플래그가 1과 동일한 경우, CIIP는 루마 및 크로마 컴포넌트들의 인트라 예측된 샘플들을 발생시키기 위해 평면 모드(planar mode)만을 적용한다. 추가적으로, CIIP CU의 최종 예측 샘플들로서 인터 예측 샘플들과 인트라 예측 샘플들을 평균화하기 위해 동등한 가중치(즉, 0.5)가 적용된다.
VVC는 또한 모션 보상된 예측을 위한 아핀 모드를 지원한다. HEVC에서는, 모션 보상된 예측을 위해 단지 병진 모션 모델(translation motion model)만이 적용된다. 실제 세계에 있는 동안, 많은 종류의 모션이 있는데, 예컨대, 줌 인/아웃(zoom in/out), 회전(rotation), 원근 모션(perspective motion)들, 및 다른 불규칙한 모션들이 있다. VVC에서는, 병진 모션 또는 아핀 모션 모델이 인터 예측을 위해 적용되는지 여부를 표시하기 위해 각각의 인터 코딩 블록에 대해 하나의 플래그를 시그널링함으로써 아핀 모션 보상된 예측이 적용된다. 지금-현재의 VVC 설계에서, 4-파라미터 아핀 모드 및 6-파라미터 아핀 모드를 포함하는 두 개의 아핀 모드들이 하나의 아핀 코딩 블록에 대해 지원된다.
4-파라미터 아핀 모델은 다음과 같은 파라미터들을 갖는데, 수평 방향 및 수직 방향 각각에서의 병진 움직임에 대한 두 개의 파라미터들, 양쪽 방향들에 대한 줌 모션에 대한 하나의 파라미터 및 회전 모션에 대한 하나의 파라미터를 갖는다. 수평 줌 파라미터는 수직 줌 파라미터와 동일하다. 수평 회전 파라미터는 수직 회전 파라미터와 동일하다. 모션 벡터들 및 아핀 파라미터의 더 좋은 수용을 달성하기 위해, VVC에서, 이러한 아핀 파라미터들은 현재의 블록의 상단-좌측 코너(top-left corner) 및 상단-우측 코너(top-right corner)에 위치하는 두 개의 MV들(이것은 또한 제어 포인트 모션 벡터(Control Point Motion Vector, CPMV)로 지칭됨)로 변환된다. 블록의 아핀 모션 필드(affine motion field)는 두 개의 제어 포인트 MV들(V0, V1)에 의해 설명된다.
제어 포인트 모션에 근거하여, 하나의 아핀 코딩된 블록의 모션 필드(vx, vy)는 본 단락 바로 아래의 상자에서 설명되는 바와 같이 계산된다.
Figure pct00012
6-파라미터 아핀 모드는 다음과 같은 파라미터들을 갖는데, 수평 방향 및 수직 방향 각각에서의 병진 움직임에 대한 두 개의 파라미터들, 수평 방향에서 줌 모션에 대한 하나의 파라미터 및 회전 모션에 대한 하나의 파라미터, 수직 방향에서 줌 모션에 대한 하나의 파라미터 및 회전 모션에 대한 하나의 파라미터를 갖는다. 6-파라미터 아핀 모션 모델은 세 개의 CPMV들에서 세 개의 MV들로 코딩된다.
하나의 6-파라미터 아핀 블록의 세 개의 제어 포인트들은 블록의 상단-좌측, 상단-우측, 및 바닥 좌측 코너에 위치한다. 상단-좌측 제어 포인트에서의 모션은 병진 모션과 관련되고, 그리고 상단-우측 제어 포인트에서의 모션은 수평 방향에서의 회전 및 줌 모션과 관련되고, 그리고 바닥-좌측 제어 포인트에서의 모션은 수직 방향에서의 회전 및 줌 모션과 관련된다. 4-파라미터 아핀 모션 모델과 비교하여, 6-파라미터의 수평 방향에서의 회전 및 줌 모션은 수직 방향에서의 회전 및 줌 모션과 동일하지 않을 수 있다.
(V0, V1, V2)가 현재의 블록의 상단-좌측, 상단-우측, 및 바닥-좌측 코너들의 MV들이라 가정하면, 각각의 서브-블록의 모션 벡터(vx, vy)는 본 단락 바로 아래의 상자에서 설명되는 바와 같이 제어 포인트들에서 세 개의 MV들을 사용하여 도출된다.
Figure pct00013
아핀 모션 보상 정밀도(affine motion compensation precision)를 향상시키기 위해, 광학 흐름 모델에 근거하여 서브-블록 기반 아핀 모션 보상을 정제하는 광학 흐름을 갖는 예측 정제(PROF)가 현재의 VVC에서 현재 연구된다. 구체적으로, 서브-블록-기반 아핀 모션 보상을 수행한 이후, 하나의 아핀 블록의 루마 예측 샘플은 광학 흐름 방정식에 근거하여 도출된 하나의 샘플 정제 값에 의해 수정된다. 세부적으로, PROF의 동작들은 다음과 같은 네 개의 단계들로 요약될 수 있다.
단계 1에서, 4-파라미터 아핀 모델에 대한 앞서의 단락의 박스 및 6-파라미터 아핀 모델에 대한 앞서의 단락의 박스에서 도출되는 바와 같은 서브-블록 MV들을 사용하여 서브-블록 예측 I(i,j)를 발생시키기 위해 서브-블록-기반 아핀 모션 보상이 수행된다.
단계 2에서, 각각의 예측 샘플들의 공간 구배들인 gx(i,j) 및 gy(i,j)가 본 단락 바로 아래의 상자에서 설명되는 바와 같이 계산된다.
Figure pct00014
단계 2에서 또한, 구배들을 계산하기 위해, 예측 샘플들의 하나의 추가적인 행/열(row/column)이 하나의 서브-블록의 각각의 측면(side) 상에서 발생될 필요가 있다. 메모리 대역폭 및 복잡성을 감소시키기 위해, 확장된 경계들 상의 샘플들은 추가적인 보간 프로세스들을 피하기 위해 참조 픽처에서 가장 가까운 정수 픽셀 위치로부터 복사된다.
단계 3에서, 루마 예측 정제 값은 본 단락 바로 아래의 상자에서 설명되는 바와 같이 계산된다.
Figure pct00015
추가적으로, 현재의 PROF 설계에서, 정밀도 정제를 본래의 예측 샘플에 더한 이후, 본 단락 바로 아래의 상자에서 설명되는 바와 같이, 정제된 정밀도 샘플의 값을 15-비트 내에 있도록 클립핑하기 위해 제 4 단계로서 하나의 클립핑 동작이 수행된다.
Figure pct00016
아핀 모델 파라미터들 및 서브-블록 중심에 대한 픽셀 위치는 서브-블록으로부터 서브-블록으로 변경되지 않기 때문에, △v(i,j)가 제 1 서브-블록에 대해 계산될 수 있고 동일한 CU에서 다른 서브-블록들에 대해 재사용될 수 있다. △x 및 △y를 샘플 위치(i,j)로부터 샘플이 속하는 서브-블록의 중심까지의 수평 및 수직 오프셋이라 하면, △v(i,j)는 본 단락 바로 아래의 상자에서 설명되는 바와 같이 도출될 수 있다.
Figure pct00017
앞서의 단락들의 박스들에서의 아핀 서브-블록 MV 도출 방정식들에 근거하여, MV 차이 △v(i,j)는 본 단락 바로 아래의 상자에서 설명되는 바와 같이 도출될 수 있다.
Figure pct00018
지금-현재의 LMCS 설계에 따르면, 크로마 잔차 샘플들은 이들의 대응하는 루마 예측 샘플들에 근거하여 스케일링된다. 더 새로운 코딩 툴들이 인터 CU에 대해 활성화되는 경우, 이러한 인터 CU에서 LMCS를 통해 크로마 잔차 샘플들을 스케일링하기 위해 사용되는 루마 예측 샘플들은 이러한 더 새로운 코딩 툴들의 순차적 적용들의 끝에서 획득된다.
도 6은 DMVR, BDOF 및 CIIP가 모두 활성화된 경우 LMCS에서의 크로마 잔차 스케일링의 작업흐름을 예시하는 흐름도이다. 루마 L0 예측 값(601) 및 L1 예측 값(602)으로부터의 출력들이 DMVR(603) 및 BDOF(604)에 순차적으로 공급되고, 그리고 결과적인 루마 인터 예측 값(621)이 루마 인트라 예측(605)으로부터의 루마 인트라 예측 값(622)과 함께 평균(606)에 공급되어 평균화된 루마 예측 값(623)을 생성하게 되고, 평균화된 루마 예측 값(623)은 크로마 잔차들(608)과 함께 크로마 잔차 스케일링(607)에 공급되고, 이에 따라 크로마 잔차 스케일링(607), 크로마 예측(610), 및 크로마 재구성(609)이 최종 결과를 생성하기 위해 함께 작동할 수 있게 된다.
지금-현재의 LMCS 설계는 비디오 디코딩 프로세스에 세 가지 도전과제들을 제시한다. 첫째, 상이한 도메인들 사이의 맵핑들은 추가 컴퓨팅연산 복잡성 및 온-칩 메모리를 요구한다. 둘째, 루마 및 크로마 스케일링 인자 도출들이 상이한 루마 예측 값들을 사용한다는 사실은 추가 복잡성을 도입한다. 셋째, LMCS와 더 새로운 코딩 툴들 사이의 상호작용은 디코딩 프로세스에 레이턴시를 도입한다.
첫 번째로, 지금-현재의 LMCS 설계에서, 본래 도메인 및 맵핑된 도메인에서의 재구성된 샘플들 양쪽 모두는 다양한 디코딩 모듈들에서 사용된다. 결과로서, 이러한 샘플들은 상이한 디코딩 모듈들 사이에서 하나의 도메인으로부터 또 하나의 다른 도메인으로 종종 변환될 필요가 있고, 이것은 더 높은 컴퓨팅연산 복잡성 및 더 많은 온-칩 메모리 양쪽 모두를 초래할 수 있다.
구체적으로, 인트라 모드, CIIP 모드, 및 IBC 모드에 대해, 하나의 현재의 CU의 이웃하는 재구성된 영역들로부터의 맵핑된 도메인 참조 샘플들이 예측 샘플들을 발생시키기 위해 사용된다. 하지만, 인터 모드들에 대해, 모션 보상된 예측은 시간적 참조 픽처들의 본래 도메인 재구성된 샘들을 참조들로서 사용하여 수행된다. DPB에 저장되는 재구성된 샘플들은 또한 본래 도메인에 있다.
예를 들어, 인터 CU들에 대해, 루마 재구성 동작(즉, 예측 샘플들과 잔차 샘플들을 함께 더하는 것)이 맵핑된 도메인에서 수행되기 때문에, 본래 도메인에서 발생되는 인터 예측 루마 샘플들은 이들이 루마 샘플 재구성을 위해 사용되기 전에 맵핑된 도메인으로 변환될 필요가 있다. 또 하나의 다른 예에서, 인트라 CU 및 인터 CU 양쪽 모두에 대해, 재구성된 루마 샘플들을 DPB에 저장하기 전에 이들을 맵핑된 도메인으로부터 본래 도메인으로 변환하기 위해 역 맵핑(또는 역방향 맵핑)이 항상 적용된다. 이러한 설계는 추가적인 순방향/역 맵핑 동작들로 인해 컴퓨팅연산 복잡성을 증가시킬 뿐만 아니라 재구성된 샘플들의 다수의 버전들을 유지하기 위해 더 많은 온-칩 메모리를 요구한다.
실제 하드웨어 구현예에서, 순방향 맵핑 기능(FwdMap) 및 역(또는 역방향) 맵핑 기능(InvMap)은 룩-업-테이블(Look-Up-Table, LUT)을 사용하여 구현될 수 있거나 온-더-플라이(on-the-fly)로 계산될 수 있다. LUT 기반 해법이 사용되는 경우, 기능들(FwdMap, InvMap 및 cScaleInv)로부터의 가능한 출력 요소들은 LUT로서 미리-계산될 수 있고 미리-저장될 수 있으며, 그 다음에, 이들은 현재의 슬라이스 내의 모든 CU들의 루마 맵핑 및 크로마 잔차 스케일링 동작들을 위해 사용될 수 있다. 입력 비디오가 10-비트라고 가정하면 FwdMap 및 InvMap에 대한 LUT들 각각 내에는 210 = 1024개의 요소들이 존재하고, LUT들 내의 각각의 요소는 10-비트를 갖는다. 따라서, 순방향 및 역 루마 맵핑의 LUT들을 위한 전체 저장량은 2 * 1024 *10 = 20480 비트 = 2560 바이트와 동등하다. 반면, 크로마 스케일링 파라미터들(CScaleInv)을 도출하기 위해서, 하나의 16-엔트리 LUT 테이블(16-entry LUT table)(cScaleInv)이 인코더 및 디코더에서 유지될 필요가 있고, 그리고 각각의 크로마 스케일링 파라미터는 32-비트에서 저장된다. 이에 따라, LUT(cScaleInv)를 저장하기 위해 사용되는 메모리 크기는 16 * 32 = 512 비트 = 64 바이트와 동등하다. 2560과 64의 사이의 차이는 순방향 및 역(역방향) 맵핑 동작들에 의해 요구되는 추가 온-칩 메모리의 스케일(scale)을 보여준다.
더욱이, 지금-현재의 VVC와 같은 더 새로운 비디오 코딩 표준들에서, 인트라 예측 및 디블록킹 필터 양쪽 모두는 앞서의 이웃하는 블록의 재구성된 샘플들을 사용한다. 따라서, 현재의 픽처/슬라이스의 폭에서의 재구성된 샘플들의 하나의 추가 행이 버퍼(이것은 또한 비디오 코딩에서 "라인-버퍼(line-buffer)"로 알려져 있음) 내에 유지될 필요가 있다. 라인-버퍼 내의 재구성된 샘플들은 하나의 CTU 내의 제 1 행에 위치하는 CU들의 인트라 예측 및 디블록킹 동작들을 위한 참조들로서 적어도 사용된다. 기존의 LMCS 설계에 따르면, 인트라 예측 및 디블록킹 필터는 재구성된 샘플들을 상이한 도메인들에서 사용한다. 따라서, 추가적인 온-칩 메모리는 본래 도메인 및 맵핑된 도메인 재구성된 샘플들을 양쪽 모두 저장할 필요가 있게 되는데, 이것은 라인-버퍼 크기의 대략 두배가 될 수 있다.
라인-버퍼 크기의 배가(doubling)를 피하기 위한 하나의 구현 선택은 도메인 맵핑 동작을 온-더-플라이로 수행하는 것이다. 하지만, 이것은 무시할 수 없는 컴퓨팅연산 복잡성 증가를 희생시키면서 일어난다.
따라서, LMCS의 지금-현재의 설계는, 상이한 도메인들 사이의 요구된 맵핑들 때문에, 추가 컴퓨팅연산 복잡성 및 온-칩 메모리를 요구할 것이다.
두 번째로, 비록 LMCS의 지금-현재의 설계에서 루마 및 크로마 스케일링 인자 도출 방법들 양쪽 모두가, 루마 예측 샘플 값들을 대응하는 스케일링 인자들을 도출하기 위해 사용할지라도, 이들의 대응하는 동작들 사이에는 차이들이 존재한다.
루마 잔차 스케일링에 대해, 스케일링 인자들은 각각의 루마 잔차 샘플이 자기 자신의 스케일링 인자를 가질 수 있게 함으로써 샘플별로 도출된다. 하지만, 크로마 잔차 스케일링에 대해, 스케일링 인자는 전체 CU에 대해 고정되는데, 즉, CU 내의 모든 크로마 잔차 샘플들은 맵핑된 루마 예측 샘플들의 평균에 근거하여 계산되는 동일한 스케일링 인자를 공유한다.
또한, 두 개의 상이한 LUT들이 루마 및 크로마 잔차들의 스케일링 인자들을 계산하기 위해 사용된다. 구체적으로, 루마 LUT에 대한 입력은 본래 루마 예측 샘플 값의 맵핑 모델 세그먼트 인덱스이고, 반면 크로마 LUT에 대한 입력은 맵핑된 루마 예측 샘플들의 평균 값의 맵핑 모델 세그먼트 인덱스이다.
이러한 차이들은 코딩 프로세스에 추가 복잡성을 도입하고, 그리고 루마 및 크로마 스케일링 인자 도출에 대한 조화된 접근법이 바람직하다.
세 번째로, LMCS의 지금-현재의 설계의 크로마 잔차 스케일링을 위해서, DMVR, BDOF 및 CIIP의 세 개의 모듈들 모두와 같은 더 새로운 코딩 툴들이 루마 예측 샘플들을 발생시키기 위해 순차적으로 호출될 수 있는데, 그 다음에, 이러한 루마 예측 샘플들은 크로마 잔차의 스케일링 인자를 결정하기 위해 사용된다. 세 개의 모듈들의 높은 컴퓨팅연산 복잡성을 고려하면, LMCS의 크로마 잔차 스케일링을 수행하기 전에 이들의 성공 완료까지 기다리는 것은 크로마 샘플들의 디코딩에 대해 심각한 레이턴시를 초래할 수 있다. 아핀 CU에 대해, PROF 프로세스는 또한 레이턴시 문제를 가질 수 있는데, 왜냐하면 각각의 아핀 CU는 PROF 프로세스를 수행할 수 있고 후속하여 LMCS를 수행할 수 있기 때문이고, 이것은 또한 크로마 샘플들의 디코딩에 대해 레이턴시 문제를 초래할 수 있다.
더욱이, LMCS의 지금-현재의 설계에서, 크로마 잔차 스케일링 인자 도출 프로세스 동안 불필요한 클립핑 동작이 수행되는데, 이것은 컴퓨팅연산 복잡성 및 온-칩 메모리의 추가 요건을 더 증가시킨다.
본 개시내용은 LMCS의 지금-현재의 설계에 의해 제시되는 이러한 도전과제들을 해결하거나 완화시키는 것을 목표로 하는데, 더 구체적으로, 본 개시내용은 코딩 이득을 유지하면서 하드웨어 코덱 구현을 위해 LMCS의 복잡성을 감소시킬 수 있는 방식들을 논의한다.
맵핑 동작들을 통해 예측/재구성 샘플들을 변환하는 기존의 LMCS 프레임워크를 사용하는 대신, 샘플 맵핑 없이 예측 잔차들을 직접적으로 스케일링하기 위해 예측 의존적 잔차 스케일링(PDRS)으로 지칭되는 하나의 새로운 방법이 제안된다. 제안된 방법은 LMCS와 유사한 효과 및 코딩 효율을 달성할 수 있지만, 훨씬 더 낮은 구현 복잡성을 갖는다.
PDRS 절차에서는, 도 7에서 예시되는 바와 같이, 루마 예측 샘플이 루마 잔차 샘플을 디코딩하기 위해 획득되고(701), 스케일링 인자가 루마 예측 샘플을 사용하여 도출되고(702), 스케일링 인자가 루마 잔차 샘플을 스케일링하기 위해 사용되고(703), 그리고 재구성된 루마 샘플이 루마 예측 샘플과 스케일링된 루마 잔차 샘플을 더함으로써 계산된다(704).
예측된/재구성된 루마 샘플들을, 루마 예측 잔차를 계산하기 전에, 맵핑된 도메인으로 직접적으로 전환하는 기존의 LMCS 방법과는 달리, PDRS 절차의 제안된 방법에서는, 루마 예측 잔차 샘플들이 어떠한 맵핑 동작들도 없이 본래 도메인에서 정규 예측 프로세스에서와 동일한 방식으로 도출되고, 후속하여 루마 예측 잔차에 대한 스케일링 동작이 이어진다. 루마 예측 잔차의 스케일링은 대응하는 루마 예측 샘플 값 및 단편-별 선형 모델에 의존한다. 결과로서, 현재의 LMCS 설계에서의 순방향 및 역 루마 맵핑 동작들이 완전히 폐기될 수 있고, 디코딩 프로세스 동안 관련된 모든 예측 및 재구성 샘플들은 본래 샘플 도메인에서 유지된다. 앞서의 특징들에 근거하여, 제안된 방법은 예측 의존적 잔차 스케일링으로 명명된다.
도 8은 PDRS 절차가 LMCS 프로세스에서 적용되는 경우 디코딩 프로세스의 작업흐름을 예시하는 흐름도이다. 도 8은 상이한 도메인들 사이에서의 맵핑의 필요의 제거를 예시한다. 이제, 잔차 디코딩 모듈들(예컨대, 엔트로피 디코딩(801), 역 양자화(802), 및 역 변환(803))을 제외하고, (인트라 및 인터 예측(804, 809, 812 및 816), 재구성(806 및 813), 그리고 모든 인-루프 필터들(807 및 814)을 포함하는) 다른 모든 디코딩 모듈들은 본래 도메인에서 동작하고 있다. 구체적으로, 루마 샘플들을 재구성하기 위해, PDRS 절차에서의 제안된 방법은 단지 루마 예측 잔차 샘플들(Yres)을 이들의 본래 진폭 레벨들로 다시 디-스케일링(de-scale)하고, 그 다음에, 이들을 루마 예측 샘플들(Ypred)에 더할 필요만 있다.
PDRS 절차를 이용하면, 기존의 LMCS 설계에서의 순방향 및 역 루마 샘플 맵핑 동작들이 완전히 제거된다. 이것은 컴퓨팅연산 복잡성을 줄일/감소시킬 뿐만 아니라 LMCS 파라미터들을 저장하기 위한 잠재적 저장소의 크기를 감소시킨다. 예를 들어, LUT-기반 해법이 루마 맵핑을 구현하기 위해 사용되는 경우, 두 개의 맵핑 LUT들(FwdMap[] 및 InvMap[])을 저장하기 위해 이전에 사용되는 저장소(약 2560 바이트)는 제안된 방법에서 더 이상 필요하지 않다. 게다가, 본래 도메인 및 맵핑된 도메인 양쪽 모두에서 재구성 루마 샘플들을 저장할 필요가 있는 기존의 루마 맵핑 방법과는 달리, PDRS 절차에서의 제안된 방법은 본래 도메인에서만 모든 예측 및 재구성 샘플들을 발생시키고 유지한다. 이에 따라, 기존의 루마 맵핑과 비교해, PDRS 절차에서의 제안된 방법은 인트라 예측 및 디블록킹을 위해, 재구성된 샘플들을 저장하기 위해 사용되는 라인-버퍼 크기를 절반으로 효율적으로 감소시킬 수 있다.
PDRS 절차의 하나 이상의 실시예들에 따르면, 루마 예측 샘플 및 루마 잔차 샘플은 루마 예측 블록과 그 관련된 잔차 블록에서 하나의 동일한 병치된 위치(collocated position)로부터 나온다.
PDRS 절차의 하나 이상의 실시예들에 따르면, 루마 예측 샘플을 사용하여 스케일링 인자를 도출하는 것은, 가능한 루마 예측 샘플 값들의 전체 범위를 복수의 루마 예측 샘플 세그먼트들로 분할하는 것, 미리-정의된 단편 선형 모델에 근거하여 복수의 루마 예측 샘플 세그먼트들 각각에 대한 하나의 스케일링 인자를 계산하는 것, 그리고 복수의 루마 예측 샘플 세그먼트들의 스케일링 인자들에 근거하여 루마 예측 샘플의 스케일링 인자를 결정하는 것을 포함한다.
하나의 예에서, 복수의 루마 예측 샘플 세그먼트들의 스케일링 인자들에 근거하여 루마 예측 샘플의 스케일링 인자를 결정하는 것은, 루마 예측 샘플을 복수의 루마 예측 샘플 세그먼트들 중에서 하나의 세그먼트에 할당하는 것, 그리고 루마 예측 샘플의 스케일링 인자를 할당된 루마 예측 샘플 세그먼트의 스케일링 인자로서 계산하는 것을 포함한다.
이러한 예에서, 복수의 루마 예측 샘플 세그먼트들은 미리-정의된 16-단편 LUT 테이블(scaleForward) 내에 16개의 세그먼트들을 포함하고, 그리고 복수의 루마 예측 샘플 세그먼트들 각각에 대한 하나의 스케일링 인자를 계산하기 위한 미리-정의된 단편 선형 모델은 미리-정의된 LUT 테이블(scaleForward) 내의 16개의 세그먼트들에 대응하는 16개의 값들을 포함한다.
동일한 예에서, 스케일링 인자는 할당된 루마 예측 샘플 세그먼트에 근거하여 본 단락 바로 아래의 상자에서 설명되는 바와 같이 계산된다.
Figure pct00019
동일한 에에서, 루마 스케일링 인자(ScaleY)가 주어지면, 루마 잔차 샘플 스케일링 방법이 본 단락 바로 아래의 상자에서 설명되는 바와 같이 적용될 수 있다.
Figure pct00020
본 예의 뒤에 있는 동기(motivation)는 지금-현재의 LMCS에서의 순방향 맵핑이 하나의 단편-별 선형 모델에 기반을 두고 있다는 것이다. 만약 본래 루마 샘플과 루마 예측 샘플 양쪽 모두가 동일한 단편(즉, 두 개의 피봇 포인트들(InputPivot[i] 및 InputPivot[i+1])에 의해 정의되는 동일한 세그먼트)에 위치한다면, 본래 루마 샘플 및 예측 루마 샘플의 두 개의 순방향 맵핑 기능들은 정확히 동일하게 된다. 이에 따라, 이것은 Y'res=FwdMap(Yorg)-FwdMap(Ypred)=FwdMap(Yorg - Ypred) == FwdMap(Yres)로 이어진다. 이러한 방정식의 양측에 역 맵핑을 적용함으로써, 대응하는 디코더 측 재구성 동작은 Yrecon = Ypred + InvMap(Y'res)로서 표현될 수 있다.
달리 말하면, 본래 루마 샘플과 루마 예측 샘플 양쪽 모두가 동일한 단편에 위치하는 상황에서, LMCS에서의 루마 맵핑 방법은, 이러한 가능한 구현예에서 구현되는 바와 같이, 디코딩 프로세스에서 하나의 잔차 스케일링 동작을 통해 달성될 수 있다.
비록 이러한 결론이 본래 루마 샘플과 루마 예측 샘플 양쪽 모두가 두 개의 피봇 포인트들(InputPivot[i] 및 InputPivot[i+1])에 의해 정의되는 동일한 세그먼트에 위치한다는 가정에 근거하여 도출되지만, 이러한 예의 이와 같은 가능한 구현예는, 어떠한 경우에서도, 심지어 본래 루마 샘플과 루마 예측 샘플이 단편-별 선형 모델의 상이한 세그먼트들에 위치하는 경우에도, VVC에서의 기존의 루마 맵핑 동작에 대한 단순화 및/또는 근사화로서 여전히 사용될 수 있다. 실험 결과들은 이러한 단순화 및/또는 근사화가 코딩 성능에 거의 영향을 미치지 않음을 보여준다.
되풀이하면, 이러한 예는 본래 루마 샘플 값과 예측된 루마 샘플 값 양쪽 모두가 단편-별 선형 모드의 동일한 세그먼트에 위치한다는 가정에 기반을 두고 있다. 이러한 경우에, 본래 루마 샘플 및 예측된 루마 샘플에 적용되는 순방향/역 맵핑 기능들은 동일하고, 따라서 단지 루마 예측 샘플에 따라 대응하는 잔차 스케일링 인자를 계산하는 것이 안전하다.
하지만, CU의 예측된 샘플들이 (예를 들어, 참조 샘플들로부터 떨어져 멀리 있는 샘플들이 일반적으로 덜 정확하게 예측되는 인트라-예측된 CU들에 대해) 충분히 정확하지 않은 경우, 예측 샘플 및 본래 샘플은 종종 단편-별 선형 모델의 상이한 세그먼트들에 위치한다. 이러한 경우에, 예측 샘플 값에 근거하여 도출되는 스케일링 인자는 본래 도메인(즉, 맵핑되지 않은 도메인)에서의 잔차 샘플들과 맵핑된 도메인에서의 잔차 샘플들 사이의 본래의 맵핑 관계를 반영함에 있어 신뢰가능하지 않을 수 있다.
도 9는 스케일링 인자를 도출하기 위해 단지 예측 샘플을 사용함으로써 초래되는 잔차 맵핑 에러의 예시이다. 도 9에서, 삼각형-형상의 채워진 점들은 단편-별 선형 함수에서 상이한 세그먼트들의 피봇 제어 포인트들을 나타내고, 원형-형상의 채워진 점들은 본래 샘플 값 및 예측된 샘플 값을 나타내고, Yorg 및 Ypred는 본래 도메인(즉, 맵핑되지 않은 도메인)에서의 본래 샘플 및 예측된 샘플이고, Y'org 및 Y'pred는 각각 Yorg 및 Ypred의 맵핑된 샘플들이다. Yres 및 Y'res는 VVC에서의 기존의 샘플-기반 루마 맵핑 방법이 적용될 때 본래 도메인 및 맵핑된 도메인에서 대응하는 잔차들이고, Y'resScale은 제안된 루마 잔차 스케일링 방식에 근거하여 도출되는 맵핑된 잔차 샘플이다. 도 9에서 보여지는 바와 같이, 본래 샘플 및 예측 샘플이 단편별 선형 모델의 동일한 세그먼트 내에 있지 않기 때문에, 예측 샘플에 근거하여 도출되는 스케일링 인자는 맵핑된 도메인에서의 본래 잔차(즉, Y'res)를 근사화하는 스케일링된 잔차(즉, Y'resScale)를 생성하기에 충분히 정확하지 않을 수 있다.
제 2 예에서는, 본래 루마 샘플 값과 예측된 루마 샘플 값 양쪽 모두가 단편-별 선형 모드의 동일한 세그먼트에 위치한다는 가정이 요구되지 않는다.
이러한 제 2 예에서는, 루마 예측 샘플이 위치하는 단편-별 선형 모델의 세그먼트로부터 스케일링 인자를 직접적으로 도출하는 대신, 스케일링 인자는 N개의 이웃하는 세그먼트들의 스케일링 인자들의 평균으로서 계산된다(여기서 N은 양의 정수임).
이러한 제 2 예에서, 복수의 루마 예측 샘플 세그먼트들의 스케일링 인자들에 근거하여 루마 예측 샘플의 스케일링 인자를 결정하는 것은, 루마 예측 샘플을 복수의 루마 예측 샘플 세그먼트들 중에서 하나의 세그먼트에 할당하는 것, 그리고 루마 예측 샘플의 스케일링 인자를 할당된 루마 예측 샘플 세그먼트에 이웃하는 다수의 루마 예측 샘플 세그먼트들의 스케일링 인자들의 평균으로서 계산하는 것을 포함한다.
더 구체적으로, 이러한 제 2 예의 하나의 가능한 구현예에서, 스케일링 인자는, 다음과 같은 단계들에서 설명되는 바와 같이, 할당된 루마 예측 샘플 세그먼트에 근거하여 계산될 수 있다.
1) 본래 도메인에서 PredY가 속하는 단편-별 선형 모델의 대응하는 세그먼트 인덱스(IdxY)를 찾거나 획득함
2) 만약 Y'res ≥ 0이라면, 루마 잔차 스케일링 인자는 다음과 같이 계산됨
Figure pct00021
3) 그렇지 않다면(즉, Y'res < 0), 루마 잔차 스케일링 인자는 다음과 같이 계산됨
Figure pct00022
여기서 scaleForward[i](i = 0 ... 15)는 미리-정의된 16-단편 LUT이고, 이것은 다음과 같이 계산됨
scaleForward[i] = (OrgCW << SCALE_FP_PREC)/SignaledCW[i]
여기서 OrgCW 및 SignaledCW[i]는 각각 본래 도메인 및 맵핑된 도메인 내의 i-번째 세그먼트의 코드워드들의 수이고, 그리고 SCALE_FP_PREC는 스케일링 인자의 정밀도이다.
달리 보면 앞에서 설명되는 구현예과 동일한 이러한 제 2 예의 제 2 가능한 구현예에서, 스케일링 인자는 할당된 루마 예측 샘플 세그먼트에 근거하여 본 단락 바로 아래의 상자에서 설명되는 바와 같이 계산될 수 있다.
Figure pct00023
이러한 제 2 예의 앞서의 두 개의 가능한 구현예들은 단지, 할당된 세그먼트에 근거하는 N개의 루마 예측 샘플 도메인 값 세그먼트들의 선택에서만 다르다.
하나의 크로마 샘플 재구성 절차에서는, 도 10에서 예시되는 바와 같이, 입력 위치에서 루마 잔차 샘플 및 크로마 잔차 샘플 양쪽 모두를 디코딩하기 위한 루마 예측 샘플 값이 획득되고(1001), 그 다음에, 루마 잔차 샘플과 관련된 루마 예측 샘플이 획득되고(1002), 그 다음에, 크로마 잔차 샘플과 관련된 크로마 예측 샘플이 획득되고(1003), 루마 잔차 샘플에 대한 제 1 스케일링 인자 및 크로마 잔차 샘플에 대한 제 2 스케일링 인자를 도출하기 위해 루마 예측 샘플이 사용되고(1004), 루마 잔차 샘플을 스케일링하기 위해 제 1 스케일링 인자가 사용되고(1005), 크로마 잔차 샘플을 스케일링하기 위해 제 2 스케일링 인자가 사용되고(1006), 루마 예측 샘플과 스케일링된 루마 잔차 샘플을 더함으로써, 재구성된 루마 샘플이 계산되고(1007), 그리고 크로마 예측 샘플과 스케일링된 크로마 잔차 샘플을 더함으로써, 재구성된 크로마 샘플이 계산된다(1008).
크로마 샘플 재구성 절차는 더 통일된 설계를 달성하도록 루마 및 크로마 잔차들의 스케일링 방법들을 조화시키는 것을 목표로 한다.
크로마 샘플 재구성 절차의 하나 이상의 실시예들에 따르면, 루마 예측 샘플 값은 입력 위치를 포함하는 코딩 유닛(CU)에서의 모든 루마 예측 샘플들의 평균이다. 이러한 실시예들에서, 루마 잔차들에 대한 스케일링 인자를 계산하기 위해 크로마 스케일링 도출 방법이 사용되는데, 더 구체적으로, 각각의 루마 잔차 샘플에 대한 하나의 스케일링 인자를 별도로 도출하는 대신, 루마 예측 샘플들의 평균에 근거하여 계산되는 하나의 공유된 스케일링 인자가 전체 CU의 루마 잔차 샘플들을 스케일링하기 위해 사용된다.
크로마 샘플 재구성 절차의 또 하나의 다른 실시예에 따르면, 루마 예측 샘플 값은 입력 위치를 포함하는 코딩 유닛(CU)으로부터 세분화(sub-divide)된 미리-정의된 서브블록 내의 모든 루마 예측 샘플들의 평균이다. 이러한 실시예에서, 하나의 CU는 먼저 다수의 M×N 서브블록들로 동등하게 파티션되고, 그 다음에, 각각의 서브블록에 대해, 모든 혹은 부분적 루마 예측 샘플들이, 서브블록의 루마 잔차 및 크로마 잔차 양쪽 모두를 스케일링하기 위해 사용되는 대응하는 스케일링 인자를 도출하기 위해 사용된다. 제 1 방법과 비교하여, 제 2 방법은 추정된 스케일링 인자의 공간적 정밀도를 향상시킬 수 있는데, 왜냐하면 서브블록 외부에 있는 덜 상관된 루마 예측 샘플들이 서브블록의 스케일링 인자를 계산하는 것으로부터 배제되기 때문이다. 한편, 제 2 방법은 또한, 하나의 서브블록 내의 루마 및 크로마 잔차들의 스케일링이 서브블록의 루마 예측이 완료된 직후 시작될 수 있는 것을 고려하면, 즉 전체 CU의 루마 예측 샘플들의 전체 발생을 기다리지 않고 시작될 수 있는 것을 고려하면, 루마 및 크로마 잔차 재구성의 레이턴시를 감소시킬 수 있다.
크로마 샘플 재구성 절차의 제 3 실시예에 따르면, 루마 예측 샘플 도메인 값은 병치된 루마 예측 샘플을 포함한다. 이러한 실시예에서, 루마 잔차 스케일링 방법은 크로마 잔차들을 스케일링하는 것으로 확장되고, 그리고 각각의 크로마 잔차 샘플에 대한 상이한 스케일링 인자들은 병치된 루마 예측 샘플 값에 근거하여 도출된다.
크로마 샘플 재구성 절차의 앞서의 실시예들에서는, 크로마 잔차들의 스케일링을 행하기 위해서 루마 스케일링 인자를 계산하기 위해 사용되는 동일한 LUT를 사용하는 것이 제안된다. 하나의 예에서, 크로마 잔차에 대한 CU-레벨 스케일링 인자(ScaleC)를 도출하기 위해, 다음과 같은 것이 후속될 수 있다.
1) CU 내의 (본래 도메인에서 나타내어지는) 루마 예측 샘플들의 평균(avgY로서 표시됨)을 계산함
2) avgY가 속하는 단편-별 선형 모델의 대응하는 세그먼트 인덱스(IdxY)를 찾거나 획득함
3) ScaleC의 값을 다음과 같은 것으로서 계산함
ScaleC = scaleForward[IdxY]
여기서 scaleForward[i](i = 0 ... 15)는 하나의 미리-정의된 16-단편 LUT이고, 이것은 다음과 같이 계산됨
scaleForward[i] = (OrgCW << SCALE_FP_PREC)/SignaledCW[i]
여기서 OrgCW 및 SignaledCW[i]는 각각 본래 도메인 및 맵핑된 도메인 내의 i-번째 세그먼트의 코드워드들의 수이고, 그리고 SCALE_FP_PREC는 스케일링 인자의 정밀도이다.
앞서의 예는 현재의 CU의 각각의 서브블록별로 크로마 잔차에 대한 스케일링 인자가 도출되는 경우로 쉽게 확장될 수 있다. 그러한 경우에, 앞서의 제 1 단계에서, avgY는 서브블록의 본래 도메인에서의 루마 예측 샘플들의 평균으로서 계산되게 되고, 반면 단계 2 및 단계 3은 동일하게 유지된다.
제 2 크로마 샘플 재구성 절차에서는, 도 11에서 예시되는 바와 같이, 코딩 유닛(CU)에 대한 루마 예측 프로세스 동안 다수의 미리-정의된 중간 루마 예측 스테이지들을 스킵(skipping)함으로써 복수의 루마 예측 샘플들이 획득되고(1101), CU에서 크로마 잔차 샘플들에 대한 스케일링 인자들을 도출하기 위해, 획득된 복수의 루마 예측 샘플들이 사용되고(1102), CU에서 크로마 잔차 샘플들을 스케일링하기 위해 스케일링 인자들이 사용되고(1103), 그리고 CU에서 크로마 예측 샘플들과 스케일링된 크로마 잔차 샘플들을 더함으로써, 재구성된 크로마 샘플이 계산된다(1104).
제 2 크로마 샘플 재구성 절차의 하나 이상의 실시예들에 따르면, 미리-정의된 중간 루마 예측 스테이지들은 디코더-측 모션 벡터 도출(DMVR), 양-방향성 광학 흐름(BDOF) 및 결합형 인터 및 인트라 예측(CIIP)의 하나 이상의 양방향-예측 모듈들을 포함한다. 이러한 실시예들에서, DMVR, BDOF/PROF, CIIP 인트라/인터 결합 프로세스 전에 도출된 인터 예측 샘플들은 크로마 잔차들에 대한 스케일링 인자를 도출하기 위해 사용된다.
도 12는 제 2 크로마 샘플 재구성 절차의 이러한 실시예의 하나의 예에서 LMCS 디코딩 프로세스의 작업흐름을 예시하는 흐름도이고, 여기서는 DMVR, BDOF 및 CIIP가 크로마 스케일링을 위한 루마 예측 샘플들을 발생시키기 위해 적용되지 않는다. 여기서는, DMVR(1203), BDOF(1204) 및/또는 CIIP의 루마 인트라 예측 부분(1205)이 완전히 완료되기를 기다리는 대신에, 크로마 잔차 스케일링 프로세스(1208)는 초기 L0 및 L1 루마 예측(1201 및 1202)에 근거하는 예측 샘플들(1221 및 1222)이 이용가능하게 되자마자 시작될 수 있다.
도 12에서는, 본래 평균화 동작(1206)에 추가하여 하나의 추가적인 평균화 동작(1211)이 DMVR(1203), BDOF(1204), 및/또는 CIIP(1205) 이전에 초기 L0 및 L1 예측 샘플들(1221 및 1222)을 결합하기 위해 필요하다.
복잡성을 감소시키기 위해, 제 2 크로마 샘플 재구성 절차의 이러한 실시예의 제 2 예에서, 초기 L0 예측 샘플들은 크로마 잔차들에 대한 스케일링 인자를 도출하기 위해 사용될 수 있다.
도 13은 제 2 크로마 샘플 재구성 절차의 이러한 실시예의 제 2 예에서 LMCS 디코딩 프로세스의 작업흐름을 예시하는 흐름도이고, 여기서는 초기 단방향-예측 신호가 크로마 스케일링을 위한 루마 예측 샘플들을 발생시키기 위해 적용된다. 본래의 평균화 동작(1306)에 추가하여 어떠한 추가적인 평균화 동작도 필요하지 않다. 초기 L0 예측 샘플들(1321)은 DMVR(1303), BDOF(1304), 및/또는 CIIP(1305) 전에 크로마 잔차들을 위한 스케일링 인자를 도출하기 위해 사용된다.
제 2 크로마 샘플 재구성 절차의 이러한 실시예의 제 3 예에서, 하나의 초기 예측 신호(L0 또는 L1)는 크로마 잔차 스케일링 인자를 도출하기 위해 사용되는 루마 예측 샘플들로서 적응적 방식으로 선택된다. 이러한 예의 하나의 가능한 구현예에서는, 초기 예측 신호(L0 또는 L1) 사이에서, 해당 참조 픽처가 현재의 픽처에 대해 더 작은 픽처 순서 카운트(Picture Order Count, POC) 거리를 갖는 것이 크로마 잔차 스케일링 인자를 도출하기 위해 선택된다.
제 2 크로마 샘플 재구성 절차의 또 하나의 다른 실시예에서, 크로마 잔차 스케일링 인자를 결정하기 위해 사용되는 인터 예측 샘플들을 발생시키기 위해 CIIP를 활성화시키는 동안 DMVR 및 BDOF/PROF만을 비활성화시키는 것이 제안된다. 구체적으로, 이러한 방법에서, DMVR 및 BDOF/PROF 전에 도출된 인터 예측 샘플들이 먼저 평균화되고, 그 다음에, 이것은 CIIP를 위해 인트라 예측 샘플들과 결합되며, 최종적으로, 결합된 예측 샘플들은 크로마 잔차 스케일링 인자를 결정하기 위한 예측 샘플들로서 사용된다.
제 2 크로마 샘플 재구성 절차의 또 다른 실시예에서, 크로마 잔차 스케일링 인자를 결정하기 위해 사용되는 예측 샘플들을 발생시키기 위해 DMVR 및 CIIP를 유지시키는 동안 BDOF/PROF만을 비활성화시키는 것이 제안된다.
제 2 크로마 샘플 재구성 절차의 또 다른 실시예에서, 크로마 잔차 스케일링 인자를 결정하기 위해 사용되는 루마 예측 샘플들을 도출할 때 DMVR를 비활성화시키는 동안 BDOF/PROF 및 CIIP만을 유지시키는 것이 제안된다.
더욱이, 비록 제 2 크로마 샘플 재구성 절차의 앞서의 실시예들에서의 방법들이 크로마 예측 잔차 스케일링의 레이턴시를 감소시키도록 설계되는 것으로 이들이 예시되고 있지만, 이러한 방법들은 또한 루마 예측 잔차 스케일링의 레이턴시를 감소시키기 위해 사용될 수 있다고 언급할 가치가 있다. 예를 들어, 이러한 모든 방법들은 또한 섹션 "예측-의존적 잔차 스케일링에 근거하는 루마 맵핑"에서 설명된 PDRS 방법에 적용될 수 있다.
기존의 DMVR 설계에 따르면, 컴퓨팅연산 복잡성을 줄이기 위해, DMVR 모션 정제를 위해 사용되는 예측 샘플들은 디폴트 8-탭 보간(default 8-tap interpolation) 대신에 2-탭 이중선형 필터(2-tap bilinear filter)들을 사용하여 발생된다. 정제된 모션이 결정된 이후, 디폴트 8-탭 필터들이 현재의 CU의 최종 예측 샘플들을 발생시키기 위해 적용될 것이다. 따라서, DMVR에 의해 초래되는 크로마 잔차 디코딩 레이턴시를 감소시키기 위해서, 크로마 잔차들의 스케일링 인자를 결정하기 위해 이중선형 필터들에 의해 발생되는 루마 예측 샘플들(만약 현재의 CU가 양방향-예측된다면 L0 및 L1 예측 샘플들의 평균)을 사용하는 것이 제안된다.
하나의 크로마 잔차 샘플 재구성 절차에 따르면, 도 14에서 예시되는 바와 같이, 디코더-측 모션 벡터 도출(DMVR)의 이중선형 필터의 출력으로부터 하나 이상의 루마 예측 샘플 값들이 선택되고(1401), 하나 이상의 선택된 루마 예측 샘플 값들이 입력 비디오의 본래 코딩 비트 깊이와 동일한 비트 깊이를 갖는 또 다른 하나 이상의 루마 예측 샘플 값들로 조정되고(1402), 하나 이상의 크로마 잔차 샘플들을 디코딩하기 위한 스케일링 인자를 도출하기 위해 입력 비디오의 본래 코딩 비트 깊이와 동일한 비트 깊이를 갖는 루마 예측 샘플 값들이 사용되고(1403), 하나 이상의 크로마 잔차 샘플들을 스케일링하기 위해 스케일링 인자가 사용되고(1404), 그리고 하나 이상의 스케일링된 크로마 잔차 샘플들과 이들의 대응하는 크로마 예측 샘플들을 더함으로써 하나 이상의 크로마 잔차 샘플들이 재구성된다(1405).
크로마 잔차 샘플 재구성 절차의 하나 이상의 실시예들에서, DMVR의 이중선형 필터의 출력으로부터 하나 이상의 루마 예측 샘플 값들을 선택하는 것은 DMVR의 이중선형 필터의 출력으로부터 L0 및 L1 루마 예측 샘플들을 선택하는 것을 포함한다.
도 15는 크로마 잔차 샘플 재구성 절차의 하나의 이러한 실시예에서 LMCS 디코딩 프로세스의 작업흐름을 예시하는 흐름도이다. DMVR(1503)의 이중선형 필터(1512) 컴포넌트의 출력으로부터의 L0 및 L1 예측 샘플들(1521 및 1522)은 하나 이상의 크로마 잔차 샘플들을 디코딩하기 위해 크로마 잔차 스케일링(1507)에서 사용될 크로마 잔차 스케일링 입력(1523)을 도출하기 위해 평균(1511)에 공급된다.
이러한 실시예들에서는, 비트 코드 깊이의 문제가 있다. DMVR에 의해 사용되는 내부 저장 크기를 줄이기 위해서, DMVR의 이중선형 필터들에 의해 발생되는 중간 L0 및 L1 예측 샘플들은 10-비트 정밀도에 있다. 이것은 14-비트와 동일한 정규 쌍방향-예측의 중간 예측 샘플들의 표현 비트-깊이(representation bit-depth)와는 다르다. 따라서, 이중선형 필터들로부터 출력된 중간 예측 샘플들은 상이한 정밀도로 인해 크로마 잔차 스케일링 인자를 결정하기 위해 직접적으로 적용될 수 없다.
이러한 문제를 처리하기 위해, 먼저 DMVR 중간 비트-깊이를 정규 모션 보상된 보간을 위해 사용되는 중간 비-깊이에 맞춰 정렬시키는 것, 즉 비트-깊이를 10-비트로부터 14-비트로 증가시키는 것이 제안된다. 이후에, 정규 양방향-예측 신호를 발생시키기 위해 적용되는 기존의 평균 프로세스는 크로마 잔차 스케일링 인자의 결정을 위해 대응하는 예측 샘플들을 발생시키기 위해 재사용될 수 있다.
이러한 실시예들의 하나의 예에서, 하나 이상의 선택된 루마 예측 샘플 값들을 입력 비디오의 본래 코딩 비트 깊이와 동일한 비트 깊이를 갖는 또 다른 하나 이상의 루마 예측 샘플 값들로 조정하는 것은, DMVR의 이중선형 필터의 출력으로부터의 L0 및 L1 루마 예측 샘플들의 내부 비트 깊이를 좌측 시프트(left shifting)를 통해 14-비트로 증가시키는 것, 14-비트 시프트된 L0 및 L1 루마 예측 샘플 값들을 평균화함으로써 14-비트 평균 루마 예측 샘플 값을 획득하는 것, 그리고 14-비트 평균 루마 예측 샘플 값들의 내부 비트 깊이를 우측 시프트(right shifting)를 통해 입력 비디오의 본래 코딩 비트 깊이로 변경시킴으로써 14-비트 평균 루마 예측 샘플 값들을 변환하는 것을 포함한다.
더 구체적으로, 이러한 예에서, 크로마 스케일링 인자는 본 단락 바로 아래의 상자에서 설명되는 단계들에 의해 결정된다.
Figure pct00024
크로마 잔차 샘플 재구성 절차의 다른 실시예들에서, DMVR의 이중선형 필터의 출력으로부터 하나 이상의 루마 예측 샘플 값들을 선택하는 것, 그리고 하나 이상의 선택된 루마 예측 샘플 값들을 입력 비디오의 본래 코딩 비트 깊이와 동일한 비트 깊이를 갖는 또 다른 하나 이상의 루마 예측 샘플 값들로 조정하는 것은, DMVR의 이중선형 필터의 출력으로부터 L0 및 L1 루마 예측 샘플들 중 하나의 루마 예측 샘플을 선택하는 것, 하나의 선택된 루마 예측 값의 내부 비트 깊이를 시프트를 통해 입력 비디오의 본래 코딩 비트 깊이로 변경시킴으로써 하나의 선택된 루마 예측 샘플을 조정하는 것, 그리고 조정된 루마 예측 샘플을 입력 비디오의 본래 코딩 비트 깊이와 동일한 비트 깊이를 갖는 루마 예측 샘플로서 사용하는 것을 포함한다.
도 16은 크로마 잔차 샘플 재구성 절차의 하나의 이러한 다른 실시예에서 LMCS 디코딩 프로세스의 작업흐름을 예시하는 흐름도이다. DMVR(1603)의 이중선형 필터(1612) 컴포넌트의 출력으로부터의 L0 예측 샘플들(1621)은 하나 이상의 크로마 잔차 샘플들을 디코딩하기 위해 크로마 잔차 스케일링(1607)에서 사용된다.
크로마 잔차 샘플 재구성 절차의 하나의 이러한 다른 실시예의 하나의 예에서, 크로마 스케일링 인자는, 본 단락 바로 아래의 상자에서 설명되는 바와 같이, 이중선형 필터들로부터 출력된 루마 샘플들을 입력 비디오의 본래 코딩 비트-깊이로 시프트시킴으로써 결정된다.
Figure pct00025
제 2 크로마 잔차 샘플 재구성 절차에 따르면, 도 17에서 예시되는 바와 같이, 참조 픽처들로부터 하나 이상의 루마 참조 샘플 값들이 선택되고(1701), 하나 이상의 선택된 루마 참조 샘플 값들이 루마 샘플 값으로 변환되고(1702), 변환된 루마 샘플 값이 스케일링 인자를 도출하기 위해 사용되고(1703), 하나 이상의 크로마 잔차 샘플들을 스케일링하기 위해 스케일링 인자가 사용되고(1704), 그리고 하나 이상의 스케일링된 크로마 잔차 샘플들과 이들의 대응하는 크로마 예측 샘플들을 더함으로써 하나 이상의 크로마 잔차 샘플들이 재구성된다(1705).
제 2 크로마 잔차 샘플 재구성 절차의 하나 이상의 실시예들에서, 참조 픽처들로부터 하나 이상의 루마 참조 샘플 값들을 선택하는 것 및 하나 이상의 선택된 루마 참조 샘플 값들을 루마 샘플 값으로 변환하는 것은, L0 및 L1 참조 픽처들로부터 L0 및 L1 루마 참조 샘플 값들 양쪽 모두를 획득하는 것, 그리고 L0 및 L1 루마 참조 샘플 값들을 변환된 루마 샘플 값으로서 평균화하는 것을 포함한다.
제 2 크로마 잔차 샘플 재구성 절차의 다른 실시예들에서, 참조 픽처들로부터 하나 이상의 루마 참조 샘플들을 선택하는 것 및 하나 이상의 선택된 루마 참조 샘플들을 루마 샘플 값으로 변환하는 것은, L0 및 L1 참조 픽처들로부터 L0 및 L1 루마 참조 샘플 값들 중 하나의 루마 참조 샘플 값을 선택하는 것, 그리고 하나의 선택된 루마 참조 샘플 값들을 변환된 루마 샘플 값으로서 사용하는 것을 포함한다.
기존의 LMCS 설계에 따르면, 현재의 CU가 위치하고 있는 64x64 영역에 이웃하는 재구성된 루마 샘플들은 영역 내의 CU들에 대한 크로마 잔차 스케일링 인자를 컴퓨팅하기 위해 사용된다. 추가적으로, 재구성된 루마 이웃 샘플들을 평균이 계산되기 전에 내부 비트-깊이의 동적 범위로(즉, 범위 [0, (1<<비트깊이) - 1]에서) 클립핑하기 위해 하나의 클립핑 동작, 즉 Clip1()이 적용된다.
구체적으로, 이러한 방법은 먼저, 현재의 CU가 속하는 대응하는 64 x 64 영역의 64개의 좌측의 이웃하는 루마 샘플들 및 64개의 상단의 이웃하는 루마 샘플들을 페치(fetch)하고, 그 다음에, 좌측 및 상단의 이웃하는 샘플들의 평균, 즉 avgY를 계산하며 LMCS 단편별 선형 모델에서 avgY의 세그먼트 인덱스(Y1dx)를 찾고, 그리고 최종적으로 크로마 잔차(CScaleInv = cScaleInv[Y1dx])를 도출한다.
구체적으로, 현재의 VVC 초안에서는, 대응하는 평균 루마를 도출하는 방법이 다음과 같이 설명되는데, 여기서 Clip1() 동작의 적용은 두드러진 폰트 서체 및 크기로 보여진다.
변수(varScale)의 도출을 위해 다음과 같이 정리된 단계들이 적용된다.
변수(invAvgLuma)가 다음과 같이 도출된다.
- i=0..(2 * sizeY - 1)을 갖는 배열(recLuma[i]) 및 변수(cnt)가 다음과 같이 도출된다.
- 변수(cnt)가 0과 동일하도록 설정된다.
- availL이 참(TRUE)과 동등한 경우, i = 0..sizeY - 1을 갖는 배열(recLuma[i])이 i = 0..sizeY - 1을 갖는 currPic[xCuCb - 1][Min(yCuCb + i, pic_height_in_luma_samples - 1)]과 동일하도록 설정되고, 그리고 cnt가 sizeY와 동일하도록 설정된다.
- availT가 참(TRUE)과 동등한 경우, i = 0..sizeY - 1을 갖는 배열(recLuma[cnt + i])이 i = 0..sizeY - 1을 갖는 currPic[Min(xCuCb + i, pic_width_in_luma_samples - 1)][yCuCb - 1]과 동일하도록 설정되고, 그리고 cnt가 (cnt + sizeY)와 동일하도록 설정된다.
- 변수(invAvgLuma)가 다음과 같이 도출된다.
- 만약 cnt가 0보다 크다면, 다음과 같은 것이 적용된다.
Figure pct00026
- 그렇지 않다면(cnt가 0과 동일하다면), 다음과 같은 것이 적용된다.
invAvgLuma = 1 << (비트깊이-1)
하지만, 재구성 프로세스에서, 예측 샘플들을 하나의 CU의 잔차 샘플들에 더한 이후, 결과적인 샘플 값들은 이미 내부 비트-깊이의 동적 범위로 클립핑된다. 이것이 의미하는 것은 현재의 64x64 영역 주변의 모든 이웃하는 재구성된 루마 샘플들이 내부 비트-깊이의 범위 내에 있도록 보장된다는 것이다. 따라서, 이들의 평균, 즉, avgY는 또한 이러한 범위를 넘어갈 수 없다. 결과로서, 기존의 클립핑(즉, Clip1())은 대응하는 크로마 잔차 스케일링 인자를 계산하는데 불필요하다. LMCS 설계의 복잡성 및 메모리 요건들을 더 감소시키기 위해서, 크로마 잔차 스케일링 인자를 도출하기 위해 이웃하는 재구성된 루마 샘플들의 평균을 계산할 때로부터 클립핑 동작을 제거하는 것이 제안된다.
본 출원의 제 1 실시형태에 따르면, 도 18에서 예시되는 바와 같이, CU의 디코딩 동안, 제 1 미리-결정된 영역으로부터 복수의 재구성된 루마 샘플들이 선택되고(제 1 미리-결정된 영역은 CU가 위치하고 있는 제 2 미리-결정된 영역에 이웃하여 있음)(1801), 복수의 재구성된 루마 샘플들의 평균이 계산되고(1802), 그리고 CU를 디코딩하기 위한 크로마 잔차 스케일링 인자를 도출할 때, 어떠한 클립핑도 없이, 복수의 재구성된 루마 샘플들의 평균이 직접적으로 사용된다(1803).
본 출원의 제 1 실시형태의 하나 이상의 실시예들에서, 복수의 재구성된 루마 샘플들의 평균은 복수의 재구성된 루마 샘플들의 산술 평균(arithmetic average)이다.
본 출원의 제 1 실시형태의 하나 이상의 실시예들에서, CU를 디코딩하기 위한 크로마 잔차 스케일링 인자를 도출할 때, 어떠한 클립핑도 없이, 복수의 재구성된 루마 샘플들의 평균을 직접적으로 사용하는 것은, 미리-정의된 단편별 선형 모델에서 평균에 대한 세그먼트 인덱스를 식별하는 것, 및 세그먼트의 선형 모델의 기울기(slope)에 근거하여 CU를 디코딩하기 위한 크롬 잔차 스케일링 인자를 도출하는 것을 포함한다.
본 출원의 제 1 실시형태의 하나 이상의 실시예들에서, 제 1 미리-결정된 영역 내의 복수의 재구성된 루마 샘플들은, 제 1 미리-결정된 영역 내에 루마 예측 샘플들 및 루마 잔차 샘플들을 발생시키는 것, 루마 잔차 샘플들을 루마 예측 샘플에 더하는 것, 및 더해진 루마 샘플들을 코딩 비트-깊이의 동적 범위로 클립핑하는 것을 수행함으로써 발생된다.
본 출원의 제 1 실시형태의 하나 이상의 실시예들에서, 복수의 재구성된 루마 샘플들은 복수의 순방향 맵핑된 인터 루마 재구성된 샘플들이다.
본 출원의 제 1 실시형태의 하나 이상의 실시예들에서, 제 2 미리-결정된 영역은 CU가 위치하고 있는 64x64 영역이다.
하나의 예에서, 도 19에서 예시되는 바와 같이, 제 1 미리-결정된 영역은 제 2 미리-결정된 영역(1904) 바로 위에 있는 1x64 영역(1902) 내의 상단 이웃 샘플들을 포함할 수 있다. 대안적으로 또는 추가적으로, 제 1 미리-결정된 영역은 제 2 미리-결정된 영역(1904)의 바로 좌측에 있는 64x1 영역(1903) 내의 좌측 이웃 샘플들을 포함할 수 있다.
하나 이상의 실시예들에서, 본 명세서에서 설명되는 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 만약 소프트웨어로 구현된다면, 이러한 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터-판독가능 매체 위에 저장될 수 있거나 컴퓨터-판독가능 매체를 통해 전송될 수 있으며, 하드웨어-기반 프로세싱 유닛에 의해 실행될 수 있다. 컴퓨터-판독가능 매체들은, 데이터 저장 매체들과 같은 유형의 매체에 대응하는 컴퓨터-판독가능 저장 매체들을 포함할 수 있고, 또는 예를 들어, 통신 프로토콜에 따라 하나의 장소로부터 또 하나의 다른 장소로 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수 있다. 이러한 방식으로, 컴퓨터-판독가능 매체들은 일반적으로 (1) 비-일시적인 유형의 컴퓨터-판독가능 저장 매체들 또는 (2) 신호 혹은 반송파(carrier wave)와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체들은 본 출원에서 설명되는 구현예들의 구현을 위해서 명령들, 코드 및/또는 데이터 구조들을 검색하기 위해 하나 이상의 컴퓨터들 혹은 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터-판독가능 매체를 포함할 수 있다.
더욱이, 앞서의 방법들은 하나 이상의 회로들을 포함하는 장치를 사용하여 구현될 수 있고, 이러한 회로들은 애플리케이션 특정 집적 회로(Application Specific Integrated Circuit, ASIC)들, 디지털 신호 프로세서(Digital Signal Processor, DSP)들, 디지털 신호 프로세싱 디바이스(Digital Signal Processing Device, DSPD)들, 프로그래밍가능 로직 디바이스(Programmable Logic Device, PLD)들, 현장 프로그래밍가능 게이트 배열(Field Programmable Gate Array, FPGA)들, 제어기들, 마이크로-제어기들, 마이크로프로세서들, 또는 다른 전자 컴포넌트들을 포함한다. 장치는 앞서 설명된 방법들을 수행하기 위해 다른 하드웨어 또는 소프트웨어 컴포넌트들과 결합되어 이러한 회로들을 사용할 수 있다. 각각의 모듈, 서브-모듈, 유닛, 또는 앞에서 개시되는 서브-유닛은 하나 이상의 회로들을 사용하여 적어도 부분적으로 구현될 수 있다.
본 개시내용은 애플리케이션 특정 집적 회로들, 프로그래밍가능 로직 배열들, 및 다른 하드웨어 디바이스들과 같은 전용 하드웨어 구현예들을 포함할 수 있다. 하드웨어 구현예들은 본 명세서에서 설명되는 방법들 중 하나 이상을 구현하도록 구성될 수 있다. 다양한 구현예들의 장치 및 시스템들을 포함할 수 있는 예들은 다양한 전자 시스템 및 컴퓨팅 시스템을 광범위하게 포함할 수 있다. 본 명세서에서 설명되는 하나 이상의 예들은, 모듈들 사이에서 그리고 모듈들을 통해 전달될 수 있는 관련된 제어 및 데이터 신호들을 갖는 둘 이상의 특정 상호연결된 하드웨어 모듈들 혹은 디바이스들을 사용하여 또는 애플리케이션-특정 집적 회로의 부분들로서 기능들을 구현할 수 있다. 이에 따라, 본 명세서에서 개시되는 장치 또는 시스템은 소프트웨어, 펌웨어, 및 하드웨어 구현예들을 포괄할 수 있다. 용어들인 "모듈(module)", "서브-모듈(sub-module)", "회로(circuit)", "서브-회로(sub-circuit)", "회로(circuitry)", "서브-회로(sub-circuitry)", "유닛(unit)", 또는 "서브-유닛(sub-unit)"은 하나 이상의 프로세서들에 의해 실행될 수 있는 코드 또는 명령들을 저장하는 (공유된, 전용, 혹은 그룹) 메모리를 포함할 수 있다. 본 명세서에서 언급되는 모듈은 저장된 코드 또는 명령들을 갖거나 갖지 않는 하나 이상의 회로를 포함할 수 있다. 모듈 또는 회로는 연결되는 하나 이상의 컴포넌트들을 포함할 수 있다.
본 발명의 다른 실시예들은 본 명세서에서 개시되는 본 발명의 사양 및 실시의 고려로부터 본 발명의 기술분야에서 숙련된 자들에게 명백할 것이다. 본 출원은 본 발명의 일반적인 원리들을 따르는 본 발명의 임의의 변형들, 용도들, 또는 개조들을 포괄하도록 의도된 것이고, 여기에는 본 발명의 기술분야에서 알려진 혹은 통상적인 실시 내에 있는 것으로서 본 개시내용으로부터의 그러한 이탈들이 포함된다. 사양 및 예들은 단지 예시적인 것으로서 고려되도록 의도된 것이고 본 발명의 진정한 범위 및 사상은 다음의 청구항들에 의해 표시된다.
본 발명이 앞에서 설명되는 그리고 수반된 도면들에서 예시되는 정확한 예들에 한정되지 않는다는 것, 그리고 다양한 수정들 및 변경들이 본 발명의 범위로부터 벗어남이 없이 행해질 수 있다는 것이 이해될 것이다. 본 발명의 범위는 첨부된 청구항들에 의해서만 제한되도록 의도된 것이다.

Claims (21)

  1. 비디오 코딩(video coding)을 위한 방법으로서,
    상기 방법은,
    코딩 유닛(Coding Unit, CU)의 디코딩(decoding) 동안, 제 1 미리-결정된 영역으로부터 복수의 재구성된 루마 샘플(reconstructed luma sample)들을 선택하는 것과, 상기 제 1 미리-결정된 영역은 상기 CU가 위치하고 있는 제 2 미리-결정된 영역에 이웃하여 있으며;
    상기 복수의 재구성된 루마 샘플들의 평균을 계산하는 것과; 그리고
    상기 CU를 디코딩하기 위한 크로마 잔차 스케일링 인자(chroma residual scaling factor)를 도출할 때, 어떠한 클립핑(clipping)도 없이, 상기 복수의 재구성된 루마 샘플들의 상기 평균을 직접적으로 사용하는 것을
    포함하는 것을 특징으로 하는 비디오 코딩을 위한 방법.
  2. 제1항에 있어서,
    상기 복수의 재구성된 루마 샘플들의 상기 평균은 상기 복수의 재구성된 루마 샘플들의 산술 평균(arithmetic average)인 것을 특징으로 하는 비디오 코딩을 위한 방법.
  3. 제1항에 있어서,
    상기 CU를 디코딩하기 위한 크로마 잔차 스케일링 인자를 도출할 때, 어떠한 클립핑도 없이, 상기 복수의 재구성된 루마 샘플들의 상기 평균을 직접적으로 사용하는 것은,
    미리-정의된 단편별 선형 모델(piecewise linear model)에서 상기 평균에 대한 세그먼트 인덱스(segment index)를 식별하는 것과, 그리고
    세그먼트의 상기 선형 모델의 기울기(slope)에 근거하여 상기 CU를 디코딩하기 위한 상기 크롬 잔차 스케일링 인자를 도출하는 것을
    포함하는 것을 특징으로 하는 비디오 코딩을 위한 방법.
  4. 제1항에 있어서,
    상기 제 1 미리-결정된 영역 내의 상기 복수의 재구성된 루마 샘플들은,
    상기 제 1 미리-결정된 영역 내에 루마 예측 샘플(luma prediction sample)들 및 루마 잔차 샘플(luma residual sample)들을 발생시키는 것과,
    상기 루마 잔차 샘플들을 상기 루마 예측 샘플들에 더하는 것과,
    상기 더해진 루마 샘플들을 상기 코딩 비트-깊이(coding bit-depth)의 상기 동적 범위(dynamic range)로 클립핑하는 것을
    수행함으로써 발생되는 것을 특징으로 하는 비디오 코딩을 위한 방법.
  5. 제1항에 있어서,
    상기 복수의 재구성된 루마 샘플들은 복수의 순방향 맵핑된 인터 루마 재구성된 샘플(forward mapped inter luma reconstructed sample)들인 것을 특징으로 하는 비디오 코딩을 위한 방법.
  6. 제1항에 있어서,
    상기 제 2 미리-결정된 영역은 상기 CU가 위치하고 있는 64x64 영역인 것을 특징으로 하는 비디오 코딩을 위한 방법.
  7. 제6항에 있어서,
    상기 제 1 미리-결정된 영역은,
    상기 제 2 미리-결정된 영역 바로 위에 있는 상기 1x64 영역, 및
    상기 제 2 미리-결정된 영역의 바로 좌측에 있는 상기 64x1 영역을
    포함하는 것을 특징으로 하는 비디오 코딩을 위한 방법.
  8. 컴퓨팅 디바이스(computing device)로서,
    상기 컴퓨팅 디바이스는,
    하나 이상의 프로세서들과;
    상기 하나 이상의 프로세서들에 결합된 비-일시적 저장소와; 그리고
    상기 비-일시적 저장소 내에 저장된 복수의 프로그램들을
    포함하고,
    상기 복수의 프로그램들은 상기 하나 이상의 프로세서들에 의해 실행될 때 상기 컴퓨팅 디바이스로 하여금 동작들을 수행하도록 하고,
    상기 동작들은,
    코딩 유닛(CU)의 디코딩 동안, 제 1 미리-결정된 영역으로부터 복수의 재구성된 루마 샘플들을 선택하는 것과, 상기 제 1 미리-결정된 영역은 상기 CU가 위치하고 있는 제 2 미리-결정된 영역에 이웃하여 있으며;
    상기 복수의 재구성된 루마 샘플들의 평균을 계산하는 것과; 그리고
    상기 CU를 디코딩하기 위한 크로마 잔차 스케일링 인자를 도출할 때, 어떠한 클립핑도 없이, 상기 복수의 재구성된 루마 샘플들의 상기 평균을 직접적으로 사용하는 것을
    포함하는 것을 특징으로 하는 컴퓨팅 디바이스.
  9. 제8항에 있어서,
    상기 복수의 재구성된 루마 샘플들의 상기 평균은 상기 복수의 재구성된 루마 샘플들의 산술 평균인 것을 특징으로 하는 컴퓨팅 디바이스.
  10. 제8항에 있어서,
    상기 CU를 디코딩하기 위한 크로마 잔차 스케일링 인자를 도출할 때, 어떠한 클립핑도 없이, 상기 복수의 재구성된 루마 샘플들의 상기 평균을 직접적으로 사용하는 것은,
    미리-정의된 단편별 선형 모델에서 상기 평균에 대한 세그먼트 인덱스를 식별하는 것과, 그리고
    세그먼트의 상기 선형 모델의 기울기에 근거하여 상기 CU를 디코딩하기 위한 상기 크롬 잔차 스케일링 인자를 도출하는 것을
    포함하는 것을 특징으로 하는 컴퓨팅 디바이스.
  11. 제8항에 있어서,
    상기 제 1 미리-결정된 영역 내의 상기 복수의 재구성된 루마 샘플들은,
    상기 제 1 미리-결정된 영역 내에 루마 예측 샘플들 및 루마 잔차 샘플들을 발생시키는 것과,
    상기 루마 잔차 샘플들을 상기 루마 예측 샘플들에 더하는 것과, 그리고
    상기 더해진 루마 샘플들을 코딩 비트-깊이의 동적 범위로 클립핑하는 것을
    수행함으로써 발생되는 것을 특징으로 하는 컴퓨팅 디바이스.
  12. 제8항에 있어서,
    상기 복수의 재구성된 루마 샘플들은 복수의 순방향 맵핑된 인터 루마 재구성된 샘플들인 것을 특징으로 하는 컴퓨팅 디바이스.
  13. 제8항에 있어서,
    상기 제 2 미리-결정된 영역은 상기 CU가 위치하고 있는 64x64 영역인 것을 특징으로 하는 컴퓨팅 디바이스.
  14. 제13항에 있어서,
    상기 제 1 미리-결정된 영역은,
    상기 제 2 미리-결정된 영역 바로 위에 있는 1x64 영역, 및
    상기 제 2 미리-결정된 영역의 바로 좌측에 있는 64x1 영역을
    포함하는 것을 특징으로 하는 컴퓨팅 디바이스.
  15. 하나 이상의 프로세서들을 갖는 컴퓨팅 디바이스에 의한 실행을 위한 복수의 프로그램들을 저장하는 비-일시적 컴퓨터 판독가능 저장 매체로서,
    상기 복수의 프로그램들은 상기 하나 이상의 프로세서들에 의해 실행될 때 상기 컴퓨팅 디바이스로 하여금 동작들을 수행하도록 하고,
    상기 동작들은,
    코딩 유닛(CU)의 디코딩 동안, 제 1 미리-결정된 영역으로부터 복수의 재구성된 루마 샘플들을 선택하는 것과, 상기 제 1 미리-결정된 영역은 상기 CU가 위치하고 있는 제 2 미리-결정된 영역에 이웃하여 있으며;
    상기 복수의 재구성된 루마 샘플들의 평균을 계산하는 것과; 그리고
    상기 CU를 디코딩하기 위한 크로마 잔차 스케일링 인자를 도출할 때, 어떠한 클립핑도 없이, 상기 복수의 재구성된 루마 샘플들의 상기 평균을 직접적으로 사용하는 것을
    포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  16. 제15항에 있어서,
    상기 복수의 재구성된 루마 샘플들의 상기 평균은 상기 복수의 재구성된 루마 샘플들의 산술 평균인 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  17. 제15항에 있어서,
    상기 CU를 디코딩하기 위한 크로마 잔차 스케일링 인자를 도출할 때, 어떠한 클립핑도 없이, 상기 복수의 재구성된 루마 샘플들의 상기 평균을 직접적으로 사용하는 것은,
    미리-정의된 단편별 선형 모델에서 상기 평균에 대한 세그먼트 인덱스를 식별하는 것과, 그리고
    세그먼트의 상기 선형 모델의 기울기에 근거하여 상기 CU를 디코딩하기 위한 상기 크롬 잔차 스케일링 인자를 도출하는 것을
    포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  18. 제15항에 있어서,
    상기 제 1 미리-결정된 영역 내의 상기 복수의 재구성된 루마 샘플들은,
    상기 제 1 미리-결정된 영역 내에 루마 예측 샘플들 및 루마 잔차 샘플들을 발생시키는 것과,
    상기 루마 잔차 샘플들을 상기 루마 예측 샘플들에 더하는 것과, 그리고
    상기 더해진 루마 샘플들을 코딩 비트-깊이의 동적 범위로 클립핑하는 것을
    수행함으로써 발생되는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  19. 제15항에 있어서,
    상기 복수의 재구성된 루마 샘플들은 복수의 순방향 맵핑된 인터 루마 재구성된 샘플들인 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  20. 제15항에 있어서,
    상기 제 2 미리-결정된 영역은 상기 CU가 위치하고 있는 64x64 영역인 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  21. 제20항에 있어서,
    상기 제 1 미리-결정된 영역은,
    상기 제 2 미리-결정된 영역 바로 위에 있는 1x64 영역, 및
    상기 제 2 미리-결정된 영역의 바로 좌측에 있는 64x1 영역을
    포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
KR1020227033622A 2020-03-27 2021-03-26 비디오 코딩을 위한 예측 의존적 잔차 스케일링을 위한 방법들 및 디바이스들 KR20220141897A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063001229P 2020-03-27 2020-03-27
US63/001,229 2020-03-27
PCT/US2021/024493 WO2021195569A1 (en) 2020-03-27 2021-03-26 Methods and devices for prediction dependent residual scaling for video coding

Publications (1)

Publication Number Publication Date
KR20220141897A true KR20220141897A (ko) 2022-10-20

Family

ID=77890760

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227033622A KR20220141897A (ko) 2020-03-27 2021-03-26 비디오 코딩을 위한 예측 의존적 잔차 스케일링을 위한 방법들 및 디바이스들

Country Status (7)

Country Link
US (1) US20230050261A1 (ko)
EP (1) EP4128770A4 (ko)
JP (2) JP7460792B2 (ko)
KR (1) KR20220141897A (ko)
CN (1) CN115315948A (ko)
MX (1) MX2022011798A (ko)
WO (1) WO2021195569A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230069089A1 (en) * 2021-08-31 2023-03-02 Mediatek Inc. Video decoder with hardware shared between different processing circuits and associated video decoding method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
HUE045579T2 (hu) * 2010-04-13 2020-01-28 Ge Video Compression Llc Síkközi predikció
WO2017053432A1 (en) * 2015-09-21 2017-03-30 Vid Scale, Inc. Inverse reshaping for high dynamic range video coding
JP7164535B2 (ja) * 2017-06-29 2022-11-01 ドルビー ラボラトリーズ ライセンシング コーポレイション 統合された画像再構成及び映像符号化
EP3753253A1 (en) * 2018-02-14 2020-12-23 Dolby Laboratories Licensing Corporation Image reshaping in video coding using rate distortion optimization
WO2020060163A1 (ko) * 2018-09-17 2020-03-26 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR102639936B1 (ko) * 2019-03-08 2024-02-22 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 처리에서 모델-기반 변형에 대한 제약들
WO2020185888A1 (en) * 2019-03-12 2020-09-17 Beijing Dajia Internet Information Technology Co., Ltd. Video coding using multi-model linear model
WO2020204419A1 (ko) * 2019-04-03 2020-10-08 엘지전자 주식회사 적응적 루프 필터 기반 비디오 또는 영상 코딩
US20230145618A1 (en) * 2020-03-20 2023-05-11 Canon Kabushiki Kaisha High level syntax for video coding and decoding

Also Published As

Publication number Publication date
EP4128770A1 (en) 2023-02-08
US20230050261A1 (en) 2023-02-16
WO2021195569A1 (en) 2021-09-30
JP7460792B2 (ja) 2024-04-02
JP2023510428A (ja) 2023-03-13
CN115315948A (zh) 2022-11-08
EP4128770A4 (en) 2024-04-10
JP2024038198A (ja) 2024-03-19
MX2022011798A (es) 2022-10-07

Similar Documents

Publication Publication Date Title
US11172203B2 (en) Intra merge prediction
US11553173B2 (en) Merge candidates with multiple hypothesis
US11297348B2 (en) Implicit transform settings for coding a block of pixels
WO2020169082A1 (en) Intra block copy merge list simplification
JP2022522772A (ja) 映像処理における再整形情報の信号伝達
US9813730B2 (en) Method and apparatus for fine-grained motion boundary processing
CN113557721A (zh) 组合帧间和帧内预测模式的受约束和调节的应用
US20220116616A1 (en) Methods and devices for prediction dependent residual scaling for video coding
US20240137516A1 (en) Methods and devices for prediction dependent residual scaling for video coding
JP2024038198A (ja) ビデオ符号化方法、コンピューティング装置、プログラム、及びビットストリームを格納する方法
JP2024020201A (ja) ビデオ符号化用の予測依存残差スケーリングのための方法およびデバイス
WO2020146562A1 (en) System and method for improving combined inter and intra prediction
US20230067650A1 (en) Methods and devices for prediction dependent residual scaling for video coding
WO2024016955A1 (en) Out-of-boundary check in video coding
WO2024037645A1 (en) Boundary sample derivation in video coding
WO2024007789A1 (en) Prediction generation with out-of-boundary check in video coding
WO2024017224A1 (en) Affine candidate refinement

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
A302 Request for accelerated examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)