<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>Dirac Video Codec</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body bgcolor="#ffffff"> <h1 align="center" color="#606080"> Dirac - A Video Codec </h1> <p align="center"> Created by the <a href="http://www.bbc.co.uk">British Broadcasting Corporation</a>. </p> <hr> <!-- Generated by Doxygen 1.5.4 --> <div class="nav"> <a class="el" href="a00226.html">dirac</a>::<a class="el" href="a00114.html">PixelMatcher</a></div> <h1>dirac::PixelMatcher Class Reference</h1><!-- doxytag: class="dirac::PixelMatcher" --><code>#include <<a class="el" href="a00283.html">pixel_match.h</a>></code> <p> <p> <a href="a00441.html">List of all members.</a><h2>Public Member Functions</h2> <ul> <li><a class="el" href="a00114.html#ef96b2a1af2007e87b691150d2a94d9c">PixelMatcher</a> (const <a class="el" href="a00066.html">EncoderParams</a> &encp) <dl class="el"><dd class="mdescRight">Constructor. <a href="#ef96b2a1af2007e87b691150d2a94d9c"></a><br></dl><li>void <a class="el" href="a00114.html#22e312ac4434b11deb89436e54a1ca73">DoSearch</a> (const <a class="el" href="a00073.html">FrameBuffer</a> &my_buffer, int frame_num, <a class="el" href="a00087.html">MEData</a> &me_data) <dl class="el"><dd class="mdescRight">Do the actual search. <a href="#22e312ac4434b11deb89436e54a1ca73"></a><br></dl></ul> <h2>Private Member Functions</h2> <ul> <li>void <a class="el" href="a00114.html#0e1078abccd200bbc4f3f54eb4851815">MakePicHierarchy</a> (const <a class="el" href="a00113.html">PicArray</a> &data, <a class="el" href="a00105.html">OneDArray</a>< <a class="el" href="a00113.html">PicArray</a> * > &down_data) <dl class="el"><dd class="mdescRight">Make down-converted pictures. <a href="#0e1078abccd200bbc4f3f54eb4851815"></a><br></dl><li>void <a class="el" href="a00114.html#c860e25a3bcca455e40c64ef5d1a2051">MakeMEDataHierarchy</a> (const <a class="el" href="a00105.html">OneDArray</a>< <a class="el" href="a00113.html">PicArray</a> * > &down_data, <a class="el" href="a00105.html">OneDArray</a>< <a class="el" href="a00087.html">MEData</a> * > &me_data_set) <dl class="el"><dd class="mdescRight">Make a hierarchy of <a class="el" href="a00101.html" title="Class for all the motion vector data.">MvData</a> structures. <a href="#c860e25a3bcca455e40c64ef5d1a2051"></a><br></dl><li>void <a class="el" href="a00114.html#b1d3a0b8f2d7fcad85946d7a9d1a92f7">TidyPics</a> (<a class="el" href="a00105.html">OneDArray</a>< <a class="el" href="a00113.html">PicArray</a> * > &down_data) <dl class="el"><dd class="mdescRight">Tidy up the allocations made in building the picture hirearchy. <a href="#b1d3a0b8f2d7fcad85946d7a9d1a92f7"></a><br></dl><li>void <a class="el" href="a00114.html#286635372cff9045a10d1f51c9888399">TidyMEData</a> (<a class="el" href="a00105.html">OneDArray</a>< <a class="el" href="a00087.html">MEData</a> * > &me_data_set) <dl class="el"><dd class="mdescRight">Tidy up the allocations made in building the MV data hirearchy. <a href="#286635372cff9045a10d1f51c9888399"></a><br></dl><li>void <a class="el" href="a00114.html#77c1e25f890c2fd6b21c1bf713727799">MatchPic</a> (const <a class="el" href="a00113.html">PicArray</a> &ref_data, const <a class="el" href="a00113.html">PicArray</a> &pic_data, <a class="el" href="a00087.html">MEData</a> &me_data, const <a class="el" href="a00101.html">MvData</a> &guide_data, const int ref_id) <dl class="el"><dd class="mdescRight">Match the picture data. <a href="#77c1e25f890c2fd6b21c1bf713727799"></a><br></dl><li>void <a class="el" href="a00114.html#3fd8ce48e9e8df32284c0aa43aa4a202">DoBlock</a> (const int xpos, const int ypos, const <a class="el" href="a00139.html">MvArray</a> &guide_array, <a class="el" href="a00017.html">BlockMatcher</a> &block_match) <dl class="el"><dd class="mdescRight">Do a given block. <a href="#3fd8ce48e9e8df32284c0aa43aa4a202"></a><br></dl></ul> <h2>Private Attributes</h2> <ul> <li>const <a class="el" href="a00066.html">EncoderParams</a> & <a class="el" href="a00114.html#0a8bb513df45b9db2d8ba9356b7dca7a">m_encparams</a> <dl class="el"><dd class="mdescRight">Local reference to the encoder. <a href="#0a8bb513df45b9db2d8ba9356b7dca7a"></a><br></dl><li>int <a class="el" href="a00114.html#d360831fe629a2ec914cfa0fc3faaacd">m_depth</a> <li>int <a class="el" href="a00114.html#939e4b54b2e27ad0629bbc7abae2a954">m_level</a> <li>int <a class="el" href="a00114.html#a8644f8d52a1190b55f52c3b4b6a7ecf">m_xr</a> <li>int <a class="el" href="a00114.html#14fd8611c266d14d0400d40bf7d2ec64">m_yr</a> <li>int <a class="el" href="a00114.html#6c4e8ba863f6e9c25f47c90b856b1a25">m_big_xr</a> <li>int <a class="el" href="a00114.html#0bc6a312ce84713d0c92dd47c0d291f8">m_big_yr</a> <li>int <a class="el" href="a00114.html#0c50a5e8f29d285f66318fe79ac37b94">m_tdiff</a> [2] <li><a class="el" href="a00080.html">FrameSort</a> <a class="el" href="a00114.html#7af0d604443e37a15d5273e9fd36e075">m_fsort</a> <li><a class="el" href="a00226.html#7a049e12b5746a1b3da88a3e94d04069">CandidateList</a> <a class="el" href="a00114.html#0b21ec8d6bc104306c762ece18015f5c">m_cand_list</a> <li><a class="el" href="a00099.html">MVector</a> <a class="el" href="a00114.html#20939032bca4d2e8f370dec1e42a8c81">m_mv_prediction</a> <li>double <a class="el" href="a00114.html#23e35b046f8616d614bb36646fc0357a">m_rho</a> <li>double <a class="el" href="a00114.html#aaf4357252197ee079d9aaede854a5bf">m_cost_mean</a> <li>double <a class="el" href="a00114.html#a23b68768042f5604196a873fee24599">m_cost_mean_sq</a> </ul> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="ef96b2a1af2007e87b691150d2a94d9c"></a><!-- doxytag: member="dirac::PixelMatcher::PixelMatcher" ref="ef96b2a1af2007e87b691150d2a94d9c" args="(const EncoderParams &encp)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">dirac::PixelMatcher::PixelMatcher </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00066.html">EncoderParams</a> & </td> <td class="paramname"> <em>encp</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="22e312ac4434b11deb89436e54a1ca73"></a><!-- doxytag: member="dirac::PixelMatcher::DoSearch" ref="22e312ac4434b11deb89436e54a1ca73" args="(const FrameBuffer &my_buffer, int frame_num, MEData &me_data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::PixelMatcher::DoSearch </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00073.html">FrameBuffer</a> & </td> <td class="paramname"> <em>my_buffer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>frame_num</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00087.html">MEData</a> & </td> <td class="paramname"> <em>me_data</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="0e1078abccd200bbc4f3f54eb4851815"></a><!-- doxytag: member="dirac::PixelMatcher::MakePicHierarchy" ref="0e1078abccd200bbc4f3f54eb4851815" args="(const PicArray &data, OneDArray< PicArray * > &down_data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::PixelMatcher::MakePicHierarchy </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00113.html">PicArray</a> & </td> <td class="paramname"> <em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00105.html">OneDArray</a>< <a class="el" href="a00113.html">PicArray</a> * > & </td> <td class="paramname"> <em>down_data</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="c860e25a3bcca455e40c64ef5d1a2051"></a><!-- doxytag: member="dirac::PixelMatcher::MakeMEDataHierarchy" ref="c860e25a3bcca455e40c64ef5d1a2051" args="(const OneDArray< PicArray * > &down_data, OneDArray< MEData * > &me_data_set)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::PixelMatcher::MakeMEDataHierarchy </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00105.html">OneDArray</a>< <a class="el" href="a00113.html">PicArray</a> * > & </td> <td class="paramname"> <em>down_data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00105.html">OneDArray</a>< <a class="el" href="a00087.html">MEData</a> * > & </td> <td class="paramname"> <em>me_data_set</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="b1d3a0b8f2d7fcad85946d7a9d1a92f7"></a><!-- doxytag: member="dirac::PixelMatcher::TidyPics" ref="b1d3a0b8f2d7fcad85946d7a9d1a92f7" args="(OneDArray< PicArray * > &down_data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::PixelMatcher::TidyPics </td> <td>(</td> <td class="paramtype"><a class="el" href="a00105.html">OneDArray</a>< <a class="el" href="a00113.html">PicArray</a> * > & </td> <td class="paramname"> <em>down_data</em> </td> <td> ) </td> <td width="100%"><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="286635372cff9045a10d1f51c9888399"></a><!-- doxytag: member="dirac::PixelMatcher::TidyMEData" ref="286635372cff9045a10d1f51c9888399" args="(OneDArray< MEData * > &me_data_set)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::PixelMatcher::TidyMEData </td> <td>(</td> <td class="paramtype"><a class="el" href="a00105.html">OneDArray</a>< <a class="el" href="a00087.html">MEData</a> * > & </td> <td class="paramname"> <em>me_data_set</em> </td> <td> ) </td> <td width="100%"><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="77c1e25f890c2fd6b21c1bf713727799"></a><!-- doxytag: member="dirac::PixelMatcher::MatchPic" ref="77c1e25f890c2fd6b21c1bf713727799" args="(const PicArray &ref_data, const PicArray &pic_data, MEData &me_data, const MvData &guide_data, const int ref_id)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::PixelMatcher::MatchPic </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00113.html">PicArray</a> & </td> <td class="paramname"> <em>ref_data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00113.html">PicArray</a> & </td> <td class="paramname"> <em>pic_data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00087.html">MEData</a> & </td> <td class="paramname"> <em>me_data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00101.html">MvData</a> & </td> <td class="paramname"> <em>guide_data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const int </td> <td class="paramname"> <em>ref_id</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="3fd8ce48e9e8df32284c0aa43aa4a202"></a><!-- doxytag: member="dirac::PixelMatcher::DoBlock" ref="3fd8ce48e9e8df32284c0aa43aa4a202" args="(const int xpos, const int ypos, const MvArray &guide_array, BlockMatcher &block_match)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::PixelMatcher::DoBlock </td> <td>(</td> <td class="paramtype">const int </td> <td class="paramname"> <em>xpos</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const int </td> <td class="paramname"> <em>ypos</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00139.html">MvArray</a> & </td> <td class="paramname"> <em>guide_array</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00017.html">BlockMatcher</a> & </td> <td class="paramname"> <em>block_match</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="0a8bb513df45b9db2d8ba9356b7dca7a"></a><!-- doxytag: member="dirac::PixelMatcher::m_encparams" ref="0a8bb513df45b9db2d8ba9356b7dca7a" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="a00066.html">EncoderParams</a>& <a class="el" href="a00114.html#0a8bb513df45b9db2d8ba9356b7dca7a">dirac::PixelMatcher::m_encparams</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="d360831fe629a2ec914cfa0fc3faaacd"></a><!-- doxytag: member="dirac::PixelMatcher::m_depth" ref="d360831fe629a2ec914cfa0fc3faaacd" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00114.html#d360831fe629a2ec914cfa0fc3faaacd">dirac::PixelMatcher::m_depth</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="939e4b54b2e27ad0629bbc7abae2a954"></a><!-- doxytag: member="dirac::PixelMatcher::m_level" ref="939e4b54b2e27ad0629bbc7abae2a954" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00114.html#939e4b54b2e27ad0629bbc7abae2a954">dirac::PixelMatcher::m_level</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="a8644f8d52a1190b55f52c3b4b6a7ecf"></a><!-- doxytag: member="dirac::PixelMatcher::m_xr" ref="a8644f8d52a1190b55f52c3b4b6a7ecf" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00114.html#a8644f8d52a1190b55f52c3b4b6a7ecf">dirac::PixelMatcher::m_xr</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="14fd8611c266d14d0400d40bf7d2ec64"></a><!-- doxytag: member="dirac::PixelMatcher::m_yr" ref="14fd8611c266d14d0400d40bf7d2ec64" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00114.html#14fd8611c266d14d0400d40bf7d2ec64">dirac::PixelMatcher::m_yr</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="6c4e8ba863f6e9c25f47c90b856b1a25"></a><!-- doxytag: member="dirac::PixelMatcher::m_big_xr" ref="6c4e8ba863f6e9c25f47c90b856b1a25" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00114.html#6c4e8ba863f6e9c25f47c90b856b1a25">dirac::PixelMatcher::m_big_xr</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="0bc6a312ce84713d0c92dd47c0d291f8"></a><!-- doxytag: member="dirac::PixelMatcher::m_big_yr" ref="0bc6a312ce84713d0c92dd47c0d291f8" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00114.html#0bc6a312ce84713d0c92dd47c0d291f8">dirac::PixelMatcher::m_big_yr</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="0c50a5e8f29d285f66318fe79ac37b94"></a><!-- doxytag: member="dirac::PixelMatcher::m_tdiff" ref="0c50a5e8f29d285f66318fe79ac37b94" args="[2]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00114.html#0c50a5e8f29d285f66318fe79ac37b94">dirac::PixelMatcher::m_tdiff</a>[2]<code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="7af0d604443e37a15d5273e9fd36e075"></a><!-- doxytag: member="dirac::PixelMatcher::m_fsort" ref="7af0d604443e37a15d5273e9fd36e075" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00080.html">FrameSort</a> <a class="el" href="a00114.html#7af0d604443e37a15d5273e9fd36e075">dirac::PixelMatcher::m_fsort</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="0b21ec8d6bc104306c762ece18015f5c"></a><!-- doxytag: member="dirac::PixelMatcher::m_cand_list" ref="0b21ec8d6bc104306c762ece18015f5c" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00226.html#7a049e12b5746a1b3da88a3e94d04069">CandidateList</a> <a class="el" href="a00114.html#0b21ec8d6bc104306c762ece18015f5c">dirac::PixelMatcher::m_cand_list</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="20939032bca4d2e8f370dec1e42a8c81"></a><!-- doxytag: member="dirac::PixelMatcher::m_mv_prediction" ref="20939032bca4d2e8f370dec1e42a8c81" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00099.html">MVector</a> <a class="el" href="a00114.html#20939032bca4d2e8f370dec1e42a8c81">dirac::PixelMatcher::m_mv_prediction</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="23e35b046f8616d614bb36646fc0357a"></a><!-- doxytag: member="dirac::PixelMatcher::m_rho" ref="23e35b046f8616d614bb36646fc0357a" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double <a class="el" href="a00114.html#23e35b046f8616d614bb36646fc0357a">dirac::PixelMatcher::m_rho</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="aaf4357252197ee079d9aaede854a5bf"></a><!-- doxytag: member="dirac::PixelMatcher::m_cost_mean" ref="aaf4357252197ee079d9aaede854a5bf" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double <a class="el" href="a00114.html#aaf4357252197ee079d9aaede854a5bf">dirac::PixelMatcher::m_cost_mean</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="a23b68768042f5604196a873fee24599"></a><!-- doxytag: member="dirac::PixelMatcher::m_cost_mean_sq" ref="a23b68768042f5604196a873fee24599" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double <a class="el" href="a00114.html#a23b68768042f5604196a873fee24599">dirac::PixelMatcher::m_cost_mean_sq</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="a00283.html">pixel_match.h</a></ul> <hr> <p align="center"><small> © 2004 British Broadcasting Corporation. Dirac code licensed under the <a href="http://www.mozilla.org/MPL/">Mozilla Public License (MPL) Version 1.1</a>.<br> HTML documentation generated by Dimitri van Heesch's excellent <a href="http://www.doxygen.org">Doxygen</a> tool. </small></p> </body> </html>