ztISO 14496-10(视频)-Advanced Video Coding(AVC) 简明介绍

译者序 一直以来都没有找到一个较全面的AVC 介绍。于是,译者就将DOOM9 论坛上的bond大人发表的《MPEG-4 Information》中的AVC 介绍的部分翻译出来,提供给和我一样想了解这方面知识的朋友。《MPEG-4 Information》中关于AVC 的介绍包含6 个部分,分别是AVC/H.264 Profiles、编/解码器简介、SAMPLE 简介、AVC 当前的问题、AVC 相关硬件设备、更多文档链接。其中编/解码器部分、SAMPLE 简介和硬件介绍译者没有翻译。因为编/解码器在nemolus 大大写的《AVC/H.264/AAC 专题 - 软件篇》中有更详细的介绍,SAMPLE 简介都是图片,字不多,而且译者看内容也不是很重要,于是就偷懒没有翻~呵呵~想看这三部分的朋友直接阅读原文即可。 由于译者也是刚刚接触AVC,再加上英语水平有限,所以翻译出来的东西可能不能准确表达作者的原意,甚至会误解作者的意思,在这里先惭愧一下。 如果有问题,欢迎通过下面方法与译者取得联系: 网站:http://nmm.dns0755.net Email:dgwxx@vip.sina.com MSN:zjworks@163.com(请不要向这个邮箱里面发送邮件,因为这个邮箱已经报废了) 因为这篇文章的结构比较复杂,考虑到WEB 页发布的多种不便,因此决定不发布WEB版,只发布PDF 版。 最后,感谢原作者bond 的辛勤工作,是他们让我们能够看到这个优秀的技术文章。当然,还要感谢您的支持! 原文:http://forum.doom9.org/showthread.php?threadid=73022 ISO 14496-10 (Video) - Advanced Video Coding (AVC) 简介 AVC/H.264 是MPEG-4 标准所定义的最新,同时也是技术含量最高、代表最新技术水平的视频编码格式之一。 AVC/H.264 视频编码由ISO 的MPEG 和ITU 的VCEG 两个组织于2003 年最终定稿。 而AVC/H.264 标准本身则是由包括来自MPEG 和VCEG 专家的Joint Video Team(JVT)开发。 译注: ISO(International Organization for Standardization) 国际标准组织, 发展国际生产和质量标准的组织; MPEG (Moving Pictures Experts Group) 运动图象专家组; ITU(International Telecommunication Union) 国际电传视讯联盟; VCEG(Video Coding Experts Group) 视频编码专家组,联合国的子机构之一,制定了现在广泛应用于视频会议软件中的H.263 格式。 从MPEG 的角度来说,这个标准叫做MPEG-4 Part10(ISO 14496-10),从ITU 的角度来说,这个标准叫做H.264(ITU 文档编号)。作为这个标准的“官方名称”,Advanced Video Coding(AVC)是MPEG 由Advanced Audio Coding(AAC)这个音频格式的视频副本确定的。 AVC/H.264 Profiles AVC/H.264 规定了多种不同的Profile:最低Profile、主要Profile、扩展Profile、高端Profile(这些Profile 本身还要划分数个等级)。 -最低Profile,也叫做底线Profile(Baseline Profile)支持I/P 帧,只支持无交错(Progressive)和CAVLC; -扩展Profile(Extended Profile)支持I/P/B/SP/SI 帧,只支持无交错(Progressive)和CAVLC; -主要Profile(Main Profile)提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),同样提供对于CAVLC 和CABAC 的支持; -高端Profile(High Profile,也叫FRExt)在主要Profile 的基础上增加了8x8 内部预测、自定义量化、无损视频编码和更多的YUV 格式(如4:4:4)。 或许只有在将来才能知道哪些Profile 或哪些功能会成为DVDRIP 的主流,但是我猜想会是Main 或是High Profile,包含下面的一些功能: CAVLC/CABAC AVC/H.264 为熵编码(entropy coding)规定了两个比MPEG-4 ASP 更加进步的功能,Context-Adaptive Variable Length Coding(CAVLC, 前后自适应可变长度编码) 和Context-Adaptive Binary Arithmetic Coding (CABAC,前后自适应二进制算术编码)。CABAC 是AVC/H.264 的默认模式,与CAVLC(也叫UVLC)相比,CABAC 是一个更加强有力的压缩方式,可以将码率在降低10-15%(特别是在高码率情况下)。CABAC (CAVLC 也同样)是一个不会损伤画面的无损编码,但是会降低编码和解码的速度。 Loop/Deblocking Filter 与预处理(比如通过avisynth,作用于输入端)和后处理(通过解码器,作用于最终输出)不同,LoopFiltering 在编码处理过程中起作用。它作用于每个帧编码之后,但是在这之前,它会被用作后面帧的参考。这样处理可以尽量避免色块的出现,特别是低码率状况下。 但是这样会降低编码和解码的速度。 Variable Block Sizes/Macroblock Partitions (可变区块尺寸/ 微块分割) 与MPEG-4 ASP(只使用Inter4V/4MV,区块大小可以在16x16 和8x8 之间变化)不同,AVC/H.264 将动态搜寻的精度增加到了4x4(中间包括类似8x4 等的的步长)。而且区块大小是自适应且可变的,一个优秀的编码器会聪明地为每个微块选择最有效的区块大小。 Multiple Reference Frames (多重参照帧) 与MPEG-4 ASP(只能选择前一帧进行参照)不同,AVC/H.264 可以选择不止一个帧进行内部动作搜寻,也就是说,编码器可以自行选择前一帧(像MPEG-4 ASP 那样),或是加上更前面的帧进行参照。正是由于这样(比如P 帧可能会参照最后一个I 帧之前的帧),一 种新类型的帧随之产生——IDR 帧,我们可以将其理解为不允许后面的帧向前面进行参照的I 帧。如果使用多重参照帧的话,编码和解码的速度都会减慢,而且编码、解码、剪切只能从IDR 帧开始。 译注: 按照原文恐怕不太容易理解,这里译者以自己的理解来讲解一下IDR 帧。举个例子,在一段视频中, 存在以下帧:I P B P B P B B P I P B… 如果这段视频应用了多重参照帧,那么蓝色的P 帧在参照他前面的I 帧(红色)的同时,还可能会参照I 帧之前的P 帧(绿色),由于I帧前后的场景可能会有很大的反差甚至根本不同,所以此时P 帧参考I 帧之前的帧不但会没有意义,反而会造成很多问题。 所以一种新型的帧被引入,那就是IDR 帧。如果这段视频应用了多重参考帧的同时采用了IDR 帧,那么帧的顺序就会变成这样:I P B P B P B B P IDR P B… 由于IDR 帧禁止后面的帧向自己前面的帧参照,所以这回那个蓝色的P 帧就不会参照绿色的P 帧了。 Weighted Prediction (权重预测) 使用权重预测,就是在参考帧上施加权重。这么说恐怕不太明白,但是向下看就会明白多了。在渐变场景(比如画面逐渐变黑),后面的帧除了比前面的帧要暗一些,其他地方都很相似,那么权重预测就在这些地方发挥作用了。需要注意的是,权重预测对于交*渐变(比如从一个场景渐变到另一个场景)不会有作用。 Rate Distortion Optimisation (RDO ,评价变化优化) RDO 使编码器遇到多种不同的选择的时候,选择最有效的编码方式。RDO 并不是由AVC/H.264 专家制定的功能,但它是最先由H.264 参考软件所用到的一种决定方法。其他的编码器也可以采用RDO,比如XviD 的VHQ 模式已经运用了RDO。 当前AVC/H.264 的问题 如果你对现有的AVC 工具嗤之以鼻,你肯定发现了AVC 的一些问题: -兼容性:目前不同的AVC 工具支持不同的容器(Container): .mp4:mp4 是MPGE-4 标准(ISO 14496-15)指定的AVC 容器。目前支持它的编码器有Nero、Sorenson、Envivio 和Moonlight。 .mpg:mpg 是MPEG-2 标准(ISO 13818-1,AMD3)指定的AVC 容器。目前支持它的编码器有:Mainconcept 和Moonlight。(蓝光BD-ROM 也会使用这种容器,具体请参见http://www.blu-ray.com) .avi:使用AVI 作为容器是不标准的,并且会造成不兼容的问题。使用AVI 可能妨碍AVC 的一些功能的发挥,也可能会损伤回放的质量,或者降低解码速度。目前支持avi 的编码器有VSS、x264(mencoder 和x264 的vfw 都支持)、mpegable。 .264/.h264:通常是参考编码器输出的作为例子的源图像。(mencoder 中的x264 也可以输出.264,mp4creator 可以从.mp4 种Demux 出来) -速度:当前一些编码器的速度很慢(大多是商业预览版)。尽管x264 和NeroDigital’s AVC看起来提供了不错的速度和后质量,但是它们仍然改变不了AVC 在一些较老的CPU 上极为耗时的事实。 更多文档 如果你想了解更多关于AVC 的信息,就看看:http://www.vcodex.com/h264.html。这里不但有更详细的介绍,更包含了一些技术层面的东西。 一些总结性的信息可以在http://www.moonlight.co.il/tech_h264.php 和http://www.dspr.com/www/technology/technology.htm 找到。 AVC 测试结果可以在http://www.chiariglione.org/mpeg/working_documents/mpeg-04/avc/avc_vt.zip 和http://82.2.167.24/Uploaded_Files/Doom9_Forum_files/AVC_Verification_Test_Results(mht).zip 找到(HTML 版本) 全部AVC 工程设计书可以在这里下载到: http://www.dspr.com/www/technology/JVT-G050.pdf 蓝光光盘的技术信息可以在这里找到: http://www.blu-raydisc.com/Section-13628/Index.htm
http://bbs.lmtw.com/dispbbs.asp?boardid=20&id=124919l
英文原创文章:http://forum.doom9.org/showthread.php?threadid=73022
MPEG-4 ASP Information

