【图像】协议:常见的图像格式协议对比

news2024/9/21 12:39:53

1. 背景

不知不觉已经大半年没有写博客了。换了工作之后突然变忙了许多,紧张的项目节点一个接一个,高优先级的事一件接一件,让人兴奋的同时也变得很多时候没有时间去复盘去反思去沉淀。
最近在整理产品的feature list,各种各样的格式和名词让自己意识到,自己对音视频领域还是有太多的盲区,于是决定从一些基础补充起来。
先从图像格式整理学习起来,毕竟图像是视频的基础,二者很多算法也是相通的。格式上近几年也出了一些自己没怎么关注的格式,比如heic,比如avif等等,后面会挨个细细学习下。
计划是:

  • 先做所有格式的对比,了解背景原理和主要特点。
  • 细看bmp,png,jpg,heif 这几类图片的协议原理和文件组成。

2. 对比

图片格式从大类上划分的话,主要分为2类:

  1. 按像素点进行记录的位图
  2. 可以无损放大的矢量图
    在这里插入图片描述
    针对主要格式整理了一张对比表格
图片格式简写特点起源主推公司算法后缀名参考网址
BMPBitmap无压缩1990微软 windows3.0不压缩.bmp
JPEG/JFIFJoint Photographic Experts Group兼容性好, 不支持10bit1992ISO没有预测.jpg .jpeghttp://www.w3.org/Graphics/JPEG/itu-t81.pdf
PNGPortable Network Graphics(PNG is Not GIF)无损,支持真彩色,支持动图1996LZ77(W要专利费).pnghttp://www.w3.org/TR/PNG/
SVGScalable Vector Graphics矢量图.svg
GIFGraphics Interchange Format动图,无损,索引色1987发明者Steve WilhiteLZW (专利).gif
TIFFTag Image File Format印刷业,支持多页LZW(专利)
BPGBetter Portable GraphicsFabrice Bellard(ffmpeg的作者)H.265(专利)https://bellard.org/bpg/
WebP支持有损无损,多图片,透明2010谷歌VP8.webp
HEIF/HEIChigh efficiency image container2014苹果/小米 nokiaH.265(专利).heic .heicsHEIF 技术信息 - 高效图像文件格式 (nokiatech.github.io)
HEIF/AVCI用的不多H.264(专利).avci .avcs
HEIF/AVIFAV1 Image File Format2020NetflixAV1

从wiki上引了一张图
在这里插入图片描述

4. 参考链接

  • Can I use… 查看图片格式被浏览器的支持
  • 图形文件格式比较 - 维基百科,自由的百科全书 (wikipedia.org)
  • 深入探讨15种主流图片格式及其优缺点 - 闪电博 (wbolt.com)
  • 常见的图片格式介绍_图像文件格式有哪些_软件开发技术爱好者的博客-CSDN博客
  • 我们是如何记录图片的?_徐小夕@趣谈前端的博客-CSDN博客

5. 系列文章

  • 常见图像格式对比
  • 图像格式:YUV数据

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

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

相关文章

Yum方式安装Nginx

前言:使用Nginx源码进行安装过程比较繁琐,需要提前下载安装GCC编译器、PCRE兼容正则表达式库、zlib压缩库和OpenSSL安全通信的软件库包,然后才能进行Nginx的安装。采用Yum最简单的安装方式能自动解决这些安装依赖,默认情况Centos7…

C++面试指南——类常用知识点概念总结

构造函数 构造函数可以抛出异常,可以重载,如果在实例化时在类名后面加个括号,只是创建了一个匿名的对象。构造不能是虚函数,因为此时虚函数表还没有初始化。new对象会调解构造函数。没有定义拷贝构造时,IDE会自动生成…

关于编译的重要概念总结

文章目录什么是GNU什么是GCC / Ggcc / g编译的四个阶段gcc和g的主要区别MinGW-w64C语言版本C 98C 11C 14C 17C 20Makefilecmake回想初学编程的时候,大部分人都是从C语言开始学起的,除了一些常见的语法和思想,一些基础知识常常被人们忽略&…

智能汽车进入3.0时代,双目立体视觉「打通」智驾与底盘

每一次软硬件技术更迭,都在重构智能化。 2016年7月,上汽集团与阿里巴巴合作开发的互联网汽车荣威RX5正式上市,这被视为中国乘用车市场首次规模化引入互联网生态,第一次在软件层面实现对传统燃油车的升级。几个月后,英特…

python机器学习数据建模与分析——数据预测与预测建模

文章目录前言一、预测建模1.1 预测建模涉及的方面:1.2 预测建模的几何理解1.3 预测模型参数估计的基本策略1.4 有监督学习算法与损失函数:1.5 参数解空间和搜索策略1.6 预测模型的评价1.6.1 模型误差的评价指标1.6.2 模型的图形化评价工具1.6.3 训练误差…

“绿菜单”2.0发布 数据中心液冷生态建设进入加速期

