Senior Fitness - Exercise and Nutrition for Aging Men and Women
FREE Article Feed for your website.
Home Ownership Magazine
Party Planning Information
Article Marketing Resources
Bio-Medical Research Article Database
Informative Articles on Life, Love and Happiness
Tutorials on Business to Writing
Famous Quotes from Famous People
Song Lyric Information
New US Patent Information
Comprehensive List of Content by Category
Online Auctions and Shopping Related Articles
Article Search
Most Recent Articles
Title: Door and frame with peripheral venting for electronic component cabinet
Patent Number: 6,983,566 Issued on 01/10/2006 to Laun,   et al.

Title: Transparent, multilayer, biaxially oriented polyester film, and process for its production
Patent Number: 6,866,920 Issued on 03/15/2005 to Janssens,   et al.

Title: Memory storage device carrier having a locking handle
Patent Number: 6,820,953 Issued on 11/23/2004 to Wojcik

Title: Sacrifice read test mode
Patent Number: 6,781,901 Issued on 08/24/2004 to Shore

Title: Modular case for holding articles
Patent Number: 6,820,950 Issued on 11/23/2004 to Sun

Title: Open architecture for a voice user interface
Patent Number: 7,016,847 Issued on 03/21/2006 to Tessel,   et al.

Title: Protective membrane for reconfiguring a workpiece
Patent Number: 6,805,703 Issued on 10/19/2004 to McMorrow

Title: Method and apparatus for preventing a microprocessor from erroneously entering into a test mode during initialization
Patent Number: 7,043,628 Issued on 05/09/2006 to Roche,   et al.

Title: Epitaxially grown compound semiconductor film and compound semiconductor multi-layer structure
Patent Number: 6,815,792 Issued on 11/09/2004 to Nagata,   et al.

Title: Buried, fully depletable, high fill factor photodiodes
Patent Number: 6,815,791 Issued on 11/09/2004 to Dierickx

Title: Storage services and systems
Patent Number: 7,043,614 Issued on 05/09/2006 to Umbehocker,   et al.

Title: Semiconductor memory with floating gate type FET
Patent Number: 6,815,759 Issued on 11/09/2004 to Horiguchi,   et al.

Title: Semiconductor device with alternating conductivity type layer and method of manufacturing the same
Patent Number: 6,815,766 Issued on 11/09/2004 to Miyasaka,   et al.

Title: Field effect transistor with channel extending through layers on a substrate
Patent Number: 6,815,750 Issued on 11/09/2004 to Kamins

Title: Information processing system and cache flash control method used for the same
Patent Number: 7,043,607 Issued on 05/09/2006 to Ezoe

Title: Method for selective trimming of gate structures and apparatus formed thereby
Patent Number: 6,815,737 Issued on 11/09/2004 to Furukawa,   et al.

Title: Silicide bridged anti-fuse
Patent Number: 6,815,797 Issued on 11/09/2004 to Dark,   et al.

Title: Semiconductor electronic device and method of manufacturing thereof
Patent Number: 6,815,789 Issued on 11/09/2004 to Tiziani,   et al.

Title: Semiconductor integrated circuit device incorporating memory cell transistor and logic transistor, and method of manufacturing the same
Patent Number: 6,815,768 Issued on 11/09/2004 to Aochi

Title: Crystalline silicon thin film semiconductor device, crystalline silicon thin film photovoltaic device, and process for producing crystalline silicon thin film semiconductor device
Patent Number: 6,815,788 Issued on 11/09/2004 to Oka,   et al.

Title: Body of a semiconductor material with a reduced mean free path length
Patent Number: 6,815,793 Issued on 11/09/2004 to Kartal,   et al.

Title: Semiconductor integrated circuit device
Patent Number: 6,815,799 Issued on 11/09/2004 to Okawa,   et al.

Title: System with meshed power and signal buses on cell array
Patent Number: 6,815,742 Issued on 11/09/2004 to Kitsukawa,   et al.

Title: Semiconductor device and method of manufacturing the same
Patent Number: 6,815,773 Issued on 11/09/2004 to Uehara,   et al.

Title: Sequential synthesis of core-shell nanoparticles using reverse micelles
Patent Number: 6,773,823 Issued on 08/10/2004 to O'Connor,   et al.

Title: Method for inspecting silicon wafer, method for manufacturing silicon wafer, method for fabricating semiconductor device, and silicon wafer
Patent Number: 6,861,268 Issued on 03/01/2005 to Iwabuchi

Title: Coherence controller for a multiprocessor system, module, and multiprocessor system with a multimodule architecture incorporating such a controller
Patent Number: 7,017,011 Issued on 03/21/2006 to Lesmanne,   et al.

Title: Robust checksums
Patent Number: 7,016,846 Issued on 03/21/2006 to Bruekers,   et al.

Title: Cable tester
Patent Number: 7,002,353 Issued on 02/21/2006 to Lo,   et al.

Title: Toilet bowl odor removal system
Patent Number: 6,795,980 Issued on 09/28/2004 to Ries

Title: Edge profiling for executable program code having branches through stub code segments
Patent Number: 6,795,964 Issued on 09/21/2004 to Ramasamy,   et al.

Title: Distributed feedback type semiconductor laser device
Patent Number: 6,795,466 Issued on 09/21/2004 to Takei,   et al.

Title: Variable bitrate video coding method and corresponding video coder
Patent Number: 6,795,502 Issued on 09/21/2004 to Fert,   et al.

Title: Pallet with a base plate and legs of metal
Patent Number: 6,769,367 Issued on 08/03/2004 to Schutz

Title: Method of using an overlay to verify or form a folding, embossing, or rule die
Patent Number: 6,969,442 Issued on 11/29/2005 to Kerr,   et al.

Title: Syringe device for simultaneous infusion and withdrawal
Patent Number: 7,094,222 Issued on 08/22/2006 to Siekas,   et al.

Title: Flexible member tensioning instruments and methods
Patent Number: 7,094,240 Issued on 08/22/2006 to Molz, IV,   et al.

Title: Medical grafting connectors and fasteners
Patent Number: 7,094,248 Issued on 08/22/2006 to Bachinski,   et al.

Title: Method for transferring a packed data structure to an unpacked data structure by copying the packed data using pointer
Patent Number: 6,865,614 Issued on 03/08/2005 to Fischer,   et al.

Title: Knife selecting arrangement of crop cutting device for use with agricultural machines having a pick-up
Patent Number: 6,912,835 Issued on 07/05/2005 to Chabassier

