Mercurial > hg > pydct
view pydct/t4x4.py @ 4:dd4db26f874e
fix
author | Peter Meerwald <pmeerw@cosy.sbg.ac.at> |
---|---|
date | Fri, 16 May 2008 17:42:17 +0200 |
parents | b5e69130d7e9 |
children | f34a444f0353 |
line wrap: on
line source
import numpy _fc = numpy.array( [[ 1, 1, 1, 1], [ 2, 1, -1, -2], [ 1, -1, -1, 1], [ 1, -2, 2, -1]], numpy.float) _fct = _fc.T _fe = numpy.array( [[0.25, 0.15811388, 0.25, 0.15811388], [0.15811388, 0.1, 0.15811388, 0.1], [0.25, 0.15811388, 0.25, 0.15811388], [0.15811388, 0.1, 0.15811388, 0.1]], numpy.float) _ic = numpy.array( [[1, 1, 1, 0.5], [1, 0.5, -1, -1], [1, -0.5, -1, 1], [1, -1, 1, -0.5]], numpy.float) _ict = _ic.T _ie = numpy.array( [[0.25, 0.31622777, 0.25, 0.31622777], [0.31622777, 0.4, 0.31622777, 0.4], [0.25, 0.31622777, 0.25, 0.31622777], [0.31622777, 0.4, 0.31622777, 0.4]], numpy.float) def fdct4x4(b): ''' Compute the approximate 4x4 DCT coefficients of an array as defined by H.264/AVC. ''' return numpy.dot(_fc, numpy.dot(b, _fct)) * _fe def idct4x4(b): ''' Compute the inverse 4x4 DCT of the array. ''' return numpy.dot(_ic, numpy.dot(b*_ie, _ict))