掌桥专利:专业的专利平台
掌桥专利
首页

视频编码方法、装置和计算机可读存储介质

文献发布时间:2024-04-18 20:02:18


视频编码方法、装置和计算机可读存储介质

说明书

本申请总体上涉及视频编码技术领域,更具体地涉及一种视频编码方法、装置和计算机可读存储介质。

为了减少视频存储和传输所占用的带宽,需要对视频数据进行压缩编码处理。在硬件实现视频编码器的时候,由于编码器模块较多且互相具有一定的依赖性,一般采用流水级结构实现,每级流水完成一个图像块的一步操作。当采用流水级结构的时候,由于流水级之间的数据依赖性会导致编码性能下降。

发明内容

本申请实施例提供一种视频编码方案,可以降低由于流水级之间的数据依赖而导致的编码性能下降,提高编码性能。下面简要描述本申请提出的视频编码方案,更多细节将在后续结合附图在具体实施方式中加以描述。

根据本申请实施例一方面,提供了一种视频编码方法,所述方法包括针对待编码图像块进行两个阶段的预测和决策,所述两个阶段包括第一阶段和第二阶段,其中:所述第一阶段针对模式选择不依赖相邻已编码图像块的预测模式获取预测模式信息;所述第二阶段根据所述第一阶段获取的所述预测模式信息以及所述待编码图像块的相邻已编码图像块的真实数据更新所述预测模式信息对应的编码信息。

根据本申请实施例另一方面,提供了一种视频编码装置,所述装置包括存储器和处理器,所述存储器上存储有由所述处理器运行的计算机程序,所述计算机程序在被所述处理器运行时,使得所述处理器针对待编码图像块进行两个阶段的预测和决策,所述两个阶段包括第一阶段和第二阶段,其中:所述第一阶段针对模式选择不依赖相邻已编码图像块的预测模式获 取预测模式信息;所述第二阶段根据所述第一阶段获取的所述预测模式信息以及所述待编码图像块的相邻已编码图像块的真实数据更新所述预测模式信息对应的编码信息。

根据本申请实施例再一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被处理器运行时执行上述任一项所述的视频编码方法。

根据本申请实施例的视频编码方法、装置和计算机可读存储介质针对待编码图像块通过两个阶段的预测分析进行编码模式的决策,能够降低硬件实现编码器时由于数据依赖性造成的编码影响,提高编码效率。

图1示出视频编码的基本流程框图示意图。

图2示出视频编码器简易流水结构示意图。

图3示出图2中的流水结构对应的流程框图。

图4示出视频编码器流水结构的一个示例。

图5示出视频编码器流水结构的另一个示例。

图6示出应用本申请实施例的技术方案的架构图。

图7示出根据本申请实施例的视频编码方法的示意性流程图。

图8示出根据本申请实施例的视频编码方法中采用的完整率失真代价计算的流程框图。

图9示出根据本申请实施例的视频编码方法中采用的快速率失真代价计算的流程框图。

图10示出根据本申请实施例的视频编码方法对应的流水结构的一个示例。

图11示出根据本申请实施例的视频编码方法对应的流水结构的另一个示例。

图12示出根据本申请实施例的视频编码装置的示意性框图。

下面将参照附图描述本申请的示例实施例。

在此使用的术语的目的仅在于描述具体实施例并且不作为本申请的限制。在此使用时,单数形式的“一”、“一个”和“所述/该”也意图包括复数形式,除非上下文清楚指出另外的方式。还应明白术语“组成”和/或“包括”,当在该说明书中使用时,确定所述特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或更多其它的特征、整数、步骤、操作、元件、部件和/或组的存在或添加。在此使用时,术语“和/或”包括相关所列项目的任何及所有组合。本申请实施例中所提及的多个包括至少两个,至少两个例如可以是2个、3个、4个或者更大的数值。本申请实施例中的“A或B”,既包括单独的A,也包括单独的B,还包括A和B的结合。

为了彻底理解本申请实施例,将在下列的描述中提出详细的步骤以及详细的结构,以便阐释本申请实施例提出的技术方案。

