Wavelet-based watermarking algorithms: theory, applications and critical aspects