US8269786B2 - Method for reading and writing image data in memory - Google Patents

Method for reading and writing image data in memory Download PDF

Info

Publication number
US8269786B2
US8269786B2 US12/474,507 US47450709A US8269786B2 US 8269786 B2 US8269786 B2 US 8269786B2 US 47450709 A US47450709 A US 47450709A US 8269786 B2 US8269786 B2 US 8269786B2
Authority
US
United States
Prior art keywords
columns
data
image data
row
section
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related, expires
Application number
US12/474,507
Other languages
English (en)
Other versions
US20090295817A1 (en
Inventor
Chunjie Yu
Wentao Ye
Tsuyoshi Morimoto
Hirofumi Odaguchi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Assigned to RICOH COMPANY, LTD. reassignment RICOH COMPANY, LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MORIMOTO, TSUYOSHI, ODAGUCHI, HIROFUMI, YE, WENTAO, YU, CHUNJIE
Publication of US20090295817A1 publication Critical patent/US20090295817A1/en
Application granted granted Critical
Publication of US8269786B2 publication Critical patent/US8269786B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement

Definitions

  • the present invention generally relates to a method for reading and writing image data in a memory, and more specifically, to a method for inputting image data in a memory in a data stream and outputting the image data from the memory in data blocks.
  • Image data are expressed in a data stream generated by progressive scanning.
  • Many standard algorithms for image processing for example, JPEG, M-JPEG, DV, MPEG2, MPEG4, H.261, and H.263 employ an encoding technique using data blocks as processing units.
  • image processing image data expressed in a data stream are stored and then outputted to an encoder in data block units. Therefore, it is necessary to input data in a memory in a data stream and then output the data from the memory in data blocks.
  • Data are sequentially written in 0th to 7th rows by a row and column sequential access technique (hereinafter also referred to as a first technique).
  • a row and column sequential access technique By the row and column sequential access technique, data are first written sequentially in, for example, columns of the 0th row, then sequentially written in columns of the 1st row, and in subsequent rows in this manner.
  • Data are sequentially written in 8th to 15th rows by the first technique, and the data of the 0th to 7th rows are read out in units of data blocks of 8 ⁇ 8 pixels. That is, all the data in the 0th to 7th rows are read out by sequentially reading a data block of ⁇ 0th to 7th rows; 0th to 7th columns ⁇ , a data block of ⁇ 0th to 7th rows; 8th to 15th columns ⁇ , a data block of ⁇ 0th to 7th rows; 16th to 23rd columns ⁇ . . . and the like. Since the data are written and read with the same speed, writing of the data in the 8th to 15th rows is finished at the same time as reading of the data of the 0th to 7th rows is finished.
  • Data are sequentially written in the 0th to 7th rows by the first technique, and the data of the 8th to 15th rows are read out in units of data blocks of 8 ⁇ 8 pixels. That is, first, a data block of ⁇ 8th to 15th rows; 0th to 7th columns ⁇ is read, then a data block of ⁇ 8th to 15th rows; 8th to 15th columns ⁇ is read, a data block of ⁇ 8th to 15th rows; 16th to 23rd columns ⁇ is read . . . and the like until all the data in the 8th to 15th rows are read out. Then, the procedure returns to step 2.
  • each cell in rows and columns of the memory is defined to have two bytes instead of one byte, for convenience.
  • VGA Video Graphics Array
  • FIGS. 1A to 1F show specific processes of the conventional method for reading and writing data in a memory.
  • each cell in FIGS. 1A to 1F indicates two bytes, representing data of one pixel.
  • FIG. 1A shows an initial state of writing data, in which data start to be written in a cell at a 0th row and a 0th column and then written in cells along the 0th row.
  • FIG. 1B shows where writing of the data in the 0th to 7th rows is finished.
  • FIG. 1C shows where data start to be written in the 8th row, and at the same time the written data start to be read out.
  • the data are read out in units of data blocks of 8 ⁇ 8 pixels by the first technique.
  • FIG. 1D shows where writing of the data in the 8th to 15th rows is going to be finished. At this time, the last data block of ⁇ 0th to 7th rows; 632nd to 639th columns ⁇ in the 0th to 7th rows is being read out as well.
  • FIG. 1E shows where data start to be written again from the cell at the 0th row and 0th column, and at the same time, the data of the 8th to 15th rows are read out in units of data blocks of 8 ⁇ 8 pixels, by the first technique.
  • FIG. 1F shows where writing of data in the 0th to 7th rows is going to be finished. At this time, the last data block of ⁇ 8th to 15th rows; 632nd to 639th columns ⁇ in the 8th to 15th rows is being read out as well.
  • Table 1 shows conventional image sizes and required memory bytes.
  • a method for reading and writing image data in a memory having n rows including 0th to (n ⁇ 1)th rows and A columns including 0th to (A ⁇ 1)th columns is provided.
  • the image data are inputted to the memory in a data stream and outputted from the memory in data blocks each formed of n ⁇ n pixels that can be processed by an image processing algorithm, in which n is a number of rows and columns of the data block and A is an integer multiple of n ⁇ n and equal to or greater than a horizontal resolution B of the image data.
  • the memory is divided into n rows and n sections. Each of the n sections includes A/n columns and is divided into blocks each including n rows and n columns.
  • the method includes a first step of sequentially writing the image data in front B/n columns of the n sections in the 0th to (n ⁇ 2)th rows by a row and column sequential write technique to sequentially write the columns per row; a second step of sequentially writing the image data in the front B/n columns of the n sections in the (n ⁇ 1)th row per column, and reading the image data in the front B/n columns of the 0th section by a n-column data sequential row read technique to sequentially read the n rows and n columns in a row-major order in each successive one of the blocks, so that the read image data form the data blocks each formed of n ⁇ n pixels; a third step of sequentially writing the image data in the front B/n columns of the 0th to (n ⁇ 2)th sections by a section and row sequential write technique to sequentially write the B/n columns and n rows in a row-major order in each successive one of the sections, and sequentially reading the image data in the front B/n columns of the 1s
  • a method for reading and writing image data in a memory having n rows including 0th to (n ⁇ 1)th rows and A columns including 0th to (A ⁇ 1)th columns is provided.
  • the image data are inputted to the memory in a data stream and outputted from the memory in data blocks each formed of n ⁇ n pixels that can be processed by an image processing algorithm, in which n is a number of rows and columns of the data block and A is an integer multiple of n ⁇ n and equal to or greater than a horizontal resolution B of the image data.
  • the memory is divided into n rows and n sections. Each of the n sections includes A/n columns and is divided into blocks each including n rows and n columns.
  • the method includes a first step of sequentially writing the image data in front B/n columns of the 0th to (n ⁇ 2)th sections by a section and row sequential write technique to sequentially write the B/n columns and n rows in a row-major order in each successive one of the sections; a second step of sequentially writing the image data in the front B/n columns in the (n ⁇ 1)th section per row, and sequentially reading out the image data in the front B/n columns of each section in the 0th row by an n-column data sequential read technique in which, in sequence, n columns of a first block in the 0th section are read, followed by n columns of a first block in the next section, and so on until n columns of a first block in the (n ⁇ 1)th section are read, then reading n columns in next blocks of the respective 0 through (n ⁇ 1)th sections in the same sequential manner as that of the first block, and so on until last blocks of the respective 0th through (n ⁇ 1)th sections have been read, so that the
  • FIGS. 1A to 1F are diagrams showing processes of a conventional method for reading and writing data in a memory
  • FIG. 2 is a flowchart of a process to read and write data in a memory, according to one embodiment of the present invention
  • FIGS. 3A to 3I are diagrams showing processes of a method for reading and writing data in a memory, according to the present invention.
  • FIG. 4 is a flowchart of a process to read and write data in a memory, according to another embodiment of the present invention.
  • FIGS. 3A to 3I show processes of a method for reading and writing data in a memory, of this embodiment.
  • the method for reading and writing a memory according to one embodiment of the present invention is described in specifics below with reference to FIGS. 2 and 3A through 3 I.
  • a memory is divided into n rows ⁇ n sections.
  • the memory is divided into 8 rows ⁇ 8 sections.
  • Each of the 8 sections includes 80 columns. Reading and writing of data are performed from/to this memory as follows.
  • the data are sequentially written in front B/n columns of all sections in a (n ⁇ 1)th row per column, and the data of the front B/n columns in the 0th section are read out by a n-column data sequential row access technique (hereinafter also referred to as a second technique), so that the read data constitute data blocks each formed of n ⁇ n pixels (step 202 ). That is, as shown in FIG. 3C , data are sequentially written in front 80 columns of all the sections in the 7th row. When there are more than 640 columns in the memory, data are not written in cells of columns subsequent to the 79th column in each section of the 7th row. At the same time as writing data in the 7th row, the data of the 0th section start to be read out.
  • a n-column data sequential row access technique hereinafter also referred to as a second technique
  • This technique for reading data is called the n-column data sequential row access technique (second technique).
  • second technique When the number of columns in the memory is more than 640, data have not been written in the cells of the columns subsequent to the 79th column in each row of the 0th section. Therefore, data are not read out from these cells either.
  • Data are sequentially written in front B/n columns in the 0th to (n ⁇ 2)th sections by a section and row sequential access technique (hereinafter also referred to as a third technique), while the data of the front B/n columns in the 1st to (n ⁇ 1)th sections are sequentially read out per section by the second technique, so that the read data constitute the data blocks of n ⁇ n pixels.
  • data are written in the front 80 columns of the 0th to 6th sections, starting from the 0th section.
  • the data are written in the 0th row in the 0th section, 1st row in the 0th section, . . . and 7th row in the 0th section, and then in the 0th row in the 1st section, 1st row in the 1st section . . . in this manner sequentially up to the 7th row in the 6th section.
  • This technique for writing data is called the section and row sequential access technique (third technique).
  • the data are written in the 0th section by the third technique while the data in the front 80 columns of the 1st section are sequentially read out by the second technique.
  • the read data constitute data blocks of 8 ⁇ 8 pixels.
  • the data are read by a technique similar to step 202 .
  • the number of columns in the memory is more than 640, data have not been written in cells of the columns subsequent to the 79th column in each row of the 1st to 7th sections. Therefore, data are not read out from these cells either.
  • step 204 Data are sequentially written in the front B/n columns of the (n ⁇ 1)th section, and the data in the front B/n columns of each section in the 0th row are sequentially read out per section by a n-column data sequential section access technique (hereinafter also referred to as a fourth technique), so that the read data constitute data blocks of n ⁇ n pixels (step 204 ).
  • a fourth technique n-column data sequential section access technique
  • data are sequentially written in the front 80 columns of the 7th section by a technique similar to step 203 .
  • the number of columns in the memory is more than 640, data are not written in cells in the columns subsequent to the 79th column in each row of the 7th section.
  • the data in the 0th row are read out.
  • the data in the 0th row are read out as follows.
  • data of 8 columns are sequentially read out to form data blocks of 8 ⁇ 8 pixels. That is, first, the data of the 0th to 7th columns in each of the 0th to 7th sections are sequentially read out to form a data block of 8 ⁇ 8 pixels. Second, data of the 8th to 15th columns in each of the 0th to 7th sections are sequentially read out to form a data block of 8 ⁇ 8 pixels.
  • n-column data sequential section access technique (hereinafter also referred to as a fourth technique).
  • a fourth technique When the number of columns in the memory is more than 640, data have not been written in the cells of the columns subsequent to the 79th column in each section of the 0th row. Therefore, data are not read out of these cells either.
  • reading and writing of the data are generally completed at the same time in the above-described steps.
  • reading out of the data is delayed accordingly.
  • an interval is inserted between writings of each row. Therefore, even when there is a constant delay in the output of data, the delay does not influence the input of data. That is, the operations to read out the data, of steps 202 , 203 , 204 , and 205 , may be synchronized with or delayed from the operations to write data in the corresponding steps, as long as data are not read and written from/to the same cell simultaneously.
  • VGA image data can be read and written by using one cache having a size of 8 ⁇ 640 ⁇ 2 bytes. Therefore, a cache can be effectively used and the number of required bytes can be reduced.
  • the method for reading and writing data in a memory according to the present invention is only applied to an image format having a horizontal resolution which is an integer multiple of n ⁇ n.
  • the conventional method for reading and writing a memory is used for an image whose horizontal resolution is not an integer multiple of n ⁇ n, not so many memory bytes are required. Since an image format with a high resolution generally has a horizontal resolution that is an integer multiple of n ⁇ n, the number of bytes required for a memory to be used can be reduced to half according to the method for reading and writing a memory of the present invention, compared to the conventional method.
  • steps 202 and 203 correspond to one reading and writing state while steps 204 and 205 correspond to the other reading and writing state.
  • steps 202 , 203 , 204 , and 205 constitute one loop of operations.
  • the loop starts from the row and column sequential access technique, which is the first technique. It can be easily conceived by those skilled in the art to start the loop of the steps of the present invention from the section and row sequential access technique, which is the third technique.
  • FIG. 4 is a flowchart of a method for reading and writing data in a memory according to another embodiment of the present invention. A process of the method for reading and writing data in a memory according to another embodiment of the present invention is described below with reference to FIG. 4 .
  • step S 401 Data are sequentially written in front B/n columns of the 0th to (n ⁇ 2)th sections by the section and row sequential access technique (third technique) (step S 401 ).
  • data are written in front 80 columns of the 0th to 6th sections by the section and row sequential access technique (third technique), starting from the 0th section.
  • the data are sequentially written in the 0th row of the 0th section, 1st row of the 0th section, . . . up to the 7th row of the 0th section, then in the 0th row of the 1st section, 1st row of the 1st section . . . up to the 7th row in the 6th section.
  • the number of columns in the memory is more than 640, data are not written in the cells of the columns subsequent to the 79th column of each section in each row.
  • Data of 8 columns in the 0th to 7th sections are sequentially read out, so as to constitute data blocks each formed of 8 ⁇ 8 pixels. That is, first, the data of the 0th to 7th columns in the 0th to 7th sections are read out, so as to constitute a data block of 8 ⁇ 8 pixels. Second, data of the 8th to 15th columns in the 0th to 7th sections are sequentially read out so as to constitute a data block of 8 ⁇ 8 pixels. At a tenth time, data of the 72nd to 79th columns in the 0th to 7th sections are sequentially read out so as to constitute a data block of 8 ⁇ 8 pixels. When the number of columns in the memory is more than 640, data have not been written in the cells of the columns subsequent to the 79th column in each section of the 0th row. Therefore, data are not read out from these cells either.
  • the number of columns is more than 640
  • data are not written in the cells of the columns subsequent to the 79th column in each section of each row.
  • the data of the front 80 columns in each section in the 1st to 7th rows are sequentially read out by the fourth technique, so that the data read every time constitute a data block formed of 8 ⁇ 8 pixels.
  • the data in each row are read by a technique similar to step 402 . If the number of columns in the memory is more than 640, data have not been written in the cells of the columns subsequent to the 79th column in each section of the 1st to 7th rows. Therefore, data are not read out of these cells either.
  • the data are sequentially written in the 0th row of the 0th section, 1st row of the 0th section, . . . and then the 7th row in the 0th section, then in the 0th row of the 1st section, 1st row of the 1st section, . . . and the like in this manner up to the 7th row in the 6th section. If the number of columns in the memory is more than 640, data are not written in the cells of columns subsequent to the 79th column in each row of the 0th to 6th sections. As shown in FIG.
  • the data are written in the 0th section, and the data in the front 80 columns of the 1st section are sequentially read out by the second technique performed per section, so that the read data constitute data blocks each formed of 8 ⁇ 8 pixels.
  • the data are read by the technique similar to step 404 . While data are written in the 1st section, data are read from the 2nd section, while data are written in the 2nd section, data are read from the 3rd section, . . . and while data are written in the 6th section, data are read from the 7th section. If the number of columns in the memory is more than 640, data have not been written in the cells of columns subsequent to the 79th column of the 1st to 7th sections in each row. Therefore, data are not read out of these cells either. When data are written in the 6th section, the procedure returns to the state of FIG. 3G and is repeated.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Input (AREA)
  • Memory System (AREA)
  • Storing Facsimile Image Data (AREA)
US12/474,507 2008-06-03 2009-05-29 Method for reading and writing image data in memory Expired - Fee Related US8269786B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2008101094208A CN101599167B (zh) 2008-06-03 2008-06-03 存储器的存取方法
CN200810109420 2008-06-03
CN200810109420.8 2008-06-03

Publications (2)

Publication Number Publication Date
US20090295817A1 US20090295817A1 (en) 2009-12-03
US8269786B2 true US8269786B2 (en) 2012-09-18

Family

ID=41379234

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/474,507 Expired - Fee Related US8269786B2 (en) 2008-06-03 2009-05-29 Method for reading and writing image data in memory

Country Status (3)

Country Link
US (1) US8269786B2 (zh)
JP (1) JP5359569B2 (zh)
CN (1) CN101599167B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI328390B (en) * 2006-12-22 2010-08-01 Sunplus Technology Co Ltd Method for accessing image data and method for accessing yuv420 image data thereof
US8355587B2 (en) * 2010-04-11 2013-01-15 Mediatek Inc. Image processing apparatus capable of writing compressed data into frame buffer and reading buffered data from frame buffer alternately and related image processing method thereof
US9836218B2 (en) * 2014-10-03 2017-12-05 Micron Technology, Inc. Computing reduction and prefix sum operations in memory
CN108257582B (zh) * 2018-01-30 2020-10-09 广东中星微电子有限公司 一种图像的显示缓冲方法和装置
CN108765341B (zh) * 2018-05-29 2022-06-21 郑州云海信息技术有限公司 一种图像处理的方法及其装置
CN108881923B (zh) * 2018-08-13 2021-03-12 昆山动芯微电子有限公司 减少jpeg编解码行缓冲容量的方法
CN110532219B (zh) * 2019-06-25 2021-04-27 北京理工大学 一种基于fpga的去乒乓数据存储方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7394465B2 (en) * 2005-04-20 2008-07-01 Nokia Corporation Displaying an image using memory control unit

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4015890B2 (ja) * 2002-06-28 2007-11-28 松下電器産業株式会社 画素ブロックデータ生成装置および画素ブロックデータ生成方法
EP1530373A2 (en) * 2003-11-06 2005-05-11 Matsushita Electric Industrial Co., Ltd. Memory arrangement for a quick read access to image blocks according to a different scan order
CN100578470C (zh) * 2007-01-31 2010-01-06 浙江大学 基于裸设备的音视频数据存取方法和装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7394465B2 (en) * 2005-04-20 2008-07-01 Nokia Corporation Displaying an image using memory control unit

Also Published As

Publication number Publication date
US20090295817A1 (en) 2009-12-03
CN101599167A (zh) 2009-12-09
JP2009295159A (ja) 2009-12-17
JP5359569B2 (ja) 2013-12-04
CN101599167B (zh) 2013-02-20

Similar Documents

Publication Publication Date Title
US8269786B2 (en) Method for reading and writing image data in memory
US8018472B2 (en) Blending multiple display layers
US8989509B2 (en) Streaming wavelet transform
US20090058866A1 (en) Method for mapping picture addresses in memory
CN101212680B (zh) 图像数据的存储器存取方法及系统
US20080044107A1 (en) Storage device for storing image data and method of storing image data
US7184604B2 (en) Wavelet processing apparatus and wavelet processing method
US8824814B2 (en) Pixel data compression and decompression method
US8345055B2 (en) Image display device
CN110570793B (zh) 一种适配不同类型显示屏的测试方法、装置及终端设备
US20100034475A1 (en) Image compression/decompression device and method thereof
US7684650B2 (en) Method for processing image frame output from an image sensor by an image processor
US20040218670A1 (en) Method and apparatus for reducing the bandwidth required for transmitting video data for display
JP2011077970A (ja) 画像処理装置、画像表示システム、電子機器及び画像処理方法
KR100510677B1 (ko) 메모리 억세스 제어 장치
US20100254618A1 (en) Method for Accessing Image Data and Related Apparatus
US11494869B2 (en) Image processor having a compressing engine performing operations on each row of M*N data block
CN113658049A (zh) 一种图像转置的方法、设备和计算机可读存储介质
JP4109151B2 (ja) 画像処理装置
US20150091928A1 (en) Image processing device and method thereof
JP4293503B2 (ja) 画像処理装置
TWI477142B (zh) 影像處理電路及相關方法
US7616820B2 (en) System and method for reducing discontinuity of gray level in an image buffer memory
JP2020195038A (ja) 画像処理装置、画像処理方法、およびプログラム
JP2007188400A (ja) Dramへのアクセス方法

Legal Events

Date Code Title Description
AS Assignment

Owner name: RICOH COMPANY, LTD., JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:YU, CHUNJIE;YE, WENTAO;MORIMOTO, TSUYOSHI;AND OTHERS;REEL/FRAME:022752/0296

Effective date: 20090527

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20200918