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

音视频-什么是帧,视频为什么要编码

        帧就是动画中的一张图片,这相当于电影胶片上的一个镜头,一帧就是一幅静止的画面,连续的帧就形成了我们看到的动画和视频。

        但是直接采集后没经过处理的视频,其实是没有办法真正在互联网上进行传输的。以一张1920乘1080的图片为例,要传输这张图片就需要1920x1080x3x3,也就是47mb。其中8比特等于1字节,三代表的是RGB。

        如果现在要传输一个每秒30帧的视频,每一帧都是这样的图片。那么一秒就需要传输30x47mb,等于1.4Gb的数据。你所需要的带宽就是1.4GBPS。但是家用千兆带宽,所以要在日常传输这么大的视频几乎不太现实。视频必须经过压缩后才能进行正常传输,而这个压缩的过程就是视频编码。

        不过由于输入到视频编码器的视频数据必须是YUV格式的,因为只有使用YUV格式才能极大的去除冗余信息,最大限度的节省网络带宽。所以如果目前的数据是RGB格式的,只需要通过算法将RGB转换为YUV格式,准备好YUV视频数据后,就该进入编码阶段。

        现如今视频编码有很多标准,比如H.264,AV1还有VPS。之所以有这么多标准,一方面是有人研究出了更高效的编码算法,另一方面也是由于新的视频互动场景不断涌现,需要更好的编解码标准来支持,而目前最主流的编解码器还是H264。

        H264视频编码分为五个模块,帧类型分析、帧内/帧间预测、变换+量化、滤波,还有上电码。

        它们都是什么作用呢?首先YUV格式的视频数据会先经过帧类型分析模块确定当前这一帧是属于什么类型。视频帧会分为I、P、B3种帧。

        你可以把 “I帧” 理解为电影中的一段连续影像,里面包含了所有的图像信息。只要影像里的画面没有出现太多变化,基本不会出现新的“I帧”。如果在视频中画面只是出现了一些比较小的变化,那么这些变化的信息都会放在P/B帧中。针对性分析模块就是根据码流占用来判断真类型。

        接着这些帧会再经过帧类与帧间预测以及变换量化进一步得到压缩。由于这几步的处理可能会出现块效应,比如马赛克就是块效应的一种表现,块效应会影响我们的观看感受。

        为了避免这种情况,优化视频权让这些数据还会通过滤波模块。经过了压缩优化的处理,这些数据已经可以被传输出去了。这时上电码模块启动了,它会把当前的像素值转换压缩为二进制码流。最终解码器会输出这些适合传输的二进制码流进入网络传输。将这些数据传输到你的手机上时,解码器会通过熵解码、反量化、反变换等一系列操作把图像呈现出来,这时候你就看到了对方的视频画面。


http://www.kler.cn/a/417079.html

相关文章:

  • 通讯录管理小程序
  • Go语言构建微服务:从入门到实战
  • VLLM历次会议(2024.1)
  • DeepSeek为何能爆火
  • 使用WebStorm开发Vue3项目
  • graylog初体验
  • 从 HTML 到 CSS:开启网页样式之旅(四)—— 长度单位与显示模式全解析
  • MFC 分段记录时间log类
  • 论文阅读:Dual-disentangled Deep Multiple Clustering
  • HCIE:详解OSPF,从基础到高级特性再到深入研究
  • 剧本字幕自己看
  • 鸿蒙系统(harmony)支持Android应用的双框架技术架构分析
  • 数据湖的概念(包含数据中台、数据湖、数据仓库、数据集市的区别)--了解数据湖,这一篇就够了
  • 实时数据开发|Flink实现数据输出--DataSinks操作
  • 实现PDF文档加密,访问需要密码
  • vue.js学习 (day 15)
  • 量化交易系统开发-实时行情自动化交易-8.2.发明者FMZ平台
  • rabbitMq两种消费应答失败处理方式
  • 制作苹果IOS.APP所使用步骤和方法-有步骤视情况待完善
  • 三维渲染中顺序无关的半透明混合(OIT)(二——Stencil Route)
  • 电脑文件自动提取器介绍
  • WEB攻防-通用漏洞XSS跨站绕过修复http_onlyCSP标签符号
  • 计算机毕业设计Python异常流量检测 流量分类 流量分析 网络流量分析与可视化系统 网络安全 信息安全 机器学习 深度学习
  • 家校通小程序实战教程04教师管理
  • 【DB】根据某字段生成序号
  • 一万台服务器用saltstack还是ansible?