<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>&#8235;KammaGamma &#187; Understanding Noise Reduction&#8236;</title>	<atom:link href="http://kammagamma.com/tags/articles/understanding-noise-reduction/feed" rel="self" type="application/rss+xml" />
	<link>http://kammagamma.com</link>
	<description>&#8235;&#8236;</description>	<lastBuildDate>Tue, 12 May 2009 18:55:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>&#8235;Canon EOS 1D Mark III &#8211; Image Quality Redefined&#8236;</title>		<link>http://kammagamma.com/articles/canon-eos-1d-mark-iii-image-quality-redefined.php</link>
		<comments>http://kammagamma.com/articles/canon-eos-1d-mark-iii-image-quality-redefined.php#comments</comments>
		<pubDate>Sat, 23 Jun 2007 18:24:41 +0000</pubDate>
		<dc:creator>&#8235;Max Penson&#8236;</dc:creator>				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Canon]]></category>
		<category><![CDATA[Canon EOS 1D Mark III]]></category>
		<category><![CDATA[Comparisons]]></category>
		<category><![CDATA[DIGIC III]]></category>
		<category><![CDATA[Nikon]]></category>
		<category><![CDATA[Nikon D200]]></category>
		<category><![CDATA[Noise]]></category>
		<category><![CDATA[Noise Reduction]]></category>
		<category><![CDATA[Top Story]]></category>
		<category><![CDATA[Understanding Noise Reduction]]></category>

		<guid isPermaLink="false">http://kammagamma.com/articles/canon-eos-1d-mark-iii-image-quality-redefined.php</guid>
		<description><![CDATA[&#8235;   &#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p> <body onLoad="MM_preloadImages('canonos1dmarkiii/noise/d200_gray_raw_RGB.jpg','canonos1dmarkiii/noise/mkiii_crop2_on_chroma.jpg','canonos1dmarkiii/noise/chroma_canon.jpg','canonos1dmarkiii/noise/d200_gray_raw_chroma.jpg','canonos1dmarkiii/noise/mkiii_crop2_on_luma.jpg','chroma_nikon.jpg','canonos1dmarkiii/noise/d200_gray_raw_luma.jpg','canonos1dmarkiii/noise/mkiii_crop2_raw_RGB.jpg','canonos1dmarkiii/noise/d200_black_normal_RGB.jpg','canonos1dmarkiii/noise/d200_ls_RGB.jpg','mkiii_crop2_raw_chroma.jpg','canonos1dmarkiii/noise/d200_black_normal_chroma.jpg','canonos1dmarkiii/noise/d200_ls_chroma.jpg','canonos1dmarkiii/noise/mkiii_crop2_raw_luma.jpg','d200_black_normal_luma.jpg','canonos1dmarkiii/noise/d200_ls_luma.jpg','canonos1dmarkiii/noise/mkiii_crop3_off_RGB.jpg','canonos1dmarkiii/noise/d200_black_off_RGB.jpg','canonos1dmarkiii/noise/d200_white_normal_RGB.jpg','mkiii_crop3_off_chroma.jpg','canonos1dmarkiii/noise/d200_black_off_chroma.jpg','canonos1dmarkiii/noise/d200_white_normal_chroma.jpg','canonos1dmarkiii/noise/mkiii_crop3_off_luma.jpg','d200_black_off_luma.jpg','canonos1dmarkiii/noise/d200_white_normal_luma.jpg','canonos1dmarkiii/noise/mkiii_crop3_on_RGB.jpg','canonos1dmarkiii/noise/d200_black_raw_RGB.jpg','canonos1dmarkiii/noise/d200_white_off_RGB.jpg','mkiii_crop3_on_chroma.jpg','canonos1dmarkiii/noise/d200_black_raw_chroma.jpg','canonos1dmarkiii/noise/d200_white_off_chroma.jpg','canonos1dmarkiii/noise/mkiii_crop3_on_luma.jpg','canonos1dmarkiii/noise/d200_black_raw_luma.jpg','d200_white_off_luma.jpg','canonos1dmarkiii/noise/mkiii_crop3_raw_RGB.jpg','canonos1dmarkiii/noise/d200_crop2_normal_RGB.jpg','canonos1dmarkiii/noise/d200_white_raw_RGB.jpg','canonos1dmarkiii/noise/mkiii_crop3_raw_chroma.jpg','d200_crop2_normal_chroma.jpg','canonos1dmarkiii/noise/d200_white_raw_chroma.jpg','canonos1dmarkiii/noise/mkiii_crop3_raw_luma.jpg','canonos1dmarkiii/noise/d200_crop2_normal_luma.jpg','d200_white_raw_luma.jpg','canonos1dmarkiii/noise/mkiii_glow_off_RGB.jpg','canonos1dmarkiii/noise/d200_crop2_off_RGB.jpg','canonos1dmarkiii/noise/edge0_jpeg_luma.jpg','canonos1dmarkiii/noise/mkiii_glow_off_chroma.jpg','d200_crop2_off_chroma.jpg','canonos1dmarkiii/noise/edge0_raw_luma.jpg','canonos1dmarkiii/noise/mkiii_glow_off_luma.jpg','canonos1dmarkiii/noise/d200_crop2_off_luma.jpg','canonos1dmarkiii/noise/edge1_jpeg_luma.jpg','mkiii_glow_on_RGB.jpg','canonos1dmarkiii/noise/d200_crop2_raw_RGB.jpg','canonos1dmarkiii/noise/edge1_raw_luma.jpg','canonos1dmarkiii/noise/mkiii_glow_on_chroma.jpg','canonos1dmarkiii/noise/d200_crop2_raw_chroma.jpg','edge2_jpeg_luma.jpg','canonos1dmarkiii/noise/mkiii_glow_on_luma.jpg','canonos1dmarkiii/noise/d200_crop2_raw_luma.jpg','canonos1dmarkiii/noise/edge2_raw_luma.jpg','canonos1dmarkiii/noise/mkiii_glow_raw_RGB.jpg','d200_crop3_normal_RGb.jpg','canonos1dmarkiii/noise/edge3_jpeg_luma.jpg','canonos1dmarkiii/noise/mkiii_glow_raw_chroma.jpg','canonos1dmarkiii/noise/d200_crop3_normal_chroma.jpg','canonos1dmarkiii/noise/edge3_raw_luma.jpg','mkiii_glow_raw_luma.jpg','canonos1dmarkiii/noise/d200_crop3_normal_luma.jpg','canonos1dmarkiii/noise/mk_crop1_nr_off_chroma.jpg','canonos1dmarkiii/noise/mkiii_gray_off_RGB.jpg','canonos1dmarkiii/noise/d200_crop3_off_RGB.jpg','mk_crop1_nr_off_luma.jpg','canonos1dmarkiii/noise/mkiii_gray_off_chroma.jpg','canonos1dmarkiii/noise/d200_crop3_off_chroma.jpg','canonos1dmarkiii/noise/mk_crop1_nr_off_rgb.jpg','canonos1dmarkiii/noise/mkiii_gray_off_luma.jpg','d200_crop3_off_luma.jpg','canonos1dmarkiii/noise/mk_crop1_nr_on_chroma.jpg','canonos1dmarkiii/noise/mkiii_gray_on_RGB.jpg','canonos1dmarkiii/noise/d200_crop3_raw_RGB.jpg','canonos1dmarkiii/noise/mk_crop1_nr_on_luma.jpg','mkiii_gray_on_chroma.jpg','canonos1dmarkiii/noise/d200_crop3_raw_chroma.jpg','canonos1dmarkiii/noise/mk_crop1_nr_on_rgb.jpg','canonos1dmarkiii/noise/mkiii_gray_on_luma.jpg','canonos1dmarkiii/noise/d200_crop3_raw_luma.jpg','mk_crop1_raw_chroma.jpg','canonos1dmarkiii/noise/mkiii_gray_raw_RGB.jpg','canonos1dmarkiii/noise/d200_glow_normal_RGB.jpg','canonos1dmarkiii/noise/mk_crop1_raw_luma.jpg','canonos1dmarkiii/noise/mkiii_gray_raw_chroma.jpg','d200_glow_normal_chroma.jpg','canonos1dmarkiii/noise/mk_crop1_raw_rgb.jpg','canonos1dmarkiii/noise/mkiii_gray_raw_luma.jpg','canonos1dmarkiii/noise/d200_glow_normal_luma.jpg','canonos1dmarkiii/noise/mkiii_black_off_RGB.jpg','mkiii_ls_RGB.jpg','canonos1dmarkiii/noise/d200_glow_off_RGB.jpg','canonos1dmarkiii/noise/mkiii_black_off_chroma.jpg','canonos1dmarkiii/noise/mkiii_ls_chroma.jpg','canonos1dmarkiii/noise/d200_glow_off_chroma.jpg','mkiii_black_off_luma.jpg','canonos1dmarkiii/noise/mkiii_ls_luma.jpg','canonos1dmarkiii/noise/d200_glow_off_luma.jpg','canonos1dmarkiii/noise/mkiii_black_on_RGB.jpg','canonos1dmarkiii/noise/mkiii_white_off_RGB.jpg','d200_glow_raw_RGB.jpg','canonos1dmarkiii/noise/mkiii_black_on_chroma.jpg','canonos1dmarkiii/noise/mkiii_white_off_chroma.jpg','canonos1dmarkiii/noise/d200_glow_raw_chroma.jpg','canonos1dmarkiii/noise/mkiii_black_on_luma.jpg','mkiii_white_off_luma.jpg','canonos1dmarkiii/noise/d200_glow_raw_luma.jpg','canonos1dmarkiii/noise/mkiii_black_raw_RGB.jpg','canonos1dmarkiii/noise/mkiii_white_on_RGB.jpg','canonos1dmarkiii/noise/d200_gray_normal_RGB.jpg','mkiii_black_raw_chroma.jpg','canonos1dmarkiii/noise/mkiii_white_on_chroma.jpg','canonos1dmarkiii/noise/d200_gray_normal_chroma.jpg','canonos1dmarkiii/noise/mkiii_black_raw_luma.jpg','mkiii_white_on_luma.jpg','canonos1dmarkiii/noise/d200_gray_normal_luma.jpg','canonos1dmarkiii/noise/mkiii_crop2_off_RGB.jpg','canonos1dmarkiii/noise/mkiii_white_raw_RGB.jpg','canonos1dmarkiii/noise/d200_gray_off_RGB.jpg','mkiii_crop2_off_chroma.jpg','canonos1dmarkiii/noise/mkiii_white_raw_chroma.jpg','canonos1dmarkiii/noise/d200_gray_off_chroma.jpg','canonos1dmarkiii/noise/mkiii_crop2_off_luma.jpg','mkiii_white_raw_luma.jpg','canonos1dmarkiii/noise/d200_gray_off_luma.jpg','canonos1dmarkiii/noise/mkiii_crop2_on_RGB.jpg')"'></p>
<p>In the past year or so we started to noticed that noise reduction algorithms camera makers were using are starting to evolve. Around the time the Nikon D200 was released to the market, everyone in the japanese camera industry were coming up with something called chroma noise reduction. Prior the Nikon D200, camera makers have done some amount of chroma noise reduction, but the Nikon D200 was the first DSLR to actually use huge filters with very aggressive strength on chroma data. Canon&#8217;s DIGIC II is using what we call, the old age noise reduction algorithm, what looks like limited sized filters on chroma and luma data. This age is now over, with the DIGIC III having the &#8220;New age&#8221; or &#8220;New generation&#8221; system that can filter chroma data very aggressively, Canon is now catching up to the Nikon, Fuji and Panasonic.</p>
<p><strong>Note: You may need to wait until all images in this page will fully load before toggling between views.</strong></p>
<p><H1>Evaluating algorithms</H1></p>
<p>Evaluating Canon&#8217;s new noise reduction algorithms is easy if you have access to the engine that runs them (DIGIC III), which we don&#8217;t. Our job won&#8217;t be so easy, and we&#8217;ll have to be a little bit more creative. First we have to find the perfect candidate to compare Canon&#8217;s new noise reduction algorithms. This candidate can only be the Nikon D200, which uses the same type of new age noise reduction algorithms.</p>
<p><H2>Same signal</H2></p>
<p>Signal level and sensitivity of the sensor are in fact what the noise reduction algorithms receive as their input data. In order to even things out between the two sensors (Mark III and the D200), we had to find an ISO level which will produce the same noise level in both cameras. The input level needs to be as similar as possible. We also wanted to ensure the image will have sufficient noise levels in order to make things tough for the noise reduction algorithms &#8211; a high ISO level was needed. The first thing we did was to photograph our test scene with both cameras, using all ISO settings in 1/3EV steps. We then striped all RAW files from their headers and processed all files with a very basic demosaicing algorithm, white balance and basic Gamma. The result is a set of images that have no noise reduction applied. Because the EOS Mark III RAW files have not been applied with any black-level and their white point is not the same as the Nikon D200 &#8211; finding the same signal level wasn&#8217;t easy. We had finally come to the conclusion that we should use the Nikon D200 at 1600ISO and the Canon EOS Mark III at 3200ISO to match the input signal levels.</p>
<p><H2>Edge enhancement (Sharpening)</H2></p>
<p>Edge enhancement, or sharpening, influences <strong>edge noise</strong> and edge look quite a bit. Both Nikon and Canon do their edge enhancement differently, but we have to make sure the levels of the edge enhancement are close. After testing different levels of in-camera sharpening, it was clear that the Canon EOS Mark III is to be set to sharpening 2 and the Nikon D200 will be set to Normal sharpening. At 1600 ISO, Medium High on the Nikon D200 was too high, compared to the EOS 1D Mark III. Note that you may see more white hallows on Canon&#8217;s side, but this is just their way of sharpening.</p>
<p><H2>Our scene and 200% view</H2></p>
<p><img src="canonos1dmarkiii/noise/scene.jpg" width="350" height="236"></p>
<p>This is our scene which we are going to use for this article. It is not an easy scene, as it was specially designed to fail noise reduction algorithms. The crops taken from this scene are 200% view. Although you may call us Pixel Peepers, but we believe 200% is the minimum view needed in order to analyze algorithms. If you find this bothering, you might find low quality noise reduction algorithms good enough for you.</p>
<p>The scene was shot with both cameras at the same time. Due to crop factor differences, we moved the EOS 1D Mark III forwards to match the size of the objects in the scene. This results from the EOS 1D MKIII are having a small advantage in distance. Also note, we set contrast of the EOS 1D Mark III to -2 to match the contrast of the Nikon D200, as the Nikon D200 High contrast setting is too high.</p>
<p>Here is the full settings we used:<br />
Canon EOS 1D Mark III: 1/400, 50mm(EF 2.5)@f8, JPEG L, 3200ISO, picture style &#8211; standard, contrast -2, sharpening 2, sRGB.</p>
<p>Nikon D200: 1/200, 50(f1.4)@F8, JPEG Fine, 1600ISO, Tone &#8211; Normal, Sharpening &#8211; normal, sRGB (Mode I).</p>
<p>We&#8217;ll also be showing you crops with no noise reduction. Those crops were acheived by using DNG demosaicing and some matlab for WB and Gamma functions. We used the SAME gamma the manufacture used to produce the image, as gamma has huge impact on noise. Please note that there is no easy way to reproduce Canon&#8217;s colors (which also affects noise), so those crops will have a different color.</p>
<p><H1>The Results</H1></p>
<p>Before examining the results, we need to clarify the difference between the two types of noise recudsion the EOS 1D Mark III uses. C. Fn II-2 allows you to set the noise reduction ON or OFF, but rest assured that noise reduction is never really turned OFF. What it does mean is that the camera will do a simpler noise reduction, much similar to what DIGIC II was capable of. Switching C. Fn II-2 to ON means the camera will apply the new, more agressive noise reduction, which is way more modern. The down side is mostly speed, as it turns out two DIGIC III chips can not process RAW images fast enough to clear the buffer. The buffer depth reduces from 99 images to just 14. Much to our disappointment, Canon had to set C. Fn II-2 to OFF by default, and produce relatively low image quality.</p>
<p><script src="Spry/SpryTabbedPanels.js" type="text/javascript"></script></p>
<link href="Spry/SpryTabbedPanels.css" rel="stylesheet" type="text/css">
<div id="mk_only" class="TabbedPanels">
<ul class="TabbedPanelsTabGroup">
<li class="TabbedPanelsTab" tabindex="0">RGB View</li>
<li class="TabbedPanelsTab" tabindex="0">Luma View</li>
<li class="TabbedPanelsTab" tabindex="0">Chroma View</li>
</ul>
<div class="TabbedPanelsContentGroup">
<div class="TabbedPanelsContent">
<table width="0" border="0">
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('mk_only','','canonos1dmarkiii/noise/mk_crop1_nr_off_rgb.jpg',1)">EOS 1D Mark III NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('mk_only','','canonos1dmarkiii/noise/mk_crop1_nr_on_rgb.jpg',1)">EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('mk_only','','canonos1dmarkiii/noise/mk_crop1_raw_rgb.jpg',1)">EOS 1D Mark III RAW (No NR)</div>
</td>
</tr>
<tr>
<td colspan="3"><img src="canonos1dmarkiii/noise/mk_crop1_nr_off_rgb.jpg" name="mk_only" width="600" height="300" id="mk_only"></td>
</tr>
</table></div>
<div class="TabbedPanelsContent">
<table width="0" border="0">
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('mk_only2','','canonos1dmarkiii/noise/mk_crop1_nr_off_luma.jpg',1)">EOS 1D Mark III NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('mk_only2','','canonos1dmarkiii/noise/mk_crop1_nr_on_luma.jpg',1)">EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('mk_only2','','canonos1dmarkiii/noise/mk_crop1_raw_luma.jpg',1)">EOS 1D Mark III RAW (No NR)</div>
</td>
</tr>
<tr>
<td colspan="3"><img src="canonos1dmarkiii/noise/mk_crop1_nr_off_luma.jpg" alt="" name="mk_only2" width="600" height="300" id="mk_only2"></td>
</tr>
</table></div>
<div class="TabbedPanelsContent">
<table width="0" border="0">
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('mk_only3','','canonos1dmarkiii/noise/mk_crop1_nr_off_chroma.jpg',1)">EOS 1D Mark III NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('mk_only3','','canonos1dmarkiii/noise/mk_crop1_nr_on_chroma.jpg',1)">EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('mk_only3','','canonos1dmarkiii/noise/mk_crop1_raw_chroma.jpg',1)">EOS 1D Mark III RAW (No NR)</div>
</td>
</tr>
<tr>
<td colspan="3"><img src="canonos1dmarkiii/noise/mk_crop1_nr_off_chroma.jpg" alt="" name="mk_only3" width="600" height="300" id="mk_only3"></td>
</tr>
</table></div>
</p></div>
</div>
<p>As you can see from the results, when the C. FnII-2 is set to OFF there is quite a bit of Chroma noise. This type of noise reduction also reduces a little bit of details compared to the RAW image with no noise reduction applied. From the large color spots in the NR OFF image you can see that the filter applied on the data is is not large, meaning the filter is not averaging strongly on large regions. However, we are really impressed by the very good edge detection and preservation.</p>
<p>Turing C. FnII-2 ON really upgrades the image quality. This type of noise reduction splits the data into luma (brightenss) and chroma (color) images. Canon then filters Chroma data with very large (huge, probably) filters, averaging very strongly while preserving edges. Luma data also gets the same treatment but with a very fine and gentle filtering. Once Chroma noise is out of the way all that is left is strong monochromatic grain and some demosaicing noise (patterns that are a result of demosaicing). Luma noise is then filtered gently to produce fine looking grain. This is the part where the camera maker needs to find the balance between details and grain (luma noise). </p>
<p>With high ISO images, small and fine details are embedded into noise, so over filtering will lose more of those details but will also produce a flatter, grain-less images. Filter too little, and you end up with a lot more luminance noise, alongside preserving those details. A good balance is needed to achieve the best possible result.</p>
<p>There is one more variable in the equation, and that is edge detection. The trick of noise reduction in to filter evenly on flat areas but filter along the edge when an edge is detected. The better the camera maker could do this, the more details will be preserved while treating flat areas with stronger filtering.</p>
<p>From the results above you can see that this time, lunch is indeed (almost) free. For little less fine details you can get an image free of color noise. When C. FnII-2 is set to ON you indeed get a modern, top notch, excellent noise reduction. Too bad Canon hasn&#8217;t made their best effort to make DIGIC III fast enough for 10MP with 10 frames per second (although this is actually a buffer size issue. the actual processing time is probably less even with C. FnII-2 set to OFF).</p>
<p><H1>Canon vs. Nikon, here we go</H1></p>
<p>Nikon had their bets on new generation noise reduction for some time now. As you may know, Nikon had a few problems with their own sensors. With pixel sizes getting smaller and smaller every year as camera resolution increases, the best way to deal with image noise is to have less noise to begin with. But since that is out of their reach, now generation chroma noise reduction is the way to go.</p>
<p>The Nikon D200 was the first DSLR with new generation noise reduction and this was over a year before Canon&#8217;s DIGIC III. So Nikon is probably going to improve their algorithms in the next pro DSLR camera. Note that the Nikon D80 and Nikon D40x don&#8217;t seem to use an improved algorithm, but only seem to use different configurations for the same algorithm.</p>
<p><H2>Chroma filtering strength</H2></p>
<p>IIt&#8217;s not easy to filter an image fast and effectively, a camera maker may not be able to filter the data to a completely flat result (even though this is not always necessary). So first we&#8217;ll look at the strength of the chroma and luma filtering. Please note that we have this detailed data on chart which you can view <a href="http://kammagamma.com/articles/noise-analysis-db.php?camera1=18&#038;camera2=5" target="_blank">here</a>.</p>
<div id="dc_zone" class="TabbedPanels">
<ul class="TabbedPanelsTabGroup">
<li class="TabbedPanelsTab" tabindex="0">RGB View</li>
<li class="TabbedPanelsTab" tabindex="0">Luma Viev</li>
<li class="TabbedPanelsTab" tabindex="0"> Chroma view</li>
</ul>
<div class="TabbedPanelsContentGroup">
<div class="TabbedPanelsContent">
<table width="0" border="0">
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('rgb_black','','canonos1dmarkiii/noise/mkiii_black_on_RGB.jpg','rgb_gray','','canonos1dmarkiii/noise/mkiii_gray_on_RGB.jpg','rgb_white','','canonos1dmarkiii/noise/mkiii_white_on_RGB.jpg',1);mark(this)">EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('rgb_black','','canonos1dmarkiii/noise/mkiii_black_off_RGB.jpg','rgb_gray','','canonos1dmarkiii/noise/mkiii_gray_off_RGB.jpg','rgb_white','','canonos1dmarkiii/noise/mkiii_white_off_RGB.jpg',1);mark(this)">EOS 1D Mark III NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('rgb_black','','canonos1dmarkiii/noise/mkiii_black_raw_RGB.jpg','rgb_gray','','canonos1dmarkiii/noise/mkiii_gray_raw_RGB.jpg','rgb_white','','canonos1dmarkiii/noise/mkiii_white_raw_RGB.jpg',1);mark(this)">EOS 1D Mark III RAW (No NR)</div>
</td>
</tr>
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('rgb_black','','canonos1dmarkiii/noise/d200_black_normal_RGB.jpg','rgb_gray','','canonos1dmarkiii/noise/d200_gray_normal_RGB.jpg','rgb_white','','canonos1dmarkiii/noise/d200_white_normal_RGB.jpg',1);mark(this)">Nikon D200 NR Normal</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('rgb_black','','canonos1dmarkiii/noise/d200_black_off_RGB.jpg','rgb_gray','','canonos1dmarkiii/noise/d200_gray_off_RGB.jpg','rgb_white','','canonos1dmarkiii/noise/d200_white_off_RGB.jpg',1);mark(this)">Nikon D200 NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('rgb_black','','canonos1dmarkiii/noise/d200_black_raw_RGB.jpg','rgb_gray','','canonos1dmarkiii/noise/d200_gray_raw_RGB.jpg','rgb_white','','canonos1dmarkiii/noise/d200_white_raw_RGB.jpg',1);mark(this)">Nikon D200 RAW (No NR)</div>
</td>
</tr>
<tr>
<td height="204"><img src="canonos1dmarkiii/noise/mkiii_black_on_RGB.jpg" name="rgb_black" width="200" height="200" id="rgb_black"></td>
<td><img src="canonos1dmarkiii/noise/mkiii_gray_on_RGB.jpg" name="rgb_gray" width="200" height="200" id="rgb_gray"></td>
<td><img src="canonos1dmarkiii/noise/mkiii_white_on_RGB.jpg" name="rgb_white" width="200" height="200" id="rgb_white"></td>
</tr>
<tr>
<td>
<div align="center">Black</div>
</td>
<td>
<div align="center">Gray</div>
</td>
<td>
<div align="center">White</div>
</td>
</tr>
</table></div>
<div class="TabbedPanelsContent">
<table width="0" border="0">
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('luma_black','','canonos1dmarkiii/noise/mkiii_black_on_luma.jpg','luma_gray','','canonos1dmarkiii/noise/mkiii_gray_on_luma.jpg','luma_white','','canonos1dmarkiii/noise/mkiii_white_on_luma.jpg',1);mark(this)">EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('luma_black','','canonos1dmarkiii/noise/mkiii_black_off_luma.jpg','luma_gray','','canonos1dmarkiii/noise/mkiii_gray_off_luma.jpg','luma_white','','canonos1dmarkiii/noise/mkiii_white_off_luma.jpg',1);mark(this)">EOS 1D Mark III NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('luma_black','','canonos1dmarkiii/noise/mkiii_black_raw_luma.jpg','luma_gray','','canonos1dmarkiii/noise/mkiii_gray_raw_luma.jpg','luma_white','','canonos1dmarkiii/noise/mkiii_white_raw_luma.jpg',1);mark(this)">EOS 1D Mark III RAW (No NR)</div>
</td>
</tr>
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('luma_black','','canonos1dmarkiii/noise/d200_black_normal_luma.jpg','luma_gray','','canonos1dmarkiii/noise/d200_gray_normal_luma.jpg','luma_white','','canonos1dmarkiii/noise/d200_white_normal_luma.jpg',1);mark(this)">Nikon D200 NR Normal</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('luma_black','','canonos1dmarkiii/noise/d200_black_off_luma.jpg','luma_gray','','canonos1dmarkiii/noise/d200_gray_off_luma.jpg','luma_white','','canonos1dmarkiii/noise/d200_white_off_luma.jpg',1);mark(this)">Nikon D200 NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('luma_black','','canonos1dmarkiii/noise/d200_black_raw_luma.jpg','luma_gray','','canonos1dmarkiii/noise/d200_gray_raw_luma.jpg','luma_white','','canonos1dmarkiii/noise/d200_white_raw_luma.jpg',1);mark(this)">Nikon D200 RAW (No NR)</div>
</td>
</tr>
<tr>
<td><img src="canonos1dmarkiii/noise/mkiii_black_on_luma.jpg" name="luma_black" width="200" height="200" id="luma_black2"></td>
<td><img src="canonos1dmarkiii/noise/mkiii_gray_on_luma.jpg" name="luma_gray" width="200" height="200" id="luma_gray2"></td>
<td><img src="canonos1dmarkiii/noise/mkiii_white_on_luma.jpg" name="luma_white" width="200" height="200" id="luma_white2"></td>
</tr>
<tr>
<td>
<div align="center">Black</div>
</td>
<td>
<div align="center">Gray</div>
</td>
<td>
<div align="center">White</div>
</td>
</tr>
</table></div>
<div class="TabbedPanelsContent">
<table width="0" border="0">
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('chroma_black','','canonos1dmarkiii/noise/mkiii_black_on_chroma.jpg','chroma_gray','','canonos1dmarkiii/noise/mkiii_gray_on_chroma.jpg','chroma_white','','canonos1dmarkiii/noise/mkiii_white_on_chroma.jpg',1);mark(this)">EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('chroma_black','','canonos1dmarkiii/noise/mkiii_black_off_chroma.jpg','chroma_gray','','canonos1dmarkiii/noise/mkiii_gray_off_chroma.jpg','chroma_white','','canonos1dmarkiii/noise/mkiii_white_off_chroma.jpg',1);mark(this)">EOS 1D Mark III NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('chroma_black','','canonos1dmarkiii/noise/mkiii_black_raw_chroma.jpg','chroma_gray','','canonos1dmarkiii/noise/mkiii_gray_raw_chroma.jpg','chroma_white','','canonos1dmarkiii/noise/mkiii_white_raw_chroma.jpg',1);mark(this)">EOS 1D Mark III RAW (No NR)</div>
</td>
</tr>
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('chroma_black','','canonos1dmarkiii/noise/d200_black_normal_chroma.jpg','chroma_gray','','canonos1dmarkiii/noise/d200_gray_normal_chroma.jpg','chroma_white','','canonos1dmarkiii/noise/d200_white_normal_chroma.jpg',1);mark(this)">Nikon D200 NR Normal</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('chroma_black','','canonos1dmarkiii/noise/d200_black_off_chroma.jpg','chroma_gray','','canonos1dmarkiii/noise/d200_gray_off_chroma.jpg','chroma_white','','canonos1dmarkiii/noise/d200_white_off_chroma.jpg',1);mark(this)">Nikon D200 NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('chroma_black','','canonos1dmarkiii/noise/d200_black_raw_chroma.jpg','chroma_gray','','canonos1dmarkiii/noise/d200_gray_raw_chroma.jpg','chroma_white','','canonos1dmarkiii/noise/d200_white_raw_chroma.jpg',1);mark(this)">Nikon D200 RAW (No NR)</div>
</td>
</tr>
<tr>
<td><img src="canonos1dmarkiii/noise/mkiii_black_on_chroma.jpg" name="chroma_black" width="200" height="200" id="chroma_black"></td>
<td><img src="canonos1dmarkiii/noise/mkiii_gray_on_chroma.jpg" name="chroma_gray" width="200" height="200" id="chroma_gray"></td>
<td><img src="canonos1dmarkiii/noise/mkiii_white_on_chroma.jpg" name="chroma_white" width="200" height="200" id="chroma_white"></td>
</tr>
<tr>
<td>
<div align="center">Black</div>
</td>
<td>
<div align="center">Gray</div>
</td>
<td>
<div align="center">White</div>
</td>
</tr>
</table></div>
</p></div>
</div>
<p>&nbsp;</p>
<p>The crops above are taken from the Colorchecker 24 chart that is on the scene. It is clearly visible just how good the chroma noise reduction in flattening chroma data. Take a look at the NR OFF setting of the EOS 1D Mark III and you&#8217;ll see why images taken with this setting have much more color noise. It looks like Nikon has reduced chroma noise, or flattened chroma noise a bit better than the EOS 1D Mark III. You can hardly see the difference in this type of image view but it&#8217;s there. Of course, NR OFF setting of the Nikon D200 isn&#8217;t really OFF. It&#8217;s quite the same with smaller amount of filtering. Below is anther crop from our scene that better illustrates that the EOS 1D Mark III leaves a bit of color stains behind. Color stains are very bad, because they can really disturb the viewer.</p>
<table width="0" border="0">
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('chroma_s','','canonos1dmarkiii/noise/chroma_canon.jpg',1)">Canon EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('chroma_s','','canonos1dmarkiii/noise/chroma_nikon.jpg',1)">Nikon D200 Normal</div>
</td>
</tr>
<tr>
<td colspan="2"><img src="canonos1dmarkiii/noise/chroma_canon.jpg" name="chroma_s" width="600" height="300" id="chroma_s"></td>
</tr>
</table>
<p> <H2>Color glow at edges</H2></p>
<p>One of the biggest problems the chroma noise reduction has to deal with is false colors at edges. Because of the large and aggressive filtering on the chroma data, edges are bound to leak from their original position, creating color glow around the edge.</p>
<div id="glow" class="TabbedPanels">
<ul class="TabbedPanelsTabGroup">
<li class="TabbedPanelsTab" tabindex="0">RGB View</li>
<li class="TabbedPanelsTab" tabindex="0">Luma View</li>
<li class="TabbedPanelsTab" tabindex="0">Chroma View</li>
</ul>
<div class="TabbedPanelsContentGroup">
<div class="TabbedPanelsContent">
<table width="0" border="0">
<tr>
<td bgcolor="#CCCCCC">
<div align="center" onMouseOver="MM_swapImage('glow_grb','','canonos1dmarkiii/noise/mkiii_glow_on_RGB.jpg',1)">EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('glow_grb','','canonos1dmarkiii/noise/mkiii_glow_off_RGB.jpg',1)">EOS 1D Mark III NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('glow_grb','','canonos1dmarkiii/noise/mkiii_glow_raw_RGB.jpg',1)">EOS 1D Mark III RAW (No NR)</div>
</td>
</tr>
<tr>
<td bgcolor="#CCCCCC">
<div align="center" onMouseOver="MM_swapImage('glow_grb','','canonos1dmarkiii/noise/d200_glow_normal_RGB.jpg',1)">Nikon D200 NR Normal</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('glow_grb','','canonos1dmarkiii/noise/d200_glow_off_RGB.jpg',1)">Nikon D200 NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('glow_grb','','canonos1dmarkiii/noise/d200_glow_raw_RGB.jpg',1)">Nikon D200 RAW (No NR)</div>
</td>
</tr>
<tr>
<td colspan="3"><img src="canonos1dmarkiii/noise/mkiii_glow_on_RGB.jpg" name="glow_grb" width="600" height="300" id="glow_grb"></td>
</tr>
</table></div>
<div class="TabbedPanelsContent">
<table width="0" border="0">
<tr>
<td bgcolor="#CCCCCC">
<div align="center" onMouseOver="MM_swapImage('glow_luma','','canonos1dmarkiii/noise/mkiii_glow_on_luma.jpg',1)">EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('glow_luma','','canonos1dmarkiii/noise/mkiii_glow_off_luma.jpg',1)">EOS 1D Mark III NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('glow_luma','','canonos1dmarkiii/noise/mkiii_glow_raw_luma.jpg',1)">EOS 1D Mark III RAW (No NR)</div>
</td>
</tr>
<tr>
<td bgcolor="#CCCCCC">
<div align="center" onMouseOver="MM_swapImage('glow_luma','','canonos1dmarkiii/noise/d200_glow_normal_luma.jpg',1)">Nikon D200 NR Normal</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('glow_luma','','canonos1dmarkiii/noise/d200_glow_off_luma.jpg',1)">Nikon D200 NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('glow_luma','','canonos1dmarkiii/noise/d200_glow_raw_luma.jpg',1)">Nikon D200 RAW (No NR)</div>
</td>
</tr>
<tr>
<td colspan="3"><img src="canonos1dmarkiii/noise/mkiii_glow_on_luma.jpg" alt="" name="glow_luma" width="600" height="300" id="glow_luma"></td>
</tr>
</table></div>
<div class=;TabbedPanelsContent">
<table width="0" border="0">
<tr>
<td bgcolor="#CCCCCC">
<div align="center" onMouseOver="MM_swapImage('glow_chroma','','canonos1dmarkiii/noise/mkiii_glow_on_chroma.jpg',1)">EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('glow_chroma','','canonos1dmarkiii/noise/mkiii_glow_off_chroma.jpg',1)">EOS 1D Mark III NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('glow_chroma','','canonos1dmarkiii/noise/mkiii_glow_raw_chroma.jpg',1)">EOS 1D Mark III RAW (No NR)</div>
</td>
</tr>
<tr>
<td bgcolor="#CCCCCC">
<div align="center" onMouseOver="MM_swapImage('glow_chroma','','canonos1dmarkiii/noise/d200_glow_normal_chroma.jpg',1)">Nikon D200 NR Normal</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('glow_chroma','','canonos1dmarkiii/noise/d200_glow_off_chroma.jpg',1)">Nikon D200 NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('glow_chroma','','canonos1dmarkiii/noise/d200_glow_raw_chroma.jpg',1)">Nikon D200 RAW (No NR)</div>
</td>
</tr>
<tr>
<td colspan="3"><img src="canonos1dmarkiii/noise/mkiii_glow_on_chroma.jpg" alt="" name="glow_chroma" width="600" height="300" id="glow_grb3"></td>
</tr>
</table></div>
</p></div>
</div>
<p>If you&#8217;ll toggle between the EOS 1D Mark III and the Nikon D200 at Chroma view, you&#8217;ll see that the EOS 1D Mark III does show more glow than the Nikon D200. The edges on the Nikon D200 are somewhat sharper. However, if you take a closer look, you&#8217;ll see that the Nikon D200 also shows some artifacts along the edges where the EOS 1D Mark III does not. Also, on the right bottom patch at the upper edge you can see a strong orange line along the edge. This line, along with those small artifacts, is going to show up at RGB view (the final image) as color artifacts. That line will show as stronger orange-yellow line on the Nikon D200. Although Canon is showing a bit more glow here, I am quite impressed by Canon&#8217;s artifact free edges. Nikon could probably achieve the same affect by blurring the Chroma data a tiny bit.</p>
<p><H2>False colors at edges</H2></p>
<p>Edge detection yields yet another problem. If an edge was not properly detected while chroma filtering, the filter will not average that undetected part of the edge. The result is small color stains and edges that are filled with color noise.</p>
<div id="chroma_dots1" class="TabbedPanels">
<ul class="TabbedPanelsTabGroup">
<li class="TabbedPanelsTab" tabindex="0">RGB View</li>
<li class="TabbedPanelsTab" tabindex="0">Luma View</li>
<li class="TabbedPanelsTab" tabindex="0">Chroma View</li>
</ul>
<div class="TabbedPanelsContentGroup">
<div class="TabbedPanelsContent">
<table width="0" border="0">
<tr>
<td bgcolor="#CCCCCC">
<div align="center" onMouseOver="MM_swapImage('dots1_RGB','','canonos1dmarkiii/noise/mkiii_crop2_on_RGB.jpg',1)">EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('dots1_RGB','','canonos1dmarkiii/noise/mkiii_crop2_off_RGB.jpg',1)">EOS 1D Mark III NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('dots1_RGB','','canonos1dmarkiii/noise/mkiii_crop2_raw_RGB.jpg',1)">EOS 1D Mark III RAW (No NR)</div>
</td>
</tr>
<tr>
<td bgcolor="#CCCCCC">
<div align="center" onMouseOver="MM_swapImage('dots1_RGB','','canonos1dmarkiii/noise/d200_crop2_normal_RGB.jpg',1)">Nikon D200 NR Normal</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('dots1_RGB','','canonos1dmarkiii/noise/d200_crop2_off_RGB.jpg',1)">Nikon D200 NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('dots1_RGB','','canonos1dmarkiii/noise/d200_crop2_raw_RGB.jpg',1)">Nikon D200 RAW (No NR)</div>
</td>
</tr>
<tr>
<td colspan="3"><img src="canonos1dmarkiii/noise/mkiii_crop2_on_RGB.jpg" name="dots1_RGB" width="600" height="300" id="dots1_RGB"></td>
</tr>
</table></div>
<div class="TabbedPanelsContent">
<table width="0" border="0">
<tr>
<td bgcolor="#CCCCCC">
<div align="center" onMouseOver="MM_swapImage('dots1_luma','','canonos1dmarkiii/noise/mkiii_crop2_on_luma.jpg',1)">EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('dots1_luma','','canonos1dmarkiii/noise/mkiii_crop2_off_luma.jpg',1)">EOS 1D Mark III NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('dots1_luma','','canonos1dmarkiii/noise/mkiii_crop2_raw_luma.jpg',1)">EOS 1D Mark III RAW (No NR)</div>
</td>
</tr>
<tr>
<td bgcolor="#CCCCCC">
<div align="center" onMouseOver="MM_swapImage('dots1_luma','','canonos1dmarkiii/noise/d200_crop2_normal_luma.jpg',1)">Nikon D200 NR Normal</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('dots1_luma','','canonos1dmarkiii/noise/d200_crop2_off_luma.jpg',1)">Nikon D200 NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('dots1_luma','','canonos1dmarkiii/noise/d200_crop2_raw_luma.jpg',1)">Nikon D200 RAW (No NR)</div>
</td>
</tr>
<tr>
<td colspan="3"><img src="canonos1dmarkiii/noise/mkiii_crop2_on_luma.jpg" alt="" name="dots1_luma" width="600" height="300" id="dots1_luma2"></td>
</tr>
</table></div>
<div class="TabbedPanelsContent">
<table width="0" border="0">
<tr>
<td bgcolor="#CCCCCC">
<div align="center" onMouseOver="MM_swapImage('dots1_chroma','','canonos1dmarkiii/noise/mkiii_crop2_on_chroma.jpg',1)">EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('dots1_chroma','','canonos1dmarkiii/noise/mkiii_crop2_off_chroma.jpg',1)">EOS 1D Mark III NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('dots1_chroma','','canonos1dmarkiii/noise/mkiii_crop2_raw_chroma.jpg',1)">EOS 1D Mark III RAW (No NR)</div>
</td>
</tr>
<tr>
<td bgcolor="#CCCCCC">
<div align="center" onMouseOver="MM_swapImage('dots1_chroma','','canonos1dmarkiii/noise/d200_crop2_normal_chroma.jpg',1)">Nikon D200 NR Normal</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('dots1_chroma','','canonos1dmarkiii/noise/d200_crop2_off_chroma.jpg',1)">Nikon D200 NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('dots1_chroma','','canonos1dmarkiii/noise/d200_crop2_raw_chroma.jpg',1)">Nikon D200 RAW (No NR)</div>
</td>
</tr>
<tr>
<td colspan="3"><img src="canonos1dmarkiii/noise/mkiii_crop2_on_chroma.jpg" alt="" name="dots1_chroma" width="600" height="300" id="dots1_chroma2"></td>
</tr>
</table></div>
</p></div>
</div>
<p>By toggling between the EOS 1D Mark III and the Nikon D200, you can see that the EOS 1D Mark III results look better. In both sides of the face, inside the left eye and left eyebrow of the Nikon D200 image you can see color noise leftovers, right on the edge of the details. The EOS 1D Mark III result simply don&#8217;t show those false colors. By switching to Chroma view you can clearly see the problem, most of the strong edges of the Nikon D200 contains artifacts, along the edges (inside the eyes, in both sides of the face, etc). Those artifacts will look as color on the RGB view of the image, the EOS 1D Mark III does a better job here.</p>
<p>However, on the right side of the right eye the EOS 1D Mark III result does look odd in RGB view. There is some color noise and some chroma loss (skin tone color loss). switching to Chroma view, you&#8217;ll notice some holes in the data, clearly something confused the EOS 1D Mark III algorithm. This does not happen with the Nikon D200. </p>
<p>One last interesting note, the EOS 1D Mark III seem to filter luma data better, switch to Luma view, you&#8217;ll see that the image looks clearer. The edges seem to be better preserved, which helps the image look less water colored, as some noise reduction algorithms do.</p>
<div id="dots2" class="TabbedPanels">
<ul class="TabbedPanelsTabGroup">
<li class="TabbedPanelsTab" tabindex="0">RGB View</li>
<li class="TabbedPanelsTab" tabindex="0">Luma View</li>
<li class="TabbedPanelsTab" tabindex="0">Chroma View</li>
</ul>
<div class="TabbedPanelsContentGroup">
<div class="TabbedPanelsContent">
<table width="0" border="0">
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('rgb_dots2','','canonos1dmarkiii/noise/mkiii_crop3_on_RGB.jpg',1)">EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('rgb_dots2','','canonos1dmarkiii/noise/mkiii_crop3_off_RGB.jpg',1)">EOS 1D Mark III NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('rgb_dots2','','canonos1dmarkiii/noise/mkiii_crop3_raw_RGB.jpg',1)">EOS 1D Mark III RAW (No NR)</div>
</td>
</tr>
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('rgb_dots2','','canonos1dmarkiii/noise/d200_crop3_normal_RGb.jpg',1)">Nikon D200 NR Normal</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('rgb_dots2','','canonos1dmarkiii/noise/d200_crop3_off_RGB.jpg',1)">Nikon D200 NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('rgb_dots2','','canonos1dmarkiii/noise/d200_crop3_raw_RGB.jpg',1)">Nikon D200 RAW (No NR)</div>
</td>
</tr>
<tr>
<td colspan="3"><img src="canonos1dmarkiii/noise/mkiii_crop3_on_RGB.jpg" name="rgb_dots2" width="600" height="300" id="rgb_dots2"></td>
</tr>
</table></div>
<div class="TabbedPanelsContent">
<table width="0" border="0">
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('luma_dots2','','canonos1dmarkiii/noise/mkiii_crop3_on_luma.jpg',1)">EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('luma_dots2','','canonos1dmarkiii/noise/mkiii_crop3_off_luma.jpg',1)">EOS 1D Mark III NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('luma_dots2','','canonos1dmarkiii/noise/mkiii_crop3_raw_luma.jpg',1)">EOS 1D Mark III RAW (No NR)</div>
</td>
</tr>
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('luma_dots2','','canonos1dmarkiii/noise/d200_crop3_normal_luma.jpg',1)">Nikon D200 NR Normal</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('luma_dots2','','canonos1dmarkiii/noise/d200_crop3_off_luma.jpg',1)">Nikon D200 NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('luma_dots2','','canonos1dmarkiii/noise/d200_crop3_raw_luma.jpg',1)">Nikon D200 RAW (No NR)</div>
</td>
</tr>
<tr>
<td colspan="3"><img src="canonos1dmarkiii/noise/mkiii_crop3_on_luma.jpg" alt="" name="luma_dots2" width="600" height="300" id="luma_dots"></td>
</tr>
</table></div>
<div class="TabbedPanelsContent">
<table width="0" border="0">
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('chroma_dots2','','canonos1dmarkiii/noise/mkiii_crop3_on_chroma.jpg',1)">EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('chroma_dots2','','canonos1dmarkiii/noise/mkiii_crop3_off_chroma.jpg',1)">EOS 1D Mark III NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('chroma_dots2','','canonos1dmarkiii/noise/mkiii_crop3_raw_chroma.jpg',1)">EOS 1D Mark III RAW (No NR)</div>
</td>
</tr>
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('chroma_dots2','','canonos1dmarkiii/noise/d200_crop3_normal_chroma.jpg',1)">Nikon D200 NR Normal</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('chroma_dots2','','canonos1dmarkiii/noise/d200_crop3_off_chroma.jpg',1)">Nikon D200 NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('chroma_dots2','','canonos1dmarkiii/noise/d200_crop3_raw_chroma.jpg',1)">Nikon D200 RAW (No NR)</div>
</td>
</tr>
<tr>
<td colspan="3"><img src="canonos1dmarkiii/noise/mkiii_crop3_on_chroma.jpg" alt="" name="chroma_dots2" width="600" height="300" id="chroma_dots2"></td>
</tr>
</table></div>
</p></div>
</div>
<p>Here is anther example where, by toggling between EOS 1D Mark III NR ON and Nikon D200 Normal, you can see the Canon can preserve color edges better. The Nikon D200 result has quite a lot of false colors artifacts &#8211; around the yellow ball of string, near the shadows and at the left end of the battle label. Looking at Chroma view, you can see that the Nikon D200 chroma edges are sharper with more artifacts. Once again, those artifacts are showing up as color noise leftovers at RGB view. </p>
<h2>Chroma reduction</h2>
<p>A little trick to further reduce color noise is to suppress chroma (color) as a function of luminance. This means that from a certain low levels of luminance, the algorithm will deliberately lower the chrominance of the area to suppress color noise. Although quite smart, we don&#8217;t like this so much, as sometimes there are color less &#8220;holes&#8221; in the image.</p>
<div id="ls" class="TabbedPanels">
<ul class="TabbedPanelsTabGroup">
<li class="TabbedPanelsTab" tabindex="0">RGB View</li>
<li class="TabbedPanelsTab" tabindex="0">Luma View</li>
<li class="TabbedPanelsTab" tabindex="0">Chroma View</li>
</ul>
<div class="TabbedPanelsContentGroup">
<div class="TabbedPanelsContent">
<table width="0" border="0">
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('ls_rgb','','canonos1dmarkiii/noise/mkiii_ls_RGB.jpg',1)">Canon EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('ls_rgb','','canonos1dmarkiii/noise/d200_ls_RGB.jpg',1)">Nikon D200 NR Normal</div>
</td>
</tr>
<tr>
<td colspan="2"><img src="canonos1dmarkiii/noise/mkiii_ls_RGB.jpg" name="ls_rgb" width="600" height="300" id="ls_rgb"></td>
</tr>
</table></div>
<div class="TabbedPanelsContent">
<table width="0" border="0">
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('ls_luma','','canonos1dmarkiii/noise/mkiii_ls_luma.jpg',1)">Canon EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('ls_luma','','canonos1dmarkiii/noise/d200_ls_luma.jpg',1)">Nikon D200 NR Normal</div>
</td>
</tr>
<tr>
<td colspan="2"><img src="canonos1dmarkiii/noise/mkiii_ls_luma.jpg" alt="" name="ls_luma" width="600" height="300" id="ls_luma"></td>
</tr>
</table></div>
<div class="TabbedPanelsContent">
<table width="0" border="0">
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('ls_chroma','','canonos1dmarkiii/noise/mkiii_ls_chroma.jpg',1)">Canon EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('ls_chroma','','canonos1dmarkiii/noise/d200_ls_chroma.jpg',1)">Nikon D200 NR Normal</div>
</td>
</tr>
<tr>
<td colspan="2"><img src="canonos1dmarkiii/noise/mkiii_ls_chroma.jpg" alt="" name="ls_chroma" width="600" height="300" id="ls_chroma"></td>
</tr>
</table></div>
</p></div>
</div>
<p>It seems that both Nikon and Canon are using this type of method to reduce color noise at the dark parts of the image. However, Canon seem to do this less and better than Nikon. We are quite pleased to see that, as Nikon&#8217;s approach was far too aggressive to our taste.</p>
<h2>Edges and details</h2>
<p>The first thing photographers think about when they hear &#8220;Noise Reduction&#8221; is &#8220;loss of details&#8221;. We tend not to get scared from losing detail, mostly because we know the strong hard edges will be preserved by advanced noise reduction algorithms. Below you can see an example of that, those lines are 2-3 pixel wide. Move you mouse over the images to toggle between the original JPEG image and the RAW image we processed without any Noise Reduction.</p>
<table width="0" border="0">
<tr>
<td>
<div align="center">Canon EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center">Nikon D200 NR Normal</div>
</td>
</tr>
<tr>
<td colspan="2"><img src="canonos1dmarkiii/noise/edge0_jpeg_luma.jpg" name="edge0" width="600" height="300" id="edge0" onMouseOver="MM_swapImage('edge0','','canonos1dmarkiii/noise/edge0_raw_luma.jpg',1)" onMouseOut="MM_swapImgRestore()"></td>
</tr>
</table>
<p>The differences in contrast you can see is due to edge enhancement applied on the JPEG images. The noise reduction algorithm is smoothing the signal along the edge, resulting in a smoother image. This example shows you that noise reduction algorithms can easy preserve hard edges. So if you shoot 1600ISO or 3200ISO, those hard edges will most probably be preserved, enabling you to print good quality image out of both cameras. </p>
<p>However, saving as much fine details as possible will result in an overall better image. This is not very easy when those fine details (the signal) are very close to the variation of noise (noise signal). Then, you need some really good engineering to save those signals from being destroyed.   </p>
<table width="0" border="0">
<tr>
<td>
<div align="center">Canon EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center">Nikon D200 NR Normal</div>
</td>
</tr>
<tr>
<td colspan="2"><img src="canonos1dmarkiii/noise/edge1_jpeg_luma.jpg" name="edge1" width="600" height="300" id="edge0" onMouseOver="MM_swapImage('edge1','','canonos1dmarkiii/noise/edge1_raw_luma.jpg',1)" onMouseOut="MM_swapImgRestore()"></td>
</tr>
</table>
<p>The example above shows that it is very hard to preserve fine edges. By moving your mouse on the images (Luma only) you can see that Canon was able to preserve signals extremely well, as opposed to the Nikon D200, which has killed any details that were present in the RAW data. This is very impressive indeed.</p>
<table width="0" border="0">
<tr>
<td>
<div align="center">Canon EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center">Nikon D200 NR Normal</div>
</td>
</tr>
<tr>
<td colspan="2"><img src="canonos1dmarkiii/noise/edge2_jpeg_luma.jpg" name="edge2" width="600" height="300" id="edge0" onMouseOver="MM_swapImage('edge2','','canonos1dmarkiii/noise/edge2_raw_luma.jpg',1)" onMouseOut="MM_swapImgRestore()"></td>
</tr>
</table>
<p>Here is another example of the exact same thing (Luma only). Canon was able to preserve fine edges very well while Nikon averaged out those details that where quite strong in the RAW data. If we would need to guess, we would say Nikon performs their noise reduction AFTER gamma, which means they do in on 8 bit data. Gamma really messes around with single to noise ratio so this would probably be the reason Nikon was unable to preserve those fine edges.</p>
<p>There is one more aspect to be adressed, and that is how both the Nikon and the Canon are preserving edges in the shadows. It is relatively easy to preserve fine edges in the highlights because the signal to noise ratio there is much better. In the shadows it is a whole different ball game.</p>
<table width="0" border="0">
<tr>
<td>
<div align="center">Canon EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center">Nikon D200 NR Normal</div>
</td>
</tr>
<tr>
<td colspan="2"><img src="canonos1dmarkiii/noise/edge3_jpeg_luma.jpg" name="edge3" width="600" height="300" id="edge0" onMouseOver="MM_swapImage('edge3','','canonos1dmarkiii/noise/edge3_raw_luma.jpg',1)" onMouseOut="MM_swapImgRestore()"></td>
</tr>
</table>
<p>It is interesting to see that the RAW data from the EOS 1D Mark III has a better signal at the shadows, so it is hard to call out a winner here. Both cameras have lost some details, with the Canon seeming to find those strong edges and filter them correctly, while the Nikon&#8217;s signal seem to be too disrupted. This is also true elsewhere around the image, we were unable to find a good example because Canon always seemed to have a better signal at midtones and shadows already on the RAW data. So we have to say Canon&#8217;s CMOS sensor (and size) has the upper hand here by providing a better signal.  </p>
<h2>Grain</h2>
<p>When chroma noise is reduced almost completely what is left is luma noise (monochromatic noise). This luma noise has to be filtered gently in order to have a pleasant looking result. If filtered too hard, the whole image will look too flat and will have the famous &#8220;water color affect&#8221;. If filtered too weakly, the image will look too grainy. So a precise amount of filtering is required to produce a pleasant grain result.</p>
<table width="0" border="0">
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('luma_black4','','canonos1dmarkiii/noise/mkiii_black_on_luma.jpg','luma_gray4','','canonos1dmarkiii/noise/mkiii_gray_on_luma.jpg','luma_white4','','canonos1dmarkiii/noise/mkiii_white_on_luma.jpg',1);mark(this)">EOS 1D Mark III NR ON</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('luma_black4','','canonos1dmarkiii/noise/mkiii_black_off_luma.jpg','luma_gray4','','canonos1dmarkiii/noise/mkiii_gray_off_luma.jpg','luma_white4','','canonos1dmarkiii/noise/mkiii_white_off_luma.jpg',1);mark(this)">EOS 1D Mark III NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('luma_black4','','canonos1dmarkiii/noise/mkiii_black_raw_luma.jpg','luma_gray4','','canonos1dmarkiii/noise/mkiii_gray_raw_luma.jpg','luma_white4','','canonos1dmarkiii/noise/mkiii_white_raw_luma.jpg',1);mark(this)">EOS 1D Mark III RAW (No NR)</div>
</td>
</tr>
<tr>
<td>
<div align="center" onMouseOver="MM_swapImage('luma_black4','','canonos1dmarkiii/noise/d200_black_normal_luma.jpg','luma_gray4','','canonos1dmarkiii/noise/d200_gray_normal_luma.jpg','luma_white4','','canonos1dmarkiii/noise/d200_white_normal_luma.jpg',1);mark(this)">Nikon D200 NR Normal</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('luma_black4','','canonos1dmarkiii/noise/d200_black_off_luma.jpg','luma_gray4','','canonos1dmarkiii/noise/d200_gray_off_luma.jpg','luma_white4','','canonos1dmarkiii/noise/d200_white_off_luma.jpg',1);mark(this)">Nikon D200 NR OFF</div>
</td>
<td>
<div align="center" onMouseOver="MM_swapImage('luma_black4','','canonos1dmarkiii/noise/d200_black_raw_luma.jpg','luma_gray4','','canonos1dmarkiii/noise/d200_gray_raw_luma.jpg','luma_white4','','canonos1dmarkiii/noise/d200_white_raw_luma.jpg',1);mark(this)">Nikon D200 RAW (No NR)</div>
</td>
</tr>
<tr>
<td><img src="canonos1dmarkiii/noise/mkiii_black_on_luma.jpg" name="luma_black" width="200" height="200" id="luma_black4"></td>
<td><img src="canonos1dmarkiii/noise/mkiii_gray_on_luma.jpg" name="luma_gray" width="200" height="200" id="luma_gray4"></td>
<td><img src="canonos1dmarkiii/noise/mkiii_white_on_luma.jpg" name="luma_white" width="200" height="200" id="luma_white4"></td>
</tr>
<tr>
<td>
<div align="center">Black</div>
</td>
<td>
<div align="center">Gray</div>
</td>
<td>
<div align="center">White</div>
</td>
</tr>
</table>
<p>By toggling between EOS 1D Mark III NR ON and Nikon D200 NR Normal, it is clear that Canon is leaving a bit more sharper grain in the mindtones. However, the Nikon seems to leave more grain in the shadows, where the Canon leaves a more smooth result. We think Canon has the Grain a bit more balanced than Nikon.  We never liked the fact that the Nikon D200 has so much Grain in the shadows. These observations reflect in the results we have on our <a href="http://kammagamma.com/articles/noise-analysis-db.php?camera1=18&#038;camera2=5" target="_blank">noise analysis database</a>.</p>
<p><H1>Final words</H1></p>
<p>Canon has really done it this time. The new noise reduction algorithm is working really well. Of course, both Canon and Nikon have their issues that which need to work on. We are not very happy with the vague but large color stains the Canon is leaving behind. Nikon seems to filter chroma more aggressively. Nevertheless, the Canon&#8217;s ability to filter chroma edges really well and to filter weak details signals correctly is very very impressing. We think Canon has also done a better job tuning those algorithms to produce a more pleasing result.</p>
<p>Nikon really has a lot of work ahead. The two issues that are bothering us the most are the false colors at the edges and the fact that there is just too much grain at the shadows. As we said before, small details are not as important in high ISO image as the pleasing look of the image.   </p>
<p>Algorithms aside, it is really amazing to see how good the EOS 1D Mark III CMOS sensor is. The signal levels are way better than everything we have seen in the past. Canon&#8217;s ability to produce those good SNR levels from a CMOS sensor has come a very long way, and it is now way above the competition. </p>
<p>Hopefully you are now able to better understand how complex noise reduction is and how really well it could work if properly engineered. You can only take advantage of those well engineered algorithms if you use the camera&#8217;s jpeg processed file. Naturally, shooting RAW and processing the image with RAW software, such as Adobe Camera Raw and Aperture, will not produce these results. You may use the manufacture&#8217;s RAW software which is Canon Digital Photo Professional for Canon and Nikon Capture NX for Nikon. Those RAW softwares are producing very good results, although they are tuned somewhat different than the cameras. We will write about this sometime in the future.</p>
<p><script type="text/javascript">
<!--
var TabbedPanels1 = new Spry.Widget.TabbedPanels("mk_only");
var TabbedPanels2 = new Spry.Widget.TabbedPanels("dc_zone");
var TabbedPanels3 = new Spry.Widget.TabbedPanels("glow", {defaultTab:2});
var TabbedPanels4 = new Spry.Widget.TabbedPanels("chroma_dots1");
var TabbedPanels5 = new Spry.Widget.TabbedPanels("dots2");
var TabbedPanels6 = new Spry.Widget.TabbedPanels("ls");
//-->
</script></p>
</div>]]></content:encoded>			<wfw:commentRss>http://kammagamma.com/articles/canon-eos-1d-mark-iii-image-quality-redefined.php/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>&#8235;Lab Noise&#8236;</title>		<link>http://kammagamma.com/articles/lab-noise.php</link>
		<comments>http://kammagamma.com/articles/lab-noise.php#comments</comments>
		<pubDate>Fri, 27 Apr 2007 21:16:05 +0000</pubDate>
		<dc:creator>&#8235;Max Penson&#8236;</dc:creator>				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Noise]]></category>
		<category><![CDATA[Noise Reduction]]></category>
		<category><![CDATA[Top Story]]></category>
		<category><![CDATA[Understanding Noise Reduction]]></category>

		<guid isPermaLink="false">http://kammagamma.com/articles/lab-noise.php</guid>
		<description><![CDATA[&#8235;  






At the time of writing this article, our digital photography world is going through a change. A big change. Camera makers are finally starting to apply their noise reduction algorithms with some innovation. This is coming from a need to produce better high ISO images than ever. Sensor makers are trying (and encouraged) to [...] &#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p> <script type="text/JavaScript">
<!--</p>
<p>function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
</script><br />
<script type="text/JavaScript">
<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&#038;&#038;i<a.length&#038;&#038;(x=a[i])&#038;&#038;x.oSrc;i++) x.src=x.oSrc;
}</p>
<p>function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&#038;&#038;parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&#038;&#038;d.all) x=d.all[n]; for (i=0;!x&#038;&#038;i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&#038;&#038;d.layers&#038;&#038;i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x &#038;&#038; d.getElementById) x=d.getElementById(n); return x;
}</p>
<p>function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script><br />
<body onLoad="MM_preloadImages('NoiseReduction/chroma_s_nikon_1600.jpg','NoiseReduction/chroma_s_canon_1600.jpg','NoiseReduction/chroma_s_canon.jpg','NoiseReduction/chroma_s_nikon.jpg','NoiseReduction/lab/original.jpg','NoiseReduction/lab/allrgb.jpg','NoiseReduction/lab/chrgb.jpg','NoiseReduction/lab/lumachroma.jpg','NoiseReduction/chroma_noedge.jpg','NoiseReduction/chroma_edge.jpg')"></p>
<p>At the time of writing this article, our digital photography world is going through a change. A big change. Camera makers are finally starting to apply their noise reduction algorithms with some innovation. This is coming from a need to produce better high ISO images than ever. Sensor makers are trying (and encouraged) to stuff more and more pixels in their image sensor to drive sales, which reduces pixel size and thus making it less sensitive. The less sensitive pixels are, the less chance there is for light to fill pixels equally. Thus, there will be more photon shot noise. </p>
<p><em>Note: this is not the place to explain what photon shot noise is, you can understand this article even without completely understanding. Just keep in mind that smaller pixels produce more random noise, which has to do with the physics of light rather then the image sensor itself.</em></p>
<h2>Luma Chroma</h2>
<p>The problem with every RGB noise reduction algorithms as we covered in the previous article is the same. They all work on RGB data, which, cannot distinguish between color noise and grain noise. Therefore RGB algorithms can only address noise as G noise, R noise and B noise. This approach is even more difficult when the noise is very high, because it is difficult to distinguish between edges and noise.</p>
<p>Imagine what would happen if you could separate the data to luminance and color, having the luminance of the image on one side and the color of the image in the other.<br />
  Yes, you&rsquo;d be able to reduce noise separately on each image, remove the color noise from the color image and remove the grain noise from the luminance image. Afterwards, you&rsquo;d combine the image into one image to have a noise free image.</p>
<p>It is of course not that simple and there are many difficulties. But the principal is to separate the color noise from the grain noise so it would be easier to reduce color noise. Color noise is much more disturbing to us from just monochromatic noise, so you could see how this method is important for camera makes.</p>
<h2>How do they do it?</h2>
<p>Some camera makers convert the data somewhere along the pipeline from RGB data to YIQ, YUV, LAB or any data of this kind. This is usually done to make color adjustments. But this also gives the camera makers an opportunity to reduce noise, as the data is already converted.&nbsp; </p>
<p>All of those color spaces separate Chroma (color) from Luma (luminance), so half of the work has already  been done for camera makers. Now it&rsquo;s a matter of the algorithm to take its part and reduce noise. But, as its turns out it is much more difficult to reduce noise in any one of these color spaces. The chroma image, which contains only the color data, is constructed from differences of levels to describe color data (see image bellow). The edges and details in the chroma data are very weak and thus,  difficult to detect by the algorithm. If the filter cannot detect edges successfully, the color of the image would flow over the edges and into nearby areas. There are solutions to keep the edges safe, for example, one might use the edges from the luma image to detect chroma edges.</p>
<table align="center">
<tr>
<td><img src="NoiseReduction/l.jpg" width="300" height="166"></td>
<td><img src="NoiseReduction/ab.jpg" width="300" height="166"></td>
</tr>
<tr>
<td>
<div align="center"><font size="-1">Luminance data (luma)- strong edges </font></div>
</td>
<td>
<div align="center"><font size="-1">Color data (chroma) &#8211; weak edges </font></div>
</td>
</tr>
</table>
<h2>Chroma reduction in shadows</h2>
<p>Some camera makers are using the luma chroma suppression stage in the pipeline to reduce chroma (color) from shadows areas in an arbitrary way. This approach often does not use a filter; it could be based on color transformation in the shadows to remove chroma completely. For instance, Nikon used this approach with the Nikon D200. Images below from the Nikon D200 and the Canon EOS 350D demonstrate this approach. Move your mouse back and forth between the two 1600 ISO images and note the lack of color in the dark part of the Nikon D200 image (the left part).</p>
<table border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2" bordercolor="eeeeee">
<div align="center"><img src="NoiseReduction/chroma_s_nikon_1600.jpg" name="D200dark" width="533" height="383" id="D200dark"></div>
</td>
</tr>
<tr>
<td onMouseOver="MM_swapImage('D200dark','','NoiseReduction/chroma_s_nikon_1600.jpg',1);mark(this)">Nikon D200 @ 1600ISO</td>
<td onMouseOver="MM_swapImage('D200dark','','NoiseReduction/chroma_s_canon_1600.jpg',1);mark(this)">Canon Rebel xt @ 1600ISO </td>
</tr>
<tr>
<td onMouseOver="MM_swapImage('D200dark','','NoiseReduction/chroma_s_canon.jpg',1);mark(this)">Nikon D200 @ 100ISO </td>
<td onMouseOver="MM_swapImage('D200dark','','NoiseReduction/chroma_s_nikon.jpg',1);mark(this)">Canon Rebel xt @ 100ISO </td>
</tr>
</table>
<h2>Modern noise reducation algorithms</h2>
<p>Noise reduction methods that operate only on luma chroma spirited color models such as YUV, YIQ or LAB are what could be called modern noise reducation algorithms. Those algorithms are not yet implanted in most digital cameras out there, but are expected to heavily penetrate the market in DSLR as well as point and shoot cameras. Adobe Camera Raw is using this kind of method for a while now, other camera makers already produced some cameras with this method principle, although the implementation is not quite the same.</p>
<p>The basic principle is to treat luma noise in the luma layer differently from chroma noise in the chroma layer. By doing so, one can apply aggressive edge preserving chroma noise reduction on the chroma (A and B layers in case of LAB) and gentle edge preserving on luma noise reduction on the luma layer. As you know, the luma layer is where the strong edges are, these that keep the image sharp. The result should be a color noise free image with some monochromatic noise and good strong edges.</p>
<p> The &#8216;Luma + Chroma&#8217; image below illustrates just that. As you can see, there is some fade color noise and very big color stains. This is the aggressive chroma noise reduction filter working on the chroma layer.  Note that we used the same RGB noise reduction images from the <a href="http://kammagamma.com/articles/rgb-noise-reduction.html">RGB noise reduction article</a>, but the images are now displayed into L, A, B instead of R,G and B so you could understand how this would work. Of course, there are much better algorithms then the one we used to do the same task.</p>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="4"><img src="NoiseReduction/lab/lumachroma.jpg" name="l_c" width="600" height="400" id="l_c"></td>
</tr>
<tr>
<td onMouseOver="MM_swapImage('l_c','','NoiseReduction/lab/original.jpg',1);mark(this)">Original</td>
<td onMouseOver="MM_swapImage('l_c','','NoiseReduction/lab/allrgb.jpg',1);mark(this)">All RGB </td>
<td onMouseOver="MM_swapImage('l_c','','NoiseReduction/lab/chrgb.jpg',1);mark(this)">Ch RGB </td>
<td onMouseOver="MM_swapImage('l_c','','NoiseReduction/lab/lumachroma.jpg',1);mark(this)">Luma + Chroma </td>
</tr>
</table>
<p>As always, nothing is prefect, this method does have its problems. Because we are working on the color data, filters of this kind influence the color of the image, many times altering or reducing the saturation of the image. There are other problems that might occur with this type of algorithms. It&rsquo;s quite difficult to treat color edge noise, so some color edge noise could remain even after this type of algorithm had been applied. Similar problems can occur where the neighboring areas are confusing the algorithm, making it think it has discovered an edge. You can see this  happening in the Nikon D200 example below. The Nikon D200 is one of the first cameras utilizing an approach that is based on this method but not quite similar. Other times, as you can also see from the Adobe Camera Raw image below, the algorithm is reducing all the chroma from a particular area where it should&rsquo;t.</p>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="NoiseReduction/n1.jpg" width="300" height="200"></td>
<td><img src="NoiseReduction/n2.jpg" width="300" height="200"></td>
</tr>
</table>
<p><em>Nikon D200 1600ISO examples, the arrows are pointing where you can see some color noise &#8216;escaping&#8217; chroma noise reduction filter. This is most likely to happen in the edges and in areas that confuse the algorithm.</em></p>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2"><img src="NoiseReduction/acr.jpg" width="600" height="200"></td>
</tr>
<tr>
<td>
<div align="left">Luminance Smoothing (luma): 40<br />Color Noise Reduction (chroma): 0</div>
</td>
<td>
<div align="left">Luminance Smoothing (luma): 40<br />
    Color Noise Reduction (chroma): 50</div>
