[x265-commits] [x265] Backed out changeset: 5df643257054

Steve Borho steve at borho.org
Wed Dec 4 07:01:03 CET 2013


details:   http://hg.videolan.org/x265/rev/c2911115b79a
branches:  stable
changeset: 5435:c2911115b79a
user:      Steve Borho <steve at borho.org>
date:      Mon Dec 02 16:44:44 2013 -0600
description:
Backed out changeset: 5df643257054

This was causing memory corruption when --tskip and --rd=2 were used together.
It needs to be further investigated and fixed on the default branch.
Subject: [x265] vec: disable allangs 32x32 intrinsic primitive for clang

details:   http://hg.videolan.org/x265/rev/353a34a5d35f
branches:  stable
changeset: 5436:353a34a5d35f
user:      Steve Borho <steve at borho.org>
date:      Mon Dec 02 18:03:24 2013 -0600
description:
vec: disable allangs 32x32 intrinsic primitive for clang

clang seems to compile it ok, and the testbench passes, but it causes runtime
exceptions when used within the encoder.
Subject: [x265] y4m: initialize colorSpace to avoid crashes after failing to parse y4m header

details:   http://hg.videolan.org/x265/rev/40f9842972da
branches:  stable
changeset: 5437:40f9842972da
user:      Steve Borho <steve at borho.org>
date:      Mon Dec 02 19:35:30 2013 -0600
description:
y4m: initialize colorSpace to avoid crashes after failing to parse y4m header
Subject: [x265] Merge with stable

details:   http://hg.videolan.org/x265/rev/ca7bd538e052
branches:  
changeset: 5438:ca7bd538e052
user:      Steve Borho <steve at borho.org>
date:      Mon Dec 02 20:26:19 2013 -0600
description:
Merge with stable
Subject: [x265] heap corruption: temporarily disable tskip in chroma.

details:   http://hg.videolan.org/x265/rev/f539fa01f20c
branches:  
changeset: 5439:f539fa01f20c
user:      Deepthi Nandakumar <deepthi at multicorewareinc.com>
date:      Tue Dec 03 13:01:10 2013 +0530
description:
heap corruption: temporarily disable tskip in chroma.

Temporary fix for the crash caused by enabling tskip in chroma.
Subject: [x265] cuTree: integrated CuTree into RateControl and Added b-references into RC

details:   http://hg.videolan.org/x265/rev/9cfe20b782da
branches:  
changeset: 5440:9cfe20b782da
user:      Gopu Govindaswamy <gopu at multicorewareinc.com>
date:      Mon Dec 02 17:49:58 2013 +0530
description:
cuTree: integrated CuTree into RateControl and Added b-references into RC
Subject: [x265] Move rdoQTS initialization after rdoQ is set.

details:   http://hg.videolan.org/x265/rev/9f96817c8894
branches:  
changeset: 5441:9f96817c8894
user:      Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date:      Tue Dec 03 11:08:12 2013 +0530
description:
Move rdoQTS initialization after rdoQ is set.
Subject: [x265] define new rdlevels, default presets changed accordingly.

details:   http://hg.videolan.org/x265/rev/86d23688b017
branches:  
changeset: 5442:86d23688b017
user:      Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date:      Tue Dec 03 11:24:15 2013 +0530
description:
define new rdlevels, default presets changed accordingly.

levels 6,5 equivalent to current rd 2, 4 equivalent to current rd 1, and rest equivalent to rd 0. More parameters will be added to distinguish each levels.
Subject: [x265] aq: bug fix for hash mismatch between recon with decoded output

details:   http://hg.videolan.org/x265/rev/660ec2c02798
branches:  
changeset: 5443:660ec2c02798
user:      Aarthi Thirumalai
date:      Tue Dec 03 16:31:35 2013 +0530
description:
aq: bug fix for hash mismatch between recon with decoded output
Subject: [x265] testbench: increment buffer size to avoid crash in check_pixeladd_ss

details:   http://hg.videolan.org/x265/rev/21fe86adaa9a
branches:  
changeset: 5444:21fe86adaa9a
user:      Min Chen <chenm003 at 163.com>
date:      Tue Dec 03 11:56:25 2013 +0800
description:
testbench: increment buffer size to avoid crash in check_pixeladd_ss
Subject: [x265] fixup proto of intra_pred_ang_t

details:   http://hg.videolan.org/x265/rev/5457fd3a26a7
branches:  
changeset: 5445:5457fd3a26a7
user:      Min Chen <chenm003 at 163.com>
date:      Mon Dec 02 15:31:16 2013 +0800
description:
fixup proto of intra_pred_ang_t
Subject: [x265] asm: assembly code for IntraPredAng4x4 Mode 2

details:   http://hg.videolan.org/x265/rev/f1ccd8eab389
branches:  
changeset: 5446:f1ccd8eab389
user:      Min Chen <chenm003 at 163.com>
date:      Mon Dec 02 16:02:20 2013 +0800
description:
asm: assembly code for IntraPredAng4x4 Mode 2
Subject: [x265] fix: bug in inra-sse41.cpp

details:   http://hg.videolan.org/x265/rev/8a3bb3ecf8f6
branches:  
changeset: 5447:8a3bb3ecf8f6
user:      Murugan Vairavel <murugan at multicorewareinc.com>
date:      Mon Dec 02 13:55:00 2013 +0550
description:
fix: bug in inra-sse41.cpp
Subject: [x265] 16bpp: assembly code for pixelavg_pp

details:   http://hg.videolan.org/x265/rev/3fea1dd70211
branches:  
changeset: 5448:3fea1dd70211
user:      Dnyaneshwar G <dnyaneshwar at multicorewareinc.com>
date:      Mon Dec 02 15:35:04 2013 +0550
description:
16bpp: assembly code for pixelavg_pp
Subject: [x265] asm: fix miss avg_64x32

details:   http://hg.videolan.org/x265/rev/b2c7a7310e9f
branches:  
changeset: 5449:b2c7a7310e9f
user:      Min Chen <chenm003 at 163.com>
date:      Mon Dec 02 22:04:04 2013 +0800
description:
asm: fix miss avg_64x32
Subject: [x265] asm: 10bpp support to sse_ss for 8xN, 16xN and 32xN blocks

details:   http://hg.videolan.org/x265/rev/102b5042e596
branches:  
changeset: 5450:102b5042e596
user:      Murugan Vairavel <murugan at multicorewareinc.com>
date:      Mon Dec 02 18:40:17 2013 +0550
description:
asm: 10bpp support to sse_ss for 8xN, 16xN and 32xN blocks
Subject: [x265] asm: fix xmm register error in cvt16to32_shl

details:   http://hg.videolan.org/x265/rev/7fa921f5845d
branches:  
changeset: 5451:7fa921f5845d
user:      Min Chen <chenm003 at 163.com>
date:      Tue Dec 03 10:46:45 2013 +0800
description:
asm: fix xmm register error in cvt16to32_shl
Subject: [x265] asm: intra_pred_ang Mode 34

details:   http://hg.videolan.org/x265/rev/21adddaee460
branches:  
changeset: 5452:21adddaee460
user:      Min Chen <chenm003 at 163.com>
date:      Tue Dec 03 11:53:32 2013 +0800
description:
asm: intra_pred_ang Mode 34
Subject: [x265] asm: support IDCT4-10bpp

details:   http://hg.videolan.org/x265/rev/6f284a447088
branches:  
changeset: 5453:6f284a447088
user:      Min Chen <chenm003 at 163.com>
date:      Tue Dec 03 12:43:22 2013 +0800
description:
asm: support IDCT4-10bpp
Subject: [x265] asm: assembly code for IntraPredAng4x4 Mode 3 & 33

details:   http://hg.videolan.org/x265/rev/9f7dad70e6a9
branches:  
changeset: 5454:9f7dad70e6a9
user:      Min Chen <chenm003 at 163.com>
date:      Tue Dec 03 15:07:55 2013 +0800
description:
asm: assembly code for IntraPredAng4x4 Mode 3 & 33
Subject: [x265] asm: 10bpp fix for alignment in sse_ss routine

details:   http://hg.videolan.org/x265/rev/cd018d294e96
branches:  
changeset: 5455:cd018d294e96
user:      Murugan Vairavel <murugan at multicorewareinc.com>
date:      Tue Dec 03 14:51:16 2013 +0550
description:
asm: 10bpp fix for alignment in sse_ss routine
Subject: [x265] asm: pixel_sad_64xN reduce large code size

details:   http://hg.videolan.org/x265/rev/ca60c165ba4b
branches:  
changeset: 5456:ca60c165ba4b
user:      Dnyaneshwar G <dnyaneshwar at multicorewareinc.com>
date:      Tue Dec 03 15:39:18 2013 +0550
description:
asm: pixel_sad_64xN reduce large code size
Subject: [x265] asm: pixel_satd - 12x16, 24x32, 48x64 for 16bpp

details:   http://hg.videolan.org/x265/rev/69c110c3751b
branches:  
changeset: 5457:69c110c3751b
user:      Yuvaraj Venkatesh <yuvaraj at multicorewareinc.com>
date:      Tue Dec 03 17:34:38 2013 +0550
description:
asm: pixel_satd - 12x16, 24x32, 48x64 for 16bpp
Subject: [x265] asm: pixel_satd_64xN for 16bpp

details:   http://hg.videolan.org/x265/rev/b4740dcd1621
branches:  
changeset: 5458:b4740dcd1621
user:      Yuvaraj Venkatesh <yuvaraj at multicorewareinc.com>
date:      Tue Dec 03 17:43:25 2013 +0550
description:
asm: pixel_satd_64xN for 16bpp
Subject: [x265] asm: pixel_satd_32xN for 16bpp

