| Index: source/libvpx/vp9/common/vp9_tapify.py
|
| ===================================================================
|
| --- source/libvpx/vp9/common/vp9_tapify.py (revision 0)
|
| +++ source/libvpx/vp9/common/vp9_tapify.py (revision 0)
|
| @@ -0,0 +1,106 @@
|
| +"""
|
| + * Copyright (c) 2012 The WebM project authors. All Rights Reserved.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license
|
| + * that can be found in the LICENSE file in the root of the source
|
| + * tree. An additional intellectual property rights grant can be found
|
| + * in the file PATENTS. All contributing project authors may
|
| + * be found in the AUTHORS file in the root of the source tree.
|
| +"""
|
| +#!/usr/bin/env python
|
| +import sys,string,os,re,math,numpy
|
| +scale = 2**16
|
| +def dist(p1,p2):
|
| + x1,y1 = p1
|
| + x2,y2 = p2
|
| + if x1==x2 and y1==y2 :
|
| + return 1.0
|
| + return 1/ math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))
|
| +
|
| +def gettaps(p):
|
| + def l(b):
|
| + return int(math.floor(b))
|
| + def h(b):
|
| + return int(math.ceil(b))
|
| + def t(b,p,s):
|
| + return int((scale*dist(b,p)+s/2)/s)
|
| + r,c = p
|
| + ul=[l(r),l(c)]
|
| + ur=[l(r),h(c)]
|
| + ll=[h(r),l(c)]
|
| + lr=[h(r),h(c)]
|
| + sum = dist(ul,p)+dist(ur,p)+dist(ll,p)+dist(lr,p)
|
| + t4 = scale - t(ul,p,sum) - t(ur,p,sum) - t(ll,p,sum);
|
| + return [[ul,t(ul,p,sum)],[ur,t(ur,p,sum)],
|
| + [ll,t(ll,p,sum)],[lr,t4]]
|
| +
|
| +def print_mb_taps(angle,blocksize):
|
| + theta = angle / 57.2957795;
|
| + affine = [[math.cos(theta),-math.sin(theta)],
|
| + [math.sin(theta),math.cos(theta)]]
|
| + radius = (float(blocksize)-1)/2
|
| + print " // angle of",angle,"degrees"
|
| + for y in range(blocksize) :
|
| + for x in range(blocksize) :
|
| + r,c = numpy.dot(affine,[y-radius, x-radius])
|
| + tps = gettaps([r+radius,c+radius])
|
| + for t in tps :
|
| + p,t = t
|
| + tr,tc = p
|
| + print " %2d, %2d, %5d, " % (tr,tc,t,),
|
| + print " // %2d,%2d " % (y,x)
|
| +
|
| +i=float(sys.argv[1])
|
| +while i <= float(sys.argv[2]) :
|
| + print_mb_taps(i,float(sys.argv[4]))
|
| + i=i+float(sys.argv[3])
|
| +"""
|
| +
|
| +taps = []
|
| +pt=dict()
|
| +ptr=dict()
|
| +for y in range(16) :
|
| + for x in range(16) :
|
| + r,c = numpy.dot(affine,[y-7.5, x-7.5])
|
| + tps = gettaps([r+7.5,c+7.5])
|
| + j=0
|
| + for tp in tps :
|
| + p,i = tp
|
| + r,c = p
|
| + pt[y,x,j]= [p,i]
|
| + try:
|
| + ptr[r,j,c].append([y,x])
|
| + except:
|
| + ptr[r,j,c]=[[y,x]]
|
| + j = j+1
|
| +
|
| +for key in sorted(pt.keys()) :
|
| + print key,pt[key]
|
| +
|
| +lr = -99
|
| +lj = -99
|
| +lc = 0
|
| +
|
| +shuf=""
|
| +mask=""
|
| +for r,j,c in sorted(ptr.keys()) :
|
| + for y,x in ptr[r,j,c] :
|
| + if lr != r or lj != j :
|
| + print "shuf_"+str(lr)+"_"+str(lj)+"_"+shuf.ljust(16,"0"), lc
|
| + shuf=""
|
| + lc = 0
|
| + for i in range(lc,c-1) :
|
| + shuf = shuf +"0"
|
| + shuf = shuf + hex(x)[2]
|
| + lc =c
|
| + break
|
| + lr = r
|
| + lj = j
|
| +# print r,j,c,ptr[r,j,c]
|
| +# print
|
| +
|
| +for r,j,c in sorted(ptr.keys()) :
|
| + for y,x in ptr[r,j,c] :
|
| + print r,j,c,y,x
|
| + break
|
| +"""
|
|
|
| Property changes on: source/libvpx/vp9/common/vp9_tapify.py
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|