当前位置: 首页 > news >正文

01-编码-H264编码原理

1.整体概念
编码的含义就是压缩,将摄像头采集的YUV或RGB数据压缩成H264。
压缩的过程就是去除信息冗余的过程,一般视频有如下的冗余信息。
(1)空间冗余:在同一个画面中,相邻的像素点之间的变化很小,因而可以用一个特定大小的矩阵来描述相邻的这些像素。
(2)时间冗余:相邻的画面变化很小,因而可以记录变化的部分代替记录整个画面,从而减少空间的使用。
(3)编码冗余:对出现概率高的像素分配尽量少的字节,对出现概率低的像素分配尽量多的字节。
(4)视觉冗余:丢掉人眼不敏感的像素颜色,减少存储空间使用而不影响观看效果。
(5)知识冗余:根据已有知识,对图像或物体构造其基本模型,并创建对应各种特征的图像库,图像的存储只保存一些特征参数。

H264编码:帧内预测,帧间预测,变化量化,熵编码,NAL层编码。

YUV数据进行编码后,会生成I帧,P帧和B帧,下面对这三种帧进行描述。
I帧:关键帧,采用帧内压缩技术生成,I帧可以理解成一个完整的画面。
P帧:采用帧间压缩技术,又叫向前参考帧,P帧表示的是这一帧与前一帧之间的差别。
B帧:采用帧内压缩技术,双向参考帧,记录本帧与前后帧的差别。
笔者在项目中接触B帧并不多,不对此帧作太多研究。
GOP:隔多少帧会出现一个I帧
帧率:每一秒中包含有多少帧

H264压缩最主要的是帧内压缩(

http://www.lryc.cn/news/223963.html

相关文章:

  • RxJava/RxAndroid的操作符使用(二)
  • 【C语法学习】20 - 文件访问顺序
  • Etcd 常用命令与备份恢复
  • 获取任意时间段内周、季度、半年的二级联动
  • 前端面试系列之工程化篇
  • 京东按关键词搜索商品列表接口:竞品分析,商品管理,营销策略制定
  • Microsoft Dynamics 365 CE 扩展定制 - 9. Dynamics 365扩展
  • 多篇论文介绍-Wiou
  • Django介绍,安装,创建
  • Java通过javacv获取视频、音频、图片等元数据信息(分辨率、大小、帧等信息)
  • flask和fastapi的区别以及demo实现
  • python特殊循环队列_队中元素个数代替队尾指针
  • 什么是观察者模式?用 Python 如何实现 Observer(观察者或发布订阅)对象行为型模式?
  • pytorch直线拟合
  • 相机传感器
  • 大语言模型的关键技术
  • uniapp使用vur-cli新建项目并打包
  • 后台管理系统解决方案-中大型-Vben Admin
  • 通俗理解repartition和coalesce区别
  • 优雅设计之美:实现Vue应用程序的时尚布局
  • 05预测识别-依托YOLO V8进行训练模型的识别——对视频中的目标进行跟踪统计
  • Android Studio(意图Intent)
  • Bean作用域
  • YOLOV5----修改损失函数-SE
  • Mybatis(一)
  • 使用Go构建一个Postgres流平台
  • QT基础与细节理解
  • 【MySQL数据库】 六
  • 微信总提示空间不足怎么办?三个方法随心选!
  • C语言每日一题(27)链表中倒数第k个结点