为了减少视频存储和传输所占用的带宽,需要对视频数据进行压缩编码处理。图1示出了视频编码的基本流程框图示意图。如图1所示的,压缩编码处理过程主要包括预测、变换、量化和熵编码过程。其中预测包括帧内预测和帧间预测两种类型,其目的在于利用预测块信息去除当前待编码图像块的冗余信息。帧内预测利用本帧图像的信息获得预测块数据。帧间预测利用参考帧的信息获得预测块数据,其过程包括针对每个图像块,在参考图像中搜索与当前图像块最匹配的图像块作为预测块;其后,将该图像块与预测块的相应像素值相减得到残差,并将得到的各图像块对应的残差组合在一起,得到图像的残差。其中在进行搜索时,为了降低搜索的复杂度,一般采用先按照整像素搜索,即在搜索区域内寻找一个最匹配的整像素点,再在其附近搜索分数像素(子像素)点,获得最优的运动矢量量。有了运动矢量,可以从参考图像中通过插值的方法得到当前编码图像块的帧间参考数据,这个过程称为运动补偿。残差可以使用变换矩阵去除图像的残差的相关性,即去除图像的冗余信息,以便提高编码效率,图像中的数据块的变换通常采用二维变换,即在编码端将数据块的残差信息分别与一个NxM的变换矩阵(其中N和M为自然数)及其转置矩阵相乘,相乘之后得到的是变换系数。变换系数经量化可得到量化后的系数,最后将量化后的系数进行熵编码,再将熵编码得到的比特流及进行编码后的编 码模式信息,如帧内预测模式、运动矢量信息等,进行存储或发送到解码端。在图像的解码端,首先获得熵编码比特流后进行熵解码,得到相应的残差,根据解码得到的运动矢量或帧内预测等信息图像块对应的预测图像块,根据预测图像块与图像块的残差得到当前图像块中各像素点的值。

其中,本申请中的图像块为图像编解码过程中用于进行编码或预测的单元,图像块可以包括但不限于:H.264标准中提及的宏块(Macroblock,MB),H.265标准中提及的编码树单元(Coding Tree Unit,CTU)、编码单元(Coding Unit,CU)或预测单元(Prediction Unit,PU),H.266标准中的CTU或CU,以及未来演进标准中用于进行编码或预测的单元。

在硬件实现视频编码器的时候,由于编码器模块较多且互相具有一定的依赖性,一般采用流水级结构实现,每级流水完成一个图像块的一步操作。图2示出了视频编码器简易流水结构示意图。如图2所示的,一般帧间预测的整像素搜索和子像素搜索各采用一级流水,运动补偿采用一级流水,帧内预测采用一级流水,变换和量化、反量化反变换以及模式决策采用一级流水,熵编码和环路滤波采用一级流水。

图3示出了图2中的流水结构对应的流程框图。如图3所示的,图像块1、图像块2、图像块3和图像块4按照图2的流水结构进行编码,图像块1进行子像素搜索时,图像块2开始进行整像素搜索;图像块1进行帧内预测时,图像块2进行子像素搜索,图像块3进行整像素搜索;图像块1进行模式决策时,图像块2进行帧内预测,图像块3进行子像素搜索,图像块4进行整像素搜索;以此类推。

根据图3所示的流程,当图像块2进行到帧内预测时,需要使用相邻块图像块1的帧内预测模式作为其帧内模式的预测值,然而从流水结构顺序上可以发现,图像块1此时正在模式决策的流水,并没有选择出最终的帧内预测模式,所以由于数据的依赖性,图像块2如果等待图像块1的帧内预测模式信息,则需要延迟一个流水级才能进行帧内预测,显然这是不符合流水结构思想的。因此,希望能够消除数据的依赖性或者尽量合并流水级。

图4示出了视频编码器流水结构的一个示例。如图4所示的,与图2所示的流水结构相比,在图4中所示的流水结构中,将帧内预测和模式决 策两级流水合并到一级,这样的好处在于每个图像块在做帧内预测时,能完整拿到相邻块模式决策后的真实数据,然而这样做首先是大大增加了此级流水的设计难度,另外有可能由于流水的时钟数目不足而简化算法导致编码性能的下降。

图5示出了视频编码器流水结构的另一个示例。如图5所示的,与图2所示的流水结构相比,在图5中所示的流水结构中,在变换量化、反量化反变换之前完成模式决策,这样在帧内预测和帧间预测时,已经可以获得相邻块的真实预测信息。然而这种设计下,由于在模式决策的时候还未进行变换量化、反量化反变换等操作,所以无法使用最准确的率失真代价数据来进行比较,势必会产生性能损失;另外,可以看出,由于重建图像的操作需要反变换之后的数据,而帧内预测需要用到相邻图像块的重建图像作为参考,而此时由于流水级设计的原因无法获得相邻图像块的重建数据,在帧内预测的时候只能使用其他方式来进行帧内预测模式选择,也会带来一定的性能损失。

图4和图5示出的流水结构仅是两种示例,在实际的硬件设计中还可能有其他设计方法,并且每级流水级内部也会复杂很多,比如将帧内帧间的变换量化及反量化反变换操作分开进行,这样可能在一个流水级内能完成当前图像块的所有帧内预测相关操作,并且可以与帧间预测的流水完全并行(图4的设计也是这样的一个例子);再比如将子像素搜索、运动补偿、变换量化/反量化反变换以及模式决策放入同一个流水级,可以解决大部分帧间预测的数据依赖问题。然而,在实际硬件设计中,为了保证流水级之间的平衡,即每个流水级之间的所需操作的总时钟数差异不会太大,否则会造成很多流水级空闲在等最长的一级流水,并且为了降低设计的复杂度和片上存储空间(静态随机访问存储器;寄存器),有些模块一般不会放在同一级流水中完成。比如整像素搜索和子像素搜索一般不能在同一级完成,子像素搜索、运动补偿、变换量化/反量化反变换这三部分一般无法在一个流水级中完成等。

总体上,流水级之间的数据依赖性会导致编码性能下降。为了解决该问题,本申请提出一种视频编码方案,其可以降低由于流水级之间的数据依赖而导致的编码性能下降,提高编码性能。下面结合图6到图12来描述 根据本申请实施例的视频编码方案。

图6是应用本申请实施例的技术方案的架构图。

如图6所示,系统600可以接收待处理数据602,对待处理数据602进行处理,产生处理后的数据608。例如,系统600可以接收待编码数据,对待编码数据进行编码以产生编码后的数据,或者,系统600可以接收待解码数据,对待解码数据进行解码以产生解码后的数据。在一些实施例中,系统600中的部件可以由一个或多个处理器实现,该处理器可以是计算设备中的处理器,也可以是移动设备(例如手机、相机、无人机等)中的处理器。该处理器可以为任意种类的处理器,本申请实施例对此不做限定。在一些可能的设计中,该处理器可以包括编码器、解码器或编解码器等。系统600中还可以包括一个或多个存储器。该存储器可用于存储指令和数据,例如,实现本申请实施例的技术方案的计算机可执行指令、待处理数据602、处理后的数据608等。该存储器可以为任意种类的存储器,本申请实施例对此也不做限定。

待编码数据可以包括文本、图像、图形对象、动画序列、音频、视频、或者任何需要编码的其他数据。在一些情况下,待编码数据可以包括来自传感器的传感数据,该传感器可以为视觉传感器(例如,相机、红外传感器),麦克风、近场传感器(例如,超声波传感器、雷达)、位置传感器、温度传感器、触摸传感器等。在一些情况下,待编码数据可以包括来自用户的信息,例如,生物信息,该生物信息可以包括面部特征、指纹扫描、视网膜扫描、嗓音记录、DNA采样等。

图7示出了根据本申请实施例的视频编码方法700的示意性流程图。如图7所示,方法700包括针对待编码图像块进行两个阶段的预测和决策,所述两个阶段包括第一阶段S710和第二阶段S720,其中:第一阶段S710针对模式选择不依赖相邻已编码图像块的预测模式获取预测模式信息;第二阶段S720根据第一阶段S710获取的所述预测模式信息以及所述待编码图像块的相邻已编码图像块的真实数据更新所述预测模式信息对应的编码信息。

对于流水级之间的数据依赖性,不同的预测模式之间模式可能在一些环节具备相似的数据依赖性,但在另一些环节具备不同的数据依赖性。例 如,对于帧间预测的普通模式,待编码图像块的模式选择和重建均不依赖其相邻已编码图像块的数据,但待编码图像块的熵编码受其相邻已编码图像块的数据影响;对于帧内预测模式,待编码图像块的模式选择可以不依赖其相邻已编码图像块的数据,但待编码图像块的重建依赖其相邻已编码图像块的数据,且待编码图像块的熵编码受其相邻已编码图像块的数据影响;对于帧间预测的特殊模式(诸如跳过模式、直接模式或合并模式),待编码图像块的模式选择和重建均依赖其相邻已编码图像块的数据的预测模式,且待编码图像块的熵编码受其相邻已编码图像块的数据影响。由此可见,帧间预测的普通模式、帧内预测、帧间预测的特殊模式这三者在熵编码环节的数据依赖性是相似的,因为在这些模式下待编码图像块的熵编码均受其相邻已编码图像块的数据影响;但这些模式在其他环节,如前述的待编码图像块的模式选择和重建环节则因模式的不同而对相邻已编码图像块的数据的依赖性不同。

基于此,在本申请的实施例中,采用两级决策框架,通过两个阶段的预测分析进行编码模式的决策,其中第一阶段S710针对模式选择不依赖相邻已编码图像块的预测模式获取预测模式信息,第二阶段S720根据所述第一阶段S710获取的所述预测模式信息以及所述待编码图像块的相邻已编码图像块的真实数据更新所述预测模式信息对应的编码信息。也就是说,在本申请的实施例中,第一阶段S710不需要相邻已编码图像块的真实数据,在第二阶段S720才需要相邻已编码图像块的真实数据,这使得可以将不需要相邻已编码图像块的真实数据的预测模式放在第一阶段S710,而将需要相邻已编码图像块的真实数据的预测模式放在第二阶段S720,这样能够降低由于流水级之间的数据依赖性而导致的编码性能下降,降低硬件设计的复杂度,显著提高编码效率。

在本申请的实施例中,模式选择不依赖相邻已编码图像块的预测模式可以包括第一预测模式和第二预测模式,其中,所述第一预测模式为所述待编码图像块的模式选择和重建均不依赖其相邻已编码图像块的数据的预测模式,所述第二预测模式为所述待编码图像块的模式选择不依赖其相邻已编码图像块的数据、但所述待编码图像块的重建依赖其相邻已编码图像块的数据的预测模式。

在本申请的实施例中,在第一阶段S710针对模式选择不依赖相邻已编码图像块的预测模式获取的预测模式信息可以包括用于预测过程的预测信息,例如包括用于帧间预测的运动矢量和参考帧索引值,或者帧内预测模式;在第二阶段S720所更新的编码信息可以包括用于熵编码的预测模式信息和残差。其中,用于熵编码的预测模式信息可以包括用于帧间预测的运动矢量对应的运动矢量差值或者帧内预测模式对应的熵编码模式信息。

在本申请的实施例中,第一预测模式可以包括帧间预测的普通模式。帧间预测的普通模式即选择相邻块数据做运动矢量的预测,编码运动矢量残差及系数的模式,其特点为,模式选择(包括块划分选择和运动矢量选择)不需要依赖相邻块数据即可完成,重建图像参考的是已编码帧的重建图像,同样也不需要依赖相邻数据块,仅在熵编码阶段需要相邻块信息重新计算运动矢量残差并且编码。因此,对于第一预测模式(如帧间预测的普通模式),前述的第一阶段S710可以进一步包括:确定所述第一预测模式的子模式中的第一最优子模式。也就是说,对于第一预测模式来说,其在子模式选择和重建时完全不需要依赖相邻块的数据,仅在熵编码阶段编码模式信息时需要相邻块的数据进行调整,此处对最终比特数的影响可以通过估计得到近似值,因此在第一阶段S710可以直接确定第一预测模式的子模式中的最优子模式。为了与下文中的第二预测模式的子模式中的最优子模式相互区分,此处将第一预测模式的子模式中的最优子模式称为第一最优子模式,而在下文中将第二预测模式的子模式中的最优子模式称为第二最优子模式。

