A method for encoding video with a two-dimensional (2D) transform
separable to two one-dimensional (1D) transforms. The method receives an
array of values for a sub-section of an image, performs a first
1D-transform of the array, transposes the resulting array, and performs a
second 1D-transform of the array resulting from the transpose. The
method, without performing another transpose, generates a data stream
using a transposed scan order based on the values of the array resulting
from the second transform. A method for decoding video encoded by a 2D
transform, which separable to two 1D transforms. The method receives a
data stream containing encoded values for an image, parses out the values
into an array using a transposed scan order, performs a first 1D-inverse
transform on the array, transposes the resulting array, and performs a
second 1D-inverse transform of the array resulting from the transpose to
produce a decoded output.