CHDK Wiki
Advertisement

A collection of movie mode (and other) capabilities.


Columns

Sensor: Pixel count, size

S. type (sensor type): CCD / CMOS

Movie fmt.: Movie file format, video codec (Canon's AVI files always contain MJPEG compressed video)

Max. movie res.: Highest movie resolution @ fps, source dimensions, source pixel format

Other m. res.: Another "interesting" supported movie mode

Enc.: Movie video frame encoder routine

Notes:

  • rc: officially remote controllable via PC (includes liveview over ptp)
  • raw: official raw support (in still image mode)


Table

P-ID Model DIGIC OS Sensor S. type

Movie
fmt.

Max. movie
res.

Other m.
res.

Enc. notes
30BF SD300 / IXUS40 II Vx 4M, 1/2.5" CCD AVI 640x480@30
30C0 SD200 / IXUS30 II Vx 3.2M, 1/2.5" CCD AVI 640x480@30
720x480, Y411
30F0 S2IS II Vx 5M, 1/2.5" CCD AVI 640x480@30 rc
30F2 SD500 / IXUS700 II Vx 7.4M CCD AVI 640x480@30
30F4 SD30 / IXUS IZOOM II Vx 5M 1/2.5" CCD AVI 640x480@10
30F8 A430 II Vx 4M, 1/3" CCD AVI 640x480@10
720x568, Y411
320x240@30
360x191, Y411
30F9 A410 II Vx 3.2M, 1/3.2" CCD AVI 640x480@10
720x480, Y411
30FA S80 II Vx 8M, 1/1.8" CCD AVI

1024x768@15

640x480@30 rc
30FC A620 II Vx 7.1M, 1/1.8" CCD AVI 640x480@30 rc
30FD A610 II Vx 5M, 1/1.8" CCD AVI 640x480@30
30FE SD630 / IXUS65 II Vx 5.5 6M, 1/2.5" CCD AVI 640x480@30
720x528, Y411
30FF SD450 / IXUS55 II Vx 5M 1/2.5" CCD AVI 640x480@30
3100 TX-1 III Vx 7.1M, 1/2.5" CCD AVI 1280x720@30 320x240@60 MJPEG, 60fps has no short time limit
310E SD400 / IXUS50 II Vx 5M, 1/2.5" CCD AVI 640x480@30
310F A420 II Vx 4M, 1/3" CCD AVI 640x480@10
720x568, Y411
320x240@30
360x191, Y411
vx1
3115 SD900 / IXUS900 Ti III Vx 5.5 10M, 1/1.8" CCD AVI 1024x768@15 640x480@30
3116 SD550 / IXUS750 II Vx 7.1M, 1/1.8" CCD AVI 640x480@30
3117 A700 II Vx 6M, 1/2.5" CCD AVI 640x480@30
3119 SD700IS / IXUS800IS II Vx 6M, 1/2.5" CCD AVI 640x480@30
311A S3IS II Vx 6M, 1/2.5" CCD AVI 640x480@30 rc
311B A540 II Vx 5.5 6M, 1/2.5" CCD AVI 640x480@30
311C SD600 / IXUS60 II Vx 6M, 1/2.5" CCD AVI 640x480@30
3125 G7 III Vx 5.5 10M, 1/1.8" CCD AVI 1024x768@15 rc
3126 A530 II Vx 5M, 1/2.5" CCD AVI 640x480@10 320x240@20
3136 SD800IS / IXUS850IS III Vx 5.5 7.1M, 1/2.5" CCD AVI 640x480@30
3137 SD40 / IXUS I7 III Vx 5.5 7.1M, 1/2.5" CCD AVI 640x480@30
3138 A710 II Vx 7.1M, 1/2.5" CCD AVI 640x480@30
3139 A640 II Vx 10M, 1/1.8" CCD AVI 640x480@30 rc
313A A630 II Vx 8M, 1/1.8" CCD AVI 640x480@30
3148 S5IS III Dry 2.3 r20 8M, 1/2.5" CCD AVI 640x480@30 rc
3149 A460 II Vx 5M, 1/3" CCD AVI 640x480@10 320x240@30
314B SD850IS / IXUS950IS III Vx 5.5 8M, 1/2.5" CCD AVI 640x480@30 320x240@60
314C A570IS III Vx 5.5 7.1M, 1/2.5" CCD AVI 640x480@30 320x240@60
314D A560 III Vx 5.5 7.1M, 1/2.5" CCD AVI 640x480@30 320x240@60
314E SD750 / IXUS75 III Vx 5.5 7.1M, 1/2.5" CCD AVI 640x480@30 320x240@60 +low frame rate 640x480 movie
314F SD1000 / IXUS70 III Vx 5.5 7.1M, 1/2.5" CCD AVI 640x480@30 320x240@60
3150 A550 II Vx 7.1M, 1/2.5" CCD AVI 640x480@30 320x240@60
3155 A450 II Vx 5M, 1/3" CCD AVI 640x480@10 320x240@30
315A G9 III Dry 2.3, r23 12.1M, 1/1.7" CCD AVI 1024x768@15 640x480@30 raw, rc, +low frame rate 640x480 movie
315B A650IS III Dry 2.3 12.1M, 1/1.7" CCD AVI 640x480@30 no 60fps mode
315D A720IS III Dry 2.3, r23 8M, 1/2.5" CCD AVI 640x480@30
315E SX100IS III Dry 2.3, r23 8M, 1/2.5" CCD AVI 640x480@30
640x480, UYVY
320x240@30
360x240, Y411
dry1 rc
315F SD950IS / IXUS960IS III Dry 2.3, r23 12.1M, 1/1.7" CCD AVI 1024x768@15 640x480@30 +low frame rate 640x480 movie, no 60 fps mode
3160 SD870IS / IXUS860IS III Dry 2.3, r23 8M, 1/2.5" CCD AVI 640x480@30 +low frame rate 640x480 movie, no 60 fps mode
3173 SD890IS / IXUS970IS III Dry 2.3, r23 10M, 1/2.3" CCD AVI 640x480@30 +low frame rate 640x480 movie, no 60 fps mode
3174 SD790IS / IXUS90IS III Dry 2.3, r23 10M, 1/2.3" CCD AVI 640x480@30 +low frame rate 640x480 movie, no 60 fps mode
3175 SD770IS / IXUS85IS III Dry 2.3, r23 10M, 1/2.3" CCD AVI 640x480@30 +low frame rate 640x480 movie, no 60 fps mode
3176 A590IS III Dry 2.3, r23 8M, 1/2.5" CCD AVI 640x480@20 320x240@30
3177 A580 III Dry 2.3, r23 8M, 1/2.5" CCD AVI 640x480@20 320x240@30
317A A470 III Dry 2.3, r23 7.1M, 1/2.5" CCD AVI 640x480@20
640x480, UYVY
320x240@30
360x240, Y411
dry1
3184 SD1100IS / IXUS80IS III Dry 2.3, r23 8M, 1/2.5" CCD AVI 640x480@30 +low frame rate 640x480 movie, no 60 fps mode
318D SX10 4 Dry 2.3, r31 10M, 1/2.3" CCD MOV, H.264 640x480@30
318E A1000IS III Dry 2.3, r31 10M, 1/2.3" CCD AVI 640x480@30
318F G10 4 Dry 2.3, r31 14.7M, 1/1.7" CCD MOV, H.264 640x480@30 raw, rc
3191 A2000IS III Dry 10M, 1/2.3" CCD AVI 640x480@30
3192 SX110IS III Dry 9M, 1/2.3" CCD AVI 640x480@30 rc
3193 SD990IS / IXUS980IS 4 Dry 2.3, r31 14.7M, 1/1.7" CCD MOV, H.264 640x480@30
3195 SX1 4 Dry 10M, 1/2.3" CMOS MOV, H.264 1920x1080@30 640x480@30 raw*
3196 SD880IS / IXUS870IS 4 Dry 10M, 1/2.3" CCD MOV, H.264 640x480@30
31BC D10 4 Dry 2.3, r31 12.1M (12.7M), 1/2.3" CCD MOV, H.264 640x480@30
31BD SD960IS / IXUS 110 4 Dry 12.1M (12.4M), 1/2.3" CCD MOV, H.264 1280x720@30 640x480@30
31BE A2100IS 4 Dry 2.3, r31 12.1M (12.7M), 1/2.3" CCD AVI 640x480@30
31BF A480 III Dry 10M, 1/2.3" CCD AVI 640x480@30
31C0 SX200IS 4 Dry 12.1M (12.4M), 1/2.3" CCD MOV, H.264 1280x720@30 640x480@30
31C1 SD970IS / IXUS 990 4 Dry 12.1M (12.4M), 1/2.3" CCD MOV, H.264 1280x720@30 640x480@30
31C2 SD780IS / IXUS100IS 4 Dry 2.3, r31 12.1M (12.4M), 1/2.3" CCD MOV, H.264 1280x720@30 640x480@30
31C3 A1100IS 4 Dry 2.3, r31 12.1M (12.7M), 1/2.3" CCD AVI 640x480@30
31C4 SD1200IS / IXUS95IS 4 Dry 2.3, r31 10M, 1/2.3" CCD AVI 640x480@30
31DF G11 4 Dry 2.3, r39 10M (10.4M), 1/1.7" CCD MOV, H.264 640x480@30 raw
31E0 SX120IS 4 Dry 2.3, r39 10M (10.3M), 1/2.5" CCD AVI 640x480@30
31E1 S90 4 Dry 2.3, r39 10M (10.4M), 1/1.7" CCD MOV, H.264 640x480@30
31E4 SX20 4 Dry 2.3, r39 12.1M (12.4M), 1/2.3" CCD MOV, H.264 1280x720@30 640x480@30
31E5 SD980 / IXUS200IS 4 Dry 2.3, r39 12.1M (12.4M), 1/2.3" CCD MOV, H.264 1280x720@30 640x480@30
31E5 SD940 / IXUS120IS 4 Dry 2.3, r39 12.1M (12.4M), 1/2.3" CCD MOV, H.264 1280x720@30 640x480@30
31EF A495 III Dry 2.3, r43 10M (10.3M), 1/2.3" CCD AVI 640x480@30
31F0 A490 III Dry 2.3, r43 10M (10.3M), 1/2.3" CCD AVI 640x480@30
31F1 A3100 III Dry 2.3, r43 12.1M (12.4M), 1/2.3" CCD AVI 640x480@30
31F2 A3000 III Dry 2.3, r43 10M (10.6M), 1/2.3" CCD AVI 640x480@30
31F3 SD1400IS (IXUS130) 4 Dry 2.3, r43 14.1M (14.5M), 1/2.3" CCD MOV, H.264 1280x720@30 640x480@30
31F5 SD3500IS (IXUS210IS) 4 Dry 14.1M (14.5M), 1/2.3" CCD MOV, H.264 1280x720@30 640x480@30
31F6 SX210 4 Dry 2.3, r43 14.1M (14.5M), 1/2.3" CCD MOV, H.264 1280x720@30 640x480@30
31F7 SD4000IS (IXUS300HS) 4 Dry 2.3, r43 10M (10.6M), 1/2.3" CMOS MOV, H.264 1280x720@30 320x240@240
31F8 SD4500IS (IXUS1000HS) 4 Dry 2.3, r45 10M, 1/2.3" CMOS MOV, H.264 1920x1080@24 1280x720@30
*320F G12 4 Dry 2.3, r45 10M (10.4M), 1/1.7" CCD MOV, H.264 1280x720@24 640x480@30 raw
3210 SX30 4 Dry 2.3, r45 14.1M (14.5M), 1/2.3" CCD MOV, H.264 1280x720@30 640x480@30
3211 SX130IS 4 Dry 2.3, r45 12.1M (12.4M), 1/2.3" CCD MOV, H.264 1280x720@30 640x480@30
3212 S95 4 Dry 2.3, r45 10M (10.4M), 1/1.7" CCD MOV, H.264 1280x720@24 640x480@30 raw
3223 A3300 4 Dry 2.3, r47 16M (16.4M), 1/2.3" CCD MOV, H.264 1280x720@30 640x480@30
3224 A3200 4 Dry 2.3, r47 14.1M, 1/2.3" CCD MOV, H.264 1280x720@30 640x480@30
3226 A800 III Dry 2.3, r47 10M (10.6M), 1/2.3" CCD AVI 640x480@30
3228 SX230HS 4 Dry 2.3, r47 12.1M (12.8M), 1/2.3" CMOS MOV, H.264 1920x1080@24 320x240@240
322A A2200 4 Dry 2.3, r47 14.1M, 1/2.3" CCD MOV, H.264 1280x720@30 640x480@30
*322B A1200 4 Dry 2.3, r47 12.1M (12.7M), 1/2.3" CCD MOV, H.264 1280x720@24 640x480@30
322C SX220HS 4 Dry 2.3, r47 12.1M (12.8M), 1/2.3" CMOS MOV, H.264 1920x1080@24 320x240@240
3234 SX150IS 4 Dry 2.3, r49 14.1M (14.5M), 1/2.3" CCD MOV, H.264 1280x720@30 640x480@30
3236 S100 5 Dry 2.3, r49 12.1M (13.3M), 1/1.7" CMOS MOV, H.264 1920x1080@24 320x240@240 raw
3238 SX40 5 Dry 2.3, r49 12.1M (12.8M), 1/2.3" CMOS

MOV, H.264

1920x1080@24 320x240@240

Technical information

Video frame encoder routine

vx1) Earlier VxWorks / DIGIC II, MJPEG
A420, 100b

