Method and apparatus for accelerated scrolling

Abstract
Improved approaches for users to with graphical user interfaces of computing devices are disclosed. A rotational user action supplied by a user via a user input device can provide accelerated scrolling. The accelerated nature of the scrolling enables users to scroll or traverse a lengthy data set (e.g., list of items) faster and with greater ease. The amount of acceleration provided can be performed in successive stages, and/or performed based on the speed of the rotational user action. In one embodiment, the rotational user action is transformed into linear action with respect to a graphical user interface. The resulting acceleration effect causes the linear action to be enhanced such that a lengthy data set is able to be rapidly traversed.
Description
BACKGROUND OF THE INVENTION

1. Field of the Invention


The present invention relates generally to a computing device and, more particularly, to a handheld computing device having a rotational input unit.


2. Description of the Related Art


There exist today many styles of input devices for performing operations with respect to a consumer electronic device. The operations generally correspond to moving a cursor and making selections on a display screen. By way of example, the input devices may include buttons, switches, keyboards, mice, trackballs, touch pads, joy sticks, touch screens and the like. Each of these devices has advantages and disadvantages that are taken into consideration when designing the consumer electronic device. In handheld computing devices, the input devices are typically buttons and switches. Buttons and switches are generally mechanical in nature and provide limited control with regard to the movement of a cursor (or other selector) and the making of selections. For example, they are generally dedicated to moving the cursor in a specific direction (e.g., arrow keys) or to making specific selections (e.g., enter, delete, number, etc.). In the case of handheld personal digital assistants (PDAs), the input devices tend to utilize touch-sensitive display screens. When using a touch screen, a user makes a selection on the display screen by pointing directly to objects on the screen using a stylus or finger.


In portable computing devices such as laptop computers, the input devices are commonly touch pads. With a touch pad, the movement of an input pointer (i.e., cursor) corresponds to the relative movements of the user's finger (or stylus) as the finger is moved along a surface of the touch pad. Touch pads can also make a selection on the display screen when one or more taps are detected on the surface of the touch pad. In some cases, any portion of the touch pad may be tapped, and in other cases, a dedicated portion of the touch pad may be tapped. In stationary devices such as desktop computers, the input devices are generally selected from keyboards, mice and trackballs. With a mouse, the movement of the input pointer corresponds to the relative movements of the mouse as the user moves the mouse along a surface. With a trackball, the movement of the input pointer corresponds to the relative movements of a ball as the user rotates the ball within a housing. Both mice and trackball devices generally include one or more buttons for making selections on the display screen.


In addition to allowing input pointer movements and selections with respect to a Graphical User Interface (GUI) presented on a display screen, the input devices may also allow a user to scroll across the display screen in the horizontal or vertical directions. For example, a mouse may include a scroll wheel that allows a user to simply roll the scroll wheel forward or backward to perform a scrolling action. In addition, touch pads may provide dedicated active areas that implement scrolling when the user passes his or her finger linearly across the active area in the x and y directions. Both devices may also implement scrolling via horizontal and vertical scroll bars that are displayed as part of the GUI. Using this technique, scrolling is implemented by positioning the input pointer over the desired scroll bar, selecting the desired scroll bar, and moving the scroll bar by moving the mouse or finger in the y direction (forwards and backwards) for vertical scrolling or in the x direction (left and right) for horizontal scrolling.


Further, consumer electronic products other than computers, such as cordless telephones, stereo receivers and compact-disc (CD) players, have used dials to enable users to select a phone number, a radio frequency and a specific CD, respectively. Here, typically, a limited-resolution display is used together with the dial. The display, at best, displays only a single item (number, frequency or label) in a low resolution manner using a character generator LCD. In other words, these devices have used single line, low resolution LCD readouts.


Thus, there is always a need for improved user input devices that facilitate greater ease of use of computing devices.


SUMMARY OF THE INVENTION

The present invention relates to improved approaches for users of computing devices to interact with graphical user interfaces. A rotational user action supplied by a user via a user input device can provide accelerated scrolling. The accelerated nature of the scrolling enables users to scroll or traverse a lengthy data set (e.g., list of items) faster and with greater ease. The amount of acceleration provided can be performed in successive stages, and/or performed based on the speed of the rotational user action. In one embodiment, the rotational user action is transformed into linear action with respect to a graphical user interface. The resulting acceleration effect causes the linear action to be enhanced such that a lengthy data set is able to be rapidly traversed. Other aspects and features of the invention will become apparent below. Although the type of computing device can vary, the invention is particularly well-suited for use with a media player.


Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.





BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:



FIG. 1 is a flow diagram of scroll processing according to one embodiment of the invention.



FIG. 2 is a flow diagram of list navigation processing according to another embodiment of the invention.



FIG. 3 is a flow diagram of acceleration amount processing according to one embodiment of the invention.



FIG. 4 is a flow diagram of acceleration amount processing according to another embodiment of the invention.



FIG. 5 is a representative acceleration state machine according to one embodiment of the invention.



FIG. 6 is a flow diagram of next portion determination processing according to one embodiment of the invention.



FIG. 7A is a perspective diagram of a computer system in accordance with one embodiment of the invention.



FIG. 7B is a perspective diagram of a media player in accordance with one embodiment of the present invention.



FIG. 8A is a block diagram of a media player according to one embodiment of the invention.



FIG. 8B is a block diagram of a computing system according to one embodiment of the invention.



FIG. 9 shows the media player of FIG. 7B being used by a user in accordance with one embodiment of the invention.



FIG. 10A is a flow diagram of user input processing according to one embodiment of the invention.



FIG. 10B is a flow diagram of user input processing according to another embodiment of the invention.



FIG. 11 is a flow diagram of user input processing according to another embodiment of the invention.



FIG. 12 is a block diagram of a rotary input display system in accordance with one embodiment of the invention.





DETAILED DESCRIPTION OF THE INVENTION

The present invention relates to improved approaches for users of computing devices to interact with graphical user interfaces. A rotational user action supplied by a user via a user input device can provide accelerated scrolling. The accelerated nature of the scrolling enables users to scroll or traverse a lengthy data set (e.g., list of items) faster and with greater ease. The amount of acceleration provided can be performed in successive stages, and/or performed based on the speed of the rotational user action. In one embodiment, the rotational user action is transformed into linear action with respect to a graphical user interface. The resulting acceleration effect causes the linear action to be enhanced such that a lengthy data set is able to be rapidly traversed. Other aspects and features of the invention will become apparent below. Although the type of computing device can vary, the invention is particularly well-suited for use with a media player.


Embodiments of the invention are discussed below with reference to FIGS. 1-12. However, those skilled in the art will readily appreciate that the detailed description given herein with respect to these figures is for explanatory purposes as the invention extends beyond these limited embodiments.



FIG. 1 is a flow diagram of scroll processing 100 according to one embodiment of the invention. The scroll processing 100 assists a user in scrolling through a data set. The scroll processing 100 initially receives 102 a number of units associated with a rotational user input. The number of units is an indication of an amount of rotational movement a user has invoked with respect to a rotational input device.


Next, an acceleration factor is determined 104. The acceleration factor is an indication of the degree of acceleration to be utilized with the scroll processing 100. After the acceleration factor is determined 104, the number of units that are associated with the rotational user input is modified 106 by the acceleration factor. In one embodiment, the number of units is modified by multiplication with the acceleration factor. In various other embodiments, the number of units can be modified in various other ways.


After the number of units has been modified 106, a next portion of the data set that is being scrolled through can be determined 108 based on the modified number of units. Once the next portion has been determined 108, the next portion of the data set can be presented 110. Typically, the next portion of the data set associated with the scroll processing 100 is presented 110 to the user that caused the rotational user input. In one embodiment, the next portion of the data set can be presented 110 to the user by displaying the next portion of the data set on a display device. In another embodiment of the invention, the next portion of the data set can be presented 110 to the user by displaying the next portion of the data set with at least one item distinctively or distinguishly displayed (e.g., highlighted) from the other items. In still another embodiment, the next portion of the data set can be presented 110 to the user by playing or executing a file. After the next portion of the data set has been presented 110, the scroll processing 100 is complete and ends. However, the scroll processing 100 will repeat for each rotational user input.


Here, the faster the rate of rotational user input, the further down a list the next item becomes. It should be noted that the rate of rotational user input can be relative or absolute in nature. Still further, the rate of rotational user input need not be an actual velocity value, but could be a count or other value that is proportional to or influenced by the rate of rotational user input.


A data set as used herein pertains to a set of data. As one example, the data set can be a list of items (e.g., a list of songs). As another example, the data set can be a media file (e.g., MP3 or other audio file, video file, or image file). In one embodiment, the data set can be considered a sequential data set because the data within the set is often sequential. For example, the songs in a list are arranged sequentially and the data within an audio file are also arranged sequentially.



FIG. 2 is a flow diagram of list navigation processing 200 according to another embodiment of the invention. The list navigation processing 200 initially determines 202 a rate of rotational user input (e.g., dial turn). The rotational user input is provided through user interaction with a rotational input device. A list length is then obtained 204 and a current item in the list is identified. Typically, the current item is the item in the list that is being displayed. In one embodiment, the current item is highlighted such that it is distinctively displayed from other items of the list that are simultaneously displayed.


A next item in the list to be displayed is then determined 206 based on the rotational user input. The determination 206 of the next item in the list can also be dependent on the list length and the current item in the list. For example, the greater the rate of the rotational user input, the further apart the next item is from the current item in the list. The rate of the rotational user input and the length of the list can affect whether acceleration (e.g., acceleration factor) is provided for navigating the list. Thereafter, the list navigation processing 200 displays 208 a next item and one or more subsequent (or neighboring) items thereto. For example, the next item and the one or more subsequent items can be displayed 208 by a display screen produced by a display device. Additionally, the list navigation processing 200 can provide 210 an audio feedback. The audio feedback provides an audible sound that indicates feedback to the user as to the rate at which the items in the list are being traversed. The audible feedback can thus also be proportional to the rate of rotational user input.



FIG. 3 is a flow diagram of acceleration amount processing 300 according to one embodiment of the invention. The acceleration amount processing 300 is, for example, processing that can be performed to determine an acceleration factor. In one embodiment, the acceleration amount processing 300 is, for example, suitable for use as the operation 104 illustrated in FIG. 1. In another embodiment, the acceleration amount processing 300 is, for example, suitable for use as a sub-operation for the operation 206 illustrated in FIG. 2.


The acceleration amount processing 300 initially determines 302 a speed of a rotational user input. As previously noted with respect to FIG. 1, the rotational user input is provided by a rotational input device that is interacted with by a user. In one embodiment, the speed of the rotational user input is determined 302 based on the number of rotational units identified by the rotational user input. More particularly, in another embodiment, the speed of the rotational user input is determined 302 based on the number of rotational units and an amount of time over which such rotational inputs were received. The speed of the rotational user input can, for example, be considered to be the speed of a user movement or the speed of rotation of a rotational input device.


After the speed of the rotational user input has been determined 302, a decision 304 determines whether the speed of the rotational user input is slow. The speed of the rotational user input can be determined or estimated, directly or indirectly, in a variety of ways. In one embodiment, a threshold is used to distinguish between slow and fast speeds of the rotational user input. The precise rate of rotation that is deemed to be the threshold between slow and fast can vary with application. The threshold can be determined experimentally based upon the particular application for which the acceleration amount processing 300 is utilized.


Once the decision 304 determines that the speed of the rotational user input is slow, then the acceleration factor (AF) is set 306 to zero (0). On the other hand, when the decision 304 determines that the speed of the rotational user input is not slow (i.e., the speed is fast), then a decision 308 determines whether an amount of time (Δt1) since the last time the acceleration was altered exceeds a first threshold (TH1). When the decision 308 determines that the amount of time (Δt1) since the last acceleration update is longer than the first threshold amount (TH1), then the acceleration factor is modified 310. In particular, in this embodiment, the modification 310 causes the acceleration factor to be doubled.


Following the operation 310, as well as following the operation 306, an acceleration change time is stored 312. The acceleration change time reflects the time that the acceleration factor was last updated. The acceleration change time is stored such that the decision 308 understands the amount of time since the acceleration was last modified (i.e., Δt1). Following the operation 312, as well as directly following the decision 308 when the amount of time since the last acceleration update was made is less than the first threshold (TH1), the acceleration amount processing 300 is complete and ends.


Hence, according to the acceleration amount processing 300, when the speed of the rotational user input is deemed slow, the acceleration factor is reset to zero (0), which indicates that no acceleration effect is imposed. On the other hand, when the speed of the rotational user input indicates that the speed of such rotation is fast, then the acceleration effect being imposed is doubled. In effect, then, if the user interacts with the rotational input device such that the speed of rotation is slow, then no acceleration effect is provided. In such case, the user can scroll through a data set (e.g., list, audio file) with high resolution. On the other hand, when the user interacts with the rotational input device with a high speed of rotation, then the acceleration effect is step-wise increased (e.g., via doubling or other means). The acceleration effect provided by the invention enables a user to interact with a rotational input device in an efficient, user-friendly manner such that long or extensive data sets can be scrolled through in a rapid manner.



FIG. 4 is a flow diagram of acceleration amount processing 400 according to another embodiment of the invention. The acceleration amount processing 400 is generally similar to the acceleration amount processing 300 illustrated in FIG. 3. However, the acceleration amount processing 400 includes additional operations that can be optionally provided. More specifically, the acceleration amount processing 400 can utilize a decision 402 to determine whether a duration of time (Δt2) since the last rotational user input is greater than a second threshold (TH2). When the decision 402 determines that the duration of time (Δt2) since the last rotational user input exceeds the second threshold (TH2), then the acceleration factor is reset 306 to zero (0). Here, when the user has not provided a subsequent rotational user input for more than the duration of the second threshold (TH2), then the acceleration amount processing 400 is reset to no acceleration because it assumes that the user is restarting a scrolling operation and thus would not want to continue with a previous accelerated rate of scrolling.


The rate at which the acceleration effect is doubled is restricted such that the doubling (i.e., operation 310) can only occur at a rate below a maximum rate. The acceleration amount processing 400 also includes a decision 404 that determines whether the acceleration factor (AF) has reached a maximum acceleration factor (AFMAX). The decision 404 can be utilized to limit the maximum acceleration that can be imposed by the acceleration amount processing 400. For example, the acceleration factor (AF) could be limited to a factor of eight (8), representing that with maximum acceleration scrolling would occur at a rate eight (8) times faster than non-accelerated scrolling.


Still further, the acceleration amount processing 400 stores 406 a last input time. The last input time (t2) represents the time the last rotational user input was received (or processed). Note that the duration of time (Δt2) can be determined by the difference between a current time associated with an incoming rotational user input and the last input time (t2).


As previously noted, the acceleration amount processing 300, 400 is, for example, processing that can be performed to determine an acceleration factor. However, although not depicted in FIG. 3 or 4, when the length of the data set (e.g., list) is short, then the acceleration can be set to zero (i.e., no acceleration) and the acceleration amount processing 300, 400 can be bypassed. For example, in one embodiment, where the data set is a list, if the display screen can display only five (5) entries at a time, then the list can be deemed short if it does not include more than twenty (20) items. Consequently, according to another embodiment of the invention, the acceleration effect imposed by the invention can be dependent on the length of the data set (e.g., list).


The accelerated scrolling can also be depicted as a state machine having states representing different acceleration levels or different rates of acceleration. The particulars of such a state machine will vary widely with implementation.



FIG. 5 is a representative acceleration state machine 500 according to one embodiment of the invention. The acceleration state machine 500 has four states of acceleration. A first state 502 provides no acceleration. From the first state 502, when the speed of a next rotational user input is slow, the acceleration state machine 500 remains at the first state 502. Alternatively, when the speed of the rotational user input is fast, the acceleration state machine 500 transitions from a first state 502 to a second state 504. The second state 504 provides 2× acceleration, meaning that the resulting rate of scrolling would be twice that of the first state. When the acceleration state machine 500 is at the second state 504, when the speed of a next rotational user input is slow, the acceleration state machine 500 transitions back to the first state 502. Alternatively, when the speed of the next rotational user input is fast, the acceleration state machine 500 transitions from the second state 504 to a third state 506. The third state 506 provides 4× acceleration, meaning that the rate of scrolling would be four times that of the first state 502 or twice that of the second state 504. At the third state 506, when the speed of the next rotational user input is slow, the acceleration state machine 500 transitions from the third state 506 to the first state 502. Alternatively, when the speed of the next rotational user input is fast, the acceleration state machine 500 transitions from the third state 506 to a fourth state 508. At the fourth state 508, 8× acceleration is provided, meaning that the acceleration rate of scrolling is eight times that of the first state 502, four times that of the second state 504, or twice that of the third state 506. At the fourth state 508, when the speed of the next rotational user input is slow, the acceleration state machine 500 transitions from the fourth state 508 to the first state 502. Alternatively, when the speed of the next rotational user input is fast, the acceleration state machine 500 remains at the fourth state 508.



FIG. 6 is a flow diagram of next portion determination processing 600 according to one embodiment of the invention. The next portion determination processing 600 is, for example, processing performed by the operation 108 illustrated in FIG. 1


The next portion determination processing 600 receives 602 the modified number of the units. For example, at operation 106 of FIG. 1, the number of units was modified 106 by the acceleration factor to determine the modified number of units. A remainder value is then added 604 to the modified number of units. The remainder value pertains to a previously determined remainder value as discussed below. Next, the modified number of units is divided 606 by a chunking value to view a next portion. The next portion is a subset of the data set that is eventually presented on a display device. For example, the next portion can pertain to one or more items in a list when the data set pertains to a list of items. In another example, the next portion can pertain to a segment or position in a audio file when the data set pertains to an audio file. In any case, the remainder value from the operation 606 is then saved 608 for subsequent usage in computing a subsequent next portion. Following the operation 608, the next portion determination processing 600 is complete and ends. Although the use of the remainder value is not necessary, the scrolling provided by the invention may be smoother to the user when the remainder is carried forward as described above.


