When comparing source image and compressed texture, PSNR in Error Metrics seems higher than my own calculation. My result keeps the same with astcenc.
After some digging (making two one-pixel image example with (0,0,0) and (1,2,3), I found PVRTexTool seems relying on RMSE rather than MSE. Wikipedia shows 10*log_{10}(255*255/MSE)
, but when I changes to 10*log_{10}(255*255/sqrt(MSE))
I can get just the same result with PVRTexTool.