[x265] [PATCH] analysis: use AVC CU analysis-info for HEVC mode analysis
# 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
# 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
# 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
# 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