Research Article

Design Space Exploration of Deeply Nested Loop 2D Filtering and 6 Level FSBM Algorithm Mapped onto Systolic Array

Table 9

(a) 6D problemβ€”full search block motion estimation (FSBM) problem

𝑛 = 6 S&K-2D arrayOur work
2D arrayβ€”use of sd
Use of direct
determination
of S vector of expression (3)
2D array considered as 1D array

π‘ˆ β„Ž , π‘ˆ 𝑣 , π‘ˆ π‘š , π‘ˆ 𝑛 , π‘ˆ 𝑖 , π‘ˆ 𝑗 Image fileβ€”image sizeβ€” π‘ˆ 𝑖 Γ— π‘ˆ 𝑗 = 𝑛 Γ— π‘ˆ β„Ž , 𝑛 Γ— π‘ˆ 𝑣
subframe size π‘ˆ 𝑖 Γ— π‘ˆ 𝑗
-do-*-do--do-

𝐼 _space [ 1,1,1,1,1,1 ] to [ π‘ˆ β„Ž , π‘ˆ 𝑣 , π‘ˆ π‘š , π‘ˆ 𝑛 , π‘ˆ 𝑖 , π‘ˆ 𝑗 ] -do--do--do-

𝑆 _space0, 1,βˆ’1, π‘ˆ β„Ž , π‘ˆ 𝑣 , π‘ˆ π‘š , π‘ˆ 𝑛 , π‘ˆ 𝑖 , π‘ˆ 𝑗 , π‘ˆ β„Ž Γ— π‘ˆ 𝑣 , π‘ˆ 𝑣 Γ— π‘ˆ π‘š , … , π‘ˆ 𝑖 π‘ˆ 𝑗 , … , π‘ˆ β„Ž Γ— π‘ˆ 𝑣 Γ— π‘ˆ π‘š Γ— π‘ˆ 𝑛 Γ— π‘ˆ 𝑖 Γ— π‘ˆ 𝑗 βˆ— βˆ— -do--do--do-

CTVNil [ 0,0,0,1,0,0 ] ; [ 0 0 1 0,0,0 ] [ 0,0,0,0,0,1 ] , [ 0,0,0,0,1,0 ] ,
[ 0,1,0,0,0,0 ] , [ 1,0,0,0,0,0 ]
-do-

Scheduling direction = sdNil [ 1,0,0,0,0,0 ] ; [ 0,1,0,0,0,0 ] -do--do-

Search space complexityβ€” 𝑃 vectorβ€”sizeβ€”[1 Γ— 2] 6 6 2 𝑛 = 6612 (Number of possible elements of P matrix)Pruned down using
𝑃 𝑑 Γ— s d = 0 = 𝑃 2 𝑛 βˆ’ 2 βˆ’ 2
6612βˆ’2βˆ’2 = 668
sd along 2 directions
Pruned down using
𝑃 𝑑 Γ— s d = 0
𝑃 2 𝑛 βˆ’ 2 βˆ’ 2
6612βˆ’4 = 668
𝑃 𝑛 βˆ’ 2
666βˆ’2 = 664

S vector – size – [ 1 Γ— 2 ] 6 6 𝑛 = 666Pruned down using
𝑆 𝑑 Γ— s d > 0 = 6 6 6 βˆ’ 2
Nil***Nil

Example 6612 + 666 = 𝑃 2 Γ— 𝑛 + 𝑃 𝑛 668 + 664668664

*-do-entry same as in previous column,***nil: not defined/not applicable.
(b) Reduced index space

n = 4-4D FSBMS&K-2D arrayOur work-2D array
Iβ€”use of sd
Use of
direct determination of 𝑆 vector
2D array considered as 1D array

π‘ˆ β„Ž n e w , π‘ˆ 𝑝 n e w , π‘ˆ 𝑖 , π‘ˆ 𝑗 Image fileβ€”image sizeβ€” π‘ˆ 𝑖 Γ— π‘ˆ 𝑗 = 𝑁 Γ— π‘ˆ β„Ž n e w , 𝑁 Γ— π‘ˆ 𝑣
Sub-frame size size π‘ˆ 𝑖 , Γ— π‘ˆ 𝑗
-do--do-*-do-

𝐼 _space [ 1,1,1,1 ] to [ π‘ˆ β„Ž n e w , π‘ˆ 𝑝 n e w , π‘ˆ 𝑖 , π‘ˆ 𝑗 ] -do--do--do-

𝑆 _space0, 1, –1, π‘ˆ β„Ž n e w , π‘ˆ 𝑝 n e w , π‘ˆ 𝑖 , π‘ˆ 𝑗 π‘ˆ β„Ž n e w Γ— π‘ˆ 𝑝 n e w , … , π‘ˆ 𝑖 π‘ˆ 𝑗 , … , π‘ˆ β„Ž n e w Γ— π‘ˆ 𝑝 n e w Γ— π‘ˆ 𝑖 Γ— π‘ˆ 𝑗 βˆ— βˆ— -do--do--do-

CTVNil*** [ 0,1,0,0 ] ;
[ 0, 2 𝑝 n e w + 1, 0,0 ]
[ 0,0,0,1 ] , [ 0,0,1,0 ] ,
[ 0,1,0,0 ] , [ 1,0,0,0 ]
-do-

Scheduling direction = sdNil*** [ 1,0,0,0 ] ; [ 0,1,0,0 ] -do--do-

Search space complexityβ€” 𝑃 vectorβ€”sizeβ€” [ 1 Γ— 2 ] 1 7 2 𝑛 = 178 (Number of possible elements of 𝑃 matrix)**Pruned down using
𝑃 𝑑 Γ— sd = 0 = 𝑃 2 𝑛 βˆ’ 2 βˆ’ 2
178βˆ’2βˆ’2 = 174
sd along 2 directions
Pruned down using
𝑃 𝑑 Γ— sd =0
𝑃 2 𝑛 βˆ’ 2 βˆ’ 2
178βˆ’4 = 174
𝑃 𝑛 βˆ’ 2
174βˆ’2 = 172

𝑆 vectorβ€”sizeβ€” [ 1 Γ— 2 ] 1 7 𝑛 = 174Pruned down using
𝑆 𝑑 Γ— sd > 0 = 174βˆ’2
Nil***Nil

Example 178 + 174 = 𝑃 2 Γ— 𝑛 + 𝑃 𝑛 174 + 172174172

**note 4 𝑝 1 + 4 𝑝 2 + 4 𝑝 3 + 1 = 7 + 6 + 4 = 17.
***nil: not defined; *do entry same as in previous column.