파일:Barn-yuv.png

문서 내용이 다른 언어로는 지원되지 않습니다.
위키백과, 우리 모두의 백과사전.

원본 파일(400 × 1,196 픽셀, 파일 크기: 425 KB, MIME 종류: image/png)

파일 설명

설명 YUV colorspace
날짜
출처 Concept from en:Image:YUV_components.jpg, original public domain image at en:Image:Barns_grand_tetons.jpg
저자 User:Brianski
저작권
(이 파일을 인용하기)
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

라이선스

Public domain 나는 이 작품의 저작권자로서, 이 작품을 퍼블릭 도메인으로 모두에게 공개합니다. 이 공개 선언은 전 세계적으로 유효합니다.
만약 저작권의 포기가 법률적으로 가능하지 않은 경우,
나는 이 작품을 법적으로 허용되는 한도 내에서 누구나 자유롭게 어떤 목적으로도 제한없이 사용할 수 있도록 허용합니다.

설명

이 파일이 나타내는 바에 대한 한 줄 설명을 추가합니다

이 파일에 묘사된 항목

다음을 묘사함

d3127a1d2ae6d38c684681282a72fe7b47e4f8a8

435,380 바이트

1,196 화소

400 화소

파일 역사

날짜/시간 링크를 클릭하면 해당 시간의 파일을 볼 수 있습니다.

날짜/시간섬네일크기사용자설명
현재2007년 9월 22일 (토) 14:112007년 9월 22일 (토) 14:11 판의 섬네일400 × 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

다음 문서 1개가 이 파일을 사용하고 있습니다:

이 파일을 사용하고 있는 모든 위키의 문서 목록

다음 위키에서 이 파일을 사용하고 있습니다:

  • az.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
  • be.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
  • cs.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
  • da.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
  • de.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
  • en.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
  • es.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
  • fr.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
  • it.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
  • ja.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
  • nl.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
  • pl.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
  • ru.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
  • tr.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
  • uk.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
  • zh.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록