Antes de empezar esto....quiero decirles que esto esta provado en db2020 - db2010/12 y PNX5230, no estan probados aun en A2......y tambien todos los creditos de este aporte son ppara "VMax"......bueno solo eso les queria decir...

MODIFICAR UN CAMDRIVER

Bueno aqui tratare mas o menos de explicarme y decir como hacer un camdriver intentare decir varios secretos mios y cosas de la cam

Para editar un camdriver lo abrimos con el bloc de notas
Los valores de un camdriver estan en hexadecimal seguro dicen como hago para poner valores haci? con la calculadora de Windows la ponen en modo cientifico dice Dec y Hex hex es hexadecimal si ponen el valor 13 en Dec y dan click en Hex les sale el valor en hexadecimal de 13

cuando abrimos un camdriver vemos esto

//================================================== =======
//Information section
//================================================== =======
info_name=MT9V112; //esto es el nombre del chip de la camara dejenlo asi^^
info_vendor=Micron; //Esto lo cambias por tu nombre
info_major_ver=4; // Esto se puede editar cambiar el 4 por tu version
info_minor_ver=0; // Esto se puede editar cambiar el 0 por tu version

luego vemos la secuencia de apagado y encendido

//================================================== =======
//Power on sequence
//================================================== =======
cam_power_on_0 = 5, 0, 0, 1, 64; // Pull rst pin and wait 100 ms
cam_power_on_1 = 5, 1, 12, 1, 0; // Set gpio 12 as output (VDD_SA, VDD_IO 2.7V; VDD_AF 2.7V)
cam_power_on_2 = 5, 2, 12, 0, 5; // Set gpio 12 low and wait 5 ms
cam_power_on_3 = 5, 3, 1, 32C8, 5; // El valor 32C8 es = a 13000 en decimal ese valor es la velocidad de la camara en Megahertz en la secuencia de encendido la cual puedden cambiar por 5DC0 que es 24 mhz claro puedes probar con otros valores mas altos o bajos
cam_power_on_4 = 5, 0, 0, 0, 64; // Release rst pin and wait 100 ms
//================================================== =======
//Power off sequence
//================================================== =======
cam_power_off_0= 5, 1, 12, 1, 0; // Set gpio 12 as output
cam_power_off_1= 5, 2, 12, 1, 5; // Set gpio 12 high
cam_power_off_2= 5, 3, 1, 1, 0; // Turn off 13 MHz clock

mas abajo veremos esto

cam_vf_clock_freq=1, 32c8;//Velocidad de la camara en modo video esta velocidad es 13 mHZ ustedes con la calculadora ponen el numero que ustedes quieran mayor a 13000 y le dan hez y salen 4 digitos por ejemplo si ponen 40000 en dec y le dan a hex les sale 9C40 ese es el valor en hex de 40000 que es igual a 40 MHz entre mas mhz mas fps en video lo cual mejoraria la calidad pero si suben mucho puede fallar la cam lo recomendao es 27 Mhz
cam_ss_clock_freq=1, 32c8;//13MHz esa es la velocidad de la camara en modo foto segun sergiober bajando este valor mejora la exposicion de la foto
cam_ss_retries=3; // Numero de veces que se reintenta tomar una foto subiendo este valor creo que es menos probable que salgan rayas arribas en las fotos no hay desarrollo de esto

luyego vemos esto
// ==================== Version ====================
// Major version stored in internal register 4 Colocamos nuestro numero de version
// Minor version stored in internal register 0 Aqui igual
//==================================================
seq_get_prop_0 = $s1 04 $s0 00; // Version: 4.0 Pueden poner lo que quieran luego del // y donde dice seq_get_prop_0 = $s1 04 $s0 00; el valor 04 lo pueden camibar y el 00 igual seq_get_prop_0 = $s1 10 $s0 00; por ejemplo ahi es vcersion 10.0

lugeo vemos mas abajo vr mode

41[80,60,3E8], // 128 x 96 Viewfinder Video record sqcif 10fps
42[B0,90,3E8], // 176 x 144 Viewfinder Video record qcif 10 fps
43[80,60,2BC], // 128 x 96 Viewfinder Video record sqcif 7,5 fps
44[B0,90,2BC], // 176 x 144 Viewfinder Video record qcif 7,5 fps


