cts
by VinterYoung
Expected achievable frame rates for OMX.MTK.VIDEO.DECODER.HEVC video/hevc 1280x720: [75.0, 262.0]. Measured frame rate: [380.5645006622224, 389.39835451667057].
例如此案例中,我们多测几次,发现Measured frame rate 的平均值为average=(380+389+380+371)/4=380
原始参数范围在75-262,其计算的公共区间为54-363,实测帧率超过范围,所以失败。
介绍一下cts performance的计算方法:
假设测试的平均值为test, 不同场景或者阶段下整机/vpu性能影响范围,lost=(0.5~1.5),xml边界区间为[range1,range2], 小边界和测试平均值的相关性relation=test/range1, 边界区间为[range1,range2]计算的容忍最大区间[min,max]
xml 中配置的[rang1, rang2],
先计算min: (rang1/2.2, rang22.2)
再计算max:(rang2/4.84, rang14.84)
然后取交集.
当rang1/2.2=rang2/4.84 , rang22.2=rang14.84, 范围最大.
即rang2=2.2rang1.,公共区间最大,
那么最大的允许公共区间为[rang1/2.2, rang1 * 4.84]
一般性能提升或者降低应该都在0.5~2之间,假如测试结果为test,则(test/2,test2)均落入限制区间.
做了公式计算数据,(test/3,test3)在性能损失50%,以及提高50%时,均可以落入限制区间.
有项目经验发现项目初级性能是降低, 在后期是性能提高, 也遇到过先后测试的实际帧率是2倍的差异
当test1 test2相差很大时.
首次测试, 性能是损失还是提升未知
α = 0.8
[rang1, rang2] = [ test * 0.8 , test * 1.76 ]
(min, max) = ( test * 0.36, test * 3.87)
后续报错, 则实际新测试值 test2 < test * 0.36 或者 test3 > test * 3.87
#假设1 test2 = 1 / 4 * test :即测试新测试平均值小于xml中范围
α = 0.3 ~ 0.4
α2 = 1.2 ~ 1.6
即 [rang1, rang2] = [ test2 * 1.5 , test2 * 3.3 ]
#假设2 test3 = 1 * 4 * test :即测试新测试平均值大于xml中范围
α = 1.2 ~ 1.6
α2 = 0.3 ~ 0.4
即 [rang1, rang2] = [ test3 * 0.3 , test3 * 0.66 ]
都能满足新的测试值和老的测试值均在范围内