转自:http://wmnmtm.blog.163.com/blog/static/38245714201142883032575/

要播放HDTV,就首先要正确地解开封装,然后进行视频音频解码。所以我们需要分离器,视频解码器和音频解码器,俗称hdtv的“三件套”,又统称滤镜。

H264的分离器:

常见的有Gabest MP4分离器,就是MP4splitter,也是Gabest编写的,Halli的分离器和NDigital分离器等。

H264的视频解码器:

CoreAVC的H264视频解码器CoreAVC DirectShow Video Decoder。

月光的H264解码器,全称为Moonlight H264 Video Decoder,ffdshow的解码器,全称为ffdshow MPEG-4 Video Decoder,能打开N卡显卡硬件加速的CyberLink H.264/AVC Decoder(PDVD7)。

音频解码器:

ffdsshow,月光音频解码器、WinDVD的音频解码器、PowerDVD的音频解码器、AC3Filter音频解码器。

如果播放HDTV时碰到有声无画或者有画无声,就应该自己从解码器着手,替换一个试试。

缘起:HDTV的减肥药

其实HDTV个头大的根本原因,并非是分辨率太高,而是采用的MPEG2视频压缩算法力道不够,换成MPEG4就好得多,基本上可压缩到几G,但目前MPEG4编码群雄并起,编解码方案很不统一,有时拿着一部好片折腾半天却放不出来,再好的脾气也不免搓火。

现阶段比较好的选择是H.264/AVC。它是由ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(运动图像专家组)共同开发的视频处理标准,ITU-T称为H.264,而ISO/IEC称为AVC(高级视频编码),并将其作为MPEG-4 Part 10。可以说,H.264代表了当前业界最先进的视频压缩技术,具有压缩比高、码率低、图像质量好、容错能力强、网络适应性广等优点,在数字影像、网络电话、多媒体、IPTV、通讯等领域得到越来越广泛的应用。用H.264来处理HDTV,不仅能保留较高的视频质量,而且可以将HDTV瘦身到令人惊讶的程度,实在是对了HDTV肥胖症的减肥药。

实战:自己动手编码H.264影片

现在H.264的编码器已经很多,MainConcept H.264 Encoder和X264都很不错。下面以MainConcept H.264 Encoder为例,介绍如何将Mpeg-HDTV转换为H.264-HDTV。

启动MainConcept H.264 Encoder,在Video编辑框中输入待转换视频文件名,或点击旁边的Open按钮选择。MainConcept H.264 Encoder能识别绝大多数视频格式,包括HDTV常使用的TS和M2V、MPG、AVI、WMV格式。由于许多HDTV节目视频和音频是分离的,因此 MainConcept H.264 Encoder单独设置了Audio编辑框,可在其中输入HDTV音频文件,或用旁边的Open按钮选择。如果音视频是合成在一起的,那么选择视频文件后,Audio编辑框自动出现该视频文件,勿需再选择音频文件了。Output编辑框设置目标文件名,一般为MPG文件。

下面Output format栏设置目标文件的格式。设置好后,点击主界面下的Convert按钮,即可开始转换。由于H.264编码需要大量计算,颇为耗时,所以用户得有比较好的耐心。编码完成后,大家可以拿目标文件同源文件对比一下,不难发现用H.264编码的HDTV文件大小只有MPEG2编码的三分之一左右。

小贴士:输出文件格式的具体设置

MPEG项: 和H.264相关的有三项:H.264 Baseline、H.264 Main和H.264High,其编码的画面质量从低到高,通常选择H.264 Main就可以了。

Video项:设置制式NTSC或PAL,最好选择与源文件一致的制式,以保证转换效果并减少转换时间。

Stream项:设置流格式,主要有三种:Elementary、Program和Transport,HDTV通常使用最后一种格式,因此选择Transport(Video+Audio)项较为合适。

Audio项:设置音频格式,使用Layer2和AAC均可。点击Details按钮弹出辅助设置对话框,在此设置码率(Bitrate)以及音频格式等,还可以利用Muxer栏的选项分割HDTV文件。点击Video栏中的Advanced按钮,可更详细地设置视频参数。不建议普通用户修改。

回放:帮暴风影音搞定H.264

H.264的解码器现在太多了,不过Moonlight H.264 Video Decoder格外好一些。这款HDTV解码器的品质得到了广泛的认可,几乎成了HDTV的标准解码器。下面讲讲怎么把它和常用的暴风影音结合起来。

