BandaAncha.eu

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 👇 este 📰 artículo ⏎
  • 🔍 en 💬 foros ⏎
Regístrate Regístrate Identifícate Identifícate
  • 📰 Artículos

Demandas por la patente de JPEG

piezas

A través de Error500 llegamos al artículo Forgent Networks Sues 31 Companies for Patent Infringement.

Forgent Networks ha demandado a treinta y una compañías por utilizar el formato de compresión JPEG sin haber pagado derechos. Aducen que la patente estadounidense de su algoritmo de compresión es violada por el algoritmo de las familiares .JPG, tan apropiado para la transmisión de fotografías e imagenes de degradado con paleta de 24 bits en Internet.

Entre la lista de empresas demandadas hay nombres de mucho peso: Adobe, Agfa, Apple, Canon, Creative, Kodak, Fuji, Hewlett-Packard y una larga lista en la que sin embargo no se encuentra Microsoft, de quien comentan está en negociaciones con la denunciante.

¿Un ejemplo más de empresa que coloca su rentabilidad del lado de sus departamentos legales?

Un saludo,
~piezas.

💬 Comentarios

BocaDePez
BocaDePez

Ellos tendrán los derechos sobre el algoritmo y querrán una compensación por su utilización. Si para eso tienen que entrar los abogados, pues...

Parece que Sony pagó la licencia y que microsoft está en camino de hacerlo. En ese caso, la rentabilidad está en el lado de los departamentos de desarrollo o de márketing que es donde supuestamente deberían de estar, no? Entonces no es culpa de Forgent Networks tener que trasladarla al departamento legal, es culpa de los que usan sin licencia.

BocaDePez
BocaDePez

The '672 Patent relates to digital image compression, and fields of use include any digital still image device used to compress, store, manipulate, print or transmit digital still images such as digital cameras

Alguien sabe más al respecto, en la noticia no dice nada respecto al JPG en particular, sino más bien parece una patente de ideas, ¿me equivoco?. El párrafo viene a decir que la patente tiene que ver con la compresión de la imagen digital, y tiene que ver con cualquier dispositivo relacionado con imágenes comprimidas.

🗨️ 2
BocaDePez
BocaDePez

gracias por la información, en la página estaba el enlace al texto de la propia patente.

Leyendo por otros sitios parece que no lo van a tener nada fácil para quedarse con la patente ya que no deja de ser paradójico que se crease un comité para definir el método de compresión y ahora una empresa diga que lo tiene registrado... ahí va lo que he podido leer:

La Federal Trade Commission ha abierto una investigación privata para determinar si Compression Labs actuó de forma legal durante la Internet Engineering Task Force's (IETF) realizaba el proceso para estandarizar el JPEG, que tuvo lugar a finales de los 80 y principios de los 90. Si decide que la compañía actuó de forma incorrecta, por ejemplo no liberando su patente, la FTC podría pedir a la Oficina de Patentes de Estados Unidos que invalidase la patente.

De todas formas no deja de ser curioso en todo caso, dejo que todos usen el formato y en que está totalmente extendido me lanzo como un vampiro a sacar la pasta, no deberían haber solicitado el pago desde el primer uso del jpeg... cuando menos la forma de actuar plantea serias dudas sobre la buena fe de estos señores...

BocaDePez
BocaDePez
🗨️ 9
Worked

Hasta dónde yo sé, las imagenes se tienen que degradar en base a algo, sino obtendrías una basura de tropocientos kas que no serviría para nada.

Sobre la noticia: Veo lógico que quieran sacar parte del provecho sobre su algoritmo de compresión... si yo registro una cosa y la usan sin permiso... pues me mosquearía bastante.

🗨️ 8
BocaDePez
BocaDePez

Es un formato de compresión que se basa en descomponer la imagen en porciones que pueden ser "aproximadas" mediante la combinación de degradados (Gaussianos) de colores, con una precisión de color de 24 bits (RGB, 8 bits por canal).

🗨️ 7
BocaDePez
BocaDePez

No es así. No es más que una compresión de los índices de una matriz 2-D con los coeficientes de la transformada discreta de coseno (dct2 concretamente). Esto se hace anulando los términos de a partir de cierta frecuencia(q depende del grado de compresión q quieras, por ejemplo, como si no quieres comprimirlo...), de modo que se queden los términos de menor frecuencia (en la tabla de los coeficientes de la dct como digo). No sé q coño decis q tienen q ver las gaussianas con ésto :P

🗨️ 3
Bocapez

