📄 adjustoutput.c
字号:
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) // the 3rd 2 * 2 block
{
if ((DWORD32) abs(BlockCodingInfo[i].PtrBlockAddress[m][n]) > BitPlaneCheck) // not newly selected.
refinement = beta_2;
else
refinement = beta_1;
if( m < 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 (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;
}
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 // 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 < 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;
}
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 (m < 4 || 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;
}
// there are four small blocks to be considered.
else if( (PtrCoding->DecodingStopLocations.X_LocationStopDecoding < 6)
&& (PtrCoding->DecodingStopLocations.Y_LocationStopDecoding < 6))
{
if (m >= 6 || n >= 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;
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 < 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].PtrB
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -