[x265] [PATCH] fix bug in scaling list
Ashok Kumar Mishra
ashok at multicorewareinc.com
Fri Mar 18 15:01:52 CET 2016
sorry, it will not work with just one and operation.
On Fri, Mar 18, 2016 at 7:08 PM, Ashok Kumar Mishra <
ashok at multicorewareinc.com> wrote:
> On Fri, Mar 18, 2016 at 5:46 PM, <vignesh at multicorewareinc.com> wrote:
>
>> # 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)
>>
> instead of writing listIdc += (sizeIdc == 3) ? 3 : 1, you can write
> listIdc += sizeIdc & 3.
> so that if condition check can be avoided.
>
>> {
>> 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)
>>
> Check above comment
>
>> {
>> 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");
>> }
>> }
>> _______________________________________________
>> x265-devel mailing list
>> x265-devel at videolan.org
>> https://mailman.videolan.org/listinfo/x265-devel
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20160318/4b1fd3c6/attachment.html>
More information about the x265-devel
mailing list