用于无损压缩视频数据的方法和装置与流程

文档序号:15062514发布日期:2018-07-31 22:06阅读:175来源:国知局

本申请涉及视频图像处理技术领域,更具体地,涉及一种用于无损压缩视频数据的方法和装置。



背景技术:

随着超高分辨率的视频图像在市场上的流行,视频、图形图像编解码器对外部存储器造成的带宽负担变得越来越重,并且与外部存储器大量的数据交换,同时也增加了芯片功耗。视频数据压缩是解决带宽负担的一种方式。帧压缩的方法一般有三类:有损压缩、无损压缩和有损、无损混合压缩。有损压缩一般采用对压缩数据进行量化的方法。无损帧压缩通常由预测和熵编码两级组成。第一级的处理方法一般有两种类型,一种是预测处理,得到待压缩数据与预测值的差值再进行第二级处理,如采用空域预测,另一种是变换处理,将压缩数据转到频域后再进行第二级处理。第二级的处理方法通常是进行熵编码处理,一般采用变长码编码,从而达到数据压缩。

有损压缩通常以损失视频质量作为代价换取压缩率的提高,这会降低当前视频帧的质量,在视频编解码器中如果当前视频帧被作为后续视频帧的参考视频帧,那么当前视频帧质量的损失将会在后续视频帧中传递,使得视频序列的质量下降。目前常见的无损压缩方法或者整体压缩率偏低,或者计算复杂度相对较大。

因此,有必要改进现有的视频数据压缩方法。



技术实现要素:

本申请的一个目的在于提供一种用于无损压缩视频数据的方法和装置,能够减少视频、图形图像编解码器对外部存储器的带宽需求,并且具有较高的数据压缩率和数据吞吐率。

在本申请的一个方面,提供了一种用于无损压缩视频数据的方法,包括:a)接收视频数据,所述视频数据包括多个视频帧;b)将所述多个视频帧中的每个视频帧分割为多个压缩区域,其中每个压缩区域包括至少一个压缩单元,并且每个压缩单元包括一个像素阵列;c)对所述多个视频帧中第一个视频帧的每个压缩区域分别地进行下述操作:c1)提供一预测模式参数集,其包括多个预测模式;c2)以所述预测模式参数集包括的多个预测模式对所述压缩区域包括的至少一部分压缩单元进行预测处理,并且确定所述多个预测模式在所述压缩区域的预测处理中的使用情况;c3)根据所述多个预测模式在所述压缩区域的预测处理中的使用情况,从所述预测模式参数集中选择至少一部分预测模式作为所述压缩区域的优选预测模式参数集;d)以所确定的优选预测模式参数集对所述多个视频帧中第一个视频帧之后的后续视频帧分别进行预测处理,从而得到所述后续视频帧包括的每个压缩单元对应的编码块;以及e)对所述编码块分别进行熵编码处理,从而得到压缩的视频数据。

在本申请的另一方面,还提供了一种用于无损压缩视频数据的装置,用于对包括多个视频帧的视频数据进行压缩处理,其中所述多个视频帧中的每个视频帧被分割为多个压缩区域,其中每个压缩区域包括至少一个压缩单元,并且每个压缩单元包括一个像素阵列。所述装置包括:压缩模式参数集,其用于提供预测模式参数集,所述预测模式参数集包括用于对所述视频数据进行二维空域预测处理的多个预测模式;二维空域预测模块,其用于以所述预测模式参数集包括的多个预测模式对所述多个视频帧中第一个视频帧的每个压缩区域包括的至少一部分压缩单元进行二维空域预测处理,并且生成对应的编码块;压缩代价计算模块,其用于从所述二维空域预测模块接收预测处理所述第一视频帧的每个压缩单元所使用的预测模式以及对应的编码块,并且确定每个压缩单元的最优预测模式;统计模块,其用于从所述压缩代价计算模块接收预测处理所述第一视频帧包括的压缩单元所使用的最优预测模式,并且生成所述最优预测模式的统计结果;自适应模式参数集选择模块,其用于根据所述最优预测模式的统计结果从所述预测模式参数集中选择至少一部分预测模式作为每个压缩区域的优选预测模式参数集,并且被用于当优选预测模式参数集已选定时,分析优选预测模式参数集是否适用于对当前视频帧序列中的后续视频帧进行预测处理;其中,所述二维空域预测模块还用于以所选择的优选预测模式参数集对所述多个视频帧中第一个视频帧之后的后续视频帧分别进行二维空域预测处理,从而得到所述后续视频帧包括的每个压缩单元对应的编码块;以及其中,所述装置还包括:熵编码模块,其用于对所述编码块分别进行熵编码处理,从而得到压缩的视频数据。

