一种转码加速方法和转码器技术

技术编号:9856277 阅读:101 留言:0更新日期:2014-04-02 18:28
本申请公开了一种转码加速方法和转码器,该转码加速方法包括下面步骤:接受转码任务,根据当前待转码文件、目标文件和用于转码的硬件所支持的转码文件格式检测待转码文件是否符合硬转码条件;根据检测结果对待转码文件进行硬转码或软转码处理。该转码器包括转码检测模块和转码模块。本申请提供的转码加速方法和转码器在对视频流或音频流等待转码文件进行转码操作时,先检测待转码文件是否可以进行硬转码,如果可以则对转码文件进行硬转码,有利于加快待转码文件的转码速度,并且减少对CPU和内存资源的占用。

【技术实现步骤摘要】
一种转码加速方法和转码器
本申请涉及文件的转码领域,具体涉及一种转码加速方法和转码器。
技术介绍
视频转码是指对压缩视频流(一路或多路已编码数据流)先进行完全解码处理,接着对解码图像作缩放、编辑或多画面组合等处理,最后将经过处理的解码图像进行二次编码并将其输出。视频转码器通过对压缩的视频码流进行端到端的处理,使得转码后的压缩码流更能适应传输信道带宽以及特定接收端的要求。因为视频转码器需要对输入的视频流进行全解码、视频过滤/图像处理、并且对输出格式进行全编码,所以视频转码需要进行高负荷运算。若仅仅利用CPU进行转码,则将导致CPU占用率和内存消耗很高,电脑资源大部分被转码操作占用,严重影响用户的其它操作。当转码处理的视频分辨率较大,码率比较高时,如图3所示,为视频转码时CPU和内存使用记录的截屏图,在4核8线程的PC机上,CPU消耗高达89%,内存消耗高达2.14GB。同时,对于音频转码处理,当音频复杂度较高时,在转码处理过程中也同样会出现CPU和内存占用率高的现象,影响用户的其它操作。
技术实现思路
本申请提供一种转码加速方法和转码器,可以加速转码过程,并且减少对CPU和内存的占用率。根据本申请的第一方面,本申请提供一种转码加速方法,包括下面步骤:接受转码任务,根据当前待转码文件、目标文件和用于转码的硬件所支持的转码文件格式检测待转码文件是否符合硬转码条件;根据检测结果对待转码文件进行硬转码或软转码处理。根据本申请的第二方面,本申请提供一种转码器,包括下面模块:转码检测模块,用于接受转码任务,并根据当前待转码文件、目标文件和用于转码的硬件所支持的转码文件格式检测待转码文件是否符合硬转码条件;转码模块,根据转码检测模块的检测结果对待转码文件进行硬转码或软转码处理。本申请的有益效果是:在对视频流或音频流等待转码文件进行转码操作时,检测待转码文件是否可以进行硬转码,如果可以则对转码文件进行硬转码,硬转码具有速度快且占用CPU资源少的优点,因此,本申请提供的加速方法和转码器可以加快待转码文件的转码速度,并且减少对CPU和内存资源的占用。【附图说明】图1为本申请一种实施例中转码加速方法的步骤流程图;图2为本申请一种实施例中转码器的模块示意图;图3为仅利用CPU进行视频转码时CPU和内存使用率的截屏图。【具体实施方式】下面通过【具体实施方式】结合附图对本申请作进一步详细说明。在本申请实施例中,通过检测待转码文件是否符合硬转码条件,再根据检测结果对待转码文件进行硬转码或软转码处理。待转码文件可以是待转码的视频流文件或音频流文件,对应用于转码的硬件可以是显卡设备或声卡设备。本实施例主要以视频流文件为例进行说明,由于显卡的核心处理器对视频图像的处理功能强、速度快,因此硬转码相比于仅利用CPU进行转码具有速度快且占用CPU和内存资源少的优点。实施例一:请参考图1,本实施例提供了一种转码加速方法,包括下面步骤:步骤101,接受转码任务,开始转码程序;步骤102,接受转码任务后先检测转码硬件环境,判断用于转码的硬件是否符合硬件加速条件;如果符合,执行步骤104 ;如果不符合,则转到步骤103对待转码文件进行软转码处理。硬件加速条件是指,用于转码的硬件本身是否具有解码或编码的功能,如果有,则判断为用于转码的硬件符合硬件加速条件;如果没有,则判断为用于转码的硬件不符合硬件加速条件。步骤103,对待转码文件进行软转码处理,软转码处理是指,用于转码的硬件不符合硬件加速条件或待转码文件不符合硬转码条件,无法通过硬件对待转码文件进行转码,解码步骤和编码步骤都只能利用CPU进行,即软转码处理包括软解码和软编码处理。步骤104,根据当前待转码文件、目标文件和用于转码的硬件所支持的转码文件格式判断待转码文件是否符合硬转码条件,硬转码条件包括硬解码条件和硬编码条件。当然,硬转码条件还可以是其它根据用户需要预先设定的条件,比如待转码文件的格式条件,用户设定对于特定格式的待转码文件才进行硬转码处理。硬解码条件指,待转码文件符合用于转码的硬件所支持的文件格式;硬编码条件指,目标文件符合用于转码的硬件所支持的文件格式。判断待转码文件是否符合用于转码的硬件所支持的文件格式可以采用下面方法:将输入的待转码文件的格式与硬件解码列表进行比对,若其格式在硬件解码列表范围内,则判断为待转码文件符合用于转码的硬件所支持的文件格式,即待转码文件符合硬解码条件;若其格式不在硬件解码列表范围内,则判断为待转码文件不符合用于转码的硬件所支持的文件格式,即待转码文件不符合硬解码条件。判断目标文件是否符合用于转码的硬件所支持的文件格式可以采用下面方法:从转码参数中提取目标文件的格式信息,将格式信息与硬件编码列表进行比对,若其格式在硬件编码列表范围内,则判断为目标文件符合用于转码的硬件所支持的文件格式,即待转码文件符合硬编码条件;若其格式不在硬件编码列表范围内,则判断为目标文件不符合用于转码的硬件所支持的文件格式,即待转码文件不符合硬编码条件;基于上述判断,待转码文件可能出现以下情况:条件1:待转码文件同时符合硬解码条件和硬编码条件;条件2:待转码文件符合硬解码条件但不符合硬编码条件;条件3:待转码文件不符合硬解码条件但符合硬编码条件;条件4:待转码文件同时不符合硬解码条件和硬编码条件。当步骤104检测为待转码文件符合条件4时,则转到步骤103,对待转码文件进行软解码软编码的软转码处理。步骤105,当步骤104检测为待转码文件符合条件I时,则对待转码文件进行硬解码硬编码的硬转码处理。步骤106,当步骤104检测为待转码文件符合条件2时,则对待转码文件进行硬解码软编码的硬转码处理。硬解码软编码指,对待转码文件先进行硬解码,再利用CPU对硬解码后的数据进行编码以得到需要转码成的目标文件。步骤107,当步骤104检测为待转码文件符合条件3时,则对待转码文件进行软解码硬编码的硬转码处理。软解码硬编码指,先利用CPU对待转码文件进行解码,再将解码后的数据进行硬编码以得到需要转码成的目标文件。步骤108,根据上述步骤对待转码文件的检测结果对待转码文件进行相应的硬转码或软转码处理,并将转码后的目标文件进行输出。比如,在Windows平台下,Directshow框架系统下,以Intel Media SDK (因特尔显卡处理视频的专用软件开发工具包)为例,利用硬件,即Intel显卡,来实现视频的硬件加速转码。包括下面步骤:步骤I,检测Intel显卡硬件是否符合Intel Media SDK的硬件加速条件,即Intel显卡硬件或核心显示芯片本身是否具有视频加速解码或编码能力,如果不符合,则对视频流进行软转码处理;如果符合,则执行步骤2。步骤2,检测输入视频流是否符合硬转码条件,硬转码条件包括硬解码条件和硬编码条件。检测当前输入视频流的格式是否存在于Intel显卡硬件的解码列表中(列表的视频流格式包括a 264/VCl/Mpeg2),如果存在,则判断为符合硬解码条件,如果不存在,则判断为不符合硬解码条件。检测当前输入视频流需要转码成的目标文件的格式是否存在于Intel显卡硬件的编码列表中(列表格式包括H.264/Mpeg2),如果存在,则判断为符合硬编码条件,如果不存在,则判断为本文档来自技高网...
一种转码加速方法和转码器

【技术保护点】
一种转码加速方法,其特征在于包括下面步骤:接受转码任务,根据当前待转码文件、目标文件和用于转码的硬件所支持的转码文件格式检测待转码文件是否符合硬转码条件;根据检测结果对待转码文件进行硬转码或软转码处理。

【技术特征摘要】
1.一种转码加速方法,其特征在于包括下面步骤: 接受转码任务,根据当前待转码文件、目标文件和用于转码的硬件所支持的转码文件格式检测待转码文件是否符合硬转码条件; 根据检测结果对待转码文件进行硬转码或软转码处理。2.如权利要求1所述的方法,其特征在于,所述硬转码条件包括硬解码条件和硬编码条件; 所述硬解码条件为待转码文件的格式符合用于转码的硬件所支持的文件格式,所述硬编码条件为目标文件的格式符合用于转码的硬件所支持的文件格式; 所述检测待转码文件是否符合硬转码条件的步骤包括: 判断待转码文件是否符合用于转码的硬件所支持的文件格式,并判断目标文件是否符合用于转码的硬件所支持的文件格式。3.如权利要求2所述的方法,其特征在于, 所述判断待转码文件是否符合用于转码的硬件所支持的文件格式包括:将输入的待转码文件的格式与硬件解码列表进行比对,若其格式在硬件解码列表范围内,则判断为待转码文件符合用于转码的硬件所支持的文件格式,即待转码文件符合硬解码条件;若其格式不在硬件解码列表范围内,则判断为待转码文件不符合用于转码的硬件所支持的文件格式,即待转码文件不符合硬解码条件; 所述判断目标文件是否符合用于转码的硬件所支持的文件格式包括:从转码参数中提取目标文件的格式信息,将所述格式信息与硬件编码列表进行比对,若其格式在硬件编码列表范围内,则判断为目标文件符合用于转码的硬件所支持的文件格式,即待转码文件符合硬编码条件;若其格式不在硬件编码列表范围内,则判断为目标文件不符合用于转码的硬件所支持的文件格式,即待转码文件不符合硬编码条件; 所述根据检测结果对待转码文件进行硬转码或软转码处理包括: 当待转码文件被检测为符合硬解码条件不符合硬编码条件时,对待转码文件进行硬解码软编码的硬转码处理; 当待转码文件被检测为不符合硬解码条件符合硬编码条件时,对待转码文件进行软解码硬编码的硬转码处理; 当待转码文件被检测为符合硬解码条件符合硬编码条件时,对待转码文件进行硬解码硬编码的硬转码处理; 当待转码文件被检测为不符合硬解码条件不符合硬编码条件时,对待转码文件进行软解码软编码的软转码处理。4.如权利要求1至3任一项所述的方法,其特征在于,在接受转码任务后和检测待转码文件是否符合硬转码条件之前,还包括: 检测转码硬件环境,判断用于转码的硬件是否符合硬件加速条件;如果符合,则执行所述检测待转码文件是否符合硬转码条件步骤;如果不符合,则对待转码文件进行软转码处理。5.一种转码器,其特征在于,包括: 转码检测模块,用于接受转码任务,并根据当前待转码文件、目标文件和用于转码的硬件所支持的转码文件格式...

【专利技术属性】
技术研发人员:白向军
申请(专利权)人:深圳市快播科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1