Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Method and circuits to extract data from memories

IP.com Disclosure Number: IPCOM000013363D
Original Publication Date: 2000-Aug-01
Included in the Prior Art Database: 2003-Jun-18
Document File: 2 page(s) / 39K

Publishing Venue

IBM

Abstract

Disclosed is a method to extract data from memories, at several locations, and more particularly to extract blocks in 2-dimensional arrays of values (e.g. images) stored as a sequence of numbers. It consists in preprocessing the mask used for the extraction that could represent any shape (e.g. a square of 8x8 pixels) and, combined with locations, provides blocks of data. Assuming that, th (Point i .x,Point i .y) are the relative coordinates of the i point of the mask, th (Location j .x,Location j.y) are the coordinates of the j

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 93% of the total text.

Page 1 of 2

Method and circuits to extract data from memories

Disclosed is a method to extract data from memories, at several locations, and more particularly to extract blocks in 2-dimensional arrays of values (e.g. images) stored as a sequence of numbers. It consists in preprocessing the mask used for the extraction that could represent any shape (e.g. a square of 8x8 pixels) and, combined with locations, provides blocks of data. Assuming that,

th(Pointi.x,Pointi .y) are the relative coordinates of the i point

of the mask,

th(Locationj.x,Locationj.y) are the coordinates of the j

position where one block must be extracted,

thPtr ij is the memory pointer corresponding to the i mask

thpoint of the j position where one block must be extracted,

W is the width of the array :

         Ptrij=(Pointi .x+Locationj.x)+(Pointi .y+Locationj.y)*W Thus, the pseudo c-code to extract blocks looks like:

For (i=0;i<Nb_Points;i++){

    Oi=Pointi .x+(Pointi .y)*W} For (j=0;j<Nb_Locs;j++){

    Bj=Locationj.x+(Locationj.y)*W} For (j=0;j<Nb_Locs;j++){

For (i=0;i<Nb_Points;i++){

Ptrij=Oi + Bj}}

thwhere Oi is the mask offset of its i point, Bj is the base address of

ththe j location where a block has to be extracted, Nb_Points is the number of points contained in the mask and Nb_Locs represents the number of locations at which a block must be extracted. It is

1

Page 2 of 2

to be understood that if there is only one array in which blocks have to be extracted and these blocks must be extracted only once, the evaluati...