As one example of the scroll processing according to the invention, consider the following exemplary case. Assume that the number of units associated with a rotational user input is 51 units. Also assume that an acceleration factor was determined to be 2. Hence, the modified number of units, according to one embodiment, would then be 102 units (51*2). In one implementation, a previous remainder value (if not stale) can be added to the modified number of units. Assume that the previous remainder value was 3, then the modified number of units becomes 105 (102+3). Thereafter, to determine the next portion of the data set, the modified number of units (105) is then divided by a chunking value (e.g., 5). Hence, the resulting value 20 indicates that the next portion of the data set is to be presented (i.e., displayed on a display device) would be 20 items down (up) in the list from the current item.


The scroll, list navigation or acceleration amount processing discussed above can be utilized with respect to an audio player having a screen that displays a list of songs, or that provides a scroll bar indicating position of playing within an audio file. Typically, such an audio player typically displays different screens on the display. Each such screen can be individually scrolled through using separate position and acceleration values. Alternatively, the acceleration values can be shared across multiple different screens. Each such screen could be associated with a different list that is partially displayed on the screen, a portion of which is displayed on the screen at a time and, through scrolling, the portion can be altered in an accelerated manner. The file can be a list or represent a scroll bar reflecting play position in a song. Additional details of screens suitable for use with an audio player are described in U.S. Provisional Patent Application No. 60/399,806, filed on Jul. 30, 2002, which is hereby incorporated herein by reference.



FIG. 7A is a perspective diagram of a computer system 650 in accordance with one embodiment of the invention. The computer system 650 includes a base housing 652 that encloses electronic circuitry that performs the computing operations for the computing system 650. Typically, the electronic circuitry includes a microprocessor, memory, I/O controller, graphics controller, etc. The housing 652 also provides a removable computer readable medium drive 654 in which a removable computer readable medium can be placed so as to electronically or optically read data therefrom. The computer housing 652 is also coupled to a display device 656 on which a screen display can be presented for a user of the computer system 650 to view. Still further, the computer system 650 includes a keyboard apparatus 658. The keyboard apparatus 658 allows a user to interact with a computer program (application program or operating system) performed by the computer system 650. In this regard, the keyboard apparatus 658 includes a plurality of keys 660 and a rotational input unit 662. The rotational input unit 662 allows a user to perform a rotational movement with respect to the rotational input unit 662. The rotational movement (rotational user input) can then be processed by the electronic circuitry of the computer system 650 and used to manipulate navigation or selection actions with respect to a graphical user interface being presented to the user on the display device 656. The keyboard apparatus 658 can also include a button 664 associated with the rotational input unit 662. As shown in FIG. 7A, the button 664 can be provided at a center region of the rotational input unit 662. However, the button 664 is not required and, if provided, can be placed elsewhere, such as outside the periphery of the rotational input unit 662.



FIG. 7B is a perspective diagram of a media player 700 in accordance with one embodiment of the present invention. The term “media player” generally refers to computing devices that are dedicated to processing media such as audio, video or other images. In one implementation, the media player is a portable computing device. Examples of media players include music players, game players, video players, video recorders, cameras and the like. These computing devices are generally portable so as to allow a user to listen to music, play games or video, record video or take pictures wherever the user travels. In one embodiment, the media player is a handheld device that is sized for placement into a pocket of the user (i.e., pocket-sized). By being pocket-sized, the user does not have to directly carry the device and therefore the device can be taken almost anywhere the user travels (e.g., the user is not limited by carrying a large, bulky and often heavy device, as in a portable computer). For example, in the case of a music player (e.g., MP3 player), a user may use the device while working out at the gym. In the case of a camera, a user may use the device while mountain climbing. Furthermore, the device may be operated by the user's hands, no reference surface such as a desktop is needed. In one implementation, the music player can be pocket-sized and rather lightweight (e.g., dimensions of 2.43 by 4.02 by 0.78 inches and a weight of 6.5 ounces) for true portability.


The media player 700 typically has connection capabilities that allow a user to upload and download data to and from a host device such as a general purpose computer (e.g., desktop computer or portable computer). For example, in the case of a camera, photo images may be downloaded to the general purpose computer for further processing (e.g., printing). With regard to music players, songs and playlists stored on the general purpose computer may be downloaded into the music player. In one embodiment, the media player 700 can be a pocket-sized handheld MP3 music player that allows a user to store a large collection of music.


As shown in FIG. 7B, the media player 700 includes a housing 702 that encloses various electrical components (including integrated circuit chips and other circuitry) to provide computing capabilities for the media player 700. The integrated circuit chips and other circuitry may include a microprocessor, memory (e.g., ROM or RAM), a power source (e.g., a battery), a circuit board, a hard drive, and various input/output (I/O) support circuitry. In the case of music players, the electrical components may include components for outputting music such as an amplifier and a digital signal processor (DSP). In the case of video recorders or cameras, the electrical components may include components for capturing images such as image sensors (e.g., charge-coupled device (CCD) or complimentary oxide semiconductor (CMOS)) or optics (e.g., lenses, splitters, filters). The housing may also define the shape or form of the media player. That is, the contour of the housing 702 may embody the outward physical appearance of the media player 700.


The media player 700 also includes a display screen 704. The display screen 704 is used to display a Graphical User Interface (GUI) as well as other information to the user (e.g., text, objects, graphics). By way of example, the display screen 704 may be a liquid crystal display (LCD). In one particular embodiment, the display screen corresponds to a high-resolution display with a white LED backlight to give clear visibility in daylight as well as in low-light conditions. Additionally, according to one embodiment, the display screen 704 can be about 2 inches (measured diagonally) and provide a 160-by-128 pixel resolution. The display screen 704 can also operate to simultaneously display characters of multiple languages. As shown in FIG. 7B, the display screen 704 is visible to a user of the media player 700 through an opening 705 in the housing 702, and through a transparent wall 706 that is disposed over the opening 705. Although transparent, the transparent wall 706 may be considered part of the housing 702 since it helps to define the shape or form of the media player 700.


The media player 700 includes a rotational input device 710. The rotational input device 710 receives a rotational input action from a user of the media player 700. The rotational input action is used to control one or more control functions for controlling or interacting with the media player 700 (or application operating thereon). In one embodiment, the control function corresponds to a scrolling feature. The direction of scrolling can vary depending on implementation. For example, scrolling may be implemented vertically (up or down) or horizontally (left or right). For example, in the case of a music player, the moving finger may initiate a control function for scrolling through a song menu displayed on the display screen 704. The term “scrolling” as used herein generally pertains to moving displayed data (e.g., text or graphics) across a viewing area on a display screen 704 so that at least one new item of data (e.g., line of text or graphics) is brought into view in the viewing area. In essence, the scrolling function allows a user to view sets of data currently outside of the viewing area. The viewing area may be the entire viewing area of the display screen 704 or it may be only a portion of the display screen 704 (e.g., a window frame).


By way of example, in the case of a music player (e.g., MP3 player), the scrolling feature may be used to help browse through songs stored in the music player. To elaborate, the display screen 704, during operation, may display a list of media items (e.g., songs). A user of the media player 700 is able to linearly scroll through the list of media items by providing a rotational input action using the rotational input device 710. The displayed items from the list of media items are varied commensurate with the rotational input action such that the user is able to effectively scroll through the list of media items. However, since the list of media items can be rather lengthy, the invention provides the ability for the user to rapidly traverse (or scroll) through the list of media items. In effect, the user is able to accelerate their traversal of the list of media items by providing the rotational input action at greater speeds. The direction of the rotational input action may be arranged to control the direction of scrolling.


In addition to above, the media player 700 may also include one or more buttons 712. The buttons 712 are configured to provide one or more dedicated control functions for making selections or issuing commands associated with operating the media player 700. By way of example, in the case of a music player, the button functions may be associated with opening a menu, playing a song, fast forwarding a song, seeking through a menu and the like. In most cases, the button functions are implemented via a mechanical clicking action. The position of the buttons 712 relative to the rotational input device 710 may be widely varied. For example, they may be adjacent to one another or spaced apart. In the illustrated embodiment, the buttons 712 are configured to surround the inner and outer perimeter of the rotational input device 710. In this manner, the buttons 712 may provide tangible surfaces that define the outer boundaries of the rotational input device 710. As shown, there are four buttons 712A that surround the outer perimeter and one button 712B disposed in the center or middle of the rotational input device 710. By way of example, the plurality of buttons 712 may consist of a menu button, play/stop button, forward seek button, reverse seek button, and the like.


Moreover, the media player 700 may also include a power switch 714, a headphone jack 716 and a data port 718. The power switch 714 is configured to turn the media device 700 on and off. The headphone jack 716 is capable of receiving a headphone connector associated with headphones configured for listening to sound being outputted by the media device 700. The data port 718 is capable of receiving a data connector/cable assembly configured for transmitting and receiving data to and from a host device, such as a general purpose computer. By way of example, the data port 718 may be used to upload or download songs to and from the media device 700. The data port 718 may be widely varied. For example, the data port may be a PS/2 port, a serial port, a parallel port, a USB port, a FireWire port, and the like. In some cases, the data port 718 may be a radio frequency (RF) link or optical infrared (IR) link to eliminate the need for a cable. Although not shown in FIG. 7B, the media player 700 may also include a power port that receives a power connector/cable assembly configured for delivering power to the media player 700. In some cases, the data port 718 may serve as both a data and a power port.



FIG. 8A is a block diagram of a media player 800 according to one embodiment of the invention. The media player 800 can, for example, represent internal components of the media player 700.


The media player 800 includes a processor 802 that pertains to a microprocessor or controller for controlling the overall operation of the media player 800. The media player 800 stores media data pertaining to media items in a file system 804 and a cache 806. The file system 804 is, typically, a storage disk or a plurality of disks. The file system typically provides high capacity storage capability for the media player 800. However, since the access time to the file system 804 is relatively slow, the media player 800 also includes a cache 806. The cache 806 is, for example, Random-Access Memory (RAM) provided by semiconductor memory. The relative access time to the cache 806 is substantially shorter than for the file system 804. However, the cache 806 does not have the large storage capacity of the file system 804. Further, the file system 804, when active, consumes more power than does the cache 806. The power consumption is particularly important when the media player 800 is a portable media player that is powered by a battery (not shown).


The media player 800 also includes a user input device 808 that allows a user of the media player 800 to interact with the media player 800. For example, the user input device 808 can take a variety of forms, such as a button, keypad, dial, etc. Still further, the media player 800 includes a display 810 (screen display) that can be controlled by the processor 802 to display information to the user. A data bus 811 can facilitate data transfer between at least the file system 804, the cache 806, the processor 802, and the coder/decoder (CODEC) 812. The media player 800 can also include an audio feedback unit (not shown) to provide audio feedback for user interactions (such as with the user input device 808).


In one embodiment, the media player 800 serves to store a plurality of media items (e.g., songs) in the file system 804. When a user desires to have the media player play a particular media item, a list of available media items is displayed on the display 810. Then, using the user input device 808, a user can select one of the available media items. The processor 802, upon receiving a selection of a particular media item, supplies the media data (e.g., audio file) for the particular media item to a coder/decoder (CODEC) 812. The CODEC 812 then produces analog output signals for a speaker 814. The speaker 814 can be a speaker internal to the media player 800 or external to the media player 800. For example, headphones or earphones that connect to the media player 800 would be considered an external speaker.



FIG. 8B is a block diagram of a computing system 850 according to one embodiment of the invention. The computing system 850 can, for example, represent a portion of any of the computer system 650 shown in FIG. 7A, the media player 700 shown in FIG. 7B, or the media player 800 shown in FIG. 8A.


The computing system 850 includes a housing 852 that exposes a rotational input device 854. The housing 852 can be a computer's housing or an input/output device's housing. The rotational input device 854 permits a user to interact with the computing system 850 through a rotational action. The rotational action results from either rotation of the rotational input device 854 itself or by rotation of a stylus or user's finger about the rotational input device 854. As examples, the rotational input device 854 can be a rotary dial (including, e.g., a navigational wheel or a scroll wheel) capable of being rotated or a touch pad capable of rotational sensing. In one embodiment, the touch pad has a circular shape. A rotation pickup unit 856 couples to the rotational input device 854 to sense the rotational action. For example, the rotational pickup unit 856 can be optically or electrically coupled to the rotational input device 854.


The computing system 850 further includes a processor 858, a display 860 and an audio feedback unit 862. Signals pertaining to the rotational action are supplied to the processor 858. The processor 858 not only performs processing operations for application programs hosted by the computing system 850 but also can control the display 860 and the audio feedback unit 862. Alternatively, a specialized controller or other circuitry can support the processor 858 in controlling the display 860 or the audio feedback unit 862.


The processor 858 causes a display screen to be produced on the display 860. In one implementation, the display screen includes a selectable list of items (e.g., media items) from which a user may select one or more of the items. By the user providing a rotational action with respect to the rotational input device 854, the list can be scrolled through. The processor 858 receives the signals pertaining to the rotational action from the rotation pickup unit 856. The processor 858 then determines the next items of the list that are to be presented on a display screen by the display 860. In making this determination, the processor 858 can take into consideration the length of the list. Typically, the processor 858 will determine the rate of the rotational action such that the transitioning to different items in the media list can be performed at a rate proportional to the rate of the rotational action.


The processor 858 can also control the audio feedback unit 862 to provide audio feedback to a user. The audio feedback can, for example, be a clicking sound produced by the audio feedback unit 862. In one embodiment, the audio feedback unit 862 is a piezoelectric buzzer. As the rate of transitioning through the list of items increases, the frequency of the clicking sounds can increase. Alternatively, when the rate that the rotational input device 854 is turned slows, the rate of transitioning through the list of items decreases, and thus the frequency of the clicking sounds correspondingly slows. Hence, the clicking sounds provide audio feedback to the user as to the rate in which the items within the list of items are being traversed.



FIG. 9 shows the media player 700 of FIG. 7B being used by a user 920 in accordance with one embodiment of the invention. In this embodiment, the user 920 is linearly scrolling (as shown by arrow 924) through a list of songs 922 displayed on the display screen 904 via a slider bar 923. As shown, the media device 900 is comfortably held in one hand 926 while being comfortably addressed by the other hand 928. This configuration generally allows the user 920 to easily actuate the rotational input device 910 with one or more fingers. For example, the thumb 930 and right-most fingers 931 (or left-most fingers if left handed) of the first hand 926 are used to grip the sides of the media player 900 while a finger 932 of the opposite hand 928 is used to actuate the rotational input device 910.


Referring to FIG. 9, and in accordance with one embodiment of the invention, the rotational input device 910 can be continuously actuated by a circular motion of the finger 932 as shown by arrow 934. For example, the finger may rotate relative to an imaginary axis. In particular, the finger can be rotated through 360 degrees of rotation without stopping. This form of motion may produce incremental or accelerated scrolling through the list of songs 922 being displayed on the display screen 904.



FIG. 10A is a flow diagram of user input processing 1000 according to one embodiment of the invention. The user input processing 1000 is, for example, performed with respect to the computer system 650 illustrated in FIG. 7A or the media player 700 illustrated in FIG. 7B.


The user input processing 1000 displays 1002 a graphical user interface. Then, a rotational movement associated with a user input action is received 1004. Here, the user input action is generally angular, as opposed to linear, and thus pertains to a rotational movement. As discussed in more detail below, the rotational movement can be provided by the user input action. In one example, the rotational movement can be caused by a user acting to rotate a navigational wheel through a user input action. In another example, the rotational movement can be caused by a user's finger or a stylist being moved in a rotational manner through a user input action with respect to a touch pad. After the rotational movement has been received 1004, the rotational movement is converted 1006 into a linear movement. The linear movement is then applied 1008 to at least one object of the graphical user interface. For example, the object of the graphical user interface can be a list, menu or other object having a plurality of selectable items. The linear movement can effect a scroll type action with respect to the object (e.g., list or menu). Alternatively, the linear movement can effect a level adjustment (e.g., volume adjustment) or position adjustment (e.g., slider bar position). After the linear movement has been applied 1008, the user input processing 1000 is complete and ends.



FIG. 10B is a flow diagram of user input processing 1050 according to another embodiment of the invention. The user input processing 1050 is, for example, performed with respect to the computer system 650 illustrated in FIG. 7A or the media player 700 illustrated in FIG. 7B.


The operations 1052-1060 performed by the user input processing 1050 are similar to those like operations performed by the user input processing 1000 illustrated in FIG. 10A. Additionally, the user input processing 1050 operates to provide 1056 audible feedback corresponding to the rotational movements. In other words, as the rotational movement associated with user input action is received 1054, audible feedback corresponding to the rotational movement is provided 1056. Such audible feedback provides the user with feedback concerning the extent to which rotational movement has been input. In one embodiment, the rotational movement associated with user input action is converted into linear movement and applied to an object of a graphical user interface. For example, when the object of the graphical user interface is a multi-item list that is displayed for user scrolling and selection actions, the rotational movement associated with the user input action represents a distance traversed in the multi-item list. When acceleration is applied, the distance traversed is increased (e.g., multiplied). In one embodiment, the audible feedback is provided through a piezoelectric buzzer that is controlled by a processor (or other circuitry). For example, the audio feedback unit 862 shown in FIG. 8B can be a piezoelectric buzzer. The controller for the piezoelectric buzzer can, for example, be a processor of the computer system 650 or the media player 700, or some other circuitry coupled to the piezoelectric buzzer.



FIG. 11 is a flow diagram of user input processing 1100 according to another embodiment of the invention. The user input processing 1100 is, for example, performed by a computing device, such as the computer system 650 illustrated in FIG. 7A or the media player 700 illustrated in FIG. 7B.


The user input processing 1100 begins by the display 1102 of a portion of a list of items together with a select bar. The select bar typically points to or highlights one or more of the items of the list of items. In general, the select bar can be associated with any sort of visual indication specifying one or more of the items of the list of items. Hence, the select bar is one type of visual indicator. Next, a decision 1104 determines whether a rotational movement input has been received. When the decision 1104 determines that a rotational movement input has not yet been received, then a decision 1106 determines whether another input has been received. Here, the inputs are provided by a user of the computing device performing or associated with the user input processing 1100. When the decision 1106 determines that another input has been received, then other processing is performed 1108 to perform any operations or actions caused by the other input. Following the operation 1108, the user input processing 1100 is complete and ends. On the other hand, when the decision 1106 determines that no other input has been received, then the user input processing 1100 returns to repeat the decision 1104.


Once the decision 1104 determines that a rotational movement input has been received, then the rotational movement is converted 1110 to a linear movement. Then, a next portion of the list of items (and placement of the select bar over one of the items) is determined 1112. Thereafter, the next portion of the list of items is displayed 1114. The linear movement operates to move the select bar (or other visual identifier) within the list. In other words, the select bar is scrolled upwards or downwards (in an accelerated or unaccelerated manner) by the user in accordance with the linear motion. As the scrolling occurs, the portion of the list being displayed changes. Following the operation 1114, the user input processing 1100 is complete and ends. However, if desired, the user input processing 1100 can continue following operation 1114 by returning to the decision 1104 such that subsequent rotational movement inputs can be processed to view other portions of the list items in a similar manner.



FIG. 12 is a block diagram of a rotary input display system 1200 in accordance with one embodiment of the invention. By way of example, the rotary input display system 1200 can be performed by a computing device, such as the computer system 650 illustrated in FIG. 7A or the media player 700 illustrated in FIG. 7B. The rotary input display system 1200 utilizes a rotational input device 1202 and a display screen 1204. The rotational input device 1202 is configured to transform a rotational motion 1206 by a user input action (e.g., a swirling or whirling motion) into translational or linear motion 1208 on the display screen 1204. In one embodiment, the rotational input device 1402 is arranged to continuously determine either the angular position of the rotational input device 1202 or the angular position of an object relative to a planar surface 1209 of the rotational input device 1202. This allows a user to linearly scroll through a media list 1211 on the display screen 1204 by inducing the rotational motion 1206 with respect to the rotational input device 1202.


The rotary input display system 1200 also includes a control assembly 1212 that is coupled to the rotational input device 1202. The control assembly 1212 is configured to acquire the position signals from the sensors and to supply the acquired signals to a processor 1214 of the system. By way of example, the control assembly 1212 may include an application-specific integrated circuit (ASIC) that is configured to monitor the signals from the sensors to compute the angular location and direction (and optionally speed and acceleration) from the monitored signals and to report this information to the processor 1214.


The processor 1214 is coupled between the control assembly 1212 and the display screen 1204. The processor 1214 is configured to control display of information on the display screen 1204. In one sequence, the processor 1214 receives angular motion information from the control assembly 1212 and then determines the next items of the media list 1211 that are to be presented on the display screen 1204. In making this determination, the processor 1214 can take into consideration the length of the media list 1211. Typically, the processor 1214 will determine the rate of movement such that the transitioning to different items in the media list 1211 can be performed faster or in an accelerated manner when moved at non-slow speeds or proportional with greater speeds. In effect, to the user, rapid rotational motion causes faster transitioning through the list of media items 1211. Alternatively, the control assembly 1212 and processor 1214 may be combined in some embodiments.


Although not shown, the processor 1214 can also control a buzzer to provide audio feedback to a user. The audio feedback can, for example, be a clicking sound produced by a buzzer 1216. In one embodiment, the buzzer 1216 is a piezoelectric buzzer. As the rate of transitioning through the list of media items increases, the frequency of the clicking sounds increases. Alternatively, when the rate of transitioning slows, the frequency of the clicking sounds correspondingly slows. Hence, the clicking sounds provide audio feedback to the user as to the rate in which the media items within the list of media items are being traversed.


The various aspects, features or embodiments of the invention described above can be used alone or in various combinations. The invention is preferably implemented by a combination of hardware and software, but can also be implemented in hardware or software. The invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data which can thereafter be read by a computer system. Examples of the computer readable medium include read-only memory, random-access memory, CD-ROMs, DVDs, magnetic tape, optical data storage devices, and carrier waves. The computer readable medium can also be distributed over network-coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.


The advantages of the invention are numerous. Different embodiments or implementations may yield one or more of the following advantages. It should be noted that this is not an exhaustive list and there may be other advantages which are not described herein. One advantage of the invention is that a user is able to traverse through a displayed list of items using a rotational user input action. Another advantage of the invention is that a user is able to easily and rapidly traverse a lengthy list of items. Still another advantage of the invention is the rate of traversal of the list of media items can be dependent on the rate of rotation of a dial (or navigation wheel). Yet still another advantage of the invention is that audible sounds are produced to provide feedback to users of their rate of traversal of the list of media items.


The many features and advantages of the present invention are apparent from the written description, and thus, it is intended by the appended claims to cover all such features and advantages of the invention. Further, since numerous modifications and changes will readily occur to those skilled in the art, it is not desired to limit the invention to the exact construction and operation as illustrated and described. Hence, all suitable modifications and equivalents may be resorted to as falling within the scope of the invention.

Claims
  • 1. A method of scrolling through portions of a data set to be displayed on a pocket sized portable device having a display and a rotational input that can be continuously actuated by a circular motion of a finger through 360 degrees of rotation, the method comprising: receiving a number of units associated with a rotational user input, the rotational user input being provided by a user through interaction with the rotational input,determining an acceleration factor associated with the rotational user input, wherein the acceleration factor is dependent upon a rate of speed of the rotational user input, and the acceleration factor provides a range of acceleration,modifying the number of units by the acceleration factor,determining a next portion of the data set based on the modified number of units,presenting the next portion of the data set, andproviding at least audio feedback or visual feedback via the display for the user of the portable device as interaction with the rotational input occurs.
  • 2. The method of claim 1, wherein the data set is associated with a list of items, and the portions of the data set comprise at least one of the items.
  • 3. The method of claim 1, wherein the data set is associated with a media file comprising a plurality of sections and the portions of the data set are associated with at least one section of the media file.
  • 4. The method of claim 3, wherein the media file comprises an audio file.
  • 5. The method of claim 1, wherein the rotational user input comprises a touch pad.
  • 6. The method of claim 5, wherein the touch pad comprises a circular touch pad.
  • 7. The method of claim 1, wherein the acceleration factor can successively increase to provided successively greater levels of acceleration.
  • 8. The method of claim 1, wherein determining the next data portion comprises converting the modified number of units into the next portion based on a predetermined value.
  • 9. The method of claim 1, wherein determining the next data portion comprises dividing the modified number of units by a chunking value.
  • 10. The method of claim 1, wherein determining the next data portion comprises adding a prior remainder value to the modified number of units and converting the modified number of units into the next portion.
  • 11. A method for scrolling through portions of a data set to be displayed on a pocket sized portable device having a display and a rotational input that can be continuously actuated by a circular motion of a finger through 360 degrees of rotation, the method comprising: receiving a number of units from the rotational input, the number of units being associated with a rotational user input provided by a user through interaction with the rotational input,determining a speed of rotation for the rotational input,applying acceleration if the speed of rotation is greater than a speed threshold,removing applied acceleration if the speed of rotation is less then the speed threshold,modifying the number of units in accordance with the applied acceleration,determining a next portion of the data set based on the modified number of units,presenting the next portion of the data set, andproviding at least audio feedback or visual feedback via the display for the user of the portable device as interaction with the rotational input occurs.
  • 12. A method for scrolling through portions of a data set to be displayed on a pocket sized portable device having a display and a rotational input that can be continuously actuated by a circular motion of a finger through 360 degrees of rotation, the method comprising: receiving a number of units associated with a rotational user input, the rotational user input being provided by a user through interaction with the rotational input,determining a multiplier associated with the rotational user input,modifying the number of units by the multiplier,determining a next portion of the data set based on the modified number of units,presenting the next portion of the data set, andproviding at least audio feedback or visual feedback via the display for a user of the portable device as interaction with the rotational input occurs.
  • 13. A method for scrolling through portions of a data set to be displayed on a pocket sized portable device having a display and a rotational input that can be continuously actuated by a circular motion of a finger through 360 degrees of rotation, the method comprising: receiving a number of units associated with a rotational user input, the rotational user input being provided by a user through interaction with the rotational input,determining a multiplier associated with the rotational user input,modifying the number of units by the multiplier,determining a next portion of the data set based on the modified number of units, andpresenting the next portion of the data set, wherein as the interaction with the rotational input occurs, visual feedback correlated to the rotational user input is provided on the display for the user of the portable device, andwherein the multiplier can successively increase to provided successively greater levels of acceleration.
  • 14. A pocket seized portable media control device comprising: a rotational input configured to respond to a continuous rotational movement of a finger or stylus through 360 degrees of rotation,a display configured to display media items and to enable scrolling through the displayed media items at a first rate in response to rotational movement of a finger or stylus relative to the rotational input, anda processor configured to modify the first rate in response to a change in speed of the rotational movement, whereby rotational movement of the finger or stylus relative to the rotational input enables both scrolling through the displayed media items and modifying the rate of scrolling through the displayed media items.
  • 15. A method of scrolling through portions of a data set to be displayed on a portable device having a display and a rotational input, the method comprising: receiving a number of units associated with a rotational user input, the rotational user input being provided by a user through interaction with the rotational input,determining an acceleration factor associated with the rotational user input comprising adding a prior remainder value to the modified number of units and converting the modified number of units into the next portion,modifying the number of units by the acceleration factor,determining a next portion of the data set based on the modified number of units,presenting the next portion of the data set, andproviding at least audio feedback or visual feedback via the display for the user of the portable device as interaction with the rotational input occurs.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 10/256,716, filed Sep. 26, 2002, and entitled “METHOD AND APPARATUS FOR ACCELERATED SCROLLING,” which is hereby incorporated by reference herein, and which claims benefit of priority from: (i) U.S. Provisional Patent Application No. 60/346,237, filed Oct. 22, 2001, and entitled “METHOD AND SYSTEM FOR LIST SCROLLING,” which is hereby incorporated by reference herein; (ii) U.S. Provisional Patent Application No. 60/387,692, filed Jun. 10, 2002, and entitled “METHOD AND APPARATUS FOR USE OF ROTATIONAL USER INPUTS,” which is hereby incorporated by reference herein; (iii) U.S. Provisional Patent Application No. 60/359,551, filed Feb. 25, 2002, and entitled “TOUCH PAD FOR HANDHELD DEVICE,” which is hereby incorporated by reference herein. This application is related to U.S. patent application Ser. No. 10/072,765, filed Feb. 7, 2002, and entitled “MOUSE HAVING A ROTARY DIAL,” which is hereby incorporated by reference herein. This application is also related to U.S. patent application Ser. No. 10/188,182, filed Jul. 1, 2002, and entitled “TOUCH PAD FOR HANDHELD DEVICE,” which is incorporated by reference herein.

