IXUS 1000 HS Porting Thread - page 26 - DryOS Development - CHDK Forum

IXUS 1000 HS Porting Thread

  • 440 Replies
  • 166148 Views
Re: IXUS 1000 HS Porting Thread
« Reply #250 on: 18 / January / 2011, 11:53:27 »
Advertisements
I have update to 1049 Version

but i get compile error

ZSTEP_TABLE_SIZE

on old versions zstep table size was this

#define ZSTEP_TABLE_SIZE 7
static int nTxtbl[]={0,1,2,3,4,5,6};
#endif

I dont know, what is that, and how can i test if values are correct on IX1000

must this match the fl_tbl ?

fl_tbl[] = {
  {   0,   6300},
  { 100,  63000},


IX1000 use that with 2 values and the 100 zoom steps are between (i hope)
« Last Edit: 18 / January / 2011, 11:57:41 by Bernd R »
Ixus 1000 HS

*

Offline reyalp

  • ******
  • 14079
Re: IXUS 1000 HS Porting Thread
« Reply #251 on: 18 / January / 2011, 12:28:43 »
How many steps does ixus1000 *actually* have ? How many clicks on the zoomin does it take to go from wide to full zoom ? If it is a lot (tens or hundreds), then look to cameras like sx10 for an example. Otherwise, look at other ixus cameras.

The ZSTEP_TABLE_SIZE in kbd.c is used for remote zooming. It still needs a distinct number of steps, even if the camera zooms smoothly.

I have update to 1049 Version

but i get compile error

ZSTEP_TABLE_SIZE

on old versions zstep table size was this

#define ZSTEP_TABLE_SIZE 7
static int nTxtbl[]={0,1,2,3,4,5,6};
#endif

I dont know, what is that, and how can i test if values are correct on IX1000

must this match the fl_tbl ?

fl_tbl[] = {
  {   0,   6300},
  { 100,  63000},


IX1000 use that with 2 values and the 100 zoom steps are between (i hope)
Don't forget what the H stands for.

Re: IXUS 1000 HS Porting Thread
« Reply #252 on: 18 / January / 2011, 12:52:56 »
@reyalp
>How many steps does ixus1000 *actually* have ? How many clicks on the zoomin does it take to go from >wide to full zoom ?

it have 100 steps its a 10 * zoom camera 6.3 to 63 or 36-360 as 35 mm.the zoom switch support 2 speeds slow and fast move

so what zstep table should use ?

maybe you you can add this in main source please ?

define is  CAMERA_ixus1000_sd4500

here is the platform source i use

//zoom position is get_parameter_data(87)
static const struct {
   int zp, fl;
} fl_tbl[] = {
  {   0,   6300},
  { 100,  63000},
};
#define NUM_FL (sizeof(fl_tbl)/sizeof(fl_tbl[0]))


// Focal length range is 5.0 - 70,0 mm, 27.3 - 392 in 35-mm equivalent.
// So, CF_EFL = 27.3/5.0*10000=54600 or392/70*10000=56000
// diff = 54600 - 54566.6 = 1400, split it 1400 / 2 = 700
// add to base 56000 + 700 = 56700
// divide by 10 to avoid overflow in get_effective_focal_length()
#define CF_EFL  5714
const int zoom_points = 100;

int get_effective_focal_length(int zp) {
   return (CF_EFL*get_focal_length(zp))/1000;
}

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

I also get linker errors, seem file lib/ubasic/camera_functions.c

use a define that is not set in chdkshell.

#ifdef UBASIC_TEST

in chdkshell opt_ubasic and opt_lua is enable

this are the errors i get

luascript.o: In function `lua_run_restore':
luascript.c:(.text+0x88): undefined reference to `script_console_add_line'
luascript.o: In function `lua_get_key_arg':
luascript.c:(.text+0xaa): undefined reference to `script_keyid_by_name'
luascript.o: In function `luaCB_is_pressed':
luascript.c:(.text+0x7ba): undefined reference to `script_key_is_pressed'
luascript.o: In function `luaCB_is_key':
luascript.c:(.text+0x7da): undefined reference to `script_key_is_clicked'
luascript.o: In function `luaCB_md_get_cell_diff':
luascript.c:(.text+0x820): undefined reference to `md_get_cell_diff'
luascript.o: In function `luaCB_md_detect_motion':
luascript.c:(.text+0x916): undefined reference to `md_init_motion_detector'
luascript.o: In function `luaCB_print_screen':
luascript.c:(.text+0xa10): undefined reference to `script_print_screen_statement'
luascript.o: In function `lua_script_start':
luascript.c:(.text+0x22ea): undefined reference to `script_console_add_line'
../lib/lua/liblua.a(lbaselib.o): In function `luaB_print':
lbaselib.c:(.text+0xe0): undefined reference to `script_console_add_line'
« Last Edit: 18 / January / 2011, 13:01:30 by Bernd R »
Ixus 1000 HS

*

Offline reyalp

  • ******
  • 14079
Re: IXUS 1000 HS Porting Thread
« Reply #253 on: 18 / January / 2011, 16:00:31 »
it have 100 steps its a 10 * zoom camera 6.3 to 63 or 36-360 as 35 mm.the zoom switch support 2 speeds slow and fast move

so what zstep table should use ?
Like I said, follow the example of other cameras that have lots of zoom steps, e.g. SX10

Quote
luascript.o: In function `lua_run_restore':
luascript.c:(.text+0x88): undefined reference to `script_console_add_line'
...
When you update your source, you need to deal with any changes in the new source. It looks like you didn't do this correctly. If you are using a working copy of the trunk and svn update, this is almost automatic, and will generally not remove your local changes. If you choose not to use svn, then it's up to you to figure out how to deal with consequences. You can download or generate diffs from the trunk svn and apply those to your source tree instead.

If you didn't do a clean build, that could also cause lots of linker errors like this.

camera_functions.c shouldn't even be compiled unless you are building the ubasic test app.
Don't forget what the H stands for.


*

Offline asm1989

  • *****
  • 527
  • SX720, SX260, SX210 & SX200
Re: IXUS 1000 HS Porting Thread
« Reply #254 on: 18 / January / 2011, 16:32:48 »
@Bernrd,

Here you have the latest trunk 1050 including ixus1000 and sx210 source
http://www.4shared.com/file/kCTHZt61/sx210-ixus1000asm1989trunk1050.html

Re: IXUS 1000 HS Porting Thread
« Reply #255 on: 19 / January / 2011, 08:43:33 »
@asm1989
thanks for new files, it compile ok and work near as before

please add in your Platform source

NHSTUB(strcat, 0xFF8B5484)

in 100d stubs_entry_2.s

also you need find the address on your 100F firmware

this line is need to show script output on log console
Ixus 1000 HS

Re: IXUS 1000 HS Porting Thread
« Reply #256 on: 25 / January / 2011, 06:25:02 »
I now have add testcode to find out in the Camera easy what Pixel Format it use.

I make a testimage on monitor that show full red green and blue stripes.Now i center on each part of image(best is not zoom large, so Monitor grid is not record) and shoot a image.and the highest value on debug view is the number of Pixel that is sensitive to the color.

I try often and i get always the same results or my testcode is wrong.

This Camera have a

green red
blue green

pattern.

Wy this is the only camera with that pattern i dont understand.

@asm1989
maybe you can check if the testcode work ok, on SX210.you need enable misc values for debug
then highest value should show correct by name.the name (red green blue) is correct for this pattern

#define cam_CFAPattern 0x02010100 // Red  Green  Green  Blue

mean

when you focus on red part, you should get on text red the highest value on SX210.On IX1000 the value of a color is more than 200 units higher as other color, but of course its wrong Red  Green  Green  Blue

But wy is it wrong and all other Camera have this pattern not ?

I add in core/gui.c in that func this testcode.maybe if you have badpixels you need change x by +2 +4 e4tc.but IX1000 have no badpixel here.

void gui_draw_debug_vals_osd() {
#ifdef OPT_DEBUGGING
    if (conf.debug_misc_vals_show) {

//raw pixelformat testcode start

    int x = CAM_RAW_ROWPIX /2 , y = CAM_RAW_ROWS /2;
    sprintf(osd_buf, "1 red:%8d  ",get_raw_pixel(x,y));
    draw_txt_string(28, 5, osd_buf, conf.osd_color);
    sprintf(osd_buf, "2 green:%8d  ",get_raw_pixel(x+1,y));
    draw_txt_string(28, 6, osd_buf, conf.osd_color);
    sprintf(osd_buf, "3 green2:%8d  ",get_raw_pixel(x,y+1));
    draw_txt_string(28, 7, osd_buf, conf.osd_color);
    sprintf(osd_buf, "4 blue:%8d  ",get_raw_pixel(x+1,y+1));
    draw_txt_string(28, 8, osd_buf, conf.osd_color);

// raw pixelformat testcode end

Edit.Here i have camera.h file and raw.c that show correct color images in DNG RAW upload.I have also update keybd.c to work better and the capt_seq.c  for 10d is change to get badpixel intern work.

http://www.zshare.net/download/857007332d47345d/

#define cam_CFAPattern 0x01020001 // Green  red  blue  Green

« Last Edit: 25 / January / 2011, 11:45:34 by Bernd R »
Ixus 1000 HS

Re: IXUS 1000 HS Porting Thread
« Reply #257 on: 28 / January / 2011, 12:35:48 »
I want now boot from SD Card, but it do not work.i add

void __attribute__((noreturn)) my_restart()
{
    blink();


here.
firmware update work of course and blink, but when i activate write protect switch of the SD-Card, then nothing happen.no light goes on when i switch on Camera with power or play button
I need remove battery to get camera working.

I test too this code, but does not help

    .section .entry

   MOV     SP, #0x1900
   MOV     R11, #0
   B   my_restart

I format my 4 GB Card with cardtricks 1.44 as FAT and press make bootable.Now in line chdk boot stand
"ON BOOTDISK at 0x40".and on Filesystem it show FAT.So i think its ok and is FAT16.

there are other options as CF Bootsector, Allow Fix Disk, this i have in default setting(not checked)

Have i do something wrong ?

@asm1989 can you please test if your Ixus 1000 boot ?
Ixus 1000 HS


*

Offline asm1989

  • *****
  • 527
  • SX720, SX260, SX210 & SX200
Re: IXUS 1000 HS Porting Thread
« Reply #258 on: 28 / January / 2011, 13:01:51 »
@Bernrd,
No It dosnt auto boot, only manual

about the raw stuff didnt have time to check it yet.

Re: IXUS 1000 HS Porting Thread
« Reply #259 on: 29 / January / 2011, 06:08:25 »
@asm1989
>No It dosnt auto boot, only manual

thanks for info, so i know i do nothing wrong on init, i search in forum and compare now with G12 and see that in makefile.inc in G12 is

NEED_ENCODED_DISKBOOT=5

this i add in the IX1000 makefile too and now blink work, when i add here.

void __attribute__((noreturn)) my_restart()
{
    blink();

but it still crash.so i need add blink and look how much is execute.

>about the raw stuff didnt have time to check it yet.

I have too no time, but i want IX1000 get working, because it is in imagequality together with zoom and together with speed together with video quality, and size the best solution.

Now with RAW image even at ISO 800 look great, colors are more correct as in jpg.fine details as hair and skins look much better.

I use silky picture developer studio 3 free for current testing.its fast and have a zebra view.

that it have no wideangle i find not so worse, because the lens distortion get below 36 mm very high, and i want do also Macros without distortion.and most easy for macro is use no zoom.

on photography blog, can see that IX 1000 pics are better but here are measuremts with texture loss, noise.

http://www.chip.de/bestenlisten/Bestenliste-Digitalkameras--index/detail/id/829/


But if you have time its intrestresting to see a RAW of same szene with both Camera SX210 and IXus1000 at ISO 800 and ISO min

here

SX210
ISO min (80) 10% texture loss, 1.5 noise, 1288 line pair
ISO 400        20% texture loss, 2.25 noise, 1124 line pair
ISO 800        15% texture loss  3.2 noise  1035 lines pair
ISO 1600      15% texture loss  2.7  noise   802 line pair

Ixus 1000

ISO min(125) 10% texture loss 1.15 noise, 1159 lines
ISO 400         15% texture loss 1.8   noise, 1050 line pair
ISO 800         25% texture loss 1.95 noise, 1002 line pair
ISO 1600       20% texture loss 2.3 noise    877 line pair

when see the WB2000 with sony BSI sensor(that have on most cam ISO 125 min)the WB2000 give more better image quality, when use ISO 80.

WB2000 have on ISO 80 texture loss 5% and Noise 1.4 and 1175 line pair

but currently i get ISO overwrite not work on IX1000.SX30 thread i read, seem same problem.
but the values are not so true i think because when look on Panasonic FZ100 RAW, they are very noisy and jpg have lots texture loss can see with eyes, but they measure only 5% at ISO min(100)
« Last Edit: 29 / January / 2011, 06:10:32 by Bernd R »
Ixus 1000 HS

 

Related Topics