Title: Nonvolatile memory device having a voltage booster with a discharge circuit activated during standby
Patent Number: 6,836,442 Issued on 12/28/2004 to Micheloni,   et al.

Title: Systems and methods for electrosurgical tissue contraction
Patent Number: 7,094,215 Issued on 08/22/2006 to Davison,   et al.

Title: Receptacle cap having aromatic properties
Patent Number: 7,005,152 Issued on 02/28/2006 to Landau

Title: Device and method for improved serial bus transaction using incremental address decode
Patent Number: 7,013,355 Issued on 03/14/2006 to Chambers

Title: Light frequency locker
Patent Number: 6,795,459 Issued on 09/21/2004 to Tsai

Title: Semiconductor integrated circuit device
Patent Number: 6,977,834 Issued on 12/20/2005 to Onizawa,   et al.

Title: Gas laser
Patent Number: 6,795,462 Issued on 09/21/2004 to Christiansen,   et al.

Title: Process for shutting down a CPU in a SMP configuration
Patent Number: 6,996,745 Issued on 02/07/2006 to Shaylor

Title: Expert-type vehicle steering control system and method
Patent Number: 6,795,763 Issued on 09/21/2004 to Yao,   et al.

Title: Electrode sensor package and application to the skin of a newborn or infant
Patent Number: 6,795,722 Issued on 09/21/2004 to Sheraton,   et al.

Title: Contactable charging type charging device for image formation apparatus, and method of manufacturing the same
Patent Number: 7,123,861 Issued on 10/17/2006 to Eun

Title: Support structure for image processing apparatus
Patent Number: 7,123,856 Issued on 10/17/2006 to Marumoto

Title: Image forming apparatus, image forming apparatus control method, cartridge, and storage medium
Patent Number: 7,123,849 Issued on 10/17/2006 to Ishii,   et al.

Title: Image forming apparatus having positioned cleaning unit for image transfer belt positioned with respect to toner patch detecting member and toner image transfer member
Patent Number: 7,123,852 Issued on 10/17/2006 to Tomizawa

Title: Advanced Bi-directional linear polishing system and method
Patent Number: 6,908,368 Issued on 06/21/2005 to Young,   et al.

Title: System and method of using variable pulses for symbology
Patent Number: 7,123,843 Issued on 10/17/2006 to Melick,   et al.

Title: Systems and methods for improving concept landscape visualizations as a data analysis tool
Patent Number: 6,940,509 Issued on 09/06/2005 to Crow,   et al.

Title: Flat panel x-ray detector
Patent Number: 7,126,128 Issued on 10/24/2006 to Ikeda,   et al.

Title: Frame transfer prober
Patent Number: 7,126,145 Issued on 10/24/2006 to Ueda

Title: Real-time video radiation exposure monitoring system
Patent Number: 7,126,121 Issued on 10/24/2006 to McGlothlin,   et al.

Title: Polymer electrolyte thin film fuel cell and method of operating the same
Patent Number: 7,081,317 Issued on 07/25/2006 to Fujii,   et al.

Title: Biodegradable common bile duct stent and the method for preparing thereof
Patent Number: 7,094,260 Issued on 08/22/2006 to Jing,   et al.

Title: Fabrication of a high-strength steel article with inclusion control during melting
Patent Number: 7,094,273 Issued on 08/22/2006 to Raymond,   et al.

Title: Physiological total knee implant
Patent Number: 7,094,259 Issued on 08/22/2006 to Tarabichi

Title: Method of an address trace cache storing loop control information to conserve trace cache area
Patent Number: 6,988,190 Issued on 01/17/2006 to Park

Title: Mask with gusset
Patent Number: 6,986,352 Issued on 01/17/2006 to Frater,   et al.

Title: Method and device for controlling the drive unit of a vehicle
Patent Number: 7,117,829 Issued on 10/10/2006 to Haas

Title: Refresh control method of semiconductor memory device and semiconductor memory device comprising the same control method
Patent Number: 6,795,363 Issued on 09/21/2004 to Nakashima,   et al.

Title: Method and apparatus for lengthening the data-retention time of a DRAM device in standby mode
Patent Number: 6,795,364 Issued on 09/21/2004 to Leung,   et al.

Title: Optical disk recording and reproducing apparatus and method for recording and controlling optical disk
Patent Number: 6,795,385 Issued on 09/21/2004 to Nishimura,   et al.

Title: Method for displaying an environmentally modulated expiration date
Patent Number: 6,795,376 Issued on 09/21/2004 to Quine

Title: Fast cycle RAM having improved data write operation
Patent Number: 6,795,370 Issued on 09/21/2004 to Ohshima,   et al.

Title: Information processing system for holding number of times of record restarting
Patent Number: 6,795,382 Issued on 09/21/2004 to Kitamura,   et al.

Title: Address buffer and semiconductor memory device using the same
Patent Number: 6,795,369 Issued on 09/21/2004 to Choi,   et al.

Title: Method and system for tiered distribution in a content delivery network
Patent Number: 7,133,905 Issued on 11/07/2006 to Dilley,   et al.

Programmable image transform processor Number:6,961,084 from the United States Patent and Trademark Office (PTO) owispatent

Home    Author Login    Submit Article    Article Search    Add Your Link    Edit Your Link    Contact Us    Advertising    Disclaimer

   

 
Web LinkGrinder.com

Top Breaking News
     Greek, Cypriot Leaders Resume Unification Talks in Nicosia by Nathan Morley
     Indonesia Tobacco Sales Grow, Raising Health Fears
     South Korea Allows Top Defector to Travel Overseas by VOA News

Title: Programmable image transform processor

Abstract: A programmable image transform system has a programmable addressing and arithmetic blocks. In the programmable addressing block, an input address generator has an input addressing microsequencer and an input addressing memory that stores an input addressing procedure. The microsequencer executes the input addressing procedure to generate addresses from which to request image data. In the programmable arithmetic block, an arithmetic block memory stores an image processing procedure and a microsequencer executes the image processing procedure using the image data to generate transformed image data.

Patent Number: 6,961,084 Issued on 11/01/2005 to Duncan,   et al.


Inventors: Duncan; Kathleen A. (Santa Cruz, CA); Livingston; Raymond S. (Bonny Doon, CA)
Assignee: ESS Technology, Inc. (Fremont, CA)
Appl. No.: 679854
Filed: October 5, 2000

Current U.S. Class: 348/222.1; 348/231.99; 348/403.1; 375/240.19; 382/248
Intern'l Class: H04N 005/22.8; H04N 005/76; H04N 007/12; G06K 009/36
Field of Search: 348/2211,231.99,403.1,405.1 375/246,240.23,240.19 382/232,246,248


References Cited [Referenced By]

U.S. Patent Documents
5345552Sep., 1994Brown.
5428804Jun., 1995Davies.
5606520Feb., 1997Gove et al.
5669010Sep., 1997Duluk, Jr.
5701450Dec., 1997Duncan.
5729758Mar., 1998Inoue et al.
5806072Sep., 1998Kuba et al.
5812195Sep., 1998Zhang.
5815680Sep., 1998Okumura et al.
5920343Jul., 1999Watanabe et al.
5923881Jul., 1999Fujii et al.
5926583Jul., 1999Iwase et al.
5982425Nov., 1999Allen et al.
6020920Feb., 2000Anderson.
6020982Feb., 2000Yamauchi et al.
6072936Jun., 2000Koyama.
6100928Aug., 2000Hata.
6597394Jul., 2003Duncan et al.

Primary Examiner: Christensen; Andrew
Assistant Examiner: Ye; Lin
Attorney, Agent or Firm: Farjami & Farjami LLP

Parent Case Text



CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No. 60/159,000, entitled "Programmable Image Transform Processor," filed Oct. 7, 1999, that is incorporated by reference.

U.S. Patent application, titled "Programmable Image Transform Processor for a Digital Camera," Ser. No. 09/188,871, filed Nov. 9, 1998, incorporated by reference.

U.S. Patent application, titled "Programmable Timing Generator for a Digital Camera," Ser. No. 09/188,831, filed Nov. 9, 1998, is incorporated by reference.

U.S. Patent application, titled "Programmable Display Controller for a Digital Camera," Ser. No. 09/188,996, filed Nov. 9, 1998, is incorporated by reference.
Claims



1. An image transform processor for processing image data, comprising:

a programmable arithmetic processor capable of receipt of the image data from a data source over a data path and processing the image data, the programmable arithmetic processor comprising a first set of local buffers and a second set of local buffers, each buffer in the first set of local buffers alternately used for fetching input image data and each buffer in the second set of local buffers alternately used for storing output image data; and

a programmable input addresser that controls transfer of the image data from the data source to the programmable arithmetic processor by providing a source address onto a source address path, the source address identifying the data source.

2. The image transform processor of claim 1, wherein the programmable input addresser further controlling transfer of the image data to the programmable arithmetic processor by providing a storage address to the programmable arithmetic processor, the storage address identifying a location within the programmable arithmetic processor for storage of the image data.

3. The image transform processor of claim 1, wherein the data source being a frame capture processor, the source address identifying the frame capture processor.

4. The image transform processor of claim 1, wherein the data source being a memory, the source address being a memory address identifying a location of the image data within the memory.

5. The image transform processor of claim 1, wherein the data source being a memory, the source address path being a read address bus coupled between the programmable input addresser and the memory, the source address being a memory address identifying a location of the image data within the memory.

6. The image transform processor of claim 1, the storage location within the programmable arithmetic processor being a local buffer.

7. The image transform processor of claim 1 further comprising:

a programmable output addresser controlling transfer of the image data from the programmable arithmetic processor to a memory by providing a write address onto a write path, the write address identifying a write address in the memory for storage of the image data.

8. The image transform processor of claim 7, wherein the write path is a write address bus electrically connected to the programmable output addresser and the memory.

9. The image transform processor of claim 7, wherein the programmable output addresser further controlling transfer of the image data by providing a retrieval address to the programmable arithmetic processor, the retrieval address identifying a location within the programmable arithmetic processor for retrieval of the image data.

10. The image transform processor of claim 9, wherein the retrieval location within the programmable arithmetic processor is a buffer.

11. The image transform processor of claim 9, wherein the retrieval location within the programmable arithmetic processor is at least one buffer of a plurality of buffers.

12. An image transform processor for processing image data, the image transform processor comprising:

a programmable arithmetic processor capable of receiving the image data from a memory over a data bus coupled between the programmable arithmetic processor and the memory and processing the image data, the programmable arithmetic processor comprising a first set of local buffers and a second set of local buffers, each buffer in the first set of local buffers alternately used for fetching input image data and each buffer in the second set of local buffers alternately used for storing output image data; and

a programmable input addresser controlling transfer of the image data from the memory to the programmable arithmetic processor by:

(i) providing a memory address onto a read address bus coupled between the programmable input addresser and the memory, the memory address identifying a location of the image data within the memory, and

(ii) providing a storage address to the programmable arithmetic processor, the storage address identifying a local buffer within the programmable arithmetic processor for storage of the image data.

13. An image transform processor for processing image data, comprising:

a programmable arithmetic processor capable of receiving the image data from a memory over a data bus coupled between the programmable arithmetic processor and the memory and processing the image data, the programmable arithmetic processor comprising a first set of local buffers and a second set of local buffers, each buffer in the first set of local buffers alternately used for fetching input image data and each buffer in the second set of local buffers alternately used for storing output image data;

a programmable input addresser controlling transfer of the image data from the memory to the programmable arithmetic processor by:

(i) providing a memory address onto a read address bus coupled between the programmable input addresser and the memory, the memory address identifying a location of the image data within the memory, and

(ii) providing a storage address to the programmable arithmetic processor, the storage address identifying a first local buffer within the programmable arithmetic processor for storage of the image data; and

a programmable output addresser controlling transfer of the image data from the programmable arithmetic processor to the memory by:

(i) providing a write address onto a write address bus coupled between the programmable output addresser and the memory, the write address identifying a write address in the memory for storage of the image data, and

(ii) providing a retrieval address to the programmable arithmetic processor, the retrieval address identifying a second local buffer within the programmable arithmetic processor for retrieval of the image data.

14. An image transform processor comprising:

a programmable input addresser to retrieve an image as a received image in accordance with a first programmed predefined access pattern, the programmable input addresser to output the received image in accordance with a second programmed predefined access pattern;

a programmable output addresser;

a SIMD processor including a controller coupled to a memory storing an at least one image processing instructions, the SIMD processor having a plurality of processing elements and a plurality of local buffers arranged in a plurality of levels and a plurality of processing banks, each processing bank in the plurality of processing banks being connected in parallel with another processing banks in the plurality of processing banks, the controller being coupled to each processing element in the plurality of processing elements and each local buffer in the plurality of local buffers to control the operation of each processing element and each local buffer such that the plurality of processing banks simultaneously respond to an instruction from the controller, the SIMD processor being arranged as:

(i) a first level of the plurality of levels including a first set of local buffers from the plurality of local buffers;

(ii) a second level of the plurality of levels including a second set of local buffers from the plurality of local buffers;

(iii) a third level of the plurality of levels including a third set of local buffers from the plurality of local buffers;

(iv) a fourth level of the plurality of levels including a fourth set of local buffers from the plurality of local buffers;

(v) a processing level including a set of processing elements from the plurality of processing elements that generates a processed image from the image stored in the plurality of local buffers in accordance with an image processing instruction;

each processing bank including one local buffer of the first set of local buffers, one local buffer of the second set of local buffers, a processing element from the set of processing elements, one local buffer of the third set of local buffers, and one local buffer of the fourth set of local buffers, the processing element of each processing bank storing and retrieving the image in response to the image processing instruction;

where the processing element associated with each processing bank directly read from and store to the local buffers of an adjacent processing bank, if any;

each processing bank receiving an image from the programmable input addresser via the first set of local buffers, each processing bank also receiving the image from an input block addresser via the second set of local buffers, each processing bank outputting the processed image to the programmable output addresser via the third set of local buffers, each bank also sending the processed image to the programmable output addresser via the fourth set of local buffers;

where the image processing instruction include an instruction that selectively designate one of the group consisting of the first level and the second level to receive the image from the programmable input block addresser as a selected input level, and a non-selected input level, such that simultaneously the selected input level receives the image while the processing element processes the image from the non-selected input level;

where the image processing instruction include an instruction that selectively designate one of the group consisting of the third level and the fourth level to output the processed image to an output block addresser as a selected output level, and a non-selected output level, such that simultaneously the selected output level sends the processed image data while the processing element processes the image from the non-selected output level; and

the programmable output addresser to receive the processed image from the selected output level, the output block addresser to output the processed image in accordance with a programmed predefined output pattern.

15. The image transform processor of claim 14 further comprising:

a Huffman decoder that decodes a encoded image into the image prior to sending the image to the SIMD processor; and

a Huffman encoder that encodes the image from the SIMD processor.

16. The image transform processor of claim 15 further comprising:

one or more Huffman control registers that causes the Huffman decoder to receive the encoded image, decode the encoded image to produce the image, and to provide the image to the SIMD processor, and that causes the Huffman encoder to receive the processed image from the SIMD processor, encode the processed image and output the encoded processed image.

17. The image transform processor of claim 14 wherein the SIMD processor further comprises:

a boolean accumulator that has a boolean flag, the controller having a conditional write instruction that overwrites a value in the local buffers based on a state of the boolean flag.

18. The image transform processor of claim 14, wherein each processing element includes a boolean accumulator that has a boolean flag, the controller causing the processing element to store a result of a comparison operation in the respective boolean flag.

19. The image transform processor of claim 14 wherein the SIMD processor further comprises:

a base pointer register that stores a base address (BA);

a horizontal counter configuration register that stores a horizontal count (Hcount);

a vertical counter configuration register that stores a vertical count (V count); and

a row configuration register that stores the length a row (Hdim), where the controller is responsive to an instruction that specifies a horizontal offset (Hoft) and a vertical offset (Voft), the controller generating an effective two-dimensional address (EA) to the input buffers and the output buffers in accordance with the following relationship:


20. The image transform processor of claim 14 further comprising:

an auxiliary bank including:

one local buffer of the first set of local buffers;

one local buffer of the second set of local buffers; and

one local buffer of the third set of local buffers, where the auxiliary bank is adjacent an end processing bank of the processing banks, the end processing bank directly reads data from and stores data to the local buffers of the auxiliary bank.

21. An image transform processor comprising:

a programmable input block addresser to retrieve image data in accordance with a first programmed predefined access pattern as retrieved image data;

a SIMD processor including a controller coupled to a memory storing a image processing instruction, the SIMD processor having processing elements and local buffers arranged in levels and processing banks, each processing bank being connected in parallel with other processing banks, the controller being coupled to each processing element and local buffer to control the operation of each processing element and local buffer such that the processing banks simultaneously respond to the same instruction from the controller, the SIMD processor being arranged as:

(i) a first level including a first set of local buffers;

(ii) a second level including a second set of local buffers;

(iii) a processing level including a set of processing elements that generates processed image data from image data stored in the local buffers in accordance with the image processing instructions;

(iv) a third level of a third set of local buffers;

(v) a fourth level of a fourth set of local buffers;

a programmable input buffer controller to store the retrieved image data in a specified level of the local buffers in accordance with a second programmed predefined access pattern;

where in the SIMD processor:

each bank including one local buffer of the first set of local buffers, one local buffer of the second set of local buffers, one processing element from a set of processing elements, one local buffer of the third set of local buffers, and one local buffer of the fourth set of local buffers, the processing element of each bank storing and retrieving image data from the local buffers in response to the instructions;

where the processing elements of the processing banks directly read data from and store data to the local buffers of an adjacent processing bank, if any;

each bank receiving image data from the input block addresser via the first set of local buffers, each bank also receiving image data from the input block addresser via the second set of local buffers, each bank outputting the processed image data to the output block addresser via the third set of local buffers, each bank also sending the processed image data to the output block addresser via the fourth set of local buffers;

where the image processing instructions include instructions that selectively designate one of the group consisting of the first level and the second level to receive image data from the input block addresser as a selected input level, the other level being a non-selected input level, such that simultaneously the selected input level receives image data while the processing element processes image data from the non-selected input level; and

where the image processing instructions include instructions that selectively designate one of the group consisting of the third level and the fourth level to output the processed image data to the output block addresser as a selected output level, the other level being a non-selected output level, such that simultaneously the selected output level sends the processed image data while the processing element processes image data from the non-selected output level; and

a programmable output buffer controller to cause the local buffers of the selected output level to output the processed image in accordance with a third programmed predefined access pattern as output image data; and

a programmable output block addresser to generate addresses to output the output image data in accordance with a fourth predefined access pattern.

22. An image transform processor for processing image data, comprising:

a means capable of receipt of the image data from a data source over a data path and processing the image data; and

a means that controls transfer of the image data from the data source to a programmable arithmetic processing means by providing a source address onto a source address path, the source address identifying the data source, the programmable arithmetic processing means comprising a first set of local buffers and a second set of local buffers, each buffer in the first set of local buffers alternately used for fetching input image data and each buffer in the second set of local buffers alternately used for storing output image data.

23. The image transform processor of claim 22 further comprising:

a means for controlling transfer of the image data from the programmable arithmetic processor to a memory by providing a write address onto a write path, the write address identifying a write address in the memory for storage of the image data.

24. An image transform processor for processing image data, the image transform processor comprising:

a means capable of receiving the image data from a memory over a data bus coupled between a programmable arithmetic processing means and the memory and processing the image data; and

a means for controlling transfer of the image data from the memory to the programmable arithmetic processing means by:

(i) means for providing a memory address onto a read address bus coupled between a programmable input addressing means and the memory, the memory address identifying a location of the image data within the memory, and

(ii) means for providing a storage address to the programmable arithmetic processing means, the storage address identifying a local buffer within the programmable arithmetic processing means for storage of the image data, the programmable arithmetic processing means comprising a first set of local buffers and a second set of local buffer, each buffer in the first set of local buffers alternately used for fetching input image data and each buffer in the second set of local buffers alternately used for storing output image data.
Description



BACKGROUND OF THE INVENTION

1. Technical Field

The invention relates generally to digital image processing, and particularly to a programmable image transform processor for digital image processing.

2. Related Art

In photographic cameras, the image-forming light is sensed and recorded directly on film. Unlike photographic cameras, the electronic still camera uses an electronic image sensor to sense the image-forming light and a separate recording medium to record and store the picture. Because the electronic still camera uses digital technology, the electronic still camera is a type of digital camera.

Typically the electronic image sensor in a digital camera is a solid-state device such as a charge-coupled device (CCD), charge injected device (CID) or a complimentary metal oxide semiconductor (CMOS) device. The image sensor connects to electronic interface circuitry which connects to a storage device and, optionally, to a display. A typical image sensor has many cells or pixels arranged along vertical and horizontal dimensions in a matrix. In response to light, the cells generate a charge or voltage which represents image information. The image sensor senses an image and stores image information, i.e., a charge or voltage, corresponding to the sensed light in the cells. Image sensors are made in many sizes such as, e.g., 400×300, 640×480, 1024×768 and 4096×4096 pixels. The image information stored in the cells is output serially from the image sensor using an arrangement of shift registers. The shift registers are arranged along vertical and horizontal dimensions and are coupled to the cells. The cells and shift registers require timing, or clock signals, having specific timing requirements, to output the image information. Each type of image sensor has its own unique timing requirements. Typically, a single image sensor requires many clock signals to control the flow of image information in both the horizontal and vertical dimensions. The clock signals must be synchronized. For example, to output image information from a 640×480 CCD requires 480 vertical shifts and 640 horizontal shifts for each vertical shift. Within a single dimension, the clock signals to control the flow of image information have different phases that must be synchronized. Furthermore, shifting the information out of the image sensor requires timing signals to synchronize the image sensor's operation with an analog signal processor (ASP) and an analog-to-digital (A/D) converter.

The image information sensed by each cell is also called a pixel. For example, a 640×480 CCD has about 307,200 pixels. After being converted to digital form, the image information (image data) is stored in a memory, typically an image memory. Image sensors having a larger numbers of cells produce higher quality images; however, the more pixel information that is available relates to the amount of processing and memory resources required to process the pixel information.

Typically, a digital signal processor processes the image data to improve the quality of the image. Various algorithms well-known in the art are used to improve the image quality of the image data. Because there is such a large amount of image data, the image data may be compressed before storage in a storage medium or memory.

Color imaging increases the complexity of processing the image data. In one method, the image sensor has a geometric arrangement of cells to respond to three colors, e.g., red, green and blue. Since each cell senses a particular color, various algorithms are used to interpolate the missing color information. Alternatively, two or more image sensors having different color sensitivity may be utilized and the image information combined.

In digital cameras, processing the data takes time. Analog image data from the image sensor is processed via the analog signal processor, converted into image data by the analog-to-digital converter and stored in memory. Furthermore, a digital signal processor processes the raw image data to improve the quality of the image. For color images that utilize a single image sensor, "missing" pixel data values must be interpolated and require even more processing time. Still images are further processed to compensate and correct for other errors introduced by the optical system and the image sensor. The compression of the image data adds even more time. The time required to acquire, process and compress the image data causes an unacceptable delay when acquiring consecutive images. The delay can take several seconds. This delay is a problem for photographers who need a continuous shooting capability to photograph a sequence of images in quick succession. Therefore a process and apparatus are needed to reduce the delay between consecutive pictures.

Typically, a digital camera has hardware that implements a single digital image processing procedure or algorithm. If the procedure is changed, the hardware must be redesigned, which is time consuming and expensive. Therefore, there is a need in the art for a digital image processing procedure or device that is easily and quickly modified and that supports numerous digital signal processing procedures using the same hardware. The digital image processing procedure or device should also minimize the processing time to allow consecutive pictures to be taken in quick succession.

In addition, depending on the environmental factors, such as lighting, the image processing algorithm should be selected or modified to produce the desired image quality. Furthermore, there is a need to dynamically modify the image processing algorithm during the image acquisition process.

As the size of the image sensors increases, the amount of image information to be processed increases. In addition, as image processing algorithms become increasingly sophisticated, complex processing of the image data consumes more time. Therefore, there is a need to reduce the image processing time.

SUMMARY

The programmable image transform system may be broadly conceptualized as a device that separates address generation from arithmetic manipulation, thus improving the overall efficiency of the device while reducing the time needed to perform image processing. For example, an image transform processor that processes digital images may utilize an architecture that includes a programmable arithmetic processor and a programmable input addresser. The programmable arithmetic processor may be capable of receiving digital image data from a memory, such as a read only memory (ROM), electronic erasable programmable read only memory (EEPROM), flash memory or non-volatile memory, over a data bus for processing. The programmable input addresser controls the transfer of image data from the memory to a programmable arithmetic processor. The programmable input addresser provides: (i) a memory address to a read address bus coupled between the programmable addresser and the memory, and (ii) a storage address to the programmable arithmetic processor. The memory address identifies a location of the digital image data within the memory. The storage address identifies a local buffer within the programmable arithmetic processor for storage of the digital image data.