What is MPEG-4?

MPEG-4 (ISO 14496) is a broad Open Standard developed by the Moving Picture Experts Group (MPEG), a working group of the International Organization for Standardization (ISO) which also did the well known MPEG-1 (MP3, VCD) and MPEG-2 (DVD, SVCD) Standards, standardizing all sorts of audio/video compression formats and much more
By its nature the MPEG-4 Standard doesnt aim at standardizing one potential product (eg something comparable to DVD) but covers a broad range of Sub-Standards, which Product Providers can choose from to follow, according to what they need for their product

The MPEG-4 Standard, as mentioned, is divided into many different sub-standards, where for us users on Doom9 the following parts might be of major interest:
- ISO 14496-1 (Systems), Animation/Interactivity (like DVD Menus)
- ISO 14496-2 (Video), e.g. Advanced Simple Profile (ASP), as followed by XviD, DivX5, 3ivx...
- ISO 14496-3 (Audio), Advanced Audio Coding (AAC)
- ISO 14496-10 (Video), Advanced Video Coding (AVC), also known as H.264
- ISO 14496-14 (Container), MP4 container format (uses the .mp4 extension)
- ISO 14496-17 (Subtitles), MPEG-4 Timed Text subtitle format

This information thread now aims at providing some usefull infos on most of these parts, with a focus on MPEG-4 ASP and AVC/H.264

What are the possible advantages of an open standard, like MPEG-4, compared to closed formats, like Micro$oft's Windows Media?

The good thing about an open standard is that its open for everyone to follow when creating a product. therefore we already have a lot of different products which are compatible to the MPEG-4 Standard and are therefore also compatible to each other
Next to interoperability and big product range to choose from, an open standard leads to competition, which means for the consumer that products in the competitive market will most likely have a better increase in quality, lower prices and a better focus on the consumers needs

but not to forget and thats maybe the most important point for me:
an open standard allows open source development, like we all know from XviD for example

h264/AVC文件格式叙述相关推荐

  1. H264/AVC 视频编解码一些基本知识

    本篇对学习H264常见的知识点做个备注. 1.H264编码码率设置 对视频进行编码时,码率和视频质量是一对矛盾的话题.一般码率越大,视频丢弃冗余信息就越少,视频质量就越高.但是码率达到一定程度,视频质 ...

  2. 【H264/AVC 句法和语义详解】(五):Exp-Golomb指数哥伦布编码(理论篇)

    版权声明:本文为博主原创文章,未经博主允许不得转载.    https://blog.csdn.net/u011399342/article/details/80472399 本篇隶属于文集:< ...

  3. H264(AVC)/H265(HEVC)/H266(VVC):GOP的区别

    本文将对比分析H264/H265/H266中关于GOP的区别. 注: 1.本文参考了下列文章: https://blog.csdn.net/cpp12341234/article/details/44 ...

  4. 音视频开发之旅(56) -H264/AVC基本结构

    从这篇开始,我们进入H264的学习实践,主要分三个阶段 学习H264基本结构: 了解具体编码压缩技术: 分析了解相关开源库 x264和h264bitstream. 这篇我们来一起学习H264的基本结构 ...

  5. 【H264/AVC 句法和语义详解】(二):h264码流格式与NALU详解一

    上一篇中,我们站在句法元素(或称语法元素)的角度,介绍了H.264的句法和语义,和句法元素的分层结构.在这篇中,我们更进一步,从比特的角度出发,来探索h264码流的组成.通过这篇的学习,我们会初步具备 ...

  6. H264/AVC Hypothetical Reference Decoder(HRD)

    除了确保解码器能够处理264码流中的语法元素和序列参数外,确保编码序列"符合"解码器缓冲和处理能力的限制也很重要.这是通过定义HRD来处理的,HRD是一种虚拟缓冲算法,可以用来测试 ...

  7. mpeg4标准包含{xvid\divx,h264\avc}

    "MPEG-4由一系列的子标准组成,被称为部..... ............................ 第二部(ISO/IEC 14496-2):视讯:定义了一个对各种视觉信息(包 ...

  8. H264/AVC SEI和VUI

    Supplemental Enhancement Information(SEI)和Video Usability Information(VUI)是可以作为264码流的一部分被传输的参数.SEI和V ...

  9. H264/AVC 参考图像管理

    参考图像顺序 264中,已编码图像存储在编码器和解码器的参考缓冲区(DPB,解码图像缓冲区),并由相应的参考图像列表list0,以供帧间宏块的运动补偿预测使用.对B片预测而言,list0和list1分 ...

