Linux系统中H.264编解码器的移植与应用.docVIP

Linux系统中H.264编解码器的移植与应用.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux系统中H.264编解码器的移植与应用.doc

Linux系统中H.264编解码器的移植与应用   摘 要: Linux系统因开源而被更多的企业所采用,H.264编解码因具有高压缩比、良好的网络适应性成为视频编解码技术的研究热点。怎样将H.264编解码器移植到Linux系统上,以完成效率更高、压缩比更高视频编解码技术,是突破编解码技术的关键。本文经过分析H.264编解码算法,将H.264编解码器移植到Linux系统中,实现了H.264对视频文件的编解码,为嵌入式系统的移植奠定了基础。   关键词:Linux H.264编解码 嵌入式   中图分类号:TP368 文献标识码:A 文章编号:1672-3791(2015)04(a)-0000-00   作者简介:马敬奇(1980-) ,男,河南安阳,硕士,控制科学与工程 广东工业大学。   一 Linux系统介绍   Linux极大的继承了UNIX操作系统,Minix系统、GNU计划、POSIX标准和Internet网络的发展也极大的推动其发展。Linux系统内核由进程调度,文件管理,内存管理,网络接口,进程间通信组成。在Linux系统采取的一种树结构实现文件的管理,所有文件都是从“根”(用“/”代表)开始的,这种树结构具有比磁盘分区更大的灵活性。   二 H.264标准   1.H.264编码器   H.264编码器[1]以帧为单位进行,编码从 开始。 为当前帧的前一帧, 即为当前帧,与编码预测值P相减得到带编码的帧差 。其中的预测值P有两种方法获得1)帧间预测[2]模式下通过 运动补偿得到;2)在帧内模式下由当 中已完成编码并且重建的宏块[3]预测得到。帧差 经由T(DCT变换)变换器得到的数据再经由Q(量化器)变化得到量化系数X。最后量化系数X经由重排序、熵编码得到完整的.264编码流[4]。   是通过量化系数X经过一系列变换得到的,目的是编码后面的宏块并且重建编码帧,首先量化系数X经过Q-1和T-1,得到反变换恢复值 ; 与P相加得到原始帧 , 经过滤波获得重建帧 。   2. H.264解码器   从理论上讲H.264的解码是编码的逆变换,在图2所示的逆变换过程中,首先接受经过H.264编码的流文件;其次,编码的流文件经由熵编码接着对熵编码进行重排序,此时可以获得经过量化的数据流X(也称作量化系数);接着,逆变换还体现在下面的过程将得到的X进行Q-1(反量化算法)和T-1(逆DCT变换),得到反变换恢复值 ;在获得恢复值 进入加法器之前,解码器已从文件头信息中变换出在编码器端的预测值P,两者相加得到原始帧 ,最终 经过滤波器得到解码帧 。   三 H.264的编译与移植   1. H.264编码器移植   本文选择X264为编码器、FFMPEG作为解码器。通过编译移植的x264产生可执行文件压缩源视频文件,输出.264文件;得到的编码文件经过ffmpeg解码器还原出视频文件。   在编译x264之前,为了提升H.264的编码性能,需要优化MMX、SSE,因此首先编译安装yasm。   ./configure ?Cprefix=/usr/local/bin/   make   make install   编译X264:   cd X264   ./configure   修改config.mak的一些选项,如cc=linux-gcc、arch=linux,然后   make   make install   得到X264二进制可执行文件。   ffmpeg的编译需要一些库文件的支持,在进行编译之前要移植这些库文件,例如SDL库。   解压缩软件包   配置,生成Makefile   ./configure --enable-shared --disable-yasm --prefix=/usr/local/ffmpeg   编译完成后输入make 命令进行下一步,接着输入make install命令进行编译,最终可编译得到ffmpeg可执行文件,得到的可执行文件对 H.264文件解码。   四 实验结果   在Linux系统下进行实验,本文所用系统为Ubuntu,视频文件格式yuv。将test.yuv视频文件放在可执行文件./H.264相同的文件夹下,运行./H.264命令过程如“ test.yuv 编码过程”所示,输出文件compress.264。   接着将得到的文件compress.264放到解码文件夹下,并执行./ffmpeg命令,解码过程如“compress.264解码过程”所示,得到解码文件decode.yuv。   最后通过播放器查看原视频文件和经过编码、解码得到的视频文件,并进行对比,如图4所示。发现经过编解码的视频文件信息

文档评论(0)

jingpinwedang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档