|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - jaumegs
1
« en: Jueves 16 de Diciembre de 2010, 14:22 »
Tengo una duda respecto al vídeo entrelazado.
Entiendo que cada cuadro se divide en dos, uno con las líneas impares y otro con las pares. Lo que no entiendo correctamente es cómo se muestran las distintas divisiones.
Pongamos el caso del formato PAL: 720x576 pixels 25 Hz y profundidad de color de 24 bits.
La información al respecto del vídeo entrelazado menciona que la resolución vertical es menor que para el caso del vídeo progresivo. También mencionan que se necesita menor bitrate para el entrelazado.
Esto me confunde, pues según lo entiendo yo, la única diferencia es que cada fotograma de 720x576 se muestra mitad y mitad a 50 Hz. Esto significa que la resolución de la imagen y el bitrate son exactamente los mismo...
Otra opción, la cual no he leído explícitamente en ninguna parte, es que las imágenes sean de 720x288, mostrando dos a la vez obteniendo una resolución aparente de 720x576. En este caso la resolución vertical y el bitrate se dividen por dos, coincidiendo con los comentarios que he leído.
La primera explicación supone que cada cuadro (fotograma) de 720x576 se divide en dos campos de 720x288 pixels cada uno y se muestran en el siguiente orden:
pintamos las líneas impares del campo 1 pintamos las líneas pares del campo 1 pintamos las líneas impares del campo 2, se sobreescriben las del campo 1 pintamos las líneas pares del campo 2, se sobreescriben las del campo 1 ...
La segunda explicación supone que se cogen dos campos de 720x288 cada uno, siendo cada campo un fotograma del vídeo y se superponen en una pantalla de 720x576, ocupando un fotograma las líneas impares y el otro las pares.
pintamos fotograma 1 en las líneas impares pintamos fotograma 2 en las líneas pares pintamos fotograma 3 en las líneas impares, se sobreescribe en fotograma 1 pintamos fotograma 4 en las líneas pares, se sobreescribe en fotograma 2
Para el primer caso tiene lógica eso de la duplicación de frecuencia. Nosotros enviamos las imágenes a 25 Hz y la pantalla las muestra a 50 Hz (las divide en dos y las muestra por separado). Sin embargo, para el segundo no...
¿Alguien puede aclararme esta duda?
Gracias.
2
« en: Miércoles 1 de Diciembre de 2010, 18:42 »
Ya he averiguado el comportamiento completo de Rnd(): long long seed = 0x50000L; float rnd (float number) { unsigned char* byte; long long result; if (number > 0) { seed = (seed * 0x43fd43fdLL + 0xc39ec3LL) & 0xffffffLL; } else if (number < 0) { byte = (unsigned char *) &number; result = (byte[2] << 16) + (byte[1] << 8) + byte[0] + byte[3]; seed = (result * 0x43fd43fdLL + 0xc39ec3LL) & 0xffffffLL; } return (float) seed / (float) 16777216.0; }
Es necesario usar el tipo long long, pues en la multiplicación se puede producir desbordamiento. Esta versión de Rnd() funciona exactamente igual que la de Visual Basic; al menos es lo que parece tras realizar múltiples pruebas (0, positivos, negativos...). Respecto a Randomize(), no tengo ni idea de por donde pillarla. Saludos.
3
« en: Miércoles 1 de Diciembre de 2010, 14:17 »
Necesito implementar las funciones Rnd y Randomize de Visual Basic en un lenguaje más rápido para un ejercicio recreativo de criptografía. Es preciso que sean las mismas funciones y que devuelvan los mismos valores. Por ahora tengo lo siguiente: #define X0 0x50000L // 327680 #define A 0x43fd43fdL // 1140671485 #define C 0xc39ec3L // 12820163 #define M 0xffffffL // 2^24 - 1 long seed = X0; float Rnd (long Number) { if (Number > 0) { seed = (seed * A + C) & M; } else if (Number < 0) { // No estoy seguro de esta parte... } return (float) seed / (float) 16777216.0; }
El resultado de llamar a Rnd() con un argumento nulo o positivo es el esperado, sin embargo, no se como implementar Rnd() cuando el argumento es negativo ni tampoco Randomize(). He encontrado una web que supuestamente explica el funcionamiento de ambas funciones, pero o yo no lo entiendo o la explicación de Randomize es incorrecta. La dirección es la siguiente http://www.experts-exchange.com/A_11114.html. ¿Alguien tiene idea de como implementar Rnd() y Randomize() de Visual Basic en C? Gracias. Nota del administrador: Modificado el enlace al artículo ya que http://www.15seconds.com/issue/051110.htm ha dejado de funcionar.
4
« en: Viernes 19 de Noviembre de 2010, 16:11 »
el rol de una librería es ofrecer servicios, no controlar el flujo de ejecución de la aplicación o decidir por ella Me parece un buen argumento. Gracias por la respuesta. Ahora supongamos que la llamada a la función no se realiza con los parámetros o en el contexto adecuado, es decir, el programador comete un error en su uso. Devolver un código de error puede enmascarar el error, pues si es el programador el que lo comete lo más probable es que no añada la capacidad al programa para detectarlo y el error se extienda hasta que el sistema operativo o el usuario detenga la ejecución. En este caso, a mi entender, abortar la ejecución e indicar dónde se ha producido el error es la mejor opción, pues permite detectarlo y corregirlo. ¿Mis razonamientos son correctos o me equivoco? ¿Alguna otra sugerencia? Respecto a la corrección "librería, no biblioteca" digo en mi defensa que la traducción de library, palabra inglesa de donde procede, puede ser cualquiera de las dos. Según el DRAE. biblioteca. (Del lat. bibliothēca, y este del gr. βιβλιοθήκη). 1. f. Institución cuya finalidad consiste en la adquisición, conservación, estudio y exposición de libros y documentos. 2. f. Local donde se tiene considerable número de libros ordenados para la lectura. 3. f. Mueble, estantería, etc., donde se colocan libros. 4. f. Conjunto de estos libros. [...] librería. 1. f. biblioteca (‖ local en que se tienen libros). 2. f. biblioteca (‖ conjunto de estos libros). 3. f. Tienda donde se venden libros. 4. f. Ejercicio o profesión de librero. 5. f. Mueble con estantes para colocar libros. 6. f. Am. papelería (‖ tienda). Las dos palabras pueden actuar como sinónimos, sin embargo, biblioteca siempre significa "colección de libros", pero libería puede significar "local de venta de libros". A mi entender la dos palabras son igual de adecuadas. Gracias.
5
« en: Viernes 19 de Noviembre de 2010, 15:16 »
Una hipotética biblioteca C me ofrece una función para crear un objeto en memoria (no confundir con el término objeto de la POO). Esta función reserva la memoria necesaria para su propósito mediante otra biblioteca o una llamada al sistema; el mecanismo exacto no es importante. Si no consigue reservar la memoria a la primera lo intenta automáticamente unos milisegundos más tarde o simplemente espera a que haya memoria disponible (no está pensada para aplicaciones a tiempo real).
Supongamos que tras una llamada correcta (parámetros y contexto adecuados) no consigue reservar memoria.
¿Cuál debe ser la respuesta de dicha función? ¿Abortar la ejecución o devolver un código de error?
Mi razón me lleva a las siguientes conclusiones:
Si la tarea que está realizando el programa es crítica o no lo es pero tampoco tiene otras tareas que realizar, retornar un código de error no tiene demasiado sentido, pues el programa quedará paralizado. En este caso abortar la ejecución parece la opción más sensata.
Sin embargo, si la tarea no es crítica y hay otras por hacer, retornar un código de error permite al programa seguir con su trabajo e informar al usuario del suceso y darle la opción de recuperar el error.
Sea cual sea el caso, la función no tiene forma de conocerlo, así que abortar la ejecución puede ser una medida demasiado drástica.
Estoy confuso. Los nuevos lenguajes de programación y librerías tienden a incorporar mecanismos de captura y recuperación de errores, pero muchos programadores con experiencia son detractores de tales medidas.
Claro está que hay situaciones extremas que obligan a tomar una u otra opción sin discusión. Por ejemplo, el sistema de seguridad de una central nuclear no puede abortar la ejecución así por la buenas ni un sencillo programa tipo ls o dir necesita hacer filigranas si es incapaz de leer el sistema de archivos. Pero en el resto de situaciones no se que camino tomar.
¿Qué me recomiendan?
Gracias.
6
« en: Domingo 27 de Agosto de 2006, 23:43 »
que grabador me sugieren construirme que en teoría funcione con el soft que me sugirieron. Perdón por mi contestación, no me fijé en estas líneas Como que no conozco el programa no te puedo ayudar mucho... Pero por lo que he visto los programadores por puerto paralelo son los más compatibles con todo, otra cosa ya es cual elegir... Saludos
7
« en: Sábado 26 de Agosto de 2006, 18:57 »
Grabadores para pic... pues cualquiera, el primero que encuentres que veas sencillito y que tenga compatibilidad para muchos pic diferentes. Yo personalmente te recomiendo uno que programe a través del puerto paralelo, ya que los que lo hacen a través del puerto de serie no son compatibles entre distintos sistemas operativos como Linux y Windows (hay algunos que si, pero a la mayoría hay que realizarle alguna modificación para que lo sean). Te digo esto porque yo suelo usar los dos SO y los programadores en serie me dan muchos problemas...
Otra alternativa sería el programador USB (anunciado en el foro) es rápido y acepta una amplia gama de pics.
Saludos.
8
« en: Miércoles 23 de Agosto de 2006, 23:57 »
Hay "parches" (o lo que se puedan llamar) para el simulador Proteus, que le añadan funcionalidades extra como la capacidad de simular mas integrados (como los 8086/8088, Z80 (que y a lo imcluye pero no tiene capacidad de simulación))...?
Saludos
9
« en: Sábado 19 de Agosto de 2006, 03:38 »
Muchísimas gracias!
10
« en: Viernes 18 de Agosto de 2006, 22:48 »
Conoceís alguna web en español (o catalán) que describa con detalle el protocolo del estándar PAL (la señal de vídeo que reciven los televisores(Phase Alternating Line)). Todo lo que he encontrado son borradores superficiales y además en inglés, los entiendo medianamente, pero hay conceptos que no entiendo, y no estaría de mal una explicación en mi idioma Y si no es mucho pedir, como alternativa, también podría ser una descripción del protocolo usado en la transmisión de vídeo a los monitores de ordenador (VGA). De éste último no he buscado mucha información, pero ya puestos a pedir... Saludos
11
« en: Jueves 17 de Agosto de 2006, 20:33 »
Eso es una macro, puedes definirla también en algunos ensambladorers de ASM.
12
« en: Jueves 17 de Agosto de 2006, 01:52 »
Nunca biene de más una nueva sección en un foro, y mucho menos en uno tan grande como este!
Saludos
13
« en: Jueves 17 de Agosto de 2006, 01:49 »
No estaría mal, así se aprenden cosas nuevas, y además, añadimos un lugar de referencia sobre dichos microcontroladores en español.
Saludos
14
« en: Martes 15 de Agosto de 2006, 23:11 »
Y ya que estamos puestos... sabe alguien alguna web donde presenten un circuito (como el ejemplo que pone el amable Huguen_aus_Tirol), pero que el receptor ultrasónico se reciba por el conversor A/D, y así poder saber que "cantidad" de eco ha rebotado del objeto en questión?
Yo he buscado, pero no he encontrado resultados muy concisos...
Saludos
15
« en: Lunes 14 de Agosto de 2006, 16:12 »
Muchas gracias. Has dejado claro el concepto ![Smartass :smartass:](https://solocodigo.com/Smileys/solocodigo/smartass.gif) , ya leere acerca de comos e hace esto. Saludos.
16
« en: Lunes 14 de Agosto de 2006, 01:11 »
Lamento meterme en su discusión (para eso están los foros ![Unsure :unsure:](https://solocodigo.com/Smileys/solocodigo/unsure.gif) ). Yo creo que los programas "parecidos" a los de Windows que hay en Linux son como son (no quiero decir malos) porque es lo quenecesitaba en ese momento su desarrollador, es decir: yo necesito hacer planos de casa, pues hago una alternativa al AutoCAD, pero solo implemento las funciones que uso del AutoCAD original y la edición 2D... Porque impelementar todo lo otro si no lo usaré nunca?, y si es así, ya lo implementaré en un futuro... Pues creo que esa es mas o menos la filosofia que llevan... no son grupos de programación organizados (normalmente solo es desarrollado posr un individuo), no tendrán ganancias económicas, y el motivo principal de su programación es porque les interesa... Otras cosas ya son los proyectos mas ambiciosos, que estos superan mil veces a los de Windows... como Vi Emacs (cuantas opciones ofrece el edlin o el edit?... se queda corto), GCC... y muchos otros. Además, Linux no fué concebido para el uso doméstico ni como escritorio... y la mayoria de aplicaciones son en modo texto, entres ellas las de mayor calidad. Saludos.
17
« en: Lunes 14 de Agosto de 2006, 00:55 »
Lamento hacer este tipo de preguntas, pero... Qué es un Bootloader? Se refiere a lo mismo que el termino en informática (programa bootable para iniciar el PC)?
Saludos
18
« en: Lunes 14 de Agosto de 2006, 00:30 »
Qué es mejor, dejar los puertos e/s no usados de los PIC como entrada, o como salida?
Saludos.
19
« en: Lunes 14 de Agosto de 2006, 00:20 »
Si es eso de tirarla... me la envias por correos y yo me hago cargo d elos gastos de evío, incluso pago (me gusta coleccionar ordenadores antiguos ![Unsure :unsure:](https://solocodigo.com/Smileys/solocodigo/unsure.gif) ). Pero siempre puedes instalar Linux, existen programas para microcontroladores PIC tanto de grabación como ensambladores y compiladores C y C++ (te propongo Linux ya que fué creado para ejecutarse inicialmente en un 386 o 486, y todas las versiones son "compatibles", por lo tanto` podrás ejecutar cualquier ejecutable hecho en Linux en cualquier máquina con Linux (si no hay incompatibilidades hardware, y si es así, se recompila y punto)). Saludos
20
« en: Lunes 14 de Agosto de 2006, 00:15 »
Hombre, siempre puedes hacer tu la implementación del protocolo USB (muy complicado, bueno, no tanto, pero costoso) o usar otro integrado de respaldo que se encarge de ocultarte el protocolo y facilitarte el trabajo (ahora mismo no se ningún ejemplo, ya que nunca lo he utilizado, pero se que hay varios).
Saludos.
21
« en: Lunes 20 de Febrero de 2006, 18:07 »
És posible acceder directamente a la memoria caché de un procesador pentium? Si es así, qué funciones están implicadas?
SALUDOS
22
« en: Miércoles 15 de Febrero de 2006, 20:43 »
Cómo se interpretan los archivos .HEX que crea el MPASM?
SALUDOS
23
« en: Jueves 2 de Febrero de 2006, 22:14 »
Estaria bien, así podriamos participar todos. SALUDOS
24
« en: Martes 31 de Enero de 2006, 18:51 »
Hola, Es para ver como va el SO que esta desarroyando bob esponja y haber si se puede montar una sección el el FTP para publicarlo, si quiere claro. SALUDOS
25
« en: Miércoles 18 de Enero de 2006, 15:49 »
Chico, eres muy borde, si te parece absurda mi pregunta simplemente no me respondas.
Si te parece que está mal propuesta, dilo y punto.
Es posible que no me exprese con mucha claridad.
Un archivo binario es sencillo de obtener. Yo quiero saber si es posible que un compilador de C, uno cualquiera... (he especificado uno, alomejor se puede hacer, nose...) compile un código pero sin basarse ningún formato, simplemente que la entrada del programa esté al inicio del archivo, y que no haga uso de ninguna función ni ninguna interrupción de ningun sistema operativo.
No se si existe, por algo lo pregunto, y el google no me da grandes respuestas, y menos si uno no sabe que busca exactamente.
Imagino que debe exister, mas que nada es por que si hay sistemas operativos creados en C, imagino que de alguna forma se debió compilar su nucleo y sus funciones mas básicas.
SALUDOS
|
|
|