KR20190055819A - 조명 보상을 위해 템플릿 사이즈를 적응적으로 결정하는 시스템들 및 방법들 - Google Patents

조명 보상을 위해 템플릿 사이즈를 적응적으로 결정하는 시스템들 및 방법들 Download PDF

Info

Publication number
KR20190055819A
KR20190055819A KR1020197009649A KR20197009649A KR20190055819A KR 20190055819 A KR20190055819 A KR 20190055819A KR 1020197009649 A KR1020197009649 A KR 1020197009649A KR 20197009649 A KR20197009649 A KR 20197009649A KR 20190055819 A KR20190055819 A KR 20190055819A
Authority
KR
South Korea
Prior art keywords
current block
samples
template
block
video
Prior art date
Application number
KR1020197009649A
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 KR20190055819A publication Critical patent/KR20190055819A/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/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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/198Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • 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/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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
    • 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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/553Motion estimation dealing with occlusions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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

Landscapes

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

Abstract

비디오 데이터를 프로세싱하기 위한 기법들 및 시스템들이 제공된다. 예를 들어, 비디오 데이터의 화상의 현재 블록이 인코딩 디바이스 또는 디코딩 디바이스에 의한 프로세싱을 위해 획득될 수 있다. 현재 블록의 파라미터가 결정될 수 있다. 현재 블록의 결정된 파라미터에 기초하여 현재 블록의 템플릿에서의 샘플들의 행들의 수 또는 샘플들의 열들의 수 중 적어도 하나 이상 및 참조 화상의 템플릿에서의 샘플들의 행들의 수 또는 샘플들의 열들의 수 중 적어도 하나 이상이 결정될 수 있다. 현재 블록에 대한 모션 보상이 수행될 수 있다. 예를 들어, 현재 블록의 템플릿 및 참조 화상의 템플릿을 사용하여 현재 블록에 대한 하나 이상의 로컬 조명 보상 파라미터들이 도출될 수 있다.

Description

