# HG changeset patch
# User Satoshi Nakagawa <[email protected]>
# Date 1394980676 -32400
# Sun Mar 16 23:37:56 2014 +0900
# Node ID b134079762c9eec7c9e1ea657983ba95bd322a28
# Parent ba3ddc1848fff0fb8e96ca8f0453dd84171f213f
DC only for HIGH_BIT_DEPTH
diff -r ba3ddc1848ff -r b134079762c9 source/Lib/TLibCommon/TComTrQuant.cpp
--- a/source/Lib/TLibCommon/TComTrQuant.cpp Fri Mar 14 12:56:01 2014 -0500
+++ b/source/Lib/TLibCommon/TComTrQuant.cpp Sun Mar 16 23:37:56 2014 +0900
@@ -397,18 +397,19 @@
const uint32_t log2BlockSize = log2TrSize - 2;
-#if HIGH_BIT_DEPTH
- lastPos = !lastPos; // prevent warning
-#else
// DC only
if (lastPos == 0 && !((trSize == 4) && (mode != REG_DCT)))
{
- int dc_val = (((m_tmpCoeff[0] * 64 + 64) >> 7) * 64 + 2048) >> 12;
+ const int shift_1st = 7;
+ const int add_1st = 1 << (shift_1st - 1);
+ const int shift_2nd = 12 - (X265_DEPTH - 8);
+ const int add_2nd = 1 << (shift_2nd - 1);
+
+ int dc_val = (((m_tmpCoeff[0] * 64 + add_1st) >> shift_1st) * 64 +
add_2nd) >> shift_2nd;
primitives.blockfill_s[log2BlockSize](residual, stride, dc_val);
return;
}
-#endif
// TODO: this may need larger data types for X265_DEPTH > 8
primitives.idct[IDCT_4x4 + log2BlockSize - ((trSize == 4) && (mode !=
REG_DCT))](m_tmpCoeff, residual, stride);
_______________________________________________
x265-devel mailing list
[email protected]
https://mailman.videolan.org/listinfo/x265-devel