最近做Jpeg编解码遇到的问题
最近做Jpeg编解码遇到的问题
2011-03-05 10:41:32| 分类: 技术系列 | 标签:解码 sos jpegencoder myjpeg 字节 字号:大中小 订阅
2 用普通的截图工具截图出来jpg MyJpeg库可以解码。也可以用ACDSee解码。
经过调试跟踪的结果是:
JpegEncoder出来的图片:
1 Vesion[5]="JFIF?" ? 为不确定的值。 代码中没有赋值。我想这是一个bug , 成员变量不一定都赋值为0. 该Bug修复后, 出现了,SOS无效。
2 SOS是
扫描开始SOS(Start of Scan)
0h 2字节 0xFFDA
① 扫描开始长度(start of scan length)
2h 2字节 内容不定(①~③再加上④的A/B/C的总长度)
② 颜色分量数(number of color components)
4h 1字节 应该和⑸⑤的值相同(灰度图是1, YCbCr/YIQ 彩色图是3, CMYK 彩色图是4)
③ 每个颜色分量
由SOS编码出来的Jpeg该分量下的扫描开始长度为1, 但是MyJpeg只解码为3的图片。 但是我不知道这个代表什么。
那么经过这次帮助同学找Jpeg库 我获得了
1 可以配对编解码的Jpeg库 JpegEncoder与JpegDecoder。不足 速度太慢
2 可以解码一般图片的自己的Jpeg库。 不足之处为只能解码8的倍数的长宽的数据 不然有错位。也有可能是我自己rgb2bmp的问题。 稍后放在CSDN的Download下。
3 我学习了Jpeg的交换格式 JFIF格式。http://blog.csdn.net/gogor/archive/2009/12/31/5111770.aspx这是一篇很好的文章。 介绍了每个字段的意义。
最近做Jpeg编解码遇到的问题相关推荐
- JPEG编解码基本技术回顾
JPEG格式是一个很老的格式了,笔者刚刚认识5寸软盘的时代就知道这种文件是用来保存图片的,而且比同尺寸的"bmp"图片要小很多.很多年过去了,信息技术各个领域全面发展,视频编解码技 ...
- 基于寒武纪CNCodec 做视频编解码遇到的一些问题
前段时间基于FFMpeg 写了一个软编软解的 模块 供业务层调用,即利用CPU来做 不需要依赖于特定硬件 最近 又来了一个需求需要基于寒武纪MLU270 来做视频编解码 ,摸索了三四天 发现一个奇怪的 ...
- 【STM32F407VET6开发】第三章 jpeg编解码实验(有误,待修改)
目录 一.硬件连接(STM32F407VETx.仿真器) 二.配置Debugger 三.通过串口协议,实现对jpeg图片编解码后传回电脑验证 四.结果 一.硬件连接(STM32F407VETx.仿真器 ...
- 数据压缩第七周作业——JPEG编解码
目录 一.实验目的 二.实验原理 1.JPEG编码器:编辑 2.JPEG解码器 3.JPEG文件解析 三.实验内容 (1)调试和理解JPEG解码器程序 (2)理解程序设置 1.结构体理解 2.梳理代 ...
- 一个做视频编解码的求职之路
秋招于10月15号左右结束了,为大家分享一下做视频编解码方面的公司和我面过的企业,整个校招我大概面了13家左右的公司,在北京的公司,这是为了找找求职经验的,很遗憾的互联网公司一家没面过,秋招最失败的地 ...
- JPEG编解码分析及调试
一.编解码原理 编码原理 (1)零偏置电平下移(Level Offset) 对于灰度级为2^n 的像素,通过减去2^(n-1),将无符号整数变为有符号数,即值域变为正负对称.将绝对值大的数出现的概率 ...
- 【codecs】JPEG、MPEG-1、MPEG-2和MPEG-4编解码流程对比
Date: 2018.10.25 1.JPEG编解码流程 发展时间:1988~1990 2.MPEG-1编解码流程 发展时间:1990~1992 http://citeseerx.ist.psu.ed ...
- 视频编解码(十):FFMPEG操作总结二
一.fmplay 播放视频命令 一般播放视频的时候,使用命令:ffplay "林俊杰_江南.flv" 能在播放完成后自动退出,则可以使用命令:ffplay -autoexit ...
- 视频编解码(九):FFMPEG操作总结一
1. 视频转换 比如一个avi文件,想转为mp4,或者一个mp4想转为ts. ffmpeg -i input.avi output.mp4 ffmpeg -i input.mp4 output.t ...
最新文章
- 删除顺序表中所有的的重复数据
- 北海市卫生学校计算机教室,北海卫校2021年招生简章_北海市卫生学校
- VMware Workstation安装64位操作系统遇到的小问题
- JAVA元注解@interface详解(@Target,@Documented,@Retention,@Inherited)。
- eslint git提交不上_Git常用命令及日常问题集锦
- c语言文件压缩与解压缩实验报告,哈弗曼树的文件压缩和解压实验报告(C语言).doc...
- 域服务器批量修改用户密码,Windows域控制器批量创建用户
- Ruby中的字符串与符号
- C++_函数_函数的占位参数_函数重载---C++语言工作笔记034
- python将csv转字典_python – 将CSV数据转换为字典中的列表
- riot.js教程【二】组件撰写准则、预处理器、标签样式和装配方法
- 迭代器模式C++实现
- SQL Server数据库第二课:创建数据库表、完善数据库表的设计、建立数据库表之间的关系
- wps插入尾注(罗马数字变阿拉伯数字,即i变1)的操作方法
- 文件系统管理 之 reiserfs文件系统反删除(Undelete)操作的实践
- 在疫情肆虐的世界里,适度恐惧的活着
- uniapp生成canvas商品海报
- 关于CG,CV,DIP
- vue-cli3使用iview
- 揭开移动 APM 的五大神秘面纱
热门文章
- 网络编程(Tcp/Udp实现聊天、文件上传)
- 抖音服务器维护播放为零,抖音作品为什么播放为零 账号是不是被官方限流屏蔽了...
- 动态站点地图提交百度收录
- arcgis坐标系未定义_科学网—ArcGIS中的坐标系:基本概念和常用操作 - 李郎平的博文...
- 这3种PDF合并的方法你一定要收藏
- 手机端自适应遇到的问题 页面缩放不正常(使用的是flexible.js)
- 用MFC画一个美国队长的盾牌
- 2020年下半年教育热点事件舆情分析研判报告整合
- vue项目中element-ui全局引入按需引入按需引入报错解决
- 2021年中国信息安全产业发展现状分析:信息安全收入达1825亿元,同比增长21.81%[图]