自动适配硬件编解码的方法及系统及模块的制作方法

文档序号:7982866阅读:592来源:国知局
自动适配硬件编解码的方法及系统及模块的制作方法
【专利摘要】本发明提出一种自动适配硬件编解码的方法及系统及模块,其自动适配硬件编解码的方法,调用嵌入式设备的硬件编解码器进行编解码,包括以下步骤:预存至少一个编解码插件,每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口;导入所述编解码插件,并加载对应的硬件编解码器;对数据流进行编码或解码。本发明通过动态加载插件,解决了不同平台上管理复杂,兼容性差得问题,并通过合理地调度嵌入式芯片中的硬件编解码器,从而可以提高系统的编解码能力,提高视频质量。
【专利说明】自动适配硬件编解码的方法及系统及模块
【技术领域】
[0001]本发明涉及计算机【技术领域】,特别涉及自动适配硬件编解码的方法及系统及模块。
【背景技术】
[0002]随着嵌入式设备近年来的不断发展,手机、PDA (Personal Digital Assistant,个人数字助理)、移动电视等设备中嵌入式系统的普及,应用程序在移动设备上的开发也随之增加。由于软件开发项目变大或者软件研发时间要求比较紧急,并且不同的嵌入式平台硬件设备的不同,就需要很多人协同工作进行软件的开发和设计,并将不同的人编写的软件代码进行无缝集成。
[0003]随着视频通信的普及,移动设备上进行视频数据的编解码也变得越加频繁。在视频数据进行编解码的过程中,由于视频编解码算法的复杂性,往往需要占用很高的CPU。然而考虑到很多嵌入式系统芯片上一般都会集成硬件编解码器,因而如果成功的调度系统芯片本身的优势,来提高软件编解码的性能,可以有效地提高视频质量。
[0004]由于不同的设备商所提供的硬件编解码接口不同,因此在调用系统芯片上的硬件编解码器时就需要使用软件接口,使硬件编解码器可以被应用程序所调用。目前普遍采用的是源代码集成的方式来实现软件接口,但是这种方式对于不同的硬件编解码器就需要编译不同的源代码,加上每个平台的性能等因素的不同,每一次的集成和源代码维护都要重新发布新软件,增加工作量,不利于系统维护。
[0005]综上所述,现有嵌入式设备的编解码方式存在以下缺点:
1、工作量大。对于不同的设备需要不同的软件接口,维护不同的源代码,并且每一次发布都需要重新编译,增加了工作量。
[0006]2、依赖硬件设备。不同设备商的各种不同的硬件设备,型号不尽相同,所以在使用硬件编解码器的时候,要经常检测硬件设备,以使编码和解码参数相匹配,导致对硬件设备的过份依赖。

【发明内容】

