[x265] [PATCH] analysis: use AVC CU analysis-info for HEVC mode analysis

2017-11-17 Thread praveen
# HG changeset patch
# User Praveen Tiwari 
# Date 1510926794 -19800
#  Fri Nov 17 19:23:14 2017 +0530
# Node ID 6b248ccb14169d2b0d5b84d50d94a153bd8f3b4f
# Parent  9723e8812e63ce51e38ede41f7d5edf73cad0849
analysis: use AVC CU analysis-info for HEVC mode analysis

This patch work implements the functionality for anlysis-reuselevel 7, here we 
want
to use AVC analysis-info for HEVC mode decision and use the depth from offload
for AVC sizes

diff -r 9723e8812e63 -r 6b248ccb1416 source/common/cudata.cpp
--- a/source/common/cudata.cpp  Fri Nov 17 14:16:31 2017 +0530
+++ b/source/common/cudata.cpp  Fri Nov 17 19:23:14 2017 +0530
@@ -201,6 +201,8 @@
 m_cuDepth= charBuf; charBuf += m_numPartitions;
 m_predMode   = charBuf; charBuf += m_numPartitions; /* the 
order up to here is important in initCTU() and initSubCU() */
 m_partSize   = charBuf; charBuf += m_numPartitions;
+m_skipFlag[0]= charBuf; charBuf += m_numPartitions;
+m_skipFlag[1]= charBuf; charBuf += m_numPartitions;
 m_mergeFlag  = charBuf; charBuf += m_numPartitions;
 m_interDir   = charBuf; charBuf += m_numPartitions;
 m_mvpIdx[0]  = charBuf; charBuf += m_numPartitions;
@@ -239,6 +241,8 @@
 m_cuDepth= charBuf; charBuf += m_numPartitions;
 m_predMode   = charBuf; charBuf += m_numPartitions; /* the 
order up to here is important in initCTU() and initSubCU() */
 m_partSize   = charBuf; charBuf += m_numPartitions;
+m_skipFlag[0]= charBuf; charBuf += m_numPartitions;
+m_skipFlag[1]= charBuf; charBuf += m_numPartitions;
 m_mergeFlag  = charBuf; charBuf += m_numPartitions;
 m_interDir   = charBuf; charBuf += m_numPartitions;
 m_mvpIdx[0]  = charBuf; charBuf += m_numPartitions;
diff -r 9723e8812e63 -r 6b248ccb1416 source/common/cudata.h
--- a/source/common/cudata.hFri Nov 17 14:16:31 2017 +0530
+++ b/source/common/cudata.hFri Nov 17 19:23:14 2017 +0530
@@ -199,13 +199,14 @@
 uint8_t*  m_predMode; // array of prediction modes
 uint8_t*  m_partSize; // array of partition sizes
 uint8_t*  m_mergeFlag;// array of merge flags
+uint8_t*  m_skipFlag[2];
 uint8_t*  m_interDir; // array of inter directions
 uint8_t*  m_mvpIdx[2];// array of motion vector predictor 
candidates or merge candidate indices [0]
 uint8_t*  m_tuDepth;  // array of transform indices
 uint8_t*  m_transformSkip[3]; // array of transform skipping flags per 
plane
 uint8_t*  m_cbf[3];   // array of coded block flags (CBF) per 
plane
 uint8_t*  m_chromaIntraDir;   // array of intra directions (chroma)
-enum { BytesPerPartition = 21 };  // combined sizeof() of all per-part data
+enum { BytesPerPartition = 23 };  // combined sizeof() of all per-part data
 
 sse_t*m_distortion;
 coeff_t*  m_trCoeff[3];   // transformed coefficient buffer per 
plane
diff -r 9723e8812e63 -r 6b248ccb1416 source/common/framedata.h
--- a/source/common/framedata.h Fri Nov 17 14:16:31 2017 +0530
+++ b/source/common/framedata.h Fri Nov 17 19:23:14 2017 +0530
@@ -195,6 +195,7 @@
 uint8_t*mvpIdx[2];
 int8_t* refIdx[2];
 MV* mv[2];
+   int64_t* sadCost;
 };
 
 struct analysis2PassFrameData
