[x265] Aborting with a warning?!? - x265 [warning]: extra unused command arguments given 1

2013-12-16 Thread Selur
-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

2013-12-16 Thread sumalatha
# 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

2013-12-16 Thread sumalatha
# 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

2013-12-16 Thread sumalatha
# 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

2013-12-16 Thread deepthidevaki
# 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

2013-12-16 Thread Sumalatha Polureddy
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

2013-12-16 Thread Deepthi Nandakumar
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

2013-12-16 Thread sumalatha
# 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

2013-12-16 Thread Gopu Govindaswamy
# 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

2013-12-16 Thread Deepthi Nandakumar
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

2013-12-16 Thread Deepthi Nandakumar
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

2013-12-16 Thread Deepthi Nandakumar
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

2013-12-16 Thread Selur
-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

2013-12-16 Thread Gopu Govindaswamy
# 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

2013-12-16 Thread deepthidevaki
# 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

2013-12-16 Thread deepthidevaki
# 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

2013-12-16 Thread deepthidevaki

___
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

2013-12-16 Thread Selur
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)

2013-12-16 Thread kavitha
# 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'

2013-12-16 Thread Min Chen
# 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

2013-12-16 Thread Min Chen
# 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