zoukankan      html  css  js  c++  java
  • 视频编码的基本知识

    视频编码的基本框架
      国际音视频压缩标准发展历程:
      H.261
      H.261标准是为ISDN设计,主要针对实时编码和解码设计,压缩和解压缩的信号延时不超过150ms,码率px64kbps(p=1~30)。
      H.261标准主要采用运动补偿的帧间预测、DCT变换、自适应量化、熵编码等压缩技术。 只有I帧和P帧,没有B帧,运动估计精度只精确到像素级。支持两种图像扫描格式:QCIF和CIF。
      H.263
      H.263标准是甚低码率的图像编码国际标准,它一方面以H.261为基础,以混合编码为核心,其基本原理框图和H.261十分相似,原始数据和码流组织也相似;另一方面,H.263也吸收了MPEG等其它一些国际标准中有效、合理的部分,如:半像素精度的运动估计、PB帧预测等,使它性能优于H.261。
      H.263使用的位率可小于64Kb/s,且传输比特率可不固定(变码率)。H.263支持多种分辨率: SQCIF(128x96)、 QCIF、CIF、4CIF、16CIF。
      与H.261和H.263相关的国际标准;
      与H.261有关的国际标准;
      H.320:窄带可视电话系统和终端设备;
      H.221:视听电信业务中64~1 920Kb/s信道的帧结构;
      H.230:视听系统的帧同步控制和指示信号;
      H.242:使用直到2Mb/s数字信道的视听终端的系统。
      与H.263有关的国际标准;
      H.324:甚低码率多媒体通信终端设备;
      H.223:甚低码率多媒体通信复合协议;
      H.245:多媒体通信控制协议;
      G.723.1.1:传输速率为5.3Kb/s和6.3Kb/s的语音编码器。
      JPEG
      国际标准化组织于1986年成立了JPEG(Joint Photographic Expert Group)联合图片专家小组,主要致力于制定连续色调、多级灰度、静态图像的数字图像压缩编码标准。常用的基于离散余弦变换(DCT)的编码方法,是JPEG算法的核心内容。
      MPEG-1/2
      MPEG-1标准用于数字存储体上活动图像及其伴音的编码,其数码率为1.5Mb/s。 MPEG-1的视频原理框图和H.261的相似。
      MPEG-1视频压缩技术的特点:1. 随机存取;2. 快速正向/逆向搜索;3 .逆向重播;4. 视听同步;5. 容错性;6. 编/解码延迟。MPEG-1视频压缩策略:为了提高压缩比,帧内/帧间图像数据压缩技术必须同时使用。帧内压缩算法与JPEG压缩算法大致相同,采用基于DCT的变换编码技术,用以减少空域冗余信息。帧间压缩算法,采用预测法和插补法。预测误差可在通过DCT变换编码处理,进一步压缩。帧间编码技术可减少时间轴方向的冗余信息。
      MPEG-2被称为“21世纪的电视标准”,它在MPEG-1的基础上作了许多重要的扩展和改进,但基本算法和MPEG-1相同。
      MPEG-4
      MPEG-4标准并非是MPEG-2的替代品,它着眼于不同的应用领域。MPEG-4的制定初衷主要针对视频会议、可视电话超低比特率压缩(小于64Kb/s)的需求。在制定过程中,MPEG组织深深感受到人们对媒体信息,特别是对视频信息的需求由播放型转向基于内容的访问、检索和操作。
      MPEG-4与前面提到的JPEG、MPEG-1/2有很大的不同,它为多媒体数据压缩编码提供了更为广阔的平台,它定义的是一种格式、一种框架,而不是具体算法,它希望建立一种更自由的通信与开发环境。于是MPEG-4新的目标就是定义为:支持多种多媒体的应用,特别是多媒体信息基于内容的检索和访问,可根据不同的应用需求,现场配置解码器。编码系统也是开放的,可随时加入新的有效的算法模块。应用范围包括实时视听通信、多媒体信、远地监测/监视、VOD、家庭购物/娱乐等。
      JVT:新一代的视频压缩标准
      JVT是由ISO/IEC MPEG和ITU-T VCEG成立的联合视频工作组(Joint Video Team),致力于新一代数字视频压缩标准的制定。
      JVT标准在ISO/IEC中的正式名称为:MPEG-4 AVC(part10)标准;在ITU-T中的名称:H.264(早期被称为H.26L)
      H.264/AVC
      H.264集中了以往标准的优点,并吸收了以往标准制定中积累的经验, 采用简洁设计,使它比MPEG4更容易推广。H.264创造性了多参考帧、多块类型、整数变换、帧内预测等新的压缩技术,使用了更精细的分象素运动矢量(1/4、1/8)和新一代的环路滤波器,使得压缩性能大大提高,系统更加完善。
      H.264主要有以下几大优点:
      - 高效压缩:与H.263+和MPEG4 SP相比,减小50%比特率;
      - 延时约束方面有很好的柔韧性;
      - 容错能力;
      - 编/解码的复杂性可伸缩性;
      - 解码全部细节:没有不匹配;
      - 高质量应用;
      - 网络友善。

    视频编码技术

      目前监控中主要采用MJPEG、MPEG1/2、MPEG4(SP/ASP)、H.264/AVC等几种视频编码技术。对于最终用户来言他最为关心的主要有:清晰度、存储量(带宽)、稳定性还有价格。采用不同的压缩技术,将很大程度影响以上几大要素。
      MJPEG
      MJPEG(Motion JPEG)压缩技术,主要是基于静态视频压缩发展起来的技术,它的主要特点是基本不考虑视频流中不同帧之间的变化,只单独对某一帧进行压缩。
      MJPEG压缩技术可以获取清晰度很高的视频图像,可以动态调整帧率、分辨率。但由于没有考虑到帧间变化,造成大量冗余信息被重复存储,因此单帧视频的占用空间较大,目前流行的MJPEG技术最好的也只能做到3K字节/帧,通常要8~20K!
      MPEG-1/2
      MPEG-1标准主要针对SIF标准分辨率(NTSC制为352X240;PAL制为352X288)的图像进行压缩. 压缩位率主要目标为1.5Mb/s.较MJPEG技术,MPEG1在实时压缩、每帧数据量、处理速度上有显著的提高。但MPEG1也有较多不利地方:存储容量还是过大、清晰度不够高和网络传输困难。
      MPEG-2 在MPEG-1基础上进行了扩充和提升,和MPEG-1向下兼容,主要针对存储媒体、数字电视、高清晰等应用领域,分辨率为:低(352x288),中(720x480),次高(1440x1080),高(1920x1080)。MPEG-2视频相对MPEG-1提升了分辨率,满足了用户高清晰的要求,但由于压缩性能没有多少提高,使得存储容量还是太大,也不适和网络传输。
      MPEG-4
      MPEG-4视频压缩算法相对于MPEG-1/2在低比特率压缩上有着显著提高,在CIF(352*288)或者更高清晰度(768*576)情况下的视频压缩,无论从清晰度还是从存储量上都比MPEG1具有更大的优势,也更适合网络传输。另外MPEG-4可以方便地动态调整帧率、比特率,以降低存储量。
      MPEG-4由于系统设计过于复杂,使得MPEG-4难以完全实现并且兼容,很难在视频会议、可视电话等领域实现,这一点有点偏离原来地初衷。另外对于中国企业来说还要面临高昂的专利费问题,目前规定:
      - 每台解码设备需要交给MPEG-LA 0.25美元。
      - 编码/解码设备还需要按时间交费(4美分/天=1.2美元/月 =14.4美元/年)。
      H.264/AVC
      视频压缩国际标准主要有由ITU-T制定的H.261、H.262、H.263、H.264和由MPEG制定的MPEG-1、MPEG-2、MPEG-4,其中H.262/MPEG-2和H.264/MPEG-4 AVC由ITU-T与MPEG联合制定。
      从简单来说H.264就是一种视频编码技术,与微软的WMV9都属于同一种技术也就是压缩动态图像数据的“编解码器”程序。
      一般来说,如果动态图像数据未经压缩就使用的话,数据量非常大,容易造成通信线路故障及数据存储容量紧张。因此,在发送动态图像时、或者把影像内容保存在DVD上时、以及使用存储介质容量较小的数码相机或相机手机拍摄映像时,就必须使用编解码器。虽然编解码器有许多种类,但DVD-Video与微波数字电视等使用的主要是MPEG2,数码相机等摄像时主要使用MPEG4。
      既然作为压缩视频编码技术,H.264最大的作用对视频的压缩了。我们熟悉的MPEG2也就是最常用的DVD视频编码技术已经比较落后。
      对于最希望看到的HDTV的节目如果播放时间在2小时左右的话,使用MPEG2最小只能压缩至30GB,而使用H.264、WMV9这样的高压缩率编解码器,在画质丝毫不降的前提下可压缩到15GB以下。
      上面的例子可以看出H.264的技术优势了,一般来说H.264的数据压缩率在MPEG2的2倍以上、MPEG4的1.5倍以上。从理论上来说,在相同画质、相同容量的情况下,可比目前的DVD光盘多保存2倍以上时间的影像。有望作为电影与音乐会等映像内容与便携设备的编解码器广泛使用。支持该技术的产品与服务于2004年问世。
      大家是否都能记得当年的视频解压卡,也就是我们说的DVD/VCD解压缩卡,这个东西的原理很简单,就是板卡上安装了DSP芯片,而这个芯片唯一的功能就是用来针对特殊格式的编码进行解压缩,当后来显卡的性能逐渐增强可以满足视频播放需要的时候,视频解压缩卡也就消失的不见了。
      而ATI的做法就是最新的R520 VPU内就包含了H.264解码技术,这种特殊的算法直接交给显卡VPU来运算,而不是完全交给CPU处理,这样就可以解放出CPU进行更多其他复杂的运算。
      H.264集中了以往标准的优点,在许多领域都得到突破性进展,使得它获得比以往标准好得多整体性能:
      - 和H.263+和MPEG-4 SP相比最多可节省50%的码率,使存储容量大大降低;
      - H.264在不同分辨率、不同码率下都能提供较高的视频质量;
      - 采用“网络友善”的结构和语法,使其更有利于网络传输。
      H.264采用简洁设计,使它比MPEG4更容易推广,更容易在视频会议、视频电话中实现,更容易实现互连互通,可以简便地和G.729等低比特率语音压缩组成一个完整的系统。
      MPEG LA吸收MPEG-4的高昂专利费而使它难以推广的教训,MPEG LA制定了以下低廉的H.264收费标准:H.264广播时基本不收费;产品中嵌入H.264编/解码器时,年产量10万台以下不收取费,超过10万台每台收取0.2美元,超过500万台每台收取0.1美元。低廉的专利费使得中国H.264监控产品更容易走向世界。
      H.264视频编码标准的发展历史
      随着NGN、3G及3G演进和NGBW等对视频、多媒体业务与网络应用的飞速发展需求,作为视频业务及存储应用核心技术的高效率视频数字压缩编技术,愈来愈引起人们的关注,成为目前广播、视频与多媒体通信领域中的亮点与热点,这其中H.264视频编码标准更是耳熟能详的一个名字。
      早在1993年,ITU-T(国际电信联盟电信标准化部门)制定了第一个视频编码标准H.261,其输出速率为p*64 kbit/s,主要用于ISDN及ATM等准宽带及宽带信道视频。随着时间的不断发展,经历了1996年的H.263,1998年的H.263+,2000年的H.263++,到了2001年,MPEG认识到H.26L的潜在优势及与VCEG联合工作的必要性,从而两者合作成立联合视频组(JVT),从而形成了2003年第二季度发布的统一标准H.264/AVC。该标准在ITU-T称为H.264;在ISO/IEC则称为MPEG4-Part 10 AVC(Advanced Video Coding,第10部分,先进视频编码),这也就是今天我们大家都津津乐道的H.264/AVC。
      与先前的一些编码标准相比,H.264标准继承了H.263和MPEG1/2/4视频标准协议的优点,但在结构上并没有变化,只是在各个主要的功能模块内部使用了一些先进的技术,提高了编码效率。其主要表现在:编码不再是基于8×8的块进行,而是在4×4大小的块上,进行残差的变换编码。所采用的变换编码方式也不再是DCT变换,而是一种整数变换编码。采用了编码效率更高的上下文自适应二进制算术编码(CABAC),同时与之相应的量化过程也有区别。H.264标准具有算法简单易于实现、运算精度高且不溢出、运算速度快、占用内存小、消弱块效应等优点,是一种更为实用有效的图像编码标准。
      H.264/AVC在压缩编码效率、视频内容自适性处理能力方面及网络层面,特别是对IP网络及移动网络的自适应处理能力、抗干扰能力与顽健性等方面,相比H.263/MPEG-4均有大幅度提高,也就造成了目前H.264被热炒的局面。应该说,H.264/AVC的应用确属相当广泛,包括固定或移动的可视电话、移动电话、实时视频会议、视频监控、流媒体、多媒体视频、Internet视频及多媒体、IPTV、手机电视、宽带电话以及视频信息存储等,这也是业内普遍看好它的重要原因。
      监控中视频编码分辨率的选择
      目前监控行业中主要使用以下分辨率:SQCIF、QCIF、CIF、4CIF。
      SQCIF和QCIF的优点是存储量低,可以在窄带中使用,使用这种分辨率的产品价格低廉;缺点是图像质量往往很差、不被用户所接受。
      CIF是目前监控行业的主流分辨率,它的优点是存储量较低,能在普通宽带网络中传输,价格也相对低廉,它的图像质量较好,被大部分用户所接受。缺点是图像质量不能满足高清晰的要求。
      4CIF是标清分辨率,它的优点是图像清晰。缺点是存储量高,网络传输带宽要求很高,价格也较高。
      分辨率新的选择-528x384。
      2CIF(704x288)已被部分产品采用,用来解决CIF清晰度不够高和4CIF存储量高、价格高昂的缺点。但由于704x288只是水平分辨率的提升,图像质量提高不是特别明显。
      经过测试,我们发现另外一种2CIF分辨率528x384,比704x288能更好解决CIF、4CIF的问题。特别是在512Kbps-1Mbps码率之间,能获得稳定的高质量图像,满足用户较高图像质量的要求。目前这一分辨率已被许多网络多媒体广播所采用,被广大用户所接受。比如杭州网通网上影院是采用512x384分辨率,在768k下能稳定地获得近似DVD的图像质量。
      监控中实现视频编码的最佳方式
      目前视频编码正处于一个技术日新月异的时期,视频编码的压缩性能在不断得到提升。
      在监控中主要使用ASCI和DSP两种方案。由于ASIC芯片的设计、生产周期过长,使它已跟不上视频编码的发展速度。而DSP芯片,由于它的通用设计,使它能实现各种视频编码算法,并且可以及时更新视频编码器,紧跟视频编码的发展速度。另外使用DSP芯片可以比ASIC更灵活的配置编码器,使编码器达到最佳性能。
      海康威视产品目前达到的技术水准。
      海康威视产品采用最先进的H.264视频压缩算法和高性能的DSP处理器。
      强大的H.264视频压缩引擎使产品获得极高的压缩比、高质量的图像质量和良好的网络传输性能。高性能的DSP处理器能灵活的配置视频编/解码器:动态设置分辨率、帧率、码率、图像质量等;可以双码流输出,达到本地存储和网络传输分别处理的功能。
      使用TM130X DSP的产品,单个芯片能实时压缩一路以下分辨率的视频:SQCIF、QCIF、CIF、2CIF(PAL:704x288或528x384)。
      使用DM642 DSP的产品,单个芯片能实时压缩4路以下分辨率的视频:SQCIF、QCIF、CIF、2CIF(PAL:704x288或528x384)。单个芯片能实时压缩2路4CIF视频。

    相关技术

      AVI结尾的视频文件有以下几种:
      1、非压缩格式的AVI文件(或是MPEG1格式的),这个不需要装任何插件就可以播放了。
      2、DIVX格式的AVI,这也是MPEG4的一种,安装最新的DIVX 5.21,就可以播放了,不过缺点是在播放之初会有一个DIVX的标记显示几秒。
      3、XVID格式的AVI,这也是MPEG4的一种,可以说是从DIVX变种而来的,据说是XVID原作者不满意DIVX商业化收费的行为,而开发的一个全Free的MPEG4编码核心,安装最新的XVID(1.02版)就可以播放。
      4、ffdshow MPEG-4格式的AVI,现在越来越多的AVI都采用ffdshow MPEG-4来,集成了DIVX与XVID的一种东西(好象还支持WMV与AC3音频),因此如果你装了ffdshow MPEG-4,就可以不用装XVID与DIVX等编码核心了。另外ffdshow MPEG-4也提供丰富的滤镜功能比如增亮,增加锐度等,最新的ffdshow MPEG-4 Video Decoder 20041012。
      5、WMV9格式的AVI,微软自己推出的MPEG4编码标准,使用Windows Media 9.0就可以播放,如果没有的话,也可以下载一个Windows Media Encoder 9.0,使你的系统支持WMV 9.0的格式。
      6、VP6格式的AVI,也是一种MPEG4的编码格式,On2 Technologies开发的编码器,VP6号称在同等码率下,视频质量超过了Windows Media 9、Real 9和H.264。VP6视频编码器目前被中国的EVD所采用。说真的,现在用这个的不多。最新版本是VP6 vfw Codec 6.2.6.0。
      7、其它格式的AVI,现在看来还有一些如MKV、OGG等格式的视频编码文件也会使用AVI的结尾名。
      其实AVI只是一个外壳。里面的东西可不一样哦。
      完全解决方案:下载一个MPC(影音风暴)就可以都播放了。 [3]
       Digital-Rapids

      DRC-Stream 系列 PCI 硬件插卡是一块高质量的专业视频压缩及视频传输编码卡。它最高可以支持2路视频及4路音频的传输。DRC-Stream系列的板卡具有很强的编码功能,可以同时实现来自两路不同视频及立体声音频以不同格式进行实时传输。DRC-Stream 系列板卡包括有:复合、S-Video 、分量模拟信号及 DV 和 SDI 的数字信号。

  • 相关阅读:
    自己遇到的冲突及解决方案
    怎么解决代码冲突及切换分支
    程序员修养
    代码回退
    gitlab两种连接方式:ssh和http配置介绍
    gitlab创建项目及分支
    github,gitlab的区别
    代码托管有什么用
    新手搭建云服务器详细过程
    UNP学习笔记(第十一章 名字与地址转换)
  • 原文地址:https://www.cnblogs.com/shine-yr/p/5214984.html
Copyright © 2011-2022 走看看