diff -r 9723e8812e63 -r 6b248ccb1416 source/encoder/analysis.cpp
--- a/source/encoder/analysis.cpp   Fri Nov 17 14:16:31 2017 +0530
+++ b/source/encoder/analysis.cpp   Fri Nov 17 19:23:14 2017 +0530
@@ -75,6 +75,10 @@
 m_reuseInterDataCTU = NULL;
 m_reuseRef = NULL;
 m_bHD = false;
+m_modeFlag[0] = false;
+m_modeFlag[1] = false;
+m_checkMergeAndSkipOnly[0] = false;
+m_checkMergeAndSkipOnly[1] = false;
 m_evaluateInter = 0;
 }
 
@@ -247,6 +251,9 @@
 memcpy(ctu.m_cuDepth, >depth[posCTU], 
sizeof(uint8_t) * numPartition);
 memcpy(ctu.m_predMode, >modes[posCTU], 
sizeof(uint8_t) * numPartition);
 memcpy(ctu.m_partSize, >partSize[posCTU], 
sizeof(uint8_t) * numPartition);
+for (int list = 0; list < m_slice->isInterB() + 1; list++)
+memcpy(ctu.m_skipFlag[list], 
_frame->m_analysisData.modeFlag[list][posCTU], sizeof(uint8_t) * 
numPartition);
+
 if ((m_slice->m_sliceType == P_SLICE || m_param->bIntraInBFrames) 
&& !m_param->bMVType)
 {
 analysis_intra_data* intraDataCTU = 
(analysis_intra_data*)m_frame->m_analysisData.intraData;
@@ -1162,7 +1169,11 @@
 PicYuv& reconPic = *m_frame->m_reconPic;
 SplitData splitCUData;
 
-if ((m_param->bMVType && cuGeom.numPartitions > 16) || !m_param->bMVType)
+bool bHEVCBlockAnalysis = (m_param->bMVType && cuGeom.numPartitions > 16);
+bool bRefineAVCAnalysis = 

[x265] [PATCH ] Fix install symbol files

2017-11-17 Thread mythreyi
# HG changeset patch
# User Mythreyi P
# Date 1510910772 -19800
#  Fri Nov 17 14:56:12 2017 +0530
# Node ID 4ad31bed996f295f0ef1049f45a19bf326811afb
# Parent  e7254af562ee4cf29d559f85dbd2f3d17791b6d4
Fix install symbol files

.pdb files are installed only in Windows.

diff -r e7254af562ee -r 4ad31bed996f source/CMakeLists.txt
--- a/source/CMakeLists.txt Fri Nov 17 13:27:11 2017 +0530
+++ b/source/CMakeLists.txt Fri Nov 17 14:56:12 2017 +0530
@@ -546,10 +546,14 @@
 ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
 endif()
 install(FILES x265.h "${PROJECT_BINARY_DIR}/x265_config.h" DESTINATION include)
-install(FILES "${PROJECT_BINARY_DIR}/Debug/x265.pdb" DESTINATION 
${BIN_INSTALL_DIR} CONFIGURATIONS Debug)
-install(FILES "${PROJECT_BINARY_DIR}/RelWithDebInfo/x265.pdb" DESTINATION 
${BIN_INSTALL_DIR} CONFIGURATIONS RelWithDebInfo)
-install(FILES "${PROJECT_BINARY_DIR}/Debug/libx265.pdb" DESTINATION 
${BIN_INSTALL_DIR} CONFIGURATIONS Debug OPTIONAL NAMELINK_ONLY)
-install(FILES "${PROJECT_BINARY_DIR}/RelWithDebInfo/libx265.pdb" DESTINATION 
${BIN_INSTALL_DIR} CONFIGURATIONS RelWithDebInfo OPTIONAL NAMELINK_ONLY)
+
+if(WIN32)
+install(FILES "${PROJECT_BINARY_DIR}/Debug/x265.pdb" DESTINATION 
${BIN_INSTALL_DIR} CONFIGURATIONS Debug)
+install(FILES "${PROJECT_BINARY_DIR}/RelWithDebInfo/x265.pdb" DESTINATION 
${BIN_INSTALL_DIR} CONFIGURATIONS RelWithDebInfo)
+install(FILES "${PROJECT_BINARY_DIR}/Debug/libx265.pdb" DESTINATION 
${BIN_INSTALL_DIR} CONFIGURATIONS Debug OPTIONAL NAMELINK_ONLY)
+install(FILES "${PROJECT_BINARY_DIR}/RelWithDebInfo/libx265.pdb" 
DESTINATION ${BIN_INSTALL_DIR} CONFIGURATIONS RelWithDebInfo OPTIONAL 
NAMELINK_ONLY)
+endif()
+
 if(CMAKE_RC_COMPILER)
 # The resource compiler does not need CFLAGS or macro defines. It
 # often breaks them
___
x265-devel mailing list
x265-devel@videolan.org
https://mailman.videolan.org/listinfo/x265-devel


[x265] [PATCH ] Fix Build fails for MacOS

2017-11-17 Thread mythreyi
# HG changeset patch
# User Mythreyi P
# Date 1510905431 -19800
#  Fri Nov 17 13:27:11 2017 +0530
# Node ID e7254af562ee4cf29d559f85dbd2f3d17791b6d4
# Parent  06979c0423504a324ea05ca3de59769c6d0fba0d
Fix Build fails for MacOS

Duplicate uninstall targets were removed.

diff -r 06979c042350 -r e7254af562ee source/CMakeLists.txt
--- a/source/CMakeLists.txt Thu Nov 16 20:23:14 2017 +0530
+++ b/source/CMakeLists.txt Fri Nov 17 13:27:11 2017 +0530
@@ -650,13 +650,11 @@
 DESTINATION "${LIB_INSTALL_DIR}/pkgconfig")
 endif()
 
