<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.videolan.org/index.php?action=history&amp;feed=atom&amp;title=SoC_2011%2Fx264_Trellis_Motion_Estimation</id>
	<title>SoC 2011/x264 Trellis Motion Estimation - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.videolan.org/index.php?action=history&amp;feed=atom&amp;title=SoC_2011%2Fx264_Trellis_Motion_Estimation"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2011/x264_Trellis_Motion_Estimation&amp;action=history"/>
	<updated>2026-11-04T21:44:03Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2011/x264_Trellis_Motion_Estimation&amp;diff=19211&amp;oldid=prev</id>
		<title>J-b: moved SoC 2011 x264 Trellis Motion Estimation to SoC 2011/x264 Trellis Motion Estimation</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2011/x264_Trellis_Motion_Estimation&amp;diff=19211&amp;oldid=prev"/>
		<updated>2011-05-19T21:20:52Z</updated>

		<summary type="html">&lt;p&gt;moved &lt;a href=&quot;/SoC_2011_x264_Trellis_Motion_Estimation/&quot; class=&quot;mw-redirect&quot; title=&quot;SoC 2011 x264 Trellis Motion Estimation&quot;&gt;SoC 2011 x264 Trellis Motion Estimation&lt;/a&gt; to &lt;a href=&quot;/SoC_2011/x264_Trellis_Motion_Estimation/&quot; title=&quot;SoC 2011/x264 Trellis Motion Estimation&quot;&gt;SoC 2011/x264 Trellis Motion Estimation&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:20, 19 May 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>J-b</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2011/x264_Trellis_Motion_Estimation&amp;diff=19208&amp;oldid=prev</id>
		<title>Dlarkin: /* Abstract */</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2011/x264_Trellis_Motion_Estimation&amp;diff=19208&amp;oldid=prev"/>
		<updated>2011-05-19T17:49:39Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Abstract&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:49, 19 May 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Abstract ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Abstract ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    &lt;/del&gt;Using trellis optimization for motion estimation promises considerable savings while encoding motion vectors; however, if not done carefully, it can be very expensive.  I have coded a vastly simplified standalone prototype.  Currently, it uses precomputed SAD values to perform single-row optimization over (SAD + BITS_MVD) cost.  The final product will differ in a few respects.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Using trellis optimization for motion estimation promises considerable savings while encoding motion vectors; however, if not done carefully, it can be very expensive.  I have coded a vastly simplified standalone prototype.  Currently, it uses precomputed SAD values to perform single-row optimization over (SAD + BITS_MVD) cost.  The final product will differ in a few respects.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    &lt;/del&gt;To improve results, we will consider optimizing over an entire frame, using alternating row and column iterations.  This can be potentially very slow, especially since optimizing over columns may conflict with the current threading model.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    &lt;/del&gt;Furthermore, the cost function will need to be determined.  A full RDO-cost function may be more expensive to evaluate than we want, especially if we can develop a suitable heuristic.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To improve results, we will consider optimizing over an entire frame, using alternating row and column iterations.  This can be potentially very slow, especially since optimizing over columns may conflict with the current threading model.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    &lt;/del&gt;Lastly, concerns of efficiency.  The simplest ways to improve performance draw on techniques already used in x264 for motion estimation.  Rather than aiming for full convergence, we can limit the maximum number of iterations.  In the cases where we are already near a local minimum, we can enact early termination.  We can also practice early termination in the partial sense - identify static prefixes to reduce trellis depth on the fly.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Furthermore, the cost function will need to be determined.  A full RDO-cost function may be more expensive to evaluate than we want, especially if we can develop a suitable heuristic.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Lastly, concerns of efficiency.  The simplest ways to improve performance draw on techniques already used in x264 for motion estimation.  Rather than aiming for full convergence, we can limit the maximum number of iterations.  In the cases where we are already near a local minimum, we can enact early termination.  We can also practice early termination in the partial sense - identify static prefixes to reduce trellis depth on the fly.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dlarkin</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2011/x264_Trellis_Motion_Estimation&amp;diff=19207&amp;oldid=prev</id>
		<title>Dlarkin: Created page with &quot;{{SoCProject|year=2011|student=Dan Larkin|mentor=Jason Garret-Glaser}}  == Abstract ==      Using trellis optimization for motion estimatio…&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2011/x264_Trellis_Motion_Estimation&amp;diff=19207&amp;oldid=prev"/>
		<updated>2011-05-19T17:48:51Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{SoCProject|year=2011|student=&lt;a href=&quot;/index.php?title=User:Dlarkin&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User:Dlarkin (page does not exist)&quot;&gt;Dan Larkin&lt;/a&gt;|mentor=&lt;a href=&quot;/index.php?title=User:Dark_Shikari&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User:Dark Shikari (page does not exist)&quot;&gt;Jason Garret-Glaser&lt;/a&gt;}}  == Abstract ==      Using trellis optimization for motion estimatio…&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{SoCProject|year=2011|student=[[User:dlarkin|Dan Larkin]]|mentor=[[User:Dark_Shikari|Jason Garret-Glaser]]}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
    Using trellis optimization for motion estimation promises considerable savings while encoding motion vectors; however, if not done carefully, it can be very expensive.  I have coded a vastly simplified standalone prototype.  Currently, it uses precomputed SAD values to perform single-row optimization over (SAD + BITS_MVD) cost.  The final product will differ in a few respects.&lt;br /&gt;
    To improve results, we will consider optimizing over an entire frame, using alternating row and column iterations.  This can be potentially very slow, especially since optimizing over columns may conflict with the current threading model.&lt;br /&gt;
    Furthermore, the cost function will need to be determined.  A full RDO-cost function may be more expensive to evaluate than we want, especially if we can develop a suitable heuristic.&lt;br /&gt;
    Lastly, concerns of efficiency.  The simplest ways to improve performance draw on techniques already used in x264 for motion estimation.  Rather than aiming for full convergence, we can limit the maximum number of iterations.  In the cases where we are already near a local minimum, we can enact early termination.  We can also practice early termination in the partial sense - identify static prefixes to reduce trellis depth on the fly.&lt;/div&gt;</summary>
		<author><name>Dlarkin</name></author>
	</entry>
</feed>