throbber
United States Patent
`Rasbkovskiy et al.
`
`IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
`US006122744A
`patent Number:
`l)ate of Patent:
`
`6)122)744
`Sep. 19, 2000
`
`[i i]
`
`[45]
`
`[54] SELECTING A ROUTINE BASED ON
`PROCL'SSING POWER
`
`[75]
`
`Inventors: Oleg B. Rashkuvskiy, Cupertino;
`Ajaya V. Durg, Sunnyvalc, both of
`Calif.
`
`[73] Assigncc:
`
`Intel Curpuratiun, Santa Clara, Calif.
`
`[22[
`
`[21i Appl. Noz 09/082,140
`May 20, 1998
`Filed:
`Int. Cl.'.........................
`[51]
`[S2] U.S. CI..
`[SS] Field of Search
`
`............. G06F I/04
`. 713/300, 713/Sot
`713/3(K), 323,
`713/501
`
`[56[
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5.4!S,565
`:1,st 1,204
`5. 77S,413
`5,80),684
`S,S09.316
`
`5)1995 Smith ..............
`4/1996 ('rump ci al.
`7)1998 Sieveus ei al.
`9/1998 1.)skat)
`9)1998 Gouzu .............
`
`348/273
`7 13/31)0
`711,'5
`345/213
`... 713)323
`
`4,862,368
`),940,6))7
`
`I,'1999 Miller et al.
`8 199') Hwaos
`
`713)501
`713/51)1
`
`OTHER PUBLICATIONS
`I.ehoczky et al., "An Optimal Algoothm for Scheduling
`Soft—Apcriodic Tasks in Fixed—Priority Prccmptivc Sys-
`tems', IEEE, pp. 110—123, 1992.
`Davis ct al., "Scheduling Slack Time in Fixed Priority
`Pre —Emptive Systems", IEEE, pp. 222—231, 1993.
`Ripoll et al., "An Opumal Algonthm for Scheduling Soft
`'I'asks in lyynamic—Priority Preemptive Systems**,
`Aperiodic
`ILiL'L', vol. 23, No. /i, pp. 388~)0, .)un 1997
`/'rimory Examiner/ O)lena A Auve
`At)orner) Age))r, or Firm Trop, Pruner Sr Ilu, P(1
`ABSTRACT
`
`A method inclutlcs dctcrmining an operating frcqucncy of a
`processor. Based on thc operating frcqucncy, a routine is
`selected irom a group of at
`least two routines, aml
`the
`selected routine is executed. The rouune may also be
`selected based on an unused processing bandwidth that is
`available to the processor.
`
`29 Claims, 4 Draiving Sheets
`
`40
`
`Google Exhibit 1055
`Google v. VirtaMove
`
`

`

`U.S. Patent
`
`Sep. 19, 2lNO
`
`Sheet 1 of 4
`
`6,122,744
`
`Figure 2
`(PRIOR ART)
`
`

`

`U.S. Patent20'ep. 19,2lNO
`
`24',122,744
`
`Sheet 2 of 4
`
`26
`
`30
`
`32
`
`34
`
`40
`
`42
`
`44
`
`46
`
`Figure 4
`
`Figure 6
`
`

`

`U.S. Patent
`
`Sep. 19, 2lNO
`
`Sheet 3 of 4
`
`6,122,744
`
`31
`
`31
`
`37
`
`37
`
`57
`
`57
`
`Figure 5
`
`Figure 7
`
`Figure 8
`
`

`

`U.S. Patent
`
`Sep. 19, 2lNO
`
`Sheet 4 of 4
`
`6,122,744
`
`24
`
`20
`
`Figure 9
`
`

`

`6,122,744
`
`SELECTING A ROUTINE BASED ON
`PROCESSIIIIG POWER
`
`IIA('K('ROUNI)
`
`The invention relates to selecnng a rounne based on
`processing power.
`A computer may cxccutc a routine to perform a function.
`Although thc complexity of thc routine may improve an
`output of thc function, morc complex routines typically
`require more computanons and thus, more processing nme
`by the computer. The processing nme required to process the
`routine may also be a functinn of the available processing
`po&ver of the computer
`For cxampkb rcfcrring to FIG. 1, a typical digital camera is
`12 uses a rectangular array ol. pixel sensa&s 5 to eleclncally
`capture an optical image 11. To accomplish th&s, a shutter
`(not shown) of the camera 12 momentarily exposes the
`image 11 to the sensors 5 for a prerletermined exposure t&me
`After the exposure, each sensor 5 indicates an intens&ty of zc
`light from a porhon of thc image 11.
`The camera 12 typically processes these md&ca&tons to
`form a frame of data (which digitally represents the captured
`image) and transfers the frame nf data (via a bus 15, for
`example) to a computer 14 for prncessing. I'or video, the
`camera 12 may capture scvcral optical images and furnish
`scvcral frames of data, each of which indicates onc of the
`captured images. Thc computer 14 may then usc thc frames
`to recreate captured video on a display 5 or a printer 7.
`L'ach pixel may be represented by several (three, for
`example) bytes which md&cate the color components of the
`if thc color of each pixel
`pixel. For cxamplc,
`is bein
`reprcscnted in a rcd grccn blue (RGB) color space, then each
`pixel may be represented by three bytes. one byte repre-
`senung the red component, one byte representing the green
`component and one byte representing, the blue component
`Rcfcrring to FIG 2, thc computer 14 may process the
`stream of data to cnhancc, analyze and rcstorc the images
`captured by thc camera 12. For example, thc camera 12 may
`prov&&le a stream of data that represents an image 17 (only
`part of the image shown in FIG. 2) havmg a resolution of
`320 columns by 240 rows I lowever, the computer 14 might
`desire an image 19 (only part of the image shown in I l(l 2)
`a resolution of 040x480 and thus, may rcquirc a
`bavin
`tcchniquc callctl upsampling, or interpolation, to obtain the
`color components for thc atltlitional, or "missing" pixels
`For example, to obtain lhe color components for pixels of
`the higher resolution image 19, the computer 14 may per-
`form a I:2 direct mapping. In this manner, Ihe computer 14
`mav use the color components nf some pixels (pixels 9, for
`example) of the lower resolutinn image 17 to obtain color
`components for pixels (pixels 22a and 22c, for example) of
`the higher resolution image 19. As a result of this direct
`mapping, some of lhe pixeis (pixels 22a aml 22c, as
`examples) of lhe higher resolution image 19 might have the
`same color components as correspondm ~ pixels (pixels 9, as
`examples) of the lower resolutinn image 17
`However, the higher resolution image 19 has approx&-
`mately twice as many pixels as the lower resolution image „c
`17. As a result, thc I 2 mapping by thc computer 14 docs not
`furnish thc color components for all pixels of thc image 19.
`To lill in the color components for Ihe remaining pixels, the
`computer 14 might use a color inlerpolanon technique.
`As an example, Ihe computer may interpolate Ihe color as
`components for the pixel 22b by using the color components
`of pixels 22a and 22c that are adjacent to, or are "neighbors**
`
`ss
`
`to, Ihe pixel 22b. In this manner, Ihe computer 14 may
`average the color components of neighboring, pixels 22a and
`22c to obtain color components for the pixel 22b.
`Generally, thc accuracy of thc interpolation is a function
`of the number of. neighboring pixels used and the type of
`interpolation algorithm. For example, in general, an inter-
`polation algonthm that uses two neighboring pixels may not
`be as accurate as an interpolation algorithm that uses eight
`neighboring pixels Also, more accuracy may be achieved if,
`for example, distances to thc neighboring pixels (for thc
`pixel whose color components arc being intcrpolatcd) arc
`taken into account in the interpolanon aml if, lor example,
`a nonlinear weighting technique (a spline-based interpola-
`tion algonlhm, for example) is used.
`Althou h thc complexity of thc interpolation algorithm
`may in&prove thc quality of thc image 19, in general, morc
`computations arc required for a morc complex algorithm
`which, in turn, may require more computer processing nme.
`The processing time may also be a funcnon of lhe available
`prncessing power of the computer 14 I'or example, a type
`of processor heing used by the computer 14, the operating
`frequency of the computer 14, and/or a ban&I&vidth nf the
`computer 14 that is availablc for interpolation processing
`may all aifcct the available processing power of the com-
`puter 14.
`Providers of software for the computer 14 typically select
`routines (a routine that uses an interpolatinn algorithm, for
`cxamplc) to accommodate a &vide range of processing pow-
`ers and thus, a &vide range of computers. Howcvcr, by trying
`lhe quality of data
`to accommodate such a wide ran e,
`protluced by the routme may not be opnmized for the
`available processm ~ power of the computer.
`thcrc is a contmuing nccd for a system which
`Thus,
`cflicicntly accommodates computers of varying processing
`powers.
`
`SUMMARy
`In one embodiment, a method includes determining an
`operating frcqucncy of a processor Based on this
`tlctcrmination, a routine is selcctcd from a group of at least
`two routines, and the selected rounne is executed.
`In another embothment, an arncle includes a processor
`includes inslrucnons. The
`readable storage medium that
`instructions cause a processor to determine a processing
`bandwidth heing used by the processor anil determine an
`unused proccssin bandwidth availablc for additional pro-
`cessing. Based on thc unused processing bandwidth,
`thc
`instructions caused thc processor to acket a routine from a
`group ol al least two routines. The instrucnons further cause
`the processor to execute the selected routine.
`
`BRIEF DESCRIPTION OF THE DRAWING
`I IG I is a block diagram of a d&gital imaging system of
`the prior art.
`FIG. 2 is an illustration of a mapping function that maps
`color components of a low resolution image to color com-
`ponents of a higher resolution image.
`FIG. 3 is a block diagram of a digital imaging system
`according to an embodiment of the invennon.
`I IGS. 4 and (& are floiv diagrams of selection routines to
`select various soft&vere routines
`I I GS. 5, 7 and 5 are illustrations of look-up tables used by
`the selection routines.
`I IG 9 is a block diagram of a computer nf the imaging
`system of lil(3. 3
`
`

`

`6,122,
`
`744
`
`&0
`
`3
`DETAILED DESCRIPTION
`Rcfcrring to FIG. 3, an cmbodimcnt 20 of a video ima in
`system in accordance with onc cmbodimcnt of thc invention
`includes a computer 24 and a camera 22. Through lhe use of
`the computer 24 may perform di nial
`sot&ware rouunes,
`imaging functions which may include scaling, enhancing
`and or restoring image data that is funiished by the camera
`22. To optimize both thc time to perform any onc of these
`functions and thc quality of thc data produced by thc
`thc computer 24 may first cxcculc a selection 10
`function,
`program Z6 before performing Ihe funcuon. The selecuon
`program 26 may cause the computer 24 lo evaluate Ihe
`available processing power of the cnmputer 24, and based on
`this evaluation, select an executable software routme 27
`(from a group of routines 27) which is then cxccutcd by the &5
`computer 24 to perform thc function.
`Although any onc of thc routines 27 may bc cxccuted to
`perform lhe tuncuon, the different rounnes 27 may vary in
`complexity and may produce dill'erenl qualnies of: data. For
`example, some of: the routines 27 may produce data that,
`when used to render an image on a rlisplay, produces a more
`visually appealing image than the data produced by some of
`the other routines 27. As another cxamplc, some of the
`routines 27 may bc morc complex and thus, rcquirc more .
`calculations by the computer 24 than some of the other
`rouunes 27. However, the rounnes 27 that require more
`calculations may produce higher qualiiy outputs. As an
`example, for the case of digital image prncessing, a routine
`27 that requires more calculations may cause the computer
`24 to produce an image that is morc visually appealing.
`To cnsurc exccssivc processing time is not consumed by
`thc computer 24,
`thc sclcction program 26,
`in some
`embodiments, selects lhe routine 27 thai produces the high-
`esl qualify output for an allouetl, predetermined processin ~
`time 'I'he predetermined prncessing, time might be selected
`based on the type (interpolatinn or scaling functions, as
`examples) of the particular function and may be a user
`configurablc option.
`As a result of this selection technique, computers having do
`morc processing power may cxccutc morc complicatcil
`routines 27, anil computers having less processing power
`may cxccutc less complicated routines 27. For cxamplc, the
`function may relate to upsampling or converting a low
`resoluuon image to a higher resolution image. If the com-
`puter 24 has a relatively small available processing power,
`the selection routine 26 may cause the computer 24 to select
`a routine 27 that uses a linear interpnlation algorithm to
`perform thc scaling Although linear interpolation algo-
`rithms arc gcncrally faster, thc linear al orithms may pro- so
`duce lower quahty data Conversely, il the computer 24 has
`a relauvely large available processing power, the selection
`routine 26 may cause the computer 24 to select a routine 27
`that uses a more complicated interpnlation algorithm (an
`algorithm that uses a sync biter function, for example) hut
`furnishes a higher quality output.
`The advantages of selecting a routine based on available
`processing power may include onc or morc of thc following.
`Processing time may bc optimized. Data quality may bc
`optimized. Routines for future processors may bc installcil oc
`on the computer. For digital image processing, the cost of the
`digital camera is minimized, as processing functions may be
`performed by the computer
`the selecuon rouune 26 may
`In some embodiments,
`evaluate the avadable processing power of. Ihe computer 24 os
`based on a number of different factors As example, a type
`of microprocessor 80 (a Pentium microprocessor, a Pen-
`
`&0
`
`uum II microprocessor or a Pen&turn&Et microprocessor
`with MMX technology, as examples) that the computer 24
`uses to execute instructions of the routine 27, the operating
`frequency of the microprocessor 80, and the available band-
`width of thc microprocessor 80 (for cxccuting the routine
`27) may be used to dcterminc thc availablc processing
`power of lhe computer Z4
`Thc availabkb or unuscil processing bandwidth of thc
`computer 24 gcncrally rcfcrs to thc banilwidth of thc com-
`puter 24 that is nol being currently used by other executing
`prt&grams.
`Retermng lo FIG. 4, in some embodiments, the selection
`routine 26 mav (upon execuuon by lhe microprocessor 80,
`fir example) cause the computer 24 to determine (block 30)
`the type of the microprocessor 80 and determine (block 32)
`the nperating frequency of the microprocessor 80 The
`computer 24 may dcterminc thc type of thc processor by, for
`cxamplc, executing a CPU identificatio utility application
`prt&gram, such as a utility application program called CPUI-
`D EXE available from Intel*a websiie ai
`"htlp.,'eveloper.intel.corn/design'pertloot)cpuid,'index.him." The
`computer 24 may determine the operating frequency of the
`prncessor 19 by, for example, executing the following C
`code to call a function of a basic input 'output system (BIOS)
`of thc computer 24:
`
`uns gned lon cptmotmspeed (nt
`
`locksi
`
`speed
`
`st&eel FREQ IVFO cpu
`HKEY hKey;
`LPBYTE PtocSpccd.
`DWORD bugcn, tcu
`tf ('RcgopcnKcyEx (HKEY I.OCAL HACHIVE. "HARDWARE't
`DESCRIPTIOI X System)',Centra)P&o esto&L0" 0, KEY READ
`a hK yfi
`
`Pt
`
`sp d =(),
`
`tet=Re Que yValueEx (hKey. — HHzx HULL. Kt:LL
`(LPBYTE) RF&o Speed, Rbunen).
`t (tet '= ERROR SUCCESS)
`tet=ReqQue yValueEx (hKey. — Hhzx HULL Vi&LL
`(LPBYTE) RP&ocSpccd, Rbuficn),
`tt (tct '= ERRORSUCCESS)
`tct=Rcq&VnctyValucEx (hKc) "-mhzb VI)LL, Kt!LL.
`(LPBYTE) RP&ocSpccd, Rbuficn),
`il gi'los K ) IhK y),
`t == I RROR sl'('I'I SS)
`il'
`
`t
`
`pu speed = cpuspeed( I cks)
`speed norm fteq.
`return Hatt
`
`Based on the type of microprocessor 80 and the operating
`frequency, the routine 26 may then cause the computer 24 to
`sclcct (block 34) onc of thc routines 27 to perform thc
`ilcsircd function.
`Retermng lo FIG. 5, in some embodiments, the selection
`of lhe routines 27 may be aided by a look-up table 28. The
`look-up table Zg may include rouune idenuliers 37 that point
`to difFerent routines 27 In this manner, the computer 24
`selects one of the identifiers 37 based on, for example, the
`type of the microprocessor 80 and thc operating frequency
`of thc microprocessor 80. Morc than onc of thc idcntificrs 37
`may identify Ihe same routine 27.
`In some embodiments, the selecuon rounne 26 may use
`more than one loot-up table. For example, referring to
`I'IGS. 7 and 8,
`the selection routine 26 may cause the
`computer 24 to use two look-up tables 43 and 45 'I'he table
`
`

`

`6,122,744
`
`43 mcludes pointers 35 that point to columns of the table 45.
`In this manner, lhe computer 24 selects the porn&era 35 based
`on, for cxamplc, thc type of thc microprocessor 80 and the
`operating frcqucncy of thc microprocessor 80. As an
`example, for an operating frequency I a and a processor type
`Pc, the computer selects the identifier 35 called Pl'R2.
`in &urn, points lo one of Ihe
`The selected pointer 35,
`columns of the table 45 which includes ilifi'erent rouune
`identificrs 57 which point
`to dift'eront routines 27. The
`computer 24 sclccts an entry of Ihc sclcctcd column bascll on
`0„,) of the computer 24
`the available bandwidth (0„ IL .
`In this manner, to use the tables 43 and 45, the selection
`rouune 26 causes Ihe computer 24 to determine (block 4U
`(see FIG. 6)) the type of microprocessor 8U (used to execute
`frc-
`the routine 27), dctcrminc (block 42) thc opcratin
`
`&0
`
`I'he available process-
`ing bandividth is the unused bandwidth that is available to
`the processor for execuung additional instructions. Base&1 on
`the type of operaung frequency,
`the selecuon routine 26
`causes thc computer 24 to sclcct thc appropriate pointer 35 zn
`from lhe table 43 (block 46) and using the pointer and the
`bamlwitlth, select the appropriale rouune 27 from the table
`45
`
`qucncy of thc microprocessor 80 and dctcmiinc (blocl'4)'-'heavailable processing banrlwidth.
`
`There are a number of difi'erent ways to determine the
`available bandwidth of the computer 24 I'or example, for a
`WindowsCa& operating system, thc sclcction program 26 may
`cause thc computer 24 to base a determination of the
`available processing bandwidth on the number of processes
`that are created and the prionly of these processes. The
`selection program 26 might also consider the priority of
`threads that are being used in these processes. 11&e select&on
`the type of application
`program 26 may also cons&tier
`programs that arc currently tieing cxccutcd by Ihc computer
`24 and the application program that is currently cxccuting as
`a foregrouml process. The delerminauon may also use, for ZS
`example, a W&ndows applicauon program called SYS-
`MON.EXE which accesses the Performance Registry of
`Windo&vsa and allows mnnitoring, of system performance
`and resources
`Thc determination of availablc processing bandwillth may an
`also be based on harllwarc observations. For example,
`referring to FIG. 9, in the computer 24, logic 122 w&upled to
`a local bus 82 may incremenl a counter 120 whenever the
`bus 82 rs active In this manner, the selection program 26
`may cause the microprocessnr 80 to periodically read a
`value (a count, for example) frnm the counter 120 and based
`on this value, dctcrminc thc available processing bandwillth.
`Thc computer 24 might also include a system memory 88
`the selecuon
`which might store, for example, a copy of.
`the tables 29, 43 and&or 45.
`rounne 26 amf
`In some
`embodiments, the microprocessor 80 executes the selecuon
`routine 26 to determine a type of the microprocessor 80; to
`determine an operating frequency nf the microprocessor 80,
`and based on the type and operating frcqucncy, to select one
`of thc routines 27. Thc microprocessor 80 might also base
`the srdection on an available processm ~ bandwrdth of the
`microprocessor 8U. Atter the selection of the rouune 27, the
`microprocessor 811 may then execute lhe selected routine.
`The memory 88, the microprocessnr 80 and the bridge/
`system controller mrcuitry 84 are all coupled to the local bus
`82. Thc circuitry 84 also interfaces thc host bus 82 to a
`downstream bus 99 which is coupled to an I/O controller 90
`and a network interface card 92, as examples. The computer
`24 may also have, as examples, a CD-ROM drive IUII, a
`fioppy disk dnve 94 and,'or a hard disk ilnve 96.
`In other embodiments, the computer system may mclude
`multiple microprocessors, and some of these microproces-
`
`n
`
`s
`
`ss
`
`aors might perform the above-staLed funcuons that are
`pcrformcd by thc microprocessor 80.
`While thc invention has been disclosed with rcspccl to a
`1&miled number of. embodiments, those skilled in the art w&11
`appreciate numerous modifications anil variations there-
`from. Il is intended thai the appended claims cover all such
`moifificalions and variauons as fall within the true spirit and
`scnpe of the invention.
`What is claimed.
`l. An article comprrs&ng a processor readable siorage
`medium storing instructions to cause a processor to
`dcterminc an operating frcqucncy of thc processor;
`select a routine from a group of. al least Iwo routines, Ihe
`selected routine being adapted lo subslannally opumize
`execution of the selected routine at
`the determined
`frequency relative to the remaining said at least two
`routines; and
`execute Ihe, selecletl rounne.
`2 The article of claim 1, wherein the medium further
`stores instructions lo cause the computer to call a BIOS
`function to determine the operating frequency
`3 'I'he article of claim I, ivherein the medium further
`stores instructions to dctcrminc a type of thc processor and
`further base thc sclcction of thc routine on thc type.
`4 The article of claim 3, wherein the medium further
`stores inslrucuons lo cause the computer lo use lhe type of
`processor and the operating frequency to retneve an iden-
`tifier that identifies the selected routine
`5 The article of claim I, wherem the routines comprise
`lhgital imaging routines.
`6 Thc article of claim 5, whcrcin thc digital imaging
`routines comprise an interpolation routine.
`7 An article comprrs&ng a processor readable siorage
`me&hum compritnng instructions lo cause a processor lo:
`determine a processing banrlw&dth being, used by the
`processor;
`determine an unused processin ~ bandwidth available for
`additional processing by Ihe processor,
`based on the unused processing bandwirlth, sclcct a rou-
`tine from a group of at least two routines; and
`execute Ihe, selecletl rounne.
`8 The article of claim 7, wherein the medium further
`stnres instructions to cause the processor to rleterm inc a type
`of the processor, and based on the type and the unused
`proccssin banllvvidth, sclcct thc routine from thc grnup.
`9 Thc article of claim 8, whcrcin thc instructions Io cause
`the processor to determine the type include an assembly
`language instruction.
`10. The article of claim 7, wherein lhe medium further
`stnres instructions to cause the processnr to determine an
`operating frequency of the processor, anil based on the
`opcratin frequency and the unuse&1 processing bandwidth,
`sclcct thc routine from thc group.
`11. The arncle of claim 10, wherein the inslrucnons to
`cause the processor lo determine the operating Irequency
`inclutfes a BIOS funcnon calL
`I'he article of claim 7, wherem the storage medium
`12.
`further stores instructions to cause the prncessor to use a
`type of the processor an operating frcqucncy of thc proces-
`to rctricvc an idcntificr that
`idcntifics the sclcctcd
`sor
`rou line.
`13. The arncle of claim 7, wherein Ihe rouunes compr&se
`ihgital imaging routines.
`14. 'I'he article of claim 13, wherein the rnutines comprise
`an interpolation routine
`
`

`

`6,122,744
`
`15. A method for use with a processor, composing.
`determining an unused prncessing bamlwidth available
`for additional processing liy lhc processor;
`baserl on the unused processing bamlwidth, selectrng a
`routine from a group ol. al leasl two routines, and
`executing the selected routine.
`16. Thc method of claim 15, further comprising:
`determining an operanng frequency of the processor, aml
`further basing the selection nn the nperating frequency
`17. 'I'he method of claim 15, further comprising:
`determining a type of the processor, aml
`further basing the selection nn the type of processor
`lg. 'I'he method of claim 15, further comprising:
`calling an AVI function to determine thc unused process-
`ing bandwidth
`19. The method of claim 15, further comprising:
`determining an operating frequency of the processor,
`determining a type of thc processor; anil
`further basing the selection on ihe operating frequency
`and the type of processor
`20. An article comprising a processor readable storage
`medium storing instructions to cause a processor to:
`determine a processing bandwidth bemg used by the
`processor;
`determine an unused processing bandwidth available for
`additional processing by the processor;
`select a routine from a group of al least lwo routines, the
`selecteil routine being adapted lo substantially opnmixe
`execution of the selected routine using at least a portion
`of the determined unused prncessing bandwidth rela-
`tive to thc remaining said al least two routines; and
`execute the selected rounne
`21. The article of claim 2U, wherein lhe medium further
`stores instructions to cause the processor lo delermme a lype
`of the processor, and based on the type and the unused
`processin bandwidth, select the routine from the group
`
`22. The article of claim 2U, wherein the medium further
`stnres instructions to cause the processnr to determine an
`operating frequency of the processor, anil based on the
`operating frequency and the unused prncessing bandwidth,
`sclcct thc routine from thc group.
`23. The article of claim 20, whcrcin thc storage medium
`further stores inslrucnons lo cause the processor lo use a
`type of the processor and an operating Irequency of the
`prncessor to retrieve an identifier that irlentifies the selected
`routine.
`24. 'I'he article of claim 20, wherein the rnutines comprise
`rhgital imaging routines.
`25. Thc article of claim 20, whcrcin thc routines comprise
`an interpolation routine.
`26. A method for use with a processor, comprising:
`determining an unused processing bandwidth available
`for additional processing by thc processor;
`seleclitlg ii roulitle from a group of at leasl two roulitles,
`the selected routine being adapted io substantially
`optimire execution of the selected routine using at least
`a portion of the determined unused processing band-
`width relative to the remaining said at least two rou-
`tines; and
`executing lhe selecteil rounne.
`27. The method of claim 26, further comprising.
`determining an operating frcqucncy of thc processor; and
`further bamng the selection on lhe operating Irequency.
`25. The method of claim 26, further comprising.
`determining a type of the processor, anil
`further basin the sclcction on thc type of processor.
`29. The method of claim 26, further comprising.
`determining an operating frequency of the processor;
`determining a type of thc processor; and
`further basing the selection on the operating Irequency
`anil the type of processor.
`
`is
`
`30
`
`33
`
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket