JPEG格式详解Baseline、Progressive的区别

在这里插入图片描述

文章目录

  • JPEG的简介
    • 压缩质量/压缩比率
    • 色彩空间
    • 基线和渐进
    • 子采样
    • 存储选项
  • 基线和渐进
    • 基线格式
    • 渐进格式:
  • 子采样
    • 4:4:4(无损)
    • 4:2:2
    • 4:2:0

JPEG的简介

JPEG(Joint Photographic Experts Group)是一种常见的图像压缩格式,它采用有损压缩方法以减小文件大小。在保存JPEG格式的图片时,有一些常见的选项和参数,它们可以影响图像的质量和文件大小。以下是一些常见的保存方式及其区别:

压缩质量/压缩比率

质量: JPEG图像可以以不同的质量级别保存,通常在0到100的范围内,其中0表示最差质量,100表示最佳质量。较高的质量级别通常会产生更大的文件大小,但图像质量更高。
压缩比率: 有些图像编辑软件使用压缩比率而不是质量级别。压缩比率越高,文件大小越小,但图像质量也相应降低。

色彩空间

JPEG支持不同的色彩空间,如RGB和YCbCr。通常情况下,RGB适用于彩色图像,而YCbCr适用于亮度和色度分离的图像,例如照片。选择适当的色彩空间可以在保持图像质量的同时降低文件大小。

基线和渐进

基线(Baseline): 这是标准的JPEG格式,图像一次性加载完整。适用于网络传输。
渐进(Progressive): 图像在加载时逐渐呈现,从模糊到清晰。适用于逐渐加载的环境,但文件大小可能会稍大一些。

子采样

YCbCr色彩空间中的色度分量(Cb和Cr)可以使用不同的子采样率。常见的子采样率包括4:4:4(无损)、4:2:2和4:2:0。4:2:0是最常见的,其中色度分量的水平和垂直分辨率都比亮度分量低,从而减小文件大小。

存储选项

一些软件可能提供额外的选项,如存储EXIF信息、ICC配置文件、缩略图等。这些选项通常不直接影响图像质量,但可能会影响文件大小和图像的其他方面。选择保存JPEG图像时,您需要权衡图像质量和文件大小之间的关系,并根据具体的用途选择适当的设置。

基线和渐进

基线格式

在基线格式下,图像一次性加载完整,从上到下一行一行地加载。每一行的加载过程是逐行的,整个图像将按照从上到下、从左到右的顺序加载。这就意味着,当您查看图像时,当速度慢时图像可能从上往下逐渐显示,但是图像一直是清晰的。

渐进格式:

在渐进格式下,图像以一种逐渐呈现的方式加载。一开始,您可能会看到一个模糊的图像,然后逐渐变得清晰。图像的加载是通过分层的方式完成的,从最粗糙的外观到最终的清晰图像。这样的加载方式使得在图像加载的早期阶段就能看到整体轮廓,而不需要等待整个图像加载完成。

子采样

YCbCr(Luma, Chroma Blue, Chroma Red)色彩空间是一种用于图像和视频处理的颜色表示方法,其中包含亮度(Y)和两个色度分量(Cb和Cr)。这种颜色表示方法的使用是为了更好地符合人眼对图像的感知,同时减小数据量。

子采样率涉及到对色度分量的采样方式,以降低文件大小。让我详细解释一下:

4:4:4(无损)

在这种子采样率下,亮度(Y)、蓝色色度(Cb)和红色色度(Cr)的水平和垂直分辨率都是相同的,没有任何采样。这意味着每个像素都有完整的亮度和色度信息,但同时也导致了较大的数据量。这是一种无损的子采样方式。

4:2:2

在4:2:2的子采样率下,亮度分量(Y)的水平分辨率和垂直分辨率与原图像相同,而色度分量(Cb和Cr)的水平分辨率减半。这意味着每两个像素共享一组色度信息。这种子采样方式相对于4:4:4减小了数据量,同时保留了相对较高的图像质量。

4:2:0

4:2:0是最常见的子采样率,尤其在视频和图像压缩中广泛使用。在这种子采样率下,亮度分量(Y)的水平和垂直分辨率与原图像相同,而色度分量(Cb和Cr)的水平和垂直分辨率都减半。这意味着每四个像素共享一组色度信息。这种方式可以显著减小数据量,同时在许多情况下对图像质量的影响相对较小。


结束语
Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/334766.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有些应用中不需要使用回原点指令

不是所有的轴运动控制,都一定要使用回原点指令来执行回原点 通过手动找到极限开关,然后往回走一段距离,也是一种方式,所谓的往回走的这段距离方便用于手动校准原点位置; 那使用原点指令回原点后,也可以走一…

【大厂算法面试冲刺班】day0:数据范围反推时间复杂度

常见算法的时间复杂度 规定n是数组的长度/树或图的节点数 二分查找:O(logn) 双指针/滑动窗口:O(n) DFS/BFS:O(n) 构建前缀和:O(n) 查找前缀和:O(1) 一维动态规划:O(n) 二维动态规划:O(n^2) 回溯…

Go采集1688网站数据对比商品价格

最近看了下多多和1688的一些商品价格,发现好多店铺都是无货源拿货一件发货,这就导致层层叠加价格翻了不知道几倍,真所谓多花钱办的事还是一样,因此,今天我就通过一个爬虫程序监控对应商品价格,了解行业龙头…

MCU、MPU、SOC简介

文章目录 前言一、MCU二、MPU三、SOC总结 前言 随着处理器技术的不断发展,CPU(Central Processing Unit)的发展逐渐出现三种分支,分别是MCU(Micro Controller Unit,微控制器单元) 和MPU(Micro Processor Unit,微处理器…

Java web设计:在线微友圈网站

项目背景 微友圈是一个基于Java Web开发的社交网络平台,旨在为用户提供一个轻松互动、分享生活和交流观点的在线社区。随着社交网络的普及,人们更加渴望与朋友、家人以及其他志同道合的人保持联系并分享彼此的生活点滴。微友圈的目标是打造一个简洁、高…

什么情况?DDD 中的每个任务都执行了两次?

最近在使用 COLA 框架自带的异步任务时,发现每次执行异步都执行了两次,如果一些没有做幂等的接口,这样是会有问题的,比如入库操作之类的,就会造成数据重复入库,造成严重 bug。 带着疑惑,开始了…

小巧且兼具高性能的小模型 TinyLlama 等

TinyLlama-1.1B 小模型在边缘设备上有着广泛的应用,如智能手机、物联网设备和嵌入式系统,这些边缘设备通常具有有限的计算能力和存储空间,它们无法有效地运行大型语言模型。因此,深入探究小型模型显得尤为重要。 来自新加坡科技…

搜维尔科技:第九届元宇宙数字人设计大赛作品规范解读!

作品提交 参赛小组需要将作品上传至百度网盘,并将分享链接发送至frankaxis3d.cn邮箱。邮寄格式如下: 邮件标题:作品名称元宇宙数字人设计大赛作品 邮件内容标明:学校名称、院系名称、作品名称、作者名称、联系电话及指导老师名…

Python 使用input函数从键盘输入数据

在Python中,input()函数可以从键盘获取用户的输入数据。当我们使用input()函数时,会暂停程序的执行,等待用户输入数据,并将用户输入的数据作为字符串返回。 如: name input("请输入你的姓名:"…

C#,入门教程(12)——数组及数组使用的基础知识

上一篇: C#,入门教程(11)——枚举(Enum)的基础知识和高级应用https://blog.csdn.net/beijinghorn/article/details/123917587 数组是一种数据集合,是一组完全相同的、按顺序存放的数据。 需要记住数组的几个特征&…

阿里云 WindowsServer 使用之 配置 SQL Server 允许远程连接

阿里云 WindowsServer 使用之 配置 SQL Server 允许远程连接 第一步:安装 SQL Server 数据库 这是一个很详细的安装教程,可以参考一下 安装SQL Server详细教程 需要注意:安装实例时,建议在‘身份验证模式’直接选择“混合模式”…

2023年阿里云云栖大会:前沿技术发布与未来展望

在2023年的阿里云云栖大会上,我见证了云计算和人工智能领域的又一历史性时刻。这次大会不仅是对未来科技趋势的一次深入探索,更是阿里云技术实力和创新能力的集中展示。 首先,千亿级参数规模的大模型通义千问2.0的发布,无疑将人工…