details:   http://hg.videolan.org/x265/rev/f8b0946edc8f
branches:  
changeset: 5459:f8b0946edc8f
user:      Yuvaraj Venkatesh <yuvaraj at multicorewareinc.com>
date:      Tue Dec 03 17:56:12 2013 +0550
description:
asm: pixel_satd_32xN for 16bpp
Subject: [x265] asm: 10bpp code for pixel_sse_pp for 12x16, 24x32 and 64xN

details:   http://hg.videolan.org/x265/rev/78aa21f66013
branches:  
changeset: 5460:78aa21f66013
user:      Murugan Vairavel <murugan at multicorewareinc.com>
date:      Tue Dec 03 21:03:13 2013 +0550
description:
asm: 10bpp code for pixel_sse_pp for 12x16, 24x32 and 64xN
Subject: [x265] Merge branch 'X'

details:   http://hg.videolan.org/x265/rev/04350bfb3147
branches:  
changeset: 5461:04350bfb3147
user:      Min Chen <chenm003 at 163.com>
date:      Tue Dec 03 21:36:57 2013 +0800
description:
Merge branch 'X'
Subject: [x265] asm: 10bpp code for transpose 4x4 and 8x8

details:   http://hg.videolan.org/x265/rev/c9fe21f4676e
branches:  
changeset: 5462:c9fe21f4676e
user:      Murugan Vairavel <murugan at multicorewareinc.com>
date:      Tue Dec 03 21:38:28 2013 +0550
description:
asm: 10bpp code for transpose 4x4 and 8x8
Subject: [x265] Merge

details:   http://hg.videolan.org/x265/rev/80938e33bb04
branches:  
changeset: 5463:80938e33bb04
user:      Steve Borho <steve at borho.org>
date:      Tue Dec 03 11:34:00 2013 -0600
description:
Merge
Subject: [x265] Backed out changeset: 8a3bb3ecf8f6

details:   http://hg.videolan.org/x265/rev/552d46bc20a9
branches:  
changeset: 5464:552d46bc20a9
user:      Steve Borho <steve at borho.org>
date:      Tue Dec 03 11:34:11 2013 -0600
description:
Backed out changeset: 8a3bb3ecf8f6
Subject: [x265] fix 16bpp build fail due to intra-sse41.cpp

details:   http://hg.videolan.org/x265/rev/6cc25bb700fc
branches:  
changeset: 5465:6cc25bb700fc
user:      Yuvaraj Venkatesh <yuvaraj at multicorewareinc.com>
date:      Tue Dec 03 12:14:15 2013 +0530
description:
fix 16bpp build fail due to intra-sse41.cpp
Subject: [x265] aq: bug fix for hash mismatch between recon with decoded output

details:   http://hg.videolan.org/x265/rev/c541804106c7
branches:  stable
changeset: 5466:c541804106c7
user:      Aarthi Thirumalai
date:      Tue Dec 03 16:31:35 2013 +0530
description:
aq: bug fix for hash mismatch between recon with decoded output
Subject: [x265] partial backout of 9cfe20b782da

details:   http://hg.videolan.org/x265/rev/432a87f546cd
branches:  
changeset: 5467:432a87f546cd
user:      Steve Borho <steve at borho.org>
date:      Tue Dec 03 11:55:02 2013 -0600
description:
partial backout of 9cfe20b782da

Aarthi was correct, getSliceType() returns an HM SliceType enum.  Five lines
above this it was testing whether getSliceType() == I_SLICE.

It is far less than optimal that we have two sets of slice type definitions, but
we have to be careful not to mix them up.
Subject: [x265] tskip: temporary workaround for heap corruption

details:   http://hg.videolan.org/x265/rev/8e107ce14b43
branches:  stable
changeset: 5468:8e107ce14b43
user:      Steve Borho <steve at borho.org>
date:      Tue Dec 03 11:58:45 2013 -0600
description:
tskip: temporary workaround for heap corruption

When tskip is enabled and tu-intra-depth is > 1 and --ctu is 64, we often see
heap corruption when the encoder is destroyed.  Disabling transform-skip on
chroma seems to be an effective workaround until we can find a proper fix.
Subject: [x265] vec: remove pixel-sse41.cpp, we have full 8bpp pixelcmp coverage in asm

details:   http://hg.videolan.org/x265/rev/8c32edd92522
branches:  
changeset: 5469:8c32edd92522
user:      Steve Borho <steve at borho.org>
date:      Tue Dec 03 12:20:45 2013 -0600
description:
vec: remove pixel-sse41.cpp, we have full 8bpp pixelcmp coverage in asm
Subject: [x265] vec: use square block size enums

details:   http://hg.videolan.org/x265/rev/70dba94f6012
branches:  
changeset: 5470:70dba94f6012
user:      Steve Borho <steve at borho.org>
date:      Tue Dec 03 12:21:16 2013 -0600
description:
vec: use square block size enums
Subject: [x265] asm: fix for icpc build

