视频技术基础

一、I帧、P帧、B帧差别

I帧表示关键帧,完整画面图片压缩;包含完整画面信息,解码时只需要本帧数据就可以完成。

P帧表示这一帧跟之前的一个关键帧(或P帧)的差别。解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,P帧没有完整画面数据,只有与前一帧的画面差别的数据)

B帧是双向差别帧。B帧记录的是本帧与前后帧的差别(具体比较复杂,有4种情况)。换言之,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。

为提高压缩效率,I帧一般为有损压缩,P帧、B帧为无损压缩(只是差异信息,数据较少)。三者的压缩比一般是7,20,50。

二、视频编码格式标准

所谓编码格式就指的一种压缩视频图像的算法标准。主流的视频编码格式一览表如下:

格式 推出机构 推出时间 发展状况
HEVC(H265) MPEG/ITU-T 2013 不普及
H264(AVC) MPEG/ITU-T 2003 各个领域
MPEG4 MPEG 2003 不温不火
MPEG2 MPEG 2001 数字电视
VP9 Google 2013 不普及
VP8 Google 2008 不普及
VC-1 Microsoft Inc. 2006 微软平台

其实这里H264已经成为事实的视频领域的行业编码标准。目前主流的视频都采用H264格式进行视频编码,H265可能对目前的计算机硬件资源来说计算量还是过大,还没有普及(只是猜测)。MPEG4、MPEG2和H264都师出同门,只不过H264在图像质量和压缩率上更胜一筹,其他几种编码格式基本跟H264差不多,只是出自不同公司或者组织,并且没有H264普及。

同样音频编码和视频编码一样,指的是通过一定的手段将音频数据进行压缩。音频数据在视频文件中占用空间跟视频数据比非常的小,我们这里就不重讨论,目前主要的音频编码格式有AAC、AC-3、MP3、WMA。其中AAC应该是视频文件中最主流的编码格式。

三、视频的封装格式

封装格式的主要作用是把视频码流和音频码流按照一定的格式存储在一个文件中。现如今流行的封装格式如下表所示:

格式 推出机构 流媒体 支持的视频编码 支持音频编码格式 应用领域
AVI Mirosoft Inc. 不支持 几乎所有 几乎所有 下载的视频文件(现在可能很少见到)
MP4 MPEG 支持 MPEG-2、MPEG-4、H.264 AAC,MPEG-1 Layers I, II, III、AC-3等 互联网视频
TS MPEG 支持 MPEG-2、MPEG-4、H.264 AAC,MPEG-1 Layers I, II, III 互联网视频、IPTV、数字电视
FLV Adobe Inc. 支持 Sorenson、VP6、H264 MP3,ADPCM,Linear PCM、AAC等 互联网视频
MKV CoreCodec Inc. 支持 几乎所有 几乎所有 互联网视频
RMVB Real Networks Inc. 支持 RealVideo 8,9,10 AAC、Cook Codec、RealAudio Lossless 下载的视频文件

除了AVI之外,几乎所有的封装格式都支持流媒体播放,也就是“边下边播放”。

为什么要分封装格式和视频编码格式呢? 这个其实跟网络分七层模型一个原理。解耦和,降低依赖,底层给上层提供基础功能,底层和上层都都可以单独扩展,可以以多种方案组合编码与封装,比如MP4与H264、MP4与MPEG、TS与H264等等。比如这里面的这边文章的编码就只负责将最原始的音频和视频数据就行压缩,而压缩完的数据要怎么组织就拜托给上层的封装,封装接到视频音频数据负责给数据编号,指定同步协议,加入字幕等操作。经过封装后,得到的就是可以播放的上面提到的视频文件MP4或者MKV等等。把这个过程反过来就是上图描述的视频播放的过程。

四、视频播放原理

比如我们在网站上看一个视频的时候,需要经过这几个步骤:解协议,解封装,解码视音频,视音频同步。如果播放本地文件则不需要解协议,为以下几个步骤:解封装,解码视音频,视音频同步。他们的过程如图所示。

Paste_Image.png

从解协议的结果封装格式数据开始讨论。

解封装的作用,就是将输入的封装格式的数据,分离成为音频流压缩编码数据和视频流压缩编码数据。封装格式种类很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。例如,FLV格式的数据,经过解封装操作后,输出H.264编码的视频码流和AAC编码的音频码流。

解码的作用,就是将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始数据。音频的压缩编码标准包含AAC,MP3,AC-3等等,视频的压缩编码标准则包含H.264,MPEG2,VC-1等等。解码是整个系统中最重要也是最复杂的一个环节。通过解码,压缩编码的视频数据输出成为非压缩的颜色数据,例如YUV420P,RGB等等;压缩编码的音频数据输出成为非压缩的音频抽样数据,例如PCM数据。

视音频同步的作用,就是根据解封装模块处理过程中获取到的参数信息,同步解码出来的视频和音频数据,并将视频音频数据送至系统的显卡和声卡播放出来。

参考:http://www.jianshu.com/p/c905f3ec59c9

来自为知笔记(Wiz)

时间: 2024-11-03 03:23:36

视频技术基础的相关文章

Android中直播视频技术探究之---基础核心类ByteBuffer解析

一.前言 前一篇文章我们介绍了Android中直播视频技术的基础大纲知识,这里就开始一一讲解各个知识点,首先主要来看一下视频直播中的一个重要的基础核心类:ByteBuffer,这个类看上去都知道了,是字节缓冲区处理字节的,这个类的功能非常强大,也在各个场景都有用到,比如网络数据底层处理,特别是结合网络通道信息处理的时候,还有就是后面要说到的OpenGL技术也要用到,当然在视频处理中也是很重要的,因为要处理视频流信息,比如在使用MediaCodec进行底层的视频流编码的时候,处理的就是字节,我们如

Android中直播视频技术探究之---基础知识大纲介绍

一.前言 最近各种视频直播app到处都是,各种霸屏,当然我们也是需要体验的,关于视频直播的软件这里就不介绍了,在不是技术的人来看,直播是一种潮流,是一种娱乐方式,但是作为一个高技术的,我们除了看看,更重要的是学习技术,其实Android中的视频技术没什么说的,因为网上的资料很多,但是之前的视频技术大部分都出现在了视频播放,就是主流的视频播放器,那个最重要的一个技术就是视频的编解码,这个也会在后续文章中详细介绍视频的处理技术.但是现在直播的技术是在之前的视频技术上又有了一个要求就是视频录制,现在录

移动视频技术

在语音通信已得到教育.医疗.社交.电子商务等多个领域的移动应用和充分发展的今天,人们已不满足于仅依靠语音电话来传达信息.开发者都需要结合自身业务场景在其产品中嵌入语音聊天.视频通话.语音对讲等实时通话功能.但较高的技术门槛和开发成本成为普通开发者实现这些功能的主要障碍. 目前,移动视频技术是基于手机移动网络3G业务推出的一种增值新服务,相应标准有MBMS和BCMCS.DVB-H和S/T-DMB技术以及基于3G网络的MBMS技术在我国具有较好的基础,极有可能成为我国移动视频业务的主流技术. 移动视

软件开发技术基础复习要点

软件开发技术基础复习要点 1.生存周期: 指一个软件从提出开发要求开始,经过需求分析.设计.制造.调试.使用.维护,直到软件产品被淘汰为止的整个过程. 2.简述软件工程的基本原理: 用分阶段的生命周期计划严格管理: 坚持进行阶段评审: 实行严格的产品控制: 采纳现代程序设计技术: 结果应该能清楚地审查: 开发小组应小而精: 承认不断改进软件工程实践的必要性. 3.简述产生软件危机的原因和解决办法: 原因:开发软件所需的高成本与软件产品的低质量之间存在尖锐的矛盾,致使软件开发陷入循环之中,即研制软

移动音视频技术

在语音通信已得到教育.医疗.社交.电子商务等多个领域的移动应用和充分发展的今天,人们已不满足于仅依靠语音电话来传达信息.开发者都需要结合自身业务场景在其产品中嵌入语音聊天.视频通话.语音对讲等实时通话功能.但较高的技术门槛和开发成本成为普通开发者实现这些功能的主要障碍. 目前,移动视频技术是基于手机移动网络3G业务推出的一种增值新服务,相应标准有MBMS和BCMCS.DVB-H和S/T-DMB技术以及基于3G网络的MBMS技术在我国具有较好的基础,极有可能成为我国移动视频业务的主流技术. 移动视

音视频编码基础知识

本文转载自 http://blog.csdn.net/ljzcom/article/details/7336258 ,如有需要,请移步查看. Technorati 标签: 音视频 编码 基础知识 --------------------------------分割线开始----------------------------------------------- 编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中

嵌入式视频处理基础(二)

引言: 作为消费者,我们对于各种形式的视频系统都已经非常熟悉了.但是从嵌入式开发人员的角度来看,视频就好像是一张纷繁复杂的网络,里面充满了各种不同的分辨率.格式.标准与显示等. 隔行扫描和逐行扫描: 隔行扫描起源于早起的模拟电视广播,那时候需要按顺序将图像快速刷新,以减小视觉上的闪烁,但是当时的技术还无法做到这么快速的刷新整个屏幕.因此,就将每一帧进行交织处理,即分为两场,一个由奇数扫描行组成,另一个由偶数扫描行组成. 隔行扫描 帧分为奇数和偶数场 NTSC(PAL)的帧刷新率大约为30(25)

嵌入式视频处理基础(一)

引言: 作为消费者,我们对于各种形式的视频系统都已经非常熟悉了.但是从嵌入式开发人员的角度来看,视频就好像是一张纷繁复杂的网络,里面充满了各种不同的分辨率.格式.标准与显示等. 人类视觉感知: 理解眼睛如何工作将对理解视频和图像技术的发展过程非常重要.正如您所见到的,视频的格式和压缩算法都取决于眼睛对各种不同类型的激励产生什么样的反应. 人类眼睛结构 人类眼睛内有两种类型的视觉细胞:视杆细胞和视锥细胞.视杆细胞主要对光的强度比较敏感,而对颜色不敏感,这些细胞是人类具有夜视能力.另一方面,视锥细胞

音视频技术总结

1. 常用的基本知识 基本概念 编解码 编解码器(codec)指的是一个能够对一个信号或者一个数据流进行变换的设备或者 程序.这里指的变换既包括将信号或者数据流进行编码(通常是为了传输.存储或者加密)或者提取得到一个编码流的操作,也包括为了观察或者处理从这个编码流 中恢复适合观察或操作的形式的操作.编解码器经常用在视频会议和流媒体等应用中. 容器 很多多媒体数据流需要同时包含音频数据和视频数据,这时通常会加入一些用于音频和视 频数据同步的元数据,例如字幕.这三种数据流可能会被不同的程序,进程或者