近年来,随着数字化社会对算力需求的不断增长,数据中心能耗与散热问题日益凸显。液冷作为更加高效、低能耗的制冷技术,逐渐成为了数据中心建设的热门选择。对此,产业上下游企业热情高涨,液冷产品与方案纷纷亮相&#xf…

【Java】数据类型与变量

一、java中的数据类型 Java中数据类型主要分为两类:基本数据类型和引用数据类型。 1.与c语言相同的数据类型 short,int,double,float均与c语言保持相同。 2.与c语言不同的数据类型 byte--字节类型 char--字符类型 java中,byte类型只占一个字节&#xff…

手写简易 Spring(二)

文章目录手写简易 Spring(二)1. 扩展 BeanFactory 接口2. 实现资源加载器,从 Spring.xml 解析和注册 Bean 对象1. 核心实现类 XmlBeanDefinitionReader3. 实现应用上下文,自动识别、资源加载、扩展机制1. 应用上下文2. 核心实现类…

虚幻图文笔记:Character Creator 4角色通过AutoSetup For Unreal Engine插件导入UE5.1的过程笔记

在UE5端安装AutoSetup For Unreal Engine插件 AutoSetup For Unreal Engine是Reallusion官方提供的免费插件,官方下载地址,下载到的是一个可执行文件,点击安装,记住安装的位置⬇ 看装完毕后会打开一个文件夹,这里就是对…

nginx线程池源码剖析

文章目录nginx线程池1. 问题2. 解决办法 nginx线程池3. 线程池实现模型4. 线程池实现核心组件5.源码实现测试代码main.c封装互斥锁&条件变量线程池实现nginx线程池 1. 问题 处理事件过程“阻塞”怎么办? 忙于漫长的 CPU 密集型处理 读取文件,但文…

HTTP vs HTTPS: 网络通信的加密之争、你真的知道它们的区别吗?

前言 欢迎来到今天的每日一题,每日一提。之前有聊到,TCP/IP协议四层模型。所以我们知道,那四层分别是:应用层、传输层、网络层和数据链路层。那么今天聊一聊应用层里面的一个小知识点,HTTP和HTTPS之间有什么区别&#…

亚马逊被人差评了怎么办?

第一种: 也是最简单的做法就是通过电话或者邮件联系留差评的买家,大致意思就是按照货值的2-3倍作为赔偿,能不能把差评给删了 赔偿一个普通产品2-3倍的价格比起找服务商删一个差评几百到一千不等可以说是绰绰有余了,碰到那种愿意…

AI 工具大全

文章目录ChatGPT 聊天绘画与图像PPTAdoble语音通话捷径指令视频音乐汇集 AI 工具,改变个人办公姿势。拥抱新时代的“通用人工智能”。利用 AI 工具来改造你学习和工作的流程。通过将 AI 嵌入生活和工作的方方面面,你不仅能够获得沉浸式的学习体验&#x…

线上问题:FeignClient循环依赖及源码分析

1 场景复现 依赖关系:虚线左侧为实现的类,虚线右侧为Spring的原生接口类或注解。 正常看,没有循环依赖,但是,实际运行时,异常信息:Is there an unresolvable circular reference? 明确告知&am…

Navidrome - 开源音乐服务器【打造属于自己的音乐播放器】「端口映射」随时随地想听就听

文章目录1. 前言2. Navidrome网站搭建2.1 Navidrome下载和安装2.1.1 安装并添加ffmpeg2.1.2下载并配置Navidrome2.1.3 添加Navidrome到系统服务2.2. Navidrome网页测试3. 本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置4. 公网访问测试5. 结语1. 前言…

十二、市场活动:修改

功能需求 ①、用户在市场活动主页面,选择要修改的市场活动,点击"修改"按钮,弹出修改市场活动的模态窗口; ②、用户在修改市场活动的模态窗口填写表单,点击"更新"按钮,完成修改市场活动的功能. ③、 *每次能且只能修改一条市场活动 ④、*所有者 动态的…

电脑组装教程分享!

案例:如何自己组装电脑? 【看到身边的小伙伴组装一台自己的电脑,我也想试试。但是我对电脑并不是很熟悉,不太了解具体的电脑组装步骤,求一份详细的教程!】 电脑已经成为我们日常生活中不可或缺的一部分&a…

Nginx用作 内网CDN / edge cache 服务

文章目录什么是CDN?为什么需要 内网CDN/edge cache?Nginx配置Edge Cache服务配置简单静态文件缓存服务配置缓存控制$upstream_cache_statusGzip压缩参考什么是CDN? 首先要明白什么是CDN? CDN英文全称Content Delivery Network,…

Springboot基础学习之(十七):通过Shiro实现用户得到登录认证和授权

前几篇文章讲解了关于信息安全的另一框架Spring security ,今天趁热打铁基础的了解以下shiro这一框架。 什么是shiro? Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应…

c++11 标准模板(STL)(std::stack)(二)

定义于头文件 <stack> template< class T, class Container std::deque<T> > class stack;std::stack 类是容器适配器&#xff0c;它给予程序员栈的功能——特别是 FILO &#xff08;先进后出&#xff09;数据结构。 该类模板表现为底层容器的包装…