CN103686164A - 自动适配硬件编解码的方法及系统及模块 - Google Patents

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

Info

Publication number
CN103686164A
CN103686164A CN201210327240.3A CN201210327240A CN103686164A CN 103686164 A CN103686164 A CN 103686164A CN 201210327240 A CN201210327240 A CN 201210327240A CN 103686164 A CN103686164 A CN 103686164A
Authority
CN
China
Prior art keywords
encoding
decoding
unit
plug
decoding plug
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201210327240.3A
Other languages
English (en)
Inventor
姬晓翠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Tencent Computer Systems Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201210327240.3A priority Critical patent/CN103686164A/zh
Priority to PCT/CN2013/082673 priority patent/WO2014036910A1/zh
Publication of CN103686164A publication Critical patent/CN103686164A/zh
Priority to US14/591,308 priority patent/US9323545B2/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提出一种自动适配硬件编解码的方法及系统及模块,其自动适配硬件编解码的方法,调用嵌入式设备的硬件编解码器进行编解码,包括以下步骤:预存至少一个编解码插件,每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口;导入所述编解码插件,并加载对应的硬件编解码器;对数据流进行编码或解码。本发明通过动态加载插件,解决了不同平台上管理复杂,兼容性差得问题,并通过合理地调度嵌入式芯片中的硬件编解码器,从而可以提高系统的编解码能力,提高视频质量。

Description