Lo que hace a JPEG completamente diferente de otros formatos (PNG, GIF, TIFF,...)
es el hecho de aceptar la pérdida de información a la hora de comprimir. Este
tipo de compresión consta de 3 pasos.

  • Primero
    se pasa la imagen del formato RGB al formato YIQ. El formato de color YIQ
    representa una división entre la luminosidad (cantidad de luz percibida) y
    la información sobre el color. El ojo humano es mucho más sensible a la
    luminosidad que al color, cosa que se aprovecha para la compresión.

  • Después,
    se realiza una transformación en la imagen mediante la transformada
    discreta del coseno (TDC), que es una herramienta matemática que permite
    comprimir la imagen según determinados patrones de frecuencia. Se trata de
    un método de compresión con pérdida de datos.

  • Por
    último, se codifica el conjunto de datos obtenidos al aplicar la TDC,
    usando un método que no producen pérdida (código de Huffman).

Para
recuperar la imagen se usa el proceso inverso de transformación de imágenes.

Formatos
de color RGB e YIQ.

En el formato de color RGB, las imágenes a color se almacenan en 3 canales
independientes (rojo, verde y azul) que toman valores de 0 a 255 dependiendo de
la intensidad.

El formato de color YIQ representa una división entre la luminosidad (Y) y el
color (I, Q). La conversión entre RGB e YIQ es:

Imagen original en http://www.us.es/gtocoma/pid/pid6/pid65.3.gif

El ojo
humano es menos sensible a los matices de color que a la cantidad de luz
percibida. Es por ello que podemos reducir la información almacenada para los
canales I y Q de una imagen YIQ, por ejemplo, a

la mitad: si tenemos una imagen 8 x 8 en formato YIQ, la reduciremos a un canal
Y de 8 x 8 y un canal I y otro Q de 4 x 4. Para calcular los valores nuevos de
estos canales podemos hallar la media aritmética de los valores de cada 4
píxeles.

En este
paso se produce pérdida de la información, como podemos ver en el siguiente
ejemplo:

Imagen original en http://www.us.es/gtocoma/pid/pid6/fixed.jpg

Este es un
trozo de imagen original y comprimida JPG, ampliadas para ver las diferencias.
Como vemos, los colores rojo y azul en la imagen original se han visto alterados
en la imagen JPG.

Para
evitar este efecto no deseado, algunos programas como Paint Shop Pro, ofrecen
este paso de manera opcional en la compresión JPG. De esta forma, los colores
no se ven tan degradados y la imagen original y comprimida son prácticamente
iguales:

Imagen original en http://www.us.es/gtocoma/pid/pid6/PDI65.1.jpg

Transformada
discreta del coseno

Las
transformadas de una imagen generan conjuntos de datos que contienen la misma
información que las imágenes originales, con la propiedad de poder volver a
generar las imágenes originales mediante las correspondientes transformadas
inversas.

Una imagen monocolor de dimensiones N x N, se puede expresar como una función
de dos variables f(x,y) donde (x,y) son las coordenadas de cada píxel
(x=0,1,...,N-1 e y=0,1,...,N-1) y f(x,y) es la intensidad de color del píxel (x,y).

La
transformada discreta del coseno consiste en calcular otra matriz F a partir de
la anterior.

El dominio
de F es el mismo que el de f.

Para cada
valor (u,v) con u=0,1,2,...,N-1 y v=0,1,2,...,N-1, tenemos que

Imagen original en http://www.us.es/gtocoma/pid/pid6/../pid5/pid54.24.gif

La inversa de la transformada tiene por fórmula:

Imagen original en http://www.us.es/gtocoma/pid/pid6/../pid5/pid54.25.gif

para
x=0,1,2,...,N-1 e y=0,1,2,...,N-1 y

Imagen original en http://www.us.es/gtocoma/pid/pid6/../pid5/pid54.23.gif

En forma
matricial, C=MFMT donde

Imagen original en http://www.us.es/gtocoma/pid/pid6/pid65.1.gifImagen original en http://www.us.es/gtocoma/pid/pid6/pid65.4.gif

que, de
forma aproximada, es:

Imagen original en http://www.us.es/gtocoma/pid/pid6/pid65.2.gif

Ejemplo:

Consideremos
la siguiente imagen I y la matriz asociada A:

Imagen original en http://www.us.es/gtocoma/pid/pid6/pdi65.9.gif

La
transformada discreta del coseno de A,
C, es una nueva matriz de las mismas dimensiones que la anterior:

Imagen original en http://www.us.es/gtocoma/pid/pid6/pdi65.10.gif

Como
podemos observar, los valores mayores se encuentran en la parte triangular
superior-izquierda de la matriz.

Si
calculamos la inversa de la transformada del coseno a la matriz anterior,
obtenemos la misma matriz que la original:

Imagen original en http://www.us.es/gtocoma/pid/pid6/pdi65.11.gif

Para
almacenar la matriz C se realiza un proceso de normalización, es decir, se
busca una función N(u,v) tal que

C*(u,v)=Redondeo(F(u,v)/N(u,v))