SOn los fps de video por tamaño 7.5 fps son los de modo nocturno y 10 fps son en dia
que quede claro lo que esta luego del // no altera nadaa en este caso 3E8 se refiere a 10 fps y 2BC a los 7.5 fps lo maximo de fps es 15 que pueden subir en donde dice 3E8 poner 5DC por ejemplo que son 1500 en decimal igual a 15 fps mas abajo les digo un truco para lograr mas fps

//================================================== =======
// macros to write registers of MT9V112
//================================================== =======

Luego de eso tenemos los registros XD

Colocamos

//Example: 3C means 0x3C = 60 => frame rate 60 / 4 = 15 fps
VR_normal_MODE_FR=60;//24fps
VR_night_MODE_FR=38;//14fps


bueno ahi ven explicoo 3C es 60 divido por 4 es 24 si colocamos 120 en dec lo pasamos a hex es 78 igual a 120 que dividideo entre 4 es 30 fps pueden probar A0 que es 160 dividido entre 4 es 40 fps es impsobikle pero uds ponen los que mas quieran lo mismo pasa en night mode se refiere a modo nocturno

Luego tenemos el perfil Doris
//ccm doris 10.04.06
color_correction=
#write_control(02 00AE) //BASE_matrix_signs
#write_control(09 00B1) //BASE_matrix_COEF_K1
#write_control(0A 0091) //BASE_matrix_COEF_K2
#write_control(0B 005B) //BASE_matrix_COEF_K3
#write_control(0C 005F) //BASE_matrix_COEF_K4
#write_control(0D 00DA) //BASE_matrix_COEF_K5
#write_control(0E 0029) //BASE_matrix_COEF_K6
#write_control(0F 0010) //BASE_matrix_COEF_K7
#write_control(10 006D) //BASE_matrix_COEF_K8
#write_control(11 00DF) //BASE_matrix_COEF_K9
#write_control(15 0000) //delta_COEF_signs
#write_control(16 0000) //delta_matrix_COEF_D1
#write_control(17 0000) //delta_matrix_COEF_D2
#write_control(18 0000) //delta_matrix_COEF_D3
#write_control(19 0000) //delta_matrix_COEF_D4
#write_control(1A 0000) //delta_matrix_COEF_D5
#write_control(1B 0000) //delta_matrix_COEF_D6
#write_control(1C 0000) //delta_matrix_COEF_D7
#write_control(1D 0000) //delta_matrix_COEF_D8
#write_control(1E 0000) //delta_matrix_COEF_D9
#write_control(5E 5F49) //ratio_BASE_REG
#write_control(5F 3A22) //ratio_delta_REG
#write_control(60 0002) //signs_delta_REG
#write_control(03 3923) //BASE_matrix_scale_K1_K5
#write_control(04 0724) //BASE_matrix_scale_K6_K9
#write_control(22 A078) // AWB_RED_limit
#write_control(23 A078) // AWB_BLUE_limit

Eso es dificl de hacer solo pondre los 2 doris modificados mas conocidos el de mi MaxCam

//MaxDoris 07.04.08
color_correction=
#write_control(02 00AE) //BASE_matrix_signs
#write_control(03 3923) //BASE_matrix_scale_K1_K5
#write_control(04 0724) //BASE_matrix_scale_K6_K9
#write_control(09 00B1) //BASE_matrix_COEF_K1
#write_control(0A 0091) //BASE_matrix_COEF_K2
#write_control(0B 005B) //BASE_matrix_COEF_K3
#write_control(0C 005F) //BASE_matrix_COEF_K4
#write_control(0D 00DA) //BASE_matrix_COEF_K5
#write_control(0E 0029) //BASE_matrix_COEF_K6
#write_control(0F 0010) //BASE_matrix_COEF_K7
#write_control(10 006D) //BASE_matrix_COEF_K8
#write_control(11 00DF) //BASE_matrix_COEF_K9
#write_control(15 0049) //delta_COEF_signs
#write_control(16 0017) //delta_matrix_COEF_D1
#write_control(17 0011) //delta_matrix_COEF_D2
#write_control(18 002E) //delta_matrix_COEF_D3
#write_control(19 0034) //delta_matrix_COEF_D4
#write_control(1A 0003) //delta_matrix_COEF_D5
#write_control(1B 003E) //delta_matrix_COEF_D6
#write_control(1C 004D) //delta_matrix_COEF_D7
#write_control(1D 005A) //delta_matrix_COEF_D8
#write_control(1E 006C) //delta_matrix_COEF_D9
#write_control(1F 00A0) //delta_matrix_COEF_D10
#write_control(5E 5F49) //ratio_BASE_REG
#write_control(5F 3A22) //ratio_delta_REG
#write_control(60 0002) //signs_delta_REG
#write_control(20 C814) //LUM_limitS_WB_stats
#write_control(21 8080) //R_B_GAIN_manual_WB
#write_control(22 A078) // AWB_RED_limit
#write_control(23 A078) // AWB_BLUE_limit
#write_control(24 7F00) //matrix_ADJ_limitS

Mi doris representa foto mas reales y no tan vivsas solo que son mas reales y se adaptan mas a la realidad ^^ y el otro doris

//ccm doris 10.04.06
color_correction=
#write_control(02 00AE) //BASE_matrix_signs
#write_control(09 00B4) //BASE_matrix_COEF_K1
#write_control(0A 00B1) //BASE_matrix_COEF_K2
#write_control(0B 0076) //BASE_matrix_COEF_K3
#write_control(0C 009C) //BASE_matrix_COEF_K4
#write_control(0D 0082) //BASE_matrix_COEF_K5
#write_control(0E 0030) //BASE_matrix_COEF_K6
#write_control(0F 0042) //BASE_matrix_COEF_K7
#write_control(10 003C) //BASE_matrix_COEF_K8
#write_control(11 009C) //BASE_matrix_COEF_K9
#write_control(15 0000) //delta_COEF_signs
#write_control(16 0000) //delta_matrix_COEF_D1
#write_control(17 0000) //delta_matrix_COEF_D2
#write_control(18 0000) //delta_matrix_COEF_D3
#write_control(19 0000) //delta_matrix_COEF_D4
#write_control(1A 0000) //delta_matrix_COEF_D5
#write_control(1B 0000) //delta_matrix_COEF_D6
#write_control(1C 0000) //delta_matrix_COEF_D7
#write_control(1D 0000) //delta_matrix_COEF_D8
#write_control(1E 0000) //delta_matrix_COEF_D9
#write_control(5E 5F49) //ratio_BASE_REG
#write_control(5F 3A22) //ratio_delta_REG
#write_control(60 0002) //signs_delta_REG
#write_control(03 2923) //BASE_matrix_scale_K1_K5
#write_control(04 04A4) //BASE_matrix_scale_K6_K9
#write_control(22 A078) // AWB_RED_limit
#write_control(23 A078) // AWB_BLUE_limit

Ese es el de sergiober un doris que no es mas real si no que llega a exagerar un poco un poco los colores no digo q la cam de sergiober sea malo solo unpoco exagerada y la mia es mas real pero colores que son de verdad los que se ven con los ojos xDDD

Mas abajo tnemos

pixel_noise_reduction =
#write_sensor(34 C019) // Este valor no se puede mofiicar pues se ve mal la cam
#write_sensor(40 1802) //Este valor puede ser aumentado por 1804 xxd solo ejemplo esto es prueba y error
#write_sensor(76 7360) // Este igual
#write_sensor(04 0284) // lo mismo este
#write_sensor(03 01E4) //Lo mismo este
#write_IFP(A0 0284) // Igual
#write_IFP(A3 01E4) //igual
#write_IFP(A6 0284) //igual
#write_IFP(A9 01E4) // igual

Encargado de reducir ruido
si se dan cuenta el valor 04 y 03 que son 284 y 1e4 si aumentan tiene que aumentar los numeros de abajo de igual forma .

Curva gamma
esta es la mia

//Black 5, Gamma 0.50, Contrast 1.25
#write_IFP(53 1809) //(2) gamma_A_Y1_Y2
#write_IFP(54 5630) //(2) gamma_A_Y3_Y4
#write_IFP(55 B48A) //(2) gamma_A_Y5_Y6
#write_IFP(56 E2CE) //(2) gamma_A_Y7_Y8
#write_IFP(57 FFF1) //(2) gamma_A_Y9_Y10
#write_IFP(58 0000) //(1) gamma_A_Y0
#write_IFP(DC 1809) //(16) gamma_B_Y1_Y2
#write_IFP(DD 5630) //(16) gamma_B_Y3_Y4
#write_IFP(DE B48A) //(16) gamma_B_Y5_Y6
#write_IFP(DF E2CE) //(16) gamma_B_Y7_Y8
#write_IFP(E0 FFF1) //(16) gamma_B_Y9_Y10
#write_IFP(E1 0000) //( gamma_B_Y0

Esto si no lo se explicar solo es eso la curva gamma

Y esta la de sergiober

#write_IFP(53 1306) //(2) gamma_A_Y1_Y2
#write_IFP(54 4B28) //(2) gamma_A_Y3_Y4
#write_IFP(55 A077) //(2) gamma_A_Y5_Y6
#write_IFP(56 CAB8) //(2) gamma_A_Y7_Y8
#write_IFP(57 E2D6) //(2) gamma_A_Y9_Y10
#write_IFP(58 0000) //(1) gamma_A_Y0
#write_IFP(DC 1306) //(16) gamma_B_Y1_Y2
#write_IFP(DD 4B28) //(16) gamma_B_Y3_Y4
#write_IFP(DE A077) //(16) gamma_B_Y5_Y6
#write_IFP(df cab8) //(16) gamma_B_Y7_Y8
#write_IFP(E0 E2D6) //(16) gamma_B_Y9_Y10
#write_IFP(E1 0000) //( gamma_B_Y0

Bueno aqui explico varias cosas utiles y trucos para hacer sus camdrivers luego posteare mas cosas




Segunda Parte: Modificaion Extra

Aqui vemos como cambiar los efectos negativo sepia blanco y negro por tipos de iluminacion

// --- White balance property 1 ------------------
//
// 0 => auto, (Thelma uses only auto)
// 1 => incandescent, 2 => fluorescent, 3 => clear sky, 4 => cloudy,
//------------------------------------------------
seq_set_prop_8_0 = #write_control (24 6018) //auto (desactivado)
#write_control (22 B078)
#write_control (23 9058)
#seq_set_prop_1_0 //desactivo efectos
$"doris_setuptest_WB Auto"
;
seq_set_prop_8_1 = #write_control (24 1518) //incandescent lamp (negativo)
#write_control (22 8878)
#write_control (23 9888)
;
seq_set_prop_8_2 = #write_control (24 6018) // fluorescent (sepia)
#write_control (22 8878)
#write_control (23 A898)
;
seq_set_prop_8_3 = #write_control (24 5050) // clear sky (daylight) (solarizar)
#write_control (22 8878)
#write_control (23 7868)
;
seq_set_prop_8_4 = #write_control (24 6060) // cloudy (blanco y negro)
#write_control (22 8878)
#write_control (23 8878)
;


solo buscan la propiedad White balancre property 1 con el notepad y la reemplazan con esa que cambia

pues el original dice 1_0 1_2 1_3 1_4 se cambian los 1 por 8

tambien deb en cambiar

// --- Effect property 8 -------------------------
// (Thelma doesn't use this property)
// 0 => normal, 1 => negative, 2 => solarize
// 3 => sepia, 4 => black & white
//------------------------------------------------
seq_set_prop_1_0 = #write_IFP(#register_modify(E2,$b1 00 0 3)); // normal
seq_set_prop_1_1 = #write_IFP(#register_modify(E2,$b1 03 0 3)); // negative
seq_set_prop_1_3 = #write_IFP(E2 8004); // solarize
seq_set_prop_1_2 = #write_IFP(#register_modify(E2,$b1 02 0 3) E3 b0 23); // sepia
seq_set_prop_1_4 = #write_IFP(#register_modify(E2,$b1 01 0 3)); // b&w

que cambia el 8 de la camara original por 1 eso es todo ahorita luego mas pregunten lo que quieran ......ojala les halla servido de algo....