CN116982311A - 用于学习的视频压缩的多尺度光流 - Google Patents
用于学习的视频压缩的多尺度光流 Download PDFInfo
- Publication number
- CN116982311A CN116982311A CN202280020968.3A CN202280020968A CN116982311A CN 116982311 A CN116982311 A CN 116982311A CN 202280020968 A CN202280020968 A CN 202280020968A CN 116982311 A CN116982311 A CN 116982311A
- Authority
- CN
- China
- Prior art keywords
- frame
- optical flow
- reconstructed
- weighted graph
- reference frame
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 230000003287 optical effect Effects 0.000 title claims abstract description 638
- 238000007906 compression Methods 0.000 title description 35
- 230000006835 compression Effects 0.000 title description 35
- 238000000034 method Methods 0.000 claims abstract description 164
- 230000033001 locomotion Effects 0.000 claims abstract description 142
- 238000013528 artificial neural network Methods 0.000 claims description 99
- 239000013598 vector Substances 0.000 description 57
- 230000008569 process Effects 0.000 description 52
- 238000010586 diagram Methods 0.000 description 43
- 238000013527 convolutional neural network Methods 0.000 description 39
- 238000013139 quantization Methods 0.000 description 37
- 230000006870 function Effects 0.000 description 35
- 238000011176 pooling Methods 0.000 description 34
- 230000004913 activation Effects 0.000 description 22
- 238000001994 activation Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 19
- 230000011664 signaling Effects 0.000 description 17
- 238000013144 data compression Methods 0.000 description 16
- 238000012549 training Methods 0.000 description 16
- 230000002829 reductive effect Effects 0.000 description 14
- 238000010801 machine learning Methods 0.000 description 11
- 241000023320 Luma <angiosperm> Species 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 7
- 238000013500 data storage Methods 0.000 description 7
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 7
- 238000012935 Averaging Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000005070 sampling Methods 0.000 description 5
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 230000036961 partial effect Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000005549 size reduction Methods 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 241000196324 Embryophyta Species 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 210000004027 cell Anatomy 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 239000000779 smoke Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101001018064 Homo sapiens Lysosomal-trafficking regulator Proteins 0.000 description 1
- 102100033472 Lysosomal-trafficking regulator Human genes 0.000 description 1
- 235000010703 Modiola caroliniana Nutrition 0.000 description 1
- 244000038561 Modiola caroliniana Species 0.000 description 1
- 241001025261 Neoraja caerulea Species 0.000 description 1
- 241000212749 Zesius chrysomallus Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/537—Motion estimation other than block-based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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 picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
描述了基于应用可变尺度扭曲的运动估计对数据进行编码和/或解码的***和技术。编码设备可以接收输入帧和参考帧,其描述不同时间的场景。编码设备可以生成光流,该光流识别两个帧之间的场景中的移动。编码设备可以生成加权图,该加权图识别参考帧在输入帧预测时所进行的扭曲是如何精细或粗糙。编码设备可以基于光流和加权图生成经编码的视频数据。解码设备可以从经编码的数据生成经重构的光流和经重构的加权图。解码设备可以通过基于经重构的光流和经重构的加权图对参考帧进行扭曲,而生成预测帧。解码设备可以基于预测帧生成经重构的输入帧。
Description
技术领域
本申请涉及数据处理。更具体地说,本申请涉及使用用于学习的视频压缩的多尺度光流的技术和工艺。
背景技术
数据压缩是使用比数据的原始表示更少的比特对数据信息进行编码的过程。无损数据压缩例如通过删除冗余信息在压缩过程中不会丢失原始数据文件的任何信息,来压缩数据。有损数据压缩技术有时会比无损数据压缩技术压缩更多数据,但有损数据压缩技术会丢失原始数据文件中的一些信息。执行数据压缩的设备被称为编码器。反转数据压缩过程(解压)以尽可能接近地从原始数据文件重新创建数据的设备称为解码器。
视频压缩可以基于帧内编码、帧间编码或两者来压缩视频。帧内编码使用静止图像压缩技术压缩单个视频帧。帧间编码基于视频帧中哪些区域相对于前一视频帧变化以及哪些区域保持不变来压缩视频。运动估计是一种帧间编码技术,可以减少出现在多个帧中的在存储部分视频数据中的冗余,但该冗余的位置在帧与帧之间会变化。运动估计可以确定场景的一部分从一个视频帧移动到下一个视频帧的方向和/或距离。然而,传统的运动估计技术在运动估计中具有不确定性的场景中可能不准确,诸如具有遮挡物的场景或精细细节会在其中移动的场景(例如,涌动的烟)。对这类场景的视频进行编码通常涉及存储复杂的运动估计和复杂的残差两者,因为运动估计最终是不准确的。这种复杂性的存储成本很高。因此,传统的运动估计技术在压缩运动估计中具有不确定性的场景的视频时是低效的。
发明内容
本文描述了用于基于多尺度光流的数据编码和/或解码的***和技术。例如,在多尺度光流中,编码设备可以取决于光流估计中的不确定性,以可变尺度对参考帧施加扭曲。在一些示例中,编码设备可以接收包括输入帧和参考帧的视频数据。例如,输入帧描述第一时间的场景,而参考帧描述第二时间的场景。编码设备可以基于输入帧和参考帧生成光流。光流可以识别场景的不同区域如何在参考帧与输入帧之间移动。在一些方面,编码设备可以使用经训练的神经网络生成光流。编码设备可以基于输入帧和参考帧生成加权图。加权图可以确定参考图像的精或粗的尺度,以该精或粗的尺度扭曲参考图像,来估计输入图像。在一些方面,编码设备可以使用经训练的神经网络生成光流。编码设备至少可以通过基于光流和加权图编码视频数据,生成经编码的视频数据。解码设备可以接收该经编码的视频。解码设备可以根据该经编码的视频生成经重构的光流。经重构的光流可以是编码设备所生成的光流的重构版本。解码设备可以从经编码的视频生成经重构的加权图。经重构的加权图可以是编码设备所生成的加权图的重构版本。解码设备可以例如通过基于经重构的光流和经重构的加权图扭曲参考帧(或参考帧的重构),来生成预测帧。解码设备可以基于预测帧生成经重构的输入帧,在一些示例中还可以基于经重构的残差生成经重构的输入帧。经重构的输入帧可以是编码设备接收到的输入帧的重构版本。
在一个示例中,提供了一种用于数据编码的装置。该装置包括存储器和耦合至该存储器的一个或多个处理器(例如,在电路中实施)。一个或多个处理器被配置为能够:接收视频数据,该视频数据包括在第一时间描述场景的输入帧和在第二时间描述场景的参考帧;基于输入帧和参考帧生成光流,光流识别在参考帧与输入帧之间的场景的一个或多个区域中的一个或多个移动;基于参考帧和输入帧生成加权图;以及至少部分地通过基于光流和加权图编码视频数据,生成经编码的视频数据。
在另一个示例中,提供了一种数据编码的方法。该方法包括接收视频数据,该视频数据包括在第一时间描述场景的输入帧和在第二时间描述场景的参考帧。该方法包括基于输入帧和参考帧生成光流,光流识别在参考帧与输入帧之间的场景的一个或多个区域中的一个或多个移动。该方法包括基于参考帧和输入帧生成加权图。该方法包括至少部分地通过基于光流和加权图编码视频数据,生成经编码的视频数据。
在另一个示例中,提供了一种非临时性计算机可读介质,该介质上存储有指令,当其被一个或多个处理器运行时,该指令使一个或多个处理器:接收视频数据,该视频数据包括在第一时间描述场景的输入帧和在第二时间描述场景的参考帧;基于输入帧和参考帧生成光流,光流识别在参考帧与输入帧之间的场景的一个或多个区域中的一个或多个移动;基于参考帧和输入帧生成加权图;以及至少部分地通过基于光流和加权图编码视频数据,生成经编码的视频数据。
在另一个示例中,提供了一种用于数据编码的装置。该装置包括用于接收视频数据的部件,该视频数据包括在第一时间描述场景的输入帧和在第二时间描述场景的参考帧。该装置包括基于输入帧和参考帧生成光流的部件,光流识别在参考帧与输入帧之间的场景的一个或多个区域中的一个或多个移动。该装置包括基于参考帧和输入帧生成加权图的部件。该装置包括至少部分地通过基于光流和加权图编码视频数据、来生成经编码的视频数据的部件。
在一个示例中,提供了一种用于数据解码的装置。该装置包括存储器和耦合至该存储器的一个或多个处理器(例如,在电路中实施)。该一个或多个处理器被配置为能够:接收经编码的视频数据;根据经编码的视频数据生成经重构的光流,该经重构的光流识别在参考帧与输入帧之间的场景的一个或多个区域中的一个或多个移动,该参考帧和输入帧描述不同时间的场景;从经编码的视频数据生成经重构的加权图;至少部分地通过基于经重构的光流和经重构的加权图扭曲参考帧,生成预测帧;以及基于预测帧生成基于输入帧的经重构的输入帧。
在另一个示例中,提供了一种数据解码的方法。该方法包括接收经编码的视频数据。该方法包括从经解码的视频数据生成经重构的光流,该经重构的光流识别在参考帧与输入帧之间的场景的一个或多个区域中的一个或多个移动,该参考帧和输入帧描述不同时间的场景。该方法包括从经编码的视频数据生成经重构的加权图。该方法包括至少部分地通过基于经重构的光流和经重构的加权图扭曲参考帧,生成预测帧。该方法包括基于预测帧生成基于输入帧的经重构的输入帧。
在另一个示例中,提供了一种非临时性计算机可读介质,该介质上存储有指令,当其由一个或多个处理器执行时,这些指令使一个或多个处理器:接收经编码的视频数据;从经编码的视频数据生成经重构的光流,该经重构的光流识别在参考帧与输入帧之间的场景的一个或多个区域中的一个或多个移动,该参考帧和输入帧描述不同时间的场景;从经编码的视频数据生成经重构的加权图;至少部分地通过基于经重构的光流和经重构的加权图扭曲参考帧,生成预测帧;以及基于预测帧生成基于输入帧的经重构的输入帧。
在另一个示例中,提供了一种用于数据解码的装置。该装置包括用于从经编码的视频数据生成经重构的光流的部件,该经重构的光流识别在参考帧与输入帧之间的场景的一个或多个区域中的一个或多个移动,该参考帧和输入帧描述不同时间的场景。该装置包括用于从经编码的视频数据生成经重构的加权图的部件。该装置包括用于至少部分地通过基于经重构的光流和经重构的加权图扭曲参考帧、来生成预测帧的部件。该装置包括用于基于预测帧生成基于输入帧的经重构的输入帧的部件。
在一些方面,第一时间在第二时间之后。在一些方面,参考帧被编码为经编码的视频数据中的帧内编码帧,其中输入帧被编码为经编码的视频数据中的帧间编码帧。
在一些方面,上述方法、装置和计算机可读介质还包括:至少部分地通过基于光流和加权图扭曲参考帧,生成预测帧;以及基于输入帧与预测帧之间的差生成残差,其中基于光流和加权图编码视频数据包括基于残差编码视频数据。在一些方面,基于光流和加权图扭曲参考帧包括:基于光流和加权图使用一个或多个经训练的神经网络扭曲参考帧。在一些方面,基于光流和加权图扭曲参考帧包括:基于加权图生成至少第一差分索引加权图和第二差分索引加权图;至少部分地通过基于光流扭曲参考帧,生成第一扭曲帧;至少部分地通过基于光流的尺度减小的变型扭曲参考帧的尺度减小的变型,生成第二扭曲帧;确定第一扭曲帧与第一差分索引加权图的第一乘积;确定第二扭曲帧与第二差分索引加权图的第二乘积;以及确定第一乘积与第二乘积的尺寸放大的变型之和。
在一些方面,上述方法、装置和计算机可读介质还包括:基于光流生成经重构的光流;基于加权图生成经重构的加权图;至少部分地通过基于经重构的光流和经重构的加权图扭曲参考帧,生成预测帧;以及基于输入帧与预测帧之间的差生成残差,其中基于光流和加权图编码视频数据包括:基于残差编码视频数据。在一些方面,基于光流生成经重构的光流包括,使用自动编码器基于光流生成经重构的光流。在一些方面,基于经重构的光流和经重构的加权图扭曲参考帧包括:基于经重构的光流和经重构的加权图使用一个或多个经训练的神经网络对参考帧进行扭曲。在一些方面,基于经重构的光流和经重构的加权图扭曲参考帧包括:基于经重构的加权图生成至少第一差分索引加权图和加权图第二差分索引加权图;至少部分地通过基于光流扭曲参考帧,生成第一扭曲帧;至少部分地通过基于经重构的光流的尺度减小的变型、扭曲参考帧的尺度减小的变型,生成第二扭曲帧;确定第一扭曲帧与第一差分索引加权图的第一乘积;确定第二扭曲帧与第二差分索引加权图的第二乘积;以及确定第一乘积与第二乘积的尺寸放大的变型之和。
在一些方面,加权图包括大于参考帧的第一区域的阈值的值,其中加权图包括小于参考帧的第二区域的阈值的值,其中经编码的视频数据包括对应于以精细节层次编码的第一区域的数据,其中经编码的视频数据包括对应于以粗细节层次编码的第二区域的数据。
在一些方面,光流是二维光流,并且所述一个或多个移动沿着具有两个垂直维度的平面进行。在一些方面,光流识别输入帧的每个像素的移动方向和移动幅度。在一些方面,使用光流图像识别光流,其中移动方向基于光流图像中的色相进行识别,而其中移动幅度基于光流图像中的饱和度进行识别。
在一些方面,基于输入帧和参考帧生成光流包括:基于输入帧和参考帧使用一个或多个经训练的神经网络生成光流。在一些方面,基于参考帧和输入帧生成加权图包括:基于参考帧和输入帧使用一个或多个经训练的神经网络生成加权图。
在一些方面,可以使用符合一个或多个视频解码器标准的解码器对经编码的视频数据进行解码。在一些方面,基于光流和加权图编码视频数据包括:基于光流和加权图压缩视频数据。
在一些方面,上述装置包括相机,并且视频数据由相机捕获。
在一些方面,上述方法、装置和计算机可读介质还包括:从经编码的视频数据,生成基于残差的经重构的残差,其中生成经重构的输入帧包括:基于预测帧和经重构的残差生成经重构的输入帧。在一些方面,残差基于输入帧和预测帧之间的差。在一些方面,残差基于输入帧和第二预测帧之间的差,其中第二预测帧是基于光流和加权图被扭曲的参考帧的变型,该光流和加权图已经基于参考帧和输入帧而生成。
在一些方面,基于经重构的光流和经重构的加权图扭曲参考帧包括:基于重构的加权图,生成至少第一差分索引加权图和第二差分索引加权图;至少部分地通过基于经重构的光流扭曲参考帧,生成第一扭曲帧;至少部分地通过基于经重构的光流的尺度减小的变型扭曲参考帧的尺度减小的变型,生成第二扭曲帧;确定第一扭曲帧与第一差分索引加权图的第一乘积;确定第二扭曲帧与第二差分索引加权图的第二乘积;以及确定第一乘积与第二乘积的尺寸放大的变型之和。
在一些方面,基于经重构的光流和经重构的加权图扭曲参考帧包括:基于经重构的光流和经重构的加权图,使用一个或多个经训练的神经网络扭曲参考帧。在一些方面,从经编码的视频数据生成经重构的光流包括:使用一个或多个经训练的神经网络从经编码的视频数据生成经重构的光流。在一些方面,从经编码的视频数据生成经重构的加权图包括:使用一个或多个经训练的神经网络从经编码的视频数据生成经重构的加权图。
在一些方面,装置包括相机、移动设备、移动电话、智能电话、移动手机、便携式游戏设备、无线通信设备、智能手表、可穿戴设备、头戴式显示器(HMD)、扩展现实设备(例如,虚拟现实(VR)设备、增强现实(AR)设备或混合现实(MR)设备)、个人计算机、笔记本电脑、服务器计算机或其他设备。在一些方面,一个或多个处理器包括图像信号处理器(ISP)。在一些方面,装置包括用于捕获一个或多个图像的相机或多个相机。在一些方面,装置包括捕获图像的图像传感器。在一些方面,装置还包括用于显示图像的显示器、一个或多个通知(例如,与图像处理相关联的通知)和/或其他可显示数据。在一些方面,显示器在一个或多个处理器处理图像后显示图像。
本发明内容并非意在识别要求保护的主题的关键或必要特征,也并非意在单独用于确定要求保护的主题的范围。本主题应通过参考本专利的整个说明书的适当部分、任何或所有附图、以及每项权利要求来理解。
上述内容以及其他特征和实施例在参考以下说明书、权利要求和附图后将变得更加明显。
附图说明
下面参考下图详细描述本申请的说明性实施例:
图1是说明了包括编码设备和解码设备的***的示例的框图;
图2是说明了对视频数据的帧内编码帧进行编码和解码的概念图;
图3A是说明了使用二维(2D)光流和2D扭曲对视频数据的帧间编码帧进行编码和解码的概念图;
图3B是说明了使用二维(2D)光流和2D扭曲对视频数据的帧间编码帧进行编码和解码的概念图;
图4A是说明了使用多尺度(MS)光流和MS扭曲对视频数据的帧间编码帧进行编码和解码的概念图;
图4B是说明了使用多尺度(MS)光流和MS扭曲对视频数据的帧间编码帧进行编码和解码的概念图;
图5是说明了使用参考帧的尺度减小的变型、光流和差分索引加权图生成预测帧的概念图;
图6是说明了加权图的差分索引的概念图;
图7A说明根据一些示例的用于加权图的差分索引的尺度权重分布图;
图7B说明根据一些示例的用于加权图的差分索引的尺度权重分布图;
图8是说明了根据一些示例的神经网络示例的框图;
图9是说明了根据一些示例的卷积神经网络(CNN)的示例的框图;
图10A是说明了多尺度扭曲引擎的概念图,该引擎基于一个或多个经训练的神经网络,使用一个或多个自动编码器在特征域中扭曲参考帧;
图10B是说明了多尺度扭曲引擎的概念图,该引擎在特征域中扭曲参考帧,并使用基于一个或多个经训练的神经网络的一个或多个自动编码器在特征域中执行残差补偿;
图11A是说明了根据一些示例的数据编码过程的示例的流程图;
图11B是说明了根据一些示例的数据解码过程的示例的流程图;以及
图12是说明了用于实施本技术特定方面的***的示例的图。
具体实施方式
下面提供了本公开的特定方面和实施例。这些方面和实施例的其中一些可以被独立应用,而这些方面和实施例的其中一些可以被组合应用,这对本领域的技术人员来说是显而易见的。在下面的描述中,为了便于解释,具体细节被列出以提供对本应用的实施例的透彻理解。然而,显而易见的是,没有这些具体细节也可以实施各种实施例。这些图和描述并非意在限制。
接下来的描述仅提供示例性的实施例,而无意对本公开的范围、适用性或配置进行限制。相反,接下来对示例性实施例的描述将为本领域的技术人员提供实施示例性实施例的有利说明。应当理解的是,在不脱离所附权利要求中所阐述的本申请的主旨和范围的情况下,可以对元件的功能和布置进行各种更改。
图像捕获设备(例如,相机)是使用图像传感器接收光线并且捕获图像帧(诸如静止图像或视频帧)的设备。在此处,术语“图像”、“图像帧”和“帧”可以互换使用。图像捕获设备通常包括至少一个镜头,其用于接收来自场景的光线并且将光线引向图像捕获设备的图像传感器。镜头所接收的光线通过一个或多个控制机构控制的光圈,并且被图像传感器接收。该一个或多个控制机构可以基于来自图像传感器的信息和/或来自图像处理器(例如,主机或应用处理和/或图像信号处理器)的信息控制曝光、聚焦和/或变焦。在一些示例中,该一个或多个控制机构包括将图像捕获设备的镜头移动到目标镜头位置的电机或其他控制机构。视频是指连续图像的序列,可以被称为“视频帧”。显示视频是指按顺序显示该视频的视频帧。视频可以描述一个或多个移动中的对象。
数据压缩是使用比数据的原始表示更少的比特对数据信息进行编码的过程。无损数据压缩例如通过删除冗余信息在压缩过程中不会丢失原始数据文件的任何信息,来压缩数据。有损数据压缩技术有时会比无损数据压缩技术压缩更多数据。然而,有损数据压缩技术会丢失原始数据文件中的一些信息,诸如数据压缩算法认为不那么必要或重要的信息。执行数据压缩的设备被称为编码器。反转数据压缩过程(解压)以尽可能接近地从原始数据文件重新创建数据的设备称为解码器。
视频压缩可以基于帧内编码、帧间编码或两者对视频进行压缩。帧内编码,也称为空间压缩,是指使用静止图像压缩技术来压缩视频的单个视频帧。帧间编码,又称时间压缩,是指基于视频中的多个视频帧中的图像数据来压缩视频。例如,帧间编码可以被用于识别视频帧中哪些区域相对于参考视频帧(例如,前一视频帧)发生变化,哪些区域保持不变。
运动估计是一种帧间编码技术,可以减少在视频帧之间匹配但也在视频帧之间移动的图像数据的冗余存储。运动估计可以确定具有场景的特定部分从第一视频帧移动到第二视频帧的方向和/或距离的运动向量。光流是运动估计的一种形式,可以提供运动向量(具有方向和/或距离),该运动向量描述特定像素如何从第一视频帧移动到第二视频帧。传统的光流技术被称为二维(2D)光流,因为这些运动向量沿着与第一视频帧和第二视频帧表面相对应的2D平面表面提供方向和/或距离。稠密光流为视频帧的每个像素提供运动向量。稀疏光流为视频帧的像素子集提供运动向量,诸如代表场景中视觉特征的像素(例如角、边、脊和/或圆球(blobs))。编码器和/或解码器可以基于使用两个帧之间的光流,将第一帧扭曲为预测帧来预测第二帧。残差可以识别预测帧和第二帧之间的差或误差。
然而,传统的光流技术在对光流估计产生不确定性的场景中可能不准确。例如,对于描述了遮挡物遮挡了运动中部分场景的场景和/或其中具精细细节移动的场景(例如,烟雾、***、火焰、烟花、液体、纸屑、灰尘、雨、气泡、虚化效果、粒子效果、或其组合),光流估计可能不准确。对在光流估计中具有不确定性的场景的视频进行编码可涉及生成和存储复杂光流。这种复杂光流,在生成时的计算成本可能很高,在存储时可能是存储密集的,最终可能不准确,传输成本可能也很高(例如,带宽成本很高),或具有以上因素的组合。由于光流的不准确性,对在光流中具有不确定性的场景的视频进行编码还可能涉及复杂残差的生成和存储。复杂残差的存储和传输也是存储密集的。因此,编码后的视频数据最终可能既包括存储密集的复杂光流,也包括存储密集的复杂残差。因此,传统的光流技术在压缩在运动估计中具有不确定性的场景的视频时可能是低效的。
本文描述了基于多尺度光流执行数据编码的***和技术。在多尺度光流中,编码设备接收输入帧和参考帧,并且基于输入帧和参考帧生成光流和加权图。与2D光流一样,多尺度光流可以识别运动向量(具有方向和/或距离),该运动向量描述特定像素如何从参考视频帧移动到输入视频帧。编码设备可以基于光流和加权图扭曲参考帧,来生成预测输入图像的预测帧。
加权图可以识别在光流估计中确定性到不确定性的尺度。参考图像中的不同像素可对应于加权图中的预定范围(例如,从0到1)内的不同权重值。在一些示例中,加权图中较低的权重值可对应于光流估计中较高的确定性程度,而加权图中较高的权重值可对应于光流估计中较低的确定性程度。示例性加权图如图5和图6所示,黑色对应为0的权重值,白色对应为1的权重值,而黑白之间的灰色阴影对应于0和1之间的权重值。
加权图还可以识别尺度的精或粗,参考图像将以此尺度被扭曲来生成预测输入图像的预测帧。在一些示例中,加权图中较小的数字对应于以更精的细节层次(例如,加权到更大的尺度)对参考图像进行扭曲,而加权图中较大的数字对应于使用更粗的细节层次(例如,加权到更小的尺度)对参考图像进行扭曲。在更精的细节层次上,编码设备可以按参考帧的原始尺寸或参考帧的略微尺度缩小的变型(例如,原始尺寸的一半)对其进行扭曲。在更粗的细节层次,编码设备可以对参考帧的以更大幅度尺度缩小的变型进行扭曲(例如,原始尺寸的四分之一、原始尺寸的八分之一、原始尺寸的十六分之一、原始尺寸的32分之一、原始尺寸的64分之一、原始尺寸的128分之一、原始尺寸的256分之一、原始尺寸的512分之一、更大幅度的尺度缩小,或介于前述尺寸中任何两种尺寸之间的尺寸)。扭曲帧可以被尺寸放大回到参考帧的原始尺寸,并且按照与加权图相对应的权重被与之组合到一起。
通过使用光流和加权图两者扭曲参考帧来生成预测帧,其提供了比仅使用光流而不使用加权图更好的视频压缩效果。编码设备以精细节层次对参考帧的第一区域进行扭曲,其中编码设备已经以较高确定性程度估计了第一区域的移动。编码设备以粗细节层次对参考帧的第二区域进行扭曲,其中编码设备已经以较低确定性程度估计了第一区域的移动。编码设备可以通过基于加权图组合不同尺度的光流来生成组合后的光流。组合后的光流比原始光流更平滑、更不复杂,尤其是在光流估计中具有高不确定性的区域。因此,组合后的光流比原始光流在存储时更不存储密集。使用残差可以校正细节。使用多尺度光流的残差的复杂程度与使用2D光流的残差类似。如前所述,2D光流会导致在光流估计中具有高不确定性的区域出现不准确,这需要复杂的残差来修改。在一些情况下,与使用2D光流的残差相比,使用多尺度光流的残差甚至可以拥有降低的复杂程度。例如,不准确的精细估计可能最终导致覆盖图像中更大面积的扭曲误差,因此比更粗层次的估计修改起来更加复杂。
编码设备可以基于光流和加权图生成对应于输入帧的经编码的视频数据。在一些方面,编码设备使用一个或多个人工智能(AI)算法、经训练的一个或多个机器学习(ML)模型、一个或多个经训练的神经网络(NN)或其组合,来生成光流。在一些方面,编码设备使用一个或多个人工智能算法、一个或多个经训练的ML模型、一个或多个经训练的NN或其组合,生成加权图。在一些方面,编码设备使用一个或多个人工智能算法、一个或多个经训练的ML模型、一个或多个经训练的NN或其组合,基于光流和加权图扭曲参考帧来生成预测帧。
本文所述的技术可以被应用于现有的视频编解码器(例如,高效视频编码(HEVC)、高级视频编码(AVC)或其他合适的现有视频编解码器)、和/或可以作为任何正在开发的视频编码标准和/或未来的视频编码标准的有效编码工具,诸如,多功能视频编码(VVC)、联合开发模型(JEM)和/或其他正在开发或将要开发的视频编码标准。
图1是说明了***100的示例的框图,***100包括编码设备104和解码设备112。编码设备104可能是源设备的一部分,而解码设备112可能是接收设备的一部分。源设备和/或接收设备可包括电子设备,诸如移动或固定电话听筒(例如,智能手机、蜂窝电话或类似设备)、台式电脑、膝上型或笔记本电脑、平板电脑、机顶盒、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备、互联网协议(IP)相机或任何其他合适的电子设备。在一些示例中,源设备和接收设备包括一个或多个用于无线通信的无线收发器。本文所述的编码技术可应用于各种多媒体应用中的视频编码,包括流媒体视频传输(例如,通过互联网)、电视广播或传输、用于存储在数据存储介质上的数字视频的编码、存储在数据存储介质上的数字视频的解码或其他应用。在一些示例中,***100可支持单向或双向视频传输,来支持应用诸如视频会议、视频流、视频重放、视频广播、游戏和/或视频电话等。
编码设备104(或编码器)可以被用来使用视频编码标准或协议对视频数据进行编码,以生成经编码的视频比特流。视频编码标准的示例包括ITU-TH.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IEC MPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual、ITU-T H.264(也被称为ISO/IEC MPEG-4AVC),包括其可缩放视频编码(SVC)和多视图视频编码(MVC)扩展,以及高效视频编码(HEVC)或ITU-T H.265。HEVC的各种扩展涉及多层视频编码,包括范围和屏幕内容编码扩展、三维视频编码(3D-HEVC)和多视图扩展(MV-HEVC)以及可伸缩扩展(SHVC)。HEVC及其扩展由ITU-T视频编码专家组(VCEG)和ISO/IEC动态画面专家组(MPEG)的视频编码联合协作组(JCT-VC)和三维视频编码扩展开发联合协作组(JCT-3V)开发。MPEG和ITU-T视频编码专家组(VCEG)还成立了一个联合开发视频小组(JVET),为下一代视频编码标准开发新的编码工具。参考软件被称为JEM(联合开发模型)。JVET开发的新视频编码标准被称为多功能视频编码(VVC)。VVC可以被称为H.266、MPEG-I第3部分或未来视频编码。
HEVC是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态画面专家组(MPEG)的视频编码联合协作组(JCT-VC)于2013年最终确定的。联合视频专家组(JVET)是由MPEG和ITU-T第16研究组的VCEG组成的合作团队,于2020年最终确定了新的VVC视频编码标准。与现有的HEVC标准相比,VVC在压缩性能方面有了显著提高,有助于部署更高质量的视频服务和新兴的应用(例如,诸如365°全方位沉浸式多媒体、高动态范围(HDR)视频,包括其他)。
本文所述的许多实施例提供了使用JEM模型、VVC、HEVC标准和/或其扩展的示例。然而,如上所述,本文所述的技术和***也可以适用于其他编码标准,例如AVC、MPEG、JPEG(或其他静止图像编码标准)、其扩展或其他已经可用或尚未可用或开发的合适编码标准。因此,虽然本文描述的技术和***可以参考特定的视频编码标准,但本领域的技术人员能够会明白,描述不应被解释为仅适用于该特定标准。同样,虽然本文所述的特定技术和***可以参考视频和图像编码和解码进行描述,但本领域的技术人员会理解,本描述也可以适用于视频数据和/或图像数据之外的其他类型数据的数据编码和数据解码,诸如音频数据、文本数据或多媒体数据。
参考图1,视频源102可以向编码设备104提供视频数据。视频源102可以是源设备的一部分,也可以是源设备之外的设备的一部分。视频源102可以包括视频捕获设备(例如,视频相机、相机电话、视频电话或类似设备)、包括存储视频的视频档案、提供视频数据的视频服务器或内容提供商、从视频服务器或内容提供商接收视频的视频馈送接口、用于生成计算机图形视频数据的计算机图形***、此类源的组合、或任何其他合适的视频源。
来自视频源102的视频数据可以包括一个或多个输入画面或帧。画面或帧是静止图像,在一些情况下是视频的一部分。在一些示例中,来自视频源102的数据可以是不是视频的一部分的静止图像。编码设备104的编码器引擎106(或编码器)对视频数据进行编码,来生成经编码的视频比特流。在一些示例中,经编码的视频比特流(或被称为“视频比特流”或“比特流”),是一系列一个或多个经编码的视频序列。经编码的视频序列(CVS)包括一系列接入单元(AU),从在基础层中具有随机接入点画面并且具有特定属性的AU开始,直到但不包括下一个在基础层中具有随机接入点图像并且具有特定属性的AU。例如,启动CVS的随机接入点画面的特定属性包括等于1的RASL标志(例如,NoRaslOutputFlag)。否则,随机接入点画面(RASL标志等于0)不会启动CVS。接入单元(AU)包括一个或多个编码画面以及与共享了相同输出时间的编码画面相对应的控制信息。画面的编码切片(slice)在比特流层被封装成数据单元,其被称为网络抽象层(NAL)单元。例如,HEVC视频比特流包括一个或多个包括NAL单元的CVS。每个NAL单元都有一个NAL单元标头。在一个示例中,H.264/AVC(多层扩展除外)的标头为一个字节,而HEVC的标头为两个字节。该NAL单元标头中的语法元素占用指定的比特,因此对各种***和传输层都是可见的,诸如传输流、实时传输(RTP)协议、文件格式等。
HEVC标准中存在两类NAL单元,包括视频编码层(VCL)NAL单元和非VCL NAL单元。VCL NAL单元包括编码画面数据的一个切片或切片片段(slice segment)(如下所述),而非VCL NAL单元包括与一个或多个编码画面相关的控制信息。在一些情况下,NAL单元可以被称为分组。HEVC AU包括含有编码画面数据的VCL NAL单元和与编码画面数据相对应的非VCL NAL单元(如果有的话)。
NAL单元可以含有构成了视频数据的编码表示的比特序列(例如,经编码的视频比特流、比特流的CVS等),诸如视频中画面的编码表示。编码器引擎106通过将每张画面分割成多个切片,来生成画面的编码表示。切片与其他切片之间相互独立,因此编码切片中的信息无需依赖相同画面中其他切片的数据。切片包括一个或多个切片片段,其中包括独立切片片段和一个或多个依赖切片片段(如果存在),依赖切片片段依赖于之前的切片片段。然后,这些切片会被分割成亮度采样和色度采样的编码树块(CTB)。亮度采样和一个或多个色度采样的CTB、以及采样的语法被称为编码树单元(CTU)。CTU是HEVC编码的基本处理单元。CTU可以被被分为多个不同尺寸的编码单元(CU)。CU含有亮度和色度采样阵列,其被称为被称为编码块(CB)。
亮度和色度CB可以被进一步分为预测块(PB)。PB是使用相同的运动参数进行帧间预测或块内拷贝预测(当可用或启用时)的亮度分量或色度分量的采样块。亮度PB和一个或多个色度PB、连同关联语法构成预测单元(PU)。对于帧间预测,一组运动参数(例如,一个或多个运动向量、参考索引或类似参数)在每个PU的比特流中用信号通知,并被用于对亮度PB以及一个或多个色度PB进行帧间预测。运动参数也可以被称为运动信息。CB也可以被分割为一个或多个变换块(TB)。TB代表颜色分量的方形采样块,在该采样块上应用相同的二维变换对预测残差信号进行编码。变换单元(TU)代表亮度和色度采样的TB以及相应的语法元素。
CU的尺寸与编码模式的尺寸相对应,并且其可以是方形。例如,CU的尺寸可以是8x8采样、16x16采样、32x32采样、64x64采样、或任何其他适当的尺寸,直到(达到)相应CTU的尺寸。这里使用的短语“NxN”指的是视频块的像素维度,在垂直和水平维度方面(例如,8像素x8像素)。块中的像素可以被排列为行和列。在一些实施例中,块在水平方向上的像素数量可能具有与垂直方向上不同的像素数量。与CU相关联的语法数据可以描述,例如,将CU分割为一个或多个PU的情况。分割模式可能因CU是按照帧内预测模式编码还是按照帧间预测模式编码而不同。PU可以被分割为非方形的形状。与CU相关联的语法数据还可以描述,例如,根据CTU将CU分割为一个或多个TU。TU的形状可以是方形或非方形。
根据HEVC标准,可以使用变换单元(TU)执行变换。对于不同的CU,TU可以不同。基于给定的CU内PU的尺寸,可以确定TU的尺寸。TU可以与PU尺寸相同或更小。在一些示例中,使用被称为残差四叉树(RQT)的四叉树结构,可以将与CU相对应的残差采样细分为更小的单元。RQT的叶节点可以与TU相对应。与TU相关联的像素差值可以被变换来生成变换系数。然后,编码器引擎106可以对变换系数进行量化。
一旦视频数据的画面被分割为CU,编码器引擎106就会使用预测模式预测每个PU。然后从原始视频数据中减去预测单元或预测块,得出残差(如下所述)。对于每个CU,使用语法数据在比特流内部发信号通知预测模式。预测模式可以包括帧内预测(或画面内预测)或帧间预测(或画面间预测)。帧内预测使用的是画面中空间相邻采样之间的相关性。例如,使用帧内预测时,从相同画面中的相邻图像数据对每个PU进行预测,例如,使用DC预测为PU找出平均值,使用平面预测为PU拟合平面表面,使用方向预测从相邻数据进行外推,或使用任何其他合适的预测类型。帧内预测使用画面之间的时间上的相关性,来得出对图像采样块的运动补偿预测。例如,使用帧间预测时,使用来自一张或多张参考画面(输出顺序在当前画面之前或之后)中的图像数据进行的运动补偿预测,对每个PU进行预测。例如,可以在CU级别处,决定是使用帧间预测还是帧内预测来对画面区域进行编码。
在一些示例中,画面的一个或多个切片被指定切片类型。切片类型包括I切片、P切片和B切片。I切片(帧内,可独立解码)是仅通过帧内预测进行编码的画面的切片,并且因此可独立解码,因为I切片仅需要帧内数据来预测切片中的任何预测单元或预测块。P切片(单向预测帧)是可以通过帧内预测和单向帧间预测进行编码的画面的切片。P切片中的每个预测单元或预测块都可以使用帧内预测或帧间预测被编码。当应用帧间预测时,预测单元或预测块仅由一个参考画面进行预测,因此参考采样仅来自一个帧的一个参考区域。B切片(双向预测帧)是可以通过帧内预测和帧间预测(例如,双向预测或单向预测)进行编码的画面的切片。B切片的预测单元或预测块可以从两张参考画面被双向预测,其中每张画面促成一个参考区域,并且对两个参考区域的采样集进行加权(例如,等权重或不同权重),来生成双向预测块的预测信号。如上所述,一张画面的切片被独立编码。在一些情况下,画面可以仅被编码为一个切片。被编码为I切片的画面可以被称为I帧。包括I切片的画面可以被称为I帧。被编码为P切片的画面可以被称为P帧。包括P切片的画面可以被称为P帧。被编码为B切片的画面可以被称为B帧。包括B切片的画面可以被称为B帧。
如上所述,画面内预测使用画面中空间相邻采样之间的相关性。画面间预测则使用图像之间的时间上的相关性,来得出图像采样块的运动补偿预测。使用平移移动模型,先前的经解码的画面(参考画面)中的块位置由运动向量(Δx,Δy)指示,其中Δx指定参考块相对于当前块位置的水平距离,Δy指定参考块相对于当前块位置的垂直距离。在一些情况下,运动向量(Δx,Δy)可以是整数采样精度(也被称为整数精度),在这种情况下,运动向量指向参考帧的整数像素网格(或整数像素采样网格)。在一些情况下,运动向量(Δx,Δy)可以是分数采样精度(也被称为分数像素精度或非整数精度),来更精确地捕获底层对象的移动,而不受限于参考帧的整数像素网格。运动向量的精度可以用运动向量的量化层次来表示。例如,量化层次可以是整数精度(例如,1像素)或分数像素精度(例如,1/4像素、1/2像素或其他子像素值)。当相对应的运动向量具有分数采样精度时,可以对参考画面应用内插,来得出预测信号。例如,可以对整数位置处可用的采样进行滤波(例如,使用一个或多个插值滤波器),来估计分数位置上的值。先前经解码的参考画面由参考画面列表的参考索引(refIdx)指示。运动向量和参考索引可以被称为运动参数。两种画面间预测可以被执行,包括单向预测和双向预测。
使用双向预测进行帧间预测时,两组运动参数(Δx0,y0,refIdx0以及Δx1,y1,refIdx1)被用于生成两个运动补偿预测(来自相同参考画面或可能来自不同参考画面)。例如,使用双向预测时,每个预测块使用两个运动补偿预测信号,并且生成B个预测单元。然后将两个运动补偿预测信号组合,来得出最终的运动补偿预测信号。例如,两个运动补偿预测信号可以通过求平均进行组合。在另一个示例中,可以使用加权预测,在这种情况下,可以对每个运动补偿预测应用不同的权重。可以被用于双向预测的参考画面存储在两个单独的列表中,分别被表示为列表0和列表1。运动参数可以在编码器上使用运动估计过程得出。
使用单向预测的帧间预测时,一组运动参数(Δx0,y0,refIdx0)被用于从参考画面生成运动补偿预测。例如,使用单向预测时,每个预测块最多使用一个运动补偿预测信号,并且生成P个预测单元。
PU可以包括与预测过程相关的数据(例如,运动参数或其他合适的数据)。例如,当使用帧内预测对PU进行编码时,PU可以包括描述PU的帧内预测模式的数据。又例如,当使用帧间预测对PU进行编码时,PU可以包括定义PU的运动向量的数据。例如,定义PU的运动向量的数据可以描述运动向量的水平分量(Δx)、运动向量的垂直分量(Δy)、运动向量的分辨率(例如,整数精度、四分之一像素精度或八分之一像素精度)、运动向量指向的参考画面、参考索引、运动向量的参考画面列表(例如,列表0、列表1或列表C)、或其任意组合。
然后,编码设备104可以执行变换和量化。例如,在预测之后,编码器引擎106可以计算与PU相对应的残差值。残差值可以包括正在编码的当前像素块(该PU)与用于预测当前块的预测块(例如,当前块的经预测的版本)之间的像素差值。例如,在生成预测块(例如,使用帧间预测或帧内预测)后,编码器引擎106可以通过从当前块中减去预测单元生成的预测块,来生成残差块。残差块包括一组像素差值,用于量化当前块的像素值与预测块的像素值之间的差。在一些示例中,残差块可以用二维块格式表示(例如,像素值的二维矩阵或阵列)。在这些示例中,残差块是像素值的二维表示。
在执行预测后可能剩余的任何残差数据均使用块变换进行变换,其可能基于离散余弦变换、离散正弦变换、整数变换、小波变换、其他合适的变换函数或其任意组合。在一些情况下,一个或多个块变换(例如,32x32、16x16、8x8、4x4或其他合适的尺寸)可以被应用于每个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可以执行自适应扫描。在扫描量化变换系数以构成向量(例如,一维向量)后,编码器引擎106可以对向量进行熵编码。例如,编码器引擎106可以使用上下文自适应变量长度编码、上下文自适应二进制算术编码、基于语法的上下文自适应二进制算术编码、概率区间分割熵编码或其他合适的熵编码技术。
编码设备104的输出110可以通过通信链路120向接收设备的解码设备112发送构成经编码视频比特流数据的NAL单元。解码设备112的输入114可以接收NAL单元。通信链路120可包括由无线网络、有线网络或有线和无线网络组合提供的信道。无线网络可以包括任何无线接口或无线接口组合,并且可以包括任何合适的无线网络(例如,互联网或其他广域网、基于分组的网络、WiFiTM、射频(RF)、UWB、直连WiFi、蜂窝、长期演进(LTE)、WiMaxTM或类似网络)。有线网络可以包括任何有线接口(例如,光纤、以太网、电线以太网、同轴电缆以太网、数字信号线(DSL)或类似接口)。有线和/或无线网络可以使用各种设备实施,诸如基站、路由器、接入点、网桥、网关、交换机或类似设备。经编码的视频比特流数据可以根据通信标准(诸如无线通信协议)被调制,并且被传输到接收设备。
在一些示例中,编码设备104可以将经编码的视频比特流数据存储在存储器108中。输出110可以从编码器引擎106或存储器108中检索经编码的视频比特流数据。存储器108可以包括各种分布式或本地接入的数据存储介质中的任何一种。例如,存储器108可以包括硬盘驱动器、存储光盘、闪存、易失性或非易失性存储器、或任何其他适合存储经编码的视频数据的数字存储介质。
解码设备112的输入114接收经编码的视频比特流数据,并且可以将视频比特流数据提供给解码引擎116,或提供给存储118,用于解码引擎116的后续使用。解码器引擎116可以通过熵解码(例如,使用熵解码器)解码经编码的视频比特流数据,并且提取构成经编码视频数据的一个或多个经编码的视频序列的元素。然后,解码器引擎116可以对经编码的视频比特流数据进行重新缩放并且执行逆变换。然后,残差数据被传送到解码器引擎116的预测级。然后,解码器引擎116对像素块(例如,PU)进行预测。在一些示例中,预测被添加到逆变换(残差数据)的输出中。
解码设备112可以将经解码的视频输出到视频目的设备122,其可以包括用于向内容消费者显示经解码的视频数据的显示器或其他输出设备。在一些方面,视频目的设备122可以是包括解码设备112的接收设备的一部分。在一些方面,视频目的设备122可以是接收设备以外的单独的设备的一部分。
在一些实施例中,视频编码设备104和/或视频解码设备112可以分别与音频编码设备和音频解码设备进行集成。视频编码设备104和/或视频解码设备112还可以包括实施上述编码技术所需的其他硬件或软件,例如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑、软件、硬件、固件或其任意组合。视频编码设备104和视频解码设备112可以作为组合编码器/解码器(编解码器)的一部分,被集成在相应的设备中。在一些情况下,编码设备104可以执行由解码设备112所执行的本文所讨论的功能,反之亦然。
图1所示的示例***是可以被用于编码和/或解码数据的一个说明性示例。使用本文所述技术处理视频数据的技术可以由任何数字视频编码和/或解码设备执行。虽然本公开的技术通常由视频编码设备或视频解码设备执行,但这些技术也可以由组合视频编码器-解码器(通常称为“CODEC”)执行。此外,本公开的技术也可以由视频预处理器执行。源设备和接收设备仅是此类编码设备的示例,其中源设备生成经编码的视频数据,用于传输到接收设备。在一些示例中,源设备和接收设备可以以基本对称的方式操作,从而使得每个设备都包括视频编码和解码部件。因此,示例***可以支持视频设备之间的单向或双向视频传输,例如,用于视频流传输、视频播放、视频广播或视频电话。
在一些情况下,使用基于机器学习的***(例如,使用一个或多个神经网络),可以对数据进行编码和/或解码。图2是示出了视频数据的帧内编码帧(也被称为I帧)的编码和解码的概念图200。图中示出了具有自动编码器260的编解码器***295。自动编码器260接收输入帧220(v)。自动编码器260包括编码器250和解码器255。编码器250可以对输入帧220(v)进行编码,来生成经编码的帧数据285(ve)。解码器255可以对经编码的帧数据285(ve)进行解码,来生成经重构的输入帧经重构的输入帧/>是输入帧220(v)的经重构和/或经解码的版本。
图2中经编码的帧数据285(ve)是视频数据的帧内编码帧,也可以被称为I帧或帧内编码帧。下标字母“e”(如经编码的帧数据285ve)在此被用于指代已经过编码器(如编码器250)编码的编码数据。帧内编码,也被称为空间压缩,是指代使用静止图像压缩技术压缩视频中的单个视频帧。作为I帧,经编码的帧数据285(ve)存储帧数据,通过这些数据,解码器255可以将整个输入帧220(v)重构为经重构的输入帧而无需参考任何其他帧。编码器250可以使用帧内编码来生成经编码的帧数据285(ve)。在一些示例中,编码器250可以使用一个或多个人工智能算法、一个或多个经训练的ML模型和/或一个或多个经训练的NN来基于输入帧220(v)对经编码的帧数据285(ve)进行编码。在一些示例中,经编码的帧数据285(ve)可以是输入帧220(v)的潜空间(latent space)表示。在一些示例中,解码器255可以使用一个或多个人工智能算法、一个或多个经训练的ML模型和/或一个或多个经训练的NN来基于经编码的帧数据285(ve)重构经重构的输入帧/>
在一些示例中,编码器250使用无损压缩生成经编码的帧数据285(ve)。在编码器250使用无损压缩生成经编码的帧数据285(ve)的示例中,经重构的输入帧可以与输入帧220(v)相同。在一些示例中,编码器250使用有损压缩生成经编码的帧数据285(ve)。在编码器250使用有损压缩生成经编码的帧数据285(ve)的示例中,经重构的输入帧/>可以与输入帧220(v)相似。在编码器250使用有损压缩生成经编码的帧数据285(ve)的示例中,经重构的输入帧/>可以包括与输入帧220(v)相比的一些差异。此处使用字母上的上尖(如经重构的输入帧/>来指代在解码器(诸如解码器255)的帮助下已经解码和/或重构的重构数据。
在一些示例中,编码器250包括在输入帧220(v)上和/或在其块上执行变换编码的变换编码器。在一些示例中,变换编码可以包括离散余弦变换(DCT)、修改后的离散余弦变换(MDCT)、离散正弦变换(DST)、快速傅里叶变换(FFT)、小波变换或其组合。在一些示例中,编码器250包括量化器,该量化器在输入帧220(v)上和/或在其块上执行量化,在一些情况下,该执行量化在变换编码之后。由编码器250的量化器在量化过程中所执行的量化程度可以基于量化参数(QP),并且可以通过调整QP进行修改。QP可以指示量化期间输入帧220(v)的量化步长,并且可以控制量化后从捕获的图像中保留多少空间细节。在一些示例中,编码器250包括熵编码器,其在一些情况下在变换编码和/或量化之后执行熵编码。熵编码可以包括,例如,上下文自适应二进制算术编码(CABAC)、算术编码、哥伦布编码、哈夫曼编码、范围编码、香农编码、香农-法诺编码、香农-法诺-埃利亚斯编码、屯斯托尔编码、一元编码、通用编码或其组合。
在一些示例中,解码器255包括对经编码的帧数据285(ve)和/或其块执行逆量化的逆量化器。在一些示例中,解码器255包括逆变换编码器,其在经编码的帧数据285(ve)上和/或在其块上执行逆变换,在一些情况下在逆量化之后执行逆变换。
图3A是示出了使用二维(2D)光流和2D扭曲对视频数据的帧间编码帧进行编码和解码的概念图300。图中示出了具有Warp2D引擎310A、OptFlow2D引擎325和自动编码器360的编解码器***395A。自动编码器360包括编码器350和解码器355。编解码器***395A接收参考帧和输入帧320(v)。编解码器***395A可以生成和/或输出对与输入帧320(v)相对应的数据进行编码的经编码的帧数据385(ve)。图3A中的经编码的帧数据385(ve)是帧间编码的帧。帧间编码也被称为时间压缩,是指代通过参考视频中来自一个或多个其他帧的冗余来压缩视频中的帧。帧间编码帧可以被称为P帧、预测帧、B帧、双向预测帧或其组合。在经编码的帧数据385(ve)的情况下,通过参考输入帧320(v)中至少来自参考帧的冗余,对输入帧320(v)进行编码和/或压缩。编解码器***395A可以基于参考帧/>中的数据和经编码的帧数据385(ve)来解码经编码的帧数据385(ve),以生成经重构的输入帧/>
在一些示例中,参考帧描述第一时间的场景,而输入帧320(v)描述第二时间的相同场景。第一时间可以在第二时间之前,在这种情况下,参考帧/>在视频中被排列在输入帧320(v)之前。第一时间可以在第二时间之后,在这种情况下,参考帧被排列在视频中输入帧320(v)之后。参考帧/>可以是帧内编码帧。如上尖符号所示,参考帧/>可以是经重构的帧,诸如图2中的经重构的输入帧/>/>
OptFlow2D引擎325接收参考帧和输入帧320(v)。OptFlow2D引擎325基于参考帧/>和输入帧320(v),生成2D光流330(f2D)。OptFlow2D引擎325可以包括、和/或可以使用一个或多个人工智能算法、一个或多个经训练的ML模型、一个或多个经训练的NN或其组合,生成2D光流330(f2D)。OptFlow2D引擎325可以使用诸如图8的NN 800的神经网络(NN)、诸如图9的CNN900的卷积神经网络(CNN)、深度CNN、具有全连接层的NN、具有全连接层的CNN、具有全连接层的深度CNN、其他类型的NN或其组合。OptFlow2D引擎325可以使用FlowNet 1.0、FlowNet 2.0、FlowNetSimple、FlowNetCorr、FlowNetS、FlowNetLite、其他光流估计方法或其组合。
OptFlow2D引擎325将参考帧与输入帧320(v)进行比较。OptFlow2D引擎325可以识别在参考帧/>与输入帧320(v)之间没有变化的不变区域。OptFlow2D引擎325可以识别移动区域,这些区域在参考帧/>与输入帧320(v)二者中都存在,但在参考帧/>与输入帧320(v)之间进行移动。
在一个说明性示例中,参考帧和输入帧320(v)可以描述人在固定且不变的背景前行走的场景。在本说明性示例中,OptFlow2D引擎325可以识别参考帧和输入帧320(v)中对固定且不变的背景的描述代表不变的区域。在本示例中,OptFlow2D引擎325可以识别参考帧/>和输入帧320(v)中的人物描述代表移动区域。
由OptFlow2D引擎325生成的2D光流330(f2D)可以识别参考帧中对应于移动区域的一组一个或多个像素中的每个像素的运动向量。在一些示例中,2D光流330(f2D)可以为参考帧/>的每个像素识别运动向量。每个运动向量可以确定由像素所描述的元素在参考帧/>与输入帧320(v)之间进行移动的方向和/或距离。方向可以是沿参考帧/>的2D图像平面的方向。距离可以是沿参考帧/>的2D图像平面的距离。该距离可以是线性距离、欧氏距离或其组合。2D图像平面可以有两个垂直的维度。在一些示例中,这两个垂直维度分别被称为水平维度(x)和垂直维度(y)。距离可以被称为运动向量的幅度。在不变的区域,2D光流330(f2D)可以识别距离或幅度为零。
稠密光流为视频帧的每个像素提供运动向量。2D光流330(f2D)可以是稠密光流。稀疏光流为视频帧的像素子集提供运动向量,诸如代表场景中视觉特征的像素(例如,角、边、脊和/或圆球)。2D光流330(f2D)可以是稀疏光流。
在一些示例中,2D光流330(f2D)由OptFlow2D引擎325图像生成为光流图像。在一些示例中,光流图像基于光流图像中相应像素的色相,识别参考帧中像素的运动向量的方向。在一些示例中,光流图像基于光流图像中相应像素的饱和度或色度,识别参考帧中像素的运动向量的距离(或幅度)。在一个说明性示例中,青色代表左方向,蓝色代表对角线左上方向,紫色代表上方向,***代表对角线右上方向,红色代表右方向,橙色代表对角线右下方向,黄色代表下方向,绿色代表对角线左下方向,介于所列颜色中任何两种颜色之间的任何颜色代表与这两种颜色对应的两个方向之间的方向。在一个说明性示例中,白色代表运动向量幅度为零,饱和度或色度值越高,代表运动向量幅度越大。使用这种色相和饱和度编码方案的光流图像示例被图示为图5中的2D流515。
编解码器***395A的自动编码器360的编码器350可以对OptFlow2D引擎325生成的2D光流330(f2D)进行编码,来生成经编码的2D光流(f2D_e),该2D光流可以是经编码的帧数据385(ve)的一部分。编解码器***395A的自动编码器360的解码器355可以对经编码的2D光流(f2D_e)进行解码或重构,来生成经重构的2D光流解码器355可以将经重构的2D光流/>传递给编解码器***395A的Warp2D引擎310A。
编解码器***395A的Warp2D引擎310A可以接收参考帧和经重构的2D光流/>编解码器***395A的Warp2D引擎310A可以通过基于经重构的2D光流中的运动向量,对参考帧/>进行扭曲,生成预测帧/>预测帧表示基于经重构的2D光流/>对输入帧320(v)进行的预测。例如,经重构的2D光流/>中的不变区域(例如,幅度为零的区域)在预测帧/>中与在参考帧中保持相同。基于经重构的2D光流/>中相应运动向量的方向和幅度,将经重构的2D光流/>中的移动区域(例如,幅度不为零的区域)从它们在参考帧中的位置移动到它们在预测帧/>中的新位置。本文使用字母上的波浪线(如预测帧/>)来指代Warp引擎(诸如Warp2D引擎310A)根据光流对参考数据进行扭曲而生成的预测数据。Warp2D引擎310A可以将预测帧/>传递给编解码器***395A的减法器365和/或编解码器***395A的加法器375。
编解码器***395A的减法器365可以接收预测帧和输入帧320(v)。编解码器***395A的减法器365可以通过从输入帧320(v)中减去预测帧/>来生成残差340(r),反之亦然。残差可以识别两个帧之间的差或误差。因此,残差340(r)可以识别输入帧320(v)和预测帧/>之间的一个或多个差。编解码器***395A的自动编码器360的编码器350可以对减法器365生成的残差340(r)进行编码,来生成经编码的残差(ree),该残差可以是经编码的帧数据385(ve)的一部分。编解码器***395A的自动编码器360的解码器355可以对经编码的残差(re)进行解码或重构,来生成经重构的残差/>解码器355可以将经重构的残差/>传递给编解码器***395A的加法器375。
编解码器***395A的加法器375可以接收预测帧和经重构的残差编解码器***395A的加法器375可以通过将经重构的残差/>与预测帧相加来生成经重构的输入帧/>反之亦然。经重构的输入帧/>是经编码的帧数据385(ve)的经重构和/或经解码版本,其试图尽可能接近地重构输入帧320(v)。
在一些示例中,编码器350使用无损压缩来生成经编码的帧数据385(ve)。在编码器350使用无损压缩生成经编码的帧数据385(ve)的示例中,经重构的输入帧可以包括输入帧320(v)的所有视频数据,经重构的2D光流/>可以包括2D光流330(f2D)的所有光流数据,和/或经重构的残差/>可以包括残差340(r)的所有残差数据。在编码器350使用有损压缩生成经编码的帧数据385(ve)的示例中,经重构的输入帧/>可以包括与输入帧320(v)类似的视频数据,经重构的2D光流/>可以包括与2D光流330(f2D)类似的光流数据,和/或经重构的残差/>可以包括与残差340(r)类似的残差数据。在编码器350使用有损压缩生成经编码的帧数据385(ve)的示例中,经重构的输入帧/>可以包括与输入帧320(v)的视频数据相比较的一个或多个视频数据差,经重构的2D光流可以包括与2D光流330(f2D)相比较的一个或多个光流数据差,和/或经重构的残差/>可以包括与残差340(r)相比较的一个或多个残差数据差。
在一些示例中,编码器350包括对输入帧320(v)和/或其块执行变换编码的变换编码器。在一些示例中,变换编码除了基于输入帧320(v),还可以基于残差340(r)。在一些示例中,变换编码可以包括离散余弦变换(DCT)、修改离散余弦变换(MDCT)、离散正弦变换(DST)、快速傅里叶变换(FFT)、小波变换或其组合。在一些示例中,编码器350包括量化器,其对输入帧320(v)和/或其块进行量化,在一些情况下其在进行变换编码后进行量化。编码器350的量化器在量化过程中所执行的量化程度可以基于量化参数(QP),并且可以通过调整QP进行修改。QP可以指示量化期间输入帧320(v)的量化步长,并且可以控制量化后从所捕获的图像中保留多少空间细节。在一些示例中,编码器350包括熵编码器,在一些情况下其在变换编码和/或量化之后执行熵编码。熵编码可以包括,例如,上下文自适应二进制算术编码(CABAC)、算术编码、哥伦布编码、哈夫曼编码、范围编码、香农编码、香农-法诺编码、香农-法诺-埃利亚斯编码、屯斯托尔编码、单元编码、通用编码或其组合。
在一些示例中,解码器355包括逆量化器,其对经编码的帧数据385(ve)和/或其块执行逆量化。在一些示例中,解码器355包括对经编码的帧数据385(ve)和/或对其块执行逆变换的逆变换编码器,在一些情况下其在逆量化之后执行逆变换。
在一些示例中,编解码器***395A的自动编码器360可以被分为两个或多个自动编码器。在一个说明性示例中,编解码器***395A的自动编码器360可以包括第一自动编码器和第二自动编码器。第一自动编码器接收2D光流330(f2D),并且输出经重构的2D光流第一自动编码器的编码器可以输出经编码的帧数据385(ve)的第一部分。第二自动编码器接收残差340(r),并且输出经重构的残差/>第二自动编码器的编码器可以输出经编码的帧数据385(ve)的第二部分。
图3B是说明了使用二维(2D)光流和2D扭曲对视频数据的帧间编码帧进行编码和解码的概念图390。图中示出了具有Warp2D引擎310B、Warp2D引擎310C、OptFlow2D引擎325和自动编码器360的编解码器***395B。图3B的编解码器***395B类似于图3A的编解码器***395A,但包括Warp2D引擎310B和Warp2D引擎310C,来代替图3A的编解码器***395A的Warp2D引擎310A。
编解码器***395B的Warp2D引擎310C可以接收参考帧和2D光流330(f2D)。编解码器***395B的Warp2D引擎310C可以通过基于光流330(f2D)中的运动向量,扭曲参考帧/>来生成预测帧/>预测帧/>表示基于光流330(f2D)对输入帧320(v)的预测。图3B的预测帧/>可能与图3A的预测帧/>不同,因为图3B的预测帧/>是使用光流330(f2D)生成的,而图3A的预测帧/>是使用经重构的2D光流/>生成的。Warp2D引擎310C可以将预测帧/>传递给编解码器***395B的减法器365。编解码器***395B的减法器365可以接收预测帧/>和输入帧320(v)。编解码器***395B的减法器365可以通过从输入帧320(v)中减去预测帧来生成残差340(r),反之亦然。由于图3B的预测帧/>可能不同于图3A的预测帧/>因此图3B的残差340(r)也可能不同于图3A的残差340(r)。
编解码器***395B的Warp2D引擎310B可以接收参考帧和经重构的2D光流/>其与编解码器***395A的Warp2D引擎310A更加类似。编解码器***395B的Warp2D引擎310B可以通过基于经重构的2D光流/>中的运动向量扭曲参考帧来生成预测帧/>预测帧/>表示基于经重构的2D光流的对输入帧320(v)的预测。预测帧/>可以不同于预测帧/>因为预测帧/>是使用经重构的2D光流/>生成的,而预测帧/>是使用光流330(f2D)生成的。Warp2D引擎310B可以将预测帧/>传递给编解码器***395B的加法器375。编解码器***395B的加法器375可以接收预测帧/>和经重构的残差编解码器***395B的加法器375可以通过将经重构的残差/>与预测帧相加,来生成经重构的输入帧/>反之亦然。经重构的输入帧/>是经编码的帧数据385(ve)的经重构和/或经解码版本,其试图尽可能接近地重构输入帧320(v)。在一些示例中,可以使用Warp2D引擎410C代替Warp2D引擎410B,从而将预测帧(基于2D光流330f2D)发送到加法器475,而不是将预测帧/>(基于经重构的2D光流/>)发送到加法器475。
在一些示例中,编解码器***395B的自动编码器360可以被分为两个或多个自动编码器。在说明性示例中,编解码器***395A的自动编码器360可以包括第一自动编码器和第二自动编码器。第一自动编码器接收2D光流330(f2D),并且输出经重构的2D光流第一自动编码器的编码器可以输出经编码的帧数据385(ve)的第一部分。第二自动编码器接收残差340(r),并且输出经重构的残差/>第二自动编码器的编码器可以输出经编码的帧数据385(ve)的第二部分。
图4A是说明了使用多尺度(MS)光流和MS扭曲对视频数据的帧间编码帧进行编码和解码的概念图400。图中展示了具有WarpMS引擎410A、OptFlowMS引擎425和自动编码器460的编解码器***495A。自动编码器460包括编码器450和解码器455。图4A的编解码器***495A包括与图3A的编解码器***395A类似的结构,但Warp2D引擎310A被WarpMS引擎410A所取代,OptFlow2D引擎325被OptFlowMS引擎425所取代。
编解码器***495A接收参考帧和输入帧420(v)。与参考帧/>和输入帧320(v)一样,参考帧/>和输入帧420(v)可以在不同时间描述相同场景。参考帧/>可以是帧内编码帧。
OptFlowMS引擎425接收参考帧和输入帧420(v)。OptFlowMS引擎425基于参考帧/>和输入帧420(v)生成MS光流430(fMS)。OptFlowMS引擎425可以包括和/或可以使用一个或多个人工智能算法、一个或多个经训练的ML模型、一个或多个经训练的NN或其组合生成MS光流430(fMS)。OptFlowMS引擎425可以使用诸如图8的NN 800的神经网络(NN)、诸如图9的CNN 900的卷积神经网络(CNN)、深度CNN、具有全连接层的NN、具有全连接层的CNN、具有全连接层的深度CNN、其他其他类型的NN或其组合。
为了生成MS光流430(fMS),OptFlowMS引擎425可以生成2D光流(如针对2D光流330fMS所讨论的)以及表示第三维的加权图。权重可以被称为维度。MS光流430的2D光流分量(fMS)可以被称为与x和y维相关的光流,其可以被写作为fxy。MS光流430(fMS)的加权图分量可以被称为与z维相关的光流,其可以被写作为fz。为了生成MS光流430(fMS)的2D光流分量(fxy),OptFlowMS引擎425可以使用本文讨论的与2D光流330(f2D)有关的任何***和技术,并且进行修改以生成多尺度流。例如,OptFlowMS引擎425可以使用FlowNet 1.0、FlowNet2.0、FlowNetSimple、FlowNetCorr、FlowNetS、FlowNetLite等技术的修改后的版本(针对多尺度流进行修改)、其他光流估计方法或其组合。MS光流430(fMS)的加权图分量(fz)可以包括与参考帧的每个像素对应的权重值和/或与MS光流430(fMS)的2D光流分量(fxy)的每个像素对应的权重值。
MS光流430(fMS)的加权图分量(fz)可以识别MS光流430(fMS)的2D光流分量(fxy)的光流估计中确定性与不确定性的尺度。在一些情况下,确定性可以被称为置信度。参考帧中的不同像素可以对应于加权图中预定范围(例如,从0到1)内的不同权重值。MS光流430(fMS)的加权图分量的示例图示为图5的加权图530(fz)和图6的加权图630(fz)。在图5的示例性加权图530(fz)和图6的示例性加权图630(fz)中,与黑色相对应的权重值为0,与白色相对应的权重值为1,与黑白之间的灰色阴影相对应的权重值在0和1之间。在一些示例中,加权图中较低的权重值(例如,低于预定权重阈值)对应于光流估计中较高的确定性程度(例如,高于预定确定性程度阈值)和/或光流估计中较低的不确定性程度(例如,低于预定不确定性程度阈值)。在一些示例中,加权图中较高的权重值(例如,高于预定权重阈值)对应于光流估计中较低的确定性程度(例如,低于预定确定性程度阈值)和/或光流估计中较高的不确定性程度(例如,高于预定不确定性程度阈值)。在一些示例中,加权图所使用的权重值与确定性值和/或不确定性值的关系可能相反。在一些示例中,加权图使用权重值与灰色阴影之间的相反关系,其与白色相对应的权重值为1,与黑色相对应的权重值为0。
编解码器***495A的自动编码器460的编码器450可以对由OptFlowMS引擎425生成的MS光流430(fMS)进行编码,来生成编码的MS光流(fMS_e),其可以是经编码的帧数据485(ve)的一部分。编解码器***495A的自动编码器460的解码器455可以对经编码的MS光流(fMS_e)进行解码或重构,来生成经重构的MS光流解码器455可以将经重构的MS光流/>传递给编解码器***495A的WarpMS引擎410A。
编解码器***495A的WarpMS引擎410A可以接收参考帧和经重构的MS光流/>编解码器***495A的WarpMS引擎410A可以通过基于经重构MS光流/>的经重构二维光流分量/>中的运动向量并且基于经重构的MS光流/>的经重构加权图分量/>中的权重值,扭曲参考帧/>来生成预测帧/>预测帧表示基于经重构的MS光流/>对输入帧420(v)的预测。WarpMS引擎410A可以将预测帧/>传递给编解码器***495A的减法器465和/或编解码器***495A的加法器475。
MS光流430(fMS)的加权图分量(fz)可以识别参考帧将被扭曲来生成预测帧/>的尺度的精或粗,该预测帧预测了输入帧420(v)。在一些示例中,加权图中较低的权重值(例如,低于预定权重阈值)对应于以更精细的细节层次对参考帧/>的相应部分进行扭曲。在一些示例中,加权图中较高的权重值(例如,高于预定权重阈值)对应于使用更粗的细节层次对参考帧/>的相应部分进行扭曲。在一些示例中,权重值可能与扭曲的精和/或粗具有相反的关系。在更精细的细节层次,编解码器***495A的WarpMS引擎410A可以按照参考帧/>的原始尺寸(例如维度和/或分辨率)或参考帧的略微缩小的变型(例如原始尺寸的一半),对参考帧/>进行扭曲。在更粗的细节层次上,编解码器***495A的WarpMS引擎410A可以按照更大幅度的缩放变型对参考帧/>进行扭曲(例如,原始尺寸的四分之一、原始尺寸的八分之一、原始尺寸的十六分之一、原始尺寸的三十二分之一、原始尺寸的六十四分之一、原始尺寸的一百二十八分之一、原始尺寸的二百五十六分之一、原始尺寸的五百一十二分之一、更小的尺寸、或介于之前列出的任意两个尺寸之间的尺寸)。参考帧/>的扭曲区域可以被放大回到参考帧/>的原始尺寸,并且基于与加权图相对应的权重与其组合在一起。图5举例示出了编解码器***495A的WarpMS引擎410A基于经重构的MS光流/>对参考帧进行扭曲,来生成预测帧/>
编解码器***495A的减法器465可以接收预测帧和输入帧420(v)。编解码器***495A的减法器465可以通过从输入帧420(v)中减去预测帧/>来生成残差440(r),反之亦然。因此,残差440(r)可以识别输入帧420(v)和预测帧/>之间的一个或多个差。由于图4A的预测帧/>可能不同于图3A的预测帧/>因此图4A的残差440(r)也不同于图3A的残差340(r)。
编解码器***495A的自动编码器460的编码器450可以对减法器465生成的残差440(r)进行编码,来生成经编码的残差(re),该残差可以是经编码的帧数据485(ve)的一部分。编解码器***495A的自动编码器460的解码器455可以解码或重构经编码的残差(re),来生成经重构的残差解码器455可以将经重构的残差/>传递给编解码器***495A的加法器475。
编解码器***495A的加法器475可以接收预测帧和经重构的残差编解码器***495A的加法器475可以通过将经重构的残差/>与预测帧相加来生成经重构的输入帧/>反之亦然。经重构的输入帧/>是经编码的帧数据485(ve)的经重构和/或经解码版本,试图尽可能接近地重构输入帧420(v)。
编解码器***495A可以生成和/或输出经编码的帧数据485(ve),该数据对与输入帧420(v)相对应的数据进行编码。图4A中的经编码的帧数据485(ve)是间编码的帧,例如P帧和/或B帧。例如,经编码的帧数据485(ve)可以包括经编码的残差(re)和/或经编码的MS光流(fMS_e)。
在一些示例中,编码器450使用无损压缩生成经编码的帧数据485(ve)。在编码器450使用无损压缩生成经编码的帧数据485(ve)的示例中,经重构的输入帧可以包括输入帧420(v)的所有视频数据,经重构的MS光流/>可以包括MS光流430(fMS)的所有光流数据,和/或经重构的残差/>可以包括残差440(r)的所有残差数据。在编码器450使用有损压缩生成经编码的帧数据485(ve)的示例中,经重构的输入帧/>可以包括与输入帧420(v)类似的视频数据,经重构的MS光流/>可以包括与MS光流430(fMS)类似的光流数据,和/或经重构的残差/>可以包括与残差440(r)类似的残差数据。在编码器450使用有损压缩生成经编码的帧数据485(ve)的示例中,经重构的输入帧/>可以包括与输入帧420(v)的视频数据相比较的一个或多个差,经重构的MS光流/>可以包括与MS光流430(fMS)的光流数据相比较的一个或多个差,和/或经重构的残差/>可以包括与残差440(r)的残差数据相比较的一个或多个差。
在一些示例中,编码器450包括对输入帧420(v)和/或其块执行变换编码的变换编码器。在一些示例中,变换编码除了基于输入帧420(v)之外,还可以基于残差440(r)。在一些示例中,变换编码可以包括离散余弦变换(DCT)、修改离散余弦变换(MDCT)、离散正弦变换(DST)、快速傅里叶变换(FFT)、小波变换或其组合。在一些示例中,编码器450包括量化器,其对输入帧420()和/或其块进行量化,在一些情况下其在进行变换编码后进行量化。编码器450的量化器在量化过程中所执行的量化程度可以基于量化参数(QP),并且可以通过调整QP进行修改。QP可以指示量化期间输入帧420(v)的量化步长,并且可以控制量化后从所捕获的图像中保留多少空间细节。在一些示例中,编码器450包括熵编码器,在一些情况下其在变换编码和/或量化之后执行熵编码。熵编码包括,例如,上下文自适应二进制算术编码(CABAC)、算术编码、哥伦布编码、哈夫曼编码、范围编码、香农编码、香农-法诺编码、香农-法诺-埃利亚斯编码、屯斯托尔编码、一元编码、通用编码或其组合。
在一些示例中,解码器455包括对经编码的帧数据485(ve)和/或其块执行逆量化的逆量化器。在一些示例中,解码器455包括逆变换编码器,其对经编码的帧数据485(ve)和/或其块执行逆变换,在一些情况下其在逆量化之后执行逆变换。
在一些示例中,编解码器***495A的自动编码器460可以被分为两个或多个自动编码器。在一个示例中,编解码器***495A的自动编码器460可以包括第一自动编码器和第二自动编码器。第一自动编码器接收MS光流430(fMS),并且输出经重构的MS光流第一自动编码器的编码器可以输出经编码的帧数据485(ve)的第一部分。第二自动编码器接收残差440(r),并输出经重构的残差/>第二自动编码器的编码器可以输出经编码的帧数据485(ve)的第二部分。
图4B是示出了使用多尺度(MS)MS光流和MS扭曲对视频数据的帧间编码帧进行编码和解码的概念图490。图中所示的编解码器***495B具有WarpMS引擎410B、WarpMS引擎410C、OptFlowMS引擎425和自动编码器460。图4B的编解码器***495B类似于图4A的编解码器***495A,但包括WarpMS引擎410B和WarpMS引擎410C,来代替图4A的编解码器***495A的WarpMS引擎410A。
编解码器***495B的WarpMS引擎410C可以接收参考帧和MS光流430(fMS)。编解码器***495B的WarpMS引擎410C可以通过根据光流430(fMS)中的运动向量扭曲参考帧/>来生成预测帧/>预测帧/>)表示基于光流430(fMS)对输入帧420(v)进行预测。图4B的预测帧/>可能与图4A的预测帧/>不同,因为图4B的预测帧/>是使用光流430(fMS)生成的,而图4A中的预测帧/>是使用经重构的MS光流/>生成的。WarpMS引擎410C可以将预测帧/>传递给编解码器***495B的减法器465。编解码器***495B的减法器465可以接收预测帧/>和输入帧420(v)。编解码器***495B的减法器465可以通过从输入帧420(v)中减去预测帧来生成残差440(r),反之亦然。由于图4B的预测帧/>可能不同于图4A的预测帧/>因此图4B的残差440(r)也可能不同于图4A的残差440(r)。图5举例说明了编解码器***495B的WarpMS引擎410C基于MS光流430(fMS)对参考帧/>进行扭曲来生成预测帧/>
编解码器***495B的WarpMS引擎410B可以接收参考帧和经重构的MS光流/>这与编解码器***495A的WarpMS引擎410A更加类似。编解码器***495B的WarpMS引擎410B可以通过基于经重构的MS光流/>中的运动向量扭曲参考帧来生成预测帧/>预测帧/>表示基于经重构的MS光流对输入帧420(v)的预测。预测帧/>可能不同于预测帧/>因为预测帧/>是使用经重构的MS光流/>生成的,而预测帧/>是使用光流430(fMS)生成的。WarpMS引擎410B可以将预测帧/>传递给编解码器***495B的加法器475。编解码器***495B的加法器475可以接收预测帧/>和经重构的残差编解码器***495B的加法器475可以通过将经重构的残差/>加到预测帧来生成经重构的输入帧/>反之亦然。经重构的输入帧/>是经编码的帧数据485(ve)的经重构和/或经解码版本,其试图尽可能接近地重构输入帧420(v)。图5举例说明了编解码器***495B的WarpMS引擎410B根据经重构的MS光流/>对参考帧进行扭曲以生成预测帧/>在一些示例中,可以使用WarpMS引擎410C代替WarpMS引擎410B,从而将预测帧/>(基于MS光流430fMS)发送到加法器475,而不是预测帧/>(基于经重构的MS光流/>)。
在一些示例中,编解码器***495B的自动编码器460可以被分为两个或多个自动编码器。在一个示例中,编解码器***495B的自动编码器460可以包括第一自动编码器和第二自动编码器。第一自动编码器接收MS光流430(fMS),并且输出经重构的MS光流第一自动编码器的编码器可以输出经编码的帧数据485(ve)的第一部分。第二自动编码器接收残差440(r),并且输出经重构的残差/>第二自动编码器的编码器可以输出经编码的帧数据485(ve)的第二部分。
图5是示出了使用参考帧505、光流515和差分索引加权图530的尺寸缩小变型生成预测帧565的概念图500。图5中所示的操作可以由编解码器设备的WarpMS引擎执行,诸如编解码器***495A的WarpMS引擎410A、编解码器***495B的WarpMS引擎410B、和/或编解码器***495B的WarpMS引擎410C。编解码器设备的WarpMS引擎接收参考帧作为输入。概念图500的左侧显示参考帧/>它可以是图4A和图4B的参考帧/>的示例。
编解码器设备的WarpMS引擎可以对参考帧执行一个或多个尺寸缩小510操作。在一些示例中,每个尺寸缩小510操作可以包括尺寸缩小、下采样、子采样、高斯平均、高斯模糊、高斯滤波或其组合。尺寸缩小510操作可以被重复执行,来生成图像金字塔、高斯金字塔、拉普拉斯金字塔、可转向金字塔或其组合。尺寸缩小510标签下示出了图像金字塔的示例。图像金字塔包括参考帧/>自身(或其副本),其被标记为参考帧的第0个尺度/>参考帧的第0个尺度/>的尺寸是参考帧/>的原始尺寸。图像金字塔包括参考帧/>的副本,其使用尺寸缩小510进行尺寸缩小,被标记为参考帧的第1个尺度/>图像金字塔包括参考帧的第1个尺度/>的副本,其使用尺寸缩小510进行尺寸缩小,被标记为参考帧的第2个尺度/>图像金字塔包括参考帧的第2个尺度的副本,其使用尺寸缩小510进行尺寸缩小,被标记为参考帧的第3个尺度/>在一个说明性示例中,每次尺寸缩小510都会将帧的尺寸减半。因此,参考帧的第1个尺度/>是参考帧/>原始尺寸的一半,参考帧的第2个尺度/>是参考帧原始尺寸的四分之一、参考帧第3个尺度/>的尺寸是参考帧/>原始尺寸的八分之一。参考帧的每个后续尺度具有比前一个尺度更粗的细节层次,这至少是因为每个后续的尺寸缩小510都会降低帧分辨率(通过减小帧的尺寸)。在一些情况下,参考帧的每个后续尺度具有比前一个尺度更粗的细节层次,还因为每个尺寸缩小510还使用高斯平均、高斯模糊和/或高斯滤波器对细节进行平滑。
编解码器设备的WarpMS引擎接收MS光流(fMS)和/或经重构的MS光流作为输入。MS光流(fMS)和/或经重构的MS光流/>中的任一个或两个都可以被称为图5中的MS光流(fMS)。因此,图5的MS光流(fMS)可以是图4A和/或图4B的MS光流430(fMS)和/或经重构的MS光流/>的示例。图5的MS光流(fMS)包括x和y维上的2D光流分量,被称为2D光流515(fxy)。图5的2D光流515(fxy)可以是图4A和/或图4B的MS光流430(fMS)的2D光流分量(fxy)和/或经重构的MS光流/>的经重构的2D光流分量/>的示例。图5的MS光流(fMS)包括z维上的加权图分量,其被称为加权图530(fz)。图5的加权图530(fz)可以是图4A和/或图4B的MS光流430(fMS)的加权图分量(fz)和/或经重构的MS光流/>的经重构的加权图分量的示例。
参考帧示出了赛马比赛,可以看到四名骑师,他们各自骑着一匹马。马匹和骑师位于前景,后面是背景。背景包括植物、建筑物、围栏、金属柱和天空。2D光流515(fxy)中与天空(背景的一部分)相对应的大片区域是白色的,这意味着与天空(背景的一部分)相对应的运动向量的幅度和/或移动方向为零。2D光流515(fxy)中的白色区域标有“白色”字样。2D光流515(fxy)包括特定的青色和红色区域,其饱和度和/或色度层次各不相同。2D光流515(fxy)中的部分青色区域标有“青色”文字。2D光流515(fxy)中的一些红色区域标有“红色”文字。使用这些颜色标签的目的是,尽管图5以单色显示,但仍能表达颜色。不同的饱和度和/或色度层次表示为不同的暗度层次,从而使得图5可以单色表示,图5中较暗的区域对应于2D光流515(fxy)中较高的饱和度和/或色度层次,图5中较亮的区域对应于2D光流515(fxy)中较低的饱和度和/或色度层次。
例如,2D光流515(fxy)中与参考帧中最左边的马和骑师相对应的区域一般为青色,不同部分的饱和度和/或色度层次不同。2D光流515(fxy)中的青色表示青色区域中像素的运动向量方向指向左侧。因此,相对于参考帧/>中最左边的马和骑师的位置,参考帧/>之后的后续帧中最左边的马和骑师正在向左移动。与参考帧中最右侧的马和骑师相对应的2D光流515(fxy)区域一般为红色,不同部分的饱和度和/或色度层次各不相同。2D光流515(fxy)中的红色表示青色区域中像素的运动向量方向指向右侧。因此,相对于参考帧/>中最右边的马和骑师的位置,参考帧之后的后续帧中最右边的马和骑师正在向右移动。从本质上讲,参考帧/>中最左边的马和骑师的位置更靠前,而参考帧/>中最右边的马和骑师的位置更靠后。2D光流515(fxy)中与参考帧/>中的植物、栅栏、建筑物和岗哨相对应的部分大部分为青色,并且具有红色斑点,不同部分的饱和度和/或色度层次各不相同。因此,相对于背景的这些部分在参考帧/>中的位置,在参考帧/>之后的后续帧中,背景的这些部分很可能大部分向左进行移动。相对于背景的这些部分在参考帧中的位置,红色斑块可能表示背景的特定部分在参考帧/>之后的后续帧中向右进行移动。
编解码器设备的WarpMS引擎可以对2D光流515(fxy)执行一个或多个尺寸缩小520操作。尺寸缩小520操作可以包括尺寸缩小、下采样、子采样、高斯平均、高斯模糊、高斯滤波或其组合。与尺寸缩小510操作一样,尺寸缩小520操作可以被重复执行,来生成图像金字塔、高斯金字塔、拉普拉斯金字塔、可转向金字塔或其组合。尺寸缩小520标签下展示了图像金字塔的示例。图像金字塔包括2D光流515(fxy)自身(或其副本),被标记为2D光流的第0个尺度fxy_0。2D光流的第0个尺度fxy_0的尺寸是2D光流515(fxy)的原始尺寸。图像金字塔包括2D光流515(fxy)的副本,该副本使用尺寸缩小520进行尺寸缩小,被标记为2D光流的第1个尺度fxy_1。图像金字塔包括2D光流的第1个尺度fxy_1的副本,其使用尺寸缩小520进行尺寸缩小,被标记为2D光流的第2个尺度fxy_2。图像金字塔包括2D光流第2个尺度fxy_2的副本,其使用尺寸缩小520进行尺寸缩小,被标记为2D光流的第3个尺度fxy_3。在一个说明性示例中,每次尺寸缩小520都会将光流的尺寸减半。因此,2D光流的第1个尺度fxy_1的尺寸是2D光流515(fxy)原始尺寸的一半,2D光流的第2个尺度fxy_2的尺寸是2D光流515(fxy)原始尺寸的四分之一,2D光流的第3个尺度fxy_3的尺寸是2D光流515(fxy)原始尺寸的八分之一。2D光流的每个后续尺度具有比前一个尺度更粗的细节层次,这至少是因为每个后续的尺寸缩小520都会降低帧分辨率(通过减小帧的尺寸)。在一些情况下,参考帧的每个后续尺度具有比前一个尺度更粗的细节层次,这也是因为每个尺寸缩小520还使用高斯平均、高斯模糊和/或高斯滤波器对细节进行平滑。
编解码器设备的WarpMS引擎还可以对2D光流515(fxy)执行一个或多个幅度调整525操作。幅度调整525操作可以在与相应的尺度减小520操作所降低的2D光流的尺度相同的尺度上,降低2D光流中运动向量的幅度。幅度调整525可以通过降低每个尺寸缩小2D光流的饱和度和/或色度来执行,降低的尺度与相应的尺寸缩小520操作所降低2D光流尺度的尺度相同。在说明性示例中,如果2D光流的第1个尺度fxy_1是2D光流515(fxy)原始尺寸的一半,那么与2D光流515(fxy)的饱和度和/或色度相比较,幅度调整525可以将2D光流的第1个尺度fxy_1中所有像素的饱和度和/或色度降低一半。由于较高的饱和度和/或色度在图5中被示出为较暗的图像区域,而较低的饱和度和/或色度在图5中被示出为较亮的图像区域,因此,2D光流的第1个尺度fxy_1总体上被示出为比2D光流的第0个尺度fxy_0更亮。例如,如果2D光流515(fxy)包括颜色饱和度很高的像素,其指示运动向量幅度为4像素,那么2D光流的第1个尺度fxy_1中的相应像素的饱和度将降低一半,其指示运动向量幅度为2像素。此外,如果2D光流的第2个尺度fxy_2是2D光流第1个尺度fxy_1的一半,则与2D光流的第1个尺度fxy_1的饱和度和/或色度相比较,幅度调整525可以将2D光流的第2个尺度fxy_2中所有像素的饱和度和/或色度降低一半。在图5中,2D光流的第2个尺度fxy_2总体上比2D光流的第1个尺度fxy_1更亮。如果2D光流的第3个尺度fxy_3是2D光流的第2个尺度fxy_2的一半,则与2D光流的第2个尺度fxy_2的饱和度和/或色度相比较,幅度调整525可以将2D光流的第3个尺度fxy_3中所有像素的饱和度和/或色度降低一半。在图5中,2D光流的第3个尺度fxy_3被示出为比2D光流的第2个尺度fxy_2更亮。通过幅度调整525操作,可以按照缩小尺度的2D光流对缩小尺度的参考帧进行扭曲,缩小尺度的参考帧和缩小尺度的2D光流都具有适当的运动向量幅度。
加权图530(fz)识别2D光流515(fxy)的光流估计中确定性到不确定性(和/或反之亦然)的尺度。参考帧和/或2D光流515(fxy)中的不同像素可以对应于加权图530(fz)中预定范围内的不同权重值(例如,包括从零到一在内的值)。在图5的加权图530(fz)中,与黑色相对应的权重值为0,与白色相对应权重值为1,与黑白之间的灰色阴影相对应的权重值在0和1之间。在图5中,加权图中较低的权重值(例如,低于预定权重阈值)对应于光流估计中较高的确定性程度(例如,高于预定确定性程度阈值)和/或光流估计中较低的不确定性程度(例如,低于预定不确定性程度阈值)。在图5中,加权图中较高的权重值(例如,高于预定权重阈值)对应于光流估计中较低的确定性程度(例如,低于预定确定性程度阈值)和/或光流估计中较高的不确定性程度(例如,高于预定不确定性程度阈值)。例如,图5的加权图530(fz)中与参考帧/>中的马匹和骑师相对应的区域一般比图5的加权图530(fz)中与参考帧/>中的背景相对应的区域更暗,这表明马匹和骑师的移动一般比背景的移动确定性更高。在一些示例中,权重值与确定性值和/或不确定性值的关系可能相反。在一些示例中,加权图可以使用权重值与灰色阴影之间的相反关系,即与白色相对应的权重值为1,与黑色相对应的权重值为0。
编解码器设备的WarpMS引擎可以对加权图530(fz)执行差分索引535,以生成多个差分索引的加权图。多个差分索引的加权图可以相应基于加权图530(fz)内不同的值范围。差分索引535操作可以将加权图530(fz)中的每个值范围映射到相应的差分索引加权图中的零到一范围。例如,差分索引535操作可以将加权图530(fz)中权重值介于0和0.25之间的所有像素映射到相应的差分索引加权图fz_0中的零到一的范围内。差分索引535操作可以将加权图530(fz)中权重值介于0.25和0.50之间的所有像素映射到相应的差分索引加权图fz_1中的零到一范围。差分索引535操作可以将加权图530(fz)中权重值介于0.50和0.75之间的所有像素映射到相应的差分索引加权图fz_2中的零到一范围。差分索引535操作可以将加权图530(fz)中权重值介于0.75和1.00之间的所有像素映射到相应的差分索引加权图fz_3中的零到一的范围内。差分索引535的示例如图6所示。差分索引535可以生成与参考帧的尺寸缩小510图像金字塔中的尺度和/或2D光流515(fxy)的尺寸缩小520图像金字塔中的尺度一样多的差分索引加权图。例如,在图5中,参考帧/>的尺寸缩小510图像金字塔和2D光流515(fxy)的尺寸缩小520图像金字塔中有四个尺度。因此,差分索引535会基于加权图530(fz)中四个不同范围的权重值生成四个差分索引的加权图。
编解码器设备的WarpMS引擎可以对至少差分索引的加权图子集执行一个或多个尺寸缩小540操作。尺寸缩小540操作可以将特定差分索引加权图尺寸缩小至尺寸缩小参考帧之一的尺寸和/或尺寸缩小2D光流之一的尺寸。例如,在图5中,在尺寸缩小510图像金字塔中,参考帧有三个尺寸缩小的变型,在尺寸缩小520图像金字塔中,2D光流515(fxy)有三个尺寸缩小的变型。因此,在尺寸缩小540操作过程中,三个差分索引的加权图被尺寸缩小,来匹配参考帧/>的三个各自尺寸缩小的变型和2D光流515(fxy)的三个尺寸缩小的变型的尺寸。尺寸缩小540操作可以包括尺寸缩小、下采样、子采样、高斯平均、高斯模糊、高斯滤波或其组合。
编解码器设备的WarpMS引擎针对参考帧2D光流515(fxy)和加权图530(fz)的每个尺度i执行扭曲操作550。WarpMS引擎根据公式/> 对每个尺度i执行扭曲操作550。在这个公式中,warp2D()表示基于光流的2D扭曲操作。例如,根据公式/>在第0个尺度上进行扭曲,生成第0个尺度上的扭曲帧。基于公式/> 在第1个尺度上进行扭曲,生成第1个尺度上的扭曲帧。根据公式/>在第2个尺度上进行扭曲,生成第2个尺度上的扭曲帧。根据公式/>在第3个尺度上进行扭曲,生成第3个尺度上的扭曲帧。
编解码器设备的WarpMS引擎对高于第0个尺度的所有扭曲帧执行尺寸放大555操作,来使其达到第0个尺度的扭曲帧的尺寸(例如,达到参考帧505的尺寸)。尺寸放大555操作可以被称为逆金字塔。
编解码器设备的WarpMS引擎在尺寸放大555操作期间(对于大于0的缩放)尺寸放大之后,对在尺寸放大操作550期间生成的所有尺寸放大的帧执行求和560操作。求和560运算生成预测帧图5的预测帧/>可以是图4A的预测帧/>和/或图4B的预测帧/>的示例。
由于差分索引加权图的乘数效应,具有高确定性(因此加权图530中的权重值较低)的2D扭曲操作在更精尺度(例如图5中的第0个和第1个)上被给定高乘数,而在更粗尺度(例如图5中的第2个和第3个)上被给定低乘数。另一方面,具有低确定性(因此在加权图530fz中具有高权重值)的2D扭曲操作在更粗尺度(例如图5中的第2个和第3个)上被给定高乘数,而在更精尺度(例如图5中的第0个和第1个)上被给定低乘数。
图6是示出了加权图630的差分索引640的概念图600。图6的加权图630(fz)可以是图5的加权图530(fz)。加权图630(fz)被生成为图像,其包括介于0到1之间的值(该范围可以是包括范围,也可以是排他范围),每个值在图6中被示出为从白到黑(在一些示例中,包括白色和/或黑色)的灰色范围中所选择的灰色阴影。在图6的示例性加权图630(fz)中,与黑色相对应的权重值为0,与白色相对应的权重值为1,与介于黑色和白色之间的灰色阴影相对应的权重值介于0和1之间。在一些示例中,加权图可以使用权重值与灰色阴影之间的相反关系,即与白色相对应的权重值为1,与黑色相对应的权重值为0。
基于加权图630(fz),使用差分索引640生成四个差分索引加权图650A-650D。加权图630(fz)中从0到0.25的所有值都映射到最精(第0个)尺度加权图650A(fz_0)中0到1的范围。加权图630(fz)中从0.25到0.5的所有值都映射到最精(第1个)尺度加权图650B(fz_1)中0到1的范围内。加权图630(fz)中所有范围为0.5至0.75的值都被映射到粗(第2个)尺度加权图650C(fz_2)中0至1的范围内。加权图630(fz)中从0.5到0.75的所有值都被映射到最粗(第3个)尺度加权图650D(fz_3)中0到1的范围内。在图6的差分索引加权图650A-650D中,与黑色相对应的差分索引权重值为0,与白色相对应的差分索引权重值为1,与黑白之间的灰色阴影相对应的差分索引权重值介于0和1之间。在一些示例中,差分索引加权图650A-650D可以使用差分索引权重值与灰色阴影之间的相反关系,与白色相对应的差分索引权重值为1,与黑色相对应差分索引权重值为0。
在一些示例中,小于与差分索引加权图650A-650D中的特定加权图对应的范围的加权图630(fz)中的值被给定差分索引加权图650A-650D中的该加权图的值零。例如,在差分索引加权图650B中,低于0.25的值可以被给定值零。在一些示例中,大于与差分索引加权图650A-650D中的特定加权图对应的范围的加权图630(fz)中的值被给定差分索引加权图650A-650D中的该加权图的值零。例如,在差分索引加权图650B中,低于0.50的值可以被给定值零。在一些示例中,大于与差分索引加权图650A-650D中的特定加权图对应的范围的加权图630(fz)中的值被给定差分索引加权图650A-650D中的该加权图的值一。例如,在差分索引加权图650B中,低于0.50的值可以被给定值一。在一些示例中,特定像素位置在所有四个差分索引加权图650A-650D中的差分索引权重值之和为1。例如,对特定的像素位置,在最精(第0个)尺度的加权图650A(fz_0)中的该像素位置的差分索引权重值、在精(第1个)尺度的加权图650B(fz_1)中的该像素位置的差分索引权重值,在粗(第2个)尺度的加权图650C(fz_2)中该像素位置的差分索引权重值,以及最粗(第3个)尺度的加权图650D(fz_3)中该像素位置的差分索引权重值的求和为1。
应该理解的是,图6范围中的任何小于或等于运算符(“≤”)都可以用小于运算符(“<”)来代替。应该理解的是,图6范围中的任何小于运算符(“<”)都可以用小于或等于运算符(“≤”)来代替。例如,最精(第0个)尺度的加权图650A(fz_0)的范围在图6中被写作为0≤px<0.25,但根据一些示例,可以是0≤px≤0.25、0<px≤0.25或0<px<0.25。精(第1个)尺度的加权图650B(fz_1)的范围在图6中被写作为0.25≤px<0.50,但根据一些示例,可以是0.25≤px≤0.50、0.25<px≤0.50或0.25<px<0.50。粗(第2个)尺度的加权图650C(fz_2)的范围在图6中被写作为0.50≤px<0.75,但根据一些示例,可以是0.50≤px≤0.75、0.50<px≤0.75或0.50<px<0.75。在图6中,最粗(第3个)尺度的加权图650D(fz_3)的范围被写作为0.75≤px<1.00,但根据一些示例,可以是0.75≤px≤1.00、0.75<px≤1.00或0.75<px<1.00。在一些示例中,差分索引640可以生成少于四个差分索引加权图(例如,2或3个差分索引加权图)。在一些示例中,差分索引640可以生成四个以上的差分索引加权图(例如,5、6、7、8、9、10、11、12、13、14、15或15个以上的差分索引加权图)。
图7A示出了根据一些实施例的用于加权图630的差分索引640的尺度权重分布图700A。尺度权重分布图700A包括表示原始加权图630(fz)中像素值730的横轴,范围从0到1。尺度权重分布图700包括表示四个差分索引加权图650A-650D中像素值735的纵轴。第一条曲线710表示最精(第0个)尺度的加权图650A(fz_0)。第二条曲线715表示精(第1个)尺度的加权图650B(fz_1)。第三条曲线720表示粗(第2个)尺度的加权图650C(fz_2)。第四条曲线725表示最粗的(第三级)尺度加权图650D(fz_3)。根据一些示例,尺度权重分布图700识别原始加权图630(fz)的不同权重值范围如何映射到四个差分索引的加权图650A-650D。
图7B示出了根据一些示例的加权图630的差分索引640的尺度权重分布图700B。与尺度权重分布图700A一样,尺度权重分布图700B包括表示原始加权图630(fz)中像素值730的横轴和表示四个差分索引加权图650A-650D中像素值735的纵轴。第一条曲线710表示最精(第0个)尺度的加权图650A(fz_0)。第二条曲线715表示精(第1个)尺度的加权图650B(fz_1)。第三条曲线720表示粗(第2个)尺度的加权图650C(fz_2)。第四条曲线725表示最粗的(第三级)尺度加权图650D(fz_3)。根据一些示例,尺度权重分布图700可以识别原始加权图630(fz)的不同权重值范围如何映射到四个差分索引的加权图650A-650D。
图8是根据一些示例示出了神经网络800的示例的框图。如上所述,本公开的各个方面可以使用智能引擎来执行。智能引擎可以包括例如一个或多个人工智能算法、使用输入到一个或多个机器学习算法中的训练数据训练的一个或多个机器学习模型、一个或多个神经网络或其组合。图8中的神经网络800可以被用于实施编码设备104、解码设备112、编解码器***295、自动编码器260、编码器250、解码器255、编解码器***395A、编解码器***395B、自动编码器360、编码器350、解码器355、OptFlow2D引擎325、Warp2D引擎310A、Warp2D引擎310B、Warp2D引擎310C、编解码器***495A、编解码器***495B、自动编码器460、编码器450、解码器455、OptFlowMS引擎425、WarpMS引擎410A、WarpMS引擎410B、WarpMS引擎410C、卷积神经网络(CNN)900、多尺度扭曲引擎1000A、多尺度扭曲引擎1000B、图11A所述的编解码器设备、图11B所述的编解码器设备、计算***1200或其组合。图8的神经网络800可以被用于实施本文所述的由上述任一设备执行的任何操作,例如生成2D光流、生成MS光流、生成加权图、2D扭曲、MS扭曲、编码、解码、生成预测帧或其组合。
输入层820包括输入数据。在一个说明性示例中,输入层820可以包括表示由一个或多个相机210之一所捕获的输入图像的像素的数据。图像可以是视频帧。神经网络800包括多个隐藏层822a、822b至822n。隐藏层822a、822b至822n包括“n”个隐藏层,其中“n”是大于或等于1的整数。隐藏层的数量可以根据给定应用的需要而定。神经网络800还包括输出层824,该层提供由隐藏层822a、822b至822n所执行的处理所生成的输出。在一个说明性示例中,输出层824可以为输入视频帧中的对象提供光流和/或加权图。在一个说明性示例中,输出层824可以提供输入视频帧的经编码的版本。
神经网络800是由互连节点组成的多层神经网络。每个节点可以代表一段信息。与节点相关联的信息在不同层之间共享,并且每一层在处理信息时保留信息。在一些情况下,神经网络800可以包括前馈网络,在这种情况下,没有反馈连接,使得网络的输出反馈到自身。在一些情况下,神经网络800可以包括递归神经网络,其具有允许信息在输入中读取的同时被带过节点的循环。
信息可以通过各层之间节点对节点的互连在节点之间交换。输入层820的节点可以激活第一隐藏层822a中的一组节点。例如,如图所示,输入层820的每个输入节点都与第一隐藏层822a的每个节点相连接。第一隐藏层822a的节点可以通过对输入节点信息应用激活函数来变换每个输入节点的信息。然后,变换得出的信息可以被传递给下一个隐藏层822b的节点,并且激活这些节点,这些节点可以执行自己指定的函数。示例函数包括卷积、上采样、数据变换和/或任何其他合适的函数。然后,隐藏层822b的输出可以激活下一个隐藏层的节点,依此类推。最后一个隐藏层822n的输出可以激活输出层824的一个或多个节点,并且提供输出。在一些情况下,虽然神经网络800中的节点(例如节点826)被显示为具有多条输出线,但节点只有单一输出,所有显示为从节点输出的线都代表相同的输出值。
在一些情况下,每个节点或节点之间的互连可以具有一个权重,该权重是由神经网络800的训练得出的一组参数。一旦神经网络800经过训练,就可以将其称为经训练的神经网络,该神经网络可以被用于生成2D光流、生成MS光流、生成加权图、基于2D光流的2D扭曲帧、基于MS光流的MS扭曲帧、编码数据、解码数据、生成预测帧或其组合。例如,节点之间的互连可以表示了解到的关于互连节点的信息。该互连可以具有可调整的数字权重(例如,基于训练数据集),从而使神经网络800能够适应输入,并且能够在处理越来越多的数据时进行学习。
神经网络800经过预训练,使用不同的隐藏层822a、822b至822n处理来自输入层820中数据的特征,以便通过输出层824提供输出。在神经网络800被用于识别图像中对象的示例中,可以使用包括图像和标签的训练数据二者来训练神经网络800。例如,可以将训练图像输入网络,其中每个训练图像都有标签,该标签指示每个图像中一个或多个对象的类别(基本上,向网络指示该对象是什么以及它们具有什么特征)。在一个说明性示例中,训练图像可以包括数字2的图像,在这种情况下,图像的标签可以是[0 0 1 0 0 0 0 0 00]。
在一些情况下,神经网络800可以使用被称为反向传播的训练过程来调整节点的权重。反向传播可以包括前向传递、损失函数、后向传递和权重更新。前向传递、损失函数、后向传递和参数更新执行一次训练迭代。该过程可以对于每组训练图像重复一定次数的迭代,直到神经网络800被训练得足够好,从而可以准确地调整各层的权重。
对于识别图像中对象的示例,前向传递可以包括通过神经网络800传递训练图像。在训练神经网络800之前,权重最初是随机的。例如,图像可以包括表示图像像素的数字阵列。阵列中的每个数字可以包括从0到255的值,其描述了阵列中该位置的像素强度。在一个示例中,该阵列可以包括28x28x3的数字阵列,其中有28行28列像素和3种颜色分量(诸如红、绿、蓝,或亮度和两个色度分量,或类似分量)。
对于神经网络800的第一次训练迭代,由于权重是在初始化时被随机选择的,因此输出很可能包括不偏向于任何特定类别的值。例如,如果输出是具有对象包括不同类别的概率的向量,则每个不同类别的概率值可能相等或至少非常相似(例如,对于十个可能的类别,每个类别的概率值可能为0.1)。有了初始权重,神经网络800就无法确定低级特征,因此也就无法做出准确的判断(例如,帧的特定区域的光流或权重映射)。损失函数可以被使用来分析输出中的误差。任何合适的损失函数定义都可以被使用。损失函数的一个示例包括均方误差(MSE)。MSE被定义为其计算实际答案的二分之一减去预测(输出)答案平方的求和。该损失可以被设置为等于Etotal的值。
由于实际值与预测输出值相差很大,因此第一批训练图像的损失(或误差)会很高。训练的目标是使损失量最小化,从而使预测输出与训练标签相同。神经网络800可以通过确定哪些输入(权重)对网络损失的影响最大来执行后向传递,并且调整权重,从而使损失减少并且最终被最小化。
可以计算损失相对于权重的导数(被表示为dL/dW,其中W为特定层的权重),来确定对网络损失影响最大的权重。计算导数后,可以通过更新滤波器的所有权重来执行权重更新。例如,权重可以被更新,使其变化方向与梯度相反。权重更新可以被表示为其中w表示权重,wi表示初始权重,η表示学习率。学习率可以被设置为任何合适的值,其中高学习率包括较大的权重更新,而低值表示较小的权重更新。
神经网络800可以包括任何合适的深度网络。一个示例包括卷积神经网络(CNN),其包括输入层和输出层,在输入层和输出层之间有多个隐藏层。CNN的隐藏层包括一系列卷积层、非线性层、池化层(用于下采样)和全连接层。神经网络800可以包括除CNN以外的任何其他深度网络,诸如自动编码器、深度信念网络(DBN)、递归神经网络(RNN)等。
图9是示出了根据一些示例的卷积神经网络(CNN)900的示例的框图。CNN 900的输入层920包括表示图像的数据,诸如由一个或多个相机210中的一个所捕获的图像。例如,该数据可以包括表示图像像素的数字阵列,其中阵列中的每个数字包括从0到255的值,该值描述了阵列中该位置的像素强度。使用上面的示例,该阵列可以包括28x28x3的数字阵列,其中有28行28列像素和3种颜色分量(例如,红色、绿色和蓝色,或亮度和两个色度分量,或类似分量)。图像可以被传递通过卷积隐藏层922a、可选的非线性激活层、池化隐藏层922b和全连接隐藏层922c,从而在输出层924获得输出。虽然图9中只显示了每个隐藏层中的一个,但本领域的技术人员可以理解,CNN 900中可以包括多个卷积隐藏层、非线性层、池化隐藏层和/或全连接层。如前所述,输出可以生成2D光流,生成MS光流,生成加权图,基于2D光流对帧进行2D扭曲,基于MS光流对帧进行MS扭曲,编码数据,解码数据,生成预测帧或其组合。
CNN 900的第一层是卷积隐藏层922a。卷积隐藏层922a分析输入层920的图像数据。卷积隐藏层922a的每个节点都与输入图像的节点(像素)区域相连接,该区域被称为感受域。卷积隐藏层922a可以被视为一个或多个滤波器(每个滤波器对应于不同的激活或特征图),其中滤波器的每个卷积迭代是卷积隐藏层922a的一个节点或神经元。例如,滤波器在每次卷积迭代中覆盖的输入图像区域就是滤波器的感受域。在一个说明性示例中,如果输入图像包括28×28阵列,并且每个滤波器(和相应的感受域)是5×5阵列,那么卷积隐藏层922a中将有24×24个节点。节点与该节点感受域之间的每个连接都会学习权重,在一些情况下还会学习整体偏置,从而使每个节点学习分析输入图像中特定的局部感受域。隐藏层922a的每个节点都具有相同的权重和偏置(其被称为共享权重和共享偏置)。例如,滤波器有权重(数字)阵列,并且其深度与输入相同。对于视频帧示例,滤波器将具有为3的深度(根据输入图像的三个颜色分量)。滤波器阵列的说明性示例尺寸为5x5x3,对应于节点感受域的尺寸。
卷积隐藏层922a的卷积性质是由于卷积层的每个节点都被应用于其相应的感受域。例如,卷积隐藏层922a的滤波器可以从输入图像阵列的左上角开始,围绕输入图像进行卷积。如上所述,滤波器的每次卷积迭代可以被视为卷积隐藏层922a的节点或神经元。在每次卷积迭代中,滤波器的值与相应数量的图像原始像素值相乘(例如,5x5滤波器阵列与输入图像阵列左上角的5x5输入像素值阵列相乘)。每个卷积迭代的乘积可以被相加,来得出该迭代或节点的求和。接下来,根据卷积隐藏层922a中下一个节点的感受域,在输入图像的下一个位置继续这一过程。例如,滤波器可以按步长量(被称为步距)被移动到下一个感受域。该步距可以被设置为1或其他合适的量。例如,如果步距被设置为1,滤波器将在每次卷积迭代时向右移动1个像素。在输入体积的每个唯一位置处理滤波器时,会生成一个代表该位置滤波器结果的数字,从而为卷积隐藏层922a的每个节点确定总求和值。
从输入层到卷积隐藏层922a的映射被称为激活图(或特征图)。激活图包括每个节点的值,其代表了输入体积在每个位置的滤波结果。激活图可以包括阵列,该阵列包括输入体积上滤波器每次迭代生成的各种求和值。例如,如果对28x28输入图像的每个像素(步距为1)应用5x5滤波器,激活图将包括24x24阵列。卷积隐藏层922a可以包括多个激活图,以便识别图像中的多个特征。图9中所示的示例包括三个激活图。使用三个激活图,卷积隐藏层922a可以检测三种不同的特征,每个特征都可以在整个图像中被检测到。
在一些示例中,可以在卷积隐藏层922a之后应用非线性隐藏层。非线性层可以被用于向一直在计算线性运算的***引入非线性。非线性层的一个示例是整流线性单元(ReLU)层。ReLU层可以将函数f(x)=max(0,x)应用于输入体积中的所有值,从而将所有负激活变为0。ReLU因此可以增加CNN 900的非线性特性,而不会影响卷积隐藏层922a的感受域。
池化隐藏层922b可以在卷积隐藏层922a之后被应用(如果使用非线性隐藏层,则在非线性隐藏层之后被应用)。池化隐藏层922b被用于简化来自卷积隐藏层922a输出中的信息。例如,池化隐藏层922b可以获取卷积隐藏层922a输出的每个激活图,并且使用池化函数生成压缩后的激活图(或特征图)。最大池化是由池化隐藏层所执行函数的示例。池化隐藏层922a还可以使用其他形式的池化函数,诸如平均池化、L2-norm池化或其他合适的池化函数。池化函数(例如,最大池化滤波器、L2-norm滤波器或其他合适的池化滤波器)被应用于卷积隐藏层922a中包括的每个激活图。在图9所示的示例中,对卷积隐藏层922a中的三个激活图使用了三个池化滤波器。
在一些示例中,可以通过对卷积隐藏层922a输出的激活图应用具有步距(例如等于滤波器的维度,如步距为2)的最大池化滤波器(例如尺寸为2x2)来使用最大池化。最大池化滤波器的输出包括滤波器卷积的每个子区域中的最大数字。以2×2滤波器为例,池化层中的每个单元可以概括上一层中2×2节点的区域(其中每个节点是激活图中的值)。例如,激活图中的四个值(节点)将由2×2最大池化滤波器在每次迭代时进行分析,其中四个值中的最大值将作为“最大”值被输出。如果将这种最大池化滤波器应用于来自卷积隐藏层922a的激活滤波器,并且其具有为24x24节点的维度,则池化隐藏层922b的输出将是12x12节点的阵列。
在一些示例中,还可以使用L2-norm池化滤波器。L2-norm池化滤波器包括计算激活图的2×2区域(或其他合适区域)中值的平方和的平方根(而不是像最大池化那样计算最大值),并且将计算值用作输出。
直观地说,池化函数(例如,最大池化、L2-norm池化或其他池化函数)确定给定的特征是否在图像区域的任何地方被发现,并且忽略确切的位置信息。这样做不会影响特征检测的结果,因为一旦特征被发现,该特征的准确位置并不重要,重要的是它相对于其他特征的大致位置。最大池化(以及其他池化方法)的好处是,池化特征的数量会减少很多,从而减少CNN 900后几层所需要的参数数量。
网络中的最后一层连接层是全连接层,其将每个节点从池化隐藏层922b连接到输出层924中的每个输出节点。使用上述示例,输入层包括28x28个节点,其对输入图像的像素强度进行编码;卷积隐藏层922a包括3×24×24个隐藏特征节点,其基于对三个激活图应用5×5局部感受域(用于滤波器);池化隐藏层922b包括3×12×12个隐藏特征节点,其基于对三个特征图中每个特征图的2×2区域应用最大池化滤波器。延伸这个示例,输出层924可以包括10个输出节点。在此示例中,3x12x12池化隐藏层922b的每个节点与输出层924的每个节点相连接。
全连接层922c可以获取前一个池化隐藏层922b的输出(应被表示为高级特征的激活图),并且确定与特定类别相关性最强的特征。例如,全连接层922c层可以确定与特定类别相关性最强的高级特征,并且可以包括高级特征的权重(节点)。可以计算全连接层922c的权重与池化隐藏层922b的权重之间的乘积,来获得不同类别的概率。例如,如果CNN 900被用于生成光流,则激活图中会出现高值,这些高值表示视觉元素从一帧到另一帧的运动的高级特征。
在一些示例中,输出层924的输出可以包括M维向量(在先前示例中,M=10),其中M可以包括与光流中可能的运动向量方向、光流中可能的运动向量幅度、加权图中可能的权重值等相对应的数据。在一个说明性示例中,如果表示十种不同可能值的9维输出向量为[00 0.05 0.8 0 0.15 0 0 0 0],则该向量指示第三个值的概率为5%,第四个值的概率为80%,第六个值的概率为15%。可能的值的概率可以被视为该值(例如,该运动向量方向、该运动向量幅度、该权重值等)的置信度或确定性程度。
图10A是说明了多尺度扭曲引擎1000A的概念图,其基于一个或多个经训练的神经网络使用一个或多个自动编码器在特征域中扭曲参考帧1005。与时间t(vt)的输入帧1010和时间t-1(vt12)的参考帧1005相对应的数据被输入到由编码器1020和解码器1025组成的自动编码器1015中。与输入帧1010(vt)和参考帧1005(vt-1)相对应的数据可以包括指示从时间t-1到时间t的移动的MS光流(ft)(未画出)和相应的残差(rt)(未画出)。自动编码器1015可以输出经重构的光流和经重构的残差/>
参考帧1005(vt-1)通过第一自动编码器(由一系列块表示,其中每个块代表CNN900中的层集)。经重构的光流通过第二自动编码器(由一系列块表示,其中每个块分别代表第二个CNN 900中的层集)。第一自动编码器可以包括扭曲块,其中在特征空间中执行扭曲。使用第二自动编码器变换到特征空间中的经重构的光流/>可以被用于对已经被第一自动编码器变换到特征空间中的参考帧1005(vt-1)执行扭曲。第一自动编码器可以在时间t生成预测帧/>其可以是对于输入帧1010(vt)的预测。预测帧/>和经重构的残差/>可以通过加法器1050被相加,来生成经重构的输入帧/>经重构的输入帧/>可以是输入帧1010(vt)的经重构的版本。预测帧/>也可以通过减法器(未画出)从输入帧1010(vt)中被减去,来生成残差(rt)。
图10B是示出了多尺度扭曲引擎1000B的概念图,该引擎在特征域中扭曲参考帧1005,并且基于一个或多个经训练的神经网络使用一个或多个自动编码器在特征域中执行残差补偿。多尺度扭曲引擎1000B类似于多尺度扭曲引擎1000A,但包括经重构的残差通过的第三自动编码器。第一自动编码器的扭曲块接收经重构的残差/>的特征集的版本,因此第一自动编码器能够在特征空间中生成经重构的残差/>
多尺度扭曲引擎1000A可以是图4A的编解码器***495A和/或图4B的编解码器***495B的示例。多尺度扭曲引擎1000B是图4A的编解码器***495A和/或图4B的编解码器***495B的示例。
图11A是示出了根据一些示例的数据编码过程1100A的示例的流程图。图11A的流程图所示的过程1100A可以由编解码器设备执行。编解码器设备可以是或可以包括编码设备104、解码设备112、视频源102、视频目的设备122、编解码器***295、自动编码器260、编码器250、解码器255、编解码器***395A、编解码器***395B、自动编码器360、编码器350、解码器355、OptFlow2D引擎325、Warp2D引擎310A、Warp2D引擎310B、Warp2D引擎310C、编解码器***495A、编解码器***495B、自动编码器460、编码器450、解码器455、OptFlowMS引擎425、WarpMS引擎410A、WarpMS引擎410B、WarpMS引擎410C、神经网络(NN)800、卷积神经网络(CNN)900、多尺度扭曲引擎1000A、多尺度扭曲引擎1000B、图像捕获设备、视频捕获设备、图像处理设备、视频处理设备、图像捕获和处理设备、视频捕获和处理设备、相机、移动手机、可穿戴设备、头戴式显示(HMD)设备、车辆、云服务的一个或多个网络服务器、计算***1200、本文讨论的其他类型的***或设备、或它们的特定组合。
在操作1105处,编解码器设备接收包括在第一时间描述场景的输入帧和在第二时间描述场景的参考帧的视频数据。例如,编解码器设备可以从视频源102处接收视频数据,诸如相机、图像捕获设备、图像处理设备或其组合。操作1105的输入帧的示例包括输入帧220(v)、输入帧320(v)、输入帧420(v)、时间t的输入帧1010(vt)、本文所述的其他输入帧或其组合。操作1105的参考帧的示例包括参考帧参考帧/>参考帧时间t-1时的参考帧1005(vt-1)、本文所述的其他参考帧或其组合。
在一些示例中,第一时间在第二时间之后。例如,10A-10B中的时间t是第一时间的示例。图10A-10B中的时间t-1是第二时间的示例。在一些示例中,第一时间在第二时间之前。在一些示例中,第一时间与第二时间同时(例如,如果输入帧和参考帧是使用不同的相机和/或不同的图像传感器所捕获的)。
在一些示例中,参考帧被编码为编码视频数据中的帧内编码帧。在一些示例中,输入帧被编码为编码视频数据中的帧内编码帧。例如,在图2中,输入帧被编码为帧内编码帧。在一些示例中,输入帧在编码视频数据中被编码为帧间编码帧。例如,在图3A-3B、图4A-4B和图10A-10B中,输入帧被编码为帧间编码帧。
在操作1110,编解码器设备基于输入帧和参考帧生成光流。光流识别参考帧和输入帧之间的场景的一个或多个区域中的一个或多个移动。操作1110的光流示例包括2D光流330(f2D)、经重构的2D光流MS光流430的2D光流分量(fMS)、经重构的MS光流435的2D光流分量/>2D光流515(fxy)、经重构的光流/>(和/或其2D光流分量)、本文讨论的其他类型的光流或其组合。编解码器设备可以对光流进行尺寸缩小,例如使用尺寸缩小520。编解码器设备可以调整光流中的幅度,例如使用幅度调整525。
在一些示例中,编解码器设备使用一个或多个经训练的神经网络基于输入帧和参考帧来生成光流。例如,编解码器设备可以使用编码设备104的一个或多个经训练的NN、解码设备112的一个或多个经训练的NN、自动编码器260的一个或多个经训练的NN、编码器250的一个或多个经训练的NN、解码器255的一个或多个经训练的NN、OptFlow2D引擎325的一个或多个经训练的NN、自动编码器360的一个或多个经训练的NN、编码器350的一个或多个经训练的NN、解码器355的一个或多个经训练的NN、OptFlowMS引擎425的一个或多个经训练的NN、自动编码器460的一个或多个经训练的NN、编码器450的一个或多个经训练的NN、解码器455的一个或多个经训练的NN、NN 800的一个或多个、CNN 900的一个或多个、多尺度扭曲引擎1000A的一个或多个NN、多尺度扭曲引擎1000B的一个或多个NN、本文讨论的其他NN或其组合中的一个或多个,来生成光流。
在一些示例中,操作1110的光流是2D光流,诸如2D光流330(f2D)、经重构的2D光流MS光流430的2D光流分量(fMS)、经重构的MS光流435的2D光流分量/>2D光流515(fxy)、经重构的光流/>(和/或其2D光流分量)、本文讨论的其他类型的光流或其组合。光流识别的一个或多个移动可以是沿着具有两个垂直维度的平面的移动。两个垂直维度可以是垂直维度(y)和水平维度(x)。在一些方面,光流可以识别输入帧中每个像素的移动方向和移动幅度。在一些方面,使用光流图像识别和/或存储光流。移动方向可以基于光流图像中的色相来进行识别。移动幅度可以基于光流图像中的饱和度来确定。图5中的2D光流515(fxy)被示出为光流图像,其中较暗区域表示具有较高饱和度的区域,并且通过叠加在较暗区域上的文本对较暗区域的色相进行识别。
在操作1115中,编解码器设备基于参考帧和输入帧生成加权图。操作1115的加权图的示例包括MS光流430(fMS)的加权图分量(fz)、经重构的MS光流的经重构的加权图分量/>加权图530(fz)、使用差分索引535进行差分索引的加权图530(fz)、图5的差分索引加权图fz_0、图5的差分索引加权图fz_1、图5的差分索引加权图fz_2、图5的差分索引加权图fz_3、加权图630(fz)、使用差分索引640进行差分索引的加权图630(fz)、最精(第0个)尺度的加权图650A(fz_0)、精(第1个)尺度的加权图650B(fz_1)、粗(第2个)尺度的加权图650C(fz_2)、最粗(第3个)尺度的加权图650D(fz_3)、经重构的光流/>的经重构的加权图分量/>本文讨论的其他加权图或其组合。编解码器设备可以对加权图进行尺寸缩小,例如使用尺寸缩小540。在一些示例中,可以使用加权图图像识别和/或存储加权图,其中权重较高的图像在加权图图像中显示较暗,权重较低的图像在加权图图像中显示较亮(反之亦然)。加权图图像示例提供在加权图530(fz)、图5中的差分索引加权图fz_0、图5中的差分索引加权图fz_1、图5中的差分索引加权图fz_2、加权图630(fz)、最精(第0个)尺度的加权图650A(fz_0)、精(第1个)尺度的加权图650B(fz_1)、粗(第2个)尺度的加权图650C(fz_2)和最粗(第3个)尺度的加权图650D(fz_3)的图示中。
在一些示例中,编解码器设备使用一个或多个经训练的神经网络基于输入帧和参考帧生成加权图。例如,编解码器设备可以使用编码设备104的一个或多个经训练的NN、解码设备112的一个或多个经训练的NN、自动编码器260的一个或多个经训练的NN、编码器250的一个或多个经训练的NN、解码器255的一个或多个经训练的NN、OptFlow2D引擎325的一个或多个经训练的NN、自动编码器360的一个或多个经训练的NN、编码器350的一个或多个经训练的NN、解码器355的一个或多个经训练的NN、OptFlowMS引擎425的一个或多个经训练的NN、自动编码器460的一个或多个经训练的NN、编码器450的一个或多个经训练的NN、解码器455的一个或多个经训练的NN、NN 800的一个或多个、CNN 900的一个或多个、多尺度扭曲引擎1000A的一个或多个NN、多尺度扭曲引擎1000B的一个或多个NN、本文讨论的其他NN或其组合中的一个或多个,来生成加权图。
在操作1120,编解码器设备至少部分地通过基于光流和加权图对视频数据进行编码,来生成经编码的视频数据。在一些示例中,经编码的视频数据可使用符合一个或多个视频编码标准的解码器进行解码。在一些示例中,编解码器设备可以充当编码设备104,并且可以通过通信链路120将编码后的视频数据发送到解码设备112。在一些示例中,编解码器设备可以将编码后的视频数据发送到视频目的设备122。操作1120的经编码视频数据的示例包括经编码的帧数据285(ve)、经编码的帧数据385(ve)、经编码的帧数据485(ve)、本文讨论的其它经编码的帧数据、本文讨论的其它经编码视频数据或其组合。编解码器设备的编码器部分可以执行编码视频数据以生成编码视频数据。编码器的示例包括编码设备104、编码器250、编码器350、编码器450、多尺度扭曲引擎1000A的编码器部分、多尺度扭曲引擎1000B的编码器部分、本文讨论的其它编码器或其组合。在一些方面,基于光流和加权图的视频数据编码包括基于光流和加权图的视频数据压缩。基于光流和加权图的视频数据压缩可以使用任何压缩方案执行。
在一些示例中,编解码器设备可以至少部分地通过对基于光流和加权图的参考帧进行扭曲,来生成预测帧。例如,编解码器***495B通过使用WarpMS引擎410C,基于MS光流430(fMS)的2D光流分量(fxy)和MS光流430(fMS)的加权图分量(fz)对参考帧进行扭曲,来生成预测帧/>预测帧的示例可以包括预测帧/>预测帧预测帧/>预测帧/>预测帧/>预测帧/>预测帧/>预测帧/>本文所述的其他预测帧或其组合。编解码器设备可以基于输入帧和预测帧之间的差,生成残差。例如,编解码器***495B可以基于输入帧420(v)与预测帧/>之间的差(由减法器465进行计算)生成残差440(r)。残差的示例包括残差340(r)、经重构的残差/>残差440(r)、经重构的残差/>图10A的残差(r)(未画出)、图10B的残差(r)(未画出)、经重构的残差/>本文所述的其他残差或其组合。在操作1120中,基于光流和加权图的视频数据编码可以包括基于残差的视频数据编码。
编解码器设备可以使用一个或多个经训练的神经网络,基于光流和加权图来对参考帧进行扭曲。例如,编解码器设备可以使用编码设备104的一个或多个经训练的NN、解码设备112的一个或多个经训练的NN、自动编码器260的一个或多个经训练的NN、编码器250的一个或多个经训练的NN,基于光流和加权图扭曲参考帧、解码器255的一个或多个经训练的NN、OptFlow2D引擎325的一个或多个经训练的NN、Warp2D引擎310A的一个或多个经训练的NN、Warp2D引擎310B的一个或多个经训练的NN、Warp2D引擎310C的一个或多个经训练的NN、自动编码器360的一个或多个经训练的NN、编码器350的一个或多个经训练的NN、解码器355的一个或多个经训练的NN、OptFlowMS引擎425的一个或多个经训练的NN、WarpMS引擎410A的一个或多个经训练的NN、WarpMS引擎410B的一个或多个经训练的NN、WarpMS引擎410C的一个或多个经训练的NN、自动编码器460的一个或多个经训练的NN、编码器450的一个或多个经训练的NN、解码器455的一个或多个经训练的NN、扭曲引擎550的一个或多个经训练的NN、NN 800的一个或多个、CNN 900的一个或多个、多尺度扭曲引擎1000A的一个或多个NN、多尺度扭曲引擎1000B的一个或多个NN、本文讨论的其他NN或其组合,来对参考帧进行扭曲。
在一些示例中,基于光流和加权图对参考帧进行扭曲的编解码器设备自身包括多个操作。例如,编解码器设备可以基于加权图生成至少第一差分索引加权图和第二差分索引加权图。该第一差分索引加权图和/或第二差分索引加权图的示例包括图5中的差分索引加权图fz_0、图5中的差分索引加权图fz_1、图5中的差分索引加权图fz_2、图5中的差分索引加权图fz_3、最精(第0个)尺度的加权图650A(fz_0)、精(第1个)尺度的加权图650B(fz_1)、粗(第2个)尺度的加权图650C(fz_2)和最粗(第3个)尺度的加权图650D(fz_3)。编解码器设备可以使用差分索引535、差分索引640或其组合,生成第一差分索引加权图和/或第二差分索引加权图。编解码器设备可以至少部分地通过对基于光流对参考帧进行扭曲,来生成第一扭曲帧。编解码器设备可以至少部分地通过对基于光流的尺寸缩小的变型对参考帧的尺寸缩小变型进行扭曲,来生成第二扭曲帧。参考图5的扭曲操作550,编解码器设备可以使用以下部分公式生成第一扭曲帧和/或第二扭曲帧:由于公式中使用的i值不同,第一扭曲帧和第二扭曲帧可能会不同。例如,对于第一扭曲帧,i可以是零,而对于第二扭曲帧,i可以是大于零的正整数(例如,1、2、3)。
编解码器设备可以使用尺寸缩小510对参考帧的尺寸缩小的变型进行尺寸缩小。编解码器设备可以使用尺寸缩小520对光流的尺寸缩小的变型进行尺寸缩小。在一些方面,编解码器设备还可以在使用尺寸缩小520进行尺寸缩小之前或之后,调整光流的尺寸缩小的变型的幅度525。编解码器设备可以确定第一扭曲帧与第一差分索引加权图的第一乘积。编解码器设备可以确定第二扭曲帧与第二差分索引加权图的第二乘积。参考图5的扭曲操作550,编解码器设备可以使用公式生成第一乘积和/或第二乘积。由于公式中使用了不同的i值,第一乘积和第二乘积可能有所不同。例如,对于第一乘积,i可以是零,而对于第二乘积,i可以是大于零的正整数(例如,1、2、3)。编解码器设备可以确定第一乘积和第二乘积的尺寸放大的变型之和。编解码器设备可以使用尺寸放大555对第二乘积的尺寸放大的变型执行尺寸放大。编解码器设备可以使用求和560确定和。该和可以生成预测帧。例如,参考图5,求和560生成预测帧/>
在一些示例中,编解码器设备可以基于光流生成经重构的光流。例如,编解码器***495A基于MS光流430(fMS)生成经重构的MS光流编解码器***495A基于MS光流430(fMS)的2D光流分量(fxy),生成经重构的MS光流/>的重构2D光流分量/>编解码器设备可以基于加权图生成经重构的加权图。例如,编解码器***495A基于MS光流430(fMS)生成经重构的MS光流/>编解码器***495A基于MS光流430(fMS)的加权图分量(fz),生成经重构的MS光流/>的经重构的加权图分量/>编解码器设备至少部分通过对基于经重构的光流和经重构的加权图的参考帧进行扭曲,生成预测帧。例如,编解码器***495A通过使用WarpMS引擎410A基于经重构的MS光流/>对参考帧/>进行扭曲,生成预测帧/>编解码***495A通过使用WarpMS引擎410A基于经重构的MS光流/>的经重构的2D光流分量/>和经重构的MS光流/>的经重构的加权图分量/>对参考帧/>进行扭曲,生成预测帧415A/>预测帧的示例可以包括预测帧/>预测帧/>预测帧/>预测帧/>预测帧预测帧/>预测帧/>预测帧/>本文所述的其他预测帧或其组合。编解码器设备可以基于输入帧和预测帧之间的差生成残差。例如,编解码器***495A基于输入帧420(r)和预测帧/>之间的差(由减法器465计算)生成残差440(r)。残差的示例包括残差340(r)、经重构的残差/>残差440(r)、经重构的残差445/>图10A的残差(r)(未画出)、图10B的残差(r)(未画出)、经重构的残差1035/>本文所述的其他残差或其组合。在操作1120中,基于光流和加权图的视频数据编码可以包括基于残差的视频数据编码。
如操作1120所述,基于光流和加权图对视频数据进行编码,可以包括使用自动编码器对视频数据进行编码。自动编码器的示例包括***100、自动编码器260、自动编码器360、自动编码器460、多尺度扭曲引擎1000A的一个或多个自动编码器、多尺度扭曲引擎1000B的一个或多个自动编码器、本文讨论的其他自动编码器、本文讨论的其他编码器、本文讨论的其他解码器或其组合。
编解码器设备可以使用一个或多个经训练的神经网络,基于经重构的光流和经重构的加权图来扭曲参考帧。例如,编解码器设备可以使用编码设备104的一个或多个经训练的NN、解码设备112的一个或多个经训练的NN、自动编码器260的一个或多个经训练的NN、编码器250的一个或多个经训练的NN、解码器255的一个或多个经训练的NN、OptFlow2D引擎325的一个或多个经训练的NN、Warp2D引擎310A的一个或多个经训练的NN、Warp2D引擎310B的一个或多个经训练的NN、Warp2D引擎310C的一个或多个经训练的NN、自动编码器360的一个或多个经训练的NN、编码器350的一个或多个经训练的NN、解码器355的一个或多个经训练的NN、OptFlowMS引擎425的一个或多个经训练的NN、WarpMS引擎410A的一个或多个经训练的NN、WarpMS引擎410B的一个或多个经训练的NN、WarpMS引擎410C的一个或多个经训练的NN、自动编码器460的一个或多个经训练的NN、编码器450的一个或多个经训练的NN、解码器455的一个或多个经训练的NN、扭曲引擎550的一个或多个经训练的NN、NN 800的一个或多个、CNN 900的一个或多个、多尺度扭曲引擎1000A的一个或多个NN、多尺度扭曲引擎1000B的一个或多个NN、本文讨论的其他NN或其组合,基于光流和加权图扭曲参考帧。
在一些示例中,基于经重构的光流和经重构的加权图对参考帧进行扭曲的编解码器设备自身包括多个操作。例如,编解码器设备可以基于经重构的加权图生成至少第一差分索引加权图和第二差分索引加权图。第一差分索引加权图和第二差分索引加权图的示例包括图5中的差分索引加权图fz_0、图5中的差分索引加权图fz_1、图5中的差分索引加权图fz_2、图5中的差分索引加权图fz_3、最精(第0个)尺度的加权图650A(fz_0)、精(第1个)尺度的加权图650B(fz_1)、粗(第2个)尺度的加权图650C(fz_2)和最粗(第3个)尺度的加权图650D(fz_3)。编解码器设备可以使用差分索引535、差分索引640或其组合生成第一差分索引加权图和/或第二差分索引加权图。编解码器设备可以至少部分地通过基于经重构的光流,对参考帧进行扭曲,生成第一扭曲帧。编解码器设备可以至少部分地通过基于经重构的光流的尺寸缩小的变型对参考帧的尺寸缩小的变型进行扭曲生成第二扭曲帧。参考图5的扭曲操作550,编解码器设备可以使用以下部分公式生成第一扭曲帧和/或第二扭曲帧:由于公式中使用的i值不同,第一扭曲帧和第二扭曲帧可能会不同。例如,对于第一扭曲帧,i可以是零,而对于第二扭曲帧,i可以是大于零的正整数(例如,1、2、3)。
编解码器设备可以使用尺寸缩小510对参考帧的尺寸缩小的变型进行尺寸缩小。编解码器设备可以使用尺寸缩小520对经重构的光流的尺寸缩小的变型进行尺寸缩小。在一些方面,编解码器设备还可以在使用尺寸缩小520进行尺寸缩小之前或之后,对经重构的光流的尺寸缩小的变型的幅度525进行调整。编解码器设备可以确定第一扭曲帧和第一差分索引加权图的第一乘积。编解码器设备可以确定第二扭曲帧与第二差分索引加权图的第二乘积。参考图5的扭曲操作550,编解码器设备可以使用公式生成第一乘积和/或第二乘积。由于公式中使用了不同的i值,所以第一乘积和第二乘积可能不同。例如,对于第一乘积,i可以是零,而对于第二乘积,i可以是大于零的正整数(例如,1、2、3)。编解码器设备可以确定第一乘积和第二乘积的尺寸放大的变型之和。编解码器设备可以使用尺寸放大555对第二乘积的尺寸放大的变型执行尺寸放大。编解码器设备可以使用求和560确定和。该和可以生成预测帧。例如,参考图5,求和560生成预测帧/>
在一些示例中,在操作1115中生成的加权图(和/或其重构的变型)包括的值大于参考帧的第一区域的阈值,并且包括的值小于参考帧的第二区域的阈值。在操作1120中生成的编码视频数据可以包括与以精细节层次进行编码的第一区域相对应的数据,也可以包括与以粗细节层次进行编码的第二区域相对应的数据。例如,参考图6,阈值可以是0.25、0.50或0.75,因为这些值被用于差分索引640,从而将加权图630差分索引到具有不同精粗层次的不同缩放加权图650A-650D。阈值可以是拐点、交叉点、最大值、最小值,或者是图7A-7B中任意一条或多条曲线710、715、720或725的组合。例如,阈值可以是0.1、0.2、0.25、0.3、0.4、0.5、0.6、0.7、0.75、0.8、0.9、小于0.1的值、大于0.9的值、或介于之前列出的任意两个值之间的值。
在一些示例中,经编码的视频数据可以使用解码器进行解码。解码器可以符合一个或多个视频解码器标准。解码器的示例包括解码设备112、解码器255、解码器355、解码器455、多尺度扭曲引擎1000A的解码器部分、多尺度扭曲引擎1000B的解码器部分、执行操作1100A的编解码器设备、执行操作1100B的编解码器设备、本文讨论的其他解码器或其组合。
图11B是示出了基于一些示例的数据解码过程1100B的示例的流程图。图11B的流程图所示的过程1100B可以由编解码器设备执行。编解码器设备可以是或可以包括编码设备104、解码设备112、视频源102、视频目的设备122、编解码器***295、自动编码器260、编码器250、解码器255、编解码器***395A、编解码器***395B、自动编码器360、编码器350、解码器355、OptFlow2D引擎325、Warp2D引擎310A、Warp2D引擎310B、Warp2D引擎310C、编解码器***495A、编解码器***495B、自动编码器460、编码器450、解码器455、OptFlowMS引擎425、WarpMS引擎410A、WarpMS引擎410B、WarpMS引擎410C、神经网络(NN)800、卷积神经网络(CNN)900、多尺度扭曲引擎1000A、多尺度扭曲引擎1000B、图像捕获设备、视频捕获设备、图像处理设备、视频处理设备、图像捕获和处理设备、视频捕获和处理设备、相机、移动手机、可穿戴设备、头戴式显示器(HMD)设备、车辆、云服务的一个或多个网络服务器、计算***1200、本文讨论的其他***或设备,或其一些组合。在一些示例中,执行图11B的流程1100B的编解码器设备可以是执行图11A的流程1100A的相同编解码器设备。在一些示例中,执行图11B的过程1100B的编解码器设备可以是与执行图11A的过程1100A的编解码器设备不同的编解码器设备。
在操作1130处,编解码器设备接收经编码的数据。在一些示例中,在图11B的流程1100B的操作1130处接收的经编码的数据可以是在图11A的流程1100A的操作1120中生成的经编码的数据。在一些示例中,执行图11B的流程1100B的编解码器设备与执行图11A的流程1100A的编解码器设备相同,在操作1130处接收经编码的数据的编解码器设备包括从编解码器设备的编码器组件接收经编码的数据的编解码器设备。在一些示例中,执行图11B的流程1100B的编解码器设备与执行图11A的流程1100A的编解码器设备不同,在操作1130处接收经编码的数据的编解码器设备包括执行图11B的流程1100B的编解码器设备,其从执行图11A的流程1100A的编解码器设备接收经编码的数据,或从中间设备接收经编码的数据,该中间设备从执行图11A的流程1100A的编解码器设备处接收经编码的数据。
在一些示例中,经编码的视频数据使用编码器进行编码。在一些示例中,编码器可以符合一个或多个视频编码器标准。编码器的示例包括编码设备104、编码器250、编码器350、编码器450、多尺度扭曲引擎1000A的编码器部分、多尺度扭曲引擎1000B的编码器部分、执行操作1100A的编解码器设备、执行操作1100B的编解码器设备、本文讨论的其他解码器或其组合。
在操作1135处,编解码器设备从经编码的视频数据生成经重构的光流。该经重构的光流识别参考帧和输入帧之间场景的一个或多个区域中的一个或多个移动。参考帧和输入帧可以描述不同时间的场景。在一些示例中,操作1135的经重构的光流可以基于操作1110中所生成的光流。例如,操作1135的经重构的光流可以是操作1110光流的重构,该光流从经编码的视频数据中被重构和/或被解码。操作1135的经重构的光流可以包括其与经重构的光流所重构的光流之间的差。例如,如果经编码的视频数据使用有损压缩进行压缩,并且在重构过程通过解压缩经编码的视频数据的至少一部分来生成经重构的光流,则这种差可能是由重构过程造成的。
在一些示例中,操作1135的参考帧和输入帧可以是操作1105的参考帧和输入帧。操作1135的输入帧的示例包括输入帧220(v)、输入帧320(v)、输入帧420(v)、时间t的输入帧1010(vt)、本文所述的其他输入帧或其组合。操作1135的参考帧的示例包括参考帧参考帧/>参考帧/>时间t-1时的参考帧1005(vt-1)、本文所述的其他参考帧或其组合。
操作1135的经重构的光流的示例包括重构的2D光流经重构的MS光流435的2D光流分量/>2D光流515(fxy)(可以是关于图5所讨论的经重构的光流)、经重构的光流/>(和/或其2D光流部件)、本文讨论的其他类型的经重构的光流或其组合。编解码器设备可以对经重构的光流进行尺寸缩小,例如使用尺寸缩小520。编解码器设备可以调整经重构的光流中的幅度,例如使用幅度调整525。
在一些示例中,编解码器设备使用一个或多个经训练的神经网络从编码视频数据生成经重构的光流。例如,编解码器设备可以使用编码设备104的一个或多个经训练的NN、解码设备112的一个或多个经训练的NN、自动编码器260的一个或多个经训练的NN、编码器250的一个或多个经训练的NN、解码器255的一个或多个经训练的NN、OptFlow2D引擎325的一个或多个经训练的NN、自动编码器360的一个或多个经训练的NN、编码器350的一个或多个经训练的NN、解码器355的一个或多个经训练的NN、OptFlowMS引擎425的一个或多个经训练的NN、自动编码器460的一个或多个经训练的NN、编码器450的一个或多个经训练的NN、解码器455的一个或多个经训练的NN、NN 800的一个或多个、CNN 900的一个或多个、多尺度扭曲引擎1000A的一个或多个NN、多尺度扭曲引擎1000B的一个或多个NN、本文讨论的其他NN或其组合中的一个或多个来生成光流。
在一些示例中,操作1135的经重构的光流是2D光流,诸如经重构的2D光流经重构的MS光流435的2D光流分量/>2D光流515(fxy)、经重构的光流(和/或其2D光流分量)、本文讨论的其他经重构的光流或其组合。经重构的光流识别的一个或多个移动可以是沿着具有两个垂直维度的平面的移动。两个垂直维度可以是垂直维度(y)和水平维度(x)。在一些方面,光流可以识别输入帧中每个像素的移动方向和移动幅度。在一些方面,使用光流图像识别和/或存储重构的光流。移动方向可以基于光流图像中的色相来进行识别。移动幅度可以基于光流图像中的饱和度来确定。图5中的2D光流515(fxy)被示出为光流图像,其中较暗区域表示具有较高饱和度的区域,并且通过叠加在较暗区域上的文本对较暗区域的色相进行识别。
在操作1140处,编解码器设备从经编码的视频数据生成经重构的加权图。在一些示例中,操作1140的经重构的加权图可以基于操作1115中生成的加权图。例如,操作1140的经重构的加权图可以是操作1115从编码视频数据进行重构和/或进行解码的加权图的重构。操作1140的经重构的加权图可以包括与经重构的加权图的差。这种差可能是由重构过程造成的,例如,如果编码视频数据是使用有损压缩进行压缩的,并且重构过程通过解压缩编码视频数据的至少一部分来生成经重构的加权图。
操作1140的经重构的加权图示例包括经重构的MS光流的经重构的加权图分量/>加权图530(fz)、使用差分索引535进行差分索引的加权图530(fz)、图5的差分索引加权图fz_0、图5的差分索引加权图fz_1、图5的差分索引加权图fz_2、图5的差分索引加权图fz_3、加权图630(fz)、使用差分索引640进行差分索引的加权图630(fz)、最精(第0个)尺度的加权图650A(fz_0)、精(第1个)尺度的加权图650B(fz_1)、粗(第2个)尺度的加权图650C(fz_2)、最粗(第3个)尺度的加权图650D(fz_3)、经重构的光流/>的经重构的加权图分量/>本文讨论的其他加权图或其组合。编解码器设备可以对经重构的加权图进行尺寸缩小,例如使用尺寸缩小540。在一些示例中,可以使用加权图图像识别和/或存储经重构的加权图,权重较高的图像在加权图图像中颜色较暗,权重较低的图像在加权图图像中颜色较亮(反之亦然)。在说明图中提供的加权图图像的示例为加权图530(fz)、使用差分索引535进行差分索引的加权图530(fz)、图5的差分索引加权图fz_0、图5的差分索引加权图fz_1、图5的差分索引加权图fz_2、图5的差分索引加权图fz_3、加权图630(fz)、使用差分索引640进行差分索引的加权图630(fz)、最精(第0个)尺度的加权图650A(fz_0)、精(第1个)尺度的加权图650B(fz_1)、粗(第2个)尺度的加权图650C(fz_2)、最粗(第3个)尺度的加权图650D(fz_3)。
在一些示例中,编解码器设备使用一个或多个经训练的神经网络基于输入帧和参考帧,生成经重构的加权图。例如,编解码器设备可以使用编码设备104的一个或多个经训练的NN、解码设备112的一个或多个经训练的NN、自动编码器260的一个或多个经训练的NN、编码器250的一个或多个经训练的NN、解码器255的一个或多个经训练的NN、OptFlow2D引擎325的一个或多个经训练的NN、自动编码器360的一个或多个经训练的NN、编码器350的一个或多个经训练的NN生成经重构的加权图、解码器355的一个或多个经训练的NN、OptFlowMS引擎425的一个或多个经训练的NN、自动编码器460的一个或多个经训练的NN、编码器450的一个或多个经训练的NN、解码器455的一个或多个经训练的NN、NN 800的一个或多个、CNN900的一个或多个、多尺度扭曲引擎1000A的一个或多个NN、多尺度扭曲引擎1000B的一个或多个NN、本文讨论的其他NN或其组合中的一个或多个来生成经重构的加权图。
在操作1145处,编解码器设备至少部分地通过基于经重构的光流和经重构的加权图,对参考帧进行扭曲来生成预测帧。操作1145的预测帧的示例包括预测帧预测帧/>预测帧/>预测帧/>预测帧/>预测帧/>预测帧/>预测帧/>本文所述的其他预测帧或其组合。在操作1135和1145中,参考帧可以是经重构的参考帧。例如,在流程1100B之前,参考帧可能已经使用流程1100B以参考帧代替输入帧,并且以第二参考帧代替参考帧进行重构。
编解码器设备可以基于操作1135的经重构的光流和操作1140的经重构的加权图,使用一个或多个经训练的神经网络对参考帧进行扭曲。例如,编解码器设备可以基于操作1135的经重构的光流和操作1140的经重构的加权图,使用编码设备104的一个或多个经训练的NN、解码设备112的一个或多个经训练的NN、自动编码器260的一个或多个经训练的NN、编码器250的一个或多个经训练的NN、解码器255的一个或多个经训练的NN、OptFlow2D引擎325的一个或多个经训练的NN、Warp2D引擎310A的一个或多个经训练的NN、Warp2D引擎310B的一个或多个经训练的NN、Warp2D引擎310C的一个或多个经训练的NN、自动编码器360的一个或多个经训练的NN、编码器350的一个或多个经训练的NN、解码器355的一个或多个经训练的NN、OptFlowMS引擎425的一个或多个经训练的NN、WarpMS引擎410A的一个或多个经训练的NN、WarpMS引擎410B的一个或多个经训练的NN、WarpMS引擎410C的一个或多个经训练的NN、自动编码器460的一个或多个经训练的NN、编码器450的一个或多个经训练的NN、解码器455的一个或多个经训练的NN、扭曲引擎550的一个或多个经训练的NN、NN 800的一个或多个NN、CNN 900的一个或多个NN、多尺度扭曲引擎1000A的一个或多个NN、多尺度扭曲引擎1000B的一个或多个NN、本文讨论的其他NN或其组合,对参考帧进行扭曲。
在一些示例中,编解码器设备基于操作1135的经重构的光流和操作1140的经重构的加权图对参考帧进行扭曲自身包括多个操作。例如,编解码器设备基于操作1140的经重构的加权图,生成至少第一差分索引加权图和第二差分索引加权图。第一差分索引加权图和第二差分索引加权图的示例包括图5中的差分索引加权图fz_0、图5中的差分索引加权图fz_1、图5中的差分索引加权图fz_2、图5中的差分索引加权图fz_3、最精(第0个)尺度的加权图650A(fz_0)、精(第1个)尺度的加权图650B(fz_1)、粗(第2个)尺度的加权图650C(fz_2)和最粗(第3个)尺度的加权图650D(fz_3)。编解码器设备可以使用差分索引535、差分索引640或其组合生成第一差分索引加权图和/或第二差分索引加权图。编解码器设备可以至少部分地通过基于经重构的光流,对参考帧进行扭曲,生成第一扭曲帧。编解码器设备可以至少部分地通过基于经重构的光流的尺寸缩小的变型对参考帧的尺寸缩小的变型进行扭曲,生成第二扭曲帧。参考图5的扭曲操作550,编解码器设备可以使用以下部分公式生成第一扭曲帧和/或第二扭曲帧:由于公式中使用的i值不同,第一扭曲帧和第二扭曲帧可能会不同。例如,对于第一扭曲帧,i可以是零,而对于第二扭曲帧,i可以是大于零的正整数(例如,1、2、3)。
编解码器设备可以使用尺寸缩小510对参考帧的尺寸缩小的变型进行尺寸缩小。编解码器设备可以使用尺寸缩小520对经重构的光流的尺寸缩小的变型进行尺寸缩小。在一些方面,编解码器设备还可以在使用尺寸缩小520进行尺寸缩小之前或之后,对经重构的光流的尺寸缩小的变型的幅度525进行调整。编解码器设备可以确定第一扭曲帧和第一差分索引加权图的第一乘积。编解码器设备可以确定第二扭曲帧与第二差分索引加权图的第二乘积。参考图5的扭曲操作550,编解码器设备可以使用公式生成第一乘积和/或第二乘积。由于公式中使用了不同的i值,第一乘积和第二乘积可能不同。例如,对于第一乘积,i可以是零,而对于第二乘积,i可以是大于零的正整数(例如,1、2、3)。编解码器设备可以确定第一乘积和第二乘积的尺寸放大的变型之和。编解码器设备可以使用尺寸放大555对第二乘积的尺寸放大的变型执行尺寸放大。编解码器设备可以使用求和560确定和。该和可以生成操作1145的预测帧。例如,参考图5,和560生成预测帧/>
在一些示例中,在操作1140中生成的经重构的加权图包括的值大于参考帧的第一区域的阈值,并且包括的值小于参考帧的第二区域的阈值。在操作1120中生成的编码视频数据可以包括与以精细节层次进行编码的第一区域相对应的数据,也可以包括与以粗细节层次进行编码的第二区域相对应的数据。例如,参考图6,阈值可以是0.25、0.50或0.75,因为这些值被用于差分索引640,从而将加权图630差分索引到具有不同精粗层次的不同缩放加权图650A-650D。阈值可以是拐点、交叉点、最大值、最小值,或者是图7A-7B中任意一条或多条曲线710、715、720或725的组合。例如,阈值可以是0.1、0.2、0.25、0.3、0.4、0.5、0.6、0.7、0.75、0.8、0.9、小于0.1的值、大于0.9的值、或介于之前列出的任意两个值之间的值。
在操作1150,编解码器设备基于预测帧,生成基于输入帧的重构的输入帧。基于输入帧的重构的输入帧可以包括作为输入帧的重构的重构输入帧。在一些示例中,操作1150的重构的输入帧可以基于操作1105的输入帧。例如,操作1140的重构输入帧可以是基于预测帧(以及在一些示例中,重构的残差)重构的操作1105的输入帧的重构。操作1150的重构输入帧可以包括与重构输入帧是其重构的输入帧的差异。这种差异可能是由重构过程引起的,例如,如果使用有损压缩来压缩编码视频数据,并且使用基于从编码视频数据的至少一部分解压的重建数据的预测帧来生成重构输入帧。
在一些示例中,编解码器设备从经编码的视频数据生成基于残差的经重构的残差。为了在操作1150中生成经重构的输入帧,一个或多个处理器可以被配置为、以及可以基于预测帧(操作1145)和经重构的残差生成经重构的输入帧。基于残差的经重构的残差可以包括经重构的残差,其是对编解码器设备从经编码的视频数据的至少一部分进行重构的残差的重构。经重构的残差可以包括与残差的差,即经重构的残差是对残差的重构。这种差可能是由重构过程造成的,例如,如果编码视频数据是使用有损压缩进行压缩的,并且重构过程通过解压编码视频数据的至少一部分来生成经重构的残差。
经重构的残差的示例包括经重构的残差经重构的残差/>经重构的残差/>本文所述的其他经重构的残差或其组合。残差的示例包括残差340(r)、残差440(r)、图10A的残差(r)(未画出)、图10B的残差(r)(未画出)、本文所述的其他残差或其组合。
在一些示例中,残差基于输入帧与预测帧之间的差值。这种残差的示例包括图3A的残差340(r)和图4A的残差440(r)。
在一些示例中,残差基于输入帧和第二预测帧之间的差值。第二预测帧是基于光流和加权图对参考帧进行扭曲的变型。光流和加权图可以基于参考帧和输入帧生成。这种残差的示例包括图3B的340(r)和图4B的残差440(r)。在图3B的上下文中,预测帧是第二预测帧的示例,而预测帧/>是操作1145的预测帧的示例。在图3B的上下文中,第二预测帧是参考帧/>的变型,并且基于光流330(f2D)和/或加权图(图3B中未画处)对其进行扭曲。在图4B的上下文中,第二预测帧可以是参考帧/>的变型,基于多尺度流430(fMS)的光流分量和加权图分量对其进行扭曲。
在一些示例中,作为图11B的过程1100B的一部分,执行图11B的过程1100B的编解码器设备可以执行本文作为图11A的过程1100A的一部分而被描述的一个或多个操作。在一些示例中,作为图11A的流程1100BA的一部分,执行图11A的流程1100A的编解码器设备可以执行本文作为图11B的流程1100B的一部分而被描述的一个或多个操作。
在一些情况下,图11A-11B的流程图所示出的流程1100A的至少一个子集和图1、2、3A、3B、4A、4B、5、6、8、9、10A和10B的概念图所示出的技术可以由云服务的一个或多个网络服务器远程执行。在一些示例中,本文所述的过程(例如,图1、2、3A、3B、4A、4B、5、6、8、9、10A和10B的概念图中所示的过程1100A、1100B和/或技术,和/或本文所述的其它过程)可以由计算***或装置执行。在一些示例中,图1、2、3A、3B、4A、4B、5、6、8、9、10A和10B的概念图中所示的流程1100A、1100B和/或技术可以由编码设备104、解码设备112、视频源102、视频目的设备122、编解码器***295、自动编码器260、视频源102、视频目的设备122中的一个或多个执行、自动编码器260、编码器250、解码器255、编解码器***395A、编解码器***395B、自动编码器360、编码器350、解码器355、OptFlow2D引擎325、Warp2D引擎310A、Warp2D引擎310B、Warp2D引擎310C、编解码器***495A、编解码器***495B、自动编码器460、编码器450、解码器455、OptFlow3D引擎425、WarpMS引擎410A、WarpMS引擎410B、WarpMS引擎410C、神经网络(NN)800、卷积神经网络(CNN)900、多尺度扭曲引擎1000A、多尺度扭曲引擎1000B、图像捕获设备、视频捕获设备、图像处理设备、视频处理设备、图像捕捉和处理设备、视频捕捉和处理设备、相机、移动手机、可穿戴设备、头戴式显示(HMD)设备、车辆、云服务的一个或多个网络服务器、计算***1200、本文讨论的另一种***或设备,或它们的某种组合。图1、2、3A、3B、4A、4B、5、6、8、9、10A和10B的概念图中所示的流程1100A、1100B和/或技术可以由具有图12所示计算***1200架构的计算***执行。计算***可以包括任何合适的设备,诸如移动设备(例如,移动电话)、台式机计算***、平板电脑计算***、可穿戴设备(例如,VR耳机、AR耳机)、VR耳机、AR耳机、AR眼镜、与网络连接的手表或智能手表或其他可穿戴设备)、相机设备、服务器计算机、车辆或车辆的计算***、无人驾驶车辆或无人驾驶车辆的计算***、机器人设备、电视和/或任何其他具有执行本文所述流程的资源能力的计算***,包括图1、2、3A、3B、4A、4B、5、6、8、9、10A和10B概念图中所示的流程1100A、1100B和/或技术。在一些情况下,计算***或设备可以包括各种部件,诸如一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机、一个或多个相机、一个或多个传感器和/或其他部件,这些部件被配置为执行本文所述流程的步骤。在一些示例中,计算***可以包括显示器、被配置用于通信和/或接收数据的网络接口、其任意组合和/或其他组件。网络接口可以被配置为通信和/或接收基于互联网协议(IP)的数据或其他类型的数据。
计算***的部件可以通过电路实施。例如,部件可以包括和/或可以使用电子电路或其他电子硬件实施,其中可以包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)和/或其他合适的电子电路),和/或可以包括和/或可以使用计算机软件、固件或其任意组合进行实施,来执行本文所述的各种操作。
图1、2、3A、3B、4A、4B、5、6、8、9、10A和10B的概念图以及图11A-11B的流程图所示出的过程被组织为逻辑流程图,其操作表示可以用硬件、计算机指令或它们的组合来实施的操作序列。就计算机指令而言,操作表示存储在一个或多个计算机可读存储介质上的计算机可运行指令,当这些指令被一个或多个处理器运行时,就会执行所述操作。一般来说,计算机可运行指令包括执行特定功能或实施特定数据类型的例程、程序、对象、组件、数据结构等。所述的操作的顺序并不意在进行限制,可以以任何顺序和/或并行方式组合任何数量的所述操作来实施过程。
此外,图1、2、3A、3B、4A、4B、5、6、8、9、10A和10B的概念图、图11A-11B的流程图和/或本文描述的其他流程可以在配置有可运行指令的一个或多个计算机***的控制下执行,并且可以通过硬件或其组合被实施为在一个或多个处理器上集体运行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)。如上所述,代码可以存储在计算机可读或机器可读存储介质上,例如,以计算机程序的形式存储,该计算机程序包含多个可由一个或多个处理器运行的指令。计算机可读或机器可读存储介质可以是非临时性的。
图12是说明了用于实施本技术特定方面的***的示例的示意图。特别地,图12示出了计算***1200的示例,例如,其可以是构成内部计算***、远程计算***、相机或其任何部件的任何计算设备,其中***的部件使用连接1205彼此通信。连接1205可以是使用总线的物理连接,也可以是与处理器1210的直接连接,诸如在芯片组架构中。连接1205也可以是虚拟连接、网络连接或逻辑连接。
在一些实施例中,计算***1200是分布式***,其中本公开中描述的功能可以分布在数据中心、多个数据中心、对等网络等内。在一些实施例中,所述的一个或多个***部件代表许多这样的部件,每个部件执行所述的部件的部分或全部功能。在一些实施例中,该部件可以是物理设备或虚拟设备。
示例***1200包括至少一个处理单元(CPU或处理器)1210和连接各种***部件的连接1205,***部件包括***存储器1215,诸如只读存储器(ROM)1220和随机存取存储器(RAM)1225到处理器1210。计算***1200可以包括直接与处理器1210连接、靠近处理器1210或集成为处理器1210一部分的高速存储器缓存1212。
处理器1210可以包括任何通用处理器和硬件服务或软件服务,诸如存储在存储设备1230中的服务1232、1234和1236,它们被配置为控制处理器1210以及将软件指令集成到实际处理器设计中的专用处理器。处理器1210基本上是完全独立的计算***,包括多个内核或处理器、总线、内存控制器、高速缓存等。多核处理器可以是对称的,也可以是不对称的。
为了实施用户交互,计算***1200包括输入设备1245,其可以代表任意数量的输入机制,诸如用于语音的麦克风、用于手势或图形输入的触摸感应屏幕、键盘、鼠标、动作输入、语音等。计算***1200还可以包括输出设备1235,其可以是多种输出机制中的一种或多种。在一些情况下,多模态***能够让用户提供多种类型的输入/输出来与计算***1200通信。计算***1200可以包括通信接口1240,其通常可以管理用户输入和***输出。通信接口可以使用有线和/或无线收发器执行或促进接收和/或传输有线或无线通信,包括使用音频插孔/插头、麦克风插孔/插头、通用串行总线(USB)端口/插头、端口/插头、以太网端口/插头、光纤端口/插头的端口/插头、专有有线端口/插头、无线信号传输、/>低能耗(BLE)无线信号传输、无线信号传输、射频识别(RFID)无线信号传输、近场通信(NFC)无线信号传输、专用短程通信(DSRC)无线信号传输、802.11Wi-Fi无线信号传输、无线局域网(WLAN)信号传输、可见光通信(VLC)、全球微波接入互操作性(WiMAX)、红外(IR)通信无线信号传输、公共交换电话网(PSTN)信号传输、综合业务数字网(ISDN)信号传输、3G/4G/5G/LTE蜂窝数据网络无线信号传输、特别网络信号传输、无线电波信号传输、微波信号传输、红外信号传输、可见光信号传输、紫外线信号传输、沿电磁频谱的无线信号传输或它们的特定组合。通信接口1240还可以包括一个或多个全球导航卫星***(GNSS)接收器或收发器,用于根据接收来自与一个或多个GNSS***相关联的一个或多个卫星的一个或多个信号来确定计算***1200的位置。全球导航卫星***包括但不限于基于美国的全球定位***(GPS)、基于俄罗斯的全球导航卫星***(GLONASS)、基于中国的北斗导航卫星***(BDS)和基于欧洲的伽利略全球导航卫星***。对在任何特定硬件配置上运行没有限制,因此,随着硬件或固件配置的改进,这里的基本功能很容易被替代。
存储设备1230可以是非易失性和/或非临时性和/或计算机可读存储设备,可以是硬盘或其他类型的计算机可读介质,这些介质可以存储计算机可接入的数据,例如磁带、闪存卡、固态存储设备、数字多功能磁盘、盒式磁带、软盘、柔性磁盘、硬盘、磁带、磁条条带、任何其他磁性存储介质、闪存、忆阻存储器、任何其他固态存储器、致密盘只读存储器(CD-ROM)光盘、可重写致密盘(CD)光盘、数字视频盘(DVD)光盘、蓝光盘(BDD)光盘、全息光盘、其他光学介质、安全数字(SD)卡、微型安全数字(microSD)卡、卡、智能卡芯片、EMV芯片、订户身份模块(SIM)卡、迷你/微型/纳米/微微型SIM卡、其他集成电路(IC)芯片/卡、随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪速EPROM(FLASHEPROM)、高速缓冲存储器(L1/L2/L3/L4/L5/L#)、电阻式随机存取存储器(RRAM/ReRAM)、相变存储器(PCM)、自旋转移力矩RAM(STT-RAM)、其他存储芯片或存储盒和/或其组合。
存储设备1230可以包括软件服务、服务器、服务等,当定义这些软件的代码被处理器1210运行时,它会使***执行某项功能。在一些实施例中,执行特定功能的硬件服务可以包括存储在计算机可读介质中的软件部件,该软件部件与必要的硬件部件(诸如处理器1210、连接1205、输出设备1235等)连接以执行该功能。
如本文所用,术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光存储设备以及能够存储、包括或携带指令和/或数据的各种其他介质。计算机可读介质包括可以存储数据的非临时介质,其中不包括以无线方式或通过有线连接传播的载波和/或临时电子信号。非临时介质的示例包括但不限于磁盘或磁带、光盘(CD)或数字多功能光盘(DVD)等光存储介质、闪存、内存或存储设备。计算机可读介质可存储代码和/或机器可执行指令,这些指令可以代表过程、函数、子程序、程序、例程、子例程、模块、软件封装、类、或指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储内容与其他代码段或硬件电路耦合。信息、自变量、参数、数据等可以使用任何合适的方式传递、转发或传输,包括存储器共享、消息传递、令牌传递、网络传输等。
在一些实施例中,计算机可读存储设备、介质和存储器可以包括含有比特流等的线缆或无线信号。然而,当提及时,非临时计算机可读存储介质明确排除诸如能量、载波信号、电磁波和信号自身等介质。
上述描述中提供了具体细节,以提供对本文所提供的实施例和示例的透彻理解。然而,本领域的技术人员可以理解的是,本实施例可以在没有这些具体细节的情况下进行实施。为便于解释,在一些情况下,本技术可以被表示为包括单个功能块,包括由设备、设备部件、软件体现的方法中的步骤或例程或硬件和软件的组合组成的功能块。除图中所示部件和/或本文所述部件外,还可使用其他部件。例如,电路、***、网络、处理和其他部件可以以框图的形式显示,以免在不必要的细节上模糊本发明的实施方案。在其他情况下,众所周知的电路、处理、算法、结构和技术可以不显示不必要的细节,以避免模糊本发明的实施例。
单个实施例可在上文描述为进程或方法,该进程或方法被描述为流程图、流程图、数据流图、结构图或框图。虽然流程图可以将操作描述为顺序进程,但许多操作可以并行或并发执行。此外,操作的顺序也可以重新排列。进程在其操作完成后即终止,但也可能有图中未包括的其他步骤。进程可以对应方法、函数、过程、子例程、子程序等。当进程对应于函数时,其终止可以对应于函数返回到调用函数或主函数。
根据上述示例的进程和方法可以使用计算机可执行指令来实施,这些指令可以从计算机可读介质中存储或以其他方式提供。例如,此类指令可以包括指令和数据,这些指令和数据导致或以其他方式配置通用计算机、专用计算机或处理设备以执行特定功能或功能组。所使用的部分计算机资源可以通过网络接入。计算机可执行指令可以是二进制文件、中间格式指令(如汇编语言)、固件、源代码等。计算机可读介质的示例包括磁盘或光盘、闪存、具有非易失性存储器的USB设备、网络存储设备等。
根据这些公开内容实施进程和方法的设备可以包括硬件、软件、固件、中间件、微码、硬件描述语言或它们的任意组合,并且可以使用各种形式因素中的任意一种。用软件、固件、中间件或微码实施时,执行必要任务的程序代码或代码段(例如计算机程序产品)可存储在计算机可读或机器可读介质中。处理器可执行必要的任务。典型的外形尺寸示例包括笔记本电脑、智能电话、移动电话、平板设备或其他小型个人电脑、个人数字助理、机架式设备、独立设备等。本文描述的功能也可以体现在外设或附加卡中。通过进一步举例说明,这些功能也可以在电路板上的不同芯片或在单个设备中执行的不同进程中实施。
指令、用于传递这些指令的介质、用于执行这些指令的计算资源以及用于支持这些计算资源的其他结构是提供本公开所述功能的示例手段。
在上述描述中,应用的各个方面是参考其实施例进行描述的,但本领域的技术人员将认识到本应用并不限于此。因此,尽管本文已详细描述了本申请的示例性实施例,但应理解的是,本发明的概念可以以其他各种方式体现和使用,所附权利要求旨在解释为包括这些变化,除非受到现有技术的限制。上述应用的各种特征和方面可以单独使用,也可以联合使用。此外,在不脱离本说明书更广泛的精神和范围的前提下,本实施例还可以被用于本文所述之外的任何环境和应用中。因此,本说明书和附图应被视为说明性而非限制性的。为说明起见,方法按特定顺序描述。应当理解的是,在其他实施例中,方法可以按与所述顺序不同的顺序执行。
本领域的技术人员将理解,此处使用的小于(“<”)和大于(“>”)符号或术语可分别用小于或等于(“≤”)和大于或等于(“≥”)符号代替,而不脱离本描述的范围。
当组件被描述为“被配置为”执行特定操作时,这种配置可以通过例如设计电子电路或其它硬件来执行操作,通过编程可编程电子电路(例如,微处理器或其它合适的电子电路)来执行操作,或它们的任意组合来完成。
短语“耦合至”指的是直接或间接地与另一个部件物理连接的任何组件,和/或直接或间接地与另一个部件通信(例如,通过有线或无线连接和/或其他合适的通信接口与另一个部件连接)的任何组件。
权利要求语言或其他语言叙述了一组的“至少一个”和/或“一个或多个”,表示该组的一个成员或该组的多个成员(任意组合)满足权利要求。例如,“A和B中的至少一个”指的是A、B或A和B。在另一个示例中,“A、B和C中的至少一个”指的是A、B、C或A和B或A和C或B和C或A和B和C。例如,权利要求中叙述“A和B中的至少一个”可以指A、B或A和B,还可以包括A和B集中未列出的项目。
与本文公开的实施例相关的各种说明性逻辑块、模块、电路和算法步骤可以被作为电子硬件、计算机软件、固件或其组合来实施。为了清楚地说明硬件和软件的这种可互换性,上文已从功能角度对各种说明性部件、模块、电路和步骤进行了一般性描述。至于这些功能是以硬件还是软件的形式实施,则取决于特定的应用和对整个***的设计限制。本领域的技术人员可以针对每个特定应用以不同的方式对所述功能进行实施,但这种实施的决定不应被解释为偏离本申请的范围。
本文所述的技术也可以通过电子硬件、计算机软件、固件或其任意组合来实施。这些技术可以在各种设备中的任何一种中进行实施,诸如通用计算机、无线通信设备手机或具有多种用途的集成电路设备,包括在无线通信设备手机和其他设备中的应用。作为模块或部件被描述的任何功能可以在集成逻辑设备中一起实施,也可以作为分立但可互操作的逻辑设备单独实施。如果用软件进行实施,这些技术至少可以部分地通过计算机可读数据存储介质来实施,该介质包括程序代码,其中包括指令,当运行这些指令时,可以执行上述一种或多种方法。计算机可读数据存储介质可以构成计算机程序产品的一部分,其中可以包括包装材料。计算机可读介质可以包括存储器或数据存储介质,诸如同步动态随机存取存储器(SDRAM)等随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存(FLASH)、磁或光数据存储介质等。附加地或替代地,这些技术还可以至少部分地通过计算机可读通信介质来实施,该介质以指令或数据结构的形式携带或通信程序代码,并且可以由计算机接入、读取和/或运行,诸如传播信号或波。
程序代码可以由处理器运行,处理器包括一个或多个处理器,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或分立逻辑电路。这样的处理器可以被配置为执行本公开中描述的任何技术。通用处理器可以是微处理器,但也可以是任何常规处理器、控制器、微控制器或状态机。处理器也可以作为计算设备的组合来实施,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的组合,或任何其他此类配置。因此,本文所使用的术语“处理器”可以指任何上述结构、任何上述结构的组合,或适合实施本文所述技术的任何其他结构或装置。此外,在一些方面,本文所述的功能可以在专用软件模块或被配置用于编码和解码的硬件模块中提供,或集成在组合视频编码器-解码器(CODEC)中。
本公开的说明性方面包括:
方面1:一种用于数据编码的装置,该装置包括:存储器;以及耦合至该存储器的一个或多个处理器,该一个或多个处理器被配置为:接收包括在第一时间描述场景的输入帧和在第二时间描述场景的参考帧的视频数据;基于输入帧和参考帧生成光流,光流识别参考帧和输入帧之间场景的一个或多个区域中的一个或多个移动;基于参考帧和输入帧,生成加权图;以及至少部分地通过基于光流和加权图对视频数据进行编码,生成经编码的视频数据。
方面2:根据方面1所述的装置,其中第一时间在第二时间之后。
方面3:根据方面1至2中任一方面所述的装置,其中参考帧在经编码的视频数据中被编码为帧内编码帧,其中输入帧在经编码的视频数据中被编码为帧间编码帧。
方面4:根据方面1至3中任一方面所述的装置,其中所述一个或多个处理器被配置为:至少部分地通过基于光流和加权图对参考帧进行扭曲,生成预测帧;以及基于输入帧与预测帧之间的差生成残差,其中为了基于光流和加权图对视频数据进行编码,所述一个或多个处理器被配置为基于残差来编码视频数据。
方面5:根据方面1至4中任一方面所述的装置,其中,为了基于光流和加权图对参考帧进行扭曲,一个或多个处理器被配置为使用一个或多个经训练的神经网络。
方面6:根据方面1至5中任一方面所述的装置,其中,为了基于光流和加权图对参考帧进行扭曲,一个或多个处理器被配置为基于加权图生成至少第一差分索引加权图和第二差分索引加权图;至少部分地通过基于光流对参考帧进行扭曲,生成第一扭曲帧;至少部分地通过基于光流的尺寸缩小的变型对参考帧的尺寸缩小的变型进行扭曲,生成第二扭曲帧;确定第一扭曲帧与第一差分索引加权图的第一乘积;确定第二扭曲帧与第二差分索引加权图的第二乘积;以及确定第一乘积与第二乘积的尺寸放大的变型之和。
方面7:根据方面1至6中任一方面所述的装置,其中一个或多个处理器被配置为:基于光流,生成经重构的光流;基于加权图,生成经重构的加权图;至少部分地通过基于经重构的光流和经重构的加权图对参考帧进行扭曲,生成预测帧;以及基于输入帧与预测帧之间的差,生成残差,其中,为了基于光流和加权图对视频数据进行编码,一个或多个处理器被配置为基于残差对视频数据进行编码。
方面8:根据方面1至7中任一方面所述的装置,其中,为了基于光流生成经重构的光流,一个或多个处理器被配置为使用自动编码器。
方面9:根据方面1至8中任一方面的装置,其中,为了基于经重构的光流和经重构的加权图对参考帧进行扭曲,一个或多个处理器被配置为使用一个或多个经训练的神经网络。
方面10:根据方面1至9中任一方面所述的装置,其中,为了基于经重构的光流和经重构的加权图来扭曲参考帧,一个或多个处理器被配置为:基于经重构的加权图,生成至少第一差分索引加权图和第二差分索引加权图;通过基于经重构的光流对参考帧进行扭曲,至少部分地生成第一扭曲帧;通过至少部分地基于经重构的光流的尺寸缩小的变型对参考帧的尺寸缩小的变型进行扭曲,生成第二扭曲帧;确定第一扭曲帧与第一差分索引加权图的第一乘积;确定第二扭曲帧与第二差分索引加权图的第二乘积;以及确定第一乘积与第二乘积的尺寸放大的变型之和。
方面11:根据方面1至10中任一方面所述的装置,其中,加权图包括大于参考帧的第一区域的阈值的值,其中,加权图包括小于参考帧的第二区域的阈值的值,其中,经编码的视频数据包括对应于以精细节层次进行编码的第一区域的数据,以及其中,经编码的视频数据包括对应于以粗细节层次进行编码的第二区域的数据。
方面12:根据方面1至11中任一方面所述的装置,其中所述光流是二维光流,并且沿具有两个垂直维度的平面进行所述一个或多个移动。
方面13:根据方面1至12中任一方面所述的装置,其中光流识别输入帧的每个像素的移动方向和移动幅度。
方面14:根据方面1至13中任一方面所述的装置,其中使用光流图像识别光流,其中基于光流图像中的色相识别移动方向,以及基于光流图像中的饱和度识别移动幅度。
方面15:根据方面1至14中任一方面所述的装置,其中,为了生成光流,一个或多个处理器被配置为使用一个或多个经训练的神经网络。
方面16:根据方面1至15中任一方面所述的装置,其中,为了生成加权图,一个或多个处理器被配置为使用一个或多个经训练的神经网络。
方面17:根据方面1至16中任一方面所述的装置,其中经编码的视频数据可使用符合一个或多个视频解码器标准的解码器进行解码。
方面18:根据方面1至17中任一方面所述的装置,其中,为了基于光流和加权图对视频数据进行编码,一个或多个处理器被配置为基于光流和加权图对视频数据进行压缩。
方面19:根据方面1至18中任一方面所述的装置,其中所述装置是移动装置、无线通信装置和相机装置中的一种。
方面20:根据方面1至19中任一方面所述的装置,其中所述装置包括相机,其中所述视频数据由相机所捕获。
方面21:一种数据编码方法,该方法包括:接收包括在第一时间描述场景的输入帧和在第二时间描述场景的参考帧的视频数据;基于输入帧和参考帧,生成光流,所述光流识别参考帧与输入帧之间场景的一个或多个区域中的一个或多个移动;基于参考帧和输入帧,生成加权图;以及至少部分地通过基于光流和加权图对视频数据进行编码,生成编码视频数据。
方面22:根据方面21所述的方法,其中第一时间在第二时间之后。
方面23:根据方面21至22中任一方面所述的方法,其中参考帧被编码为经编码的视频数据中的帧内编码帧,其中输入帧被编码为经编码的视频数据中的帧间编码帧。
方面24:根据方面21至23中任一方面所述的方法,还包括:至少部分地通过基于光流和加权图对参考帧进行扭曲,生成预测帧;以及基于输入帧与预测帧之间的差,生成残差,其中基于光流和加权图对视频数据进行编码包括基于残差对视频数据进行编码。
方面25:根据方面21至24中任一方面所述的方法,其中基于光流和加权图对参考帧进行扭曲包括,基于光流和加权图使用一个或多个经训练的神经网络对参考帧进行扭曲。
方面26:根据方面21至25中任一方面所述的方法,其中基于光流和加权图对参考帧进行扭曲包括,基于加权图生成至少第一差分索引加权图和第二差分索引加权图;至少部分地通过基于光流对参考帧进行扭曲,生成第一扭曲帧;至少部分地通过基于光流的尺寸缩小的变型对参考帧的尺寸缩小的变型进行扭曲,生成第二扭曲帧;确定第一扭曲帧与第一差分索引加权图的第一乘积;确定第二扭曲帧与第二差分索引加权图的第二乘积;以及确定第一乘积与第二乘积的尺寸放大的变型之和。
方面27:根据方面21至26中任一方面所述的方法,还包括:基于光流,生成经重构的光流;基于加权图,生成经重构的加权图;至少部分地通过基于经重构的光流和经重构的加权图对参考帧进行扭曲,生成预测帧;以及基于输入帧和预测帧之间的差生成残差,其中基于光流和加权图对视频数据进行编码包括基于残差对视频数据进行编码。
方面28:根据方面21至27中任一方面所述的方法,其中基于光流和加权图对参考帧进行扭曲包括,使用基于光流和加权图的自动编码器对参考帧进行扭曲。
方面29:根据方面21至24中任一方面所述的方法,其中基于光流和加权图对参考帧进行扭曲包括,基于光流和加权图使用一个或多个经训练的神经网络对参考帧进行扭曲。
方面30:根据方面21至29中任一方面所述的方法,其中基于经重构的光流和经重构的加权图对参考帧进行扭曲包括,基于经重构的加权图生成至少第一差分索引加权图和第二差分索引加权图;至少部分地通过基于经重构的光流对参考帧进行扭曲,生成第一扭曲帧;至少部分地通过基于经重构的光流的尺寸缩小的变型对参考帧的尺寸缩小的变型进行扭曲,生成第二扭曲帧;确定第一扭曲帧与第一差分索引加权图的第一乘积;确定第二扭曲帧与第二差分索引加权图的第二乘积;以及确定第一乘积与第二乘积的尺寸放大的变型之和。
方面31:根据方面21至30中任一方面所述的方法,其中,加权图包括大于参考帧的第一区域的阈值的值,其中,加权图包括小于参考帧的第二区域的阈值的值,其中,经编码的视频数据包括对应于以精细节层次进行编码的第一区域的数据,以及其中,经编码的视频数据包括对应于以粗细节层次进行编码的第二区域的数据。
方面32:根据方面21至31中任一方面所述的方法,其中所述光流是二维光流,并且沿具有两个垂直维度的平面进行所述一个或多个移动。
方面33:根据方面21至32中任一方面的方法,其中光流识别输入帧的每个像素的移动方向和移动幅度。
方面34:根据方面21至33中任一方面所述的方法,其中使用光流图像识别光流,其中基于光流图像中的色相识别移动方向,以及基于光流图像中的饱和度识别移动幅度。
方面35:根据方面21至34中任一方面所述的方法,其中基于输入帧和参考帧生成光流包括,基于输入帧和参考帧使用一个或多个经训练的神经网络生成光流。
方面36:根据方面21至35中任一方面所述的方法,其中基于参考帧和输入帧生成加权图包括,基于参考帧和输入帧使用一个或多个经训练的神经网络生成加权图。
方面37:根据方面21至36中任一方面所述的方法,其中经编码的视频数据可使用符合一个或多个视频解码器标准的解码器进行解码。
方面38:根据方面21至37中任一方面所述的方法,其中基于光流和加权图对视频数据进行编码包括,基于光流和加权图对视频数据进行压缩。
方面39:一种用于数据解码的装置,该装置包括:存储器;以及一个或多个耦合至该存储器的处理器,该一个或多个处理器被配置为:接收经编码的视频数据;从经编码的视频数据生成经重构的光流,识别参考帧与输入帧之间场景的一个或多个区域中的一个或多个移动,该参考帧和输入帧描述不同时间的场景;从经编码的视频数据,生成经重构的加权图;至少部分地通过基于经重构的光流和经重构的加权图,对参考帧进行扭曲,生成预测帧;以及基于预测帧,生成基于输入帧的经重构的输入帧。
方面40:根据方面39所述的装置,其中一个或多个处理器被配置为:从经编码的视频数据生成基于残差的经重构的残差,其中,为了生成经重构的输入帧,一个或多个处理器被配置为基于预测帧和经重构的残差,生成经重构的输入帧。
方面41:根据方面40所述的装置,其中残差基于输入帧与预测帧之间的差。
方面42:根据方面40所述的装置,其中残差基于输入帧与第二预测帧之间的差,其中第二预测帧是基于光流和加权图进行扭曲的参考帧的变型,该光流和加权图是基于参考帧和输入帧生成的。
方面43:根据方面39至42中任一方面所述的装置,其中,为了基于经重构的光流和经重构的加权图扭曲参考帧,一个或多个处理器被配置为:基于经重构的加权图,生成至少第一差分索引加权图和第二差分索引加权图;至少部分地基于经重构的光流对参考帧进行扭曲,生成第一扭曲帧;至少部分地基于经重构的光流的尺寸缩小的变型对参考帧的尺寸缩小的变型进行扭曲,生成第二扭曲帧;确定第一扭曲帧与第一差分索引加权图的第一乘积;确定第二扭曲帧与第二差分索引加权图的第二乘积;以及确定第一乘积与第二乘积的尺寸放大的变型之和。
方面44:根据方面39至43中任一方面所述的装置,其中,为了基于经重构的光流和经重构的加权图对参考帧进行扭曲,一个或多个处理器被配置为使用一个或多个经训练的神经网络。
方面45:根据方面39至44中任一方面所述的装置,其中,为了从经编码的视频数据生成经重构的光流,一个或多个处理器被配置为使用一个或多个经训练的神经网络。
方面46:根据方面39至45中任一方面的装置,其中,为了从经编码的视频数据生成经重构的加权图,一个或多个处理器被配置为使用一个或多个经训练的神经网络。
方面47:一种数据解码方法,该方法包括:接收经编码的视频数据;从经编码的视频数据生成经重构的光流,该光流识别参考帧和输入帧之间场景的一个或多个区域中的一个或多个移动,该参考帧和输入帧描述不同时间的场景;基于经编码的视频数据,生成经重构的加权图;至少部分通过基于经重构的光流和经重构的加权图,对参考帧进行扭曲,生成预测帧;以及基于预测帧,生成基于输入帧的经重构的输入帧。
方面48:根据方面47所述的方法,还包括:从经编码的视频数据生成基于残差的经重构的残差,其中生成经重构的输入帧包括,基于预测帧和经重构的残差生成经重构的输入帧。
方面49:根据方面48所述的方法,其中残差基于输入帧与预测帧之间的差。
方面50:根据方面48所述的方法,其中残差基于输入帧和第二预测帧之间的差,其中第二预测帧是基于光流和加权图进行扭曲的参考帧的变型,该光流和加权图是基于参考帧和输入帧生成的。
方面51:根据方面47至50中任一方面所述的方法,其中基于经重构的光流和经重构的加权图对参考帧进行扭曲包括:基于经重构的加权图,生成至少第一差分索引加权图和第二差分索引加权图;至少部分地通过基于经重构的光流对参考帧进行扭曲,生成第一扭曲帧;至少部分地通过基于经重构的光流的尺寸缩小的变型对参考帧的尺寸缩小的变型进行扭曲,生成第二扭曲帧;确定第一扭曲帧和第一差分索引加权图的第一乘积;确定第二扭曲帧和第二差分索引加权图的第二乘积;以及确定第一乘积和第二乘积的尺寸放大的变型之和。
方面52:根据方面47至51中任一方面所述的方法,其中基于经重构的光流和经重构的加权图对参考帧进行包括,基于经重构的光流和经重构的加权图使用一个或多个经训练的神经网络对参考帧进行扭曲。
方面53:根据方面47至52中任一方面所述的方法,其中从经编码的视频数据生成经重构的光流包括,使用一个或多个经训练的神经网络从经编码的视频数据生成经重构的光流。
方面54:根据方面47至53中任一方面所述的装置,其中从经编码的视频数据生成经重构的加权图包括,使用一个或多个经训练的神经网络从经编码的视频数据生成经重构的加权图。
方面55:一种用于数字成像的装置,该装置包括用于执行根据方面21至38和/或方面47至54中的任一方面所述的操作的部件。
方面56:一种存储指令的计算机可读存储介质,当运行其存储的指令时,其使一个或多个处理器执行根据方面21至38中的任一方面和/或方面47至54中的任一方面所述的操作。
Claims (30)
1.一种用于数据编码的装置,所述装置包括:
存储器;以及
耦合至该存储器的一个或多个处理器,所述一个或多个处理器被配置为:
接收包括在第一时间描述场景的输入帧和在第二时间描述所述场景的参考帧的视频数据;
基于所述输入帧和所述参考帧生成光流,所述光流识别所述参考帧和所述输入帧之间所述场景的一个或多个区域中的一个或多个移动;
基于所述参考帧和所述输入帧,生成加权图;以及
至少部分地通过基于所述光流和所述加权图对所述视频数据进行编码,生成经编码的视频数据。
2.根据权利要求1所述的装置,其中所述第一时间在所述第二时间之后。
3.根据权利要求1所述的装置,其中所述参考帧在所述经编码的视频数据中被编码为帧内编码帧,而所述输入帧在所述经编码的视频数据中被编码为帧间编码帧。
4.根据权利要求1所述的装置,其中所述一个或多个处理器被配置为:
至少部分地通过基于所述光流和所述加权图对所述参考帧进行扭曲,生成预测帧;以及
基于所述输入帧与所述预测帧之间的差生成残差,其中为了基于所述光流和所述加权图对所述视频数据进行编码,所述一个或多个处理器被配置为基于所述残差来编码所述视频数据。
5.根据权利要求4所述的装置,其中,为了基于所述光流和所述加权图对所述参考帧进行扭曲,所述一个或多个处理器被配置为使用一个或多个经训练的神经网络。
6.根据权利要求4所述的装置,其中,为了基于所述光流和所述加权图对所述参考帧进行扭曲,所述一个或多个处理器被配置为:
基于所述加权图生成至少第一差分索引加权图和第二差分索引加权图;
至少部分地通过基于所述光流对所述参考帧进行扭曲,生成第一扭曲帧;
至少部分地通过基于所述光流的尺寸缩小的变型对所述参考帧的尺寸缩小的变型进行扭曲,而生成第二扭曲帧;
确定所述第一扭曲帧与所述第一差分索引加权图的第一乘积;
确定所述第二扭曲帧与所述第二差分索引加权图的第二乘积;以及
确定所述第一乘积与所述第二乘积的尺寸放大的变型之和。
7.根据权利要求1所述的装置,其中所述一个或多个处理器被配置为:
基于所述光流,生成经重构的光流;
基于所述加权图,生成经重构的加权图;
至少部分地通过基于所述经重构的光流和所述经重构的加权图对所述参考帧进行扭曲,生成预测帧;以及
基于所述输入帧与所述预测帧之间的差,生成残差,其中,为了基于所述光流和所述加权图对所述视频数据进行编码,所述一个或多个处理器被配置为基于所述残差对所述视频数据进行编码。
8.根据权利要求7所述的装置,其中,为了基于所述光流生成经重构的光流,所述一个或多个处理器被配置为使用自动编码器。
9.根据权利要求7所述的装置,其中,为了基于所述经重构的光流和所述经重构的加权图对参考帧进行扭曲,所述一个或多个处理器被配置为:
基于所述经重构的加权图,生成至少第一差分索引加权图和第二差分索引加权图;
至少部分地通过基于所述经重构的光流对所述参考帧进行扭曲,生成第一扭曲帧;
至少部分地通过基于所述经重构的光流的尺寸缩小的变型对所述参考帧的尺寸缩小的变型进行扭曲,生成第二扭曲帧;
确定所述第一扭曲帧与所述第一差分索引加权图的第一乘积;
确定所述第二扭曲帧与所述第二差分索引加权图的第二乘积;以及
确定所述第一乘积与所述第二乘积的尺寸放大的变型之和。
10.根据权利要求1所述的装置,其中,所述加权图包括大于所述参考帧的第一区域的阈值的值,其中,所述加权图包括小于所述参考帧的第二区域的阈值的值,其中,所述经编码的视频数据包括对应于以精细节层次进行编码的所述第一区域的数据,以及其中,所述经编码的视频数据包括对应于以粗细节层次进行编码的所述第二区域的数据。
11.根据权利要求1所述的装置,其中所述光流是二维光流,并且沿着具有两个垂直维度的平面进行所述一个或多个移动。
12.根据权利要求1所述的装置,其中所述光流识别所述输入帧的每个像素的移动方向和移动幅度。
13.根据权利要求1所述的装置,其中,为了生成所述光流,所述一个或多个处理器被配置为使用一个或多个经训练的神经网络。
14.根据权利要求1所述的装置,其中,为了生成所述加权图,所述一个或多个处理器被配置为使用一个或多个经训练的神经网络。
15.一种用于数据解码的装置,所述装置包括:
存储器;以及
耦合至所述存储器的一个或多个处理器,所述一个或多个处理器被配置为:
接收经编码的视频数据;
从所述经编码的视频数据生成经重构的光流,所述光流识别参考帧与输入帧之间场景的一个或多个区域中的一个或多个移动,所述参考帧和所述输入帧描述不同时间的场景;
从所述经编码的视频数据生成经重构的加权图;
至少部分地通过基于所述经重构的光流和所述经重构的加权图对所述参考帧进行扭曲,而生成预测帧;以及
基于所述预测帧,生成基于所述输入帧的经重构的输入帧。
16.根据权利要求15所述的装置,其中所述一个或多个处理器被配置为:
从所述经编码的视频数据生成基于残差的经重构的残差,其中,为了生成所述经重构的输入帧,所述一个或多个处理器被配置为基于所述预测帧和所述经重构的残差,生成所述经重构的输入帧。
17.根据权利要求16所述的装置,其中所述残差基于所述输入帧与所述预测帧之间的差。
18.根据权利要求16所述的装置,其中所述残差基于所述输入帧与第二预测帧之间的差,其中所述第二预测帧是基于所述光流和所述加权图而扭曲的所述参考帧的变型,所述光流和所述加权图已经基于所述参考帧和所述输入帧而生成。
19.根据权利要求15所述的装置,其中,为了基于所述经重构的光流和所述经重构的加权图对所述参考帧进行扭曲,所述一个或多个处理器被配置为:
基于所述经重构的加权图,生成至少第一差分索引加权图和第二差分索引加权图;
至少部分地通过基于所述经重构的光流对所述参考帧进行扭曲,生成第一扭曲帧;
至少部分地通过基于所述经重构的光流的尺寸缩小的变型对所述参考帧的尺寸缩小的变型进行扭曲,生成第二扭曲帧;
确定所述第一扭曲帧与所述第一差分索引加权图的第一乘积;
确定所述第二扭曲帧与所述第二差分索引加权图的第二乘积;以及
确定所述第一乘积与所述第二乘积的尺寸放大的变型之和。
20.根据权利要求15所述的装置,其中,为了基于所述经重构的光流和所述经重构的加权图对所述参考帧进行扭曲,所述一个或多个处理器被配置为使用一个或多个经训练的神经网络。
21.根据权利要求15所述的装置,其中,为了从所述经编码的视频数据生成所述经重构的光流,所述一个或多个处理器被配置为使用一个或多个经训练的神经网络。
22.根据权利要求15所述的装置,其中,为了从所述经编码的视频数据生成所述经重构的加权图,所述一个或多个处理器被配置为使用一个或多个经训练的神经网络。
23.一种用于数据解码的方法,所述方法包括:
接收经编码的视频数据;
从所述经编码的视频数据生成经重构的光流,所述光流识别参考帧和输入帧之间场景的一个或多个区域中的一个或多个移动,所述参考帧和所述输入帧描述不同时间的场景;
从所述经编码的视频数据生成经重构的加权图;
至少部分地通过基于所述经重构的光流和所述经重构的加权图对所述参考帧进行扭曲,而生成预测帧;以及
基于所述预测帧,生成基于所述输入帧的经重构的输入帧。
24.根据权利要求23所述的方法,还包括:
从所述经编码的视频数据生成基于残差的经重构的残差,其中生成所述经重构的输入帧包括:基于所述预测帧和所述经重构的残差生成所述经重构的输入帧。
25.根据权利要求24所述的方法,其中所述残差基于所述输入帧与所述预测帧之间的差。
26.根据权利要求24所述的方法,其中所述残差基于所述输入帧和第二预测帧之间的差,其中所述第二预测帧是基于光流和加权图扭曲的所述参考帧的变型,所述光流和所述加权图已经基于所述参考帧和所述输入帧而生成。
27.根据权利要求23所述的方法,其中基于所述经重构的光流和所述经重构的加权图对所述参考帧进行扭曲包括:
基于所述经重构的加权图,生成至少第一差分索引加权图和第二差分索引加权图;
至少部分地通过基于所述经重构的光流对所述参考帧进行扭曲,生成第一扭曲帧;
至少部分地通过基于所述经重构的光流的尺寸缩小的变型对所述参考帧的尺寸缩小的变型进行扭曲,生成第二扭曲帧;
确定所述第一扭曲帧和所述第一差分索引加权图的第一乘积;
确定所述第二扭曲帧和所述第二差分索引加权图的第二乘积;以及
确定所述第一乘积和所述第二乘积的尺寸放大的变型之和。
28.根据权利要求23所述的方法,其中基于所述经重构的光流和所述经重构的加权图对所述参考帧进行扭曲包括:基于所述经重构的光流和所述经重构的加权图,使用一个或多个经训练的神经网络对所述参考帧进行扭曲。
29.根据权利要求23所述的方法,其中从所述经编码的视频数据生成所述经重构的光流包括:使用一个或多个经训练的神经网络从所述经编码的视频数据生成所述经重构的光流。
30.根据权利要求23所述的方法,其中从所述经编码的视频数据生成所述经重构的加权图包括:使用一个或多个经训练的神经网络从所述经编码的视频数据生成所述经重构的加权图。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/207,244 | 2021-03-19 | ||
US17/207,244 US11638025B2 (en) | 2021-03-19 | 2021-03-19 | Multi-scale optical flow for learned video compression |
PCT/US2022/017062 WO2022197401A1 (en) | 2021-03-19 | 2022-02-18 | Multi-scale optical flow for learned video compression |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116982311A true CN116982311A (zh) | 2023-10-31 |
Family
ID=80683678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280020968.3A Pending CN116982311A (zh) | 2021-03-19 | 2022-02-18 | 用于学习的视频压缩的多尺度光流 |
Country Status (8)
Country | Link |
---|---|
US (1) | US11638025B2 (zh) |
EP (1) | EP4309363A1 (zh) |
JP (1) | JP7487423B2 (zh) |
KR (1) | KR102633254B1 (zh) |
CN (1) | CN116982311A (zh) |
BR (1) | BR112023018253A2 (zh) |
TW (1) | TW202239209A (zh) |
WO (1) | WO2022197401A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116076073A (zh) * | 2021-09-02 | 2023-05-05 | 辉达公司 | 用于高性能视频编码的硬件编解码器加速器 |
US20240015318A1 (en) * | 2022-07-11 | 2024-01-11 | Qualcomm Incorporated | Video coding using optical flow and residual predictors |
CN116672707B (zh) * | 2023-08-04 | 2023-10-20 | 荣耀终端有限公司 | 生成游戏预测帧的方法和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101185342A (zh) * | 2005-04-29 | 2008-05-21 | 三星电子株式会社 | 支持快速精细可分级的视频编码方法和装置 |
US20190158843A1 (en) * | 2017-11-20 | 2019-05-23 | Google Llc | BLOCK-BASED Optical Flow Estimation FOR MOTION COMPENSATED PREDICTION IN VIDEO CODING |
CN110352598A (zh) * | 2017-03-13 | 2019-10-18 | 高通股份有限公司 | 基于双向光流(bio)的帧间预测细化 |
CN110741640A (zh) * | 2017-08-22 | 2020-01-31 | 谷歌有限责任公司 | 用于视频代码化中的运动补偿预测的光流估计 |
WO2020253853A1 (en) * | 2019-06-21 | 2020-12-24 | Huawei Technologies Co., Ltd. | Early termination for optical flow refinment |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69126585T2 (de) * | 1990-09-20 | 1998-01-02 | Nippon Electric Co | Verfahren und Gerät zur Kodierung von bewegten Bildsignalen |
US20080225946A1 (en) * | 2004-02-27 | 2008-09-18 | Peng Yin | Error Concealment Technique Using Weighted Prediction |
GB2476397B (en) | 2008-10-15 | 2014-04-30 | Spinella Ip Holdings Inc | Digital processing method and system for determination of optical flow |
US8363721B2 (en) * | 2009-03-26 | 2013-01-29 | Cisco Technology, Inc. | Reference picture prediction for video coding |
WO2013006067A1 (en) * | 2011-07-04 | 2013-01-10 | Streeter Lee Vincent | Motion compensation in range imaging |
KR102063385B1 (ko) | 2013-01-30 | 2020-01-07 | 인텔 코포레이션 | 차세대 비디오용 콘텐츠 적응적 엔트로피 코딩 |
US9661328B2 (en) * | 2013-03-15 | 2017-05-23 | Arris Enterprises, Inc. | Method of bit allocation for image and video compression using perceptual guidance |
WO2016040116A1 (en) | 2014-09-11 | 2016-03-17 | Euclid Discoveries, Llc | Perceptual optimization for model-based video encoding |
KR102425722B1 (ko) * | 2016-04-29 | 2022-07-27 | 세종대학교산학협력단 | 영상 신호 부호화/복호화 방법 및 장치 |
US10685282B2 (en) * | 2018-07-25 | 2020-06-16 | WaveOne Inc. | Machine-learning based video compression |
US11689720B2 (en) * | 2018-09-19 | 2023-06-27 | Electronics And Telecommunications Research Institute | Method and apparatus for encoding/decoding image by using boundary processing, and recording medium for storing bitstream |
WO2020060244A1 (ko) * | 2018-09-19 | 2020-03-26 | 한국전자통신연구원 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
WO2020084462A1 (en) * | 2018-10-22 | 2020-04-30 | Beijing Bytedance Network Technology Co., Ltd. | Restrictions on decoder side motion vector derivation based on block size |
WO2020084473A1 (en) * | 2018-10-22 | 2020-04-30 | Beijing Bytedance Network Technology Co., Ltd. | Multi- iteration motion vector refinement |
US10863206B2 (en) * | 2018-11-08 | 2020-12-08 | Alibaba Group Holding Limited | Content-weighted deep residual learning for video in-loop filtering |
US11107205B2 (en) | 2019-02-18 | 2021-08-31 | Samsung Electronics Co., Ltd. | Techniques for convolutional neural network-based multi-exposure fusion of multiple image frames and for deblurring multiple image frames |
CN109977847B (zh) * | 2019-03-22 | 2021-07-16 | 北京市商汤科技开发有限公司 | 图像生成方法及装置、电子设备和存储介质 |
US11463693B2 (en) * | 2019-08-30 | 2022-10-04 | Qualcomm Incorporated | Geometric partition mode with harmonized motion field storage and motion compensation |
US10699129B1 (en) * | 2019-11-15 | 2020-06-30 | Fudan University | System and method for video captioning |
-
2021
- 2021-03-19 US US17/207,244 patent/US11638025B2/en active Active
-
2022
- 2022-02-18 CN CN202280020968.3A patent/CN116982311A/zh active Pending
- 2022-02-18 EP EP22709115.4A patent/EP4309363A1/en active Pending
- 2022-02-18 KR KR1020237031207A patent/KR102633254B1/ko active IP Right Grant
- 2022-02-18 BR BR112023018253A patent/BR112023018253A2/pt unknown
- 2022-02-18 WO PCT/US2022/017062 patent/WO2022197401A1/en active Application Filing
- 2022-02-18 TW TW111106082A patent/TW202239209A/zh unknown
- 2022-02-18 JP JP2023556539A patent/JP7487423B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101185342A (zh) * | 2005-04-29 | 2008-05-21 | 三星电子株式会社 | 支持快速精细可分级的视频编码方法和装置 |
CN110352598A (zh) * | 2017-03-13 | 2019-10-18 | 高通股份有限公司 | 基于双向光流(bio)的帧间预测细化 |
CN110741640A (zh) * | 2017-08-22 | 2020-01-31 | 谷歌有限责任公司 | 用于视频代码化中的运动补偿预测的光流估计 |
US20190158843A1 (en) * | 2017-11-20 | 2019-05-23 | Google Llc | BLOCK-BASED Optical Flow Estimation FOR MOTION COMPENSATED PREDICTION IN VIDEO CODING |
WO2020253853A1 (en) * | 2019-06-21 | 2020-12-24 | Huawei Technologies Co., Ltd. | Early termination for optical flow refinment |
Non-Patent Citations (1)
Title |
---|
PESSOA, JORGE等: "End-to-End Learning of Video Compression Using Spatio-Temporal Autoencoders", 2020 IEEE WORKSHOP ON SIGNAL PROCESSING SYSTEMS (SIPS) * |
Also Published As
Publication number | Publication date |
---|---|
JP2024508190A (ja) | 2024-02-22 |
KR102633254B1 (ko) | 2024-02-02 |
TW202239209A (zh) | 2022-10-01 |
WO2022197401A1 (en) | 2022-09-22 |
EP4309363A1 (en) | 2024-01-24 |
US11638025B2 (en) | 2023-04-25 |
US20220303568A1 (en) | 2022-09-22 |
BR112023018253A2 (pt) | 2023-10-31 |
KR20230136226A (ko) | 2023-09-26 |
JP7487423B2 (ja) | 2024-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111010568B (zh) | 插值滤波器的训练方法、装置及视频图像编解码方法、编解码器 | |
CN112640467B (zh) | 用于帧内预测的方法和装置 | |
JP7487423B2 (ja) | 学習されたビデオ圧縮のためのマルチスケールオプティカルフロー | |
US20230239516A1 (en) | Entropy encoding/decoding method and apparatus | |
US20240064318A1 (en) | Apparatus and method for coding pictures using a convolutional neural network | |
WO2022081307A1 (en) | Joint termination of bidirectional data blocks for parallel coding | |
US20230239500A1 (en) | Intra Prediction Method and Apparatus | |
CN114125446A (zh) | 图像编码方法、解码方法和装置 | |
WO2022111233A1 (zh) | 帧内预测模式的译码方法和装置 | |
CN115349257B (zh) | 基于dct的内插滤波器的使用 | |
WO2023011420A1 (zh) | 编解码方法和装置 | |
CN118158441A (zh) | 图像划分方法及装置 | |
CN112425165B (zh) | 基于邻块的帧内预测模式推导 | |
CN115706798A (zh) | 熵编解码方法和装置 | |
US20240214578A1 (en) | Regularizing neural networks with data quantization using exponential family priors | |
US20240013441A1 (en) | Video coding using camera motion compensation and object motion compensation | |
WO2023091040A1 (en) | Generalized difference coder for residual coding in video compression | |
WO2024015665A1 (en) | Bit-rate estimation for video coding with machine learning enhancement | |
CN116134817A (zh) | 使用稀疏光流表示的运动补偿 | |
TW202420815A (zh) | 使用神經網路進行圖像區域的並行處理-解碼、後濾波和rdoq | |
TW202416712A (zh) | 使用神經網路進行圖像區域的並行處理-解碼、後濾波和rdoq | |
CN118044195A (zh) | 用于视频处理的方法、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |