<!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.9 --> <div class="navpath"><a class="el" href="a00234.html">dirac</a>::<a class="el" href="a00106.html">PelBlockDiff</a> </div> <div class="contents"> <h1>dirac::PelBlockDiff Class Reference</h1><!-- doxytag: class="dirac::PelBlockDiff" --><!-- doxytag: inherits="dirac::BlockDiff" -->A class for doing block differences to pixel accuracy, inherited from <a class="el" href="a00009.html" title="An abstract class for doing block difference calculations.">BlockDiff</a>. <p> <code>#include <<a class="el" href="a00196_source.html">me_utils.h</a>></code> <p> <div class="dynheader"> Inheritance diagram for dirac::PelBlockDiff:</div> <div class="dynsection"> <p><center><img src="a00106.png" usemap="#dirac::PelBlockDiff_map" border="0" alt=""></center> <map name="dirac::PelBlockDiff_map"> <area href="a00009.html" alt="dirac::BlockDiff" shape="rect" coords="0,0,116,24"> </map> </div> <p> <a href="a00372.html">List of all members.</a><h2>Public Member Functions</h2> <ul> <li><a class="el" href="a00106.html#2cacbbd386853b8e81da37ddfa223885">PelBlockDiff</a> (const <a class="el" href="a00107.html">PicArray</a> &ref, const <a class="el" href="a00107.html">PicArray</a> &pic) <dl class="el"><dd class="mdescRight">Constructor, initialising the reference and picture data. <a href="#2cacbbd386853b8e81da37ddfa223885"></a><br></dl><li>float <a class="el" href="a00106.html#b1976983be29af6076165356e5209c52">Diff</a> (const <a class="el" href="a00012.html">BlockDiffParams</a> &dparams, const <a class="el" href="a00091.html">MVector</a> &mv) <dl class="el"><dd class="mdescRight">Do the difference, returning SAD. <a href="#b1976983be29af6076165356e5209c52"></a><br></dl><li>void <a class="el" href="a00106.html#d76776600403e26ac8dbfbd9633bac5c">Diff</a> (const <a class="el" href="a00012.html">BlockDiffParams</a> &dparams, const <a class="el" href="a00091.html">MVector</a> &mv, float &best_sum, <a class="el" href="a00091.html">MVector</a> &best_mv) <dl class="el"><dd class="mdescRight">Do the difference, overwriting the best MV so far if appropriate. <a href="#d76776600403e26ac8dbfbd9633bac5c"></a><br></dl></ul> <h2>Private Member Functions</h2> <ul> <li><a class="el" href="a00106.html#4764d463577cec4e72c698654b2d0da3">PelBlockDiff</a> (const <a class="el" href="a00106.html">PelBlockDiff</a> &cpy) <dl class="el"><dd class="mdescRight">Private, bodyless copy-constructor: class should not be copied. <a href="#4764d463577cec4e72c698654b2d0da3"></a><br></dl><li><a class="el" href="a00106.html">PelBlockDiff</a> & <a class="el" href="a00106.html#2195ec13bd1637b111e926fb9d560265">operator=</a> (const <a class="el" href="a00106.html">PelBlockDiff</a> &rhs) <dl class="el"><dd class="mdescRight">Private, bodyless assignment=: class should not be assigned. <a href="#2195ec13bd1637b111e926fb9d560265"></a><br></dl></ul> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="2cacbbd386853b8e81da37ddfa223885"></a><!-- doxytag: member="dirac::PelBlockDiff::PelBlockDiff" ref="2cacbbd386853b8e81da37ddfa223885" args="(const PicArray &ref, const PicArray &pic)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">dirac::PelBlockDiff::PelBlockDiff </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00107.html">PicArray</a> & </td> <td class="paramname"> <em>ref</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00107.html">PicArray</a> & </td> <td class="paramname"> <em>pic</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="4764d463577cec4e72c698654b2d0da3"></a><!-- doxytag: member="dirac::PelBlockDiff::PelBlockDiff" ref="4764d463577cec4e72c698654b2d0da3" args="(const PelBlockDiff &cpy)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">dirac::PelBlockDiff::PelBlockDiff </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00106.html">PelBlockDiff</a> & </td> <td class="paramname"> <em>cpy</em> </td> <td> ) </td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="d76776600403e26ac8dbfbd9633bac5c"></a><!-- doxytag: member="dirac::PelBlockDiff::Diff" ref="d76776600403e26ac8dbfbd9633bac5c" args="(const BlockDiffParams &dparams, const MVector &mv, float &best_sum, MVector &best_mv)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::PelBlockDiff::Diff </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00012.html">BlockDiffParams</a> & </td> <td class="paramname"> <em>dparams</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00091.html">MVector</a> & </td> <td class="paramname"> <em>mv</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float & </td> <td class="paramname"> <em>best_sum</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00091.html">MVector</a> & </td> <td class="paramname"> <em>best_mv</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Do the difference, overwriting the best MV so far if appropriate, and bailing out if we do worse <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dparams</em> </td><td>block parameters </td></tr> <tr><td valign="top"></td><td valign="top"><em>mv</em> </td><td>the motion vector being used </td></tr> <tr><td valign="top"></td><td valign="top"><em>best_sum</em> </td><td>the best SAD value obtain yet </td></tr> <tr><td valign="top"></td><td valign="top"><em>best_mv</em> </td><td>the MV giving the best SAD value so far </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="b1976983be29af6076165356e5209c52"></a><!-- doxytag: member="dirac::PelBlockDiff::Diff" ref="b1976983be29af6076165356e5209c52" args="(const BlockDiffParams &dparams, const MVector &mv)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float dirac::PelBlockDiff::Diff </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00012.html">BlockDiffParams</a> & </td> <td class="paramname"> <em>dparams</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00091.html">MVector</a> & </td> <td class="paramname"> <em>mv</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Do the difference, returning SAD <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dparams</em> </td><td>block parameters </td></tr> <tr><td valign="top"></td><td valign="top"><em>mv</em> </td><td>the motion vector being used </td></tr> </table> </dl> <p>Implements <a class="el" href="a00009.html#52568a419c4872b7540529b49e34f5c0">dirac::BlockDiff</a>.</p> </div> </div><p> <a class="anchor" name="2195ec13bd1637b111e926fb9d560265"></a><!-- doxytag: member="dirac::PelBlockDiff::operator=" ref="2195ec13bd1637b111e926fb9d560265" args="(const PelBlockDiff &rhs)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00106.html">PelBlockDiff</a>& dirac::PelBlockDiff::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00106.html">PelBlockDiff</a> & </td> <td class="paramname"> <em>rhs</em> </td> <td> ) </td> <td><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="a00196_source.html">me_utils.h</a></ul> </div> <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>