Compresion de imagenes con wavelets

Este programa muestra cómo utilizar la compresion-wavelet utilizando la unit "wave.pas" consiguiendo una pérdida mínima en la calidad de la imagen.
La compresión-wavelet es una tecnología que se incluye en el standard jpeg2000.

Autor: HaarWavelet0.6b (C)2K2 Carsten Wächter
toxie@ainc.de
www.ainc.de

La transformada de ondícula (frecuentemente también transformada wavelet) es un tipo especial de transformada de Fourier que representa una señal en términos de versiones trasladadas y dilatadas de una onda finita (denominada óndula madre).
En términos históricos, el desarrollo de las óndulas entronca con varias líneas de pensamiento, a partir del trabajo de Alfred Haar a principios del siglo XX.
En cuanto a sus aplicaciones, la transformada de óndula discreta se utiliza para la codificación de señales, mientras la continua se utiliza en el análisis de señales. Como consecuencia, la versión discreta de este tipo de transformada se utiliza fundamentalmente en ingeniería e informática, mientras que la continua se utiliza sobre todo en la física. Este tipo de transformadas están siendo cada vez más empleadas en un amplio campo de especialidades, a menudo sustituyendo a la transformada de Fourier, por su ventaja para el análisis de señales en el dominio del tiempo y la frecuencia.


Tema relacionados:
JPEG 2000 es un estándar de compresión y codificación digital deimágenes. Fue creado por el Joint Photographic Experts Group(Grupo Conjunto de Expertos en Fotografía o JPEG), en el año 2000con la intención de sustituir el formato original creado en 1992. El nuevo formato se basa en la transformada wavelet, en lugar de latransformada de coseno discreta establecida para el estándar original. La extensión de los archivos en formato JPEG 2000 es .jp2.
JPEG 2000 puede trabajar con niveles de compresión mayores que los de JPEG sin incurrir en los principales defectos del formato anterior con altas tasas de compresión: generación de bloques uniformes y aspecto borroso. También se adapta mejor a la carga progresiva de las imágenes. Sus principales desventajas están en que tiende a emborronar más la imagen que JPEG, incluso para un mismo tamaño de archivo (pero sin formar bloques), y que elimina algunos detalles pequeños y texturas, que el formato JPEG normal sí llega a representar.

 Fuente: Wikipedia


Mostrar una regla en pantalla





Regla configurable en pantalla con las siguientes características:
  • Medida en pixels
  • Media en milímetros
  • Transparencia configurable
  • Tickers horizontales y verticales
etc..

http://delphi.about.com/library/weekly/aa080205a.htm
by Zarko Gajic
Codigo fuente

Relacionados
Mostrar los modos de visualizacion de la tarjeta grafica
Generar efectos graficos
Dar capacidades de scripting a tu aplicacion



Mini visor del registro



Muestra los items del registro de nuestro PC ( regedit.exe ) utilizando dos componentes: tTreeView y tListView.
Es lo que veríamos si vamos al botón de inicio->ejecutar y escribimos "regedit.exe"

Codigo fuente

Relacionados

Antikeylooger
Firewall en delphi
Acceder a los contadores del sistema

Servidor y cliente UDP

User Datagram Protocol (UDP) es un protocolo de red basado en el intercambio de datagramas, sin que se haya establecido previamente una conexión entre dos equipos, ya que dentro de cada datagrama se incorpora toda la información de direccionamiento que se requiera.
La principal desventaja que tiene es que no tiene un control de flujo, es decir se pueden perder paquetes en la transmisión y ni el cliente ni el servidor se enteran (en el caso de TCP se pediría una retransmisión del paquete perdido), se suele usar en la retransmisión de audio o vídeo por la red o en los protocolos DHCP, BOOTP y DNS.

Si te interesa ampliar más información te recomiendo el siguiente libro.

El conjunto de funciones que os presento sirve para crear un servidor y cliente UDP con los componentes indy.
Inicialmente pide la IP del servidor (para pruebas teclearemos 127.0.0.1)

Posteriormente comprobaremos desde el visor de propiedades que el buffer del componente UDPServer o UDPClient no supere los 65000 Kbytes.

Para comprobar la transmisión de un fichero cualquiera, el interface nos permite cargarlo desde nuestro PC y transmitirlo utilizando un tmemorystream.

A continuación os muestro el procedimiento del componente UDPServer para leer los datos transmitidos por UDP.



procedure TMainForm.UDPServerUDPRead(Sender: TObject; AData: TStream;
 ABinding: TIdSocketHandle);
var
 StrStream : TStringStream;
 MemStream : TMemoryStream;
begin
 if AData.Size<=255 then
 begin
 StrStream:=TStringStream.Create('');
 StrStream.CopyFrom(AData, AData.Size);
Memo.Lines.Add(ABinding.PeerIP+': '+copy(StrStream.DataString,5,length(StrStream.DataString)));
 StrStream.Free;
 end else
 begin
 MemStream:= TMemoryStream.Create;
 MemStream.CopyFrom(AData, AData.Size);
  if SaveDialog.Execute then MemStream.SaveToFile(SaveDialog.FileName);
 MemStream.Free;

end;