KR20210058856A - 저장된 파라미터들을 사용하는 비디오 인코딩 및 디코딩을 위한 로컬 조명 보상 - Google Patents

저장된 파라미터들을 사용하는 비디오 인코딩 및 디코딩을 위한 로컬 조명 보상 Download PDF

Info

Publication number
KR20210058856A
KR20210058856A KR1020217009072A KR20217009072A KR20210058856A KR 20210058856 A KR20210058856 A KR 20210058856A KR 1020217009072 A KR1020217009072 A KR 1020217009072A KR 20217009072 A KR20217009072 A KR 20217009072A KR 20210058856 A KR20210058856 A KR 20210058856A
Authority
KR
South Korea
Prior art keywords
block
parameters
lic
local
illumination compensation
Prior art date
Application number
KR1020217009072A
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 KR20210058856A publication Critical patent/KR20210058856A/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/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/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/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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
    • 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/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/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/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/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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/423Methods 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 characterised by memory arrangements
    • 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)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

비디오 인코딩 및 디코딩을 위한 로컬 조명 보상 시스템은 조명 보상 파라미터들을 저장하기 위한 메모리를 사용하고, 이웃 블록들의 재구성된 픽셀들에 대한 액세스를 요구하지 않는다. 조명 보상 파라미터들의 세트는 제한된 크기를 갖고 정보의 코딩 유닛 레벨 저장소로부터 분리되는 전용 버퍼에 저장된다. 버퍼는 예를 들어 온 더 플라이 방식으로 계산되거나(또는 소정의 다른 방식으로 결정되거나) 사전에 결정될 수 있는(예를 들어, 비디오 신호로부터 또는 디바이스로부터 획득될 수 있는) 조명 보상 파라미터들의 세트를 포함한다.

Description

