En el que computa, JPEG (JAY-clavija pronunciada del ; ˈdʒeɪpɛg ) es un método de uso general de la compresión para las imágenes fotográficas. El JPEG del nombre representa el grupo de expertos fotográfico del empalme, el nombre del comité que creó el estándar. Organizaron al grupo en el 1986, publicando un estándar en el 1992, que fue aprobado en el 1994 como ISO 10918-1. El JPEG es distinto del MPEG (grupo de expertos del cuadro móvil ), que produce los esquemas de la compresión para el vídeo.
El estándar del JPEG especifica el codificador-decodificador, que define cómo una imagen es comprimida en una corriente de los octetos y descomprimido nuevamente dentro de una imagen, y el formato de archivo usado para contener esa corriente. El método de la compresión es generalmente la compresión de lossy, significando que una cierta calidad visual está perdida en el proceso, aunque haya las variaciones en el JPEG estándar de la línea de fondo que son sin pérdidas. Hay también un " entrelazado ; " progresivo del JPEG ; dar formato, en que los datos se comprimen en los pasos múltiples de un detalle progresivamente más alto. Esto es ideal para las imágenes grandes que serán exhibidas mientras que transferencia sobre una conexión lenta, permitiendo una inspección previo razonable después de recibir solamente una porción de los datos. Sin embargo, JPEGs progresivo no está según lo apoyado extensamente.
El formato de archivo se conoce como “formato del intercambio del JPEG”, según lo especificado en el anexo B del estándar. Esto se confunde a menudo con el formato, una versión mínima del intercambio (JFIF) del '' archivo '' del JPEG del formato del intercambio del JPEG que fue simplificado deliberadamente de modo que pudiera ser ejecutado extensamente y convertirse en así el estándar de hecho.
La razón de esta versión simplificada era que el formato del intercambio del JPEG sufre a partir de tres defectos que eviten que sea facilmente comprensibles y ejecutados:
Definición de espacio de color
Definición componente del registro del submuestreo
Definición del cociente de aspecto del pixel Además de JFIF, otros estándares se han desarrollado para tratar estos defectos, incluyendo “el formato de archivo cambiable ” (Exif) de la imagen y el color ICC perfila .
Los archivos de imagen que emplean la compresión del JPEG comúnmente se llaman " Files" del JPEG;. La mayoría de los programas informáticos el corregir de imagen que escriben a un " File" del JPEG; están creando realmente un archivo en formato JFIF .
La extensión de archivo más común para este formato es .jif también se utilizan. Es también posible que los datos del JPEG sean encajados en otros tipos de archivo, tales como imágenes del formato del tiff .
JPEG/JFIF es el formato usado más para almacenar y transmitir las fotografías en el World Wide Web . Para este uso, JPEG/JFIF es lejos superior al GIF, que utiliza una gama de colores con un límite máximo de 256 colores distintos (la mayoría de las fotografías del color contienen muchos millares de colores distintos). JPEG/JFIF es también preferred al png, que produce archivos de imagen mucho más grandes para este tipo de imagen debido a su compresión sin pérdidas.
El algoritmo de compresión del JPEG es el no como bien adaptado para los dibujos lineales y otros gráficos textuales o icónicos, y así los formatos del png y del GIF son preferred para estos tipos de imágenes.
El tipo de medios del MIME para el JPEG es la imagen/JPEG del (definida en RFC 1341).
Codificador-decodificador del JPEG
Aunque un
archivo del JPEG se pueda codificar de varias maneras, se hace lo más comúnmente posible con la codificación de JFIF. El proceso de la codificación consiste en varios pasos:
La representación de los colores en la imagen se convierte RGB al YCbCr, consistiendo en un componente del luma (y), representando brillo, y dos componentes de la croma, representando color. Este paso se salta a veces.
La resolución de los datos de la croma es reducida, generalmente por un factor 2. Esto refleja el hecho de que el ojo es menos sensible a los detalles finos del color que a los detalles finos del brillo. La imagen está partida en bloques de 8× 8 pixeles, y para cada bloque, cada uno de los datos de Y, de los Cb, y del Cr experimentan un que el coseno discreto transforma (DCT). Un DCT es similar a un Fourier transforma en el sentido que produce una clase de espectro de la frecuencia espacial. Las amplitudes de los componentes de la frecuencia son cuantificados . La visión humana es mucho más sensible a las pequeñas variaciones en color o brillo sobre áreas extensas que la fuerza de las variaciones de alta frecuencia de un brillo. Por lo tanto, la magnitud de los componentes de alta frecuencia se almacena con una exactitud más baja que los componentes de baja frecuencia. El ajuste de la calidad de los affectos del codificador (por ejemplo el 50% o el 95%) en qué medida la resolución de cada componente de la frecuencia se reduce. Si se utilizara un ajuste de la calidad excesivamente baja, los componentes de alta frecuencia serían desechados en conjunto. Los datos resultantes para todo el 8× 8 bloques se comprimen más a fondo con un algoritmo sin pérdidas, una variante de la codificación de Huffman. Los reveses de proceso el descifrar estos pasos. En el resto de esta sección, la codificación y los procesos el descifrar se describen más detalladamente.
Codificación
Muchas de las opciones en el estándar del JPEG no son de uso general, y según lo mencionado anteriormente, la mayoría de las aplicaciones del software de la imagen el formato más simple de JFIF al crear un archivo del JPEG, que entre otras cosas especifica el método de codificación. Aquí está una breve descripción de uno de los métodos mas comunes de codificación cuando está aplicada a una entrada que tenga 24 pedacitos por el pixel (ocho por cada uno de rojo, verde, y azul). Esta opción particular es un método de la compresión de datos del lossy .
Primero, la imagen se debe convertir RGB en un diverso espacio de color llamado YCbCr . Tiene tres componentes Y, los Cb y Cr: el componente de Y representa el brillo de un pixel, los componentes de los Cb y del Cr representan el Chrominance (partir en componentes azules y rojos). Éste es el mismo espacio de color según lo utilizado por la televisión de color digital así como el vídeo digital incluyendo el DVDs video, y es similar a la manera que el color es representado en el vídeo y el MAC análogos del amigacho pero no por el análogo NTSC, que utiliza el espacio de color similar YIQ . La conversión del espacio de color de YCbCr permite la mayor compresión sin un efecto significativo sobre calidad perceptiva de la imagen (o mayor calidad perceptiva de la imagen para la misma compresión). La compresión es más eficiente como la información del brillo, que es más importante para la calidad perceptiva eventual de la imagen, se confina a un solo canal, representando más de cerca el sistema visual humano. Esta conversión a YCbCr se especifica en el estándar de JFIF, y se debe realizar para que el archivo resultante del JPEG tenga compatibilidad máxima. Sin embargo, algunas puestas en práctica del JPEG en " el " más de alta calidad; el modo no aplica este paso y en lugar de otro no mantiene la información del color el modelo de color del RGB, donde la imagen se almacena en los canales separados para la luminancia del rojo, verde y azul. Esto da lugar a menos compresión eficiente, y no sería utilizada probablemente si el tamaño del archivo era una edición.
Downsampling
Debido a las densidades de los receptores en el ojo humano, seres humanos del color y brillo-sensibles puede ver un detalle considerablemente más fino en el brillo de una imagen (el componente de Y) que en el color de una imagen (los componentes de los Cb y del Cr). Usar este conocimiento, los codificadores se pueden diseñar para comprimir imágenes más eficientemente. La transformación en el modelo de color de YCbCr permite el paso siguiente, que es reducir la resolución espacial de los componentes de los Cb y del Cr (llamados " Downsampling " o " " del submuestreo de la croma;). Los cocientes en los cuales el downsampling se puede hacer en el JPEG son 4:4: 4 (el ninguÌn downsampling), 4:2: 2 (reducir por el factor de 2 en la dirección horizontal), y lo más comúnmente posible 4:2: 0 (reducir por el factor de 2 en direcciones horizontales y verticales). Para el resto del proceso de compresión, Y, los Cb y el Cr se procesan por separado y en una manera muy similar. Downsampling los componentes de la croma ahorra el 33% o el 50% del espacio tomado por la imagen sin drástico afectar a calidad perceptiva de la imagen.
El partir del bloque
Después del submuestreo, cada canal se debe partir en los bloques 8×8 (de pixeles). Si los datos para un canal no representan un número del número entero de bloques entonces el codificador debe llenar el área restante de los bloques incompletos de una cierta forma de datos simulados:
el relleno de los pixeles del borde de un color fijo (típicamente negro) crea los artefactos oscuros a lo largo de la parte visible de la frontera
la repetición de los pixeles del borde es una técnica común pero no-óptima que evita la frontera visible, pero todavía crea los artefactos con la colorimetría de las células llenadas
una mejor estrategia es llenar los pixeles usar los colores que preservan los coeficientes de DCT de los pixeles visibles, por lo menos para los de baja frecuencia (por ejemplo el relleno del color medio de la parte visible preservará el primer coeficiente de la C., pero la mejor guarnición los dos coeficientes siguientes de la CA producirá resultados mucho mejores con los bordes menos visibles de la célula 8×8 a lo largo de la frontera).
El coseno discreto transforma
Después, cada componente (Y, Cb, Cr) de cada bloque 8×8 se convierte a una representación de la banda de frecuencias, usar un tipo-Ii normalizado, de dos dimensiones que el coseno discreto transforma (DCT).
Como ejemplo, si es un tal subimage de 8 bits 8×8:
El paso siguiente es transformar el subimage de una gama positiva a uno centrado alrededor cero. Para una imagen de 8 bits cada pixel tiene 256 valores posibles: . Para centrar alrededor cero es necesario restar por mitad del número de valores posibles, o 128. = \ frac {2^8} {2} del
Restar 128 de cada valor del pixel rinde valores del pixel en el
El paso siguiente es tomar el DCT de dos dimensiones, que se da cerca:
donde
el es la frecuencia espacial horizontal, para el .
el es la frecuencia espacial vertical, para el .
es un
de normalización del de la función el es el valor del pixel en el
El es el coeficiente de DCT en el
Si arriba, y después realizamos esta transformación en nuestra matriz alrededor al número entero más cercano, conseguimos
Observar el valor algo grande de la esquina tapa-izquierda. Éste es el coeficiente de la C. Que siguen habiendo los 63 coeficientes se llaman los coeficientes de la CA. El DCT aumenta temporalmente la pedacito-profundidad de la imagen, puesto que los coeficientes de DCT de una imagen de 8 bits/componente toman hasta 11 o 12 pedacitos (dependiendo de la fidelidad del cálculo de DCT) para almacenar. Esto puede forzar el codificador-decodificador para utilizar temporalmente compartimientos de 16 bits para llevar a cabo estos coeficientes que doblan el tamaño formal de la representación de la imagen a este punto. La ventaja del DCT es su tendencia a agregar la mayor parte de la señal en una esquina del resultado, como puede ser visto arriba. El paso de la cuantificación a seguir acentúa este efecto mientras que simultáneamente reduce el tamaño de los coeficientes de DCT a 8 pedacitos o menos, dando por resultado una señal con una región que se arrastra grande que contiene ceros que la etapa de la entropía puede lanzar simplemente lejos. El aumento temporal de tamaño no es en esta etapa una preocupación del funcionamiento por la mayoría de las puestas en práctica del JPEG, porque típicamente solamente una parte muy pequeña de la imagen se almacena en forma completa de DCT en un momento dado durante la codificación o proceso el descifrar.
Cuantificación
El ojo humano es bueno en ver pequeñas
diferencias en el brillo sobre relativamente una área extensa, pero no tan bueno en la distinción de la fuerza exacta de una variación de alta frecuencia del brillo. Este hecho permite que uno consiga lejos con grandemente
la reducción de la cantidad de información en los componentes de alta frecuencia. Esto es hecha simplemente dividiendo cada componente en el
dominio de frecuencia por un constante para ese componente, y después redondeando al número entero más cercano. Ésta es la
operación principal del lossy en el proceso entero. Como resultado de esto, es típicamente la caja que muchos de los componentes más altos de la frecuencia se redondean a cero, y muchos del resto se convierten en los pequeños números positivos o negativos, que llevan a muchos pocos pedacitos el almacén.
Una matriz común de la cuantificación es:
Los coeficientes quantized de DCT se computan con
donde está los coeficientes unquantized de DCT; es la matriz de la cuantificación arriba; y es los coeficientes quantized de DCT. (Nota que ésta no es en ninguna multiplicación de la matriz de la manera .)
Usar esta matriz de la cuantificación con la matriz del coeficiente de DCT de resultados antedichos en:
Por ejemplo, usar −415 (el coeficiente de la C.) y el redondeo al número entero más cercano
Codificación de la entropía
considera también:
la codificación de la entropía La codificación de la entropía es una forma especial de la compresión de datos sin pérdidas . Implica el arreglar de los componentes de la imagen en un " zigzag" pedir el empleo del algoritmo de la codificación (RLE) de la Funcionar-longitud que agrupa frecuencias similares juntas, insertando ceros de la codificación de la longitud, y entonces usar la codificación de Huffman en se deja qué.
El estándar del JPEG también permite, pero no requiere, el uso de la codificación aritmética, que es matemáticamente superior a la codificación de Huffman. Sin embargo, esta característica se utiliza raramente mientras que es cubierta por las patentes y porque es mucho más lenta codificar y descifrar comparado a la codificación de Huffman. La codificación aritmética típicamente hace archivos cerca de el 5% más pequeños.
La secuencia del zigzag para los coeficientes arriba cuantificados se demuestra abajo. (El formato demostrado está apenas para la facilidad de la comprensión/visión.)
Cociente y artefactos de compresión
El cociente de compresión resultante se puede variar según las necesidades siendo más o menos agresivo en los divisores usados en la fase de la cuantificación. Diez a una compresiones dan lugar generalmente a una imagen que no se pueda distinguir por el ojo de la original. 100 a una compresiones son generalmente posibles, pero mirarán distintamente artifacted comparado a la original. El nivel apropiado de compresión depende del uso a el cual la imagen será puesta.
Los que utilizan el World Wide Web pueden ser familiares con las irregularidades conocidas como artefactos de la compresión que aparezcan en imágenes del JPEG. Éstos son debido al paso de la cuantificación del algoritmo del JPEG. Son especialmente sensibles alrededor de ojos en cuadros de caras. Pueden ser reducidos eligiendo un nivel inferior de la compresión ; pueden ser eliminados ahorrando una imagen usar un formato de archivo sin pérdidas, aunque para las imágenes fotográficas que éste dará lugar generalmente a un tamaño del archivo más grande. Los artefactos de la compresión hacen JPEGs de baja calidad inaceptable para almacenar el Heightmaps las imágenes creadas con programas del ray-tracing para tener formas blocky sensibles en el terreno.
Algunos programas permiten que el usuario varíe la cantidad por la cual los bloques individuales son comprimidos. Una compresión más fuerte se aplica a las áreas de la imagen que demuestran pocos artefactos. Esta manera es posible reducir manualmente tamaño del archivo del JPEG con menos pérdida de calidad.
Desde los resultados siempre de la etapa de la cuantificación del en una pérdida de información, el estándar del JPEG es siempre un codificador-decodificador de la compresión de lossy. (La información se pierde en cuantificar y el redondeo de los números de coma flotante.) Incluso si la matriz de la cuantificación es una matriz de unas, la información todavía será perdida en el paso de redondeo.
El descifrar
El descifrar para exhibir la imagen consiste en el hacer de todo el antedicho en revés.
Tomando la matriz del coeficiente de DCT (después de agregar la diferencia del coeficiente de la C. detrás adentro)
y tomando el producto de la entrada-para-entrada con la matriz de la cuantificación de resultados antedichos adentro
cuál se asemeja de cerca a la matriz original del coeficiente de DCT para la porción tapa-izquierda. Tomar el DCT inverso (tipo-III DCT) da lugar a una imagen con los valores (todavía cambiados de puesto abajo por 128)
y agregando 128 a cada entrada
Éste es el subimage sin comprimir y se puede comparar al subimage original (también ver las imágenes a la derecha) tomando los resultados de la diferencia (− original sin comprimir) en valores del error
con medio absoluto error de cerca de 5 valor por pixel (es decir,