HEVC预测块(PU)模式划分显示

来源:互联网 发布:正版管家婆软件价格 编辑:程序博客网 时间:2024/04/26 16:22

转自:http://blog.csdn.net/pc__wang/article/details/27225443

目录(?)[+]

最近在做关于3D-HEVC的实验,很想直观显示出最终的预测模式(PU)划分结果。最近看到了一个帖子,动了HEVC解码器部分,能直观显示出PU划分结果,但是,只能显示一帧(即解码的第一帧 I-Slice), 后面的全乱了。对于做帧间的是不够的,必须把每帧的划分结果直观地显示出来。仔细看了他的教程,我在此基础进行了改进,目前能够正常显示出HEVC、MV-HEVC的PU划分结果。在此,感谢网站(程光曦微)的作者。

1. PU模式划分显示效果图

HEVC第一帧划分显示

HEVC帧间PU划分显示

2. HEVC decoder 代码修改

该程序是基于HM 11.0/3D-HTM的,废话不多说了,给出修改代码步骤。

2.1 PU划分数据结构体定义及宏定义

为了不改变源代码程序逻辑,我们所有修改的代码都放在自己定义的预处理命令宏定义中。
在TypeDef.h中,定义自己的条件编译预处理命令。
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;"> 1</a>
#define statistics_mode 1//用于统计输出块信息
 来自CODE的代码片
snippet_file_0.h
在TypeDef.h中,定义保存PU划分坐标点结构体。
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;">  1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;">  2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;">  3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;">  4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;">  5</a><a target=_blank id="L6" href="http://blog.csdn.net/pc__wang/article/details/27225443#L6" rel="#L6" style="color: rgb(102, 102, 102); text-decoration: none;">  6</a><a target=_blank id="L7" href="http://blog.csdn.net/pc__wang/article/details/27225443#L7" rel="#L7" style="color: rgb(102, 102, 102); text-decoration: none;">  7</a><a target=_blank id="L8" href="http://blog.csdn.net/pc__wang/article/details/27225443#L8" rel="#L8" style="color: rgb(102, 102, 102); text-decoration: none;">  8</a><a target=_blank id="L9" href="http://blog.csdn.net/pc__wang/article/details/27225443#L9" rel="#L9" style="color: rgb(102, 102, 102); text-decoration: none;">  9</a><a target=_blank id="L10" href="http://blog.csdn.net/pc__wang/article/details/27225443#L10" rel="#L10" style="color: rgb(102, 102, 102); text-decoration: none;"> 10</a>
#if statistics_mode
struct PtPair
{
unsigned int _pt1x;
unsigned int _pt1y;
unsigned int _pt2x;
unsigned int _pt2y;
unsigned char mode;
};
#endif
 来自CODE的代码片
snippet_file_0.h

2.2 PU划分及mode向量定义

为了保存各帧CU及mode最终划分结果,在TAppDecTop.h文件中定义如下代码:
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;"> 1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;"> 2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;"> 3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;"> 4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;"> 5</a><a target=_blank id="L6" href="http://blog.csdn.net/pc__wang/article/details/27225443#L6" rel="#L6" style="color: rgb(102, 102, 102); text-decoration: none;"> 6</a><a target=_blank id="L7" href="http://blog.csdn.net/pc__wang/article/details/27225443#L7" rel="#L7" style="color: rgb(102, 102, 102); text-decoration: none;"> 7</a>
class TAppDecTop : public TAppDecCfg
{
private:
#if statistics_mode
std::vector<PtPair> m_plistPt;//用于保存CU划分及mode结果
std::vector<int> flag;//用于保存每帧的mode数量
#endif
 来自CODE的代码片
snippet_file_0.cpp

2.3 修改各函数头,将m_plistPt传递进去

在TAppDecTop.cpp文件中, 按照下面的方式替换源代码:
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;"> 1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;"> 2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;"> 3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;"> 4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;"> 5</a><a target=_blank id="L6" href="http://blog.csdn.net/pc__wang/article/details/27225443#L6" rel="#L6" style="color: rgb(102, 102, 102); text-decoration: none;"> 6</a><a target=_blank id="L7" href="http://blog.csdn.net/pc__wang/article/details/27225443#L7" rel="#L7" style="color: rgb(102, 102, 102); text-decoration: none;"> 7</a><a target=_blank id="L8" href="http://blog.csdn.net/pc__wang/article/details/27225443#L8" rel="#L8" style="color: rgb(102, 102, 102); text-decoration: none;"> 8</a>
//原来的代码
bNewPicture = m_cTDecTop.decode(nalu, m_iSkipFrame, m_iPOCLastDisplay);
//修改成如下代码
#if statistics_mode
bNewPicture = m_cTDecTop.decode(nalu, m_iSkipFrame, m_iPOCLastDisplay,m_plistPt);
#else
bNewPicture = m_cTDecTop.decode(nalu, m_iSkipFrame, m_iPOCLastDisplay);
#endif
 来自CODE的代码片
snippet_file_0.cpp
编译程序,肯定会出错,因为没有修改相应的函数头。在TDecTop.cpp文件中,按照下面的方式修改decode函数头:
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;"> 1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;"> 2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;"> 3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;"> 4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;"> 5</a>
#if statistics_mode
Bool TDecTop::decode(InputNALUnit& nalu, Int& iSkipFrame, Int& iPOCLastDisplay,std::vector<PtPair>& list)
#else
Bool TDecTop::decode(InputNALUnit& nalu, Int& iSkipFrame, Int& iPOCLastDisplay)
#endif
 来自CODE的代码片
snippet_file_0.cpp
在TDecTop.h中,也需要对应修改decode函数声明,按照以下方式修改该函数声明:
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;"> 1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;"> 2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;"> 3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;"> 4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;"> 5</a>
#if statistics_mode
Bool TDecTop::decode(InputNALUnit& nalu, Int& iSkipFrame, Int& iPOCLastDisplay,std::vector<PtPair>& list);
#else
Bool decode(InputNALUnit& nalu, Int& iSkipFrame, Int& iPOCLastDisplay);
#endif
 来自CODE的代码片
snippet_file_0.h
接下来,将m_plistPt传递到xDecodeSlice函数中,将decode函数中的xDecodeSlice(nalu, iSkipFrame, iPOCLastDisplay)修改成xDecodeSlice(nalu, iSkipFrame, iPOCLastDisplay,list);即将m_plistPt传递到xDecodeSlice函数中。同样地,需要修改相应的函数头,在TDecTop.cpp文件中,修改对应的函数头,按照下面方式修改:
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;"> 1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;"> 2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;"> 3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;"> 4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;"> 5</a>
#if statistics_mode
Bool TDecTop::xDecodeSlice(InputNALUnit &nalu, Int &iSkipFrame, Int iPOCLastDisplay,std::vector<PtPair>& list )
#else
Bool TDecTop::xDecodeSlice(InputNALUnit &nalu, Int &iSkipFrame, Int iPOCLastDisplay )
#endif
 来自CODE的代码片
snippet_file_0.cpp
在TDecTop.h中,按照下面方式替换DecodeSlice函数声明:
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;"> 1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;"> 2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;"> 3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;"> 4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;"> 5</a>
#if statistics_mode
Bool TDecTop::xDecodeSlice(InputNALUnit &nalu, Int &iSkipFrame, Int iPOCLastDisplay,std::vector<PtPair>& list );
#else
Bool xDecodeSlice(InputNALUnit &nalu, Int &iSkipFrame, Int iPOCLastDisplay);
#endif
 来自CODE的代码片
snippet_file_0.h
接下来,在xDecodeSlice函数中,将m_cGopDecoder.decompressSlice(nalu.m_Bitstream, pcPic);替换成如下代码:
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;"> 1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;"> 2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;"> 3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;"> 4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;"> 5</a><a target=_blank id="L6" href="http://blog.csdn.net/pc__wang/article/details/27225443#L6" rel="#L6" style="color: rgb(102, 102, 102); text-decoration: none;"> 6</a>
// Decode a picture
#if statistics_mode
m_cGopDecoder.decompressSlice(nalu.m_Bitstream, pcPic,list);
#else
m_cGopDecoder.decompressSlice(nalu.m_Bitstream, pcPic);
#endif
 来自CODE的代码片
snippet_file_0.cpp
不要忘了,修改对应的函数头和声明,按照下面方式修改:
在TDecTop.cpp文件中,
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;"> 1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;"> 2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;"> 3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;"> 4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;"> 5</a>
#if statistics_mode
Void TDecGop::decompressSlice(TComInputBitstream* pcBitstream, TComPic*& rpcPic, std::vector<PtPair>& list)
#else
Void TDecGop::decompressSlice(TComInputBitstream* pcBitstream, TComPic*& rpcPic)
#endif
 来自CODE的代码片
snippet_file_0.cpp
在TDecTop.h文件中,
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;"> 1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;"> 2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;"> 3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;"> 4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;"> 5</a>
#if statistics_mode
Void TDecGop::decompressSlice(TComInputBitstream* pcBitstream, TComPic*& rpcPic, std::vector<PtPair>& list);
#else
Void decompressSlice(TComInputBitstream* pcBitstream, TComPic*& rpcPic );
#endif
 来自CODE的代码片
snippet_file_0.h
在decompressSlice函数中,将m_pcSliceDecoder->decompressSlice( ppcSubstreams, rpcPic, m_pcSbacDecoder, m_pcSbacDecoders) 修改成如下代码:
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;"> 1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;"> 2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;"> 3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;"> 4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;"> 5</a>
#if statistics_mode
m_pcSliceDecoder->decompressSlice( ppcSubstreams, rpcPic, m_pcSbacDecoder, m_pcSbacDecoders, list);
#else
m_pcSliceDecoder->decompressSlice( ppcSubstreams, rpcPic, m_pcSbacDecoder, m_pcSbacDecoders);
#endif
 来自CODE的代码片
snippet_file_0.h
接着,修改相应的函数头函数声明:
在TDecSlice.cpp文件中,
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;"> 1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;"> 2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;"> 3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;"> 4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;"> 5</a>
#if statistics_mode
Void TDecSlice::decompressSlice(TComInputBitstream** ppcSubstreams, TComPic*& rpcPic, TDecSbac* pcSbacDecoder, TDecSbac* pcSbacDecoders, std::vector<PtPair>& list)
#else
Void TDecSlice::decompressSlice(TComInputBitstream** ppcSubstreams, TComPic*& rpcPic, TDecSbac* pcSbacDecoder, TDecSbac* pcSbacDecoders)
#endif
 来自CODE的代码片
snippet_file_0.h
在TDecSlice.h文件中,
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;"> 1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;"> 2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;"> 3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;"> 4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;"> 5</a>
#if statistics_mode
Void TDecSlice::decompressSlice(TComInputBitstream** ppcSubstreams, TComPic*& rpcPic, TDecSbac* pcSbacDecoder, TDecSbac* pcSbacDecoders, std::vector<PtPair>& list);
#else
Void decompressSlice ( TComInputBitstream** ppcSubstreams, TComPic*& rpcPic, TDecSbac* pcSbacDecoder, TDecSbac* pcSbacDecoders );
#endif
 来自CODE的代码片
snippet_file_0.h

接下来,将decompressSlice函数中的m_pcCuDecoder->decompressCU ( pcCU );修改成如下代码:
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;"> 1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;"> 2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;"> 3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;"> 4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;"> 5</a><a target=_blank id="L6" href="http://blog.csdn.net/pc__wang/article/details/27225443#L6" rel="#L6" style="color: rgb(102, 102, 102); text-decoration: none;"> 6</a><a target=_blank id="L7" href="http://blog.csdn.net/pc__wang/article/details/27225443#L7" rel="#L7" style="color: rgb(102, 102, 102); text-decoration: none;"> 7</a>
#if statistics_mode
m_pcCuDecoder->decodeCU ( pcCU, uiIsLast, list);
m_pcCuDecoder->decompressCU ( pcCU , list);
#else
m_pcCuDecoder->decodeCU ( pcCU, uiIsLast );
m_pcCuDecoder->decompressCU ( pcCU );
#endif
 来自CODE的代码片
snippet_file_0.cpp
当然,也有修改相应的函数头和函数声明:
在TDecCu.cpp文件中,
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;">  1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;">  2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;">  3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;">  4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;">  5</a><a target=_blank id="L6" href="http://blog.csdn.net/pc__wang/article/details/27225443#L6" rel="#L6" style="color: rgb(102, 102, 102); text-decoration: none;">  6</a><a target=_blank id="L7" href="http://blog.csdn.net/pc__wang/article/details/27225443#L7" rel="#L7" style="color: rgb(102, 102, 102); text-decoration: none;">  7</a><a target=_blank id="L8" href="http://blog.csdn.net/pc__wang/article/details/27225443#L8" rel="#L8" style="color: rgb(102, 102, 102); text-decoration: none;">  8</a><a target=_blank id="L9" href="http://blog.csdn.net/pc__wang/article/details/27225443#L9" rel="#L9" style="color: rgb(102, 102, 102); text-decoration: none;">  9</a><a target=_blank id="L10" href="http://blog.csdn.net/pc__wang/article/details/27225443#L10" rel="#L10" style="color: rgb(102, 102, 102); text-decoration: none;"> 10</a><a target=_blank id="L11" href="http://blog.csdn.net/pc__wang/article/details/27225443#L11" rel="#L11" style="color: rgb(102, 102, 102); text-decoration: none;"> 11</a><a target=_blank id="L12" href="http://blog.csdn.net/pc__wang/article/details/27225443#L12" rel="#L12" style="color: rgb(102, 102, 102); text-decoration: none;"> 12</a>
#if statistics_mode
Void TDecCu::decompressCU( TComDataCU* pcCU,std::vector<PtPair>& list )
#else
Void TDecCu::decompressCU( TComDataCU* pcCU )
#endif
{
#if statistics_mode
xDecompressCU( pcCU, 0, 0,list );
#else
xDecompressCU( pcCU, 0, 0);
#enif
}
 来自CODE的代码片
snippet_file_0.cpp
在TDecCu.h文件中,
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;">  1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;">  2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;">  3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;">  4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;">  5</a><a target=_blank id="L6" href="http://blog.csdn.net/pc__wang/article/details/27225443#L6" rel="#L6" style="color: rgb(102, 102, 102); text-decoration: none;">  6</a><a target=_blank id="L7" href="http://blog.csdn.net/pc__wang/article/details/27225443#L7" rel="#L7" style="color: rgb(102, 102, 102); text-decoration: none;">  7</a><a target=_blank id="L8" href="http://blog.csdn.net/pc__wang/article/details/27225443#L8" rel="#L8" style="color: rgb(102, 102, 102); text-decoration: none;">  8</a><a target=_blank id="L9" href="http://blog.csdn.net/pc__wang/article/details/27225443#L9" rel="#L9" style="color: rgb(102, 102, 102); text-decoration: none;">  9</a><a target=_blank id="L10" href="http://blog.csdn.net/pc__wang/article/details/27225443#L10" rel="#L10" style="color: rgb(102, 102, 102); text-decoration: none;"> 10</a><a target=_blank id="L11" href="http://blog.csdn.net/pc__wang/article/details/27225443#L11" rel="#L11" style="color: rgb(102, 102, 102); text-decoration: none;"> 11</a><a target=_blank id="L12" href="http://blog.csdn.net/pc__wang/article/details/27225443#L12" rel="#L12" style="color: rgb(102, 102, 102); text-decoration: none;"> 12</a>
/// reconstruct CU information
#if statistics_mode
Void decompressCU( TComDataCU* pcCU,std::vector<PtPair>& list );
#else
Void decompressCU ( TComDataCU* pcCU );
#endif
#if statistics_mode
Void xDecompressCU( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth,std::vector<PtPair>& list );
#else
Void xDecompressCU ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
#endif
 来自CODE的代码片
snippet_file_0.cpp

2.4 保存CU划分和mode选择结果

在xDecompressCU函数中,保存每一帧的CU划分结果及mode结果,在if( ( ( uiDepth < pcCU->getDepth( uiAbsPartIdx ) ) && ( uiDepth < g_uiMaxCUDepth - g_uiAddCUDepth ) ) || bBoundary )结束后,添加如下代码保存结果:
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;"> 1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;"> 2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;"> 3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;"> 4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;"> 5</a><a target=_blank id="L6" href="http://blog.csdn.net/pc__wang/article/details/27225443#L6" rel="#L6" style="color: rgb(102, 102, 102); text-decoration: none;"> 6</a><a target=_blank id="L7" href="http://blog.csdn.net/pc__wang/article/details/27225443#L7" rel="#L7" style="color: rgb(102, 102, 102); text-decoration: none;"> 7</a><a target=_blank id="L8" href="http://blog.csdn.net/pc__wang/article/details/27225443#L8" rel="#L8" style="color: rgb(102, 102, 102); text-decoration: none;"> 8</a>
//==================================================================================//
//==================================模式大小统计====================================//
//==================================================================================//
#if statistics_mode
struct PtPair tmp;
tmp._pt1x=uiLPelX; tmp._pt1y=uiTPelY; tmp._pt2x=uiRPelX; tmp._pt2y=uiBPelY;tmp.mode=*pcCU->getPartitionSize();
list.push_back(tmp);
#endif
 来自CODE的代码片
snippet_file_0.h
接着,修改xDecompressCU函数中的xDecompressCU函数递归调用,
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;"> 1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;"> 2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;"> 3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;"> 4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;"> 5</a><a target=_blank id="L6" href="http://blog.csdn.net/pc__wang/article/details/27225443#L6" rel="#L6" style="color: rgb(102, 102, 102); text-decoration: none;"> 6</a><a target=_blank id="L7" href="http://blog.csdn.net/pc__wang/article/details/27225443#L7" rel="#L7" style="color: rgb(102, 102, 102); text-decoration: none;"> 7</a><a target=_blank id="L8" href="http://blog.csdn.net/pc__wang/article/details/27225443#L8" rel="#L8" style="color: rgb(102, 102, 102); text-decoration: none;"> 8</a>
if(binSlice&&( uiLPelX < pcSlice->getSPS()->getPicWidthInLumaSamples() ) && ( uiTPelY < pcSlice->getSPS()->getPicHeightInLumaSamples() ) )
{
#if statistics_mode
xDecompressCU(pcCU, uiIdx, uiNextDepth,list );
#else
xDecompressCU(pcCU, uiIdx, uiNextDepth);
#endif
}
 来自CODE的代码片
snippet_file_0.cpp
到目前为止,数据保存完成。接下来,就是怎样把CU划分显示出来。

2.5 PU划分结果显示

在decode()函数中修改xFlushOutput和xWriteOutput函数调用,
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;">  1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;">  2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;">  3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;">  4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;">  5</a><a target=_blank id="L6" href="http://blog.csdn.net/pc__wang/article/details/27225443#L6" rel="#L6" style="color: rgb(102, 102, 102); text-decoration: none;">  6</a><a target=_blank id="L7" href="http://blog.csdn.net/pc__wang/article/details/27225443#L7" rel="#L7" style="color: rgb(102, 102, 102); text-decoration: none;">  7</a><a target=_blank id="L8" href="http://blog.csdn.net/pc__wang/article/details/27225443#L8" rel="#L8" style="color: rgb(102, 102, 102); text-decoration: none;">  8</a><a target=_blank id="L9" href="http://blog.csdn.net/pc__wang/article/details/27225443#L9" rel="#L9" style="color: rgb(102, 102, 102); text-decoration: none;">  9</a><a target=_blank id="L10" href="http://blog.csdn.net/pc__wang/article/details/27225443#L10" rel="#L10" style="color: rgb(102, 102, 102); text-decoration: none;"> 10</a><a target=_blank id="L11" href="http://blog.csdn.net/pc__wang/article/details/27225443#L11" rel="#L11" style="color: rgb(102, 102, 102); text-decoration: none;"> 11</a><a target=_blank id="L12" href="http://blog.csdn.net/pc__wang/article/details/27225443#L12" rel="#L12" style="color: rgb(102, 102, 102); text-decoration: none;"> 12</a><a target=_blank id="L13" href="http://blog.csdn.net/pc__wang/article/details/27225443#L13" rel="#L13" style="color: rgb(102, 102, 102); text-decoration: none;"> 13</a><a target=_blank id="L14" href="http://blog.csdn.net/pc__wang/article/details/27225443#L14" rel="#L14" style="color: rgb(102, 102, 102); text-decoration: none;"> 14</a><a target=_blank id="L15" href="http://blog.csdn.net/pc__wang/article/details/27225443#L15" rel="#L15" style="color: rgb(102, 102, 102); text-decoration: none;"> 15</a><a target=_blank id="L16" href="http://blog.csdn.net/pc__wang/article/details/27225443#L16" rel="#L16" style="color: rgb(102, 102, 102); text-decoration: none;"> 16</a><a target=_blank id="L17" href="http://blog.csdn.net/pc__wang/article/details/27225443#L17" rel="#L17" style="color: rgb(102, 102, 102); text-decoration: none;"> 17</a><a target=_blank id="L18" href="http://blog.csdn.net/pc__wang/article/details/27225443#L18" rel="#L18" style="color: rgb(102, 102, 102); text-decoration: none;"> 18</a><a target=_blank id="L19" href="http://blog.csdn.net/pc__wang/article/details/27225443#L19" rel="#L19" style="color: rgb(102, 102, 102); text-decoration: none;"> 19</a><a target=_blank id="L20" href="http://blog.csdn.net/pc__wang/article/details/27225443#L20" rel="#L20" style="color: rgb(102, 102, 102); text-decoration: none;"> 20</a><a target=_blank id="L21" href="http://blog.csdn.net/pc__wang/article/details/27225443#L21" rel="#L21" style="color: rgb(102, 102, 102); text-decoration: none;"> 21</a><a target=_blank id="L22" href="http://blog.csdn.net/pc__wang/article/details/27225443#L22" rel="#L22" style="color: rgb(102, 102, 102); text-decoration: none;"> 22</a><a target=_blank id="L23" href="http://blog.csdn.net/pc__wang/article/details/27225443#L23" rel="#L23" style="color: rgb(102, 102, 102); text-decoration: none;"> 23</a><a target=_blank id="L24" href="http://blog.csdn.net/pc__wang/article/details/27225443#L24" rel="#L24" style="color: rgb(102, 102, 102); text-decoration: none;"> 24</a><a target=_blank id="L25" href="http://blog.csdn.net/pc__wang/article/details/27225443#L25" rel="#L25" style="color: rgb(102, 102, 102); text-decoration: none;"> 25</a><a target=_blank id="L26" href="http://blog.csdn.net/pc__wang/article/details/27225443#L26" rel="#L26" style="color: rgb(102, 102, 102); text-decoration: none;"> 26</a><a target=_blank id="L27" href="http://blog.csdn.net/pc__wang/article/details/27225443#L27" rel="#L27" style="color: rgb(102, 102, 102); text-decoration: none;"> 27</a><a target=_blank id="L28" href="http://blog.csdn.net/pc__wang/article/details/27225443#L28" rel="#L28" style="color: rgb(102, 102, 102); text-decoration: none;"> 28</a>
#if statistics_mode
xFlushOutput( pcListPic,m_plistPt,flag );
#else
xFlushOutput( pcListPic);
#endif
#if statistics_mode
unsigned long temp=0;
for(int i=0;i<flag.size();i++)
{
temp +=flag[i];
}
if(flag.empty())
flag.push_back(m_plistPt.size());//保存每帧mode个数
else
flag.push_back(m_plistPt.size()-temp);//保存每帧mode个数
xWriteOutput( pcListPic, nalu.m_temporalId,m_plistPt,flag );
#else
xWriteOutput( pcListPic, nalu.m_temporalId);
#endif
#if statistics_mode
if(flag.empty())
flag.push_back(m_plistPt.size());
xFlushOutput( pcListPic,m_plistPt,flag );
#else
xFlushOutput( pcListPic);
#endif
 来自CODE的代码片
snippet_file_0.cpp
接着,修改xFlushOutput和xWriteOutput函数头和声明,
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;">  1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;">  2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;">  3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;">  4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;">  5</a><a target=_blank id="L6" href="http://blog.csdn.net/pc__wang/article/details/27225443#L6" rel="#L6" style="color: rgb(102, 102, 102); text-decoration: none;">  6</a><a target=_blank id="L7" href="http://blog.csdn.net/pc__wang/article/details/27225443#L7" rel="#L7" style="color: rgb(102, 102, 102); text-decoration: none;">  7</a><a target=_blank id="L8" href="http://blog.csdn.net/pc__wang/article/details/27225443#L8" rel="#L8" style="color: rgb(102, 102, 102); text-decoration: none;">  8</a><a target=_blank id="L9" href="http://blog.csdn.net/pc__wang/article/details/27225443#L9" rel="#L9" style="color: rgb(102, 102, 102); text-decoration: none;">  9</a><a target=_blank id="L10" href="http://blog.csdn.net/pc__wang/article/details/27225443#L10" rel="#L10" style="color: rgb(102, 102, 102); text-decoration: none;"> 10</a><a target=_blank id="L11" href="http://blog.csdn.net/pc__wang/article/details/27225443#L11" rel="#L11" style="color: rgb(102, 102, 102); text-decoration: none;"> 11</a><a target=_blank id="L12" href="http://blog.csdn.net/pc__wang/article/details/27225443#L12" rel="#L12" style="color: rgb(102, 102, 102); text-decoration: none;"> 12</a><a target=_blank id="L13" href="http://blog.csdn.net/pc__wang/article/details/27225443#L13" rel="#L13" style="color: rgb(102, 102, 102); text-decoration: none;"> 13</a><a target=_blank id="L14" href="http://blog.csdn.net/pc__wang/article/details/27225443#L14" rel="#L14" style="color: rgb(102, 102, 102); text-decoration: none;"> 14</a><a target=_blank id="L15" href="http://blog.csdn.net/pc__wang/article/details/27225443#L15" rel="#L15" style="color: rgb(102, 102, 102); text-decoration: none;"> 15</a><a target=_blank id="L16" href="http://blog.csdn.net/pc__wang/article/details/27225443#L16" rel="#L16" style="color: rgb(102, 102, 102); text-decoration: none;"> 16</a><a target=_blank id="L17" href="http://blog.csdn.net/pc__wang/article/details/27225443#L17" rel="#L17" style="color: rgb(102, 102, 102); text-decoration: none;"> 17</a><a target=_blank id="L18" href="http://blog.csdn.net/pc__wang/article/details/27225443#L18" rel="#L18" style="color: rgb(102, 102, 102); text-decoration: none;"> 18</a><a target=_blank id="L19" href="http://blog.csdn.net/pc__wang/article/details/27225443#L19" rel="#L19" style="color: rgb(102, 102, 102); text-decoration: none;"> 19</a><a target=_blank id="L20" href="http://blog.csdn.net/pc__wang/article/details/27225443#L20" rel="#L20" style="color: rgb(102, 102, 102); text-decoration: none;"> 20</a><a target=_blank id="L21" href="http://blog.csdn.net/pc__wang/article/details/27225443#L21" rel="#L21" style="color: rgb(102, 102, 102); text-decoration: none;"> 21</a>
//TAppDecTop.cpp中修改对应的函数头
#if statistics_mode
Void TAppDecTop::xWriteOutput( TComList<TComPic*>* pcListPic, UInt tId,std::vector<PtPair>& list,std::vector<int>& flag)
#else
Void TAppDecTop::xWriteOutput( TComList<TComPic*>* pcListPic, UInt tId)
#endif
#if statistics_mode
Void TAppDecTop::xFlushOutput( TComList<TComPic*>* pcListPic,std::vector<PtPair>& list,std::vector<int>& flag )
#else
Void TAppDecTop::xFlushOutput( TComList<TComPic*>* pcListPic )
#endif
//TAppDecTop.h中修改对应的函数声明
#if statistics_mode
Void TAppDecTop::xWriteOutput( TComList<TComPic*>* pcListPic, UInt tId,std::vector<PtPair>& list,std::vector<int>& flag);
Void TAppDecTop::xFlushOutput( TComList<TComPic*>* pcListPic,std::vector<PtPair>& list,std::vector<int>& flag );
#else
Void xWriteOutput ( TComList<TComPic*>* pcListPic , UInt tId); ///< write YUV to file
Void xFlushOutput ( TComList<TComPic*>* pcListPic ); ///< flush all remaining decoded pictures to file
#endif
 来自CODE的代码片
snippet_file_0.cpp
现在到了最后关头,也是最重要的一部分,贴出xWriteOutput和xFlushOutput函数全部代码,不想具体说了,对照代码修改吧!
<a target=_blank id="L1" href="http://blog.csdn.net/pc__wang/article/details/27225443#L1" rel="#L1" style="color: rgb(102, 102, 102); text-decoration: none;">   1</a><a target=_blank id="L2" href="http://blog.csdn.net/pc__wang/article/details/27225443#L2" rel="#L2" style="color: rgb(102, 102, 102); text-decoration: none;">   2</a><a target=_blank id="L3" href="http://blog.csdn.net/pc__wang/article/details/27225443#L3" rel="#L3" style="color: rgb(102, 102, 102); text-decoration: none;">   3</a><a target=_blank id="L4" href="http://blog.csdn.net/pc__wang/article/details/27225443#L4" rel="#L4" style="color: rgb(102, 102, 102); text-decoration: none;">   4</a><a target=_blank id="L5" href="http://blog.csdn.net/pc__wang/article/details/27225443#L5" rel="#L5" style="color: rgb(102, 102, 102); text-decoration: none;">   5</a><a target=_blank id="L6" href="http://blog.csdn.net/pc__wang/article/details/27225443#L6" rel="#L6" style="color: rgb(102, 102, 102); text-decoration: none;">   6</a><a target=_blank id="L7" href="http://blog.csdn.net/pc__wang/article/details/27225443#L7" rel="#L7" style="color: rgb(102, 102, 102); text-decoration: none;">   7</a><a target=_blank id="L8" href="http://blog.csdn.net/pc__wang/article/details/27225443#L8" rel="#L8" style="color: rgb(102, 102, 102); text-decoration: none;">   8</a><a target=_blank id="L9" href="http://blog.csdn.net/pc__wang/article/details/27225443#L9" rel="#L9" style="color: rgb(102, 102, 102); text-decoration: none;">   9</a><a target=_blank id="L10" href="http://blog.csdn.net/pc__wang/article/details/27225443#L10" rel="#L10" style="color: rgb(102, 102, 102); text-decoration: none;">  10</a><a target=_blank id="L11" href="http://blog.csdn.net/pc__wang/article/details/27225443#L11" rel="#L11" style="color: rgb(102, 102, 102); text-decoration: none;">  11</a><a target=_blank id="L12" href="http://blog.csdn.net/pc__wang/article/details/27225443#L12" rel="#L12" style="color: rgb(102, 102, 102); text-decoration: none;">  12</a><a target=_blank id="L13" href="http://blog.csdn.net/pc__wang/article/details/27225443#L13" rel="#L13" style="color: rgb(102, 102, 102); text-decoration: none;">  13</a><a target=_blank id="L14" href="http://blog.csdn.net/pc__wang/article/details/27225443#L14" rel="#L14" style="color: rgb(102, 102, 102); text-decoration: none;">  14</a><a target=_blank id="L15" href="http://blog.csdn.net/pc__wang/article/details/27225443#L15" rel="#L15" style="color: rgb(102, 102, 102); text-decoration: none;">  15</a><a target=_blank id="L16" href="http://blog.csdn.net/pc__wang/article/details/27225443#L16" rel="#L16" style="color: rgb(102, 102, 102); text-decoration: none;">  16</a><a target=_blank id="L17" href="http://blog.csdn.net/pc__wang/article/details/27225443#L17" rel="#L17" style="color: rgb(102, 102, 102); text-decoration: none;">  17</a><a target=_blank id="L18" href="http://blog.csdn.net/pc__wang/article/details/27225443#L18" rel="#L18" style="color: rgb(102, 102, 102); text-decoration: none;">  18</a><a target=_blank id="L19" href="http://blog.csdn.net/pc__wang/article/details/27225443#L19" rel="#L19" style="color: rgb(102, 102, 102); text-decoration: none;">  19</a><a target=_blank id="L20" href="http://blog.csdn.net/pc__wang/article/details/27225443#L20" rel="#L20" style="color: rgb(102, 102, 102); text-decoration: none;">  20</a><a target=_blank id="L21" href="http://blog.csdn.net/pc__wang/article/details/27225443#L21" rel="#L21" style="color: rgb(102, 102, 102); text-decoration: none;">  21</a><a target=_blank id="L22" href="http://blog.csdn.net/pc__wang/article/details/27225443#L22" rel="#L22" style="color: rgb(102, 102, 102); text-decoration: none;">  22</a><a target=_blank id="L23" href="http://blog.csdn.net/pc__wang/article/details/27225443#L23" rel="#L23" style="color: rgb(102, 102, 102); text-decoration: none;">  23</a><a target=_blank id="L24" href="http://blog.csdn.net/pc__wang/article/details/27225443#L24" rel="#L24" style="color: rgb(102, 102, 102); text-decoration: none;">  24</a><a target=_blank id="L25" href="http://blog.csdn.net/pc__wang/article/details/27225443#L25" rel="#L25" style="color: rgb(102, 102, 102); text-decoration: none;">  25</a><a target=_blank id="L26" href="http://blog.csdn.net/pc__wang/article/details/27225443#L26" rel="#L26" style="color: rgb(102, 102, 102); text-decoration: none;">  26</a><a target=_blank id="L27" href="http://blog.csdn.net/pc__wang/article/details/27225443#L27" rel="#L27" style="color: rgb(102, 102, 102); text-decoration: none;">  27</a><a target=_blank id="L28" href="http://blog.csdn.net/pc__wang/article/details/27225443#L28" rel="#L28" style="color: rgb(102, 102, 102); text-decoration: none;">  28</a><a target=_blank id="L29" href="http://blog.csdn.net/pc__wang/article/details/27225443#L29" rel="#L29" style="color: rgb(102, 102, 102); text-decoration: none;">  29</a><a target=_blank id="L30" href="http://blog.csdn.net/pc__wang/article/details/27225443#L30" rel="#L30" style="color: rgb(102, 102, 102); text-decoration: none;">  30</a><a target=_blank id="L31" href="http://blog.csdn.net/pc__wang/article/details/27225443#L31" rel="#L31" style="color: rgb(102, 102, 102); text-decoration: none;">  31</a><a target=_blank id="L32" href="http://blog.csdn.net/pc__wang/article/details/27225443#L32" rel="#L32" style="color: rgb(102, 102, 102); text-decoration: none;">  32</a><a target=_blank id="L33" href="http://blog.csdn.net/pc__wang/article/details/27225443#L33" rel="#L33" style="color: rgb(102, 102, 102); text-decoration: none;">  33</a><a target=_blank id="L34" href="http://blog.csdn.net/pc__wang/article/details/27225443#L34" rel="#L34" style="color: rgb(102, 102, 102); text-decoration: none;">  34</a><a target=_blank id="L35" href="http://blog.csdn.net/pc__wang/article/details/27225443#L35" rel="#L35" style="color: rgb(102, 102, 102); text-decoration: none;">  35</a><a target=_blank id="L36" href="http://blog.csdn.net/pc__wang/article/details/27225443#L36" rel="#L36" style="color: rgb(102, 102, 102); text-decoration: none;">  36</a><a target=_blank id="L37" href="http://blog.csdn.net/pc__wang/article/details/27225443#L37" rel="#L37" style="color: rgb(102, 102, 102); text-decoration: none;">  37</a><a target=_blank id="L38" href="http://blog.csdn.net/pc__wang/article/details/27225443#L38" rel="#L38" style="color: rgb(102, 102, 102); text-decoration: none;">  38</a><a target=_blank id="L39" href="http://blog.csdn.net/pc__wang/article/details/27225443#L39" rel="#L39" style="color: rgb(102, 102, 102); text-decoration: none;">  39</a><a target=_blank id="L40" href="http://blog.csdn.net/pc__wang/article/details/27225443#L40" rel="#L40" style="color: rgb(102, 102, 102); text-decoration: none;">  40</a><a target=_blank id="L41" href="http://blog.csdn.net/pc__wang/article/details/27225443#L41" rel="#L41" style="color: rgb(102, 102, 102); text-decoration: none;">  41</a><a target=_blank id="L42" href="http://blog.csdn.net/pc__wang/article/details/27225443#L42" rel="#L42" style="color: rgb(102, 102, 102); text-decoration: none;">  42</a><a target=_blank id="L43" href="http://blog.csdn.net/pc__wang/article/details/27225443#L43" rel="#L43" style="color: rgb(102, 102, 102); text-decoration: none;">  43</a><a target=_blank id="L44" href="http://blog.csdn.net/pc__wang/article/details/27225443#L44" rel="#L44" style="color: rgb(102, 102, 102); text-decoration: none;">  44</a><a target=_blank id="L45" href="http://blog.csdn.net/pc__wang/article/details/27225443#L45" rel="#L45" style="color: rgb(102, 102, 102); text-decoration: none;">  45</a><a target=_blank id="L46" href="http://blog.csdn.net/pc__wang/article/details/27225443#L46" rel="#L46" style="color: rgb(102, 102, 102); text-decoration: none;">  46</a><a target=_blank id="L47" href="http://blog.csdn.net/pc__wang/article/details/27225443#L47" rel="#L47" style="color: rgb(102, 102, 102); text-decoration: none;">  47</a><a target=_blank id="L48" href="http://blog.csdn.net/pc__wang/article/details/27225443#L48" rel="#L48" style="color: rgb(102, 102, 102); text-decoration: none;">  48</a><a target=_blank id="L49" href="http://blog.csdn.net/pc__wang/article/details/27225443#L49" rel="#L49" style="color: rgb(102, 102, 102); text-decoration: none;">  49</a><a target=_blank id="L50" href="http://blog.csdn.net/pc__wang/article/details/27225443#L50" rel="#L50" style="color: rgb(102, 102, 102); text-decoration: none;">  50</a><a target=_blank id="L51" href="http://blog.csdn.net/pc__wang/article/details/27225443#L51" rel="#L51" style="color: rgb(102, 102, 102); text-decoration: none;">  51</a><a target=_blank id="L52" href="http://blog.csdn.net/pc__wang/article/details/27225443#L52" rel="#L52" style="color: rgb(102, 102, 102); text-decoration: none;">  52</a><a target=_blank id="L53" href="http://blog.csdn.net/pc__wang/article/details/27225443#L53" rel="#L53" style="color: rgb(102, 102, 102); text-decoration: none;">  53</a><a target=_blank id="L54" href="http://blog.csdn.net/pc__wang/article/details/27225443#L54" rel="#L54" style="color: rgb(102, 102, 102); text-decoration: none;">  54</a><a target=_blank id="L55" href="http://blog.csdn.net/pc__wang/article/details/27225443#L55" rel="#L55" style="color: rgb(102, 102, 102); text-decoration: none;">  55</a><a target=_blank id="L56" href="http://blog.csdn.net/pc__wang/article/details/27225443#L56" rel="#L56" style="color: rgb(102, 102, 102); text-decoration: none;">  56</a><a target=_blank id="L57" href="http://blog.csdn.net/pc__wang/article/details/27225443#L57" rel="#L57" style="color: rgb(102, 102, 102); text-decoration: none;">  57</a><a target=_blank id="L58" href="http://blog.csdn.net/pc__wang/article/details/27225443#L58" rel="#L58" style="color: rgb(102, 102, 102); text-decoration: none;">  58</a><a target=_blank id="L59" href="http://blog.csdn.net/pc__wang/article/details/27225443#L59" rel="#L59" style="color: rgb(102, 102, 102); text-decoration: none;">  59</a><a target=_blank id="L60" href="http://blog.csdn.net/pc__wang/article/details/27225443#L60" rel="#L60" style="color: rgb(102, 102, 102); text-decoration: none;">  60</a><a target=_blank id="L61" href="http://blog.csdn.net/pc__wang/article/details/27225443#L61" rel="#L61" style="color: rgb(102, 102, 102); text-decoration: none;">  61</a><a target=_blank id="L62" href="http://blog.csdn.net/pc__wang/article/details/27225443#L62" rel="#L62" style="color: rgb(102, 102, 102); text-decoration: none;">  62</a><a target=_blank id="L63" href="http://blog.csdn.net/pc__wang/article/details/27225443#L63" rel="#L63" style="color: rgb(102, 102, 102); text-decoration: none;">  63</a><a target=_blank id="L64" href="http://blog.csdn.net/pc__wang/article/details/27225443#L64" rel="#L64" style="color: rgb(102, 102, 102); text-decoration: none;">  64</a><a target=_blank id="L65" href="http://blog.csdn.net/pc__wang/article/details/27225443#L65" rel="#L65" style="color: rgb(102, 102, 102); text-decoration: none;">  65</a><a target=_blank id="L66" href="http://blog.csdn.net/pc__wang/article/details/27225443#L66" rel="#L66" style="color: rgb(102, 102, 102); text-decoration: none;">  66</a><a target=_blank id="L67" href="http://blog.csdn.net/pc__wang/article/details/27225443#L67" rel="#L67" style="color: rgb(102, 102, 102); text-decoration: none;">  67</a><a target=_blank id="L68" href="http://blog.csdn.net/pc__wang/article/details/27225443#L68" rel="#L68" style="color: rgb(102, 102, 102); text-decoration: none;">  68</a><a target=_blank id="L69" href="http://blog.csdn.net/pc__wang/article/details/27225443#L69" rel="#L69" style="color: rgb(102, 102, 102); text-decoration: none;">  69</a><a target=_blank id="L70" href="http://blog.csdn.net/pc__wang/article/details/27225443#L70" rel="#L70" style="color: rgb(102, 102, 102); text-decoration: none;">  70</a><a target=_blank id="L71" href="http://blog.csdn.net/pc__wang/article/details/27225443#L71" rel="#L71" style="color: rgb(102, 102, 102); text-decoration: none;">  71</a><a target=_blank id="L72" href="http://blog.csdn.net/pc__wang/article/details/27225443#L72" rel="#L72" style="color: rgb(102, 102, 102); text-decoration: none;">  72</a><a target=_blank id="L73" href="http://blog.csdn.net/pc__wang/article/details/27225443#L73" rel="#L73" style="color: rgb(102, 102, 102); text-decoration: none;">  73</a><a target=_blank id="L74" href="http://blog.csdn.net/pc__wang/article/details/27225443#L74" rel="#L74" style="color: rgb(102, 102, 102); text-decoration: none;">  74</a><a target=_blank id="L75" href="http://blog.csdn.net/pc__wang/article/details/27225443#L75" rel="#L75" style="color: rgb(102, 102, 102); text-decoration: none;">  75</a><a target=_blank id="L76" href="http://blog.csdn.net/pc__wang/article/details/27225443#L76" rel="#L76" style="color: rgb(102, 102, 102); text-decoration: none;">  76</a><a target=_blank id="L77" href="http://blog.csdn.net/pc__wang/article/details/27225443#L77" rel="#L77" style="color: rgb(102, 102, 102); text-decoration: none;">  77</a><a target=_blank id="L78" href="http://blog.csdn.net/pc__wang/article/details/27225443#L78" rel="#L78" style="color: rgb(102, 102, 102); text-decoration: none;">  78</a><a target=_blank id="L79" href="http://blog.csdn.net/pc__wang/article/details/27225443#L79" rel="#L79" style="color: rgb(102, 102, 102); text-decoration: none;">  79</a><a target=_blank id="L80" href="http://blog.csdn.net/pc__wang/article/details/27225443#L80" rel="#L80" style="color: rgb(102, 102, 102); text-decoration: none;">  80</a><a target=_blank id="L81" href="http://blog.csdn.net/pc__wang/article/details/27225443#L81" rel="#L81" style="color: rgb(102, 102, 102); text-decoration: none;">  81</a><a target=_blank id="L82" href="http://blog.csdn.net/pc__wang/article/details/27225443#L82" rel="#L82" style="color: rgb(102, 102, 102); text-decoration: none;">  82</a><a target=_blank id="L83" href="http://blog.csdn.net/pc__wang/article/details/27225443#L83" rel="#L83" style="color: rgb(102, 102, 102); text-decoration: none;">  83</a><a target=_blank id="L84" href="http://blog.csdn.net/pc__wang/article/details/27225443#L84" rel="#L84" style="color: rgb(102, 102, 102); text-decoration: none;">  84</a><a target=_blank id="L85" href="http://blog.csdn.net/pc__wang/article/details/27225443#L85" rel="#L85" style="color: rgb(102, 102, 102); text-decoration: none;">  85</a><a target=_blank id="L86" href="http://blog.csdn.net/pc__wang/article/details/27225443#L86" rel="#L86" style="color: rgb(102, 102, 102); text-decoration: none;">  86</a><a target=_blank id="L87" href="http://blog.csdn.net/pc__wang/article/details/27225443#L87" rel="#L87" style="color: rgb(102, 102, 102); text-decoration: none;">  87</a><a target=_blank id="L88" href="http://blog.csdn.net/pc__wang/article/details/27225443#L88" rel="#L88" style="color: rgb(102, 102, 102); text-decoration: none;">  88</a><a target=_blank id="L89" href="http://blog.csdn.net/pc__wang/article/details/27225443#L89" rel="#L89" style="color: rgb(102, 102, 102); text-decoration: none;">  89</a><a target=_blank id="L90" href="http://blog.csdn.net/pc__wang/article/details/27225443#L90" rel="#L90" style="color: rgb(102, 102, 102); text-decoration: none;">  90</a><a target=_blank id="L91" href="http://blog.csdn.net/pc__wang/article/details/27225443#L91" rel="#L91" style="color: rgb(102, 102, 102); text-decoration: none;">  91</a><a target=_blank id="L92" href="http://blog.csdn.net/pc__wang/article/details/27225443#L92" rel="#L92" style="color: rgb(102, 102, 102); text-decoration: none;">  92</a><a target=_blank id="L93" href="http://blog.csdn.net/pc__wang/article/details/27225443#L93" rel="#L93" style="color: rgb(102, 102, 102); text-decoration: none;">  93</a><a target=_blank id="L94" href="http://blog.csdn.net/pc__wang/article/details/27225443#L94" rel="#L94" style="color: rgb(102, 102, 102); text-decoration: none;">  94</a><a target=_blank id="L95" href="http://blog.csdn.net/pc__wang/article/details/27225443#L95" rel="#L95" style="color: rgb(102, 102, 102); text-decoration: none;">  95</a><a target=_blank id="L96" href="http://blog.csdn.net/pc__wang/article/details/27225443#L96" rel="#L96" style="color: rgb(102, 102, 102); text-decoration: none;">  96</a><a target=_blank id="L97" href="http://blog.csdn.net/pc__wang/article/details/27225443#L97" rel="#L97" style="color: rgb(102, 102, 102); text-decoration: none;">  97</a><a target=_blank id="L98" href="http://blog.csdn.net/pc__wang/article/details/27225443#L98" rel="#L98" style="color: rgb(102, 102, 102); text-decoration: none;">  98</a><a target=_blank id="L99" href="http://blog.csdn.net/pc__wang/article/details/27225443#L99" rel="#L99" style="color: rgb(102, 102, 102); text-decoration: none;">  99</a><a target=_blank id="L100" href="http://blog.csdn.net/pc__wang/article/details/27225443#L100" rel="#L100" style="color: rgb(102, 102, 102); text-decoration: none;"> 100</a><a target=_blank id="L101" href="http://blog.csdn.net/pc__wang/article/details/27225443#L101" rel="#L101" style="color: rgb(102, 102, 102); text-decoration: none;"> 101</a><a target=_blank id="L102" href="http://blog.csdn.net/pc__wang/article/details/27225443#L102" rel="#L102" style="color: rgb(102, 102, 102); text-decoration: none;"> 102</a><a target=_blank id="L103" href="http://blog.csdn.net/pc__wang/article/details/27225443#L103" rel="#L103" style="color: rgb(102, 102, 102); text-decoration: none;"> 103</a><a target=_blank id="L104" href="http://blog.csdn.net/pc__wang/article/details/27225443#L104" rel="#L104" style="color: rgb(102, 102, 102); text-decoration: none;"> 104</a><a target=_blank id="L105" href="http://blog.csdn.net/pc__wang/article/details/27225443#L105" rel="#L105" style="color: rgb(102, 102, 102); text-decoration: none;"> 105</a><a target=_blank id="L106" href="http://blog.csdn.net/pc__wang/article/details/27225443#L106" rel="#L106" style="color: rgb(102, 102, 102); text-decoration: none;"> 106</a><a target=_blank id="L107" href="http://blog.csdn.net/pc__wang/article/details/27225443#L107" rel="#L107" style="color: rgb(102, 102, 102); text-decoration: none;"> 107</a><a target=_blank id="L108" href="http://blog.csdn.net/pc__wang/article/details/27225443#L108" rel="#L108" style="color: rgb(102, 102, 102); text-decoration: none;"> 108</a><a target=_blank id="L109" href="http://blog.csdn.net/pc__wang/article/details/27225443#L109" rel="#L109" style="color: rgb(102, 102, 102); text-decoration: none;"> 109</a><a target=_blank id="L110" href="http://blog.csdn.net/pc__wang/article/details/27225443#L110" rel="#L110" style="color: rgb(102, 102, 102); text-decoration: none;"> 110</a><a target=_blank id="L111" href="http://blog.csdn.net/pc__wang/article/details/27225443#L111" rel="#L111" style="color: rgb(102, 102, 102); text-decoration: none;"> 111</a><a target=_blank id="L112" href="http://blog.csdn.net/pc__wang/article/details/27225443#L112" rel="#L112" style="color: rgb(102, 102, 102); text-decoration: none;"> 112</a><a target=_blank id="L113" href="http://blog.csdn.net/pc__wang/article/details/27225443#L113" rel="#L113" style="color: rgb(102, 102, 102); text-decoration: none;"> 113</a><a target=_blank id="L114" href="http://blog.csdn.net/pc__wang/article/details/27225443#L114" rel="#L114" style="color: rgb(102, 102, 102); text-decoration: none;"> 114</a><a target=_blank id="L115" href="http://blog.csdn.net/pc__wang/article/details/27225443#L115" rel="#L115" style="color: rgb(102, 102, 102); text-decoration: none;"> 115</a><a target=_blank id="L116" href="http://blog.csdn.net/pc__wang/article/details/27225443#L116" rel="#L116" style="color: rgb(102, 102, 102); text-decoration: none;"> 116</a><a target=_blank id="L117" href="http://blog.csdn.net/pc__wang/article/details/27225443#L117" rel="#L117" style="color: rgb(102, 102, 102); text-decoration: none;"> 117</a><a target=_blank id="L118" href="http://blog.csdn.net/pc__wang/article/details/27225443#L118" rel="#L118" style="color: rgb(102, 102, 102); text-decoration: none;"> 118</a><a target=_blank id="L119" href="http://blog.csdn.net/pc__wang/article/details/27225443#L119" rel="#L119" style="color: rgb(102, 102, 102); text-decoration: none;"> 119</a><a target=_blank id="L120" href="http://blog.csdn.net/pc__wang/article/details/27225443#L120" rel="#L120" style="color: rgb(102, 102, 102); text-decoration: none;"> 120</a><a target=_blank id="L121" href="http://blog.csdn.net/pc__wang/article/details/27225443#L121" rel="#L121" style="color: rgb(102, 102, 102); text-decoration: none;"> 121</a><a target=_blank id="L122" href="http://blog.csdn.net/pc__wang/article/details/27225443#L122" rel="#L122" style="color: rgb(102, 102, 102); text-decoration: none;"> 122</a><a target=_blank id="L123" href="http://blog.csdn.net/pc__wang/article/details/27225443#L123" rel="#L123" style="color: rgb(102, 102, 102); text-decoration: none;"> 123</a><a target=_blank id="L124" href="http://blog.csdn.net/pc__wang/article/details/27225443#L124" rel="#L124" style="color: rgb(102, 102, 102); text-decoration: none;"> 124</a><a target=_blank id="L125" href="http://blog.csdn.net/pc__wang/article/details/27225443#L125" rel="#L125" style="color: rgb(102, 102, 102); text-decoration: none;"> 125</a><a target=_blank id="L126" href="http://blog.csdn.net/pc__wang/article/details/27225443#L126" rel="#L126" style="color: rgb(102, 102, 102); text-decoration: none;"> 126</a><a target=_blank id="L127" href="http://blog.csdn.net/pc__wang/article/details/27225443#L127" rel="#L127" style="color: rgb(102, 102, 102); text-decoration: none;"> 127</a><a target=_blank id="L128" href="http://blog.csdn.net/pc__wang/article/details/27225443#L128" rel="#L128" style="color: rgb(102, 102, 102); text-decoration: none;"> 128</a><a target=_blank id="L129" href="http://blog.csdn.net/pc__wang/article/details/27225443#L129" rel="#L129" style="color: rgb(102, 102, 102); text-decoration: none;"> 129</a><a target=_blank id="L130" href="http://blog.csdn.net/pc__wang/article/details/27225443#L130" rel="#L130" style="color: rgb(102, 102, 102); text-decoration: none;"> 130</a><a target=_blank id="L131" href="http://blog.csdn.net/pc__wang/article/details/27225443#L131" rel="#L131" style="color: rgb(102, 102, 102); text-decoration: none;"> 131</a><a target=_blank id="L132" href="http://blog.csdn.net/pc__wang/article/details/27225443#L132" rel="#L132" style="color: rgb(102, 102, 102); text-decoration: none;"> 132</a><a target=_blank id="L133" href="http://blog.csdn.net/pc__wang/article/details/27225443#L133" rel="#L133" style="color: rgb(102, 102, 102); text-decoration: none;"> 133</a><a target=_blank id="L134" href="http://blog.csdn.net/pc__wang/article/details/27225443#L134" rel="#L134" style="color: rgb(102, 102, 102); text-decoration: none;"> 134</a><a target=_blank id="L135" href="http://blog.csdn.net/pc__wang/article/details/27225443#L135" rel="#L135" style="color: rgb(102, 102, 102); text-decoration: none;"> 135</a><a target=_blank id="L136" href="http://blog.csdn.net/pc__wang/article/details/27225443#L136" rel="#L136" style="color: rgb(102, 102, 102); text-decoration: none;"> 136</a><a target=_blank id="L137" href="http://blog.csdn.net/pc__wang/article/details/27225443#L137" rel="#L137" style="color: rgb(102, 102, 102); text-decoration: none;"> 137</a><a target=_blank id="L138" href="http://blog.csdn.net/pc__wang/article/details/27225443#L138" rel="#L138" style="color: rgb(102, 102, 102); text-decoration: none;"> 138</a><a target=_blank id="L139" href="http://blog.csdn.net/pc__wang/article/details/27225443#L139" rel="#L139" style="color: rgb(102, 102, 102); text-decoration: none;"> 139</a><a target=_blank id="L140" href="http://blog.csdn.net/pc__wang/article/details/27225443#L140" rel="#L140" style="color: rgb(102, 102, 102); text-decoration: none;"> 140</a><a target=_blank id="L141" href="http://blog.csdn.net/pc__wang/article/details/27225443#L141" rel="#L141" style="color: rgb(102, 102, 102); text-decoration: none;"> 141</a><a target=_blank id="L142" href="http://blog.csdn.net/pc__wang/article/details/27225443#L142" rel="#L142" style="color: rgb(102, 102, 102); text-decoration: none;"> 142</a><a target=_blank id="L143" href="http://blog.csdn.net/pc__wang/article/details/27225443#L143" rel="#L143" style="color: rgb(102, 102, 102); text-decoration: none;"> 143</a><a target=_blank id="L144" href="http://blog.csdn.net/pc__wang/article/details/27225443#L144" rel="#L144" style="color: rgb(102, 102, 102); text-decoration: none;"> 144</a><a target=_blank id="L145" href="http://blog.csdn.net/pc__wang/article/details/27225443#L145" rel="#L145" style="color: rgb(102, 102, 102); text-decoration: none;"> 145</a><a target=_blank id="L146" href="http://blog.csdn.net/pc__wang/article/details/27225443#L146" rel="#L146" style="color: rgb(102, 102, 102); text-decoration: none;"> 146</a><a target=_blank id="L147" href="http://blog.csdn.net/pc__wang/article/details/27225443#L147" rel="#L147" style="color: rgb(102, 102, 102); text-decoration: none;"> 147</a><a target=_blank id="L148" href="http://blog.csdn.net/pc__wang/article/details/27225443#L148" rel="#L148" style="color: rgb(102, 102, 102); text-decoration: none;"> 148</a><a target=_blank id="L149" href="http://blog.csdn.net/pc__wang/article/details/27225443#L149" rel="#L149" style="color: rgb(102, 102, 102); text-decoration: none;"> 149</a><a target=_blank id="L150" href="http://blog.csdn.net/pc__wang/article/details/27225443#L150" rel="#L150" style="color: rgb(102, 102, 102); text-decoration: none;"> 150</a><a target=_blank id="L151" href="http://blog.csdn.net/pc__wang/article/details/27225443#L151" rel="#L151" style="color: rgb(102, 102, 102); text-decoration: none;"> 151</a><a target=_blank id="L152" href="http://blog.csdn.net/pc__wang/article/details/27225443#L152" rel="#L152" style="color: rgb(102, 102, 102); text-decoration: none;"> 152</a><a target=_blank id="L153" href="http://blog.csdn.net/pc__wang/article/details/27225443#L153" rel="#L153" style="color: rgb(102, 102, 102); text-decoration: none;"> 153</a><a target=_blank id="L154" href="http://blog.csdn.net/pc__wang/article/details/27225443#L154" rel="#L154" style="color: rgb(102, 102, 102); text-decoration: none;"> 154</a><a target=_blank id="L155" href="http://blog.csdn.net/pc__wang/article/details/27225443#L155" rel="#L155" style="color: rgb(102, 102, 102); text-decoration: none;"> 155</a><a target=_blank id="L156" href="http://blog.csdn.net/pc__wang/article/details/27225443#L156" rel="#L156" style="color: rgb(102, 102, 102); text-decoration: none;"> 156</a><a target=_blank id="L157" href="http://blog.csdn.net/pc__wang/article/details/27225443#L157" rel="#L157" style="color: rgb(102, 102, 102); text-decoration: none;"> 157</a><a target=_blank id="L158" href="http://blog.csdn.net/pc__wang/article/details/27225443#L158" rel="#L158" style="color: rgb(102, 102, 102); text-decoration: none;"> 158</a><a target=_blank id="L159" href="http://blog.csdn.net/pc__wang/article/details/27225443#L159" rel="#L159" style="color: rgb(102, 102, 102); text-decoration: none;"> 159</a><a target=_blank id="L160" href="http://blog.csdn.net/pc__wang/article/details/27225443#L160" rel="#L160" style="color: rgb(102, 102, 102); text-decoration: none;"> 160</a><a target=_blank id="L161" href="http://blog.csdn.net/pc__wang/article/details/27225443#L161" rel="#L161" style="color: rgb(102, 102, 102); text-decoration: none;"> 161</a><a target=_blank id="L162" href="http://blog.csdn.net/pc__wang/article/details/27225443#L162" rel="#L162" style="color: rgb(102, 102, 102); text-decoration: none;"> 162</a><a target=_blank id="L163" href="http://blog.csdn.net/pc__wang/article/details/27225443#L163" rel="#L163" style="color: rgb(102, 102, 102); text-decoration: none;"> 163</a><a target=_blank id="L164" href="http://blog.csdn.net/pc__wang/article/details/27225443#L164" rel="#L164" style="color: rgb(102, 102, 102); text-decoration: none;"> 164</a><a target=_blank id="L165" href="http://blog.csdn.net/pc__wang/article/details/27225443#L165" rel="#L165" style="color: rgb(102, 102, 102); text-decoration: none;"> 165</a><a target=_blank id="L166" href="http://blog.csdn.net/pc__wang/article/details/27225443#L166" rel="#L166" style="color: rgb(102, 102, 102); text-decoration: none;"> 166</a><a target=_blank id="L167" href="http://blog.csdn.net/pc__wang/article/details/27225443#L167" rel="#L167" style="color: rgb(102, 102, 102); text-decoration: none;"> 167</a><a target=_blank id="L168" href="http://blog.csdn.net/pc__wang/article/details/27225443#L168" rel="#L168" style="color: rgb(102, 102, 102); text-decoration: none;"> 168</a><a target=_blank id="L169" href="http://blog.csdn.net/pc__wang/article/details/27225443#L169" rel="#L169" style="color: rgb(102, 102, 102); text-decoration: none;"> 169</a><a target=_blank id="L170" href="http://blog.csdn.net/pc__wang/article/details/27225443#L170" rel="#L170" style="color: rgb(102, 102, 102); text-decoration: none;"> 170</a><a target=_blank id="L171" href="http://blog.csdn.net/pc__wang/article/details/27225443#L171" rel="#L171" style="color: rgb(102, 102, 102); text-decoration: none;"> 171</a><a target=_blank id="L172" href="http://blog.csdn.net/pc__wang/article/details/27225443#L172" rel="#L172" style="color: rgb(102, 102, 102); text-decoration: none;"> 172</a><a target=_blank id="L173" href="http://blog.csdn.net/pc__wang/article/details/27225443#L173" rel="#L173" style="color: rgb(102, 102, 102); text-decoration: none;"> 173</a><a target=_blank id="L174" href="http://blog.csdn.net/pc__wang/article/details/27225443#L174" rel="#L174" style="color: rgb(102, 102, 102); text-decoration: none;"> 174</a><a target=_blank id="L175" href="http://blog.csdn.net/pc__wang/article/details/27225443#L175" rel="#L175" style="color: rgb(102, 102, 102); text-decoration: none;"> 175</a><a target=_blank id="L176" href="http://blog.csdn.net/pc__wang/article/details/27225443#L176" rel="#L176" style="color: rgb(102, 102, 102); text-decoration: none;"> 176</a><a target=_blank id="L177" href="http://blog.csdn.net/pc__wang/article/details/27225443#L177" rel="#L177" style="color: rgb(102, 102, 102); text-decoration: none;"> 177</a><a target=_blank id="L178" href="http://blog.csdn.net/pc__wang/article/details/27225443#L178" rel="#L178" style="color: rgb(102, 102, 102); text-decoration: none;"> 178</a><a target=_blank id="L179" href="http://blog.csdn.net/pc__wang/article/details/27225443#L179" rel="#L179" style="color: rgb(102, 102, 102); text-decoration: none;"> 179</a><a target=_blank id="L180" href="http://blog.csdn.net/pc__wang/article/details/27225443#L180" rel="#L180" style="color: rgb(102, 102, 102); text-decoration: none;"> 180</a><a target=_blank id="L181" href="http://blog.csdn.net/pc__wang/article/details/27225443#L181" rel="#L181" style="color: rgb(102, 102, 102); text-decoration: none;"> 181</a><a target=_blank id="L182" href="http://blog.csdn.net/pc__wang/article/details/27225443#L182" rel="#L182" style="color: rgb(102, 102, 102); text-decoration: none;"> 182</a><a target=_blank id="L183" href="http://blog.csdn.net/pc__wang/article/details/27225443#L183" rel="#L183" style="color: rgb(102, 102, 102); text-decoration: none;"> 183</a><a target=_blank id="L184" href="http://blog.csdn.net/pc__wang/article/details/27225443#L184" rel="#L184" style="color: rgb(102, 102, 102); text-decoration: none;"> 184</a><a target=_blank id="L185" href="http://blog.csdn.net/pc__wang/article/details/27225443#L185" rel="#L185" style="color: rgb(102, 102, 102); text-decoration: none;"> 185</a><a target=_blank id="L186" href="http://blog.csdn.net/pc__wang/article/details/27225443#L186" rel="#L186" style="color: rgb(102, 102, 102); text-decoration: none;"> 186</a><a target=_blank id="L187" href="http://blog.csdn.net/pc__wang/article/details/27225443#L187" rel="#L187" style="color: rgb(102, 102, 102); text-decoration: none;"> 187</a><a target=_blank id="L188" href="http://blog.csdn.net/pc__wang/article/details/27225443#L188" rel="#L188" style="color: rgb(102, 102, 102); text-decoration: none;"> 188</a><a target=_blank id="L189" href="http://blog.csdn.net/pc__wang/article/details/27225443#L189" rel="#L189" style="color: rgb(102, 102, 102); text-decoration: none;"> 189</a><a target=_blank id="L190" href="http://blog.csdn.net/pc__wang/article/details/27225443#L190" rel="#L190" style="color: rgb(102, 102, 102); text-decoration: none;"> 190</a><a target=_blank id="L191" href="http://blog.csdn.net/pc__wang/article/details/27225443#L191" rel="#L191" style="color: rgb(102, 102, 102); text-decoration: none;"> 191</a><a target=_blank id="L192" href="http://blog.csdn.net/pc__wang/article/details/27225443#L192" rel="#L192" style="color: rgb(102, 102, 102); text-decoration: none;"> 192</a><a target=_blank id="L193" href="http://blog.csdn.net/pc__wang/article/details/27225443#L193" rel="#L193" style="color: rgb(102, 102, 102); text-decoration: none;"> 193</a><a target=_blank id="L194" href="http://blog.csdn.net/pc__wang/article/details/27225443#L194" rel="#L194" style="color: rgb(102, 102, 102); text-decoration: none;"> 194</a><a target=_blank id="L195" href="http://blog.csdn.net/pc__wang/article/details/27225443#L195" rel="#L195" style="color: rgb(102, 102, 102); text-decoration: none;"> 195</a><a target=_blank id="L196" href="http://blog.csdn.net/pc__wang/article/details/27225443#L196" rel="#L196" style="color: rgb(102, 102, 102); text-decoration: none;"> 196</a><a target=_blank id="L197" href="http://blog.csdn.net/pc__wang/article/details/27225443#L197" rel="#L197" style="color: rgb(102, 102, 102); text-decoration: none;"> 197</a><a target=_blank id="L198" href="http://blog.csdn.net/pc__wang/article/details/27225443#L198" rel="#L198" style="color: rgb(102, 102, 102); text-decoration: none;"> 198</a><a target=_blank id="L199" href="http://blog.csdn.net/pc__wang/article/details/27225443#L199" rel="#L199" style="color: rgb(102, 102, 102); text-decoration: none;"> 199</a><a target=_blank id="L200" href="http://blog.csdn.net/pc__wang/article/details/27225443#L200" rel="#L200" style="color: rgb(102, 102, 102); text-decoration: none;"> 200</a><a target=_blank id="L201" href="http://blog.csdn.net/pc__wang/article/details/27225443#L201" rel="#L201" style="color: rgb(102, 102, 102); text-decoration: none;"> 201</a><a target=_blank id="L202" href="http://blog.csdn.net/pc__wang/article/details/27225443#L202" rel="#L202" style="color: rgb(102, 102, 102); text-decoration: none;"> 202</a><a target=_blank id="L203" href="http://blog.csdn.net/pc__wang/article/details/27225443#L203" rel="#L203" style="color: rgb(102, 102, 102); text-decoration: none;"> 203</a><a target=_blank id="L204" href="http://blog.csdn.net/pc__wang/article/details/27225443#L204" rel="#L204" style="color: rgb(102, 102, 102); text-decoration: none;"> 204</a><a target=_blank id="L205" href="http://blog.csdn.net/pc__wang/article/details/27225443#L205" rel="#L205" style="color: rgb(102, 102, 102); text-decoration: none;"> 205</a><a target=_blank id="L206" href="http://blog.csdn.net/pc__wang/article/details/27225443#L206" rel="#L206" style="color: rgb(102, 102, 102); text-decoration: none;"> 206</a><a target=_blank id="L207" href="http://blog.csdn.net/pc__wang/article/details/27225443#L207" rel="#L207" style="color: rgb(102, 102, 102); text-decoration: none;"> 207</a><a target=_blank id="L208" href="http://blog.csdn.net/pc__wang/article/details/27225443#L208" rel="#L208" style="color: rgb(102, 102, 102); text-decoration: none;"> 208</a><a target=_blank id="L209" href="http://blog.csdn.net/pc__wang/article/details/27225443#L209" rel="#L209" style="color: rgb(102, 102, 102); text-decoration: none;"> 209</a><a target=_blank id="L210" href="http://blog.csdn.net/pc__wang/article/details/27225443#L210" rel="#L210" style="color: rgb(102, 102, 102); text-decoration: none;"> 210</a><a target=_blank id="L211" href="http://blog.csdn.net/pc__wang/article/details/27225443#L211" rel="#L211" style="color: rgb(102, 102, 102); text-decoration: none;"> 211</a><a target=_blank id="L212" href="http://blog.csdn.net/pc__wang/article/details/27225443#L212" rel="#L212" style="color: rgb(102, 102, 102); text-decoration: none;"> 212</a><a target=_blank id="L213" href="http://blog.csdn.net/pc__wang/article/details/27225443#L213" rel="#L213" style="color: rgb(102, 102, 102); text-decoration: none;"> 213</a><a target=_blank id="L214" href="http://blog.csdn.net/pc__wang/article/details/27225443#L214" rel="#L214" style="color: rgb(102, 102, 102); text-decoration: none;"> 214</a><a target=_blank id="L215" href="http://blog.csdn.net/pc__wang/article/details/27225443#L215" rel="#L215" style="color: rgb(102, 102, 102); text-decoration: none;"> 215</a><a target=_blank id="L216" href="http://blog.csdn.net/pc__wang/article/details/27225443#L216" rel="#L216" style="color: rgb(102, 102, 102); text-decoration: none;"> 216</a><a target=_blank id="L217" href="http://blog.csdn.net/pc__wang/article/details/27225443#L217" rel="#L217" style="color: rgb(102, 102, 102); text-decoration: none;"> 217</a><a target=_blank id="L218" href="http://blog.csdn.net/pc__wang/article/details/27225443#L218" rel="#L218" style="color: rgb(102, 102, 102); text-decoration: none;"> 218</a><a target=_blank id="L219" href="http://blog.csdn.net/pc__wang/article/details/27225443#L219" rel="#L219" style="color: rgb(102, 102, 102); text-decoration: none;"> 219</a><a target=_blank id="L220" href="http://blog.csdn.net/pc__wang/article/details/27225443#L220" rel="#L220" style="color: rgb(102, 102, 102); text-decoration: none;"> 220</a><a target=_blank id="L221" href="http://blog.csdn.net/pc__wang/article/details/27225443#L221" rel="#L221" style="color: rgb(102, 102, 102); text-decoration: none;"> 221</a><a target=_blank id="L222" href="http://blog.csdn.net/pc__wang/article/details/27225443#L222" rel="#L222" style="color: rgb(102, 102, 102); text-decoration: none;"> 222</a><a target=_blank id="L223" href="http://blog.csdn.net/pc__wang/article/details/27225443#L223" rel="#L223" style="color: rgb(102, 102, 102); text-decoration: none;"> 223</a><a target=_blank id="L224" href="http://blog.csdn.net/pc__wang/article/details/27225443#L224" rel="#L224" style="color: rgb(102, 102, 102); text-decoration: none;"> 224</a><a target=_blank id="L225" href="http://blog.csdn.net/pc__wang/article/details/27225443#L225" rel="#L225" style="color: rgb(102, 102, 102); text-decoration: none;"> 225</a><a target=_blank id="L226" href="http://blog.csdn.net/pc__wang/article/details/27225443#L226" rel="#L226" style="color: rgb(102, 102, 102); text-decoration: none;"> 226</a><a target=_blank id="L227" href="http://blog.csdn.net/pc__wang/article/details/27225443#L227" rel="#L227" style="color: rgb(102, 102, 102); text-decoration: none;"> 227</a><a target=_blank id="L228" href="http://blog.csdn.net/pc__wang/article/details/27225443#L228" rel="#L228" style="color: rgb(102, 102, 102); text-decoration: none;"> 228</a><a target=_blank id="L229" href="http://blog.csdn.net/pc__wang/article/details/27225443#L229" rel="#L229" style="color: rgb(102, 102, 102); text-decoration: none;"> 229</a><a target=_blank id="L230" href="http://blog.csdn.net/pc__wang/article/details/27225443#L230" rel="#L230" style="color: rgb(102, 102, 102); text-decoration: none;"> 230</a><a target=_blank id="L231" href="http://blog.csdn.net/pc__wang/article/details/27225443#L231" rel="#L231" style="color: rgb(102, 102, 102); text-decoration: none;"> 231</a><a target=_blank id="L232" href="http://blog.csdn.net/pc__wang/article/details/27225443#L232" rel="#L232" style="color: rgb(102, 102, 102); text-decoration: none;"> 232</a><a target=_blank id="L233" href="http://blog.csdn.net/pc__wang/article/details/27225443#L233" rel="#L233" style="color: rgb(102, 102, 102); text-decoration: none;"> 233</a><a target=_blank id="L234" href="http://blog.csdn.net/pc__wang/article/details/27225443#L234" rel="#L234" style="color: rgb(102, 102, 102); text-decoration: none;"> 234</a><a target=_blank id="L235" href="http://blog.csdn.net/pc__wang/article/details/27225443#L235" rel="#L235" style="color: rgb(102, 102, 102); text-decoration: none;"> 235</a><a target=_blank id="L236" href="http://blog.csdn.net/pc__wang/article/details/27225443#L236" rel="#L236" style="color: rgb(102, 102, 102); text-decoration: none;"> 236</a><a target=_blank id="L237" href="http://blog.csdn.net/pc__wang/article/details/27225443#L237" rel="#L237" style="color: rgb(102, 102, 102); text-decoration: none;"> 237</a><a target=_blank id="L238" href="http://blog.csdn.net/pc__wang/article/details/27225443#L238" rel="#L238" style="color: rgb(102, 102, 102); text-decoration: none;"> 238</a><a target=_blank id="L239" href="http://blog.csdn.net/pc__wang/article/details/27225443#L239" rel="#L239" style="color: rgb(102, 102, 102); text-decoration: none;"> 239</a><a target=_blank id="L240" href="http://blog.csdn.net/pc__wang/article/details/27225443#L240" rel="#L240" style="color: rgb(102, 102, 102); text-decoration: none;"> 240</a><a target=_blank id="L241" href="http://blog.csdn.net/pc__wang/article/details/27225443#L241" rel="#L241" style="color: rgb(102, 102, 102); text-decoration: none;"> 241</a><a target=_blank id="L242" href="http://blog.csdn.net/pc__wang/article/details/27225443#L242" rel="#L242" style="color: rgb(102, 102, 102); text-decoration: none;"> 242</a><a target=_blank id="L243" href="http://blog.csdn.net/pc__wang/article/details/27225443#L243" rel="#L243" style="color: rgb(102, 102, 102); text-decoration: none;"> 243</a><a target=_blank id="L244" href="http://blog.csdn.net/pc__wang/article/details/27225443#L244" rel="#L244" style="color: rgb(102, 102, 102); text-decoration: none;"> 244</a><a target=_blank id="L245" href="http://blog.csdn.net/pc__wang/article/details/27225443#L245" rel="#L245" style="color: rgb(102, 102, 102); text-decoration: none;"> 245</a><a target=_blank id="L246" href="http://blog.csdn.net/pc__wang/article/details/27225443#L246" rel="#L246" style="color: rgb(102, 102, 102); text-decoration: none;"> 246</a><a target=_blank id="L247" href="http://blog.csdn.net/pc__wang/article/details/27225443#L247" rel="#L247" style="color: rgb(102, 102, 102); text-decoration: none;"> 247</a><a target=_blank id="L248" href="http://blog.csdn.net/pc__wang/article/details/27225443#L248" rel="#L248" style="color: rgb(102, 102, 102); text-decoration: none;"> 248</a><a target=_blank id="L249" href="http://blog.csdn.net/pc__wang/article/details/27225443#L249" rel="#L249" style="color: rgb(102, 102, 102); text-decoration: none;"> 249</a><a target=_blank id="L250" href="http://blog.csdn.net/pc__wang/article/details/27225443#L250" rel="#L250" style="color: rgb(102, 102, 102); text-decoration: none;"> 250</a><a target=_blank id="L251" href="http://blog.csdn.net/pc__wang/article/details/27225443#L251" rel="#L251" style="color: rgb(102, 102, 102); text-decoration: none;"> 251</a><a target=_blank id="L252" href="http://blog.csdn.net/pc__wang/article/details/27225443#L252" rel="#L252" style="color: rgb(102, 102, 102); text-decoration: none;"> 252</a><a target=_blank id="L253" href="http://blog.csdn.net/pc__wang/article/details/27225443#L253" rel="#L253" style="color: rgb(102, 102, 102); text-decoration: none;"> 253</a><a target=_blank id="L254" href="http://blog.csdn.net/pc__wang/article/details/27225443#L254" rel="#L254" style="color: rgb(102, 102, 102); text-decoration: none;"> 254</a><a target=_blank id="L255" href="http://blog.csdn.net/pc__wang/article/details/27225443#L255" rel="#L255" style="color: rgb(102, 102, 102); text-decoration: none;"> 255</a><a target=_blank id="L256" href="http://blog.csdn.net/pc__wang/article/details/27225443#L256" rel="#L256" style="color: rgb(102, 102, 102); text-decoration: none;"> 256</a><a target=_blank id="L257" href="http://blog.csdn.net/pc__wang/article/details/27225443#L257" rel="#L257" style="color: rgb(102, 102, 102); text-decoration: none;"> 257</a><a target=_blank id="L258" href="http://blog.csdn.net/pc__wang/article/details/27225443#L258" rel="#L258" style="color: rgb(102, 102, 102); text-decoration: none;"> 258</a><a target=_blank id="L259" href="http://blog.csdn.net/pc__wang/article/details/27225443#L259" rel="#L259" style="color: rgb(102, 102, 102); text-decoration: none;"> 259</a><a target=_blank id="L260" href="http://blog.csdn.net/pc__wang/article/details/27225443#L260" rel="#L260" style="color: rgb(102, 102, 102); text-decoration: none;"> 260</a><a target=_blank id="L261" href="http://blog.csdn.net/pc__wang/article/details/27225443#L261" rel="#L261" style="color: rgb(102, 102, 102); text-decoration: none;"> 261</a><a target=_blank id="L262" href="http://blog.csdn.net/pc__wang/article/details/27225443#L262" rel="#L262" style="color: rgb(102, 102, 102); text-decoration: none;"> 262</a><a target=_blank id="L263" href="http://blog.csdn.net/pc__wang/article/details/27225443#L263" rel="#L263" style="color: rgb(102, 102, 102); text-decoration: none;"> 263</a><a target=_blank id="L264" href="http://blog.csdn.net/pc__wang/article/details/27225443#L264" rel="#L264" style="color: rgb(102, 102, 102); text-decoration: none;"> 264</a><a target=_blank id="L265" href="http://blog.csdn.net/pc__wang/article/details/27225443#L265" rel="#L265" style="color: rgb(102, 102, 102); text-decoration: none;"> 265</a><a target=_blank id="L266" href="http://blog.csdn.net/pc__wang/article/details/27225443#L266" rel="#L266" style="color: rgb(102, 102, 102); text-decoration: none;"> 266</a><a target=_blank id="L267" href="http://blog.csdn.net/pc__wang/article/details/27225443#L267" rel="#L267" style="color: rgb(102, 102, 102); text-decoration: none;"> 267</a><a target=_blank id="L268" href="http://blog.csdn.net/pc__wang/article/details/27225443#L268" rel="#L268" style="color: rgb(102, 102, 102); text-decoration: none;"> 268</a><a target=_blank id="L269" href="http://blog.csdn.net/pc__wang/article/details/27225443#L269" rel="#L269" style="color: rgb(102, 102, 102); text-decoration: none;"> 269</a><a target=_blank id="L270" href="http://blog.csdn.net/pc__wang/article/details/27225443#L270" rel="#L270" style="color: rgb(102, 102, 102); text-decoration: none;"> 270</a><a target=_blank id="L271" href="http://blog.csdn.net/pc__wang/article/details/27225443#L271" rel="#L271" style="color: rgb(102, 102, 102); text-decoration: none;"> 271</a><a target=_blank id="L272" href="http://blog.csdn.net/pc__wang/article/details/27225443#L272" rel="#L272" style="color: rgb(102, 102, 102); text-decoration: none;"> 272</a><a target=_blank id="L273" href="http://blog.csdn.net/pc__wang/article/details/27225443#L273" rel="#L273" style="color: rgb(102, 102, 102); text-decoration: none;"> 273</a><a target=_blank id="L274" href="http://blog.csdn.net/pc__wang/article/details/27225443#L274" rel="#L274" style="color: rgb(102, 102, 102); text-decoration: none;"> 274</a><a target=_blank id="L275" href="http://blog.csdn.net/pc__wang/article/details/27225443#L275" rel="#L275" style="color: rgb(102, 102, 102); text-decoration: none;"> 275</a><a target=_blank id="L276" href="http://blog.csdn.net/pc__wang/article/details/27225443#L276" rel="#L276" style="color: rgb(102, 102, 102); text-decoration: none;"> 276</a><a target=_blank id="L277" href="http://blog.csdn.net/pc__wang/article/details/27225443#L277" rel="#L277" style="color: rgb(102, 102, 102); text-decoration: none;"> 277</a><a target=_blank id="L278" href="http://blog.csdn.net/pc__wang/article/details/27225443#L278" rel="#L278" style="color: rgb(102, 102, 102); text-decoration: none;"> 278</a><a target=_blank id="L279" href="http://blog.csdn.net/pc__wang/article/details/27225443#L279" rel="#L279" style="color: rgb(102, 102, 102); text-decoration: none;"> 279</a><a target=_blank id="L280" href="http://blog.csdn.net/pc__wang/article/details/27225443#L280" rel="#L280" style="color: rgb(102, 102, 102); text-decoration: none;"> 280</a><a target=_blank id="L281" href="http://blog.csdn.net/pc__wang/article/details/27225443#L281" rel="#L281" style="color: rgb(102, 102, 102); text-decoration: none;"> 281</a><a target=_blank id="L282" href="http://blog.csdn.net/pc__wang/article/details/27225443#L282" rel="#L282" style="color: rgb(102, 102, 102); text-decoration: none;"> 282</a><a target=_blank id="L283" href="http://blog.csdn.net/pc__wang/article/details/27225443#L283" rel="#L283" style="color: rgb(102, 102, 102); text-decoration: none;"> 283</a><a target=_blank id="L284" href="http://blog.csdn.net/pc__wang/article/details/27225443#L284" rel="#L284" style="color: rgb(102, 102, 102); text-decoration: none;"> 284</a><a target=_blank id="L285" href="http://blog.csdn.net/pc__wang/article/details/27225443#L285" rel="#L285" style="color: rgb(102, 102, 102); text-decoration: none;"> 285</a><a target=_blank id="L286" href="http://blog.csdn.net/pc__wang/article/details/27225443#L286" rel="#L286" style="color: rgb(102, 102, 102); text-decoration: none;"> 286</a><a target=_blank id="L287" href="http://blog.csdn.net/pc__wang/article/details/27225443#L287" rel="#L287" style="color: rgb(102, 102, 102); text-decoration: none;"> 287</a><a target=_blank id="L288" href="http://blog.csdn.net/pc__wang/article/details/27225443#L288" rel="#L288" style="color: rgb(102, 102, 102); text-decoration: none;"> 288</a><a target=_blank id="L289" href="http://blog.csdn.net/pc__wang/article/details/27225443#L289" rel="#L289" style="color: rgb(102, 102, 102); text-decoration: none;"> 289</a><a target=_blank id="L290" href="http://blog.csdn.net/pc__wang/article/details/27225443#L290" rel="#L290" style="color: rgb(102, 102, 102); text-decoration: none;"> 290</a><a target=_blank id="L291" href="http://blog.csdn.net/pc__wang/article/details/27225443#L291" rel="#L291" style="color: rgb(102, 102, 102); text-decoration: none;"> 291</a><a target=_blank id="L292" href="http://blog.csdn.net/pc__wang/article/details/27225443#L292" rel="#L292" style="color: rgb(102, 102, 102); text-decoration: none;"> 292</a><a target=_blank id="L293" href="http://blog.csdn.net/pc__wang/article/details/27225443#L293" rel="#L293" style="color: rgb(102, 102, 102); text-decoration: none;"> 293</a><a target=_blank id="L294" href="http://blog.csdn.net/pc__wang/article/details/27225443#L294" rel="#L294" style="color: rgb(102, 102, 102); text-decoration: none;"> 294</a><a target=_blank id="L295" href="http://blog.csdn.net/pc__wang/article/details/27225443#L295" rel="#L295" style="color: rgb(102, 102, 102); text-decoration: none;"> 295</a><a target=_blank id="L296" href="http://blog.csdn.net/pc__wang/article/details/27225443#L296" rel="#L296" style="color: rgb(102, 102, 102); text-decoration: none;"> 296</a><a target=_blank id="L297" href="http://blog.csdn.net/pc__wang/article/details/27225443#L297" rel="#L297" style="color: rgb(102, 102, 102); text-decoration: none;"> 297</a><a target=_blank id="L298" href="http://blog.csdn.net/pc__wang/article/details/27225443#L298" rel="#L298" style="color: rgb(102, 102, 102); text-decoration: none;"> 298</a><a target=_blank id="L299" href="http://blog.csdn.net/pc__wang/article/details/27225443#L299" rel="#L299" style="color: rgb(102, 102, 102); text-decoration: none;"> 299</a><a target=_blank id="L300" href="http://blog.csdn.net/pc__wang/article/details/27225443#L300" rel="#L300" style="color: rgb(102, 102, 102); text-decoration: none;"> 300</a><a target=_blank id="L301" href="http://blog.csdn.net/pc__wang/article/details/27225443#L301" rel="#L301" style="color: rgb(102, 102, 102); text-decoration: none;"> 301</a><a target=_blank id="L302" href="http://blog.csdn.net/pc__wang/article/details/27225443#L302" rel="#L302" style="color: rgb(102, 102, 102); text-decoration: none;"> 302</a><a target=_blank id="L303" href="http://blog.csdn.net/pc__wang/article/details/27225443#L303" rel="#L303" style="color: rgb(102, 102, 102); text-decoration: none;"> 303</a><a target=_blank id="L304" href="http://blog.csdn.net/pc__wang/article/details/27225443#L304" rel="#L304" style="color: rgb(102, 102, 102); text-decoration: none;"> 304</a><a target=_blank id="L305" href="http://blog.csdn.net/pc__wang/article/details/27225443#L305" rel="#L305" style="color: rgb(102, 102, 102); text-decoration: none;"> 305</a><a target=_blank id="L306" href="http://blog.csdn.net/pc__wang/article/details/27225443#L306" rel="#L306" style="color: rgb(102, 102, 102); text-decoration: none;"> 306</a><a target=_blank id="L307" href="http://blog.csdn.net/pc__wang/article/details/27225443#L307" rel="#L307" style="color: rgb(102, 102, 102); text-decoration: none;"> 307</a><a target=_blank id="L308" href="http://blog.csdn.net/pc__wang/article/details/27225443#L308" rel="#L308" style="color: rgb(102, 102, 102); text-decoration: none;"> 308</a><a target=_blank id="L309" href="http://blog.csdn.net/pc__wang/article/details/27225443#L309" rel="#L309" style="color: rgb(102, 102, 102); text-decoration: none;"> 309</a><a target=_blank id="L310" href="http://blog.csdn.net/pc__wang/article/details/27225443#L310" rel="#L310" style="color: rgb(102, 102, 102); text-decoration: none;"> 310</a><a target=_blank id="L311" href="http://blog.csdn.net/pc__wang/article/details/27225443#L311" rel="#L311" style="color: rgb(102, 102, 102); text-decoration: none;"> 311</a><a target=_blank id="L312" href="http://blog.csdn.net/pc__wang/article/details/27225443#L312" rel="#L312" style="color: rgb(102, 102, 102); text-decoration: none;"> 312</a><a target=_blank id="L313" href="http://blog.csdn.net/pc__wang/article/details/27225443#L313" rel="#L313" style="color: rgb(102, 102, 102); text-decoration: none;"> 313</a><a target=_blank id="L314" href="http://blog.csdn.net/pc__wang/article/details/27225443#L314" rel="#L314" style="color: rgb(102, 102, 102); text-decoration: none;"> 314</a><a target=_blank id="L315" href="http://blog.csdn.net/pc__wang/article/details/27225443#L315" rel="#L315" style="color: rgb(102, 102, 102); text-decoration: none;"> 315</a><a target=_blank id="L316" href="http://blog.csdn.net/pc__wang/article/details/27225443#L316" rel="#L316" style="color: rgb(102, 102, 102); text-decoration: none;"> 316</a><a target=_blank id="L317" href="http://blog.csdn.net/pc__wang/article/details/27225443#L317" rel="#L317" style="color: rgb(102, 102, 102); text-decoration: none;"> 317</a><a target=_blank id="L318" href="http://blog.csdn.net/pc__wang/article/details/27225443#L318" rel="#L318" style="color: rgb(102, 102, 102); text-decoration: none;"> 318</a><a target=_blank id="L319" href="http://blog.csdn.net/pc__wang/article/details/27225443#L319" rel="#L319" style="color: rgb(102, 102, 102); text-decoration: none;"> 319</a><a target=_blank id="L320" href="http://blog.csdn.net/pc__wang/article/details/27225443#L320" rel="#L320" style="color: rgb(102, 102, 102); text-decoration: none;"> 320</a><a target=_blank id="L321" href="http://blog.csdn.net/pc__wang/article/details/27225443#L321" rel="#L321" style="color: rgb(102, 102, 102); text-decoration: none;"> 321</a><a target=_blank id="L322" href="http://blog.csdn.net/pc__wang/article/details/27225443#L322" rel="#L322" style="color: rgb(102, 102, 102); text-decoration: none;"> 322</a><a target=_blank id="L323" href="http://blog.csdn.net/pc__wang/article/details/27225443#L323" rel="#L323" style="color: rgb(102, 102, 102); text-decoration: none;"> 323</a><a target=_blank id="L324" href="http://blog.csdn.net/pc__wang/article/details/27225443#L324" rel="#L324" style="color: rgb(102, 102, 102); text-decoration: none;"> 324</a><a target=_blank id="L325" href="http://blog.csdn.net/pc__wang/article/details/27225443#L325" rel="#L325" style="color: rgb(102, 102, 102); text-decoration: none;"> 325</a><a target=_blank id="L326" href="http://blog.csdn.net/pc__wang/article/details/27225443#L326" rel="#L326" style="color: rgb(102, 102, 102); text-decoration: none;"> 326</a><a target=_blank id="L327" href="http://blog.csdn.net/pc__wang/article/details/27225443#L327" rel="#L327" style="color: rgb(102, 102, 102); text-decoration: none;"> 327</a><a target=_blank id="L328" href="http://blog.csdn.net/pc__wang/article/details/27225443#L328" rel="#L328" style="color: rgb(102, 102, 102); text-decoration: none;"> 328</a><a target=_blank id="L329" href="http://blog.csdn.net/pc__wang/article/details/27225443#L329" rel="#L329" style="color: rgb(102, 102, 102); text-decoration: none;"> 329</a><a target=_blank id="L330" href="http://blog.csdn.net/pc__wang/article/details/27225443#L330" rel="#L330" style="color: rgb(102, 102, 102); text-decoration: none;"> 330</a><a target=_blank id="L331" href="http://blog.csdn.net/pc__wang/article/details/27225443#L331" rel="#L331" style="color: rgb(102, 102, 102); text-decoration: none;"> 331</a><a target=_blank id="L332" href="http://blog.csdn.net/pc__wang/article/details/27225443#L332" rel="#L332" style="color: rgb(102, 102, 102); text-decoration: none;"> 332</a><a target=_blank id="L333" href="http://blog.csdn.net/pc__wang/article/details/27225443#L333" rel="#L333" style="color: rgb(102, 102, 102); text-decoration: none;"> 333</a><a target=_blank id="L334" href="http://blog.csdn.net/pc__wang/article/details/27225443#L334" rel="#L334" style="color: rgb(102, 102, 102); text-decoration: none;"> 334</a><a target=_blank id="L335" href="http://blog.csdn.net/pc__wang/article/details/27225443#L335" rel="#L335" style="color: rgb(102, 102, 102); text-decoration: none;"> 335</a><a target=_blank id="L336" href="http://blog.csdn.net/pc__wang/article/details/27225443#L336" rel="#L336" style="color: rgb(102, 102, 102); text-decoration: none;"> 336</a><a target=_blank id="L337" href="http://blog.csdn.net/pc__wang/article/details/27225443#L337" rel="#L337" style="color: rgb(102, 102, 102); text-decoration: none;"> 337</a><a target=_blank id="L338" href="http://blog.csdn.net/pc__wang/article/details/27225443#L338" rel="#L338" style="color: rgb(102, 102, 102); text-decoration: none;"> 338</a><a target=_blank id="L339" href="http://blog.csdn.net/pc__wang/article/details/27225443#L339" rel="#L339" style="color: rgb(102, 102, 102); text-decoration: none;"> 339</a><a target=_blank id="L340" href="http://blog.csdn.net/pc__wang/article/details/27225443#L340" rel="#L340" style="color: rgb(102, 102, 102); text-decoration: none;"> 340</a><a target=_blank id="L341" href="http://blog.csdn.net/pc__wang/article/details/27225443#L341" rel="#L341" style="color: rgb(102, 102, 102); text-decoration: none;"> 341</a><a target=_blank id="L342" href="http://blog.csdn.net/pc__wang/article/details/27225443#L342" rel="#L342" style="color: rgb(102, 102, 102); text-decoration: none;"> 342</a><a target=_blank id="L343" href="http://blog.csdn.net/pc__wang/article/details/27225443#L343" rel="#L343" style="color: rgb(102, 102, 102); text-decoration: none;"> 343</a><a target=_blank id="L344" href="http://blog.csdn.net/pc__wang/article/details/27225443#L344" rel="#L344" style="color: rgb(102, 102, 102); text-decoration: none;"> 344</a><a target=_blank id="L345" href="http://blog.csdn.net/pc__wang/article/details/27225443#L345" rel="#L345" style="color: rgb(102, 102, 102); text-decoration: none;"> 345</a><a target=_blank id="L346" href="http://blog.csdn.net/pc__wang/article/details/27225443#L346" rel="#L346" style="color: rgb(102, 102, 102); text-decoration: none;"> 346</a><a target=_blank id="L347" href="http://blog.csdn.net/pc__wang/article/details/27225443#L347" rel="#L347" style="color: rgb(102, 102, 102); text-decoration: none;"> 347</a><a target=_blank id="L348" href="http://blog.csdn.net/pc__wang/article/details/27225443#L348" rel="#L348" style="color: rgb(102, 102, 102); text-decoration: none;"> 348</a><a target=_blank id="L349" href="http://blog.csdn.net/pc__wang/article/details/27225443#L349" rel="#L349" style="color: rgb(102, 102, 102); text-decoration: none;"> 349</a><a target=_blank id="L350" href="http://blog.csdn.net/pc__wang/article/details/27225443#L350" rel="#L350" style="color: rgb(102, 102, 102); text-decoration: none;"> 350</a><a target=_blank id="L351" href="http://blog.csdn.net/pc__wang/article/details/27225443#L351" rel="#L351" style="color: rgb(102, 102, 102); text-decoration: none;"> 351</a><a target=_blank id="L352" href="http://blog.csdn.net/pc__wang/article/details/27225443#L352" rel="#L352" style="color: rgb(102, 102, 102); text-decoration: none;"> 352</a><a target=_blank id="L353" href="http://blog.csdn.net/pc__wang/article/details/27225443#L353" rel="#L353" style="color: rgb(102, 102, 102); text-decoration: none;"> 353</a><a target=_blank id="L354" href="http://blog.csdn.net/pc__wang/article/details/27225443#L354" rel="#L354" style="color: rgb(102, 102, 102); text-decoration: none;"> 354</a><a target=_blank id="L355" href="http://blog.csdn.net/pc__wang/article/details/27225443#L355" rel="#L355" style="color: rgb(102, 102, 102); text-decoration: none;"> 355</a><a target=_blank id="L356" href="http://blog.csdn.net/pc__wang/article/details/27225443#L356" rel="#L356" style="color: rgb(102, 102, 102); text-decoration: none;"> 356</a><a target=_blank id="L357" href="http://blog.csdn.net/pc__wang/article/details/27225443#L357" rel="#L357" style="color: rgb(102, 102, 102); text-decoration: none;"> 357</a><a target=_blank id="L358" href="http://blog.csdn.net/pc__wang/article/details/27225443#L358" rel="#L358" style="color: rgb(102, 102, 102); text-decoration: none;"> 358</a><a target=_blank id="L359" href="http://blog.csdn.net/pc__wang/article/details/27225443#L359" rel="#L359" style="color: rgb(102, 102, 102); text-decoration: none;"> 359</a><a target=_blank id="L360" href="http://blog.csdn.net/pc__wang/article/details/27225443#L360" rel="#L360" style="color: rgb(102, 102, 102); text-decoration: none;"> 360</a><a target=_blank id="L361" href="http://blog.csdn.net/pc__wang/article/details/27225443#L361" rel="#L361" style="color: rgb(102, 102, 102); text-decoration: none;"> 361</a><a target=_blank id="L362" href="http://blog.csdn.net/pc__wang/article/details/27225443#L362" rel="#L362" style="color: rgb(102, 102, 102); text-decoration: none;"> 362</a><a target=_blank id="L363" href="http://blog.csdn.net/pc__wang/article/details/27225443#L363" rel="#L363" style="color: rgb(102, 102, 102); text-decoration: none;"> 363</a><a target=_blank id="L364" href="http://blog.csdn.net/pc__wang/article/details/27225443#L364" rel="#L364" style="color: rgb(102, 102, 102); text-decoration: none;"> 364</a><a target=_blank id="L365" href="http://blog.csdn.net/pc__wang/article/details/27225443#L365" rel="#L365" style="color: rgb(102, 102, 102); text-decoration: none;"> 365</a><a target=_blank id="L366" href="http://blog.csdn.net/pc__wang/article/details/27225443#L366" rel="#L366" style="color: rgb(102, 102, 102); text-decoration: none;"> 366</a><a target=_blank id="L367" href="http://blog.csdn.net/pc__wang/article/details/27225443#L367" rel="#L367" style="color: rgb(102, 102, 102); text-decoration: none;"> 367</a><a target=_blank id="L368" href="http://blog.csdn.net/pc__wang/article/details/27225443#L368" rel="#L368" style="color: rgb(102, 102, 102); text-decoration: none;"> 368</a><a target=_blank id="L369" href="http://blog.csdn.net/pc__wang/article/details/27225443#L369" rel="#L369" style="color: rgb(102, 102, 102); text-decoration: none;"> 369</a><a target=_blank id="L370" href="http://blog.csdn.net/pc__wang/article/details/27225443#L370" rel="#L370" style="color: rgb(102, 102, 102); text-decoration: none;"> 370</a><a target=_blank id="L371" href="http://blog.csdn.net/pc__wang/article/details/27225443#L371" rel="#L371" style="color: rgb(102, 102, 102); text-decoration: none;"> 371</a><a target=_blank id="L372" href="http://blog.csdn.net/pc__wang/article/details/27225443#L372" rel="#L372" style="color: rgb(102, 102, 102); text-decoration: none;"> 372</a><a target=_blank id="L373" href="http://blog.csdn.net/pc__wang/article/details/27225443#L373" rel="#L373" style="color: rgb(102, 102, 102); text-decoration: none;"> 373</a><a target=_blank id="L374" href="http://blog.csdn.net/pc__wang/article/details/27225443#L374" rel="#L374" style="color: rgb(102, 102, 102); text-decoration: none;"> 374</a><a target=_blank id="L375" href="http://blog.csdn.net/pc__wang/article/details/27225443#L375" rel="#L375" style="color: rgb(102, 102, 102); text-decoration: none;"> 375</a><a target=_blank id="L376" href="http://blog.csdn.net/pc__wang/article/details/27225443#L376" rel="#L376" style="color: rgb(102, 102, 102); text-decoration: none;"> 376</a><a target=_blank id="L377" href="http://blog.csdn.net/pc__wang/article/details/27225443#L377" rel="#L377" style="color: rgb(102, 102, 102); text-decoration: none;"> 377</a><a target=_blank id="L378" href="http://blog.csdn.net/pc__wang/article/details/27225443#L378" rel="#L378" style="color: rgb(102, 102, 102); text-decoration: none;"> 378</a><a target=_blank id="L379" href="http://blog.csdn.net/pc__wang/article/details/27225443#L379" rel="#L379" style="color: rgb(102, 102, 102); text-decoration: none;"> 379</a><a target=_blank id="L380" href="http://blog.csdn.net/pc__wang/article/details/27225443#L380" rel="#L380" style="color: rgb(102, 102, 102); text-decoration: none;"> 380</a><a target=_blank id="L381" href="http://blog.csdn.net/pc__wang/article/details/27225443#L381" rel="#L381" style="color: rgb(102, 102, 102); text-decoration: none;"> 381</a><a target=_blank id="L382" href="http://blog.csdn.net/pc__wang/article/details/27225443#L382" rel="#L382" style="color: rgb(102, 102, 102); text-decoration: none;"> 382</a><a target=_blank id="L383" href="http://blog.csdn.net/pc__wang/article/details/27225443#L383" rel="#L383" style="color: rgb(102, 102, 102); text-decoration: none;"> 383</a><a target=_blank id="L384" href="http://blog.csdn.net/pc__wang/article/details/27225443#L384" rel="#L384" style="color: rgb(102, 102, 102); text-decoration: none;"> 384</a><a target=_blank id="L385" href="http://blog.csdn.net/pc__wang/article/details/27225443#L385" rel="#L385" style="color: rgb(102, 102, 102); text-decoration: none;"> 385</a><a target=_blank id="L386" href="http://blog.csdn.net/pc__wang/article/details/27225443#L386" rel="#L386" style="color: rgb(102, 102, 102); text-decoration: none;"> 386</a><a target=_blank id="L387" href="http://blog.csdn.net/pc__wang/article/details/27225443#L387" rel="#L387" style="color: rgb(102, 102, 102); text-decoration: none;"> 387</a><a target=_blank id="L388" href="http://blog.csdn.net/pc__wang/article/details/27225443#L388" rel="#L388" style="color: rgb(102, 102, 102); text-decoration: none;"> 388</a><a target=_blank id="L389" href="http://blog.csdn.net/pc__wang/article/details/27225443#L389" rel="#L389" style="color: rgb(102, 102, 102); text-decoration: none;"> 389</a><a target=_blank id="L390" href="http://blog.csdn.net/pc__wang/article/details/27225443#L390" rel="#L390" style="color: rgb(102, 102, 102); text-decoration: none;"> 390</a><a target=_blank id="L391" href="http://blog.csdn.net/pc__wang/article/details/27225443#L391" rel="#L391" style="color: rgb(102, 102, 102); text-decoration: none;"> 391</a><a target=_blank id="L392" href="http://blog.csdn.net/pc__wang/article/details/27225443#L392" rel="#L392" style="color: rgb(102, 102, 102); text-decoration: none;"> 392</a><a target=_blank id="L393" href="http://blog.csdn.net/pc__wang/article/details/27225443#L393" rel="#L393" style="color: rgb(102, 102, 102); text-decoration: none;"> 393</a><a target=_blank id="L394" href="http://blog.csdn.net/pc__wang/article/details/27225443#L394" rel="#L394" style="color: rgb(102, 102, 102); text-decoration: none;"> 394</a><a target=_blank id="L395" href="http://blog.csdn.net/pc__wang/article/details/27225443#L395" rel="#L395" style="color: rgb(102, 102, 102); text-decoration: none;"> 395</a>
#if statistics_mode
Void TAppDecTop::xWriteOutput( TComList<TComPic*>* pcListPic, UInt tId,std::vector<PtPair>& list,std::vector<int>& flag)
#else
Void TAppDecTop::xWriteOutput( TComList<TComPic*>* pcListPic, UInt tId)
#endif
#endif
{
TComList<TComPic*>::iterator iterPic = pcListPic->begin();
Int not_displayed = 0;
while (iterPic != pcListPic->end())
{
TComPic* pcPic = *(iterPic);
#if H_MV
if(pcPic->getOutputMark() && pcPic->getPOC() > m_pocLastDisplay[decIdx])
#else
if(pcPic->getOutputMark() && pcPic->getPOC() > m_iPOCLastDisplay)
#endif
{
not_displayed++;
}
iterPic++;
}
iterPic = pcListPic->begin();
while (iterPic != pcListPic->end())
{
TComPic* pcPic = *(iterPic);
#if H_MV
if ( pcPic->getOutputMark() && (not_displayed > pcPic->getNumReorderPics(tId) && pcPic->getPOC() > m_pocLastDisplay[decIdx]))
#else
if ( pcPic->getOutputMark() && (not_displayed > pcPic->getNumReorderPics(tId) && pcPic->getPOC() > m_iPOCLastDisplay))
#endif
{
// write to file
not_displayed--;
#if statistics_mode
TComPicYuv *p_dstyuv=new TComPicYuv;
TComPicYuv *p_orgyuv=pcPic->getPicYuvRec();
p_dstyuv->create(p_orgyuv->getWidth(),p_orgyuv->getHeight(),1,1,0);
p_orgyuv->copyToPic(p_dstyuv);
Pel *pY=p_dstyuv->getLumaAddr();
UInt stride = p_dstyuv->getStride();
for(UInt index = 0; index < flag[0]; index++)
{
for(UInt y = list[index]._pt1y; y <= list[index]._pt2y; y++)
{
for(UInt x = list[index]._pt1x; x <= list[index]._pt2x; x++)
{
switch(list[index].mode)
{
case SIZE_2Nx2N:
if(y == list[index]._pt1y )
pY[y*stride + x] = 0;
if(x == list[index]._pt1x )
pY[y*stride + x] = 0;
break;
case SIZE_2NxN:
if(y == list[index]._pt1y )
pY[y*stride + x] = 0;
if(y == list[index]._pt1y+(list[index]._pt2y-list[index]._pt1y+1)/2)
pY[y*stride + x] = 0;
if(x == list[index]._pt1x )
pY[y*stride + x] = 0;
break;
case SIZE_Nx2N:
if(y == list[index]._pt1y )
pY[y*stride + x] = 0;
if(x == list[index]._pt1x+(list[index]._pt2x-list[index]._pt1x+1)/2)
pY[y*stride + x] = 0;
if(x == list[index]._pt1x )
pY[y*stride + x] = 0;
break;
case SIZE_NxN:
if(y == list[index]._pt1y )
pY[y*stride + x] = 0;
if(y == list[index]._pt1y+(list[index]._pt2y-list[index]._pt1y+1)/2)
pY[y*stride + x] = 0;
if(x == list[index]._pt1x+(list[index]._pt2x-list[index]._pt1x+1)/2)
pY[y*stride + x] = 0;
if(x == list[index]._pt1x )
pY[y*stride + x] = 0;
break;
case SIZE_2NxnU:
if(y == list[index]._pt1y )
pY[y*stride + x] = 0;
if(y == list[index]._pt1y+(list[index]._pt2y-list[index]._pt1y+1)/4)
pY[y*stride + x] = 0;
if(x == list[index]._pt1x )
pY[y*stride + x] = 0;
break;
case SIZE_2NxnD:
if(y == list[index]._pt1y )
pY[y*stride + x] = 0;
if(y == list[index]._pt1y+3*(list[index]._pt2y-list[index]._pt1y+1)/4)
pY[y*stride + x] = 0;
if(x == list[index]._pt1x )
pY[y*stride + x] = 0;
break;
case SIZE_nLx2N:
if(y == list[index]._pt1y )
pY[y*stride + x] = 0;
if(x == list[index]._pt1x+(list[index]._pt2x-list[index]._pt1x+1)/4)
pY[y*stride + x] = 0;
if(x == list[index]._pt1x )
pY[y*stride + x] = 0;
break;
case SIZE_nRx2N:
if(y == list[index]._pt1y )
pY[y*stride + x] = 0;
if(x == list[index]._pt1x+3*(list[index]._pt2x-list[index]._pt1x+1)/4)
pY[y*stride + x] = 0;
if(x == list[index]._pt1x )
pY[y*stride + x] = 0;
break;
default:
break;
}
}
}
}
if(flag.size()>1)
{
list.erase(list.begin(),list.begin()+flag[0]);
flag.erase(flag.begin());
}
#endif
#if H_MV
if ( m_pchReconFiles[decIdx] )
#else
if ( m_pchReconFile )
#endif
{
const Window &conf = pcPic->getConformanceWindow();
const Window &defDisp = m_respectDefDispWindow ? pcPic->getDefDisplayWindow() : Window();
#if H_MV
#if H_MV5
assert( conf .getScaledFlag() );
assert( defDisp.getScaledFlag() );
#endif
#if statistics_mode
m_tVideoIOYuvReconFile[decIdx]->write( p_dstyuv,
#else
m_tVideoIOYuvReconFile[decIdx]->write( pcPic->getPicYuvRec(),
#endif
#else
#if statistics_mode
m_cTVideoIOYuvReconFile.write( p_dstyuv,
#else
m_cTVideoIOYuvReconFile.write( pcPic->getPicYuvRec(),
#endif
#endif
conf.getWindowLeftOffset() + defDisp.getWindowLeftOffset(),
conf.getWindowRightOffset() + defDisp.getWindowRightOffset(),
conf.getWindowTopOffset() + defDisp.getWindowTopOffset(),
conf.getWindowBottomOffset() + defDisp.getWindowBottomOffset() );
}
// update POC of display order
#if H_MV
m_pocLastDisplay[decIdx] = pcPic->getPOC();
#else
m_iPOCLastDisplay = pcPic->getPOC();
#endif
// erase non-referenced picture in the reference picture list after display
if ( !pcPic->getSlice(0)->isReferenced() && pcPic->getReconMark() == true )
{
#if !DYN_REF_FREE
pcPic->setReconMark(false);
// mark it should be extended later
pcPic->getPicYuvRec()->setBorderExtension( false );
#else
pcPic->destroy();
pcListPic->erase( iterPic );
iterPic = pcListPic->begin(); // to the beginning, non-efficient way, have to be revised!
continue;
#endif
}
pcPic->setOutputMark(false);
}
iterPic++;
}
}
/** \param pcListPic list of pictures to be written to file
\todo DYN_REF_FREE should be revised
*/
#if H_MV
#if statistics_mode
Void TAppDecTop::xFlushOutput( TComList<TComPic*>* pcListPic, Int decIdx,std::vector<PtPair>& list,std::vector<int>& flag)
#else
Void TAppDecTop::xFlushOutput( TComList<TComPic*>* pcListPic, Int decIdx)
#endif
#else
#if statistics_mode
Void TAppDecTop::xFlushOutput( TComList<TComPic*>* pcListPic,std::vector<PtPair>& list,std::vector<int>& flag )
#else
Void TAppDecTop::xFlushOutput( TComList<TComPic*>* pcListPic )
#endif
#endif
{
if(!pcListPic)
{
return;
}
TComList<TComPic*>::iterator iterPic = pcListPic->begin();
iterPic = pcListPic->begin();
while (iterPic != pcListPic->end())
{
TComPic* pcPic = *(iterPic);
if ( pcPic->getOutputMark() )
{
// write to file
#if statistics_mode
TComPicYuv *p_dstyuv=new TComPicYuv;
TComPicYuv *p_orgyuv=pcPic->getPicYuvRec();
p_dstyuv->create(p_orgyuv->getWidth(),p_orgyuv->getHeight(),1,1,0);
p_orgyuv->copyToPic(p_dstyuv);
Pel *pY=p_dstyuv->getLumaAddr();
UInt stride = p_dstyuv->getStride();
for(UInt index = 0; index < flag[0]; index++)
{
for(UInt y = list[index]._pt1y; y <= list[index]._pt2y; y++)
{
for(UInt x = list[index]._pt1x; x <= list[index]._pt2x; x++)
{
switch(list[index].mode)
{
case SIZE_2Nx2N:
if(y == list[index]._pt1y )
pY[y*stride + x] = 0;
if(x == list[index]._pt1x )
pY[y*stride + x] = 0;
break;
case SIZE_2NxN:
if(y == list[index]._pt1y )
pY[y*stride + x] = 0;
if(y == list[index]._pt1y+(list[index]._pt2y-list[index]._pt1y+1)/2)
pY[y*stride + x] = 0;
if(x == list[index]._pt1x )
pY[y*stride + x] = 0;
break;
case SIZE_Nx2N:
if(y == list[index]._pt1y)
pY[y*stride + x] = 0;
if(x == list[index]._pt1x+(list[index]._pt2x-list[index]._pt1x+1)/2)
pY[y*stride + x] = 0;
if(x == list[index]._pt1x)
pY[y*stride + x] = 0;
break;
case SIZE_NxN:
if(y == list[index]._pt1y)
pY[y*stride + x] = 0;
if(y == list[index]._pt1y+(list[index]._pt2y-list[index]._pt1y+1)/2)
pY[y*stride + x] = 0;
if(x == list[index]._pt1x+(list[index]._pt2x-list[index]._pt1x+1)/2)
pY[y*stride + x] = 0;
if(x == list[index]._pt1x )
pY[y*stride + x] = 0;
break;
case SIZE_2NxnU:
if(y == list[index]._pt1y )
pY[y*stride + x] = 0;
if(y == list[index]._pt1y+(list[index]._pt2y-list[index]._pt1y+1)/4)
pY[y*stride + x] = 0;
if(x == list[index]._pt1x )
pY[y*stride + x] = 0;
break;
case SIZE_2NxnD:
if(y == list[index]._pt1y )
pY[y*stride + x] = 0;
if(y == list[index]._pt1y+3*(list[index]._pt2y-list[index]._pt1y+1)/4)
pY[y*stride + x] = 0;
if(x == list[index]._pt1x)
pY[y*stride + x] = 0;
break;
case SIZE_nLx2N:
if(y == list[index]._pt1y)
pY[y*stride + x] = 0;
if(x == list[index]._pt1x+(list[index]._pt2x-list[index]._pt1x+1)/4)
pY[y*stride + x] = 0;
if(x == list[index]._pt1x)
pY[y*stride + x] = 0;
break;
case SIZE_nRx2N:
if(y == list[index]._pt1y )
pY[y*stride + x] = 0;
if(x == list[index]._pt1x+3*(list[index]._pt2x-list[index]._pt1x+1)/4)
pY[y*stride + x] = 0;
if(x == list[index]._pt1x )
pY[y*stride + x] = 0;
break;
default:
break;
}
}
}
}
if(flag.size()>1)
{
list.erase(list.begin(),list.begin()+flag[0]);
flag.erase(flag.begin());
}
#endif
#if H_MV
if ( m_pchReconFiles[decIdx] )
#else
if ( m_pchReconFile )
#endif
{
const Window &conf = pcPic->getConformanceWindow();
const Window &defDisp = m_respectDefDispWindow ? pcPic->getDefDisplayWindow() : Window();
#if H_MV
#if H_MV5
assert( conf .getScaledFlag() );
assert( defDisp.getScaledFlag() );
#endif
#if statistics_mode
m_tVideoIOYuvReconFile[decIdx]->write( p_dstyuv,
#else
m_tVideoIOYuvReconFile[decIdx]->write( pcPic->getPicYuvRec(),
#endif
#else
#if statistics_mode
m_cTVideoIOYuvReconFile.write( p_dstyuv,
#else
m_cTVideoIOYuvReconFile.write( pcPic->getPicYuvRec(),
#endif
#endif
conf.getWindowLeftOffset() + defDisp.getWindowLeftOffset(),
conf.getWindowRightOffset() + defDisp.getWindowRightOffset(),
conf.getWindowTopOffset() + defDisp.getWindowTopOffset(),
conf.getWindowBottomOffset() + defDisp.getWindowBottomOffset() );
}
// update POC of display order
#if H_MV
m_pocLastDisplay[decIdx] = pcPic->getPOC();
#else
m_iPOCLastDisplay = pcPic->getPOC();
#endif
// erase non-referenced picture in the reference picture list after display
if ( !pcPic->getSlice(0)->isReferenced() && pcPic->getReconMark() == true )
{
#if !DYN_REF_FREE
pcPic->setReconMark(false);
// mark it should be extended later
pcPic->getPicYuvRec()->setBorderExtension( false );
#else
pcPic->destroy();
pcListPic->erase( iterPic );
iterPic = pcListPic->begin(); // to the beginning, non-efficient way, have to be revised!
continue;
#endif
}
pcPic->setOutputMark(false);
}
#if !H_MV
#if !DYN_REF_FREE
if(pcPic)
{
pcPic->destroy();
delete pcPic;
pcPic = NULL;
}
#endif
#endif
iterPic++;
}
#if H_MV
m_pocLastDisplay[decIdx] = -MAX_INT;
#else
pcListPic->clear();
m_iPOCLastDisplay = -MAX_INT;
#endif
}
 来自CODE的代码片
snippet_file_0.cpp

2.6 解码看结果

将先编码过后的文件,用解码器解码,就会看到最终结果。有的可能不知道怎样使用解码器,贴出命令行供参考
TAppDecoder -b 2Dmodes.bin -o 2Dmodes.yuv (TAppDecoder解码器应用程序,2Dmodes.bin编码器输出的压缩文件,2Dmodes.yuv 为重建文件名,2Dmodes.yuv 总的2Dmodes可以任意取名)。

3. 

如果不想自己修改代码,我这有编译好的解码器,解码过后,就会看到像我们展示出的样例结果,是不是很直观吧!该解码器在以下QQ群:101118126

0 0
原创粉丝点击