r0
r1
r2
r4
r5
move
move
move
move
move
move
move
move
move
do
do
mpy
x0,y0,a
mac
x0,y0,a
mac
x0,y0,a
mac
x0,y0,a
mac
x0,y0,a
mac
x0,y0,a
mac
x0,y0,a
mac
x0,y0,a
macr x0,y0,a
move
_rows
; adjust pointers for frame boundary
move
move
move
move
_cols
B-42
image(n,m)
image(n+514,m)
image(n+2 * 514,m)
FIR coefficients
output image
DSP56000 IMPLEMENTATION
#mask,r4
#8,m4
#image,r0
#image+514,r1
#image+2 * 514,r2
#2,n1
n1,n2
#imageout,r5
x:(r0)+,x0
y:(r4)+,y0 ;first element, c(1,1)
#512,_rows
#512,_cols
x:(r0)+,x0
x:(r0)-,x0
x:(r1)+,x0
x:(r1)+,x0
x:(r1)-,x0
x:(r2)+,x0
x:(r2)+,x0
x:(r2)-,x0
x:(r0)+,x0
x:(r0)+,x0
y:(r5)+,y1 ;adj r0,r5 w/dummy loads
x:(r1)+n1,x0 y:(r5)+,y1 ;adj r1,r5 w/dummy loads
(r2)+n2
x:(r0)+,x0
DSP96002 USER'S MANUAL
image(n,m+1)
image(n+514,m+1)
image(n+2 * 514,m+1) image(n+2 * 514,m+2)
;point to coefficients
;mod 9
;top boundary
;left of first pixel
;left of first pixel 2nd row
;adjustment for end of row
;output image
y:(r4)+,y0 ;c(1,2)
y:(r4)+,y0 ;c(1,3)
y:(r4)+,y0 ;c(2,1)
y:(r4)+,y0 ;c(2,2)
y:(r4)+,y0 ;c(2,3)
y:(r4)+,y0 ;c(3,1)
y:(r4)+,y0 ;c(3,2)
y:(r4)+,y0 ;c(3,3)
y:(r4)+,y0 ;preload, get c(1,1)
a,y:(r5)+
;output image sample
;adj r2
;preload for next pass
(Kernel=10N),
image(n,m+2)
image(n+514,m+2)
Program
Words
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
---
28
2
10N
+7N+12
ICycles
1
1
1
1
1
1
1
1
1
3
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
---
MOTOROLA