Patents by Inventor Hisham ElShishiny
Hisham ElShishiny has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 9274965Abstract: The present disclosure is directed towards a prefetch controller configured to communicate with a prefetch cache in order to increase system performance. In some embodiments, the prefetch controller may include an instruction lookup table (ILT) configured to receive a first tuple including a first instruction ID and a first missed data address. The prefetch controller may further include a tuple history queue (THQ) configured to receive an instruction/stride tuple, the instruction/stride tuple generated by subtracting a last data access address from the first missed data address. The prefetch controller may further include a sequence prediction table (SPT) in communication with the tuple history queue (THQ) and the instruction lookup table. The prefetch controller may also include an adder in communication with the instruction lookup table (ILT) and the sequence prediction table (SPT) configured to generate a predicted prefetch address and to provide the predicted prefetch address to a prefetch cache.Type: GrantFiled: December 15, 2008Date of Patent: March 1, 2016Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Ahmed El-Mahdy, Hisham Elshishiny
-
Patent number: 8270759Abstract: A method and system for transforming a video image from a High Dynamic Range (HDR) image on an array of pixels to a Low Dynamic Range (LDR) image. An old luminance generated from a color space of the HDR image is scaled and segmented into stripes. Each stripe has at least one row of the array. A target zone surrounding a current pixel in each stripe is determined from a search strategy selected from a linear search strategy and a zone history-based search strategy. A convolution of the scaled luminance at a current pixel of each stripe is computed using a kernel specific to the target zone. The convolution is used to convert the stripes to tone-mapped luminance stripes which are collected to form a tone mapped luminance pixel array that is transformed to the color space to form the LDR image. The LDR image is stored and/or displayed.Type: GrantFiled: June 16, 2008Date of Patent: September 18, 2012Assignee: International Business Machines CorporationInventors: Ahmed Hazem Mohamed Rashid El-Mahdy, Hisham ElShishiny
-
Patent number: 8160388Abstract: A method and system for selectively transforming a spatially varying optical characteristic (F) of an image in a pixel array. The pixel array is segmented into stripes of contiguous rows. A two-dimensional convolution C(x, y) of F is determined at only selected pixels (x, y). C(x, y) is a function of a product of a horizontal kernel h(x) and a vertical kernel v(y). Determining C(x, y) at each selected pixel (x, y) includes determining n vertical convolutions, wherein each vertical convolution is equal to a scalar product of F and v(y) in a kernel space surrounding (x,y), forming an array (V) from the n vertical convolutions, and computing C(x,y) as a scalar product of V and a constant horizontal vector (H) formed from h(x). The stripes are collected to form a transformed image which is stored and/or displayed. A cache facilitates selective reuse of vertical convolutions for determining C(x,y).Type: GrantFiled: June 17, 2008Date of Patent: April 17, 2012Assignee: International Business Machines CorporationInventors: Ahmed Hazem Mohamed Rashid El-Mahdy, Hisham ElShishiny
-
Patent number: 8056086Abstract: A method and system for load balancing the work of NP processors (NP?3) configured to generate each image of multiple images in a display area of a display device. The process for each image includes: dividing the display area logically into NP initial segments ordered along an axis of the display area; assigning each processor to a corresponding initial segment; assigning a thickness to each initial segment; simultaneously computing an average work function per pixel for each initial segment; generating a cumulative work function from the average work function per pixel for each initial segment; partitioning a work function domain of the cumulative work function into NP sub-domains; determining NP final segments of the display area by using the cumulative work function to inversely map boundaries of the sub-domains onto the axis; assigning each processor to a final segment, and displaying and/or storing the NP final segments.Type: GrantFiled: May 19, 2008Date of Patent: November 8, 2011Assignee: International Business Machines CorporationInventors: Ahmed Hazem Mohamed Rashid El-Mahdy, Hisham ElShishiny
-
Patent number: 7979672Abstract: A method and system for transposing a multi-dimensional array for a multi-processor system having a main memory for storing the multi-dimensional array and a local memory is provided. One implementation involves partitioning the multi-dimensional array into a number of equally sized portions in the local memory, in each processor performing a transpose function including a logical transpose on one of said portions and then a physical transpose of said portion, and combining the transposed portions and storing back in their original place in the main memory.Type: GrantFiled: July 25, 2008Date of Patent: July 12, 2011Assignee: International Business Machines CorporationInventors: Ahmed H. M. R. El-Mahdy, Ali A. El-Moursy, Hisham ElShishiny
-
Publication number: 20100153653Abstract: The present disclosure is directed towards a prefetch controller configured to communicate with a prefetch cache in order to increase system performance. In some embodiments, the prefetch controller may include an instruction lookup table (ILT) configured to receive a first tuple including a first instruction ID and a first missed data address. The prefetch controller may further include a tuple history queue (THQ) configured to receive an instruction/stride tuple, the instruction/stride tuple generated by subtracting a last data access address from the first missed data address. The prefetch controller may further include a sequence prediction table (SPT) in communication with the tuple history queue (THQ) and the instruction lookup table. The prefetch controller may also include an adder in communication with the instruction lookup table (ILT) and the sequence prediction table (SPT) configured to generate a predicted prefetch address and to provide the predicted prefetch address to a prefetch cache.Type: ApplicationFiled: December 15, 2008Publication date: June 17, 2010Inventors: AHMED EL-MAHDY, HISHAM ELSHISHINY
-
Publication number: 20100023728Abstract: A method and system for transposing a multi-dimensional array for a multi-processor system having a main memory for storing the multi-dimensional array and a local memory is provided. One implementation involves partitioning the multi-dimensional array into a number of equally sized portions in the local memory, in each processor performing a transpose function including a logical transpose on one of said portions and then a physical transpose of said portion, and combining the transposed portions and storing back in their original place in the main memory.Type: ApplicationFiled: July 25, 2008Publication date: January 28, 2010Applicant: International Business Machines CorporationInventors: Ahmed H.M.R. El-Mahdy, Ali A. El-Moursy, Hisham ElShishiny
-
Publication number: 20090310887Abstract: A method and system for selectively transforming a spatially varying optical characteristic (F) of an image in a pixel array. The pixel array is segmented into stripes of contiguous rows. A two-dimensional convolution C(x, y) of F is determined at only selected pixels (x, y). C(x, y) is a function of a product of a horizontal kernel h(x) and a vertical kernel v(y). Determining C(x, y) at each selected pixel (x, y) includes determining n vertical convolutions, wherein each vertical convolution is equal to a scalar product of F and v(y) in a kernel space surrounding (x,y), forming an array (V) from the n vertical convolutions, and computing C(x,y) as a scalar product of V and a constant horizontal vector (H) formed from h(x). The stripes are collected to form a transformed image which is stored and/or displayed. A cache facilitates selective reuse of vertical convolutions for determining C(x,y).Type: ApplicationFiled: June 17, 2008Publication date: December 17, 2009Inventors: Ahmed Hazem Mohamed Rashid El-Mahdy, Hisham ElShishiny
-
Publication number: 20090310015Abstract: A method and system for transforming a video image from a High Dynamic Range (HDR) image on an array of pixels to a Low Dynamic Range (LDR) image. An old luminance generated from a color space of the HDR image is scaled and segmented into stripes. Each stripe has at least one row of the array. A target zone surrounding a current pixel in each stripe is determined from a search strategy selected from a linear search strategy and a zone history-based search strategy. A convolution of the scaled luminance at a current pixel of each stripe is computed using a kernel specific to the target zone. The convolution is used to convert the stripes to tone-mapped luminance stripes which are collected to form a tone mapped luminance pixel array that is transformed to the color space to form the LDR image. The LDR image is stored and/or displayed.Type: ApplicationFiled: June 16, 2008Publication date: December 17, 2009Inventors: Ahmed Hazem Mohamed Rashid El-Mahdy, Hisham ElShishiny
-
Publication number: 20090288096Abstract: A method and system for load balancing the work of NP processors (NP?3) configured to generate each image of multiple images in a display area of a display device. The process for each image includes: dividing the display area logically into NP initial segments ordered along an axis of the display area; assigning each processor to a corresponding initial segment; assigning a thickness to each initial segment; simultaneously computing an average work function per pixel for each initial segment; generating a cumulative work function from the average work function per pixel for each initial segment; partitioning a work function domain of the cumulative work function into NP sub-domains; determining NP final segments of the display area by using the cumulative work function to inversely map boundaries of the sub-domains onto the axis; assigning each processor to a final segment, and displaying and/or storing the NP final segments.Type: ApplicationFiled: May 19, 2008Publication date: November 19, 2009Inventors: Ahmed Hazem Mohamed Rashid El-Mahdy, Hisham ElShishiny
-
Publication number: 20060293880Abstract: A method for building and contracting a linguistic dictionary, the linguistic dictionary comprising a list of surface forms and a list of normalized forms, each normalized form being associated with a surface form, the method comprising the steps of: comparing each character of a surface form with each character of the surface form's normalized form; in response to the comparing step, determining an edit operation for each character compared; and generating a transform code from the set of the edit operations in order to transform the surface form to its normalized form.Type: ApplicationFiled: December 27, 2005Publication date: December 28, 2006Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Hisham Elshishiny, Edel Greevy, Pai-Fang Hsiao, Alexey Nevidomskiy, Alexander Troussov, Pavel Volkov
-
Publication number: 20060066613Abstract: The present invention is directed to a method and system and computer program for decomposing a triangle mesh representing the surface of a digital object model, reconstructed from 3D scanning data, into a small number of height-field patches (partitions) (in the order of the number of the original scans) with reasonable angular variations with the direction from which the viewer is looking at the digital object and with boundaries as regular as possible, in order to map a texture. The present method uses the original scan information (even when scans are divided into two or more connected meshes), but without selecting a single scan per mesh area.Type: ApplicationFiled: September 27, 2005Publication date: March 30, 2006Inventor: Hisham Elshishiny