H.264/AVC视频编解码技术详解 第一章 视频信息与压缩编码

H.264/AVC视频编解码技术详解系列笔记 是对 H.264/AVC视频编解码技术详解 课程的学习

文章目录

    • 人与世界的交互
    • 视频信号的表示方法
    • 视频压缩编码
      • 视频信息为什么可以被压缩?
      • 视频压缩编码的分类:
      • 视频压缩编码的基本技术

人与世界的交互

从远古时代开始,人类就在不断为适应环境、改造环境而艰苦斗争。
人类通过嗅觉、触觉、听觉、视觉等来适应社会,而视觉尤为重要,后来人们希望用更直观的形式记录所看到的东西,因此有了象形文字到现代文字的演变,以及壁画到绘画、照片、视频的演变。

视频通过每一帧的图像表达信息,视频包含的音频可以提供大量信息,视频通过图像的运动、场景的变换提供信息,视频信息是最接近人的直观体验的信息表达方式,是最高效的信息记录方式。

视频信号的表示方法

在真实的世界中,视频影像处理的是模拟信号,为了适应现在的计算机,模拟的信号必须转换成数字格式,才能进行下一步的传输和处理。

在数字格式的视频信号中,组成视频的基本结构是一帧帧连续而关联的图像。组成每一帧图像的基本结构是成平面紧密排列的像素。每一个像素代表图像中一个彩色的点,由颜色的三基色分别取不同的分量构成:
R:红色分量
G:绿色分量
B:蓝色分量

RGB颜色空间:

  1. RGB颜色空间常用于显示器系统
  2. RGB颜色空间由红绿蓝三基色构成,每一个像素至少有三个颜色分量构成
  3. RGB三个分量每一个分量以1字节表示,则可以表示成256*256*256种不同的颜色,1字节=8bit,2^8=256
  4. 常见的图像格式如位图(bmp)格式以RGB形式保存

YUV颜色空间

  1. 实际的编解码等视频处理中,YUV格式比RGB格式更为常用
  2. YUV格式中,一个像素分别用亮度和色度分量表示,每一个像素由一个亮度分类Y和两个色度分量U、V组成
  3. YUV格式中的亮度与色度分量可以与表示的像素一一对应,也可以对色度分量的数据进行采样,即色度分量少于亮度分量,这样处理的原因是因为人的感官对亮度信息的敏感度远高于对色度信息的敏感度
  4. YUV格式的优势是,可以减少色度分量的采样率,这样既可以不对图像造成太大的影响,又可以减少数据的存储量,还可以兼容黑白和彩色的显示设备。显示设备是黑白:将色度分量去掉,只需要亮度分量即可。
  5. YUV图像的常见色度采样方式有:4:4:4,4:2:2,4:2:0(最常用)

4:4:4
在这里插入图片描述
4:2:2:即每两个像素共用一个U分量一个V分量
在这里插入图片描述
4:2:0:每四个像素只对应了一个U分量一个V分量
在这里插入图片描述

视频压缩编码

编码:将信息按照一定规则使用某种形式的码流表示与传输
常需要编码的信息:文字、语音、视频、控制信息等

视频编码的主要目的:数据压缩

  • 动态图像的RGB/YUV表示,数据量极大
  • 存储空间和传输带宽完全无法满足像素格式视频保存传输的要求

图像的每个像素的三个颜色分量:RGB,每个颜色分量以8bit保存,每像素至少需要3bytes

分辨率1280*720的一帧图像:3byte*1280*720b≈2.64Mb

25frame/sec的视频,所需码率(码率:视频码率就是数据传输时单位时间传送的数据位数,一般单位是kbps即千位每秒):1280*720*8*3*25=553Mb/sec,该码率已经超过传输带宽的极限了,如果是分辨率更大的视频,则其码率会更大

因此,我们需要对视频进行压缩。

视频信息为什么可以被压缩?

  1. 时间冗余:视频相邻的两帧之间内容相似,存在运动关系
  2. 空间冗余:视频的某一帧内部的相邻像素存在相似性
  3. 编码冗余:视频中不同数据出现的概率不同
  4. 视觉冗余:观众的视觉系统对视频中不同的部分敏感度不同

视频压缩编码的分类:

  • 基于波形的编码【方法更主流】
  1. 特点:编码的数据针对每一帧图像包含的像素值,即采样像素的波形
  2. 方法:利用像素之间在时间和空间上的相关性,采用预测编码和变换编码结合的基于块的混合编码方法
  3. 代表:MPEG-1,MPEG-2,H.264,H.265等
  • 基于内容的编码【太复杂】
  1. 特点:将视频帧分成对应不同物体的区域,分别对其编码
  2. 方法:针对不同物体的形状、运动和纹理进行编码
  3. 代表:MPEG-4

视频压缩编码的基本技术

  • 预测编码:传输预测像素值与实际像素值之差,利用时间或空间相邻像素之间较强的相关性
  1. 帧内预测:预测值与实际值位于同一帧内,用于消除图像的空间冗余
  2. 帧间预测:实际值位于当前帧,预测值位于参考帧,用于消除图像的时间冗余,相比帧内预测压缩率更高,由于帧间预测参考了其他帧的数据,因此,不能独立解码,所以只能在获取参考帧数据之后,才能重建当前帧
  • 变换编码:对视频造成有限的可以容忍的损失来获取相对更高的编码效率,造成信息损失的部分,就在其变换量化的部分,在进行量化之前,先将像素由空间域变换到频域,针对变换系数进行编码
  1. 可用于视频变换编码的正交变换:DCT变换、K-L变换
  • 熵编码:熵编码用于消除视频信息中的冗余,由于信源中每一个符号出现的概率并不一致,导致使用同一长度的编码表示符号可能会造成浪费,通过熵编码,利用信源的统计特性进行压缩编码,可消除由于符号概率导致的冗余
  1. 常用方法:变长编码、算数编码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446615.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

英语口语 week13 Monday

英语文章 Competitions between businesses can be very aggressive in contemporary society. However, the competition for talented personnel is thought to be the key to business competition. Wise employers consider their employees as the company’s core asset…

文件系统的由来

启蒙篇 文件的由来 磁盘上保存的是一对十六进制的数据,如何切分数据形成不同的文件,也就是如何确定一个文件的起始和终止位置?将相关数据打包在一起形成一个文件,比如从什么位置开始到什么位置结束,是一张图片、一段…

英语口语 week13 Wednesday

英语文章 Despite his extraordinary success in writing fairy tales,Hans Christian Andersen preferred to living in a way of simplicity and frugality. He often wore an old hat when he went out. One day, a well-dressed man stopped Andersen on the street, inte…

操作系统 IO管理

学什么? I/O input / output 输入:鼠标 键盘 手柄 触摸屏 摄像头 MTC 扫描仪输出:显示器 打印机 耳机 音响 既是输入也是输出:光驱 网卡 磁盘 U盘硬件:设备如何把数据返回到PC机,但是不同种类的设…

c++面向对象高级编程 学习九 pointer-like classes

c的class设计出来有两种形式,一种像指针,一种像函数 智能指针里包含普通指针,要写 * 和 -> 的函数 sp->method(); //sp-> 经 T* operator*() const 函数,得到px //由于 箭头符号(->)作用下去…

const int *a和int*const a 的区别详解

补充知识 “const int i”与“int const i”之间的区别对变量来说,const 关键字可以限定一个变量的值不允许改变,从而保护被修饰的东西,防止意外修改,在一定程度上可以提高程序的安全性和可靠性。 代码 const int * int i1 10…

c++面向对象高级编程 学习十 function-like classes

本节是设计一个class,使它的行为像一个函数。 如果一个东西能接受小括号()操作符,那么这个东西就称之为函数,或像函数的东西。 下图为三个函数对()的重载,这三个类均为像函数的类,它们可接受()操作符, 标…

英语口语 Week14 Monday

英语文章 Thailand, a country in Southeast Asia with an area of about 514,000 square kilometers, has been increasingly prosperous in its tourism industry in the past few decades. Its capital is Bangkok and its major languages are Thai, Chinese and English.…