The invention also relates to retrieval and storage of image data into a memory while other image data is being processed. The retrieved image data is placed in a set of local buffers. To increase the speed of image processing, a single-instruction multiple-data (SIMD) processor processes the image data in the set of local buffers and outputs the processed image data to another set of local buffers. For example, in an image transform processor having buffers, a first portion of input image data is provided in a first one of the buffers. A first processing operation is performed on the first portion of the input image data to define a first processed image data. The first processed image data is stored in a second buffer. A second processing operation is performed on the first processed image data to define a second processed image data. While the second processing operation is performed on the first processed image data, a second portion of the input image data is provided in the first buffer.

The invention also provides for using the image transform processor for processing video or other real-time data streams. The image transform processor has four buffer that are used for storing the video or real-time data. First and second levels of buffers are alternately used for fetching input data, while third and fourth levels of buffers are alternately used for storing output data. Thus, image data can be input, processed and output in every clock cycle.

Other systems, methods, features and advantages of the invention will be or will become apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the accompanying claims.

BRIEF DESCRIPTION OF THE FIGURES

The components in the figures are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the invention. Moreover, in the figures, like reference numerals designate corresponding parts throughout the different views.

FIG. 1 is a block diagram of an electronic digital camera embodying an exemplary image transform processor.

FIG. 2 is a block diagram of the digital camera of FIG. 1.

FIG. 3 is a diagram of an exemplary image sensor suitable for use with the image transform processor.

FIG. 4 is a block diagram of a preferred embodiment of the image transform processor of FIG. 2.

FIG. 5 is a block diagram of a programmable block addresser of the image transform processor of FIG. 4.

FIG. 6 is a block diagram of the topology of the arithmetic processing block of FIG. 4.

FIGS. 7A and 7B are exemplary timing diagrams showing the overlapping of data retrieval, data processing, and data storage operations in the arithmetic processing block of FIGS. 4 and 6.

FIG. 8 is a diagram of an exemplary two-dimensional array of working blocks.

FIG. 9 is a diagram of exemplary image data showing the pixel blocks of an exemplary working block.

FIG. 10 is an example of a working block that includes adjacent pixel blocks in the image data.

FIG. 11 is a diagram showing overlapping working blocks in the image data

FIGS. 12A and 12B are examples of working blocks that include dispersed pixel blocks in the image data.

FIG. 13 is a block diagram of the buffer owner register and next owner register of the arithmetic processing block of FIG. 6.

FIG. 14 is a block diagram of an input buffer controller of FIG. 4.

FIG. 15 is a block diagram of a SIMD processor pipeline.

FIG. 16 is a block diagram of a SIMD processor of the arithmetic processing block of FIGS. 4 and 6.

FIG. 17 is a block diagram of pointer configurations used by an instruction word.

FIG. 18 is a diagram of a circuit that generates an effective address for an instruction.

FIG. 19 is a block diagram of a multiplexor/latch stage of the SIMD processor pipeline of FIG. 15.

FIG. 20 is a block diagram of an arithmetic stage of the SIMD processor pipeline of FIG. 15.

FIG. 21 is a block diagram of a descale/write stage of the SIMD processor of FIG. 15.

FIG. 22 is a block diagram of an accumulator descaler of the arithmetic stage of the processing element of FIG. 21.

FIG. 23 is a block diagram of an arithmetic logic unit descaler of the arithmetic stage of the processing element of FIG. 20.

FIG. 24 is a block diagram showing the expandable topology of the arithmetic processing block of FIG. 6.

FIG. 25 is a block diagram of an arithmetic processing block of FIG. 6 having multiple master controllers.

FIG. 26 is a flow diagram of an exemplary image transform process of the image transform processor of FIG. 4.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In FIG. 1, a block diagram of a digital camera 100 embodying the image transform processor is shown. A lens 102 transmits the image-forming light 104 onto an electronic image sensor (image sensor) 106. The image sensor 106 is in the digital camera and located at the focal plane of the lens. The image sensor is typically a charge-coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) sensor. Image sensors differ in the arrangement of the cells within the image sensor and the type of charge readout. The image sensor 106 connects to electronic interface circuitry 108. The electronic interface circuitry 108 also connects to a storage device 110 and an optional display 112. The electronic interface circuitry 108 controls the storage device 110 and stores the image sensed by the image sensor 106. The storage device 110 can include a tape drive, a disk drive, such as a floppy disk drive, hard disk drive, optical disk drive or magneto-optical disk drive, or an integrated circuit card with RAM, DRAM, or EEPROM, or non-volatile memory. The storage device 110 may be inside the digital camera 100 or attached to the digital camera externally. The electronic interface circuitry 108 may also control the display 112 that displays the image sensed by the image sensor 106. The display 112 can be inside the digital camera or attached to the camera externally. The electronic interface circuitry can operate the display 112 in either a viewfinder mode or a review (i.e., stored image viewing mode).

In FIG. 2, a block diagram of the electronic interface circuitry of the digital camera of FIG. 1 is shown. A microprocessor (RISC) 202 is coupled to a memory controller 203a, a programmable timing generator 204, a frame capture processor 205, a programmable image transform processor 206, a storage medium 208 and a programmable display controller 209. The memory controller 203a is connected to a memory 203. The programmable display controller 209 is coupled to a display 210. The image sensor 106 is coupled to an analog signal processor (ASP) 211 which connects to the analog to digital converter (A/D converter) 212. The programmable timing generator 204 is coupled to the image sensor 106, ASP 211, the A/D converter 212, the frame capture processor 205, and the microprocessor(RISC) 202. The programmable image transform processor 206 and other elements read data from and write data to the memory 203 via the memory controller 203a. Preferably, the memory 203 is a high-speed DRAM used to store the digital image data. The A/D converter 212 supplies digital image data to the programmable image transform processor 206 that stores the data in the memory 203. The timing generator 204 supplies timing signals to the programmable image transform processor 206 and A/D converter 212 to synchronize the transfer of digital image data between the A/D converter 212 and the frame capture processor 205. The frame capture processor 205 supplies the digital image data to the programmable image transform processor 206. Alternately, the frame capture processor 205 stores the image data from the sensor directly to the memory 203, and the programmable image transform processor 206 fetches that data from the memory 203 for further processing. The frame capture processor 205 supports real-time windowing, histogram, gamma, white balance and auto-focus functions.

The microprocessor(RISC) 202 executes a camera operation procedure that is stored in memory 203. Alternatively the camera operation procedure can be stored in a read-only-memory(ROM), or loaded into the memory 203 from the storage medium 208. Further, in alternate embodiments, the RISC microprocessor may be substituted a different type of controller, such as a typical microprocessor, digital signal processor, application specific integrated circuit (ASIC), phase array logic (PAL), discrete circuits functioning as a controller. The camera operation procedure comprises an image acquisition procedure. When a user presses a store-image button (not shown), the camera operation procedure causes the image sensor 106 to acquire an image. The image acquisition procedure causes the microprocessor (RISC) 202 to control the timing generator 204 to generate vertical and horizontal clock signals for use by the image sensor 106. The image sensor 106 outputs image as a series of analog signals corresponding to the color and intensity of the image sensed by each cell. The sensed image information is then sent to the ASP 211 and to the A/D converter 212.

The ASP 211 processes the sensed image information before input to the A/D converter 212. For example, the ASP has a programmable amplifier with adjustable gain, and also reduces or eliminates noise, such as reset noise, from the sensed image information using methods well known to those in the art, such as correlation-double-sampling.

The A/D converter 212 then converts the analog sensed image information into image data. In an alternative embodiment, the ASP 211 is absent and no pre-processing of the sensed image data occurs.

The image data is stored in memory 203. Execution of the camera operation procedure by the microprocessor (RISC) 202 causes the image data to be processed by the programmable image transform processor 206. The processed image data is compressed and recorded in memory 203, on a storage medium 208 or transferred to a programmable display controller 209 for output to a display 210.

In FIG. 3, a block diagram of an exemplary image sensor 302 is shown. The image sensor 302 can be a CCD or CMOS device. The image sensor 302 connects to the analog signal processor(ASP) 304 and the A/D converter 306. The image sensor 302 has cells 308, vertical shift registers 312 and a horizontal shift register 314. Each cell 308 absorbs light and converts the light energy into an electrical charge. The amount of charge is a measure of the amount of light energy or radiation absorbed by the image sensor 302. The size of the image sensor 302 determines the quality of the image. The quality of the image improves as the number of cells 308 increases. Image sensors are available in many sizes including 400×300, 640×480, 1024×768, and 4096×4096 cells.

The components of the image sensor 302 are arranged along horizontal and vertical dimensions. An array 310 of cells 308 is arranged in the vertical dimension. The vertical shift register 312 has register location 316 for storing the charge sensed by the cells 308. Each cell 308 in the array of cells 310 connects to a corresponding register location 316 in the vertical shift register 312.

Free charges move from regions of higher potential to regions of lower potential. By alternating the voltage on the electrodes (not shown) connected to the cells 308 and the register locations 316 and 318 of the shift registers 312 and 314 in proper phase, a charge packet, i.e., the charge from the cell 308, can be moved from the cell 308 to a register location 316 in the shift register 312. The charge packet is then moved from one register location to another register location in the shift registers 312 and 318 until finally output by the image sensor 302.

When appropriate voltages are applied to the cell 308 and the corresponding register location 316 in the vertical shift register 312, the charge generated in the cell 308 is transferred out of the cell 308 to the corresponding register location 316 in the vertical shift register 312. The programmable timing generator is programmed to output timing or clock signals to cause the transfer of the charge to occur at synchronized times. When appropriate voltages are applied to adjacent elements of the vertical shift register 312, the charge is transferred from to the next registration location. The last element or output of each vertical shift register 312 connects to a corresponding register location 318 in the horizontal shift register 314. When appropriate voltages are applied to the last register location of the vertical shift register 312 and the corresponding register location 318 of the horizontal shift register 314, the charge is transferred from the vertical shift register 312 to the horizontal shift register 314. When appropriate voltages are applied to adjacent register location of the horizontal shift register 314, the charge is transferred from one register location to another register location until finally outputted. The output of the horizontal shift register 314 connects to the ASP 304 via an output amplifier 320.

Color imaging is more complex. In one method, the image sensor 302 has a geometric arrangement of cells to respond to three colors, e.g., red, green and blue. Alternatively, two or more image sensors having different color sensitivity are used. The programmable image transform processor of the present invention works with both methods of color imaging. The programmable image transform processor performs image transform operations on input data after it has been digitized by the A/D converter 306.

In FIG. 4, a block diagram of an embodiment of the programmable image transform processor (ITP) 206 of FIG. 2 is shown. Image transformation and compression operations, such as discrete wavelet transforms (DWT) and discrete cosine transforms (DCT) perform two main types of computation: address calculation and arithmetic computation. Devices such as digital cameras store images, at least temporarily, in solid-state memory such as a DRAM. The memory is organized into pages of image data. To acquire image data from the memory, an address is generated. After generating the address and acquiring the desired image data, the image data is further manipulated. The ITP 206 separates the address calculation from the arithmetic computation using parallel hardware. The ITP collects input image data and output image data in bursts when accessing the same memory page.

The ITP 206 has inputs and outputs for connecting to a read address bus, a read data bus, a write address bus, a write data bus and control signals. The ITP 206 connects to the memory, the A/D converter, the timing generator and the microprocessor (RISC). A DMA controller may be used to access the high speed image memory. The ITP 206 may a be dynamically configurable to provide many pipelined data processing paths. In an addressing block 410, a data path mode register 412 controls an input data multiplexor 414 and an output data multiplexor 416 to control the flow of image data to and from a programmable arithmetic processing block 420. The programmable arithmetic processing block 420 receives the image data, processes the image data and outputs the processed image data. The microprocessor (RISC) of the digital camera loads the data path mode register 412 with a specified data flow path information.

In response to the data flow path information being loaded in the data path mode register 412, the input data multiplexor 414 supplies data from the microprocessor (RISC), from a frame capture processor, a Huffman decoder 422, and directly from the DRAM. The frame capture processor provides an analysis of the image data as it is received from the programmable timing generator. The Huffman decoder 422 decodes compressed image data that was stored using the Joint Photographics Experts Group (JPEG) compression format in the external memory.

In response to the data in the data path mode register 412, the output data multiplexor 416 outputs data from the microprocessor (RISC), processed image data from the programmable arithmetic processing block 420, or encoded processed image data from a Huffman encoder 424. The Huffman encoder 424 compresses data from the programmable arithmetic processing block 420 using a JPEG compression format.

Table one, below, summarizes the data flow for various data path configuration settings of the data path mode bits of the data path mode register 412. In table one, the term "ITPBUF" refers to the programmable arithmetic processing block 420, and in particular to local buffers in the programmable arithmetic processing block 420.
TABLE 1
Data Path Configuration Settings
Buffer Owners
PE = 0, IBC = 1,
Data Path OBC = 2, RISC = 3
Mode Mode Bits Data Flow L0 L1 L2 L3
Video 000100 FCP to ITPBUF to 1/0 1/0 0/2 0/2
DRAM
Frame 000000 DRAM to ITPBUF to 1/0 1/0 0/2 0/2
Blend DRAM
Process 000000 DRAM to ITPBUF to 1/0 0 0 0/2
DRAM
Process/En 000001 DRAM to ITPBUF to 1/0 0 0 0/2
code HUFF to DRAM
Decode/ 000010 DRAM to ITPBUF to 1/0 0 0 0/2
Process HUFF to DRAM
RISC/ 111000 RISC to ITPBUF to 3 3 3 3
RISC RISC
RISC 010000 DRAM to ITPBUF to 3/0 0 0 0/3
replace RISC to DRAM
IBA
RISC 001000 DRAM to RISC to 3/0 0 0 0/3
Replace ITPBUF to DRAM
OBA
RISC 011000 DRAM to RISC to 1/0 0 0 0/3
replace ITPBUF to RISC to
IBA, OBA DRAM
IBA help 101000 DRAM to ITPBUF to 3 3 3 3/2
RISC DRAM
OBA help 110000 RISC to ITPBUF to 3 3 3 3/2
RISC DRAM
IBA & 100000 DRAM to ITPBUF to 1/3 3 3 3/2
OBA help RISC to ITPBUF to
RISC DRAM


The programmable addressing block 410 generates addresses and coordinates handshaking signals to retrieve image data from and to store data to the external memory. Image data does not flow through the programmable addressing block 410 but flows to the local buffers of the programmable arithmetic processing block 420. The programmable addressing block 410 supplies control signals to coordinate the transfer of image data with the programmable arithmetic processing block 420.

The programmable addressing block 410 has an input addresser 430 and an output addresser 440. In the input addresser 430, an input block addresser (IBA) 442 provides addresses to a read address bus to request data from an external memory, such as a DRAM, using handshaking control signals, such as read address available (R_Address Avail) and read address acknowledge (R_Address Ack). An input buffer controller (IBC) 444 supplies addressing information to the local buffers of the programmable arithmetic processing block 420 to store the requested image data from the external memory on a read data bus in buffers in the programmable arithmetic processing block 420 using handshaking signals. The handshaking signals are read data available signal (R_Data avail) and read data acknowledge signal (R_Data ack).

In the output addresser 440, an output block addresser (OBA) 446 provides addresses to a write address bus to store data in the external memory using handshaking control signals such as write address available (W_Address Avail) and write address acknowledge (W_Address Ack). An output buffer controller (OBC) 448 supplies addressing information to the local buffers of the programmable arithmetic processing block 420 to transfer the image data from the local buffers of the programmable arithmetic processing block 420 to the external memory. The output buffer controller 448 uses handshaking signals to retrieve the processed image data from the programmable arithmetic processing block 420. The OBC 448 uses handshaking signals, such as write data available signal (W_Data avail) and write data acknowledge signal (W_Data ack), to coordinate the transfer of data from the local buffers of the programmable arithmetic processing block 420 to the external memory.

The programmable arithmetic processing block 420 receives the image data, processes the image data and outputs the processed image data. A SIMD master controller 450 controls the operation of the programmable arithmetic processing block 420. Both the programmable arithmetic processing block 420 and the SIMD master controller 450 communicate with the camera's microprocessor (RISC) 202 (FIG. 2).

The Addressers

The input block addresser (IBA) 442 and output block addresser (OBA) 446 supply addresses to each address bus. The IBA 442 provides addresses of requested data to supply to the read data bus, i.e., data to be operated on by the programmable arithmetic processing block 420. In particular, the IBA 442 generates DRAM memory word addresses for two-dimensional blocks or lines of image data. The OBA 448 provides addresses of processed data to write to the write data bus, such as image data to be stored in the image memory.

The Input Block Addresser

Referring to FIG. 5, the input block addresser 442 is configurable (i.e. programmable). The input block addresser 442 has a microsequencer 460, a control store or instruction memory 462, and pointer registers A, B, C and D 464. The input block addresser 442 has four loop counters 466, four general purpose registers 468 and four pointer registers 464. The pointer registers A, B, C and D 464 generate the input address which is output to the read address bus by the multiplexor 476. The input block addresser 442 also has a base page register 470 and a stack 472 that is part of the control store 462 and a stack pointer 474. The control store 432 is typically implemented using a static RAM array.

The microsequencer 460 is coupled to the control store 462 and the pointer registers 464 and generates the input data addresses to access the memory, such as a DRAM, storing the image data. The microsequencer 460 stores the addresses in the pointer registers 464. The addresses in the pointer registers 464 are utilized to access the DRAM memory. Data requested by the input block addresser 442 is stored in a buffer in the programmable arithmetic processing block 420 (FIG. 4). A multiplexor 476 selects the address in one of the pointer registers 464 to output to the read address bus based on commands executed by the microsequencer 460.

The control store 462 stores an input block address procedure 478 to be executed by the input addresser microsequencer 460. The input block address procedure 478 has a sequence of address generation instructions.

The input block addresser 442 has a data request command to initiate read operations to the image memory and to supply an absolute address to the read address bus. The microsequencer 460 c


Free Web Sudoku Puzzles.
Solve with your browser.
      6         7
  9     5   4    
      9     1    
  5     1 6 2   4
  4 8       3 5  
6   7 5 3     9  
    4     9      
    9   7     8  
8         1      
What is it?



Add Your Site · Terms Of Service · Privacy Policy


DISCLAIMER
Linkgrinder is a free service that searches the Internet and indexes all files found so that you may search quickly and easily for shared files. These files are created and made available individually by users whose identity we are not aware of and who we have no control over. In essence we function like a search engine tool; these files ARE NOT STORED OR SERVED BY OUR NETWORK. We are not responsible for any materials obtained by using our service. We do not monitor any of the contents of these files. These files may contain viruses, illegal materials, materials inappropriate for minors, offensive files and the like. BY USING OUR SERVICE, YOU ASSUME FULL RESPONSIBILITY FOR DOWNLOADING THESE MATERIALS AND WILL INDEMNIFY US FOR ANY DAMAGES THAT MAY BE INCURRED.

For More Specific Information VIEW OUR TERMS OF SERVICE.

Thank you and Enjoy!