以上为本申请的概述,可能有简化、概括和省略细节的情况,因此本领域的技术人员应该认识到,该部分仅是示例说明性的,而不旨在以任何方式限定本申请范围。本概述部分既非旨在确定所要求保护主题的关键特征或必要特征,也非旨在用作为确定所要求保护主题的范围的辅助手段。

附图说明

通过下面说明书和所附的权利要求书并与附图结合,将会更加充分地清楚理解本申请内容的上述和其他特征。可以理解,这些附图仅描绘了本申请内容的若干实施方式,因此不应认为是对本申请内容范围的限定。通过采用附图,本申请内容将会得到更加明确和详细地说明。

图1示出了根据本申请一个实施例的视频数据的示例性结构;

图2示出了一个压缩单元的示例;

图3示出了根据本申请一个实施例的视频处理系统300;

图4示出了根据本申请一个实施例的压缩处理器400的模块示意图;

图5示出了压缩代价计算单元进行压缩代价计算及判断的流程;

图6示出了根据本申请一个实施例的用于无损压缩视频数据的方法。

具体实施方式

在下面的详细描述中,参考了构成其一部分的附图。在附图中,类似的符号通常表示类似的组成部分,除非上下文另有说明。详细描述、附图和权利要求书中描述的说明性实施方式并非旨在限定。在不偏离本申请的主题的精神或范围的情况下,可以采用其他实施方式,并且可以做出其他变化。可以理解,可以对本申请中一般性描述的、在附图中图解说明的本申请内容的各个方面进行多种不同构成的配置、替换、组合,设计,而所有这些都明确地构成本申请内容的一部分。

图1示出了根据本申请一个实施例的视频数据100的示例性结构。

如图1所示,该视频数据100包括由多个视频帧构成的一个视频序列,其中的每个视频帧都具有相同的高度和宽度。在对视频数据100进行压缩处理之前,该视频数据100中的每个视频帧都被分割为多个压缩区域,例如一个视频帧100i被分割为如图1所示的m×n个压缩区域102的阵列,其中该阵列有m列n行压缩区域102(m、n为大于或等于1的正整数)。由于一个视频序列中时间上相邻或接近的多个视频帧通常显示有相同或相类似的图像内容,因此这些视频帧在同一位置(例如m×n阵列中的第0列第n-2行)处的压缩区域中的图像内容也大体相同或相类似。在将视频帧分割开来之后,对于同一位置上的压缩区域可以采用相同或相似的压缩处理,这有利于提高压缩效率。相反,对于不同位置上的压缩区域,可以按照其具有的图像内容进行不同的压缩处理,例如在空域预测处理中采用不同的预测模式参数集,这有利于进一步提高视频数据的压缩率。

在对视频帧进行区域分割时,通常按照压缩单元为单位对一个视频帧进行分割。其中,每个压缩单元通常包括一个像素阵列。图2示出了一个压缩单元的示例,其中该压缩单元包括16列4行像素,共64个像素。每个压缩区域102中通常包括一个或多个压缩单元,这取决于图像分割时的压缩区域的排列和数量。

图3示出了根据本申请一个实施例的视频处理系统300。该视频处理系统300可以对例如图1和图2所示的视频数据进行处理。

具体地,如图3所示,该视频处理系统300包括视频解码器302,在视频解码器302中,视频数据被进行解码处理以得到重建的视频数据,其中该重建的视频数据采用了特定视频格式,例如yuv格式。可以理解,本申请的方法和装置也可以用于视频编码器重建帧数据的压缩处理,其处理方式类似,在此仅以解码器为例进行说明。

正如图1和图2所示,重建的视频数据包括多个视频帧,其中每一视频帧被分割为多个压缩区域,并且每个压缩区域包括多个压缩单元(cu,compressionunit)。在一些实施例中,用于对视频数据进行分割的图像分割模块(图中未示出)可以被设置在视频解码器302和压缩处理器304之间,或者集成在视频解码器302或压缩处理器304中。经过分割处理后,重建的视频数据被发送给压缩处理器304,以由压缩处理器304对视频数据进行压缩处理。

压缩处理器304包括压缩模块306、统计模块308以及压缩数据封装模块310。其中,压缩模块306用于按照预定的压缩算法对接收到的压缩单元进行压缩。在一些实施例中,压缩模块306可以结合地采用预测处理算法与熵编码处理算法来对压缩单元进行处理。在处理期间,这两种算法均需要从对应的自适应模式参数集选择模块316中获取算法的参数,并且基于取得的模式参数来对压缩单元进行处理。在一些实施例中,预测处理算法与熵编码处理算法分别可以使用的自适应模式参数集选择模块316被设置于主控处理器314中,正如图3所示。在另一些实施例中,模式参数集也可以被设置于其他模块中,例如被设置在压缩处理器306中。

在一些实施例中,自适应模式参数集选择模块316中可以具有压缩模式参数集,其中分别包括有多个模式参数,该模式参数可以被用于某一压缩单元的处理。在这种情况下,压缩模块306可以遍历所有可以使用的模式参数,并且确定使用每一模式参数压缩一个或多个压缩单元所对应的压缩率。基于这些压缩率的计算结果,压缩模块306可以确定具有最佳压缩率的模式参数作为对应压缩单元压缩处理时的最优模式参数,并且利用该最优模式参数对该压缩单元进行压缩处理。

压缩模块306确定的每个压缩单元所采用的最优模式参数会被提供给统计模块308。统计模块308可以对这些最优模式参数进行进一步地统计计算,例如计算每一个模式参数被确定为最优模式参数的频次、占比或类似统计结果。统计模块308可以将其生成的统计结果通过总线提供给主控处理器314,进而由主控处理器314来对自适应模式参数集选择模块316进行修改或设置。例如,如果某一些模式参数没有或者很少被使用,则主控处理器314可以设置自适应模式参数集选择模块316中的这些模式参数被禁用。这样,当压缩模块306为后续视频帧的压缩单元选择最优模式参数而遍历自适应模式参数集选择模块316的压缩模式参数集时,可以不采用这些被禁用的模式参数,这样可以减少计算次数,从而提高压缩处理效率。在一些实施例中,可以从预测模式参数集中选择被确定为最优预测模式的频次超过预定阈值或占比超过预定比率的预测模式作为压缩区域的优选预测模式参数集。

在实际应用中,自适应模式参数集选择模块316的修改和设置特别适用于一个视频数据序列的处理。由于一个视频数据序列中包括的多个视频帧在内容上一般是相互关联的,因此前一视频帧的压缩处理方式通常也适用于该序列中后续视频帧的压缩处理。例如,可以根据对该视频数据序列中第一视频帧中各个压缩单元的压缩处理结果来确定使用频率较高(也即较为适合)的一部分模式参数,并且仅将这部分模式参数用于后续视频帧的压缩处理。相应地,当优选预测模式参数集已选定时,自适应模式参数集选择模块316可以分析优选预测模式参数集是否适用于对当前视频帧序列中的后续视频帧进行预测处理。如果不适合进行处理,自适应模式参数集选择模块316可以重新确定优选预测模式参数集。

可以理解,当该视频数据序列的压缩处理结束时,或者类似地视频数据的内容显著变化时,压缩处理器304可以重新地进行上述模式参数集的修改和设置,从而确定新的适合的模式参数集以用于其他视频数据的处理。但是需要说明的是,本申请的方法和装置也可以用于对属于不同视频数据序列的多个视频帧进行处理,只要这些不同视频数据序列的内容具有相似性。例如,这些视频数据序列可以由监控静态物体或背景环境的视频采集设备生成。

经过压缩处理后,压缩模块306将压缩的视频数据提供给压缩数据封装模块310,并且由该压缩数据封装模块310进行数据封装。之后,封装好的压缩视频数据可以进一步地提供给外部存储器312。

图4示出了根据本申请一个实施例的压缩处理器400的模块示意图,该压缩处理器400是图3所示的视频处理系统300中的压缩处理器304的一个例子。该压缩处理器400可以用于对图1和图2所示的视频数据进行压缩处理。

如图4所示,该压缩处理器400包括压缩模块406和统计模块408。在一些实施例中,压缩处理器400还可以包括数据封装模块(图中未示出)。

具体地,压缩模块406用于执行对视频数据的压缩操作,其可以包括二维空域预测模块422、熵编码模块424以及压缩代价计算模块426。

具体地,二维空域预测模块422用于接收重建视频帧中包含的待压缩的压缩单元,并且对这些压缩单元进行二维空域预测处理。二维空域预测处理通过利用已编码(压缩编码)的像素值作为参考值来预测未编码的像素的值,并且通常像素的预测值与其像素原始值大小相近,因而这种处理可以实现数据压缩。例如,可以采用差分脉冲码调制(dpcm)算法进行二维空域预测处理。

在对一个压缩单元进行二维空域预测处理之前,需要确定按照何种顺序扫描该压缩单元,以从该压缩单元的像素阵列中依次获得所有的像素。参考图2所示,该压缩单元的像素阵列中的所有像素被按照从第0号像素至第63号像素的扫描顺序进行扫描(也即按列扫描,并且不同的列之间按左至右的顺序扫描),并且这些像素会按照扫描的顺序进行处理。可以理解,在一些实施例中,一个压缩单元也可以被按行扫描,并且不同的行之间按从上至下的顺序进行扫描。优选地,扫描的方向可以与压缩单元的像素阵列的列数与行数中较大的一个相对应。例如,图2所示的像素阵列具有16列4行,因而对其的扫描顺序与列相对应。之所以这样处理,是因为这种扫描方式可以减少起始行(列)像素的数量。其中,起始行(列)像素包括像素阵列扫描的起始行的像素(按行扫描),或者包括像素阵列扫描的起始列的像素(按列扫描)。对于图2所示的像素阵列,如果按行扫描,其包括16个起始行像素,这些像素在被二维空域预测处理时仅能参考其左侧的1个像素(除了第0号像素);而如果按列扫描,其包括4个起始列像素,这些像素在二维空域预测处理时仅能参考其上侧的1个像素(除了第0行像素),而其他60个像素均可以参考至少2个像素。因此,优选以按列扫描方式来处理图2所示的压缩单元。

取决于被选为参考值的已编码像素与正在被处理的像素的相对位置,二维空域预测处理可以使用不同的预测模式。在一些例子中,预测模式仅参考一个方向上的一个相邻像素,在另一些例子中,预测模式可以参考多个方向上的多个相邻像素。可选择的预测模式的选择通常取决于每个像素在压缩单元的像素阵列中的位置。

具体地,参考图2所示,位于压缩单元左侧第一列的第0组像素中的每个像素的预测值(除了作为起始像素的第0号像素)仅可以参考其上方相邻的像素的值,这是因为其他相邻位置的像素值都没有生成或暂时不存在。例如,第2号像素的预测值仅可以参考第1号像素的值,因此其预测模式可以被表示为参考上紧邻像素。

然而,对于位于该压缩单元第一行的第1组像素中的每个像素(不包括已归入第0组的第0号像素),其预测值可以参考左紧邻像素和左下紧邻像素。例如,对于第4号像素,因为其周围紧邻的其他像素(第5、8、9号像素)的预测值还没有生成,所以其预测值可以参考左紧邻像素(第0号像素)的值和/或左下紧邻像素(第1号像素)的值中的一个或两个。另外,对于压缩单元中非上述位置的第2组像素,其中每个像素的预测值可以参考左上紧邻像素、左紧邻像素、左下紧邻像素和/或上紧邻像素中的一个或多个,例如参考左上紧邻像素或者参考左上紧邻像素和左紧邻像素。

其中,对于上述的第0组像素和第1组像素,其处于该压缩单元像素阵列的起始边缘位置,因而被称为起始边缘像素。第2组像素处于非起始边缘位置,因而被称为非起始边缘像素。需要特别说明的是,对于第2组像素,其中部分像素处于边缘位置,例如第7、11、15、19、23、27、31、35、39、43、47、51、55、59、61、62、63号像素,但是这些像素并非所在列的起始像素,因而其不属于起始边缘像素。

对于每个像素,经二维空域预测处理后,会得到其对应的预测单元(pu,predictionunit)进而会得到其对应的编码块(cb,codingblock)。例如,对于图2所示的压缩单元,第0号像素的编码值cb[0]与其原始像素值cu[0]相同,因为未对其进行预测;而其他像素的编码值cb[i]=cu[i]-pu[i],其中i为1至63的正整数。cu[i]为第i号像素的原始像素值,而pu[i]为该像素的预测值,其取决于以对应预测模式被参考的一个或多个像素的预测值。换言之,压缩单元被预测处理后得到的编码块的编码值是像素值与预测值之间差值。

二维空域预测模块422会遍历预测模式参数集中的所有预测模式,并且将所使用的预测模式和预测处理得到的编码块发送给压缩代价计算模块426。这样,压缩代价计算模块426可以比较使用不同预测模式时当前压缩单元的压缩率,从而确定最优预测模式和/或较优预测模式。在一些优选的实施例中,压缩代价计算模块426可以通过比较确定最优预测模式,并且将最优预测模式连同对应的最优编码块一并发给统计模块408。

对于每个压缩单元的空域预测处理,其都有一个最优的预测模式,或者一个或多个较优的预测模式。其中,压缩率最高的预测模式是最优预测模式,而较优预测模式可以是压缩率相对较高的预测模式,例如压缩率高于预定比率的预测模式。每一种预测模式可以基于一个预测参考方向或者基于多个预测参考方向的组合。可以理解,起始边缘像素可选择的预测参考方向有限。例如,对于第0组像素,由于其预测值仅能够参考上紧邻像素,因此该组像素的预测值可以被预先设定为参考上紧邻像素。

由于视频数据相邻的一个或多个视频帧的内容之间一般具有关联性,因此,对于当前视频帧某一位置的压缩区域对应的优选预测模式参数集,其可以用于后续视频帧对应位置的压缩区域的空域预测处理中。该后续视频帧可以是与当前视频帧处于同一视频数据序列中。

例如,对于图1所示的一视频帧100i的一压缩区域(m-2,n-2),如果确定该压缩区域的优选预测模式参数集包括参考左紧邻像素、参考上紧邻像素以及参考左上紧邻像素和左下紧邻像素共3种优选预测模式,那么后续视频帧相同位置压缩区域的压缩单元预测处理仅需要从这3中优选预测模式中选择一个最优预测模式,而无需采用例如参考左上紧邻像素或参考左下紧邻像素这些模式。这大大提高了压缩处理的效率,实现了自适应的预测模式选择和配置。

在一些实施例中,统计模块408可以按照压缩区域对压缩单元的最优预测模式进行统计。例如,在图1所示的视频数据中,压缩区域(0,0)中所有压缩单元中像素的最优预测模式可以整体地进行统计,并且其他压缩区域(例如压缩区域(0,n-1),(m-1,n-1)等)也进行类似的最优预测模式的统计。之所以这样处理,是因为一个压缩区域中不同压缩单元的内容通常具有一定的相关性,其空域预测处理的方式也是基本类似的。这样,同一个压缩区域中所有压缩单元可以共享一个优选预测模式参数集,这可以减少优选预测模式参数集的数量,降低实现的复杂度。此外,由于同一压缩区域对应的优选预测模式参数集是综合了其中所有压缩单元的预测处理结果后确定的,较多的统计样本数量减少了优选预测模式参数集的不确定性。类似地,由当前视频帧的一个压缩区域的空域预测处理确定的优选预测模式参数集可以被用于后续视频帧对应压缩区域的空域预测处理中。需要说明的是,在一些实施例中,可以对一个压缩区域中的所有压缩单元进行预测处理,并且对其采用的最优预测模式进行统计;在另一些实施例中,可以对一个压缩区域中的一部分压缩单元进行预测处理,并且对其采用的最优预测进行统计。

具体地,统计模块408可以统计当前视频帧的所有压缩区域的当前预测模式参数集中的所有预测模式的使用频次的统计分布,以及每个压缩单元对应的编码块中每个编码值的分布。

在一些实施例中,压缩模块406可以周期性地进行优选预测模式参数集的确定操作,从而避免由于视频帧内容显著变化而使得原有优选预测模式参数集的部分预测模式不适合最新的视频帧处理。在另一些实施例中,压缩模块406可以为每个视频数据序列选择并确定适合的优选预测模式参数集,因为不同的视频序列可能需要采用不同的优选预测模式参数集。

统计模块408可以将预测模式的使用频次的统计分布以及编码块中每个编码值的统计分布等统计结果提供给主控处理器414中的自适应模式参数集选择模块416,从而由自适应模式参数集选择模块416选择一部分预测模式作为优选预测模式参数集。这样,当压缩模块406对后续视频帧进行压缩时,自适应模式参数集选择模块416中设置好的优选预测模式参数集数据可以被调用。

正如前述,二维空域预测模块422会生成与预测模式对应的编码块。这些编码块之后会被熵编码模块426分别进行熵编码处理,从而得到压缩的视频数据。熵编码模块426所进行的熵编码处理通常也可以采用不同的熵编码模式,这些熵编码模式可以构成熵编码模式参数集,并且被存储在自适应模式参数集选择模块416中,从而可以为熵编码模块424或其他模块调用。

与二维空域预测处理类似,熵编码处理中选用不同的熵编码模式也会影响视频数据的压缩率。在本申请的一些优选的实施例中,压缩代价计算模块426还可以遍历熵编码模式参数集中包括的多个熵编码模式,以确定哪个熵编码模式最适合处理当前压缩单元对应的编码块。这些熵编码模式可以由自适应模式参数集选择模块416中获得。在一些实施例中,熵编码模块可以接收最优编码块(也即经最优预测模式预测处理得到的编码块),并且对最优编码块进行熵编码处理。

图5示出了压缩代价计算单元426进行压缩代价计算及判断的流程。在该流程中,预测模式和熵编码模式被一同考虑。可以理解,在一些其他的实施例中,可以仅考虑预测模式的选择,而不考虑熵编码模式。

如图5所示,在步骤502,压缩代价计算单元初始化预编码状态。预编码是指代价计算的过程中需要使用熵编码参数集中的每个熵编码模式进行预先编码,得到编码当前压缩单元cu的编码块cb的压缩代价,这里可以不需要得到完整的编码码字。因此,在一些实施例中,可以将熵编码模块实现在压缩代价计算模块中。在另一些实施例中,例如图4所示的实施例中,熵编码模块424被实现在压缩代价计算模块426外部。预编码状态的初始化可以设置压缩代价初始值,例如设置压缩率为1(也即未压缩)。