저장된 파라미터들을 사용하는 비디오 인코딩 및 디코딩을 위한 로컬 조명 보상
본 실시예들 중 적어도 하나는 일반적으로 비디오 압축 분야에 관한 것이다. 적어도 일 실시예는 구체적으로는 로컬 조명 보상에 관한 것이며, 더 구체적으로는 로컬 조명 보상을 위해 저장된 파라미터들의 세트를 사용하는 것에 관한 것이다.
높은 압축 효율을 달성하기 위해, 이미지 및 비디오 코딩 스킴들은 보통, 비디오 콘텐츠에서 공간 및 시간 리던던시(spatial and temporal redundancy)를 이용하기 위해 예측 및 변환을 이용한다. 일반적으로, 인트라(intra) 또는 인터(inter) 예측을 이용하여 인트라 또는 인터 프레임 상관을 이용하고, 이어서 종종 예측 에러들 또는 예측 잔차들로서 표시되는, 원래의 블록과 예측된 블록 간의 차이들이 변환되고, 양자화되고, 엔트로피 코딩된다. 비디오를 재구성하기 위해, 압축된 데이터는 엔트로피 코딩, 양자화, 변환 및 예측에 대응하는 역프로세스들에 의해 디코딩된다.
본 실시예들 중 하나 이상은 저장된 조명 보상(IC) 파라미터들을 사용하고 인접 블록들의 재구성된 픽셀들에 대한 액세스를 요구하지 않는 로컬 조명 보상(LIC) 시스템에 관한 것이다.
적어도 일 실시예의 제1 양태에 따르면, 픽처 내의 블록의 픽처 데이터를 인코딩하기 위한 비디오 인코딩 방법은 적어도 로컬 조명 보상 기능의 사용을 나타내는 정보를 포함하는 시그널링 정보 및 사용될 로컬 조명 보상 파라미터들의 인덱스로 픽처 데이터를 인코딩하는 단계를 포함한다.
적어도 일 실시예의 제2 양태에 따르면, 픽처 내의 블록의 픽처 데이터를 인코딩하기 위한 비디오 디코딩 방법은 사용될 로컬 조명 보상 파라미터들의 인덱스를 획득하는 단계; 및 픽처 데이터를 디코딩하는 단계를 포함하고, 로컬 조명 보상 기능의 사용이 블록에 대응하는 시그널링 정보에서 시그널링될 때, 인덱스에 따라 획득된 로컬 조명 보상 파라미터들과 함께 로컬 조명 보상 기능을 사용한다.
적어도 일 실시예의 제3 양태에 따르면, 장치는 픽처 또는 비디오 내의 적어도 하나의 블록에 대한 픽처 데이터를 인코딩하기 위한 인코더를 포함하고, 인코더는 적어도 로컬 조명 보상 기능의 사용을 나타내는 정보를 포함하는 시그널링 정보 및 사용될 로컬 조명 보상 파라미터들의 인덱스로 픽처 데이터를 인코딩하도록 구성된다.
적어도 일 실시예의 제4 양태에 따르면, 장치는 픽처 또는 비디오 내의 적어도 하나의 블록에 대한 픽처 데이터를 디코딩하기 위한 디코더를 포함하고, 디코더는 버퍼로부터 사용될 로컬 조명 보상 파라미터들의 인덱스를 획득하고; 픽처 데이터를 디코딩하고, 로컬 조명 보상의 사용이 블록에 대응하는 시그널링 정보에서 시그널링될 때, 인덱스에 따라 버퍼로부터 획득된 로컬 조명 보상 파라미터들과 함께 로컬 조명 보상 기능을 사용하도록 구성된다.
적어도 일 실시예의 제5 양태에 따르면, 프로세서에 의해 실행가능한 프로그램 코드 명령어들을 포함하는 컴퓨터 프로그램이 제시되며, 컴퓨터 프로그램은 적어도 제1 또는 제2 양태에 따른 방법의 단계들을 구현한다.
적어도 일 실시예의 제8 양태에 따르면, 비일시적 컴퓨터 판독가능 매체 상에 저장되고 프로세서에 의해 실행가능한 프로그램 코드 명령어들을 포함하는 컴퓨터 프로그램 제품이 제시되고, 컴퓨터 프로그램 제품은 적어도 제1 또는 제2 양태에 따른 방법의 단계들을 구현한다.
도 1은 고효율 비디오 코딩(HEVC) 인코더와 같은 비디오 인코더(100)의 예의 블록도를 도시한다.
도 2는 HEVC 디코더와 같은 비디오 디코더(200)의 예의 블록도를 도시한다.
도 3은 다양한 양태들 및 실시예들이 구현되는 시스템의 예의 블록도를 도시한다.
도 4a는 압축된 도메인에서 코딩 트리 유닛 및 코딩 트리의 예를 도시한다.
도 4b는 CTU의 코딩 유닛들, 예측 유닛들 및 변환 유닛들로의 분할의 예를 도시한다.
도 5는 인터 모드에서의 픽처의 블록의 재구성에 사용되는 샘플들을 도시한다.
도 6은 현재 블록과 기준 블록 사이의 모션 벡터를 도시한다.
도 7은 2개의 기준을 사용하는 양방향 예측(Bi-Prediction)의 예를 도시한다.
도 8은 CU의 코딩 파라미터들을 시그널링하기 위한 전체 코딩 프로세스의 예를 도시한다.
도 9는 CU의 전체 엔트로피 디코딩 처리의 예를 도시한다.
도 10은 AMVP 모드에서의 CU와 연관된 인터 예측 정보의 코딩의 예를 도시한다.
도 11은 AMVP 코딩 유닛과 연관된 모션 정보를 디코딩하는 데 사용되는 프로세스의 예를 도시한다.
도 12는 LIC 파라미터들이 CU가 디코더 상에서 재구성된 후에 계산되고 CU의 우측 하위 부분(sub-portion)에 기초하여 계산되는 제1 실시예를 도시한다.
도 13은 도 12의 실시예가 사용될 때 주어진 CTU 내의 CU들이 디코더에 의해 처리되고 있는 동안의 LIC 파라미터 버퍼의 진화를 도시한다.
도 14는 LIC 파라미터들이 CU가 디코더 상에서 재구성된 후에 계산되고 CU의 하부 수평 하위 부분에 기초하여 계산되는 제2 실시예를 도시한다.
도 15는 도 14의 실시예가 사용될 때 주어진 CTU 내의 CU들이 디코더에 의해 처리되고 있는 동안의 LIC 파라미터 버퍼의 진화를 도시한다.
도 16은 CTU로부터 다음 CTU로의 스위칭의 전형적인 예를 도시한다.
도 17은 LIC 파라미터들이 CU가 디코더 상에서 재구성된 후에 계산되고 CU의 우측의 수직 부분에 걸쳐 그리고 이어서 CU의 수평 하부 부분에 걸쳐 계산되는 제3 실시예를 도시한다.
도 18은 제3 실시예가 사용될 때 주어진 CTU 내의 CU들이 디코더에 의해 처리되고 있는 동안의 2개의 버퍼에 포함된 LIC 파라미터들의 진화를 도시한다.
도 19는 제1 실시예에서 제안된 바와 같은 LIC 파라미터 메모리 저장소의 예를 도시한다.
도 20은 본 출원의 제1 실시예에 따른 CU 디코딩 프로세스의 예를 도시한다.
도 21a는 제안된 제1 실시예에 따른 AMVP 모드에서 코딩된 CU의 인터 예측 파라미터들을 디코딩하는 데 사용되는 예시적인 프로세스를 도시한다.
도 21b는 전용 메모리 버퍼에 저장된 LIC 파라미터들 중에서 현재 CU에 대 해 어느 LIC 파라미터들을 사용할지를 결정하기 위한 실시예를 도시한다.
도 22는 인코딩 및 디코딩 프로세스의 속도를 높이기 위한 제5 실시예를 도시한다.
도 23은 사전 인출된 맵이 LIC 파라미터들이 계산되어야 하는지를 나타내는 변형 실시예를 도시한다.
도 24는 CTU에서의 사전 인출을 사용하는 LIC 파라미터들의 조건부 계산을 도시한다.
도 25는 본 제6 실시예에 따른 인터 CU 디코딩 프로세스를 도시한다.
도 26은 제6 실시예에 따른 인터 예측 파라미터 디코딩 프로세스의 예를 도시한다.
도 27은 인터 슬라이스에서의 CU에 대한 레이트 왜곡 최적화된 코딩 모드 선택의 실시예를 도시한다.
도 28은 본 출원의 적어도 일 실시예에 따른 LIC 파라미터 결정을 위한 흐름도를 설명한다.
도 29는 본 출원의 적어도 일 실시예에 따른 LIC 파라미터들의 사용을 위한 흐름도를 설명한다.
다양한 실시예들은 조명 보상(IC) 파라미터들을 저장하기 위해 메모리를 사용하고 이웃 블록들의 재구성된 픽셀들에 대한 액세스를 요구하지 않는 LIC 시스템에 관한 것이다. 실시예들 중 적어도 하나에서, LIC 파라미터들의 세트는 제한된 크기를 갖고 정보의 코딩 유닛 레벨 저장소로부터 분리되는 전용 버퍼에 저장된다. 버퍼는 예를 들어 디코더(또한 인코더)에 의해 온 더 플라이(on the fly) 방식으로 계산되거나(또는 소정의 다른 방식으로 결정되거나) 사전에 결정될 수 있는(예를 들어, 비디오 신호로부터 또는 인코더와 같은 디바이스로부터 획득될 수 있는) LIC 파라미터들의 세트를 포함한다.
코딩 유닛(CU)의 코딩 신택스(coding syntax)와 관련하여, 플래그는 LIC가 적용될 수 있는 코딩 유닛들에 대한 조명 보상 기능의 사용을 나타낸다. 또한, 적어도 일 실시예에 따르면, 고려되는 버퍼 또는 LIC 파라미터 세트로부터의 어느 LIC 파라미터들이 현재 CU에 대해 사용되는지를 나타내기 위해 LIC 파라미터 인덱스가 시그널링된다. 온 더 플라이 방식으로 계산된 LIC 파라미터들의 경우에, 적어도 일 실시예의 LIC 파라미터 세트는 하나 이상의 이전에 코딩된 CU들의 우측 에지 부분과 연관된 LIC 파라미터들로 구성된다. 이러한 파라미터들은 하나 이상의 코딩/디코딩된 CU들의 수직 우측 하위 부분에 따라 소정의 다른 방식으로 계산되거나 결정된다. 파라미터들의 세트는 전형적으로 코딩 트리 유닛(CTU)의 높이와 동일한 제한된 공간적 높이에 걸쳐 LIC 파라미터들을 수집한다. 다른 실시예에서, 추가적인 버퍼는 또한 현재 CTU 내의 코딩/디코딩된 CU의 수평 하부 부분과 연관된 LIC 파라미터들을 저장할 수 있다. 유리하게, 이 실시예는 이전의 실시예와 결합되어 제한된 메모리 부하 증가를 대가로 코딩 효율을 증가시킬 수 있다. 다른 형태의 온 더 플라이 LIC 파라미터 계산은 코딩/디코딩되고 있는 현재 CU에서의 조명 변화를 계산하고 결과적인 LIC 파라미터들을 선입선출(FIFO) 버퍼에 저장하는 것으로 이루어질 수 있다. 이 버퍼는 고려되는 슬라이스 내의 하나 이상의 후속 CU들에 대한 LIC 파라미터 세트의 역할을 한다. CU에서 LIC에 대해 이러한 형태의 온 더 플라이 LIC 파라미터 컴퓨터를 사용하는 적어도 일 실시예에서, FIFO에서 사용되는 LIC 파라미터들을 나타내는 인덱스가 비트스트림에서 시그널링된다. 또한, 이러한 FIFO 개념은 전형적으로 FIFO에 포함된 LIC 파라미터들을 업데이트/유지하기 위한 정책을 수반하며, 이는 나중에 본 명세서에서 상세히 설명된다. 다른 실시예는 사전에 결정된 LIC 파라미터들의 세트를 사용한다. 사전에 결정된 LIC 파라미터들은 애플리케이션의 사용 전에 정의될 수 있고 변경되지 않을 수 있다. 사전에 결정된 LIC 파라미터들은 또한 조정 가능하여 변경될 수 있고, 따라서 그들의 사용 전에 획득되고 그들의 사용 중에 업데이트될 수 있다. 적어도 일 실시예에서, 인덱스는 LIC의 사용이 사실인 것으로서 시그널링되는 적어도 하나의 CU에 대해 시간 예측 동안 사용되도록 사전에 결정된 LIC 파라미터들을 시그널링한다.
더욱이, 본 양태들은 VVC(Versatile Video Coding: 다기능 비디오 코딩) 또는 HEVC(High Efficiency Video Coding: 고효율 비디오 코딩) 사양들의 특정 초안들에 관련된 원리들을 설명하지만, VVC 또는 HEVC로 제한되지 않으며, 예를 들어, 이미 존재하는지 또는 미래에 개발될지에 관계없이, 다른 표준들 및 권고안들, 및 (VVC 및 HEVC를 포함하는) 임의의 이러한 표준들 및 권고안들의 확장들에 적용될 수 있다. 달리 지시되거나 기술적으로 배제되지 않는 한, 본 출원에서 설명된 양태들은 개별적으로 또는 결합하여 사용될 수 있다.
도 1은 HEVC 인코더와 같은 비디오 인코더(100)의 예의 블록도를 도시한다. 도 1은 또한 HEVC 표준에 대해 개선들이 이루어지는 인코더 또는 VVC를 위해 JVET(Joint Video Exploration Team)에 의해 개발 중인 JEM(Joint Exploration Model) 인코더와 같은, HEVC와 유사한 기술들을 이용하는 인코더를 나타낼 수 있다.
인코딩되기 전에, 비디오 시퀀스는 인코딩 전처리(pre-encoding processing)(101)를 거칠 수 있다. 이것은 예를 들어 입력 컬러 픽처에 컬러 변환(예를 들어, RGB 4:4:4로부터 YCbCr 4:2:0으로의 변환)을 적용하거나 (예를 들어, 컬러 성분들 중 하나의 컬러 성분의 히스토그램 등화를 사용하여) 압축에 더 탄력적인 신호 분포를 얻기 위해 입력 픽처 성분들의 리매핑(remapping)을 수행함으로써 수행된다. 메타데이터는 전처리와 연관되고 비트스트림에 첨부될 수 있다.
HEVC에서, 하나 이상의 픽처들을 갖는 비디오 시퀀스를 인코딩하기 위해, 픽처는 하나 이상의 슬라이스들로 분할되고(102), 각각의 슬라이스는 하나 이상의 슬라이스 세그먼트들을 포함할 수 있다. 슬라이스 세그먼트는 코딩 유닛들, 예측 유닛들 및 변환 유닛들로 조직화된다. HEVC 사양은 "블록들"과 "유닛들"을 구별하며, "블록"은 샘플 어레이 내의 특정 영역(예를 들어, 루마, Y)을 어드레싱하고, "유닛"은 모든 인코딩된 컬러 성분들(Y, Cb, Cr 또는 단색)의 병치된 블록들, 신택스 요소들, 및 블록들과 연관된 예측 데이터(예를 들어, 모션 벡터들)를 포함한다.
HEVC에서의 코딩의 경우, 픽처는 구성 가능한 크기를 갖는 정사각형의 코딩 트리 블록들(CTB)로 분할되고, 코딩 트리 블록들의 연속적 세트는 슬라이스로 그룹화된다. 코딩 트리 유닛(CTU)은 인코딩된 컬러 성분들의 CTB들을 포함한다. CTB는 코딩 블록들(CB)로의 분할되는 쿼드트리(quadtree)의 루트이고, 코딩 블록은 하나 이상의 예측 블록들(PB)로 분할될 수 있고, 변환 블록들(TB들)로 분할되는 쿼드트리의 루트를 형성한다. 코딩 블록, 예측 블록 및 변환 블록에 대응하여, 코딩 유닛(CU)은 예측 유닛들(PU들) 및 변환 유닛들(TU들)의 트리-구조화된 세트를 포함하고, PU는 모든 컬러 성분들에 대한 예측 정보를 포함하며, TU는 각각의 컬러 성분에 대한 잔차 코딩 신택스 구조(residual coding syntax structure)를 포함한다. 루마 성분의 CB, PB 및 TB의 크기는 대응하는 CU, PU 및 TU에 적용된다. 본 출원에서, 용어 "블록"은 예를 들어 CTU, CU, PU, TU, CB, PB 및 TB 중 임의의 것을 지칭하기 위해 사용될 수 있다. 게다가, "블록"은 또한 H.264/AVC 또는 다른 비디오 코딩 표준들에서 지정된 바와 같은 매크로블록 및 파티션을 지칭하기 위해, 그리고 더 일반적으로는 다양한 크기들의 데이터의 어레이를 지칭하기 위해 사용될 수 있다.
인코더(100)의 예에서, 픽처는 후술하는 바와 같이 인코더 요소들에 의해 인코딩된다. 인코딩될 픽처는 CU들의 유닛들에서 처리된다. 각각의 CU는 인트라 또는 인터 모드를 사용하여 인코딩된다. CU는 인트라 모드에서 인코딩될 때 인트라 예측(160)을 수행한다. 인터 모드에서는, 모션 추정(175) 및 보상(170)이 수행된다. 인코더는 CU를 인코딩하기 위해 인트라 모드 또는 인터 모드 중 어느 것을 사용할지를 결정하고(105), 예측 모드 플래그에 의해 인트라/인터 결정을 나타낸다. 예측 잔차들은 원래의 이미지 블록으로부터 예측 블록을 감산(110)함으로써 계산된다.
인트라 모드에서의 CU들은 동일한 슬라이스 내의 재구성된 이웃 샘플들로부터 예측된다. DC, 평면 및 33개의 각도 예측 모드들을 포함하는 35개의 인트라 예측 모드들의 세트가 HEVC에서 이용가능하다. 인트라 예측 기준은 현재 블록에 인접한 행 및 열로부터 재구성된다. 기준은 이전에 재구성된 블록들로부터의 이용가능한 샘플들을 사용하여 수평 및 수직 방향들에서 블록 크기의 2배 이상 연장된다. 인트라 예측에 대해 각도 예측 모드가 사용될 때, 기준 샘플들은 각도 예측 모드에 의해 지시된 방향을 따라 복사될 수 있다.
현재 블록에 대한 적용 가능한 루마 인트라 예측 모드는 상이한 옵션들을 사용하여 코딩될 수 있다. 적용 가능한 모드가 6개의 최고 확률 모드(MPM)의 구성된 리스트에 포함되는 경우, 모드는 MPM 리스트에서 인덱스에 의해 시그널링된다. 그렇지 않을 경우, 모드는 모드 인덱스의 고정 길이 이진화에 의해 시그널링된다. 6개의 최고 확률 모드는 좌상 이웃 블록들의 인트라 예측 모드들로부터 도출된다.
인터 CU에 대해, 모션 정보(예를 들어, 모션 벡터 및 기준 픽처 인덱스)가 다양한 방법들, 예를 들어 "병합 모드" 및 "진보된 모션 벡터 예측(AMVP)"에서 시그널링될 수 있다.
병합 모드에서, 비디오 인코더 또는 디코더는 이미 코딩된 블록들에 기초하여 후보 리스트를 어셈블하고, 비디오 인코더는 후보 리스트 내의 후보들 중 하나에 대한 인덱스를 시그널링한다. 디코더 측에서는, 시그널링된 후보에 기초하여 모션 벡터(MV) 및 기준 픽처 인덱스가 재구성된다.
AMVP에서, 비디오 인코더 또는 디코더는 이미 코딩된 블록들로부터 결정된 모션 벡터들에 기초하여 후보 리스트들을 어셈블한다. 이어서, 비디오 인코더는 모션 벡터 예측기(MVP)를 식별하기 위해 후보 리스트에서 인덱스를 시그널링하고, 모션 벡터 차이(MVD)를 시그널링한다. 디코더 측에서, 모션 벡터(MV)는 MVP+MVD로서 재구성된다. 적용 가능한 기준 픽처 인덱스는 또한 AMVP에 대한 CU 신택스에서 명시적으로 코딩된다.
이어서, 예측 잔차들은 후술하는 크로마 양자화 파라미터를 적응시키기 위한 적어도 일 실시예를 포함하여 변환(125)되고 양자화(130)된다. 변환들은 일반적으로 분리가능한 변환들에 기초한다. 예를 들어, DCT 변환이 먼저 수평 방향으로, 이어서 수직 방향으로 적용된다. JEM과 같은 최근의 코덱들에서, 양방향에서 사용되는 변환들은 상이할 수 있고(예를 들어, 하나의 방향에서는 DCT, 다른 방향에서는 DST), 이는 매우 다양한 2D 변환들로 이어지는 반면, 이전의 코덱들에서, 주어진 블록 크기에 대한 다양한 2D 변환들은 보통 제한된다.
양자화된 변환 계수들뿐만 아니라 모션 벡터들 및 다른 신택스 요소들도 비트스트림을 출력하도록 엔트로피 코딩(145)된다. 인코더는 또한 변환을 건너뛰고, 4x4 TU에 기초하여 양자화를 변환되지 않은 잔차 신호에 직접 적용할 수 있다. 인코더는 또한 변환 및 양자화 둘 다를 우회할 수 있는데, 즉 잔차는 변환 또는 양자화 프로세스의 적용 없이 직접 코딩된다. 직접 PCM 코딩에서는, 어떠한 예측도 적용되지 않고, 코딩 유닛 샘플들은 비트스트림으로 직접 코딩된다.
인코더는 추가적 예측들을 위한 기준을 제공하기 위해 인코딩된 블록을 디코딩한다. 양자화된 변환 계수들은 예측 잔차들을 디코딩하기 위해 역양자화(140)되고 역변환(150)된다. 디코딩된 예측 잔차들 및 예측된 블록을 결합(155)하여, 이미지 블록이 재구성된다. 인-루프 필터들(165)이 예를 들어, 인코딩 아티팩트들을 감소시키기 위한 디블로킹/SAC(Sample Adaptive Offset: 샘플 적응성 오프셋) 필터링을 수행하기 위해, 재구성된 픽처에 적용된다. 필터링된 이미지는 기준 픽처 버퍼(180)에 저장된다.
도 2는 HEVC 디코더와 같은 비디오 디코더(200)의 예의 블록도를 도시한다. 디코더(200)의 예에서, 비트스트림은 후술하는 바와 같이 디코더 요소들에 의해 디코딩된다. 비디오 디코더(200)는 일반적으로 도 1에 설명된 바와 같은 인코딩 패스(pass)의 반대인 디코딩 패스를 수행하며, 이는 비디오 데이터 인코딩의 일부로서 비디오 디코딩을 수행한다. 도 2는 또한 HEVC 표준에 대해 개선들이 이루어지는 디코더 또는 HEVC와 유사한 기술들을 이용하는 디코더, 예컨대 JEM 디코더를 나타낼 수 있다.
특히, 디코더의 입력은 비디오 인코더(100)에 의해 생성될 수 있는 비디오 비트스트림을 포함한다. 변환 계수들, 모션 벡터들, 픽처 분할 정보 및 다른 코딩된 정보를 획득하기 위해, 비트스트림은 먼저 엔트로피 디코딩(230)된다. 픽처 분할 정보는 CTU들의 크기, 및 CTU가 CU들로, 그리고 가능하게는 적용 가능할 때 PU들로 분할되는 방식을 나타낸다. 따라서, 디코더는 디코딩된 픽처 분할 정보에 따라 픽처를 CTU들로 그리고 각각의 CTU를 CU들로 분할(235)할 수 있다. 변환 계수들은 후술하는 크로마 양자화 파라미터를 적응시키기 위한 적어도 일 실시예를 포함하여 역양자화(240)되고, 예측 잔차들을 디코딩하기 위해 역변환(250)된다.
디코딩된 예측 잔차들 및 예측된 블록을 결합(255)하여, 이미지 블록이 재구성된다. 예측된 블록은 인트라 예측(260) 또는 모션-보상된 예측(즉, 인터 예측)(275)으로부터 획득(270)될 수 있다. 전술한 바와 같이, AMVP 및 병합 모드 기술들은 모션 보상을 위한 모션 벡터들을 도출하기 위해 사용될 수 있고, 이는 기준 블록의 하위-정수 샘플들에 대한 보간된 값들을 계산하기 위해 보간 필터들을 사용할 수 있다. 인-루프 필터들(265)은 재구성된 이미지에 적용된다. 필터링된 이미지는 기준 픽처 버퍼(280)에 저장된다.
디코딩된 픽처는 디코딩 후처리(285), 예를 들어 역 컬러 변환(예를 들어, YCbCr 4:2:0으로부터 RGB 4:4:4로의 변환), 또는 인코딩 전처리(101)에서 수행된 리매핑 프로세스의 역을 수행하는 역 리매핑을 더 거칠 수 있다. 디코딩 후처리는 인코딩 전처리에서 도출되고 비트스트림에서 시그널링되는 메타데이터를 사용할 수 있다.
도 3은 다양한 양태들 및 실시예들이 구현되는 시스템의 예의 블록도를 도시한다. 시스템(300)은 아래에 설명되는 다양한 컴포넌트들을 포함하는 디바이스로서 구현될 수 있고, 본 출원에서 설명되는 양태들 중 하나 이상을 수행하도록 구성된다. 이러한 디바이스들의 예들은 개인용 컴퓨터들, 랩톱 컴퓨터들, 스마트폰들, 태블릿 컴퓨터들, 디지털 멀티미디어 셋톱 박스들, 디지털 텔레비전 수신기들, 개인용 비디오 레코딩 시스템들, 접속된 가전 제품들, 인코더들, 트랜스코더들 및 서버들과 같은 다양한 전자 디바이스들을 포함하지만, 이들로 제한되지 않는다. 시스템(300)의 요소들은 단독으로 또는 결합하여 단일 집적 회로, 다수의 집적 회로 및/또는 개별 컴포넌트들로 구현될 수 있다. 예를 들어, 적어도 일 실시예에서, 시스템(300)의 처리 및 인코더/디코더 요소들은 다수의 집적 회로 및/또는 개별 컴포넌트에 걸쳐 분산된다. 다양한 실시예들에서, 시스템(300)의 요소들은 내부 버스(310)를 통해 통신 가능하게 결합된다. 다양한 실시예들에서, 시스템(300)은 예를 들어 통신 버스를 통해 또는 전용 입력 및/또는 출력 포트들을 통해 다른 유사한 시스템들 또는 다른 전자 디바이스들에 통신 가능하게 결합된다. 다양한 실시예들에서, 시스템(300)은 위에서 설명되고 후술하는 바와 같이 수정되는 비디오 인코더(100) 및 비디오 디코더(200)와 같이 본 명세서에서 설명되는 양태들 중 하나 이상을 구현하도록 구성된다.
시스템(300)은 예를 들어 본 명세서에 설명된 다양한 양태들을 구현하기 위해 그 안에 로딩된 명령어들을 실행하도록 구성된 적어도 하나의 프로세서(301)를 포함한다. 프로세서(301)는 내장 메모리, 입출력 인터페이스, 및 이 분야에 공지된 바와 같은 다양한 다른 회로들을 포함할 수 있다. 시스템(300)은 적어도 하나의 메모리(302)(예를 들어, 휘발성 메모리 디바이스 및/또는 비휘발성 메모리 디바이스)를 포함한다. 시스템(300)은 EEPROM, ROM, PROM, RAM, DRAM, SRAM, 플래시, 자기 디스크 드라이브 및/또는 광 디스크 드라이브를 포함하지만 이에 한정되지 않는 비휘발성 메모리 및/또는 휘발성 메모리를 포함할 수 있는 저장 디바이스(304)를 포함한다. 저장 디바이스(304)는 비제한적인 예들로서 내부 저장 디바이스, 부착된 저장 디바이스 및/또는 네트워크 액세스 가능 저장 디바이스를 포함할 수 있다.
시스템(300)은 예를 들어 데이터를 처리하여 인코딩된 비디오 또는 디코딩된 비디오를 제공하도록 구성된 인코더/디코더 모듈(303)을 포함하고, 인코더/디코더 모듈(303)은 그 자신의 프로세서 및 메모리를 포함할 수 있다. 인코더/디코더 모듈(303)은 인코딩 및/또는 디코딩 기능들을 수행하기 위해 디바이스에 포함될 수 있는 모듈(들)을 나타낸다. 알려진 바와 같이, 디바이스는 인코딩 및 디코딩 모듈들 중 하나 또는 둘 다를 포함할 수 있다. 또한, 인코더/디코더 모듈(303)은 시스템(300)의 개별 요소로서 구현될 수 있거나, 이 분야의 기술자들에게 공지된 바와 같이 하드웨어 및 소프트웨어의 조합으로서 프로세서(301) 내에 통합될 수 있다.
본 명세서에 설명된 다양한 양태들을 수행하기 위해 프로세서(301) 또는 인코더/디코더(303) 상에 로딩될 프로그램 코드는 저장 디바이스(304)에 저장될 수 있고, 후속하여 프로세서(301)에 의한 실행을 위해 메모리(302) 상에 로딩될 수 있다. 다양한 실시예들에 따르면, 프로세서(301), 메모리(302), 저장 디바이스(304), 및 인코더/디코더 모듈(303) 중 하나 이상은 본 명세서에서 설명된 프로세스들의 수행 동안 다양한 아이템들 중 하나 이상을 저장할 수 있다. 이러한 저장된 아이템들은 입력 비디오, 디코딩된 비디오 또는 디코딩된 비디오의 부분들, 비트스트림, 행렬들, 변수들, 및 방정식들, 공식들, 연산들 및 연산 로직의 처리로부터의 중간 또는 최종 결과들을 포함할 수 있지만, 이에 제한되지는 않는다.
몇몇 실시예에서, 프로세서(301) 및/또는 인코더/디코더 모듈(303) 내의 메모리는 명령어들을 저장하고, 인코딩 또는 디코딩 동안 필요한 처리를 위한 작업 메모리를 제공하기 위해 사용된다. 그러나, 다른 실시예들에서, 처리 디바이스(예를 들어, 처리 디바이스는 프로세서(301) 또는 인코더/디코더 모듈(303)일 수 있음) 외부의 메모리가 이러한 기능들 중 하나 이상을 위해 사용된다. 외부 메모리는 메모리(302) 및/또는 저장 디바이스(304), 예를 들어 동적 휘발성 메모리 및/또는 비휘발성 플래시 메모리일 수 있다. 몇몇 실시예에서, 외부 비휘발성 플래시 메모리는 텔레비전의 운영 체제를 저장하기 위해 사용된다. 적어도 일 실시예에서, RAM과 같은 고속 외부 동적 휘발성 메모리는 MPEG-2, HEVC 또는 VVC와 같은 비디오 코딩 및 디코딩 동작들을 위한 작업 메모리로서 사용된다.
시스템(300)의 요소들에 대한 입력은 블록 309에 지시된 바와 같은 다양한 입력 디바이스들을 통해 제공될 수 있다. 이러한 입력 디바이스들은 (i) 예를 들어 브로드캐스터에 의해 무선으로 송신되는 RF 신호를 수신하는 RF 부분, (ii) 복합 입력 단자, (iii) USB 입력 단자 및/또는 (iv) HDMI 입력 단자를 포함하지만 이에 한정되지 않는다.
다양한 실시예들에서, 블록 309의 입력 디바이스들은 이 분야에 공지된 바와 같이 연관된 각각의 입력 처리 요소들을 갖는다. 예를 들어, RF 부분은 (i) 원하는 주파수를 선택하는 것(신호를 선택하거나 신호를 주파수들의 대역으로 대역 제한하는 것으로도 지칭됨), (ii) 선택된 신호의 하향 변환하는 것, (iii) 특정 실시예들에서 채널로서 지칭될 수 있는 (예를 들어) 신호 주파수 대역을 선택하기 위해 다시 더 좁은 주파수 대역으로 대역 제한하는 것, (iv) 하향 변환되고 대역 제한된 신호를 복조하는 것, (v) 에러 정정을 수행하는 것 및 (vi) 원하는 데이터 패킷 스트림을 선택하기 위해 역다중화하는 것을 위해 필요한 요소들과 연관될 수 있다. 다양한 실시예들의 RF 부분은 이러한 기능들을 수행하기 위한 하나 이상의 요소들, 예를 들어 주파수 선택기들, 신호 선택기들, 대역 제한기들, 채널 선택기들, 필터들, 하향 변환기들, 복조기들, 에러 정정기들 및 역다중화기들을 포함한다. RF 부분은 예를 들어, 수신된 신호를 더 낮은 주파수(예를 들어, 중간 주파수 또는 거의 기저대역 주파수)로 또는 기저대역으로 하향 변환하는 것을 포함하여, 다양한 이러한 기능들을 수행하는 튜너를 포함할 수 있다. 하나의 셋톱 박스 실시예에서, RF 부분 및 그의 연관된 입력 처리 요소는 유선(예를 들어, 케이블) 매체를 통해 송신된 RF 신호를 수신하고, 필터링, 하향 변환, 및 다시 원하는 주파수 대역으로의 필터링에 의해 주파수 선택을 수행한다. 다양한 실시예들은 전술한(그리고 다른) 요소들의 순서를 재배열하고, 이 요소들 중 일부를 제거하고/하거나, 유사하거나 상이한 기능들을 수행하는 다른 요소들을 추가한다. 요소들을 추가하는 것은, 예를 들어, 증폭기들 및 아날로그-디지털 변환기를 삽입하는 것과 같이 기존 요소들 사이에 요소들을 삽입하는 것을 포함할 수 있다. 다양한 실시예들에서, RF 부분은 안테나를 포함한다.
또한, USB 및/또는 HDMI 단자들은 USB 및/또는 HDMI 접속들을 통해 다른 전자 디바이스들에 시스템(300)을 접속하기 위한 각각의 인터페이스 프로세서를 포함할 수 있다. 입력 처리의 다양한 양태들, 예를 들어 리드-솔로몬 에러 정정이 예를 들어 필요에 따라 개별 입력 처리 집적 회로 내에서 또는 프로세서(301) 내에서 구현될 수 있다는 것을 이해해야 한다. 유사하게, USB 또는 HDMI 인터페이스 처리의 양태들은 필요에 따라 개별 인터페이스 집적 회로들 내에서 또는 프로세서(301) 내에서 구현될 수 있다. 복조되고 에러 정정되고 역다중화된 스트림은 예를 들어 출력 디바이스 상에서의 제시를 위해 필요에 따라 데이터 스트림을 처리하기 위해 메모리 및 저장 요소들과 결합하여 동작하는 프로세서(301) 및 인코더/디코더(303)를 포함하는 다양한 처리 요소들에 제공된다.
시스템(300)의 다양한 요소들은 통합 하우징 내에 제공될 수 있다. 통합된 하우징 내에서, 다양한 요소들은 적절한 접속 배열, 예를 들어 I2C 버스, 배선 및 인쇄 회로 보드들을 포함하는 이 분야에 공지된 바와 같은 내부 버스를 사용하여 상호 접속되고 그들 사이에서 데이터를 송신할 수 있다.
시스템(300)은 통신 채널(320)을 통해 다른 디바이스들과의 통신을 가능하게 하는 통신 인터페이스(305)를 포함한다. 통신 인터페이스(305)는 통신 채널(320)을 통해 데이터를 송신 및 수신하도록 구성된 트랜시버를 포함할 수 있지만, 이에 제한되지 않는다. 통신 인터페이스(305)는 모뎀 또는 네트워크 카드를 포함할 수 있지만 이에 한정되지 않으며, 통신 채널(320)은 예를 들어 유선 및/또는 무선 매체 내에 구현될 수 있다.
데이터는 다양한 실시예들에서 IEEE 802.11과 같은 와이파이 네트워크를 사용하여 시스템(300)으로 스트리밍된다. 이러한 실시예들의 와이파이 신호는 와이파이 통신들을 위해 적응되는 통신 채널(320) 및 통신 인터페이스(305)를 통해 수신된다. 이러한 실시예들의 통신 채널(320)은 전형적으로 스트리밍 응용 및 다른 오버-더-톱(over-the-top) 통신들을 허용하기 위해 인터넷을 포함하는 외부 네트워크들에 대한 액세스를 제공하는 액세스 포인트 또는 라우터에 접속된다. 다른 실시예들은 입력 블록(309)의 HDMI 접속을 통해 데이터를 전달하는 셋톱 박스를 사용하여 스트리밍된 데이터를 시스템(300)에 제공한다. 또 다른 실시예들은 입력 블록(309)의 RF 접속을 사용하여 스트리밍된 데이터를 시스템(300)에 제공한다.
시스템(300)은 디스플레이(330), 스피커들(340), 및 다른 주변 디바이스들(350)을 포함하는 다양한 출력 디바이스들에 출력 신호를 제공할 수 있다. 다른 주변 디바이스들(350)은 실시예들의 다양한 예들에서 독립형 DVR, 디스크 플레이어, 스테레오 시스템, 조명 시스템, 및 시스템(300)의 출력에 기초하여 기능을 제공하는 다른 디바이스들 중 하나 이상을 포함한다. 다양한 실시예들에서, 제어 신호들은 AV.Link, CEC, 또는 사용자 개입이 있거나 없이 디바이스 대 디바이스 제어를 가능하게 하는 다른 통신 프로토콜들과 같은 시그널링을 사용하여 시스템(300)과 디스플레이(330), 스피커들(340), 또는 다른 주변 디바이스들(350) 사이에서 통신된다. 출력 디바이스들은 각각의 인터페이스들(306, 307, 308)을 통한 전용 접속들을 통해 시스템(300)에 통신가능하게 결합될 수 있다. 대안적으로, 출력 디바이스들은 통신 인터페이스(305)를 통해 통신 채널(320)을 사용하여 시스템(300)에 접속될 수 있다. 디스플레이(330) 및 스피커들(340)은 예를 들어 텔레비전과 같은 전자 디바이스에서 시스템(300)의 다른 컴포넌트들과 단일 유닛으로 통합될 수 있다. 다양한 실시예들에서, 디스플레이 인터페이스(306)는, 예를 들어, 타이밍 제어기(T Con) 칩과 같은 디스플레이 드라이버를 포함한다.
디스플레이(330) 및 스피커(340)는 대안적으로, 예를 들어 입력(309)의 RF 부분이 별개의 셋톱 박스의 일부인 경우에, 다른 컴포넌트들 중 하나 이상과 분리될 수 있다. 디스플레이(330) 및 스피커들(340)이 외부 컴포넌트들인 다양한 실시예들에서, 출력 신호는, 예를 들어, HDMI 포트들, USB 포트들, 또는 COMP 출력들을 포함하는 전용 출력 접속들을 통해 제공될 수 있다. 본 명세서에 설명된 구현들은 예컨대 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림 또는 신호로 구현될 수 있다. 단지 단일 형태의 구현과 관련하여 설명되지만(예컨대, 단지 방법으로서 설명되지만), 설명된 특징들의 구현은 또한 다른 형태들(예컨대, 장치 또는 프로그램)로 구현될 수 있다. 장치는 예를 들어 적절한 하드웨어, 소프트웨어 및 펌웨어로 구현될 수 있다. 실시예들은 프로세서(301)에 의해 구현되는 컴퓨터 소프트웨어에 의해 또는 하드웨어에 의해 또는 하드웨어와 소프트웨어의 조합에 의해 수행될 수 있다. 비제한적인 예로서, 실시예들은 하나 이상의 집적 회로에 의해 구현될 수 있다. 메모리(302)는 기술적인 환경에 적합한 임의의 유형일 수 있고, 비제한적인 예들로서 광학 메모리 디바이스들, 자기 메모리 디바이스들, 반도체 기반 메모리 디바이스들, 고정 메모리, 및 이동식 메모리와 같은 임의의 적합한 데이터 저장 기술을 사용하여 구현될 수 있다. 프로세서(301)는 기술적인 환경에 적합한 임의의 유형일 수 있고, 비제한적 예들로서 마이크로프로세서들, 범용 컴퓨터들, 특수 목적 컴퓨터들, 및 멀티-코어 아키텍처에 기초한 프로세서들 중 하나 이상을 포함할 수 있다. 프로세서들은 또한 예를 들어 컴퓨터들, 셀폰들, 휴대용/개인용 휴대 단말기들("PDA들"), 및 최종 사용자들 사이의 정보의 통신을 용이하게 하는 다른 디바이스들과 같은 통신 디바이스들을 포함한다.
도 4a 및 도 4b는 이미지를 표현하는 데 사용되는 다양한 구조들의 예를 도시한다. HEVC 비디오 압축 표준에서는, 비디오의 연속적인 픽처들 사이에 존재하는 리던던시를 이용하기 위해 모션 보상된 시간 예측이 이용된다. 이를 위해, 모션 벡터가 각각의 예측 유닛(PU)과 연관되며, 이제 이것이 소개된다. 각각의 코딩 트리 유닛(CTU)은 압축 도메인에서 코딩 트리에 의해 표현된다. 이것은 도 4a에 도시된 바와 같은 CTU의 쿼드트리 분할이고, 여기서 각각의 리프는 코딩 유닛(CU)으로 지칭된다. 그 다음, 각각의 CU에는 일부 인트라 또는 인터 예측 파라미터들(예측 정보)이 주어진다. 이를 위해, 그것은 하나 이상의 예측 유닛들(PU들)로 공간적으로 분할되고, 각각의 PU에는 소정의 예측 정보가 할당된다. 인트라 또는 인터 코딩 모드는 도 4b에 도시된 바와 같이 CU 레벨 상에 할당된다. 정확하게 하나의 모션 벡터가 HEVC에서 각각의 PU에 할당된다. 이 모션 벡터는 고려되는 PU의 모션 보상된 시간 예측에 사용된다. 따라서, 예측된 블록과 그의 기준 블록을 링크하는 모션 모델은 단순히 병진이동(translation)으로 구성된다.
도 5는 인터 모드에서의 픽처의 블록의 재구성에 사용되는 샘플들을 도시한다. 인터 모드에서, 로컬 조명 보상(LIC)은 공간 또는 시간 로컬 조명 변화를 고려함으로써 모션 보상(MC)을 통해 획득된 블록 예측 샘플들을 정정하는 것을 허용한다. 이것은 스케일링 인자 a 및 오프셋 b를 사용하는, 조명 변화들의 1차 선형 모델에 기초한다. LIC 파라미터들(a 및 b)은 이웃 Vcur에 위치하는, 현재 블록("current blk")을 둘러싸는 재구성된 샘플들의 세트를 기준 픽처 내의 기준 블록("ref blk")의 이웃 Vref(MV)에 위치하는 재구성된 샘플들의 세트와 비교함으로써 추정된다.
도 6은 현재 블록과 기준 블록 사이의 모션 벡터를 도시한다. 전형적으로, Vcur 및 Vref(MV)는 각각 현재 블록 및 기준 블록 주위(상측, 좌측 및 좌상측)에 L-형상으로 위치하는 샘플들로 구성된다.
LIC 파라미터들은 Vcur 내의 샘플들과 Vref(MV) 내의 정정된 샘플들 사이의 평균 제곱 에러 차이를 최소화하도록 선택된다. 전형적으로, LIC 모델은 선형: LIC(x) = a.x + b이다.
Figure pct00001
여기서 s 및 r은 각각 Vcur 및 Vref(MV)에서의 픽셀 위치들에 대응한다.
이하에서, 픽셀 위치들은 세트(예를 들어, s 또는 r) 또는 대응하는 좌표들(예를 들어, (x,y) 또는 (i,j))에 의해 표현된다.
도 7은 2개의 기준을 사용하는 양방향 예측의 예를 도시한다. 양방향 예측의 경우, LIC 파라미터 (a0,b0) 및 (a1,b1)은 각각 Vref0(MV0) 및 Vref1(MV1)과 독립적으로 도출된다. 따라서, LIC는 다음과 같이 정의되는 로컬 왜곡의 계산에 기초한다.
Figure pct00002
현재 CU에 대해 인코더 또는 디코더에 의해 LIC 파라미터들이 획득되면, 현재 CU의 예측
Figure pct00003
은 다음과 같다(단방향 예측 경우).
Figure pct00004
여기서,
Figure pct00005
은 예측할 현재 블록이고,
Figure pct00006
은 현재 블록의 예측이며,
Figure pct00007
은 현재 블록의 시간 예측에 사용되는 기준 블록이다.
도 8은 CU의 코딩 파라미터들을 시그널링하기 위한 전체 코딩 프로세스의 예를 도시한다. 실시예들 중 적어도 하나는 AMVP(적응성 모션 벡터 예측)라고도 하는 정규 인터 모드에 초점을 맞춘다.
도 9는 CU의 전체 엔트로피 디코딩 프로세스의 예를 도시한다. AMVP 인터 모드의 경우가 강조된다. 이것은 병합 모드를 이용하지 않는 인터 CU의 경우에 발생한다.
도 10은 AMVP 모드에서 CU와 연관된 인터 예측 정보의 코딩의 예를 도시한다. 이 예에서, 단일 IC 플래그가 각각의 AMVP CU에 대하여 코딩된다. 몇몇 모션 필드는 AMVP CU에 대하여 코딩된다. 하나 또는 두 개의 기준 픽처가 현재 인터 CU를 예측하는 데 사용된다. 사용되는 각각의 기준 픽처에 대해, 모션 필드는 기준 프레임 idx, 현재 CU의 모션 벡터를 예측하는 데 사용되는 모션 벡터 후보를 식별하는 인덱스, 및 현재 CU의 모션 벡터와 사용되는 모션 벡터 예측기(MVP) 사이의 모션 벡터 차이(MVd)의 형태 하에서 인코딩된다.
마지막으로, 추가적인 시간 예측 파라미터들이 인코딩될 수 있으며, 이는 다 음을 포함한다.
- iMV 플래그는 현재 CU의 모션 벡터들이 보통의 1/4 펠 정확도에 비해 감소된 정확도 레벨로 코딩되는지를 나타낸다.
- OBMC 플래그는 현재 CU의 시간 예측이 알려진 중첩 블록 모션 보상 단계를 포함하는지를 나타낸다.
- 단일 IC 플래그는 AMVP 모드에서 각각의 인터 CU와 연관된다.
도 11은 AMVP 코딩 유닛과 연관된 모션 정보를 디코딩하기 위해 사용되는 프로세스의 예를 도시한다. 이것은 도 10의 코딩 프로세스의 역 프로세스에 후속하여 현재 CU를 예측하는 데 사용되는 각각의 기준 픽처에 대한 모션 필드를 디코딩하는 것으로 구성된다. AMVP 모드에서 각각의 인터 CU에 대해 하나의 플래그가 디코딩된다는 점에 유의한다.
전술한 바와 같은 LIC의 원리들은 이미 재구성된 상부 및 좌측 이웃 블록들의 재구성된 샘플들에 대한 액세스를 필요로 한다. 이 양태는 모션 보상 프로세스에서 소정의 레이턴시를 유발하고 잠재적으로 종래의 디코더 파이프라인 아키텍처들을 파괴하므로 바람직하지 않을 수 있다.
본 개시내용은 전술한 내용을 염두에 두고 고안된 다수의 실시예를 설명한다.
도 12는 LIC 파라미터들이 CU가 디코더 상에서 재구성된 후에 계산되고 CU의 우측 하위 부분에 기초하여 계산되는 제1 실시예를 도시한다. 적어도 일 실시예에서, LIC 파라미터들은 고려되는 디코딩된 CU의 우측 하위 부분에 기초하여 계산되고 버퍼에 저장된다. 적어도 일 실시예에서, 이러한 LIC 파라미터들의 버퍼는 자신들이 참조하는 서브블록의 수직 위치의 함수로서 인덱싱되는 LIC 파라미터들(a,b)의 어레이로 구성된다. 즉, CTU 내의 서브블록의 각각의 y 위치에 대한 LIC 파라미터의 하나의 튜플(a,b)을 저장하는 것이 제안된다. 이것은 (a,b) 파라미터들이 픽처의 각각의 CU에 대해 저장되는 경우보다 전체적으로 더 적은 튜플들(a,b)의 저장으로 이어진다.
도 13은 도 12의 실시예가 사용될 때 주어진 CTU 내의 CU들이 디코더에 의해 처리되고 있는 동안의 LIC 파라미터 버퍼의 진화를 도시한다. 사실상, 각각의 CU의 우측 부분에 기초하여 LIC 파라미터들을 계산하는 것의 적어도 하나의 이점은, 임의의 시간에, 코딩 유닛을 디코딩할 때, 현재 CU에 이웃하는 픽처 영역에 대응하는 일부 LIC 파라미터들이 이용가능한 것을 보장한다는 것이다. 그 다음, LIC 파라미터들은 현재 CU를 재구성하는 데 사용된다. 도 13에서, 회색 부분들은 LIC 파라미터들이 계산되었고 디코딩 프로세스의 주어진 스테이지에서 메모리에 현재 저장되는 모든 영역들을 나타낸다. 디코딩되는 각각의 CU에 대해, 현재 CU의 좌측 이웃 영역에서의 조명 변화를 나타내는 일부 LIC 파라미터들이 이용가능하고 잠재적으로 현재 CU에서 LIC를 적용하는 데 사용될 수 있다는 것을 알 수 있다. 즉, 이미 디코딩된 CU들과 관련된 LIC 파라미터들은 폐기되고 추가의 CU들에 대한 LIC 파라미터들로 대체된다. 도 13에서, 현재 CTU에 포함된 CU들의 디코딩을 시작하기 전에, 버퍼에 포함된 LIC 파라미터들은 이전 CTU의 우측에 위치한 CU들의 우측 부분에서 이전에 계산된 LIC 파라미터들에 대응한다는 점에 유의한다. 이것은 도 13의 프로세스의 제1 스테이지에서 CTU의 좌측에 있는 수직 회색 직사각형에 의해 예시된다.
적어도 변형 실시예에 따르면, LIC는 영역이 소정의 값, 예를 들어 32보다 엄격하게 높은 블록들에 대해서만 사용될 수 있다. 이것은 적어도 8x8 크기의 블록들에 대응한다. 그 경우, CTU의 8x8 서브블록들의 각각의 y 위치에 대한 한 쌍의 파라미터들(a,b)을 저장함으로써 LIC 파라미터들의 버퍼의 크기를 2만큼 감소시키는 것이 가능하며, 이는 CTU 크기가 128x128인 경우에 전체적으로 16 쌍의 파라미터들(a,b)로 이어진다. 위에 제시된 변형들에 따르면, 버퍼 크기는 전체 픽처에 대해 32 또는 16이라는 점에 유의한다.
도 14는 LIC 파라미터들이 CU가 디코더 상에서 재구성된 후에 계산되고 CU의 하부 수평 하위 부분에 기초하여 계산되는 제2 실시예를 도시한다. 적어도 일 실시예에서, LIC 파라미터들은 고려되는 디코딩된 CU의 하부 수평 부분에 걸쳐 계산되고 버퍼에 저장된다. CU 레벨에서, 프로세스는 도 12의 프로세스에 가깝다. 이 프로세스는 LIC 파라미터들(a_i,b_i)의 (W_CTU/4) 쌍의 메모리 버퍼와 결합되며, 여기서 W_CTU는 CTU의 폭(전형적으로 128)을 나타낸다.
도 15는 도 14의 실시예가 사용될 때 주어진 CTU 내의 CU들이 디코더에 의해 처리되고 있는 동안의 LIC 파라미터 버퍼의 진화를 도시한다. 이 실시예의 약점은 도 12의 실시예에 비하여, 소정의 시점에, 현재 CU에 이웃하는 공간 영역에 대응하는 어떠한 LIC 파라미터도 이용가능하지 않다는 것이다. 이것은 디코딩 프로세스에서 CTU로부터 다음 CTU로 스위칭할 때 발생한다. 그러나, 더 자주 발생하는 다른 상황들에서, 이 실시예는 도움이 되는 것으로 입증되었다.
도 16은 CTU로부터 다음 CTU로의 스위칭의 전형적인 예를 도시한다. 이 도면에서, 제2 CTU 내의 밝은 회색 CU는 선행 CTU의 하부 부분들 상에서 계산된 LIC 파라미터들을 사용한다.
적어도 하나의 변형 실시예에서, LIC는 영역이 소정의 값, 예를 들어 32보다 엄격하게 높은 블록들에 대해서만 사용될 수 있다. 이것은 적어도 8x8 크기의 블록에 대응한다. 그 경우, CTU의 8x8 서브블록들의 각각의 y 위치에 대한 한 쌍의 파라미터들(a,b)을 저장함으로써 LIC 파라미터들의 버퍼의 크기를 2만큼 감소시키는 것이 가능하며, 이는 CTU 크기가 128x128인 경우에 전체적으로 16 쌍의 파라미터들(a,b)로 이어진다.
도 17은 LIC 파라미터들이 CU가 디코더 상에서 재구성된 후에 계산되고 CU의 우측의 수직 부분에 걸쳐 그리고 이어서 CU의 수평 하부 부분에 걸쳐 계산되는 제3 실시예를 도시한다. 이 실시예는 2개의 제1 실시예를 결합한다. 따라서, 수직 부분들 및 수평 부분들에 각각 대응하는 2개의 버퍼가 디코딩 프로세스 동안 유지된다. 이러한 버퍼들의 크기들은 2개의 이전 섹션에서 설명된 것들과 동일하다.
도 18은 제3 실시예가 사용될 때 주어진 CTU 내의 CU들이 디코더에 의해 처리되고 있는 동안의 2개의 버퍼에 포함된 LIC 파라미터들의 진화를 도시한다. 회색 부분들은 LIC 파라미터들이 계산되었고 디코딩 프로세스의 주어진 스테이지에서 메모리에 현재 저장되는 모든 영역들을 나타낸다. 이전 CTU의 LIC 파라미터들을 계산하는 데 사용되는 수평 부분은 도면을 가능한 한 명확하게 유지하기 위해 여기서는 나타나지 않는다는 점에 유의한다.
도 19는 제1 실시예에서 제안된 바와 같은 LIC 파라미터 메모리 저장소의 예를 도시한다. 이것은 회색 직사각형으로 표현되는, 디코딩 프로세스 동안 LIC 파라미터들을 저장하는 데 사용되는 메모리 버퍼를 도시한다.
도 20은 본 출원의 제1 실시예에 따른 CU 디코딩 프로세스의 예를 도시한다. 디코딩 프로세스는 굵게 강조된 단계들을 제외하고는 통상적이다. 먼저, 인터 예측 파라미터들의 디코딩이 아래에 주어지는 도 21의 상세한 설명에 따라 수행된다. 다음으로, 2개의 다른 주요 수정은 도 20의 CU 디코딩 프로세스의 끝에서 발생하는 LIC 파라미터 계산 및 LIC 파라미터 저장 단계들이다.
LIC 파라미터들 (a,b)의 계산은 위에서 설명된 바와 같이 통상적으로 수행되는데, 차이는 그것이 현재 CU의 수직 우측 부분에 걸쳐 수행된다는 점이다. 이어서, 이 단계들은 로컬 조명 보상에 사용될 1차 선형 모델의 LIC 파라미터들 (a,b)를 결정한다. 이어서, 이러한 파라미터들은 도 20의 마지막 단계에 도시된 바와 같이 버퍼에 저장된다. 위에서 설명된 바와 같이, LIC 파라미터들의 버퍼는 간단히, 고려되는 CTU의 상부에 대해, 고려되는 (a,b) 파라미터들이 참조하는 수직 공간 위치에 의해 인덱싱되는 튜플들 (a,b)의 하나의 어레이로 구성된다. 따라서, 버퍼는 다음의 어레이로서 표현될 수 있다.
Figure pct00008
여기서,
Figure pct00009
는 고려되는 CTU의 높이이고, 0과 (N-1) 사이에 포함된 각각의 인덱스 i에 대해, 파라미터들 (
Figure pct00010
)는 수직 공간 위치 i와 연관된 LIC 파라미터들을 나타낸다. 모션 정보는 전형적으로 현재 픽처에서 4x4 블록 레벨에 저장되기 때문에, 한 쌍의 LIC 파라미터는 CTU 높이에 걸친 4-픽셀 기반 1D 그리드를 고려하여 각각의 수직 위치와 연관되는 각각의 인덱스 i와 연관된다. 이것은 디코딩 프로세스 동안 LIC 파라미터들을 저장하는 데 사용되는 메모리 버퍼를 도시하는 도 19에 도시된다.
따라서, 주어진 CU와 연관된 LIC 파라미터들 (a,b)를 저장하기 위해, 현재 CU에 포함된 각각의 4-서브블록 기반 수직 위치 i에 대해, 메모리 버퍼 내의 파라미터들( a_i,b_i)은 값들 (a, b)와 동일하게 설정된다.
도 21은 제안된 제1 실시예에 따라 AMVP 모드에서 코딩된 CU의 인터 예측 파라미터들을 디코딩하는 데 사용되는 예시적인 프로세스를 도시한다. 이 프로세스는, LIC 플래그가 참과 동일한 CU에 대해, 현재 CU에 대한 LIC 파라미터 선택을 위한 새로 도입된 단계를 제외하고는, 도 11에서와 동일하다.
이 단계는 전용 메모리 버퍼에 저장된 LIC 파라미터들 중에서, 어느 LIC 파라미터들을 현재 CU에 대해 사용할지를 결정하는 것을 허용하고 다음과 같이 진행한다. 현재 CU와 동일한 기준 픽처 인덱스를 갖는 가장 가까운 이웃 블록에 대응하는 LIC 파라미터들이 선택된다. 가장 가까운 이웃은 예를 들어 현재 CU의 수직 위치에 가장 가까운 수직 위치를 갖는 LIC 파라미터들인데, 그 이유는 메모리 버퍼가 수직 공간 위치에 의해 조직되기 때문이다. 따라서, 이 단계는 현재 CU 수직 위치로부터 가장 가까운 수직 위치로부터 덜 가까운 수직 위치로 진행하는, 메모리 버퍼에 현재 저장된 LIC 파라미터들에 걸친 루프를 포함한다. 여기서 그리고 이 루프를 구현하는 예시적인 방법으로서, 현재 CU의 위치는 현재 CU의 좌상 코너의 위치 (x,y)로서 정의된다. 따라서, 현재 CU의 수직 위치는 현재 CU의 좌상 코너의 y 좌표이다. 변형에 따르면, 루프 내의 시작 위치는 최저 수직 위치와 연관된 LIC 파라미터들에 대응한다. 따라서, 이것은 현재 CU의 좌하 코너의 좌측에 위치하는 4x4 서브블록을 포함하는 코딩 유닛의 코딩/디코딩으로부터 발행된 LIC 파라미터들에 대응한다. 그 다음, 루프는 그러한 시작점으로부터 가장 높은 수직 위치와 연관된 LIC 파라미터들을 향해 반복된다. 추가 변형에 따르면, 루프는 또한 현재 CU 수평 경계들을 넘어서는 수직 위치들과 연관된 LIC 파라미터들에 걸쳐 반복되어, 프로세스가 현재 CU와 동일한 기준 픽처 인덱스를 갖는 일부 LIC 파라미터들을 발견할 가능성을 더 크게 한다.
버퍼 내의 LIC 파라미터들의 후보 쌍과 연관된 기준 픽처 인덱스를 얻기 위해, 고려되는 수직 위치에서의 최종 디코딩된 CU, 즉 고려되는 후보 LIC 파라미터들의 계산 및 저장으로 이어지는 재구성된 CU의 기준 픽처 인덱스를 검색한다. 변형에 따르면, 그리고 디코딩 프로세스를 조금 더 간단하게 하기 위해, 기준 픽처 인덱스들은 고려되는 메모리 버퍼에 LIC 파라미터들과 함께 저장된다.
어떠한 이웃 블록도 현재 블록과 동일한 기준 픽처 인덱스를 갖지 않는 경우, 실시예에 따르면, 현재 블록의 위치에 가장 가까운 위치를 참조하는 LIC 파라미터들이 현재 CU에 대해 사용될 수 있다. 그러나, 현재 블록과 상이한 기준 픽처 인덱스를 갖는 블록을 참조하는 후보 LIC 파라미터들을 고려하기 전에, 현재 블록과 동일한 기준 픽처 인덱스를 갖는 디코딩된 블록들로부터 발행된 LIC 파라미터들에 우선순위가 주어진다는 점에 유의한다.
변형에 따르면, 어떠한 저장된 LIC 파라미터도 현재 블록과 동일한 기준 픽처를 갖는 블록으로부터 발행되지 않는다면, LIC 플래그는 거짓으로 추론될 수 있다.
마지막으로, 모든 제안된 실시예들에서, 사소한 선형 모델(즉, a=1, b=0)에 대응하는 LIC 파라미터들은 고려되지 않고 전용 메모리 버퍼에 저장되지 않는다는 점에 유의한다. 이 경우, LIC는 단순히 사용되지 않고 그에 따라 시그널링되지 않는다.
제2 실시예에 따른 상세한 CU 디코딩 프로세스는 제1 실시예에 대한 위의 설명과 유사하다. 차이는, 수직 영역들이 LIC 파라미터들을 계산하는 데 사용되는 대신에, 각각의 재구성된 CU의 수평 하부 하위 부분이 LIC 파라미터들을 계산한 후에 전용 메모리 버퍼에 저장하는 데 사용된다는 것이다(도 14, 15 및 16). 현재 CU에 대해 사용할 LIC 파라미터들의 선택/결정에 관하여, "현재 CU에 대해 사용할 메모리 버퍼 내의 LIC 파라미터들의 선택" 단계와 유사한 프로세스가 호출된다. 따라서, 이것은 고려되는 메모리 버퍼에 저장된 LIC 파라미터들에 걸친 루프로 구성된다. 다시, 이 루프는 메모리 버퍼에 저장된 LIC 파라미터들 중에서 상이한 시작점(따라서 또한 종료점)을 사용할 수 있다. 제1 변형에 따르면, 루프는 좌측 수평 CU 위치에 대응하는 LIC 파라미터들, 즉 현재 CU의 좌측 위치와 동일한 수평 위치와 연관된 LIC 파라미터들로부터 반복된다. 이 변형에서, 루프는 이 위치로부터 현재 CU의 우측 코너의 수평 위치와 동일한 수평 위치에 대응하는 저장된 LIC 파라미터들을 향해 반복된다. 다른 변형에 따르면, 순서가 반전된다. 이것은 루프가 (현재 CU의 우측 코너들의 위치와 동일한) 우측 위치로부터 좌측 위치(현재 CU의 좌측 코너들의 수평 위치와 동일한 수평 위치)를 향해 반복된다는 것을 의미한다. 추가 변형에 따르면, 루프는 또한 현재 CU 경계들을 넘는 수평 위치들과 연관된 LIC 파라미터들에 걸쳐 반복되어, 프로세스가 현재 CU와 동일한 기준 픽처 인덱스를 갖는 일부 LIC 파라미터들을 발견할 가능성을 더 크게 한다.
제3 실시예는 제1 및 제2 실시예들의 결합이고, LIC 파라미터 계산 및 저장은 제1 및 제2 방법들의 그것들과 동일하다. 2개의 제1 실시예와의 현저한 차이는, (수직 및 수평 영역 기반 LIC 파라미터들을 각각 저장하는) 2개의 메모리 버퍼가 주어지는 경우의, 현재 CU에 적용할 LIC 파라미터들의 선택에 있다. 사실상, 한 쌍의 LIC 파라미터들은 현재 CU에 대한 그러한 2개의 버퍼 중의 선택이다. 이를 선택하는 간단한 방법은 제1 및 제2 실시예들에서 행해지는 바와 같이 각각의 버퍼에서 한 쌍의 LIC 파라미터를 선택하는 것이다. 다음으로, LIC 파라미터들 (a, b)의 2개의 선택된 쌍 중에서, 현재 CU에 가장 가까운 위치에 대응하는 것이 선택된다. 현재 CU 위치까지의 그들 각각의 거리가 동일하면, 하나의 배향, 예를 들어 수직 배향에 우선순위가 주어진다.
적어도 제4 실시예에서, 2개의 메모리 버퍼(수직 및 수평)에서 LIC 파라미터 후보들을 프루닝(pruning)하기 위한 새로운 기준이 사용된다. 반복 루프는 메모리 버퍼(들)에 저장된 모든 LIC 파라미터들(수직, 수평 또는 둘 다)에 대해 행해져서, 예를 들어 현재 CU와 동일한 기준 픽처 인덱스를 갖는 모든 LIC 파라미터들을 발견하고, 재구성된 모션 벡터 값들(MVx, MVy)이 현재 CU의 모션 벡터에 가장 가까운 이웃(N)으로 계산된 LIC 파라미터들을 최종 선택한다. "가장 가까운"은 예를 들어 L1-놈(절대차의 합) 또는 L2-놈 기반 함수일 수 있다.
일부 종래의 코덱들에서, 모션 벡터들 및 기준 인덱스는 다른 CU들을 디코딩하는 데 이용 가능한 모션-정보 버퍼에 저장된다. 이러한 구조는 메모리에 저장된 LIC 파라미터들과 연관된 기준 픽처 인덱스 및 모션 벡터 값들을 얻기 위해 사용될 수 있다.
변형 실시예에서, 현재 CU가 병합 모드로 코딩되어, 현재 CU 코딩 파라미터들 중 일부가 하나의 상부(또는 좌측) 이웃 CU(N)로부터 도출(또는 직접 병합)되었음을 나타내는 경우, 이 상부(또는 좌측) CU 이웃으로 계산된 메모리 버퍼(들)에 저장된 LIC 파라미터들이 현재 CU에 대해 선택된다.
제4 실시예의 변형에서, LIC가 현재 CU에 대해 적용되는지를 나타내는 LIC-플래그는 (이 이웃(N)으로부터) 추론되거나 코딩될 수 있다.
도 22는 인코딩 및 디코딩 프로세스의 속도를 높이기 위한 제5 실시예를 도시한다. 이 실시예에서, 현재 CTU의 하부 또는 픽처의 우측에 위치한 파티션들에 대한 LIC 파라미터들은 다른 CU들을 디코딩하는 데 사용되지 않을 것이기 때문에 계산되지 않는다. 이러한 파티션들은 도 22에서 흑색 직사각형들로 표현된다.
변형 실시예에서, 디코딩 스테이지에서, 코딩된 파라미터들의 파싱(parsing) 및 CTU 파티션 트리의 구축 동안, 각각의 CU를 재구성한 후에 LIC 파라미터들이 계산되어야 하는지를 나타내는 사전 인출된 맵이 구성될 수 있다. 예를 들어, 인트라 코딩된 CU들 또는 명시적으로 코딩된(즉, 재구성된 이웃으로부터 추론되지 않은) LIC 플래그를 갖는 인터 코딩된 CU들에 대해, 이 맵은 다음과 같이 LIC-플래그를 포함할 것이다.
인트라 코딩된 Cu: 맵-LIC-플래그 = 거짓
명시적으로 코딩된 LIC-플래그를 갖는 인터 코딩된 Cu: 맵-LIC-플래그 = LIC-플래그
추론된 LIC-플래그를 갖는 인터 코딩된 Cu: 맵-LIC-플래그 = 참
다음으로, 인터 코딩된 하나의 현재 CUa 재구성 후에, 맵이 현재 CTU 내의 모든 우측 CU들(Cur) 및 아래의 CU들(Cub)이 LIC를 사용하지 않음을 나타내는 경우(맵-LIC-플래그 = 거짓), LIC 파라미터들은 현재 CUa에 대해 계산되지 않는다.
도 23은 사전 인출된 맵이 LIC 파라미터들이 계산되어야 하는지를 나타내는 변형 실시예를 도시한다. 이 도면에서, 백색 배경을 갖는 파티션들은 LIC를 사용하고, 회색 배경을 갖는 파티션들은 LIC를 사용하지 않으며, 교차-점선 배경을 갖는 나머지 파티션들에 대해, LIC 사용은 재구성된 이웃으로부터 추론된다.
도 24는 CTU에서 사전 인출을 사용하는 LIC 파라미터들의 조건부 계산을 도시한다. CTU 내의 CU 트리에 걸친 제1 루프에서, 전술한 바와 같이, CU 파라미터들이 디코딩되고, LIC 플래그들의 맵이 구축된다. CTU 내의 CU 트리에 걸친 제2 루프에서, CU가 재구성되고, LIC 플래그는 LIC 파라미터들이 계산되지 않아야 하는지를 결정하기 위해 체크된다.
도 25는 제6 실시예를 도시한다. 이 실시예는 다음의 특징들을 포함한다.
- 3개의 제1 실시예에 대해, 제한된 크기의 메모리 버퍼는 디코딩되는 픽처에서 나중에 소정의 CU의 모션 보상된 시간 예측 동안에 조명 변화를 적용하는 데 사용될 수 있는 LIC 파라미터를 저장하는 데 사용된다.
- 3개의 제1 실시예에 대해, 각각의 재구성된 CU의 LIC 파라미터들이 계산된다. 이들은 처음 3개의 실시예에서와 같이 CU의 우측 또는 하부 부분이 아니라 전체 재구성된 CU에 걸쳐 계산될 수 있다.
- LIC 파라미터들의 전용 메모리 버퍼 내로의 저장 정책은 이전 실시예들에 비해 변경되며: LIC 파라미터들은 그들이 이미 저장된 파라미터들에 걸쳐 소정의 다양성을 유발하는 경우에만 저장되어, 코딩 효율 문제들에 대한 양호한 세트의 후보 LIC 파라미터들을 후속 CU들에 제공한다.
- 일부 LIC 파라미터들의 저장은 메모리 버퍼를 원하는 크기로 유지하기 위해 일부 LIC 파라미터들의 폐기와 결합된다.
- 현재 CU의 예측에서 사용되는 LIC 파라미터들은 버퍼에 저장된 어느 LIC 파라미터들이 현재 코딩 유닛에서 사용되는지를 나타내는 인덱스를 통해 식별된다. 이 인덱스는 고려되는 CU의 LIC 플래그가 참과 동일한 경우에 비트스트림으로부터 엔트로피 디코딩된다.
도 25는 본 제6 실시예에 따른 인터 CU 디코딩 프로세스를 도시한다. 이 실시예에서, (재구성된 후의) CU의 LIC 파라미터들은 위와 유사하게 계산되는데, 차이는 LIC 파라미터들 (a,b)가 계산되는 영역이 재구성된 CU 내에 위치한다는 것이다. 계산된 LIC 파라미터들은 버퍼에 이미 저장된 것들과 비교된다. 새롭게 계산된 파라미터들과 이미 저장된 파라미터들 사이의 거리가 충분한 것으로(예를 들어, 임계치보다 큰 것으로) 검출되는 경우, 각각의 저장된 파라미터들의 쌍에 대해, 새롭게 계산된 파라미터들이 FIFO(선입선출) 버퍼에 저장된다. 버퍼는 제한된 크기를 가지며, 따라서 가득 찰 경우, 버퍼에 저장된 제1 요소가 제거된다.
도 26은 제6 실시예에 따른 인터 예측 파라미터 디코딩 프로세스의 예를 도시한다. 이 실시예는 도 25의 계산/저장 알고리즘을 사용한다. 이 프로세스는 LIC 플래그가 현재 인터 CU에 대해 활성인(예를 들어, 플래그가 참인) 경우에 추가적인 신택스 요소의 디코딩 단계를 포함한다는 것을 제외하고는 이전과 동일하다. 이러한 신택스 요소는 그의 모션 보상된 시간 예측 동안 현재 CU에 대해 사용할 LIC 파라미터들의 인덱스에 대응한다. 디코딩된 인덱스는 현재 CU에 할당하기 위해 FIFO 버퍼로부터 LIC 파라미터들을 식별한다.
제7 실시예는 사전에 결정된 LIC 파라미터들의 세트를 사용한다. 이것은 다음의 특징들을 포함한다.
- LIC의 사용은 이전의 실시예들에서와 같이 CU-레벨 LIC 플래그에 의해 다시 시그널링된다.
- LIC 파라미터들은 픽처 콘텐츠에 기초하여 더 이상 계산되지 않는다. 그들은 대신에 사전에 결정된다.
- 사전에 결정된 LIC 파라미터들은 이전 실시예들에서와 같이 전용의 제한된 메모리 버퍼에 저장된다.
- LIC가 활성인 각각의 CU에 대해, 비트스트림으로부터 인덱스가 디코딩된다. 이 인덱스는 현재 코딩 유닛의 인터 예측 동안 사용되는 버퍼로부터의 LIC 파라미터들을 식별한다.
이 실시예는 일반화된 양방향 예측 개념과 유사하지만, 단방향 시간 예측의 경우에 적용된다는 점에 유의한다. 기본적으로, 단방향 예측은 다음과 같이 선형 함수의 형태를 취한다: Pred(x) = a.ref + b. 이 실시예의 특이성은 여기서 (a,b)가 미리 정의된 쌍의 세트 중에서 선택된 한 쌍의 값들이고, 송신된 쌍 인덱스를 통해 식별된다는 것이다. 따라서, 이 실시예는 이전 섹션 중 하나와 유사하다. 차이는 도 25의 LIC 파라미터 계산 단계가 제거된다는 것이다. 메모리 버퍼(도 26) 내의 LIC 파라미터들의 인덱스의 디코딩은 그대로 유지된다. 더욱이, LIC 파라미터들의 메모리 버퍼는 이전 실시예에서와 같이 FIFO가 아니라 사전에 결정된 일정한 LIC 파라미터들의 일정한 세트이다.
도 27은 인터 슬라이스에서 CU에 대한 레이트 왜곡 최적화된 코딩 모드 선택의 실시예를 도시한다. 사실상, 조명 보상에 관련된 플래그들의 코딩에 더하여, AMVP 코딩 모드의 레이트 왜곡 최적화가 또한 수정된다. 도면에 도시된 바와 같이, 모든 가능한 인터 모드들이 평가되고, 이어서 최상의 발견된 인터 모드가 고려되는 CU의 코딩에서 충분히 성능을 갖지 않는 경우에 인트라 모드가 평가된다. 테스트되는 인터 모드들은 예를 들어 아핀 병합, 병합 모드, FRUC 병합 모드 및 인터 AMVP 모드들을 포함한다. 다른 실시예에서, 모든 이용가능한 모드들이 테스트된다. AMVP 모드에서, 레이트 왜곡 검색은 IC 플래그에 걸친 반복을 포함하는 모든 코딩 파라미터들에 걸친 루프를 포함한다. 따라서, 각각의 IC 플래그 가능 값은 현재 CU에 대한 레이트 왜곡 관점에서 평가된다.
본 출원의 적어도 일 실시예는 인코더 측에서, 예를 들어 디바이스(100 또는 300)에서 다음과 같이 구현된다.
- CTU의 코딩 유닛들이 인코딩되고 있는 한, 인코딩할 후속 코딩 유닛들에 대한 후보 LIC 파라미터들을 저장하기 위해 디코더 상에서와 정확히 동일한 메모리 버퍼가 유지된다.
- 병합 모드에서, 디코더 측에서와 동일한 LIC 플래그 및 LIC 파라미터 도출 프로세스들이 수행된다. 이것은 다음을 포함한다.
o 5개의 제1 실시예의 경우에 전용 메모리 버퍼 내의 LIC 파라미터들의 쌍의 RD 평가되는 병합 후보 CU로부터의 전파는 디코더 측에서와 정확히 동일한 방식으로 이루어진다.
o 제6 및 제7 실시예들의 경우에 LIC 파라미터 인덱스의 RD 평가되는 병합 후보 CU로부터의 전파.
- AMVP 모드에서, 도 24에 도시된 바와 같이 LIC를 사용하는 것과 LIC를 사용 하지 않는 것 사이의 RD 선택이 수반된다. 이것은 참과 동일한 LIC 플래그 값을 테스트할 때 다음을 포함한다.
o 5개의 제1 실시예의 경우에, 현재 CU에 대해 사용할 LIC 파라미터들의 결정이 디코더 측에서와 동일하게 수행된다. 이것은 도 20에서 설명된 프로세스에 대응한다.
o 제6 및 제7의 경우에, 레이트 왜곡 최적화 루프는 전용 메모리 버퍼에 현재 저장된 LIC 파라미터들 중에서 현재 CU에 대해 사용할 최상의 LIC 파라미터들의 선택에 전용화될 수 있다. 따라서, 현재 CU의 LIC로서 사용할 최상의, 즉 최소 레이트 왜곡 비용으로 이어지는 LIC 파라미터 후보들의 인덱스가 선택된다. 그 다음, 인코더 RD 검색 프로세스가 LIC가 현재 CU에 대해 사용되어야 한다고 결정하면, 참과 동일한 LIC 플래그 및 발견된 최상의 LIC 파라미터 인덱스가 비트스트림에서 송신된다.
- 마지막으로, 실시예들 중 임의의 것에 따라 CU가 인코딩될 때마다, 그 CU와 연관된 LIC 파라미터들은 디코더 측에서와 정확히 동일한 방식으로 계산된다. 이것은 5개의 제1 실시예의 경우에 현재 재구성된 CU의 일부(우측 부분의 하부 부분)가 사용된다는 것을 의미한다. 제6 실시예의 경우, 전체 재구성된 CU가 사용될 수 있다.
본 출원의 실시예에서, AMVP 모드에서 코딩되는 인터 코딩 유닛들의 경우에서의 수정된 LIC 파라미터 계산, 저장 및 사용이 제안되어, 병합 모드에서의 전파를 허용한다. 이것은 주로 이전에 설명된 AMVP 코딩/디코딩을 암시한다. 사실상, 병합 코딩 모드는 병합 후보라고 하는 이웃하는 이미 코딩/디코딩된 CU로부터 CU의 모션 정보를 도출하는 것으로 구성된다. 최상의 병합 후보는 전형적으로 인코더 측에서 RD 비용 관점에서 선택되고, 선택된 병합 후보를 식별하는 병합 인덱스가 비트스트림에서 송신된다.
본 출원에 따르면, 병합 후보 CU와 연관된 IC 플래그는 병합 모드에서 예측된 현재 CU로 전파된다. 이것은 병합 모드에서의 CU가 또한 현재 CU의 모션 정보의 예측을 위해 선택된 병합 후보 CU의 그것과 동일한 IC 플래그를 할당받는다는 것을 의미한다.
LIC 파라미터들과 관련하여, 병합 모드에 있는 현재 CU는 또한 선택된 병합 후보와 연관된 LIC 파라미터들을 상속한다.
따라서, 이러한 병합 CU의 모션 보상된 시간 예측은 인터 AMVP 코딩 유닛들에 대한 것과 정확히 동일한 방식으로 조명 변화 보상의 적용을 포함한다.
본 출원의 하나의 특정 양태는 어느 저장된 LIC 파라미터들이 현재 CU의 시간 예측에서 사용되는지를 식별하기 위해 CU-레벨 인덱스가 사용되는 경우와 관련 된다. 이것은 앞서 설명된 제6 및 제7 실시예들과 관련된다. 현재 CU는 병합 모드에 있는 경우에, 선택된 병합 후보들의 LIC 파라미터 인덱스를 상속한다.
다른 특정 양태는 병합 모드에서 인터 코딩되고 양방향 시간 예측을 이용하는 CU들과 관련된다. 이러한 CU들은 단방향 LIC를 사용하는 상이한 후보들로부터 잠재적으로 오는 모션 정보를 도출한다. 그 경우, 고전적으로 LIC는 양방향 예측된 CU들에서 허용되지 않는다. 여기서, 사전에 결정된 LIC 파라미터들을 수반하는 제5 실시예의 경우에 LIC가 활성화될 수 있다. 이미 언급된 바와 같이, 이 실시예는 단방향의 일반화된 예측이라고도 한다. 2개의 선택된 후보가 사전에 결정된 동일한 파라미터들 (a,b)와 함께 일반화된 단방향 예측을 이용하는 경우에, 이러한 (a,b) 파라미터들을 사용하는 선형 모델은 현재 CU의 양방향 시간 예측에도 적용된다. 그렇지 않고, 병합 후보 중 어느 것도 일반화된 단방향 예측을 이용하지 않거나 그들 둘 다가 그것을 사용하지만 상이한 파라미터들과 함께 사용하는 경우, 현재 CU의 양방향 예측에서는 어떠한 선형 모델도 사용되지 않는다.
도 28은 본 출원의 적어도 일 실시예에 따른 LIC 파라미터 결정을 위한 흐름도를 설명한다. 제1 단계에서, LIC 파라미터들은 전술된 실시예들 중 하나에 따라 결정된다. 제2 단계에서, LIC 파라미터들은 전술된 실시예들 중 하나에 따라 버퍼에 저장된다. 제3 단계에서, LIC 파라미터들의 사용 및 버퍼 내의 LIC 파라미터들의 인덱스가 시그널링된다. 적어도 일 실시예에서, 이것은 예를 들어 (예를 들어, 인코더에서) 콘텐츠를 제공하기 전에 LIC 파라미터들이 결정될 때 신호 내에 내장된 소정의 전용 신택스를 사용하여 행해진다. 적어도 다른 실시예에서, 이것은 예를 들어 (예를 들어, 디코더에서) 콘텐츠 액세스 후에 LIC 파라미터들이 결정될 때 일부 내부 변수들을 사용하여 행해진다.
도 29는 본 출원의 적어도 일 실시예에 따른 LIC 파라미터들의 사용을 위한 흐름도를 설명한다. 제1 단계에서, LIC 파라미터들이 사용되어야 하는지 여부가 체크된다. 체크의 일례는 예를 들어 플래그 및 인덱스의 형태 하에서 비디오 콘텐츠 내의 적절한 시그널링의 존재를 검출하는 것이다. LIC 파라미터들이 사용되어야 한다면, 이러한 파라미터들은 예를 들어 이들이 비디오를 재구성하기 위해, 예를 들어 LIC 파라미터들을 적용하여 코딩 트리 유닛의 하나의 코딩 유닛에 대한 조명의 변화를 보상함으로써 그러한 코딩 유닛을 재구성하기 위해 저장되고 사용되는 버퍼로부터 액세스, 예를 들어 획득된다.
다양한 구현들은 디코딩을 수반한다. 본 출원에서 사용되는 바와 같은 "디코딩"은 디스플레이에 적합한 최종 출력을 생성하기 위해, 예를 들어 수신된 인코딩된 시퀀스에 대해 수행되는 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 그러한 프로세스들은 디코더에 의해 전형적으로 수행되는 프로세스들, 예를 들어 엔트로피 디코딩, 역양자화, 역변환 및 차분 디코딩 중 하나 이상을 포함한다. 다양한 실시예들에서, 그러한 프로세스들은 또한 또는 대안적으로 본 출원에서 설명된 다양한 구현들, 예를 들어 도 29에 제시된 실시예들의 디코더에 의해 수행되는 프로세스들을 포함한다.
추가적인 예들로서, 하나의 실시예에서, "디코딩"은 엔트로피 디코딩만을 지칭하고, 다른 실시예에서, "디코딩"은 차분 디코딩만을 지칭하고, 다른 실시예에서, "디코딩"은 엔트로피 디코딩과 차분 디코딩의 결합을 지칭한다. "디코딩 프로세스"라는 문구가 구체적으로 동작들의 서브세트를 지칭하도록 의도되는지 또는 일반적으로 더 넓은 디코딩 프로세스를 지칭하도록 의도되는지는 특정 설명들의 맥락에 기초하여 명백할 것이며, 이 분야의 기술자들에 의해 잘 이해될 것으로 여겨진다.
다양한 구현들은 인코딩을 수반한다. "디코딩"에 관한 위의 설명과 유사한 방식으로, 본 출원에서 사용되는 바와 같은 "인코딩"은 인코딩된 비트스트림을 생성하기 위해, 예를 들어 입력 비디오 시퀀스에 대해 수행되는 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 그러한 프로세스들은 인코더에 의해 전형적으로 수행되는 프로세스들, 예를 들어 분할, 차분 인코딩, 변환, 양자화 및 엔트로피 인코딩 중 하나 이상을 포함한다. 다양한 실시예들에서, 그러한 프로세스들은 또한 또는 대안적으로 본 출원에서 설명된 다양한 구현들, 예를 들어 도 29의 실시예들의 인코더에 의해 수행되는 프로세스들을 포함한다.
추가적인 예들로서, 하나의 실시예에서 "인코딩"은 엔트로피 인코딩만을 지칭 하고, 다른 실시예에서 "인코딩"은 차분 인코딩만을 지칭하며, 다른 실시예에서 "인코딩"은 차분 인코딩과 엔트로피 인코딩의 결합을 지칭한다. "인코딩 프로세스" 라는 문구가 구체적으로 동작들의 서브세트를 지칭하도록 의도되는지 또는 일반적으로 더 넓은 인코딩 프로세스를 지칭하도록 의도되는지는 특정 설명들의 맥락에 기초하여 명백할 것이며, 이 분야의 기술자들에 의해 잘 이해될 것으로 여겨진다.
본 명세서에서 사용되는 바와 같은 신택스 요소들은 설명적 용어들이라는 점에 유의한다. 따라서, 이들은 다른 신택스 요소 명칭들의 사용을 배제하지 않는다.
본 출원은 도구, 특징, 실시예, 모델, 접근법 등을 포함하는 다양한 양태들을 설명한다. 다수의 이러한 양태들은 구체적으로 설명되며, 적어도 개별 특징들을 보여주기 위해, 제한하는 것일 수 있는 방식으로 종종 설명된다. 그러나, 이것은 설명의 명료함을 위한 것이고, 그러한 양태들의 응용 또는 범위를 제한하지 않는다. 사실상, 추가적인 양태들을 제공하기 위해 상이한 양태들 모두가 결합되고 교환될 수 있다. 더구나, 양태들은 초기의 출원들에서 설명된 양태들과 결합되고 교환될 수도 있다. 본 출원에서 설명되고 고려되는 양태들은 많은 상이한 형태들로 구현될 수 있다. 위의 도 1, 도 2 및 도 3은 일부 실시예들을 제공하지만, 다른 실시예들이 고려되며, 도면들의 설명은 구현들의 폭을 제한하지 않는다.
본 출원에서, "재구성된" 및 "디코딩된"이라는 용어들은 상호 교환가능하게 사용될 수 있고, 용어 "메모리" 및 "버퍼"는 상호 교환가능하게 사용될 수 있고, 용어 "이미지", 용어 "픽셀" 및 "샘플"은 상호 교환가능하게 사용될 수 있고, 용어 "이미지", "픽처" 및 "프레임"은 상호 교환가능하게 사용될 수 있고, 용어 "인덱스" 및 "idx"는 상호 교환가능하게 사용될 수 있다. 필수적이 아니라 보통은, "재구성된"이라는 용어는 인코더 측에서 사용되는 반면, "디코딩된"은 디코더 측에서 사용된다.
다양한 방법들이 본 명세서에서 설명되고, 방법들 각각은 설명된 방법을 달성하기 위한 하나 이상의 단계 또는 액션을 포함한다. 방법의 적절한 동작을 위해 단계들 또는 액션들의 특정 순서가 요구되지 않으면, 특정 단계들 및/또는 액션들의 순서 및/또는 사용은 수정되거나 결합될 수 있다.
예를 들어 블록 크기들에 관한 다양한 수치 값들이 본 출원에서 사용된다. 특정 값들은 예시적인 목적들을 위한 것이고, 설명되는 양태들은 이러한 특정 값들로 제한되지 않는다.
"일 실시예" 또는 "실시예" 또는 "일 구현" 또는 "구현"은 물론, 이들의 다른 변형들에 대한 참조는 실시예와 관련하여 설명된 특정 특징, 구조, 특성 등이 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서 전반에 걸쳐 다양한 위치들에서 나타나는 "일 실시예에서" 또는 "실시예에서" 또는 "일 구현에서" 또는 "구현에서"뿐만 아니라 임의의 다른 변형들의 출현들은 반드시 모두가 동일한 실시예를 지칭하는 것은 아니다.
게다가, 본 출원 또는 그의 청구항들은 다양한 정보를 "결정하는 것"을 언급할 수 있다. 정보를 결정하는 것은 예를 들어 정보를 추정하는 것, 정보를 계산하는 것, 정보를 예측하는 것 또는 메모리로부터 정보를 검색하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원 또는 그의 청구항들은 다양한 정보에 "액세스하는 것"을 언급할 수 있다. 정보에 액세스하는 것은 예를 들어 정보를 수신하는 것, (예를 들어, 메모리로부터) 정보를 검색하는 것, 정보를 저장하는 것, 정보를 이동시키는 것, 정보를 복사하는 것, 정보를 계산하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것 중 하나 이상을 포함할 수 있다.
게다가, 본 출원 또는 그의 청구항들은 다양한 정보를 "수신하는 것"을 언급할 수 있다. 수신하는 것은 "액세스하는 것"과 같이 광의의 용어로 의도된다. 정보를 수신하는 것은 예를 들어 정보에 액세스하는 것, 또는 (예를 들어, 메모리 또는 광학 매체 저장소로부터) 정보를 검색하는 것 중 하나 이상을 포함할 수 있다. 또한, "수신하는 것"은 전형적으로 예를 들어 정보를 저장하는 것, 정보를 처리하는 것, 정보를 송신하는 것, 정보를 이동시키는 것, 정보를 복사하는 것, 정보를 소거하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것 또는 정보를 추정하는 것과 같은 동작들 동안 하나의 방식 또는 다른 방식으로 수반된다.
예를 들어, "A/B", "A 및/또는 B" 및 "A 및 B 중 적어도 하나"의 경우들에서, 이하의 "/", "및/또는" 및 "적어도 하나" 중 임의의 것의 사용은 처음 열거된 옵션 (A)만의 선택 또는 두 번째로 열거된 옵션 (B)만의 선택 또는 양 옵션 (A 및 B)의 선택을 포함하는 것을 의도한다는 것을 알아야 한다. 추가 예로서, "A, B 및/또는 C" 및 "A, B 및 C 중 적어도 하나"의 경우들에서, 이러한 문구는 첫 번째로 열거된 옵션 (A)만의 선택 또는 두 번째로 열거된 옵션 (B)만의 선택 또는 세 번째로 열거된 옵션 (C)만의 선택 또는 첫 번째와 두 번째로 열거된 옵션 (A 및 B)만의 선택 또는 첫 번째와 세 번째로 열거된 옵션 (A 및 C)만의 선택 또는 두 번째와 세 번째로 열거된 옵션 (B 및 C)만의 선택, 또는 3개의 옵션 (A 및 B 및 C) 전부의 선택을 포함하는 것을 의도한다. 이것은 이 분야 및 관련 분야의 통상의 기술자에게 자명한 바와 같이 열거된 많은 아이템들에 대해 확장될 수 있다.
이 분야의 기술자에게 명백한 바와 같이, 구현들은 예컨대 저장되거나 송신될 수 있는 정보를 운반하도록 포맷팅된 다양한 신호들을 생성할 수 있다. 정보는 예를 들어 방법을 수행하기 위한 명령어들 또는 설명되는 구현들 중 하나에 의해 생성되는 데이터를 포함할 수 있다. 예를 들어, 신호는 설명되는 실시예의 비트스트림을 운반하도록 포맷팅될 수 있다. 이러한 신호는 예컨대 (예컨대, 스펙트럼의 무선 주파수 부분을 사용하여) 전자기파로서 또는 기저대역 신호로서 포맷팅될 수 있다. 포맷팅은 예를 들어 데이터 스트림을 인코딩하고 인코딩된 데이터 스트림으로 캐리어를 변조하는 것을 포함할 수 있다. 신호가 운반하는 정보는 예를 들어 아날로그 또는 디지털 정보일 수 있다. 신호는 공지된 바와 같은 다양한 상이한 유선 또는 무선 링크들을 통해 송신될 수 있다. 신호는 프로세서 판독 가능 매체 상에 저장될 수 있다.

Claims (17)

  1. 픽처 내의 블록에 대한 픽처 데이터를 인코딩하기 위한 방법으로서,
    적어도 로컬 조명 보상 기능의 사용을 나타내는 정보를 포함하는 시그널링 정보 및 사용될 로컬 조명 보상 파라미터들의 인덱스로 상기 픽처 데이터를 인코딩하는 단계를 포함하는, 방법.
  2. 픽처 내의 블록에 대한 픽처 데이터를 디코딩하기 위한 방법으로서,
    사용될 로컬 조명 보상 파라미터들의 인덱스를 획득하는 단계; 및
    상기 픽처 데이터를 디코딩하는 단계를 포함하고, 로컬 조명 보상 기능의 사용이 상기 블록에 대응하는 시그널링 정보에서 시그널링될 때, 상기 인덱스에 따라 획득된 로컬 조명 보상 파라미터들과 함께 로컬 조명 보상 기능을 사용하는, 방법.
  3. 제1항 또는 제2항에 있어서, 적어도 하나의 로컬 조명 보상 파라미터는 상기 블록의 위치와 독립적으로 버퍼에 저장되는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 로컬 조명 보상 기능은 스케일링 인자 a 및 오프셋 b를 사용하는 1차 선형 모델을 기준 블록의 픽셀 값들에 적용함으로써 상기 블록의 픽셀 값들을 결정하는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 로컬 조명 보상 파라미터들은 현재 블록에 대한 이웃 블록의 우측 수직 하위 부분에 따라 결정되고, 단일 로컬 조명 보상 파라미터는 적어도 하나의 블록의 서브블록들의 수직 위치에 대해 결정되는, 방법.
  6. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 로컬 조명 보상 파라미터들은 현재 블록에 대한 이웃 블록의 하부 수평 하위 부분에 따라 결정되고, 단일 로컬 조명 보상 파라미터는 적어도 하나의 블록의 서브블록들의 수평 위치에 대해 결정되는, 방법.
  7. 제5항에 있어서, 제2 버퍼는 상기 현재 블록에 대한 이웃 블록의 하부 수평 하위 부분에 따라 결정된 로컬 조명 보상 파라미터들을 저장하고, 단일 로컬 조명 보상 파라미터는 상기 적어도 하나의 블록의 서브블록들의 수평 위치에 대해 결정되는, 방법.
  8. 픽처 내의 블록에 대한 픽처 데이터를 인코딩하기 위한 디바이스로서,
    적어도 로컬 조명 보상 기능의 사용을 나타내는 정보를 포함하는 시그널링 정보 및 사용될 로컬 조명 보상 파라미터들의 인덱스로 상기 픽처 데이터를 인코딩하기 위한 수단을 포함하는, 디바이스.
  9. 픽처 내의 블록에 대한 픽처 데이터를 디코딩하기 위한 디바이스로서,
    버퍼로부터 사용될 로컬 조명 보상 파라미터들의 인덱스를 획득하기 위한 수단; 및
    상기 픽처 데이터를 디코딩하기 위한 수단을 포함하고, 로컬 조명 보상 기능의 사용이 상기 블록에 대응하는 시그널링 정보에서 시그널링될 때, 상기 인덱스에 따라 획득된 로컬 조명 보상 파라미터들과 함께 로컬 조명 보상 기능을 사용하는, 디바이스.
  10. 제8항 또는 제9항에 있어서, 적어도 하나의 로컬 조명 보상 파라미터는 상기 블록의 위치와 독립적으로 버퍼에 저장되는, 디바이스.
  11. 제8항 내지 제10항 중 어느 한 항에 있어서, 상기 로컬 조명 보상 기능은 스케일링 인자 a 및 오프셋 b를 사용하는 1차 선형 모델을 기준 블록의 픽셀 값들에 적용함으로써 상기 블록의 픽셀 값들을 결정하는, 디바이스.
  12. 제8항 내지 제11항 중 어느 한 항에 있어서, 상기 로컬 조명 보상 파라미터들은 현재 블록에 대한 이웃 블록의 우측 수직 하위 부분에 따라 결정되고, 단일 로컬 조명 보상 파라미터는 적어도 하나의 블록의 서브블록들의 수직 위치에 대해 결정되는, 디바이스.
  13. 제8항 내지 제11항 중 어느 한 항에 있어서, 상기 로컬 조명 보상 파라미터들은 현재 블록에 대한 이웃 블록의 하부 수평 하위 부분에 따라 결정되고, 단일 로컬 조명 보상 파라미터는 적어도 하나의 블록의 서브블록들의 수평 위치에 대해 결정되는, 디바이스.
  14. 제12항에 있어서, 제2 버퍼는 상기 현재 블록에 대한 이웃 블록의 하부 수평 하위 부분에 따라 결정된 로컬 조명 보상 파라미터들을 저장하고, 단일 로컬 조명 보상 파라미터는 상기 적어도 하나의 블록의 서브블록들의 수평 위치에 대해 결정되는, 디바이스.
  15. 로컬 조명 보상 버퍼의 사용을 나타내는 정보 및 상기 버퍼 내의 로컬 조명 보상 파라미터들의 인덱스를 포함하는 픽처 내의 블록에 대한 인코딩된 픽처 데이터를 나타내는 정보를 포함하는 데이터 운반 신호.
  16. 프로그램 코드 명령어들을 포함하는 컴퓨터 프로그램 제품으로서,
    상기 프로그램 코드 명령어들은 이 프로그램이 컴퓨터 상에서 실행될 때 제1항 내지 제7항 중 어느 한 항에 따른 방법의 단계들을 실행하는, 컴퓨터 프로그램 제품.
  17. 프로세서로 하여금 적어도 제1항 내지 제7항 중 어느 한 항에 따른 방법의 단계들을 수행하게 하는 명령어들을 저장한 비일시적 저장 매체.
KR1020217009072A 2018-09-19 2019-09-11 저장된 파라미터들을 사용하는 비디오 인코딩 및 디코딩을 위한 로컬 조명 보상 KR20210058856A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP18306215 2018-09-19
EP18306215.7 2018-09-19
EP18306261 2018-09-26
EP18306261.1 2018-09-26
PCT/US2019/050510 WO2020060808A1 (en) 2018-09-19 2019-09-11 Local illumination compensation for video encoding and decoding using stored parameters

Publications (1)

Publication Number Publication Date
KR20210058856A true KR20210058856A (ko) 2021-05-24

Family

ID=68051976

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217009072A KR20210058856A (ko) 2018-09-19 2019-09-11 저장된 파라미터들을 사용하는 비디오 인코딩 및 디코딩을 위한 로컬 조명 보상

Country Status (6)

Country Link
US (1) US11689727B2 (ko)
EP (1) EP3854077A1 (ko)
KR (1) KR20210058856A (ko)
CN (1) CN112703732A (ko)
BR (1) BR112021004858A2 (ko)
WO (1) WO2020060808A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112021004858A2 (pt) * 2018-09-19 2021-06-01 Interdigital Vc Holdings, Inc. compensação de iluminação local para codificação e decodificação de vídeo usando parâmetros armazenados
US20230283787A1 (en) * 2018-09-19 2023-09-07 Interdigital Vc Holdings, Inc. Local illumination compensation for video encoding and decoding using stored parameters
US11924409B2 (en) * 2021-02-21 2024-03-05 Alibaba (China) Co., Ltd. Systems and methods for inter prediction compensation
US20230224474A1 (en) * 2022-01-12 2023-07-13 Tencent America LLC Adjustment based local illumination compensation
WO2023205283A1 (en) * 2022-04-19 2023-10-26 Beijing Dajia Internet Information Technology Co., Ltd. Methods and devices for enhanced local illumination compensation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100091845A1 (en) * 2006-03-30 2010-04-15 Byeong Moon Jeon Method and apparatus for decoding/encoding a video signal
WO2012050758A1 (en) * 2010-10-12 2012-04-19 Dolby Laboratories Licensing Corporation Joint layer optimization for a frame-compatible video delivery
US20130243085A1 (en) * 2012-03-15 2013-09-19 Samsung Electronics Co., Ltd. Method of multi-view video coding and decoding based on local illumination and contrast compensation of reference frames without extra bitrate overhead
RU2510944C2 (ru) * 2012-07-03 2014-04-10 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ кодирования/декодирования многоракурсной видео последовательности на основе адаптивной локальной коррекции яркости опорных кадров без передачи дополнительных параметров (варианты)
US9860529B2 (en) * 2013-07-16 2018-01-02 Qualcomm Incorporated Processing illumination compensation for video coding
WO2015192372A1 (en) * 2014-06-20 2015-12-23 Mediatek Singapore Pte. Ltd. A simplified method for illumination compensation in multi-view and 3d video coding
US10887597B2 (en) * 2015-06-09 2021-01-05 Qualcomm Incorporated Systems and methods of determining illumination compensation parameters for video coding
US10356416B2 (en) * 2015-06-09 2019-07-16 Qualcomm Incorporated Systems and methods of determining illumination compensation status for video coding
US10390015B2 (en) * 2016-08-26 2019-08-20 Qualcomm Incorporated Unification of parameters derivation procedures for local illumination compensation and cross-component linear model prediction
US10778999B2 (en) * 2016-09-30 2020-09-15 Qualcomm Incorporated Frame rate up-conversion coding mode with affine motion model
BR112021004858A2 (pt) * 2018-09-19 2021-06-01 Interdigital Vc Holdings, Inc. compensação de iluminação local para codificação e decodificação de vídeo usando parâmetros armazenados
CN112771874A (zh) * 2018-09-19 2021-05-07 交互数字Vc控股公司 用于画面编码和解码的方法和设备

