KR20190055104A - 프레임 레이트 상향-변환 코딩 모드에 대한 개선 - Google Patents

프레임 레이트 상향-변환 코딩 모드에 대한 개선 Download PDF

Info

Publication number
KR20190055104A
KR20190055104A KR1020197008932A KR20197008932A KR20190055104A KR 20190055104 A KR20190055104 A KR 20190055104A KR 1020197008932 A KR1020197008932 A KR 1020197008932A KR 20197008932 A KR20197008932 A KR 20197008932A KR 20190055104 A KR20190055104 A KR 20190055104A
Authority
KR
South Korea
Prior art keywords
block
prediction
affine motion
video
motion model
Prior art date
Application number
KR1020197008932A
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 KR20190055104A publication Critical patent/KR20190055104A/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/537Motion estimation other than block-based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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/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/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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

Landscapes

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

Abstract

바이래터럴 매칭을 수행할 때 아핀 모션 모델을 적용하는 프레임 레이트 상향-변환 코딩 모드를 위한 방법, 장치 및 컴퓨터 판독가능 매체가 제공된다. 프레임 레이트 상향-변환 코딩 모드는 비트스트림에 제공된 프레임들로부터 생성된 추가 프레임들을 포함할 수 있다. 여러 구현들에서, 바이래터럴 매칭은 생성되는 프레임의 현재 블록에 대해, 제 1 레퍼런스 픽처의 제 1 블록을 제 2 레퍼런스 픽처의 제 2 블록과 식별하는 것을 포함한다. 아핀 (예를 들어, 비선형) 모션 정보는 제 1 블록과 제 2 블록 사이로서 결정될 수 있다. 현재 블록은 아핀 모션 정보를 이용하여 예측될 수 있다.

Description

