<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>RGB to YUV to RGB</title>
		<link>http://www.allegro.cc/forums/view/429343</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sat, 13 Nov 2004 01:36:24 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>i read somewhere that converting from RGB to YUV could be done with this</p><p>Y=.3R+.59G+.11B;<br />U=B-Y;<br />V=R-Y</p><p>but what is the conversion from YUV to RGB ?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (A J)</author>
		<pubDate>Fri, 12 Nov 2004 14:07:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Just treat it as three equations and solve it. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p><div class="source-code snippet"><div class="inner"><pre>B<span class="k3">=</span>Y<span class="k3">+</span>U<span class="k2">;</span>
R<span class="k3">=</span>Y<span class="k3">+</span>V<span class="k2">;</span>
G<span class="k3">=</span><span class="k2">(</span>Y-.3R-.11B<span class="k2">)</span><span class="k3">/</span>.<span class="n">59</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Krzysztof Kluczek)</author>
		<pubDate>Fri, 12 Nov 2004 14:10:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Actually:
</p><div class="source-code snippet"><div class="inner"><pre>  R <span class="k3">=</span> <span class="n">1</span>.<span class="n">164</span><span class="k3">*</span><span class="k2">(</span>Y <span class="k3">-</span> <span class="n">16</span><span class="k2">)</span>                 <span class="k3">+</span> crv<span class="k3">*</span><span class="k2">(</span>V <span class="k3">-</span> <span class="n">128</span><span class="k2">)</span>
  G <span class="k3">=</span> <span class="n">1</span>.<span class="n">164</span><span class="k3">*</span><span class="k2">(</span>Y <span class="k3">-</span> <span class="n">16</span><span class="k2">)</span> <span class="k3">-</span> cgu<span class="k3">*</span><span class="k2">(</span>U <span class="k3">-</span> <span class="n">128</span><span class="k2">)</span> <span class="k3">-</span> cgv<span class="k3">*</span><span class="k2">(</span>V <span class="k3">-</span> <span class="n">128</span><span class="k2">)</span>
  B <span class="k3">=</span> <span class="n">1</span>.<span class="n">164</span><span class="k3">*</span><span class="k2">(</span>Y <span class="k3">-</span> <span class="n">16</span><span class="k2">)</span> <span class="k3">+</span> cbu<span class="k3">*</span><span class="k2">(</span>U <span class="k3">-</span> <span class="n">128</span><span class="k2">)</span>
<span class="c">// where:</span>
  <span class="c">/* For SMPTE 170M (NTSC;MPEG-1) */</span>
  crv <span class="k3">=</span> <span class="n">1</span>.<span class="n">596f</span><span class="k2">;</span>
  cbu <span class="k3">=</span> <span class="n">2</span>.<span class="n">018f</span><span class="k2">;</span>
  cgu <span class="k3">=</span> <span class="n">0</span>.<span class="n">391f</span><span class="k2">;</span>
  cgv <span class="k3">=</span> <span class="n">0</span>.<span class="n">813f</span><span class="k2">;</span>
</pre></div></div><p>Assuming input and output is between 0 and 255.  You also need to be warry over overflow/underflow and clamp accordingly.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Fri, 12 Nov 2004 14:28:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Krzysztof Kluczek,  i watch Shrek2 for the 1st time tonight..<br />nice avatar <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (A J)</author>
		<pubDate>Sat, 13 Nov 2004 01:36:24 +0000</pubDate>
	</item>
</rss>
