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

来源 :科技资讯 | 被引量 : 0次 | 上传用户:Linda_724
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要: 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 –prefix=/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所示。发现经过编解码的视频文件信息保持完好,清晰度、视频播放的流畅性都与原视频相差不多,基本满足需要。
  五 结论
  随着网路时代的进一步成熟,如何将视频文件在网络环境下稳定、快速的传输是突出的问题,H.264编码方法为视频压缩提供了一种新方法,实验验证该算法能够完好的编码源视频数据,并通过ffmpeg解码,经过解码的视频文件保持良好的完整性,适合视频编码。
  参考文献
  [1] 韩守谦,裴海龙,王清阳.基于Xenomai的实时嵌入式Linux操作系统的构建[J].计算机工程与设计,2011,1(32):96-99.
  [2] 杨春玲,孙亚明.H.264帧内编码和JPEG2000对静止图像进行编码的性能比较[J].中国图像图形学报,2006,11(3):425-429.
  [3] 曹睿学,张保平,温伟娟.基于ARM9的H.264视频实时解码器研究与实现[J].计算机测量与控制,2010,18(5):1118-1121.
  [4] Yinyuan Wang,An Improved Image Edge Detection Algorithm Based on H.264 Intra Prediction [J].Intelligence Science and Information Engineering,2011:450-453.
其他文献
作为一门具有较强实践性的课程,文书工作与档案管理在教学中如何做好理论教学和实践教学的结合,培养学生的实际操作技能显得尤为重要。从教学的实际情况出发,在课程内容、教学方
以昆明冶金高等专科学校自主开发的《云南高职院校单独招生试点改革方案》为例,探讨《方案》的特点及优势,分析《方案》的实施效果厦存在问题,并提出相应的对策建议,进一步探索并
该文在分析煤矿生产中发生电气事故原因的基础上,探讨了煤矿电气设备安全管理的目的和内容,最后还提出具体的解决对策,希望对于避免发生煤矿电气设备安全管理的目的和内容有
我国高等教育在短期内完成了从精英教育阶段向大众化教育阶段的过渡,其中必然伴随着教育质量的适应性变迁。在扩招和市场化取向趋势不可避免的情况下,如何保证高等院校教育教学
利用对比全场解和局部解的方法,得出了正交异性材料I型裂纹的应力强度因子表达式,并将材料常数对其的影响做了简单的探讨.
根据氟硅酸钾沉淀分离-酸碱滴定原理,通过选择适当试剂、控制溶液酸度及恒定沉淀温度等措施,消除TiO2及Al2 O3的共沉淀的干扰,探索出一种改进型碱熔氟硅酸钾沉淀测定钒钛高炉渣
利用计算机图像处理系统观察了CO2保护气氛下,药芯焊丝电弧焊的熔滴过渡行为、电弧形态等电弧物理现象,总结了熔滴过渡的类型.研究结果表明,随着焊接参数的增大,药芯焊丝依次