在本申请的实施例中,第二预测模式可以包括帧内预测模式。对于帧内预测模式,其在子模式的选择上一般不需要依赖相邻块的数据即可完成,但是在预测时需要使用到相邻块的重建值,并且在编码模式信息时,需要使用相邻块的预测模式作为上下文。与第一预测模式相比,第二预测模式虽然在子模式选择上不需要依赖相邻块的数据,但在重建时需要依赖相邻块的数据,因此对于第二预测模式,前述的第一阶段S720可以进一步包括:确定所述第二预测模式中待用于选择最优子模式的待选子模式。也就是说,对于第二预测模式来说,在不依赖相邻块数据的第一阶段S710可以得到最佳的一个或若干个子模式作为待用于选择最优子模式的待选子模式,而暂 时无法得到第二预测模式的子模式中的最优子模式,可在第二阶段S720确定所述待选子模式中的最优子模式。

在本申请的实施例中,对于上述第一预测模式和第二预测模式,前述的第二阶段S720可以进一步包括:确定所述第二预测模式中的所述待选子模式中的第二最优子模式,并根据所述第一最优子模式和所述第二最优子模式针对所述待编码图像块进行模式决策和重建。其中,所述针对所述待编码图像块进行的重建可以包括:根据所述模式决策确定的模式类型确定所述待编码图像块的预测值,并计算所述预测值与所述待编码图像块的残差;将所述计算得到的残差进行变换、量化、反量化和反变换后与所述预测值相加,以得到所述待编码图像块的重建值。由于此阶段已经得到所有相邻块的模式信息和重建数据,因此可以完成第二预测模式的最优子模式确定,此时所有预测模式的最优子模式已确定,可以进行模式决策,并且在模式决策后根据决策结果得到当前图像块的最终模式信息和重建图像,这些信息可以给当前阶段中剩余的图像块使用,也可以提供给下一个图像块在此阶段使用。

在本申请的实施例中,所述确定所述第一预测模式的子模式中的第一最优子模式可以包括:针对所述第一预测模式的子模式进行率失真代价计算,以得到所述第一最优子模式;所述确定所述第二预测模式中的所述待选子模式中的第二最优子模式可以包括:针对所述第二预测模式的所述待选子模式进行率失真代价计算,以得到所述第二最优子模式。也就是说,可以通过计算率失真代价的方式来确定待选子模式中的最优子模式,将具有最小率失真代价的待选子模式确定为最优子模式。

示例性地,在针对待选子模式进行率失真代价计算时,可以采用完整的率失真代价计算流程,如图8所示的,即对某种预测模式,通过预测值与原始图像数据得到预测残差后,经过变换、量化、反量化、反变换步骤之后得到重建值来计算失真,同时计算或者估计编码模式的比特数及编码量化后的系数的比特数,通过编码该模式的比特总数和重建值计算率失真代价。示例性地,在针对待选子模式进行率失真代价计算时,也可以采用快速的率失真代价计算流程,如图9所示的,即通过完整率失真优化的中间结果,快速估计出失真或者比特数。

在一个示例中,快速的率失真代价计算流程可以包括:对某种预测模式,通过预测值与原始图像数据得到预测残差后,经过变换和反变换步骤之后得到重建值来计算失真,同时计算或者估计编码模式的比特数及编码量化后的系数的比特数,通过编码该模式的比特总数和重建值计算率失真代价。在另一个示例中,快速的率失真代价计算流程可以包括:对某种预测模式,通过预测值与原始图像数据得到预测残差后计算失真,同时计算或者估计编码模式的比特数及编码量化后的系数的比特数,通过编码该模式的比特总数和重建值计算率失真代价。

在实际应用中,可以根据具体的需求来选择使用完整的率失真代价计算流程或者快速的率失真代价计算流程。一般地,使用完整的率失真代价计算流程会得到更好的编码性能,但是由于其流程较长,设计上较为复杂且会消耗大量的硬件资源,故编码器中会尽量减少使用完整率失真优化的次数,如对于大多数模式而言,还有子模式类型(如帧内编码的不同方向),一般采用快速的率失真优化算法从子模式中选择一种子模式作为该预测模式的代表,计算其完整率失真代价,与其他模式最优子模式的率失真代价比较以获得一个编码性能与硬件资源折中的方案。

基于上面的描述,根据本发明实施例的视频编码方法可以采用如图10所示的流水结构,图10示出了根据本申请实施例的视频编码方法对应的流水结构的一个示例,如图10所示的,采用两阶段预测和决策,其中在第一阶段可以完成第一预测模式的率失真代价计算以及第二预测模式的子模式选择;在第二阶段完成第二预测模式的率失真代价计算以及模式选择和图像块重建。如前文所述的,该流水结构根据不同预测模式对相邻块数据依赖性的不同,分为不依赖相邻数据块的第一阶段和依赖相邻数据块的第二阶段,可以降低由于流水级之间的数据依赖性而导致的编码性能下降,降低硬件设计的复杂度,显著提高编码效率。

现在返回继续参考图7,在本申请的进一步的实施例中,所述第二阶段还可以包括:确定第三预测模式的子模式中的第三最优子模式,其中所述第三预测模式为所述待编码图像块的模式选择和重建均依赖其相邻已编码图像块的数据的预测模式;并且,针对所述待编码图像块的模式决策和重建是根据所述第一预测模式的子模式中的第一最优子模式、所述第二预 测模式的子模式中的第二最优子模式和所述第三预测模式的子模式中的第三最优子模式进行的。

示例性地,第三预测模式可以包括帧间预测的特殊模式,诸如跳过模式、直接模式或合并模式。帧间预测的这些特殊模式的特点是,预测信息(如真实运动矢量)只能从相邻块获得,涉及到的模式选择也必须在相邻块提供的预测值中选择而不能做修正(如没有运动矢量残差)。因此,对于第三预测模式(如帧间预测跳过模式、直接模式或合并模式),需要完全在前述的第二阶段S720完成。为了与上文中的第一预测模式和第二预测模式的子模式中的最优子模式相互区分,此处将第三预测模式的子模式中的最优子模式称为第三最优子模式。由于此阶段已经得到所有相邻块的模式信息和重建数据,因此可以完成第二预测模式的最优子模式确定和第三预测模式的最优子模式确定,此时所有预测模式的最优子模式已确定,可以进行模式决策,并且在模式决策后根据决策结果得到当前图像块的最终模式信息和重建图像,这些信息可以给当前阶段中剩余的图像块使用,也可以提供给下一个图像块在此阶段使用。

在本申请的实施例中,所述确定所述第三预测模式的子模式中的第三最优子模式可以包括:针对所述第三预测模式的子模式进行率失真代价计算,以得到所述第三最优子模式。也就是说,可以通过计算率失真代价的方式来确定待选子模式中的最优子模式,将具有最小率失真代价的待选子模式确定为最优子模式。示例性地,在针对待选子模式进行率失真代价计算时,可以采用完整的率失真代价计算流程(如图8所示的),也可以采用快速的率失真代价计算流程(如图9所示的)。

基于上面的描述,根据本发明实施例的视频编码方法可以采用如图11所示的流水结构,图11示出了根据本申请实施例的视频编码方法对应的流水结构的另一个示例,如图11所示的,采用两阶段预测和决策,其中在第一阶段可以完成第一预测模式的率失真代价计算以及第二预测模式的子模式选择;在第二阶段完成第二预测模式的率失真代价计算、第三预测模式的率失真代价计算以及模式选择和图像块重建。如前文所述的,该流水结构根据不同预测模式对相邻块数据依赖性的不同,分为不依赖相邻数据块的第一阶段和依赖相邻数据块的第二阶段,可以降低由于流水级之间的数 据依赖性而导致的编码性能下降,降低硬件设计的复杂度,显著提高编码效率。

