[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