(12) United States Patent (10) Patent No.: US 8,013,862 B2 Mathe (45) Date of Patent: Sep
Total Page:16
File Type:pdf, Size:1020Kb
US0080 13862B2 (12) United States Patent (10) Patent No.: US 8,013,862 B2 Mathe (45) Date of Patent: Sep. 6, 2011 (54) TEXTURE CODEC 2004/O151372 A1* 8, 2004 Reshetov et al. ............. 382,166 2004/0227552 Al 11/2004 Markovic et al. 327/215 (75) Inventor: Zsolt Mathe, Issaquah, WA (US) 2005/0206784 A1* 9, 2005 Li et al. ......... ... 348/441 2006, OO17722 A1 1/2006 Hong et al. ... 345,419 2006/0092.169 A1 5, 2006 Wetzel ....... 345,582 (73) Assignee: Microsoft Corporation, Redmond, WA 2006/0268990 A1* 11, 2006 Lin et al. .... 375,240.24 (US) 2007/0070.083 A1* 3, 2007 Fouladi et al. ................ 345 604 2007, 0140554 A1* 6, 2007 Strom et al. .. ... 382,166 (*) Notice: Subject to any disclaimer, the term of this 2007/0172120 A1, 7/2007 Roimela et al... ... 382,166 patent is extended or adjusted under 35 2007/024208.6 A1* 10/2007 Tsujimoto et al. ............ 345,632 U.S.C. 154(b) by 890 days. OTHER PUBLICATIONS (21) Appl. No.: 11/941,337 DXTex Tool, (C) 2007. http://msdn.microsoft.com/archive, 3 pages, date unknown. (22) Filed: Nov. 16, 2007 van Waveren, J.M.P., “Real-Time DXT Compression'. May 20, 2006, http://cache-www.intel.com, 43 pages. (65) Prior Publication Data van Waveren, J.M.P., “Real-Time Texture Streaming & Decompres sion”, Nov. 11, 2006, http://softwarecommunity.intel.com, 57 pages. US 2009/O128576A1 May 21, 2009 * cited by examiner (51) Int. Cl. G09G 5/00 (2006.01) Primary Examiner — M Good Johnson (52) U.S. Cl. ........................................ 34ss82. 34.5/586 (74) Attorney, Agent, or Firm — Woodcock Washburn LLP (58) Field of Classification Search .................. 5. (57) ABSTRACT See application file for complete search history. Techniques for pre-processing image blocks containing tex ture are disclosed herein which reduce memory requirements (56) References Cited without degradation of quality. This is accomplished by deter mining the level of texture in each pixel block of the image U.S. PATENT DOCUMENTS and then performing a compression algorithm on such pixel 6,292,194 B1 9/2001 Powell, III .................... 345,430 block. Various methods are available to determine the texture 6,618,444 B1* 9/2003 Haskell et al. .. 375,24024 level, including identifying the luminescence variation or 6,819,793 B1 11/2004 Reshetov et al. ............ 382,166 difference within the pixel block. Depending on the amount $52, g R 1939: st al . ;:S of texture level contained within each pixel block, pre-pro 7,90284 B1 3/2007 Dye et al. .... ... 34.1751 cessing may involve assigning the pixel block a single color 7,239,743 B2 7/2007 Gardella et al. ... 382,166 or replacing the pixel block with an interpolated pixel block. 7,242.432 B2* 7/2007 Watanabe ... 348,333.11 Pre-processing on the pixel block may not be performed when 23.2 . R ck 3.392 SR et al 3.: the texture level therein is determined to beata predetermined 7,385,611- W B1* 6/2008 ToksvigUS et ea. al. ... ... 345,582 amount or level. Additional techniques are also disclosed 7,397.946 B2 * 7/2008 Reshetov et al. ... 382,166 herein which involve full processing of an image block. 7,636,471 B2* 12/2009 Strom et al. ... ... 382,166 2002/0171701 A1* 11/2002 Shinada et al. ................. 347/19 20 Claims, 4 Drawing Sheets STORE IMAGE IN A PLURALITY OF 1'2 PXEL, BLCKS s DETERMINE LEVEL OF TEXTURE IN 1 20 EACH PIXELBLOCK 220 Y ! ? 25 perforMPR- do Not perforM PROCESSING ON PXEL PRE-PROCESSING ON BCCK PXELBLOCK 23 l /1 24 PROVIPXL REPLACE PXE BLCKWHA BLOCKWITHAN SOLIDAWERAGE NTERPOLATE COLOR XELBLOCK sa. 28 PERFORM COMPRESSCNN PXELECK U.S. Patent Sep. 6, 2011 Sheet 2 of 4 US 8,013,862 B2 2OO STORE IMAGE IN A PLURALITY OF PXEL, BLOCKS 210 DETERMINE LEVEL OF TEXTURE IN EACH PIXEL BLOCK 220 250 PERFORMPRE DO NOT PERFORM PROCESSING ON PIXEL PRE-PROCESSING ON BLOCK PXEL, BLOCK 240 230 PROVIDE PIXEL REPLACE PIXEL BLOCKWTH A BLOCK WITH AN SOLID AVERAGE INTERPOLATED COLOR PXEL BLOCK 260 PERFORM COMPRESSION ON PXEL, BLOCK FIG. 2 U.S. Patent Sep. 6, 2011 Sheet 4 of 4 US 8,013,862 B2 STORE IMAGE IN A PLURALITY OF 400 PXEL, BLOCKS 410 CONVERT PIXEL, BLOCK 420 DETERMINE LEVEL OF TEXTURE IN EACH PIXEL BLOCK 460 t PERFORM PRE DO NOT PERFORM PROCESSING ON PIXEL PRE-PROCESSING ON BLOCK PXEL, BLOCK 450 440 PROVIDE PIXEL REPLACE PIXEL BLOCKWITH A BLOCK WITH AN SOLD AVERAGE INTERPOLATED COLOR PXEL, BLOCK PERFORM COMPRESSION ON 470 PXEL BLOCK 480 PERFORM DECOMPRESSION ON PXEL BLOCK 490 FILTER PIXEL, BLOCK 495 CONVERT PIXEL, BLOCK FIG. 4 US 8,013,862 B2 1. 2 TEXTURE CODEC is not intended to limit the scope of this patent. Rather, it is contemplated that the claimed Subject matter might also be BACKGROUND embodied in other ways, to include different steps or combi nations of steps similar to the ones described in this docu Currently there is great need for texture compression to ment, in conjunction with other present or future technologies enable high-definition content to be accessed on various FIG. 1 illustrates an example of a suitable computing sys entertainment devices. On many of these entertainment devices, disc space limitations and the need for streaming tem environment 100 in which the subject matter described performance is contributing to this requirement. Further above may be implemented. The computing system environ more, decompression time also needs to be very fast to ensure ment 100 is only one example of a suitable computing envi a smooth accessibility of the content. Thus, there is a need for 10 ronment and is not intended to suggest any limitation as to the improved texture codec that can be used in combination with scope of use or functionality of the subject matter described conventional lossless codecs to reduce the storage space above. Neither should the computing environment 100 be required for content while still enabling compression and interpreted as having any dependency or requirement relating decompression to be performed quickly. It is further desired to any one or combination of components illustrated in the that this improved codec can be integrated into an asset build 15 exemplary operating environment 100. pipeline and can be used in combination with hardware com With reference to FIG. 1, computing system environment pression and decompression. 100 includes a general purpose computing device in the form of a computer 110. Components of computer 110 may SUMMARY include, but are not limited to, a processing unit 120, a system memory 130, and a system bus 121 that couples various Techniques for pre-processing image blocks containing system components including the system memory to the pro texture are disclosed herein which reduce memory require cessing unit 120. The system bus 121 may be any of several ments without degradation of quality. This is accomplished types of bus structures including a memory bus or memory by determining the level of texture in each pixel block of the controller, a peripheral bus, and a local bus using any of a image and then performing a compression algorithm on Such 25 variety of bus architectures. By way of example, and not pixel block. It will be appreciated that various methods are limitation, such architectures include Industry Standard available to determine the texture level, including identifying Architecture (ISA) bus, Micro Channel Architecture (MCA) the luminescence variation or difference within the pixel bus, Enhanced ISA (EISA) bus, Video Electronics Standards block. Depending on the amount of texture level contained Association (VESA) local bus, and Peripheral Component within each pixel block, pre-processing may involve assign 30 Interconnect (PCI) bus (also known as Mezzanine bus). ing the pixel block a single color or replacing the pixel block Computer 110 typically includes a variety of computer with an interpolated pixel block. Ofcourse, pre-processing on readable media. Computer readable media can be any avail the pixel block may not be performed when the texture level able media that can be accessed by computer 110 and includes therein is determined to be at a predetermined amount or both volatile and nonvolatile media, removable and non-re level. 35 movable media. By way of example, and not limitation, com Additional techniques are also disclosed herein which puter readable media may comprise computer storage media involve full processing of an image block. This essentially and communication media. Computer storage media include involves the conversion of the pixel block from a standard both volatile and nonvolatile, removable and non-removable configuration (4x4) to a larger configuration (8x8) prior to media implemented in any method or technology for storage pre-processing and then a conversion back to the standard 40 of information Such as computer readable instructions, data configuration after decompression. structures, program modules or other data. Computer storage This Summary is provided to introduce a selection of con media include, but are not limited to, RAM, ROM, EEPROM, cepts in a simplified form that are further described below in flash memory or other memory technology, CDROM, digital the Detailed Description. This summary is not intended to Versatile disks (DVD) or other optical disk storage, magnetic identify key features or essential features of the claimed sub 45 cassettes, magnetic tape, magnetic disk storage or other mag ject matter, nor is it intended to be used as an aid in determin netic storage devices, or any other medium which can be used ing the scope of the claimed Subject matter. to store the desired information and which can be accessed by computer 110. Communication media typically embody BRIEF DESCRIPTION OF THE DRAWINGS computer readable instructions, data structures, program 50 modules or other data in a modulated data signal Such as a The illustrative embodiments will be better understood carrier wave or other transport mechanism and include any after reading the following detailed description with refer information delivery media.