A recursive computation of the 2-D DCT : algorithm, architectures and FPGA implementation