一种转码加速方法和转码器的制造方法

文档序号:7983681阅读:199来源:国知局
一种转码加速方法和转码器的制造方法
【专利摘要】本申请公开了一种转码加速方法和转码器,该转码加速方法包括下面步骤:接受转码任务,根据当前待转码文件、目标文件和用于转码的硬件所支持的转码文件格式检测待转码文件是否符合硬转码条件;根据检测结果对待转码文件进行硬转码或软转码处理。该转码器包括转码检测模块和转码模块。本申请提供的转码加速方法和转码器在对视频流或音频流等待转码文件进行转码操作时,先检测待转码文件是否可以进行硬转码,如果可以则对转码文件进行硬转码,有利于加快待转码文件的转码速度,并且减少对CPU和内存资源的占用。
【专利说明】一种转码加速方法和转码器
【技术领域】
[0001]本申请涉及文件的转码领域,具体涉及一种转码加速方法和转码器。
【背景技术】
[0002]视频转码是指对压缩视频流(一路或多路已编码数据流)先进行完全解码处理,接着对解码图像作缩放、编辑或多画面组合等处理,最后将经过处理的解码图像进行二次编码并将其输出。视频转码器通过对压缩的视频码流进行端到端的处理,使得转码后的压缩码流更能适应传输信道带宽以及特定接收端的要求。因为视频转码器需要对输入的视频流进行全解码、视频过滤/图像处理、并且对输出格式进行全编码,所以视频转码需要进行高负荷运算。若仅仅利用CPU进行转码,则将导致CPU占用率和内存消耗很高,电脑资源大部分被转码操作占用,严重影响用户的其它操作。
[0003]当转码处理的视频分辨率较大,码率比较高时,如图3所示,为视频转码时CPU和内存使用记录的截屏图,在4核8线程的PC机上,CPU消耗高达89%,内存消耗高达2.14GB。
[0004]同时,对于音频转码处理,当音频复杂度较高时,在转码处理过程中也同样会出现CPU和内存占用率高的现象,影响用户的其它操作。

【发明内容】

[0005]本申请提供一种转码加速方法和转码器,可以加速转码过程,并且减少对CPU和内存的占用率。
[0006]根据本申请的第一方面,本申请提供一种转码加速方法,包括下面步骤:
[0007]接受转码任务,根据当前待转码文件、目标文件和用于转码的硬件所支持的转码文件格式检测待转码文件是否符合硬转码条件;
[0008]根据检测结果对待转码文件进行硬转码或软转码处理。
[0009]根据本申请的第二方面,本申请提供一种转码器,包括下面模块:
[0010]转码检测模块,用于接受转码任务,并根据当前待转码文件、目标文件和用于转码的硬件所支持的转码文件格式检测待转码文件是否符合硬转码条件;
[0011]转码模块,根据转码检测模块的检测结果对待转码文件进行硬转码或软转码处理。
[0012]本申请的有益效果是:在对视频流或音频流等待转码文件进行转码操作时,检测待转码文件是否可以进行硬转码,如果可以则对转码文件进行硬转码,硬转码具有速度快且占用CPU资源少的优点,因此,本申请提供的加速方法和转码器可以加快待转码文件的转码速度,并且减少对CPU和内存资源的占用。
【专利附图】