sea una
matriz con "muchos" ceros. Esta nueva matriz, C* es la que
se almacena en el siguiente paso.

Para poder
aplicar la TDC según el estándar JPEG, debemos dividir la imagen original en
matrices cuadradas de 8 x 8 píxeles.

Cada
matriz C de 8 x 8 píxeles obtenida aplicando la TDC a cada subimagen de
dimensión 8 x 8 se aproxima por otra más sencilla C* mediante
un proceso de normalización.

En este
paso es donde radica la pérdida de información. Dependiendo de cómo
normalicemos C*, conseguiremos comprimir más pero, a la vez, perder más
información.

JPEG
recomienda una matriz de normalización estandarizada para las imágenes con 256
niveles de intensidad, que es:

Imagen original en http://www.us.es/gtocoma/pid/pid6/PDI65.4.gif

Aplicando
esta normalización a nuestro ejemplo obtenemos la nueva matriz:

Imagen original en http://www.us.es/gtocoma/pid/pid6/pdi65.13.gif

que, como
vemos tiene muchos ceros en la parte triangular inferior-derecha.

En la
mayoría de los casos, los programas que han implementado el método JPG, antes
de realizar la TCD, realizan una traslación en los colores de la imagen para
pasar de [0,255] a [-128,127]. De esta forma se consigue
que los colores esté distribuidos alrededor del cero. El único cambio
que se produce en realidad, es el primer elemento de la matriz transformada. En
el ejemplo la matriz original que resulta después de restar 128 a todos sus
elementos es:

Imagen original en http://www.us.es/gtocoma/pid/pid6/PDI65.2.gif

Y la
matriz que resulta al realizar la transformada y normalizar:

Imagen original en http://www.us.es/gtocoma/pid/pid6/PDI65.3.gif

Como
vemos, la única diferencia con la matriz normalizada de la matriz original es
el primer elemento (ahora vale -35 y antes 29).

Algoritmo
de Huffman

Para almacenar la imagen normalizada, se sigue un recorrido en zig-zag para
obtener una lista con los ceros acumulados al final. Se usa el código de
secuencia para codificar la lista.

Ahora,
usamos el algoritmo de Huffman que se basa en utilizar el menor espacio posible
en bits para aquellos caracteres más repetidos.

Aunque podemos utilizar una compresión de Huffman propia, existe unas tablas
estandarizadas que nos permiten obtener el código de Huffman para cualquier
valor.

En nuestro
ejemplo, la lista sería

29,

9,-7,5,-12,-4,-6,-5,6,-3,2,-2,1,1,-1,0,1,0,0,1,0,0,0,-1,1,0,1,0,0,0,1,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,F

Con la
letra F (de fin) indicamos que desde ese elemento hasta el final de la lista son
todos ceros (hasta completar los 64 elementos de la lista).

El
siguiente paso sería almacenar cada lista de cada subimagen 8 x 8 de la imagen
usando algún algoritmo que elimine la redundancia de código, como el algoritmo
de Huffman. En este paso radica la propiedad de almacenar usando distintos
grados de compresión. Si almacenamos cada lista con los 64 elementos, el grado
de compresión sería pequeño. Cómo los datos significativos están al
principio de la lista, podríamos considerar sólo los primeros elementos de la
lista (por ejemplo, los 16 primeros), y en este caso, el grado de compresión
sería mayor.

Descompresión:
transformada inversa del coseno

Para
descomprimir la imagen, hemos de descodificarla para obtener la matriz
normalizada C*(u,v).

Deshacemos
la normalización: F*(u,v)=C*(u,v)N(u,v), donde N era la
matriz de normalización, y ahora aplicamos la transformada inversa de F*mediante
la fórmula.

En nuestro
ejemplo, la matriz obtenida tras este proceso es:

Imagen original en http://www.us.es/gtocoma/pid/pid6/pdi65.14.gif

Redondeamos,
para obtener una matriz de enteros, y la matriz descomprimida sería:

Imagen original en http://www.us.es/gtocoma/pid/pid6/pdi65.15.gif

La
diferencia entre la matriz original y la descomprimida es:

Imagen original en http://www.us.es/gtocoma/pid/pid6/pdi65.16.gif
🗨️ 2
BocaDePez
BocaDePez

Ah, y otra cosa, los 8 bit no es q sean x canal (qué canal?? xDD) sino por cada uno de los colores de la tripleta de colores (de ahí lo de RGB) en caso del "true color".

🗨️ 2
kanuac
BocaDePez
BocaDePez

es q a eso es a lo q se le llama canal...

BocaDePez
BocaDePez

Bueno, cuando alguien vulnera derechos de autor en ambitos musicales/visuales todas esas grandes empresas castigan al usuario y pequeños comerciantes con controles/denuncias/despidos/medidas antipirateria, asi que no esta nada mal que por una vez que se vean en el otro bando. ;p

BocaDePez
BocaDePez

Y tu ?
Ya has votado a favor de las patentes de software en europa ?

Pronto el pueblo egipcio denunciara al resto de paises del mundo por utilizar piramides sin su permiso.

Uy no, que sino los americanos iran con sus fuerzas de "paz infinita" ( como le llamen ahora) a hacerles una visita.

Lo k hay k ver ....

🗨️ 2
BocaDePez
BocaDePez

Así investigará Rita la Cantaora. Total, para inventar algo y que te den una palmadita en la espalda (si llega) y se forren otros vendiendo tu idea....

🗨️ 1
BocaDePez
BocaDePez

Y los que usamos software libre que no tenemos ninguna ganancia, ¿que ganamos con esto de las patentes?

Ya que internet es libre, sería preferible que se prohibiese en él el uso de productos patentados y ya puestos, sistemas operativos patentados.

Al final, lo mejor está libre de patentes, te lo aseguro: poder de innovación por cualquier usuario y permiete llegar a todo el mundo.

Las patentes no dejan de ser un obstaculo para su uso por las sociedades civiles.

CyNic

... se llama png es libre y mejor que el jpeg, esta claro que estos señores no an actuado de buena fe an estandarizado un producto que davan gratis para despues sacarle el maximo provecho de su patente cosa que no me extraña como empresa que son que su finalidad es ganar dinero y cuanto mas mejor xro no me preocupa en lo mas minimo porque hay alternativas

🗨️ 5
BocaDePez
BocaDePez

o simplemente los otros no han pagado? Han sido listos, han creado la dependencia y ahora se ponen a recaudar.

El PNG es una alternativa, cierto, pero la adaptación puede ser tremendamente costosa. Tanto que prefieran pagar licencias. Imagina todo el software que tendria que sacar una nueva versión para eliminar la compatibilidad con JPG si así se lo exigen. Imagina actualizar los firmwares de todos los modelos de cámara digital que usan JPG como formato (todas?) Qué página web no tiene JPGs? Cuántas fotos digitales almacenadas en formato JPG habrá por ahí....

Alternativas hay, pero cambiar cuesta un huevo.

BocaDePez
BocaDePez

a ver a ver a ver, "png es libre y mejor k el jpg" pensemos un poco por favor, que no todo lo que es libre es mejor...

png tiene sus funciones para unas determinadas cosas, pero indudablemente jpg le da 100000 vueltas en el sistema de compresion al señor png. que admite transparencias en una foto de calidad??? si es para lo unico que sirve :)

🗨️ 3
Stendall

La diferencia entre el png y el jpeg es que el png no tiene perdida de información.
Si comparas un jpeg a calidad maxima, casi sin perdida, pero solo casi, abulta mucho más qie un png con más calidad.

-= un saludo =-

BocaDePez
BocaDePez

El png no es sustituto del jpg, dado que su compresión es sin pérdida. Mas bién es una alternativa (de mucha mayor calidad, dado que no se limita a 256 colores) al gif, el cual por cierto también debe estar sujeto a tema de patentes.

BocaDePez
BocaDePez

el png no es una alternativa, es el siguiente paso, no solo transparencias admite, sino tambien canal alpha. puedes usar 16/24/32 bits, tienes modo paletizado. incluso hay versiones animadas..

un engine actual, de juegos, puede utilizar png para todas sus imagenes porqe la compresion sin perdida es ideal, y supera en mucho al jpg.

es cierto qe jpg comprime mas, pero a costa de perdida de calidad.

y coño, son formatos, no mujeres con las qe casarse, a algunos parecen qe os paguen.

Vokadepec

Si esto sigue adelante, en el futuro veremos programas como el GIMP, que no podrán soportar jpeg, navegadores (como Mozilla/Firefox) que no podrán soportar estandares de la www como el jpeg, etc. Muy grave cuando estamos hablando de un formato estandarizado.
Está claro que esto de las patentes sólo beneficia a las grandes compañías, que en muchos casos se convertirán en monopolio. No habrá ninguna posibilidad para el software libre.
Espero que la UE se olvide del tema al final.

🗨️ 1
Nosss

En este caso todavia tienes el formato png, asi que puedes usarle en lugar del jpg.

Gulfo

Sinceramente...hasta donde se, la fecha en la que esta gente intentó patentar el estandar de compresion JPEG es como 2 años posterior a la primer publicacion del mismo.

Solo para que conste, diré que las oficinas de patentes son, en muchos casos un sitio donde cuatro desgraciados se dedican a sellar impresos, y que no es el primer caso de revocación de una patente. Sin ir mas lejos, el año pasado en una oficina de patentes de Australia les colaron la patente de "Un objeto circular con la finalidad de ayudar en el transporte", es deci LA RUEDA . Creo que con eso se dice todo ;-)

Gulfo