自动适配硬件编解码的方法及系统及模块
技术领域
本发明涉及计算机技术领域,特别涉及自动适配硬件编解码的方法及系统及模块。
背景技术
随着嵌入式设备近年来的不断发展,手机、PDA(Personal Digital Assistant,个人数字助理)、移动电视等设备中嵌入式系统的普及,应用程序在移动设备上的开发也随之增加。由于软件开发项目变大或者软件研发时间要求比较紧急,并且不同的嵌入式平台硬件设备的不同,就需要很多人协同工作进行软件的开发和设计,并将不同的人编写的软件代码进行无缝集成。
随着视频通信的普及,移动设备上进行视频数据的编解码也变得越加频繁。在视频数据进行编解码的过程中,由于视频编解码算法的复杂性,往往需要占用很高的CPU。然而考虑到很多嵌入式系统芯片上一般都会集成硬件编解码器,因而如果成功的调度系统芯片本身的优势,来提高软件编解码的性能,可以有效地提高视频质量。
由于不同的设备商所提供的硬件编解码接口不同,因此在调用系统芯片上的硬件编解码器时就需要使用软件接口,使硬件编解码器可以被应用程序所调用。目前普遍采用的是源代码集成的方式来实现软件接口,但是这种方式对于不同的硬件编解码器就需要编译不同的源代码,加上每个平台的性能等因素的不同,每一次的集成和源代码维护都要重新发布新软件,增加工作量,不利于系统维护。
综上所述,现有嵌入式设备的编解码方式存在以下缺点:
1、工作量大。对于不同的设备需要不同的软件接口,维护不同的源代码,并且每一次发布都需要重新编译,增加了工作量。
2、依赖硬件设备。不同设备商的各种不同的硬件设备,型号不尽相同,所以在使用硬件编解码器的时候,要经常检测硬件设备,以使编码和解码参数相匹配,导致对硬件设备的过份依赖。
发明内容
本发明的目的是提供一种自动适配硬件编解码的方法及系统及模块,以解决现有嵌入式设备的编解码方式所存在的工作量大、过份依赖硬件设备的问题。
本发明提出一种自动适配硬件编解码的方法,调用嵌入式设备的硬件编解码器进行编解码,包括以下步骤:
预存至少一个编解码插件,每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口;
导入所述编解码插件,并加载对应的硬件编解码器;
对数据流进行编码或解码。
依照本发明较佳实施例所述的自动适配硬件编解码的方法,所述导入所述编解码插件,并加载对应的硬件编解码器的步骤之前进一步包括:
对所述编解码插件进行验证。
依照本发明较佳实施例所述的自动适配硬件编解码的方法,所述对准备导入的所述编解码插件进行验证的步骤包括:
创建软件实体和/或调用功能接口和/或判断扫描到的所述编解码插件是否已经存在。
依照本发明较佳实施例所述的自动适配硬件编解码的方法,所述对数据流进行编码或解码的步骤中,所述编解码插件与主程序数据的输入输出交互通过回调函数实现。
依照本发明较佳实施例所述的自动适配硬件编解码的方法,所述通过回调函数实现所述编解码插件与主程序数据的输入输出交互包括:
主程序通过定义好的接口向编解码插件注册回调函数;
编解码插件保存回调函数;
主程序收到需要编编解码的数据;
编解码插件调用解码函数;
如果编解码需要数据空间,则编解码插件调用回调函数,向主程序申请空间;
主程序申请数据空间给编解码插件;
完成编解码,调用回调函数到主程序。
本发明另提出一种视频通信编解码方法,用于调用嵌入式设备的硬件编解码器进行编解码,包括以下步骤:
预存至少一个编解码插件,每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口;
扫描预存的所述编解码插件,并根据插件接口获得与所述编解码插件对应的硬件编解码器的能力值;
将通信双方的所述硬件编解码器的能力值进行交换比对;
根据比对结果导入需要的所述编解码插件,并加载通信双方对应的硬件编解码器;
对数据流进行编码或解码。
依照本发明较佳实施例所述的视频通信编解码方法,还包括:
预设软件编解码器,且所述软件编解码器与预设的一个编解码插件相对应;
当通信双方没有对应的硬件编解码器,则加载所述软件编解码器,并对数据流进行编码或解码。
依照本发明较佳实施例所述的视频通信编解码方法,所述扫描预存的所述编解码插件,并根据插件接口获得与所述编解码插件对应的硬件编解码器的能力值的步骤包括:
对扫描到的所述编解码插件进行验证。
依照本发明较佳实施例所述的视频通信编解码方法,所述对扫描到的所述编解码插件进行验证的步骤包括:
创建软件实体和/或调用功能接口和/或判断扫描到的所述编解码插件是否已经存在。
依照本发明较佳实施例所述的视频通信编解码方法,所述对数据流进行编码或解码的步骤中,所述编解码插件与主程序数据的输入输出交互通过回调函数实现。
依照本发明较佳实施例所述的视频通信编解码方法,所述通过回调函数实现所述编解码插件与主程序数据的输入输出交互包括:
主程序通过定义好的接口向编解码插件注册回调函数;
编解码插件保存回调函数;
主程序收到需要编编解码的数据;
编解码插件调用解码函数;
如果编解码需要数据空间,则编解码插件调用回调函数,向主程序申请空间;
主程序申请数据空间给编解码插件;
完成编解码,调用回调函数到主程序。
本发明还提出一种自动适配硬件编解码的系统,调用嵌入式设备的硬件编解码器进行编解码,包括:
硬件编解码器,集成在嵌入式芯片中;
存储单元,用于存放至少一个编解码插件,每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口;
主程序模块,用于导入所述编解码插件,并加载对应的硬件编解码器,对数据流进行编码或解码。
依照本发明较佳实施例所述的自动适配硬件编解码的系统,所述主程序模块还设置有软件编解码器,用于当通信双方没有对应的硬件编解码器,由所述主程序模块加载并对数据流进行编码或解码,且所述软件编解码器与预存的一个编解码插件相对应。
依照本发明较佳实施例所述的自动适配硬件编解码的系统,所述主程序模块还包括验证单元,用于对所述编解码插件进行验证。
依照本发明较佳实施例所述的自动适配硬件编解码的系统,所述编解码插件与主程序模块之间数据的输入输出交互通过回调函数实现。
本发明还提出一种视频通信编解码系统,调用嵌入式设备的硬件编解码器进行编解码,包括至少两个自动适配硬件编解码的系统,所述自动适配硬件编解码的系统之间通过有线或无线网络连接,每个自动适配硬件编解码的系统又进一步包括:
硬件编解码器,集成在嵌入式芯片中;
存储单元,用于存放至少一个编解码插件,每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口;
主程序模块,用于导入所述编解码插件,并加载对应的硬件编解码器,对数据流进行编码或解码。
本发明还提出一种硬件编码器调用模块,包括:
存储单元,用于存放至少一个编解码插件,每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口;
主程序模块,用于导入所述编解码插件,并加载对应的硬件编解码器。
依照本发明较佳实施例所述的硬件编码器调用模块,所述主程序模块还包括验证单元,用于对所述编解码插件进行验证。
依照本发明较佳实施例所述的硬件编码器调用模块,所述编解码插件与主程序模块之间数据的输入输出交互通过回调函数实现。
相对于现有技术,本发明的有益效果是:本发明通过动态加载插件,取代了现有的通过编译源代码来调用硬件编解码器的方式,解决了不同平台上管理复杂,兼容性差得问题,并通过合理地调度嵌入式芯片中的硬件编解码器,从而可以提高系统的编解码能力,提高视频质量。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
图1为本发明实施例的一种自动适配硬件编解码的方法的流程图;
图2为本发明实施例的一种编解码插件与主程序数据的输入输出交互过程图;
图3为本发明实施例的另一种自动适配硬件编解码的方法的流程图;
图4为本发明实施例的一种对编解码插件进行验证的过程图;
图5为本发明实施例的一种视频通信编解码方法的流程图;
图6为本发明实施例的另一种视频通信编解码方法流程图;
图7为本发明实施例的一种自动适配硬件编解码的系统的结构图;
图8为本发明实施例的另一种自动适配硬件编解码的系统的结构图;
图9为本发明实施例的一种视频通信编解码系统的结构图;
图10为本发明实施例的一种硬件编码器调用模块的结构图;
图11为本发明实施例的另一种硬件编码器调用模块的结构图;
图12为本发明实施例的一种摄像头与编解码插件交互的过程图。
具体实施方式
为更进一步阐述本发明达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的自动适配硬件编解码的方法及系统及视频通信编解码方法其具体实施方式、方法、步骤及功效,详细说明如后。
有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例详细说明中将可清楚的呈现。通过具体实施方式的说明,当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。
本发明的目的是通过实现一种动态加载硬件编解码插件的方式,来解决原来源代码集成方式的工作量大的缺点,请参见图1,其为本发明实施例的一种自动适配硬件编解码的方法的流程图,该自动适配硬件编解码的方法用于调用嵌入式设备的硬件编解码器来进行编解码,其包括以下步骤:
S11,预存至少一个编解码插件。
插件(Plugin)是一种遵循统一的预定义接口规范编写出来的程序,应用程序在运行时通过接口规范对插件进行调用,用来扩展应用程序的功能。
本发明中,所有的编解码插件遵循预定义接口,以供主程序调用。主程序只要导入相应的编解码插件,就可以加载对应的嵌入式芯片中的硬件编解码器。
值得注意的是,设备可以根据需要单纯进行编码或单纯进行解码,或者也可以先后进行编码解码,均是通过主程序导入编解码插件后调用相应的解码器来实现的。而且,由于多个硬件编解码器同时存在的可能(如一台设备集成有多个嵌入式芯片,而每个芯片均含有硬件编解码器),所以预存的编解码插件也可能是多个,但是在编码或解码的时候只导入单一的编解码插件,即只能有单一的一个硬件编解码器进行编解码工作,只有在一个编码或解码工作完成后,才能再导入另一个编解码插件。对于通信对方是不同的通信终端,根据编解码器匹配情况,会导入的不同的硬件编解码器。
S12,导入所述编解码插件,并加载对应的硬件编解码器。
S13,对数据流进行编码或解码。
编解码插件与主程序数据的输入输出交互通过回调函数实现。回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口。因此,通过回调函数可以实现硬件编解码器的输入输出同步。编解码插件与主程序数据的输入输出交互过程如图2所示:
S201,主程序通过定义好的接口向编解码插件注册回调函数。
S202,编解码插件保存回调函数地址,编解码完成之后用于回调。
S203,主程序得到需要编解码的数据,调用接口函数到编解码插件。
S204,编解码插件调用编解码功能。
S205,如果编解码需要数据空间,则调用回调函数,向主程序申请空间。
S206,主程序申请数据空间给编解码插件,内存的申请和释放都是由主程序控制和管理。
S207,编解码完成之后,调用回调函数到主程序。
S208,主程序处理数据,显示或者是发送。
请参见图3,其为本发明实施例的另一种自动适配硬件编解码的方法的流程图,其包括以下步骤:
S31,预存至少一个编解码插件。每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口。
S32,对编解码插件进行验证。
有时因为插件的版本升级等原因,可能导致找不到与某个编解码插件对应的硬件编解码器,因而有必要对插件进行验证,请参见图4,验证过程可以包括如下步骤:
S401,搜索插件。
S402,加载插件,创建软件实体。这里所述的软件实体是指建立主程序导入编解码插件的模型,从而检测插件的自定义接口是否与主程序及硬件编解码器相符。若创建软件实体失败,则表示该插件验证失败,不能被主程序导入。
S403,调用功能接口。若调用功能接口失败,同样表示该插件验证失败,不能被主程序导入。
S404,判断扫描到的插件是否已经存在。如果设备中有两个以上相同的编解码器类型,只需要导入第一次插件,因而当扫描到的编解码插件已经存在时,则表示该插件验证失败。
S405,将插件添加到编解码队列中。
值得注意的是,对编解码插件进行验证的时候可以采用创建软件实体、调用功能接口以及判断扫描到的插件是否已经存在这三种方式中的一种或几种实现,而具体的选择可以根据实际需要来决定。
S33,导入所述编解码插件,并加载对应的硬件编解码器。插件的验证完成后,便可以利用导入插件来加载对应的硬件编解码器。
S34,对数据流进行编码或解码。
通过动态加载编解码插件的方式,可以合理地调度嵌入式芯片中硬件编解码器,从而可以提高系统的编解码能力。当然,动态加载编解码插件的思想既可以应用于单台设备进行数据流的编解码,更可以在两台设备的视频通信中进行应用,为此,本发明提出一种视频通信编解码方法,用于调用嵌入式设备的硬件编解码器进行编解码,请参见图5,其包括以下步骤:
S51,预存至少一个编解码插件。每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口。
S52,扫描预存的所述编解码插件,并根据插件接口获得与所述编解码插件对应的硬件编解码器的能力值。
这里所述的编解码器能力值是对该插件的功能诠释,所以能力参数可以说明编解码器的功能,以及适配的参数。参数包括:编解码器可以支持的最大图像分辨率、输出的最大码率、帧率、编码器可以支持的输入图像类型、输出图像类型、编解码器的类型(比如VP8或者H264等)。
由于硬件编解码器对应的编解码插件是由设备商提供的,所以通过插件定义接口可以得到硬件平台上每个硬件编解码器的能力值,然后可以将这些硬件编码器的能力参数用队列的方式管理,以便于后续对通信双方所使用的编码器进行匹配。
S53,将通信双方的硬件编解码器的能力值进行交换比对。
S54,根据比对结果导入需要的编解码插件,并加载通信双方对应的硬件编解码器。
硬件编解码器能力值的交换比对的目的是找出双方参数一致的硬件编解码器,即使通信双方所加载的硬件编解码器能够处理的编解码的大小、码率等各项值相匹配,以保证视频通信的顺利进行。若有通信双方有多组相匹配的硬件编解码器,可以通过对各硬件编解码器预设优先值的方式,选出最终需要的硬件编解码器进行加载。
S55,对数据流进行编码或解码。
请参见图6,其为本发明实施例的另一种视频通信编解码方法流程图,用于调用嵌入式设备的硬件编解码器进行编解码,其包括以下步骤:
S61,预存至少一个编解码插件。每个硬件编解码器与一个编解码插件相对应,所有的编解码插件遵循预定义接口。
S62,预设软件编解码器,且所述软件编解码器与预设的一个编解码插件相对应。软件编解码器的插件具有和硬件编解码器一样的插件接口,所以软件插件的导入也是根据条件导入,并且和可以无缝连接到主程序。
S63,扫描预存的所述编解码插件,并根据插件接口获得与所述编解码插件对应的硬件编解码器的能力值。
S64,将通信双方的硬件编解码器的能力值进行交换比对。
S65,若通信双方有对应的硬件编解码器,则根据比对结果导入需要的编解码插件,并加载通信双方对应的硬件编解码器。
S66,若通信双方没有对应的硬件编解码器,则导入与所述软件编解码器相对应的编解码插件,加载所述软件编解码器。
S67,对数据流进行编码或解码。
在视频通讯过程中,往往要使用摄像头,由于编解码插件经常可以支持多种输入类型做编码,因此在打开摄像头时,需要检测插件需要的输入类型。如图12所示,在扫描编解码插件并获得其能力值时,便可以获知该编解码插件支持的输入格式种类,当编解码插件支持的输入格式种类数N > 1时,则调用其功能接口,依次得到编解码插件需要输入的流格式,然后检测摄像头是否支持该格式,若摄像头支持当前格式则打开摄像头,若不支持,则返回再次调用功能接口,并重新获得另一个编解码插件需要输入的流格式进行检测,直至找到编解码插件与摄像头相匹配的格式。当编解码插件支持的输入格式种类数N=1时,就直接打开摄像头进行数据流的编码。值得注意的是,如果摄像头的输出格式与编解码插件的输入格式不匹配,则需要对数据流的格式进行转换(图中未绘示)。
请参见图7,其为本发明实施例的一种自动适配硬件编解码的系统的结构图,其包括主程序模块71、存储单元72和硬件编解码器73。所述硬件编解码器73集成在嵌入式芯片中。存储单元72用于存放至少一个编解码插件721,每个硬件编解码器73均与一个编解码插件721相对应,所有的编解码插件遵循预定义接口。主程序模块71用于导入所述编解码插件721,并加载对应的硬件编解码器73,以对数据流进行编码或解码。
这里所述的与硬件编解码器73对应的编解码插件721是由设备商提供的。每个嵌入式芯片上都会继承主程序模块71公开的接口,即所有的编解码插件721均遵循预定义接口,实现硬件编解码器73的调用,也即是说,主程序模块71只要导入相应的编解码插件721,就可以加载对应的嵌入式芯片中的硬件编解码器73,从而实现嵌入式芯片中硬件编解码器73的调用,提高了编解码能力,也可以提高视频质量。
值得注意的是,设备可以根据需要单纯进行编码或单纯进行解码,或者也可以先后进行编码解码,所以编解码插件是根据需要来预存的。而且,由于多个硬件编解码器73同时存在的可能(如一台设备集成有多个嵌入式芯片,而每个芯片均含有硬件编解码器),所以预存的编解码插件721也可能是多个,但是在编码或解码的时候只导入单一的编解码插件721,即只能有单一的一个硬件编解码器73进行编解码工作,只有在一个编码或解码工作完成后,才能再导入另一个编解码插件721。而所述编解码插件721与主程序模块之间数据的输入输出交互通过回调函数实现。
请参见图8,其为本发明实施例的另一种自动适配硬件编解码的系统的结构图,与图7的实施例相比,本实施例的系统中除了硬件编解码器73,还包括软件编解码器711,软件编解码器711可以集成在主程序模块71中,且所述软件编解码器711与预存的一个编解码插件721相对应。主程序模块71中还设置有验证单元712。
软件编解码器711的作用是在没有适用的硬件编解码器73的时候,由主程序模块71调用并进行编解码。软件编解码器711的插件具有和硬件编解码器一样的插件接口,所以软件编码插件723和软件解码插件724的导入也是根据条件导入,并且和可以无缝连接到主程序模块71。
主程序模块71调用软件编解码器711主要有两种情况:一种情况是设备中并没有硬件编解码器73,这时主程序模块71会导入与软件编解码器711相对应的编解码插件721,并通过软件编解码器711进行编解码。另一种情况是在进行视频通讯的时候,通常要对通讯双方的编解码能力进行比对匹配,使双方所适用的编解码器一致(即通讯双方所使用的编解码器可以支持的最大图像分辨率、输出的最大码率、帧率、编码器可以支持的输入图像类型、输出图像类型、编解码器的类型要匹配),以确保视频通讯的正常进行。而如果这时虽然双方都有各自的硬件编解码器73,但却并不匹配,则主程序模块71也会导入与软件编解码器711相对应的编解码插件721,并通过软件编解码器711进行编解码。
验证单元712的作用是在主程序模块71导入插件之前,先对存储单元72中的各插件进行验证。有时因为插件的版本升级,可能导致该插件找不到对应的编解码器,而验证单元712则可以通过创建软件实体、调用功能接口以及判断扫描到的插件是否已经存在这三种方式中一种或几种方式来对插件进行验证。
本发明还提出一种视频通信编解码系统,请参见图9,其包括至少两个自动适配硬件编解码的系统91,自动适配硬件编解码的系统91之间通过网络92(有线或无线)连接。自动适配硬件编解码的系统91可以架设在终端中(如手机、平板电脑等),以帮助终端之间进行视频通讯。特别是其可以利用预存的编解码插件来调用嵌入式芯片的硬件编解码器来对数据流进行编码或解码,进而可以大大提高系统的编解码能力,也提高了视频通讯质量。
本发明还提出一种硬件编码器调用模块,请参见图10,其包括存储单元101和主程序模块102。存储单元101中存放至少一个编解码插件103,每个硬件编解码器与一个编解码插件103相对应,所有的编解码插件103都遵循预定义接口,以使其可以被主程序模块102导入。主程序模块102用于导入存储单元101中存放的编解码插件103,进而加载对应的硬件编解码器。本发明的硬件编码器调用模块可以架设在嵌入式设备中,以帮助设备对数据流进行编解码。由于硬件编解码器是嵌入式芯片所带的,因而具有较高的编解码能力,而且主程序模块102利用编解码插件103来调用硬件编解码器,省去了现有技术中每种类型硬件编解码器都要编译源代码的繁琐过程,解决了不同平台上管理复杂,兼容性差得问题。
请参见图11,其为本发明实施例的另一种硬件编码器调用模块结构图,与图10的实施例相比,本实施例的主程序模块102中还设置有验证单元103。验证单元103的作用是在主程序模块102导入插件之前,先对存储单元101中的各插件进行验证。有时因为插件的版本升级,可能导致该插件找不到对应的编解码器,而验证单元103则可以通过创建软件实体、调用功能接口以及判断扫描到的插件是否已经存在这三种方式中一种或几种方式来对插件进行验证。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (19)

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所述的硬件编码器调用模块,其特征在于,所述编解码插件与主程序模块之间数据的输入输出交互通过回调函数实现。
CN201210327240.3A 2012-09-06 2012-09-06 自动适配硬件编解码的方法及系统及模块 Pending CN103686164A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201210327240.3A CN103686164A (zh) 2012-09-06 2012-09-06 自动适配硬件编解码的方法及系统及模块
PCT/CN2013/082673 WO2014036910A1 (zh) 2012-09-06 2013-08-30 自动适配硬件编解码的方法、系统、模块及存储介质
US14/591,308 US9323545B2 (en) 2012-09-06 2015-01-07 Method, system, module, and storage medium for automatic adaptation of hardware encoding and decoding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210327240.3A CN103686164A (zh) 2012-09-06 2012-09-06 自动适配硬件编解码的方法及系统及模块