【附图说明】
[0013]图1为本申请一种实施例中转码加速方法的步骤流程图;
[0014]图2为本申请一种实施例中转码器的模块示意图;[0015]图3为仅利用CPU进行视频转码时CPU和内存使用率的截屏图。
【具体实施方式】
[0016]下面通过【具体实施方式】结合附图对本申请作进一步详细说明。
[0017]在本申请实施例中,通过检测待转码文件是否符合硬转码条件,再根据检测结果对待转码文件进行硬转码或软转码处理。待转码文件可以是待转码的视频流文件或音频流文件,对应用于转码的硬件可以是显卡设备或声卡设备。本实施例主要以视频流文件为例进行说明,由于显卡的核心处理器对视频图像的处理功能强、速度快,因此硬转码相比于仅利用CPU进行转码具有速度快且占用CPU和内存资源少的优点。
[0018]实施例一:
[0019]请参考图1,本实施例提供了一种转码加速方法,包括下面步骤:
[0020]步骤101,接受转码任务,开始转码程序;
[0021]步骤102,接受转码任务后先检测转码硬件环境,判断用于转码的硬件是否符合硬件加速条件;如果符合,执行步骤104 ;如果不符合,则转到步骤103对待转码文件进行软转码处理。硬件加速条件是指,用于转码的硬件本身是否具有解码或编码的功能,如果有,则判断为用于转码的硬件符合硬件加速条件;如果没有,则判断为用于转码的硬件不符合硬件加速条件。
[0022]步骤103,对待转码文件进行软转码处理,软转码处理是指,用于转码的硬件不符合硬件加速条件或待转码文件不符合硬转码条件,无法通过硬件对待转码文件进行转码,解码步骤和编码步骤都只能利用CPU进行,即软转码处理包括软解码和软编码处理。
[0023]步骤104,根据当前待转码文件、目标文件和用于转码的硬件所支持的转码文件格式判断待转码文件是否符合硬转码条件,硬转码条件包括硬解码条件和硬编码条件。当然,硬转码条件还可以是其它根据用户需要预先设定的条件,比如待转码文件的格式条件,用户设定对于特定格式的待转码文件才进行硬转码处理。硬解码条件指,待转码文件符合用于转码的硬件所支持的文件格式;硬编码条件指,目标文件符合用于转码的硬件所支持的文件格式。
[0024]判断待转码文件是否符合用于转码的硬件所支持的文件格式可以采用下面方法:将输入的待转码文件的格式与硬件解码列表进行比对,若其格式在硬件解码列表范围内,则判断为待转码文件符合用于转码的硬件所支持的文件格式,即待转码文件符合硬解码条件;若其格式不在硬件解码列表范围内,则判断为待转码文件不符合用于转码的硬件所支持的文件格式,即待转码文件不符合硬解码条件。
[0025]判断目标文件是否符合用于转码的硬件所支持的文件格式可以采用下面方法:从转码参数中提取目标文件的格式信息,将格式信息与硬件编码列表进行比对,若其格式在硬件编码列表范围内,则判断为目标文件符合用于转码的硬件所支持的文件格式,即待转码文件符合硬编码条件;若其格式不在硬件编码列表范围内,则判断为目标文件不符合用于转码的硬件所支持的文件格式,即待转码文件不符合硬编码条件;
[0026]基于上述判断,待转码文件可能出现以下情况:
[0027]条件1:待转码文件同时符合硬解码条件和硬编码条件;
[0028]条件2:待转码文件符合硬解码条件但不符合硬编码条件;[0029]条件3:待转码文件不符合硬解码条件但符合硬编码条件;
[0030]条件4:待转码文件同时不符合硬解码条件和硬编码条件。
[0031]当步骤104检测为待转码文件符合条件4时,则转到步骤103,对待转码文件进行软解码软编码的软转码处理。
[0032]步骤105,当步骤104检测为待转码文件符合条件I时,则对待转码文件进行硬解码硬编码的硬转码处理。
[0033]步骤106,当步骤104检测为待转码文件符合条件2时,则对待转码文件进行硬解码软编码的硬转码处理。硬解码软编码指,对待转码文件先进行硬解码,再利用CPU对硬解码后的数据进行编码以得到需要转码成的目标文件。
[0034]步骤107,当步骤104检测为待转码文件符合条件3时,则对待转码文件进行软解码硬编码的硬转码处理。软解码硬编码指,先利用CPU对待转码文件进行解码,再将解码后的数据进行硬编码以得到需要转码成的目标文件。
[0035]步骤108,根据上述步骤对待转码文件的检测结果对待转码文件进行相应的硬转码或软转码处理,并将转码后的目标文件进行输出。
[0036]比如,在Windows平台下,Directshow框架系统下,以Intel Media SDK (因特尔显卡处理视频的专用软件开发工具包)为例,利用硬件,即Intel显卡,来实现视频的硬件加速转码。包括下面步骤:
[0037]步骤I,检测Intel显卡硬件是否符合Intel Media SDK的硬件加速条件,即Intel显卡硬件或核心显示芯片本身是否具有视频加速解码或编码能力,如果不符合,则对视频流进行软转码处理;如果符合,则执行步骤2。
[0038]步骤2,检测输入视频流是否符合硬转码条件,硬转码条件包括硬解码条件和硬编码条件。检测当前输入视频流的格式是否存在于Intel显卡硬件的解码列表中(列表的视频流格式包括a 264/VCl/Mpeg2),如果存在,则判断为符合硬解码条件,如果不存在,则判断为不符合硬解码条件。检测当前输入视频流需要转码成的目标文件的格式是否存在于Intel显卡硬件的编码列表中(列表格式包括H.264/Mpeg2),如果存在,则判断为符合硬编码条件,如果不存在,则判断为不符合硬编码条件。
[0039]步骤3,在步骤2中,如果检测到当前输入视频流同时符合硬解码条件和硬编码条件时,则对当前输入视频流进行硬解码硬编码的硬转码处理;如果检测到当前输入视频流符合硬解码条件不符合硬编码条件,则对当前输入视频流进行硬解码软编码的硬转码处理;如果检测到当前输入视频流不符合硬解码条件符合硬编码条件,则对当前输入视频进行软解码硬编码的硬转码处理;如果检测到当前输入视频流同时不符合硬解码条件和硬编码条件,则对当前输入视频流进行软解码软编码的软转码处理。
[0040]步骤4,根据步骤3的检测结果对当前输入视频流进行硬转码或软转码,并将转码后的目标文件进行输出。
[0041]本实施提供的转码加速方法,先检测视频流或音频流等待转码文件是否符合硬转码条件,对符合硬转码条件的待转码文件进行硬转码处理,由于硬转码速度更快,占用CPU和内存资源少,故该转码加速方法具有转码速度快,占用CPU和内存资源少的优点。
[0042]实施例二:
[0043]请参考图2,本实施例提供了一种转码器,包括硬件检测模块201、转码检测模块202和转码模块205。其中,转码检测模块202包括待转码文件格式检测单元203和目标文件格式检测单元204,转码模块205包括解码单元206和编码单元207。
[0044]硬件检测模块201用于检测转码硬件环境,判断用于转码的硬件是否符合硬件加速条件;如果符合,则继续由转码检测模块202检测待转码文件是否符合硬转码条件;如果不符合,则由转码模块205对待转码文件进行软转码处理,即直接命令转码模块205中的解码单元206和编码单元207对待转码文件进行软解码和软编码处理,仅由CPU进行解码和编码操作。硬件加速条件指,用于转码的硬件本身是否具有解码或编码的功能,如果有,则判断为用于转码的硬件符合硬件加速条件;如果没有,则判断为用于转码的硬件不符合硬件加速条件。
[0045]转码检测模块202用于检测待转码文件是否符合硬转码条件,转码检测模块202包括待转码文件格式检测单元203和目标文件格式检测单元204,硬转码条件包括硬解码条件和硬编码条件。硬解码条件指,待转码文件的格式符合用于转码的硬件所支持的文件格式。硬编码条件指,目标文件的格式符合用于转码的硬件所支持的文件格式。待转码文件格式检测单元203用于判断当前待转码文件是否符合硬解码条件,具体为待转码文件格式检测单元203将输入的待转码文件的格式与硬件解码列表进行比对,若其格式在硬件解码列表范围内,则判断为待转码文件符合用于转码的硬件所支持的文件格式,即待转码文件符合硬解码条件;若其格式不在硬件解码列表范围内,则判断为待转码文件不符合用于转码的硬件所支持的文件格式,即待转码文件不符合硬解码条件。目标文件格式检测单元204用于判断待转码文件是否符合硬编码条件,具体为目标文件格式检测单元204从转码参数中提取目标文件的格式信息,将格式信息与硬件编码列表进行比对,若其格式在硬件编码列表范围内,则判断为目标文件符合用于转码的硬件所支持的文件格式,即待转码文件符合硬编码条件;若其格式不在硬件编码列表范围内,则判断为目标文件不符合用于转码的硬件所支持的文件格式,即待转码文件不符合硬编码条件。
[0046]当硬件检测模块201检测到用于转码的硬件符合硬件加速条件,待转码文件格式检测单元203检测到待转码文件符合硬解码条件且目标文件格式检测单元204检测到待转码文件符合硬编码条件时,解码单元206对待转码文件进行硬解码处理,编码单元207对解码后的待转码文件进行硬编码处理;
[0047]当硬件检测模块201检测到用于转码的硬件符合硬件加速条件,待转码文件格式检测单元203检测到待转码文件符合硬解码条件且目标文件格式检测单元204检测到待转码文件不符合硬编码条件时,解码单元206对待转码文件进行硬解码处理,编码单元207对解码后的待转码文件进行软编码处理;
[0048]当硬件检测模块201检测到用于转码的硬件符合硬件加速条件,待转码文件格式检测单元203检测到待转码文件不符合硬解码条件且目标文件格式检测单元204检测到待转码文件符合硬编码条件时,解码单元206对待转码文件进行软解码处理,编码单元207对解码后的待转码文件进行硬编码处理;
[0049]当硬件检测模块201检测到用于转码的硬件符合硬件加速条件,待转码文件格式检测单元203检测到待转码文件不符合硬解码条件且目标文件格式检测单元204检测到待转码文件不符合硬编码条件时,解码单元206对待转码文件进行软解码处理,编码单元207对解码后的待转码文件进行软编码处理。[0050]转码模块205,用于根据硬件检测模块201和转码检测模块202的检测结果对待转码文件进行相应转码处理,并将转码后的目标文件进行输出。
[0051]本实施例提供的转码器通过转码检测模块检测待转码文件是否符合硬转码条件来判断当前待转码文件是否可以进行硬转码,对于可以进行硬转码的待转码文件进行硬转码处理可以加快整个转码过程的速度,通过硬转码还可以减少对CPU和内存资源的占用。
[0052]以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属【技术领域】的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换。
【权利要求】
1.一种转码加速方法,其特征在于包括下面步骤: 接受转码任务,根据当前待转码文件、目标文件和用于转码的硬件所支持的转码文件格式检测待转码文件是否符合硬转码条件; 根据检测结果对待转码文件进行硬转码或软转码处理。
2.如权利要求1所述的方法,其特征在于,所述硬转码条件包括硬解码条件和硬编码条件; 所述硬解码条件为待转码文件的格式符合用于转码的硬件所支持的文件格式,所述硬编码条件为目标文件的格式符合用于转码的硬件所支持的文件格式; 所述检测待转码文件是否符合硬转码条件的步骤包括: 判断待转码文件是否符合用于转码的硬件所支持的文件格式,并判断目标文件是否符合用于转码的硬件所支持的文件格式。
3.如权利要求2所述的方法,其特征在于, 所述判断待转码文件是否符合用于转码的硬件所支持的文件格式包括:将输入的待转码文件的格式与硬件解码列表进行比对,若其格式在硬件解码列表范围内,则判断为待转码文件符合用于转码的硬件所支持的文件格式,即待转码文件符合硬解码条件;若其格式不在硬件解码列表范围内,则判断为待转码文件不符合用于转码的硬件所支持的文件格式,即待转码文件不符合硬解码条件; 所述判断目标文件是否符合用于转码的硬件所支持的文件格式包括:从转码参数中提取目标文件的格式信息,将所述格式信息与硬件编码列表进行比对,若其格式在硬件编码列表范围内,则判断为目标文件符合用于转码的硬件所支持的文件格式,即待转码文件符合硬编码条件;若其格式不在硬件编码列表范围内,则判断为目标文件不符合用于转码的硬件所支持的文件格式,即待转码文件不符合硬编码条件; 所述根据检测结果对待转码文件进行硬转码或软转码处理包括: 当待转码文件被检测为符合硬解码条件不符合硬编码条件时,对待转码文件进行硬解码软编码的硬转码处理; 当待转码文件被检测为不符合硬解码条件符合硬编码条件时,对待转码文件进行软解码硬编码的硬转码处理; 当待转码文件被检测为符合硬解码条件符合硬编码条件时,对待转码文件进行硬解码硬编码的硬转码处理; 当待转码文件被检测为不符合硬解码条件不符合硬编码条件时,对待转码文件进行软解码软编码的软转码处理。
4.如权利要求1至3任一项所述的方法,其特征在于,在接受转码任务后和检测待转码文件是否符合硬转码条件之前,还包括: 检测转码硬件环境,判断用于转码的硬件是否符合硬件加速条件;如果符合,则执行所述检测待转码文件是否符合硬转码条件步骤;如果不符合,则对待转码文件进行软转码处理。
5.一种转码器,其特征在于,包括: 转码检测模块,用于接受转码任务,并根据当前待转码文件、目标文件和用于转码的硬件所支持的转码文件格式判断待转码文件是否符合硬转码条件;转码模块,根据转码检测模块的检测结果对待转码文件进行硬转码或软转码处理。
6.如权利要求5所述的转码器,其特征在于,所述转码检测模块包括: 待转码文件格式检测单元,用于判断待转码文件是否符合硬解码条件,所述硬解码条件为待转码文件的格式符合用于转码的硬件所支持的文件格式; 目标文件格式检测单元,用于判断待转码文件是否符合硬编码条件,所述硬编码条件为目标文件的格式符合 用于转码的硬件所支持的文件格式。
7.如权利要求6所述的转码器,其特征在于, 所述待转码文件格式检测单元判断待转码文件是否符合硬解码条件包括:所述待转码文件格式检测单元将输入的待转码文件的格式与硬件解码列表进行比对,若其格式在硬件解码列表范围内,则判断为待转码文件符合用于转码的硬件所支持的文件格式,即待转码文件符合硬解码条件;若其格式不在硬件解码列表范围内,则判断为待转码文件不符合用于转码的硬件所支持的文件格式,即待转码文件不符合硬解码条件; 所述目标文件格式检测单元判断待转码文件是否符合硬编码条件包括:所述目标文件格式检测单元从转码参数中提取目标文件的格式信息,将所述格式信息与硬件编码列表进行比对,若其格式在硬件编码列表范围内,则判断为目标文件符合用于转码的硬件所支持的文件格式,即待转码文件符合硬编码条件;若其格式不在硬件编码列表范围内,则判断为目标文件不符合用于转码的硬件所支持的文件格式,即待转码文件不符合硬编码条件。
8.如权利要求7所述的转码器,其特征在于,所述转码模块包括解码单元和编码单元; 所述解码单元根据待转码文件格式检测单元的判断结果对待转码文件进行硬解码或软解码处理,当待转码文件格式检测单元检测到待转码文件符合硬解码条件时,所述解码单元对待转码文件进行硬解码处理;当待转码文件格式检测单元检测到待转码文件不符合硬解码条件时,所述解码单元对待转码文件进行软解码处理; 所述编码单元根据目标文件格式检测单元的判断结果对待转码文件进行硬编码或软编码处理,当目标文件格式检测单元检测到待转码文件符合硬编码条件时,所述编码单元对待转码文件进行硬编码处理;当目标文件格式检测单元检测到待转码文件不符合硬编码条件时,所述编码单元对待转码文件进行软编码处理。
9.如权利要求5所述的转码器,其特征在于,所述待转码文件为视频文件或音频文件。
10.如权利要求5至9任一项所述的转码器,其特征在于,还包括: 硬件检测模块,用于检测转码硬件环境,判断用于转码的硬件是否符合硬件加速条件;如果符合,则继续由转码检测模块检测待转码文件是否符合硬转码条件;如果不符合,则由转码模块对待转码文件进行软转码处理。
【文档编号】H04N21/4402GK103702124SQ201210364904
【公开日】2014年4月2日 申请日期:2012年9月27日 优先权日:2012年9月27日
【发明者】白向军 申请人:深圳市快播科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1