US Referenced Citations (390)
Number Name Date Kind
1061578 Wischhusen et al. May 1913 A
2798907 Schneider Jul 1957 A
2903229 Landge Sep 1959 A
2945111 McCormick Jul 1960 A
3005055 Mattke Oct 1961 A
3965399 Walker et al. Jun 1976 A
4103252 Bobick Jul 1978 A
4110749 Janko et al. Aug 1978 A
4115670 Chandler Sep 1978 A
4121204 Welch et al. Oct 1978 A
4129747 Pepper Dec 1978 A
4158216 Bigelow Jun 1979 A
4242676 Piguet et al. Dec 1980 A
4246452 Chandler Jan 1981 A
4264903 Bigelow Apr 1981 A
4293734 Pepper, Jr. Oct 1981 A
D264969 McGourty Jun 1982 S
4380007 Steinegger Apr 1983 A
4380040 Posset Apr 1983 A
4475008 Doi et al. Oct 1984 A
4570149 Thornburg et al. Feb 1986 A
4587378 Moore May 1986 A
4644100 Brenner et al. Feb 1987 A
4719524 Morishima et al. Jan 1988 A
4734034 Maness et al. Mar 1988 A
4736191 Matzke et al. Apr 1988 A
4739191 Puar Apr 1988 A
4739299 Eventoff et al. Apr 1988 A
4752655 Tajiri et al. Jun 1988 A
4755765 Ferland Jul 1988 A
4764717 Tucker et al. Aug 1988 A
4798919 Miessler et al. Jan 1989 A
4810992 Eventoff Mar 1989 A
4831359 Newell May 1989 A
4849852 Mullins Jul 1989 A
4856993 Maness et al. Aug 1989 A
4866602 Hall Sep 1989 A
4876524 Jenkins Oct 1989 A
4897511 Itaya et al. Jan 1990 A
4914624 Dunthorn Apr 1990 A
4917516 Retter Apr 1990 A
4943889 Ohmatoi Jul 1990 A
4951036 Grueter et al. Aug 1990 A
4976435 Shatford et al. Dec 1990 A
4990900 Kikuchi Feb 1991 A
5008497 Asher Apr 1991 A
5036321 Leach et al. Jul 1991 A
5053757 Meadows Oct 1991 A
5125077 Hall Jun 1992 A
5159159 Asher Oct 1992 A
5179648 Hauck Jan 1993 A
5186646 Pederson Feb 1993 A
5192082 Inoue et al. Mar 1993 A
5231326 Echols Jul 1993 A
5237311 Mailey et al. Aug 1993 A
5278362 Ohashi Jan 1994 A
5305017 Gerpheide Apr 1994 A
5313027 Inoue et al. May 1994 A
D349280 Kaneko Aug 1994 S
5339213 O'Callaghan Aug 1994 A
5367199 Lefkowitz et al. Nov 1994 A
5374787 Miller et al. Dec 1994 A
5379057 Clough et al. Jan 1995 A
5404152 Nagai Apr 1995 A
5408621 Ben-Arie Apr 1995 A
5414445 Kaneko et al. May 1995 A
5416498 Grant May 1995 A
5424756 Ho et al. Jun 1995 A
5432531 Calder et al. Jul 1995 A
5438331 Gilligan et al. Aug 1995 A
D362431 Kaneko et al. Sep 1995 S
5450075 Waddington Sep 1995 A
5453761 Tanaka Sep 1995 A
5473343 Kimmich et al. Dec 1995 A
5473344 Bacon et al. Dec 1995 A
5479192 Carroll, Jr. et al. Dec 1995 A
5495566 Kwatinetz Feb 1996 A
5508703 Okamura et al. Apr 1996 A
5543588 Bisset et al. Aug 1996 A
5555004 Ono et al. Sep 1996 A
5559301 Bryan, Jr. et al. Sep 1996 A
5559943 Cyr et al. Sep 1996 A
5561445 Miwa et al. Oct 1996 A
5564112 Hayes et al. Oct 1996 A
5565887 McCambridge et al. Oct 1996 A
5578817 Bidiville et al. Nov 1996 A
5581670 Bier et al. Dec 1996 A
5585823 Duchon et al. Dec 1996 A
5589893 Gaughan et al. Dec 1996 A
5596347 Robertson et al. Jan 1997 A
5598183 Robertson et al. Jan 1997 A
5611040 Brewer et al. Mar 1997 A
5611060 Belfiore et al. Mar 1997 A
5613137 Bertram et al. Mar 1997 A
5617114 Bier et al. Apr 1997 A
5627531 Posso et al. May 1997 A
5632679 Tremmel May 1997 A
5640258 Kurashima et al. Jun 1997 A
5648642 Miller et al. Jul 1997 A
D382550 Kaneko et al. Aug 1997 S
5657012 Tait Aug 1997 A
5661632 Register Aug 1997 A
D385542 Kaneko et al. Oct 1997 S
5675362 Clough et al. Oct 1997 A
5689285 Asher Nov 1997 A
5721849 Amro Feb 1998 A
5726687 Belfiore et al. Mar 1998 A
5729219 Armstrong et al. Mar 1998 A
5730165 Philipp Mar 1998 A
5748185 Stephan et al. May 1998 A
5751274 Davis May 1998 A
5754890 Holmdahl et al. May 1998 A
5764066 Novak et al. Jun 1998 A
5777605 Yoshinobu et al. Jul 1998 A
5786818 Brewer et al. Jul 1998 A
5790769 Buxton et al. Aug 1998 A
5798752 Buxton et al. Aug 1998 A
5805144 Scholder et al. Sep 1998 A
5808602 Sellers Sep 1998 A
5812239 Eger Sep 1998 A
5812498 Terés Sep 1998 A
5825351 Tam Oct 1998 A
5825353 Will Oct 1998 A
5828364 Siddiqui Oct 1998 A
5838304 Hall Nov 1998 A
5841078 Miller et al. Nov 1998 A
5841423 Carroll, Jr. et al. Nov 1998 A
D402281 Ledbetter et al. Dec 1998 S
5850213 Imai et al. Dec 1998 A
5856822 Du et al. Jan 1999 A
5859629 Tognazzini Jan 1999 A
5861875 Gerpheide Jan 1999 A
5869791 Young Feb 1999 A
5875311 Bertram et al. Feb 1999 A
5883619 Ho et al. Mar 1999 A
5889236 Gillespie et al. Mar 1999 A
5889511 Ong et al. Mar 1999 A
5894117 Kamishima Apr 1999 A
5903229 Kishi May 1999 A
5907152 Dandiliker et al. May 1999 A
5907318 Medina May 1999 A
5909211 Combs et al. Jun 1999 A
5914706 Kono Jun 1999 A
5923388 Kurashima et al. Jul 1999 A
D412940 Kato et al. Aug 1999 S
5943044 Martinelli et al. Aug 1999 A
5953000 Weirich Sep 1999 A
5956019 Bang et al. Sep 1999 A
5959611 Smailagic et al. Sep 1999 A
5964661 Dodge Oct 1999 A
5973668 Watanabe Oct 1999 A
6000000 Hawkins et al. Dec 1999 A
6002389 Kasser et al. Dec 1999 A
6005299 Hengst Dec 1999 A
6025832 Sudo et al. Feb 2000 A
6031518 Adams et al. Feb 2000 A
6034672 Gaultier et al. Mar 2000 A
6057829 Silfvast May 2000 A
6075533 Chang Jun 2000 A
6084574 Bidiville Jul 2000 A
D430169 Scibora Aug 2000 S
6097372 Suzuki Aug 2000 A
6122526 Parulski et al. Sep 2000 A
6124587 Bidiville Sep 2000 A
6128006 Rosenberg et al. Oct 2000 A
6131048 Sudo et al. Oct 2000 A
6141068 Iijima Oct 2000 A
6147856 Karidis Nov 2000 A
6163312 Furuya Dec 2000 A
6166721 Kuroiwa et al. Dec 2000 A
6179496 Chou Jan 2001 B1
6181322 Nanavati Jan 2001 B1
D437860 Suzuki et al. Feb 2001 S
6188391 Seely et al. Feb 2001 B1
6188393 Shu Feb 2001 B1
6191774 Schena et al. Feb 2001 B1
6198054 Janniere Mar 2001 B1
6198473 Armstrong Mar 2001 B1
6211861 Rosenberg et al. Apr 2001 B1
6219038 Cho Apr 2001 B1
6222528 Gerpheide et al. Apr 2001 B1
D442592 Ledbetter et al. May 2001 S
6225976 Yates et al. May 2001 B1
6225980 Weiss et al. May 2001 B1
6226534 Aizawa May 2001 B1
6227966 Yokoi May 2001 B1
D443616 Fisher et al. Jun 2001 S
6243078 Rosenberg Jun 2001 B1
6243080 Molne Jun 2001 B1
6248017 Roach Jun 2001 B1
6254477 Sasaki et al. Jul 2001 B1
6256011 Culver Jul 2001 B1
6259491 Ekedahl et al. Jul 2001 B1
6262717 Donohue et al. Jul 2001 B1
6262785 Kim Jul 2001 B1
6266050 Oh et al. Jul 2001 B1
D448810 Goto Oct 2001 S
6297795 Kato et al. Oct 2001 B1
6297811 Kent et al. Oct 2001 B1
D450713 Masamitsu et al. Nov 2001 S
6314483 Goto et al. Nov 2001 B1
6323845 Robbins Nov 2001 B1
D452250 Chan Dec 2001 S
6340800 Zhai et al. Jan 2002 B1
D454568 Andre et al. Mar 2002 S
6357887 Novak Mar 2002 B1
D455793 Lin Apr 2002 S
6373265 Morimoto et al. Apr 2002 B1
6373470 Andre et al. Apr 2002 B1
6377530 Burrows Apr 2002 B1
6396523 Segal et al. May 2002 B1
6424338 Anderson Jul 2002 B1
6429846 Rosenberg et al. Aug 2002 B2
6429852 Adams et al. Aug 2002 B1
6452514 Philipp Sep 2002 B1
6465271 Ko et al. Oct 2002 B1
6473069 Gerphelde Oct 2002 B1
6492979 Kent et al. Dec 2002 B1
6496181 Bomer et al. Dec 2002 B1
6497412 Bramm Dec 2002 B1
D468365 Bransky et al. Jan 2003 S
D469109 Andre et al. Jan 2003 S
D472245 Andre et al. Mar 2003 S
6546231 Someya et al. Apr 2003 B1
6587091 Serpa Jul 2003 B2
6606244 Liu et al. Aug 2003 B1
6636197 Goldenberg et al. Oct 2003 B1
6639584 Li Oct 2003 B1
6640250 Chang et al. Oct 2003 B1
6650975 Ruffner Nov 2003 B2
D483809 Lim Dec 2003 S
6664951 Fujii et al. Dec 2003 B1
6677927 Bruck et al. Jan 2004 B1
6686904 Sherman et al. Feb 2004 B1
6703550 Chu Mar 2004 B2
6724817 Simpson et al. Apr 2004 B1
6727889 Shaw Apr 2004 B2
D489731 Huang May 2004 S
6738045 Hinckley et al. May 2004 B2
6750803 Yates et al. Jun 2004 B2
6781576 Tamura Aug 2004 B2
6788288 Ano Sep 2004 B2
6791533 Su Sep 2004 B2
6795057 Gordon Sep 2004 B2
D497618 Andre et al. Oct 2004 S
6844872 Farag et al. Jan 2005 B1
6865718 Levi Montalcini Mar 2005 B2
6886842 Vey et al. May 2005 B2
6894916 Reohr et al. May 2005 B2
D506476 Andre et al. Jun 2005 S
6922189 Fujiyoshi Jul 2005 B2
6930494 Tesdahl et al. Aug 2005 B2
6977808 Lam et al. Dec 2005 B2
6978127 Bulthuis et al. Dec 2005 B1
7006077 Uusimäki Feb 2006 B1
7046230 Zadesky et al. May 2006 B2
7069044 Okada et al. Jun 2006 B2
7084856 Huppi Aug 2006 B2
7113196 Kerr Sep 2006 B2
7119792 Andre et al. Oct 2006 B1
7215319 Kamijo et al. May 2007 B2
7233318 Farag et al. Jun 2007 B1
7236154 Kerr et al. Jun 2007 B1
7253643 Seguine Aug 2007 B1
7279647 Philipp Oct 2007 B2
7310089 Baker et al. Dec 2007 B2
7312785 Tsuk et al. Dec 2007 B2
7395081 Bonnelykke Kristensen et al. Jul 2008 B2
7397467 Park et al. Jul 2008 B2
7466307 Trent et al. Dec 2008 B2
7502016 Trent, Jr. et al. Mar 2009 B2
20010011991 Wang et al. Aug 2001 A1
20010033270 Osawa et al. Oct 2001 A1
20010043545 Aratani Nov 2001 A1
20010050673 Davenport Dec 2001 A1
20010051046 Watanabe et al. Dec 2001 A1
20020011993 Lui et al. Jan 2002 A1
20020027547 Kamijo Mar 2002 A1
20020030665 Ano Mar 2002 A1
20020033848 Sciammarella et al. Mar 2002 A1
20020045960 Phillips et al. Apr 2002 A1
20020071550 Pletikosa Jun 2002 A1
20020089545 Levi Montalcini Jul 2002 A1
20020103796 Hartley Aug 2002 A1
20020118131 Yates et al. Aug 2002 A1
20020118169 Hinckley et al. Aug 2002 A1
20020145594 Derocher Oct 2002 A1
20020154090 Lin Oct 2002 A1
20020158844 McLoone et al. Oct 2002 A1
20020164156 Bilbrey Nov 2002 A1
20020180701 Hayama et al. Dec 2002 A1
20020196239 Lee Dec 2002 A1
20030002246 Kerr Jan 2003 A1
20030025679 Taylor et al. Feb 2003 A1
20030028346 Sinclair et al. Feb 2003 A1
20030043121 Chen Mar 2003 A1
20030043174 Hinckley et al. Mar 2003 A1
20030050092 Yun Mar 2003 A1
20030076301 Tsuk et al. Apr 2003 A1
20030076303 Huppi Apr 2003 A1
20030076306 Zadesky et al. Apr 2003 A1
20030091377 Hsu et al. May 2003 A1
20030095095 Pihlaja May 2003 A1
20030095096 Robbin et al. May 2003 A1
20030098851 Brink May 2003 A1
20030103043 Mulligan et al. Jun 2003 A1
20030184517 Senzui et al. Oct 2003 A1
20030197740 Reponen Oct 2003 A1
20030206202 Moriya Nov 2003 A1
20030210537 Engelmann Nov 2003 A1
20040027341 Derocher Feb 2004 A1
20040080682 Dalton Apr 2004 A1
20040109357 Cernea et al. Jun 2004 A1
20040156192 Kerr et al. Aug 2004 A1
20040178997 Gillespie et al. Sep 2004 A1
20040215986 Shakkarwar Oct 2004 A1
20040224638 Fadell et al. Nov 2004 A1
20040239622 Proctor et al. Dec 2004 A1
20040252109 Trent, Jr. et al. Dec 2004 A1
20040253989 Tupler et al. Dec 2004 A1
20040263388 Krumm et al. Dec 2004 A1
20040267874 Westberg et al. Dec 2004 A1
20050012644 Hurst et al. Jan 2005 A1
20050030048 Bolender et al. Feb 2005 A1
20050052425 Zadesky et al. Mar 2005 A1
20050052429 Philipp Mar 2005 A1
20050083299 Nagasaka Apr 2005 A1
20050083307 Aufderheide Apr 2005 A1
20050104867 Westerman et al. May 2005 A1
20050110768 Marriott et al. May 2005 A1
20050140657 Park et al. Jun 2005 A1
20050156881 Trent et al. Jul 2005 A1
20050162402 Watanachote Jul 2005 A1
20050204309 Szeto Sep 2005 A1
20060026521 Hotelling et al. Feb 2006 A1
20060032680 Elias et al. Feb 2006 A1
20060097991 Hotelling et al. May 2006 A1
20060131156 Voelckers Jun 2006 A1
20060181517 Zadesky et al. Aug 2006 A1
20060197750 Kerr et al. Sep 2006 A1
20060232557 Fallot-Burghardt Oct 2006 A1
20060236262 Bathiche et al. Oct 2006 A1
20060250377 Zadesky et al. Nov 2006 A1
20060274042 Krah et al. Dec 2006 A1
20060274905 Lindahl et al. Dec 2006 A1
20060284836 Philipp Dec 2006 A1
20070013671 Zadesky et al. Jan 2007 A1
20070052044 Forsblad et al. Mar 2007 A1
20070052691 Zadesky et al. Mar 2007 A1
20070080938 Robbin et al. Apr 2007 A1
20070083822 Robbin et al. Apr 2007 A1
20070085841 Tsuk et al. Apr 2007 A1
20070097086 Battles et al. May 2007 A1
20070152975 Ogihara Jul 2007 A1
20070152977 Ng et al. Jul 2007 A1
20070152983 McKillop et al. Jul 2007 A1
20070242057 Zadesky et al. Oct 2007 A1
20070247421 Orsley et al. Oct 2007 A1
20070273671 Zadesky et al. Nov 2007 A1
20070276525 Zadesky et al. Nov 2007 A1
20070279394 Lampell Dec 2007 A1
20070290990 Robbin et al. Dec 2007 A1
20070291016 Philipp Dec 2007 A1
20070296709 GuangHai Dec 2007 A1
20080006453 Hotelling et al. Jan 2008 A1
20080006454 Hotelling Jan 2008 A1
20080007533 Hotelling et al. Jan 2008 A1
20080007539 Hotelling et al. Jan 2008 A1
20080012837 Marriott et al. Jan 2008 A1
20080018615 Zadesky et al. Jan 2008 A1
20080018616 Lampell et al. Jan 2008 A1
20080018617 Ng et al. Jan 2008 A1
20080036734 Forsblad et al. Feb 2008 A1
20080087476 Prest Apr 2008 A1
20080088582 Prest Apr 2008 A1
20080088596 Prest Apr 2008 A1
20080088597 Prest Apr 2008 A1
20080088600 Prest Apr 2008 A1
20080094352 Tsuk et al. Apr 2008 A1
20080098330 Tsuk et al. Apr 2008 A1
20080111795 Bollinger May 2008 A1
20080284742 Prest Nov 2008 A1
20090058687 Rothkopf et al. Mar 2009 A1
20090058801 Bull Mar 2009 A1
20090058802 Orsley et al. Mar 2009 A1
20090073130 Weber et al. Mar 2009 A1
20090141046 Rathnam et al. Jun 2009 A1
20090179854 Weber et al. Jul 2009 A1
20090197059 Weber et al. Aug 2009 A1
20090229892 Fisher et al. Sep 2009 A1
Foreign Referenced Citations (191)
Number Date Country
1139235 Jan 1997 CN
1455615 Nov 2003 CN
1499356 May 2004 CN
3615742 Nov 1987 DE
19722636 Mar 1998 DE
10022537 Nov 2000 DE
20019074 Feb 2001 DE
0178157 Apr 1986 EP
0419145 Mar 1991 EP
0498540 Jan 1992 EP
0 521 683 Jan 1993 EP
0674288 Sep 1995 EP
0 731 407 Sep 1996 EP
0 551 778 Jan 1997 EP
0551778 Jan 1997 EP
0880091 Nov 1998 EP
1026713 Aug 2000 EP
1 081 922 Mar 2001 EP
1 098 241 May 2001 EP
1 133 057 Sep 2001 EP
1 162 826 Dec 2001 EP
1 168 396 Jan 2002 EP
1 205 836 May 2002 EP
1 244 053 Sep 2002 EP
1 251 455 Oct 2002 EP
1 467 392 Oct 2004 EP
1 482 401 Dec 2004 EP
1 496 467 Jan 2005 EP
1 542 437 Jun 2005 EP
1 589 407 Oct 2005 EP
1 841 188 Oct 2007 EP
2 686 440 Jul 1993 FR
2015167 Sep 1979 GB
2072389 Sep 1981 GB
2315186 Jan 1998 GB
2333215 Jul 1999 GB
2391060 Jan 2004 GB
2 402 105 Dec 2004 GB
55-174009 Jun 1982 JP
57-95722 Jun 1982 JP
05-36623 May 1983 JP
61-117619 Jun 1986 JP
61-124009 Jun 1986 JP
61-164547 Jan 1988 JP
63-106826 May 1988 JP
63-181022 Jul 1988 JP
63-298518 Dec 1988 JP
03-57617 Jun 1991 JP
3-192418 Aug 1991 JP
04-32920 Feb 1992 JP
5-041135 Feb 1993 JP
5-101741 Apr 1993 JP
05080938 Apr 1993 JP
5-36623 May 1993 JP
5-189110 Jul 1993 JP
5-205565 Aug 1993 JP
5-211021 Aug 1993 JP
5-217464 Aug 1993 JP
5-233141 Sep 1993 JP
05-233141 Sep 1993 JP
05-262276 Oct 1993 JP
5-265656 Oct 1993 JP
5-274956 Oct 1993 JP
05-289811 Nov 1993 JP
5-298955 Nov 1993 JP
5-325723 Dec 1993 JP
06-20570 Jan 1994 JP
06-208433 Feb 1994 JP
6-084428 Mar 1994 JP
6-089636 Mar 1994 JP
06-096639 Apr 1994 JP
6-96639 Apr 1994 JP
06-111685 Apr 1994 JP
6-111695 Apr 1994 JP
6-139879 May 1994 JP
06-187078 Jul 1994 JP
6-267382 Sep 1994 JP
06-283993 Oct 1994 JP
6-333459 Dec 1994 JP
7-107574 Apr 1995 JP
07-107574 Apr 1995 JP
07-107574 Apr 1995 JP
07-41882 Jul 1995 JP
7-41882 Jul 1995 JP
7-201249 Aug 1995 JP
07-201256 Aug 1995 JP
07-253838 Oct 1995 JP
7-261899 Oct 1995 JP
07-261899 Oct 1995 JP
7-261922 Oct 1995 JP
07-296670 Nov 1995 JP
07-319001 Dec 1995 JP
08-016292 Jan 1996 JP
8-115158 May 1996 JP
08-115158 May 1996 JP
8-203387 Aug 1996 JP
8-293226 Nov 1996 JP
8-298045 Nov 1996 JP
08-299541 Nov 1996 JP
8-316664 Nov 1996 JP
9-044289 Feb 1997 JP
9-069023 Mar 1997 JP
09-128148 May 1997 JP
9-134248 May 1997 JP
9-218747 Aug 1997 JP
09-230993 Sep 1997 JP
9-230993 Sep 1997 JP
9-231858 Sep 1997 JP
09-233161 Sep 1997 JP
9-251347 Sep 1997 JP
9-258895 Oct 1997 JP
9-288926 Nov 1997 JP
9-512979 Dec 1997 JP
10-74127 Mar 1998 JP
10-074429 Mar 1998 JP
10-198507 Jul 1998 JP
10-227878 Aug 1998 JP
10-240693 Sep 1998 JP
10-320322 Dec 1998 JP
10-326149 Dec 1998 JP
11-24834 Jan 1999 JP
11-184607 Jul 1999 JP
11-194863 Jul 1999 JP
11-194872 Jul 1999 JP
11-194883 Jul 1999 JP
11-203045 Jul 1999 JP
1998-12010 Jul 1999 JP
1998-12025 Jul 1999 JP
1998-12026 Jul 1999 JP
1998-12027 Jul 1999 JP
1998-12028 Jul 1999 JP
1998-12029 Jul 1999 JP
11-212725 Aug 1999 JP
11-272378 Oct 1999 JP
1998-89535 Oct 1999 JP
11-338628 Dec 1999 JP
2000-215549 Aug 2000 JP
2000-267786 Sep 2000 JP
2000-267797 Sep 2000 JP
2000-353045 Dec 2000 JP
2001-11769 Jan 2001 JP
2001-22508 Jan 2001 JP
03-57617 Jun 2001 JP
2001-184158 Jul 2001 JP
3085481 Feb 2002 JP
2002-215311 Aug 2002 JP
2003280807 Feb 2003 JP
2003-517674 May 2003 JP
2004-362097 Dec 2004 JP
2005-99635 Sep 2005 JP
2005-133824 Oct 2005 JP
2005-134953 Oct 2005 JP
2005-235579 Jan 2006 JP
2005-358970 Jul 2006 JP
3852854 Sep 2006 JP
3852854 Dec 2006 JP
2005-312433 May 2007 JP
1998-71394 Oct 1998 KR
1999-50198 Jul 1999 KR
2000-8579 Feb 2000 KR
2001-0052016 Jun 2001 KR
2002-65059 Aug 2002 KR
431607 Apr 2001 TW
00470193 Dec 2001 TW
547716 Aug 2003 TW
I220491 Aug 2004 TW
WO9417494 Aug 1994 WO
WO-9500897 Jan 1995 WO
WO-9627968 Sep 1996 WO
WO9814863 Apr 1998 WO
WO9949443 Sep 1999 WO
WO 01044912 Jun 2001 WO
WO-03044645 May 2003 WO
WO-03044956 May 2003 WO
WO-03088176 Oct 2003 WO
WO-03090008 Oct 2003 WO
WO-2004040606 May 2004 WO
WO 2004091956 Oct 2004 WO
WO-2005055620 Jun 2005 WO
WO-2005076117 Aug 2005 WO
WO 2005114369 Dec 2005 WO
WO-2005124526 Dec 2005 WO
WO 2006020305 Feb 2006 WO
WO-2006021211 Mar 2006 WO
WO-2006037545 Apr 2006 WO
WO-2006104745 Oct 2006 WO
WO-2006135127 Dec 2006 WO
WO-2007025858 Mar 2007 WO
WO 2007078477 Jul 2007 WO
WO-2007084467 Jul 2007 WO
WO-2008045414 Apr 2008 WO
Related Publications (1)
Number Date Country
20070080936 A1 Apr 2007 US
Provisional Applications (3)
Number Date Country
60346237 Oct 2001 US
60387692 Jun 2002 US
60359551 Feb 2002 US
Continuations (1)
Number Date Country
Parent 10256716 Sep 2002 US
Child 11610181 US