details:   http://hg.videolan.org/x265/rev/b970ffbdd696
branches:  stable
changeset: 5471:b970ffbdd696
user:      Steve Borho <steve at borho.org>
date:      Tue Dec 03 13:10:26 2013 -0600
description:
asm: fix for icpc build
Subject: [x265] Added tag 0.6 for changeset b970ffbdd696

details:   http://hg.videolan.org/x265/rev/6b7550eed359
branches:  stable
changeset: 5472:6b7550eed359
user:      Steve Borho <steve at borho.org>
date:      Tue Dec 03 13:10:53 2013 -0600
description:
Added tag 0.6 for changeset b970ffbdd696
Subject: [x265] Merge with stable

details:   http://hg.videolan.org/x265/rev/4b455bb3caf6
branches:  
changeset: 5473:4b455bb3caf6
user:      Steve Borho <steve at borho.org>
date:      Tue Dec 03 13:11:29 2013 -0600
description:
Merge with stable
Subject: [x265] TComPrediction: remove obsolete argument comment

details:   http://hg.videolan.org/x265/rev/55c0bf9d9966
branches:  
changeset: 5474:55c0bf9d9966
user:      Steve Borho <steve at borho.org>
date:      Tue Dec 03 14:14:44 2013 -0600
description:
TComPrediction: remove obsolete argument comment
Subject: [x265] sbac: move global tables into x265 namespace

details:   http://hg.videolan.org/x265/rev/1d2d60f4eb81
branches:  
changeset: 5475:1d2d60f4eb81
user:      Steve Borho <steve at borho.org>
date:      Tue Dec 03 23:56:22 2013 -0600
description:
sbac: move global tables into x265 namespace

diffstat:

 .hgtags                                  |     1 +
 source/Lib/TLibCommon/CommonDef.h        |     3 -
 source/Lib/TLibCommon/ContextTables.h    |     9 +-
 source/Lib/TLibCommon/TComPicYuv.cpp     |     4 +
 source/Lib/TLibCommon/TComPrediction.cpp |    10 +-
 source/Lib/TLibCommon/TComPrediction.h   |     4 +-
 source/Lib/TLibCommon/TComSlice.h        |     1 +
 source/Lib/TLibCommon/TComYuv.cpp        |     4 +-
 source/Lib/TLibEncoder/TEncCfg.h         |     3 +
 source/Lib/TLibEncoder/TEncCu.cpp        |     2 +-
 source/Lib/TLibEncoder/TEncCu.h          |     4 +-
 source/Lib/TLibEncoder/TEncSbac.cpp      |     5 +-
 source/Lib/TLibEncoder/TEncSearch.cpp    |    14 +-
 source/common/CMakeLists.txt             |    36 +-
 source/common/TShortYUV.cpp              |    17 +-
 source/common/TShortYUV.h                |     3 +-
 source/common/common.cpp                 |    38 +-
 source/common/cpu.cpp                    |     8 +-
 source/common/intrapred.cpp              |    21 +-
 source/common/ipfilter.cpp               |     9 +-
 source/common/lowres.cpp                 |     6 +-
 source/common/lowres.h                   |     4 +
 source/common/pixel.cpp                  |    52 +-
 source/common/primitives.h               |     8 +-
 source/common/vec/blockcopy-sse3.cpp     |     1 +
 source/common/vec/dct-sse3.cpp           |   100 +-
 source/common/vec/dct-sse41.cpp          |   114 -
 source/common/vec/dct-ssse3.cpp          |    74 +-
 source/common/vec/intra-sse41.cpp        |   304 +-
 source/common/vec/intra-ssse3.cpp        |    91 +-
 source/common/vec/ipfilter-ssse3.cpp     |     4 +-
 source/common/vec/pixel-sse41.cpp        |   694 ---
 source/common/vec/pixel-ssse3.cpp        |   101 -
 source/common/vec/pixel16-sse41.cpp      |     3 -
 source/common/vec/vec-primitives.cpp     |     8 +-
 source/common/x86/asm-primitives.cpp     |   134 +-
 source/common/x86/blockcopy8.asm         |   114 +
 source/common/x86/blockcopy8.h           |     7 +-
 source/common/x86/const-a.asm            |     4 +
 source/common/x86/dct8.asm               |   314 +
 source/common/x86/dct8.h                 |     3 +
 source/common/x86/intrapred.asm          |   492 --
 source/common/x86/intrapred.h            |     5 +
 source/common/x86/intrapred8.asm         |   752 ++++
 source/common/x86/ipfilter8.h            |     5 +-
 source/common/x86/mc-a.asm               |    60 +
 source/common/x86/mc.h                   |    33 +
 source/common/x86/pixel-a.asm            |  5353 +++--------------------------
 source/common/x86/pixel-util.asm         |   883 ----
 source/common/x86/pixel-util.h           |   143 +
 source/common/x86/pixel-util8.asm        |  3082 +++++++++++++++++
 source/common/x86/pixel.h                |   322 +-
 source/common/x86/sad-a.asm              |   566 +---
 source/common/x86/ssd-a.asm              |  2397 +++++++++++++
 source/encoder/compress.cpp              |   135 +-
 source/encoder/cturow.cpp                |     2 +-
 source/encoder/encoder.cpp               |    96 +-
 source/encoder/encoder.h                 |     2 +
 source/encoder/frameencoder.cpp          |     8 +-
 source/encoder/motion.cpp                |     3 +
 source/encoder/ratecontrol.cpp           |   281 +-
 source/encoder/ratecontrol.h             |    48 +-
 source/encoder/slicetype.cpp             |   274 +-
 source/encoder/slicetype.h               |     9 +-
 source/input/y4m.cpp                     |     2 +
 source/input/yuv.cpp                     |     1 +
 source/output/y4m.cpp                    |     6 +-
 source/output/yuv.cpp                    |     5 +-
 source/test/intrapredharness.cpp         |    73 +-
 source/test/intrapredharness.h           |     2 +-
 source/test/ipfilterharness.cpp          |    23 +-
 source/test/pixelharness.cpp             |    67 +-
 source/test/pixelharness.h               |     1 +
 source/test/testbench.cpp                |     1 +
 source/x265.cpp                          |     8 +-
 source/x265.h                            |    22 +-
 76 files changed, 8841 insertions(+), 8657 deletions(-)

diffs (truncated from 20151 to 300 lines):

diff -r bf778de26451 -r 1d2d60f4eb81 .hgtags
--- a/.hgtags	Mon Dec 02 12:51:57 2013 +0530
+++ b/.hgtags	Tue Dec 03 23:56:22 2013 -0600
@@ -7,3 +7,4 @@ 3767fbfa970ff4b2dc2e8647db0274168727147e
 2ba6ec553f218d2b06ad803b87d6ec751fd639f7 0.4
 93707bc4fccdaa89a1f2da11db8808ca912a691c 0.4.1
 69acb3cb777f977f5edde908069ac565915dd366 0.5
+b970ffbdd696e3ce45c93b315902eb6366ff085e 0.6
diff -r bf778de26451 -r 1d2d60f4eb81 source/Lib/TLibCommon/CommonDef.h
--- a/source/Lib/TLibCommon/CommonDef.h	Mon Dec 02 12:51:57 2013 +0530
+++ b/source/Lib/TLibCommon/CommonDef.h	Tue Dec 03 23:56:22 2013 -0600
@@ -99,9 +99,6 @@
 #define FAST_UDI_MAX_RDMODE_NUM     35 ///< maximum number of RD comparison in fast-UDI estimation loop
 
 #define NUM_INTRA_MODE 36
-#if !REMOVE_LM_CHROMA
-#define LM_CHROMA_IDX  35
-#endif
 
 #define PLANAR_IDX                  0
 #define VER_IDX                     26 // index for intra VERTICAL   mode
diff -r bf778de26451 -r 1d2d60f4eb81 source/Lib/TLibCommon/ContextTables.h
--- a/source/Lib/TLibCommon/ContextTables.h	Mon Dec 02 12:51:57 2013 +0530
+++ b/source/Lib/TLibCommon/ContextTables.h	Tue Dec 03 23:56:22 2013 -0600
@@ -126,6 +126,9 @@
 #define OFF_CU_TRANSQUANT_BYPASS_FLAG_CTX   (OFF_TRANSFORMSKIP_FLAG_CTX + 2 * NUM_TRANSFORMSKIP_FLAG_CTX)
 #define MAX_OFF_CTX_MOD                     (OFF_CU_TRANSQUANT_BYPASS_FLAG_CTX + NUM_CU_TRANSQUANT_BYPASS_FLAG_CTX)
 
