下一代Web图像格式:JPEG、JPEG XR、JPEG2000、WebP、BPG(重要)

1、1992年 JPEG标准发布 
目前主流浏览器的原生支持 
开源库:libjpeg、mozjpeg、miniJPEG 
mozjpeg是Mozilla开发的编码库,能提升5%左右的压缩 
minijpeg是以色列一家公司开发的JPEG转码,宣称能提高5%-50%的压缩

主要技术:8x8分块、8x8 浮点DCT变换、频带量化、Zig-Zag扫描、查表式熵编码

libjpeg: 
主页:http://libjpeg.sourceforge.net/ 
Libjpeg is a widely used C library for reading and writing JPEG image files. It was developed by Tom Lane and the Independent JPEG Group (IJG) during the 1990’s and it is now maintained by several developers using various services identified in the SourceForge summary. 
The latest release is version 6b of 27-Mar-1998. This is a stable and solid foundation for many application’s JPEG support.

2、2000年 JPEG2000发布

ISO/IEC 15444-1 、ITU-T T.800 
http://www.itu.int/itu-t/recommendations/rec.aspx?rec=12682

卡卡杜公司的编码器:kdu_compress 目前的版本是7.8 
http://kakadusoftware.com/software/

主要技术:离散小波变换(9-7浮点、5-3整数)、支持有损和无损压缩、支持分辨率渐进式、支持码率渐进式 
维基百科:https://en.wikipedia.org/wiki/JPEG_2000

openJPEG:开源的编解码实现,目前被作为官方的参考代码 
主页:http://www.openjpeg.org/ 
代码:https://github.com/uclouvain/openjpeg

3、2009年 JPEG XR 
用于替换现有的JPEG2000,增加HDR支持

4、2014年 BPG (Better Portable Graphics) 
基于HEVC 帧内编码的静态图像格式 
由Fabrice Bellard开发,主流的浏览器不能原生支持,可以使用1个56KB的Javascript库来进行解码、显示。 
专利:由于使用HEVC的技术,然后考虑到美国20年的专利有效期,2014+20=2034年时才能免费自由的使用
--------------------- 
作者:cmsbupt 
来源:CSDN 
原文:https://blog.csdn.net/cmsbupt/article/details/51178761 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果不想使用FFmpeg库,也可以使用Go语言的标准库来读取mp4文件并提取其中的一帧图像。以下是一个示例代码: ```go package main import ( "fmt" "image" "image/jpeg" "os" "strings" "github.com/chai2010/webp" ) func main() { // 打开mp4文件 file, err := os.Open("input.mp4") if err != nil { fmt.Println("打开视频文件失败:", err) return } defer file.Close() // 读取mp4文件的第一帧图像 img, format, err := image.Decode(file) if err != nil { fmt.Println("读取视频帧失败:", err) return } // 将图像保存为jpeg格式 if strings.ToLower(format) == "webp" { // 如果原始图像格式webp,则保存为webp格式 out, err := os.Create("output.webp") if err != nil { fmt.Println("创建输出文件失败:", err) return } defer out.Close() err = webp.Encode(out, img, nil) if err != nil { fmt.Println("保存webp格式文件失败:", err) return } } else { // 否则保存为jpeg格式 out, err := os.Create("output.jpg") if err != nil { fmt.Println("创建输出文件失败:", err) return } defer out.Close() err = jpeg.Encode(out, img, nil) if err != nil { fmt.Println("保存jpeg格式文件失败:", err) return } } fmt.Println("截取视频帧成功") } ``` 说明: - `input.mp4`是要截取帧的mp4文件名。 - 通过`image.Decode()`函数读取mp4文件的第一帧图像。 - 判断图像格式是否为webp,如果是则保存为webp格式,否则保存为jpeg格式。 需要注意的是,这种方法只能提取mp4文件的第一帧图像,如果需要提取其他帧,则需要使用FFmpeg等工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值