]> granicus.if.org Git - libvpx/commit
A fix point implementation of 32x32 idct
authorYaowu Xu <yaowu@google.com>
Wed, 30 Jan 2013 21:01:49 +0000 (13:01 -0800)
committerYaowu Xu <yaowu@google.com>
Thu, 31 Jan 2013 17:45:49 +0000 (09:45 -0800)
commit5149d7f7bd99279ed34d6416a63471a0095ba015
tree5c8e8e5219c92d8be02000ad3934041e20e4c7ed
parent5f2429259fcc16e847b4f87330e757931beb970b
A fix point implementation of 32x32 idct

This commit changes the 32x32 idct to use integer only. The algorithm
was taken directly from "A Fast Computational Algorithm for the
Discrete Cosine Tranform" by W. Chen, et al., which was published in
IEEE Transaction on Communication Vol. Com.-25 No. 9, 1977. The signal
flow graph in the original paper is for a 32 point forward dct, the
current implementation of inverse DCT was done by follow the graph in
reversed direction.

With this implementation, the 32 point inverse dct contains a 16 point
inverse dct in its even portion, similarly the 16 point idct further
contains 8 point and 4 point inverse dcts.

As of patch 4, encoding tests showed there is no compression loss when
compared against the floating point baseline. Numbers even showed very
small postives. (cif: .01%, std-hd: .05%).

Change-Id: I2d2d17a424b0b04b42422ef33ec53f5802b0f378
vp9/common/vp9_idctllm.c