+namespace x265 {
+// private namespace
+
 // ====================================================================================================================
 // Sbac interface
 // ====================================================================================================================
@@ -139,8 +142,8 @@ extern const uint8_t g_nextStateMPS[128]
 extern const uint8_t g_nextStateLPS[128];
 extern const int     g_entropyBits[128];
 extern       uint8_t g_nextState[128][2];
-extern void buildNextStateTable();
-extern uint8_t sbacInit(int qp, int initValue);   ///< initialize state with initial probability
+void buildNextStateTable();
+uint8_t sbacInit(int qp, int initValue);   ///< initialize state with initial probability
 
 #define sbacGetMps(S)               ((S) & 1)
 #define sbacGetState(S)             ((S) >> 1)
@@ -154,8 +157,6 @@ extern uint8_t sbacInit(int qp, int init
 // Tables
 // ====================================================================================================================
 
-namespace x265 {
-// private namespace
 
 // initial probability for cu_transquant_bypass flag
 static const uint8_t
diff -r bf778de26451 -r 1d2d60f4eb81 source/Lib/TLibCommon/TComPicYuv.cpp
--- a/source/Lib/TLibCommon/TComPicYuv.cpp	Mon Dec 02 12:51:57 2013 +0530
+++ b/source/Lib/TLibCommon/TComPicYuv.cpp	Tue Dec 03 23:56:22 2013 -0600
@@ -209,6 +209,7 @@ void TComPicYuv::copyFromPicture(const x
 
     /* internal pad to multiple of 16x16 blocks */
     uint8_t rem = width & 15;
+
     padx = rem ? 16 - rem : padx;
     rem = width & 15;
     pady = rem ? 16 - rem : pady;
@@ -232,6 +233,7 @@ void TComPicYuv::copyFromPicture(const x
             {
                 Y[width + x] = Y[width - 1];
             }
+
             Y += getStride();
             y += pic.stride[0];
         }
@@ -249,6 +251,7 @@ void TComPicYuv::copyFromPicture(const x
                 U[(width >> m_hChromaShift) + x] = U[(width >> m_hChromaShift) - 1];
                 V[(width >> m_hChromaShift) + x] = V[(width >> m_hChromaShift) - 1];
             }
+
             U += getCStride();
             V += getCStride();
             u += pic.stride[1];
@@ -292,6 +295,7 @@ void TComPicYuv::copyFromPicture(const x
             {
                 Y[width + x] = Y[width - 1];
             }
+
             Y += getStride();
             y += pic.stride[0];
         }
diff -r bf778de26451 -r 1d2d60f4eb81 source/Lib/TLibCommon/TComPrediction.cpp
--- a/source/Lib/TLibCommon/TComPrediction.cpp	Mon Dec 02 12:51:57 2013 +0530
+++ b/source/Lib/TLibCommon/TComPrediction.cpp	Tue Dec 03 23:56:22 2013 -0600
@@ -85,7 +85,6 @@ TComPrediction::~TComPrediction()
 
     if (m_immedVals)
         X265_FREE(m_immedVals);
-
 }
 
 void TComPrediction::initTempBuff(int csp)
@@ -125,7 +124,7 @@ void TComPrediction::initTempBuff(int cs
 // Public member functions
 // ====================================================================================================================
 
-void TComPrediction::predIntraLumaAng(uint32_t dirMode, Pel* dst, uint32_t stride, int size)
+void TComPrediction::predIntraLumaAng(uint32_t dirMode, Pel* dst, intptr_t stride, int size)
 {
     assert(g_convertToBit[size] >= 0);   //   4x  4
     assert(g_convertToBit[size] <= 5);   // 128x128
@@ -168,12 +167,12 @@ void TComPrediction::predIntraLumaAng(ui
     }
     else
     {
-        primitives.intra_pred_ang(dst, stride, size, dirMode, bFilter, refLft, refAbv);
+        primitives.intra_pred_ang[log2BlkSize - 2](dst, stride, refLft, refAbv, dirMode, bFilter);
     }
 }
 
 // Angular chroma
-void TComPrediction::predIntraChromaAng(Pel* src, uint32_t dirMode, Pel* dst, uint32_t stride, int width)
+void TComPrediction::predIntraChromaAng(Pel* src, uint32_t dirMode, Pel* dst, intptr_t stride, int width)
 {
     int log2BlkSize = g_convertToBit[width];
 
@@ -199,7 +198,7 @@ void TComPrediction::predIntraChromaAng(
     }
     else
     {
-        primitives.intra_pred_ang(dst, stride, width, dirMode, false, refLft + width - 1, refAbv + width - 1);
+        primitives.intra_pred_ang[log2BlkSize](dst, stride, refLft + width - 1, refAbv + width - 1, dirMode, 0);
     }
 }
 
@@ -511,7 +510,6 @@ void TComPrediction::xPredInterLumaBlk(T
  * \param width    Width of block
  * \param height   Height of block
  * \param dstPic   Pointer to destination picture
- * \param bi       Flag indicating whether bipred is used
  */
 void TComPrediction::xPredInterChromaBlk(TComDataCU *cu, TComPicYuv *refPic, uint32_t partAddr, MV *mv, int width, int height, TComYuv *dstPic)
 {
diff -r bf778de26451 -r 1d2d60f4eb81 source/Lib/TLibCommon/TComPrediction.h
--- a/source/Lib/TLibCommon/TComPrediction.h	Mon Dec 02 12:51:57 2013 +0530
+++ b/source/Lib/TLibCommon/TComPrediction.h	Tue Dec 03 23:56:22 2013 -0600
@@ -108,8 +108,8 @@ public:
     void getMvPredAMVP(TComDataCU* cu, uint32_t partIdx, uint32_t partAddr, int picList, MV& mvPred);
 
     // Angular Intra
-    void predIntraLumaAng(uint32_t dirMode, Pel* pred, uint32_t stride, int width);
-    void predIntraChromaAng(Pel* src, uint32_t dirMode, Pel* pred, uint32_t stride, int width);
+    void predIntraLumaAng(uint32_t dirMode, Pel* pred, intptr_t stride, int width);
+    void predIntraChromaAng(Pel* src, uint32_t dirMode, Pel* pred, intptr_t stride, int width);
 
     Pel* getPredicBuf()             { return m_predBuf; }
 
diff -r bf778de26451 -r 1d2d60f4eb81 source/Lib/TLibCommon/TComSlice.h
--- a/source/Lib/TLibCommon/TComSlice.h	Mon Dec 02 12:51:57 2013 +0530
+++ b/source/Lib/TLibCommon/TComSlice.h	Tue Dec 03 23:56:22 2013 -0600
@@ -1269,6 +1269,7 @@ struct WpScalingParam
             log2WeightDenom--;
             inputWeight >>= 1;
         }
+
         inputWeight = X265_MIN(inputWeight, 127);
     }
 };
diff -r bf778de26451 -r 1d2d60f4eb81 source/Lib/TLibCommon/TComYuv.cpp
--- a/source/Lib/TLibCommon/TComYuv.cpp	Mon Dec 02 12:51:57 2013 +0530
+++ b/source/Lib/TLibCommon/TComYuv.cpp	Tue Dec 03 23:56:22 2013 -0600
@@ -427,8 +427,8 @@ void TComYuv::addClipChroma(TComYuv* src
     uint32_t src1Stride = srcYuv1->m_cwidth;
     uint32_t dststride  = getCStride();
 
-   primitives.chroma[m_csp].add_ps[part](dstU, dststride, srcU0, srcU1, src0Stride, src1Stride);
-   primitives.chroma[m_csp].add_ps[part](dstV, dststride, srcV0, srcV1, src0Stride, src1Stride);
+    primitives.chroma[m_csp].add_ps[part](dstU, dststride, srcU0, srcU1, src0Stride, src1Stride);
+    primitives.chroma[m_csp].add_ps[part](dstV, dststride, srcV0, srcV1, src0Stride, src1Stride);
 }
 
 void TComYuv::subtract(TComYuv* srcYuv0, TComYuv* srcYuv1, uint32_t trUnitIdx, uint32_t partSize)
diff -r bf778de26451 -r 1d2d60f4eb81 source/Lib/TLibEncoder/TEncCfg.h
--- a/source/Lib/TLibEncoder/TEncCfg.h	Mon Dec 02 12:51:57 2013 +0530
+++ b/source/Lib/TLibEncoder/TEncCfg.h	Tue Dec 03 23:56:22 2013 -0600
@@ -156,6 +156,9 @@ public:
     /* copy of parameters used to create encoder */
     x265_param param;
 
+    int       bEnableRDOQ;
+    int       bEnableRDOQTS;
+
     int       m_pad[2];
     Window    m_conformanceWindow;
 
diff -r bf778de26451 -r 1d2d60f4eb81 source/Lib/TLibEncoder/TEncCu.cpp
--- a/source/Lib/TLibEncoder/TEncCu.cpp	Mon Dec 02 12:51:57 2013 +0530
+++ b/source/Lib/TLibEncoder/TEncCu.cpp	Tue Dec 03 23:56:22 2013 -0600
@@ -361,7 +361,7 @@ void TEncCu::compressCU(TComDataCU* cu)
         xCompressIntraCU(m_bestCU[0], m_tempCU[0], 0);
     else
     {
-        if (!m_cfg->param.bEnableRDO)
+        if (m_cfg->param.rdLevel < 5)
         {
             TComDataCU* outBestCU = NULL;
 
diff -r bf778de26451 -r 1d2d60f4eb81 source/Lib/TLibEncoder/TEncCu.h
--- a/source/Lib/TLibEncoder/TEncCu.h	Mon Dec 02 12:51:57 2013 +0530
+++ b/source/Lib/TLibEncoder/TEncCu.h	Tue Dec 03 23:56:22 2013 -0600
@@ -69,7 +69,7 @@ struct StatisticLog
 
     StatisticLog()
     {
-         memset(this, 0, sizeof(StatisticLog));
+        memset(this, 0, sizeof(StatisticLog));
     }
 };
 
@@ -171,7 +171,7 @@ protected:
     void xComputeCostIntraInInter(TComDataCU* cu, PartSize partSize);
     void xCheckRDCostInter(TComDataCU*& outBestCU, TComDataCU*& outTempCU, PartSize partSize, bool bUseMRG = false);
     void xComputeCostInter(TComDataCU* outTempCU, TComYuv* outPredYUV, PartSize partSize, bool bUseMRG = false);
-    void xComputeCostMerge2Nx2N(TComDataCU*& outBestCU, TComDataCU*& outTempCU, bool* earlyDetectionSkip, TComYuv*& bestPredYuv, TComYuv*& tmpPredYuv);
+    void xComputeCostMerge2Nx2N(TComDataCU*& outBestCU, TComDataCU*& outTempCU, TComYuv*& bestPredYuv, TComYuv*& tmpPredYuv);
     void xEncodeIntraInInter(TComDataCU* cu, TComYuv* fencYuv, TComYuv* predYuv, TShortYUV* outResiYuv, TComYuv* outReconYuv);
     void xCheckRDCostIntra(TComDataCU*& outBestCU, TComDataCU*& outTempCU, PartSize partSize);
     void xCheckRDCostIntraInInter(TComDataCU*& outBestCU, TComDataCU*& outTempCU, PartSize partSize);
diff -r bf778de26451 -r 1d2d60f4eb81 source/Lib/TLibEncoder/TEncSbac.cpp
--- a/source/Lib/TLibEncoder/TEncSbac.cpp	Mon Dec 02 12:51:57 2013 +0530
+++ b/source/Lib/TLibEncoder/TEncSbac.cpp	Tue Dec 03 23:56:22 2013 -0600
@@ -37,7 +37,8 @@
 
 #include "TEncSbac.h"
 
-using namespace x265;
+namespace x265
+{
 
 //! \ingroup TLibEncoder
 //! \{
@@ -2633,4 +2634,6 @@ void  TEncSbac::loadContexts(TEncSbac* s
     this->xCopyContextsFrom(src);
 }
 
+}
+
 //! \}
diff -r bf778de26451 -r 1d2d60f4eb81 source/Lib/TLibEncoder/TEncSearch.cpp
--- a/source/Lib/TLibEncoder/TEncSearch.cpp	Mon Dec 02 12:51:57 2013 +0530
+++ b/source/Lib/TLibEncoder/TEncSearch.cpp	Tue Dec 03 23:56:22 2013 -0600
@@ -465,7 +465,7 @@ void TEncSearch::xIntraCodingLumaBlk(TCo
 
     //===== transform and quantization =====
     //--- init rate estimation arrays for RDOQ ---
-    if (useTransformSkip ? m_cfg->param.bEnableRDOQTS : m_cfg->param.bEnableRDOQ)
+    if (useTransformSkip ? m_cfg->bEnableRDOQTS : m_cfg->bEnableRDOQ)
     {
         m_entropyCoder->estimateBit(m_trQuant->m_estBitsSbac, width, width, TEXT_LUMA);
     }
@@ -595,7 +595,7 @@ void TEncSearch::xIntraCodingChromaBlk(T
     //===== transform and quantization =====
     {
         //--- init rate estimation arrays for RDOQ ---
-        if (useTransformSkipChroma ? m_cfg->param.bEnableRDOQTS : m_cfg->param.bEnableRDOQ)
+        if (useTransformSkipChroma ? m_cfg->bEnableRDOQTS : m_cfg->bEnableRDOQ)
         {
             m_entropyCoder->estimateBit(m_trQuant->m_estBitsSbac, width, width, ttype);
         }
@@ -1289,7 +1289,7 @@ void TEncSearch::xRecurIntraChromaCoding
 
     if (trMode == trDepth)
     {
-        bool checkTransformSkip = cu->getSlice()->getPPS()->getUseTransformSkip();
+        bool checkTransformSkip = false; //cu->getSlice()->getPPS()->getUseTransformSkip();
         uint32_t trSizeLog2 = g_convertToBit[cu->getSlice()->getSPS()->getMaxCUWidth() >> fullDepth] + 2;
 
         uint32_t actualTrDepth = trDepth;
@@ -3107,7 +3107,7 @@ void TEncSearch::xEstimateResidualQT(TCo
             cu->setTransformSkipSubParts(0, TEXT_CHROMA_V, absPartIdx, cu->getDepth(0) + trModeC);
         }
 
-        if (m_cfg->param.bEnableRDOQ && curuseRDOQ)
+        if (m_cfg->bEnableRDOQ && curuseRDOQ)
         {
             m_entropyCoder->estimateBit(m_trQuant->m_estBitsSbac, trWidth, trHeight, TEXT_LUMA);
         }
@@ -3122,7 +3122,7 @@ void TEncSearch::xEstimateResidualQT(TCo
 
         if (bCodeChroma)
         {
-            if (m_cfg->param.bEnableRDOQ && curuseRDOQ)
+            if (m_cfg->bEnableRDOQ && curuseRDOQ)
             {
                 m_entropyCoder->estimateBit(m_trQuant->m_estBitsSbac, trWidthC, trHeightC, TEXT_CHROMA);
             }
@@ -3404,7 +3404,7 @@ void TEncSearch::xEstimateResidualQT(TCo
 
             cu->setTransformSkipSubParts(1, TEXT_LUMA, absPartIdx, depth);
 
-            if (m_cfg->param.bEnableRDOQTS)
+            if (m_cfg->bEnableRDOQTS)


More information about the x265-commits mailing list