Sub-nanometer linewidth perfect absorption in visible band induced by Bloch surface wave