易码技术论坛

 找回密码
 加入易码
搜索
查看: 166246|回复: 1

[转自无忌论坛]A6x0、S3IS破解:保存RAW图像、显示电量、时钟和实时直方图等

[复制链接]
发表于 2007-7-10 20:20:37 | 显示全部楼层
UBASIC??跟GVBASIC蛮象的啊
 楼主| 发表于 2007-7-10 19:25:19 | 显示全部楼层 |阅读模式
  老帖了,转来看看,图转不过来,请不要见怪!
正文如下:
作者:sprhawk
(2007年1月4日第一次发帖)
(2007年4月19日第一次重新整理首帖内容)
(2007年5月2日,应网友要求,增加RAW格式解码解释)


当前版本:test1-pre12
版本作者:GrAnd
支持相机:A610(100e,100f),A620(100f),A630(100c),A640(100b),A710(100a),S3IS(100a)
下载地址:http://grandag.nm.ru/hdk/


首帖内容目录及常用网址汇总
一、升级过程
二、技巧总汇(包括如何知道自己相机固件的版本)
三、关于RAW格式的资料汇总(5月2日增加RAW格式解码说明)
四、关于固件“升级”的安全性
五、升级后的效果(图片)
六、关于固件升级中的脚本功能的使用的简要说明

其他常用网址汇总:
破解程序作者的主页:
http://vitalyb.mail333.com/a610/
http://digicanon.narod.ru/
Raw格式与JPEG的对比:
http://digicanon.narod.ru/compare.htm
DCraw手册
http://sprhawk.spaces.live.com/b ... 70E2CF489!848.entry
http://cybercom.net/~dcoffin/dcraw/
这里是一个Yahoo!上的关于PowerShot编程的讨论组:
http://tech.groups.yahoo.com/gro ... ogramming_research/
FAQ - Canon programming/hacking
http://forum.xitek.com/showthread.php?threadid=418370


一、升级过程
本人一直对器材吹毛求疵,想让自己的设备拥有更多的功能。