在本申请的实施例中,前述的第一阶段,对于前述的第一预测模式,可以包括多个流水级,所述多个流水级分别进行整像素搜索、子像素搜索、插值、变换量化、反量化反变换和重建;对于前述的第二预测模式,其子模式选择可以在第一阶段用若干流水级完成。在本申请的实施例中,前述的第二阶段需要用到相邻块的数据,因此可以用一个流水级来完成,以减小数据依赖性。此外,第二阶段涉及的预测模式数目有限,因此复杂度可以准确地估计。在本申请的上述实施例中,将第二预测模式的子模式选择部分放在第一阶段,可以大量减轻第二阶段流水级的压力。在其他实施例中,第二预测模式的子模式选择部分也可以放在第二阶段。

基于上面的描述,根据本申请实施例的视频编码方法针对待编码图像块通过两个阶段的预测分析进行编码模式的决策,能够降低硬件实现编码器时由于数据依赖性造成的编码影响,提高编码效率。

下面结合图12描述根据本申请另一方面提供的视频编码装置。图12示出了根据本申请实施例的视频编码装置1200的示意性框图。视频编码装置1200包括存储器1210以及处理器1220。视频编码装置1200可以实现为编码器、手机、相机、无人机等可实现编码流程的装置、产品或设备。

其中,存储器1210存储用于实现根据本申请实施例的视频编码方法中的相应步骤的程序。处理器1220用于运行存储器210中存储的程序,以执行根据本申请实施例的视频编码方法的相应步骤。

在本申请的一个实施例中,在所述程序被处理器1220运行时使得视频编码装置1200针对待编码图像块进行两个阶段的预测和决策,所述两个阶段包括第一阶段和第二阶段,其中:所述第一阶段针对模式选择不依赖相邻已编码图像块的预测模式获取预测模式信息;所述第二阶段根据所述第一阶段获取的所述预测模式信息以及所述待编码图像块的相邻已编码图像块的真实数据更新所述预测模式信息对应的编码信息。

在本申请的一个实施例中,所述模式选择不依赖相邻已编码图像块的预测模式包括第一预测模式和第二预测模式,其中,所述第一预测模式为所述待编码图像块的模式选择和重建均不依赖其相邻已编码图像块的数据 的预测模式,所述第二预测模式为所述待编码图像块的模式选择不依赖其相邻已编码图像块的数据、但所述待编码图像块的重建依赖其相邻已编码图像块的数据的预测模式。

在本申请的一个实施例中,所述获取的预测模式信息包括用于预测过程的预测信息,所述更新的编码信息包括用于熵编码的预测模式信息和残差。

在本申请的一个实施例中,所述用于预测过程的预测信息包括用于帧间预测的运动矢量和参考帧索引值,或者帧内预测模式,所述用于熵编码的预测模式信息包括所述运动矢量对应的运动矢量差值或者所述帧内预测模式对应的熵编码模式信息。

在本申请的一个实施例中,所述第一预测模式包括帧间预测的普通模式。

在本申请的一个实施例中,所述第二预测模式包括帧内预测模式。

在本申请的一个实施例中,所述计算机程序在被所述处理器1220运行时使得所述处理器1220执行的所述第一阶段进一步包括:确定所述第一预测模式的子模式中的第一最优子模式,并确定所述第二预测模式中待用于选择最优子模式的待选子模式;所述计算机程序在被所述处理器1220运行时使得所述处理器1220执行的所述第二阶段进一步包括:确定所述第二预测模式中的所述待选子模式中的第二最优子模式,并根据所述第一最优子模式和所述第二最优子模式针对所述待编码图像块进行模式决策和重建。

在本申请的一个实施例中,所述计算机程序在被所述处理器1220运行时使得所述处理器1220执行的所述针对所述待编码图像块进行的重建包括:根据所述模式决策确定的模式类型确定所述待编码图像块的预测值,并计算所述预测值与所述待编码图像块的残差;将所述计算得到的残差进行变换、量化、反量化和反变换后与所述预测值相加,以得到所述待编码图像块的重建值。