[0007]本发明的目的是提供一种自动适配硬件编解码的方法及系统及模块,以解决现有嵌入式设备的编解码方式所存在的工作量大、过份依赖硬件设备的问题。
[0008]本发明提出一种自动适配硬件编解码的方法,调用嵌入式设备的硬件编解码器进行编解码,包括以下步骤:
预存至少一个编解码插件,每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口;
导入所述编解码插件,并加载对应的硬件编解码器;
对数据流进行编码或解码。
[0009]依照本发明较佳实施例所述的自动适配硬件编解码的方法,所述导入所述编解码插件,并加载对应的硬件编解码器的步骤之前进一步包括:
对所述编解码插件进行验证。
[0010]依照本发明较佳实施例所述的自动适配硬件编解码的方法,所述对准备导入的所述编解码插件进行验证的步骤包括:
创建软件实体和/或调用功能接口和/或判断扫描到的所述编解码插件是否已经存在。
[0011]依照本发明较佳实施例所述的自动适配硬件编解码的方法,所述对数据流进行编码或解码的步骤中,所述编解码插件与主程序数据的输入输出交互通过回调函数实现。
[0012]依照本发明较佳实施例所述的自动适配硬件编解码的方法,所述通过回调函数实现所述编解码插件与主程序数据的输入输出交互包括:
主程序通过定义好的接口向编解码插件注册回调函数;
编解码插件保存回调函数;
主程序收到需要编编解码的数据;
编解码插件调用解码函数;
如果编解码需要数据空间,则编解码插件调用回调函数,向主程序申请空间;
主程序申请数据空间给编解码插件;
完成编解码,调用回调函数到主程序。
[0013]本发明另提出一种视频通信编解码方法,用于调用嵌入式设备的硬件编解码器进行编解码,包括以下步骤:
预存至少一个编解码插件,每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口;
扫描预存的所述编解码插件,并根据插件接口获得与所述编解码插件对应的硬件编解码器的能力值;
将通信双方的所述硬件编解码器的能力值进行交换比对;
根据比对结果导入需要的所述编解码插件,并加载通信双方对应的硬件编解码器; 对数据流进行编码或解码。
[0014]依照本发明较佳实施例所述的视频通信编解码方法,还包括:
预设软件编解码器,且所述软件编解码器与预设的一个编解码插件相对应;
当通信双方没有对应的硬件编解码器,则加载所述软件编解码器,并对数据流进行编码或解码。
[0015]依照本发明较佳实施例所述的视频通信编解码方法,所述扫描预存的所述编解码插件,并根据插件接口获得与所述编解码插件对应的硬件编解码器的能力值的步骤包括:
对扫描到的所述编解码插件进行验证。
[0016]依照本发明较佳实施例所述的视频通信编解码方法,所述对扫描到的所述编解码插件进行验证的步骤包括:
创建软件实体和/或调用功能接口和/或判断扫描到的所述编解码插件是否已经存在。
[0017]依照本发明较佳实施例所述的视频通信编解码方法,所述对数据流进行编码或解码的步骤中,所述编解码插件与主程序数据的输入输出交互通过回调函数实现。[0018]依照本发明较佳实施例所述的视频通信编解码方法,所述通过回调函数实现所述编解码插件与主程序数据的输入输出交互包括:
主程序通过定义好的接口向编解码插件注册回调函数;
编解码插件保存回调函数;
主程序收到需要编编解码的数据;
编解码插件调用解码函数;
如果编解码需要数据空间,则编解码插件调用回调函数,向主程序申请空间;
主程序申请数据空间给编解码插件;
完成编解码,调用回调函数到主程序。
[0019]本发明还提出一种自动适配硬件编解码的系统,调用嵌入式设备的硬件编解码器进行编解码,包括:
硬件编解码器,集成在嵌入式芯片中;
存储单元,用于存放至少一个编解码插件,每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口 ;
主程序模块,用于导入所述编解码插件,并加载对应的硬件编解码器,对数据流进行编码或解码。
[0020]依照本发明较佳实施例所述的自动适配硬件编解码的系统,所述主程序模块还设置有软件编解码器,用于当通信双方没有对应的硬件编解码器,由所述主程序模块加载并对数据流进行编码或解码,且所述软件编解码器与预存的一个编解码插件相对应。
[0021]依照本发明较佳实施例所述的自动适配硬件编解码的系统,所述主程序模块还包括验证单元,用于对所述编解码插件进行验证。
[0022]依照本发明较佳实施例所述的自动适配硬件编解码的系统,所述编解码插件与主程序模块之间数据的输入输出交互通过回调函数实现。
[0023]本发明还提出一种视频通信编解码系统,调用嵌入式设备的硬件编解码器进行编解码,包括至少两个自动适配硬件编解码的系统,所述自动适配硬件编解码的系统之间通过有线或无线网络连接,每个自动适配硬件编解码的系统又进一步包括:
硬件编解码器,集成在嵌入式芯片中;
存储单元,用于存放至少一个编解码插件,每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口 ;
主程序模块,用于导入所述编解码插件,并加载对应的硬件编解码器,对数据流进行编码或解码。
[0024]本发明还提出一种硬件编码器调用模块,包括:
存储单元,用于存放至少一个编解码插件,每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口 ;
主程序模块,用于导入所述编解码插件,并加载对应的硬件编解码器。
[0025]依照本发明较佳实施例所述的硬件编码器调用模块,所述主程序模块还包括验证单元,用于对所述编解码插件进行验证。
[0026]依照本发明较佳实施例所述的硬件编码器调用模块,所述编解码插件与主程序模块之间数据的输入输出交互通过回调函数实现。[0027]相对于现有技术,本发明的有益效果是:本发明通过动态加载插件,取代了现有的通过编译源代码来调用硬件编解码器的方式,解决了不同平台上管理复杂,兼容性差得问题,并通过合理地调度嵌入式芯片中的硬件编解码器,从而可以提高系统的编解码能力,提高视频质量。
[0028]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
【专利附图】

【附图说明】
[0029]图1为本发明实施例的一种自动适配硬件编解码的方法的流程图;
图2为本发明实施例的一种编解码插件与主程序数据的输入输出交互过程图;
图3为本发明实施例的另一种自动适配硬件编解码的方法的流程图;
图4为本发明实施例的一种对编解码插件进行验证的过程图;
图5为本发明实施例的一种视频通信编解码方法的流程图;
图6为本发明实施例的另一种视频通信编解码方法流程图;
图7为本发明实施例的一种自动适配硬件编解码的系统的结构图;
图8为本发明实施例的另一种自动适配硬件编解码的系统的结构图;
图9为本发明实施例的一种视频通信编解码系统的结构图;
图10为本发明实施例的一种硬件编码器调用模块的结构图;
图11为本发明实施例的另一种硬件编码器调用模块的结构图;
图12为本发明实施例的一种摄像头与编解码插件交互的过程图。
【具体实施方式】
[0030]为更进一步阐述本发明达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的自动适配硬件编解码的方法及系统及视频通信编解码方法其【具体实施方式】、方法、步骤及功效,详细说明如后。
[0031]有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例详细说明中将可清楚的呈现。通过【具体实施方式】的说明,当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。
[0032]本发明的目的是通过实现一种动态加载硬件编解码插件的方式,来解决原来源代码集成方式的工作量大的缺点,请参见图1,其为本发明实施例的一种自动适配硬件编解码的方法的流程图,该自动适配硬件编解码的方法用于调用嵌入式设备的硬件编解码器来进行编解码,其包括以下步骤:
SI I,预存至少一个编解码插件。
[0033]插件(Plugin)是一种遵循统一的预定义接口规范编写出来的程序,应用程序在运行时通过接口规范对插件进行调用,用来扩展应用程序的功能。
[0034]本发明中,所有的编解码插件遵循预定义接口,以供主程序调用。主程序只要导入相应的编解码插件,就可以加载对应的嵌入式芯片中的硬件编解码器。[0035]值得注意的是,设备可以根据需要单纯进行编码或单纯进行解码,或者也可以先后进行编码解码,均是通过主程序导入编解码插件后调用相应的解码器来实现的。而且,由于多个硬件编解码器同时存在的可能(如一台设备集成有多个嵌入式芯片,而每个芯片均含有硬件编解码器),所以预存的编解码插件也可能是多个,但是在编码或解码的时候只导入单一的编解码插件,即只能有单一的一个硬件编解码器进行编解码工作,只有在一个编码或解码工作完成后,才能再导入另一个编解码插件。对于通信对方是不同的通信终端,根据编解码器匹配情况,会导入的不同的硬件编解码器。
[0036]S12,导入所述编解码插件,并加载对应的硬件编解码器。
[0037]S13,对数据流进行编码或解码。
[0038]编解码插件与主程序数据的输入输出交互通过回调函数实现。回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口。因此,通过回调函数可以实现硬件编解码器的输入输出同步。编解码插件与主程序数据的输入输出交互过程如图2所示:
S201,主程序通过定义好的接口向编解码插件注册回调函数。
[0039]S202,编解码插件保存回调函数地址,编解码完成之后用于回调。
[0040]S203,主程序得到需要编解码的数据,调用接口函数到编解码插件。
[0041]S204,编解码插件调用编解码功能。
[0042]S205,如果编解码需要数据空间,则调用回调函数,向主程序申请空间。
[0043]S206,主程序申请数据空间给编解码插件,内存的申请和释放都是由主程序控制
和管理。
[0044]S207,编解码完成之后,调用回调函数到主程序。
[0045]S208,主程序处理数据,显示或者是发送。
[0046]请参见图3,其为本发明实施例的另一种自动适配硬件编解码的方法的流程图,其包括以下步骤:
S31,预存至少一个编解码插件。每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口。
[0047]S32,对编解码插件进行验证。
[0048]有时因为插件的版本升级等原因,可能导致找不到与某个编解码插件对应的硬件编解码器,因而有必要对插件进行验证,请参见图4,验证过程可以包括如下步骤:
S401,搜索插件。
[0049]S402,加载插件,创建软件实体。这里所述的软件实体是指建立主程序导入编解码插件的模型,从而检测插件的自定义接口是否与主程序及硬件编解码器相符。若创建软件实体失败,则表示该插件验证失败,不能被主程序导入。
[0050]S403,调用功能接口。若调用功能接口失败,同样表示该插件验证失败,不能被主程序导入。
[0051]S404,判断扫描到的插件是否已经存在。如果设备中有两个以上相同的编解码器类型,只需要导入第一次插件,因而当扫描到的编解码插件已经存在时,则表示该插件验证失败。
[0052]S405,将插件添加到编解码队列中。[0053]值得注意的是,对编解码插件进行验证的时候可以采用创建软件实体、调用功能接口以及判断扫描到的插件是否已经存在这三种方式中的一种或几种实现,而具体的选择可以根据实际需要来决定。
[0054]S33,导入所述编解码插件,并加载对应的硬件编解码器。插件的验证完成后,便可以利用导入插件来加载对应的硬件编解码器。
[0055]S34,对数据流进行编码或解码。
[0056]通过动态加载编解码插件的方式,可以合理地调度嵌入式芯片中硬件编解码器,从而可以提高系统的编解码能力。当然,动态加载编解码插件的思想既可以应用于单台设备进行数据流的编解码,更可以在两台设备的视频通信中进行应用,为此,本发明提出一种视频通信编解码方法,用于调用嵌入式设备的硬件编解码器进行编解码,请参见图5,其包括以下步骤:
S51,预存至少一个编解码插件。每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口。
[0057]S52,扫描预存的所述编解码插件,并根据插件接口获得与所述编解码插件对应的硬件编解码器的能力值。
[0058]这里所述的编解码器能力值是对该插件的功能诠释,所以能力参数可以说明编解码器的功能,以及适配的参数。参数包括:编解码器可以支持的最大图像分辨率、输出的最大码率、帧率、编码器可以支持的输入图像类型、输出图像类型、编解码器的类型(比如VP8或者H264等)。
[0059]由于硬件编解码器对应的编解码插件是由设备商提供的,所以通过插件定义接口可以得到硬件平台上每个硬件编解码器的能力值,然后可以将这些硬件编码器的能力参数用队列的方式管理,以便于后续对通信双方所使用的编码器进行匹配。
[0060]S53,将通信双方的硬件编解码器的能力值进行交换比对。
[0061]S54,根据比对结果导入需要的编解码插件,并加载通信双方对应的硬件编解码器。
[0062]硬件编解码器能力值的交换比对的目的是找出双方参数一致的硬件编解码器,即使通信双方所加载的硬件编解码器能够处理的编解码的大小、码率等各项值相匹配,以保证视频通信的顺利进行。若有通信双方有多组相匹配的硬件编解码器,可以通过对各硬件编解码器预设优先值的方式,选出最终需要的硬件编解码器进行加载。
[0063]S55,对数据流进行编码或解码。
[0064]请参见图6,其为本发明实施例的另一种视频通信编解码方法流程图,用于调用嵌入式设备的硬件编解码器进行编解码,其包括以下步骤:
S61,预存至少一个编解码插件。每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口。
[0065]S62,预设软件编解码器,且所述软件编解码器与预设的一个编解码插件相对应。软件编解码器的插件具有和硬件编解码器一样的插件接口,所以软件插件的导入也是根据条件导入,并且和可以无缝连接到主程序。
[0066]S63,扫描预存的所述编解码插件,并根据插件接口获得与所述编解码插件对应的硬件编解码器的能力值。[0067]S64,将通信双方的硬件编解码器的能力值进行交换比对。
[0068]S65,若通信双方有对应的硬件编解码器,则根据比对结果导入需要的编解码插件,并加载通信双方对应的硬件编解码器。
[0069]S66,若通信双方没有对应的硬件编解码器,则导入与所述软件编解码器相对应的编解码插件,加载所述软件编解码器。
[0070]S67,对数据流进行编码或解码。
[0071]在视频通讯过程中,往往要使用摄像头,由于编解码插件经常可以支持多种输入类型做编码,因此在打开摄像头时,需要检测插件需要的输入类型。如图12所示,在扫描编解码插件并获得其能力值时,便可以获知该编解码插件支持的输入格式种类,当编解码插件支持的输入格式种类数N > I时,则调用其功能接口,依次得到编解码插件需要输入的流格式,然后检测摄像头是否支持该格式,若摄像头支持当前格式则打开摄像头,若不支持,则返回再次调用功能接口,并重新获得另一个编解码插件需要输入的流格式进行检测,直至找到编解码插件与摄像头相匹配的格式。当编解码插件支持的输入格式种类数N= I时,就直接打开摄像头进行数据流的编码。值得注意的是,如果摄像头的输出格式与编解码插件的输入格式不匹配,则需要对数据流的格式进行转换(图中未绘示)。
[0072]请参见图7,其为本发明实施例的一种自动适配硬件编解码的系统的结构图,其包括主程序模块71、存储单元72和硬件编解码器73。所述硬件编解码器73集成在嵌入式芯片中。存储单元72用于存放至少一个编解码插件721,每个硬件编解码器73均与一个编解码插件721相对应,所有的编解码插件遵循预定义接口。主程序模块71用于导入所述编解码插件721,并加载对应的硬件编解码器73,以对数据流进行编码或解码。
[0073]这里所述的与硬件编解码器73对应的编解码插件721是由设备商提供的。每个嵌入式芯片上都会继承主程序模块71公开的接口,即所有的编解码插件721均遵循预定义接口,实现硬件编解码器73的调用,也即是说,主程序模块71只要导入相应的编解码插件721,就可以加载对应的嵌入式芯片中的硬件编解码器73,从而实现嵌入式芯片中硬件编解码器73的调用,提高了编解码能力,也可以提高视频质量。
[0074]值得注意的是,设备可以根据需要单纯进行编码或单纯进行解码,或者也可以先后进行编码解码,所以编解码插件是根据需要来预存的。而且,由于多个硬件编解码器73同时存在的可能(如一台设备集成有多个嵌入式芯片,而每个芯片均含有硬件编解码器),所以预存的编解码插件721也可能是多个,但是在编码或解码的时候只导入单一的编解码插件721,即只能有单一的一个硬件编解码器73进行编解码工作,只有在一个编码或解码工作完成后,才能再导入另一个编解码插件721。而所述编解码插件721与主程序模块之间数据的输入输出交互通过回调函数实现。
[0075]请参见图8,其为本发明实施例的另一种自动适配硬件编解码的系统的结构图,与图7的实施例相比,本实施例的系统中除了硬件编解码器73,还包括软件编解码器711,软件编解码器711可以集成在主程序模块71中,且所述软件编解码器711与预存的一个编解码插件721相对应。主程序模块71中还设置有验证单元712。
[0076]软件编解码器711的作用是在没有适用的硬件编解码器73的时候,由主程序模块71调用并进行编解码。软件编解码器711的插件具有和硬件编解码器一样的插件接口,所以软件编码插件723和软件解码插件724的导入也是根据条件导入,并且和可以无缝连接到主程序模块71。
[0077]主程序模块71调用软件编解码器711主要有两种情况:一种情况是设备中并没有硬件编解码器73,这时主程序模块71会导入与软件编解码器711相对应的编解码插件721,并通过软件编解码器711进行编解码。另一种情况是在进行视频通讯的时候,通常要对通讯双方的编解码能力进行比对匹配,使双方所适用的编解码器一致(即通讯双方所使用的编解码器可以支持的最大图像分辨率、输出的最大码率、帧率、编码器可以支持的输入图像类型、输出图像类型、编解码器的类型要匹配),以确保视频通讯的正常进行。而如果这时虽然双方都有各自的硬件编解码器73,但却并不匹配,则主程序模块71也会导入与软件编解码器711相对应的编解码插件721,并通过软件编解码器711进行编解码。
[0078]验证单元712的作用是在主程序模块71导入插件之前,先对存储单元72中的各插件进行验证。有时因为插件的版本升级,可能导致该插件找不到对应的编解码器,而验证单元712则可以通过创建软件实体、调用功能接口以及判断扫描到的插件是否已经存在这三种方式中一种或几种方式来对插件进行验证。
[0079]本发明还提出一种视频通信编解码系统,请参见图9,其包括至少两个自动适配硬件编解码的系统91,自动适配硬件编解码的系统91之间通过网络92 (有线或无线)连接。自动适配硬件编解码的系统91可以架设在终端中(如手机、平板电脑等),以帮助终端之间进行视频通讯。特别是其可以利用预存的编解码插件来调用嵌入式芯片的硬件编解码器来对数据流进行编码或解码,进而可以大大提高系统的编解码能力,也提高了视频通讯质量。
[0080]本发明还提出一种硬件编码器调用模块,请参见图10,其包括存储单元101和主程序模块102。存储单元101中存放至少一个编解码插件103,每个硬件编解码器与一个编解码插件103相对应,所有的编解码插件103都遵循预定义接口,以使其可以被主程序模块102导入。主程序模块102用于导入存储单元101中存放的编解码插件103,进而加载对应的硬件编解码器。本发明的硬件编码器调用模块可以架设在嵌入式设备中,以帮助设备对数据流进行编解码。由于硬件编解码器是嵌入式芯片所带的,因而具有较高的编解码能力,而且主程序模块102利用编解码插件103来调用硬件编解码器,省去了现有技术中每种类型硬件编解码器都要编译源代码的繁琐过程,解决了不同平台上管理复杂,兼容性差得问题。
[0081]请参见图11,其为本发明实施例的另一种硬件编码器调用模块结构图,与图10的实施例相比,本实施例的主程序模块102中还设置有验证单元103。验证单元103的作用是在主程序模块102导入插件之前,先对存储单元101中的各插件进行验证。有时因为插件的版本升级,可能导致该插件找不到对应的编解码器,而验证单元103则可以通过创建软件实体、调用功能接口以及判断扫描到的插件是否已经存在这三种方式中一种或几种方式来对插件进行验证。
[0082]以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
【权利要求】
1.一种自动适配硬件编解码的方法,调用嵌入式设备的硬件编解码器进行编解码,其特征在于,包括以下步骤: 预存至少一个编解码插件,每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口; 导入所述编解码插件,并加载对应的硬件编解码器; 对数据流进行编码或解码。
2.如权利要求1所述的自动适配硬件编解码的方法,其特征在于,所述导入所述编解码插件,并加载对应的硬件编解码器的步骤之前进一步包括: 对所述编解码插件进行验证。
3.如权利要求2所述的自动适配硬件编解码的方法,其特征在于,所述对准备导入的所述编解码插件进行验证的步骤包括: 创建软件实体和/或调用功能接口和/或判断扫描到的所述编解码插件是否已经存在。
4.如权利要求1所述的自动适配硬件编解码的方法,其特征在于,所述对数据流进行编码或解码的步骤中,所述编解码插件与主程序数据的输入输出交互通过回调函数实现。
5.如权利要求4所述的自动 适配硬件编解码的方法,其特征在于,所述通过回调函数实现所述编解码插件与主程序数据的输入输出交互包括: 主程序通过定义好的接口向编解码插件注册回调函数; 编解码插件保存回调函数; 主程序收到需要编编解码的数据; 编解码插件调用解码函数; 如果编解码需要数据空间,则编解码插件调用回调函数,向主程序申请空间; 主程序申请数据空间给编解码插件; 完成编解码,调用回调函数到主程序。
6.一种视频通信编解码方法,调用嵌入式设备的硬件编解码器进行编解码,其特征在于,包括以下步骤: 预存至少一个编解码插件,每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口; 扫描预存的所述编解码插件,并根据插件接口获得与所述编解码插件对应的硬件编解码器的能力值; 将通信双方的所述硬件编解码器的能力值进行交换比对; 根据比对结果导入需要的编解码插件,并加载通信双方对应的硬件编解码器; 对数据流进行编码或解码。
7.如权利要求6所述的视频通信编解码方法,其特征在于,还包括: 预设软件编解码器,且所述软件编解码器与预存的一个编解码插件相对应; 当通信双方没有对应的硬件编解码器,则加载所述软件编解码器,并对数据流进行编码或解码。
8.如权利要求6所述的视频通信编解码方法,其特征在于,所述扫描预存的所述编解码插件,并根据插件接口获得与所述编解码插件对应的硬件编解码器的能力值的步骤包括: 对扫描到的所述编解码插件进行验证。
9.如权利要求8所述的视频通信编解码方法,其特征在于,所述对扫描到的所述编解码插件进行验证的步骤包括: 创建软件实体和/或调用功能接口和/或判断扫描到的所述编解码插件是否已经存在。
10.如权利要求6所述的视频通信编解码方法,其特征在于,所述对数据流进行编码或解码的步骤中,所述编解码插件与主程序数据的输入输出交互通过回调函数实现。
11.如权利要求10所述的视频通信编解码方法,其特征在于,所述通过回调函数实现所述编解码插件与主程序数据的输入输出交互包括: 主程序通过定义好的接口向编解码插件注册回调函数; 编解码插件保存回调函数; 主程序收到需要编编解码的数据; 编解码插件调用解码函数; 如果编解码需要数据空间,则编解码插件调用回调函数,向主程序申请空间; 主程序申请数据空间给编解码插件; 完成编解码,调用回调函数到主程序。
12.一种自动适配硬件编解码的系统,调用嵌入式设备的硬件编解码器进行编解码,其特征在于,包括: 硬件编解码器,集成在嵌入式芯片中; 存储单元,用于存放至少一个编解码插件,每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口 ; 主程序模块,用于导入所述编解码插件,并加载对应的硬件编解码器,对数据流进行编码或解码。
13.如权利要求12所述的自动适配硬件编解码的系统,其特征在于, 所述主程序模块还设置有软件编解码器,用于当通信双方没有对应的硬件编解码器,由所述主程序模块加载并对数据流进行编码或解码,且所述软件编解码器与预存的一个编解码插件相对应。
14.如权利要求12所述的自动适配硬件编解码的系统,其特征在于,所述主程序模块还包括验证单元,用于对所述编解码插件进行验证。
15.如权利要求12所述的自动适配硬件编解码的系统,其特征在于,所述编解码插件与主程序模块之间数据的输入输出交互通过回调函数实现。
16.一种视频通信编解码系统,调用嵌入式设备的硬件编解码器进行编解码,其特征在于,包括至少两个自动适配硬件编解码的系统,所述自动适配硬件编解码的系统之间通过有线或无线网络连接,每个自动适配硬件编解码的系统又进一步包括: 硬件编解码器,集成在嵌入式芯片中; 存储单元,用于存放至少一个编解码插件,每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口 ; 主程序模块,用于导入所述编解码插件,并加载对应的硬件编解码器,对数据流进行编码或解码。
17.一种硬件编码器调用模块,其特征在于,包括: 存储单元,用于存放至少一个编解码插件,每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口 ; 主程序模块,用于导入所述编解码插件,并加载对应的硬件编解码器。
18.如权利要求17所述的硬件编码器调用模块,其特征在于,所述主程序模块还包括验证单元,用于对所述编解码插件进行验证。
19.如权利要求17所述的硬件编码器调用模块,其特征在于,所述编解码插件与主程序模块之间数据的输入输出交互通过回调函数实现。
【文档编号】H04N19/10GK103686164SQ201210327240
【公开日】2014年3月26日 申请日期:2012年9月6日 优先权日:2012年9月6日
【发明者】姬晓翠 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1