프레임 레이트 상향-변환 코딩 모드에 대한 개선
본 개시는 비디오 코딩 및 압축에 관한 것이다. 예를 들어, 프레임 레이트 상향-변환 (frame rate up-conversion; FRUC) 을 개선하기 위한 시스템들 및 방법들이 설명된다.
비디오 코딩 표준들은, 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 로서 또한 공지됨) 및 고효율 비디오 코딩 (High Efficiency Video Coding ; HEVC) 또는 ITU-T H.265 를 포함한다. 2016 년에, MPEG 및 ITU-T VCEG 는 차세대 비디오 코딩 표준들을 위한 새로운 코딩 툴들을 연구하기 위해 JVET (joint exploration video team) 을 형성하였다. 레퍼런스 소프트웨어는 JEM (joint exploration model) 이라고 한다.
프레임 레이트 상향-변환 (FRUC) 기술들을 이용하여 로우-프레임 레이트 비디오에서 하이-프레임 레이트 비디오들을 생성할 수 있다. 양호한 결과들을 가져오는 프레임 레이트 상향-변환을 위한 한 방법은 바이래터럴 매칭이다. 그러나, 로컬 조명 보상의 적용은 바이래터럴 매칭과 연계하여 비트스트림 사이즈를 감소시키는 관점에서 어떠한 이득도 발생시키지 않으면서 계산 복잡도를 증가시킬 수 있다.
프레임 레이트 상향-변환 기술은 상향-변환된 프레임에 블록을 배치할 위치를 결정할 때 병진 모션을 이용할 수 있다. 그러나 반대 모션은 엄격하게 선형이 아닐 수도 있으며 회전, 줌잉 인 또는 줌잉 아웃, 그리고 다른 비선형 모션을 포함할 수도 있다. 이들 상황에서, 아핀 모션 모델은 병진 모션 모델이 적용되는 경우보다 더 컴팩트한 비트스트림을 생성할 수도 있다.
적어도 하나의 예에 따르면, 비디오 데이터를 획득하는 것을 포함하는 비디오 데이터를 프로세싱하는 방법이 제공된다. 이 방법은 비디오 레이트의 블록에 대한 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하는 단계를 더 포함하며, 여기서 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드가 블록에 대해 이용될 때 로컬 조명 보상이 블록에 대해 이용되는 것이 불허된다. 이 방법은 블록에 대한 모션 정보를 결정하는 단계를 더 포함하며, 여기에서 모션 정보는 상기 블록에 대해 이용된 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드에 기초하여 결정된다.
다른 예에서, 비디오 데이터를 저장하도록 구성되는 메모리 및 프로세서를 포함하는 장치가 제공된다. 프로세서는 비디오 데이터를 획득하도록 구성되어 이를 획득할 수 있다. 프로세서는 비디오 데이터의 블록에 대한 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하도록 구성되어 이를 이용할 수 있고, 여기서 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드가 블록에 대해 이용될 때 로컬 조명 보상이 블록에 대해 이용되는 것이 불허된다. 프로세서는 블록에 대한 모션 정보를 결정하도록 구성되어 이를 결정할 수 있고, 모션 정보는 블록에 대해 이용된 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드에 기초하여 결정된다.
또 다른 예에서, 프로세서에 의해 실행될 때 비디오 데이터를 획득하는 단계를 포함하는 방법을 수행하는 명령들을 저장한 컴퓨터 판독가능 매체가 제공된다. 방법은 비디오 레이트의 블록에 대한 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하는 단계를 더 포함하며, 여기서 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드가 블록에 대해 이용될 때 로컬 조명 보상이 블록에 대해 이용되는 것이 불허된다. 이 방법은 블록에 대한 모션 정보를 결정하는 단계를 더 포함하며, 여기에서 모션 정보는 상기 블록에 대해 이용된 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드에 기초하여 결정된다.
또 다른 예에서, 비디오 데이터를 획득하기 위한 수단을 포함하는 장치가 제공된다. 이 장치는 비디오 레이트의 블록에 대한 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하기 위한 수단을 더 포함하며, 여기서 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드가 블록에 대해 이용될 때 로컬 조명 보상이 블록에 대해 이용되는 것이 불허된다. 이 장치는 블록에 대한 모션 정보를 결정하기 위한 수단을 더 포함하며, 여기에서 모션 정보는 상기 블록에 대해 이용된 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드에 기초하여 결정된다.
일부 양태들에서, 로컬 조명 보상 플래그는 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드가 블록에 대해 이용되는 것에 기초하여 블록에 대해 시그널링되지 않는다.
일부 양태들에서, 모션 정보는 적어도 하나의 모션 벡터를 포함한다.
일부 양태들에서, 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하는 것은 제 1 레퍼런스 프레임 내의 제 1 블록을 결정하는 것 및 제 1 레퍼런스 블록과 연관된 제 2 레퍼런스 프레임에서 제 2 블록을 결정하는 것을 포함한다. 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하는 것은 제 1 블록으로부터 제 2 블록으로의 모션 궤도를 결정하고 모션 궤도의 경로를 따라 블록을 생성하는 것을 더 포함할 수 있다.
일부 양태들에서, 위에 설명된 방법들, 장치들 및 컴퓨터 판독가능 매체는 디코딩 디바이스에 의해 수행될 수 있고/있거나 디코딩 디바이스에 포함될 수 있다.
일부 양태들에서, 프레임 레이트 상향-변환 바이래터럴 매칭은 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드가 블록에 대해 이용되고 있음에 기초하여 블록에 대해 시그널링된다. 이들 양태들에서, 위에 설명된 방법들, 장치들 및 컴퓨터-판독가능 매체는 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드가 블록에 대해 시그널링되는 것에 응답하여, 로컬 조명 보상 플래그의 값을 거짓으로 유도하는 것을 더 포함할 수 있다. 이들 양태들에서, 로컬 조명 보상 플래그가 거짓으로 유도될 때 로컬조명 보상이 이용되지 않는다.
일부 양태들에서, 위에 설명된 방법들, 장치들 및 컴퓨터 판독가능 매체는 인코딩 디바이스에 의해 이용될 수 있고/있거나 인코딩 디바이스에 포함될 수 있다.
일부 양태들에서, 위에 설명된 방법들, 장치들 및 컴퓨터 판독가능 매체는 모션 정보를 리파이닝하기 위해 1차 테일러 전개 최적화를 수행하는 것을 더 포함한다. 일부 양태들에서, 1차 테일러 전개 최적화를 수행하는 것은 제 1 레퍼런스 픽처 및 제 2 레퍼런스 픽처의 시간적 포지션들에서 블록의 1차 테일러 전개들 사이의 제곱 오차의 합 (또는 절대 차의 합) 을 최소화하는 것에 의해 모션 벡터를 유도하는 것을 포함한다.
일부 양태들에서, 위에 설명된 장치는 비디오 데이터를 디스플레이하기 위한 디스플레이를 포함할 수 있다.
일부 양태들에서, 위에 설명된 장치는 픽처들을 캡처하기 위한 카메라를 갖는 모바일 디바이스를 포함할 수 있다.
적어도 하나의 예에 따르면, 비디오 데이터를 획득하는 것을 포함하는 비디오를 프로세싱하는 방법이 제공된다. 이 방법은 비디오 데이터의 블록에 대한 로컬 조명 보상을 이용하는 단계를 더 포함하고, 여기서 로컬 조명 보상이 블록에 대해 이용될 때 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드가 블록에 대해 이용되는 것이 불허된다. 이 방법은 블록에 대한 모션 정보를 결정하는 단계를 더 포함하며, 여기서 로컬 조명 보상이 블록에 대해 이용된 후 모션 정보가 결정된다.
다른 예에서, 비디오 데이터를 저장하도록 구성되는 메모리 및 프로세서를 포함하는 장치가 제공된다. 프로세서는 비디오 데이터를 획득하도록 구성되어 이를 획득할 수 있다. 프로세서는 비디오 데이터의 블록에 대한 로컬 조명 보상을 이용하도록 구성되어 이를 이용할 수 있고, 여기서 로컬 조명 보상이 블록에 대해 이용될 때 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드가 블록에 대해 이용되는 것이 불허된다. 프로세서는 블록에 대한 모션 정보를 결정하도록 구성되어 이를 결정할 수 있고, 여기서 로컬 조명 보상이 블록에 대해 이용된 후 모션 정보가 결정된다.
또 다른 예에서, 프로세서에 의해 실행될 때 비디오 데이터를 획득하는 단계를 포함하는 방법을 수행하는 명령들을 저장한 컴퓨터 판독가능 매체가 제공된다. 이 방법은 비디오 데이터의 블록에 대한 로컬 조명 보상을 이용하는 단계를 더 포함하고, 여기서 로컬 조명 보상이 블록에 대해 이용될 때 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드가 블록에 대해 이용되는 것이 불허된다. 이 방법은 블록에 대한 모션 정보를 결정하는 단계를 더 포함하며, 여기서 로컬 조명 보상이 블록에 대해 이용된 후 모션 정보가 결정된다.
또 다른 예에서, 비디오 데이터를 획득하기 위한 수단을 포함하는 장치가 제공된다. 이 장치는 비디오 데이터의 블록에 대한 로컬 조명 보상을 이용하기 위한 수단을 더 포함하고, 로컬 조명 보상이 블록에 대해 이용될 때 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드가 블록에 대해 이용되는 것이 불허된다. 이 장치는 블록에 대한 모션 정보를 결정하는 수단을 더 포함하고, 여기서 모션 정보는 상기 블록에 대해 로컬 조명 보상이 이용된 후에 결정된다.
일부 양태들에서, 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드 플래그는 로컬 조명 보상이 블록에 대해 이용되는 것에 기초하여 블록에 대해 시그널링되지 않는다.
일부 양태들에서, 로컬 조명 보상을 이용하는 것은 최소 제곱법을 이용하여 스케일링 팩터 및 오프셋을 유도하는 것을 포함한다.
일부 양태들에서, 위에 설명된 방법들, 장치들 및 컴퓨터 판독가능 매체는 디코딩 디바이스에 의해 이용될 수 있고/있거나 디코딩 디바이스에 포함될 수 있다.
일부 양태들에서, 로컬 조명 보상 플래그는 로컬 조명 보상이 블록에 대해 이용되는 것에 기초하여 블록에 대해 시그널링된다. 이러한 양태들에서, 위에 설명된 방법들, 장치들 및 컴퓨터 판독가능 매체는 로컬 조명 보상이 블록에 대해 시그널링되는 것에 응답하여 프레임 레이트 상향-변환 양면 매칭 코딩 모드 플래그에 대한 값을 거짓으로 유도하는 것을 더 포함할 수 있고, 여기서 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드 플래그가 거짓으로 유도될 때 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드가 이용되지 않는다.
일부 양태들에서, 위에 설명된 방법들, 장치들 및 컴퓨터 판독가능 매체는 인코딩 디바이스에 의해 이용될 수 있고/있거나 인코딩 디바이스에 포함될 수 있다.
일부 양태들에서, 위에 설명된 방법들, 장치들 및 컴퓨터 판독가능 매체는 모션 정보를 리파이닝하기 위해 1차 테일러 전개 최적화를 이용하는 것을 더 포함할 수 있다. 일부 양태들에서, 1차 테일러 전개 최적화를 이용하는 것은 제 1 레퍼런스 픽처 및 제 2 레퍼런스 픽처의 시간적 포지션들에서 블록의 1차 테일러 전개들 사이의 제곱 오차의 합 (또는 절대 차의 합) 을 최소화하는 것에 의해 모션 벡터를 유도하는 것을 포함한다.
일부 양태들에서, 위에 설명된 장치는 비디오 데이터를 디스플레이하기 위한 디스플레이를 포함할 수 있다.
일부 양태들에서, 위에 설명된 장치는 픽처들을 캡처하기 위한 카메라를 갖는 모바일 디바이스를 포함할 수 있다.
적어도 하나의 예에 따르면, 비디오 데이터를 획득하는 것을 포함하는 비디오 데이터를 프로세싱하는 방법이 제공된다. 이 방법은 비디오 데이터의 블록에 대한 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하는 단계를 포함하고, 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하는 단계는 블록에 아핀 모션 모델을 적용하는 단계를 포함한다. 이 방법은 블록에 대한 아핀 모션 모델의 적용에 기초하여, 제 1 레퍼런스 픽처에 대한 제 1 아핀 모션 정보 및 제 2 레퍼런스 픽처에 대한 제 2 아핀 모션 정보를 결정하는 단계를 더 포함한다. 이 방법은 제 1 아핀 모션 정보 및 제 2 아핀 모션 정보를 이용하여 블록에 대한 적어도 하나의 예측을 결정하는 단계를 더 포함한다.
다른 예에서, 비디오 데이터를 저장하도록 구성된 메모리 및 프로세서를 포함하는 장치가 제공된다. 프로세서는 비디오 데이터를 획득하도록 구성되어 이를 획득할 수 있다. 프로세서는 비디오 데이터의 블록에 대한 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하도록 구성되어 이를 이용할 수 있고, 상기 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하는 것은 블록에 아핀 모션 모델을 적용하는 것을 포함한다. 프로세서는 블록에 대한 아핀 모션 모델의 적용에 기초하여, 제 1 레퍼런스 픽처에 대한 제 1 아핀 모션 정보 및 제 2 레퍼런스 픽처에 대한 제 2 아핀 모션 정보를 결정하도록 구성되어 이를 결정할 수 있다. 프로세서는 제 1 아핀 모션 정보 및 제 2 아핀 모션 정보를 이용하여 블록에 대한 적어도 하나의 예측을 결정하도록 구성되어 이를 결정할 수 있다.
또 다른 예에서, 프로세서에 의해 실행될 때 비디오 데이터를 획득하는 단계를 포함하는 방법을 수행하는 명령들을 저장한 컴퓨터 판독가능 매체가 제공된다. 이 방법은 비디오 데이터의 블록에 대한 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하는 단계를 포함하고, 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하는 단계는 블록에 아핀 모션 모델을 적용하는 단계를 포함한다. 이 방법은 블록에 대한 아핀 모션 모델의 적용에 기초하여, 제 1 레퍼런스 픽처에 대한 제 1 아핀 모션 정보 및 제 2 레퍼런스 픽처에 대한 제 2 아핀 모션 정보를 결정하는 단계를 더 포함한다. 이 방법은 제 1 아핀 모션 정보 및 제 2 아핀 모션 정보를 이용하여 블록에 대한 적어도 하나의 예측을 결정하는 단계를 더 포함한다.
또 다른 예에서, 비디오 데이터를 획득하기 위한 수단을 포함하는 장치가 제공된다. 이 장치는 비디오 데이터의 블록에 대한 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하기 위한 수단을 포함하고, 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하는 것은 블록에 아핀 모션 모델을 적용하는 것을 포함한다. 이 장치는 블록에 대한 아핀 모션 모델의 적용에 기초하여, 제 1 레퍼런스 픽처에 대한 제 1 아핀 모션 정보 및 제 2 레퍼런스 픽처에 대한 제 2 아핀 모션 정보를 결정하기 위한 수단을 더 포함한다. 이 장치는 제 1 아핀 모션 정보 및 제 2 아핀 모션 정보를 이용하여 블록에 대한 적어도 하나의 예측을 결정하기 위한 수단을 더 포함한다.
일부 양태들에서, 위에 설명된 방법들, 장치들 및 컴퓨터 판독가능 매체는 블록에 대한 제 1 예측을 결정하는 것을 더 포함하며, 여기서 제 1 예측은 제 1 레퍼런스 픽처 및 제 1 아핀 모션 정보를 이용하여 결정된다. 이들 양태들은 블록에 대한 제 2 예측을 결정하는 것을 더 포함할 수 있으며, 여기서 제 2 예측은 제2 레퍼런스 픽처 및 제 2 아핀 모션 정보를 이용하여 결정된다.
일부 양태들에서, 아핀 모션 모델은 병진 모션 모델 대신에 적용된다.
일부 양태들에서, 아핀 모션 모델은 병진 모션 모델에 더하여 적용된다.
일부 양태들에서, 위에 설명된 방법들, 장치들 및 컴퓨터 판독가능 매체는 블록에 병진 모션 모델을 적용하는 것을 더 포함하며, 여기서 블록의 병진 모션 정보는 병진 모션 모델을 이용하여 유도된다. 이들 양태들은 블록에 상기 아핀 모션 모델을 적용하는 것을 더 포함할 수 있으며, 여기서 상기 병진 모션 정보는 제 1 아핀 모션 정보 및 제 2 아핀 모션 정보를 유도하기 위해 아핀 모션 모델에 의한 입력으로서 이용된다.
일부 양태들에서, 위에 설명된 방법들, 장치들 및 컴퓨터 판독가능 매체는 아핀 모션 모델의 매칭 비용이 병진 모션 모델의 매칭 비용보다 더 작다고 결정하는 것을 포함한다. 이들 양태들은 비트스트림에서 아핀 모션 모델의 적용을 시그널링하는 것을 포함할 수 있다.
일부 양태들에서, 위에 설명된 방법들, 장치들 및 컴퓨터 판독가능 매체는 아핀 모션 모델의 매칭 비용이 병진 모션 모델의 매칭 비용보다 더 크다고 결정하는 것을 더 포함한다. 이들 양태들은 비트스트림에서 병진 모션 모델의 적용을 시그널링하는 것을 포함할 수 있다.
일부 양태들에서, 위에 설명된 방법들, 장치들 및 컴퓨터 판독가능 매체는 블록의 사이즈가 임계 사이즈보다 더 크다고 결정하는 것을 더 포함하고, 여기서 아핀 모션 모델은 상기 블록의 사이즈가 상기 임계 사이즈보다 더 크다고 결정하는 것에 응답하여 블록에 적용된다.
일부 양태들에서, 위에 설명된 방법들, 장치들 및 컴퓨터 판독가능 매체는 블록에 대한 적어도 예측을 리파이닝하기 위해 1차 테일러 전개 최적화를 수행하는 것을 더 포함한다. 일부 양태들에서, 1차 테일러 전개 최적화를 수행하는 것은 제 1 레퍼런스 픽처 및 제 2 레퍼런스 픽처의 시간적 포지션들에서 블록의 1차 테일러 전개들 사이의 제곱 오차의 합 (또는 절대 차의 합) 을 최소화하는 것에 의해 모션 벡터를 유도하는 것을 포함한다.
일부 양태들에서, 위에 설명된 방법들, 장치들 및 컴퓨터 판독가능 매체는 디코딩 디바이스에 의해 이용될 수 있고/있거나 디코딩 디바이스에 포함될 수 있다.
일부 양태들에서, 위에 설명된 방법들, 장치들 및 컴퓨터 판독가능 매체는 인코딩 디바이스에 의해 이용될 수 있고/있거나 인코딩 디바이스에 포함될 수 있다.
일부 양태들에서, 위에 설명된 장치는 비디오 데이터를 디스플레이하기 위한 디스플레이를 포함할 수 있다.
일부 양태들에서, 위에 설명된 장치는 픽처들을 캡처하기 위한 카메라를 갖는 모바일 디바이스를 포함할 수 있다.
이 요약은, 청구된 요지의 핵심적인 또는 본질적인 특징들을 식별하도록 의도되지 않았고, 별개로 청구된 요지의 범위를 결정하는데 이용되되도록 의도되지도 않았다. 요지는 본 특허의 전체 명세서, 일부 또는 모든 도면 및 각 청구항의 적절한 부분들을 레퍼런스하여 이해되어야 한다.
전술한 내용은, 다른 특징 및 실시형태들과 함께, 다음의 명세서, 청구항 및 첨부 도면을 참조하면 더욱 명백해질 것이다.
본 발명의 예시적 실시형태들은 다음 도면들을 참조하여 이하에서 상세히 설명된다:
도 1 은 인코딩 디바이스 및 디코딩 디바이스의 일 예를 예시하는 블록도이다.
도 2a 는 병합 모드에 대한 공간 MV 후보들을 유도하기 위한 방법의 일 예를 예시한다.
도 2b 는 AVMP 모드에 대한 공간 이웃 MV 후보들을 유도하기 위한 방법의 일 예를 예시한다.
도 3a 는 TMVP 후보의 일 예의 유도를 예시한다.
도 3b 는 모션 벡터 (MV) 스케일링의 일 예를 예시한다.
도 4 는 프레임 레이트 상향-변환에서 유니래터럴 모션 추정의 일 예를 예시한다.
도 5 는 프레임 레이트 상향-변환을 위한 바이래터럴 모션 추정의 일 예를 예시한다.
도 6 은 템플릿 매칭 기반 디코더측 모션 벡터 유도의 일 예를 예시한다.
도 7 은 미러 기반 바이래터럴 모션 벡터 유도의 일 예를 예시한다.
도 8 은 pu_dmvd_flag 를 포함하는 PU 를 디코딩하는 프로세스의 일 예를 예시한다.
도 9 는 바이래터럴 매칭의 일 예를 예시한다.
도 10 은 템플릿 매칭의 일 예를 예시한다.
도 11 은 이웃 샘플들을 이용하여 조명 보상 파라미터들을 유도하는 일 예를 예시한다.
도 12 는 현재 블록에 대한 단순화된 아핀 모션 모델의 일 예를 예시한다.
도 13 은 블록의 서브-블록들을 이용하여 결정된 모션 벡터 필드의 일 예를 예시한다.
도 14 는 AF_INTER 모드에서의 모션 벡터 예측의 일 예를 예시한다.
도 15a 및 도 15b 는 AF_MERGE 모드에서의 모션 벡터 예측의 일 예를 예시한다.
도 16 은 프레임 레이트 상향-변환을 위한 프로세스의 일 예를 예시한다.
도 17 은 프레임 레이트 상향-변환을 위한 프로세스의 일 예를 예시한다.
도 18 은 프레임 레이트 상향-변환을 위한 프로세스의 일 예를 예시한다.
도 19 는 예시적 인코딩 디바이스를 예시하는 블록도이다.
도 20 은 예시적 디코딩 디바이스를 예시하는 블록도이다.
특정 양태 및 실시형태들이 이하에 제공된다. 이들 양태 및 구현들 중 일부는 독립적으로 적용될 수도 있고 그 중 일부는 당업자에게 명백한 바와 같이 조합하여 적용될 수도 있다. 다음의 설명에서, 설명의 목적으로, 다양한 구현들의 완전한 이해를 제공하기 위해 다수의 특정 세부 사항들이 제시된다. 그러나, 다양한 구현들이 이들 구체적인 상세 없이도 실시될 수도 있음이 분명할 것이다. 도면 및 설명은 제한적인 것으로 의도되지 않는다.
다음의 설명은 단지 예시적인 구현들을 제공하며, 본 개시의 범위, 적용가능성 또는 구성을 제한하려도록 의도되지 않는다. 다만, 예시적 구현들의 다음의 설명은 일 예를 구현하기 위한 실시가능한 설명을 당업자에게 제공할 것이다. 첨부된 청구범위에 제시된 바와 같이 본 발명의 사상 및 범위를 벗어나지 않으면서 엘리먼트들의 기능 및 배열에서 다양한 변경이 이루어질 수 있음을 알아야 한다.
구체적 상세들은 상이한 구현들의 철저한 이해를 제공하기 위하여 다음의 설명에 주어져 있다. 그러나, 그 구현들은 이들 특정 상세들 없이도 실시될 수도 있음이 당업자에 의해 이해될 것이다. 예를 들면, 회로, 시스템, 네트워크, 프로세스 및 다른 컴포넌트들은, 실시형태들을 불필요한 상세들에서 불분명하게 하지 않기 위하여 블록도 형태의 컴포넌트들로서 보여질 수도 있다. 다른 예들에서, 잘 알려진 회로, 프로세스들, 알고리즘, 구조, 및 기술들은 실시형태들을 불분명하게 하는 것을 피하기 위하여 불필요한 상세 없이 도시될 수도 있다.
또한, 개개의 실시형태들은, 플로우차트, 플로우도, 데이터 플로우도, 구조도, 또는 블록도로서 도시되는 프로세스로서 설명될 수도 있다는 것에 유의한다. 비록 플로우차트는 순차적 프로세스로서 동작들을 설명할 수도 있지만, 많은 동작들은 병렬적으로, 또는 동시에 수행될 수 있다. 또한, 동작들의 순서는 재배열될 수도 있다. 프로세스는 그의 동작들이 완료되면 종결되지만, 도에 포함되지 않은 추가의 단계들을 가질 수 있다. 프로세스는 방법, 함수, 프로시저, 서브루틴, 서브프로그램 등에 대응할 수도 있다. 프로세스가 함수에 대응할 때, 그의 종결은 호출 함수 (calling function) 또는 메인 함수 (main function) 에 대한 함수의 리턴에 대응할 수 있다.
용어 "컴퓨터 판독가능 매체" 는, 휴대 또는 비휴대 저장 디바이스, 광학 저장 디바이스, 및 명령(들) 및/또는 데이터를 저장, 포함 또는 반송할 수 있는 다양한 다른 매체를 포함하지만, 이에 한정되지는 않는다. 컴퓨터 판독가능 매체는 데이터가 저장될 수 있고 반송파 및/또는 무선 또는 유선 접속을 통해 전파되는 일시적 전자 신호를 포함하지 않는 비일시적 매체를 포함할 수도 있다. 비일시적인 매체의 예들은 자기 디스크 또는 테이프, 컴팩트 디스크 (CD) 또는 디지털 다용도 디스크 (DVD) 와 같은 광학 저장 매체, 플래시 메모리, 메모리 또는 메모리 디바이스를 포함할 수도 있으나, 이에 한정되는 것은 아니다. 컴퓨터 판독가능 매체는, 프로시저, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령들, 데이터 구조들 또는 프로그램 세그먼트들의 임의의 조합을 나타낼 수도 있는 코드 및/또는 머신 실행가능 명령들을 저장할 수도 있다. 코드 세그먼트는 정보, 데이터, 인수 (argument), 파라미터, 또는 메모리 콘텐츠를 전달 및/또는 수신하는 것에 의해 또 다른 코드 세그먼트 또는 하드웨어 회로에 연결될 수도 있다. 정보, 인수들, 파라미터들, 데이터 등은 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 전송 등을 포함한 임의의 적합한 수단을 통해 전달, 포워딩, 또는 전송될 수도 있다.
또한, 여러 예들은, 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어, 또는 이들의 임의의 조합에 의해 구현될 수도 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로코드로 구현될 때, 필요한 작업들을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들 (예를 들어, 컴퓨터 프로그램 제품) 은 컴퓨터 판독가능 또는 머신 판독가능 매체에 저장될 수도 있다. 프로세서(들) 은 필요한 작업들을 수행할 수도 있다.
더 많은 디바이스들 및 시스템들이 디지털 비디오 데이터를 소모하는 능력들을 소비자들에게 제공함에 따라 효율적인 비디오 코딩 기술에 대한 필요가 더 중요해지고 있다. 비디오 코딩은 디지털 비디오 데이터에 존재하는 많은 양의 데이터를 핸들링하기 위해 필요한 저장 및 송신 요건들을 줄이기 위해 필요하다. 다양한 비디오 코딩 기술들은 높은 비디오 품질을 유지하면서 더 낮은 비트 레이트를 이용하는 형태로 비디오 데이터를 압축하기 위해 필요할 수도 있다. 본원에 이용된 용어 "코딩" 은 "인코딩" 또는 "디코딩"을 지칭한다.
도 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를 포함하지 않는 (또는 비트스트림의 끝)일련의 액세스 유닛들이다. SPS 에서의 정보는 코딩된 비디오 시퀀스 내에서 픽처마다 변경되지 않을 수도 있다. 코딩된 비디오 시퀀스에서의 픽처는 동일한 SPS 를 이용할 수도 있다. VPS 는 코딩된 비디오 시퀀스 또는 비트스트림 내의 모든 계층들에 적용되는 정보를 포함한다. VPS 는 전체 코딩된 비디오 시퀀스에 적용되는 신택스 엘리먼트를 갖는 신택스 구조를 포함한다. 일부 예들에서, VPS, SPS 또는 PPS 는 인코딩된 비트스트림에 의해 대역내 송신될 수도 있다. 일부 예들에서, VPS, SPS 또는 PPS 는 코딩된 비디오 데이터를 포함하는 NAL 유닛들과는 별도의 송신으로 대역외 송신될 수도 있다.
비디오 비트스트림은 SEI (Supplemental Enhancement Information) 메시지들을 포함할 수 있다. 예를 들어, SEI NAL 유닛은 비디오 비트스트림의 부분일 수 있다. 일부 경우들에서, SEI 메시지는 디코딩 프로세스에서 필요하지 않은 정보를 포함할 수 있다. 예를 들어, SEI 메시지 내의 정보는 디코더가 비트스트림의 비디오 픽처들을 디코딩하기 위해 필수적이지 않을 수도 있지만, 디코더는 정보를 이용하여 픽처들을 디스플레이 또는 프로세싱 (예를 들어, 디코딩된 출력) 하는 것을 개선할 수 있다. SEI 메시지 내의 정보는 메타데이터에 임베드될 수 있다. 하나의 예시적인 예에서, SEI 메시지 내의 정보는 디코더측 엔티티들에 의해 이용되어 콘텐츠의 가시성을 향상시킬 수 있다. 일부 경우들에서 특정 애플리케이션 표준들은 비트스트림에서 이러한 SEI 메시지들의 존재를 지시할 수 있어 애플리케이션 표준들 (예를 들어, 비디오의 모든 프레임에 대해 SEI 메시지가 반송되는,프레임 양립가능 플라노-스테레오스코피 3DTV 비디오 포맷에 대한 프레임-팩킹 SEI 메시지의 반송, 리커버리 포인트 SEI 메시지의 핸들링, DVB 에서의 팬-스캔 직사각형 SEI 메시지의 이용, 및 이에 더하여 많은 다른 예들) 을 준수하는 모든 디바이스들에 품질 개선을 가져올 수 있다.
인코딩 디바이스 (104) 의 출력 (110) 은 인코딩된 비디오 데이터를 구성하는 NAL 유닛들을 통신 링크 (120) 를 통해 수신 디바이스의 디코딩 디바이스 (112) 로 전송할 수도 있다. 디코딩 디바이스 (112) 의 입력 (114) 은 NAL 유닛들을 수신할 수도 있다. 통신 링크 (120) 는 무선 네트워크, 유선 네트워크, 또는 유선 및 무선 네트워크의 조합에 의해 제공되는 채널을 포함할 수도 있다. 무선 네트워크는 임의의 무선 인터페이스 또는 무선 인터페이스들의 조합을 포함할 수도 있으며, 임의의 적합한 무선 네트워크 (예를 들어, 인터넷 또는 다른 광역 네트워크, 패킷 기반 네트워크, WiFiTM, 무선 주파수 (RF), UWB, WiFi-다이렉트, 셀룰러, LTE (Long-Term Evolution), WiMaxTM 등) 을 포함할 수도 있다. 유선 네트워크는 유선 인터페이스 (예를 들어, 광섬유, 이더넷, 전력선 이더넷, 동축 케이블을 통한 이더넷, DSL (Digital Signal Line) 등) 을 포함할 수도 있다. 유선 및/또는 무선 네트워크들은 여러 장비들, 이를 테면, 기지국, 라우터, 액세스 포인트, 브리지, 게이트웨이, 스위치 등을 이용하여 구현될 수도 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라 변조되어 수신 디바이스로 송신될 수도 있다.
일부 예들에서, 인코딩 디바이스 (104) 는 인코딩된 비디오 데이터를 저장부 (108) 에 저장할 수도 있다. 출력 (110) 은 인코더 엔진 (106) 또는 저장부 (108) 로부터 인코딩된 비디오 데이터를 취출할 수도 있다. 저장부 (108) 는 다양한 분산 또는 국부적으로 액세스된 데이터 저장 매체 중 어느 것을 포함할 수도 있다. 예를 들어, 저장부 (108) 는 하드 드라이브, 저장 디스크, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체를 포함할 수도 있다.
디코딩 디바이스 (112) 의 입력 (114) 은 인코딩된 비디오 비트스트림 데이터를 수신하고 디코더 엔진 (116) 에 의한 나중의 이용을 위하여 비디오 비트스트림 데이터를 디코더 엔진 (116) 또는 저장부 (118) 에 제공할 수도 있다. 디코더 엔진 (116) 은 엔트로피 디코딩에 의해 (예를 들어, 엔트로피 디코더를 이용하여) 인코딩된 비디오 비트스트림 데이터를 디코딩하고, 인코딩된 비디오 데이터를 구성하는 하나 이상의 코딩된 비디오 시퀀스들의 엘리먼트들을 추출할 수도 있다. 그 후, 디코더 엔진 (116) 은 인코딩된 비디오 비트스트림 데이터에 대해 리스케일링 및 역변환을 수행할 수도 있다. 그 후, 잔차 데이터는 디코더 엔진 (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 확장을 이용하여 코딩될 수도 있다.
상술 한 바와 같이, 각각의 블록에 대해, 동작 정보 세트 (본 명세서에서는 모션 파라미터라고도 함) 가 이용 가능할 수도 있다. 모션 정보 세트는 순방향 및 역방향 예측 방향에 대한 모션 정보를 포함할 수도 있다. 여기서, 전방 및 후방 예측 방향들은 양방향 예측 모드의 2 개의 예측 방향들이고," 순방향 " 및 " 역방향 " 이라는 용어는 반드시 기하학적 의미를 가질 필요는 없다. 대신에, 순방향 및 역방향은 현재 픽처의 레퍼런스 픽처리스트 0 (RefPicList0) 및 레퍼런스 픽처리스트 1 (RefPicList1) 에 대응할 수도 있다. 일부 예들에서, 단지 하나의 레퍼런스 픽처 리스트가 픽처 또는 슬라이스에 이용가능할 때, RefPicList0만이 이용가능하고 슬라이스의 각각의 블록의 모션 정보는 항상 순방향이다. 일부 예들에서, RefPicList0 는 현재의 픽처보다 시간적으로 선행하는 레퍼런스 픽처를 포함하고, RefPicList1 은 현재의 픽처를 시간적으로 후행하는 레퍼런스 픽처를 포함한다.
일부 경우들에, 연관된 레퍼런스 인덱스와 함께 모션 벡터가 디코딩 프로세스에서 이용될 수도 있다. 연관된 레퍼런스 인덱스를 갖는 이러한 모션 벡터는 단방향 예측 (uni-predictive) 모션 정보 세트로 표기된다.
각각의 예측 방향에 대해, 모션 정보는 레퍼런스 인덱스 및 모션 벡터를 포함할 수도 있다. 일부 경우들에서, 단순화를 위해, 모션 벡터는 연관된 정보를 가질 수 있으며,이 정보로부터 모션 벡터가 연관된 레퍼런스 인덱스를 갖는 방법으로 가정될 수도 있다. 레퍼런스 인덱스는 현재 레퍼런스 픽처 리스트 (RefPicList0 또는 RefPicList1) 내의 레퍼런스 픽처를 식별하기 위해 이용될 수도 있다. 모션 벡터는 현재 픽처의 좌표 위치로부터 레퍼런스 인덱스에 의해 식별되는 레퍼런스 픽처의 좌표들까지의 오프셋을 제공하는 수평 및 수직 컴포넌트들을 가질 수 있다. 예를 들어, 레퍼런스 인덱스는 현재 픽처 내의 블록에 대해 이용해야 하는 특정 레퍼런스 픽처를 나타낼 수 있고, 모션 벡터는 레퍼런스 픽처에서 최상의 매칭된 블록 (현재 블록과 최상으로 매칭하는 블록) 이 레퍼런스 픽처 내에 어디에 있는지를 나타낸다.
픽처 순서 카운트 (POC; picture order count) 는 픽처의 디스플레이 순서를 식별하기 위해 비디오 코딩 표준들에 이용될 수 있다. 하나의 코딩된 비디오 시퀀스 내의 2 개의 픽처들이 동일한 POC 값을 가질 수도 있는 경우들이 있지만, 하나의 코딩된 비디오 시퀀스 내에서 동일한 POC 값을 갖는 2 개의 픽처들은 자주 발생하지 않는다. 다수의 코딩된 비디오 시퀀스들이 비트스트림에 존재할 때, 동일한 POC 값을 갖는 픽처들은 디코딩 순서의 관점에서 서로 더 근접할 수도 있다. 픽처들의 POC 값들은 레퍼런스 픽처리스트 구성을 위해, 다른 무엇보다도, HEVC 에서와 같이 설정된 레퍼런스 픽처의 유도, 및/또는 모션 벡터 스케일링에 이용될 수도 있다.
H.264/AVC 에서, 각각의 인터-매크로블록 (MB) 은 4 개의 다른 방법들로 파티셔닝될 수 있는데, 무엇보다도 다음: 하나의 16x16 매크로블록 파티션; 2 개의 16x8 매크로블록 파티션; 2 개의 8x16 매크로블록 파티션; 4 개의 8x8 매크로블록 파티션들을 포함한다.
하나의 매크로블록 내의 상이한 매크로블록 파티션은 각각의 예측 방향에 대해 상이한 레퍼런스 인덱스 값들 (예를 들어, RefPicList0 및 RefPicList1 에 대한 상이한 레퍼런스 인덱스 값들) 을 가질 수도 있다.
일부 경우들에, 매크로블록이 4 개의 8x8 매크로블록 파티션들로 파티셔닝되지 않을 때, 매크로블록은 각 예측 방향으로 각 매크로블록 파티션에 대해 단지 하나의 모션 벡터만을 가질 수 있다.
일부 경우들에, 매크로블록이 4 개의 8x8 매크로블록 파티션들로 파티셔닝될 때, 각각의 8x8 매크로블록 파티션은 각각의 예측 방향으로 상이한 모션 벡터를 가질 수있는 서브-블록들로 추가로 파티셔닝될 수도 있다. 8x8 매크로블록 파티션은 다양한 방식들로 서브-블록들로 분할될 수 있고, 무엇보다도 다음: 2 개의 8x4 서브-블록들; 2 개의 4x8 서브 블록들; 4 개의 4x4 서브-블록들을 포함한다.
각각의 서브-블록은 각각의 예측 방향에서 상이한 모션 벡터를 가질 수 있다. 따라서, 모션 벡터는 서브-블록과 동등하거나 그 이상의 레벨에서 존재할 수 있다.
AVC 에서 B 슬라이스들의 스킵 또는 직접 모드를 위해 매크로블록 또는 매크로블록 파티션 레벨에서 인에이블될 수 있다. 각각의 매크로블록 파티션에 대해, 현재 블록의 RefPicList1 내의 현재 매크로블록 파티션과 병치되는 블록의 모션 벡터들은 모션 벡터들을 유도하기 위해 이용될 수도 있다. 병치된 블록 내의 각각의 모션 벡터는 POC 거리들에 기초하여 스케일링될 수도 있다.
AVC 에서 공간 직접 모드를 또한 수행할 수 있다. 예를 들어, AVC 에서, 직접 모드는 공간 이웃들로부터 모션 정보를 예측할 수 있다.
HEVC 에서 슬라이스의 최대 코딩 유닛은 코딩 트리 블록 (CTB) 으로 지칭된다. CTB 는 노드가 코딩 유닛들인 쿼드 트리를 포함한다. CTB 의 사이즈는 HEVC 메인 프로파일의 16x16 픽셀들 내지 64x64 픽셀들의 범위일 수 있다. 일부 경우들에서, 8x8 픽셀 CTB 사이즈들이 지원될 수 있다. 코딩 유닛 (CU) 은 CTB 의 동일 사이즈이거나 8x8 픽셀만큼 작을 수 있다. 일부 경우들에서, 각각의 코딩 유닛은 하나의 예측 모드로 코딩된다. CU 가 인터-코딩될 때, CU 는 2 또는 4 개의 예측 유닛들 (PUs) 로 추가로 파티셔닝될 수 있거나, 또는 추가의 파티셔닝이 적용되지 않을 때 하나의 PU 로서 취급될 수도 있다. 하나의 CU 에 2 개의 PU들이 존재할 때, 2 개의 PU들은 CU 사이즈의 1/4 또는 3/4 인 2 개의 직사각형 또는 1/2 사이즈의 직사각형일 수도 있다.
CU가 인터-코딩될 때, 한 세트의 모션 정보가 각각의 PU 에 대해 존재할 수도 있다. 또한 각각의 PU 는 모션 정보의 세트를 유도하기 위해 고유 인터-예측 모드로 코딩될 수도 있다.
HEVC 에서의 모션 예측을 위해, 병합 모드 (스킵은 병합의 특별한 경우로 간주됨) 및 어드밴스 모션 벡터 예측 (AMVP) 을 포함하는 예측 유닛에 대해 2 개의 인터-예측 모드들이 존재할 수 있다.
AMVP 또는 병합 모드에서, 다수의 모션 벡터 예측 자들에 대해 모션 벡터 (MV) 후보 리스트가 유지될 수 있다. 현재 PU 의 병합 모드에서의 참조 인덱스들뿐만 아니라 모션 벡터(들) 는 MV 후보 리스트로부터 하나의 후보를 취하는 것에 의해 발생될 수 있다.
일부 예들에서, MV 후보 리스트는 병합 모드에 대한 최대 5 개의 후보들 및 AMVP 모드에 대한 2 개의 후보들을 포함한다. 다른 예들에서, 상이한 개수의 후보들이 병합 모드 또는 AMVP 모드에 대한 MV 후보리스트에 포함될 수 있다. 병합 후보는 모션 정보의 세트, 예를 들어, 레퍼런스 픽처 리스트 (리스트 0 및 리스트 1 ) 양쪽 모두에 대응하는 모션 벡터들) 및 레퍼런스 인덱스를 포함할 수도 있다. 병합 후보가 병합 인덱스에 의해 식별되면, 레퍼런스 픽처는 현재 블록의 예측을 위해 이용될 수 있다. 레퍼런스 픽처는 또한 연관된 모션 벡터를 결정하기 위해 이용될 수도 있다. AVMP 후보는 모션 벡터만을 포함하고, 따라서, AVMP 모드에서, 레퍼런스 인덱스는 리스트 0 또는 리스트 1 로부터의 각각의 잠재적 예측 방향에 대해, MV 후보 인덱스에 대한 MVP 인덱스와 함께, 레퍼런스 인덱스가 명시적으로 시그널링될 필요가 있을 수도 있다. AMVP 모드에서, 예측 모션 벡터는 추가로 리파이닝될 수 있다.
위에서 알 수 있는 바와 같이, 병합 후보는 전체 모션 정보 세트에 대응하는 반면, AMVP 후보는 특정 예측 방향 및 레퍼런스 인덱스에 대해 단지 하나의 모션 벡터만을 포함한다.
양쪽 모드들에 대한 후보들은 동일한 공간적 및/또는 시간적으로 이웃하는 블록들로부터 유사하게 유도될 수 있다.
도 2a 및 도 2b 는 공간 이웃하는 MV 후보들의 예시적인 유도들을 도시한다. 특정 PU (PU0 (202)) 에 대한 공간 MV 후보들은 PU0 (202) 의 우측에 위치된 이웃하는 PU (PU1 (204)) 에 상대적인 것을 포함하여 이웃하는 블록들로부터 유도될 수 있다.
도 2a 는 병합 모드에 대한 공간 MV 후보들을 유도하기 위한 방법의 일 예를 예시한다. 병합 모드에서, 최대 5 개의 공간적 MV 후보들은 예를 들어, 다음의 순서로 유도될 수 있다: 좌측 후보 (210) (블록 0), 상부 후보 (212)(블록 1), 상부 좌측 후보 (214)(블록 2), 하부 좌측 후보 (216)(블록 3), 및 상부 좌측 후보 (218)(블록 4). PU0 (202) 에 대한 공간 MV 후보들의 위치들은 도 2a 에 예시된다. 구체적으로, 좌측 후보 (210) 는 PU0 (202) 의 하위 좌측 코너에 인접하여 그 좌측에 위치되고; 상부 후보 (212) 는 PU0 (202) 의 상부 우측 코너에 인접하여 그 위측에 위치되고; 상부 우측 후보 (214) 는 이웃 PU1 (204) 의 상부 좌측 코너에 인접하여 그 위측에 위치되고; 하부 좌측 후보 (216) 는 좌측 후보 (210) 아래에 위치되고; 그리고 상부 좌측 후보 (218) 는 PU0 (202) 의 상부 좌측 코너의 위에 그리고 좌측에 위치된다.
도 2b 는 AVMP 모드에 대한 공간 이웃 MV 후보들을 유도하기 위한 방법의 일 예를 예시한다. AVMP 모드에서, 이웃 블록들은 예를 들어 2 개의 그룹들로 분할된다. 좌측 그룹으로 지칭될 수 있는 제 1 그룹은 PU0 (202) 의 하부측 및 좌측에 위치한 제 1 블록 (220)(블록 0), 및 PU0 (202) 의 하위 좌측 코너에 인접하여 그 좌측에 위치한다. 상부 그룹으로 지칭될 수 있는 제 2 그룹은 PU1 (204) 의 상부 좌측 코너에 인접하여 그 위에 위치된 제 3 블록 (224)(블록 2), 및 PU1 (204) 의 상부 우측 코너에 인접하여 그 위에 위치된 제 4 블록 (226) (블록 3) 및 PU0 (202)의 상부 좌측 코너의 위에 그리고 좌측에 위치된 제 5 블록 (228)(블록 4) 을 포함한다. 각각의 그룹에 대해, 후보 이웃 블록이 시그널링된 레퍼런스 인덱스에 의해 표시된 것과 동일한 레퍼런스 픽처을 참조할 때, 후보 이웃 블록은 그룹의 최종 후보를 형성하기 위해 선택될 블록들 중에서 가장 높은 우선순위를 가질 수 있다. 일부 경우들에서, 모든 이웃하는 블록들은 동일한 레퍼런스 픽처를 포인팅하는 모션 벡터를 포함하지 않는 것이 가능하다. 따라서, 이러한 후보가 찾아질 수 없으면, 제 1 이용가능한 후보가 최종 후보를 형성하기 위해 스케일링될 수 있고; 따라서 시간적 거리 차이들이 보상될 수 있다.
시간 모션 벡터 예측은 HEVC 에서 모션 벡터들을 결정하기 위한 또 다른 방법이다. 인에이블되고 이용가능할 때, 예를 들어 공간 모션 벡터 후보들 이후에, 시간적 모션 벡터 예측자 (TMVP) 후보가 MV 후보리스트에 추가될 수도 있다. TMVP 후보에 대한 모션 벡터 도출의 프로세스는 병합 및 AMVP 모드들 양쪽 모두에 대해 동일할 수 있다. 그러나, 일부 경우들에서, 병합 모드에서 TMVP 후보에 대한 타겟 레퍼런스 인덱스는 항상 0 으로 설정될 수 있다.
도 3a 는 TMVP 후보의 일 예의 유도를 예시한다. TMVP 후보 유도를 위한 프라이머리 블록 위치는 도 3a 에 블록 (310) 으로서 도시된 바와 같이 병치된 위치의 PU (302) 외부의 하부 우측 블록이다. 블록 (310) 의 하부 우측 위치는 공간적으로 이웃하는 후보들을 생성하기 위해 이용되는 블록들에 대해 상부 및 좌측 방향에서의 바이어스를 보상할 수도 있다. (블록 (312) 에 의해 예시된 바와 같이) 하부 우측 위치의 블록이 현재 CTB 로우 (306) 의 외부에 위치하거나 또는 모션 정보가 이용가능하지 않을 때, 블록은 PU (302) 의 중심 블록 (314) 으로 대체된다.
도 3b 는 모션 벡터 (MV) 스케일링의 일 예를 예시한다. 현재 픽처 (330) 에서의 블록 (338) 에 대해, TMVP 후보 (336) 에 대한 모션 벡터는 병치된 픽처 (320) 의 병치된 PU (328) 로부터 유도될 수 있다. 병치된 픽처 (320) 는 예를 들어 슬라이스 레벨로 표시될 수 있다. 구체적으로, 현재 픽처 (330) 의 블록 (338) 에 대해, 병치된 픽처 (320) 내의 병치된 PU (328) 가 결정될 수 있다. 병치된 PU (328) 는 병치된 레퍼런스 픽처 (322) 를 참조하는 병치된 모션 벡터 (326) 를 가질 수 있다. 병치된 모션 벡터 (326) 는 TMVP 후보로서 이용될 수 있다.
일부 경우들에서, AVC 에서의 시간적 다이렉트 모드와 유사하게, TMVP 후보 (336) 는 스케일링될 수 있다. 예를 들어, 현재 픽처 (330) 와 현재 레퍼런스 픽처 (332) 사이의 현재 시간적 거리 (334) 는 병치된 픽처 (320) 와 병치된 레퍼런스 픽처 (322) 사이의 병치된 시간적 거리 (324) 와는 상이할 수 있다. 이 예에서, TMVP 는 스케일링되어 시간적 거리의 차이를 정규화할 수 있다.
병합 및 AMVP 모드들은 모션 벡터 스케일링, 인공 모션 벡터 후보 생성 및 후보 삽입을 위한 프루닝 프로세스와 같은 다른 양태들을 포함할 수 있다.
모션 벡터 스케일링에 대하여, 모션 벡터들의 값들은 프리젠테이션 시간에서 픽처들의 거리에 비례하는 것으로 볼 수 있다. 모션 벡터는 2 개의 픽처들: 레퍼런스 픽처 및 (즉, 포함 픽처로서 지칭될 수 있는) 모션 벡터를 포함하는 픽처를 연관시킨다. 모션 벡터가 다른 모션 벡터를 예측하기 위해 이용될 때, 포함 픽처와 레퍼런스 픽처의 거리는 픽처 순서 카운트 (POC) 값들에 기초하여 계산될 수 있다.
예측된 모션 벡터에 대해, 예측된 모션 벡터와 연관된 레퍼런스 픽처 및 포함 픽처는 예측된 모션 벡터가 예측되는 모션 벡터와 연관된 레퍼런스 픽처 및 포함 픽처와는 상이할 수도 있다. 따라서, 예측된 모션 벡터에 대해, 새로운 거리 (예를 들어, POC 에 기초함) 가 결정될 수 있다. 그 후, 예측된 모션 벡터는 새로운 거리 및 예측에 이용되는 모션 벡터와 연관된 거리를 이용하여 스케일링될 수 있다. 공간적 이웃하는 후보에 대해, 2 개의 모션 벡터들에 대한 포함 픽처들은 동일한 한편, 레퍼런스 픽처들은 상이할 수도 있다. HEVC 에서, 모션 벡터 스케일링은 공간적 및 시간적 이웃하는 후보들에 대한 TMVP 및 AMVP 양쪽 모두에 적용한다.
인공 모션 벡터 후보 생성에 대해, 모션 벡터 후보 리스트가 완성되지 않으면, 인공 모션 벡터 후보들이 생성되어 예를 들어, 리스트가 후보들의 완전한 세트를 포함할 때까지 리스트의 끝에 삽입될 수 있다.
병합 모드에서, 2 개 유형들의 인공 MV 후보들이 존재할 수 있다: 결합된 후보들은 단지 B-슬라이스들에 대해서만 유도되고 제로 후보들은 결합된 후보 유형이 충분한 인공 후보들을 제공하지 않을 때 AMVP 에 대해서만 이용된다.
이미 후보 리스트에 있고 모션 정보를 갖는 후보들의 쌍 각각에 대해, 양방향 결합된 모션 벡터 후보들이 유도될 수 있다. 양방향 결합된 모션 벡터 후보는 제 1 후보의 모션 벡터 (제 1 후보가 리스트 0 에서의 픽처이다) 와 제 2 후보의 모션 벡터 (제 2 후보가 리스트 1 에서의 픽처이다) 의 조합으로부터 유도될 수 있다.
후보 삽입에 대한 프루닝 프로세서, 후보 삽입을 위하여, 상이한 블록들로부터의 후보들은 동일할 수 있고, 이는 병합 및/또는 AMVP 후보 리스트의 효율성을 감소시킬 수 있다. 중복 후보를 제거하기 위해 프루닝 프로세스가 적용될 수 있다. 프루닝 프로세스는 예를 들어 현재 후보리스트의 다른 후보들과 하나의 후보를 비교하여 적어도 일부 경우들에 대해, 동일한 후보를 삽입하는 것을 회피할 수 있다. 프로세싱 복잡성을 줄이기 위해 일부 경우들에서, 제한된 푸루닝 프로세스가 적용될 수도 있으며, 여기서 모든 후보들이 리스트에서의 모든 후보들과 비교되는 것은 아니다.
프레임 레이트 상향-변환 (FRUC) 기술들을 이용하여 낮은 프레임 레이트 비디오들에서부터 높은 프레임 레이트의 비디오들을 생성할 수 있다. FRUC 은 디스플레이 산업에서 널리 이용되어 왔다. FRUC 기술은 두 가지 유형들로 나눌 수 있다. 하나의 기술은 중간 프레임 단위 반복 또는 평균화를 간한다. 그러나 이 기술은 많은 모션을 포함하는 비디오에서 열등한 결과들을 제공할 수도 있다. 모션 보정 FRUC (MC-FRUC) 라고 하는 두번째 기술은 중간 프레임들을 생성할 때 오브젝트의 모션을 고려할 수 있다. MC-FRUC 는 2 개의 단계들, 즉 먼저, 모션 추정 (ME) 및 둘째로 모션 보상된 보간 (MCI) 을 포함할 수 있다. 모션 추정은 벡터들을 이용하여 오브젝트 모션을 나타내는 모션 벡터들 (MV) 을 생성할 수 있으며 모션 보상된 보간은 모션 벡터들을 이용하여 중간 프레임들을 생성할 수 있다.
블록 매칭 알고리즘 (BMA) 은 구현이 간단하기 때문에 MC-FRUC 에서 모션 추정에 널리 이용된다. 블록 매칭 알고리즘은 이미지를 블록들로 분할하고 이들 블록들의 움직임을 검출한다. 다양한 종류의 모션 추정이 블록 매칭 알고리즘에 이용될 수 있는데, 여기에는 유니래터럴 모션 추정과 바이래터럴 모션 추정을 포함한다.
도 4 는 프레임 레이트 상향-변환에서 유니래터럴 모션 추정의 일 예를 예시한다. 도 4 의 예에 의해 예시된 바와 같이, 유니래터럴 모션 추정은 현재 프레임 (402) 에서의 주어진 블록 (412) 에 대해 현재 프레임 (402) 의 레퍼런스 프레임 (404) 에서 최상의 매칭 블록 (414) 을 탐색하는 것에 의해 모션 벡터 (410) 를 획득할 수 있다. 현재 프레임 (402) 과 레퍼런스 프레임 (404) 사이에 시간적으로 위치된 보간 프레임 (406) 은 모션 벡터 (410) 를 이용하여 생성될 수도 있다. 구체적으로, 보간된 블록 (416) 은 현재 프레임 (402) 과 레퍼런스 프레임 (404) 사이에서 일관성있는 모션이 발생할 수 있도록 모션 벡터 (410) 의 경로를 따라 위치될 수 있다. 이 예에서, 3 개의 프레임들로부터 3 개의 블록들이 모션 궤도를 따른다.
현재 프레임 (402) 의 블록 (412) 은 코딩된 블록에 속할 수 있지만, 레퍼런스 프레임 (404) 의 최상의 매칭 블록 (414) 은 코딩된 블록에 완전히 속하지 않을 수도 있다. 일부 경우들에서, 보간 프레임 (406) 의 보간된 블록 (416) 은 코딩된 블록에도 속하지 않을 수도 있다. 결과적으로, 블록들의 중첩된 영역들 및 미충전된 (홀들) 영역들이 보간 프레임 (406) 에서 발생할 수도 있다. 중첩된 영역들을 처리하는 간단한 방법은 중첩된 픽셀들을 평균화하고 겹쳐쓰기하는 것을 포함한다. 홀들은 레퍼런스 프레임 (404) 또는 현재 프레임 (402) 으로부터의 픽셀 값들에 의해 커버될 수 있다. 그러나 이들 방법은 블로킹 아티팩트 및/또는 블러링을 가져올 수 있다. 대안으로서, 모션 필드 세그먼테이션, 이산 Hartley 변환을 이용한 연속 외삽 및 이미지 인-페인팅은 블로킹 아티팩트 및 블러링을 증가시킴이 없이,보간된 프레임의 오버랩 및 홀에 대해 이용될 수 있다.
도 5 는 프레임 레이트 상향-변환을 위한 바이래터럴 모션 추정의 일 예를 예시한다. 바이래터럴 모션 추정은 보간된 프레임 (506) 에서 오버랩들 및 홀들을 회피하기 위해 모션 보정된 FRUC 에 이용될 수 있는 또 다른 기술이다. 유니래터럴 모션 추정에서와 같이, 현재 프레임 (502) 의 주어진 블록 (512) 에 대해, 바이래터럴 모션 추정은 현재 프레임 (502) 의 레퍼런스 프레임 (504) 에서 최상의 매칭 블록 (514) 을 이용하여 모션 벡터 (510) 를 획득한다. 바이래터럴 모션 추정은 그 후, 보간된 블록 (516) 과 현재 프레임 (502) 및 레퍼런스 프레임 (504) 양쪽과의 사이에 시간적 대칭성을 추정하고, 이에 따라 모션 벡터 (510) 가 보간된 블록 (516) 과 현재 프레임 (502) 사이의 제 1 모션 벡터 (520) 및 보간된 블록과 레퍼런스 프레임 (504) 사이의 제 2 모션 벡터 (522) 로 분할될 수 있다.
바이래터럴 모션 추정이 보간 프레임 (506) 의 각 블록에 대해 이용될 때, 오버랩 및 홀들은 보간 프레임 (506) 을 야기해서는 안된다. 비디오 코딩에서, 현재 블록 (512) 은 대부분의 경우, 현재 프레임 (502) 의 다른 블록들에 대해 특정 순서로 (예를 들어, 디코딩 순서로) 코딩 중에 있다. 현재 프레임 (502) 내의 블록들이 시퀀스로 프로세싱되기 때문에, 시퀀스는 오버랩 또는 홀의 발생없이 생성된 보간 프레임 (506) 을 초래해야 한다.
시그널링 모션 정보 (예를 들어, 모션 정보를 기술할 수 있는 비디오 비트스트림에 데이터를 삽입하는 것) 는 비트스트림에 포함될 필요가 있는 비트들의 양을 증가시키는 측면에서 비용이 많이 들 수 있다. 모션 정보의 비트 비용을 줄이기 위해 디코딩 디바이스들에 의해 디코더측 모션 벡터 유도 (DMVD) 를 이용할 수 있다.
템플릿 매칭 기반 디코더측 모션 벡터 유도는 모션 정보의 비트 비용을 줄이고 코딩 효율을 높이는 한 가지 방법이다. 도 6 은 템플릿 매칭 기반 디코더측 모션 벡터 유도의 일 예를 예시한다. 현재 블록에 대한 최상의 매칭을 검색하는 대신에, 현재 프레임 (602) 내의 현재 블록 (예를 들어, 예측 타겟 (618)) 에 대해, 템플릿 (616) 의 최상의 매칭 (614) 이 레퍼런스 프레임 (604) 에서 검색된다. 템플릿 (616) 및 예측 타겟 (618) 이 동일한 오브젝트로부터 기원한다고 가정하면, 템플릿 (616) 의 변위 (612)(레퍼런스 프레임 (604) 에서의 병치된 템플릿 (610) 으로부터 유도됨; 여기에서 병치된 템플릿 (610) 이 레퍼런스 프레임 (604) 에서 템플릿 (616) 의 위치에 대응함) 는 예측 타겟 (618) 의 모션 벡터로서 이용될 수 있다. 템플릿 매칭은 인코더와 디코더 모두에서 수행되기 때문에 시그널링 비용을 피하기 위해 모션 벡터는 디코더 측에서 유도될 수 있다.
디코더측 모션 벡터 유도를 위한 또 다른 방법은 미러 기반의 양방향 모션 벡터 유도이다. 도 7 은 미러-기반 바이래터럴 모션 벡터 유도의 일 예를 예시한다. 미러 기반 양방향 모션 벡터 유도는 분수 샘플 정확도를 이용하여, 검색 중심들을 중심으로 중심-대칭 모션 추정을 이용하는 것을 포함한다. 검색 윈도우의 사이즈 및/또는 위치는 디코더에 대해 미리 정의될 수 있고/있거나 비트스트림에서 시그널링될 수 있다.
도 7 의 예에 예시된 바와 같이, 중심-대칭 모션 추정은 역방향 최상의 매칭 블록 (714) 및 순방향 최상의 매칭 블록 (716) 에 대해 L0 레퍼런스 픽처 (704)(예를 들어, RefPicList0 로부터 선택된 레퍼런스 프레임) 및 L1 레퍼런스 픽처 (706)(예를 들어, RefPicList1 로부터 선택된 레퍼런스 프레임) 양쪽 모두를 검색하는 것을 포함한다. 역방향 최상의 매칭 블록 (714) 및 순방향 최상의 매칭 블록은 역방향 모션 벡터 (MV0)(720) 및 순방향 모션 벡터 (MV1)(722) 를 각각 결정하기 위해 이용될 수 있다. MV0 (720) 및 MV1 (722) 은 그 후, 현재 픽처 (702) 에서 현재 블록 (712) 에 대한 위치를 예측하기 위해 이용될 수 있다. 일부 경우들에서, 현재 픽처 (702) 는 프레임 레이트 상향-변환 코딩 모드를 적용하는 프로세스에서 생성되고 있다.
역방향 최상의 매칭 블록 (714) 및 순방향 최상의 매칭 블록 (716) 을 결정하기 위해, 프로세스는 역방향 예측 모션 벡터 (PMV0)(730) 및 순방향 예측 모션 벡터 (PMV1)(732) 를 시작포인트로서 이용할 수도 있다. PMV0 (730) 및 PMV1 에는 각각 L0 레퍼런스 픽처 (704) 및 L1 레퍼런스 픽처 (706) 가 제공될 수 있거나, L0 레퍼런스 픽처 (704) 및 L1 레퍼런스 픽처 (706) 를 이용하여 유도될 수 있다. L0 레퍼런스 픽처 (704) 에서, PMV0 (730) 에 의해 표시된 예측 블록 (744) 으로부터의 오프셋 (+dMV) (750) 의 다양한 값들을 테스트하는 것에 의해 최상의 매칭 역방향 블록 (714) 에 대해 검색될 수 있다. 동시에, PMV1 (732) 에 의해 지시된 예측된 블록 (746) 으로부터 오프셋 (-dMV) (752) 을 이용하여 L1 레퍼런스 픽처 (706) 내의 검색 윈도우 (742) 가 검색될 수 있다. 일부 예들에서 +dMV (750) 및 -dMV (752) 의 모든 값들이 체크될 수 있다. 그 후, 오프셋 값들은 MV0 (720) 및 MV1 (722) 을 결정하기 위해 PMV0 (730) 및 PMV1 (732) 에 추가될 수 있다. 일부 경우들에서, +dMV (750) 및/또는 -dMV (752) 는 하나 이상의 음의 성분을 포함할 수 있다.
일부 예들에서, L0 레퍼런스 픽처 (704) 및 L1 레퍼런스 픽처 (706) 에서 최상의 매칭 블록들 사이의 절대 차이의 합 (SAD) 은 중심 대칭 모션 추정을 결정하기 위해 이용될 수 있다. 최소 SAD 값을 갖는 모션 벡터 페어 (예를 들어, MV0 (720) 및 MV1 (722)) 은 중심 대칭 모션 추정의 출력으로서 선택될 수 있다.
도 7 에 예시된 예는 SAD 매칭에 대한 장래의 레퍼런스 (예를 들어, 현재 프레임보다 더 늦은 시간 포지션에서의 레퍼런스) 및 더 이른 레퍼런스 (예를 들어, 현재 프레임보다 더 빠른 시간 포지션에서의 레퍼런스) 를 이용한다. 따라서, 이 방법은 장래의 레퍼런스만이 이용가능한 P 프레임들 및 저-지연 B 프레임들과 같은 프레임에 대해 적용가능하지 않을 수도 있다.
일부 경우들에서, 미러 기반의 양방향 모션 벡터 유도는 HEVC 에서 병합 모드와 결합될 수 있다. 예를 들어, pu_dmvd_flag 라 불리는 플래그는 디코더측 모션 벡터 유도 모드가 현재 PU 에 적용될 수 있는지의 여부를 표시하기 위해 B-슬라이스들의 PU 에 대해 추가될 수 있다. 도 8 은 pu_dmvd_flag 를 포함하는 PU 를 디코딩하기 위한 프로세스 (800) 의 일 예를 예시한다. 디코더측 모션 벡터 유도 모드에서, 디코딩되고 있는 비트스트림은 명시적 모션 벡터 정보를 포함하지 않는다. Pu_dmv_flag 의 포함은 디코더가 디코더측 모션 벡터 유도 프로세스에 참여해야 한다는 것을 디코더에 시그널링할 수 있다.
단계 802 에서, 프로세스 (800) 는 PU 를 디코딩하기 시작한다. 단계 804 에서, 프로세스 (800) 는 PU 가 병합 PU 인지의 여부를 결정한다. PU 가 병합 PU 가 아닐 때, 프로세스 (800) 는 단계 806 로 진행하고 비병합 PU 에 대한 정규 프로세스를 이용하여 PU 를 디코딩한다.
단계 804 에서, 프로세스 (800) 가 PU 가 병합 PU 라고 결정하면, 프로세스는 단계 808 로 진행한다. 단계 808 에서, 프로세스 (800) 는 pu_dmvd_flag 의 값을 결정한다. Pu_dmvd_flag 는 디코더가 디코더측 모션 유도 프로세스를 이용해야 하는지의 여부를 표시할 수 있다. Pu_dmvd_flag 가 디코더측 모션 유도 프로세스를 이용해서는 안된다는 것을 표시할 때, 프로세스 (800) 는 단계 810 로 진행하고, 병합 PU 를 디코딩하기 위한 정규 프로세스에 참여한다.
단계 808 에서, pu_dmvd_flag 가 디코더가 디코더측 모션 유도 프로세스를 이용해야 한다고 표시하면, 프로세스는 단계 812 로 진행한다. 단계 812 에서, 프로세스 800 는 디코더측 모션 벡터 유도 프로세스를 이용하여 PU를 디코딩한다.
단계들 806, 810 및 812 각각은 단계 814 로 진행하며, 여기서 PU 의 디코딩이 완료된다.
블록의 모션 벡터를 찾기 위해 고속 모션 검색 방법을 이용하여 모션 벡터 유도의 계산 비용을 최소화할 수 있다. 고속 모션 검색 방법의 예는 BBGDS (Block-Based Gradient Descent Search), UCBDS (Unrestricted Center-Byased Diamond Search), HEBS (Hexagon-Based Search) 등을 포함한다. 이러한 방법 및 다른 방법은 미리 정의된 검색 패턴을 이용하여 검색 윈도우 내부에서 일정 수의 포지션들을 검색한다. 비디오에서의 모션이 작고 적절하면 이들 방법이 잘 동작할 수 있다.
그 전체가 모든 목적에 대해 본원에 참조로서 포함되는 미국 공개 번호 제2016/0286230호에서, 본 명세서에서 FRUC mod 로 지칭되는 프레임 레이트 상향-변환에 기초한 코딩 모드가 설명되었다. 참조로서 설명된 바와 같이, FRUC 모드는 블록의 모션 정보가 시그널링되지 않고 (예를 들어, 비트스트림에 포함되지 않음) 대신에 디코더에 의해 유도되는 특별한 병합 모드이다.
일부 예들에서, 병합 플래그가 CU 에 대해 참일 때, CU 에 대해 FRUC 플래그가 시그널링된다 (예를 들어, 플래그가 비트스트림에 포함됨). FRUC 플래그가 거짓일 때 병합 인덱스가 시그널링될 수도 있고 정규 병합 모드가 이용될 수 있다. FRUC 플래그가 참일 때, CU 에서의 블록에 대한 모션 정보를 유도하기 위해 어떤 방법 (예를 들어, 바이래터럴 매칭 또는 템플릿 매칭) 이 이용될 것인지를 표시하기 위해 추가적인 FRUC 모드 플래그가 시그널링된다.
모션 유도 프로세스 동안, 바이래터럴 매칭 또는 템플릿 매칭을 이용하여 초기 모션 벡터가 먼저 전체 CU 에 대해 유도될 수도 있다. 먼저, CU 의 병합 리스트를 체크하고 최소 매칭 비용으로 이어지는 후보가 시작 포인트로서 선택될 수 있다. 그 후, 시작 포인트 중심으로 바이래터럴 매칭 또는 템플릿 매칭에 기초한 로컬 검색을 수행할 수 있으며 최소 일치 비용을 초래하는 모션 벡터를, 전체 CU 의 모션 벡터로서 취할 수 있다. 결과적으로, 모션 정보는 유도된 CU 모션 벡터를 시작 포인트로서 서브 블록 레벨에서 추가로 리파이닝될 수 있다.
도 9 는 바이래터럴 매칭의 일 예를 예시한다. 바이래터럴 매칭에서, 현재 프레임 (902) 이 프레임 레이트 상향-변환 코딩 모드의 이용을 통해 생성될 때, 현재 프레임 (902) 에서 현재 블록 (912) 에 대한 모션 정보가 유도될 수 있다. 특히, 제 1 레퍼런스 프레임 (레퍼런스 프레임 0) 의 제 1 블록 (914) 과 제 2 레퍼런스 프레임 (레퍼런스 프레임 1)(906) 의 제 2 블록 (916) 사이에서 연속 모션 궤도 (910) 가 가정될 수 있다. 레퍼런스 프레임 0 (904) 에 대한 모션 벡터 (MV0)(920) 이 현재 블록 (912) 에 대해 결정될 수 있다. 예를 들어, 현재 블록 (912) 에 중심을 둔 직교 축 (930) 에 의해 결정되는 레퍼런스 프레임 0 (904) 에서의 현재 블록의 포지션은 MV0 (920) 을 결정하기 위해 이용될 수 있다. 이와 유사하게, 레퍼런스 프레임 1 (906) 에 대한 모션 벡터 (MV1)(922) 는 직교 축 (930) 에 의해 주어진 바와 같이 레퍼런스 프레임 1 (906) 에서의 현재 블록의 포지션을 이용하여 결정될 수 있다. 모션 궤도 (910) 는 연속적인 것으로 추정되기 때문에, MV0 (920) 및 MV1 (922) 는 현재 프레임 (902) 과 2 개의 레퍼런스 프레임들 사이의 시간적 거리 (각각 TD0 (932) 및 TD1 (934)) 에 비례할 수 있다. 즉, MV0 (920) 은 TD0 (932) 에 기초하여 스케일링될 수 있고, MV1 은 TD1 (934) 에 기초하여 스케일링될 수 있다.
일부 경우들에서, TD0 (932) 및 TD1 이 동일할 수 있다. 이들 경우들에서, 바이래터럴 매칭의 결과들은 미러 기반 양방향 모션 벡터 유도로부터의 결과들과 동일할 수 있다.
도 9 의 예에서, 연속 동작 궤도 (910) 는 비선형인 것으로 가정될 수 있으며, 이 경우에 아핀 모션 모델이 적용될 수 있다. 아핀 모션 모델을 이용하여, 아핀 모션 정보는 레퍼런스 프레임 0 (904) 및 레퍼런스 프레임 1 (906) 에 대해 유도될 수 있다.
현재 블록 (912) 을 결정하기 위한 아핀 모션의 예시적인 적용이 후속한다. 현재 블록 (912) 에 대한 예측이 P 라고 가정하면, P 는 레퍼런스 프레임 0 (904) 및 레퍼런스 프레임 1 (906)로부터 예측될 수 있다. 현재 블록 (912) 은 레퍼런스 프레임 0 (904) 및 레퍼런스 프레임 1 (906) 에 대해 각각 MV0 (920) 및 MV1 (MV1) 에 의해 기술되는 아핀 모션을 갖는다. 다음 식들은 P가 레퍼런스 프레임 0 (904) 및 레퍼런스 프레임 1 (906) 로부터 예측될 수 있는 방식을 설명한다 :
Figure pct00003
상기 식에서, P 0 는 레퍼런스 프레임 (904) 의 제 1 블록 (914) 을 나타내고, P 1 는 레퍼런스 프레임 1 (906) 의 제 2 블록 (916) 을 나타낸다.
레퍼런스 프레임 0 (904) 에서 P 의 시간적 포지션은 T0 로 지정될 수 있다. T0 에서 P 의 1차 테일러 전개는 다음 식을 이용하여 결정될 수 있다.
Figure pct00004
식 (2)
식 (2) 를 풀기 위해,
Figure pct00005
P 0, 에서 각각 x 방향 및 y 방향의 기울기를 나타낼 수 있다. 추가적으로,
Figure pct00006
Figure pct00007
는 아핀 모션 모델에 의해 정의된 바와 같이, T0 에서의 모션을 나타낼 수도 있다. 이들 표현을 이용하면 식 (2) 는 다음과 같이 될 수 있다:
Figure pct00008
식 (3)
일부 예들에서, 아핀 모션
Figure pct00009
은 다음과 같이 4 파라미터 아핀 모델로 나타낼 수 있다:
Figure pct00010
위의 식에서, S 는 균일 스케일링 팩터를 나타내며, φ 는 회전을 나타내며, cd 는 병진 모션 벡터들을 나타낸다. 다른 예들에서, 6-파라미터 또는 8 파라미터 아핀 모델이 이용될 수 있다.
편의상,
Figure pct00011
이라 하고, 이 경우 위의 식은 다음과 같이 된다:
Figure pct00012
식 (4)
현재 블록 (912) 이 레퍼런스 프레임 0 (904) 및 레퍼런스 프레임 1 (906) 으로부터 시간적으로 등거리 일 때,
Figure pct00013
는 다음 식을 이용하여 결정될 수 있다:
Figure pct00014
위에서, 회전 각도 및 병진 모션은 레퍼런스 프레임 0 (904) 및 레퍼런스 프레임 1 (906) 사이에서 미러링되는 것으로 가정되는 한편, 스케일링 인자는 역수 인 것으로 가정된다.
이와 유사하게, 레퍼런스 프레임 1 (906) 에서 P 의 시간적 포지션은 T1 로 지정될 수 있다. T1 에서 P 의 1차 테일러 전개는 다음 식을 이용하여 결정될 수 있다:
Figure pct00015
식 (5)
위의 식들은 바이래터럴 매칭에 적용되기 때문에, 식 (3) 과 식 (5) 사이의 제곱 오차의 합을 최소화하는 것에 의해, 아핀 파라미터들 (S, a, b, cd) 이 유도될 수 있으며, 이는 수학적으로 다음과 같이 표현될 수 있다:
Figure pct00016
Figure pct00017
식 (6)
수학적으로 S 는 풀기가 어려울 수 있다. 실제로, S 의 값들이 특정 범위로 제한될 수 있으며, S 의 주어진 값들에서의 a, b, c, 및 d 는 풀릴 수 있다. 제곱합의 최소 합으로 이어지는 {S, a, b, c, d} 의 조합은 블록에 대한 아핀 모션을 기술하기 위해 이용될 수 있다. 대안적으로, (스케일링 팩터의 초기 추정을 제공하기 위한 피처 포인트-기반 방법과 관련하여) 후술되는 방법들은 S 에 대한 근사값을 찾기 위해 이용될 수 있다.
도 10 은 템플릿 매칭의 일 예를 예시한다. 템플릿 매칭에서, 템플릿 (1016) 은 레퍼런스 프레임 (레퍼런스 프레임 0 (1004)) 으로부터 모션 정보를 유도하기 위해 이용될 수 있다. 예를 들어, 템플릿 (1016) 은 현재 프레임 (1002) 에서 현재 블록 (1012) 의 상부 및/또는 좌측 이웃 블록들을 포함할 수도 있다. 이 예에서, 블록들의 세트는 템플릿 (1016) 과 최상 매칭하는 레퍼런스 프레임 0 (1004) 에서 찾을 수 있고, 여기서 블록들의 세트가 템플릿 (1016) 과 동일한 사이즈 및/또는 구성이다. 그 후, 모션 벡터 (1020) 는 레퍼런스 프레임 0 (1004) 에서 현재 블록 (1012) 의 상대 위치 및 블록들의 세트의 로케이션을 이용하여 결정될 수 있다. 현재 블록 (1012) 의 상대 위치는 예를 들어 현재 블록 (1012) 의 중심을 관통하는 직교 축 (1030) 으로부터 결정될 수 있다.
인코더에서 CU 에 대해 FRUC 병합 모드를 이용할지의 여부는 예를 들어 정규 병합 후보에 대해 행해진 바와 같이 비율 왜곡 비용 선택에 기초할 수 있다. 즉, 레이트 왜곡 비용은 주어진 CU 에 대한 2 개의 매칭 모드들 (예를 들어, 바이래터럴 매칭 및 템플릿 매칭) 각각에 대해 결정될 수도 있다. 최저 비용을 갖는 매칭 모드는 다른 CU 모드와 추가로 비교될 수 있다. FRUC 매칭 모드가 최저 비용을 가질 때, FRUC 플래그는 FRUC 병합 모드가 CU 를 위해 이용되어야 함을 표시하도록 설정될 수 있다. 추가적으로, 이용될 매칭 모드가 또한 표시될 수 있다.
LIC (Local Illumination Compensation) 는 레퍼런스 블록을 결정할 때 진행중 프레임과 후속 프레임 간의 조명에서의 변화를 수용할 수 있게 하는 프로세스이다. 예를 들어, 비디오에서, 제 1 프레임의 오브젝트가 제 2 프레임에서 더 밝게 조명되도록 카메라 플래시가 발생할 수도 있다. 이 예에서 조명 변경 (예를 들어, 카메라 플래시) 은 동일한 오브젝트에 대해 픽셀 값 차이들을 유발할 수 있다. 조명 변경이 수용되지 않을 때, 제 2 프레임에서 레퍼런스 블록을 위치시키는 것이 어려울 수도 있다. LIC 는 예를 들어 일정한 픽셀 값이 두 번째 프레임에 추가되었다고 가정한다. 이 가정 하에 레퍼런스 블록이 보다 쉽게 찾아질 수 있다.
LIC 는 조명 변경에 대한 선형 모델에 기초할 수도 있으며 스케일링 팩터 a 및 오프셋 b 을 이용할 수 있다. 예를 들어, 스케일링 팩터와 오프셋은 픽처의 조명 변경으로 인하여 유도된 불일치를 보상하기 위해 이용될 수 있다. 스케일링 팩터는, 예를 들어, 레퍼런스 블록에 대한 픽셀 값들을 스케일링하기 위해 이용될 수 있다. 예를 들어, 스케일링 팩터는 레퍼런스 블록으로부터 생성된 예측 샘플들에 의해 곱해질 수도 있다. 예를 들어 오프셋은 스케일링 팩터를 결정하기 위해 이용되는 픽셀들의 세트를 표시하기 위해 이용될 수 있다. 경우에 따라 오프셋은 픽처의 비 조명 버전에서의 평균 휘도 변화를 나타낼 수 있다. LIC 는 각각의 인터코딩된 CU 에 대해 적응적으로 인에이블 또는 디스에이블될 수 있다.
다음 식은 인터-뷰 예측에 이용될 수 있는 선형 조명 보상 모델의 예를 제공한다.
Figure pct00018
(식에서
Figure pct00019
)
위의 식에서, PUc는 현재 예측 유닛이고, (i, j) 는 PUc에서의 픽셀들의 좌표이고, 그리고 (dvx , dvy) 는 PUc 의 디스패리티 벡터이다. p(i, j) 는 PUc의 예측이며, r 은 이웃 뷰로부터의 예측 유닛의 레퍼런스 픽처이다. ab 는 선형 IC 모델의 파라미터들이다.
LIC 가 CU 에 적용될 때 ab 를 유도하기 위해 최소 제곱 오차법을 이용할 수 있다. 예를 들어, 최소 제곱법은 현재 CU의 이웃하는 샘플 및 이웃하는 샘플에 대응하는 레퍼런스 샘플을 이용할 수 있다.
도 11 은 이웃 샘플들을 이용하여 조명 보상 파라미터들을 유도하는 일 예를 예시한다. 도시된 예에서, 현재 CU (1106) 의 이웃 샘플들 (1110) 이 결정될 수 있다. 일부 예들에서, 이웃 샘플들 (1110) 은 예를 들어 2 : 1 서브샘플링을 이용하여 서브샘플링된다. 대응하는 샘플들 (1112)(예를 들어, 레퍼런스 블록 (1108) 의 이웃 샘플들) 은 조명 보상 파라미터를 결정하기 위해 이용될 수 있다. 조명 보상 파라미터들은 각각의 예측 방향에 대해 개별적으로 유도되고 적용될 수 있다.
예시된 예에서, 현재 CU (1106) 는 2 개의 PU, 즉 PU1 (1102) 및 PU2 (1104) 로 세분된다. 또한, 이 예에서, 레퍼런스 블록 (1108) 은 현재 CU (1106) 에 대한 또는 서브-CU 에 대한 모션 정보를 이용하여 리스트 0 에 대해 결정된 PU1 (1102) 에 대한 레퍼런스 블록이다.
PU 에 대한 파라미터들 (ab) 을 추정하기 위해, 현재 CU (현재의 PU 를 포함하는 CU) 의 좌측 컬럼 및 상부 로우의 제 1 이용가능 복원된 이웃 픽셀들 및 현재 CU 의 레퍼런스 블록의 제 2 대응하는 이웃 픽셀인 2 개의 픽셀들의 세트가 이용될 수 있다. 현재의 CU 의 레퍼런스 블록은 현재의 PU 의 디스패리티 벡터를 이용하여 찾을 수 있다. 도 11 을 일 예로 이용하면, 현재 CU (1106) 의 이웃 샘플들 (1110) 은 Rec neig 로 지정될 수 있고, 참조 블록 (1108) 의 이웃 샘플들 (1112) 은 Rec refig 로 지정될 수 있다. 또한 2NRec neig Rec refneig 에서의 픽셀 넘버를 표기할 수 있다. 그 후, 파라미터들 (ab) 은 다음 식을 이용하여 계산할 수 있다:
Figure pct00020
Figure pct00021
CU 가 병합 모드로 코딩될 때, 인접 블록들에서 LIC 플래그가 복사될 수 있다. 예를 들어, 모션 정보가 병합 모드에서 복사되는 방식이 이용될 수 있다. CU 가 병합 모드로 코딩되지 않을 때, LIC 플래그가 LIC 가 CU 에 적용되는지의 여부를 표시하기 위해 CU 에 대해 시그널링될 수 있다.
일부 경우들에서, LIC 및 FRUC 프로세스들은 양쪽이 인에이블될 때, 충돌할 수도 있거나 또는 불필요한 계산 복잡성을 유발할 수 있다. 예를 들어, 바이래터럴 매칭 코딩 모드 (예를 들어, 도 9 에 예시됨) 가 프레임 레이트 상향-변환 코딩 모드에 대한 모션 벡터 유도에 이용될 때, 조명 변경이 그 후의 레퍼런스 프레임에서 발생할 수도 있다. 이 예에서, 조명 변경은 프레임 레이트 상향-변환 코딩 모드의 결과로서 생성된 프레임에서 정확하게 보상되지 않을 수도 있다. 예를 들어, 조명 변경 이전 또는 조명 변경 이후의 픽셀 값들이 생성된 프레임에 더 적합한지의 여부는 분명하지 않을 수도 있다.
여러 구현들에서, LIC 및 FRUC 바이래터럴 매칭을 인에이블하는 것에 의해 유발되는 충돌 및/또는 복잡성은 하나의 또는 다른 프로세스만이 블록 또는 CU 에 대해 이용되도록 허용하는 것에 의해 해결될 수 있다. FRUC 바이래터럴 매칭 코딩 모드 또는 LIC 가 인에이블되는지의 여부는 비트스트림에 포함된 연관 플래그의 순서에 의존할 수 있다. 예를 들어, 일부 구현들에서, FRUC 이 인에이블됨을 표시하는 플래그가 LIC 가 인에이블되는지의 여부를 표시하는 플래그 앞에 나타날 때, FRUC 바이래터럴 매칭 코딩 모드가 또한 인에이블되며, LIC 플래그는 인코더에 의해 "디스에이블" 로 설정되고/되거나 디코더에 의해 무시된다. 대안적으로 또는 부가적으로, LIC 플래그는 시그널링될 수 없으며, 비트스트림으로부터 완전히 벗어났음을 의미한다. 다른 예로서, 일부 구현들에서, LIC 가 인에이블됨을 나타내는 플래그가 FRUC가 인에이블됨을 표시하는 플래그 앞에 나타날 때, 플래그 인에이블된 FRUC 바이래터럴 매칭 코딩 모드는 인코더 및/또는 디코더에 의해 "디스에이블"로 설정될 수도 있고 FRUC 바이래터럴 매칭 코딩 모드가 이용될 수 없다고 가정할 수도 있다. 대안적으로 또는 추가적으로, FRUC 바이래터럴 매칭 코딩 모드 플래그는 비트스트림에서 시그널링될 수 없다.
HEVC 에서, 일부 경우들에서, 병진 모델만이 모션 보상 예측에 대해 적용될 수도 있다. 병진 모델은 선형 모션을 추정한다. 그러나 대부분의 경우 비디오에는 줌-인, 줌-아웃, 회전, 원근 모션 및/또는 기타 불규칙하고 비선형적인 모션과 같은 많은 비선형 모션을 포함할 수 있다. JEM (Joint Exploration Model) 에서 단순화된 아핀 변환 모션 보상 예측을 적용하여 비선형 모션을 수용하고 코딩 효율을 향상시킬 수 있다. JEM 은 국제 전기 통신 연합 비디오 코딩 전문가 그룹 (ITU-VCEG) 과 국제 표준기구/국제 전기 기술위원회 모션 픽처 그룹 (ISO/IEC MPEG) 의 프로젝트입니다. JEM 은 HEVC 보다 더 우수한 압축 능력을 가진 비디오 코딩 기술을 연구하고 잠재적으로 표준화할 수 있는 플랫폼을 제공한다.
도 12 는 현재 블록 (1202) 에 대한 단순화된 아핀 모션 모델의 일 예를 예시한다. 현재 블록 (1202) 은, 예를 들어 프레임 레이트 상향-변환 코딩 모드의 이용을 통해 생성되는 프레임에 있을 수도 있다.
도 12 에 예시된 예에서, 현재 블록 (1202) 의 아핀 모션은 2 개의 제어 포인트 벡터들, v 0 (1210) 및 v 1 (1212) 에 의해 기술될 수 있다. 도시된 예에서는 v 0 (1210) 은 현재 블록 (1202) 의 상부 좌측 코너로부터 결정되고, v 1 (1212) 은 현재 블록 (1202) 의 상부 우측 코너로부터 결정된다. 각각의 제어 포인트 벡터는 수평 값과 수직 값이라는 2 개의 값들을 포함할 수 있고, 따라서, 각각의 제어 포인트 벡터는 2 개의 제어 포인트를 제공할 수 있다. 추가적인 제어 포인트들 (예를 들어, 6 개의 제어 포인트들 또는 8 개의 제어 포인트들 또는 일부 다른 수의 제어 포인트들) 은 추가적인 제어 포인트 벡터들을, 예를 들어 현재 블록 (1202) 의 하부 코너 및/또는 현재 블록 (1202) 의 중심에서 추가하는 것에 의해 정의될 수 있다.
제어 포인트 벡터들은 예를 들어 비선형 모션의 가능성을 추정하는 바이래터럴 매칭을 이용하여 결정될 수 있다. 예를 들어, 제 1 레퍼런스 프레임과 제 2 레퍼런스 프레임 사이에서, 오브젝트는 10 도 회전할 수도 있다. 이 예에서, 연속 모션을 추정하면, 현재 블록 (1202) 에 대한 회전 각도는 5 도인 것으로 추정될 수도 있다. 이 예에서 제어 포인트 벡터는 그에 따라 생성될 수 있다.
여러 예들에서, 2 개의 제어 포인트 벡터들은 현재 블록 (1202) 에 대한 모션 벡터 필드 (MVF) 를 결정하기 위해 이용될 수도 있다. 식 (1) 은 모션 벡터 필드가 결정될 수 있는 방법을 나타낸다.
Figure pct00022
식 (1)
식 (1) 에서,(v 0x , v 0y ) 은 상단-좌측 코너 제어 포인트에 대한 모션 벡터 (예를 들어, 벡터 (v 0 ) 를 기술하는 모션 벡터 (1210)) 이고, (v 1x , v 1y ) 는 상단-우측 코너 제어 포인트에 대한 모션 벡터 (예를 들어, 벡터 (v 0 ) 를 기술하는 모션 벡터(1210)) 이다. 식 (1) 은 포지션 (x, y) 에서의 픽셀에 대한 모션 벡터(v x , v y ) 를 계산하기 위해 이용될 수 있다. 2 개 이상의 제어 포인트 벡터가 이용되는 예에서, 식 (1) 은 이에 따라 전개될 수도 있다.
현재 블록 (1202) 에서 각각의 픽셀에 대한 모션 벡터를 계산하는 것은 보다 더 자세한 모션 정보를 캡처할 수 있고, 따라서 더 우수한 프레임 레이트 상향-변환 결과들을 생성할 수 있다. 예를 들어, 비디오는 많은 사람들이 동일한 일반 방향으로 움직이는 족적을 캡처할 수 있다. 이 예에서, 그룹의 일반적인 모션은 제어 포인트 벡터에 의해 및/또는 전체 블록에 대한 병진 모션 벡터에 의해 캡처될 수도 있다. 그러나 그룹 내에서 개개의 사람들은 그룹의 일반적인 방향과 관련하여 적절하게 상이한 방향으로 이동중일 수도 있다. 모션 벡터가 블록의 각각의 픽셀에 대해 계산되는 모션 벡터 필드는 이러한 모션에서의 변경들을 캡처할 수 있다.
그러나, 블록의 각각의 픽셀에 대한 모션 벡터를 계산하는 것은 계산적으로 요구될 수 있다. 계산을 단순화하기 위해, 블록-기반 아핀 변환 예측이 적용될 수 있다. 도 13 은 블록 (1302)의 서브-블록들을 이용하여 결정된 모션 벡터 필드의 일 예를 예시한다. 블록 (1302) 은, 예를 들어 프레임 레이트 상향-변환 코딩 모드의 이용을 통해 생성되는 프레임에 있을 수도 있다.
도 13 의 도시된 예에 있어서, 블록 (1302) 은 4x4 서브블록들로 분할되었다. 각각의 서브-블록의 모션 벡터는 제 1 제어 포인트 벡터 V 0 (1310) 및 제 2 제어 포인트 벡터 V (1) (1312) 를 이용하여 결정되었다. 이 예에서, V 0 (1310) 은 블록 (1302) 의 상부 좌측 코너에 기초하고 V (1) (1312) 는 에 블록 (1302) 의 상부 우측 코너에 기초한다. 예시된 예에서, 각각의 서브-블록에 대한 모션 벡터는식 (1) 을 이용하여 각각의 서브-블록의 중간 샘플에 대해 계산된다. 일부 예들에서, 결과적인(v x , v y ) 값들은 1/16 분수 정확도로 반올림될 수 있다. 각각의 서브-블록의 모션 벡터는 각각의 서브-블록에 대한 예측을 생성하기 위해 이용될 수 있다.
일부 예들에서, 모션 보상 예측 이후에, 각각의 서브-블록의 고정밀도 모션 벡터는 정상 모션 벡터와 동일한 정확도로 반올림되어 저장될 수 있다.
JEM 을 포함하는 일부 예들에서, 아핀 모션 모델은 2 개의 모드들, 즉 아핀 인터 모드 (본원에서 AF_INTER 모드로 지칭됨) 및 아핀 병합 모드 (본원에서 AF_MERGE 모드로 지칭됨) 를 포함할 수 있다.
도 14 는 AF_INTER 모드에서의 모션 벡터 예측의 일 예를 예시한다. 일부 예들에서, CU 가 8 픽셀보다 더 큰 폭 및 높이를 가질 때 AF_INTER 모드가 적용될 수 있다. AF_INTER 모드가 CU 에 적용되었는지의 여부를 표시하기 위해 CU 레벨에서 비트스트림에 아핀 플래그가 배치될 수 있다.
도 14 의 예에 예시된 바와 같이, AF_INTER 모드에서, 모션 벡터 페어들의 후보 리스트는 이웃 블록들을 이용하여 구성될 수 있다. 예를 들어, 현재 블록 (1402) 의 상부 좌측 코너에 위치되는 서브-블록 (V0; 1410) 에 대해, 모션 벡터 (v 0 ) 는 상부 및 좌측, 상부 그리고 좌측 방향으로 이웃 블록들 (A (1420), B (1422), 및 C (1424)) 로부터 선택될 수 있다. 추가적인 예로서, 현재 블록 (1402) 의 상부 우측 코너에 위치되는 서브-블록 (V1; 1412) 에 대해, 모션 벡터 (v 1 ) 는 상부 및 상부 우측 방향으로 이웃 블록들 (D (1426) 및 E (1428)) 로부터 선택될 수 있다. 블록들 (A (1420), B (1422), C (1424), D (1426), 및 E (1428)) 에 대응하는 모션 벡터들 (v A , v B , v C , v D , 및 v E ) 이 주어지면, 모션 벡터 페어들의 후보 리스트는 {(v 0 , v 1 ) | v 0 = { v A , v B , v C }, v 1 = {v D , v E }} 로서 표현될 수 있다. 일부 예들에서, 이웃 블록으로부터의 모션 벡터는 이웃 블록에 대한 레퍼런스 픽처의 POC, 현재 CU 에 대한 레퍼런스 픽처의 POC 및 현재 CU 의 POC 사이의 관계에 기초하여 스케일링될 수 있다. 이들 예들에서 POC들 중 일부는 레퍼런스 리스트로부터 결정될 수 있다.
일부 예들에서, 후보리스트 내의 후보들의 수가 2 보다 적을 때, 후보 리스트는 각각의 AMVP 후보들을 복제함으로써 구성된 모션 벡터 페어들로 패딩될 수 있다. 후보 리스트가 2 보다 클 때, 일부 예들에서, 후보 리스트 내의 후보들은 (예를 들어, 후보와 연관된 모션 벡터들의 페어의 2 개의 모션 벡터들 사이의 유사도에 따라) 후보에 대한 모션 벡터들의 일관성에 따라 분류될 수도 있다. 이들 예에서는 처음 2 개의 후보들이 유지되고 나머지는 무시될 수도 있다.
일부 예들에서, 레이트 왜곡 비용 체크는 리스트 내의 후보들 중에서 모션 벡터 페어 후보를 선택하기 위해 이용될 수 있다. 선택된 모션 벡터 페어 후보는 현재 블록 (1402) 에 대한 제어 포인트 모션 벡터 예측 (CPMVP) 으로서 이용될 수 있다. 일부 경우들에서, 선택된 모션 벡터 페어 후보의 포지션을 나타내는 인덱스가 비트스트림으로 표시될 수도 있다. 모션 벡터 페어 후보가 현재 블록 (1402) 에 대해 선택되면, 아핀 모션 추정이 적용될 수 있고, 제어 포인트 모션 벡터 (CPMV) 가 찾아질 수 있다. 일부 경우들에서, 제어 포인트 모션 벡터와 제어 포인트 모션 벡터 예측 사이의 차이가 비트스트림에서 시그널링될 수도 있다.
도 15a 및 도 15b 는 AF_MERGE 모드에서의 모션 벡터 예측의 일 예를 예시한다. AF_MERGE 모드가 현재 블록 (1502) 에 적용될 때, 유효한 이웃의 복원된 블록으로부터 모션 벡터가 획득될 수 있다. 도 15a 에 예시된 바와 같이, 이웃 블록은 A (1520), B (1522), C (1524), D (1526) 및 E (1528) 로 라벨링된 이웃 블록들의 세트 중에서 선택될 수 있다. 이웃하는 블록들은 특정 순서로 예를 들어, 이를 테면 좌측 이웃 (블록 A (1520)), 이어서 상부 이웃 (블록 B (1522)), 이어서 상부 우측 이웃 (블록 C (1524)), 그 다음, 좌측 하부 이웃 (블록 D (1526)), 그리고 나서 상부 좌측 이웃 (블록 E (1528)) 으로 고려될 수도 있다.
선택된 이웃 블록은 아핀 모드로 코딩된 첫번째 블록이다. 예를 들어, 블록 A (1520) 는 아핀 모드로 코딩되었을 수도 있다. 도 15b 에 도시된 바와 같이, 블록 A (1520) 는 인접 CU (1504) 에 포함될 수도 있다. 이웃 CU (1504) 에 대해, 상단 좌측 코너 (v 2 (1530)), 상부 위측 코너 (v 3 (1532), 및 좌측 하부 코너 (v 4 (1534) 에 대한 모션 벡터들이 유도되었을 수도 있다. 이 예에서, 현재 블록 (1502) 의 상단 좌측 코너에 대한 제어 포인트 모션 벡터 (v 0 )(1540) 및 현재 블록 (1502) 의 상단 우측 코너에 대한 제어 포인트 모션 벡터 (v 1 )(1542) 는 아핀 모션 식으로 결정될 수 있으며, 이 식의 일 예는 다음과 같다:
Figure pct00023
위의 식들은 v 2 (1530), v 3 (1532), 및 v 4 (1534) 를 이용하여 v 0 (1540) 및 v 1 (1542) 를 계산하기 위한 일 예의 방법을 예시한다.
제어 포인트 모션 벡터들 v 0 (1540) 및 v 1 (1542) 이 결정되면, 식 (1) 은 현재 블록 (1502) 에 대한 모션 벡터 필드를 결정하도록 적용될 수 있다.
현재 블록 (1502) 이 AF_MERGE 모드로 코딩되었는지 여부를 식별하기 위해, 적어도 하나의 이웃 블록이 아핀 모드로 코딩되었을 때, 비트스트림에 아핀 플래그가 포함될 수 있다.
프레임 레이트 상향-변환 코딩 모드의 여러 구현들에서, 병진 모션은 모션 추정을 결정할 때 고려된다. 예를 들어 JEM 의 일부 구현은 병진 모션 모델만을 이용한다. 그러나, 병진 모션 모델들은 더 복잡한 모션을 캡처하지 못할 수도 있거나 또는 이러한 모션들을 효율적으로 캡처하지 못할 수도 있다. 예를 들어, 변환 모션 모델만을 이용하여 비트스트림에서 복잡한 모션들을 시그널링 (예를 들어, 설명) 하는 것은 매우 큰 비트스트림을 생성할 수도 있다. 디코더가 프레임 레이트 상향-변환을 실행하고 최소한의 글리치 또는 아티팩트를 갖는 비디오 시퀀스를 생성할 수 있기 위해서는 신호들이 필요할 수도 있다. 그러나 큰 비트스트림은 저장 및 전송에 비용이 많이 들 수 있다.
여러 구현들에서, 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용할 때, 병진 모션 모델 대신에 또는 병진 모션 모델에 더하여 아핀 모션 모델이 적용될 수도 있다. 일부 경우들에서, 아핀 모션 모델은 프레임으로부터 다음 프레임으로의 오브젝트의 움직임을 더 우수하게 반영할 수 있고 이에 따라 더 우수한 프레임 레이트의 상향-변환 결과로 이어질 수 있다.
일부 예들에서, 전체 블록에 대해 바이래터럴 매칭을 이용할 때, 병진 모션 모델이 병진 모션 정보를 유도하기 위해 먼저 이용될 수 있다. 예를 들어,도 2a 및 도 2b 와 관련하여 논의된 바와 같이, 모션 추정 및 모션 예측은 모션 벡터 및 레퍼런스 프레임에 대한 레퍼런스 인덱스를 결정하기 위해 이용될 수 있다. 그 후, 병진 모션 정보는 아핀 모션 정보를 유도하기 위해 아핀 모션 모델에 대한 입력으로서 이용될 수도 있다. 예를 들어, 병진 모션 정보는 현재 블록에 대해 단일 모션 벡터를 제공할 수 있다. 이 예에서, 위에 논의된 바와 같이, 아핀 모션 모델은 블록에 대한 모션 벡터 필드를 생성하기 위해 모션 벡터에 적용될 수도 있다.
일부 구현들에서, 비트스트림에 포함시킬 정보를 결정하기 위해, 병진 모션 정보 및 아핀 모션 정보 모두에 대해 매칭 비용이 결정될 수도 있다. 매칭 비용은 각각의 모델의 정확도와 상관될 수 있다. 매칭 비용을 결정하는 것은, 예를 들어, 제 1 레퍼런스 프레임으로부터의 블록을 제 2 레퍼런스 프레임으로부터의 블록과 비교하는 것을 포함할 수 있으며, 여기서 2 개의 블록들은 모션 모델에 기초하여 선택된다. 병진 모션 모델에 대해, 오브젝트의 모션은 선형으로 추정될 수 있으므로 제 2 블록은 제 1 블록에 대해 연속적인 궤도를 따르고 있는 것으로 추정될 수 있다. 아핀 모션 모델에 대해, 오브젝트의 모션은 비선형으로 추정될 수 있으므로 제 2 블록은 병진 모션 모델을 이용하여 선택된 블록과는 상이한 제 2 레퍼런스 프레임의 부분에 있을 수도 있다. 제 1 블록과 제 2 블록 사이의 차이가 클 때 매칭 비용은 높다. 반대로, 차이가 적으면 매칭 비용은 낮다. 여러 구현들에서, 보다 작은 매칭 비용을 초래하는 모션 정보가 이용된다.
일부 구현들에서, 아핀 모션 모델은 일부 블록들에 대해서만 체크된다. 예를 들어, 임계 사이즈보다 더 큰 블록들 (예를 들어, 4x4 픽셀, 16x16 픽셀 또는 일부 다른 사이즈) 가 체크될 수도 있다. 일부 경우들에서, 아핀 모션 모델은 더 큰 블록에 대해 더 우수한 결과들 (예를 들어 더 효율적인 코딩) 을 제공할 수 있다. 일부 예들에서, 임계값은 머신 학습 기술을 이용하여 결정될 수 있는데, 여기서 인코딩 시스템은 트레이닝 샘플들을 제공받을 수 있고, 시스템은 최적이라고 결정될 때까지 다른 임계값을 시도할 수 있다. 일부 구현들에서, 임계값은 미리 정의될 수 있거나, 또는 임계값은 비트스트림으로 시그널링될 수 있다. 예를 들어, 임계값은 SPS, PPS, 슬라이스 헤더, SEI (Supplemental Enhanced Information) 메시지 또는 비트스트림의 일부 다른 구조에서 표시될 수도 있다.
여러 구현들에서, 인코더는 임의의 특정 코딩 유닛에 대해 병진 모션 정보 또는 아핀 모션 정보가 이용되어야 하는지의 여부를 결정할 수도 있다. 이들 구현들에서, 인코더는 모션 정보를 유도하기 위해 이용된 방법을 비트스트림에 표시하거나 시그널링할 수도 있다. 여러 구현들에서, 디코더는 모션 정보를 유도하기 위해 비트스트림에서의 정보를 이용할 수도 있다.
여러 구현들에서 그리고 위에 논의된 바와 같이, 프레임 레이트 상향-변환 모드로 코딩된 블록을 디코딩할 때, 생성되는 블록은 서브-블록들로 세분될 수도 있다. 이들 구현들에서, 블록에 대한 모션 벡터는 각각의 서브-블록에 대한 모션 벡터를 생성하기 위해 이용될 수도 있다. 서브-블록들에 대한 모션 벡터를 생성하는 것은 전체 블록에서 보다 복잡한 모션을 캡처할 수 있고, 따라서 더 우수한 코딩 효율을 발생시킬 수도 있다. 블록에 대한 모션 벡터는 병진 모션 모델 또는 아핀 모션 모델을 이용하여 결정될 수도 있다. 각각의 서브-블록에 대한 모션 벡터는 병진 모션 모델 또는 아핀 모션 모델을 이용하여 결정될 수도 있다. 예를 들어, 위의 식 (1) 은 각각의 서브-블록에 대한 모션 벡터를 결정하기 위해 이용될 수도 있다.
여러 구현들에서, 피처 포인트 기반 방법은 초기 스케일링 팩터를 결정하기 위해 이용될 수 있으며, 여기서 스케일링 팩터는 서브-블록들에 대한 모션 벡터들을 결정하기 위해 이용될 수도 있다. 예를 들어, 4개 포인트 아핀 모델이 이용되는 예에서 Harris 코너 검출기 또는 다른 컴퓨터 비전 시스템을 이용하여 블록에서 가장 현저한 2 개의 포인트들을 추출할 수 있다. 피처 포인트는 블록에서 픽셀들의 구별적인 세트일 수 있고, 픽셀들은 픽셀들이 주변과 상이한 컬러 또는 광도를 갖고/갖거나 구별적인 형상을 갖기 때문에 구별적이다.
여러 구현들에서, 모션 벡터 예측 동안 최상의 매칭 블록을 검색할 때 피처 포인트들이 이용될 수도 있다. 예를 들어, 검색 방법, 이를 테면, 정규화된 교차 상관 (normalized cross correlation) 은 제 1 레퍼런스 픽처 및 제 2 레퍼런스 픽처에서 대응하는 피처 포인트들을찾기 위해 이용될 수 있다. 스케일링 팩터는, 예를 들어, 제 1 레퍼런스 픽처 및 제 2 레퍼런스 픽처 내의 Euclidean 거리들의 비를 계산하는 것에 의해 결정될 수도 있다. 대안적으로, 예를 들어 현저한 피처 포인트들의 수가 2보다 클 때, 비는 거리 벡터에 맞는 최소 제곱 값을 찾는 것에 의해 찾아질 수 있고, 여기서, 거리 벡터는 평균 포인트까지의 각각의 피처 포인트의 거리 (예를 들어, 질량 중심까지의 거리) 의 합을 계산하는 것에 의해 생성될 수 있다. 계산된 스케일링 팩터는 모든 서브-블록에 대한 모션 벡터를 리파이닝하기 위해 이용될 수도 있다.
여러 구현들에서, 시스템은 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 수행할 때 픽셀-레벨 아핀 모션 추정을 수행하도록 구성될 수도 있다. 이들 구현들에서, 피처 포인트들의 세트가 추출될 수 있고, 선형 식의 시스템에 대한 최소 제곱 해가 아핀 파라미터들을 유도하기 위해 이용될 수도 있다. 대안적으로 또는 추가적으로, 알고리즘, 이를 테면, 랜덤 샘플 컨센서스 (RANSAC) 는 아핀 파라미터들을 찾기 위해 이용될 수도 있다. 알고리즘 이를 테면, RANSAC 는 최소 제곱 해와 같은 방법들이 아웃라이어를 포함할 수도 있는 경우 아핀 파라미터들을 검색하는 동안 아웃라이어를 자동으로 제거할 수 있다. 알고리즘, 이를 테면, RANSAC 는 추가적인 계산상의 복잡성을 희생하면서 보다 강력한 결과를 산출할 수 있다.
여러 구현들에서, 비디오 시스템은 가중된 이중-보간을 지원할 수도 있다. 가중없는 이중예측에서, 예측된 역방향 모션 벡터들은 예측된 순방향 모션 벡터와 동일한 가중치를 부여 받는다. 가중된 이중-예측에서, 순방향 및 역방향 모션 벡터는 상이한 가중치들을 부여받을 수 있다. 가중치를 결정하기 위해 시스템은 반복 검색을 수행할 수 있고, 여기서 안정적인 결과가 실현되거나 또는 미리 정해진 수의 반복들에 도달할 때 검색이 종결된다. 예를 들어, 디코더는 가중치가 비트스트림에 제공되지 않을 때 반복 검색을 수행할 수도 있다. 일부 경우들에, 가중치는 비트스트림에 제공될 수도 있고, 모션 벡터를 유도하기 위해 디코더에 의해 이용될 수도 있다.
그러나 동영상 콘텐츠에 대한 정보가 없으면 반복 검색의 시작 가중치를 결정하는 것이 어려울 수 있다. 여러 구현들에서, 병진 모션 검색은 최적의 가중치를 찾기 위해 이용될 수도 있다. 이들 및 다른 구현들에서, 가중치들은 바이래터럴 매칭에서의 아핀 모션 검색에 적용될 수도 있다.
일부 구현들에서, 서브-블록 모션 벡터 리파인먼트를 위해 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용할 때, 1차 테일러 전개는 SAD 기반 매칭 대신에 모션 벡터를 최적화하기 위해 이용될 수도 있다. 예를 들어, 현재 블록에 대한 1 차 테일러 전개가 제 1 레퍼런스 프레임에 대해 계산될 수 있고, 현재 블록에 대한 1 차 테일러 전개가 또한 제 2 레퍼런스 프레임에 대해 계산될 수 있으며, 여기서 제 1 및 제 2 레퍼런스 프레임은 다른 시간적 위치에서. 모션 벡터는 제곱 오차의 합 (또는 절대 차의 합) 을 최소화하는 것에 의해 유도될 수 있으며, 오차는 2 개의 레퍼런스 프레임 각각에 대한 계산의 결과 사이에 있다. 이 계산은 위에 논의된 식 (6) 과 유사하다.
도 16 은 프레임 레이트 상향-변환 코딩 모드에 대한 프로세스 (1600) 의 일 예를 예시한다. 예시적인 프로세스 (1600) 는 인코딩 디바이스 또는 디코딩 디바이스에 의해 수행될 수도 있다.
1602 에서, 프로세스 (1600) 는 가상 현실 비디오 데이터를 획득하는 것을 포함한다. 비디오 데이터는 예를 들어 카메라와 같은 비디오 캡처 디바이스로부터 획득될 수 있다. 다른 예로서, 비디오 데이터는 인코딩된 비트스트림으로부터 획득될 수도 있다. 다른 예로서, 비디오 데이터는 비디오 데이터가 특정 포맷에 따라 패키징되는 파일 또는 네트워크 데이터로부터 획득될 수 있다.
단계 1604 에서, 프로세스 (1600) 는 비디오 레이트의 블록에 대해 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하는 단계를 포함하며, 여기서 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드가 블록에 대해 이용될 때 로컬 조명 보상이 블록에 대해 이용되는 것이 불허된다. 일부 구현들에서, 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드가 블록에 대해 이용될 때, 블록에 대한 데이터가 비트스트림에 기록될 때 로컬 조명 보상 플래그는 블록에 대해 시그널링되지 않는다.
1606 에서, 프로세스 (1600) 는 블록에 대한 모션 정보를 결정하는 단계를 포함하고, 여기서 모션 정보는 블록에 대해 이용되는 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드에 기초하여 결정된다. 모션 정보는, 예를 들어 모션 벡터를 포함할 수 있다. 프레임 레이트 상향-변환 바이래터럴 매칭을 이용하는 것은, 예를 들어, 제 1 레퍼런스 프레임 내의 제 1 블록을 결정하고 제 2 레퍼런스 프레임에서 제 2 블록을 결정하는 것을 포함할 수 있으며, 여기서 제 2 블록은 제 1 블록과 연관된다. 프로세스 (1600) 는 제 1 블록으로부터 제 2 블록으로의 모션 궤도를 결정하는 단계를 더 포함할 수도 있다. 프로세스 (1600) 는 모션 궤도의 경로를 따라 블록을 생성하는 단계를 더 포함할 수도 있다.
일부 구현들에서, 프로세스 (1600) 가 디코더에 의해 수행되는 경우, 프로세스 (1600) 는 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드가 블록에 대해 시그널링되는 것에 응답하여 로컬 조명 보상 플래그의 값을 거짓으로 유도하는 단계를 포함할 수 있고, 여기서, 로컬 조명 보상 플래그는 로컬 조명 보상 플래그가 거짓으로 유도될 때 이용되지 않는다.
일부 구현들에서, 프로세스 (1600) 는 모션 정보를 리파이닝하기 위해 1차 테일러 전개 최적화를 수행하는 단계를 더 포함할 수도 있다. 1차 테일러 전개 최적화를 수행하는 것은, 제 1 레퍼런스 픽처과 제 2 레퍼런스 픽처의 시간적 포지션들에서 블록의 1차 테일러 전개들 사이의 제곱 오차의 합 (또는 절대 차의 합) 을 최소화하는 것에 의해 모션 벡터를 유도하는 단계를 포함할 수도 있다.
도 17 은 프레임 레이트 상향-변환을 위한 프로세스 (1700) 의 일 예를 예시한다. 예시적인 프로세스 (1700) 는 인코딩 디바이스 또는 디코딩 디바이스에 의해 수행될 수도 있다.
1702 에서, 프로세스 (1700) 는 비디오 데이터를 획득하는 단계를 포함한다. 비디오 데이터는 예를 들어 카메라와 같은 비디오 캡처 디바이스로부터 획득될 수 있다. 다른 예로서, 비디오 데이터는 인코딩된 비트스트림으로부터 획득될 수도 있다. 다른 예로서, 비디오 데이터는 비디오 데이터가 특정 포맷에 따라 패키징되는 파일 또는 네트워크 데이터로부터 획득될 수 있다.
1704 에서, 프로세스 (1700) 는 비디오 데이터의 블록에 대해 로컬 조명 보상을 이용하는 단계를 포함하며, 로컬 조명 보상이 블록에 대해 수행될 때 프레임 레이트 상향-변환은 블록에 대해 이용되는 것이 불허된다. 일부 구현들에서, 블록에 대한 로컬 조명 보상이 이용될 때, 블록에 대한 데이터가 비트스트림에 기록될 때, 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드 플래그는 블록에 대해 시그널링되지 않는다.
1706 에서, 프로세스 (1700) 는 블록에 대한 모션 정보를 결정하는 단계를 포함하고, 모션 정보는 블록에 대해 로컬 조명 보상이 이용된 후에 결정된다. 일부 양태들에서, 로컬 조명 보상을 이용하는 것은 최소 제곱법을 이용하여 스케일링 팩터 및 오프셋을 유도하는 것을 포함할 수 있다.
일부 구현들에서, 프로세스 (1700) 가 디코더에 의해 수행되는 경우, 프로세스 (1700) 는 로컬 조명 보상이블록에 대해 시그널링되는 것에 응답하여 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드 플래그의 값을 거짓으로 유도하는 단계를 포함할 수 있고, 여기서, 프레임 레이트 상향-변환 바이래터럴 매칭은 로컬 조명 보상 플래그가 거짓으로 유도될 때 이용되지 않는다.
일부 구현들에서, 프로세스 (1700) 는 모션 정보를 리파이닝하기 위해 1차 테일러 전개 최적화를 수행하는 단계를 포함할 수도 있다.
도 18 은 프레임 레이트 상향-변환을 위한 프로세스 (1800) 의 일 예를 예시한다. 예시적인 프로세스 (1800) 는 인코딩 디바이스 또는 디코딩 디바이스에 의해 수행될 수도 있다.
1802 에서, 프로세스 (1800) 는 비디오 데이터를 획득하는 단계를 포함한다. 비디오 데이터는 예를 들어 카메라와 같은 비디오 캡처 디바이스로부터 획득될 수 있다. 다른 예로서, 비디오 데이터는 인코딩된 비트스트림으로부터 획득될 수도 있다. 다른 예로서, 비디오 데이터는 비디오 데이터가 특정 포맷에 따라 패키징되는 파일 또는 네트워크 데이터로부터 획득될 수 있다.
1804 에서, 프로세스 (1800) 는 비디오 데이터의 블록에 대해 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하는 단계를 포함하며, 프레임 레이트 상향-변환 양면 매칭을 이용하는 것은 블록에 아핀 모션 모델을 적용하는 것을 포함한다. 일부 경우들에서, 아핀 모션 모델은 병진 모션 모델 대신에 적용된다. 일부 경우들에서, 아핀 모션 모델은 병진 모션 모델에 더하여 적용된다.
1806 에서 프로세스 (1800) 는 블록에 대한 아핀 모션 모델의 적용에 기초하여, 제 1 레퍼런스 픽처에 대한 제 1 아핀 모션 정보 및 제 2 레퍼런스 픽처에 대한 제 2 아핀 모션 정보를 결정하는 단계를 포함한다.
1808 에서, 프로세스 (1800) 는 제 1 아핀 모션 정보 및 제 2 아핀 모션 정보를 이용하여 블록에 대한 적어도 하나의 예측을 결정하는 단계를 포함한다.
일부 구현들에서, 프로세스 (1800) 는 블록에 대한 제 1 예측을 결정하는 단계를 더 포함하며, 여기서 제 1 예측은 제 1 레퍼런스 픽처 및 제 1 아핀 모션 정보를 이용하여 결정된다. 프로세스 (1800) 는 블록에 대한 제 2 예측을 결정하는 단계를 더 포함할 수 있으며, 여기서 제 2 예측은 제 2 레퍼런스 픽처 및 제 2 아핀 모션 정보를 이용하여 결정된다.
일부 구현들에서, 프로세스 (1800) 는 병진 모션 모델을 블록에 적용하는 단계를 더 포함할 수도 있다. 병진 모션 모델의 적용은 병진 모션 정보를 가져올 수 있다. 이들 구현들에서, 블록에 아핀 모션 모델을 적용하는 것은 제 1 아핀 모션 정보 및 제 2 아핀 모션 정보를 유도하기 위해 병진 모션 정보를 입력으로서 이용하는 것을 포함할 수 있다.
일부 구현들에서, 프로세스 (1800) 는 아핀 모션 모델의 매칭 비용이 병진 모션 모델의 매칭 비용보다 더 작다고 결정하는 것을 포함한다. 매칭 비용이 더 적을 때, 아핀 모션 모델의 이용이 비트스트림에서 시그널링될 수도 있다.
일부 구현들에서, 프로세스 (1800) 는 아핀 모션 모델의 매칭 비용이 병진 모션 모델의 매칭 비용보다 더 크다고 결정하는 것을 더 포함할 수 있다. 매칭 비용이 더 클 때, 병진 모션 모델의 이용이 비트스트림에서 시그널링될 수도 있다.
일부 구현들에서, 프로세스 (1800) 는 블록의 사이즈가 임계 사이즈보다 더 크다 결정하는 것을 더 포함할 수 있다. 이들 구현에서, 아핀 모션 모델은 블록의 사이즈가 임계 사이즈보다 더 크다는 결정에 응답하여 블록에 적용된다.
일부 구현들에서, 프로세스 (1800) 는 블록에 대한 적어도 예측을 리파이닝하기 위해 1차 테일러 전개 최적화를 수행하는 단계를 더 포함할 수도 있다. 1차 테일러 전개 최적화를 수행하는 것은, 제 1 레퍼런스 픽처과 제 2 레퍼런스 픽처의 시간적 포지션들에서 블록의 1차 테일러 전개들 사이의 제곱 오차의 합 (또는 절대 차의 합) 을 최소화하는 것에 의해 모션 벡터를 유도하는 것을 포함할 수도 있다.
본원에서 논의된 코딩 기법들은 일 예의 비디오 인코딩 및 디코딩 시스템 (예를 들어, 시스템 (100)) 에서 구현될 수도 있다. 일부 예에서, 시스템은, 목적지 디바이스에 의해 나중에 디코딩될 인코딩된 비디오 데이터를 제공하는 소스 디바이스를 포함한다. 특히, 소스 디바이스는, 컴퓨터 판독 가능 매체를 통해 목적지 디바이스로 비디오 데이터를 제공한다. 소스 디바이스 및 목적지 디바이스는, 데스크탑 컴퓨터들, 노트북 (즉, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋톱 박스들, 전화기 핸드셋 이를테면 소위 "스마트" 폰들, 소위 "스마트" 패드, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 재생기들, 비디오 게임용 콘솔들, 비디오 스트리밍 디바이스 등을 포함한, 광범위한 디바이스들 중 어느 것을 포함할 수도 있다. 일부 경우들에서, 소스 디바이스 및 목적지 디바이스는 무선 통신을 위해 설치될 수도 있다.
목적지 디바이스는, 컴퓨터 판독 가능 매체를 통해 디코딩될 인코딩된 비디오 데이터를 수신할 수도 있다. 컴퓨터 판독가능 매체는, 인코딩된 비디오 데이터를 소스 디바이스로부터 목적지 디바이스로 이동시킬 수 있는 임의의 타입의 매체 또는 디바이스를 포함할 수도 있다. 일 예에서, 컴퓨터 판독가능 매체는, 소스 디바이스로 하여금 실시간으로 직접 목적지 디바이스로 직접, 인코딩된 비디오 데이터를 송신할 수 있게 하기 위한 통신 매체를 포함할 수도 있다. 인코딩된 비디오 데이터는, 무선 통신 프로토콜 등의 통신 표준에 따라 변조되고, 목적지 디바이스로 송신될 수도 있다. 통신 매체는 라디오 주파수 (radio frequency; RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들과 같은 임의의 무선 또는 유선 통신 매체를 포함할 수도 있다. 통신 매체는 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷-기반 네트워크의 부분을 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스로부터 목적지 디바이스로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
일부 예에서, 인코딩된 데이터는 출력 인터페이스로부터 저장 디바이스로 출력될 수도 있다. 유사하게, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스로부터 액세스될 수도 있다. 저장 디바이스는, 하드 드라이브, 블루레이 디스크, DVD들, CD-ROM들, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체 등의 다양한 분산형 또는 로컬적으로 액세스되는 데이터 저장 매체 중 어느 것도 포함할 수도 있다. 다른 예에서, 저장 디바이스는, 소스 디바이스에 의해 생성되는 인코딩된 비디오를 저장할 수도 있는, 파일 서버 또는 또 다른 중간 저장 디바이스에 대응할 수도 있다. 목적지 디바이스는, 스트리밍 또는 다운로드를 통해 저장 디바이스로부터 저장된 비디오 데이터에 액세스할 수도 있다. 파일 서버는, 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 목적지 디바이스로 송신할 수 있는 임의의 유형의 서버일 수도 있다. 예시적인 파일 서버들은, (예를 들어, 웹사이트용) 웹 서버, FTP 서버, NAS (network attached storage) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스는, 인터넷 접속을 포함한, 임의의 표준 데이터 접속을 통해 인코딩된 비디오 데이터에 액세스할 수도 있다. 이것은, 파일 서버 상에 저장된 인코딩된 비디오 데이터를 액세스하는데 적합한 무선 채널 (예컨대, Wi-Fi 접속), 유선 접속 (예를 들어, DSL, 케이블 모뎀 등), 또는 양자의 조합을 포함할 수도 있다. 저장 디바이스로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이들의 조합일 수도 있다.
본 개시의 기법들은 무선 애플리케이션들 또는 세팅들에 반드시 한정되는 것은 아니다. 그 기법들은, 공중 경유 (over-the-air) 텔레비전 브로드캐스트, 케이블 텔레비전 송신, 위성 텔레비전 송신, DASH (dynamic adaptive streaming over HTTP) 와 같은 인터넷 스트리밍 비디오 송신, 데이터 저장 매체 상에 인코딩되는 디지털 비디오, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션 등의 다양한 멀티미디어 애플리케이션들 중 어느 것을 지원하는 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 시스템은, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅 및/또는 픽처 통화등의 애플리케이션들을 지원하기 위하여 일방향 또는 바이래터럴 비디오 송신을 지원하도록 구성될 수도 있다.
일 예에서, 소스 디바이스는 비디오 소스, 비디오 인코더, 및 출력 인터페이스를 포함한다. 목적지 디바이스는 입력 인터페이스, 비디오 디코더, 및 디스플레이 디바이스를 포함할 수도 있다. 소스 디바이스의 비디오 인코더는 본원에 개시된 기술들을 적용하도록 구성될 수도 있다. 다른 예들에서, 소스 디바이스 및 목적지 디바이스는 다른 컴포넌트들 또는 배열 (arrangement) 들을 포함할 수도 있다. 예를 들어, 소스 디바이스는 외부 카메라와 같은 외부 비디오 소스로부터 비디오 데이터를 수신할 수도 있다. 마찬가지로, 목적지 디바이스는 통합된 디스플레이 디바이스를 포함하기보다는, 외부 디스플레이 디바이스와 인터페이스할 수도 있다.
위의 시스템 예는 하나의 예일 뿐이다. 병렬로 비디오 데이터를 프로세싱하기 위한 기술들은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수도 있다. 일반적으로 본 개시의 기술들은 비디오 인코딩 디바이스에 의해 수행되지만, 그 기술들은 또한 "코덱 (CODEC)" 으로서 통상적으로 지칭되는, 비디오 인코더/디코더에 의해 수행될 수도 있다. 더욱이, 본 개시의 기술들은 또한 비디오 프리프로세서에 의해 수행될 수도 있다. 소스 디바이스 및 목적지 디바이스는, 소스 디바이스가 목적지 디바이스로의 송신을 위해 코딩된 비디오 데이터를 생성하는 그러한 코딩 디바이스들의 예들일 뿐이다. 일부 예에서, 소스 및 목적지 디바이스들은, 디바이스들의 각각이 비디오 인코딩 및 디코딩 컴포넌트들을 포함하도록 실질적으로 대칭적인 방식으로 동작할 수도 있다. 그러므로, 예의 시스템들은 예를 들면, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅 또는 픽처 통화를 위해, 비디오 디바이스들간의 일방향 또는 바이래터럴 비디오 송신을 지원할 수도 있다.
비디오 소스는 비디오 카메라와 같은 비디오 캡처 디바이스, 이전에 캡처된 비디오를 포함하는 비디오 아카이브 (video archive), 및/또는 비디오 콘텐츠 제공자로부터 비디오를 수신하기 위한 비디오 피드 인터페이스 (video feed interface) 를 포함할 수도 있다. 추가의 대안으로서, 비디오 소스는 소스 비디오로서 컴퓨터 그래픽 기반 데이터, 또는 라이브 비디오, 아카이브 비디오 및 컴퓨터 생성된 비디오의 조합을 생성할 수도 있다. 일부 경우들에서, 비디오 소스가 비디오 카메라이면, 소스 디바이스 및 목적지 디바이스는 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 그러나, 위에서 언급된 바와 같이, 본 개시에 설명된 기법들은, 일반적으로 비디오 코딩에 적용가능할 수도 있고, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다. 각 경우에서, 캡처되거나, 미리 캡처되거나, 또는 컴퓨터 생성된 비디오는 비디오 인코더에 의해 인코딩될 수도 있다. 다음으로, 인딩된 비디오 정보는 컴퓨터 판독가능 매체 상으로 출력 인터페이스에 의해 출력될 수도 있다.
컴퓨터 판독 가능 매체는, 무선 브로드캐스트 또는 유선 네트워크 송신 등의 일시적 매체, 또는 하드 디스크, 플래시 드라이브, 컴팩트 디스크, 디지털 비디오 디스크, 블루레이 디스크 또는 다른 컴퓨터 판독 가능 매체 등의 저장 매체 (즉, 비일시적 저장 매체) 를 포함할 수도 있다. 일부 예들에서, 네트워크 서버 (미도시) 는 소스 디바이스로부터 인코딩된 비디오 데이터를 수신하고 그 인코딩된 비디오 데이터를 목적지 디바이스로, 예를 들어, 네트워크 송신을 통해 제공할 수도 있다. 유사하게, 디스크 스탬핑 설비 등의 매체 제조 설비의 컴퓨팅 디바이스는, 소스 디바이스로부터 인코딩된 비디오 데이터를 수신하고 그 인코딩된 비디오 데이터를 포함하는 디스크를 제조할 수도 있다. 그러므로, 컴퓨터 판독가능 매체는, 다양한 예들에서, 다양한 형태들의 하나 이상의 컴퓨터 판독가능 매체를 포함하는 것으로 이해될 수도 있다.
목적지 디바이스의 입력 인터페이스는 컴퓨터 판독가능 매체로부터 정보를 수신한다. 컴퓨터 판독가능 매체의 정보는 비디오 인코더에 의해 정의된 신택스 정보를 포함할 수도 있고, 이는 또한 비디오 디코더에 의해 이용되고, 블록들 및 다른 코딩된 유닛들, 예컨대, 픽처들의 그룹 (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) 이 인루프 필터인 것으로서 도 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) 은 풀 픽셀 포지션들 및 분수 픽셀 포지션들에 관한 모션 탐색을 수행하고, 분수 픽셀 정밀도로 모션 벡터를 출력할 수도 있다.
모션 추정 유닛 (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) 는 인코딩된 비디오 비트스트림을 위한 신택스를 생성하도록 구성된 비디오 인코더의 일례를 나타낸다. 인코딩 디바이스 (104) 는 예를 들어, 전술한 바와 같이, VPS, SPS 및 PPS 파라미터 세트를 생성할 수도 있다. 인코딩 디바이스 (104) 는 도 17, 도 18 및 도 19 에 대하여 위에 설명된 프로세스를 포함하는 본원에 설명된 기술 중 임의의 것을 수행할 수도 있다. 본 개시의 기술은 일반적으로 인코딩 디바이스 (104) 와 관련하여 설명되었지만, 전술한 바와 같이, 본 개시의 기술 중 일부는 또한, 포스트 프로세싱 디바이스 (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) 은 디블록킹 (deblocking) 필터, 적응 루프 필터 (ALF), 및 샘플 적응 오프셋 (SAO) 필터와 같은 하나 이상의 루프 필터들을 나타내도록 의도된다. 필터 유닛 (91) 이 인루프 필터인 것으로서 도 20 에 도시되어 있지만, 다른 구성들에서, 필터 유닛 (91) 은 포스트 루프 필터로서 구현될 수도 있다. 다음으로, 정해진 프레임 또는 픽처에서 디코딩된 비디오 블록들은 픽처 메모리 (92) 에 저장되고, 이는 후속 모션 보상을 위해 사용된 레퍼런스 픽처들을 저장한다. 화상 메모리 (92) 는 또한, 도 1에 도시된 비디오 목적지 디바이스 (122) 와 같은 디스플레이 디바이스 상에 나중에 표출하기 위해 디코딩된 비디오를 저장한다.
이전의 설명에서, 본원의 양태들은 이들의 구체적 실시형태를 참조하여 설명되었지만, 당업자는 본 발명이 이에 한정되지 않는다는 것을 인식할 것이다. 따라서, 본원의 예시적 실시 형태들이 본원에서 상세하게 설명되었지만, 본 발명의 개념은 이와 달리 다양하게 구체화되고 채용될 수도 있으며, 첨부된 청구 범위는 선행 기술에 의해 제한되는 것을 제외하고는 그러한 변형을 포함하는 것으로 해석되도록 의도된다 전술한 본 발명의 다양한 특징 및 양태는 개별적으로 또는 공동으로 이용될 수도 있다. 또한, 실시형태들은 본 명세서의 더 넓은 사상 및 범위를 벗어나지 않으면서 본원에 기재된 것 이외의 임의의 수의 환경 및 응용들에서 이용될 수 있다. 따라서, 명세서 및 도면들은 제한적이 아닌 예시적인 것으로 간주되야 한다. 예시의 목적 상, 방법은 특정 순서로 설명되었다. 대안적인 실시 형태에서, 그 방법들은 설명된 것과 상이한 순서로 수행될 수도 있다는 것을 이해해야 한다.
컴포넌트들이 특정 동작을 수행하도록 "구성된" 것으로 기술되는 경우, 그러한 구성은 예를 들어, 전자 회로 또는 다른 하드웨어를 설계하여 그 동작을 수행하는 것에 의해, 프로그래밍 가능한 전자 회로 (예를 들어, 마이크로프로세서 또는 다른 적절한 전자 회로) 를 프로그래밍하여 그 동작을 수행하는 것에 의해 또는 이들의 임의의 조합에 의해, 달성될 수 있다.
여기에 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 논리 블록, 모듈, 회로, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 조합으로 구현될 수도 있다. 하드웨어와 소프트웨어의 이러한 상호대체 가능성을 분명히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 일반적으로 그들의 기능의 관점에서 상기 설명되었다. 그러한 기능이 하드웨어 또는 소프트웨어로 구현될지 여부는, 전체 시스템에 부과된 특정 응용 및 설계 제약에 달려 있다. 당업자는 설명된 기능을 각각의 특정 어플리케이션에 대하여 다양한 방식들로 구현할 수도 있지만, 그러한 구현의 결정들이 본 발명의 범위로부터의 일탈을 야기하는 것으로서 해석되지는 않아야 한다.
본 개시에 기술된 기술들은 또한 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수도 있다. 그러한 기술들은 범용 컴퓨터, 무선 통신 디바이스 핸드세트, 또는 무선 통신 디바이스 핸드세트 및 다른 디바이스들에서의 응용을 포함하는 다수의 사용들을 갖는 집적 회로 디바이스들과 같은 다양한 디바이스들 중의 임의의 것에서 구현될 수도 있다. 모듈들, 또는 컴포넌트들로서 설명된 임의의 특징들은 집적 로직 디바이스 (integrated logic device) 에서 함께 구현되거나 또는 이산이지만 연동적인 (interoperable) 로직 디바이스들로서 별도로 구현될 수도 있다. 소프트웨어로 구현되면, 기법들은, 실행될 때, 위에서 설명된 방법들 중 하나 이상을 수행하는 명령들을 포함하는 프로그램 코드를 포함하는 컴퓨터 판독가능 데이터 저장 매체에 의해 적어도 부분적으로 실현될 수도 있다. 컴퓨터 판독가능 데이터 저장 매체는 패키징 재료들을 포함할 수도 있는 컴퓨터 프로그램 제품의 일부를 형성할 수도 있다. 컴퓨터 판독가능 매체는 메모리 또는 데이터 저장 매체, 이를테면 RAM (random access memory) 이를테면, SDRAM (synchronous dynamic random access memory), ROM (read-only memory), NVRAM (non-volatile random access memory), EEPROM (electrically erasable programmable read-only memory), FLASH 메모리, 자기 또는 광학 데이터 저장 매체 등을 포함할 수도 있다. 추가로 또는 대안적으로 기술들은, 전파된 신호들 또는 파들과 같은, 명령들 또는 데이터 구조들의 형태의 프로그램 코드를 나르거나 또는 통신하고, 컴퓨터에 의해 액세스, 판독 및/또는 실행될 수 있는 컴퓨터 판독가능 통신 매체에 의해 적어도 부분적으로 실현될 수도 있다.
프로그램 코드는, 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로 프로세서들, 주문형 집적 회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 균등한 집적된 또는 별개의 로직 회로부와 같은 하나 이상의 프로세서들을 포함할 수도 있는 프로세서에 의해 실행될 수도 있다. 그러한 프로세서는 본 개시에 기재된 기법들 중의 어느 것을 수행하도록 구성될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 다르게는, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 또한, 프로세서는 계산 디바이스들의 조합, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서, DSP 코어와 결합한 하나 이상의 마이크로프로세서, 또는 임의의 다른 이러한 구성으로서 구현될 수도 있다. 따라서, 본원에 사용된 용어 "프로세서" 는 임의의 전술한 구조, 전술한 구조의 임의의 조합, 또는 본원에 설명된 기술들의 구현에 적합한 임의의 다른 구조 또는 장치를 지칭할 수도 있다. 추가로, 일부 양태에서, 여기서 설명된 기능은 인코딩 및 디코딩을 위해 구성된 전용 소프트웨어 모듈 또는 하드웨어 모듈 내에 제공되거나 또는 결합된 비디오 인코더-디코더 (코덱) 에 포함될 수도 있다.

Claims (30)

  1. 비디오 데이터를 프로세싱하는 방법으로서,
    상기 비디오 데이터를 획득하는 단계;
    상기 비디오 데이터의 블록에 대한 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드 (frame rate up-conversion bilateral matching coding mode) 를 이용하는 단계로서, 상기 블록에 아핀 모션 모델을 적용하는 단계를 포함하는, 상기 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하는 단계;
    상기 블록에 대한 상기 아핀 모션 모델의 적용에 기초하여, 제 1 레퍼런스 픽처에 대한 제 1 아핀 모션 정보 및 제 2 레퍼런스 픽처에 대한 제 2 아핀 모션 정보를 결정하는 단계; 및
    상기 제 1 아핀 모션 정보 및 상기 제 2 아핀 모션 정보를 이용하여 상기 블록에 대한 적어도 하나의 예측을 결정하는 단계를 포함하는, 비디오 데이터를 프로세싱하는 방법.
  2. 제 1 항에 있어서,
    상기 블록에 대한 제 1 예측을 결정하는 단계로서, 상기 제 1 예측은 상기 제 1 레퍼런스 픽처 및 상기 제 1 아핀 모션 정보를 이용하여 결정되는, 상기 제 1 예측을 결정하는 단계; 및
    상기 블록에 대한 제 2 예측을 결정하는 단계로서, 상기 제 2 예측은 상기 제 2 레퍼런스 픽처 및 상기 제 2 아핀 모션 정보를 이용하여 결정되는, 상기 제 2 예측을 결정하는 단계를 더 포함하는, 비디오 데이터를 프로세싱하는 방법.
  3. 제 1 항에 있어서,
    상기 아핀 모션 모델은 병진 모션 모델 대신에 적용되는, 비디오 데이터를 프로세싱하는 방법.
  4. 제 1 항에 있어서,
    상기 아핀 모션 모델은 병진 모션 모델에 더하여 적용되는, 비디오 데이터를 프로세싱하는 방법.
  5. 제 1 항에 있어서,
    상기 블록에 병진 모션 모델을 적용하는 단계로서, 상기 블록의 병진 모션 정보는 상기 병진 모션 모델을 이용하여 유도되는, 상기 병진 모션 모델을 적용하는 단계; 및
    상기 블록에 상기 아핀 모션 모델을 적용하는 단계로서, 상기 병진 모션 정보는 상기 제 1 아핀 모션 정보 및 상기 제 2 아핀 모션 정보를 유도하기 위해 상기 아핀 모션 모델에 의한 입력으로서 이용되는, 상기 아핀 모션 모델을 적용하는 단계를 더 포함하는, 비디오 데이터를 프로세싱하는 방법.
  6. 제 5 항에 있어서,
    상기 아핀 모션 모델의 매칭 비용이 상기 병진 모션 모델의 매칭 비용보다 더 작다고 결정하는 단계; 및
    비트스트림에서의 상기 아핀 모션 모델의 적용을 시그널링하는 단계를 더 포함하는, 비디오 데이터를 프로세싱하는 방법.
  7. 제 5 항에 있어서,
    상기 아핀 모션 모델의 매칭 비용이 상기 병진 모션 모델의 매칭 비용보다 더 크다고 결정하는 단계; 및
    비트스트림에서의 상기 병진 모션 모델의 적용을 시그널링하는 단계를 더 포함하는, 비디오 데이터를 프로세싱하는 방법.
  8. 제 1 항에 있어서,
    상기 블록의 사이즈가 임계 사이즈보다 더 크다고 결정하는 단계로서, 상기 아핀 모션 모델은 상기 블록의 사이즈가 상기 임계 사이즈보다 더 크다고 결정하는 것에 응답하여 상기 블록에 적용되는, 상기 블록의 사이즈가 임계 사이즈보다 더 크다고 결정하는 단계를 더 포함하는, 비디오 데이터를 프로세싱하는 방법.
  9. 제 1 항에 있어서,
    상기 아핀 모션 모델을 적용하는 단계는 상기 블록과 연관된 줌잉 모션, 회전 모션 또는 원근 모션 (perspective motion) 중 적어도 하나를 결정하는 단계를 포함하는, 비디오 데이터를 프로세싱하는 방법.
  10. 제 1 항에 있어서,
    상기 블록에 대한 상기 적어도 하나의 예측을 리파이닝하기 위해 1차 테일러 전개 최적화 (Taylor expansion optimization) 를 수행하는 단계를 더 포함하는, 비디오 데이터를 프로세싱하는 방법.
  11. 제 10 항에 있어서,
    상기 1차 테일러 전개 최적화를 수행하는 단계는 상기 제 1 레퍼런스 픽처 및 상기 제 2 레퍼런스 픽처의 시간적 포지션들에서 상기 블록의 1차 테일러 전개들 사이의 제곱 오차의 합을 최소화하는 것에 의해 모션 벡터를 유도하는 단계를 포함하는, 비디오 데이터를 프로세싱하는 방법.
  12. 제 1 항에 있어서,
    상기 적어도 하나의 예측에 기초하여 상기 블록을 디코딩하는 단계를 더 포함하는, 비디오 데이터를 프로세싱하는 방법.
  13. 제 1 항에 있어서,
    상기 적어도 하나의 예측에 기초하여 상기 블록을 인코딩하는 단계를 더 포함하는, 비디오 데이터를 프로세싱하는 방법.
  14. 장치로서,
    비디오 데이터를 저장하도록 구성되는 메모리; 및
    프로세서를 포함하고,
    상기 프로세서는:
    상기 비디오 데이터를 획득하고;
    상기 비디오 데이터의 블록에 대한 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하는 것으로서, 상기 블록에 대한 아핀 모션 모델을 적용하는 것을 포함하는, 상기 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하고;
    상기 블록에 대한 상기 아핀 모션 모델의 적용에 기초하여, 제 1 레퍼런스 픽처에 대한 제 1 아핀 모션 정보 및 제 2 레퍼런스 픽처에 대한 제 2 아핀 모션 정보를 결정하고; 그리고
    상기 제 1 아핀 모션 정보 및 상기 제 2 아핀 모션 정보를 이용하여 상기 블록에 대한 적어도 하나의 예측을 결정하도록 구성되는, 장치.
  15. 제 14 항에 있어서,
    상기 프로세서는 또한:
    상기 블록에 대한 제 1 예측을 결정하는 것으로서, 상기 제 1 예측은 상기 제 1 레퍼런스 픽처 및 상기 제 1 아핀 모션 정보를 이용하여 결정되는, 상기 제 1 예측을 결정하고; 그리고
    상기 블록에 대한 제 2 예측을 결정하는 것으로서, 상기 제 2 예측은 상기 제 2 레퍼런스 픽처 및 상기 제 2 아핀 모션 정보를 이용하여 결정되는, 상기 제 2 예측을 결정하도록 구성되는, 장치.
  16. 제 14 항에 있어서,
    상기 아핀 모션 모델은 병진 모션 모델 대신에 적용되는, 장치.
  17. 제 14 항에 있어서
    상기 아핀 모션 모델은 병진 모션 모델에 더하여 적용되는, 장치.
  18. 제 14 항에 있어서,
    상기 프로세서는 또한:
    상기 블록에 병진 모션 모델을 적용하는 것으로서, 상기 블록의 병진 모션 정보는 상기 병진 모션 모델을 이용하여 유도되는, 상기 병진 모션 모델을 적용하고; 그리고
    상기 블록에 상기 아핀 모션 모델을 적용하는 것으로서, 상기 병진 모션 정보는 상기 제 1 아핀 모션 정보 및 상기 제 2 아핀 모션 정보를 유도하기 위해 상기 아핀 모션 모델에 의한 입력으로서 이용되는, 상기 아핀 모션 모델을 적용하도록 구성되는, 장치.
  19. 제 18 항에 있어서,
    상기 프로세서는 또한:
    상기 아핀 모션 모델의 매칭 비용이 상기 병진 모션 모델의 매칭 비용보다 더 작다고 결정하고; 그리고
    비트스트림에서의 상기 아핀 모션 모델의 적용을 시그널링하도록 구성되는, 장치.
  20. 제 18 항에 있어서,
    상기 프로세서는 또한:
    상기 아핀 모션 모델의 매칭 비용이 상기 병진 모션 모델의 매칭 비용보다 더 크다고 결정하고; 그리고
    비트스트림에서의 상기 병진 모션 모델의 적용을 시그널링하도록 구성되는, 장치.
  21. 제 14 항에 있어서,
    상기 프로세서는 또한:
    상기 블록의 사이즈가 임계 사이즈보다 더 크다고 결정하는 것으로서, 상기 아핀 모션 모델은 상기 블록의 사이즈가 상기 임계 사이즈보다 더 크다고 결정하는 것에 응답하여 상기 블록에 적용되는, 상기 블록의 사이즈가 임계 사이즈보다 더 크다고 결정하도록 구성되는, 장치.
  22. 제 14 항에 있어서,
    상기 아핀 모션 모델을 적용하는 것은 상기 블록과 연관된 줌잉 모션, 회전 모션 또는 원근 모션 중 적어도 하나를 결정하는 것을 포함하는, 장치.
  23. 제 14 항에 있어서,
    상기 프로세서는 또한:
    상기 블록에 대한 상기 적어도 하나의 예측을 리파이닝하기 위해 1차 테일러 전개 최적화를 수행하도록 구성되는, 장치.
  24. 제 23 항에 있어서,
    상기 1차 테일러 전개 최적화를 수행하는 것은 상기 제 1 레퍼런스 픽처 및 상기 제 2 레퍼런스 픽처의 시간적 포지션들에서 상기 블록의 1차 테일러 전개들 사이의 제곱 오차의 합 또는 절대 차의 합을 최소화하는 것에 의해 모션 벡터를 유도하는 것을 포함하는, 장치.
  25. 제 14 항에 있어서,
    상기 장치는 디코딩 디바이스를 포함하는, 장치.
  26. 제 14 항에 있어서,
    상기 장치는 인코딩 디바이스를 포함하는, 장치.
  27. 제 14 항에 있어서,:
    비디오 데이터를 디스플레이하기 위한 디스플레이를 더 포함하는, 장치.
  28. 제 14 항에 있어서,
    상기 장치는 픽처들을 캡처하기 위한 카메라를 갖는 모바일 디바이스를 포함하는, 장치.
  29. 명령들이 저장된 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금:
    비디오 데이터를 획득하게 하고;
    상기 비디오 데이터의 블록에 대한 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하게 하는 것으로서, 상기 블록에 아핀 모션 모델을 적용하는 것을 포함하는, 상기 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하게 하고,
    상기 블록에 대한 상기 아핀 모션 모델의 적용에 기초하여, 제 1 레퍼런스 픽처에 대한 제 1 아핀 모션 정보 및 제 2 레퍼런스 픽처에 대한 제 2 아핀 모션 정보를 결정하게 하고; 그리고
    상기 제 1 아핀 모션 정보 및 상기 제 2 아핀 모션 정보를 이용하여 상기 블록에 대한 적어도 하나의 예측을 결정하게 하는, 명령들이 저장된 비일시적 컴퓨터 판독가능 저장 매체.
  30. 비디오 데이터를 프로세싱하기 위한 장치로서,
    상기 비디오 데이터를 획득하기 위한 수단;
    상기 비디오 데이터의 블록에 대한 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하기 위한 수단으로서, 상기 블록에 대한 아핀 모션 모델을 적용하는 것을 포함하는, 상기 프레임 레이트 상향-변환 바이래터럴 매칭 코딩 모드를 이용하기 위한 수단;
    상기 블록에 대한 상기 아핀 모션 모델의 적용에 기초하여, 제 1 레퍼런스 픽처에 대한 제 1 아핀 모션 정보 및 제 2 레퍼런스 픽처에 대한 제 2 아핀 모션 정보를 결정하기 위한 수단; 및
    상기 제 1 아핀 모션 정보 및 상기 제 2 아핀 모션 정보를 이용하여 상기 블록에 대한 적어도 하나의 예측을 결정하기 위한 수단을 포함하는, 비디오 데이터를 프로세싱하기 위한 장치.
KR1020197008932A 2016-09-30 2017-09-29 프레임 레이트 상향-변환 코딩 모드에 대한 개선 KR20190055104A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662403057P 2016-09-30 2016-09-30
US62/403,057 2016-09-30
US15/719,333 US10778999B2 (en) 2016-09-30 2017-09-28 Frame rate up-conversion coding mode with affine motion model
US15/719,333 2017-09-28
PCT/US2017/054333 WO2018064495A1 (en) 2016-09-30 2017-09-29 Improvements on frame rate up-conversion coding mode

Publications (1)

Publication Number Publication Date
KR20190055104A true KR20190055104A (ko) 2019-05-22

Family

ID=61757347

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197008932A KR20190055104A (ko) 2016-09-30 2017-09-29 프레임 레이트 상향-변환 코딩 모드에 대한 개선

Country Status (7)

Country Link
US (2) US10778999B2 (ko)
EP (2) EP3520407B1 (ko)
JP (1) JP2019534622A (ko)
KR (1) KR20190055104A (ko)
CN (2) CN109792526B (ko)
BR (1) BR112019006580A2 (ko)
WO (2) WO2018064495A1 (ko)

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10958927B2 (en) 2015-03-27 2021-03-23 Qualcomm Incorporated Motion information derivation mode determination in video coding
EP4072141A1 (en) * 2016-03-24 2022-10-12 Intellectual Discovery Co., Ltd. Method and apparatus for encoding/decoding video signal
US10778999B2 (en) 2016-09-30 2020-09-15 Qualcomm Incorporated Frame rate up-conversion coding mode with affine motion model
JP2019535202A (ja) * 2016-10-06 2019-12-05 エルジー エレクトロニクス インコーポレイティド インター予測モードベースの画像処理方法及びそのための装置
WO2018070152A1 (en) * 2016-10-10 2018-04-19 Sharp Kabushiki Kaisha Systems and methods for performing motion compensation for coding of video data
WO2018068264A1 (zh) * 2016-10-13 2018-04-19 富士通株式会社 图像编码/解码方法、装置以及图像处理设备
CN110100440B (zh) * 2016-12-22 2023-04-25 株式会社Kt 一种用于对视频进行解码、编码的方法
KR20180074000A (ko) * 2016-12-23 2018-07-03 삼성전자주식회사 비디오 디코딩 방법, 이를 수행하는 비디오 디코더, 비디오 인코딩 방법, 및 이를 수행하는 비디오 인코더
US10701390B2 (en) 2017-03-14 2020-06-30 Qualcomm Incorporated Affine motion information derivation
US11272207B2 (en) 2017-06-12 2022-03-08 Futurewei Technologies, Inc. Selection and signaling of motion vector (MV) precisions
WO2019006363A1 (en) * 2017-06-30 2019-01-03 Vid Scale, Inc. LOCAL LIGHTING COMPENSATION USING GENERALIZED BI-PREDICTION
GB2564133B (en) * 2017-07-04 2021-03-17 Canon Kk Method and apparatus for encoding or decoding video data with sub-pixel motion vector refinement
US10542279B2 (en) 2017-09-25 2020-01-21 Intel Corporation Temporal motion vector prediction control in video coding
US10733739B2 (en) * 2017-09-29 2020-08-04 Nanjing Avatarmind Robot Technology Co., Ltd. Method and system for displaying target image based on robot
US10582212B2 (en) * 2017-10-07 2020-03-03 Google Llc Warped reference motion vectors for video compression
WO2019074985A1 (en) * 2017-10-09 2019-04-18 Arris Enterprises Llc PLANAR PLANAR WEATHER ADAPTIVE PREDICTION
CN109996081B (zh) 2017-12-31 2023-09-12 华为技术有限公司 图像预测方法、装置以及编解码器
EP3518543A1 (en) * 2018-01-26 2019-07-31 Thomson Licensing Illumination compensation flag in frame rate up-conversion with template matching
CN118354099A (zh) * 2018-04-02 2024-07-16 寰发股份有限公司 用于视频编解码系统中的子块运动补偿的视频处理方法和装置
US10958928B2 (en) * 2018-04-10 2021-03-23 Qualcomm Incorporated Decoder-side motion vector derivation for video coding
US11451816B2 (en) 2018-04-24 2022-09-20 Mediatek Inc. Storage of motion vectors for affine prediction
EP3791578A1 (en) * 2018-05-09 2021-03-17 InterDigital VC Holdings, Inc. Motion compensation for video encoding and decoding
KR20210015811A (ko) * 2018-05-28 2021-02-10 인터디지털 브이씨 홀딩스 인코포레이티드 코딩/디코딩에서의 데이터 종속
WO2019234598A1 (en) 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Interaction between ibc and stmvp
KR20230125338A (ko) * 2018-06-18 2023-08-29 엘지전자 주식회사 어파인 모션 예측을 사용하여 비디오 신호를 처리하기위한 방법 및 장치
WO2019244051A1 (en) 2018-06-19 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Selected mvd precision without mvp truncation
WO2020003274A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Checking order of motion candidates in lut
WO2019244117A1 (en) * 2018-06-21 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Unified constrains for the merge affine mode and the non-merge affine mode
TWI729422B (zh) * 2018-06-21 2021-06-01 大陸商北京字節跳動網絡技術有限公司 色彩分量間的子區塊移動向量繼承
WO2020003273A1 (en) * 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Extended merge mode
JP7460617B2 (ja) 2018-06-29 2024-04-02 北京字節跳動網絡技術有限公司 Lut更新条件
WO2020003261A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Selection from multiple luts
CN110662054B (zh) 2018-06-29 2023-01-06 北京字节跳动网络技术有限公司 用于视频处理的方法、装置、计算机可读存储介质
EP3791586A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
KR20240007299A (ko) 2018-06-29 2024-01-16 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 룩업 테이블의 업데이트: fifo, 제약된 fifo
GB2588006B (en) 2018-06-29 2023-03-22 Beijing Bytedance Network Tech Co Ltd Number of motion candidates in a look up table to be checked according to mode
EP4325861A3 (en) 2018-06-29 2024-03-06 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and amvp
WO2020008346A1 (en) 2018-07-02 2020-01-09 Beijing Bytedance Network Technology Co., Ltd. Rules on updating luts
MX2021000171A (es) 2018-07-02 2022-11-01 Huawei Tech Co Ltd Método de predicción de vector de movimiento y aparato relacionado.
US10715812B2 (en) * 2018-07-13 2020-07-14 Tencent America LLC Method and apparatus for video coding
EP3694212A4 (en) 2018-07-13 2020-08-19 LG Electronics Inc. METHOD AND DEVICE FOR IMAGE DECODING ON THE BASIS OF AFFINER MOTION PREDICTION IN AN IMAGE ENCODING SYSTEM
US10462488B1 (en) * 2018-07-13 2019-10-29 Tencent America LLC Method and apparatus for video coding
CN110809155B (zh) 2018-08-04 2023-01-31 北京字节跳动网络技术有限公司 视频处理方法、装置和计算机可读介质
CN116647693A (zh) * 2018-09-06 2023-08-25 Lg电子株式会社 编解码设备、存储介质和数据发送设备
TW202017377A (zh) 2018-09-08 2020-05-01 大陸商北京字節跳動網絡技術有限公司 視頻編碼和解碼中的仿射模式
WO2020053798A1 (en) 2018-09-12 2020-03-19 Beijing Bytedance Network Technology Co., Ltd. Conditions for starting checking hmvp candidates depend on total number minus k
US10674152B2 (en) * 2018-09-18 2020-06-02 Google Llc Efficient use of quantization parameters in machine-learning models for video coding
US10869036B2 (en) 2018-09-18 2020-12-15 Google Llc Receptive-field-conforming convolutional models for video coding
WO2020058888A1 (en) 2018-09-19 2020-03-26 Beijing Bytedance Network Technology Co., Ltd. Mode dependent adaptive motion vector resolution for affine mode coding
US12063376B2 (en) 2018-09-19 2024-08-13 Interdigital Vc Holdings, Inc. Local illumination compensation for video encoding and decoding using stored parameters
US11689727B2 (en) * 2018-09-19 2023-06-27 Interdigital Vc Holdings, Inc. Local illumination compensation for video encoding and decoding using stored parameters
US11375202B2 (en) 2018-09-21 2022-06-28 Interdigital Vc Holdings, Inc. Translational and affine candidates in a unified list
GB2577318B (en) 2018-09-21 2021-03-10 Canon Kk Video coding and decoding
WO2020058958A1 (en) * 2018-09-23 2020-03-26 Beijing Bytedance Network Technology Co., Ltd. Construction for motion candidates list
TWI835864B (zh) 2018-09-23 2024-03-21 大陸商北京字節跳動網絡技術有限公司 簡化的空時運動矢量預測
TWI834727B (zh) 2018-09-23 2024-03-11 大陸商北京字節跳動網絡技術有限公司 從仿射運動預測的非仿射塊
CN110944181B (zh) 2018-09-23 2023-03-10 北京字节跳动网络技术有限公司 仿射模型的多个假设
GB2591906B (en) 2018-09-24 2023-03-08 Beijing Bytedance Network Tech Co Ltd Bi-prediction with weights in video coding and decoding
WO2020070612A1 (en) 2018-10-06 2020-04-09 Beijing Bytedance Network Technology Co., Ltd. Improvement for temporal gradient calculating in bio
GB2578150C (en) 2018-10-18 2022-05-18 Canon Kk Video coding and decoding
GB2595054B (en) 2018-10-18 2022-07-06 Canon Kk Video coding and decoding
CN111083485B (zh) 2018-10-22 2024-08-02 北京字节跳动网络技术有限公司 仿射模式的运动信息的利用
WO2020084507A1 (en) * 2018-10-23 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Harmonized local illumination compensation and modified inter prediction coding
WO2020084508A1 (en) 2018-10-23 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Harmonization between local illumination compensation and inter prediction coding
US11212521B2 (en) * 2018-11-07 2021-12-28 Avago Technologies International Sales Pte. Limited Control of memory bandwidth consumption of affine mode in versatile video coding
WO2020094150A1 (en) 2018-11-10 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Rounding in current picture referencing
WO2020098752A1 (en) * 2018-11-14 2020-05-22 Beijing Bytedance Network Technology Co., Ltd. Improvements of affine prediction mode
CN112997487B (zh) 2018-11-15 2024-07-09 北京字节跳动网络技术有限公司 仿射模式与其他帧间编解码工具之间的协调
CN113039802B (zh) 2018-11-16 2024-05-14 北京字节跳动网络技术有限公司 基于历史的仿射参数的使用
CN113039796B (zh) 2018-11-17 2023-09-19 北京字节跳动网络技术有限公司 视频处理中的广义双向预测模式
WO2020103940A1 (en) 2018-11-22 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Coordination method for sub-block based inter prediction
US11290743B2 (en) * 2018-12-08 2022-03-29 Qualcomm Incorporated Interaction of illumination compensation with inter-prediction
WO2020125750A1 (en) 2018-12-21 2020-06-25 Beijing Bytedance Network Technology Co., Ltd. Motion vector precision in merge with motion vector difference mode
JP7275286B2 (ja) 2019-01-10 2023-05-17 北京字節跳動網絡技術有限公司 Lut更新の起動
WO2020143774A1 (en) 2019-01-10 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Merge with mvd based on geometry partition
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
WO2020147747A1 (en) 2019-01-15 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Weighted prediction in video coding
CN113330739A (zh) 2019-01-16 2021-08-31 北京字节跳动网络技术有限公司 Lut中的运动候选的插入顺序
CN113302919A (zh) 2019-01-17 2021-08-24 北京字节跳动网络技术有限公司 在视频处理中使用虚拟候选预测和加权预测
CN118118659A (zh) 2019-01-31 2024-05-31 北京字节跳动网络技术有限公司 记录仿射模式自适应运动矢量分辨率的上下文
EP3910955A4 (en) * 2019-02-01 2022-05-18 Huawei Technologies Co., Ltd. INTERFRAME PREDICTION METHOD AND APPARATUS
CN111526362B (zh) * 2019-02-01 2023-12-29 华为技术有限公司 帧间预测方法和装置
CN113491125A (zh) 2019-02-22 2021-10-08 北京字节跳动网络技术有限公司 基于历史的仿射模式子表
CN109922372B (zh) * 2019-02-26 2021-10-12 深圳市商汤科技有限公司 视频数据处理方法及装置、电子设备和存储介质
EP3935861A1 (en) * 2019-03-08 2022-01-12 InterDigital VC Holdings, Inc. Local illumination compensation for video encoding or decoding
EP3706423A1 (en) * 2019-03-08 2020-09-09 InterDigital VC Holdings, Inc. Local illumination compensation for video encoding or decoding
US11997308B2 (en) 2019-03-08 2024-05-28 Interdigital Madison Patent Holdings, Sas Local illumination compensation for video encoding or decoding
US11394993B2 (en) * 2019-03-13 2022-07-19 Tencent America LLC Method and apparatus for affine inter prediction with small subblocks
CN116248891A (zh) * 2019-03-14 2023-06-09 华为技术有限公司 帧间预测的方法及相关装置
CN113545083B (zh) * 2019-03-18 2023-08-22 腾讯美国有限责任公司 视频编解码的方法和装置
US11343525B2 (en) * 2019-03-19 2022-05-24 Tencent America LLC Method and apparatus for video coding by constraining sub-block motion vectors and determining adjustment values based on constrained sub-block motion vectors
WO2020192611A1 (en) 2019-03-22 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
KR20230165888A (ko) 2019-04-02 2023-12-05 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 양방향 광학 흐름 기반 비디오 코딩 및 디코딩
EP3922015A4 (en) 2019-04-19 2022-07-20 Beijing Bytedance Network Technology Co., Ltd. GRADIENT CALCULATION IN VARIOUS MOTION VECTOR REFINEMENTS
CN113711609B (zh) 2019-04-19 2023-12-01 北京字节跳动网络技术有限公司 利用光流的预测细化过程中的增量运动矢量
CN113711608B (zh) 2019-04-19 2023-09-01 北京字节跳动网络技术有限公司 利用光流的预测细化过程的适用性
SG11202111760SA (en) * 2019-04-25 2021-11-29 Op Solutions Llc Signaling of global motion vector in picture header
US20220224912A1 (en) * 2019-05-12 2022-07-14 Lg Electronics Inc. Image encoding/decoding method and device using affine tmvp, and method for transmitting bit stream
EP3970374A4 (en) 2019-06-19 2023-08-16 Beijing Dajia Internet Information Technology Co., Ltd. METHOD AND APPARATUS FOR PREDICTION REFINING WITH OPTICAL FLOW
WO2020256615A1 (en) * 2019-06-21 2020-12-24 Telefonaktiebolaget Lm Ericsson (Publ) Video coding layer up-switching indication
JP2022537222A (ja) * 2019-06-21 2022-08-24 インターデジタル ヴイシー ホールディングス フランス,エスエーエス 局所照明補正フラグインヘリタンス
US11877010B2 (en) * 2019-06-23 2024-01-16 Lg Electronics Inc. Signaling method and device for merge data syntax in video/image coding system
CN112188236B (zh) * 2019-07-01 2022-07-19 北京新唐思创教育科技有限公司 视频插帧模型训练、视频插帧生成方法及相关装置
EP3997877A4 (en) 2019-08-13 2023-05-24 Beijing Bytedance Network Technology Co., Ltd. MOTION ACCURACY IN SUBBLOCK-BASED INTERPREDICTION
CN110708559B (zh) * 2019-09-03 2022-03-25 北京达佳互联信息技术有限公司 图像处理方法、装置及存储介质
WO2021052495A1 (en) * 2019-09-20 2021-03-25 Beijing Bytedance Network Technology Co., Ltd. Adaptive resolution change and scalable coding for screen contents
CN113784134B (zh) * 2019-09-23 2022-08-26 杭州海康威视数字技术股份有限公司 编解码方法、设备及存储介质
US20230224474A1 (en) * 2022-01-12 2023-07-13 Tencent America LLC Adjustment based local illumination compensation
WO2023147262A1 (en) * 2022-01-31 2023-08-03 Apple Inc. Predictive video coding employing virtual reference frames generated by direct mv projection (dmvp)
US11871146B1 (en) * 2022-08-16 2024-01-09 Novatek Microelectronics Corp. Video processor for handling irregular input
US20240137539A1 (en) * 2022-10-18 2024-04-25 Tencent America LLC Method and apparatus for affine motion refinement
CN116542443B (zh) * 2023-03-29 2024-07-16 浙江中兴慧农信息科技有限公司 一种基于双边匹配模型的资源分配方法及设备

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7558320B2 (en) * 2003-06-13 2009-07-07 Microsoft Corporation Quality control in frame interpolation with motion analysis
US7623719B2 (en) * 2003-09-26 2009-11-24 The Regents Of The University Of California Video encoding methods and devices
WO2006018796A2 (en) 2004-08-13 2006-02-23 Koninklijke Philips Electronics, N.V. System and method for reducing complexity in a color sequential display system
JP4489033B2 (ja) 2005-03-25 2010-06-23 三洋電機株式会社 フレームレート変換装置、パン・チルト判定装置および映像装置
CN101310530A (zh) * 2005-09-27 2008-11-19 高通股份有限公司 用于过渡效果的多媒体编码技术
CN101313582A (zh) * 2005-09-27 2008-11-26 高通股份有限公司 使用各种运动模型的编码器辅助式帧速率提升转换
US9258519B2 (en) * 2005-09-27 2016-02-09 Qualcomm Incorporated Encoder assisted frame rate up conversion using various motion models
US8239766B2 (en) * 2005-09-27 2012-08-07 Qualcomm Incorporated Multimedia coding techniques for transitional effects
EP1931141A4 (en) * 2005-09-30 2010-11-03 Sharp Kk IMAGE DISPLAY DEVICE AND METHOD
EP1950964A4 (en) * 2005-11-07 2012-05-16 Sharp Kk IMAGE DISPLAY DEVICE AND METHOD
JP4181592B2 (ja) 2006-09-20 2008-11-19 シャープ株式会社 画像表示装置及び方法、画像処理装置及び方法
JP5124583B2 (ja) * 2006-10-18 2013-01-23 トムソン ライセンシング 明示的な信号伝達なしでの局所的な輝度および色の補償のための方法および装置
JP4615508B2 (ja) * 2006-12-27 2011-01-19 シャープ株式会社 画像表示装置及び方法、画像処理装置及び方法
ATE554602T1 (de) * 2008-08-21 2012-05-15 Vestel Elekt Sanayi Ve Ticaret Verfahren und vorrichtung zur steigerung der bildrate eines videosignals
US8718142B2 (en) 2009-03-04 2014-05-06 Entropic Communications, Inc. System and method for frame rate conversion that utilizes motion estimation and motion compensated temporal interpolation employing embedded video compression
US8363721B2 (en) 2009-03-26 2013-01-29 Cisco Technology, Inc. Reference picture prediction for video coding
US20100246675A1 (en) 2009-03-30 2010-09-30 Sony Corporation Method and apparatus for intra-prediction in a video encoder
US20100289944A1 (en) * 2009-05-12 2010-11-18 Shing-Chia Chen Frame Rate Up-Conversion Based Dynamic Backlight Control System and Method
US8675736B2 (en) 2009-05-14 2014-03-18 Qualcomm Incorporated Motion vector processing
US8345070B2 (en) * 2009-06-10 2013-01-01 Himax Media Solutions, Inc. Apparatus and method for frame rate up conversion
CN102883160B (zh) 2009-06-26 2016-06-29 华为技术有限公司 视频图像运动信息获取方法、装置及设备、模板构造方法
JP5566133B2 (ja) * 2010-03-05 2014-08-06 キヤノン株式会社 フレームレート変換処理装置
JP5551308B2 (ja) 2010-05-26 2014-07-16 クゥアルコム・インコーポレイテッド カメラパラメータ支援型のビデオフレームレート・アップコンバージョン
US9357229B2 (en) * 2010-07-28 2016-05-31 Qualcomm Incorporated Coding motion vectors in video coding
US8666120B2 (en) 2010-12-14 2014-03-04 The United States Of America, As Represented By The Secretary Of The Navy Method and apparatus for conservative motion estimation from multi-image sequences with optimized motion compensation
US20130294519A1 (en) * 2011-12-22 2013-11-07 Marat Gilmutdinov Complexity scalable frame rate-up conversion
KR102270787B1 (ko) * 2013-01-10 2021-06-29 삼성전자주식회사 휘도차를 보상하기 위한 인터 레이어 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
JP2014138242A (ja) 2013-01-16 2014-07-28 Sony Corp 画像処理装置および画像処理方法
KR101431046B1 (ko) * 2013-02-13 2014-08-22 서강대학교산학협력단 Fruc를 위한 영상정보 인코딩 방법 및 장치, 저장매체
US9300906B2 (en) * 2013-03-29 2016-03-29 Google Inc. Pull frame interpolation
CN103220488B (zh) * 2013-04-18 2016-09-07 北京大学 一种视频帧率上转换装置及方法
US9860529B2 (en) * 2013-07-16 2018-01-02 Qualcomm Incorporated Processing illumination compensation for video coding
CN106233706B (zh) 2014-02-25 2020-01-03 苹果公司 用于提供具有标准动态范围和高动态范围两者的视频的向后兼容的装置和方法
US9438910B1 (en) 2014-03-11 2016-09-06 Google Inc. Affine motion prediction in video coding
EP3107290B1 (en) 2014-03-14 2021-07-28 Samsung Electronics Co., Ltd. Method and device for configuring merge candidate list for decoding and encoding of interlayer video
US10158884B2 (en) * 2014-03-19 2018-12-18 Qualcomm Incorporated Simplified merge list construction process for 3D-HEVC
CN112087629B (zh) 2014-09-30 2021-08-20 华为技术有限公司 图像预测方法、装置及计算机可读存储介质
US10958927B2 (en) 2015-03-27 2021-03-23 Qualcomm Incorporated Motion information derivation mode determination in video coding
JP6574270B2 (ja) * 2015-06-05 2019-09-11 アップル インコーポレイテッドApple Inc. 高ダイナミックレンジのコンテンツのレンダリング及び表示
CN108600749B (zh) * 2015-08-29 2021-12-28 华为技术有限公司 图像预测的方法及设备
US10560712B2 (en) 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
US10778999B2 (en) 2016-09-30 2020-09-15 Qualcomm Incorporated Frame rate up-conversion coding mode with affine motion model
US10701390B2 (en) 2017-03-14 2020-06-30 Qualcomm Incorporated Affine motion information derivation

Also Published As

Publication number Publication date
US10778999B2 (en) 2020-09-15
BR112019006580A2 (pt) 2019-07-02
EP3520406A1 (en) 2019-08-07
US20180098087A1 (en) 2018-04-05
EP3520407B1 (en) 2020-11-18
CN109792526A (zh) 2019-05-21
WO2018064492A1 (en) 2018-04-05
CN109792526B (zh) 2022-05-24
US20180098062A1 (en) 2018-04-05
US10631002B2 (en) 2020-04-21
EP3520407A1 (en) 2019-08-07
CN109792527A (zh) 2019-05-21
EP3520406B1 (en) 2023-02-01
JP2019534622A (ja) 2019-11-28
WO2018064495A1 (en) 2018-04-05
CN109792527B (zh) 2022-12-13

Similar Documents

Publication Publication Date Title
CN109792527B (zh) 处理视频数据的方法和设备
US10701390B2 (en) Affine motion information derivation
CN110741639B (zh) 视频译码中的运动信息传播
CN109792518B (zh) 处理视频数据的方法、设备和非暂时性计算机可读介质
JP6740243B2 (ja) ビデオコーディングにおける動きベクトル導出
EP3672249B1 (en) Inter frame prediction method and device for video images
JP6746620B2 (ja) ビデオコーディングのための照明補償ステータスを決定するシステムおよび方法
KR102112900B1 (ko) 심도 지향 인터-뷰 모션 벡터 예측
WO2019136657A1 (en) Video coding using local illumination compensation
WO2018175756A1 (en) Decoder-side motion vector derivation
KR20220064962A (ko) 히스토리 기반 모션 벡터 예측
KR20220064970A (ko) 벡터 클리핑을 이용한 아핀 코딩
JP2023554269A (ja) 重複ブロック動き補償