网站首页 > 技术教程 正文
音视频领域里面,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 编码与解码
你 发表评论:
欢迎- 08-06linux 和 windows文件格式互相转换
- 08-06谷歌 ChromeOS 已支持 7z、iso、tar 文件格式
- 08-06Linux下比较文件内容的6种方法
- 08-06文件格式及功能汇总
- 08-0610个Linux文件内容查看命令的实用示例
- 08-06Linux-如何区分不同文件类型
- 08-06Zabbix技术分享——监控windows进程资源使用情况
- 08-06Linux系统卡顿?学会ps命令这三招,轻松定位问题进程
- 最近发表
- 标签列表
-
- 下划线是什么 (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)
本文暂时没有评论,来添加一个吧(●'◡'●)