Showing the changes to test/encoder_binary_comparison/Scripts (2 of 12 files). Show all
Unified · Split
| @@ -5,8 +5,7 @@ · 4 unmodified lines | |||
| 5 | # -- Test bit stream under folder openh264/res | 5 | # -- Test bit stream under folder openh264/res |
| 6 | # -- SHA-1 string of Benchmark version for all cases of all bit streams | 6 | # -- SHA-1 string of Benchmark version for all cases of all bit streams |
| 7 | # under folder openh264/test/encoder_binary_comparion/SHA1Table | 7 | # under folder openh264/test/encoder_binary_comparion/SHA1Table |
| 8 | # -- For more detail,please refer to file AboutTest¡£ | 8 | # -- For more detail,please refer to file AboutTest?¡ê |
| 9 | # | ||
| 10 | #brief: | 9 | #brief: |
| 11 | # -- Test all cases in SHA1TableFile | 10 | # -- Test all cases in SHA1TableFile |
| 12 | # 1) Generate SHA1 string for each case | 11 | # 1) Generate SHA1 string for each case |
| @@ -38,10 +37,12 @@ runGlobalVariableDef() · 25 unmodified lines | |||
| 38 | #xxx.csv | 37 | #xxx.csv |
| 39 | AllCasePassStatusFile="" | 38 | AllCasePassStatusFile="" |
| 40 | #for encoder command | 39 | #for encoder command |
| 41 | declare -a EncoderCommandSet | 40 | declare -a aEncoderCommandSet |
| 42 | declare -a EncoderCommandName | 41 | declare -a aEncoderCommandName |
| 43 | declare -a EncoderCommandValue | 42 | declare -a aEncoderCommandValue |
| 43 | declare -a aRecYUVFileList | ||
| 44 | #encoder parameters change based on the case info | 44 | #encoder parameters change based on the case info |
| 45 | let "EncoderFlag = 0" | ||
| 45 | CaseInfo="" | 46 | CaseInfo="" |
| 46 | BitStreamFile="" | 47 | BitStreamFile="" |
| 47 | DiffFlag="" | 48 | DiffFlag="" |
| @@ -54,42 +55,32 @@ runGlobalVariableDef() · 6 unmodified lines | |||
| 54 | #usage runEncoderCommandInital | 55 | #usage runEncoderCommandInital |
| 55 | runEncoderCommandInital() | 56 | runEncoderCommandInital() |
| 56 | { | 57 | { |
| 57 | EncoderCommandSet=(-frms \ | 58 | aEncoderCommandSet=( -utype -frms -numl -numtl \ |
| 58 | -numtl \ | 59 | -sw -sh "-dw 0" "-dh 0" "-dw 1" "-dh 1" "-dw 2" "-dh 2" "-dw 3" "-dh 3" \ |
| 59 | -scrsig \ | 60 | "-frout 0" "-frout 1" "-frout 2" "-frout 3" \ |
| 60 | -rc \ | 61 | "-lqp 0" "-lqp 1" "-lqp 2" "-lqp 3" \ |
| 61 | -tarb \ | 62 | -rc -tarb "-ltarb 0" "-ltarb 1" "-ltarb 2" "-ltarb 3" \ |
| 62 | "-lqp 0" \ | 63 | "-slcmd 0" "-slcnum 0" "-slcmd 1" "-slcnum 1"\ |
| 63 | -iper \ | 64 | "-slcmd 2" "-slcnum 2" "-slcmd 3" "-slcnum 3"\ |
| 64 | "-slcmd 0" \ | 65 | -nalsize \ |
| 65 | "-slcnum 0" \ | 66 | -iper -thread -ltr \ |
| 66 | -thread \ | 67 | -db -denois -scene -bgd -aq ) |
| 67 | -ltr \ | 68 | aEncoderCommandName=(usagetype frms numl numtl \ |
| 68 | -db \ | 69 | sw sh dw0 dh0 dw1 dh1 dw2 dh2 dw3 dh3 \ |
| 69 | -nalsize \ | 70 | frout0 frout1 frout2 frout3 \ |
| 70 | -denois \ | 71 | lqp0 lqp1 lqp2 lqp3 \ |
| 71 | -scene \ | 72 | rc tarb ltarb0 ltarb1 ltarb2 ltarb3 \ |
| 72 | -bgd \ | 73 | slcmd0 slcnum0 slcmd1 slcnum1 \ |
| 73 | -aq) | 74 | slcmd2 slcnum2 slcmd3 slcnum3 \ |
| 74 | EncoderCommandName=(FrEcoded \ | 75 | MaxNalSZ \ |
| 75 | NumTempLayer \ | 76 | iper thread ltr \ |
| 76 | ContentSig \ | 77 | db denois scene bgd aq ) |
| 77 | RC \ | 78 | NumParameter=${#aEncoderCommandSet[@]} |
| 78 | BitRate \ | 79 | for ((i=0;i<NumParameter; i++)) |
| 79 | QP \ | 80 | do |
| 80 | IntraPeriod \ | 81 | aEncoderCommandValue[$i]=0 |
| 81 | SlcMd \ | 82 | done |
| 82 | SlcMum \ | 83 | |
| 83 | ThrMum \ | ||
| 84 | LTR \ | ||
| 85 | LFilterIDC \ | ||
| 86 | MacNalSize \ | ||
| 87 | DenoiseFlag \ | ||
| 88 | SceneChangeFlag \ | ||
| 89 | BackgroundFlag \ | ||
| 90 | AQFlag) | ||
| 91 | EncoderCommandValue=(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) | ||
| 92 | NumParameter=${#EncoderCommandSet[@]} | ||
| 93 | } | 84 | } |
| 94 | runGlobalVariableInitial() | 85 | runGlobalVariableInitial() |
| 95 | { | 86 | { |
| @@ -110,35 +101,33 @@ runGlobalVariableInitial() · 14 unmodified lines | |||
| 110 | AllCasePassStatusFile="${FinalResultPath}/${TestSequenceName}_AllCaseOutput.csv" | 101 | AllCasePassStatusFile="${FinalResultPath}/${TestSequenceName}_AllCaseOutput.csv" |
| 111 | UnpassCaseFile="${FinalResultPath}/${TestSequenceName}_unpassCaseOutput.csv" | 102 | UnpassCaseFile="${FinalResultPath}/${TestSequenceName}_unpassCaseOutput.csv" |
| 112 | UpdateSHA1TableFile="${FinalResultPath}/${TestSequenceName}_UpdateSHA1Table.csv" | 103 | UpdateSHA1TableFile="${FinalResultPath}/${TestSequenceName}_UpdateSHA1Table.csv" |
| 113 | echo "BitMatched Status, \ | 104 | HeadLine1="BitMatched Status, SHA-1-Target, SHA-1-Benchmark, MD5-Target, MD5-Benchmark,\ |
| 114 | SHA-1-Target, SHA-1-Benchmark, \ | 105 | Bitstream-Target,Bitstream-Benchmark,YUV-Target,YUV-Benchmark,\ |
| 115 | MD5-Target, MD5-Benchmark, \ | 106 | -utype, -frms, -numl, -numtl, -sw, -sh,\ |
| 116 | Bitstream-Target,Bitstream-Benchmark, \ | 107 | -dw 0, -dh 0, -dw 1, -dh 1, -dw 2, -dh 2, -dw 3, -dh 3,\ |
| 117 | YUV-Target,YUV-Benchmark, \ | 108 | -frout 0, -frout 1, -frout 2, -frout 3,\ |
| 118 | -frms, -numtl, -scrsig, -rc, \ | 109 | -lqp 0, -lqp 1, -lqp 2, -lqp 3,\ |
| 119 | -tarb, -lqp 0, -iper, \ | 110 | -rc, -tarb, -ltarb 0, -ltarb 1, -ltarb 2, -ltarb 3,\ |
| 120 | -slcmd 0,-slcnum 0, -thread, \ | 111 | -slcmd 0, -slcnum 0, -slcmd 1, -slcnum 1,\ |
| 121 | -ltr, -db, -nalsize,-denois, \ | 112 | -slcmd 2, -slcnum 2, -slcmd 3, -slcnum 3,\ |
| 122 | -scene, -bgd, -aq">${AllCasePassStatusFile} | 113 | -nalsize,\ |
| 123 | 114 | -iper, -thread, -ltr, -db, -denois,\ | |
| 124 | echo "BitMatched Status, \ | 115 | -scene, -bgd , -aq, " |
| 125 | SHA-1-Target, SHA-1-Benchmark, \ | 116 | HeadLine2="SHA-1 Value, MD5String, BitStreamSize, YUVSize, \ |
| 126 | MD5-Target, MD5-Benchmark, \ | 117 | -utype, -frms, -numl, -numtl, -sw, -sh,\ |
| 127 | Bitstream-Target,Bitstream-Benchmark,\ | 118 | -dw 0, -dh 0, -dw 1, -dh 1,-dw 2, -dh 2, -dw 3, -dh 3,\ |
| 128 | YUV-Target,YUV-Benchmark, \ | 119 | -frout 0, -frout 1, -frout 2, -frout 3,\ |
| 129 | -frms, -numtl, -scrsig, -rc, \ | 120 | -lqp 0, -lqp 1, -lqp 2, -lqp 3,\ |
| 130 | -tarb, -lqp 0, -iper, \ | 121 | -rc, -tarb, -ltarb 0, -ltarb 1, -ltarb 2, -ltarb 3,\ |
| 131 | -slcmd 0,-slcnum 0, -thread, \ | 122 | -slcmd 0, -slcnum 0, -slcmd 1, -slcnum 1,\ |
| 132 | -ltr, -db, -nalsize,-denois, \ | 123 | -slcmd 2, -slcnum 2, -slcmd 3, -slcnum 3,\ |
| 133 | -scene, -bgd, -aq">${UnpassCaseFile} | 124 | -nalsize,\ |
| 125 | -iper, -thread, -ltr, -db, -denois,\ | ||
| 126 | -scene , bgd , -aq " | ||
| 127 | echo ${HeadLine1}>${AllCasePassStatusFile} | ||
| 128 | echo ${HeadLine1}>${UnpassCaseFile} | ||
| 129 | echo ${HeadLine2}>${UpdateSHA1TableFile} | ||
| 134 | 130 | ||
| 135 | echo "SHA-1 Value, \ | ||
| 136 | MD5String, BitStreamSize, YUVSize, \ | ||
| 137 | -frms, -numtl, -scrsig, -rc, \ | ||
| 138 | -tarb, -lqp 0, -iper, \ | ||
| 139 | -slcmd 0,-slcnum 0, -thread, \ | ||
| 140 | -ltr, -db, -MaxNalSize,-denois, \ | ||
| 141 | -scene, -bgd, -aq">${UpdateSHA1TableFile} | ||
| 142 | #intial Commandline parameters | 131 | #intial Commandline parameters |
| 143 | runEncoderCommandInital | 132 | runEncoderCommandInital |
| 144 | let "TotalCaseNum=0" | 133 | let "TotalCaseNum=0" |
| @@ -163,70 +152,89 @@ runParseCaseInfo() · 18 unmodified lines | |||
| 163 | { | 152 | { |
| 164 | if [ $# -lt 1 ] | 153 | if [ $# -lt 1 ] |
| 165 | then | 154 | then |
| 166 | echo "runParseCaseInfo \$CaseData" | 155 | echo "no parameter!" |
| 167 | return 1 | 156 | return 1 |
| 168 | fi | 157 | fi |
| 169 | local TempData="" | 158 | local TempData="" |
| 170 | local BitstreamPrefix="" | ||
| 171 | local CaseData=$@ | 159 | local CaseData=$@ |
| 160 | local BitstreamPrefix="" | ||
| 172 | BenchmarkSHA1=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {print $1} ' ` | 161 | BenchmarkSHA1=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {print $1} ' ` |
| 173 | BenchmarkMD5=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {print $2} ' ` | 162 | BenchmarkMD5=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {print $2} ' ` |
| 174 | BenchmarkYUVSize=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {print $4} ' ` | 163 | BenchmarkYUVSize=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {print $4} ' ` |
| 175 | BenchmarkBitstreamSize=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {print $3} ' ` | 164 | BenchmarkBitstreamSize=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {print $3} ' ` |
| 165 | |||
| 166 | declare -a aTempParamIndex=( 6 7 8 9 10 11 12 13 15 16 17 19 20 21 24 25 26 27 30 31 32 33 34 35 ) | ||
| 176 | TempData=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {for(i=5;i<=NF;i++) printf(" %s",$i)} ' ` | 167 | TempData=`echo $CaseData |awk 'BEGIN {FS="[,\r]"} {for(i=5;i<=NF;i++) printf(" %s",$i)} ' ` |
| 177 | EncoderCommandValue=(${TempData}) | 168 | aEncoderCommandValue=(${TempData}) |
| 169 | let "TempParamFlag=0" | ||
| 178 | for((i=0; i<$NumParameter; i++)) | 170 | for((i=0; i<$NumParameter; i++)) |
| 179 | do | 171 | do |
| 180 | BitstreamPrefix=${BitstreamPrefix}_${EncoderCommandName[$i]}_${EncoderCommandValue[$i]} | 172 | for ParnmIndex in ${aTempParamIndex[@]} |
| 173 | do | ||
| 174 | if [ $i -eq ${ParnmIndex} ] | ||
| 175 | then | ||
| 176 | let "TempParamFlag=1" | ||
| 177 | fi | ||
| 178 | done | ||
| 179 | if [ ${TempParamFlag} -eq 0 ] | ||
| 180 | then | ||
| 181 | BitstreamPrefix=${BitstreamPrefix}_${aEncoderCommandName[$i]}_${aEncoderCommandValue[$i]} | ||
| 182 | fi | ||
| 183 | let "TempParamFlag=0" | ||
| 181 | done | 184 | done |
| 185 | |||
| 182 | BitstreamTarget=${TempDataPath}/${TestSequenceName}_${BitstreamPrefix}_codec_target.264 | 186 | BitstreamTarget=${TempDataPath}/${TestSequenceName}_${BitstreamPrefix}_codec_target.264 |
| 183 | echo "" | 187 | echo "" |
| 184 | echo "BitstreamPrefix is ${BitstreamPrefix}" | 188 | echo "BitstreamPrefix is ${BitstreamPrefix}" |
| 185 | echo "" | 189 | echo "" |
| 186 | } | 190 | } |
| 187 | #called by runAllCaseTest | ||
| 188 | #usage runEncodeOneCase | ||
| 189 | runEncodeOneCase() | 191 | runEncodeOneCase() |
| 190 | { | 192 | { |
| 191 | BitStreamFile=${BitstreamTarget} | 193 | local ParamCommand="" |
| 192 | CaseCommand=" ${ConfigureFile} \ | 194 | BitStreamFile=${BitstreamTarget} |
| 193 | -numl 1 \ | 195 | |
| 194 | -lconfig 0 layer2.cfg \ | 196 | for ((i=4; i<${NumParameter}; i++)) |
| 195 | -sw ${PicW} -sh ${PicH} \ | 197 | do |
| 196 | -dw 0 ${PicW} -dh 0 ${PicH} \ | 198 | ParamCommand="${ParamCommand} ${aEncoderCommandSet[$i]} ${aEncoderCommandValue[$i]} " |
| 197 | -frout 0 30 \ | 199 | done |
| 198 | -ltarb 0 ${EncoderCommandValue[4]} \ | 200 | for((i=0;i<4;i++)) |
| 199 | ${EncoderCommandSet[0]} ${EncoderCommandValue[0]} \ | 201 | do |
| 200 | ${EncoderCommandSet[1]} ${EncoderCommandValue[1]} \ | 202 | aRecYUVFileList[$i]="${TempDataPath}/${TestYUVName}_rec${i}.yuv" |
| 201 | ${EncoderCommandSet[2]} ${EncoderCommandValue[2]} \ | 203 | done |
| 202 | ${EncoderCommandSet[3]} ${EncoderCommandValue[3]} \ | 204 | ParamCommand="${aEncoderCommandSet[0]} ${aEncoderCommandValue[0]} ${aEncoderCommandSet[1]} ${aEncoderCommandValue[1]} \ |
| 203 | ${EncoderCommandSet[4]} ${EncoderCommandValue[4]} \ | 205 | ${aEncoderCommandSet[2]} ${aEncoderCommandValue[2]} \ |
| 204 | ${EncoderCommandSet[5]} ${EncoderCommandValue[5]} \ | 206 | -lconfig 0 layer0.cfg -lconfig 1 layer1.cfg -lconfig 2 layer2.cfg -lconfig 3 layer3.cfg \ |
| 205 | ${EncoderCommandSet[6]} ${EncoderCommandValue[6]} \ | 207 | ${aEncoderCommandSet[3]} ${aEncoderCommandValue[3]} \ |
| 206 | ${EncoderCommandSet[7]} ${EncoderCommandValue[7]} \ | 208 | ${ParamCommand}" |
| 207 | ${EncoderCommandSet[8]} ${EncoderCommandValue[8]} \ | ||
| 208 | ${EncoderCommandSet[9]} ${EncoderCommandValue[9]} \ | ||
| 209 | ${EncoderCommandSet[10]} ${EncoderCommandValue[10]} \ | ||
| 210 | ${EncoderCommandSet[11]} ${EncoderCommandValue[11]} \ | ||
| 211 | ${EncoderCommandSet[12]} ${EncoderCommandValue[12]} \ | ||
| 212 | ${EncoderCommandSet[13]} ${EncoderCommandValue[13]} \ | ||
| 213 | ${EncoderCommandSet[14]} ${EncoderCommandValue[14]} \ | ||
| 214 | ${EncoderCommandSet[15]} ${EncoderCommandValue[15]} \ | ||
| 215 | ${EncoderCommandSet[16]} ${EncoderCommandValue[16]}" | ||
| 216 | echo ${EncoderCommandSet[@]} | ||
| 217 | echo ${EncoderCommandValue[@]} | ||
| 218 | echo ${EncoderCommandSet[11]} | ||
| 219 | echo ${EncoderCommandValue[11]} | ||
| 220 | echo ${EncoderCommandSet[12]} | ||
| 221 | echo ${EncoderCommandValue[12]} | ||
| 222 | EncoderCommand="./h264enc ${CaseCommand} -bf ${BitStreamFile} -org ${TestSequencePath}/${TestSequenceName} " | ||
| 223 | echo "" | 209 | echo "" |
| 210 | echo "---------------Encode One Case-------------------------------------------" | ||
| 224 | echo "case line is :" | 211 | echo "case line is :" |
| 225 | echo " ${EncoderCommand}" | 212 | EncoderCommand="./h264enc welsenc.cfg ${ParamCommand} -bf ${BitStreamFile} \ |
| 213 | -drec 0 ${aRecYUVFileList[0]} -drec 1 ${aRecYUVFileList[1]} \ | ||
| 214 | -drec 2 ${aRecYUVFileList[2]} -drec 3 ${aRecYUVFileList[3]} \ | ||
| 215 | -org ${TestSequencePath}/${TestSequenceName}" | ||
| 216 | echo ${EncoderCommand} | ||
| 226 | echo -e "\n\n" | 217 | echo -e "\n\n" |
| 227 | ./h264enc ${CaseCommand} \ | 218 | ./h264enc welsenc.cfg ${ParamCommand} -bf ${BitStreamFile} \ |
| 228 | -bf ${BitStreamFile} \ | 219 | -drec 0 ${aRecYUVFileList[0]} -drec 1 ${aRecYUVFileList[1]} \ |
| 229 | -org ${TestSequencePath}/${TestSequenceName} 2>${EncoderLogFile} | 220 | -drec 2 ${aRecYUVFileList[2]} -drec 3 ${aRecYUVFileList[3]} \ |
| 221 | -org ${TestSequencePath}/${TestSequenceName} 2>${EncoderLogFile} | ||
| 222 | if [ $? -eq 0 ] | ||
| 223 | then | ||
| 224 | let "EncoderFlag=0" | ||
| 225 | else | ||
| 226 | let "EncoderFlag=1" | ||
| 227 | fi | ||
| 228 | |||
| 229 | #delete the core down file as core down files for disk space limitation | ||
| 230 | for file in ./core* | ||
| 231 | do | ||
| 232 | if [ -e ${file} ] | ||
| 233 | then | ||
| 234 | ./run_SafeDelete.sh ${file} | ||
| 235 | fi | ||
| 236 | done | ||
| 237 | return 0 | ||
| 230 | } | 238 | } |
| 231 | #usage? runGetFileSize $FileName | 239 | #usage? runGetFileSize $FileName |
| 232 | runGetFileSize() | 240 | runGetFileSize() |
| @@ -251,15 +259,31 @@ runBitStreamVerify() · 18 unmodified lines | |||
| 251 | echo "******************************************" | 259 | echo "******************************************" |
| 252 | echo "Bit streamSHA1 value comparison.... " | 260 | echo "Bit streamSHA1 value comparison.... " |
| 253 | #******************************************* | 261 | #******************************************* |
| 262 | TargetSHA1="NULL" | ||
| 263 | TargetMD5="NULL" | ||
| 264 | TargetYUVSize="NULL" | ||
| 265 | TargetBitstreamSize="NULL" | ||
| 266 | |||
| 267 | if [ ${EncoderFlag} -eq 1 ] | ||
| 268 | then | ||
| 269 | let "UnpassCaseNum++" | ||
| 270 | echo "1:unpassed! encoder initial failed or crash!" | ||
| 271 | DiffFlag="1:unpassed! encoder initial failed or crash!" | ||
| 272 | return 1 | ||
| 273 | fi | ||
| 274 | |||
| 254 | if [ ! -s ${BitStreamFile} ] | 275 | if [ ! -s ${BitStreamFile} ] |
| 255 | then | 276 | then |
| 256 | let "UnpassCaseNum++" | 277 | let "UnpassCaseNum++" |
| 278 | echo "2:unpassed! 0 bits--bit stream" | ||
| 257 | DiffFlag="2:unpassed! 0 bits--bit stream" | 279 | DiffFlag="2:unpassed! 0 bits--bit stream" |
| 258 | return 1 | 280 | return 1 |
| 259 | fi | 281 | fi |
| 260 | #******************************************* | 282 | #******************************************* |
| 261 | #******************************************* | 283 | #******************************************* |
| 262 | #SHA1(run_Test.sh)= fde74d9e8194d0cf28991a0481c7158a033ec920 | 284 | echo "" |
| 285 | echo "${BitStreamFile}" | ||
| 286 | #SHA1 | ||
| 263 | TargetSHA1=`openssl sha1 ${BitStreamFile}` | 287 | TargetSHA1=`openssl sha1 ${BitStreamFile}` |
| 264 | TargetSHA1=`echo ${TargetSHA1} | awk '{print $2}' ` | 288 | TargetSHA1=`echo ${TargetSHA1} | awk '{print $2}' ` |
| 265 | TargetMD5=`openssl md5 ${BitStreamFile}` | 289 | TargetMD5=`openssl md5 ${BitStreamFile}` |
| @@ -268,19 +292,19 @@ runBitStreamVerify() · 2 unmodified lines | |||
| 268 | TargetBitstreamSize=`runGetFileSize ${BitStreamFile}` | 292 | TargetBitstreamSize=`runGetFileSize ${BitStreamFile}` |
| 269 | if [[ "${TargetSHA1}" =~ "${BenchmarkSHA1}" ]] | 293 | if [[ "${TargetSHA1}" =~ "${BenchmarkSHA1}" ]] |
| 270 | then | 294 | then |
| 271 | echo "bitstream pass! SHA1--${TargetSHA1} ----- ${BenchmarkSHA1}" | 295 | echo "bitstream pass! SHA1--${TargetSHA1} ----- ${BenchmarkSHA1}" |
| 272 | echo "bitstream pass! MD5-- ${TargetMD5} ----- ${BenchmarkMD5}" | 296 | echo "MD5 info: MD5--${TargetMD5} ----- ${BenchmarkMD5}" |
| 273 | echo "YUV size pass! size--${TargetYUVSize}--${BenchmarkYUVSize} " | 297 | echo "YUV size info: size--${TargetYUVSize} ---- ${BenchmarkYUVSize} " |
| 274 | echo "BitStreamSize pass! size--${TargetBitstreamSize}--${BenchmarkBitstreamSize}" | 298 | echo "BitStreamSize info: size--${TargetBitstreamSize} ---- ${BenchmarkBitstreamSize}" |
| 275 | DiffFlag="0:passed!" | 299 | DiffFlag="0:passed!" |
| 276 | let "PassCaseNum++" | 300 | let "PassCaseNum++" |
| 277 | return 0 | 301 | return 0 |
| 278 | else | 302 | else |
| 279 | echo "!!! SHA1 string not match: ${TargetSHA1} ----- ${BenchmarkSHA1} " | 303 | echo "!!! SHA1 string not match: ${TargetSHA1} ----- ${BenchmarkSHA1} " |
| 280 | echo "bitstream pass! MD5-- ${TargetMD5} ----- ${BenchmarkMD5}" | 304 | echo "MD5 info: MD5--${TargetMD5} ----- ${BenchmarkMD5}" |
| 281 | echo "YUV size pass! size--${TargetYUVSize}--${BenchmarkYUVSize} " | 305 | echo "YUV size info: size--${TargetYUVSize} ---- ${BenchmarkYUVSize} " |
| 282 | echo "BitStreamSize pass! size--${TargetBitstreamSize}--${BenchmarkBitstreamSize}" | 306 | echo "BitStreamSize info: size--${TargetBitstreamSize} ---- ${BenchmarkBitstreamSize}" |
| 283 | DiffFlag="1:unpassed!" | 307 | DiffFlag="3:unpassed!" |
| 284 | let "UnpassCaseNum++" | 308 | let "UnpassCaseNum++" |
| 285 | return 1 | 309 | return 1 |
| 286 | fi | 310 | fi |
| @@ -297,13 +321,16 @@ runSingleCasePostAction() · 10 unmodified lines | |||
| 297 | fi | 321 | fi |
| 298 | local CaseData=$@ | 322 | local CaseData=$@ |
| 299 | CaseInfo=`echo $CaseData | awk 'BEGIN {FS="[,\r]"} {for(i=5;i<=NF;i++) printf(" %s,",$i)} '` | 323 | CaseInfo=`echo $CaseData | awk 'BEGIN {FS="[,\r]"} {for(i=5;i<=NF;i++) printf(" %s,",$i)} '` |
| 300 | echo "${DiffFlag}, ${TargetSHA1}, ${BenchmarkSHA1}, {TargetMD5}, ${BenchmarkMD5}, \ | 324 | PassStatusInfo="${DiffFlag}, ${TargetSHA1}, ${BenchmarkSHA1}, ${TargetMD5}, ${BenchmarkMD5},\ |
| 301 | ${TargetBitstreamSize} , ${BenchmarkBitstreamSize},\ | 325 | ${TargetBitstreamSize}, ${BenchmarkBitstreamSize}, ${TargetYUVSize}, ${BenchmarkYUVSize},\ |
| 302 | ${TargetYUVSize}, ${BenchmarkYUVSize},\ | 326 | ${CaseInfo}, ${EncoderCommand} " |
| 303 | ${CaseInfo}, ${EncoderCommand} " >>${AllCasePassStatusFile} | 327 | echo "${PassStatusInfo}">>${AllCasePassStatusFile} |
| 304 | 328 | if [ "$DiffFlag" = "0:passed!" ] | |
| 305 | echo "${TargetSHA1}, ${TargetMD5},${TargetBitstreamSize}, ${TargetYUVSize},${CaseInfo}">>${UpdateSHA1TableFile} | 329 | then |
| 306 | 330 | echo "${TargetSHA1}, ${TargetMD5},${TargetBitstreamSize}, ${TargetYUVSize},${CaseInfo}">>${UpdateSHA1TableFile} | |
| 331 | else | ||
| 332 | echo "${PassStatusInfo}">>${UnpassCaseFile} | ||
| 333 | fi | ||
| 307 | ./run_SafeDelete.sh ${BitstreamTarget} >>${AllCaseConsoleLogFile} | 334 | ./run_SafeDelete.sh ${BitstreamTarget} >>${AllCaseConsoleLogFile} |
| 308 | } | 335 | } |
| 309 | #usage runOutputPassNum | 336 | #usage runOutputPassNum |
| @@ -343,23 +370,19 @@ runAllCaseTest() · 33 unmodified lines | |||
| 343 | then | 370 | then |
| 344 | if [ "$DiffFlag" = "0:passed!" ] | 371 | if [ "$DiffFlag" = "0:passed!" ] |
| 345 | then | 372 | then |
| 346 | echo -e "\033[32m OK! ${TestSequenceName} Case Index ${TotalCaseNum}:SHA-1(Current--Benchmark): ${TargetSHA1} ----- ${BenchmarkSHA1} \033[0m" | 373 | echo -e "\033[32m OK! ${TestSequenceName} Case Index ${TotalCaseNum}:SHA-1(Current--Benchmark): ${TargetSHA1}-----${BenchmarkSHA1} \033[0m" |
| 347 | echo -e "\033[32m ----MD5 (Current--Benchmark): ${TargetMD5}, ${BenchmarkMD5} \033[0m" | 374 | echo -e "\033[32m ----MD5 (Current--Benchmark): ${TargetMD5}-----${BenchmarkMD5} \033[0m" |
| 348 | echo -e "\033[32m ----BitstreamSize: ${TargetBitstreamSize}, ${BenchmarkBitstreamSize} YUVSize: ${TargetYUVSize}, ${BenchmarkYUVSize} \033[0m" | 375 | echo -e "\033[32m ----BitstreamSize: ${TargetBitstreamSize}, ${BenchmarkBitstreamSize} YUVSize: ${TargetYUVSize}, ${BenchmarkYUVSize} \033[0m" |
| 349 | fi | 376 | fi |
| 350 | fi | 377 | fi |
| 351 | #****************************************** | 378 | #****************************************** |
| 352 | if [ ! "$DiffFlag" = "0:passed!" ] | 379 | if [ ! "$DiffFlag" = "0:passed!" ] |
| 353 | then | 380 | then |
| 354 | echo -e "\033[31m Failed! ${TestSequenceName} Case Index ${TotalCaseNum}:SHA-1(Current--Benchmark): ${TargetSHA1} ----- ${BenchmarkSHA1} \033[0m" | 381 | echo -e "\033[31m Failed! ${TestSequenceName} Case Index ${TotalCaseNum}:SHA-1(Current--Benchmark): ${TargetSHA1}-----${BenchmarkSHA1} \033[0m" |
| 355 | echo -e "\033[31m ----MD5 (Current--Benchmark): ${TargetMD5}, ${BenchmarkMD5} \033[0m" | 382 | echo -e "\033[31m ----MD5 (Current--Benchmark): ${TargetMD5}-----${BenchmarkMD5} \033[0m" |
| 356 | echo -e "\033[31m ----BitstreamSize: ${TargetBitstreamSize}, ${BenchmarkBitstreamSize} YUVSize: ${TargetYUVSize}, ${BenchmarkYUVSize} \033[0m" | 383 | echo -e "\033[31m ----BitstreamSize: ${TargetBitstreamSize}, ${BenchmarkBitstreamSize} YUVSize: ${TargetYUVSize}, ${BenchmarkYUVSize} \033[0m" |
| 357 | EncoderLogInfo=`cat ${EncoderLogFile}` | 384 | EncoderLogInfo=`cat ${EncoderLogFile}` |
| 358 | echo -e "\033[31m ${EncoderLogInfo} \033[0m" | 385 | echo -e "\033[31m ${EncoderLogInfo} \033[0m" |
| 359 | echo "${DiffFlag}, ${TargetSHA1}, ${BenchmarkSHA1}, ${TargetMD5}, ${BenchmarkMD5}, \ | ||
| 360 | ${TargetBitstreamSize} , ${BenchmarkBitstreamSize}, \ | ||
| 361 | ${TargetYUVSize}, ${BenchmarkYUVSize}, \ | ||
| 362 | ${CaseInfo}, ${EncoderCommand} ">>${UnpassCaseFile} | ||
| 363 | fi | 386 | fi |
| 364 | runSingleCasePostAction ${CaseData} | 387 | runSingleCasePostAction ${CaseData} |
| 365 | let "TotalCaseNum++" | 388 | let "TotalCaseNum++" |
| @@ -53,9 +53,8 @@ run_BitStream2YUV() · 52 unmodified lines | |||
| 53 | return 1 | 53 | return 1 |
| 54 | fi | 54 | fi |
| 55 | local BitStreamName=$1 | 55 | local BitStreamName=$1 |
| 56 | local OutputYUVNAMe=$2 | 56 | local OutputYUVName=$2 |
| 57 | local LogFile=$3 | 57 | local LogFile=$3 |
| 58 | |||
| 59 | if [ ! -f ${BitStreamName} ] | 58 | if [ ! -f ${BitStreamName} ] |
| 60 | then | 59 | then |
| 61 | echo "bit stream file does not exist!" | 60 | echo "bit stream file does not exist!" |
| @@ -63,8 +62,7 @@ run_BitStream2YUV() · 1 unmodified line | |||
| 63 | return 1 | 62 | return 1 |
| 64 | fi | 63 | fi |
| 65 | #decode bitstream | 64 | #decode bitstream |
| 66 | ./h264dec ${BitStreamName} ${OutputYUVNAMe} 2> ${LogFile} | 65 | ./h264dec ${BitStreamName} ${OutputYUVName} 2> ${LogFile} |
| 67 | |||
| 68 | return 0 | 66 | return 0 |
| 69 | } | 67 | } |
| 70 | #usage: run_RegularizeYUVName $BitstreamName $OutputYUVName $LogFile | 68 | #usage: run_RegularizeYUVName $BitstreamName $OutputYUVName $LogFile |
| @@ -79,18 +77,14 @@ run_RegularizeYUVName() · 8 unmodified lines | |||
| 79 | local OrignName=$2 | 77 | local OrignName=$2 |
| 80 | local LogFile=$3 | 78 | local LogFile=$3 |
| 81 | local RegularizedYUVName="" | 79 | local RegularizedYUVName="" |
| 82 | |||
| 83 | declare -a aDecodedYUVInfo | 80 | declare -a aDecodedYUVInfo |
| 84 | |||
| 85 | aDecodedYUVInfo=(`run_ParseDecoderLog ${LogFile}`) | 81 | aDecodedYUVInfo=(`run_ParseDecoderLog ${LogFile}`) |
| 86 | |||
| 87 | BitStreamName=`echo ${BitStreamName} | awk 'BEGIN {FS="/"} {print $NF}'` | 82 | BitStreamName=`echo ${BitStreamName} | awk 'BEGIN {FS="/"} {print $NF}'` |
| 88 | RegularizedYUVName="${BitStreamName}_${aDecodedYUVInfo[0]}x${aDecodedYUVInfo[1]}.yuv" | 83 | RegularizedYUVName="${BitStreamName}_${aDecodedYUVInfo[0]}x${aDecodedYUVInfo[1]}.yuv" |
| 89 | mv -f ${OrignName} ${RegularizedYUVName} | 84 | mv -f ${OrignName} ${RegularizedYUVName} |
| 90 | echo "" | 85 | echo "" |
| 91 | echo "file : ${OrignName} has been renamed as :${RegularizedYUVName}" | 86 | echo "file : ${OrignName} has been renamed as :${RegularizedYUVName}" |
| 92 | echo "" | 87 | echo "" |
| 93 | |||
| 94 | return 0 | 88 | return 0 |
| 95 | } | 89 | } |
| 96 | #usage: runMain ${BitStreamName} | 90 | #usage: runMain ${BitStreamName} |
| @@ -98,16 +92,14 @@ runMain() · 1 unmodified line | |||
| 98 | { | 92 | { |
| 99 | if [ ! $# -eq 1 ] | 93 | if [ ! $# -eq 1 ] |
| 100 | then | 94 | then |
| 101 | echo "usage: runMain ${BitStreamName} " | 95 | echo "usage: runMain \${BitStreamName} " |
| 102 | return 1 | 96 | return 1 |
| 103 | fi | 97 | fi |
| 104 | |||
| 105 | local BitStreameFile=$1 | 98 | local BitStreameFile=$1 |
| 106 | local BitSteamName=`echo ${BitStreameFile} | awk 'BEGIN {FS="/"} {print $NF}'` | 99 | local BitSteamName=`echo ${BitStreameFile} | awk 'BEGIN {FS="/"} {print $NF}'` |
| 107 | local DecoderLogFile="${BitSteamName}_h264dec.log" | 100 | local DecoderLogFile="${BitSteamName}_h264dec.log" |
| 108 | local DecodedYUVName="${BitSteamName}_dec.yuv" | 101 | local DecodedYUVName="${BitSteamName}_dec.yuv" |
| 109 | local RegularizedName="" | 102 | local RegularizedName="" |
| 110 | |||
| 111 | #********************** | 103 | #********************** |
| 112 | #decoded test bit stream | 104 | #decoded test bit stream |
| 113 | run_BitStream2YUV ${BitStreameFile} ${DecodedYUVName} ${DecoderLogFile} | 105 | run_BitStream2YUV ${BitStreameFile} ${DecodedYUVName} ${DecoderLogFile} |
| @@ -116,16 +108,11 @@ runMain() · 2 unmodified lines | |||
| 116 | echo "bit stream decoded failed!" | 108 | echo "bit stream decoded failed!" |
| 117 | return 1 | 109 | return 1 |
| 118 | fi | 110 | fi |
| 119 | |||
| 120 | |||
| 121 | #********************* | 111 | #********************* |
| 122 | #regularized YUV name | 112 | #regularized YUV name |
| 123 | run_RegularizeYUVName ${BitStreameFile} ${DecodedYUVName} ${DecoderLogFile} | 113 | run_RegularizeYUVName ${BitStreameFile} ${DecodedYUVName} ${DecoderLogFile} |
| 124 | |||
| 125 | return 0 | 114 | return 0 |
| 126 | } | 115 | } |
| 127 | BitStreamFile=$1 | 116 | BitStreamFile=$1 |
| 128 | runMain ${BitStreamFile} | 117 | runMain ${BitStreamFile} |
| 129 | 118 | ||
| 130 | |||
| 131 | |||