Fil:Barn-yuv.png

Page contents not supported in other languages.
Fra Wikipedia, den frie encyklopædi

Fuld opløsning(400 × 1.196 billedpunkter, filstørrelse: 425 KB, MIME-type: image/png)


Denne fil er fra Wikimedia Commons

Beskrivelse

Beskrivelse YUV colorspace
Dato
Kilde Concept from en:Image:YUV_components.jpg, original public domain image at en:Image:Barns_grand_tetons.jpg
Forfatter User:Brianski
Tilladelse
(Genbrug af denne fil)
Public Domain

The picture is of the John Moulton Barn at the base of the Teton Range.

Raison d'être

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

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

Licensering

Public domain Jeg, indehaveren af ophavsretten til dette værk, udgiver dette værk som offentlig ejendom. Dette gælder i hele verden.
I nogle lande er dette ikke juridisk muligt. I så fald:
Jeg giver enhver ret til at anvende dette værk til ethvert formål, uden nogen restriktioner, medmindre sådanne restriktioner er påkrævede ved lov.

Captions

Tilføj en kort forklaring på en enkelt linje om hvad filen viser

Elementer som er med i denne fil

afbilder

image/png

d3127a1d2ae6d38c684681282a72fe7b47e4f8a8

435.380 Byte

1.196 pixel

400 pixel

Filhistorik

Klik på en dato/tid for at se filen som den så ud på det tidspunkt.

Dato/tidMiniaturebilledeDimensionerBrugerKommentar
nuværende22. sep. 2007, 07:11Miniature af versionen fra 22. sep. 2007, 07:11400 × 1.196 (425 KB)Brianski== 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

Den følgende side bruger denne fil:

Global filanvendelse

Følgende andre wikier anvender denne fil:

  • Anvendelser på az.wikipedia.org
  • Anvendelser på be.wikipedia.org
  • Anvendelser på cs.wikipedia.org
  • Anvendelser på de.wikipedia.org
  • Anvendelser på en.wikipedia.org
  • Anvendelser på es.wikipedia.org
  • Anvendelser på fr.wikipedia.org
  • Anvendelser på it.wikipedia.org
  • Anvendelser på ja.wikipedia.org
  • Anvendelser på ko.wikipedia.org
  • Anvendelser på nl.wikipedia.org
  • Anvendelser på pl.wikipedia.org
  • Anvendelser på ru.wikipedia.org
  • Anvendelser på tr.wikipedia.org
  • Anvendelser på uk.wikipedia.org
  • Anvendelser på zh.wikipedia.org