可重用的视频编码方法和编码器的制造方法
【专利摘要】本发明实施例提供一种可重用的视频编码方法和编码器。本发明可重用的视频编码方法,包括:获取一帧图像;根据预先设置的帧间预测参数获取对所述图像进行帧间预测的预测单元的处理顺序,所述帧间预测参数包括帧间预测模式、预测单元的位置、预测单元的类型、预测单元的处理时间控制信息、预测效果比较算法、下一次预测跳转信息以及结束标识;按照所述预测单元的处理顺序依次在所述图像与所述预测单元对应的位置上进行帧间预测,并根据所述帧间预测的结果对所述图像进行编码。本发明实施例解决PU选择算法固定且单一,当应用场景改变使得PU类型和处理顺序发生变化时,必须进行硬件改动才能适应新的场景,不利于编码系统性能改进和扩展的问题。
【专利说明】可重用的视频编码方法和编码器
【技术领域】
[0001]本发明实施例涉及视频压缩技术,尤其涉及一种可重用的视频编码方法和编码器。
【背景技术】
[0002]近年来,信息技术迅速发展,人们对视频的视觉质量要求不断提高,高清、超高清以及3D视频的出现受到大家的广泛青睐。但是,一个720P的高清图像未经压缩占用2.2兆字节(MByte,简称MB)的存储空间,如果一个视频的帧速率为30帧/秒,即使只有五分钟,数据量也将达到19千兆字节(GigaByte,简称GB),可见满足人们需求的高品质视频所占用的数据量是非常庞大的,未经压缩的原始的视频数据在现在甚至将来都是难以接受的,无论是存储还是传输都存在很大的问题。
[0003]视频数据中存在着大量的冗余,冗余主要包括以下几类,空间冗余,例如一幅图像中如果有较大的背景区域,那么这些区域的像素值是非常相似的;时间冗余,视频序列的连续帧中的前一帧与后一帧之间通常变换不大,具有很强的相似性,主要区别就在于仅仅在不同帧之间运动物体的空间位置上略有不同;统计冗余,采用不同的编码方法对信息进行熵编码,则编码整个符号序列的比特数就会不太一样;视觉冗余,人眼的视觉系统是有缺陷的,它并不是对所有的颜色、对比度和频率都能够识别,因此适当的降低图像的精度,人眼并不会察觉到,同时能达到压缩数据量的目的。知道了产生冗余的原因,就可以采用相应的方法进行冗余消除,实现视频压缩,视频压缩编码的原理和出发点就在于最大限度地消除各种冗余。具体来讲,针对不同的冗余,视频压缩编码标准采用不同的策略进行消除,例如,用帧间预测消除时间冗余;用帧内预测消除空间冗余;用变换、量化消除视觉冗余;用熵编码消除统计冗余。
[0004]如上所述,视频压缩编码的目的在于节省传输视频的码流或存储视频的空间,视频的处理过程可以包括以下几个步骤:1)视频的采集,视频的采集由摄像机等图像获取设备得到;2)视频的编码,对视频序列进行编码压缩,得到相应的视频码流;3)对编码压缩后的视频码流进行传输或者存储;4)对得到的视频码流进行解码,得到解码后的视频;5)用户利用显示设备对视频进行播放,其中,在第2)步的视频编码主要包括预测(帧内预测和帧间预测)、变换量化和编码。
[0005]高效视频编码(HighEfficiency Video Coding,简称 HEVC) (H.265)技术作为新一代视频编码标准,致力于将编码效率比高级视频编码(Advanced Video Coding,简称AVC)提高50%。帧间预测是视频压缩编码中主要的访存和计算瓶颈,为了提高帧间预测的准确性,HEVC标准中增加了合并(merge)预测模式,merge模式是通过对包含多个相邻块的整个运动补偿区域使用单一运动参数级,去除运动参数上的冗余。为了从帧间预测所有merge模式中选出最优的预测模式,需要对所有的预测单元(Prediction Unit,简称PU)进行多点merge模式操作。H EVC标准将宏块从16 X 16扩展到了 64 X 64,便于高分辨率视频的压缩,同时采用编码单元(Coding Unit,简称⑶)、预测单元(Prediction Unit,简称PU)以及变换单元(Transform Unit,简称TU)编码结构来提高编码效率,其中,⑶用于编码过程,PU是进行预测的基本单元,TU是进行变换和量化的基本单元。
[0006]但是,在目前的实现方案中,是根据图像应用场景设计merge模式,其硬件结构和具体的应用场景紧密耦合,在逻辑实现时,设计固定的PU处理顺序,并通过状态机控制
的处理,这样会导致PU选择算法固定且单一,当应用场景改变使得PU类型和处理顺序发生变化时,必须进行硬件改动才能适应新的场景,不利于编码系统性能改进和扩展。
【发明内容】
[0007]本发明实施例提供一种可重用的视频编码方法和编码器,以解决选择算法固定且单一,当PU处理顺序发生变化时,必须进行硬件改动才能完成顺序升级的问题。
[0008]第一方面,本发明实施例提供一种可重用的视频编码方法,包括:
[0009]获取一帧图像;
[0010]根据预先设置的帧间预测参数获取对所述图像进行帧间预测的预测单元的处理顺序,所述帧间预测参数包括帧间预测模式、预测单元的位置、预测单元的类型、预测单元的处理时间控制信息、预测效果比较算法、下一次预测跳转信息以及结束标识,其中,所述帧间预测模式用于指示进行所述帧间预测的选点方式,所述预测单元的位置用于指示所述预测单元在编码单元层中所处的位置,所述预测单元的处理时间控制信息用于指示在所述图像与所述预测单元对应的位置上进行帧间预测的时长;所述预测效果比较算法用于指示比较所述帧间预测的结果的算法,所述下一次预测跳转信息用于指示下一次进行所述帧间预测的所述编码单元层;
[0011]按照所述预测单元的处理顺序依次在所述图像与所述预测单元对应的位置上进行帧间预测,并根据所述帧间预测的结果对所述图像进行编码。
[0012]结合第一方面,在第一方面的第一种可能的实现方式中,所述按照所述预测单元的处理顺序依次在所述图像与所述预测单元对应的位置上进行帧间预测,并根据所述帧间预测的结果对所述图像进行编码,包括:
[0013]按照所述预测单元的处理顺序依次获取待处理的所述预测单元对应的所述帧间预测参数,根据所述帧间预测参数在所述图像与所述预测单元对应的位置上进行帧间预测;
[0014]根据所述帧间预测的结果对所述图像进行编码。
[0015]结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述按照所述预测单元的处理顺序依次获取待处理的所述预测单元对应的所述帧间预测参数,根据所述帧间预测参数在所述图像与所述预测单元对应的位置上进行帧间预测,包括:
[0016]按照所述预测单元的处理顺序依次获取待处理的所述预测单元对应的所述帧间预测参数,并根据所述预测单元的位置、预测单元的类型确定所述预测单元在所述图像中对应的位置;
[0017]根据所述帧间预测模式、预测单元的处理时间控制信息在所述图像中对应的位置上进行所述帧间预测,并通过所述预测单元的处理时间控制信息确定所述进行所述帧间预测的时长;[0018]根据所述预测效果比较算法确定比较所述帧间预测的结果的算法,并根据所述预测效果比较算法对所述帧间预测的结果进行处理获取比较结果。
[0019]结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述根据所述帧间预测的结果对所述图像进行编码,包括:
[0020]根据所述比较结果确定编码方式并对所述图像进行编码。
[0021]结合第一方面、第一方面的第二种至第二种中任一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述获取一帧图像之前,还包括:
[0022]根据图像应用场景或硬件能力预先设置所述帧间预测参数,并保存所述帧间预测参数。
[0023]第二方面,本发明实施例提供一种编码器,包括:处理器、存储器和寻址控制器;
[0024]所述存储器,用于存储视频图像和帧间预测参数,所述帧间预测参数包括帧间预测模式、预测单元的位置、预测单元的类型、预测单元的处理时间控制信息、预测效果比较算法、下一次预测跳转信息以及结束标识;
[0025]所述处理器,用于从所述存储器中获取一帧图像,根据预先设置的所述帧间预测参数对所述图像进行帧间预测,并根据所述帧间预测的结果对所述图像进行编码;
[0026]所述寻址控制器,用于在所述存储器中对所述帧间预测参数进行地址寻址。
[0027]结合第二方面,在第二方面的第一种可能的实现方式中,所述寻址寄存器,具体用于根据所述帧间预测参数获取当前处理的编码单元层的基地址、预测单元组合的基地址;累加获取处理过的预测单元的数量;将所述编码单元层的基地址、预测单元组合的基地址以及所述处理过的预测单元的数量进行地址累加,获取待处理的所述帧间预测参数在所述存储器中的地址;
[0028]所述处理器,具体用于根据所述待处理的所述帧间预测参数在所述存储器中的地址从所述存储器中获取所述待处理的帧间预测参数,并根据所述待处理的帧间预测参数对所述图像进行帧间预测,并根据所述帧间预测的结果对所述图像进行编码。
[0029]还包括:
[0030]触发器,用于触发所述寻址控制器的数量累加以及在所述存储器中寻址。
[0031]结合第二方面、第二方面的第一种至第二种中任一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述处理器,具体用于根据所述预测单元的位置、预测单元的类型确定所述预测单元在所述图像中对应的位置;根据所述帧间预测模式、预测单元的处理时间控制信息在所述图像中对应的位置上进行所述帧间预测,并通过所述预测单元的处理时间控制信息确定所述进行所述帧间预测的时长;根据所述预测效果比较算法确定比较所述帧间预测的结果的算法,并根据所述预测效果比较算法对所述帧间预测的结果进行处理获取比较结果;根据所述比较结果确定编码方式并对所述图像进行编码。
[0032]本发明实施例可重用的视频编码方法和编码器,通过将根据图像应用场景和硬件能力预先设计的进行帧间预测的预测单元PU的操作流程形成帧间预测参数,并将该帧间预测参数写入存储器,再读取帧间预测参数获取进行HEVC编码的参数信息,并执行HEVC编码,实现HEVC编码的应用场景与硬件结构的解耦,解决选择算法固定且单一,当应用场景改变使得PU类型和处理顺序发生变化时,必须进行硬件改动才能适应新的场景,不利于编码系统性能改进和扩展的问题。【专利附图】
【附图说明】
[0033]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0034]图1为本发明可重用的视频编码方法实施例的流程图;
[0035]图2为本发明⑶结构示意图;
[0036]图3A为本发明I3U结构示意图一;
[0037]图3B为本发明PU结构示意图二;
[0038]图3C为本发明I3U结构示意图三;
[0039]图3D为本发明I3U结构示意图四;
[0040]图4为本发明I3U组合方式示意图;
[0041]图5为本发明I3U执行顺序示意图;
[0042]图6为本发明帧间预测参数数据格式示意图;
[0043]图7为本发明编码器实施例一的结构示意图;
[0044]图8为本发明编码器实施例二的结构示意图;
[0045]图9为本发明编码器实施例三的结构示意图;
[0046]图10为本发明编码器的读地址控制模块结构示意图;
[0047]图11为本发明编码器的比较算法模块结构示意图;
[0048]图12为本发明编码器实现高效视频编码的流程图。
【具体实施方式】
[0049]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0050]本发明为了提高HEVC视频压缩编码的实时性,在编码器上通过现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)实现HEVC视频压缩编码,FPGA或ASIC的可编程的特性使得merge模式的帧间预测过程是可重用的,根据应用场景和硬件能力可以实时调整PU的个数以及顺序,可以满足不同的应用方案,将硬件结构从应用场景中解耦出来,极大的提高了 merge实现的灵活性。
[0051]图1为本发明可重用的视频编码方法实施例的流程图,如图1所示,本实施例的方法可以包括:
[0052]步骤101、获取一帧图像;
[0053]本实施例中,图像已经通过摄像装置拍摄并保存下来,编码器可以直接从本地的存储器中获取到图像。
[0054]步骤102、根据预先设置的帧间预测参数获取对图像进行帧间预测的预测单元的处理顺序;
[0055]本实施例中,帧间预测参数包括帧间预测模式、预测单元的位置、预测单元的类型、预测单元的处理时间控制信息、预测效果比较算法、下一次预测跳转信息以及结束标识,其中,帧间预测模式用于指示进行帧间预测的选点方式,预测单元的位置用于指示预测单元在编码单元层中所处的位置,预测单元的处理时间控制信息用于指示在图像与预测单元对应的位置上进行帧间预测的时长;预测效果比较算法用于指示比较帧间预测的结果的算法,下一次预测跳转信息用于指示下一次进行帧间预测的编码单元层。
[0056]为了更有效的进行数据的压缩,HEVC采用了更加灵活的方式表示块结构:CU、PU以及变换单元,其中,CU是进行预测、变换、量化和熵编码的基本单元,最大的CU是64X 64,最小的编码单元是8X8,HEVC采取四叉树迭代的方式进行⑶的划分,⑶的形状必须是正方形的,即四叉树划分的四个块的大小是完全一样的,图2为本发明CU结构示意图,如图2所示,一共包括四层⑶层,分别是64X 64、32 X 32、16 X 16以及8 X 8 ;PU是进行预测的基本单元,它的形状可以不是正方形的,一个⑶可以包括一个或者多个PU,图3A为本发明
结构示意图一,图3B为本发明I3U结构示意图二,图3C为本发明I3U结构示意图三,图3D为本发明PU结构示意图四,如图3A-3D所示,进行帧间预测的PU包括2NX2N、2NXN、NX2N和NXN四种模式,其中,N表示PU所处的⑶层的规格的二分之一,例如当前PU处于的⑶层为 32X32^lJPU2NX2NS 32X32,PU2NXN 为 32X16、PU NX2N 为 16X32、PU NXN 为16X16 ;变换单元是进行变换和量化的基本单元,它的大小可以从4X4到32X32,必须是正方形的,在帧间预测时,变换单元的大小可以大于PU的大小,但是不能超过CU的大小。
[0057]merge模式是对I3U进行处理,需要考虑不同I3U处理的顺序。图4为本发明I3U组合方式示意图,如图4所示,考虑到应用场景和硬件能力的不同,需要的merge性能不同,导致处理的PU个数和顺 序也不同,为了支持PU选择的广泛性,每一层⑶可以包含7种PU 组合方式:1)PU2NX2N ;2)PU2NXN ;3)PUNX2N ;4) PU2NX2N 和 PUNX 2N ;5)PU2NX2N 和PU2NXN ;6)PUNX2N和 PU2NXN ;7)PUNX2N、PU2NXN 以及 PU2NX2N。每一种组合方式都可以对应多种PU的操作流程,包括PUO、PUl、PU2……PUn,η可以是任意一个大于O的整数,即上述7中组合方式,无论选择哪种组合方式进行帧间预测,在确定的处理顺序时可以根据应用场景、硬件能力,以及编码精度等需求,具体地对该组合中的PU模式进行排序。
[0058]例如,图5为本发明PU执行顺序示意图,⑶层为32X32,选择的PU组合为PU16X32和PU32X32,即上述第4)种组合方式,那么对应于CU32X32,PU2NX2N和PUNX 2Ν组合方式中的对PU的处理可以按照图5所示的排序进行,空白部分为需要空闲出一定的周期数,Cl为PU16X32,C2为PU32X32,C1-0合并(即merge处理)O表示在预先选择的第一个点做第一次HJ16X32的merge处理,Cl-O合并I表示在预先选择的第二个点做第一次TO16 X 32的merge处理,C2合并O表示在预先选择的第一个点做ITO2 X 32的merge处理,C2合并I表示在预先选择的第二个点做PU32X32的merge处理,Cl-1合并O表示在预先选择的第一个点做第二次PU16 X 32的merge处理,Cl-1合并I表示在预先选择的第二个点做第二次PU16X32的merge处理。图5显示了针对⑶32X 32层所做的I3U处理顺序,根据该顺序即可实现对CU32 X 32的HEVC编码,可选的,在确定了第4)种组合方式后,还可以以其它的PU顺序进行HEVC编码,另外,根据需求的不同,也可以确定其它的组合方式,例如第I)种、第3)种等,进而可以对应不同的顺序,这里最终确定的PU顺序与应用场景和硬件能力相关,考虑到不同场景对视频的像素要求、图像清晰度和连贯性等因素,以及硬件最大可以承受的数据处理极限,设计出适合的PU顺序,而该顺序并不影响硬件结构,即本实施例中的硬件结构可以是通用的,通过将编码程序写入FPGA或ASIC中,再由编码程序读取存储器获取到预设的处理顺序,并最终根据该顺序进行HEVC编码达到预期的编码效果。
[0059]步骤103、按照所述预测单元的处理顺序依次在所述图像与所述预测单元对应的位置上进行帧间预测,并根据所述帧间预测的结果对所述图像进行编码。
[0060]本实施例中,在根据图像应用场景和硬件能力确定了 I3U的组合方式和处理顺序后,编码器根据该顺序形成帧间预测参数,该帧间预测参数包括HEVC编码操作流程中的每一个选择出来的PU对应的数据信息。具体来讲,根据上述确定PU顺序的过程,HEVC编码器获取到后续进行HEVC编码的操作流程,操作流程中包括多少个PU个数,该帧间预测参数中就包括多少个数据信息,每个数据信息即HEVC编码器处理到哪个I3U时,该PU对应的指令,其中,帧间预测模式表示merge选点的方式的位置表示当前PU的位置;叩类型表示PU所在的CU层、PU类型和I3U索引号;PU处理时间控制信息表示当前I3U的处理时间计数器;预测效果比较算法表示在实际应用中会权衡不同性能和不同逻辑实现代价,选择当前PU在不同阶段采用不同的比较方法,主要包括绝对差值和(Sum of Absolute Differences,简称:SAD)算法、绝对传播差值和(Sum of Absolute Transformed Difference,简称:SATD)以及平方差值和(Sum of Squared Differences,简称:SSD)算法;下一次预测跳转信息表示处理完当前PU后下一次要处理的所在的CU层信息;结束标识表示当前操作是否为最后一个PU。
[0061]HEVC编码器将预先设置的帧间预测参数通过总线写入存储器,保存在本地,以便于后续HEVC编码器的FPGA执行编码程序时,可以从存储器中直接读取到当前处理的的信息。
[0062]HEVC编码器从存储器中读取帧间预测参数,获取到对图像进行帧间预测的PU的处理顺序,再根据该PU处理顺序依次在图像与对应的位置上进行帧间预测,并根据帧间预测的结果对图像进行编码。HEVC编码器的FPGA在运行编码程序时,从存储器中读取帧间预测参数,每一次的读取可以获取到当前PU的信息以及下一个的跳转信息,根据这些PU的信息编码程序即可实现HEVC编码,这样反复的执行过程即可将预先设计的操作流程中的所有PU的逐个处理完毕,达到预期的HEVC编码效果。
[0063]本实施例,通过将根据图像应用场景和硬件能力预先设计的进行帧间预测的预测单元PU的操作流程形成帧间预测参数,并将该帧间预测参数写入存储器,再读取帧间预测参数获取进行HEVC编码的参数信息,并执行HEVC编码,实现HEVC编码的应用场景与硬件结构的解耦,解决PU选择算法固定且单一,当应用场景改变使得PU类型和处理顺序发生变化时,必须进行硬件改动才能适应新的场景,不利于编码系统性能改进和扩展的问题。
[0064]进一步的,图6为本发明帧间预测参数数据格式示意图,如图6所示,帧间预测参数中包括的操作流程中的每一个PU对应的数据信息可以是以32比特的数据格式存储在存储器中,这32比特中,5-0比特:共6比特,表示I3U的位置,其中,5-4比特表示当前I3U在⑶32 X 32层的具体位置,例如00表示左上角的⑶32 X 32,01表示右上角的⑶32 X 32,10表示左下角的⑶32 X 32,11表示右下角的⑶32 X 32 ;3_2比特表示当前I3U在⑶16 X 16层的具体位置;1-0比特表示当前PU在⑶8 X 8层的具体位置。13-8比特:共6比特,表示I3U的类型,其中,13-12比特表示当前处理的⑶层,例如OO表示当前处理的是⑶64X64,01表示当前处理的是⑶32 X 32,10表示当前处理的是⑶16 X 16,11表示当前处理的是⑶8 X 8 ;11-10比特表示PU的模式,例如00表示2NX2N ;01表示PU2NXN ;10表示PUNX2N ;11表示PUNXN ;9-8比特表示I3U索引。17-16比特:共2比特,表示下一次预测跳转信息,例如00表示下一次处理的是⑶64X64 ;01表示下一次处理的是⑶32X 32 ;10表示下一次处理的是⑶16X16 ;11表示下一次处理的是⑶8X8。19-18比特:共2比特,表示预测效果比较算法,例如00表示SAD算法;01表示SATD算法;10表示SSD算法。20比特:共I比特,表示结束标识。23-21比特:共3比特,表示帧间预测模式。31-24:共8比特,表示时间控制。需要说明的是,图6所示的数据信息格式为本发明所采用的数据格式的一个示例,该数据格式还可有其它的比特位设置方法,此处不做具体限定。
[0065]进一步的,上述方法实施例的步骤103中按照所述预测单元的处理顺序依次在所述图像与所述预测单元对应的位置上进行帧间预测,并根据所述帧间预测的结果对所述图像进行编码,具体的实现方法可以是:按照所述预测单元的处理顺序依次获取待处理的所述预测单元对应的所述帧间预测参数,根据所述帧间预测参数在所述图像与所述预测单元对应的位置上进行帧间预测;根据所述帧间预测的结果对所述图像进行编码。
[0066]具体来讲,HEVC编码器按照所述预测单元的处理顺序依次获取待处理的所述预测单元对应的所述帧间预测参数,并根据所述预测单元的位置、预测单元的类型确定所述预测单元在所述图像中对应的位置;根据所述帧间预测模式、预测单元的处理时间控制信息在所述图像中对应的位置上进行所述帧间预测,并通过所述预测单元的处理时间控制信息确定所述进行所述帧间预测的时长;根据所述预测效果比较算法确定比较所述帧间预测的结果的算法,并根据所述预测效果比较算法对所述帧间预测的结果进行处理获取比较结果;根据所述比较结果确定编码方式并对所述图像进行编码。
[0067]HEVC编码器在从存储器读取了帧间预测参数后,即可根据帧间预测参数中的数据信息获取PU的处理顺序,HEVC编码器根据该顺序依次在图像与预测单元对应的位置上进行帧间预测,即HEVC编码器的程度在读到的数据信息后,例如图6所示的数据信息,根据13-8比特和5-0比特的信息即可获知当前PU的位置、⑶层、以及在该⑶层采用的PU模式以及merge处理的点,根据这些信息HEVC编码器即可在图像上与该相对应位置处的帧间预测。当HEVC编码器处理完当前的PU后,根据25-24比特的结束标识确定HEVC编码是否结束,如果没有结束,则HEVC编码器根据17-16比特的下一次预测跳转信息获取下一次进行帧间预测的跳转信息,即下一次处理的CU层,需要说明的是,下一次处理的PU的位置顺序是固定的,例如四个⑶32X32,那么在⑶32X32层处理的顺序可以是左上角、右上角、左下角、右下角的顺序,比较特殊的是⑶64X64,只有一个因此不存在处理顺序。HEVC编码器可以继续根据下一个PU的数据信息进行帧间预测,每一层的CU对应的PU顺序是相同的。如果25-24比特表示结束编码,HEVC编码器结束编码,需要说明的是,如果当前是⑶8 X 8,则结束标识需要和⑶16 X 16、⑶32 X 32、⑶64 X 64的结束标识同时有效,如果当前是⑶16 X 16,则结束标识需要和⑶32 X 32、⑶64X 64的结束标识同时有效,如果当前是⑶32X32,则结束标识需要和⑶64X64的结束标识同时有效,如果当前是⑶64X64,则直接结束即可。HEVC编码器在对图像进行帧间预测时根据预测效果比较算法对预测的结果进行处理,以获取该图像最佳的编码方式,然后根据编码方式对图像进行编码。
[0068]进一步的,上述方法实施例的步骤101之前,还包括:根据图像应用场景或硬件能力预先设置所述帧间预测参数,并保存所述帧间预测参数。
[0069]具体来讲,视频的编码与应用场景或编码器的硬件能力密切相关,因此在预设帧间预测编码参数时,需要考虑这两个因素。当视频的应用场景发生变化,意味着对视频的清晰度、连贯性等要求都发生了变化,此时需要调整PU的操作流程,另外硬件能力变化,表示硬件处理数据的能力升高或降低,无论是哪种变化,也需要调整PU的操作流程,上述两种情况,出现至少一种情况就需要根据具体的变化更新进行帧间预测的PU的操作流程,并生成新的帧间预测参数。
[0070]图7为本发明编码器实施例一的结构示意图,如图7所示,本实施例的编码器可以包括:处理器11、存储器12以及寻址控制器13,其中,存储器12,用于存储视频图像和帧间预测参数,所述帧间预测参数包括帧间预测模式、预测单元的位置、预测单元的类型、预测单元的处理时间控制信息、预测效果比较算法、下一次预测跳转信息以及结束标识;处理器11,用于从所述存储器中获取一帧图像,根据预先设置的所述帧间预测参数对所述图像进行帧间预测,并根据所述帧间预测的结果对所述图像进行;寻址控制器13,用于在所述存储器中对所述帧间预测参数进行地址寻址。
[0071]进一步的,寻址控制器13,具体用于根据所述帧间预测参数获取当前处理的编码单元层的基地址、预测单元组合的基地址;累加获取处理过的预测单元的数量;将所述编码单元层的基地址、预测单元组合的基地址以及所述处理过的预测单元的数量进行地址累力口,获取待处理的所述帧间预测参数在所述存储器中的地址;处理器11,具体用于根据所述待处理的所述帧间预测参数在所述存储器中的地址从所述存储器中获取所述待处理的帧间预测参数,并根据所述待处理的帧间预测参数对所述图像进行帧间预测,并根据所述帧间预测的结果对所述图像进行编码。
[0072]本实施例的装置,可以用于执行图1?图6任一方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0073]图8为本发明编码器实施例二的结构示意图,如图8所示,本实施例的编码器在图7所示编码器结构的基础上,进一步地,还可以包括:触发器14,用于触发所述寻址控制器的数量累加以及在所述存储器中寻址。
[0074]本实施例的装置,可以用于执行图1?图6中任一方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0075]进一步的,处理器11,具体用于根据所述预测单元的位置、预测单元的类型确定所述预测单元在所述图像中对应的位置;根据所述帧间预测模式、预测单元的处理时间控制信息在所述图像中对应的位置上进行所述帧间预测,并通过所述预测单元的处理时间控制信息确定所述进行所述帧间预测的时长;根据所述预测效果比较算法确定比较所述帧间预测的结果的算法,并根据所述预测效果比较算法对所述帧间预测的结果进行处理获取比较结果;根据所述比较结果确定编码方式并对所述图像进行编码。
[0076]下面采用两个具体的实施例,对图7和图8所示装置实施例的技术方案进行详细说明。
[0077]图9为本发明编码器实施例三的结构示意图,如图9所示,本实施例的编码器可以包括:存储模块11、读地址控制模块12、地址控制状态机模块13、比较算法模块14、总线15以及读取参数获取模块16。帧间预测参数通过总线15写入存储模块11中,地址控制状态机模块13触发信息的读取,即触发读地址控制模块12在存储模块11中读取帧间预测参数,读地址控制模块12收到读取触发后,根据帧间预测参数获取读取的地址,使得存储模块11输出该地址中存储的帧间预测参数,包括PU类型、PU位置、预测效果比较算法等,比较算法模块14根据预测效果比较算法执行相应的算法,并输出计算结果,有了上述输出信息,HEVC编码器的程序即可完成HEVC编码。
[0078]进一步的,图10为本发明编码器的读地址控制模块结构示意图,如图10所示,图9中的读地址控制模块12包括AU层选择模块21、PU组合选择模块22、当前PU确定模块23以及地址累加模块24,其中,CU层选择模块21,用于根据帧间预测参数获取当前处理的CU层的基地址;PU组合选择模块22,用于根据帧间预测参数获取当前使用的PU组合对应的基地址;当前PU确定模块23,用于根据PU流程的计数情况确定当前处理的I3U流程地址;地址累加模块24,用于将当前处理的⑶层的基地址、当前使用的组合对应的基地址、当前处理的PU流程地址进行累加,获取在存储模块中的读取地址。读地址控制模块将上述三者累加,向存储模块输出当前的读取地址,以实现存储模块的读取操作。
[0079]进一步的,图11为本发明编码器的比较算法模块结构示意图,如图11所示,图9中的比较算法模块14包括:插值模块31、第一算法模块32、第二算法模块33、第三算法模块34以及算法结果处理模块35,其中插值模块31,用于获取视频的残差值;第一算法模块32、第二算法模块33以及第三算法模块34分别用于实现三种失真度最优化算法,这三种算法例如可以是SAD算法、SATD算法和SSD算法;算法结果处理模块35,用于根据当前PU执行的数据格式中的预测效果比较算法对相应算法的计算结果进行处理。
[0080]图12为本发明编码器实现高效视频编码的流程图,如图12所示,本实施例的流程适用于图7?图11所示编码器实施例的结构,该流程包括:
[0081]slOl、处理器将预先设计的帧间预测参数通过总线写入存储器;
[0082]S102、处理器校验写入存储器的帧间预测参数;
[0083]S103、处理器开始进行视频编码;
[0084]S104、处理器根据寻址控制器从存储器中读取帧间预测参数;
[0085]S105、处理器根据帧间预测参数对图像进行帧间预测;
[0086]本实施例中,处理器可以根据的组合划分处理分支,例如,图10所示的PU组合包括了七种模式,每一种模式可以对应一个处理分支,处理器在进行帧间预测时,只要根据帧间预测参数获取了当前的PU组合,即可在相应的分支里进行处理。
[0087]S106、处理器完成当前处理的最大编码单元对应的图像区域的帧间预测;
[0088]本实施例中,图像按照最大编码单元的规格被分成多个区域,每个区域根据帧间预测参数中的PU处理顺序进行帧间预测,处理器分别对每个区域按照预设的顺序进行处理。
[0089]sl07、处理器判断是否对图像全部处理完毕,否则转去sl08,是则转去sl09 ;
[0090]本实施例中,处理器在处理完一个最大编码单元对应的图像区域后,先判断是否已经处理完整帧图像,即是否还有没处理的图像区域,如果已经处理完毕,则处理器结束视频编码,并开始针对新的图像预设帧间预测参数,再编码,如果还没有处理完毕,则处理器继续读取帧间预测参数对下一个图像区域进行帧间预测。
[0091]S108、处理器开始对下一个最大编码单元对应的图像区域进行帧间预测,转去sl04 ;
[0092]s 109、处理器结束视频编码,转去SlOl。
[0093]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0094]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.一种可重用的视频编码方法,其特征在于,包括: 获取一帧图像; 根据预先设置的帧间预测参数获取对所述图像进行帧间预测的预测单元的处理顺序,所述帧间预测参数包括帧间预测模式、预测单元的位置、预测单元的类型、预测单元的处理时间控制信息、预测效果比较算法、下一次预测跳转信息以及结束标识,其中,所述帧间预测模式用于指示进行所述帧间预测的选点方式,所述预测单元的位置用于指示所述预测单元在编码单元层中所处的位置,所述预测单元的处理时间控制信息用于指示在所述图像与所述预测单元对应的位置上进行帧间预测的时长;所述预测效果比较算法用于指示比较所述帧间预测的结果的算法,所述下一次预测跳转信息用于指示下一次进行所述帧间预测的所述编码单元层; 按照所述预测单元的处理顺序依次在所述图像与所述预测单元对应的位置上进行帧间预测,并根据所述帧间预测的结果对所述图像进行编码。
2.根据权利要求1所述的方法,其特征在于,所述按照所述预测单元的处理顺序依次在所述图像与所述预测单元对应的位置上进行帧间预测,并根据所述帧间预测的结果对所述图像进行编码,包括: 按照所述预测单元的处理顺序依次获取待处理的所述预测单元对应的所述帧间预测参数,根据所述帧间预测参数在所述图像与所述预测单元对应的位置上进行帧间预测; 根据所述帧间预测的结果对所述图像进行编码。
3.根据权利要求2所述的方法,其特征在于,所述按照所述预测单元的处理顺序依次获取待处理的所述预测单元对应的所述帧间预测参数,根据所述帧间预测参数在所述图像与所述预测单元对应的位置上进行帧间预测,包括: 按照所述预测单元的处理顺序依次获取待处理的所述预测单元对应的所述帧间预测参数,并根据所述预测单元的位置、预测单元的类型确定所述预测单元在所述图像中对应的位置; 根据所述帧间预测模式、预测单元的处理时间控制信息在所述图像中对应的位置上进行所述帧间预测,并通过所述预测单元的处理时间控制信息确定所述进行所述帧间预测的时长; 根据所述预测效果比较算法确定比较所述帧间预测的结果的算法,并根据所述预测效果比较算法对所述帧间预测的结果进行处理获取比较结果。
4.根据权利要求3所述的方法,其特征在于,所述根据所述帧间预测的结果对所述图像进行编码,包括: 根据所述比较结果确定编码方式并对所述图像进行编码。
5.根据权利要求1~4中任一项所述的方法,其特征在于,所述获取一帧图像之前,还包括: 根据图像应用场景或硬件能力预先设置所述帧间预测参数,并保存所述帧间预测参数。
6.一种编码器,其特征在于,包括:处理器、存储器和寻址控制器; 所述存储器,用于存储视频图像和帧间预测参数,所述帧间预测参数包括帧间预测模式、预测单元的位置、预测单元的类型、预测单元的处理时间控制信息、预测效果比较算法、下一次预测跳转信息以及结束标识; 所述处理器,用于从所述存储器中获取一帧图像,根据预先设置的所述帧间预测参数对所述图像进行帧间预测,并根据所述帧间预测的结果对所述图像进行编码; 所述寻址控制器,用于在所述存储器中对所述帧间预测参数进行地址寻址。
7.根据权利要求6所述的编码器,其特征在于,所述寻址寄存器,具体用于根据所述帧间预测参数获取当前处理的编码单元层的基地址、预测单元组合的基地址;累加获取处理过的预测单元的数量;将所述编码单元层的基地址、预测单元组合的基地址以及所述处理过的预测单元的数量进行地址累加,获取待处理的所述帧间预测参数在所述存储器中的地址; 所述处理器,具体用于根据所述待处理的所述帧间预测参数在所述存储器中的地址从所述存储器中获取所述待处理的帧间预测参数,并根据所述待处理的帧间预测参数对所述图像进行帧间预测,并根据所述帧间预测的结果对所述图像进行编码。
8.根据权利要求6或7所述的编码器,其特征在于,还包括: 触发器,用于触发所述寻址控制器的数量累加以及在所述存储器中寻址。
9.根据权利要求6~8中任一项所述的编码器,其特征在于,所述处理器,具体用于根据所述预测单元的位置、预测单元的类型确定所述预测单元在所述图像中对应的位置;根据所述帧间预测模式、预测单元的处理时间控制信息在所述图像中对应的位置上进行所述帧间预测,并通过所述 预测单元的处理时间控制信息确定所述进行所述帧间预测的时长;根据所述预测效果比较算法确定比较所述帧间预测的结果的算法,并根据所述预测效果比较算法对所述帧间预测的结果进行处理获取比较结果;根据所述比较结果确定编码方式并对所述图像进行编码。
【文档编号】H04N19/96GK103974069SQ201410219372
【公开日】2014年8月6日 申请日期:2014年5月22日 优先权日:2014年5月22日
【发明者】马永兵, 高剑, 刘钦 申请人:华为技术有限公司