前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >H264系列--压缩编码必要性和冗余

H264系列--压缩编码必要性和冗余

作者头像
小蚂蚁与大象
发布2020-12-28 14:34:46
1.2K0
发布2020-12-28 14:34:46
举报
文章被收录于专栏:构建FFmpeg Android播放器

Android FFmpeg专题结构

视频编码必要性

视频是由一帧帧的图片组成. 以一个时长 1小时,帧率为30fps, 分辨率为1080P的视频举例, 一帧未压缩的图片(yuv420)大小为

视频总大小为

可见未压缩编码的视频是非常大的

为何能进行压缩

44.png

45.png

视频是连续的图像序列,由连续的帧构成,一帧即为一幅图像。由于人眼的视觉暂留效应,当帧序列以一定的速率播放时,我们看到的就是动作连续的视频。可见视频压缩编码可以分成帧间压缩帧内压缩.

  • 帧内预测压缩,解决的是空域数据冗余问题。
  • 帧间预测压缩(运动估计与补偿),解决的是时域数据冗徐问题。

视频之所能被压缩,也是因为有冗余信息. 冗余信息具体分为:

  • 空间冗余:图像相邻像素之间有较强的相关性
  • 时间冗余:视频序列的相邻图像之间内容相似
  • 编码冗余:不同像素值出现的概率不同
  • 视觉冗余:人的视觉系统对某些细节不敏感
  • 知识冗余:规律性的结构可由先验知识和背景知识得到

冗余

(具体原理比这个下面介绍的复杂多, 这里只是简单介绍,帮助理解概念)

  • 空间冗余 我们常见到的jpeg图片, 就是一种对静态数据的压缩,可以理解为视频的帧内压缩. 一幅图像相邻像素间往往存在着空间连贯性.如下图

空间冗余.png

对于图片背景,相邻像素有很多是相同的.

  • 时间冗余

视频一般由时间轴区间内一组连续画面组成,其中的相邻帧往往包含相同的背景和移动物体,只不过移动物体所在的空间位置略有不同,所以后一帧的数据与前一帧的数据有许多共同的地方,这就称为时间冗余 如下图,背景部分有很多的相同像素,有些像素只是坐标发生了变化,可以通过运动矢量,只记录两帧间的差异。

74.jpg

  • 编码冗余 首先介绍一下等长编码和变长编码:可以简单地理解为不同像素占用的空间都是一样的为等长编码,不同像素占用的空间不一样的为变成编码。可能听到比较多的变长编码就是哈夫曼编码 一幅图像中不同像素出现的概率是不同的。对出现次数比较多的像素,用少的位数来编码。对出现次数比较少的像素,用多的位数来编码,能够减少编码的大小。
  • 视觉冗余 利用人的视觉系统对某些细节不敏感。压缩视觉冗余度就是去掉那些相对人眼而言是看不到的或可有可无的图象数据
  • 知识冗余 有许多图像的理解与某些基础知识有相当大的相关性。例如,人脸的图像有固定的结构,嘴的上方有鼻子,鼻子的上方有眼睛,鼻子位于正面图像的中线上等等。这类规律性的结构可由先验知识和背景知识得到,我们称此类冗余为知识冗余。根据已有知识,对某些图像中所包含的物体,可以构造其基本模型,并创建对应各种特征的图像库,进而图像的存储只需要保存一些特征参数,从而可以大大减少数据量。

有损压缩和无损压缩

参考: https://zhuanlan.zhihu.com/p/214376735 https://blog.csdn.net/xiechan2834/article/details/96328249

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 视频编码必要性
  • 为何能进行压缩
    • 冗余
    • 有损压缩和无损压缩
    相关产品与服务
    文件存储
    文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档