《新一代视频压缩码标准-H.264_AVC》读书笔记1

摘要

第一章 绪论

正文

1、一般而言,视频信号信息量大,传输网络所需要的带宽相对较宽。例如,一路可视电话或会议电视信号,由于其活动内容较少,所需带宽较窄,但要达到良好质量,不压缩约需若干 Mbps,压缩后需要 384Kbps;又如,一路高清晰度电视信号( HDTV),由于其信息量相当巨大,不压缩需 1Gbps,利用 MPEG-2 压缩后,尚需 20Mbps。

2、视频压缩编码目标

视频信号由于信息量大,传输网络带宽要求高,就像一辆庞大的货车只有在宽阔的
马路上才能行驶一样。于是出现一个问题:能否将视频信号在传送前先进行压缩编码,即进行视频源压缩编码,然后在网络上进行传送,以便节省传送带宽和存储空间。这里有两个要求:
    1) 必须压缩在一定的带宽内,即视频编码器应具有足够的压缩比;
    2) 视频信号压缩之后,应保持一定的视频质量。这个视频质量有两个标准:一个为主观质量,
由人从视觉上进行评定;一个为客观质量,通常用信噪比( S/N)表示。如果不问质量,一味地压缩,虽然压缩比很高,但压缩后严重失真,显然达不到要求;反之,如只讲质量,压缩比太小,也不符合要求。

3、帧内预测编码

众所周知,一幅图像由许多个所谓像素的点组成,如图 1.2 中的“O”表示一个像素,大量的统计表明,同一幅图像中像素之间具有较强的相关性,两个像素之间的距离越短,则其相关性越强,通俗地讲,即两个像素的值越接近。换言之,两个相邻像素的值发生突变的概率极小, “相等、相似或缓变”的概率则极大。

于是,人们可利用这种像素间的相关性进行压缩编码。例如当前像素 X(设为立即传送的像素)可用前一个像素 a 或 b、 c,或三者的线性加权来预测。这些 a, b, c 被称为参考像素。在实际传送时,把实际像素 X(当前值)和参考像素(预测值)相减,简单起见传送 X-a,到了接收端再把( X-a)+a=X,由于 a 是已传送的(在接收端被存储),于是得到当前值。由于 X 与 a 相似,( X-a)值很小,视频信号被压缩,这种压缩方式称为帧内预测编码。
    不仅如此,还可利用图 1.3 所示的帧间相关性进行压缩编码。由于邻近帧之间的相关性一般比帧内像素间的相关性更强,压缩比也更大。
    由此可见,利用像素之间(帧内)的相关性和帧间的相关性,即找到相应的参考像素或参考帧作为预测值,可以实现视频压缩编码。

4、变换编码

5、视频编码系统的基本结构

由图 1.5 可见,视频编码方法与可采用的信源模型有关。如果采用“一幅图像由许多像素构成” 的信源模型,这种信源模型的参数就是每个像素的亮度和色度的幅度值。对这些参数进行压缩编码技术称为基于波形的编码。如果采用一个分量有几个物体构成的信源模型,这种信源模型的参数就是各个物体的形状、纹理和运动。对这些参数进行压缩编码的技术被称为基于内容的编码

由此可见,根据采用信源模型,视频编码可以分为两大类,基于波形的编码和基于内容的编码。它们利用不同的压缩编码方法,得到相应的量化前的参数;再对这些参数进行量化,用二进制码表示其量化值;最后,进行无损熵编码进一步提高码率。解码则为编码的逆过程。

6、基于块的混合编码法

基于波形的编码采用了把预测编码和变换编码组合起来的基于块的混合编码方法。

为了减少编码的复杂性,使视频编码操作易于执行,采用混合编码方法时,首先把一幅图像分成固定大小的块,例如块 8×8(即每块 8 行,每行 8 个像素)、块 16×16(每块 16 行,每行 16 个像素)等等,然后对块进行压缩编码处理。

H.264/H.261/H.263/MPEG-1/2/4 都采用了基于块的混合编码法,都属于基于波形的编码。

时间: 2024-08-05 11:13:17

《新一代视频压缩码标准-H.264_AVC》读书笔记1的相关文章

《android开发艺术探索》读书笔记(五)--动画

接上篇<android开发艺术探索>读书笔记(五)--Drawable No1: 自定义动画:派生一种新动画只需要继承Animation这个抽象类,然后重写它的initialize和applyTransformation方法,在initialize方法中做一些初始化工作,在applyTransformation中进行相应的矩阵变换即可,很多时候需要采用Camera来简化矩阵变换的过程. No2: 属性动画PropertyAnimation 补间动画TweenAnimation 帧动画Frame

《android开发艺术探索》读书笔记(十三)--综合技术

接上篇<android开发艺术探索>读书笔记(十二)--Bitmap的加载和Cache No1: 使用CrashHandler来获取应用的crash信息 No2: 在Android中单个dex文件所能够包含的最大方法数为65536,这包含Android FrameWork.依赖的jar包以及应用本身的代码中的所有方法. No3: 使用multidex来解决方法数越界 apply plugin: 'com.android.application' android { compileSdkVers

《android开发艺术探索》读书笔记(十五)--Android性能优化

接上篇<android开发艺术探索>读书笔记(十四)--JNI和NDK编程 No1: 如果<include>制定了这个id属性,同时被包含的布局文件的根元素也制定了id属性,那么以<include>指定的id属性为准 No2: 绘制优化 1)onDraw中不要创建新的局部对象 2)onDraw方法中不要做耗时的任务 No3: 内存泄露优化 场景一:静态变量导致的内存泄露: 如果静态变量持有了一个Activity,会导致Activity无法及时释放. 解决办法:1使用Ap

&lt;王二的经济学故事&gt;读书笔记

不是简单地用价格把供需弄平衡就完事了,座位分配给谁同样重要 一个成功的社会必须要有成功的人,必须要给成功的人应得的回报 需求曲线向下倾斜,价格越高需求越少 先来的都是那些时间最不值钱的 无论收入分配差距的根源是什么,收入分配差距的拉大,在一个市场经济的环境下,必然会造成富人对穷人的挤出效应,特别是在那些供给相对有限而需求相对刚性的瓶颈部门. 一个国家只能由一个公共财政体系,而需要服务的却是10多亿状况非常不同的老百姓 没有工资自然不用缴收入所得税,而且,自己一家的开销可以做成公司成本,从而降低公

《Android开发艺术探索》读书笔记之Activity的生命周期

两种不同情况下的Activity生命周期 (1)典型情况下的生命周期 指在有用户参与的情况下,Activity所经过的生命周期的改变. (2)异常情况下的生命周期 指Activity被系统回收或者由于当前设备的Configuration发生改变重而导致Activity被销毁传重建. 看看官方文档的Activity生命周期图 注意以下几点: (1)onstart()和onResume()从实际使用过程来说差不多,但是onstart()的时候Activity虽然可见啦但是还在后台,onResume(

《android开发艺术探索》读书笔记(八)--WindowManager

No1: Window是一个抽象类,它的具体实现是PhoneWindow.创建一个Window是很简单的事,只需要通过WindowManager即可完成. WindowManager是外界访问Window的入口,Window的具体实现位于WindowManagerService中,WindwoManager和WindowManagerService的交互时一个IPC过程. Android中所有的视图都是通过Window来呈现的,因此Window实际是View的直接管理者. 单机事件由Window

《艺术的故事》-读书笔记1

1.关于艺术家们画的不够逼真的作品 毫无疑问,现代艺术家们有足够的知识作出更逼真的作品,因此,当我们看到一副画画的不够正确时,首先应该考虑两件事,一件事是艺术家是否无端地更改了他所见的事物 的外形,另一件事是除非已经证明我们的看法正确而画家是错的,否则就不能指责一幅画画的不正确.一幅作品不够正确的地方也许正是了解它的钥匙. 2.关于什么是美?为何美?如何创造美?也许很难回答,但是美学感受却是可以通过对美好事物的不断观赏,分析来提高的. 3.知之为知之,不知为不知,是知也. 注:本文观点为<艺术的

Unix编程艺术读书笔记(一)

 Unix编程艺术读书笔记(一)这本书是一位面试官告诉我的,很感谢他的指点,关于面试的详细过程,我想以后再写,当然我也意识到自己的不足,一方面是面试的技巧,还有一方面就是学习的方法.阅读这本书很享受,加上之前的积累,一些疑惑,还有一些基础的不足,在这本书里找到了归宿. 下面,一起来享受这本书的精华吧 Unix诞生与1969年,那时候我们还在闹文革吧,可一个可以改变21世纪甚至更远的未来的操作系统问世,至少现在的Linux是基于Unix的设计哲学.Unix是唯一一个在不同种类的计算机,众多厂商

Javascript Dom编程艺术(第2版)读书笔记

Javascript Dom编程艺术这本书我看的是第2版的,真心觉得这本书不错,它将DOM编程的一些基本原则,及如何让Javascript代码在浏览器不支持的情况下,或浏览器支持了Javascript但用户禁用它的情况下做到平衡退化,让最基本的操作仍能顺利完成,以及如何让结构与样式分享做到真正的渐近增强叙述得很清楚,也很容易理解接受.我也是看了这本书之后,才对代码优化,结构,行为,样式有了进一步的加深理解. Javascript Dom编程艺术(第2版)读书笔记,布布扣,bubuko.com

Javascript DOM 编程艺术读书笔记16/04/01

愚人节快乐 开始用webstorm了,随着学习深入,代码越来越长,因为不借助ide还真是挺难的 今天发现了一个严重的误区,text和textNode是完全不同的两个概念,之前没有特别注意,写代码很容易跳过createTextNode直接用parentNode.appendChild(text) 单独拎出来晒一晒,以后引以为戒 Javascript DOM 编程艺术读书笔记16/04/01