[x265] [PATCH] fix bug in scaling list
vignesh at multicorewareinc.com
vignesh at multicorewareinc.com
Fri Mar 18 13:16:12 CET 2016
# HG changeset patch
# User Vignesh <vignesh at multicorewareinc.com>
# Date 1458043301 -19800
# Tue Mar 15 17:31:41 2016 +0530
# Node ID f38191b0a7ddc6b29c79fecc2821e11e8b24e1db
# Parent 4a2f94a592511afabd434fc6cf02a469b6d65091
fix bug in scaling list
diff -r 4a2f94a59251 -r f38191b0a7dd source/common/scalinglist.cpp
--- a/source/common/scalinglist.cpp Wed Mar 09 14:34:06 2016 +0530
+++ b/source/common/scalinglist.cpp Tue Mar 15 17:31:41 2016 +0530
@@ -57,7 +57,11 @@
},
{
"INTRA32X32_LUMA",
+ "",
+ "",
"INTER32X32_LUMA",
+ "",
+ "",
},
};
const char MatrixType_DC[4][12][22] =
@@ -76,7 +80,11 @@
},
{
"INTRA32X32_LUMA_DC",
+ "",
+ "",
"INTER32X32_LUMA_DC",
+ "",
+ "",
},
};
@@ -246,15 +254,15 @@
char line[1024];
int32_t *src = NULL;
+ fseek(fp, 0, 0);
for (int sizeIdc = 0; sizeIdc < NUM_SIZES; sizeIdc++)
{
int size = X265_MIN(MAX_MATRIX_COEF_NUM, s_numCoefPerSize[sizeIdc]);
- for (int listIdc = 0; listIdc < NUM_LISTS; listIdc++)
+ for (int listIdc = 0; listIdc < NUM_LISTS; listIdc += (sizeIdc == 3) ? 3 : 1)
{
src = m_scalingListCoef[sizeIdc][listIdc];
- fseek(fp, 0, 0);
do
{
char *ret = fgets(line, 1024, fp);
@@ -282,7 +290,6 @@
if (sizeIdc > BLOCK_8x8)
{
- fseek(fp, 0, 0);
do
{
char *ret = fgets(line, 1024, fp);
@@ -310,7 +317,7 @@
fclose(fp);
m_bEnabled = true;
- m_bDataPresent = !checkDefaultScalingList();
+ m_bDataPresent = true;
return false;
}
diff -r 4a2f94a59251 -r f38191b0a7dd source/encoder/entropy.cpp
--- a/source/encoder/entropy.cpp Wed Mar 09 14:34:06 2016 +0530
+++ b/source/encoder/entropy.cpp Tue Mar 15 17:31:41 2016 +0530
@@ -306,7 +306,7 @@
{
for (int sizeId = 0; sizeId < ScalingList::NUM_SIZES; sizeId++)
{
- for (int listId = 0; listId < ScalingList::NUM_LISTS; listId++)
+ for (int listId = 0; listId < ScalingList::NUM_LISTS; listId += (sizeId == 3) ? 3 : 1)
{
int predList = scalingList.checkPredMode(sizeId, listId);
WRITE_FLAG(predList < 0, "scaling_list_pred_mode_flag");
@@ -334,12 +334,7 @@
for (int i = 0; i < coefNum; i++)
{
data = src[scan[i]] - nextCoef;
- nextCoef = src[scan[i]];
- if (data > 127)
- data = data - 256;
- if (data < -128)
- data = data + 256;
-
+ nextCoef = (nextCoef + data + 256) % 256;
WRITE_SVLC(data, "scaling_list_delta_coef");
}
}
More information about the x265-devel
mailing list