具体实施方式
本发明的原理涉及一种针对视频编码和解码的自适应变换选择的方法和设备。
本说明书示意了本发明原理。因此将理解的是,尽管这里没有明确描述或示出,本领域的技术人员将能够设想体现本发明原理并包括在本发明精神和范围内的各种布置。
这里所引述的所有示例和条件性语言均为了教导的目的,以帮助读者理解本发明原理以及发明人对现有技术做出贡献的构思,应看作不会被限制为这里具体引述的示例和条件。
此外,这里对本发明的原理、方面、实施例及其特定示例做出引述的所有声明意在包括本发明的结构和功能上的等同物。另外,该等同物将包括当前已知的等同物以及将来开发出的等同物,即所开发出来的执行相同功能的任何组件,而与结构无关。
因此,本领域的技术人员可以理解,例如这里所表示的框图展示出体现本发明的示意性电路的概念图。类似地,将理解,任何流程、流程图、状态转移图、伪代码等表现出实质上可以在计算机可读介质上表现的、并且由计算机或处理器执行的各个过程,无论是否明确示出该计算机或处理器。
可以通过使用专用硬件和能够执行适合的软件的关联软件的硬件而实现图中所示各个组件的功能。当由处理器来提供时,这些功能可以由单个的专用处理器、单个的共享处理器、或多个单独的处理器来提供,其中一些可以是共享的。此外,术语“处理器”或“控制器”的显式使用不应被解释为排他性地指代能够执行软件的硬件,而且可以隐式地包括(不限为)数字信号处理器(“DSP”)硬件、用于存储软件的只读存储器(“ROM”)、随机存取存储器(“RAM”)以及非易失性存储器。
还可以包括常规和/或定制的其它硬件。类似地,图中所示的任何开关仅是概念上的。其功能可以通过程序逻辑的操作、专用逻辑、程序控制和专用逻辑的交互、或甚至是手动地实现,实施者可以选择的具体技术可以从上下文中得到明确的理解。
在权利要求书中,表示为用于执行指定功能的装置的任何组件意在包括执行该功能的任何方式,例如包括:a)执行该功能的电路元件的组合,或b)任意形式的软件,包括固件、微代码等,并与用于执行该软件以执行该功能的适合的电路进行组合。由权利要求所限定的本发明原理在于如下事实:将各个引述的装置所提供的功能以权利要求所要求的方式组合在一起。因此,可以把能够提供这些功能的任意装置看作与这里所示的装置相等同。
在说明书中涉及本发明原理的“一个实施例”或“实施例”是指:结合实施例描述的特定特征、结构、特性等包括在本发明的至少一个实施例中。因此,贯穿说明书在不同地方出现的短语“在一个实施例中”或“在实施例中”不必均指相同的实施例。此外短语“在另一实施例中”不排除与另一实施例全部或部分组合的所描述实施例的主题。
应当理解的是,以下“/”、“和/或”和“至少一个”中任意的使用,例如在“A/B”、“A和/或B”和“A和B中的至少一个”的情况下,意在包括只选择第一所列项目(A)、或只选择第二所列项目(B)、或选择两个项目(A和B)。作为另一示例,在“A、B和/或C”以及“A、B和C中的至少一个”的情况下,这样的表示意在包括只选择第一所列项目(A)、只选择第二所列项目(B)、只选择第三所列项目(C)、选择第一和第二所列项目(A和B)、选择第一和第三所列项目(A和C)、选择第二和第三所列项目(B和C)、或选择所有三个项目(A和B和C)。对于本领域和相关领域的普通技术人员来说显而易见的是,对于所列的许多项目,上述是可以扩展的。
如这里所使用的,“高级别语法”是指在分级中位于宏块层之上的比特流中出现的语法。例如,如这里所使用的高级别语法可以指但不限于像条(slice)首部级、补充增强信息(SEI)级、图像参数集(PPS)级、序列参数集(SPS)级、网络抽象层(NAL)单元首部级处的语法。
同样如这里所使用的,词语“画面”和“图像”可互换使用,并且指代的是来自视频序列的静止图像或画面。如已知的,画面可以是帧或场。
此外,如这里所使用的,词语“比特流”指的是编码器输出。当然,编码器输出可以是本发明原理可以考虑的任意形式。例如,可以使用但是不局限于广播、点对点传输或多播传输方法传输“比特流”或者作为信号发送“比特流”,或者可以在例如但是不局限于光学、磁学或其他存储介质之类的固定介质中记录“比特流”。
此外,如这里所使用的,词语“信号”指的是表示对于对应解码器的某种东西。例如,编码器可以用信号通知具体的变换(或者变换的子集)以便使得解码器知晓编码器一侧使用的特定变换(或变换的子集)。在这种情况下,可以在编码器一侧和解码器一侧使用相同的变换(或者变换的子集)。因此,例如编码器可以向解码器传输特定的映射函数,使得解码器可以使用相同的变换(或变换的子集),或者如果解码器已经具有特定的变换(或变换的子集)或者其他,那么可以使用信号通知而无须传输)来简单地允许解码器知道和选择特定的变换(或变换的子集)。通过避免任意实际变换的传输,可以实现比特节省。应该理解的是可以按照多种方式实现信号通知。例如,可以将一个或多个高级元素、标记等等用于向对应解码器信令传输信息。尽管已经相对于变换描述了前述有关的信令传输,其可以同样地应用于逆变换。
回到图3,通过参考数字300总体上表示可以应用本发明原理的示范性视频编码器。
视频编码器300包括帧排序缓冲器310,具有与组合器385的非反相输入进行信号通信的输出。组合器385的输出与变换和量化器325的第一输入信号通信连接。变换和量化器325的输出与熵编码器345的第一输入以及逆变换和逆量化器350的第一输入信号通信连接。熵编码器345的输出与组合器390的第一非反相输入信号通信连接。组合器390的输出与输出缓冲器335的第一输入信号通信连接。
编码器控制器305的第一输出与帧排序缓冲器310的第二输入、逆变换和逆量化器350的第二输入、画面类型判决模块315的输入、宏块类型(MB-类型)判决模块320的第一输入、帧内预测模块360的第二输入、解块滤波器365的第二输入、运动补偿器370的第一输入、运动估计器375的第一输入以及参考画面缓冲器380的第二输入信号通信连接。
编码器控制器305的第二输出与补充增强信息(SEI)插入器330的第一输入、变换和量化器325的第二输入、熵编码器345的第二输入、输出缓冲器335的第二输入以及序列参数集(SPS)和画面参数集(PPS)插入器340的输入信号通信连接。
SEI插入器330的输出与组合器390的第二非反相输入信号通信连接。
画面类型判决模块315的第一输出与帧排序缓冲器310的第三输入信号通信连接。画面类型判决模块315的第二输出与宏块类型判决模块320的第二输入信号通信连接。
序列参数集(SPS)和画面参数集(PPS)插入器340的输出与组合器390的第三非反相输入信号通信连接。
逆量化和逆变换器350的输出与组合器319的第一非反相输入信号通信连接。组合器319的输出与帧内预测模块360的第一输入以及解块滤波器365的第一输入信号通信连接。解块滤波器365的输出与参考画面缓冲器380的第一输入信号通信连接。参考画面缓冲器380的输出与运动估计器375的第二输入和运动补偿器370的第三输入信号通信连接。运动估计器375的第一输出与运动补偿器370的第二输入信号通信连接。运动估计器375的第二输出与熵编码器345的第三输入信号通信连接。
运动补偿器370的输出与开关397的第一输入信号通信连接。帧内预测模块360的输出与开关397的第二输入信号通信连接。宏块类型判决模块320的输出与开关397的第三输入信号通信连接。开关397的第三输入确定开关的“数据”输入(与控制输入相比较,即与第三输入相比较)是由运动补偿器370还是帧内预测模块360提供。开关397的输出与组合器319的第二非反相输入和组合器385的反相输入信号通信连接。
帧排序缓冲器310的第一输入和编码器控制器105的输入可用作编码器300的用于接收输入画面的输入。此外,补偿增强信息(SEI)插入器330的第二输入可用作编码器300的用于接收元数据的输入。输出缓冲器335的输出可用作用于编码器300的输出,用于输出比特流。
转到图4,通过参考数字400总体表示可应用本发明原理的示范性视频解码器。
视频解码器400包括输入缓冲器410,具有与熵解码器445的第一输入信号通信连接的输出。熵解码器445的第一输出与逆变换和逆量化器450的第一输入信号通信连接。逆变换和逆量化器450的输出与组合器425的第二非反相输入信号通信连接。组合器425的输出与解块滤波器465的第二输入以及内预测模块460的第一输入信号通信连接。解块滤波器465的第二输出与参考画面缓冲器480的第一输入信号通信连接。参考画面缓冲器480的输出与运动补偿器470的第二输入信号通信连接。
熵解码器445的第二输出与运动补偿器470的第三输入、解块滤波器465的第一输入以及帧内预测器460的第三输入信号通信连接。熵解码器445的第三输出与解码器控制器405的输入信号通信连接。解码器控制器405的第一输出与熵解码器445的第二输入信号通信连接。解码器控制器405的第二输出与逆变换和逆量化器450的第二输入信号通信连接。解码器控制器405的第三输出与解块滤波器465的第三输入信号通信连接。解码器控制器405的第四输出与帧内预测模块460的第二输入、运动补偿器470的第一输入和参考画面缓冲器480的第二输入信号通信连接。
运动补偿器470的输出与开关497的第一输入信号通信连接。帧内预测模块460的输出与开关497的第二输入信号通信连接。开关497的输出与组合器425的第一非反相输入信号通信连接。
输入缓冲器410的输入可用作解码器400的输入,用于接收输入比特流。解块滤波器465的第一输出可用作解码器400的输出,用于将输出画面输出。
已经认识到如果可以选择性地修改变换以适应视频内容和编码参数,则存在可以可用的潜在压缩增益。因此根据本发明的原理,公开并且描述了一种供视频编码和解码使用的内容自适应变换选择的方法和设备。同样,描述了如何最佳选择所使用的变换的方法。在编码过程期间得出变换集合。因为在编码期间得出变换,它们自动地适配于输入视频序列和编码参数,并且可以提供更高的压缩性能。
与现有技术方法相反,根据本发明原理的一个或多个实施例,使用在编码过程期间在先编码的画面得出的信息,在编码过程期间“实时地”训练所使用的变换。因为视频信号在场景内的相邻画面之间通常是近似的,使用在先画面训练的变换通常非常接近针对当前画面的变换。通过使用在先编码的画面,训练过程自动地考虑了输入视频序列的特性和编码参数。
转到图5,通过参考数字500总体示出了使用在编码期间更新并且传输至对应解码器的变换对画面进行编码的示范性方法。方法500包括开始块510,开始块将控制传给功能块520。功能块520初始化变换集合,并且将控制传给循环限制块530。循环限制块530使用变量j开始循环(下文中的“循环(1)”),变量j具有从1至(正在处理的)当前视频序列中的画面数目(#)的范围,并且将控制传给循环限制块540。循环限制块540使用变量i开始循环(下文中的“循环(2)”),变量i具有从1到正在处理的当前画面中的块的数目(#)的范围,并且将控制传给功能块550。功能块550选择针对(当前)块的最佳变换,并且将控制传给功能块560。功能块560对画面j中的块i进行编码,并且将控制传给循环限制块570。循环限制块570结束循环(2),并且将控制传给功能块580。功能块580根据编码的画面更新变换,发送更新的变换,并且将控制传给循环限制块590。对于功能块580,例如可以以帧为基础、以画面组为基础和/或以场景为基础来更新变换。此外,对于功能块580,例如可以基于从在先编码画面提供的信息或信息的一部分来更新变换。
对于方法500,在编码期间训练变换集合,使得在对每一个画面编码之后更新变换。也可以在几个画面之后应用变换过程,例如在画面组(GOP)或场景之后,以减小计算复杂度。为了更新变换,可以使用一个或多个编码画面。要使用的在先编码画面的容量(volume)可以基于编码器和解码器都已知的一些规则,或者可以基于去往解码器的比特流内表达的一些其他准则。可以结合特定复位过程在场景变换处将变换复位至初始变换。对于正确操作的解码器,可以按照语法特别地表示变换并且在比特流中表达。
转到图6,通过参考数字600总体上示出了使用从编码器接收的更新变换对画面进行解码的示范性方法。方法600包括开始块610,开始块将控制传给功能块620。功能块620初始化变换集合,并且将控制传给循环限制块630。循环限制块630使用变量j开始循环(下文中的“循环(1)”),变量j具有从1至(正在处理的)当前视频序列中的画面数目(#)的范围,并且将控制传给功能块640。功能块640对来自比特流的变换进行解码,并且将控制传给循环限制块650。循环限制块650使用变量i开始循环(下文中的“循环(2)”),变量i具有从1到正在处理的当前画面中的块的数目(#)的范围,并且将控制传给功能块660。功能块660针对(当前)块的变换进行解码,并且将控制传给功能块670。功能块670对画面j中的块i进行解码,并且将控制传给循环限制块680。循环限制块680结束循环(2),并且将控制传给循环限制块690。循环限制块690结束循环(1),并且将控制传给结束块699。
对于方法600,解码器解析比特流以得出针对每一个画面的变换集合。那么对于每一个块,解码器获得编码器使用的变换,然后使用对应逆变换重构视频信号。因此,在方法600中,针对每一个画面接收到了训练的变换。
然而,发送变换引起较高的开销。因此,还公开了本发明原理的另一个实施例,其中不是将变换发送至解码器,而是代替地一旦解码器确定使用哪个变换就在解码器处更新变换。
转到图7,通过参考数字700总体上示出了使用在编码期间更新的变换对画面进行编码的示范性方法。方法700包括开始块710,开始块将控制传给功能块720。功能块720初始化变换集合,并且将控制传给循环限制块730。循环限制块730使用变量j开始循环(下文中的“循环(1)”),变量j具有从1至(正在处理的)当前视频序列中的画面数目(#)的范围,并且将控制传给循环限制块740。循环限制块740使用变量i开始循环(下文中的“循环(2)”),变量i具有从1到正在处理的当前画面中的块的数目(#)的范围,并且将控制传给功能块750。功能块750选择针对(当前)块的最佳变换,并且将控制传给功能块760。功能块760对画面j中的块i进行编码,并且将控制传给循环限制块770。循环限制块770结束循环(2),并且将控制传给功能块780。功能块780根据编码的画面更新变换,并且将控制传给循环限制块790。循环限制块790结束循环(1),并且将控制传给结束块799。对于功能块780,例如可以以帧为基础、以画面组为基础和/或以场景为基础来更新变换。此外对于功能块780,例如可以基于从在先编码画面提供的信息或从在先编码画面提供的信息的一部分来更新变换。
转到图8,通过参考数字800总体上示出了使用在解码期间更新的变换对画面进行解码的示范性方法。方法800包括开始块810,开始块将控制传给功能块820。功能块820初始化变换集合,并且将控制传给循环限制块830。循环限制块830使用变量j开始循环(下文中的“循环(1)”),变量j具有从1至(正在处理的)当前视频序列中的画面数目(#)的范围,并且将控制传给循环限制块840。循环限制块840使用变量i开始循环(下文中的“循环(2)”),变量i具有从1到(正在处理的)当前画面中的块的数目(#)的范围,并且将控制传给循环限制块850。功能块850针对块对变换进行解码,并且将控制传给功能块860。功能块860对画面j中的块i进行解码,并且将控制传给循环限制块870。循环限制块870结束循环(2),并且将控制传给功能块880。功能块880更新变换,并且将控制传给循环限制块890。循环限制块890结束循环(1),并且将控制传给结束块899。对于功能块880,例如可以以帧为基础、以画面组为基础和/或以场景为基础来更新变换。此外对于功能块880,例如可以基于从在先解码画面提供的信息或从在先解码画面提供的信息的一部分来更新变换。
还公开了本发明原理的另一个实施例,其中在编码器和解码器处已知大量的变换(和逆变换)。对于每一个画面,选择变换的子集并且将它们的索引(index)发送给解码器。
转到图9,通过参考数字900总体上示出了使用在编码期间更新的变换和发送给对应解码器的变换索引对画面进行编码的示范性方法。方法900包括开始块910,开始块将控制传给功能块920。功能块920初始化变换的大集合,并且将控制传给循环限制块930。循环限制块930使用变量j开始循环,变量j具有从1至(正在处理的)当前视频序列中的画面数目(#)的范围,并且将控制传给循环限制块940。功能块940对画面j进行编码,并且将控制传给功能块950。功能块950训练变换,并且将控制传给功能块960。功能块960(从变换的大集合中)选择变换的子集,并且将控制传给功能块970。功能块970发送变换的索引,并且将控制传给循环限制块980。循环限制块980结束循环,并且将控制传给结束块999。对于功能块970,例如可以使用一个或多个高级语法元素来发送变换的索引。
对于方法900,编码器使用训练的变换来更新变换的大集合,以使得变换集合能够更好地匹配内容。通过变换的索引来表示接近训练变换的变换,以使得对应解码器在不要求较重开销的情况也能够获得这种信息。这是以从中选择了次优化变换为代价的。
转到图10,通过参考数字1000总体上示出了使用从对应编码器接收的变换索引对画面进行解码的示范性方法。方法1000包括开始块1010,开始块将控制传给功能块820。功能块1020初始化变换的大集合,并且将控制传给循环限制块1030。循环限制块1030使用变量j开始循环(下文中的“循环(1)”),变量j具有从1至(正在处理的)当前视频序列中的画面数目(#)的范围,并且将控制传给功能块1040。功能块1040对变换索引进行解码,从比特流获得变换,并且将控制传给循环限制块1050。循环限制块1050使用变量i开始循环(下文中的“循环(2)”),变量i具有从1到正在处理的当前画面中的块的数目(#)的范围,并且将控制传给功能块1060。功能块1060对针对块的变换进行解码,并且将控制传给功能块1070。功能块1070对画面j中的块i进行解码,并且将控制传给循环限制块1080。循环限制块1080结束循环(2),并且将控制传给循环限制块1090。循环限制块1090结束循环(1),并且将控制传给结束块1099。对于功能块1040,例如可以根据比特流中的一个或多个语法元素(和/或根据辅助信息)对变换索引进行解码。
转到图11,通过参考数字1100总体上示出了使用奇异值分解在编码器处得出变换的示范性方法。方法1100包括开始块1110,开始块将控制传给功能块1120。功能块1120从在先编码的画面收集训练数据,并且将控制传给功能块1130。对于通过功能块1120收集的数据,这种数据可以包括非零的残余或残余部分,使得相同的变换可以用于当前画面。功能块1130向训练数据应用奇异值分解(SVD),并且将控制传给功能块1140。功能块1140计算变换基础,并且将控制传给结束块1199。
转到图12,通过参考数字1200总体上示出了使用奇异值分解在解码器处得出变换的示范性方法。方法1200包括开始块1210,开始块将控制传给功能块1220。功能块1220从在先编码的画面收集训练数据,并且将控制传给功能块1230。功能块1230向训练数据应用奇异值分解(SVD),并且将控制传给功能块1240。功能块1240计算变换基础,并且将控制传给结束块1299。
语法:
例如,可以在一个或多个高级语法元素中规定变换集合。提供了针对涉及图5的方法500的实施例如何定义语法的示例。表1示出了根据本发明原理实施例的(涉及方法500)的画面参数集(PPS)的典型语法。可以在各种层将类似的语法变换应用于其他语法元素。在该示例中,考虑三种变换大小:4×4;8×8;和16×16。对每一种块大小,通过画面参数集来表示变换集合。N4、N8和N16分别便是针对4×4、8×8和16×16变换的集合中的变换的数目。
表1
pic_parameter_set_rbsp(){ |
C |
描述符 |
... |
|
|
transform_selection_present_flag |
0 |
u(1) |
if(transform_selection_present_flag){ |
|
|
for(i=0;i<N4;i++){ |
|
|
for(j=0;j<16;j++){ |
|
|
transform_basis_4×4[i][j] |
0 |
u(8) |
} |
|
|
} |
|
|
for(i=0;i<N8;i++){ |
|
|
for(j=0;j<64;j++){ |
|
|
transform_basis_8×8[i][j] |
0 |
u(8) |
} |
|
|
} |
|
|
for(i=0;i<N16;i++){ |
|
|
for(j=0;j<256;j++){ |
|
|
transform_basis_16×16[i][j] |
0 |
u(8) |
} |
|
|
} |
|
|
} |
|
|
... |
|
|
} |
|
|
表1的一些语法元素的语义如下:
Transform_selection_present_flag等于1规定了在画面参数集中存在变换选择。Transform_selection_present_flag等于0规定了在画面参数集中不存在变换选择。
Transform_basis_4×4[i][j]规定了针对第i个4×4变换的第j个变换基础元素的值。
Transform_basis_8×8[i][j]规定了针对第i个8×8变换的第j个变换基础元素的值。
Transform_basis_16×16[i][j]规定了针对第i个16×16变换的第j个变换基础元素的值。
还提供了针对涉及图9的方法900的实施例如何定义语法的示例。表2示出了根据本发明原理的另一个实施例(涉及方法900)的画面参数集(PPS)的示范性语法。针对每一个块尺寸,通过画面参数集表示变换的索引。在编码器和解码器处均知晓与所指示的索引相对应的变换。
表2
pic_parameter_set_rbsp(){ |
C |
描述符 |
... |
|
|
transform_selection_present_flag |
0 |
u(1) |
if(transform_selection_present_flag){ |
|
|
for(i=0;i<N4;i++){ |
|
|
transform_basis_4×4_index[i] |
0 |
|
} |
|
|
for(i=0;i<N8;i++){ |
|
|
transform_basis_8×8_index[i] |
0 |
|
} |
|
|
for(i=0;i<N16;i++){ |
|
|
transform_basis_16×16_index[i] |
0 |
|
} |
|
|
} |
|
|
... |
|
|
} |
|
|
表2的一些语法元素的语义如下:
Transform_selection_present_flag等于1规定了在画面参数集中存在变换选择。Transform_selection_present_flag等于0规定了在画面参数集中不存在变换选择。
Transform_basis_4×4_index[i]规定了针对4×4变换的第i个变换基础的索引。
Transform_basis_8×8[i]规定了针对8×8变换的第i个变换基础的索引。
Transform_basis_16×16[i]规定了针对16×16变换的第i个变换基础的索引。
确定针对画面的变换集合的方法
当待编码的数据可用时或者当存在适当训练的数据集合时,存在用于得出最优变换集合的技术。这些技术可以基于普通KLT、sparsityobjectivefunction等等。根据本发明原理的实施例,提出了一种使用奇异值分解(SVD)得出变换集合的方法。当然,本发明原理不只局限于SVD,并且因此可以根据本发明原理使用用于得出变换集合的其他方法,同时保持本发明的精神和范围。在以下示例中,考虑这样的场景,其中对于画面,编码器可以从两个变换中进行选择,并且这两个变换之一是DCT。需要收集训练数据,并且针对画面n产生其他变换,表示为针对画面的Tsvd。
为了针对画面训练Tsvd,重要的是来自在先编码画面的训练数据集合与将选择Tsvd作为变换的当前画面中的残余类似。建议只使用残余的一部分进行训练。在一个实施例中,整个残余数据的这一部分可以是非零残余,并且不会在在先画面中选择DCT。然后,将SVD分解应用于所选择的残余块,以产生变换Tsvd,0。对于图5的方法500,将Tsvd,0用作Tsvd,并且在比特流中发送。对于图9的方法900,将Tsvd,0与变换的大集合中的每一个变换进行比较,并且将最接近的变换用作针对当前画面的Tsvd。在比特流中发送Tsvd的索引。
现在将给出对于本发明的许多附加优势/特征的一些的描述,其中的一些在前面已经描述。例如,一个优点/特征是一种具有视频编码器的设备,视频编码器使用变换对至少画面中的块进行编码。从多个变换中选择用于对块进行编码的变换。在画面的编码期间自适应地更新多个变换。
另一个优点/特征是一种具有上述视频编码器的设备,其中响应于从在先编码的画面提供的信息来自适应地更新多个变换。
再一个优点/特征是一种具有视频编码器的设备,其中如上所述响应于从在先编码的画面提供的信息来自适应地更新多个变换,其中仅将在先编码的画面提供的信息的一部分用于自适应地更新多个变换。
又一个优势/特征是一种具有视频编码器的设备,其中如上所述响应于从在先编码的画面提供的信息来自适应地更新多个变换,其中将奇异值分解训练用于自适应地更新多个变换。
此外,另一个优势/特征是一种具有视频编码器的设备,其中如上所述响应于从在先编码的画面提供的信息来自适应地更新多个变换,其中根据至少以下之一来自适应地更新多个逆变换:以帧为基础、以画面组为基础以及以场景为基础。
另外,另一个优势/特征是一种具有如上所述的视频编码器的设备,其中当在对应解码器中不存在所选择的变换时,将所选择的逆变换传输给对应解码器,或者当在对应视频解码器中已经存在所选择的变换时将所选择的变换识别用于对应视频解码器,或者当在对应解码器处不存在所选择的变换时,在对应解码器处重新产生所选择的变换。
同样,另一个优势/特征是一种如上所述的具有视频编码器的设备,其中在具有多个画面的视频序列中包括了画面,并且在视频编码器和对应解码器处都知道多个变换和对应多个逆变换,并且针对多个画面的每一个选择多个变换和多个逆变换的至少一个的子集。
附加地,另一个优势/特征是一种具有视频编码器的设备,其中在具有多个画面的视频序列中包括了画面,并且其中在视频编码器和对应解码器处都知道多个变换和对应多个逆变换,并且针对如上所述的多个画面的每一个选择多个变换和多个逆变换的至少一个的子集,其中使用一个或多个高级语法元素在对应比特流中传输子集的索引。
此外,另一个优势/特征是一种具有视频编码器的设备,其中在具有多个画面的视频序列中包括了画面,并且其中在视频编码器和对应解码器处都知道多个变换和对应多个逆变换,并且针对如上所述的多个画面的每一个选择多个变换和多个逆变换的至少一个的子集,其中自适应地更新多个变换以获得训练的多个变换,并且其中子集的选择基于所述多个变换和所述训练的多个变换。
另外,另一个优势/特征是具有视频编码器的设备,其中在具有多个画面的视频序列中包括了画面,并且在视频编码器和对应解码器处都知道多个变换和对应多个逆变换,并且针对如上所述的多个画面的每一个选择多个变换和多个逆变换的至少一个的子集,其中响应于从在先编码的画面提供的信息来自适应地更新多个变换。
基于这里的教导,本领域的普通技术人员可以容易地确定本发明的这些以及其它特征和优点。应理解的是,本发明的教导可以以硬件、软件、固件、专用处理器或其组合的各种形式来实现。
最优选地,将本发明的教导实现为硬件和软件的组合。此外,可以将软件实现为在程序存储单元上具体体现的应用程序。可将该应用程序上载到包括任何适合架构在内的机器并由该机器执行。优选地,在具有硬件(如,一个或多个中央处理单元(“CPU”)、随机访问存储器(“RAM”)以及输入/输出(“I/O”)接口)的计算机平台上实现该机器。该计算机平台还可以包括操作系统和微指令代码。这里描述的各种处理和功能可以是可由CPU执行的微指令代码的一部分或应用程序的一部分或其组合。此外,可将其它各种外围单元连接到计算机平台,如附加的数据存储单元和打印单元。
还应理解的是,由于在附图中描述的一些构成系统组件和方法优选地以软件来实现,系统组件或处理功能块之间的实际连接可以根据对本发明原理编程的方式而有所不同。在这里给出教导的情况下,本领域的普通技术人员将能够想到本发明的这些以及类似的实现方式或配置。
虽然这里参考附图描述了示意性的实施例,但是应理解的是,本发明并不限于这些确定的实施例,在不背离本发明的范围或精神的情况下,本领域的普通技术人员可以实现各种变化和修改。所有这些变化和修改旨在包括在如所附权利要求中所阐述的本发明的范围内。