keep the consistency between sps level and parameter level
This commit is contained in:
@@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
#include "typedefs.h"
|
#include "typedefs.h"
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
|
#include "codec_app_def.h"
|
||||||
|
|
||||||
|
|
||||||
namespace WelsCommon {
|
namespace WelsCommon {
|
||||||
@@ -46,7 +46,7 @@ namespace WelsCommon {
|
|||||||
#define WELS_CONTEXT_COUNT 460
|
#define WELS_CONTEXT_COUNT 460
|
||||||
#define LEVEL_NUMBER 17
|
#define LEVEL_NUMBER 17
|
||||||
typedef struct TagLevelLimits {
|
typedef struct TagLevelLimits {
|
||||||
uint8_t uiLevelIdc; // level idc
|
ELevelIdc uiLevelIdc; // level idc
|
||||||
uint32_t uiMaxMBPS; // Max macroblock processing rate(MB/s)
|
uint32_t uiMaxMBPS; // Max macroblock processing rate(MB/s)
|
||||||
uint32_t uiMaxFS; // Max frame sizea(MBs)
|
uint32_t uiMaxFS; // Max frame sizea(MBs)
|
||||||
uint32_t uiMaxDPBMbs;// Max decoded picture buffer size(MBs)
|
uint32_t uiMaxDPBMbs;// Max decoded picture buffer size(MBs)
|
||||||
@@ -60,6 +60,7 @@ typedef struct TagLevelLimits {
|
|||||||
|
|
||||||
#define CpbBrNalFactor 1200 //baseline,main,and extended profiles.
|
#define CpbBrNalFactor 1200 //baseline,main,and extended profiles.
|
||||||
extern const SLevelLimits g_ksLevelLimits[LEVEL_NUMBER];
|
extern const SLevelLimits g_ksLevelLimits[LEVEL_NUMBER];
|
||||||
|
extern const uint32_t g_kuiLevelMaps[LEVEL_NUMBER];
|
||||||
extern const uint8_t g_kuiMbCountScan4Idx[24];
|
extern const uint8_t g_kuiMbCountScan4Idx[24];
|
||||||
extern const uint8_t g_kuiCache30ScanIdx[16];
|
extern const uint8_t g_kuiCache30ScanIdx[16];
|
||||||
extern const uint8_t g_kuiCache48CountScan4Idx[24];
|
extern const uint8_t g_kuiCache48CountScan4Idx[24];
|
||||||
|
|||||||
@@ -151,29 +151,31 @@ ALIGNED_DECLARE (const uint16_t, g_kuiDequantCoeff[52][8], 16) = {
|
|||||||
|
|
||||||
// table A-1 - Level limits
|
// table A-1 - Level limits
|
||||||
const SLevelLimits g_ksLevelLimits[LEVEL_NUMBER] = {
|
const SLevelLimits g_ksLevelLimits[LEVEL_NUMBER] = {
|
||||||
{10, 1485, 99, 396, 64, 175, -256, 255, 2, 0x7fff}, /* level 1 */
|
{LEVEL_1_0, 1485, 99, 396, 64, 175, -256, 255, 2, 0x7fff}, /* level 1 */
|
||||||
{9, 1485, 99, 396, 128, 350, -256, 255, 2, 0x7fff}, /* level 1.b */
|
{LEVEL_1_B, 1485, 99, 396, 128, 350, -256, 255, 2, 0x7fff}, /* level 1.b */
|
||||||
{11, 3000, 396, 900, 192, 500, -512, 511, 2, 0x7fff}, /* level 1.1 */
|
{LEVEL_1_1, 3000, 396, 900, 192, 500, -512, 511, 2, 0x7fff}, /* level 1.1 */
|
||||||
{12, 6000, 396, 2376, 384, 1000, -512, 511, 2, 0x7fff}, /* level 1.2 */
|
{LEVEL_1_2, 6000, 396, 2376, 384, 1000, -512, 511, 2, 0x7fff}, /* level 1.2 */
|
||||||
{13, 11880, 396, 2376, 768, 2000, -512, 511, 2, 0x7fff}, /* level 1.3 */
|
{LEVEL_1_3, 11880, 396, 2376, 768, 2000, -512, 511, 2, 0x7fff}, /* level 1.3 */
|
||||||
|
|
||||||
{20, 11880, 396, 2376, 2000, 2000, -512, 511, 2, 0x7fff}, /* level 2 */
|
{LEVEL_2_0, 11880, 396, 2376, 2000, 2000, -512, 511, 2, 0x7fff}, /* level 2 */
|
||||||
{21, 19800, 792, 4752, 4000, 4000, -1024, 1023, 2, 0x7fff}, /* level 2.1 */
|
{LEVEL_2_1, 19800, 792, 4752, 4000, 4000, -1024, 1023, 2, 0x7fff}, /* level 2.1 */
|
||||||
{22, 20250, 1620, 8100, 4000, 4000, -1024, 1023, 2, 0x7fff}, /* level 2.2 */
|
{LEVEL_2_2, 20250, 1620, 8100, 4000, 4000, -1024, 1023, 2, 0x7fff}, /* level 2.2 */
|
||||||
|
|
||||||
{30, 40500, 1620, 8100, 10000, 10000, -1024, 1023, 2, 32 }, /* level 3 */
|
{LEVEL_3_0, 40500, 1620, 8100, 10000, 10000, -1024, 1023, 2, 32 }, /* level 3 */
|
||||||
{31, 108000, 3600, 18000, 14000, 14000, -2048, 2047, 4, 16}, /* level 3.1 */
|
{LEVEL_3_1, 108000, 3600, 18000, 14000, 14000, -2048, 2047, 4, 16}, /* level 3.1 */
|
||||||
{32, 216000, 5120, 20480, 20000, 20000, -2048, 2047, 4, 16}, /* level 3.2 */
|
{LEVEL_3_2, 216000, 5120, 20480, 20000, 20000, -2048, 2047, 4, 16}, /* level 3.2 */
|
||||||
|
|
||||||
{40, 245760, 8192, 32768, 20000, 25000, -2048, 2047, 4, 16}, /* level 4 */
|
{LEVEL_4_0, 245760, 8192, 32768, 20000, 25000, -2048, 2047, 4, 16}, /* level 4 */
|
||||||
{41, 245760, 8192, 32768, 50000, 62500, -2048, 2047, 2, 16}, /* level 4.1 */
|
{LEVEL_4_1, 245760, 8192, 32768, 50000, 62500, -2048, 2047, 2, 16}, /* level 4.1 */
|
||||||
{42, 522240, 8704, 34816, 50000, 62500, -2048, 2047, 2, 16}, /* level 4.2 */
|
{LEVEL_4_2, 522240, 8704, 34816, 50000, 62500, -2048, 2047, 2, 16}, /* level 4.2 */
|
||||||
|
|
||||||
{50, 589824, 22080, 110400, 135000, 135000, -2048, 2047, 2, 16}, /* level 5 */
|
{LEVEL_5_0, 589824, 22080, 110400, 135000, 135000, -2048, 2047, 2, 16}, /* level 5 */
|
||||||
{51, 983040, 36864, 184320, 240000, 240000, -2048, 2047, 2, 16}, /* level 5.1 */
|
{LEVEL_5_1, 983040, 36864, 184320, 240000, 240000, -2048, 2047, 2, 16}, /* level 5.1 */
|
||||||
{52, 2073600, 36864, 184320, 240000, 240000, -2048, 2047, 2, 16} /* level 5.2 */
|
{LEVEL_5_2, 2073600, 36864, 184320, 240000, 240000, -2048, 2047, 2, 16} /* level 5.2 */
|
||||||
|
};
|
||||||
|
const uint32_t g_kuiLevelMaps[LEVEL_NUMBER] = {
|
||||||
|
10, 9, 11, 12, 13, 20, 21, 22, 30, 31, 32, 40, 41, 42, 50, 51, 52
|
||||||
};
|
};
|
||||||
|
|
||||||
//for cabac
|
//for cabac
|
||||||
/* this table is from Table9-12 to Table 9-24 */
|
/* this table is from Table9-12 to Table 9-24 */
|
||||||
|
|
||||||
|
|||||||
@@ -109,14 +109,14 @@ int32_t WelsCheckRefFrameLimitation (SLogContext* pLogCtx, SWelsSvcCodingParam*
|
|||||||
|
|
||||||
return ENC_RETURN_SUCCESS;
|
return ENC_RETURN_SUCCESS;
|
||||||
}
|
}
|
||||||
static inline int32_t WelsGetLevelIdc (const SWelsSPS* kpSps, float fFrameRate, int32_t iTargetBitRate) {
|
static inline ELevelIdc WelsGetLevelIdc (const SWelsSPS* kpSps, float fFrameRate, int32_t iTargetBitRate) {
|
||||||
int32_t iOrder;
|
int32_t iOrder;
|
||||||
for (iOrder = 0; iOrder < LEVEL_NUMBER; iOrder++) {
|
for (iOrder = 0; iOrder < LEVEL_NUMBER; iOrder++) {
|
||||||
if (WelsCheckLevelLimitation (kpSps, & (g_ksLevelLimits[iOrder]), fFrameRate, iTargetBitRate)) {
|
if (WelsCheckLevelLimitation (kpSps, & (g_ksLevelLimits[iOrder]), fFrameRate, iTargetBitRate)) {
|
||||||
return (int32_t) (g_ksLevelLimits[iOrder].uiLevelIdc);
|
return (g_ksLevelLimits[iOrder].uiLevelIdc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 51; //final decision: select the biggest level
|
return LEVEL_5_1; //final decision: select the biggest level
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -362,7 +362,7 @@ int32_t WelsInitSps (SWelsSPS* pSps, SSpatialLayerConfig* pLayerParam, SSpatialL
|
|||||||
const uint32_t kuiSpsId, const bool kbEnableFrameCropping, bool bEnableRc,
|
const uint32_t kuiSpsId, const bool kbEnableFrameCropping, bool bEnableRc,
|
||||||
const int32_t kiDlayerCount) {
|
const int32_t kiDlayerCount) {
|
||||||
memset (pSps, 0, sizeof (SWelsSPS));
|
memset (pSps, 0, sizeof (SWelsSPS));
|
||||||
|
ELevelIdc uiLevel = LEVEL_5_2;
|
||||||
pSps->uiSpsId = kuiSpsId;
|
pSps->uiSpsId = kuiSpsId;
|
||||||
pSps->iMbWidth = (pLayerParam->iVideoWidth + 15) >> 4;
|
pSps->iMbWidth = (pLayerParam->iVideoWidth + 15) >> 4;
|
||||||
pSps->iMbHeight = (pLayerParam->iVideoHeight + 15) >> 4;
|
pSps->iMbHeight = (pLayerParam->iVideoHeight + 15) >> 4;
|
||||||
@@ -384,18 +384,11 @@ int32_t WelsInitSps (SWelsSPS* pSps, SSpatialLayerConfig* pLayerParam, SSpatialL
|
|||||||
pSps->uiProfileIdc = pLayerParam->uiProfileIdc ? pLayerParam->uiProfileIdc : PRO_BASELINE;
|
pSps->uiProfileIdc = pLayerParam->uiProfileIdc ? pLayerParam->uiProfileIdc : PRO_BASELINE;
|
||||||
|
|
||||||
if (bEnableRc) //fixed QP condition
|
if (bEnableRc) //fixed QP condition
|
||||||
pSps->iLevelIdc = WelsGetLevelIdc (pSps, pLayerParamInternal->fOutputFrameRate, pLayerParam->iSpatialBitrate);
|
uiLevel = WelsGetLevelIdc (pSps, pLayerParamInternal->fOutputFrameRate, pLayerParam->iSpatialBitrate);
|
||||||
else
|
else
|
||||||
pSps->iLevelIdc = WelsGetLevelIdc (pSps, pLayerParamInternal->fOutputFrameRate,
|
uiLevel = WelsGetLevelIdc (pSps, pLayerParamInternal->fOutputFrameRate,
|
||||||
0); // Set tar_br = 0 to remove the bitrate constraint; a better way is to set actual tar_br as 0
|
0); // Set tar_br = 0 to remove the bitrate constraint; a better way is to set actual tar_br as 0
|
||||||
|
|
||||||
//for Scalable Baseline, Scalable High, and Scalable High Intra profiles.If level_idc is equal to 9, the indicated level is level 1b.
|
|
||||||
//for the Baseline, Constrained Baseline, Main, and Extended profiles,If level_idc is equal to 11 and constraint_set3_flag is equal to 1, the indicated level is level 1b.
|
|
||||||
if ((pSps->iLevelIdc == 9) &&
|
|
||||||
((pSps->uiProfileIdc == PRO_BASELINE) || (pSps->uiProfileIdc == PRO_MAIN) || (pSps->uiProfileIdc == PRO_EXTENDED))) {
|
|
||||||
pSps->iLevelIdc = 11;
|
|
||||||
pSps->bConstraintSet3Flag = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pLayerParam->uiProfileIdc == PRO_BASELINE) {
|
if (pLayerParam->uiProfileIdc == PRO_BASELINE) {
|
||||||
pSps->bConstraintSet0Flag = true;
|
pSps->bConstraintSet0Flag = true;
|
||||||
@@ -406,6 +399,19 @@ int32_t WelsInitSps (SWelsSPS* pSps, SSpatialLayerConfig* pLayerParam, SSpatialL
|
|||||||
if (kiDlayerCount > 1) {
|
if (kiDlayerCount > 1) {
|
||||||
pSps->bConstraintSet2Flag = true;
|
pSps->bConstraintSet2Flag = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//update level
|
||||||
|
//for Scalable Baseline, Scalable High, and Scalable High Intra profiles.If level_idc is equal to 9, the indicated level is level 1b.
|
||||||
|
//for the Baseline, Constrained Baseline, Main, and Extended profiles,If level_idc is equal to 11 and constraint_set3_flag is equal to 1, the indicated level is level 1b.
|
||||||
|
if ((uiLevel == LEVEL_1_B) &&
|
||||||
|
((pSps->uiProfileIdc == PRO_BASELINE) || (pSps->uiProfileIdc == PRO_MAIN) || (pSps->uiProfileIdc == PRO_EXTENDED))) {
|
||||||
|
uiLevel = LEVEL_1_1;
|
||||||
|
pSps->bConstraintSet3Flag = true;
|
||||||
|
}
|
||||||
|
if (pLayerParam->uiLevelIdc < uiLevel) {
|
||||||
|
pLayerParam->uiLevelIdc = uiLevel;
|
||||||
|
}
|
||||||
|
pSps->iLevelIdc = g_kuiLevelMaps[pLayerParam->uiLevelIdc - 1];
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1349,7 +1349,6 @@ void GetMvMvdRange (SWelsSvcCodingParam* pParam, int32_t& iMvRange, int32_t& iMv
|
|||||||
if (pParam->sSpatialLayers[iLayer].uiLevelIdc < iMinLevelIdc)
|
if (pParam->sSpatialLayers[iLayer].uiLevelIdc < iMinLevelIdc)
|
||||||
iMinLevelIdc = pParam->sSpatialLayers[iLayer].uiLevelIdc;
|
iMinLevelIdc = pParam->sSpatialLayers[iLayer].uiLevelIdc;
|
||||||
}
|
}
|
||||||
|
|
||||||
iMinMv = (g_ksLevelLimits[iMinLevelIdc - 1].iMinVmv) >> 2;
|
iMinMv = (g_ksLevelLimits[iMinLevelIdc - 1].iMinVmv) >> 2;
|
||||||
iMaxMv = (g_ksLevelLimits[iMinLevelIdc - 1].iMaxVmv) >> 2;
|
iMaxMv = (g_ksLevelLimits[iMinLevelIdc - 1].iMaxVmv) >> 2;
|
||||||
|
|
||||||
@@ -1375,11 +1374,6 @@ int32_t RequestMemorySvc (sWelsEncCtx** ppCtx) {
|
|||||||
int32_t iResult = 0;
|
int32_t iResult = 0;
|
||||||
float fCompressRatioThr = .5f;
|
float fCompressRatioThr = .5f;
|
||||||
const int32_t kiNumDependencyLayers = pParam->iSpatialLayerNum;
|
const int32_t kiNumDependencyLayers = pParam->iSpatialLayerNum;
|
||||||
int32_t iMvdRange = 0;
|
|
||||||
GetMvMvdRange (pParam, (*ppCtx)->iMvRange, iMvdRange);
|
|
||||||
const uint32_t kuiMvdInterTableSize = (iMvdRange << 2); //intepel*4=qpel
|
|
||||||
const uint32_t kuiMvdInterTableStride = 1 + (kuiMvdInterTableSize << 1);//qpel_mv_range*2=(+/-);
|
|
||||||
const uint32_t kuiMvdCacheAlignedSize = kuiMvdInterTableStride * sizeof (uint16_t);
|
|
||||||
int32_t iVclLayersBsSizeCount = 0;
|
int32_t iVclLayersBsSizeCount = 0;
|
||||||
int32_t iNonVclLayersBsSizeCount = 0;
|
int32_t iNonVclLayersBsSizeCount = 0;
|
||||||
int32_t iTargetSpatialBsSize = 0;
|
int32_t iTargetSpatialBsSize = 0;
|
||||||
@@ -1584,6 +1578,12 @@ int32_t RequestMemorySvc (sWelsEncCtx** ppCtx) {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int32_t iMvdRange = 0;
|
||||||
|
GetMvMvdRange (pParam, (*ppCtx)->iMvRange, iMvdRange);
|
||||||
|
const uint32_t kuiMvdInterTableSize = (iMvdRange << 2); //intepel*4=qpel
|
||||||
|
const uint32_t kuiMvdInterTableStride = 1 + (kuiMvdInterTableSize << 1);//qpel_mv_range*2=(+/-);
|
||||||
|
const uint32_t kuiMvdCacheAlignedSize = kuiMvdInterTableStride * sizeof (uint16_t);
|
||||||
|
|
||||||
(*ppCtx)->iMvdCostTableSize = kuiMvdInterTableSize;
|
(*ppCtx)->iMvdCostTableSize = kuiMvdInterTableSize;
|
||||||
(*ppCtx)->iMvdCostTableStride = kuiMvdInterTableStride;
|
(*ppCtx)->iMvdCostTableStride = kuiMvdInterTableStride;
|
||||||
(*ppCtx)->pMvdCostTable = (uint16_t*)pMa->WelsMallocz (52 * kuiMvdCacheAlignedSize, "pMvdCostTable");
|
(*ppCtx)->pMvdCostTable = (uint16_t*)pMa->WelsMallocz (52 * kuiMvdCacheAlignedSize, "pMvdCostTable");
|
||||||
|
|||||||
@@ -130,8 +130,8 @@ TEST_P (DecodeEncodeTest, CompareOutput) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
static const DecodeEncodeFileParam kFileParamArray[] = {
|
static const DecodeEncodeFileParam kFileParamArray[] = {
|
||||||
{"res/test_vd_1d.264", "63fe502aa2d63869cc888592e4984b3d6e8c3bef", 320, 192, 12.0f},
|
{"res/test_vd_1d.264", "3fee3297d9c69aa8726498fdacba87f1e12100b0", 320, 192, 12.0f},
|
||||||
{"res/test_vd_rc.264", "fda7fdfbef853ec7aaf3e236dcfa7c0ba9c2314a", 320, 192, 12.0f},
|
{"res/test_vd_rc.264", "556ac0894af7bc93a27b3f0876184e0171288038", 320, 192, 12.0f},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2322,9 +2322,9 @@ const uint32_t kiFrameRate = 12; //DO NOT CHANGE!
|
|||||||
const uint32_t kiFrameNum = 100; //DO NOT CHANGE!
|
const uint32_t kiFrameNum = 100; //DO NOT CHANGE!
|
||||||
const uint32_t kiMaxBsSize = 10000000; //DO NOT CHANGE!
|
const uint32_t kiMaxBsSize = 10000000; //DO NOT CHANGE!
|
||||||
const char* pHashStr[] = { //DO NOT CHANGE!
|
const char* pHashStr[] = { //DO NOT CHANGE!
|
||||||
"be28b28101023f92b0c994fc63531890d28307d0",
|
"02a5c2dd29af76812f9486d64dd1f4bb6f799405",
|
||||||
"3be320b5af1164cb88519b214e4698f11b3e4eb1",
|
"45dc93584b9a4f8de60d47c0b5254d78541428e6",
|
||||||
"4ed8aa9a107119ff7b1a8821dc757ccc343ffd0b"
|
"d62c2115520207444d481ddde0ea60d938a15c72"
|
||||||
};
|
};
|
||||||
|
|
||||||
class DecodeParseAPI : public EncodeDecodeTestBase {
|
class DecodeParseAPI : public EncodeDecodeTestBase {
|
||||||
|
|||||||
@@ -103,65 +103,65 @@ TEST_P (EncoderOutputTest, CompareOutput) {
|
|||||||
static const EncodeFileParam kFileParamArray[] = {
|
static const EncodeFileParam kFileParamArray[] = {
|
||||||
{
|
{
|
||||||
"res/CiscoVT2people_320x192_12fps.yuv",
|
"res/CiscoVT2people_320x192_12fps.yuv",
|
||||||
"16b145cf76a677d87240ef6c8efff0ff8d3a2f3a", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
"fda5fa8f44241c0ef300eed5d986359cc2f71647", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/CiscoVT2people_160x96_6fps.yuv",
|
"res/CiscoVT2people_160x96_6fps.yuv",
|
||||||
"874ab77ba13f199d70b67cd75f8e23baf482c1ed", CAMERA_VIDEO_REAL_TIME, 160, 96, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
"ce17d7f4ca7750d70dc070a28242edbe98441f5d", CAMERA_VIDEO_REAL_TIME, 160, 96, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/Static_152_100.yuv",
|
"res/Static_152_100.yuv",
|
||||||
"73b40ad71e1f1ffbbd5425de2b094ccbdfa798a6", CAMERA_VIDEO_REAL_TIME, 152, 100, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
"816285029e7ffd76d16b77c9fafb5d3a40878fd0", CAMERA_VIDEO_REAL_TIME, 152, 100, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/CiscoVT2people_320x192_12fps.yuv",
|
"res/CiscoVT2people_320x192_12fps.yuv",
|
||||||
"c1b187be92a35ac8f4f9724b594559e0394c1df8", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_ROWMB_SLICE, false, 1, false, false, false // One slice per MB row
|
"b3ceb5a53399736894dfe612013b72b3fc16bf4b", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_ROWMB_SLICE, false, 1, false, false, false // One slice per MB row
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/CiscoVT2people_320x192_12fps.yuv",
|
"res/CiscoVT2people_320x192_12fps.yuv",
|
||||||
"959a94ea684bf37eaf39909f6460e02b50ad0a5f", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, true, 1, false, false, false
|
"d178cb03b4ce65de7238ab4e72d967d99fae2be7", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, true, 1, false, false, false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/CiscoVT2people_320x192_12fps.yuv",
|
"res/CiscoVT2people_320x192_12fps.yuv",
|
||||||
"684e6d141ada776892bdb01ee93efe475983ed36", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 2, false, false, false
|
"73f87a9826d6e110355dc29699a74543e7ac82b0", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 2, false, false, false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/Cisco_Absolute_Power_1280x720_30fps.yuv",
|
"res/Cisco_Absolute_Power_1280x720_30fps.yuv",
|
||||||
"27a595af0e9598feb4dc1403fd99affddfa51f46", CAMERA_VIDEO_REAL_TIME, 1280, 720, 30.0f, SM_DYN_SLICE, false, 1, false, false, false
|
"31ab47b2db6686b22c0aec4d486be38217d9ffed", CAMERA_VIDEO_REAL_TIME, 1280, 720, 30.0f, SM_DYN_SLICE, false, 1, false, false, false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/Cisco_Absolute_Power_1280x720_30fps.yuv",
|
"res/Cisco_Absolute_Power_1280x720_30fps.yuv",
|
||||||
"68c3220e49b7a57d563faf7c99a870ab34a23400", CAMERA_VIDEO_REAL_TIME, 1280, 720, 30.0f, SM_SINGLE_SLICE, false, 4, false, false, false
|
"db934bc11f7f8e18ac6ff96bdbabe2083ec5f023", CAMERA_VIDEO_REAL_TIME, 1280, 720, 30.0f, SM_SINGLE_SLICE, false, 4, false, false, false
|
||||||
},
|
},
|
||||||
// the following values may be adjusted for times since we start tuning the strategy
|
// the following values may be adjusted for times since we start tuning the strategy
|
||||||
{
|
{
|
||||||
"res/CiscoVT2people_320x192_12fps.yuv",
|
"res/CiscoVT2people_320x192_12fps.yuv",
|
||||||
"7113004abe156bf69c399803f302644645ac42be", SCREEN_CONTENT_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
"6da36dc5d40cb8180df378bac8980e4b136833b3", SCREEN_CONTENT_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/CiscoVT2people_160x96_6fps.yuv",
|
"res/CiscoVT2people_160x96_6fps.yuv",
|
||||||
"51fc38d467509f94e85f9678f11429220e46d862", SCREEN_CONTENT_REAL_TIME, 160, 96, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
"c0ac176c09390bd1db9b38c4dbd2eba10b8e05df", SCREEN_CONTENT_REAL_TIME, 160, 96, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/Static_152_100.yuv",
|
"res/Static_152_100.yuv",
|
||||||
"1af33ad3d8c40756ef1f6074c019a06535c35ab0", SCREEN_CONTENT_REAL_TIME, 152, 100, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
"065e07a60ca7361b28b6f3cd9d124a2234169874", SCREEN_CONTENT_REAL_TIME, 152, 100, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/Cisco_Absolute_Power_1280x720_30fps.yuv",
|
"res/Cisco_Absolute_Power_1280x720_30fps.yuv",
|
||||||
"e032f8f8b153f37e614676735074cdce843032de", SCREEN_CONTENT_REAL_TIME, 1280, 720, 30.0f, SM_DYN_SLICE, false, 1, false, false, false
|
"5f25b1427f4209664720a7655ba50de4726cd003", SCREEN_CONTENT_REAL_TIME, 1280, 720, 30.0f, SM_DYN_SLICE, false, 1, false, false, false
|
||||||
},
|
},
|
||||||
//for different strategy
|
//for different strategy
|
||||||
{
|
{
|
||||||
"res/Cisco_Absolute_Power_1280x720_30fps.yuv",
|
"res/Cisco_Absolute_Power_1280x720_30fps.yuv",
|
||||||
"28e290b204257eae5c735b2b96491358ec14221e", SCREEN_CONTENT_REAL_TIME, 1280, 720, 30.0f, SM_DYN_SLICE, false, 1, true, true, false
|
"abf089cc5357f8a208e2c99fbcdbd53d6d1638c8", SCREEN_CONTENT_REAL_TIME, 1280, 720, 30.0f, SM_DYN_SLICE, false, 1, true, true, false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/CiscoVT2people_320x192_12fps.yuv",
|
"res/CiscoVT2people_320x192_12fps.yuv",
|
||||||
"59e51ffc741172df4a729d7fc1f85645885311a5", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, true //turn on cabac
|
"0eaa62f8e311d529674808c02dc9688c4a0952dd", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, true //turn on cabac
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"res/Cisco_Absolute_Power_1280x720_30fps.yuv",
|
"res/Cisco_Absolute_Power_1280x720_30fps.yuv",
|
||||||
"f4361779554ae66ce62308f1e01218369ca0edf4", CAMERA_VIDEO_REAL_TIME, 1280, 720, 30.0f, SM_DYN_SLICE, false, 1, false, false, true
|
"e95de674383f2541502b2bd2b4d13f724c3b9bd8", CAMERA_VIDEO_REAL_TIME, 1280, 720, 30.0f, SM_DYN_SLICE, false, 1, false, false, true
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -77,7 +77,7 @@ runUpdateSHA1TablePostAction()
|
|||||||
if [[ "$FileName" =~ UpdateSHA1Table.csv$ ]]
|
if [[ "$FileName" =~ UpdateSHA1Table.csv$ ]]
|
||||||
then
|
then
|
||||||
BitStreamName=`echo $FileName | awk 'BEGIN {FS=".264"} {print $1}'`
|
BitStreamName=`echo $FileName | awk 'BEGIN {FS=".264"} {print $1}'`
|
||||||
SHA1TableName=${BitStreamName}.264_AllCase_SHA1_Table.csv
|
SHA1TableName=${BitStreamName}.264_AllCases_SHA1_Table.csv
|
||||||
./Scripts/run_SafeDelete.sh ${SHA1TableFolder}/${SHA1TableName} >>${DeletedLog}
|
./Scripts/run_SafeDelete.sh ${SHA1TableFolder}/${SHA1TableName} >>${DeletedLog}
|
||||||
cp $file ${SHA1TableFolder}/${SHA1TableName}
|
cp $file ${SHA1TableFolder}/${SHA1TableName}
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user