Also Published As

Publication number Publication date
BR112021004858A2 (pt) 2021-06-01
US20220038711A1 (en) 2022-02-03
WO2020060808A1 (en) 2020-03-26
CN112703732A (zh) 2021-04-23
US11689727B2 (en) 2023-06-27
EP3854077A1 (en) 2021-07-28

Similar Documents

Publication Publication Date Title
US11140408B2 (en) Affine motion prediction
TWI714565B (zh) 視訊寫碼中運動向量推導
US11206396B2 (en) Local illumination compensation in video coding
CN107710764B (zh) 确定用于视频译码的照明补偿状态的系统及方法
US20190110058A1 (en) Low-complexity design for fruc
CN113273209A (zh) Mmvd和smvd与运动和预测模型的组合
JP2022521979A (ja) デコーダ側動きベクトル改良に対する制約
US11689727B2 (en) Local illumination compensation for video encoding and decoding using stored parameters
JP2022537064A (ja) エンコーダ、デコーダ、および対応する方法
US20230164314A1 (en) Method and apparatus for deblocking an image
CN113170146A (zh) 用于图片编码和解码的方法和设备
KR20210089747A (ko) 비디오 인코딩 및 디코딩을 위한 가상 파이프라인
TW202038614A (zh) 用於視訊寫碼之空間時間運動向量預測圖案
KR20210062055A (ko) 양방향 예측을 사용하는 비디오 인코딩 및 디코딩을 위한 방법 및 장치
KR20230104895A (ko) 기하학적 파티션을 사용한 인트라 예측
US20220060688A1 (en) Syntax for motion information signaling in video coding
WO2020007261A9 (en) V refinement of video motion vectors in adjacent video data
KR20220123643A (ko) 삼각형 병합 모드에서의 서브-블록 병합 후보들
US20230283787A1 (en) Local illumination compensation for video encoding and decoding using stored parameters
EP3949418A1 (en) Inter-prediction parameter derivation for video encoding and decoding
WO2023274360A1 (en) Utilization of recursive prediction unit in video coding
WO2022184052A1 (en) Inter-prediction on non-dyadic blocks
WO2023274302A1 (en) Recursive prediction unit in video coding
EP3706419A1 (en) Multi-model local illumination compensation for video encoding or decoding
KR20220052991A (ko) 스위칭가능한 보간 필터들