📄 adjustoutput.c
字号:
BlockCodingInfo[i].PtrBlockAddress[m][n] += (int) refinement;
else if(BlockCodingInfo[i].PtrBlockAddress[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] -= (int) refinement;
if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] += refinement;
else if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] -= refinement;
}
else if (i > PtrCoding->DecodingStopLocations.BlockNoStopDecoding)
{
refinement = beta_2;
if(BlockCodingInfo[i].PtrBlockAddress[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] += (int) refinement;
else if(BlockCodingInfo[i].PtrBlockAddress[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] -= (int) refinement;
if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] += refinement;
else if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] -= refinement;
}
else // current block
{ // children
if ((DWORD32) abs(BlockCodingInfo[i].PtrBlockAddress[m][n]) > BitPlaneCheck) // not newly selected.
refinement = beta_2;
else
refinement = beta_1;
if ((m < 4) && (n < 4))
{
if( PtrCoding->DecodingStopLocations.X_LocationStopDecoding < 2) // upper right block
{
if (m >= 2)
{
if(BlockCodingInfo[i].PtrBlockAddress[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] += beta_2;
else if(BlockCodingInfo[i].PtrBlockAddress[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] -= beta_2;
if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] += beta_2;
else if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] -= beta_2;
}
else
{
if (m < PtrCoding->DecodingStopLocations.X_LocationStopDecoding)
{
if(BlockCodingInfo[i].PtrBlockAddress[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] += (int) refinement;
else if(BlockCodingInfo[i].PtrBlockAddress[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] -= (int) refinement;
if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] += refinement;
else if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] -= refinement;
}
else if ((m == PtrCoding->DecodingStopLocations.X_LocationStopDecoding)
&& (n <= PtrCoding->DecodingStopLocations.Y_LocationStopDecoding))
{
if(BlockCodingInfo[i].PtrBlockAddress[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] += (int) refinement;
else if(BlockCodingInfo[i].PtrBlockAddress[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] -= (int) refinement;
if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] += refinement;
else if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] -= refinement;
}
else
{
refinement = beta_2;
if(BlockCodingInfo[i].PtrBlockAddress[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] += (int) refinement;
else if(BlockCodingInfo[i].PtrBlockAddress[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] -= (int) refinement;
if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] += refinement;
else if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] -= refinement;
}
}
}
else if( PtrCoding->DecodingStopLocations.Y_LocationStopDecoding < 2) // lower left block
{
if (m < 2)
{
if(BlockCodingInfo[i].PtrBlockAddress[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] += (int) refinement;
else if(BlockCodingInfo[i].PtrBlockAddress[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] -= (int) refinement;
if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] += refinement;
else if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] -= refinement;
}
else if (n >= 2)
{
if(BlockCodingInfo[i].PtrBlockAddress[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] += beta_2;
else if(BlockCodingInfo[i].PtrBlockAddress[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] -= beta_2;
if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] += beta_2;
else if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] -= beta_2;
}
else
{
if (m < PtrCoding->DecodingStopLocations.X_LocationStopDecoding)
{
if(BlockCodingInfo[i].PtrBlockAddress[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] += (int) refinement;
else if(BlockCodingInfo[i].PtrBlockAddress[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] -= (int) refinement;
if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] += refinement;
else if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] -= refinement;
}
else if ((m == PtrCoding->DecodingStopLocations.X_LocationStopDecoding)
&& (n <= PtrCoding->DecodingStopLocations.Y_LocationStopDecoding))
{
if(BlockCodingInfo[i].PtrBlockAddress[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] += (int) refinement;
else if(BlockCodingInfo[i].PtrBlockAddress[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] -= (int) refinement;
if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] += refinement;
else if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] -= refinement;
}
else
{
refinement = beta_2;
if(BlockCodingInfo[i].PtrBlockAddress[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] += (int) refinement;
else if(BlockCodingInfo[i].PtrBlockAddress[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] -= (int) refinement;
if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] += refinement;
else if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] -= refinement;
}
}
}
else // lower right block
{
if (m < 2 || n < 2)
{
if ((DWORD32) abs(BlockCodingInfo[i].PtrBlockAddress[m][n]) > BitPlaneCheck) // not newly selected.
refinement = beta_2;
else
refinement = beta_1;
if(BlockCodingInfo[i].PtrBlockAddress[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] += (int) refinement;
else if(BlockCodingInfo[i].PtrBlockAddress[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] -= (int) refinement;
if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] += refinement;
else if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] -= refinement;
}
else
{
if ((m >= PtrCoding->DecodingStopLocations.X_LocationStopDecoding)
&& (n >= PtrCoding->DecodingStopLocations.Y_LocationStopDecoding))
{
if(BlockCodingInfo[i].PtrBlockAddress[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] += (int) refinement;
else if(BlockCodingInfo[i].PtrBlockAddress[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] -= (int) refinement;
if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] += refinement;
else if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] -= refinement;
}
else
{
if ((DWORD32) abs(BlockCodingInfo[i].PtrBlockAddress[m][n]) > BitPlaneCheck) // not newly selected.
refinement = beta_2;
else
refinement = beta_1;
if(BlockCodingInfo[i].PtrBlockAddress[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] += (int) refinement;
else if(BlockCodingInfo[i].PtrBlockAddress[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] -= (int) refinement;
if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] += refinement;
else if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] -= refinement;
}
}
}
}
else
{
if(BlockCodingInfo[i].PtrBlockAddress[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] += beta_2;
else if(BlockCodingInfo[i].PtrBlockAddress[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] -= beta_2;
if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] += beta_2;
else if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] -= beta_2;
}
}
}
}
}
}
else if (PtrCoding->DecodingStopLocations.stoppedstage == 3)// parents coding stage.
{
for (i = 0; i < TotalBlocks; i ++)
{
for(m = 0; m < 8; m++)
for(n = 0; n < 8; n++)
{
if ((m == 0 && n == 0) || (BlockCodingInfo[i].PtrBlockAddress[m][n] == 0))
continue;
//parent and children
if ((m <= 3 && n <= 3))
{
if ((DWORD32) abs(BlockCodingInfo[i].PtrBlockAddress[m][n]) > BitPlaneCheck) // not newly selected.
refinement = beta_2;
else
refinement = beta_1;
if(BlockCodingInfo[i].PtrBlockAddress[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] += (int) refinement;
else if(BlockCodingInfo[i].PtrBlockAddress[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddress[m][n] -= (int) refinement;
if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] > 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] += refinement;
else if(BlockCodingInfo[i].PtrBlockAddressFloating[m][n] < 0)
BlockCodingInfo[i].PtrBlockAddressFloating[m][n] -= refinement;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -