System for determining median values of video data
First Claim
1. A system for determining the median of a plurality of data values, the system comprising:
- a processor and a memory element communicatively coupled thereto, the memory element configured to store a plurality of instructions to be executed by the processor for determining the median of a plurality of data values;
a plurality of field programmable gate arrays (FPGA) including a plurality of configurable logic elements and a plurality of configurable storage elements;
an input router formed from the configurable logic elements and configured to receive the data values and create a plurality of data streams, each data stream including a portion of the data values; and
a plurality of median modules formed from the configurable logic elements and the configurable storage elements and configured to receive at least one data stream, each median module includinga plurality of counters, each counter with an address corresponding to a single data value within the range of data values and each counter being incremented when the corresponding data value is received,an accumulator configured to accumulate the contents of each counter in sequential order,a comparator configured to compare the contents of the accumulator with the total number of the data values divided by two, wherein the comparator generates a signal if the contents of the accumulator is greater than or equal to the total number of the data values divided by two, andan address register coupled to the comparator, the address register configured to track the address of the counters as the contents of each counter are accumulated and to determine the median upon receipt of the signal from the comparator.
2 Assignments
0 Petitions
Accused Products
Abstract
A system for determining the median of a plurality of data values comprises a plurality of field programmable gate arrays (FPGA), a plurality of inter FPGA links, an input router, a plurality of median modules, and a plurality of output transfer modules. Each FPGA includes a plurality of configurable logic elements and configurable storage elements from which the other components are formed. The inter FPGA link allows communication from one FPGA to another. The input router receives the plurality of data values and creates a plurality of data streams. The median module receives at least one data stream, increments a plurality of counters corresponding to a single data value within the range of data values, and determines the median by accumulating the contents of each counter. The output transfer module transfers the median to an external destination along with performance statistics of the determination of the median.
-
Citations
18 Claims
-
1. A system for determining the median of a plurality of data values, the system comprising:
-
a processor and a memory element communicatively coupled thereto, the memory element configured to store a plurality of instructions to be executed by the processor for determining the median of a plurality of data values; a plurality of field programmable gate arrays (FPGA) including a plurality of configurable logic elements and a plurality of configurable storage elements; an input router formed from the configurable logic elements and configured to receive the data values and create a plurality of data streams, each data stream including a portion of the data values; and a plurality of median modules formed from the configurable logic elements and the configurable storage elements and configured to receive at least one data stream, each median module including a plurality of counters, each counter with an address corresponding to a single data value within the range of data values and each counter being incremented when the corresponding data value is received, an accumulator configured to accumulate the contents of each counter in sequential order, a comparator configured to compare the contents of the accumulator with the total number of the data values divided by two, wherein the comparator generates a signal if the contents of the accumulator is greater than or equal to the total number of the data values divided by two, and an address register coupled to the comparator, the address register configured to track the address of the counters as the contents of each counter are accumulated and to determine the median upon receipt of the signal from the comparator. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for determining the median of a plurality of data values, the system comprising:
-
a processor and a memory element communicatively coupled thereto, the memory element configured to store a plurality of instructions to be executed by the processor for determining the median of a plurality of data values; a plurality of field programmable gate arrays (FPGA) including a plurality of configurable logic elements and a plurality of configurable storage elements; a plurality of inter FPGA links, each inter FPGA link included within one FPGA and configured to allow communication from one FPGA to another FPGA; an input router formed from the configurable logic elements and is configured to receive the data values and create a plurality of data streams, each data stream including a portion of the data values; a plurality of median modules formed from the configurable logic elements and the configurable storage elements and configured to receive at least one data stream, each median module including a plurality of counters, each counter corresponding to a single data value within the range of data values and each counter being incremented when the corresponding data value is received, an accumulator configured to accumulate the contents of each counter in sequential order, a comparator configured to compare the contents of the accumulator with the total number of the data values divided by two, wherein the comparator generates a signal if the contents of the accumulator is greater than or equal to the total number of the data values divided by two, and an address register coupled to the comparator, the address register configured to track the address of the counters as the contents of each counter are accumulated and to determine the median upon receipt of the signal from the comparator; and a plurality of output transfer modules, each output transfer module included within one FPGA and configured to transfer the median to an external destination along with performance statistics of the determination of the median. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A system for determining the median of a plurality of data values, the system comprising:
-
a processor and a memory element communicatively coupled thereto, the memory element configured to store a plurality of instructions to be executed by the processor for determining the median of a plurality of data values; a plurality of field programmable gate arrays (FPGA) including a plurality of configurable logic elements and a plurality of configurable storage elements; a plurality of inter FPGA links, each inter FPGA link included within one FPGA and configured to allow communication from one FPGA to another FPGA; an input router formed from the configurable logic elements and is configured to receive the data values and create a plurality of data streams, each data stream including a portion of the data values; a plurality of median modules formed from the configurable logic elements and the configurable storage elements and configured to receive at least one data stream, and further including at least one dual-port memory element coupled to an adder, wherein the adder is configured to add one to the contents of each address of the at least one dual-port memory element, an address generator coupled to an address bus of the at least one dual-port memory element and configured to generate each address of the at least one dual-port memory element in sequential order, an accumulator coupled to a data bus of the at least one dual-port memory element and configured to accumulate the contents of each address of the at least one dual-port memory element in sequential order, a comparator configured to compare the contents of the accumulator with the total number of the data values divided by two and to generate a signal if the contents of the accumulator is greater than or equal to the total number of the plurality of data values divided by two, and an address register coupled to the comparator, the address register configured to track the address of the counters as the contents of each counter are accumulated and to determine the median upon receipt of the signal from the comparator; and a plurality of output transfer modules, each output transfer module included within one FPGA and configured to transfer the median to an external destination along with performance statistics of the determination of the median.
-
-
15. A computer implemented method for determining the median of a plurality of data values, the method comprising the steps of:
-
a) establishing a processor and a memory element communicatively coupled thereto, the memory element configured to store a plurality of instructions to be executed by the processor for determining the median of a plurality of data values; b) establishing at least one dual-port memory element within a field programmable gate array (FPGA) wherein the at least one dual-port memory element includes an address that corresponds to each value in the range of data values; c) receiving all of the data values into the FPGA; d) counting the occurrence of each data value in the data values by incrementing the contents of the address that corresponds to the data value; e) sequentially accumulating the contents of each address of the at least one dual-port memory element utilizing an accumulator within the FPGA; f) comparing the contents of the accumulator after each address is accumulated with the total number of the data values divided by two after each address is accumulated utilizing a comparator within the FPGA; and g) generating the median as being the current address of the at least one dual-port memory element when the contents of the accumulator equals the total number of the data values divided by two. - View Dependent Claims (16, 17, 18)
-
Specification