[x265] Aborting with a warning?!? - x265 [warning]: extra unused command arguments given 1
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Called with: x265 --threads 0 --frame-threads 0 --log 2 --input - --input-depth 8 - --input-res 640x352 --fps 25 --frames 429 --wpp --ctu 64 - --tu-intra-depth 1 --tu-inter-depth 1 --me 1 --subme 2 --merange 60 - --rect --amp --max-merge 2 --no-early-skip --no-fast-cbf --rdpenalty 0 - --no-tskip --strong-intra-smoothing --no-constrained-intra --refresh 1 - --keyint 250 --bframes 4 --rc-lookahead 20 --bframe-bias 0 --b-adapt 2 - --b-pyramid 1 --ref 3 --weightp --qp 32 --cbqpoffs 0 --crqpoffs 0 --rd 3 --no-signhide --lft --sao --sao-lcu-bounds 0 --sao-lcu-opt 1 --psnr - --no-ssim --output H:\Temp\test_08_59_45_9310_01.265 x265 abort with: x265 [warning]: extra unused command arguments given 1 Removing the values, which are not defaults one ends up with: x265 --input - --input-res 640x352 --fps 25 --frames 429 --b-adapt 2 - --no-signhide --output H:\Temp\test.265 and that command line is no problem. a. x265 should not abort due to warnings, but only due to errors b. x265 should not abort due to commands which are covered by the defaults First tried: x265 [info]: HEVC encoder version 0.6+112-ef26367cd10c but problem is still present with: x265 [info]: HEVC encoder version 0.6+176-c6ff3ede1f29 Would be nice if this could be fixed. Cu Selur -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.22 (MingW32) iQIcBAEBCAAGBQJSrrUjAAoJEJA5OiupSg93cEgP/2Q9a5/XbJ73w7g4KAfweGlL +h8NXEcDz+lPernN6NDT6zXKVy8SnFLUiziO8nLyF6KeRMNjaajelXeGXiQm6b8g HjIKRv2F5n0+oaDZRgy8fNNA8QcfG/NdX+eYr008vHSzke7fnNr68ERo6TEOIzRY f9KblYMOIETs3TWDnQvUAbGRJHfdoB5ZDuZI+V0Mq3j9NYuyKAQ6WwmkVIMUH+xY oaOxVOGCL7zRtzwOsXDbT8M7bZ340qjGAGj5X7gxzBtXXxZcul8Jqd+WvYmm6dm2 YG+FbRd02Q71+cnGK1CvYTHaQo8WBp4Wd12xoMLMq3nPJJJXqEt/xqxDQqfc3Rjp SzGtA/gjod+CDhiXDCpuX+GnQHJ+iuCusT5XMPm3VPAJ7nG4S7WIuhMxSsP+VMgN O9E3VhNddgNxMmOkn+Je1JYdB2wlMTT3m7u6hUNjFB5vz8Gac+rmw3/yig5Axijy Zp24PJmPqP/5BdY9zm9QhfwJGQFKIDibUgdWrUOL+It/U/9jUaoZiee8j84DpyZG by+8PcI7oBN85Z0PXhWFfiIqjKMKMiGnUOgcpIgyzJa723RGPuT+mjC+RLdE40jA 8G6Gkg0nvgb/rtmwVAQk8Hpd4V+HQOOHMvg/NtwOZIbExy3TY3o+pXipWhO/7mzq hvz812LtqEUT1lzVOcbj =5IrJ -END PGP SIGNATURE- ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
[x265] [PATCH] rd level: fix for output mismatch
# HG changeset patch # User Sumalatha Polureddy # Date 1387182478 -19800 # Node ID 70a5357626fe2f45f0c462871c26b468a023a322 # Parent 238d7f272d1e5c49d90bb15f40b2d7e90be78ba1 rd level: fix for output mismatch For boundary conditions, cost calculation was wrong. diff -r 238d7f272d1e -r 70a5357626fe source/encoder/compress.cpp --- a/source/encoder/compress.cpp Mon Dec 16 10:57:06 2013 +0530 +++ b/source/encoder/compress.cpp Mon Dec 16 13:57:58 2013 +0530 @@ -768,11 +768,12 @@ m_entropyCoder-resetBits(); m_entropyCoder-encodeSplitFlag(outTempCU, 0, depth, true); outTempCU-m_totalBits += m_entropyCoder-getNumberOfWrittenBits(); // split bits -outTempCU-m_totalCost = m_rdCost-calcRdCost(outTempCU-m_totalDistortion, outTempCU-m_totalBits); } -else -outTempCU-m_totalCost = m_rdCost-calcRdSADCost(outTempCU-m_totalDistortion, outTempCU-m_totalBits); } +if (m_cfg-param.rdLevel 1) +outTempCU-m_totalCost = m_rdCost-calcRdCost(outTempCU-m_totalDistortion, outTempCU-m_totalBits); +else +outTempCU-m_totalCost = m_rdCost-calcRdSADCost(outTempCU-m_totalDistortion, outTempCU-m_totalBits); if ((g_maxCUWidth depth) == outTempCU-getSlice()-getPPS()-getMinCuDQPSize() outTempCU-getSlice()-getPPS()-getUseDQP()) { ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
[x265] [PATCH] TEncCu: reintroduce a macro which was removed while merging
# HG changeset patch # User Sumalatha Polureddy # Date 1387182734 -19800 # Node ID a5b5595504bebedc692d295b220a0814f0d6cc11 # Parent 70a5357626fe2f45f0c462871c26b468a023a322 TEncCu: reintroduce a macro which was removed while merging diff -r 70a5357626fe -r a5b5595504be source/Lib/TLibEncoder/TEncCu.h --- a/source/Lib/TLibEncoder/TEncCu.h Mon Dec 16 13:57:58 2013 +0530 +++ b/source/Lib/TLibEncoder/TEncCu.h Mon Dec 16 14:02:14 2013 +0530 @@ -131,9 +131,10 @@ bool m_abortFlag; // aborts recursion when the child CU costs more than parent CU public: - +#if LOG_CU_STATISTICS StatisticLog m_sliceTypeLog[3]; StatisticLog* m_log; +#endif TEncCu(); void init(Encoder* top); ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
[x265] [PATCH] TComDataCU: fix gcc warning
# HG changeset patch # User Sumalatha Polureddy # Date 1387183634 -19800 # Node ID 16434925a1cf7e0e79fdc85b269fede0dd235942 # Parent a5b5595504bebedc692d295b220a0814f0d6cc11 TComDataCU: fix gcc warning diff -r a5b5595504be -r 16434925a1cf source/Lib/TLibCommon/TComDataCU.cpp --- a/source/Lib/TLibCommon/TComDataCU.cpp Mon Dec 16 14:02:14 2013 +0530 +++ b/source/Lib/TLibCommon/TComDataCU.cpp Mon Dec 16 14:17:14 2013 +0530 @@ -499,11 +499,9 @@ memcpy(m_height, rpcCU-getHeight() + m_absIdxInLCU, iSizeInUchar); uint32_t tmp = (g_maxCUWidth * g_maxCUHeight) (depth 1); -uint32_t tmp2 = m_absIdxInLCU * m_pic-getMinCUWidth() * m_pic-getMinCUHeight(); memset(m_trCoeffY, 0, sizeof(TCoeff) * tmp); tmp = ((g_maxCUWidth m_hChromaShift) * (g_maxCUHeight m_hChromaShift)) (depth 1); -tmp2 = m_absIdxInLCU * (m_pic-getMinCUWidth() m_hChromaShift) * (m_pic-getMinCUHeight() m_vChromaShift); memset(m_trCoeffCb, 0, sizeof(TCoeff) * tmp); memset(m_trCoeffCr, 0, sizeof(TCoeff) * tmp); } ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
[x265] [PATCH] rd level: remove unnecessary calculations in intra residual encoding
# HG changeset patch # User Deepthi Devaki deepthidev...@multicorewareinc.com # Date 1387184637 -19800 # Node ID a8e34580f5354f281a0d8bbebbee75a3e62b6824 # Parent 238d7f272d1e5c49d90bb15f40b2d7e90be78ba1 rd level: remove unnecessary calculations in intra residual encoding calcrecon calculates recon,reconQT and reconIpred which is redundant. Use add and block copy instead of calcrecon. diff -r 238d7f272d1e -r a8e34580f535 source/Lib/TLibEncoder/TEncSearch.cpp --- a/source/Lib/TLibEncoder/TEncSearch.cpp Mon Dec 16 10:57:06 2013 +0530 +++ b/source/Lib/TLibEncoder/TEncSearch.cpp Mon Dec 16 14:33:57 2013 +0530 @@ -1026,7 +1026,6 @@ uint32_t numCoeffPerInc = cu-getSlice()-getSPS()-getMaxCUWidth() * cu-getSlice()-getSPS()-getMaxCUHeight() (cu-getSlice()-getSPS()-getMaxCUDepth() 1); TCoeff* coeff = m_qtTempCoeffY[qtLayer] + numCoeffPerInc * absPartIdx; -int16_t* reconQt= m_qtTempTComYuv[qtLayer].getLumaAddr(absPartIdx); assert(m_qtTempTComYuv[qtLayer].m_width == MAX_CU_SIZE); uint32_t zorder = cu-getZorderIdxInCU() + absPartIdx; @@ -1077,7 +1076,9 @@ //Generate Recon assert(width = 32); -primitives.calcrecon[size](pred, residual, recon, reconQt, reconIPred, stride, MAX_CU_SIZE, reconIPredStride); +int part = partitionFromSizes(width, height); +primitives.luma_add_ps[part](recon, stride, pred, residual, stride, stride); +primitives.blockcpy_pp(width, height, reconIPred, reconIPredStride, recon, stride); } if (bCheckSplit !bCheckFull) @@ -1652,7 +1653,6 @@ Pel* recon = (chromaId 0 ? reconYuv-getCrAddr(absPartIdx) : reconYuv-getCbAddr(absPartIdx)); uint32_t numCoeffPerInc = (cu-getSlice()-getSPS()-getMaxCUWidth() * cu-getSlice()-getSPS()-getMaxCUHeight() (cu-getSlice()-getSPS()-getMaxCUDepth() 1)) 2; TCoeff* coeff = (chromaId 0 ? m_qtTempCoeffCr[qtlayer] : m_qtTempCoeffCb[qtlayer]) + numCoeffPerInc * absPartIdx; -int16_t* reconQt= (chromaId 0 ? m_qtTempTComYuv[qtlayer].getCrAddr(absPartIdx) : m_qtTempTComYuv[qtlayer].getCbAddr(absPartIdx)); assert(m_qtTempTComYuv[qtlayer].m_cwidth == MAX_CU_SIZE / 2); uint32_t zorder = cu-getZorderIdxInCU() + absPartIdx; @@ -1718,7 +1718,9 @@ //= reconstruction = assert(((uint32_t)(size_t)residual (width - 1)) == 0); assert(width = 32); -primitives.calcrecon[size](pred, residual, recon, reconQt, reconIPred, stride, MAX_CU_SIZE / 2, reconIPredStride); +int part = partitionFromSizes(cu-getWidth(0) (trDepth), cu-getHeight(0) (trDepth)); +primitives.chroma[m_cfg-param.internalCsp].add_ps[part](recon, stride, pred, residual, stride, stride); + primitives.chroma[m_cfg-param.internalCsp].copy_pp[part](reconIPred, reconIPredStride, recon, stride); } //= copy transform coefficients = ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
Re: [x265] [PATCH] rd level: fix for output mismatch
On Mon, Dec 16, 2013 at 2:49 PM, Deepthi Nandakumar deep...@multicorewareinc.com wrote: On Mon, Dec 16, 2013 at 1:58 PM, sumala...@multicorewareinc.com wrote: # HG changeset patch # User Sumalatha Polureddy # Date 1387182478 -19800 # Node ID 70a5357626fe2f45f0c462871c26b468a023a322 # Parent 238d7f272d1e5c49d90bb15f40b2d7e90be78ba1 rd level: fix for output mismatch For boundary conditions, cost calculation was wrong. diff -r 238d7f272d1e -r 70a5357626fe source/encoder/compress.cpp --- a/source/encoder/compress.cpp Mon Dec 16 10:57:06 2013 +0530 +++ b/source/encoder/compress.cpp Mon Dec 16 13:57:58 2013 +0530 @@ -768,11 +768,12 @@ m_entropyCoder-resetBits(); m_entropyCoder-encodeSplitFlag(outTempCU, 0, depth, true); outTempCU-m_totalBits += m_entropyCoder-getNumberOfWrittenBits(); // split bits -outTempCU-m_totalCost = m_rdCost-calcRdCost(outTempCU-m_totalDistortion, outTempCU-m_totalBits); } -else -outTempCU-m_totalCost = m_rdCost-calcRdSADCost(outTempCU-m_totalDistortion, outTempCU-m_totalBits); } +if (m_cfg-param.rdLevel 1) +outTempCU-m_totalCost = m_rdCost-calcRdCost(outTempCU-m_totalDistortion, outTempCU-m_totalBits); +else +outTempCU-m_totalCost = m_rdCost-calcRdSADCost(outTempCU-m_totalDistortion, outTempCU-m_totalBits); Whats the logic behind this? If it's a valid output change for rd 1, we dont have to revert. Output change is not valid. It was mistake that cost was calculated only if it is not boundary. if ((g_maxCUWidth depth) == outTempCU-getSlice()-getPPS()-getMinCuDQPSize() outTempCU-getSlice()-getPPS()-getUseDQP()) { ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
Re: [x265] [PATCH] rd level: use cu coeff array while computing coefficients instead of temp buffer
Build fails. Restore qtlayer. On Mon, Dec 16, 2013 at 3:07 PM, deepthidev...@multicorewareinc.com wrote: # HG changeset patch # User Deepthi Devaki deepthidev...@multicorewareinc.com # Date 1387185624 -19800 # Node ID f20e5ab835cd7071d9ebeabff50f6b9fef4d3e39 # Parent 9bb16a023918c342b907d106b4a3d59ec2473bc1 rd level: use cu coeff array while computing coefficients instead of temp buffer diff -r 9bb16a023918 -r f20e5ab835cd source/Lib/TLibEncoder/TEncSearch.cpp --- a/source/Lib/TLibEncoder/TEncSearch.cpp Mon Dec 16 14:33:57 2013 +0530 +++ b/source/Lib/TLibEncoder/TEncSearch.cpp Mon Dec 16 14:50:24 2013 +0530 @@ -3266,9 +3266,7 @@ if (cu-getPredictionMode(0) == MODE_INTER) { residualTransformQuantInter(cu, 0, 0, resiYuv, cu-getDepth(0), true); -xSetResidualQTData(cu, 0, 0, NULL, cu-getDepth(0), false); uint32_t width = cu-getWidth(0); -xSetResidualQTData(cu, 0, 0, resiYuv, cu-getDepth(0), true); reconYuv-addClip(predYuv, resiYuv, 0, width); if (cu-getMergeFlag(0) cu-getPartitionSize(0) == SIZE_2Nx2N cu-getQtRootCbf(0) == 0) @@ -3322,10 +3320,10 @@ if (bCheckFull) { const uint32_t numCoeffPerAbsPartIdxIncrement = cu-getSlice()-getSPS()-getMaxCUWidth() * cu-getSlice()-getSPS()-getMaxCUHeight() (cu-getSlice()-getSPS()-getMaxCUDepth() 1); -const uint32_t qtlayer = cu-getSlice()-getSPS()-getQuadtreeTULog2MaxSize() - trSizeLog2; -TCoeff *coeffCurY = m_qtTempCoeffY[qtlayer] + (numCoeffPerAbsPartIdxIncrement * absPartIdx); -TCoeff *coeffCurU = m_qtTempCoeffCb[qtlayer] + (numCoeffPerAbsPartIdxIncrement * absPartIdx 2); -TCoeff *coeffCurV = m_qtTempCoeffCr[qtlayer] + (numCoeffPerAbsPartIdxIncrement * absPartIdx 2); + +TCoeff *coeffCurY = cu-getCoeffY() + (numCoeffPerAbsPartIdxIncrement * absPartIdx); +TCoeff *coeffCurU = cu-getCoeffCb() + (numCoeffPerAbsPartIdxIncrement * absPartIdx 2); +TCoeff *coeffCurV = cu-getCoeffCr() + (numCoeffPerAbsPartIdxIncrement * absPartIdx 2); int trWidth = 0, trHeight = 0, trWidthC = 0, trHeightC = 0; uint32_t absTUPartIdxC = absPartIdx; @@ -3370,64 +3368,55 @@ if (absSumY) { -int16_t *curResiY = m_qtTempTComYuv[qtlayer].getLumaAddr(absTUPartIdx); +int16_t *curResiY = resiYuv-getLumaAddr(absTUPartIdx); m_trQuant-setQPforQuant(cu-getQP(0), TEXT_LUMA, cu-getSlice()-getSPS()-getQpBDOffsetY(), 0); int scalingListType = 3 + g_eTTable[(int)TEXT_LUMA]; assert(scalingListType 6); -assert(m_qtTempTComYuv[qtlayer].m_width == MAX_CU_SIZE); - m_trQuant-invtransformNxN(cu-getCUTransquantBypass(absPartIdx), REG_DCT, curResiY, MAX_CU_SIZE, coeffCurY, trWidth, trHeight, scalingListType, false, lastPosY); //this is for inter mode only + m_trQuant-invtransformNxN(cu-getCUTransquantBypass(absPartIdx), REG_DCT, curResiY, resiYuv-m_width, coeffCurY, trWidth, trHeight, scalingListType, false, lastPosY); //this is for inter mode only } else { -int16_t *ptr = m_qtTempTComYuv[qtlayer].getLumaAddr(absTUPartIdx); -assert(m_qtTempTComYuv[qtlayer].m_width == MAX_CU_SIZE); - +int16_t *ptr = resiYuv-getLumaAddr(absTUPartIdx); assert(trWidth == trHeight); -primitives.blockfill_s[(int)g_convertToBit[trWidth]](ptr, MAX_CU_SIZE, 0); +primitives.blockfill_s[(int)g_convertToBit[trWidth]](ptr, resiYuv-m_width, 0); } if (bCodeChroma) { if (absSumU) { -int16_t *pcResiCurrU = m_qtTempTComYuv[qtlayer].getCbAddr(absTUPartIdxC); +int16_t *pcResiCurrU = resiYuv-getCbAddr(absTUPartIdxC); int curChromaQpOffset = cu-getSlice()-getPPS()-getChromaCbQpOffset() + cu-getSlice()-getSliceQpDeltaCb(); m_trQuant-setQPforQuant(cu-getQP(0), TEXT_CHROMA, cu-getSlice()-getSPS()-getQpBDOffsetC(), curChromaQpOffset); int scalingListType = 3 + g_eTTable[(int)TEXT_CHROMA_U]; assert(scalingListType 6); -assert(m_qtTempTComYuv[qtlayer].m_cwidth == MAX_CU_SIZE / 2); - m_trQuant-invtransformNxN(cu-getCUTransquantBypass(absPartIdx), REG_DCT, pcResiCurrU, MAX_CU_SIZE / 2, coeffCurU, trWidthC, trHeightC, scalingListType, false, lastPosU); + m_trQuant-invtransformNxN(cu-getCUTransquantBypass(absPartIdx), REG_DCT, pcResiCurrU, resiYuv-m_cwidth, coeffCurU, trWidthC, trHeightC, scalingListType, false, lastPosU); } else { -int16_t *ptr = m_qtTempTComYuv[qtlayer].getCbAddr(absTUPartIdxC); -assert(m_qtTempTComYuv[qtlayer].m_cwidth == MAX_CU_SIZE / 2); - +int16_t *ptr = resiYuv-getCbAddr(absTUPartIdxC);
[x265] [PATCH] compress: remove unused variables
# HG changeset patch # User Sumalatha Polureddy # Date 1387191558 -19800 # Node ID 35c47ea3b228e2c5e0485483b3f33aa25cc667e4 # Parent 16434925a1cf7e0e79fdc85b269fede0dd235942 compress: remove unused variables diff -r 16434925a1cf -r 35c47ea3b228 source/encoder/compress.cpp --- a/source/encoder/compress.cpp Mon Dec 16 14:17:14 2013 +0530 +++ b/source/encoder/compress.cpp Mon Dec 16 16:29:18 2013 +0530 @@ -337,9 +337,7 @@ m_origYuv[depth]-copyFromPicYuv(pic-getPicYuvOrg(), outTempCU-getAddr(), outTempCU-getZorderIdxInCU()); // variables for fast encoder decision -bool bTrySplit = true; bool bSubBranch = true; -bool bTrySplitDQP = true; bool bBoundary = false; uint32_t lpelx = outTempCU-getCUPelX(); uint32_t rpelx = lpelx + outTempCU-getWidth(0) - 1; @@ -395,9 +393,6 @@ { if (!bSliceEnd bInsidePicture) { -// variables for fast encoder decision -bTrySplit = true; - /* Initialise all Mode-CUs based on parentCU */ if (depth == 0) { @@ -434,14 +429,6 @@ m_bestPredYuv[depth] = tempYuv; } -bTrySplitDQP = bTrySplit; - -if ((int)depth = m_addSADDepth) -{ -m_LCUPredictionSAD += m_temporalSAD; -m_addSADDepth = depth; -} - /*Compute Rect costs*/ if (m_cfg-param.bEnableRectInter) { @@ -652,12 +639,11 @@ else if (!(bSliceEnd bInsidePicture)) { bBoundary = true; -m_addSADDepth++; } } // further split -if (bSubBranch bTrySplitDQP depth g_maxCUDepth - g_addCUDepth) +if (bSubBranch depth g_maxCUDepth - g_addCUDepth) { #if EARLY_EXIT // turn ON this to enable early exit // early exit when the RD cost of best mode at depth n is less than the sum of avgerage of RD cost of the neighbour @@ -668,9 +654,8 @@ if (outBestCU != 0) #endif { -uint64_t totalCostNeigh = 0, totalCostCU = 0, totalCountCU = 0; +uint64_t totalCostNeigh = 0, totalCostCU = 0, totalCountNeigh = 0, totalCountCU = 0; double avgCost = 0; -uint64_t totalCountNeigh = 0; TComDataCU* above = outTempCU-getCUAbove(); TComDataCU* aboveLeft = outTempCU-getCUAboveLeft(); TComDataCU* aboveRight = outTempCU-getCUAboveRight(); ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
[x265] [PATCH] rc: Calculate the variance data for weighted prediction if aq-mode is disable
# HG changeset patch # User Gopu Govindaswamy g...@multicorewareinc.com # Date 1387195927 -19800 # Node ID bdc7afa5ba5afee7113ac0d427fbfc660359716d # Parent 3dae450a06a4b390ce6fd947d5095b739b01c6d8 rc: Calculate the variance data for weighted prediction if aq-mode is disable diff -r 3dae450a06a4 -r bdc7afa5ba5a source/encoder/ratecontrol.cpp --- a/source/encoder/ratecontrol.cppMon Dec 16 13:57:58 2013 +0530 +++ b/source/encoder/ratecontrol.cppMon Dec 16 17:42:07 2013 +0530 @@ -116,6 +116,15 @@ for (int cuxy = 0; cuxy cuCount; cuxy++ ) pic-m_lowres.invQscaleFactor[cuxy] = 256; } + + /* Need variance data for weighted prediction */ +if (cfg-param.bEnableWeightedPred) +{ +for (int cuy = 0; cuy maxRow; cuy++ ) +for (int cux = 0; cux maxCol; cux++ ) +acEnergyCu(pic, cux, cuy); +} + } else { ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
Re: [x265] [PATCH] rc: Calculate the variance data for weighted prediction if aq-mode is disable
Am I missing something here? You have added code in the else part - if(AQ is disabled), we are already calculating variance for weightP. On Mon, Dec 16, 2013 at 5:43 PM, Gopu Govindaswamy g...@multicorewareinc.com wrote: # HG changeset patch # User Gopu Govindaswamy g...@multicorewareinc.com # Date 1387195927 -19800 # Node ID bdc7afa5ba5afee7113ac0d427fbfc660359716d # Parent 3dae450a06a4b390ce6fd947d5095b739b01c6d8 rc: Calculate the variance data for weighted prediction if aq-mode is disable diff -r 3dae450a06a4 -r bdc7afa5ba5a source/encoder/ratecontrol.cpp --- a/source/encoder/ratecontrol.cppMon Dec 16 13:57:58 2013 +0530 +++ b/source/encoder/ratecontrol.cppMon Dec 16 17:42:07 2013 +0530 @@ -116,6 +116,15 @@ for (int cuxy = 0; cuxy cuCount; cuxy++ ) pic-m_lowres.invQscaleFactor[cuxy] = 256; } + + /* Need variance data for weighted prediction */ +if (cfg-param.bEnableWeightedPred) +{ +for (int cuy = 0; cuy maxRow; cuy++ ) +for (int cux = 0; cux maxCol; cux++ ) +acEnergyCu(pic, cux, cuy); +} + } else { ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
Re: [x265] [PATCH] rc: Calculate the variance data for weighted prediction if aq-mode is disable
Ughh - there's something wrong with my hg import. All clear now. On Mon, Dec 16, 2013 at 10:34 PM, Deepthi Nandakumar deep...@multicorewareinc.com wrote: Am I missing something here? You have added code in the else part - if(AQ is disabled), we are already calculating variance for weightP. On Mon, Dec 16, 2013 at 5:43 PM, Gopu Govindaswamy g...@multicorewareinc.com wrote: # HG changeset patch # User Gopu Govindaswamy g...@multicorewareinc.com # Date 1387195927 -19800 # Node ID bdc7afa5ba5afee7113ac0d427fbfc660359716d # Parent 3dae450a06a4b390ce6fd947d5095b739b01c6d8 rc: Calculate the variance data for weighted prediction if aq-mode is disable diff -r 3dae450a06a4 -r bdc7afa5ba5a source/encoder/ratecontrol.cpp --- a/source/encoder/ratecontrol.cppMon Dec 16 13:57:58 2013 +0530 +++ b/source/encoder/ratecontrol.cppMon Dec 16 17:42:07 2013 +0530 @@ -116,6 +116,15 @@ for (int cuxy = 0; cuxy cuCount; cuxy++ ) pic-m_lowres.invQscaleFactor[cuxy] = 256; } + + /* Need variance data for weighted prediction */ +if (cfg-param.bEnableWeightedPred) +{ +for (int cuy = 0; cuy maxRow; cuy++ ) +for (int cux = 0; cux maxCol; cux++ ) +acEnergyCu(pic, cux, cuy); +} + } else { ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
Re: [x265] [PATCH] rc: Calculate the variance data for weighted prediction if aq-mode is disable
What about the variance value returned by acEnergyCu? On Mon, Dec 16, 2013 at 10:43 PM, Deepthi Nandakumar deep...@multicorewareinc.com wrote: Ughh - there's something wrong with my hg import. All clear now. On Mon, Dec 16, 2013 at 10:34 PM, Deepthi Nandakumar deep...@multicorewareinc.com wrote: Am I missing something here? You have added code in the else part - if(AQ is disabled), we are already calculating variance for weightP. On Mon, Dec 16, 2013 at 5:43 PM, Gopu Govindaswamy g...@multicorewareinc.com wrote: # HG changeset patch # User Gopu Govindaswamy g...@multicorewareinc.com # Date 1387195927 -19800 # Node ID bdc7afa5ba5afee7113ac0d427fbfc660359716d # Parent 3dae450a06a4b390ce6fd947d5095b739b01c6d8 rc: Calculate the variance data for weighted prediction if aq-mode is disable diff -r 3dae450a06a4 -r bdc7afa5ba5a source/encoder/ratecontrol.cpp --- a/source/encoder/ratecontrol.cppMon Dec 16 13:57:58 2013 +0530 +++ b/source/encoder/ratecontrol.cppMon Dec 16 17:42:07 2013 +0530 @@ -116,6 +116,15 @@ for (int cuxy = 0; cuxy cuCount; cuxy++ ) pic-m_lowres.invQscaleFactor[cuxy] = 256; } + + /* Need variance data for weighted prediction */ +if (cfg-param.bEnableWeightedPred) +{ +for (int cuy = 0; cuy maxRow; cuy++ ) +for (int cux = 0; cux maxCol; cux++ ) +acEnergyCu(pic, cux, cuy); +} + } else { ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
[x265] Warnings during build - on Mac OS X 10.6.8
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Nothing seriously, just wanted to note that building on Mac OS throws some warnings during building. /Users/selur/x265/source/Lib/TLibCommon/TComSlice.h: In constructor ‘x265::TComSlice::TComSlice()’: /Users/selur/x265/source/Lib/TLibCommon/TComSlice.h:1359: warning: ‘x265::TComSlice::m_avgQpRc’ will be initialized after /Users/selur/x265/source/Lib/TLibCommon/TComSlice.h:1326: warning: ‘x265::TComSPS* x265::TComSlice::m_sps’ /Users/selur/x265/source/Lib/TLibCommon/TComSlice.cpp:49: warning: when initialized here /Users/selur/x265/source/common/vec/vec-primitives.cpp:66: warning: unused parameter ‘p’ /Users/selur/x265/source/common/vec/vec-primitives.cpp:66: warning: unused parameter ‘cpuMask’ Cu Selur -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.22 (MingW32) iQIcBAEBCAAGBQJSr4DhAAoJEJA5OiupSg93vskP/RUJZ22YyAJ3rN2G2cfz5KBc YQwo4aQQH10VtNOKriXMaD5U5ty7DBNJCKY5D1OPv7xpGQdTJVW5D6ClxDhYVTM2 WbvzONjPfLf8Fq+tKfS1pSnOtYUKeanpjl/GZh6I39XMRYC4XwK3c5AYSBB6c1Nx oRx+X3tPKXRYB3g5l988Lt8oQjD+fNpcvHhqOWn2GzRAD7n3zwp5ekZTAsz1DjPP EF9xMIngLLhyY/hiEALs661FirZSAqRHKtGWlcriovX2lXC1cFdI1r2LS428e2ND B9V56w0pFEnWpD1n2N7sM4p6keFfb9isSxZ3hB/DvN1qOM3cMx0UXuzCXa7fNKNN 1BTyopaZwRpWZDSHouItiPUTpkPLBpHYqifbhRD5XmFuOX+gkO47z5VL+9hKnhWQ YMRhuU5zsmb7epTJaVsf+MQWd2R2UWuBKfgx799AVVU94ls3rHd1cPzP5KJZTW1m 4KkNJ1Pcl+smzUaPL/GtFKyw4uNP8B8MFYSXV5T4E6RqZay4NYeDk312k4xdGg/Q zKzUXBeQrYdyogspbWt3x1xlgox9aP6pWOMkIxchJETDzYt2ll5z9q14SMi88tm7 bafsCOK1moxrJkBRz6zutJ97AJGtDaEt7qu0Pu1bfFsUIMkhf/eq2pOR3zoKzaBU oeVWgXy6N0bxfcnzVvGG =aX90 -END PGP SIGNATURE- ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
[x265] [PATCH] rc: bug fix for variance data calculation for weighted prediction when aq-mode is disable
# HG changeset patch # User Gopu Govindaswamy g...@multicorewareinc.com # Date 1387257603 -19800 # Node ID 6f1a39a9e886cf7c7a9ccf2948ca3e87d45abb12 # Parent baf811614a7a25816aa5a7a631966e1cd392518c rc: bug fix for variance data calculation for weighted prediction when aq-mode is disable diff -r baf811614a7a -r 6f1a39a9e886 source/encoder/ratecontrol.cpp --- a/source/encoder/ratecontrol.cppMon Dec 16 17:42:07 2013 +0530 +++ b/source/encoder/ratecontrol.cppTue Dec 17 10:50:03 2013 +0530 @@ -120,9 +120,9 @@ /* Need variance data for weighted prediction */ if (cfg-param.bEnableWeightedPred) { -for (int cuy = 0; cuy maxRow; cuy++ ) -for (int cux = 0; cux maxCol; cux++ ) -acEnergyCu(pic, cux, cuy); +for (block_y = 0; block_y maxRow; block_y += 16) +for (block_x = 0; block_x maxCol; block_x += 16) +acEnergyCu(pic, block_x, block_y); } } @@ -601,10 +601,7 @@ if (cfg-param.rc.cuTree) { -double scale = curSlice-getSPS()-getVuiParameters()-getTimingInfo()-getTimeScale(); -double units = curSlice-getSPS()-getVuiParameters()-getTimingInfo()-getNumUnitsInTick(); -double timescale = units / scale; -q = pow(BASE_FRAME_DURATION / CLIP_DURATION(2 * timescale), 1 - cfg-param.rc.qCompress); +q = pow(BASE_FRAME_DURATION / CLIP_DURATION(2 * frameDuration), 1 - cfg-param.rc.qCompress); } else q = pow(rce-blurredComplexity, 1 - cfg-param.rc.qCompress); ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
[x265] [PATCH] rd level: use cu coeff array while computing Intra coefficients instead of temp buffer
# HG changeset patch # User Deepthi Devaki deepthidev...@multicorewareinc.com # Date 1387188225 -19800 # Node ID dab555fff5bda83ba14d073c4a5268df81547fcb # Parent baf811614a7a25816aa5a7a631966e1cd392518c rd level: use cu coeff array while computing Intra coefficients instead of temp buffer diff -r baf811614a7a -r dab555fff5bd source/Lib/TLibEncoder/TEncSearch.cpp --- a/source/Lib/TLibEncoder/TEncSearch.cpp Mon Dec 16 17:42:07 2013 +0530 +++ b/source/Lib/TLibEncoder/TEncSearch.cpp Mon Dec 16 15:33:45 2013 +0530 @@ -1022,11 +1022,8 @@ int16_t* residual = resiYuv-getLumaAddr(absPartIdx); Pel* recon= reconYuv-getLumaAddr(absPartIdx); -uint32_t qtLayer= cu-getSlice()-getSPS()-getQuadtreeTULog2MaxSize() - trSizeLog2; uint32_t numCoeffPerInc = cu-getSlice()-getSPS()-getMaxCUWidth() * cu-getSlice()-getSPS()-getMaxCUHeight() (cu-getSlice()-getSPS()-getMaxCUDepth() 1); -TCoeff* coeff = m_qtTempCoeffY[qtLayer] + numCoeffPerInc * absPartIdx; - -assert(m_qtTempTComYuv[qtLayer].m_width == MAX_CU_SIZE); +TCoeff* coeff = cu-getCoeffY() + numCoeffPerInc * absPartIdx; uint32_t zorder = cu-getZorderIdxInCU() + absPartIdx; Pel* reconIPred = cu-getPic()-getPicYuvRec()-getLumaAddr(cu-getAddr(), zorder); @@ -1102,14 +1099,6 @@ return; } - -//Copy coeffs to cu -uint32_t qtlayer= cu-getSlice()-getSPS()-getQuadtreeTULog2MaxSize() - trSizeLog2; -uint32_t numCoeffY= (cu-getSlice()-getSPS()-getMaxCUWidth() * cu-getSlice()-getSPS()-getMaxCUHeight()) (fullDepth 1); -uint32_t numCoeffIncY = (cu-getSlice()-getSPS()-getMaxCUWidth() * cu-getSlice()-getSPS()-getMaxCUHeight()) (cu-getSlice()-getSPS()-getMaxCUDepth() 1); -TCoeff* coeffSrcY = m_qtTempCoeffY[qtlayer] + (numCoeffIncY * absPartIdx); -TCoeff* coeffDestY = cu-getCoeffY()+ (numCoeffIncY * absPartIdx); -::memcpy(coeffDestY, coeffSrcY, sizeof(TCoeff) * numCoeffY); } void TEncSearch::xSetIntraResultQT(TComDataCU* cu, uint32_t trDepth, uint32_t absPartIdx, bool bLumaOnly, TComYuv* reconYuv) @@ -1615,14 +1604,12 @@ TShortYUV* resiYuv, TComYuv*reconYuv) { -bool bChromaSame = false; uint32_t fullDepth = cu-getDepth(0) + trDepth; uint32_t trMode= cu-getTransformIdx(absPartIdx); if (trMode == trDepth) { uint32_t trSizeLog2 = g_convertToBit[cu-getSlice()-getSPS()-getMaxCUWidth() fullDepth] + 2; uint32_t actualTrDepth = trDepth; -bChromaSame = false; if (trSizeLog2 == 2) { assert(trDepth 0); @@ -1633,12 +1620,10 @@ { return; } -bChromaSame = true; } cu-setTransformSkipSubParts(0, TEXT_CHROMA_U, absPartIdx, cu-getDepth(0) + actualTrDepth); cu-setTransformSkipSubParts(0, TEXT_CHROMA_V, absPartIdx, cu-getDepth(0) + actualTrDepth); -uint32_t qtlayer= cu-getSlice()-getSPS()-getQuadtreeTULog2MaxSize() - trSizeLog2; uint32_t width = cu-getWidth(0) (trDepth + m_hChromaShift); uint32_t height = cu-getHeight(0) (trDepth + m_vChromaShift); uint32_t stride = fencYuv-getCStride(); @@ -1652,9 +1637,8 @@ int16_t* residual = (chromaId 0 ? resiYuv-getCrAddr(absPartIdx) : resiYuv-getCbAddr(absPartIdx)); Pel* recon = (chromaId 0 ? reconYuv-getCrAddr(absPartIdx) : reconYuv-getCbAddr(absPartIdx)); uint32_t numCoeffPerInc = (cu-getSlice()-getSPS()-getMaxCUWidth() * cu-getSlice()-getSPS()-getMaxCUHeight() (cu-getSlice()-getSPS()-getMaxCUDepth() 1)) 2; -TCoeff* coeff = (chromaId 0 ? m_qtTempCoeffCr[qtlayer] : m_qtTempCoeffCb[qtlayer]) + numCoeffPerInc * absPartIdx; -assert(m_qtTempTComYuv[qtlayer].m_cwidth == MAX_CU_SIZE / 2); - +TCoeff* coeff = (chromaId 0 ? cu-getCoeffCr() : cu-getCoeffCb()) + numCoeffPerInc * absPartIdx; + uint32_t zorder = cu-getZorderIdxInCU() + absPartIdx; Pel* reconIPred = (chromaId 0 ? cu-getPic()-getPicYuvRec()-getCrAddr(cu-getAddr(), zorder) : cu-getPic()-getPicYuvRec()-getCbAddr(cu-getAddr(), zorder)); uint32_t reconIPredStride = cu-getPic()-getPicYuvRec()-getCStride(); @@ -1722,20 +1706,6 @@ primitives.chroma[m_cfg-param.internalCsp].add_ps[part](recon, stride, pred, residual, stride, stride); primitives.chroma[m_cfg-param.internalCsp].copy_pp[part](reconIPred, reconIPredStride, recon, stride); } - -//= copy transform coefficients = -uint32_t numCoeffC = (cu-getSlice()-getSPS()-getMaxCUWidth() * cu-getSlice()-getSPS()-getMaxCUHeight()) (fullDepth 1); -if
[x265] [PATCH 1 of 1] rd: fix wrong chroma mode used for mode decision
# HG changeset patch # User Deepthi Devaki deepthidev...@multicorewareinc.com # Date 1387264204 -19800 # Node ID 733a48d9f006cf1ec26411edfb6638e208eca8fe # Parent dab555fff5bda83ba14d073c4a5268df81547fcb rd: fix wrong chroma mode used for mode decision diff -r dab555fff5bd -r 733a48d9f006 source/Lib/TLibEncoder/TEncSearch.cpp --- a/source/Lib/TLibEncoder/TEncSearch.cpp Mon Dec 16 15:33:45 2013 +0530 +++ b/source/Lib/TLibEncoder/TEncSearch.cpp Tue Dec 17 12:40:04 2013 +0530 @@ -2147,7 +2147,9 @@ for (int chromaId = 0; chromaId 2; chromaId++) { int sad = 0; -uint32_t chromaPredMode = mode; +uint32_t chromaPredMode = modeList[mode]; +if (chromaPredMode == DM_CHROMA_IDX) +chromaPredMode = cu-getLumaIntraDir(0); Pel* fenc = (chromaId 0 ? fencYuv-getCrAddr(absPartIdx) : fencYuv-getCbAddr(absPartIdx)); Pel* pred = (chromaId 0 ? predYuv-getCrAddr(absPartIdx) : predYuv-getCbAddr(absPartIdx)); ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
[x265] [PATCH 0 of 1 ] Bug fix: Output changes
___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
Re: [x265] Aborting with a warning?!? - x265 [warning]: extra unused command arguments given 1
Thanks for clearing that up, would be good if x265 could inform the user which option is causing the problem. On 17.12.2013 01:50, Steve Borho wrote: On Mon, Dec 16, 2013 at 2:09 AM, Selur hyb...@selur.de wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Called with: x265 --threads 0 --frame-threads 0 --log 2 --input - --input-depth 8 - --input-res 640x352 --fps 25 --frames 429 --wpp --ctu 64 - --tu-intra-depth 1 --tu-inter-depth 1 --me 1 --subme 2 --merange 60 - --rect --amp --max-merge 2 --no-early-skip --no-fast-cbf --rdpenalty 0 - --no-tskip --strong-intra-smoothing --no-constrained-intra --refresh 1 - --keyint 250 --bframes 4 --rc-lookahead 20 --bframe-bias 0 --b-adapt 2 - --b-pyramid 1 --ref 3 --weightp --qp 32 --cbqpoffs 0 --crqpoffs 0 --rd 3 --no-signhide --lft --sao --sao-lcu-bounds 0 --sao-lcu-opt 1 --psnr - --no-ssim --output H:\Temp\test_08_59_45_9310_01.265 x265 abort with: x265 [warning]: extra unused command arguments given 1 Removing the values, which are not defaults one ends up with: x265 --input - --input-res 640x352 --fps 25 --frames 429 --b-adapt 2 - --no-signhide --output H:\Temp\test.265 and that command line is no problem. a. x265 should not abort due to warnings, but only due to errors b. x265 should not abort due to commands which are covered by the defaults First tried: x265 [info]: HEVC encoder version 0.6+112-ef26367cd10c but problem is still present with: x265 [info]: HEVC encoder version 0.6+176-c6ff3ede1f29 Would be nice if this could be fixed. The root issue here is that --b-pyramid is now a bool flag, so it takes no argument anymore (use --no-bpyramid to disable). Extra arguments usually mean you mis-typed something and need to fix that before continuing. ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
[x265] [PATCH] slicetype: remove --refresh and use --open-gop(default: enable)
# HG changeset patch # User Kavitha Sampath kavi...@multicorewareinc.com # Date 1387266260 -19800 # Tue Dec 17 13:14:20 2013 +0530 # Node ID 17bb20c49d67b1d9d02770e7b5dff8381199c527 # Parent 4b0163d06ba19d433749a659365b4364c32c8eae slicetype: remove --refresh and use --open-gop(default: enable) diff -r 4b0163d06ba1 -r 17bb20c49d67 source/common/common.cpp --- a/source/common/common.cpp Sat Dec 14 23:27:48 2013 +0530 +++ b/source/common/common.cpp Tue Dec 17 13:14:20 2013 +0530 @@ -157,10 +157,9 @@ param-tuQTMaxIntraDepth = 1; /* Coding Structure */ -param-decodingRefreshType = 1; param-keyframeMin = 0; param-keyframeMax = 250; -param-bOpenGOP = 0; +param-bOpenGOP = 1; param-bframes = 4; param-lookaheadDepth = 20; param-bFrameAdaptive = X265_B_ADAPT_TRELLIS; @@ -694,7 +693,7 @@ OPT(tskip-fast) p-bEnableTSkipFast = bvalue; OPT(strong-intra-smoothing) p-bEnableStrongIntraSmoothing = bvalue; OPT(constrained-intra) p-bEnableConstrainedIntra = bvalue; -OPT(refresh) p-decodingRefreshType = atoi(value); +OPT(open-gop) p-bOpenGOP = bvalue; OPT(keyint) p-keyframeMax = atoi(value); OPT(rc-lookahead) p-lookaheadDepth = atoi(value); OPT(bframes) p-bframes = atoi(value); @@ -774,7 +773,7 @@ BOOL(p-bEnableTSkipFast, tskip-fast); BOOL(p-bEnableStrongIntraSmoothing, strong-intra-smoothing); BOOL(p-bEnableConstrainedIntra, constrained-intra); -s += sprintf(s, refresh=%d, p-decodingRefreshType); +BOOL(p-bOpenGOP, open-gop); s += sprintf(s, keyint=%d, p-keyframeMax); s += sprintf(s, rc-lookahead=%d, p-lookaheadDepth); s += sprintf(s, bframes=%d, p-bframes); diff -r 4b0163d06ba1 -r 17bb20c49d67 source/encoder/dpb.cpp --- a/source/encoder/dpb.cppSat Dec 14 23:27:48 2013 +0530 +++ b/source/encoder/dpb.cppTue Dec 17 13:14:20 2013 +0530 @@ -379,11 +379,11 @@ } if (pic-m_lowres.bKeyframe) { -if (m_cfg-param.decodingRefreshType == 1) +if (m_cfg-param.bOpenGOP) { return NAL_UNIT_CODED_SLICE_CRA; } -else if (m_cfg-param.decodingRefreshType == 2) +else { return NAL_UNIT_CODED_SLICE_IDR_W_RADL; } diff -r 4b0163d06ba1 -r 17bb20c49d67 source/encoder/slicetype.cpp --- a/source/encoder/slicetype.cpp Sat Dec 14 23:27:48 2013 +0530 +++ b/source/encoder/slicetype.cpp Tue Dec 17 13:14:20 2013 +0530 @@ -1059,7 +1059,7 @@ // if (!cfg-param.bIntraRefresh) for (int j = keyint_limit + 1; j = num_frames; j += cfg-param.keyframeMax) { -frames[j]-sliceType = X265_TYPE_I; +frames[j]-sliceType = X265_TYPE_KEYFRAME; reset_start = X265_MIN(reset_start, j + 1); } diff -r 4b0163d06ba1 -r 17bb20c49d67 source/x265.cpp --- a/source/x265.cpp Sat Dec 14 23:27:48 2013 +0530 +++ b/source/x265.cpp Tue Dec 17 13:14:20 2013 +0530 @@ -110,7 +110,8 @@ { tskip-fast, no_argument, NULL, 0 }, { no-constrained-intra, no_argument, NULL, 0 }, { constrained-intra,no_argument, NULL, 0 }, -{ refresh,required_argument, NULL, 0 }, +{ no-open-gop, no_argument, NULL, 0 }, +{ open-gop, no_argument, NULL, 0 }, { keyint, required_argument, NULL, 'i' }, { rc-lookahead, required_argument, NULL, 0 }, { bframes,required_argument, NULL, 'b' }, @@ -303,7 +304,7 @@ H0( --[no-]strong-intra-smoothing Enable strong intra smoothing for 32x32 blocks. Default %s\n, OPT(param-bEnableStrongIntraSmoothing)); H0( --[no-]constrained-intra Constrained intra prediction (use only intra coded reference pixels) Default %s\n, OPT(param-bEnableConstrainedIntra)); H0(\nSlice decision options:\n); -H0( --refresh Intra refresh type - 0:none, 1:CDR, 2:IDR (default: CDR) Default %d\n, param-decodingRefreshType); +H0( --[no-]open-gop Enable openGOP, allows I slice to be non-IDR. Default %s\n, OPT(param-bOpenGOP)); H0(-i/--keyint Max intra period in frames. Default %d\n, param-keyframeMax); H0( --rc-lookaheadNumber of frames for frame-type lookahead (determines encoder latency) Default %d\n, param-lookaheadDepth); H0( --bframes Maximum number of consecutive b-frames (now it only enables B GOP structure) Default %d\n, param-bframes); diff -r 4b0163d06ba1 -r 17bb20c49d67 source/x265.h --- a/source/x265.h Sat Dec 14 23:27:48 2013 +0530 +++ b/source/x265.h Tue Dec 17 13:14:20 2013 +0530 @@ -336,15 +336,11 @@ /*== GOP Structure and Lokoahead ==*/ -/* Determine the intra refresh style your decoder will use. (0:none, 1:CDR, - * 2:IDR). Defaults to CDR */ -int decodingRefreshType; - /* Enable open GOP - meaning I slices are not necessariy IDR and thus frames * encoded after an I slice may reference frames encoded
[x265] [PATCH 2 of 2] fix yasm warning 'trailing garbage after expression'
# HG changeset patch # User Min Chen chenm...@163.com # Date 1387261198 -28800 # Node ID 9337d1a6be9866be991a150f654e26a536b8517e # Parent eff0c2abda8ec2c091688a4312d3c6e65288fe22 fix yasm warning 'trailing garbage after expression' diff -r eff0c2abda8e -r 9337d1a6be98 source/common/x86/intrapred8.asm --- a/source/common/x86/intrapred8.asm Tue Dec 17 10:47:28 2013 +0800 +++ b/source/common/x86/intrapred8.asm Tue Dec 17 14:19:58 2013 +0800 @@ -1902,7 +1902,7 @@ ; void all_angs_pred_8x8(pixel *dest, pixel *above0, pixel *left0, pixel *above1, pixel *left1, bool bLuma) ;- INIT_XMM sse4 -cglobal all_angs_pred_8x8, 6, 6, 8 dest, above0, left0, above1, left1, bLuma +cglobal all_angs_pred_8x8, 6, 6, 8, dest, above0, left0, above1, left1, bLuma ; mode 2 ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel
[x265] [PATCH 1 of 2] fix crash in pixel_var_16x16_internal, because RateControl::acEnergyCu() call it with unalignment pointer
# HG changeset patch # User Min Chen chenm...@163.com # Date 1387248448 -28800 # Node ID eff0c2abda8ec2c091688a4312d3c6e65288fe22 # Parent 517eadc29cf6f7c90810b4f997fb3e762895aa6e fix crash in pixel_var_16x16_internal, because RateControl::acEnergyCu() call it with unalignment pointer diff -r 517eadc29cf6 -r eff0c2abda8e source/common/x86/pixel-util8.asm --- a/source/common/x86/pixel-util8.asm Tue Dec 17 10:50:03 2013 +0530 +++ b/source/common/x86/pixel-util8.asm Tue Dec 17 10:47:28 2013 +0800 @@ -4452,39 +4452,39 @@ VAR_END 8, 8 cglobal pixel_var_16x16_internal -mova m0,[r0] -mova m3,[r0 + r1] +movu m0,[r0] +movu m3,[r0 + r1] DEINTB1, 0, 4, 3, 7 VAR_CORE -mova m0,[r0 + 2 * r1] -mova m3,[r0 + r2] +movu m0,[r0 + 2 * r1] +movu m3,[r0 + r2] DEINTB1, 0, 4, 3, 7 lea r0,[r0 + r1 * 4] VAR_CORE -mova m0,[r0] -mova m3,[r0 + r1] +movu m0,[r0] +movu m3,[r0 + r1] DEINTB1, 0, 4, 3, 7 VAR_CORE -mova m0,[r0 + 2 * r1] -mova m3,[r0 + r2] +movu m0,[r0 + 2 * r1] +movu m3,[r0 + r2] DEINTB1, 0, 4, 3, 7 lea r0,[r0 + r1 * 4] VAR_CORE -mova m0,[r0] -mova m3,[r0 + r1] +movu m0,[r0] +movu m3,[r0 + r1] DEINTB1, 0, 4, 3, 7 VAR_CORE -mova m0,[r0 + 2 * r1] -mova m3,[r0 + r2] +movu m0,[r0 + 2 * r1] +movu m3,[r0 + r2] DEINTB1, 0, 4, 3, 7 lea r0,[r0 + r1 * 4] VAR_CORE -mova m0,[r0] -mova m3,[r0 + r1] +movu m0,[r0] +movu m3,[r0 + r1] DEINTB1, 0, 4, 3, 7 VAR_CORE -mova m0,[r0 + 2 * r1] -mova m3,[r0 + r2] +movu m0,[r0 + 2 * r1] +movu m3,[r0 + r2] DEINTB1, 0, 4, 3, 7 VAR_CORE ret ___ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel