Source: http://www.google.com/patents/US7184592?dq=5636223
Timestamp: 2016-02-08 05:17:55
Document Index: 626966619

Matched Legal Cases: ['Application No. 8', 'art 21', 'art 21', 'art 28', 'art 21', 'art 23', 'art 25', 'art 25', 'art 25', 'art 25', 'art 21', 'art 240', 'art 240', 'art 240', 'art 240', 'art 240', 'art 240', 'art 240', 'art 241', 'art 22', 'art 240', 'art 22']

Patent US7184592 - Information processing apparatus, method of controlling the same, and ... - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inPatentsAn information processing apparatus includes a command region determination part determining a command region based on a stroke formed by an array of points indicated by coordinates input to a predetermined plane and a data transmission part transmitting, to the outside, data determined based on the...http://www.google.com/patents/US7184592?utm_source=gb-gplus-sharePatent US7184592 - Information processing apparatus, method of controlling the same, and program for causing a computer to execute such a methodAdvanced Patent SearchPublication numberUS7184592 B2Publication typeGrantApplication numberUS 10/246,652Publication dateFeb 27, 2007Filing dateSep 19, 2002Priority dateSep 19, 2001Fee statusPaidAlso published asUS20030128244Publication number10246652, 246652, US 7184592 B2, US 7184592B2, US-B2-7184592, US7184592 B2, US7184592B2InventorsSoichiro Iga, Katsuyuki OmuraOriginal AssigneeRicoh Company, Ltd.Export CitationBiBTeX, EndNote, RefManPatent Citations (16), Non-Patent Citations (2), Referenced by (16), Classifications (13), Legal Events (3) External Links: USPTO, USPTO Assignment, EspacenetInformation processing apparatus, method of controlling the same, and program for causing a computer to execute such a method
US 7184592 B2Abstract
An information processing apparatus includes a command region determination part determining a command region based on a stroke formed by an array of points indicated by coordinates input to a predetermined plane and a data transmission part transmitting, to the outside, data determined based on the input timing and the arrays of coordinates in the command region.
In order to simplify information inputting in a coordinate input device and increase its operability, reuse of already input information is considered. Japanese Laid-Open Patent Application No. 8-286831, for instance, discloses a technique for reusing information input in the past. According to the configuration disclosed therein, a gesture display region where information input in the past is displayed is provided separately from an object region where an object for operation is displayed. An operator selects a command displayed in the gesture display region. The operator then drags and drops the command onto the object displayed in the object region so that the command is reapplied to the object. With respect to the operation of reusing the input information, however, a more simple operation than “drag-and-drop” is desired.
Accordingly, it is a general object of the present invention to provide an information processing apparatus in which the above-described disadvantages are eliminated, a method of controlling such an information apparatus, and a program for causing a computer to execute such a method.
Time information on when the starting point (X[1], Y[1]) of a stroke is input may be stored in the variable “time”, for instance. Time information may be acquired, for instance, by obtaining date and time from a timer, but is not always required in a data structure.
Here, two successive strokes in a stroke array stored in the stroke storage part 21 of the central control unit 20 are defined as a first stroke ST[a] and a second stroke ST[a+1], respectively, in which “a” indicates a stroke number at any point stored in the stroke storage part 21 and takes values ranging from 1 to M. Further, of the coordinate values constituting the first stroke ST[a], the kth coordinate values are referred to by ST[a].X[k], ST[a].Y[k].
http://www5d.biglobe.ne.jp/˜tomoya03/shtml/algorithm/Hougan.htm The outline of the technique shown in the above-described Web page is as follows.
In the case of FIG. 6, it is determined whether a coordinate point P (px, py) is included in a stroke ST[u]. First, in steps S101 through S106, the stroke ST[u] is checked with respect to u satisfying 1≦u≦M. Of the vertexes forming the stroke ST[u], three vertexes (ST[u].X[v], ST[u].Y[v]), (ST[u].X[v+1], ST[u].Y[v+1]), and (ST[u].X[v+2], ST[u].Y[v+2]) forming a triangle are determined so that it is determined whether each triangle of the stroke ST[u] includes the coordinate point P. Specifically, in step S101, “1” is substituted in the temporary variable “u”. In step S102, it is determined whether u≦M. If u≦M, in step S103, the stroke data ST[u] is transmitted to the editing memory part 28. Then, in step S104, “1” is substituted in the temporary variable “v”. In step S105, it is determined whether v≦n−2. If v≦n−2, step S107 is performed. If v>n−2, in step S106, “u” is incremented by “1” and step S102 is performed.
In steps S107 through S112, the coordinates (GX, GY) of the center of gravity G of the triangle are calculated. In step S107, “0” is substituted in a temporary variable “w”. In step S108, “0” is substituted in each of GX and GY. In step S109, it is determined whether w≦v+2. If w≦v+2, step S110 is performed. If w>v+2, step S112 is performed. In step S110, the horizontal coordinate values of the stroke ST[u] are summed up and the vertical coordinate values of the stroke ST[u] are summed up. In step S111, “w” is incremented by “1” and step S109 is performed. In step S112, the average of the horizontal coordinate values of the stroke ST[u] and the average of the vertical coordinate values of the stroke ST[u] are obtained, that is, the coordinates (GX, GY) of the center of gravity G are calculated.
First, in step S150 of FIG. 8B, the time t1 when the first stroke ST[a] is drawn is obtained. Next, in step S151, the time t2 when the second stroke ST[a+1] is drawn is obtained. The stroke storage part 21 may obtain the times t1 and t2 as present time information, or measure the elapsed time from the activation of the information processing apparatus 1 for each of the times t1 and t2. Next, in step S152, the time difference t2−t1 is calculated to be compared with the predetermined threshold Tp. If t2−t1<Tp, the operation proceeds to step S002 in the case of incorporating the operation in step S001 of FIG. 3, and to step S007 in the case of performing the operation after “YES” in step S006. If t2−t1≧Tp, the operation ends.
More specifically, in step S201, “1” is substituted in the temporary variable “j”. In step S202, it is determined whether j≦M. If j≦M, step S203 is performed. If j>M, the operation ends. In step S203, it is determined whether j≠a and j≠a+1. If j≠a and j≠a+1, step S204 is performed. If j=a or a+1, in step S209, “j” is incremented by “1”. In step S204, “1” is substituted in the temporary variable “k”. In step S205, it is determined whether (ST[j].X[k], ST[j].Y[k]) is included in ST[a]. Here, the same method as described above with reference to FIG. 6 can be used for this determination, which will be more apparent if (ST[j].X[k], ST[j].Y[k]) and ST[a] are replaced with the coordinate point P and ST[u] of FIG. 6, respectively. Then, in step S206, “k” is incremented by “1”. In step S207, it is determined whether k>n. If k>n, step S208 is performed. If k≦n, step S205 is repeated. In step S208, the stroke ST[j] is stored in the command region storage part 23 as a stroke included in the stroke ST[a]. Then, in step S209, “j” is incremented by “1” and step S202 is repeated.
MaxX=Max (X coordinate values of the included strokes)
MaxY=Max (Y coordinate values of the included strokes)
MinX=Min (X coordinate values of the included strokes)
MinY=Min (Y coordinate values of the included strokes),
A well-known technique such as described in “Pattern Recognition,” Kenichi Mori et al., The Institute of Electronics, Information and Communication Engineers (IEICE) (1993) is employed for calculating a geometric feature.
FIG. 12 is a diagram showing a self-crossing. When there are coordinate points A, B, C, and D, that the line segments AB and CD cross each other means that the straight line passing the coordinate points A and B crosses the line segment CD and the straight line passing the coordinate points C and D crosses the line segment AB. Therefore, when the two coordinate points constituting the line segment are on the opposite sides of the straight line serving as a boundary, that is, when the straight line is given by “y=dx+e” and the values obtained as a result of substitution of the two coordinate points into “y−dx−e” have different signs, it is considered that the straight line and the line segment cross each other. As a result of performing this calculation operation on the combination of the straight line AB and the coordinate points C and D and on the combination of the straight line CD and the coordinate points A and B, if it is determined in each combination that the straight line crosses the line segment, it is determined that the line segments AB and CD cross each other.
In step S309, the gesture recognition part 25 determines the stroke ST[b] to be a gesture based on a variety of combinations of the features representing the shape of the stroke ST[b], such as “the length is sufficiently small,” “the circularity is high and the possession is low,” “the circularity is low and the possession is high,” and “the number of self-crossings is one and the variance in the horizontal direction is larger than that in the vertical direction.” When the gesture recognition part 25 recognizes the stroke ST[b] as a gesture, the gesture recognition part 25 assigns an ID number to the stroke ST[b] based on its shape. If the gesture recognition part 25 does not recognize the stroke ST[b] as a gesture in step S309, the stroke ST[b] is stored in the stroke storage part 21 as an ordinary stroke.
The stroke ST[b] is recognized as a gesture based on the following combinations of the features of its shape, for instance. Here, a description will be given, in the form of program codes, of a method of recognizing seven commands of “mouse click”, “mouse down”, “mouse up”, “arrow key up”, “arrow key down”, “arrow key right”, and “arrow key left.” In the following description, numeric parameters are based on empirical values for the purpose of description.
In the case of “mouse click,” for instance, a stroke is recognized as “mouse click” when the stroke has a length smaller than nine and the number of vertexes smaller than five. The other commands are recognized based on the combinations of a variety of features. Not only the number of gestures but also the number of commands can be increased by combining the features of the shape of the stroke in other ways than described herein.
// Recognition of “mouse click”
// Recognition of “mouse down” and “mouse
FIG. 15 is a conceptual diagram showing the relationship among the shape of a stroke determined to be the tag region (a tag region stroke), the number of self-crossings sc, and attribute information. The attribute information refers to the members (variables) of the CR[sc] structure, that is, host name, IP address, connecting ports, login user name, and password in the above-described format of storing the command region. The number of self-crossings of the tag (region) stroke is calculated, so that the attribute information is updated based on the calculated number as described above. That is, letting the calculated number be sc, CR[sc] is referred to so that the destination of transmission is changed to a new destination based on the “hostname” and “ip_address” information, the numbers of ports to be connected are changed based on the “ser_port” and “cli_port” information, and the new destination is accessed based on the “login_name” and “passwd” information.
In the case of “host name”, for instance, known host name data can be substituted beforehand in the corresponding variables of the structures as CR[1].hostname=“hostpc1,” CR[1].hostname=“hostpc2,” . . . .
In the case of prestoring the data in a file and reading out the data from the file as required, the data of “host name, IP address, self-port number, destination port number, login name, and password” of each structure may be stored in a line, being segmented by commas, as follows:
At this point, in the case of sc=0, for instance, the above-described data are read out from the file, so that the data can be read out successively in accordance with the number of self-crossings as CR[0].hostname=“hostpc1”,CR[0].ip_address=“169.254.25 5.0”,CR[0].ser_port=1000,CR[0].cli_port=1001,CR[0].lo gin_name=“john”,CR[0].passwd=“john'spassword.”
In the case of FIG. 18, the destination of command transmission is determined to be the PC-4 30 f when the number of self-crossings sc of the tag region is one in determining the command region. At this point, three commands of “screen forward” (GES1) “screen backward” (GES2), and “application change” (GES3) are transmitted to the PC-4 30 f. In this case, specifically, a screen A of the APP1 is switched to a screen B by the GES1 command on the display screen of the PC-4 30 f. Next, the screen B of the APP 1 is switched back to the screen A by the GES2 command. Further, the focus is shifted from the APP1 onto the APP2 by the GES3 command.
When the SER1 of the PC-4 30 f receives the GES1 in step S501 a of FIG. 19A, in step S502 a, the SER1 analyzes the GES1, and in step S503 a, the SER1 transmits the GES1 to the APP1 as a “screen forward” operation signal. In step S504 a, the APP1 receives the operation signal, and in step S505 a, the APP1 executes the command (or performs the operation specified by the command) so as to actually move the screen forward. Thereafter, likewise, steps S501 b through S505 b are performed so that the screen of the APP1 is moved backward to the previous one. Next, when the SER1 receives the GES3 in step S501 c, in step S502 c, the SER1 analyzes the GES3, and in step S503 c, the SER1 transmits to the APP2 an operation signal to activate the APP2. When the APP2 receives the operation signal in step S504 c, in step S505 c, the APP2 executes the command (or performs the operation specified by the command) and becomes active. Thereby, it is just like the application is switched from the APP1 to the APP2. Thus, by drawing a predetermined command in the command region of the information processing apparatus 1, application software in the PC terminal can be remote-controlled.
FIG. 20 shows commands in the case of controlling the video recording and reproduction apparatus 60 connected to the PC-5 30 g of FIG. 17 by drawing command gestures in the command region drawn on the information processing apparatus 1. The destination of command transmission is determined to be the PC-5 30 g when the number of self-crossings sc of the tag region is two in determining the command region. At this point, gesture commands such as “fast-forward” (GES4), “rewind” (GES5), “reproduce” (GES6), and “stop” (GES7) are defined as commands for controlling the video recording and reproduction apparatus 60. Thereby, when any of the gesture commands is drawn in the command region for command transmission, the video recording and reproduction apparatus 60 can be remote-controlled accordingly. Much more control gesture commands may be prepared, and the gesture strokes relating the commands may be related to other gesture stroke shapes.
Although the command gestures GES1 and GES2 of FIG. 18 are equal to the command gestures GES4 and GES5 of FIG. 20, respectively, the command gestures GES1 and GES4 cause different operations and the command gestures GES2 and GES5 cause different operations. This is because even when the GES1 and GES4 cause the same command of “right arrow key” to be transmitted from the information processing apparatus 1 so that the SER1 of the PC-4 30 f and the SER2 of the PC-5 30 g transmit the same “right arrow key” operation signal, the APP1 and the APP2 of the PC-4 30 f and the APP3 of the PC-5 30 g have different operation performing environments after receiving the operation signal. For instance, when “right arrow key” is input to the presentation software APP1 or APP2, the screen is moved forward to the next page. On the other hand, when “right arrow key” is input to the video apparatus control software APP3, the APP3 transmits a “fast-forward” control signal to the video recording and reproduction apparatus 60 connected to the PC-5 30 g through a serial port.
With respect to the condition (c), that the inter-point distance of the stroke is smaller than or equal to a predetermined distance means, for instance, that a distance Dsum that is the sum of the inter-point distances D1 through Dn of a stroke ST[d] calculated from the coordinates of the points forming the stroke ST[d] is smaller than or equal to the predetermined distance. In the second embodiment, this state may also be described as “the inter-point distance of a stroke is sufficiently small.” Here, an inter-point distance refers to the distance between two successive points of a stroke.
Further, with respect to the condition (d), whether time required between the contact of the writing material 10 b with the writing surface 10 a and the release of the writing material 10 b from the writing surface 10 a is shorter than a predetermined period is determined in the following manner. As shown in FIG. 25B, first, the indication detection part 240 acquires from a timer (not shown in the drawing) a time t0 at which the starting point (ST[d].X[0], ST[d].Y[0]) of the stroke ST[d] is input. Then, the indication detection part 240 acquires a time tn at which the end point (ST[d].X[n], ST[d].Y[n]) of the stroke ST[d] is input. Thereafter, the indication detection part 240 calculates a period Tdiff that is the difference between the time t0 and the time tn. If the period Tdiff is shorter than the predetermined period, it is determined that the time required by the writing material 10 b to be released from the writing surface 10 a after the contact therewith is shorter than the predetermined period. This state may also be described as “time required by the writing material 10 b to be released from the writing surface 10 a after the contact therewith is sufficiently short.”
In step S261 of FIG. 26, the indication detection part 240 determines whether all of the coordinates of the points (0 through N) forming the ST[d] are included in the ST[a+1]. As a result of the determination, if all of the coordinates of the points (0 through N) are included in the ST[a+1] (or “YES” in step S261), in step S262, the indication detection part 240 determines whether ST[d].n≦3, that is, whether the number of the points forming the ST[d] is smaller than or equal to three.
If it is determined in step S262 that the number of the points forming the ST[d] is smaller than or equal to three (or “YES” in step S262), in step S263, it is determined whether the distance Dsum of the inter-point distances of the three points is smaller than or equal to, for instance, ten (a value based on a predetermined unit length). If the distance Dsum is smaller than or equal to ten (or “YES” in step S263), in step S264, it is determined whether the period Tdiff required for the writing material 10 b to be released from the writing surface 10 a after contacting the writing surface 10 a for drawing the ST[d] is shorter than one second.
If it is determined in step S264 that the period Tdiff is shorter than one second (or “YES” in step S264), in step S265, it is determined whether any instruction (designation of a stroke or command data destination) is given to the ST[a+1] indicating the tag region. As a result, if it is determined that an instruction is given to the ST[a+1] (or “YES” in step S265), in step S266, attribute information attached to the ST[a] is presented to the operator.
In the case of “NO” in any of the above-described steps S261 through S266, the operation ends, so that it is determined that the ST[d] does not indicate a click.
sprintf(tmpBuf,“Command region %d is for
drawing transmission.”,CR[i].stroke_id);
sprintf(temBuf,“Command region %d is for
command transmission.”,CR[i].stroke_id);
In CR[i].type, it is specified whether the command region corresponding to the stroke ST[a] is for drawing transmission or command transmission. “0” is substituted in CR[i].type in the case of drawing transmission and “1” in the case of command transmission. The index number (a) of the stroke ST[a] forming the command region is substituted in CR[i].stroke_id. “Sprintf( )” is one of the character string operating functions of the C language. “Sprintf( )” substitutes, in compliance with a specified format, character strings specified by the second and succeeding arguments in a character string variable specified by the first argument. “% d” is a sign for outputting integer-type data as a character string.
Further, the information processing apparatus of the second embodiment can add a character string variable for free description, such as “description”, to the above-described structure data CR of the command region. A character string variable (attribute information) for describing the command region is added to “description” so that the contents added thereto may be presented to the operator in voice. The following is an example of the character string variable added to “description”:
The following contents may be provided as attribute information added to CR[i].description. In the following character string variables, “% s” is a sign for outputting character string-type data.
sprintf(CR[i].description, “This was used at the meeting B held on March 7th in the meeting room A.”);
sprintf(tmpBuf, “The port % d of the server % s is to be used.% s”,CR[i]hostname,CR[i].hostname,CR[i].ser_port, CR[i].description);
FIG. 27 is a flowchart for illustrating a method of controlling the information processing apparatus of the second embodiment. A description will be given, with reference to FIG. 27, of the method of controlling the information processing apparatus of the second embodiment. In step S271 of FIG. 27, the indication detection part 240 determines by the operation described with reference to FIG. 26 whether a click has been made in the tag region. If it is determined as a result of the determination that no click has been made (or “NO” in step S271), the indication detection part 240 waits until a click is made.
If it is determined in step S271 that a click has been made (or “YES” in step S271), in step S272, the attribute information presentation part 241 determines the attribute of the command region determined by the command region determination part 22. Then, in step S273, the indication detection part 240 further determines whether the click is a double click. If the click is not a double click (or “NO” in step S273), in step S274, the attribute of the command region obtained by the determination of step S272 is converted to a sentence.
If it is determined in step S273 that the click is a double click (or “YES” in step S273), in step S276, a command to transmit stroke data or a command to transmit a command is re-executed in accordance with the attribute of the command region determined by the command region determination part 22. Thereafter, the operation ends.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS5161113Jul 11, 1990Nov 3, 1992Ricoh Company, Ltd.CCD output signal processing method and apparatusUS5208874Sep 30, 1991May 4, 1993Ricoh Company, Ltd.Method for correcting image signal deteriorated by flare and image reading unitUS5218558Nov 8, 1990Jun 8, 1993Ricoh Company, Ltd.Output circuit of a charge-coupled deviceUS6292181 *Sep 2, 1994Sep 18, 2001Nec CorporationStructure and method for controlling a host computer using a remote hand-held interface deviceUS6333995 *Jan 29, 1999Dec 25, 2001International Business Machines CorporationSystem and methods for providing robust keyword selection in a personal digital notepadUS6421042Jun 9, 1999Jul 16, 2002Ricoh Company, Ltd.Coordinate position inputting/detecting device, a method for inputting/detecting the coordinate position, and a display board systemUS6429856May 10, 1999Aug 6, 2002Ricoh Company, Ltd.Coordinate position inputting/detecting device, a method for inputting/detecting the coordinate position, and a display board systemUS6587587 *Apr 5, 2000Jul 1, 2003Microsoft CorporationSystem and methods for spacing, storing and recognizing electronic representations of handwriting, printing and drawingsUS6628847 *May 15, 2002Sep 30, 2003Carnegie Mellon UniversityMethod and apparatus for recognition of writing, for remote communication, and for user defined input templatesUS6647145 *Jan 27, 1998Nov 11, 2003Co-Operwrite LimitedMeans for inputting characters or commands into a computerUS6839464 *Aug 13, 2002Jan 4, 2005Palmsource, Inc.Multiple pen stroke character set and handwriting recognition system with immediate responseUS6889365 *Feb 8, 2001May 3, 2005Fujitsu LimitedTerminal operation apparatusUS6952497 *Oct 31, 2000Oct 4, 2005Telefonaktiebolaget L M Ericsson (Publ)Method and system for electronically recording transactions and performing security functionJP2627407B2 Title not availableJPH07113871A Title not availableJPH08286831A Title not available* Cited by examinerNon-Patent CitationsReference1"Algorithm" http://www5d.biglobe.ne.jp/-tomoya03/shtmal/algorithm/Hougan.htm, 7 pages.2English Translation of the related part of "Pattern Recognition" by Kenichi Mori et al., The Institute of Electronics, Information and Communication Engineers (IEICE) (1993), pp. 173, line 8-18.Referenced byCiting PatentFiling datePublication dateApplicantTitleUS7430579May 1, 2007Sep 30, 2008Ricoh Company, Ltd.Conference support apparatus, information processor, teleconference system and computer productUS7831933Jan 12, 2005Nov 9, 2010Leapfrog Enterprises, Inc.Method and system for implementing a user interface for a device employing written graphical elementsUS7853193Nov 1, 2005Dec 14, 2010Leapfrog Enterprises, Inc.Method and device for audibly instructing a user to interact with a functionUS7916124May 3, 2006Mar 29, 2011Leapfrog Enterprises, Inc.Interactive apparatus using print mediaUS7922099Dec 30, 2005Apr 12, 2011Leapfrog Enterprises, Inc.System and method for associating content with an image bearing surfaceUS8261967Jul 19, 2006Sep 11, 2012Leapfrog Enterprises, Inc.Techniques for interactively coupling electronic content with printed mediaUS8423916 *Nov 6, 2009Apr 16, 2013Canon Kabushiki KaishaInformation processing apparatus, processing method thereof, and computer-readable storage mediumUS8952887Feb 27, 2009Feb 10, 2015Leapfrog Enterprises, Inc.Interactive references to related applicationUS20060066591 *Jan 12, 2005Mar 30, 2006James MarggraffMethod and system for implementing a user interface for a device through recognized text and bounded areasUS20060067576 *Jan 12, 2005Mar 30, 2006James MarggraffProviding a user interface having interactive elements on a writable surfaceUS20060077184 *Jan 12, 2005Apr 13, 2006James MarggraffMethods and devices for retrieving and using information stored as a pattern on a surfaceUS20060078866 *Jan 12, 2005Apr 13, 2006James MarggraffSystem and method for identifying termination of data entryUS20060080608 *Jan 12, 2005Apr 13, 2006James MarggraffInteractive apparatus with recording and playback capability usable with encoded writing mediumUS20090231637 *Mar 12, 2009Sep 17, 2009Ricoh Company, LtdSystem and method for scanning/accumulating image, and computer program productUS20100125787 *Nov 6, 2009May 20, 2010Canon Kabushiki KaishaInformation processing apparatus, processing method thereof, and computer-readable storage mediumUS20140223382 *Feb 1, 2013Aug 7, 2014Barnesandnoble.Com LlcZ-shaped gesture for touch sensitive ui undo, delete, and clear functions* Cited by examinerClassifications U.S. Classification382/188, 382/189, 345/179International ClassificationG06K9/00, G06F3/033, G06F3/041, G06K9/62, G06F3/048, G06T7/00Cooperative ClassificationG06F3/0488, G06F3/04883European ClassificationG06F3/0488, G06F3/0488GLegal EventsDateCodeEventDescriptionDec 4, 2002ASAssignmentOwner name: RICOH COMPANY, LTD., JAPANFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:IGA, SOICHIRO;OMURA, KATSUYUKI;REEL/FRAME:013548/0278Effective date: 20021029Aug 20, 2010FPAYFee paymentYear of fee payment: 4Aug 21, 2014FPAYFee paymentYear of fee payment: 8RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services