我是靠谱客的博主 整齐金针菇,最近开发中收集的这篇文章主要介绍音视频开发(26)---H.264编码格式和视频编码的一些基本概念H.264编码格式和视频编码的一些基本概念,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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。

最后

以上就是整齐金针菇为你收集整理的音视频开发(26)---H.264编码格式和视频编码的一些基本概念H.264编码格式和视频编码的一些基本概念的全部内容,希望文章能够帮你解决音视频开发(26)---H.264编码格式和视频编码的一些基本概念H.264编码格式和视频编码的一些基本概念所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部