H.264编码格式和视频编码的一些基本概念

  对于大多数人来说,对于视频的基本印象就是视频清晰度、体积大小、分辨率和视频格式。当然对于只对观看视频和下载视频的朋友们来说这些知识足够了。经常在VeryCD下载电影的朋友,还有高清发烧友就会对视频文件会有更深入的了解。再深入一些,就是那些热爱非编和视频压制的朋友,会了解更多关于视频的知识了。当然制定视频标准的专家组们是最了解视频编码相关知识的。

  我们知道网络传播的电影和音乐都是从各种出版物中提取的,电影是从DVD和BD中提取的,音乐大多是从CD中提取的。这些负责制作视频传播的小组或个人都是需要购买正版的出版物,才有机会为网友提供免费电影和音乐资源的。存放在光存储上的文件和电脑播放的文件一般是不一样的。高清电影和无损音乐都是需要经过某些手段进行重新编码以便于在PC平台传播。在专业的视频电影下载站,我们都能看到电影文件名都是很长的规范性描述,可以从中看到视频的视频载体、分辨率、音频视频编码格式、封装格式等信息。

  

  AVC/H.264和AAC

 

  随着高清时代的来临,我们逐渐开始了解了高清的真正含义。网络上各种百科介绍的很详细,在这里不赘述了。需要谈的内容就是高清视频的编码格式,最为常见的就是H.264和VC-1,在新一代高清解码显卡中都支持这两种编码的硬解。H.264编码格式是目前的明星级编码格式,在各种高清视频中都能见到它的身影。H.264是MPEG4标准的第十部分,也就是AVC,所以全称为”MPEG-4 AVC/H.264″。

  视频音频之所以需要编码,是因为无损文件体积极为庞大,不适合大范围的传播。高清编码的过程就是使得无损视频以最少的画质音质损失获得最好的质量,为了剔除冗余的数据,需要编码格式经过判断和计算,才能够使得视频文件体积尽量变得小巧。而不同编码格式之间的视频转换,是为了不损失源文件视频质量或有限的降低质量的情况下,用于各种范围的传播。

  有编码经验的朋友肯定会立马想到音频的编码格式AAC,因为AAC同样是MPEG4标准的一部分,这就是为何几乎所有编码教程都会提到这个音频编码的原因。而且AAC的压缩编码效果要好于MP3,目的也就是取代MP3编码格式。因为AVC和AAC是MPEG4的标准编码的代表,而且编码效果极佳,所以最为流行。

  提到编码格式,还得了解一下X.264、DivX和Xvid。这三种编码格式同样很流行,特别是在DVDRip中极为常见,因为它们都是从官方编码格式演变出来的编码格式,编码效果很好,而且不用交专利费。Divx是由微软官方的编码格式发展而来的,最终为了摆脱不光彩的身份,重新设计了开源的方案。遗憾的是该编码格式并未很好的发扬开源精神,所以会诞生和它抗衡的基于GPL协议开源编码格式Xvid。对于专利版权保护不重视的地区,可以直接使用官方的编码格式。

 

  H.264编码的四种画质级别

 

  BP-Baseline Profile:基本画质。支持I/P 帧,只支持无交错(Progressive)和CAVLC;

  EP-Extended Profile:进阶画质。支持I/P/B/SP/SI 帧,只支持无交错(Progressive)和CAVLC;

  MP-Main Profile:主流画质。提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),也支持CAVLC 和CABAC 的支持;

  HP-High Profile:高级画质。在main Profile 的基础上增加了8×8内部预测、自定义量化、无损视频编码和更多的YUV格式;

  其中MP是在流媒体中最常见的,如高清晰度的FLV文件。而HP在高清电影中最为常见,画质最佳。HP比MP编码的视频体积更小,但是对计算性能要求较高。随着计算机性能的提升,我想HP将会占据全部领域。目前基本上已经是HP为主流了。

  大多数普通格式转换器只有简单的几个参数选择,在专业级免费视频转换软件MediaCoder中有很多复杂的选项,包括画质级别选项。值得一提的是MediaCoder使用的就是开源免费的的X.264编码器。对于需要复杂调节的视频编码需求的人来说,MediaCoder是一个不错的选择。

