From: Thomas D. <tj...@us...> - 2006-10-19 13:54:06
|
Update of /cvsroot/dirac/compress/libdirac_common In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv18464/libdirac_common Modified Files: band_codec.cpp Log Message: Put in Dave Schleef's patch for making the computation of parent coefficient coordinates correct and spec compliant. Index: band_codec.cpp =================================================================== RCS file: /cvsroot/dirac/compress/libdirac_common/band_codec.cpp,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** band_codec.cpp 18 Jul 2006 10:36:13 -0000 1.27 --- band_codec.cpp 19 Oct 2006 13:53:54 -0000 1.28 *************** *** 26,29 **** --- 26,30 ---- * Andrew Kennedy * Anuradha Suraparaju + * David Schleef * * Alternatively, the contents of this file may be used under the terms of *************** *** 135,152 **** const int yend = code_block.Yend(); - int xpbeg; - int ypbeg; - - if (m_node.Parent()!=0) - { - xpbeg = m_pnode.Xp() + ( ( code_block.Xstart()-m_node.Xp() )>>1 ); - ypbeg = m_pnode.Yp() + ( ( code_block.Ystart()-m_node.Yp() )>>1 ); - } - else - { - xpbeg = 0; - ypbeg = 0; - } - const int qf_idx = code_block.QIndex(); --- 136,139 ---- *************** *** 160,167 **** m_offset = dirac_quantiser_lists.QuantOffset4( qf_idx ); ! for ( int ypos=ybeg , m_pypos=ypbeg; ypos<yend ;++ypos , m_pypos=(( ypos-ybeg )>>1)+ypbeg) { ! for ( int xpos=xbeg , m_pxpos=xpbeg ; xpos<xend ;++xpos , m_pxpos=((xpos-xbeg)>>1)+xpbeg) { if ( xpos == m_node.Xp() ) --- 147,156 ---- m_offset = dirac_quantiser_lists.QuantOffset4( qf_idx ); ! for ( int ypos=ybeg; ypos<yend ;++ypos) { ! m_pypos=(( ypos-m_node.Yp() )>>1)+m_pnode.Yp(); ! for ( int xpos=xbeg; xpos<xend ;++xpos) { + m_pxpos=(( xpos-m_node.Xp() )>>1)+m_pnode.Xp(); if ( xpos == m_node.Xp() ) *************** *** 326,343 **** const int yend = code_block.Yend(); - int xpbeg; - int ypbeg; - - if (m_node.Parent()!=0) - { - xpbeg = m_pnode.Xp() + ( ( code_block.Xstart()-m_node.Xp() )>>1 ); - ypbeg = m_pnode.Yp() + ( ( code_block.Ystart()-m_node.Yp() )>>1 ); - } - else - { - xpbeg = 0; - ypbeg = 0; - } - int qf_idx = m_node.QIndex(); --- 315,318 ---- *************** *** 361,371 **** //Work ! for ( int ypos=ybeg , m_pypos=ypbeg; ypos<yend ;++ypos , m_pypos=(( ypos-ybeg )>>1)+ypbeg) { ValueType *p_out_data = out_data[m_pypos]; ValueType *c_out_data_1 = out_data[ypos-1]; ValueType *c_out_data_2 = out_data[ypos]; ! for ( int xpos=xbeg , m_pxpos=xpbeg ; xpos<xend ;++xpos,m_pxpos=((xpos-xbeg)>>1)+xpbeg) { if ( xpos == m_node.Xp() ) m_nhood_nonzero = (ypos!=m_node.Yp()) ? bool(c_out_data_1[xpos]) : false; --- 336,348 ---- //Work ! for ( int ypos=ybeg; ypos<yend ;++ypos) { + m_pypos=(( ypos-m_node.Yp() )>>1)+m_pnode.Yp(); ValueType *p_out_data = out_data[m_pypos]; ValueType *c_out_data_1 = out_data[ypos-1]; ValueType *c_out_data_2 = out_data[ypos]; ! for ( int xpos=xbeg; xpos<xend ;++xpos) { + m_pxpos=(( xpos-m_node.Xp() )>>1)+m_pnode.Xp(); if ( xpos == m_node.Xp() ) m_nhood_nonzero = (ypos!=m_node.Yp()) ? bool(c_out_data_1[xpos]) : false; |