<!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="a00122.html">QualityMonitor</a> </div> <div class="contents"> <h1>dirac::QualityMonitor Class Reference</h1><!-- doxytag: class="dirac::QualityMonitor" -->Class to monitor the quality of pictures and adjust coding parameters appropriately. <p> <code>#include <<a class="el" href="a00221_source.html">quality_monitor.h</a>></code> <p> <p> <a href="a00354.html">List of all members.</a><h2>Public Member Functions</h2> <ul> <li><a class="el" href="a00122.html#ecf490a2558089e320e1835abd9b756b">QualityMonitor</a> (<a class="el" href="a00063.html">EncoderParams</a> &ep) <dl class="el"><dd class="mdescRight">Constructor. Sets up initial Lagrangian values. <a href="#ecf490a2558089e320e1835abd9b756b"></a><br></dl><li><a class="el" href="a00122.html#d7d543c80a6483ba2d8ff146bcaee1a2">~QualityMonitor</a> () <dl class="el"><dd class="mdescRight">Destructor. <a href="#d7d543c80a6483ba2d8ff146bcaee1a2"></a><br></dl><li>void <a class="el" href="a00122.html#fa172949df4989ff98b9b4a733df2874">UpdateModel</a> (const <a class="el" href="a00064.html">EncPicture</a> &enc_picture) <dl class="el"><dd class="mdescRight">Update the mse factors, returning true if we need to recode. <a href="#fa172949df4989ff98b9b4a733df2874"></a><br></dl><li>void <a class="el" href="a00122.html#f6d5059169742fd788b225329cb7a183">ResetAll</a> () <dl class="el"><dd class="mdescRight">Reset the quality factors (say if there's been a cut). <a href="#f6d5059169742fd788b225329cb7a183"></a><br></dl><li>void <a class="el" href="a00122.html#e912fac38f1d24cfe7181fe58359c8b8">WriteLog</a> () <dl class="el"><dd class="mdescRight">Write a log of the quality to date. <a href="#e912fac38f1d24cfe7181fe58359c8b8"></a><br></dl></ul> <h2>Private Member Functions</h2> <ul> <li>double <a class="el" href="a00122.html#e262aa47da5c6941ae2d1c46d538bdea">QualityVal</a> (const <a class="el" href="a00107.html">PicArray</a> &coded_data, const <a class="el" href="a00107.html">PicArray</a> &orig_data, const int xlen, const int ylen) <dl class="el"><dd class="mdescRight">Calculate the quality of coded wrt original picture. <a href="#e262aa47da5c6941ae2d1c46d538bdea"></a><br></dl></ul> <h2>Private Attributes</h2> <ul> <li><a class="el" href="a00063.html">EncoderParams</a> & <a class="el" href="a00122.html#7e265f7bc65fb3fa888c1b4cc02746dd">m_encparams</a> <dl class="el"><dd class="mdescRight">A reference to the encoder parameters. <a href="#7e265f7bc65fb3fa888c1b4cc02746dd"></a><br></dl><li>long double <a class="el" href="a00122.html#6b4bc721af33f4da04d449e6627bc2b6">m_totalmse_averageY</a> <dl class="el"><dd class="mdescRight">The overall average Y mse. <a href="#6b4bc721af33f4da04d449e6627bc2b6"></a><br></dl><li>long double <a class="el" href="a00122.html#605b5553b87b2f40473020ce27755c73">m_totalmse_averageU</a> <dl class="el"><dd class="mdescRight">The overall average U mse. <a href="#605b5553b87b2f40473020ce27755c73"></a><br></dl><li>long double <a class="el" href="a00122.html#604bd61d008a9bb8c06d64d879a8de37">m_totalmse_averageV</a> <dl class="el"><dd class="mdescRight">The overall average V mse. <a href="#604bd61d008a9bb8c06d64d879a8de37"></a><br></dl><li>int <a class="el" href="a00122.html#a2fbdaa3cfc4f965e29a13f7fc183cbe">m_allpicture_total</a> <dl class="el"><dd class="mdescRight">The total number of pictures coded. <a href="#a2fbdaa3cfc4f965e29a13f7fc183cbe"></a><br></dl><li><a class="el" href="a00097.html">OneDArray</a>< long double > <a class="el" href="a00122.html#8588a361caf97896a7e9ca19b87bea89">m_mse_averageY</a> <dl class="el"><dd class="mdescRight">The average Y mse for the picture types. <a href="#8588a361caf97896a7e9ca19b87bea89"></a><br></dl><li><a class="el" href="a00097.html">OneDArray</a>< long double > <a class="el" href="a00122.html#350fb8e5c144e412f779da7994e4d88f">m_mse_averageU</a> <dl class="el"><dd class="mdescRight">The average U mse for the picture types. <a href="#350fb8e5c144e412f779da7994e4d88f"></a><br></dl><li><a class="el" href="a00097.html">OneDArray</a>< long double > <a class="el" href="a00122.html#b6096c618a50a0ee21ac87c5681e7ac6">m_mse_averageV</a> <dl class="el"><dd class="mdescRight">The average V mse for the picture types. <a href="#b6096c618a50a0ee21ac87c5681e7ac6"></a><br></dl><li><a class="el" href="a00097.html">OneDArray</a>< int > <a class="el" href="a00122.html#1353311d0e98b15ddc68c20fd8524ebe">m_picture_total</a> <dl class="el"><dd class="mdescRight">The number of pictures of each type. <a href="#1353311d0e98b15ddc68c20fd8524ebe"></a><br></dl></ul> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="ecf490a2558089e320e1835abd9b756b"></a><!-- doxytag: member="dirac::QualityMonitor::QualityMonitor" ref="ecf490a2558089e320e1835abd9b756b" args="(EncoderParams &ep)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">dirac::QualityMonitor::QualityMonitor </td> <td>(</td> <td class="paramtype"><a class="el" href="a00063.html">EncoderParams</a> & </td> <td class="paramname"> <em>ep</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="d7d543c80a6483ba2d8ff146bcaee1a2"></a><!-- doxytag: member="dirac::QualityMonitor::~QualityMonitor" ref="d7d543c80a6483ba2d8ff146bcaee1a2" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">dirac::QualityMonitor::~QualityMonitor </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="e262aa47da5c6941ae2d1c46d538bdea"></a><!-- doxytag: member="dirac::QualityMonitor::QualityVal" ref="e262aa47da5c6941ae2d1c46d538bdea" args="(const PicArray &coded_data, const PicArray &orig_data, const int xlen, const int ylen)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double dirac::QualityMonitor::QualityVal </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00107.html">PicArray</a> & </td> <td class="paramname"> <em>coded_data</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>orig_data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const int </td> <td class="paramname"> <em>xlen</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const int </td> <td class="paramname"> <em>ylen</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="f6d5059169742fd788b225329cb7a183"></a><!-- doxytag: member="dirac::QualityMonitor::ResetAll" ref="f6d5059169742fd788b225329cb7a183" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::QualityMonitor::ResetAll </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="fa172949df4989ff98b9b4a733df2874"></a><!-- doxytag: member="dirac::QualityMonitor::UpdateModel" ref="fa172949df4989ff98b9b4a733df2874" args="(const EncPicture &enc_picture)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::QualityMonitor::UpdateModel </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00064.html">EncPicture</a> & </td> <td class="paramname"> <em>enc_picture</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Update the mse factors, returning true if we need to recode <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>enc_picture</em> </td><td>the picture being encoded </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="e912fac38f1d24cfe7181fe58359c8b8"></a><!-- doxytag: member="dirac::QualityMonitor::WriteLog" ref="e912fac38f1d24cfe7181fe58359c8b8" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::QualityMonitor::WriteLog </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="a2fbdaa3cfc4f965e29a13f7fc183cbe"></a><!-- doxytag: member="dirac::QualityMonitor::m_allpicture_total" ref="a2fbdaa3cfc4f965e29a13f7fc183cbe" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00122.html#a2fbdaa3cfc4f965e29a13f7fc183cbe">dirac::QualityMonitor::m_allpicture_total</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="7e265f7bc65fb3fa888c1b4cc02746dd"></a><!-- doxytag: member="dirac::QualityMonitor::m_encparams" ref="7e265f7bc65fb3fa888c1b4cc02746dd" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00063.html">EncoderParams</a>& <a class="el" href="a00122.html#7e265f7bc65fb3fa888c1b4cc02746dd">dirac::QualityMonitor::m_encparams</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="350fb8e5c144e412f779da7994e4d88f"></a><!-- doxytag: member="dirac::QualityMonitor::m_mse_averageU" ref="350fb8e5c144e412f779da7994e4d88f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00097.html">OneDArray</a><long double> <a class="el" href="a00122.html#350fb8e5c144e412f779da7994e4d88f">dirac::QualityMonitor::m_mse_averageU</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="b6096c618a50a0ee21ac87c5681e7ac6"></a><!-- doxytag: member="dirac::QualityMonitor::m_mse_averageV" ref="b6096c618a50a0ee21ac87c5681e7ac6" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00097.html">OneDArray</a><long double> <a class="el" href="a00122.html#b6096c618a50a0ee21ac87c5681e7ac6">dirac::QualityMonitor::m_mse_averageV</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="8588a361caf97896a7e9ca19b87bea89"></a><!-- doxytag: member="dirac::QualityMonitor::m_mse_averageY" ref="8588a361caf97896a7e9ca19b87bea89" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00097.html">OneDArray</a><long double> <a class="el" href="a00122.html#8588a361caf97896a7e9ca19b87bea89">dirac::QualityMonitor::m_mse_averageY</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="1353311d0e98b15ddc68c20fd8524ebe"></a><!-- doxytag: member="dirac::QualityMonitor::m_picture_total" ref="1353311d0e98b15ddc68c20fd8524ebe" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00097.html">OneDArray</a><int> <a class="el" href="a00122.html#1353311d0e98b15ddc68c20fd8524ebe">dirac::QualityMonitor::m_picture_total</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="605b5553b87b2f40473020ce27755c73"></a><!-- doxytag: member="dirac::QualityMonitor::m_totalmse_averageU" ref="605b5553b87b2f40473020ce27755c73" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">long double <a class="el" href="a00122.html#605b5553b87b2f40473020ce27755c73">dirac::QualityMonitor::m_totalmse_averageU</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="604bd61d008a9bb8c06d64d879a8de37"></a><!-- doxytag: member="dirac::QualityMonitor::m_totalmse_averageV" ref="604bd61d008a9bb8c06d64d879a8de37" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">long double <a class="el" href="a00122.html#604bd61d008a9bb8c06d64d879a8de37">dirac::QualityMonitor::m_totalmse_averageV</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="6b4bc721af33f4da04d449e6627bc2b6"></a><!-- doxytag: member="dirac::QualityMonitor::m_totalmse_averageY" ref="6b4bc721af33f4da04d449e6627bc2b6" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">long double <a class="el" href="a00122.html#6b4bc721af33f4da04d449e6627bc2b6">dirac::QualityMonitor::m_totalmse_averageY</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="a00221_source.html">quality_monitor.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>