A computer-implemented method for processing a video frame, the method comprising the steps of: (a) pre-processing the video frame by performing in any order the steps of: (i) reducing the frame size horizontally by saving for every row of pixels y 0 , y 1 , ..., y 2n+1 the first pixel y 0 and the low frequency Haar Wavelet Transforms x 0 = y 0 + y 1 2 , x 1 = y 2 + y 3 2 , ... , x n = y 2 ⁢ n + y 2 ⁢ n + 1 2 ; and (ii) reducing the frame size vertically by saving for every column of pixels y 0 , y 1 , ..., y 2n+1 the first pixel y 0 and the low frequency Haar Wavelet Transforms x 0 = y 0 + y 1 2 , x 1 = y 2 + y 3 2 , ... , x n = y 2 ⁢ n + y 2 ⁢ n + 1 2 ; (b) compressing the pre-processed video frame by means of a codec; (c) storing or transmitting the compressed video frame; (d) decompressing the stored or transmitted video frame; and (e) post-processing the decompressed video frame characterized in that the post-processing is done by performing in any order the steps of (i) increasing the frame size vertically by computing for every column of pixels y 0 , x 0 , ..., x n the first pixel y 0 = y 0 , the second pixel y 1 =2x 0 -y 0 , and subsequently for each of x 1 , ..., x n the next two pixels y 2 = 2 x 1 + y 1 3 , y 3 =2x 1 - y 2 , ..., y 2 ⁢ n = 2 x n + y 2 ⁢ n − 1 3 , y 2n+1 = 2xn - y 2n ; and (ii) increasing the frame size horizontally by computing for every row of pixels y 0 , x 0 , ..., x n the first pixel y 0 = y 0 , the second pixel y 1 = 2x 0 - y 0 , and subsequently for each of x 1 , ..., x n the next two pixels y 2 = 2 x 1 + y 1 3 , y 3 = 2x 1 - y 2 , ..., y 2 ⁢ n = 2 x n + y 2 ⁢ n − 1 3 , y 2n+1 = 2x n - y 2n . (a) pre-processing the video frame by performing in any order the steps of: (i) reducing the frame size horizontally by saving for every row of pixels y 0 , y 1 , ..., y 2n+1 the first pixel y 0 and the low frequency Haar Wavelet Transforms x 0 = y 0 + y 1 2 , x 1 = y 2 + y 3 2 , ... , x n = y 2 ⁢ n + y 2 ⁢ n + 1 2 ; and (ii) reducing the frame size vertically by saving for every column of pixels y 0 , y 1 , ..., y 2n+1 the first pixel y 0 and the low frequency Haar Wavelet Transforms x 0 = y 0 + y 1 2 , x 1 = y 2 + y 3 2 , ... , x n = y 2 ⁢ n + y 2 ⁢ n + 1 2 ; (i) reducing the frame size horizontally by saving for every row of pixels y 0 , y 1 , ..., y 2n+1 the first pixel y 0 and the low frequency Haar Wavelet Transforms x 0 = y 0 + y 1 2 , x 1 = y 2 + y 3 2 , ... , x n = y 2 ⁢ n + y 2 ⁢ n + 1 2 ; and (ii) reducing the frame size vertically by saving for every column of pixels y 0 , y 1 , ..., y 2n+1 the first pixel y 0 and the low frequency Haar Wavelet Transforms x 0 = y 0 + y 1 2 , x 1 = y 2 + y 3 2 , ... , x n = y 2 ⁢ n + y 2 ⁢ n + 1 2 ; (b) compressing the pre-processed video frame by means of a codec; (c) storing or transmitting the compressed video frame; (d) decompressing the stored or transmitted video frame; and (e) post-processing the decompressed video frame (i) increasing the frame size vertically by computing for every column of pixels y 0 , x 0 , ..., x n the first pixel y 0 = y 0 , the second pixel y 1 =2x 0 -y 0 , and subsequently for each of x 1 , ..., x n the next two pixels y 2 = 2 x 1 + y 1 3 , y 3 =2x 1 - y 2 , ..., y 2 ⁢ n = 2 x n + y 2 ⁢ n − 1 3 , y 2n+1 = 2xn - y 2n ; and (ii) increasing the frame size horizontally by computing for every row of pixels y 0 , x 0 , ..., x n the first pixel y 0 = y 0 , the second pixel y 1 = 2x 0 - y 0 , and subsequently for each of x 1 , ..., x n the next two pixels y 2 = 2 x 1 + y 1 3 , y 3 = 2x 1 - y 2 , ..., y 2 ⁢ n = 2 x n + y 2 ⁢ n − 1 3 , y 2n+1 = 2x n - y 2n . <EOS>