📄 adjustoutput.c
字号:
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 // last 2x2 block in upper right grandchildren block
{
if ((DWORD32) abs(BlockCodingInfo[i].PtrBlockAddress[m][n]) > BitPlaneCheck) // not newly selected.
refinement = beta_2;
else
refinement = beta_1;
if((m < 2) || (n < 6))
{
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)
{
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 < 4) // stop at upper right block
{
if ( m < 4)
{
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 (n >= 4)
{
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( (PtrCoding->DecodingStopLocations.X_LocationStopDecoding < 6)
&& (PtrCoding->DecodingStopLocations.Y_LocationStopDecoding < 2))
{
if (m >= 6 || n >= 2)
{
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;
continue;
}
else
{
if ((DWORD32) abs(BlockCodingInfo[i].PtrBlockAddress[m][n]) > BitPlaneCheck) // not newly selected.
refinement = beta_2;
else
refinement = beta_1;
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
{
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 (PtrCoding->DecodingStopLocations.X_LocationStopDecoding < 6)
{
if ((DWORD32) abs(BlockCodingInfo[i].PtrBlockAddress[m][n]) > BitPlaneCheck) // not newly selected.
refinement = beta_2;
else
refinement = beta_1;
if ((m < 6) && ( n < 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 ;
continue;
}
else if (m >= 6)
{
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 (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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -