网站首页 > 技术教程 正文
音视频领域里面,JPEG编码是最常用的图片编码格式。接下去几篇文章打算从JPEG图片编码开始到视频编解码,学习总结下音视频的编码原理、相关文件协议,现在让我们先进入jpeg编码。
一、JPEG有损编解码简介
如上图所示,为jpeg编解码的流程图。图片编码:离散余弦变换->量化->熵编码,图片解码:熵解码->反量化->反向离散余弦变换。
如上图所示,有损编码的数据处理过程。损失主要在量化阶段引入,由于量化不可逆。
二、图像分割
JPEG算法的第一步,图像被分割成大小为8X8的小块,这些小块在整个压缩过程中都是单独被处理的。
三、色彩空间转化
JPEG编码的第二步,做色彩空间转换,将输入待编码图片转成统一的色彩格式。所谓色彩空间,是指表达颜色的数学模型,比如我们常见的“RGB”模型,就是把颜色分解成红绿蓝三种分量,这样一张图片就可以分解成三张灰度图。数学表达上,每一个8X8的图案,可以表达成三个8X8的数据分别为R、G、B的矩阵,其中的数值的范围一般在[0,255]之间。在JPEG压缩算法中,需要把图案转换成为YCbCr模型,这里的Y表示亮度(Luminance),Cb和Cr分别表示绿色和红色的“色差值”。
为什么JPEG编码要使用YCbCr模型呢?对于人眼来说,图像中明暗的变化更容易被感知到,这是由于人眼的构造引起的。视网膜上有两种感光细胞,能够感知亮度变化的视杆细胞,以及能够感知颜色的视锥细胞,由于视杆细胞在数量上远大于视锥细胞,所以我们更容易感知到明暗细节。有损压缩首先要做的事情就是“把重要的信息和不重要的信息分开”,尽量保留重要信息,不重要的信息删减,达到压缩的目的。基于YCbCr色彩模型的特点,可以将亮度和色差分开表示。这样编码时可以针对人眼敏感的亮度分量着重处理,不敏感的色差分量做部分损失。
从上图看,对图片做YC分离可以明显看到,亮度图的细节更加丰富,人眼更加敏感。JPEG把图像转换为YCbCr之后,就可以根据数据的重要程度的不同,针对性地做不同的处理。
猜你喜欢
- 2025-01-12 H.265已落后!下一代视频技术实现重大突破
- 2025-01-12 AMD RX 6000显卡也赶上潮流:支持AV1视频编码
- 2025-01-12 Win11 原生支持,微软发布 DirectX 12 全新视频编码 API
- 2025-01-12 视频硬件编码更快但为什么都用软件编码?实测让你搞清楚如何选择
- 2025-01-12 Python实现Base64编码和解码的示例
- 2025-01-12 高通发布aptX Lossless编码,提供CD级蓝牙音质
- 2025-01-12 监控系统中解码器解码上墙操作方法
- 2025-01-12 “姚贝娜病逝”报道的“编码”与“解码”
- 2025-01-12 50个策划人必备的营销模型——编码/解码和用户决策理性/感性
- 2025-01-12 Python 中 base64 编码与解码
你 发表评论:
欢迎- 最近发表
-
- linux CentOS检查见后门程序的shell
- 网络安全工程师演示:黑客是如何使用Nmap网络扫描工具的?
- Linux中ftp服务修改默认21端口等(linux修改ftp配置文件)
- Linux系统下使用Iptables配置端口转发,运维实战收藏!
- 谈谈TCP和UDP源端口的确定(tcp和udp的端口号相同吗)
- Linux 系统 通过端口号找到对应的服务及相应安装位置
- 快速查找NAS未占用端口!Docker端口秒级排查+可视化占坑双杀技
- 【知识杂谈#2】如何查看Linux的(本地与公网)IP地址与SSH端口号
- 如何在Linux中查询 DNS 记录,这三个命令可谓是最常用、最经典的
- 【Linux系统编程】特殊进程之守护进程
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)