像A610这样的好机器(全手动、1/1.8"的CCD,很少有低档DC可以媲美)没有RAW功能、不能显示电量和时钟,真是一大遗憾(虽然我现在的水平还用不上:(

好在有外国的大牛们给我们关来了破解程序,给A6x0系列相机增加了大量的新功能!

我下面讲一下升级过程:(警告!这可能导致意料之外的结果,后果自负)

注意:升级现在有很大的改善,已经很实用了!过去的升级必须保证SD卡内没有图片(根据我的经验是这样的),现在,你可以在有图片的情况下升级了!升级是这样的:
先从上面的网页上下载适合自己的程序(我用的是test1-pre12-a610-100e.zip,用别的会死机),然后依顺序执行:
(1)关机
(2)把相机功能开到预览上
(3)开机
(4)选择MENU,进入菜单,选择第一个功能项的最后一个Fireware Update,选择OK。等待机器重启。一切OK。
注意:一旦机器关闭之后,升级就失效了,必须重新再按以上的方法执行一遍才可以

现在在“闪光灯/防红眼”图标的旁边出现了电量图示,在右下角出现了电量数字指示(见图)

按“打印(右上角、带蓝灯的按键)”,屏幕下方会出现一个<ALT>,然后你按Menu会出现新的菜单 (见图)

PS:
1、在杂项中有游戏、文本阅读、日历功能!!!!
2、在OSD项中有Show Clock功能!!!!!
3、程序升级后,设置可以保存!!!
4、按照如下方法,可以使A610(目前我的100e版本可以使用)每次开机的时候自动运行升级程序(不会破坏原有固件!):
(1)将SD卡格式化(我是使用相机里的功能)
(2)将test1-pre12-a610-100e.zip解压出来的两个文件DISKBOOT.BIN和PS.FIR复制到SD卡根目录中。
(3)将SD卡插回相机中,按上面的方法运行升级程序
(4)按打印键(还蓝色小LED的键),屏幕正文出现<ALT>
(5)按MENU键,按方向下键,选择Debug,进入
(6)选择Make card bootable。按确认键之后没有任何反应。
(7)关闭相机。将SD卡拔出,将LOCK(写保护锁)打开(向下拔)——这一步是必须的;写保护打开不会影响拍摄;一旦你再把写保护关闭,开机自动运行功能就取消,你再把它打开,自动运行就再起动。
(8)重新将SD卡插回相机。
好了,现在每次将相机打开的时候,我们的A610就有电量显示、时钟显示……哈哈

二、技巧总汇:
1如何知道我相机固件的版本是什么?
建立一个名为ver.req的空文件,放到SD卡的根目录下。
用VIEW模式启动相机,按下SET+DISPLAY(即按住DISPLAY,再按SET)。
这样你就可以看你相机的版本了。如果你的相机不支持这个功能,打印键的蓝灯会闪一下,然后相机自动关闭。这不会伤害你你的相机
2拍摄的时候不要使<ALT>(通过按打印键)功能启动,这样会导致拍摄的时候使用脚本功能(右下角会显示Default Script,变换参数拍摄三张照片,详见后面的“脚本说明”)
3当您使用固件升级自启动功能时,因为打开了写保护,所以当你用PC修改上面的文件时,别忘记把写保护关掉!
4现在生成的RAW文件是佳能的格式.CRW,请用专用的程序打开!
5在新出现的菜单中的RAW项,可选择是否拍摄RAW文件,和是否将JPG文件保存在同一目录中;当按打印键,出现<ALT>之后,可以通过删除键启动和取消拍摄RAW功能!这是一个快捷键
6yunxiang987提供:


引用:
--------------------------------------------------------------------------------
Some new features of Changeset 87 (and before):
可以改前缀后缀- You can choose prefix and extension of the RAW files (new standard: something like CRW_7513.CRW), and they get the same number and date of the Jpeg-Files. Helps a lot in the practical use of the RAWs. You can also choose where the RAWs should be stored. I put them in the same directory as the Jpegs.
可删raw- File browser can now delete files. Nice for unwanted RAWs.
读电子书- integrated text reader. If you want to read ebooks on your cam.
手电筒- Flashlight. If you switch the display to simple mode and flip and turn the LCD screen around, it becomes pure white. Might be helpful if you want to shoot a video in total darkness, and the object is only a few inches away. ^^

--------------------------------------------------------------------------------


三、关于RAW格式的资料汇总:
5月2日新增RAW解码说明
软件下载地址:

dcraw(Latest dcraw.exe build: April 29, 2007 15:48:32 PM MET) http://www.insflug.org/raw

DNG converter 1.1.4d http://www.zshare.net/download/dng4ps_1-1-4d-setup-exe.html

UFRaw(强烈推荐!)(注意:UFRaw须要GTK+才可以运行)
http://ufraw.sourceforge.net/
GTK+下载http://sourceforge.net/project/showfiles.php?group_id=121075

dcraw的使用
命令:dcraw -v -T snd_1174.crw
输出:
Loading Canon PowerShot A610 image from snd_1174.crw ...
Scaling with black 32, multipliers 1.564987 1.000000 1.710747 1.000000
AHD interpolation...
Converting to sRGB colorspace...
Writing data to snd_1174.tiff ...

-v参数可以不加;-T参数指可以生成Tiff文件;其他参数请看下面的手册(有时间我写一份详细的说明)
dcraw的手册请看:http://cybercom.net/~dcoffin/dcraw/dcraw.1.html
Dcraw的参数的翻译请看下面的链接:http://sprhawk.spaces.live.com/b ... 70E2CF489!848.entry

DNG Converter
可以转换,但是我这里查看不了,需要Photoshop的插件(Adobe Camera RAW plug-in for Photoshop CS/CS2/CS3),我因为机器太破了(PII 333Mhz,128MB),没有安装PS。


UFRaw(强烈推荐!)
UFRaw使用dcraw作软件处理后台的免费、开源软件。因为其使用图形界面,所以使用方便
(注意:要先下载GTK包才可以使用http://sourceforge.net/project/showfiles.php?group_id=121075)


启动画面:

参数设置:

导出图片:


1.老咸鱼:

引用:
--------------------------------------------------------------------------------
使用新版的dcraw程序,可以使用
dcraw -T -a IMG_1001.JPG
直接输出.TIFF文件(可以直接使用PS打开)不需要插件

--------------------------------------------------------------------------------


2.yunxiang987:

引用:
--------------------------------------------------------------------------------
1,建议推荐光影魔术手直接能打开拍摄的raw文件,因为其内置了新版dcraw。
2,专业些的方案:用DNGForPowerShot 1.1.4d 砖换拍的raw文件成dng格式,然后用photoshop或lightroom打开砖换
总之不推荐dcraw直接转。麻烦效果还不好

--------------------------------------------------------------------------------

3.alternanthera提问:

引用:
--------------------------------------------------------------------------------
每次都要关闭写保护才能把照片剪切下来,S3本身似乎不能识别Raw文件,所以用删除按钮只能删除相应的jpg,而raw还留着,如果不连电脑删除会越积越多,占用很大空间。

--------------------------------------------------------------------------------

chuang解答:

引用:
--------------------------------------------------------------------------------
可以进入 Miscellaneous 的 file browser 删除的

--------------------------------------------------------------------------------


还有请注意!不是说我们直接使用RAW出来的图像就比JPEG好多少,而把RAW转换出来的过程是很关键的!
简单地说,RAW的质量的确仅仅由相机的镜头、快门、光圈和CCD的效果决定。相机内部设定的例如白平衡是不会对RAW影响的(白平衡是相机内部自己加的),也就是说,在我们使用RAW转换程序的时候我们可以自己设置不同的白平衡参数(以及其他参数)
具体,请大家自行参考一些关于RAW的文章。

下面是dcraw手册(man page)的翻译(我自己翻译的,翻译仓促,有什么错误请指教):
http://sprhawk.spaces.live.com/b ... 70E2CF489!848.entry
更多信息请访问原作者的主页:
http://cybercom.net/~dcoffin/dcraw/

注意!根据如下网页测试,dcraw的解码效果要比一般的软件(比如Canon的File Viewer Utility和PhaseOne Capture One)要来得好!
http://www.insflug.org/raw

PS:我们为什么要使用RAW格式呢?
英文的,以A610为例,来解释我们为什么需要RAW!
http://digicanon.narod.ru/compare.htm

Why (and when) do i need raw support on my PowerShot?
为什么(什么时候)我需要我的PowerShot支持RAW呢?
+white ballance could be set AFTER shooting, in raw converter. A different settings could be tested
——我们可以在拍摄之后,通过raw的转换软件(在PC中),来设置白平衡。我们可以尝试不多的设置。
+although ADC in A-seties is only 10bit  RAW provides wider dynamic range and lower noice in shadow areas than camera jpeg
——尽管A系列的ADC(模拟数字转换器)只有十位(RAW比相机的jpeg格式提供更广的动态范围(是这么翻译吗?)和在阴影里更低的噪点)
+easier to edit
——更容易编辑
+unlike dcraw processing, in-camera image processing tends to loose saturation badly in deep shadow areas, so you are limited at recovering them using Photoshop Shadows/Highlights option
——不同于dcraw(一个软件)的处理,相机内的处理趋向于在深的阴影区严重地减少(loose)饱和度,因此,在使用Photoshop的阴影/高光选项恢复他们的时候,你会很受到限制
+you can recover more hihglights in case of slight overexposure
——万一有轻微的过度曝光,你可以恢复一点高光
……

四:关于固件“升级”的安全性
Shooting to RAW with Canon A-series PowerShot (DIGIC II Only)
http://digicanon.narod.ru/
WARNING! THIS CAN LEAD TO UNEXPECTED RESULTS! USE AT YOUR OWN RISK!
(警告!这可能导致意料之外的结果,后果自负)

This is just a program runs on PowerShot hardware, NOT the firmware update. It enables RAW shooting
这只是一个运行在PowerShot硬件平台上的一个程序,而不是固件升级。它允许拍摄RAW文件。

Find the FIRM UPDATE. Press Func. Set. Choose OK (don&#39;t worry - it WON&#39;T touch the firmware).
据作者的说明,使用的时候像进行firmware升级一样,但实际上程序是不影响firmware的(这样应该会比较安全吧)
这里是一个Yahoo!上的关于PowerShot编程的讨论组:
http://tech.groups.yahoo.com/gro ... ogramming_research/
FAQ - Canon programming/hacking
http://forum.xitek.com/showthread.php?threadid=418370

可能有许多人担心使用这些程序会对firmware(固件)产生影响,其实不是的。
firmware是固化在相机的ROM(FlashROM)里的,而上面的这些程序,则只是相机从SD卡中读取,在内存中运行的。

"raw-nowif" not a firmware, it&#39;s only small program that runs like firmware update.
"raw-nowif"不是一个固件,它只是像固件一样运行。
This program not change firmware, therefore no need backup. The program
is in operative memory, after complete power switching-off the program needs
to be started a new.
这个程序不改变固件,因此不需要备份(相机原来的firmware)。程序是在内存中运行的,当你关闭电源以后,程序需要重新运行
PS:关于DIGIC II使用的硬件平台

All DIGIC II cameras appear to be based on ARM + VxWorks.
DIGIC II = DIGIC + advanced video chip from S1 + ARM CPU , all in one
package.
是说所有的DIGIC II的相机都使用的是ARM(嵌入式处理器)+VxWorks(嵌入式操作系统)

五、升级后的效果(图片)



升级之后的情况:(注意:虽然我升级的时候卡里没有图像,但我已经试验过了,有图片也是可以升级的,升级方法请看上一个帖子)


升级运行后有一个版本说明
第一行是你用的版本
第二行是此版本编译的日期
第三行是你的相机及固件版本


这是在拍摄模式下的样子


比较完整的界面信息:






新出现的菜单:


新出现的菜单中的RAW项


新出现菜单的OSD项(注意看,有一个Show Clock,选择之后,会在屏幕右上角显示一个数字时钟)


新出现菜单的Histogram(直方图)项


新出现菜单的Script(脚本)项


新出现菜单的Visual Settings(视觉)项


新出现菜单的Miscellaneous(杂项)(这里有日历、文本阅读器、游戏等)


新出现菜单的Debug(调试)项(这里有Make card bootable)


新出现菜单的Reset Options to Default(恢复默认设置)项



六、关于固件升级中的脚本功能的使用的简要说明:
原文在此
HDK中包含了一个经过简单修改的由Adam Dunkels写的uBASIC编译器
http://www.sics.se/~adam/ubasic/

现在相机现在完全可以使用BASIC程序来实现脚本控制,程序用心模拟按键。

uBASIC方法简介
关键词:let,if,then,else,for,to,next,goto,gosub,return,end
专用关键词:click,shoot,sleep
变量:从a到z的26个小写字母。它们是16位的有符号整数
标签:这一版本的ubasic不支持行号。取而代之的是使用标签。一个标签必须单独写在一
行,并且以冒号开始

专用关键词语法:
click "button_name"
这里,"button_name"可以是以下的其中之一:up, down, left, right, set,
shoot_half, shoot_full, zoom_in, zoom_out, menu, display, print, erase。与此相关的按键状态是“点击”(按下和释放)。

shoot
拍摄一张照片。当每一个RAW数据准备好进行处理并且菜单中指定的时间过去
之后,这一过程才返回。
警告:当长时间曝光拍摄时,会有两个RAW文件,因此,这个功能不完整。
(原文是:as two "raws" are there when shooting with long exposures this
function is partially broken.)

sleep <number>
延迟<number>个毫秒。计时器精度大约10~30个毫秒

脚本必须被命名为SCRIPT.BAS,并放置在SD卡的根目录中。

默认的脚本如下:

代码:--------------------------------------------------------------------------------sleep 1000
if a<1 then let a=2;至少连拍2张
if b<1 then let b=3;至少每次变换3个档位
for s=1 to a;拍摄从第一张至第a张
  shoot;当前参数下拍摄一张
  for n=1 to b;变换参数b个档位。
   click "right";如果现在在Av(光圈优先下)模式下,右,相当于减小光
          ;圈;如果在Tv(快门优先),右相当于提高快门
  next n
next s
shoot
end
--------------------------------------------------------------------------------
注意,你可以从Alt.Conf. 菜单中设置变量a,b,c的值(我目前没明白,估计可能是指Script菜单项中的Shoot delay, shoot count和step,我还没有进一步的测试)

脚本文件最大为2KB。最多仅允许嵌套四个循环。可能嵌套十个gosub调用。

如果编译/解析错误发生,错误信息及行号会在显示器的左上角显示出来

使用label和gosub
对于复杂的编程任务,我们经常使用非常有用的gosub指令来将程序分割成几个小一点的子程序。你可以使用gosub指令来跳转到label。一个依次递增ISO值地拍摄3张照片的简单程序可能会是这样:

代码:--------------------------------------------------------------------------------
shoot
for i=1 to 3
  gosub "incISO"
  shoot
next i
for i=1 to 3
  gosub "decISO"
next i
end

:incISO
  click "menu"
  [some more clicks]
  return

:decISO
  click "menu"
  [some more clicks]
  return
--------------------------------------------------------------------------------
示例代码(yunxiang987提供)

代码:--------------------------------------------------------------------------------> Plus there&#39;s a setting called Natural Light+Flash that takes 2 pictures when you press the shutter. First with no flash and higher ISO with natural light and the second using the flash. You can choose the one you like later. Very useful in many conditions.
@后面的是注释
@title nat. light + flash
@param a steps without flash
@default a 1
@param b blank steps to reach smallest ISO
@default b 2
@param c waiting time (100ms) between actions
@default c 4
@param d initial delay
@default d 1

if a<1 then let a=1
if b<1 then let b=1
if c<1 then let c=1
if d<1 then let d=1

print "Please make sure that"
print "flash=off"
print "highest ISO is active"
sleep d*1000

for i=1 to a
  shoot
  click "left"
next i

for i=1 to b
  click "left"
  gosub "delay"
next i

click "set"
gosub "delay"
click "up"
gosub "delay"
click "up"

shoot

click "up"
gosub "delay"
click "set"

s=a+b
for i=1 to s
  gosub "delay"
  click "right"
next i

end

:delay
  sleep c*100
  return
--------------------------------------------------------------------------------

感谢legato0761提供:

引用:
--------------------------------------------------------------------------------
本人的A610已经用-100f文件破解成功,初步使用,谈一点感受。破解后新增加了较多功能,实用的有:RAW格式文件、电量显示、实时直方图、高光斑马显示以及类似“包围曝光”功能(或连拍,详见后述)。此外新增功能通过DC机背上的打印键进入ALT用MENU键调出后,用方向键和FUNC SET可以进入各功能的设置和LCD显示设置,功能和显示由菜单项目后的白点选定,LCD显示字符、电量图标以及直方图、斑马等的颜色、方式等也可自定义,并且设置后可以保存,非常方便。
★关于所谓的“包围曝光”功能,即新菜单中的Scripting拍摄,首先把DC放在拍摄模式的P-M任何一档,需要先启动曝光补偿并且调变焦量选择好画面大小,然后按打印钮进入ALT状态后用MENU键进入新菜单,用方向键移到Scripting Parameters项进行参数设置。shoot delay=拍摄间隔时间,shoot count=实际拍摄张数-1,step=参数步进值(即向右方向按键次数),设好后退出新Menu主菜单,但保持ALT状态(即不要按打印键退出ALT),此时即可进行Scripting拍摄。步进参数可以是EV值,也可以是光圈或快门值,可根据需要选择。如果选了EV值,通过适当设置就可以实现“包围曝光”的功能了,详见下述。
●举例:1/3EV的5张包围曝光拍摄:
DC放在拍摄模式的P、Av、Tv任一档,按曝光补偿扭开启EV补偿,方向键向左2次放到-2/3EV,变焦大小设好。按打印键进入ALT状态再按MENU,用方向键进入Scripting Parameters,shooting delay可以用默认,shooting count设4(实际拍摄就是5张),step设1。退出Scriping Para..,再退出主菜单保持ALT状态,对准目标拍摄,按下快门后即可顺序得到-2/3、 -1/3、 0、 +1/3、 +2/3EV 这5张照片。
▲注意:如果在进入ALT之前没有将DC上的曝光补偿开启,则Scripting拍摄只是一组参数相同的连拍。当然,连拍功能也是有用的。
★关于连拍:在Scripting拍摄之前,在P、Av、Tv、M档不开启EV补偿或快门、光圈值调整,即LCD上无绿色< >箭头,则进入ALT状态后进行Scripting拍摄,所得到的将是一组参数相同的照片,相当于连拍了。如果设置适当的拍摄间隔和拍摄张数,也许可用于自拍或定时拍摄。
(以上“曝光补偿”和“连拍”功能在DC的自拍模式下也有效)

补充 关于电量显示精度:
将电量显示放在电压档,分别使用已经出现电池告警和新充好的电池。DC放在拍摄档,在LCD上查看、记录这2个电压值,进入ALT菜单用前面记录的数值,调整电池参数的最小Min、和最大Max电压值,然后切换成%电量模式。再对Min和Max稍作微调,如此即可较精确地显示电量实际值了。(拍摄和回放模式电量显示有区别,拍摄较耗电,显示的电量略低,个人认为以拍摄模式电量为参考较妥)
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2025-6-19 04:21 , Processed in 0.011433 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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