1. A method for decoding encoded video data on a hardware architecture that comprises a CPU (central processing unit) and a GPU (graphics processing unit), the GPU having a first buffer being a global buffer and a second buffer being a texture buffer, the method comprising steps of decoding on the CPU headers and macroblocks of the encoded video, wherein decoded picture data are obtained; optionally performing inverse quantization on the decoded picture data; transferring the decoded picture data or the inverse quantized picture data to the global buffer of the GPU; and the method further comprising the following steps, being performed on the GPU: inverse quantizing the transferred data, if said optional inverse quantization has not been performed on the CPU; waveform transforming the inverse quantized data; performing motion compensation, wherein reconstructed picture data are obtained, and wherein one thread is used to process all pixels on a row in one picture block, and one thread block is used to process a fixed number of picture blocks; buffering the reconstructed picture data in the global buffer of the GPU; determining if the decoded picture data are used as reference for decoding at least one further picture, and if so, then copying the decoded picture data from the global buffer to the texture buffer; and transferring the reconstructed picture data from the global or texture buffer towards a display.