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是一个不错的选择。

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

  压缩: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编码格式和视频编码的一些基本概念相关推荐

  1. 音视频开发(32)---H.264/AVC 主流视频编码标准的发展

    H.264/AVC 主流视频编码标准的发展 一. 主流视频编码标准的发展 长期以来,视频编码标准主要由两个国际组织负责制定:国际电信联盟ITU-T和国际标准化组织ISO.目前影响力最强的视频编码标准基 ...

  2. 【秒懂音视频开发】23_H.264编码

    本文主要介绍一种非常流行的视频编码:H.264. 计算一下:10秒钟1080p(1920x1080).30fps的YUV420P原始视频,需要占用多大的存储空间? (10 * 30) * (1920 ...

  3. H.264与AVS视频标准核心技术比较

     H.264与AVS视频标准核心技术比较 视频编码技术在过去几年最重要的发展之一是由ITU和ISO/IEC的联合视频小组 (JVT)开发了H.264/MPEG-4 AVC[8]标准.在发展过程中, ...

  4. H.264将普及 视频编码讲坛之H.264前世今生

    随着HDTV等高清资源的兴起,H.264这个规范频频出现在我们眼前,HD-DVD和蓝光DVD均计划采用这一标准进行节目制作.而且自2005年下半年以来,无论是NVIDIA还是ATI都把支持H.264硬 ...

  5. 《新一代视频压缩编码标准H.264/AVC》

    资料:<新一代视频压缩编码标准H.264/AVC> 毕厚杰 有一些超出 音视频encode decode scope 的content,会过滤阅读,本次学习过程更偏向基础概念的理解,ter ...

  6. C#中读取流媒体视频文件转H.264具体实现方法

    现在有越来越多的人在使用C#语言做编程,但我发现好像用C#做音视频流媒体开发的比较少.我们的libEasyScreenLive目前支持Windows,Android平台,通过EasyScreenLiv ...

  7. 转 基于H.264的远程视频监控

    基于H.264的远程视频监控  分类: 嵌入式   http://blog.chinaunix.net/uid-26851094-id-3276088.html 有兴趣的留言一起研究     开始做自 ...

  8. Android音视频开发入门(5)使用LAME编码一个PCM文件,为了跳槽强刷1000道Android真题

    无论是自行安装PC上的编译器,还是下载其他平台的交叉编译链,它们都会提供下面几个工具: CC 编译器,对C源文件进行编译处理,生成汇编文件 AS 将汇编文件生成目标文件 AR 打包器,用于库操作 LD ...

  9. Android音视频开发基础(七):视频采集-系统API基础

    前言 在Android音视频开发中,网上知识点过于零碎,自学起来难度非常大,不过音视频大牛Jhuster提出了<Android 音视频从入门到提高 - 任务列表>.本文是Android音视 ...

最新文章

  1. Alibaba Java诊断利器Arthas实践--使用redefine排查应用奇怪的日志来源
  2. mysql触发器 存储过程_mysql触发器和存储过程
  3. 计算机软硬件基础体系标准,国内首个计算机软硬件基础体系标准发布
  4. RxDownload2 文件下载太慢分析
  5. Data URL和图片,及Data URI的利弊
  6. thinkphp 文件下载实例 实现以及注意事项
  7. 在虚拟机vmware中安装windows7保姆级教程
  8. java则么实现md5解密_java的md5解密
  9. 股票如何看股票均线-5-10-20-30-60日均线
  10. 4399怎么修复游戏服务器,[ 服务器 ]4399官方服务器(改ip了)
  11. 分分钟在自己电脑上建一个视频网站,收费电影随便看,还没广告!
  12. Ai-WB1系列驱动4.0寸电阻触摸屏运行LVGL v8.3
  13. 天梯赛L1(1-80)
  14. (26)盘古自研框架BackPropagation
  15. Matlab 如何截取视频中的每一帧图像
  16. gRPC快速入门(三)——Protobuf应用示例
  17. python得垃圾回收机机制gc
  18. 烦立停第43期:分手!狗庄虐我千百遍,我待狗庄如初恋!
  19. Android 之路34---Dialog
  20. JVM内存与垃圾回收篇——堆

热门文章

  1. 信号发送函数sigqueue和信号安装函数sigaction
  2. KNN算法(K近邻学习)
  3. 《Reids 设计与实现》第三章 跳跃表
  4. 【JAVA SE】第一章 Java语言概述、环境变量和HelloWorld
  5. (学习笔记)Oracle约束
  6. 《像计算机科学家一样思考Python》pdf
  7. Python基础19(random模块)
  8. [2017-08-25]100行CSharp代码利用dynamic写个DSL(特定领域语言)
  9. 烘烤店LOGO在线设计制作教程
  10. python面试题之简要描述Python的垃圾回收机制(garbage collection)