Publications (1)

Publication Number Publication Date
CN103686164A true CN103686164A (zh) 2014-03-26

Family

ID=50236533

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210327240.3A Pending CN103686164A (zh) 2012-09-06 2012-09-06 自动适配硬件编解码的方法及系统及模块

Country Status (3)

Country Link
US (1) US9323545B2 (zh)
CN (1) CN103686164A (zh)
WO (1) WO2014036910A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105491387A (zh) * 2015-12-04 2016-04-13 武汉斗鱼网络科技有限公司 一种基于Intel、AMD和Nvidia三平台的H264硬件编码系统
CN107370908A (zh) * 2017-09-15 2017-11-21 赵立峰 一种数据处理系统及方法
CN110022480A (zh) * 2018-01-09 2019-07-16 武汉斗鱼网络科技有限公司 一种基于amd显卡的h265硬件编码方法及直播平台
CN110602460A (zh) * 2019-09-20 2019-12-20 普联技术有限公司 视频解码上墙的控制方法、系统及装置
CN111970682A (zh) * 2020-08-26 2020-11-20 浙江三维通信科技有限公司 移动网络侦测信息的传输方法和装置、存储介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3364770B1 (en) * 2015-10-19 2019-08-21 Unilever N.V. Composition comprising an oil phase
EP3740882A1 (en) * 2018-01-18 2020-11-25 Bevara Technologies, LLC Browser navigation for facilitating data access
CN109274973A (zh) * 2018-09-26 2019-01-25 江苏航天大为科技股份有限公司 嵌入式arm平台上的快速视频解码方法
CN111800381B (zh) * 2020-05-28 2024-03-15 国网江苏省电力有限公司 公共事业数据一体化远程采集统一规约处理系统及方法
CN117395434B (zh) * 2023-12-07 2024-03-26 西安芯云半导体技术有限公司 硬件编解码调试方法、装置、设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020007357A1 (en) * 1997-10-27 2002-01-17 Sun Microsystems, Inc. Method and apparatus for providing plug-in media decoders
US20020120945A1 (en) * 2001-02-28 2002-08-29 Schwalb Eddie M. Software bus and interface for digital television application software environments
CN101047842A (zh) * 2006-03-27 2007-10-03 中兴通讯股份有限公司 无线二进制运行环境手机播放流媒体音视频的方法
CN101202919A (zh) * 2007-11-06 2008-06-18 深圳市同洲电子股份有限公司 一种数字电视接收机及其中间件
CN101258723A (zh) * 2005-07-04 2008-09-03 西门子企业通讯有限责任两合公司 用于建立有用数据连接的方法、服务器装置和转换装置
CN101339789A (zh) * 2008-08-13 2009-01-07 中兴通讯股份有限公司 一种多媒体引擎的实现方法
CN101720036A (zh) * 2009-12-15 2010-06-02 青岛海信宽带多媒体技术有限公司 一种实现dvb数据多用户分发的系统
CN101771869A (zh) * 2008-12-30 2010-07-07 深圳市万兴软件有限公司 一种音视频编解码装置及方法
US20110142121A1 (en) * 2009-12-11 2011-06-16 Hayden John R Reusable and extensible framework for multimedia application development
CN102186054A (zh) * 2011-03-25 2011-09-14 谢丹玫 基于对比度分辨率补偿的自适应底层视频在线挖掘系统及方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9680686B2 (en) * 2006-05-08 2017-06-13 Sandisk Technologies Llc Media with pluggable codec methods
US8640097B2 (en) * 2009-03-16 2014-01-28 Microsoft Corporation Hosted application platform with extensible media format
CN101699405B (zh) * 2009-10-26 2014-06-11 中兴通讯股份有限公司 一种宿主程序和插件及插件间进行交互的方法及装置
KR20110054932A (ko) * 2009-11-19 2011-05-25 삼성전자주식회사 비디오 재생 장치 및 방법

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020007357A1 (en) * 1997-10-27 2002-01-17 Sun Microsystems, Inc. Method and apparatus for providing plug-in media decoders
US20020120945A1 (en) * 2001-02-28 2002-08-29 Schwalb Eddie M. Software bus and interface for digital television application software environments
CN101258723A (zh) * 2005-07-04 2008-09-03 西门子企业通讯有限责任两合公司 用于建立有用数据连接的方法、服务器装置和转换装置
CN101047842A (zh) * 2006-03-27 2007-10-03 中兴通讯股份有限公司 无线二进制运行环境手机播放流媒体音视频的方法
CN101202919A (zh) * 2007-11-06 2008-06-18 深圳市同洲电子股份有限公司 一种数字电视接收机及其中间件
CN101339789A (zh) * 2008-08-13 2009-01-07 中兴通讯股份有限公司 一种多媒体引擎的实现方法
CN101771869A (zh) * 2008-12-30 2010-07-07 深圳市万兴软件有限公司 一种音视频编解码装置及方法
US20110142121A1 (en) * 2009-12-11 2011-06-16 Hayden John R Reusable and extensible framework for multimedia application development
CN101720036A (zh) * 2009-12-15 2010-06-02 青岛海信宽带多媒体技术有限公司 一种实现dvb数据多用户分发的系统
CN102186054A (zh) * 2011-03-25 2011-09-14 谢丹玫 基于对比度分辨率补偿的自适应底层视频在线挖掘系统及方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105491387A (zh) * 2015-12-04 2016-04-13 武汉斗鱼网络科技有限公司 一种基于Intel、AMD和Nvidia三平台的H264硬件编码系统
CN107370908A (zh) * 2017-09-15 2017-11-21 赵立峰 一种数据处理系统及方法
CN107370908B (zh) * 2017-09-15 2021-04-30 威海元程信息科技有限公司 一种数据处理系统及方法
CN110022480A (zh) * 2018-01-09 2019-07-16 武汉斗鱼网络科技有限公司 一种基于amd显卡的h265硬件编码方法及直播平台
CN110022480B (zh) * 2018-01-09 2022-03-25 武汉斗鱼网络科技有限公司 一种基于amd显卡的h265硬件编码方法及直播平台
CN110602460A (zh) * 2019-09-20 2019-12-20 普联技术有限公司 视频解码上墙的控制方法、系统及装置
CN111970682A (zh) * 2020-08-26 2020-11-20 浙江三维通信科技有限公司 移动网络侦测信息的传输方法和装置、存储介质