接着,在步骤504中,获得二维空域预测的处理结果,也即处理压缩单元后得到的编码块。之后,在步骤506对于采用某种预测模式的二维空域预测的处理结果,用熵编码模式参数集中的每个熵编码模式对编码块进行预编码处理,并且比较这些预编码处理的结果,从而从中确定最优熵编码模式。之后,在步骤508,将当前预测模式对应的最优熵编码结果与之前预测模式对应的最优熵编码结果进行比较。如果优于之前预测模式对应的最优熵编码结果,则用当前预测模式对应的最优熵编码结果来更新预编码状态,正如步骤510所示。例如,如果当前预测模式对应的最优熵编码结果为小于1的压缩率,则更新预编码状态。否则,如果劣于之前预测模式对应的最优熵编码结果,不更新预编码状态,继续步骤512,查看是否遍历了所有预测模式。如果没有遍历所有预测模式,则继续步骤504,用一未被遍历到的预测模式来进行二维空域预测以及后续处理,直至遍历所有预测模式。如果已遍历所有预测模式,则以预编码状态确定的最优预测模式和最优熵编码模式作为输出。在一些实施例中,最优熵编码模式对应的最优编码长度、最优编码块也被一同输出,并且被提供给熵编码模块以进行后续处理。之后,该流程结束。

回到图4,在确定了最优熵编码模式后,熵编码模块424接收由压缩代价计算模块426提供的最优熵编码模式、最优编码长度、最优编码块等信息,并且对最优编码块进行熵编码处理,从而得到当前压缩单元的压缩数据。该压缩数据可以由压缩数据封装模块进行封装,之后从视频处理系统中输出。

除了压缩数据之外,压缩模块406还会输出当前压缩单元的压缩信息给压缩数据封装模块。该压缩信息包括当前压缩单元在当前压缩视频帧中的位置、当前压缩单元的压缩数据的数据量等信息

另一方面,类似于优选预测模式参数集的确定,统计模块408也可以接收一视频帧的每个压缩区域的每个压缩单元采用的最优熵编码模式,并且对这些最优熵编码模式进行统计,从而确定该视频帧某一位置压缩区域的优选熵编码模式参数集,其包括例如被确定为最优熵编码模式的频次超过预定阈值或占比超过预定比率的熵编码模式。该优选熵编码模式参数集也可以被用于后续视频帧对应位置的压缩区域的熵编码处理。例如,对于后续视频帧中一压缩区域中包括的压缩单元,熵编码模块仅能够从该优选熵编码模式参数集中选择一个熵编码模式来进一步地处理该压缩单元对应的编码块。

可以看出,对于本申请的用于无损压缩视频数据的装置,其能够根据视频数据的内容来进行自适应的压缩处理。这种自适应压缩处理能够选择适当的压缩模式参数集和压缩模式(其中压缩模式包括预测模式和/或熵处理模式),并且选择性地禁用使用频率低的压缩模式。在没有损失图像质量的前提下,达到了较高的压缩率并提高数据吞吐率。

图6示出了根据本申请一个实施例的用于无损压缩视频数据的方法600。该方法600可以由图3和图4所示的装置来实现。

如图6所示,该方法600始于步骤602,接收视频数据,该视频数据包括多个视频帧。在步骤604,将这多个视频帧中的每个视频帧分割为多个压缩区域,其中每个压缩区域包括至少一个压缩单元,并且每个压缩单元包括一个像素阵列。在步骤606,对这多个视频帧中第一个视频帧的每个压缩区域分别地进行下述操作:在步骤608,提供一预测模式参数集,其包括多个预测模式;在步骤610,以预测模式参数集包括的多个预测模式对该压缩区域包括的至少一部分压缩单元进行预测处理,并且确定这多个预测模式在该压缩区域的预测处理中的使用情况;步骤612,根据这多个预测模式在该压缩区域的预测处理中的使用情况,从预测模式参数集中选择至少一部分预测模式作为该压缩区域的优选预测模式参数集;步骤614,以所确定的优选预测模式参数集对多个视频帧中第一个视频帧之后的后续视频帧分别进行预测处理,从而得到后续视频帧包括的每个压缩单元对应的编码块;步骤616,对编码块分别进行熵编码处理,从而得到压缩的视频数据。