-if(NOT WIN32)
 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
 add_custom_target(uninstall
   "${CMAKE_COMMAND}" -P 
"${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake_uninstall.cmake")
-endif()
 
 # Main CLI application
 set(ENABLE_CLI ON CACHE BOOL "Build standalone CLI application")
@@ -725,13 +723,3 @@
 set(PLATFORM_LIBS ${PLATFORM_LIBS} PARENT_SCOPE)
 endif(PLATFORM_LIBS)
 endif(hasParent)
-
-# uninstall target
-if(NOT TARGET UNINSTALL)
-configure_file(
-"${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
-"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
-IMMEDIATE @ONLY)
-add_custom_target(UNINSTALL
-COMMAND ${CMAKE_COMMAND} -P 
${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
-endif()
___
x265-devel mailing list
x265-devel@videolan.org
https://mailman.videolan.org/listinfo/x265-devel


[x265] [PATCH x265] analysis: evaluate CUs when inter refinement is enabled and analysis data from

2017-11-17 Thread bhavna
# HG changeset patch
# User Bhavna Hariharan 
# Date 1510901808 -19800
#  Fri Nov 17 12:26:48 2017 +0530
# Node ID be5b0bf429d1dddf91b9a79368c8d6f434297329
# Parent  06979c0423504a324ea05ca3de59769c6d0fba0d
analysis: evaluate CUs when inter refinement is enabled and analysis data from
analysis save mode is unavailable.

Earlier, smaller CU sizes were evaluated only when the current block is decided
as "skip" by the save mode. This patch changes the behaviour of inter refinement
by evaluating smaller CUs irrepective of the mode of the current block.

diff -r 06979c042350 -r be5b0bf429d1 source/encoder/analysis.cpp
--- a/source/encoder/analysis.cpp   Thu Nov 16 20:23:14 2017 +0530
+++ b/source/encoder/analysis.cpp   Fri Nov 17 12:26:48 2017 +0530
@@ -2272,8 +2272,7 @@
 bool mightNotSplit = !(cuGeom.flags & CUGeom::SPLIT_MANDATORY);
 bool bDecidedDepth = parentCTU.m_cuDepth[cuGeom.absPartIdx] == depth;
 
-int split = (m_param->interRefine && cuGeom.log2CUSize == 
(uint32_t)(g_log2Size[m_param->minCUSize] + 1)
-&& bDecidedDepth && parentCTU.m_predMode[cuGeom.absPartIdx] == 
MODE_SKIP);
+int split = (m_param->interRefine && cuGeom.log2CUSize == 
(uint32_t)(g_log2Size[m_param->minCUSize] + 1) && bDecidedDepth);
 
 if (bDecidedDepth)
 {
___
x265-devel mailing list
x265-devel@videolan.org
https://mailman.videolan.org/listinfo/x265-devel