wallevideo

 

  视频编码的常见参数基本概念

 

  压缩:Compress,按照特定的编码格式用比未经编码少的比特(或者其它信息相关的单位)表示信息的过程。数据压缩是通过移除数据冗余来实现的,比如说,对于数据重构过程中无用的数据。大多数视频编码方法寻找空间和时间上的冗余来达到压缩的效果。如画面像素采样点之间是相互关联的,相邻象素之间很相近。

  码率:Bit Rate,指视频或音频文件在单位时间内使用的数据流量,该参数的单位通常是Kbps,也就是千比特每秒。通常2000kbps~3000kbps就已经足以将画质效果表现到极致了。码率参数与视频文件最终体积大小有直接性的关系。

  混合码率:Overall Bit Rate,指视频文件中视频和音频混合后的整体平均码率。一般描述一个视频文件的码率都是指OBR,如新浪播客允许的OBR上限为523Kbps。

  固定码率:Constant Bit Rate,指的是编码器的输出码率(或者解码器的输入码率)应该是固定制(常数)。CBR不适合高清晰度视频的编码,因为CBR将导致没有足够的码率应对复杂多变内容部分进行编码(从而导致画质下降),同时在简单的内容部分会浪费一些码率。

  可变码率:Variable Bit Rate,编码器的输出码率(或者解码器的输入码率)可以根据编码器的输入源信号的负责度自适应的调整,目的是达到保持输出质量保持不变而不是保持输出码率保持不变。VBR编码会消耗较多的计算时间,但可以更好的利用有限的存储空间:用比较多的码率对复杂度高的段进行编码,用比较少的码率对复杂度低的段进行编码。总之需要清晰度高且体积小的视频,选择VBR是明智的选择。

  平均码率:Average Bit Rate,指音频或视频的平均码率,可以简单的认为等于文件大小除以播放时间。在音频编码方面与CBR基本相同,会按照设定的目标码率进行编码。但当编码器认为“适当”的时候,会使用高于目标码率的数值来进行编码以保证更好的质量。

  帧率:Frame Rate,是用于测量画面显示帧数的量度。所谓的测量单位为每秒显示帧数(Frames per Second,缩写:FPS)。如电影的帧率一般是25fps和29.97fps,而第一人称射击游戏等要求画面极为顺畅的特殊场合,则需要30fps以上的效果,高于60fps就没有必要了。

  采样率:每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。一般音乐CD的采样率是44100Hz,所以视频编码中的音频采样率保持在这个级别就完全足够了,通常视频转换器也将这个采样率作为默认设置。

  Single Pass:在编码的时候只进行一次运算,直接生成经过编码的视频文件。

  Two Pass:需要运算两次,可以理解为先进行一次全局的计算,收集画面信息,并将这些信息记录到信息文件。第二次才根据采集的信息,正式进行压缩,生成压缩文件。

  Single pass模式编码较简单,编码速度较快,但是最终质量不如Two pass模式好,对于视频源本身画质就不佳的编码过程可以采用。Two pass通过第一次运算的信息采集,可以让需要高码率的运动画面可以分配更的码率来保证画面质量。而对于不包含太多运动信息的静态画面,则可以消减分配的码率。Twopass模式可以在影片容量与画面质量之间找到最佳平衡点。所以要求画面清晰的视频,肯定要选择Two Pass,只是编码速度惨不忍睹。

  封装格式:多媒体封装格式也称多媒体容器 (Multimedia Container),它不同于H.264、 AAC这类编码格式,它只是为多媒体编码提供了一个“外壳”,也就是所谓的视频格式。如MP4、AVI、MKV、FLV、WMV等。

  画面比例:Aspect Ratio,指视频画面宽和高的比例。常见的比例有16:9和4:3。电视媒体有严格的视频制式要求,视频比例和帧数都是固定的,而网络传播的视频比例则较为自由。一般DVD和BD电影的视频比例大多是宽屏或者超宽屏。在视频编码过程中一定要注意画面比例是否正确,不然就会出现画面拉伸变形。

  分辨率:指视频宽高的像素数值,单位为Px。通常视频分辨率的数值宽高比要等于画面比例,不然视频文件就会产生黑边。标准1080P的分辨率为1920×1080,帧率为60fps,也就是真高清。而最常见的网络传播的1080P高清片帧率通常为23.976 fps。

  

  关于视频编码的文章,Jacse介绍过FLV高清晰度视频压制视频制作的一些个人经验,在这篇文章文章中将详细介绍视频编码压制的一些参数信息的具体含义。参考了一些专业资料和维基百科的考证。由于非编只是个人业余爱好之一,所以欢迎热爱编码压制视频网友们指正我的描述错误,希望不会因为这篇文章以讹传讹。

