diff --git a/biblio.bib b/biblio.bib index fb2a46a..2643aeb 100644 --- a/biblio.bib +++ b/biblio.bib @@ -1,6 +1,6 @@ @thesis{gwen-cogen, author = {Gwenhaël Goavec-Merou}, -title = {Générateur de coprocesseur pour le traitement de données en flux (vidéo ou similaire) sur FPGA}, +title = {Générateur de coprocesseur pour le traitement de données en flux (vidéo ou similaire) sur {FPGA}}, institution = {FEMTO-ST}, year = {2014} } @@ -17,7 +17,7 @@ year = {2014} } @inproceedings{skeleton, - title={High level programming for FPGA based image and video processing using hardware skeletons}, + title={High level programming for {FPGA} based image and video processing using hardware skeletons}, author={Benkrid, Khaled and Crookes, Danny and Smith, J and Benkrid, Abdsamad}, booktitle={Field-Programmable Custom Computing Machines, 2001. FCCM'01. The 9th Annual IEEE Symposium on}, pages={219--226}, @@ -37,7 +37,7 @@ year = {2014} } @phdthesis{these-dsp-fpga, - title={Design methodologies and architectures for digital signal processing on FPGAs}, + title={Design methodologies and architectures for digital signal processing on {FPGA}s}, author={Mirzaei, Shahnam}, year={2010}, school={UNIVERSITY OF CALIFORNIA SANTA BARBARA} @@ -101,7 +101,7 @@ year = {2011} } @article{salvador2012accelerating, - title={Accelerating FPGA-based evolution of wavelet transform filters by optimized task scheduling}, + title={Accelerating {FPGA}-based evolution of wavelet transform filters by optimized task scheduling}, author={Salvador, Ruben and Vidal, Alberto and Moreno, Felix and Riesgo, Teresa and Sekanina, Lukas}, journal={Microprocessors and Microsystems}, volume={36}, @@ -156,7 +156,7 @@ year = {2011} } @inproceedings{crookes1998environment, - title={An environment for generating FPGA architectures for image algebra-based algorithms}, + title={An environment for generating {FPGA} architectures for image algebra-based algorithms}, author={Crookes, Danny and Alotaibi, Khalid and Bouridane, Ahmed and Donachy, Paul and Benkrid, Abdsamad}, booktitle={Image Processing, 1998. ICIP 98. Proceedings. 1998 International Conference on}, pages={990--994}, @@ -165,7 +165,7 @@ year = {2011} } @article{crookes2000design, - title={Design and implementation of a high level programming environment for FPGA-based image processing}, + title={Design and implementation of a high level programming environment for {FPGA}-based image processing}, author={Crookes, D and Benkrid, K and Bouridane, A and Alotaibi, K and Benkrid, A}, journal={IEE Proceedings-Vision, Image and Signal Processing}, volume={147}, @@ -176,7 +176,7 @@ year = {2011} } @article{benkrid2002towards, - title={Towards a general framework for FPGA based image processing using hardware skeletons}, + title={Towards a general framework for {FPGA} based image processing using hardware skeletons}, author={Benkrid, Khaled and Crookes, Danny and Benkrid, Abdsamad}, journal={Parallel Computing}, volume={28}, diff --git a/ifcs2018_proceeding.tex b/ifcs2018_proceeding.tex index e004237..fde7d1e 100644 --- a/ifcs2018_proceeding.tex +++ b/ifcs2018_proceeding.tex @@ -5,7 +5,7 @@ \usepackage{amssymb} \usepackage{amsmath} \usepackage{algorithm2e} -\usepackage{url} +\usepackage{url,balance} \usepackage[normalem]{ulem} % correct bad hyphenation here \hyphenation{op-tical net-works semi-conduc-tor} @@ -119,8 +119,9 @@ will result in some precision loss. \begin{figure}[h!tb] \includegraphics[width=\linewidth]{images/demo_filtre} \caption{Impact of the quantization resolution of the coefficients: the quantization is -set to 6~bits, setting the 30~first and 30~last coefficients out of the initial 128~band-pass -filter coefficients to 0.} +set to 6~bits -- with the horizontal black lines indicating $\pm$1 least significant bit -- setting +the 30~first and 30~last coefficients out of the initial 128~band-pass +filter coefficients to 0 (red dots).} \label{float_vs_int} \end{figure} @@ -153,15 +154,16 @@ this filter must process data stream at the radiofrequency sampling rate after t An optimization problem \cite{leung2004handbook} aims at improving one or many performance criteria within a constrained resource environment. Amongst the tools developed to meet this aim, Mixed-Integer Linear Programming (MILP) provides the framework to -provide a formal definition of the stated problem and search for an optimal use of available +formally define the stated problem and search for an optimal use of available resources \cite{yu2007design, kodek1980design}. First we need to ensure that our problem is a real optimization problem. When -we design a process inside the FPGA we want reach some requirements by example the -throughput, the computation time or the rejection noise... But we some limited +designing a processing function in the FPGA, we aim at meeting some requirement such as +the throughput, the computation time or the noise rejection noise. However, due to limited resources to design the process like BRAM (high performance RAM), DSP (Digital Signal Processor) -or LUT (Look Up Table). Since we want optimize some criteria and we have some -limited resources our problem is a classical optimization problem. +or LUT (Look Up Table), a tradeoff must be generally searched between performance and available +computational resources: optimizing some criteria within finite, limited +resources indeed matches the definition of a classical optimization problem. Specifically the degrees of freedom when addressing the problem of replacing the single monolithic FIR with a cascade of optimized filters are the number of coefficients $N_i$ of each filter $i$, @@ -176,7 +178,7 @@ various FPGA implementations will provide different hardware functionalities, an at the end of the design a synthesis step using vendor software to assess the validity of the solution found. As an example of the limitation linked to the lack of detailed hardware consideration, Block Random Access Memory (BRAM) used to store filter coefficients are not shared amongst filters, and multiplications -are most efficiently implemented by using Digital Signal Processing (DSP) blocks whose input word +are most efficiently implemented by using DSP blocks whose input word size is finite. DSPs are a scarce resource to be saved in a practical implementation. Keeping a high abstraction on the resource occupation is nevertheless selected in the following discussion in order to leave enough degrees of freedom in the problem to try and find original solutions: too many @@ -185,8 +187,9 @@ constraints in the initial statement of the problem leave little room for findin \begin{figure}[h!tb] \begin{center} \includegraphics[width=.5\linewidth]{schema2} -\caption{Shape of the filter: the bandpass BP is considered to occupy the initial -40\% of the Nyquist frequency range, the bandstop the last 40\%, allowing 20\% transition +\caption{Shape of the filter transmitted power $P$ as a function of frequency: +the bandpass BP is considered to occupy the initial +40\% of the Nyquist frequency range, the stopband the last 40\%, allowing 20\% transition width.} \label{rejection-shape} \end{center} @@ -206,8 +209,9 @@ is a theoretical area occupation of the processing block on the FPGA, and $\Delt Since the function $\mathcal{F}$ cannot be explictly expressed, we run simulations to determine the rejection depending on $N_i$ and $C_i$. However, selecting the right filter requires a clear definition of the rejection criterion. Selecting an incorrect criterion will lead the linear program solver to produce a solution which might not meet the user requirements. -Hence, amongst various criteria including the mean or median value of the FIR response in the stopband, we have designed -a criterion aimed at avoiding ripples on passband and considering the maximum of the FIR spectral response in the stopband +Hence, amongst various criteria including the mean or median value of the FIR response in the stopband as will +be illustrated lated (section \ref{median}), we have designed +a criterion aimed at avoiding ripples in the passband and considering the maximum of the FIR spectral response in the stopband (Fig. \ref{rejection-shape}). The bandpass criterion is defined as the sum of the absolute values of the spectral response in the bandpass, reminiscent of a standard deviation of the spectral response: this criterion must be minimized to avoid ripples in the passband. The stopband transfer function maximum must also be minimized in order to improve the filter @@ -226,7 +230,9 @@ noise rejection capability is not modeled with linear equations, a look-up-table for multiple filter configurations in which the $C_i$, $D_i$ and $N_i$ parameters are varied: for each one of these conditions, the low-pass filter rejection defined as the mean power between half the Nyquist frequency and the Nyquist frequency is stored as computed by the frequency response -of the digital filter (Fig. \ref{noise-rejection}). +of the digital filter (Fig. \ref{noise-rejection}). An intuitive analysis of this chart hints at an optimum +set of tap length and number of bit for representing the coefficients along the line of the pyramidal +shaped rejection capability function. Linear program formalism for solving the problem is well documented: an objective function is defined which is linearly dependent on the parameters to be optimized. Constraints are expressed @@ -275,6 +281,8 @@ that no filter is selected for this stage). And the second one \ref{cstr_rejecti means the same thing but for the rejection, the rejection depends the previous rejection plus the rejection of selected filter. +\subsection{Low bandpass ripple and maximum rejection criteria} + The MILP solver provides a solution to the problem by selecting a series of small FIR with increasing number of bits representing data and coefficients as well as an increasing number of coefficients, instead of a single monolithic filter. Fig. \ref{compare-fir} exhibits the @@ -311,6 +319,41 @@ FIR & BlockRAM & LookUpTables & DSP & rejection (dB)\\\hline\hline \label{t1} \end{table} +\subsection{Alternate criteria}\label{median} + +Fig. \ref{compare-fir} provides FIR solutions matching well the targeted transfer +function, namely low ripple in the bandpass defined as the first 40\% of the frequency +range and maximum rejection of 160~dB in the last 40\% stopband. We illustrate now, for +demonstrating the need to properly select the optimization criterion, two cases of poor +filter shapes obtained by selecting the mean value and median value of the rejection, +with no consideration for the ripples in the bandpass. The results of the optimizations, +in these cases, are shown in Figs. \ref{compare-mean} and \ref{compare-median}. + +\begin{figure}[h!tb] +\includegraphics[width=\linewidth]{images/fir-mono-vs-fir-series-noise-fixe-mean.pdf} +\caption{Comparison of the rejection capability between a series of FIR and a monolithic FIR +with a cutoff frequency set at half the Nyquist frequency.} +\label{compare-mean} +\end{figure} + +In the case of the mean value criterion (Fig. \ref{compare-mean}), the solution is not +acceptable since the notch at the end of the transition band compensates for some unacceptable +rise in the rejection close to the Nyquist frequency. Applying such a filter might yield excessive +high frequency spurious components to be aliased at low frequency when decimating the signal. +Similarly, the lack of criterion on the bandpass shape induces a shape with poor flatness and +and slowly decaying transfer function starting to attenuate spectral components well before the +transition band starts. Such issues are partly aleviated by replacing a mean rejection value with +a median rejection value (Fig. \ref{compare-median}) but solutions remain unacceptable for +the reasons stated previously and much poorer than those found with the maximum rejection criterion +selected earlier (Fig. \ref{compare-fir}). + +\begin{figure}[h!tb] +\includegraphics[width=\linewidth]{images/fir-mono-vs-fir-series-noise-fixe-median.pdf} +\caption{Comparison of the rejection capability between a series of FIR and a monolithic FIR +with a cutoff frequency set at half the Nyquist frequency.} +\label{compare-median} +\end{figure} + \section{Filter coefficient selection} The coefficients of a single monolithic filter are computed as the impulse response @@ -353,6 +396,7 @@ The authors would like to thank E. Rubiola, F. Vernotte, G. Cabodevila for suppo fruitful discussions. \bibliographystyle{IEEEtran} +\balance \bibliography{references,biblio} \end{document} diff --git a/references.bib b/references.bib index cce1d20..844afc1 100644 --- a/references.bib +++ b/references.bib @@ -30,7 +30,7 @@ programming techniques}, @misc{glpk, title={\url{https://www.gnu.org/software/glpk/}}, -note={availble online, accessed Jan. 2018} +note={availble online, accessed May 2018} } @article{rsi,