安装Moonlight H.264 Video Decoder,完成后启动暴风影音,选择“查看→选项”菜单,弹出选项对话框。点击“滤镜”项下的“管理”子项,再在右边的“管理”页中点击“添加滤镜”按钮。

弹出选择滤镜对话框,点击“浏览”按钮,到C:\Program Files\Common Files\Moonlight文件夹中找到h264dec.ax滤镜,将其加入,这样Moonlight H.264 Video Decoder解码器就添加到暴风影音中。最后别忘了在“管理”页中将Moonlight H.264 Video Decoder设为“首选”。

支招:回放吃力的问题

试着播放刚才压缩的HDTV,暴风影音已能正常解码,画面也很精致,与源文件相比,画质损失很小,可就是太卡了!H.264非常考验CPU的运算能力。本来MPEG2格式的解码,就让许多CPU败下阵来,若无支持HDTV硬解压的显卡帮忙,非得有顶级的配置才能使播放较为流畅。而H.264的算法比MPEG2更复杂,如果纯软件解码,即使是目前顶级的配置,解码高分辨率H.264-HDTV也比较吃力。

还好,ATI和Nvidia都有支持H.264硬解码的GPU推出。ATI的R520即使在较低配置下,也可以流畅地解码H.264-HDTV,只是价位不那么平易近人。而Nvidia方面,因为Geforce6/7系列GPU都内建PureVideo视频引擎,只需升级PureVideo,即可使Geforce6/7系列支持H.264解码,这一点比较实惠。至于解码效率,虽不及采用纯硬件解码模式,但比纯软件解码还是强些。Nvidia称,在Forceware85的支持下,6600GT之后NvidiaGPU产品都可以全速解码1080p高清晰H.264视频。CES2006上曾有人用Geforce7800演示H.264解码,效果还不错。

H.264标准的由来

1998年,视频编码专家组(ITU-TVCEG)启动了H.26L工程,旨在研制新的视频编码压缩标准,要做到尽可能地简单直观,同时网络适应性要足够好,以适合广播、存储、流煤体等交互或非交互式应用。

2001年12月,VCEG和运动图像专家组(ISO/IECMPEG)组成联合视频组(JVT),在H.26L基础上研制出H.264/AVC编码标准,于2003年3月正式获得ISO/IEC批准。

在网络时代,视频往往要借助网络进行传播,这就要求一个好的视频方案能适应各种网络应用及网络类型。H.264/AVC无疑做到了这点。它包含两个层次:视频编码层(VCL)和网络抽象层(NAL),前者主要致力于有效地表示视频内容,后者则规范视频数据的格式,主要是提供头部信息,以适合各种媒体的传输和存储。

H.264/AVC的高压缩率及其优良的网络特性,使它可能在网络电话、视频点播、IPTV、视频会议、视频聊天、远程教学、广播电视、HDTV、流媒体服务、3GPP多媒体信息服务、视频邮件等方面得到广泛的应用。

转自:http://blog.csdn.net/sunshine1314/article/details/712401
H.264开源解码器评测

Peter Lee 2006.05.07 videosky.9126.com

2003年5月,当H.264编码标准草案发布时,很多人都觉得H.264太复杂,不宜实用。眨眼间3年过去了,以往的论断、疑惑被如今的现实冲洗的干干净净。随着硬件性能的提高和视频编码工作者对H.264的不断优化,如今的H.264已完全实用,最新的达芬奇芯片上能实现D1分辨率(720*480)视频的实时编码,而对于解码,普通的PC机就能实现x264编码的DVDrip电影的流畅播放。纵观过去的三年,有多少人对H.264倾注了热情和汗水才换来今天的成绩,而那些H.264的开源项目以及参与这些项目的开发者自然是功不可没。

本文评测的是作者接触过的H.264开源解码器,包括:JM decoder, T264 decoder, x264 decoder, ffmpeg libavcodec, Intel IPP simple player。评测的内容有:对H.264特性的支持、解码速度以及二次开发难易程度。

一、H.264开源解码器介绍

1、JM decoder

JM decoder是H.264的官方源码,通常也称为校验模型。其特点是支持特性好,实用性差。本文选用的程序是JM86,不支持high profile,因为本文不对high profile部分进行实验比较。

NOTE: JM一直没有做实用化方面的努力,所以其解码速度代表的是2003年的水平。

2、T264 decoder

T264是国内的开源项目,T264 decoder的程序做过汇编优化,速度还可以,但只能解T264本身的码流。作者对T264 decoder version 0.14(2005-3-29)作了修改,支持baseline的解码。

3、x264 decoder

x264本没有decoder,但其包含decoder的部分函数雏形,猜想作者在一开始时是准备实现decoder,后来可能是因为有了ffmpeg,就放弃了这个想法(纯粹属于猜测,呵呵)。

本文的x264 decoder是作者在x264 svn check out 2005.12.26的基础上实现的,支持baseline的解码。

4、ffmpeg libavcodec

ffmpeg是一个大项目,它包含各种音视频标准的codec,还支持各类file format(.avi, .mp4, .mkv and etc)的parsing。所以,很多开源项目都有直接或间接地采用了ffmpeg,如mplayer播放器就是直接采用了ffmpeg,而mpc播放器则是先采用了ffdshow filter,而ffdshow又采用了ffmpeg。ffmpeg是一个非常棒的音视频编解码库,支持的标准非常全,而且编解码速度也很快。

本文实验采用的是cvs check out 2006.02.20的版本,作者对其中的apiexample demo进行了简单的修改,用于解码h.264码流

5、Intel IPP simple player

Intel的IPP库,全称为Integrated Performance Primitives,在Intel的各种处理器平台(IA-32, Itanium, xscale and etc)上实现了信号处理常用算法、常用数学运算及音视频编解码算法等等。IPP给我的第一感觉是,在Intel的处理器平台上,它实现的各种算法应该是最快的,至于实际结果如何,待等到实验比较后见分晓。

本文采用的IPP库版本为IA32 5.1.017 评估版

Intel IPP simple player是用于播放各种音视频文件的简单播放器,用c++实用,具体算法调用IPP库来实现。本文采用的simple player版本是5.0.017

二、对于H.264特性的支持

1、JM86 decoder

support baseline, extended, main profile

2、T264 decoder

baseline

3、x264 decodeer

baseline

4、ffmpeg libavcodec

support baseline, main profile, high profile except the feature: paff, mbaff…

5、Intel IPP simple player

support baseline and main profile

【简单结论】

解码速度:ffmpeg > IPP simple player > x264 decoder > t264 decoder > jm86 decoder

以ffmpeg的编码速度为基准,假设为100fps,则:

IPP simple player:90fps

x264 decoder:50fps

t264 decoder:30fps

jm86 decoder:3fps

五、程序开发上的比较

我估计阅读本文的大部分读者都是搞开发的,因此,阅读过程中自然会思考如何在程序开发上借鉴或者采用以上开源的H.264解码器,下面就针对程序开发上的难易、适用场合等作个比较。

1、JM86 decoder

适合写paper群体

2、T264 decoder

3、x264 decodeer

两者代码非常相似,所以就合在一起讲了。这两个源码的程序结构都比较清晰,支持vc和gcc的编译环境,但对H.264的特性支持不好,解码速度和ffmpeg相比,还有差距。

4、ffmpeg libavcodec

程序结构比较差,H.264解码的代码基本上在h264.c一个文件中,这个文件有8000多行,不利于阅读。

编译环境为gcc或MinGW,移植到vc下比较难(我尝试过)。

解码速度快(BTW: 通过doom9论坛了解到,目前最快的h.264解码器是CoreAVC decoder,比ffmpeg快50%左右)。

对于H.264特性的支持好。

5、Intel IPP simple player

分两个方面讲:

(a)IPP库

我觉得是非常棒的,但实现的是H.264解码(IPP中也有H.264编码)的一些关键函数,如deblock,dct,插值补偿等,不能直接拿来用。

其它的缺点:IPP库是商业软件,要money的,而且只支持Intel平台

(b)simple player

开源,用c++写的,而且是directshow编程,也就是说只支持windows平台。

其解码速度比ffmpeg慢10%左右,我觉得原因不在于IPP库,而是simple player的代码不够完善。

【图像处理】H.264开源解码器评测相关推荐

  1. H.264开源解码器评测(转发)

    H.264开源解码器评测(转发) 2003年5月,当H.264编码标准草案发布时,很多人都觉得H.264太复杂,不宜实用.眨眼间3年过去了,以往的论断.疑惑被如今的现实冲洗的干干净净.随着硬件性能的提 ...

  2. H.264软件解码器在PXA270平台上的优化

    罗 嵘,何 苦 时间:2009年04月24日 摘 要: 研究了嵌入式系统中H.264 Baseline软件解码器设计和优化的问题,提出了四种有效的优化方法,并在PXA270平台上进行了测试.测试结果显 ...

  3. h.264 视频解码的一点小经验(ffmpeg)

    最近做视频文件264解码,由于对这个领域不是很熟悉,感觉困难重重.不过经过不懈的努力,已经取得一些进展,心里感觉特别庆幸. 刚开始做这个的时候,由于不熟悉,就在网上搜寻资料,网络上的资料虽然多,但是却 ...

  4. h.264 视频解码的一点小经验

    最近做视频文件264解码,由于对这个领域不是很熟悉,感觉困难重重.不过经过不懈的努力,已经取得一些进展,心里感觉特别庆幸. 刚开始做这个的时候,由于不熟悉,就在网上搜寻资料,网络上的资料虽然多,但是却 ...

  5. H.264官方软件JM源代码简单分析-解码器ldecod

    ===================================================== H.264/H.265 官方源代码分析文章: H.264官方软件JM源代码简单分析-编码器l ...

  6. H.264官方软件JM源代码简单分析-解码器ldecod(转载)

    转载自 雷霄骅 大神博客 https://blog.csdn.net/leixiaohua1020 ================================================== ...

  7. ITU-T H.264/MPEG-4 AVC编解码原理介绍

    本文档适合基本了解数字图像处理的初学者,仅用于研究交流,由于资料来源较多,只能尽量在相关章节注明出处. 转载本文请注明出处http://blog.csdn.net/chinadragon76/arti ...

  8. NVDKC6416平台H.264算法优化

    本文转载自:http://blog.csdn.net/embedesign/archive/2009/09/15/4556486.aspx,版权归原作者,编辑:小乙哥 多媒体通信终端设备具有广泛的应用 ...

  9. Zynq FPGA低时延H.264设计方案(编码+解码< 1ms)

    信迈科技以逻辑语言为基础编写的H.264视频编解码,以IP核的形式,在FPGA器件上运行,基于FPGA的解决方案使用FPGA为核心器件,实现H.264编解码的IP核,此解决方案为纯硬件的解决方案,启动 ...

  10. 十三、熵编码算法(4):H.264使用CAVLC解析宏块的残差数据

    GitHub代码地址:点击这里 1. H.264的CAVLC解析宏块残差数据的流程 在H.264的解码器在解析宏块的残差数据时,其流程类似于上文提到的CAVLC编码的逆过程.在解析一个宏块残差的时候, ...

最新文章

  1. 如果当前没有拿得出手的简历,也别慌,努力的话最多两年情况就能改变
  2. linux桌面版排行2019_新兴的桌面发行版 Septor Linux 发布 2019 版
  3. Team Foundation Server的回滚操作
  4. unittest-读取yaml文件
  5. For web.config setting,reference the book of
  6. hdu 5094 Maze bfs
  7. linux安装php和nginx,Linux下安装配置Nginx以及安装PHP
  8. python 3 导入 迭代判断
  9. 结构型模式之组合模式
  10. 织梦CMS插件-支持dedeCMS各大主题
  11. pe制作linux硬盘的镜像文件_如何快速生成PE ISO文件
  12. gazebo的bumper使用
  13. 汉字点阵原理字模读取与显示
  14. “知了”来了,西电的小朋友们看过来!
  15. 游戏夜读 | 写游戏用什么语言?
  16. 弥漫的烟圈-Abaqus涡环仿真与空气大炮
  17. vxe-table合并单元格后增加选中效果
  18. win+l不能锁定计算机
  19. Sqoop-1.4.5用户手册
  20. dcf是ea211发动机吗_哪些车型用ea211发动机

热门文章

  1. gaussian软件linux下载,Gaussian软件下载地址及安装说明
  2. 2021-10-20
  3. linux网络管理员认证考试,红帽认证系统管理员 (RHCSA) 考试
  4. fm信号表达式_chirp信号表达式
  5. K3wise数据字典及常用表及视图
  6. VLfeat win10 vs2015 matlab编译
  7. netdraw绘制网络结构图
  8. Redis项目应用场景与实例汇总
  9. 小程序判断ios还是android
  10. eclipse adt离线安装