<?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/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>video - OCFreaks!</title>
	<atom:link href="https://www.ocfreaks.com/tag/video/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.ocfreaks.com/tag/video/</link>
	<description>Overclocking , Gaming , Technology , Robotics &#38; DIY!</description>
	<lastBuildDate>Sun, 09 Jul 2017 14:52:43 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.4</generator>
<site xmlns="com-wordpress:feed-additions:1">42777727</site>	<item>
		<title>How to Compress Video Files without much Quality Loss using Handbrake</title>
		<link>https://www.ocfreaks.com/compress-video-files-without-much-quality-loss-using-handbrake/</link>
					<comments>https://www.ocfreaks.com/compress-video-files-without-much-quality-loss-using-handbrake/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Saby D'silva]]></dc:creator>
		<pubDate>Sun, 09 Jul 2017 14:19:39 +0000</pubDate>
				<category><![CDATA[Guides & Tutorials]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[video]]></category>
		<guid isPermaLink="false">http://www.ocfreaks.com/?p=2794</guid>

					<description><![CDATA[<p>In this step by step tutorial you will get acquainted with Handbrake, and how to use it to compress large videos without much quality loss. </p>
<p>The post <a href="https://www.ocfreaks.com/compress-video-files-without-much-quality-loss-using-handbrake/">How to Compress Video Files without much Quality Loss using Handbrake</a> appeared first on <a href="https://www.ocfreaks.com">OCFreaks!</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="aligncenter spaced" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_step_by_step/title.png" height="271px" width="400px" alt="Handbrake Smiley"></a></p>
<p class="compact">Hi folks. In this step-by-step tutorial, I will show you how to compress videos using the free open-source tool Handbrake. This can prove especially useful to those who want to store lots of videos in devices with a limited storage capacity. Storing uncompressed large video files on such a device isn&#8217;t logical and is IMHO, downright stupid. This tutorial will get you acquainted with Handbrake and how you can use it to reduce the file size of large videos in a few minutes. You can download Handbrake from <a href="https://handbrake.fr/" target="_blank">here</a>. The detailed explanation of all the settings used in this tutorial can be found in my other articles on Handbrake(Links given at the bottom). </p>
<p class="compact">Without further ado, lets get started:</p>
<h4>Step 1: Open Handbrake</h4>
<p><img decoding="async" class="aligncenter" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_step_by_step/hbmain.png" height="408px" width="596px" alt="Handbrake Window"></p>
<h4> Step 2: Importing Source File(s) </h4>
<p> Import your video files to transcode by either dragging and dropping the file or clicking on &#8220;File&#8221; and navigating to the desired path. To batch encode all videos in a particular folder, click on &#8220;Folder&#8221; and navigate to the desired path. Select &#8220;MP4&#8221; container.</p>
<div class="ocf-img-carousel hide-pre-init" data-imgcar-mode ="2" data-alt-txt="Handbrake Import Files" >
<div class="aligncenter single-item">
<div class="img-slides"><img decoding="async" class="aligncenter" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_step_by_step/hbdd.gif" alt="Handbrake Drag and Drop File" /><span class="desc slide">Handbrake Drag and Drop File</span></div>
<div class="img-slides"><img decoding="async" class="aligncenter" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_step_by_step/hbfio.gif" alt="Handbrake File Open" /><span class="desc slide">Handbrake File Open</span></div>
<div class="img-slides"><img decoding="async" class="aligncenter" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_step_by_step/hbfoo.gif" alt="Handbrake Folder Open" /><span class="desc slide">Handbrake Folder Open</span></div>
</div>
<ul class="thumbnails">
<li class="img-thumbs"><img decoding="async" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_step_by_step/hbdd.gif" /></li>
<li class="img-thumbs"><img decoding="async" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_step_by_step/hbfio.gif" /></li>
<li class="img-thumbs"><img decoding="async" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_step_by_step/hbfoo.gif" /></li>
</ul>
</div>
<div style="display: none">
<div class="compact image">
<a href="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_step_by_step/hbdd.gif" target="_blank"><img decoding="async" class="aligncenter" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_step_by_step/hbdd.gif" height="408px" width="596px" alt="Handbrake Drag and Drop File"></a>
</div>
<div class="compact image">
<a href="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_step_by_step/hbfio.gif" target="_blank"><img decoding="async" class="aligncenter" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_step_by_step/hbfio.gif" height="408px" width="596px" alt="Handbrake File Open"></a>
</div>
<div class="compact image">
<a href="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_step_by_step/hbfoo.gif" target="_blank"><img decoding="async" class="aligncenter" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_step_by_step/hbfoo.gif" height="408px" width="596px" alt="Handbrake Folder Open"></a>
</div>
</div>
<h4>Step 3: Picture Settings </h4>
<p><img decoding="async" class="aligncenter" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_step_by_step/1pic.png" height="378px" width="720px" alt="Handbrake Pictures Tab"><b>In the Picture tab: </b></p>
<ol class="dec">
<li>Select Anamorphic &#8220;Loose&#8221; and Modulus &#8220;2&#8221;.</li>
<li>Choose your desired Video Width. For mobile devices, I recommend a max resolution of 720p, which translates to a width of 1280 pixels for my input file (big_buck_bunny_1080p_h264.mp4).</li>
<li>Check Cropping &#8220;Custom&#8221; and make all values 0, if you don&#8217;t wish to crop your video. Or check &#8220;Automatic&#8221;, whichever works for you.</li>
</ol>
<h4>Step 4: Filter Settings </h4>
<p><img decoding="async" class="aligncenter" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_step_by_step/2fil.png" height="378px" width="720px" alt="Handbrake Filters Tab"><b>In the Filters Tab:</b></p>
<ol class="dec">
<li>Select &#8220;NLMeans&#8221; Denoise with preset &#8220;Ultralight&#8221; and Tune &#8220;None&#8221;.</li>
</ol>
<h4>Step 5: Video Settings </h4>
<p><img decoding="async" class="aligncenter" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_step_by_step/3vid.png" height="378px" width="720px" alt="Handbrake Video Tab"><b>In the Video Tab:</b></p>
<ol class="dec">
<li>Select Codec &#8220;x264&#8221;, Framerate &#8220;Same as Source&#8221; and check &#8220;Variable Framerate&#8221;.</li>
<li>Check &#8220;Constant Quality&#8221; and keep the RF Slider between 21-25, no more, no less. I recommend using 24 for mobile devices.</li>
<li>Keep Encoder Preset Slider to &#8220;Veryfast&#8221;, and select Encoder Tune &#8220;Film&#8221;, Encoder Profile &#8220;Main&#8221; and Encoder Level &#8220;4.0&#8221;.</li>
</ol>
<h4>Step 6: Audio Settings </h4>
<p><img decoding="async" class="aligncenter" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_step_by_step/4aud.png" height="378px" width="720px" alt="Handbrake Audio Tab"><b>In the Audio Tab:</b></p>
<ol class="dec">
<li>Select Codec &#8220;AAC (avcodec)&#8221;, select &#8220;Bitrate&#8221; and keep it to 160 or lower for mobile devices.</li>
</ol>
<h4>Step 6: Adding Subtitles </h4>
<p><img decoding="async" class="aligncenter" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_step_by_step/5sub.png" height="378px" width="720px" alt="Handbrake Subtitles Tab"><b>In the Subtitles Tab:</b></p>
<ol class="dec">
<li>Add or remove Subtitles as per your wish.</li>
</ol>
<h4>Step 7: Finally, click on &#8220;Start Encode&#8221;</h4>
<p><b>Step 7.1 (Optional): Get some coffee while your CPU does all the heavy lifting and compresses your video files &#038; converts it to MP4 format!</b></p>
<p>For a more comprehensive, detailed and in-depth explanation of all the Handbrake settings, visit the following links:</p>
<ul>
<li><a href="https://www.ocfreaks.com/handbrake-complete-tutorial-part-1-transcode-compress-videos/" target="_blank">Handbrake Complete Tutorial Part 1: How to Transcode &#038; Compress Videos</a></li>
<li><a href="https://www.ocfreaks.com/beginners-guide-tutorial-video-redundancies/" target="_blank">Beginners Guide to Video Redundancies</a></li>
<li><a href="https://www.ocfreaks.com/handbrake-tutorial-part-2-x264-advanced-encoding-compression-settings-guide/" target="_blank">Handbrake Tutorial Part 2: x264 Advanced Encoding &#038; Compression Settings Guide</a></li>
</ul>
<p>The post <a href="https://www.ocfreaks.com/compress-video-files-without-much-quality-loss-using-handbrake/">How to Compress Video Files without much Quality Loss using Handbrake</a> appeared first on <a href="https://www.ocfreaks.com">OCFreaks!</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ocfreaks.com/compress-video-files-without-much-quality-loss-using-handbrake/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2794</post-id>	</item>
		<item>
		<title>Handbrake Tutorial Part 2: x264 Advanced Encoding &#038; Compression Settings Guide</title>
		<link>https://www.ocfreaks.com/handbrake-tutorial-part-2-x264-advanced-encoding-compression-settings-guide/</link>
					<comments>https://www.ocfreaks.com/handbrake-tutorial-part-2-x264-advanced-encoding-compression-settings-guide/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Saby D'silva]]></dc:creator>
		<pubDate>Thu, 02 Feb 2017 08:09:27 +0000</pubDate>
				<category><![CDATA[Guides & Tutorials]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[video]]></category>
		<guid isPermaLink="false">http://www.ocfreaks.com/?p=2586</guid>

					<description><![CDATA[<p>An in-depth Guide/Tutorial explaining all the x264 intricacies and advanced settings offered in handbrake advanced tab. The settings in this tab are for those who like to tweak and fine tune the encoder's settings for the video.</p>
<p>The post <a href="https://www.ocfreaks.com/handbrake-tutorial-part-2-x264-advanced-encoding-compression-settings-guide/">Handbrake Tutorial Part 2: x264 Advanced Encoding &#038; Compression Settings Guide</a> appeared first on <a href="https://www.ocfreaks.com">OCFreaks!</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="spaced tocpostimage">
<img decoding="async" class="aligncenter compact" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_part2_x264/hbx264.jpg" alt="x264 in Handbrake" height="256px" width="256px">
</div>
<p class="compact" style="clear: left; float:left">Some of you might find it odd that I made a separate post to talk about the settings in the Advanced tab of Handbrake. But rest assured, there’s a damn good reason why I chose to do so. The first tutorial was targeted at beginners. In essence, I’d say that the first tutorial was 80% handbrake and 20% some general info about videos and encoding. This tutorial would be about 20% Handbrake and 80% x264 video encoding and compression, as you need to know a fair bit about how x264 encodes video to completely understand the options in this tab.</p>
<div class="toc_container"><span class="toc_title">Table of Contents</span></p>
<div class="toc">
<ol class="toc_list">
<li class="toc_text"><a href="#x264_Video_Encoding" title="x264 Video Encoding"><span>1. </span><span>x264 Video Encoding</span></a></li>
<ol class="toc_list">
<li class="toc_text"><a href="#Eliminating_Redundancies" title="Eliminating Redundancies"><span>1.1. </span><span>Eliminating Redundancies</span></a></li>
<li class="toc_text"><a href="#Rate_Factor_vs_Quantization_Parameter" title="Rate Factor vs Quantization Parameter"><span>1.2. </span><span>Rate Factor vs Quantization Parameter</span></a></li>
</ol>
<li class="toc_text"><a href="#Advanced_Tab" title="Advanced Tab"><span>2. </span><span>Advanced Tab</span></a></li>
<ol class="toc_list">
<li class="toc_text"><a href="#Encoding" title="Encoding"><span>2.1. </span><span>Encoding</span></a></li>
<ol class="toc_list">
<li class="toc_text"><a href="#Reference_Frames" title="Reference Frames"><span>2.1.1. </span><span>Reference Frames</span></a></li>
<li class="toc_text"><a href="#Maximum_B_Frames" title="Maximum B Frames"><span>2.1.2. </span><span>Maximum B Frames</span></a></li>
<li class="toc_text"><a href="#Pyramidal_B_Frames" title="Pyramidal B Frames"><span>2.1.3. </span><span>Pyramidal B Frames</span></a></li>
<li class="toc_text"><a href="#Weighted_P_Frames" title="Weighted P Frames"><span>2.1.4. </span><span>Weighted P Frames</span></a></li>
<li class="toc_text"><a href="#8x8_Transform" title="8x8 Transform"><span>2.1.5. </span><span>8&#215;8 Transform</span></a></li>
<li class="toc_text"><a href="#CABAC" title="CABAC"><span>2.1.6. </span><span>CABAC</span></a></li>
</ol>
<li class="toc_text"><a href="#Analysis" title="Analysis"><span>2.2. </span><span>Analysis</span></a></li>
<ol class="toc_list">
<li class="toc_text"><a href="#Adaptive_B_Frames" title="Adaptive B Frames"><span>2.2.1. </span><span>Adaptive B Frames</span></a></li>
<li class="toc_text"><a href="#Adaptive_Direct_Mode" title="Adaptive Direct Mode"><span>2.2.2. </span><span>Adaptive Direct Mode</span></a></li>
<li class="toc_text"><a href="#Subpixel_Motion_Est(subme)" title="Subpixel Motion Est(subme)"><span>2.2.3. </span><span>Subpixel Motion Est(subme)</span></a></li>
<li class="toc_text"><a href="#Motion_Est_Method" title="Motion Est Method"><span>2.2.4. </span><span>Motion Est Method</span></a></li>
<li class="toc_text"><a href="#Motion_Est_Range(merange)" title="Motion Est Range(merange)"><span>2.2.5. </span><span>Motion Est Range(merange)</span></a></li>
<li class="toc_text"><a href="#Partition_Type" title="Partition Type"><span>2.2.6. </span><span>Partition Type</span></a></li>
<li class="toc_text"><a href="#Trellis" title="Trellis"><span>2.2.7. </span><span>Trellis</span></a></li>
</ol>
<li class="toc_text"><a href="#Psychovisual" title="Psychovisual"><span>2.3. </span><span>Psychovisual</span></a></li>
<ol class="toc_list">
<li class="toc_text"><a href="#No_DCT_Decimate" title="No DCT Decimate"><span>2.3.1. </span><span>No DCT Decimate</span></a></li>
<li class="toc_text"><a href="#Adaptive_Quant_Strength" title="Adaptive Quant Strength"><span>2.3.2. </span><span>Adaptive Quant Strength</span></a></li>
<li class="toc_text"><a href="#Psychovisual_Rate_Distortion" title="Psychovisual Rate Distortion"><span>2.3.3. </span><span>Psychovisual Rate Distortion</span></a></li>
<li class="toc_text"><a href="#Psychovisual_Trellis" title="Psychovisual Trellis"><span>2.3.4. </span><span>Psychovisual Trellis</span></a></li>
<li class="toc_text"><a href="#Deblocking" title="Deblocking"><span>2.3.5. </span><span>Deblocking</span></a></li>
</ol>
</ol>
<li class="toc_text"><a href="#Closing_Notes" title="Closing Notes"><span>3. </span><span>Closing Notes</span></a></li>
</ol>
</div>
</div>
<p class="compact">Before going any further, let me make this clear; most users won’t need to mess around with these settings. The settings in this tab are just for those few users who like to tweak and fine tune the encoder&#8217;s settings for the video. You can get a decent output without using this tab.</p>
<div class="special sp_blue notestar spaced">
<strong>Note:</strong> I highly recommend you to go through my article on<a href="https://www.ocfreaks.com/beginners-guide-tutorial-video-redundancies/" target="_blank"> Video Redundancies </a>. I&#8217;ve written it as a precursor to this tutorial.
</div>
<h2 class="shead" style="padding-top: 30px; margin-bottom: 20px;"><span id="x264_Video_Encoding">x264 Video Encoding</span></h2>
<p class="compact">x264 is, as of now, the most popular and widely regarded as the best video encoder out there. No other encoder comes close to it in terms of quality at a given bitrate, and it is compatible with most devices too. Let us see now what it is that makes this codec so good.</p>
<h3 class="msize" style="padding-top: 5px; text-decoration: underline"><span id="Eliminating_Redundancies">Eliminating Redundancies</span></h3>
<p class="compact">To those who dont know the various redundancies that exist in a video and why eliminating them is important, check out: <a href="https://www.ocfreaks.com/beginners-guide-tutorial-video-redundancies/" target="_blank"> Video Redundancies </a>.</p>
<p class="compact">To eliminate spatial and temporal redundancies, each <a href="https://www.ocfreaks.com/handbrake-complete-tutorial-part-1-transcode-compress-videos/#Modulus" target="_blank"><strong>macroblock</strong></a> in a frame is scanned first to identify the redundant information. These redundant information are then predicted by using various algorithms and are replaced by the <strong>&#8220;predicted</strong>&#8221; blocks, which ultimately results in a much smaller file size. Two kinds of prediction are used by x264 to predict the macroblocks in a frame:</p>
<div class="highlight spaced">
<ol class="emplist">
<li class="spaced"><b>Intra Frame Prediction:</b> Macroblocks are predicted by using previously encoded data in the <strong>current frame</strong>. This is used for eliminating <strong>spatial redundancies</strong>. A prediction for the current block is formed from the previously encoded neighbouring blocks.
</li>
<li>
<p class="nl"><b>Inter Frame Prediction:</b> Macroblocks are predicted by using previously encoded data in the <strong>neighbouring frames</strong>. This is used for eliminating <strong>temporal redundancies</strong>. It is also known as <strong>Motion Estimation</strong>. This prediction is done by scanning the corresponding block that is already encoded in the neighbouring frames. The similar blocks are considered to be the <strong>static</strong> part of the scene(the &#8220;background&#8221;), while the differing blocks are collectively considered to be the <strong>active</strong>(&#8220;moving&#8221;) part in the scene. The output is then, a video that is comprised of <strong>reference frames</strong>, which contains the static and active parts, and <strong>predicted frames</strong> which consists of the moving parts overlaid on the background to recreate the scene, frame by frame.</p>
<p class="compact">So basically, what happens here is that the static parts in the scene are copied as it is from the reference frame to the predicted frame. And for the active parts, a <strong>motion vector</strong> is calculated to change their position from that of the reference frame to that of the predicted frame. This process is called <strong>Motion Compensation</strong>. So, the predicted frame, in this sense, directly or indirectly depends on the reference frame, and would take up much less space than what it would if the entire frame was stored.</p>
</li>
</ol>
</div>
<p class="compact">H.264 standard defines 3 types of frames that can be used by the codec. These are:</p>
<div class="highlight spaced">
<ol class="emplist">
<li class="spaced"><b>I Frame:</b> I frame (Intra Frame) is nothing but the frame copied as it is from the source. It is completely independent of other frames in the video stream, and can be decoded without reference from the other frames. The frame is encoded by using only <strong>Intra Frame Prediction</strong>. The more the number of I frames in the video, the better the quality, but the lower the compression. I frames are used in H.264 in the start of the video file or in a rapid scene change.</li>
<li class="spaced"><b>P Frame:</b> P Frames(Predicted Frames) are frames that are dependent on previous I or P frames. These frames only hold the information about the moving part in the scene, by using <strong>Inter Frame Prediction</strong>. On an average, it can be said to contain about 50% the information contained on an I frame.</li>
<li><b>B Frame:</b> B Frames(Bidirectional Predicted Frames) are frames that are dependent on both previous as well as future I and P frames. These frames, similar to P frames, only hold the information about the moving part in the scene. On an average, it can be said to contain about 50% the information contained on a P frame.</li>
</ol>
</div>
<p class="compact">The way the encoder arranges these frames together is called <strong>GOP(Group Of Pictures)</strong>, starting with the I frame at the beginning. This, in turn is made up of <strong>mini GOPs</strong> beginning with a P/B frame.  Now, consider an I frame to be of size x, a P frame 0.5x, and B frame 0.25x. For the following GOPs:</p>
<p class="compact">IIII: Size=4x<br />
IPPP: Size=2.5x<br />
IBBP: Size=2x</p>
<p class="compact">The advantages of using predicted frames are quite evident from the above example.</p>
<div class="special sp_blue notestar spaced">
<b>Note:</b> As B frames need both previous and future frames as reference, the order of encoding for the third GOP in the above example would actually be: IPBB. After the I and P frames are encoded, the B frames would be encoded and put in between them. It should also be noted that many devices have a limitation on the maximum number of B frames that can be used(since decoding of B frames require a lot of computational power). Regardless of all these, the beginning of a GOP will always be signalled by an I frame.
</div>
<p class="compact">Once the predicted frames are formed (by either Intra or Inter prediction), each block in it is subtracted from the ones in the actual frame to form the <strong>residual block</strong>. These residual blocks are then transformed using either order 4 or order 8 <strong>integer transform</strong> to output a stream of coefficients for each block. The <strong>transformed coefficients</strong> are then <strong>quantized</strong>, ie, scaled by a value obtained from the <strong>Quantization Parameter</strong>(QP). The basic idea is to reduce the value of the coefficient as much as possible. The QP defines by what extent each block is to be compressed. Higher QP values mean more compression but lower quality, and lower values mean less compression but higher quality. The quantized blocks are then <strong>entropy coded</strong> to finally obtain the output video file. This is a form of lossless compression method that is done at the end, to eliminate the coding redundancies.</p>
<h3 class="msize" style="padding-top: 5px; text-decoration: underline"><span id="Rate_Factor_vs_Quantization_Parameter">Rate Factor vs Quantization Parameter</span></h3>
<p class="compact">One difference that you can observe when encoding videos (in Handbrake) using x264 in Constant Quality mode is that; while all other codecs will offer you a<strong> QP (Quantization Parameter)</strong> Slider, x264(and x265) will offer you an <strong>RF (Rate Factor)</strong> Slider. There is quite an inherent difference between the two.</p>
<p class="compact">Constant Quality encoding can be achieved by two ways:</p>
<div class="highlight spaced">
<ol class="emplist">
<li class="spaced">
<p class="nl"><b>Constant Quantization Parameter (CQP):</b> In this method, constant quality is achieved by compressing every frame of the same type by the same amount, ie, a constant QP is maintained for the entire video. So, if the QP slider is kept at 24, it will remain 24 for the entire video.</p>
<p class="compact">The QP slider scale is linear, and the output filesize would change linearly with the QP value.</p>
</li>
<li class="spaced">
<p class="nl"><b>Constant Rate Factor (CRF):</b> In this method, the QP is not kept constant throughout the video, but will be variable. Thus, different frames are compressed by different amounts, depending on the amount of detail and motion on the frame. CRF takes advantage of the simple fact that the eye perceives more detail in stationary objects than in moving objects. So, it applies more compression for fast motion scenes, and less compression for still scenes. Due to this, the output video will appear to be much more detailed. So, if the RF slider is kept at 24, then the QP might range from around 26-18.</p>
<p class="compact">The RF slider scale is <strong>logarithmic</strong>, and the output filesize would change <strong>exponentially</strong> with deviation of the RF value.</p>
</li>
</ol>
</div>
<p class="compact">So, which of these is better? Obviously CRF, as it can distribute bits in a much more efficient way than CQP.</p>
<h2 class="shead" style="padding-top: 30px; margin-bottom: 20px;"><span id="Advanced_Tab">Advanced Tab</span></h2>
<p class="compact">The settings within this tab are unlocked by checking the <strong><em>&#8220;Use Advanced Tab instead&#8221;</em></strong> option in the Video tab. These settings allow you to fine tune your video by adjusting the various conversion parameters of the x264 codec. This tab is further subdivided into three sections: <strong><em>Encoding</em></strong>, <strong><em>Analysis</em></strong>, and <strong><em>Psychovisual</em></strong>.</p>
<div class="spaced image">
<img decoding="async" class="aligncenter compact" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_part2_x264/handbrake_advanced_tab.jpg" alt="Handbrake Advanced Tab" /><br />
<i>Handbrake Advanced Tab</i>
</div>
<h3 class="msize" style="padding-top: 5px; text-decoration: underline"><span id="Encoding">Encoding</span></h3>
<p class="compact">The <strong><em>Encoding</em></strong> section deals with <strong>video compression</strong>. It offers various ways by which your video bitrate could be further reduced.</p>
<h4 class="psize il"><span id="Reference_Frames">Reference Frames: </span></h4>
<p class="il np">This setting specifies the maximum number of frames each P frame can use as a reference. The higher this value, the better the compression. But it must be noted that many devices have limitations on the maximum number of reference frames that can be used. So, unless your sure what this value is, keep it at default(3).</p>
<div class="vspacer_25px"></div>
<h4 class="psize il"><span id="Maximum_B_Frames">Maximum B frames: </span></h4>
<p class="il np">This setting allows you to set the maximum number of successive B frames that can be encoded, after which an I or P frame has to follow for reference.</p>
<div class="vspacer_25px"></div>
<h4 class="psize il"><span id="Pyramidal_B_Frames">Pyramidal B frames: </span></h4>
<p class="il nl">Enabling this setting allows the B frames to be used as reference for other B frames wherever possible, thereby increasing compression. Options of None, Normal and Strict are provided. </p>
<ul class="np">
<li><em>None</em>: B frames are not used as reference.</li>
<li><em>Strict</em>: One B frame per mini GOP can be used as reference</li>
<li><em>Normal</em>: Numerous B frames per mini GOP can be used as reference.</li>
</ul>
<h4 class="psize il"><span id="Weighted_P_Frames">Weighted P Frames: </span></h4>
<p class="il np">Enabling this option allows the encoder to detect fades in reference frames, and assign it a particular weight. If this is OFF, the encoder will be unable to see the similarity between frames in cases where a frame is simply lighter or darker from the previous frame, as the entire frame is changing. Turning this ON can improve compression in such cases.</p>
<div class="vspacer_25px"></div>
<h4 class="psize il"><span id="8x8_Transform">8&#215;8 Transform: </span></h4>
<p class="il np">Enabling this option allows the use of 8&#215;8 blocks, rather than the normal 16&#215;16 blocks, for prediction. This can improve compression by quite a lot(at least 5%).</p>
<div class="vspacer_25px"></div>
<h4 class="psize il"><span id="CABAC">CABAC: </span></h4>
<p class="il nl">After quantization, the data stream has to be encoded. x264 offers two methods to achieve this: <strong>CABAC(Context Adaptive Binary Arithmetic Coding)</strong> and <strong>CAVLC(Context Adaptive Variable Length Coding)</strong>. CABAC offers better compression, but requires more processing power to encode and decode than CAVLC. CAVLC, on the other hand, offers inferior compression, but requires less processing power to encode and decode than CABAC.</p>
<p class="np">To turn ON CABAC encoding, tick the &#8220;CABAC&#8221; checkbox. Unchecking it will use CAVLC encoding, by default.</p>
<div class="vspacer_25px"></div>
<h3 class="msize" style="padding-top: 5px; text-decoration: underline"><span id="Analysis">Analysis</span></h3>
<p class="compact">This section contains settings using which you can control how x264 analyzes the source video.</p>
<h4 class="psize il"><span id="Adaptive_B_Frames">Adaptive B frames: </span></h4>
<p class="il nl">Using the options in this setting, you can control how x264 makes the decision to use a B frame.</p>
<ul class="np">
<li><em>OFF</em>: B frames will be placed in a fixed pattern.</li>
<li><em>Fast</em>: x264 can decide how many B frames to use depending on the complexity of the scene, but the decisions made are suboptimal.</li>
<li><em>Optimal</em>: x264 makes an optimal decision on when B frames are to be used. When using a higher number of Maximum B frames with Pyramidal B Frames, it is recommended to use this setting.</li>
</ul>
<h4 class="psize il"><span id="Adaptive_Direct_Mode">Adaptive Direct Mode: </span></h4>
<p class="il nl">This setting specifies how motion vectors are calculated for each block. Calculating motion vectors for every block is a CPU intensive and time consuming process. x264 has a few tricks up it&#8217;s sleeve for this.</p>
<ul class="np">
<li><em>None</em>: Adaptive Direct Mode is disabled. Motion Vectors have to be calculated for each block.</li>
<li><em>Spatial</em>: Motion vectors from the neighbouring blocks are used for the current block. This can significantly reduce the encoding time.</li>
<li><em>Temporal</em>: The current block is compared with the matched block in a P frame within the GOP. Using this, the motion vector is estimated rather than calculating it for each block.</li>
<li><em>Automatic</em>: x264 automatically chooses whether to use Spatial or Temporal for each block.</li>
</ul>
<h4 class="psize il"><span id="Subpixel_Motion_Est(subme)">Subpixel Motion Est(subme): </span></h4>
<p class="il nl">One of the things that make x264 far superior to other codecs is it&#8217;s amazing Motion Compensation capabilities. x264 even supports estimating the motion of a block by a non integer number of pixels, which is called Subpixel Motion Estimation. The advantages that this offers are quite obvious.</p>
<ul class="np">
<li><em>SAD(Sum of Absolute Differences)</em>: In this, the absolute differences between the pixels in the current block and the corresponding pixels in the block to be compared are taken, and are then added to obtain an SAD value. The block which gives the lowest SAD value will be the considered to be the block using which the motion vector will be calculated. This method can be used either with no Subpixel Motion Estimation(<strong><em>subme 0</em></strong>), or with one iteration of Quarter Pixel precision(<strong><em>subme 1</em></strong>).</li>
<li><em>SATD (Sum of Absolute Transformed Differences)</em>:Similar to SAD, with the only difference being that the differences of each pixel is frequency transformed before being added. Although this is much slower than SAD, it gives a much better prediction. This method can be used with two iterations of Quarter Pixel precision(<strong><em>subme 2</em></strong>), one iteration of Half Pixel precision interpolated to give quarter pixel precision(<strong><em>subme 3</em></strong>), always with Quarter Pixel precision(<strong><em>subme 4</em></strong>) and with Quarter Pixel precision + Bidirectional Motion Estimation(<strong><em>subme 5</em></strong>).</li>
<li><em>RD(Rate Distortion)</em>: The disadvantage of using SAD/SATD is that, many a time, the number of bits used for representing a sample would be more than what is actually needed. This could drastically increase the output file size, especially when using Quarter Pixel Precision.<br />
RD rectifies this issue by measuring the distortion D and the the number of bits R required for each decision, and comparing these with a cost function to make the mode decision. This can be used in either I/P frames(<strong><em>subme 6</em></strong>) or in all frames(<strong><em>subme 7</em></strong>).</li>
<li><em>RD Refine</em>: In this setting, RD is used to refine both motion vectors and mode decisions. This again, can be used in either I/P frames(<strong><em>subme 8</em></strong>) or in all frames(<strong><em>subme 9</em></strong>). This  is slower than normal RD, but more efficient.</li>
<li><em>QPRD(Quarter Pixel Rate Distortion)</em>: This setting does an RD optimization on some quarter pixels using a hexagonal search(<strong><em>subme 10</em></strong>). First, the SATD is checked. If this is found to be above the  threshold value, then the RD process is skipped. If the SATD is below the threshold value, then RD is used. This process much slower, and requires <strong><em>trellis</em></strong> to be set at 2 and <strong><em>Adaptive Quant Strength</em></strong> > 0.</li>
</ul>
<h4 class="psize il"><span id="Motion_Est_Method">Motion Est Method: </span></h4>
<p class="il nl">x264 has a variety of search patterns for estimating how each block of pixels have moved in successive frames.</p>
<div class="highlight np">
<p class="nl">Key:</p>
<p><a href="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_part2_x264/key.png" target="_blank"><img decoding="async" class="compact" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_part2_x264/key.png" alt="Key" height="90px" width="566px"></a></p>
<ul class="emplist">
<li>
<p class="nl"><em>Diamond</em>:<br />Pattern:</p>
<div><a href="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_part2_x264/diamond.png" target="_blank"><img decoding="async" style="margin-bottom: 5px; margin-left: 20px" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_part2_x264/diamond.png" alt="Diamond Pattern" height="90px" width="90px"></a></div>
<p class="compact">Searches similar pixels in a Diamond pattern. This is the fastest method, however the results obtained are the most inferior.</p>
</li>
<li>
<p class="nl"><em>Hexagon</em>:<br />Pattern:</p>
<div><a href="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_part2_x264/hexagon.png" target="_blank"><img decoding="async" style="margin-bottom: 5px; margin-left: 20px" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_part2_x264/hexagon.png" alt="Hexagon Pattern" height="150px" width="150px"></a></div>
<p class="compact">Searches similar pixels in a Hexagon pattern. Slower than Diamond search, but produces much better results.</p>
</li>
<li>
<p class="nl"><em>Exhaustive</em>:<br />Pattern:</p>
<div><a href="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_part2_x264/exhaustive.png" target="_blank"><img decoding="async" style="margin-bottom: 5px; margin-left: 20px" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_part2_x264/exhaustive.png" alt="Exhaustive Pattern" height="150px" width="150px"></a></div>
<p class="compact">Searches similar pixels in a wide area(directly given by the Motion Est Range) surrounding the current pixel. This is an extremely slow pattern, and in most cases, the compression gain offered by this is just not worth it.</p>
</li>
<li>
<p class="compact"><em>Transformed Exhaustive</em>: It is similar to exhaustive, but is slightly better and slower.</p>
</li>
<li>
<p class="compact"><em>Uneven Multi Hexagon</em>: This makes use of five different search patterns; Unsymmetrical cross search, Small rectangular full search, Uneven Multi Hexagon grid search, Extended Hexagon based search and Diamond search. Based on the complexity of the scene, x264 will choose one or multiple of these patterns to estimate motion. Like exhaustive, the range of this search is directly controlled by the Motion Est Range. This is slower than Hexagon search(faster than Exhaustive), but gives much better results in scenes with complex motion.</p>
</li>
</ul>
</div>
<h4 class="psize il"><span id="Motion_Est_Range(merange)">Motion Est Range(merange): </span></h4>
<p class="il np">This value specifies the maximum range in pixels that the encoder searches for a match. For Diamond and Hexagon pattern, this value ranges from 4-16. For Uneven Multi Hexagon and Exhaustive, this value can be extended beyond 16, which can be particularly useful for high motion scenes.</p>
<div class="vspacer_25px"></div>
<h4 class="psize il"><span id="Partition_Type">Partition Type: </span></h4>
<p class="il nl">Each macroblock is broken down to form prediction blocks by the x264 encoder. There are 6 possible ways by which this can be done;</p>
<ul class="nl">
<li>Intra Macroblock: 16&#215;16, 8&#215;8</li>
<li>Inter Macroblock: 16&#215;16, 16&#215;8, 8&#215;16, 8&#215;8</li>
<li>The 8&#215;8 blocks can further be broken down into even smaller blocks.</li>
</ul>
<p class="nl">Each of these partitions are then represented using separate motion vectors. This partitioning is called mode.</p>
<p class="nl">A macroblock with less partitions would require lesser motion vectors to represent its motion. However, these motion vectors might not accurately represent the motion, resulting in a large error and hence encoding the error would require more bits. Similarly, more partitions would require more motion vectors to represent the motion information and fewer bits to encode the residual error.</p>
<p class="nl">The mode selection for each macroblock is one of the steps which contributes to x264s ability to give a great quality output at a low bitrate, but it is a time consuming process, especially if more macroblocks are partitioned.</p>
<p class="np">By using the options in this setting, you can control how many macroblocks the encoder will partition. Options of <strong><em>Most</em></strong>, <strong><em>None</em></strong> ,<strong><em>Some</em></strong> and <strong><em>All</em></strong> are provided.</p>
<h4 class="psize il"><span id="Trellis">Trellis: </span></h4>
<p class="il np">Enabling this setting allows x264 to use trellis quantization algorithm for rounding off the transformed coefficients, which can improve compression by a bit. CABAC must be enabled to use this. You can choose to use this either for encoding only or always(for both analysis and encoding). Choosing always can hit your encoding speed.</p>
<div class="vspacer_25px"></div>
<h3 class="msize" style="padding-top: 5px; text-decoration: underline"><span id="Psychovisual">Psychovisual</span></h3>
<p class="compact">Using the settings in this section, you can control the extent to which the encoder will remove psychovisual redundancies.</p>
<h4 class="psize il"><span id="No_DCT_Decimate">No DCT Decimate: </span></h4>
<p class="il np">DCT Decimation allows the x264 encoder to skip encoding any of the blocks which it views as redundant information. These blocks are the not written to the output file, effectively reducing the bitrate. Checking this option will prevent x264 from skipping such blocks. This is useful if you want to preserve the grain in your videos, which are otherwise removed by DCT decimation.</p>
<div class="vspacer_25px"></div>
<h4 class="psize il"><span id="Adaptive_Quant_Strength">Adaptive Quant Strength: </span></h4>
<p class="il nl">Adaptive Quantization is the process of using a different value quantizer for each block. As x264 uses CRF for constant quality(in Handbrake), this setting can be used to control how x264 distributes bits between the flat areas and the complex areas in the frames.</p>
<p class="np">Higher values(>1) means more bits are allocated to the flats than to the complex areas in a frame, effectively reducing the banding artifacts, but causing some ringing artifacts. Lower Values(<1) means more bits are allocated to the edges in a frame, effectively reducing the ringing artifacts, but causing some banding artifacts.</p>
<div class="spaced image">
<a href="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_part2_x264/ringing_and_banding.jpg" target="_blank"><img decoding="async" class="aligncenter compact" src="https://www.ocfreaks.com/imgs/guide_tutorial/handbrake_part2_x264/ringing_and_banding.jpg" alt="Ringing and Banding Artifacts" height="674px" width="674px"></a><i>Ringing Artifacts: In the edges of the circle.<br />
Banding Artifacts: Discontinuities in the Gradient inside the circle and in the background.</i>
</div>
<h4 class="psize il"><span id="Psychovisual_Rate_Distortion">Psychovisual Rate Distortion: </span></h4>
<p class="il np">This setting adjusts the tradeoff between detail retention and actual video quality(the way the computer sees it). Higher values tend to retain the finer details(grain) at the expense of some loss in quality(undesirable blocking artifacts). The encoded video will thus, appear sharper and more detailed as compared to what it would have been if this was set to 0. To use this, subme should be 6 or higher.</p>
<div class="vspacer_25px"></div>
<h4 class="psize il"><span id="Psychovisual_Trellis">Psychovisual Trellis: </span></h4>
<p class="il np">This setting can be used to improve the sharpness and retain details by varying the strength function of the trellis quantization algorithm. The slider works similar to the Rate Distortion Slider. Higher values bias the finer details over the quality.</p>
<div class="vspacer_25px"></div>
<h4 class="psize il"><span id="Deblocking">Deblocking: </span></h4>
<p class="il np">Does the same thing as the Deblocking Filter in the &#8220;Filters&#8221; tab, but in a much better way. There are two parameters that you could give as input to x264&#8217;s deblocking filter: Alpha and Beta. Alpha value control the amount of deblocking to be applied; higher values would give a softer image. Beta value is the threshold value with which the block is first compared before it is deblocked.</p>
<div class="vspacer_25px"></div>
<div class="special sp_blue notestar spaced">
<b>Note:</b> The Preset and Tune values in the &#8220;Video&#8221; tab work by altering the Advanced x264 settings, and could be used as an alternative if you are intimidated by these settings.
</div>
<h2 style="padding-top: 30px; margin-bottom: 20px;"><span id="Closing_Notes">Closing Notes</span></h2>
<p class="compact">Well, thats all there is to encoding videos using Handbrake. Always make it a practise to encode a preview first and try playing it on your intended device. Video encoding does take a lot of time, and you wouldn&#8217;t want to be that fool who spends hours encoding the entire video just to find that it doesn&#8217;t work on your device.</p>
<p class="compact">Apart from that, have fun encoding! Hope you found this tutorial helpful.</p>
<p>The post <a href="https://www.ocfreaks.com/handbrake-tutorial-part-2-x264-advanced-encoding-compression-settings-guide/">Handbrake Tutorial Part 2: x264 Advanced Encoding &#038; Compression Settings Guide</a> appeared first on <a href="https://www.ocfreaks.com">OCFreaks!</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ocfreaks.com/handbrake-tutorial-part-2-x264-advanced-encoding-compression-settings-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2586</post-id>	</item>
		<item>
		<title>Beginners Guide to Video Redundancies</title>
		<link>https://www.ocfreaks.com/beginners-guide-tutorial-video-redundancies/</link>
					<comments>https://www.ocfreaks.com/beginners-guide-tutorial-video-redundancies/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Saby D'silva]]></dc:creator>
		<pubDate>Fri, 20 Jan 2017 16:10:40 +0000</pubDate>
				<category><![CDATA[Guides & Tutorials]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[video]]></category>
		<guid isPermaLink="false">http://www.ocfreaks.com/?p=2574</guid>

					<description><![CDATA[<p>A brief guide detailing the various video redundancies for beginners.</p>
<p>The post <a href="https://www.ocfreaks.com/beginners-guide-tutorial-video-redundancies/">Beginners Guide to Video Redundancies</a> appeared first on <a href="https://www.ocfreaks.com">OCFreaks!</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="spaced image">
<img decoding="async" class="aligncenter compact" src="https://www.ocfreaks.com/imgs/guide_tutorial/video_redundancies/title.jpg" alt="Video Redundancies" height="300px" width="300px">
</div>
<p class="compact">In this article, I will explain to you about the various video redundancies and why eliminating them is of utmost importance and the first thing programmers tend to focus on when making a codec.</p>
<div class="special sp_blue notestar spaced">
<b>Note:</b> This article is meant to be a precursor to my tutorial: <a href="https://www.ocfreaks.com/handbrake-tutorial-part-2-x264-advanced-encoding-compression-settings-guide/">Handbrake Tutorial Part 2: x264 Advanced Encoding &#038; Compression Settings Guide</a>. Prior knowledge of this is a MUST to fully grasp the Handbrake Advanced/x264 Settings.
</div>
<p class="compact">First lets go into what a redundancy is. In simple terms, Redundancy is the amount of useless data that exists in a specific information. &#8220;Useless&#8221;, here, is an extremely subjective term, and what I actually mean to say is though the data does contribute to the information, the contribution itself is so insignificant that reducing or eliminating it wont have any adverse effects.</p>
<p class="compact">Those coming here from my <a href="https://www.ocfreaks.com/handbrake-complete-tutorial-part-1-transcode-compress-videos/" target="_blank">Handbrake Complete Tutorial Part 1: How to Transcode &#038; Compress Videos</a> article might remember how most video codecs process each frame of the video in terms of <a href="https://www.ocfreaks.com/handbrake-complete-tutorial-part-1-transcode-compress-videos/#Modulus" target="_blank"><strong>macroblocks</strong></a>. Basically, there are four kinds of redundancies that could exist in a lossless raw video:</p>
<ol class="emplist">
<li class="spaced"><b>Spatial Redundancies:</b> Spatial Video Redundancies are the similarities between the <strong>surrounding macroblocks</strong>. For example, consider the frame shown below:</li>
<div class="spaced image" style="padding-right:20px;">
<a href="https://www.ocfreaks.com/imgs/guide_tutorial/video_redundancies/sr.jpg" target="_blank"><img decoding="async" class="aligncenter compact" src="https://www.ocfreaks.com/imgs/guide_tutorial/video_redundancies/sr.jpg" alt="Spatial Redundancies" height="367px" width="625px"></a><i>Spatial Redundancies: The field and the sky, which makes up most of the frame; have largely monotonous hues.</i>
</div>
<li class="spaced"><b>Temporal Redundancies:</b> Temporal Video Redundancies are the similarities in <strong>successive frames</strong>. For example, consider the frames shown below:</li>
<div class="compact image" style="padding-right:20px;">
<a href="https://www.ocfreaks.com/imgs/guide_tutorial/video_redundancies/tr1.jpg" target="_blank"><img decoding="async" class="aligncenter compact" src="https://www.ocfreaks.com/imgs/guide_tutorial/video_redundancies/tr1.jpg" alt="Temporal Redundancies 1" height="367px" width="625px"></a><i>[FRAME: 1]</i>
</div>
<div class="compact image" style="padding-right:20px;">
<a href="https://www.ocfreaks.com/imgs/guide_tutorial/video_redundancies/tr2.jpg" target="_blank"><img decoding="async" class="aligncenter compact" src="https://www.ocfreaks.com/imgs/guide_tutorial/video_redundancies/tr2.jpg" alt="Temporal Redundancies 2" height="367px" width="625px"></a><i>[FRAME: 2]</i>
</div>
<div class="compact image" style="padding-right:20px;">
<a href="https://www.ocfreaks.com/imgs/guide_tutorial/video_redundancies/tr3.jpg" target="_blank"><img decoding="async" class="aligncenter compact" src="https://www.ocfreaks.com/imgs/guide_tutorial/video_redundancies/tr3.jpg" alt="Temporal Redundancies 3" height="367px" width="625px"></a><i>[FRAME: 3]</i>
</div>
<div class="spaced image" style="padding-right:20px;">
<a href="https://www.ocfreaks.com/imgs/guide_tutorial/video_redundancies/tr4.jpg" target="_blank"><img decoding="async" class="aligncenter compact" src="https://www.ocfreaks.com/imgs/guide_tutorial/video_redundancies/tr4.jpg" alt="Temporal Redundancies 4" height="367px" width="625px"></a><i>[FRAME: 4]<br />Temporal Redundancies: In these frames, only the car is moving. The rest of the frame(the background) is stationary. So, there is no need to transmit this information in all the frames.</i>
</div>
<li class="spaced"><b>Psychovisual Redundancies:</b> Psychovisual Video Redundancies exist due to the fact that the human eye is not equally sensitive to all visual information. So by eliminating the parts to which the eye is less sensitive, the frame can be compressed without a much noticeable quality loss.</li>
<li><b>Coding Redundancies:</b> In an uncompressed raw video, each pixel in a frame is usually encoded to a <strong>fixed length</strong>. This results in a file that would be much bigger than what is actually required, as the same length is used for each pixel in all the frames, regardless of whether it is required or not. This is called coding redundancy, and can be eliminated by using <strong>Variable Length Coding</strong> schemes. To see (albeit a crude example) how coding redundancies can be reduced, consider an 8bit 5x5px greyscale image, with the grey levels of the series of pixels going as;<br />&nbsp;<br />
<b>120, 120, 120, 120, 120, 119, 119, 119, 119, 119, 118, 118, 118, 118, 117, 117, 117, 115, 115, 115</b><br />&nbsp;<br />
This could be represented as is, in which case a total of 160 bits would be required. Or, it could be represented much more efficiently as follows:<br />&nbsp;<br />
<b>5.120, 5.119, 4.118, 3.117, 3.115</b><br />&nbsp;<br />
This is the basic principle of Run Length Encoding (RLE), one of the oldest and simplest encoding schemes.
</li>
</ol>
<p class="compact">How these redundancies are processed and eliminated is one of the defining factors of a Codecs overall efficiency and performance.</p>
<p class="np">Eliminating redundancies is extremely important, especially in the case of videos. This is because of the ridiculously high amount of redundant data that can exist in it. Consider a scenario where you have 86400 images averaging 350 KB per image(really not an inconceivable size for an image of that resolution). A 24fps video made out of that many images would be of around 3GB (for 30 mins). Let that sink in. Also in videos, you really wont see much of a difference between consecutive frames. So, all that data being used to represent it is, as I stated above, &#8220;Useless&#8221;!</p>
<p>The post <a href="https://www.ocfreaks.com/beginners-guide-tutorial-video-redundancies/">Beginners Guide to Video Redundancies</a> appeared first on <a href="https://www.ocfreaks.com">OCFreaks!</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ocfreaks.com/beginners-guide-tutorial-video-redundancies/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2574</post-id>	</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/

Page Caching using Disk: Enhanced 

Served from: www.ocfreaks.com @ 2026-03-05 19:44:00 by W3 Total Cache
-->