This may not apply to models that have a 1024x768 mode...

The target frame resolution is decided in the encoder routine.
The source is always a 720px wide framebuffer, the source frame is always
"top left".
The source pixel format is always Y411.

Parameters of sub_FFC80EE4 (values in 320x240 movie mode, while recording),
might contain mistakes
r0: address of the current framebuffer
r1: 360, src frame width in pixels
r2: 191, src frame height in pixels
r3: destination address (compressed frame to be placed at, the co-processor
    can only write to 32bit aligned addresses!), useful mjpeg data begins
    at start+0x18 or start+0x1a with the current canon code
    (alignment is 2 bytes when recording a movie)
//passed on caller's stack:
[sp+0x00]: 0x20000, probably compressed framesize limit
[sp+0x04]: 0 ... offset?
[sp+0x08]: 0 ... offset?
[sp+0x0c]: pointer to avi vidframe size (on caller's stack), to be filled by the encoder routine
[sp+0x10]: [0x720c8] = 0xffc7bb54, looks like a pair of quantization tables
[sp+0x14]: [0x720d4], compression quality (0..99?)
[sp+0x18]: caller's sp+0x1c, gets set to 0 when compression was ok
dry1) Earlier DryOS / DIGIC III, MJPEG
SX100, A470

The target frame resolution is also decided in the encoder routine.
The source framebuffer's dimensions vary depending on the movie mode.
The routine can handle at least 2 pixel formats: Y411, UYVY
There are signs of a third possible format which uses 32 bits per pixel (RGBA?).
In case of the SX100, this encoder routine is also called from the "remote EVF"
routine, so the remote live view also uses MJPEG compression.

Parameters of sub_FFCD75D4 (SX100IS, 100c)
r0: address of the current framebuffer
r1: src frame width in pixels
r2: src frame height in pixels
r3: destination address (alignment: 2 bytes)
//passed on caller's stack:
[sp+0x00]: probably compressed framesize limit in bytes
[sp+0x04]: 0 ... offset?
[sp+0x08]: 0 ... offset?
[sp+0x0c]: pointer to avi vidframe size (on caller's stack), to be filled by the encoder routine
[sp+0x10]: quantization table address
[sp+0x14]: compression quality (0..99?)
[sp+0x18]: src pixel format (0=Y411, 1=UYVY)
[sp+0x1c]: src framebuffer width in pixels
[sp+0x20]: pointer to "compression OK" flag, gets set to 0 when compression was ok




Table shamelessly stolen from P-ID (Table).

Advertisement