Archivo original (400 × 1.196 píxeles; tamaño de archivo: 425 KB; tipo MIME: image / png )
Resumen
DescripciónGranero-yuv.png
Espacio de color YUV
Fecha
Fuente
Concepto de en: Imagen: YUV_components.jpg , imagen de dominio público original en en: Imagen: Barns_grand_tetons.jpg
Autor
Usuario: Brianski
Permiso ( reutilizando este archivo )
Dominio publico
La imagen es del John Moulton Barn en la base de la Cordillera Teton .
Razón de ser
Esta es una versión más limpia y precisa de en: Image: YUV_components.jpg . Las mejoras son:
Utilice un algoritmo de compresión sin pérdidas, PNG eliminando artefactos jpeg
No escale U, V a valores extremos; use el valor bruto, que se aproxima más al componente cromático
Fijar la polaridad invertida de los componentes U, V
Generacion
Para generar este mapa, Brian Szymanski usó este script en perl y luego ejecutó optipng con una búsqueda completa para reducir el archivo. Si desea comprender el siguiente código, probablemente debería usar perltidy ; el código está principalmente aquí para mi referencia, pero es incorrecto. El primer canal del mapa azul / amarillo también debe establecerse en U y el tercer canal del mapa rojo / verde debe establecerse en 0.5. Lo arreglaré pronto y actualizaré la imagen.
perl -e 'uso estricto; use advertencias; utilizar GD; GD :: Imagen-> trueColor (1);my% color_cache;sub cached_allocate {my $ img = turno; mi @rgb = @_; my $ rgb = unirse (",", @rgb); $ color_caché {$ rgb} = $ img-> colorAllocate (@rgb) a menos que ($ color_cache {$ rgb}); return $ caché_color {$ rgb};}my $ img = GD :: Imagen-> nuevo ("barn.png");my ($ altura, $ ancho) = ($ img-> altura, $ img-> ancho);my $ yuv_img = GD :: Imagen-> nuevo ($ ancho, $ alto * 4);foreach my $ y (0 .. $ altura-1) { foreach my $ x (0 .. $ width-1) { mi ($ r, $ g, $ b) = mapa {$ _ / 256} mi @rgb = $ img-> rgb ($ img-> getPixel ($ x, $ y)); my $ Y = 0.299 * $ r + 0.587 * $ g + 0.114 * $ b; mi $ U = 0.436 * ($ b- $ Y) / (1-0.114); mi $ V = 0.615 * ($ r- $ Y) / (1-0.299); $ Y * = 256; $ U + = .436; $ U * = (256 / .872); $ V + = .615; $ V * = (256 / 1,23); ($ Y, $ U, $ V) = mapa {int (0.5 + $ _)} ($ Y, $ U, $ V); muere "YUV: $ Y, $ U, $ V" si (($ Y> 255) o ($ U> 255) o ($ V> 255)); $ yuv_img-> setPixel ($ x, $ y, cached_allocate ($ yuv_img, @rgb)); $ yuv_img-> setPixel ($ x, $ altura + $ y, cached_allocate ($ yuv_img, $ Y, $ Y, $ Y)); $ yuv_img-> setPixel ($ x, 2 * $ altura + $ y, cached_allocate ($ yuv_img, 0, 255- $ U, $ U)); $ yuv_img-> setPixel ($ x, 3 * $ altura + $ y, cached_allocate ($ yuv_img, $ V, 255- $ V, 0)); }};print $ yuv_img-> png '> barn-yuv.png
Licencia
Dominio público Dominio público falso falso
Yo, el titular de los derechos de autor de este trabajo, lo libero al dominio público . Esto se aplica en todo el mundo. En algunos países, esto puede no ser legalmente posible; Si es así: otorgo a cualquier persona el derecho de usar este trabajo para cualquier propósito , sin ninguna condición, a menos que tales condiciones sean requeridas por ley.
Subtítulos
Agregue una explicación de una línea de lo que representa este archivo
inception<\/a>"}},"text\/plain":{"en":{"":"inception"}}},"{\"value\":{\"time\":\"+2007-09-22T00:00:00Z\",\"timezone\":0,\"before\":0,\"after\":0,\"precision\":11,\"calendarmodel\":\"http:\\\/\\\/www.wikidata.org\\\/entity\\\/Q1985727\"},\"type\":\"time\"}":{"text\/html":{"en":{"P571":"22 September 2007"}},"text\/plain":{"en":{"P571":"22 September 2007"}}}}" class="wbmi-entityview-statementsGroup wbmi-entityview-statementsGroup-P571 oo-ui-layout oo-ui-panelLayout oo-ui-panelLayout-framed">
comienzo
22 de septiembre de 2007
Historial del archivo
Haga clic en una fecha / hora para ver el archivo tal como apareció en ese momento.