IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
UP-0820683
(2007-06-20)
|
등록번호 |
US-7529404
(2009-07-01)
|
발명자
/ 주소 |
|
인용정보 |
피인용 횟수 :
2 인용 특허 :
6 |
초록
▼
An apparatus for video digital color pixel filtering and digital image processing that eliminates the need for Furrier Transforms, thus eliminating time-consuming multiplication and additions. It utilizes a new distributed computer architecture that operates in conjunction with First In First Out me
An apparatus for video digital color pixel filtering and digital image processing that eliminates the need for Furrier Transforms, thus eliminating time-consuming multiplication and additions. It utilizes a new distributed computer architecture that operates in conjunction with First In First Out memories, utilizing simple software for each processor to minimize latency issues of real time interactive digital image processing. The distributed processing architecture is set up to operate in a manner similar to factory assembly lines, wherein FIFO's carry semi processed data from one processor to another. A unique memory based system is used to measure motion vectors including distances and rotational vectors, of moving objects moving in a six degree of freedom.
대표청구항
▼
What is claimed is: 1. An apparatus for performing digital video filtering of a sequence of raster input pixel signals, each respective raster input pixel having, an ordered n-tuple set of values from a video camera or sensors to signify n-tuple color identification of a pixel, the apparatus consis
What is claimed is: 1. An apparatus for performing digital video filtering of a sequence of raster input pixel signals, each respective raster input pixel having, an ordered n-tuple set of values from a video camera or sensors to signify n-tuple color identification of a pixel, the apparatus consisting of the following: a) a digital video synchronization and timing controller that synchronizes to the header of the incoming digital video data bit stream and provides digital timing and control signal required to identify each one of the "n" tuple set of prime colors, and position of each prime color within a pixel timing; a) a prime color digital filter, coupled to receive the intensities of the n-topple sequence of raster input prime signals and map each respective n-topple prime color intensity into a respective prime color memory address each memory address having: a respective memory address within a predetermined memory address range, each predetermined memory address range identifies each prime color of n-tuple input of a multicolored object within as, a multicolored prime identity number of, a group of colors belonging to an object within as; a multicolored object's group identity number; each memory address identifies prime colors of a multicolored object within a group of colors belonging to an object, and within different groups of multicolored objects; b) a spectrum color digital filter, coupled to receive the multicolored object's prime color identity number of, the group of colors belonging to a multicolored object, as an input to a memory address each memory address having: a respective memory address within a predetermined memory address range, each predetermined memory address range identifies each color of n-tuple input of a multicolored object within as, a multicolored identity number of, a group of colors belonging to an object within as; a multicolored object's group identity number; a color identification mark, to denote detection of color within a spectrum of colors; each memory address identifies each color of a multicolored object in the color spectrum within a group of colors belonging to an object, and within different groups of multicolored objects. 2. Apparatus of claim 1 wherein a shift register based hardware block coupled to the output of the digital spectrum filter, detects absence of "n" pixels in a row, within a row of a frame, wherein "n" is an arbitrary number for detection of pixel spacing between two objects as follows of a same color or different color: a) the shift register is loaded with the number "n" each time the pixel identification mark from the output of the color spectrum memory is detected; "n" is an arbitrary number to denote the number of consecutive undetected pixels in a row, following the last pixel detection mark; the "n" in the shift register gets reduced by one, during each consecutive pixel time wherein the pixel detection mark is not found; b) at the end of "n" count the register generates a gap signal that signifies absence "n" number of pixels in a row; a) a Pixel Processor amends this gap information to the last detected pixel identification data written in a Video Data FIFO; b) Gap is the absent of a specified color pixel in a row from another specified color pixel or the same color pixel in the same row; c) Gap is absence of a specified color pixel in a row from another specified color pixel or the same color pixel. 3. A distributed processor consisting of a horizontal and vertical plurality of sub-processor wherein, individual processors are arranged in pre and post processing arrangement with respect to each other in a time synchronized heretical functional architecture, along with plurality of First In First Out memories, wherein FIFO's, links one processor to other to carry semi-processed data from one processor to another; a) distributed processor continually processes data received from the digital filter and convert such data into coordinate location, velocity, and acceleration of colored objects moving in six degree of freedom, the apparatus consists of the following: a Filter Processor; a Video Data FIFO; a Pixel Group Identifier Processor; a Group Identifier FIFO a Row (x) and Column (y) Coordinate Processor a Midpoint x (row) and Column (y) Coordinate FIFO a Delta Time Processor an object Identification Processor a Motion Distance and Rotation Detector a Vector Motion Measurement RAM a Motion Track FIFO a Motion Track Processor b) individual processors are synchronized to a video frame in which the tasks of each processor is synchronized to the start of a frame and each task has to be finished before the end of the same frame; c) the sub processor functional tasks in the vertical direction is expanded in which each processor tasks is kept to a minimal; d) the functional tasks of the processors in the horizontal direction is expanded such that each processor performs exact same function on different parts of the data within a frame's time; e) frame's timing is utilized to direct the data flow such that each processor data is interleaved and directed based upon detailed timing within a frame. 4. The apparatus of claim 3 wherein the Filter Processor a coupled to a Color Spectrum Filter, reads pixel information from the color spectrum memory whenever the pixel detect mark appears at the output of the spectrum color filter, to denote the detection of a pixel color during that pixel timing and provides the following to Video Data FIFO: a) The filtered color pixel data; the multicolored object's spectrum identity number; the group number (of colors) belonging to an object; b) the frame row count at the end of a row from the video frame row counter c) the column count from a video frame coulomb counter at the end of the columns (end of a frame); d) the pixel gap detect; e) change the order of the Video Data FIFO from A to b, and B to A for the Filter Processor write and Pixel Identifier Processor read. 5. Apparatus of claims of 3, wherein the Pixel Group Identifier Processor, sorts and separates the colors of the received pixels based upon their color, color group identification, and x (row) coordinate address in which thy were detected during filtering, together with other statistical data of the pixels for the next stage of processing, the method comprising of the steps of (numbers in parenthesis refer to the points in FIG. 6): a) at point (102) check for the new pixel from the Video FIFO; b) at point (102), read and retain the first pixel's x coordinate reference along with color number and group number from the Video Data FIFO; c) at point (104, read and retain the second pixel's x coordinate reference along with color number and group number from the Video Data FIFO; d) at point (105), if it is the same color, transition to point (106) and do the following: add to the number of pixel of same color within a row that are within a group; keep the smallest and the largest x coordinate within the row; discard the in-between x coordinate data; transition to point 104; e) at point (105), if it is not the same color, transition to point (107); f) at point (107), if it belongs to the same group of colors, transition to point (104); g) at point (107), if the color do not belong to the same group, write the following into the Group Identifier FIFO: addition of all pixel of a group of colors that are found in a row; midpoint reference x of the group of colors that are found in a row; beginning and end coordinates address of the group of colors belonging to a group and ending with a gap mark; initial and the end detection of a color pixel of the same color pixels before non-detection, gap; column number of the of colors that they were found in a row; transition to point (109); h) At point (109), check for the gap mark, if there is no gap, generate an error message, and transition to point (104); i) At point (109) if there is a gap, transition to point 111; j) At point (111), check for the video Data FIFO empty signal and if it not empty, transition to point (102); k) At point (111), if the FIFO is empty transition to point (113), l) At point (113) enable Group Identifier FIFO from A, to B for the next frame of data to write and B to A for the next stage processor to read, and transition to point (102). 6. The apparatus of claim 3 wherein the Midpoint x (row) and y (column) Coordinate processor coupled to the Group Identifier FIFO, sorts and identifies the midpoint x, and y coordinates of an object, it is based upon initially checking the two-midpoint reference coordinates and if they are equal it checks for the number of columns in which they were separated, if there were no separation it assumes the same object, otherwise it assumes that it is a new detected object, the method and the detailed functional activity is depicted in FIGS. 7, 7A, 7B, and 7C, and comprising of the steps of (numbers in parenthesis refer to the points in FIG. 7): a) At point (131) stating from the first coordinate address in the Group Identifier FIFO, read the first entry of the x's midpoints for comparison; b) At point (132) read the next entry from the Group Identifier FIFO and extend the second midpoint by +/-"n", wherein "n" denotes the separation and spacing of two x reference midpoint coordinates from one column to another; c) At (133) starting from first x-"n" coordinate address compare the closeness of the two x midpoints; d) At (133) if two midpoint x's are equal, transitions to point (134); e) At point (133) if the two coordinate readings are not equal transition to point (137) to continue for the search in +/-n range; f) At point (137), increment x by one and transition to point 138; g) At point (138), if it is not the end of the search range for the midpoint x reference coordinate, transition to point (133); At point (138) at the end of search, if the two x coordinates were not found to be in the same range, it signifies that the second coordinate belongs to a new object and transition is made to point (139); h) At (134), check if the two midpoints are separated by "m" where m denotes the number of separations of columns, and if the are transition to (136); i) At (134), if the two midpoint coordinates are not separated by separated by m, it assumes the coordinates is of the same object and transition to point (135); j) At point (135) it assumes the coordinate is of the same object in closely located columns and does the following: keep the smallest and the largest x coordinates for later calculation of the x midpoint reference in consecutive columns; keep the first and the last column in which they were found; transition to point (132); k) At point (136) check for the FIFO empty signal; l) At point (136), if the FIFO is not empty, go back to point 131, otherwise change the X, and Y coordinate FIFO's from A to B for the next frame's write, and next processor read from B to A and go to step 131); m) At point (139), do the following: calculate the x, and y midpoint coordinates; add all the pixels of a same group found in different rows; write the second reading to the back to the Group Identifier FIFO; go back to point (131). 7. The apparatus of claim 3 wherein the Object Identification Processor, coupled to the x, and y coordinate FIFO identifies objects based upon the their emergence or disappearance on a new frame's midpoint coordinates address related to the row (x) and column (y), and comparison of the old coordinates in the old frame to the new coordinates in a new frame, the method comprising of the steps of (numbers refer to the points in FIG. 8): a) at point 150, read the previous(old) frame's y, an x midpoint coordinates from the FIFO's A or B, and new frame's y, an x midpoint coordinates from the FIFO's B or A; b) set the new midpoint y coordinates to y-m, wherein "m" denotes number of columns in witch two objects are considered to be separated; c) set the new midpoint x coordinates by x-n wherein 2 times "n" denotes number of pixels in witch two objects are considered to be separated; d) at point 152, look for the match of the old (previous) y coordinate to any one of the new coordinate within the range of "m", and if equal transition to point 155, otherwise transition to point 153; e) at point 155, look for the match of the old (previous) x coordinate to the new x coordinate within the range of +/-n, if equal transition to point 158, otherwise go to step to point 156; f) at point 158, perform the following: write the objects coordinates along with the same object's mark to the Motion Track FIFO; write the next x, and y coordinates back to the new FIFO; transition to point 163; g) At point 163 if it is not the end of a frame mark, repeat steps a) till the end of the frame, if the end of the frame, go back to point 150, otherwise wait for the new frame and go to point 150; h) At point 154, since the new y could not be found, this signifies that the new y address is smaller, due to the appearance of a new object, then perform the following: write the new object coordinate along with the new object mark to the next stage FIFO; keep the old flame's y, and x midpoint coordinate; read the new flame's y, and x midpoint coordinate; set the new midpoint y to y-m, and the new x midpoint to x-n, and go to point 152; i) at point 157, since the new x could not be found, this signifies that the new y, and x coordinate address is larger than the old and the old object has disappeared from the screen, then perform the following: write the old object's disappearance mark to the next stage FIFO; keep the new flame's y, and x midpoint coordinate; read the old frame's y, and x midpoint coordinate; set the new midpoint y to y-m, and the new x midpoint to x-n, and go to point 152. 8. The apparatus of claim 3 wherein the Rotation and Distance Processor apparatus coupled to the X, and Y Coordinate FIFO, measures the rotation angles and distances in z of a multi-colored object moving in six degree of freedom, based upon their individual pixel color counts facing a camera, the apparatus and the steps, comprising of the following: a) set the total area for each color, that is the total pixel counts of colors and the group's color numbers, as an address to a memory wherein the data of the memory represent a prerecorded instantaneous angular positions of a moving object recorded during the calibration; color areas of multicolored three dimensional objects moving in a three dimensional space, provides instantaneous measurement of distances in z as direction as well as rotational values of the object in a six degree of freedom; multicolored objects moving in a three dimensional space, when detected by a camera, will register a unique signature of different color areas in each frame, wherein, the areas under each color of all the colors in a group of predefined colors, will represent a unique instantaneous angles of rotation in a three dimensional space and the total areas of different colors, provide an instantaneous magnitude of distance in z direction; during calibration, the empirical real time motion detection of an object based upon their color exposure to a camera and the area count of all color portion and their associated color numbers are organized as the address to the memory and recorded to provide instantaneous values; b) calibration of values of motion in z direction and the three instantaneous angular motion values are the result of empirical measurement of the area under each color and recording known vector motion values in a memory addressed by each group color number and detected area of each relevant colors; The calibrated instantaneous value of z, and x, y, and z rotational vectors are recorded in a memory, while the address to the memory is the area under each particular color and the detected assigned color numbers; c) if the rotational values are small, the change of motion in z direction is approximated by the ratios of past and resent detected value of total relevant color areas; d) send the information to the Motion Track FIFO. 9. Apparatus of claim 3 wherein vector measurement of distance, velocities and accelerations are made from one frame to another frame, as follows: a) vector velocities are derived by the changes in vector measurements during two frames divided by the elapsed time; b) the vector accelerations are derived from the calculated velocities derived from the previous step divided by the elapsed time; Elapsed time is measured between the detections of midpoints of same object in two frames. 10. The apparatus of claim 3 wherein the distributed processor architecture is made to eliminate processing numbers time as follows: a) Individual processors consist of a memory based state machine wherein processing takes place within one clock period, eliminating clocks necessary to fetch the instruction from memory in a typical memory based CPU that includes, decoding instructions, and increment or decrement pointer addresses; b) FiFO's are used as a storage of data only wherein, there is only a single address for the state machine to read, and a single address for the state machine to write to.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.