最新文章

  1. Python __dict__属性详解
  2. C基础(31——35)
  3. docker 构建错误 E: List directory /var/lib/apt/lists/partial is missing.-Acquire (13: Permission denied)
  4. java.lang.IllegalAccessError: org.apache.commons.dbcp.DelegatingPreparedStatement.isClosed()Z
  5. js修改style中某个属性_JS 和 CSS 交互的 5 种方法
  6. Tomcat配置及原理文章
  7. 云计算第二阶段shell脚本
  8. opengl 实时波形显示_OpenGL1------OpenGL概述
  9. WCF中因序列化问题引起的异常和错误。
  10. sum-ftp-w.sh
  11. Unity的序列化机制探索
  12. Unity的PackageManager面板不能用问题
  13. 萧风查询搜索软件 v1.1 下载
  14. 阿里云盾AliYunDun服务IO超高
  15. Video IP:Video_In_to_AXI4-stream
  16. HBuilderX 下载安装教程
  17. 笨拙的手指(寒假每日一题 1)
  18. Android动画之Interpolator(插值器)
  19. 【科普】“植物神经功能紊乱”如何诊断和治疗呢?
  20. macOS VirtualBox 安装步骤

热门文章

  1. ArcGIS土地利用数据制备、分析及基于FLUS模型土地利用预测实践技术
  2. [Shell]尚硅谷大数据技术之Shell--笔记(1)
  3. 磁盘格式化(创建文件系统)
  4. Inception in CNN
  5. 2021工程伦理参考答案
  6. 前端HTML5 颜色选择器 input[type = color]
  7. 使用DirectX打造游戏GUI界面(一)
  8. docker和vm不兼容遇到的坑
  9. 2022金属非金属矿山(露天矿山)安全管理人员考试题模拟考试题库及答案
  10. SGVision外观检测案例:污点、毛刺检测流程