找回密码
 注册
搜索
查看: 1393|回复: 12

[讨论] 格式疑问

[复制链接]
发表于 2006-3-18 22:20:00 | 显示全部楼层 |阅读模式
问下:gif和jpg在格式上有什么区别?传输方式有什么不同?通常我们在选择桌面的时候是用哪种格式?
发表于 2006-3-24 14:10:00 | 显示全部楼层
<P>这种格式差别大了,Gif分为gif87a和Gif89a。</P><P>Jpg就更多了,标准的有jpg2000等等,还有很多不是很标准的。所以你会发现有的jpg你可以显示,有的却不可以。</P><P>至于你用什么做桌面就看你用什么解码了。当然哪个好看用哪个了。有些手机虽然支持gif但是设置成桌面后gif只显示第一张,这跟他使用的ram大小有关系。</P><P>至于你说的传输方式不明白什么意思? </P>[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

 楼主| 发表于 2006-3-25 21:51:00 | 显示全部楼层
<P>是不是jpg不需要持续刷新?而gif需要不断传输数据去刷新。</P><P>另:就存储容量而言,那个比较占空间?手机中jpg/gif一般使用的是哪种格式?</P>
点评回复

使用道具 举报

发表于 2006-3-26 17:00:00 | 显示全部楼层
<P>关于这两种图像格式,要注意以下几点:</P><P>1,JPEG一般是有损压缩,但图像的颜色鲜艳(如你的LCD支持26K色那么它就能显示26K色),PC机上的JPEG一般是24位的,要用三个字节表示一个象素。GIF是无损压缩,但图像颜色只有256种(准确的说是他的颜色表中只能容纳256种颜色,因为他是用1个字节来表示一个象素的)。</P><P>2,JPEG是静态的图像,GIF可以是静态的也可以是动态的。从嵌入式软件编程方面看:JPEG的难度在解码上,不过现在网上的CODEC很多,只要移植就行了。运行解码程序,只要将解码后的数据送入LCD的GRAM后,MCU就可以干其他的事情了,知道要显示新的图像。静态GIF也是这样一个流程,不过要是动态GIF(一个GIF文件里头有多个静态画面,通过连续循环播放形成动画效果),那就非要OS不可了,一般做法就是将解码程序当作一个线程来运行。要是没有OS,那必将是一个死循环。</P><P>3,JPEG适合作一般复杂的图像,容量依压缩比而定,例如176×220的图像大小一般在10K~50K左右,而GIF适合作简单的线条画之类的,对于静态GIF,同样是176×220,一般在10K~30K左右。对于静态图像,GIF对渐变色比较明显的有较好的压缩效果比,而JPEG对于渐变色连续的则有较好的还原性。动态GIF的文件大小没有限制,豪杰的转换工具甚至可以将电影片断转为GIF(本质上讲就是一帧一帧拼结的),直接结果就是文件大小随时间而变得超大。对于手机来讲,一般不超过200K为宜。</P><P>4,个人觉得作为桌面待机图,还是JPEG比较好,色彩比较鲜艳,也比静态GIF要细腻。如果你要追求酷,用动画GIF做桌面,那手机就得耗电,很多程序和器件都在跑,得不偿失,想想看,我们的PC机上有人用动画GIF做桌面吗.?</P><P>如果在开发上面有什么问题,欢迎大家多多交流。</P>[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

 楼主| 发表于 2006-3-26 18:18:00 | 显示全部楼层
<P>那么静态的gif是不是可以等同与jpg(从传输数据的角度来讲)?</P><P>在硬件上碰到一个问题,就是主屏用静态gif格式显示时候,灵敏度很差,但是改用jpg后,灵敏度至少好2DB?如果静态gif=jpg的话,这是为什么?</P>
点评回复

使用道具 举报

发表于 2006-3-28 10:21:00 | 显示全部楼层
会不会是LCD的不断刷新造成的
点评回复

使用道具 举报

 楼主| 发表于 2006-3-28 21:11:00 | 显示全部楼层
<P>估计是,但是不敢肯定,不是很了解jpg和静态gif格式文件的区别?特有此问,希望了解的大虾能指点一二。</P>
点评回复

使用道具 举报

发表于 2006-3-29 09:04:00 | 显示全部楼层
<P>从传输数据的角度来看,JPEG和静态GIF是一样的,解码后一次性的将数据送给LCD的GRAM(如果用的是MCU模式的话),JPEG没问题那静态GIF也没有问题的(至少不是LCD的问题)。也不知道你说的灵敏度是啥意思,我建议你用同一张JPEG用ACDSee转换为GIF再测试一下,如果没有改观则首先应该怀疑是软件的问题(如:解码程序或是操作系统的调度上)。</P>[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

发表于 2006-3-29 09:41:00 | 显示全部楼层
<P>JPEG是静态的图片,所以只需要一次送过去即可。GIF需要将每一帧送一次。另外LCD也是影响RF方面的灵敏度的原因之一。我想应该不太会是图片格式的差异,</P><P>你可以做一个测试只把GIF的第一帧送到LCD上,后面的不要送了。</P><P>另外你可以把你的LCD摘掉再测试一下灵敏度。</P>[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

发表于 2006-3-29 14:35:00 | 显示全部楼层
<P>静态GIF确实只需传输一次图像(帧)就行了,而动态GIF才要传输多帧。</P><P>如果你对这GIF的这两种形式拿不准,那就拿一个JPEG的图像用图像软件转换成同样大小的GIF文件,它就是一个正宗的静态GIF图像,再放到上面试试。</P>[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

 楼主| 发表于 2006-3-30 20:52:00 | 显示全部楼层
<P>首先谢谢大家的讲解。</P><P>具体情况是这样的:软件在使用gif做背景(姑且不讨论其是动态的还是静态方式)的时候,测得灵敏度假设是-99dbm,在保持硬件不变的前提下(排除lcd的干扰的可能),软件将背景更改为jpg的格式,测得的灵敏度得值为-102dbm。</P><P>综上:从头至尾,只是更改了背景画面的格式,灵敏度的差异达2-3dbm,个人估计是通话过程中,gif格式设为背景的时候,mcu(bb)不断向Lcd送数,也就是各位说的一帧帧传输数据,因为硬件在测试过程中是没有改变的,所以非lcd硬件的干扰,因此断定是软件干扰。换成jpg格式后,就ok了!</P><P>疑惑的是我看到的gif格式的背景根jpg的画面从肉眼上去看的话是没有任何区别的,如果按snaper说的那样定义的话,我想这个应该是gif格式中的静态格式吧?如果是这样的话,静态的gif文件和jpg的一样的话,那区别在那里?疑惑!</P>[em13]
点评回复

使用道具 举报

发表于 2006-3-31 15:18:00 | 显示全部楼层
<P>首先要明确一个问题:数字基带肯定或多或少对射频有干扰。</P><P>估计是GIF的解码程序没有做好,反正我当时写GIF程序的时候是要判断他是一帧(静态)还是多帧(动态),如果是前者我就直接跳出解码程序了,如果是后者,我是作为一个任务让操作系统来不断调用。</P>[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

 楼主| 发表于 2006-3-31 21:13:00 | 显示全部楼层
<P> 谢谢snaper,应该是软件在斜的时候静态当成动态的处理了。结贴...</P>[em02]
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-9-23 20:19 , Processed in 0.047602 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表