조명 보상을 위해 템플릿 사이즈를 적응적으로 결정하는 시스템들 및 방법들
이 출원은 비디오 코딩 및 압축에 관련된다. 보다 구체적으로, 이 출원은 향상된 조명 보상을 수행하는 방법들 및 시스템들에 관한 것이다.
많은 디바이스들 및 시스템들은 비디오 데이터가 프로세싱되고 소비를 위해 출력되도록 허용한다. 디지털 비디오 데이터는 소비자들 및 비디오 프로바이더들의 요구들을 충족시키기 위해 대량의 데이터를 포함한다. 예를 들어, 비디오 데이터의 소비자들은 최고의 품질, 높은 충실도, 해상도, 프레임 레이트 등의 비디오를 원한다. 결과로서, 이들 요구들을 충족시키기 위해 필요한 대량의 비디오 데이터는 그 비디오 데이터를 프로세싱하고 저장하는 통신 네트워크들 및 디바이스들에 부담을 지운다.
다양한 비디오 코딩 기법들이 비디오 데이터를 압축하기 위해 사용될 수도 있다. 비디오 코딩은 하나 이상의 비디오 코딩 표준들에 따라 수행된다. 예를 들어, 비디오 코딩 표준들은 고 효율 비디오 코딩 (HEVC), 어드밴스드 비디오 코딩 (AVC), MPEG (moving picture experts group) 코딩 등을 포함한다. 비디오 코딩은 일반적으로 비디오 이미지들 또는 시퀀스들에 존재하는 리던던시의 이점을 취하는 예측 방법들 (예컨대, 인터 예측, 인트라 예측 등) 을 이용한다. 비디오 코딩 기법들의 중요한 목적은 비디오 데이터를 비디오 품질에 대한 열화를 회피 또는 최소화하면서 보다 낮은 비트 레이트를 이용하는 형태로 압축하기 위한 것이다. 끊임 없이 진화하는 비디오 서비스들이 이용가능해짐에 따라, 보다 양호한 코딩 효율을 갖는 인코딩 기법들이 필요하다.
조명 보상 (illumination compensation) 은 하나 이상의 화상들에서의 조명에서의 변동들을 효율적으로 보상하기 위해 사용될 수 있다. 일부 구현들에서, 로컬 조명 보상 (local illumination compensation; LIC) 을 위해 사용하기 위해 하나 이상의 템플릿들을 적응적으로 결정하기 위한 기법들 및 시스템들이 본원에 기술된다. 예를 들어, 현재 블록에 대해 하나 이상의 LIC 파라미터들을 도출하기 위해 사용되는 템플릿에서의 픽셀들의 행들 및/또는 열들의 수는 현재 블록의 파라미터에 의존하여 변동될 수 있다. 그 파라미터는 블록 사이즈 (예컨대, 블록의 폭, 높이, 또는 폭 및 높이, 또는 사이즈의 다른 적합한 측정치), 블록의 크로마 포맷 (예컨대, 4:2:0 포맷, 4:2:2 포맷, 4:4:4 포맷, 또는 다른 적합한 크로마 포맷), 또는 템플릿 사이즈를 결정하기 위해 사용될 수 있는 다른 파라미터를 포함할 수 있다.
적어도 하나의 예에 따르면, 비디오 데이터를 프로세싱하는 방법이 제공된다. 그 방법은, 비디오 데이터의 화상의 현재 블록을 획득하는 단계를 포함한다. 그 방법은 추가적으로, 현재 블록의 파라미터를 결정하는 단계를 포함한다. 그 방법은 추가적으로, 현재 블록의 결정된 파라미터에 기초하여 현재 블록의 템플릿에서의 샘플들의 행들의 수 또는 샘플들의 열들의 수 중 적어도 하나 이상 및 참조 화상의 템플릿에서의 샘플들의 행들의 수 또는 샘플들의 열들의 수 중 적어도 하나 이상을 결정하는 단계를 포함한다. 그 방법은 추가적으로, 현재 블록에 대한 모션 보상을 수행하는 단계를 포함한다. 모션 보상을 수행하는 단계는, 현재 블록의 템플릿 및 참조 화상의 템플릿을 사용하여 현재 블록에 대한 하나 이상의 로컬 조명 보상 파라미터들을 도출하는 단계를 포함한다.
다른 예에서, 비디오 데이터를 저장하도록 구성된 메모리 및 프로세서를 포함하는, 비디오 데이터를 프로세싱하기 위한 장치가 제공된다. 그 프로세서는, 비디오 데이터의 화상의 현재 블록을 획득하도록 구성되고 획득할 수 있다. 그 프로세서는 추가적으로, 현재 블록의 파라미터를 결정하도록 구성되고 결정할 수 있다. 그 프로세서는 추가적으로, 현재 블록의 결정된 파라미터에 기초하여 현재 블록의 템플릿에서의 샘플들의 행들의 수 또는 샘플들의 열들의 수 중 적어도 하나 이상 및 참조 화상의 템플릿에서의 샘플들의 행들의 수 또는 샘플들의 열들의 수 중 적어도 하나 이상을 결정하도록 구성되고 결정할 수 있다. 그 프로세서는 추가적으로, 현재 블록에 대한 모션 보상을 수행하도록 구성되고 수행할 수 있다. 모션 보상을 수행하는 것은 현재 블록의 템플릿 및 참조 화상의 템플릿을 사용하여 현재 블록에 대한 하나 이상의 로컬 조명 보상 파라미터들을 도출하는 것을 포함한다.
또 다른 예에서, 명령들을 저장한 비일시적 컴퓨터 판독가능 매체가 제공되고, 그 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 그 하나 이상의 프로세서들로 하여금, 비디오 데이터의 화상의 현재 블록을 획득하게 하고; 현재 블록의 파라미터를 결정하게 하며; 현재 블록의 결정된 파라미터에 기초하여 현재 블록의 템플릿에서의 샘플들의 행들의 수 또는 샘플들의 열들의 수 중 적어도 하나 이상 및 참조 화상의 템플릿에서의 샘플들의 행들의 수 또는 샘플들의 열들의 수 중 적어도 하나 이상을 결정하게 하고; 그리고, 현재 블록에 대한 모션 보상을 수행하는 것으로서, 상기 모션 보상을 수행하는 것은 현재 블록의 템플릿 및 참조 화상의 템플릿을 사용하여 현재 블록에 대한 하나 이상의 로컬 조명 보상 파라미터들을 도출하는 것을 포함하는, 상기 현재 블록에 대한 모션 보상을 수행하는 것을 행하게 한다.
또 다른 예에서, 비디오 데이터를 프로세싱하기 위한 장치가 제공된다. 그 장치는, 비디오 데이터의 화상의 현재 블록을 획득하는 수단을 포함한다. 그 장치는 추가적으로, 현재 블록의 파라미터를 결정하는 수단을 포함한다. 그 장치는 추가적으로, 현재 블록의 결정된 파라미터에 기초하여 현재 블록의 템플릿에서의 샘플들의 행들의 수 또는 샘플들의 열들의 수 중 적어도 하나 이상 및 참조 화상의 템플릿에서의 샘플들의 행들의 수 또는 샘플들의 열들의 수 중 적어도 하나 이상을 결정하는 수단을 포함한다. 그 장치는 추가적으로, 현재 블록에 대한 모션 보상을 수행하는 수단을 포함한다. 모션 보상을 수행하는 것은 현재 블록의 템플릿 및 참조 화상의 템플릿을 사용하여 현재 블록에 대한 하나 이상의 로컬 조명 보상 파라미터들을 도출하는 것을 포함한다.
일부 양태들에서, 현재 블록의 파라미터는 현재 블록의 사이즈를 포함한다. 일부 경우들에서, 현재 블록의 사이즈는 현재 블록의 폭을 포함한다. 일부 예들에서, 현재 블록의 템플릿에서의 샘플들의 행들의 수는 현재 블록의 폭이 임계 폭보다 작은 경우 하나의 행이다. 일부 예들에서, 현재 블록의 템플릿에서의 샘플들의 행들의 수는 현재 블록의 폭이 임계 폭보다 큰 경우 하나의 행보다 많다.
일부 경우들에서, 현재 블록의 사이즈는 현재 블록의 높이를 포함한다. 일부 예들에서, 현재 블록의 템플릿에서의 샘플들의 열들의 수는 현재 블록의 높이가 임계 높이보다 작은 경우 하나의 열이다. 일부 예들에서, 현재 블록의 템플릿에서의 샘플들의 열들의 수는 현재 블록의 높이가 임계 높이보다 큰 경우 하나보다 많은 열들이다.
일부 경우들에서, 현재 블록의 사이즈는 현재 블록의 폭 및 현재 블록의 높이를 포함한다.
일부 예들에서, 현재 블록의 파라미터는 현재 블록의 크로마 포맷을 포함한다. 하나의 예시적인 예에서, 현재 블록의 템플릿에서의 샘플들의 행들의 수 및 샘플들의 열들의 수는 현재 블록의 크로마 포맷이 4:2:0 인 경우 현재 블록의 루마 사이즈의 반으로 설정된다. 다른예에서, 현재 블록의 템플릿에서의 샘플들의 행들의 수는 현재 블록의 루마 사이즈와 동일한 사이즈로 설정되고, 현재 블록의 템플릿에서의 샘플들의 열들의 수는 현재 블록의 크로마 포맷이 4:2:2 인 경우 루마 사이즈의 반으로 설정된다.
일부 양태들에서, 상술된 방법, 장치, 및 컴퓨터 판독가능 매체는 추가적으로, 하나 이상의 조명 보상 파라미터들을 사용하여 현재 블록을 디코딩하는 것을 포함한다.
일부 양태들에서, 상술된 방법, 장치, 및 컴퓨터 판독가능 매체는 추가적으로, 인코딩된 비디오 비트스트림에서 하나 이상의 로컬 조명 보상 파라미터들을 시그널링하는 것을 포함한다.
이 개요는 청구된 주제의 핵심 또는 본질적 특징들을 식별하도록 의도된 것이 아니며, 청구된 주제의 범위를 결정하는데 홀로 사용되도록 의도된 것도 아니다. 발명의 주제는 이 특허의 전체 명세서, 임의의 또는 모든 도면들, 및 각각의 청구항의 적절한 부분들을 참조하여 이해되어야 한다.
전술한 바는, 다른 특징들 및 실시형태들과 함께, 다음의 상세한 설명, 청구범위, 및 첨부 도면들을 참조할 시 더 명확하게 될 것이다.
본 발명의 예시적인 실시형태들이 다음과 같은 도면들을 참조하여 이하에서 자세히 설명된다.
도 1 은, 일부 예들에 따른, 인코딩 디바이스 및 디코딩 디바이스의 일 예를 나타내는 블록도이다.
도 2a 는, 일부 예들에 따른, 병합 모드를 위한 예시적인 공간적 이웃하는 모션 벡터 후보들을 나타내는 개념도이다.
도 2b 는, 일부 예들에 따른, 어드밴스드 모션 벡터 예측 (AMVP) 모드를 위한 예시적인 공간적 이웃하는 모션 벡터 후보들을 나타내는 개념도이다.
도 3a 는, 일부 예들에 따른, 일 예시적인 모션 벡터 예측자 (TMVP) 를 나타내는 개념도이다.
도 3b 는, 일부 예들에 따른, 모션 벡터 스케일링의 일 예를 나타내는 개념도이다.
도 4a 는, 일부 예들에 따른, 현재의 코딩 유닛에 대해 조명 보상 (IC) 파라미터들을 추정하기 위해 사용되는 현재 코딩 유닛의 이웃하는 샘플들의 일 예를 나타내는 개념도이다.
도 4b 는, 일부 예들에 따른, 현재의 코딩 유닛에 대해 IC 파라미터들을 추정하기 위해 사용되는 참조 블록의 이웃하는 샘플들의 일 예를 나타내는 개념도이다.
도 5a 는, 일부 예들에 따른, 현재의 코딩 유닛에 대한 조명 보상 (IC) 파라미터들의 도출을 위해 사용되는 현재 코딩 유닛의 이웃하는 샘플들의 일 예를 나타내는 개념도이다.
도 5b 는, 일부 예들에 따른, 현재의 코딩 유닛에 대한 IC 파라미터들의 도출을 위해 사용되는 참조 블록의 이웃하는 샘플들의 일 예를 나타내는 개념도이다.
도 6 은, 일부 예들에 따른, 중첩되는 블록 모션 보상 (OBMC) 의 일 예를 나타내는 개념도이다.
도 7a 는, 일부 예들에 따른, HEVC 를 위한 OBMC 의 일 예를 나타내는 개념도이다.
도 7b 는, 일부 예들에 따른, HEVC 를 위한 OBMC 를 나타내는 다른 개념도이다.
도 8a 는, 일부 예들에 따른, OBMC 가 적용되는 서브-블록들의 일 예를 나타내는 개념도이다.
도 8b 는, 일부 예들에 따른, OBMC 가 적용되는 서브-예측의 일 예를 나타내는 개념도이다.
도 9 는, 일부 예들에 따른, 프레임 레이트 상향 변환 (FRUC) 에서의 단방향 모션 추정의 일 예를 나타내는 개념도이다.
도 10 은, 일부 예들에 따른, 프레임 레이트 상향 변환 (FRUC) 에서의 양방향 모션 추정의 일 예를 나타내는 개념도이다.
도 11a 는, 일부 예들에 따른, 템플릿 매칭 기반 디코더 측 모션 벡터 도출 (DMVD) 에 사용되는 참조 화상들의 일 예를 나타내는 개념도이다.
도 11b 는, 일부 예들에 따른, 템플릿 매칭 기반 DMVD 에 사용되는 현재 화상의 일 예를 나타내는 개념도이다.
도 12 는, 일부 예들에 따른, DMVD 에서 미러 기반 양방향 모션 벡터 도출의 일 예를 나타내는 개념도이다.
도 13 은, 일부 예들에 따른, DMVD 를 이용하여 예측 유닛 (PU) 을 디코딩하는 일 예를 나타내는 플로우차트이다.
도 14 는, 일부 예들에 따른, 로컬 조명 보상 파라미터들의 템플릿-기반 도출의 일 예를 나타내는 개념도이다.
도 15 는, 일부 예들에 따른, OBMC 플래그와 조명 보상 (IC) 사이의 향상된 시그널링을 위한 프로세스의 일 예를 나타내는 플로우차트이다.
도 16 은, 일부 실시형태들에 따른, 비디오 데이터를 프로세싱하는 일 예를 나타내는 플로우차트이다.
도 17 은, 일부 실시형태들에 따른, 비디오 데이터를 프로세싱하는 다른 예를 나타내는 플로우차트이다.
도 18 은, 일부 실시형태들에 따른, 비디오 데이터를 프로세싱하는 또 다른 예를 나타내는 플로우차트이다.
도 19 는, 일부 예들에 따른, 일 예시적인 비디오 인코딩 디바이스를 나타내는 블록도이다.
도 20 은, 일부 예들에 따른, 일 예시적인 비디오 디코딩 디바이스를 나타내는 블록도이다.
본 개시물의 특정한 양태들 및 실시형태들이 아래에서 제공된다. 이들 양태들 및 실시형태들의 일부가 독립적으로 적용될 수도 있고 그것들 중 일부는 본 기술분야의 숙련된 자들에게 명확하게 될 바와 같이 조합하여 적용될 수도 있다. 다음의 기술에서, 설명의 목적으로, 특정 세부사항들이 본 개시물의 실시형태들의 철저한 이해를 제공하기 위하여 언급된다. 그러나, 다양한 실시형태들이 이들 특정 세부사항들 없이 실시될 수도 있다는 것이 명백할 것이다. 도면들 및 설명은 제한되는 것으로 의도되지 않는다.
뒤이은 설명은 예시적인 실시형태들만을 제공하고, 본 개시물의 범위, 적용 가능성, 또는 구성을 제한하도록 의도되지 않는다. 오히려, 예시적인 실시형태들의 뒤이은 설명은 본 기술분야의 통상의 기술자들에게 예시적인 실시형태를 구현하는 가능한 설명을 제공할 것이다. 다양한 변경들이 첨부의 청구항들에서 언급되는 본 개시물의 정신 및 범위로부터 벗어남 없이 엘리먼트들의 기능 및 배열로 이루어질 수도 있다는 것이 이해되어야 한다.
특정 세부사항들이 실시형태들의 철저한 이해를 제공하기 위해 다음의 상세한 설명에서 주어진다. 그러나, 실시형태들이 이들 특정 세부사항들 없이 실시될 수도 있다는 것은 본 기술분야의 통상의 기술자에 의해 이해될 것이다. 예를 들어, 회로들, 시스템들, 네트워크들, 프로세스들, 및 다른 컴포넌트들이 불필요하게 상세하여 실시형태들을 이해하기 어렵게 하지 않기 위하여 블록도 형태의 컴포넌트들로서 도시될 수도 있다. 다른 경우들에서, 널리 공지된 회로들, 프로세스들, 알고리즘들, 구조들, 및 기법들이 실시형태들을 이해하기 어렵게 하는 것을 피하기 위하여 불필요한 세부사항 없이 도시될 수도 있다.
또한, 개개의 실시형태들은 플로우차트, 흐름도, 데이터 흐름도, 구조도, 또는 블록도로서 묘사되는 프로세서로서 설명될 수도 있다는 점에 주의한다. 플로차트가 순차적 프로세스로서 동작들을 기술할 수도 있지만, 많은 동작들은 병행하여 또는 동시에 수행될 수 있다. 덧붙여서, 동작들의 순서는 재배열될 수도 있다. 프로세스가 그것의 동작들이 완료될 때 종료되지만, 도면에 포함되지 않은 추가적인 단계들을 가질 수 있다. 프로세스는 메소드, 함수, 프로시저, 서브루틴, 서브프로그램 등에 해당할 수도 있다. 프로세스가 함수에 해당하는 경우, 그것의 종료는 호출 함수 또는 메인 함수로의 기능의 반환에 해당할 수 있다.
"컴퓨터 판독가능 매체"라는 용어는 명령(들)및/또는 데이터를 저장, 포함, 또는 운반할 수 있는 휴대용 또는 비-휴대용 저장 디바이스들, 광학적 저장 디바이스들, 및 다양한 다른 매체들을 비제한적으로 포함한다. 컴퓨터 판독가능 매체는 데이터가 저장될 수 있는 그리고 무선으로 또는 유선 접속들을 통해 전파하는 반송파들 및/또는 일시적 전자 신호들을 포함하지 않는 비-일시적 매체를 포함할 수도 있다. 비일시적 매체의 예들은 자기 디스크 또는 테이프, 콤팩트 디스크 (CD) 또는 디지털 다기능 디스크 (DVD) 와 같은 광 저장 매체, 플래시 메모리, 메모리 또는 메모리 디바이스들을 비제한적으로 포함할 수도 있다. 컴퓨터 판독가능 매체가 프로시저, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령들, 데이터 구조들, 또는 프로그램문들의 임의의 조합을 나타낼 수도 있는 코드 및/또는 머신 실행가능 명령들을 저장하고 있을 수도 있다. 코드 세그먼트가, 정보, 데이터, 독립변수들, 파라미터들, 또는 메모리 콘텐츠들을 전달하고 및/또는 수신하는 것에 의해 다른 코드 세그먼트 또는 하드웨어 회로에 커플링될 수도 있다. 정보, 독립변수들, 파라미터들, 데이터 등은, 메모리 공유, 메시지 패싱, 토큰 패싱, 네트워크 전송 등을 포함하는 임의의 적합한 수단을 경유하여 전달되거나, 포워딩되거나, 또는 송신될 수도 있다.
더욱이, 실시형태들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 디스크립션 언어들 또는 그것들의 임의의 조합에 의해 구현될 수도 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로코드로 구현될 때, 필요한 태스크들 (예컨대, 컴퓨터 프로그램 제품) 을 수행하는 프로그램 코드 또는 코드 세그먼트들은 컴퓨터 판독가능 또는 머신 판독가능 매체에 저장될 수도 있다. 프로세서(들)가 필요한 태스크들을 수행할 수도 있다.
비디오 코딩 디바이스들은 비디오 데이터를 효율적으로 인코딩 및 디코딩하기 위해 비디오 압축 기법들을 구현한다. 비디오 압축 기법들은, 공간적 예측 (예컨대, 인트라-프레임 예측 또는 인트라-예측), 시간적 예측 (예컨대, 인터-프레임 예측 또는 인터-예측), (비디오 데이터의 상이한 계층들에 걸친) 인터-레이어 예측, 및/또는 비디오 시퀀스에 내재하는 리던던시를 감소 또는 제거하기 위한 다른 예측 기법들을 포함하는, 상이한 예측 모드들을 적용하는 것을 포함할 수도 있다. 비디오 인코더는 (이하에서 더 자세히 설명되는) 비디오 블록들 또는 코딩 유닛들로서 지칭되는 직사각형 구역들로 원래의 비디오 시퀀스의 각 화상을 파티셔닝할 수 있다. 이들 비디오 블록들은 특정 예측 모드를 이용하여 인코딩될 수도 있다.
비디오 블록들은 더 작은 블록들의 하나 이상의 그룹들로 하나 이상의 방식들로 나누어질 수도 있다. 블록들은 코딩 트리 블록들, 예측 블록들, 변환 블록들, 또는 다른 적합한 블록들을 포함할 수 있다. 일반적으로 "블록" 에 대한 참조들은, 달리 특정되지 않는 한, 당업자에 의해 이해되는 바와 같이, 이러한 비디오 블록들 (예컨대, 코딩 트리 블록들, 코딩 블록들, 예측 블록들, 변환 블록들, 또는 다른 적절한 블록들 또는 서브-블록들) 을 지칭할 수도 있다. 추가적으로, 이들 블록들의 각각은 또한, "유닛들" (예컨대, 코딩 트리 유닛 (CTU), 코딩 유닛, 예측 유닛 (PU), 변환 유닛 (TU) 등) 로서 본원에서 상호교환가능하게 지칭될 수도 있다. 일부 경우들에서, 유닛은 비트스트림에서 인코딩되는 코딩 논리적 유닛을 나타낼 수도 있는 한편, 블록은 프로세스가 목표로 하는 비디오 프레임 버퍼의 부분을 나타낼 수도 있다.
인터 예측 모드들에 대해, 비디오 인코더는, 참조 프레임 또는 참조 화상으로서 지칭되는, 다른 시간적 로케이션에서 위치되는 프레임 (또는 화상) 에서 인코딩되는 블록에 유사한 블록에 대해 검색할 수 있다. 비디오 인코더는 인코딩될 블록으로부터의 소정의 공간적 변위로 그 검색을 제한할 수도 있다. 최상의 매치는 수평 변위 컴포넌트 및 수직 변위 컴포넌트를 포함하는 2-차원 (2D) 모션 벡터를 이용하여 로케이팅될 수도 있다. 인트라 예측 모드들에 대해, 비디오 인코더는 동일한 화상 내의 이전에 인코딩된 이웃하는 블록들로부터의 데이터에 기초하여 공간적 예측 기법들을 이용하여 예측 블록을 형성할 수도 있다.
비디오 인코더는 예측 에러를 결정할 수도 있다. 예를 들어, 예측은 인코딩되는 블록과 예측된 블록 내의 픽셀 값들 간의 차이로서 결정될 수 있다. 예측 에러는 잔차로서 또한 지칭될 수 있다. 비디오 인코더는 또한 변환 계수들을 생성하기 위해 예측 에러에 대한 변환 (예를 들어, 이산 코사인 변환 (DCT) 또는 다른 적절한 변환) 을 적용할 수 있다. 변환 후에, 비디오 인코더는 변환 계수들을 양자화할 수 있다. 양자화된 변환 계수들 및 모션 벡터들은 신택스 엘리먼트들을 사용하여 표현될 수 있고, 제어 정보와 함께 비디오 시퀀스의 코딩된 표현을 형성할 수 있다. 일부 경우들에서, 비디오 인코더는 신택스 엘리먼트를 엔트로피 코딩할 수 있고, 그에 따라 그들의 표현에 필요한 비트들의 수를 더 감소시킬 수 있다.
비디오 디코더는 상술한 신택스 엘리먼트들 및 제어 정보를 사용하여 현재 프레임을 디코딩하기 위한 예측 데이터 (예를 들어, 예측 블록) 를 구성할 수 있다. 예를 들어, 비디오 디코더는 예측된 블록 및 압축된 예측 에러를 추가할 수 있다. 비디오 디코더는 양자화된 계수를 사용하여 변환 기저 함수들을 가중처리하는 것에 의해 압축된 예측 에러를 결정할 수 있다. 재구성된 프레임과 원본 프레임의 차이를 재구성 에러라고 한다.
일부 예에서, 비디오 데이터를 프로세싱하는 하나 이상의 시스템들 및 방법들은 블록 기반 비디오 코딩에서 조명 보상 (IC) 파라미터를 도출하거나 추정하는 것에 관한 것이다. 일부 예에서, 비디오 인코더 및/또는 비디오 디코더는 하나 이상의 화상 사이의 조명 (예를 들어, 밝기) 의 변화를 효율적으로 코딩하기 위해 로컬 조명 보상 (local illumination compensation; LIC) (또는 조명 보상 (IC)) 을 수행할 수 있다. 비디오 인코더 및/또는 비디오 디코더는 인코딩 또는 디코딩되는 코딩 블록 또는 코딩 유닛에 대한 하나 이상의 IC 파라미터 (예를 들어, 오프셋, 하나 이상의 스케일링 팩터, 시프트 넘버 또는 다른 적절한 IC 파라미터) 를 결정할 수 있다. IC 파라미터는 다수의 참조 블록의 샘플, 현재 블록의 하나 이상의 이웃 블록의 샘플 및/또는 다른 정보에 기초하여 결정될 수 있다. 비디오 디코더는 IC 파라미터 및/또는 다른 데이터를 이용하여 현재 블록을 디코딩하기 위한 예측 데이터를 구성할 수 있다.
일부 예에서, 비디오 데이터를 프로세싱하는 하나 이상의 시스템들 및 방법들은 LIC 에 이용하기 위하여 하나 이상의 템플릿의 사이즈를 적응적으로 결정하는 것에 관한 것이다. 예를 들어, 현재 블록에 대한 하나 이상의 LIC 파라미터들을 도출하는데 사용되는 템플릿의 픽셀들의 행 및/또는 열의 수는 현재 블록의 파라미터에 따라 다를 수 있다. 파라미터는 블록 사이즈 (예를 들어, 블록의 폭, 높이 또는 폭과 높이 또는 다른 적절한 사이즈 측정), 블록의 크로마 포맷 (예를 들어, 4 : 2 : 0 포맷, 4 : 2 : 2 포맷, 4 : 4 : 4 포맷, 또는 다른 적절한 크로마 포맷) 또는 템플릿 사이즈를 결정하는데 사용될 수 있는 다른 파라미터를 포함할 수 있다.
일부 예에서, 비디오 데이터를 프로세싱하는 하나 이상의 시스템들 및 방법들은 가중치들의 미리 정의된 세트로부터의 가중치들의 적응적 선택에 관한 것이다. 예를 들어, 템플리트 기반 솔루션은 디코더에 가중치의 선택을 시그널링할 필요없이 미리 정의된 가중치 세트에서 하나 이상의 최적의 가중치를 검색하는데 사용될 수 있다. 이러한 시스템들 및 방법들은 예측 프로세스에서 가중치들을 이용하는 임의의 매칭 기반 모션 예측 또는 보상에 사용될 수 있다. 예를 들어, 이러한 시스템들 및 방법들은 2 개의 논리적으로 별개의 화상들을 가리키는 2 개의 모션 벡터들이 고려되는 임의의 양방향 예측 블록에 대해 사용될 수 있다. 그러한 예들에서, 가중치들은 1과 동일한 합계를 갖는 양쪽 참조 화상들 (예를 들어, ref0 및 ref1) 에 대한 가중 팩터들의 쌍으로서 지칭될 수 있다. 이러한 시스템들 및 방법들이 사용될 수 있는 매칭 기반 모션 예측 또는 보상 기술의 예들은 LIC, 가중된 예측 (WP) 또는 예측 프로세스에서 가중치를 이용하는 임의의 다른 적절한 기술을 포함한다.
여기에 설명된 기술들은 기존의 비디오 코덱들 (예를 들어, 고효율 비디오 코딩 (HEVC), 고급 비디오 코딩 (AVC), 또는 다른 적절한 기존의 비디오 코덱) 에 적용될 수 있거나, 장래 비디오 코딩 표준들, 이를 테면, JEM (joint exploration model) 을 위한 효율적인 코딩 툴일 수 있다.
도 1 은 인코딩 디바이스 (104) 및 디코딩 디바이스 (112) 를 포함하는 비디오 코딩 시스템 (100) 의 일 예를 예시하는 블록도이다. 인코딩 디바이스 (104) 는 소스 디바이스의 부분일 수도 있고, 디코딩 디바이스 (112) 는 수신 디바이스의 부분일 수도 있다. 소스 디바이스 및/또는 수신 디바이스는 전자 디바이스, 이를 테면, 모바일 또는 정지형 전화 핸드셋 (예를 들어, 스마트 폰, 셀룰러 폰 등), 데스크탑 컴퓨터, 랩탑 또는 노트북 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, 텔레비전, 카메라, 디스플레이 디바이스, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 디바이스, 인터넷 프로토콜 (IP) 카메라, 또는 임의의 다른 적절한 전자 디바이스를 포함할 수도 있다. 일부 예들에서, 소스 디바이스 및 수신 디바이스는 무선 통신을 위한 하나 이상의 무선 트랜시버들을 포함할 수도 있다. 본원에 설명된 코딩 기술은 스트리밍 비디오 송신들 (예를 들면, 인터넷을 통한 송신들), 텔레비전 방송 또는 송신들, 데이터 저장 매체 상의 저장을 위한 디지털 비디오의 인코딩, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션들을 포함할 수 있다. 일부 예에서, 시스템 (100) 은, 애플리케이션들, 이를 테면, 화상 회의, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 게임 및/또는 화상 통화를 지원하기 위하여 일방향 또는 양방향 비디오 송신을 지원할 수 있다.
인코딩 디바이스 (104)(또는 인코더) 는 비디오 코딩 표준 또는 프로토콜을 이용하여 비디오 데이터를 인코딩하여 인코딩된 비디오 비트스트림을 생성하기 위해 이용될 수 있다. 비디오 코딩 표준들의 예들은 ITU-T H.261, ISO/IEC MPEG-1 비주얼, ITU-T H.262 또는 ISO/IEC MPEG-2 비주얼, ITU-T H.263, ISO/IEC MPEG-4 비주얼, ITU-T H.264 (ISO/IEC MPEG-4 AVC 로서도 또한 알려짐)(이들의 스케일러블 비디오 코딩 (SVC) 및 멀티-뷰 비디오 코딩 (MVC) 확장들을 포함), 또는 ITU-T H.265 를 포함한다. 다중계층 비디오 코딩을 처리하는 HEVC 에 대한 여러 확장들은 범위 및 스크린 컨텐츠 코딩 확장들, 3D 비디오 코딩 (3D-HEVC) 및 멀티-뷰 확장 (MV-HEVC) 및 스케일러블 확장 (SHVC) 을 포함한 것이 존재한다. HEVC 및 그 확장은 ITU-T 비디오 코딩 전문가 그룹 (VCEG) 및 ISO/IEC 동화상 전문가 그룹 (MPEG) 의 JCT-3V (Joint Collaboration Team on 3D Video Coding Extension Development) 뿐만 아니라 JCT-VC (Joint Collaboration Team on Video Coding) 에 의해 개발되어 왔다. MPEG 및 ITU-T VCEG 는 또한 차세대 비디오 코딩 표준들을 위한 새로운 코딩 툴들을 연구하기 위해 JVET (joint exploration video team) 을 형성해 왔다. 레퍼런스 소프트웨어는 JEM (joint exploration model) 이라고 한다.
본원에 설명된 많은 예들은 JEM 모델, HEVC 표준 및/또는 그 확장을 이용하는 예들을 제공한다. 그러나, 본원에 설명된 기술들 및 시스템들은 또한 다른 코딩 표준들, 이를 테면, AVC, MPEG, 이것의 확장들, 또는 현재 존재하는 다른 적절한 코딩 표준들 또는 미래의 코딩 표준들에 적용가능할 수도 있다. 따라서, 본원에 설명된 기술들 및 시스템들은 특정 비디오 코딩 표준을 참조하여 설명될 수도 있지만, 당업자는 이 설명이 그 특정 표준에 대해서만 적용되는 것으로 해석되지 않음을 이해할 것이다.
도 1 을 참조하여 보면, 비디오 소스 (102) 는 비디오 데이터를 인코딩 디바이스 (104) 에 제공할 수도 있다. 비디오 소스 (102) 는 소스 디바이스의 부분일 수 있거나 또는 소스 디바이스 이외의 디바이스의 부분일 수도 있다. 비디오 소스 (102) 는 비디오 캡처 디바이스 (예를 들어, 비디오 카메라, 카메라 폰, 비디오 폰 등), 저장된 비디오를 포함하는 비디오 아카이브, 비디오 데이터를 제공하는 비디오 서버 또는 컨텐츠 제공자, 비디오 서버 또는 또는 컨텐츠 제공자로부터 비디오를 수신하는 비디오 피드 인터페이스, 컴퓨터 그래픽 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템, 이러한 소스들의 조합, 또는 임의의 다른 적합한 비디오 소스를 포함할 수도 있다.
비디오 소스 (102) 로부터의 비디오 데이터는 하나 이상의 입력 화상들 또는 프레임들을 포함할 수도 있다. 화상 또는 프레임은 비디오의 부분인 스틸 이미지이다. 인코딩 디바이스 (104) 의 인코더 엔진 (106) (또는 인코더) 은 인코딩된 비디오 비트스트림을 생성하기 위해 비디오 데이터를 인코딩한다. 일부 예들에서, 인코딩된 비디오 비트스트림 (또는 "비디오 비트스트림"또는 "비트스트림") 은 일련의 하나 이상의 코딩된 비디오 시퀀스들이다. 코딩된 비디오 시퀀스 (coded video sequence; CVS) 는 기본 계층에서 그리고 특정 특성들을 갖는 랜덤 액세스 포인트 화상을 갖는 액세스 유닛 (access unit; AU) 으로 시작하는 일련의 AU들까지를 포함하고 기본 계층에서 그리고 특정 특성을 갖는 랜덤 액세스 포인트 화상을 갖는 다음 AU 를 포함하지 않는다. 예를 들어, CVS 를 시작하는 랜덤 액세스 포인트 화상의 특정 특성들은 1 과 같은 RASL 플래그 (예를 들어, NoRaslOutputFlag) 를 포함할 수도 있다. 그렇지 않으면, (0 과 같은 RASL 플래그를 갖는) 랜덤 액세스 포인트 화상은 CVS 를 시작하지 않는다. 액세스 유닛 (AU) 은 동일한 출력 시간을 공유하는 코딩된 화상에 대응하는 하나 이상의 코딩된 화상 및 제어 정보를 포함한다. 화상들의 코딩된 슬라이스들은 비트스트림 레벨에서 NAL (Network Abstraction Layer) 유닛들로 지칭되는 데이터 유닛들로 캡슐화된다. 예를 들어, HEVC 비디오 비트스트림은 NAL 유닛들을 포함하는 하나 이상의 CVS들을 포함할 수도 있다. NAL 유닛들 각각은 NAL 유닛 헤더를 갖는다. 일례에서, 헤더는 H.264/AVC (다중층 확장을 제외하고) 에 대하여 1 바이트 그리고 HEVC 에 대해 2 바이트이다. NAL 유닛 헤더의 신택스 엘리먼트들은 지정된 비트들을 취하고, 이에 따라 모든 종류들의 시스템들 및 전송 층들, 이를 테면, 다른 무엇보다도 전송 스트림, RTP (Real-time Transport) 프로토콜, 파일 포맷에서 가시적이다.
비디오 코딩 계층 (VCL) NAL 유닛들 및 비-VCL NAL 유닛들을 포함하는 NAL 유닛들의 2 개의 클래스들이 HEVC 표준에서 존재한다. VCL NAL 유닛은 코딩된 화상 데이터의 하나의 슬라이스 또는 (아래 설명된) 슬라이스 세그먼트 (이하 설명됨) 를 포함하고, 비-VCL NAL 유닛은 하나 이상의 코딩된 화상들과 관련된 제어 정보를 포함한다. 일부 경우들에서, NAL 유닛은 패킷으로서 지칭될 수 있다. HEVC AU 는 코딩된 화상 데이터를 포함하는 VCL NAL 유닛 및 코딩된 화상 데이터에 대응하는 비-VCL NAL 유닛들 (있는 경우) 을 포함한다.
NAL 유닛들은 비디오에서의 화상들의 코딩된 표현들과 같은 비디오 데이터의 코딩된 표현 (예를 들어, 인코딩된 비디오 비트스트림, 비트스트림의 CVS 등) 을 형성하는 비트들의 시퀀스를 포함할 수도 있다. 인코더 엔진 (106) 은 각각의 화상을 다수의 슬라이스들로 파티셔닝하는 것에 의해 화상들의 코딩된 표현들을 생성한다. 슬라이스는 다른 슬라이스와 독립적이고 그 결과, 슬라이스 내의 정보가 동일한 화상 내의 다른 슬라이스로부터의 데이터에 종속성이 없이 코딩된다. 슬라이스는 독립 슬라이스 세그먼트 및 존재하는 경우 이전 슬라이스 세그먼트들에 종속하는 하나 이상의 종속 슬라이스 세그먼트들을 포함하는 하나 이상의 슬라이스 세그먼트들을 포함한다. 슬라이스는 그 후 루마 샘플들 및 크로마 샘플들의 코딩 트리 블록들 (CTB) 로 파티셔닝된다. 루마 샘플들의 CTB 와 크로마 샘플들의 하나 이상의 CTB들은 샘플들에 대한 신택스와 함께, 코딩 트리 유닛 (CTU) 으로 지칭된다. CTU 는 HEVC 인코딩의 기본 프로세싱 유닛이다. CTU 는 다양한 사이즈들의 다중 코딩 유닛들 (CUs) 로 분할될 수 있다. CU 는 코딩 블록들 (CBs) 로 지칭되는 루마 및 크로마 샘플 어레이들을 포함한다.
루마 및 크로마 CB들은 예측 블록들 (PB) 로 추가로 분할될 수 있다. PB 는 인터-예측 또는 인트라-블록 카피 예측 (이용가능하거나 또는 이용을 위해 인에이블될 때) 에 대한 동일한 모션 파라미터들을 이용하는 루마 컴포넌트 또는 크로마 컴포넌트의 샘플들의 블록이다. 루마 PB 및 하나 이상의 크로마 PB들은 연관된 신택스와 함께 예측 유닛 (PU) 을 형성한다. 인터-예측을 위해, 모션 파라미터들의 세트 (예를 들어, 하나 이상의 모션 벡터들, 참조 인덱스들 등) 가 각각의 PU 에 대해 비트스트림으로 시그널링되고, 루마 PB 및 하나 이상의 크로마 PB들의 인터-예측에 대해 이용된다. 모션 파라미터들은 모션 정보로도 또한 지칭될 수 있다. CB 는 또한 하나 이상의 변환 블록들 (Tbs) 로 파티셔닝될 수 있다. TB 는 예측 잔차 신호를 코딩하기 위해 동일한 2 차원 변환이 적용되는 컬러 컴포넌트의 샘플들의 정사각형 블록을 나타낸다. 변환 유닛 (TU) 은 루마 및 크로마 샘플들의 TB들 및 대응하는 신택스 엘리먼트들을 나타낸다.
CU 의 사이즈는 코딩 모드의 사이즈에 대응하고, 형상이 정사각형일 수도 있다. 예를 들어, CU 의 사이즈는 8 x 8 샘플들, 16 x 16 샘플들, 32 x 32 샘플들, 64 x 64 샘플들 또는 대응하는 CTU 의 사이즈까지의 임의의 다른 적절한 사이즈일 수도 있다. 어구 "NxN" 은 수직 및 수평 차원들의 면에서 비디오 블록의 픽셀 차원들 (예를 들어, 8 픽셀 x 8 픽셀) 을 지칭하기 위해 본원에서 이용된다. 블록에서의 픽셀들은 로우들과 컬럼들로 배열될 수도 있다. 일부 실시형태들에서, 블록들은 수직 방향에서와 동일한 픽셀들의 수를 수직 방향에서 갖지 않을 수도 있다. CU 와 연관된 신택스 데이터는, 예를 들어, 하나 이상의 PU들로의 CU 의 파티셔닝을 설명할 수도 있다. 파티셔닝 모드들은 CU 가 인트라-예측 모드 인코딩되거나, 또는 인터-예측 모드 인코딩되는지 사이에서 상이할 수도 있다. PU들은 형상이 비-정사각형이도록 파티셔닝될 수도 있다. CU 와 연관된 신택스 데이터는 또한, 예를 들어, CTU 에 따라 하나 이상의 TU들로의 CU 의 파티셔닝을 설명할 수도 있다. TU 는 형상이 정사각형이거나 비-정사각형일 수 있다.
HEVC 표준에 따르면, 변환들은 변환 유닛들 (TUs) 을 이용하여 수행될 수도 있다. TU들은 CU들마다 다를 수 있다. TU들은 주어진 CU 내의 PU들의 사이즈에 기초하여 사이징될 수도 있다. TU들은 통상적으로 PU들과 동일한 사이즈이거나 또는 PU들보다 더 작을 수도 있다. 일부 예들에서, CU 에 대응하는 잔차 샘플들은 잔차 쿼드트리 (residual quad tree; RQT) 로 알려진, 쿼드트리 구조를 이용하여 더 작은 유닛들로 세분될 수도 있다. RQT 의 리프 노드들은 TU들에 대응할 수도 있다. TU들과 연관된 픽셀 차이 값들이 변환되어 변환 계수들을 생성할 수도 있다. 변환 계수들은 인코더 엔진 (106) 에 의해 양자화될 수도 있다.
일단 비디오 데이터의 화상들이 CU들로 파티셔닝되면, 인코더 엔진 (106) 은 예측 모드를 이용하여 각각의 PU 를 예측한다. 그 후, 예측 유닛 또는 예측 블록은 잔차들 (아래 설명됨) 를 얻기 위해 오리지널 비디오 데이터로부터 감산된다. 각각의 CU 에 대해, 예측 모드는 신택스 데이터를 이용하여 비트스트림 내부에서 시그널링될 수 있다. 예측 모드는 인트라-예측 (또는 인트라-화상 예측) 또는 인터-예측 (또는 인터-화상 예측) 을 포함할 수도 있다. 인트라-예측은 화상 내에서 공간적으로 이웃하는 샘플들 간의 상관성을 이용한다. 예를 들어, 인트라-예측을 이용하여, 각각의 PU 는, 예를 들어, PU 에 대한 평균값을 찾기 위한 DC 예측, PU 에 대해 평면 표면을 맞추기 위한 평면 예측, 이웃하는 데이터로부터 외삽하기 위한 방향 예측, 또는 임의의 다른 적절한 유형들의 예측을 이용하여 동일한 화상에서 이웃하는 이미지 데이터로부터 수행된다. 인터-예측은 이미지 샘플들의 블록에 대한 모션 보상된 예측을 도출하기 위해 화상들 간의 시간적 상관을 이용한다. 예를 들어, 인터-예측을 이용하여, 각각의 PU 는 하나 이상의 참조 화상들에서 (출력 순서에서 현재 화상의 전후) 이미지 데이터로부터의 모션 보상 예측을 이용하여 예측된다. 인터-화상 또는 인트라-화상 예측을 이용하여 화상 영역을 코딩할지의 여부의 결정은 예를 들어 CU 레벨에서 행해질 수도 있다.
일부 예들에서, 화상의 하나 이상의 슬라이스에는 슬라이스 유형이 배정된다. 슬라이스 유형들은 I 슬라이스, P 슬라이스 및 B 슬라이스를 포함한다. I 슬라이스 (인트라-프레임들, 독립적으로 디코딩가능) 는 인트라-예측에 의해서만 코딩된 화상의 슬라이스이며, 따라서 I 슬라이스가 임의의 예측 유닛 또는 슬라이스의 예측 블록을 예측하기 위해 프레임 내의 데이터만을 필요로 하기 때문에 독립적으로 디코딩가능하다. P 슬라이스 (단방향 예측된 프레임들) 는 인트라-예측 및 단방향 인터-예측으로 코딩될 수도 있는 화상의 슬라이스이다. P 슬라이스 내의 각각의 예측 유닛 또는 예측 블록은 인트라-예측 또는 인터-예측으로 코딩된다. 인터-예측이 적용될 때, 예측 유닛 또는 예측 블록은 하나의 참조 화상에 의해서만 예측되며 이에 따라, 참조 샘플들은 하나의 프레임의 하나의 참조 영역으로부터 기원한다. P 슬라이스 (양방향 예측된 프레임들) 는 인트라-예측 및 인터-예측 (예를 들어, 양방향 예측 또는 단방향 예측) 으로 코딩될 수도 있는 화상의 슬라이스이다. B 슬라이스의 예측 유닛 또는 예측 블록은 2 개의 참조 화상들로부터 양방향성 예측될 수도 있고, 여기서, 각각의 화상이 하나의 참조 영역에 기여하고 2 개의 참조 영역들의 샘플 세트들이 (예를 들어, 동일한 가중치 또는 상이한 가중치를 이용하여) 가중되어 양방향 예측 블록의 예측 신호를 생성한다. 위에 설명된 바와 같이, 하나의 화상의 슬라이스들은 독립적으로 코딩된다. 일부 경우에서, 화상은 단지 하나의 피스로 코딩될 수 있다.
PU 는 예측 프로세스와 관련된 데이터 (예를 들어, 모션 파라미터들 또는 다른 적절한 데이터) 를 포함할 수도 있다. 예를 들어, PU 가 인트라-예측을 이용하여 인코딩될 때, PU 는 PU 에 대한 인트라-예측 모드를 기술하는 데이터를 포함할 수도 있다. 다른 예로서, PU 가 인터-예측을 이용하여 인코딩될 때, PU 는 PU 에 대한 모션 벡터를 정의하는 데이터를 포함할 수도 있다. PU 에 대한 모션 벡터를 정의하는 데이터는 예를 들어, 모션 벡터 (
Figure pct00001
) 의 수평 컴포넌트, 모션 벡터의 수직 컴포넌트 (
Figure pct00002
), 모션 벡터에 대한 해상도 (예를 들어, 정수 정밀도, 1/4 픽셀 정밀도 또는 1/8 픽셀 정밀도), 모션 벡터가 포인팅하는 참조 화상, 참조 인덱스, 모션 벡터에 대한 참조 화상 리스트 (예를 들어, 리스트 0, 리스트 1, 또는 리스트 C) 또는 이들의 임의의 조합을 기술할 수도 있다.
그 다음, 인코딩 디바이스 (104) 는 변환 및 양자화를 수행할 수도 있다. 예를 들어, 예측에 이어, 인코더 엔진 (106) 은 PU 에 대응하는 잔차 값들을 계산할 수도 있다. 잔차 값들은 코딩되는 픽셀들의 현재 블록 (PU) 과 현재 블록을 예측하기 위해 이용되는 예측 블록 (예를 들어, 현재 블록의 예측된 버전) 사이의 픽셀 차이 값들을 포함할 수도 있다. 예를 들어, 예측 블록을 생성한 후 (예를 들어, 인터-예측 또는 인트라-예측을 발행한 후), 인코더 엔진 (106) 은 현재 블록으로부터 예측 유닛에 의해 생성된 예측 블록을 감산하는 것에 의해 잔차 블록을 생성할 수 있다. 잔차 블록은 현재 블록의 픽셀 값들과 예측 블록의 픽셀 값들 사이의 차이들을 정량화하는 픽셀 차이 값들의 세트를 포함한다. 일부 예들에서, 잔차 블록은 2 차원 블록 포맷 (예를 들어, 2 차원 매트릭스 또는 픽셀 값들의 어레이) 으로 표현될 수도 있다. 이러한 예들에서, 잔차 블록은 픽셀 값들의 2 차원 표현이다.
예측이 수행된 후에 남아 있을 수 있는 임의의 잔차 데이터는 이산 코사인 변환, 이산 사인 변환, 정수 변환, 웨이브릿 변환, 다른 적절한 변환 함수 또는 이들의 임의의 조합에 기초할 수도 있는 블록 변환을 이용하여 변환된다. 일부 경우, 하나 이상의 블록 변환들 (예를 들어, 사이즈들 32 x 32, 16 x 16, 8 x 8, 4 x 4 또는 다른 적절한 사이즈) 이 각각의 CU 에서 잔차 데이터에 적용될 수도 있다. 일부 실시형태들에서, TU는 인코더 엔진 (106) 에 의해 구현되는 변환 및 양자화 프로세스에 이용될될 수도 있다. 하나 이상의 PU들을 갖는 소정의 CU 는 또한 하나 이상의 TU들을 포함할 수도 있다. 아래 보다 자세하게 설명될 바와 같이, 잔차 값들은 블록 변환들을 이용하여 변환 계수들로 변환될 수도 있고, TU 를 이용하여 양자화되고 스캔되어 엔트로피 코딩을 위한 직렬 변환 계수들을 생성할 수도 있다.
일부 실시형태들에서, CU 의 PU들을 이용한 인트라-예측 또는 인터-예측 코딩에 이어서, 인코더 엔진 (106) 은 CU 의 TU들을 위한 잔차 데이터를 계산할 수도 있다. PU 는 공간 도메인 (또는 픽셀 도메인)의 픽셀 데이터를 포함할 수도 있다. TU 는 블록 변환의 적용에 이어서 변환 도메인에 계수들을 포함할 수도 있다. 이전에 주지된 바와 같이, 잔차 데이터는 인코딩되지 않은 화상의 픽셀들과 PU들에 대응하는 예측 값들 사이의 픽셀 차이 값들에 대응할 수도 있다. 인코더 엔진 (106) 은 CU 에 대한 잔차 데이터를 포함하는 TU들을 형성하고, 그 후, TU들을 변환하여 CU 에 대한 변환 계수들을 생성할 수도 있다.
인코더 엔진 (106) 은 변환 계수들의 양자화를 수행할 수도 있다. 양자화는 변환 계수들을 양자화하여 추가의 압축을 제공하여, 계수들을 표현하기 위해 이용되는 데이터의 양을 감소시킨다. 예를 들어, 양자화는 그 계수들의 일부 또는 전부와 연관되는 비트 심도를 감소시킬 수도 있다. 일부 예들에서, n-비트 값을 가진 계수들은 양자화 동안 m-비트 값으로 내림될 수도 있으며, 여기서, n 은 m 보다 더 크다.
일단 양자화가 수행되면, 코딩된 비디오 비트스트림은 양자화된 변환 계수들, 예측 정보 (예를 들어, 예측 모드들, 모션 벡터들, 블록 벡터들 등), 파티셔닝 정보, 및 다른 신택스 데이터와 같은 임의의 다른 적합한 데이터를 포함한다. 코딩된 비디오 비트스트림의 상이한 엘리먼트들은 인코더 엔진 (106) 에 의해 엔트로피 인코딩될 수도 있다. 일부 예들에 있어서, 인코더 엔진 (106) 은 양자화된 변환 계수들을 스캔하기 위한 미리정의된 스캔 순서를 이용하여, 엔트로피 인코딩될 수 있는 직렬화된 벡터를 생성할 수도 있다. 다른 예들에서, 인코더 엔진 (106) 은 적응적 스캔을 수행할 수도 있다. 양자화된 변환 계수들을 스캐닝하여 벡터 (예를 들어, 1 차원 벡터) 를 형성한 후, 인코더 엔진 (106) 은 벡터를 엔트로피 인코딩할 수도 있다. 예를 들어, 인코더 엔진 (106) 은 컨텍스트-적응 가변 길이 코딩 (context adaptive variable length coding; CAVLC), 컨텍스트 적응 2 진 산술 코딩 (context adaptive binary arithmetic coding; CABAC), 신택스-기반 컨텍스트-적응 2 진 산술 코딩 (syntax-based context-adaptive binary arithmetic coding; SBAC), 확률 간격 파티셔닝 엔트로피 (probability interval partitioning entropy; PIPE) 코딩 또는 또 다른 적합한 엔트로피 인코딩 기술을 이용할 수도 있다.
이전에 설명된 바와 같이, HEVC 비트스트림은 VCL NAL 유닛들 및 비-VCL NAL 유닛들을 포함하는 NAL 유닛들의 그룹을 포함한다. VCL NAL 유닛들은 코딩된 비디오 비트스트림을 형성하는 코딩된 화상 데이터를 포함한다. 예를 들어, 코딩된 비디오 비트스트림을 형성하는 비트들의 시퀀스는 VCL NAL 유닛들에서 재전송된다. 비-VCL NAL 유닛들은 다른 정보 이외에 인코딩된 비디오 비트스트림에 관한 하이-레벨 정보를 갖는 파라미터 세트들을 포함할 수도 있다. 예를 들어, 파라미터 세트는 비디오 파라미터 세트 (VPS), 시퀀스 파라미터 세트 (SPS) 및 화상 파라미터 세트 (PPS) 를 포함할 수도 있다. 파라미터 세트들의 목표들의 예는 비트 레이트 효율, 오류 복원력 및 시스템 계층 인터페이스의 제공을 포함한다. 각각의 슬라이스는 단일의 활성 PPS, SPS 및 VPS 를 참조하여, 디코딩 디바이스 (112) 가 슬라이스를 디코딩하기 위해 이용할 수 있는 정보에 액세스한다. 식별자 (ID) 는 VPS ID, SPS ID 및 PPS ID 를 포함한 각각의 파라미터 세트에 대해 코딩될 수도 있다. SPS는 SPS ID 와 VPS ID 를 포함한다. PPS 는 PPS ID 및 SPS ID 를 포함한다. 각각의 슬라이스 헤더는 PPS ID 를 포함한다. ID들을 이용하여 주어진 슬라이스에 대해 액티브 파라미터 세트들이 식별될 수 있다.
PPS 는 주어진 화상의 모든 슬라이스들에 적용되는 정보를 포함한다. 이것 때문에, 화상에서의 모든 슬라이스들은 동일한 PPS 를 참조한다. 상이한 화상들에서의 슬라이스들이 또한, 동일한 PPS 를 참조할 수도 있다. SPS 는 동일한 코딩된 비디오 시퀀스 (CVS) 또는 비트스트림에서의 모든 화상들에 적용되는 정보를 포함한다. 전술된 바와 같이, 코딩된 비디오 시퀀스는 기본 계층에서의 랜덤 액세스 포인트 화상 (예를 들어, 순시 디코드 참조 (IDR) 화상 또는 브로큰 링크 액세스 (BLA) 화상, 또는 다른 적절한 랜덤 액세스 포인트 화상) 으로 그리고 특정 특성들 (상기 설명됨) 로 시작하는 액세스 유닛들 (AU들) 의 시리즈이고, 기본 계층에서의 랜덤 액세스 포인트 화상을 갖고 특정 특성들 (또는 비트스트림의 말단) 을 갖는 다음 AU 를 포함하지 않는다. SPS 에서의 정보는 코딩된 비디오 시퀀스 내에서 화상 단위로 변하지 않을 수도 있다. 코딩된 비디오 시퀀스에서의 화상은 동일한 SPS 를 사용할 수도 있다. VPS 는 코딩된 비디오 시퀀스 또는 비트스트림 내의 모든 계층들에 적용되는 정보를 포함한다. VPS 는 전체 코딩된 비디오 시퀀스들에 적용되는 신택스 엘리먼트들을 갖는 신택스 구조를 포함한다. 일부 실시형태들에 있어서, VPS, SPS, 또는 PPS 는 인코딩된 비트스트림으로 대역내로 (in-band) 송신될 수도 있다. 일부 실시형태들에 있어서, VPS, SPS, 또는 PPS 는, 코딩된 비디오 데이터를 포함하는 NAL 유닛들과 별도의 송신에서 대역외로 (out-of-band) 송신될 수도 있다.
비디오 비트스트림은 또한, 보충 강화 정보 (SEI) 메시지들을 포함할 수 있다. 예를 들어, SEI NAL 유닛은 비디오 비트스트림의 부분일 수 있다. 일부 경우들에 있어서, SEI 메시지는, 디코딩 프로세스에 의해 필요하지 않은 정보를 포함할 수 있다. 예를 들어, SEI 메시지에서의 정보는 디코더가 비트스트림의 비디오 화상들을 디코딩하는 데 필수적이지 않을 수 있지만, 디코더는 그 정보를 이용하여 화상들의 디스플레이 또는 프로세싱 (예를 들어, 디코딩된 출력) 을 개선시킬 수 있다. SEI 메시지에서의 정보는 임베딩된 메타데이터일 수 있다. 하나의 예시적인 예에 있어서, SEI 메시지에서의 정보는 디코더 측 엔티티에 의해 이용되어 컨텐츠의 가시성을 개선시킬 수 있다. 일부 경우들에 있어서, 특정 어플리케이션 표준들은, 어플리케이션 표준 (예컨대, 다수의 다른 예들에 추가하여, 프레임-호환가능 평면-입체 (plano-stereoscopic) 3DTV 비디오 포맷에 대한 프레임-팩킹 SEI 메시지의 반송 (여기서, SEI 메시지는 비디오의 매 프레임마다 반송됨), 복구 포인트 SEI 메시지의 핸들링, DVB 에서의 팬-스캔 (pan-scan) 스캔 직사각형 SEI 메시지의 이용) 에 부합하는 모든 디바이스들에서 품질의 개선을 이룰 수 있도록, 비트스트림에서의 이러한 SEI 메시지들의 존재를 요구할 수도 있다.
인코딩 디바이스 (104) 의 출력 (110) 은 인코딩된 비디오 비트스트림 데이터를 구성하는 NAL 유닛들을, 통신 링크 (120) 상으로 수신 디바이스의 디코딩 디바이스 (112) 로 전송할 수도 있다. 디코딩 디바이스 (112) 의 입력 (114) 은 NAL 유닛들을 수신할 수도 있다. 통신 링크 (120) 는 무선 네트워크, 유선 네트워크, 또는 유선 및 무선 네트워크의 조합에 의해 제공된 채널을 포함할 수도 있다. 무선 네트워크는 임의의 무선 인터페이스 또는 무선 인터페이스들의 조합을 포함할 수도 있고, 임의의 적합한 무선 네트워크 (예컨대, 인터넷 또는 다른 광역 네트워크, 패킷 기반 네트워크, WiFi™, 무선 주파수 (RF), UWB, WiFi-다이렉트, 셀룰러, 롱 텀 에볼루션 (LTE), WiMax™ 등) 를 포함할 수도 있다. 유선 네트워크는 임의의 유선 인터페이스 (예컨대, 섬유, 이더넷, 전력선 이더넷, 이더넷 오버 동축 케이블, 디지털 신호 라인 (DSL) 등) 를 포함할 수도 있다. 유선 및/또는 무선 네트워크들은 기지국들, 라우터들, 액세스 포인트들, 브릿지들, 게이트웨이들, 스위치들 등과 같은 다양한 장비를 이용하여 구현될 수도 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라 변조되고, 수신 디바이스로 송신될 수도 있다.
일부 예들에 있어서, 인코딩 디바이스 (104) 는 인코딩된 비디오 비트스트림 데이터를 스토리지 (108) 에 저장할 수도 있다. 출력 (110) 은 인코더 엔진 (106) 으로부터 또는 스토리지 (108) 로부터 인코딩된 비디오 비트스트림 데이터를 취출할 수도 있다. 스토리지 (108) 는 다양한 분산되거나 국부적으로 액세스된 데이터 스토리지 매체들 중의 임의의 것을 포함할 수도 있다. 예를 들어, 스토리지 (108) 는 하드 드라이브, 스토리지 디스크, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 스토리지 매체들을 포함할 수도 있다.
디코딩 디바이스 (112) 의 입력 (114) 은 인코딩된 비디오 비트스트림 데이터를 수신하고, 비디오 비트스트림 데이터를 디코더 엔진 (116) 에, 또는 디코더 엔진 (116) 에 의한 더 나중의 사용을 위해 스토리지 (118) 에 제공할 수도 있다. 디코더 엔진 (116) 은 인코딩된 비디오 데이터를 구성하는 하나 이상의 코딩된 비디오 시퀀스들의 엘리먼트들을 (예컨대, 엔트로피 디코더를 이용하여) 엔트로피 디코딩하고 추출함으로써 인코딩된 비디오 비트스트림 데이터를 디코딩할 수도 있다. 그 후, 디코더 엔진 (116) 은 인코딩된 비디오 비트스트림 데이터에 대한 역변환을 리스케일링 (rescaling) 할 수도 있고 이 역변환을 수행할 수도 있다. 그 후, 잔차 데이터가 디코더 엔진 (116) 의 예측 스테이지로 전달된다. 그 후, 디코더 엔진 (116) 은 픽셀들의 블록을 예측한다 (예컨대, PU). 일부 예들에 있어서, 예측은 역변환의 출력 (잔차 데이터) 에 추가된다.
디코딩 디바이스 (112) 는 디코딩된 비디오를, 디코딩된 비디오 데이터를 컨텐츠의 소비자에게 디스플레이하기 위한 디스플레이 또는 다른 출력 디바이스를 포함할 수도 있는 비디오 목적지 디바이스 (122) 에 출력할 수도 있다. 일부 양태들에 있어서, 비디오 목적지 디바이스 (122) 는 디코딩 디바이스 (112) 를 포함하는 수신 디바이스의 부분일 수도 있다. 일부 양태들에 있어서, 비디오 목적지 디바이스 (122) 는 수신 디바이스 이외의 별도의 디바이스의 부분일 수도 있다.
일부 실시형태들에 있어서, 비디오 인코딩 디바이스 (104) 및/또는 비디오 디코딩 디바이스 (112) 는 각각 오디오 인코딩 디바이스 및 오디오 디코딩 디바이스와 통합될 수도 있다. 비디오 인코딩 디바이스 (104) 및/또는 비디오 디코딩 디바이스 (112) 는 또한, 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 어플리케이션 특정 집적 회로들 (ASIC들), 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 이산 로직, 소프트웨어, 하드웨어, 펌웨어, 또는 그 임의의 조합들과 같은, 상기 설명된 코딩 기법들을 구현하기 위하여 필요한 다른 하드웨어 또는 소프트웨어를 포함할 수도 있다. 비디오 인코딩 디바이스 (104) 및 비디오 디코딩 디바이스 (112) 는 개별 디바이스에서 조합된 인코더/디코더 (코덱) 의 부분으로서 통합될 수도 있다. 인코딩 디바이스 (104) 의 특정 상세들의 예는 도 19 를 참조하여 하기에서 설명된다. 디코딩 디바이스 (112) 의 특정 상세들의 예는 도 20 를 참조하여 하기에서 설명된다.
HEVC 표준에 대한 확장들은 MV-HEVC 로서 지칭되는 멀티뷰 비디오 코딩 확장과, SHVC 로서 지칭되는 스케일러블 비디오 코딩 확장을 포함한다. MV-HEVC 및 SHVC 확장들은 계층화된 코딩의 개념을 공유하고, 상이한 계층들은 인코딩된 비디오 비트스트림에 포함된다. 코딩된 비디오 시퀀스에서의 각각의 계층은 고유의 계층 식별자 (ID) 에 의해 어드레싱된다. 계층 ID 는, NAL 유닛이 연관되는 계층을 식별하기 위해 NAL 유닛의 헤더에 존재할 수도 있다. MV-HEVC 에 있어서, 상이한 계층들은 비디오 비트스트림에서 동일한 장면의 상이한 뷰들을 표현할 수 있다. SHVC 에 있어서, 상이한 공간 해상도들 (또는 화상 해상도) 에서 또는 상이한 복원 충실도들에서 비디오 비트스트림을 표현하는 상이한 스케일러블 계층들이 제공된다. 스케일러블 계층들은 (계층 ID = 0 을 갖는) 기본 계층과, (계층 ID들 = 1, 2, … n 을 갖는) 하나 이상의 강화 계층들을 포함할 수도 있다. 기본 계층은 HEVC 의 제 1 버전의 프로파일에 부합할 수도 있고, 비트스트림에서 최저 이용가능한 계층을 표현한다. 강화 계층들은, 기본 계층과 비교할 때, 증가된 공간 해상도, 시간 해상도 또는 프레임 레이트, 및/또는 복원 충실도 (또는 품질) 를 가진다. 강화 계층들은 계위적으로 편성되고, 더 낮은 계층들에 종속될 수도 있다 (또는 종속하지 않을 수도 있음). 일부 예들에 있어서, 상이한 계층들은 단일 표준 코덱을 이용하여 코딩될 수도 있다 (예컨대, 모든 계층들은 HEVC, SHVC, 또는 다른 코딩 표준을 이용하여 인코딩됨). 일부 예들에 있어서, 상이한 계층들은 멀티-표준 코덱을 이용하여 코딩될 수도 있다. 예를 들어, 기본 계층은 AVC 를 이용하여 코딩될 수도 있는 한편, 하나 이상의 강화 계층들은 HEVC 표준에 대한 SHVC 및/또는 MV-HEVC 확장들을 이용하여 코딩될 수도 있다.
일반적으로, 계층은 VCL NAL 유닛들의 세트와, 비-VCL NAL 유닛들의 대응하는 세트를 포함한다. NAL 유닛들은 특정 계층 ID 값을 할당받는다. 계층들은, 계층이 더 낮은 계층에 종속될 수도 있다는 의미에서 계위적일 수 있다. 계층 세트는 자체-포함된 비트스트림 내에서 표현된 계층들의 세트를 지칭하며, 이는 계층 세트 내의 계층들이 디코딩 프로세스에서 계층 세트에서의 다른 계층들에 종속될 수 있지만 디코딩을 위한 어떠한 다른 계층들에도 종속하지 않음을 의미한다. 이에 따라, 계층 세트에서의 계층들은, 비디오 컨텐츠를 표현할 수 있는 독립적인 비트스트림을 형성할 수 있다. 계층 세트에서의 계층들의 세트는 서브-비트스트림 추출 프로세스의 동작에 의해 다른 비트스트림으로부터 획득될 수도 있다. 계층 세트는, 디코더가 특정 파라미터들에 따라 동작하길 원할 때, 디코딩되어야 하는 계층들의 세트에 대응할 수도 있다.
상기 설명된 바와 같이, 각각의 블록에 대해, 모션 정보의 세트 (본 명세서에서는 모션 파라미터들로서도 또한 지칭됨) 가 이용가능할 수 있다. 모션 정보의 세트는 순방향 및 역방향 예측 방향들에 대한 모션 정보를 포함한다. 순방향 및 역방향 예측 방향들은 양방향 예측 모드의 2 개의 예측 방향들이며, 이 경우 용어 "순방향" 및 "역방향" 은 반드시 기하학적 의미를 가질 필요는 없다. 대신, "순방향" 및 "역방향" 은 현재 화상의 참조 화상 리스트 0 (RefPicList0) 및 참조 화상 리스트 1 (RefPicList1) 에 대응한다. 일부 예들에 있어서, 오직 하나의 참조 화상 리스트가 화상 또는 슬라이스에 이용가능할 경우, 오직 RefPicList0만이 이용가능하고 슬라이스의 각각의 블록의 모션 정보는 항상 순방향이다.
일부 경우들에 있어서, 그 참조 인덱스와 함께 모션 벡터는 코딩 프로세스들 (예를 들어, 모션 보상) 에서 사용된다. 관련 참조 인덱스를 갖는 이러한 모션 벡터는 모션 정보의 단일 예측 세트로서 표기된다. 각각의 예측 방향에 대해, 모션 정보는 참조 인덱스 및 모션 벡터를 포함할 수 있다. 일부 경우들에 있어서, 단순화를 위해, 모션 벡터 자체는, 관련 참조 인덱스를 갖는 것으로 가정되는 방식으로 참조될 수도 있다. 참조 인덱스는 현재의 참조 화상 리스트 (RefPicList0 또는 RefPicList1) 에서의 참조 화상을 식별하기 위해 사용된다. 모션 벡터는, 현재 화상의 좌표 위치로부터 참조 인덱스에 의해 식별된 참조 화상에서의 좌표까지의 오프셋을 제공하는 수평 및 수직 컴포넌트를 갖는다. 예를 들어, 참조 인덱스는 현재 화상에서의 블록에 대해 사용되어야 하는 특정 참조 화상을 표시할 수 있고, 모션 벡터는, 참조 화상에서, 최상의 매칭된 블록 (현재 블록과 최상으로 매칭하는 블록) 이 참조 화상에 있는 곳을 표시할 수 있다.
화상 순서 카운트 (POC) 는 화상의 디스플레이 순서를 식별하기 위해 비디오 코딩 표준들에서 사용될 수 있다. 하나의 코딩된 비디오 시퀀스 내의 2개의 화상들이 동일한 POC 값을 가질 수도 있는 경우들이 존재하더라도, 이는 코딩된 비디오 시퀀스 내에서는 통상적으로 일어나지 않는다. 다수의 코딩된 비디오 시퀀스들이 비트스트림에 존재할 경우, POC 의 동일한 값을 갖는 화상들은 디코딩 순서의 관점에서 서로 더 근접할 수도 있다. 화상들의 POC 값들은 참조 화상 리스트 구성, HEVC 에서와 같은 참조 화상 세트의 도출, 및 모션 벡터 스케일링을 위해 사용될 수 있다.
H.264/AVC 에 있어서, 각각의 인터 매크로블록 (MB) 은 하나의 16x16 MB 파티션; 2개의 16x8 MB 파티션들; 2개의 8x16 MB 파티션들; 및 4개의 8x8 MB 파티션들을 포함한, 4개의 상이한 방식들로 파티셔닝될 수도 있다. 하나의 MB 에서의 상이한 MB 파티션들은 각각의 방향에 대해 상이한 참조 인덱스 값들 (RefPicList0 또는 RefPicList1) 을 가질 수도 있다. 일부 경우들에 있어서, MB 가 4개의 8x8 MB 파티션들로 파티셔닝되지 않을 경우, MB 는 각각의 방향에서 각각의 MB 파티션에 대해 오직 하나의 모션 벡터만을 가질 수 있다. 일부 경우들에 있어서, MB 가 4개의 8x8 MB 파티션들로 파티셔닝될 경우, 각각의 8x8 MB 파티션은 서브-블록들로 추가로 파티셔닝될 수 있으며, 이 경우, 각각의 서브-블록은 각각의 방향에서 상이한 모션 벡터를 가질 수 있다. 일부 예들에 있어서, 8x8 MB 파티션으로부터 서브-블록들을 얻기 위해, 하나의 8x8 서브-블록; 2개의 8x4 서브-블록들; 2개의 4x8 서브-블록들; 및 4개의 4x4 서브-블록들을 포함하여 4개의 상이한 방식들이 존재한다. 각각의 서브-블록은 각각의 방향에서 상이한 모션 벡터를 가질 수 있다. 따라서, 모션 벡터는 서브-블록과 같거나 더 높은 레벨에 존재한다.
AVC 에 있어서, 시간 직접 모드는, B 슬라이스들에서 스킵 및/또는 직접 모드에 대해 MB 레벨 또는 MB 파티션 레벨 중 어느 하나에서 인에이블될 수 있다. 각각의 MB 파티션에 대해, 현재 블록의 RefPicList1[0] 에서의 현재 MB 파티션과 병치된 블록의 모션 벡터들이 모션 벡터들을 도출하는데 사용된다. 병치된 블록에서의 각각의 모션 벡터는 POC 거리들에 기초하여 스케일링된다.
공간 직접 모드가 또한 AVC 에서 수행될 수 있다. 예를 들어, AVC 에 있어서, 직접 모드는 또한, 공간 이웃들로부터의 모션 정보를 예측할 수 있다.
HEVC 에 있어서, 슬라이스에서의 최대 코딩 유닛은 코딩 트리 블록 (CTB) 으로 지칭된다. CTB 는 쿼드-트리를 포함하고, 그 노드들은 코딩 유닛들이다. CTB 의 사이즈는 HEVC 메인 프로파일에서 16x16 부터 64x64 까지의 범위일 수 있다. 일부 경우들에 있어서, 8x8 CTB 사이즈들이 지원될 수 있다. 코딩 유닛 (CU) 은 CTB 의 동일한 사이즈일 수 있고 8x8 만큼 작을 수 있다. 일부 경우들에 있어서, 각각의 코딩 유닛은 하나의 모드로 코딩된다. CU 가 인터 코딩될 경우, CU 는 2 또는 4개의 예측 유닛들 (PU들) 로 추가로 파티셔닝될 수도 있거나, 또는 추가의 파티션이 적용되지 않을 경우 단지 하나의 PU 가 될 수도 있다. 2개의 PU들이 하나의 CU 에 존재할 경우, 그 PU들은 하프 사이즈 직사각형들 또는 CU 의 ¼ 또는 ¾ 사이즈인 2개의 직사각형들일 수 있다.
CU 가 인터 코딩될 경우, 모션 정보의 하나의 세트가 각각의 PU 에 대해 존재한다. 부가적으로, 각각의 PU 는 모션 정보의 세트를 도출하기 위해 고유한 인터-예측 모드로 코딩된다.
HEVC 에서의 모션 예측에 대해, 예측 유닛 (PU) 에 대해 병합 모드 및 어드밴스드 모션 벡터 예측 (AMVP) 모드를 포함하여 2개의 인터-예측 모드들이 존재한다. 스킵은 병합의 특별 케이스로서 고려된다. AMVP 모드 또는 병합 모드 중 어느 하나에서, 모션 벡터 (MV) 후보 리스트가 다수의 모션 벡터 예측기들에 대해 유지된다. 현재 PU 의 병합 모드에서의 참조 인덱스들 뿐 아니라 모션 벡터(들)가 MV 후보 리스트로부터 하나의 후보를 취함으로써 생성된다.
일부 예들에 있어서, MV 후보 리스트는 병합 모드에 대한 5개까지의 후보들 및 AMVP 모드에 대한 2개의 후보들을 포함한다. 다른 예들에 있어서, 상이한 수들의 후보들이 병합 모드 및/또는 AMVP 모드에 대한 MV 후보 리스트에 포함될 수 있다. 병합 후보는 모션 정보의 세트를 포함할 수도 있다. 예를 들어, 모션 정보의 세트는 참조 화상 리스트 (리스트 0 및 리스트 1) 및 참조 인덱스들 양자 모두에 대응하는 모션 벡터들을 포함할 수 있다. 병합 후보가 병합 인덱스에 의해 식별되면, 참조 화상들은 현재 블록들의 예측을 위해 사용될 뿐 아니라 관련 모션 벡터들이 결정된다. 하지만, AMVP 모드 하에서, 리스트 0 또는 리스트 1 중 어느 하나로부터의 각각의 잠재적 예측 방향에 대해, AMVP 후보가 오직 모션 벡터만을 포함하기 때문에, MV 후보 인덱스에 대한 MVP 인덱스와 함께, 참조 인덱스가 명시적으로 시그널링될 필요가 있다. AMVP 모드에 있어서, 예측 모션 벡터들은 추가로 정세될 수 있다.
상기에서 볼 수 있는 바와 같이, 병합 후보는 모션 정보의 전체 세트에 대응하는 한편, AMVP 후보는 특정 예측 방향 및 참조 인덱스에 대해 단지 하나의 모션 벡터를 포함한다. 양자 모두의 모드들에 대한 후보들은 동일한 공간 및 시간 이웃 블록들로부터 유사하게 도출된다.
일부 예들에 있어서, 병합 모드는 인터-예측된 PU 로 하여금 공간적으로 이웃한 모션 데이터 위치들의 그룹으로부터 선택된 모션 데이터 위치 및 2개의 시간적으로 병치된 모션 데이터 위치들 중 하나를 포함한 인터-예측된 PU 로부터의 동일한 모션 벡터 또는 벡터들, 예측 방향, 및 참조 화상 인덱스 또는 인덱스들을 상속하게 한다. AMVP 모드에 대해, PU 의 모션 벡터 또는 벡터들은, 인코더에 의해 구성된 AMVP 후보 리스트로부터의 하나 이상의 모션 벡터 예측기들 (MVP들) 에 대해 예측적으로 코딩될 수 있다. 일부 경우들에 있어서, PU 의 단일 방향 인터-예측에 대해, 인코더는 단일 AMVP 후보 리스트를 생성할 수 있다. 일부 경우들에 있어서, PU 의 양방향 예측에 대해, 인코더는 2개의 AMVP 후보 리스트들을 생성할 수 있으며, 하나는 순방향 예측 방향으로부터 공간 및 시간 이웃 PU들의 모션 데이터를 사용하고, 하나는 역방향 예측 방향으로부터 공간 및 시간 이웃 PU들의 모션 데이터를 사용한다.
양자 모두의 모드들에 대한 후보들은 공간 및/또는 시간 이웃 블록들로부터 도출될 수 있다. 예를 들어, 도 2a 및 도 2b 는 HEVC 에서의 공간 이웃 후보들을 예시하는 개념 다이어그램들을 포함한다. 도 2a 는 병합 모드에 대한 공간 이웃 모션 벡터 (MV) 후보들을 예시한다. 도 2b 는 AMVP 모드에 대한 공간 이웃 모션 벡터 (MV) 후보들을 예시한다. 공간 MV 후보들이 특정 PU (PU0) 에 대한 이웃 블록들로부터 도출되지만, 블록들로부터 후보들을 생성하는 방법들은 병합 및 AMVP 모드들에 대해 상이하다.
병합 모드에 있어서, 인코더는 다양한 모션 데이터 위치들로부터의 병합 후보들을 고려함으로써 병합 후보 리스트를 형성할 수 있다. 예를 들어, 도 2a 에 나타낸 바와 같이, 4개까지의 공간 MV 후보들이 도 2a 에서의 번호들 0-4 로 나타낸 공간적으로 이웃한 모션 데이터 위치들에 대해 도출될 수 있다. MV 후보들은 병합 후보 리스트에서 번호들 0-4 로 나타낸 순서로 순서화될 수 있다. 예를 들어, 위치들 및 순서는 좌측 위치 (0), 상부 위치 (1), 우상부 위치 (2), 좌하부 위치 (3), 및 좌상부 위치 (4) 를 포함할 수 있다.
도 2b 에 나타낸 AVMP 모드에 있어서, 이웃한 블록들은 2개의 그룹들: 즉, 블록들 0 및 1 을 포함하는 좌측 그룹, 및 블록들 2, 3, 및 4 를 포함하는 상부 그룹으로 분할된다. 각각의 그룹에 대해, 시그널링된 참조 인덱스에 의해 표시된 것과 동일한 참조 화상을 참조하는 이웃한 블록에서의 잠재적인 후보가 그룹의 최종 후보를 형성하도록 선택될 최고 우선순위를 갖는다. 모든 이웃한 블록들이 동일한 참조 화상을 포인팅하는 모션 벡터를 포함하지 않는 것이 가능하다. 따라서, 이러한 후보가 발견될 수 없으면, 최종 후보를 형성하기 위해 제 1 이용가능 후보가 스케일링될 것이며, 따라서, 시간적 거리 차이들이 보상될 수 있다.
도 3a 및 도 3b 는 HEVC 에서의 시간 모션 벡터 예측을 예시하는 개념 다이어그램들을 포함한다. 시간 모션 벡터 예측기 (TMVP) 후보는, 인에이블되고 이용가능한 경우, 공간 모션 벡터 후보들 이후에 MV 후보 리스트로 추가된다. TMVP 후보에 대한 모션 벡터 도출의 프로세스는 병합 모드 및 AMVP 모드 양자에 대해 동일하다. 일부 경우들에 있어서, 하지만, 병합 모드에서 TMVP 후보에 대한 타겟 참조 인덱스는 제로로 설정될 수 있거나 또는 이웃한 블록들의 타겟 참조 인덱스로부터 도출될 수 있다.
TMVP 후보 도출을 위한 1차 블록 로케이션은, 공간 이웃 후보들을 생성하는데 사용되는 상부 및 좌측 블록들에 대한 바이어스를 보상하기 위해, 도 3a 에 블록 "T" 로 나타낸 바와 같이, 병치된 PU 의 외부에 있는 우하측 블록이다. 하지만, 그 블록이 현재의 CTB (또는 LCU) 행의 외부에 로케이팅되거나 또는 모션 정보가 이용가능하지 않으면, 블록은 PU 의 중심 블록으로 치환된다. TMVP 후보에 대한 모션 벡터는, 슬라이스 레벨에서 표시된, 병치된 화상의 병치된 PU 로부터 도출된다. AVC 에서의 시간 직접 모드와 유사하게, TMVP 후보의 모션 벡터는, 거리 차이들을 보상하도록 수행되는 모션 벡터 스케일링을 당할 수도 있다.
모션 예측의 다른 양태들은 HEVC 표준에서 커버된다. 예를 들어, 병합 및 AMVP 모드들의 수개의 다른 양태들이 커버된다. 하나의 양태는 모션 벡터 스케일링을 포함한다. 모션 벡터 스케일링에 대하여, 모션 벡터들의 값이 그 프리젠테이션 시간에서의 화상들의 거리에 비례한다고 가정될 수 있다. 모션 벡터는 2개의 화상들, 즉, 참조 화상과, 모션 벡터를 포함하는 화상 (즉, 포함 화상) 를 연관시킨다. 모션 벡터가 다른 모션 벡터를 예측하는데 활용될 경우, 포함 화상과 참조 화상의 거리는 화상 순서 카운트 (POC) 값들에 기초하여 계산된다.
예측될 모션 벡터에 대해, 그의 연관된 포함 화상 및 참조 화상 양자는 상이할 수도 있다. 따라서, (POC 에 기초한) 새로운 거리가 계산된다. 그리고, 모션 벡터는 이들 2개의 POC 거리들에 기초하여 스케일링된다. 공간 이웃 후보에 대해, 2개의 모션 벡터들에 대한 포함 화상들은 동일한 반면, 참조 화상들은 상이하다. HEVC 에 있어서, 모션 벡터 스케일링이 공간 및 시간 이웃 후보들에 대해 TMVP 및 AMVP 양자에 적용된다.
모션 예측의 다른 양태는 인공적인 모션 벡터 후보 생성을 포함한다. 예를 들어, 모션 벡터 후보 리스트가 완료되지 않으면, 인공적인 모션 벡터 후보들이 생성되고, 모든 후보들이 획득될 때까지 리스트의 끝에 삽입된다. 병합 모드에 있어서, 2개의 유형들의 인공적인 MV 후보들: 즉, 오직 B-슬라이스들에 대해서만 도출되는 결합된 후보; 및 제 1 유형이 충분한 인공적인 후보들을 제공하지 않으면 오직 AMVP 에 대해서만 사용되는 제로 후보들이 존재한다. 후보 리스트에 이미 있고 필요한 모션 정보를 갖는 후보들의 각각의 쌍에 대해, 양방향 결합된 모션 벡터 후보들이 리스트 0 에서의 화상을 참조하는 제 1 후보의 모션 벡터와 리스트 1 에서의 화상을 참조하는 제 2 후보의 모션 벡터의 조합에 의해 도출된다.
병합 및 AMVP 모드들의 다른 양태는 후보 삽입을 위한 프루닝 프로세스를 포함한다. 예를 들어, 상이한 블록들로부터의 후보들은 동일하도록 발생할 수도 있으며, 이는 병합 및/또는 AMVP 후보 리스트의 효율을 감소시킨다. 이러한 문제를 해결하기 위해 프루닝 프로세스가 적용될 수 있다. 프루닝 프로세스는, 특정 범위에서 동일한 후보를 삽입하는 것을 회피하기 위해 하나의 후보를 현재의 후보 리스트에서의 다른 후보들과 비교한다. 복잡도를 감소시키기 위해, 각각의 잠재적 후보를 모든 다른 현존 후보들과 비교하는 대신, 오직 제한된 수들의 프루닝 프로세스만이 적용된다.
다양한 관련된 모션-예측 기술들이 존재한다. 하나의 예측 기술은 로컬 조명 보상 (LIC) 이다. 조명 보상은 HEVC 에 대해 제안되었다. 예를 들어, JCTVC-C041 에 있어서, 파티션 기반 조명 보상 (PBIC) 이 제안되었다. 가중 예측 (WP) 을 인에이블 및/또는 디스에이블하고 슬라이스 레벨 (하기에서 설명됨) 에서 WP 파라미터들을 시그널링하는 가중 예측 (WP) 과는 달리, PBIC 는 조명 보상 (IC) 을 인에이블 및/또는 디스에이블하고 예측 유닛 (PU) 레벨에서 IC 파라미터들을 시그널링하여 로컬 조명 변동을 핸들링한다. JVET-B0023 에 있어서, 블록 기반 LIC 는 HEVC 에서의 PU 와 유사한 CU 로 확장되고, CU 는 QTBT 구조에서 모션 정보를 반송하는 기본 유닛이 된다.
하기에서 더 상세히 설명되는 가중 예측 (WP) 과 유사하게, 스케일링 인자 (또한 a 로 표기됨) 및 오프셋 (또한 b 로 표기됨) 가 IC 에서 사용되고, 시프트 수는 6 으로 고정된다. IC 플래그가 각각의 PU 에 대해 코딩되어, IC 가 현재 PU 에 대해 적용되는지 여부를 표시한다. IC 가 PU 에 대해 적용되면, IC 파라미터들의 세트 (예컨대, a 및 b) 가 디코더에 시그널링되고 모션 보상을 위해 사용된다. 일부 예들에 있어서, IC 파라미터들에 소비된 비트들을 절약하기 위해, 크로마 컴포넌트는 루마 컴포넌트와 스케일링 인자들을 공유하고, 고정된 오프셋 128 이 사용된다.
3D-HEVC 에 있어서, IC 는 인터-뷰 예측을 위해 인에이블된다. IC 파라미터들을 명시적으로 시그널링하는 WP 및 PBIC 와는 달리, 이는, 현재 CU 의 이웃한 샘플들 및 참조 블록의 이웃한 샘플들에 기초하여 IC 파라미터들을 도출한다. IC 는 2Nx2N 파티션 모드에만 적용된다. AMVP 모드에 대해, 하나의 IC 플래그는, 인터-뷰 참조 화상으로부터 예측되는 각각의 CU 에 대해 시그널링된다. 병합 모드에 대해, 비트들을 절약하기 위해, PU 의 병합 인덱스가 0 과 동일하지 않는 경우에만 IC 플래그가 시그널링된다. 일부 경우들에 있어서, IC 는, 오직 시간 참조 화상으로부터만 예측되는 CU 에는 적용되지 않는다.
IC 파라미터들의 유도와 관련하여, 인터-뷰 예측에 사용된 선형 IC 모델은 등식 (1) 에 나타내진다.
Figure pct00003
여기서, PU c 는 현재의 PU이고, (i, j)PU c 의 픽셀 좌표이며, (dv x , dv y ) 는 PU c 의 변이 벡터이다. p(i, j)PU c 의 예측이고, r 은 인접 뷰로부터의 PU의 참조 화상이며, ab 는 선형 IC 모델의 파라미터들이다.
PU에 대한 파라미터 ab 를 추정하기 위해, 도 4a 및 도 4b에 도시된 바와 같이, 2 세트의 픽셀들이 사용된다. 제 1 세트의 픽셀들은 도 4a에 도시되어 있으며, 현재의 CU (현재의 PU를 포함하는 CU) 의 좌측 열 및 상측 행에서의 이용가능한 재구성된 이웃 픽셀들을 포함한다. 제 2 세트의 픽셀들은 도 4b에 도시되어 있으며, 현재의 CU의 참조 블록의 대응하는 이웃 픽셀들을 포함한다. 현재의 CU의 참조 블록은 현재의 PU의 변이 벡터를 사용하여 찾는다.
Rec neig Rec refig 는 현재의 CU의 사용된 이웃 픽셀 세트 및 그 참조 블록을 각각 나타내며, 2N은 Rec neig Rec refig 의 픽셀 수를 나타낸다. 그러면, ab 는 다음과 같이 계산될 수 있다:
Figure pct00004
일부 경우들에서, a 만 선형 모델에서 사용되며 b 는 항상 0으로 설정된다. 일부 경우들에서는, b 만 사용되고 a 는 항상 1로 설정된다.
HEVC에서, 가중 예측 (WP) 이 지원되며, 이 경우 스케일링 팩터 (a 로 표시), 시프트 수 (s 로 표시) 및 오프셋 (b 로 표시) 이 모션 보상에 사용된다. 참조 화상의 위치 (x, y) 의 픽셀 값을 p(x, y)라고 하면, p (x, y) 대신에 p'(x, y) = ((a*p(x, y) + (1<< (s-1))) >> s) + b 가 모션 보상에서의 예측값으로서 사용된다.
WP가 인에이블될 때, 현재 슬라이스의 각각의 참조 화상에 대해, WP가 참조 화상에 적용되는지 여부를 나타내기 위해 플래그가 시그널링된다. WP가 하나의 참조 화상에 적용되면, WP 파라미터들 (즉, a, sb) 가 디코더로 전송되고 참조 화상로부터의 모션 보상에 사용된다. 일부 예들에서, 루마 및 크로마 성분에 대해 WP를 유연하게 온/오프하기 위해, WP 플래그 및 WP 파라미터들이 루마 및 크로마 성분에 대해 개별적으로 시그널링된다. WP에서는, 하나의 참조 화상에서 모든 픽셀들에 대해 하나의 동일한 세트의 WP 파라미터들이 사용된다.
JVET에서의 로컬 조명 보상 (local illumination compensation, LIC) 과 관련하여, LIC는 스케일링 팩터 a 및 오프셋 b를 사용하여 조도 변경에 대한 선형 모델을 기반으로 한다. 이러한 LIC는 각각의 인터-모드 코딩된 코딩 유닛 (CU) 에 대해 적응적으로 인에이블 또는 디스에이블된다. LIC가 CU에 적용될 때, 최소 제곱 오차 방법은 현재의 CU의 이웃하는 샘플들 및 그들의 대응 참조 샘플들을 사용하여 파라미터들 ab 를 유도하는데 채용된다. 보다 구체적으로, 도 5a 및 도 5b에 도시된 바와 같이, 참조 화상에서 CU의 서브샘플링된 (2:1 서브샘플링) 이웃 샘플들 및 (현재의 CU 또는 서브-CU의 모션 정보에 의해 식별된) 대응 픽셀들이 사용된다. 일부 예들에서, IC 파라미터들은 각 예측 방향에 대해 개별적으로 유도되고 적용된다.
CU가 병합 모드로 코딩되면, 병합 모드의 동작 정보와 유사한 방식으로 LIC 플래그가 이웃 블록들에서 복사되며; 그렇지 않으면 LIC가 적용되는지 여부를 나타내기 위해 CU에 대해 LIC 플래그가 시그널링된다.
오버랩 블록 모션 보상 (Overlapped block motion compensation, OBMC) 은 H.263의 개발에서 제안되었다. 예를 들어, OBMC는 8x8 블록에 대해 수행될 수 있고, 두 개의 연결된 이웃 8x8 블록들의 모션 벡터들은 도 6에 도시된 바와 같이 현재 블록에 대해 사용된다. 예를 들어, 현재 매크로블록의 제 1 8x8 블록에 대해, 자신의 모션 벡터 외에, 상측 및 좌측 이웃 모션 벡터가 또한 생성된 2 개의 추가 예측 블록들에 적용된다. 이러한 방식으로, 현재 8×8 블록의 각 픽셀은 3 개의 예측 값들을 가지며, 이들 3 개의 예측 값들의 가중 평균은 최종 예측으로 사용된다.
이웃 블록이 가용 모션 벡터를 가지지 않는 것을 의미하는, 이웃 블록이 코딩되지 않거나 또는 (인트라-예측을 사용하여) 인트라로 코딩되는 경우, 현재 8x8 블록의 모션 벡터는 이웃 모션 벡터로 사용된다. 한편, (도 6에 도시된 바와 같이) 현재 매크로블록의 제 3 및 제 4 8 × 8 블록들에 대하여, 하측 이웃 블록은 항상 사용되지 않는다. 다른 말로, 각각의 MB에 대해, 아래의 MB들로부터의 모션 정보는 OBMC 동안 현재 MB의 픽셀들을 재구성하는데 사용되지 않을 것이다.
HEVC에서, OBMC는 또한 모든 목적을 위해 그 전체가 본원에 참고로 인용된 US 공개 번호 US2013/0128974 및 US2012/0177120에 기술된 바와 같이 PU 경계를 평활화하기 위해 제안되었다. 제안된 방법의 예는 도 7a 및 도 7b에 도시되어 있다. CU가 2 개 (또는 그 이상) 의 PU들을 포함할 때, PU 경계 근처의 라인들 및/또는 열들은 OBMC에 의해 평활화된다. PU0 또는 PU1에서 “A” 또는 “B”로 표시된 픽셀의 경우, (예를 들어, PU0 및 PU1의 모션 벡터들을 각각 적용함으로써) 두 개의 예측 값들이 생성되고 이들의 가중 평균이 최종 예측으로 사용된다.
JEM (Joint Exploration Test Model) 3.0에서는, 서브-PU 레벨 OBMC가 적용된다. OBMC는 CU의 우측 및 하측 경계들을 제외한 모든 모션 보상된 (Motion Compensated, MC) 블록 경계들에 대해 수행된다. 또한, 루마 및 크로마 성분들 모두에 적용된다. HEVC에서, MC 블록은 PU에 대응한다. JEM에서, PU가 서브-PU 모드로 코딩될 때, PU의 각 서브-블록은 MC 블록이다. 균일한 방식으로 CU/PU 경계들을 처리하기 위해, OBMC는 도 8a 및 도 8b에 도시된 바와 같이, 서브-블록 크기가 4x4와 동일하게 설정되는, 모든 MC 블록 경계들에 대해 서브-블록 레벨에서 수행된다.
OBMC가 현재의 서브-블록에 적용될 때, 현재의 모션 벡터들 외에, 4 개의 연결된 인접 서브-블록들의 모션 벡터들이 이용 가능하고 현재의 모션 벡터와 동일하지 않은 경우, 현재 서브-블록에 대한 예측 블록을 유도하는데 또한 사용된다. 다수의 모션 벡터들에 기초한 이들 다수의 예측 블록들은 현재 서브-블록의 최종 예측 신호를 생성하기 위해 가중화된다.
이웃 서브-블록의 모션 벡터들에 기초한 예측 블록은 P N 으로 표시되고, N은 이웃하는 상측, 하측, 좌측 및 우측 서브-블록들에 대한 인덱스를 나타내며, 그리고 현재 서브-블록에 대한 모션 벡터들에 기초한 예측 블록은 P C 로 표시된다. P N P C 와 동일한 PU에 속할 때 (이로써 동일한 모션 정보를 포함할 때), OBMC는 P N 으로부터 수행되지 않는다. 그렇지 않으면, P N 의 모든 픽셀이 P C 의 동일한 픽셀에 추가되며, 예를 들어 P N 의 네개의 행/열이 P C 에 추가된다. 가중 팩터들 {1/4,1/8,1/16,1/32} 는 P N 에 사용되며 가중 팩터들 {3/4, 7/8, 15/16, 31/32}는 P C 에 사용된다. 예외는 작은 MC 블록들 (즉, PU 크기가 8x4, 4x8과 같거나 PU가 ATMVP 모드로 코딩된 경우) 이며, 이 경우 P N 의 두 행/열만이 P C 에 추가된다. 이 경우, P N 에는 가중 팩터들 {1/4, 1/8}이 사용되고, P C 에는 가중 팩터들 {3/4, 7/8}이 사용된다. 수직 (수평) 이웃 서브-블록의 모션 벡터들에 기초하여 생성된 P N 에 대해, P N 의 동일한 행 (열) 의 픽셀은 동일한 가중 팩터로 P C 에 추가된다. PU 경계들의 경우, 경계의 각면에 OBMC를 적용할 수 있음에 유의한다. 도 8a 및 도 8b에서와 같이, OBMC는 PU1과 PU2 사이의 경계를 따라 2회 적용될 수 있다. 먼저, OBMC는 PU1 내부의 경계를 따라 음영 처리된 블록들에 PU2의 MV로 적용된다. 둘째, OBMC는 PU2의 경계를 따라 음영 처리된 블록들에 PU1의 MV로 적용된다. 반대로, OBMC는 CU 경계들의 일측에만 적용될 수 있는데, 그 이유는 현재의 CU를 코딩할 때 코딩된 CU들을 변경할 수 없기 때문이다.
프레임 레이트 상향-컨버전 (Frame Rate Up-Conversion, FRUC) 기술은 낮은 프레임 레이트의 비디오들을 기반으로 높은 프레임 레이트 비디오들을 생성하는데 사용된다. FRUC는 디스플레이 산업에서 널리 사용되었다. FRUC 알고리즘들은 두 가지 유형들로 나눌 수 있다. 한 가지 유형의 FRUC 방법들은 간단한 프레임 반복 또는 평균화를 통해 중간 프레임들을 보간한다. 그러나, 이 방법은 많은 모션을 포함하는 화상에서 부적절한 결과들을 제공한다. 모션-보상된 FRUC (MC-FRUC) 라 불리는 다른 유형의 FRUC 방법들은 중간 프레임들을 생성할 때 오브젝트 이동을 고려하며 두 단계를 포함한다: (1) 모션 추정 (ME) 및 (2) 모션 보상된 보간 (MCI). ME는 벡터를 사용하여 오브젝트 모션을 나타내는 모션 벡터 (MV) 들을 생성하는 반면, MCI는 중간 프레임을 생성하기 위해 MV들을 사용한다.
블록 매칭 알고리즘 (BMA) 은 구현이 간단하기 때문에 MC-FRUC에서의 ME에 대해 널리 사용된다. BMA는 이미지를 블록들로 분할하고 이들 블록들의 이동을 검출한다. BMA에 대해 주로 일방적인 ME와 양자간 ME를 포함하여 두 종류의 ME가 사용된다.
도 9는 FRUC에서의 일방적인 ME를 나타낸다. 도 9에 도시된 바와 같이, 일방적인 ME는 현재 프레임의 참조 프레임으로부터 최상의 매칭 블록을 검색함으로써 MV들을 얻는다. 그후, 보간된 프레임에서 모션 궤도에 있는 블록을 배치하여 MV가 달성되도록 할 수 있다. 도 9에 도시된 바와 같이, 3 개의 프레임들에서의 3 개의 블록들은 모션 궤도를 따라 진행된다. 현재 프레임 내의 블록이 코딩된 블록에 속하더라도, 참조 프레임에서의 최상의 매칭 블록은 코딩된 블록에 완전히 속하지 않을 수 있으며; 일부 경우들에서는, 보간된 프레임에서의 블록도 마찬가지이다. 결과적으로, 블록들의 오버랩된 영역들 및 채워지지 않은 (홀) 영역들이 보간된 프레임에서 발생할 수 있다.
오버랩을 취급하기 위해, 간단한 FRUC 알고리즘은 단지 오버랩된 픽셀들을 평균화하고 오버라이팅하는 것을 수반한다. 또한, 홀들은 참조 또는 현재 프레임으로부터의 픽셀 값들에 의해 커버된다. 하지만, 이들 알고리즘들은 블로킹 아티팩트들 및 블러링을 초래한다. 이로인해, 모션 필드 분할, 이산 Hartley 변환을 이용한 연속적인 외삽, 및 이미지 인페인팅은 블로킹 아티팩트들 및 블러링을 증가시키지 않으면서 홀들 및 오버랩을 취급하도록 제안된다.
도 10은 FRUC에서의 양자간 ME를 나타낸다. 도 10에 도시된 바와 같이, 양자간 ME는 오버랩들 및 홀들에 의해 야기되는 문제들을 피하기 위해 사용될 수 있는 (MC-FRUC에서의) 또 다른 해결책이다. 양자간 ME는 참조 프레임과 현재 프레임의 블록들 사이의 시간 대칭성을 사용하여 중간 프레임의 블록을 통과하는 MV들을 얻는다. 결과적으로, 오버랩들과 홀들을 생성시키지 않는다. 현재의 블록이 예를 들어 비디오 코딩의 경우처럼 어떤 순서로 처리되고 있는 블록이라고 가정하므로, 그러한 블록들의 시퀀스는 오버랩없이 전체 중간 화상을 커버할 것이다. 예를 들어, 비디오 코딩의 경우, 블록들은 디코딩 순서로 처리될 수 있다. 따라서, 일부 예들에서, FRUC 아이디어가 비디오 코딩 프레임워크에서 고려될 수 있는 경우, 그러한 방법이 보다 적합할 수 있다.
디코더측 모션 벡터 유도가 또한 수행될 수 있다. 고급 비디오 코덱들로 인해, 비트스트림에서 모션 정보의 더 나은 비트 백분율을 얻을 수 있다. 모션 정보의 비트 비용을 줄이기 위해, 디코더측 모션 벡터 유도 (Decoder side Motion Vector Derivation, DMVD) 가 제안되었다.
템플릿 매칭 기반의 DMVD는 양호한 코딩 효율 향상을 보여준다. 도 11a 및 도 11b는 DMVD에 기반한 템플릿 매칭의 아이디어를 나타낸다. 디코더에서 현재의 블록인, 예측 타겟에 대한 최상의 매치를 검색하는 대신에, 참조 프레임에서 템플릿의 최상의 매치가 검색된다. 템플릿과 예측 타겟이 동일한 오브젝트로부터의 것이라고 가정하면, 템플릿의 모션 벡터는 예측 타겟의 모션 벡터로서 사용될 수 있다. 템플릿 매칭은 인코더와 디코더 모두에서 수행되기 때문에, 시그널링 비용을 피하기 위해 디코더 측에서는 모션 벡터를 유도할 수 있다.
DMVD의 다른 카테고리는 미러 기반의 양방향 MV 유도이다. 이 아이디어는 FRUC에서의 양자간 ME와 유사하다. 미러 기반의 MV 유도는 부분 샘플 정확도에서 검색 중심들을 중심으로 한 중심-대칭적 모션 추정에 의해 적용된다. 검색 윈도우의 크기 및/또는 위치는 미리 정의될 수 있고 비트 스트림으로 시그널링될 수 있다. 도 12는 DMVD에서 미러 기반의 양방향 MV 유도를 나타낸다. 도 12의 dMV라는 용어는 PMV0에 더해지고 PMV1에서 빼서 MV 쌍, MV0 및 MV1을 생성하는 오프셋이다. 검색 윈도우 안의 dMV의 모든 값들이 체크될 것이고 L0 참조 블록과 L1 참조 블록 간의 절대차의 합 (SAD, Sum of Absolute Difference) 이 중심-대칭성 모션 추정의 측정으로 사용된다. 최소 SAD를 갖는 MV 쌍이 중심-대칭성 모션 추정의 출력으로 선택된다. 이 방법은 SAD 매칭에 대한 미래의 참조 (현재의 프레임보다 더 이후의 시간적 위치에서의 참조) 및 더 이전의 참조 (현재의 프레임보다 더 이전의 시간적 위치에서의 참조) 를 필요로 하므로, 그것은 오직 전자의 참조가 이용가능한 P 프레임 또는 낮은-지연 B 프레임들에 적용될 수 없다.
일부 경우들에서, 미러 기반의 양방향 MV 유도와 HEVC에서의 병합 모드를 조합하는 것이 제안되어 왔다. 예를 들어, DMVD 모드가 현재의 PU 에 적용되는지를 나타내기 위해 B 슬라이스들의 PU에 대해 PU_dmvd_flag 라 불리는 플래그가 추가된다. 도 13은 pu_dmvd_flag가 추가되는 PU 디코딩의 흐름도이다. DMVD 모드는 명시적으로 비트스트림에서 임의의 MV 정보를 송신하지 않으므로, HEVC 코딩 프로세스에서 pu_dmvd_flag를 병합 모드의 신택스와 통합하는 디코딩 프로세스가 도 13에 도시된 바와 같이 제공된다.
전술한 하나 이상의 기법에는 다양한 문제들이 존재한다. 예를 들어, 기존의 LIC 알고리즘들에서, 양방향 모션 보상 동안, LIC 파라미터들은 예측자에 대한 공동 영향을 고려하지 않고 Ref0 및 Ref1과 독립적으로 유도된다. 예를 들어, 양방향 경우에서, 별도의 LIC-보상된 예측 패치들이 결정되고, 동일한 가중치 (0.5) 가 LIC-보상된 예측 패치들을 조합하여 최종 양방향 예측자를 생성하는데 사용된다. 또한, 기존의 LIC 알고리즘에서는, LIC 파라미터들을 유도하는데 단일 행 및 단일 열의 서브세트만이 LIC 파라미터들을 유도하는데 사용되고, 이는 차선책으로 이어질 수 있다. 또한, 기존의 LIC 알고리즘에서, 정수-위치의 픽셀들은 필터링없이 (부분-펠 정확도없이) LIC 파라미터들을 유도하는데 사용되며, 이는 잡음이 있는 재구성된 픽셀들로 인해 차선의 파라미터들의 생성으로 이어질 수 있다. 또한, LIC가 인에이블되는 경우, OBMC는 또한 양방향 예측 (bi-predictive) 모션 보상을 위해 인에이블되고, 이는 블록들의 경계 픽셀들을 지나치게 평활화하는 것으로 이어질 수 있다.
전술한 문제들을 해결하기 위해 다양한 기법이 본원에 설명된다. 일부 경우들에서, 본원에 기재된 기법들은 개별적으로 적용될 수 있다. 어떤 경우에는, 본원에 기재된 기법들의 임의의 조합이 적용될 수 있다. 이 애플리케이션에서는, 일부 경우들에서, 참조 인덱스 정보가 모션 정보의 일부로 간주된다. 일부 예들에서, 이들은 공동으로 모션 정보의 세트로 불린다.
일부 예들에서, 다수의 참조 화상들의 템플릿들에 기초하여 화상의 블록에 대한 하나 이상의 로컬 조명 보상 (LIC) 파라미터들을 유도하기 위한 방법들 및 시스템들이 본원에 설명된다. 인코더 및 디코더 모두는 동일한 절차를 따라 본원에 설명된 기법들을 사용하여 조도 보상 파라미터들을 유도할 수 있다. 예를 들어, 인코더 및 디코더 모두는 파라미터들이 비트스트림에서 (예를 들어, 디코더로) 시그널링될 필요없이 동일한 절차를 사용하거나 또는 다른 시그널링 메카니즘을 사용하여 가중치 (또는 스케일링 팩터) 및 오프셋을 유도할 수 있다. 일부 경우들에서, 인코더 및 디코더 LIC 파라미터 유도의 유일한 차이점은, 인코더 측에서는 LIC 스위치와 모션 검색 간의 공동 최적화를 수행해야 할 수도 있다는 것이다. 일부 예들에서, 철저한 검색을 사용할 수 있다.
본원에 설명된 LIC 방법은 양방향 예측 모션 보상을 위한 LIC 파라미터들을 해결하기 위한 대안적인 방법을 포함한다. 예를 들어, 양방향 예측 보상 동안, LIC 파라미터들은 참조 화상 리스트 0 (RefPicList0) 으로부터의 제 1 참조 화상의 블록 (Ref0) 및 참조 화상 리스트 1 (RefPicList1) 로부터의 제 2 참조 화상의 블록 (Ref1) 모두의 템플릿을 동시에 고려함으로써 유도될 수 있다. 일 예에서, 제 1 참조 화상의 제 1 템플릿 및 제 2 참조 화상의 제 2 템플릿은 하나 이상의 로컬 조명 보상 파라미터들을 유도하기 위해 동시에 사용된다. 이러한 기술은 예측자에 대한 공동 영향을 고려하지 않고 Ref0 및 Ref1과 독립적으로 LIC 파라미터들을 유도하는 기존 기법들보다 더 최적의 예측자를 제공한다. 예를 들어, 기존 LIC 해를 사용하면, LIC 파라미터들은 현재 재구성된 프레임과 참조 프레임 사이의 이웃 픽셀들에 의해 형성된 한 쌍의 데이터 세트들의 해를 구함으로써 유도된다. 양방향 예측 모션 보상에서, 별도의 비용 함수들을 사용하여, 기존 LIC 해의 계산이 L0 및 L1의 참조 블록들에 대해 개별적으로 수행된다. LIC 보상된 예측자들을 결합하려면 동일한 가중의 2중 평균화 연산을 사용해야 한다. Ref0 및 Ref1에 대해 LIC 파라미터들을 개별적으로 유도하는 것은 2 개의 참조 프레임들의 현재 프레임에 대한 시간적 거리가 동일하지 않을 때 문제가 될 수 있다. 또한, 불균일한 조도 변화가 시간적으로 존재할 때, LIC 파라미터의 동등-유도는 양방향 예측에 관해서 차선의 파라미터를 초래할 수 있다.
도 14는 LIC 파라미터들의 템플릿-기반의 유도를 나타낸 다이어그램이다. 현재 블록 (1402) 은 모션 보상이 수행되고 있는 현재 화상의 블록이다. 참조 화상 블록 (1404) 은 참조 화상 리스트 0 (RefPicList0) 의 제 1 참조 화상의 블록 (Ref0) 이며, 참조 화상 블록 (1406) 은 참조 화상 리스트 1 (RefPicList1) 의 제 2 참조 화상의 블록 (Ref1) 이다. 용어 P0는 Ref0의 템플릿 영역을 나타내고, 용어 P1은 Ref1의 템플릿 영역을 각각 나타낸다. 용어 Ni 는 현재 블록 (1402) 의 템플릿 영역을 나타낸다. 템플릿 (Ni) 내의 샘플들은 현재 블록 (1402) 에 이웃하는 재구성된 프레임의 재구성된 블록의 일부이다.
조도 보상 파라미터들은 오프셋, 하나 이상의 가중치들, 시프트 수, 또는 다른 적합한 조도 보상 파라미터들을 포함할 수 있다. 가중치는 또한 스케일링 팩터라고도 할 수 있다. 예를 들어, 제 1 참조 화상 및 제 2 참조 화상의 템플릿을 사용함으로써, 하나 이상의 가중치들은 제 1 참조 화상의 템플릿에 대한 제 1 가중치 및 제 2 참조 화상의 템플릿에 대한 제 2 가중치를 포함할 수 있다.
일부 구현예들에서, 선형 최소 제곱 회귀 (linear least square regression) 는 양방향 예측 모션 보상에서 LIC 파라미터들을 추정하는데 사용될 수 있다. 일 예에서, LIC 파라미터들의 유도는 아래의 최소 제곱 등식 (예를 들어, 아래의 등식 (5)-(6) 또는 등식 (5) 및 (11)) 을 사용하여 비용 함수 (예를 들어, 아래의 등식 (4) 또는 등식 (10)) 를 푸는 것에 의해 수행될 수 있다. 예를 들어, 현재 블록의 하나 이상의 이웃 블록들로부터의 샘플들의 서브세트는 LIC 파라미터들을 유도하는데 사용될 수 있다. 현재 블록의 이웃 블록들로부터의 샘플들은 현재 블록 (1402) 에서 가능한 조도 변화들을 발견하는데 사용될 수 있는데, 왜냐하면 (이웃 블록들에서의) 이웃 샘플들과 (현재 블록 (1402) 에서의) 현재 샘플들 간에 강한 상관이 있는 것으로 가정할 수 있기 때문이다. 예를 들어, 동일한 모션 정보를 공유하는 현재 블록과 이웃 블록은 매우 유사한 조도 값들을 포함해야 한다고 가정할 수 있다. 이웃 샘플들을 사용하는 또 다른 이유는 현재 블록이 아직 예측되지 않았으며 현재 블록에서 사용할 픽셀이 없을 수 있기 때문이며, 이 경우 (재구성된) 이웃 샘플들은 현재 블록의 모션 보상을 위해 템플릿 매칭을 수행하는데 사용될 수 있다.
하나의 예시적인 예에서, 상측 이웃, 좌측 이웃, 또는 상측 이웃과 좌측 이웃 모두가 사용될 수 있다. 예를 들어, 도 14에 도시된 템플릿 Ni 는 현재 블록 (1402) 의 상측 이웃 및 좌측 이웃으로부터의 샘플들의 서브세트를 포함할 수 있다. 도 14에 도시된 템플릿 (P0) 은 참조 블록 (1404) 의 상측 이웃 및 좌측 이웃으로부터의 픽셀 서브세트를 포함할 수 있고, 템플릿 (P1) 은 참조 블록 (1406) 의 상측 이웃 및 좌측 이웃으로부터의 픽셀의 서브세트를 포함할 수 있다. 템플릿들 (P0와 P1) 에 사용된 이웃 블록들의 샘플들은 템플릿 (Ni) 에서 사용된 이웃 샘플들에 대응하는 샘플들을 포함할 수 있다. 일부 경우들에서, 템플릿들 (P0와 P1) 에 사용된 대응 샘플들은 현재 블록의 모션 정보에 의해 식별될 수 있다. 디코더측에서의 하나의 예시적인 예에서, 모션 벡터들은 병합 모드, FRUC 병합 모드, 또는 정규 AMVP 모드 중 어느 하나를 통해 비트스트림으로 시그널링될 수 있다. 디코더는 모션 정보 (예를 들어, 모션 벡터들 및 참조 인덱스들) 및 참조 화상 오더 카운트 (POC) 를 재구성할 수 있다. 디코더는 참조 인덱스들을 사용하여 참조 화상들을 식별할 수 있고, 그리고 모션 벡터들을 사용하여 참조 화상들 내의 참조 블록들 (1404 및 1406) 을 식별할 수 있다. 디코더는 그후 참조 블록들 (1404 및 1406) 의 연관된 템플릿 영역들 (P0 및 P1) 을 유도할 수 있다. 예를 들어, 참조 블록들 (1404 및 1406) 이 참조 화상들에서 결정되면, 이웃 블록들로부터의 상측 및 좌측 이웃 샘플들 (예를 들어, 하나 이상의 행들 및 하나 이상의 열들) 이 템플릿 영역들 (P0 및 P1) 로서 결정될 수 있다. 이러한 기법은 FRUC 템플릿 매칭과는 다르며, 현재 블록의 템플릿이 먼저 결정되고, 그후 템플릿은 주어진 참조 프레임들에서 모션 벡터들을 검색하는데 사용된다.
일부 예에서, 양방향 예측 LIC 에 대한 가중치를 풀기 위해, 이하의 비용 함수가 고려된다:
Figure pct00005
식 (4)
여기서
Figure pct00006
는 레귤러리제이션 파라미터 (regularization parameter) 이고, 항 Ni 는 현재의 재구성된 프레임 (예를 들어, 도 14에 도시된 현재의 블록 (1402) 의 템플릿 Ni) 에서 현재의 블록의 상측 이웃 픽셀 및/또는 좌측 이웃 픽셀이고, 항 P0,i 및 P1,i 는 각각, List0 및 List1의 참조 프레임들에서의 참조된 블록 (예를 들어, 도 14 에 도시된 참조 블록 (1404) 의 템플릿 P0 및 참조 블록 (1406) 의 템플릿 P1) 에서 참조된 블록의 상측 및/또는 좌측 이웃 픽셀들이고, 항 i 는 템플릿 영역 내의 픽셀 인덱스이며, 항 N 은 템플릿 영역에서의 픽셀들 (Ni, P0, 및/또는 P1) 의 전체 수이다.
항 o는 오프셋이고 항 w0 및 w1 은 가중치이다. 가중치 w0 및 w1 및 오프셋 o는 일련의 화상에서의 일루미네이션 변화에 의해 유발된 불일치를 보상하는데 사용된다. 예를 들어, 오프셋 o 는 2개의 참조 프레임들을 동시에 고려함으로써 평균 루미넌스 변화를 나타낼 수 있다. 가중치 w0 은 도 14에 도시된 템플릿 P0 에서의 샘플들인 (List0 로부터의) 참조 블록 (1404) 으로부터 생성된 예측 샘플들과 곱해진다. 가중치 w1 은 도 14에 도시된 템플릿 P1 에서의 샘플들인 (List1 로부터의) 참조 블록 (1406) 으로부터 생성된 예측 샘플들과 곱해진다. 가중치 w0 및 w1 은 조정 가능한 파라미터이며 화상의 특정 특성에 기초한다. 예를 들어, 가중치 w0 및 w1 은 화상이 더 밝아지거나 또는 더 어두워지는지 여부, 또는 다른 특성들에 기초하여, 현재의 화상을 예측하는데 사용되는 참조 화상의 시간적 거리에 기초할 수 있다. 일 예에서, 2 개의 참조 화상이 있으며, 제 1 참조 화상이 제 2 참조 화상보다 현재의 화상에 더 가까이 놓여있다면, 모션 보상이 수행되는 현재의 블록에 대한 더 나은 예측 예들을 구하기 위해 상이한 가중치가 이들 2 개의 상이한 참조 화상에 적용될 수 있다. 예를 들어, (현재의 화상에 더 가까운) 제 1 참조 화상의 샘플들에 적용되는 가중치보다 더 작은 가중치가 (현재의 화상으로부터 멀리 떨어져 있는) 제 2 참조 화상의 샘플들에 적용될 수 있다. 다른 예에서, 루미넌스 변화가 더 적은 샘플들에 더 높은 가중치가 적용될 수 있다. 예를 들어, 아래의 등식 (6) 에 의해 보여지는 바처럼, 이웃 샘플들로부터 제 1 참조 프레임의 예측 샘플들로 상호 상관 (cross correlation) 이 취해지고, 참조 프레임이 더 멀리 떨어져 있고 제 1 참조 프레임의 이웃 샘플들이 제 2 참조 프레임의 이웃 샘플들보다 더 어둡다면, 가중치는 더 작아질 수 있다. 최종 예측은 등식 (9) 에 따라 생성된다.
등식 (4) 는 가중치 w0 및 w1의 값과 오프셋 o를 얻기 위해 보통의 선형 최소 제곱 회귀를 사용하여 풀어질 수 있다. 예를 들어, 선형 최소 제곱 회귀를 사용하여 등식 (4) 를 푸는 것에 의해, 등식 (4) 의 해가 다음과 같이 구해질 수 있다:
Figure pct00007
식 (5)
따라서, 가중치와 오프셋은 등식 (5) 를 푸는 것에 의해 구해질 수 있다. 일부 경우에, 최소 제곱 해의 결정자 (등식 (5) 에서의 항
Figure pct00008
) 가 0 인 경우, (동시에 두 개의 참조 블록을 사용하는) 양방향 LIC 대신 (한 번에 하나의 참조 블록 사용하는) 단방향 LIC를 사용할 수 있다. 일부 경우에, 과보상을 피하기 위해, 등식 (5) 에서의 오프셋 o 이 더 제약될 수 있다. 값들의 일례는 오프셋이 [-2BD, 2BD-1] 의 범위로 제한될 수 있는 비트 깊이 (BD) 와 연관될 수 있다.
등식 (5) 에서, N 은 분석되고 있는 템플릿에서의 픽셀들 (Ni, P0, 및/또는 P1) 의 수이고, 항들 {a, b, c, d, e} 은 다음과 같이 정의된다:
Figure pct00009
식 (6)
항 a 및 c 는 각각 템플릿 P0 및 템플리트 P1 로부터의 샘플들에 걸친 분산을 나타낸다. 예를 들어, 항 a 는 참조 블록 (1404) (Ref0) 에 대한 템플릿 P0 의 예측 샘플의 분산을 나타내고, 항 c 는 참조 블록 (1406) (Ref1) 에 대한 템플릿 P1의 예측 샘플의 분산을 나타낸다. a 를 예로 들면, 템플릿 P0 으로부터의 샘플 값 P0,i 가 제곱되고 템플릿 P0 에서의 샘플들의 평균이 제곱된 샘플 값 P0,i 으로부터 감산되고, 이는 샘플 값 P0,i 의 분산을 제공한다. 평균은, 템플릿 P0 에서의 모든 샘플의 합을 제곱하고, 템플릿 P0 에서의 총 샘플 수로 나눈 것으로 표시된다. 레귤러레이션 파라미터
Figure pct00010
는 또한, 아래에 설명된대로 (항 a-e 의 각각에 대해) 사용된다. 항 c 의 정의는 항 a의 정의와 유사하지만, 템플릿 P1 으로부터의 샘플 값 P1,i 에 대한 것이다.
항 b 는 P0 및 P1에서 대응 샘플들의 공분산 (또는 경우에 따라 교차 상관) 과 관련된다. 항 d 는 템플릿 P0 에서의 샘플들과 템플릿 Ni 에서의 대응 샘플들 사이의 공분산 (또는 경우에 따라 교차 상관) 과 관련된다. 유사하게, 항 e는 템플릿 P1 에서의 샘플들과 템플릿 Ni 에서의 대응 샘플들 사이의 교차 상관과 관련된다. 등식 (5) 에 보여진 바처럼, 항들 a, b, c, d 및 e 에 기초하여 가중치 w0 및 w1 이 결정된다. 가중치 w0 및 w1은 (현재의 블록의) 현재의 이웃 샘플들과 참조 블록들의 참조된 이웃들 사이의 유사성의 척도를 나타낸다. 다른 참조된 이웃들의 분산이 높거나, 참조된 이웃들과 현재의 이웃들 사이의 공분산이 높으면, 가중치는 더 높다. 2개의 참조된 이웃들의 공분산이 높거나, 현재의 이웃과 참조된 이웃들 사이의 공분산이 높으면, 가중 팩터는 더 낮다.
등식 (6) 은 다음과 같이 다시 쓰여질 수 있다:
Figure pct00011
식 (6)’
레귤러리제이션 파라미터
Figure pct00012
의 값은 양의 값으로 선택될 수 있다:
Figure pct00013
식 (7)
여기서, k 는 절대 값이 1보다 작은 스케일링 팩터이다. 대안적으로,
Figure pct00014
는 두 제곱들의 합의 최대치로 선택될 수 있다:
Figure pct00015
식 (8)
최종 예측 샘플은 다음에 의해 작성된다:
Figure pct00016
식 (9)
최종 예측 샘플 P (x,y) 는 현재의 블록 (1402) 내의 위치 (x,y) 에서 샘플에 사용될 샘플 값을 나타낸다. 본 명세서에 설명된 바와 같이, LIC 의 적용은 종래의 양방향 예측 모션 보상에 통합될 수 있다. 최적의 가중치를 구하기 위해 템플릿 기반 검색을 고려할 때, 등식 (9) 는 여전히 양방향 예측 모션 보상 동안 최적의 가중치를 적용하는데 사용될 수 있다.
일부 예에서, LIC 파라미터를 유도하기 위한 하나보다 많은 유도 방법이 수행될 수 있다. 그러한 예에서, 인코더 또는 다른 송신기측 디바이스는 시퀀스 레벨 (예를 들어, VPS 및/또는 SPS 에서), 화상 레벨 (예를 들어, PPS 에서), 슬라이스 레벨 (예를 들어, 슬라이스 헤더에서), CTU 레벨에서, CU 레벨에서, PU 레벨에서, 또는 이들의 조합, 또는 다른 적합한 시그널링 레벨에서 어느 유도 방법이 사용되야 하는지 디코더에 시그널링할 수 있다.
사용되는 대안의 비용 함수의 다른 예시적인 예는 다음과 같이 정의된다:
Figure pct00017
식 (10)
등식 (10) 에서의 비용 함수에 대한 선형 최소 제곱 해는 등식 (5) 와 유사한 형태를 갖지만, {a, b, c, d, e} 에서의 각 항에 대해 다른 정의를 갖는다:
Figure pct00018
식 (11)
보다 일반적으로, 등식 (10) 은 다음과 같이 정의될 수 있다:
Figure pct00019
식 (12)
Figure pct00020
Figure pct00021
의 값은 임의의 적합한 값으로 설정될 수 있고, 화상 레벨, 슬라이스 레벨, 블록 레벨 또는 블록들의 그룹 레벨과 같은 상이한 레벨로 비트스트림에서 시그널링될 수 있다. 일례로서, 슬라이스 헤더에서 시그널링된 가중 예측 파라미터는
Figure pct00022
Figure pct00023
의 값을 유도하는데 사용될 수 있다. 등식 (10) 에서의 예시적 비용 함수는
Figure pct00024
Figure pct00025
항들 양자 모두에 대해 0.5의 값을 사용한다. 그러나, 이러한 항들은 구성 가능하며 임의의 적절한 값으로 설정될 수 있다.
일부 예에서, 최소 제곱 해는 이웃 (예를 들어, 상측 이웃, 좌측 이웃, 상측 및 좌측 이웃 모두, 또는 다른 이웃들 중 어느 일방) 으로부터 템플릿의 다수의 라인 및/또는 열에 기초하여 계산될 수 있다. 예시적인 수 (및 경우에 따라, 전형적인 수) 의 라인 및/또는 열은 1, 2, 4 또는 임의의 다른 적절한 개수의 행 및/또는 열을 포함한다. 예를 들어, 현재의 블록 (1402) 의 좌측 이웃으로부터의 샘플들의 하나보다 많은 라인 및/또는 열, 및 현재의 블록 (1402) 의 상측 이웃으로부터의 샘플들 중 하나보다 많은 라인 및/또는 열이 템플릿 Ni 에 포함될 수 있다. 그러한 경우들에서, 템플릿 P0 및 P1 에서 샘플들의 대응하는 수의 라인들 및/또는 열들이 있을 것이다. 하나의 예시적인 예에서, 템플릿 Ni 는 현재의 블록 (1402) 의 좌측 이웃 블록으로부터 2개 열들의 픽셀 및 현재의 블록 (1402) 의 상측 이웃 블록으로부터의 2개 행의 픽셀을 포함할 수 있다. 그러한 예에서, 템플릿 P0 는 참조 블록 (1404) 의 좌측 이웃 블록으로부터 2개 열의 픽셀 및 참조 블록 (1404) 의 상측 이웃 블록으로부터의 2개 행의 픽셀을 포함할 수 있다. 유사하게, 그러한 예에서, 템플릿 P1 은 참조 블록 (1406) 의 좌측 이웃 블록으로부터 2개 열의 픽셀 및 참조 블록 (1406) 의 상측 이웃 블록으로부터의 2개 행의 픽셀을 포함할 수 있다.
위의 등식 4-11 은 템플릿에 다수의 라인 및/또는 열이 포함될 때 수정될 수도 있다. 예를 들어, 템플릿 영역에서의 픽셀 수 (항 N) 은 템플릿에서의 라인 및/또는 열의 수에 기초하여, 변화된다. 예를 들어, 블록이 16x16 블록 (픽셀의 16개 행 x 픽셀의 16 개 열) 인 경우, 그리고 상측 이웃 블록으로부터의 2개 라인과 좌측 이웃 블록으로부터의 2개 열이 사용되는 경우, Ni 템플릿에는 64 개의 샘플이 포함된다 (좌측 이웃 블록으로부터의 32개의 샘플 및 상측 이웃 블록으로부터의 32개의 샘플), 그리고 N의 값은 64 가 될 것이다. 이러한 예에서, P0 및 P1 템플릿에는 또한 64개의 샘플이 포함될 것이다.
경우에 따라, 정수 위치 샘플 (또는 픽셀) 이 LIC 파라미터의 유도에 사용된다. 경우에 따라, 분수 위치 샘플이 LIC 파라미터의 유도에 사용된다. 경우에 따라, 정수 위치 샘플과 분수 위치 샘플을 모두 사용할 수 있다. 예를 들어, 화상들 사이에서 움직이는 오브젝트의 실제 변위는 연속적이며 비디오 시퀀스에서 화상의 샘플링 격자를 따르지 않는 경향이 있다. 이 때문에, 정수 정확도 대신 모션 벡터에 분수 정확도를 사용할 수 있어, 잔차 에러가 줄어들고 비디오 코더의 코딩 효율이 증가된다. 모션 벡터가 분수 값을 갖는다면, 참조 블록은 그에 따라 보간될 필요가 있다. 예를 들어, 현재의 블록의 샘플에 대한 모션 벡터는 참조 블록에서 분수-펠 위치를 가리킬 수 있다. 분수-펠 위치는 블록 내의 분수 샘플 위치 (비-정수 위치) 에서의 샘플 (예를 들어, 루마 샘플) 을 나타낸다. 이러한 위치들은 보간에 의해 생성될 필요가 있다. 분수-위치 샘플들이 사용될 때 일례에서, 템플릿의 보간 또는 필터링된 버전 (예를 들어, P0 또는 P1) 은 LIC 파라미터를 유도할 때 재구성된 픽셀로부터의 양자화 에러를 감소시키는데 사용될 수 있다. 이러한 보간된 템플릿의 버전은 하나 이상의 보간 필터를 사용하여 생성될 수 있다. 예를 들어, 현재의 블록의 모션 벡터가 참조 프레임에서 분수-펠 위치를 가리키는 경우, 보간 필터가 LIC 파라미터를 유도하기 전에 템플릿에 대한 샘플의 더 나은 세트를 생성하는데 사용될 수 있다. 예를 들어, 사용된 보간 필터의 타입은 바이-리니어 (bi-linear) 보간 필터, HEVC 표준에 정의된 8-탭 보간 필터, 또는 임의의 다른 적절한 필터를 포함할 수 있지만, 이에 한정되는 것은 아니다. 현재의 조명 보상 해들은 분수 펠 위치 샘플들을 사용하지 않는다. 예를 들어, 현재의 해를 사용하여, 모션 벡터가 분수 펠 위치를 가리킨다고 가정하면, LIC 유도에서 사용될 예측자의 값이 가장 가까운 정수 참조 샘플 위치로 반올림되고, 다음으로 결과 샘플들이 LIC 파라미터를 유도하는데 사용된다.
일례에서, 템플릿 (P0 및 P1) 으로부터의 일부 샘플은 아웃라이어로 결정될 수 있고 제외될 수 있다. 예를 들어, 최소 제곱 해는 아웃라이어를 제외한 샘플들에 기초하여 계산될 수 있다. 일부 구현들에서, 디코딩된 또는 유도된 샘플 값 범위(들) (또는 임계치) 들이 아웃라이어를 제거하기 위해 적용될 수 있다. 그 범위는 아웃라이어 임계치 범위라고 할 수 있다. 값이 범위 내에 있지 않은 샘플은 제거할 수 있으며, 최소 제곱 해는 값이 범위 내에 있는 샘플에 기초하여 계산된다. 하나의 예시적인 예에서, 8 비트 픽셀 값이 사용될 수 있으며, 이 경우에 픽셀 값은 0-255 일 수 있다. 경우에 따라, 주어진 화상에서의 픽셀 값에는 16-235 사이의 픽셀 값의 서브세트와 같이 사용 가능한 모든 값의 서브세트가 포함될 수 있다. 주어진 화상에서 사용된 값들의 서브세트는 아웃라이어를 제외하기 위한 범위로서 사용될 수 있다. 범위를 벗어나는 임의의 샘플 값은 아웃라이어로 결정될 수 있으며 위의 등식을 사용하여 LIC 파라미터들을 유도하기 전에 템플릿으로부터 제거될 수 있다. 또 다른 예시적인 예에서, 템플릿 내의 샘플 값의 평균값이 계산될 수 있으며, 그 범위는 평균으로부터의 x 표준 편차를 포함할 수 있다. x 항은 (3 표준 편차에 대해) 3, 4, 5 또는 다른 적절한 값과 같은 임의의 적절한 값으로 설정될 수 있다. 평균으로부터의 x 표준 편차를 넘는 임의의 샘플이 제외될 수 있다. 범위는 슬라이스 레벨, 화상 레벨, 블록 레벨 등과 같이 디코더에 시그널링될 수 있다.
일부 예에서, 루마 성분만이 Ref0 및 Ref1 양자 모두에 대한 LIC 파라미터를 공동으로 최적화하는데 사용될 필요가 있다. 대안적으로, 루마 및 크로마 성분들은 양방향 예측 LIC 파라미터의 유도 동안에 고려될 수 있다. 인코더는 하나 이상의 크로마 성분들에 LIC를 적용할지 여부 또는 LIC를 루마 성분들에만 적용할지 여부를 (파라미터 세트에서, SEI 메시지 또는 다른 적절한 시그널링 메커니즘에서) 디코더에 시그널링할 수 있다.
경우에 따라, FRUC 양측 매칭이 인에이블될 때, 양방향 예측 LIC 유도를 건너뛸 수 있고 시스템은 단방향 LIC 로 진행할 수 있다. 경우에 따라, FRUC 및 양측 (템플릿 기반) LIC 를 함께 사용할 수 있다.
일부 예들에서, 전술한 오버랩 블록 모션 보상 (OBMC) 기술은 LIC (예를 들어, 양방향 예측 및/또는 단방향 예측 LIC) 가 인에이블될 때 분리 사용될 수 있다. 예를 들어, 경우에 따라, 블록에 대해 LIC가 인에이블되는 경우, OBMC가 블록에 대해 디스에이블된다. 또 다른 예에서, LIC가 인에이블되면, OBMC는 B 타입 슬라이스에 대해서만 디스에이블된다. 이러한 예들에서, OBMC 플래그 및 IC 플래그 (예를 들어, 파라미터 세트의 신택스에서, 헤더에서, SEI 메시지에서 등) 는 P-타입 슬라이스에서의 블록들에 대해서만 함께 인에이블될 수 있다. 또 다른 예에서, LIC가 인에이블되면, OBMC는 양방향 예측된 블록들에 대해서만 디스에이블된다. 이러한 예들에서, OBMC 및 IC 기술들은 단방향 예측 블록들에 대해서만 동시에 적용될 수 있다.
또한, OBMC 가 적용되는지 여부를 나타내기 위해 (예를 들어, 파라미터 세트의 신택스에서, 헤더에서, SEI 메시지에서 등) 플래그가 사용되는 경우, 연관된 OBMC 플래그는 OBMC 및 LIC 가 블록, 슬라이스, 화상 등에 대해 함께 인에이블될 수 없을 때 전송되지 않아야 한다. 유사하게, 제약은 OBMC 플래그가 먼저 시그널링되는 경우에 LIC 플래그에 적용될 수 있다.
도 15 는 개선된 시그널링 (블록 1502 및 1508-1518) 에 대한 흐름도뿐만 아니라 IC 와 OBMC 플래그 사이의 기존 시그널링 (블록 1504 및 1506) 에 대한 프로세스 (1500) 을 도시한다. 위의 예 1, 예 2 또는 예 3 을 사용하면 기존의 기법보다 낮은 인코딩 복잡성 및 보다 나은 코딩 효율을 달성할 수 있다는 것이 제안된다. 예를 들어, 블록 (1502) 에서, 프로세스 (1500) 는 현재의 블록에 대한 모션 벡터 및 참조 인덱스를 시그널링한다. 기존 기술들을 사용하여, OBMC 플래그 (블록 1504에서) 및 IC 플래그 (블록 1506에서) 에서 시그널링된다. 그러나, 예 1에서, 프로세스 (1500) 는 IC 플래그가 블록 (1508) 에서 시그널링되는지 여부를 체크한다. IC 플래그가 시그널링되면, OBMC 플래그는 시그널링되지 않는다. 그러나, IC 플래그가 시그널링되지 않으면, 블록 1510 에서 OBMC 플래그가 시그널링된다. OBMC 플래그가 시그널링되지 않으면, 현재의 블록에 대해 디스에이블된 것으로 가정된다.
예 2에서, 프로세스 (1500) 는, 블록 (1512) 에서, IC 플래그가 시그널링되는지 여부 및 현재의 슬라이스가 B-타입 슬라이스인지 여부 모두를 체크한다. IC 플래그가 시그널링되고 현재의 슬라이스가 B-타입 슬라이스인 경우, OBMC 플래그는 시그널링되지 않는다. 그러나, IC 플래그가 시그널링되지 않거나 또는 현재의 슬라이스가 B-타입 슬라이스인 경우, OBMC 플래그는 블록 (1514) 에서 시그널링된다. OBMC 플래그가 시그널링되지 않으면, 현재의 블록에 대해 디스에이블된 것으로 가정된다.
예 3에서, 프로세스 (1500) 는, 블록 (1516) 에서, IC 플래그가 시그널링되는지 여부 및 현재의 블록이 양방향 예측 블록인지 여부 모두를 체크한다. IC 플래그가 시그널링되고 현재의 블록이 양방향 예측된 블록인 경우, OBMC 플래그는 시그널링되지 않는다. 그러나, IC 플래그가 시그널링되지 않거나 또는 현재의 블록이 양방향 예측 블록인 경우, OBMC 플래그는 블록 (1518) 에서 시그널링된다. OBMC 플래그가 시그널링되지 않으면, 현재의 블록에 대해 디스에이블된 것으로 가정된다.
상술한 예들 중 하나 이상은 JEM 3.0 에서 현존 로컬 조명 보상 (LIC) 툴에 대한 대안적인 방법을 제공한다. 일부 예들에서, 선형 최소 제곱법 (linear least-square method) 은 양방향 예측 모션 보상에서 L0 및 L1 에 대한 LIC 파라미터들을 함께 해결하기 위해 사용된다. 일반적인 테스트 조건 하에서 JEM-3.0 에서 테스트될 때, 제안된 방법은 2-3% 인코딩 시간 증가로, 각각 랜덤 액세스, 저-지연 B, 및 저-지연 P 구성들에 대해 0.18%/0.01%/xxx% 의 BD-레이트 감소를 제공할 수도 있다.
실험들은 본원에 기술된 템플릿-기반 양방향 LIC 도출 기술들을 사용하여 긍정적인 결과들을 나타냈다. 하기의 시뮬레이션에서, 람다의 값은:
Figure pct00026
식 (12)
이도록 선택된다.
Figure pct00027
표 1
Figure pct00028
표 2
Figure pct00029
표 3
표 1, 표 2, 및 표 3 의 처음 3 개 열들의 숫자는 코딩 효율을 측정하기 위해 비디오 코딩에서 일반적으로 사용되는 메트릭인 소위 BD-레이트이다. BD-레이트에 대한 음수는 동일한 품질의 비디오를 나타내는 비트들의 감소를 지칭하며, 따라서 코딩 이득을 의미한다. 다음의 2 개 열들은 각각, 인코딩 런타임 (EncT) 과 디코딩 런타임 (DecT) 이다. 표 1 내지 표 3 의 행들의 각각은 UHD (클래스 A1/클래스 A2), HD (클래스 B), WVGA (클래스 C), 및 WQVGA (클래스 D) 의 서로 다른 해상도들의 시퀀스들의 세트를 나타낸다. 클래스 F 는 컴퓨터 스크린 컨텐츠 (SCC) 를 포함하는 특수 세트이다.
일부 예들에서, 단방향 예측 모션 보상 및/또는 양방향 예측 모션 보상 동안, LIC 파라미터들은 다양한 기술들의 전부 또는 임의의 서브세트를 조합함으로써 도출될 수 있다. 하나의 예시적인 예에서, 템플릿은 상측 이웃, 좌측 이웃, 상단 이웃과 좌측 이웃 양자, 또는 다른 이웃하는 블록으로부터 모든 샘플들 (예를 들어, 픽셀들, 모든 루미넌스 샘플들, 모든 크로미넌스 샘플들, 크로미넌스 샘플들 중 오직 하나, 이들의 조합, 또는 다른 적절한 샘플) 을 고려함으로써 생성될 수 있다.
일부 경우에, (예를 들어, 단방향 예측 모션 보상에 대해 또는 양방향 예측 모션 보상에 대해) 회귀 계산에 포함될 픽셀들 (또는 다른 샘플들) 의 행들 및/또는 열들의 수는 1, 2 또는 4 일 수 있다. 다른 적절한 수의 행들 및/또는 열들이 또한 사용될 수 있다. 일부 경우들에서, 가능한 행들 및/또는 열들의 수는 고정될 수 있다.
일부 경우들에서, LIC 를 위해 사용하기 위한 하나 이상의 템플릿들의 사이즈를 적응적으로 결정하기 위한 시스템들 및 방법들이 본원에 설명된다. 예를 들어, 템플릿의 샘플들 (예컨대, 픽셀들 또는 다른 샘플들) 의 행들 및/또는 열의 수 (예컨대, 위에서 설명된 Ni, P0 또는 P1, 또는 단방향 예측 모션 보상에 사용되는 단일 참조 화상의 템플릿) 는 현재의 블록의 파라미터에 의존하여 변화할 수 있다. 파라미터는 현재의 블록의 블록 사이즈 (예컨대, 블록의 폭, 높이 또는 폭과 높이), 현재의 블록의 크로마 포맷 (예컨대, 4:2:0 포맷, 4:2:2 포맷, 4:4:4 포맷, 또는 다른 적절한 크로마 포맷), 또는 템플릿 사이즈를 결정하는데 사용될 수 있는 다른 파라미터를 포함할 수 있다.
예를 들어, 템플릿 내의 픽셀들 (또는 다른 샘플들) 의 행들 및/또는 열들의 수는 현재의 블록의 폭 및/또는 높이에 의존하여 변화할 수 있다. 일부 예들에서, 블록 폭이 임계 폭 미만이면, 상측 템플릿의 행들의 수는 1 이다. 일부 예들에서, 블록 높이가 임계 높이 미만인 경우, 좌측 템플릿의 열들의 수는 1 이다. 블록 폭이 임계 폭보다 클 경우, 상측 템플릿의 행들의 수는 1 보다 크고, 블록 높이가 임계 높이보다 클 경우, 좌측 템플릿의 열들의 수는 1 보다 크다. 하나의 예시적인 예에서, 8 미만 픽셀들의 폭 및/또는 높이를 갖는 블록에 대해, 라인들 및/또는 열들의 수는 1 로 제한된다. 그렇지 않으면, 폭 및/또는 높이가 32 미만 픽셀들이면, 라인들 및/또는 열들의 수는 2 로 제한된다. 그렇지 않으면, 라인들 및/또는 열들의 수는 최대 4 일 수 있다. 일부 경우들에서, 임계치들은 인코더 및/또는 디코더에 의해 정적으로 결정될 수 있다. 일부 경우들에서, 임계치들은 시퀀스 파라미터 세트 (SPS) 에서, 화상 파라미터 세트 (PPS) 에서, 슬라이스 헤더에서, SEI 메시지에서 또는 다른 적절한 시그널링을 사용하여 시그널링된다.
다른 예에서, 크로마에 대한 픽셀들 (또는 다른 샘플들) 의 행들 및/또는 열들의 수는 크로마 포맷에 의존한다. 예를 들어, 4:2:0 포맷의 경우, 크로마에 대한 픽셀의 행들 및/또는 열들의 수는 루마 사이즈의 절반으로 세팅된다. 다른 예에서, 4:2:2 포맷의 경우, 크로마에 대한 픽셀들의 열들의 수는 루마 사이즈의 절반으로 세팅되는 반면, 행들의 수는 루마 사이즈와 동일하게 세팅된다. 연관된 루마 컴포넌트의 행들 및/또는 열들의 수가 1 일 때, 행들 및/또는 열들의 연관된 수는 1 로 세팅될 수 있다.
일부 예에서, 템플릿의 사이즈는 SPS 에서, PPS 에서, 슬라이스 헤더에서, SEI 메시지에서, 또는 다른 적절한 시그널링을 사용하여 시그널링될 수 있다. 일부 예들에서, 회귀 계산에 앞서 이웃하는 픽셀들을 미리 프로세싱하는 보간 필터들의 타입은 본원에서 설명된 바와 같이, HEVC 표준에서 정의된 바이리니어 (bi-linear) 및 8-탭 보간 필터를 포함한다. 일부 경우들에서, 보간 필터들의 타입이 SPS, PPS, 슬라이스 헤더, SEI 메시지를 통해 또는 다른 적절한 시그널링을 사용하여 시그널링될 수 있다.
일부 예들에서, 하나 이상의 시스템들 및 방법들은 또한, 가중치들의 미리 정의된 세트로부터 가중치들의 적응적 선택을 위해 제공된다. 예를 들어, 템플릿-기반 솔루션은 디코더에 가중치들의 선택을 시그널링할 필요 없이 가중치들의 미리 정의된 세트에서 하나의 더 최적의 가중치들을 검색하는데 사용될 수 있다. 적응적 가중치 선택은 LIC, 가중된 예측 (WP), 또는 예측 프로세스에서 가중치들을 활용하는 기타 예측 또는 보상 기법들과 같은, 모든 템플릿 매칭 기반의 모션 예측 또는 보상에 사용될 수 있다.
예를 들어, 양방향 예측 모션 보상 동안 가중치들의 미리 정의된 세트가 고려된다면, 템플릿 기반 방법은 가중치들의 선택을 디코더에 시그널링할 필요 없이 최적의 가중치들의 세트를 검색하는데 활용될 수 있다. 이 방법은 LIC 인에이블 및 LIC 디스에이블 경우들 양자에 적용될 수 있고, 따라서 본원에 설명된 다른 방법들의 일부 또는 전부와 독립적으로 적용될 수 있음을 유의한다. 이러한 방법들 및 이하의 예들은 양방향 예측 블록들 및/또는 단방향 예측 블록들에 적용될 수 있다.
일부 경우들에서, 이전에 설명된 것과 유사하게, 현재의 블록의 이웃하는 샘플들이 템플릿으로서 사용될 수 있다. 일부 경우들에서, 후보 템플릿에 대한 샘플들과 연관된 하나 이상의 메트릭들은 가중치들의 미리 정의된 세트에서 어떤 가중치들을 선택할지를 결정하는데 사용될 수 있다. 예를 들어, 현재의 블록의 이웃하는 샘플들 및 (현재의 블록의 모션 정보에 의해 표시된) 하나 이상의 참조 블록들의 대응하는 샘플들의 절대 차이들의 합 (SAD), 절대 변환된 차이들의 합 (SATD), 및/또는 제곱 에러들의 합 (SSE) 은 템플릿 매칭의 기준으로서 사용될 수 있다. 이러한 예에서, 템플릿 매칭의 최소 SAD, SATD 또는 SSE 를 초래하는 가중치들의 미리 정의된 세트로부터 가중치들이 선택되고 예측을 생성하는데 사용될 수 있다. 당업자는 임의의 다른 측정이 템플릿 매칭의 기준으로서 사용될 수 있다는 것을 인식할 것이다. 그러한 경우들에서, 하나 이상의 특정 가중 파라미터들의 시그널링은 필요하지 않다.
일부 예들에서, 미리 정의된 세트에서의 템플릿 매칭의 메트릭들 (예를 들어, SAD, SATD, SSE 등) 은 가중 파라미터의 시그널링을 위해 사용될 수 있다. 예를 들어, 템플릿 매칭의 SAD/SATD/SSE들의 순서는 가중 파라미터들의 시그널링 순서를 스위칭하는데 사용될 수 있다. 하나의 예시적인 예에서, 4 개의 가중치 쌍들이 존재하고, 인코더는 어떤 가중치 쌍이 사용되어야 하는지를 시그널링할 필요가 있다. 최저 SAD/SATD/SSE 값을 발생한 쌍에는 "0" 의 코드워드가 할당되고, 제 2 의 최저 SAD/SATD/SSE 값을 발생한 쌍에는 "10" 의 코드워드가 할당된다. 나머지 2 개의 쌍들에는 각각 "110" 및 "111" 의 코드워드가 할당된다.
도 16 은 본원에 설명된 양방향 LIC 파라미터 도출 기술들 중 하나 이상을 사용하여 비디오 데이터를 프로세싱하는 프로세스 (1600) 의 일 예를 도시하는 흐름도이다. 1602 에서, 프로세스 (1600) 는 비디오 데이터를 획득하는 것을 포함한다. 일부 예들에서, 비디오 데이터는 프로세스 (1800) 가 디코딩 디바이스에 의해 수행될 때와 같이, 인코딩된 비디오 데이터 (예를 들어, 인코딩된 비디오 비트스트림) 를 포함할 수 있다. 일부 예들에서, 비디오 데이터는 프로세스 (1800) 가 인코딩 디바이스에 의해 수행될 때와 같이, 인코딩되지 않은 비디오 데이터를 포함할 수 있다. 비디오 데이터는 복수의 화상들을 포함할 수 있고, 화상들은 전술한 바와 같이 복수의 블록으로 분할될 수 있다. 비디오 데이터는 또한, 모션 보상을 수행하는데 사용될 수 있는 화상들 및/또는 블록들에 대한 모션 정보를 포함할 수 있다.
1604 에서, 프로세스 (1600) 는 비디오 데이터의 화상의 현재의 블록에 대한 양방향 예측 모션 보상을 수행하는 것을 포함한다. 양방향 예측 모션 보상을 수행하는 것은 현재의 블록의 템플릿, 제 1 참조 화상의 제 1 템플릿, 및 제 2 참조 화상의 제 2 템플릿을 사용하여 현재의 블록에 대한 하나 이상의 로컬 조명 보상 파라미터들을 도출하는 것을 포함한다. 하나의 예시적인 예에서, 현재의 블록은 도 14 에 도시된 현재의 블록 (1402) 일 수 있고, 현재의 블록의 템플릿은 템플릿 NI 을 포함할 수 있고, 제 1 참조 화상은 참조 블록 (1404) 을 포함할 수 있고, 제 1 템플릿은 템플릿 P0 을 포함할 수 있고, 제 2 참조 화상은 참조 블록 (1406) 을 포함할 수 있고, 제 2 템플릿은 템플릿 P1 을 포함할 수 있다.
일부 예들에서, 제 1 참조 화상의 제 1 템플릿 및 제 2 참조 화상의 제 2 템플릿은 하나 이상의 로컬 조명 보상 파라미터들을 도출하기 위해 동시에 사용된다. 예를 들어, 식 (4) 에 나타낸 비용 함수 또는 식 (10) 에 나타낸 비용 함수 (또는 다른 적절한 함수) 는 제 1 참조 화상 및 제 2 참조 화상 양자를 사용하여 하나 이상의 로컬 조명 보상 파라미터를 동시에 도출하도록 해결될 수 있다 (양자의 참조 영상들이 동일한 비용 함수에서 사용됨).
일부 경우들에서, 현재의 블록의 템플릿은 현재의 블록의 하나 이상의 공간적으로 이웃하는 샘플들을 포함한다. 예를 들어, 일 예로서 도 14 를 사용하여, 템플릿 Ni 은 현재의 블록 (1402) 을 이웃하고 있는 블록으로부터의 샘플들로 구성된다. 그러한 경우들에서, 제 1 템플릿은 제 1 참조 블록의 하나 이상의 공간적으로 이웃하는 샘플들을 포함하고, 제 2 템플릿은 제 2 참조 블록의 하나 이상의 공간적으로 이웃하는 샘플들을 포함한다. 예를 들어, 일 예로서 도 14 를 다시 사용하여, 템플릿 P0 은 참조 블록 (1404) 의 공간적으로 이웃하는 샘플들을 포함하고, 템플릿 P1 은 참조 블록 (1406) 의 공간적으로 이웃하는 샘플들을 포함한다.
일부 예들에서, 현재의 블록에 대한 하나 이상의 로컬 조명 파라미터들은 현재의 블록의 템플릿의 하나 이상의 공간적으로 이웃하는 샘플들을 획득함으로써 도출될 수 있다. 프로세스 (1600) 는 제 1 참조 화상의 제 1 템플릿의 하나 이상의 샘플들을 결정할 수 있다. 제 1 템플릿의 하나 이상의 샘플들은 제 1 참조 화상의 제 1 참조 블록의 하나 이상의 공간적으로 이웃하는 샘플들을 포함한다. 프로세스 (1600) 는 또한, 제 2 참조 화상의 제 2 참조 블록의 하나 이상의 공간적으로 이웃하는 샘플을 포함하는, 제 2 참조 화상의 제 2 템플릿의 하나 이상의 샘플들을 결정할 수 있다. 예를 들어, 현재의 블록의 모션 정보 (예를 들어, 모션 벡터들 및 2 개의 참조 인덱스들) 는 (참조 인덱스들을 사용하여) 제 1 및 제 2 참조 화상들 및 (모션 벡터들을 사용하여) 그 참조 화상들 내의 제 1 및 제 2 블록들을 로케이팅하는데 사용될 수 있다. 제 1 및 제 2 참조 블록들의 하나 이상의 공간적으로 이웃하는 샘플들이 결정될 수 있다. 하나의 예시적인 예에서, 제 1 템플릿에 포함된 제 1 참조 블록의 하나 이상의 공간적으로 이웃하는 샘플들은 제 1 참조 블록 위의 이웃하는 블록으로부터의 샘플들의 하나 이상의 행들 및 제 1 참조 블록의 좌측으로 인접하는 블록으로부터의 샘플들의 하나 이상의 열들로 결정될 수 있다. 그러한 예에서, 제 2 템플릿에 포함된 제 2 참조 블록의 하나 이상의 공간적으로 이웃하는 샘플들은 제 2 참조 블록 위의 이웃하는 블록으로부터의 샘플들의 하나 이상의 행들 및 제 2 참조 블록의 좌측으로 인접하는 블록으로부터의 샘플들의 하나 이상의 열들로 결정될 수 있다. 다른 이웃하는 블록들의 행들 및/또는 열들이 또한 사용될 수 있다.
하나 이상의 조명 보상 파라미터들은 현재의 블록의 하나 이상의 공간적으로 이웃하는 샘플들, 제 1 템플릿의 하나 이상의 샘플들 및 제 2 템플릿의 하나 이상의 샘플들에 기초하여 현재의 블록에 대해 도출될 수 있다. 예를 들어, 하나 이상의 로컬 조명 보상 파라미터들은 오프셋, 제 1 가중치, 및 제 2 가중치를 사용하여 비용 함수를 해결함으로써 도출될 수 있다. 하나의 예시적인 예에서, 식 (4) 에 도시된 비용 함수 또는 식 (10) 에 도시된 비용 함수 (또는 다른 적절한 함수) 는 현재의 블록에 대한 하나 이상의 로컬 조명 보상 파라미터들을 도출하기 위해 현재의 블록의 하나 이상의 공간적으로 이웃하는 샘플들, 제 1 템플릿의 하나 이상의 샘플들, 및 제 2 템플릿의 하나 이상의 샘플들을 이용하여 해결될 수 있다. 그러한 예에서, LIC 절차에 대한 입력들은 현재의 블록의 이웃하는 샘플들, 2 개의 참조 블록들의 이웃하는 샘플들, 및 2 개의 모션 벡터들 및 참조 인덱스들을 포함하며, 이는 참조 샘플들의 출처를 나타낸다.
일부 경우들에서, 현재의 블록의 템플릿은 현재의 블록의 적어도 하나의 이웃하는 블록의 다수의 샘플들의 서브세트를 포함한다. 예를 들어, 현재의 블록의 템플릿은 이웃하는 블록으로부터의 픽셀들의 단일 라인, 또는 이웃하는 블록으로부터의 픽셀들의 다수 라인들을 포함할 수 있다. 일 예에서, 템플릿을 구성하는 이웃 샘플들은 상측 이웃 블록, 좌측 이웃 블록, 양자의 상측 이웃 블록 및 좌측 이웃 블록, 또는 다른 이웃 블록으로부터 기인할 수 있다. 현재의 블록의 템플릿이 현재의 블록의 상측 이웃 블록 및 좌측 이웃 블록을 포함하는 예에서, 템플릿은 상측 이웃 블록으로부터의 단일 행 및 좌측 이웃 블록의 단일 열을 포함할 수 있다. 일부 예들에서, 현재의 블록의 템플릿은 현재의 블록의 이웃하는 블록으로부터의 샘플들의 다수의 라인들을 포함한다. 일부 경우들에서, 현재의 블록의 템플릿은 제 1 이웃 블록으로부터의 샘플들의 다수의 라인들 및 현재의 블록의 제 2 이웃 블록으로부터의 샘플들의 다수의 라인들을 포함한다. 일부 경우들에서, 템플릿은 2 초과의 이웃 블록들로부터의 이웃 샘플들이 포함할 수 있다. 현재의 블록의 템플릿이 현재의 블록의 상측 이웃 블록 및 좌측 이웃 블록을 포함하는 예에서, 템플릿은 상측 이웃 블록으로부터의 2 이상의 행들 및 좌측 이웃 블록의 2 이상의 열들을 포함할 수 있다. 제 1 참조 블록의 제 1 템플릿 및 제 2 참조 블록의 제 2 템플릿은 또한 각각의 참조 블록들의 이웃하는 블록들의 단일 행 및/또는 열, 또는 이웃하는 블록들로부터의 다수의 행들 및/또는 열들을 포함할 수 있다.
일부 예들에서, 하나 이상의 로컬 조명 보상 파라미터들은 하나 이상의 가중치들을 포함한다. 예를 들어, 하나 이상의 가중치들은 제 1 참조 화상에 대응하는 제 1 가중치 및 제 2 참조 화상에 대응하는 제 2 가중치를 포함할 수 있다. 이전의 예들을 사용하면, 제 1 가중치는 가중치 w0 를 포함할 수 있고, 제 2 가중치는 식 (4) 또는 식 (10) 으로부터의 가중치 w1 를 포함할 수 있다. 일부 예들에서, 하나 이상의 로컬 조명 보상 파라미터들은 오프셋을 포함한다. 상기에서의 예들을 사용하여, 오프셋은 식 (4) 또는 식 (10) 으로부터의 오프셋 o 을 포함할 수 있다. 일부 경우들에서, 하나 이상의 로컬 조명 보상 파라미터들은 오프셋, 제 1 참조 화상에 대응하는 제 1 가중치, 및 제 2 참조 화상에 대응하는 제 2 가중치를 포함한다.
일부 구현들에서, 제 1 참조 화상의 제 1 템플릿 내의 정수 위치 샘플들 및 제 2 참조 화상의 제 2 템플릿 내의 정수 위치 샘플들은 하나 이상의 로컬 조명 보상 파라미터들을 도출하기 위해 사용된다. 일부 경우들에서, 제 1 참조 화상의 제 1 템플릿 내의 분수 위치 샘플들 및 제 2 참조 화상의 제 2 템플릿 내의 분수 위치 샘플들은 하나 이상의 로컬 조명 보상 파라미터들을 도출하기 위해 사용된다. 이러한 경우에, 프로세스 (1600) 는 적어도 하나의 보간 필터를 사용하여 제 1 참조 화상의 제 1 템플릿 내의 분수 위치 샘플들 및 제 2 템플릿 내의 분수 위치 샘플들을 도출할 수 있다.
일부 예들에서, 제 1 및 제 2 참조 블록들의 이웃하는 샘플들로부터의 특정 샘플들은 하나 이상의 조명 보상 파라미터들을 도출하는데 있어서의 사용으로부터 배제될 수 있다. 예를 들어, 프로세스 (1600) 는 특이치 임계 범위 밖에 있는 제 1 템플릿 또는 제 2 템플릿 중 적어도 하나 이상으로부터 적어도 하나의 샘플을 결정하는 것, 및 적어도 하나의 샘플을 하나 이상의 로컬 조명 보상 파라미터들을 도출하는데 사용되는 것으로부터 제외하는 것을 포함할 수 있다. 예를 들어, 이전에 기술된 바와 같이, 특이치 임계 범위는 템플릿 내의 모든 이용 가능한 픽셀 값들의 서브세트, 템플릿 내의 픽셀 값들의 평균으로부터의 x-표준 편차들 또는 다른 적절한 범위를 포함할 수 있다.
일부 경우들에서, 제 1 템플릿 및 제 2 템플릿의 하나 이상의 샘플들로부터의 루마 컴포넌트들만이 하나 이상의 로컬 조명 보상 파라미터들을 도출하는데 사용된다. 일부 경우들에서, 제 1 템플릿 및 제 2 템플릿의 하나 이상의 샘플들로부터의 루마 컴포넌트들 및 적어도 하나의 크로마 컴포넌트가 하나 이상의 로컬 조명 보상 파라미터들을 도출하는데 사용된다.
디코더에 의해 수행될 때, 프로세스 (1600) 는 하나 이상의 조명 보상 파라미터들을 사용하여 현재의 블록을 디코딩하는 것을 더 포함할 수 있다. 인코더 또는 다른 송신기측 디바이스에 의해 수행될 때, 프로세스 (1600) 는 인코딩된 비디오 비트스트림에서 하나 이상의 조명 보상 파라미터들을 시그널링하는 것을 포함할 수 있다.
일부 예들에서, 오버랩된 블록 모션 보상 (OBMC) 은 로컬 조명 보상이 현재의 블록에 대해 인에이블될 때, 현재의 블록에 대해 디스에이블될 수 있다. 일부 경우들에서, OBMC 는 비디오 데이터에 대해 로컬 조명 보상이 인에이블된 경우, 비디오 데이터의 B-타입 슬라이스들에 대해 디스에이블된다. 일부 경우들에서, OBMC 는 비디오 데이터에 대해 로컬 조명 보상이 인에이블된 경우, 비디오 데이터의 양방향 예측된 블록들에 대해 디스에이블된다.
도 17 은 본원에 설명된 적응적 템플릿 도출 기술들 중 하나 이상을 사용하여 비디오 데이터를 프로세싱하는 프로세스 (1700) 의 일 예를 도시하는 흐름도이다. 1702 에서, 프로세스 (1700) 는 비디오 데이터의 화상의 현재의 블록을 획득하는 것을 포함한다. 일부 예들에서, 비디오 데이터는 프로세스 (1800) 가 디코딩 디바이스에 의해 수행될 때와 같이, 인코딩된 비디오 데이터 (예를 들어, 인코딩된 비디오 비트스트림) 를 포함할 수 있다. 일부 예들에서, 비디오 데이터는 프로세스 (1800) 가 인코딩 디바이스에 의해 수행될 때와 같이, 인코딩되지 않은 비디오 데이터를 포함할 수 있다. 비디오 데이터는 복수의 화상들을 포함할 수 있고, 화상들은 전술한 바와 같이 복수의 블록으로 분할될 수 있다. 비디오 데이터는 또한, 모션 보상을 수행하는데 사용될 수 있는 화상들 및/또는 블록들에 대한 모션 정보를 포함할 수 있다.
1704 에서, 프로세스 (1700) 는 현재 블록의 파라미터를 결정하는 것을 포함한다. 일부 경우들에서, 현재 블록의 파라미터는 현재 블록의 사이즈를 포함한다. 하나의 예시적인 예에서, 현재 블록의 사이즈는 현재 블록의 폭을 포함할 수 있다. 다른 예에서, 현재 블록의 사이즈는 현재 블록의 높이를 포함한다. 다른 예에서, 현재 블록의 사이즈는 블록의 폭 및 블록의 높이를 포함한다. 사이즈는 또한 픽셀들의 수, 면적 등과 같은 임의의 다른 적합한 사이즈의 측정치를 포함할 수 있다. 일부 경우들에서, 현재 블록의 파라미터는 현재 블록의 크로마 포맷을 포함한다. 다양한 예들에서, 크로마 포맷은 4:2:0 크로마 포맷, 4:2:2 크로마 포맷, 4:4:4 크로마 포맷, 또는 다른 적합한 포맷을 포함할 수 있다.
1706 에서, 프로세스 (1700) 는 현재 블록의 결정된 파라미터에 기초하여 현재 블록의 템플릿에서의 샘플들의 행들의 수 또는 샘플들의 열들의 수 중 적어도 하나 이상 및 참조 화상의 템플릿에서의 샘플들의 행들의 수 및 샘플들의 열들의 수 중 적어도 하나 이상을 결정하는 것을 포함한다. 하나의 예시적인 예에서, 파라미터가 블록의 폭을 포함하는 경우, 현재 블록의 템플릿에서의 샘플들의 행들의 수는, 현재 블록의 폭이 임계 폭보다 작으면 1 행이다. 다른 예시적인 예에서, 파라미터가 블록의 폭을 포함하는 경우, 현재 블록의 템플릿에서의 샘플들의 행들의 수는, 현재 블록의 폭이 임계 폭보다 크면 1 초과의 행이다. 다른 예시적인 예에서, 파라미터가 블록의 높이를 포함하는 경우, 현재 블록의 템플릿에서의 샘플들의 열들의 수는, 현재 블록의 높이가 임계 높이보다 작으면 1 열이다. 다른 예시적인 예에서, 파라미터가 블록의 높이를 포함하는 경우, 현재 블록의 템플릿에서의 샘플들의 열들의 수는, 현재 블록의 높이가 임계 높이보다 크면 1 초과의 열들이다. 다른 예시적인 예에서, 파라미터가 블록의 크로마 포맷을 포함하는 경우, 현재 블록의 템플릿에서의 샘플들의 행들의 수 및 샘플들의 열들의 수는 현재 블록의 크로마 포맷이 4:2:0 이면 현재 블록의 루마 사이즈의 절반으로 설정된다. 다른 예시적인 예에서, 파라미터가 블록의 크로마 포맷을 포함하는 경우, 현재 블록의 템플릿에서의 샘플들의 행들의 수는 현재 블록의 루마 사이즈와 동일한 사이즈로 설정되고, 현재 블록의 템플릿에서의 샘플들의 열들의 수는 현재 블록의 크로마 포맷이 4:2:2 이면 루마 사이즈의 절반으로 설정된다.
1708 에서, 프로세스 (1700) 는 현재 블록에 대한 모션 보상을 수행하는 것을 포함한다. 모션 보상을 수행하는 것은 현재 블록의 템플릿 및 참조 화상의 템플릿을 사용하여 현재 블록에 대한 하나 이상의 로컬 조명 보상 파라미터들을 도출하는 것을 포함한다. 모션 보상은 단방향-예측 (uni-predictive) 모션 보상 또는 양방향-예측 (bi-predictive) 모션 보상을 포함할 수 있다.
디코더에 의해 수행될 때, 프로세스 (1700) 는 하나 이상의 조명 보상 파라미터들을 사용하여 현재 블록을 디코딩하는 것을 더 포함할 수 있다. 인코더 또는 다른 송신기-측 디바이스에 의해 수행될 때, 프로세스 (1700) 는 인코딩된 비디오 비트스트림으로 하나 이상의 조명 보상 파라미터들을 시그널링하는 것을 포함할 수 있다.
도 18 은 본 명세서에서 설명된 적응적 가중치 선택 기법들 중 하나 이상을 사용하여 비디오 데이터를 프로세싱하는 프로세스 (1800) 의 예를 예시하는 플로우차트이다. 1802 에서, 프로세스 (1800) 는 비디오 데이터의 화상의 현재 블록을 획득하는 것을 포함한다. 일부 예들에서, 비디오 데이터는, 프로세스 (1800) 가 디코딩 디바이스에 의해 수행될 때와 같이, 인코딩된 비디오 데이터 (예를 들어, 인코딩된 비디오 비트스트림) 를 포함할 수 있다. 일부 예들에서, 비디오 데이터는, 프로세스 (1800) 가 인코딩 디바이스에 의해 수행될 때와 같이, 미-인코딩된 비디오 데이터를 포함할 수 있다. 비디오 데이터는 복수의 화상들을 포함할 수 있고, 화상들은, 이전에 설명된 바와 같이, 복수의 블록들로 분할될 수 있다. 비디오 데이터는 또한, 모션 보상을 수행하는데 사용될 수 있는 화상들 및/또는 블록들에 대한 모션 정보를 포함할 수 있다.
1804 에서, 프로세스 (1800) 는 템플릿 매칭 기반 모션 보상을 위한 가중치들의 미리정의된 세트를 획득하는 것을 포함한다. 일부 경우들에서, 가중치들의 미리정의된 세트는 적어도 가중치들의 제 1 세트 및 가중치들의 제 2 세트를 포함한다. 가중치들의 미리정의된 세트는 가중치들의 제 1 및 제 2 세트들보다 많은 가중치들의 세트들을 포함할 수 있다. 가중치들은 로컬 조명 보상, 가중화된 예측, 또는 비디오 코딩을 위해 가중치들을 사용하는 다른 함수와 같은 임의의 적합한 모션 보상 또는 추정 함수에서 사용될 수 있다.
1806 에서, 프로세스 (1800) 는 현재 블록의 하나 이상의 공간 이웃 샘플들 및 참조 프레임의 하나 이상의 공간 이웃 샘플들과 연관된 복수의 메트릭들을 결정하는 것을 포함한다. 예를 들어, 복수의 메트릭들은, 가중치들의 제 1 세트를 참조 프레임의 하나 이상의 공간 이웃 샘플들에 적용함으로써 제 1 메트릭을 결정하고 가중치들의 제 2 세트를 참조 프레임의 하나 이상의 공간 이웃 샘플들에 적용함으로써 제 2 메트릭을 결정하는 것에 의해 결정될 수 있다. 일부 경우들에서, 복수의 메트릭들은 현재 블록의 하나 이상의 공간 이웃 샘플들과 참조 프레임의 하나 이상의 공간 이웃 샘플들 간의 절대 차이들의 합을 컴퓨팅함으로써 결정될 수 있다. 일부 경우들에서, 복수의 메트릭들은 현재 블록의 하나 이상의 공간 이웃 샘플들과 참조 프레임의 하나 이상의 공간 이웃 샘플들 간의 절대 변환된 차이들의 합을 컴퓨팅함으로써 결정될 수 있다. 일부 경우들에서, 복수의 메트릭들은 현재 블록의 하나 이상의 공간 이웃 샘플들과 참조 프레임의 하나 이상의 공간 이웃 샘플들 간의 제곱 예측 에러들의 합 (sum of squared errors of prediction) 을 컴퓨팅함으로써 결정될 수 있다.
1808 에서, 프로세스 (1800) 는 템플릿 매칭 기반 모션 보상을 위해 사용하기 위해 가중치들의 미리정의된 세트로부터 가중치들의 세트를 선택하는 것을 포함한다. 가중치들의 세트는 복수의 메트릭들에 기초하여 결정된다. 예를 들어, 가중치들의 세트는, 제 1 메트릭과 제 2 메트릭을 비교하고, 제 1 메트릭이 제 2 메트릭보다 작다고 결정하고, 그리고 제 1 메트릭이 제 2 메트릭보다 작은 것에 기초하여 가중치들의 제 1 세트를 선택함으로써 복수의 메트릭들에 기초하여 선택될 수 있다. 제 1 메트릭이 제 2 메트릭보다 작은 것으로 표시된 바와 같이, 가중치들의 제 1 세트는 템플릿 매칭 기반 모션 보상을 위해 가중치들의 미리정의된 세트 중에서 가장 작은 메트릭을 초래한다.
1810 에서, 프로세스 (1800) 는 가중치들의 선택된 세트를 사용하여 현재 블록에 대한 템플릿 매칭 기반 모션 보상을 수행하는 것을 포함한다. 템플릿 매칭 기반 모션 보상은 로컬 조명 보상 (LIC), 가중화된 예측 (WP), 또는 다른 적합한 템플릿 매칭 기반 모션 보상 기법과 같은 임의의 적합한 모션 보상 기법을 포함할 수 있다.
일부 경우들에서는, 어떤 가중화 파라미터도 비디오 데이터와 함께 시그널링되지 않는다. 예를 들어, 가중치들의 세트를 적응적으로 선택함으로써, 디코더는 프로세스를 사용하여 가중치들의 세트를 선택 가능하기 때문에 가중화 파라미터가 디코더에 시그널링될 필요가 없다.
일부 예들에서, 프로세스들 (1600, 1700, 및 1800) 은 도 1 에 도시된 시스템 (100) 과 같은 컴퓨팅 디바이스 또는 장치에 의해 수행될 수도 있다. 예를 들어, 프로세스 (900) 는 도 1 및 도 12 에 도시된 인코딩 디바이스 (104) 에 의해, 다른 비디오 소스-측 디바이스 또는 비디오 송신 디바이스에 의해, 도 1 및 도 12 에 도시된 디코딩 디바이스 (112) 에 의해, 및/또는 플레이어 디바이스, 디스플레이, 또는 임의의 다른 클라이언트-측 디바이스와 같은 다른 클라이언트-측 디바이스에 의해 수행될 수 있다. 프로세스 (1000) 는 도 1 및 도 12 에 도시된 인코딩 디바이스 (104) 에 의해, 또는 다른 비디오 소스-측 디바이스 또는 비디오 송신 디바이스에 의해 수행될 수 있다. 프로세스 (1100) 는 도 1 및 도 20 에 도시된 디코딩 디바이스 (112) 에 의해 및/또는 도 1 및 도 19 에 도시된 인코딩 디바이스 (104) 에 의해 수행될 수 있다. 일부 경우들에서, 컴퓨팅 디바이스 또는 장치는 프로세서, 마이크로프로세서, 마이크로컴퓨터, 또는 프로세스들 (1600, 1700, 및 1800) 의 단계들을 수행하도록 구성되는 디바이스의 다른 컴포넌트를 포함할 수도 있다. 일부 예들에서, 컴퓨팅 디바이스 또는 장치는 비디오 프레임들을 포함하는 비디오 데이터 (예를 들어, 비디오 시퀀스) 를 캡처하도록 구성된 카메라를 포함할 수도 있다. 일부 예들에서, 비디오 데이터를 캡처하는 카메라 또는 다른 캡처 디바이스는 컴퓨팅 디바이스로부터 분리되어 있으며, 이 경우 컴퓨팅 디바이스는 캡처된 비디오 데이터를 수신 또는 획득한다. 컴퓨팅 디바이스는 비디오 데이터를 통신하도록 구성된 네트워크 인터페이스를 더 포함할 수도 있다. 네트워크 인터페이스는 인터넷 프로토콜 (IP) 기반 데이터 또는 다른 타입의 데이터를 통신하도록 구성될 수도 있다. 일부 예들에서, 컴퓨팅 디바이스 또는 장치는 비디오 비트스트림의 화상들의 샘플들과 같은 출력 비디오 콘텐츠를 디스플레이하기 위한 디스플레이를 포함할 수도 있다.
프로세스들 (1600, 1700, 및 1800) 은 논리 플로우 다이어그램들로서 예시되고, 그 동작은 하드웨어, 컴퓨터 명령들, 또는 이들의 조합으로 구현될 수 있는 동작들의 시퀀스를 표현한다. 컴퓨터 명령들의 맥락에서, 그 동작들은, 하나 이상의 프로세서들에 의해 실행될 때, 열거된 동작들을 수행하는 하나 이상의 컴퓨터 판독가능 저장 매체들 상에 저장된 컴퓨터 실행가능 명령들을 표현한다. 일반적으로, 컴퓨터 실행가능 명령들은 특정의 기능들을 수행하거나 또는 특정의 데이터 타입들을 구현하는 루틴들, 프로그램들, 오브젝트들, 컴포넌트들, 데이터 구조들 등을 포함한다. 동작들이 설명되는 순서는 제한으로서 해석되도록 의도되지 않으며, 임의의 수의 설명된 동작들은 프로세스들을 구현하기 위해 임의의 순서로 및/또는 병렬로 결합될 수 있다.
추가적으로, 프로세스들 (1600, 1700, 및 1800) 은 실행가능 명령들로 구성된 하나 이상의 컴퓨터 시스템들의 제어 하에서 수행될 수도 있고, 집합적으로 하나 이상의 프로세서 상에서 실행하는 코드 (예를 들어, 실행가능 명령들, 하나 이상의 컴퓨터 프로그램들, 또는 하나 이상의 애플리케이션들) 로서, 하드웨어에 의해, 또는 이들의 조합으로 구현될 수도 있다. 상기 언급된 바와 같이, 코드는 컴퓨터 판독가능 또는 머신 판독가능 저장 매체 상에, 예를 들어, 하나 이상의 프로세서들에 의해 실행가능한 복수의 명령들을 포함하는 컴퓨터 프로그램의 형태로 저장될 수도 있다. 컴퓨터 판독가능 또는 머신 판독가능 저장 매체는 비일시적일 수도 있다.
본 명세서에서 논의된 코딩 기법들은 일 예의 비디오 인코딩 및 디코딩 시스템 (예를 들어, 시스템 (100)) 에서 구현될 수도 있다. 일부 예들에서, 시스템은, 목적지 디바이스에 의해 나중에 디코딩될 인코딩된 비디오 데이터를 제공하는 소스 디바이스를 포함한다. 특히, 소스 디바이스는 비디오 데이터를, 컴퓨터 판독가능 매체를 통해 목적지 디바이스에 제공한다. 소스 디바이스 및 목적지 디바이스는, 데스크톱 컴퓨터들, 노트북 (즉, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋톱 박스들, 전화기 핸드셋 이를 테면 소위 "스마트" 폰들, 소위 "스마트" 패드들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 비디오 스트리밍 디바이스 등을 포함한, 광범위한 디바이스들 중 임의의 것을 포함할 수도 있다. 일부 경우들에서, 소스 디바이스 및 목적지 디바이스는 무선 통신을 위해 장비될 수도 있다.
목적지 디바이스는 디코딩될 인코딩된 비디오 데이터를 컴퓨터 판독가능 매체를 통해 수신할 수도 있다. 컴퓨터 판독가능 매체는, 인코딩된 비디오 데이터를 소스 디바이스로부터 목적지 디바이스로 이동시킬 수 있는 임의의 타입의 매체 또는 디바이스를 포함할 수도 있다. 하나의 예에서, 컴퓨터 판독가능 매체는, 소스 디바이스로 하여금 인코딩된 비디오 데이터를 직접 목적지 디바이스로 실시간으로 송신하는 것을 가능하게 하기 위해 통신 매체를 포함할 수도 있다. 인코딩된 비디오 데이터는, 무선 통신 프로토콜과 같은 통신 표준에 따라 변조되고, 목적지 디바이스에 송신될 수도 있다. 통신 매체는 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들과 같은 임의의 무선 또는 유선 통신 매체를 포함할 수도 있다. 통신 매체는 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷 기반 네트워크의 일부를 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스로부터 목적지 디바이스로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
일부 예들에서, 인코딩된 데이터는 출력 인터페이스로부터 저장 디바이스로 출력될 수도 있다. 유사하게, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스로부터 액세스될 수도 있다. 저장 디바이스는 하드 드라이브, 블루-레이 디스크들, DVD들, CD-ROM들, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체들과 같은 다양한 분산된 또는 로컬로 액세스된 데이터 저장 매체들 중 임의의 것을 포함할 수도 있다. 추가의 예에서, 저장 디바이스는, 소스 디바이스에 의해 생성되는 인코딩된 비디오를 저장할 수도 있는, 파일 서버 또는 다른 중간 저장 디바이스에 대응할 수도 있다. 목적지 디바이스는, 스트리밍 또는 다운로드를 통해 저장 디바이스로부터 저장된 비디오 데이터에 액세스할 수도 있다. 파일 서버는, 인코딩된 비디오 데이터를 저장하고 그리고 그 인코딩된 비디오 데이터를 목적지 디바이스에 송신하는 것이 가능한 임의의 타입의 서버일 수도 있다. 예의 파일 서버들은 웹 서버 (예를 들어, 웹사이트용), FTP 서버, NAS (network attached storage) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스는, 인터넷 접속을 포함한, 임의의 표준 데이터 접속을 통하여 인코딩된 비디오 데이터에 액세스할 수도 있다. 이것은 파일 서버 상에 저장되는 인코딩된 비디오 데이터에 액세스하기에 적합한 무선 채널 (예를 들어, Wi-Fi 접속), 유선 접속 (예를 들어, DSL, 케이블 모뎀 등), 또는 양자의 조합을 포함할 수도 있다. 저장 디바이스로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이들의 조합일 수도 있다.
본 개시의 기법들은 무선 애플리케이션들 또는 세팅들에 반드시 제한되는 것은 아니다. 기법들은, 공중 경유 (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, HTTP 상으로의 동적 적응적 스트리밍 (DASH) 과 같은 인터넷 스트리밍 비디오 송신들, 데이터 저장 매체 상으로 인코딩되는 디지털 비디오, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션들과 같은 다양한 멀티미디어 애플리케이션들 중 임의의 것을 지원하여 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 시스템은, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 비디오 텔레포니와 같은 애플리케이션들을 지원하기 위해 일방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.
하나의 예에서, 소스 디바이스는 비디오 소스, 비디오 인코더, 및 출력 인터페이스를 포함한다. 목적지 디바이스는 입력 인터페이스, 비디오 디코더, 및 디스플레이 디바이스를 포함할 수도 있다. 소스 디바이스의 비디오 인코더는 본 명세서에서 개시된 기법들을 적용하도록 구성될 수도 있다. 다른 예들에서, 소스 디바이스 및 목적지 디바이스는 다른 컴포넌트들 또는 배열 (arrangement) 들을 포함할 수도 있다. 예를 들어, 소스 디바이스는 외부 카메라와 같은 외부 비디오 소스로부터 비디오 데이터를 수신할 수도 있다. 마찬가지로, 목적지 디바이스는 통합된 디스플레이 디바이스를 포함하기 보다는, 외부 디스플레이 디바이스와 인터페이스할 수도 있다.
상기 예의 시스템은 하나의 예일 뿐이다. 병렬로 비디오 데이터를 프로세싱하기 위한 기법들은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수도 있다. 일반적으로 본 개시의 기법들은 비디오 인코딩 디바이스에 의해 수행되지만, 그 기법들은 또한, "코덱 (CODEC)" 으로 통상적으로 지칭되는, 비디오 인코더/디코더에 의해 수행될 수도 있다. 더욱이, 본 개시의 기법들은 또한 비디오 프리프로세서에 의해 수행될 수도 있다. 소스 디바이스 및 목적지 디바이스는, 소스 디바이스가 목적지 디바이스로의 송신을 위해 코딩된 비디오 데이터를 생성하는 그러한 코딩 디바이스들의 예들일 뿐이다. 일부 예들에서, 소스 및 목적지 디바이스들은, 디바이스들의 각각이 비디오 인코딩 및 디코딩 컴포넌트들을 포함하도록 실질적으로 대칭적인 방식으로 동작할 수도 있다. 이런 이유로, 예의 시스템들은 예를 들면, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 또는 비디오 텔레포니를 위해, 비디오 디바이스들 간의 일방향 또는 양방향 비디오 송신을 지원할 수도 있다.
비디오 소스는 비디오 캡처 디바이스, 이를 테면 비디오 카메라, 이전에 캡처된 비디오를 포함하는 비디오 아카이브, 및/또는 비디오 콘텐츠 제공자로부터 비디오를 수신하기 위한 비디오 피드 인터페이스를 포함할 수도 있다. 추가의 대안으로서, 비디오 소스는 소스 비디오, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터 생성된 비디오의 조합으로서 컴퓨터 그래픽스-기반 데이터를 생성할 수도 있다. 일부 경우들에서, 비디오 소스가 비디오 카메라이면, 소스 디바이스 및 목적지 디바이스는 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 그러나, 상기 언급된 바와 같이, 본 개시에서 설명된 기법들은 일반적으로 비디오 코딩에 적용가능할 수도 있고, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다. 각각의 경우에, 캡처된, 미리캡처된, 또는 컴퓨터-생성된 비디오는 비디오 인코더에 의해 인코딩될 수도 있다. 인코딩된 비디오 정보는 그 후 컴퓨터 판독가능 매체 상으로 출력 인터페이스에 의해 출력될 수도 있다.
언급된 바와 같이, 컴퓨터 판독가능 매체는 무선 브로드캐스트 또는 유선 네트워크 송신과 같은 일시적 매체들, 또는 하드 디스크, 플래시 드라이브, 콤팩트 디스크, 디지털 비디오 디스크, 블루-레이 디스크, 또는 다른 컴퓨터 판독가능 매체들과 같은 저장 매체들 (즉, 비일시적 저장 매체들) 을 포함할 수도 있다. 일부 예들에서, 네트워크 서버 (미도시) 는 소스 디바이스로부터 인코딩된 비디오 데이터를 수신하고 그 인코딩된 비디오 데이터를, 예를 들어, 네트워크 송신을 통해 목적지 디바이스에 제공할 수도 있다. 유사하게, 디스크 스탬핑 설비와 같은 매체 생산 설비의 컴퓨팅 디바이스는, 소스 디바이스로부터 인코딩된 비디오 데이터를 수신하고 그 인코딩된 비디오 데이터를 포함하는 디스크를 생산할 수도 있다. 따라서, 컴퓨터 판독가능 매체는, 다양한 예들에서, 다양한 형태들의 하나 이상의 컴퓨터 판독가능 매체를 포함하는 것으로 이해될 수도 있다.
목적지 디바이스의 입력 인터페이스는 컴퓨터 판독가능 매체로부터 정보를 수신한다. 컴퓨터 판독가능 매체의 정보는 비디오 인코더에 의해 정의되고 또한 비디오 디코더에 의해 사용되는 신택스 정보를 포함할 수도 있으며, 이 신택스 정보는 블록들 및 다른 코딩된 유닛들, 예를 들어, 화상들의 그룹 (GOP) 의 특성들 및/또는 프로세싱을 기술하는 신택스 엘리먼트들을 포함한다. 디스플레이 디바이스는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 음극선관 (CRT), 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 타입의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중 임의의 것을 포함할 수도 있다. 본 발명의 다양한 실시형태들이 설명되었다.
인코딩 디바이스 (104) 및 디코딩 디바이스 (112) 의 특정 상세들이 도 19 및 도 20 에 각각 도시된다. 도 19 는 본 개시에 설명된 기법들 중 하나 이상을 구현할 수도 있는 예의 인코딩 디바이스 (104) 를 예시하는 블록 다이어그램이다. 인코딩 디바이스 (104) 는 예를 들어, 본 명세서에서 설명된 신택스 구조들 (예를 들어, VPS, SPS, PPS 또는 다른 신택스 엘리먼트들의 신택스 구조들) 을 생성할 수도 있다. 인코딩 디바이스 (104) 는, 비디오 슬라이스들 내의 비디오 블록들의 인트라-예측 및 인터-예측 코딩을 수행할 수도 있다. 이전에 설명된 바와 같이, 인트라-코딩은, 주어진 비디오 프레임 또는 화상 내에서 공간 리던던시를 감소 또는 제거하기 위해 공간 예측에 적어도 부분적으로 의존한다. 인터-코딩은, 비디오 시퀀스의 인접한 또는 주위의 프레임들 내에서 시간 리던던시를 감소 또는 제거하기 위해 시간 예측에 적어도 부분적으로 의존한다. 인트라-모드 (I 모드) 는 여러 공간 기반 압축 모드들 중 임의의 것을 지칭할 수도 있다. 단방향 예측 (P 모드) 또는 양방향 예측 (B 모드) 과 같은 인터-모드들은 여러 시간 기반 압축 모드들 중 임의의 것을 지칭할 수도 있다.
인코딩 디바이스 (104) 는, 파티셔닝 유닛 (35), 예측 프로세싱 유닛 (41), 필터 유닛 (63), 화상 메모리 (64), 합산기 (50), 변환 프로세싱 유닛 (52), 양자화 유닛 (54), 및 엔트로피 인코딩 유닛 (56) 을 포함한다. 예측 프로세싱 유닛 (41) 은 모션 추정 유닛 (42), 모션 보상 유닛 (44), 및 인트라 예측 프로세싱 유닛 (46) 을 포함한다. 비디오 블록 재구성을 위해, 인코딩 디바이스 (104) 는 또한 역 양자화 유닛 (58), 역 변환 프로세싱 유닛 (60), 및 합산기 (62) 를 포함한다. 필터 유닛 (63) 은 디블록킹 (deblocking) 필터, 적응적 루프 필터 (ALF), 및 샘플 적응적 오프셋 (SAO) 필터와 같은 하나 이상의 루프 필터들을 표현하도록 의도된다. 필터 유닛 (63) 은 인 루프 (in loop) 필터인 것으로서 도 19 에 도시되지만, 다른 구성들에 있어서, 필터 유닛 (63) 은 포스트 루프 필터로서 구현될 수도 있다. 포스트 프로세싱 디바이스 (57) 는 인코딩 디바이스 (104) 에 의해 생성되는 인코딩된 비디오 데이터에 대해 추가적인 프로세싱을 수행할 수도 있다. 이 개시의 기술들은 일부 인스턴스들에서 인코딩 디바이스 (104) 에 의해 구현될 수도 있다. 그러나, 다른 인스턴스들에서, 본 개시의 기법들 중 하나 이상은 포스트 프로세싱 디바이스 (57) 에 의해 구현될 수도 있다.
도 19 에 도시된 바와 같이, 인코딩 디바이스 (104) 는 비디오 데이터를 수신하고, 파티셔닝 유닛 (35) 은 데이터를 비디오 블록들로 파티셔닝한다. 파티셔닝은 또한, 예를 들어, LCU들 및 CU들의 쿼드트리 구조에 따른, 비디오 블록 파티셔닝은 물론, 슬라이스들, 슬라이스 세그먼트들, 타일들 또는 다른 더 큰 유닛들로의 파티셔닝을 포함할 수도 있다. 인코딩 디바이스 (104) 는 일반적으로 인코딩될 비디오 슬라이스 내의 비디오 블록들을 인코딩하는 컴포넌트들을 예시한다. 슬라이스는 다중 비디오 블록들로 (및 가능하게는 타일들로 지칭되는 비디오 블록들의 세트들로) 분할될 수도 있다. 예측 프로세싱 유닛 (41) 은, 에러 결과들 (예를 들어, 코딩 레이트 및 왜곡의 레벨 등) 에 기초하여 현재 비디오 블록에 대해, 복수의 인트라-예측 코딩 모드들 중 하나 또는 복수의 인터-예측 코딩 모드들 중 하나와 같은 복수의 가능한 코딩 모드들 중 하나를 선택할 수도 있다. 예측 프로세싱 유닛 (41) 은 결과의 인트라- 또는 인터-코딩된 블록을 잔차 블록 데이터를 생성하기 위해 합산기 (50) 에, 그리고 참조 화상으로서의 사용을 위한 인코딩된 블록을 재구성하기 위해 합산기 (62) 에 제공할 수도 있다.
예측 프로세싱 유닛 (41) 내의 인트라 예측 프로세싱 유닛 (46) 은 코딩될 현재 블록과 동일한 화상 또는 슬라이스에서의 하나 이상의 이웃하는 블록들에 대한 현재의 비디오 블록의 인트라 예측 코딩을 수행하여 공간적 압축을 제공할 수도 있다. 예측 프로세싱 유닛 (41) 내의 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 하나 이상의 예측 화상들에서 하나 이상의 예측 블록들에 대한 현재 비디오 블록의 인터 예측 코딩을 수행하여 시간적 압축을 제공한다.
모션 추정 유닛 (42) 은 비디오 시퀀스에 대한 미리결정된 패턴에 따라 비디오 슬라이스에 대한 인터-예측 모드를 결정하도록 구성될 수도 있다. 미리결정된 패턴은, P 슬라이스들, B 슬라이스들 또는 GPB 슬라이스들로서 시퀀스에서 비디오 슬라이스들을 지정할 수도 있다. 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 고도로 통합될 수도 있지만, 개념적인 목적들을 위하여 별도로 예시되어 있다. 모션 추정 유닛 (42) 에 의해 수행된 모션 추정은 비디오 블록들을 위한 모션을 추정하는 모션 벡터들을 생성하는 프로세스이다. 모션 벡터는, 예를 들어 참조 화상 내에서의 예측 블록에 대한 현재 비디오 프레임 또는 화상 내에서의 비디오 블록의 예측 유닛 (PU) 의 변위를 표시할 수도 있다.
예측 블록은 픽셀 차이의 관점에서 코딩될 비디오 블록의 PU 와 밀접하게 매칭하는 것으로 발견된 블록이며, 이 차이는 절대 차의 합 (SAD), 제곱 차의 합 (SSD), 또는 다른 차이 메트릭들에 의해 결정될 수도 있다. 일부 예들에 있어서, 인코딩 디바이스 (104) 는 화상 메모리 (64) 에 저장된 참조 화상들의 서브-정수 픽셀 포지션들에 대한 값들을 계산할 수도 있다. 예를 들어, 인코딩 디바이스 (104) 는 참조 화상의 1/4 픽셀 포지션들, 1/8 픽셀 포지션들, 또는 다른 분수의 픽셀 포지션들의 값들을 보간할 수도 있다. 따라서, 모션 추정 유닛 (42) 은 전체 픽셀 (full pixel) 포지션들 및 분수적 (fractional) 픽셀 포지션들에 대한 모션 검색을 수행하고 분수적 픽셀 정밀도를 갖는 모션 벡터를 출력할 수도 있다.
모션 추정 유닛 (42) 은 인터-코딩된 슬라이스에서의 비디오 블록의 PU 에 대한 모션 벡터를, 그 PU 의 포지션을 참조 화상의 예측 블록의 포지션과 비교함으로써 계산한다. 참조 화상은 제 1 참조 화상 리스트 (List 0) 또는 제 2 참조 화상 리스트 (List 1) 로부터 선택될 수도 있고, 이들의 각각은 화상 메모리 (64) 내에 저장된 하나 이상의 참조 화상들을 식별한다. 모션 추정 유닛 (42) 은 계산된 모션 벡터를 엔트로피 인코딩 유닛 (56) 및 모션 보상 유닛 (44) 으로 전송한다.
모션 보상 유닛 (44) 에 의해 수행된 모션 보상은, 모션 추정에 의해, 가능하다면 서브픽셀 정밀도에 대한 보간들을 수행하는 것에 의해 결정된 모션 벡터에 기초하여 예측 블록의 페치 또는 생성을 포함할 수도 있다. 현재 비디오 블록의 PU를 위한 모션 벡터의 수신시에, 모션 보상 유닛 (44) 은, 모션 벡터가 참조 화상 리스트에서 가리키는 예측 블록을 로케이팅할 수도 있다. 인코딩 디바이스 (104) 는, 코딩되고 있는 현재 비디오 블록의 픽셀 값들로부터 예측 블록의 픽셀 값들을 감산하여, 픽셀 차이 값들을 형성함으로써, 잔차 비디오 블록을 형성한다. 픽셀 차이 값들은, 블록을 위한 잔차 데이터를 형성하고, 루마 및 크로마 차이 컴포넌트들 양자 모두를 포함할 수도 있다. 합산기 (50) 는 이 감산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 모션 보상 유닛 (44) 은 또한, 비디오 슬라이스의 비디오 블록들을 디코딩함에 있어서 디코딩 디바이스 (112) 에 의한 사용을 위해 비디오 블록들 및 비디오 슬라이스와 연관된 신택스 엘리먼트들을 생성할 수도 있다.
인트라-예측 프로세싱 유닛 (46) 은 현재 블록을, 상기 설명된 바와 같은 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 수행된 인터-예측에 대한 대안으로서 인트라-예측할 수도 있다. 특히, 인트라-예측 프로세싱 유닛 (46) 은 현재 블록을 인코딩하는데 이용하기 위한 인트라-예측 모드를 결정할 수도 있다. 일부 예들에 있어서, 인트라 예측 프로세싱 유닛 (46) 은 예를 들어 별도의 인코딩 패스들 동안에 다양한 인트라-예측 모드들을 이용하여 현재 블록을 인코딩할 수도 있으며, 인트라 예측 프로세싱 유닛 (46) 은 테스팅된 모드들로부터의 이용을 위해 적절한 인트라-예측 모드를 선택할 수도 있다. 예를 들어, 인트라 예측 프로세싱 유닛 (46) 은 다양한 테스트된 인트라 예측 모드들을 위해 레이트 왜곡 분석을 이용하여 레이트 왜곡 값들을 산출하고, 테스트된 모드들 중에서 최상의 레이트 왜곡 특성들을 갖는 인트라 예측 모드를 선택할 수도 있다. 레이트 왜곡 분석은 일반적으로, 인코딩된 블록과, 인코딩된 블록을 생성하기 위해 인코딩되었던 원래의 인코딩되지 않은 블록 사이의 왜곡 (또는 에러) 의 양 뿐만 아니라 인코딩된 블록을 생성하는데 이용된 비트 레이트 (즉, 비트들의 수) 를 결정한다. 인트라 예측 프로세싱 유닛 (46) 은 그 왜곡들로부터 비율 (ratio) 및 여러 인코딩된 블록들을 위한 레이트들을 산출하여 어느 인트라 예측 모드가 블록을 위한 최상의 레이트 왜곡 값을 나타내는지를 결정할 수도 있다.
어떤 경우든, 블록에 대한 인트라-예측 모드를 선택한 이후, 인트라-예측 프로세싱 유닛 (46) 은 블록에 대한 선택된 인트라-예측 모드를 표시하는 정보를 엔트로피 인코딩 유닛 (56) 에 제공할 수도 있다. 엔트로피 인코딩 유닛 (56) 은 선택된 인트라-예측 모드를 표시한 정보를 인코딩할 수도 있다. 인코딩 디바이스 (104) 는, 각 콘텍스트에 사용할 가장 가능성있는 인트라-예측 모드, 인트라-예측 모드 인덱스 테이블 및 수정된 인트라-예측 모드 인덱스 테이블의 표시뿐만 아니라 다양한 블록에 대한 인코딩 콘텍스트의 정의들을 송신된 비트스트림 구성 데이터에서 포함할 수도 있다. 비트스트림 구성 데이터는 복수의 인트라 예측 모드 인덱스 테이블 및 복수의 수정된 인트라 예측 모드 인덱스 테이블 (코드워드 매핑 테이블이라고도 함) 을 포함할 수도 있다.
예측 프로세싱 유닛 (41) 이 인터-예측 또는 인트라-예측 중 어느 하나를 통해 현재 비디오 블록에 대한 예측 블록을 생성한 후에, 인코딩 디바이스 (104) 는 현재 비디오 블록으로부터 예측 블록을 감산함으로써 잔차 비디오 블록을 형성한다. 잔차 블록에서 잔차 비디오 데이터는 하나 이상의 TU 들에 포함될 수도 있고 변환 프로세싱 유닛 (52) 에 적용될 수도 있다. 변환 프로세싱 유닛 (52) 은 변환, 이를 테면 이산 코사인 변환 (DCT) 또는 개념적으로 유사한 변환을 이용하여 잔차 비디오 데이터를 잔차 변환 계수들로 변환한다. 변환 프로세싱 유닛 (52) 은 잔차 비디오 데이터를 픽셀 도메인에서 주파수 도메인과 같은 변환 도메인으로 변환할 수도 있다.
변환 프로세싱 유닛 (52) 은 양자화 유닛 (54) 에 결과의 변환 계수들을 전송할 수도 있다. 양자화 유닛 (54) 은 변환 계수들을 양자화하여 비트레이트를 더 감소시킨다. 양자화 프로세스는 계수들의 일부 또는 전부와 관련된 비트 깊이를 감소시킬 수도 있다. 양자화도 (degree of quantization) 는 양자화 파라미터를 조정함으로써 수정될 수도 있다. 그 후 일부 예들에서, 양자화 유닛 (54) 은 양자화된 변환 계수들을 포함하는 매트릭스의 스캔을 수행할 수도 있다. 대안적으로, 엔트로피 인코딩 유닛 (56) 이 스캔을 수행할 수도 있다.
양자화 이후, 엔트로피 인코딩 유닛 (56) 은 양자화된 변환 계수들을 엔트로피 인코딩한다. 예를 들어, 엔트로피 인코딩 유닛 (56) 은 컨텍스트-적응 가변 길이 코딩 (context adaptive variable length coding; CAVLC), 컨텍스트 적응 2 진 산술 코딩 (CABAC), 신택스-기반 컨텍스트-적응 2 진 산술 코딩 (syntax-based context-adaptive binary arithmetic coding; SBAC), 확률 간격 파티셔닝 엔트로피 (probability interval partitioning entropy; PIPE) 코딩 또는 또 다른 엔트로피 인코딩 기법을 수행할 수도 있다. 엔트로피 인코딩 유닛 (56) 에 의한 엔트로피 인코딩 다음에, 인코딩된 비트스트림은, 디코딩 디바이스 (112) 로 송신되거나 또는 디코딩 디바이스 (112) 에 의한 나중의 송신 또는 취출을 위해 보관될 수도 있다. 엔트로피 인코딩된 유닛 (56) 은 또한, 모션 벡터들 그리고 코딩되고 있는 현재 비디오 슬라이스를 위한 다른 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다.
역 양자화 유닛 (58) 및 역 변환 프로세싱 유닛 (60) 은 역 양자화 및 역 변환을 각각 적용하여, 참조 화상의 참조 블록으로서 나중에 사용하기 위해 픽셀 도메인에서 잔차 블록을 재구성한다. 모션 보상 유닛 (44) 은, 참조 화상 리스트 내 하나의 참조 화상의 예측 블록에 잔차 블록을 가산함으로써 참조 블록을 계산할 수도 있다. 모션 보상 유닛 (44) 은 또한, 하나 이상의 보간 필터들을 재구성된 잔차 블록에 적용하여, 모션 추정에서의 사용을 위한 서브-정수 픽셀 값들을 계산할 수도 있다. 합산기 (62) 는 재구성된 잔차 블록을, 모션 보상 유닛 (44) 에 의해 생성된 모션 보상된 예측 블록에 부가하여, 화상 메모리 (64) 로의 저장을 위한 참조 블록을 생성한다. 참조 블록은, 후속 비디오 프레임 또는 화상에서의 블록을 인터-예측하기 위해 참조 블록으로서 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 사용될 수도 있다.
이러한 방식으로, 도 19 의 인코딩 디바이스 (104) 는 LIC 파라미터들을 도출하고, 템플릿들의 사이즈들을 적응적으로 결정하며, 및/또는 가중치들을 적응적으로 선택하도록 구성된 비디오 인코더의 예를 나타낸다. 인코딩 디바이스 (104) 는 예를 들어 LIC 파라미터들을 도출하고, 템플릿들의 사이즈들을 적응적으로 결정하며, 및/또는 상술한 바와 같이 가중치 세트들을 적응적으로 선택할 수도 있다. 예를 들어, 인코딩 디바이스 (104) 는 도 16, 도 17 및 도 18 에 관하여 상술한 프로세스들을 포함하여 본 명세서에 기재된 기법들 중 임의의 것을 수행할 수도 있다. 일부 경우, 본 개시의 기법들 중 일부는 포스트 프로세싱 디바이스 (57) 에 의해 구현될 수도 있다.
도 20 은 예시의 디코딩 디바이스 (112) 를 도시하는 블록 다이어그램이다. 디코딩 디바이스 (112) 는, 엔트로피 디코딩 유닛 (80), 예측 프로세싱 유닛 (81), 역 양자화 유닛 (86), 역 변환 프로세싱 유닛 (88), 합산기 (90), 필터 유닛 (91), 및 화상 메모리 (92) 를 포함한다. 예측 프로세싱 유닛 (81) 은, 모션 보상 유닛 (82) 및 인트라 예측 프로세싱 유닛 (84) 을 포함한다. 디코딩 디바이스 (112) 는, 일부 예에서, 도 20 으로부터의 인코딩 디바이스 (104) 에 대해 설명된 인코딩 패스에 일반적으로 상반되는 디코딩 패스를 수행할 수도 있다.
디코딩 프로세스 동안, 디코딩 디바이스 (112) 는, 인코딩 디바이스 (104) 에 의해 전송된 인코딩된 비디오 슬라이스의 비디오 블록들 및 연관된 신택스 엘리먼트들을 나타내는 인코딩된 비디오 비트스트림을 수신한다. 일부 실시형태에서, 디코딩 디바이스 (112) 는 인코딩 디바이스 (104) 로부터 인코딩된 비디오 비트스트림을 수신할 수도 있다. 일부 실시형태에서, 디코딩 디바이스 (112) 는 전술된 기법들 중 하나 이상을 구현하도록 구성된 서버, 미디어 인식 네트워크 엘리먼트 (MANE), 비디오 편집기/스플라이서, 또는 다른 그러한 디바이스와 같은 네트워크 엔티티 (79) 로부터 인코딩된 비디오 비트스트림을 수신할 수도 있다. 네트워크 엔티티 (79) 는 인코딩 디바이스 (104) 를 포함할 수도 있거나 또는 그렇지 않을 수도 있다. 본 개시에 설명된 기법들의 일부는, 네트워크 엔티티 (79) 가 인코딩된 비디오 비트스트림을 디코딩 디바이스 (112) 로 송신하기 전에 네트워크 엔티티 (79) 에 의해 구현될 수도 있다. 일부 비디오 디코딩 시스템들에서, 네트워크 엔티티 (79) 및 디코딩 디바이스 (112) 는 별도의 디바이스들의 부분들일 수도 있지만, 다른 사례들에서는, 네트워크 엔티티 (79) 에 대해 설명된 기능은, 디코딩 디바이스 (112) 를 포함하는 동일한 디바이스에 의해 수행될 수도 있다.
디코딩 디바이스 (112) 의 엔트로피 디코딩 유닛 (80) 은 양자화된 계수들, 모션 벡터들, 및 다른 신택스 엘리먼트들을 생성하기 위하여 비트스트림을 엔트로피 디코딩한다. 엔트로피 디코딩 유닛 (80) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 예측 프로세싱 유닛 (81) 에 포워딩한다. 디코딩 디바이스 (112) 는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 신택스 엘리먼트들을 수신할 수도 있다. 엔트로피 디코딩 유닛 (80)은 VPS, SPS 및 PPS 와 같은 하나 이상의 파라미터 세트에서 고정 길이 신택스 엘리먼트 및 가변 길이 신택스 엘리먼트 양자 모두를 프로세싱 및 파싱할 수도 있다.
비디오 슬라이스가 인트라 코딩된 (I) 슬라이스로서 코딩될 때, 예측 프로세싱 유닛 (81) 의 인트라 예측 프로세싱 유닛 (84) 은, 현재 프레임 또는 화상의 이전에 디코딩된 블록들로부터 시그널링된 인트라 예측 모드 및 데이터에 기초하여 현재 비디오 슬라이스의 비디오 블록을 위한 예측 데이터를 생성할 수도 있다. 비디오 프레임이 인터 코딩된 (즉, B, P 또는 GPB) 슬라이스로서 코딩될 때, 예측 프로세싱 유닛 (81) 의 모션 보상 유닛 (82) 은 엔트로피 디코딩 유닛 (80) 으로부터 수신된 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재 비디오 슬라이스의 비디오 블록을 위한 예측 블록들을 생성한다. 예측 블록들은 참조 화상 리스트 내의 하나의 참조 화상로부터 생성될 수도 있다. 디코딩 디바이스 (112) 는 화상 메모리 (92) 에 저장된 참조 화상들에 기초하여 디폴트 (default) 구성 기법들을 이용하여 참조 프레임 리스트들, List 0 및 List 1 을 구성할 수도 있다.
모션 보상 유닛 (82) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 파싱 (parsing) 하여 현재 비디오 슬라이스의 비디오 블록을 위한 예측 정보를 결정하고, 그 예측 정보를 사용하여 디코딩되고 있는 현재 비디오 블록을 위한 예측 블록들을 생성한다. 예를 들어, 모션 보상 유닛 (82) 은 파라미터 세트에서 하나 이상의 신택스 엘리먼트들을 사용하여 비디오 슬라이스의 비디오 블록들을 코딩하는데 사용된 예측 모드 (예를 들어, 인트라 또는 인터 예측), 인터 예측 슬라이스 유형 (예를 들어, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스), 슬라이스를 위한 하나 이상의 참조 화상 리스트들을 위한 구성 정보, 슬라이스의 각각의 인터 인코딩된 비디오 블록을 위한 모션 벡터들, 슬라이스의 각각의 인터 코딩된 비디오 블록을 위한 인터 예측 상태, 및 현재 비디오 슬라이스에서 비디오 블록들을 디코딩하기 위한 다른 정보를 결정한다.
모션 보상 유닛 (82) 은 보간 필터들에 기초하여 보간을 또한 수행할 수도 있다. 모션 보상 유닛 (82) 은 비디오 블록들의 인코딩 동안 인코딩 디바이스 (104) 에 의해 이용되는 보간 필터들을 이용하여 참조 블록들의 서브 정수 픽셀들을 위한 보간된 값들을 계산할 수도 있다. 이 경우에, 모션 보상 유닛 (82) 은 수신된 신택스 엘리먼트들로부터 인코딩 디바이스 (104) 에 의해 이용된 보간 필터들을 결정하고, 그 보간 필터들을 이용하여 예측 블록들을 생성할 수도 있다.
역 양자화 유닛 (86) 은 비트스트림에서 제공되고 엔트로피 디코딩 유닛 (80) 에 의해 디코딩된 양자화된 변환 계수들을 역 양자화 또는 탈양자화한다. 역 양자화 프로세스는, 양자화의 정도, 그리고 마찬가지로, 적용되어야 하는 역 양자화의 정도를 결정하기 위해, 비디오 슬라이스에서 각 비디오 블록에 대해 인코딩 디바이스 (104) 에 의해 산출된 양자화 파라미터의 이용을 포함할 수도 있다. 역 변환 프로세싱 유닛 (88) 은, 픽셀 도메인에서 잔차 블록들을 생성하기 위해 변환 계수들에, 역 변환 (예를 들어, 역 DCT 또는 다른 적합한 역 변환), 역 정수 변환, 또는 개념적으로 유사한 역 변환 프로세스를 적용한다.
모션 보상 유닛 (82) 이 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재의 비디오 블록을 위한 예측 블록을 생성한 후, 디코딩 디바이스 (112) 는 역변환 유닛 (88) 으로부터의 잔차 블록들을 모션 보상 유닛 (82) 에 의해 생성된 대응하는 예측 블록들과 합산함으로써 디코딩된 비디오 블록을 형성한다. 합산기 (90) 는 이 합산 동작을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 원하는 경우, (코딩 루프에서 또는 코딩 루프 후의) 루프 필터들이 또한 픽셀 천이들을 매끄럽게 하거나 또는 다른 방법으로 비디오 품질을 향상시키는데 사용될 수도 있다. 필터 유닛 (91) 은 디블록킹 필터, ALF (adaptive loop filter) 및 SAO (sample adaptive offset) 필터 등의 하나 이상의 루프 필터들을 나타내도록 의도된다. 필터 유닛 (91) 이 인루프 필터인 것으로서 도 17에 도시되어 있지만, 다른 구성들에서, 필터 유닛 (91) 은 포스트 루프 필터로서 구현될 수도 있다. 다음으로, 주어진 프레임 또는 화상에서 디코딩된 비디오 블록들은 화상 메모리 (92) 에 저장되고, 이는 후속 모션 보상을 위해 사용된 참조 화상들을 저장한다. 화상 메모리 (92) 는 또한, 도 1 에 도시된 비디오 목적지 디바이스 (122) 와 같은 디스플레이 디바이스 상에 나중에 표출하기 위해 디코딩된 비디오를 저장한다.
이러한 방식으로, 도 20 의 디코딩 디바이스 (112) 는 LIC 파라미터들을 도출하고, 템플릿들의 사이즈들을 적응적으로 결정하며, 및/또는 가중치들을 적응적으로 선택하도록 구성된 비디오 디코더의 예를 나타낸다. 디코딩 디바이스 (112) 는 예를 들어 LIC 파라미터들을 도출하고, 템플릿들의 사이즈들을 적응적으로 결정하며, 및/또는 상술한 바와 같이 가중치 세트들을 적응적으로 선택할 수도 있다. 예를 들어, 디코딩 디바이스 (112) 는 도 16, 도 17 및 도 18 에 관하여 상술한 프로세스들을 포함하여 본 명세서에 기재된 기법들 중 임의의 것을 수행할 수도 있다.
이전의 설명에서, 본원의 양태들은 이들의 구체적 실시형태를 참조하여 설명되었지만, 당업자는 본 발명이 이에 한정되지 않는다는 것을 인식할 것이다. 따라서, 본원의 예시적 실시 형태들이 본원에서 상세하게 설명되었지만, 본 발명의 개념은 이와 달리 다양하게 구체화되고 채용될 수도 있으며, 첨부된 청구 범위는 선행 기술에 의해 제한되는 것을 제외하고는 그러한 변형을 포함하는 것으로 해석되도록 의도된다. 전술한 본 발명의 다양한 특징 및 양태는 개별적으로 또는 공동으로 사용될 수도 있다. 또한, 실시형태들은 본 명세서의 더 넓은 사상 및 범위를 벗어나지 않으면서 본원에 기재된 것 이외의 임의의 수의 환경 및 응용들에서 이용될 수 있다. 따라서, 명세서 및 도면들은 제한적이 아닌 예시적인 것으로 간주되어야 한다. 예시의 목적을 위해, 방법들이 특정 순서로 설명되었다. 대안적인 실시 형태에서, 그 방법들은 설명된 것과 상이한 순서로 수행될 수도 있다는 것을 이해해야 한다.
컴포넌트들이 특정 동작을 수행하도록 "구성된" 것으로 기술되는 경우, 그러한 구성은 예를 들어, 전자 회로 또는 다른 하드웨어를 설계하여 그 동작을 수행하는 것에 의해, 프로그래밍 가능한 전자 회로 (예를 들어, 마이크로프로세서 또는 다른 적절한 전자 회로) 를 프로그래밍하여 그 동작을 수행하는 것에 의해 또는 이들의 임의의 조합에 의해, 달성될 수 있다.
본 명세서에 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 논리 블록, 모듈, 회로, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 조합으로 구현될 수도 있다. 하드웨어 및 소프트웨어의 이러한 교환가능성을 명백하게 예증하기 위하여, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들이 일반적으로 그들의 기능의 관점에서 설명되었다. 그러한 기능이 하드웨어 또는 소프트웨어로 구현될지 여부는, 전체 시스템에 부과된 특정 응용 및 설계 제약에 달려 있다. 당업자는 상술한 기능성을 각각의 특정 어플리케이션에 대해 다양한 방식으로 구현할 수도 있지만, 이러한 구현 결정은 본 발명의 범위를 벗어나게 하는 것으로 해석되지 않아야 한다.
본 명세서에 기재된 기법들은 또한 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수도 있다. 그러한 기법들은 범용 컴퓨터, 무선 통신 디바이스 핸드세트, 또는 무선 통신 디바이스 핸드세트 및 다른 디바이스들에서의 응용을 포함하는 다수의 사용들을 갖는 집적 회로 디바이스들과 같은 다양한 디바이스들 중의 임의의 것에서 구현될 수도 있다. 모듈들 또는 컴포넌트들로서 설명된 임의의 피처들은 집적 로직 디바이스 (integrated logic device) 에서 함께 구현되거나 또는 이산이지만 연동적인 (interoperable) 로직 디바이스들로서 따로 구현될 수도 있다. 소프트웨어로 구현되면, 기법들은, 실행될 때, 위에서 설명된 방법들 중 하나 이상을 수행하는 명령들을 포함하는 프로그램 코드를 포함하는 컴퓨터 판독가능 데이터 저장 매체에 의해 적어도 부분적으로 실현될 수도 있다. 컴퓨터 판독가능 데이터 저장 매체는 패키징 재료들을 포함할 수도 있는 컴퓨터 프로그램 제품의 일부를 형성할 수도 있다. 컴퓨터 판독가능 매체는 메모리 또는 데이터 저장 매체, 예컨대 동기식 랜덤 액세스 메모리 (SDRAM) 와 같은 DRAM, 판독 전용 메모리 (ROM), 비휘발성 랜덤 액세스 메모리 (NVRAM), 전기적 소거가능 프로그램 가능 판독 전용 메모리 (EEPROM), 플래시 메모리, 자기 또는 광학 데이터 저장 매체 등을 포함할 수도 있다. 추가로 또는 대안적으로 기법들은, 전파된 신호들 또는 파들과 같은, 명령들 또는 데이터 구조들의 형태의 프로그램 코드를 반송하거나 또는 통신하고, 컴퓨터에 의해 액세스, 판독 및/또는 실행될 수 있는 컴퓨터 판독가능 통신 매체에 의해 적어도 부분적으로 실현될 수도 있다.
프로그램 코드는, 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로 프로세서들, 주문형 집적 회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 균등한 집적된 또는 별개의 로직 회로부와 같은 하나 이상의 프로세서들을 포함할 수도 있는 프로세서에 의해 실행될 수도 있다. 그러한 프로세서는 본 개시에 기재된 기법들 중의 어느 것을 수행하도록 구성될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 조합, 예를 들어 DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서, DSP 코어와 결합한 하나 이상의 마이크로프로세서, 또는 임의의 다른 이러한 구성으로서 구현될 수도 있다. 따라서, 본원에 사용된 용어 "프로세서" 는 임의의 전술한 구조, 전술한 구조의 임의의 조합, 또는 본원에 설명된 기술들의 구현에 적합한 임의의 다른 구조 또는 장치를 지칭할 수도 있다. 추가로, 일부 양태에서, 여기서 설명된 기능은 인코딩 및 디코딩을 위해 구성된 전용 소프트웨어 모듈 또는 하드웨어 모듈 내에 제공되거나 또는 결합된 비디오 인코더-디코더 (코덱) 에 포함될 수도 있다.

Claims (30)

  1. 비디오 데이터를 프로세싱하는 방법으로서,
    상기 비디오 데이터의 화상의 현재 블록을 획득하는 단계;
    상기 현재 블록의 파라미터를 결정하는 단계;
    상기 현재 블록의 결정된 상기 파라미터에 기초하여 상기 현재 블록의 템플릿에서의 샘플들의 행들의 수 또는 샘플들의 열들의 수 중 적어도 하나 이상 및 참조 화상의 템플릿에서의 샘플들의 행들의 수 또는 샘플들의 열들의 수 중 적어도 하나 이상을 결정하는 단계; 및
    상기 현재 블록에 대한 모션 보상을 수행하는 단계로서, 상기 모션 보상을 수행하는 단계는 상기 현재 블록의 템플릿 및 상기 참조 화상의 템플릿을 사용하여 상기 현재 블록에 대한 하나 이상의 로컬 조명 보상 파라미터들을 도출하는 단계를 포함하는, 상기 현재 블록에 대한 모션 보상을 수행하는 단계를 포함하는, 비디오 데이터를 프로세싱하는 방법.
  2. 제 1 항에 있어서,
    상기 현재 블록의 상기 파라미터는 상기 현재 블록의 사이즈를 포함하는, 비디오 데이터를 프로세싱하는 방법.
  3. 제 2 항에 있어서,
    상기 현재 블록의 상기 사이즈는 상기 현재 블록의 폭을 포함하는, 비디오 데이터를 프로세싱하는 방법.
  4. 제 3 항에 있어서,
    상기 현재 블록의 상기 템플릿에서의 상기 샘플들의 행들의 수는 상기 현재 블록의 상기 폭이 임계 폭보다 작은 경우 하나의 행인, 비디오 데이터를 프로세싱하는 방법.
  5. 제 3 항에 있어서,
    상기 현재 블록의 상기 템플릿에서의 상기 샘플들의 행들의 수는 상기 현재 블록의 상기 폭이 임계 폭보다 큰 경우 하나의 행보다 많은, 비디오 데이터를 프로세싱하는 방법.
  6. 제 2 항에 있어서,
    상기 현재 블록의 사이즈는 상기 현재 블록의 높이를 포함하는, 비디오 데이터를 프로세싱하는 방법.
  7. 제 6 항에 있어서,
    상기 현재 블록의 상기 템플릿에서의 상기 샘플들의 열들의 수는 상기 현재 블록의 상기 높이가 임계 높이보다 작은 경우 하나의 열인, 비디오 데이터를 프로세싱하는 방법.
  8. 제 6 항에 있어서,
    상기 현재 블록의 상기 템플릿에서의 상기 샘플들의 열들의 수는 상기 현재 블록의 상기 높이가 임계 높이보다 큰 경우 하나의 열보다 많은, 비디오 데이터를 프로세싱하는 방법.
  9. 제 2 항에 있어서,
    상기 현재 블록의 사이즈는 상기 현재 블록의 폭 및 상기 현재 블록의 높이를 포함하는, 비디오 데이터를 프로세싱하는 방법.
  10. 제 1 항에 있어서,
    상기 현재 블록의 상기 파라미터는 상기 현재 블록의 크로마 포맷을 포함하는, 비디오 데이터를 프로세싱하는 방법.
  11. 제 10 항에 있어서,
    상기 현재 블록의 템플릿에서의 상기 샘플들의 행들의 수 및 상기 샘플들의 열들의 수는 상기 현재 블록의 상기 크로마 포맷이 4:2:0 인 경우 상기 현재 블록의 루마 사이즈의 반으로 설정되는, 비디오 데이터를 프로세싱하는 방법.
  12. 제 10 항에 있어서,
    상기 현재 블록의 템플릿에서의 상기 샘플들의 행들의 수는 상기 현재 블록의 루마 사이즈와 동일한 사이즈로 설정되고,
    상기 현재 블록의 템플릿에서의 상기 샘플들의 열들의 수는 상기 현재 블록의 상기 크로마 포맷이 4:2:2 인 경우 상기 루마 사이즈의 반으로 설정되는, 비디오 데이터를 프로세싱하는 방법.
  13. 제 1 항에 있어서,
    상기 하나 이상의 로컬 조명 보상 파라미터들을 사용하여 상기 현재 블록을 디코딩하는 단계를 더 포함하는, 비디오 데이터를 프로세싱하는 방법.
  14. 제 1 항에 있어서,
    인코딩된 비디오 비트스트림에서 상기 하나 이상의 로컬 조명 보상 파라미터들을 시그널링하는 단계를 더 포함하는, 비디오 데이터를 프로세싱하는 방법.
  15. 장치로서,
    비디오 데이터를 저장하도록 구성된 메모리; 및
    프로세서를 포함하고,
    상기 프로세서는,
    상기 비디오 데이터의 화상의 현재 블록을 획득하고;
    상기 현재 블록의 파라미터를 결정하며;
    상기 현재 블록의 결정된 상기 파라미터에 기초하여 상기 현재 블록의 템플릿에서의 샘플들의 행들의 수 또는 샘플들의 열들의 수 중 적어도 하나 이상 및 참조 화상의 템플릿에서의 샘플들의 행들의 수 또는 샘플들의 열들의 수 중 적어도 하나 이상을 결정하고; 및
    상기 현재 블록에 대한 모션 보상을 수행하는 것으로서, 상기 모션 보상을 수행하는 것은 상기 현재 블록의 템플릿 및 상기 참조 화상의 템플릿을 사용하여 상기 현재 블록에 대한 하나 이상의 로컬 조명 보상 파라미터들을 도출하는 것을 포함하는, 상기 현재 블록에 대한 모션 보상을 수행하도록
    구성된, 장치.
  16. 제 15 항에 있어서,
    상기 현재 블록의 상기 파라미터는 상기 현재 블록의 사이즈를 포함하는, 장치.
  17. 제 16 항에 있어서,
    상기 현재 블록의 상기 사이즈는 상기 현재 블록의 폭을 포함하는, 장치.
  18. 제 17 항에 있어서,
    상기 현재 블록의 상기 템플릿에서의 상기 샘플들의 행들의 수는 상기 현재 블록의 상기 폭이 임계 폭보다 작은 경우 하나의 행인, 장치.
  19. 제 17 항에 있어서,
    상기 현재 블록의 상기 템플릿에서의 상기 샘플들의 행들의 수는 상기 현재 블록의 상기 폭이 임계 폭보다 큰 경우 하나의 행보다 많은, 장치.
  20. 제 16 항에 있어서,
    상기 현재 블록의 사이즈는 상기 현재 블록의 높이를 포함하는, 장치.
  21. 제 20 항에 있어서,
    상기 현재 블록의 상기 템플릿에서의 상기 샘플들의 열들의 수는 상기 현재 블록의 상기 높이가 임계 높이보다 작은 경우 하나의 열인, 장치.
  22. 제 20 항에 있어서,
    상기 현재 블록의 상기 템플릿에서의 상기 샘플들의 열들의 수는 상기 현재 블록의 상기 높이가 임계 높이보다 큰 경우 하나의 열보다 많은, 장치.
  23. 제 16 항에 있어서,
    상기 현재 블록의 사이즈는 상기 현재 블록의 폭 및 상기 현재 블록의 높이를 포함하는, 장치.
  24. 제 15 항에 있어서,
    상기 현재 블록의 상기 파라미터는 상기 현재 블록의 크로마 포맷을 포함하는, 장치.
  25. 제 24 항에 있어서,
    상기 현재 블록의 템플릿에서의 상기 샘플들의 행들의 수 및 상기 샘플들의 열들의 수는 상기 현재 블록의 상기 크로마 포맷이 4:2:0 인 경우 상기 현재 블록의 루마 사이즈의 반으로 설정되는, 장치.
  26. 제 24 항에 있어서,
    상기 현재 블록의 템플릿에서의 상기 샘플들의 행들의 수는 상기 현재 블록의 루마 사이즈와 동일한 사이즈로 설정되고,
    상기 현재 블록의 템플릿에서의 상기 샘플들의 열들의 수는 상기 현재 블록의 상기 크로마 포맷이 4:2:2 인 경우 상기 루마 사이즈의 반으로 설정되는, 장치.
  27. 제 15 항에 있어서,
    상기 비디오 데이터를 디스플레이하기 위한 디스플레이를 더 포함하는, 장치.
  28. 제 15 항에 있어서,
    상기 장치는 화상들을 캡쳐하기 위한 카메라를 갖는 이동 디바이스를 포함하는, 장치.
  29. 명령들을 저장한 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금,
    비디오 데이터의 화상의 현재 블록을 획득하게 하고;
    상기 현재 블록의 파라미터를 결정하게 하며;
    상기 현재 블록의 결정된 상기 파라미터에 기초하여 상기 현재 블록의 템플릿에서의 샘플들의 행들의 수 또는 샘플들의 열들의 수 중 적어도 하나 이상 및 참조 화상의 템플릿에서의 샘플들의 행들의 수 또는 샘플들의 열들의 수 중 적어도 하나 이상을 결정하게 하고; 및
    상기 현재 블록에 대한 모션 보상을 수행하게 하는 것으로서, 상기 모션 보상을 수행하는 것은 상기 현재 블록의 템플릿 및 상기 참조 화상의 템플릿을 사용하여 상기 현재 블록에 대한 하나 이상의 로컬 조명 보상 파라미터들을 도출하는 것을 포함하는, 상기 현재 블록에 대한 모션 보상을 수행하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
  30. 비디오 데이터를 프로세싱하기 위한 장치로서,
    상기 비디오 데이터의 화상의 현재 블록을 획득하는 수단;
    상기 현재 블록의 파라미터를 결정하는 수단;
    상기 현재 블록의 결정된 상기 파라미터에 기초하여 상기 현재 블록의 템플릿에서의 샘플들의 행들의 수 또는 샘플들의 열들의 수 중 적어도 하나 이상 및 참조 화상의 템플릿에서의 샘플들의 행들의 수 또는 샘플들의 열들의 수 중 적어도 하나 이상을 결정하는 수단; 및
    상기 현재 블록에 대한 모션 보상을 수행하는 수단으로서, 상기 모션 보상을 수행하는 것은 상기 현재 블록의 템플릿 및 상기 참조 화상의 템플릿을 사용하여 상기 현재 블록에 대한 하나 이상의 로컬 조명 보상 파라미터들을 도출하는 것을 포함하는, 상기 현재 블록에 대한 모션 보상을 수행하는 수단을 포함하는, 비디오 데이터를 프로세싱하기 위한 장치.
KR1020197009649A 2016-10-05 2017-10-04 조명 보상을 위해 템플릿 사이즈를 적응적으로 결정하는 시스템들 및 방법들 KR20190055819A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662404715P 2016-10-05 2016-10-05
US62/404,715 2016-10-05
US15/713,075 2017-09-22
US15/713,075 US10880570B2 (en) 2016-10-05 2017-09-22 Systems and methods of adaptively determining template size for illumination compensation
PCT/US2017/055188 WO2018067732A1 (en) 2016-10-05 2017-10-04 Systems and methods of adaptively determining template size for illumination compensation

Publications (1)

Publication Number Publication Date
KR20190055819A true KR20190055819A (ko) 2019-05-23

Family

ID=61757326

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197009649A KR20190055819A (ko) 2016-10-05 2017-10-04 조명 보상을 위해 템플릿 사이즈를 적응적으로 결정하는 시스템들 및 방법들

Country Status (7)

Country Link
US (3) US10880570B2 (ko)
EP (1) EP3523962A1 (ko)
JP (1) JP2019531029A (ko)
KR (1) KR20190055819A (ko)
CN (1) CN109792518B (ko)
BR (1) BR112019006894A2 (ko)
WO (3) WO2018067732A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023096472A1 (ko) * 2021-11-29 2023-06-01 주식회사 윌러스표준기술연구소 비디오 신호 처리 방법 및 이를 위한 장치
WO2024010377A1 (ko) * 2022-07-05 2024-01-11 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3044507A1 (fr) * 2015-11-30 2017-06-02 Orange Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants
CA3039153A1 (en) 2016-10-04 2018-04-12 Kt Corporation Method and apparatus for processing video signal
US10880570B2 (en) 2016-10-05 2020-12-29 Qualcomm Incorporated Systems and methods of adaptively determining template size for illumination compensation
WO2018068264A1 (zh) * 2016-10-13 2018-04-19 富士通株式会社 图像编码/解码方法、装置以及图像处理设备
KR20180074000A (ko) * 2016-12-23 2018-07-03 삼성전자주식회사 비디오 디코딩 방법, 이를 수행하는 비디오 디코더, 비디오 인코딩 방법, 및 이를 수행하는 비디오 인코더
GB2583826B (en) 2017-04-21 2021-05-19 Zenimax Media Inc Systems and methods for rendering & pre-encoded load estimation based encoder hinting
US10742975B2 (en) 2017-05-09 2020-08-11 Futurewei Technologies, Inc. Intra-prediction with multiple reference lines
US20200014918A1 (en) * 2018-07-08 2020-01-09 Mellanox Technologies, Ltd. Application accelerator
US20200014945A1 (en) * 2018-07-08 2020-01-09 Mellanox Technologies, Ltd. Application acceleration
US11252464B2 (en) 2017-06-14 2022-02-15 Mellanox Technologies, Ltd. Regrouping of video data in host memory
GB2563943B (en) 2017-06-30 2021-02-24 Canon Kk Method and apparatus for encoding or decoding video data in FRUC mode with reduced memory accesses
US10542279B2 (en) 2017-09-25 2020-01-21 Intel Corporation Temporal motion vector prediction control in video coding
EP3468198A1 (en) * 2017-10-05 2019-04-10 Thomson Licensing Method and apparatus for video encoding and decoding based on illumination compensation
EP3468194A1 (en) * 2017-10-05 2019-04-10 Thomson Licensing Decoupled mode inference and prediction
GB2567861A (en) 2017-10-27 2019-05-01 Sony Corp Image data encoding and decoding
EP3704857A1 (en) * 2017-11-01 2020-09-09 VID SCALE, Inc. Overlapped block motion compensation
US11223824B2 (en) * 2017-11-09 2022-01-11 Sony Corporation Image processing apparatus and image processing method
US11057640B2 (en) * 2017-11-30 2021-07-06 Lg Electronics Inc. Image decoding method and apparatus based on inter-prediction in image coding system
US11082688B2 (en) * 2018-01-15 2021-08-03 Telefonaktiebolaget Lm Ericsson (Publ) Restricted overlapped block motion compensation
EP3741115A1 (en) * 2018-01-16 2020-11-25 Vid Scale, Inc. Motion compensated bi-prediction based on local illumination compensation
EP3518543A1 (en) * 2018-01-26 2019-07-31 Thomson Licensing Illumination compensation flag in frame rate up-conversion with template matching
KR102570087B1 (ko) * 2018-03-27 2023-08-25 (주)휴맥스 모션 보상을 이용하는 비디오 신호 처리 방법 및 장치
WO2019190907A1 (en) * 2018-03-30 2019-10-03 Vid Scale, Inc Template-based inter prediction techniques based on encoding and decoding latency reduction
US10834409B2 (en) * 2018-04-06 2020-11-10 Arris Enterprises Llc System and method of implementing multiple prediction models for local illumination compensation
EP3554080A1 (en) * 2018-04-13 2019-10-16 InterDigital VC Holdings, Inc. Methods and devices for picture encoding and decoding
US10735721B2 (en) * 2018-04-17 2020-08-04 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method using local illumination compensation
WO2019203036A1 (ja) * 2018-04-17 2019-10-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US11343541B2 (en) * 2018-04-30 2022-05-24 Hfi Innovation Inc. Signaling for illumination compensation
US10506251B2 (en) * 2018-05-08 2019-12-10 Tencent America LLC Method and apparatus for video coding
JP2021523604A (ja) * 2018-05-09 2021-09-02 インターデジタル ヴイシー ホールディングス, インコーポレイテッド ビデオ符号化及び復号化の動き補償
WO2019231362A1 (en) * 2018-05-31 2019-12-05 Huawei Technologies Co., Ltd. Method and apparatus for restricted long-distance motion vector prediction
EP3804329A1 (en) * 2018-06-01 2021-04-14 FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. Video codec using template matching prediction
WO2019234672A1 (en) * 2018-06-07 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Partial cost calculation
US11153599B2 (en) 2018-06-11 2021-10-19 Mediatek Inc. Method and apparatus of bi-directional optical flow for video coding
CN112385226A (zh) * 2018-06-18 2021-02-19 交互数字Vc控股公司 视频编码中的照度补偿
TWI719519B (zh) 2018-07-02 2021-02-21 大陸商北京字節跳動網絡技術有限公司 對於dmvr的塊尺寸限制
CN112352424A (zh) 2018-07-02 2021-02-09 华为技术有限公司 用于运动矢量预测的方法和装置
US11051036B2 (en) * 2018-07-14 2021-06-29 Mediatek Inc. Method and apparatus of constrained overlapped block motion compensation in video coding
KR20200010113A (ko) * 2018-07-18 2020-01-30 한국전자통신연구원 지역 조명 보상을 통한 효과적인 비디오 부호화/복호화 방법 및 장치
WO2020031923A1 (ja) * 2018-08-06 2020-02-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法および復号方法
WO2020031902A1 (ja) * 2018-08-06 2020-02-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法および復号方法
BR112021002857A8 (pt) * 2018-08-17 2023-02-07 Mediatek Inc Métodos e aparelhos de processamento de vídeo com predição bidirecional em sistemas de codificação de vídeo
US11956460B2 (en) * 2018-08-31 2024-04-09 Hulu, LLC Selective template matching in video coding
EP3854098A1 (en) * 2018-09-19 2021-07-28 InterDigital VC Holdings, Inc. Method and device for picture encoding and decoding
EP3668097A1 (en) * 2018-12-13 2020-06-17 InterDigital VC Holdings, Inc. Generalized bi-prediction index coding
WO2020060843A1 (en) * 2018-09-19 2020-03-26 Interdigital Vc Holdings, Inc. Generalized bi-prediction index coding
US11146800B2 (en) * 2018-09-24 2021-10-12 Tencent America LLC Low latency local illumination compensation
WO2020085235A1 (ja) * 2018-10-22 2020-04-30 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
CN112868239B (zh) 2018-10-23 2023-05-30 北京字节跳动网络技术有限公司 并置的局部照明补偿和帧内块复制编解码
WO2020084502A1 (en) 2018-10-23 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Video processing using local illumination compensation
EP3878183A1 (en) * 2018-11-05 2021-09-15 InterDigital VC Holdings, Inc. Simplifications of coding modes based on neighboring samples dependent parametric models
KR20210087450A (ko) * 2018-11-06 2021-07-12 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 기하학적 파티션을 이용한 인터 예측을 위한 사이드 정보 시그널링
WO2020098810A1 (en) 2018-11-17 2020-05-22 Beijing Bytedance Network Technology Co., Ltd. Merge with motion vector difference in video processing
JP7209092B2 (ja) 2018-12-21 2023-01-19 北京字節跳動網絡技術有限公司 動きベクトル差分によるマージ(mmvd)モードにおける動きベクトル予測
BR112021006547A2 (pt) * 2018-12-25 2021-07-06 Guangdong Oppo Mobile Telecommunications Corp Ltd método de previsão para decodificação, dispositivo de previsão para decodificação e mídia de armazenamento de computador que armazena um programa de previsão para decodificação
US10887611B2 (en) * 2018-12-27 2021-01-05 Qualcomm Incorporated Pruning for illumination compensation mode
WO2020140862A1 (en) 2018-12-30 2020-07-09 Beijing Bytedance Network Technology Co., Ltd. Conditional application of inter prediction with geometric partitioning in video processing
CN113491130B (zh) * 2019-01-17 2024-02-27 北京达佳互联信息技术有限公司 用于视频编解码的线性模型推导的方法和装置
WO2020149770A1 (en) 2019-01-18 2020-07-23 Huawei Technologies Co., Ltd. Method and apparatus of local illumination compensation for predictive coding
US11172195B2 (en) * 2019-01-26 2021-11-09 Qualcomm Incorporated Excluding intra coded reference samples from local illumination compensation parameter derivation
WO2020151765A1 (en) * 2019-01-27 2020-07-30 Beijing Bytedance Network Technology Co., Ltd. Interpolation for bi-prediction with cu-level weight
CN113424531A (zh) * 2019-02-08 2021-09-21 交互数字Vc控股公司 用于使用照明补偿进行图片编码和解码的方法和设备
US11997308B2 (en) * 2019-03-08 2024-05-28 Interdigital Madison Patent Holdings, Sas Local illumination compensation for video encoding or decoding
EP3935861A1 (en) * 2019-03-08 2022-01-12 InterDigital VC Holdings, Inc. Local illumination compensation for video encoding or decoding
CN112866699B (zh) 2019-03-11 2022-11-01 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN113508596A (zh) * 2019-03-11 2021-10-15 Oppo广东移动通信有限公司 帧内预测方法、装置及计算机存储介质
EP3918804A4 (en) 2019-03-14 2023-02-08 HFI Innovation Inc. METHODS AND APPARATUS FOR VIDEO PROCESSING USING MOTION DECOMPOSITION AND SUB-PARTITION BASE FILLING
KR20210138760A (ko) * 2019-03-25 2021-11-19 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 이미지 요소 예측 방법, 인코더, 디코더 및 저장 매체
CN113841405B (zh) * 2019-05-21 2023-10-10 华为技术有限公司 用于帧间预测的局部光照补偿的方法和设备
WO2020251930A1 (en) * 2019-06-12 2020-12-17 Interdigital Vc Holdings, Inc. Illumination compensation for video encoding and decoding
EP3987792A4 (en) * 2019-06-21 2022-09-28 Telefonaktiebolaget Lm Ericsson (Publ) VIDEO CODING LAYER RATE INCREASED INDICATION
US11272200B2 (en) * 2019-06-24 2022-03-08 Tencent America LLC Method and apparatus for video coding
KR20220036936A (ko) 2019-07-25 2022-03-23 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인트라 블록 복사 가상 버퍼에 대한 크기 제한
AU2020316548A1 (en) * 2019-07-25 2022-02-24 Beijing Bytedance Network Technology Co., Ltd. Mapping restriction for intra-block copy virtual buffer
CN114342410A (zh) 2019-09-05 2022-04-12 北京字节跳动网络技术有限公司 帧内块复制模式下块矢量的范围约束
KR20220064968A (ko) 2019-09-23 2022-05-19 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 가상 파이프라인 데이터 유닛에 기초한 인트라 블록 복사 가상 버퍼의 설정
EP4066513A4 (en) * 2019-11-29 2023-01-25 ZTE Corporation METHOD AND DEVICE FOR VIDEO EDITING WITH MULTIPLE VIEWS
CN111028135B (zh) * 2019-12-10 2023-06-02 国网重庆市电力公司电力科学研究院 一种图像文件修复方法
CN111031319B (zh) * 2019-12-13 2022-04-19 浙江大华技术股份有限公司 一种局部光照补偿预测方法、终端设备及计算机存储介质
WO2021185306A1 (en) 2020-03-18 2021-09-23 Beijing Bytedance Network Technology Co., Ltd. Intra block copy buffer and palette predictor update
US20220201282A1 (en) * 2020-12-22 2022-06-23 Qualcomm Incorporated Overlapped block motion compensation
US11863774B2 (en) * 2021-01-15 2024-01-02 Tencent America LLC Method and apparatus for video coding
US20220312004A1 (en) * 2021-03-23 2022-09-29 Tencent America LLC Method and apparatus for video coding
US20240187567A1 (en) * 2021-04-09 2024-06-06 Beijing Bytedance Network Technology Co., Ltd. Adaptive motion candidate list
US20220360769A1 (en) * 2021-04-26 2022-11-10 Tencent America LLC Bi-prediction without signaling cu-level weights
US20240015278A1 (en) * 2022-07-08 2024-01-11 Tencent America LLC Method and apparatus for bi-prediction with sample adaptive weights
US20240146903A1 (en) * 2022-10-26 2024-05-02 Tencent America LLC Context design for coding and decoding syntax elements in inter prediction modes

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3276985B2 (ja) * 1991-06-27 2002-04-22 ゼロックス・コーポレーション イメージピクセル処理方法
JP3116967B2 (ja) * 1991-07-16 2000-12-11 ソニー株式会社 画像処理装置および画像処理方法
EP0679032B1 (en) * 1994-04-20 2010-06-23 Oki Electric Industry Co., Ltd. Image encoding and decoding method and apparatus using edge systhesis and inverse wavelet transform
US5781788A (en) 1995-05-08 1998-07-14 Avc Technology, Inc. Full duplex single clip video codec
US6259741B1 (en) * 1999-02-18 2001-07-10 General Instrument Corporation Method of architecture for converting MPEG-2 4:2:2-profile bitstreams into main-profile bitstreams
US7266150B2 (en) 2001-07-11 2007-09-04 Dolby Laboratories, Inc. Interpolation of video compression frames
WO2006033953A1 (en) 2004-09-16 2006-03-30 Thomson Licensing Video codec with weighted prediction utilizing local brightness variation
US9031130B2 (en) 2007-04-09 2015-05-12 Ntt Docomo, Inc. Image prediction/encoding device, image prediction/encoding method, image prediction/encoding program, image prediction/decoding device, image prediction/decoding method, and image prediction decoding program
KR101244917B1 (ko) * 2007-06-11 2013-03-18 삼성전자주식회사 조도 보상 방법 및 장치, 이를 이용한 영상의 부호화,복호화 방법 및 장치
JP5406465B2 (ja) 2008-04-24 2014-02-05 株式会社Nttドコモ 画像予測符号化装置、画像予測符号化方法、画像予測符号化プログラム、画像予測復号装置、画像予測復号方法及び画像予測復号プログラム
JP2010035137A (ja) * 2008-07-01 2010-02-12 Sony Corp 画像処理装置および方法、並びにプログラム
CN102113326A (zh) 2008-08-04 2011-06-29 杜比实验室特许公司 重叠块差异估计和补偿体系结构
US20110176741A1 (en) 2008-09-24 2011-07-21 Kazushi Sato Image processing apparatus and image processing method
WO2010035732A1 (ja) 2008-09-24 2010-04-01 ソニー株式会社 画像処理装置および方法
TWI498003B (zh) 2009-02-02 2015-08-21 Thomson Licensing 代表一序列圖像的碼式資料連流之解碼方法和一序列圖像之寫碼方法及碼式圖像資料結構
US8873626B2 (en) * 2009-07-02 2014-10-28 Qualcomm Incorporated Template matching for video coding
US8995526B2 (en) 2009-07-09 2015-03-31 Qualcomm Incorporated Different weights for uni-directional prediction and bi-directional prediction in video coding
KR20110071047A (ko) 2009-12-20 2011-06-28 엘지전자 주식회사 비디오 신호 디코딩 방법 및 장치
CN102223525B (zh) * 2010-04-13 2014-02-19 富士通株式会社 视频解码方法和系统
KR101836981B1 (ko) 2010-07-09 2018-03-09 한국전자통신연구원 템플릿 매칭을 이용한 영상 부호화 방법 및 장치, 그리고 복호화 방법 및 장치
US20130182768A1 (en) 2010-09-30 2013-07-18 Korea Advanced Institute Of Science And Technology Method and apparatus for encoding / decoding video using error compensation
US9071851B2 (en) 2011-01-10 2015-06-30 Qualcomm Incorporated Adaptively performing smoothing operations
US9883203B2 (en) 2011-11-18 2018-01-30 Qualcomm Incorporated Adaptive overlapped block motion compensation
CN103379321B (zh) * 2012-04-16 2017-02-01 华为技术有限公司 视频图像分量的预测方法和装置
US9906786B2 (en) 2012-09-07 2018-02-27 Qualcomm Incorporated Weighted prediction mode for scalable video coding
US9667942B2 (en) * 2012-11-20 2017-05-30 Qualcomm Incorporated Adaptive luminance compensation in three dimensional video coding
KR102270787B1 (ko) 2013-01-10 2021-06-29 삼성전자주식회사 휘도차를 보상하기 위한 인터 레이어 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
EP3013049A4 (en) 2013-06-18 2017-02-22 Sharp Kabushiki Kaisha Illumination compensation device, lm predict device, image decoding device, image coding device
WO2015009041A1 (ko) * 2013-07-15 2015-01-22 삼성전자 주식회사 적응적 휘도 보상을 위한 인터 레이어 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
JP2017520994A (ja) * 2014-06-20 2017-07-27 寰發股▲ふん▼有限公司HFI Innovation Inc. 3dおよびマルチビュービデオコーディングのサブpu構文シグナリングおよび照明補償方法
WO2017035831A1 (en) 2015-09-06 2017-03-09 Mediatek Inc. Adaptive inter prediction
US10554969B2 (en) 2015-09-11 2020-02-04 Kt Corporation Method and device for processing video signal
EP3453174A1 (en) * 2016-05-06 2019-03-13 VID SCALE, Inc. Method and system for decoder-side intra mode derivation for block-based video coding
KR102480191B1 (ko) 2016-05-13 2022-12-21 브이아이디 스케일, 인크. 비디오 코딩을 위한 일반화된 다중-가설 예측 시스템 및 방법
US10880570B2 (en) 2016-10-05 2020-12-29 Qualcomm Incorporated Systems and methods of adaptively determining template size for illumination compensation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023096472A1 (ko) * 2021-11-29 2023-06-01 주식회사 윌러스표준기술연구소 비디오 신호 처리 방법 및 이를 위한 장치
WO2024010377A1 (ko) * 2022-07-05 2024-01-11 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체

Also Published As

Publication number Publication date
US20180098079A1 (en) 2018-04-05
JP2019531029A (ja) 2019-10-24
US10951912B2 (en) 2021-03-16
BR112019006894A2 (pt) 2019-07-02
US10880570B2 (en) 2020-12-29
WO2018067733A1 (en) 2018-04-12
WO2018067732A1 (en) 2018-04-12
EP3523962A1 (en) 2019-08-14
CN109792518B (zh) 2023-06-23
US20180098086A1 (en) 2018-04-05
CN109792518A (zh) 2019-05-21
US20180098070A1 (en) 2018-04-05
WO2018067729A1 (en) 2018-04-12
US10798404B2 (en) 2020-10-06

Similar Documents

Publication Publication Date Title
US10798404B2 (en) Systems and methods of performing improved local illumination compensation
US10701390B2 (en) Affine motion information derivation
US10999594B2 (en) Virtual search area for current picture referencing (CPR) and intra block copy (IBC)
AU2016298172A1 (en) Methods and systems of restricting bi-prediction in video coding
US11290743B2 (en) Interaction of illumination compensation with inter-prediction
EP3906674A1 (en) Block size restriction for illumination compensation
US11172195B2 (en) Excluding intra coded reference samples from local illumination compensation parameter derivation
US11917174B2 (en) Decoded picture buffer (DPB) operations and access unit delimiter (AUD)
US11388394B2 (en) Local illumination compensation (LIC) for virtual pipeline data units (VPDUS)
AU2021409970A1 (en) Overlapped block motion compensation
US10887611B2 (en) Pruning for illumination compensation mode
US20220201282A1 (en) Overlapped block motion compensation