throbber

`United States Patent
`[19J
`DeLeeuw et al.
`
`US006088018A
`[11]Patent Number:
`6,088,018
`[45]Date of Patent:
`Jul. 11, 2000
`
`I 1111111111111111 11111 1111111111 111111111111111 1111111111 111111111111111111
`
`[54] METHOD OF USING VIDEO REFLECTION
`
`"Human-Object Reactor Technology", Reality Fusion, Inc.;
`
`
`
`
`
`IN PROVIDING INPUT DATA TO A
`
`
`http://www.realityfusion.com/techl.htm; 1997, 1 page.
`COMPUTER SYSTEM
`
`"Known-Object Reactor Technology", Reality Fusion, Inc.;
`
`
`
`
`
`
`
`http://www.realityfusion.com/tech2.htm; 1997, 1 page.
`William C. DeLeeuw, Hillsboro;
`
`
`[75] Inventors:
`
`
`Kenneth L. Knowlson, Portland;
`"Dynamic Layer Transformer Technology", Reality Fusion,
`
`
`
`
`Bradford H. Needham, Hillsboro, all
`
`
`Inc.; http://www.realityfusion.com/tech3.htm; 1997, 1 page.
`of Oreg.
`
`
`[73]Assignee:
`
`
`
`"RFI Press Release-Feb. 3, 1998", Reality Fusion, Inc.;
`
`
`
`
`Intel Corporation, Santa Clara, Calif.
`
`
`
`http://www.realityfusion.com/release_020398.htm; 1997, 2
`pages.
`
`[21]Appl. No.: 09/096,282
`
`
`
`[22]Filed: Jun. 11, 1998
`
`"Products", Reality Fusion, Inc.; http://www.realityfusion­
`
`
`
`
`
`
`.com/products.htm; 1997, 2 pages.
`....................................................... G09G 5/00 [51]Int. Cl.7
`
`
`
`
`
`
`"Corporate Profile", Reality Fusion, Inc.; http://www.reali­
`
`345/113; 345/158 [52]U.S. Cl. ........................... 345/156;
`
`
`
`tyfusion.com/corprofile.htm; 1997, 1 page.
`[58]Field of Search .....................................
`345/156, 157,
`
`
`
`
`"Developers", "Products", Reality Fusion, Inc.; http://ww­
`
`345/158, 145, 146, 113, 114, 115, 343,
`
`w.realityfusion.com/developers.htm; 1997, 1 page.
`344, 345
`
`Krueger, Myron W., "Artificial Reality", 2nd ed., c. 1991, 14
`
`
`
`
`
`pages.
`
`Foley, James D., "Computer Graphics: Principles and Prac­
`
`
`
`tice", 2nd ed. in C., c. 1997, 2 pages.
`
`[56]
`
`
`
`References Cited
`
`
`
`U.S. PATENT DOCUMENTS
`
`
`4,686,521 8/1987 Beaven et al. .
`
`4,833,462 5 /1989 Gover et al. .
`
`4,988,981 1/1991 Zimmerman et al. .
`
`
`
`5,270,688 12/1993 Dawson et al. ......................... 345/145
`
`Primary Examiner-Regina Liang
`
`
`
`
`5,283,560 2/1994 Bartlett .................................... 345/113
`
`
`
`Attorney, Agent, or Firm-Steven P. Skabrat
`
`
`
`5,436,639 7/1995 Arai et al. ............................... 345/156
`ABSTRACT
`
`5,463,728 10/1995 Blahut et al. .
`[57]
`
`
`
`
`5,528,263 6/1996 Flatzker et al. ......................... 345/156
`
`
`
`Providing input signals to a computer system having a
`
`
`
`
`5,594,469 1/1997 Freeman et al. ........................ 345/158
`
`
`5,616,078 4/1997 Oh ........................................... 345/156
`
`
`
`display, the computer system being coupled to a video
`
`
`
`camera or other video source, is accomplished by capturing
`FOREIGN PATENT DOCUMENTS
`
`
`
`video data signals generated by the video camera, the video
`
`
`
`
`data signals representing a scene, rendering the scene on the
`
`
`
`
`display such that the scene is reflected and transparently
`
`
`
`
`visible on the display, analyzing the video data signals to
`
`
`
`
`detect an object in the scene, and generating an input signal
`"Headlines-Feb. 1998", Reality Fusion, Inc.; http://www­
`
`
`
`
`
`
`for the computer system in response to the detected object.
`
`.realityfusion.com/; 1997, 2 pages.
`
`
`"Technology", Reality Fusion, Inc.; http://www.realityfu­
`
`27 Claims, 16 Drawing Sheets
`
`sion.com/technology.htm; 1997, 3 pages.
`
`8-139994 5/1996 Japan .
`
`OTHER PUBLICATIONS
`
`IPR2021-00922
`Apple EX1007 Page 1
`
`

`

`U.S. Patent Jul. 11, 2000
`6,088,018
`
`Sheet 1 of 16
`
`FlG. l
`
`IPR2021-00922
`Apple EX1007 Page 2
`
`

`

`00
`= �
`
`....
`
`00
`= 00
`
`....
`
`...., '"""'
`
`O'I
`
`0
`
`N
`....
`�
`
`
`
`=­�
`
`'JJ.
`
`0
`0
`0
`N
`
`
`:-'"""'
`
`'"""'
`
`=
`�
`
`28
`
`BUFFER
`DISPLAY
`VISIBLE
`
`/
`
`... STOCK TICKER,
`...
`
`WINDOW
`SECOND
`TEXT IN
`THIS IS
`
`WINDOW
`ANOTHER
`
`WINDOW
`TEXT IN A �__....,... __ ...,.__,
`HIS IS SOME
`
`!
`FRAME BUFFER
`
`FIG. 2
`18
`
`10
`!
`
`GRAPHICS
`
`TRANSPARENT
`
`OUTPUT FRAME BUFFER
`
`OPERATING SYSTEM
`
`I -..
`
`STOCK TICKER ... 1
`
`I_
`22
`
`20
`
`J
`
`-
`
`L
`
`16
`
`WINDOW
`SECOND
`
`WINDOW
`ANOTHER TEXT IN
`WINDOW THIS IS
`TEXT IN A
`
`12
`
`,HIS IS SOME
`
`'
`
`-
`
`INTERLEAVING
`
`......
`
`......
`�
`�
`
`•
`
`•
`
`26
`
`I-------�
`
`MIXING
`COLOR
`
`24
`
`,----------.i
`
`Apple EX1007 Page 3
`IPR2021-00922
`
`

`

`U.S. Patent Jul. 11, 2000
`6,088,018
`
`Sheet 3 of 16
`
`102
`
`I
`
`MICROPROCESSOR 104
`
`100
`/
`
`CACHE
`
`MEMORY
`
`BRIDGE
`
`PROCESSOR
`BUS I
`105
`HOST 1)106
`1J8 HIGH PERFORMANCE
`
`1/0 BUS
`
`)10
`
`)12
`
`)14
`
`11 6
`I
`
`MAIN
`VIDEO
`1/0 BUS
`VIDEO
`BRIDGE MEMORY MEMORY DISPLAY
`
`)18 STANDARD 1/0 BUS
`)22
`
`)20
`
`J01
`
`MASS
`
`KEYBOARD AND
`
`
`
`STORAGE POINTING DEVICES
`
`VIDEO
`CAMERA
`
`FIG. 3
`
`IPR2021-00922
`Apple EX1007 Page 4
`
`

`

`U.S. Patent Jul. 11, 2000
`6,088,018
`
`Sheet 4 of 16
`
`212
`I
`
`200
`I
`
`OTHER
`
`APPLICATION
`
`PROGRAMS
`
`
`
`APPLICATION PROGRAMS
`
`USING TRANSPARENCY
`
`(
`204
`
`GRAPHICS API
`
`DISPLAY DRIVER
`208
`
`202
`TRANSPARENCY SUPPORT �
`
`
`
`VIDEO CONTROL API
`
`206
`
`VIDEO CARD
`
`VIDEO MEMORY
`
`210
`lJ
`
`114
`l/
`
`FIG. 4
`
`IPR2021-00922
`Apple EX1007 Page 5
`
`

`

`00
`
`= �
`
`....
`00
`= 00
`
`....
`0--,
`
`0 ...., '"""'
`
`Ul
`
`
`��....
`
`0
`0
`0
`N
`
`= :-'"""''"""'�
`�
`
` ......
`
` =
`
`�
`�
`•
`r:JJ.
`d •
`
`......�
`
`r300
`
`FRAME BUFFER
`FIRST WORKING
`
`I
`
`.
`I MEMORYi
`
`I
`
`I
`I
`
`OUTPUT FRAME
`
`BUFFER I
`SYSTEM
`
`OPERATING
`
`'
`I
`'
`
`FIG. 5
`
`� 10
`I
`
`SECOND WORKING
`
`FRAME BUFFER
`
`302
`
`�
`
`I
`
`I .
`
`I
`I
`
`I
`
`I
`
`FRAME BUFFER 2
`GRAPHICS
`TRANSPARENT
`
`�
`19
`
`I
`I
`I
`'
`
`I VIDEO
`I I
`I
`114
`
`MEMORY
`I MAIN
`112
`
`GRAPHICS
`
`I
`18
`
`304
`
`M/
`
`I N
`FRAME BUFFER 1 . 306
`TRANSPARENT I
`
`Apple EX1007 Page 6
`IPR2021-00922
`
`

`

`U.S. Patent
`6,088,018
`
`
`
`Sheet 6 of 16
`
`Jul. 11, 2000
`
`T+OS
`OS
`MIX
`
`T+OS
`OS
`MIX
`
`T+OS
`OS
`MIX
`
`• • •
`
`OS
`
`T+OS
`OS
`MIX
`
`T+OS
`OS
`MIX
`
`T+OS
`
`MIX
`
`T+OS
`OS
`MIX
`
`T+OS
`OS
`MIX
`
`T+OS
`OS
`MIX
`
`OS
`
`T+OS
`OS
`MIX
`
`T+OS
`OS
`MIX
`
`T+OS
`
`• • •
`MIX
`
`•
`
`•
`
`•
`
`•
`
`•
`
`•
`
`FIG. 6
`
`IPR2021-00922
`Apple EX1007 Page 7
`
`

`

`6,088,018
`U.S. Patent Jul. 11, 2000
`
`Sheet 7 of 16
`
`400
`
`DETERMINE OPERATING SYSTEM
`DISPLAY OUTPUT INFORMATION
`
`, '
`
`ALLOCATE TWO WORKING FRAME
`
`BUFFERS IN VIDEO MEMORY
`
`I
`
`COPY DATA FROM VISIBLE OPERATING
`
`SYSTEM OUTPUT FRAME BUFFER TO
`
`ONE OF THE ALLOCATED WORKING
`
`FRAME BUFFERS
`
`MAKE OPERATING SYSTEM
`
`OUTPUT FRAME BUFFER
`
`NON-VISIBLE
`
`,,
`
`MAKE SELECTED WORKING
`
`FRAME BUFFER VISIBLE
`
`FIG. 7
`
`IPR2021-00922
`Apple EX1007 Page 8
`
`

`

`6,088,018
`U.S. Patent Jul. 11, 2000
`
`Sheet 8 of 16
`410
`
`I
`
`START
`
`J12
`
`COPY OPERATING SYSTEM OUTPUT
`FRAME BUFFER TO NON-VISIBLE
`FIRST WORKING FRAME BUFFER
`
`4)4
`
`PERFORM MIXING OPERATION ONTO
`
`FIRST WORKING FRAME BUFFER WITH FIRST
`
`WORKING FRAME BUFFER AND SELECTED
`
`ONE OF THE TRANSPARENT
`
`GRAPHICS FRAME BUFFERS
`
`MAKE FIRST WORKING FRAME BUFFER
`
`)416
`
`
`
`VISIBLE AND SECOND WORKING
`
`FRAME BUFFER NON-VISIBLE
`
`1
`
`J18
`
`COPY OPERATING SYSTEM OUTPUT
`
`
`
`FRAME BUFFER TO NON-VISIBLE SECOND
`
`WORKING FRAME BUFFER
`
`J20
`
`PERFORM MIXING OPERATION ONTO
`
`SECOND WORKING FRAME BUFFER WITH SECOND
`
`WORKING FRAME BUFFER AND A SELECTED
`
`
`
`TRANSPARENT GRAPHICS FRAME BUFFER
`
`J22
`
`MAKE SECOND WORKING FRAME BUFFER
`
`VISIBLE AND FIRST WORKING
`
`FRAME BUFFER NON-VISIBLE
`
`FIG. 8
`
`IPR2021-00922
`Apple EX1007 Page 9
`
`

`

`U.S. Patent Jul. 11, 2000
`6,088,018
`
`Sheet 9 of 16
`
`426
`;
`DETERMINE MEMORY LOCATION IN
`WORKING FRAME BUFFER FOR PLACEMENT
`OF POINT M OF TRANSPARENT
`GRAPHICS FRAME BUFFER
`
`I
`
`'
`
`READ PIXEL FROM WORKING FRAME BUFFER J 428
`
`AND DETERMINE CORRESPONDING PIXEL FROM
`
`CURRENTLY SELECTED TRANSPARENT
`GRAPHICS FRAME BUFFER
`
`PERFORM WEIGHTED AVERAGE OF WORKING J 430
`FRAME BUFFER PIXEL AND TRANSPARENT
`GRAPHICS FRAME BUFFER PIXEL
`432
`I
`PLACE RESULT IN WORKING FRAME
`BUFFER AT SAME LOCATION
`434
`,
`I
`DETERMINE NEXT WORKING
`
`FRAME BUFFER LOCATION, TAKING INTO
`
`ACCOUNT INTERLEAVING PATTERN
`
`'
`
`,
`436
`MORE
`YES
`PIXELS
`?
`
`NO
`
`J38
`END
`
`FIG. 9
`
`IPR2021-00922
`Apple EX1007 Page 10
`
`

`

`U.S. Patent Jul. 11, 2000
`16 6,088,018
`Sheet 10 of
`
`502
`l
`
`APPLICATION
`PROGRAM
`
`5JB
`5J6
`HANDLE
`FILTER
`INPUT
`INITIALIZATION EVENTS
`
`I
`
`701
`VIDEO I
`CAMERA_,
`
`COM
`INTERFACES
`
`512
`
`04
`J
`J10
`
`FILTER
`GRAPH
`MANAGER
`
`5JD
`VIDEO
`DATA
`
`FILTER
`GRAPH
`
`FIG. 10
`
`IPR2021-00922
`Apple EX1007 Page 11
`
`

`

`U.S. Patent Jul. 11,
`16 6,088,018
`Sheet 11 of
`2000
`
`ll
`
`0
`
`c::
`�-----
`C:: LU
`0N
`...J >-
`0 ...J
`C.) �
`<(
`
`N
`
`�----- c::
`0
`co I-
`0 u
`...J LU
`co I-LU
`Cl
`
`I
`
`co
`��
`Cl<C LU
`z a.. I-
`�-----
`0 (/) �
`UC:: LU
`LUO� (/) ...J 0Ou u
`
`>-
`
`co
`c:: u zLU LU
`�-----
`0 C:: I C::
`LU LU 1-<(Cl Cl - a..
`-z �(/)>LU z
`� �
`I-
`
`v
`
`LU C:: �LU
`�'
`I-a.. I-
`(/) (/) c::
`c::� LU
`u.o�...J 0Ou u
`
`N
`
`LULU
`�'
`'
`
`0
`N
`
`LU
`I{)'
`0�LU :::>
`Cl I-
`-c..
`> <(u
`
`'
`
`�ILU a..
`��
`u::: (.')
`
`IPR2021-00922
`Apple EX1007 Page 12
`
`

`

`I
`
`'
`
`U.S. Patent Jul. 11, 2000
`16 6,088,018
`Sheet 12 of
`540
`CREATE A FILTER �
`GRAPH
`J42
`LOCATE VIDEO
`RENDERER WITH
`
`TRANSPARENCY FILTER
`
`IN THE FILTER GRAPH
`J44
`SET DESIRED LEVEL OF
`OPACITY INTO THE VIDEO
`RENDERER WITH
`
`TRANSPARENCY FILTER
`5J6
`LOCATE COLOR
`ANALYZER FILTER
`IN THE FILTER GRAPH
`' J48
`SET COLOR RANGES TO BE
`TRACKED AND CORRESPONDING
`ALPHA VALUES INTO THE
`COLOR ANALYZER FILTER
`J50
`FIG. 12
`LOCATE BLOB DETECTOR
`FILTER IN THE FILTER GRAPH
`J52
`SET CONTROL WINDOW ID,
`ALPHA VALUES AND CORRESPONDING
`
`CONTROL MESSAGES INTO THE
`BLOB DETECTOR FILTER
`
`'
`
`I
`
`START DATA FLOW l,/55 4
`THROUGH THE FILTER GRAPH
`
`IPR2021-00922
`Apple EX1007 Page 13
`
`

`

`U.S. Patent Jul. 11, 2000
`16 6,088,018
`Sheet 13 of
`
`560
`
`WINDOW
`MESSAGE
`READY?
`
`NO
`
`YES
`
`NO
`
`566
`
`BLOB TYPE 2
`DETECTED
`?
`
`562
`
`BLOB TYPE 1
`DETECTED
`?
`
`YES
`
`568
`
`NO RECORD BLOB LOCATION
`AND SIZE IN TYPE 2 LIST
`
`YES
`
`564
`
`RECORD BLOB LOCATION
`AND SIZE IN TYPE 1 LIST
`
`NO
`
`YES
`
`572
`
`---------i
`
`DETECT VALID
`INPUT EVENT
`
`574
`
`APPLICATION
`CLOSE MESSAGE
`
`NO
`
`578
`
`FIG. 13
`
`580
`
`DELETE THE
`FILTER GRAPH -------1
`
`STOP THE
`FILTER GRAPH
`
`EXIT THE APPLICATION
`PROGRAM
`
`IPR2021-00922
`Apple EX1007 Page 14
`
`

`

`U.S. Patent Jul. 11, 2000
`16 6,088,018
`Sheet 14 of
`
`START
`
`600
`I
`
`END OF BLOB
`TYPE 1 LIST?
`
`NO
`
`YES
`
`602
`
`FIND CLOSEST BLOB IN
`BLOB TYPE 2 LIST AND
`RECORD INDEX OF BLOB
`TYPE 2 IN BLOB TYPE 1
`LIST
`
`604
`
`GO TO NEXT ENTRY
`IN BLOB TYPE 1 LIST
`
`NO
`
`YES
`
`606
`
`FIND CLOSEST TYPE 1/TYPE 2
`
`PAIR IN BLOB TYPE 1 LIST
`
`608
`
`ISTHE
`CLOSEST PAIR LESS
`THAN THRESHOLD
`NO
`DISTANCE APART?
`
`YES
`
`610
`
`SUBMIT INPUT EVENT TO
`OPERATING SYSTEM
`
`611
`
`SUBMIT OTHER INPUT
`EVENT TO OPERA TING
`SYSTEM
`
`--, 612
`-------'-----
`
`RESET TYPE 1 BLOB LIST
`AND TYPE 2 BLOB LIST
`
`��__,614
`
`EXIT
`
`FIG. 14
`
`IPR2021-00922
`Apple EX1007 Page 15
`
`

`

`U.S. Patent Jul. 11, 2000
`6,088,018
`
`Sheet 15 of 16
`
`,,--- - --._700
`START
`
`702
`
`CREATE VIDEO CONTROL API OBJECT,
`THREE VIDEO FRAME BUFFERS AND
`SECONDARY THREAD
`
`704
`
`IF TRANSPARENT GRAPHICS FRAME
`
`BUFFERS DO NOT EXIST OR THEIR SIZES
`HAVE CHANGED, CREATE NEW TRANSPARENT
`GRAPHICS FRAME BUFFERS AND MARK THE FIRST
`
`TRANSPARENT GRAPHICS FRAME BUFFER AS ACTIVE
`
`-�-----------,
`.---------
`706
`CREATE A GDI DISPLAY CONTEXT (DC) FOR THE
`
`ACTIVE TRANSPARENT GRAPHICS FRAME BUFFER
`
`.-------�--------,
`708
`USE GDI TO DRAW VIDEO ON THE
`
`TRANSPARENT DISPLAY CONTEXT
`
`MARK INACTIVE TRANSPARENT GRAPHICS 710
`
`
`FRAME BUFFER AS ACTIVE AND MARK ACTIVE
`
`TRANSPARENT GRAPHICS FRAME BUFFER AS INACTIVE
`
`712
`�-------L--------�
`
`DELETE TRANSPARENT DISPLAY CONTEXT
`
`�-------L--------�
`714
`SET SYSTEM EVENT TO INDICATE THAT
`
`NEW FRAME BUFFER IS READY FOR
`MIXING
`
`716
`
`718
`
`720
`
`MORE VIDEO
`FRAMES TO
`PROCESS? NO
`
`DESTROY
`WAIT FOR SECONDARY
`FRAME
`THREAD TO TERMINATE
`BUFFERS
`
`722
`
`FIG. 15 END
`
`IPR2021-00922
`Apple EX1007 Page 16
`
`

`

`U.S. Patent Jul. 11, 2000
`Sheet 16 of 16
`
`6,088,018
`
`740
`
`SECONDARY THREAD CREATED
`
`742
`
`WAIT FOR A TRANSPARENT GRAPHICS
`
`FRAME BUFFER TO BE COMPLETED
`
`744
`
`BLOCK TRANSFER CONTENTS OF OPERATING
`SYSTEM OUTPUT FRAME BUFFER TO BOTH
`WORKING FRAME BUFFERS
`
`746
`
`SET OPERATING SYSTEM OUTPUT FRAME
`
`
`
`BUFFER TO NON-VISIBLE STATE AND SET
`
`
`
`ONE WORKING FRAME BUFFER TO VISIBLE STATE
`
`WAIT PREDETERMINED TIME OR FOR A
`
`
`TRANSPARENT GRAPHICS FRAME BUFFER
`TO BE COMPLETED OR FOR INDICATION
`
`748
`
`THAT NEW FRAME BUFFER IS READY FOR MIXING
`
`750
`
`MIX CONTENTS OF INACTIVE TRANSPARENT GRAPHICS
`
`
`FRAME BUFFER WITH THE NON-VISIBLE WORKING FRAME BUFFER
`
`752
`
`FLIP THE TWO WORKING FRAME BUFFERS SO THE
`
`
`
`VISIBLE ONE BECOMES NON-VISIBLE AND THE
`
`NON-VISIBLE ONE BECOMES VISIBLE
`
`754
`
`YES
`
`756
`
`TERMINATE SECONDARY
`
`THREAD
`
`FIG. 16
`
`IPR2021-00922
`Apple EX1007 Page 17
`
`

`

`1
`
`6,088,018
`
`
`
`IN PROVIDING INPUT DATA TO A
`
`COMPUTER SYSTEM
`
`BACKGROUND
`
`2
`FIG. 6 is a diagram illustrating an alternating pixel
`
`
`
`METHOD OF USING VIDEO REFLECTION
`
`
`
`
`technique mixing between the transparent graphics frame
`
`
`buffer and the operating system output frame buffer accord­
`
`
`ing to an embodiment of the present invention;
`
`
`
`A portion of the disclosure of this patent document
`
`
`FIG. 7 is a flow diagram for initializing a system to
`5
`
`
`
`
`contains material which is subject to copyright protection.
`
`
`
`
`
`provide transparent graphics according to an embodiment of
`The copyright owner has no objection to the facsimile
`
`
`the present invention;
`reproduction by anyone of the patent document or the patent
`
`
`
`
`
`
`FIG. 8 is a flow diagram showing double buffering control
`
`
`
`
`
`disclosure, as it appears in the Patent and Trademark Office
`
`
`
`processing according to an embodiment of the present
`
`
`
`patent file or records, but otherwise reserves all copyright
`
`10 invention; and
`
`rights whatsoever.
`
`FIG. 9 is a flow diagram of color mixing and interleaving
`
`
`
`processing according to an embodiment of the present
`invention.
`1. Field
`FIG. 10 is a diagram illustrating components of an appli­
`
`
`
`15
`
`
`
`
`The present invention relates generally to computer sys-
`
`
`
`
`cation program providing a video reflection input technique
`
`
`
`tems and more specifically to a method for providing input
`
`
`
`according to an embodiment of the present invention;
`
`data to a computer system.
`
`
`
`to an graph according FIG. 11 is a diagram of a filter
`2.Description
`
`embodiment of the present invention;
`
`
`
`FIG.12 is a flow diagram of filter initialization processing
`
`
`
`Many techniques and devices for communicating input 20
`data from a user to a computer system have been developed.
`
`
`
`
`
`
`according to an embodiment of the present invention;
`Keyboards, cursor movement devices (such as a mouse,
`
`
`
`
`
`
`
`FIG. 13 is a flow diagram of handle input events process­
`
`
`
`trackball, and joystick, for example), pens and tablets, bar
`
`
`
`ing according to an embodiment of the present invention;
`
`
`
`code scanners, and other devices have all been used to direct
`
`
`
`
`for detecting valid FIG. 14 is a flow diagram of processing
`
`
`
`a computer to perform selected tasks. With the growing use
`
`
`25 input events according to an embodiment of the present
`of video cameras coupled to computer systems such as
`
`
`
`
`invention;
`
`
`
`
`
`personal computers (PCs), for example, opportunities for
`FIG. 15 is a flow diagram describing a processing thread
`
`
`
`
`
`using real-time video data in new and interesting ways have
`
`
`
`of a video renderer with transparency according to an
`
`
`
`
`
`arisen. However, many recent applications for video data in
`
`
`embodiment of the present invention; and
`
`
`
`PCs have been focused on various display features, without
`
`
`
`FIG. 16 is a flow diagram describing a processing thread
`
`
`regard for the possibilities of new input paradigms. What
`
`
`
`of a transparency mixer core according to an embodiment of
`
`
`
`may be valuable are input techniques that take advantage of
`
`the present invention.
`
`the capabilities of video cameras to enrich the PC user's
`
`
`experience and make PCs easier to use.
`DETAILED DESCRIPTION
`
`30
`
`35
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`
`
`SUMMARY
`In the following description, various aspects of the
`
`
`
`
`
`
`
`present invention will be described. For purposes of
`
`
`An embodiment of the present invention is a method of
`
`
`
`
`explanation, specific numbers, systems and configurations
`providing input signals to a system having a display, the
`
`
`
`
`
`are set forth in order to provide a thorough understanding of
`
`
`system being coupled to a source of video data signals. The
`
`
`
`
`
`
`40 the present invention. However, it will also be apparent to
`
`method includes capturing video data signals generated by
`
`
`
`
`
`
`one skilled in the art that the present invention may be
`
`
`
`the video source, the video data signals representing a scene,
`
`
`
`
`
`
`practiced without the specific details. In other instances, well
`
`
`rendering the scene on the display such that the scene is
`
`known features are omitted or simplified in order not to
`
`
`
`
`
`
`transparently visible on the display, analyzing the video data
`obscure the present invention.
`
`
`
`
`
`signals to detect an object in the scene, and generating an
`
`
`An embodiment of the present invention is a method for
`
`
`
`
`input signal for the system in response to the detected object.
`45
`
`
`
`providing user input data signals to a computer system such
`
`
`as a PC, for example. Real-time video images may be
`
`
`
`
`captured by a video camera coupled to a PC or received from
`
`
`
`
`
`The features and advantages of the present invention will
`
`
`
`any other source of video data signals and rendered to the
`
`
`
`
`
`become apparent from the following detailed description of
`
`
`
`
`video display such that the captured 50 entire screen of the PC's
`
`
`the present invention in which:
`
`
`images may be made transparent and shown on the display.
`
`
`
`FIG. 1 is a diagram of a sample display portion illustrating
`
`
`The video data signals may be mixed with the normal
`
`
`
`video reflection according to an embodiment of the present
`
`
`
`
`application program and operating system software display
`invention;
`
`
`
`output data signals so as not to obscure the normal fore-
`
`
`FIG. 2 is a diagram illustrating an example of transparent
`
`
`55 ground display images. The resulting effect is that when the
`
`
`
`
`graphics data displayed with operating system output graph­
`
`
`
`video camera is pointed toward the user, the user may see a
`
`
`
`ics data according to an embodiment of the present inven­
`
`
`
`reflected image of himself or herself on the computer screen
`tion;
`
`
`
`while the user may also be able to see and interact with other
`
`
`
`FIG. 3 is a diagram illustrating a sample computer system
`
`
`
`
`display elements such as desktop icons or application pro-
`
`
`
`suitable to be programmed with a transparency method
`
`
`60 gram displays. Because the reflected image is displayed
`
`
`
`
`according to an embodiment of the present invention;
`
`
`
`transparently, it does not interfere with the display of the
`
`
`
`
`
`FIG. 4 is a diagram of a software and hardware stack for other display elements.
`
`
`
`
`implementing transparent graphics according to an embodi­
`Although some embodiments of the present invention are
`
`
`
`
`
`ment of the present invention;
`
`
`
`described herein with reference to a video camera, the
`
`
`
`
`
`
`FIG. 5 is a diagram illustrating multiple frame buffers 65 invention is not so limited in this respect. In alternate
`
`
`
`
`
`
`
`
`used for providing transparent graphics according to an embodiments, the source of the video data signals may be
`(VCR),
`
`
`
`
`embodiment of the present invention; any video source, such as a video cassette recorder
`
`IPR2021-00922
`Apple EX1007 Page 18
`
`

`

`6,088,018
`
`4
`3
`broadcast television signals, or previously stored video data
`
`
`finger and thumb and the images of the index finger and
`
`
`signals, for example.
`
`
`
`
`thumb are detected in the captured video images, a mouse
`
`down event may be introduced to the operating system
`
`
`
`One of the features of some embodiments of the present
`
`
`
`software. When the user releases the pinched hand position
`
`
`invention is that the user may see his or her reflection or
`
`
`
`and these images of the index finger and thumb are detected
`
`
`
`image on the computer screen after it is captured by the 5
`
`
`in the captured video images, a mouse up event may be
`
`
`video camera. Using this video reflection, the user may
`
`
`
`
`introduced. Other movements signifying specific input sig­
`
`
`
`
`interact with application program and operating system
`
`
`
`nals and events may also be defined in alternate embodi­
`
`
`
`
`display elements of the computer system's graphical user
`ments.
`
`
`
`
`interface (GUI) by physically moving real objects (such as
`FIG. 1 is a diagram of a sample display portion illustrating
`
`
`
`
`
`
`
`
`the user's hands and fingers, for example) that are in the field
`10
`
`
`
`video reflection according to an embodiment of the present
`
`
`
`of view of the video camera. The input capability of some
`
`
`
`invention. In this example, the image of the user is captured
`
`
`
`embodiments of the present invention may be provided
`
`
`
`by the video camera and rendered in a transparent manner to
`
`
`
`
`without any modification to existing application programs.
`
`
`
`
`
`the display. The user then interacts with display objects, such
`
`
`
`In embodiments of the present invention, these movements
`
`
`
`
`as application program icons, for example, to provide input
`
`
`
`
`may be used to direct actions within the computer system 15
`
`
`signals and events to the system.
`
`
`such as grasping or selecting icons and other application
`An underlying capability of some embodiments of the
`
`
`
`
`program elements, much as the user now does with a mouse
`
`
`present invention is a method of providing a transparent
`
`
`
`
`or other selection device. This physical movement activity to
`
`
`layer of display data signals (such as video data signals
`
`
`
`
`
`create a desired result while observing the user's reflected
`
`
`
`communicated by a video camera, for example) over the top
`
`
`
`image is very natural and intuitive for users. For example,
`20
`
`
`
`of another layer of display data signals on a computer
`
`
`
`
`users frequently look at reflected images of themselves in a
`
`
`
`display so that the user may see both layers clearly and
`
`
`
`
`mirror, for example, while manipulating objects with their
`
`
`
`substantially simultaneously. This capability will be
`
`
`
`hands without thinking very much about it. Additionally, it
`
`
`
`described first for general use and further below for use with
`
`
`
`
`is typically easy for users to use either a dominant or
`
`
`an input detection method of some embodiments of the
`
`non-dominant hand or both hands to perform operations
`
`
`
`
`present invention. The capability to display transparent
`25
`
`
`while viewing their reflected image. In alternate
`
`
`windows doubles, in essence, the maximum screen area
`
`
`
`
`embodiments, specific predetermined props may be used as
`
`
`
`available on a display for use by application programs. One
`
`
`the objects to direct actions within the computer. These
`
`
`
`embodiment is a method for producing transparent computer
`
`
`
`props may be active or inactive. Active props contain
`
`graphics layers by interleaving ( or alternating in a pattern)
`
`
`
`mechanical or electrical mechanisms such as light emitting
`
`
`the pixels from one video frame buffer with the pixels from
`30
`
`
`
`
`diode (LED) lights. Inactive props are items such as colored
`
`another video frame buffer. In this embodiment, selected
`
`
`
`
`sticks or paddles, fabric swatches, and colored gloves, for
`
`
`pixels from a first frame buffer are mixed by color averaging
`
`
`
`
`
`example, although the present invention is clearly not lim­
`
`
`with corresponding pixels from a second frame buffer to
`ited in this respect.
`
`
`reduce the "checkerboard" effect created by the use of
`
`
`
`
`spatial multiplexing alone. Additionally, because the degree
`
`
`
`While some embodiments of the present invention may 35
`
`
`
`of interleaving is adjustable and the color averaging may be
`
`
`
`not replace the use of a computer mouse entirely, it is a
`
`
`weighted, the degree of transparency of the displayed
`
`
`
`
`powerful new paradigm for user input in a computer system.
`images may be controlled.
`
`
`
`In particular, it presents a natural and direct method for
`
`
`manipulating computer display objects by moving real
`
`In this embodiment, an output frame buffer used by
`
`
`objects. Various types of application programs may be
`
`
`
`
`operating system software is not affected by provision of the
`40
`
`
`extended to make beneficial use of this input paradigm.
`
`
`
`
`transparency feature and the operating system is unaware of
`
`
`
`Computer games, for example, may employ user input
`
`
`
`the transparency operations. Hence, the transparency effect
`
`through video reflection for increased user interaction.
`
`
`
`
`
`provided by embodiments of the present invention does not
`
`
`
`
`Video presentation systems wherein a user points to selected
`
`
`
`
`require modifications to application programs for transpar-
`
`
`areas of video display data may be made easier to use.
`
`
`ency to work over them. Furthermore, input operations to
`45
`
`
`
`Video-conferencing applications may be extended to pro­
`
`
`application program and operating system windows are not
`
`
`
`vide additional input features. A combination PC/television
`
`
`
`affected by transparent foreground effects.
`
`
`
`(TV) may make use of this input capability, especially where
`An embodiment of the present invention operates by
`
`
`
`
`
`
`
`
`
`the distance between the user and display is relatively large.
`
`
`
`combining at least two frame buffers of computer graphics
`
`
`
`For many users, such as children, for example, the manipu-50
`
`
`output data or video data in the form of electrical signals.
`
`
`
`lation of real objects (such as their hands) to send input to
`
`
`The pixels of the output, or visible, frame buffer are created
`
`
`
`a computer system is more intuitive than other typical input
`
`
`by spatially interleaving the contents of two input frame
`devices.
`
`
`
`buffers. The interleaving in this embodiment is accom­
`
`
`In one embodiment, the colors of pixels in the video data
`
`
`
`plished by combining pixels of one frame buffer with those
`
`
`
`
`signals sent to the PC for processing and display may be 55
`
`
`
`
`of the other frame buffer. This results in the visual illusion
`
`
`
`analyzed to track the movement of real objects such as a
`
`
`
`
`of two displays of images layered one on another. As the
`
`
`
`
`user's hands. This may be assisted through the use of colored
`
`pixels are being interleaved, the pixels of the first frame
`
`
`
`
`
`dots attached to the user's hands or fingers or through other
`
`
`buffer are color averaged with the pixels of the second frame
`
`
`
`computer vision methods. Optionally, distinctive colors may
`
`
`buffer that they are about to replace. Color averaging is
`
`
`
`be placed on specific objects (like fingers and thumbs, for
`
`
`
`performed on the pixels of one frame buffer by averaging
`60
`
`
`
`
`example, or other props), to help the computer vision
`
`
`them with the corresponding pixels of the other frame buffer
`
`
`
`components of embodiments of the present invention isolate
`
`prior to, or during, interleaving them into the output frame
`
`
`
`and identify objects to be recognized as input event genera­
`
`
`
`
`buffer. The result comprises multiple overlapping images
`tors.
`
`
`
`
`being substantially simultaneously visible on a display such
`
`65 as a computer monitor, for example.
`
`
`
`In one embodiment, the cursor of the PC's mouse may be
`
`
`
`
`
`
`
`
`moved in accordance with the movement of a user's index FIG. 2 is a diagram illustrating an example of transparent
`
`
`
`
`
`
`finger and thumb. When the user "pinches" his or her index graphics data displayed with operating system output graph-
`
`IPR2021-00922
`Apple EX1007 Page 19
`
`

`

`6,088,018
`
`6
`5
`ics data according to an embodiment of the present inven­
`
`
`
`strikes to the input window (such as a mouse entry or text
`
`
`
`
`tion. Operating system output frame buffer 10 is an area of
`
`
`entry) without substantial interference with the display of
`
`
`memory used to store the current display data of the com­
`
`
`the transparent display components.
`
`
`puter system shown below in FIG. 3. The operating system
`
`
`
`In accordance with some embodiments of the present
`
`
`output frame buffer may be allocated in any memory avail­
`
`
`
`effects transparency 5 invention, a method for producing
`
`
`
`able to the operating system. A frame buffer is a set of
`
`
`
`
`
`employs minimal mixing of display contents. Instead, it
`
`
`
`storage locations to store a two-dimensional array of pixel
`
`
`
`
`relies on the human eye's inability to distinguish between
`
`data. The operating system output frame buffer may be
`
`
`
`the color of adjacent pixels on a computer monitor (in
`
`
`
`associated with operating system software of the computer
`
`
`
`essence, the human eye averages each pixel with its
`10 neighbor).
`
`
`
`
`
`system, which controls the generation and display of the data
`
`
`Some mixing is employed, because large com­
`
`
`
`
`signals on a computer monitor (not shown). In one
`
`
`
`
`
`puter monitors and low display resolutions may result in a
`
`
`
`
`embodiment, the operating system software comprises the
`
`
`
`"checkerboard" effect when pixels are interleaved in this
`
`
`Windows 95® or Windows NT® operating system software
`
`
`
`
`manner. In one embodiment, one half of the pixels from a
`
`
`
`available from Microsoft Corporation, although other oper­
`
`
`
`first frame buffer (such as the operating system output frame
`
`
`
`ating system software supporting graphical user interfaces
`
`
`
`half of the15 buffer) are averaged with the corresponding one
`
`
`
`
`may also be employed. In this example, the operating system
`
`
`
`pixels from a second frame buffer (such as the transparent
`
`
`
`output frame buffer 10 contains application program display
`
`
`
`graphics frame buffer) as the pixels of the two frame buffers
`
`
`
`data signals for three overlapping windows shown pictori­
`
`
`
`are interleaved into a third display buffer. By averaging a
`
`ally in FIG. 2 and labeled 12, 14, and 16, respectively.
`
`
`
`
`
`fraction of the pixels, there may be a decrease in the
`
`
`the transparency 20 processing power used when providing
`
`
`
`Transparent graphics frame buffer 18 is an area of
`
`
`
`
`effect. In alternate embodiments, different percentages of
`
`
`memory used to store the display data of transparent graph­
`
`
`
`
`pixels may be averaged (e.g., one fourth of the pixels, one
`
`
`
`
`ics for substantially simultaneous display with the display
`
`
`
`
`
`eighth of the pixels, one sixteenth of the pixels, one thirty­
`
`
`
`data signals of the operating system output frame buffer.
`
`
`
`second of the pixels, or any one Nth of the pixels where N
`
`
`This area of memory may be allocated in any memory
`
`
`is a positive integer), and the percentages may be changed
`
`
`
`
`
`available in the system. Transparent graphics frame buffer
`25
`dynamically
`
`
`18 may be used to store frames of video data received from
`
`
`
`a video camera or other source of video data signals. In the
`FIG. 3 is a diagram illustrating a sample computer system
`
`
`
`
`
`
`example shown in FIG. 2, display components such as a
`
`
`
`
`suitable to be programmed according to an embodiment of
`
`
`clock 20 and stock ticker 22 are shown as sample application
`
`
`
`a method for producing transparency displays in conjunction
`
`
`program display features which illustrate the use of
`
`
`
`30 with video reflection to obtain user input signals in accor­
`
`
`
`
`transparency, although generally any display components
`
`
`
`dance with the present invention. Sample system 100 may be
`
`
`
`may be made transparent through the use of embodiments of
`
`
`
`used, for example, to execute the processing for the methods
`
`
`
`
`the present invention. More specifically, in embodiments of
`
`
`described herein. Sample system 100 is representative of
`
`
`the present invention, captured video frames may be shown
`
`
`computer systems based on the PENTIUM®, PENTIUM®
`35 Pro, and PENTIUM® II microprocessors available from
`
`
`
`
`as a sequence of transparent images on the display.
`
`
`
`
`Intel Corporation, although other systems (including per­
`
`
`
`The display components of the operating system output
`
`
`sonal computers (PCs) having other microprocessors, engi­
`
`
`
`frame buffer and the transparent graphics frame buffer may
`
`
`
`
`neering workstations, set-top boxes and the like) may also be
`
`
`be combined in block 24 by color mixing selected corre­
`
`
`used. Sample system 100 includes microprocessor 102 and
`
`sponding pixels of each buffer while interleaving the result­
`
`
`
`
`
`40 cache memory 104 coupled to each other through processor
`ing pixels of the color mixing operation with the operating
`
`
`
`
`bus 105. Sample system 100 also includes high performance
`
`
`
`
`system output frame buffer's pixels to form the display
`
`
`1/0 bus 108 and standard 1/0 bus 118. Processor bus 105 and
`
`
`
`
`components of visible display b

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