</td>
</tr>
</table>
<p><em>Adobe Camera Raw 3.3 example, on the left an image with Luminance Smoothing (luma) set to 40 and Color Noise Reduction (chroma) set to 0 (this does NOT mean it&#8217;s turned off completely). On the right, the same image with Color Noise Reduction (chroma) set to 50. <br />
The arrows are pointing where the algorithm has failed, reducing the chroma completely below the eyebrows or smearing chroma data into the edge between the lips, turing the edge red (smeared the A channel which is red to green data).</em></p>
<h2>Chroma with no edge / bad edge preserving</h2>
<p>In computer software, where there are plenty of resources and time, some chroma noise reduction algorithms I&rsquo;ve seen are not edge preserving or are not performing very well. In case of too much chroma noise reduction applied by the user, color edges will leak into the edges and even into nearby areas. The image below illustrates on our image how too much of non-edge preserving chroma reduction would look. So far I&rsquo;ve seen this happen with Apple Aperture and Adobe Photoshop&rsquo;s reduce noise filter.</p>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2"><img src="NoiseReduction/chroma_noedge.jpg" name="edge_chroma" width="600" height="200" id="edge_chroma"></td>
</tr>
<tr>
<td onMouseOver="MM_swapImage('edge_chroma','','NoiseReduction/chroma_noedge.jpg',1);mark(this)">No edge/bad edge  chroma filter </td>
<td onMouseOver="MM_swapImage('edge_chroma','','NoiseReduction/chroma_edge.jpg',1);mark(this)">Edge preserving chroma filter </td>
</tr>
</table>
<h2>Making it in the real world</h2>
<p>Camera makers with their need to design a pipeline that fast (5 fps and up) as well as economical (in terms of watt and cost),  can&rsquo;t really afford  to use modern noise reduction algorithms as we&rsquo;ve described. I&rsquo;m afraid I can&rsquo;t disclose how exactly camera makes are producing modern noise reduction results, but I can say that the same principle of the YUV, YIQ or LAB noise reduction is being used in a unique way, very similar to what was shown here.</p>
<p>In the time of writing this article there are several camera makes already producing cameras with their property modern noise reduction algorithms. Camera makers like Nikon (DSLR only), Panasonic with their Venus III pipeline and Fujifilm. We expect more to follow during the years.</p>
<p><em>Note: all algorithm examples are illustrations of camera noise reduction algorithms a camera makes might use. Those algorithm illustrations are not taken from real cameras or based on actual camera algorithms.</em></p>
<p>&nbsp;</p>
</div>]]></content:encoded>			<wfw:commentRss>http://kammagamma.com/articles/lab-noise.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8235;RGB Noise Reduction&#8236;</title>		<link>http://kammagamma.com/articles/rgb-noise-reduction.php</link>
		<comments>http://kammagamma.com/articles/rgb-noise-reduction.php#comments</comments>
		<pubDate>Thu, 17 Aug 2006 14:09:39 +0000</pubDate>
		<dc:creator>&#8235;Max Penson&#8236;</dc:creator>				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Noise]]></category>
		<category><![CDATA[Noise Reduction]]></category>
		<category><![CDATA[Top Story]]></category>
		<category><![CDATA[Understanding Noise Reduction]]></category>

		<guid isPermaLink="false">http://kammagamma.com/content/canon/noise-_-test.html</guid>
		<description><![CDATA[&#8235;  
Large numbers of noise reduction algorithms and patents are available. Camera makers  use the algorithms that they developed for their cameras and RAW software. During the years that I’ve been following the market it seems to me that all those algorithms have one thing in common &#8211; they all work on the RGB [...] &#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p> <body onLoad="MM_preloadImages('NoiseReduction/allrgb.jpg','NoiseReduction/original.jpg','NoiseReduction/chrgb.jpg')"></p>
<p>Large numbers of noise reduction algorithms and patents are available. Camera makers  use the algorithms that they developed for their cameras and RAW software. During the years that I’ve been following the market it seems to me that all those algorithms have one thing in common &#8211; they all work on the RGB color space. This means that they can only operate on some or all RGB channels.</p>
<p>Make no mistake, RGB based algorithms are very complicated. They do edge preserving, edge direction detecting and can make pretty complex decisions based on the block they are working on (noise reduction filters or any other filters work in blocks i.e. 5×5 pixels, 10×10 pixels). However, working only on RGB channels has a large disadvantage, as we will see.</p>
<p align="center"><img src="NoiseReduction/workingimage.jpg" width="450" height="300" /></p>
<p>Above is the image we will be working on. It was captured as a RAW file at 800ISO with the Sony R1, which uses a 10MP CMOS sensor. I chose the R1 because it has quite a noisy signal. The RAW file was processed with DCraw as it applies none minimal noise reduction on the image. We are going to use only the Kodak Q60 chart on the right (marked). I have often found it to be e a great chart for noise reduction.</p>
<p><em>Note: all examples are illustrations of camera noise reduction algorithms that a camera maker might use. These algorithm illustrations are not from real cameras or based on actual camera algorithms.</em></p>
<h1>All RGB</h1>
<p>The first algorithm I call an  ‘ALL RGB’ algorithm. As the name indicates it  applies the same amount of noise reduction upon all R, G and B channels. As you can see  below, the ‘Original’ image has no noise reduction applied while the ‘ALL RGB’ image was processed with an all RGB based algorithm. This algorithm is an edge preserving filter that  works with the same amount of intensity and threshold upon all three RGB channels. The result, as you can see is that color noise, which was originally small and ‘sharp’ has now become bigger, smoother and ‘smudgy’.  To some extent the image looks a bit better now, but color noise is still very apparent.</p>
<table border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2"><img src="NoiseReduction/allrgb.jpg" name="im_org" width="600" height="400" border="0" id="im_org" /></td>
</tr>
<tr>
<td onMouseOver="mark(this);MM_swapImage('im_org','','NoiseReduction/original.jpg',1)">Original</div>
</td>
<td onMouseOver="mark(this);MM_swapImage('im_org','','NoiseReduction/allrgb.jpg',1)">All RGB </div>
</td>
</tr>
</table>
<p>
<em><font size="-2">200% Nearest Neighbor</font></em></p>
<h2>Channel RGB</h2>
<p>A better way to reduce noise in the RGB space is by reducing noise aggressively on the channel that has most of the noise. Camera makers  have tended  to use this algorithm in the past years rather than the ALL RGB algorithm.</p>
<p>By looking at R, G, and B channels separately one can precisely observe which channel causes most of the noise and apply a high intensity level of noise reduction on that channel. This can induce some noise reduction on other channels too.<br />
For example, our image, like in most cameras, has most of the noise in the R channel. So we would apply more intensity on the R channel, less on the B channels and the least on the G channel.</p>
<p>Usually the G channel is the least noisy;  for too many reasons to explain here. Most of the time it’s the R and the B channels that should get the aggressive noise reduction. This is because  the G channel contains the strongest edge signal. Therefore by applying stronger noise reduction on the R and B channels, edges can be preserved by keeping the G channel under control. </p>
<p>The main advantage is that a much more aggressive noise reduction can be applied while still preserving the edges.</p>
<table border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="3"><img src="NoiseReduction/chrgb.jpg" name="im_chrgb" width="600" height="400" id="im_chrgb" /></td>
</tr>
<tr>
<td onMouseOver="mark(this);MM_swapImage('im_chrgb','','NoiseReduction/original.jpg',1)">Original</td>
<td onMouseOver="mark(this);MM_swapImage('im_chrgb','','NoiseReduction/allrgb.jpg',1)">All RGB </td>
<td onMouseOver="mark(this);MM_swapImage('im_chrgb','','NoiseReduction/chrgb.jpg',1)">Ch RGB </td>
</tr>
</table>
<p>
<em><font size="-2">200% Nearest Neighbor</font></em></p>
<p>As you can see from the image above, ‘Ch RGB’ has less color noise than the ALL RGB image but the edges are still preserved. This is a much more aggressive approach but with better results. Note that the color noise is still very apparent but it is more smoothed and pleasant.</p>
<p>But these methods belong to the past. Today  camera makes such as Nikon, Fuji and Panasonic have shown us there is another, better  way. It’s all about innovation as you can see in our {link} modern noise reduction article {link}.
</p>
<p><em>Note: all examples are illustrations of camera noise reduction algorithms that a camera maker might use. These algorithm illustrations are not taken from real cameras or based on actual camera algorithms</em></p>
</div>]]></content:encoded>			<wfw:commentRss>http://kammagamma.com/articles/rgb-noise-reduction.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