在一些实施例中,这多个预测模式在该压缩区域的预测处理中的使用情况包括:这多个预测模式在该压缩区域包括的至少一部分压缩单元的预测处理中作为最优预测模式的统计结果。

在一些实施例中,最优预测模式是使得一个压缩单元的压缩率最高的预测模式。

在一些实施例中,步骤612包括:从预测模式参数集中选择被确定为最优预测模式的频次超过预定阈值或占比超过预定比率的预测模式作为该压缩区域的优选预测模式参数集。

在一些实施例中,步骤614包括:以所述第一个视频帧中一定位置的压缩区域的优选预测模式参数集来对所述后续视频帧中相应位置的压缩区域中的压缩单元进行预测处理。

在一些实施例中,步骤614还包括:对于所述后续视频帧中的每个压缩区域包括的压缩单元,从对应的优选预测模式参数集中选择一个最优预测模式来对所述压缩区域中的每个压缩单元的像素阵列中的至少一部分像素进行预测处理。

在一些实施例中,在每个压缩单元的预测处理中,扫描所述压缩单元以获取其像素阵列中的每个像素,并且扫描的方向与所述像素阵列的列数与行数中较大的一个相对应。

在一些实施例中,步骤614还包括:所述第一个视频帧之后的后续视频帧与所述第一视频帧属于同一视频序列。

在一些实施例中,步骤616还包括:提供一熵编码模式参数集,其包括多个熵编码模式;使用所述熵编码模式参数集中的多个熵编码模式来对所述第一视频帧包括的至少一部分压缩单元对应的编码块分别进行熵编码处理,以确定每一个编码块对应的最优熵编码模式;以及对所述多个视频帧中第一个视频帧之后的后续视频帧包括的压缩单元对应的编码块分别使用所述最优熵编码模式进行熵编码处理,从而得到压缩的视频数据。

在一些实施例中,步骤616还包括:对多个视频帧中第一个视频帧的每个压缩区域分别地进行下述操作:e1)提供一熵编码模式参数集,其包括多个熵编码模式;e2)以所述熵编码模式参数集包括的多个熵编码模式对所述压缩区域包括的至少一部分压缩单元的编码块分别进行熵编码处理,并且确定所述多个熵编码模式在所述压缩区域的熵编码处理中的使用情况;e3)根据所述多个熵编码模式在所述压缩区域的熵编码处理中的使用情况,从所述熵编码模式参数集中选择至少一部分熵编码模式作为所述压缩区域的优选熵编码模式参数集;以及对所述多个视频帧中第一视频帧之后的视频帧包括的压缩单元对应的编码块分别从所述优选熵编码模式参数集中选择一个最优熵编码模式进行熵编码处理,从而得到压缩的视频数据。

在一些实施例中,所述多个熵编码模式在所述压缩区域的熵编码处理中的使用情况包括:所述多个熵编码模式在所述压缩区域的至少一部分压缩单元对应的编码块的熵编码处理中作为最优熵编码模式的统计结果。

应当注意,尽管在上文详细描述中提及了用于无损压缩视频数据的方法的若干步骤,和用于无损压缩视频数据的装置的若干模块或子模块,但是这种划分仅仅是示例性的而非强制性的。实际上,根据本申请的实施例,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。

那些本技术领域的一般技术人员可以通过研究说明书、公开的内容及附图和所附的权利要求书,理解和实施对披露的实施方式的其他改变。在权利要求中,措词“包括”不排除其他的元素和步骤,并且措辞“一”、“一个”不排除复数。在本申请的实际应用中,一个零件可能执行权利要求中所引用的多个技术特征的功能。权利要求中的任何附图标记不应理解为对范围的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1