Fast Median Filtering Based on FPGA
来源:互联网 发布:mac版ps怎么安装字体 编辑:程序博客网 时间:2024/05/29 13:24
ALGORITHM
Step 1:
Maximum Group :Max0 = max[P0,P3,P6],Max1 = max[P1,P4,P7],Max2 = max[P2,P5,P8]
Median Group : Med0 = med[P0,P3,P6],Med1 = med[P1,P4,P7], Med2 = med[P2,P5,P8]
Minimum Group :Min0 = Min[P0,P3,P6],Min1 = Min[P1,P4,P7],Min2 = max[P2,P5,P8]
Step 2:
s0 = Minimum{ Maximum Group }
s1 = Median{Median Group}
s2 = Maximum{Minimum Group}
Step 3: Result = Median{s0, s1, s2}
From here, we find we need 19 comparison, but quick sort need
IMPLEMENTATION
module Test( clk, rst, MedianResult); input wire clk; input wire rst; output wire [31:0]MedianResult; wire [31:0]BlockData[8:0]; assign BlockData[8] = 12; assign BlockData[7] = 4; assign BlockData[6] = 16; assign BlockData[5] = 67; assign BlockData[4] = 78; assign BlockData[3] = 5; assign BlockData[2] = 102; assign BlockData[1] = 2; assign BlockData[0] = 209; FastMedianFiltering Test( BlockData[8], BlockData[7], BlockData[6], BlockData[5], BlockData[4], BlockData[3], BlockData[2], BlockData[1], BlockData[0], MedianResult , clk, rst);endmodulemodule FastMedianFiltering( BlockData8, BlockData7, BlockData6, BlockData5, BlockData4, BlockData3, BlockData2, BlockData1, BlockData0, MedianResult, clk, rst ); input wire [31:0]BlockData8; input wire [31:0]BlockData7; input wire [31:0]BlockData6; input wire [31:0]BlockData5; input wire [31:0]BlockData4; input wire [31:0]BlockData3; input wire [31:0]BlockData2; input wire [31:0]BlockData1; input wire [31:0]BlockData0; output wire [31:0]MedianResult; input wire clk; input wire rst; wire [31:0]step1[8:0]; wire [31:0]step2[8:0]; wire [31:0]step3[2:0]; // Step 1 OperatorToGetMaxMedAndMin Step1_0(BlockData8, BlockData7, BlockData6, step1[8], step1[7], step1[6], clk, rst); OperatorToGetMaxMedAndMin Step1_1(BlockData5, BlockData4, BlockData3, step1[5], step1[4], step1[3], clk, rst); OperatorToGetMaxMedAndMin Step1_2(BlockData2, BlockData1, BlockData0, step1[2], step1[1], step1[0], clk, rst); // Step 2 OperatorToGetMaxMedAndMin Step2_Maximum(step1[8], step1[5], step1[2], step2[8], step2[7], step2[6], clk, rst); OperatorToGetMaxMedAndMin Step2_Median(step1[7], step1[4], step1[1], step2[5], step2[4], step2[3], clk, rst); OperatorToGetMaxMedAndMin Step2_Minimum(step1[6], step1[3], step1[0], step2[2], step2[1], step2[0], clk, rst); // Step 3 OperatorToGetMaxMedAndMin Step3_Median(step2[2], step2[4], step2[6], step3[2], step3[1], step3[0], clk, rst); assign MedianResult = step3[1];endmodule module OperatorToGetMaxMedAndMin( InData2, InData1, InData0, OutData2, OutData1, OutData0, clk, rst ); input wire [31:0]InData2; input wire [31:0]InData1; input wire [31:0]InData0; output reg [31:0]OutData2; output reg [31:0]OutData1; output reg [31:0]OutData0; input wire clk; input wire rst; always@(posedge clk, negedge rst) begin if(!rst) begin OutData2 <= 32'b0; OutData1 <= 32'b0; OutData0 <= 32'b0; end else if((InData2 > InData1) && (InData2 > InData0) && (InData0 > InData1)) begin OutData2 <= InData2; OutData1 <= InData0; OutData0 <= InData1; end else if((InData2 > InData1) && (InData0 > InData2)) begin OutData2 <= InData0; OutData1 <= InData2; OutData0 <= InData1; end else if((InData2 > InData0) && (InData1 > InData2)) begin OutData2 <= InData1; OutData1 <= InData2; OutData0 <= InData0; end else if((InData1 > InData2) && (InData0 > InData2) && (InData0 > InData1)) begin OutData2 <= InData0; OutData1 <= InData1; OutData0 <= InData2; end else if((InData1 > InData2) && (InData0 > InData2) && (InData1 > InData0)) begin OutData2 <= InData1; OutData1 <= InData0; OutData0 <= InData2; end else begin OutData2 <= InData2; OutData1 <= InData1; OutData0 <= InData0; end endendmodule
1 0
- Fast Median Filtering Based on FPGA
- Movie recommendation based on collaborative filtering method
- Movie recommendation based on collaborative filtering method
- Spatial Filtering and Median Filtering
- 中值滤波Median filtering
- Filtering F4 Help Values in Table Control, Based On Other Field Value
- efficient median filtering及其实现
- Implementation of fast HEVC encoder based on SIMD and data-level parallelism
- 《Vehicle Detection in High-Resolution Aerial Images Based on Fast Sparse Representation ...》论文笔记
- EFANNA : An Extremely Fast Approximate Nearest Neighbor Search Algorithm Based on kNN Graph
- Real-time lane departure warning system based on a single FPGA
- [gpu pro]fast conventional shadow filtering
- hadoop item based collaborative filtering use case
- Item-Based Collaborative Filtering Recommendation Algorithms
- -Item-Based Collaborative Filtering Recommendation Algorithms
- 协同过滤 之 User-based Collaborative Filtering
- Based Off Versus Based On
- TypeSelect based on TypeTraits
- malloc问题解决
- JAVA基础2-标识符、关键字、数据类型与运算符
- 2015.11.1
- Android开发者网址导航
- Material Design 拾荒记(二) RecyclerView Simple
- Fast Median Filtering Based on FPGA
- MSVC 2013 + Qt 5.4.2 + quazip 0.7.1 的编译及使用
- 控制图片宽度或者高度且使图片不失真
- hdu--2576
- OC 学习笔记3 文件夹下所有.txt文件的行数
- d3d渲染管线前缀
- JAVA基础3-程序结构与控制、函数与数组入门
- single-number-iii
- 测试审核