读数据压缩入门笔记09_多媒体数据压缩

news2024/9/23 13:25:28

 

1. 压缩分类

1.1. 多媒体数据压缩(media-specific compression)

1.2. 通用压缩(general purpose compression)

2. 有损压缩算法

2.1. 为了使数据压缩得更小,可以牺牲多媒体的质量这样的数据转换

2.2. 针对特定的多媒体文件

2.2.1. 针对图像文件的算法就不太适用于音频文件

2.3. 针对内容类型

2.3.1. 灰度图像与全彩图像使用的压缩算法不同

2.4. 有损压缩工具通常会被首先应用,以减少数据的动态变化范围,从而为进一步的无损压缩做准备

2.5. 有损压缩工具其实有无限多种,选择哪一种取决于需要处理的数据类型、你的需求以及用户愿意容忍多大范围的失真

3. 一图胜千言

3.1. 图像是通过二维网格中的像素来显示的,这些像素表示的是图像本身的颜色

3.2. 一张1024×1024的RGB色彩模式的图片,其大小就有3 MB

3.3. 用ASCII码来表示字母的话,同样的空间能用来表示3145728个字母

3.4. 《霍比特人》一书只有95022个单词

3.4.1. 假定平均每个单词由5个字母组成,那么这本书大约有475 110个字母

3.5. 一张1024×1024的图片所占用的空间,可以用来存放约6本《霍比特人》这样篇幅的书

3.6. 当你考虑减少应用程序的数据所占用的空间时,图像应该是你最先关注的

3.6.1. 这是最容易实现的目标,而且常常是小的改变就能带来大的收获

4. 图像质量与文件大小

4.1. 图像压缩工具会提供一个整数参数,让你来决定图像的质量

4.2. 对于级别在75~100的JPG压缩,通常用户只能感受到很小的质量差别

4.3. 当质量值为75时对普通用户来说很多图片看着挺好,但是其文件大小只有质量值为95时的一半

4.4. 当质量值低于75时,图片看起来就变差很多,并且节省的空间也在逐渐递减

4.5. 导致图像压缩出现视觉问题的最常见的两种形式

4.5.1. 量化(quantization)

4.5.2. 区块化(blocking)

4.6. 评价图像数据指标

4.6.1. 峰值信噪比(peak signal-to-noise ratio,PSNR)

4.6.1.1. 表示一个信号的最大可能功率与影响它的表示精度的破坏性噪声功率的比值(以对数分贝为单位)

4.6.1.2. 这一度量的基础是压缩图片的均方误差(mean-square error,MSE)

4.6.1.2.1. PSNR与MSE之间,存在着反比关系

4.6.1.3. 原始图像的值与压缩后的值差别有多大

4.6.2. 结构相似性(structural similarity index,SSIM)

4.6.2.1. 在比较图像的压缩质量时考虑了人眼的感知情况

4.6.2.2. 通过比较源图像与压缩后图像的边缘相似性来实现的

5. 图像的尺寸

5.1. 将全分辨率的图像发送到设备上,在渲染前再调整大小,对开发人员来说,这样做肯定最省事

5.2. 缺点也很明显,我们将用户不需要(也不会看)的数据发给了他们

5.3. 发送合适大小的图像给用户

5.3.1. 发送的数据量更少了,这会更快,也会节省用户的套餐费用

5.3.2. 可以节省用户的设备空间

5.3.3. 无须再调整图像的大小

5.3.4. 解码会更快,加载会更快,显示也会更快

5.3.5. 向小屏幕发送小尺寸的图像

6. 正确的图像格式

6.1. PNG

6.1.1. 1995年由7名工程师组成,开发了PNG这种全新的、无专利权的数据格式

6.1.2. 便携式网络图像格式(Portable Network Graphics format,PNG)

6.1.3. 无损图像格式

6.1.4. 使用GZIP这样的压缩工具使数据量变小

6.1.5. 在图像保存为PNG格式之前,进行一些有损的预处理,来提高图像的压缩率

6.1.6. 你想压缩的是颜色比较少的图像,比如手绘的卡通画,那么PNG对应的无损压缩工具表现得会更好

6.2. JPG

6.2.1. 用于摄影图像的格式

6.2.2. 不支持alpha透明度

6.2.3. 分块过程只对摄影图像(即照片)适用

6.2.4. 大多数移动设备现在有系统可用的JPG编码和解码的硬件

6.2.4.1. 解码一个JPG文件需要的时间要比解码同样大小的PNG文件短很多

6.3. GIF

6.3.1. 第一步是有损的色彩数量压缩,将整个图像的颜色数量减少到只有256种

6.3.2. 第二步则是无损的LZW压缩

6.4. WebP

6.4.1. 2013年,谷歌和其他开源贡献者开发了一种新的图像编解码算法

6.4.2. 介于PNG和JPG之间的中间地带

6.4.3. 既支持无损模式和透明度,同时也支持有损模式

6.4.4. 在有损压缩模式下的高压缩率,也就意味着在解压时它要比JPG或者PNG格式慢一些

6.4.5. 即使某个算法在技术上是先进的,它还是会受到与此相关的同类技术产品偏见的影响,同时它也必须获得具有普遍怀疑精神的工程师的承认和认同

6.4.5.1. Mozilla的抵制

7. GPU纹理格式

7.1. 计算机不能直接利用压缩格式的数据绘制图像,而是需要先将压缩的数据加载到内存中,然后再解压为系统可以直接渲染的格式

7.2. 图像会被当作纹理传输到GPU中

7.2.1. 生成的每一个位图都会同时需要CPU和GPU内存

7.3. GPU能直接渲染的像素压缩格式是存在的

7.3.1. DXT、ETC和PVR就是几种这样的有损像素压缩格式

8. 光栅格式图像

8.1. raster format image

8.2. 当从远处观察图像时,像素之间的边缘就会消失,这样人的眼睛(被欺骗了)看到的就是平滑的颜色渐变。这种类型的图像通常被称为光栅格式图像

8.3. 可以(比较直接地)在屏幕上渲染

8.4. 光栅格式则适用于相片以及其他信息密集的图像

9. 矢量格式

9.1. SVG是一种常用的矢量图像格式

9.1.1. 无论源数据多大,有了它,我们就能用很少的内存来描述图像,并在客户端生成高质量的与分辨率无关的图像

9.2. 矢量格式适用于标志、技术图纸以及简单的图像样式

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kaggle灾难推文的自然语言处理-最佳得分详解

目录 灾难推文的自然语言处理——预测哪些推文是关于真实灾难的,哪些不是。 一、比赛概述 二、数据集 三、代码 0.导入库与数据 1. 关键字和位置 1.1 缺失值 1.2 元素和目标分布 2. 元特征 3. 目标和N-grams 3.1 目标 3.2 unigrams 一元语法 3.3 big…

[回馈]ASP.NET Core MVC开发实战之商城系统(三)

经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,ba…

如何使用ArcGIS Pro制作越来越真实的水域效果

制图的目的就是为了让图更加的美观,这里我们以水域效果为例,为大家讲解一下如何一步步制作越来越真实的水域效果,希望能对你有所帮助。 常规效果 使用过ArcMap制图的朋友应该比较熟悉,可以在符号系统内修改一下填充颜色&#xff…

启用、禁用员工账号

接口相关信息 controller层 /** 启用禁用员工账号* */PostMapping("/status/{status}")ApiOperation("启用禁用员工账号")public Result startOrStop(PathVariable Integer status, Long id) {log.info("启用禁用员工{},{}",status,i…

Bert模型及变体

ALBert ALBERT就是为了解决模型参数量大以及训练时间过长的问题。ALBERT最小的参数只有十几M, 效果要比BERT低1-2个点,最大的xxlarge也就200多M。可以看到在模型参数量上减少的还是非常明显的,但是在速度上似乎没有那么明显。最大的问题就是这种方式其实…

Kubernetes 之CNI 网络插件对比

介绍 网络架构是Kubernetes中较为复杂、让很多用户头疼的方面之一。Kubernetes网络模型本身对某些特定的网络功能有一定要求,但在实现方面也具有一定的灵活性。因此,业界已有不少不同的网络方案,来满足特定的环境和要求。 CNI意为容器网络接…

Java是什么?为什么众多编程语言要学习Java?Java有哪些特点?

Java 是近 十几 年来计算机软件发展过程中的传奇,其在众多开发者心中的地位可谓“爱不释手”,与其他一些计算机语言随着时间的流逝影响也逐渐减弱不同,Java 随着时间的推移却依然坚挺。 从首次发布开始,Java 就跃到了 Internet 编…

「开源项目」强大易用的开源建站工具-halo

建站工具halo 基本介绍 Halo 作为一款好用又强大的开源建站工具,配合上不同的模板与插件,可以很好地帮助你构建你心中的理想站点。它可以是你公司的官方网站,可以是你的个人博客,也可以是团队共享的知识库,甚至可以是一…

通过Filebeat进行日志监控

对系统的日志监控,通用做法是使用ELK(Elasticsearch、Logstash、Kibana)进行监控和搜索日志,这里给出另一种方案:通过Filebeat接收日志到Kafka,监控平台接收Kafka,并通过WebSocket实时展示。 这…

Java枚举类的构造函数

Java枚举类可以定义构造函数 Java枚举类可以定义构造函数,枚举常量后面括号中的参数值就是传递给构造函数的参数。 代码示例: package com.thb;public enum Constant {// 枚举常量后面括号中的参数值就是传递给构造函数的参数值REGISTER((byte)0x01),…

windows版docker部署springcloud项目

材料: 1.windows版docker环境(其他版教程可能道理一样但是比如文件后坠名上可能有差异) 2.运行好的数据库容器(实现教程) 3.所有jar包 实现: 最后整好的文件夹结构图(原工程文件机密&#xf…

教你一文教你使用自己的域名远程访问内网群晖NAS+6.X【内网穿透】

文章目录 使用自己的域名远程访问内网群晖NAS 6.X【内网穿透】 使用自己的域名远程访问内网群晖NAS 6.X【内网穿透】 在之前的文章中,我们向大家演示了如何使用cpolar,创建一条固定的、能够在公共互联网登录内网群晖NAS的数据隧道。这条隧道已经能够应对…

医学案例|ROC曲线之面积对比

一、案例介绍 为评价CT和CT增强对肝癌的诊断效果,共检查了32例患者,每例患者分别用两种方法检查,由医生盲态按4个等级诊断,最后经手术病理检查确诊其中有16例患有肝癌,评价CT个CT增强对肝癌是有有诊断效果并且试着比较…

cpolar内网穿透工具

文章目录 cpolar内网穿透工具 cpolar内网穿透工具 科学技术的发展日新月异,电子设备在人们的生活中已成为不可或缺的工具,甚至在很多情况下,各类型的电子设备已经成为工作的核心,虽然移动设备越来越小巧,功能也越来越…

Lab1 datalab

修改bits.c,使其满足btest的测试,代码规范./dlc bits.c 测试 make cleanmake btest./btest bitXor 思路 题目的意思是用按位&和取反~实现异或^操作。即x和y的同一位置如果都是1或者都是0,那么异或之后是0,否则是1 x & …

C#学习系列之System.Windows.Data Error: 40报错

C#学习系列之System.Windows.Data Error: 40报错 前言报错内容解决总结 前言 在用户界面使用上,代码运行没有问题,但是后台报错,仔细研究了报错内容,解决问题,所以记录一下。 报错内容 System.Windows.Data Error: 4…

【小波尺度谱】从分段离散小波变换计算小波尺度谱研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Python 进阶(二):操作字符串的常用方法

❤️ 博客主页:水滴技术 🌸 订阅专栏:Python 入门核心技术 🚀 支持水滴:点赞👍 收藏⭐ 留言💬 文章目录 一、索引和切片二、字符串长度三、查找和替换四、大小写转换五、分割和连接六、去除空…

【深度解析】蓝牙室内定位方案优势介绍

万物互联时代,数据的价值进一步凸显,在海量数据中,位置数据成为万物互联产业中的基础坐标。室内空间结构越来越复杂,人们对位置的实时性和精确度要求不断提高,室内定位的需求也空前高涨。卫星信号对障碍物的穿透性较弱…

国内好用的企业级在线文档有哪些?

在当今数字化时代,企业级在线文档已经成为了现代办公环境中不可或缺的一部分。它不仅能够提高工作效率,还能够实现多人协同编辑,满足团队协作的需求。那么,在国内市场上,哪些企业级在线文档产品备受企业青睐呢&#xf…