在本申请的一个实施例中,所述计算机程序在被所述处理器1220运行时使得所述处理器1220执行的所述确定所述第一预测模式的子模式中的第一最优子模式包括:针对所述第一预测模式的子模式进行率失真代价 计算,以得到所述第一最优子模式;所述计算机程序在被所述处理器1220运行时使得所述处理器1220执行的所述确定所述第二预测模式中的所述待选子模式中的第二最优子模式包括:针对所述第二预测模式的所述待选子模式进行率失真代价计算,以得到所述第二最优子模式。

在本申请的一个实施例中,所述计算机程序在被所述处理器1220运行时使得所述处理器1220执行的所述第二阶段还可以包括:确定第三预测模式的子模式中的第三最优子模式,所述第三预测模式为所述待编码图像块的模式选择和重建均依赖其相邻已编码图像块的数据的预测模式;并且针对所述待编码图像块的模式决策和重建是根据所述第一预测模式的子模式中的第一最优子模式、所述第二预测模式的子模式中的第二最优子模式和所述第三预测模式的子模式中的第三最优子模式进行的。

在本申请的一个实施例中,所述第三预测模式包括帧间预测跳过模式、直接模式或合并模式。

在本申请的一个实施例中,所述计算机程序在被所述处理器1220运行时使得所述处理器1220执行的所述确定所述第三预测模式的子模式中的第三最优子模式包括:针对所述第三预测模式的子模式进行率失真代价计算,以得到所述第三最优子模式。

在本申请的一个实施例中,所述率失真代价计算为完整率失真代价计算或快速率失真代价计算。

在本申请的一个实施例中,所述第一阶段包括多个流水级,所述多个流水级分别进行整像素搜索、子像素搜索、插值、变换量化、反量化反变换和重建。

在本申请的一个实施例中,所述第二阶段由一个流水级来完成。

在本申请的一个实施例中,所述第二预测模式中的所述待选子模式包括一个或更多个子模式。

此外,根据本申请实施例,还提供了一种计算机可读存储介质,在所述计算机可读存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本申请实施例的视频编码方法的相应步骤。所述计算机可读存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器 (EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述计算机可读存储介质的任意组合。所述计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合。

在一个实施例中,所述计算机程序指令在被计算机运行时可以执行根据本申请实施例的视频编码方法。

本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的视频编码方法。

还应理解,本说明书中描述的各种实施方式,既可以单独实施,也可以组合实施,本申请实施例对此并不限定。

以上示例性地描述了根据本申请实施例的视频编码方法、装置以及计算机可读存储介质。基于上面的描述,根据本申请实施例的视频编码方法、装置和计算机可读存储介质针对待编码图像块通过两个阶段的预测分析进行编码模式的决策,能够降低硬件实现编码器时由于数据依赖性造成的编码影响,提高编码效率。

尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本申请实施例的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本申请实施例的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本申请实施例的范围之内。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本申请实施例并帮助理解各个发明方面中的一个或多个,在对本申请实施例的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本申请实施例的方法解释成反映如下意图:即所要求保护的本申请实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请实施例的单独实施例。

本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请实施例的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本申请实施例的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的一些模块的一些或者全部功能。本申请实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请实施例的程序可以存储在计算机可读存储介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供, 或者以任何其他形式提供。

应该注意的是上述实施例对本申请实施例进行说明而不是对本申请实施例进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。本申请实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

以上所述,仅为本申请实施例的具体实施方式或对具体实施方式的说明,本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。本申请实施例的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种编码方法、解码方法及装置、计算机可读存储介质
  • 视频稳像方法、装置及计算机可读存储介质
  • 视频旋转方法、装置、计算机可读存储介质及电子设备
  • 视频校正方法、装置、电子设备和计算机可读存储介质
  • 视频分类方法、装置、电子设备及计算机可读存储介质
  • 视频编码方法、装置、计算机设备及计算机可读存储介质
  • 视频编码方法、装置、计算机可读存储介质和计算机设备
技术分类

06120116579304