[x265] [PATCH] tencsbac: WritePCMCode for Cb and Cr merged into single block
Gopu Govindaswamy
gopu at multicorewareinc.com
Tue Mar 11 07:25:43 CET 2014
Yes Currently the The PCM Code path not being used, but it can be used
when we enable the m_usePCM flag and cu size 32
Thanks
Gopu G
On Mon, Mar 10, 2014 at 11:34 PM, Steve Borho <steve at borho.org> wrote:
> On Mon, Mar 10, 2014 at 3:41 AM, <gopu at multicorewareinc.com> wrote:
>> # HG changeset patch
>> # User Gopu Govindaswamy
>> # Date 1394440478 -19800
>> # Mon Mar 10 14:04:38 2014 +0530
>> # Node ID 592b9b952a71f11b778fb4f8afadf86ff9c9a05c
>> # Parent ba31dfc650d88afa937293a40fdaafd20c10c83e
>> tencsbac: WritePCMCode for Cb and Cr merged into single block
>
> I'm a little leary of changes to the PCM code paths, I don't know if
> they're currently used at all. Did you check that this code path was
> exercised by your test sequence(s)?
>
>> diff -r ba31dfc650d8 -r 592b9b952a71 source/Lib/TLibEncoder/TEncSbac.cpp
>> --- a/source/Lib/TLibEncoder/TEncSbac.cpp Mon Mar 10 12:14:41 2014 +0530
>> +++ b/source/Lib/TLibEncoder/TEncSbac.cpp Mon Mar 10 14:04:38 2014 +0530
>> @@ -1261,7 +1261,7 @@
>> int numZeroSubstreamsAtEndOfSlice = slice->getPic()->getFrameHeightInCU() - 1 - ((slice->getSliceCurEndCUAddr() - 1) / maxNumParts / slice->getPic()->getFrameWidthInCU());
>> numEntryPointOffsets = slice->getPic()->getFrameHeightInCU() - numZeroSubstreamsAtEndOfSlice - 1;
>> slice->setNumEntryPointOffsets(numEntryPointOffsets);
>> - entryPointOffset = new uint32_t[numEntryPointOffsets];
>> + entryPointOffset = X265_MALLOC(uint32_t, numEntryPointOffsets);
>> for (int idx = 0; idx < numEntryPointOffsets; idx++)
>> {
>> entryPointOffset[idx] = (substreamSizes[idx] >> 3);
>> @@ -1290,7 +1290,7 @@
>> WRITE_CODE(entryPointOffset[idx] - 1, offsetLenMinus1 + 1, "entry_point_offset_minus1");
>> }
>>
>> - delete [] entryPointOffset;
>> + X265_FREE(entryPointOffset);
>> }
>>
>> void TEncSbac::codeTerminatingBit(uint32_t lsLast)
>> @@ -1891,37 +1891,22 @@
>> pcmSample += width;
>> }
>>
>> - pcmSample = cu->getPCMSampleCb() + chromaOffset;
>> width = cu->getCUSize(absPartIdx) / 2;
>> height = cu->getCUSize(absPartIdx) / 2;
>> sampleBits = cu->getSlice()->getSPS()->getPCMBitDepthChroma();
>> + pixel* pcmSampleCb = cu->getPCMSampleCb() + chromaOffset;
>> + pixel* pcmSampleCr = cu->getPCMSampleCr() + chromaOffset;
>>
>> for (y = 0; y < height; y++)
>> {
>> for (x = 0; x < width; x++)
>> {
>> - uint32_t sample = pcmSample[x];
>> -
>> - m_binIf->xWritePCMCode(sample, sampleBits);
>> + m_binIf->xWritePCMCode(pcmSampleCb[x], sampleBits);
>> + m_binIf->xWritePCMCode(pcmSampleCr[x], sampleBits);
>> }
>> -
>> - pcmSample += width;
>> + pcmSampleCb += width;
>> + pcmSampleCr += width;
>> }
>> -
>> - pcmSample = cu->getPCMSampleCr() + chromaOffset;
>> -
>> - for (y = 0; y < height; y++)
>> - {
>> - for (x = 0; x < width; x++)
>> - {
>> - uint32_t sample = pcmSample[x];
>> -
>> - m_binIf->xWritePCMCode(sample, sampleBits);
>> - }
>> -
>> - pcmSample += width;
>> - }
>> -
>> m_binIf->resetBac();
>> }
>> }
>> _______________________________________________
>> x265-devel mailing list
>> x265-devel at videolan.org
>> https://mailman.videolan.org/listinfo/x265-devel
>
>
>
> --
> Steve Borho
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
--
Thanks & Regards
Gopu G
Multicoreware Inc
More information about the x265-devel
mailing list