File:Barn-yuv.png
File originale (400 × 1 196 pixel, dimensione del file: 425 KB, tipo MIME: image/png)
Didascalie
Dettagli
[modifica]DescrizioneBarn-yuv.png | YUV colorspace |
Data | |
Fonte | Concept from en:Image:YUV_components.jpg, original public domain image at en:Image:Barns_grand_tetons.jpg |
Autore | User:Brianski |
Licenza (Riusare questo file) |
Public Domain |
The picture is of the John Moulton Barn at the base of the Teton Range.
Raison d'être
[modifica]This is a cleaner/more acurate version of en:Image:YUV_components.jpg. The improvements are:
- Use a lossless compression algorithm, PNG removing jpeg artifacts
- Don't scale U, V to extreme values - use the raw value, which more closely approximates the chroma component
- Fix the inverted polarity of U, V components
Generation
[modifica]To generate this map Brian Szymanski used this perl script, and then ran optipng with a full search to shrink the filesize. If you want to understand the below code, you should probably use perltidy - the code is mostly here for my reference, but it is wrong. The first channel of the blue/yellow map has to be set to U as well and the third channel of the red/green map has to be set to 0.5. I will fix it soon and update the image.
perl -e 'use strict; use warnings; use GD; GD::Image->trueColor(1); my %color_cache; sub cached_allocate { my $img = shift; my @rgb = @_; my $rgb = join(",", @rgb); $color_cache{$rgb} = $img->colorAllocate(@rgb) unless($color_cache{$rgb}); return $color_cache{$rgb}; } my $img = GD::Image->new("barn.png"); my ($height, $width) = ($img->height, $img->width); my $yuv_img = GD::Image->new($width, $height*4); foreach my $y (0..$height-1) { foreach my $x (0..$width-1) { my ($r, $g, $b) = map { $_ / 256 } my @rgb = $img->rgb($img->getPixel($x, $y)); my $Y = 0.299*$r+0.587*$g+0.114*$b; my $U = 0.436*($b-$Y)/(1-0.114); my $V = 0.615*($r-$Y)/(1-0.299); $Y *= 256; $U += .436; $U *= (256/.872); $V += .615; $V *= (256/1.23); ($Y, $U, $V) = map { int(0.5+$_) } ($Y, $U, $V); die "YUV: $Y,$U,$V" if (($Y > 255) or ($U > 255) or ($V > 255)); $yuv_img->setPixel($x, $y, cached_allocate($yuv_img, @rgb)); $yuv_img->setPixel($x, $height+$y, cached_allocate($yuv_img, $Y, $Y, $Y)); $yuv_img->setPixel($x, 2*$height+$y, cached_allocate($yuv_img, 0, 255-$U, $U)); $yuv_img->setPixel($x, 3*$height+$y, cached_allocate($yuv_img, $V, 255-$V, 0)); } }; print $yuv_img->png' >barn-yuv.png
Licenza
[modifica]Public domainPublic domainfalsefalse |
Io, detentore del copyright su quest'opera, la rilascio nel pubblico dominio. Questa norma si applica in tutto il mondo. In alcuni paesi questo potrebbe non essere legalmente possibile. In tal caso: Garantisco a chiunque il diritto di utilizzare quest'opera per qualsiasi scopo, senza alcuna condizione, a meno che tali condizioni siano richieste dalla legge. |
Cronologia del file
Fare clic su un gruppo data/ora per vedere il file come si presentava nel momento indicato.
Data/Ora | Miniatura | Dimensioni | Utente | Commento | |
---|---|---|---|---|---|
attuale | 05:11, 22 set 2007 | 400 × 1 196 (425 KB) | Brianski (discussione | contributi) | == Summary == {{Information |Description=YUV colorspace |Source=Adapted from en:Image:YUV_components.jpg |Date=2007/09/22 |Author=en:User:(3ucky(3all, updated by User:Brianski |Permission=Creative Commons Attribution or GFDL |see_also=[[barn |
Impossibile sovrascrivere questo file.
Utilizzo del file
La seguente pagina usa questo file:
Utilizzo globale del file
Anche i seguenti wiki usano questo file:
- Usato nelle seguenti pagine di az.wikipedia.org:
- Usato nelle seguenti pagine di be.wikipedia.org:
- Usato nelle seguenti pagine di cs.wikipedia.org:
- Usato nelle seguenti pagine di da.wikipedia.org:
- Usato nelle seguenti pagine di de.wikipedia.org:
- Usato nelle seguenti pagine di en.wikipedia.org:
- Usato nelle seguenti pagine di es.wikipedia.org:
- Usato nelle seguenti pagine di fr.wikipedia.org:
- Usato nelle seguenti pagine di it.wikipedia.org:
- Usato nelle seguenti pagine di ja.wikipedia.org:
- Usato nelle seguenti pagine di ko.wikipedia.org:
- Usato nelle seguenti pagine di nl.wikipedia.org:
- Usato nelle seguenti pagine di pl.wikipedia.org:
- Usato nelle seguenti pagine di ru.wikipedia.org:
- Usato nelle seguenti pagine di tr.wikipedia.org:
- Usato nelle seguenti pagine di uk.wikipedia.org:
- Usato nelle seguenti pagine di zh.wikipedia.org: