社区
新手乐园
帖子详情
C++在内存中压缩JPEG图片的方法?
云朵2016
2007-07-06 12:56:10
C++在内存中压缩JPEG图片的方法?
...全文
446
2
打赏
收藏
C++在内存中压缩JPEG图片的方法?
C++在内存中压缩JPEG图片的方法?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
云朵2016
2007-08-07
打赏
举报
回复
问题解决了,用JPEG算法
我啃
2007-07-06
打赏
举报
回复
读取文件的信息,映射到内存,使用特别算法解析,存盘
JPEG
图片
压缩
程序 v2.0
项目:
JPEG
图片
压缩
程序 v2.0 更新:2004/5/23 ------------- 这是一个比较完整的
JPEG
压缩
程序,支持 彩色/灰度、Y分量水平/垂直采 样律、图像质量 调整。使用的是最简单的基线系统(BaseLine)
压缩
方式, 量化表及Huffman表都是与ACDSee一致的,没有提供自适应Huffman表
压缩
功能。 速度测试 ~~~~~~~~ CPU:赛杨733
内存
:128MB SDRAM 操作系统:Windows 98 SE (请运行编译后的exe!在VB开发环境下是解析运行,大规模数据处理速度很慢) (单位:毫秒ms) ┏━━━━┳━━━━━━┯━━━━━┯━━━━━┓ ┃ ┃512*512 Lena│ 800*600 │ 1024*768 ┃ ┣━━━━╋━━━━━━┿━━━━━┿━━━━━┫ ┃ 灰度 ┃ 376.9725 │ 597.6534 │ 950.3084 ┃ ┠────╂──────┼─────┼─────┨ ┃彩色 1:1┃ 676.0799 │1097.7514 │1655.6605 ┃ ┠────╂──────┼─────┼─────┨ ┃彩色 2:1┃ 587.0741 │ 921.2441 │1384.4843 ┃ ┠────╂──────┼─────┼─────┨ ┃彩色 1:2┃ 574.2990 │ 905.8943 │1394.3513 ┃ ┠────╂──────┼─────┼─────┨ ┃彩色 2:2┃ 509.0129 │ 806.8808 │1251.1223 ┃ ┗━━━━┻━━━━━━┷━━━━━┷━━━━━┛ 注: “彩色 x:y”表示Y分量的水平/垂直采样滤。 1:1:YUV 111 2:1:YUV 422(水平) 1:2:YUV 422(垂直) 2:2:YUV 411 提示 ~~~~
JPEG
压缩
分为三个部分: 1.
JPEG
压缩
原理及算法(RGB/YCbCr,DCT/IDCT,量化,Z字型编码,用DPCM对DC/用RLE对AC编码/Huffman编码) 2.
JPEG
标记格式 3.
JPEG
图片
文件的组织形式(位于SOS后的图像
压缩
数据是由MCU块怎样排列的,特别是使用了DRI之后) 细节问题 ~~~~~~~~ 1.解码过程
中
遇到“FF 00”当“FF”处理,否则忽略“FF” 2.进行DCT前YCbCr要减128,进行IDCT前要加128(相当于Y减128,CbCr不需要加128) 3.每个标记
中
数据可以不止一个(去掉长度的部分就是一段) 参考文献 ~~~~~~~~ 1.何斌《V
C++
数字图像处理》人民邮电出版社, 2001.4 2.张益贞《V
C++
实现
JPEG
/MPEG编解码技术》人民邮电出版社, 2002.11 3.杨淑莹《V
C++
图像处理程序设计》清华大学出版社/北方交通大学出版社, 2003.11(SOF0
中
,宽度/高度 写反了) 4.网络上的一些文章,比如 云风的“
JPEG
简易文档 V2.12”…… VB不适合编写高速
JPEG
压缩
程序的原因 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1.
JPEG
压缩
需要大量的位运算,而VB
中
只能靠乘除来移位,效率太低了 2.在高级语言
中
确定一个整数占用的位数需要一大堆if,可在汇编
中
一条位扫描指令就行了 3.浮点DCT变换太慢,而 AAN快速DCT变换算法MMX优化版 早就公布n年了
Jpeg
压缩
算法
内含两个
压缩
包,一个是是lib
jpeg
压缩
算法,支持文件到文件的
压缩
,一个是改进后的
压缩
算法,支持
内存
到
内存
的
压缩
,减少了图像传输效率。
Linux 下V4l2摄像头采集
图片
,实现yuyv转RGB,RGB转BMP,RGB伸缩,RGB转
JPEG
(保存到
内存
中
),
JPEG
经UDP发送功能
ARM Cortex-A8平台Linux下V4l2摄像头采集
图片
程序,实现yuyv转RGB,RGB转BMP保存,RGB缩放等功能。利用
jpeg
lib实现RGB转
JPEG
,并且
压缩
结果保存至
内存
中
,无需再用文件操作来保存
JPEG
图片
,
JPEG
经UDP发送至远程服务器端。
Android性能优化(六)
图片
压缩
一、
压缩
图片
文件
压缩
——
内存
压缩
二、文件
压缩
方式 1.质量
压缩
2.尺寸
压缩
3.格式选择:
JPEG
/WEBP (4.0以上) 三、
压缩
原理 /frameworks/base/core/jni/android/graphics/Bitmap.cpp Skia引擎 https://skia.org/index_zh Google 研发、开源的
C++
二维图形库 Android: 阉割的skia版本,对
jpeg
的处理基于lib
jpeg
,对png则是基于libpng。 早期由于cpu吃紧。将lib
jpeg
中
的最优哈夫曼编码关闭了。直到7.0才打开 四、哈夫曼编码 一种字符编码方
f5ar:使用F5隐写算法
压缩
数据
F5存档器 该存储库以库和命令行工具的形式包含基于的隐写数据
压缩
技术的纯C实现。 有了它,您可以在
JPEG
文件
中
嵌入任何二进制数据,同时减少
内存
中
的总数据空间,而不会显着改变使用的图像。 在我的您可以阅读更多有关该主题。 建造 简单make可用于构建所有内容。 在Windows上,您可以使用Cygwin或WSL正确使用它。 如果要遵循非Unix方式,则需要自己弄清楚。 依存关系 该项目取决于 (用于
JPEG
解码和编码), 和 API。 由于tinydir是通过树
中
包含的简单头文件提供的,因此您只需要确保在编译过程
中
链接了POSIX正则表达式和与lib
jpeg
兼容的API。 如果您的机器上没有东西,则可以使用make lib
jpeg
和make pcre命令从本地的官方存储库
中
构建和pcre的静态版本。 请注意,您将需要wget , git和cmake 。 树
中
包含所有必需的标头。 用法
新手乐园
33,311
社区成员
41,784
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章