c++面向对象高级编程 学习十一 类模板、函数模板、成员模板

namespace经验谈&#xff1a; 团队中函数或类的名字可能会冲突&#xff0c;因此使用namespace进行区分。 类模板&#xff1a; template<typename T> 函数模板&#xff1a; template<class T>&#xff0c;此处class可改成typename 函数模板在使用的时候&#xff0…

操作系统面试 总结

以下文章来源于程序员cxuan &#xff0c;作者cxuan 原文链接什么是操作系统 操作系统是管理硬件和软件的一种应用程序。操作系统是运行在计算机上最重要的一种软件&#xff0c;它管理计算机的资源和进程以及所有的硬件和软件。它为计算机硬件和软件提供了一种中间层&#xff…

英语口语week 14 Thursday

英语文章 A couple decided to go out to celebrate their wedding anniversary, so they called a babysitter. When the babysitter arrived, the two children had already been asleep. The babysitter soon got bored and went to the kitchen where she blended some wh…

c++面向对象高级编程 学习十二 模板

模板特化&#xff1a; 模板是一种泛化的形式&#xff0c;特化是将参数类型进行指定&#xff0c;写出特化的版本&#xff0c;当在调用下图cout<<hash()(1000);的时候&#xff0c;由于特化中有struct hash{ }的版本&#xff0c;因此会直接调用特化部分。 模板偏特化&…

英语口语 week14 Friday

英语文章 Shopping is taking place every second. However, the prices of the same goods may differ from store to store. A name-brand dress may cost several hundred pounds at a boutique, but only half the price in a discount store or a big chain store. Moreo…

数据结构 树

定义 树是节点的优先集合度&#xff1a;孩子的数量&#xff0c;度为0 就是终端节点&#xff0c;不为零就是根节点有序树&#xff1a;有顺序&#xff0c;不可以替换无序树&#xff1a;无顺序&#xff0c;可以替换深度 和 树的深度相反&#xff0c;第一层深度为1 树的深度为 3 二…

英语口语 Week15 TuesDay

英语文章 One day, when Bella was doing sports in the school yard, the squirrel fled out of her sleeve. Threading its way through a considerable number of people, the squirrel disappeared in the distance After a sequence of movements, it hopped onto the ar…

c++面向对象高级编程 学习十四 引用

文章目录referencereference的常见用途reference 变量有三种形式&#xff1a;值&#xff0c;指针&#xff0c;引用 int x0; //值 int* p&x;//指向整型的指针&#xff0c;地址&#xff0c;指针在之后的程序中可以指向其他变量 int& rx;//引用&#xff0c;此处表示 r代…

google浏览器 隐藏功能开启

网址 chrome://flags/ 1&#xff0c;多线程下载 2&#xff0c;暗黑模式3&#xff0c;标签缩略图4&#xff0c;PWA 渐进式web应用 网页即应用5&#xff0c;阅读模式&#xff0c;排除广告&#xff0c;点击阅读模式去除干扰chrome://net-internals6&#xff0c;解决有问题的代理IP…

英语口语Week 15 Wednesday

英语文章 Accomplishing the task assigned by the teacher; Julia rushed out. Squatting at the gate and playing with the squirrel, Bella waved at the sight of Julia and yelled out here" . Julia ran quickly towards them, pointed at the squirrel and asked…

c++面向对象高级编程 学习十五 组合继承关系下的构造和析构

文章目录继承关系组合关系继承和组合继承关系 构造由内而外&#xff0c;析构由外而内&#xff0c;内即是父类 组合关系 A拥有B&#xff0c; 构造由内而外&#xff0c;析构由外而内&#xff0c;内即是B 继承和组合 构造和析构顺序如图&#xff1a;

英语口语Week16 Wednesday

英语文章 Recently my friend received a gift from her boyfriend - a very expensive bracelet. But the substance of her response left us in astonishment - she didn’t attend to the exquisiteness(of the gift and wanted to return it to him In terms of salary, …