Also Published As

Publication number Publication date
US9323545B2 (en) 2016-04-26
US20150128155A1 (en) 2015-05-07
WO2014036910A1 (zh) 2014-03-13

Similar Documents

Publication Publication Date Title
CN103686164A (zh) 自动适配硬件编解码的方法及系统及模块
US9450930B2 (en) Device association via video handshake
CN101854380B (zh) 一种实现跨平台的p2p视频聊天的方法
CN103442126A (zh) 一种基于云服务的手机的通讯方法及系统
CN104144349A (zh) 基于h264的spice视频编解码扩展方法及系统
CN109033803A (zh) 一种基于门户app的移动微应用登录管理方法
CN105072511A (zh) 一种互联网智能楼宇对讲系统及装置
CN104899500A (zh) 一种电梯用户权限管理系统和方法
CN105025273B (zh) 楼宇可视对讲系统的连接方法、密码设置方法及系统
CN112835632A (zh) 一种端能力的调用方法、设备和计算机存储介质
CN104954544A (zh) 可在屏幕锁定状态下快速拨打电话的移动通信装置及方法
CN104509083A (zh) 通信系统、方法和程序
CN103581695A (zh) 一种实现移动终端接入全球眼的系统和方法
CN112860462A (zh) 一种实现iot平台基座互联互通的方法、装置及系统
EP3151481A1 (en) Communication terminal, communication system, and output method
CN102694775A (zh) 一种基于异步通讯方式的校园信息机终端验证方法
CN103685434A (zh) 在终端上实现各种操作系统的方法、系统和设备
CN113949728A (zh) 不同平台设备同步的方法、第一平台和第二平台
US20160088033A1 (en) Electronic device and method for establishing conference call
CN101616298A (zh) 对会议电视终端进行远程维护的方法、装置及系统
CN111278082A (zh) 终端通信装置、方法、系统、设备及存储介质
CN111736887A (zh) 一种利旧设备的访问系统、方法、装置及存储介质
CN116248657B (zh) 投屏系统的控制方法、装置、计算机设备及存储介质
CN107438235A (zh) 来电转接方法、系统、终端及计算机可读存储介质
CN102375730B (zh) 一种拍照数据处理装置及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20151022

Address after: The South Road in Guangdong province Shenzhen city Fiyta building 518000 floor 5-10 Nanshan District high tech Zone

Applicant after: Shenzhen Tencent Computer System Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518044 Zhenxing Road, SEG Science Park 2 East Room 403

Applicant before: Tencent Technology (Shenzhen) Co., Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20140326