Jacse原创文章,转载请注明: 转自Jacse’s Blog

本文链接地址: http://jacse.com/881.html

相关文章

  1. 真的是运气呀,沙发。对了,博主的技术太强悍了,有时间向您请教一下。

    [回复]

  2. 昨晚上刚鼓捣好ubuntu 9.10 ,播放影音文件提示我搜索不到解码器,里面提到的就是你说的这些东西

    [回复]

  3. 太专业了,我只会看清晰度,和听听音质

    [回复]

  4. 专业!专业!学习了!

    [回复]

  5. 以前一直搞不懂这些编码格式,不过现在还是搞不清楚,呵呵。

    [回复]

  6. 这些介绍很详细,支持

    [回复]

  7. 你就是专业搞视频的啊?

    [回复]

  8. 学习了=v=
    8过更正两点:
    帧率上,现在还在用24帧/秒的电影已经很少了,PAL制式的话配合50Hz的交流电用的是25帧/秒,NTSC制式的话配合60Hz的交流电则是用的30(精确值是29.97)帧/秒,具体的帧率可以参照DVD/BD上注明的制式是NTSC还是PAL
    分辨率上,1080P不仅是分辨率是1920×1080,同时更规定了帧率要达到60(PAL制式的话为50)帧/秒,因为p指代的是Progressive(逐行扫描),而事实上包括VeryCD上也好常见的所谓1080p的高清电影实际上是1080i的,那个I就是指的Interlaced(隔行扫描),实际帧率就是刚刚所说的25fps或30fps

    [回复]

    Jacse 回复:

    @沙发你好,沙发再见。

    @Sirus,找不到解码器的话,在网上搜一个Linux系统能用的万能解码。

    @男儿国博客,对于大多数人,只要感性的认识画质就行了。

    @在路上,谢谢。

    @engic,这篇文章只介绍了一种编码格式,其他的稍微附带了些。

    @先看看,恩,也是给自己做个梳理。

    @卢松松,业余爱好。

    @lovee,你提到的我仔细考证了下,的确如你所说,我更正一下文章。

    [回复]

    Bobo 回复:

    学习了!以前只有个基本的印象,但不求甚解
    尤其是电视上那制式完全不知道还有这样的规定

    [回复]

  9. 蓝光的美下载过,那玩意太巨大了,对清晰度追求不大,别太模糊就行。

    [回复]

  10. 我经常下的片子播放不出来,和解码器有关,估计。找时间来找博主解码
    是好东西哦。哈

    [回复]

  11. 博主太专业了!

    我发现辛辛苦苦从BT或者emule下载的电影,有的是因为编码问题而不能播放的,然后要连到他们的网站上下载解码器,而这大多都是要钱的了。

    博主应该能搞定吧?:)

    [回复]

  12. 恩,码率高确实清晰,只不过太大了,有的电影高清的要几G

    [回复]

  13. 同学有部电影几十G,我不相信

    [回复]

    Jacse 回复:

    @iseeyou,蓝光片有的高达30G呢。

    @三七八蛋,解码器用完美解码或者终极解码即可。

    @记忆盒子,不应该看不了啊,使用万能解码器哪有不能解码的,装一个流行的播放器也成啊。

    @微知博客,高清看着舒服啊。

    @yoja,几十G正常。

    [回复]

  14. 不错的扫盲贴
    我现在基本上只能看准高清- -

    [回复]

  15. 博主,刚才打开首页的时候怎么是乱码,也有可能是我的FF没有加载完吧。

    [回复]

  16. 专业文章

    [回复]

  17. 比较专业,研究得很深入啊!

    [回复]

  18. 我倒是很像玩高清,就是机器不行,用本子,我还是老实点好了~

    [回复]

    Jacse 回复:

    @A.shun,高清的需要很好的网速啊。

    @随影,都是从各种文章和百科中归纳的。

    @hfantasy,高清目前还没普及呢。

    [回复]

  19. 话说我唯一一次下载超过7G的电影是《变形金刚》,欣喜下完才发现恶梦开始了。那个卡的~那都叫mini hd了,蓝光我就喷血了~现在都是玩dvdrip,一个最大也就2G而已~

    [回复]

  20. 话说,我最近看完狼与香辛料II,不想你也喜欢,哈哈~

    [回复]

  21. 长知识了,前几天下了部黑客帝国1用了20G= =

    [回复]

  22. 又来顶你了

    [回复]

    Jacse 回复:

    @hfantasy,7G版不至于卡吧,显卡硬解就行了。

    @掌柜的马甲,你下了很久吧。

    @先看看,谢谢。

    [回复]

  23. 太专业了点,不错,学习一下。

    [回复]

  24. 现在天天在pt站挂机的地精爬过

    [回复]

  25. 学习哦哦

    [回复]

    Jacse 回复:

    @古墓候梅,呃。

    @内大臣,喜欢贡献流量的人。

    @开心凡人,除了“学习”二字,还会打些别的字么。

    [回复]

  26. 嘿嘿,科普知识,多谢哈。。。

    [回复]

    • 小人物
    • 十二月 21st, 2009

    我是第一次压制视频,没经验已经失败N次了。
    视频参数:
    http://hiphotos.baidu.com/li%C6%BD%B7%B2/pic/item/50a1243e277d5a0d71cf6c3f.jpg
    是个反恐精英视频.
    我设置的参数:
    视频:
    http://hiphotos.baidu.com/li%C6%BD%B7%B2/pic/item/0bf38d88851713a4a5c2726b.jpg
    音频:
    http://hiphotos.baidu.com/li%C6%BD%B7%B2/pic/item/208ec0504ab2435284352433.jpg
    画面:
    http://hiphotos.baidu.com/li%C6%BD%B7%B2/pic/item/d6fc7ba4fb0b9dc79152ee74.jpg
    压制后要么不能输出,要么画质巨差.
    我怀疑是帧率没有调好.
    我也用过ACFUN管理员的办法(http://220.170.79.105/html/art/20091212/62366.html),
    结果不能输出,VP6也用了花了一下午时间结果只有声音没画面.
    看了您的文章受益匪浅,可我还是不懂,可能是偶太愚笨了.
    希望您可以给我一个解决的办法,感激不敬.

    [回复]

    Jacse 回复:

    Mediacoder不行,就换个压缩软件,30fps高了,选择24就可以了。

    我比较习惯用Mediaencoder,因为CS4套装里面的。

    还有宽高比最好不要4:3,用宽屏比例较好。

    [回复]

    • 小人物
    • 十二月 24th, 2009

    我想把视频简单的压缩后放到新浪上,再上传到AC.(AC拒绝差画质,偶也没办法)
    Mediaencoder我没用过了,我去试试.(有没有具体的傻瓜教程)
    我听说后黑法比较简单,可我还是不会制作黑屏文件.
    突然感觉压缩也是一门高深的学问,困惑中……

    [回复]

  27. 路过看看!

    [回复]

    • 小人物
    • 十二月 25th, 2009

    Mediaencoder试用了(我512的内存实在经受不住摧残..)
    我用了你的编辑方法[新浪那个],最后我找不到导出渲染的方形像素
    最后导出的是没声音和画面的黑屏…(我用3个多小时)
    偶崩溃了!!!
    Jacse能不能帮我传个视频到新浪上去,偶感激不尽.
    下载地址:http://download.avl.com.cn/index.asp?site=/game/cs/download/movie/sk-believe.zip

    [回复]

    Jacse 回复:

    我看着都快崩溃了……我帮你吧。

    [回复]

    小人物 回复:

    真是太感谢您了,真是太感谢您了,真是太感谢您了,真是太感谢您了,真是太感谢您了……
    偶语无伦次中…

    [回复]

  28. 很不错的文章…

    [回复]

  29. 很不错.学习了..支持.

    [回复]

  1. 还没有引用通告。

1 2 3 4 5 6 7 8